JP2013156821A - Data processor, control unit and memory control method - Google Patents
Data processor, control unit and memory control method Download PDFInfo
- Publication number
- JP2013156821A JP2013156821A JP2012016501A JP2012016501A JP2013156821A JP 2013156821 A JP2013156821 A JP 2013156821A JP 2012016501 A JP2012016501 A JP 2012016501A JP 2012016501 A JP2012016501 A JP 2012016501A JP 2013156821 A JP2013156821 A JP 2013156821A
- Authority
- JP
- Japan
- Prior art keywords
- address
- memory
- read
- state
- signal
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、データ処理装置、制御ユニット、メモリ制御方法に関し、特にメモリ読み出し時のアドレスエラーに対応するデータ処理装置、制御ユニット、メモリ制御方法に関する。 The present invention relates to a data processing device, a control unit, and a memory control method, and more particularly, to a data processing device, a control unit, and a memory control method corresponding to an address error at the time of memory reading.
近年、マイクロコンピュータ(またはマイクロコントローラ、以下、マイコンとも記載する。)内の各種処理に関する安全性の確保の要求が高まっている。すなわち、マイコン内で生じた各種のエラーを適切に検出し、検出したエラーに適切に対応することが求められている。 In recent years, there has been an increasing demand for ensuring safety with respect to various processes in a microcomputer (or a microcontroller, hereinafter also referred to as a microcomputer). That is, it is required to appropriately detect various errors generated in the microcomputer and appropriately respond to the detected errors.
マイコン内のメモリで記憶可能なデータ量は、近年増大している。これにより、当該メモリに関するエラー発生率が高くなる傾向にある。そのため、メモリのエラー検出率の向上、及び検出したエラーに対する適切な処理が、当該メモリを含むシステムの耐故障性を高めるために重要となる。特に、メモリに関するエラーのうち、メモリアドレスに関する障害は、システムに致命的な障害をもたらす。そのため、メモリアドレスに関するエラーの検出、及び検出したエラーに対する適切な処理が、システム全体のアベイラビリティの向上に必要不可欠である。 The amount of data that can be stored in the memory in the microcomputer has increased in recent years. This tends to increase the error occurrence rate related to the memory. Therefore, improvement of the error detection rate of the memory and appropriate processing for the detected error are important for improving the fault tolerance of the system including the memory. In particular, a memory address failure among memory errors causes a fatal failure in the system. For this reason, detection of an error relating to a memory address and appropriate processing for the detected error are indispensable for improving the availability of the entire system.
以下、上述のメモリアドレスに関する障害検出に関連する技術について説明する。特許文献1には、メモリアドレスエラーを検出可能な記憶制御装置が開示されている。当該記憶制御装置では、データに対するチェックビットを生成している。一般に、チェックビットには、nビットの誤り訂正を行う際に使用されないビットが含まれている。そこで、当該記憶制御装置では、チェックビットに対し、メモリアクセス時のアドレスから生成したパリティビット(アドレスパリティ)を挿入する。そして、メモリへの書き込み時にデータ、及びチェックビットを書き込んでいる。当該記憶制御装置では、メモリから読み出したデータ、チェックビット、及びアドレスパリティを用いてデータ誤りの検出に加えて、メモリアドレスエラーを検出している。
Hereinafter, techniques related to the above-described failure detection related to memory addresses will be described.
特許文献2には、CPUからの指示に従ってバッテリバックアップされたRAMチップを選択する選択回路が開示されている。当該選択回路は、電源状態を監視して、選択するRAMチップを制御している。
特許文献1に記載の記憶制御装置では、メモリ読み出し時のアドレスエラーを検出することができる。しかしながら、特許文献1に記載の記憶制御装置では、アドレスエラーが生じた読み出し処理に後続するデータ書き込み処理を抑止することができない。このため、アドレスエラーにより読み出すことが出来なかったデータが後続するデータ書き込み処理により上書きされてしまうことがある。これにより、回復不可能な障害が発生する可能性がある。ここで、アドレスエラーを検出した時点でプロセッサが処理を終了したとしても、プロセッサは、書き込み処理の発行が終了していることが一般的である。そのため、上述の上書き処理を回避することが出来ない。
The storage control device described in
図22を参照して、特許文献1に記載の記憶制御装置をはじめとする他の装置では、問題が生じるケースについて詳細に説明する。はじめに、プロセッサは、メモリ内のアドレスAのデータの読み出しを行うために、メモリアクセス信号を送出する。ここで、メモリアクセス命令内のアドレス情報がα線等の影響によりアドレスXに書き換わることがあり得る(メモリアドレスエラー)。これにより、プロセッサは、誤ってアドレスXに格納されているデータDを読み出す(図22(1))。なお、当該メモリアドレスエラーは、読み出し処理時におけるビット反転等の一時的なものとする。
With reference to FIG. 22, a case where a problem occurs in other devices including the storage control device described in
アドレスAに対するメモリ読み出し処理のアドレスエラーは、特許文献1に記載の技術や他の類似技術を用いることにより検出される(図22(2)、アドレスエラー検出)。アドレスエラーは、検出後にCPUに対して通知される(図22(3))。
An address error in the memory read process for the address A is detected by using the technique described in
しかし、CPUは、アドレスAに対するメモリ読み出し処理に続いて、アドレスAに対するメモリ書き込み処理を実行する(図22(4))。前述したように、CPUへのアドレスエラーの通知は、一般的にメモリ書き込み処理の開始の後となる。図22では、アドレスエラーの検出時には、CPUからのデータ書き込み処理が開始している。そのため、アドレスAには、データ書き込み処理によりデータCが書き込まれる。そのため、タイミングT1において読み出すべきデータ(データB)を復元することができなくなる。 However, the CPU executes a memory write process for address A following the memory read process for address A (FIG. 22 (4)). As described above, the notification of the address error to the CPU is generally after the start of the memory writing process. In FIG. 22, when an address error is detected, data write processing from the CPU is started. Therefore, data C is written to address A by data write processing. Therefore, the data (data B) to be read out at the timing T1 cannot be restored.
なお、特許文献2に記載の選択回路は、上述したようなメモリアドレスに関するエラーを検出することができない。すなわち、特許文献2に記載の選択回路は、アドレス伝送路及びRAM内のアドレス線においてα線等の影響によるエラーに対応することが出来ない。
Note that the selection circuit described in
すなわち、上述した技術では、所望のアドレスとは異なるアドレスにアクセスするアドレスエラーがメモリ読み出し時に生じた場合に、後続するメモリ書き込みによって所望のアドレスに対して書き込みが生じてしまう。これにより、所望のアドレスに書き込み前に格納されていたデータを読み出すことが出来ないという問題が生じる。 That is, in the above-described technique, when an address error that accesses an address different from a desired address occurs during memory reading, writing to the desired address occurs by subsequent memory writing. As a result, there arises a problem that data stored before writing to a desired address cannot be read.
本発明の第1の態様は、データ処理装置を含む。当該データ処理装置は、メモリと、プロセッサから所望のアドレスへのリードリクエストまたはライトリクエストを受信し、前記メモリへのアクセスを制御する制御ユニットと、を備え、前記制御ユニットは、前記メモリに対する読み出し処理の実行中に前記所望のアドレスと異なるアドレスへのアクセスを示す値のアドレス誤り信号を受信した場合、メモリ書き込み処理を禁止し、前記プロセッサへの応答を保留し、該保留期間に前記読み出し処理の再実行処理を行う、ものである。 A first aspect of the present invention includes a data processing device. The data processing apparatus includes a memory and a control unit that receives a read request or a write request to a desired address from a processor and controls access to the memory, and the control unit performs a read process for the memory. When an address error signal having a value indicating an access to an address different from the desired address is received during execution of memory, a memory write process is prohibited, a response to the processor is suspended, and the read process is suspended during the suspension period. Re-execute processing.
本発明の第2の態様は、制御ユニットを含む。当該制御ユニットは、プロセッサから所望のアドレスへのリードリクエストまたはライトリクエストを受信し、メモリへのアクセスを制御する制御ユニットであって、前記メモリに対する読み出し処理の実行中に前記所望のアドレスと異なるアドレスへのアクセスを示す値のアドレス誤り信号を受信した場合、メモリ書き込み処理を禁止し、前記プロセッサへの応答を保留し、該保留期間に前記読み出し処理の再実行処理を行う、ものである。 The second aspect of the present invention includes a control unit. The control unit receives a read request or a write request to a desired address from a processor, and controls access to the memory. The control unit is different from the desired address during execution of a read process for the memory. When an address error signal having a value indicating access to the memory is received, the memory writing process is prohibited, the response to the processor is suspended, and the read process is reexecuted during the suspension period.
本発明の第3の態様は、データ処理装置を含む。当該データ処理装置は、プロセッサと、メモリと、前記プロセッサから所望のアドレスへのリードリクエストまたはライトリクエストを受信し、前記メモリへのアクセスを制御する制御ユニットと、を備え、前記制御ユニットは、前記メモリに対する読み出し処理の実行中に前記所望のアドレスと異なるアドレスへのアクセスを示す値のアドレス誤り信号を受信した場合、メモリ書き込み処理を禁止し、前記プロセッサへの応答を保留し、該保留期間に前記読み出し処理の再実行処理を行う、ものである。 A third aspect of the present invention includes a data processing device. The data processing apparatus includes a processor, a memory, and a control unit that receives a read request or a write request to a desired address from the processor and controls access to the memory. When an address error signal having a value indicating an access to an address different from the desired address is received during execution of a read process for the memory, the memory write process is prohibited, a response to the processor is suspended, The re-execution process of the read process is performed.
本発明の第4の態様は、メモリ制御方法を含む。当該メモリ制御方法は、プロセッサからメモリへのアクセスを制御するメモリアクセス制御方法であって、前記メモリからのデータ読み出し処理の実行中に所望のアドレスと異なるアドレスへのアクセスを検出した場合、後続するメモリ書き込み処理を禁止し、前記プロセッサの後続リクエストの進行を中断する保留期間に移行し、該保留期間に前記読み出し処理の再実行処理を行う、ものである。 A fourth aspect of the present invention includes a memory control method. The memory control method is a memory access control method for controlling access from a processor to a memory, and when an access to an address different from a desired address is detected during execution of data read processing from the memory, the memory control method follows. The memory write process is prohibited, the process shifts to a hold period in which the progress of subsequent requests of the processor is interrupted, and the read process is re-executed in the hold period.
本発明では、メモリの読み出し時のアドレスエラー検出時に、メモリ内での書き込み処理を禁止し、メモリ読み出しの再実行を行う。これにより、メモリへの再読み出し処理が行われる前にデータが上書きされることを回避することができる。また、メモリへの再読み出しを行う際にプロセッサへの応答を保留するため、プロセッサが後続の処理を進めることを回避することができる。 In the present invention, when an address error is detected at the time of reading the memory, the writing process in the memory is prohibited and the memory reading is re-executed. Thereby, it is possible to avoid that data is overwritten before the rereading process to the memory is performed. Further, since the response to the processor is suspended when performing re-reading to the memory, it is possible to prevent the processor from proceeding with subsequent processing.
本発明では、アドレスエラー発生時であってもデータの意図しない上書きを回避することができるデータ処理装置、制御ユニット、メモリ制御方法を提供することができる。 According to the present invention, it is possible to provide a data processing device, a control unit, and a memory control method that can avoid unintentional overwriting of data even when an address error occurs.
<実施の形態1>
以下、図面を参照して本発明の実施の形態1について説明する。図1は、本実施の形態にかかるデータ処理装置の構成を示すブロック図である。当該データ処理装置は、例えばマイクロコンピュータ内に搭載される。
<
当該データ処理装置は、制御ユニット10と、CPU(Central Processing Unit)20と、メモリ30と、パリティ生成部40と、ECC(誤り訂正符号)生成部50と、フリップフロップ(FF)60と、ECCデコーダ70と、を備える。
The data processing apparatus includes a
制御ユニット10は、CPU20からメモリ30へのデータ書き込み、CPU20からメモリ30のデータ読み出しを制御する処理部である。制御ユニット10の詳細な構成及び動作は、図2、図4等を参照して後述する。
The
CPU20は、各種プログラム等を実行する中央演算装置である。CPU20は、制御ユニット10を介して、メモリ30へのデータ書き込み、またはメモリ30からのデータ読み出しを行う。CPU20は、制御ユニット10からの恒久的なアドレスエラーを示す第2アドレスエラー信号を受信した(第2アドレスエラー信号がハイレベルである)場合に、当該エラーに応じた処理を実行する。図2は、CPU20が発行する信号、受信する信号の詳細、及び他の処理部を記載したブロック図である。以下、図2を参照して、CPU20の送受信する信号、及び他の処理部の詳細について説明する。
The
CPU20は、リードリクエスト、またはライトリクエストを発行する。各リクエストには、リードリクエストであるかライトリクエストであるかを示すリクエスト種別が含まれる。リードリクエストは、読み出しアドレスを示すアドレス情報を含む。ライトリクエストには、書き込み先アドレスを示すアドレス情報、及びライトデータを含む。CPU20は、恒久的なアドレスエラーが生じた場合に第2アドレスエラー信号を受信する。CPU20は、リードリクエストの応答としてACK(応答信号)を受信する。CPU20は、ACK(応答信号)としてロウレベルの信号を受信した場合、読み出し処理が正常に行われなかったことを認識する。この場合、CPU20は、応答の保留が生じたものとして、ACKがハイレベルとなるまで当該リードリクエストの後続リクエスト(たとえばライトリクエスト)を再度発行する。
The
パリティ生成部40は、CPU20が発行したリクエスト(リードリクエスト、ライトリクエスト)に含まれるアドレス情報からアドレスパリティを生成し、当該アドレスパリティを制御ユニット10及びECC生成部50に供給する。
The
ECC生成部50は、CPU20が発行したライトリクエストに含まれるライトデータ、及びパリティ生成部40から供給されたアドレスパリティを用いてECC(以下、誤り訂正符号、チェックビットとも呼称する。以下、チェックビットと記載する。)を生成する。ここで、ECC生成部50は、特許文献1と同様に、誤り訂正に用いるチェックビットの空きビットにアドレスパリティの情報を埋め込んだチェックビットを生成する。ECC生成部50は、生成したチェックビットを制御ユニット10に供給する。
The
メモリ30は、各種データを保持する記憶装置である。メモリ30は、内部にアドレスデコーダ310と、データ記憶部320と、を有する。アドレスデコーダ310は、CPU20から発行されたリクエストのアドレス情報をデコードしてデータ記憶部320に供給する。データ記憶部320は、例えばRAM(Random Access Memory)セルにより構成される。データ記憶部320は、図3に示すような形態でデータを保持する。すなわち、データ記憶部320は、チェックビット、データをアドレス毎に保持する。データ記憶部320は、制御ユニット10から書き込み制御信号(後述)が供給されている場合(書き込み制御信号がロウレベルの場合)、データの書き込みを抑止する。リードリクエストを受信した場合、データ記憶部320は、当該リクエストに含まれるアドレス情報を基にチェックビット、及びデータを読み出してECCデコーダ70に供給する。
The
フリップフロップ60は、パリティ生成部40が生成したアドレスパリティを制御ユニット10を介して受信し、当該アドレスパリティをECCデコーダ70に供給する。フリップフロップ60は、ECCデコーダ70のデータ取り込みのタイミングの調整に用いられる。
The flip-
ECCデコーダ70は、フリップフロップ60から供給されたアドレスパリティと、メモリ30から供給されたチェックビット及びデータと、を受信し、データエラーの検出、データ生成、及びアドレスエラーの検出を行う。当該アドレスエラーの検出及びデータ誤りの検出処理は、特許文献1と略同一の手法(または既知の手法)により行うことができる。
The
データエラー及びアドレスエラーが生じなかった場合、ECCデコーダ70は、データ記憶部320から読み出したデータをCPU20に供給する。データエラーが生じた場合、ECCデコーダ70は、データエラー信号をCPU20に供給する。アドレスエラーが生じた場合、ECCデコーダ70は、第1アドレスエラー信号を制御ユニット10に供給する(第1アドレスエラー信号をハイレベルとする)。
When no data error and no address error occur, the
続いて、制御ユニット10の詳細な構成について説明する。図4は、制御ユニット10の構成を示すブロック図である。制御ユニット10は、再処理実行部110と、アドレス保持バッファ120と、を有する。
Next, a detailed configuration of the
アドレス保持バッファ120は、リードリクエストのアドレス情報、及びアドレスパリティを順次保持するバッファである。アドレス保持バッファ120の保持する情報(リードリクエストのアドレス情報、及びアドレスパリティ)は、再処理実行部110によって更新が制御される。詳細には再読み込みを行う状態(後述のステート"Re−Read1"、"Re−Read2")の場合には、値の更新が行われない。すなわち、アドレス保持バッファ120は、リードリクエストの再実行を行う場合には、実行が失敗したリードリクエストにかかるアドレス情報、及びアドレスパリティを保持し続ける。
The
再処理実行部110の詳細な構成を図5に示す。再処理実行部110は、ステート情報レジスタ1101と、ステート処理部1102と、恒久エラー信号送信部1103と、応答信号送信部1104と、書き込み制御信号生成部1105と、エラー記録部1106と、を備える。
A detailed configuration of the
ステート情報レジスタ1101は、リクエスト種別、及び第1アドレスエラー信号に応じて変化するステートを保持するレジスタである。ステート処理部1102は、リクエスト種別、及び第1アドレスエラー信号を受信し、当該受信した情報に応じてステート情報レジスタ1101の保持するステートを変化させる。各ステートの内容、及びステートの変化を図6を参照して説明する。
The
ステート"IDLE"は、CPU20からのリクエストを受信していない状態である。ステート"Read"は、CPU20からのリードリクエストを受信した状態である。ステート"Write"は、CPU20からのライトリクエストを受信した状態である。ステート"Re−Read1"は、リードリクエストの実行結果として、第1アドレスエラー信号がハイレベル(アドレスエラーが生じた)となった場合の状態である。ステート"Re−Read1"の場合、リードリクエストの再実行を行う。ステート"Re−Read2"は、ステート"Re−Read1"においてリード処理の再実行を行った後の状態を示す。ステート"STOP"とは、リードリクエストの再実行においても第1アドレスエラー信号がハイレベル(アドレスエラーが生じた)となった場合の状態である。
The state “IDLE” is a state in which a request from the
ステート処理部1102は、図6に示すように、入力されたリクエストの種別、及び第1アドレスエラー信号の値、に応じてステートを変化させる。例えば、ステート"Read"の場合に、第1アドレスエラー信号がハイレベルとなった場合、ステート処理部1102は、ステート"Re−Read1"に遷移させる。
As shown in FIG. 6, the
再び、図5を参照する。ステート処理部1102は、ステートの書き換えに加え、ステート"Re−Read1"の場合にリードリクエストを再発行するように制御を行う。この際に、ステート処理部1102は、アドレス保持バッファ120に格納されたアドレス及びアドレスパリティを用いてリードリクエストをメモリ30に対して再発行する。ステート処理部1102は、ステート"Read"の際に受信したアドレス情報とアドレスパリティをアドレス保持バッファ120に格納する。ステート処理部120は、ステート"Re−Read1"、"Re−Read1"、"STOP"の場合にはアドレス保持バッファ120の更新を停止する(値を保持し続ける)。
Again referring to FIG. In addition to rewriting the state, the
恒久エラー信号送信部1103には、第1アドレスエラー信号が供給される。恒久エラー信号送信部1103は、ステート情報レジスタ1101の保持するステートを読み出す。恒久エラー信号送信部1103は、第1アドレスエラー信号の値と、ステートの値と、に応じて第2アドレスエラー信号を生成し、当該第2アドレスエラー信号をCPU20に供給する。
The permanent
恒久エラー信号送信部1103は、以下の条件のいずれかを満たす場合に第2アドレスエラー信号をハイレベルに設定し、その他の場合にはロウレベルに設定する。
- ステート="Re−Read2" かつ 第1アドレスエラー信号がハイレベル
- ステート="STOP"
The permanent error
-State = "Re-Read2" and first address error signal is high level
-State = "STOP"
応答信号送信部1104には、第1アドレスエラー信号が供給される。応答信号送信部1104には、ステート情報レジスタ1101の保持するステートを読み出す。応答信号送信部1104は、第1アドレスエラー信号の値と、ステートの値と、に応じてACK(応答信号)を生成し、当該応答信号をCPU20に供給する。
The response
応答信号送信部1104は、以下の条件のいずれかを満たす場合にACK(応答信号)をハイレベルに設定し、その他の場合にはロウレベルに設定する。
- ステート="Write"
- ステート="Read" かつ 第1アドレスエラー信号がロウレベル
- ステート="Re−Read2" かつ 第1アドレスエラー信号がロウレベル
The response
-State = "Write"
-State = "Read" and first address error signal is low level
-State = "Re-Read2" and first address error signal is low level
書き込み制御信号生成部1105は、中間信号生成部1107と、書き込み検出部1108と、論理積回路1109と、を備える。書き込み制御信号生成部1105は、メモリ30の書き込み処理の可否を通知する書き込み制御信号を生成し、生成した書き込み制御信号をメモリ30に供給する。書き込み制御信号は、ハイレベルの場合にメモリ30のデータ書き込みを許可し、ロウレベルの場合にメモリ30のデータ書き込みを禁止する信号である。書き込み制御信号は、書き込み処理の開始時にハイレベルとなるが、書き込み制御信号生成部1105の生成した値により上書きされる(書き込み制御信号生成部1105がロウレベルの信号を出力する場合にはロウレベルに切り替わる)。
The write control
中間信号生成部1107には、第1アドレスエラー信号が供給される。中間信号生成部1107は、ステート情報レジスタ1101の保持するステートを読み出す。中間信号生成部1107は、以下の条件のいずれかを満たす場合にハイレベルとなる中間信号を生成する。中間信号生成部1107は、生成した中間信号を論理積回路1109に供給する。
‐ステート="Read" かつ 第1アドレスエラー信号がハイレベル
‐ステート="Re−Read1"
‐ステート="Re−Read2" かつ 第1アドレスエラー信号がハイレベル
‐ステート="STOP"
The
-State = "Read" and the first address error signal is at a high level-State = "Re-Read1"
-State = "Re-Read2" and the first address error signal is at a high level-State = "STOP"
書き込み検出部1108には、リクエスト種別が供給される。書き込み検出部1108は、リクエスト種別がライトリクエストである場合にのみハイレベルとなる書き込み検出信号を生成し、当該書き込み制御信号を論理積回路1109に供給する。なお、図7に上述の各信号がハイレベルとなる条件をまとめて記載する。
A request type is supplied to the
論理積回路1109は、中間信号(中間信号生成部1107の出力信号)の反転信号と、書き込み検出信号(書き込み検出信号1108の出力信号)と、の論理積を書き込み制御信号としてメモリ30に供給する。
The
エラー記録部1106は、メモリ30の操作(読み出し、書き込み)の際に生じた各種エラーを記録する処理部である。エラー記録部1106は、内部にエラー記録レジスタ1110を有する。エラー記録部1106には、第1アドレスエラー信号、及びデータエラーが供給される。なお、エラー記録部1106には、エラー(メモリ30の読み出し時のエラー、メモリ30への書き込み時のエラー)発生時の対象アドレス(書き込み対象アドレス、読み出し対象アドレス)の情報も供給される(図示せず)。エラー記録部1106は、これらの情報を基に、エラー記録レジスタ1110にエラーの履歴を書き込む。
The
図8は、エラー記録レジスタ1110の構成の一例を示す概念図である。エラー種別とは、エラーの種別を示し、"データエラー"(書き込み時に生じたデータエラー)または"アドレスエラー"が書き込まれる。対象アドレスとは、エラー発生時にメモリ30の書き込みまたは読み出し対象となったアドレスを示す。
FIG. 8 is a conceptual diagram showing an example of the configuration of the
なお、エラー記録レジスタ1110は、これ以外の情報を保持しても良いことは勿論である。例えば、エラーが発生した時間を示す情報を合わせて保持しても良いことは勿論である。
Of course, the
続いて、本実施の形態にかかるデータ処理装置の動作について図9〜図11のタイミングチャートを参照して説明する。図9は、アドレスエラーが生じなかった場合の各処理部の出力信号を示すタイミングチャートである。 Next, the operation of the data processing apparatus according to the present embodiment will be described with reference to the timing charts of FIGS. FIG. 9 is a timing chart showing an output signal of each processing unit when no address error occurs.
タイミングT1において、CPU20は、リードリクエストを発行する。リードリクエストは、制御ユニット10を介してメモリ30に供給される。リクエスト種別がリードリクエストであるため、タイミングT2において、制御ユニット10内のステートは、"IDLE"から"Read"に遷移する(図6)。
At timing T1, the
タイミングT2においてステートが"Read"となるため、制御ユニット10は、内部のアドレス保持バッファ120に当該リードリクエストのアクセス先であるアドレス情報(アドレスA)及びアドレスパリティを格納する。タイミングT2において、CPU20は、ライトリクエストを発行する。タイミングT2において、リードリクエスト(アドレスA)に対応するデータが読み出される。この際、正しいアドレス(アドレスA)のデータ(データB)が読み出されているため、第1アドレスエラー信号は、ロウレベルとなる。第1アドレスエラー信号がロウレベルであるため、制御ユニット10は、読み出したデータ(データB)に対応するACK(応答信号)としてハイレベルをCPU20に供給する(図7)。そして、タイミングT2において、CPU20が発行したライトリクエストの処理が継続して行われる。リクエスト種別がライトリクエストであり、第1アドレスエラー信号がロウレベルであるため、タイミングT2において、制御ユニット10内のステートは、"Read"から"Write"に遷移する。
Since the state becomes “Read” at the timing T <b> 2, the
タイミングT3において、ステートが"Write"であるため、制御ユニット10は、アドレス保持バッファ120に保持していた情報(アドレスA及びアドレスパリティ)を破棄する。
Since the state is “Write” at
次に、図10を参照して、一時的なアドレスエラーが生じた場合の各処理部の出力信号について説明する。タイミングT1において、CPU20は、リードリクエストを発行する。リクエスト種別がリードリクエストであるため、タイミングT2において、制御ユニット10内のステートは、"IDLE"から"Read"に遷移する。
Next, an output signal of each processing unit when a temporary address error has occurred will be described with reference to FIG. At timing T1, the
図9と同様に、アドレス保持バッファ120には、タイミングT2においてリードリクエストのアクセス先であるアドレス情報(アドレスA)及びアドレスパリティが格納される。タイミングT2において、CPU20は、ライトリクエストを発行する。タイミングT2において、リードリクエストに対するデータがメモリ30から読み出される。ここで、リードリクエストのアドレス情報がアドレスAであるにもかかわらず、アドレスXからデータが読み出されている。そのため、第1アドレスエラー信号は、ハイレベルとなる。すなわち、アドレスエラーが検出されている。制御ユニット10内の中間信号生成部1107が生成する中間信号は、ステートが"Read"であり、第1アドレスエラー信号がハイレベルであるため、ハイレベルに切り替わる(図7)。書き込み検出部1108は、タイミングT2においてライトリクエストが発行されているためハイレベルを出力する。論理積回路1109は、中間信号の反転信号と書き込み検出信号1108の出力信号の論理積を書き込み制御信号として出力する。そのため、書き込み処理の開始時にハイレベルとなった書き込み制御信号は、中間信号がハイレベルとなったタイミングでロウレベルに切り替わる。これにより、メモリ30への書き込みが抑制される。さらに、制御ユニット10内の応答信号送信部1104は、ステートが"Read"であり、第1アドレスエラー信号がハイレベルであるため、ACK(応答信号)としてロウレベルをCPU20に供給する。
Similar to FIG. 9, the
タイミングT3において、制御ユニット10内のステートは、"Re−Read1"に変更される。制御ユニット10は、アドレス保持バッファ120に保持したアドレス情報(アドレスA)を用いてリード処理を再実行する。制御ユニット10は、図6に示したステートマシンの遷移に応じて、タイミングT4におけるステートを"Re−Read2"に変更する。
At timing T3, the state in the
タイミングT4において、リードリクエストに対応するデータがメモリ30から読み出される。図10の例では、アドレスAからデータBが読み出されることにより、アドレスエラーが生じない。この場合、第1アドレスエラー信号は、ロウレベルのままである。そのため、タイミングT4において、制御ユニット10内の中間信号生成部1107は、第1アドレスエラー信号がロウレベルであるため、出力信号をロウレベルとする(図7)。これにより、書き込み処理時にハイレベルとなる書き込み制御信号は、そのままハイレベルとなる。
At timing T4, data corresponding to the read request is read from the
タイミングT5において、制御ユニット10内のステートは、図6に示すステートマシンの遷移に従い、"Write"に変更される。これにより、タイミングT5からメモリ30への書き込み処理が行われる。さらに、制御ユニット10内の応答信号送信部1104は、ステートが"Write"に切り替わったことにより、ACK(応答信号)をハイレベルに切り替えてCPU20に供給する。タイミングT5において、ステートが"Write"であるため、制御ユニット10は、アドレス保持バッファ120に保持していた情報(アドレスA及びアドレスパリティ)を破棄する。
At timing T5, the state in the
次に、図11を参照して、恒久的なアドレスエラーが生じた場合の各処理部の出力信号について説明する。タイミングT1〜T3までは、図10と同様であるため、詳細な説明は省略する。 Next, an output signal of each processing unit when a permanent address error occurs will be described with reference to FIG. Since the timings T1 to T3 are the same as those in FIG. 10, detailed description thereof is omitted.
タイミングT4における制御ユニット10のステートは、"Re−Read2"である。タイミングT4において、リードリクエストに対応するデータがメモリ30から読み出される。図11の例では、この読み出しの際に再度アドレスXからデータを読み出してしまい、アドレスエラーが再度発生する。この場合、第1アドレスエラー信号は、ハイレベルとなる。制御ユニット10内の中間信号生成部1107が生成する中間信号は、ステートが"Re−Read2"であり、第1アドレスエラー信号がハイレベルであるため、ハイレベルに切り替わる(図7)。書き込み検出部1108は、タイミングT4においてライトリクエストが発行されているためハイレベルを出力する。論理積回路1109は、中間信号の反転信号と書き込み検出信号1108の出力信号の論理積を書き込み制御信号として出力する。そのため、書き込み制御信号は、中間信号がハイレベルとなったタイミングでロウレベルに切り替わる。これにより、メモリ30への書き込みが抑制される。
The state of the
さらに、制御ユニット10内の応答信号送信部1104は、ステートが"Re−Read2"であり、第1アドレスエラー信号がハイレベルであるため、ACK(応答信号)としてロウレベルをCPU20に供給する。ステートが"Re−Read2"の状態において、第1アドレスエラー信号がハイレベルとなったため、制御ユニット10内のステートは、タイミングT5において"STOP"となる。
Furthermore, since the state is “Re-Read2” and the first address error signal is at a high level, the response
続いて、本実施の形態の効果について説明する。上述のように、制御ユニット10は、メモリ30の読み出し時のアドレスエラーの検出時に(第1アドレスエラー信号がハイレベルの場合に)、書き込み制御信号を抑止する(ロウレベルにする)ことによりメモリ30への書き込み処理を禁止している。これにより、メモリ30への再読み出し処理が行われる前にデータが上書きされることを回避することができる。さらに、制御ユニット10は、CPU20への応答を保留(ACK信号をロウレベルで通知)する。CPU20は、ACK信号がロウレベルである間にはエラーが生じたリードリクエストの直後のリクエストを発行し続ける。このため、リクエスト順序を変化させることなく、全てのリクエストを実行することができる。
Then, the effect of this Embodiment is demonstrated. As described above, when the
さらに、制御ユニット10は、所定回数(上述の例では連続して2回)のアドレスエラー信号を検出した場合、恒久的なエラーであることをCPU20に通知する。これにより、CPU20は、恒久的なエラーに対する対応を行うことができる。
Further, when the
なお、上述の説明では、制御ユニット10は、アドレスエラーの発生時に読み出し処理の再実行を1回行い、その再実行が失敗していた場合には恒久的なアドレスエラーが生じたものと判定したが、必ずしもこれに限られない。制御ユニット10は、アドレスエラーが所定回数連続して生じた場合に恒久的なアドレスエラーが発生したものと判定しても良い。
In the above description, the
<実施の形態2>
本発明の実施の形態2にかかるデータ処理装置は、メモリ30内にアドレスパリティを予め保持しておくことを特徴とする。本実施の形態にかかるデータ処理装置について、以下に説明する。なお、実施の形態1と同一名称、同一符号を付した処理部であって特に言及しない処理部は、基本的に実施の形態1と同様の処理を行う。
<
The data processing device according to the second exemplary embodiment of the present invention is characterized in that the address parity is held in the
図12は、本実施の形態にかかるデータ処理装置の構成を示すブロック図である。本実施の形態にかかるデータ処理装置は、実施の形態1の構成に加えて、第1パリティチェック部80及び第2パリティチェック部90を備える。なお、図12に図示しないものの、データ処理装置がCPU20を備えることは勿論である。
FIG. 12 is a block diagram showing a configuration of the data processing apparatus according to the present embodiment. The data processing apparatus according to the present embodiment includes a first
メモリ30は、各アドレスにアドレスパリティ、チェックビット、及びデータを保持する。本実施の形態において、メモリ30は、チェックビットとアドレスパリティを別データとして保持する。ここで、アドレスパリティは、ミラーリング(二重化)されている。図13は、本実施の形態にかかるメモリ30のデータ格納構成を示す概念図である。図示するように、アドレスパリティがアドレス毎に2つ格納されている。当該アドレスパリティは、予めアドレス毎に算出され、原則としてアドレス毎に同じ値が格納される。しかし、α線等の影響等を受けた場合には、異なる値が格納される場合が稀にある。
The
第1パリティチェック部80は、メモリ30に格納されたアドレスパリティと、パリティ生成部40が生成して制御ユニット10及びアドレスデコーダ310を介して入力されたアドレスパリティと、を比較する処理部である。第1パリティチェック部80は、メモリ30内に格納された対のアドレスパリティが同じ値であるか否かを判定する。同じ値ではない場合、第1パリティチェック部80は、第3アドレスエラー信号をハイレベルにして制御ユニット10に供給する。第3アドレスエラー信号は、アドレスエラーの疑いがある場合にハイレベルとなる信号である。メモリ30内に格納された対のアドレスパリティが同じ値である場合、第1パリティチェック部80は、パリティ生成部40が生成したアドレスパリティと、メモリ30内に格納された対のアドレスパリティと、が同じ値であるか否かを判定する。同じ値ではない場合、第1パリティチェック部80は、第3アドレスエラー信号をハイレベルにして制御ユニット10に供給する。いずれの条件にも当てはまらない場合、第1パリティチェック部80は、第3アドレスエラー信号をロウレベルにして制御ユニット10に供給する。
The first
ECCデコーダ70には、メモリ30から該当アドレスに関するデータ(アドレス情報、読み出しデータ、チェックビット、アドレスパリティ)が供給される。ECCデコーダ70は、実施の形態1と同様にチェックビットを用いたデータエラー検出を行う。それと共に、ECCデコーダ70は、メモリ30に格納されたアドレスパリティの訂正処理を行う。ECCデコーダ70は、訂正済みのアドレスパリティを第2パリティチェック部90に供給する。さらに、ECCデコーダ70は、訂正を行った場合には訂正済みのアドレスパリティをメモリ30に書き込む。
The
第2パリティチェック部90は、ECCデコーダ70から供給された訂正済みのアドレスパリティを用いて、アドレスエラーの検出を行う。すなわち、第2パリティチェック部90は、フリップフロップ60を介して供給されたアドレスパリティと、訂正済みのアドレスパリティを比較して、アドレスエラーの発生を検出する。アドレスエラーが生じていると判定した場合、第2パリティチェック部90は、第1アドレスエラー信号をハイレベルにして制御ユニット10に供給する。アドレスエラーが生じていないと判定した場合、第2パリティチェック部90は、第1アドレスエラー信号をロウレベルにして制御ユニット10に供給する。
The second
続いて、本実施の形態にかかる再処理実行部110の構成及び動作について説明する。図14は、本実施の形態にかかる再処理実行部110の構成を示すブロック図である。再処理実行部110は、図5の構成に加えて、リードバッファ1111を備える。再処理実行部110内のステート処理部1102及び応答信号処理部1104には、第3アドレスエラー信号が供給される。
Next, the configuration and operation of the
ステート処理部1102は、リクエスト種別、第1アドレスエラー信号、及び第3アドレスエラー信号を受信し、受信した情報に応じてステート情報レジスタ1101の保持するステートを変化させる。各ステートの内容、及びステートの変化を図15及び図16を参照して説明する。
The
本実施の形態にかかるステート情報レジスタ1101の保持するステートは、実施の形態1で用いたステートと比べ、"Re−Read1"、"Re−Read2"というステートを持たず、"Wait"、"Re−Read"、"Re−Read Wait"、及び"false detection"というステートを持つ。 The state held by the state information register 1101 according to the present embodiment does not have the states “Re-Read1” and “Re-Read2”, but the “Wait” and “Re” states compared to the state used in the first embodiment. It has states of “Read”, “Re-Read Wait”, and “false detection”.
"Wait"とは、第3アドレスエラー信号が検出され(ハイレベルとなり)、第1アドレスエラー信号の供給を待機している状態である。ステートが"Wait"である場合、リードバッファ1111に読み出したデータを保持しておくとともに、リードリクエストの再実行が行われる。 “Wait” is a state in which the third address error signal is detected (becomes high level) and waiting for the supply of the first address error signal. When the state is “Wait”, the read data is held in the read buffer 1111 and the read request is re-executed.
"Re−Read"とは、リードリクエストの再実行し、メモリ30へのアクセス中であることを示すステートである。
“Re-Read” is a state indicating that the read request is re-executed and the
"Re−Read Wait"とは、リードリクエストの再実行の結果として、第3アドレスエラー信号が検出された(ハイレベルとなった)状態である。ステートが"Re−Read Wait"である場合、"Wait"ステートとは異なり、リードリクエストの再実行は行われない。本ステートにおいて、第1アドレスエラー信号が検出された場合(ハイレベルとなった場合)、恒久的なアドレスエラーが生じたものと判定される。一方、本ステートにおいて、第1アドレスエラー信号が検出されなかった場合(ロウレベルとなった場合)、直前に生じたアドレスエラーが一時的なものであると判定される。 “Re-Read Wait” is a state in which the third address error signal is detected (becomes high level) as a result of re-execution of the read request. When the state is “Re-Read Wait”, unlike the “Wait” state, the read request is not re-executed. When the first address error signal is detected in this state (when it becomes high level), it is determined that a permanent address error has occurred. On the other hand, in this state, when the first address error signal is not detected (when it becomes low level), it is determined that the address error generated immediately before is temporary.
"false detection"とは、第3アドレスエラー信号が検出された(ハイレベルとなった)が、直後に第1アドレスエラー信号が検出されなかった(ロウレベルとなった)ステートである。ステートが"false detection"である場合、リードバッファ1111に格納された読み出しデータがCPU20に供給される。
“False detection” is a state in which the third address error signal is detected (becomes high level), but the first address error signal is not detected immediately (becomes low level). When the state is “false detection”, the read data stored in the read buffer 1111 is supplied to the
本実施の形態にかかるステート処理部1102は、図15及び図16に示すように、入力されたリクエストの種別、第1アドレスエラー信号の値、及び第3アドレスエラー信号の値、に応じてステートを変化させる。
As shown in FIGS. 15 and 16, the
再び図14を参照する。本実施の形態にかかるステート処理部1102は、ステートの変更、リードリクエストの再実行、及びリードバッファ1111の制御を行う。ステート処理部1102は、ステート"Wait"の場合にリードリクエストを再発行するように制御を行う。この際に、ステート処理部1102は、アドレス保持バッファ120に格納されたアドレス及びアドレスパリティを用いてリードリクエストをメモリ30に対して再発行する。さらに、ステート処理部1102は、ステート"Wait"、"Re−Read"、 "Re−Read Wait"、及び"false detection"の場合に、メモリ30から読み出したデータをリードバッファ1111に保持させるように制御する。
Refer to FIG. 14 again. The
ステート処理部1102は、ステート"Read"の際に受信したアドレス情報とアドレスパリティをアドレス保持バッファ120に格納する。ステート処理部120は、ステート"Re−Read"、"Wait"、"false detection"の場合にはアドレス保持バッファ120の更新を停止する(値を保持し続ける)。
The
恒久エラー信号送信部1103は、以下の条件のいずれかを満たす場合に第2アドレスエラー信号をハイレベルに設定し、その他の場合にはロウレベルに設定する。
- ステート="Re−Read Wait" かつ 第1アドレスエラー信号がハイレベル
- ステート="STOP"
The permanent error
-State = "Re-Read Wait" and first address error signal is high level
-State = "STOP"
応答信号送信部1104は、以下の条件のいずれかを満たす場合にACK(応答信号)をハイレベルに設定し、その他の場合にはロウレベルに設定する。
- ステート="Write"
- ステート="false detection"
- ステート="Read"かつ 第3アドレスエラー信号がロウレベル
- ステート="Re−Read"かつ 第3アドレスエラー信号がロウレベル
- ステート="Re−Read Wait" かつ 第1アドレスエラー信号がロウレベル
The response
-State = "Write"
-State = "false detection"
-State = "Read" and third address error signal is low level
-State = "Re-Read" and third address error signal is low level
-State = "Re-Read Wait" and first address error signal is low level
中間信号生成部1107には、第1アドレスエラー信号及び第3アドレスエラー信号が供給される。中間信号生成部1107は、ステート情報レジスタ1101の保持するステートを読み出す。中間信号生成部1107は、以下の条件のいずれかを満たす場合にハイレベルとなる中間信号を生成する。中間信号生成部1107は、生成した中間信号を論理積回路1109に供給する。
- ステート="Read" かつ 第3アドレスエラー信号がハイレベル
- ステート="Wait"
- ステート="Re−Read" かつ 第3アドレスエラー信号がハイレベル
- ステート="Re−Read Wait" かつ 第1アドレスエラー信号がハイレベル
- ステート="STOP"
The
-State = "Read" and third address error signal is high level
-State = "Wait"
-State = "Re-Read" and the third address error signal is high.
-State = "Re-Read Wait" and first address error signal is high level
-State = "STOP"
図17は、上述の各信号がハイレベルとなる条件を示している。図14に示すその他の処理部の動作は、実施の形態1と同様であるため、その詳細な説明は省略する。 FIG. 17 shows a condition in which each of the above-mentioned signals becomes high level. Since the operation of the other processing units shown in FIG. 14 is the same as that of the first embodiment, detailed description thereof is omitted.
続いて、本実施の形態にかかるデータ処理装置の動作について図18〜図20のタイミングチャートを参照して説明する。図18は、第3アドレスエラー信号を検出したものの、第1アドレスエラー信号を検出したかった場合の各処理部の出力信号を示すタイミングチャートである。 Next, the operation of the data processing apparatus according to the present embodiment will be described with reference to the timing charts of FIGS. FIG. 18 is a timing chart showing an output signal of each processing unit when the third address error signal is detected but the first address error signal is desired to be detected.
タイミングT1において、CPU20は、リードリクエストを発行する。リードリクエストは、制御ユニット10を介してメモリ30に供給される。リクエスト種別がリードリクエストであるため、タイミングT2において、制御ユニット10内のステートは、"IDLE"から"Read"に遷移する。
At timing T1, the
タイミングT2においてステートが"Read"となるため、制御ユニット10は、内部のアドレス保持バッファ120に当該リードリクエストのアクセス先であるアドレス情報(アドレスA)及びアドレスパリティを格納する。タイミングT2において、CPU20は、ライトリクエストを発行する。タイミングT2において、リードリクエスト(アドレスA)に対応するデータが読み出される。この際、第3アドレスエラー信号は、ハイレベルとなる(すなわち、メモリ30内のアドレスパリティを用いた判定によりアドレスエラーが生じたと判定された、またはメモリ30内においてミラーリングしているアドレスパリティに相違がある)。これに応じて、制御ユニット10内の中間信号生成部1107が生成する中間信号は、ステートが"Read"であり、第3アドレスエラー信号がハイレベルであるため、ハイレベルに切り替わる。書き込み処理の開始時にハイレベルとなった書き込み制御信号は、中間信号がハイレベルとなったタイミングでロウレベルに切り替わる。これにより、メモリ30への書き込みが抑制される。さらに、制御ユニット10内の応答信号送信部1104は、ステートが"Read"であり、第3アドレスエラー信号がハイレベルであるため、ACK(応答信号)としてロウレベルをCPU20に供給する。
Since the state becomes “Read” at the timing T <b> 2, the
タイミングT3において、制御ユニット10内のステートは、"Wait"に変更される。制御ユニット10は、内部のリードバッファ1111に、タイミングT2において読み出したデータ(データB)を保持しておく。制御ユニット10は、リードリクエストの再実行を行う。制御ユニット10は、アドレス保持バッファ120に保持したアドレス情報(アドレスA)を用いてリードリクエストをメモリ30に対して再発行する。タイミングT3において、第1アドレスエラー信号は、ロウレベルとなる。そのため、制御ユニット10は、タイミングT2において検出した第3アドレスエラー信号は誤検出であったと判定する。
At timing T3, the state in the
第1アドレスエラー信号が検出されなかったため、タイミングT4におけるステートは、"false detection"に変更される。ステートが"false detection"に変更されたため、制御ユニット10内の中間信号生成部1107が生成する中間信号は、ロウレベルとなる。制御ユニット10内のステート処理部1102は、リードバッファ1111に保持するデータ(データB)をCPU20に供給する。さらに、制御ユニット10内の応答信号送信部1104は、ステートが"false detection"であるため、ACK(応答信号)としてハイレベルをCPU20に供給する。
Since the first address error signal is not detected, the state at the timing T4 is changed to “false detection”. Since the state is changed to “false detection”, the intermediate signal generated by the intermediate
タイミングT5において、制御ユニット10内のステートは、図15及び図16に示すステートマシンの遷移に従い、"Write"に変更される。これにより、タイミングT5からメモリ30への書き込み処理が行われる。
At timing T5, the state in the
次に、図19を参照して、アドレスエラーが生じ、読み出し処理の再実行時に読み出し処理が成功した場合の各処理部の出力信号について説明する。タイミングT1及びT2の各出力信号等は図18と同様であるため、詳細な説明は省略する。 Next, an output signal of each processing unit when an address error occurs and the read process is successful when the read process is re-executed will be described with reference to FIG. Since the output signals and the like at timings T1 and T2 are the same as those in FIG.
タイミングT3において、制御ユニット10内のステートは、"Wait"に変更される。制御ユニット10は、リードリクエストの再実行を行う。制御ユニット10は、アドレス保持バッファ120に保持したアドレス情報(アドレスA)を用いてリードリクエストをメモリ30に対して再発行する。タイミングT3において、第1アドレスエラー信号は、ハイレベルとなる。第1アドレスエラー信号の検出により、アドレスエラーの発生が確定する。
At timing T3, the state in the
ステート"Wait"の状態において第1アドレスエラー信号が検出されたため、タイミングT4におけるステートは、"Re−Read"に変更される。ステート"Wait"の状態において行った読み出し処理の再実行結果として、第3アドレスエラー信号がロウレベルとなる。制御ユニット10内の応答信号送信部1104は、ステートが"Re−Read"であり、第3アドレスエラー信号がロウレベルとなったため、制御ユニット10は、ACK(応答信号)としてハイレベルをCPU20に供給する。
Since the first address error signal is detected in the state “Wait”, the state at the timing T4 is changed to “Re-Read”. As a result of re-execution of the read process performed in the state “Wait”, the third address error signal becomes low level. Since the response
タイミングT5において、制御ユニット10内のステートは、図15及び図16に示すステートマシンの遷移に従い、"Write"に変更される。これにより、タイミングT5からメモリ30への書き込み処理が行われる。
At timing T5, the state in the
次に、図20を参照して、アドレスエラーが生じ、読み出し処理の再実行時に第3アドレスエラー信号が誤検出された場合の各処理部の出力信号について説明する。タイミングT1〜T3の各出力信号等は図19と同様であるため、詳細な説明は省略する。 Next, with reference to FIG. 20, an output signal of each processing unit when an address error occurs and the third address error signal is erroneously detected when the read process is reexecuted will be described. Since the output signals and the like at timings T1 to T3 are the same as those in FIG.
タイミングT4におけるステートは、"Re−Read"である。ステート"Wait"の状態において行った読み出し処理の再実行結果として、第3アドレスエラー信号がハイレベルとなる(すなわち、メモリ30内のアドレスパリティを用いた判定によりアドレスエラーが生じたと判定された)。制御ユニット10内の中間信号生成部1107が生成する中間信号は、ステートが"Re−Read"であり、第3アドレスエラー信号がハイレベルであるため、ハイレベルに切り替わる。書き込み処理の開始時にハイレベルとなった書き込み制御信号は、中間信号がハイレベルとなったタイミングでロウレベルに切り替わる。これにより、メモリ30への書き込みが抑制される。ここで、制御ユニット10は、内部のリードバッファ1111に再実行時に読み出したデータ(データB)を保持しておく。
The state at timing T4 is “Re-Read”. As a result of re-execution of the read process performed in the state “Wait”, the third address error signal becomes high level (that is, it is determined that an address error has occurred by the determination using the address parity in the memory 30). . The intermediate signal generated by the intermediate
タイミングT5において、制御ユニット10内のステートは、"Re−Read Wait"に変更される。ステート"Wait"の状態において行った読み出し処理の再実行結果として、第1アドレスエラー信号がロウレベルとなる。これにより、制御ユニット10内のステート処理部1102は、タイミングT4において検出した第3アドレスエラー信号が誤検出であったと判定する。制御ユニット10は、再実行時に読み出したデータ(データB)をCPU20に供給する。さらに、制御ユニット10内の応答信号送信部1104は、ステートが"Re−Read Wait"であり、第1アドレスエラー信号がロウレベルであるため、ACK(応答信号)としてハイレベルをCPU20に供給する。
At timing T5, the state in the
タイミングT6において、制御ユニット10内のステートは、図15及び図16に示すステートマシンの遷移に従い、"Write"に変更される。これにより、タイミングT5からメモリ30への書き込み処理が行われる。
At timing T6, the state in the
続いて、本実施の形態の効果について説明する。実施の形態1と同様に、制御ユニット10は、メモリ30の読み出し時のアドレスエラーの検出時または検出の疑いがある場合に(第1、または第3アドレスエラー信号がハイレベルの場合に)、書き込み制御信号を抑止する(ロウレベルにする)ことによりメモリ30への書き込み処理を禁止している。これにより、メモリ30への再読み出し処理が行われる前にデータが上書きされることを回避することができる。さらに、制御ユニット10は、CPU20への応答を保留(ACK信号をロウレベルで通知)する。CPU20は、ACK信号がロウレベルである間にはエラーが生じたリードリクエストの直後のリクエストを発行し続ける。このため、リクエスト順序を変化させることなく、全てのリクエストを実行することができる。
Then, the effect of this Embodiment is demonstrated. Similar to the first embodiment, the
本実施の形態にかかるデータ処理装置の更なる効果について図21を参照して説明する。図21は、実施の形態1におけるアドレスエラーの検出と、実施の形態2におけるアドレスエラーの検出と、を対比した概念図である。 Further effects of the data processing apparatus according to the present embodiment will be described with reference to FIG. FIG. 21 is a conceptual diagram comparing the detection of an address error in the first embodiment and the detection of an address error in the second embodiment.
実施の形態1にかかるデータ処理装置では、ECCデコーダ70によるアドレスエラー検出が行われていた。一方、実施の形態2にかかるデータ処理装置では、メモリ30内に格納していたアドレスパリティを用いたアドレスエラー検出(第3アドレスエラー信号の送信)を行い、続いて訂正済みのアドレスパリティを用いたアドレス検出(第1アドレスエラー信号の送信)を行っている。
In the data processing apparatus according to the first embodiment, address error detection is performed by the
一般に、ECCデコーダ70は、多段の回路により構成されおり、処理負荷が大きい(処理時間が長くかかる)。実施の形態1のECCデコーダ70は、リードリクエストの発行から1クロック後に発行されるライトリクエストを処理するために、1クロック以内にアドレスエラーを検出しなければならない。一方、実施の形態2にかかるデータ処理装置では、第1パリティチェック部80が、リードリクエストの発行から1クロック後にアドレスエラーの検出を行っている。第1パリティチェック部80によるエラー検出は、ビット比較により行うため、処理負荷が小さい。すなわち、実施の形態2にかかる構成では、エラー検出までにかかる時間が短い。これにより、図21に示すように、1クロックにかかる時間を短縮することができる。これにより、データ処理装置全体の処理を速くすることができる。
In general, the
第1パリティチェック部80は、メモリ30内にアドレスパリティを保持しておくことにより、アドレスエラーの検出を行っている。しかしながら、メモリ30内にアドレスパリティを記憶させる際に、パリティデータがα線の影響等により反転する場合等が稀にある。すなわち、メモリ30内が記憶するアドレスパリティが正しくないケースが存在する。本実施の形態では、メモリ30内にアドレスパリティをミラーリングして記憶させる。そして、第1パリティチェック部80は、メモリ30内の全てのアドレスパリティが等しい値ではない場合には、メモリ30内のアドレスパリティが正しくないものとしてエラー出力を行う(第3アドレスエラー信号をハイレベルにする)。そして、第2パリティチェック部90は、訂正済みのアドレスパリティを用いたアドレスエラーの検出を行う。第2パリティチェック部90は、訂正済みのアドレスパリティを用いることにより、正確なアドレスエラーの検出処理を行うことができる。これにより、メモリ30内のアドレスパリティが正しくない場合であっても、アドレスエラーを正しく検出することができる。
The first
さらに、制御ユニット10は、第3アドレスエラー信号が誤検出であった場合に、リードレジスタ1111に格納していたデータをCPU20に供給する。これにより、CPU20は、メモリ30の読み出し処理の再実行を省略することができ、装置全体の処理速度を早めることができる。
Further, when the third address error signal is erroneously detected, the
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。上述のメモリは、読み出し、及び書き込みが可能な任意の記憶装置であれば良い。 Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention. The memory described above may be any storage device that can be read and written.
なお、請求項に記載のアドレス誤り信号は、上述の第1アドレスエラー信号、または第3アドレスエラー信号に対応する。請求項に記載の通知信号は、上述の第2アドレスエラー信号に対応する。請求項に記載の簡易アドレス誤り信号は、上述の第3アドレスエラー信号に対応する。請求項に記載のアドレス誤り確定信号は、上述の第1アドレスエラー信号に対応する。 The address error signal described in the claims corresponds to the first address error signal or the third address error signal. The notification signal described in the claims corresponds to the second address error signal. The simple address error signal described in the claims corresponds to the third address error signal. The address error determination signal described in the claims corresponds to the first address error signal.
10 制御ユニット
20 CPU
30 メモリ
310 アドレスデコーダ
320 データ記憶部
40 パリティ生成部
50 ECC生成部
60 FF(フリップフロップ)
70 ECCデコーダ
80 第1パリティチェック部
90 第2パリティチェック部
110 再処理実行部
1101 ステート情報レジスタ
1102 ステート処理部
1103 恒久エラー信号送信部
1104 応答信号送信部
1105 書き込み制御信号生成部
1106 エラー記録部
1107 中間信号生成部
1108 書き込み検出部
1109 論理積回路
1110 エラー記録レジスタ
1111 リードバッファ
120 アドレス保持バッファ
10
30
70
Claims (12)
前記制御ユニットは、前記メモリに対する読み出し処理の実行中に前記所望のアドレスと異なるアドレスへのアクセスを示す値のアドレス誤り信号を受信した場合、前記メモリの書き込み処理を禁止し、前記プロセッサへの応答を保留し、該保留期間に前記読み出し処理の再実行処理を行う、データ処理装置。 A memory, and a control unit that receives a read request or a write request to a desired address from a processor and controls access to the memory, and
When the control unit receives an address error signal having a value indicating an access to an address different from the desired address during the execution of the read process for the memory, the control unit prohibits the memory write process and responds to the processor. A data processing apparatus that holds the data and performs the re-execution process of the read process during the hold period.
前記メモリに対する読み出し処理のアドレス情報を保持するアドレス保持バッファと、
前記メモリに対する処理のステートを保持するステート情報レジスタと、
前記アドレス誤り信号の入力値と、前記プロセッサから発行されたリクエストの種別と、に応じて前記ステートを所定規則に従って変更するとともに、前記アドレス保持バッファの保持する前記アドレス情報を用いて前記再実行処理を行うステート処理部と、
前記アドレス誤り信号の入力値と、前記ステートと、前記プロセッサからのリクエスト種別と、に基づいて前記メモリの書き込み処理を禁止するか否かを指示する書き込み制御信号を生成する書き込み制御信号生成部と、
前記アドレス誤り信号の入力値、及び前記ステートに基づいて前記プロセッサへの応答信号を生成する応答信号送信部と、
を備えることを特徴とする請求項1または請求項2に記載のデータ処理装置。 The control unit is
An address holding buffer for holding address information of read processing for the memory;
A state information register for holding a state of processing for the memory;
The state is changed according to a predetermined rule according to the input value of the address error signal and the type of request issued from the processor, and the re-execution process is performed using the address information held in the address holding buffer. A state processing unit for performing
A write control signal generation unit for generating a write control signal for instructing whether or not to prohibit write processing of the memory based on an input value of the address error signal, the state, and a request type from the processor; ,
A response signal transmitter for generating a response signal to the processor based on the input value of the address error signal and the state;
The data processing apparatus according to claim 1, further comprising:
前記データ処理装置は、
前記リードリクエストから算出されたアドレスパリティと、前記メモリに格納された前記アドレスパリティと、を比較し、比較結果を前記アドレス誤り信号の一種である簡易アドレス誤り信号として出力する第1パリティチェック部と、
前記メモリに格納された前記アドレスパリティを前記誤り訂正符号により訂正したパリティと、前記リードリクエストから算出されたアドレスパリティと、を比較し、比較結果を前記アドレス誤り信号の一種であるアドレス誤り確定信号として出力する第2パリティチェック部と、を更に備えることを特徴とする請求項1乃至請求項4のいずれか1項に記載のデータ処理装置。 The memory holds an address parity calculated from address information, an error correction code, and data in association with each other,
The data processing device includes:
A first parity check unit that compares the address parity calculated from the read request with the address parity stored in the memory and outputs a comparison result as a simple address error signal which is a kind of the address error signal; ,
A parity obtained by correcting the address parity stored in the memory by the error correction code is compared with an address parity calculated from the read request, and the comparison result is an address error determination signal which is a kind of the address error signal. The data processing apparatus according to claim 1, further comprising: a second parity check unit that outputs the data as a second parity check unit.
前記簡易アドレス誤り信号がアドレスエラーを示す値の場合に、前記メモリから読み出されたデータを保持するリードレジスタを備え、
アドレスエラーを示す値を持つ前記簡易アドレス誤り信号が供給された後に、アドレスエラーが生じなかったことを示す前記アドレス誤り確定信号が供給された場合に、前記リードレジスタの保持する値を前記メモリからの読み出しデータとして前記プロセッサに供給し、前記保留期間を終了することを特徴とする請求項5に記載のデータ処理装置。 The control unit is
A read register for holding data read from the memory when the simple address error signal is a value indicating an address error;
After the simple address error signal having a value indicating an address error is supplied, when the address error confirmation signal indicating that no address error has occurred is supplied, the value held in the read register is read from the memory. The data processing apparatus according to claim 5, wherein the read data is supplied to the processor as the read data and the suspension period is ended.
前記第1パリティチェック部は、前記ミラーリングされたアドレスパリティが全て同じ値ではない場合に、アドレスエラーが生じたことを示す前記簡易アドレス誤り信号を出力することを特徴とする請求項5または請求項6に記載のデータ処理装置。 The memory mirrors and holds the address parity;
The first parity check unit outputs the simple address error signal indicating that an address error has occurred when the mirrored address parities are not all the same value. 6. A data processing apparatus according to 6.
前記プロセッサからのリクエストを受信していない状態を示す"IDLE"と、
前記プロセッサからのリードリクエストを受信した状態を示す"Read"と、
前記プロセッサからのライトリクエストを受信した状態を示す"Write"と、
前記リードリクエストの処理結果として前記アドレス誤り信号によりアドレスエラーが通知された状態を示す"Re−Read1"と、
前記"Re−Read1"の状態に遷移した後に前記再実行処理を行った状態を示す"Re−Read2"と、
前記再実行処理において再度のアドレスエラーが検出された状態を示す"STOP"と、を含み、
前記書き込み込み制御信号生成部は、
前記アドレス誤り信号がアドレスエラーを示す値であり、前記ステートが"Read"であり、かつ前記プロセッサからライトリクエストが発行されている場合、または、
前記ステートが"Re−Read1"であり、かつ前記プロセッサからライトリクエストが発行されている場合、または、
前記アドレス誤り信号がアドレスエラーを示す値であり、前記ステートが"Re−Read2"であり、かつ前記プロセッサからライトリクエストが発行されている場合、または、
前記ステートが"STOP"であり、かつ前記プロセッサからライトリクエストが発行されている場合、
に前記書き込み制御信号を前記メモリへの書き込みを禁止する値として出力することを特徴とする請求項3に記載のデータ処理装置。 The state type is
“IDLE” indicating that the request from the processor has not been received;
“Read” indicating a state of receiving a read request from the processor;
“Write” indicating a state of receiving a write request from the processor;
"Re-Read1" indicating a state in which an address error is notified by the address error signal as a result of processing the read request;
“Re-Read2” indicating a state in which the re-execution process is performed after transitioning to the “Re-Read1” state;
"STOP" indicating a state where an address error is detected again in the re-execution process,
The write control signal generator is
The address error signal is a value indicating an address error, the state is "Read", and a write request is issued from the processor, or
When the state is “Re-Read1” and a write request is issued from the processor, or
The address error signal is a value indicating an address error, the state is "Re-Read2", and a write request is issued from the processor, or
When the state is “STOP” and a write request is issued from the processor,
4. The data processing apparatus according to claim 3, wherein the write control signal is output as a value for prohibiting writing to the memory.
前記メモリに対する読み出し処理の実行中に前記所望のアドレスと異なるアドレスへのアクセスを示す値のアドレス誤り信号を受信した場合、前記メモリの書き込み処理を禁止し、前記プロセッサへの応答を保留し、該保留期間に前記読み出し処理の再実行処理を行う、制御ユニット。 A control unit that receives a read request or write request to a desired address from a processor and controls access to a memory,
When an address error signal having a value indicating an access to an address different from the desired address is received during execution of the read process on the memory, the memory write process is prohibited, a response to the processor is suspended, A control unit that performs the re-execution process of the read process during the holding period.
前記制御ユニットは、前記メモリに対する読み出し処理の実行中に前記所望のアドレスと異なるアドレスへのアクセスを示す値のアドレス誤り信号を受信した場合、前記メモリの書き込み処理を禁止し、前記プロセッサへの応答を保留し、該保留期間に前記読み出し処理の再実行処理を行う、データ処理装置。 A processor, a memory, and a control unit that receives a read request or a write request to a desired address from the processor and controls access to the memory;
When the control unit receives an address error signal having a value indicating an access to an address different from the desired address during the execution of the read process for the memory, the control unit prohibits the memory write process and responds to the processor. A data processing apparatus that holds the data and performs the re-execution process of the read process during the hold period.
前記メモリからのデータ読み出し処理の実行中に所望のアドレスと異なるアドレスへのアクセスを検出した場合、後続するメモリ書き込み処理を禁止し、前記プロセッサの後続リクエストの進行を中断する保留期間に移行し、該保留期間に前記読み出し処理の再実行処理を行う、メモリ制御方法。 A memory control method for controlling access to a memory from a processor,
When an access to an address different from a desired address is detected during the execution of a data read process from the memory, a subsequent memory write process is prohibited, and a transition is made to a suspension period in which the progress of subsequent requests of the processor is interrupted. A memory control method for performing re-execution processing of the read processing during the holding period.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012016501A JP2013156821A (en) | 2012-01-30 | 2012-01-30 | Data processor, control unit and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012016501A JP2013156821A (en) | 2012-01-30 | 2012-01-30 | Data processor, control unit and memory control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013156821A true JP2013156821A (en) | 2013-08-15 |
Family
ID=49051938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012016501A Pending JP2013156821A (en) | 2012-01-30 | 2012-01-30 | Data processor, control unit and memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013156821A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101482971B1 (en) * | 2014-06-25 | 2015-01-16 | 주식회사 엔트리브 | Real-time data backup system and method using dual emulator |
JP2018206336A (en) * | 2017-06-02 | 2018-12-27 | ルネサスエレクトロニクス株式会社 | Semiconductor device and memory module |
-
2012
- 2012-01-30 JP JP2012016501A patent/JP2013156821A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101482971B1 (en) * | 2014-06-25 | 2015-01-16 | 주식회사 엔트리브 | Real-time data backup system and method using dual emulator |
WO2015199345A1 (en) * | 2014-06-25 | 2015-12-30 | 주식회사 엔트리브 | Real-time data backup system and backup method using dual-emulator |
JP2018206336A (en) * | 2017-06-02 | 2018-12-27 | ルネサスエレクトロニクス株式会社 | Semiconductor device and memory module |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5010271B2 (en) | Error correction code generation method and memory control device | |
US9003260B2 (en) | Partial-writes to ECC (error check code) enabled memories | |
US20080301528A1 (en) | Method and apparatus for controlling memory | |
KR20140024060A (en) | Rank-specific cyclic redundancy check | |
JP2014032516A (en) | Storage device, controller, and data protection method | |
US20080209277A1 (en) | Computer system and memory system | |
US8539284B2 (en) | Application reliability and fault tolerant chip configurations | |
JP2009295252A (en) | Semiconductor memory device and its error correction method | |
JP2013156821A (en) | Data processor, control unit and memory control method | |
JP2018147166A (en) | Arithmetic processing unit and control method of arithmetic processing unit | |
JPH1049448A (en) | Error correction mechanism for redundant memory | |
US8286053B2 (en) | Method and apparatus for reading data | |
JP2001290710A (en) | Device for detecting data error | |
JP5843804B2 (en) | Arithmetic apparatus and error processing method | |
KR20210116342A (en) | Data processing device and data processing method | |
JP7107696B2 (en) | Failure detection method for semiconductor device and semiconductor memory | |
JPH0773114A (en) | Memory control circuit for space digital computer | |
JP4747062B2 (en) | Device migration method, device migration method, migration control apparatus, and program | |
JP2009116978A (en) | Semiconductor storage device | |
JP2010061258A (en) | Duplex processor system and processor duplex method | |
JP2005234855A (en) | Information processor | |
JPH04162161A (en) | Storage controller | |
JP2016177717A (en) | Memory control device and memory control method | |
JP5888419B2 (en) | Data processing apparatus, processor, and operation history recording method | |
JP2021033725A (en) | Method of diagnosing dram |