(57)【要約】【課題】パリティメモリの容量を効率に利用することで、メモリチップの数を削減でき、コストを抑えることができるパリティ格納回路および情報処理装置を提供する。【解決手段】  情報処理装置１００は、パリティメモリ２４に１バイトのメモリに対し、所定ビットのパリティ信号を格納するパリティ格納回路２５を備え、パリティ付きデータを記憶する際に、パリティ格納回路２５は、データ信号に対応するパリティ信号およびアドレス信号の取得し、またパリティ用メモリからパリティデータを読み出し、読み出されたパリティデータに対して、取得したアドレス信号に対応するビットに取得したパリティ信号を置換してパリティ用メモリに書き込むようになされる。これにより、パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納することが可能となる。【選択図】        図１
2005141332.tif 000002
【特許請求の範囲】
【請求項１】
データ処理部において所定ビットのデータ信号に対応して生成されるパリティ信号を、データ用メモリと同様の構成を有するパリティ用メモリに格納するための回路であって、
上記データ処理部からパリティ信号を取得するパリティ取得手段と、
上記データ処理部から書き込みアドレス信号を取得するアドレス取得手段と、
上記パリティ用メモリに格納されている複数ビット分のパリティデータを読み出す読み出し手段と、
上記読み出し手段により読み出されたパリティデータに対して、上記アドレス取得手段により取得したアドレス信号に対応するビットに上記パリティ取得手段により取得したパリティ信号を置換するパリティビット置換手段と、
上記パリティビット置換手段で得られたパリティデータを上記パリティ用メモリに書き込む書き込み手段と、
上記データ処理部からのコントロール信号に基づいて、上記パリティ用メモリから複数ビット分のパリティデータを読み出し、上記アドレス信号に対応するビットに上記パリティ信号を置換して上記パリティ用メモリに書き込むように上記読み出し手段と上記書き込み手段を制御する制御手段と
を備えることを特徴とするパリティ格納回路。
【請求項２】
上記データ信号をデータ用メモリに書き込む動作と並行に動作するように制御される
ことを特徴とする請求項１に記載のパリティ格納回路。
【請求項３】
上記読み出し手段により上記パリティ用メモリから読み出されたパリティデータを上記データ処理部に出力するパリティ出力手段を更に備え、
上記データ信号を読み出すとき、
上記制御手段は、上記データ処理部からのコントロール信号に基づいて上記パリティ用メモリから複数ビット分のパリティデータを読み出し、上記アドレス信号に対応するビットを上記データ処理部へ出力するように制御する
ことを特徴とする請求項１に記載のパリティ格納回路。
【請求項４】
データ信号を記憶するためのデータ用メモリと、パリティ信号を記憶するためのパリティ用メモリと、データ処理部とを有する情報処理装置において、
上記データ処理部からのコントロール信号に基づいて、上記パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納するパリティ格納回路とを備え、
上記パリティ格納回路は、
上記データ処理部からパリティ信号を取得するパリティ取得手段と、
上記データ処理部から書き込みアドレス信号を取得するアドレス取得手段と、
上記パリティ用メモリに格納されているパリティデータを読み出す読み出し手段と、
上記読み出し手段により読み出されたパリティデータに対して、上記アドレス取得手段により取得したアドレス信号に対応するビットに上記パリティ取得手段により取得したパリティ信号を置換するパリティビット置換手段と、
上記パリティビット置換手段で得られたパリティデータを上記パリティ用メモリに書き込む書き込み手段と、
上記データ処理部からのコントロール信号に基づいて、上記パリティ用メモリから複数ビット分のパリティデータを読み出し、上記アドレス信号に対応するビットに上記パリティ信号を置換して上記パリティ用メモリに書き込むように上記読み出し手段と上記書き込み手段を制御する制御手段とを有する
ことを特徴とする情報処理装置。
【請求項５】
上記パリティ格納回路が、上記データ信号をデータ用メモリに書き込む動作と並行に動作するように制御される
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
上記読み出し手段により上記パリティ用メモリから読み出されたパリティデータを上記データ処理部に出力するパリティ出力手段を更に備え、
上記データ信号を読み出すとき、
上記制御手段は、上記データ処理部からのコントロール信号に基づいて上記パリティ用メモリから複数ビット分のパリティデータを読み出し、上記アドレス信号に対応するビットを上記データ処理部へ出力するように制御する
ことを特徴とする請求項４に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パリティ付きデータのパリティ信号を、データ用メモリとは別に設けられたパリティ用メモリに格納するパリティ格納回路および情報処理装置に関する。詳しくは、データ処理部からのコントロール信号に基づいて、データ信号に対応するパリティ信号およびアドレス信号の取得し、またパリティ用メモリから複数ビット分のパリティデータを読み出し、読み出されたパリティデータに対して、取得されたアドレス信号に対応するビットに取得されたパリティ信号を置換してパリティ用メモリに書き込む構成とすることによって、パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納することができるため、パリティメモリの容量を効率に利用することで、メモリチップの数を削減でき、コストを抑えることができるようにしたパリティ格納回路等に係るものである。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）を有する情報処理装置において、特に信頼性が要求されるような装置では、メモリ化けは許さないため、パリティのような信頼性向上機能の搭載は必須となる。この場合、処理する情報データは、一般的にデータ信号とパリティ信号からなる所定ビット幅を有するものである。例えば、データ信号８ビット（bit）にパリティ信号１ビット分を加えた９ビット幅である（例えば、特許文献１参照）。
【０００３】
従来、ＣＰＵがパリティ付データをメモリに格納する場合、一般的にはパリティビット付きの９ｂｉｔ幅のメモリ、例えば、データ８ｂｉｔ＋パリティ１ｂｉｔ構成のメモリなどを用いる。しかし、所望の容量や速度のメモリにパリティ付きのタイプが存在しない場合は、例えば８ｂｉｔ幅のメモリを２個用い、１個はデータ用、もう１個はパリティに用いる。この方法は２倍のメモリ容量を必要とする。
【０００４】
図７は、従来のパリティ付きデータを処理する情報処理装置の構成例を示す概略図である。図７に示すように、情報処理装置１０は、データ処理部としてのＣＰＵ１と、データメモリ２と、パリティメモリ３とを備えている。本来なら、情報処理装置１０には、アドレスデコーダ（図示せず）が有し、デコードして得られた信号を各データメモリ２およびパリティメモリ３に供給する。ここでアドレスデコーダを省略する。
【０００５】
ＣＰＵ１は、汎用なものであり、パリティ生成機能を有する。パリティビットは、８ビット毎に１ビット生成されるとする。また、データメモリ２およびパリティメモリ３は、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）といった汎用のメモリである。容量に応じて、データメモリ２およびパリティメモリ３の個数は増える。
【０００６】
また、データ信号Ｓ１はＣＰＵ１からデータメモリ２へ書き込むためのデータ信号である。この例では８ｂｉｔ幅を想定しているが、信号幅に特に指定は無い。パリティ信号Ｓ２はＣＰＵ１から生成されるパリティ信号である。この例では、８ｂｉｔ単位に１ｂｉｔのパリティ信号を生成する。
【０００７】
ＣＰＵ１からデータメモリ２に書き込む場合、データ信号Ｓ１とパリティ信号Ｓ２を同時にそれぞれのメモリに書き込む必要がある。一般的にはパリティビット付きのメモリ、例えばこの情報処理装置１０では本来なら９ｂｉｔ幅などのメモリを用いる。しかし、所望の容量やアクセス速度を満たさない場合は、データを格納するデータメモリ２と、それに加え、データメモリ２と同様の性能のパリティメモリ３を用いる場合が多い。
【０００８】
【特許文献１】特開平５−２５０３１７号公報（第３頁、第６図）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したように、パリティメモリ３はデータメモリ２と同様の汎用メモリであり、パリティ信号Ｓ２を１ｂｉｔ保存するために、残りの未使用データ信号Ｓ３は全て無駄にしていた。即ち、ＧＮＤへ接続したり、またはプルアップ等の処理により、未使用の状態となっていた。これは、メモリ容量及び構成により、搭載メモリ数が多くなれば多くなるほど、無駄なメモリが増えることを意味する。特に大容量のＳＲＡＭを搭載する場合などは、実装面積及びメモリデバイスのコストに大きく跳ね返ってきた。
【００１０】
例えば、１Ｍｂｉｔ×８ｂｉｔのＳＲＡＭメモリを８ＭＢｙｔｅ（バイト）搭載すると仮定するなら、図７の例と同じ方法を用いてパリティを格納する場合、データメモリとしてＳＲＡＭを８個、パリティメモリとして同じく８個、合計１６個のＳＲＡＭが必要とするため、コスト的にも基板の実装面積的にもデメリットが多い。
【００１１】
そこで、この発明は、パリティメモリの容量を効率に利用することで、メモリチップの数を削減でき、コストを抑えることができるようにしたパリティ格納回路および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
この発明に係るパリティ格納回路は、データ処理部において所定ビットのデータ信号に対応して生成されるパリティ信号を、データ用メモリと同様の構成を有するパリティ用メモリに格納するための回路であって、データ処理部からパリティ信号を取得するパリティ取得手段と、データ処理部から書き込みアドレス信号を取得するアドレス取得手段と、パリティ用メモリに格納されている複数ビット分のパリティデータを読み出す読み出し手段と、読み出し手段により読み出されたパリティデータに対して、アドレス取得手段により取得したアドレス信号に対応するビットに上記パリティ取得手段により取得したパリティ信号を置換するパリティビット置換手段と、パリティビット置換手段で得られたパリティデータをパリティ用メモリに書き込む書き込み手段と、データ処理部からのコントロール信号に基づいて、パリティ用メモリから複数ビット分のパリティデータを読み出し、アドレス信号に対応するビットにパリティ信号を置換してパリティ用メモリに書き込むように読み出し手段と書き込み手段を制御する制御手段とを備えるものである。
【００１３】
この発明に係る情報処理装置は、データ信号を記憶するためのデータ用メモリと、パリティ信号を記憶するためのパリティ用メモリと、データ処理部とを有する情報処理装置において、データ処理部からのコントロール信号に基づいて、パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納するパリティ格納回路とを備え、パリティ格納回路は、データ処理部からパリティ信号を取得するパリティ取得手段と、データ処理部から書き込みアドレス信号を取得するアドレス取得手段と、パリティ用メモリに格納されているパリティデータを読み出す読み出し手段と、読み出し手段により読み出されたパリティデータに対して、アドレス取得手段により取得したアドレス信号に対応するビットにパリティ取得手段により取得したパリティ信号を置換するパリティビット置換手段と、パリティビット置換手段で得られたパリティデータを上記パリティ用メモリに書き込む書き込み手段と、データ処理部からのコントロール信号に基づいて、パリティ用メモリから複数ビット分のパリティデータを読み出し、アドレス信号に対応するビットにパリティ信号を置換してパリティ用メモリに書き込むように読み出し手段と書き込み手段を制御する制御手段とを有するものである。
【００１４】
例えば、パリティ格納回路は、データ信号をデータ用メモリに書き込む動作と並行に動作するように制御される。また、読み出し手段によりパリティ用メモリから読み出されたパリティデータをデータ処理部に出力するパリティ出力手段を更に備え、データ信号を読み出すとき、制御手段は、データ処理部からのコントロール信号に基づいてパリティ用メモリから複数ビット分のパリティデータを読み出し、アドレス信号に対応するビットをデータ処理部へ出力するように制御するようになされる。
【００１５】
この発明においては、パリティ付きデータを記憶する際に、データ処理部からのコントロール信号に基づいて、データ信号に対応するパリティ信号およびアドレス信号の取得し、またパリティ用メモリからパリティデータを読み出し、取得したアドレス信号に対応するビットに取得したパリティ信号を置換してパリティ用メモリに書き込む。また、記憶されているパリティ付きデータを読み出す際に、制御手段は、上記データ処理部からのコントロール信号に基づいて上記パリティ用メモリから複数ビット分のパリティデータを読み出し、上記データ処理部へ出力するように制御するようになされる。
【００１６】
また、読み出し際に、制御手段は、データ処理部からのコントロール信号に基づいて、パリティ用メモリから複数ビット分のパリティデータを読み出し、アドレス信号に対応するビットをデータ処理部へ出力するように制御するようになされる。
【００１７】
これによって、パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納することができるため、パリティメモリの容量を効率に利用することで、メモリチップの数を削減でき、コストを抑えることが可能となる。
【００１８】
また、パリティ格納回路は、パリティ付きデータのデータ信号の書き込み動作と並行に動作するように制御されるため、アクセス速度を低下させず、パリティメモリの容量を効率に利用することが可能となる。
【発明の効果】
【００１９】
この発明によれば、パリティ付きデータを記憶する際に、データ処理部からのコントロール信号に基づいて、データ信号に対応するパリティ信号およびアドレス信号の取得し、またパリティ用メモリからパリティデータを読み出し、読み出されたパリティデータに対して、取得したアドレス信号に対応するビットに取得したパリティ信号を置換してパリティ用メモリに書き込むものであり、パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納することができるため、パリティメモリの容量を効率に利用することで、メモリチップの数を削減でき、コストを抑えることができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら、この発明の実施の形態のパリティ格納回路および情報処理装置について説明する。
図１は、本発明の実施の形態の情報処理装置１００の構成を示す図である。図１に示すように、情報処理装置１００は、データ処理部としてのＣＰＵ２１と、アドレスデコーダ２２と、データメモリ２３と、パリティメモリ２４と、パリティ格納回路２５とから構成されている。
【００２１】
この情報処理装置１００では、ＣＰＵ２１にデータ用メモリとして８Ｍｂｉｔ（１Ｍ×８ｂｉｔ）のＳＲＡＭ（Static Random Access Memory）を８個を接続し、その全メモリのパリティｂｉｔの合計８Ｍｂｉｔ分を、データ用メモリと同一構成のＳＲＡＭ１個に格納すると仮定する。
【００２２】
ＣＰＵ２１は、汎用のＣＰＵである。このＣＰＵ２１のメーカー、種別、速度、信号幅、アドレス空間に特に指定はない。ここではＣＰＵ２１はアドレス空間は２３ｂｉｔ（８Ｍバイト空間）、データ信号は８ｂｉｔ、パリティ生成機能を持つＣＰＵと仮定し、パリティビットは８ｂｉｔ毎に１ｂｉｔ生成されるとする。生成方法は一般的に認知されているパリティ生成方法で、偶数パリティ、奇数パリティなどの指定はない。ＣＰＵ２１は、データ信号Ｓ４、アドレス信号Ｓ５、パリティ信号Ｓ６、コントロール信号Ｓ７が出力される。
【００２３】
データ信号Ｓ４は、８ｂｉｔのデータ信号である。本実施の形態では８ｂｉｔであるが、ビット幅に指定はない。ＣＰＵ２１は、８ｂｉｔのデータ信号Ｓ４に対して１ｂｉｔ、パリティ信号Ｓ６を生成する。アドレス信号Ｓ５は、ＣＰＵ２１から出力されるアドレス信号である。本実施の形態では２３ｂｉｔとしているが、ビット幅、即ちアドレス空間に指定はない。
【００２４】
コントロール信号Ｓ７は、ＣＰＵ２１からのリード（Read）、ライト（Write）、出力（Output）、イネーブル（Enable）などの信号である。これらをコントロール信号Ｓ７として簡略化している。
【００２５】
また、ＷＡＩＴ信号Ｓ８は、パリティ格納回路２５からＣＰＵ２１へ出力されるウエイト信号である。パリティ格納回路２５の回路速度的な問題により、ＣＰＵ２１の通常のリード、ライトバスサイクルにウエイト処理が必要な場合は、パリティ格納回路２５からＣＰＵ２１に対してＷＡＩＴ信号Ｓ８を出力する。これらの具体的なタイミングは、ＣＰＵ２１のアーキテクチャーに依存する。
【００２６】
アドレスデコーダ２２は、各データメモリ２３を選択するためのアドレスデコーダである。ここで、アドレスデコーダ２２は、アドレスの上位３ｂｉｔであるＡ２２，Ａ２１，Ａ２０をデコードしてチップ選択信号Ｓ９を出力する。このチップ選択信号Ｓ９によってデータメモリ２３を選択する。
【００２７】
データメモリ２３と、ＣＰＵ２１からのデータ信号Ｓ４を格納するためのデータ用メモリである。例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）といった汎用のメモリである。
【００２８】
パリティメモリ２４は、データメモリ２３の全パリティビットを格納するためのパリティ用メモリである。メモリの種別、容量等は、データメモリ２３と同一の物である。
【００２９】
パリティアドレス信号Ｓ１０は、パリティ格納回路２５からパリティメモリ２４に出力されるアドレスビットである。ここで、全パリティデータの容量は８Ｍｂｉｔと仮定しているので、アドレス空間は２０ｂｉｔということになる。また、パリティアドレス信号Ｓ１０のタイミング生成等はパリティ格納回路２５が行う。
【００３０】
パリティデータ信号Ｓ１１は、パリティ格納回路２５からリード、ライトされるデータ信号である。ここで、パリティデータ信号Ｓ１１は８ｂｉｔとしているが、これに限定されるものではない。また、パリティデータ信号Ｓ１１のタイミング生成等はパリティ格納回路２５が行う。
【００３１】
パリティコントロール信号Ｓ１２は、パリティ格納回路２５からのリード（Read）、ライト（Write）、出力（Output）、イネーブル（Enable）などの信号である。これらをパリティコントロール信号Ｓ１２として簡略化している。また、パリティコントロール信号Ｓ１２のタイミング生成等はパリティ格納回路２５が行う。
【００３２】
パリティチップ選択信号Ｓ１３は、パリティ格納回路２５が出力するチップ選択信号である。また、パリティチップ選択信号Ｓ１３のタイミング生成等はパリティ格納回路２５が行う。
【００３３】
パリティ格納回路２５は、ＣＰＵ２１からのパリティ付きデータのパリティ信号を、データ信号用メモリとは別に設けられ、同様の構成を有するパリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納するための回路である。一般的なＴＴＬ(Transistor-Transistor Logic)、ＣＭＯＳ（Complementary Metal-Oxide Semiconductor）の汎用ロジックＩＣで回路を作ることも可能であるが、ＰＬＤ(Programmable Logic Device) ／ＦＰＧＡ（Field Programmable Gate Array）のようなゲートアレイで実現するのが現実的な方法である。
【００３４】
図２は、パリティ格納回路２５の構成例を示す図である。図２に示すように、パリティ格納回路２５は、アドレス取得手段としてのアドレスラッチ回路３１と、パリティ出力手段としてのトライステートバッファ３２と、パリティ取得手段としてのパリティラッチ回路３３と、ＣＰＵインターフェースコントローラ３４と、データビットセレクタ３５と、パリティ読み出し手段としてのパリティデータラッチ回路３６と、パリティビット置換手段としてのデータビットセレクタ／パリティビット置換回路３７と、書き込み手段としてのトライステートバッファ３８と、制御手段としてのパリティメモリコントローラ３９とから構成されている。
【００３５】
アドレスラッチ回路３１は、ＣＰＵインターフェースコントローラ３４からのラッチ信号Ｓ２４によって、２３ｂｉｔ分のアドレスをラッチする。また、トライステートバッファ３２は、１ｂｉｔの入出力を持つトライステートバッファである。データビットセレクタ３５からのパリティデータをパリティメモリコントローラ３９からのイネーブル信号Ｓ１６によって制御する。
【００３６】
パリティラッチ回路３２は、１ｂｉｔの入出力を持つラッチである。ＣＰＵ２１からのパリティ信号Ｓ６を、ＣＰＵインターフェースコントローラ３４からのラッチ信号Ｓ２４によってラッチする。ラッチした信号Ｓ１７は、データビットセレクタ／パリティｂｉｔ置換回路３９へ出力する。
【００３７】
ＣＰＵインターフェースコントローラ３４は、ＣＰＵ２１とのインターフェースを行うステートマシンである。ＣＰＵ２１からのリードまたはライトサイクルを認識し、それぞれのバスサイクルに従って、パリティメモリコントローラ３９へバスサイクルの内容（リードまたはライト）を通知したり、メモリのアクセス速度がパリティ格納回路２５の回路速度を超えるような状況であれば、ＷＡＩＴ信号Ｓ８をＣＰＵ２１へ知らせる。これらのアクセスタイミング、ＣＰＵ２１への通知方法は、ＣＰＵのアーキテクチャーに依存し、特に指定はしない。また、ＣＰＵインターフェースコントローラ３４は、パリティメモリコントローラ３９とは完全に独立して動作する回路である。
【００３８】
データビットセレクタ３５は、８ｂｉｔのパリティデータ信号Ｓ１１を選択するセレクタである。アドレス信号Ｓ１４は、アドレスラッチ３０がラッチしたアドレス信号の下位３ｂｉｔ、即ちＡ２，Ａ１，Ａ０を意味する。これら３ｂｉｔ（８通り）を元に、８ｂｉｔであるパリティメモリデータＳ１１から１ｂｉｔを選択し、パリティラッチ回路３２からラッチされた信号Ｓ１７を上書きしてパリティデータＳ１９としてトライステートバッファ３８へ出力する。
【００３９】
パリティデータラッチ回路３６は、パリティメモリコントローラ３９の制御により、パリティデータＳ１１をラッチする８ｂｉｔのラッチである。ラッチした８ｂｉｔのデータは、データビットセレクタ／パリティビット置換回路３７へ出力される。パリティデータラッチ回路３６はラッチ制御信号Ｓ２０によりラッチ制御される。
【００４０】
データビットセレクタ／パリティビット置換回路３７は、アドレスラッチ回路からのアドレス信号Ｓ１４により、パリティデータラッチ回路３６の８ｂｉｔデータから１ｂｉｔを選択し、対応するビットに対し、パリティラッチ回路３３からのラッチした信号Ｓ１７へ置換する回路である。
【００４１】
トライステートバッファ３８は、１ｂｉｔの入出力を持つトライステートバッファである。データビットセレクタ／パリティビット置換回路３７から出力された置換後のパリティデータ４７を入力し、パリティメモリ２４へ出力する。このトライステートバッファ３８はパリティメモリコントローラ３９によって制御される。
【００４２】
パリティメモリコントローラ３９は、パリティメモリ２４とのインターフェースを行うステートマシンである。パリティメモリ２４に対し、リードまたはライトサイクルを実行し、パリティメモリ２４との間でリード、ライト処理を行う。パリティメモリコントローラ３９は、ＣＰＵインターフェースコントローラ３４とは完全に独立して動作する。
【００４３】
ＣＰＵ２１がリードサイクルを実行するとき、パリティメモリコントローラ３９はイネーブル信号Ｓ１６によってトライステートバッファ３２をイネーブルする。また、パリティメモリコントローラ３９は、後述するデータ連続書き込み時、ＷＡＩＴ要求信号Ｓ２２により、ＣＰＵインターフェースコントローラ３４に対してＷＡＩＴ処理を要求する。
【００４４】
ＣＰＵインターフェースコントローラ３４からのアクセススタート信号Ｓ２３により、パリティメモリコントローラ３９はパリティメモリ２４に対してバスサイクルを開始する。パリティメモリコントローラ３９は、パリティメモリ２４に対し、パリティコントロール信号Ｓ１２やパリティチップ選択信号Ｓ１３のタイミング制御を行う。
【００４５】
続いて、図面を参照しながら、本発明に係る情報処理装置１００の動作例を説明する。図３は、情報処理装置１００における通常書き込み時のパリティ格納回路のタイムチャート例を示す図である。図４は、読み込み時のパリティ格納回路のタイムチャート例を示す図である。図５は、連続書き込み時のパリティ格納回路のタイムチャート例を示す図である。図６は、パリティメモリのアドレス対応例を示す図である。
【００４６】
１、通常書き込み時の動作
通常書き込み時、即ち、ＣＰＵ２１が、データメモリ２３にデータ信号を、パリティメモリ２４にパリティデータを書き込む際に、情報処理装置１００は、以下のように動作する。
【００４７】
まず、ＣＰＵ２１がライトサイクルを開始する。具体的には、ＣＰＵ２１がアドレス信号Ｓ５に書き込むアドレスをセットし、データ信号Ｓ４に書き込むデータをセットする。そしてコントロール信号Ｓ７により、ライトサイクルを開始する。これらの詳細は、ＣＰＵ２１のアーキテクチャーに依存する。
【００４８】
アドレス信号Ｓ５は、アドレスデコーダ２２でデコードされ、チップ選択信号Ｓ９によってデータメモリ２３の任意のチップを選択する。これは、一般的なＣＰＵ回路と同じである。
【００４９】
パリティ格納回路２５に対しても、上記と同様に、ＣＰＵ２１がアドレス信号Ｓ５に書き込むアドレスをセットし、データ信号Ｓ４に書き込むデータをセットする。そしてコントロール信号Ｓ７により、ライトサイクルが開始されたことが通知される。
【００５０】
ここからは図２のパリティ格納回路例を中心に説明する。ＣＰＵインターフェースコントローラ３４は、コントロール信号Ｓ７によって、ＣＰＵ２１がライトサイクルを開始したことを認知する。
【００５１】
そして、ＣＰＵインターフェースコントローラ３４は内部のステートマシンを起動する。まず、パリティラッチ回路３３に対し、ラッチ信号Ｓ２４によってパリティ信号Ｓ６をラッチする。ラッチした信号Ｓ１７は、データビットセレクタ／パリティビット置換回路３７へ出力される。また、同時にアドレスラッチ回路３１に対し、ラッチ信号Ｓ１５によって、アドレス信号Ｓ５をラッチする。また、同時に、パリティメモリコントローラ３９に対し、アクセススタート信号Ｓ２３によってライトサイクルが開始されたことを通知する。
【００５２】
次に、ＣＰＵ２１がライトバスサイクルを終了する。ライトバスサイクルが終了するタイミング（時間）は、ＣＰＵ２１のアーキテクチャーに依存する。
【００５３】
ＣＰＵインターフェースコントローラ３４は、ライトバスサイクルを終了し、ＣＰＵ２１の次のバスサイクルに備え、待機状態に入る。この場合、ＣＰＵインターフェースコントローラ３４はライトバスサイクルは終了するが、パリティ信号Ｓ６及びアドレス信号Ｓ５は、それぞれラッチされているので、データを失うことはない。また、データメモリ２３に対しては、パリティ格納回路２５の外部で書き込みが終了している。パリティメモリコントローラ３９は、引き続き独立してステートマシンの動作を継続する。
【００５４】
パリティメモリコントローラ３９は、アクセススタート信号Ｓ２３により、独立したステートマシンを起動する。まず、ＷＡＩＴ要求信号Ｓ２２により、ステートマシンが起動中であることをＣＰＵインターフェースコントローラ３４に通知する。ＣＰＵインターフェースコントローラ３４は、ＣＰＵ２１において連続書き込みが発生しない限り、ＣＰＵ２１に対してＷＡＩＴ信号を出力しない。
【００５５】
また、パリティメモリコントローラ３９は、パリティメモリ２４に対し、一度リードサイクルを発生し、パリティデータを読み、読み出されたパリティデータに対して、アドレス信号Ｓ５に対応するビットにパリティ信号Ｓ１７を書き込み、再びパリティメモリ２４に対し、ライトサイクルを発生して書き込みを行う。
【００５６】
したがって、まず、ラッチされたアドレス信号Ｓ１０は既にパリティメモリ２４に対して出力される。次に、パリティコントロール信号Ｓ１２及びパリティチップ選択信号Ｓ１３を制御し、パリティメモリ２４に対してリードサイクルを発生する。
【００５７】
このリードサイクルによって、パリティメモリ２４が出力したパリティデータ信号Ｓ１１は、パリティデータラッチ回路３６でラッチされる。ラッチ後、パリティメモリ２４に対してのリードサイクルは終了する。
【００５８】
アドレスラッチ回路３１から出力された下位３ｂｉｔのアドレス信号Ｓ１４を元に、データビットセレクタ／パリティビット置換回路３７が対応ビットを選択する。対応方法を図６に示す。図６に示すように、パリティメモリ２４の物理アドレスは、アドレスラッチ回路３１でラッチされたＰＡＲＩＴＹ＿Ａ［２２．．３］の２０ｂｉｔのアドレス信号Ｓ１０である。１バイトのメモリに対し、８ｂｉｔのパリティｂｉｔを格納する。論理アドレス８バイト毎に、パリティメモリ２４の物理アドレス１バイトに格納する。８バイトの論理アドレスは、小さいアドレスがＬＳＢ側に、大きいアドレスがＭＳＢ側に配置しているが、配置方法に指定はない。例えば、００００００１２Ｈ番地にＣＰＵ２１がデータを書く場合、パリティ格納回路２５から見たパリティメモリ２４の物理アドレスは０００００００２Ｈ番地、対応するビットは、ｂｉｔ２となる。
【００５９】
この場合、対応するビットに対し、パリティラッチ回路３３でラッチした信号Ｓ１７によって上書きする。上書きされたパリティデータ書き込み信号Ｓ１９は、トライステートバッファ３８へ出力する。
【００６０】
パリティメモリコントローラ３９は、パリティコントロール信号Ｓ１２及びパリティチップ選択信号Ｓ１３を制御し、パリティメモリ２４に対してライトサイクルを発生する。
【００６１】
次に、パリティメモリコントローラ３９は、トライステートバッファ３８に対し、イネーブル信号Ｓ２５によってトライステートバッファ３８が開かれ、パリティデータ信号Ｓ１１に対し、上書きされたパリティデータ書き込み信号Ｓ１９が出力される。
【００６２】
そして、パリティメモリコントローラ３９は、パリティコントロール信号Ｓ１２及びパリティチップ選択信号Ｓ１３を制御し、パリティメモリ２４に対してライト処理を実行する。
【００６３】
パリティメモリコントローラ３９は、パリティコントロール信号Ｓ１２及びパリティチップ選択信号Ｓ１３を制御し、パリティメモリ２４に対してライトサイクルを終了する。
【００６４】
また、ＣＰＵインターフェースコントローラ３４は、アクセススタート信号Ｓ２３による通知を終了する。パリティメモリコントローラ３９は、ＷＡＩＴ要求信号Ｓ２２による通知を終了する。
【００６５】
このように、通常ライトサイクルの一連の処理を行う。これをタイムチャートにしたものが図３である。一般的なＣＰＵ２１は、Ｃ言語等の高級言語を用い、ソフトウェア上は連続書き込みを行うようなソフトを書いても、図３のメモリライトサイクル６０が連続することはなく、インストラクションフェッチやスタックアクセス等のサイクル６１が間に入る。インストラクションフェッチやスタックアクセス等のサイクル６１が何サイクル入るかは、ＣＰＵ２１やソフトウェアに依存する。一方、パリティ格納回路２５がパリティメモリ２４に対して行う、パリティメモリリードサイクル６２、パリティデータラッチ、データビット選択、パリティビット上書きサイクル６３、パリティメモリライトサイクル６４の一連のサイクルは、ＣＰＵ２１のメモリライトサイクル６０と比較し、長い期間を要する。しかし、インストラクションフェッチやスタックアクセス等のサイクル６１が間に入るため、見かけ上、ＣＰＵ２１にウエイトが入ることなく、パリティメモリ２４に対する各サイクル６２から６４が処理されるように見える。即ち、ＣＰＵ２１にウエイト処理が入ることなく、パリティメモリ２４にパリティデータを書き込むことが可能となる。
【００６６】
２、リードサイクル時の動作
読み出し時に、ＣＰＵ２１が、データメモリ２３及びパリティメモリ２４からデータを読み込む流れは下記の通りである。
【００６７】
まず、ＣＰＵ２１がリードサイクルを開始する。具体的には、ＣＰＵ２１がアドレス信号Ｓ５に読み込むアドレスをセットし、コントロール信号Ｓ７により、リードサイクルを開始する。これらの詳細は、ＣＰＵ２１のアーキテクチャーに依存する。
【００６８】
アドレス信号Ｓ５は、アドレスデコーダ２２でデコードされ、チップ選択信号Ｓ９によってデータメモリ２３の任意のチップを選択する。これは、一般的なＣＰＵ回路と同じである。
【００６９】
パリティ格納回路２５に対しても、同様にＣＰＵ２１がアドレス信号Ｓ５に読み込むアドレスをセットし、コントロール信号Ｓ７により、リードサイクルが開始されたことが通知される。
【００７０】
ここからは図２のパリティ格納回路２５を中心に説明する。ＣＰＵインターフェースコントローラ３４及び、パリティメモリコントローラ３９は、コントロール信号Ｓ７によって、ＣＰＵ２１がリードサイクルを開始したことを認知する。
【００７１】
ＣＰＵインターフェースコントローラ３４は内部のステートマシンを起動する。そしてアドレスラッチ回路３１に対し、ラッチ信号Ｓ１５によって、アドレス線Ｓ５をラッチする。また、同時に、パリティメモリコントローラ３９に対し、アクセススタート信号Ｓ２３によってリードサイクルが開始されたことを通知する。
【００７２】
パリティメモリコントローラ３９は、アクセススタート信号Ｓ２３により、独立したステートマシンを起動する。まず、ＷＡＩＴ要求信号Ｓ２２により、ステートマシンが起動中であることをＣＰＵインターフェースコントローラ３４に通知する。ＣＰＵインターフェースコントローラ３４は、本回路がＣＰＵ２１のアクセス速度よりも遅い場合、ＷＡＩＴ信号Ｓ８をＣＰＵ２１に対して出力する。ここで、ＷＡＩＴゼロという前提で説明する。
【００７３】
パリティメモリコントローラ３９は、パリティメモリ２４に対しリードサイクルを発生し、パリティデータを読む。読んだパリティデータはパリティデータ線Ｓ１１上にパリティメモリ２４から出力される。
【００７４】
データビットセレクタ３５は、パリティデータ線Ｓ１１から、下位３ｂｉｔのアドレス線Ｓ１４を元に、対応するパリティビットを選択し、パリティデータＳ１８としてトライステートバッファ３２に対して出力する。対応するパリティビットを選択する方法は、下位３ｂｉｔのアドレス線Ｓ１４が０であれば０ｂｉｔ、１であれば１ｂｉｔ…、７であれば７ｂｉｔという対応となる。
【００７５】
パリティメモリコントローラ３９は、トライステートバッファ３２に対し、イネーブル信号Ｓ１６によってバッファをオープンするように通知する。これにより、パリティ信号Ｓ６は、ＣＰＵ２１に対して出力される。
【００７６】
ＣＰＵ２１がデータ信号Ｓ４及びパリティ信号Ｓ６を読み終えると、リードバスサイクルを終了する。また、ＣＰＵインターフェースコントローラ３４は、アクセススタート信号Ｓ２３による通知を終了する。また、パリティメモリコントローラ３９は、ＷＡＩＴ要求信号Ｓ２２による通知を終了する。
【００７７】
図４は、上述したようなリードサイクルの一連処理のタイムチャートを示す図である。ＣＰＵ２１のメモリリードサイクル７０が発生し、それを高効率パリティ格納回路２５が受けて、パリティメモリに対するリードサイクル７２を行う。基本的に本実施の形態ではＷＡＩＴをゼロとしているが、回路構成によりＷＡＩＴが必要な場合は、ＣＰＵインターフェースコントローラ３４が出力するＷＡＩＴ信号Ｓ８により、ＷＡＩＴ処理が可能になる。
【００７８】
３、連続ライトサイクル時の動作
連続ライトサイクル時の動作は、基本的には上述した通常ライトサイクルと一緒である。しかし、アセンブラや一部の命令、ＤＭＡなどを用いた場合、ＣＰＵ２１からのライトサイクルが連続して発生する場合がある。
【００７９】
その場合は、パリティメモリコントローラ３９は、アクセススタート信号Ｓ２３により、独立したステートマシンを起動する。まず、ＷＡＩＴ要求信号Ｓ２２により、ステートマシンが起動中であることをＣＰＵインターフェースコントローラ３４に通知する。この時、ＣＰＵインターフェースコントローラ３４がＣＰＵ２１からのライトサイクルを認知すると、即ち、ＣＰＵ２１が連続してライトサイクルを発生すると、ＷＡＩＴ信号Ｓ８によりＣＰＵ２１をＷＡＩＴさせ、バスサイクルを延長する。そしてパリティメモリに対する一連のリード、パリティビット上書、ライト処理が終わった段階で、ＷＡＩＴ信号Ｓ８によるＣＰＵ２１のＷＡＩＴを解除する。そのタイムチャートを図５に示す。
【００８０】
図５に示すように、パリティメモリバスサイクルにおいて、サイクル８１,８２,８３はＣＰＵバスサイクル８０に対応する。
【００８１】
つまり、連続ライトサイクル時のみにＣＰＵ２１はＷＡＩＴされるが、ＣＰＵ２１はそれ以外の通常ライト、リード処理時は、見かけ上速度が落ちることなくパリティメモリ２４に対してパリティ信号Ｓ６を書き込みできる。
【００８２】
このように本実施の形態においては、ＣＰＵ２１からのコントロール信号Ｓ７に基づいて、パリティメモリ２４に１バイトのメモリに対し、所定ビットのパリティ信号を格納するパリティ格納回路２５を備え、パリティ付きデータを記憶する際に、パリティ格納回路２５は、データ信号に対応するパリティ信号およびアドレス信号の取得し、またパリティ用メモリからパリティデータを読み出し、読み出されたパリティデータに対して、取得したアドレス信号に対応するビットに取得したパリティ信号を置換してパリティ用メモリに書き込むようになされる。
【００８３】
これにより、パリティ用メモリに１バイトのメモリに対し、所定ビットのパリティ信号を格納することができるため、パリティメモリの容量を効率に利用することで、メモリチップの数を削減でき、コストを抑えることができる。
【００８４】
また，パリティメモリコントローラ３９は、ＣＰＵインターフェースコントローラ３４とは完全に独立して動作するようになされるため、アクセス速度を低下させず、パリティメモリの容量を効率に利用することが可能となる。
【００８５】
また、パリティメモリの個数が減ることにより、基板サイズが著しく縮小される。特にＳＲＡＭはＴＳＯＰ（Thin Small Outline Package）などの大きなパッケージを採用しているため、メモリ数の減少による基板サイズの減少効果が大きい。基板サイズの減少により、アートワーク費用の削減にも当然反映される。また、メモリ容量が大きくなり、パリティメモリチップ数が増えると、ＣＰＵとパリティメモリの間にバッファを入れる必要があるので、更に効果は広がる。
【００８６】
また、パリティメモリの個数が減ることにより、ノイズなどのトラブルによる確立が低くなり、また、アートワークの負荷も軽くなるため、装置全体の開発効率が向上することができる。さらに、パリティメモリの個数が減ることにより、部品点数が減り、実装不良や部品不良などが削減される。
【００８７】
なお、上述実施の形態においては、８個データメモリ２３と１個のパリティメモリ２４を用いたが、これに限定されるものではない。
【産業上の利用可能性】
【００８８】
以上のように、この発明に係るパリティ格納回路において、パリティ付データをメモリに格納する際に、メモリチップの数を減らし、コストを削減する目的に利用できる。
【図面の簡単な説明】
【００８９】
【図１】実施の形態の情報処理装置の構成例を示す図である。
【図２】パリティ格納回路の構成例を示す図である。
【図３】通常書き込み時のタイムチャート例を示す図である。
【図４】読み込み時のタイムチャート例を示す図である。
【図５】連続書き込み時のタイムチャート例を示す図である。
【図６】パリティメモリのアドレス対応例を示す図である。
【図７】従来の情報処理装置の構成例を示す図である。
【符号の説明】
【００９０】
２１・・・ＣＰＵ、２２・・・アドレスデコーダ、２３・・・データメモリ、２４・・・パリティメモリ、２５・・・パリティ格納回路、３１・・・アドレスラッチ回路、３２,３８・・・トライステートバッファ、３３・・・パリティラッチ回路、３４・・・ＣＰＵインターフェースコントローラ、３５・・・データビットセレクタ、３６・・・パリティデータラッチ回路、３７・・・データビットセレクタ／パリティビット置換回路、３９・・・パリティメモリコントローラ、１００・・・情報処理装置
【図１】
2005141332.tif 000003
【図２】
2005141332.tif 000004
【図３】
2005141332.tif 000005
【図４】
2005141332.tif 000006
【図５】
2005141332.tif 000007
【図６】
2005141332.tif 000008
【図７】
2005141332.tif 000009