JP2016015070A - Error detection method and error detection apparatus - Google Patents

Error detection method and error detection apparatus Download PDF

Info

Publication number
JP2016015070A
JP2016015070A JP2014137510A JP2014137510A JP2016015070A JP 2016015070 A JP2016015070 A JP 2016015070A JP 2014137510 A JP2014137510 A JP 2014137510A JP 2014137510 A JP2014137510 A JP 2014137510A JP 2016015070 A JP2016015070 A JP 2016015070A
Authority
JP
Japan
Prior art keywords
data
address
error
memory
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014137510A
Other languages
Japanese (ja)
Other versions
JP6398390B2 (en
Inventor
拓哉 剱持
Takuya Kemmochi
拓哉 剱持
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2014137510A priority Critical patent/JP6398390B2/en
Publication of JP2016015070A publication Critical patent/JP2016015070A/en
Application granted granted Critical
Publication of JP6398390B2 publication Critical patent/JP6398390B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To easily discriminate an address error from a data error, while reducing communication time per data-write operation.SOLUTION: Data in an EEPROM (first memory) is read and stored in an SRAM (second memory) in advance. An address and write data are transmitted to the EEPROM (S701). After the write data is written in the address, the data in the address written in the EEPROM is read (S702) and compared with the write data (S703). When they are not coincident with each other, the read data is compared with data in an address corresponding to the write address in the data stored in the SRAM (S704). When they are coincident with each other, an address error is determined (S705). When they are not coincident with each other, a data error is determined (S707).

Description

この発明は、デジタルデータが伝送される際に発生するエラーの検出方法及びエラー検出装置に関する。   The present invention relates to a detection method and an error detection device for errors that occur when digital data is transmitted.

従来から、デジタルデータをメモリに書き込む際に、送信側からメモリモジュール(受信側)に対して行う書き込み先のアドレス(以下「書込先アドレス」という)や書き込み対象のデータ(以下「書込対象データ」という)の伝送にエラーが発生する可能性があることが知られている。送信側から伝送されたデジタル信号がノイズの混入により変化する等である。   Conventionally, when writing digital data to the memory, the address of the write destination (hereinafter referred to as “write destination address”) and the data to be written (hereinafter referred to as “write target”) performed from the transmission side to the memory module (reception side). It is known that errors may occur in the transmission of "data". For example, the digital signal transmitted from the transmission side changes due to noise mixing.

また、このエラーには、書込先アドレスの値が変化して、要求と異なるアドレスに書き込みを行われてしまうアドレスエラーと、書込対象データの値が変化して、要求と異なるデータが書き込まれてしまうデータエラーという2種類のエラーが考えられる。
こうしたエラーの検出に関連する技術としては、例えば特許文献1に記載のものが知られている。
Also, for this error, the write destination address value changes and an address error that causes writing to an address different from the request, and the write target data value changes and data different from the request is written. There are two types of errors: data errors.
As a technique related to such error detection, for example, a technique described in Patent Document 1 is known.

ところで、上述したデータ伝送時のエラーの検出方法として、例えば以下の方法が考えられる。
すなわち、まず、送信側が、書込先アドレスと書込対象データとを含む書込命令をメモリモジュールに送信する。次に、メモリモジュールが、この書込命令に基づき、データの書き込みを実行する。
By the way, as a method for detecting an error at the time of data transmission described above, for example, the following method can be considered.
That is, first, the transmission side transmits a write command including a write destination address and write target data to the memory module. Next, the memory module executes data writing based on the write command.

次に、送信側が、書込命令における書込先アドレスに記憶されているデータを読み出して送信することを要求する読込命令を、メモリモジュールに送信する。そして、メモリモジュールが、この読込命令に応じて、書込命令における書込先アドレスに記憶されているデータを読み出して送信側へ送信する。   Next, the transmission side transmits to the memory module a read command requesting to read and transmit data stored in the write destination address in the write command. Then, in response to this read command, the memory module reads the data stored in the write destination address in the write command and transmits it to the transmission side.

送信側は、書込命令における書込対象データと読込命令に応じてメモリモジュールから送信されたデータとを比較し、両データが一致するか、しないかを判断する。両データが一致しない場合は、書込命令の送信時にエラーが発生したことになる。
しかし、この方法では、エラー発生の有無が分かるだけで、アドレスエラーとデータエラーのいずれが発生したのかの区別ができないという問題があった。
The transmission side compares the data to be written in the write command with the data transmitted from the memory module in response to the read command, and determines whether or not the two data match. If the two data do not match, an error has occurred during transmission of the write command.
However, this method has a problem that it is impossible to distinguish whether an address error or a data error has occurred only by knowing whether an error has occurred.

特許文献1には、この点を改善した次のような方法が開示されている。
すなわち、送信側のマイクロコンピュータは受信側のEEPROM(Electrically Erasable Programmable ROM)に対し、各命令をエコーバックするよう設定した上で、まず書込先アドレスを指定するアドレスセット命令を送信して、そのエコーバックによりアドレスが正しく指定されたことを確認する。
Patent Document 1 discloses the following method that improves this point.
That is, the transmission side microcomputer first sets each instruction to echo back to the reception side EEPROM (Electrically Erasable Programmable ROM), and then transmits an address set instruction for designating the write destination address. Check that the address is correctly specified by echo back.

この確認ができると、次に書込対象データを含むワードライト命令を送信して書き込みを実行させ、この命令もエコーバックにより正しく伝送されたことを確認する。いずれの命令も、エコーバックされた内容が送信した内容と異なる場合、同じ命令を再送して実行させる。   If this confirmation can be made, a word write command including data to be written is then transmitted to execute writing, and it is confirmed that this command has also been correctly transmitted by echo back. In any command, when the echoed content is different from the transmitted content, the same command is retransmitted and executed.

また、一度書き込みを行った後、送信側は再度アドレスセット命令及びワードリード命令を送信して、EEPROMに、先にワードライト命令により書き込ませたアドレスのデータを送信させて、これが書き込ませたデータと一致することを確認する。これらのアドレスセット命令とワードリード命令についても、エコーバックを確認する。   Also, after writing once, the sending side sends the address set command and the word read command again, causing the EEPROM to send the data at the address that was previously written by the word write command, and the data written by this Make sure it matches. Echo back is also confirmed for these address set instructions and word read instructions.

以上の方法によれば、先に書込先アドレスが正しく伝送されたことを確認してから、また正しく伝送されていない場合には伝送をやり直してからワードライト命令を出すことになる。従って、送信側は、書込先アドレスと書込対象データのどちらの伝送にエラーが生じたのかを切り分けて(区別して)認識し、伝送エラーが発生した場合もこれを容易に訂正することができる。   According to the above method, the word write command is issued after confirming that the write destination address has been correctly transmitted first, and when it is not correctly transmitted, the transmission is performed again. Therefore, the transmission side can recognize (distinguish) whether or not an error has occurred in the transmission of the write destination address or the write target data, and can easily correct this even if a transmission error occurs. it can.

しかしながら、特許文献1に記載の方法であっても、1回のデータ書き込みについて送信側と受信側でデータを送受信する必要のある回数が多く、通信時間が長くかかってしまうという問題があった。   However, even with the method described in Patent Document 1, there is a problem that the number of times that data needs to be transmitted and received between the transmission side and the reception side for one data writing is large, and communication time is long.

この発明は、このような問題を解決し、メモリへのデータ書き込みのためのデジタルデータ伝送において、1回のデータ書き込み当たりの通信時間を抑えつつ、アドレスエラーとデータエラーとを容易に切り分ける(区別して検出する)ことができるようにすることを目的とする。   The present invention solves such a problem and easily separates an address error and a data error while suppressing a communication time per one data write in digital data transmission for writing data into a memory (division). It is intended to be able to be detected separately.

以上の目的を達成するため、本発明は、第1メモリへのデータ書き込み時のエラーを検出するエラー検出方法において、上記第1メモリのうち、少なくとも書き込み対象とするアドレス範囲のデータを読み出して、その第1メモリと異なる第2メモリに記憶させるデータ保持手順と、その第1メモリに対し、アドレス及び書込対象データを送信して、そのアドレスにその書込対象データを書き込ませる書込手順と、その第1メモリから、その書込手順で送信したアドレスに記憶されているデータを読み出す読出手順と、上記読出手順でその第1メモリから読み出したデータと、その書込手順で送信した書込対象データとを比較する第1比較手順と、上記第1比較手順での比較結果が不一致であった場合に、その読出手順でその第1メモリから読み出したデータと、その保持手順でその第2メモリに記憶させたデータのうち該書込手順で送信したアドレスと対応するアドレスから読み出したデータとを比較する第2比較手順と、上記第2比較手順での比較結果が一致であった場合にアドレスエラーを検出したと判定し、不一致であった場合にデータエラーを検出したと判定する判定手順とを設けたものである。   In order to achieve the above object, the present invention provides an error detection method for detecting an error when writing data to a first memory, and reads at least data in an address range to be written in the first memory, A data holding procedure for storing in a second memory different from the first memory, and a writing procedure for transmitting an address and write target data to the first memory and writing the write target data to the address; A reading procedure for reading data stored in the address transmitted in the writing procedure from the first memory, a data read from the first memory in the reading procedure, and a writing transmitted in the writing procedure. When the comparison result in the first comparison procedure for comparing the target data and the comparison result in the first comparison procedure is inconsistent, the readout procedure reads out the first memory from the first memory. A second comparison procedure for comparing the read data with the data read from the address corresponding to the address transmitted in the writing procedure among the data stored in the second memory in the holding procedure; A determination procedure for determining that an address error has been detected when the comparison result in the comparison procedure is a match, and determining that a data error has been detected when the comparison result is a match;

上記の構成によれば、メモリへのデータ書き込みのためのデジタルデータ伝送において、1回のデータ書き込み当たりの通信時間を抑えつつ、アドレスエラーとデータエラーとを容易に切り分けることができるようにすることができる。   According to the above configuration, in digital data transmission for writing data to the memory, it is possible to easily distinguish between an address error and a data error while suppressing a communication time per one data write. Can do.

本発明のエラー検出装置の実施形態である情報処理装置のハードウェア構成図である。It is a hardware block diagram of the information processing apparatus which is embodiment of the error detection apparatus of this invention. デジタルデータの伝送におけるエラーの発生について説明するための図である。It is a figure for demonstrating generation | occurrence | production of the error in transmission of digital data. 書き込み命令の伝送時に発生し得るエラーの種類について説明する図である。It is a figure explaining the kind of error which may occur at the time of transmission of a write command. 図1に示した情報処理装置が行うエラー訂正について説明するための図である。It is a figure for demonstrating the error correction which the information processing apparatus shown in FIG. 1 performs. 図1に示した情報処理装置のCPUが起動時に実行する処理のフローチャートである。It is a flowchart of the process which CPU of the information processing apparatus shown in FIG. 1 performs at the time of starting. 図1に示した情報処理装置のCPUがEEPROMへのデータ書き込み時に実行する処理のフローチャートであ2 is a flowchart of processing executed by the CPU of the information processing apparatus shown in FIG. 1 when data is written to an EEPROM. 図6の処理によるエラー検出について説明するための図である。It is a figure for demonstrating the error detection by the process of FIG.

以下、この発明を説明するための形態について、図面に基づいて説明する。
図1は、本発明エラー検出装置の一実施形態である情報処理装置のハードウェア構成図である。
図1に示す情報処理装置Aは、マイクロコンピュータ10と不揮発性メモリEEPROM20と、これらを接続するためのI2C(Inter-Integrated Circuit)規格のバスであるSCL(Serial Clock Line)31及びSDA(Serial DAta Line)32とを備える。また、マイクロコンピュータ10には、CPU101、SRAM102、内部バス103が内蔵されている。
EMBODIMENT OF THE INVENTION Hereinafter, the form for demonstrating this invention is demonstrated based on drawing.
FIG. 1 is a hardware configuration diagram of an information processing apparatus which is an embodiment of the error detection apparatus of the present invention.
An information processing apparatus A shown in FIG. 1 includes a microcomputer 10, a nonvolatile memory EEPROM 20, and SCL (Serial Clock Line) 31 and SDA (Serial DAta) which are I2C (Inter-Integrated Circuit) standard buses for connecting them. Line) 32. The microcomputer 10 includes a CPU 101, an SRAM 102, and an internal bus 103.

