JP5930469B2 - エラー検出に応答するためのシステム及び方法 - Google Patents

エラー検出に応答するためのシステム及び方法 Download PDF

Info

Publication number
JP5930469B2
JP5930469B2 JP2012529213A JP2012529213A JP5930469B2 JP 5930469 B2 JP5930469 B2 JP 5930469B2 JP 2012529213 A JP2012529213 A JP 2012529213A JP 2012529213 A JP2012529213 A JP 2012529213A JP 5930469 B2 JP5930469 B2 JP 5930469B2
Authority
JP
Japan
Prior art keywords
command
memory controller
data
redrive device
link
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.)
Active
Application number
JP2012529213A
Other languages
English (en)
Other versions
JP2013505616A (ja
Inventor
カーシュット、ジョセフ、アレン
マックグローン、エリザベス
ブラックモン、ハーマン、リー
ハラデン、ライアン、スコット
Original Assignee
レノボ・エンタープライズ・ソリューションズ(シンガポール)プライベート・リミテッド
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 レノボ・エンタープライズ・ソリューションズ(シンガポール)プライベート・リミテッド filed Critical レノボ・エンタープライズ・ソリューションズ(シンガポール)プライベート・リミテッド
Publication of JP2013505616A publication Critical patent/JP2013505616A/ja
Application granted granted Critical
Publication of JP5930469B2 publication Critical patent/JP5930469B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1443Transmit or communication errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Retry When Errors Occur (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Pinball Game Machines (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Programmable Controllers (AREA)

Description

本発明は、一般的に、データ通信に関し、より具体的には、エラー検出に応答することに関する。
データの正常な格納及び伝送が、データ内のエラーによって妨げられることがある。多数の要因によりデータ破損が生じ得る。例えば、アルファ粒子又はノイズに起因する意図していないビット・フリップからソフト・エラーが生じることがある。別の例として、時間の経過に伴う温度又は電圧の変動に起因するドリフト又はスキューが、データ内にハード・エラーを生じさせることがある。
通常、エラーの検出を受けて、訂正行動(corrective action)が開始される。例えば、メモリ・コントローラは、伝送中にコマンドが破損したと判断した後、コマンドを再発行することができる。ある場合には、メモリ・コントローラは、リンクを介してコマンドをメモリ構造体に向けて再発行する前に、メモリ・コントローラとメモリ構造体の間のリンクのリトレインを開始することができる。
訂正行動は、幾つかの動作を実行するために、メモリ構造体の能力を制限することがある。例えば、リンクのリトレイン中、メモリ・コントローラは、読み書きコマンドをメモリ構造体に伝送するためにリンクを使用できないことがある。メモリ・コントローラが訂正行動を実行する時間を減らすことにより、通常の動作を実行するためのメモリ・コントローラの可用性を増大させることができる。可用性の増大が、効率の改善及びメモリ待ち時間の減少につながる。従って、メモリ・コントローラが、訂正行動に対して通常の動作に費やす時間の割合を増大させることが望ましい。
特定の実施形態において、エラー検出に応答するための方法が開示される。本方法は、第1のコマンドを第1のリドライブ(redrive)装置に向けて、第2のコマンドを第2のリドライブ装置に向けて発行することを含む。本方法はまた、メモリ・コントローラと第2のリドライブ装置との間での伝送エラーの検出に応じて、第2のコマンドを第2のリドライブ装置に向けて再発行することも含む。本方法は、第1のコマンドに応答して第1のリドライブ装置から受け取った第1のデータを第1のバッファに格納することをさらに含む。本方法は、再発行された第2のコマンドに応答して第2のリドライブ装置から受け取った第2のデータを第2のバッファに格納することを含む。本方法はまた、第2のデータを第1のデータと結合させることも含む。
別の実施形態において、エラー検出に応答する方法が開示される。本方法は、メモリ・コントローラとリドライブ装置との間のリンクのリトレインの開始に応じて、一定パターンを伝送することを含む。本法はまた、一定パターンを最小継続時間伝送した後に一定パターンの伝送を中断し、遷移のシーケンスを伝送することも含む。本方法は、遷移のシーケンスを伝送した後、一定パターンの伝送を再開することをさらに含む。
別の実施形態において、エラー検出に応答する方法が開示される。本方法は、第1のスクラブ・コントローラにおいて第1のスクラブ・コマンドを生成することを含む。本方法はまた、第2のスクラブ・コントローラにおいて第2のスクラブ・コマンドを生成することも含む。本方法は、メモリ・コントローラ・ポートにおいて第1のスクラブ・コマンドと第2のスクラブ・コマンドの発行を交互に行うことをさらに含む。
ここで本方法の実施形態を、添付図面を参照しながら単なる例証として説明する。
エラー検出に応答するためのシステムの第1の実施形態のブロック図である。 エラー検出に応答するためのシステムの第2の実施形態のブロック図である。 エラー検出に応答する方法の第1の実施形態のフロー図である。 エラー検出に応答するためのシステムの第3の実施形態のブロック図である。 エラー検出に応答する方法の第2の実施形態のフロー図である。 エラー検出に応答するためのシステムの第4の実施形態のブロック図である。 エラー検出に応答するためのシステムの第5の実施形態のブロック図である。 エラー検出に応答する方法の第3の実施形態のフロー図である。
図1は、エラー検出に応答するための、全体が100で示されるシステムの第1の実施形態の図である。このシステム100は、第1のリドライブ装置104と、第2のリドライブ装置106と、第1のバッファ108及び第2のバッファ110を有するメモリ・コントローラ102とを含む。メモリ・コントローラ102及び第1のリドライブ装置104は、第1の高速リンクを介して接続することができ、メモリ・コントローラ102及び第2のリドライブ装置106は、第2の高速リンクを介して接続することができる。各々の高速リンクは、2つの一方向高速リンクを指すことができる。例えば、メモリ・コントローラ102は、第1の高速リンクのサウスバウンド・リンクを介して第1のリドライブ装置104に伝送することができ、第1のリドライブ装置104は、第1の高速リンクのノースバウンド・リンクを介してメモリ・コントローラ102に伝送することができる。
一般的に、メモリ・コントローラ102は、単一のコマンドを2つのコマンド(例えば、第1のコマンド112及び第2のコマンド114)に分割することができる。第1のコマンド112は第1のリドライブ装置102に伝送することができ、第2のコマンド114は第2のリドライブ装置106に伝送することができる。単一のコマンドを完了するために、第1のコマンド112及び第2のコマンド114の両方を実行することができる。メモリ・コントローラ102は、第1のコマンド112の伝送に応答して第1のリドライブ装置104から正常なデータ(good data)(例えば、第1のデータ116)を受け取り、かつ、第2のコマンド114の伝送に応答してメモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラー118を検出することができる。単一コマンドへの応答は、第1のコマンド112及び第2のコマンド114の両方に応答して正常なデータを受け取らなければ、完了することができない。第1のデータ116を破棄し、第1のコマンド112及び第2のコマンド114の両方を再伝送する代わりに、メモリ・コントローラ102は、第1のコマンド112に応答して受け取った正常なデータ(例えば、第1のデータ116)を格納することができる。メモリ・コントローラ102は、第2のコマンド114(例えば、再発行された第2のコマンド(120)を第2のリドライブ装置106に向けて再発行することができる。
再発行された第2のコマンド120に応答して正常なデータ(第2のデータ122)を受け取った後、メモリ・コントローラは、第1のデータ116と第2のデータ122を結合させて、単一コマンドに応答した同期された完全なデータを生成する。両方のコマンドの代わりに第2のコマンド114だけを再発行することにより、幾つかのエラーを防ぐことができる。例えば、第1のコマンドの実行が、メモリ構造体内のデータを変更することがある。第1のコマンド112の再発行により、第1のデータ116において取り出された最初のデータの代わりに、メモリ構造体内の変更されたデータの取り出しが開始されることがある。
再発行された第2のコマンド120に応答して受け取った第2のデータ122と結合させるために第1のデータ116を保存することにより、実行される訂正行動の複雑さを軽減することができる。訂正行動の複雑さを軽減することにより、訂正行動を実行するのに費やされる時間を減らし、通常のプロセスを実行するのにメモリ・コントローラを使用できる時間を増やすことができる。訂正行動を実行するのに費やされる時間に対して、通常のプロセスを実行するのに費やされる時間の割合を増やすことにより、メモリ・コントローラ102の効率を改善し、メモリ待ち時間を減らすことができる。
メモリ・コントローラ102は、第1のコマンド112を第1のリドライブ装置104に向けて、第2のコマンド114を第2のリドライブ装置106に向けて発行するように構成することができる。メモリ・コントローラ102は、メモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラーの検出に応答して、第2のコマンド(例えば、再発行された第2のコマンド120)を第2のリドライブ装置106に向けて再発行するように構成することができる。メモリ・コントローラ102は、第1のコマンド112に応答して第1のリドライブ装置104から受け取った第1のデータ116を第1のバッファ108に格納するように構成される。メモリ・コントローラ102は、再発行された第2のコマンド120に応答して第2のリドライブ装置106から受け取った第2のデータ122を第2のバッファ110に格納するように構成することができる。メモリ・コントローラ102は、第2のデータ122を第1のデータ116と結合させるように構成される。
メモリ・コントローラ102は、第1のコマンド112を第1のリドライブ装置104に向けて発行することができる。第1のリドライブ装置104は、第1のコマンド112をデコードし、再フォーマットして、第1のリドライブ装置104に接続された第1のメモリ構造体(図示せず)に送ることができる。例えば、第1のコマンド112をデコードし、再フォーマットした後、第1のリドライブ装置104は、第1のコマンド112を第1のメモリ構造体に伝送することができる。
第1のリドライブ装置104から第1のコマンド112を受け取ることに応答して、第1のメモリ構造体は、第1のデータ116を第1のリドライブ装置104に伝送することができる。第1のリドライブ装置104は、第1のデータ116を再フォーマットし、第1の高速リンクのノースバウンド・リンクを介して、再フォーマットされた第1のデータ116をメモリ・コントローラ102に伝送することができる。第1のデータ116を受け取ることに応答して、メモリ・コントローラ102は、第1のデータ116を第1のバッファ108に格納することができる。第1のデータ116を第1のバッファ108に格納することにより、メモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラー118の検出に応答して訂正行動を実行する間、メモリ・コントローラ102が正常なデータを保存することが可能になる。
伝送エラー118を検出することは、第2のリドライブ装置106が、メモリ・コントローラ102から受け取った第2のコマンド114内の伝送エラー118を検出することを含むことができる。例えば、第2のリドライブ装置106は、巡回冗長検査(CRC)エラーに関してメモリ・コントローラ102から受け取ったコマンドをチェックする論理を含むことができる。CRCチェックは、第2のサウスバウンド・リンクを介して、メモリ・コントローラ102から受け取った第2のコマンド114がCRCエラー(例えば、伝送エラー118)を含むことを示し得る。
伝送エラー118を検出した後、第2のリドライブ装置106は、メモリ・コントローラ102から受け取った第2のコマンド・ストリーム内の第2の後続コマンドを削除し(drop)、警告状態フレーム150をメモリ・コントローラ102に戻すことができる。第2のコマンド・ストリーム内の第2の後続コマンドを削除することは、第2のリドライブ装置106が、第2のコマンド114又は第2の後続コマンドを第2のメモリ構造体(図示せず)に対してリドライブしないことを含むことができる。
第2のリドライブ装置106は、伝送エラー118の検出に応答して、第2の高速リンクのノースバウンド・リンクを介して、警告状態フレームのストリームをメモリ・コントローラ102に戻すことができる。メモリ・コントローラ102は、受け取った警告状態フレームを用いて、メモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラー118を検出することができる。例えば、メモリ・コントローラ102は、伝送エラー118が第2の高速リンクのサウスバウンド・リンク内で生じたと判断することができる。この判断は、第2の高速リンクのノースバウンド・リンクを介した警告状態フレーム150の受信に基づくことができる。
伝送エラー118の検出に応答して、メモリ・コントローラ102は、第1のリドライブ装置104及び第2のリドライブ装置106の両方に向けた後続コマンドの発行を停止し、メモリ・コントローラ102と第2のリドライブ装置106との間のリンクにおける訂正行動を実行することができる。例えば、警告状態フレーム150を受け取った後、メモリ・コントローラ102は、第2の高速リンクのリンク・リセットを発行することができる。リンク・リセットにより、警告状態フレームの第2の高速リンクをクリアすることができる。第2の高速リンクがクリアされた後、第2の高速リンクを、いつでも第2のコマンド・ストリームを再発行できる状態にすることができる。メモリ・コントローラ102は、第2の高速リンクのサウスバウンド・リンクを介して、第2のコマンド(例えば、再発行された第2のコマンド120)を第2のリドライブ装置106に向けて再発行することができる。
メモリ・コントローラ102は、第2のコマンド・ストリームを第2のリドライブ装置106に向けて再発行し、第2のリドライブ装置106が、第2のコマンド・ストリームを第2のメモリ構造体に対してリドライブするのを可能にすることができる。例えば、メモリ・コントローラ102は、伝送エラー118の検出に応答して、第2のリドライブ装置106が第2のコマンド・ストリームを終了した時点からの第2のコマンド・ストリームを再発行することができる。メモリ・コントローラ102は、第2のコマンド・ストリームを第2のリドライブ装置106に向けて再発行し、再発行された第2のコマンド120から開始させることができる。
第2のリドライブ装置106は、再発行された第2のコマンド120を第2のメモリ構造体に対してリドライブすることができる。再発行された第2のコマンド120の受信に応答して、第2のメモリ構造体は、第2のデータ122を取り出し、第2のデータ122を第2のリドライブ装置106に伝送することができる。第2のリドライブ装置106は、第2のデータ122をメモリ・コントローラ102に伝送することができる。メモリ・コントローラ102は、第2のデータ122を第2のバッファ110内に格納し、第1のバッファ108にある第1のデータ116と結合させる。伝送エラー118が検出されたとき、コマンドを両方のリドライブ装置に向けて再発行する代わりに、第1のデータ116を格納することによって、メモリ・コントローラ102が第1のコマンド112を第1のリドライブ装置104に向けて再発行することにより生じ得るエラーを回避することが可能になる。例えば、第1のコマンド112の実行が、メモリ構造体内の元のデータを変更している可能性がある。
第1のデータ116として取り出された元のデータの代わりに、第1のコマンド112の再発行が、メモリ構造体内の変更されたデータの取り出しを開始することがある。第1のデータ116を保存して、再発行された第2のコマンド120に応答して受け取った第2のデータ122と結合させることにより、実行される訂正行動の複雑さを軽減することができる。訂正行動の複雑さを軽減することにより、訂正行動を実行するのに費やされる時間を減らし、通常プロセスを実行するのにメモリ・コントローラ102を使用できる時間を増やすことができる。訂正行動を実行するのに費やされる時間に対する、通常プロセスを実行するのに費やされる時間の割合を増やすことにより、メモリ・コントローラ102の効率を改善し、メモリ待ち時間を減らすことができる。
図2を参照すると、エラー検出に応答するための、全体が200で示されるシステムの別の実施形態の図が示される。このシステム200は、図1で参照したシステム100内に見出される多くの要素を含み、ここで同様の要素は同じ参照番号を有する。
動作中、メモリ・コントローラ102は、第1のコマンド112を第1のリドライブ装置104に向けて発行することができる。第1のリドライブ装置104は、第1のコマンド112をデコードし、再フォーマットして第1のメモリ構造体(図示せず)に送ることができる。第1のメモリ構造体を第1のリドライブ装置104に接続することができる。例えば、第1のコマンド112をデコードし、再フォーマットした後、第1のリドライブ装置104は、第1のコマンド112を第1のメモリ構造体に伝送することができる。
第1のリドライブ装置104から第1のコマンド112を受け取ることに応答して、第1のメモリ構造体は、第1のデータ116を第1のリドライブ装置104に伝送することができる。第1のリドライブ装置104は、第1のデータ116を再フォーマットし、第1の高速リンクのノースバウンド・リンクを介して、再フォーマットされた第1のデータ116をメモリ・コントローラ102に伝送することができる。第1のデータ116を受け取ることに応答して、メモリ・コントローラ102は、第1のデータ116を第1のバッファ108に格納することができる。第1のデータ116を第1のバッファ108に格納することにより、メモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラー118の検出に応答して訂正行動を実行する間、メモリ・コントローラ102が正常なデータ(即ち、第1のデータ116)を保存することが可能になる。
伝送エラー118を検出することは、第2のリドライブ装置106が、メモリ・コントローラ102から受け取った第2のコマンド114内の伝送エラー118を検出することを含むことができる。例えば、第2のリドライブ装置106は、CRCエラーに関してメモリ・コントローラ102から受け取ったコマンドをチェックする論理を含むことができる。CRCチェックは、第2のサウスバウンド・リンクを介してメモリ・コントローラ102から受け取った第2のコマンド114がCRCエラー(例えば、伝送エラー118)を含むことを示すことができる。
伝送エラー118を検出した後、第2のリドライブ装置106は、メモリ・コントローラ102から受け取った第2のコマンド・ストリーム内の第2の後続コマンドを削除することができる。第2のリドライブ装置106はさらに、警告状態フレームをメモリ・コントローラ102に戻すことができる。第2のコマンド・ストリーム内の第2の後続コマンドを削除することは、第2のリドライブ装置106が、第2のコマンド114又は第2の後続コマンドを第2のメモリ構造体(図示せず)に対してリドライブしないことを含むことができる。
第2のリドライブ装置106は、警告状態フレーム160のストリームをメモリ・コントローラ102に戻すことができる。伝送エラー118の検出に応答して、第2の高速リンクのノースバウンド・リンクを介して、フレーム160を戻すことができる。メモリ・コントローラ102は、受け取った警告状態フレーム160を用いて、メモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラー118を検出することができる。例えば、メモリ・コントローラ102は、伝送エラー118が第2の高速リンクのサウスバウンド・リンク内で生じたと判断することができる。この判断は、第2の高速リンクのノースバウンド・リンクを介した警告状態フレームの受信に基づくことができる。
伝送エラー118の検出に応答して、メモリ・コントローラ102は、第1のリドライブ装置104及び第2のリドライブ装置106の両方に向けた後続コマンドの発行を停止することができる。メモリ・コントローラ102と第2のリドライブ装置106との間の第2の高速リンクにおける訂正行動を実行することができる。例えば、警告状態フレーム160を受け取った後、メモリ・コントローラ102は、第2の高速リンクのリンク・リセットを発行することができる。リンク・リセットは、警告状態フレーム160の第2の高速リンクをクリアすることができる。さらに、第2の高速リンクを、いつでも第2のコマンド・ストリームを再発行できる状態にすることができる。メモリ・コントローラ102は、第2の高速リンクのサウスバウンド・リンクを介して、第2のコマンド(例えば、再発行された第2のコマンド120)を第2のリドライブ装置106に向けて再発行することができる。
メモリ・コントローラ102は、第2のコマンド・ストリームを第2のリドライブ装置106に向けて再発行し、第2のリドライブ装置106が、第2のコマンド・ストリームを第2のメモリ構造体に対してリドライブするのを可能にすることができる。例えば、メモリ・コントローラ102は、伝送エラー118の検出に応答して第2のリドライブ装置106が第2のコマンド・ストリームを終了した時点からの第2のコマンド・ストリームを再発行することができる。メモリ・コントローラ102は、第2のコマンド・ストリームを第2のリドライブ装置106に向けて再発行し、第2のコマンド(例えば、再発行された第2のコマンド120)から開始することができる。
特定の実施形態において、第2のリドライブ装置106は、再発行された第2のコマンド120を第2のメモリ構造体に対してリドライブすることができる。再発行された第2のコマンド120の受信に応答して、第2のメモリ構造体は、第2のデータ122を取り出し、第2のデータ122を第2のリドライブ装置106に伝送することができる。第2のリドライブ装置106は、第2のデータ122をメモリ・コントローラ102に伝送することができる。メモリ・コントローラ102は、第2のデータ122を第2のバッファ110内に格納し、第1のバッファ108にある第1のデータ116と結合させることができる。
伝送エラー118が検出される前に、第2のコマンドの組をメモリ・コントローラ102からリドライブ装置に向けて発行することができる。例えば、メモリ・コントローラ102は、第1のコマンド112の発行後に、第3のコマンド162を第1のリドライブ装置に向けて発行することができる。メモリ・コントローラ102は、第2のコマンド114の発行後に、第4のコマンド166を第2のリドライブ装置106に向けて発行することができる。メモリ・コントローラ102は、第3のコマンド162に応答して第3のデータ164を受け取ることができる。第3のデータ164は、第1のバッファ108に格納することができる。しかしながら、第2のリドライブ装置106から警告状態フレーム160を受け取った後、メモリ・コントローラ102は、第4のコマンド(例えば、再発行された第4のコマンド170)を第2のリドライブ装置106に向けて発行することができる。メモリ・コントローラ102は、再発行された第4のコマンド170に応答して第4のデータ172を受け取ることができる。メモリ・コントローラ102は、第4のデータ172を第2のバッファ110に格納して、第1のバッファ108にある第3のデータ164と結合させることができる。特定の実施形態において、第1のバッファ108は、幾つかのバッファを含む。第1のデータ116は、第1のバッファの幾つかのバッファのうちの1つの中に格納することができ、第3のデータ164は、第1のバッファの幾つかのバッファのうちの別のものの中に格納することができる。
伝送エラー118が検出されたときに両方のリドライブ装置に向けてコマンドを再発行する代わりに、第1のデータ116及び第3のデータ164を格納することによって、メモリ・コントローラ102が第1のコマンド112及び第3のコマンド162を第1のリドライブ装置104に向けて再発行することにより生じ得るエラーを回避することが可能になる。例えば、第1のコマンド112の実行が、メモリ構造体内の元のデータを変更している可能性がある。第1のコマンド112の再発行により、第1のデータ116内で取り出されたような元のデータの代わりに、メモリ構造体内の変更されたデータを取り出すことができる。第1のデータ116を保存して、再発行された第2のコマンド120に応答して受け取った第2のデータ122と結合させることにより、実行される訂正行動の複雑さを軽減することができる。訂正行動の複雑さを軽減することにより、訂正行動を実行するのに費やされる時間を減らし、通常プロセスを実行するのにメモリ・コントローラ102を使用できる時間を増やすことができる。訂正行動を実行するのに費やされる時間に対する、通常プロセスを実行するのに費やされる時間の割合を増やすことにより、メモリ・コントローラ102の効率を改善し、メモリ待ち時間を減らすことができる。
図3は、エラー検出に応答するための、全体が300で示される方法の第1の実施形態のフロー図である。特定の実施形態において、方法300は、図1及び図2のシステムのいずれか、又はそれらの任意の組合せによって実行される。方法300は、ブロック302において、第1のコマンドを第1のリドライブ装置に向けて発行し、第2のコマンドを第2のリドライブ装置に向けて発行することを含むことができる。例えば、図1及び図2のメモリ・コントローラ102は、第1のコマンド112を第1のリドライブ装置104に向けて発行し、第2のコマンド114を第2のリドライブ装置106に向けて発行することができる。方法300はまた、ブロック304において、メモリ・コントローラと第2のリドライブ装置との間の伝送エラーの検出に応答して、第2のコマンドを第2のリドライブ装置に向けて再発行することを含むこともできる。例えば、図1及び図2のメモリ・コントローラ102は、メモリ・コントローラ102と第2のリドライブ装置106との間の伝送エラーの検出に応答して、第2のコマンド120を第2のリドライブ装置106に向けて再発行することができる。
方法300はさらに、ブロック306において、第1のコマンドに応答して第1のリドライブ装置から受け取った第1のデータを第1のバッファに格納することを含むことができる。例えば、図1及び図2のメモリ・コントローラ102は、第1のコマンド112に応答して第1のリドライブ装置104から受け取った第1のデータ116を第1のバッファ108に格納することができる。方法300は、ブロック308において、再発行された第2のコマンドに応答して第2のリドライブ装置から受け取った第2のデータを第2のバッファに格納することを含むことができる。例えば、メモリ・コントローラ102は、再発行された第2のコマンド120に応答して第2のリドライブ装置106から受け取った第2のデータ122を第2のバッファ110に格納することができる。方法300はまた、ブロック310において、第2のデータを第1のデータと結合させることを含むことができる。例えば、図1及び図2のメモリ・コントローラ102は、第2のデータ122を第1のデータ116と結合させることができる。
図4は、エラー検出に応答するための、全体が400で示されるシステムの別の実施形態の図である。この実施形態は、前述のようにリンク・リセットに応答してリンクをクリアする方法として用いることができる。システム400は、メモリ・コントローラ402及びリドライブ装置404を含む。メモリ・コントローラ402及びリドライブ装置404は、リンク406を介して接続することができる。リンク406は、2つの一方向の高速リンクを含むことができる。例えば、メモリ・コントローラ402は、リンク406のサウスバウンド・リンクを介してリドライブ装置404に伝送することができ、リドライブ装置404は、リンク406のノースバウンド・リンクを介してメモリ・コントローラ402に伝送することができる。
一般的に、メモリ・コントローラ402は、信号パターンをリドライブ装置404に伝送して、メモリ・コントローラ402がリンクのリトレインを開始すること407を示すことができる。リンク・リトレイン行動(link retrain action)を示す信号パターンの伝送を普通のデータ伝送と区別するために、信号パターンは、遷移がない一定のパターンとすることができる。例えば、メモリ・コントローラ402は、デジタル定数1と等しい信号を複数の周期にわたって伝送することができる。この信号は、デジタル定数ゼロと等しい信号への遷移を含まない。
メモリ・コントローラ402及びリドライブ装置404は、アライメントを維持するために、信号パターン内の遷移に依存する。メモリ・コントローラ402及びリドライブ装置404は、一定パターンの伝送中に遷移を受け取ることなしに、アライメントを維持することはできない。例えば、一定パターン408の伝送により、メモリ・コントローラ402及びリドライブ装置404が、アライメントを失うこと又は更なるアライメント不整(misalignment)が生じることがある。更なるアライメント不整の結果、アライメントを取り戻すために後の段階でより多くのプロセスを実行するアライメント・ロッキング・アルゴリズムがもたらされ得る。
一定パターンの伝送を中断し409、一定パターンの伝送416を再開する414前に遷移412のシーケンス410を伝送することにより、リンク・リトレイン行動中、メモリ・コントローラ402及びリドライブ装置404がアライメントを維持することが可能になる。アライメントは、伝送される遷移412の数が許容可能な最小遷移密度を満たすときに維持され得る。リンク・リトレイン行動中にアライメントを維持することは、リンク・リトレイン行動の後の段階で、メモリ・コントローラ402及びリドライブ装置404がより低効率のアライメント・ロッキング・アルゴリズムを用いることを可能にする。例えば、比較的ゆっくりと実行することができるが、低減された電力、空間及び製造要件を有するアライメント・ロッキング・アルゴリズムを選択することができる。アライメントが失われていないので、このアライメント・ロッキング・アルゴリズムは、より少ないプロセスを実行して、アライメントを再確認すること又はアライメントを再開することができる。アライメント・ロッキング・アルゴリズムが実行するプロセス数を減らすことにより、リンク・リトレイン行動全体の待ち時間を減らすことができる。リンク・リトレイン行動の待ち時間を減らすことで、メモリ・コントローラ402の全体的効率を改善することができ、サイズの縮小によりコストが低くなる。
メモリ・コントローラ402は、メモリ・コントローラ402とリドライブ装置404との間のリンクのリトレインの開始407に応答して、一定パターンを伝送するように構成することができる。メモリ・コントローラ402は、遷移412のシーケンス410を伝送するために、一定パターンが最小継続時間伝送された後に、一定パターンの伝送408を中断して409、遷移412のシーケンス410を伝送するように構成することができる。メモリ・コントローラ402は、遷移412のシーケンス410を伝送した後、一定パターンの伝送416を再開414するように構成することができる。
メモリ・コントローラ402は、コマンド・ストリームをリドライブ装置404に向けて発行することができる。例えば、リドライブ装置404は、リンク406のサウスバウンド・リンクを介して、メモリ・コントローラ402からコマンド・ストリームを受け取ることができる。リドライブ装置404は、コマンド・ストリームをデコードし、再フォーマットして、リドライブ装置404に接続されたメモリ構造体(図示せず)に送ることができる。メモリ構造体は、コマンド・ストリームに応答してデータを取り出し、そのデータをリドライブ装置404に伝送することができる。リドライブ装置404は、データを再フォーマットし、再フォーマットされたデータをメモリ・コントローラ402に伝送することができる。例えば、リドライブ装置404は、データを再フォーマットした後、リンク406のノースバウンド・リンクを介して、そのデータをメモリ・コントローラ402に伝送することができる。
サウスバウンド・リンク及びノースバウンド・リンクの両方における通信を、エラーに関してチェックすることができる。リドライブ装置404によって、サウスバウンド・リンクを介して受け取ったコマンド・ストリーム上のエラー検出を実行することができる。例えば、リドライブ装置404は、CRCチェックを実行する論理を含むことができる。CRCチェックは、コマンド・ストリーム内の特定のコマンドが単一ビット・エラー(即ち、伝送エラー)を含むと判断することができる。伝送エラーを検出した後、リドライブ装置404は、コマンド・ストリーム内の全ての後続コマンドを削除して、警告状態フレームをメモリ・コントローラ402に戻すことができる。
特定の一実施形態において、リドライブ装置404は、伝送エラーに応答して、ノースバウンド・リンクを介して警告状態フレームのストリームをメモリ・コントローラ402に戻す。メモリ・コントローラ402は、受け取った警告状態フレームを用いて、メモリ・コントローラ402とリドライブ装置404との間での伝送エラーを検出することができる。例えば、メモリ・コントローラ402は、ノースバウンド・リンクを介した警告状態フレームの受信に基づいて、伝送エラーがリンク406のサウスバウンド・リンク内で発生したと判断することができる。
伝送エラーの検出に応答して、メモリ・コントローラ402は、訂正行動を実行することができる。例えば、警告状態フレームを受け取った後、メモリ・コントローラ402は、リンク406のリンク・リセットを発行することができる。リンク・リセットは、警告状態フレームのリンク406をクリアすることができる。リンク406は、いつでもコマンド・ストリームを再発行できる状態にすることができる。例えば、メモリ・コントローラ402は、リンク406のサウスバウンド・リンクを介してコマンド・ストリームをリドライブ装置に向けて再発行することができる。
リンク・リセットは警告状態フレームのリンク406のクリアが失敗に終わることがある。リンク406が、再発行されたコマンドを受け取る準備ができていないことが。例えば、メモリ・コントローラ402は、リンク・リセットを実行した後で、ノースバウンド・リンク上で警告状態フレームを受け取り続けることがある。メモリ・コントローラ402は、リンク・リトレイン行動を開始する407ことができる。リンク・リトレイン行動は、メモリ・コントローラ402とリドライブ装置404との間のリンク406をリトレインすることを含むことができる。
リンク406をリトレインすることは、メモリ・コントローラ402が、リンクがリトレインされていることをリドライブ装置404に通知することを含むことができる。メモリ・コントローラ402がリンク・リトレイン行動を開始している407ことをリドライブ装置404に通知することは、一定パターン408をリドライブ装置404に伝送することを含むことができる。特定の実施形態において、一定パターンは、リドライブ装置における通常の動作をディスエーブルにする「ディスエーブルb」信号である。例えば、一定パターン408の伝送中、メモリ・コントローラ402は、遷移がないデジタル定数のシーケンスを伝送することができる。メモリ・コントローラ402は、ゼロへの遷移がない全ての1を伝送することができる。遷移がない信号パターンを受け取ることに応答して、リドライブ装置404は、メモリ・コントローラ402がリンク・リトレイン行動を開始した407と判断することができる。
一定パターンを最小継続時間伝送して、メモリ・コントローラ402がリンク・リトレイン行動を開始している407ことを示す表示として、リドライブ装置404がその伝送を記録するのを確実にすることができる。最小継続時間は、リドライブ装置404が一定パターンを認識するための最小数の単位間隔に基づくことができる。単位間隔は、メモリ・コントローラ402が、回線速度でリンク上の1つの遷移を伝送するための時間とすることができる。例えば、メモリ・コントローラ402は、144の単位間隔の間、遷移がない一定パターンを伝送して、メモリ・コントローラ402がリンク・リトレイン行動を開始した407ことを、リドライブ装置404に示すことができる。
メモリ・コントローラ402は、遷移412のシーケンス410を伝送することによって、一定パターンを最小継続時間伝送した後、一定パターン408の伝送を中断する409ことができる。遷移412のシーケンス410を伝送することにより、メモリ・コントローラ402とリドライブ装置404との間のアライメントが維持される。遷移412のシーケンス410内の遷移412の数は、リンク406の最小ビット遷移密度に基づくことができる。最小ビット遷移密度は、メモリ・コントローラ402とリドライブ装置404との間のビット・アライメントを維持するための遷移412の最小数を示すことができる。例えば、ビット・アライメントを維持するのに必要な遷移412の最小数は、8個の遷移412とすることができる。メモリ・コントローラ402は、全てが1の一定パターンを再開する前に、1及びゼロのデジタル定数に相当する交互信号パターンを伝送することができる。
遷移412のシーケンス410を伝送した後、メモリ・コントローラ402は、一定パターンの伝送416を再開する414ことができる。一定パターン408を中断し409、遷移412のシーケンス410を発行することによって、メモリ・コントローラ402及びリドライブ装置404が、アライメント状態のままであることが可能になる。リンク・リトレイン行動中にアライメントを維持することは、リンク・リトレイン行動の後の段階で、メモリ・コントローラ402及びリドライブ装置404がより低効率のアライメント・ロッキング・アルゴリズムを使用することを可能にする。例えば、ゆっくり動作するが、使用電力が少なく、占める空間がより少なくなるように、アライメント・ロッキング・アルゴリズムを選択することができる。アライメント・ロッキング・アルゴリズムは、比較的ゆっくりと実行できるが、より少数のプロセスを実行してアライメントを取り戻すことができる。アライメント・ロッキング・アルゴリズムが実行するプロセスの数を減らすことにより、リンク・リトレイン行動全体の待ち時間を減らすことができる。リンク・リトレイン行動の待ち時間を減らすことにより、メモリ・コントローラ402の全体的な効率を改善することができる。
図5は、エラー検出に応答するための、全体が500で示される方法の第2の実施形態のフロー図である。特定の実施形態において、方法500は、図4のシステムによって実行される。方法500は、ブロック502において、メモリ・コントローラとリドライブ装置との間のリンクのリトレインの開始に応答して、一定パターンを伝送することを含む。例えば、図4のメモリ・コントローラ402は、メモリ・コントローラ402とリドライブ装置404との間のリンク406のリトレインの開始407に応答して、一定パターン408を伝送する。方法500はまた、ブロック504において、一定パターンを最小継続時間伝送した後、一定パターンの伝送を中断して、遷移のシーケンスを伝送することも含む。例えば、図4のメモリ・コントローラ402は、一定パターンを最小継続時間伝送した後、一定パターン408の伝送を中断し409、遷移412のシーケンス410を伝送することができる。方法500は、ブロック506において、遷移のシーケンスを伝送した後で一定パターンの伝送を再開することをさらに含む。例えば、図4のメモリ・コントローラ402は、遷移412のシーケンス410を伝送した後で一定パターンの伝送416を再開する414ことができる。
図6は、エラー検出に応答するための、全体が600で示されるシステムの第5の実施形態の図である。システム600は、リドライブ装置604と、コマンド・アービトレーション論理612、第1のスクラブ・コントローラ608及び第2のスクラブ・コントローラ610を有するメモリ・コントローラ・ポート602とを含む。メモリ・コントローラ・ポート602及びリドライブ装置604は、リンク606を介して接続される。リンク606は、2つの一方向リンクを含むことができる。例えば、メモリ・コントローラ602は、リンク606のサウスバウンド・リンクを介してリドライブ装置604に伝送することができ、リドライブ装置604は、リンク606のノースバウンド・リンクを介してメモリ・コントローラ602に伝送することができる。
一般に、各々のスクラブ・コントローラは、特定のメモリ構造体をスクラブするためのスクラブ・コマンドを生成することができる。例えば、第1のスクラブ・コントローラ608は、第1のメモリ構造体(図示せず)に向けられる第1のスクラブ・コマンド614を生成することができ、第2のスクラブ・コントローラ610は、第2のメモリ構造体(図示せず)に向けられる第2のスクラブ・コマンド616を生成することができる。メモリ・コントローラは、各々のスクラブ・コントローラからのスクラブ・コマンドの発行を交互に行うことができる。各々のスクラブ・コントローラを交互に行うことにより、メモリ・コントローラ・ポート602が、単一のリンク606を介して複数のメモリ構造体をスクラブすることができる。
メモリ・コントローラ・ポート602は、第1のスクラブ・コントローラ608において第1のスクラブ・コマンド614を生成するように構成することができる。メモリ・コントローラ・ポート602は、第2のスクラブ・コントローラ610において第2のスクラブ・コマンド616を生成するように構成することができる。メモリ・コントローラ・ポート602は、メモリ・コントローラ・ポート602において第1のスクラブ・コマンド614及び第2のスクラブ・コマンド616の発行を交互に行うように構成することができる。
メモリ・コントローラ・ポート602は、スクラブ・コマンドを用いてデータ内のエラーを検出し、訂正することができる。例えば、第1のスクラブ・コントローラ608は、メモリ・コントローラ・ポート602から発行されるスクラブ読み出しコマンド(例えば、第1のスクラブ・コマンド)を生成することができる。スクラブ読出しコマンドの発行に応答して、メモリ・コントローラ・ポート602は、スクラブ読み出しデータを受け取ることができる。メモリ・コントローラ・ポート602は、エラー訂正コード(ECC)に関してスクラブ読み出しデータをチェックする論理を含むことができる。例えば、ECCチェックが、スクラブ読み出しデータが単一ビット・エラーを含むことを示すことができる。メモリ・コントローラ・ポート602は、エラーを訂正するために、冗長ビット・ステアリング(RBS)を呼び出すことができる。エラーが訂正された後、第1のスクラブ・コントローラ608は、メモリ・コントローラ・ポート602から発行されるスクラブ書き込みコマンドを生成することができる。スクラブ書き込みコマンドは、訂正されたスクラブ読み出しデータを、スクラブ読み出しデータが以前に取り出されたメモリ・アドレス内に書き込むことができる。
メモリ・コントローラ・ポート602は、第1のスクラブ・コマンド614及び第2のスクラブ・コマンド616の発行を交互に行うことができる。コマンド・アービトレーション論理612は、第1のスクラブ・コマンド614及び第2のスクラブ・コマンド616の発行を交互に行う。スクラブ・コマンドの発行を交互に行うことは、次の順序で、即ち、第1のスクラブ・コマンド、第2のスクラブ・コマンド、第1のスクラブ・コマンド、及び第2のスクラブ・コマンドの順序で、スクラブ・コマンドを発行することを含むことができる。各々のスクラブ・コマンドを交互に行うことにより、メモリ・コントローラ・ポート602が、単一のリンク(例えば、リンク606)を介して複数のメモリ構造体をスクラブすることが可能になる。例えば、第1のスクラブ・コマンド614は、第1のメモリ構造体に向けることができ、第2のスクラブ・コマンド616は、第2のメモリ構造体に向けることができる。第1のメモリ構造体及び第2のメモリ構造体内のアドレスは、同じメモリ・コントローラ・ポート602によって同時にスクラブすることができる。
図7を参照すると、エラー検出に応答するための、全体が700で示されるシステムの別の実施形態が示される。システム700は、リドライブ装置604、第1のメモリ構造体730、及び第2のメモリ構造体732を含む。このシステムはまた、コマンド・アービトレーション論理612、第1のスクラブ・コントローラ608及び第2のスクラブ・コントローラ610を有するメモリ・コントローラ・ポート602も含む。メモリ・コントローラ・ポート602とリドライブ装置604は、リンク606を介して接続することができる。リンク606は、2つの一方向リンクを含むことができる。例えば、メモリ・コントローラは、リンク606のサウスバウンド・リンクを介してリドライブ装置604に伝送することができ、リドライブ装置604は、リンク606のノースバウンド・リンクを介してメモリ・コントローラに伝送することができる。リドライブ装置604は、第1のメモリ・バス736を介して第1のメモリ構造体730に接続することができ、第2のメモリ・バス738を介して第2のメモリ構造体732に接続することができる。
一般に、各々のスクラブ・コントローラは、特定のメモリ構造体をスクラブするためのスクラブ・コマンドを生成することができる。例えば、第1のスクラブ・コントローラ608は、第1のメモリ構造体730に向けられる第1のスクラブ・コマンド614を生成することができる。第2のスクラブ・コントローラ610は、第2のメモリ構造体732に向けられる第2のスクラブ・コマンド616を生成することができる。メモリ・コントローラは、リンク606を介した各々のスクラブ・コントローラからリドライブ装置604に向けてのスクラブ・コマンドの発行を交互に行うことができる。リドライブ装置604は、第1のスクラブ・コマンド614を第1のメモリ構造体730に向けて発行することができ、かつ、第2のスクラブ・コマンド616を第2のメモリ構造体732に向けて発行することができる。各々のスクラブ・コントローラを交互に行うことにより、メモリ・コントローラ・ポート602が、単一のリンク(例えば、リンク606)を介して複数のメモリ構造体をスクラブすることが可能になる。
メモリ・コントローラ・ポート602は、スクラブ・コマンドを用いて、データ内のエラーを検出し、訂正することができる。例えば、第1のスクラブ・コントローラ608は、メモリ・コントローラ・ポート602からリドライブ装置604に向けて発行される第1のスクラブ読み出しコマンド(例えば、第1のスクラブ・コマンド)を生成することができる。リドライブ装置604は、スクラブ読み出しコマンドをフォーマットし、デコードして、第1のメモリ構造体730に伝送することができる。例えば、リドライブ装置604は、スクラブ読み出しコマンドを、第1のメモリ構造体730によって認識されるDDRアドレスに変更することができる。リドライブ装置604は、第1のメモリ・バス736を介して、フォーマットされたスクラブ読み出しコマンドを第1のメモリ構造体730に伝送することができる。
フォーマットされたスクラブ読み出しコマンド(例えば、第1のスクラブ・コマンド)を受け取ることに応答して、第1のメモリ構造体730は、スクラブ読み出しデータ(例えば、第1のデータ720)を取り出し、第1のメモリ・バス736を介して、スクラブ読み出しデータをリドライブ装置604に向けて伝送することができる。第1のメモリ構造体730は、バースト・チョップ4(BC4)モードにおいて、スクラブ読み出しデータを取り出すことができる。BC4モードで動作することにより、第1のメモリ構造体730は、4ビートのギャップが後に続く4ビートのデータを取り出すことができる。例えば、第1のメモリ構造体730は、4ビートのスクラブ読み出しデータ(例えば、第1のデータ720)リドライブ装置604に向けて伝送することができ、4ビートのギャップが後に続く。リドライブ装置604は、ギャップと第1のデータ720の部分との交互パターンを含む第1のデータ・ストリームを受け取ることができる。
リドライブ装置604は、リンク606を介して、メモリ・コントローラから第2のスクラブ・コマンド616を受け取ることができる。特定の実施形態において、コマンド・アービトレーション論理612は、第1のスクラブ・コマンド614と第2のスクラブ・コマンド616の発行を交互に行う。リドライブ装置604は、第2のメモリ・バス738上で、第2のコマンドを第2のメモリ構造体732に伝送することができる。第2のスクラブ・コマンド616に応答して、第2のメモリ構造体732は、第2のデータ722を取り出し、第2のメモリ・バス738を介して第2のデータ722をリドライブ装置604に伝送することができる。BC4モードで動作することにより、第2のメモリ構造体732は、4ビートの第2のデータ722をリドライブ装置604に伝送することができ、4ビートのギャップが後に続く。リドライブ装置604は、ギャップと第2のデータ722の部分との交互パターンを含む第2のデータ・ストリームを受け取ることができる。
リドライブ装置604は、第1のデータ・ストリーム内の第1のデータ720及び第2のデータ・ストリーム内の第2のデータ722をフォーマットし、デコードすることができる。例えば、リドライブ装置604は、第1のデータ720及び第2のデータ722を、メモリ・コントローラ・ポート602内のアドレスに対応するデータに変更することができる。第1のデータ720及び第2のデータ722をフォーマットした後、リドライブ装置604は、リンク606を介して、第1のデータ720及び第2のデータ722をメモリ・コントローラ・ポート602に伝送することができる。
リドライブ装置604は、第1のデータ・ストリームからの第1のデータ720の伝送及び第2のデータ・ストリームからの第2のデータ722の伝送を交互に行うことができる。リドライブ装置604は、ギャップなしに第1のデータ・ストリーム及び第2のデータ・ストリームを伝送することができる。メモリ・コントローラ・ポート602は、ギャップなしに第1のデータ及び第2のデータの交互パターンを受け取ることができる。メモリ・コントローラ・ポート602は、第1のデータ720を第1のスクラブ・コントローラ608に向け、第2のデータ722を第2のスクラブ・コントローラ610に向けることができる。ギャップなしにリンク606を介してデータを受け取ることにより、リンク606の利用率を高めることができる。
メモリ・コントローラ・ポート602は、エラーに関して、リンク606を介して受け取ったデータをチェックする論理を含むことができる。例えば、ECCチェックは、スクラブ読み出しデータ(例えば、第1のデータ720)が単一ビット・エラーを含むことを示すことがある。メモリ・コントローラ・ポート602は、エラーを訂正するために、RBSを呼び出すことができる。エラーが訂正された後、第1のスクラブ・コントローラ608は、スクラブ書き込みコマンド(例えば、第1のコマンド)をリドライブ装置604に向けて発行することができる。リドライブ装置604は、スクラブ書き込みコマンドをフォーマットし、スクラブ書き込みコマンドを第1のメモリ構造体730に伝送することができる。スクラブ書き込みコマンドは、第1のメモリ構造体730内のデータをRBSによって訂正されたスクラブ読み出しデータで上書きするように、第1のメモリ構造体730に指示することができる。
メモリ・コントローラ・ポート602によって発行される第2のスクラブ・コマンド616の1つは、スクラブ書き込みコマンドとすることができる。リドライブ装置604は、スクラブ書き込みコマンドの交互パターンを、第1のメモリ構造体730及び第2のメモリ構造体732の両方に向けて発行することができる。第1のスクラブ・コマンド614と第2のスクラブ・コマンド616の発行を交互に行うことにより、メモリ・コントローラ・ポート602が、単一のリンク606を介して第1のメモリ構造体730及び第2のメモリ構造体732の両方をスクラブすることが可能になる。複数のメモリ構造体におけるメモリ・スクラブ(memory scrubbing)を実行することにより、メモリ・コントローラ・ポート602の効率が向上し、メモリ待ち時間が短くなる。
図8は、エラー検出に応答するための、全体が800で示される方法の第3の実施形態のフロー図である。方法800は、図6及び図7のシステムのいずれか、又はそれらの任意の組み合わせによって実行される。方法800は、ブロック802において、第1のスクラブ・コントローラにおいて第1のスクラブ・コマンドを生成することを含む。例えば、図6又は図7の第1のスクラブ・コントローラ608は、第1のスクラブ・コマンド614を生成することができる。方法800はまた、ブロック804において、第2のスクラブ・コントローラにおいて第2のスクラブ・コマンドを生成することも含む。例えば、図6及び図7の第2のスクラブ・コントローラ610は、第2のスクラブ・コマンド616を生成することができる。方法800は、ブロック806において、メモリ・コントローラ・ポートにおいて第1のスクラブ・コマンド及び第2のスクラブ・コマンドの発行を交互に行うことをさらに含む。例えば、図6及び図7のメモリ・コントローラ・ポート602は、第1のスクラブ・コマンド614及び第2のスクラブ・コマンド616の発行を交互に行うことができる。
特定の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又は、ハードウェア要素とソフトウェア要素の両方を含む実施形態の形態を取ることができる。開示される方法は、ソフトウェアの形態で実装され、ソフトウェアは、これらに限られるものではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。
さらに、実施形態は、コンピュータ若しくはいずれかの命令実行システムによって又はそれらと接続して用いられるプログラム・コードを提供するコンピュータ使用可能媒体又はコンピュータ可読媒体からアクセスできるコンピュータ・プログラムの形を取ることができる。この説明の目的のために、コンピュータ使用可能媒体又はコンピュータ可読媒体は、命令実行システム、装置若しくはデバイスによって又はそれらと接続して用いられるプログラムを含み、格納し、通信し、伝搬し、又は移送することができるいずれかの装置とすることができる。
媒体は、電子システム、磁気システム、光学システム、電磁気システム、赤外線システム、若しくは半導体システム(又は装置若しくはデバイス)或いは伝搬媒体とすることができる。コンピュータ可読媒体の例として、半導体メモリ又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、剛性磁気ディスク及び光ディスクが挙げられる。光ディスクの現在の例として、コンパクト・ディスク−読み出し専用メモリ(CD−ROM)、コンパクト・ディスク−読み出し/書き込み(CD−R/W)及びDVDが挙げられる。
プログラム・コードを格納し及び/又は実行するのに適したデータ処理システムは、システム・バスを通じて直接的又は間接的にメモリ要素に結合される少なくとも1つのプロセッサを含む。メモリ要素は、プログラム・コードの実際の実行中に使用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを取り出す必要がある回数を減少させるために少なくとも幾つかのプログラム・コードを一時的に格納するキャッシュ・メモリとを含むことができる。
入力/出力又はI/O装置(キーボード、ディスプレイ、ポインティング・デバイス等を含むが、これらに限定されない)は、直接的に又は介在するI/Oコントローラを通して、システムに結合することができる。
介在するプライベート・ネットワーク又はパブリック・ネットワークを通して、データ処理システムを他のデータ処理システム又は遠隔のプリンタ若しくはストレージ・デバイスに結合することができるように、ネットワーク・アダプタをシステムに結合することもできる。モデム、ケーブル・モデム、及びイーサネット・カードは、現在利用可能なタイプのネットワーク・アダプタのうちのほんの一部に過ぎない。
本発明は種々の実施形態の説明によって示され、これらの実施形態は極めて詳細に説明されたが、添付の特許請求の範囲をこうした詳細に制限するか又は多少なりとも限定することは、本出願人の意図するところではない。このように、幅広い態様における本発明は、示され説明された特定の詳細、代表的な装置、方法、及び例示に限定されるものではない。従って、添付の特許請求の範囲によって定められる出願人の一般的な発明概念の範囲から逸脱することなく、こうした詳細から離れることができる。
100、200、400、600、700:システム
102、402:メモリ・コントローラ
104、106、404、604:リドライブ装置
108:第1のバッファ
110:第2のバッファ
112:第1のコマンド
114:第2のコマンド
116、720:第1のデータ
118:伝送エラー
120:再発行された第2のコマンド
122、722:第2のデータ
150、160:警告状態フレーム
162:第3のコマンド
164:第3のデータ
166:第4のコマンド
170:再発行された第4のコマンド
172:第4のデータ
300、500、800:方法
406、606:リンク
408:一定パターン
410:シーケンス
412:遷移
602:メモリ・コントローラ・ポート
608:第1のスクラブ・コントローラ
610:第2のスクラブ・コントローラ
612:コマンド・アービトレーション論理
614:第1のスクラブ・コマンド
616:第2のスクラブ・コマンド
730:第1のメモリ構造体
732:第2のメモリ構造体
736:第1のメモリ・バス
738:第2のメモリ・バス

Claims (6)

  1. メモリ・コントローラがエラー検出に応答する方法であって、
    単一のコマンドを少なくとも第1のコマンドと第2のコマンドとに分割するステップと、
    前記第1のコマンドを第1のリドライブ装置に向けて、前記第2のコマンドを第2のリドライブ装置に向けてそれぞれ発行するステップと、
    メモリ・コントローラと前記第2のリドライブ装置との間の伝送エラーの検出に応答して、前記第2のコマンドを前記第2のリドライブ装置に向けて再発行するステップと、
    前記第1のコマンドに応答して前記第1のリドライブ装置から受け取った第1のデータを第1のバッファに格納するステップと、
    前記再発行された第2のコマンドに応答して前記第2のリドライブ装置から受け取った第2のデータを第2のバッファに格納するステップと、
    前記単一のコマンドに応答したデータを完成させるために、前記第2のデータを前記第1のデータと結合させるステップと、を含み、
    前記伝送エラーを検出するステップは、前記第2のコマンドに応答して前記第2のリドライブ装置から警告状態フレームを受け取るステップを含む、方法。
  2. 前記第1のコマンドの発行後に第3のコマンドを前記第1のリドライブ装置に向けて発行するステップと、
    前記第3のコマンドに応答して前記第1のリドライブ装置から受け取った第3のデータを前記第1のバッファに格納するステップと、をさらに含む、請求項1に記載の方法。
  3. 前記第2のコマンドの発行後に第4のコマンドを前記第2のリドライブ装置に向けて発行するステップと、
    前記メモリ・コントローラと前記第2のリドライブ装置との間の伝送エラーの検出に応答して、前記第4のコマンドを前記第2のリドライブ装置に向けて再発行するステップと、
    前記再発行された第4のコマンドに応答して前記第2のリドライブ装置から受け取った第4のデータを前記第2のバッファに格納するステップと、をさらに含む、請求項2に記載の方法。
  4. 1つまたは複数の単一コマンドに応答したデータを完成させるために、前記第4のデータを前記第3のデータと結合させるステップをさらに含む、請求項3に記載の方法。
  5. 前記警告状態フレームの受信に応答して、前記第1のリドライブ装置及び前記第2のリドライブ装置の両方に向けた後続コマンドの発行を停止するステップをさらに含む、請求項に記載の方法。
  6. 前記メモリ・コントローラと前記警告状態フレームの前記第2のリドライブ装置との間のリンクをクリアするためのソフト・リセットを発行するステップをさらに含む、請求項に記載の方法。
JP2012529213A 2009-09-17 2010-09-08 エラー検出に応答するためのシステム及び方法 Active JP5930469B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/561,687 2009-09-17
US12/561,687 US8539309B2 (en) 2009-09-17 2009-09-17 System and method for responding to error detection
PCT/EP2010/063153 WO2011032866A2 (en) 2009-09-17 2010-09-08 System and method for responding to error detection

Publications (2)

Publication Number Publication Date
JP2013505616A JP2013505616A (ja) 2013-02-14
JP5930469B2 true JP5930469B2 (ja) 2016-06-08

Family

ID=43531053

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012529213A Active JP5930469B2 (ja) 2009-09-17 2010-09-08 エラー検出に応答するためのシステム及び方法

Country Status (6)

Country Link
US (1) US8539309B2 (ja)
JP (1) JP5930469B2 (ja)
CN (1) CN102498473B (ja)
DE (1) DE112010003684B4 (ja)
GB (1) GB2505388B (ja)
WO (1) WO2011032866A2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8205138B2 (en) * 2008-08-07 2012-06-19 International Business Machines Corporation Memory controller for reducing time to initialize main memory
FR2978447B1 (fr) 2011-07-29 2014-12-19 Michelin Soc Tech Composition d'elastomere pour objet pneumatique, a propriete auto-obturante
KR20190066327A (ko) * 2017-12-05 2019-06-13 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6437937B1 (en) * 2000-04-24 2002-08-20 Maxtor Corporation Disk drive with high speed read/write capability
US7386768B2 (en) * 2003-06-05 2008-06-10 Intel Corporation Memory channel with bit lane fail-over
US7143207B2 (en) * 2003-11-14 2006-11-28 Intel Corporation Data accumulation between data path having redrive circuit and memory device
KR100607987B1 (ko) * 2004-06-24 2006-08-02 삼성전자주식회사 명령어 스케줄링을 수행하는 메모리 제어장치 및 방법
JP4394533B2 (ja) 2004-07-28 2010-01-06 株式会社日立製作所 ディスクアレイシステム
US7299313B2 (en) * 2004-10-29 2007-11-20 International Business Machines Corporation System, method and storage medium for a memory subsystem command interface
US7587625B2 (en) * 2006-02-16 2009-09-08 Intel Corporation Memory replay mechanism
US7756053B2 (en) * 2006-06-30 2010-07-13 Intel Corporation Memory agent with error hardware
JP4996626B2 (ja) * 2006-12-25 2012-08-08 パナソニック株式会社 メモリ制御装置、およびメモリ制御方法

Also Published As

Publication number Publication date
WO2011032866A3 (en) 2011-09-29
GB201200162D0 (en) 2012-02-15
DE112010003684B4 (de) 2015-11-26
CN102498473A (zh) 2012-06-13
GB2505388A (en) 2014-03-05
DE112010003684T5 (de) 2012-12-06
CN102498473B (zh) 2015-04-01
JP2013505616A (ja) 2013-02-14
US8539309B2 (en) 2013-09-17
GB2505388B (en) 2017-04-19
US20110066921A1 (en) 2011-03-17
WO2011032866A2 (en) 2011-03-24

Similar Documents

Publication Publication Date Title
EP2467781B1 (en) Systems and methods to efficiently schedule commands at a memory controller
KR100640037B1 (ko) 파일 제어 시스템 및 파일 제어 장치
JP5947398B2 (ja) 統合データマスキング、データポイズニング及びデータバス反転シグナリング
WO2011160923A1 (en) Homogeneous memory channel recovery in a redundant memory system
JP2008090375A (ja) 割込み制御システム、およびこれを利用した記憶制御システム
US7676701B2 (en) Computer readable medium storing an error recovery program, error recovery method, error recovery apparatus, and computer system
US9191030B2 (en) Memory controller, data storage device, and memory controlling method
US7107343B2 (en) Method and apparatus for improved RAID 1 write performance in low cost systems
WO2019109299A1 (zh) 内存访问技术及计算机系统
US8095820B2 (en) Storage system and control methods for the same
JP5930469B2 (ja) エラー検出に応答するためのシステム及び方法
US20110004817A1 (en) Crc management method performed in sata interface and data storage device using crc management method
US8615680B2 (en) Parity-based vital product data backup
US8041850B2 (en) Storage apparatus and data integrity assurance method
US7526714B2 (en) Apparatus for checking data coherence, raid controller and storage system having the same, and method therefor
JPWO2003079194A1 (ja) 情報処理装置
WO2023179634A1 (zh) 数据写入方法以及处理系统
JP3288071B2 (ja) 情報変換処理装置および情報転送制御方法
CN113868000B (zh) 一种链路故障修复方法、系统及相关组件
JP5227601B2 (ja) 制御システム
JP2002251332A (ja) ディスク制御装置
JP2006209304A (ja) バスシステム、バス接続機器、及び、リセット方法
JP2011159150A (ja) ディスクアレイ装置、及びデータ制御方法
JP2810265B2 (ja) データ蓄積装置及び情報処理システム
JPH06309245A (ja) Scsiインターフェースシステム装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140422

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140706

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140707

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150113

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150901

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20150925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160422

R150 Certificate of patent or registration of utility model

Ref document number: 5930469

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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