JPS61156954A - バツフアメモリシステム - Google Patents

バツフアメモリシステム

Info

Publication number
JPS61156954A
JPS61156954A JP60174443A JP17444385A JPS61156954A JP S61156954 A JPS61156954 A JP S61156954A JP 60174443 A JP60174443 A JP 60174443A JP 17444385 A JP17444385 A JP 17444385A JP S61156954 A JPS61156954 A JP S61156954A
Authority
JP
Japan
Prior art keywords
parity
data
read
write
bit
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.)
Granted
Application number
JP60174443A
Other languages
English (en)
Other versions
JPH0374986B2 (ja
Inventor
ダニエル・フランシス・キヤスパー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS61156954A publication Critical patent/JPS61156954A/ja
Publication of JPH0374986B2 publication Critical patent/JPH0374986B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/78Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor
    • G06F7/785Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data for changing the order of data flow, e.g. matrix transposition or LIFO buffers; Overflow or underflow handling therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using a RAM
    • 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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Communication Control (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ処理システム、さらに詳しくいえば、デ
ータ処理システムにおけるデータ伝送のためのバッファ
メモリに関するものである。
〔開示の概要〕
以下に開示する技術は、データ処理システムにおいてバ
ッファメモリのアドレス指定の循環が偶数回めであるか
または奇数回めであるかを識別する手段を設けることに
よシ、データのエラーおよびそれ以外のエラーの両方を
簡単に検出できるようにしたパンツアメモリシステムに
関するものである。
〔従来技術〕
バッファメモリで待ち行列を実現することは周知の技術
であるが、以下、本発明の関連技術をこの分野で使用す
る用語と共に概説する。
待ち行列 データ処理システムでは、′リスト(list)”はデ
ータエントリのシーケンスである。そのようなシーケン
スの両端は”トップ(top)” および橢ボトム(b
ottom)”または1フロ7ト(front)”およ
び1バツク(back)″と呼ばれる。リスト中のエン
トリは、それを追加しまたは削除するために任意の順序
でアクセスすることができる。プロシージャのアクセス
については別の用語がある。
リストのバックにエントリを追加してリストのフロント
からエントリを除去するとき、バス停で待つている人々
の行列にならって、これを”待ち行列(qnene)”
という。この場合、待ち行列をFIFO(ファーストイ
ン・ファーストアウト)リストと呼ぶこともある。
待ち行列は送信手段から受信手段へ転送されているデー
タエントリのシーケンスを保持する。データエントリは
送信側によって待ち行列に入力され、受信側によって待
ち行列から削除される。待ち行列のFIFO構造はもと
のシーケンスを維持し、そのシーケンスでデータエント
リが送信側から受信側に転送される。”バッファ”とい
う用語はこの機能を言い表わしており、この目的で使用
される待ち行列のことを、普通、バッファと呼んでいる
のである。
データバッファ 以上、データ構造に限って待ち行列のことを説明したが
、待ち行列は物理的な記憶装置における順次的な記憶ロ
ケーションの1ブロツクとして実現することができる(
各エントリが1つの記憶ロケーションに対応する)。バ
ッファすなわち待ち行列を実現する記憶装置のことを、
バッファ記憶装置またはバッファメモリという。すなわ
ち、バッファという用語はデータそのものおよびノー−
ドウエアの両面を表わすものとして使用される。バッフ
ァは大規模なメモリの一部である場合もあるし、待ち行
列を構成するためにだけ使用される独立した1つのメモ
リである場合もある。
バッファにおける記憶ロケーションは読取シオヘレーシ
ョンマタハ書込ミオペレーションの際、成るアドレスに
よってアクセスすることができる。
1つのアドレスは1つの番号として取シ扱うことができ
、シーケンス中の各記憶ロケーションをアクセスする各
アドレスは、カウンタを増減することで構成できる。た
とえば、待ち行列のフロントに大きいアドレスの記憶ロ
ケーションを割り当てることができる。待ち行列の長さ
はエントリ数の増減(追加または削除による)に応じて
変化するので、待ち行列すなわちバッファの制御システ
ムは待ち行列のバックのアドレスを追跡するためのカウ
ンタを具備する。このアドレスは、普通、バックポイン
タと呼ばれるか、または、メモリのノー−ドウエアとい
う局面を強調する意味で、書込みポインタと呼ばれる。
1例として、待ち行列に記憶ロケーション0ないし12
7が割シ振られ、記憶ロケーション127が待ち行列の
フロントを保持しているものと仮定する。この待ち行列
が一杯なら、バックポインタは記憶ロケーション0を指
定し、待ち行列が空なら、バックポインタは記憶ロケー
ション127を指定する。バックポインタのところの記
憶ロケーションにエントリが追加されると、バックポイ
ンタは次の記憶ロケーションまで減分される。待ち行列
のフロントからエントリが除去されたときは、バス停で
待っている人々と同じように、待ち行列における残りの
全てのエントリは1つ分の記憶ロケーションだけ前にシ
フトして、バックポインタが増分される。
もつと普通の方法としては、エントリが削除されたとき
エントリを前にシフトしないで、代わシにバックポイン
タと同じようなカウンタを設けてこれを制御するものが
ある。このカウンタのカウント値はフロントポインタま
たは読取シボインタと呼ばれる。フロントポインタで指
定される記憶ロケーションからエントリが削除されると
、待ち行列の新しいフロントとなるところのエントリの
記憶ロケーションを指定するようフロントポインタが減
分される。この例では、エントリが待ち行列に追加され
るときはバックポインタは減分されるが、エントリが削
除されるときはバックポインタは変わらない。
待ち行列は循環的に構成されることも多い。この場合、
バックポインタが記憶ロケーション0まで減分されると
、次は記憶ロケーション127に循環する。フロントポ
インタも同じように減分される。たとえば7ビツトのア
ドレスカウンタは、このシーケンスを提供するように循
環する。10進数127は2進数0111 1111で
ある(2進デイジツトは見易くするために4つごとに分
けた)。10進数128は2進数1000 0000で
ある。そのようなカウンタはモジュロ128カウンタと
呼ばれる。8ビツト以上のカウンタの下位7ピツトだけ
を読み取ることによっても同様な機能が得られる。
待ち行列をたまたま大きいアドレスのところをフロント
とし小さいアドレスのところのをバックとして構成した
ということで、ポインタが減分されるという点に留意さ
れたい。もつと一般的な観点でいえば、ポインタはどち
らの方向にでも1進む1のである。フロントからバック
に向かう方向で循環するのが一般的なので、この例で説
明したにすぎない。
バッファ制御システムは適切なデータエントリのポイン
タを処理する。待ち行列が空でない限シは、フロントポ
インタは待ち行列のフロントのところの有効エントリを
指定する。バックポインタは最初の空の記憶ロケーショ
ンを指定する。このロケーションは最後の有効エントリ
の次の記憶ロケーションである。エントリが待ち行列か
ら削除されるのに応じて、充填された記憶ロケーション
のところまでフロントポインタが進む(減分または増分
される)。新しいエントリが待ち行列のバックに入力さ
れると、バックポインタは空になった記憶ロケーション
のところまで進む(減分または増分される)。
こうしてバックポインタがフロントポインタのところま
で進むと、待ち行列が一杯になったことを意味するから
、それ以上エントリを入れることはできない。したがっ
て待ち行列は、オーバーフローしないよう、送信側の最
大のレートでデータを処理するに十分な大きさにするか
、または受信側のデータレートをバッファのレートまで
下げるための適切な処置をとる。フロントポインタがバ
ックポインタのところに達したときは、待ち行列が空に
なったことを意味するので、そのことをエントリ削除手
段に知らせて削除を停止することができる。このような
状態は、普通、送信手段が最後のエントリを送った後か
、または送信手段が一時的に停止(もしくは減速)した
ときに発生する。
ポインタ制御システムは読取りオペレーションまたは書
込みオペレーションの前または後で1つのポインタを進
めることができる。この選択は読取シボインタおよび書
込みポインタの相対的な位置に影響を与える。このよう
な技術はよく知られたものである。
ところで、1つの記憶ロケーションのデータの単位は、
普通、1メモリワードまたは“ワードと呼ばれ、1つの
ワードに対する1つの記憶ロケーションはワードロケー
ションと呼ばれることもある。ワードをバッファに入力
するというオペレーションは記憶または書込みと呼ばれ
、バッファからワードを削除するというオペレーション
は取出しまたは読取シと呼ばれる。
バッファメモリにおけるエラー検出 1つのメモリワード中にエラーが発生すると、そのワー
ドが記憶されたとき[0または1の値を有するビットは
、そのワードの読取りの際に反対の値に変わる。パリテ
ィチェック回路は1ワード中の値1のビットの数をカウ
ントして、そのカウント値が偶数または奇数になるよう
にパリティビットOまたは1を付加する。偶数または奇
数の選択はシステムによってどちらでも可能である。ビ
ット1を付加すればパリティは偶数から奇数または奇数
から偶数に変わるが、ビット0を付加したときはパリテ
ィは変わらない。論理回路の観点からいうと、ハリティ
の機能はデータワードに関する排他的OR機能である。
パリティチェック回路は、通常、EXOR回路のツリー
で実現される。
ワードをバッファメモリに記憶する前に奇数パリティを
与えるようなビットを付加するパリティチェック回路の
ことを奇数パリティチェック回路という。奇数パリティ
を採用した場合、奇数パリティを有するワードは有効で
、偶数パリティを有するワードは無効である。1ビツト
エラーが発生すると値10ビットの数が増えるかまたは
減るので、そのワードに関するパリティが変わる。ただ
し同じワード中に2つのエラーが発生したときは、パリ
ティが変わらないので2ビツトエラーは検出できない。
普通、各々の記憶ロケーションごとに1つのパリティビ
ット位置を設ける。メモリワードを記憶させるだめの回
路はパリティビットを計算してそれをそのメモリワード
の1部として記憶する。メモリワードを取り出すための
回路は、同じように、そのワードのパリティビットを計
算して、ハリティが間違っていればエラー(データエラ
ー)の生じたことを知らせる。
データおよびアドレスの両方を合わせたものにパリティ
ビットを設けることも周知の技術である。
書込ミオペレーション中、データおよびアドレスに関す
るパリティビットが付加され、読取シオペレーション中
、アドレスおよび該アドレスのロケーションから読み取
られたデータの両方に関してチェック回路が働く。
アドレスおよびデータに関するパリティもパリティツリ
ー回路によって生成されるが、これはかなり大規模なも
のである。アドレスおよびデータに関するパリティは、
概念的にいえば、初めにデータに関するパリティおよび
アドレスに関するパリティを生成し次にこれら2つのパ
リティビットのパリティを生成することによって生成さ
れる。
この回路は、アドレスに関する第1のパリティ発生器、
データに関する第2のパリティ発生器、およびこれらの
発生器で生成された2つのパリティビットに関する第3
のパリティ発生器として実現することができる。したが
って形式的には、アドレスに関するパリティとデータに
関するパリティを別々に考慮していると見るのが妥当で
ある。
書込みオペレーションの際のデータワードおよびアドレ
スをワード1およびアドレス1と表わし、これらのワー
ド1およびアドレス1に関して生成したチェックビット
をチェックビット1と表わし、読取りオペレーションの
際のデータワード、アドレス、およびチェックビットに
ついてもこれと同様にしてワード2、アドレス2、およ
びチェックビット2と表わせば、アドレス指定機構に障
害があるときはアドレス1およびアドレス2が異なるだ
けでなく、たいていは、ワード1およびワード2も異な
る。このエラーは1つのパリティエラーとして検出可能
である。
何らかの障害により、読取シオペレーションが書込みオ
ペレーションよシ先に進んでしまったシ(たとえば読取
りポインタまたは書込みポインタに障害があるために読
取シボインタが書込みポインタを越えて先に進んだとき
)、読取りポインタが空として取り扱われている記憶ロ
ケーションのところに入ってしまうようなことがある。
はとんどのバッファシステムでは、こうした記憶ロケー
ションには、前の循環のときに書込み回路によって書き
込まれたデータが入っている。エントリさえ正しく行わ
れていれば、従来のシステムでは、上記のようなアドレ
ス指定機構(データの読取り回路および書込み回路を含
む)のエラーは検出されない。
読取りポインタおよび書込みポインタがバッファメモリ
が一杯であるかまたは空であるかを知らせる信号に関す
るオペレーションの一部として検査されることもある。
ポインタの検査回路に適用できる回路冗長性の技術はこ
れまでにも多数考え出されている。同様にして、読取り
回路および書込み回路にも冗長性を持たせることができ
る。しかしながら、このために回路が複雑になるので望
ましくない。
ところで、各記憶ロケーションごとに有効性ビットを1
つずつ割シ当てておき、書込みオペレーションの後はそ
のビットを”有効1にセットし読取シオペレーションの
後はそのビットを”無効”にセットするということも可
能である。同様にして、各記憶ロケーションハ読取りオ
ペレーションの後でクリアすることができる(またはそ
の記憶ロケーションに”無効“ビットを組み合わせて書
き込むことができる)。たとえば、ビットパターンを読
み取った後に、そのビットパターンを正しくないパリテ
ィと共に各記憶ロケーションに書き込むようにすること
ができる。その記憶ロケーションが読み取られるまでに
、別の書込みオペレーションによって有効なデータが書
き込まれていなければ、その読取シ時にはこれがパリテ
ィエラーとして報告される。しかしながら、この方法だ
と、以上のような余分の書込みオペレーションが介在す
るから、バッファメモリの動作が遅くなる。
〔発明が解決しようとする問題点〕
以上示したように、従来のバッファメモリシステムはデ
ータのエラーしか検出しないか、あるいは、それ以外の
エラーを検出するにしてもそのために回路が複雑になっ
たシ動作が遅くなったシするという欠点を持っている。
したがって本発明の目的は、データのエラーおよびそれ
以外のエラー(たとえばアドレス指定機構のエラー)の
両方を簡単に検出することのできるバッファメモリシス
テムを提供することにある。
〔問題点を解決するだめの手段〕
この目的を達成するため、複数の記憶ロケーションから
成るバッファメモリと、モジュロmの書込みアドレスカ
ウンタと、記憶すべきデータワードに関するパリティビ
ットを生成する手段と、データワードお・よびパリティ
ビットを書込みアドレスカウンタの指定する記憶ロケー
ションに記憶する手段と、書込みオペレーションごとに
書込みアドレスカウンタを増分する手段と、モジュロm
の読取シアドレスカウンタと、該読取りアドレスカウン
タの指定する記憶ロケーションからデータワードを読み
取って読取りアドレスカウンタを増分する手段と、読取
りオペレーションでデータワードに関するパリティを検
査してエラーの有無を知らせる手段と、よ構成る、デー
タ処理システムにおけるデータワードの伝送を行うため
の本発明のバッファメモリシステムは、書込みアドレス
カウンタが奇数回めの循環であるか偶数回めの循環であ
るかを識別する手段と、奇数回めの循環の読取りの際に
は奇数パリティをチェックし、偶数回めの循環の読取り
の際には偶数パリティをチェックするようにデータワー
ドを処理する手段と、を有することを特徴とする。
〔作用〕
上記のようなバッファメモリシステムは、モジュロm(
m=2・)の書込みアドレスカウンタおよび読取りアド
レスカウンタの(n+1)番目のビットを利用すること
によって構成できる。これらのカウンタの(n+1)番
目のビットを従来のハリティ発生回路およびパリティチ
ェック回路で利用する。
たとえば、m = 7とすると、各アドレスカウンタは
ooo  ooooから111 1111まで進む。(
n+1 )番目のビットすなわち8番目のビットを入れ
て表現すれば、これらのアドレスカウンタは初回はoo
oo  ooooから01111111まで進み、次回
は1.000 0000から1111 1111まで進
む。したがってバッファメモリを1回循環するたびにカ
ラ/りの(n+1)番目のビットが0から1または1か
らOに切り換わる。すなわちこれらのカウンタの(n+
1)番目のビットは、バッファメモリの循環が偶数回め
であるか奇数回めであるかを示す1ビツトカウンタとし
て機能する。
実施例によれば、書込みアドレスカウンタの(n+1)
番目のビットを新たなパリティビット(実施例では書込
みバスパリティビットという)として用い、これと従来
のパリティビットとをEXORしたものをバッファメモ
リに書き込む。読取りアドレスカウンタの場合も同様に
して、(n+1)番目のピットを新たなパリティビット
(実施例では読取シバスパリテイビットという)として
用い、これと従来のパリティビットとをEXORしたも
のをパリティビットとして検査する。したがって、バッ
ファメモリを循環するたびに、すなわち、これらのカウ
ンタが循環するたびに、パリティは→偶数パリティ→奇
数パリティ→偶数パリティ→のように交互に変わる。
以下の実施例でこれを詳しく説明する。
〔実施例〕
バッファメモリシステム12の説明(第1図)バッファ
メモリシステム12は複数の記憶ロケーションから成る
メモリアレイ(バッファメモリともいう)14、読取シ
アドレスカウンタ16、書込みアドレスカウンタ18、
アドレス指定されたロケーションに書き込まれるデータ
のためのレジスタ22、記憶ロケーションから読み取ら
れたデータのためのレジスタ25、レジスタ22にデー
タと共に記憶されるパリティビットを生成するためのE
XOR回路27、およびメモリアレイから読み取られた
ワード中にエラーが検出されたかどうかを知らせるパリ
ティビットを生成するためのEXOR回路30を有する
書き込むべきデータは、送信側と接続されたバス34を
介してバッファメモリシステム12に入る。読み取られ
たデータは、受信側に接続されたバス37を介してバッ
ファメモリシステム12から出る。好適には、バッファ
メモリシステム12は中央プロセッサメモリと、磁気記
録ディスクのような補助記憶装置との間に接続して、デ
ータをいずれの方向にも伝送できるようにバス34およ
びバス37を切シ換えるための手段を設ける。バス34
およびバス37の幅は補助記憶装置のものと同じにして
おくのがよい。バス34およびバス37とそれより幅の
広い主メモリのバスとの形式が異なるので、他の構成要
素はそれに合わせて変更する。
送信側からの書込みデータ(バス34)は、好適には、
書込みデータパリティビット(ライン39)を有する。
パリティが正しいかどうかをみるだめにバス34および
ライン39を検査する回路は第1図では省略した。同様
に、読取シデータ(バス37)は読取シデータパリテイ
ビット(ライン40)を有する。
アドレスカウンタ16および18はライン41および4
2を介して”付勢”信号を受は取って、メモリアクセス
サイクルごとに進む(増分または減分)。従来と同様、
メモリアレイが一杯であるか、空できるか、または空で
ないかということを知らせるだめの手段と、読取りポイ
ンタが書込みポインタを越えて進むことのないようにす
るため手段とを設ける。
書込みおよび読取りアドレス指定 書込みアドレスカウンタ18の下位ビットはメモリアレ
イ14をアドレス指定するだめの通常のモジュロ2nカ
ウンタを構成する。メモリアレイ14は、たとえば、1
27個のアドレス指定可能な記憶ロケーションを有して
おり、書込みアドレスカウンタ18が番号1からnまで
のnアドレスピット(書込みポインタ)を保持する。(
n+1)番目のピットはアドレス指定には使用しないが
、BXOR,回路27の一方の入力である“書込みバス
パリティ1ビツト(ライン44)として使用する。EX
OR回路27は、書込みデータ用のレジスタ22の従来
のパリティビット位置に入る書込みパリティ(ライン4
6)を発生する。
読取シアドレスカウンタ16も書込みアドレスカウンタ
18と同様なものである。読取シアドレスカウンタ16
の下位nビットは待ち行列のフロントのところのワード
のアドレス(読取りポインタ)を形成する。EXOR回
路30はレジスタ25のパリティビット位置から従来の
読取シハリテイ(ライン47)を受は取る。EXOR回
路30は、もう一方の入力で、読取シアドレスカウンタ
16の(n+t)番目の”読取シバスパリテイ”ピット
(ライン51)を受は取る。EXOFL回路30はこれ
らの信号から”読取りデータパリティ”ビット(ライン
40)を発生する。後述するように、バッファメモリシ
ステム12における以上のアドレス指定機構に障害がな
い限シは、バス37およびライン40はデータおよびパ
リティビットを受信する回路によって普通に処理される
2図) 第2図では、第1図のメモリアレイ14を構成する記憶
ロケーションの1つを参照番号56で表したが、それ以
外の参照番号は第1図のものと同じである。第2図で追
加して図示したのは、パリティ発生回路57およびパリ
ティチェック回路58である。・パリティ発生回路57
は書込みデータに作用して書込みデータパリティビット
(ライン39)を生成する。パリティチェック回路58
はバス37およびライン40に接続する。パリティチェ
ック回路58はバス37の読取りデータおよびライン4
0の読取シデータパリテイに関するパリティを生成する
EXO几ツリー回路60を有する。後述するように、ア
ドレス指定機構に障害がある場合でも、パリティチェッ
ク回路58は”エラー”信号(ライン62)を発生する
。パリティ発生回路57およびパリティチェック回路5
8は通常のデータ処理システムの一部である。
実施例の動作をわか夛易くするため、まず従来のデータ
チェック機構について簡単に説明しておく。書込みバス
ハリティビットおよび読取シバスパリテイビットならび
にBXOR回路27および30のない従来のシステムで
は、書込みパリティは”書込みデータパリティ1と同じ
であり、読取シパリテイは“読取シデータパリテイ“と
同じである。読取シデータが書込みデータと異なると検
出された場合は、エラー信号が発生される。エラーが発
生しなかったときは、書込みデータ、メモリデータ、お
よび読取シデータは全て同じであるから、そのパリティ
も全て同じである。書込みデータパリティ(ライン39
)は記憶ロケーション56のビット位置Pに記憶される
。EXORツリー回路60は、実際には、バス37の8
ビツトの読取りデータに関するパリティを生成し、それ
を記憶ロケーション56からのパリティビット(ライン
40)と比較する。読取シデータのパリティと書込みデ
ータのパリティが異なるとき、すなわち記憶ロケーショ
ン56のパリティビットが書込みデータの正しいパリテ
ィでないときは、エラー信号が発生される。以上のよう
に、従来のシステムでは、データのエラーのみが検出さ
れる。
本実施例のバッファメモリシステムにおいて、アドレス
指定機構が誤シなく動作すれば、ライン44の書込みバ
スパリティはライン51の読取りバスハリティと等しい
。書込みポインタおよび読取シボインタが偶数回めの循
環のときは、書込みバスハリティおよび読取りバスパリ
ティは共に0である。ビット値”0″はEXOR回路に
は影響を与えないから、書込みパリティ(ライン46)
は書込みデータパリティ(ライン39)に等しく、読取
りパリティ(ライン47)は読取シデータパリティ(5
イン40)に等しい。したがってこの場合は、従来のデ
ータチェック機構と同じである。
同様に、奇数回めの循環のときは、書込みバスパリティ
および読取シバスパリテイは共に1である。
したがってEXOR,回路27は書込みデータパリティ
を反転し、EXOR回路30は読取りデータパリティを
反転する。このように2つとも反転するから、もとのパ
リティが保存されパリティチェック回路58はこれをエ
ラーとは検出しない。このようにアドレスカウンタの(
n+1)番目のビットが切シ換わるたびにシステムのパ
リティは奇数パリティおよび偶数パリティの両方が交互
に切り換わる。
ところで、書込みバスパリティと読取シバスパリテイが
等しくないときは、EXOR回路27およびEXO几回
路30の出力が異なる。したがってデータ経路上で1ビ
ツトの変更が存在し、パリティチェック回路58でパリ
ティエラーが検出される。このようにして、本実施例の
バッファメモリシステムでは、データのエラーだけでな
くアドレス指定機構のエラーも検出できる。
書込みポインタはメモリアレイ14に最後に書き込まれ
たワードのロケーションにとどまっており、読取シボイ
ンタは残りのワードが読み取られるにつれてこのロケー
ションに向かって進む。上記最後のワードが読み取られ
ると、読取りポインタおよび書込みポインタはメモリア
レイ14の次の記憶ロケーションのところから始まる次
のデータ転送の開始の準備をする。
データ転送によってはこれと多少違ったものもある。I
10装置が送信ユニットでプロセッサメモリが受信ユニ
ットであるような場合、I10装置はプロセッサが必要
とするよりも多いデータを送ることがある。このような
状況では、送信側からの全てのデータがメモリプレイに
書き込まれるが、全てのデータを読み取る前にその読取
シオペレーションが停止する。読み取られなかったデー
タは事実上捨てられる。これらのポインタは、2つとも
決まった開始点にセットするか、または読取シボインタ
を書込みポインタに等しくセットするかの2つのやり方
でリセットされる。
本実施例では、読取シボインタの値を書込みポインタの
値に等しくセットするというやり方で両ポインタをリセ
ットする。このやり方は、バッファメモリが短いデータ
転送オペレーションを取り扱うときには極めて有効であ
る。これらのポインタを成る決まった位置にセットして
各々のデータ転送を始めるようなやシ方の場合は、読取
りアドレスカウンタ16および書込みアドレスカウンタ
18の各々の(n+1)番目のピットはデータ転送開始
時に常にO(または常に1)にセットする。
短いデータ転送でバッファメモリが一杯にならないとき
は、これらのカウンタの(n+1)番目のビットは変わ
らず、次回の転送は決まった値にリセットされた値のカ
ウンタで開始されることになる。この場合、バッファメ
モリが一杯にならないときに発生するエラーは検出され
ない。したがって短いデータ転送が幾つか連続して行わ
れても、エラーが検出されない場合がある。読取りポイ
ンタの値を書込みポインタの値に等しくするというリセ
ット方法にすれば、データ転送・の長さに関係なくメモ
リアレイが循環するたびに(n+x)番目のビットが変
わる。従来と同様、電源投入時または通常のリセット時
もこれらのポインタがリセットされる。
他の実施例 前にも説明したようにメモリアレイには、普通、単一の
パリティビットを記憶する。メモリアレイ14の幾つか
の記憶ロケーションで検出不可能な多重エラーが何らか
の障害によシ発生したときでも、2n個の記憶ロケーシ
ョンの中には検出可能なエラーが1つぐらいはある。本
発明には、障害が発生したときにこれを検出するという
目的があり、さらに一般的にいえば、データ転送中どこ
かにエラーが発生したときにこれを検出するという目的
がある。エラーを検出すれば、たとえば同じようなバッ
ファを有する別の経路を介してデータを再送する等の適
切な処置をとることができる。
本発明の他の実施例によれば、書込みバスパリティ(ラ
イン44)および書込みデータパリティ(ライン39)
は別々に生成して別々に記憶する。
この場合、バッファメモリシステムはEXOR回路27
または30を持たない。記憶ロケーション56における
書込みデータパリティビットを普通に読取シデータパリ
テイのライン40に出して、バスのデータを受は取るた
めに接続された回路でこのパリティを処理する。このバ
スでパリティエラーが検出されれば、それは従来のデー
タエラーを意味する(アドレス指定エラーではない)。
読取シオペレーションの際、ライン51の読取りバスパ
リティビットと、既に記憶されている書込みバスパリテ
ィビットとを比較する。これで不一致があれば、それは
アドレス指定エラーを意味する。
バッファの幅は2バイトで、別々のアドレス指定回路を
有する2つのアレイとして実現する。通常どおり、各バ
イトごとにそれぞれデータパリティビット位置を設ける
。さらに、各バイトごとにそれぞれ書込みバスパリティ
ビット位置を設けて、書込4バスパリテイピツト(ライ
ン44)を各アレイに記憶する。読取シオペレーション
の際には。
2つの書込みバスパリティビットおよび読取シバスパリ
テイピットに関する3つの比較がなされる。
アドレスカウンタ16および18のピット位置(n+1
)を、これまでとは少し違ったやシ方で使用して書込み
パリティビットおよび読取りバスハリティピットを生成
する。書込みアドレスカウンタの(n+1)番目のピッ
ト位置と比較器との間にEXOR回路を接続し、読取り
アドレスカウンタの(n+1)番目のピット位置と比較
器との間にもう1つのEXOR回路を接続する。ラッチ
を1つ設けてこのラッチの出力を上記EXOR回路の各
々の第2人力に接続する。ラッチがセットされていると
きは(n+1)番目のピットを反転するが、ラッチがリ
セットされているときはそれを反転しない。このように
してシステムのパリティを交互に切り換える(奇数パリ
ティおよび偶数パリティの切換え)。
以上の実施例では各メモリワードには単一のパリティビ
ットしか与えていないが、本発明の概念は、1メモリワ
ードに複数のパリティビットを設けるようにも拡張でき
ることは当業者には容易に理解できるであろう。1メモ
リワードに複数のパリティビットを設ければ、より複雑
なエラーが検出および訂正できるようになる。
〔発明の効果〕
以上説明したように本発明によれば、バッファメモリシ
ステムにおけるデータエラーおよびそれ以外のエラーを
簡単に検出することができる。
【図面の簡単な説明】
第1図は本発明のバッファメモリシステムの実施例を示
す図、第2図は実施例の動作を説明する図である。 出願人  インターナショカル・ビジネス・マシーノズ
・コーポレーション代理人 弁理士  頓   宮  
 孝   −(外1名) エラー

Claims (1)

  1. 【特許請求の範囲】 複数の記憶ロケーションから成るバッファメモリと、モ
    ジユロmの書込みアドレスカウンタと、記憶すべきデー
    タワードに関するパリティビットを生成する手段と、デ
    ータワードおよびパリティビットを前記書込みアドレス
    カウンタの指定する記憶ロケーションに記憶する手段と
    、書込みオペレーションごとに前記書込みアドレスカウ
    ンタを増分する手段と、モジユロmの読取りアドレスカ
    ウンタと、該読取りアドレスカウンタの指定する記憶ロ
    ケーションからデータワードを読み取つて前記読取りア
    ドレスカウンタを増分する手段と、読取りオペレーショ
    ンでデータワードに関するパリティを検査してエラーの
    有無を知らせる手段と、より成る、データ処理システム
    におけるデータワードの伝送を行うためのバッファメモ
    リシステムであつて、 (a)前記書込みアドレスカウンタが奇数回めの循環で
    あるか偶数回めの循環であるかを識別する手段と、 (b)奇数回めの循環の読取りの際には奇数パリティを
    チェックし、偶数回めの循環の読取りの際には偶数パリ
    ティをチェックするようにデータワードを処理する手段
    と、 を有することを特徴とするバッファメモリシステム。
JP60174443A 1984-12-24 1985-08-09 バツフアメモリシステム Granted JPS61156954A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US685514 1984-12-24
US06/685,514 US4692893A (en) 1984-12-24 1984-12-24 Buffer system using parity checking of address counter bit for detection of read/write failures

Publications (2)

Publication Number Publication Date
JPS61156954A true JPS61156954A (ja) 1986-07-16
JPH0374986B2 JPH0374986B2 (ja) 1991-11-28

Family

ID=24752519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60174443A Granted JPS61156954A (ja) 1984-12-24 1985-08-09 バツフアメモリシステム

Country Status (5)

Country Link
US (1) US4692893A (ja)
EP (1) EP0185924B1 (ja)
JP (1) JPS61156954A (ja)
CA (1) CA1222058A (ja)
DE (1) DE3587145T2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530735A (ja) * 1999-11-15 2003-10-14 サン・マイクロシステムズ・インコーポレイテッド リングバッファフローエラーの検出のための方法および装置
US8760058B2 (en) 2012-02-02 2014-06-24 Posco Led Company Ltd. Heat sink and LED illuminating apparatus comprising the same

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62293599A (ja) * 1986-06-13 1987-12-21 Hitachi Ltd 半導体記憶装置
US4884270A (en) * 1986-12-11 1989-11-28 Texas Instruments Incorporated Easily cascadable and testable cache memory
US4831625A (en) * 1986-12-11 1989-05-16 Texas Instruments Incorporated Easily cascadable and testable cache memory
US4799222A (en) * 1987-01-07 1989-01-17 Honeywell Bull Inc. Address transform method and apparatus for transferring addresses
US4899307A (en) * 1987-04-10 1990-02-06 Tandem Computers Incorporated Stack with unary encoded stack pointer
US4858234A (en) * 1987-09-04 1989-08-15 Digital Equipment Corporation Method and apparatus for error recovery in a multibus computer system
US4979097A (en) * 1987-09-04 1990-12-18 Digital Equipment Corporation Method and apparatus for interconnecting busses in a multibus computer system
US4837767A (en) * 1987-09-04 1989-06-06 Digital Equipment Corporation Bus adapter module with improved error recovery in a multibus computer system
CA1286420C (en) * 1987-10-14 1991-07-16 Youssef Alfred Geadah Fifo buffer controller
US4916658A (en) * 1987-12-18 1990-04-10 International Business Machines Corporation Dynamic buffer control
US5121480A (en) * 1988-07-18 1992-06-09 Western Digital Corporation Data recording system buffer management and multiple host interface control
JPH03232029A (ja) * 1989-12-08 1991-10-16 Fuji Photo Film Co Ltd メモリカードの記憶管理方式
US5357521A (en) * 1990-02-14 1994-10-18 International Business Machines Corporation Address sensitive memory testing
JPH0773115A (ja) * 1990-02-14 1995-03-17 Internatl Business Mach Corp <Ibm> コンピュータシステムのメモリテスト方法
EP0449052A3 (en) * 1990-03-29 1993-02-24 National Semiconductor Corporation Parity test method and apparatus for a memory chip
DE69019822T2 (de) * 1990-06-27 1995-12-14 Ibm Verfahren und Vorrichtung zur Prüfung des Inhalts und der Adresse einer Speicheranordnung.
US5315699A (en) * 1991-03-20 1994-05-24 Research Development Corporation Of Japan Filtering operation method for very high-speed image processing system
CA2125788A1 (en) * 1991-12-13 1993-06-24 Eric Charles Peters Buffer and frame indexing
WO1993025962A1 (en) * 1992-06-18 1993-12-23 International Business Machines Corporation Distributed applications processing network
DE4244275C1 (de) * 1992-12-28 1994-07-21 Ibm Nachprüfung der Datenintegrität bei gepufferter Datenübertragung
JPH07182170A (ja) * 1993-12-24 1995-07-21 Ricoh Co Ltd マイクロプロセッサ
SE503589C2 (sv) * 1994-02-10 1996-07-15 Ericsson Telefon Ab L M Förfarande och anordning för övervakning av ett minne
SE503316C2 (sv) * 1994-04-19 1996-05-13 Ericsson Telefon Ab L M Förfarande för övervakning av ett minne samt kretsanordning härför
US5471487A (en) * 1994-04-26 1995-11-28 Unisys Corporation Stack read/write counter through checking
US5453999A (en) * 1994-04-26 1995-09-26 Unisys Corporation Address verification system using parity for transmitting and receiving circuits
FR2723222B1 (fr) * 1994-07-27 1996-09-27 Sextant Avionique Sa Procede et dispositif de securisation du deroulement de sequences lineaires d'ordres executes par unprocesseur
US5633878A (en) * 1995-01-20 1997-05-27 Telefonaktiebolaget Lm Ericsson Self-diagnostic data buffers
US5881076A (en) * 1996-07-17 1999-03-09 Intel Corporation Comparator utilizing redundancy
US5884101A (en) * 1998-04-17 1999-03-16 I-Cube, Inc. Apparatus for detecting data buffer faults
FI982040A (fi) 1998-09-22 2000-03-23 Nokia Multimedia Network Terminals Oy Menetelmä ja laite datavirran synkronoimiseksi
US6668298B1 (en) * 1999-12-29 2003-12-23 Intel Corporation Shifting an input signal from a high-speed domain to a lower-speed domain
US6606674B1 (en) * 2000-02-24 2003-08-12 Intel Corporation Method and apparatus for reducing circular list's thrashing by detecting the queues' status on a circular linked list
US20020144010A1 (en) * 2000-05-09 2002-10-03 Honeywell International Inc. Communication handling in integrated modular avionics
GB2366880B (en) * 2000-09-15 2005-01-05 Mitel Corp Method of Validating Data in Circular Buffers
KR100380161B1 (ko) * 2000-12-29 2003-04-11 주식회사 하이닉스반도체 고속 동작용 어드레스 카운터 및 그 카운팅 방법
DE60128993T2 (de) 2001-02-06 2008-02-28 Nortel Networks S.A. Mehrfachratenringpuffer und entsprechendes Betriebsverfahren
US6701390B2 (en) * 2001-06-06 2004-03-02 Koninklijke Philips Electronics N.V. FIFO buffer that can read and/or write multiple and/or selectable number of data words per bus cycle
US7454686B2 (en) * 2004-11-23 2008-11-18 International Business Machines Corporation Apparatus and method to check data integrity when handling data
KR101421054B1 (ko) * 2007-08-06 2014-07-18 삼성전자주식회사 버퍼를 이용한 연산 분산 방법 및 이를 이용한 연산 분산시스템
KR101861769B1 (ko) * 2011-11-24 2018-05-29 삼성전자주식회사 비동기식 브릿지 및 이의 동작 방법, 및 이를 포함하는 SoC
US9280412B2 (en) 2013-03-12 2016-03-08 Macronix International Co., Ltd. Memory with error correction configured to prevent overcorrection
DE102018200268A1 (de) 2018-01-10 2019-07-11 Robert Bosch Gmbh Verfahren und elektronische Schaltung zum Erzeugen von Adresssignalen auf einem Adressbus
US10872010B2 (en) * 2019-03-25 2020-12-22 Micron Technology, Inc. Error identification in executed code

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3789204A (en) * 1972-06-06 1974-01-29 Honeywell Inf Systems Self-checking digital storage system
US3836891A (en) * 1973-07-05 1974-09-17 Bendix Corp Tape reader system with buffer memory
US4092522A (en) * 1977-01-03 1978-05-30 Honeywell Information Systems Inc. 5-Bit counter/shift register utilizing current mode logic
US4360917A (en) * 1979-02-07 1982-11-23 The Warner & Swasey Company Parity fault locating means
US4271521A (en) * 1979-07-09 1981-06-02 The Anaconda Company Address parity check system
US4365332A (en) * 1980-11-03 1982-12-21 Fairchild Camera And Instrument Corp. Method and circuitry for correcting errors in recirculating memories

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003530735A (ja) * 1999-11-15 2003-10-14 サン・マイクロシステムズ・インコーポレイテッド リングバッファフローエラーの検出のための方法および装置
US8760058B2 (en) 2012-02-02 2014-06-24 Posco Led Company Ltd. Heat sink and LED illuminating apparatus comprising the same

Also Published As

Publication number Publication date
CA1222058A (en) 1987-05-19
EP0185924A3 (en) 1988-08-03
US4692893A (en) 1987-09-08
EP0185924B1 (en) 1993-03-03
EP0185924A2 (en) 1986-07-02
DE3587145D1 (de) 1993-04-08
JPH0374986B2 (ja) 1991-11-28
DE3587145T2 (de) 1993-09-23

Similar Documents

Publication Publication Date Title
JPS61156954A (ja) バツフアメモリシステム
US5504859A (en) Data processor with enhanced error recovery
US4375664A (en) Apparatus for detecting, correcting and logging single bit memory read errors using syndrome generating and decoding circuitry
US5365485A (en) Fifo with fast retransmit mode
EP0118446B1 (en) First-in, first-out (fifo) memory configuration for queue storage
JP2702181B2 (ja) Fifoメモリ制御回路
JPH0758958B2 (ja) フレームデコード装置
US3866182A (en) System for transferring information between memory banks
JP2005108222A (ja) 破損データ値を処理するためのデータ処理装置と方法
JPH0719232B2 (ja) メモリアレイのアドレスと中味とをチェックする装置及び方法
EP0484652B1 (en) First-in-first-out buffer
KR950015189B1 (ko) 광폭의 선입선출버퍼(fifo)의 에러검출장치
EP0057096A2 (en) Information processing unit
US4035766A (en) Error-checking scheme
US5193153A (en) System for detecting overwriting of data in a buffer memory, particularly for a data switch
JP2692773B2 (ja) エラー訂正装置
US4254464A (en) Common data buffer system
US5590279A (en) Memory data copying apparatus
JP2873229B2 (ja) バッファメモリ制御装置
US7788426B2 (en) Apparatus and method for initializing an elastic buffer
JP2730342B2 (ja) 割り込み制御回路
US5479165A (en) Two-dimensional coding apparatus
JPH11102325A (ja) メモリ監視方式
JP2979962B2 (ja) 障害検出システム
JP2834948B2 (ja) データ転送方式