これらのうちCPU101は、内部バス103を介してSRAM102にアクセスし、データの書き込み及び読み込みを行うことができる。また、SCL31及びSDA32を介して、EEPROM20にアクセスし、データの書き込み及び読み込みを行うことができる。また、EEPROM20へのデータの書き込みの際のエラー検出に必要な全ての処理はCPU101が制御する。   Among these, the CPU 101 can access the SRAM 102 via the internal bus 103 to write and read data. In addition, the EEPROM 20 can be accessed via the SCL 31 and the SDA 32 to write and read data. In addition, the CPU 101 controls all processing necessary for error detection when writing data to the EEPROM 20.

SRAM102は、第2メモリであり、EEPROM20に格納されているデータのうち少なくとも書き込み対象とするアドレス範囲のデータのコピーを記憶して保持する機能を備える。
内部バス103はCPU101とSRAM102との間でのデータ転送用の経路として機能する。
The SRAM 102 is a second memory, and has a function of storing and holding at least a copy of data in an address range to be written among data stored in the EEPROM 20.
The internal bus 103 functions as a data transfer path between the CPU 101 and the SRAM 102.

EEPROM20は、第1メモリであり、マイクロコンピュータ10の外部に設けられた不揮発性メモリである。また、CPU101からの書込命令及び読出命令を受け付け、それに従って自身が備えるデータ保持部に対するデータの読み書きを行う。ここで、書込命令は、書込先アドレスと書込対象データを含むものであり、読出命令は、読み出し先のアドレス(以下「読出先アドレス」という)を含むものである。   The EEPROM 20 is a first memory and is a non-volatile memory provided outside the microcomputer 10. Further, it accepts a write command and a read command from the CPU 101, and reads / writes data to / from a data holding unit included in the CPU 101 accordingly. Here, the write command includes a write destination address and write target data, and the read command includes a read destination address (hereinafter referred to as “read destination address”).

SCL31は、I2C規格のデータ伝送に用いるシリアルクロック信号を伝送するためのバスである。SDA32は、同じくデータ信号を伝送するためのバスである。これらのバスは、双方向でデジタルデータの伝送が可能である。
また、I2C規格では通信を開始するデバイスがマスタとなり、通信先として選択されたデバイスがスレーブとなって同時に1対1で通信を行う。本実施形態では、マイクロコンピュータ10がマスタ、EEPROM20がスレーブとなり、マイクロコンピュータ10のCPU101が通信を制御する。
The SCL 31 is a bus for transmitting a serial clock signal used for I2C standard data transmission. The SDA 32 is also a bus for transmitting data signals. These buses are capable of transmitting digital data in both directions.
In the I2C standard, a device that starts communication is a master, and a device selected as a communication destination is a slave that simultaneously performs one-to-one communication. In the present embodiment, the microcomputer 10 is a master and the EEPROM 20 is a slave, and the CPU 101 of the microcomputer 10 controls communication.

以上の情報処理装置Aにおいて特徴的な点の一つは、マイクロコンピュータ10からEEPROM20へ書込命令の伝送に関するエラー検出のための処理である。そこで、以後この点について説明するが、その前に、この伝送に関して発生し得るエラーについて、図2及び図3を用いて説明する。   One of the characteristic features of the information processing apparatus A described above is processing for error detection related to transmission of a write command from the microcomputer 10 to the EEPROM 20. Therefore, this point will be described below, but before that, errors that may occur regarding this transmission will be described with reference to FIGS.

図2は、デジタルデータの伝送におけるエラーの発生について説明するための図である。図3は、書き込み命令の伝送時に発生し得るエラーの種類について説明する図である。   FIG. 2 is a diagram for explaining the occurrence of an error in digital data transmission. FIG. 3 is a diagram illustrating the types of errors that can occur during transmission of a write command.

情報処理装置Aにおいて、上記の書込命令はデジタルデータとして伝送するが、この伝送においてエラーが発生する場合の要因としては、伝送信号にノイズが混入してしまう場合が挙げられる。但し、全てのノイズがエラーの要因となるわけではなく、スレッショルドレベルを越えたノイズが発生した場合が問題となる。   In the information processing apparatus A, the above write command is transmitted as digital data. As a cause of an error occurring in this transmission, there is a case where noise is mixed in the transmission signal. However, not all noise causes an error, and a problem occurs when noise exceeding the threshold level occurs.

CPU101からEEPROM20に対してI2C規格に従いSCL31及びSDA32を用いてデジタルデータを伝送する場合、CPU101は、SCL31にクロック信号を送出し、SDA32にデータ信号を送出する。   When digital data is transmitted from the CPU 101 to the EEPROM 20 using the SCL 31 and SDA 32 according to the I2C standard, the CPU 101 sends a clock signal to the SCL 31 and sends a data signal to the SDA 32.

そして、EEPROM20は、クロック信号の立ち上がり時のSDA32のデータ信号の値を、受信したデータとして取得する。伝送信号へのノイズの混入が問題となるのは、このSCL31のクロック信号の立ち上がりの時にスレッショルドレベルを越えたノイズが混入した場合である。   Then, the EEPROM 20 acquires the value of the data signal of the SDA 32 at the rising edge of the clock signal as the received data. The mixing of noise into the transmission signal becomes a problem when noise exceeding the threshold level is mixed at the rising edge of the clock signal of the SCL 31.

図2に示す信号例では、CPU101は「001100・・・」の信号を送信している。すなわち、p201乃至p206の、SCL31で伝送するクロックの立ち上がり時に、SDA32で伝送するデータ信号が「0(Low)」あるいは「1(High)」となるように、データ信号を送出する。   In the signal example shown in FIG. 2, the CPU 101 transmits a signal “001100...”. That is, the data signal is transmitted so that the data signal transmitted by the SDA 32 becomes “0 (Low)” or “1 (High)” at the rising edge of the clock transmitted by the SCL 31 from p201 to p206.

そして、図2の例では、p201乃至p206のうち、p201、p202、p203、およびp205のタイミングではノイズが混入されていないため、正しくデータが伝送されている。
また、p207及びp208でノイズが混入しているが、EEPROM20は、SCL31の立ち上がり時の信号を受信するのであるから、これらのノイズはデジタル伝送された信号値には何ら影響を及ぼさない。
In the example of FIG. 2, since no noise is mixed in at timings p201, p202, p203, and p205 among p201 to p206, data is correctly transmitted.
Although noise is mixed at p207 and p208, since the EEPROM 20 receives the signal at the rise of the SCL 31, these noises have no influence on the digitally transmitted signal value.

一方、p204およびp206のタイミングでは、SCL31の立ち上がり時にノイズが混入し、且つそのノイズがスレッショルドレベルを越えている。したがって、ノイズがデータ信号に影響を及ぼしてしまい、データが正しく伝送されない。EEPROM20はp204のタイミングでは「1」を「0」として取得してしまい、p206のタイミングでは「0」を「1」として取得してしまう。   On the other hand, at the timing of p204 and p206, noise is mixed when the SCL 31 rises, and the noise exceeds the threshold level. Therefore, noise affects the data signal, and data is not transmitted correctly. The EEPROM 20 acquires “1” as “0” at the timing of p204, and acquires “0” as “1” at the timing of p206.

このため、EEPROM20は、受信したデータは「001001・・・」であると判断することになる。4番目のビットと6番目のビットが、CPU101が送信したデータと異なってしまっている。これが、デジタルデータの伝送におけるエラー発生の原因である。   For this reason, the EEPROM 20 determines that the received data is “001001...”. The fourth bit and the sixth bit are different from the data transmitted by the CPU 101. This is the cause of errors in digital data transmission.

ところで、CPU101からEEPROM20へデータの書き込みを行う場合は、例えば、まずCPU101が内部バス103を介してSRAM102にアクセスし、SRAM102に一時的に記憶されている書込対象データを取得する。   Incidentally, when data is written from the CPU 101 to the EEPROM 20, for example, the CPU 101 first accesses the SRAM 102 via the internal bus 103, and acquires write target data temporarily stored in the SRAM 102.

次に、CPU101はEEPROM20に対し、書込先アドレスを指定して、その書込対象データを書き込むように、書込命令を出す。この書込命令には、書込先アドレスと書込対象データの情報が含まれる。EEPROM20は、受信した書込命令に従って、CPU101が指定したアドレスに書込対象データを書き込む。   Next, the CPU 101 designates a write destination address to the EEPROM 20 and issues a write command to write the write target data. This write command includes information of a write destination address and write target data. The EEPROM 20 writes the write target data at the address designated by the CPU 101 in accordance with the received write command.

図3の例では、CPU101がEEPROM20に対して、書込先アドレス「0x02」及び書込対象データ「0x11」を含む書込命令を送信する。この書込命令が正常に行われた状態が、状態301である。   In the example of FIG. 3, the CPU 101 transmits a write command including a write destination address “0x02” and write target data “0x11” to the EEPROM 20. A state 301 in which the write command is normally performed is state 301.

しかし、書込命令の伝送時に図2を用いて説明したようなエラーが発生することがある。書込命令に含まれる書込先アドレスの伝送にエラーが発生して、すなわちアドレスエラーが発生して、書込命令に含まれる書込先アドレスと異なるアドレス「0x00」に書込対象データ「0x11」が書き込まれてしまった状態が、状態302である。   However, an error as described with reference to FIG. 2 may occur when a write command is transmitted. An error occurs in transmission of the write destination address included in the write command, that is, an address error occurs, and the write target data “0x11” is generated at an address “0x00” different from the write destination address included in the write command. The state 302 has been written is the state 302.

一方、書込命令に含まれる書込対象データの伝送にエラーが発生して、すなわちデータエラーが発生して、書込命令に含まれる書込対象データと異なるデータ「0x00」が書込先アドレス「0x02」に書き込まれてしまった状態が、状態303である。   On the other hand, an error occurs in transmission of the write target data included in the write command, that is, a data error occurs, and data “0x00” different from the write target data included in the write command is the write destination address. The state 303 has been written to “0x02”.

こうしたエラーの発生は、背景技術の項で説明したように、CPU101が、EEPROM20に書込命令を出した後で、その書込先アドレスと同じアドレスを読出先アドレスとして指定した読出命令をEEPROM20に送信することにより、一応検出することができる。   As described in the background art section, such an error occurs when the CPU 101 issues a write command to the EEPROM 20 and then sends a read command in which the same address as the write destination address is designated as the read destination address to the EEPROM 20. By transmitting, it can be detected once.

すなわち、書込命令に含まれる書込対象データと、読出命令に応じて送信される読み出したデータとが一致すれば、エラーは発生していないと判定できる。一方、両データが一致しなかった場合は、エラーが発生していることになる。   That is, if the write target data included in the write command matches the read data transmitted in response to the read command, it can be determined that no error has occurred. On the other hand, if the two data do not match, an error has occurred.

図3の例において、エラーの発生していない状態301では、書込命令に含まれる書込先アドレスである「0x02」から読み出されるデータ「0x11」は、書込命令に含まれる書込対象データと一致する。しかし、エラーの発生している状態302及び303では、同じアドレスから読み出したデータは「0xd5」及び「0x10」であり、いずれも書込命令に含まれる書込対象データと一致しない。   In the example of FIG. 3, in the state 301 in which no error has occurred, the data “0x11” read from the write destination address “0x02” included in the write command is the write target data included in the write command. Matches. However, in the states 302 and 303 in which an error has occurred, the data read from the same address is “0xd5” and “0x10”, which do not match the write target data included in the write command.

このエラー検出方法では、データ不一致の場合はエラーであると判定することができ、アドレスエラーとデータエラーのどちらが発生しても、また、エラーが複数ビット又は複数バイトに及んでも、正常に書き込みが行われなかったことを検出できる。しかし、書込命令で要求したアドレスとは異なるアドレスにデータが書き込まれたことによるデータ不一致なのか(アドレスエラー)、データが書き込まれたアドレスは正しいが、書き込まれたデータが書込命令で要求したデータと異なることによるデータ不一致なのか(データエラー)は判別できない。   In this error detection method, if there is a data mismatch, it can be determined that there is an error, and even if an address error or a data error occurs, even if the error reaches multiple bits or multiple bytes, writing is successful. Can be detected. However, whether the data does not match because the data was written to an address different from the address requested by the write command (address error) or the address where the data was written is correct, but the written data is requested by the write command. It is not possible to determine whether the data does not match due to the difference from the data (data error).

次に、図4に、アドレスエラー及びデータエラーの訂正処理の概要を示す。
図4に示すのは、図3に示した状態302,303において発生しているエラーの訂正処理である。
Next, FIG. 4 shows an outline of address error and data error correction processing.
FIG. 4 shows a process for correcting an error occurring in the states 302 and 303 shown in FIG.

まず、状態303のデータエラーの場合は、正常に書き込みの行われなかった書込命令と同じ命令をEEPROM20に送信して、再度同じ書込先アドレス「0x02」に同じ書込対象データ「0x11」の書き込みを行わせればよい。状態402はその書き込みが正常に行われた状態である。データエラーが発生した場合は、このように容易に訂正が完了する。   First, in the case of a data error in the state 303, the same command as the write command that was not normally written is transmitted to the EEPROM 20, and the same write target data “0x11” is again transmitted to the same write destination address “0x02”. Should be written. A state 402 is a state in which the writing is normally performed. When a data error occurs, correction is easily completed in this way.

一方、状態302のアドレスエラーの場合にも、同様に同じ書込先アドレスへの書き込みを行う。状態401はこの書き込みが正しく行われた場合であるが、依然として、最初に行った書込命令に含まれる書込先アドレスと異なるアドレス「0x00」に書込対象データ「0x11」が書き込まれた状態にある。   On the other hand, even in the case of an address error in the state 302, writing to the same write destination address is performed in the same manner. The state 401 is a case where this writing has been performed correctly, but the write target data “0x11” is still written to an address “0x00” that is different from the write destination address included in the first write instruction. It is in.

そこで、状態403のように、アドレス「0x00」に書き込まれているデータ「0x11」を、元のデータ「0x2b」に訂正する処理が必要となる。ここで、そもそも、CPU101は書込命令に含まれる書込対象データが書き込まれたアドレス(書込命令における書込先アドレスとは異なるアドレス)を検出できていないので、まず、その書き込まれたアドレスを探索する必要がある。しかし、アドレスエラーが発生した時点では、その書き込まれたアドレスの候補はEEPROM20の全アドレスであり、その特定には膨大な時間が必要となる。   Therefore, as in the state 403, it is necessary to correct the data “0x11” written in the address “0x00” to the original data “0x2b”. Here, in the first place, since the CPU 101 has not been able to detect the address at which the write target data included in the write command is written (an address different from the write destination address in the write command), first, the written address Need to explore. However, when an address error occurs, the written address candidates are all the addresses of the EEPROM 20, and enormous time is required to specify them.

このように、アドレスエラーの訂正処理は、データエラーの訂正処理に比べて非常に時間がかかるものである。しかし、図3のエラー検出方法では、上述のようにアドレスエラーとデータエラーの区別ができない。従って、エラーが発生すると、アドレスエラーが発生していない場合であっても、アドレスエラー訂正処理を行うことになり、訂正処理に非常に時間がかかる。   As described above, the address error correction process takes much longer time than the data error correction process. However, the error detection method of FIG. 3 cannot distinguish between an address error and a data error as described above. Therefore, when an error occurs, even if no address error has occurred, an address error correction process is performed, and the correction process takes a very long time.

そこで、本実施形態の情報処理装置Aにおいては、上述したアドレスエラーとデータエラーを区別可能なエラー検出方法を実行するようにした。これにより、処理負荷の高いアドレスエラーの訂正処理は、アドレスエラーが発生した場合のみ行えばよく、データエラーが発生した場合はデータエラーの訂正処理を行えばよいことになる。以下、このエラー検出方法の手順を図5乃至図7を用いて説明する。なお、以下に説明する手順は、この発明のエラー検出方法の実施形態である。   Therefore, in the information processing apparatus A of the present embodiment, the error detection method capable of distinguishing the address error and the data error described above is executed. As a result, the correction processing of the address error with a high processing load may be performed only when an address error occurs, and the data error correction processing may be performed when a data error occurs. Hereinafter, the procedure of this error detection method will be described with reference to FIGS. The procedure described below is an embodiment of the error detection method of the present invention.

まず図5に、CPU101が起動時に実行する処理のフローチャートを示す。
CPU101は、情報処理装置Aの電源がONされたり、リセットされたりして、情報処理装置Aの起動を行う場合に、図5のフローチャートに示す処理を開始する。
First, FIG. 5 shows a flowchart of processing executed by the CPU 101 at startup.
The CPU 101 starts the processing shown in the flowchart of FIG. 5 when the information processing apparatus A is started by turning on or resetting the information processing apparatus A.

図5の処理において、CPU101はまず、情報処理装置Aの制御に用いるシステムの起動に必要な処理を行う(S601)。その後、EEPROM20から所定のアドレスに記憶されているデータを読み出し(S602)、読み出したデータをSRAM102に記憶させて(S603)、処理を終了する。これらのステップS602、S603の処理はデータ保持手順の処理であり、これらの処理においてCPU101がデータ保持手段として機能する。   In the process of FIG. 5, the CPU 101 first performs a process necessary for starting the system used for controlling the information processing apparatus A (S601). Thereafter, the data stored at a predetermined address is read from the EEPROM 20 (S602), the read data is stored in the SRAM 102 (S603), and the process is terminated. The processing of these steps S602 and S603 is processing of a data holding procedure, and the CPU 101 functions as data holding means in these processing.

なお、ステップS602で読み出すデータの範囲は、EEPROM20に記憶されているデータのうち、少なくとも情報処理装置Aの動作中に書き込み対象となり得ることが想定されるアドレス範囲のデータである。最低限この範囲のデータを読み出しておけば、後述する図6のステップS704の比較を問題なく行うことができるし、読み出すべきデータの量を減らせれば、処理時間の短縮につながる。しかし、書き込み範囲を特に意識せずに全データを読み出すことも妨げられない。
また、起動時にステップS602の処理を行うこととしたのは、システム起動時はモータ等のノイズの原因となり得る要素を有する機器がまだ稼動していないことが多いので、信号に比較的ノイズが混入しにくいからである。ここでシステム起動時とは、電源をONした時だけではなく、リセット後の再起動も含まれる。
Note that the range of data read in step S602 is data in an address range that is assumed to be a writing target at least during the operation of the information processing apparatus A among the data stored in the EEPROM 20. If data in this range is read at a minimum, the comparison in step S704 in FIG. 6 described later can be performed without any problem, and if the amount of data to be read can be reduced, the processing time can be shortened. However, it is not hindered to read all data without paying particular attention to the writing range.
In addition, the reason why the processing of step S602 is performed at the time of starting is that, when the system is started up, devices having elements that may cause noise such as motors are often not operating yet, so relatively noise is mixed in the signal. Because it is difficult to do. Here, the time of system startup includes not only when the power is turned on but also restart after reset.

また、ステップS603でのSRAM102へのデータの記憶は、起動時に一度行えばよい。その後は、図6を用いて後述するように、EEPROM20とSRAM102の内容を一致させるために、EEPROM20の内容を書き換える度にこれに合わせてSRAM102の内容を書き換える。しかし、適当なタイミングでステップS602及びS603の処理を再度実行したり、EEPROM20のうちステップS602で読み出しを行わなかった領域に書き込みを行おうとしたタイミングで新たな領域についてステップS602及びS603の処理を実行したりすることも妨げられない。ただし、この場合も、情報処理装置Aが、上述のようにノイズが混入しにくいと考えられる動作状態にある時にこの処理を実行することが望ましい。   Further, data storage in the SRAM 102 in step S603 may be performed once at the time of activation. Thereafter, as will be described later with reference to FIG. 6, in order to make the contents of the EEPROM 20 and the SRAM 102 coincide with each other, the contents of the SRAM 102 are rewritten in accordance with each rewriting of the contents of the EEPROM 20. However, the processing of steps S602 and S603 is executed again at an appropriate timing, or the processing of steps S602 and S603 is executed for a new region at the timing of writing to the region of the EEPROM 20 that has not been read at step S602. It is not hindered to do. However, in this case as well, it is desirable to execute this processing when the information processing apparatus A is in an operation state in which noise is unlikely to be mixed as described above.

次に、図6に、CPU101がEEPROM20へのデータ書き込み時に実行する処理のフローチャートを示す。
CPU101は、EEPROM20へのデータ書き込みを行う場合に、図6のフローチャートに示す処理を開始する。この処理の開始時には、書込先アドレスと書込対象データは特定されているとする。また、ここでは1アドレスへの書き込みを行う毎に図6の処理を実行するものとするが、複数アドレス分まとめて同様の処理を実行する構成も妨げられない。
Next, FIG. 6 shows a flowchart of processing executed by the CPU 101 when data is written to the EEPROM 20.
The CPU 101 starts the process shown in the flowchart of FIG. 6 when writing data to the EEPROM 20. It is assumed that the write destination address and the write target data are specified at the start of this process. In addition, here, the processing of FIG. 6 is executed every time writing to one address is performed, but the configuration in which the same processing is executed collectively for a plurality of addresses is not hindered.

図6の処理において、CPU101はまず、EEPROM20に対して、書込先アドレス及び書込対象データを含む書込命令を送信する(S701)。EEPROM20は、この書込命令に応じて、自身の記憶領域のうち書込命令の要求に応じて、書込命令に含まれる書込先アドレスに書込対象データを書き込む。しかし、この時点では、書込命令の伝送にエラーが生じ、書き込みが、CPU101が送信した命令通りに行われていない可能性がある。以上のステップS701の処理が、書込手順の処理であり、この処理においてCPU101が書込手段として機能する。   In the process of FIG. 6, the CPU 101 first transmits a write command including a write destination address and write target data to the EEPROM 20 (S701). In response to this write command, the EEPROM 20 writes the write target data to the write destination address included in the write command in response to a request for the write command in its own storage area. However, at this time, an error may occur in the transmission of the write command, and the writing may not be performed according to the command transmitted by the CPU 101. The process in step S701 described above is the process of the writing procedure, and the CPU 101 functions as a writing unit in this process.

次に、CPU101は、ステップS701で書込先アドレスとして送信したアドレスに記憶されているデータを読み出すことを命令する(その書込先アドレスを読出先アドレスとして指定した)読出命令をEEPROM20に送信する(S702)。EEPROM20は、この読出命令に応じて、自身の記憶領域のうち読出先アドレスに記憶しているデータを読み出して、CPU101に送信する。以上のステップS702の処理が、読出手順の処理であり、この処理においてCPU101が読出手段として機能する。
次に、CPU101は、ステップS701でEEPROM20に送信した書込対象データとステップS702で読み出したデータとが一致するか否かを比較する(S703)。この処理は第1比較手順の処理であり、この処理においてCPU101が第1比較手段として機能する。
Next, CPU 101 transmits a read command to EEPROM 20 that instructs reading of data stored in the address transmitted as the write destination address in step S701 (designating the write destination address as the read destination address). (S702). In response to this read command, the EEPROM 20 reads the data stored in the read destination address in its own storage area and transmits it to the CPU 101. The processing in step S702 described above is the reading procedure, and the CPU 101 functions as a reading unit in this processing.
Next, the CPU 101 compares whether the write target data transmitted to the EEPROM 20 in step S701 matches the data read in step S702 (S703). This process is a process of the first comparison procedure. In this process, the CPU 101 functions as a first comparison unit.

ステップS703の比較の結果、両データが一致していた場合、ステップS701で送信した書込命令に従った書き込みは正しく行われたと考えられる。そこで、CPU101は、書き込みに関する処理を終了するとともに、SRAM102に記憶させてあるデータを、EEPROM20が記憶するデータの変更に合わせて更新する(S709)。   As a result of the comparison in step S703, if the two data match, it is considered that the writing according to the writing command transmitted in step S701 was correctly performed. Therefore, the CPU 101 ends the processing related to writing and updates the data stored in the SRAM 102 in accordance with the change of the data stored in the EEPROM 20 (S709).

具体的には、SRAM102の、ステップS701で送信した書込先アドレスと対応するアドレスのデータを、ステップS701で送信した書込対象データ(又は読出命令に従って読み出したデータ)に書き換える。以上の更新により、EEPROM20のデータの内容を変更した場合でも、EEPROM20のデータとSRAM102のデータが一致する状態を保つことができる。   Specifically, the data at the address corresponding to the write destination address transmitted at step S701 in the SRAM 102 is rewritten to the write target data (or data read according to the read command) transmitted at step S701. With the above update, even when the data content of the EEPROM 20 is changed, the data in the EEPROM 20 and the data in the SRAM 102 can be kept in agreement.

そして、次回行う図6の処理においても、SRAM102のデータを、後述するステップS704の比較に用いることができる。
以上のステップS709の処理が、更新手順の処理であり、この処理においてCPU101が更新手段として機能する。また、ステップS709までで、図6のフローチャートに示す処理は終了する。
In the next process of FIG. 6 as well, the data in the SRAM 102 can be used for comparison in step S704 described later.
The process in step S709 described above is an update procedure process, and the CPU 101 functions as an update unit in this process. Further, the processing shown in the flowchart of FIG. 6 is ended up to step S709.

一方、ステップS702で読み出したデータとステップS701で送信した書込対象データとが不一致であった場合、データの書き込みに何らかのエラーが発生したと考えられる。しかし、この段階ではまだデータエラーが発生したかアドレスエラーが発生したかが不明である。   On the other hand, if the data read in step S702 and the write target data transmitted in step S701 do not match, it is considered that some error has occurred in the data writing. However, at this stage, it is unknown whether a data error or an address error has occurred.

そこでこの場合(S703のNO)、CPU101は、ステップS702で読み出したデータと、ステップS603でSRAM102に記憶させたデータのうちステップS701で送信した書込先アドレスに対応するアドレスに記憶されているデータとを比較する(S704)。なお、後者のデータは、ステップS602においてEEPROM20の該書込先アドレスから読み出してSRAM102に記憶させたデータ、あるいはこのデータをステップS708で更新した更新後のデータである。この処理は第2比較手順の処理であり、この処理においてCPU101が第2比較手段として機能する。   Therefore, in this case (NO in S703), the CPU 101 stores the data read in step S702 and the data stored in the address corresponding to the write destination address transmitted in step S701 among the data stored in the SRAM 102 in step S603. Are compared (S704). The latter data is the data read from the write destination address of the EEPROM 20 in step S602 and stored in the SRAM 102, or the updated data obtained by updating this data in step S708. This process is a process of the second comparison procedure. In this process, the CPU 101 functions as a second comparison unit.

この比較においてデータが一致した場合(S704のYES)は、EEPROM20における書込命令時の書込先アドレスのデータは、書き込み実行前と変わっていないことになるので、正しいアドレスに書き込みが行われなかったことがわかる。そこで、CPU101はアドレスエラーが発生したと判定し(S705)、アドレスエラー訂正の処理を行う(S706)。アドレスエラー訂正の処理については、図4を用いて説明したものをはじめ、適宜公知の処理を適用すればよい。   If the data match in this comparison (YES in S704), the data at the write destination address at the time of the write command in the EEPROM 20 is not changed from that before the execution of the write, so that the write to the correct address is not performed. I understand that. Therefore, the CPU 101 determines that an address error has occurred (S705), and performs an address error correction process (S706). As the address error correction process, a known process may be applied as appropriate, including the one described with reference to FIG.

一方、ステップS704で不一致の場合(S704のNO)は、EEPROM20において書込命令時の書込先アドレスのデータの書き換え自体はされていると判断できる。従って、ステップS703の比較結果と合わせると、ステップS701で送信した書込対象データが異なってしまったということになる。そこで、CPU101はデータエラーが発生したと判定(S707)し、データエラーの訂正処理を行う(S708)。データエラー訂正の処理についても、図4を用いて説明したものをはじめ、適宜公知の処理を適用すればよい。このステップS704、S705、S707の手順がアドレスエラーとデータエラーとを切り分けてエラーを検出する判定手順の処理であり、この処理においてCPU101が判定手段として機能する。   On the other hand, if they do not match in step S704 (NO in S704), it can be determined that the data in the write destination address at the time of the write command has been rewritten in the EEPROM 20 itself. Therefore, when combined with the comparison result in step S703, the write target data transmitted in step S701 is different. Therefore, the CPU 101 determines that a data error has occurred (S707), and performs a data error correction process (S708). As for the data error correction process, a known process may be applied as appropriate, including the one described with reference to FIG. The procedure of steps S704, S705, and S707 is a determination procedure process for detecting an error by separating an address error and a data error. In this process, the CPU 101 functions as a determination unit.

