KR100189550B1 - Device and method of memory data input/output - Google Patents

Device and method of memory data input/output Download PDF

Info

Publication number
KR100189550B1
KR100189550B1 KR1019960006014A KR19960006014A KR100189550B1 KR 100189550 B1 KR100189550 B1 KR 100189550B1 KR 1019960006014 A KR1019960006014 A KR 1019960006014A KR 19960006014 A KR19960006014 A KR 19960006014A KR 100189550 B1 KR100189550 B1 KR 100189550B1
Authority
KR
South Korea
Prior art keywords
data
memory
input
output
buffer
Prior art date
Application number
KR1019960006014A
Other languages
Korean (ko)
Other versions
KR970068161A (en
Inventor
김민영
Original Assignee
윤종용
삼성전자주식회사
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 윤종용, 삼성전자주식회사 filed Critical 윤종용
Priority to KR1019960006014A priority Critical patent/KR100189550B1/en
Publication of KR970068161A publication Critical patent/KR970068161A/en
Application granted granted Critical
Publication of KR100189550B1 publication Critical patent/KR100189550B1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야1. TECHNICAL FIELD OF THE INVENTION

메모리 데이타 입출력 장치 및 방법Memory data input / output device and method

2. 발명이 해결하려고 하는 기술적 과제2. The technical problem to be solved by the invention

IC의 입출력단이 여러 비트로 이루어져 있어도 한 비트 에러정정코드를 이용한 에러의 검출과 정정을 수행할 수 있게 하고, 에러 정정 부호화로 일반적인 데이타버스 폭을 가지지 못하는 경우 그 데이타버스 폭을 일반적인 데이타버스 폭으로 조정해주는 데 사용하며, 여러 비트 동시에 에러가 발생한 불량한 메모리라 하더라도 그 에러들을 적절히 분산시킴으로써 에러의 정정이 용이하도록 하여 정상적인 메모리와 거의 비슷한 수준으로 동작하게 하는 메모리 데이타 입출력 장치 및 방법을 제공한다.Even if the input / output terminal of the IC is composed of multiple bits, it is possible to detect and correct errors using one bit error correction code.If the error correction coding does not have a general data bus width, the data bus width is converted to the general data bus width. The present invention provides a memory data input / output device and a method for adjusting the error, and even if the bad memory in which an error occurs at the same time, the error is easily distributed by appropriately distributing the error so that the memory can operate at almost the same level as the normal memory.

3. 발명의 해결방법의 요지3. Summary of Solution to Invention

본 메모리 데이타 입출력 장치는, 동시에 입출력되는 데이타 단자를 두개 이상 가지는 메모리와, 소정의 행 및 열로 이루어져 상기 메모리로 데이타를 출력하거나 상기 메모리로부터 데이타를 입력하는 버퍼와, 상기 버퍼에 소정의 에러 정정코드를 행 방향으로 다수 입력한 후 열 방향으로 읽어 상기 메모리로 출력하며, 상기 메모리로부터 출력되는 데이타를 열방향으로 입력하였다가 행 방향으로 읽어 상기 버퍼로 출력하도록 제어하며, 상기 메모리에 발생한 에러를 각 에러 정정코드로써 분산시키는 동작을 제어하는 제어수단으로 구성됨을 특징으로 한다.The memory data input / output device includes a memory having two or more data terminals simultaneously input and output, a buffer consisting of predetermined rows and columns, for outputting data to or inputting data from the memory, and a predetermined error correction code in the buffer. Reads in the column direction and outputs the data to the memory after inputting a plurality of rows in the row direction, and reads the data output from the memory in the column direction and outputs the data to the buffer in the row direction. And control means for controlling the operation of distributing as an error correction code.

4. 발명의 중요한 용도4. Important uses of the invention

메모리 입출력을 제어하는 데 사용한다.Used to control memory input and output.

Description

메모리 데이타 입출력 장치 및 그 제어 방법Memory data input / output device and control method thereof

제1도는 종래의 메모리 데이타 저장 상태를 나타낸 구성도1 is a block diagram showing a conventional memory data storage state

제2도는 본 발명에 따라 메모리 입출단에 부가하는 m행 × n열 버퍼의 구성도2 is a block diagram of an m-row x n-column buffer added to a memory entry and exit in accordance with the present invention.

제3도는 입출력 단자가 소자당 4비트씩 메모리의 경우 데이타가 각 소자에 저장되어 있는 상태를 나타낸 도면3 is a diagram showing a state in which data is stored in each device when the input / output terminal is 4 bits per device.

제4도는 본 발명에 따른 버퍼를 구성하는 임의의 한 셀 및 그 주변회로의 구성도.4 is a schematic diagram of any one cell and peripheral circuit of the buffer according to the present invention.

제5도는 본 발명에 따라 해밍 부호어를 버퍼를 통하여 보조메모리에 입력시키는 과정을 나타낸 흐름도5 is a flowchart illustrating a process of inputting a hamming codeword to an auxiliary memory through a buffer according to the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

FF : 디플립플롭 G1, G2 : 앤드게이트FF: Deflip-flop G1, G2: Endgate

G3, G4 : 오아게이트 BF1, BF2 : 버퍼G3, G4: Oagate BF1, BF2: Buffer

본 발명은 반도체 메모리 소자에 데이타를 입출력하는 장치 및 그 제어 방법에 관한 것으로, 특히 에러 검출 및 수정을 위해 에러 정정코드를 부가한 데이타를 입출력하는 장치 및 그 제어 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an apparatus for inputting and outputting data to and from a semiconductor memory device, and more particularly, to an apparatus for inputting and outputting data to which an error correction code is added for error detection and correction, and a control method thereof.

일반적으로 디지탈 데이타를 저장할 수 있는 반도체 메모리 소자는 그 기능에 따라 디램(DRAM), 에스램(SRAM), 롬(ROM), 플래쉬(flash) 메모리 등 여러 종류가 있는데, 입출력이 가능한 소자의 경우 제어신호와 어드레스신호에 의해 데이타 입출력 단자로부터 데이타를 입출력 할 수 있다. 출력 전용의 소자는 데이타 출력 단자로부터 데이타를 출력만 할 수 있다. 그러나 출력 전용의 소자라 하더라도 프로그래밍이라는 과정을 거쳐 데이타를 입력시켜 놓아야 하므로 데이타의 입출력 과정이 필요하다는 점은 입출력이 가능한 소자이든 출력 전용의 소자이든 동일하다.Generally, there are many types of semiconductor memory devices that can store digital data, such as DRAM, SRAM, ROM, and flash memory. Data can be input / output from the data input / output terminal by the signal and the address signal. The device dedicated to output can only output data from the data output terminal. However, even if it is an output-only device, data must be input through a process called programming. Therefore, the input / output process of data is necessary whether the device is an input / output device or an output-only device.

상기와 같은 소자중 어떠한 소자를 사용하더라도 그것이 불량한 소자일 경우에는 메모리 장치에서 부분적으로 동작하지 않는 셀(cell)이 생기게 되고 데이타의 오류를 야기시킨다. 이러한 오류를 방지하기 위하여 에러 정정코드를 데이타에 부가하여 에러 발생시 에러를 수정한다.No matter which of the above devices is used, if it is a bad device, a cell will be partially inoperable in the memory device, causing a data error. In order to prevent such an error, an error correction code is added to the data to correct the error when an error occurs.

그런데 종래에는 메모리 IC 소자의 데이타 입출력이 단일 비트(bit)가 주종이었기 때문에 에러가 발행해도 각 어드레스를 기준하여 에러가 분산되었으므로 에러 정정코드의 부가 비트수가 적어도 되었으나, 최근에는 데이타의 입출력이 복수 비트화하는 경향때문에 어드레스를 기준하여 여러 비트의 에러가 동시에 발생하게 되어 에러 정정코드의 부가 비트수를 늘여야만 하게 되었다. 이 경우 부가 비트만 늘어나는 것이 아니라 제어 회로의 복잡화 및 그 처리 시간의 증가와 소프트웨어 프로그램의 증가가 병행되게 된다. 즉 입출력단이 x4(4비트), x8(8비트), x16(16비트), x32(32비트) 등으로 이루어진 경우 x1(1비트)의 경우보다 복수 에러가 발생할 확률이 매우 높으며 반드시 그에 대한 처리가 필요하게 된다.However, conventionally, since the data input and output of the memory IC device mainly used a single bit, the error was distributed based on each address even when an error occurred. However, the number of additional bits of the error correction code has been reduced. Due to the tendency to make multiple errors, multiple bits of error occur at the same time, and the number of additional bits of the error correction code has to be increased. In this case, not only the additional bits increase, but also the complexity of the control circuit and the increase in the processing time and the increase in the software program are combined. That is, when the input / output stage is composed of x4 (4 bits), x8 (8 bits), x16 (16 bits), x32 (32 bits), etc., the probability of multiple errors is much higher than that of x1 (1 bit). Processing is necessary.

부연하면, 예를 들어 한번의 메모리 억세스에 워드(16비트) 단위로 입출력하는 메모리 장치에서 IC의 각 입출력단이 한 비트씩이라면 억세스할 때마다 16개의 IC로부터 한 비트씩 데이타를 가져오므로 각 비트가 에러일 확률은 독립적이다. 그리고 동시에 두 비트, 세 비트, 네 비트 에러일 확률은 지수적으로 감소하게 된다. 그러므로 만일 한 비트 에러일 확률이 장치가 허용하는 에러율 정도라면 두 비트 이상에 대한 에러의 확률은 무시할 수 있으므로 에러 정정코드는 한 비트 에러에 대해서만 설계해도 된다.In other words, for example, in a memory device that inputs and outputs word by word (16 bits) to one memory access, if each input / output terminal of the IC has one bit, data is obtained from 16 ICs one bit each time the data is accessed. The probability that a bit is an error is independent. At the same time, the probability of two, three, or four bit errors decreases exponentially. Therefore, if the probability of one bit error is about the error rate allowed by the device, the error probability for more than two bits can be ignored, so the error correction code may be designed for only one bit error.

그러나 IC의 각 입출력단이 네 비트(x4)씩 이라면 억세스할 때마다 4개의 IC로부터 각각 네 비트씩 데이타를 가져오므로 하나의 동일한 IC로 부터 가져오는 네 비트씩의 데이타는 동시에 에러가 발생할 확률이 매우 높다. 그래서 에러 정정코드는 네 비트 에러에 대해서 설계되어야 한다.However, if each input / output terminal of the IC has four bits (x4), four bits of data are obtained from four ICs each time they are accessed. This is very high. So the error correction code should be designed for four bit errors.

또한 입출력단이 8비트, 16비트라면 그에 맞추어 에러 정정코드를 설계해야 하는데, 예상 발생 에러의 수가 1, 4, 8, 16, 32로 증가할 때 그에 상응하여 원래의 데이타에 부가하는 패리티(parity) 비트의 수는 산술 급수가 아닌 기하 급수적으로 증가하게 된다.In addition, if the input / output stage is 8 bit or 16 bit, the error correction code should be designed accordingly. When the number of expected occurrence errors increases to 1, 4, 8, 16, 32, parity is added to the original data accordingly. The number of bits increases exponentially, not arithmetic.

결국, 데이타의 양이라는 관점에서는 한 비트 에러정정코드를 채용하여 장치가 허용하는 에러율을 만족시키는 것이 바람직할 것이다.As a result, in terms of the amount of data, it may be desirable to employ a one-bit error correction code to satisfy the error rate allowed by the device.

또 다른 문제점으로는 에러 정정 부호화된 데이타의 비트수가 바이트(8비트) 단위가 아니라면 그 시스템은 범용으로 쓰이는 바이트 단위의 메모리 구조가 아닌 그 장치에만 적용되는 데이타 버스의 폭을 갖게 된다. 다시 말하면, 예를 들어 (7, 4) 해밍코드(Hamming Code)를 에러 정정코드로 채용한 경우 데이타 버스의 폭이 일반적인 8비트 혹은 16비트가 아닌 7비트가 되어야 한다는 것이다.Another problem is that if the number of bits of error-correction coded data is not in bytes (8 bits), the system has a data bus width that applies only to the device, rather than to the general-purpose memory structure of the byte unit. In other words, for example, when (7, 4) Hamming Code is adopted as an error correction code, the width of the data bus should be 7 bits instead of the usual 8 bits or 16 bits.

따라서 본 발명의 목적은 IC의 입출력단이 여러 비트로 이루어져 있더라도 한 비트 에러의 검출과 정정을 수행할 수 있도록 하는 메모리 입출력 장치 및 그 제어 방법을 제공함에 있다.Accordingly, it is an object of the present invention to provide a memory input / output device and a method of controlling the same, capable of detecting and correcting a single bit error even when the input / output terminal of the IC is composed of several bits.

본 발명의 다른 목적은 에러 정정 부호화로 일반적인 데이타 버스 폭을 가지지 못하는 경우 그 데이타 버스 폭을 일반적인 데이타 버스 폭으로 조정하여 주는 메모리 입출력 장치 및 그 제어 방법을 제공함에 있다.Another object of the present invention is to provide a memory input / output device and a control method for adjusting the data bus width to a general data bus width when the error correction coding does not have a general data bus width.

본 발명의 또 다른 목적은 여러 비트 동시에 에러가 발생한 경우 이들을 적절히 분산시켜 에러의 정정이 용이하도록 하는 메모리 데이타 입출력 장치 및 그 제어 방법을 제공함에 있다.Another object of the present invention is to provide a memory data input / output device and a method of controlling the same, in which errors are easily distributed by appropriately distributing them when errors occur simultaneously.

상기한 목적을 달성하기 위한 본 메모리 데이타 입출력 장치는, 동시에 입출력되는 데이타 단자를 두개 이상 가지는 메모리와, 소정의 행 및 열로 이루어져 상기 메모리로 데이타를 출력하거나 상기 메모리로부터 데이타를 입력하는 버퍼와, 상기 버퍼에 소정의 에러정정코드를 행 방향으로 다수 입력한 후 열 방향으로 읽어 상기 메모리로 출력하며, 상기 메모리로부터 출력되는 데이타를 열 방향으로 입력하였다가 행 방향으로 읽어 상기 버퍼로 출력하도록 제어하며, 상기 메모리에 발생한 에러를 각 에러 정정코드로써 분산시키는 동작을 제어하는 제어수단으로 구성됨을 특징으로 한다.The memory data input / output device for achieving the above object includes a memory having two or more data terminals simultaneously input and output, a buffer consisting of predetermined rows and columns, for outputting data to or inputting data from the memory; Inputs a plurality of predetermined error correction codes into a buffer in a row direction, reads them in a column direction, and outputs them to the memory, and inputs data output from the memory in a column direction and reads them in a row direction to output to the buffer, And control means for controlling an operation of distributing an error occurring in the memory as each error correction code.

이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기 설명에서는 구체적인 회로의 구성 소자 등과 같은 많은 특정(特定) 사항들이 나타나고 있는데, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐 이러한 특정 사항들 없이도 본 발명이 실시될 수 있음은 이 기술분야에서 통상의 지식을 가진자에게는 자명하다할 것이다. 그리고 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.First, in adding reference numerals to the components of each drawing, it should be noted that the same reference numerals have the same reference numerals as much as possible even if displayed on different drawings. In addition, in the following description, many specific details such as components of specific circuits are shown, which are provided to help a more comprehensive understanding of the present invention, and the present invention may be practiced without these specific details. It will be obvious to those of ordinary skill in Esau. In the following description of the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

본 실시 예에서는 버퍼를 통하여 데이타 버스의 폭을 조정하여 줌으로써 8비트가 가능해진다.In this embodiment, 8 bits are possible by adjusting the width of the data bus through the buffer.

제2도는 본 발명에 따라 메모리의 입출력단에 부가하는 m행×n열 버퍼의 구성도로서, 56개의 셀로 이루어져 있으며 각 셀은 하나의 디플립플롭으로 구현할 수 있다. m은 채용한 에러 정정 코드의 부호장의 길이와 일치하며, n은 메모리 시스템에 억세스할 때의 최대 비트 수를 의미한다. 즉 어떤 시스템에서 채용된 에러 정정코드가 (7, 4) 해밍코드이고 메모리 시스템에는 8비트와 16비트의 억세스가 가능하다면 m=16이고, n=7이다(제2도에서는 m=8, n=7)이다.FIG. 2 is a configuration diagram of an m-row x n-column buffer added to an input / output terminal of a memory according to the present invention, and includes 56 cells, and each cell may be implemented as a single flip-flop. m corresponds to the length of the code length of the error correction code employed, and n means the maximum number of bits when accessing the memory system. In other words, if the error correction code employed in a system is a (7, 4) hamming code and the memory system has 8-bit and 16-bit access, then m = 16 and n = 7 (m = 8, n in Figure 2). = 7).

상기 제2도에 따르면, 에러 정정 부호화된 데이타를 버퍼를 거쳐 메모리로 입력시에는 에러 정정 부호화된 데이타가 일단 버퍼에 1행{1A, 1B, 1C, ... ,1G}, 2행{2A, 2B, 2C, ... , 2G}, 3행, ... , 8행의 순으로 입력되고, 8행까지 입력되었으면 상기 버퍼로부터 메모리에 한 바이트 단위로 0번지부터 1열{1A, 2A, (3,1), ..., 8A}, 2열{1B, 2A, (3,2), ... , 8B}, 3열, ..., 7열의 순으로 입력함으로써 7바이트의 입력을 완료한다.According to FIG. 2, when error correcting coded data is inputted through the buffer into the memory, the error correcting coded data is once inputted into the buffer {1A, 1B, 1C, ..., 1G}, 2 rows {2A]. , 2B, 2C, ..., 2G}, 3 rows, ..., 8 rows, if 8 rows are entered, address 0 to 1 column 1 byte from the buffer into memory from the buffer {1A, 2A , (3,1), ..., 8A}, 2 columns {1B, 2A, (3,2), ..., 8B}, 3 columns, ..., 7 columns Complete the input.

제3도는 입출력 단자가 소자당 4비트씩인 메모리의 경우에 데이타가 각 소자에 저장되어 있는 것을 나타낸 것이다. 상기 제2도에 도시한 바와 같은 방법으로 하나의 소자에 대한 데이타 입력을 완료한 다음의 에러 정정 부호화된 데이타는 다시 전과 같이 버퍼에 1행, 2행, 3행, ..., 8행의 순으로 입력되고, 8행까지 입력되었으면 상기 버퍼로부터 메모리에 한 바이트 단위로 1열, 2열, 3열, ..., 7열의 순으로 입력하여 다음 7바이트의 입력을 완료하여 총 14바이트의 입력을 완료한다. 13번지까지 데이타가 입력된 것이다. 그 다음의 데이터 입력도 전술한 과정을 거쳐 필요한 데이타의 입력을 완료한다.FIG. 3 shows that data is stored in each device in the case of a memory having input / output terminals having 4 bits per device. After completing the data input for one element by the method as shown in FIG. 2, the error correction coded data is again stored in the first, second, third, ..., eighth row of the buffer. If it is inputted in order, and up to 8 lines, it inputs 1 column, 2 columns, 3 columns, ..., 7 columns into the memory from the buffer in the order of 1 byte to complete the next 7 bytes and total 14 bytes. Complete the input. Data is input up to address 13. Subsequent data entry also completes the entry of the necessary data through the above-described process.

메모리에서 에러정정 부호화된 데이타를 버퍼를 거쳐 출력시에는 상기 메모리로부터 데이타가 버퍼에 한 바이트 단위로 0번지로부터 출력되어 1행{1A, 2A, (3,1), ... , 1G}, 2행{2A, 2B, 2C, ... , 2G}, 3행, ... , 8행의 순으로 차례로 출력된다. 결국 데이타는 7×8=56 비트단위로 입출력이 처리되게 된다.When the error-corrected coded data is output from the memory through the buffer, the data from the memory is output from address 0 in a byte unit to the buffer so that one row {1A, 2A, (3,1), ..., 1G}, 2 lines {2A, 2B, 2C, ..., 2G}, 3 lines, ..., 8 lines are output in this order. As a result, data is processed in 7x8 = 56 bit units.

제4도는 본 발명에 따른 버퍼를 구성하는 임의의 한 셀 및 그 주변회로를 도시한 것으로, 디플립플롭 FF과 앤드게이트 G1 및 G2, 오아게이트 G3 및 G4, 버퍼 BF1 및 BF2로 구성된다. 상기 앤드게이트 G1 및 G2의 한 단자에는 각각 제1 및 제2버퍼입력(BFm, BFn)이 접속되고 다른 단자로는 각각 제1 및 제2버퍼입력제어신호 IC1 및 IC2가 입력된다. 상기 오아게이트 G4에는 상기 제1 및 제2버퍼입력제어신호 IC1 및 IC2가 입력된다. 상기 오아게이트 G3에는 상기 앤드게이트 G1 및 G2의 출력신호가 입력된다. 상기 디플립플롭 FF의 데이타입력단자가 D로는 상기 오아게이트 G3의 출력 신호가 입력되고, 클럭단자 CLK로는 상기 오아게이트 G4의 출력신호가 입력된다. 버퍼 BF1 및 BF2의 입력단자는 상기 디플립플롭 FF의 데이타출력단자 OUT가 접속되고 상기 버퍼 BF1 및 BF2은 제1 및 제2버퍼출력제어신호 OC1 및 OC2의 제어를 받아 동작한다.4 shows any one cell constituting the buffer according to the present invention and its peripheral circuit, which is composed of a deflip-flop FF and an AND gates G1 and G2, an oragate G3 and G4, and buffers BF1 and BF2. First and second buffer inputs BF m and BF n are connected to one terminal of the AND gates G1 and G2, respectively, and first and second buffer input control signals IC1 and IC2 are respectively input to the other terminal. The first and second buffer input control signals IC1 and IC2 are input to the oragate G4. The output signals of the AND gates G1 and G2 are input to the oragate G3. The data input terminal of the flip-flop FF is input to the output signal of the oragate G3 to D, and the output signal of the orifice G4 is input to the clock terminal CLK. Input terminals of the buffers BF1 and BF2 are connected to the data output terminal OUT of the flip-flop FF, and the buffers BF1 and BF2 operate under the control of the first and second buffer output control signals OC1 and OC2.

상기 제4도에는 하나의 셀만을 도시하였으나 각 셀은 모두 이와 동일한 구조를 가진다. 그러므로 각 행, 열에 대한 디플립플롭, 제어신호등을 모두 도시하지는 않았으나 설명의 편의상 제1버퍼입력제어신호 ICm이 행, 제2버퍼입력제어신호 ICn이 열에 대한 신호들을 대표하는 것으로 하고, IC1A~IC8G로 구분하여 설명한다. 제1 및 제2버퍼출력제어신호 OCm, OCn의 경우도 마찬가지이다. 또한 제1 및 제2버퍼입력도 BFm, BFn로 구분하고 m은 행의 A~G, n은 열의 1~8을 대표하는 것으로 한다. 디플립플롭도 FFmn으로 구분하여 설명하기로 한다.Although only one cell is shown in FIG. 4, each cell has the same structure. Therefore, not all the flip-flops and control signals for each row and column are shown, but for convenience of description, the first buffer input control signal ICm is a row, and the second buffer input control signal ICn is representative of the signals for the column. IC1A to IC8G Explain separately. The same applies to the first and second buffer output control signals OCm and OCn. The first and second buffer inputs are also classified into BFm and BFn, where m represents A to G of the row and n represents 1 to 8 of the column. The flip-flop is also described by dividing it by FFmn.

1행에 대응하는 제1버퍼입력제어신호 IC1n이 1이면 {1A, 1B, 1C, ..., 1G}이 인에이블되어 7비트의 데이타가 버퍼에 행 방향으로 입력된다. 이때 제2버퍼입력제어신호 IC2는 0이다.If the first buffer input control signal IC1n corresponding to one row is 1, {1A, 1B, 1C, ..., 1G} are enabled and 7-bit data is input to the buffer in the row direction. At this time, the second buffer input control signal IC2 is zero.

마찬가지로 2행에 대응하는 제1버퍼입력제어신호 IC2n이 1이면 {2A, 2B, 2C, ..., 2G}이 인에이블되어 7비트의 데이타가 버퍼에 행 방향으로 입력될 것이고, 나머지 행들에 대해서도 동일하게 동작한다.Similarly, if the first buffer input control signal IC2n corresponding to two rows is 1, {2A, 2B, 2C, ..., 2G} will be enabled so that 7 bits of data will be input to the buffer in the row direction, and the remaining rows The same also works.

한편, 1열에 대응하는 제2버퍼입력제어신호 IC2가 1이면 {1A, 2A, 3A, ... , 8A}이 인에이블되어 1바이트의 데이타가 보조메모리(도시하지 않음.)에서 버퍼에 열 방향으로 입력된다. 이때 제1버퍼입력제어신호 IC1는 0이다. 다른 열에 대해서도 마찬가지의 동작을 수행한다.On the other hand, when the second buffer input control signal IC2 corresponding to one column is 1, {1A, 2A, 3A, ..., 8A} are enabled so that one byte of data is stored in the buffer in the auxiliary memory (not shown). Direction is input. At this time, the first buffer input control signal IC1 is zero. Do the same for the other columns.

제1 및 제2버퍼출력제어신호 0Cm, 0Cn의 상태에 따라 상기 버퍼의 각 행 및 열의 데이타를 출력하는 경우에도 역시 마찬가지의 동작을 수행한다. m은 A~G, n은 열의 1~8을 대표하는 것으로 한다. 디플립플롭도 FFmn으로 나타낸다.The same operation is also performed when outputting data of each row and column of the buffer according to the states of the first and second buffer output control signals 0Cm and 0Cn. m shall be A-G, n shall represent 1-8 of heat | fever. The flip-flop is also represented by FFmn.

한편, CPU 또는 기타 기기로부터 버퍼를 거쳐 보조메모리로 데이타를 입력하는 동작은 다음과 같이 이루어진다.On the other hand, the operation of inputting data into the auxiliary memory via the buffer from the CPU or other equipment is performed as follows.

7비트 데이타버스 즉 버퍼입력 BF1~BF7에 데이타를 싣고 제1버퍼입력제어신호 IC1을 1로 하여 디플립플롭 FF 1A~17에 7비트의 데이타를 입력한 후 상기 제1버퍼입력제어신호 IC1을 0로 한다. 이후 다시 버퍼입력 BF1~BF7에 데이타를 싣고 제2버퍼입력제어신호 IC2를 1로 하여 디플립플롭 FF 21~27에 7비트의 데이타를 입력한 후 상기 제2버퍼입력제어신호 IC2를 0로 한다. 이때 다른 버퍼입(출)력제어신호는 0이다. 이러한 동작을 반복하여 {8A, 8B, 8C, ... , 8G}까지 입력을 완료한다.7-bit data bus, i.e., data is loaded on the buffer inputs BF 1 to BF 7 , and 7-bit data is input to the flip-flop FF 1A to 17 with the first buffer input control signal IC1 as 1, and then the first buffer input control signal. Set IC1 to 0. Thereafter, data is loaded on the buffer inputs BF 1 to BF 7 again and 7 bits of data are input to the flip-flop FF 21 to 27 using the second buffer input control signal IC2 as 1, and then the second buffer input control signal IC2 is set to 0. Shall be. At this time, the other buffer input / output control signal is zero. Repeat this operation to complete the input up to {8A, 8B, 8C, ..., 8G}.

다음으로, 제1버퍼출력제어신호 OC1를 1로 하면 메모리에 연결된 데이타버스에 디플립플롭 FF 1A~8A의 데이타가 실리고 메모리에 1 바이트가 입력된 후 상기 제1버퍼출력제어신호 OC1를 0로 한다.Next, when the first buffer output control signal OC1 is set to 1, data of the def flip-flop FF 1A to 8A is loaded on the data bus connected to the memory, and 1 byte is input to the memory, and then the first buffer output control signal OC1 is set to 0. do.

