JP5216743B2 - ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス - Google Patents

ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス Download PDF

Info

Publication number
JP5216743B2
JP5216743B2 JP2009242886A JP2009242886A JP5216743B2 JP 5216743 B2 JP5216743 B2 JP 5216743B2 JP 2009242886 A JP2009242886 A JP 2009242886A JP 2009242886 A JP2009242886 A JP 2009242886A JP 5216743 B2 JP5216743 B2 JP 5216743B2
Authority
JP
Japan
Prior art keywords
memory
storage device
cache
command
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009242886A
Other languages
English (en)
Other versions
JP2010049701A (ja
Inventor
ロイヤー,ロバート,ジュニア
フェーバー,ロバート
ガーネイ,ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JP2010049701A publication Critical patent/JP2010049701A/ja
Application granted granted Critical
Publication of JP5216743B2 publication Critical patent/JP5216743B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B82NANOTECHNOLOGY
    • B82YSPECIFIC USES OR APPLICATIONS OF NANOSTRUCTURES; MEASUREMENT OR ANALYSIS OF NANOSTRUCTURES; MANUFACTURE OR TREATMENT OF NANOSTRUCTURES
    • B82Y10/00Nanotechnology for information processing, storage or transmission, e.g. quantum computing or single electron logic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/22Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using ferroelectric elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Nanotechnology (AREA)
  • Chemical & Material Sciences (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Description

本発明は、ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイスに関する。
今日、プロセッサとキャッシュの大容量ストレージとの間のデータ・アクセスを促進させるために、大容量ストレージ装置に使用するいくつかのインターフェイスがある。ダイレクト・メモリにマップされたインターフェイスおよび標準ブロックにアドレス可能なインターフェイスは、大容量ストレージ装置に使用されるが、どちらもディスク・キャッシュには適していない。必要なことは、ディスク・キャッシュのためにシステム性能を改善することができるインターフェイスである。
本発明に関する主題は、明細書に添付した請求項において特に指摘され明確にクレームされる。しかしながら、本発明は、その目的、機能、および利点と共に、オペレーションの構成および方法の両方に関して、以下の詳細な説明を添付図面と合わせて読むことにより、最も良く理解することができる。
図面を単純化および明瞭化するために、図中に示された要素は、必ずしも同じ寸法で図示されていないことが理解されるであろう。例えば、いくつかの要素の寸法は、明瞭化するために他の要素に比べて拡大される。さらに、適切であると考えられる場合には、参照番号は、対応または類似する要素を示すために図中で繰り返される。
米国特許出願公開第2003/0061436号明細書
本発明に従って、プロセッサと大容量ストレージ装置との間のインターフェイスを有する装置を図示する。 本発明の特徴を強調するブロック図である。 5つのキャッシュ・ライン・ディスク要求を示す。 図3の要求に対するコマンド・シーケンスを示す。
以下の詳細な説明では、特定の多くの詳細事項が、本発明の完全な理解を提供するために述べられる。しかしながら、本発明は、これらの特定の詳細事項がなくても当技術の当業者によって実施されることが理解されるであろう。また、例えば、周知の方法、手順、コンポーネント、および回路については、本発明を不明瞭にしないために詳細には記述されない。
以下の記述および請求項において、用語「結合された」、「接続された」がそれらの派生語と共に用いられる。これらの用語は、互いに同義語として意図されていないことに理解しなければならない。むしろ、特定の実施例では、「接続された」は、2またはそれ以上の要素が互いに物理的または電気的な直接の接触にあることを示すために使用される。「結合された」もまた、2つ以上の要素が直接に物理的電気的に接触していることを意味する。しかしながら、「結合された」は、さらに、2つ以上の要素が互いに直接に接触していないが、互いに働き合うこと、または作用し合うことを意味する。
図1は、1またはそれ以上のアンテナから変調信号を受信または送信する送受信機14を含む装置10を示す。アナログ・フロント・エンド送受信機は、スタンド・アロンの無線周波数(RF)のアナログ集積回路、あるいは、混合モードの集積回路としてプロセッサ12と組み込まれてもよい。受信変調信号は、周波数ダウン変換され、フィルタされ、その後、ベースバンドのデジタル信号に変換される。プロセッサ12によって処理されるデジタル・データは、メモリ・モジュール上のストレージ装置20,22,・・・,24,26によってストレージ装置用インターフェイス16を介して転送される。ストレージ装置20,22,・・・,24,26は、キャッシュとして使用されてもよいことが理解されるであろう。ネットワーク・インタフェース・カード(NIC)は、インターフェイス16を介してデータ転送を促進し、1995年6月付のPCIローカル・バス仕様によって規定される周辺装置相互接続(PCI)バス、あるいはPCIエクスプレス・バスまたは他の高帯域バスのようなバスを組み込んでいてもよい。
実施例によって、また記述を容易にするために、図1に示されるメモリ・モジュールは、4つのストレージ装置20,22,24,26を具備する。ある実施例において、4つのストレージ装置の各々は、256のMバイトの格納容量を有するが、メモリ・モジュールを形成するストレージ装置のサイズも装置数も、本発明を制限するものではない。さらに、ストレージ装置20,22,24,26は、個別にパッケージにされてもよく、また1つのパッケージ内に複数のメモリ装置として積み重ねられてもよく、さらに別々のメモリ・ブロックとしてアドレス可能に集積されてもよい。ストレージ装置20,22,・・,24,26は、プロセッサ12によって処理されたデータ、および、管理上の目的のためにメモリ管理システムによって使用されるメタデータの両方を格納することができる。メモリ・モジュールは、データのみにアクセスするためのサポート、あるいは独立してアクセス可能なメタデータのみをあるいはデータ・プラス・メタデータにアクセスするためのサポートを有している。
メモリ・モジュール上のメモリ制御器28は、アドレスと制御バスを経由してストレージ装置に接続される。メモリ制御器28は、現在のコマンドを取り出し処理し、また、処理が終了すると、コマンド・ステータスは適切に設定される。メモリ制御器28は、さらにメモリ・マッピング・アルゴリズムを実行し、装置10の性能を改善する。ホスト制御装置30は、ホスト制御装置インターフェイス(HCI)18、メモリ制御器28、および、プロセッサ12と接続されることに注意すること。
ある実施例において、ストレージ装置20,22,24,26は、プロセッサ12に結合された大容量ストレージ・システム(図示せず)のための情報をキャッシュするのに適合した比較的大きい不揮発性ディスク・キャッシュ・メモリであってもよい。大容量ストレージ・システムは、例えば典型的には少なくとも約1ギガバイトの格納容量を有する。大容量ストレージ・システムは、電気機械式ハードディスク・メモリ、光ディスク・メモリ、または磁気ディスク装置であるが、本発明の範囲はこの点に制限されることはない。
ある実施例において、ストレージ装置20,22,・・・,24,26は、少なくとも約250メガバイトの格納容量を有する高分子メモリ(polymer memory)であっても、また強誘電性メモリ・セルであってもよく、各セルは少なくとも2つの導電性ライン間に位置する強誘電性高分子材料を含む。この実施例では、強誘電性高分子材料は、強誘電性分極可能な材料であってもよく、ポリフッ化ビニル、ポリフッ化エチレン、ポリ塩化ビニル、ポリエチレン塩化物、ポリアクリロニトリル、ポリアミド、それらの共高分子(copolymer)、またはそれらの組合せで構成された強誘電性高分子材料を含む。
別の実施例では、ストレージ装置20,22,・・・,24,26は、例えばプラスティック・メモリまたは抵抗性変化高分子メモリ(resistive change polymer memory)のような高分子メモリであってもよい。この実施例では、プラスティック・メモリは、アドレス・マトリックスのノードでサンドイッチにされた高分子メモリ材料の薄膜を含む。任意のノードにおける抵抗は、高分子メモリ材料の両端に印加される電位によって数百オームから数メガオームまで変化し、高分子材料中に流れる正負の電流が高分子材料の抵抗を変化させる。潜在的には、異なる抵抗レベルが、1セル当たり数ビットを格納し、また、データ密度は膜を積み重ねることによりさらに増加させられる。高分子メモリに加えて、キャッシュ・ストレージ装置は、NORまたはNAND型フラッシュまたはバッテリ・バックアップ型のDRAMであってもよい。
装置10のための本発明の実施例は、様々なアプリケーションで使用され、請求項に記載された主題はマイクロコントローラ、汎用マイクロプロセッサ、デジタル信号プロセサ(DSP)、縮小命令セット・コンピューティング(RISC)、複雑命令セット・コンピューティング(CISC)、他の電子部品中に組み入れられてもよい。特に、本発明は、スマート電話、コミュニケータおよび個人用デジタル情報処理端末(PDA)、医療またはバイテク機器、自動車用安全装置および保護装置、および、自動車用情報装置中に使用されてもよい。しかしながら、本発明の範囲は、これらの実施例に制限されることがないことを理解すべきである。
図2は、ホスト制御装置インターフェイス(HCI)18を示し、本実施例では、インターフェイス16を介してPCIエクスプレス・バス転送のためのアドイン・カードを有するが、他の実施例では他のバスを採用してもよいことに着目すべきである。一般に、HCI18中のメモリ・モジュールのハードウェアは、モジュール・ハードウェア信号が完了を処理するまで、プロセッサ12の関与なしに発行したソフトウェアの形成したコマンドのリストを処理する。メモリ・モジュール上のキャッシュ・ストレージ装置20,22,・・・,24,26に格納されたメモリ・データは、CPU命令によって直接にアクセスすることができない。キャッシュに格納されたデータは、例えば、ダイナミック・ランダム・アクセス・メモリ(DRAM)のようなシステム・メモリ32へ/からコピーされる。
メモリ・モジュールは、非同期に処理するコマンドのリストを与えるバス・マスタ装置である。コマンドは、コマンドに関連したデータを保持するために使用されるシステム・メモリ中のバッファを識別する。したがって、HCI18は、キャッシュ・ストレージ装置への直接のCPU命令アクセスなしにインターフェイス16を介して読出し/書込みデータを流す(ストリーミングする)ことができるメモリ・モジュール・プログラミング・インターフェイスを提供する。換言すれば、HCI18は、メモリ・ストレージ装置にアクセスする直接的なメモリ類似のインターフェイスではない。
本発明は、プロセッサと大容量ストレージ装置との間に位置するインターフェイス(HCI18)を含む。HCI18は、大容量ストレージ装置をサポートするために必要な、関連する機能およびサービスを提供するとともに、本発明の様々な特徴は、ハードウェアまたはソフトウェアのいずれかで実現される。様々な実施例では、HCI18は、記述された特徴のすべてまたはその一部を含む。
図2に示されるように、本発明は、ともに発行されるコマンドのグループを与える連続的な関連コマンド200、高分子強誘電性メモリ(PFEM)メモリ技術の特性をサポートすることを目指した極性マップ機構210,タイミング制御220およびダイナミック・アドレシング230、ディスク・キャッシング環境のパフォーマンスを最適化するマルチ制御コマンド240、リフレッシュ250、メモリ・ワードの読出し/書込み動作を提供するメタデータ・サイズおよびキャッシュ・ライン・サイズ260、データ・エラー270およびメモリ・エラーを報告するためのエラー訂正コード(ECC)訂正正280、および、システム性能を改善するための最適化された拡散ギャザー・リスト290のような機能を含む。
連続的な関連コマンド200
図2は、キャッシュ・アクセスのために設計されたHCI18の中に発行される連続的な関連コマンド200を含む。キャッシュ・ストレージ装置20,22,・・・,24,26からのデータを求めるユーザ・リクエストは、そのリクエストに応じるために複数のキャッシュ・ラインがアクセスされることを要求する。セット・アソシエィティブ・キャッシュ・マッピングのアルゴリズムにより、連続的なディスク・セクタに対する要求は、必ずしも連続的なキャッシュ・ラインをマップすることにはならない。(図3は、異なるキャッシュ・ラインへマップされる連続的なディスク・セクタを図示する。)
HCI18は、システム・メモリ中のコマンド・リスト構造、および、ともに発行されるコマンドのグループを許可するドアベル・レジスタ(図示せず)を定義する。各コマンドは、コマンドがアクティブかどうか示す少なくとも1ビット、および、次のコマンドへのポインタを含む。コマンド・チェーンのスタートであるポインタを受け取り、ドアベルが「鳴る」ことで、HCI18はコマンドをフェッチし、そのコマンドを処理し、非アクティブなコマンドが見つかるまで、次のコマンドへ進む。未処理リクエストが存在する場合、キャッシュ・ハードウェアが常にアクティブであることを保証するために、追加のコマンドがチェーンの終端に挿入されてもよい。コマンドが終了するときに、割込みが生成したかどうかをソフトウェアが明示することができるようにするための一層の最適化が成されてもよい。このプログラム可能な割込みビットによって、コマンド・リストは、関連するコマンドの1つのグループ当たり1つの割込みだけを生成するように構成することが可能となり、それはシステムのオーバーヘッドを最小限にする。
図4は、連続的な関連コマンド200に関連したハードウェアおよびソフトウェアの動きを示す。コマンドのリストは、例えば、コマンド402,404,406,408として示される。各コマンドは、そのコマンドがアクティブかどうかを示す少なくとも1ビット(ACTIVE SETと標記)、および、次のコマンドへのポインタを含む。このダイヤグラムは、コマンドがフェッチされかつ処理され、非アクティブなコマンド410が見つかるまで、次のコマンドへの進行継続することを示す。
極性マップ機構210
図2は、極性マップ210がHCI18内のPFEMメモリ技術の特性をサポートすることを示す。データは、選択されたワード線およびビット線上の電圧を制御することにより、キャッシュ・ストレージ装置20,22,・・・,24,26のいずれかのメモリ・セルに書き込まれる。メモリ・セルは、「物理的な0」状態または「物理的な1」状態のいずれかにプログラムされるが、メモリ制御器28(図1を参照)は、格納セルの読出しの物理値が1状態または0状態のいずれを表わしているかを解釈する。様々なメモリ技術は、格納状態の表現に対して異なる仕様を有しており、従って、メモリ制御器28は、極性が特定のアクセスに対してどのように扱われるか決めるソフトウェア制御装置極性管理メカニズムで設計される。ある実施例において、ソフトウェアは、各読出し/書込み動作で極性メカニズムを明示するが、代替の実施例では、極性メカニズムは、複数の動作制御を通じてグローバルな方式で適用される。3つの極性管理メカニズムは、各回のデータがメモリ・ワードに格納され、使用されるその極性がメモリ・ワードに対して前回使用されたものと反対となることを保証することを明示してもよい。
第1の極性管理メカニズムは「明示的極性制御」を提供しそれはソフトウェアが各書込みに対してTRUE/COMPLEMENT極性インディケータを明示し、メモリ制御器28が読出しに際して格納位置から極性状態を回復する。システム・メモリ中のデータは、常にTRUE極性表現中である。ソフトウェアは、COMPLEMENT極性でメモリ・モジュールに格納されたデータに対していかなる変換もする必要はない。メモリ制御器28がいかなるトグル操作を行なうかはソフトウェアに依存する。
「回復極性」のための別の極性管理メカニズムによって、メモリ制御器28は後続の書込み動作を行なうために読み込み動作から決定された「最新の」極性を使用することができる。
別の極性管理メカニズムとして、ソフトウェアは、アクセスに対して「自動極性」を明示してもよい。メモリ制御器28は、メモリ・モジュール、つまり各格納位置またはセルのグループの各ワードの極性状態を有する個別の揮発性極性マップ(RAM中に保持)を保持する。通常の実行時中に、メモリ制御器28は、読出し時の極性を決定するために極性マップの内容を使用し、書込み時にマップ中の極性をトグルする。極性の回復は、読出しに際しては必要ではない。ソフトウェアは、極性マップをロードすることが要求され、その後任意の自動極性メカニズムが使用される(この前に他のメカニズムが使用されてもよい)。システムがシャットダウンした場合においては、ソフトウェアは、極性マップをメモリ制御器から読み、それを他の非揮発性ストレージ装置媒体に保存することが求められる。
タイミング制御220
図2は、HCI18内のPFEMメモリ技術の特性をサポートするためのタイミング制御220を示す。格納された値にアクセスするために読出し/書込み動作の特定の側面に対して、異なるメモリ技術が異なる詳細なハードウェア・サイクル・タイミングを要求してもよい。例えば、遅延またはポーズが、セル極性の変化を回避するためにメモリへの読出しおよび読み書き中に、高分子メモリ技術に対して使用されてもよい。さらに、要求されたアドレスが、最新のメモリ動作と同じメモリ・セグメントにあるかどうかによって、遅延動作が行なわれてもよく、あるいは行なわれなくてもよい。あるメモリ技術は、ある時間期間アクセスされていない位置に対してより遅いタイミングを要求する一方、遅いタイミングあるいは速いタイミングのいずれかがメモリ位置への与えられた読出し/書込み動作に使用されてもよい。従って、メモリ制御器28は、ソフトウェア管理の下で、どのタイミングが読出し/書込み動作に使用されるべきかを動作毎に明示することができる。
ダイナミック・アドレシング230
図2は、HCI18内のPFEMメモリ技術の特性をサポートするためのダイナミック・アドレシング230を示す。キャッシュ・ストレージ装置20,22,・・・,24,26中の高分子メモリ装置のための読出しサイクルは、破壊的で、1つの方向に高分子フィルム材料中の電気的な双極子を極性化する。メモリの特定の物理アドレスに格納された情報は破壊的読出し動作中に失われるので、その情報はそのデータを回復するためにメモリに書き戻される。したがって、そのような破壊的読出しメモリから情報を読むために、読出しサイクルは、後続の書き戻し動作を含む。キャッシュ・ストレージ装置中のメモリのセグメント内には、読出しに続く書込みに脆弱性がある。その脆弱性は、その脆弱性が消失するまで書き戻しの実行を待機するような特性上のペナルティを課する。しかしながら、本発明に従って、HCI18は、読まれたデータを異なるセグメント中の位置に書き込まれることを許容するアルゴリズムを提供する。
従って、本発明の1つの特徴は、HCI18がすべてのアクセスのために2つのアドレス、すなわち読出しのためのあるアドレス、および、書込みのための別のアドレスを含むということである。このように、すべてのインターフェイス・レベルのアクセスは、理想的にはメモリの異なるセグメント中にある2つの位置上で動作する。読出し動作は、読取るためのアドレスにプラスしてデータを書き戻すブランクの位置を指定する。読出し動作は、ブランクを消費し、ブランクを作成する。書込み動作は、削除する(ブランクを作る)アドレス、および、書込みデータのための宛先である既にブランクのアドレスを指定する。
マルチ制御コマンド240
図2は、ディスク・キャッシング環境における性能を最適化するために、HCI18内で発行されるマルチ制御コマンド240を示す。図1を少し参照して、HCI18は、プロセッサ12によって発行されるコマンドとメモリ制御器28に接続されたM個のストレージ装置の動作との間のインターフェイスを提供する。HCI18は、ソフトウェアがメモリ・モジュール・カード上の複数のキャッシュ・ストレージ装置20,22,・・・,24,26へ同じ動作または異なる動作を出すことを可能にするマルチ制御コマンド機能を含む。マルチコマンド機能は、共通のデータを共有することができ、PCIエキスプレスを介して、より効率的に転送することができる1つのコマンド・パケットを許容し、それはカード上の各キャッシュ・ストレージ装置のためにフェッチされ、復号され、実行され、異なるメモリ動作を潜在的に提供する。
マルチ制御コマンド機能は、各キャッシュ・ストレージ装置が異なるアドレス位置を潜在的に異なる動作タイプでアドレスするのを許容する。実施例では、メモリ制御器28は、キャッシュ・ストレージ装置20内で破壊的読出し動作を含む読出しサイクルを行なう一方、キャッシュ・ストレージ装置22のような別の装置への書込み動作を同時に出す。このように、マルチコマンドは、異なるキャッシュ・ストレージ装置中のメモリ・ワードにアクセスする。複数のキャッシュ・ストレージ装置のアクセスが指定されるとき、各アクセスは一意の動作パラメータを具備する。ほとんどのメモリ・アクセスは、そのコマンドのための他の動作指定パラメータと共に、動作、ブロック・カウントおよび2つのブロック・アドレスを含む。
リフレッシュ250
図2は、HCI18内のPFEMメモリ技術の特性をサポートするリフレッシュ250を示す。HCI18は、時間に基づいたリフレッシュ・サイクルおよびサイクルに基づいたリフレッシュ・サイクルを認める。時間に基づいたリフレッシュは、格納データが周期的にアクセスされるという点でDRAMリフレッシュに類似する。しかしながら、DRAM装置は、漏れるコンデンサに注入するためにリフレッシュ・サイクルを提供するが、時間に基づいたリフレッシュは、キャッシュ・ストレージ装置20,22,・・・,24,26中の高分子メモリ装置が現在の状態に「刻印される(imprinted)」または膠着されるのを防止する。HCI18は、電源投入時にすべてのアドレスを経由する最初のループを提供し、規則的な時間間隔で通常のアクセス時間の読み出しが後続し、電源オン中にセルが刻印されないことを保証する。
要求されたアドレスから読まれた情報が同じアドレスへ書き込まれる場合、選択されたメモリ・セルと同じワード線またはビット線を共有する近隣の非選択メモリ・セルは、「外乱(disturbances)」を経験することがある。メモリ動作が比較的短い期間内に行なわれる場合、メモリ・セル中の高分子メモリ材料と電極材料との相互作用によって、分極という外乱になる。このように、メモリ・セグメント中の1つの位置へのアクセスは、そのセグメント内の他の位置への外乱を来たす結果となる。外乱のそれぞれは、メモリ中に格納された電荷を侵食し、N回の外乱の後に、その格納データは信頼できる読出し動作を保証するために読み出される。したがって、HCI18は、Nサイクル毎に挿入されるサイクルをベースとするリフレッシュ・アドレスを提供し、外乱の影響に対して境界を設け、かつセグメント内の各位置をN回の外乱に制限する。
メタデータ・サイズおよびキャッシュ・ライン・サイズ260
図2は、HCI18内のメモリ動作を提供するメタデータ・サイズおよびキャッシュ・ライン・サイズ260を示す。HCI18によって制御されるPFEMメモリは、メタデータおよび各キャッシュ・ラインのデータを自動的に読出し/書込みを行なう能力を有する。これを行なうために、ハードウェアは、キャッシュ・ラインおよびメタデータの両方のサイズを知らなければならない。ソフトウェア中のキャッシュ管理方法によって決定されるような最適なハードウェア性能を提供するサイズと共に、最小および最大のキャッシュ・ライン・サイズ、およびメタデータ・サイズを格納するために、1組のレジスタ(図示せず)がHCI18中に定義される。これらのサイズ値を使用して、HCI18は、最良のキャッシュ管理方法の必要性と一致するサイズ値を使用するようにプログラムされる。
データ・エラー270
図2は、HCI18内のエラー検出のためのデータ・エラー270を示す。データ破損は、PFEMに対する周期的なメモリ・リフレッシュ・サイクル中に生じる。PFEMメモリは、破壊的読出しメモリ技術であり。また、リフレッシュ・サイクル中に生じるあらゆるエラーもメモリを未知の状態に置くであろう。エラーを有するメモリ場所に対する読出し動作は、誤り訂正符号(ECC)によって検出されない不正なデータを潜在的に返すことがある。リフレッシュ・サイクル中に発見されないことからのエラーを防止するために、HCI18は、1組のレジスタ(図示せず)および割込みを定義し、メモリ制御器28がキャッシュ・ストレージ装置20,22,・・・,24,26を制御するソフトウェアに割込みをかけ、メモリ・リフレッシュ障害を報告することを可能にする。その後、ソフトウェアは、不良として対応するキャッシュ・ラインをマークし、システム動作を継続する。
ECC訂正280
図2は、HCI18内のエラー訂正のための誤り訂正符号(ECC)280を示す。ハードウェアは、データ・ストレージと検索の一部としてECC方法を実行する。ハードウェアは、すべての訂正のエラー・ログを保存し、メモリ・アクセス中に加えられたECC訂正の結果を明示的に決定するためにキャッシュ管理方法のソフトウェアによってアクセスされてもよい。訂正ログは、コマンドを出すことにより、その訂正ログをシステム・メモリへダウンロードする通常のコマンド・プロセスを通じてアクセスされる。訂正ログは、予想キャッシュ・ライン破損の早期指示としてキャッシュ管理方法によって使用されてもよく、適切な訂正ステップがデータ損失を回避するために取ることを可能にする。
最適化された分散ギャザー・リスト290
図2は、システム性能を改善するための最適化された分散ギャザー(SG:Scatter Gather)リスト290を示す。キャッシュ・ラインは、複数の4Kバイトの物理システム・メモリ・ページ(典型的なキャッシュ・ラインは8Kバイトの長さである)にまたがり、オペレーティング・システムは物理的に隣接するバッファを保証しないので、分散ギャザー・リストはキャッシュ・ラインからのデータをシステム・メモリ中へ正確にDMAを行なう。HCI18によって使用される分散ギャザー・メカニズムは、各コマンドが1つのキャッシュ・ライン分のデータを転送するという事実を利用するが、それは、最適化が分散ギャザー・リストに作成されることを可能にする。実施例では、ほとんどのエントリはより最悪のケースの要求に応じるためには必要ではなく、16Kバイトのキャッシュ・ラインは多くて5ページの物理システム・メモリ・ページにまたがる。HCI18は、コマンド中に所在する分散ギャザー・リストを定義し、システム・メモリ・ページが境界をまたぐ場合(4Kバイト境界)、次のエントリへ進む。定義されるような分散ギャザー・リストは、制御装置ロジック中でキャッシュのために単純化されることを可能にする。これは、制御装置のコストを削減し、さらに、個別の分散ギャザー・リストを得るために必要とされるキャッシュ制御器による特別のシステム・メモリのDMA要求を削除することによって、性能上の利点を提供する。追加のメモリ・アドレスが、キャッシュ・ラインのためのメタデータの位置を示すために提供され、これは、同じコマンド中のデータおよびメタデータの双方を更新することを自動的に許容する。
ディスク・キャッシュにアクセスする複雑さは、本発明の特徴を用いることにより緩和されることが明らかになった。ホスト制御インターフェイスは、例えば高分子メモリのような様々なメモリ技術を扱う特定の処理要求を考慮に入れる。
本発明のある特徴がここに図示され説明される一方、多くの修正、代替、変更および均等が当業者に想到されるであろう。したがって、添付の請求項は、そのような修正および変更すべてが本発明の思想の範囲内にカバーするために意図されているものであると理解される。
12 プロセッサ
14 RF送受信機
16 インターフェイス
18 ホスト制御装置インターフェイス(HCI)
20,22,24,26 ストレージ装置
28 メモリ制御器
30 ホスト制御装置
32 システム・メモリ

Claims (5)

  1. デュアル・アンテナに結合された送受信機を有するプロセッサと、
    前記プロセッサに結合され、非同期に処理するコマンドのリストを与えるバス・マスタ装置であるメモリ・モジュールであって、
    (a)メモリ制御器、
    (b)前記メモリ制御器に結合されるストレージ装置、および
    (c)前記プロセッサに結合され、インターフェイスを介して前記ストレージ装置へ発行されるリフレッシュ・サイクルを提供するホスト制御装置、を含むメモリ・モジュールと、から構成され、
    前記リフレッシュ・サイクルは、前記インターフェイスを介して前記ストレージ装置へ周期的に発行され、前記メモリ制御器は、前記リフレッシュ・サイクルに関連するエラーを検出し、前記ストレージ装置を制御するソフトウェアに割込みをかけ、かつメモリ・リフレッシュ障害を報告するために動作可能である、
    ことを特徴とするシステム。
  2. 前記コマンドのリストは、前記プロセッサによる関与なしに処理されることを特徴とする請求項1記載のシステム。
  3. 前記ストレージ装置によって前記メモリ・モジュール上に格納されたデータは、プロセッサ命令によって直接アクセス可能ではないことを特徴とする請求項1記載のシステム。
  4. 前記ストレージ装置によって前記メモリ・モジュール上に格納された前記データは、システム・メモリへおよびシステム・メモリからコピーされることを特徴とする請求項記載のシステム。
  5. 前記ストレージ装置は、高分子強誘電性メモリ(PFEM)装置であることを特徴とする請求項1記載のシステム。
JP2009242886A 2004-02-27 2009-10-21 ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス Expired - Fee Related JP5216743B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/788,717 2004-02-27
US10/788,717 US7328304B2 (en) 2004-02-27 2004-02-27 Interface for a block addressable mass storage system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006554114A Division JP2007522590A (ja) 2004-02-27 2005-02-02 ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス

Publications (2)

Publication Number Publication Date
JP2010049701A JP2010049701A (ja) 2010-03-04
JP5216743B2 true JP5216743B2 (ja) 2013-06-19

Family

ID=34887061

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006554114A Pending JP2007522590A (ja) 2004-02-27 2005-02-02 ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス
JP2009242886A Expired - Fee Related JP5216743B2 (ja) 2004-02-27 2009-10-21 ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006554114A Pending JP2007522590A (ja) 2004-02-27 2005-02-02 ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス

Country Status (6)

Country Link
US (1) US7328304B2 (ja)
JP (2) JP2007522590A (ja)
KR (4) KR20060120263A (ja)
MY (1) MY137842A (ja)
TW (1) TWI312466B (ja)
WO (1) WO2005093588A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7424564B2 (en) * 2004-03-23 2008-09-09 Qlogic, Corporation PCI—express slot for coupling plural devices to a host system
US7627716B2 (en) * 2004-11-15 2009-12-01 International Business Machines Corporation Method, system, and program for an adaptor to read and write to system memory
US20060282602A1 (en) * 2005-06-09 2006-12-14 Tse-Hsine Liao Data transmission device and method thereof
US7533215B2 (en) 2005-09-15 2009-05-12 Intel Corporation Distributed and packed metadata structure for disk cache
US7406560B2 (en) * 2006-06-21 2008-07-29 Intel Corporation Using multiple non-volatile memory devices to store data in a computer system
CN101364444B (zh) * 2008-02-05 2011-05-11 威盛电子股份有限公司 控制方法及运用该控制方法的存储器及处理系统
US8762661B2 (en) 2008-09-18 2014-06-24 Seagate Technology Llc System and method of managing metadata
US9128699B2 (en) * 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US8179731B2 (en) * 2009-03-27 2012-05-15 Analog Devices, Inc. Storage devices with soft processing
US20100287217A1 (en) * 2009-04-08 2010-11-11 Google Inc. Host control of background garbage collection in a data storage device
US8380909B2 (en) * 2009-04-08 2013-02-19 Google Inc. Multiple command queues having separate interrupts
US8433845B2 (en) 2009-04-08 2013-04-30 Google Inc. Data storage device which serializes memory device ready/busy signals
US20100262979A1 (en) * 2009-04-08 2010-10-14 Google Inc. Circular command queues for communication between a host and a data storage device
US8607089B2 (en) 2011-05-19 2013-12-10 Intel Corporation Interface for storage device access over memory bus
WO2013048467A1 (en) 2011-09-30 2013-04-04 Intel Corporation Generation of far memory access signals based on usage statistic tracking
EP3382556A1 (en) 2011-09-30 2018-10-03 INTEL Corporation Memory channel that supports near memory and far memory access
BR112015027741A2 (pt) * 2013-05-31 2017-07-25 Intel Corp cache coerente de sistema com capacidade para dispersar/reunir
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories
US9348697B2 (en) 2013-09-10 2016-05-24 Kabushiki Kaisha Toshiba Magnetic random access memory
US10339079B2 (en) 2014-06-02 2019-07-02 Western Digital Technologies, Inc. System and method of interleaving data retrieved from first and second buffers
US9934177B2 (en) * 2014-11-04 2018-04-03 Cavium, Inc. Methods and systems for accessing storage using a network interface card
US10504588B2 (en) * 2015-05-12 2019-12-10 Alacrity Semiconductors, Inc. Multi-level versatile memory
US10719236B2 (en) * 2015-11-20 2020-07-21 Arm Ltd. Memory controller with non-volatile buffer for persistent memory operations
TWI588824B (zh) * 2015-12-11 2017-06-21 捷鼎國際股份有限公司 加快在不連續頁面寫入資料之電腦系統及其方法
US10475524B2 (en) 2016-09-15 2019-11-12 Apple Inc. Recovery of data read from memory with unknown polarity
US10345885B2 (en) 2016-09-27 2019-07-09 Intel Corporation Power control of a memory device through a sideband channel of a memory bus
US11855898B1 (en) * 2018-03-14 2023-12-26 F5, Inc. Methods for traffic dependent direct memory access optimization and devices thereof
US11861224B2 (en) * 2021-10-26 2024-01-02 Western Digital Technologies, Inc. Data transfer management from host buffers

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3482509D1 (de) * 1984-12-28 1990-07-19 Ibm Geraet zum korrigieren von fehlern in speichern.
JPS6225516A (ja) * 1985-07-24 1987-02-03 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デコ−ド方法
JPS61105792A (ja) * 1985-10-04 1986-05-23 Toray Ind Inc 強誘電性高分子メモリ
JPS6395550A (ja) * 1986-10-13 1988-04-26 Canon Inc メモリ装置
JPS63265341A (ja) * 1987-04-23 1988-11-01 Nec Corp スキヤンパス制御装置
JP2688483B2 (ja) * 1987-09-04 1997-12-10 花王株式会社 磁気記録媒体
JP2869651B2 (ja) * 1988-04-04 1999-03-10 理化学研究所 強誘電性高分子メモリーの記録再生方法
JP2915945B2 (ja) * 1990-01-12 1999-07-05 株式会社アドバンテスト メモリ試験装置
JP3169599B2 (ja) * 1990-08-03 2001-05-28 株式会社日立製作所 半導体装置、その駆動方法、その読み出し方法
JPH07193603A (ja) * 1993-12-27 1995-07-28 Nippon Hoso Kyokai <Nhk> Msk変調器
US5438614A (en) * 1994-05-25 1995-08-01 U.S. Robotics, Inc. Modem management techniques
US6065146A (en) 1996-10-21 2000-05-16 Texas Instruments Incorporated Error correcting memory
US6055643A (en) * 1997-09-25 2000-04-25 Compaq Computer Corp. System management method and apparatus for supporting non-dedicated event detection
JP3720983B2 (ja) * 1998-06-23 2005-11-30 株式会社東芝 強誘電体メモリ
JP2000011670A (ja) * 1998-06-25 2000-01-14 Canon Inc 不揮発性メモリを有する機器
DE10196380T1 (de) * 2000-06-23 2003-10-16 Intel Corp Nicht-flüchtiger Cache
JP2002175697A (ja) * 2000-12-06 2002-06-21 Toshiba Corp 半導体記憶装置及びこれを用いた情報処理装置
JP3502065B2 (ja) * 2001-04-24 2004-03-02 株式会社三技協 乱数発生装置
JP3860436B2 (ja) * 2001-07-09 2006-12-20 富士通株式会社 半導体記憶装置
JP2003036251A (ja) * 2001-07-23 2003-02-07 Hitachi Ltd 信号処理装置
US20030061436A1 (en) * 2001-09-25 2003-03-27 Intel Corporation Transportation of main memory and intermediate memory contents
US20030058681A1 (en) * 2001-09-27 2003-03-27 Intel Corporation Mechanism for efficient wearout counters in destructive readout memory
JP4053347B2 (ja) * 2002-05-09 2008-02-27 松下電器産業株式会社 半導体記憶装置およびその記憶データ書き込み・読み出し方法
US7353329B2 (en) * 2003-09-29 2008-04-01 Intel Corporation Memory buffer device integrating refresh logic

Also Published As

Publication number Publication date
TWI312466B (en) 2009-07-21
US7328304B2 (en) 2008-02-05
KR100954731B1 (ko) 2010-04-23
KR100968998B1 (ko) 2010-07-09
WO2005093588A2 (en) 2005-10-06
TW200530831A (en) 2005-09-16
JP2007522590A (ja) 2007-08-09
JP2010049701A (ja) 2010-03-04
WO2005093588A3 (en) 2006-12-14
KR20080107488A (ko) 2008-12-10
US20050193164A1 (en) 2005-09-01
MY137842A (en) 2009-03-31
KR20090043011A (ko) 2009-05-04
KR20090051272A (ko) 2009-05-21
KR20060120263A (ko) 2006-11-24

Similar Documents

Publication Publication Date Title
JP5216743B2 (ja) ブロック・アドレスの可能な大容量ストレージ・システムのためのインターフェイス
US11914508B2 (en) Memory controller supporting nonvolatile physical memory
US20200233585A1 (en) Data relocation in hybrid memory
US10296249B2 (en) System and method for processing non-contiguous submission and completion queues
CN108549609B (zh) 作为传统大容量存储设备的替代的非易失性随机存取存储器(nvram)
US7193923B2 (en) Semiconductor memory device and access method and memory control system for same
WO2021108219A1 (en) Hardware management granularity for mixed media memory sub-systems
US20150052415A1 (en) Data storage device, operating method thereof and data processing system including the same
EP3494478A1 (en) Proactive corrective actions in memory based on a probabilistic data structure
US20230106125A1 (en) Memory with multi-mode ecc engine
CN114647375B (zh) 使装置具备增强型持久性存储器区存取能力
US11269715B2 (en) Systems and methods for adaptive proactive failure analysis for memories
US11204841B2 (en) Meta data protection against unexpected power loss in a memory system
US11822793B2 (en) Complete and fast protection against CID conflict
US11868661B2 (en) Row hammer attack alert
JP2019083082A (ja) フラッシュメモリモジュール及びフラッシュメモリ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121011

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130125

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

R150 Certificate of patent or registration of utility model

Ref document number: 5216743

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees