IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-08
(45)【発行日】2024-11-18
(54)【発明の名称】ストレージシステム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20241111BHJP
   G06F 12/06 20060101ALI20241111BHJP
【FI】
G06F12/00 550K
G06F12/06 524
【請求項の数】 17
(21)【出願番号】P 2023544910
(86)(22)【出願日】2021-09-02
(86)【国際出願番号】 JP2021032273
(87)【国際公開番号】W WO2023032121
(87)【国際公開日】2023-03-09
【審査請求日】2023-12-15
(73)【特許権者】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110001737
【氏名又は名称】弁理士法人スズエ国際特許事務所
(72)【発明者】
【氏名】人見 達郎
(72)【発明者】
【氏名】吉水 康人
(72)【発明者】
【氏名】三浦 正幸
(72)【発明者】
【氏名】宮岡 己利
(72)【発明者】
【氏名】小嶋 哲治
(72)【発明者】
【氏名】佐貫 朋也
【審査官】後藤 彰
(56)【参考文献】
【文献】特開2020-149667(JP,A)
【文献】特開2000-30433(JP,A)
【文献】国際公開第2021/095232(WO,A1)
【文献】国際公開第2021/095252(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 - G06F 12/06
(57)【特許請求の範囲】
【請求項1】
1以上の不揮発性メモリダイをそれぞれが含む複数の半導体パッケージを保管可能なパッケージストッカーと、
前記半導体パッケージを着脱可能に装着するように構成された少なくとも一つのソケットを含むドライブと、
前記ドライブに通信可能に接続され、前記半導体パッケージの前記1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを実行するように構成されたホスト装置と、
前記パッケージストッカーと前記ドライブとの間で前記半導体パッケージを搬送するように構成されたパッケージ搬送装置と、
を具備し、
前記ホスト装置は、
前記複数の半導体パッケージのうち、アクセス対象である第1不揮発性メモリダイを含む第1半導体パッケージを決定し、
前記第1半導体パッケージが前記ドライブの前記ソケットに装着されている場合、前記第1不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行し、
前記第1半導体パッケージが前記ドライブの前記ソケットに装着されていない場合、前記パッケージ搬送装置に、前記第1半導体パッケージを前記ドライブの前記ソケットに搬送させて装着させる
ストレージシステム。
【請求項2】
前記ホスト装置は、
前記第1半導体パッケージが前記ドライブの前記ソケットに装着されておらず、且つ、前記ドライブに空きソケットがある場合、前記パッケージ搬送装置に、前記第1半導体パッケージを前記ドライブの前記空きソケットに搬送させて装着させ、
前記第1半導体パッケージが前記ドライブの前記ソケットに装着されておらず、且つ、前記ドライブに空きソケットがない場合、前記パッケージ搬送装置に、前記ソケットに装着されている前記半導体パッケージを前記ソケットから取り外させ、前記パッケージ搬送装置に、前記第1半導体パッケージを、前記半導体パッケージが取り外された前記ドライブの前記ソケットに搬送させて装着させる
請求項1に記載のストレージシステム。
【請求項3】
前記ホスト装置は、
前記複数の半導体パッケージそれぞれの優先順位を管理し、
第1レベルの優先順位を有する前記半導体パッケージが前記ドライブの前記ソケットに装着され、前記第1レベルの優先順位よりも低い第2レベルの優先順位を有する前記半導体パッケージが前記パッケージ搬送装置において保持され、前記第2レベルの優先順位よりも低い第3レベルの優先順位を有する前記半導体パッケージが前記パッケージストッカーに保管されるように、前記複数の半導体パッケージそれぞれの優先順位に基づいて、前記複数の半導体パッケージそれぞれが存在する位置を制御する
請求項1に記載のストレージシステム。
【請求項4】
前記パッケージストッカーは第1の保管場所と第2の保管場所とを含み、
前記ホスト装置は、
前記第3レベルの優先順位を有する前記半導体パッケージが前記パッケージストッカーの前記第1の保管場所に保管され、前記第3レベルの優先順位よりも低い第4レベルの優先順位を有する前記半導体パッケージが前記パッケージストッカーの前記第2の保管場所に保管されるように、前記複数の半導体パッケージそれぞれの優先順位に基づいて、前記複数の半導体パッケージそれぞれが存在する位置を制御する
請求項3に記載のストレージシステム。
【請求項5】
前記第1の保管場所と前記パッケージ搬送装置との距離は、前記第2の保管場所と前記パッケージ搬送装置との距離よりも短い
請求項4に記載のストレージシステム。
【請求項6】
前記パッケージストッカーは、第1個数の前記半導体パッケージをそれぞれが収容する複数のトレーを保管可能に構成され、前記第1個数は2以上であり、
前記ドライブは、前記トレーに収容されたままの前記第1個数の前記半導体パッケージを一括して着脱可能な、前記第1個数の前記ソケットを含み、
前記ホスト装置は、
前記複数のトレーのうち、前記第1半導体パッケージを収容する第1トレーを特定し、
前記第1トレーに収容された前記第1個数の前記半導体パッケージが前記ドライブの前記第1個数の前記ソケットに装着されている場合、前記第1不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行し、
前記第1トレーに収容された前記第1個数の前記半導体パッケージが前記ドライブの前記第1個数の前記ソケットに接続されていない場合、前記パッケージ搬送装置に、前記第1トレーを前記ドライブに搬送させ、前記第1トレーに収容された前記第1個数の前記半導体パッケージを前記第1個数の前記ソケットに装着させる
請求項1に記載のストレージシステム。
【請求項7】
前記ホスト装置は、
前記複数の半導体パッケージそれぞれの優先順位に基づいて決定される前記複数のトレーそれぞれの優先順位を管理し、
第1レベルの優先順位を有する前記トレーに収容された前記第1個数の前記半導体パッケージが前記ドライブの前記第1個数の前記ソケットに装着され、前記第1レベルの優先順位よりも低い第2レベルの優先順位を有する前記トレーが前記パッケージ搬送装置において保持され、前記第2レベルの優先順位よりも低い第3レベルの優先順位を有する前記トレーが前記パッケージストッカーに含まれる第1の保管場所に保管され、前記第3レベルの優先順位よりも低い第4レベルの優先順位を有する前記トレーが前記パッケージストッカーに含まれる第2の保管場所に保管されるように、前記複数のトレーそれぞれの優先順位に基づいて、前記複数のトレーそれぞれが存在する位置を制御する
請求項6に記載のストレージシステム。
【請求項8】
前記第1の保管場所と前記パッケージ搬送装置との距離は、前記第2の保管場所と前記パッケージ搬送装置との距離よりも短い
請求項7に記載のストレージシステム。
【請求項9】
前記パッケージストッカーは、前記パッケージストッカーの外部から前記パッケージストッカーへの前記トレーの追加、および、前記パッケージストッカーから前記パッケージストッカーの外部への前記トレーの排出、に使用されるトレー出し入れ口を含む
請求項6に記載のストレージシステム。
【請求項10】
前記パッケージストッカーは、前記トレーが載置可能な、互いに平行に延びた少なくとも一対のレールを含み、
前記一対のレール上に載置された前記トレーは前記一対のレールに沿って移動可能である
請求項9に記載のストレージシステム。
【請求項11】
前記パッケージ搬送装置は前記トレー出し入れ口に対向し、
前記パッケージストッカーの前記一対のレールは、前記トレー出し入れ口から前記パッケージ搬送装置へ向かう方向に延びている
請求項10に記載のストレージシステム。
【請求項12】
前記半導体パッケージは、第1の面と、前記第1の面とは反対側の第2の面と、前記第2の面に配置された複数のボール型金属端子とを含み、
前記トレーは、前記半導体パッケージの前記複数のボール型金属端子が露出される開口が形成された面を有する
請求項6に記載のストレージシステム。
【請求項13】
前記半導体パッケージは、第1の面と、前記第1の面とは反対側の第2の面と、前記第2の面に配置された複数のボール型金属端子とを含み、
前記ドライブは、少なくとも前記第1個数のソケットが配置された基板をさらに含み、
前記基板は1以上の第1の凹部を含み、
前記トレーは、前記半導体パッケージの前記複数のボール型金属端子が露出される開口が形成された下面を有し、前記トレーの前記下面は、前記ドライブの前記基板の前記1以上の第1の凹部にそれぞれ嵌まる1以上の第1の凸部を含む
請求項6に記載のストレージシステム。
【請求項14】
蓋部材をさらに具備し、前記蓋部材は1以上の第2の凹部を含み、
前記トレーは、前記下面とは反対側の上面を有し、前記トレーの前記上面は1以上の第2の凸部を含み、
前記基板上に置かれた前記トレーは、前記蓋部材の前記1以上の第2の凹部と、前記トレーの前記上面の前記1以上の第2の凸部とが嵌るように、前記蓋部材によって覆われる
請求項13に記載のストレージシステム。
【請求項15】
前記半導体パッケージは、複数の不揮発性メモリダイを含む
請求項1に記載のストレージシステム。
【請求項16】
前記半導体パッケージは、第1の面と、前記第1の面とは反対側の第2の面と、前記第2の面に配置された複数のボール型金属端子と、を含み、前記複数のボール型金属端子は前記複数の不揮発性メモリダイそれぞれのチャンネル端子に接続される
請求項15に記載のストレージシステム。
【請求項17】
前記ホスト装置は、
前記パッケージストッカーに保管されている前記半導体パッケージに格納されているデータの量を管理するための第1のプログラムを実行するように構成されたプロセッサを含む
請求項1に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、不揮発性メモリを制御する技術に関する。
【背景技術】
【0002】
近年、不揮発性メモリを備えるストレージデバイスが広く普及している。このようなストレージデバイスの一つとして、NAND型フラッシュメモリを備えるソリッドステートドライブ(SSD)が知られている。
【0003】
SSDは、様々なコンピュータのストレージとして使用されている。最近では、データセンタにおいても、SSDがストレージとして使用されている。
【0004】
データセンタでは、大量のデータの読み出しおよび書き込みを高速に行うことが必要とされる。
【0005】
このため、大量のデータの処理に有用な新たなストレージシステムの実現が求められている。
【先行技術文献】
【特許文献】
【0006】
【文献】米国特許出願公開第2019/0387291号明細書
【文献】米国特許第10467163号明細書
【文献】特開2016-81332号公報
【文献】特表2005-517236号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の一実施形態が解決しようとする課題は、大量のデータの処理に有用なストレージシステムを提供することである。
【課題を解決するための手段】
【0008】
実施形態によれば、ストレージシステムは、パッケージストッカーと、ドライブと、ホスト装置と、パッケージ搬送装置とを具備する。パッケージストッカーは、1以上の不揮発性メモリダイをそれぞれが含む複数の半導体パッケージを保管可能である。ドライブは、前記半導体パッケージを着脱可能に装着するように構成された少なくとも一つのソケットを含む。ホスト装置は、前記ドライブに通信可能に接続され、前記半導体パッケージの前記1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを実行するように構成される。パッケージ搬送装置は、前記パッケージストッカーと前記ドライブとの間で前記半導体パッケージを搬送するように構成される。ホスト装置は、前記複数の半導体パッケージのうち、アクセス対象である第1不揮発性メモリダイを含む第1半導体パッケージを決定する。ホスト装置は、前記第1半導体パッケージが前記ドライブの前記ソケットに装着されている場合、前記第1不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行する。ホスト装置は、前記第1半導体パッケージが前記ドライブの前記ソケットに装着されていない場合、前記パッケージ搬送装置に、前記第1半導体パッケージを前記ドライブの前記ソケットに搬送させて装着させる。
【図面の簡単な説明】
【0009】
図1】第1の実施形態に係るストレージシステムの構成例を示すブロック図。
図2】第1の実施形態に係るストレージシステムに含まれるパッケージストッカー、パッケージ搬送装置、ドライブ、およびホスト装置の配置例を示す側面図。
図3】第1の実施形態に係るストレージシステムに含まれるパッケージストッカー、パッケージ搬送装置、ドライブ、およびホスト装置の配置例を示す平面図。
図4】第1の実施形態に係るストレージシステムにおいて使用される半導体パッケージの構成例を示す図。
図5】第1の実施形態に係るストレージシステムにおいて使用される半導体パッケージの表(オモテ)面、裏面、側面それぞれの形状を示す図。
図6】第1の実施形態に係るストレージシステムのパッケージストッカーに含まれる複数対のレールを示す斜視図。
図7】第1の実施形態に係るストレージシステムに含まれるホスト装置の構成例を示すブロック図。
図8】第1の実施形態に係るストレージシステムに含まれるパッケージストッカーのパッケージ出し入れ口を示す図。
図9】第1の実施形態に係るストレージシステムに含まれるパッケージストッカーに新規の半導体パッケージを追加する動作を示す図。
図10】第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更する動作について説明するための図。
図11】第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更する動作について説明するための別の図。
図12】第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更する別の動作について説明するための図。
図13】第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更するさらに別の動作について説明するための図。
図14】第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更するさらに別の動作について説明するための図。
図15】第1の実施形態に係るストレージシステムにおいて実行される、半導体パッケージの位置を変更するさらに別の動作について説明するための図。
図16】第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の手順を示すフローチャート。
図17】第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャート。
図18A】第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の別の手順の部分を示すフローチャート。
図18B】第1の実施形態に係るストレージシステムに含まれるホスト装置によって実行されるデータの読み出しまたは書き込み処理の別の手順の続き部分を示すフローチャート。
図19】第2の実施形態に係るストレージシステムの構成例を示すブロック図。
図20】第2の実施形態に係るストレージシステムにおいて使用されるトレーの構成例を示す斜視図。
図21図20に示されたトレーの断面図。
図22】第2の実施形態に係るストレージシステムにおいて使用される別なトレーの構成例を示す斜視図。
図23図22に示されたトレーの断面図。
図24図22に示されたトレーの上面および下面の形状を示す平面図。
図25図22に示されたトレーの側面図。
図26】第2の実施形態に係るストレージシステムに含まれるパッケージストッカーのレール構造を示す斜視図。
図27】第2の実施形態に係るストレージシステムに含まれるパッケージストッカーのレール構造の他の例を示す斜視図。
図28】第2の実施形態に係るストレージシステムに含まれるホスト装置の構成例を示すブロック図。
図29】第2の実施形態に係るストレージシステムに含まれるパッケージストッカーのトレー出し入れ口を示す図。
図30】第2の実施形態に係るストレージシステムに含まれるパッケージストッカーに新規のトレーを追加する動作を示す図。
図31】第2の実施形態に係るストレージシステムに含まれるドライブとトレーの位置合わせについて説明する図。
図32】第2の実施形態に係るストレージシステムに含まれるドライブとトレーの位置合わせについて説明する別な図。
図33】第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更する動作について説明するための図。
図34】第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更する動作について説明するための別の図。
図35】第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更する別の動作について説明するための図。
図36】第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更するさらに別の動作について説明するための図。
図37】第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更するさらに別の動作について説明するための図。
図38】第2の実施形態に係るストレージシステムにおいて実行される、トレーの位置を変更するさらに別の動作について説明するための図。
図39】第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の手順を示すフローチャート。
図40】第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャート。
図41A】第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の別の手順の一部分を示すフローチャート。
図41B】第2の実施形態に係るストレージシステムに含まれるホスト装置によって実行される、不揮発性メモリダイに対するデータの読み出しまたは書き込み処理の別の手順の続き部分を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、図面を参照して、実施形態を説明する。
(第1の実施形態)
まず、第1の実施形態に係るストレージシステムの構成について説明する。図1は、第1の実施形態に係るストレージシステム1の構成例を示す図である。ストレージシステム1は、データセンタにおいて使用され得る。
【0011】
ストレージシステム1は、ストレージリードライト(R/W)装置2と、パッケージ搬送装置3と、パッケージストッカー4とを含む。
【0012】
ストレージR/W装置2は、ホストユニット21とドライブ22とを含む。図1では、2つのホストユニット21a、21bと2つのドライブ22a、22bとがストレージR/W装置2に含まれている場合が例示されている。しかしながら、ストレージR/W装置2に含まれるホストユニット21とドライブ22の各々の数は、1でもよいし、3以上でもよい。
【0013】
ホストユニット21は、不揮発性メモリダイに対するデータの読み出しおよび書き込みを実行するように構成されたホスト装置である。ホストユニット21は、対応するドライブ22に通信可能に接続されている。ホストユニット21と対応するドライブ22とは、例えばPCI ExpressTM(PCIeTM)規格に従って通信可能である。また、ホストユニット21は、ネットワークを介してデータセンタ内の管理サーバ5と通信し得る。ホストユニット21と管理サーバ5とは、例えばEthernet規格に従って通信可能である。
【0014】
ドライブ22は、少なくとも1つのソケットと、コントローラとを含む。ソケットは、半導体パッケージ41を着脱可能に装着するように構成されている。コントローラは、ソケットに装着された半導体パッケージ41に含まれる1以上の不揮発性メモリダイを制御するように構成されている。
【0015】
図1に示す例では、ホストユニット21aはドライブ22aに通信可能に接続されている。また、ホストユニット21bはドライブ22bに通信可能に接続されている。
【0016】
つまり、ホストユニット21aは、ドライブ22aのソケットに装着されている半導体パッケージ41の1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、ドライブ22aのコントローラを介して実行するように構成されたホスト装置である。同様に、ホストユニット21bは、ドライブ22bのソケットに装着されている半導体パッケージ41の1以上の不揮発性メモリダイに対するデータの読み出しおよび書き込みを、ドライブ22bのコントローラを介して実行するように構成されたホスト装置である。
【0017】
パッケージ搬送装置3は、パッケージストッカー4とドライブ22との間で半導体パッケージ41を搬送する装置である。パッケージ搬送装置3は、例えば、上下、左右に移動可能な1以上の搬送ユニット31を含んでいてもよい。搬送ユニット31は、パッケージストッカー4内の複数の保管位置のいずれかに保管されている半導体パッケージ41をストレージR/W装置2内の任意のドライブ22に搬送し、そのドライブ22のソケットに装着することができる。また、搬送ユニット31は、任意のドライブ22のソケットから半導体パッケージ41を取り外し、取り外した半導体パッケージ41をパッケージストッカー4内の任意の保管位置に搬送することができる。パッケージ搬送装置3は、1以上の搬送ロボットによって実現され得る。
【0018】
パッケージストッカー4は、複数の半導体パッケージ41を保管可能である。半導体パッケージ41は、1以上の不揮発性メモリダイを含む。1以上の不揮発性メモリダイの各々は、例えば、NAND型フラッシュメモリである。
【0019】
次に、ストレージシステム1の基本的な動作について説明する。ホストユニット21は、位置管理機能と、搬送制御機能とを有している。位置管理機能は、複数の半導体パッケージ41それぞれが存在している位置を管理する機能である。搬送制御機能は、パッケージ搬送装置3を制御することによって半導体パッケージ41の搬送を制御する機能である。
【0020】
複数の半導体パッケージ41の各々にはパッケージ識別子(半導体パッケージ識別名とも称される)が付与されている。ホストユニット21は、パッケージ識別子と、このパッケージ識別子によって識別される半導体パッケージ41が存在している位置との間の対応関係を管理し得る。
【0021】
ある半導体パッケージ41が存在し得る位置は、例えば、ドライブ22に含まれる1以上のソケットのうちの任意の一つのソケット、または、パッケージストッカー4に含まれる複数のパッケージ保管位置のうちの任意の一つのパッケージ保管位置である。
【0022】
ホストユニット21は、複数の半導体パッケージ41のうち、アクセス対象である不揮発性メモリダイを含む半導体パッケージ41を決定する。ホストユニット21は、決定した半導体パッケージ41が存在している位置を特定し、これによって、決定した半導体パッケージ41がドライブ22のいずれかのソケットに装着されているか否かを判定することができる。
【0023】
決定した半導体パッケージ41がドライブ22のいずれかのソケットに装着されている場合、ホストユニット21は、ドライブ22のコントローラを介してアクセス対象の不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行する。
【0024】
決定した半導体パッケージ41がドライブ22のいずれのソケットにも装着されておらず、且つ、パッケージストッカー4に保管されている場合、ホストユニット21は、パッケージ搬送装置3に、決定した半導体パッケージ41をパッケージストッカー4からドライブ22のいずれかのソケットに搬送させて装着させる。この場合、ホストユニット21は、パッケージ搬送装置3に次のような搬送要求を送信し得る。
【0025】
この搬送要求は、例えば、決定した半導体パッケージ41が保管されているパッケージストッカー4内の位置(パッケージ保管位置とも称される)を移動元位置として指定し、且つ、ドライブ22のいずれかのソケットを移動先位置として指定する。パッケージ搬送装置3の搬送ユニット31は、指定された移動元位置に存在している半導体パッケージ41を、指定された移動先位置に搬送する。そして、搬送ユニット31は、この半導体パッケージ41を、移動先位置のソケットに装着する。
【0026】
一般に、ソリッドステートドライブ(SSD)のようなストレージデバイスにおいては、半導体パッケージは、ストレージデバイスに設けられた基板上に半田付けによって固定的に実装される。
【0027】
これに対し、本実施形態に係るストレージシステム1では、複数の半導体パッケージ41の各々はドライブ22から分離されており、個々の半導体パッケージ41そのものがドライブ22のソケットに着脱可能に装着されるリムーバブルストレージ媒体として利用される。
【0028】
一般には、SSDまたはハードディスクドライブ(HDD)といったドライブは、ストレージ媒体とコントローラとを内蔵する。このため、個々のドライブの体積は比較的大きい。よって、もし、ストレージ媒体とコントローラとをそれぞれが内蔵する複数のドライブをホストユニット21に選択的に接続するという構成が採用された場合には、ストレージシステム全体の大型化およびコストアップを招くことになる。
【0029】
光ディスク媒体または磁気テープを、コントローラを含まないストレージ媒体として利用するストレージシステムの構成も考えられる。しかし、光ディスク媒体または磁気テープに対するデータの読み出しおよび書き込み動作においては、光学ヘッドまたは磁気ヘッドを物理的に移動することが必要となる。このため、光ディスク媒体または磁気テープをストレージ媒体として利用するストレージシステムの構成では、不揮発性メモリダイに対するデータの読み出しおよび書き込みを行う構成に比べ、読み出しおよび書き込み処理が実行可能になるまでのレイテンシーが増加されるとともに、I/Oスループットが低下される。
【0030】
ストレージシステム1では、半導体パッケージ41とドライブ22とが分離されている。このため、半導体パッケージ41だけをストレージ媒体としてパッケージストッカー4に保管することができる。よって、多数のストレージ媒体を保管するために必要なスペースを削減できる。
【0031】
さらに、アクセス対象の不揮発性メモリダイを含む半導体パッケージ41は、パッケージ搬送装置3によって、パッケージストッカー4からドライブ22内のソケットに搬送され、そのソケットに装着される。ソケットに装着された半導体パッケージ41は、ドライブ22内のコントローラに電気的に接続される。このため、光ディスク媒体または磁気テープをストレージ媒体として利用する構成に比し、光学ヘッドまたは磁気ヘッドを物理的に移動させる必要が無いので、アクセス対象の不揮発性メモリダイに対するデータ読み出しおよびデータ書き込みを低レイテンシーで高速に実行することができる。この結果、データセンタにおいて必要とされる大量のデータの処理に好適なストレージシステム1を実現できる。
【0032】
さらに、ホストユニット21は、複数の半導体パッケージ41それぞれの優先順位を管理する機能も有し得る。複数の半導体パッケージ41それぞれの優先順位を決定するためのアルゴリズムは特定のアルゴリズムに限定されず、様々な条件に基づいて、複数の半導体パッケージ41それぞれの優先順位を決定することができる。
【0033】
例えば、ある不揮発性メモリダイに対するアクセス要求に基づいて、この不揮発性メモリダイを含む半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス頻度に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41への最終アクセス時刻からの経過時間に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス処理の完了または未完了を示す状態に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス処理が完了するまでの見込み残り時間に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。ホストユニット21において実行されるアプリケーションプログラムに基づいて、各半導体パッケージ41の優先順位が決定されてもよい。各半導体パッケージ41に対するアクセス要求が生じる確率の予測結果に基づいて、各半導体パッケージ41の優先順位が決定されてもよい。
【0034】
あるいは、アクセス要求、アクセス頻度、最終アクセス時刻からの経過時間、アクセス処理の完了または未完了、アクセス処理完了までの見込み残り時間、実行されるアプリケーションプログラム、およびアクセス確率予測結果、のうちの任意の2つ以上の条件を組み合わせて使用することによって、各半導体パッケージ41の優先順位が決定されてもよい。
【0035】
ホストユニット21は、複数の半導体パッケージ41それぞれの優先順位に基づいて、複数の半導体パッケージ41それぞれが存在する位置を制御することもできる。例えば、ホストユニット21は、第1レベルの優先順位を有する半導体パッケージ41がドライブ22のソケットに装着され、第1レベルの優先順位よりも低い第2レベルの優先順位を有する半導体パッケージ41がパッケージストッカー4に保管されるように、複数の半導体パッケージ41それぞれの優先順位に基づいて、複数の半導体パッケージ41それぞれが存在する位置を制御し得る。
【0036】
なお、パッケージ搬送装置3に含まれる搬送ユニット31の幾つかを、半導体パッケージ41を一時的に保持するためのバッファとして使用してもよい。この場合、第1レベルの優先順位よりも低い第2レベルの優先順位を有する半導体パッケージ41は、パッケージ搬送装置3に含まれる搬送ユニット31に保持される。そして、第2レベルの優先順位よりも低い第3レベルの優先順位を有する半導体パッケージ41がパッケージストッカー4に保管される。
【0037】
第2レベルの優先順位を有する半導体パッケージ41を保持している搬送ユニット31は、他の搬送ユニット31による搬送動作の妨げにならないように、特定の退避位置に移動されてもよい。第2レベルの優先順位を有する半導体パッケージ41を保持している半導体パッケージ41を保持している搬送ユニット31は、以降では、「パッケージ搬送装置3のバッファ」または「ロボットのバッファ」とも称される。パッケージ搬送装置3に含まれる搬送ユニット31の各々は、パッケージ搬送装置3のバッファとして機能し得る。このため、パッケージ搬送装置3のバッファの数は、パッケージ搬送装置3に含まれる搬送ユニット31の数に等しい。
【0038】
また、以降では、ドライブ22のソケットから取り外された半導体パッケージ41をパッケージストッカー4に保管せずにパッケージ搬送装置3(つまり搬送ユニット31)に保持することは、「半導体パッケージ41をパッケージ搬送装置3のバッファに搬送する」とも称される。
【0039】
次に、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21の配置例を説明する。図2は、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21の配置例を示す側面図である。図3は、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21の配置例を示す平面図である。
【0040】
図2および図3では、データセンタに配置されるサーバラック11に、パッケージストッカー4、パッケージ搬送装置3、ドライブ22、およびホストユニット21を配置した構成が例示されている。
【0041】
以下の本実施形態の説明において、X軸、Y軸およびZ軸がそれぞれ定義されている。X軸とY軸とZ軸とは、互いに直交する。X軸、Y軸によって規定されるX-Y平面は、例えば、データセンタのフロアに相当する。Z軸は、例えば、データセンタの高さ方向に相当する。
【0042】
サーバラック11は、コンピュータおよび通信装置を収容するためのラックである。サーバラック11のサイズおよび形状は、例えばアメリカ電子工業会(EIA)によって規定されている。
【0043】
サーバラック11は、前板(前扉)12、天板13、裏板14、床板15、両側板16、17を有している。このサーバラック11は、例えば、36インチ(914.4mm)の奥行き、73.5インチ(1868.9mm)の高さ、19インチ(482.6mm)の幅を有するディープ型の19インチラックとして実現されている。
【0044】
サーバラック11においては、パッケージストッカー4は前板(前扉)12側に配置され得、ドライブ22およびホストユニット21は裏板14側に配置され得る。さらに、パッケージ搬送装置3は、前板(前扉)12と裏板14との間の中央部付近に配置され得る。
【0045】
図2に示されているように、ドライブ22aとホストユニット21aとは、筐体2aに収容されていてもよい。同様に、ドライブ22bとホストユニット21bとは、筐体2bに収容されていてもよい。
【0046】
ドライブ22aは、プリント回路基板221と、1以上のソケット222と、コントローラ223と、PCI ExpressTM(PCIeTM)スイッチ224と、PCIeコネクタ225とを含む。ソケット222、コントローラ223、およびPCIeスイッチ224は、プリント回路基板221上に配置されている。以下では、複数のソケット222がプリント回路基板221上に配置されている場合を想定する。
【0047】
ソケット222の各々は、半導体パッケージ41を着脱可能に装着するように構成されたソケットである。
【0048】
コントローラ223は、ソケット222の各々に装着された半導体パッケージ41に含まれる1以上の不揮発性メモリダイを制御するメモリコントローラである。コントローラ223は、system-on-a-chip(SoC)のようなlarge scale integration(LSI)によって実現されてもよい。プリント回路基板221上に配置されているコントローラ223の数は、1でもよいし、2以上でもよい。プリント回路基板221上の各コントローラ223は、PCIeスイッチ224に接続されている。プリント回路基板221上に配置されているPCIeスイッチ224の数は、1でもよいし、2以上でもよい。各PCIeスイッチ224は、対応するPCIeコネクタ225に電気的に接続されている。
【0049】
ドライブ22aのプリント回路基板221の裏面には1以上のPCIeコネクタ225が配置されている。プリント回路基板221は、1以上のPCIeコネクタ225を介してホストユニット21aのシステム基板に接続されている。
【0050】
ホストユニット21aのシステム基板には、プロセッサ、メモリ、システムコントローラ、通信インタフェースコントローラ等が設けられている。ホストユニット21aは、1以上のPCIeコネクタ225を介してドライブ22aに通信可能に接続されている。ホストユニット21aは、コントローラ223を介して、任意のソケット222に装着されている半導体パッケージ41内の任意の不揮発性メモリダイに対するデータの読み出しまたは書き込みを実行する。
【0051】
ドライブ22bおよびホストユニット21bそれぞれの構成はドライブ22aおよびホストユニット21aそれぞれの構成と同様であるので、ここではドライブ22bおよびホストユニット21bそれぞれの構成の詳細な説明については省略する。
【0052】
図2に示されているように、パッケージ搬送装置3は、縦方向(Z軸方向)に延びる支柱32と、幾つかの搬送ユニット31とを含んでいてもよい。各搬送ユニット31は、支柱32に沿って上下方向に移動可能である。各搬送ユニット31は、ロボットハンドのような図示しないアームを有しており、このアームを使用して任意の半導体パッケージ41を把持することができる。
【0053】
例えば、パッケージストッカー4内のある保管位置に保管されている半導体パッケージ41をドライブ22aに搬送する際には、一つの搬送ユニット31は、搬送対象の半導体パッケージ41の保管位置に対応する高さに移動して、搬送対象の半導体パッケージ41を把持する。そして、当該一つの搬送ユニット31は、ドライブ22aに対応する高さに移動し、搬送対象の半導体パッケージ41をドライブ22aの一つのソケット222に装着する。
【0054】
なお、搬送対象の半導体パッケージ41とパッケージ搬送装置3との間に別の半導体パッケージ41が存在している場合には、まず、一つの搬送ユニット31が当該別の半導体パッケージ41を把持し、そして当該別の半導体パッケージ41を把持したまま上部または下部に移動する。そして、別の搬送ユニット31が搬送対象の半導体パッケージ41を把持し、搬送対象の半導体パッケージ41をドライブ22aの一つのソケット222に装着する。これにより、たとえパッケージ搬送装置3から前板12に向かう方向(図2に示す-Y方向)に沿って複数の半導体パッケージ41が並んで保管されている場合であっても、任意の半導体パッケージ41を搬送することができる。
【0055】
図2に示されているように、パッケージストッカー4は、複数の半導体パッケージ41を載置可能な1対以上のレール(レール対R11、レール対R12、…)を含んでいる。
【0056】
次に、図3の平面図を参照して、ドライブ22とパッケージストッカー4の構成例の詳細について説明する。
【0057】
ドライブ22は、例えば、12行×4列に並んだ48個のソケット222と、12個のコントローラ223と、3個のPCIeスイッチ224と、3個のPCIeスイッチ224にそれぞれ接続された3個のPCIeコネクタ225とを含む。12個のコントローラ223の各々は、対応する1行の4個のソケット222に装着される4個の半導体パッケージ41の制御を行う。3個のPCIeスイッチ224の各々は、対応する4個のコントローラ223に接続されている。各PCIeスイッチ224は、対応する4個のコントローラ223との通信を行う。
【0058】
パッケージストッカー4は、複数対のレール(ここでは、12個のレール対R11~R121)を含む。レール対R11~R121の各々においては、幾つかの半導体パッケージ41が載置可能である。レール対R11~R121の各々は、Y軸方向に沿って互いに平行に延びた1対のレールを含む。あるレール対上に配置された半導体パッケージ41は、このレール対に沿ってスライドして移動可能である。
【0059】
次に、半導体パッケージ41の構成について説明する。図4は、本実施形態に係るストレージシステム1において使用される半導体パッケージ41の構成例を示す図である。
【0060】
半導体パッケージ41は、例えば、ボールグリッドアレイ(BGA)パッケージとして実現されている。この半導体パッケージ41は、複数の不揮発性メモリダイ411と、パッケージ基板412と、複数のボール型金属端子413と、第1の面(表(オモテ)面)416と、第1の面416の反対側の第2の面(裏面)417とを含む。
【0061】
複数の不揮発性メモリダイ411は、パッケージ基板412の表面上に縦方向に積層されている。複数の不揮発性メモリダイ411は、例えば、モールド樹脂410によって覆われ且つ封止されている。各不揮発性メモリダイ411は1チャンネル分のチャンネル端子を含む。チャンネル端子は、チップイネーブル信号端子、複数のI/O端子、複数の制御信号端子、等を含む。
【0062】
モールド樹脂410の上面は半導体パッケージ41の第1の面416を形成する。パッケージ基板412の下面は半導体パッケージ41の第2の面417を形成する。
【0063】
複数のボール型金属端子413は、第2の面417に配置されている。複数のボール型金属端子413は、複数チャンネル分の複数の信号端子を含む。ボール型金属端子413は、半導体パッケージ41に含まれる複数の不揮発性メモリダイ411それぞれのチャンネル端子に接続される。
【0064】
半導体パッケージ41に含まれる複数の不揮発性メモリダイ411の少なくとも一つの不揮発性メモリダイ411の記憶領域の一部は、識別情報記憶領域418として使用される。識別情報記憶領域418は、この半導体パッケージ41を識別するための識別情報を記憶する。識別情報としては、個々の半導体パッケージ41を一意に識別可能な識別子(パッケージ識別子)を使用し得る。パッケージ識別子は、検査符号と共に識別情報記憶領域418に記憶されていてもよい。検査符号は、パッケージ識別子の整合性(integrity)を検証するための符号である。検査符号は、例えば、巡回冗長符号(CRC)、CRCとは異なる別の種類のパリティ、または、識別情報から算出されるハッシュ値である。
【0065】
識別情報(パッケージ識別子)と検査符号のペアを識別情報記憶領域418に記憶させることにより、識別情報記憶領域418から識別情報として読み出される値の整合性を検証することができる。
【0066】
図5は、半導体パッケージ41の表(オモテ)面、裏面、側面それぞれの形状を示す図である。図5の左部は半導体パッケージ41を上面側から見た平面図であり、図5の中央部は半導体パッケージ41を下面側から見た平面図である。また、図5の右部は、半導体パッケージ41の側面図である。
【0067】
半導体パッケージ41の表面416(つまりモールド樹脂410の上面)はマーキング面として使用される。半導体パッケージ41の裏面417(つまりパッケージ基板412の下面)には複数のボール型金属端子413が配置されている。なお、半導体パッケージ41の裏面417においては、ボール型金属端子413が設けられていない領域が存在する。具体的には、裏面417の最外周領域には、どのボール型金属端子413も配置されていない。
【0068】
次に、パッケージストッカー4の構成について説明する。図6は、パッケージストッカー4に含まれる複数対のレールを示す斜視図である。
【0069】
図6では、パッケージストッカー4に3つのレールユニット401~403が含まれている場合が例示されている。
【0070】
レールユニット401は、間隔を置いて互いに対向する2つの側壁4011、4012と、2つの側壁4011、4012の内側に配置された4つのレール対R11~R14とを含む。レール対R11は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。レール間に隙間を有するこのようなレール構造を使用することにより、半導体パッケージ41の裏面に配置されたボール型金属端子413がレールに接触することなく、半導体パッケージ41を支持することが可能となる。つまり、ボール型金属端子413が設けられていない、半導体パッケージ41の裏面の最外周領域のみが、レール対R11に接触する。他のレール対R12~R14の各々も、レール対R11と同様の構成を有している。
【0071】
レールユニット402は、間隔を置いて互いに対向する2つの側壁4021、4022と、2つの側壁4021、4022の内側に配置された4つのレール対R21~R24とを含む。レール対R21は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R22~R24の各々も、レール対R21と同様の構成を有している。
【0072】
レールユニット403は、間隔を置いて互いに対向する2つの側壁4031、4032と、2つの側壁4031、4032の内側に配置された4つのレール対R31~R34とを含む。レール対R31は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R32~R34の各々も、レール対R31と同様の構成を有している。
【0073】
次に、ホストユニット21の構成について説明する。図7は、ホストユニット21の構成例を示すブロック図である。ここでは、ストレージシステム1に含まれる複数のホストユニット21のうちの一つであるホストユニット21aについて説明する。
【0074】
ホストユニット21aは、プロセッサ201、メインメモリ202、システムコントローラ203、および通信インタフェースコントローラ204、等を含む。プロセッサ201、メインメモリ202、システムコントローラ203、および通信インタフェースコントローラ204は、ホストユニット21aのシステム基板に実装されている。
【0075】
メインメモリ202は、例えば、ダイナミックランダムアクセスメモリ(DRAM)である。
【0076】
通信インタフェースコントローラ204は、通信インタフェース205を介して、パッケージ搬送装置3との通信を行う。通信インタフェース205としては、例えば、Ethernet規格に準拠したインタフェースを使用し得る。この場合、通信インタフェースコントローラ204は、例えば、ネットワークインタフェースコントローラ(NIC)によって実現し得る。なお、通信インタフェースコントローラ204は、管理サーバ5との通信にも使用され得る。
【0077】
プロセッサ201はメインメモリ202にロードされた様々なプログラム(ソフトウェア)を実行する。これらプログラムには、例えば、アプリケーションプログラム211、オペレーティングシステム(OS)212、ファイルシステム213、ドライブ22aを制御するためのデバイスドライバ214、ストレージ管理ツール216、等が含まれていてもよい。ストレージ管理ツール216は、各半導体パッケージ41を管理し、且つ、各半導体パッケージ41の搬送を制御するためのプログラムである。
【0078】
以降の説明においては、これらプログラムがある処理を実行するという記載は、ホストユニット21a(より詳しくはプロセッサ201)がこれらプログラムを実行することによりその処理が実行されることを意味する。
【0079】
ホストユニット21a(より詳しくはプロセッサ201)は、ストレージ管理ツール216の制御の下に、半導体パッケージ管理テーブル6を管理することができる。半導体パッケージ管理テーブル6は、複数の半導体パッケージ41のための管理データである。半導体パッケージ管理テーブル6はメインメモリ202に記憶されてもよい。
【0080】
ホストユニット21aは、個々の半導体パッケージ41に固有の半導体パッケージ識別名を付与するように構成されている。ホストユニット21aは、半導体パッケージ管理テーブル6を用いて、各半導体パッケージ41の半導体パッケージ識別名と、各半導体パッケージ41の優先順位と、各半導体パッケージ41の状態と、各半導体パッケージの位置とを管理する。以下では、ある半導体パッケージ識別名を有する半導体パッケージ41を、その半導体パッケージ識別名を用いて表記することがある。例えば、半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41を、半導体パッケージAと表記することがある。
【0081】
図7では、ホストユニット21aが、半導体パッケージ識別名である半導体パッケージA、半導体パッケージB、…、半導体パッケージEのそれぞれを用いて、ストレージシステム1において使用される複数の半導体パッケージ41のそれぞれを識別する例が示されている。
【0082】
ホストユニット21aは、複数の半導体パッケージ41それぞれの優先順位を半導体パッケージ管理テーブル6に格納する。そして、ホストユニット21aは、半導体パッケージ管理テーブル6によって管理されている優先順位に基づいて、パッケージ搬送装置3に対して、半導体パッケージ41の搬送処理を指示する。
【0083】
ホストユニット21aは、複数の半導体パッケージ41それぞれが、ホストユニット21aに接続されている、パッケージストッカー4に保管されている、あるいはパッケージ搬送装置3の搬送ユニット31に保持されている、のいずれの状態であるかを示す情報を、各半導体パッケージ41の状態として、半導体パッケージ管理テーブル6に格納する。
【0084】
ここで、ある半導体パッケージ41がホストユニット21aに接続されている状態は、この半導体パッケージ41がドライブ22aのソケット222に装着されている状態を意味する。したがって、ホストユニット21aは、ある半導体パッケージ41がホストユニット21aに接続されている場合、この半導体パッケージ41が、ホストユニット21aに接続されているドライブ22aに含まれるソケット222に装着されていることを認識できる。そして、ホストユニット21aは、この半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出しおよび書き込みが可能であることを認識できる。
【0085】
また、ある半導体パッケージ41がパッケージストッカー4に保管されている状態は、この半導体パッケージ41がパッケージストッカー4のいずれかのレール対に載置されていることを意味する。したがって、ホストユニット21aは、ある半導体パッケージ41がパッケージストッカー4に保管されている場合、この半導体パッケージ41がドライブ22aに含まれるソケット222に装着されていないため、この半導体パッケージ41の不揮発性メモリダイ411に対してデータの読み出しおよび書き込みができないことを認識できる。
【0086】
ホストユニット21aは、複数の半導体パッケージ41それぞれが装着あるいは保管されている位置を示す情報として、半導体パッケージ41の位置情報を半導体パッケージ管理テーブル6に格納する。
【0087】
ホストユニット21aは、ある半導体パッケージ41がホストユニット21aに接続されている場合、この半導体パッケージ41が装着されているソケット222を示すソケット番号を、この半導体パッケージ41の位置情報として半導体パッケージ管理テーブル6に格納する。
【0088】
また、ホストユニット21aは、ある半導体パッケージ41がパッケージストッカー4に保管されている場合、この半導体パッケージ41が保管されているパッケージストッカー4の中の位置を示す保管位置番号を、この半導体パッケージ41の位置情報として半導体パッケージ管理テーブル6に格納する。
【0089】
図7に示す例では、半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41が、最も高い優先順位を有している(優先順位=1)。半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41は、ドライブ22aのソケット#1に装着されている。半導体パッケージ識別名「半導体パッケージB」をもつ半導体パッケージ41が、二番目に高い優先順位を有している(優先順位=2)。半導体パッケージ識別名「半導体パッケージB」をもつ半導体パッケージ41は、ドライブ22aのソケット#2に装着されている。また、半導体パッケージ識別名「半導体パッケージC」をもつ半導体パッケージ41は、三番目に高い優先順位を有している(優先順位=3)。半導体パッケージ識別名「半導体パッケージC」をもつ半導体パッケージ41は、パッケージストッカー4の保管位置#1に保管されている。半導体パッケージ識別名「半導体パッケージD」をもつ半導体パッケージ41は、四番目に高い優先順位を有している(優先順位=4)。半導体パッケージ識別名「半導体パッケージD」をもつ半導体パッケージ41は、パッケージストッカー4の保管位置#2に保管されている。半導体パッケージ識別名「半導体パッケージE」をもつ半導体パッケージ41は、五番目に高い優先順位を有している(優先順位=5)。半導体パッケージ識別名「半導体パッケージE」をもつ半導体パッケージ41は、パッケージストッカー4の保管位置#3に保管されている。
【0090】
また、保管位置#2とパッケージ搬送装置3との間の距離は、保管位置#1とパッケージ搬送装置3との間の距離よりも長い。また、保管位置#3とパッケージ搬送装置3との間の距離は、保管位置#2とパッケージ搬送装置3との間の距離よりも長い。このため、保管位置#1に保管されている半導体パッケージCは、搬送ユニット31にとって、保管位置#2に保管されている半導体パッケージDよりも容易に取り出すことができる。そして、保管位置#2に保管されている半導体パッケージDは、搬送ユニット31にとって、保管位置#3に保管されている半導体パッケージEよりも容易に取り出すことができる。ホストユニット21aは、各半導体パッケージ41の優先順位に応じて、より優先順位の高い半導体パッケージ41が、より容易に取り出すことができる保管位置に保管されるように、パッケージ搬送装置3に指示をしてもよい。
【0091】
また、ホストユニット21aは、搬送ユニット31をバッファとして使用してもよい。このとき、ホストユニット21aは、パッケージストッカー4に保管されている複数の半導体パッケージ41のうち、最も優先順位の高い半導体パッケージ41を搬送ユニット31が保持するようにパッケージ搬送装置3に指示をしてもよい。
【0092】
なお、ストレージ管理ツール216は、ドライブ22aのどのソケット222にも装着されていない各半導体パッケージ41(オフラインパッケージとも称される)に格納されているデータとそのデータの量を管理するための処理も実行する。ストレージ管理ツール216は、例えば、パッケージストッカー4に保管されている各半導体パッケージ41に格納されているデータとそのデータの量を管理するための処理を実行する。ストレージ管理ツール216は、各オフラインパッケージに格納されているデータとそのデータの量をOS212またはファイルシステム213に報告することができる。よって、OS212またはファイルシステム213は、ドライブ22aのソケット222に現在装着されている各半導体パッケージ41に格納されているデータのみならず、各オフラインパッケージに格納されているデータとそのデータの量を管理することができる。
【0093】
次に、パッケージストッカー4に半導体パッケージ41を追加する際、およびパッケージストッカー4から半導体パッケージ41を排出する際に使用されるパッケージ出し入れ口について説明する。図8は、パッケージストッカー4のパッケージ出し入れ口を示す図である。
【0094】
パッケージストッカー4は、パッケージストッカー4の外部からパッケージストッカー4への半導体パッケージ41の追加、および、パッケージストッカー4からパッケージストッカー4の外部への半導体パッケージ41の排出、に使用されるパッケージ出し入れ口420を含む。パッケージ出し入れ口420は、パッケージストッカー4の前面42に設けられた開口である。前面42は、サーバラック11の前面12に相当する。
【0095】
半導体パッケージ41は、パッケージストッカー4に設けられたパッケージ出し入れ口420を通じて、パッケージストッカー4の外部からパッケージストッカー4に追加される。追加された半導体パッケージ41は、既に保管されている複数の半導体パッケージ41と共にパッケージストッカー4に保管される。
【0096】
また、不要になった半導体パッケージ41は、パッケージストッカー4に設けられたパッケージ出し入れ口420を通じて、パッケージストッカー4からパッケージストッカー4の外部に排出される。
【0097】
パッケージストッカー4は、パッケージストッカー4の前面42に設けられたパッケージ出し入れ口420に加え、パッケージ搬送装置3と対向する側の面に設けられたパッケージ出し入れ口430も有する。パッケージ出し入れ口430は、パッケージストッカー4への半導体パッケージ41の保管、および、パッケージストッカー4からの半導体パッケージ41の取り出し、に使用される。パッケージ搬送装置3は、パッケージ出し入れ口430を通じてパッケージストッカー4に半導体パッケージ41を保管する動作と、パッケージ出し入れ口430を通じてパッケージストッカー4から半導体パッケージ41を取り出す動作とを実行する。パッケージ出し入れ口430は、例えば、パッケージストッカー4の背面に設けられており、パッケージ出し入れ口420の反対側に位置する。また、ここでは図示されていないが、パッケージストッカー4のパッケージ出し入れ口420からパッケージ搬送装置3に向かう方向に、つまり、パッケージ出し入れ口420からパッケージ出し入れ口430に向かう方向に、複数対のレールが延びている。
【0098】
次に、外部からパッケージストッカー4に半導体パッケージ41を追加する動作について説明する。図9は、パッケージストッカー4のパッケージ出し入れ口420から新規の半導体パッケージ41をパッケージストッカー4に追加する動作を示す図である。
【0099】
図9の上部は、新規の半導体パッケージが追加される前のサーバラック11の平面図である。図9の下部は、12個の新規の半導体パッケージが追加された後のサーバラック11の平面図である。
【0100】
図9から分かるように、パッケージ搬送装置3は、サーバラック11の前面12に設けられたパッケージ出し入れ口420に対向している。12個のレール対R11~R121のそれぞれが、パッケージ出し入れ口420からパッケージ搬送装置3に向かう方向(Y方向)に延びている。
【0101】
図9の上部に示すように、12個のレール対R11~R121には、96個の半導体パッケージ41が既に載置されている。96個の半導体パッケージ41は、パッケージストッカー4に既に保管されている半導体パッケージである。
【0102】
ここで、パッケージストッカー4に12個の半導体パッケージ41を追加する場合を想定する。この場合、図9の下部に示すように、12個の半導体パッケージ41が、例えば、ロボットまたは操作者によって、パッケージ出し入れ口420を通じてレール対R11~R121にそれぞれ載置される。これによって、12個の半導体パッケージ41が、パッケージストッカー4に保管される。
【0103】
このように、パッケージストッカー4においては、パッケージ出し入れ口420からパッケージ搬送装置3に向かう方向にそれぞれが延びた複数のレール対R11~R121が設けられている。したがって、パッケージ出し入れ口420を通じて半導体パッケージ41の追加および排出を容易に行うことが可能となる。
【0104】
次に、ホストユニット21によって制御される半導体パッケージ41の搬送および着脱動作について説明する。図10は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための図である。
【0105】
ホストユニット21は、半導体パッケージ管理テーブル6を用いて、ストレージシステム1に含まれる半導体パッケージ41それぞれの優先順位を管理する。そして、ホストユニット21は、ストレージシステム1に含まれる半導体パッケージ41それぞれの優先順位に基づいて、半導体パッケージ41の搬送および着脱をパッケージ搬送装置3に指示する。
【0106】
図10に示す例では、ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージHまでの8個の半導体パッケージ41を管理している。ホストユニット21は、管理されている半導体パッケージ41のうち、最も優先順位の高い半導体パッケージAを例えばソケット#1に、二番目に優先順位の高い半導体パッケージBを例えばソケット#2に、それぞれ装着させるようにパッケージ搬送装置3に指示する。これにより、半導体パッケージAと半導体パッケージBとがそれぞれソケット#1とソケット#2とに装着されていることを示す情報が半導体パッケージ管理テーブル6に格納される。このように、ドライブ22に含まれるソケットの数が2である場合には、1位から2位までの優先順位を有する2つの半導体パッケージA~Bがドライブ22の2つのソケット#1~#2にそれぞれ装着される。1位から2位までの優先順位は、第1レベル優先順位に対応する。
【0107】
また、3位から8位までの優先順位を有する6個の半導体パッケージ41(半導体パッケージC~H)は、パッケージストッカー4に保管された状態にある。パッケージストッカー4は、第1保管場所と第2保管場所との少なくとも2種類の保管場所を含み得る。第1保管場所とパッケージ搬送装置3との距離は、第2保管場所とパッケージ搬送装置3との距離よりも短い。第1保管場所は、例えば、保管位置#1~#3を含む。第2保管場所は、例えば、保管位置#4~#6を含む。保管位置#1~#3は、パッケージ搬送装置3にとって、保管位置#4~#6よりも半導体パッケージ41を取り出すことが容易な保管位置である。
【0108】
パッケージストッカー4に保管されている6個の半導体パッケージ41のうち、3位から5位までの優先順位を有する3個の半導体パッケージC~Eは、第1保管場所に含まれる保管位置#1~#3に保管される。3位から5位までの優先順位は、第1レベル優先順位よりも低い第2レベル優先順位に相当する。
【0109】
また、パッケージストッカー4に保管されている6個の半導体パッケージ41のうち、6位から8位までの優先順位を有する3つの半導体パッケージF~Hは、第2保管場所に含まれる保管位置#4~#6に保管される。6位から8位までの優先順位は、第2レベル優先順位よりも低い第3レベル優先順位に相当する。
【0110】
ここで、パッケージストッカー4に保管されている半導体パッケージCの優先順位が、半導体パッケージBの優先順位を上回ったときのホストユニット21の動作について説明する。図11は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための別の図である。
【0111】
例えば、半導体パッケージCの優先順位が3位から2位に上がり、半導体パッケージBの優先順位が2位から3位に下がった場合を想定する。まず、ホストユニット21は、半導体パッケージBをソケット#2から取り外すことと、半導体パッケージCをドライブ22に搬送してソケット#2に装着することと、取り外した半導体パッケージBをパッケージストッカー4の例えば保管位置#1に搬送することとをパッケージ搬送装置3に指示する。パッケージ搬送装置3は、半導体パッケージBをソケット#2から取り外し、半導体パッケージCを、半導体パッケージBが取り外されたソケット#2に搬送して装着し、そして、取り外された半導体パッケージBをパッケージストッカー4の保管位置#1に搬送する。
【0112】
そして、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージBがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、半導体パッケージCがソケット#2に装着されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
【0113】
次に、半導体パッケージ41が保管されているパッケージストッカー4内の保管位置を変更する動作について説明する。図12は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4内で変更する動作について説明するための図である。
【0114】
ここでは、図10に示す状態において、例えば、半導体パッケージHの優先順位が8位から3位に上がり、半導体パッケージC~Gそれぞれの優先順位が3位~7位から4位~8位に下がった場合を想定する。半導体パッケージHの新優先順位(3位)は第2レベルの優先順位に属し、半導体パッケージEの新優先順位(6位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、半導体パッケージHの保管位置と半導体パッケージEの保管位置とを交換するようにパッケージ搬送装置3に指示する。まず、パッケージ搬送装置3は、パッケージストッカー4の保管位置#3から半導体パッケージEを取り出す。そして、パッケージ搬送装置3は、さらに、パッケージストッカー4の保管位置#6から半導体パッケージHを取り出す。その後、パッケージ搬送装置3は、パッケージストッカー4の保管位置#6に半導体パッケージEを保管する。そして、パッケージ搬送装置3は、パッケージストッカー4の保管位置#3に半導体パッケージHを保管する。
【0115】
そして、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージEがパッケージストッカー4の保管位置#6に保管されていることを示す情報と、半導体パッケージHがパッケージストッカー4の保管位置#3に保管されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
【0116】
上記の動作によって、ホストユニット21はパッケージストッカー4に保管されている半導体パッケージ41のうち、より高い優先順位を持つ半導体パッケージ41を、パッケージ搬送装置3にとって、取り出すことが容易な保管位置(ここでは保管場所#1)に保管されるように制御することができる。これにより、パッケージストッカー4の保管場所#1に保管されている半導体パッケージ41が持つ優先順位が第2レベルの優先順位を上回ったとき、この半導体パッケージ41をパッケージストッカー4からドライブ22のソケット222に搬送するために必要とされる時間を短縮することができる。
【0117】
次に、パッケージ搬送装置3のバッファが使用な可能な場合における、ホストユニット21によって制御される半導体パッケージ41の搬送および着脱動作について説明する。図13は、本実施形態に係るストレージシステムにおいて実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
【0118】
ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージHまでの8個の半導体パッケージ41を管理している。ホストユニット21は、管理されている半導体パッケージ41のうち、最も優先順位の高い半導体パッケージAをドライブ22の例えばソケット#1に、二番目に優先順位の高い半導体パッケージBをドライブ22の例えばソケット#2に、それぞれ装着させるようにパッケージ搬送装置3に指示する。パッケージ搬送装置3は、半導体パッケージAをドライブ22のソケット#1に搬送して装着する。また、パッケージ搬送装置3は、半導体パッケージBをドライブ22のソケット#2に搬送して装着する。ホストユニット21は、半導体パッケージAと、半導体パッケージBとがそれぞれソケット#1と、ソケット#2とに装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
【0119】
このように、ドライブ22に含まれるソケットの数が2である場合には、1位から2位までの優先順位を有する2つの半導体パッケージA~Bがドライブ22の2つのソケット#1~#2にそれぞれ装着される。1位から2位までの優先順位は、第1レベル優先順位に対応する。
【0120】
また、ホストユニット21は、3位から4位までの優先順位を有する2つの半導体パッケージC~Dを保持するようにパッケージ搬送装置3に指示する。3位から4位までの優先順位は、第1レベルの優先順位よりも低い第2レベルの優先順位に相当する。
【0121】
指示を受けたパッケージ搬送装置3(例えば搬送ユニット#1)は、半導体パッケージCを保持する。また、指示を受けたパッケージ搬送装置3(例えば搬送ユニット#2)は、半導体パッケージDを保持する。これにより、3位から4位までの優先順位を有する2つの半導体パッケージC~Dは、パッケージ搬送装置3において保持される。つまり、半導体パッケージCを保持する搬送ユニット#1はパッケージ搬送装置3のバッファ#1として使用され、半導体パッケージDを保持する搬送ユニット#2はパッケージ搬送装置3のバッファ#2として使用される。
【0122】
この結果、ホストユニット21は、半導体パッケージCと、半導体パッケージDとが、それぞれ搬送ユニット#1(バッファ#1)と、搬送ユニット#2(バッファ#2)とに保持されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
【0123】
また、5位から8位までの優先順位を有する4個の半導体パッケージE~Hは、パッケージストッカー4に保管された状態にある。パッケージストッカー4に保管されている4個の半導体パッケージ41のうち、5位から7位までの優先順位を有する3個の半導体パッケージE~Gは、第1保管場所に含まれる保管位置#1~#3に保管される。5位から7位までの優先順位は、第2レベル優先順位よりも低い第3レベル優先順位に相当する。
【0124】
パッケージストッカー4に保管されている4個の半導体パッケージ41のうち、8位の優先順位を有する半導体パッケージHは、第2保管場所に含まれる保管位置#4~#6のいずれか一つ(例えば保管位置#4)に保管される。
【0125】
ここで、パッケージ搬送装置3のバッファ#1に保持されていた半導体パッケージCの優先順位が、半導体パッケージBの優先順位を上回ったときのホストユニット21の動作について説明する。図14は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
【0126】
例えば、半導体パッケージCの優先順位が3位から2位に上がり、半導体パッケージBの優先順位が2位から3位に下がった場合を想定する。まず、ホストユニット21は、半導体パッケージBをソケット#2から取り外すことと、半導体パッケージCをドライブ22に搬送してソケット#2に装着することと、取り外した半導体パッケージBをパッケージ搬送装置3に保持することとをパッケージ搬送装置3に指示する。パッケージ搬送装置3は、半導体パッケージBをソケット#2から取り外す。そして、パッケージ搬送装置3は、搬送ユニット#1に保持されている半導体パッケージCを、半導体パッケージBが取り外されたソケット#2に搬送して装着する。取り外された半導体パッケージBは、パッケージ搬送装置3(例えば搬送ユニット#1)において保持された状態に維持される。
【0127】
上記の動作に応じて、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージBがパッケージ搬送装置3のバッファ#1に保持されていることを示す情報と、半導体パッケージCがソケット#2に装着されていることを示す情報とを半導体パッケージ管理テーブル6に格納する。
【0128】
次に、パッケージストッカー4に保管されている半導体パッケージ41の優先順位がパッケージ搬送装置3のバッファに保持されている半導体パッケージ41の優先順位を上回った場合の交換動作について説明する。図15は、本実施形態に係るストレージシステム1において実行される、半導体パッケージ41の優先順位の変更に基づいて半導体パッケージ41の位置をパッケージストッカー4とパッケージ搬送装置3との間で変更する動作について説明するための図である。
【0129】
ここでは、図13に示す状態において、例えば、半導体パッケージEの優先順位が5位から4位に上がり、半導体パッケージDの優先順位が4位から5位に下がった場合を想定する。半導体パッケージEの新優先順位(4位)は第2レベルの優先順位に属し、半導体パッケージDの新優先順位(5位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、半導体パッケージEの位置と半導体パッケージDの位置とを交換するようにパッケージ搬送装置3に指示する。具体的には、まず、ホストユニット21は、半導体パッケージDをパッケージストッカー4の保管位置#1に搬送するようにパッケージ搬送装置3に指示し、さらに、半導体パッケージEを搬送ユニット#2に保持するようにパッケージ搬送装置3に指示する。指示を受けたパッケージ搬送装置3は、搬送ユニット#2が保持していた半導体パッケージDをパッケージストッカー4の保管位置#1に搬送する。そして、搬送ユニット#2は、パッケージストッカー4の保管位置#1に保管されている半導体パッケージEと、保持している半導体パッケージDとを交換する。搬送ユニット#2は、バッファ#2として、半導体パッケージEを保持する。
【0130】
上記の動作に応じて、ホストユニット21は、半導体パッケージ管理テーブル6を更新する。具体的には、ホストユニット21は、半導体パッケージDがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、半導体パッケージEがパッケージ搬送装置3の搬送ユニット#2(バッファ#2)に保持されていることを示す情報と、を半導体パッケージ管理テーブル6に格納する。
【0131】
上記の動作によって、ホストユニット21はパッケージストッカー4に保管されている半導体パッケージ41のうち、より高い優先順位を持つ半導体パッケージ41を、パッケージ搬送装置3にあらかじめ保持させておくことができる。これにより、搬送ユニット31に保持されている半導体パッケージ41が持つ優先順位が、ソケット222に接続されている半導体パッケージ41が持つ優先順位を上回ったとき、パッケージ搬送装置3がパッケージストッカー4から半導体パッケージ41を取り出すために必要とされる時間を無くすことができる。すなわち、パッケージ搬送装置3のバッファを使用することによって、パッケージストッカー4内の保管位置を調整することよりも、半導体パッケージ41の移動に必要とされる時間を大きく減らすことができる。
【0132】
次に、半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図16は、本実施形態に係るストレージシステム1のホストユニット21によって実行されるデータの読み出しまたは書き込み処理の手順を示すフローチャートである。
【0133】
まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS11)。ここで、アクセス対象の不揮発性メモリダイ411はアプリケーションプログラム211から受信されるリード要求またはライト要求に基づいて決定される。そして、このアクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41がステップS11で決定される。
【0134】
ホストユニット21は、ステップS11で決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定する(ステップS12)。ステップS12では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定してもよい。
【0135】
決定された半導体パッケージ41がドライブ22のソケット222に装着されている場合(ステップS12でYes)、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS13)。
【0136】
決定された半導体パッケージ41がドライブ22のいずれのソケット222にも装着されていない場合(ステップS12でNo)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からドライブ22に搬送させ、ソケット222に装着させる(ステップS14)。
【0137】
パッケージ搬送装置3によってソケット222に半導体パッケージ41が装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS13)。
【0138】
図17は、本実施形態に係るストレージシステム1のホストユニット21によって実行されるデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャートである。
【0139】
まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS21)。
【0140】
ホストユニット21は、ステップS21で決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定する(ステップS22)。ステップS22では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを確認してもよい。
【0141】
決定された半導体パッケージ41がドライブ22のソケット222に装着されている場合(ステップS22でYes)、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS23)。
【0142】
決定された半導体パッケージ41がドライブ22のいずれのソケット222にも装着されていない場合(ステップS22でNo)、ホストユニット21は、ドライブ22に空きソケットがあるか否かを確認する(ステップS24)。空きソケットは、いずれの半導体パッケージ41も装着されていないソケット222である。
【0143】
ドライブ22に空きソケットがある場合(ステップS24でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からドライブ22に搬送させ、空きソケットに装着させる(ステップS25)。この場合、ホストユニット21は、決定された半導体パッケージ41をパッケージストッカー4から取り出すことと、決定された半導体パッケージ41を空きソケットに装着することとをパッケージ搬送装置3に指示する。
【0144】
パッケージ搬送装置3によってソケット222に半導体パッケージ41が装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
【0145】
読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
【0146】
そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS23)。
【0147】
ドライブ22に空きソケットがない場合(ステップS24でNo)、ホストユニット21は、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するか否かを判定する(ステップS26)。
【0148】
ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在しない場合(ステップS26でNo)、ホストユニット21は、ステップS24の処理を再度実行する。ホストユニット21は、各半導体パッケージ41の優先順位の変更によって、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するようになるまで待つ。
【0149】
ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在する場合(ステップS26でYes)、ホストユニット21は、パッケージ搬送装置3に、ドライブ22のソケット222に装着されている半導体パッケージ41のうち、最も低い優先順位を持つ半導体パッケージ41をソケット222から取り外させ、そして、取り外された半導体パッケージ41をパッケージストッカー4へ搬送させる(ステップS27)。これにより、この半導体パッケージ41が取り外されたソケット222は、空きソケットになる。
【0150】
そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からドライブ22に搬送させ、空きソケットに装着させる(ステップS25)。この場合、ホストユニット21は、決定された半導体パッケージ41をパッケージストッカー4から取り出すことと、決定された半導体パッケージ41をソケット222に装着することとを、パッケージ搬送装置3に指示する。
【0151】
パッケージ搬送装置3によってソケット222に半導体パッケージ41が装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
【0152】
読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
【0153】
そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS23)。
【0154】
これにより、ドライブ22に空きソケットがない場合であっても、ホストユニット21は、決定された半導体パッケージ41が持つ優先順位よりも低い優先順位をもつ半導体パッケージ41をソケット222から取り外すことで、決定された半導体パッケージ41をソケット222に装着させることができる。
【0155】
次に、パッケージ搬送装置3のバッファを使用可能な場合における、半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図18A、および図18Bは、本実施形態に係るストレージシステム1のホストユニット21によって実行される不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の別の手順を示すフローチャートである。
【0156】
まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS301)。
【0157】
ホストユニット21は、ステップS301で決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定する(ステップS302)。ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がドライブ22のソケット222に装着されているか否かを判定してもよい。
【0158】
決定された半導体パッケージ41がドライブ22のソケット222に装着されている場合(ステップS302でYes)、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS303)。
【0159】
決定された半導体パッケージ41がドライブ22のいずれのソケット222にも装着されていない場合(ステップS302でNo)、ホストユニット21は、ドライブ22に空きソケットがあるか否かを確認する(ステップS304)。
【0160】
ドライブ22に空きソケットがある場合(ステップS304でYes)、ホストユニット21は、図18BのステップS305の処理を実行する。
【0161】
ドライブ22に空きソケットがない場合(ステップS304でNo)、ホストユニット21は、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するか否かを判定する(ステップS307)。
【0162】
ドライブ22のソケット222に装着されている半導体パッケージ41の中に決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在しない場合(ステップS307でNo)、ホストユニット21は、ステップS304の処理を再度実行する。ホストユニット21は、各半導体パッケージ41の優先順位の変更によって、ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するようになるまで待つ。
【0163】
ドライブ22のソケット222に装着されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在する場合(ステップS307でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41をソケット222から取り外させ、そして取り外された半導体パッケージ41をパッケージ搬送装置3のバッファに搬送させる(ステップS308)。これにより、ソケット222から取り外された半導体パッケージ41は、パッケージストッカー4に保管されずに、パッケージ搬送装置3に保持される。また、半導体パッケージ41が取り外されたソケット222は、空きソケットになる。そして、ホストユニット21は、図18BのステップS305の処理を実行する。
【0164】
ホストユニット21は、決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在するか否か、つまり、決定された半導体パッケージ41がパッケージ搬送装置3において保持されているか否かを判定する(ステップS305)。ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41がパッケージ搬送装置3に保持されているか否かを判定し得る。
【0165】
決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在する場合、つまり、決定された半導体パッケージ41がパッケージ搬送装置3のいずれかの搬送ユニット31に保持されている場合(ステップS305でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージ搬送装置3のバッファからドライブ22に搬送させ、空きソケットに装着させる(ステップS306)。この場合、ホストユニット21は、決定された半導体パッケージ41を保持している搬送ユニット31に、決定された半導体パッケージ41をソケット222に装着するように指示する。
【0166】
搬送ユニット31によって半導体パッケージ41がソケット222に装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
【0167】
読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
【0168】
そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図18AのステップS303)。
【0169】
決定された半導体パッケージ41がパッケージ搬送装置3のいずれのバッファにも存在しない場合、つまり、決定された半導体パッケージ41がパッケージ搬送装置3のいずれの搬送ユニット31にも保持されていない場合(ステップS305でNo)、ホストユニット21は、パッケージ搬送装置3に空きのバッファがあるか否かを確認する(ステップS309)。パッケージ搬送装置3の空きのバッファは、半導体パッケージ41を保持していない搬送ユニット31である。
【0170】
パッケージ搬送装置3に空きのバッファがある場合、つまり、半導体パッケージ41を保持していない搬送ユニット31が存在する場合(ステップS309でYes)、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からパッケージ搬送装置3の空きのバッファ、つまり、半導体パッケージ41を保持していない搬送ユニット31、に搬送させる(ステップS310)。この場合、ホストユニット21は、半導体パッケージ41を保持していない搬送ユニット31に、決定された半導体パッケージ41をパッケージストッカー4から取り出すように指示してもよい。これにより、決定された半導体パッケージ41はこの搬送ユニット31によって保持されるので、決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在している状態となる。
【0171】
そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージ搬送装置3のバッファからドライブ22に搬送させ、空きソケットに装着させる(ステップS306)。この場合、ホストユニット21は、決定された半導体パッケージ41を保持している搬送ユニット31に、決定された半導体パッケージ41を、ソケット222に装着するように指示する。
【0172】
搬送ユニット31によって半導体パッケージ41がソケット222に装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
【0173】
読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
【0174】
そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図18AのステップS303)。
【0175】
パッケージ搬送装置3に空きのバッファが存在しない場合(ステップS309でNo)、ホストユニット21は、パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するか否かを判定する(ステップS311)。
【0176】
パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在しない場合(ステップS311でNo)、ホストユニット21は、ステップS309の処理を再度実行する。ホストユニット21は、各半導体パッケージ41の優先順位の変更によって、パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在するようになるまで待つ。
【0177】
パッケージ搬送装置3のバッファに保持されている半導体パッケージ41の中に、決定された半導体パッケージ41の優先順位よりも低い優先順位を持つ半導体パッケージ41が存在する場合(ステップS311でYes)、ホストユニット21は、パッケージ搬送装置3に、パッケージ搬送装置3のバッファに保持されている半導体パッケージ41のうち、最も低い優先順位を持つ半導体パッケージ41をパッケージストッカー4に搬送させる(ステップS312)。ステップS312では、ホストユニット21は、最も低い優先順位を持つ半導体パッケージ41を保持している搬送ユニット31に、半導体パッケージ41をパッケージストッカー4に搬送するように指示してもよい。これにより、この搬送ユニット31は、半導体パッケージ41を保持していない空きのバッファになる。
【0178】
そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージストッカー4からパッケージ搬送装置3の空きのバッファに搬送させる(ステップS310)。この場合、ホストユニット21は、空きのバッファになった搬送ユニット31に、決定された半導体パッケージ41をパッケージストッカー4から取り出すように指示してもよい。これにより、決定された半導体パッケージ41はこの搬送ユニット31によって保持されるので、決定された半導体パッケージ41がパッケージ搬送装置3のバッファに存在している状態となる。
【0179】
そして、ホストユニット21は、パッケージ搬送装置3に、決定された半導体パッケージ41をパッケージ搬送装置3のバッファからドライブ22に搬送させ、空きソケットに装着させる(ステップS306)。
【0180】
搬送ユニット31によって半導体パッケージ41がソケット222に装着された場合、ホストユニット21は、この半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを確認する。
【0181】
読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、決定された半導体パッケージ41がドライブ22のソケット222に装着されていることを示す情報を半導体パッケージ管理テーブル6に格納する。
【0182】
そして、ホストユニット21は、コントローラ223を介して、決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図18AのステップS303)。
【0183】
以上説明したように、第1の実施形態によれば、ドライブ22は、半導体パッケージ41を着脱可能に装着するように構成された少なくとも1つのソケット222と、このソケット222に装着された半導体パッケージ41の不揮発性メモリダイ411を制御するコントローラ223とを含む。
【0184】
ドライブ22に通信可能に接続されたホストユニット21は、コントローラ223を介して、ソケット222に接続された半導体パッケージ41の不揮発性メモリダイ411に対してデータの読み出しまたは書き込みを実行することができる。ホストユニット21は、ストレージシステム1で管理されている複数の半導体パッケージ41の中から、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する。
【0185】
アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41が、ドライブ22のソケット222に装着されている場合、ホストユニット21は、コントローラ223を介して、アクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する。
【0186】
アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41がドライブ22のソケット222に装着されておらず、且つ、パッケージストッカー4に保管されている場合、ホストユニット21は、パッケージ搬送装置3に、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41をドライブ22のソケット222に搬送させて装着させる。
【0187】
このように、ストレージシステム1においては、1以上の不揮発性メモリダイ411を含む半導体パッケージ41が、ドライブ22のソケット222に装着される。この結果、ドライブ22のソケット222に装着された半導体パッケージ41を、ホストユニット21によってアクセス可能なストレージデバイスとして使用することができる。このため、ホストユニット21は、ドライブ22のソケット222に接続されている半導体パッケージ41を別の半導体パッケージ41に交換するだけで、ストレージシステム1で管理される複数の半導体パッケージ41のうちの任意の半導体パッケージ41に含まれる不揮発性メモリダイ411に対してデータの読み出しまたは書き込みを行うことができる。
(第2の実施形態)
次に、複数個の半導体パッケージ41をまとめて搬送および着脱する構成について説明する。図19は、本実施形態に係るストレージシステム1の構成例を示す図である。図19に示すストレージシステム1は、図1に示した第1の実施形態のストレージシステム1と比較し、複数個の半導体パッケージ41を収容するトレー46を、半導体パッケージ41を搬送および着脱するための単位として使用する点が主に相違しており、他の構成は、第1の実施形態のストレージシステム1の構成と同様である。以下では、第1の実施形態のストレージシステム1との相違点を主として説明する。
【0188】
パッケージストッカー4は、所定個数の半導体パッケージ41をそれぞれが収容する複数のトレー46を保管可能に構成されている。トレー46の形状は、箱形であってもよいし、板状であってもよい。一つのトレー46に収容さる半導体パッケージ41の個数は、2以上である。トレー46には、所定個数の半導体パッケージ41が収容される。トレー46への半導体パッケージ41の収容は工場で行われる。所定個数の半導体パッケージ41を収容しているトレー46が工場から出荷され、データセンタで使用される。
【0189】
ドライブ22は、トレー46に収容されたままの所定個数の半導体パッケージ41を一括して着脱可能な、所定個数のソケット222を少なくとも含む。例えば、トレー46が16個の半導体パッケージ41を収容するように構成されている場合には、ドライブ22は、16個のソケット222を少なくとも含む。16個のソケット222は、一つのトレーに収容されている16個の半導体パッケージ41を一括して着脱可能なソケット群を形成する。16個の半導体パッケージ41は、トレー46に収容された状態で、16個のソケット222に一括して装着される。また、トレー46が48個の半導体パッケージ41を収容するように構成されている場合には、ドライブ22は、48個のソケット222を少なくとも含む。48個のソケット222は、一つのトレーに収容されている48個の半導体パッケージ41を一括して着脱可能なソケット群を形成する。48個の半導体パッケージ41は、トレー46に収容された状態で、48個のソケット222に一括して装着される。なお、ドライブ22は、2つ以上のトレー46に対応する数のソケット222を含んでいてもよい。
【0190】
パッケージ搬送装置3は、トレー46をパッケージストッカー4とドライブ22との間で搬送する。例えば、トレー46が16個の半導体パッケージ41を収容するように構成されている場合には、パッケージ搬送装置3は、トレー46を搬送することによって、16個の半導体パッケージ41をまとめてパッケージストッカー4とドライブ22との間で搬送する。
【0191】
次に、ストレージシステム1の基本的な動作について説明する。ホストユニット21は、位置管理機能と、搬送制御機能とを有している。位置管理機能は、複数のトレー46それぞれが存在している位置を管理する機能である。搬送制御機能は、パッケージ搬送装置3を制御することによって、所定個数の半導体パッケージ41を収容したトレー46の搬送を制御する機能である。
【0192】
複数のトレー46の各々にはトレー識別子(トレー識別名とも称される)が付与されている。例えば、複数のトレー46の各々には、二次元バーコードのようなバーコードがマーキングされていてもよいし、二次元バーコードのようなバーコードが印刷されたシールが添付されていてもよい。バーコードは、トレー識別子を表す情報を含む。
【0193】
ホストユニット21は、トレー識別子と、このトレー識別子によって識別されるトレー46が存在している位置との間の対応関係を管理し得る。また、ホストユニット21は、トレー識別子と、このトレー識別子によって識別されるトレー46に収容されている所定個数の半導体パッケージ41との間の対応関係も管理し得る。
【0194】
あるトレー46が存在し得る位置は、例えば、ドライブ22に含まれる複数のソケット222のうちの所定個数のソケット222、または、パッケージストッカー4に含まれる複数のトレー保管位置のうちの任意の一つのトレー保管位置である。
【0195】
ホストユニット21は、複数の半導体パッケージ41のうち、アクセス対象である不揮発性メモリダイを含む半導体パッケージ41を決定する。ホストユニット21は、決定した半導体パッケージ41を収容しているトレー46をさらに決定する。
【0196】
ホストユニット21は、決定したトレー46が存在している位置を特定し、これによって、決定したトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定することができる。
【0197】
決定したトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されている場合、ホストユニット21は、ドライブ22内のコントローラ223を介してアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する。
【0198】
決定したトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されていない場合、ホストユニット21は、パッケージ搬送装置3に、決定したトレー46をドライブ22に搬送させて、決定したトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる。この場合、ホストユニット21は、パッケージ搬送装置3に次のような搬送要求を送信し得る。
【0199】
この搬送要求は、例えば、決定したトレー46が保管されているパッケージストッカー4内の位置(トレー保管位置とも称される)を移動元位置として指定し、且つ、ドライブ22の所定個数のソケット222を移動先位置として指定する。パッケージ搬送装置3の搬送ユニット31は、指定された移動元位置に存在しているトレー46を、指定された移動先位置に搬送する。そして、搬送ユニット31は、このトレー46に収容された所定個数の半導体パッケージ41を、移動先位置の所定個数のソケット222に一括して装着する。
【0200】
このように、個々のトレー46毎にその位置を管理することにより、個々の半導体パッケージ41毎にその位置を管理する場合に比し、位置管理に必要とされる処理量を低減できる。さらに、トレー46に収容された所定個数の半導体パッケージ41がまとめて搬送されるので、個々の半導体パッケージ41を一つずつ搬送する場合に比し、必要な搬送回数を低減することが可能となる。
【0201】
さらに、ホストユニット21は、複数の半導体パッケージ41それぞれの優先順位に基づいて決定される複数のトレー46それぞれの優先順位を管理する機能も有し得る。複数の複数のトレー46それぞれの優先順位を決定するためのアルゴリズムは特定のアルゴリズムに限定されず、様々な条件に基づいて、複数のトレー46それぞれの優先順位を決定することができる。例えば、ホストユニット21は、収容している所定個数の半導体パッケージ41が有する優先順位の平均が高いトレー46が高い優先順位を有するように、複数のトレー46それぞれの優先順位を決定してもよい。あるいは、ホストユニット21は、収容している所定個数の半導体パッケージ41が有する優先順位の中の最高の優先順位に基づいて、複数のトレー46それぞれの優先順位を決定してもよい。
【0202】
ホストユニット21は、複数のトレー46それぞれの優先順位に基づいて、複数のトレー46それぞれが存在する位置を制御することもできる。例えば、ホストユニット21は、第1レベルの優先順位を有するトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着され、第1レベルの優先順位よりも低い第2レベルの優先順位を有するトレー46がパッケージストッカー4に保管されるように、複数のトレー46それぞれの優先順位に基づいて、複数のトレー46それぞれが存在する位置を制御し得る。
【0203】
なお、パッケージ搬送装置3に含まれる搬送ユニット31の幾つかを、トレー46を一時的に保持するためのバッファとして使用してもよい。この場合、第1レベルの優先順位よりも低い第2レベルの優先順位を有するトレー46は、パッケージ搬送装置3に含まれる搬送ユニット31に保持される。そして、第2レベルの優先順位よりも低い第3レベルの優先順位を有するトレー46がパッケージストッカー4に保管される。
【0204】
第2レベルの優先順位を有するトレー46を保持している搬送ユニット31は、他の搬送ユニット31による搬送動作の妨げにならないように、特定の退避位置に移動されてもよい。
【0205】
また、トレー46の優先順位に応じて、パッケージストッカー4内の保管場所を変更してもよい。例えば、ホストユニット21は、第1レベルの優先順位を有するトレー46に終了される所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着され、第1レベルの優先順位よりも低い第2レベルの優先順位を有するトレー46がパッケージ搬送装置3において保持され、第2レベルの優先順位よりも低い第3レベルの優先順位を有するトレー46がパッケージストッカー4に含まれる第1の保管場所に保管され、第3レベルの優先順位よりも低い第4レベルの優先順位を有するトレー46がパッケージストッカー4に含まれる第2の保管場所に保管されるように、複数のトレー46それぞれの優先順位に基づいて、複数のトレー46それぞれが存在する位置を制御し得る。ここで、第1の保管場所は、第2の保管場所よりも、パッケージ搬送装置3に近いパッケージストッカー4内の保管場所である。
【0206】
次に、トレーの46の構成について説明する。図20は、複数の半導体パッケージ41を収容可能なトレー46の構成例を示す斜視図である。図21は、図20の21-21線に沿ったトレー46の断面図である。
【0207】
トレー46は、所定個数の半導体パッケージ41を収容可能な所定個数の窪み461を含む。例えば、トレー46が16個の半導体パッケージ41を収容可能な構造を有する場合には、トレー46は、16個の窪み461を含む。
【0208】
図21に示すように、所定個数の窪み461の各々の底面近傍の内周部には、支持部材462が設けられている。支持部材462は、その窪み461に収容された半導体パッケージ41の裏面417の最外周領域を支持する。さらに、所定個数の窪み461の各々の底面、つまりトレー46の下面においては、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。つまり、所定個数の窪み461の各々は半導体パッケージ41を収容可能な空洞であり、この空洞の底部には、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。
【0209】
したがって、窪み461に収容された半導体パッケージ41の裏面417の最外周領域は支持部材462に当接し、これによって半導体パッケージ41はトレー46内に保持される。さらに、半導体パッケージ41の裏面417に設けられた複数のボール型金属端子413は、支持部材462に接触することなく、トレー46の下面に設けられた開口を通して外部環境に露出される。この場合、各半導体パッケージ41は、トレー46の下面に設けられた開口を通して複数のボール型金属端子413がトレー46の下面から突出されるようにトレー46内に収容され得る。
【0210】
このように、トレー46は、所定個数の半導体パッケージ41の各々の複数のボール型金属端子413が露出される開口が形成された下面を有する。したがって、所定個数の半導体パッケージ41を、これら半導体パッケージ41がトレー46に収容されたまま所定個数のソケット222に装着することができる。
【0211】
また、所定個数の半導体パッケージ41の各々の複数のボール型金属端子413が露出される開口が形成されたトレー46の下面は、凹凸の無い平坦な面である。したがって、トレー46は、パッケージストッカー4のレール対に沿ってスムーズに移動可能である。
【0212】
次に、トレー46に収容された所定個数の半導体パッケージ41とドライブ22の所定個数のソケット222との間の位置合わせを補助可能なトレー46の構成について説明する。図22は、上面と下面にそれぞれ凸部が設けられたトレー46の構成例を示す斜視図である。図23は、図22の23-23線に沿ったトレー46の断面図である。
【0213】
トレー46は、所定個数の半導体パッケージ41を収容可能な所定個数の窪み461を含む。例えば、トレー46が16個の半導体パッケージ41を収容可能な構造を有する場合には、トレー46は、16個の窪み461を含む。
【0214】
図23に示すように、所定個数の窪み461の各々の底面近傍の内周部には、支持部材462が設けられている。支持部材462は、その窪み461に収容された半導体パッケージ41の裏面417の最外周領域を支持する。さらに、所定個数の窪み461の各々の底面、つまりトレー46の下面においては、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。つまり、所定個数の窪み461の各々は半導体パッケージ41を収容可能な空洞であり、この空洞の底部には、半導体パッケージ41の複数のボール型金属端子413が露出される開口が形成されている。
【0215】
したがって、窪み461に収容された半導体パッケージ41の裏面417の最外周領域は支持部材462に当接し、これによって半導体パッケージ41はトレー46内に保持される。さらに、半導体パッケージ41の裏面417に設けられた複数のボール型金属端子413は、支持部材462に接触することなく、トレー46の下面に設けられた開口を通して外部環境に露出される。この場合、各半導体パッケージ41は、トレー46の下面に設けられた開口を通して複数のボール型金属端子413がトレー46の下面から突出されるようにトレー46内に収容され得る。
【0216】
さらに、トレー46の下面は、一つ以上の凸部463を有している。各凸部463は、トレー46に収容された所定個数の半導体パッケージ41とドライブ22の所定個数のソケット222との間の位置合わせ用の部材として使用され得る。
【0217】
また、さらに、トレー46の上面は、一つ以上の凸部464を有している。トレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、所定個数の半導体パッケージ41と所定個数のソケット222との間の安定した接触状態を維持するために、トレー46は蓋部材で覆われてもよい。トレー46の上面に設けられた各凸部464は、トレー46と蓋部材との間の位置合わせ用の部材として使用され得る。
【0218】
図24は、図22および図23を参照して説明したトレー46の上面および下面の形状を示す平面図である。図24の左部はトレー46を上面側から見た平面図である。図24の右部はトレー46を下面側から見た平面図である。また、図25は、トレー46の側面図である。
【0219】
図24の右部および図25から分かるように、トレー46の下面は、各半導体パッケージ41の複数のボール型金属端子413が露出される開口を有し、且つ複数の凸部463を有している。
【0220】
また図25から分かるように、各凸部463の先端は、凹凸の無い平坦な面を有している。トレー46がパッケージストッカー4のレール対上に載置された場合、各凸部463の先端は、レール対に当接する接触面となる。この接触面は、凹凸の無い平坦な面を有しているので、レール対に沿ってトレー46をスムーズにスライドさせることができる。
【0221】
次に、複数のトレー46を保管可能なパッケージストッカー4の構成について説明する。図26は、複数のトレー46を載置可能なパッケージストッカー4のレール構造を示す斜視図である。
【0222】
図26では、各トレー46が、ドライブ22に設けられたソケット222の数と同じ48個の半導体パッケージ41を収容している場合が例示されている。
【0223】
パッケージストッカー4は、間隔を置いて互いに対向する2つの側壁4011、4012と、2つの側壁4011、4012の内側に配置された4つのレール対R11~R14とを含む。レール対R11は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。レール間に隙間を有するこのようなレール構造を使用することにより、トレー46の下面から露出された各半導体パッケージ41のボール型金属端子413がレールに接触することなく、トレー46を支持することが可能となる。他のレール対R12~R14の各々も、レール対R11と同様の構成を有している。
【0224】
図27は、複数のトレー46が載置可能なパッケージストッカー4のレール構造の他の例を示す斜視図である。
【0225】
図27では、パッケージストッカー4に3つのレールユニット401~403が含まれている場合が例示されている。ドライブ22に含まれるソケット222の数は例えば48個であり、トレー46に収容されている半導体パッケージ41の数は例えば16個である。この場合、ドライブ22に含まれる48個のソケット222は、各々が16個のソケット222を含む3つのグループに分けられる。あるトレー46に収容されている16個の半導体パッケージ41が、あるグループに含まれる16個のソケット222に一括して装着される。そして、このトレー46は、このグループに対応する蓋部材226によって覆われる。各グループに対応する蓋部材226は、ヒンジ機構を介し開閉自在にドライブ22のプリント回路基板221に取り付けられていてもよい。
【0226】
レールユニット401は、間隔を置いて互いに対向する2つの側壁4011、4012と、2つの側壁4011、4012の内側に配置された4つのレール対R11~R14とを含む。レール対R11は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。レール間に隙間を有するこのようなレール構造を使用することにより、トレー46の下面から露出された各半導体パッケージ41のボール型金属端子413がレールに接触することなく、トレー46を支持することが可能となる。他のレール対R12~R14の各々も、レール対R11と同様の構成を有している。
【0227】
レールユニット402は、間隔を置いて互いに対向する2つの側壁4021、4022と、2つの側壁4021、4022の内側に配置された4つのレール対R21~R24とを含む。レール対R21は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R22~R24の各々も、レール対R21と同様の構成を有している。
【0228】
レールユニット403は、間隔を置いて互いに対向する2つの側壁4031、4032と、2つの側壁4031、4032の内側に配置された4つのレール対R31~R34とを含む。レール対R31は、間隔を置いて対向し、且つ互いに平行に延びた一対のレールを含む。他のレール対R32~R34の各々も、レール対R31と同様の構成を有している。
【0229】
次に、トレー46の搬送を制御するホストユニット21の構成について説明する。図28は、トレー46の搬送を制御するホストユニット21の構成例を示すブロック図である。ここでは、ストレージシステム1に含まれる複数のホストユニット21のうちの一つであるホストユニット21aについて説明する。
【0230】
ホストユニット21aは、プロセッサ201、メインメモリ202、システムコントローラ203、および通信インタフェースコントローラ204、等を含む。これらの構成要素のうち、メインメモリ202の管理データ以外の構成要素は、図7で説明されたホストユニット21aの構成要素と同じであるため、説明を省略する。
【0231】
トレー46の搬送を制御するホストユニット21a(より詳しくはプロセッサ201)は、ストレージ管理ツール216の制御の下に、半導体パッケージ管理テーブル6と、トレー管理テーブル7とを管理することができる。半導体パッケージ管理テーブル6は、複数の半導体パッケージ41のための管理データである。トレー管理テーブル7は、複数のトレー46のための管理データである。半導体パッケージ管理テーブル6およびトレー管理テーブル7はメインメモリ202に記憶されてもよい。
【0232】
ホストユニット21aは、個々の半導体パッケージ41に固有の半導体パッケージ識別名を付与するように構成されている。ホストユニット21aは、半導体パッケージ管理テーブル6を用いて、各半導体パッケージ41の半導体パッケージ識別名と、各半導体パッケージ41の優先順位と、各半導体パッケージ41が収容されるトレー46の識別名とを管理する。図28では、ホストユニット21aが、半導体パッケージ識別名である半導体パッケージA、半導体パッケージB、…、半導体パッケージFのそれぞれを用いて、ストレージシステム1において使用される複数の半導体パッケージ41のそれぞれを識別し、そして、トレー識別名である、トレーa、トレーb、トレーcのそれぞれを用いて、ストレージシステム1において使用される複数のトレー46のそれぞれを識別する例が示されている。以下では、あるトレー識別名を有するトレー46を、そのトレー識別名を用いて表記することがある。例えば、トレー識別名「トレーa」をもつトレー46を、トレーaと表記することがある。
【0233】
ホストユニット21aは、複数の半導体パッケージ41それぞれの優先順位を半導体パッケージ管理テーブル6に格納する。ホストユニット21aは、各半導体パッケージ41に含まれる不揮発性メモリダイ411に対するアクセス頻度等に基づいて、各半導体パッケージ41の優先順位を決定してもよい。また、ホストユニット21aは、半導体パッケージ管理テーブル6によって管理されている優先順位に基づいて、パッケージ搬送装置3に対して、半導体パッケージ41の搬送処理を指示してもよい。
【0234】
ホストユニット21aは、複数の半導体パッケージ41それぞれがいずれのトレー46に収容されているかを示す情報として、各トレー46のトレー識別名を半導体パッケージ管理テーブル6に格納する。ここでは、トレーaは、半導体パッケージAと、半導体パッケージBとを収容する。トレーbは、半導体パッケージCと、半導体パッケージDとを収容する。トレーcは、半導体パッケージEと、半導体パッケージFとを収容する。
【0235】
さらに、ホストユニット21aは、トレー管理テーブル7を用いて、各トレー46のトレー識別名と、各トレー46の優先順位と、各トレー46の状態と、各トレー46の位置とを管理する。図28では、ホストユニット21aが、トレー識別名であるトレーa、トレーb、トレーcのそれぞれを用いて、ストレージシステム1において使用される複数のトレー46のそれぞれを識別する例が示されている。
【0236】
ホストユニット21aは、複数のトレー46それぞれの優先順位をトレー管理テーブル7に格納する。そして、ホストユニット21aは、トレー管理テーブル7によって管理されている優先順位に基づいて、パッケージ搬送装置3に対して、トレー46の搬送処理を指示する。なお、ホストユニット21aは、各トレー46が収容する半導体パッケージ41それぞれが持つ優先順位に基づいて、各トレー46の優先順位を決定してもよい。
【0237】
ホストユニット21aは、複数のトレー46それぞれが、ホストユニット21aに接続されている、パッケージストッカー4に保管されている、あるいはパッケージ搬送装置3の搬送ユニット31に保持されている、のいずれの状態であるかを示す情報を、各トレー46の状態として、トレー管理テーブル7に格納する。
【0238】
ここで、あるトレー46がホストユニット21aに接続されている状態は、このトレー46に収容されている所定個数の半導体パッケージ41がドライブ22aの所定個数のソケット222に装着されている状態を意味する。したがって、ホストユニット21aは、あるトレー46がホストユニット21aに接続されている場合、このトレー46に収容されている所定個数の半導体パッケージ41が、ドライブ22aの所定個数のソケット222に装着されていることを認識することができる。そして、ホストユニット21aは、このトレーに収容されている所定個数の半導体パッケージ41の各々の不揮発性メモリダイ411に対するデータの読み出しおよび書き込みが可能であることを認識できる。
【0239】
図28に示す例では、半導体パッケージ識別名「半導体パッケージA」をもつ半導体パッケージ41が、最も高い優先順位を有している(優先順位=1)。半導体パッケージAは、トレー識別名「トレーa」をもつトレー46に収容されている。半導体パッケージ識別名「半導体パッケージB」をもつ半導体パッケージ41が、二番目に高い優先順位を有している(優先順位=2)。半導体パッケージBは、トレーaに収容されている。また、半導体パッケージ識別名「半導体パッケージC」をもつ半導体パッケージ41は、三番目に高い優先順位を有している(優先順位=3)。半導体パッケージCは、トレー識別名「トレーb」をもつトレー46に収容されている。半導体パッケージ識別名「半導体パッケージD」をもつ半導体パッケージ41は、四番目に高い優先順位を有している(優先順位=4)。半導体パッケージDは、トレーbに収容されている。半導体パッケージ識別名「半導体パッケージE」をもつ半導体パッケージ41は、五番目に高い優先順位を有している(優先順位=5)。半導体パッケージEは、トレー識別名「トレーc」をもつトレー46に収容されている。半導体パッケージ識別名「半導体パッケージF」をもつ半導体パッケージ41は、六番目に高い優先順位を有している(優先順位=6)。半導体パッケージFは、トレーcに収容されている。
【0240】
トレーaが、最も高い優先順位を有している(優先順位=1)。トレーaに収容されている所定個数の半導体パッケージ41(ここでは、半導体パッケージA~B)は、ドライブ22aのソケット群#1に装着されている。トレーbが、二番目に高い優先順位を有している(優先順位=2)。トレーbは、パッケージストッカー4に含まれる保管位置#1に保管されている。トレーcが、三番目に高い優先順位を有している(優先順位=3)。トレーcは、パッケージストッカー4の保管位置#2に保管されている。
【0241】
保管位置#1とパッケージ搬送装置3との距離は、保管位置#2とパッケージ搬送装置3との距離よりも短い。したがって、保管位置#1に保管されているトレーbは、搬送ユニット31にとって、保管位置#2に保管されているトレーcよりも容易に取り出すことができる。ホストユニット21aは、各トレー46の優先順位に応じて、より優先順位の高いトレー46が、より容易に取り出すことができる保管位置に保管されるように、パッケージ搬送装置3に指示をしてもよい。
【0242】
また、ホストユニット21aは、搬送ユニット31をバッファとして使用してもよい。このとき、ホストユニット21aは、パッケージストッカー4に保管されている複数のトレー46のうち、最も優先順位の高いトレー46を搬送ユニット31が保持するようにパッケージ搬送装置3に指示をしてもよい。
【0243】
次に、パッケージストッカー4にトレー46を追加する際、およびパッケージストッカー4からトレー46を排出する際に使用されるトレー出し入れ口について説明する。図29は、パッケージストッカー4のトレー取り出し口を示す図である。
【0244】
パッケージストッカー4は、パッケージストッカー4の外部からパッケージストッカー4へのトレー46の追加、および、パッケージストッカー4からパッケージストッカー4の外部へのトレー46の排出、に使用されるトレー出し入れ口421を含む。トレー出し入れ口421は、パッケージストッカー4の前面42に設けられた開口である。前面42は、サーバラック11の前面12に相当する。
【0245】
トレー46は、パッケージストッカー4に設けられたトレー出し入れ口421を通じて、パッケージストッカー4の外部からパッケージストッカー4に追加される。追加されたトレー46は、既に保管されている複数のトレー46と共にパッケージストッカー4に保管される。
【0246】
また、不要になったトレー46は、パッケージストッカー4に設けられたトレー出し入れ口421を通じて、パッケージストッカー4からパッケージストッカー4の外部に排出される。
【0247】
パッケージストッカー4は、パッケージストッカー4の前面42に設けられたトレー出し入れ口421に加え、パッケージ搬送装置3と対向する側の面に設けられたトレー出し入れ口431も含む。トレー出し入れ口431は、パッケージストッカー4へのトレー46の保管、および、パッケージストッカー4からのトレー46の取り出し、に使用される。パッケージ搬送装置3は、トレー出し入れ口431を通じてパッケージストッカー4にトレー46を保管する動作と、トレー出し入れ口431を通じてパッケージストッカー4からトレー46を取り出す動作とを実行する。トレー出し入れ口431は、例えば、パッケージストッカー4の背面に設けられており、トレー出し入れ口421の反対側に位置する。また、ここでは図示されていないが、パッケージストッカー4のトレー出し入れ口421からパッケージ搬送装置3に向かう方向に、つまり、トレー出し入れ口421からトレー出し入れ口431に向かう方向に、複数対のレールが延びている。
【0248】
次に、外部からパッケージストッカー4にトレー46を追加する動作について説明する。図30は、パッケージストッカー4のトレー出し入れ口421から新規のトレー46をパッケージストッカー4に追加する動作を示す図である。
【0249】
図30の上部は、新規のトレー46が追加される前のサーバラック11の平面図である。図30の下部は、48個の半導体パッケージ41を収容した新規のトレー46が追加された後のサーバラック11の平面図である。
【0250】
図30から分かるように、パッケージ搬送装置3は、サーバラック11の前面12に設けられたトレー出し入れ口421に対向している。レール対R11は、トレー出し入れ口421からパッケージ搬送装置3に向かう方向(Y方向)に延びている。
【0251】
図30の上部に示すように、レール対R11には、48個の半導体パッケージ41をそれぞれが収容した二つのトレー46が載置されている。
【0252】
ここで、パッケージストッカー4に48個の半導体パッケージ41を収容したトレー46を追加する場合を想定する。この場合、図30の下部に示すように、48個の半導体パッケージ41を収容したトレー46が、例えば、ロボットまたは操作者によって、トレー出し入れ口421を通じてレール対R11に載置される。これによって、トレー46が、パッケージストッカー4に保管される。
【0253】
このように、パッケージストッカー4においては、トレー出し入れ口421からパッケージ搬送装置3に向かう方向に延びたレール対R11が設けられている。したがって、トレー出し入れ口421を通じてトレー46の追加および排出を容易に行うことが可能となる。
【0254】
次に、トレー46に収容された所定個数の半導体パッケージ41とドライブ22の所定個数のソケット222との間の位置合わせについて説明する。図31は、ドライブ22の基板に設けられた凹部と、トレー46の下面に設けられた凸部と、トレー46の上面に設けられた凸部と、蓋部材226に設けられた凹部との関係を示す図である。また、図32は、ドライブ22の基板に設けられた凹部にトレー46の下面の凸部が嵌まり、蓋部材226の凹部がトレー46の上面の凸部に嵌まった状態を示す図である。
【0255】
ドライブ22のこの基板は、例えば、ドライブ22のプリント回路基板221である。この場合、ドライブ22のプリント回路基板221においては、少なくとも所定個数のソケット222が配置されている。ソケット222の各々は、プリント回路基板221上に設けられた複数の端子2215を含む。また、プリント回路基板221は、1以上の凹部2210も含む。
【0256】
蓋部材226は、1以上の凹部2260を含む下面を有する。
【0257】
トレー46に収容された所定個数の半導体パッケージ41を所定個数のソケット222に一括して装着する際には、図32に示すように、トレー46の下面に設けられた各凸部463がプリント回路基板221の対応する凹部2210に嵌められる。これにより、トレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222と位置合わせされる。これにより、トレー46に収容された各半導体パッケージ41の複数のボール型金属端子413が、プリント回路基板221上の対応するソケット222の複数の端子2215にそれぞれ接触される。
【0258】
この後、図32に示すように、プリント回路基板221上に置かれたトレー46の上面の各凸部464が蓋部材226の対応する凹部2260に嵌まるように、プリント回路基板221上に置かれたトレー46が蓋部材226で覆われる。これにより、蓋部材226の下面がトレー46に収容された所定個数の半導体パッケージ41の上面に接触する。これにより、トレー46に収容された所定個数の半導体パッケージ41の各々の複数のボール型金属端子413が、プリント回路基板221上の複数の複数の端子2215にそれぞれ押し付けられる。
【0259】
なお、ここでは、凹部2210を含む基板として、ドライブ22のプリント回路基板221を使用する場合を説明したが、凹部2210を含む基板は、プリント回路基板221とは別の基板(ソケット基板とも称される)によって実現されてもよい。この場合、この別の基板は、複数の端子2215を各々が含む所定個数のソケットと、1以上の凹部2210とを含む。
【0260】
次に、ホストユニット21によって制御されるトレー46の搬送および着脱動作について説明する。図33は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための図である。
【0261】
以下では、ドライブ22に含まれるソケット222の総数が、トレー46に収容されている半導体パッケージ41の数と等しい場合を想定する。トレー46に収容されている半導体パッケージ41の数と等しい数のソケット222は、以下では、ソケット群#1と称される。また、図示の簡単化のために、以下では、トレー46に収容されている半導体パッケージ41の数が2である場合を想定する。
【0262】
ホストユニット21は、トレー管理テーブル7を用いて、ストレージシステム1に含まれるトレー46それぞれの優先順位を管理する。ストレージシステム1に含まれるトレー46それぞれの優先順位は、ストレージシステム1に含まれる半導体パッケージ41それぞれの優先順位に基づいて決定され得る。ホストユニット21は、ストレージシステム1に含まれるトレー46それぞれの優先順位に基づいて、トレー46の搬送および着脱をパッケージ搬送装置3に指示する。
【0263】
図33に示す例では、ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージFまでの6個の半導体パッケージ41を管理している。また、ホストユニット21は、トレーa、トレーb、トレーcの3個のトレー46を管理している。ここで、半導体パッケージAは、最も優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージBは、二番目に優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージCは、三番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージDは、四番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージEは、五番目に優先順位が高い半導体パッケージ41であり、トレーcに収容されている。半導体パッケージFは、六番目に優先順が高い半導体パッケージ41であり、トレーcに収容されている。
【0264】
ここでは、ホストユニット21が、収容している所定個数の半導体パッケージ41が有する優先順位の平均が最も高いトレーaの優先順位を1位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が二番目に高いトレーbの優先順位を2位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が三番目に高いトレーcの優先順位を3位に決定するものとする。
【0265】
ホストユニット21は、最も高い優先順位を有するトレーaをドライブ22に搬送して、トレーaに収容されている半導体パッケージA~Bをドライブ22の2つのソケット222、つまりソケット群#1、に装着するように、パッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをドライブ22に搬送し、トレーaに収容されている半導体パッケージA~Bをドライブ22のソケット群#1一括して装着する。ホストユニット21は、半導体パッケージA~Bを収容したトレーaがソケット群#1に存在することを示す情報をトレー管理テーブル7に格納する。
【0266】
このように、ドライブ22に含まれるソケット222の総数が、トレー46に収容されている半導体パッケージ41の数と等しい場合には、1位の優先順位を有するトレーaに収容される半導体パッケージA~Bが、ドライブ22のソケット群#1の2つのソケット222にそれぞれ装着される。この場合、1位の優先順位は、第1レベルの優先順位に対応する。
【0267】
また、2位から3位までの優先順位を有する二つのトレー46(トレーb、トレーc)は、パッケージストッカー4に保管された状態にある。パッケージストッカー4は、第1保管場所と第2保管場所との少なくとも2種類の保管場所を含み得る。第1保管場所とパッケージ搬送装置3との距離は、第2保管場所とパッケージ搬送装置3との距離よりも短い。第1保管場所は、例えば、保管位置#1を含む。第2保管場所は、例えば、保管位置#2を含む。保管位置#1は、パッケージ搬送装置3にとって、保管位置#2よりもトレー46を取り出すことが容易な保管位置である。
【0268】
パッケージストッカー4に保管されている2個のトレー46のうち、2位の優先順位を有するトレーbは、第1保管場所に含まれる保管位置#1に保管される。2位の優先順位は、第1レベル優先順位よりも低い第2レベル優先順位に相当する。
【0269】
また、パッケージストッカー4に保管されている2個のトレー46のうち、3位の優先順位を有するトレーcは、第2保管場所に含まれる保管位置#2に保管される。3位の優先順位は、第2レベル優先順位よりも低い第3レベル優先順位に相当する。
【0270】
ここで、パッケージストッカー4に保管されているトレーbの優先順位が、トレーaの優先順位を上回ったときのホストユニット21の動作について説明する。図34は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とドライブ22のソケット222との間で変更する動作について説明するための別の図である。
【0271】
例えば、半導体パッケージAの優先順位が1位から3位に下がり、半導体パッケージBの優先順位が2位から4位に下がり、半導体パッケージCの優先順位が3位から1位に上がり、半導体パッケージDの優先順位が4位から2位に上がった場合を想定する。ホストユニット21は、アクセス要求の頻度などに基づいた所定のアルゴリズムを使用して、複数の半導体パッケージ41それぞれが有する優先順位を更新する。
【0272】
ホストユニット21は、複数の半導体パッケージ41それぞれが有する優先順位が更新されたことに応じて、複数のトレー46それぞれが有する優先順位を更新する。ここで、トレーbに収容されている半導体パッケージC~Dが有する優先順位がいずれも、トレーaに収容されている半導体パッケージA~Bが有する優先順位を上回ったため、ホストユニット21は、トレーbの優先順位がトレーaの優先順位よりも高くなるように、トレーa~bそれぞれの優先順位を更新する。これにより、トレーbは、最も高い優先順位(優先順位=1)を持ち、トレーaは、二番目に高い優先順位(優先順位=2)を持つ。
【0273】
そして、ホストユニット21は、トレーaに収容された半導体パッケージA~Bをソケット群#1の2つのソケット222から取り外すことと、トレーbをドライブ22に搬送してトレーbに収容された半導体パッケージC~Dをソケット群#1の2つのソケット222に装着することと、取り外したトレーaをパッケージストッカー4の例えば保管位置#1に搬送することとをパッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをソケット群#1から取り外すことによって、トレーaに収容された半導体パッケージA~Bをソケット群#1の2つのソケット222から一括して取り外す。そして、パッケージ搬送装置3は、トレーbをドライブ22に搬送して、トレーbに収容された半導体パッケージC~Dを、トレーaに収容された半導体パッケージA~Bが取り外されたソケット群#1の2つのソケット222に一括して装着し、そして、取り外されたトレーaをパッケージストッカー4の保管位置#1に搬送する。
【0274】
そして、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーaがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、トレーbがドライブ22のソケット群#1に存在することを示す情報とをトレー管理テーブル7に格納する。
【0275】
このように、半導体パッケージ41毎に搬送する場合と異なり、ホストユニット21は、複数の半導体パッケージ41を収容するトレー46毎に搬送することをパッケージ搬送装置3に指示することができる。これにより、複数の半導体パッケージ41を一括して、複数のソケット222に装着させることができるため、ホストユニット21からパッケージ搬送装置3に指示を送信する頻度と、パッケージ搬送装置3が搬送および着脱動作を実行する頻度とを減らすことができる。
【0276】
次に、トレー46が保管されているパッケージストッカー4内の保管位置を変更する動作について説明する。図35は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4内で変更する動作について説明するための図である。
【0277】
ここでは、図33に示す状態において、例えば、トレーcの優先順位が3位から2位に上がり、トレーbの優先順位が2位から3位に下がった場合を想定する。トレーcの新優先順位(2位)は第2レベルの優先順位に属し、トレーbの新優先順位(3位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、トレーcの保管位置と、トレーbの保管位置とを交換するようにパッケージ搬送装置3に指示する。まず、パッケージ搬送装置3は、パッケージストッカー4の保管位置#1からトレーbを取り出す。そして、パッケージ搬送装置3は、さらに、パッケージストッカー4の保管位置#2からトレーcを取り出す。その後、パッケージ搬送装置3は、パッケージストッカー4の保管位置#2にトレーbを保管する。そして、パッケージ搬送装置3は、パッケージストッカー4の保管位置#1にトレーcを保管する。
【0278】
そして、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーbがパッケージストッカー4の保管位置#2に保管されていることを示す情報と、トレーcがパッケージストッカー4の保管位置#1に保管されていることを示す情報とをトレー管理テーブル7に格納する。
【0279】
上記の動作によって、ホストユニット21はパッケージストッカー4に保管されているトレー46のうち、より高い優先順位を持つトレー46を、パッケージ搬送装置3にとって、取り出すことがより容易な保管位置(ここでは保管場所#1)に保管されるように制御することができる。これにより、パッケージストッカー4の保管場所#1に保管されているトレー46が持つ優先順位が第2レベルの優先順位を上回ったとき、このトレー46をパッケージストッカー4からドライブ22に搬送するために必要とされる時間を短縮することができる。
【0280】
次に、パッケージ搬送装置3のバッファが使用な可能な場合における、ホストユニット21によって制御されるトレー46の搬送および着脱動作について説明する。図36は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
【0281】
ホストユニット21は、半導体パッケージA、半導体パッケージB、…、半導体パッケージFまでの6個の半導体パッケージ41を管理している。また、ホストユニット21は、トレーa、トレーb、トレーcの3個のトレー46を管理している。ここで、半導体パッケージAは、最も優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージBは、二番目に優先順位が高い半導体パッケージ41であり、トレーaに収容されている。半導体パッケージCは、三番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージDは、四番目に優先順位が高い半導体パッケージ41であり、トレーbに収容されている。半導体パッケージEは、五番目に優先順位が高い半導体パッケージ41であり、トレーcに収容されている。半導体パッケージFは、六番目に優先順が高い半導体パッケージ41であり、トレーcに収容されている。
【0282】
ここでは、ホストユニット21が、収容している所定個数の半導体パッケージ41が有する優先順位の平均が最も高いトレーaの優先順位を1位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が二番目に高いトレーbの優先順位を2位に決定し、収容している所定個数の半導体パッケージ41が有する優先順位の平均が三番目に高いトレーcの優先順位を3に設定するものとする。
【0283】
ホストユニット21は、最も高い優先順位を有するトレーaをドライブ22に搬送して、トレーaに収容されている半導体パッケージA~Bをドライブ22の2つのソケット222、つまりソケット群#1、に装着するように、パッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをドライブ22に搬送し、トレーaに収容されている半導体パッケージA~Bをドライブ22のソケット群#1一括して装着する。ホストユニット21は、半導体パッケージA~Bを収容したトレーaがソケット群#1に存在することを示す情報をトレー管理テーブル7に格納する。
【0284】
このように、ドライブ22に含まれるソケット222の総数が、トレー46に収容されている半導体パッケージ41の数と等しい場合には、1位の優先順位を有するトレーaに収容された半導体パッケージA~Bが、ドライブ22のソケット群#1の2つのソケット222にそれぞれ装着される。この場合、1位の優先順位は、第1レベル優先順位に対応する。
【0285】
また、ホストユニット21は、2位の優先順位を有するトレーbを保持するようにパッケージ搬送装置3に指示する。2位の優先順位は、第1レベルの優先順位よりも低い第2レベルの優先順位に相当する。
【0286】
指示を受けたパッケージ搬送装置3(例えば、搬送ユニット#1)は、トレーbを保持する。これにより、2位の優先順位を有するトレー46は、パッケージ搬送装置3において保持される。つまり、トレーbを保持する搬送ユニット#1は、パッケージ搬送装置3のバッファ(バッファ#1)として使用される。
【0287】
ホストユニット21は、トレーbが、搬送ユニット#1(バッファ#1)に保持されていることを示す情報をトレー管理テーブル7に格納する。
【0288】
また、3位の優先順位を有するトレーcは、パッケージストッカー4に保管された状態にある。ホストユニット21は、パッケージ搬送装置3に、第1の保管場所に含まれる保管位置#1にトレーcを保管させる。ホストユニット21は、トレーcが保管位置#1に保管されていることを示す情報をトレー管理テーブル7に格納する。
【0289】
ここで、パッケージ搬送装置3のバッファ#1に保持されていたトレーbの優先順位が、トレーaの優先順位を上回ったときのホストユニット21の動作について説明する。図37は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージ搬送装置3とドライブ22のソケット222との間で変更する動作について説明するための図である。
【0290】
例えば、半導体パッケージAの優先順位が1位から3位に下がり、半導体パッケージBの優先順位が2位から4位に下がり、半導体パッケージCの優先順位が3位から1位に上がり、半導体パッケージDの優先順位が4位から2位に上がった場合を想定する。ホストユニット21は、アクセス要求の頻度などに基づいた所定のアルゴリズムを使用して、複数の半導体パッケージ41それぞれが有する優先順位を更新する。
【0291】
ホストユニット21は、複数の半導体パッケージ41それぞれが有する優先順位が更新されたことに応じて、複数のトレー46それぞれが有する優先順位を更新する。ここで、トレーbに収容されている半導体パッケージC~Dが有する優先順位がいずれも、トレーaに収容されている半導体パッケージA~Bが有する優先順位を上回ったため、ホストユニット21は、トレーbの優先順位がトレーaの優先順位よりも高くなるように、トレーa~bそれぞれの優先順位を更新する。これにより、トレーbは、最も高い優先順位(優先順位=1)を持ち、トレーaは、二番目に高い優先順位(優先順位=2)を持つ。
【0292】
そして、ホストユニット21は、トレーaに収容された半導体パッケージA~Bをソケット群#1の2つのソケット222から取り外すことと、トレーbをドライブ22に搬送してトレーbに収容された半導体パッケージC~Dをソケット群#1の2つのソケット222に装着することと、取り外したトレーaをパッケージ搬送装置3に保持することとを、パッケージ搬送装置3に指示する。パッケージ搬送装置3は、トレーaをソケット群#1から取り外すことによって、トレーaに収容された半導体パッケージA~Bをドライブ22のソケット群#1の2つのソケット222から一括して取り外す。そして、パッケージ搬送装置3は、搬送ユニット#1に保持されているトレーbをドライブ22に搬送して、トレーbに収容された半導体パッケージC~Dを、トレーaに収容された半導体パッケージA~Bが取り外されたソケット群#1の2つのソケット222に一括して装着する。取り外されたトレーaは、パッケージ搬送装置3(例えば搬送ユニット#1)によって保持された状態に維持される。
【0293】
上記の動作に応じて、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーaがパッケージ搬送装置3の搬送ユニット#1(バッファ#1)に保持されていることを示す情報と、トレーbがソケット群#1に存在することを示す情報とをトレー管理テーブル7に格納する。
【0294】
次に、パッケージストッカー4に保管されているトレー46の優先順位がパッケージ搬送装置3のバッファに保持されているトレー46の優先順位を上回った場合の交換動作について説明する。図38は、本実施形態に係るストレージシステム1において実行される、トレー46の優先順位の変更に基づいてトレー46の位置をパッケージストッカー4とパッケージ搬送装置3との間で変更する動作について説明するための図である。
【0295】
ここでは、図36に示す状態において、例えば、トレーcの優先順位が3位から2位に上がり、トレーbの優先順位が2位から3位に下がった場合を想定する。トレーcの新優先順位(2位)は第2レベルの優先順位に属し、トレーbの新優先順位(3位)は第3レベルの優先順位に属する。したがって、ホストユニット21は、トレーbの位置とトレーcの位置とを交換するようにパッケージ搬送装置3に指示する。具体的には、まず、ホストユニット21は、トレーbをパッケージストッカー4の保管位置#1に搬送するようにパッケージ搬送装置3に指示し、さらに、トレーcを搬送ユニット#1に保持するようにパッケージ搬送装置3に指示する。指示を受けたパッケージ搬送装置3は、搬送ユニット#1が保持していたトレーbをパッケージストッカー4の保管位置#1に搬送する。そして、搬送ユニット#1は、パッケージストッカー4の保管位置#1に保管されているトレーcと、保持しているトレーbとを交換する。搬送ユニット#1は、バッファ#1として、トレーcを保持する。
【0296】
上記の動作に応じて、ホストユニット21は、トレー管理テーブル7を更新する。具体的には、ホストユニット21は、トレーbがパッケージストッカー4の保管位置#1に保管されていることを示す情報と、トレーcがパッケージ搬送装置3の搬送ユニット#1(バッファ#1)に保持されていることを示す情報と、をトレー管理テーブル7に格納する。
【0297】
上記の動作によって、ホストユニット21はパッケージストッカー4に保管されているトレー46のうち、より高い優先順位を持つトレー46に収容されている半導体パッケージ41を、パッケージ搬送装置3にあらかじめ保持させておくことができる。これにより、パッケージ搬送装置3に保持されているトレー46が持つ優先順位が、ドライブ22のソケット群#1に存在するトレー46が持つ優先順位を上回ったとき、パッケージ搬送装置3がパッケージストッカー4からトレー46を取り出すために必要とされる時間を無くすことができる。
【0298】
次に、トレー46に収容されている半導体パッケージ41の不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図39は、本実施形態に係るストレージシステム1のホストユニット21によって実行される、トレー46に収容された所定個数の半導体パッケージ41のいずれかに含まれる不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の手順を示すフローチャートである。
【0299】
まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS41)。ここで、アクセス対象の不揮発性メモリダイ411は、アプリケーションプログラム211から受信されるリード要求またはライト要求に基づいて決定される。そして、このアクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41がステップS41で決定される。
【0300】
そして、ホストユニット21は、は、ステップS41で決定された半導体パッケージ41を収容するトレー46を特定する(ステップS42)。ステップS42では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41を収容するトレー46のトレー識別名を取得する。これにより、ホストユニット21は、決定された半導体パッケージ41を収容するトレー46を特定することができる。
【0301】
ホストユニット21は、ステップS42で特定されたトレー46がドライブ22のソケット群に装着されているか否か、つまり、特定されたトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定する(ステップS43)。ステップS43では、ホストユニット21は、トレー管理テーブル7を参照することによって、特定されたトレー46の状態を示す情報を取得する。これにより、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されているか否かを判定し得る。
【0302】
特定されたトレー46がドライブ22のソケット群に装着されている場合(ステップS43でYes)、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS45)。
【0303】
特定されたトレー46がドライブ22のソケット群に装着されていない場合(ステップS43でNo)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる(ステップS44)。
【0304】
パッケージ搬送装置3によって所定個数のソケット222にトレー46に収容された所定個数の半導体パッケージ41が装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
【0305】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS45)。
【0306】
図40は、本実施形態に係るストレージシステム1のホストユニット21によって実行される、トレー46に収容された所定個数の半導体パッケージ41のいずれかに含まれる不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の手順の詳細を示すフローチャートである。
【0307】
まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS51)。
【0308】
ホストユニット21は、ステップS51で決定された半導体パッケージ41を収容しているトレー46を特定する(ステップS52)。ステップS52では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41を収容するトレー46のトレー識別名を取得する。これにより、ホストユニット21は決定された半導体パッケージ41を収容するトレー46を特定することができる。
【0309】
ホストユニット21は、ステップS52で特定されたトレー46がドライブ22のソケット群に装着されているか否か、つまり、特定されたトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定する(ステップS53)。ステップS53では、ホストユニット21は、トレー管理テーブル7を参照することによって、ステップS52で特定されたトレー46の状態を示す情報を取得する。これにより、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されているか否かを判定し得る。
【0310】
特定されたトレー46がドライブ22のソケット群に装着されている場合(ステップS53でYes)、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS54)。
【0311】
特定されたトレー46がドライブ22のソケット群に装着されていない場合(ステップS53でNo)、ホストユニット21は、ドライブ22に空きソケット群があるか否かを確認する(ステップS55)。空きソケット群は、いずれの半導体パッケージ41も装着されていない所定個数のソケット222である。
【0312】
ドライブ22に空きソケット群がある場合(ステップS55でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41を空きソケット群である所定個数のソケット222に装着させる(ステップS56)。この場合、ホストユニット21は、特定されたトレー46をパッケージストッカー4から取り出すことと、特定されたトレー46をドライブ22に搬送して空きソケット群に装着することとをパッケージ搬送装置3に指示する。
【0313】
パッケージ搬送装置3によってトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
【0314】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
【0315】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS54)。
【0316】
ドライブ22に空きソケット群がない場合(ステップS55でNo)、ホストユニット21は、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するか否かを判定する(ステップS57)。
【0317】
ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在しない場合(ステップS57でNo)、ホストユニット21は、ステップS55の処理を再度実行する。ホストユニット21は、各トレー46の優先順位の変更によって、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するようになるまで待つ。
【0318】
ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在する場合(ステップS57でYes)、ホストユニット21は、パッケージ搬送装置3に、ドライブ22のソケット群に装着されているトレー46のうち、最も低い優先順位を持つトレー46をソケット群から取り外させ、そして、取り外されたトレー46をパッケージストッカー4へ搬送させる(ステップS58)。これにより、このトレー46が取り外されたソケット群は、所定個数のソケットを含む空きソケット群になる。
【0319】
そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からドライブ22に搬送させ、特定されたトレー46に収容されている所定個数の半導体パッケージ41を、空きソケット群に装着させる(ステップ56)。この場合、ホストユニット21は、特定されたトレー46をパッケージストッカー4から取り出すことと、特定されたトレー46をドライブ22ら搬送してソケット群に装着することとを、パッケージ搬送装置3に指示する。
【0320】
パッケージ搬送装置3によってソケット群にトレー46が装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
【0321】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
【0322】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS54)。
【0323】
これにより、ドライブ22に空きソケット群がない場合であっても、ホストユニット21は、特定されたトレー46が持つ優先順位よりも低い優先順位をもつトレー46をソケット群から取り外すことで、特定されたトレー46に収容されている所定個数の半導体パッケージ41を、ドライブ22の所定個数のソケット222に装着させることができる。
【0324】
次に、パッケージ搬送装置3のバッファを使用可能な場合における、トレー46に収容されている決定された半導体パッケージ41に含まれる不揮発性メモリダイ411に対するデータの読み出し、または書き込み処理について説明する。図41A、および図41Bは、本実施形態に係るストレージシステム1のホストユニット21によって実行される不揮発性メモリダイ411に対するデータの読み出しまたは書き込み処理の別の手順を示すフローチャートである。
【0325】
まず、ホストユニット21は、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を決定する(ステップS601)。
【0326】
ホストユニット21は、ステップS601で決定された半導体パッケージ41を収容しているトレー46を特定する(ステップS602)。ステップS602では、ホストユニット21は、半導体パッケージ管理テーブル6を参照することによって、決定された半導体パッケージ41を収容するトレー46のトレー識別名を取得する。これにより、ホストユニット21は決定された半導体パッケージ41を収容するトレー46を特定することができる。
【0327】
ホストユニット21は、ステップS602で特定されたトレー46がドライブ22のソケット群に装着されているか否か、つまり、特定されたトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着されているか否かを判定する(ステップS603)。ステップS603では、ホストユニット21は、トレー管理テーブル7を参照することによって、ステップS602で特定されたトレー46の状態を示す情報を取得する。これにより、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されているか否かを判定し得る。
【0328】
特定されたトレー46がドライブ22のソケット群に装着されている場合(ステップS603でYes)、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する(ステップS604)。
【0329】
特定されたトレー46がドライブ22のソケット群に装着されていない場合(ステップS603でNo)、ホストユニット21は、ドライブ22に空きソケット群があるか否かを確認する(ステップS605)。
【0330】
ドライブ22に空きソケット群がある場合(ステップS605でYes)、ホストユニット21は、図41BのステップS606の処理を実行する。
【0331】
ドライブ22に空きソケット群がない場合(ステップS605でNo)、ホストユニット21は、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するか否かを判定する(ステップS608)。
【0332】
ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46よりも低い優先順位を持つトレー46が存在しない場合(ステップS608でNo)、ホストユニット21は、ステップS605の処理を再度実行する。ホストユニット21は、各トレー46の優先順位の変更によって、ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するようになるまで待つ。
【0333】
ドライブ22のソケット群に装着されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在する場合(ステップS608でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46をソケット群から取り外させ、そして取り外されたトレー46をパッケージ搬送装置3のバッファに搬送させる(ステップS609)。これにより、ソケット群から取り外されたトレー46は、パッケージストッカー4に保管されずに、パッケージ搬送装置3に保持される。また、トレー46が取り外されたソケット群は、空きソケット群になる。そして、ホストユニット21は、図41BのステップS606の処理を実行する。
【0334】
ホストユニット21は、特定されたトレー46がパッケージ搬送装置3のバッファに存在するか否か、つまり、特定されたトレー46がパッケージ搬送装置3において保持されているか否かを判定する(ステップS606)。
【0335】
特定されたトレー46がパッケージ搬送装置3のバッファに存在する場合、つまり、特定されたトレー46がパッケージ搬送装置3のいずれかの搬送ユニット31に保持されている場合(ステップS606でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージ搬送装置3のバッファからドライブ22に搬送させ、特定されたトレー46に収容されている所定個数の半導体パッケージ41を、空きソケット群である所定個数のソケット222に装着させる(ステップS607)。この場合、ホストユニット21は、特定されたトレー46を保持している搬送ユニット31に、特定されたトレー46をドライブ22に搬送して所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着するように指示する。
【0336】
搬送ユニット31によってトレー46の所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
【0337】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
【0338】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている決定された半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図41AのステップS604)。
【0339】
特定されたトレー46がパッケージ搬送装置3のいずれのバッファにも存在しない場合、つまり、特定されたトレー46がパッケージ搬送装置3のいずれの搬送ユニット31にも保持されていない場合(ステップS606でNo)、ホストユニット21は、パッケージ搬送装置3に空きのバッファがあるか否かを確認する(ステップS610)。パッケージ搬送装置3の空きのバッファは、トレー46を保持していない搬送ユニット31である。
【0340】
パッケージ搬送装置3に空きのバッファがある場合、つまり、トレー46を保持していない搬送ユニット31が存在する場合(ステップS610でYes)、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からパッケージ搬送装置3の空きのバッファ、つまり、トレー46を保持していない搬送ユニット31、に搬送させる(ステップS611)。この場合、ホストユニット21は、トレー46を保持していない搬送ユニット31に、特定されたトレー46をパッケージストッカー4から取り出すように指示してもよい。これにより、特定されたトレー46は、この搬送ユニット31によって保持されるので、特定されたトレー46がパッケージ搬送装置3のバッファに存在している状態となる。
【0341】
そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージ搬送装置3のバッファからドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる(ステップS607)。
【0342】
搬送ユニット31によってトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
【0343】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
【0344】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図41AのステップS604)。
【0345】
パッケージ搬送装置3に空きのバッファが存在しない場合(ステップS610でNo)、ホストユニット21は、パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するか否かを判定する(ステップS612)。
【0346】
パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在しない場合(ステップS612でNo)、ホストユニット21は、ステップS610の処理を再度実行する。ホストユニット21は、各トレー46の優先順位の変更によって、パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46の優先順位よりも低い優先順位を持つトレー46が存在するようになるまで待つ。
【0347】
パッケージ搬送装置3のバッファに保持されているトレー46の中に、特定されたトレー46よりも低い優先順位を持つトレー46が存在する場合(ステップS612でYes)、ホストユニット21は、パッケージ搬送装置3に、パッケージ搬送装置3のバッファに保持されているトレー46のうち、最も低い優先順位を持つトレー46をパッケージストッカー4に搬送させる(ステップS613)。ステップS613では、ホストユニット21は、最も低い優先順位を持つトレー46を保持している搬送ユニット31に、トレー46をパッケージストッカー4に搬送するように指示してもよい。これにより、この搬送ユニット31は、トレー46を保持していない空きのバッファになる。
【0348】
そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージストッカー4からパッケージ搬送装置3の空きのバッファに搬送させる。この場合、ホストユニット21は、空きのバッファになった搬送ユニット31に、特定されたトレー46をパッケージストッカー4から取り出すように指示してもよい。これにより、特定されたトレー46はこの搬送ユニット31によって保持されるので、特定されたトレー46がパッケージ搬送装置3のバッファに存在している状態となる。
【0349】
そして、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をパッケージ搬送装置3のバッファからドライブ22に搬送させ、特定されたトレー46に収容された所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる(ステップS607)。
【0350】
搬送ユニット31によってトレー46に収容された所定個数の半導体パッケージ41がドライブ22の所定個数のソケット222に装着された場合、ホストユニット21は、ドライブ22内のバーコードリーダを使用して、このトレー46のバーコードからトレー識別子(トレー識別名)を読み取る。そして、ホストユニット21は、読み取ったトレー識別名が、特定されたトレー46のトレー識別名に一致するか否かを判定する。
【0351】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、特定されたトレー46がドライブ22のソケット群に装着されていることを示す情報をトレー管理テーブル7に格納する。
【0352】
読み取ったトレー識別名が特定されたトレー46のトレー識別名に一致した場合、ホストユニット21は、さらに、このトレー46に収容されている半導体パッケージ41に格納されているパッケージ識別子を、コントローラ223を介して読み出し、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子と一致するか否かを判定してもよい。そして、読み出したパッケージ識別子が、決定された半導体パッケージ41のパッケージ識別子に一致した場合、ホストユニット21は、コントローラ223を介して、特定されたトレー46に収容された決定された半導体パッケージ41に含まれるアクセス対象の半導体メモリダイ411に対するデータの読み出しまたは書き込みを実行する(図41AのステップS604)。
【0353】
以上説明したように、第2の実施形態に係るストレージシステム1は、所定個数の半導体パッケージ41を収容するトレー46を使用することによって、所定個数の半導体パッケージ41をまとめて保管、搬送、および着脱することができる。ホストユニット21は、ストレージシステム1で管理されているトレー46の中から、アクセス対象の不揮発性メモリダイ411を含む半導体パッケージ41を収容しているトレー46を決定する。
【0354】
決定されたトレー46に収容されている所定個数の半導体パッケージ41が、ドライブ22の所定個数のソケット222に装着されている場合、ホストユニット21は、アクセス対象の不揮発性メモリダイ411に対するデータの読み出しまたは書き込みを実行する。
【0355】
特定されたトレー46に収容されている所定個数の半導体パッケージ41が、ドライブ22の所定個数のソケット222に装着されておらず、且つ、特定されたトレー46がパッケージストッカー4に保管されている場合、ホストユニット21は、パッケージ搬送装置3に、特定されたトレー46をドライブ22に搬送させ、特定されたトレー46に収容されている所定個数の半導体パッケージ41をドライブ22の所定個数のソケット222に装着させる。
【0356】
このように、本実施形態のストレージシステム1においては、ホストユニット21は、トレー46に収容されている半導体パッケージ41の個数の単位で、ドライブ22のソケット222に接続されている半導体パッケージ41を別の半導体パッケージ41に交換することができる。
【0357】
これにより、複数の半導体パッケージ41を、トレー46に収容されている半導体パッケージ41の個数の単位で管理、搬送、着脱することができるので、複数の半導体パッケージ41の管理および搬送をより効率良く実行することができる。
【0358】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0359】
1 ストレージシステム
2 ストレージリードライト装置
3 パッケージ搬送装置
4 パッケージストッカー
5 管理サーバ
6 半導体パッケージ管理テーブル
7 トレー管理テーブル
21 ホストユニット(ホスト装置)
22 ドライブ
31 搬送ユニット
41 半導体パッケージ
46 トレー
222 ソケット
223 コントローラ
411 不揮発性メモリダイ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18A
図18B
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41A
図41B