(57)【要約】      （修正有）【課題】メモリボードをコントローラボードに機能的に接続するデータストレージデバイスを提供する。【解決手段】データストレージデバイス１００は、第1のメモリボード１０４ａ及び第2のメモリボード１０４ｂを含み、第1のメモリボード及び第2のメモリボードは各々、複数のメモリチップを備える。データストレージデバイスは、第1のメモリボード及び第2のメモリボードに機能的に接続するように配置し構成するコントローラボード１０２を含み、コントローラボードは、高速インターフェイス１０８と、高速インターフェイスを使用してホスト１０６からコマンドを受信し、コマンドを実行するように配置され構成されるコントローラ１１０とを含む。第1のメモリボード及び第2のメモリボードは各々、コントローラボードから別個に取り外し可能である。【選択図】図１
2015046175.tif 000002
【特許請求の範囲】
【請求項１】
第1(104a)のメモリボードと、
第2(104b)のメモリボードであって、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、複数のメモリチ
ップを備える、前記メモリボードと、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードに機能的に接続するように
配置され構成されるコントローラボード(102)とを備え、該コントローラボード(102)が、
高速インターフェイス(108)と、
該高速インターフェイス(108)を使用してホスト(106)からコマンドを受信し、該コマ
ンドを実行するように配置され構成されるコントローラ(110)とを備え、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、該コントローラボ
ード(102)から別個に取り外し可能である、データストレージデバイス(100)。
【請求項２】
前記コントローラ(110)が、フィールドプログラマブルゲートアレイ(FPGA)コントロー
ラ(610)である、請求項1記載のデータストレージデバイス(100)。
【請求項３】
前記メモリチップがフラッシュメモリチップ(118a、118b)を備える、請求項1又は2記載
のデータストレージデバイス(100)。
【請求項４】
前記フラッシュメモリチップ(118a、118b)がシングルレベルセル(SLC) NANDフラッシュ
メモリチップである、請求項3記載のデータストレージデバイス(100)。
【請求項５】
前記フラッシュメモリチップ(118a、118b)がマルチレベルセル(MLC) NANDフラッシュメ
モリチップである、請求項3記載のデータストレージデバイス(100)。
【請求項６】
前記高速インターフェイス(108)がPCI-eインターフェイス(408)である、請求項1から5
のいずれか1項記載のデータストレージデバイス(100)。
【請求項７】
前記第1(104a)のメモリボード、前記第2(104b)のメモリボード、及び前記コントローラ
ボード(102)が、サーバ(330)のドライブベイ(335)に適合するように配置され構成される
、請求項1から6のいずれか1項記載のデータストレージデバイス(100)。
【請求項８】
前記第1(104a)のメモリボードは前記コントローラボード(102)の上側に機能的に接続さ
れ、前記第2(104b)のメモリボードは該コントローラボード(102)の下側に機能的に接続さ
れる、請求項1から7のいずれか1項記載のデータストレージデバイス(100)。
【請求項９】
前記メモリチップがダイナミックランダムアクセスメモリ(DRAM)チップを備える、請求
項1から8のいずれか1項記載のデータストレージデバイス(100)。
【請求項１０】
前記メモリチップが相変化メモリ(PCM)チップを備える、請求項1から9のいずれか1項記
載のデータストレージデバイス(100)。
【請求項１１】
前記フラッシュメモリチップ(118a、118b)がNANDフラッシュメモリチップであり、
前記高速インターフェイス(108)がPCI-eインターフェイス(408)であり、
前記コントローラ(110)がフィールドプログラマブルゲートアレイ(FPGA)コントローラ(
610)である、請求項3から5のいずれか1項記載のストレージデバイス(100)。
【請求項１２】
前記第1(104a)のメモリボード及び前記第2(104b)のメモリボードが、取り外され複数の
メモリチップを備える別のメモリボードに置き換えられるように配置され構成されるモジ
ュール式ボードである、請求項1から11のいずれか1項記載のデータストレージデバイス(1
00)。
【請求項１３】
前記コントローラ(110)が電源モジュールを備え、
異なる電圧を有する複数のメモリチップのコマンド処理を制御し、
前記第1(104a)のメモリボード及び前記第2(104b)のメモリボード上の該メモリチップの
電圧を自動的に認識し、
該メモリチップの該認識された電圧で動作するよう該電源モジュールを構成し、
前記インターフェイス(108)を使用して前記ホスト(106)からコマンドを受信し、
該メモリチップを使用して該コマンドを実行するように配置され構成される、請求項1
から12のいずれか1項記載のデータストレージデバイス(100)。
【請求項１４】
前記コントローラ(110)が、
複数の異なるタイプのメモリチップのコマンド処理を制御し、
前記第1(104a)のメモリボード及び前記第2(104b)のメモリボード上の該メモリチップの
タイプを自動的に認識し、
前記インターフェイス(108)を使用して前記ホスト(106)からコマンドを受信し、
該メモリチップを使用して該コマンドを実行するように配置され構成される、請求項1
から13のいずれか1項記載のデータストレージデバイス(100)。
【請求項１５】
前記コントローラ(110)が複数のチャネルを含み、各々の該チャネルが1つ以上の前記メ
モリチップに関連付けられ、各々の該メモリチップが該チャネルの1つに関連付けられる
、請求項1から14のいずれか1項記載のデータストレージデバイス(100)。
【請求項１６】
前記コントローラ(110)が、各々の前記チャネルのチャネルコントローラ(450)をさらに
備える、請求項15記載のデータストレージデバイス(100)。
【請求項１７】
ホスト(106)と、
データストレージデバイス(100)と
を備え、該データストレージデバイス(100)が、
第1(104a)のメモリボードと、
第2(104b)のメモリボードであって、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、複数のメモリ
チップを備える、前記メモリボードと、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードに機能的に接続するよう
に配置され構成されるコントローラボード(102)とを備え、該コントローラボード(102)が
、
高速インターフェイス(108)と、
該高速インターフェイス(108)を使用して該ホスト(106)からコマンドを受信し、該コ
マンドを実行するように配置され構成されるコントローラ(110)とを備え、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、該コントローラ
ボード(102)から別個に取り外し可能である、コンピューティングデバイス。
【請求項１８】
前記コントローラ(110)がフィールドプログラマブルゲートアレイ(FPGA)コントローラ(
610)である、請求項17記載のコンピューティングデバイス。
【請求項１９】
前記メモリチップがフラッシュメモリチップ(118a、118b)を備える、請求項17又は18記
載のコンピューティングデバイス。
【請求項２０】
前記フラッシュメモリチップ(118a、118b)がシングルレベルセル(SLC) NANDフラッシュ
メモリチップである、請求項19記載のコンピューティングデバイス。
【請求項２１】
前記フラッシュメモリチップ(118a、118b)がマルチレベルセル(MLC) NANDフラッシュメ
モリチップである、請求項19記載のコンピューティングデバイス。
【請求項２２】
前記高速インターフェイス(108)がPCI-eインターフェイス(408)である、請求項1から21
のいずれか1項記載のコンピューティングデバイス。
【請求項２３】
前記第1(104a)のメモリボード、前記第2(104b)のメモリボード、及び前記コントローラ
ボード(102)が、サーバ(330)のドライブベイ(335)に適合するように配置され構成される
、請求項1から22のいずれか1項記載のコンピューティングデバイス。
【請求項２４】
前記フラッシュメモリチップ(118a、118b)がNANDフラッシュメモリチップであり、
前記高速インターフェイス(108)がPCI-eインターフェイス(408)であり、
前記コントローラ(110)がフィールドプログラマブルゲートアレイ(FPGA)コントローラ(
610)である、請求項19から21のいずれか1項記載のコンピューティングデバイス。
【請求項２５】
前記第1(104a)のメモリボード及び前記第2(104b)のメモリボードが、取り外され複数の
メモリチップを備える別のメモリボードに置き換えられるように配置され構成されるモジ
ュール式ボードである、請求項1から24のいずれか1項記載のコンピューティングデバイス
。
【請求項２６】
前記メモリチップがダイナミックランダムアクセスメモリ(DRAM)チップを備える、請求
項1から25のいずれか1項記載のコンピューティングデバイス。
【請求項２７】
前記メモリチップが相変化メモリ(PCM)チップを備える、請求項1から26のいずれか1項
記載のコンピューティングデバイス。
【請求項２８】
データストレージデバイス(100)をアセンブルするための方法であって、
複数のメモリチップを第1(104a)のメモリボードに固定すること(510)と、
複数のメモリチップを第2(104b)のメモリボードに固定すること(520)と、
高速インターフェイス(108)及びコントローラ(110)をコントローラボード(102)に取り
付けること(530)と、
該第1(104a)のメモリボードを該コントローラボード(102)に機能的に(540)接続するこ
とと、
該第2のメモリボード(104b)を該コントローラボード(102)に機能的に(550)接続するこ
ととを備え、該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、該コン
トローラボード(102)から別個に取り外し可能である、前記方法。
【請求項２９】
複数のメモリチップを第3のメモリボードに固定することと、
前記第1(104a)のメモリボード又は前記第2(104b)のメモリボードのうちの1つを前記コ
ントローラボード(102)から切断することと、
該第3のメモリボードを該コントローラボード(102)に機能的に接続することとをさらに
備える、請求項28記載の方法。
【請求項３０】
前記第1(104a)のメモリボードを前記コントローラボード(102)に機能的に接続すること
、及び前記第2(104b)のメモリボードを該コントローラボード(102)に機能的に接続するこ
とが、ドライブベイフォームファクタがサーバ(330)のドライブベイ(335)に適合するよう
構成されるように、該第1(104a)のメモリボード、該第2(104b)のメモリボード、及び該コ
ントローラボード(102)の該ドライブベイフォームファクタを形成することを含む、請求
項28又は29記載の方法。
【請求項３１】
前記第1(104a)のメモリボードを前記コントローラボード(102)に機能的に接続すること
が、該第1(104a)のメモリボードを該コントローラボード(102)の上側に機能的に接続する
ことを含み、
前記第2(104b)のメモリボードを該コントローラボード(102)に機能的に接続することが
、該第2(104b)のメモリボードを該コントローラボード(102)の下側に機能的に接続するこ
とを含む、請求項28又は29記載の方法。
【請求項３２】
前記メモリチップがダイナミックランダムアクセスメモリ(DRAM)チップを備える、請求
項28から31のいずれか1項記載の方法。
【請求項３３】
前記メモリチップが相変化メモリ(PCM)チップを備える、請求項28から32のいずれか1項
記載の方法。
【請求項３４】
前記メモリチップがフラッシュメモリチップ(118a、118b)を備える、請求項28から33の
いずれか1項記載の方法。
【請求項３５】
前記第1(104a)のメモリボード及び前記第2(104b)のメモリボード上の前記フラッシュメ
モリチップ(118a、118b)がNANDフラッシュメモリチップであり、
前記高速インターフェイス(108)がPCI-eインターフェイス(408)であり、
前記コントローラ(110)がフィールドプログラマブルゲートアレイ(FPGA)コントローラ(
610)である、請求項34記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
(関連出願の相互参照)
本出願は、引用により全体として本明細書中に組み込まれている、2009年4月8日に出願
された「データストレージデバイス(DATA STORAGE DEVICE)」と題する米国仮出願第61/16
7,709号、及び2009年6月17日に出願された「フラッシュメモリデータストレージデバイス
におけるパーティショニング及びストライピング(PARTITIONING AND STRIPING IN A FLAS
H MEMORY DATA STORAGE DEVICE)」と題する米国仮出願第61/187,835号の利益を主張する
ものである。
【０００２】
(技術分野)
この説明は、データストレージデバイスに関する。
【背景技術】
【０００３】
(背景)
データストレージデバイスは、データを格納するために使用することができる。データ
ストレージデバイスは、コンピューティングデバイスのデータストレージの必要性に備え
るためにコンピューティングデバイスと共に使用することができる。場合によっては、膨
大量のデータをデータストレージデバイスに格納することが望ましいこともある。また、
データストレージデバイスとの間でデータの迅速な読み取り及び書き込みを行うためのコ
マンドを実行することが望ましい場合もある。
【発明の概要】
【課題を解決するための手段】
【０００４】
(要旨)
本文書は、1つ以上のメモリボードを含むデータストレージデバイスであって、各メモ
リボードが複数のフラッシュメモリチップを含むデータストレージデバイスを説明する。
データストレージデバイスは、メモリボードが機能的に接続するコントローラボードを含
む。データストレージデバイスは、インターフェイスを使用してホストと通信し、ホスト
からコマンドを受信して、それらのコマンドをフラッシュメモリチップを使用して処理す
るように構成されてもよい。たとえば、フラッシュメモリチップを使用してデータのブロ
ックの読み取り、書き込み、コピー、及び削除を行うコマンドを、ホストは送信すること
ができ、コントローラボードは受信することができる。
【０００５】
1つの例示的な実施態様において、コントローラは、フィールドプログラマブルゲート
アレイ(FPGA)(field-programmable gate array)コントローラを含み、ホストとコントロ
ーラボードとの間のインターフェイスは、たとえば(PCIe)(Peripheral Component Interc
onnect Express)インターフェイスのような高速インターフェイスであってもよい。この
ように、データストレージデバイスは、高ストレージボリュームを含むことができ、ホス
トとフラッシュメモリチップ間の高パフォーマンス及び高速のデータ転送を達成するよう
に構成されてもよい。
【０００６】
1つの例示的な実施態様において、データストレージデバイスは、メモリボードが各々
複数のフラッシュメモリチップを含む2つのメモリボードで構成されてもよい。コントロ
ーラボード及び2つのメモリボードを含むデータストレージデバイスは、データストレー
ジデバイスがコンピューティングデバイスの内蔵ドライブスロットに適合するように、デ
ィスクドライブの形態で構成されてもよい。たとえば、データストレージデバイスは、サ
ーバのデータストレージ容量をもたらすためにサーバの内蔵ドライブスロットに適合する
ように構成されてもよい。データストレージデバイスは、コンピューティングデバイスか
ら容易に取り外すことができ、別のコンピューティングデバイスの内蔵ドライブスロット
に挿入できるように、取り外し可能に構成されてもよい。
【０００７】
また、データストレージデバイスは、メモリボードがコントローラボードから切断され
て、他のメモリボードに置き換えられてもよく、他のメモリボードも複数のフラッシュメ
モリチップを含むことができるような、モジュール方式であってもよい。コントローラボ
ード上のコントローラは、1つ以上のメモリボードが切断されて、他のメモリボードで置
き換えられたことを認識するように構成可能であってもよい。コントローラは、メモリボ
ードのこのタイプのスワップアウトを認識するように構成されてもよく、ホストと他のメ
モリボードとの間のコマンドを処理することができる。このように、コントローラボード
は、1つ以上のメモリボードがもはや使用可能ではなくなった場合であっても、引き続き
使用することができる。同じコントローラボード及びコントローラボード上の同じコンポ
ーネントを引き続き使用しながら、使用不可能なメモリボードはコントローラボードから
切断されてもよく、別のメモリボードで置き換えられてもよい。
【０００８】
1つの例示的な実施態様において、データストレージデバイスは、さまざまなタイプの
フラッシュメモリチップを扱うように構成可能であってもよい。たとえば、コントローラ
ボード上のコントローラは、メモリボード上のさまざまなタイプのフラッシュメモリチッ
プを認識して動作するように構成されてもよい。たとえば、コントローラは、たとえばシ
ングルレベルセル(SLC)フラッシュメモリチップ、マルチレベルセル(MLC)フラッシュメモ
リチップ、NANDフラッシュメモリチップ、NORフラッシュメモリチップ、及びその他のタ
イプのフラッシュメモリチップを含む、さまざまなタイプのフラッシュメモリチップを認
識するように構成されるFPGAコントローラであってもよい。コントローラは、さまざまな
フラッシュメモリチップベンダー製のフラッシュメモリチップを認識するように構成され
てもよい。コントローラは、さまざまなタイプのフラッシュメモリチップを認識して、メ
モリボード上のフラッシュメモリチップのタイプに基づいてコマンドを変換することによ
ってフラッシュメモリチップを使用してホストからのコマンドを実行するように構成され
てもよい。したがって、ホストは、コマンドを変換する必要がないか、又はフラッシュメ
モリチップのタイプにより異なるコマンドを送信する必要がない。コントローラは、ホス
トからのコマンドを、特定のタイプのフラッシュメモリチップのネイティブコマンドに変
換するように構成されてもよい。
【０００９】
このように、同一のコントローラを有する同一のコントローラボードは、異なるタイプ
のフラッシュメモリチップを有するメモリボードと共に使用することができる。たとえば
、第1のメモリボード及び第2のメモリボードは、コントローラボードに接続されてもよく
、各々のボードは、1つのベンダーにより製造されたSLC NANDフラッシュメモリチップを
含むことができる。第1のメモリボード及び第2のメモリボードは、切断されて、2つの別
のメモリボードに置き換えられてもよく、別のメモリボードは異なるベンダーにより製造
されたMLC NANDフラッシュメモリチップを含む。コントローラは、その他のメモリボード
上のフラッシュメモリチップを自動的に認識して、その他のメモリボード上のフラッシュ
メモリチップを使用してホストからのコマンドを実行するように構成されてもよい。この
ように、データストレージデバイスは、ホスト上の1つ以上のアプリケーションの特性に
応じて、及びホスト上の1つ以上のアプリケーションにより所望されるデータストレージ
デバイスの特徴に応じて、メモリボード上のさまざまなフラッシュメモリチップで調整さ
れ構成されてもよい。
【００１０】
その他の例示的な実施態様において、各々のメモリボードは、フラッシュメモリチップ
以外のメモリデバイスを含むことができる。たとえば、各々のメモリボードは、複数のダ
イナミックランダムアクセスメモリ(DRAM)チップを含むことができる。フラッシュメモリ
チップに関する上記の説明と同様に、データストレージデバイスは、さまざまなタイプの
DRAMチップを扱うように構成可能であってもよい。たとえば、コントローラボード上のコ
ントローラは、メモリボード上のさまざまなタイプのDRAMチップを認識して動作するよう
に構成されてもよい。DRAMチップの1つのメモリボードは、データストレージデバイスか
ら取り外して、異なるタイプのDRAMチップを有するメモリボードに置き換えることができ
る。コントローラは、メモリボード上のDRAMチップのタイプに基づいてコマンドを変換す
ることによって異なるタイプのDRAMチップを使用してホストからのコマンドを実行するこ
とができる。その他の例示的な実施態様において、メモリボードは、たとえば相変化メモ
リ(PCM)チップ及びその他のタイプのメモリデバイスを含む、その他のタイプのメモリデ
バイスを含むことができる。
【００１１】
もう1つの例示的な実施態様において、コントローラボード上のコントローラは、1つの
メモリボード上の1つのタイプのメモリデバイスを認識して動作し、しかも同時に他のメ
モリボード上の異なるタイプのメモリデバイスで動作するように構成されてもよい。たと
えば、メモリボードの1つはフラッシュメモリチップを含み、もう1つのメモリボードはDR
AMチップを含むことができる。
【００１２】
1つの例示的な実施態様において、データストレージデバイスは、さまざまな電圧を有
するフラッシュメモリチップを扱うように構成可能であってもよい。たとえば、コントロ
ーラボード上のコントローラは、メモリボード上のさまざまな電圧を有するフラッシュメ
モリチップを認識して動作するように構成されてもよい。たとえば、コントローラは、フ
ラッシュメモリチップの電圧を感知して、必要な電圧を供給するように電力制御回路を構
成することができる。たとえば、コントローラは、メモリボード上のフラッシュメモリチ
ップの電圧を感知するように構成され、感知した電圧に基づいてフラッシュメモリチップ
に適切な電圧を供給するようにコントローラボード上の電源モジュールを構成するように
構成されるFPGAコントローラであってもよい。コントローラは、フラッシュメモリチップ
の電圧を感知して、メモリボード上のフラッシュメモリチップの電圧に基づいてコマンド
を変換する必要なく、フラッシュメモリチップを使用してホストからのコマンドを実行す
るように構成されてもよい。
【００１３】
このように、同一のコントローラを有する同一のコントローラボードは、異なる電圧の
フラッシュメモリチップを有するメモリボードと共に使用することができる。たとえば、
第1のメモリボード及び第2のメモリボードは、コントローラボードに接続されてもよく、
各々のボードは、第1の電圧で動作するフラッシュメモリチップを含むことができる。第1
のメモリボード及び第2のメモリボードは、切断されて、2つの別のメモリボードに置き換
えられてもよく、別のメモリボードは第2の電圧で動作するフラッシュメモリチップを含
み、第2の電圧は第1の電圧とは異なる。コントローラは、その他のメモリボード上のフラ
ッシュメモリチップの第2の電圧を自動的に感知して、第2の電圧で動作するよう電源モジ
ュールを構成し、その他のメモリボード上のフラッシュメモリチップを使用してホストか
らのコマンドを実行するように構成されてもよい。このように、データストレージデバイ
スは、ホスト上の1つ以上のアプリケーションの特性に応じて、及びホスト上の1つ以上の
アプリケーションにより所望されるデータストレージデバイスの特徴に応じて、その他の
メモリボード上のさまざまなフラッシュメモリチップで調整され構成されてもよい。
【００１４】
メモリボード上にあるフラッシュメモリチップとは異なるボード上にある単一のコント
ローラを有する単一のコントローラボードを使用することで、データストレージデバイス
を構成する際の柔軟性が実現する。たとえば、異なるタイプのフラッシュメモリチップを
認識して動作するように、及び/又は異なる電圧を有するフラッシュメモリチップを認識
して動作するように構成されるボード上の単一コントローラを有する単一のコントローラ
ボードを使用することで、データストレージデバイスは、さまざまなフラッシュメモリチ
ップ技術を使用して設計することが可能になる。また、特定のフラッシュメモリチップ技
術は、データストレージデバイスとインターフェイスをとるホスト上のアプリケーション
のタイプに基づいて、メモリボード上で選択され使用されてもよい。また、フラッシュメ
モリチップ技術は変化する可能性もあるので、メモリボードをスワップアウトすることに
より、同一のコントローラボード及びコントローラが、メモリボード上のさまざまなフラ
ッシュメモリチップと共に使用されてもよい。このように、コントローラ及びその他のコ
ンポーネントを有するコントローラボードは、メモリボード上の複数のさまざまなタイプ
のフラッシュメモリチップを受け入れるように構成可能なユニバーサルコントローラボー
ド及びコントローラと見なすことができる。
【００１５】
1つの一般的な態様によれば、データストレージデバイスは、第1のメモリボード及び第
2のメモリボードを含むことができ、第1のメモリボード及び第2のメモリボードは各々、
複数のメモリチップを備える。データストレージデバイスは、第1のメモリボード及び第2
のメモリボードに機能的に接続するように配置され構成されるコントローラボードを含む
ことができ、コントローラボードは、高速インターフェイスと、高速インターフェイスを
使用してホストからコマンドを受信し、コマンドを実行するように配置され構成されるコ
ントローラとを含み、第1のメモリボード及び第2のメモリボードは各々、コントローラボ
ードから別個に取り外し可能である。データストレージデバイスは、コンピュータプログ
ラム製品として実施されてもよい。
【００１６】
実施態様は、1つ以上の以下の特徴を含むことができる。たとえば、コントローラは、
フィールドプログラマブルゲートアレイ(FPGA)コントローラであってもよい。メモリチッ
プは、フラッシュメモリチップを含むことができる。フラッシュメモリチップは、シング
ルレベルセル(SLC)NANDフラッシュメモリチップ及び/又はマルチレベルセル(MLC)NANDフ
ラッシュメモリチップを含むことができる。高速インターフェイスは、PCI-eインターフ
ェイスを含むことができる。1つの例示的な実施態様において、フラッシュメモリチップ
はNANDフラッシュメモリチップを含むことができ、高速インターフェイスはPCI-eインタ
ーフェイスであってもよく、コントローラはフィールドプログラマブルゲートアレイ(FPG
A)であってもよい。
【００１７】
第1のメモリボード、第2のメモリボード、及びコントローラボードは、サーバのドライ
ブベイに適合するように配置され構成されてもよい。第1のメモリボードはコントローラ
ボードの上側に機能的に接続されてもよく、第2のメモリボードはコントローラボードの
下側に機能的に接続されてもよい。
【００１８】
1つの例示的な実施態様において、メモリチップは、ダイナミックランダムアクセスメ
モリ(DRAM)チップを含むことができる。もう1つの例示的な実施態様において、メモリチ
ップは、相変化メモリ(PCM)チップを備える。
【００１９】
第1のメモリボード及び第2のメモリボードは、取り外されて、複数のメモリチップを含
む別のメモリボードに置き換えられるように配置され構成されるモジュール式ボードであ
ってもよい。コントローラは電源モジュールを含むことができ、異なる電圧を有する複数
のメモリチップのコマンド処理を制御し、第1のメモリボード及び第2のメモリボード上の
メモリチップの電圧を自動的に認識し、メモリチップの認識された電圧で動作するよう電
源モジュールを構成し、インターフェイスを使用してホストからコマンドを受信し、メモ
リチップを使用してコマンドを実行するように配置され構成されてもよい。
【００２０】
コントローラは、複数の異なるタイプのメモリチップのコマンド処理を制御し、第1の
メモリボード及び第2のメモリボード上のメモリチップのタイプを自動的に認識し、イン
ターフェイスを使用してホストからコマンドを受信し、メモリチップを使用してコマンド
を実行するように配置され構成されてもよい。
【００２１】
コントローラは複数のチャネルを含むことができ、各々のチャネルは1つ以上のメモリ
チップに関連付けられ、各々のメモリチップはチャネルの1つに関連付けられる。コント
ローラは、チャネルごとにチャネルコントローラを含むことができる。
【００２２】
もう1つの一般的な態様において、コンピューティングデバイスは、ホストと、データ
ストレージデバイスとを含むことができる。データストレージデバイスは、第1のメモリ
ボードと、第2のメモリボードであって、第1のメモリボード及び第2のメモリボードは各
々、複数のメモリチップを備えるメモリボードと、第1のメモリボード及び第2のメモリボ
ードに機能的に接続するように配置され構成されるコントローラボードとを含むことがで
きる。コントローラボードは、高速インターフェイスと、高速インターフェイスを使用し
てホストからコマンドを受信し、コマンドを実行するように配置され構成されるコントロ
ーラとを含み、第1のメモリボード及び第2のメモリボードは各々、コントローラボードか
ら別個に取り外し可能である。場合によっては、コンピューティングデバイスは、コンピ
ュータシステムとして、又はコンピュータシステムの一部として実施されてもよい。実施
態様は、上記及び以下で説明される1つ以上の特徴を含むことができる。
【００２３】
もう1つの一般的な態様において、データストレージデバイスをアセンブルするための
方法は、複数のメモリチップを第1のメモリボードに固定することと、複数のメモリチッ
プを第2のメモリボードに固定することと、高速インターフェイス及びコントローラをコ
ントローラボードに取り付けることと、第1のメモリボードをコントローラボードに機能
的に接続することと、第2のメモリボードをコントローラボードに機能的に接続すること
とを含むことができ、第1のメモリボード及び第2のメモリボードは各々、コントローラボ
ードから別個に取り外し可能である。
【００２４】
実施態様は、1つ以上の以下の特徴を含むことができる。たとえば、方法は、複数のメ
モリチップを第3のメモリボードに固定することと、第1のメモリボード又は第2のメモリ
ボードのうちの1つをコントローラボードから切断することと、第3のメモリボードをコン
トローラボードに機能的に接続することとをさらに含むことができる。第1のメモリボー
ドをコントローラボードに機能的に接続すること、及び第2のメモリボードをコントロー
ラボードに機能的に接続することは、ドライブベイのフォームファクタがサーバのドライ
ブベイに適合するよう構成されるように、第1のメモリボード、第2のメモリボード、及び
コントローラボードのドライブベイのフォームファクタを形成することを含むことができ
る。第1のメモリボードをコントローラボードに機能的に接続することは、第1のメモリボ
ードをコントローラボードの上側に機能的に接続することを含むことができ、第2のメモ
リボードをコントローラボードに機能的に接続することは、第2のメモリボードをコント
ローラボードの下側に機能的に接続することを含むことができる。
【００２５】
1つの実施態様において、メモリチップは、ダイナミックランダムアクセスメモリ(DRAM
)チップを含むことができる。もう1つの実施態様において、メモリチップは、相変化メモ
リ(PCM)チップを含むことができる。もう1つの実施態様において、メモリチップは、フラ
ッシュメモリチップを含むことができる。第1のメモリボード及び第2のメモリ上のフラッ
シュメモリチップは、NANDフラッシュメモリチップを含むことができ、高速インターフェ
イスは、PCI-eインターフェイスを含むことができ、コントローラは、フィールドプログ
ラマブルゲートアレイ(FPGA)コントローラであってもよい。
【００２６】
1つ以上の実施態様の詳細は、添付の図面及び以下の説明において示される。その他の
特徴は、説明及び図面、並びに特許請求の範囲から明らかとなろう。
【図面の簡単な説明】
【００２７】
【図１】データストレージデバイスを示す例示的なブロック図である。
【００２８】
【図２】データストレージデバイスのプリント基板を示す例示的な透視ブロック図である。
【００２９】
【図３】図1のデータストレージデバイスと共に使用する例示的なコンピューティングデバイスを示す例示的なブロック図である。
【００３０】
【図４】コントローラを示す例示的なブロック図である。
【００３１】
【図５】図1のデータストレージデバイスの例示のアセンブリを示す例示的な流れ図である。
【００３２】
【図６】図1のデータストレージデバイスの例示の実施態様を示す例示的なブロック図である。
【００３３】
【図７】図1のデータストレージデバイスの例示の動作を示す例示的な流れ図である。
【００３４】
【図８】図1のデータストレージデバイスの例示の動作を示す例示的な流れ図である。
【発明を実施するための形態】
【００３５】
(詳細な説明)
本文書は、データストレージのための装置、(1つ以上の)システム、及び技法を説明す
る。そのようなデータストレージ装置は、1つ以上の異なるメモリボードと共に使用され
うるコントローラを有するコントローラボードを含むことができ、メモリボードは各々複
数のフラッシュメモリチップを有する。データストレージ装置は、コントローラボード上
のインターフェイスを使用してホストと通信することができる。このように、コントロー
ラボード上のコントローラは、インターフェイスを使用してホストからコマンドを受信し
、メモリボード上のフラッシュメモリチップを使用してそれらのコマンドを実行するよう
に構成されてもよい。
【００３６】
図1は、データストレージデバイス100を示すブロック図である。データストレージデバ
イス100は、コントローラボード102及び1つ以上のメモリボード104a及び104bを含むこと
ができる。データストレージデバイス100は、インターフェイス108を介してホスト106と
通信することができる。インターフェイス108は、ホスト106とコントローラボード102の
間にあってもよい。コントローラボード102は、コントローラ110、DRAM 111、複数のチャ
ネル112、電源モジュール114、及びメモリモジュール116を含むことができる。メモリボ
ード104a及び104bは、各メモリボード上に複数のフラッシュメモリチップ118a及び118bを
含むことができる。メモリボード104a及び104bはまた、メモリデバイス120a及び120bを含
むことができる。
【００３７】
一般に、データストレージデバイス100は、フラッシュメモリチップ118a及び118b上に
データを格納するように構成されてもよい。ホスト106は、フラッシュメモリチップ118a
及び118bとの間でデータの書き込み及び読み取りを行うことができ、さらにフラッシュメ
モリチップ118a及び118bに関してその他の操作を実行させるようにすることができる。ホ
スト106とフラッシュメモリチップ118a及び118bとの間のデータの読み取り及び書き込み
、並びにその他の操作は、コントローラボード102上のコントローラ110を通じて処理され
、制御されてもよい。コントローラ110は、ホスト106からコマンドを受信して、メモリボ
ード104a及び104b上のフラッシュメモリチップ118a及び118bを使用してそれらのコマンド
を実行させてもよい。ホスト106とコントローラ110との間の通信は、インターフェイス10
8を通じて行われてもよい。コントローラ110は、チャネル112を使用して、フラッシュメ
モリチップ118a及び118bと通信することができる。
【００３８】
コントローラボード102は、DRAM 111を含むことができる。DRAM 111は、コントローラ1
10に機能的に結合されてもよく、情報を格納するために使用されてもよい。たとえば、DR
AM 111は、論理アドレスから物理アドレスへのマップ及び不良ブロックの情報を格納する
ために使用されてもよい。DRAM 111はまた、ホスト106とフラッシュメモリチップ118a及
び118bとの間のバッファとして機能するように構成されてもよい。
【００３９】
1つの例示的な実施態様において、コントローラボード102及び各々のメモリボード104a
及び104bは、物理的に別個のプリント基板(PCB)である。メモリボード104aは、コントロ
ーラボード102のPCBに機能的に接続されている1つのPCB上にあってもよい。たとえば、メ
モリボード104aは、コントローラボード102に物理的及び/又は電気的に接続されてもよい
。同様に、メモリボード104bは、メモリボード104aから分離されたPCBでもよく、コント
ローラボード102のPCBに機能的に接続されてもよい。たとえば、メモリボード104bは、コ
ントローラボード102に物理的及び/又は電気的に接続されてもよい。メモリボード104a及
び104bは各々、コントローラボード102から別個に切断されて取り外し可能であってもよ
い。たとえば、メモリボード104aは、コントローラボード102から切断されて、別のメモ
リボード(図示せず)に置き換えられてもよく、その別のメモリボードはコントローラボー
ド102に機能的に接続される。この例において、メモリボード104a及び104bのいずれか又
は両方は、他のメモリボードが同じコントローラボード102及びコントローラ110で動作で
きるように、他のメモリボードでスワップアウトされてもよい。
【００４０】
1つの例示的な実施態様において、コントローラボード102及び各々のメモリボード104a
及び104bは、ディスクドライブフォームファクタで物理的に接続されてもよい。ディスク
ドライブフォームファクタは、たとえば3.5”ディスクドライブフォームファクタ及び2.5
”ディスクドライブフォームファクタのような、さまざまなサイズを含むことができる。
【００４１】
1つの例示的な実施態様において、コントローラボード102及び各々のメモリボード104a
及び104bは、高密度ボールグリッドアレイ(ball grid array)(BGA)コネクタを使用して電
気的に接続されてもよい。たとえば、ファインボールグリッドアレイ(fine ball grid ar
ray)(FBGA)コネクタ、ウルトラファインボールグリッドアレイ(ultra fine ball grid ar
ray)(UBGA)コネクタ、及びマイクロボールグリッドアレイ(micro ball grid array)(MBGA
)を含むその他のBGAコネクタの変種が使用されてもよい。その他のタイプの電気接続手段
が使用されてもよい。
【００４２】
1つの例示的な実施態様において、自身のPCBであるコントローラボード102は、自身の
別個のPCBである各々のメモリボード104a及び104bの間に物理的に配置されてもよい。ま
た、図2をさらに参照すると、データストレージデバイス100は、1つのPCB上にメモリボー
ド104a、第2のPCB上にコントローラボード102、及び第3のPCB上にメモリボード104bを含
むことができる。メモリボード104aは複数のフラッシュメモリチップ118aを含み、メモリ
ボード104bは複数のフラッシュメモリチップ118bを含む。コントローラボード102は、コ
ントローラ110、及びホスト(図示せず)へのインターフェイス108、並びにその他のコンポ
ーネント(図示せず)を含む。
【００４３】
図2に示される例において、メモリボード104aは、コントローラボード102に機能的に接
続され、コントローラボード102の片側220aに配置されてもよい。たとえば、メモリボー
ド104aは、コントローラボード102の上側220aに接続されてもよい。メモリボード104bは
、コントローラボード102に機能的に接続され、コントローラボード102の第2の側220bに
配置されてもよい。たとえば、メモリボード104bは、コントローラボード102の下側220b
に接続されてもよい。
【００４４】
メモリボード104a及び104bとコントローラボード102との間のその他の物理的及び/又は
電気的な接続配列が可能である。図2は、単に1つの例示的な配列を示すにすぎない。たと
えば、データストレージデバイス100は、3つのメモリボード、4つのメモリボード、又は
それ以上のメモリボードのような、3つ以上のメモリボードを含むことができ、すべての
メモリボードは単一のコントローラボードに接続される。このように、データストレージ
デバイスは、ディスクドライブフォームファクタでさらに構成されてもよい。また、メモ
リボードは、たとえばコントローラボードが上部でメモリカードが下部、又はコントロー
ラボードが下部でメモリカードが上部のように、その他の配列でコントローラボードに接
続されてもよい。
【００４５】
データストレージデバイス100は、コンピューティングデバイスと協働するように配置
され構成されてもよい。1つの例示的な実施態様において、コントローラボード102及びメ
モリボード104a及び104bは、コンピューティングデバイスのドライブベイ内に適合するよ
うに配置され構成されてもよい。図3を参照すると、2つの例示的なコンピューティングデ
バイス、すなわちサーバ330及びサーバ340が示される。サーバ330及び340は、さまざまな
異なるタイプのコンピューティングデバイスを提供するように配置され構成されてもよい
。サーバ330及び340は、サーバ330及び340の1つ以上のプロセッサにコンピューティング
サービスを提供させる命令を有するコンピュータプログラム製品を含むホスト(たとえば
、図1のホスト106)を含むことができる。サーバのタイプは、サーバ上で動作している1つ
以上のアプリケーションプログラムによって異なる。たとえば、サーバ330及び340は、ア
プリケーションサーバ、Webサーバ、Eメールサーバ、検索サーバ、ストリーミングメディ
アサーバ、Eコマースサーバ、ファイル転送プロトコル(FTP)サーバ、その他のタイプのサ
ーバ、又はそれらのサーバの組み合わせであってもよい。サーバ330は、サーバラック内
で動作するラックマウント型サーバとなるように構成されてもよい。サーバ340は、サー
バラックから独立して動作するスタンドアロンのサーバとなるように構成されてもよい。
サーバ340がサーバラック内にはない場合であっても、他のサーバと共に動作するように
構成されてもよく、他のサーバに機能的に接続されてもよい。サーバ330及び340は、例示
のコンピューティングデバイスを説明するために示され、その他のタイプのサーバを含む
他のコンピューティングデバイスを使用してもよい。
【００４６】
1つの例示的な実施態様において、図1及び図2のデータストレージデバイス100は、サー
バ330及び340のデータストレージ機能をもたらすために、サーバ330のドライブベイ335及
びサーバ340のドライブベイ345内に適合するようにサイズ調整されてもよい。たとえば、
データストレージデバイス100は、ドライブベイ335及び345に適合するように、3.5"ディ
スクドライブフォームファクタにサイズ調整されてもよい。データストレージデバイス10
0はまた、その他のサイズに構成されてもよい。データストレージデバイス100は、インタ
ーフェイス108を使用してサーバ330及び340に機能的に接続されて通信することができる
。このように、ホストは、インターフェイス108を使用してコントローラボード102にコマ
ンドを伝達することができ、コントローラ110は、メモリボード104a及び104b上のフラッ
シュメモリチップ118a及び118bを使用してコマンドを実行することができる。
【００４７】
図1に戻って参照すると、インターフェイス108は、コントローラ110とホスト106との間
の高速インターフェイスを含むことができる。高速インターフェイスは、ホスト106とフ
ラッシュメモリチップ118a及び118bとの間のデータの高速転送を可能にすることができる
。1つの例示的な実施態様において、高速インターフェイスは、PCIeインターフェイスを
含むことができる。たとえば、PCIeインターフェイスは、PCIe x4インターフェイス又はP
CIe x8インターフェイスであってもよい。PCIeインターフェイス108は、ホスト106へPCIe
コネクタケーブルアセンブリを含むことができる。その他の高速インターフェイス、コネ
クタ及びコネクタアセンブリが使用されてもよい。
【００４８】
1つの例示的な実施態様において、コントローラボード102とメモリボード104a及び104b
上のフラッシュメモリチップ118a及び118bとの間の通信は、複数のチャネル112に配置さ
れて構成されてもよい。各々のチャネル112は、1つ以上のフラッシュメモリチップ118a及
び118bと通信することができる。コントローラ110は、ホスト106から受信されたコマンド
が、各々のチャネル112を使用して、同時に、又は少なくとも実質的に同時にコントロー
ラ110によって実行されうるように構成されてもよい。このように、複数のコマンドは、
異なるチャネル112で同時に実行することができ、データストレージデバイス100のスルー
プットを向上させることができる。
【００４９】
図1の例において、20個のチャネル112が示される。完全な実線は、コントローラ110と
メモリボード104a上のフラッシュメモリチップ118aとの間の10個のチャネルを示す。実線
及び破線の混合線は、コントローラ110とメモリボード104b上のフラッシュメモリチップ1
18bとの間の10個のチャネルを示す。図1に示すように、各々のチャネル112は、複数のフ
ラッシュメモリチップをサポートすることができる。たとえば、各々のチャネル112は、
最大32個のフラッシュメモリチップをサポートすることができる。1つの例示的な実施態
様において、20個のチャネルは各々、6個のフラッシュメモリチップをサポートして通信
するように構成されてもよい。この例において、各々のメモリボード104a及び104bは、そ
れぞれ60個のフラッシュメモリチップを含むことができる。フラッシュメモリチップ118a
及び118bのタイプ及び数に応じて、データストレージ100デバイスは、最大多数テラバイ
トのデータまで格納するように構成されてもよい。
【００５０】
コントローラ110は、マイクロコントローラ、FPGAコントローラ、その他のタイプのコ
ントローラ、又はそれらのコントローラの組み合わせを含むことができる。1つの例示的
な実施態様において、コントローラ110はマイクロコントローラである。マイクロコント
ローラは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わ
せで実施されてもよい。たとえば、マイクロコントローラは、実行されると、特定の方法
でマイクロコントローラに実行させることができる命令を含むコンピュータプログラム製
品がメモリ(たとえば、メモリモジュール116)からロードされてもよい。マイクロコント
ローラは、インターフェイス108を使用してホスト106からコマンドを受信し、コマンドを
実行するように構成されてもよい。たとえば、コマンドは、フラッシュメモリチップ118a
及び118bを使用してデータのブロックの読み取り、書き込み、コピー、及び削除を行うコ
マンド、並びにその他のコマンドを含むことができる。
【００５１】
もう1つの例示的な実施態様において、コントローラ110はFPGAコントローラである。FP
GAコントローラは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの
組み合わせで実施されてもよい。たとえば、FPGAコントローラは、実行されると、特定の
方法でFPGAコントローラに実行させることができる命令を含むファームウェアがメモリ(
たとえば、メモリモジュール116)からロードされてもよい。FPGAコントローラは、インタ
ーフェイス108を使用してホスト106からコマンドを受信し、コマンドを実行するように構
成されてもよい。たとえば、コマンドは、フラッシュメモリチップ118a及び118bを使用し
てデータのブロックの読み取り、書き込み、コピー、及び削除を行うコマンド、並びにそ
の他のコマンドを含むことができる。
【００５２】
1つの例示の実施態様において、FPGAコントローラは、ホスト106との複数のインターフ
ェイス108をサポートすることができる。たとえば、FPGAコントローラは、ホスト106との
複数のPCIe x4又はPCIe x8インターフェイスをサポートするように構成されてもよい。
【００５３】
メモリモジュール116は、コントローラ110にロードされうるデータを格納するように構
成されてもよい。たとえば、メモリモジュール116は、FPGAコントローラの1つ以上のイメ
ージを格納するように構成されてもよく、イメージはFPGAコントローラによって使用され
るファームウェアを含む。メモリモジュール116は、ホスト106と通信するために、ホスト
106とのインターフェイスをとることができる。メモリモジュール116は、ホスト106と直
接インターフェイスをとることができる、及び/又はコントローラ110を通じてホスト106
と間接的にインターフェイスをとることができる。たとえば、ホスト106は、ファームウ
ェアの1つ以上のイメージを、格納のためにメモリモジュール116に伝達することができる
。1つの例示的な実施態様において、メモリモジュール116は、電気的消去可能プログラマ
ブルROM(electrically erasable programmable read-only memory)(EEPROM)を含む。メモ
リモジュール116はまた、その他のタイプのメモリモジュールを含むことができる。
【００５４】
電源モジュール114は、電力(Vin)を受信し、受信した電力の任意の変換を実行し、出力
電力(Vout)を出力するように構成されてもよい。電源モジュール114は、ホスト106から、
又は別の電源から、電力(Vin)を受信することができる。電源モジュール114は、コントロ
ーラボード102、及びコントローラ110を含むコントローラボード102上のコンポーネント
に電力(Vout)を提供することができる。電源モジュール114はまた、メモリボード104a及
び104b、並びにフラッシュメモリチップ118a及び118bを含むメモリボード104a及び104b上
のコンポーネントに電力(Vout)を提供することができる。
【００５５】
1つの例示的な実施態様において、電源モジュール114は、1つ以上のDC(直流)-DC変換器
を含むことができる。DC-DC変換器は、入力電力(Vin)を受信して、電力を1つ以上の異な
る電力レベル(Vout)に変換するように構成されてもよい。たとえば、電源モジュール114
は、+12V(Vin)を受信し、電力を3.3V、1.2V、又は1.8Vに変換して、出力電力(Vout)をコ
ントローラボード102並びにメモリボード104a及び104bに供給するように構成されてもよ
い。
【００５６】
メモリボード104a及び104bは、さまざまなタイプのフラッシュメモリチップ118a及び11
8bを扱うように構成されてもよい。1つの例示的な実施態様において、フラッシュメモリ
チップ118a及びフラッシュメモリチップ118bは、電源モジュール114から同じ電圧を必要
とすること、及び同じフラッシュメモリチップベンダーのものであることを含む同じタイ
プのフラッシュメモリチップであってもよい。ベンダー及び製造元という用語は、本文書
全体を通じて同義的に使用される。
【００５７】
1つの例示的な実施態様において、メモリボード104a上のフラッシュメモリチップ118a
は、メモリボード104b上のフラッシュメモリチップ118bとは異なるタイプであってもよい
。たとえば、メモリボード104aはSLC NANDフラッシュメモリチップを含むことができ、メ
モリボード104bはMLC NANDフラッシュメモリチップを含むことができる。もう1つの例に
おいて、メモリボード104aはあるフラッシュメモリチップ製造元によるラッシュメモリチ
ップを含むこともあり、メモリボード104bは別のフラッシュメモリチップ製造元によるフ
ラッシュメモリチップを含むこともある。すべて同じタイプのフラッシュメモリチップを
備えるか、又は異なるタイプのフラッシュメモリチップを備えるという柔軟性があるため
、データストレージデバイス100は、ホスト106に使用されているさまざまなアプリケーシ
ョンに合わせて調整することができる。
【００５８】
もう1つの例示的な実施態様において、メモリボード104a及び104bは、同じメモリボー
ド上に異なるタイプのフラッシュメモリチップを含むことができる。たとえば、メモリボ
ード104aは、同じPCB上にSLC NANDチップとMLC NANDチップの両方を含むことができる。
同様に、メモリボード104bは、SLC NANDチップとMLC NANDチップの両方を含むことができ
る。このように、データストレージデバイス100は、ホスト106の仕様に適合するように有
利に調整されてもよい。
【００５９】
もう1つの例示的な実施態様において、メモリボード104a及び104bは、フラッシュメモ
リ以外のチップを含む、その他のタイプのメモリデバイスを含むことができる。たとえば
、メモリボード104a及び104bは、たとえばダイナミックRAM(DRAM)及びスタティックRAM(S
RAM)のようなランダムアクセスメモリ(RAM)、並びにその他のタイプのRAM及びその他のタ
イプのメモリデバイスを含むこともできる。1つの例示的な実施態様において、メモリボ
ード104a及び104はいずれも、RAMを含むことができる。もう1つの例示的な実施態様にお
いて、メモリボードの一方はRAMを含み、もう一方のメモリボードはフラッシュメモリチ
ップを含むことができる。また、メモリボードの一方は、RAM及びフラッシュメモリチッ
プの両方を含むことができる。
【００６０】
メモリボード104a及び104b上のメモリモジュール120a及び120bは、それぞれフラッシュ
メモリチップ118a及び118bに関連する情報を格納するために使用されてもよい。1つの例
示的な実施態様において、メモリモジュール120a及び120bは、フラッシュメモリチップの
デバイス特性を格納することができる。デバイス特性は、チップがSLCチップ又はMLCのい
ずれであるか、チップがNAND又はNORチップのいずれであるか、チップセレクトの数、ブ
ロックの数、ブロックあたりのページの数、ページあたりのバイトの数、及びチップの速
度を含むことができる。
【００６１】
1つの例示的な実施態様において、メモリモジュール120a及び120bは、シリアルEEPROM
を含むことができる。EEPROMは、デバイス特性を格納することができる。デバイス特性は
、任意の所定のタイプのフラッシュメモリチップに対して1回コンパイルされてもよく、
適切なEEPROMイメージがデバイス特性と共に生成されてもよい。メモリボード104a及び10
4bがコントローラボード102に機能的に接続される場合、デバイス特性は、コントローラ1
10が制御しているフラッシュメモリチップ118a及び118bのタイプをコントローラ110が自
動的に認識できるように、EEPROMから読み取られてもよい。加えて、デバイス特性は、特
定の1つ以上のタイプのフラッシュメモリチップ118a及び118bの適切なパラメータにコン
トローラ110を構成するために使用されてもよい。
【００６２】
上記で説明されるように、コントローラ110は、FPGAコントローラを含むことができる
。図4を参照すると、FPGAコントローラ410を示す例示的なブロック図が示される。FPGAコ
ントローラは、図1のコントローラ110に関して上記で説明されたように動作するよう構成
されてもよい。FPGAコントローラ410は、複数のチャネル112をフラッシュメモリチップ41
8に接続するために複数のチャネルコントローラ450を含むことができる。フラッシュメモ
リチップ418は、各々のチャネルコントローラ450に接続する複数のフラッシュメモリチッ
プとして示される。フラッシュメモリチップ418は、図1の別個のメモリボード104a及び10
4b上にある、図1のフラッシュメモリチップ118a及び118bの代表である。別個のメモリボ
ードは、図4の例には示されていない。FPGAコントローラ410は、PCIeインターフェイスモ
ジュール408、双方向ダイレクトメモリアクセス(DMA)コントローラ452、ダイナミックラ
ンダムアクセスメモリ(DRAM)コントローラ454、コマンドプロセッサ/キュー456、及び情
報及び構成インターフェイスモジュール458を含むことができる。
【００６３】
情報は、インターフェイスを使用してホスト(たとえば、図1のホスト106)との間で伝達
されてもよい。図4のこの例において、FPGAコントローラ410は、ホスト及びPCIeインター
フェイスモジュール408と通信するためにPCIeインターフェイスを含む。PCIeインターフ
ェイスモジュール408は、ホストからコマンドを受信して、ホストにコマンドを送信する
ように、配置され構成されてもよい。PCIeインターフェイスモジュール408は、ホストと
データストレージデバイスとの間のデータフロー制御をもたらすことができる。PCIeイン
ターフェイスモジュール408は、ホストとコントローラ410、及び最終的にはフラッシュメ
モリチップ418との間のデータの高速転送を可能にすることができる。1つの例示的な実施
態様において、PCIeインターフェイス及びPCIeインターフェイスモジュール408は、64ビ
ットバスを含むことができる。
【００６４】
双方向DMAコントローラ452は、PCIeインターフェイス408、コマンドプロセッサ/キュー
456、及び各々のチャネルコントローラ450とのインターフェイスをとるように構成されて
もよい。双方向DMAコントローラ452は、ホストとフラッシュメモリチップ418との間の双
方向ダイレクトメモリアクセスを可能にする。
【００６５】
DRAMコントローラ454は、論理アドレスから物理アドレスへの変換を制御するように配
置され構成されてもよい。たとえば、DRAMコントローラ454は、コマンドプロセッサ/キュ
ー456が、ホストに使用されている論理アドレス及びフラッシュメモリチップ418との間で
書き込み中又は読み取り中のデータに関連するフラッシュメモリチップ418内の実際の物
理アドレスを変換する操作を補助することができる。ホストから受信された論理アドレス
は、フラッシュメモリチップ418の1つの位置の物理アドレスに変換されてもよい。同様に
、フラッシュメモリチップ418の1つの位置の物理アドレスは、論理アドレスに変換されて
、ホストに伝達されてもよい。
【００６６】
コマンドプロセッサ/キュー456は、PCIeインターフェイスモジュール408を通じてホス
トからコマンドを受信し、チャネルコントローラ450を通じてコマンドの実行を制御する
ように、配置され構成されてもよい。コマンドプロセッサ/キュー456は、実行されるべき
複数のコマンドのキューを保持することができる。このように、複数のコマンドは同時に
実行されてもよく、各々のチャネル112は、同時に、又は少なくとも実質的に同時に使用
されてもよい。
【００６７】
コマンドプロセッサ/キュー456は、異なるチャネル112のコマンドを順不同に処理して
、チャネルごとのコマンド順序付けを保持するように構成されてもよい。たとえば、ホス
トから受信されて、異なるチャネルに指定されているコマンドは、コマンドプロセッサ/
キュー456によって順不同に処理されてもよい。このように、チャネルはビジー状態の場
合もある。同じチャネルで処理されるようにホストから受信されるコマンドは、コマンド
がホストからコマンドプロセッサ/キュー456によって受信された順序で処理されてもよい
。1つの例示的な実施態様において、コマンドプロセッサ/キュー456は、コマンドが確実
に適時に実行されるようにするため、古いもの順でホストから受信されたコマンドのリス
トを保持するように構成されてもよい。
【００６８】
チャネルコントローラ450は、コマンドプロセッサ/キュー456からのコマンドを処理す
るように配置されて構成されてもよい。各々のチャネルコントローラ450は、複数のフラ
ッシュメモリチップ418のコマンドを処理するように構成されてもよい。1つの例示的な実
施態様において、各々のチャネルコントローラ450は、最大32個のフラッシュメモリチッ
プ418のコマンドを処理するように構成されてもよい。
【００６９】
チャネルコントローラ450は、コマンドプロセッサ/キュー456によって指定された順序
で、コマンドプロセッサ/キュー456からのコマンドを処理するように構成されてもよい。
処理されうるコマンドの例は、フラッシュページの読み取り、フラッシュページのプログ
ラミング、フラッシュページのコピー、フラッシュブロックの消去、フラッシュブロック
のメタデータの読み取り、フラッシュメモリチップの不良ブロックのマッピング、フラッ
シュメモリチップのリセットを含むが、これらに限定されることはない。
【００７０】
情報及び構成インターフェイスモジュール458は、FPGAコントローラ410の構成情報を受
信するために、メモリモジュール(たとえば、図1のメモリモジュール116)とのインターフ
ェイスをとるように配置され構成されてもよい。たとえば、情報及び構成インターフェイ
スモジュール458は、ファームウェアをFPGAコントローラ410に提供するために、メモリモ
ジュールから1つ以上のイメージを受信することができる。イメージ及びファームウェア
への変更は、ホストにより情報及び構成インターフェイスモジュール458を通じてコント
ローラ410に提供されてもよい。情報及び構成インターフェイスモジュール458を通じて受
信された変更は、たとえば、PCIeインターフェイスモジュール408、双方向DMAコントロー
ラ452、DRAMコントローラ454、コマンドプロセッサ/キュー456、及びチャネルコントロー
ラ450を含むコントローラ410のコンポーネントのいずれかに適用されてもよい。情報及び
構成インターフェイスモジュール458は、1つ以上のレジスタを含むことができ、レジスタ
はホストからの命令により必要に応じて変更されてもよい。
【００７１】
FPGAコントローラ410は、ホストと共に協働してコマンドを処理するように配置されて
構成されてもよい。FPGAコントローラ410は、エラー訂正、不良ブロック管理、論理から
物理へのマッピング、ガーベッジコレクション、消耗平準化、パーティショニング、及び
フラッシュメモリチップ418に関連する低レベルフォーマッティングを実行することがで
きるか、又は少なくともその操作を補助することができる。
【００７２】
図5を参照すると、データストレージデバイスをアセンブルするためのプロセス500が示
される。プロセス500は、複数のフラッシュメモリチップを第1のメモリボードに固定する
こと(510)と、複数のフラッシュメモリチップを第2のメモリボードに固定すること(520)
とを含むことができる。たとえば、図1をさらに参照すると、複数のフラッシュメモリチ
ップ118aはメモリボード104aに固定されてもよく、複数のフラッシュメモリチップ118bは
メモリボード104bに固定されてもよい。メモリボード104a及び104bは、それぞれフラッシ
ュメモリチップ118a及び118bが取り付けられるプリント基板(PCB)であってもよい。各メ
モリボード104a及び104bのストレージ容量は、個々に、及び集合的に、メモリボード104a
及び104bに固定されたフラッシュメモリチップ118a及び118bのタイプ及び数によって異な
っていてもよい。フラッシュメモリチップ118a及び118bは、上記で説明されるように単一
のチャネルが複数のフラッシュメモリチップのコマンド処理を制御できるように、1つ以
上のチャネルに配列されてもよい。
【００７３】
フラッシュメモリチップ118a及び118bは、同じタイプのフラッシュメモリチップであっ
てもよいか、又はメモリボード104a上のフラッシュメモリチップは、メモリボード104b上
のフラッシュメモリチップと異なっていてもよい。また、メモリボード104a及び104bは、
各々のメモリボード上に異なる数のフラッシュメモリチップを含むことができる。たとえ
ば、メモリボード104aは60個のフラッシュメモリチップを含むことができ、メモリボード
104bは80個のフラッシュメモリチップを含むことができるが、メモリボード104a上のフラ
ッシュメモリチップは、メモリボード104b上のフラッシュメモリチップと同じタイプ又は
異なるタイプのフラッシュメモリチップであってもよい。
【００７４】
プロセス500は、高速インターフェイス及びコントローラをコントローラボードに取り
付けること(530)と、第1のメモリボードをコントローラに機能的に接続すること(540)と
、第2のメモリボードをコントローラボードに機能的に接続することとを含むことができ
、第1のメモリボード及び第2のメモリボードは各々、コントローラボードから別個に取り
外し可能である(550)。たとえば、インターフェイス108は、高速インターフェイスであっ
てもよく、コントローラボード102に取り付けられてもよい(530)。コントローラ110は、
コントローラボード102に取り付けられてもよい。コントローラボード102は、高速インタ
ーフェイス及びコントローラが取り付けられるPCBであってもよい。
【００７５】
メモリボード104aは、コントローラボード102に機能的に接続されてもよく(540)、メモ
リボード104bは、コントローラボードに機能的に接続されてもよい(550)。メモリボード1
04aは、メモリボード104bとは別個の異なるメモリボードであり、メモリボード104a及び1
04bは各々、コントローラボード102から別個に取り外し可能であってもよい。アセンブル
されたコントローラボード102、並びに2つのメモリボード104a及び104bは、共にデータス
トレージデバイス100を形成することができる。
【００７６】
1つの例示的な実施態様において、メモリボード104a及び104bは、コントローラボード1
02から切断されてもよく、他のメモリボードに取り付けられたフラッシュメモリチップを
有する2つの他のメモリボードに置き換えられてもよい。他のフラッシュメモリボードは
、メモリボード104a及び104b上のフラッシュメモリチップ118a及び118bと同じタイプのフ
ラッシュメモリチップ含むことができるか、又は他のフラッシュメモリボードは、異なる
タイプのフラッシュメモリチップを含むことができる。他のフラッシュメモリボードはま
た、メモリボード104a及び104bとは異なる数のフラッシュメモリチップを含むことができ
る。
【００７７】
1つの例示的な実施態様において、コントローラボード102に接続されたメモリボード10
4a及び104bを含むアセンブリされたデータストレージデバイス100は、コンピューティン
グデバイスのドライブベイ内に適合するように構成されるドライブベイフォームファクタ
を形成することができる。たとえば、図2及び図3を参照すると、図2のデータストレージ
デバイス100は、たとえばサーバ330のドライブベイスロット335又はサーバ340のドライブ
ベイスロット345のような、コンピューティングデバイスのドライブベイスロット内に適
合するように構成されてもよい。
【００７８】
図6を参照すると、図1のデータストレージデバイス100の例示的な実施態様は、データ
ストレージデバイス600として示される。データストレージデバイス600は、ホスト106と
のPCIeインターフェイス608、FPGAコントローラ610、DRAM 611、DC-DC変換器614、及びEE
PROM 616を含むコントローラボード102を含むことができる。データストレージデバイス
はまた、それぞれフラッシュメモリチップ618a及び618bを有するメモリボード104a及び10
4bを含むことができる。1つの実施態様において、フラッシュメモリチップ618a及び618b
は、NANDフラッシュメモリチップである。図1におけるように、FPGAコントローラ610は、
複数のチャネル112を使用してフラッシュメモリチップ618a及び618bを制御することがで
き、複数のチャネル112は各々1つ以上のフラッシュメモリチップ618a及び618bを制御する
ことができる。
【００７９】
図1に戻って参照すると、コントローラ110(例として、図4のFPGAコントローラ410、及
び図6のFPGAコントローラ610を含む)は、複数の異なるタイプのフラッシュメモリチップ1
18a及び118bのコマンド処理を制御し、フラッシュメモリボード104a及び104b上のフラッ
シュメモリチップ118a及び118bのタイプを自動的に認識し、異なるタイプのフラッシュメ
モリチップ118a及び118bを使用して受信したコマンドを実行するように配置され構成され
てもよい。コントローラ110は、コマンドを、ネイティブのフラッシュメモリチップのコ
マンドに変換することにより、異なるタイプのフラッシュメモリチップのコマンドを処理
するように構成されてもよい。コントローラがホストのコマンドを引き受け、必要に応じ
てホストのコマンドをネイティブのフラッシュメモリチップのコマンドに変換するので、
ホストは、ネイティブのフラッシュメモリチップのコマンドを考慮に入れる必要はない。
たとえば、ホストから受信された読み取りコマンドは、特定のベンダー製のフラッシュメ
モリチップで動作できるように、ホストが読み取りコマンドを別のコマンドに変換する必
要なく、コントローラ110によって処理されることができる。
【００８０】
図7を参照すると、プロセス700は、コントローラ110が異なるタイプのフラッシュメモ
リチップを自動的に認識して動作するように構成されてもよいことを示す。プロセス700
は、コントローラボードにおいて電力を受信することを含み、コントローラボードはホス
ト及びコントローラへのインターフェイスを含む(710)。コントローラは、複数の異なる
タイプのフラッシュメモリチップのコマンド処理を制御するように構成されてもよい(710
)。たとえば、コントローラボード102は、電源モジュール114において電力(Vin)を受信す
ることができる。1つの例示的な実施態様において、電源モジュール114は、1つ以上のDC-
DC変換器(たとえば、図6のDC-DC変換器614)を含むことができる。コントローラボード102
は、インターフェイス108及びコントローラ110を含むことができる。コントローラ110は
、複数の異なるタイプのフラッシュメモリチップ118a及び118bのコマンド処理を制御する
ように構成されてもよい。
【００８１】
プロセス700は、第1のメモリボードに固定された複数のフラッシュメモリチップの1つ
以上の特性について第1のメモリボードにクエリを行うことを含むことができる(720)。1
つの例示的な実施態様において、コントローラ110は、メモリボード104aに固定されたフ
ラッシュメモリチップ118aのデバイス特性についてメモリモジュール120aにクエリを行う
ように構成されてもよい(720)。デバイス特性は、たとえば、チップがSLCチップ又はMLC
チップのいずれであるか、チップがNAND又はNORチップのいずれであるか、チップセレク
トの数、ブロックの数、ブロックあたりのページの数、ページあたりのバイトの数、及び
チップの速度を含むことができる。メモリモジュール120aは、シリアルEEPROM(たとえば
、図6のEEPROM 620a)を含むことができる。
【００８２】
もう1つの例示的な実施態様において、コントローラ110は、フラッシュメモリチップ11
8aに直接クエリを行うように構成されてもよい。たとえば、コントローラ110は、各フラ
ッシュメモリチップ118aのデバイスIDページにクエリを行ってデバイス特性を決定するよ
うに構成されてもよい。
【００８３】
プロセス700は、フラッシュメモリチップの1つ以上の特性に基づいて第1のメモリボー
ド上のフラッシュメモリチップのタイプを自動的に認識することを含むことができる(730
)。たとえば、コントローラ110は、デバイス特性を使用して、メモリボード104a上のフラ
ッシュメモリチップ118aのタイプを自動的に認識することができる。フラッシュメモリチ
ップ118aは、SLC又はMLCデバイスであってもよい。フラッシュメモリチップ118aは、NAND
チップ、NORチップ、又はその他のタイプのチップであってもよい。フラッシュメモリチ
ップ118aはまた、いくつかの異なるフラッシュメモリの製造元のうちの1つによるもので
あってもよい。
【００８４】
プロセス700は、インターフェイスを使用してホストからコマンドを受信すること(740)
、及びフラッシュメモリチップを使用してコマンドを実行すること(750)を含むことがで
きる。たとえば、コントローラ110は、インターフェイス108を使用してホスト106からコ
マンドを受信し、フラッシュメモリチップ118aを使用してコマンドを実行するように構成
されてもよい。このように、コントローラ110は、任意のタイプのフラッシュメモリチッ
プで自動的に動作するように構成されてもよい。データストレージデバイス100の電源投
入時に、コントローラは、どのタイプのフラッシュメモリチップがメモリボード上にある
かを決定することができ、次いでホストから受信されたコマンドを実行するためにそれら
のメモリボードで動作を開始することができる。
【００８５】
1つの例示的な実施態様において、コントローラ110は、メモリボード上に存在すると決
定されるフラッシュメモリチップのタイプに基づいて1つ以上の構成アップデートを受信
することができる。たとえば、コントローラ110は、メモリボードの1つで特定のタイプの
フラッシュメモリチップが使用されていると決定することができ、この情報がホストに戻
されてレポートされてもよい。ホスト106は、1つ以上の構成アップデートをコントローラ
110に伝達することができ、コントローラ110は、図4の情報及び構成インターフェイスモ
ジュール458においてそれらのアップデートを受信して処理することができる。
【００８６】
1つの例示的な実施態様において、コントローラ110は、同じメモリボード上の異なるタ
イプのフラッシュメモリチップを自動的に認識するように構成されてもよい。たとえば、
メモリボード104a上のフラッシュメモリチップ118aの半数はSLC NANDフラッシュメモリチ
ップであってもよく、メモリボード104a上のフラッシュメモリチップ118sのもう一方の半
数はMLC NANDフラッシュメモリチップであってもよい。コントローラ110は、同じメモリ
ボード上であっても両方のそれらのタイプのフラッシュメモリチップのコマンドを実行す
るように構成されてもよい。
【００８７】
もう1つの例示的な実施態様において、コントローラ110は、2つのメモリボードがコン
トローラボード102から取り外されて、異なるタイプのフラッシュメモリチップの有無に
かかわらず新しいメモリボードに置き換えられる場合に認識するように構成されてもよい
。このように、コントローラ110は、ホスト106の特定のアプリケーションの必要性に適合
するようにデータストレージデバイス100を調整する際に高い柔軟性を実現することがで
きる。同じメモリボード上に異なるタイプのチップ及び/又は各メモリボード上に異なる
タイプのチップを含む、特定のタイプのフラッシュメモリチップは、ホスト106の特定の
アプリケーションに必要とされる所望の特性に適合するために使用されてもよい。
【００８８】
図8を参照すると、例示的なプロセス800は、コントローラが異なる電圧を有するフラッ
シュメモリチップで動作するように構成されることを示す。プロセス800は、コントロー
ラボードにおいて電力を受信することを含むことができ、コントローラボードはインター
フェイス及びコントローラを含み、コントローラは電源モジュールを含む。コントローラ
は、異なる電圧を有する複数のフラッシュメモリチップのコマンド処理を制御するように
構成される(810)。たとえば、コントローラボード102は、ホスト106から電力(Vin)を受信
するように構成されてもよく、コントローラボードは、コントローラが電源モジュール11
4を含むことができるかどうかにかかわらず、インターフェイス108及びコントローラ110
を含むことができる。コントローラ110は、異なる電圧を有する複数のフラッシュメモリ
チップのコマンド処理を制御するように構成されてもよい(810)。たとえば、コントロー
ラ110は、1.2V、1.8V、3.3V、又はその他の電圧で動作するフラッシュメモリチップを制
御するように構成されてもよい。
【００８９】
プロセス800は、第1のメモリボード上のフラッシュメモリチップの電圧を決定すること
(810)を含む。たとえば、コントローラ110は、コントローラボード102とメモリボード104
aとの間のコネクタ上のピンの信号レベルに基づいて、フラッシュメモリチップの電圧を
感知するように構成されてもよい。信号レベル(たとえば、論理ハイ及び/又は論理ローの
グループ化)は、フラッシュメモリチップ118aに必要とされる電圧を指示することができ
る。プロセス800は、フラッシュメモリチップの決定された電圧で動作するよう電源モジ
ュールを構成すること(830)を含む。たとえば、コントローラ110は、コントローラボード
102とメモリボード104aとの間のコネクタ上のピンにおいて感知された電圧に基づいて電
源モジュール114を構成するように構成されてもよい。1つの例示的な実施態様において、
電源モジュール114は、1つ以上のDC-DC変換器(たとえば、図6のDC-DC変換器614)を含む。
電源モジュール114は、感知された電圧で動作するように設定されてもよい。
【００９０】
プロセス800は、インターフェイスを使用してホストからコマンドを受信すること(840)
、及びフラッシュメモリチップを使用してコマンドを実行すること(850)を含むことがで
きる。たとえば、コントローラ110は、インターフェイス108を使用してホスト106からコ
マンドを受信し、フラッシュメモリチップ118aを使用してコマンドを実行するように構成
されてもよい。このように、メモリボード104a及び104bは、同じ電圧を持つチップを含む
ことができ、メモリボード104a及び104bはコントローラボード102に接続される。メモリ
ボード104a及び104bは、コントローラボード102から切断され、異なる電圧のフラッシュ
メモリチップを有する他のメモリボードに置き換えられてもよい。コントローラ110は、
その他のメモリボード上のフラッシュメモリチップに必要とされる異なる電圧を自動的に
認識して、異なる電圧レベルで動作するよう電源モジュール114を構成するように構成さ
れる。
【００９１】
本明細書において説明されるさまざまな技法の実施態様は、デジタル電子回路において
、又はコンピュータハードウェア、ファームウェア、ソフトウェア、若しくはその組み合
わせで実施されてもよい。実施態様は、コンピュータプログラム製品として、すなわち、
たとえばプログラム可能プロセッサ、コンピュータ、又は複数のコンピュータなどのデー
タ処理装置により実行するため、若しくはその動作を制御するための、たとえば機械可読
ストレージデバイスなどの情報担体において実体的に具現されるコンピュータプログラム
として、実施されてもよい。上記で説明される(1つ以上の)コンピュータプログラムのよ
うな、コンピュータプログラムは、コンパイル済み又は解釈済みの言語を含む任意の形態
のプログラミング言語で記述されてもよく、スタンドアロンのプログラムとして、又はモ
ジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境において使
用に適した他のユニットとしてなど、任意の形態で配置されてもよい。コンピュータプロ
グラムは、1つのサイトにおける1つのコンピュータ上、又は複数サイトに分散されて通信
ネットワークにより相互接続された複数コンピュータ上で実行されるように配置されても
よい。
【００９２】
方法ステップは、入力データを操作して出力を生成することにより機能を実行するよう
にコンピュータプログラムを実行している1つ以上のプログラム可能プロセッサによって
実行されてもよい。方法ステップはまた、たとえばFPGA(フィールドプログラマブルゲー
トアレイ)又はASIC(特殊用途向け集積回路)などの特殊用途論理回路によって実行されて
もよく、装置は特殊用途論理回路として実施されてもよい。
【００９３】
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用及び特殊用途
マイクロプロセッサ、及び任意の種類のデジタルコンピュータの1つ以上のプロセッサを
含む。一般に、プロセッサは、読み取り専用メモリ又はランダムアクセスメモリ、若しく
はその両方から命令及びデータを受信する。コンピュータの要素は、命令を実行するため
の少なくとも1つのプロセッサと、命令及びデータを格納するための1つ以上のメモリデバ
イスを含むことができる。一般に、コンピュータはまた、たとえば磁気、光磁気ディスク
、又は光ディスクなど、データを格納するための1つ以上の大容量ストレージデバイスを
含むことができるか、又は大容量ストレージデバイスとの間でデータを受信又は転送若し
くはその両方を行うように機能的に結合されてもよい。コンピュータプログラム命令及び
データを具現するために適した情報担体は、一例として、たとえばEPROM、EEPROM、及び
フラッシュメモリデバイスのような半導体メモリデバイス;たとえば内蔵ハードディスク
又はリムーバブルディスクのような磁気ディスク;光磁気ディスク;並びにCD-ROM及びDVD-
ROMディスクを含む、あらゆる形態の不揮発性メモリを含む。プロセッサ及びメモリは、
特殊用途論理回路によって補完されてもよいか、又は特殊用途論理回路に組み込まれても
よい。
【００９４】
ユーザとの対話に備えるため、実施態様は、情報をユーザに表示するための、たとえば
ブラウン管(CRT)又は液晶ディスプレイ(LCD)モニタのような表示デバイス、並びにキーボ
ード及び、たとえばマウス又はトラックボールのような、ユーザがコンピュータに入力を
行うことができるポインティングデバイスを有するコンピュータで実施されてもよい。そ
の他の種類のデバイスも、ユーザとの対話を行うために使用されてもよく;たとえば、ユ
ーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック
、又は触覚フィードバックのような任意の形態の知覚的フィードバックであってもよく;
ユーザからの入力は、音響、発語、又は触覚入力を含む任意の形態で受信されてもよい。
【００９５】
実施態様は、たとえばデータサーバのようなバックエンドコンポーネントを含むか、又
はたとえばアプリケーションサーバのようなミドルウェアコンポーネントを含むか、又は
たとえばユーザが実施態様と対話することができるグラフィカルユーザインターフェイス
又はWebブラウザを有するクライアントコンピュータのようなフロントエンドコンポーネ
ントを含むか、若しくはそのようなバックエンド、ミドルウェア、又はフロントエンドコ
ンポーネントの任意の組み合わせを含むコンピューティングシステムにおいて実施されて
もよい。コンポーネントは、たとえば通信ネットワークのようなデジタルデータ通信の任
意の形態又は媒体によって相互接続されてもよい。通信ネットワークの例は、ローカルエ
リアネットワーク(LAN)、及びたとえばインターネットのようなワイドエリアネットワー
ク(WAN)を含む。
【００９６】
説明された実施態様の特定の特徴が本明細書において説明されるように示されたが、当
業者には多数の修正、代替、変更、及び等価が考案されよう。したがって、添付の特許請
求の範囲は、すべてのそのような修正及び変更を、実施態様の範囲内に含まれるものとし
て扱うことが意図されていることを理解されたい。
【図１】
2015046175.tif 000003
【図２】
2015046175.tif 000004
【図３】
2015046175.tif 000005
【図４】
2015046175.tif 000006
【図５】
2015046175.tif 000007
【図６】
2015046175.tif 000008
【図７】
2015046175.tif 000009
【図８】
2015046175.tif 000010
【手続補正書】
【提出日】平成26年11月6日(2014.11.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第1(104a)のメモリボードと、
第2(104b)のメモリボードであって、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、複数のメモリチ
ップを備える、前記メモリボードと、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードに機能的に接続するように
配置され構成されるコントローラボード(102)とを備え、該コントローラボード(102)が、
高速インターフェイス(108)と、
該高速インターフェイス(108)を使用してホスト(106)からコマンドを受信し、該コマ
ンドを実行するように配置され構成されるコントローラ(110)とを備え、
該第1(104a)のメモリボード及び該第2(104b)のメモリボードが各々、該コントローラボ
ード(102)から別個に取り外し可能である、データストレージデバイス(100)。
【外国語明細書】
2015046175000001.pdf