JPH06105443B2 - スマート・メモリ・カード - Google Patents

スマート・メモリ・カード

Info

Publication number
JPH06105443B2
JPH06105443B2 JP1123044A JP12304489A JPH06105443B2 JP H06105443 B2 JPH06105443 B2 JP H06105443B2 JP 1123044 A JP1123044 A JP 1123044A JP 12304489 A JP12304489 A JP 12304489A JP H06105443 B2 JPH06105443 B2 JP H06105443B2
Authority
JP
Japan
Prior art keywords
data
card
memory
ecc
array
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 - Lifetime
Application number
JP1123044A
Other languages
English (en)
Other versions
JPH0224752A (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 JPH0224752A publication Critical patent/JPH0224752A/ja
Publication of JPH06105443B2 publication Critical patent/JPH06105443B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1056Updating check bits on partial write, i.e. read/modify/write

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、コンピュータ・メモリ・インターフェース及
びアーキテクチャに関し、具体的には、様々なアレイ・
タイプとメモリ・サイズをもつ様々なシステム構成で使
用できる、メモリ・カード用の単純であるが強力で柔軟
なメモリ・インターフェース及びアーキテクチャに関す
る。本発明は、信頼性向上機能やシステムにとってトラ
ンスペアレントな形の直接及び部分的な記憶動作の全領
域を犠牲にすることなく、迅速なアクセスを含めて性能
と機能が改善された「スマート」メモリ・カードを企図
する。
B.従来技術及びその問題点 代表的なコンピュータ・システムの基本アーキテクチャ
は、バスによってランダム・アクセス・メモリ(RAM)
に接続された中央演算処理装置(CPU)を含む。入出力
(I/O)装置など中央演算処理装置以外の装置が、デー
タの読取り及び書込みのためにRAMにアクセスする。初
期のコンピュータ・システムでは、それらの装置は、RA
Mへのアクセスを可能にするようCPUに要求するために、
割込みレベルを上げる必要があった。これにより、コン
ピュータ・システムによる処理時間の遅延が発生する。
したがってCPUに割り込まずにRAMに対するアクセスを可
能にする直接メモリ・アクセス(DMA)制御装置が開発
された。
こうしたコンピュータ・システムは、マイクロコンピュ
ータ、ミニコンピュータ、またはメイン・フレームのい
ずれであれ、一般にバスに挿入される複数のメモリ・プ
リント回路からRAMが構成されているモジュール式構成
をその特徴とする。これらのメモリ・カードは、通常、
集積回路(IC)チップなどのアレイを含み、その制御
は、カード外のCPUまたはDMA制御装置あるいはその両方
によって行なわれる。本明細書では、こうしたカード
は、「非知能」メモリ・カードと呼ぶ。本発明は、本明
細書で「知能」メモリ・カードと呼ぶメモリ・カードの
クラスに属する。すなわち、これらのメモリ・カード
は、非知能メモリ・カードではカード以外で実行される
ような機能を実行する様々なデータ・フロー及び制御論
理機構を含んでいる。
本発明の状況を説明するために、まず第17A図を参照す
る。第17A図は、概略構成図の形で従来技術の非知能メ
モリ・カード及びプロセッサ・インターフェースを示
す。このシステムでは、プロセッサ10は、パリティ・バ
ス11を介して、エラー訂正コード(ECC)機能を含むメ
モリ制御装置12に接続される。制御装置は、外部メモリ
・バス13を介して順番に複数のメモリ・カードと連絡す
る。メモリ・カードのうち1つだけを参照番号14で示し
てある。これらのメモリ・カードはそれぞれドライバ及
びレシーバ15を含む。これらのドライバ及びレシーバ
は、外部メモリ・バス13と内部メモリ・バス17の間の緩
衝動作を行なう。内部メモリ・バスは、カード上のラン
ダム・アクセス・メモリ(RAM)チップのアレイ16をア
ドレスするのに使用される。
知能メモリ・カードのアーキテクチャを、第17B図に対
照して示す。この図では、同じ回路または対応する回路
を同じ参照番号で示してある。制御装置12と外部メモリ
・バス13が除去されていることに留意されたい。制御装
置の機能はバッファ論理回路18に組み込まれている。後
で詳細に説明するように、これらの機能をカード上の回
路に組み込むと、マシン性能が飛躍的に向上し、メモリ
・カードを知能メモリ・カードまたは「スマート」メモ
リ・カードとして特徴付ける基礎ができる。
本発明は具体的には、IBM9370シリーズのコンピュータ
で使用されたメモリ・アーキテクチャ及びプロセッサ・
インターフェースの改善である。これらのメモリ・カー
ドは、知能メモリ・カードのクラスに属する。第18図
は、IBM9370シリーズのスマート・メモリ・カードの概
略構成図である。これらのカードは、それぞれ40個から
なる2つのバンクとして構成された80個の動的ランダム
・アクセス・メモリ(DRAM)チップの512K×2個のアレ
イから構成されるメモリ・アレイ21を含む。この特定の
メモリ・カードは、8バイト幅の内部メモリ・データ・
バス27と28をもつ。これらのバスは、カード上の論理回
路23を2つのメモリ・アレイ・バンク21及び2本の2バ
イト幅外部メモリ・バス24、25に相互接続する。1方向
制御バス22a、22b、22cが、それぞれアレイ制御再駆動
論理回路26a、26b、26cをメモリ・アレイに接続する。
これらのバスは、アレイ・アドレス、アレイ選択(RAS
及びCAS)、読取り/書込み制御、及びデータ入出力制
御信号を供給する。中央制御装置29は、アレイ制御再駆
動論理回路26a、26b、26cと連絡するアレイ制御部と、
双方向データ・フロー論理回路30、31と連絡するデータ
・フロー制御部の2つの部分に分かれる。双方向データ
・フロー論理回路30、31はそれぞれ2つの4バイトECC
半体を含む。
「スマート」メモリ・カードを使用すると、メモリ・ア
レイとアレイ・データの使用点の間に余分なバスが不要
になり、したがって、この性能面でクリティカルな経路
上での関連するバスの遅延がなくなる。通常、入出力及
びキャッシュ用のバスは、各キャッシュ及び入出力イン
ターフェース上にECC論理を複製する必要がないような
パリティ・バスである。ECC論理回路を含む制御装置
が、このパリティ・バスをECCを含まない1つまたは複
数のメモリ・カードに接続する。しかし、メモリ・カー
ド上の論理回路は依然として、そのアレイとカード外の
メモリ・バスの間でデータを緩衝記憶する必要がある。
ECCをメモリ・カード・バッファ論理回路に含めること
により、メモリ・カードを直接パリティ・バス上に置く
ことができ、したがってより迅速なメモリ・アクセスが
行なえる。同期環境では、こうすると、1つまたは複数
のラッチ状態が不要になって、各取出しまたは記憶転送
の際に少なくとも1クロックが節約される。
カード上のECC用の論理回路が若干のバス遅延を除去し
て性能を高めるので、拡張ECC、ソフト障害スクラビン
グ、読取り・修正・書込み(RMW)などの動作用の自立
式論理回路は、これらの動作のサイクル時間を減少させ
て性能を向上させる。これらの動作中に複数のカード外
のバス交差の必要がないため、サイクル時間が減少す
る。これらの動作は自動的な性格であるため、システム
制御オーバーヘッドと必要な付随時間がなくなる。1つ
の例は拡張ECC(XECC)である。システムは、1つまた
は1連のアレイ取出しを開始するだけである。拡張ECC
を実行する必要がある場合、メモリ・カードは、XECCが
内部で発生している間、BUSY線を活動状態に保つ。これ
は、検出可能であるが(ECCだけでは)訂正不可能なエ
ラーを含む最初に取り出されたデータを反転し、同じメ
モリ位置に戻して記憶し、その位置への他のデータを取
り出し、続いてそのデータを反転した後、ECC論理回路
で処理を行なうことから構成される。XECC動作がうまく
いくと、訂正されたデータが、そのメモリ位置に復元さ
れる。うまくいかないと、検出可能なエラーを含む最初
のデータが復元される。XECC動作がうまくいくと、続い
てシステム・バスへの残りの取出し転送が行なわれる。
これらの3つの内部動作のバス交差遅延があると、それ
らの動作が外部で行なわれる場合、その動作の正味のサ
イクル時間が増加することになる。
もう1つの例は読取り・修正・書込み(RMW)である。
読取り・修正・書込み動作は部分記憶であるが、部分的
というのは、1つまたは複数の4バイトECCワードで、
すべてのバイトではなく1つまたは複数のバイトだけが
重ね書きされるという意味である。ECCワードが正しい
データ及び正しい関連検査ビットをもつようにするに
は、まずメモリに記憶された部分的に重ね書きすべきデ
ータをメモリから取り出して(これは事前取出しと呼ば
れる)、ECCにかけて単一ビット・エラーを訂正しなけ
ればならない。複数のビット・エラーはXECC動作を呼び
出すことができる。システムは、記憶コマンドを関連す
るフィールド長及び開始アドレスと共に送り、メモリ・
カードは、直接書込みまたはRMWが必要かどうかを決定
する。RMWが必要な場合、場合によっては、カードは、
メモリの事前取出しを開始しながら、すべてのシステム
転送をバッファに記憶する。すなわち、システム記憶と
カード事前取出しが同時に実行される。事前取出しが行
なわれメモリ・エラーが訂正される度に、カードは、当
該の事前取出しされたバイトを重ね書きして、その結果
をメモリに再記憶する。この場合も、動作サイクル及び
システム論理オーバーヘッドが最小になる。
カード・メモリ再生及び関連するソフト・エラー・スク
ラビングもシステムにとってある程度トランスペアレン
トである。通常の再生動作では、システムは、再生線を
活動化し、BUSYが消えるのを待つ。メモリ・カードは再
生アドレス・カウントとアレイ制御を取り扱う。活動状
態になりトリガされると、活動再生時間に当該の再生を
置換することにより、ソフト・エラーのスクラビングが
行なわれる。スクラブ動作は基本的にはゼロ・バイトの
RMWである。メモリからデータが取り出され、カード上
のECCが単一ビット・エラーを訂正し、次いでデータが
メモリに復元される。単一ビット・エラーがソフト障害
に関連している場合、復元動作で、ソフト障害であった
不良データ・ビットの代わりに良好なデータが入れられ
る。この動作中に再生も実行される。
IBM9370プロセッサは、高性能の機能を組み込むように
進化してきたが、それには、次々と次世代システム用の
メモリ・カードの改良された設計が必要であった。この
改良された設計及び機能が本出願の基礎である。次世代
設計の目的の1つは、初期アクセスの後27ナノ秒ごとに
メモリ・カードから最高8回の8バイト・データ転送を
獲得する能力をもつことであった。この27ナノ秒という
転送速度は、エラー訂正コード(ECC)、パリティ生成
及び他の信頼性向上機能に必要な時間を含むものでなけ
ればならなかった。
この新しいメモリ・カードの設計過程で、最小数の集積
回路(IC)に必要なすべての機能を詰め込むことがもう
1つの設計上の目的であった。この場合の問題点は、コ
スト上の制約と現在の技術的能力によって課されるチッ
プ/モジュール入出力制限の範囲内で、必要なすべての
機能を提供することであった。
第3の設計上の目的は、単純で極めて柔軟なインターフ
ェース及びアーキテクチャを定義して、メモリ・カード
が広範なハードウェア技術及びシステム用途で使用でき
るようにすることである。
C.問題点を解決するための手段 したがって、本発明の目的は、初期アクセスの後でメモ
リ・カードから最高8回の8バイト転送を行なえる、改
良された「スマート」メモリ・カードを提供することに
ある。
本発明の他の目的は、コスト上の制約と技術的能力によ
って課される最小チップ・カウント制限をもつ、完全機
能メモリ・カードのインターフェース及びアーキテクチ
ャを提供することにある。
本発明の他の目的は、広範囲のハードウェア技術及びシ
ステム用途に対してシステムから見て非常に簡単に動作
するコンピュータ・メモリ・カードのインターフェース
及びアーキテクチャを提供することにある。
本発明の他の目的は、メモリ・カード・インターフェー
スに必要な制御を単純化しながら、同時に部分記憶の柔
軟性を大幅に増大させる、メモリ・カード・アーキテク
チャを提供することにある。
次世代のIBM9370プロセッサ環境で実施された発明の好
ましい実施例によると、「スマート」メモリ・カードの
アーキテクチャ及びインターフェースは、一部には、初
期アクセスの後27ナノ秒ごとにメモリ・カードから最高
8回の8バイト・データ転送が可能な、80ナノ秒の高速
アクセス動的ランダム・アクセス・メモリ(DRAM)を使
用することにより、飛躍的に向上した性能をもたらす。
27ナノ秒という転送速度は、エラー訂正コード(EC
C)、パリティ生成及び他の信頼性機能に必要な時間を
含むものである。2つの相補型金属酸化物半導体(CMO
S)集積回路(IC)論理チップまたはモジュールだけで
必要なすべての機能を提供するにも関わらず、コスト上
の制約と技術的能力によって課されるチップ/モジュー
ル入出力制限の範囲内にある。「スマート」メモリ・カ
ード方式によって提供される単純性と柔軟性により、1
つのカード・インターフェースが広範囲のハードウェア
技術及び様々なシステムで使用できる手段がもたらされ
る。メモリ・カードのアーキテクチャは、システムにと
ってトランスペアレントな形で広範囲の直接かつ部分的
な記憶動作を提供する。
D.実施例 図面中の第1図を参照すると、本発明によるスマート・
メモリ・カードの概略構成図が示されている。図のカー
ドは、それぞれ40個からなる2つのバンクの80個の256K
×4のDRAMまたはそれぞれ40個からなる4つのバンクの
160個の256K×4のDRAMから構成されたメモリ40を含
む。16バイト幅の内部メモリ・バス41、42及び8バイト
幅の外部メモリ・バス43、44がある。内部メモリ・バス
41、42は、メモリ40と論理ブロック45との間に、データ
及び制御用の通信経路をもたらす。論理ブロック45は、
この新しいメモリ・カードの性能と機能を支援するよう
に特に設計された2つのCMOSチップ46と47から構成され
る。大まかに述べると、CMOSチップ46と47はそれぞれ、
5つの機能部分に分かれている。第1の部分(a)は、
システム・バスとメモリ40の間の双方向データ・フロー
を支援し、2つの完全な4バイトECCを含む。第2の部
分(b)は、状態マシンとして実施されている主制御部
である。第3の部分(c)は、アレイ制御機能をもたら
す。第4の部分(d)はデータ・フロー制御を行なう。
第5の部分(e)はアレイ制御再駆動部である。これら
のCMOSチップのいくつかの部分によって実行される設計
及び動作については、以下により詳細に説明する。
第18図に示した従来のメモリ・カードのインターフェー
ス・データ・バスは必要な専用入出力の数を最小にした
が、バス自体の幅に対する入出力の数が重要な設計上の
要素となっていた。幅広のカード外データ・バスは、プ
ロセッサへの主な性能上の利点を備えている。このバス
の幅が広くなるにつれて、カード入出力の数が増えなけ
ればならない。この論理機能は少なくともカード間で送
られる信号を緩衝記憶しなければならないので、関連す
るチップ/モジュール入出力の数も増えなければならな
い。チップ入出力の数が増加するにつれて、これらの入
出力を支援するチップ面積が増え、したがって必要なバ
ッファ回路用、及び「スマート」カード・アーキテクチ
ャを構成するすべての追加論理機能用のシリコンを提供
する。実際、カード上のECC及び他の信頼性向上機能は
ほとんど自由である。
この入出力及び関連する機能のカード上での分割は、次
の2つの方式のどちらかで実施できる。すなわち、多数
の小型、低価格のモジュールか、それとも1、2個のよ
り大型でより高価なモジュールである。第1図に示した
ような1つまたは2つのモジュールを使用するだけで、
重要な利点が得られることが判明した。したがって、本
発明では、2モジュール方式を選択したが、これらの利
点を活用できるカード・アーキテクチャを開発しなけれ
ばならなかった。
カードは、アレイ40に対する16バイトのインターフェー
ス41、42、システムに対する8バイトのインターフェー
ス、及び関連するカード上の論理回路が対称的に2等分
されるように構成した。このため、1つのモジュール部
品番号がカード上で2度使用できるようになった。こう
して、追加カード部品番号に関連する設計開発及び在庫
オーバーヘッドが大幅に減少した。論理機能は類似して
いるが、2つの論理モジュールは別々に機能しなければ
ならない。これは、論理回路を個性化するため接地また
は高電位に接続された専用モジュール線によって処理さ
れる。カード上に4つのECCがある場合、2つまたは4
つのモジュールの間に論理ブロックを区分するのは難し
いことではない。モジュールの数を3個以下に保つこと
により、モジュール間の通信線は6本に抑えられる。IB
M9370プロセッサの主記憶装置の場合と同じく、ECCのセ
クションを、モジュール境界を横切って分割しなければ
ならないとき、チップ間信号は飛躍的に増大する。
モジュールの数を2に制限するために、アレイ制御論理
ブロックをデータ・フロー論理ブロックと一緒にした。
第18図に示すように、IBM9370主記憶装置は2つのデー
タ・フロー・モジュール30、31、3つのアレイ制御再駆
動モジュール26a、26b、26c、及び1つの主制御モジュ
ール29を有する。1つのモジュール内にこの論理ブロッ
クを入れることにより、厳格にタイミングを調整された
アレイ制御信号(RAS、CAS、アドレスなど)が1つの論
理チップからしかこなくなる。このため、タイミング・
スキューが減少し、タイミング・マージンが増大するの
で、実質的にカード性能が向上する。スキューの減少
は、単一のチップ上で固有な内部論理機能及びドライバ
・ブロックのための経路、処理及び環境に関する追跡の
結果生じる。カードは1枚当りのモジュールの数を制限
すると、電力及び信号用の論理モジュール・ピンの合計
数が減少する。この減少によりカードの信頼性がやや向
上し、カード面積の活用とカード配線の改善に役に立
つ。
1モジュールが最適の方式であったはずであるが、入出
力の合計数及び関連する同時交換要件を処理するための
パッケージ技術はなかった。以下に説明するカード外デ
ータのインターリーブに関する重要な技術上の問題を回
避するために、最終的に4モジュールではなく2モジュ
ールを選択した。この問題を回避したことは、選択され
たアーキテクチャと大いに関係がある。4個の論理モジ
ュールを使用する場合、各モジュールに1つのECCを割
り当てる機能的区分が必要となる。この場合、アレイに
おける16バイトをシステムで8バイトにするデータのイ
ンターリーブには、システム・インターフェースで1つ
のECCモジュールの入出力に別のモジュールを物理的に
点在させることが必要となる。残り2つのECCについて
も同様である。この点在するインターフェースに対する
ドライバによる高インピーダンス制御は、適切に行なう
のが非常に難しい。モジュール間のインターリーブは、
ドライバに損害を与える恐れのあるバス争奪の問題を回
避しながら、しかもバス性能を満たすように厳格にタイ
ミングを調整しなければならない。バスの過重な負荷及
び内部論理スキューにより、これらのクリティカルなタ
イミングが合致しなくなる。本発明では、ECCの関連す
る対を1つのモジュールに置き、データ出力選択マルチ
プレクサ(第2図の59)を介して内部にそれらの出力を
「点在」させることにより、それを回避する。以下に示
す説明では、この動作をメモリ・データ取出し動作に関
連付け、またやはり第2図に示したもう一方の基本アー
キテクチャ構成要素を扱う。
第2図及び第3図を参照すると、本発明によるスマート
・メモリ・カードのデータ・フロー・アーキテクチャ及
び制御論理ブロックが構成図として示されている。取出
しコマンドがカードに送られ、監視制御論理ブロック
(第3図の64)によって解釈される。この論理ブロック
は、内部制御バス(第3図の66)を介してアレイ制御論
理ブロック(第3図の63)に、取出し動作のためにアレ
イを適切に活動化させるように指示する。短時間後、ア
レイに対するアクセス時間に関して、データが内部メモ
リ・データ・バスに載せられ、一時的にメモリ取出しレ
ジスタ51に記憶される。フロー選択論理ブロック52は、
メモリ記憶バッファ53や内部データ・ループ・レジスタ
54からのデータではなくレジスタ51のデータを選択す
る。次にフロー選択論理ブロック52の出力が、ECC及び
パリティ生成論理ブロック55に供給される。論理ブロッ
ク55は、ECC出力レジスタ57に出力を供給する。
第2図のブロック56は、診断コマンドによってロードま
たは読み取られる内部レジスタを表わす。括弧内の文字
は、レジスタについての説明である。制御レジスタは
(C)で示し、状況レジスタは(S)で示し、データ・
レジスタは(D)で示す。文字(R)と(W)は、それ
ぞれレジスタが「多用途データ・バス」を介して読取り
または書込みができるかどうかを示すのに使用する。図
ではデータ・フロー論理の説明のためにレジスタをすべ
て示してあるが、プログラム・レジスタなどいくつかの
レジスタは、実際は制御論理ブロック(第3図の71)に
あり、チェッカ・レジスタなどいくつかのレジスタは、
データ・フロー論理ブロックと制御論理ブロックの間で
分割されている。
2重ラッチ設計、すなわち、ECC55の前のレジスタ51とE
CCの後のレジスタ57は、ECC論理機能の同期動作、及び
連続データ出力を得るためのECCを介したデータのパイ
プライン化にとって極めて重要である。ECCコード化回
路は、各データ・バイトに対して1つの未訂正パリティ
・ビットを生成することにより2重の目的を実施するの
で、パリティ生成及びECC論理機能は単一ブロックとし
て示されている。パリティ訂正が、必要な場合、コード
化論理回路に続く別の回路で行なわれる。取出し動作で
は、ECC論理ブロックは、シンドローム・データを生成
しブロック56のシンドローム状況レジスタに記憶もす
る。このシンドロームは、取出し動作と一緒に将来診断
動作が行なわれる場合に備えて保持される。ECC論理ブ
ロック55はまた、任意の適切なエラー信号を生成する。
16バイト幅(1モジュール当り8バイト)のECC出力レ
ジスタ57に一時的に記憶された取出しデータは、データ
出力選択論理ブロック59、データ出力レジスタ60及びバ
ス・ドライバ61を介して外部システムに多重化して出力
される。多重化は、各モジュールごとに一方のECCから
4バイト、次いでもう一方のECCから4バイトの8バイ
トを出力し、さらに他の2つのECCから8バイトを出力
する。性能を最適化するために、最初の8バイト転送
は、ECC出力レジスタ57とデータ出力レジスタ60に同時
にラッチされる。これについては、後で第5図に関して
より詳細に説明する。データ・パイプライン化のため、
ECC出力レジスタ57の出力はまた、内部データ・ループ
・バスを介して内部データ・ループ・レジスタ54に送ら
れてラッチされる。これは、拡張ECC動作の活動化があ
り得ることを予期して行なわれる。このレジスタは、後
続の、XECC動作の反転ステップ及びメモリ再記憶ステッ
プのために「不良」データを保持することになる。
本発明によるスマート・メモリ・カードの制御論理アー
キテクチャを第3図に示す。この論理回路は、アレイ制
御論理及び再駆動ブロック63、監視機構64及びデータ処
理制御論理ブロック65の3つの主要構成要素を含む。こ
れらの構成要素はそれぞれ、内部制御バス67によって相
互接続され、クロック論理ブロック68から線67を介して
内部クロック信号を受け取る。アレイ制御論理ブロック
63は再生カウンタ69とスクラブ・カウンタ70を含む。こ
れらのカウンタについては、後で第15図に関してより詳
細に説明する。監視機構64は、アレイ制御論理ブロック
63及びデータ・フロー制御論理ブロック65を構成する状
態マシンを駆動する主状態マシンである。それに含まれ
るプログラム・レジスタ71は、適切なカード形式とシス
テム適用業務に合わせて状態マシンを初期化/個性化す
るのに使用される。データ・フロー制御論理ブロック65
は、特殊機能レジスタ(SFR)72を含む。SFRは主とし
て、種々の診断動作及び自己検査動作のためにデータ・
フロー論理ブロック65を個性化するのに使用される。プ
ログラム・レジスタ71とSFR72は、第2図に示した診断
状況レジスタ及び内部制御レジスタ56の一部である。
第1図のメモリ・カードのデータ・フロー・アーキテク
チャを、第4図により詳細に示す。ただし、同じまたは
類似の構成要素は第2図で使用したものと同じ参照番号
で示す。第4図で、参照番号に付加された接尾辞「a」
または「b」はそれぞれ偶数及び奇数のデータ転送論理
回路を示す。データ・フローの主要部分をよりよく示す
ため、第5図を参照する。第5図は、第4図のデータ・
フロー図の破線領域の論理回路の拡大図である。
本発明によるスマート・メモリ・カードについて述べる
べき最初の様態は性能である。ここでは、主要な取出し
及び記憶転送速度の問題とそれに関連する解決法につい
て述べる。さらに、メモリ・カードの全体的性能を向上
させるための他のユニークなアーキテクチャ及びインタ
ーフェース技術についても述べる。
新世代IBM9370シリーズ・コンピュータが必要とするよ
うな、27ナノ秒ごとにカード1枚当り8バイトという速
さのデータ転送速度を達成するため、メモリ・カード・
アーキテクチャでは、カード上で2つの形のインターリ
ーブを利用する。第1の形は、現在使用中の大半の動的
ランダム・アクセス・メモリの固有部分であるページ・
モード動作に関するものである。第2の形式は、16バイ
トの内部アレイ・バスと8バイトの外部システム・バス
間のオンカード操作である。本発明による「スマート」
メモリ・カード・アーキテクチャは、後述する単純なイ
ンターフェースとあいまって、このインターリービング
を可能にし、広範囲のインターリーブ方式に使用して様
々な性能上の要件を満たすことができる。
タイミング図を第6図に示す。活動状態のアレイ・ペー
ジ・モード動作中にアレイ列アドレス・ストローブ(CA
S)線をインターリーブすると、背面取出しまたは記憶
動作の場合よりメモリとの間でのデータのより高速な転
送が可能になる。一例として、第6図を参照すると、1
対のメモリ・バンクのすべてのアレイに対するアレイ行
アドレス・ストローブ(RAS)が活動化され(低レベ
ル)、取出しページ・モード動作中ずっと保持される。
次いでバンクAに対するCASが活動化されて、メモリか
ら16バイトを取り出し、続いて、バンクBに対するCAS
が活動化されてさらに16バイトを取り出し、続いてバン
クAからさらに16バイトが取り出され、最後にバンクB
から16バイトが取り出される。これらの4回の16バイト
・アレイ転送は、次いでECC論理回路により2重16バイ
ト・レジスタ(第2図の51と57)を介してパイプライン
化される。本発明は、アレイのバンク1個当りわずか2
ページ・サイクルの場合について示す。しかし、ページ
・モード動作は、1回のRAS活動化中に多数のCAS活動化
を含むことができる。すなわち、多数の取出し動作に対
する16バイト・アレイ転送の実際の数を飛躍的に増大さ
せることができる。ベクトル処理の性能を向上させるた
めに、アレイ・バンク1つ当りのページ・サイクルの数
を増加させることができる。現在使用されているアレイ
に対するページ制限でも、十二分な能力が提供される。
メモリへのまたはメモリからの各16バイト・アレイ転送
は、それぞれ奇数及び偶数システム・データ転送とカー
ド上またはカード外でインターリーブされる。取出し時
のデータの16バイトから8バイトへの多重化は、出力多
重化回路73と74(第4図)によって実行される。記憶時
の8バイトから16バイトへの変換は、受け取ったシステ
ム・データを記憶バッファの奇数セクション125aまたは
126a及び偶数セクション125bまたは126b(第4図)に経
路指定することによって実施され、対応するシステム転
送用の当該のラッチ・セクションのみを使用可能にす
る。
取出し時16バイトから8バイトへの変換について、以下
に第4図と第5図に関して説明する。LGAラッチ51aから
の偶数転送はECCA55aに供給され、LGAラッチ51bからの
奇数転送はECCB55bに供給される。ECCA55a及びECCB55b
の出力は、それぞれLGBラッチ57a及び57bにラッチされ
る。これらのラッチは、低速マルチプレクサ(MUX)73
に出力を供給する。ECCA55aとECCB55bの出力はまた、マ
ルチプレクサ73の出力と共に高速マルチプレクサ(MU
X)74に供給される。高速MUX74の出力は、システム転送
ラッチ60を介してドライバ61に供給される。ドライバ61
は、システム・バスへのインターフェースをもたらす。
取出しの第1の8バイト転送は、常に高速マルチプレク
サ経路0または1を介して送られ、第2の8バイト転送
は高速マルチプレクサ経路2を介して送られる。第1の
8バイト転送は、関連する16バイト・アレイ転送がLGB
ラッチ57にラッチされるのと同時に、システム転送ラッ
チ60にラッチされる。
以下の例に示すように、連続する4回の16バイト転送
は、CAS線をインターリーブして、この64バイトのデー
タを8回の8バイト転送でシステム・バスに転送するこ
とにより、メモリから取り出される。この2つのインタ
ーリーブ動作により、8回のデータ転送がすべて連続し
最小のシステム・クロック速度で行なわれるように、エ
ラー訂正コード(ECC)回路55aと55bを介してデータを
パイプライン化することができる。この動作のタイミン
グ図を、第7図に示す。第7図では、括弧内の数は、タ
イミング・パルスが高レベルのとき、どのレジスタ・ラ
ッチが使用可能になるかを示す。a/bは、偶数(a)デ
ータと奇数(b)データの両方(完全16バイト)が動時
にラッチされることを示す。
取出し動作時の27ナノ秒という転送速度を満たし、最適
なデータ制御の柔軟性を可能にするために、ユニークな
出力マルチプレクサとラッチ回路を開発しなければなら
なかった。この回路は、2つの重要なタイミング経路を
満たさなければならなかった。一方の経路は、ECC取出
し論理回路を介する内部ラッチ51からラッチ57への遅延
で、他方の経路はシステム・バス出力へのラッチ60であ
る。システム・バスを横切るラッチ間遅延が27ナノ秒と
いう要件のため、システム・ラッチ60とドライバ61の間
に組合せ論理回路を配置することは妨げられた。したが
って、16バイト・アレイ転送から8バイト・システム転
送へのインターリーブのためのマルチプレクサ論理回路
は、内部ECCラッチ・グループ間に配置しなければなら
ない。このため、システム・ラッチ60でラッチされてそ
の直後に送り出されるように、ECC回路55aと55bで各ア
レイ転送(偶数または奇数)の最初の8バイトを得るこ
とに関して問題が生じた。この特殊なラッチ及びマルチ
プレクサの方式は、データ及びパリティ・ビットならび
にいくつかのエラー信号に使用される。次にこの方法に
ついて詳細に説明する。
以下の説明の理解を助けるために、用語の定義を示す。
通常取出しという用語は、64バイト(4アレイ転送)境
界を越えるデータ循環が起こらないことを意味する。す
なわち、転送列01234567、G34567、456、G7などは許容
されるが、12345670、670123、70などは許容されない。
01234567の列を第7図のタイミング図に示す。ページ取
出しという用語は、完全8転送動作のみを指し、その際
に境界を越えることが許容される。偶数開始列の例は、
23016745、67452301などである。奇数開始列の例は、10
325476、54761032などである。
偶数(ECCA55a)システム転送を最初に送り出す通常取
出しまたはページ取出しでは、以下に示す動作が行なわ
れる。許容される開始及び奇数非ページ動作のタイミン
グ・ギャップをGとして示す。16バイト・アレイ取出し
は、カード上の両方のモジュールのLGA51aと51bにラッ
チされる。取出しの場合について、この点を、第7図に
クロック・ポイント3で示す。両方のモジュールを横切
る4つのECCがこのデータを処理し、完全16バイトがク
ロック・ポイント5でLGB57aと57bにラッチされる。LGB
57aと57bにラッチされた16バイトは、第2の8バイト・
システム転送の間データを保持するが、クロック・ポイ
ント5でLGA51に同時にラッチされた次の16バイト・ア
レイ転送は、ECC論理回路55aと55bを介してパイプライ
ン化される。保持されたLGBデータは、拡張ECCが呼び出
される場合に使用される完全16バイト内部データ・ルー
プ(+検査ビット)にも使用される。同時に(クロック
・ポイント5で)、この特定の場合(偶数が最初)、各
ECCA55aからの8バイトが、「高速マルチプレクサ」74
経路0を介してシステム・ラッチ60に送られ、次いでシ
ステム・バス上でドライブされる。次のクロック(クロ
ック・ポイント6)で、各ECCB55bからの以前にラッチ
された8バイトが、LGB57bから「低速マルチプレクサ」
73経路1及び高速マルチプレクサ74経路2を介してシス
テム・ラッチ60に送られる。したがって、カード外での
連続8バイト転送は、一方のモジュールからの4バイト
と他方のモジュールからの4バイトで構成される。
奇数(ECCB55b)システム転送を最初に送り出す通常取
出しでは、データは、LGA51a、51b及びLGB57a、57bにラ
ッチされ、前述の場合と同様にECC55a及び55bによって
処理される。しかし、ECCB55bデータは、LGB時(クロッ
ク・ポイント5)にシステム・ラッチにラッチされな
い。データが転送ストリングをラッチ・アップする前に
間隙を置くために1クロック・サイクルの遅延を設け
て、クロック・ポイント6で奇数データをシステム・ラ
ッチ60に保持し、転送ストリングがこのケースで連続す
るようにさせる。その結果、最初のケースで使用したも
のと同じLGB−システム・ラッチ・マルチプレクサ方式
に従う。ただし、LGB時におけるシステム・ラッチへの
「高速マルチプレクサ」74経路0入力が阻止される。
奇数(ECCB55b)システム転送を最初に送り出すページ
取出しでは、奇数転送は、その前に間隙を置かずに、直
接送り出される。この場合、システム・ラッチは、「高
速マルチプレクサ」74経路1を介して、LGB時(クロッ
ク・ポイント5)にECCBデータをロードされる。次のク
ロック(クロック・ポイント6)で、各ECCA55aからの
以前にラッチされた8バイトが、「低速マルチプレク
サ」73経路0及び「高速マルチプレクサ」74経路2を介
してLGB57aからシステム・ラッチに送り出される。
システム・バスへのコマンドで活動化された診断データ
転送はすべて、前のサイクルからのデータを保持する
「LGB様」ラッチからくる。長いLGB−ECC経路は最初の
バス転送には含まれないので、すべての診断コマンド取
出し転送は、「低速マルチプレクサ」73を介して経路設
定される。本発明によるメモリ・カードに必要な診断取
出しの数に対応するために、「高速マルチプレクサ」74
に追加の「低速マルチプレクサ」73経路入力(3)が追
加されて、均衡の取れた4−1マルチプレクサになる。
「低速マルチプレクサ」73は、必要に応じた幅にでき
る。この幅の増加は、多目的データ・バスの柔軟性によ
って獲得できる、前述の転送深さの増加に関連する。コ
マンドには関連しないが、内部特殊機能レジスタ(SF
R)(第2図の56)設定に関連する診断データ転送は、L
GBラッチ及び出力マルチプレクサの前にデータ経路に経
路設定される。すなわち、それらの転送は、上記の3つ
のケースのいずれかに応じて処理される。
第8図に示すように、カード上の別々の4つの4バイト
ECC75、76、77及び78を使用すると、カード上アレイ・
バスは16バイト幅だとしても4バイト直接記憶動作を行
なう手段が与えられる。主メモリ記憶装置の多くは16バ
イトより小さいので、このことは、キャッシュが存在し
ないときシステム性能にとって重要である。この細分性
の高いECC方式により、ECC境界から始まるすべての記憶
は、44バイトずつの増分で直接記憶として実行すること
ができる。直接記憶が実行できないときは、同じ結果を
得るために追加の読取り・修正・書込み(RMW)サイク
ルが必要となる。
4つの4バイトECCを使用すると、またメモリ・アレイ
が、×1構成の代わりに×4構成で使用できるようにな
る。×4アレイ、すなわちチップ1個当り4つのデータ
入出力を用いると、メモリの細分性が向上する。すなわ
ち、設定されたメモリ・チップ密度で、個々のバンク内
のメモリの深さを減少させ、そのバンク内のアレイの入
出力幅を増加させることにより、より小さなカード・ア
ドレス密度を実現することができる。たとえば、512K×
2アレイを用いて16バイトの帯幅を得るために、80アレ
イが必要である。追加のアレイは、各ECCに関連する検
査ビット及び予備ビット用のものである。すなわち、バ
ンクのメモリの深さは、512Kで、バンクのサイズは8メ
ガバイト(Mb)である。最小の2つのバンク・カードは
16Mbである。前述した必要なインターリービングのため
に常に少なくとも2つのバンクがなければならない。1M
bのDRAMを256K×4に構成する場合、そのバンクに対す
る160ビット(16バイトに対して128ビット、検査ビット
用に28ビット、予備ビットに4ビット)を得るのに40ア
レイしか必要でない。すなわち、バンクは、わずか深さ
256K、サイズ4Mbである。同じ幅のアレイ・バンクをさ
らに追加することにより、プロセッサのカード密度の全
範囲が実現される。細分性を減少するために×4構成に
し、直接書込み効率のために4つのECCを設けると、第
8図に示すようなある種の方式で内部アレイ・バスを構
成することにより、重要な信頼性上の利点が実現され
る。各アレイからの入出力1は第1のECC75に送られ、
各アレイからの入出力2は第2のECC76に送られ、入出
力3は第3のECC77に、入出力4は第4のECC78に送られ
る。このようにして、チップ破損などの大きなアレイ障
害が起こっても、せいぜい1ECCワード当り1ビットしか
影響を受けない。このため、単一エラー訂正(SEC)ハ
ードウェアがその障害を補償するため最も効率的に動作
することができる。
冗長アレイも×4で構成される。このようにして、各EC
Cワードに冗長ビット(予備ビット)を設けることがで
きる。この論理回路は、故障チップを置換するために冗
長アレイの4つのビットすべてを交換し、あるいはチッ
プの入出力の故障を置換するためにビットの一部だけを
置換することができる能力をもつ。個別化された各ECC
ごとにこの交換を制御するために、チップ上に冗長ビッ
ト・アドレス・レジスタが設けられている。カード上の
アレイ・バンク間を別々に制御するための追加の冗長ビ
ット・アドレス・レジスタも存在する。すなわち、一方
のバンク中の冗長アレイが位置1の故障チップを交換し
て外し、他方のバンク中の冗長アレイが位置9の故障チ
ップを交換して外すことができる。4つのECCと×4構
成でアレイを使用することの結合効果が完全に実現でき
るのは、データ選択を伴うアレイを使用するときだけで
あることに留意されたい。すなわち、個別データ選択を
伴う1Mb及び4Mbのアレイを使用すると、データ選択をも
たない標準アレイに対して大きな性能上の利益が得られ
る。
第2図を参照すると、取出し動作の場合、ユニークな2
重ラッチ・グループ51及び57のデータ・フロー設計を利
用することにより、本発明によるメモリ・カードで、EC
C論理遅延の固有の影響が最小になり、回路カウントも
大幅に減少する。記憶動作では、2重ラッチ対は53及び
57であり、内部データ・ループ動作を必要とする動作で
は、2重ラッチ対は54及び57である。データがECC55に
ラッチされそこから取り出されるこの同期2重ラッチ方
式は、データをECC55を介して高速度でパイプライン化
することができる。さらに、取出し時には、ECC入力ラ
ッチ51は、データをECCコード化回路に同期させること
により、全体的ECC性能を向上させる。このことが重要
となるのは、1つまたは複数のアレイに欠陥があり、そ
のデータ出力が不定レベルにあるときである。入力ラッ
チ動作は、このデータを強制的に良好状態または不良状
態にするが、どちらの状態もECCによって処理でき、か
つ必要な場合はXECCによって処理できる。ECC出力の同
期化により、取出し時にシステムへの転送を行なうと
き、特にビットが訂正されるとき、すべてのデータ及び
パリティが有効になり、記憶動作が実行中の場合に、ア
レイに転送すべき有効検査ビットがすでに生成されてい
るようになる。
またこの2重ラッチ同期設計は、様々なクロック速度に
関する柔軟性をももたらす。ラッチ間でデータをパイプ
ライン化することによって、ECC55中のフローを、最も
遅いラッチ間経路のタイミング・マージンを十分に見込
んだクロック速度の数倍の速度で、クロック速度と同調
させることができる。本発明によるメモリ・カードを使
用するロー・エンド・プロセッサのクロック速度は40ナ
ノ秒である。すなわち、取出しの場合、LGAラッチ51か
らLGBラッチ57に至るECC経路が、1クロック遅延となる
ように同調される。記憶動作の場合も同じことがいえ
る。ハイ・エンド・プロセッサのクロック速度が27ナノ
秒の場合、内部ラッチ間転送に2つのクロック・サイク
ルが見込まれる。外部システム・バスを横切る1回のク
ロック転送を行なうために、レシーバからラッチへ及び
ラッチからドライバへの遅延が制限されるように、内部
論理回路の周りにカード内部ラッチ・グループが置かれ
ている。設計の目的は、それらの間に組合せ論理回路が
ないようにすることであった。
内部取出し経路論理回路を通過するのに必要な時間を最
小にするために、パリティ生成が、ECCコード化論理回
路と並列に行なわれる。実際に、パリティ生成論理回路
の多くは、コード化論理回路の部分から構成され、した
がって、回路が節約できる。ECCによるバイト内の可能
なデータ・ビット訂正を補償するため、パリティ・ビッ
トは、その経路中でデータ経路中のものと類似の訂正XO
Rをもつ。バイト中の任意のビットが訂正(反転)され
た場合、システム・バス上で適切なパリティを維持する
ために、関連するパリティ・ビットが反転される。
このアーキテクチャを用いて、ECC及び他の内部論理回
路を通過するラッチ・フローを1方向にすることにより
回路数が大幅に減少する。XECC及びRMWの内部ループを
含めてすべての動作に対して、このことがあてはまる。
このため、装置負荷を最小にし、チップ上のワイヤ長さ
を短くすることによって、ECC経路の総遅延が間接的に
減少する。チップに対する双方向データ・フローの効果
は、第2図に示すような、ラッチ・グループ51、53、5
7、60と、システム・ドライバとレシーバの対61、62及
びメモリ・ドライバとレシーバの対50、58との間でのユ
ニークな経路設定によって実現される。ECC出力ラッチ5
7は記憶時は直接メモリに入力を供給し、取出し動作中
には出力回路60を介してシステムに入力を供給する。EC
C入力ラッチ51と53はそれぞれ、取出し時はメモリ・レ
シーバ50から、また記憶時はシステム・レシーバ62か
ら、入力を供給される。
このカード・インターフェースの重要な特徴は、幅の広
い多目的データ・バスである。このバスを使用すると、
適正なカード機能のためにこのメモリ・システム・イン
ターフェースに追加しなければならない制御入力と状況
出力及びエラー出力の数が制限される。すなわち、これ
は、カード設計で直面する機能対チップ/モジュール入
出力(I/O)の制限に対する重要な解決策である。多目
的データ・バスは、カードの柔軟性の要件に対する重要
な解決策でもある。モジュール入出力段での多目的バス
の仕様は以下の通りである(第9A図及び第9B図を参照さ
れたい)。
モジュール入出力バス(合計45ビット) a)双方向データまたはアドレス入力用のバイト1ない
し3(24) b)双方向データまたはコマンド、フィールド長入力用
のバイト0(08) c)他のモジュールのバイト0の入力用の補助バイト
(08)(この分岐により、カード・タブのコマンド及び
フィールド長情報の単一入力が論理モジュールによって
共用できる。またこの分岐により、コマンドとアドレス
の全体を1サイクルでカードに転送でき、そのため性能
が向上することに留意されたい。) d)4つの双方向データ・バイト用の双方向パリティ・
ビット0−4(04) e)補助バイト用のパリティ・ビット入力(01) この多目的データ・バスは、同じバス線上で様々な入出
力データ・フィールドを多重化することにより、システ
ム・インターフェースにおけるカード信号入出力の総数
を減少させる。データ及びアドレス/コマンド/フィー
ルド長による実際の多重化指定を第9B図に示す。たとえ
ば、モジュールL(第9A図)のデータ・バイト0は、選
択(SEL)が表明されたときカードに送られる「コマン
ド」ワードのフィールド長部分と多重化される。(バイ
トAで示した)補助バイトは、「コマンド」ワードに対
してだけ存在し、データ・ワード転送には存在しないこ
とに留意されたい。関連するパリティ・ビットは第9B図
には示されていない。最も重要なことであるが、このこ
とが、カード論理回路上のチップ入出力信号パッド及び
モジュール入出力ピンの削減に直接に関係している。
「スマート」メモリ・カードの好ましい実施例の多目的
バスの特定のデータ・フィールドを、以下のリストに示
す。
1)入力フィールド a)コマンド/フィールド長/アドレス(「コマンド」
ワード) b)通常記憶データ(パリティを含む) c)診断データ(1) 制御レジスタは次のものをロードする。
i)特殊機能レジスタ72 (データ・フロー論理の内部制御) (非コマンド診断動作開始) ii)冗長ビット・アドレス・レジスタ56d (内部ビット交換を制御する) iii)プログラム・レジスタ71 (内部制御論理回路の初期化) データ・レジスタ・ロード56f i)検査ビット・レジスタ ii)冗長ビット・レジスタ d)診断データ(2) データ・ループ記憶 直接検査及び冗長ビット記憶 ECCなしの記憶 2)出力フィールド a)通常取出しデータ(パリティをもつ) b)診断データ(1) 制御レジスタは次のものを読み取る。
i)特殊機能レジスタ72 ii)冗長ビット・アドレス・レジスタ56d iii)プログラム・レジスタ71 iv)マスク・レジスタ56c データ・レジスタは次のものを読み取る。
i)検査ビット・レジスタ56f ii)冗長ビット・レジスタ56f 状況レジスタは次のものを読み取る。
i)シンドローム・レジスタ56a ii)チェッカ情報56b iii)拡張ECCカウンタ56e d)診断データ(2) データ・ループ取出し 直接検査及び冗長ビット取出し ECCなしの取出し 上記のリストで、診断(1)は、コマンドで駆動される
ものに関する。コマンド・リストについては表1を参照
されたい。診断(2)は、特殊機能レジスタ(SFR)72
の設定によって制御されるものに関する。SFR72のロー
ドはコマンドによって駆動されることに留意されたい。
表1のコマンドHEX060を参照のこと。表1には「16進コ
ード解釈」図及び例も含まれている。
メモリ・カード上の論理回路は、2つの主要部分に分か
れる。1)制御論理回路、第1図の46b−eまたは47b−
e。監視機構64(状態マシン制御装置)、第3図のアレ
イ制御論理回路63、及びデータ・フロー制御論理回路65
から構成される。2)データ・フロー論理回路自体、第
4図の46aまたは47a。ECC及び冗長ビット交換論理回路
及びカード上のアレイ・バスとカード外のシステム・バ
スの間の様々なデータ経路を含む。
多目的データ・バスは、カード選択時(活動SEL入力)
にコマンド/フィールド長/アドレス転送を介して、ま
たは診断コマンド(第1表に示した060コマンドまたは0
D0コマンド)の1つによってロードされた内部レジスタ
を使って制御入力信号の大半を処理する。
クロック及びドライバ制御マクロ(17信号)及び非シス
テム使用アレイ検査信号(2)用のもの以外にバス入力
の外部に追加しなければならないただ2つの専用モジュ
ール入力を以下にリストする。この場合、クロック及び
ドライバ・マクロ入出力は、システムの大半またはすべ
てのカード上で標準的なものなので、扱わない。
制御入力の最小セット 1)SEL:カード選択信号 2)SEF:カード再生活動化信号 多目的データ・バスは、診断取出しコマンド(表1に示
す160コマンドまたは1D0コマンド)を使って、状況及び
エラー信号の大半を処理する。多目的バスの外部に追加
しなければならない唯一の状況モジュール入出力を以下
にリストする。
状況/エラー信号の最小セット 1)BUSY:カード使用中状況信号 2)XFER:システムへの有効データ転送状況信号 3)MCL:機械チェック・エラー信号 4)MBE:複数ビット・エラー信号 5)SBE:単一ビット・エラー信号 6)UCE:訂正不能エラー信号 多目的データ・バス及び上記の信号によってカバーされ
ない残りのモジュール入出力は、以下にリストする論理
回路間で必要なチップ間連絡信号だけである。
1)MSYNC:機械チェック同期信号 2)XSYNC:拡張ECC同期信号 3)SSYNC:同期スクラブ信号 4)MACKN:機械チェック肯定応答信号 5)XACKN:拡張ECC肯定応答信号 6)SACKN:スクラブ肯定応答信号 このインターフェースは、従来のIBM9370プロセッサの
メモリ・インターフェースに幾分類似しているが、コマ
ン処理方式の大きな改良によって、機能能力が増大し、
柔軟性が向上し、システム・コマンドが減少する。従来
のIBM9370プロセッサ・メモリ・インターフェースは、
7ビットのコマンド・フィールドをもち、そのすべての
ビットが復号されて一定数の専用コマンドをもたらす。
これは、診断コマンドには十分であったが、取出し、直
接記憶、及び読取り・修正・書込み(RMW)動作にとっ
てはやや不十分である。この幾分ランダムな復号方式は
4ないし64バイトの6つの異なる記憶「長さ」及び6つ
の異なる取出し「長さ」しかもたらさなかった。読取り
・修正・書込み動作は、システムによって生成された別
々の取出しコマンドと部分記憶コマンドから構成される
別々の16個のコマンドによってカバーされる。
本発明による改良されたIBM9370プロセッサ・メモリ・
インターフェースは、以下に示すような構成の10ビット
・フィールドをもつ。コマンド・ビット取出し/記憶制
御用に1つと、通常/診断動作制御用に1つの計2つし
かない。これらは、表1の「16進コードの解釈」リスト
に示した上の2つのビットである。表1のそれらの下に
示した他の8つのビットは、2通りに使用される。診断
コマンドでは、それらのビットは、専用診断動作を選択
するための直線的復号として使用される。しかし、通常
コマンドでは、それらのビットは、その取出しまたは記
憶のフィールド長を示すのに使用される。通常コマンド
をX(2XX、3XX)で示したのはそのためである。Xは、
許容される記憶または取出しの「長さ」に対して存在で
きる様々な16進値を表わす。フィールド長は、開始バイ
ト・アドレスとあいまって、カード1枚当り1ないし25
6個までの連続バイトがその単一コマンドの作用を受け
るようにすることにより、個別のバイトごとの柔軟性を
もたらす。カードごとの実際の実施例は、最高64バイト
である。これは、論理回路を変えることによって256バ
イトにまで容易に拡張することができ、256バイトの限
界は、アーキテクチャにさらにフィールド長ビットを追
加することによって変更できる。その最大の利点は、ど
の通常記憶動作にも1つのコマンドしか必要でなく、ど
の通常取出し動作にも1つのコマンドしか必要でないこ
とである。記憶動作の場合、この1つの関連するコマン
ドの開始アドレスとフィールド長を、カード上の論理回
路が使って、直接記憶を行なうかどうか、または8256の
固有の読取り・修正・書込み動作のうちの1つを内部で
行なうかどうかを自動的に決定する。
第10A図ないし第10H図は、「SB」列の番号で示される開
始バイト・アドレスと「FL」行の番号で示されるフィー
ルド長の関係を示す。たとえば、「321」コマンドは、
第10A図の表に基づいて次のように解釈される。16進数
の3は、それが取出しコマンド(3XX)であることを意
味する。16進数21は、2つのXを表し、したがって関連
する取出しコマンドのフィールド長を表し、FL=33と解
釈される。関連する開始バイト・アドレスがSB=000の
場合、第10C図に進んで、それらに対応するボックス中
での「.」または「」を見つける。FL=33及びSB=00
0は、ボックス中の「.」に対応する。記憶コマンドを
考慮するとき、「.」と「」だけが一義的な意味を持
ち、それらの意味は第10A図で説明されている。「3転
送」は、関連するデータを取り出すために行なわなけれ
ばならないシステム転送の回数に関係する。「(HE)」
は、2カード・ポートを指す。これらの表は、8回の転
送で移動できる128バイトの最大数に関係する127の最大
FLを示す。1枚のカードに対する前述の最大値は64バイ
トなので、128バイトでは2枚のカードが必要になる。
多目的データ・バス上での多重化により、カード上の特
殊制御レジスタに対して任意の数の診断記憶または取出
しが可能となる。メモリ・カード上の2個の論理モジュ
ールはそれぞれ、2つの重要制御レジスタを有し、それ
が本発明によるインターフェースに関連する柔軟性の多
くをもたらす。チップ上の制御レジスタは、非常によく
使われている設計ツールであるが、それらのレジスタに
よってサポートされるメモリ・カードに関連する機能の
組合せは独特である。これらの機能をリストし、要約し
て記述する。
特殊機能レジスタ(SFR)72は、通常コマンドがデータ
・フロー中で実行される方式、またはデータ・フロー経
路自体が任意の動作に対して構成される方式を修正する
ために使用される。レジスタの24ビットは、下記の機能
を提供し、また将来グレードアップの際に追加する機能
を収容する。このレジスタは容易に32ビットまたはそれ
以上に拡張できる。従来のIBM9370メモリ・カードは4
つのSFRビットしかもっていなかった。そのうちの3つ
が復号されて、以下の8つの機能を提供していた; a)特殊機能なし:b〜d)1モジュール当り1つだけの
データ・ビット、検査ビットまたはその両方に対するハ
ード故障シミュレーション:e)通常読取り時のECC:f)
メモリなしの単純データ・ループ:g)通常取出し/記憶
コマンドに対するメモリ・オーバーヘッド・ビット:及
びh)EECなしの記憶時の使用禁止冗長ビット・レジス
タである。4番目のSFRビットは、シンドローム・レジ
スタを使用可能にするために様々なモードを選択するの
に使用された。本発明によるSFR72により、以下の制御
が可能となる。
1.データ・ループ:異なる3種のデータ・ループ動作を
実行して、システムがメモリに行くことなくカード・デ
ータを記憶し取り出すことができる。この機能を使う
と、カード上の3つの主要データ・フロー経路が、メモ
リからの干渉(またはメモリに対する妨害)なしにチェ
ックアウトできる。この機能はまた、他の様々な診断に
も使用でき、カードを小型キャッシュとして使用するこ
とさえもできる。
2.通常コマンドに対するメモリ・オーバーヘッド・ビッ
ト:この機能を使うと、通常記憶及び取出しコマンドを
用いてすべての検査ビット及び冗長ビット・アレイ位置
の迅速な検査が可能になる。これは、カード上のすべて
のアレイ位置を迅速に検査するために、システムが「ア
レイ検査モード」動作を使用することができない場合に
その補償をする助けとなる。「アレイ検査モード」につ
いては、後でより詳細に説明する。
3.ハード故障シミュレーション:この機能を使うと、カ
ードに物理的な損害を及ぼすことなく複数のビットを1
つの値にスタックすることができる。カード拡張ECC動
作の完全な能力が検査できるのは、ハードウェア故障が
存在する(スタックされたビット)場合だけである。カ
ードが「クリーン」(スタックされたビットのようなア
レイ障害がない)メモリの状態で出荷されるので、アレ
イの問題点をシミュレートするには、スタックされたビ
ットを論理回路中で活動化しなければならない。スタッ
クできるのはECC1つ当り2(モジュール当り4)ビット
である。スタックされた各ビットは、複数のビットの復
号ではなく、SFR中の単一ビットによって制御される。
すなわち、4つのビットの任意の組合せが可能である。
4.ECC禁止:取出しまたは記憶に関連するECC動作を禁止
できる。取出し時の訂正またはデータ・エラー信号も、
記憶時の検査ビット生成もない。冗長ビットも検査ビッ
トと一緒に制御できる。IBM9370プロセッサの設計で
は、専用コマンドで記憶時のECC禁止を行なわなければ
ならなかった。
5.拡張ECC禁止:拡張ECCが、取出しコマンド、または読
取り・修正・書込みに関連する事前取出しあるいはその
両方に対して個別に禁止できる。
6.拡張ECCカウンタ:拡張ECCカウンタが、外部状況信号
の活動化をトリガする速度が、このレジスタによって制
御される。システムは、この状況線を監視してメモリが
どのぐらい「汚れているか」についての指示を得る。診
断ルーチンは適切な時に通常の動作を中断して、アレイ
障害の程度を決定し、また深刻な性能の低下さらに不良
データの逸出をもたらす恐れのある、故障メモリの大き
な部分を交換するために予備ビットを使用できるかどう
かを決定すべきことを示す表示として使われる。
7.シンドローム・レジスタ:SFRは内部レジスタが後で読
み出せるように特定の動作シンドローム・データをいつ
保持するかを制御する。それらの内部レジスタは、異な
る4種のエラーのケースに応じて使用可能になる。1)
誤りなし:各取出し転送ごとにレジスタが更新される。
2)単一ビット・エラーの発生時にのみ、レジスタが更
新され保持される。これは、デバッグ中に使用して、長
時間の実行中に断続的に起こる単一ビット・エラーの発
生を捕捉することができる。次いで、保持されたシンド
ロームを使って、その障害に関連するアレイ・ビットを
特定することができる。3)任意の多重ビット・エラー
の発生時にレジスタが、更新され保持される。4)拡張
ECC動作中に単一ビット・エラーに対してのみレジスタ
が更新され保持される。この場合、シンドロームを使っ
て、拡張ECC動作をトリガした2重ビット障害の種類を
決定することができる。XECC動作自体がうまくいかなか
った場合、2つ(または4、6、8、10など)のソフト
障害がある。XECCがうまくいき、影響を受けるECCに対
する関連するシンドロームがすべてゼロであった場合、
2つのハード障害が存在し、訂正された。シンドローム
が有効な奇数値の場合、1つのソフト障害及び1つのハ
ード障害が存在し、訂正された。XECC動作で、メモリか
らソフト・エラーがスクラブされ、奇数のシンドローム
値はそれがあった場所を示す。ハード障害は、新しいア
レイと物理的に置換し、あるいは電気的に交換しなけれ
ばならないメモリ中での実際の故障である。ソフト障害
は、放射線またはノイズによって変更されたアレイ中の
データである。アレイが損傷を受けていず、したがって
その障害は訂正できる。
8.周波数スクラブ:再生時にソフト・エラー・スクラブ
動作を活動化して、それが発生する率を制御する。
プログラム・レジスタ71は、どの種類のカードが差し込
まれるかを監視し、システム構成がどんなものであるか
を知ることによって決定されるシステム入力に基づい
て、カードの動作を個性化するために制御論理回路によ
って使用される。次に、システム内に記憶された適切な
データがこのレジスタにロードされる。このレジスタの
32ビットは、以下に示す機能を提供し、将来グレードア
ップの際に追加される機能を収容する。
1.カード・サイズ指示 2.カード上のアレイ・バンクの数 3.ポート中のカード位置 4.ポート中のカード数 5.ECC伝播遅延 6.同時切替えに対するメモリ・ドライバ・スキュー動作 7.カード使用中信号のプログラミング 8.アレイRAS及びCASパルスを変更するための様々の制
御。
この変更により、異なるアレイ技術が使用でき、また実
際のハードウェア性能に基づいてアレイ・タイミング・
マージンを改善することができる。こうしたプログラム
・レジスタは従来のIBM9370メモリには存在しなかっ
た。
本発明によるカード・アーキテクチャは、最小の専用入
出力及び論理オーバーヘッドをもつが、カード上での製
造検査時間を半分に削減できる、「アレイ検査モード」
を提供する。「アレイ検査モード」を用いると、カード
上のあるメモリ位置にあるすべてのデータが、検査ビッ
ト(CB)と冗長ビット(RB)を含めて1回のアレイ転送
(2回のシステム転送)記憶及び1つのアレイ転送再取
出しによって検査できる。これを行なうには、カード上
のECC及びパリティ活動を完全に禁止する。取出し時に
はECC訂正及びパリティ生成が禁止され、記憶時にはECC
検出ビット生成及びパリティ検査が禁止される。パリテ
ィ用の4つのモジュール入出力が、7つのモジュール検
出ビットのうちの4つに使用され、多数ビット・エラー
(MBE)用の4つの再駆動入出力が、3つの検査ビット
及び冗長ビットに使用される。ECCが禁止され、「アレ
イ検査モード」の双方向動作に必要なレシーバは、MBE
ドライバ上のチェッカ回路に対してすでに存在している
ので、MBEが使用できる。
システム診断でカード「システム・モード」中にすべて
のアレイを検査しなければならない場合と比較すれば、
検査時間の削減が明らかになる。カード上の各メモリ・
アドレス位置ごとに、システムは、記憶及び取出しのた
めに以下のことを行なわなければならない。後で見るよ
うに、各アレイを検査するためにカード・メモリ空間全
体にわたってあらゆるアドレス位置で合計8回のシステ
ム転送を行なわなければならない。それには、カード密
度が64MB以上の場合、かなりの時間がかかる。表1に示
すように、コマンド060及び160の代わりに、取出し及び
記憶時に検査ビット及び冗長ビットだけを移動させる特
殊機能レジスタ・オプションを使用することができるこ
とに留意されたい。その結果、システム転送は8回とな
る。
記憶: a)CBレジスタ及びRBレジスタをロードするためのコマ
ンド060(システム転送2回) b)DBをロードするための、ECCが禁止されたコマンド2
XX(システム転送2回)取出し: a)DBを読み取るための、ECCが禁止されたコマンド3XX
(システム転送2回) b)CBレジスタ及びRBレジスタを読み取るためのコマン
ド160(システム転送2回) それに対応する「アレイ検査モード」では、記憶及び取
出しの場合、各アドレス位置で次のことだけを実行すれ
ばよい。後で見るように、各アレイを検査するために全
カード・メモリ空間全体にわたってあらゆるアドレス位
置で合計4回の「システム」転送を実行しなければなら
ない。
記憶: a)コマンド2XX(システム転送2回) 取出し: b)コマンド3XX(システム転送2回) この機能のただ2つの専用入出力は、CTMとRESETであ
る。CTMは、「アレイ検査モード」と「システム・モー
ド」間の切替えを行なう。RESETは、長い走査を必要と
せずに、カードを初期化する手段をもたらす。システム
は、走査を使ってカードの初期化及びその診断の多くを
行なう。リセットならびに内部レジスタ・ロード及び読
取りコマンド(コマンド060、0D0及び160、1D0)の追加
により、走査経路及び関連する制御装置がカード上で完
全に配線されるのにちょうど十分な走査で製造検査を行
なうことができる。このため、テスタのオーバーヘッド
と検査時間を減少させることができる。チップ上の走査
経路の連続性はチップ/モジュール検査で確認され、走
査ラッチの関連機能はカードの論理回路の検査中に「シ
ステム・モード」で検査される。
このカード上の「アレイ検査モード」機能を用いると、
メモリ・カードからECCを外して、異なるシステムがこ
のカードを使用できるようにすることもできる。この場
合、検査ビットと冗長ビットが、使用するカード外の論
理回路用のデータ・ビットと同時に利用できる。カード
上のRB交換はこのモードでも依然として使用できる。ア
レイに対するECC保護が、カード上の論理回路及びカー
ド外のバスまで行なわれるので、パリティ・ビットが生
成されないことは、重要ではない。
従来のメモリ設計技術を本発明によるユニークな特徴と
組み合わせることにより、IBM9370プロセッサの新バー
ジョンの性能及び機能上の要件に対応できる、一般的で
しかも同時に強力で柔軟なメモリ・インターフェース及
びアーキテクチャが実現された。
自己エラー訂正機能をもつメモリ・カードは、メモリと
のシステム対話を最小にするために、メモリへのシステ
ム記憶を処理する2つのモードを提供しなければならな
い。一方のモードは直接モードで、他方のモードは、読
取り・修正・書込み(RMW)と呼ばれる部分記憶であ
る。直接記憶が行なえるのは、重ね書きすべきデータが
1つまたは複数のカードECC境界内に完全に収まるとき
である。本発明の好ましい実施例は、4個の4バイトEC
Cをもつ。すなわち、4つのバイトがすべて1つのECC境
界内に完全に収まる場合に、4バイトの直接記憶を行な
うことができる。16バイトのカード上インターフェース
で4バイトまたは8バイトの直接記憶を行なう能力があ
るため、主記憶メモリを緩衝記憶するためのキャッシュ
・メモリが存在しないとき、システム性能の大幅な向上
が可能になる。記憶すべきデータがECC境界上で開始も
終了もしないときに、RMW動作を実行しなければならな
い。カード上のECCでは、重ね書きすべきデータの事前
取出しを最初に行なうことが必要である。可能な場合、
この事前取出しにより、ECC及び拡張ECC論理回路は、関
連するECCワード中にあるどんなエラーでも消すことが
できる。それが行なわれなかった場合、ECCワードの重
ね書きされない部分に存在するエラーが、不良データに
対する正しい検出ビットの生成によってマスクされるこ
とになる。将来完全に重ね書きされない場合、このエラ
ーの結果、その位置に対する次の取出し時に不良データ
が逸出する。RMW性能の低下は事前取出しに関係し、そ
の結果行なわれるメモリへの記憶のための純サイクル時
間が大幅に増大する。この機能を外部メモリ制御装置中
ではなくてメモリ・カード上で実施することにより、こ
の時間が大幅に削減される。
これら2つのモードを扱うため、従来のIBM9370プロセ
ッサ主記憶装置用のコマンド・セットは、4ないし64バ
イトの直接記憶用の6つの個別コマンド、部分記憶の異
なる読取り(事前取出し)部分用の8つの個別コマン
ド、及び部分記憶の複数の異なる書込み部分用の8つの
個別の関連コマンドを含む。したがって、システムは、
どのモードにし、どのコマンドを送るべきかを決定しな
ければならない。これによって、特定のカード上のECC
構成と限られた数のアレイ形式にインターフェースが固
定される。システムを将来グレードアップするには、イ
ンターフェースに変更を加えなければならない。本発明
によるインターフェース及びアーキテクチャは、システ
ムからほとんど何も必要とせずに、最適の柔軟性をもた
らす。この大幅に縮小されたコマンド・セットは、構造
化し直されたコマンド・データ書式とあいまって、単純
でトランスペアレントな動作をもたらす。ハードウェア
の観点から見たこれらの拡張機能について以下に詳しく
説明する。
IBM9370のコマンド・ワードは、8つのコマンド・ビッ
トと24のアドレス・ビットから構成される。前述のよう
に、特定の直接記憶またはRMWを行なうには、異なる22
個のコマンドのうちから全8ビットの復号を選択する必
要がある。RMWでは、選択されたコマンドは修正すべき
バイト数を示す。アドレス・フィールドの2つのビット
だけがモジュールの開始バイトを指すのに使用される。
すなわち、限られた数のRMWオプションを実行するのに
かなりのシステム動作が必要である。
IBM9370より後のモデルに対する本発明の好ましい実施
例では、2つのコマンド・ビット、8つのフィールド長
ビット及び30のアドレス・ビットから構成される「コマ
ンド・ワード」がある。カード上の2つのモジュールそ
れぞれの「コマンド・ワード」の5番目のバイトは、カ
ード・タブに64個しか固有ビットがないので、8バイト
のうちの2バイトを両方のモジュールに供給することに
よって実施する。これらの補助バイトが実際にカード上
でどう配線されるかについては第9A図を参照されたい。
2つのコマンド・ビットが、記憶動作か取出し動作か、
及び通常動作か診断動作かの選択を行なう。現在の設計
では、8つのフィールド長ビットのうちの7つを使っ
て、8回のシステム転送で書き込むべきバイトの数を選
択する。すなわち、1バイトを表わす0000000のフィー
ルド長から128バイトを表わす1111111のフィールド長ま
で使用できる。最高128バイトの範囲で、2カード・ポ
ート全体にわたるRMW動作が可能である。8番目のフィ
ールド長ビットは、深さがわずか8転送ではなく、16シ
ステム転送であるRMW動作を行なうのに利用できる。全
アドレス・フィールドは、全メモリ空間内で、RMWサイ
クルを構成する4つのアレイ転送の開始位置の選択を行
なう。そのうちの7ビットは、関連する4つのアレイ転
送(8システム転送)のグループ内での開始バイトを示
す。2カード・ポートでは、開始バイトが000の場合、
書込み可能なバイト数は、1ないし128である。開始バ
イトが127の場合、1バイトしか書き込めない。したが
って、境界を横切る循環動作は行なえない。その結果得
られる実行可能なRMW動作を、第10A図ないし第10H図に
示す。これらの図をどう解釈するかの詳細は上記に説明
した。
1カード・ポート及び2カード・ポートの境界を、第11
A図及び11B図に示す。第11A図及び第11B図のボックス内
の数は、バイト数を表わす。たとえば、20を含むサブボ
ックスは、実際には20、21、22、23の4つのバイトを表
わす。「MOD」は、関連するバイトがカード上の左側と
右側のどちらのモジュールにあるかを示す。各モジュー
ルは、A及びBで示した2つのECCをもつ。「開始」
は、開始アドレス(システム転送)が偶数(ECCA)かそ
れとも奇数(ECCB)かを示す。2カード・ポート全体で
1つのモジュール部品番号しか使用しない。したがっ
て、様々なRMW動作を実行するために、ポート全体で4
つのモジュールを一義的に個性化する必要がある。カー
ド上のモジュール位置は、ハード・ワイヤ式モジュール
・ピンによって決定される。ポート内のカード位置は、
そのモジュール中のプログラム・レジスタのシステム個
性化によって決定される。
RMW動作に関していくつかの重要な特徴がある。記憶コ
マンドの実行中、開始アドレスとフィールド長は、直接
記憶を行なうか、それともRMW(部分記憶)を行なうか
を決定する。書き込むべきデータのすべてがECCワード
に対応する4バイト境界内にきちんと含まれるときだけ
直接記憶が行なわれる。
開始アドレスがECC境界外にあり、終了アドレスが境界
上にあるRMWは、事前取出し/記憶転送とその後に続く
最高7回の直接記憶転送から構成される。これを、PW
RMWのケースと呼ぶ。開始アドレスが境界上にあり、終
了アドレスが境界外にあるRMWは、事前取出し/記憶転
送で終了し、その前に最高7回の直接記憶転送がくる。
これをWP RMWケースの場合と呼ぶ。開始アドレスも終
了アドレスも境界外にあるときは、間に最高6回の直接
記憶転送をはさんで両端で事前取出し/記憶転送が行な
われる。これを、PPRMWケースと呼ぶ。1回だけ転送が
行なわれるとき、このケースは、単一事前取出し/記憶
動作となる。これらの異なる3種のRMWサイクルで、可
能なすべてのRMWの組合せがカバーされる。上記では8
システム転送を参照したが、それが1カード・コマンド
・サイクル当り許容される転送の最高数だからである。
7回以下の転送を含むRMW動作は、これら3つのグルー
プのうちの1つのサブセット集合である。これらの異な
る3種のRMWの完全な実施例については、第12図を参照
されたい。このカード上RMW機能の基本概念は、9回以
上の転送にも拡張できる。カードは、RMWの完全な柔軟
性をもたらし、制御論理回路を比較的単純に保つように
構成されている。同時にRMW形式の最小数を3種に保つ
ため、RMWは連続するバイト・セットに対してのみ行な
われる。すなわち、事前取出しは、連続するデータ・ブ
ロックの開始バイト及び終了バイトでしか行なえない。
中間部では事前取出しは行なえない。
事前取出し中に、ECCはカード全体(または2カード・
ポート)にわたって活動状態になる。しかし、拡張ECC
(XECC)は、境界内で部分記憶が行なわれる、ECCに対
して複数ビット・エラーが発生する場合にしかトリガさ
れない。複数ビット・エラー信号はXECCに関する通常取
出し用のものなので、XECCが開始される場合は活動化さ
れない。XECC動作ステップは、1つのECCのみによって
活動化されたとしても、カード(ポート)全体にわたっ
て行なわれる。これは、アレイ・タイミングの同期を保
つためである。上記のチップ間連絡線(XSYNC、MSYNC、
SSYNC、XACKN、MACKN、SACKN)のいくつかを使って、1
枚のカード上の2つのモジュールまたは2カード・ポー
トにわたる4つのモジュールを同期する。しかし、各XE
CC動作内での作業は、そのECCの境界内で部分記憶が行
なわれているか否かに応じて変わる。このことについて
は、以下で詳細に説明する。部分記憶ECC境界内のデー
タに対するXECC動作がうまくいかなかった場合は、適切
なSFRビットが設定されていれば、未訂正エラー(UCE)
が活動状態になる。UCEが活動状態であってもなくて
も、メモリの不良データは復元され、その結果、その位
置への次のアクセスでは、不良データの逸出(非検出)
ではなく、検出可能エラーが依然として提示される。事
前取出しのみで奇数の複数ビット・エラーが生じた場
合、XECCにいかずにUCEが活動状態になる。SFR内の別の
ビットを使って、通常の取出しコマンドに対するXECCを
可能にし、同時にRMW中にXECCを非活動状態にすること
ができる。事前取出し時に単一ビット訂正を示す単一ビ
ット・エラー信号が活動状態になる。
基本的な直接記憶/RMW制御手順を、第13図の流れ図に示
す。カードが選択されたと判断ブロック101で判定され
ると、機能ブロック102で、コマンド、開始アドレス及
びフィールド長がロードされる。機能ブロック103で、
ロードされたコマンド、開始アドレス及びフィールド長
を使って、終了アドレス、アレイ数とシステム転送の
数、最初及び最後のバイト・エネーブル位置、それに必
要なら事前取出しが必要な場所を決定する。これらの計
算に基づいて、1ないし4回(または、設計されている
場合はそれ以上)のアレイ転送が、判断ブロック104で
決定された一連の動作経路に従って進行する。上記の項
目を計算する方法については、以下でより詳細に説明す
る。
4アレイ転送直接記憶WWWWでは、その後に続く動作経路
シーケンスは判断ブロック104から始まり、そこでブロ
ック106に分岐することが決定される。判断ブロック106
で、修正開始動作に従うかどうか決定するためのテスト
が行なわれる。このテストの結果はノーであり、機能ブ
ロック107で、EFBバイトの記憶が実行され、その後判断
ブロック108で、処理が完了したかどうか判定するため
のテストが行なわれる。このテストの結果もノーであ
り、判断ブロック104に戻る。次に、機能ブロック109に
進み、そこで16バイトの直接記憶が実行され、その後判
断ブロック108に進む。第3の「W」転送について、こ
の経路が、再び繰り返される。次に、第4の最後のWア
レイ転送について、判断ブロック113に進み、そこで処
理が修正で終了かどうか判定するためのテストが行なわ
れる。このテストの結果はノーであり、機能ブロック11
4で、ELBバイトの記憶が行なわれて処理が完了する。
2アレイ転送PW PMWでは、動作経路シーケンスは、判
断ブロック106から始まり、その結果はイエスである。
機能ブロック112で、完全取出しが実行され、続いてEFB
バイトごとにデータの組合せが行なわれる。次いで、機
能ブロック107及び判断ブロック108を経て判断ブロック
104に戻り、そこから判断ブロック113に進む。判断ブロ
ック113でのテストの結果はノーであり、機能ブロック1
14に進んで処理が完了する。
2アレイ転送WP RMWでは、動作経路シーケンスは、や
はり判断ブロック106から始まり、そのテストの結果は
ノーになる。検査ブロック107と判断ブロック108を経て
判断ブロック104に戻り、そこから判断ブロック113に進
み、テストの結果はイエスとなる。したがって、機能ブ
ロック115に進み、そこで完全取出しが行なわれ、続い
てELBバイトごとにデータの組合せが行なわれる。
2アレイ転送PP RMWでは、動作経路シーケンスは、や
はり判断ブロック106から始まり、そこでテストの結果
はイエスとなり、以下、PWの場合と同じ経路をたどって
判断ブロック113に進み、そこでやはりテストの結果は
イエスとなり、以下、WPの場合と同じ経路をたどって完
了する。
特殊単一転送P RMWでは、動作経路は判断ブロック110
から始まり、そのテストの結果はイエスとなる。この場
合は、機能ブロック116に進み、そこで完全取出しが実
行され、続いてELBバイトと論理的にANDされたEFBのデ
ータ組合せが行なわれる。単一直接書込み転送では、判
断ブロック110でのテストの結果はノーとなる。流れ図
には示されていないが、各完全取出し(事前取出し)に
ついて、XECCが活動状態になる必要があるか否かの決定
が行なわれる。この流れ図で参照された様々な計算は以
下の通りである。
1)開始アドレス(SA)=入力アドレス 3)計算終了アドレス(EA)=開始アドレス+フィール
ド長(FL) 3)(1カード・ポートに基づく)アレイ転送(AXF)
の数を(2進加算で)計算する: ただし、合計中の2つのビットに1つを加えると転送
の数になる(たとえば、01=2転送) 4)(1カード・ポートに基づく)システム転送(SF
X)の数を(2進加算で)計算する: ただし、合計中の3つのビットに1つを加えると、転
送の数に等しくなる(たとえば、111=8転送) 5)(SA(1:0)≠‘00'B)または(EA(1:0)≠‘11'
B)及び(AXF数=‘00'B)の場合、事前取出し(たとえ
ば、PWWW)から始まる。(1:0)は2つの最下位ビット
(LSB)を示す。
6)(EA(1:0)≠‘11'Bの場合、事前取出し(たとえ
ば、WWWP)で終了する。
7)第1アレイ転送バイト・エネーブル復号(EFBバイ
ト) 上記で、EFBnが活動状態になるのは、SAの4つ(1カー
ド・ポートの場合)のLSBまたはSAの5つ(2カード・
ポートの場合)のLSBの16進値が所与の16進値以下の場
合である。≦‘F'16進数または≦‘1F'16進数は、EFBが
常にオンであることを意味する。
8)最終アレイ転送バイト・エネーブル復号(ELBバイ
ト) 上記で、EFBnが活動状態になるのは、EAの4つ(1カー
ド・ポートの場合)のLSBまたはEAの5つ(2カード・
ポートの場合)のLSBの16進値が、所与の16進値以上の
場合である。≧‘0'16進数は、ELBが常に活動状態にあ
ることを意味する。
バイト選択の例(第13図参照) 1)事前取出し・修正・書込みを伴う単一アレイ転送:
具体的には、‘02'16進数アドレスの12バイト。ブロッ
ク101で、システムはコマンド、アドレス、フィールド
長を使ってカードを選択する。ブロック102でカードは
それらをロードする。
開始アドレス及びフィールド長: SA(7:0)=‘00000010'B(‘01'16進数) FL(7:0)=‘00001011'B(‘0B'16進数) ブロック103で、カードは以下の計算を行なう。
終了アドレス アレイ転送の数 AXF(1:0)=00 したがって、アレイ・バス上で1回の
転送 システム転送の数 SXF(2:0)=001 したがって、アレイ・バス上で2回
の転送 修正開始=真、なぜならば、SA(1:0)≠‘00'B 修正終了=真、なぜならば、EA(1:0)≠‘11'B ブロック103でEFBとELBを計算する。
左EFB(0:7)=‘00111111'B 左ELB(0:7)=‘11111111'B 右EFB(0:7)=‘11111111'B 右ELB(0:7)=‘11111100'B 書込みコマンドなので、ブロック104に戻る。ブロック1
04で、これは唯一のアレイ転送なので、最初かつ最後の
転送である。ブロック110に進む。ブロック110で、修正
開始と修正終了がともに真である。ブロック116に進
む。ブロック116で、完全取出しを実行し、次いで方程
式に従ってデータの組合せを行ない、次いでブロック11
1に進む。
左モジュール:EFB(0:7)=‘00111111'B ELB(0:7)=‘11111111'B 論理積 =‘00111111'B 旧 新 データ データ バイト バイト 右モジュール:EFB(0:7)=‘11111111'B ELB(0:7)=‘11111100'B 論理積 =‘11111100'B 新 旧 データ データ バイト バイト ブロック111で、方程式に従って左モジュール・バイト
0と1及び右モジュール・バイト6と7に旧データを記
憶する。左モジュール・バイト2ないし7と右モジュー
ル・バイト0ないし5に新データを記憶する。ブロック
108に進む。ブロック108で処理が完了し、ブロック101
で待機状態に入る。
2)2アレイ転送PWの例:アドレス7への13バイト書込
み。ブロック101で、システムはカードを選択し、コマ
ンド、アドレス、フィールド長を送る。ブロック102
で、カードはそれらをロードする。
開始アドレス及びフィールド長: SA(7:0)=‘00000111'B(‘07'16進数) FL(7:0)=‘00001100'B(‘0C'16進数) ブロック103で、カードは、以下の計算を行なう。
終了アドレス アレイ転送の数 AXF(1:0)=01 したがって、2回の転送が行なわれる
ことになる。
システム転送の数 SXF(2:0)=010 したがって、システム・バス上で3
回の転送 修正開始=真、なぜならば、SA(1:0)≠‘00'B 修正終了=偽、なぜならば、EA(1:0)=‘11'B ブロック103でEFBとELBを計算する。
左EFB(0:7)=‘00001111'B 左ELB(0:7)=‘11110000'B 右EFB(0:7)=‘00011111'B 右ELB(0:7)=‘00000000'B 書込みコマンドなので、ブロック104に進む。ブロック1
04で、これは2つのアレイ転送の最初のものである。次
にブロック106に進む。ブロック106で、修正開始が真で
あり、したがってブロック112に進み、EFBについて完全
取出し及びデータの組合せが実行される。
左モジュール:EFB(0:7)=‘00001111'B 旧 新 データ データ 右モジュール:EFB(0:7)=‘00011111'B 旧 新 データ データ ブロック107に進み、左モジュール・バイト0ないし3
でNo−Opを実行する。旧データが取り出されて訂正され
たが、それはメモリには戻されず、スクラブ動作とな
る。次に、旧データを右モジュール・バイト(0:2)に
記憶する。新データを左モジュール・バイト(4:7)と
右モジュール・バイト(3:7)に記憶する。次にブロッ
ク108に進み、処理が完了していないので、そこからブ
ロック104に進む。ブロック104で、これは最後のアレイ
転送である。ブロック113に進み、そこで修正終了が偽
となる。次にブロック114に進み、ELBを記録する。
左モジュール:ELB(0:7)=‘11110000'B 新 旧 データ データ 右モジュール:ELB(0:7)=‘00000000'B 旧 データ 左モジュールのバイト(0:3)に新しい経路を記憶し、
他の12バイトでNo−Opを実行する。この場合は、事前取
出しが行なわれていないので、メモリのこれら12バイト
の内容は未知であり、したがって、それらは非攪乱状態
のままでなければならない。次に、ブロック108に進
む。ここで処理が完了し、ブロック101に戻る。
3)2アレイ転送WPの例:アドレス12(10進数)での5
バイト書込み。ブロック101で、システムはカードを選
択し、コマンド、アドレス、フィールド長を送る。ブロ
ック102で、カードはそれらをロードする。
開始アドレス及びフィールド長: SA(7:0)=‘00001100'B(‘0C'16進数) FL(7:0)=‘00000100'B(‘04'16進数) ブロック103で、カードは以下の計算を行なう。
終了アドレス アレイ転送の数 AXF(1:0)=01 したがって2回のアレイ転送が行なわ
れる。
システム転送の数 SXF(2:0)=001 したがって2回のアレイ転送 修正開始=偽、なぜならば、SA(1:0)=‘00'B 修正終了=真、なぜならば、EA(1:0)≠‘11'B ELBとEFBを計算する。
左EFB(0:7)=‘00000000'B 左ELB(0:7)=‘10000000'B 右EFB(0:7)=‘00001111'B 左ELB(0:7)=‘00000000'B 書込みコマンドなので、ブロック104に進む。ブロック1
04で、これは2つのアレイ転送の最初のものである。ブ
ロック106に進み、そこで修正開始が偽となる。次にブ
ロック107に進む。ブロック107で、EFBを記録する。
左モジュール:EFB(0:7)=00000000 旧データを保持 右モジュール:EFB(0:7)=00001111 旧データ 新データ 保持 記憶 左モジュール・バイト(0:7)と右モジュール・バイト
(0:3)でNo−Opを実行する。右モジュール・バイト
(4:7)に新しいデータを記憶する。次にブロック108に
進む。処理が完了していないので、ブロック104に進
む。ブロック104で、これは最後のアレイ転送である。
ブロック113に進み、そこで修正終了が真となる。ブロ
ック115に進み、ELBごとに完全取出しを実行し、次いで
データの組合せを行なう。
左モジュール:ELB(0:7)=‘10000000'B 新 旧 データ データ 右モジュール:ELB(0:7)=‘00000000'B 旧データ ブロック114に進み、そこで新データを左モジュール形
式0に、旧データをバイト(1:3)に記憶する。残りの
バイトにNo−Opを実行する。次にブロック108に進む。
処理が完了し、ブロック101に進む。これで例の説明を
終わる。
RMWサイクルでカードまたは2カード・ポートを横切る
データ・フローは、制御論理回路によってバイトごとに
個性化される。制御論理回路は、アレイ・データ選択を
利用してアレイへのワードごとの書込みを可能にする。
制御論理回路は、また各データ・フロー・バイトに対す
る内部書込みエネーブル信号を生成する。これらのエネ
ーブル信号は、第4図に示した取出し/記憶マルチプレ
クサ論理回路を制御する。1バイトを重ね書きするとき
マルチプレクサ120aと120bは、記憶バッファ・マルチプ
レクサ122aと122bからデータを選択する。記憶バッファ
・マルチプレクサ論理回路は、適切な4つのバイト・ワ
ードを選択するのに使用される。それらのワードは連続
して緩衝記憶され、適切なときに使用される。データを
重ね書きしないときは、マルチプレクサは、LPDラッチ5
4a、54bから取出し/ループ・マルチプレクサ121a、121
bを介してループされたメモリから事前に取り出されて
訂正されていたデータを選択する。このループ動作及び
取出し/記憶マルチプレクサの選択は、検査ビット経路
や冗長ビット経路ではなく、データ・ビット経路に基づ
いてのみ行なわれる。記憶バッファ/ループ・データ選
択が行なわれて記憶すべき新しいワードを形成した後
に、新しい検査ビットがECC論理回路によって生成され
る。新しい検査ビット生成後に、冗長ビット記憶のため
のデータ・ビットまたは検査ビットの選択が行なわれ
る。
RMW性能を最適化するために、記憶バッファ53が、デー
タ・フローに追加されて、記憶中にデータの連続したシ
ステム転送が可能になった。直接記憶では、データは、
記憶時にデータ・フローECC論理回路55a、55bを介して
パイプライン化できるので、バッファを完全に利用する
必要はない。偶数アドレス開始直接記憶の場合、データ
が第14図のクロック・ポイント1でS1Eラッチ125aにロ
ードされ、次いでクロック・ポイント2で、S1Oラッチ1
25bにロードされる。この時点で、データはECC55aと55b
を介して送られる。このため、8バイト・システム転送
を16バイト・アレイ転送に変換することができる。1ク
ロックECC構成では、次のクロックであるクロック・ポ
イント3で、データ及び生成されたデータ・ビットが、
LGBラッチ57a、57bにラッチされる。同時に、次のシス
テム転送がやはりS1Eラッチ125aでラッチでき、以下同
様である。種々の記憶バッファ動作用の論理回路を単純
にするために、直接記憶用の前述のパイプライン動作
を、全記憶バッファが活用できるように、実際にいく分
修正する。すなわち、クロック・ポイント3でECC出力
ラッチ(LGB)57a、57bにデータをラッチするのに加え
て、次の8バイト・データ転送がS2E126aにロードさ
れ、前の2つの転送がSB1127a及び127bにシフトされ
る。このシフトにより、S1E125aへの最初の転送が次の
クロック・ポイント5で更新されるとき、重ね書きされ
ることが防止される。次いで、クロック・ポイント5で
第4のデータ転送がS20126bにロードされる。クロック
・ポイント4でS1E更新に加えて、前の第3及び第4の
転送がSB2128aと128bにシフトされる。この時点で、最
初の4つの転送はすべてSB1及びSB2中にあり、したがっ
て、最後の4つの転送はすべて(全ロードが実行される
場合)S1E、S1O、S2E及びS2Oに再ロードできる。1つ置
きのクロック(3、5、7など)が6バイト・データで
更新されてアレイに進むので、LGB57a、57bに関するパ
イプライン効果に留意されたい。第14B図に、次のRMWケ
ースのラッチ・タイミングを示す。この図で、番号を付
けたパルスは、関連するシステム転送番号に対するラッ
チの動作(データ更新)を表わす。括弧内の数は、第4
図の論理ブロックの参照番号である。
最初のアレイ転送のために事前取出しを行なわなければ
ならないRMWでは、記憶バッファは完全に利用される。
それにより、論理回路が同時に2つのモードで実行でき
るようになる。論理回路の一部は、システム・バスでの
連続する記憶転送を緩衝記憶し、論理回路の一部はアレ
イ・バスを介してデータの事前取出しを行なう。この場
合、記憶バッファは以下のようにロードされる。ラッチ
S1E125a、次いで、ラッチS1O125b;続いてラッチS2E126
a、さらにラッチS20126bに進む。ラッチS2E126aがロー
ドされる間に、S1E125a及びS1O125bにラッチされたデー
タは、それぞれSB1ラッチ127a、127bにシフトされ、ラ
ッチS1E125aが、再ロードされ、続いてラッチS2O126bが
再ロードされる。S2Eがロードされ、SB1にシフトされる
(第14B図には図示せず)とき、「PRE」で示されるメモ
リ・アクセスからの事前取出しデータも、メモリ取出し
レジスタ51a、51bにラッチされる。すべての取出しの場
合と同様に、取出しデータがLGB57にラッチされた後、
それはまた内部でループされ、LPD54にラッチされて、
後のXECC動作で使用できるようになる。制御論理回路を
修正すると、これらの同じラッチを使って、8回を超え
る転送でサイクルを緩衝記憶しパイプライン化すること
ができる。直接書込みから始まるRMWサイクルは、全直
接記憶サイクルの場合と同様にパイプライン式書込みか
ら始まるため、性能上僅かな利点を得る。
以下の説明では、PW RMWのデータ・フロー経路に重点
を置く。4つのシステム転送が、S1E、S1O、S2E及びS2O
53で緩衝記憶される。同時に、メモリへの事前取出しが
行なわれる。緩衝記憶された記憶データは、取出しデー
タがFETラッチ51a、51bにラッチされ、必要ならば単一
ビット訂正のためにECC論理回路55a、55bを介して送ら
れ、次いでLGBラッチ57a、57bにラッチされる間、保持
される。XECCが活動化されて複数ビット・エラーを処理
するケースは、この例でカバーされていない。そのデー
タは次いで内部でLPDラッチ54a、54bにループされる。
記憶マルチプレクサ122aと122bは、S1EとS1Oデータがル
ープ化データと共に取出し/記憶マルチプレクサ回路12
0aと120bに送られるように設定される。取出し/ループ
・マルチプレクサ121aと121bは、メモリ取出し経路や冗
長ビット交換経路ではなくループ経路を選択するように
設定されなければならない。書込みエネーブル信号は、
バイトごとにループ化データまたは記憶緩衝データを選
択する。次いで、ECC55a、55bを介して新しいワードが
供給され、必要なら、ECC論理回路からの新しく生成さ
れた検査ビット及び適切な冗長ビットと共にLGBラッチ5
7a、57bにラッチされる。次いで、LGBラッチ57a、57bか
らのデータがメモリに記憶される。記憶バッファ・マル
チプレクサ122a、122bは、次にS2Eラッチ126aとS2Oラッ
チ126bを選択する。別の事前取出しは行なわれない。こ
の選択された記憶データが、次にECC55a、55bを介して
供給されて、検査ビットを生成し、次いでLGBラッチ57
a、57bにラッチされる。次にこのデータがメモリに記憶
される。
このRMWアーキテクチャでは、このカード上では使用さ
れないが追加のソフト・エラー・スクラブ動作を行なう
のに使用できる事前取出しオプションがある。このカー
ド上で、ECCワード内のバイトが事前に取り出されるが
重ね書きされないとき、バイトはECC訂正論理回路を通
過するがメモリに戻されない。この記憶を行なうことが
できる場合、この重ね書きされないECCワード内のソフ
ト・エラーがメモリからスクラブされることになる。
訂正不可能メモリ・データ・エラーの発生によるシステ
ム・ダウン時間を最小にするため、通常取出し動作時
に、拡張ECCが実行される。これは、ハード及びソフト
・エラーの境界合せからハード障害を取り除くXECC2重
補数技術を使って実行される。これにより、単一エラー
訂正/2重エラー訂正(SEC/DED)ECCが転送時に正確なデ
ータを供給し、メモリからソフト・エラーをスクラブす
ることができる。拡張ECCが、RMW事前取出しのために設
けられ、うまくいく部分記憶動作の数が増加する。その
結果、最終的に取出し動作に関連するXECCヒットが減少
し、訂正不能エラーが減少する可能性が生じる。部分記
憶に関連するXECC遅延は、後の取出しに関連するものほ
ど重要ではない。部分記憶では、システムはバスを記憶
転送で一杯にする。転送される最初の記憶データについ
て事前取出しを実行しなければならない場合でも、カー
ドは、すべての記憶データを1つの連続するブロックに
緩衝記憶し、すべての操作を内部で処理する。すなわ
ち、内部XECCサイクル中にカードは使用中であるが、バ
スは空いていることがあり得る。取出しでは、訂正済み
データが転送されるのを要求側装置がXECC遅延が待つと
き、バスを一杯にする。この場合のデータ転送は、XECC
が複数転送取出し動作の最中に発生する場合、転送相互
間にかなりの間隙を生じることがある。
XECCを使用しない場合、RMW事前取出し中に遭遇した2
重ビット・エラーは訂正できないことになる。これは、
この設計では、奇数複数ビット・エラーまたは失敗した
XECC動作として処理される。不良であるが訂正可能なデ
ータをその位置に維持するために、そのRMW動作のため
のアレイに対する最終書込みは阻止される。すなわち、
部分記憶は行なわれない。このため、それ以前に完全に
重ね書きされていない限り、その位置へのその後の取出
しで、再び訂正不能エラー状況が生じることが保証され
る。
XECCを使う場合、ハード障害とソフト障害から構成され
る2重ビット・エラーを事前に取り出し訂正することが
できる。この場合、障害が重ね書きされたバイトに関し
てどこにあろうと、XECCが成功すれば、ソフト障害はそ
の位置から取り除かれることになる。すなわち、ハード
障害が残っているため、その後の取出しで、単一ビット
訂正だけが行なわれ、XECCは行なわれず、データの転送
が遅くなる。2重ハード障害の場合は、障害を引き起こ
したアレイの欠陥は訂正できないが、部分記憶が行なえ
るようにすると、一方または両方のビットについて重ね
書きされたデータが、それらがスタックされるレベルと
一致することができる。すなわち、その後の取出し時
に、データは、その欠陥をXECCを呼び出す必要があるビ
ット障害として示さない。
XECCは、メモリ・ポート全体にわたる1つまたは複数の
ECCセクションで2重ビット・エラーによって活動化で
きる。この適用例では、モジュール1個当り2つのEC
C、カード1枚当り2個のモジュール、ポート1個当り
1枚または2枚のカードがある。1つのポート全体のEC
Cの数がどうであれ、1つのECCだけがXECCを活動化させ
る必要がある場合、すべてのモジュールを同期させてお
くために、そのポート全体にわたるすべてのECCが、同
様に時間調整されたXECC状の動作を実行しなければなら
ない。同期化が必要なのは、適切なアレイ及びシステム
動作のためである。XSYNC及びXACKNチップ間通信線が、
その機能を実行するために使用される。RMWに関連するX
ECC動作では、これは、異なる3種の内部XECC動作を内
部的に設計しなければならなかったことを意味する。1
つのXECC動作は「完全」XECC動作であり、その動作の通
常のステップがすべて実施できる。他の2つは「修正さ
れた」XECC動作であり、いくつかのステップが変更され
ている。これら及び関連する動作ステップの必要性につ
いては、以下で説明する。
どの種類のXECC動作が実行されるかは、主に2つのこと
によって決まる。1つは、特定のECCワード境界のRMWに
関連する状態であり、もう1つはECC内部のエラー状態
である。3種類のRMW状態がある:1)ECC境界内のバイト
が完全に重ね書きされる。2)少なくとも1つは重ね書
きされるが、すべてのバイトが重ね書きされるわけでは
ない。3)境界内でバイトが重ね書きされない。3種類
のECCエラー状態がある:1)エラーまたは訂正済みの単
一ビット・エラーがない。2)偶数多数ビット・エラ
ー。3)奇数多数ビット・エラー。ポート内の1つのモ
ジュールでXECCが非活動化された場合、それはすべての
モジュールに対して非活動化されなければならない。XE
CCが活動状態のモジュールが同期パルスを送り出して、
XECC動作を開始することを示し、XECCが非活動化された
モジュールが同期信号を受け取る場合、受信側モジュー
ルがチェッカを活動化し、動作は終了する。
特殊機能レジスタ(SFR)72中に、XECC動作に通常取出
し及びRMW事前取出しを独立に活動化または非活動化さ
せる2つのビットがある。すべてのRMW XECCがポート
全体にわたって非活動化されている場合、複数ビット・
エラー(偶数または奇数)が外部訂正不能エラー信号
(UCE)を即時活動化させる。デバッグ及び診断の柔軟
性のために、このエラー信号をシステム動作に対して阻
止し(取出しエラーが記憶時には示されず、その後の取
出し時にのみ示される)またはデバッグに対して使用可
能にすることができる。UCEは、失敗したXECC動作に対
しても活動化できる。
RMWとエラー状態の以下の組合せにより、そのECCセクタ
に対する「完全な」XECC動作が行なわれる。それが行な
われるのは、ECC境界内の全バイトではないが少なくと
も1バイトが重ね書きと関連付けられるRMW状態、及び
偶数の複数ビット・エラーが存在するエラー状態の場合
である。この場合、事前取出しデータの一部は未変更の
ままであり、したがってエラーを訂正する試みは、メモ
リへの書込みが行なわれる前に行なわなければならな
い。他のECCセクタ中の異なるRMW状態またはエラー状態
は、このECCセクタに対する完全動作に影響を及ぼさな
い。この「完全」XECC動作のステップごとの詳細は以下
の通りである。
初期取出し 1)アレイ境界内での部分記憶を容易にするために、メ
モリからの事前取出しが活動化される。
2)この部分記憶に関連する4バイトのECC境界内に偶
数複数ビット・エラーが存在する。
3)RMW XECCがトリガされ、他のモジュールを同期さ
せるため、この論理モジュールに対するXECC同期信号
(XSYNC)が活動化される。
4)通常取出しエラー信号は活動化されない。
5)FETラッチ51からECC55を介してLGBラッチ57に渡さ
れた不良事前取出しデータは、LGBからLPDラッチ54にル
ープされる。
6)システム・バス上にデータは出力されない。
7)XECC及びRMW動作を通じてカード使用中が活動状態
に保たれる。
反転/記憶 1)データが、LPDラッチ54から反転XOR129を介してLGB
ラッチ57に転送される。反転は、データ・ビット(DB)
と検査ビット(CB)に対して行なわれる。さらに、記憶
時にECCによって生成されたCBが禁止される。
2)冗長ビット(RB)経路での反転は不必要である。DB
経路とCB経路がRB記憶選択論理回路に合流する点が、DB
データ及びCBデータに対する反転を行なうXORの後にく
る。すなわち、交換されるRBの反転は自動的に処理され
る。
3)次いで、データがLGBラッチ57からメモリに記憶さ
れる。最初に読み取られたのと同じメモリ位置が書き込
まれる。当該ECCのアレイ・データ入出力だけが活動化
されて、記憶が可能になる。この選択は、関連するアレ
イ・データ選択を活動化するだけで実施される。
反転/取出し 1)データが同じメモリ位置から取り出されて、FETラ
ッチ51にラッチされる。次いでこのデータが反転XOR129
とECC論理回路55に送られる。この場合も、反転XORの前
にRBがこれらの経路中に交換されるので、反転は、DB及
びCBに対してだけ行なう必要がある。
2)ECC訂正は、通常取出しの場合と同様に行なわれ
る。両方の初期障害がハード障害である場合、この時点
ではエラーは検出されず、エラー線も活動化されない。
ハード障害及びソフト障害があった場合、単一ビット・
エラー信号が活動化され、そのソフト障害に関連するDB
またはCBに対して訂正が行なわれる。
3)訂正されたデータがLGBラッチ57にラッチされ、次
いでLPDラッチ54にループされてラッチされる。
4)シンドローム・レジスタ56aが活動状態になり、関
連する特殊機能レジスタ72のシンドローム・レジスタ・
エネーブルに対するビット設定に応じて制御される。
復元 1)成功したRMW XECCでは、コマンド3XX(通常取出
し)XECCの場合、そのような復元は行なわれない。その
代わりに、反転/取出しがRMWサイクルの続きに組み込
まれる。すなわち、以下の動作は、XECCを使わない通常
部分書込みの場合に行なわれるので、この時点でXECCは
完了していると見なすことができる。
2)LPDラッチ54中の事前に取り出され訂正されたデー
タまたは緩衝された記憶データ53の事前に取り出され訂
正されたデータのバイト幅選択は、関連する内部書込み
エネーブル信号のレベルに基づいて行なわれる。記憶バ
ッファ・データは、ラッチS1E、S1O、SB1、SB2,S2E及び
S2Oから選択される。
3)選択されたデータは、その検査ビットがECCによっ
て生成され、適切なRB交換が行なわれる。次いで、DB、
CB及びRBがLGBラッチ57にラッチされ、このECCのために
メモリに記憶される。
4)RMWサイクルの残りの部分は通常と同様に進む。
失敗したXECC 1)2つのソフト障害がある場合、関連するSFRビット
が設定されている場合だけ、未訂正信号(UCE)が活動
化される。このビットがリセットされると、UCEは生成
されない。UCEは、関連データがLGB57にラッチされた後
に活動化され、カード使用中が非活動状態になるまで活
動状態に保たれ、そのとき低レベルに駆動されるまで活
動状態に保たれ、1クロック後に、UCEは高インピーダ
ンス状態になる。
2)失敗したRMW XECCでは、コマンドで指令されるよ
うにメモリへの部分記憶が行なわれてはならない。しか
し、メモリの復元は行なわなければならない。これが行
なわれるのは、再びアクセスされたとき、依然として検
出済みであるが訂正不可能なエラーを含むような状態に
メモリ中のデータを復元するためである。復元されたデ
ータは、最初に取り出されたものとまったく同じであ
る。論理エラーがあるとデータは変更されるが、問題が
生じるのは逸出を起こす場合だけである。これはほとん
どあり得ない。
3)復元の場合、LPD54中のループ化「不良」データと
緩衝記憶データ53の間の選択が依然として行なわれる。
しかし、生成されたCBとRBによって選択された結果デー
タは、LGB57で阻止される。すなわち、最初の不良デー
タがメモリに復元される。XECCが失敗しこのLGBでの阻
止が行なわれる場合、XECCステップによって最初に取り
出されたデータが変更されないことが判明している。早
い時点ではなくLGBでの阻止が選ばれたのは、代わり
に、制御論理回路65内部信号フィードバックに十分な時
間を与えるためである。
復元で時間は増加しないことに留意されたい。ここでい
う復元は、成功したXECCの場合と同様に、RMWサイクル
の続きである、ただし修正された部分記憶データの代わ
りに最初の不良データがメモリに戻される。
RMWとエラー状態の以下の組合せにより、そのECCセクタ
に対する2つの「修正」XECC動作のうちのどちらかが発
生する。「修正1」XECCは、以下の場合に行なわれる。
1)ECC境界内で全バイトではなく少なくとも1バイト
が重ね書きと関連付けられるRMW状態、及びこのECC内に
単一ビット・エラーが存在し、またはエラーが存在しな
いが、他のECC内に複数エラーが存在するエラー状態、
2)どのエラー状態でもECC内のすべてのバイトが完全
に重ね書きされるかまたは全く重ね書きされないRMW状
態。この場合、XECCステップは、以下の点を除いて、
「完全」XECCと同じである。
反転/記憶 1)LPDラッチ54からLGBラッチ57へのデータが反転され
ない。
2)このECCに対するLGB57中のデータがメモリに記憶さ
れない。
反転/取出し 1)メモリからの取出しは許されるが、取り出されたデ
ータは、ラッチされたLPDデータの選択により、論理ブ
ロック121で論理回路内部で阻止される。
2)LPDデータが、LGB57でラッチされる前に反転されな
い。
3)関連するUCEエラー信号が、このECCに対して阻止さ
れる。
4)LGBデータがLPDにループ・バックされ、その後RMW
は通常のように続行する。
5)すなわち、修正されたXECCは、このECCセクタの動
作を、完全XECC動作を実行しているECCセクタの動作と
同期させる。しかし、最初に取り出されたデータは、論
理回路によって変更されず、XECCを介して保持される。
この保持されたデータは、重ね書きすべき記憶されたデ
ータの選択に、また部分記憶がこのECCと関連付けられ
ている場合には、変更されない取り出されたデータの選
択に使用される。これが行なわれるのは、このECCセク
タ中の良好なデータが、メモリによる不必要な記憶及び
取出しによって混乱される危険を減らすためである。
「修正2」XECCは、ECC境界内の全バイトではなく少な
くとも1バイトが重ね書きと関連付けられているRMW状
態、及び奇数複数ビット・エラーが存在するエラー状態
の場合に生じる。他のECCセクタ中の異なるRMW状態また
はエラー状態は、この修正XECCの動作には影響を及ぼさ
ない。この場合、XECCステップは、以下の点を除いて、
「完全」XECCと同じである。
初期取出し 1)内部訂正不能エラー信号(IUCE)が事前取出し時に
活動化されることを除いて、完全XECCと同じである。関
連するSFRビットが設定されている場合、外部UCEが活動
化され、他のECCセクタ内の偶数複数ビット・エラーに
対する完全XECCが成功した場合でも、サイクルの終わり
まで活動状態に保たれる。
反転/記憶 1)「修正1」XECCと同じ 反転/取出し 1)UCEが禁止されずRMWが通常通り続行されない点を除
いて、「修正1」XECCと同じ。その代わり、このXECCに
固有の以下の動作が行なわれる。XECC動作の後にLAED54
中の不良データと緩衝記憶データ53の間の選択が行なわ
れ、その結果がLGBにラッチされるが、反転データはメ
モリに記憶されない。メモリ中の最初の不良データは、
XECC動作によって決して変更されないので、記憶を阻止
することによりこの不良データは保存される。
この修正XECCを完全XECC動作を実行しているECCセクタ
中の動作と同期させ、データを保持してXECC中にメモリ
のその部分に行かずに関連データを混乱のない状態に保
つことにより、この修正XECCは他の修正XECCと同じ機能
を実行する。ただし、奇数複数ビット・エラーがこのEC
Cに関連付けられていたので、このエラーは訂正できな
かった。すなわち、検出可能なメモリ中のデータを保存
するために、XECCの後で、事前取出しに関連する通常の
RMW記憶が阻止される。
事前取出し中に複数ビット・エラーが発生するRMW状態
がもう1つある。ECC境界内の全バイトではなく少なく
とも1バイトが重ね書きと関連付けられているRMW状
態、及びこのECC中に単一ビット・エラーが存在しまた
はエラーが存在せず、他のECC中に奇数複数ビット・エ
ラーだけが存在するエラー状態である。この場合、XECC
は活動化されず、通常のRMW動作が実行される。このECC
により、重ね書きがメモリに行く。奇数MBEと関連するE
CCは重ね書きが阻止され、SFRビッットがセットされて
いる場合、UCEが活動化される。
本発明は、メモリで完全に実行されるソフト・エラー・
スクラブ機能をもつ。この機能は、システムが動的ラン
ダム・アクセス・メモリ(DRAM)のオンカード再生を開
始するのに使用する、通常のプロセスによって活動化さ
れる。システムは、15.6ミリ秒に1回の平均速度で1本
の再生線を活動化する。再生制御は、従来技術と共通な
オンカード再生カウンタを使って行なわれる。本発明の
独自の部分は、ソフト・エラー・スクラブ機能がトラン
スペアレントな形でこの再生と結び付けられていること
である。
IBM9370プロセッサのメモリ・カードは、ソフト・エラ
ー・スクラブ動作を実行する能力を持っていたが、それ
がこのシステムによって実施されることはなかった。ス
クラブ機能はトランスペアレントではなく、基本取出し
とその後に続いてゼロ・バイト修正書込みを実行する2
つのシステム活動化コマンドから構成されていた。その
2つの開始バイト・アドレス・ビットは無視される。す
なわち、バス上のカードに対する1つのスクラブ動作に
よって、2コマンド・サイクルの間にバスが一杯にな
る。このスクラブ方式は、メモリ空間全体を頻繁にスク
ラブしなければならない場合、メモリの可用性及び関連
するシステム性能に大きな影響を及ぼすことになる。言
い替えれば、あるメモリ位置からECCワードが読み出さ
れ、ECC論理回路を使って単一ビット・エラーが訂正さ
れていた。その場合、ゼロ・バイト修正書込みにより、
訂正済みの元のデータが外部の重ね書きなしで同じ位置
に戻された。単一ビット・エラーがソフトの場合、この
2つのステップ処理でそれがスクラブされる。
本発明によると、同じ基本的な2ステップ処理をトラン
スペアレント方式で、使用する。ただし、メモリ・バス
をコマンドで一杯にすることにより、システムは、メモ
リの可用性に影響を与えない。この方式を用いると、バ
ス上の1つのメモリ・カードが、バスを一杯にしないト
ランスペアレントな再生/スクラブを行なう間に、別の
カードが、取出し及び記憶のためにそのバスを使用する
ことができる。オンカード再生及びスクラブ・カウンタ
により、バスによるデータ及びアドレス転送が不要にな
る。ハード障害とは、関連するアレイ・ビットが物理的
に損傷を受け、常に1の値でスタックされるものであ
る。ソフト障害とは、ビット/セルが損傷を受けないも
のである。この場合は、放射線(アルファ粒子)または
ノイズによってデータが誤った状態に変わったのであ
る。このエラーは、スクラブ処理で正しいデータを戻す
ことにより、容易に修正できる。
ソフト・エラーは、大きなメモリ空間の各セクション中
で時間の経過と共に累積することがある。限定された間
隔でメモリ空間全体でソフト・エラー・スクラブ・ルー
チンを実行すると、ソフト障害が、ほとんど使用されな
いセクション中で累積しないようになる。スクラブを再
生と結び付けると、再生もメモリ空間全体を通して一定
間隔で実行しなければならないので、それがうまく実施
される。第15図のカウンタ・セットアップにより、高頻
度の再生速度が低頻度の再生速度にスケーリングされ
て、メモリの可用性が影響を受けないようになる。ソフ
ト・エラーをスクラブして、任意の1つのECCワード中
で並んだ2つのソフト・エラーの発生を最小にすること
が重要である。ECC論理回路は、拡張ECC論理回路(2重
補数再試行)とあいまって、2つのハード障害または1
つのハード障害と1つのソフト障害を検出し訂正するこ
とができるが、並んだ2つのソフト障害を訂正すること
はできない。これは、検出可能であるが、システム動作
に影響を及ぼす恐れのある訂正不能なエラーを生じさせ
る。2つのハード障害と並んだ1つのソフト障害は、よ
り起こりやすく、ECC論理回路がエラーを訂正し損なう
というより深刻な状況を引き起こす可能性がある。この
場合、検出されないエラーが逸出することがあり、した
がってソフト・エラーを抑制して、それを発生させる蓄
積を防止しなければならない。
本発明によるメモリ・カードは、オンカードRMWハード
ウェアを使って、トランスペアレントなゼロ・バイト書
込みスクラブ動作を行なう。このことについては、第15
図、第16図及び表2に関して説明する。トランスペアレ
ント・スクラブ動作は、それを再生と混合することによ
って実施する。アレイに関する限り、あるワード線位置
での取出しは再生と同じである。オンカード・スクラブ
論理回路は、このことを利用して、再生の代わりに、ス
クラブ、すなわち取出し及び記憶動作を行なう。
再生が必要であるとシステムが判定すると、システムは
カード再生信号(REF)を活動化する。関連する特殊機
能レジスタ・ビットが、スクラブ動作がオフになるよう
に設定されている場合、再生サイクルは、2つの食違い
アレイ再生のみから構成される。それらのビットがスク
ラブ動作を活動状態にし、関連するカウンタがスクラブ
が行なうように指示する場合、スクラブ・サイクルは、
2つのアレイ・バンクの間で分割された4つの取出し及
び記憶スクラブ動作から構成される。4つのアレイ・バ
ンクがある場合、他の2つのバンクがこの時間中に2つ
の再生を行なう。第16図を参照のこと。
第16図は、スクラブ動作が再生コマンド動作とどのよう
に混合されるかを示す。再生だけを行なうときは(図示
せず)、メモリ・アレイへのRAS線はすべて活動化され
る。CAS線は非活動状態に保たれる。それにより、2つ
のバンク・カード上のすべてのアレイに対するRASのみ
の再生が行なわれる。1つの再生コマンドで2つの再生
が実行されて、その対のサイクル・タイムが短縮され
る。2バンクのスクラブ動作では、再生対の代わりに、
2つのスクラブ対動作が行なわれる。2つのバンクが同
時に再生できるが、一時に1つのバンクしかスクラブで
きないので、1つの再生の代わりに2つのスクラブ動作
を行なわなければならない。これは、再生時にはアレイ
と共にデータが転送されないが、スクラブの場合はそれ
を行なわなければならないためである。バンクのデータ
入出力が点在しているため、一時に1つのバンクだけが
データを転送できる。4つのバンクの場合には、2つの
バンクがスクラブされているとき、他の2つのバンクが
再生され、すべてその時のスクラブ・カウンタ及び再生
カウンタの当該のアドレス値に基づいて行なわれる。
再生/スクラブ動作が完了すると、カード使用中線が未
活動状態になって、そのカードが利用可能なことを示
す。再生動作またはスクラブ動作のためのアドレッシン
グは、すべて内部カウンタによって処理される。すなわ
ち、システムは、スクラブ動作を行なうのにカードへの
1本の信号線を活動化するだけでよい。アドレスを送る
必要がないので、再生コマンドの活動化でバスは一杯に
ならず、1コマンド・サイクルの間カードが一杯になる
だけである。
再生は同時に80のアレイで行なわれるが、取出し及び記
憶動作は一時に1つのバンク(40アレイ)でしか行なえ
ないので、1つの再生動作の代わりに2つのスクラブ動
作が必要である。すなわち、全スクラブ・サイクルは、
それぞれが(システム転送に基づく場合はPWWPになる)
アレイ転送に基づく「PP」動作から構成される、背向形
RMWサイクルに類似している。
各モジュールは、第15図に示すような再生カウンタとス
クラブ・カウンタをもつ。第15図で、再生カウンタの行
アドレス・ビット(0−9)は、所定の間隔で再生しな
ければならないアレイのワード線に対応する。カードの
電源を入れて、このカウンタとスクラブ・カウンタが共
にゼロにリセットされた(正の論理と仮定)後、スクラ
ブ・カウンタと再生カウンタの間でデータの一致が見ら
れる。
以下の例では、SFRビットの設定が01であると仮定す
る。図の関連する行の9つの大文字のCで示されるよう
に、再生カウンタのビット1−9が、スクラブ・カウン
タの行アドレス・ビット1−8及びに一致するとき、
1対の2重スクラブ動作が行なわれる。すなわち、最初
の再生コマンドで1つのスクラブが行なわれる。再生コ
マンドが活動化される度に、1対の再生動作(2本のワ
ード線)が行なわれ、したがって再生カウンタのビット
1が更新される。1対の2重スクラブが行なわれる度
に、スクラブ・カウンタの列アドレスのビット1が更新
される。すなわち、最初の再生コマンドの後、以前にリ
セットされたレジスタは、この2つのビット1位置に1
の値をとる。第2の再生コマンドが現われると、9つの
比較ビットはもはや一致しなくなる。したがって、スク
ラブ動作は行なわれず、再生だけが行なわれる。
所定の間隔でさらに再生が行なわれるとき、再生カウン
タは増分され続け、スクラブ・カウンタは最初のカウン
ト増分のまま留まる。すべてのカード・メモリ位置が再
生されると、再生カウンタ・ビット0−9が再びすべて
ゼロになり、カウンタのビットAは1の値になる。01設
定の場合、レジスタのA、B及びCビットは、カウンタ
がこの範囲を通じて増分されるので、機能的に「どうで
もよい」。ビット0−9に関連するカウントだけが重要
である。この範囲を通じての各ループごとに、カードが
完全に再生される。スクラブ・カウンタの行アドレスの
ビット1−は依然としてゼロなので、再生カウンタの
各ループごとに、比較ビット(C)がすべてゼロのとき
スクラブ動作が活動化される。すなわち、重要な再生カ
ウンタ・ビットがループ化されているので、スクラブ・
カウンタは列アドレス・ビットの範囲を通じてカウント
・アップされ、その特定の行アドレスに対するカードの
あらゆる列アドレスに関連するデータがスクラブされ
る。
その特定の行アドレスに対するすべての列アドレスがカ
ウントされると、スクラブ・カウンタのカウントが今度
はその行アドレス・ビット中を進むので、各行アドレス
について上記のプロセスが、繰り返される。9つの列ビ
ット及び9つの行アドレス・ビットの最大値に達するま
で、カウントが続く。最大値に達した時点で、アドレス
空間が最小のカードが完全にスクラブされ、スクラブ処
理がもう一度始まる。メモリ空間がより大きなカードで
は、スクラブ・カウントは、カードのサイズに応じて、
A、BまたはCビットに進む。この説明から、スクラブ
動作が時間的に分配され、一瞬には行なわれないことが
わかる。
ポート全体にわたるスクラブ動作が、ただ1つのモジュ
ールによって制御される。1カード・ポートでは、それ
は左モジュールである。2カード・ポートでは、それは
左カードの左モジュールである。この制御モジュール中
で、スクラブをいつ行なうかを決定するために、再生カ
ウンタとスクラブ・カウンタが比較される。
スクラブ動作が行なわれる度にスクラブ・カウンタが増
分される。スクラブ・カウンタをリセットできるのは、
システムの走査、またはリセット線だけであり、スクラ
ブも再生も電源投入後にリセットされる(すべて0)。
スクラブ動作は、同期線と肯定応答線の使用によってポ
ート全体にわたって同期される。またチップ間線が、チ
ップ・カウンタがポート全体にわたって同じ値に留まっ
ていることを確認する。この検査により、各カウンタ用
のパリティ予想チェッカ回路が不要となる。
スクラブの取出し及び記憶動作は、以下のようにして進
行する。1つのアレイ位置(16バイト)からデータが取
り出され、ECCを使って、それぞれせいぜい1つのハー
ド障害またはソフト障害が訂正される。ECC障害がハー
ド障害であろうとソフト障害であろうと、また障害が発
生しなくとも、訂正されたデータは内部でループ化さ
れ、内部書込みエネーブル線がすべてセットされてデー
タの重ね書きを阻止する。次いで、データがアレイ・バ
ス上でドライブされる。単一ビット・エラーが訂正され
た場合、その関連ECCに対するアレイ・データ選択が活
動化されて、正しいデータを同じアドレス位置に戻す。
その結果、そのメモリ位置の単一ソフト・エラーが除去
される。エラーが訂正されない場合、そのECCに関連す
るデータ選択は活動化されない。これは、メモリ中の良
好なデータが論理回路からの不良データ転送によって混
乱されないようにするためである。他の特殊機能レジス
タに関する診断が活動状態のときにスクラブ動作が発生
するのを防止するために、内部チェッカが存在する。こ
のため、スクラブ動作中に、データの保全性に影響を及
ぼす恐れのある不適切なデータ操作が防止される。
現在の所、スクラブ動作中に拡張ECC(XECC)は行なわ
れない。それを利用するなら、ハード障害と並んだ1つ
のソフト障害がメモリからスクラブできるようになる。
XECCの2重反転ステップにより、ハード障害が除去さ
れ、SEC/DED ECCで単一ソフト障害が訂正できるようになる。この場
合、メモリの復元が可能となり、ソフト障害に関連する
不良データを修正することができる。XECCが行なわれな
い場合、2つ以上の不良ビットを伴う取出しがあると、
エラーがない場合と同様に、アレイへの記憶が妨げられ
る。このため、訂正し損なった3重ビット・エラーがメ
モリに復元されないようになり、したがってその位置で
のその後の取出し中に不良データが逸出することが可能
になる。この場合、スクラブ動作中にエラー信号は生成
されない。その位置でシステム取出しが行なわれると
き、エラー信号が生成される。
特殊機能レジスタの2ビットを使って、スクラブ速度を
制御する。カード論理回路により、システムは、060診
断書込みコマンドを用いて、または電源投入時(または
他の任意の時に)にラッチを順次走査することにより、
スクラブ速度を事前設定することができる。060コマン
ドは、多目的データ・バスを介して特殊機能レジスタ
(SFR)をロードする。これらのビットが復号されて、
非スクラブ(省略時)、連続スクラブ(検査目的にのみ
使用される)及び異なる2つのシステム・スクラブ速度
が可能になる。スクラブ・カウンタ及び再生カウンタの
FREQビットの数によってこれらの速度が決まる。連続ス
クラブとは、各再生活動化の際(通常、16ミリ秒ごと)
に1つのスクラブが行なわれるとの意味であることに留
意されたい。連続速度を用いて、スクラブ機能の検査に
関連する製造検査回数を減らすことが利用できる。シス
テム使用は、デバッグまたは診断動作だけに制限され
る。
スクラブ動作は、選択されたある速度で、分配式に行な
われる。すなわち、スクラブ相互間の時間が一定になる
ように、一定数のスクラブが純粋な再生サイクルと混合
される。この設計では、様々なカード・サイズを補償す
る論理回路はない。すなわち、カード・メモリのサイズ
が増大するにつれて、特定のスクラブ速度の設定に対し
て、カード全体をスクラブするのに要する時間が増大す
る。カード・サイズの範囲全体にわたってメモリ空間ス
クラブ速度が一定に維持されるように論理回路を設計す
ることができる。しかし、そうすると、システム内の様
々なカード・サイズに対するメモリ可用性の割合が異な
るようになる。すなわち、システム・メモリの増大を、
顧客が性能低下と感じ取る恐れがある。実施されたスク
ラブ速度数と可用性に対する影響の例については第17図
を参照されたい。
表2は、4つの設定の速度を示す。スクラブを再生と結
び付け、より遅い速度でスクラブを実行することによ
り、再生によって設定された値以上に可用性が減少しな
いことも示されている。スクラブ速度を選択するため、
2つのレジスタ・ビット、SFR qとrが復号される。
省略時の設定(00)(図示せず)ではスクラブ動作がオ
フになる。すなわち、再生動作中にスクラブは行なわれ
ない。01設定では、2つの動作速度のうち速い方が選択
され、10設定では遅い方の速度が選択される。第15図に
関して説明したように、これらの速度は、再生カウンタ
及びスクラブ・カウンタのビット数とそれらの比較方法
を変えることによって調整できる。11設定は、連続スク
ラブ動作を行なうために使用される。すなわち、各再生
コマンドが、スクラブ動作を活動化する。これを用いる
と、スクラブ動作の検査速度が上がる。この検査では、
各メモリ位置にスクラブ可能なソフト障害を入力し、各
位置に正確にヒットするのに必要な2ないし16秒の間こ
の速度でスクラブを実行する。次に、メモリの検査を行
なって、すべてのソフト・エラーがスクラブされたこと
を確認する。表2の下側は、2つの動作スクラブ速度
(設定01と10)での可用性に対する影響がほとんどゼロ
であり、11検査設定ではシステムがスクラブを実行しよ
うとしないことを示す。
IBM9370プロセッサのメモリ・カードは自律スクラブ機
能を持っていないので、調整可能性のための従来技術は
意味がない。そのシステム中でスクラブ機能を使用する
場合、関連するゼロ・バイト読取り・修正・書込み(RM
W)コマンドの速度を制御しなければならないことにな
る。さらに、9370メモリ・カードには特殊機能レジスタ
(SFR)が含まれているが、それはずっと原始的で、q
ビットとrビットを含んでいなかった。9370メモリ・カ
ードではSFRに4つのビットしかなかったが、本発明
は、24ビットのSFRを使用して、より一層の柔軟性と機
能をもたらす。
簡略に要約すると、エラー訂正コード(ECC)及びすべ
てのアレイ制御を各メモリ・カードに実装することによ
り、最適な設計上の柔軟性がもたらされる。この柔軟性
により、固定インターフェースを使ってアレイ使用をシ
ステムに対してトランスペアレントにすることができ
る。第1図に示すように、このインターフェースの主要
構成要素は、「多目的データ・バス」43と44である。シ
ステム診断中のアレイ障害の分離のための物理から論理
への変換だけはトランスペアレントでない。しかし、こ
の変動性は、ソフトウェア/コードの修正によって処理
できる。また、ECCを内部チェッカ及び内蔵診断動作と
共にメモリ・カードに実装することにより、システム
は、複数メモリ・カード・バス上の故障したカード(及
び論理構成要素またはアレイ構成要素)を容易に分離す
ることができる。これは、メモリに関連するエラー検出
及び障害分離(EDFI)の数を高めるのに大きく貢献す
る。
ここで重要なことは、この柔軟性によって、共通インタ
ーフェースによるメモリ移行及びメモリ・バックアップ
戦略が可能となることである。たとえば、主記憶装置用
の4つのスロットをもつシステムは、32MB(4枚の8MB
カード)の基本メモリ容量及び256MB(4枚の64MBカー
ド)の最高メモリ容量を持つことができる。すなわち、
各カード形式が差込み互換性をもつことが望ましい。し
かし、この範囲のカード密度を得るには、8MBカードで
は256K×4アレイ、64MBカードでは1M×4アレイなど、
異なる構成をもつ異なるアレイ技術を使用しなければな
らない。さらに、これらのカード構成のいくつかまたは
すべてでは、代替アレイをもつバックアップ・カードが
供給のために必要である。場合によっては、代替技術で
はデータ選択などの主要な機能を欠くことがある。オン
カード論理回路を、インターフェースの修正なしに従来
のカード機能及び性能に合致またはほぼ合致するように
再構成することができる。アレイ密度の変更に加えて、
インターフェースを維持しクロック速度だけを変更し
て、性能の向上を実現することもできる。
「スマート」カード論理はまた、様々なECCコードまた
は追加の冗長構成を使用して信頼性を向上させ、かつオ
ンカード・インターリーブの量を増大させることによっ
てデータ転送速度を改善しながら、インターフェースを
維持することができる。このインターフェース及びアー
キテクチャによってもたらされる差込み互換性及び性能
の柔軟性により、同じメモリ・カードをキャッシュ・メ
モリの利点を伴って、あるいはそれなしでプロセッサで
使用できるようになる。
「修正」インターフェースの大半を構成する「多目的」
データ・バスは、そのインターフェースに必要な専用線
の数を最小にする。このバスは、モジュール入出力カウ
ントを減少させる上に、このインターフェースを単純に
かつ柔軟にする。専用信号の数を減らすと、システムが
供給しなければならないタイミングが単純になる。「ス
マート」メモリ・カードの内部論理回路は、多種多様な
機能を使用可能にするために内部で発生しなければなら
ない複雑なタイミングからシステムを緩衝する。カード
上で使用する範囲のアレイ・ハードウェアに対する複雑
で変動するアレイ・タイミングは、第1図に示した適切
に初期化された内部論理回路46と47によって生成され
る。第3図の構成図に示すような制御論理回路の初期化
及び個性化は、適切なコードをプログラム・レジスタ71
にロードすることによって実施される。システムは、カ
ード選択(SEL)信号を活動化させコマンド・フィール
ド長、アドレスを供給してカード動作を開始させるだけ
でよい。記憶動作の場合、次にデータは、同じ多目的デ
ータ・バスを介して即座に多重化される。取出し動作の
場合は、即時ではなく、コマンド/アドレス・データが
バスから除去された後少し経ってからデータ転送が行な
われる。ある種の診断動作では、データ転送はまったく
不要である。いずれの場合にも、活動化及び恐らくはデ
ータ転送の後で、システムは、カード使用中が未活動状
態になって動作の完了を示すのを待つ。
このオンカード論理回路は、またハードウェアで内部で
多数の機能を実行することにより、必要なシステム・タ
イミング・ケースの数を減少させる。いくつかのケース
は、コマンドによって活動化された事象により自動的に
トリガされる。1)内部アレイ・バスからのデータに複
数ビット・エラーが存在する場合、取出しコマンドは、
自動的に内部拡張ECC動作をトリガすることができる。
2)読取り・修正・書込みが、システム書込みコマンド
中に活動化される。カードは、選択時に供給されるフィ
ールド長と開始アドレスを使って、直接書込みまたは読
取り・修正・書込みを行なうかどうかを決定する。いく
つかの内部機能は、第3図の事前設定内部制御レジスタ
72及び関連する外部事象によってトリガされる。1)自
動ソフト・エラー・スクラブ動作は、特殊機能レジスタ
の設定、第15図に示すような内部カウンタの関係、及び
再生(REF)信号の活動化の組合せによってトリガされ
る。2)ECCなしの読取りまたは書込み、データ・ルー
プ動作及び他の診断動作は、特殊機能レジスタの設定及
び通常取出し動作または記憶動作の活動化によって制御
される。
データ・バス自体の全体的特徴が、インターフェースの
柔軟性の多くをもたらす。全体的なバス定義に影響を及
ぼさずに、バス全体にわたる個別指定を、様々なバスの
用途に応じて変更することができる。ビットの機能順序
の変更は、開発中のほとんどの時点でも、また将来の更
新の場合もシステムへの大きな影響なしに容易に行なう
ことができる。
固定したバス幅上でのビット変更に加えて、機能変更ま
たは更新の場合、バスの深さも容易に変更できる。これ
は、入力または出力あるいはその両方の多重化機能の分
岐を追加(除去)することによって行なう。たとえば、
設計サイクルの後の段階または追加設計時にさらにチェ
ッカを追加する場合、これらのチェッカは、1つまたは
複数のデータ出力転送を内部で追加して、既存の診断コ
マンドによって読み出すことができる。上記の出力多重
化機能の分岐は、第2図及び第5図に示されている。デ
ータ出力選択論理回路59を使って、通常取出し動作用の
データ(入力a)または診断取出しデータ(入力b)を
選択する。
上記のチェッカ・データ転送追加は第5図に示されてい
る。既存の診断経路が、マルチプレクサ(MUX)73に入
っている。必要ならば、マルチプレクサ77を拡張し、あ
るいはマルチプレクサ74の入力3に入力を供給する同様
のマルチプレクサを追加することにより、さらに多くの
診断線を容易に追加することができる。別の例を挙げる
と、ベクトル・プロセッサ性能を改善するためにメモリ
からより多くの取出しまたは記憶データ転送が必要なと
き、追加内部経路は必要ではない。この場合、十分なフ
ィールド長ビットがあるとすれば、サイクル中により多
くのCAS活動化が起こるように内部アレイ制御論理回路
を修正するだけでよい。このため、システムとメモリの
より多くの連続データ転送を可能にすることによりアレ
イ・ページ・モード能力の多くが利用できる。
本発明は、また第18図と第1図を比較すれば明らかなよ
うに、チップ・カウントの削減を実施する。第18図の93
70論理回路は、6つの個別論理モジュール26a、26b、26
c、29、30及び31にわたって分配されている。第1図に
示す次世代のメモリは、2つの個別論理モジュールしか
もってない。これらは、1つの論理部品番号しか必要で
ないように設計されており、カード上のモジュール位置
の個性化は、制御入力を高レベルまたは低レベルにつな
ぐことによって制御される。第18図のデータ・フロー・
モジュール30のそれと同じ機能は、第1図のモジュール
46のセクション(a)に関するものである。モジュール
31と47(a)についても同様である。制御モジュール29
は、モジュール46と47を横切って分割されたセクション
(b)、(c)、(d)に変わっている。アレイ制御再
駆動モジュール26a、26b、26cは、モジュール46と47の
間で分割されたセクション(e)に示されたものと同様
の機能をもつ。
本発明について、1つの好ましい実施例に関して説明し
たきたが、当業者ならわかるように、頭書の特許請求の
範囲の精神及び範囲内で開示された特徴に修正を加え、
あるいはその一部分を組み込んで本発明を実施すること
ができる。
E.発明の効果 本発明は上述したように論理機構を介してシステム・バ
スとの通信を行なうスマート・メモリ・カードにおい
て、エラー訂正コード手段を分割して処理を進行しデー
タをインターリーブにより出力するように構成したの
で、データの高速処理が可能となった。
【図面の簡単な説明】
第1図は、本発明によるスマート・メモリ・カードの好
ましい実施例の全体的アーキテクチャを示す構成図であ
る。 第2図は、本発明によるスマート・メモリ・カードのデ
ータ・フロー・アーキテクチャを示す構成図である。 第3図は、本発明によるスマート・メモリ・カードの制
御論理回路を示す構成図である。 第4図は、本発明によるスマート・メモリ・カードの内
部データ・フロー設計をより詳細に示す構成図である。 第5図は、本発明の取出しデータ出力選択動作をより詳
細に示す、第4図の構成図の部分図である。 第6図は、本発明の2重インターリーブ動作を示すタイ
ミング図である。 第7図は、本発明の取出しデータ出力タイミングを示す
タイミング図である。 第8図は、本発明による内部アレイ・バスを示す構成図
である。 第9A図及び第9B図は、本発明による多目的バスを示す構
成図である。 第10A図ないし第10H図は、システム転送によって分類さ
れた2カード・ポートのフィールド長と開始バイト・ア
ドレスに基づく読取り・修正・書込み(RMW)オプショ
ンを示す表である。 第11A図及び第11B図は、それぞれ1カード・ポート及び
2カード・ポートのRMWデータ境界定義を示す機能構成
図である。 第12図は、本発明によるメモリ・カードのRMW組合せを
示す表である。 第13図は、RMW動作の論理を示す流れ図である。 第14A図及び第14B図は、4アレイ転送直接書込み(WWW
W)と、最初のアレイ転送が事前取出しに関連するとい
う部分書込み2アレイ転送(RWWW)のタイミングの比較
を示すタイミング図である。 第15図は、スクラブ/再生カウンタの図である。 第16図は、スクラブ・タイミング動作を示すタイミング
図である。 第17A図及び第17B図は、それぞれ従来技術の非知能メモ
リ・カード及びスマート・メモリ・カードを示す構成図
である。 第18図は、従来技術のスマート・メモリ・カードの全体
的アーキテクチャを示す構成図である。 40……メモリ、46、47……CMOSチップ、51a、51b……ラ
ッチ、55a、55b……エラー訂正コード(EEC)、57a、57
b……ラッチ、73……低速マルチ・プレクサ、74……高
速マルチ・プレクサ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ブラース・ジイー・ハゼルゼツト アメリカ合衆国ヴアーモント州エセツク ス・ジヤンクシヨン、グリーンフイール ド・コート8番地 (72)発明者 デヴイド・ジエイ・ローラーク アメリカ合衆国ヴアーモント州ジエリコ、 パーカード・ロード、ボツクス159、アー ル・デイー2番地 (72)発明者 ヘーチイング・ハリイ・リ アメリカ合衆国ニユーヨーク州エンデイコ ツト、コヴエントリイ・ロード39番地 (72)発明者 バラツト・ジエイ・オザ アメリカ合衆国ニユーヨーク州エンデイコ ツト、アントネツト・ドライブ347番地 (72)発明者 エー・フランク・ウエーヴアー アメリカ合衆国ヴアーモント州サウス・バ ーリントン、エリザベス・ストリート22番 地 (56)参考文献 特開 昭58−91590(JP,A) 特開 昭59−63093(JP,A) 特開 昭62−226352(JP,A) 特開 昭62−212854(JP,A) 特開 昭60−225955(JP,A) 実開 昭62−161399(JP,U)

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】論理機構を介してシステム・バスとの間で
    データ転送を行うメモリ・アレイを有するスマート・メ
    モリ・カードであって、 上記論理機構は、 該スマート・メモリ・カード上に搭載され、 上記メモリ・アレイからデータを受け取り、該データを
    一時的に記憶する第1ラッチ手段と、 上記第1ラッチ手段からデータを受け取り、該データの
    エラー検知およびエラー訂正を行うエラー訂正コード手
    段と、 上記エラー訂正コード手段からデータを受け取り、該デ
    ータを一時的に記憶する第2ラッチ手段と、 上記エラー訂正コード手段と上記第2ラッチ手段とから
    データを受け取り、上記システム・バスに選択的に該デ
    ータを転送するデータ出力選択手段と、 を有し、 上記第1ラッチ手段、上記エラー訂正コード手段、およ
    び上記第2ラッチ手段の各々はそれぞれ奇数部および偶
    数部に分かれており、 上記データ出力選択手段は、上記エラー訂正コード手段
    および上記第2ラッチ手段の上記奇数部および偶数部か
    らそれぞれデータを受け取るようよう接続され、 上記論理機構はさらに上記データ出力選択手段の上記奇
    数部および偶数部からのデータのインターリーブ制御を
    行う制御手段を有し、 上記メモリ・アレイが、nバイト幅の内部メモリ・バス
    を有し、 上記システム・バスがn/2バイト幅であり、 上記データ出力選択手段が、上記制御手段の制御のもと
    で、上記エラー訂正コード手段および第2ラッチ手段か
    らのnバイト幅のデータをインターリーブして上記シス
    テム・バス上に連続するn/2バイト・データを出力す
    る、 スマート・メモリ・カード。
  2. 【請求項2】論理機構を介してシステム・バスとの間で
    データ転送を行うメモリ・アレイを有するスマート・メ
    モリ・カードであって、 上記論理機構は、 該スマート・メモリ・カード上に搭載され、 上記メモリ・アレイからデータを受け取り、該データを
    一時的に記憶する第1ラッチ手段と、 上記第1ラッチ手段からデータを受け取り、該データの
    エラー検知およびエラー訂正を行うエラー訂正コード手
    段と、 上記エラー訂正コード手段からデータを受け取り、該デ
    ータを一時的に記憶する第2ラッチ手段と、 上記エラー訂正コード手段と上記第2ラッチ手段とから
    データを受け取り、上記システム・バスに選択的に該デ
    ータを転送するデータ出力選択手段と、 を有し、 上記第1ラッチ手段、上記エラー訂正コード手段、およ
    び上記第2ラッチ手段の各々はそれぞれ奇数部および偶
    数部に分かれており、 上記データ出力選択手段は、上記エラー訂正コード手段
    および上記第2ラッチ手段の上記奇数部および偶数部か
    らそれぞれデータを受け取るようよう接続され、 上記論理機構はさらに上記データ出力選択手段の上記奇
    数部および偶数部からのデータのインターリーブ制御を
    行う制御手段を有し、 上記データ出力選択手段が、 上記第2ラッチ手段の奇数部及び偶数部からのデータを
    受け取り、上記制御手段の制御のもとでデータの転送を
    選択的に行う低速マルチプレクサと、 上記エラー訂正コード手段の奇数部および偶数部と上記
    低速マルチプレクサとからのデータを受け取り上記制御
    手段の制御のもとでデータの転送を選択的に行う高速マ
    ルチプレクサと、を備えている、 スマート・メモリ・カード。