다시 제2버퍼출력제어신호 OC2를 1로 하면 메모리에 연결된 데이타버스에 디플립플롭 FF 1B~8B의 데이타가 실리고 메모리에 1바이트가 입력된 후 상기 제2버퍼출력제어신호 OC2를 0로 한다. 이러한 동작을 반복하여 {1G, 2G, 3G, ..., 8G}까지 입력을 완료한다.When the second buffer output control signal OC2 is set to 1 again, the data of the de-flop flops FF 1B to 8B is loaded on the data bus connected to the memory, and 1 byte is input to the memory, and then the second buffer output control signal OC2 is set to 0. This operation is repeated to complete the input up to {1G, 2G, 3G, ..., 8G}.

보조 메모리로부터 버퍼를 거쳐 CPU 또는 기타 기기에 데이타를 출력하는 동작은 상기한 과정과 역으로 수행하면 된다.The operation of outputting data from the auxiliary memory to the CPU or other device via the buffer may be performed in the reverse of the above process.

제5도는 본 발명에 따라 8개의 해밍 부호어를 각각 1 바이트씩 총 8 바이트로 구성된 버퍼를 통하여 보조메모리에 입력시키는 과정을 나타낸 흐름도로서, BASE_BUF는 설정된 버퍼의 시작 번비를 나타내고, [BASE_BUF]는 BASE_BUF의 내용을 나타내며, [BASE_BUF + m]은 BASE-BUF로 부터 m 바이트 후의 내용을 나타내고, BASE_MEM은 보조 메모리의 시작번지를 나타내며, H1, ..., H8은 8개의 해밍부호어를 나타낸다.FIG. 5 is a flowchart illustrating a process of inputting eight Hamming codewords to the auxiliary memory through a buffer consisting of eight bytes each, according to the present invention, where BASE_BUF represents the starting number of the set buffer, and [BASE_BUF] BASE_BUF represents the contents, [BASE_BUF + m] represents the contents m bytes after BASE-BUF, BASE_MEM represents the start address of the auxiliary memory, and H1, ..., H8 represent eight Hamming codewords.

5a단계는 8개의 해밍부호어를 버퍼에 입력하는 단계이다. 5b단계는 BASE_BUF,..., BASE_BUF+7이 바이트 단위로 구성되었으므로 더미(dummy) 처리를 위해 1비트 시프트하는 단계이다. 5c 및 5d 단계는 루프의 횟수를 설정하는 단계이다. 5e단계에서는 BASE_BUF에 저장되었던 1A~1G가 시프트되며 1A가 플래그 비트에 입력되는 단계이다. 이는 통상 CPU가 시프트할 때는 방출된 비트를 플래그 비트에 저장하도록 하는 까닭이다. 예로서 인텔사의 80계열은 캐리 플래그(carry flag)를 모토롤라 68계열은 캐리와 x플래그로 방출 비트가 입력된다.Step 5a is a step of inputting eight Hamming codes into the buffer. In step 5b, since BASE_BUF,..., And BASE_BUF + 7 are configured in byte units, a step of 1 bit shift is performed for dummy processing. Steps 5c and 5d are for setting the number of loops. In step 5e, 1A to 1G stored in BASE_BUF are shifted, and 1A is input to the flag bit. This is usually because the CPU stores shifted bits in flag bits when shifting. For example, the Intel 80 series carries a carry flag, while the Motorola 68 series carries a carry bit and an x flag.

5f단계에서는 상기 5e단계에서 입력한 플래그 비트를 포함하여 로테이트하면 한 바이트의 임시변수 TEMP에는 1A가 입력된다. 5g 및 5h단계는 미리 설정한 루핑 횟수를 초과하는지 여부를 체크함으로써 5e~5h 과정을 8번 반복함으로써 8A, 7A, ..., 1A가 입력된다.In step 5f, if the flag bit inputted in step 5e is rotated, 1A is input to the temporary variable TEMP of one byte. In steps 5g and 5h, 8A, 7A, ..., 1A are input by repeating the processes 5e to 5h eight times by checking whether the preset number of loops is exceeded.

5i단계에서 보조메모리에 TEMP를 입력한다. 5j 및 5k단계는 상술한 동작을 7번까지 반복함으로써 버퍼에서 메모리로의 입력을 완성하기 위한 동작 과정이다.In step 5i, enter TEMP in the auxiliary memory. Steps 5j and 5k are operation processes for completing the input from the buffer to the memory by repeating the above operation up to seven times.

본 실시 예와 같은 입출력 방식을 제1도와 비교해보면, 제1도의 경우 제1메모리소자의 3번지에서 에러가 발생했다면 동일한 소자에 저장된 데이타의 속성상 4D, 4E, 4F, 4G의 4비트 모두에서 에러가 날 확률이 매우 높으며, 4비트 모두는 아니라 하더라도 2비트 이상의 에러가 발생 하는게 대부분이다. 이 경우 (7, 4) 해밍코드의 한 부호어(符號語)를 구성하는 {4A, 4B, 4C, 4D, 4E, 4F, 4G}의 7비트 중에서 1개를 넘는 에러가 발생한 것이며, 이것은 그 에러의 수정 능력이 1비트인 (7, 4)해밍코드의 한계를 넘어서는 것으로서 에러의 수정이 불가능하게 된다. 또한 코드의 한 부호어 길이가 7비트인 관계로 일반적인 바이트의 배수를 그 데이타 버스폭으로 하는 메모리 장치에는 낭비를 야기한다. 이와 같이 종래의 방식에서는 1비트의 낭비가 발생하지만, 동일한 에러에 대하여 본 실시 예는 다음과 같이 낭비를 없앨 수 있다.Comparing the same input / output method with the first embodiment, in case of FIG. 1, if an error occurs in address 3 of the first memory device, the 4 bit of 4D, 4E, 4F, and 4G are all due to the nature of data stored in the same device. The probability of error is very high, and most of the error occurs more than 2 bits if not all 4 bits. In this case, more than one error occurs among 7 bits of {4A, 4B, 4C, 4D, 4E, 4F, 4G}, which constitute one codeword of the (7, 4) hamming code. The error correction capability exceeds the limit of the 1-bit (7, 4) hamming code, making it impossible to correct the error. In addition, since one codeword length of a code is 7 bits, it is a waste to a memory device having a data bus width of a multiple of a general byte. As described above, although 1 bit of waste occurs in the conventional method, the present embodiment can eliminate waste as follows for the same error.

