(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022074016
(43)【公開日】2022-05-17
(54)【発明の名称】ストレージシステム
(51)【国際特許分類】
G06F 12/0871 20160101AFI20220510BHJP
G06F 12/02 20060101ALI20220510BHJP
G06F 12/0866 20160101ALI20220510BHJP
G06F 12/0868 20160101ALI20220510BHJP
G06F 12/06 20060101ALI20220510BHJP
G06F 12/00 20060101ALI20220510BHJP
G06F 3/06 20060101ALI20220510BHJP
【FI】
G06F12/0871
G06F12/02 510A
G06F12/0866 100
G06F12/0868 100
G06F12/06 515J
G06F12/00 597U
G06F3/06 302A
G06F3/06 302J
【審査請求】未請求
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2021169365
(22)【出願日】2021-10-15
(31)【優先権主張番号】10-2020-0144641
(32)【優先日】2020-11-02
(33)【優先権主張国・地域又は機関】KR
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.MEMORY STICK
2.FIREWIRE
3.BLUETOOTH
(71)【出願人】
【識別番号】310024033
【氏名又は名称】エスケーハイニックス株式会社
【氏名又は名称原語表記】SK hynix Inc.
【住所又は居所原語表記】2091, Gyeongchung-daero,Bubal-eub,Icheon-si,Gyeonggi-do,Korea
(74)【代理人】
【識別番号】110000796
【氏名又は名称】特許業務法人三枝国際特許事務所
(72)【発明者】
【氏名】イ キョン ス
【テーマコード(参考)】
5B160
5B205
【Fターム(参考)】
5B160AA12
5B160MM03
5B205MM11
5B205VV03
(57)【要約】
【課題】キャッシュされるデータの属性に基づいてキャッシュされたデータを区分して一時的に保存することで性能を改善するストレージシステムを提供する。
【解決手段】一実施例に係るストレージシステム1は、複数の記憶装置31_1,31_2を含むストレージティア30と、複数の記憶装置31_1,31_2毎に割り当てられ、ホットデータゾーン20_1、ウォームデータゾーン20_2及びコールドデータゾーン20_3をそれぞれ含む複数のゾーングループを含むキャッシュティア20と、ソース記憶装置に保存されたデータをキャッシュティア20を介してターゲット記憶装置に移動させるシステムコントローラ10と、を含む。
【選択図】
図6
【特許請求の範囲】
【請求項1】
第1記憶装置と、
データを一時的に保存する第1ゾーングループ及び第2ゾーングループを含むキャッシュティアと、
前記第1記憶装置に保存されたデータを前記キャッシュティアに移動させるシステムコントローラと、を含み、
前記第1ゾーングループ及び前記第2ゾーングループはそれぞれ、
データがアクセスされる回数に基づいてデータを保存するように設定される複数のデータゾーンを含み、
前記システムコントローラは、
前記第1記憶装置に保存されたデータを前記第1ゾーングループに含まれたソースデータゾーンにロードし、
前記ソースデータゾーンがアクセスされた回数である第1アクセスカウントと第2アクセスカウントに基づいて前記ソースデータゾーンにロードされたデータを前記第2ゾーングループに含まれたターゲットデータゾーンに移動させ、
前記第1アクセスカウントは前記ソースデータゾーンのアクセス回数に対応し、前記第2アクセスカウントは前記第2ゾーングループに含まれた基準データゾーンのアクセス回数に対応することを特徴とするストレージシステム。
【請求項2】
第2記憶装置をさらに含み、
前記第1ゾーングループは前記第1記憶装置に割り当てられ、
前記第2ゾーングループは前記第2記憶装置に割り当てられ、
前記システムコントローラは、
前記ターゲットデータゾーンに移動されたデータを前記第2記憶装置に保存することを特徴とする請求項1に記載のストレージシステム。
【請求項3】
前記システムコントローラは、
前記第1記憶装置に保存されたデータをリードするリード動作を行うように前記第1記憶装置を制御し、前記ターゲットデータゾーンに移動されたデータを前記第2記憶装置に保存する書き込み動作を行うように前記第2記憶装置を制御するストレージティア制御部と、
前記第1ゾーングループ及び前記第2ゾーングループのそれぞれに保存されたデータがアクセスされた回数を示すアクセスカウント情報を保存するアクセスカウント保存部と、
前記アクセスカウント情報に基づいて前記第1アクセスカウント及び前記第2アクセスカウントを取得し、前記第1アクセスカウント及び前記第2アクセスカウントを比較し、比較結果に応じて前記ソースデータゾーンにロードされたデータを前記ターゲットデータゾーンに移動させるように前記キャッシュティアを制御するキャッシュティア制御部と、を含むことを特徴とする請求項2に記載のストレージシステム。
【請求項4】
前記キャッシュティア制御部は、
前記ソースデータゾーンに保存されたデータのアクセスカウントの平均値を前記第1アクセスカウントで計算し、
前記基準データゾーンに保存されたデータのアクセスカウントの平均値を前記第2アクセスカウントで計算することを特徴とする請求項3に記載のストレージシステム。
【請求項5】
前記第1ゾーングループ及び前記第2ゾーングループはそれぞれ、
ホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンを含み、
前記第1ゾーングループ内のホットデータゾーンに保存されたデータのアクセスカウントの平均値が前記第1ゾーングループ内のウォームデータゾーンに保存されたデータのアクセスカウントの平均値より大きく、
前記第1ゾーングループ内のウォームデータゾーンに保存されたデータのアクセスカウントの平均値が前記第1ゾーングループ内のコールドデータゾーンに保存されたデータのアクセスカウントの平均値より大きいことを特徴とする請求項3に記載のストレージシステム。
【請求項6】
前記ソースデータゾーンは、
前記第1ゾーングループ内のウォームデータゾーンであり、
前記基準データゾーンは、
前記第2ゾーングループ内のウォームデータゾーンであり、
前記ターゲットデータゾーンは、
前記第2ゾーングループ内のホットデータゾーンであり、
前記キャッシュティア制御部は、
前記第1アクセスカウントが前記第2アクセスカウントより大きければ、前記ソースデータゾーンにロードされたデータを前記第2ゾーングループ内で前記ターゲットデータゾーンに対応する前記ホットデータゾーンに移動させるように前記キャッシュティアを制御することを特徴とする請求項5に記載のストレージシステム。
【請求項7】
前記ソースデータゾーンは、
前記第1ゾーングループ内のウォームデータゾーンであり、
前記基準データゾーン及び前記ターゲットデータゾーンは、
前記第2ゾーングループ内のウォームデータゾーンであり、
前記キャッシュティア制御部は、
前記第1アクセスカウントが前記第2アクセスカウントと同じであれば、前記ソースデータゾーンにロードされたデータを前記第2ゾーングループ内で前記ターゲットデータゾーンに対応する前記ウォームデータゾーンに移動させるように前記キャッシュティアを制御することを特徴とする請求項5に記載のストレージシステム。
【請求項8】
前記ソースデータゾーンは、
前記第1ゾーングループ内のウォームデータゾーンであり、
前記基準データゾーンは、
前記第2ゾーングループ内のウォームデータゾーンであり、
前記ターゲットデータゾーンは、
前記第2ゾーングループ内のコールドデータゾーンであり、
前記キャッシュティア制御部は、
前記第1アクセスカウントが前記第2アクセスカウントより小さければ、前記ソースデータゾーンにロードされたデータを前記第2ゾーングループ内で前記ターゲットデータゾーンに対応する前記コールドデータゾーンに移動させるように前記キャッシュティアを制御することを特徴とする請求項5に記載のストレージシステム。
【請求項9】
前記キャッシュティア制御部は、
予め設定された重み付けのうち選択された前記第2記憶装置に対応する重み付けを前記第2アクセスカウントに割り当て、
前記第2記憶装置に対応する重み付けが割り当てられた第2アクセスカウントと前記第1アクセスカウントを比較した結果に応じて、前記ソースデータゾーンにロードされたデータを前記ターゲットデータゾーンに移動させるように前記キャッシュティアを制御することを特徴とする請求項3に記載のストレージシステム。
【請求項10】
前記キャッシュティア制御部は、
前記第2ゾーングループ内のホットデータゾーンに保存されたデータのサイズが前記第2ゾーングループ内のホットデータゾーンの記憶容量を満たせば、前記第2ゾーングループ内のホットデータゾーンに保存されたデータのLRU(least recently used)に該当するデータを前記第2ゾーングループ内のウォームデータゾーンに移動させるように前記キャッシュティアを制御することを特徴とする請求項3に記載のストレージシステム。
【請求項11】
前記キャッシュティア制御部は、
前記第2ゾーングループ内のウォームデータゾーンに保存されたデータのサイズが前記第2ゾーングループ内のウォームデータゾーンの記憶容量を満たせば、前記第2ゾーングループ内のウォームデータゾーンに保存されたデータのLRUに該当するデータを前記第2ゾーングループ内のコールドデータゾーンに移動させるように前記キャッシュティアを制御することを特徴とする請求項10に記載のストレージシステム。
【請求項12】
前記キャッシュティア制御部は、
前記第2ゾーングループ内のコールドデータゾーンに保存されたデータのサイズが前記第2ゾーングループ内のコールドデータゾーンの記憶容量を満たせば、前記第2ゾーングループ内のコールドデータゾーンに保存されたデータのLRUに該当するデータを削除するように前記キャッシュティアを制御することを特徴とする請求項11に記載のストレージシステム。
【請求項13】
前記第1記憶装置は第1速度でアクセスされ、
前記キャッシュティアは前記第1速度より速い第2速度でアクセスされることを特徴とする請求項1に記載のストレージシステム。
【請求項14】
複数の記憶装置を含むストレージティアと、
前記複数の記憶装置に保存されるデータを一時的に保存したり、前記複数の記憶装置からリードされたデータを一時的に保存する複数のゾーングループを含むキャッシュティアと、
前記複数の記憶装置のうちソース記憶装置に保存されたデータを前記キャッシュティアを介して前記複数の記憶装置のうちターゲット記憶装置に移動させるシステムコントローラと、を含み、
前記複数のゾーングループは、
前記複数の記憶装置毎にそれぞれ割り当てられ、
保存されたデータの平均アクセスカウントに応じて区分されるN個(Nは1より大きい自然数)のデータゾーンをそれぞれ含み、
前記システムコントローラは、
前記ソース記憶装置に保存されたデータを前記ソース記憶装置に割り当てられたゾーングループであるソースゾーングループ内のN個のデータゾーンのうち第1データゾーンにロードし、
前記第1データゾーンに保存されたデータの第1平均アクセスカウントと、前記ターゲット記憶装置に割り当てられたターゲットゾーングループ内のN個のデータゾーンのうち第2データゾーンに保存されたデータの第2平均アクセスカウントとを比較し、
前記第1平均アクセスカウントが前記第2平均アクセスカウントより小さいかまたは同じであれば、前記第1データゾーンにロードされたデータを前記第2データゾーンに移動させるように前記キャッシュティアを制御し、
前記第2データゾーンに移動されたデータを前記ターゲット記憶装置に保存するように前記ストレージティアを制御することを特徴とするストレージシステム。
【請求項15】
前記第2データゾーンは、
前記ターゲットゾーングループ内のN個のデータゾーンのうち最も少ない平均アクセスカウントのデータを保存することを特徴とする請求項14に記載のストレージシステム。
【請求項16】
前記システムコントローラは、
前記第1平均アクセスカウントが前記第2平均アクセスカウントより大きければ、二番目に低い平均アクセスカウントのデータを保存するように設定された第3データゾーンに保存されたデータの第3平均アクセスカウントと前記第1平均アクセスカウントとを比較し、
前記第1平均アクセスカウントが前記第3平均アクセスカウントより小さいかまたは同じであれば、前記第1データゾーンにロードされたデータを前記第3データゾーンに移動させるように前記キャッシュティアを制御し、
前記第3データゾーンに移動されたデータを前記ターゲット記憶装置に保存するように前記ストレージティアを制御することを特徴とする請求項15に記載のストレージシステム。
【請求項17】
前記システムコントローラは、
前記複数の記憶装置のそれぞれに対応する重み付けのうち選択された前記ターゲット記憶装置に対応する重み付けを前記第2平均アクセスカウントに割り当てることを特徴とする請求項14に記載のストレージシステム。
【請求項18】
第1記憶装置と、
第2記憶装置と、
前記第1記憶装置に保存されるデータを一時的に保存したり、前記第1記憶装置からリードされたデータを一時的に保存する第1キャッシュ領域と、
前記第2記憶装置に保存されるデータを一時的に保存したり、前記第2記憶装置からリードされたデータを一時的に保存する第2キャッシュ領域と、
前記第1キャッシュ領域及び前記第2キャッシュ領域を介して前記第1記憶装置と前記第2記憶装置との間でデータが移動されるように制御するシステムコントローラと、を含み、
前記第1キャッシュ領域及び前記第2キャッシュ領域は、
平均アクセスカウントに基づいて再決定された順にデータを保存するように設定されたホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンをそれぞれ含み、
前記第1キャッシュ領域に保存されたデータの平均アクセスカウントは、
前記第2キャッシュ領域に保存されたデータの平均アクセスカウントより大きく、
前記システムコントローラは、
前記第1記憶装置に保存されたデータを前記第2キャッシュ領域のホットデータゾーンに一時的に保存し、前記第2キャッシュ領域のホットデータゾーンに一時的に保存されたデータを前記第2記憶装置に保存することを特徴とするストレージシステム。
【請求項19】
前記システムコントローラは、
前記第1記憶装置に保存されたデータを前記第1キャッシュ領域のウォームデータゾーンにロードし、
前記第1キャッシュ領域のウォームデータゾーンにロードされたデータを前記第2キャッシュ領域のホットデータゾーンに一時的に保存することを特徴とする請求項18に記載のストレージシステム。
【請求項20】
前記システムコントローラは、
前記第2記憶装置に保存されたデータを前記第1キャッシュ領域のコールドデータゾーンに一時的に保存させた後、前記第1キャッシュ領域のコールドデータゾーンに一時的に保存されたデータを前記第1記憶装置に保存することを特徴とする請求項18に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は電子装置に関し、より具体的に本発明はストレージシステムに関する。
【背景技術】
【0002】
記憶装置はメモリコントローラとメモリ装置を含んでもよい。メモリコントローラはホストからの信号に基づいてメモリ装置へのデータの保存を制御することができる。
【0003】
揮発性メモリ装置は、電源から電力が供給される間のみデータを保存する。若し、電力の供給が遮断されると、揮発性メモリ装置に保存されたデータは消失する。揮発性メモリ装置の例には、静的ランダムアクセスメモリ(Static Random Access Memory;SRAM)、動的ランダムアクセスメモリ(Dynamic Random Access Memory;DRAM)が含まれる。
【0004】
不揮発性メモリ装置は、電源が遮断されてもデータを保存する。不揮発性メモリ装置の例には、ロム(Read Only Memory;ROM)、PROM(Programmable ROM)、EPROM(Electrically Programmable ROM)、EEPROM(Electrically Erasable and Programmable ROM)及びフラッシュメモリ(Flash Memory)が含まれる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施例は、キャッシュされるデータの属性に基づいてキャッシュされたデータを区分して一時的に保存することで性能を改善するストレージシステムを提供する。
【課題を解決するための手段】
【0006】
本発明の一実施例に係るストレージシステムは、第1記憶装置と、データを一時的に保存する第1ゾーングループ及び第2ゾーングループを含むキャッシュティアと、第1記憶装置に保存されたデータをキャッシュティアに移動させるシステムコントローラと、を含み、第1ゾーングループ及び第2ゾーングループはそれぞれ、データがアクセスされる回数に基づいてデータを保存するように設定される複数のデータゾーンを含み、システムコントローラは、第1記憶装置に保存されたデータを第1ゾーングループに含まれたソースデータゾーンにロードし、ソースデータゾーンがアクセスされた回数である第1アクセスカウントと第2アクセスカウントに基づいてソースデータゾーンにロードされたデータを第2ゾーングループに含まれたターゲットデータゾーンに移動させ、第1アクセスカウントはソースデータゾーンのアクセス回数に対応し、第2アクセスカウントは第2ゾーングループに含まれた基準データゾーンのアクセス回数に対応することができる。
【0007】
本発明のさらに他の実施例に係るストレージシステムは、複数の記憶装置を含むストレージティアと、複数の記憶装置に保存されるデータを一時的に保存したり、複数の記憶装置からリードされたデータを一時的に保存する複数のゾーングループを含むキャッシュティアと、複数の記憶装置のうちソース記憶装置に保存されたデータをキャッシュティアを介して複数の記憶装置のうちターゲット記憶装置に移動させるシステムコントローラと、を含み、複数のゾーングループは、複数の記憶装置毎にそれぞれ割り当てられ、保存されたデータの平均アクセスカウントに応じて区分されるN個(Nは1より大きい自然数)のデータゾーンをそれぞれ含み、システムコントローラは、ソース記憶装置に保存されたデータをソース記憶装置に割り当てられたゾーングループであるソースゾーングループ内のN個のデータゾーンのうち第1データゾーンにロードし、第1データゾーンに保存されたデータの第1平均アクセスカウントと、ターゲット記憶装置に割り当てられたゾーングループであるターゲットゾーングループ内のN個のデータゾーンのうち第2データゾーンに保存されたデータの第2平均アクセスカウントとを比較し、第1平均アクセスカウントが第2平均アクセスカウントより小さいかまたは同じであれば、第1データゾーンにロードされたデータを第2データゾーンに移動させるようにキャッシュティアを制御し、第2データゾーンに移動されたデータをターゲット記憶装置に保存するようにストレージティアを制御することができる。
【0008】
本発明のさらに他の実施例に係るストレージシステムは、第1記憶装置と、第2記憶装置と、第1記憶装置に保存されるデータを一時的に保存したり、第1記憶装置からリードされたデータを一時的に保存する第1キャッシュ領域と、第2記憶装置に保存されるデータを一時的に保存したり、第2記憶装置からリードされたデータを一時的に保存する第2キャッシュ領域と、第1キャッシュ領域及び第2キャッシュ領域を介して第1記憶装置と第2記憶装置との間でデータが移動されるように制御するシステムコントローラと、を含み、第1キャッシュ領域及び第2キャッシュ領域は、平均アクセスカウントに基づいて再決定された順にデータを保存するように設定されたホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンをそれぞれ含み、第1キャッシュ領域に保存されたデータの平均アクセスカウントは、第2キャッシュ領域に保存されたデータの平均アクセスカウントより大きく、システムコントローラは、第1記憶装置に保存されたデータを第2キャッシュ領域のホットデータゾーンに一時的に保存し、第2キャッシュ領域のホットデータゾーンに一時的に保存されたデータを第2記憶装置に保存することができる。
【0009】
本発明のさらに他の実施例に係る装置は、命令を保存する記憶領域、及び第1記憶装置及びそれぞれ複数のデータゾーンを含む第1ゾーングループと第2ゾーングループを含むキャッシュティアを制御するための命令を実行するように構成されたコントローラを含んでもよい。コントローラは、第1ゾーングループの複数のデータゾーンのうち1つに対応するソースデータゾーンにおいて第1記憶装置に保存されたデータをロードするロード動作及びソースデータゾーンにロードされたデータを第2ゾーングループの複数のデータゾーンのうち1つに対応するターゲットデータゾーンに移動させる移動動作を第1アクセスカウント及び第2アクセスカウントに基づいて遂行することができる。第1アクセスカウントはソースデータゾーンのアクセスカウントに対応し、第2アクセスカウントは第2ゾーングループの複数のデータゾーンのうち1つに対応する基準データゾーンのアクセス回数に対応することができる。
【発明の効果】
【0010】
本技術によると、キャッシュされるデータの属性に基づいてキャッシュされたデータを区分して一時的に保存することで性能を改善するストレージシステムが提供される。
【図面の簡単な説明】
【0011】
【
図1】本発明の一実施例に係るストレージシステムを説明するための図である。
【
図2】本発明の一実施例に係るストレージシステムを具体的に説明するための図である。
【
図3】キャッシュティア内でデータを移動させる一実施例を説明するための図である。
【
図4】本発明の一実施例に係るアクセスカウント保存部を説明するための図である。
【
図5】アクセスカウント情報を含む第1~第3テーブルを説明するための図である。
【
図6】キャッシュティア内でデータを移動させる他の実施例を説明するための図である。
【
図7】本発明の一実施例に係るストレージシステムの動作方法を説明するためのフローチャートである。
【
図8】本発明の一実施例に係る記憶装置を説明するための図である。
【
図9】本発明の一実施例に係るメモリ装置を説明するための図である。
【
図10】本発明の一実施例に係るメモリブロックを説明するための図である。
【
図11】本発明の一実施例に係るメモリコントローラを説明するための図である。
【
図12】本発明の一実施例に係る記憶装置が適用されたメモリカードシステムを示すブロック図である。
【
図13】本発明の実施例に係る記憶装置が適用されたSSD(Solid State Drive)システムを示すブロック図である。
【
図14】本発明の実施例に係る記憶装置が適用されたユーザーシステムを示すブロック図である。
【発明を実施するための形態】
【0012】
本明細書または出願に開示されている本発明の概念による実施例に対する特定の構造的ないし機能的説明は、本発明の概念による実施例を説明するためだけに例示されたものであり、本発明の概念による実施例は様々な形態で実施されてもよく、本明細書または出願に説明された実施例に限定されると解釈すべきではない。
【0013】
図1は本発明の一実施例に係るストレージシステムを説明するための図である。
【0014】
図1を参照すると、ストレージシステム1は、ユーザーが保存しようとするデータを保存したり、ユーザーが求めるデータを提供するシステムであってもよい。
【0015】
ストレージシステム1は、PC(personal computer)、データセンター(data center)、企業型データストレージシステム、DAS(direct attached storage)を含むデータ処理システム、SAN(storage area network)を含むデータ処理システム、NAS(network attached storage)を含むデータ処理システムなどで具現されてもよい。
【0016】
ストレージシステム1は、システムコントローラ(System Controller)10と、キャッシュティア(Cache Tier)20と、ストレージティア(Storage Tier)30と、を含んでもよい。
【0017】
システムコントローラ10は、キャッシュティア20を介してストレージティア30にデータを保存したり、キャッシュティア20を介してストレージティア30に保存されたデータを取得することができる。
【0018】
一実施例において、システムコントローラ10は外部のソースから提供されたデータをキャッシュティア20に一時的に保存することができる。システムコントローラ10はキャッシュティア20に一時的に保存されたデータをストレージティア30に出力するようにキャッシュティア20を制御することができる。また、システムコントローラ10はキャッシュティア20に一時的に保存されたデータをストレージティア30に保存するようにストレージティア30を制御することができる。
【0019】
具体的に、例えば、システムコントローラ10は、キャッシュティア20に一時的に保存されたデータをストレージティア30に出力(またはフラッシュ(flush))することを命令するフラッシュコマンド(flush command)をキャッシュティア20に提供することができる。システムコントローラ10は、ストレージティア30へのデータ保存を要求する書き込み要求とデータを識別するための論理アドレスをストレージティア30に提供することができる。
【0020】
一実施例において、システムコントローラ10はストレージティア30に保存されたデータが出力されるようにストレージティア30を制御することができる。例えば、システムコントローラ10はストレージティア30から出力されたデータをキャッシュティア20に一時的に保存することができる。システムコントローラ10はキャッシュティア20に一時的に保存されたデータを外部に提供することができる。
【0021】
例えば、システムコントローラ10は、ストレージティア30に保存されたデータのリードを要求するリード要求とストレージティア30に保存されたデータを識別するための論理アドレスをストレージティア30に提供することができる。システムコントローラ10は、リードしたデータをキャッシュティア20に一時的に保存することができる。一実施例において、システムコントローラ10は、キャッシュティア20に一時的に保存されたデータを外部の要求者または目的地に提供するようにキャッシュティア20を制御することができる。
【0022】
システムコントローラ10は、データをストレージティア30に保存したりストレージティア30に保存されたデータを取得するためにキャッシュティア20と通信することができ、ストレージティア30と通信することもできる。
【0023】
システムコントローラ10は、インターフェースを介してキャッシュティア20と通信してもよく、インターフェースを介しストレージティア30と通信してもよい。キャッシュティア20はインターフェースを介してストレージティア30と通信してもよい。このような通信には同じインターフェースまたは異なるインターフェースが用いられてもよい。インターフェースの例としては、SATA(serial advanced technology attachment)インターフェース、SATAe(SATA express)インターフェース、SAS(serial attached small computer system interface)インターフェース、PCIe(peripheral component interconnect express)インターフェース、NVMe(non-volatile memory Express)インターフェース、AHCI(advanced host controller interface)インターフェース、またはマルチメディアカード(multimedia card)インターフェースが含まれてもよいが、これに限定されるものではない。
【0024】
一実施例において、システムコントローラ10は、ホストHOSTまたは異なる類型の装置であってもく、これに含まれてもよい。
【0025】
キャッシュティア20は、システムコントローラ10から提供されたデータを一時的に保存したり、ストレージティア30から出力されたデータを一時的に保存することができる。例えば、キャッシュティア20は、ストレージティア30に保存されるデータを一時的に保存したり、ストレージティア30に保存されたデータを一時的に保存することができる。このため、キャッシュティア20は1つ以上の揮発性メモリ装置を含んでもよい。キャッシュティア20は少なくとも1つの揮発性メモリ装置の集合であってもよい。
【0026】
例えば、1つ以上の揮発性メモリ装置には、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)、LPDDR4(Low Power Double Data Rate4) SDRAM、GDDR(Graphics Double Data Rate) SDRAM、LPDDR(Low Power DDR)、RDRAM(Rambus Dynamic random access memory)、抵抗変化型メモリ(resistive random access memory:RRAM)、相変化メモリ(phase-change memory:PRAM)、磁気抵抗メモリ(magnetoresistive random access memory:MRAM)、強誘電体メモリ(ferroelectric random access memory)、スピン注入磁化反転メモリ(spin transfer torque magnetoresistive random access memory)などが含まれてもよい。
【0027】
一実施例において、キャッシュティア20は複数の揮発性メモリ装置21、22、23、24を含んでもよい。例えば、キャッシュティア20は、DRAM21、SRAM22、RDRAM23、及びSTT-MRAM(Spin-Transfer Torque Magnetoresistive RAM)24を含んでもよいが、キャッシュティア20は他の実施例において1つ以上の異なる類型のメモリ装置を含んでもよい。
【0028】
一実施例において、キャッシュティア20はストレージティア30がアクセスされる速度より速い速度でアクセスされることができる。即ち、システムコントローラ10がキャッシュティアをアクセスする速度は、システムコントローラ10がストレージティア30をアクセスする速度より速くてもよい。
【0029】
ストレージティア30は1つ以上の記憶装置の集合であってもよい。ストレージティア30はデータを保存したり、既に保存されたデータを出力することができる。
【0030】
一実施例において、ストレージティア30は、システムコントローラ10から提供された書き込み要求に応答してシステムコントローラ10により提供されたデータを保存し、保存が完了したという応答(response)をシステムコントローラ10に提供することができる。
【0031】
一実施例において、ストレージティア30は、システムコントローラ10から提供されたリード要求に応答してシステムコントローラ10が提供した論理アドレスに対応するデータをリードし、リードしたデータをリード要求に対する応答として出力することができる。
【0032】
一実施例において、ストレージティア30は複数の記憶装置(Storage Devices)31_1、31_2、31_nを含んでもよい。ストレージティア30に保存された複数の記憶装置31_1、31_2、31_nの数はn個(nは1より大きい自然数)であってもよい。
【0033】
複数の記憶装置31_1、31_2、31_nのそれぞれはデータを保存したり、保存されたデータをキャッシュティア20に出力することができる。当該動作の例示的な実施例は
図8~
図11を参照して後述する。
【0034】
一実施例において、ストレージティア30がアクセスされる速度はキャッシュティア20がアクセスされる速度より遅くてもよい。
【0035】
システムコントローラ10が記憶装置をアクセスする頻度は複数の記憶装置31_1、31_2、31_n毎に異なってもよい。複数の記憶装置31_1、31_2、31_nのうち第1記憶装置31_1がアクセスされる頻度は、複数の記憶装置31_1、31_2、31_nから第1記憶装置31_1を除いた記憶装置31_2、31_nがアクセスされる頻度より多くてもよい。システムコントローラ10が記憶装置をアクセスするのは、システムコントローラ10がデータを記憶装置に保存したり、記憶装置に保存されたデータをリードすることであってもよい。
【0036】
記憶装置がアクセスされる頻度が複数の記憶装置31_1、31_2、31_n毎に異なる場合、複数の記憶装置31_1、31_2、31_n毎に有する寿命が異なることがある。例えば、第1記憶装置31_1がアクセスされる頻度が複数の記憶装置31_1、31_2、31_nのうち最も多いと、第1記憶装置31_1の寿命が複数の記憶装置31_1、31_2、31_nのうち最も短い可能性がある。この場合、ストレージシステム1の性能がストレージシステムにおける記憶装置の寿命のばらつきにより低下することがある。
【0037】
ストレージシステム1の性能低下を防ぐために、記憶装置がアクセスされる頻度が相対的に多い一記憶装置に保存されたデータが記憶装置がアクセスされる頻度が相対的に少ない他の記憶装置に移動されてもよい。
【0038】
一実施例において、複数の記憶装置31_1、31_2、31_nの間でデータを移動させることで、記憶装置がアクセスされる頻度を均一に保持することができる。また、複数の記憶装置31_1、31_2、31_nのそれぞれが有する寿命が均一に保持されることで、ストレージシステム1の性能の過度な低下を防止することができる。
【0039】
一方、記憶装置の容量や記憶装置がアクセスされる頻度などは複数の記憶装置31_1、31_2、31_n毎に異なってもよい。例えば、第1記憶装置31_1がアクセスされる速度が複数の記憶装置31_1、31_2、31_nのうち最も速くてもよい。例えば、第2記憶装置31_2の記憶容量が複数の記憶装置31_1、31_2、31_nのうち最も大きくてもよい。
【0040】
求められるデータをより速くアクセスするために、アクセス速度の比較的遅い記憶装置に保存されたデータがアクセスされる速度の比較的速い記憶装置に移動されてもよい。
【0041】
複数の記憶装置31_1、31_2、31_nの間でデータを移動させることにより、データをユーザーにより速く提供することで、ストレージシステム1の性能が改善されることができる。
【0042】
図2は本発明の一実施例に係るストレージシステムを具体的に説明するための図である。
【0043】
図1及び
図2を参照すると、一実施例において、システムコントローラ10は、複数の記憶装置31_1、31_2、31_nのうちソース記憶装置に保存されたデータをキャッシュティア20を介して複数の記憶装置31_1、31_2、31_nのうちターゲット記憶装置に移動させることができる。例えば、このような移動動作は、ソース記憶装置に保存されたデータがターゲット記憶装置にコピー(copy)され、ソース記憶装置に保存されたデータが無効(invalid)処理されるときに行われてもよい。
【0044】
ソース記憶装置はターゲット記憶装置に移動するデータを保存した記憶装置であってもよい。例えば、第1記憶装置31_1がソース記憶装置である場合、ターゲット記憶装置は複数の記憶装置31_1、31_2、31_nのうち記憶装置31_2、31_nの何れか1つの記憶装置であってもよい。
【0045】
キャッシュティア20は複数のデータ領域を含んでもよい。データ領域はデータの属性が同じデータ同士が一時的に保存される領域であってもよい。複数のデータ領域の数はN個(Nは1より大きい自然数)であってもよい。
図2を参照すると、例えば、複数のデータ領域の数は3個であってもよい。以下では、説明の便宜上、複数のデータ領域を第1~第3データ領域20_1、20_2、20_3であると仮定する。
【0046】
一実施例において、第1~第3データ領域20_1、20_2、20_3はデータの属性に応じて区分されてもよい。データの属性は、例えば、ホットデータ、ウォームデータ及びコールドデータに区分されることができる。ホットデータ、ウォームデータ及びコールドデータはデータがアクセスされる回数に応じて区分されてもよい。
【0047】
データの属性がホットデータ、ウォームデータ及びコールドデータに区分される場合、第1~第3データ領域20_1、20_2、20_3は、ホットデータ領域、ウォームデータ領域、及びコールドデータ領域に区分されることができる。
【0048】
ホットデータ領域はデータの属性がホットデータであるデータが保存される領域であってもよい。ウォームデータ領域はデータの属性がウォームデータであるデータが保存される領域であってもよい。コールドデータ領域はデータの属性がコールドデータであるデータが保存される領域であってもよい。例えば、第1データ領域20_1がホットデータ領域であり、第2データ領域20_2がウォームデータ領域であり、第3データ領域20_3がコールドデータ領域であってもよい。他の実施例において、ホット、ウォーム、コールドデータ領域は第1~第3データ領域20_1、20_2、20_3の異なる組み合わせに対応することができる。
【0049】
一実施例において、少なくとも1つのデータ領域は
図1に示す複数の揮発性メモリ装置21、22、23、24の何れか1つに対応することができる。この場合、各データ領域は複数の揮発性メモリ装置21、22、23、24のそれぞれのアクセス速度(例えば、書き込み速度)に応じて対応してもよい。
【0050】
例えば、一般的に複数の揮発性メモリ装置21、22、23、24のうちDRAM21のアクセス速度よりRDRAM23のアクセス速度が速く、RDRAM23のアクセス速度よりSRAM22のアクセス速度が速い。この場合、第1データ領域20_1はSRAM22に対応し、第2データ領域20_2はRDRAM23に対応し、第3データ領域20_3はDRAM21に対応することができる。しかし、これに限定されず、第1~第3データ領域20_1、20_2、20_3のうち第1データ領域20_1がアクセス速度の最も速い揮発性メモリ装置に対応し、第1~第3データ領域20_1、20_2、20_3のうち第3データ領域20_3がアクセス速度の最も遅い揮発性メモリ装置に対応してもよい。
【0051】
他の例として、第1データ領域20_1はSRAM22に対応し、第2データ領域20_2及び第3データ領域20_3がRDRAM23に対応してもよい。しかし、これに限定されるものではない。
【0052】
1つのデータ領域は複数のデータゾーンを含んでもよい。例えば、第1データ領域20_1は第1_1~第1_nデータゾーンZone1_1、Zone1_2、Zone1_nを含み、第2データ領域20_2は第2_1~第2_nデータゾーンZone2_1、Zone2_2、Zone2_nを含み、第3データ領域20_3は第3_1~第3_nデータゾーンZone3_1、Zone3_2、Zone3_nを含んでもよい。
【0053】
1つのデータ領域に含まれた複数のデータゾーンの数はストレージティア30に含まれた複数の記憶装置31_1、31_2、31_nの数に対応することができる。例えば、複数の記憶装置31_1、31_2、31_nの数がn個である場合、第1データ領域20_1に含まれた第1_1~第1_nデータゾーンZone1_1、Zone1_2、Zone1_nの数はn個であってもよい。また、第2データ領域20_2に含まれた第2_1~第2_nデータゾーンZone2_1、Zone2_2、Zone2_nの数もn個であってもよく、第3データ領域20_3に含まれた第3_1~第3_nデータゾーンZone3_1、Zone3_2、Zone3_nの数もn個であってもよい。
【0054】
1つのデータゾーンは予め設定された記憶容量を有する記憶空間であってもよい。1つのデータ領域に含まれた複数のデータゾーンのそれぞれの記憶容量は同一または異なってもよい。例えば、1つのデータ領域に含まれた複数のデータゾーンの何れか1つのデータゾーンに第1データが保存され、1つのデータ領域に含まれた複数のデータゾーンの他の1つのデータゾーンに第1データ及び第2データが保存されてもよい。しかし、これに限定しない。本明細書において、「データゾーン」または「ゾーン」は同じ意味であることができる。
【0055】
一実施例において、キャッシュティア20は複数のゾーングループZone Group 1、Zone Group 2、Zone Group nを含んでもよい。
【0056】
複数のゾーングループZone Group 1、Zone Group 2、Zone Group nは、複数の記憶装置31_1、31_2、31_nに保存されるデータを一時的に保存したり、複数の記憶装置31_1、31_2、31_nからリードしたデータを一時的に保存することができる。
【0057】
複数のゾーングループZone Group 1、Zone Group 2、Zone Group nは複数の記憶装置31_1、31_2、31_n毎に割り当てられるグループであってもよい。例えば、第1ゾーングループZone Group 1は第1記憶装置31_1に対して割り当てられたグループであってもよい。第2ゾーングループZone Group 2は第2記憶装置31_2に対して割り当てられたグループであってもよい。第nゾーングループZone Group nは第n記憶装置31_nに対して割り当てられたグループであってもよい。
【0058】
一実施例において、第1記憶装置31_1に保存されたデータは第1ゾーングループZone Group 1に一時的に保存されてもよい。または第1ゾーングループZone Group 1に一時的に保存されたデータは第1記憶装置31_1に保存されてもよい。
【0059】
一実施例において、第2記憶装置31_2に保存されたデータは第2ゾーングループZone Group 2に一時的に保存されてもよい。または第2ゾーングループZone Group 2に一時的に保存されたデータは第2記憶装置31_2に保存されてもよい。
【0060】
一実施例において、第3記憶装置31_3に保存されたデータは第3ゾーングループZone Group 3に一時的に保存されてもよい。または第3ゾーングループZone Group 3に一時的に保存されたデータは第3記憶装置31_3に保存されてもよい。
【0061】
複数のゾーングループZone Group 1、Zone Group 2、Zone Group nはN個(Nは1より大きい自然数)のデータゾーンをそれぞれ含んでもよい。例えば、1つのゾーングループは、第1データ領域20_1に含まれた1つのデータゾーンと、第2データ領域20_2に含まれた1つのデータゾーンと、第3データ領域20_3に含まれた1つのデータゾーンと、を含むことができる。従って、1つのゾーングループは3つのデータゾーンを含むことができるが、他の実施例では異なる数のゾーンを含んでもよい。
【0062】
ここで、N個のデータゾーンは各データゾーンに保存されたデータの平均アクセスカウントに応じて区分されてもよい。平均アクセスカウントは1つのデータゾーンに保存されたデータのアクセスカウントの平均値であることができる。アクセスカウントはデータがアクセスされた回数を示す値であることができる。または、アクセスカウントは各データゾーンがアクセスされた回数を示す値であることができる。例えば、キャッシュティア20に一時的に保存されるデータが第1_1データゾーンZone1_1にロードされると、第1_1データゾーンZone1_1がアクセスされた回数を示すアクセスカウントが増加することができる。
【0063】
一実施例において、ホットデータ領域である第1データ領域20_1に含まれた第1_1~第1_nデータゾーンZone1_1、Zone1_2、Zone1_nのそれぞれはホットデータゾーンであってもよい。ウォームデータ領域である第2データ領域20_2に含まれた第2_1~第2_nデータゾーンZone2_1、Zone2_2、Zone2_nのそれぞれはウォームデータゾーンであってもよい。コールドデータ領域である第3データ領域20_3に含まれた第3_1~第3_nデータゾーンZone3_1、Zone3_2、Zone3_nのそれぞれはコールドデータゾーンであってもよい。
【0064】
一実施例において、1つの記憶装置に保存されたデータの属性がホットデータである場合、1つの記憶装置に保存されたデータはホットデータゾーンに一時的に保存されてもよい。1つの記憶装置に保存されたデータの属性がウォームデータである場合、1つの記憶装置に保存されたデータはウォームデータゾーンに一時的に保存されてもよい。1つの記憶装置に保存されたデータの属性がコールドデータである場合、1つの記憶装置に保存されたデータはコールドデータゾーンに一時的に保存されてもよい。
【0065】
一実施例において、ホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンは、1つの記憶装置に保存されたデータがアクセスされる回数に応じてデータが一時的に保存されるゾーンであってもよい。例えば、ホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンのそれぞれに予め決定された順序、例えば、平均アクセスカウントの降順にデータが保存されてもよい。例えば、この順序によると、ホットデータゾーンに保存されたデータの平均アクセスカウントが最も大きく、コールドデータゾーンに保存されたデータの平均アクセスカウントが最も小さくてもよい。他の実施例では異なる予め決定された順序が用いられてもよい。
【0066】
一実施例において、ホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンはデータゾーンがアクセスされる回数に応じて区分されるゾーンであってもよい。
【0067】
記憶装置に保存されるデータはゾーングループに一時的に保存されるか、記憶装置からリードしたデータがゾーングループに一時的に保存されるため、ゾーングループはキャッシュ領域であってもよい。例えば、第1ゾーングループZone Group 1は第1キャッシュ領域であり、第2ゾーングループZone Group 2は第2キャッシュ領域であってもよい。
【0068】
一実施例において、システムコントローラ10は1つの記憶装置と1つの記憶装置に対して割り当てられた1つのゾーングループを1つの名前空間Name Spaceで管理することができる。例えば、システムコントローラ10は、第1記憶装置31_1と第1ゾーングループZone Group 1を第1名前空間Name Space 1で管理し、第2記憶装置31_2と第2ゾーングループZone Group 2を第2名前空間Name Space 2で管理し、第n記憶装置31_nと第nゾーングループZone Group nを第n名前空間Name Space nで管理することができる。
【0069】
システムコントローラ10は、ソース記憶装置に保存されたデータをソースゾーングループに含まれたN個のデータゾーンのうちソースデータゾーンにロードすることができる。ここで、ソースゾーングループはソース記憶装置に割り当てられたゾーングループであってもよい。例えば、ソース記憶装置が第1記憶装置31_1である場合、ソースゾーングループは第1ゾーングループZone Group 1であってもよい。ソースデータゾーンはソースゾーングループに含まれたN個のデータゾーンの何れか1つのデータゾーンであってもよい。例えば、ソースゾーングループが第1ゾーングループZone Group 1であれば、ソースデータゾーンは第1ゾーングループZone Group 1に含まれた第1_1、第2_1及び第3_1データゾーンZone1_1、Zone2_1、Zone3_1の何れか1つであってもよい。
【0070】
一実施例において、システムコントローラ10はソース記憶装置に保存されたデータをソースゾーングループのウォームデータゾーンにロードすることができる。例えば、ソース記憶装置が第1記憶装置31_1である場合、ソースゾーングループは第1ゾーングループZone Group 1であり、第1ゾーングループZone Group 1のウォームデータゾーンは第1ゾーングループZone Group 1に含まれた第1_1、第2_1及び第3_1データゾーンZone1_1、Zone2_1、Zone3_1のうち第2データ領域20_2に含まれた第2_1データゾーンZone2_1であってもよい。このとき、第1ゾーングループZone Group 1のウォームデータゾーンがソースデータゾーンであってもよい。
【0071】
一実施例において、システムコントローラ10はソース記憶装置に保存されたデータをソースゾーングループのホットデータゾーンにロードすることができる。例えば、ソース記憶装置が第1記憶装置31_1である場合、ソースゾーングループは第1ゾーングループZone Group 1であり、第1ゾーングループZone Group 1のホットデータゾーンは第1_1、第2_1及び第3_1データゾーンZone1_1、Zone2_1、Zone3_1のうち第1データ領域20_1に含まれた第1_1データゾーンZone1_1であってもよい。このとき、第1ゾーングループZone Group 1のホットデータゾーンがソースデータゾーンであってもよい。
【0072】
一実施例において、システムコントローラ10はソース記憶装置に保存されたデータをソースゾーングループのコールドデータゾーンにロードすることができる。例えば、ソース記憶装置が第1記憶装置31_1である場合、ソースゾーングループは第1ゾーングループZone Group 1であり、第1ゾーングループZone Group 1のコールドデータゾーンは第1_1、第2_1及び第3_1データゾーンZone1_1、Zone2_1、Zone3_1のうち第3データ領域20_3に含まれた第3_1データゾーンZone3_1であってもよい。このとき、第1ゾーングループZone Group 1のコールドデータゾーンがソースデータゾーンであってもよい。
【0073】
以下では、説明の便宜上、ソースデータゾーンはウォームデータゾーンであると仮定して本発明の実施例を説明する。
【0074】
ソース記憶装置に保存されたデータがソースゾーングループのウォームデータゾーンにロードされると、システムコントローラ10はソースゾーングループのウォームデータゾーンがアクセスされた回数である第1アクセスカウントと、ターゲットゾーングループの基準データゾーンがアクセスされた回数である第2カウントとを取得することができる。第1アクセスカウントと第2アクセスカウントを取得する方法は
図4及び
図5を参照して後述する。
【0075】
ターゲットゾーングループはターゲット記憶装置に割り当てられたゾーングループであってもよい。例えば、ターゲット記憶装置が第2記憶装置31_2である場合、ターゲットゾーングループは第2ゾーングループZone Group 2であってもよい。そして、ターゲットゾーングループの基準データゾーンは、第2ゾーングループZone Group 2に含まれた第1_2、第2_2及び第3_2データゾーンZone1_2、Zone2_2、Zone3_2の何れか1つのデータゾーンであってもよい。具体的に例えると、ターゲットゾーングループの基準データゾーンは第2データ領域20_2に含まれた第2_2データゾーンZone2_2、即ち、ウォームデータゾーンであってもよい。
【0076】
以下では、説明の便宜上、ターゲットゾーングループの基準データゾーンはウォームデータゾーンであることを基準に本発明の実施例を説明する。
【0077】
第1アクセスカウントと第2アクセスカウントを取得すると、システムコントローラ10は第1アクセスカウントと第2アクセスカウントに基づいて、ソースゾーングループのウォームデータゾーンにロードされたデータをターゲットデータゾーンに移動させるようにキャッシュティア20を制御することができる。ここで、ターゲットデータゾーンは、ターゲットゾーングループに含まれたホットデータゾーン、ウォームデータゾーン及びコールドデータゾーンの何れか1つのデータゾーンであってもよい。
【0078】
システムコントローラ10は、ターゲットデータゾーンに移動したデータをターゲット記憶装置に保存するようにストレージティア30を制御することができる。
【0079】
一実施例において、システムコントローラ10は、ストレージティア制御部(Storage Tier Controller)11、キャッシュティア制御部(Cache Tier Controller)12、及びアクセスカウント保存部(Access Count Memory)13を含んでもよい。
【0080】
ストレージティア制御部11は、ソース記憶装置に保存されたデータをリードするリード動作を行うようにソース記憶装置を制御することができる。
【0081】
ストレージティア制御部11は、ターゲットデータゾーンに移動したデータをターゲット記憶装置に保存する書き込み動作を行うようにターゲット記憶装置を制御することができる。
【0082】
キャッシュティア制御部12は、アクセスカウント保存部13から提供されるアクセスカウント情報に基づいて第1アクセスカウント及び第2アクセスカウントを取得することができる。
【0083】
キャッシュティア制御部12は第1アクセスカウント及び第2アクセスカウントを比較することができる。例えば、キャッシュティア制御部12は、第1アクセスカウントが第2アクセスカウントより大きいかどうかを比較することができる。または、キャッシュティア制御部12は、第1アクセスカウントが第2アクセスカウントより小さいかまたは同じかを比較することができる。
【0084】
キャッシュティア制御部12は、比較した結果に応じてソースゾーングループのウォームデータゾーンにロードされたデータをターゲットデータゾーンに移動させるようにキャッシュティア20を制御することができる。
【0085】
アクセスカウント保存部13はアクセスカウント情報を保存することができる。アクセスカウント情報は、複数のデータゾーンZone1_1、Zone2_1、Zone3_1、Zone1_2、Zone2_2、Zone3_2、Zone1_n、Zone2_n、Zone3_nのそれぞれに保存されたデータがアクセスされた回数、即ち、アクセスカウントを示す情報であってもよい。これに対する具体的な説明は
図4及び
図5を参照して後述する。
【0086】
複数の記憶装置31_1、31_2、31_nは1つ以上の互いに異なる特性または属性、例えば、運営ポリシー、有効寿命、用途及び/または1つ以上の異なる特性を有することができる。この場合、キャッシュティア制御部12は複数の記憶装置31_1、31_2、31_nのそれぞれに対応する重み付けを予め設定することができる。キャッシュティア制御部12が第1アクセスカウントと第2アクセスカウントを比較するとき、キャッシュティア制御部12は複数の記憶装置31_1、31_2、31_nから選択されたターゲット記憶装置の特性に対応する重み付けを第2アクセスカウントに反映することができる。
【0087】
具体的には、例えば、キャッシュティア制御部12は複数の記憶装置31_1、31_2、31_nのそれぞれに対応する重み付けのうちターゲット記憶装置に対応する重み付けを第2アクセスカウントに反映することができる。そして、キャッシュティア制御部12は、ターゲット記憶装置に対応する重み付けが反映された第2アクセスカウントと第1アクセスカウントを比較した結果に応じてソースゾーングループのウォームデータゾーンにロードされたデータをターゲットデータゾーンに移動させるようにキャッシュティア20を制御することができる。
【0088】
他の実施例において、システムコントローラ10は、ソース記憶装置に保存されたデータをソースゾーングループに含まれたN個のデータゾーンのうち第1データゾーンにロードすることができる。ソース記憶装置に保存されたデータが第1データゾーンにロードされると、システムコントローラ10は、第1データゾーンに保存されたデータの第1平均アクセスカウントと、ターゲットゾーングループに含まれたN個のデータゾーンのうち第2データゾーンに保存されたデータの第2平均アクセスカウントとを比較することができる。システムコントローラ10は、第1平均アクセスカウントが第2平均アクセスカウントより小さいかまたは同じかに応じて、第1データゾーンにロードされたデータを第2データゾーンに移動させるようにキャッシュティア20を制御することができる。システムコントローラ10は、第2データゾーンに移動されたデータをターゲット記憶装置に保存するようにストレージティア30を制御することができる。
【0089】
さらに他の実施例において、第1キャッシュ領域(例えば、第1ゾーングループZone Group 1)に保存されたデータの平均アクセスカウントは、第2キャッシュ領域(例えば、第2ゾーングループZone Group 2)に保存されたデータの平均アクセスカウントより大きくてもよい。この場合、システムコントローラ10は、1つの記憶装置(例えば、第1記憶装置31_1)及び他の記憶装置(例えば、第2記憶装置31_2)の間で移動されデータの移動動作を第1キャッシュ領域と第2キャッシュ領域を介して制御することができる。具体的には、システムコントローラ10は、第1記憶装置31_1に保存されたデータを第2キャッシュ領域のホットデータゾーン(例えば、第1_2データゾーンZone1_2)に一時的に保存させた後、第2キャッシュ領域のホットデータゾーンに一時的に保存されたデータを第2記憶装置31_2に保存することができる。
【0090】
図3はキャッシュティア内でデータを移動させる一実施例を説明するための図である。
【0091】
図3に示す実施例を説明するに当たり、ソース記憶装置は第1記憶装置31_1であり、ソースゾーングループは第1ゾーングループZone Group 1であり、ターゲット記憶装置は第2記憶装置31_2であり、ターゲットゾーングループは第2ゾーングループZone Group 2であると仮定する。
【0092】
また、第1データ領域20_1はホットデータ領域で、第2データ領域20_2はウォームデータ領域で、第3データ領域20_3はコールドデータ領域であると仮定する。
【0093】
また、第1データ領域20_1に含まれた第1_1及び第1_2データゾーンZone1_1、Zone1_2のそれぞれはホットデータゾーンであり、第2データ領域20_2に含まれた第2_1及び第2_2データゾーンZone2_1、Zone2_2のそれぞれはウォームデータゾーンであり、第3データ領域20_3に含まれた第3_1及び第3_2データゾーンZone3_1、Zone3_2のそれぞれはコールドデータゾーンであると仮定する。
【0094】
一実施例において、システムコントローラ10は、ユーザーの要求に応じて第1記憶装置31_1に保存されたデータを第2記憶装置31_2に移動させるようにキャッシュティア20及びストレージティア30を制御することができる。
【0095】
図2及び
図3を参照すると、例えば、システムコントローラ10は、第1記憶装置31_1に保存されたデータを第2キャッシュ領域のホットデータゾーンに一時的に保存させた後、第2キャッシュ領域のホットデータゾーンに一時的に保存されたデータを第2記憶装置31_2に保存することができる。
【0096】
具体的に、例えば、ストレージティア制御部11は、第1記憶装置31_1に保存された第xデータDATAx(xは自然数)をリードするリード動作を行うように第1記憶装置31_1を制御することができる。第1記憶装置31_1はリード動作を行い、第xデータDATAxを出力することができる。ストレージティア制御部11は、第xデータDATAxを第1ゾーングループZone Group 1に含まれた第2_1データゾーンZone2_1にロードすることができる。この場合、第xデータDATAxは最近アクセスされたデータなので、第xデータDATAxの属性はホットデータとして扱われることができる。キャッシュティア制御部12は、第2_1データゾーンZone2_1に保存された第xデータDATAxを第2ゾーングループZone Group 2に含まれた第1_2データゾーンZone1_2に保存するようにキャッシュティア20を制御することができる。ストレージティア制御部11は、第1_2データゾーンZone1_2に保存された第xデータDATAxを第2記憶装置31_2に保存する書き込み動作を行うように第2記憶装置31_2を制御することができる。
【0097】
第xデータDATAxが第1記憶装置31_1から第2記憶装置31_2に移動した後、システムコントローラ10は第1記憶装置31_1に保存された第yデータDATAy(yは自然数)を第2記憶装置31_2に移動させるようにストレージティア30を制御することができる。具体的には、第1記憶装置31_1に保存された第yデータDATAyが第1ゾーングループZone Group 1に含まれた第2_1データゾーンZone2_1にロードされることができる。第yデータDATAyは最近アクセスされたデータなので、第yデータDATAyの属性はホットデータであることができる。第2_1データゾーンZone2_1に保存された第yデータDATAyは第2ゾーングループZone Group 2に含まれた第1_2データゾーンZone1_2に移動されることができる。
【0098】
このとき、第1_2データゾーンZone1_2に保存された第xデータDATAxと第yデータDATAyのサイズが、第2ゾーングループZone Group 2に含まれた第1_2データゾーンZone1_2の記憶容量を満たすことができる。この場合、キャッシュティア制御部12は、第1_2データゾーンZone1_2に保存された第xデータDATAxと第yデータDATAyのうちLRU(least recently used)に該当する第xデータDATAxを第2ゾーングループZone Group 2に含まれた第2_2データゾーンZone2_2に移動させるようにキャッシュティア20を制御することができる。
【0099】
一方、第1_2データゾーンZone1_2に保存された第yデータDATAyは第2記憶装置31_2に保存されることができる。
【0100】
第yデータDATAyが第1記憶装置31_1から第2記憶装置31_2に移動した後、第1記憶装置31_1に保存された第zデータDATAz(zは自然数)も第2記憶装置31_2に移動されることができる。
【0101】
このとき、第2_1データゾーンZone2_1に保存された第zデータDATAzは、第2ゾーングループZone Group 2に含まれた第1_2データゾーンZone1_2に移動され、第1_2データゾーンZone1_2に保存された第yデータDATAyと第zデータDATAzのサイズが第1_2データゾーンZone1_2の記憶容量を満たすことができる。この場合、第yデータDATAyと第zデータDATAzのうちLRUに該当する第yデータDATAyが第2_2データゾーンZone2_2に移動されることができる。
【0102】
第yデータDATAyが第2_2データゾーンZone2_2に移動されることによって、第2_2データゾーンZone2_2に保存された第xデータDATAxと第yデータDATAyのサイズが第2_2データゾーンZone2_2の記憶容量を満たすことができる。この場合、キャッシュティア制御部12は、第2_2データゾーンZone2_2に保存された第xデータDATAxと第yデータDATAyのうちLRUに該当する第xデータDATAxを第2ゾーングループZone Group 2に含まれた第3_2データゾーンZone3_2に移動させるようにキャッシュティア20を制御することができる。
【0103】
一方、第1_2データゾーンZone1_2に保存された第zデータDATAzは第2記憶装置31_2に保存されることができる。
【0104】
図示されていないが、第zデータDATAzが第1記憶装置31_1から第2記憶装置31_2に移動された後、第1記憶装置31_1に保存されたさらに他のデータが第2記憶装置31_2に移動されてもよい。第1_2データゾーンZone1_2に保存された第zデータDATAzとさらに他のデータのサイズが第1_2データゾーンZone1_2の記憶容量を満たすと、第zデータDATAzが第2_2データゾーンZone2_2に移動されることができる。第2_2データゾーンZone2_2に保存された第yデータDATAy及び第zデータDATAzのサイズが第2_2データゾーンZone2_2の記憶容量を満たすと、第yデータDATAyが第3_2データゾーンZone3_2に移動されることができる。
【0105】
第yデータDATAyが第3_2データゾーンZone3_2に移動されることによって、第3_2データゾーンZone3_2に保存された第xデータDATAxと第yデータDATAyのサイズが第3_2データゾーンZone3_2の記憶容量を満たすことができる。この場合、キャッシュティア制御部12は、第3_2データゾーンZone3_2に保存された第xデータDATAxと第yデータDATAyのうちLRUに該当する第xデータDATAxを削除するようにキャッシュティア20を制御することができる。
【0106】
図3を参照して上述した実施例では、第xデータDATAxが第2記憶装置31_2に保存されてから第yデータDATAyが第2記憶装置31_2に保存され、第yデータDATAyが第2記憶装置31_2に保存されてから第zデータDATAzが第2記憶装置31_2に保存されると説明した。しかし、これに限定されず、第xデータDATAx、第yデータDATAy、及び第zデータDATAzが第1記憶装置31_1から一度に出力されても上述した実施例を適用することができる。
【0107】
他の実施例において、キャッシュティア20に保存されたデータがターゲット記憶装置に保存される動作の場合、第1記憶装置31_1に保存されたデータがキャッシュティア20の第2_1データゾーンZone2_1、第1_2データゾーンZone1_2、第2_2データゾーンZone2_2を経て第3_2データゾーンZone3_2に最終的に移動された後、第3_2データゾーンZone3_2に一時的に保存されたデータだけがターゲット記憶装置に保存されてもよい。
図3を参照すると、例えば、第xデータDATAx、第yデータDATAy及び第zデータDATAzのうち第3_2データゾーンZone3_2に一時的に保存された第xデータDATAxだけが第2記憶装置31_2に保存されることができる。
【0108】
一方、複数の記憶装置31_1、31_2、31_n毎に運営ポリシーが異なってもよい。この場合、データが複数の記憶装置31_1、31_2、31_nのうちどの記憶装置に保存されるかによって、そのデータの属性が異なるように扱われることができる。例えば、第1記憶装置31_1に保存されたデータの属性がホットデータとして扱われても、第1記憶装置31_1に保存されたデータが第2記憶装置31_2でウォームデータまたはコールドデータとして扱われることができる。この場合、第1記憶装置31_1に保存されたデータがホットデータゾーンに該当する第1_2データゾーンZone1_2に常に移動されると、そのデータは第2記憶装置31_2でウォームデータまたはコールドデータとして扱われるべきであるにもかかわらず、そのデータがホットデータとして扱われることがある。これは第2記憶装置31_2の運営ポリシーに合わないため、ストレージシステム1の性能が低下する恐れがある。従って、ソース記憶装置に保存されたデータのアクセスカウントとターゲット記憶装置に保存されたデータのアクセスカウントに基づいて、ソース記憶装置に保存されたデータをキャッシュティア20内で適切に区分して保存する必要がある。
【0109】
図4は本発明の一実施例に係るアクセスカウント保存部を説明するための図であり、
図5はアクセスカウント情報を含む第1~第3テーブルを説明するための図である。
【0110】
図2及び
図4を参照すると、アクセスカウント保存部13は複数のデータゾーンZone1_1、Zone2_1、Zone3_1、Zone1_2、Zone2_2、Zone3_2、Zone1_n、Zone2_n、Zone3_nがアクセスされた回数をそれぞれ示すアクセスカウント情報を含むことができる。具体的には、アクセスカウント保存部13は、複数のデータゾーンZone1_1、Zone2_1、Zone3_1、Zone1_2、Zone2_2、Zone3_2、Zone1_n、Zone2_n、Zone3_nのそれぞれに含まれたデータのアクセスカウントを示すアクセスカウント情報を含んでもよい。アクセスカウント情報は、例えば、テーブル状に整理されてアクセスカウント保存部13に保存されてもよい。
【0111】
図2及び
図4を参照すると、例えば、アクセスカウント保存部13は、第1データ領域(First Data Region)20_1に含まれた第1_1~第1_nデータゾーンZone1_1、Zone1_2、Zone1_nのそれぞれに保存されたデータのアクセスカウント情報を含む第1_1~第1_nテーブルTable1_1、Table1_2、Table1_nを保存することができる。ここで、第1_1テーブルTable1_1は、第1データ領域20_1に含まれた第1_1データゾーンZone1_1に保存されたデータのアクセスカウント情報を含んでもよい。第1_2テーブルTable1_2は、第1データ領域20_1に含まれた第1_2データゾーンZone1_2に保存されたデータのアクセスカウント情報を含んでもよい。第1_nテーブルTable1_nは、第1データ領域20_1に含まれた第1_nデータゾーンZone1_nに保存されたデータのアクセスカウント情報を含んでもよい。
【0112】
図2及び
図4を参照すると、例えば、アクセスカウント保存部13は、第2データ領域(Second Data Region)20_2に含まれた第2_1~第2_nデータゾーンZone2_1、Zone2_2、Zone2_nのそれぞれに保存されたデータのアクセスカウント情報を含む第2_1~第2_nテーブルTable2_1、Table2_2、Table2_nを保存することができる。ここで、第2_1テーブルTable2_1は、第2データ領域20_2に含まれた第2_1データゾーンZone2_1に保存されたデータのアクセスカウント情報を含んでもよい。第2_2テーブルTable2_2は、第2データ領域20_2に含まれた第2_2データゾーンZone2_2に保存されたデータのアクセスカウント情報を含んでもよい。第2_nテーブルTable2_nは、第2データ領域20_2に含まれた第2_nデータゾーンZone2_nに保存されたデータのアクセスカウント情報を含んでもよい。
【0113】
図2及び
図4を参照すると、例えば、アクセスカウント保存部13は、第3データ領域(Third Data Region)20_3に含まれた第3_1~第3_nデータゾーンZone3_1、Zone3_2、Zone3_nのそれぞれに保存されたデータのアクセスカウント情報を含む第3_1~第3_nテーブルTable3_1、Table3_2、Table3_nを保存することができる。ここで、第3_1テーブルTable3_1は、第3データ領域20_3に含まれた第3_1データゾーンZone3_1に保存されたデータのアクセスカウント情報を含んでもよい。第3_2テーブルTable3_2は、第3データ領域20_3に含まれた第3_2データゾーンZone3_2に保存されたデータのアクセスカウント情報を含んでもよい。第3_nテーブルTable3_nは、第3データ領域20_3に含まれた第3_nデータゾーンZone3_nに保存されたデータのアクセスカウント情報を含んでもよい。
【0114】
一実施例において、アクセスカウント情報は、複数のゾーングループZone Group 1、Zone Group 2、Zone Group nのそれぞれに含まれたホットデータゾーン(例えば、Zone1_1、Zone1_2、及びZone1_nの何れか1つ)に保存されたデータのアクセスカウントを示す情報を含んでもよい。
【0115】
一実施例において、アクセスカウント情報は、複数のゾーングループZone Group 1、Zone Group 2、Zone Group nのそれぞれに含まれたウォームデータゾーン(例えば、Zone2_1、Zone2_2、及びZone2_nの何れか1つ)に保存されたデータのアクセスカウントを示す情報を含んでもよい。
【0116】
一実施例において、アクセスカウント情報は、複数のゾーングループZone Group 1、Zone Group 2、Zone Group nのそれぞれに含まれたコールドデータゾーン(例えば、Zone3_1、Zone3_2、及びZone3_nの何れか1つ)に保存されたデータのアクセスカウントを示す情報を含んでもよい。
【0117】
図5を参照すると、
図5に示す第1テーブルTable1は、
図4に示す第1_1~第1_nテーブルTable1_1、Table1_2、Table1_nの何れか1つであってもよい。
図5に示す第2テーブルTable2は、
図4に示す第2_1~第2_nテーブルTable2_1、Table2_2、Table2_nの何れか1つであってもよい。
図5に示す第3テーブルTable3は、
図4に示す第3_1~第3_nテーブルTable3_1、Table3_2、Table3_nの何れか1つであってもよい。
【0118】
第1テーブルTable1は、第1~第5データDATA1~DATA5の第1~第5アクセスカウントAccess Count1~Access Count5を示す情報を含んでもよい。第2テーブルTable2は、第6~第10データDATA6~DATA10の第6~第10アクセスカウントAccess Count6~Access Count10を示す情報を含んでもよい。第3テーブルTable3は、第11~第15データDATA11~DATA15の第11~第15アクセスカウントAccess Count11~Access Count15を示す情報を含んでもよい。
【0119】
また、
図4を参照すると、一実施例において、キャッシュティア制御部12は、複数のテーブルTable1_1、Table2_1、Table3_1、Table1_2、Table2_2、Table3_2、Table1_n、Table2_n、Table3_nを参照してデータの平均アクセスカウントを計算することができる。
【0120】
図5を参照すると、例えば、キャッシュティア制御部12は、第1テーブルTable1に含まれた第1~第5アクセスカウントAccess Count1~Access Count5の平均値である第x平均アクセスカウントAverage Access Count xを計算することができる。
【0121】
図5を参照すると、例えば、キャッシュティア制御部12は、第2テーブルTable2に含まれた第6~第10アクセスカウントAccess Count6~Access Count10の平均値である第y平均アクセスカウントAverage Access Count yを計算することができる。
【0122】
図5を参照すると、例えば、キャッシュティア制御部12は、第3テーブルTable3に含まれた第11~第15アクセスカウントAccess Count11~Access Count15の平均値である第z平均アクセスカウントAverage Access Count zを計算することができる。
【0123】
一実施例において、キャッシュティア制御部12は、ソースゾーングループのウォームデータゾーンに保存されたデータのアクセスカウントの平均値を第1アクセスカウントで計算し、ターゲットゾーングループのウォームデータゾーンに保存されたデータのアクセスカウントの平均値を第2アクセスカウントで計算することができる。
【0124】
図2、
図4及び
図5を参照すると、例えば、ソースゾーングループが第1ゾーングループZone Group 1であり、ターゲットゾーングループが第2ゾーングループZone Group 2であると仮定すると、キャッシュティア制御部12は、第2_1テーブルTable2_1に含まれたアクセスカウントの平均値を第1アクセスカウントで計算することができる。キャッシュティア制御部12は、第2_2テーブルTable2_2に含まれたアクセスカウントの平均値を第2アクセスカウントで計算することができる。ここで、アクセスカウントの平均値は、
図5を参照して上述したように計算することができる。
【0125】
他の実施例において、平均アクセスカウントは、アクセスカウント保存部13に保存された複数のテーブルTable1_1、Table2_1、Table3_1、Table1_2、Table2_2、Table3_2、Table1_n、Table2_n、Table3_nのそれぞれに含まれてもよい。この場合、キャッシュティア制御部12は、別途の演算動作なしにアクセスカウント保存部13から平均アクセスカウントを取得することができる。
【0126】
一実施例では、複数のゾーングループZone Group 1、Zone Group 2、Zone Group nの何れか1つのゾーングループにおいて、ホットデータゾーンに保存されたデータのアクセスカウントの平均値がウォームデータゾーンに保存されたデータのアクセスカウントの平均値より大きくてもよい。そして、ウォームデータゾーンに保存されたデータのアクセスカウントの平均値がコールドデータゾーンに保存されたデータのアクセスカウントの平均値より大きくてもよい。
【0127】
図4及び
図5を参照すると、例えば、複数のゾーングループZone Group 1、Zone Group 2、Zone Group nの何れか1つのゾーングループが第1ゾーングループZone Group 1であり、第1テーブルTable1が第1_1テーブルTable1_1で、第2テーブルTable2が第2_1テーブルTable2_1で、第3テーブルTable3が第3_1テーブルTable3_1であると仮定する。第x平均アクセスカウントAverage Access Count xが第y平均アクセスカウントAverage Access Count yより大きくてもよい。そして、第y平均アクセスカウントAverage Access Count yが第z平均アクセスカウントAverage Access Count zより大きくてもよい。
【0128】
他の実施例において、第1キャッシュ領域に保存されたデータの平均アクセスカウントは、第2キャッシュ領域に保存されたデータの平均アクセスカウントより大きくてもよい。例えば、第1ゾーングループZone Group 1に保存された第1_1、第2_1、及び第3_1テーブルTable1_1、Table2_1、Table3_1のアクセスカウントの平均値である平均アクセスカウントは、第2ゾーングループZone Group 2に保存された第1_2、第2_2、及び第3_2テーブルTable1_2、Table2_2、Table3_2のアクセスカウントの平均値である平均アクセスカウントより大きくてもよい。
【0129】
一実施例において、キャッシュティア制御部12は、アクセスカウント保存部13に保存されたアクセスカウント情報と予め設定された基準アクセスカウント情報に基づいて、アクセスカウント保存部13に保存されたアクセスカウント情報をリセットまたは初期化することができる。
【0130】
図6はキャッシュティア内でデータを移動させる他の実施例を説明するための図である。
【0131】
図6に示す実施例を説明するに当たり、ソース記憶装置は第1記憶装置31_1であり、ソースゾーングループは第1ゾーングループZone Group 1であり、ターゲット記憶装置は第2記憶装置31_2であり、ターゲットゾーングループは第2ゾーングループZone Group 2であると仮定する。
【0132】
また、第1データ領域20_1はホットデータ領域、第2データ領域20_2はウォームデータ領域、及び第3データ領域20_3はコールドデータ領域であると仮定する。
【0133】
また、第1データ領域20_1に含まれた第1_1及び第1_2データゾーンZone1_1、Zone1_2のそれぞれはホットデータゾーンであり、第2データ領域20_2に含まれた第2_1及び第2_2データゾーンZone2_1、Zone2_2のそれぞれはウォームデータゾーンであり、第3データ領域20_3に含まれた第3_1及び第3_2データゾーンZone3_1、Zone3_2のそれぞれはコールドデータゾーンであると仮定する。
【0134】
図2及び
図6を参照すると、一実施例において、ストレージティア制御部11は、第1記憶装置31_1に保存された第xデータDATAx、第yデータDATAy、及び第zデータDATAzをリードするリード動作を行うように第1記憶装置31_1を制御することができる。第1記憶装置31_1は第xデータDATAx、第yデータDATAy及び第zデータDATAzを出力することができる。ストレージティア制御部11は第xデータDATAx、第yデータDATAy及び第zデータDATAzを第1データゾーンにロードすることができる。ここで、第1データゾーンは第2_1データゾーンZone2_1であってもよい。この場合、第1データゾーンがアクセスされる回数が増加することができる。例えば、第xデータDATAx、第yデータDATAy及び第zデータDATAzが第2_1データゾーンZone2_1にロードされると、第2_1データゾーンZone2_1がアクセスされる回数が3だけ増加することができる。
【0135】
キャッシュティア制御部12は、第1データゾーンに保存されたデータの第1アクセスカウントと、第2ゾーングループZone Group 2に含まれた第2データゾーンに保存されたデータの第2アクセスカウントとを比較することができる。
【0136】
ここで、第1アクセスカウントは第2_1データゾーンZone2_1に保存されたデータのアクセスカウントの平均値、即ち、第1平均アクセスカウントであってもよい。第2アクセスカウントは第2_2データゾーンZone2_2に保存されたデータのアクセスカウントの平均値、即ち、第2平均アクセスカウントであってもよい。
【0137】
一実施例において、第2ゾーングループZone Group 2に含まれた第2データゾーンはウォームデータ領域である第2_2データゾーンZone2_2であってもよい。
【0138】
一実施例において、キャッシュティア制御部12は、第1アクセスカウントと第2アクセスカウントを比較した結果に基づいて、第1ゾーングループZone Group 1の第2_1データゾーンZone2_1にロードされたデータを第2ゾーングループZone Group 2に含まれたターゲットデータゾーンに移動させるようにキャッシュティア20を制御することができる。この場合、ターゲットデータゾーンがアクセスされる回数は増加しないことがある。
【0139】
具体的には、例えば、キャッシュティア制御部12は、第1アクセスカウントが第2アクセスカウントより大きければ、第1ゾーングループZone Group 1の第2_1データゾーンZone2_1にロードされたデータを第2ゾーングループZone Group 2に含まれた第1_2データゾーンZone1_2に移動させるようにキャッシュティア20を制御することができる。
【0140】
また、キャッシュティア制御部12は、第1アクセスカウントが第2アクセスカウントと同じであれば、第1ゾーングループZone Group 1の第2_1データゾーンZone2_1にロードされたデータを第2ゾーングループZone Group 2に含まれた第2_2データゾーンZone2_2に移動させるようにキャッシュティア20を制御することができる。
【0141】
また、キャッシュティア制御部12は、第1アクセスカウントが第2アクセスカウントより小さければ、第1ゾーングループZone Group 1の第2_1データゾーンZone2_1にロードされたデータを第2ゾーングループZone Group 2に含まれた第3_2データゾーンZone3_2に移動させるようにキャッシュティア20を制御することができる。
【0142】
他の実施例において、第2ゾーングループZone Group 2に含まれた第2データゾーンは、第2ゾーングループZone Group 2に含まれた3つのデータゾーンのうち最も少ない平均アクセスカウントのデータが保存されたゾーンであってもよい。具体的には、例えば、第2ゾーングループZone Group 2に含まれた第1_2、第2_2、及び第3_2データゾーンZone1_2、Zone2_2、Zone3_2のうちコールドデータゾーンである第3_2データゾーンZone3_2に保存されたデータの平均アクセスカウントが最も少なくてもよい。従って、第2データゾーンは第3_2データゾーンZone3_2であることができる。しかし、これに限定されない。
【0143】
他の実施例において、キャッシュティア制御部12は、第1平均アクセスカウントが第2平均アクセスカウントより小さいかまたは同じかに応じて、第1データゾーン(例えば、第2_1データゾーンZone2_1)にロードされたデータを第2データゾーン(例えば、第3_2データゾーンZone3_2)に移動させるようにキャッシュティア20を制御することができる。
【0144】
他の実施例において、キャッシュティア制御部12は、第2記憶装置31_2に対応する重み付けを第2平均アクセスカウントに反映することができる。
【0145】
他の実施例において、キャッシュティア制御部12は、第1平均アクセスカウントが第2平均アクセスカウントより大きいと、第2データゾーン(例えば、第3_2データゾーンZone3_2)の次に最も少ない平均アクセスカウントのデータが保存されたゾーンである第3データゾーン(例えば、第2_2データゾーンZone2_2)に保存されたデータの第3平均アクセスカウントと第1平均アクセスカウントとを比較することができる。そして、キャッシュティア制御部12は、第1平均アクセスカウントが第3平均アクセスカウントより小さいかまたは同じかに応じて、第1データゾーン(例えば、第2_1データゾーンZone2_1)にロードされたデータを(例えば、第2_2データゾーンZone2_2)に移動させるようにキャッシュティア20を制御することができる。
【0146】
ストレージティア制御部11は、第1データゾーンから第2データゾーンに移動したデータを第2記憶装置31_2に保存するようにストレージティア30を制御することができる。この場合、ターゲットデータゾーンがアクセスされる回数は増加することができる。
【0147】
図示されていないが、第1キャッシュ領域に保存されたデータの平均アクセスカウントが第2キャッシュ領域に保存されたデータの平均アクセスカウントより大きい場合、さらに他の実施例において、キャッシュティア制御部12は第1記憶装置31_1に保存されたデータを第1キャッシュ領域のウォームデータゾーン(例えば、第2_1データゾーンZone2_1)にロードし、第1キャッシュ領域のウォームデータゾーン(例えば、第2_1データゾーンZone2_1)にロードされたデータを第2キャッシュ領域のホットデータゾーン(例えば、第1_2データゾーンZone1_2)に一時的に保存することができる。
【0148】
図示されていないが、さらに他の実施例において、第1キャッシュ領域に保存されたデータの平均アクセスカウントが第2キャッシュ領域に保存されたデータの平均アクセスカウントより大きくてもよい。キャッシュティア制御部12は、第2記憶装置31_2に保存されたデータを第1キャッシュ領域のコールドデータゾーン(例えば、第3_1データゾーンZone3_1)に一時的に保存させた後、第1キャッシュ領域のコールドデータゾーン(例えば、第3_1データゾーンZone3_1)に一時的に保存されたデータを第1記憶装置31_1に保存することができる。
【0149】
図6を参照して上述した実施例では、第xデータDATAx、第yデータDATAy及び第zデータDATAzが第1記憶装置31_1から一度に出力され、第2記憶装置31_2に保存されることを説明したが、これに限定されない。
図3を参照して上述したように、第xデータDATAx、第yデータDATAy及び第zデータDATAzが第1記憶装置31_1から一度に出力されない場合も
図6に示す実施例をそのまま適用することができる。
【0150】
他の実施例では、
図3を参照して上述したように、第2_1データゾーンZone2_1から第3_2データゾーンZone3_2に移動されたデータは直ちに第2記憶装置31_2に保存されることができる。第2_1データゾーンZone2_1から第2_2データゾーンZone2_2に移動されたデータは、第2_2データゾーンZone2_2から第3_2データゾーンZone3_2に移動されてから第2記憶装置31_2に保存されることができる。第2_1データゾーンZone2_1から第1_2データゾーンZone1_2に移動されたデータは、第2_2データゾーンZone2_2を経て第3_2データゾーンZone3_2に移動されてから第2記憶装置31_2に保存されることができる。
【0151】
上述によれば、キャッシュティア20を効率的に運用することで、ストレージシステムの性能が改善される効果がある。
【0152】
また、第1ゾーンの記憶容量が足りない場合、第1ゾーンから第2ゾーンにデータを移動するオーバーヘッドを減らすことで、記憶装置同士の移動動作が迅速に行われることができる。
【0153】
図7は本発明の一実施例に係るストレージシステムの動作方法を説明するためのフローチャートである。
【0154】
図7を参照すると、システムコントローラ10はソース記憶装置に保存されたデータをソースゾーングループのウォームデータゾーンにロードする(S110)。
【0155】
図示されていないが、他の実施例において、システムコントローラ10はソース記憶装置に保存されたデータをソースゾーングループのホットデータゾーンまたはコールドデータゾーンにロードしてもよい。
【0156】
システムコントローラ10は第1アクセスカウント及び第2アクセスカウントを取得する(S120)。
【0157】
システムコントローラ10は第1アクセスカウントが第2アクセスカウントより大きいかどうかを判断する(S130)。
【0158】
第1アクセスカウントが第2アクセスカウントより大きければ(S130、はい)、システムコントローラ10はソースゾーングループのウォームデータゾーンに保存されたデータをターゲットゾーングループに含まれたホットデータゾーンに移動させる(S140)。
【0159】
第1アクセスカウントが第2アクセスカウントより大きくなければ(S130、NO)、システムコントローラ10は第1アクセスカウントが第2アクセスカウントと同じかどうかを判断する(S150)。
【0160】
第1アクセスカウントが第2アクセスカウントと同じであれば(S150、はい)、システムコントローラ10はソースゾーングループのウォームデータゾーンに保存されたデータをターゲットゾーングループに含まれたウォームデータゾーンに移動させる(S160)。
【0161】
第1アクセスカウントが第2アクセスカウントより小さければ(S150、NO)、システムコントローラ10はソースゾーングループのウォームデータゾーンに保存されたデータをターゲットゾーングループに含まれたコールドデータゾーンに移動させる(S170)。
【0162】
ターゲットゾーングループに含まれたターゲットデータゾーンにデータが移動した後、システムコントローラ10はターゲットデータゾーンに保存されたデータをターゲット記憶装置に保存する(S180)。
【0163】
図8は本発明の一実施例に係る記憶装置を説明するための図である。
【0164】
図1及び
図8を参照すると、
図8に示す記憶装置1000は、
図1に示す複数の記憶装置31_1、31_2、31_nの何れか1つの記憶装置であってもよい。
【0165】
記憶装置1000は、携帯電話、スマートフォン、MP3プレーヤー、ラップトップコンピュータ、デスクトップコンピュータ、ゲーム機、TV、タブレットPCまたは車載インフォテインメント(in-vehicle infotainment)システムなどのシステムコントローラ10の要求に応じてデータを保存する装置であってもよい。または、システムコントローラ10がホストである場合、記憶装置1000はホストの要求に応じてデータを保存する装置であってもよい。
【0166】
記憶装置1000は、システムコントローラ10との通信方式であるホストインターフェースに応じて様々な種類の記憶装置の何れか1つで製造されてもよい。例えば、記憶装置1000は、SSD、MMC、eMMC、RS-MMC、micro-MMC形状のマルチメディアカード(multimedia card)、SD、mini-SD、micro-SD形状のセキュアデジタルカード(secure digital card)、USB(universal serial bus)記憶装置、UFS(universal flash storage)装置、PCMCIA(personal computer memory card international association)カード型の記憶装置、PCI(peripheral component interconnection)カード型の記憶装置、PCI-E(PCI express)カード型の記憶装置、CF(compact flash)カード、スマートメディア(smart media)カード、メモリスティック(memory stick)などの様々な種類の記憶装置の何れか1つで構成されてもよい。
【0167】
記憶装置1000は様々な種類のパッケージ(package)の何れか1つに製造されてもよい。例えば、記憶装置1000は、POP(package on package)、SIP(system in package)、SOC(system on chip)、MCP(multi-chip package)、COB(chip on board)、WFP(wafer- level fabricated package)、WSP(wafer-level stack package)などの様々な種類のパッケージの何れか1つに製造されてもよい。
【0168】
記憶装置1000はメモリ装置100及びメモリコントローラ200を含んでもよい。
【0169】
メモリ装置100はメモリコントローラ200の制御に応答して動作することができる。具体的に、メモリ装置100はメモリコントローラ200からコマンド及びアドレスを受信し、メモリセル(不図示)のうちアドレスにより選択されたメモリセルをアクセスすることができる。メモリ装置100はアドレスにより選択されたメモリセルに対してコマンドが指示する動作を行うことができる。
【0170】
コマンドは、例えば、プログラムコマンド、リードコマンド、またはイレースコマンドであってもよく、コマンドが指示する動作は、例えば、プログラム動作(または書き込み動作)、リード動作、または消去動作であってもよい。
【0171】
プログラム動作は、メモリ装置100がメモリコントローラ200の制御に応答してシステムコントローラ10から提供された書き込みデータを保存する動作であってもよい。
【0172】
例えば、メモリ装置100はプログラムコマンド、アドレス及びデータを受信し、アドレスにより選択されたメモリセルにデータをプログラムすることができる。ここで、選択されたメモリセルにプログラムされるデータは書き込みデータと定義されることができる。
【0173】
リード動作は、メモリ装置100がメモリコントローラ200の制御に応答してメモリ装置100に保存されたリードデータを読み出す動作であってもよい。
【0174】
例えば、メモリ装置100はリードコマンド及びアドレスを受信し、メモリセルアレイ(不図示)のうちアドレスにより選択された領域からデータを読み出すことができる。メモリ装置100に保存されたデータのうち選択された領域からリードされるデータはリードデータと定義されることができる。
【0175】
消去動作は、メモリ装置100がメモリコントローラ200の制御に応答してメモリ装置に保存されたデータを消去する動作であってもよい。
【0176】
例えば、メモリ装置100はイレースコマンド及びアドレスを受信し、アドレスにより選択された領域に保存されたデータを消去することができる。
【0177】
メモリ装置100は揮発性メモリ装置または不揮発性メモリ装置で具現されてもよい。
【0178】
例えば、揮発性メモリ装置には、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)、LPDDR4(Low Power Double Data Rate4) SDRAM、GDDR(Graphics Double Data Rate) SDRAM、LPDDR(Low Power DDR)、RDRAM(Rambus Dynamic random access memory)、抵抗変化型メモリ(resistive random access memory:RRAM)、相変化メモリ(phase-change memory:PRAM)、磁気抵抗メモリ(magnetoresistive random access memory:MRAM)、強誘電体メモリ(ferroelectric random access memory)、スピン注入磁化反転メモリ(spin transfer torque magnetoresistive random access memory)などが含まれてもよい。
【0179】
例えば、不揮発性メモリ装置にはフラッシュメモリ(flash memory)が含まれてもよい。フラッシュメモリには、例えば、NAND型フラッシュメモリ(NAND flash memory)、垂直NAND型フラッシュメモリ(Vertical NAND)、NOR型フラッシュメモリ(NOR flash memory)などが含まれてもよい。
【0180】
本明細書では、説明の便宜上、メモリ装置100はNAND型フラッシュメモリであると仮定する。
【0181】
メモリ装置100は、メモリコントローラ200の制御に応じて書き込みデータを保存したり、保存されたリードデータを読み出してリードデータをメモリコントローラ200に提供することができる。
【0182】
メモリ装置100は複数のダイ(不図示)を含んでもよい。1つのダイは少なくとも1つのプレーンを含んでもよい。1つのプレーンは書き込みデータを保存するメモリセルを含むメモリセルアレイ(不図示)を含んでもよい。
【0183】
メモリセルアレイは複数のメモリブロック(不図示)を含んでもよい。メモリブロックはデータを消す消去動作を行う単位であってもよい。
【0184】
メモリブロックは複数のページ(不図示)を含んでもよい。ページは書き込みデータを保存するプログラム動作または保存されたリードデータを読み出すリード動作を行う単位であってもよい。
【0185】
メモリコントローラ200は記憶装置1000の全体的な動作を制御することができる。
【0186】
記憶装置1000に電源が印加されると、メモリコントローラ200はファームウェアのような命令語を実行することができる。メモリ装置100がフラッシュメモリ装置である場合、ファームウェアはホストインターフェースレイヤ(Host Interface Layer)、フラッシュ変換レイヤ(Flash Translation Layer)、及びフラッシュインターフェースレイヤ(Flash Interface Layer)を含んでもよい。
【0187】
ホストインターフェースレイヤは、システムコントローラ10とメモリコントローラ200との間の動作を制御することができる。
【0188】
フラッシュ変換レイヤは、システムコントローラ10から提供される論理アドレスを物理アドレスに変換することができる。
【0189】
フラッシュインターフェースレイヤは、メモリコントローラ200とメモリ装置100との間の通信を制御することができる。
【0190】
メモリコントローラ200は、システムコントローラ10の書き込み要求、リード要求及び消去要求に応答してプログラム動作、リード動作及び消去動作をそれぞれ行うようにメモリ装置100を制御することができる。
【0191】
プログラム動作の際、メモリコントローラ200はプログラムコマンド、物理アドレス及び書き込みデータをメモリ装置100に提供することができる。
【0192】
リード動作の際、メモリコントローラ200はリードコマンド及び物理アドレスをメモリ装置100に提供することができる。
【0193】
消去動作の際、メモリコントローラ200はイレースコマンド及び物理アドレスをメモリ装置100に提供することができる。
【0194】
メモリコントローラ200は、システムコントローラ10から提供された要求に関わらず、自主的にコマンド、アドレス及びデータを生成することができる。メモリコントローラ200は自主的に生成したコマンド、アドレス及びデータをメモリ装置100に伝送することができる。
【0195】
例えば、メモリコントローラ200は背景動作を行うためのコマンド、アドレス及びデータを生成することができる。そして、メモリコントローラ200はコマンド、アドレス及びデータをメモリ装置100に提供することができる。
【0196】
背景動作は、ウェアレベリング(wear leveling)、リードリクレーム(read reclaim)またはガベージコレクション(garbage collection)のうち少なくとも1つであってもよい。
【0197】
ウェアレベリングは、例えば、スタティック・ウェアレベリング、ダイナミック・ウェアレベリングなどを意味することができる。スタティック・ウェアレベリングは、メモリブロックの消去回数を保存し、消去動作や書き込み動作が殆ど起きないコールドデータを最も多い消去回数のメモリブロックに移動させる動作を意味することができる。ダイナミック・ウェアレベリングは、メモリブロックの消去回数を保存し、最も少ない消去回数のメモリブロックにデータをプログラムする動作を意味することができる。
【0198】
リードリクレームは、メモリブロックに保存されたデータに訂正不可エラー(Uncorrectable Error)が発生する前にメモリブロックに保存されたデータを別のメモリブロックに移動させる動作を意味することができる。
【0199】
ガベージコレクションは、メモリブロックのうちバッドブロック(bad block)に含まれた有効データをフリーブロック(free block)にコピーし、バッドブロックに含まれた無効データを消去する動作を意味することができる。ここで、バッドブロックに含まれた有効データをフリーブロックにコピーするとは、バッドブロックに含まれた有効データをフリーブロックに移動させることを意味することができる。
【0200】
図示されていないが、記憶装置1000はバッファメモリ(不図示)をさらに含んでもよい。一実施例において、バッファメモリはメモリコントローラ200に含まれてもよい。
【0201】
例えば、バッファメモリには、DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)、LPDDR4(Low Power Double Data Rate4) SDRAM、GDDR(Graphics Double Data Rate) SDRAM、LPDDR(Low Power DDR)、RDRAM(Rambus Dynamic random access memory)、抵抗変化型メモリ(resistive random access memory:RRAM)、相変化メモリ(phase-change memory:PRAM)、磁気抵抗メモリ(magnetoresistive random access memory:MRAM)、強誘電体メモリ(ferroelectric random access memory)、スピン注入磁化反転メモリ(spin transfer torque magnetoresistive random access memory)などが含まれてもよい。
【0202】
メモリコントローラ200は2つ以上のメモリ装置100を制御することができる。この場合、メモリコントローラ200は、動作性能を向上させるために、メモリ装置100をインターリーブ(interleaving)方式に応じて制御することができる。
【0203】
インタリーブ方式は、2つ以上のメモリ装置100に対する動作が重畳するように制御する方式であってもよい。
【0204】
図9は本発明の一実施例に係るメモリ装置を説明するための図である。
【0205】
図9を参照すると、メモリ装置100はメモリセルアレイ110、周辺回路120、及び制御ロジック130を含んでもよい。
【0206】
メモリセルアレイ110は複数のメモリブロックMB1~MBk(kは正の整数)を含んでもよい。ここで、複数のメモリブロックMB1~MBkの数は本発明の実施例を説明するための例示に過ぎず、これに限定されるものではない。
【0207】
メモリブロックMB1~MBkのそれぞれは、ローカル線(local lines)LLとビット線BL1~BLn(nは正の整数)に接続されてもよい。
【0208】
ローカル線LLはローデコーダ122に接続されてもよい。
【0209】
ローカル線LLはメモリブロックMB1~MBkのそれぞれに接続されてもよい。
【0210】
図示されていないが、ローカル線LLは第1セレクト線(first select line)、第2セレクト線(second select line)、第1セレクト線と第2セレクト線との間に配列された複数のワード線(word lines)を含んでもよい。
【0211】
図示されていないが、ローカル線LLは、第1セレクト線とワード線との間に配列されたダミー線(dummy lines)、第2セレクト線とワード線との間に配列されたダミー線、及びパイプ線(pipe lines)をさらに含んでもよい。
【0212】
ビット線BL1~BLnはメモリブロックMB1~MBkに共通して接続されてもよい。
【0213】
メモリブロックMB1~MBkは2次元または3次元構造で具現されてもよい。
【0214】
例えば、メモリブロックMB1~MBkが2次元構造である場合、メモリセルは基板に平行な方向に配列されることができる。
【0215】
例えば、メモリブロックMB1~MBkが3次元構造である場合、メモリセルは基板に垂直方向に積層されることができる。
【0216】
周辺回路120は、電圧生成部121、ローデコーダ122、ページバッファグループ123、コラムデコーダ124、入出力回路125、及びセンシング回路126を含んでもよい。
【0217】
電圧生成部121は、動作コマンドOP_CMDに応答してプログラム動作、リード動作及び消去動作に使用される様々な動作電圧Vopを生成することができる。また、電圧生成部121は、動作コマンドOP_CMDに応答してローカル線LLを選択的にディスチャージ(discharge)することができる。例えば、電圧生成部121は、制御ロジック130の制御に応じてプログラム電圧、検証電圧、パス電圧、ターンオン電圧、リード電圧、消去電圧及びソース線電圧などを生成することができる。
【0218】
実施例として、電圧生成部121は外部電源電圧をレギュレート(regulating)して内部電源電圧を生成してもよい。電圧生成部121で生成された内部電源電圧はメモリ装置100の動作電圧として使用される。
【0219】
実施例として、電圧生成部121は外部電源電圧または内部電源電圧を用いて複数の電圧を生成することができる。例えば、電圧生成部121は内部電源電圧を受信する複数のポンピングキャパシタを含み、制御ロジック130の制御に応答して複数のポンピングキャパシタを選択的に活性化することで複数の電圧を生成する。生成された複数の電圧はローデコーダ122によってメモリセルアレイ110に供給されてもよい。
【0220】
ローデコーダ122は、ローアドレスRADDに応答して動作電圧Vopをローカル線LLに伝達することができる。動作電圧Vopは、ローカル線LLを介して選択されたメモリブロックMB1~MBkに伝達されることができる。
【0221】
例えば、プログラム動作の際、ローデコーダ122は選択されたワード線にプログラム電圧を印加し、非選択されたワード線にプログラム電圧より低いレベルのプログラムパス電圧を印加する。
【0222】
例えば、プログラム検証動作の際に、ローデコーダ122は選択されたワード線に検証電圧を印加し、非選択されたワード線に検証電圧より高い検証パス電圧を印加する。
【0223】
例えば、リード動作の際に、ローデコーダ122は選択されたワード線にリード電圧を印加し、非選択されたワード線にリード電圧より高いリードパス電圧を印加する。
【0224】
例えば、消去動作の際に、ローデコーダ122はデコードされたアドレスに応じて1つのメモリブロックを選択することができる。消去動作の際、ローデコーダ122は選択されたメモリブロックに接続されるワード線に接地電圧を印加することができる。
【0225】
ページバッファグループ123は、第1~第nページバッファPB1~PBnを含んでもよい。第1~第nページバッファPB1~PBnは、それぞれ第1~第nビット線BL1~BLnを介してメモリセルアレイ110に接続されてもよい。第1~第nページバッファPB1~PBnは制御ロジック130の制御に応答して動作することができる。
【0226】
具体的に、第1~第nページバッファPB1~PBnはページバッファ制御信号PBSIGNALSに応答して動作することができる。例えば、第1~第nページバッファPB1~PBnは、第1~第nビット線BL1~BLnを介して受信したデータを一時的に保存したり、リード動作または検証動作の際にビット線BL1~BLnの電圧または電流をセンシング(sensing)することができる。
【0227】
プログラム動作の際、第1~第nページバッファPB1~PBnは、選択されたワード線にプログラム電圧が印加されるとき、コラムデコーダ124及び入出力回路125を介して受信したデータDATAを第1~第nビット線BL1~BLnを介して選択されたメモリセルに伝達する。伝達されたデータDATAに応じて選択されたページのメモリセルはプログラムされる。プログラム許容電圧(例えば、接地電圧)が印加されるビット線に接続されたメモリセルは、上昇したしきい値電圧を有する。プログラム禁止電圧(例えば、電源電圧)が印加されるビット線に接続されたメモリセルのしきい値電圧は保持される。
【0228】
検証動作の際、第1~第nページバッファPB1~PBnは、選択されたメモリセルから第1~第nビット線BL1~BLnを介して選択されたメモリセルに保存されたデータをセンシングすることができる。
【0229】
リード動作の際、第1~第nページバッファPB1~PBnは選択されたページのメモリセルから第1~第nビット線BL1~BLnを介してデータDATAをセンシングし、センシングしたデータDATAをコラムデコーダ124の制御に応じて入出力回路125に出力することができる。
【0230】
消去動作の際、第1~第nページバッファPB1~PBnは、第1~第nビット線BL1~BLnをフロート(floating)させることができる。
【0231】
コラムデコーダ124は、コラムアドレスCADDに応答して入出力回路125とページバッファグループ123の間でデータを伝達することができる。例えば、コラムデコーダ124は、データ線DLを介してページバッファPB1~PBnとデータをやり取りするか、コラム線CLを介して入出力回路125とデータをやり取りすることができる。
【0232】
入出力回路125は、メモリコントローラ200から伝達されたコマンドCMD及びアドレスADDを制御ロジック130に伝達するか、データDATAをコラムデコーダ124とやり取りすることができる。
【0233】
センシング回路126は、リード動作または検証動作の際に、許容ビットVRY_BIT<#>に応答して基準電流を生成し、ページバッファグループ123から受信したセンシング電圧VPBと基準電流によって生成された基準電圧を比較してパス信号PASSまたはフェイル信号FAILを出力することができる。
【0234】
制御ロジック130は、コマンドCMD及びアドレスADDに応答して動作コマンドOP_CMD、ローアドレスRADD、ページバッファ制御信号PBSIGNALS及び許容ビットVRY_BIT<#>を出力して周辺回路120を制御することができる。
【0235】
図10は本発明の一実施例に係るメモリブロックを説明するための図である。
【0236】
図10を参照すると、
図10に示すメモリブロックMBiは
図9に示すメモリブロックMB1~MBkの何れか1つであってもよい。
【0237】
メモリブロックMBiは、第1セレクト線、第2セレクト線、複数のワード線WL1~WL16、ソース線SL、複数のビット線BL1~BLn及び複数のストリング(strings)STを含んでもよい。
【0238】
例えば、第1セレクト線はソースセレクト線SSLであってもよい。以下では、第1セレクト線はソースセレクト線SSLであると仮定する。
【0239】
例えば、第2セレクト線はドレインセレクト線DSLであってもよい。以下では、第2セレクト線はドレインセレクト線DSLであると仮定する。
【0240】
複数のワード線WL1~WL16は、ソースセレクト線SSLとドレインセレクト線DSLの間に互いに平行に配列されてもよい。
【0241】
図10に示す複数のワード線WL1~WL16の数は例示に過ぎず、図面に限定されない。
【0242】
ソース線SLは複数のストリングSTに共通して接続されてもよい。
【0243】
複数のビット線BL1~BLnは複数のストリングSTにそれぞれ接続されてもよい。
【0244】
複数のストリングSTはビット線BL1~BLnとソース線SLに接続されてもよい。
【0245】
複数のストリングSTは互いに同一に構成されてもよいため、第1ビット線BL1に接続されたストリングSTを例に挙げて具体的に説明する。
【0246】
ストリングSTは、複数のメモリセルMC1~MC16と、少なくとも1つの第1セレクトトランジスタと、少なくとも1つの第2セレクトトランジスタと、を含んでもよい。
【0247】
複数のメモリセルMC1~MC16は、ソースセレクトトランジスタSSTとドレインセレクトトランジスタDSTの間に互いに直列接続されてもよい。
【0248】
メモリセルMC1~MC16のゲートは複数のワード線WL1~WL16にそれぞれ接続されてもよい。従って、1つのストリングSTに含まれた複数のメモリセルMC1~MC16の数は複数のワード線WL1~WL16の数と同じであってもよい。
【0249】
複数のメモリセルMC1~MC16の何れか1つのメモリセルは、例えば、SLC、MLC、TLC及びQLCの何れか1つで構成されてもよい。
【0250】
互いに異なるストリングSTに含まれたメモリセルのうち同じワード線に接続されたメモリセルのグループを物理ページ(physical page)PGということができる。従って、メモリブロックMBiはワード線WL1~WL16の数分の物理ページPGを含んでもよい。以下では、物理ページPGに含まれたメモリセル(例えば、MC3)が選択されたメモリセルであると仮定する。
【0251】
第1セレクトトランジスタは、例えば、ソースセレクトトランジスタSSTであってもよい。以下では、第1セレクトトランジスタはソースセレクトトランジスタSSTであると仮定する。
【0252】
ソースセレクトトランジスタSSTの第1電極はソース線SLに接続されてもよい。ソースセレクトトランジスタSSTの第2電極は複数のメモリセルMC1~MC16のうち第1メモリセルMC1に接続されてもよい。ソースセレクトトランジスタSSTのゲート電極はソースセレクト線SSLと接続されてもよい。
【0253】
第2セレクトトランジスタは、例えば、ドレインセレクトトランジスタDSTであってもよい。以下では、第2セレクトトランジスタはドレインセレクトトランジスタDSTであると仮定する。
【0254】
ドレインセレクトトランジスタDSTの第1電極は複数のメモリセルMC1~MC16のうち第16メモリセルMC16に接続されてもよい。ドレインセレクトトランジスタDSTの第2電極は第1ビット線BL1に接続されてもよい。ドレインセレクトトランジスタDSTのゲート電極はドレインセレクト線DSLと接続されてもよい。
【0255】
図11は本発明の一実施例に係るメモリコントローラを説明するための図である。
【0256】
図11を参照すると、メモリコントローラ200は、プロセッサ201、RAM202、エラー訂正回路203、ホストインターフェース204、ROM205、及びフラッシュインターフェース206を含んでもよい。
【0257】
プロセッサ201はメモリコントローラ200の諸動作を制御することができる。
【0258】
RAM202はメモリコントローラ200のバッファメモリ、キャッシュメモリ、動作メモリなどとして使用されてもよい。
【0259】
エラー訂正回路203は、メモリ装置100から受信したデータのフェイルビット(fail bit)またはエラービット(error bit)を訂正するためのエラー訂正コード(ECC:Error Correction Code)を生成することができる。
【0260】
エラー訂正回路203は、メモリ装置100に提供されるデータのエラー訂正エンコードを行い、パリティ(parity)ビットが付加されたデータを生成することができる。パリティビット(不図示)はメモリ装置100に保存されてもよい。
【0261】
エラー訂正回路203は、メモリ装置100から出力されたデータに対してエラー訂正デコードを行うことができ、このとき、エラー訂正回路203はパリティ(parity)を使用してエラーを訂正することができる。
【0262】
例えば、エラー訂正回路203は、LDPC code、BCH code、turbo code、リードソロモンコード、convolution code、RSC、TCM、BCMなどの様々なコーデッドモジュレーション(coded modulation)を使用してエラーを訂正してもよい。
【0263】
エラー訂正回路203は、プログラム動作においてメモリ装置100にプログラムされるデータのエラー訂正コード値を計算することができる。
【0264】
エラー訂正回路203は、リード動作においてメモリ装置100からリードしたデータをエラー訂正コード値に基づいてエラー訂正動作を行うことができる。
【0265】
エラー訂正回路203は、フェイルしたデータの復旧動作においてメモリ装置100から復旧されたデータのエラー訂正動作を行うことができる。
【0266】
メモリコントローラ200は、ホストインターフェース204を介して外部装置(例えば、ホスト400、アプリケーションプロセッサなど)と通信することができる。
【0267】
ROM205は、メモリコントローラ200の動作に求められる様々な情報をファームウェア形態で保存することができる。
【0268】
メモリコントローラ200は、フラッシュインターフェース206を介してメモリ装置100と通信することができる。メモリコントローラ200は、フラッシュインターフェース206を介してコマンドCMD、アドレスADDR及び制御信号CTRLなどをメモリ装置100に伝送することができ、データを受信することもできる。
【0269】
例えば、フラッシュインターフェース206はNAND型インターフェース(NAND Interface)を含んでもよい。
【0270】
図12は本発明の一実施例に係る記憶装置が適用されたメモリカードシステムを示すブロック図である。
【0271】
図12を参照すると、メモリカードシステム2000は、メモリ装置2100、メモリコントローラ2200及びコネクタ2300を含む。
【0272】
例えば、メモリ装置2100は、EEPROM(Electrically Erasable and Programmable ROM)、NAND型フラッシュメモリ、NOR型フラッシュメモリ、PRAM(Phase-change RAM)、ReRAM(Resistive RAM)、FRAM(登録商標)(Ferroelectric RAM)、STT-MRAM(Spin-Transfer Torque Magnetoresistive RAM)などの様々な不揮発性メモリ素子で構成されてもよい。
【0273】
メモリコントローラ2200はメモリ装置2100と接続される。メモリコントローラ2200はメモリ装置2100をアクセスするように構成される。例えば、メモリコントローラ2200はメモリ装置2100の読み出し、書き込み、消去、及び背景(background)動作を制御するように構成されてもよい。メモリコントローラ2200は、メモリ装置2100とホスト400の間にインターフェースを提供するように構成される。メモリコントローラ2200はメモリ装置2100を制御するためのファームウェアを駆動するように構成される。メモリコントローラ2200は、
図8を参照して説明したメモリコントローラ200と同様に動作することができるが、他の実施例では他の方法で動作してもよい。
【0274】
例えば、メモリコントローラ2200は、ラム(RAM、Random Access Memory)、プロセッシングユニット(processing unit)、ホストインターフェース(host interface)、メモリインターフェース(memory interface)、エラー訂正部などの構成要素を含んでもよい。
【0275】
メモリコントローラ2200はコネクタ2300を介して外部装置と通信することができる。メモリコントローラ2200は、特定の通信規格に応じて外部装置(例えば、ホスト400)と通信することができる。例えば、メモリコントローラ2200は、USB(Universal Serial Bus)、MMC(multimedia card)、eMMC(embeded MMC)、PCI(peripheral component interconnection)、PCI-E(PCI-express)、ATA(Advanced Technology Attachment)、Serial-ATA、Parallel-ATA、SCSI(small computer system interface)、ESDI(enhanced small disk interface)、IDE(Integrated Drive Electronics)、ファイヤワイヤ(Firewire)、UFS(Universal Flash Storage)、WIFI、Bluetooth、NVMeなどの様々な通信規格のうち少なくとも1つを介して外部装置と通信するように構成される。例えば、コネクタ2300は上述した様々な通信規格のうち少なくとも1つによって定義されてもよい。
【0276】
メモリ装置2100及びメモリコントローラ2200は1つの半導体装置に集積されてメモリカードを構成することができる。例えば、メモリコントローラ2200及びメモリ装置2100は1つの半導体装置に集積されてPCカード(PCMCIA、personal computer memory card international association)、コンパクトフラッシュ(登録商標)カード、スマートメディア(登録商標)カード(SM、SMC)、メモリスティック、マルチメディアカード(MMC、RS-MMC、MMCmicro、eMMC)、SDカード(SD、miniSD、microSD、SDHC)、汎用フラッシュ記憶装置(UFS)などのメモリカードを構成してもよい。
【0277】
図13は本発明の実施例に係る記憶装置が適用されたSSD(Solid State Drive)システムを示すブロック図である。
【0278】
図13を参照すると、SSDシステムはホスト400及びSSD3000を含む。
【0279】
SSD3000は信号コネクタ3001を介してホスト400と信号SIGをやり取りし、電源コネクタ3002を介して電源PWRの入力を受ける。SSD3000はSSDコントローラ3200、複数のフラッシュメモリ3100_1、3100_2、3100_n、補助電源装置3300、及びバッファメモリ3400を含む。
【0280】
本発明の実施例によると、SSDコントローラ3200は
図8を参照して説明したメモリコントローラ200の機能を行うことができる。
【0281】
SSDコントローラ3200は、ホスト400から受信した信号SIGに応答して複数のフラッシュメモリ3100_1、3100_2、3100_nを制御することができる。例えば、信号SIGはホスト400及びSSD3000のインターフェースに基づいた信号であってもよい。例えば、信号SIGは、USB(Universal Serial Bus)、MMC(multimedia card)、eMMC(embeded MMC)、PCI(peripheral component interconnection)、PCI-E(PCI-express)、ATA(Advanced Technology Attachment)、Serial-ATA、Parallel-ATA、SCSI(small computer system interface)、ESDI(enhanced small disk interface)、IDE(Integrated Drive Electronics)、ファイヤワイヤ(Firewire)、UFS(Universal Flash Storage)、WIFI、Bluetooth、NVMeなどのインターフェースのうち少なくとも1つによって定義された信号であってもよい。
【0282】
補助電源装置3300は電源コネクタ3002を介してホスト400に接続される。補助電源装置3300はホスト400から電源PWRの入力を受けて充電することができる。補助電源装置3300はホスト400からの電源供給が円滑でないか、一定のレベルまたはパターンに該当しない場合、SSD3000に電源を提供することができる。例えば、補助電源装置3300はSSD3000内に位置してもよく、SSD3000と電気的に接続された外部に位置してもよい。例えば、補助電源装置3300はマザーボードに位置し、SSD3000に補助電源を提供することもできる。
【0283】
バッファメモリ3400はデータを一時的に保存することができる。例えば、バッファメモリ3400はホスト400から受信したデータまたは複数のフラッシュメモリ3100_1、3100_2、3100_nから受信したデータを一時的に保存したり、フラッシュメモリ3221~322nのメタデータ(例えば、マッピングテーブル)を一時的に保存することができる。バッファメモリ3400は、DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM、GRAMなどの揮発性メモリまたはFRAM、ReRAM、STT-MRAM、PRAMなどの不揮発性メモリを含んでもよい。
【0284】
図14は本発明の実施例に係る記憶装置が適用されたユーザーシステムを示すブロック図である。
【0285】
図14を参照すると、ユーザーシステム4000は、アプリケーションプロセッサ4100、メモリモジュール4200、ネットワークモジュール4300、ストレージモジュール4400、及びユーザーインターフェース4500を含む。
【0286】
アプリケーションプロセッサ4100は、ユーザーシステム4000に含まれた構成要素、オペレーティングシステム(OS;Operating System)、またはユーザープログラムなどを駆動させることができる。例えば、アプリケーションプロセッサ4100は、ユーザーシステム4000に含まれた構成要素を制御するコントローラ、インターフェース、グラフィックスエンジンなどを含んでもよい。アプリケーションプロセッサ4100はシステムオンチップ(SoC;System-on-Chip)で提供されてもよい。
【0287】
メモリモジュール4200は、ユーザーシステム4000の主メモリ、動作メモリ、バッファメモリ、またはキャッシュメモリとして動作することができる。メモリモジュール4200は、DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、LPDDR SDARM、LPDDR2 SDRAM、LPDDR3 SDRAMなどの揮発性ランダムアクセスメモリまたはPRAM、ReRAM、MRAM、FRAMなどの不揮発性ランダムアクセスメモリを含んでもよい。例えば、アプリケーションプロセッサ4100及びメモリモジュール4200はPOP(Package on Package)を基盤にパッケージ化されて1つの半導体パッケージで提供されてもよい。
【0288】
ネットワークモジュール4300は外部装置と通信を行うことができる。例えば、ネットワークモジュール4300は、CDMA(Code Division Multiple Access)、GSM(Global System for Mobile communication)、WCDMA(登録商標)(wideband CDMA)、CDMA-2000、TDMA(Time Dvision Multiple Access)、LTE(Long Term Evolution)、Wimax、WLAN、UWB、Bluetooth、Wi-Fiなどの無線通信を支援することができる。例えば、ネットワークモジュール4300はアプリケーションプロセッサ4100に含まれてもよい。
【0289】
ストレージモジュール4400はデータを保存することができる。例えば、ストレージモジュール4400はアプリケーションプロセッサ4100から受信したデータを保存することができる。またはストレージモジュール4400はストレージモジュール4400に保存されたデータをアプリケーションプロセッサ4100に伝送することができる。例えば、ストレージモジュール4400は、PRAM(Phase-change RAM)、MRAM(Magnetic RAM)、RRAM(Resistive RAM)、NAND flash、NOR flash、3次元構造のNAND型フラッシュなどの不揮発性半導体メモリ素子で具現されてもよい。例えば、ストレージモジュール4400はユーザーシステム4000のメモリカード、外付けドライブなどの取り外し可能な記憶媒体(removable drive)で提供されてもよい。
【0290】
例えば、ストレージモジュール4400は、
図8を参照して説明した記憶装置1000と同様に動作することができる。ストレージモジュール4400は複数の不揮発性メモリ装置を含んでもよく、複数の不揮発性メモリ装置は
図8を参照して説明したメモリ装置100と同様に動作することができる。
【0291】
ユーザーインターフェース4500は、アプリケーションプロセッサ4100にデータまたは命令語を入力するかまたは外部装置にデータを出力するインターフェースを含んでもよい。例えば、ユーザーインターフェース4500は、キーボード、キーパッド、ボタン、タッチパネル、タッチスクリーン、タッチパッド、タッチボール、カメラ、マイク、ジャイロスコープセンサ、振動センサ、圧電素子などのユーザー入力インターフェースを含んでもよい。ユーザーインターフェース4500は、LCD(Liquid Crystal Display)、OLED(Organic Light Emitting Diode)表示装置、AMOLED(Active Matrix OLED)表示装置、LED、スピーカー、モニターなどのユーザー出力インターフェースを含んでもよい。
【0292】
一実施例において、装置は、命令語を保存するための記憶領域、及び第1記憶装置及びキャッシュ階層を制御するための命令語を実行するように構成されたコントローラを含む。記憶領域は、コントローラにより実行されるとき、本明細書に説明されているような動作を行うファームウェアまたは別の類型の命令に対応できる命令を保存する非一時的なコンピュータ可読媒体であってもよい。
【0293】
キャッシュティアは、上で説明したキャッシュティアの任意の実施例に対応することができ、例えば、それぞれ複数のデータゾーンを含む第1ゾーングループ及び第2ゾーングループを含んでもよい。
【0294】
命令を実行することで、コントローラは第1ゾーングループの複数のデータゾーンのうち1つに対応するソースデータゾーンにおいて第1記憶装置に保存されたデータをロードするためのロード動作を行うことができる。また、コントローラは、ソースデータゾーンにロードされたデータを第2ゾーングループの複数のデータゾーンのうち1つに対応するターゲットデータゾーンに移動させるための移動動作を行うように命令を実行することができる。
【0295】
移動動作は第1アクセスカウント及び第2アクセスカウントに基づいて行われてもよく、ここで、第1アクセスカウントはソースデータゾーンのアクセスカウントに対応し、第2アクセスカウントは第2ゾーングループの複数のデータゾーンのうち1つに対応する基準データゾーンのアクセスカウントに対応する。
【0296】
ここに説明されている方法、プロセス及び/または作業は、コンピュータ、プロセッサ、コントローラ、またはその他の信号処理装置によって実行されるコードまたは命令によって遂行されてもよい。コンピュータ、プロセッサ、コントローラ、または他の信号処理装置は、ここに説明されているか、またはここに説明されている要素に追加されたものであってもよい。方法(またはコンピュータ、プロセッサ、コントローラ、またはその他の信号処理装置の動作)の基礎を形成するアルゴリズムが詳説されているため、方法実施例の動作を具現するためのコードまたは命令は、コンピュータ、プロセッサ、コントローラ、またはその他の信号処理装置をここの方法を遂行するための特殊目的のプロセッサに変換することができる。
【0297】
ソフトウェアにおいて少なくとも部分的に具現されるとき、コントローラ、プロセッサ、装置、モジュール、ユニット、マルチプレクサ、生成器、ロジック、インターフェース、デコーダ、ドライバ、生成器及びその他の信号生成及び信号処理装置は、例えば、コンピュータ、プロセッサ、マイクロプロセッサ、コントローラ、またはその他の信号処理装置によって実行され得るコードまたは命令を保存するためのメモリまたはその他の記憶装置を含んでもよい。
【0298】
様々な実施例を例示の目的で説明したが、添付の請求の範囲に定義されたような開示内容の思想及び範囲から外れずに様々な変更及び修正ができることは当業者には明白である。実施例は更なる実施例を形成するために組み合わせられてもよい。
【符号の説明】
【0299】
1 ストレージシステム
10 システムコントローラ
20 キャッシュティア
30 ストレージティア