JP1123044A 1988-06-15 1989-05-18 スマート・メモリ・カード Expired - Lifetime JPH06105443B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US206757 1988-06-15
US07/206,757 US4888773A (en) 1988-06-15 1988-06-15 Smart memory card architecture and interface

Publications (2)

Publication Number Publication Date
JPH0224752A JPH0224752A (ja) 1990-01-26
JPH06105443B2 true JPH06105443B2 (ja) 1994-12-21

Family

ID=22767812

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1123044A Expired - Lifetime JPH06105443B2 (ja) 1988-06-15 1989-05-18 スマート・メモリ・カード

Country Status (4)

Country Link
US (1) US4888773A (ja)
EP (1) EP0346629B1 (ja)
JP (1) JPH06105443B2 (ja)
DE (1) DE68923828T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010170566A (ja) * 2010-03-01 2010-08-05 Solid State Storage Solutions Llc 外部記憶装置およびそのメモリアクセス制御方法
USRE45857E1 (en) 1995-07-14 2016-01-19 Solid State Storage Solutions, Inc External storage device and memory access control method thereof

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924375A (en) * 1987-10-23 1990-05-08 Chips And Technologies, Inc. Page interleaved memory access
US5159676A (en) * 1988-12-05 1992-10-27 Micron Technology, Inc. Semi-smart DRAM controller IC to provide a pseudo-cache mode of operation using standard page mode draws
US5235693A (en) * 1989-01-27 1993-08-10 Digital Equipment Corporation Method and apparatus for reducing buffer storage in a read-modify-write operation
US5907512A (en) * 1989-08-14 1999-05-25 Micron Technology, Inc. Mask write enablement for memory devices which permits selective masked enablement of plural segments
US5280601A (en) * 1990-03-02 1994-01-18 Seagate Technology, Inc. Buffer memory control system for a magnetic disc controller
US5341488A (en) * 1990-04-11 1994-08-23 Nec Electronics, Inc. N-word read/write access achieving double bandwidth without increasing the width of external data I/O bus
JP2862948B2 (ja) * 1990-04-13 1999-03-03 三菱電機株式会社 半導体記憶装置
US5261068A (en) * 1990-05-25 1993-11-09 Dell Usa L.P. Dual path memory retrieval system for an interleaved dynamic RAM memory unit
US5584044A (en) * 1990-09-28 1996-12-10 Fuji Photo Film Co., Ltd. Integrated circuit memory card for write in/read out capability having plurality of latching means for expandable addressing using counting means for enabling latches thereof
US5301343A (en) * 1990-12-31 1994-04-05 International Business Machines Corp. System having microprocessor local memory expansion capability through removable coupling of local memory expansion boards directly to the high speed microprocessor local bus
US5295255A (en) * 1991-02-22 1994-03-15 Electronic Professional Services, Inc. Method and apparatus for programming a solid state processor with overleaved array memory modules
JP2960560B2 (ja) * 1991-02-28 1999-10-06 株式会社日立製作所 超小型電子機器
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5289477A (en) * 1991-06-06 1994-02-22 International Business Machines Corp. Personal computer wherein ECC and partly error checking can be selectively chosen for memory elements installed in the system, memory elements enabling selective choice of error checking, and method
US5267242A (en) * 1991-09-05 1993-11-30 International Business Machines Corporation Method and apparatus for substituting spare memory chip for malfunctioning memory chip with scrubbing
US5313475A (en) * 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5428762A (en) * 1992-03-11 1995-06-27 International Business Machines Corporation Expandable memory having plural memory cards for distributively storing system data
US5381539A (en) * 1992-06-04 1995-01-10 Emc Corporation System and method for dynamically controlling cache management
GB2269247A (en) * 1992-07-28 1994-02-02 Rhythm Watch Co Interfacing an IC memory card to a central processing unit of a computer
US5588112A (en) * 1992-12-30 1996-12-24 Digital Equipment Corporation DMA controller for memory scrubbing
AU5987294A (en) * 1993-02-17 1994-09-14 3Com Corporation System for reading dynamically changing data
US5638530A (en) * 1993-04-20 1997-06-10 Texas Instruments Incorporated Direct memory access scheme using memory with an integrated processor having communication with external devices
EP0683613A3 (en) * 1994-05-20 1997-01-29 At & T Corp Storage and transmission of message data using a videophone and a smart card.
GB2289779B (en) * 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5774481A (en) * 1995-03-31 1998-06-30 International Business Machines Corporation Reduced gate error detection and correction circuit
IT1277386B1 (it) * 1995-07-28 1997-11-10 Alcatel Italia Apparato per lo scambio di informazioni tra carte di identificazione a circuiti integrati e un dispositivo terminale
JPH09330273A (ja) * 1996-06-10 1997-12-22 Mitsubishi Electric Corp メモリカードおよびメモリカードにおける誤り訂正方法
US5668815A (en) * 1996-08-14 1997-09-16 Advanced Micro Devices, Inc. Method for testing integrated memory using an integrated DMA controller
US5923682A (en) * 1997-01-29 1999-07-13 Micron Technology, Inc. Error correction chip for memory applications
US5953515A (en) * 1997-04-11 1999-09-14 International Business Machines Corporation Pluggable electronic card presence detect scheme for use in parallel and serial vital detect product data (VPD) collection systems
JP3731130B2 (ja) * 1997-06-05 2006-01-05 松下電器産業株式会社 強誘電体メモリ装置及びその駆動方法
WO1999000798A1 (fr) 1997-06-27 1999-01-07 Matsushita Electronics Corporation Dispositif a memoire ferroelectrique et son procede de commande
US6360346B1 (en) * 1997-08-27 2002-03-19 Sony Corporation Storage unit, method of checking storage unit, reading and writing method
US5987628A (en) * 1997-11-26 1999-11-16 Intel Corporation Method and apparatus for automatically correcting errors detected in a memory subsystem
US5963464A (en) * 1998-02-26 1999-10-05 International Business Machines Corporation Stackable memory card
US6108730A (en) * 1998-02-27 2000-08-22 International Business Machines Corporation Memory card adapter insertable into a motherboard memory card socket comprising a memory card receiving socket having the same configuration as the motherboard memory card socket
BR9908714A (pt) * 1998-03-13 2000-11-21 Motorola Inc Identificador rfid, leitora rfid, e sistema rfid incluindo identificadores com tamanhos de memória diferentes
US6115837A (en) * 1998-07-29 2000-09-05 Neomagic Corp. Dual-column syndrome generation for DVD error correction using an embedded DRAM
DE19835258B4 (de) * 1998-08-04 2006-07-27 Infineon Technologies Ag Integrierte dynamische Speicherschaltung mit einer Selbsttesteinrichtung
US6425055B1 (en) 1999-02-24 2002-07-23 Intel Corporation Way-predicting cache memory
JP2000253183A (ja) * 1999-03-03 2000-09-14 Sony Corp ネットワークシステム、端末装置及びネットワークサーバ
US6772380B1 (en) 1999-04-21 2004-08-03 Seagate Technology Llc Smart tester and method for testing a bus connector
US6845498B1 (en) * 1999-05-11 2005-01-18 Microsoft Corporation Method and apparatus for sharing data files among run time environment applets in an integrated circuit card
US6938244B1 (en) * 1999-05-11 2005-08-30 Microsoft Corp. Interlaced protocol for smart card application development
JP3871471B2 (ja) 1999-07-12 2007-01-24 松下電器産業株式会社 Ecc回路搭載半導体記憶装置及びその検査方法
US6370668B1 (en) * 1999-07-23 2002-04-09 Rambus Inc High speed memory system capable of selectively operating in non-chip-kill and chip-kill modes
US6591321B1 (en) * 1999-11-09 2003-07-08 International Business Machines Corporation Multiprocessor system bus protocol with group addresses, responses, and priorities
US6721943B2 (en) * 2001-03-30 2004-04-13 Intel Corporation Compile-time memory coalescing for dynamic arrays
US7069494B2 (en) * 2003-04-17 2006-06-27 International Business Machines Corporation Application of special ECC matrix for solving stuck bit faults in an ECC protected mechanism
US7080288B2 (en) * 2003-04-28 2006-07-18 International Business Machines Corporation Method and apparatus for interface failure survivability using error correction
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
US7184916B2 (en) * 2003-05-20 2007-02-27 Cray Inc. Apparatus and method for testing memory cards
US7437593B2 (en) * 2003-07-14 2008-10-14 International Business Machines Corporation Apparatus, system, and method for managing errors in prefetched data
US7107390B2 (en) * 2003-10-08 2006-09-12 Micron Technology, Inc. Parity-scanning and refresh in dynamic memory devices
US7478260B2 (en) * 2003-10-20 2009-01-13 Hewlett-Packard Development Company, L.P. System and method for setting a clock rate in a memory card
US7206962B2 (en) * 2003-11-25 2007-04-17 International Business Machines Corporation High reliability memory subsystem using data error correcting code symbol sliced command repowering
US7116600B2 (en) * 2004-02-19 2006-10-03 Micron Technology, Inc. Memory device having terminals for transferring multiple types of data
JP4056488B2 (ja) * 2004-03-30 2008-03-05 エルピーダメモリ株式会社 半導体装置の試験方法及び製造方法
US7272774B2 (en) * 2004-04-16 2007-09-18 Kingston Technology Corp. Extender card for testing error-correction-code (ECC) storage area on memory modules
US7099221B2 (en) 2004-05-06 2006-08-29 Micron Technology, Inc. Memory controller method and system compensating for memory cell data losses
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US9459960B2 (en) * 2005-06-03 2016-10-04 Rambus Inc. Controller device for use with electrically erasable programmable memory chip with error detection and retry modes of operation
US7831882B2 (en) * 2005-06-03 2010-11-09 Rambus Inc. Memory system with error detection and retry modes of operation
US20070022244A1 (en) * 2005-07-25 2007-01-25 Honeywell International Inc. Methods and systems for refresh and error scrubbing of dynamic memory devices
JP4645837B2 (ja) * 2005-10-31 2011-03-09 日本電気株式会社 メモリダンプ方法、コンピュータシステム、およびプログラム
DE102005056865A1 (de) 2005-11-29 2007-05-31 Giesecke & Devrient Gmbh Pipeline-Mechanismus für den Datenaustausch zwischen Chipkarte und Terminal
US7562285B2 (en) 2006-01-11 2009-07-14 Rambus Inc. Unidirectional error code transfer for a bidirectional data link
JP2007257791A (ja) * 2006-03-24 2007-10-04 Fujitsu Ltd 半導体記憶装置
US8578116B2 (en) * 2006-03-28 2013-11-05 Broadcom Corporation System and method for memory data protection with secure pad memory
US8352805B2 (en) 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
US20070271495A1 (en) * 2006-05-18 2007-11-22 Ian Shaeffer System to detect and identify errors in control information, read data and/or write data
US7894289B2 (en) * 2006-10-11 2011-02-22 Micron Technology, Inc. Memory system and method using partial ECC to achieve low power refresh and fast access to data
US7900120B2 (en) 2006-10-18 2011-03-01 Micron Technology, Inc. Memory system and method using ECC with flag bit to identify modified data
WO2008047443A1 (fr) * 2006-10-20 2008-04-24 Fujitsu Limited Dispositif à mémoire et procédé de réglage de rafraîchissement
US20080168331A1 (en) * 2007-01-05 2008-07-10 Thomas Vogelsang Memory including error correction code circuit
US8370715B2 (en) * 2007-04-12 2013-02-05 International Business Machines Corporation Error checking addressable blocks in storage
JP4739296B2 (ja) * 2007-08-27 2011-08-03 ソリッド ステート ストレージ ソリューションズ エルエルシー 外部記憶装置およびそのメモリアクセス制御方法
JP4813454B2 (ja) * 2007-12-21 2011-11-09 ソリッド ステート ストレージ ソリューションズ エルエルシー 外部記憶装置およびそのメモリアクセス制御方法
TWI389030B (zh) * 2008-05-07 2013-03-11 Mstar Semiconductor Inc 於微處理器下載並執行程式碼的方法與電腦程式產品以及包含該微處理器之通訊裝置
JP4511618B2 (ja) * 2009-01-23 2010-07-28 ソリッド ステート ストレージ ソリューションズ エルエルシー 外部記憶装置およびそのメモリアクセス制御方法
US8433734B2 (en) * 2009-06-29 2013-04-30 Sandisk Technologies Inc. Selecting a file path of a removable storage device based on a root directory size comparison with a host device
US20120066471A1 (en) * 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Allocation of memory buffers based on preferred memory performance
JP5642764B2 (ja) * 2012-12-21 2014-12-17 ソリッド ステート ストレージ ソリューションズ インク 外部記憶装置およびそのメモリアクセス制御方法
US20150067437A1 (en) * 2013-08-30 2015-03-05 Kuljit S. Bains Apparatus, method and system for reporting dynamic random access memory error information
US9146809B2 (en) * 2013-10-07 2015-09-29 Macronix International Co., Ltd. ECC method for double pattern flash memory
US9535785B2 (en) 2014-01-17 2017-01-03 Macronix International Co., Ltd. ECC method for flash memory
US9766975B2 (en) 2015-09-01 2017-09-19 International Business Machines Corporation Partial ECC handling for a byte-write capable register
US10176038B2 (en) * 2015-09-01 2019-01-08 International Business Machines Corporation Partial ECC mechanism for a byte-write capable register
US9985655B2 (en) 2015-09-01 2018-05-29 International Business Machines Corporation Generating ECC values for byte-write capable registers
US9880900B2 (en) 2015-12-08 2018-01-30 Nvidia Corporation Method for scrubbing and correcting DRAM memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state
US9823964B2 (en) 2015-12-08 2017-11-21 Nvidia Corporation Method for memory scrub of DRAM with internal error correcting code (ECC) bits during either memory activate and/or precharge operation
US10049006B2 (en) 2015-12-08 2018-08-14 Nvidia Corporation Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands
KR20180081282A (ko) * 2017-01-06 2018-07-16 에스케이하이닉스 주식회사 반도체장치
EP3776207B1 (en) 2018-03-26 2023-08-09 Rambus Inc. Command/address channel error detection
US11385963B1 (en) * 2021-02-24 2022-07-12 Western Digital Technologies, Inc. Usage of data mask in DRAM write

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4317201A (en) * 1980-04-01 1982-02-23 Honeywell, Inc. Error detecting and correcting RAM assembly
FR2483713A1 (fr) * 1980-05-30 1981-12-04 Cii Honeywell Bull Dispositif pour la transmission de signaux entre deux stations de traitement de l'information
JPS5891590A (ja) * 1981-11-27 1983-05-31 Fujitsu Ltd メモリシステム
JPS5963093A (ja) * 1982-09-30 1984-04-10 Fujitsu Ltd メモリ回路
JPS60225955A (ja) * 1984-04-25 1985-11-11 Nec Corp 記憶装置
US4710934A (en) * 1985-11-08 1987-12-01 Texas Instruments Incorporated Random access memory with error correction capability
JPS62212854A (ja) * 1986-03-14 1987-09-18 Nippon Telegr & Teleph Corp <Ntt> 自動誤り訂正記憶装置
JPS62226352A (ja) * 1986-03-28 1987-10-05 Mitsubishi Electric Corp Ras付記憶装置
JPS62161399U (ja) * 1986-03-31 1987-10-14

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE45857E1 (en) 1995-07-14 2016-01-19 Solid State Storage Solutions, Inc External storage device and memory access control method thereof
JP2010170566A (ja) * 2010-03-01 2010-08-05 Solid State Storage Solutions Llc 外部記憶装置およびそのメモリアクセス制御方法

Also Published As

Publication number Publication date
EP0346629A3 (en) 1991-05-29
EP0346629B1 (en) 1995-08-16
EP0346629A2 (en) 1989-12-20
DE68923828T2 (de) 1996-03-28
JPH0224752A (ja) 1990-01-26
DE68923828D1 (de) 1995-09-21
US4888773A (en) 1989-12-19

Similar Documents

Publication Publication Date Title
JPH06105443B2 (ja) スマート・メモリ・カード
US7353438B2 (en) Transparent error correcting memory
US7676728B2 (en) Apparatus and method for memory asynchronous atomic read-correct-write operation
US5488691A (en) Memory card, computer system and method of operation for differentiating the use of read-modify-write cycles in operating and initializaiton modes
EP1815338B1 (en) Predictive error correction code generation facilitating high-speed byte-write in a semiconductor memory
US4945512A (en) High-speed partitioned set associative cache memory
CN111063379B (zh) 存储器装置以及操作其以用于读取页面媒体流的方法
US5396641A (en) Reconfigurable memory processor
US7257762B2 (en) Memory interface with write buffer and encoder
US7984363B2 (en) Integrated circuit device including a circuit to generate error correction code for correcting error bit for each of memory circuits
JPS6237423B2 (ja)
JPS63502147A (ja) 故障許容メモリシステム
JPH0594377A (ja) パリテイ検出回路
EP0600817A2 (en) Dual-port array with storage redundancy
JPS58222497A (ja) マイクロプログラム制御装置
JP3600562B2 (ja) 半導体記憶装置
JPH0746517B2 (ja) 半導体メモリ及びそのテスト方法
JPS6321276B2 (ja)
JPS6134618A (ja) メモリクリア制御方式
WO2006057794A2 (en) Transparent error correcting memory that supports partial-word write
JPS61192100A (ja) 半導体記憶装置
JPS6074032A (ja) マイクロプログラム制御装置
JPH04233052A (ja) 二重化メモリ装置
JPH04233053A (ja) 二重化メモリ装置
JPH10340233A (ja) マイクロプロセッサ