{4D, 3D, 2D, 1D} 4비트 모두에 에러가 발생하였다고 가정할 때 이 데이타가 버퍼를 통하여 출력되었을 때는 다음 해밍코드의 4 부호어에 분산되어 출력되게 된다.{4D, 3D, 2D, 1D} Assuming that an error occurs in all 4 bits, when this data is output through the buffer, it is distributed in 4 codewords of the next Hamming code.

{1A, 1B, 1C, 1D, 1E, 1F, 1G}{1A, 1B, 1C, 1D, 1E, 1F, 1G}

{2A, 2B, 2C, 2D, 2E, 2F, 2G}{2A, 2B, 2C, 2D, 2E, 2F, 2G}

{3A, 3B, 3C, 3D, 3E, 3F, 3G}{3A, 3B, 3C, 3D, 3E, 3F, 3G}

{4A, 4B, 4C, 4D, 4E, 4F, 4G}{4A, 4B, 4C, 4D, 4E, 4F, 4G}

에러의 분산으로 각 부호어에서 발생한 에러의 수는 1비트이고 (7, 4) 해밍코드의 수정 능력이 1비트되므로 발생한 모든 에러는 수정되어 원래의 데이타를 복원할수 있게 된다. 또한 버퍼의 행 수를 메모리 데이타버스 폭에 맞추면 저장 공간상의 낭비도 없다.The number of errors generated in each codeword is 1 bit due to the variance of the error, and the correcting ability of the Hamming code is 1 bit. Therefore, all the generated errors can be corrected to restore the original data. Also, if the number of rows in the buffer matches the memory data bus width, there is no waste of storage space.

본 실시예는 대량의 화상 또는 음향 데이타를 입력시켜 저장하였다가 출력하는 경우에 유용하다.This embodiment is useful when a large amount of image or audio data is inputted and stored.

상술한 바와 같은 본 발명은 IC의 입출력단이 여러 비트로 이루어져 있어도 한 비트 에러 정정코드를 이용한 에러의 검출과 정정을 수행할 수 있어 효율적이며, 에러 정정 부호화로 일반적인 데이타버스 폭을 가지지 못하는 경우 버퍼로써 그 데이타버스폭을 일반적인 데이타버스 폭으로 조정해줌으로써 범용 메모리장치에 그대로 사용 가능하고, 여러 비트 동시에 에러가 발생한 불량한 메모리라 하더라도 그 에러들을 적절히 분산시킴으로써 에러의 정정이 용이하도록 하여 정상적인 메모리와 거의 비슷한 수준으로 동작하게 하는 장점이 있다.As described above, the present invention can efficiently detect and correct errors using one bit error correction code even when the input / output terminal of the IC is composed of several bits, and is effective as a buffer when the error correction encoding does not have a general data bus width. By adjusting the data bus width to the general data bus width, it can be used as it is in a general-purpose memory device, and even if the bad memory where an error occurs several bits at the same time, the error is easily distributed by appropriately distributing the errors so that it is almost similar to the normal memory. It has the advantage of working at the level.

한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications are possible without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by the equivalents of the claims.

Claims (4)