なお、詳細な図示は省略したが、ステップS706又はS708のエラー訂正処理は、図4を用いて説明したように、正しい書込先アドレスに正しい書込対象データ(書込命令に含まれる書込先アドレスと書込対象データ)を書き込む処理を含む。そして、この処理の最後では、書き込みが正しく行われたことを、ステップS702乃至S704と同様な手順により確認する。そして、ステップS706又はS708の後も、ステップS703でYesだった場合と同様、CPU101は、SRAM102に記憶させてあるデータの更新を行って(S709)、処理を終了する。   Although detailed illustration is omitted, as described with reference to FIG. 4, the error correction processing in step S706 or S708 is performed at the correct write destination address (the write data included in the write command). Including a destination address and data to be written). At the end of this process, it is confirmed by the same procedure as in steps S702 to S704 that the writing has been performed correctly. After step S706 or S708, as in the case of Yes in step S703, the CPU 101 updates the data stored in the SRAM 102 (S709) and ends the process.

ここで、図7を用いて、図6の処理によるエラー検出の具体例について説明する。
CPU101は、図6の処理を行うに先立ち、情報処理装置Aの起動時に図5のステップS601乃至S603の処理を実行し、EEPROM20に記憶されているデータを読み出してSRAM102に記憶させておく。
Here, a specific example of error detection by the processing of FIG. 6 will be described with reference to FIG.
Prior to performing the processing in FIG. 6, the CPU 101 executes the processing in steps S <b> 601 to S <b> 603 in FIG. 5 when the information processing apparatus A is activated, reads out the data stored in the EEPROM 20, and stores it in the SRAM 102.

その後、CPU101がアプリケーションプログラム等に従い動作する際に、EEPROM20へデータの書き込みを行う必要が生じるとする。この場合、今回書き込みを予定している書込対象データ「0x11」は、SRAM102に記憶され、書込対象アドレス(ここでは「0x02」とする)も決定されている。   Thereafter, when the CPU 101 operates in accordance with an application program or the like, it is necessary to write data to the EEPROM 20. In this case, the write target data “0x11” scheduled to be written this time is stored in the SRAM 102, and the write target address (here, “0x02”) is also determined.

そして、CPU101は、図6のステップS701で、書込先アドレス「0x02」に書込対象データ「0x11」を書き込むよう指示する書込命令を、EEPROM20に送信する。
そして、この書込命令の伝送時にアドレスエラーが生じ、書込命令に含まれる書込先アドレス「0x02」とは異なるアドレス「0x00」に書込対象データ「0x11」が書き込まれたのが状態302である(この点は図3の例と同じ)。
Then, the CPU 101 transmits a write command for instructing to write the write target data “0x11” to the write destination address “0x02” to the EEPROM 20 in step S701 in FIG.
Then, an address error occurs during transmission of the write command, and the write target data “0x11” is written to the address “0x00” different from the write destination address “0x02” included in the write command in state 302. (This is the same as the example of FIG. 3).

この状態において、CPU101がステップS702でEEPROM20に書込命令に含まれる書込先アドレス「0x02」のデータの読出命令を送信すると、EEPROM20からは、「0xd5」のデータが返される。そして、CPU101はステップS703で、この「0xd5」とステップS701で送信した書込命令に含まれる書込対象データ「0x11」とを比較する。ここでは、不一致であるので、CPU101はエラーの発生を検出する。   In this state, when the CPU 101 transmits a read command of data at the write destination address “0x02” included in the write command to the EEPROM 20 in step S702, the data of “0xd5” is returned from the EEPROM 20. In step S703, the CPU 101 compares this “0xd5” with the write target data “0x11” included in the write command transmitted in step S701. Here, since there is a mismatch, the CPU 101 detects the occurrence of an error.

次に、CPU101は、ステップS704で、読み出したデータ「0xd5」と、SRAM102に記憶しておいたデータのうちステップS701の書込命令に含まれる書込先アドレス「0x02」に対応するアドレス(図では太枠で示す)のデータ「0xd5」とを比較する。   Next, in step S704, the CPU 101 reads out the data “0xd5” and the address corresponding to the write destination address “0x02” included in the write instruction in step S701 among the data stored in the SRAM 102 (FIG. The data “0xd5” in FIG.

ここでは、両データは一致するので、書込命令を出した時にEEPROM20の書込先アドレスに記憶されていたデータは、書込命令の送信後も書き換えられていないことになる。従って、書き込みはステップS701で送信した書込命令に含まれる書込先アドレスとは異なるアドレスに対して行われたということになり、CPU101は、アドレスエラーが発生したと判定する(S705)。そこで、CPU101はステップS706のアドレスエラー訂正処理を行い、訂正後にSRAM102に記憶されているデータを更新する(S709)。   Here, since both data match, the data stored in the write destination address of the EEPROM 20 when the write command is issued is not rewritten even after the write command is transmitted. Therefore, the writing is performed to an address different from the write destination address included in the write command transmitted in step S701, and the CPU 101 determines that an address error has occurred (S705). Therefore, the CPU 101 performs the address error correction process in step S706, and updates the data stored in the SRAM 102 after the correction (S709).

一方、ステップS701の書込命令の伝送時にアドレスエラーが生じ、書込命令に含まれる書込先アドレス「0x02」に指定した書込対象データ「0x11」と異なるデータ「0x10」が書き込まれたのが状態303である(この点は図3の例と同じ)。   On the other hand, an address error occurred during transmission of the write command in step S701, and data “0x10” different from the write target data “0x11” specified in the write destination address “0x02” included in the write command was written. Is the state 303 (this is the same as the example of FIG. 3).

この状態において、ステップS702で、CPU101がEEPROM20に対し、ステップS701で送信された書込命令に含まれる書込先アドレス「0x02」のデータの読出命令を送信すると、EEPROM20からは、「0x10」のデータが返される。そして、CPU101は、ステップS703で、この「0x10」とステップS701で書込命令を出した時の書込対象データ「0x11」とを比較する。ここでも、不一致であるので、CPU101はエラーの発生を検出する。   In this state, when the CPU 101 transmits a read command of data at the write destination address “0x02” included in the write command transmitted in step S701 to the EEPROM 20 in step S702, the EEPROM 20 receives “0x10”. Data is returned. In step S703, the CPU 101 compares this “0x10” with the write target data “0x11” when the write command is issued in step S701. Again, since there is a mismatch, the CPU 101 detects the occurrence of an error.

次に、CPU101は、ステップS704で、ステップS702で読み出したデータ「0x10」と、SRAM102に記憶しておいたデータのうち書込命令時の書込先アドレス「0x02」に対応するアドレス(図では太枠で示す)のデータ「0xd5」とを比較する。   Next, in step S704, the CPU 101 reads the data “0x10” read in step S702 and the address corresponding to the write destination address “0x02” at the time of the write command out of the data stored in the SRAM 102 (in the drawing). Compared with data “0xd5” (shown by a thick frame).

ここでは、両データは不一致である。つまり、書込命令によってデータが書き込まれたアドレスは間違っていないが、書込命令における書込対象データとは異なるデータが書き込まれているということになる。このため、CPU101は、データエラーが発生したと判定する(S707)。そこで、CPU101はステップS708のデータエラー訂正処理を行い、訂正後にSRAM102に記憶されているデータを更新する(S709)。   Here, both data are inconsistent. That is, although the address where the data is written by the write command is not wrong, data different from the write target data in the write command is written. For this reason, the CPU 101 determines that a data error has occurred (S707). Therefore, the CPU 101 performs the data error correction process in step S708, and updates the data stored in the SRAM 102 after correction (S709).

以上のように、図6の処理によれば、EEPROM20のうちステップS701で行った書込命令に含まれる書込先アドレスに実際に書き込まれているデータが、書込命令に含まれる書込対象データと不一致であった場合に、これをさらに、予めSRAM102に記憶させた対応するデータと比較する。これにより、アドレスエラーとデータエラーを区別して検出することができる。   As described above, according to the processing of FIG. 6, the data actually written in the write destination address included in the write command performed in step S701 in the EEPROM 20 is the write target included in the write command. If the data does not match, it is further compared with the corresponding data stored in the SRAM 102 in advance. Thereby, an address error and a data error can be distinguished and detected.

また、この区別に要する処理は、初めにEEPROM20のデータをSRAM102にコピーしてしまえば、ステップS104での比較処理のみである。また、ステップS103でエラーの発生を検出した場合にのみ行えばよい。従って、エラー検出のために1回のデータ書き込み当たりの通信時間が大きく増加することはない。   The process required for this distinction is only the comparison process in step S104 if the data in the EEPROM 20 is first copied to the SRAM 102. Further, it may be performed only when an error is detected in step S103. Therefore, the communication time per data write for error detection does not increase greatly.

また、上記のようにアドレスエラーとデータエラーを区別できれば、処理負荷の大きいアドレスエラー訂正処理はアドレスエラーを検出した場合のみ行えばよい。データエラーを検出した場合には、書き込みの再試行と同程度のデータエラー訂正処理を行うのみでよい。従って、効率的なエラーの検出及び訂正を実現することができる。   Further, if an address error and a data error can be distinguished as described above, an address error correction process with a large processing load may be performed only when an address error is detected. When a data error is detected, it is only necessary to perform a data error correction process equivalent to the retry of writing. Therefore, efficient error detection and correction can be realized.

なお、図6及び図7の説明においては、読出命令(特に読出先アドレス)の伝送及びこれに応じて読み出したデータの伝送の際に発生するエラーは考慮していない。しかし、これを考慮したとしても、図6及び図7を用いて説明した効果は問題なく得られる。
まず、読出先アドレスあるいは読み出したデータの伝送にエラーが生じると、書込命令の伝送にエラーがなく、EEPROM20において書き込みが正しく実行された場合でも、図6のステップS703の判断がNoとなる。
In the description of FIGS. 6 and 7, errors that occur during transmission of a read command (particularly, a read destination address) and transmission of data read in accordance therewith are not considered. However, even if this is taken into consideration, the effects described with reference to FIGS. 6 and 7 can be obtained without problems.
First, when an error occurs in the transmission of the read destination address or the read data, there is no error in the transmission of the write command, and even when the writing is correctly executed in the EEPROM 20, the determination in step S703 in FIG.

しかし、たまたまこのような事態が発生したとしても、次のステップS704の判断は、基本的にはNoとなる。これがYesになるのは、エラーが混入した誤った読出先アドレスから読み出したデータあるいはエラーが混入して誤っている読み出したデータが、たまたまSRAM102の正しいデータと一致する場合に限られるためである。   However, even if such a situation occurs, the determination in the next step S704 is basically No. This is because the data read from the wrong read destination address mixed with an error or the data read erroneously mixed with an error happens to coincide with the correct data in the SRAM 102.

従って、読出命令あるいは読み出したデータの伝送の際のエラーに起因して、書込命令のデータの伝送を誤検出してしまった場合でも、それに応じて実行されるエラー訂正は、時間のかからないデータエラー訂正となる場合がほとんどである。また、このデータエラー訂正も、正しいデータを書込先アドレスに上書きする処理であるので、正しいデータが書き込まれている状態で行ってしまっても不都合はない。このため、多少の誤検出が発生しても、図6及び図7を用いて説明した効果は問題なく得られる。   Therefore, even if the transmission of the data of the write command is erroneously detected due to an error in the transmission of the read command or the read data, the error correction performed in accordance with the data is not time consuming. In most cases, error correction is performed. This data error correction is also a process of overwriting correct data on the write destination address, so there is no inconvenience even if it is performed while correct data is written. Therefore, even if some erroneous detection occurs, the effect described with reference to FIGS. 6 and 7 can be obtained without any problem.

なお、読出命令(及び読み出したデータ)の伝送と、書込命令の伝送の双方にエラーが発生することは、一般のデータ伝送におけるエラー頻度から考えてごく希である。したがって、この場合については考慮しなくても、一般的には、装置の動作として特段の問題はない。   It is rare that an error occurs in both transmission of a read command (and read data) and transmission of a write command in view of error frequency in general data transmission. Therefore, even if this case is not taken into consideration, there is generally no particular problem with the operation of the apparatus.

特に誤検出を低減したい場合、読出命令について、2度同じ命令を送信して、両者の読み出し結果が一致した場合にエラーがないとして次の処理に進む、といった対応も考えられる。しかし、通信時間を考慮するとこのような対応は必ずしも望ましいとは言えず、特に誤検出の確率を低減したい場合のみ採用すればよいと考えられる。   In particular, when it is desired to reduce false detections, it is possible to consider a case in which the same instruction is transmitted twice for the read instruction, and when both read results match, there is no error and the process proceeds to the next process. However, considering the communication time, such a response is not necessarily desirable, and it is considered that it should be adopted only when it is particularly desired to reduce the probability of erroneous detection.

以上で実施形態の説明を終了するが、この発明において、装置の具体的な構成、回路や素子の構成、具体的な処理の手順、データの記憶形式等は、実施形態で説明したものに限るものではない。   This is the end of the description of the embodiment. In the present invention, the specific configuration of the apparatus, the configuration of circuits and elements, the specific processing procedure, the data storage format, and the like are limited to those described in the embodiment. It is not a thing.

例えば、上述した実施形態ではCPU101とEEPROM20との間の通信(デジタル伝送)にI2C規格の外部バスを使用しているが、これに限定されるものではなく、他の規格のバスであってもよい。また、伝送経路が2本の通信方式に限られるものでもない。更に、SRAM102、EEPROM20についても、これらに限られるものではなく、他のメモリであってもかまわない。   For example, in the above-described embodiment, the external bus of the I2C standard is used for communication (digital transmission) between the CPU 101 and the EEPROM 20, but the present invention is not limited to this, and a bus of another standard may be used. Good. Further, the transmission path is not limited to two communication methods. Further, the SRAM 102 and the EEPROM 20 are not limited to these, and other memories may be used.

また、エラー検出装置が、図5乃至図7を用いて説明したデータの読み書き及びエラー検出以外の機能を併せ持つものでよいことはもちろんである。例えば、コピー、プリント、スキャン、ファクシミリ通信、画像蓄積等の機能のうち任意のものを備えた画像処理装置において、その制御部が図5乃至図7を用いて説明したデータの読み書き及びエラー検出の機能を備えるものも、この発明のエラー検出装置の実施形態である。   Of course, the error detection device may have functions other than the data reading / writing and error detection described with reference to FIGS. For example, in an image processing apparatus having any one of functions such as copying, printing, scanning, facsimile communication, and image storage, the control unit performs data reading / writing and error detection described with reference to FIGS. What has a function is also an embodiment of the error detection apparatus of the present invention.

また、この発明を、このような画像処理装置として実施することができる。画像処理装置以外でも、CPU等の制御部がメモリに対してデータ書き込みを行う任意の電子装置に対してこの発明を適用可能である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
Further, the present invention can be implemented as such an image processing apparatus. In addition to the image processing apparatus, the present invention can be applied to any electronic apparatus in which a control unit such as a CPU writes data to a memory.
Moreover, it is needless to say that the configurations of the embodiment and the modified examples described above can be arbitrarily combined and implemented as long as they do not contradict each other.

A:情報処理装置,10:マイクロコンピュータ,101:CPU,102:SRAM,103:内部バス,20:EEPROM,31:SCL,32:SDA A: Information processing apparatus, 10: Microcomputer, 101: CPU, 102: SRAM, 103: Internal bus, 20: EEPROM, 31: SCL, 32: SDA

特開平6−303222号公報JP-A-6-303222

Claims (4)

第1メモリへのデータ書き込み時のエラーを検出するエラー検出方法であって、
前記第1メモリのうち、少なくとも書き込み対象とするアドレス範囲のデータを読み出して、前記第1メモリと異なる第2メモリに記憶させるデータ保持手順と、
前記第1メモリに対し、アドレス及び書込対象データを送信して、該アドレスに該書込対象データを書き込ませる書込手順と、
前記第1メモリから、前記書込手順で送信したアドレスに記憶されているデータを読み出す読出手順と、
前記読出手順で前記第1メモリから読み出したデータと、前記書込手順で送信した書込対象データとを比較する第1比較手順と、
前記第1比較手順での比較結果が不一致であった場合に、前記読出手順で前記第1メモリから読み出したデータと、前記保持手順で前記第2メモリに記憶させたデータのうち前記書込手順で送信したアドレスと対応するアドレスから読み出したデータとを比較する第2比較手順と、
前記第2比較手順での比較結果が一致であった場合にアドレスエラーを検出したと判定し、不一致であった場合にデータエラーを検出したと判定する判定手順とを備えることを特徴とするエラー検出方法。
An error detection method for detecting an error when writing data to a first memory,
A data holding procedure for reading at least data in an address range to be written in the first memory and storing the data in a second memory different from the first memory;
A write procedure for sending an address and write target data to the first memory, and writing the write target data to the address;
A reading procedure for reading data stored in the address transmitted in the writing procedure from the first memory;
A first comparison procedure for comparing the data read from the first memory in the read procedure with the write target data transmitted in the write procedure;
Of the data read from the first memory in the reading procedure and the data stored in the second memory in the holding procedure when the comparison result in the first comparison procedure is inconsistent, the writing procedure A second comparison procedure for comparing the address transmitted in step 1 and the data read from the corresponding address;
An error comprising: a determination procedure for determining that an address error has been detected when the comparison result in the second comparison procedure is a match, and a determination that a data error has been detected when the comparison result is a mismatch. Detection method.
請求項1に記載のエラー検出方法であって、
前記データ保持手順を、前記第1メモリ、前記第2メモリ、及び前記第1メモリへのデータ書き込みを行う制御手段を備えるシステムの起動時に実行することを特徴とするエラー検出方法。
The error detection method according to claim 1,
An error detection method, wherein the data holding procedure is executed when a system including control means for writing data to the first memory, the second memory, and the first memory is started.
請求項1又は2に記載のエラー検出方法であって、
前記第1比較手順での比較結果が一致であった場合に、前記保持手順で前記第2メモリに記憶させたデータのうち前記書込手順で送信したアドレスと対応するアドレスから読み出したデータを、前記読出手順で前記第1メモリから読み出したデータに更新する更新手順をさらに備えることを特徴とするエラー検出方法。
The error detection method according to claim 1 or 2,
When the comparison result in the first comparison procedure is coincident, the data read from the address corresponding to the address transmitted in the writing procedure among the data stored in the second memory in the holding procedure, An error detection method, further comprising an update procedure for updating the data read from the first memory in the read procedure.
第1メモリへのデータ書き込み時のエラーを検出するエラー検出装置であって、
前記第1メモリのうち、少なくとも書き込み対象とするアドレス範囲のデータを読み出して、前記第1メモリと異なる第2メモリに記憶させるデータ保持手段と、
前記第1メモリに対し、アドレス及び書込対象データを送信して、該アドレスに該書込対象データを書き込ませる書込手段と、
前記第1メモリから、前記書込手段が送信したアドレスに記憶されているデータを読み出す読出手段と、
前記読出手段が前記第1メモリから読み出したデータと、前記書込手段が送信した書込対象データとを比較する第1比較手段と、
前記第1比較手段による比較結果が不一致であった場合に、前記読出手段が前記第1メモリから読み出したデータと、前記データ保持手段が前記第2メモリに記憶させたデータのうち前記書込手段が送信したアドレスと対応するアドレスから読み出したデータとを比較する第2比較手段と、
前記第2比較手段による比較結果が一致であった場合にアドレスエラーを検出したと判定し、不一致であった場合にデータエラーを検出したと判定する判定手段とを備えることを特徴とするエラー検出装置。
An error detection device for detecting an error when writing data to a first memory,
Data holding means for reading at least data in an address range to be written in the first memory and storing the data in a second memory different from the first memory;
Writing means for transmitting an address and write target data to the first memory, and writing the write target data to the address;
Reading means for reading data stored in the address transmitted by the writing means from the first memory;
First comparison means for comparing the data read by the reading means from the first memory with the write target data transmitted by the writing means;
Of the data read from the first memory by the reading means and the data stored in the second memory by the data holding means when the comparison result by the first comparing means is inconsistent, the writing means A second comparison means for comparing the address read by the data read from the corresponding address;
An error detection comprising: determination means for determining that an address error has been detected when the comparison result by the second comparison means is coincident, and for determining that a data error has been detected if the comparison result is inconsistent apparatus.
JP2014137510A 2014-07-03 2014-07-03 Error detection method and error detection apparatus Active JP6398390B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014137510A JP6398390B2 (en) 2014-07-03 2014-07-03 Error detection method and error detection apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014137510A JP6398390B2 (en) 2014-07-03 2014-07-03 Error detection method and error detection apparatus

Publications (2)

Publication Number Publication Date
JP2016015070A true JP2016015070A (en) 2016-01-28
JP6398390B2 JP6398390B2 (en) 2018-10-03

Family

ID=55231195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014137510A Active JP6398390B2 (en) 2014-07-03 2014-07-03 Error detection method and error detection apparatus

Country Status (1)

Country Link
JP (1) JP6398390B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536306B2 (en) 2017-02-06 2020-01-14 Ricoh Company, Ltd. Ground short circuit portion detecting apparatus, ground short circuit portion detecting method, and computer-readable recording medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210071469A (en) 2019-12-06 2021-06-16 삼성전자주식회사 Memory device having fault detection functionality for increasing functional safety and control system including the same

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263394A (en) * 1995-03-28 1996-10-11 Nec Commun Syst Ltd Bus test system
JPH0916483A (en) * 1995-06-29 1997-01-17 Fujitsu Ltd Address bus testing device
JP2000322330A (en) * 1999-05-07 2000-11-24 Nec Corp Failure diagnosing circuit for storage device
JP2008090477A (en) * 2006-09-29 2008-04-17 Toshiba Corp Information recording device, information processor and write control method
JP2009277174A (en) * 2008-05-19 2009-11-26 Toshiba Corp Bus signal control circuit, and signal processing circuit equipped with bus signal control circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08263394A (en) * 1995-03-28 1996-10-11 Nec Commun Syst Ltd Bus test system
JPH0916483A (en) * 1995-06-29 1997-01-17 Fujitsu Ltd Address bus testing device
JP2000322330A (en) * 1999-05-07 2000-11-24 Nec Corp Failure diagnosing circuit for storage device
JP2008090477A (en) * 2006-09-29 2008-04-17 Toshiba Corp Information recording device, information processor and write control method
JP2009277174A (en) * 2008-05-19 2009-11-26 Toshiba Corp Bus signal control circuit, and signal processing circuit equipped with bus signal control circuit

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10536306B2 (en) 2017-02-06 2020-01-14 Ricoh Company, Ltd. Ground short circuit portion detecting apparatus, ground short circuit portion detecting method, and computer-readable recording medium

Also Published As

Publication number Publication date
JP6398390B2 (en) 2018-10-03

Similar Documents

Publication Publication Date Title
JP4840859B2 (en) Semiconductor device and startup method
US20130138871A1 (en) Flash Memory Device and Data Access Method for Same
US9449660B2 (en) Sampling circuit module, memory control circuit unit, and method for sampling data
KR20070076849A (en) Apparatus and method for accomplishing copy-back operation in memory card
US9766880B2 (en) Electronic device and method for firmware updating thereof
US20070018708A1 (en) Method and apparatus for determining optimal delay time and computer-readable storage medium storing optimal delay time determining program
JP2005242797A (en) Error correction circuit
JP6398390B2 (en) Error detection method and error detection apparatus
US20240143443A1 (en) Method and apparatus for repairing hanging in communication bus, electronic device, and storage medium
JP5751121B2 (en) Information processing apparatus, information processing method, and program
US10877837B2 (en) Method for recovering EEPROM of slave device by PLC communication module
CN111352764A (en) Chip repairing method, device, equipment and storage medium
US10546017B2 (en) Displaying terms having corresponding character strings on a display
US8438445B2 (en) Methods and systems for error detection of data transmission
JP2007299222A (en) Data update method, data update program, and information terminal apparatus using them
US9323516B2 (en) Electronic device system and electronic device
JP6524618B2 (en) Electronic device, control method and program
US11580052B2 (en) I2C communication
US10942541B1 (en) Connection interface circuit, memory storage device and signal generation method
JP2012212415A (en) Wireless base station device
JP5435647B2 (en) Computer system, memory initialization method, and program
TW201335844A (en) Controller, address selector and methods for replacing defective instructions
WO2020043361A1 (en) Installing application program code on a vehicle control system
JP2006155735A (en) Storage device
JP6618505B2 (en) Configuration data setting device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170621

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180725

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R151 Written notification of patent or utility model registration

Ref document number: 6398390

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151