JPH0374986B2 - - Google Patents

Info

Publication number
JPH0374986B2
JPH0374986B2 JP60174443A JP17444385A JPH0374986B2 JP H0374986 B2 JPH0374986 B2 JP H0374986B2 JP 60174443 A JP60174443 A JP 60174443A JP 17444385 A JP17444385 A JP 17444385A JP H0374986 B2 JPH0374986 B2 JP H0374986B2
Authority
JP
Japan
Prior art keywords
parity
address counter
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.)
Expired - Lifetime
Application number
JP60174443A
Other languages
English (en)
Other versions
JPS61156954A (ja
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 filed Critical
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)
  • Communication Control (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

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

Claims (1)

  1. 【特許請求の範囲】 1 複数の記憶ロケーシヨンから成るバツフアメ
    モリと、モジユロmの書込みアドレスカウンタ
    と、記憶すべきデータワードに関するパリテイビ
    ツトを生成する手段と、データワードおよびパリ
    テイビツトを前記書込みアドレスカウンタの指定
    する記憶ロケーシヨンに記憶する手段と、書込み
    オペレーシヨンごとに前記書込みアドレスカウン
    タを更新する手段と、モジユロmの読取りアドレ
    スカウンタと、該読取りアドレスカウンタの指定
    する記憶ロケーシヨンからデータワードを読み取
    つて前記読取りアドレスカウンタを更新する手段
    と、読取りオペレーシヨンでデータワードに関す
    るパリテイを検査してエラーの有無を知らせる手
    段と、より成る、データ処理システム間における
    データワードの伝送を行うためのバツフアメモリ
    システムであつて、 (a) 前記書込みアドレスカウンタが奇数回めの循
    環であるか偶数回めの循環であるかを識別する
    手段と、 (b) 前記書込みアドレスカウンタが奇数回めの循
    環の際には奇数又は偶数いづれかの所定パリテ
    イを記憶されるデータワードに付加し、偶数回
    めの循環の際には前記所定パリテイとは逆パリ
    テイを記憶されるデータワードに付加する手段
    と、 (c) 前記読取りアドレスカウンタが奇数回めの循
    環であるか偶数回めの循環であるかを識別する
    手段と、 (d) 奇数回めの循環の読取りの際には前記所定パ
    リテイをチエツクし、偶数回めの循環の読取り
    の際には前記逆パリテイをチエツクするように
    データワードを処理する手段と、 を有することを特徴とするバツフアメモリシステ
    ム。 2 複数の記憶ロケーシヨンから成るバツフアメ
    モリと、モジユロmの書込みアドレスカウンタ
    と、記憶すべきデータワードに関するバリテイビ
    ツトを生成する手段と、データワードおよびパリ
    テイビツトを前記書込みアドレスカウンタの指定
    する記憶ロケーシヨンに記憶する手段と、書込み
    オペレーシヨンごとに前記書込みアドレスカウン
    タを更新する手段と、モジユロmの読取りアドレ
    スカウンタと、該読取りアドレスカウンタの指定
    する記憶ロケーシヨンからデータワードを読み取
    つて前記読取りアドレスカウンタを更新する手段
    と、読取りオペレーシヨンでデータワードに関す
    るパリテイを検査してエラーの有無を知らせる手
    段と、より成る、データ処理システム間における
    データワードの伝送を行うためのバツフアメモリ
    システムであつて、 (a) 前記書込みアドレスカウンタの循環をカウン
    トして当該循環が奇数回めの循環であるか偶数
    回めの循環であるかを識別するために、当該書
    込みカウンタに設けた付加ビツトと、 (b) 前記読取りアドレスカウンタの循環をカウン
    トして当該循環が奇数回めの循環であるか偶数
    回めの循環であるかを識別するために、当該読
    取りカウンタに設けた付加ビツトと、 (c) データワードの伝送開始時に前記読取りアド
    レスカウンタの付加ビツトの値を前記書込みア
    ドレスカウンタの付加ビツトの値に等しくする
    手段と、 (d) 前記書込みアドレスカウンタの付加ビツトの
    値をパリテイとしてデータワードに付加する手
    段と、 (e) 読取りの際には読取りアドレスカウンタの付
    加ビツトの値とバツフアメモリから読み出した
    パリテイの値とを比較して、これらの値が等し
    くないときにはエラーを知らせる手段と、 を有することを特徴とするバツフアメモリシステ
    ム。
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 JPS61156954A (ja) 1986-07-16
JPH0374986B2 true 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)

Families Citing this family (46)

* 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 半導体記憶装置
US4831625A (en) * 1986-12-11 1989-05-16 Texas Instruments Incorporated Easily cascadable and testable cache memory
US4884270A (en) * 1986-12-11 1989-11-28 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
US4979097A (en) * 1987-09-04 1990-12-18 Digital Equipment Corporation Method and apparatus for interconnecting busses in a multibus computer system
US4858234A (en) * 1987-09-04 1989-08-15 Digital Equipment Corporation Method and apparatus for error recovery 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 メモリカードの記憶管理方式
JPH0773115A (ja) * 1990-02-14 1995-03-17 Internatl Business Mach Corp <Ibm> コンピュータシステムのメモリテスト方法
US5357521A (en) * 1990-02-14 1994-10-18 International Business Machines Corporation Address sensitive memory testing
EP0449052A3 (en) * 1990-03-29 1993-02-24 National Semiconductor Corporation Parity test method and apparatus for a memory chip
EP0463210B1 (en) * 1990-06-27 1995-05-31 International Business Machines Corporation Method and apparatus for checking the address and contents of a memory array
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
US5606493A (en) * 1992-06-18 1997-02-25 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
US6408409B1 (en) * 1999-11-15 2002-06-18 Sun Microsystems, Inc. Method and apparatus for ring buffer flow error detection
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 주식회사 하이닉스반도체 고속 동작용 어드레스 카운터 및 그 카운팅 방법
EP1229437B1 (en) 2001-02-06 2007-06-20 Nortel Networks S.A. Multirate circular buffer and method of operating the same
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
CN104081121A (zh) 2012-02-02 2014-10-01 普司科Led股份有限公司 散热片以及包含散热片的发光二极管照明装置
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
US12013752B2 (en) * 2022-06-16 2024-06-18 Advanced Micro Devices, Inc. Host-level error detection and fault correction

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

Also Published As

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

Similar Documents

Publication Publication Date Title
JPH0374986B2 (ja)
US4375664A (en) Apparatus for detecting, correcting and logging single bit memory read errors using syndrome generating and decoding circuitry
US5504859A (en) Data processor with enhanced error recovery
US5365485A (en) Fifo with fast retransmit mode
EP0323030A2 (en) Data processing, including correcting stored data groups
EP0118446B1 (en) First-in, first-out (fifo) memory configuration for queue storage
KR920007276B1 (ko) 어드레스 고장처리용 캐쉬 메모리장치
JP2702181B2 (ja) Fifoメモリ制御回路
US4852100A (en) Error detection and correction scheme for main storage unit
EP0540450A1 (en) ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
JP2005108222A (ja) 破損データ値を処理するためのデータ処理装置と方法
JPH0719232B2 (ja) メモリアレイのアドレスと中味とをチェックする装置及び方法
US5455939A (en) Method and apparatus for error detection and correction of data transferred between a CPU and system memory
US4942575A (en) Error connection device for parity protected memory systems
US6802036B2 (en) High-speed first-in-first-out buffer
JP2004260806A (ja) 境界ワード格納機構を用いた読み取り−修正−書き込み動作を回避する方法及びシステム
EP0506474B1 (en) Parity detect circuit for memory including dual validity indication
US4035766A (en) Error-checking scheme
JPS6235144B2 (ja)
EP0383891B1 (en) Pipelined address check bit stack controller
US5422837A (en) Apparatus for detecting differences between double precision results produced by dual processing units operating in parallel
JP3494072B2 (ja) キャッシュメモリ及びその障害検出方法
JPWO2004051492A1 (ja) 同一の入力値を圧縮する記憶装置
JPH02297235A (ja) メモリデータ保護回路
JPS5936359B2 (ja) デ−タバツフア装置