데이타를 입출력하는 메모리 입출력 장치에 있어서, 동시에 입출력되는 데이타 단자를 두개 이상 가지는 메모리와, 소정의 행 및 열로 이루어져 상기 메모리로 데이타를 출력하거나 상기 메모리로부터 출력되는 데이타를 입력하는 버퍼와, 상기 버퍼에 소정의 에러 정정코드를 행 방향으로 다수 입력한 후 입력된 에러 정정코드를 열 방향으로 읽어 상기 메모리로 출력하며, 상기 메모리로부터 출력되는 데이타를 열 방향으로 입력한 후 행 방향으로 읽어 상기 버퍼로 출력하도록 제어하며, 상기 메모리에 발생한 에러를 각 에러 정정코드로서 분산시키도록 제어하는 제어수단으로 이루어짐을 특징으로 하는 에러 검출 및 수정을 위한 에러 정정코드를 부가하는 메모리 데이타 입출력 장치.A memory input / output device for inputting and outputting data, comprising: a memory having two or more data terminals input and output at the same time; a buffer configured to output data to or output data from the memory; After inputting a large number of predetermined error correction codes in the row direction, the input error correction codes are read in the column direction and output to the memory. The data output from the memory is input in the column direction and then read in the row direction and output to the buffer. And control means for controlling to distribute the error occurring in the memory as each error correcting code. 제1항에 있어서, 상기 버퍼에 있어 행의 길이는, 바이트의 배수로 이루어짐을 특징으로 하는 에러 검출 및 수정을 위한 에러 정정코드를 부가하는 메모리 데이타 입출력 장치.The memory data input / output device according to claim 1, wherein a length of a row in the buffer is a multiple of bytes. 동시에 입출력되는 데이타 단자를 두개 이상 가지는 메모리와, 소정의 행 및 열로 이루어져 상기 메모리로 데이타를 출력하거나 상기 메모리로부터 데이타를 입력하는 버퍼를 구비한 메모리 데이타 입출력 장치의 메모리 입출력 제어 방법에 있어서, 상기 버퍼에 소정의 에러 정정코드를 행 방향으로 다수 입력한 후 열 방향으로 읽어 상기 메모리로 출력하는 제1과정과, 상기 메모리로부터 출력되는 데이타를 열 방향으로 입력하였다가 행 방향으로 읽어 상기 버퍼로 출력하는 제2과정과, 모든 데이타의 양이 상기 버퍼 크기의 배수가 되지 않는 것으로 검사되고 마지막 입력 데이타가 상기 버퍼를 완전히 채우지 못한 것으로 검사되면 상기 에러 정정코드의 0 데이타 열에 대한 부가 패러티 비트가 0 데이타 열이면 버퍼의 나머지 부분을 0으로 채우는 제3과정으로 이루어짐을 특징으로 하는 메모리 데이타 입출력 제어 방법.A memory input / output control method for a memory data input / output device having a memory having two or more data terminals simultaneously input and output, and a buffer configured to output data to or input data from the memory, the buffer comprising: a plurality of rows and columns; A first process of inputting a plurality of predetermined error correction codes in a row direction to read in a column direction and outputting the data to the memory, and inputting data output from the memory in a column direction and reading in a row direction to the buffer In the second process, if the amount of all data is checked not to be a multiple of the buffer size, and if the last input data does not fill the buffer completely, the additional parity bit for the zero data string of the error correction code is zero data string. , The third to fill the rest of the buffer with zeros. Memory data input and output control method characterized in that consisting of a process. 동시에 입출력되는 데이타 단자를 두개 이상 가지는 메모리와, 소정의 행 및 열로 이루어져 상기 메모리로 데이타를 출력하거나 상기 메모리로부터 데이타를 입력하는 버퍼를 구비한 메모리 입출력 장치의 메모리 입출력 제어 방법에 있어서, 상기 버퍼에 소정의 에러 정정코드를 행 방향으로 다수 입력한 후 열 방향으로 읽어 상기 메모리로 출력하는 제1과정과, 상기 메모리로부터 출력되는 데이타를 열 방향으로 입력하였다가 행 방향으로 읽어 상기 버퍼로 출력하는 제2과정과, 모든 데이타의 양이 상기 버퍼 크기의 배수가 되지 않는 것으로 검사되고 마지막 입력 데이타가 상기 버퍼를 완전히 채우지 못한 것으로 검사되면 상기 에러 정정코드의 1 데이타 열에 대한 부가 패러티 비트가 1데이타 열이면 버퍼의 나머지 부분을 1로 채우는 제3과정으로 이루어짐을 특징으로 하는 메모리 입출력 제어 방법.A memory input / output control method for a memory input / output device having a memory having two or more data terminals simultaneously input and output, and a buffer configured to output data to or input data from the memory, the memory input / output device having a predetermined row and column. A first process of inputting a plurality of predetermined error correction codes in a row direction and reading them in a column direction, and outputting the data output from the memory in a column direction and reading them in a row direction to the buffer; Process 2, if the amount of all data is not a multiple of the buffer size, and if the last input data has not been filled completely, the additional parity bit for one data string of the error correction code is one data string. In the third process, filling the rest of the buffer with 1s Memory output control method for a load characterized luer.
KR1019960006014A 1996-03-08 1996-03-08 Device and method of memory data input/output KR100189550B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960006014A KR100189550B1 (en) 1996-03-08 1996-03-08 Device and method of memory data input/output

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960006014A KR100189550B1 (en) 1996-03-08 1996-03-08 Device and method of memory data input/output

Publications (2)

Publication Number Publication Date
KR970068161A KR970068161A (en) 1997-10-13
KR100189550B1 true KR100189550B1 (en) 1999-06-01

Family

ID=19452605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960006014A KR100189550B1 (en) 1996-03-08 1996-03-08 Device and method of memory data input/output

Country Status (1)

Country Link
KR (1) KR100189550B1 (en)

Also Published As

Publication number Publication date
KR970068161A (en) 1997-10-13

Similar Documents

Publication Publication Date Title
US5719888A (en) Memory system
US7328377B1 (en) Error correction for programmable logic integrated circuits
US8001450B2 (en) Semiconductor memory device capable of changing ECC code length
EP0034188B1 (en) Error correction system
US4688219A (en) Semiconductor memory device having redundant memory and parity capabilities
US4953128A (en) Variable delay circuit for delaying input data
KR100261790B1 (en) Error correction circuit and semiconductor memory device
US6938193B1 (en) ECC circuit-containing semiconductor memory device and method of testing the same
KR940000901B1 (en) Semiconductor memory device having mask rom
US5251219A (en) Error detection and correction circuit
JPS6217257B2 (en)
US5136588A (en) Interleaving method and apparatus
US5751744A (en) Error detection and correction circuit
US6295617B1 (en) Testing method of semiconductor memory device and semiconductor memory device applicable to the method
US7028248B2 (en) Multi-cycle symbol level error correction and memory system
US5748652A (en) Apparatus for detecting and correcting cyclic redundancy check errors
JPS6255180B2 (en)
KR970005393B1 (en) Semiconductor memory comprising an on-chip error correction device and integrated circuit comprising such a semiconductor memory
US20230049851A1 (en) Ecc memory chip encoder and decoder
US4649540A (en) Error-correcting circuit having a reduced syndrome word
KR970071831A (en) 3 memory semiconductor memory system
KR100189550B1 (en) Device and method of memory data input/output
US6360347B1 (en) Error correction method for a memory device
US20200327952A1 (en) Memory system and operation method thereof
US5091910A (en) Information processing device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20071221

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee