KR20150144715A - Error detection in stored data values - Google Patents

Error detection in stored data values

Info

Publication number
KR20150144715A
KR20150144715A KR1020150085225A KR20150085225A KR20150144715A KR 20150144715 A KR20150144715 A KR 20150144715A KR 1020150085225 A KR1020150085225 A KR 1020150085225A KR 20150085225 A KR20150085225 A KR 20150085225A KR 20150144715 A KR20150144715 A KR 20150144715A
Authority
KR
South Korea
Prior art keywords
parity
data
value
storage units
stored
Prior art date
Application number
KR1020150085225A
Other languages
Korean (ko)
Other versions
KR102283686B1 (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 에이알엠 리미티드
Publication of KR20150144715A publication Critical patent/KR20150144715A/en
Application granted granted Critical
Publication of KR102283686B1 publication Critical patent/KR102283686B1/en

Links

Images

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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • 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
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature

Abstract

An apparatus has a plurality of storage units. A parity generator is configured to generate a parity value in accordance with the respective values stored in the storage units. The parity generator is configured such that determination of the parity value is independent of read access to data stored in the storage units. A detector is configured to detect a change in the parity value.

Description

저장 데이터 값의 에러 검출{ERROR DETECTION IN STORED DATA VALUES}Error detection of stored data values {ERROR DETECTION IN STORED DATA VALUES}

본 발명은 데이터 처리 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 데이터 값을 저장하도록 구성되어 있고 저장된 데이터 값의 변화를 검출하도록 제공된 회로를 갖는 데이터 저장 장치에 관한 것이다. The present invention relates to a data processing system. More particularly, the present invention relates to a data storage device having circuitry configured to store data values and provided to detect changes in stored data values.

데이터 저장 장치에 저장된 데이터 값은 예를 들어, 저장된 데이터 값의 비트 플립을 유발하는 입자 충돌(particle strike)에 의해 변화에 취약할 수 있다. 이러한 이유로, 종래 데이터 저장 장치에는 데이터 저장 장치로부터 판독된 데이터 값이 원래 저장된 이후에 임의의 방식으로 변경되었는지를 판정하기 위한 메커니즘이 제공되었다. 이러한 메커니즘의 하나는 패리티 검사 회로를 제공하는 것이다. 이러한 패리티 검사 회로는 데이터 값이 데이터 저장 장치에 저장되어 있을 때, 패리티 값이 (예를 들어, 단일 최종 패리티 비트를 생성하기 위해 XOR 트리에 데이터 값을 넘김으로써) 이러한 데이터 값에 기초하여 생성된 다음 데이터 저장 장치의 데이터 값과 연관되어 저장되도록 구성되어 있다. 저장된 데이터 값이 나중에 판독될 때, 이러한 데이터 값의 개별적인 비트는 다시 동일한 XOR 트리로 넘겨져 비교 패리티가 생성될 수 있고, 그다음, 이러한 비교 패리티는 해당 데이터 값이 원래 저장되었을 때 데이터 값과 연관되어 저장된 패리티 비트와 비교될 수 있다. 2개의 패리티 비트 값이 상이하다면, 저장된 데이터 값에 비트 플립이 일어났다는 것을 알게 되고, 그다음, 이러한 저장된 데이터 값을 버리거나 이러한 저장된 데이터 값을 보정하려는 시도등의 적절한 응답이 수행될 수 있다. The data value stored in the data storage device may be susceptible to change, for example, by particle strike which causes a bit flip of the stored data value. For this reason, a conventional data storage device has been provided with a mechanism for determining whether the data value read from the data storage device has been altered in any way after it was originally stored. One such mechanism is to provide a parity checking circuit. Such parity checking circuitry may be used to determine whether a parity value is generated (e.g., by passing a data value to an XOR tree to produce a single last parity bit) And is stored in association with the data value of the next data storage device. When the stored data values are later read, the individual bits of these data values are passed back to the same XOR tree so that a compare parity can be generated, which is then stored in association with the data value when the data value was originally stored It can be compared with a parity bit. If the two parity bit values are different, it is known that a bit flip has occurred in the stored data value, and then an appropriate response such as discarding such stored data value or attempting to correct such stored data value may be performed.

이러한 방식으로 작동되도록 구성된 데이터 저장 장치(10)의 예가 도 1에 개략적으로 도시되어 있다. 멀티 비트 데이터 값이 처음에 수신되고 이러한 데이터 값의 비트가 각각의 비트 셀(11-14)(이해를 위해 단지 4개의 비트 셀이 도시되어 있지만 보통 보다 많은 비트 셀이 제공될 수 있다는 것을 유념해야 한다)에 저장되는 한편, 이러한 멀티 비트 데이터 값은 또한 저장된 데이터 값과 연관되어 로케이션(16)에 저장되는 단일 비트 패리티 값 P를 생성하는 XOR 트리(15)에 넘겨진다. 판독 접근이 수행될 때, 이러한 데이터 값의 개별적인 비트 역시 (XOR 트리(15)와 동일하게 구성된) XOR 트리(17)로 넘겨지고 최종 패리티 비트 값이 패리티 비트 저장부(16)로부터 판독된 패리티 비트 P와 비교 회로(18)에 의해 비교된다. 이러한 2개의 값이 상이하면 에러 플래그가 어서트된다. An example of a data storage device 10 configured to operate in this manner is schematically illustrated in FIG. It should be noted that although a multi-bit data value is initially received and the bits of such a data value may be provided for each bit cell 11-14 (although only four bit cells are shown for clarity, This multi-bit data value is also passed to the XOR tree 15 which generates a single bit parity value P that is stored in the location 16 in association with the stored data value. When read access is performed, individual bits of this data value are also passed to the XOR tree 17 (which is configured identically to the XOR tree 15) and the last parity bit value is passed to the parity bit read from the parity bit storage 16 P and the comparator circuit 18. If these two values are different, the error flag is asserted.

제1 특징에서, 본 발명은 데이터를 수신하고 판독 접근에 응답하여 상기 데이터를 출력하도록 구성된 복수의 저장 유닛; 및 상기 복수의 저장 유닛과 연관된 패리티 생성기를 포함하고, 상기 패리티 생성기는, 상기 복수의 저장 유닛의 각각으로부터 각각의 값을 복수의 입력부에서 수신하고; 상기 복수의 입력부로부터 패리티 값을 결정하고; 상기 패리티 값을 출력하도록 구성되어 있고, 상기 패리티 값의 결정은 상기 복수의 저장 유닛에 저장된 데이터에 대한 판독 접근으로부터 독립되어 있고, 상기 장치는 상기 패리티 값의 변화를 검출하도록 구성된 검출기를 더 포함하는 장치를 제공한다. In a first aspect, the invention provides a data processing apparatus comprising: a plurality of storage units configured to receive data and output the data in response to a read access; And a parity generator associated with the plurality of storage units, wherein the parity generator receives each value from each of the plurality of storage units at a plurality of inputs; Determine a parity value from the plurality of input units; The parity value being independent of read access to data stored in the plurality of storage units and the apparatus being further configured to detect a change in the parity value Device.

본 기술은 저장 데이터 값에 판독 접근이 있을 때마다 처음에 생성된 패리티 비트와 비교하기 위한 패리티 비트를 생성하는데 소비되는 에너지가 유익하지 않다는 것을 인식하고 있다. 특히, 판독 접근이 기록 접근 보다 훨씬 더 많은 빈도수로 데이터 값에 대해 실행될 수 있고, 이에 따라 원래의 패리티 비트의 생성과 연관된 에너지 소비량과 각 판독 접근을 위한 패리티 비트의 생성과 연관된 에너지 소비량 사이의 상당한 비대칭이 나타날 수 있다는 것이 인식되었다. 이에 따라, 본 기술은 복수의 저장 유닛으로부터 수신하는 복수의 입력으로부터 패리티 값을 생성하도록 설계된 패리티 생성기가 제공되는 구성을 제안하고 있는데, 상기 패리티 값의 생성은 상기 복수의 저장 유닛에 저장된 데이터로의 판독 접근에 대해 독립적이다. 따라서, 보다 낮은 에너지 소비량을 갖는 장치가 제공되는데, 그 이유는 판독 접근이 실행될 때마다 패리티 값이 재계산되지 않기 때문이다. The present technique recognizes that whenever there is a read access to the stored data value, the energy consumed in generating parity bits for comparison with the initially generated parity bits is not beneficial. In particular, the read access can be performed on data values at a much greater frequency than the write approach, and thus a significant difference between the energy consumption associated with the generation of the original parity bits and the energy consumption associated with the generation of parity bits for each read access It has been recognized that asymmetry can occur. Accordingly, the present invention proposes a configuration in which a parity generator is provided that is designed to generate a parity value from a plurality of inputs received from a plurality of storage units, wherein the generation of the parity value is performed by Independent of read access. Thus, a device with lower energy consumption is provided, since the parity value is not recalculated each time a read access is performed.

상기 패리티 생성기는 판독 접근에 관계없도록 구성되어서 상기 데이터 저장 유닛중 하나에 저장된 데이터 비트의 값이 변하지 않으면 상기 저장 데이터 값 패리티 생성 회로에서 전환이 일어나지 않도록 구성되어 있다. 이에 따라, 패리티 결정은 동시에 일어날 수 있다. 즉, 저장 데이터 비트중 하나에 에러가 발생하자마자 수행된다. 이것은 에러가 일어나자마자 표시(flag)될 수 있을 뿐만 아니라 에러의 누적을 차단하는데 도움이 되기 때문에 유익하다. 이것은 저장 데이터 값에 기초하여 생성된 패리티 값을 사용함으로써 데이터 에러를 방지하려고 하는 데이터 저장 장치에서 상당한데, 그 이유는 2개의 비트가 저장 데이터 값에서 변하는 경우(또는 실제로 임의의 추가 짝수의 비트가 변하는 경우)에 이러한 변화가 이러한 패리티 방법에 의해 검출될 수 없고, 이러한 패리티 값이 다시 처음 패리티 값과 동일하기 때문이다. 따라서, 저장 데이터 값에서 데이터 비트중 하나가 변하자마자 변하는 패리티 비트의 생성은 짝수의 다수의 비트 플립이 간과되는 잠재적인 데이터 손상을 차단하는데 도움이 된다. The parity generator is configured to be independent of read access so that no transition occurs in the stored data value parity generation circuit unless the value of the data bit stored in one of the data storage units is unchanged. Accordingly, parity determination can occur simultaneously. That is, it is executed as soon as an error occurs in one of the stored data bits. This is beneficial because it not only can be flagged as soon as an error occurs, but also helps to prevent accumulation of errors. This is significant in a data storage device that tries to avoid data errors by using parity values generated based on stored data values because if two bits change in the stored data value (or indeed any additional even number of bits , This change can not be detected by this parity method, and this parity value is again equal to the first parity value. Thus, the generation of parity bits that change as soon as one of the data bits changes in the stored data value helps to prevent potential data corruption that is overlooked by an even number of bit flips.

상기 패리티 값의 변화를 검출하도록 구성된 검출기는 다양한 형태를 취할 수 있고, 천이 검출기 및 능동 비교기중 하나일 수 있다. 즉, 이러한 검출기는 패리티 값 자체의 변화를 검출하도록 구성된 디바이스의 형태를 취할 수 있거나, 패리티 값이 변화를 거쳤는지 여부를 판정하기 위해 다른 값과 패리티 값을 비교하도록 구성된 디바이스의 형태를 취할 수 있다. The detector configured to detect a change in the parity value may take various forms and may be one of a transition detector and an active comparator. That is, such a detector may take the form of a device configured to detect a change in the parity value itself, or it may take the form of a device configured to compare a parity value with another value to determine whether the parity value has undergone a change .

일부 실시예에서, 상기 장치는 상기 데이터가 상기 복수의 저장 유닛에 의해 수신될 때 상기 데이터와 연관된 제2 패리티 값을 생성하도록 구성된 제2 패리티 생성기를 더 포함하고 있다. In some embodiments, the apparatus further comprises a second parity generator configured to generate a second parity value associated with the data when the data is received by the plurality of storage units.

상기 제2 패리티 값은 상기 장치에서 다양한 방법으로 사용될 수 있지만, 일부 실시예에서, 상기 제2 패리티 값은 상기 데이터가 상기 복수의 저장 유닛에 의해 저장될 때 상기 복수의 저장 유닛과 연관된 추가 저장 유닛에 저장되고; 상기 제2 패리티 값은 상기 패리티 값의 변화를 검출하도록 상기 패리티 값과 비교하기 위해 상기 검출기에 의해 상기 추가 저장 유닛으로부터 판독된다. 그래서, 상기 제2 패리티 값은 상기 데이터가 처음에 수신되었을 때, 상기 저장 유닛에 저장된 데이터와 연관된 패리티 값이 가졌던 값의 "스냅샷"을 나타낼 수 있어서, 상기 검출기는 저장 데이터에 판독 접근이 없어도 이러한 처음 스냅샷으로부터 임의의 일탈이 있는지 계속 감시할 수 있다. The second parity value may be used in various ways in the apparatus, but in some embodiments the second parity value may be stored in the additional storage unit associated with the plurality of storage units when the data is stored by the plurality of storage units Lt; / RTI > And the second parity value is read from the additional storage unit by the detector for comparison with the parity value to detect a change in the parity value. Thus, the second parity value may indicate a "snapshot" of the value that the parity value associated with the data stored in the storage unit when the data was first received, so that the detector has no read access to the stored data From this initial snapshot, you can continue to monitor for any deviations.

상기 장치의 패리티 값의 생성의 상대 타이밍이 특정 구현 필요조건에 따라 변할 수 있지만, 일부 실시예에서, 상기 패리티 생성기는 상기 제2 패리티 생성기가 상기 제2 패리티 값을 생성한 후에 상기 패리티 값을 생성하도록 구성되어 있다. 상기 제2 패리티 생성기가 상기 제2 패리티 값을 생성한 후에 상기 패리티 값을 생성하도록 상기 패리티 생성기를 구성함으로써 저장 데이터의 "참" 패리티의 처음 스냅샵(즉, 이러한 스냅샵에 의해 수신된 순간에 가졌던 것에 상응한다)이 먼저 제2 패리티 값으로서 포착되고, 그 후에 이러한 처음 "참" 값에 대해 임의의 비교가 이루어질 수 있다. The relative timing of the generation of the parity value of the apparatus may vary according to a particular implementation requirement, but in some embodiments, the parity generator may generate the parity value after the second parity generator generates the second parity value . The second parity generator generates the second parity value and then constructs the parity generator to generate the parity value so that the first snapshot of the "true" parity of the stored data (i.e., Corresponding to what it had) is first picked up as the second parity value, after which any comparison can be made to this first "true" value.

일부 실시예에서, 상기 데이터 저장 장치는 상기 데이터 워드가 상기 복수의 데이터 저장 유닛에 기록되고 있을 때 어서트되는 기록 인에이블 신호를 전송하도록 구성된 기록 인에이블 신호 라인을 더 포함하고, 상기 기록 인에이블 신호 라인은 상기 검출기에 결합되어 있고 상기 검출기는 상기 기록 인에이블 신호가 어서트될 때 작동불능된다. 이러한 데이터 워드가 복수의 데이터 저장 유닛에 기록되고 있는 기간은 패리티 생성 회로가 잠시 미결정 상태로 있는 기간으로서 인식되는데, 그 이유는 기록되고 있는 데이터 워드의 개별적인 데이터 비트의 값에 발생하는 패리티 비트의 의존성 때문이다. 그래서, 이러한 데이터 비트가 기록될 때 각 개별적인 데이터 비트의 기록의 상대 타이밍에 의해 패리티 비트의 값이 짧게 변동될 수 있다. 기록 인에이블 신호가 어서트되는 기간 동안 검출기를 작동불능시킴으로써 이러한 짧은 미결정 기간이 올바로 무시될 수 있다. 그래서, 패리티 비트의 값의 변화의 검출은 저장 데이터 값에서 일어나는 진짜 에러가 검출되어야 하는 나머지 시간 동안만 능동적이다. In some embodiments, the data storage device further comprises a write enable signal line configured to transmit a write enable signal asserted when the data word is being written to the plurality of data storage units, wherein the write enable A signal line is coupled to the detector and the detector is disabled when the write enable signal is asserted. The period in which such a data word is written in the plurality of data storage units is recognized as a period in which the parity generation circuit is temporarily in an undetermined state because the dependence of the parity bit on the value of the individual data bit of the data word being written Because. Thus, when these data bits are recorded, the value of the parity bit can be shortened by the relative timing of writing of each individual data bit. This short pending period can be correctly ignored by disabling the detector for a period during which the write enable signal is asserted. Thus, detection of a change in the value of the parity bit is active only for the remainder of the time when the real error occurring in the stored data value is to be detected.

일부 실시예에서, 상기 데이터 저장 장치는 상기 복수의 저장 유닛이 판독될 수 있는 복수의 판독 포트를 포함하는 멀티 포트 레지스터 파일이다. 본 기술은 복수의 판독 포트의 제공이 각 판독 접근과 연관된 패리티 값의 생성이 잠재적으로 상당한 빈도로 일어날 수도 있고 본 기술에 의해 제공되는 바와 같이, 각 판독 접근과 연관된 이러한 패리티 생성을 피하는 것이 특히 유익하다는 것을 의미한다는 사실로 인해, 본 기술의 이점이 일부 나타나는 장치를 멀티 포트 레지스터 파일이 나타내고 있다는 것을 인식하고 있다. 멀티 포트 레지스터 파일은 또한 보통 멀티 포트 레지스터 파일의 레이아웃과 연관되어 제공되어야 할 많은 상호접속 때문에 본 기술의 구현을 위한 특별히 유리한 상황일 수 있다. 그래서, 본 기술이 예를 들어, 데이터 값의 각 비트를 저장하는 각 플립플롭과 연관되어 하나의 XOR 게이트를 추가하는 것과 같이, 종래의 패리티 생성 체계 보다 제공할 보다 많은 게이트(보통 XOR 게이트)가 필요할 수 있지만, 이러한 보다 큰 게이트 수는 반드시 레지스터 파일의 제공을 위한 보다 많은 면적을 의미하는 것은 아니다. 이것은 이러한 멀티 포트 레지스터 파일의 레이아웃 면적이 보통 그 상호접속에 의해 좌우된다는 사실 때문이다. 예를 들어, 현대의 멀티 포트 레지스터 파일은 23개의 병렬(수평) 워드 라인이 각 플립플롭에 대해 필요하다는 것을 의미하는 9개의 기록 포트 및 14개의 판독 포트를 가질 수도 있다. 이러한 것들은 자주 레이아웃에서 상당한 "백색 공간"으로 "배선 제어"될 수 있다는 것이 이러한 멀티 포트 레지스터 파일의 구현에서 발견되었다. 이러한 패리티 생성 회로의 제공이 하나의 추가 수평 신호와 같이 적게 추가될 수 있기 때문에, 멀티 포트 레지스터 파일에 필요한 면적에 상당한 영향을 주지 않으면서, 본 기술을 구현하는 레이아웃에 약간의 추가 게이트 비용을 숨기는 것이 가능하다. In some embodiments, the data storage device is a multiport register file including a plurality of read ports from which the plurality of storage units can be read. The present technique is particularly advantageous in that the provision of a plurality of read ports may result in the generation of a parity value associated with each read access, potentially at a significant frequency, and to avoid such parity generation associated with each read access, as provided by the present technique , It is recognized that the multiport register file represents a device in which some of the advantages of the present technology are exhibited. The multiport register file may also be a particularly advantageous situation for the implementation of the technique because of the large number of interconnections that must be provided in connection with the layout of the multiport register file. Thus, if the present technique has more gates (usually XOR gates) to provide than conventional parity generation schemes, such as adding one XOR gate in association with each flip flop storing each bit of data value, for example Although this may be necessary, this larger number of gates does not necessarily mean more area for the provision of register files. This is due to the fact that the layout area of these multiport register files is usually dependent on that interconnect. For example, a modern multiport register file may have nine write ports and fourteen read ports, meaning that 23 parallel (horizontal) word lines are needed for each flip flop. It has been found in the implementation of such multi-port register files that these can often be "wired controlled" with considerable "white space" Since the provision of such parity generation circuitry can be added as little as one additional horizontal signal, it is possible to reduce the additional gate cost to a layout implementing the technique without significantly affecting the area required for the multiport register file It is possible.

상기 패리티 생성기는 다양한 방식으로 제공될 수 있다. 일부 실시예에서, 상기 패리티 생성기는 상기 복수의 저장 유닛과 연관되어 제공된 선형 연접된 로직 회로를 포함하고, 각각의 로직 회로는 그 입력중 하나로서 각각의 저장 유닛의 각각의 데이터 비트를 갖고 있다. 각각의 저장 유닛에 저장된 데이터 비트가 XOR 게이트를 위한 하나의 입력과 이전의 XOR 게이트의 출력에 의해 제공되는 다른 입력을 제공하는 선형 연접된 로직 회로(예를 들어, 하나의 XOR 게이트가 각각의 저장 유닛과 연관되어 제공된 XOR 게이트의 체인 세트)는 저장 유닛 자체에 약간만 추가되는 장점을 갖고 있다. 실제로, 특히 레이아웃에 2배 높이 셀이 사용되는 경우에 추가 필요한 로직 회로(예를 들어, XOR 게이트)가 저장 유닛(예를 들어, 플립플롭) 안에 포개지는 것이 가능할 수 있다. The parity generator may be provided in various ways. In some embodiments, the parity generator includes linearly coupled logic circuitry provided in association with the plurality of storage units, each logic circuit having as its input one respective data bit of each storage unit. A data bit stored in each storage unit is coupled to a linearly coupled logic circuit that provides one input for the XOR gate and another input provided by the output of the previous XOR gate (e.g., one XOR gate for each storage The chain set of XOR gates provided in association with the unit) has the advantage of only being added to the storage unit itself. In practice, it may be possible for additional logic circuitry (e.g., XOR gates) to be superimposed in a storage unit (e.g., a flip-flop), especially when a double-height cell is used in the layout.

그러나, 다른 실시예에서, 상기 패리티 생성기는 로직 회로의 계층 트리를 포함하고, 상기 계층 트리의 최하위 레벨의 로직 회로는 그 입력으로서 각각의 저장 유닛의 쌍의 각각의 데이터 비트를 각각 갖고 있고, 상기 계층 트리의 최상위 레벨의 로직 회로는 그 입력으로서 패리티 비트를 생성한다. 이러한 로직 회로의 계층 트리는 레이아웃에서 일부 추가 수평 배선의 잠재적인 비용이 있지만 패리티 계산 대기 시간이 감소되는 장점을 갖고 있다. 그러나, 상술된 바와 같이 이러한 추가 수평 배선은 사실, 레이아웃의 기존의 백색 공간이 이러한 배선을 흡수할 수 있는 멀티 포트 레지스터 파일과 같은 구현에서 레이아웃 면적에 거의 영향을 주지 않는다. 이러한 패리티 생성 로직 회로의 게이트(예를 들어, XOR 게이트)의 수는 보통 동일하다. In another embodiment, however, the parity generator comprises a hierarchical tree of logic circuits, the logic circuit of the lowest level of the hierarchical tree having as its input each data bit of each pair of storage units, The logic circuit at the top level of the hierarchical tree generates parity bits as its input. The hierarchical tree of these logic circuits has the advantage that there is a potential cost of some additional horizontal wiring in the layout, but the parity calculation latency is reduced. However, as described above, this additional horizontal wiring actually has little effect on the layout area in an implementation such as a multi-port register file in which the existing white space of the layout can absorb such wiring. The number of gates (e.g., XOR gates) of such parity generation logic circuits is usually the same.

로직 회로의 계층 구조를 갖는 일부 실시예에서, 상기 데이터 저장 장치는 상기 계층 트리의 최상위 레벨에서 출력된 패리티 값을 수신하고 스캔 아웃 신호에 응답하여 스캔 유닛의 스캔 출력부에서 상기 패리티 값을 출력하도록 구성된 상기 스캔 유닛을 더 포함하고 있다. 따라서, 이러한 스캔 유닛에 의해 복수의 데이터 저장 유닛의 내용이 스캔 체인의 단일 포인트를 통해 관찰될 수 있다. 예를 들어, 일련의 데이터 비트가 데이터 저장 유닛의 전체 내용에 상응하기 보다는, 검사 패턴이 통상의(병렬) 데이터 경로를 통해 데이터 저장 유닛에 기록될 수 있고, 최종 패리티 비트가 단일 데이터 비트로서 스캔 아웃될 수 있다. In some embodiments having a hierarchical structure of logic circuits, the data storage device receives the parity value output at the highest level of the hierarchical tree and outputs the parity value at the scan output of the scan unit in response to the scan-out signal And the scan unit configured as described above. Thus, by this scan unit, the contents of a plurality of data storage units can be observed through a single point of the scan chain. For example, rather than a series of data bits corresponding to the entire contents of the data storage unit, an inspection pattern can be written to the data storage unit via a conventional (parallel) data path, and the last parity bit is scanned Out.

상기 패리티 생성기가 단순히, 상기 데이터 워드의 데이터 비트 모두에 의존하는 하나의 패리티 값을 생성하는 경우가 있을 수 있지만, 일부 실시예에서, 상기 패리티 생성기는 상기 복수의 저장 유닛에 저장된 상기 데이터의 모두 보다 적은 데이터에 따라 서브 패리티 비트를 생성하도록 구성되어 있다. 보다 적은 데이터 비트가 이러한 서브 패리티 비트를 생성하도록 사용된다는 사실로 인해 이것 역시 패리티 계산 대기 시간을 줄인다. Although the parity generator may simply generate one parity value that depends on all of the data bits of the data word, in some embodiments the parity generator may generate a parity value that is less than all of the data stored in the plurality of storage units And generates a sub parity bit according to a small amount of data. This also reduces the wait time for parity calculation due to the fact that fewer data bits are used to generate these sub parity bits.

데이터 워드를 위한 서브 패리티의 생성의 특별한 구현은 다수의 형태를 가질 수 있다. 예를 들어, 하나의 실시예에서, 상기 패리티 생성기는 상기 복수의 저장 유닛에 저장된 데이터에 대한 복수의 서브 패리티 비트를 생성하도록 구성되어 있다. 이에 따라, 전체 데이터 워드에 대해 하나의 패리티 비트를 생성하기 보다는, 데이터는 예를 들어, 2개의 부분으로 분할될 수 있고 이러한 부분의 각각에 대해 서브 패리티 비트가 생성될 수 있다. 이로 인해, 특히 패리티 생성기가 선형 연접되어 제공된 실시예에서, 이러한 서브 패리티 비트중 하나의 변화가 상기 검출기에 의해 검출될 때 일어난 에러의 위치의 보다 정밀한 판단이 가능하고, 전체 데이터에 대한 하나의 패리티 비트의 판정 보다 일반적으로 빠르다. A particular implementation of the generation of sub-parities for a data word may take many forms. For example, in one embodiment, the parity generator is configured to generate a plurality of sub-parity bits for data stored in the plurality of storage units. Thus, rather than generating one parity bit for the entire data word, the data can be divided into two parts, for example, and sub-parity bits can be generated for each of these parts. This allows a more precise determination of the location of the error that occurs when a change in one of these sub-parity bits is detected by the detector, particularly in embodiments where the parity generator is provided in linear concatenation, Is generally faster than the determination of bits.

그러나, 데이터 워드의 일부가 무시될 수 있어서, 예를 들어, 데이터 워드의 다른 부분이 에러의 발생에 대해 감시될 필요가 있기 때문에 서브 패리티 비트가 생성되는 경우가 있을 수 있다. 이에 따라, 일부 실시예에서, 상기 패리티 생성기는 상기 복수의 저장 유닛에 저장된 적어도 하나의 데이터 비트가 상기 서브 패리티 비트의 값에 영향을 주지 않도록 구성되어 있다. However, there may be cases where a portion of the data word can be ignored, for example, a sub parity bit is generated because another portion of the data word needs to be monitored for the occurrence of an error. Thus, in some embodiments, the parity generator is configured such that at least one data bit stored in the plurality of storage units does not affect the value of the sub-parity bit.

일부 실시예에서, 상기 데이터 저장 장치는 복수의 데이터 워드를 저장하도록 구성되어 있고, 상기 패리티 생성기는 상기 데이터 워드의 각각에 대한 각각의 패리티 비트를 생성하도록 구성되어 있고, 상기 장치는 상기 각각의 패리티 비트중 어느 하나라도 값이 변하면 에러 플래그를 생성하도록 구성된 결합 로직 회로를 더 포함하고 있다. 이렇게 생성된 에러 플래그에 의해, 에러가 데이터 저장 장치에 저장된 복수의 데이터 워드 중 하나에서 일어났다고 인식하고, 적절한 보정 동작을 취할 수 있다. 또한, 본 기술은 복수의 데이터 워드중에, 데이터 에러가 발생한 특정 위치(즉, 여기에서는, 복수의 데이터 워드중에 에러를 포함하는 특정 데이터 워드)를 식별할 수 있는 것 보다는 에러가 발생하였다는 것을 인식하는 것이 보다 중요한 상황이 있다는 것을 인식하고 있다. 예를 들어, 레지스터 파일에서, (예를 들어, 레지스터 파일에 의해 저장된 복수의 데이터 워드에 저장된 데이터 워드중 하나에 이러한 에러가 상대적으로 드물기 때문에) 특정 데이터 워드(또는 특정 데이터 비트)에 대해 타겟 보정 동작을 취하는 대신에 레지스터 파일의 전체 내용을 단순히 교체하거나 갱신하는 것이 바람직하고 판단할 수 있다. In some embodiments, the data storage device is configured to store a plurality of data words, wherein the parity generator is configured to generate a respective parity bit for each of the data words, And to generate an error flag if the value of any of the bits changes. With the error flag thus generated, it can be recognized that an error has occurred in one of the plurality of data words stored in the data storage device, and an appropriate corrective action can be taken. Further, the present technology recognizes that an error has occurred in a plurality of data words rather than a specific position where a data error occurs (that is, a specific data word including an error in a plurality of data words in this case) It is recognized that there are more important situations. For example, in a register file, for a particular data word (or a particular data bit), a target correction may be made for a particular data word (e.g., because such an error is relatively rare in one of the data words stored in the plurality of data words stored by the register file) It is desirable to simply replace or update the entire contents of the register file instead of taking action.

일부 실시예에서, 상기 장치는 복수의 데이터 워드를 저장하도록 구성되어 있고, 상기 패리티 생성기는 상기 데이터 워드의 각각에 대한 각각의 패리티 비트를 생성하도록 구성되어 있고, 상기 장치는 논-에러 값 또는 에러 값을 유지하도록 구성된 에러 레지스터를 더 포함하고, 상기 에러 레지스터는 상기 각각의 패리티 비트중 하나 이상의 값이 변하면 상기 에러 값 유지로 전환되도록 구성되어 있다. 이러한 구성은 정상 환경에서 논-에러 값을 유지하는 "스티키 레지스터"를 제공하지만, 각각의 패리티 비트중 하나가 값을 바꾸면 에러 값 유지로 전환되도록 구성되어 있고, 추가 패리티 비트의 값이 변한다고 해도 이러한 에러 값을 계속 유지할 것이다. 따라서, 이러한 에러 레지스터는 상기 데이터 저장 장치에 저장된 복수의 데이터 워드중 하나에서 에러가 발생하였는지를 판정하도록 (예를 들어, 폴링 메커니즘을 통해) 감시될 수 있고, 상술된 예에서 처럼, 어느 특정 데이터 워드가 에러를 유발하였는지를 더 식별 시도하지 않고 복수의 데이터 워드 모두를 교체하거나 갱신하는 것과 같은 보정 동작을 취할 수 있다. In some embodiments, the apparatus is configured to store a plurality of data words, the parity generator being configured to generate a respective parity bit for each of the data words, the apparatus comprising: a non-error value or error Wherein the error register is configured to switch to maintaining the error value if at least one of the parity bits is changed. This configuration provides a " sticky register "that maintains a non-error value in a normal environment, but it is configured such that if one of the parity bits changes its value, the error value is maintained, We will keep this error value constant. Thus, such an error register can be monitored (e.g., via a polling mechanism) to determine if an error has occurred in one of a plurality of data words stored in the data storage device, and as in the example described above, Such as replacing or updating all of a plurality of data words without further attempting to determine if the error has occurred.

제2 특징에서, 본 발명은 복수의 데이터 저장 유닛에 데이터를 저장하는 단계; 판독 접근에 응답하여 상기 복수의 저장 유닛으로부터 상기 데이터를 출력하는 단계; 상기 복수의 저장 유닛과 연관된 패리티 생성기의 복수의 입력부의 각각에서 상기 복수의 저장 유닛의 각각으로부터 값을 수신하는 단계; 상기 복수의 입력부로부터 패리티 값을 결정하는 단계; 상기 제1 패리티 값을 출력하는 단계; 및 능동 비교기에 의해 상기 출력된 패리티의 변화를 검출하는 단계를 포함하고, 상기 패리티 값의 결정은 상기 복수의 저장 유닛에 저장된 상기 데이터에 대한 상기 판독 접근으로부터 독립되어 있는 방법을 제공한다. In a second aspect, the present invention provides a method comprising: storing data in a plurality of data storage units; Outputting the data from the plurality of storage units in response to a read access; Receiving a value from each of the plurality of storage units at each of a plurality of inputs of a parity generator associated with the plurality of storage units; Determining a parity value from the plurality of input units; Outputting the first parity value; And detecting a change in the output parity by an active comparator, wherein the determination of the parity value is independent of the read access to the data stored in the plurality of storage units.

제3 특징에서, 본 발명은 복수의 데이터 저장 유닛에 데이터를 저장하기 위한 수단; 판독 접근에 응답하여 상기 복수의 저장 유닛으로부터 상기 데이터를 출력하기 위한 수단; 상기 복수의 저장 유닛과 연관된 패리티 값을 생성하기 위한 수단의 복수의 입력부중 각각에서 상기 복수의 저장 유닛의 각각으로부터 값을 수신하기 위한 수단으로서, 상기 복수의 저장 유닛과 연관된 패리티 값을 생성하기 위한 수단은 상기 복수의 저장 유닛에 저장된 상기 데이터에 대한 상기 판독 접근으로부터 독립되어 있는 패리티 값을 생성하도록 구성되어 있는 수단; 상기 제1 패리티 값을 출력하기 위한 수단; 및 상기 출력된 패리티의 변화를 검출하기 위한 수단을 포함하는 장치를 제공한다. In a third aspect, the present invention provides a system comprising: means for storing data in a plurality of data storage units; Means for outputting the data from the plurality of storage units in response to a read access; Means for receiving a value from each of the plurality of storage units at each of a plurality of inputs of a means for generating a parity value associated with the plurality of storage units, The means being configured to generate a parity value that is independent of the read access to the data stored in the plurality of storage units; Means for outputting the first parity value; And means for detecting a change in the output parity.

제4 특징에서, 본 발명은 각각 데이터 워드의 각각의 데이터 비트를 저장하도록 구성된 복수의 데이터 저장 유닛; 상기 복수의 데이터 저장 유닛에 저장된 데이터 워드의 데이터 비트에 따라 상기 데이터 워드에 대한 패리티 비트를 생성하도록 구성된 저장 데이터 값 패리티 생성 회로; 및 상기 패리티 비트의 값의 변화를 검출하도록 구성된 천이 검출 회로를 포함하고, 상기 저장 데이터 값 패리티 생성 회로는 상기 데이터 워드가 상기 복수의 데이터 저장 유닛으로부터 판독될 때 상기 저장 데이터 값 패리티 생성 회로에서 전환이 일어나지 않도록 구성되어 있는 데이터 저장 장치를 제공한다. In a fourth aspect, the invention provides a data processing apparatus comprising: a plurality of data storage units each configured to store a respective data bit of a data word; A stored data value parity generation circuit configured to generate a parity bit for the data word according to a data bit of a data word stored in the plurality of data storage units; And a transition detection circuit configured to detect a change in the value of the parity bit, and wherein the stored data value parity generation circuit generates, when the data word is read from the plurality of data storage units, To the data storage device.

상기 저장 데이터 값 패리티 생성 회로는 상기 데이터 저장 유닛중 하나에 저장된 데이터 비트의 값이 변하지 않으면 상기 저장 데이터 값 패리티 생성 회로에서 전환이 일어나지 않도록 구성되어 있다. The stored data value parity generation circuit is configured such that the stored data value parity generation circuit does not cause a transition if the value of the data bit stored in one of the data storage units does not change.

상기 데이터 저장 장치는 새로운 데이터 워드가 상기 복수의 데이터 저장 유닛에 기록될 때 기록 패리티를 생성하고 상기 기록 패리티를 저장하도록 구성된 기록 패리티 비트 회로를 더 포함하고, 상기 천이 검출 회로는 상기 데이터 워드에 대한 패리티 비트와 상기 저장된 기록 패리티 비트의 비교에 의해 상기 변화를 검출하도록 구성되어 있다. Wherein the data storage device further comprises a write parity bit circuit configured to generate a write parity and store the write parity when a new data word is written to the plurality of data storage units, And to detect the change by comparing the stored parity bit with the stored parity bit.

상기 천이 검출 회로는 상기 데이터 워드에 대한 패리티 비트가 변하지 않으면 상기 천이 검출 회로에서 전환이 일어나지 않도록 구성되어 있다. The transition detection circuit is configured such that the transition detection circuit does not cause a transition if the parity bit for the data word does not change.

상기 데이터 저장 장치는 상기 데이터 워드가 상기 복수의 데이터 저장 유닛에 기록되고 있을 때 어서트되는 기록 인에이블 신호를 전송하도록 구성된 기록 인에이블 신호 라인을 더 포함하고, 상기 기록 인에이블 신호 라인은 상기 천이 검출 회로에 결합되어 있고 상기 천이 검출 회로는 상기 기록 인에이블 신호가 어서트될 때 작동불능된다. Wherein the data storage device further comprises a write enable signal line configured to transmit a write enable signal asserted when the data word is being written to the plurality of data storage units, And the transition detection circuit is disabled when the write enable signal is asserted.

상기 데이터 저장 장치는 상기 복수의 데이터 저장 유닛이 판독될 수 있는 복수의 판독 포트를 포함하는 멀티 포트 레지스터 파일일 수 있다. The data storage device may be a multiport register file including a plurality of read ports through which the plurality of data storage units can be read.

상기 저장 데이터 값 패리티 생성 회로는 상기 복수의 데이터 저장 유닛과 연관되어 제공된 선형 연접된 로직 회로를 포함하고, 각각의 로직 회로는 그 입력중 하나로서 각각의 데이터 저장 유닛의 각각의 데이터 비트를 갖고 있다. The stored data value parity generation circuit comprises linearly coupled logic circuits provided in association with the plurality of data storage units, each logic circuit having as its input one respective data bit of each data storage unit .

상기 저장 데이터 값 패리티 생성 회로는 로직 회로의 계층 트리를 포함하고, 상기 계층 트리의 최하위 레벨의 로직 회로는 그 입력으로서 각각의 데이터 저장 유닛의 쌍의 각각의 데이터 비트를 각각 갖고 있고, 상기 계층 트리의 최상위 레벨의 로직 회로는 그 입력으로서 상기 데이터 워드에 대한 패리티 비트를 생성한다. Wherein the stored data value parity generating circuit comprises a hierarchical tree of logic circuits, the logic circuit of the lowest level of the hierarchical tree having as its input each data bit of each pair of data storage units, The logic circuit of the highest level of the logic circuit generates a parity bit for the data word as its input.

상기 데이터 저장 장치는 상기 계층 트리의 최상위 레벨에서 출력된 데이터 워드에 대한 패리티를 수신하고 스캔 아웃 신호에 응답하여 스캔 유닛의 스캔 출력부에서 상기 패리티 비트를 출력하도록 구성된 상기 스캔 유닛을 더 포함할 수 있다. The data storage device may further comprise the scan unit configured to receive a parity for a data word output at the highest level of the hierarchical tree and output the parity bit at a scan output of the scan unit in response to a scanout signal have.

상기 저장 데이터 값 패리티 생성 회로는 상기 복수의 데이터 저장 유닛에 저장된 상기 데이터 워드의 모든 데이터 비트 보다 적은 수의 데이터 비트에 따라 상기 데이터 워드에 대한 서브 패리티 비트를 생성하도록 구성될 수 있다. The stored data value parity generation circuit may be configured to generate a sub parity bit for the data word according to a data bit number less than all the data bits of the data word stored in the plurality of data storage units.

상기 저장 데이터 값 패리티 생성 회로는 상기 데이터 워드에 대한 복수의 서브 패리티 비트를 생성하도록 구성될 수 있다. The stored data value parity generation circuit may be configured to generate a plurality of sub parity bits for the data word.

상기 저장 데이터 값 패리티 생성 회로는 상기 복수의 데이터 저장 유닛에 저장된 데이터 워드의 데이터 비트중 적어도 하나가 상기 서브 패리티 비트의 값에 영향을 주지 않도록 구성될 수 있다. The stored data value parity generation circuit may be configured such that at least one of the data bits of the data word stored in the plurality of data storage units does not affect the value of the sub parity bit.

상기 데이터 저장 장치는 복수의 데이터 워드를 저장하도록 구성될 수 있고, 상기 저장 데이터 값 패리티 생성 회로는 상기 데이터 워드의 각각에 대한 각각의 패리티 비트를 생성하도록 구성될 수 있고, 상기 데이터 저장 장치는 상기 각각의 패리티 비트중 어느 하나라도 값이 변하면 에러 플래그를 생성하도록 구성된 결합 로직 회로를 더 포함할 수 있다. The data storage device may be configured to store a plurality of data words and the stored data value parity generation circuit may be configured to generate a respective parity bit for each of the data words, And a combinational logic circuit configured to generate an error flag if any one of the respective parity bits changes in value.

상기 데이터 저장 장치는 복수의 데이터 워드를 저장하도록 구성될 수 있고, 상기 저장 데이터 값 패리티 생성 회로는 상기 데이터 워드의 각각에 대한 각각의 패리티 비트를 생성하도록 구성될 수 있고, 상기 데이터 저장 장치는 논-에러 값 또는 에러 값을 유지하도록 구성된 에러 레지스터를 더 포함하고, 상기 에러 레지스터는 상기 각각의 패리티 비트중 하나 이상의 값이 변하면 상기 에러 값 유지로 전환되도록 구성될 수 있다. The data storage device may be configured to store a plurality of data words and the stored data value parity generation circuit may be configured to generate a respective parity bit for each of the data words, And - an error register configured to maintain an error value or an error value, wherein the error register can be configured to switch to maintaining the error value if at least one of the values of the respective parity bits changes.

제5 특징에서, 본 발명은 복수의 데이터 저장 유닛에 데이터 워드의 각각의 데이터 비트를 저장하는 단계; 상기 복수의 데이터 저장 유닛에 저장된 데이터 워드의 데이터 비트에 따라 복수의 중간 단계를 통해 상기 데이터 워드에 대한 패리티 비트를 생성하는 단계로서, 상기 데이터 워드가 상기 복수의 데이터 저장 유닛으로부터 판독될 때 상기 복수의 중간 단계에서 전환이 일어나지 않는 단계; 및 상기 패리티 비트의 값의 변화를 검출하는 단계를 포함하는 데이터 저장 방법을 제공한다. In a fifth aspect, the invention provides a method comprising: storing each data bit of a data word in a plurality of data storage units; Generating a parity bit for the data word through a plurality of intermediate steps according to a data bit of the data word stored in the plurality of data storage units, wherein when the data word is read from the plurality of data storage units, Wherein no conversion takes place at an intermediate stage of the process; And detecting a change in the value of the parity bit.

제6 특징에서, 본 발명은 복수의 데이터 저장 유닛에 데이터 워드의 각각의 데이터 비트를 저장하기 위한 수단; 상기 복수의 데이터 저장 유닛에 저장된 데이터 워드의 데이터 비트에 따라 복수의 중간 단계를 통해 상기 데이터 워드에 대한 패리티 비트를 생성하기 위한 수단으로서, 상기 데이터 워드가 상기 복수의 데이터 저장 유닛으로부터 판독될 때 상기 복수의 중간 단계에서 전환이 일어나지 않는 수단; 및 상기 패리티 비트의 값의 변화를 검출하기 위한 수단을 포함하는 데이터 저장 장치를 제공한다. In a sixth aspect, the present invention provides an apparatus comprising: means for storing a respective data bit of a data word in a plurality of data storage units; Means for generating a parity bit for the data word through a plurality of intermediate steps in accordance with the data bits of the data word stored in the plurality of data storage units, Means for not switching in a plurality of intermediate steps; And means for detecting a change in the value of the parity bit.

본 발명은 다음의 첨부된 도면에 설명된 바와 같이 그 실시예를 참조하여 단지 예로서 설명될 것이다.
도 1은 종래 기술에 따른 저장된 데이터 값이 기록되었을 때와 판독되었을 때 사이에 이러한 저장된 데이터 값에 에러가 발생하였는지를 판정하기 위한 패리티 비트 생성의 사용을 개략적으로 설명한 도면이다.
도 2는 하나의 실시예에서 저장 데이터 값에서 에러를 검출할 수 있도록 구성된 데이터 저장 장치를 개략적으로 도시한 도면이다.
도 3은 다른 실시예에서 저장 데이터 값에서 에러를 검출할 수 있도록 구성된 데이터 저장 장치를 개략적으로 도시한 도면이다.
도 4a 및 도 4b는 데이터 저장 유닛과 연관되어 제공된 패리티 생성 회로의 2개의 실시예를 개략적으로 설명하는 도면이다.
도 5a는 하나의 실시예에서 선형 연접된 XOR 게이트로서 패리티 생성 회로를 제공하는 것을 개략적으로 도시하는 도면이다.
도 5b는 하나의 실시예에서 XOR 트리로서 패리티 생성 회로를 제공하는 것을 개략적으로 설명하는 도면이다.
도 6은 하나의 실시예에서 스캔 플롭이 XOR 트리의 출력부에 결합된 XOR 트리로서 패리티 생성 회로를 제공하는 것을 개략적으로 설명하는 도면이다.
도 7은 하나의 실시예에서 하나 이상의 서브 패리티 비트의 생성을 개략적으로 설명하는 도면이다.
도 8은 하나의 실시예에서 멀티 포트 레지스터 파일을 개략적으로 도시한 도면이다.
도 9는 하나의 실시예의 방법에서 취해진 일련의 단계를 개략적으로 설명하는 도면이다.
The invention will now be described, by way of example only, with reference to the embodiments thereof, as illustrated in the accompanying drawings.
1 schematically illustrates the use of parity bit generation to determine if an error has occurred in such stored data values between when a stored data value according to the prior art was recorded and when it was read.
Figure 2 is a schematic diagram of a data storage device configured to detect errors in stored data values in one embodiment.
Figure 3 is a schematic diagram of a data storage device configured to detect errors in stored data values in another embodiment.
Figures 4A and 4B are schematic diagrams illustrating two embodiments of a parity generation circuit provided in association with a data storage unit.
5A is a diagram schematically illustrating the provision of a parity generation circuit as a linearly connected XOR gate in one embodiment.
5B schematically illustrates providing a parity generation circuit as an XOR tree in one embodiment.
Figure 6 schematically illustrates that in one embodiment the scan flops provide a parity generator circuit as an XOR tree coupled to the output of the XOR tree.
7 is a diagram schematically illustrating the generation of one or more sub-parity bits in one embodiment.
Figure 8 is a schematic diagram of a multiport register file in one embodiment.
Figure 9 is a schematic illustration of a series of steps taken in the method of one embodiment.

도 2는 하나의 실시예의 데이터 저장 장치(20)를 개략적으로 도시하고 있다. 이러한 데이터 저장 장치(20)는 프로세서 유닛이 사용하는 특정 데이터 값의 저장을 위해 프로세서 유닛과 밀접하게 연관되어 제공된 레지스터 파일이다. 이러한 데이터 값은 데이터 저장 장치에 데이터 워드로서 저장되어 있고, 기록 연산에서 데이터 워드는 데이터 저장 장치의 기억 용량에 기록되고, 이러한 기억 용량은 이러한 실시예에서 각각 데이터 워드의 하나의 비트를 저장하도록 구성된 플립플롭의 세트에 의해 제공된 다수의 데이터 저장 유닛(21-24)에 의해 제공되어 있다. (특히 데이터 저장 유닛(23, 24)이 일련의 점들에 의해 분리되어 있다는 사실에 의해) 저장되는 데이터 워드의 비트의 수는 4를 초과할 수 있고, 도 2에 도시된 단지 4개의 데이터 저장 유닛은 단지 설명을 위한 것이라는 것을 이해할 것이다. 또한, 데이터 저장 장치(20)는 다수의 데이터 워드를 저장하도록 구성되어 있지만, 이해를 위해, 하나의 데이터 워드와 관련된 기억 용량만이 도시되어 있다. Figure 2 schematically illustrates a data storage device 20 of one embodiment. This data storage device 20 is a register file provided in close association with a processor unit for storage of a specific data value used by the processor unit. These data values are stored as data words in the data storage device, and in the write operation, the data words are written to the storage capacity of the data storage device, which in this embodiment is each configured to store one bit of the data word And is provided by a plurality of data storage units 21-24 provided by a set of flip flops. The number of bits of the data word to be stored (in particular by the fact that the data storage units 23 and 24 are separated by a series of dots) may exceed four and only four data storage units Will be understood to be merely illustrative. Further, although the data storage device 20 is configured to store a plurality of data words, for the sake of understanding, only the storage capacity associated with one data word is shown.

기록 프로세스의 일부로서, 데이터 워드 역시 데이터 워드의 데이터 비트의 각 값에 의존하여 단일 패리티 비트 P를 생성하도록 구성된 XOR 트리(25)로 전송된다. 이러한 패리티 비트 P는 데이터 워드 자체를 저장하는 데이터 저장 유닛(21-24)과 연관되어 제공된 패리티 비트 저장 로케이션(26)에 저장된다. 동시 패리티 생성 회로(27) 역시 저장 데이터 워드를 유지하는 데이터 저장 유닛(21-24)과 연관되어 제공된다. 특히, 이러한 동시 패리티 생성 회로(27)는 데이터 워드를 유지하는 데이터 저장 유닛의 실질상 제1 데이터 저장 유닛(21)과 연관되어 제공된 패리티 로직 유닛(28-30)을 포함하고 있다. 각 패리티 로직 유닛(28-30)은 데이터 저장 유닛의 세트의 이전의 단계로부터 유도된 입력을 취하고 이러한 입력을 연관된 데이터 저장 유닛에 의해 유지된 값과 논리적으로 결합하도록 구성되어 있다. 도 2에 도시된 실시예에서, 패리티 로직 유닛(28-30)은 각 XOR 게이트이어서 XOR 게이트(28)는 그 입력으로서 데이터 저장 유닛(21, 22)에 저장된 값을 취하고, XOR 게이트(29)는 그 입력으로서 하나의 입력으로의 XOR(28)의 출력 및 데이터 저장 유닛(23)에 저장된 값을 취하고, XOR 게이트(30)는 그 입력으로서 이전의 XOR 게이트(도시되지 않음)로부터의 출력 및 데이터 저장 유닛(24)에 저장된 값을 취한다. 이러한 방식으로, 데이터 저장 유닛(21-24)의 각 내용에 의존하는 패리티 비트가 생성된다. 특히 이렇게 하여, 데이터 저장 유닛(21-24)으로의 임의의 판독 접근에 관계없이 패리티 비트를 실시간으로 계산하도록 배열되어 있다는 것을 유념해야 한다. XOR 게이트(28-30)에 의해 생성된 패리티 비트가 데이터 워드가 데이터 저장 유닛(21-24)에 기록되고 있는 동안에 다소 미결정 상태이지만, 일단 데이터 워드가 기록되면, 이러한 동시 패리티 생성 로직은 데이터 저장 유닛중 하나에서 비트 플립이 존재할 때까지 (또는 새로운 데이터 워드가 데이터 저장 유닛에 기록될 때까지) 전환되지 않을 것이다. 마지막 XOR 게이트(30)의 출력은 능동 비교 회로(31)에 하나의 입력을 제공하고, 이러한 능동 비교 회로(31)는 그 다른 입력으로서 패리티 비트 저장부(26)에 저장된 값 P를 취한다. 능동 비교 회로(31)는 예를 들어, 다양한 XOR 게이트에 의해 제공되는 그 입력중 하나가 변할 때만 전환한다는 점에서 "능동성"을 갖는다. As part of the write process, the data word is also sent to the XOR tree 25, which is also configured to generate a single parity bit P depending on each value of the data bits of the data word. This parity bit P is stored in the parity bit storage location 26 provided in association with the data storage unit 21-24 which stores the data word itself. Simultaneous parity generation circuit 27 is also provided in association with data storage unit 21-24 which holds the stored data word. In particular, this simultaneous parity generation circuit 27 includes a parity logic unit 28-30 provided in association with a substantially first data storage unit 21 of a data storage unit holding a data word. Each parity logic unit 28-30 is configured to take an input derived from a previous stage of the set of data storage units and to logically combine the input with the value held by the associated data storage unit. 2, the parity logic unit 28-30 is each XOR gate so that the XOR gate 28 takes as its input the value stored in the data storage unit 21,22 and the XOR gate 29, Takes as its input the output of the XOR 28 as one input and the value stored in the data storage unit 23 and the XOR gate 30 receives as its input the output from the previous XOR gate (not shown) And takes a value stored in the data storage unit 24. [ In this way, parity bits are generated which depend on each content of the data storage unit 21-24. In particular, it should be noted that, in this way, it is arranged to calculate the parity bits in real time regardless of any read accesses to the data storage units 21-24. The parity bit generated by the XOR gate 28-30 is somewhat pending while the data word is being written to the data storage unit 21-24, but once the data word is written, Will not be switched until there is a bit flip in one of the units (or until a new data word is written to the data storage unit). The output of the last XOR gate 30 provides one input to the active comparator circuit 31 which takes the value P stored in the parity bit store 26 as its other input. The active comparator circuit 31 has "active" in that it switches only when, for example, one of its inputs provided by the various XOR gates changes.

도 3은 다른 실시예의 데이터 저장 장치(40)를 개략적으로 도시하고 있다. 도 2에 도시된 실시예와 같이, 데이터 저장 장치(40)는 프로세서 유닛이 사용하는 특정 데이터의 저장을 위해 프로세서 유닛과 밀접하게 연관되어 제공되는 레지스터 파일이다. 또한, 도 2에 도시된 실시예와 같이, 데이터 저장 장치(40)는 다수의 데이터 워드를 저장하도록 구성되어 있지만, 이해를 위해 하나의 데이터 워드와 관련된 기억 용량만이 도시되어 있다. 3 schematically shows a data storage device 40 of another embodiment. 2, the data storage device 40 is a register file provided in close association with a processor unit for storage of specific data used by the processor unit. Also, as in the embodiment shown in FIG. 2, the data storage device 40 is configured to store a plurality of data words, but for clarity, only the storage capacity associated with one data word is shown.

여기에서, 도 2에 도시된 실시예의 경우에서와 같이, 기록 접근 동안, 각각 데이터 워드의 단일 비트를 유지하는 데이터 저장 유닛(41-44)의 세트에 멀티비트 데이터 워드가 기록된다. 그러나, 여기에서, 도 2에 실시예와 달리, 아무런 패리티 비트도 기록 연산의 일부로서 계산되고 저장되지 않는다. 그러나, 도 3의 패리티 로직 유닛(45-47)에 의해 표시된 동시 패리티 생성 체인은 도 2의 패리티 로직 유닛(28-30)에 의해 표시된 동시 패리티 체인(27)에 직접 대응한다. Here, as in the case of the embodiment shown in FIG. 2, during a write access, a multi-bit data word is written to the set of data storage units 41-44, each holding a single bit of the data word. However, here, unlike the embodiment in Fig. 2, no parity bit is calculated and stored as part of the write operation. However, the concurrent parity generation chain indicated by the parity logic units 45-47 of FIG. 3 corresponds directly to the concurrent parity chain 27 indicated by the parity logic units 28-30 of FIG.

도 3에 도시된 실시예에서, 동시 패리티 체인의 최종 컴포넌트(47)의 출력은 이러한 값의 임의의 변화를 검출하고 이러한 변화가 검출될 때 에러 검출 신호를 출력하도록 구성된 천이 검출기(48)에 의해 수신된다. 도 3의 데이터 저장 유닛(41-44)의 세트는 데이터 저장 장치의 특정 행(행 0)에 상응하고, 이러한 데이터 저장 장치는 데이터 워드를 저장할 수 있는 이러한 데이터 저장 유닛의 추가 행(도시되지 않음)을 포함하고 있다. 이러한 데이터 저장 장치의 특정 행으로의 기록은 이러한 행을 위한 대응하는 "기록 인에이블" 신호가 어서트될 때 가능하다(그리고, 당업자는 이러한 기록 인에이블 신호의 사용을 잘 알고 있으므로 추가로 상세히 설명되지 않았다). 도 3에 도시된 바아 같이, 천이 검출기(48)는 또한 기록 인에이블 신호 라인에 결합되어 있고, 이러한 신호는 천이 검출기(48)의 인에이블 입력에 반전되어 결합되어 있다. 이러한 구성에 의해 기록 프로세스 동안 천이 검출이 가능하지 않도록 보장된다. 하지만 이러한 행이 기록되고 있지 않을 때, 천이 검출기는 활성화된다. 이에 따라, 그 다음으로, 에러로 인한 이러한 행의 임의의 상태 변화는 천이 검출기(48)에 의해 포착될 수 있다. 도 2에 도시된 실시예와 비교할 때, 도 3의 이러한 실시예는 필요한 레이아웃 면적에서 장점을 갖고 있는데, 그 이유는 추가 XOR 트리 및 패리티 저장 유닛(각각 도 2의 부재번호 25 및 26)이 생략되기 때문이다. 그러나, 도 3에 도시된 실시예의 특징은 이러한 행이 기록 사이클 동안 보다 더 취약하다는 것이다. 그 이유는 (도 2의 패리티 비트 저장 유닛(26)에 저장된 것과 같은) 기준 패리티 비트가 도 3 실시예의 일부가 아니고 기록 프로세스 동안 일어나는 변화가 식별되지 않는 가능성이 존재하기 때문이다. 그러나, 많은 경우에 기록 프로세스가 비교적 드물고 후속 판독 프로세스가 비교적 훨씬 더 빈번하다는 것을 고려하면, 이러한 리스크는 수용가능하게 낮은 레벨에 있도록 결정될 수 있다. 도 2에 도시된 능동 비교 회로(31)와 유사하게, 천이 검출기(48)는 (패리티 로직 유닛(47)으로부터의) 그 입력의 값이 변경될 때만 전환되도록 구성되어 있다. 3, the output of the last component 47 of the concurrent parity chain is detected by a transition detector 48 configured to detect any change in this value and output an error detection signal when such a change is detected . The set of data storage units 41-44 of FIG. 3 corresponds to a particular row (row 0) of the data storage device, and this data storage device includes additional rows of such data storage units ). Writing to a particular row of such a data storage device is possible when the corresponding "write enable" signal for this row is asserted (and those skilled in the art are familiar with the use of this write enable signal, ). 3, transition detector 48 is also coupled to the write enable signal line, which is coupled in reverse to the enable input of transition detector 48. [ This configuration ensures that transition detection is not possible during the recording process. However, when these rows are not being recorded, the transition detector is activated. Thus, any change in state of this row due to an error can then be captured by the transition detector 48. This embodiment of FIG. 3 has advantages in the required layout area, as compared to the embodiment shown in FIG. 2, because the additional XOR tree and parity storage units (member numbers 25 and 26, respectively, . However, a feature of the embodiment shown in FIG. 3 is that these rows are more vulnerable than during the write cycle. This is because the reference parity bit (such as that stored in the parity bit storage unit 26 of FIG. 2) is not part of the embodiment of FIG. 3 and there is a possibility that a change that occurs during the recording process is not present. However, considering that in many cases the write process is relatively infrequent and the subsequent read process is relatively much more frequent, such risk can be determined to be at an acceptable low level. Similar to the active comparator circuit 31 shown in FIG. 2, the transition detector 48 is configured to be switched only when the value of its input (from the parity logic unit 47) is changed.

도 4a 및 도 4b는 예를 들어, 도 2의 데이터 저장 유닛(23) 및 연관된 패리티 생성 로직(29) 또는 도 3의 데이터 저장 유닛(43) 및 그 연관된 패리티 생성 로직(46)과 같은, 연관된 패리티 생성 로직과 함께 개별적인 데이터 저장 유닛의 2개의 실시예를 개략적으로 도시하고 있다. 도 4a는 플립플롭으로서 구현된 데이터 저장 유닛을 개략적으로 도시하고 있다. 이러한 플립플롭이 RTL(레지스터-트랜스퍼 레벨)에서 구현된 레지스터 파일 내의 데이터 저장 유닛으로서 제공되는 경우에, 이러한 레지스터 파일은 예를 들어, 플립플롭을 사용하여 합성 툴에 의해 합성될 수 있고 동시 패리티 검출 로직 역시 RTL로 구현될 수 있다. 대안으로, 패리티 검출 로직(본 예에서는 XOR 게이트)이 플립플롭 자체 내에 제공될 수 있고 레지스터 파일은 배치 및 배선 기술에 의해 구현될 수 있다. 플립플롭에 XOR 로직을 제공하는 것은 특히 2배 높이의 플립플롭 셀이 사용되는 경우에 가능하다. 도 4b는 데이터 저장 유닛이 주문형 비트 셀 기반 레지스터 파일 설계에서 제공되는 예를 개략적으로 도시하고 있다. 4A and 4B are diagrams illustrating the operation of the associated data storage unit 23 and associated parity generation logic 29 or data storage unit 43 and its associated parity generation logic 46 of FIG. And schematically illustrates two embodiments of separate data storage units with parity generation logic. 4A schematically shows a data storage unit implemented as a flip-flop. When such a flip-flop is provided as a data storage unit in a register file implemented in RTL (register-transfer level), such register file can be synthesized by a synthesis tool using, for example, a flip- Logic can also be implemented in RTL. Alternatively, the parity detection logic (XOR gate in this example) may be provided in the flip-flop itself and the register file may be implemented by placement and routing techniques. Providing the XOR logic in the flip-flop is especially possible when a double-height flip-flop cell is used. Figure 4b schematically shows an example where the data storage unit is provided in an on-demand bit cell based register file design.

도 5a 및 도 5b는 동시 패리티 검출 로직을 제공하기 위한 2개의 대안의 실시예를 개략적으로 도시하고 있다. 도 5a에서 선형 연접 또는 체인으로서 개별적인 패리티 검출 유닛(XOR 게이트(60))이 제공되어 있다. 이와 대조하여 도 5b는 개별적인 데이터 저장 유닛(61)의 쌍이 계층 트리의 최하위 레벨에서 비교되고 반복 프로세스로 함께 결합되어, 데이터 저장 유닛(61)에 저장되는 데이터 워드를 위한 최종 패리티 비트를 생성하는 트리 구조로 XOR 게이트(62)가 배열되어 있는 계층 트리로서 배열된 동시 패리티 생성 로직을 개략적으로 도시하고 있다. 도 5b에 도시된 트리 구조의 장점은 수평 배선의 비용에도 불구하고 도 5a에 도시된 선형 연접에 대해 감소된 패리티 계산 대기 시간이다. Figures 5A and 5B schematically illustrate two alternative embodiments for providing concurrent parity detection logic. In Fig. 5A, a separate parity detection unit (XOR gate 60) is provided as a linear concatenation or chain. In contrast, FIG. 5B shows that a pair of individual data storage units 61 are compared at the lowest level of the hierarchical tree and combined together in an iterative process to generate a final parity bit for the data word stored in the data storage unit 61 Schematically illustrates the concurrent parity generation logic arranged as a hierarchical tree in which XOR gates 62 are arranged. The advantage of the tree structure shown in FIG. 5B is the reduced parity calculation latency for the linear concatenation shown in FIG. 5A despite the cost of the horizontal wiring.

도 6은 도 5b에 도시된 것과 관련된, 즉, 동시 패리티 생성 로직이 계층 트리로서 배열되어 있는 실시예를 개략적으로 도시하고 있는데, 이러한 실시예에서, XOR 트리(게이트)(62)의 출력 역시 스캔-플롭(63)에 제공된다. 스캔 플롭(63)은 스캔 아웃 신호(즉, 여기에서는 그 스캔 클록 입력)에 응답하여 그 출력부에서 XOR 트리의 출력(즉, 패리티 비트)을 제공하도록 구성되어 있다. 이로 인해 자동 검사 패턴 생성(ATPG) 데이터 워드가 개별적인 데이터 저장 유닛(61)에 (병렬로) 기록될 수 있고(도시된 예에서, 이러한 데이터 저장 유닛(61)은 레지스터 파일에서 8-비트 데이터 워드 저장 로케이션을 제공한다), XOR 트리(62)는 레지스터 파일의 플립플롭(61)의 각각을 관찰할 수 있다. XOR 트리(62)의 끝에 관찰 검사 포인트(스캔 플롭(63))를 추가함으로써 스캔 체인 전체에서 레지스터 파일 플립플롭(61)을 스캔할 필요가 없다. 규격 ATPG는 예를 들어, 제1 패턴을 레지스터 파일에 병렬로 인가한 다음 제2 패턴을 레지스터 파일에 병렬로 인가하여, 레지스터 플립플롭(61)을 검사하는데 사용될 수 있다. 후속 패턴 사이의 플립핑 비트에 대한 정확한 응답이 레지스터 파일을 검사하기 위해 스캔 플립플롭(63)의 스캔 출력부에 관찰될 수 있다. 그래서, 약간 증가된 면적만으로 레지스터 파일의 검사능력이 향상될 수 있고, 실제로 각 개별적인 데이터 저장 유닛(61)과 하나씩 연관된 스캔 플립플롭의 체인이 제공되는 보통의 방식과 비교하여 상당한 수의 스캔 플립플롭을 감소시킬 수 있다.Figure 6 schematically illustrates an embodiment in which the concurrent parity generation logic is arranged as a hierarchical tree, as shown in Figure 5B, in which the output of the XOR tree (gate) - flop (63). The scan flip 63 is configured to provide the output of the XOR tree (i.e., the parity bit) at its output in response to a scan-out signal (i.e., its scan clock input). This allows automatic test pattern generation (ATPG) data words to be written (in parallel) to a separate data storage unit 61 (in the example shown, such data storage unit 61 is able to write 8- Storage location), the XOR tree 62 may observe each of the flip flops 61 of the register file. There is no need to scan the register file flipflops 61 throughout the scan chain by adding observation check points (scan flops 63) at the end of the XOR tree 62. [ A standard ATPG can be used, for example, to test a register flip flop 61 by applying a first pattern in parallel to a register file and then applying a second pattern to a register file in parallel. An exact response to the flip bits between subsequent patterns can be observed in the scan output of the scan flip-flop 63 to inspect the register file. Thus, a slightly increased area can improve the checking capability of the register file, and a significant number of scan flip-flops (as compared to the normal scheme in which a chain of scan flip-flops is associated with each individual data storage unit 61 one by one) Can be reduced.

도 7은 패리티 계산이 모두 보다 적은 데이터 워드에 실행될 수 있는 데이터 워드(64)를 개략적으로 도시하고 있다. 이것은 데이터 워드(64)의 4개의 최상위 비트에 기초하여 생성된 서브 패리티 비트 A 및 데이터 워드(64)의 4개의 최하위 비트에 기초하여 생성된 서브 패리티 비트 B에 의해 도 7에 도시되어 있다. 일부 실시예에서, 서브 패리티 비트 A 및 B 모두가 생성되어, 에러에 대해 데이터 워드(64)를 감시하는 전체 적용 범위를 제공하고 전체 데이터 워드(64)에 대해 생성된 단일 패리티 비트에 대해 감소된 패리티 계산 대기 시간을 가질 수 있는데, 그 이유는 보다 적은 수의 비트가 각 서브 패리티 비트를 생성하기 위해 결합되기 때문이다. 이것은 물론 단일 패리티 비트와 대조되어 2개의 서브 패리티 비트를 계산하는데 필요한 추가 로직의 비용으로 이루어진다. 대신 도 7에 도시된 2개의 서브 패리티 비트중 하나 만이, 예를 들어, 서브 패리티 비트 A 만이 생성되는 경우가 있을 수 있다. 이것은 데이터 워드(64)의 일부만이 에러 발생의 감시를 필요로 하고, 나머지 부분은 덜 중요하고 이러한 부분에서 일어나는 에러가 무시될 수 있는 상황에 유익할 수 있다. Figure 7 schematically shows a data word 64 in which parity computation can be performed on all lesser data words. This is illustrated in FIG. 7 by the sub-parity bit A generated based on the four most significant bits of the data word 64 and the sub-parity bit B generated based on the four least significant bits of the data word 64. In some embodiments, both subparity bits A and B are generated to provide a full coverage for monitoring the data word 64 for errors and to provide a reduced coverage for a single parity bit generated for the entire data word 64 Parity calculation wait time because a smaller number of bits are combined to produce each sub parity bit. This, of course, is made up of the cost of the additional logic required to compute the two subparity bits, as opposed to a single parity bit. Instead, only one of the two sub-parity bits shown in FIG. 7, for example, only sub-parity bit A may be generated. This may be beneficial for situations in which only a portion of the data word 64 requires monitoring of the occurrence of an error, the remainder being less important and errors occurring in this portion being negligible.

도 8은 다수의 데이터 워드(71)를 저장하도록 구성되어 있는 레지스터 파일(70)을 개략적으로 도시하고 있는데, 예를 들어, 도 8에 도시된 실시예에서, 이것은 128 워드 레지스터 파일이고, 각 저장된 데이터 워드(71)는 8-비트 워드이다. 이러한 레지스터 파일(70)은 9개의 기록 포트 및 14개의 판독 포트를 갖는 멀티 포트 레지스터 파일이다. 상당 수의 판독 포트를 제공함으로써, 저장 데이터 워드가 판독될 때마다 주어진 저장된 데이터 워드에 대한 패리티 비트가 생성되지 않도록, 각 데이터 워드(71)의 저장을 위해 제공된 저장 유닛과 연관된 패리티 로직(72)이 본 기술에 따라 구성되는 것이 특히 유리할 수 있다. 도 8의 동시 패리티 생성 회로(72)는 단지 개략적으로 도시되어 있고, 도 2 또는 도 3에 도시된 실시예에 따라 보다 상세하게 제공될 수 있다. Figure 8 schematically shows a register file 70 that is configured to store a plurality of data words 71. For example, in the embodiment shown in Figure 8, this is a 128 word register file, The data word 71 is an 8-bit word. This register file 70 is a multiport register file having nine write ports and fourteen read ports. Parity logic 72 associated with a storage unit provided for storage of each data word 71 so that a parity bit for a given stored data word is not generated each time a stored data word is read, It may be particularly advantageous to configure it according to the present technique. The concurrent parity generation circuit 72 of FIG. 8 is shown only schematically and may be provided in more detail in accordance with the embodiment shown in FIG. 2 or FIG.

에러가 저장 데이터 워드(71)중 하나에 대한 패리티 로직 유닛(72)중 하나에 의해 검출된다면 에러 플래그가 어서트되도록, 이러한 입력 모두를 단일 출력("에러 플래그")으로 결합하도록 구성된 결합 로직(73)에 각 동시 패리티 로직 유닛(72)의 출력이 제공된다. 따라서, 이로 인해 에러의 생성이 거의 순시로 통지되고 적절한 보정 액션이 신속하게 취해질 수 있다. 결합 로직(73)은 예를 들어, 이러한 출력들을 단일 출력으로 결합하기 위해 OR 게이트의 트리에 의해 제공될 수 있다. 결합 로직(73)에 대한 단일 출력이 또한 "스티키(sticky)" 에러 레지스터(74)에 제공된다는 것을 유념해야 한다. 이러한 스티키 에러 레지스터는 각 패리티 로직 유닛(72)의 출력중 적어도 하나가 변할 때까지 "노 에러" 상태를 나타내는 값을 유지하도록 구성되어 있고, 이로 인해 "스티키" 에러 레지스터(74)는 이러한 레지스터가 리셋될 때까지 수신하는 입력 값의 추가 변화에도 불구하고 계속 유지될 "에러" 상태를 나타내는 값을 유지하는 것으로 변경된다. 대안으로, 각 패리티 로직 유닛(72)의 출력은 "스티키" 에러 레지스터(74)에 직접 제공될 수 있다는 것에 주목해야 한다. 그 이유는 임의의 패리티 로직 유닛(72)에 의해 생성된 패리티 비트의 변화는 "스티키" 에러 레지스터(74)가 그 "에러" 상태 값을 유지하도록 하는데 사용될 수 있기 때문이다. 따라서, 이러한 스티키 에러 레지스터(74)는 에러가 발생하였을 때를 식별하도록 예를 들어, 폴링(polling) 프로세스에 의해 감시될 수 있다. 도 8에 도시된 실시예에서, 시스템은 이러한 에러가 발생할 때 레지스터 파일(70)의 전체 내용이 리프레시되도록 함으로써 에러 플래그(또는 레지스터(74)에 의해 유지되는 에러 상태)에 반응하도록 구성되어 있다. 이에 따라, 이러한 실시예에서, 어디에서 특정 에러가 일어났는지를 식별하고 이러한 특정 저장 로케이션에 대해 보정 액션을 취하려고 하는 것 보다는 단순히 각 저장된 데이터 워드(71)의 내용을 재기록하는 것이 보다 효율적이라고 판단하였다는 것에 주목해야 한다. ("Error flag") such that the error flag is asserted if an error is detected by one of the parity logic units 72 for one of the stored data words 71 73 are provided with the output of each concurrent parity logic unit 72. This, in turn, notifies the generation of the error almost instantly and the appropriate corrective action can be taken quickly. Combining logic 73 may be provided by, for example, a tree of OR gates to combine these outputs into a single output. It should be noted that a single output to the combinational logic 73 is also provided in the "sticky" This sticky error register is configured to maintain a value indicating a "no error" state until at least one of the outputs of each parity logic unit 72 changes, thereby causing the "sticky" To maintain a value indicating an "error" state that will be maintained despite an additional change in the received input value until reset. It should be noted that alternatively, the output of each parity logic unit 72 may be provided directly to a "sticky" Because the change in the parity bit generated by any parity logic unit 72 can be used to cause the " sticky "error register 74 to maintain its" error " Thus, this sticky error register 74 can be monitored by, for example, a polling process to identify when an error has occurred. In the embodiment shown in FIG. 8, the system is configured to respond to an error flag (or an error state maintained by register 74) by causing the entire contents of register file 70 to be refreshed when such an error occurs. Thus, in this embodiment it is more efficient to simply identify where to rewrite the contents of each stored data word 71 than to identify where the specific error occurred and take a corrective action for that particular storage location .

도 9는 하나의 실시예의 방법에서 취해진 일련의 단계를 개략적으로 도시하고 있다. 제1 단계 100에서, 데이터 워드를 그 선택된 저장 로케이션에 기록하도록 (예를 들어, 이러한 데이터 워드가 기록되어야 하는 레지스터 파일 내의 특정 행을 식별하여, 이러한 행에 대한 인에이블 신호를 어서트함으로써) 기록 프로세스가 수행된다. 기록 프로세스의 일부로서, 단계 101에서 패리티 비트가 XOR 트리를 통해 생성되고 데이터 워드와 연관되어 저장된다. 그다음, 단계 102에 표시된 바와 같이, 저장된 데이터 워드에 비트 플립이 일어난 경우에만 이러한 저장 로케이션에 결합된 XOR 연결(동시 패리티 생성 회로) 및 능동 비교 회로가 전환되는 상태가 설정된다. 이러한 비트 플립이 데이터 워드에서 일어나지 않는 동안(단계 103으로부터 "No" 경로), 단계 104에서 이러한 데이터 워드가 판독될 지에 대한 여부를 결정한다. 판독될 데이터 워드라면 흐름은 데이터 워드가 그 저장 로케이션으로부터 판독되는 단계 105를 통해 진행한다(그리고 특히 이것은 XOR 연결 또는 능동 비교 회로에 아무런 영향도 주지 않는다는 것에 주목해야 한다). 그다음, 흐름은 다시 단계 102로 진행한다. 대안으로, 아무런 판독이 수행되지 않으면(단계 104로부터 "No" 경로), 흐름은 직접 단계 102로 복귀한다. 그러나, 비트 플립이 데이터 워드에서 일어날 때(단계 103으로부터 "Yes" 경로), 이러한 비트 플립에 의해 패리티 변화가 XOR 연결을 통해 퍼져나가서(단계 106), 단계 107에서, 능동 비교 회로가 전환되고, 검출된 패리티 변화가 표시된다. Figure 9 schematically shows a series of steps taken in the method of one embodiment. In a first step 100, a write (e.g., by identifying a particular row in a register file in which such a data word is to be written and asserting an enable signal for that row) to write the data word to the selected storage location Process is performed. As part of the write process, in step 101 parity bits are generated via the XOR tree and stored in association with the data word. Then, as indicated in step 102, a state is set in which the XOR connection (simultaneous parity generation circuit) coupled to this storage location and the active comparison circuit are switched only when a bit flip occurs in the stored data word. While this bit flip does not occur in the data word ("No" path from step 103), it is determined in step 104 whether this data word is to be read. If it is a data word to be read, the flow proceeds through step 105 (and in particular it should be noted that this has no effect on the XOR connection or the active comparator circuit) where the data word is read from its storage location. The flow then proceeds to step 102 again. Alternatively, if no reading is performed ("No" path from step 104), the flow directly returns to step 102. However, when the bit flip occurs in the data word ("Yes" path from step 103), this bit flip causes the parity change to spread through the XOR connection (step 106) and, in step 107, The detected parity change is displayed.

본 발명의 특정 실시예가 여기에 설명되었지만, 본 발명은 이에 제한되지 않고 많은 수정 및 추가가 본 발명의 범위 안에서 가능할 수 있음을 이해할 것이다. 예를 들어, 다음의 종속항의 특징의 독립항의 특징과의 다양한 결합이 본 발명의 범위로부터 벗어남 없이 가능할 수도 있다. While specific embodiments of the invention have been described herein, it will be appreciated that the invention is not so limited and many modifications and additions may be possible within the scope of the invention. For example, various combinations with the features of the independent claims of the following dependent claims may be possible without departing from the scope of the present invention.

Claims (17)

장치로서,
데이터를 수신하고 판독 접근에 응답하여 상기 데이터를 출력하도록 구성된 복수의 저장 유닛; 및
상기 복수의 저장 유닛과 연관된 패리티 생성기를 포함하고, 상기 패리티 생성기는,
상기 복수의 저장 유닛의 각각으로부터 각각의 값을 복수의 입력부에서 수신하고;
상기 복수의 입력부로부터 패리티 값을 결정하고;
상기 패리티 값을 출력하도록 구성되어 있고, 상기 패리티 값의 결정은 상기 복수의 저장 유닛에 저장된 데이터에 대한 판독 접근으로부터 독립되어 있고,
상기 장치는 상기 패리티 값의 변화를 검출하도록 구성된 검출기를 더 포함하는 것을 특징으로 하는 장치.
As an apparatus,
A plurality of storage units configured to receive data and output the data in response to a read access; And
And a parity generator associated with the plurality of storage units,
Receive each value from each of said plurality of storage units at a plurality of inputs;
Determine a parity value from the plurality of input units;
Wherein the determination of the parity value is independent of a read access to data stored in the plurality of storage units,
Wherein the apparatus further comprises a detector configured to detect a change in the parity value.
제1항에 있어서, 상기 검출기는 천이 검출기 및 능동 비교기중 하나인 것을 특징으로 하는 장치. 2. The apparatus of claim 1, wherein the detector is one of a transition detector and an active comparator. 제1항에 있어서, 상기 데이터가 상기 복수의 저장 유닛에 의해 수신될 때 상기 데이터와 연관된 제2 패리티 값을 생성하도록 구성된 제2 패리티 생성기를 더 포함하는 것을 특징으로 하는 장치. 2. The apparatus of claim 1, further comprising a second parity generator configured to generate a second parity value associated with the data when the data is received by the plurality of storage units. 제3항에 있어서, 상기 제2 패리티 값은 상기 데이터가 상기 복수의 저장 유닛에 의해 저장될 때 상기 복수의 저장 유닛과 연관된 추가 저장 유닛에 저장되고;
상기 제2 패리티 값은 상기 패리티 값의 변화를 검출하도록 상기 패리티 값과 비교하기 위해 상기 검출기에 의해 상기 추가 저장 유닛으로부터 판독되는 것을 특징으로 하는 장치.
4. The apparatus of claim 3, wherein the second parity value is stored in an additional storage unit associated with the plurality of storage units when the data is stored by the plurality of storage units;
And the second parity value is read from the additional storage unit by the detector for comparison with the parity value to detect a change in the parity value.
제3항에 있어서, 상기 패리티 생성기는 상기 제2 패리티 생성기가 상기 제2 패리티 값을 생성한 후에 상기 패리티 값을 생성하도록 구성되어 있는 것을 특징으로 하는 장치. The apparatus of claim 3, wherein the parity generator is configured to generate the parity value after the second parity generator generates the second parity value. 제1항에 있어서, 상기 데이터 워드가 상기 복수의 데이터 저장 유닛에 기록되고 있을 때 어서트되는 기록 인에이블 신호를 전송하도록 구성된 기록 인에이블 신호 라인을 더 포함하고, 상기 기록 인에이블 신호 라인은 상기 검출기에 결합되어 있고 상기 검출기는 상기 기록 인에이블 신호가 어서트될 때 작동불능되는 것을 특징으로 하는 장치.2. The memory device of claim 1, further comprising a write enable signal line configured to transmit a write enable signal asserted when the data word is being written to the plurality of data storage units, And wherein the detector is disabled when the write enable signal is asserted. 제1항에 있어서, 상기 장치는 상기 복수의 저장 유닛이 판독될 수 있는 복수의 판독 포트를 포함하는 멀티 포트 레지스터 파일인 것을 특징으로 하는 장치.2. The apparatus of claim 1, wherein the apparatus is a multiport register file including a plurality of read ports from which the plurality of storage units can be read. 제1항에 있어서, 상기 패리티 생성기는 상기 복수의 저장 유닛과 연관되어 제공된 선형 연접된 로직 회로를 포함하고, 각각의 로직 회로는 그 입력중 하나로서 각각의 저장 유닛의 각각의 데이터 비트를 갖고 있는 것을 특징으로 하는 장치.2. The apparatus of claim 1, wherein the parity generator comprises a linear concatenated logic circuit provided in association with the plurality of storage units, each logic circuit having a respective data bit of each storage unit as one of its inputs Lt; / RTI > 제1항에 있어서, 상기 패리티 생성기는 로직 회로의 계층 트리를 포함하고,
상기 계층 트리의 최하위 레벨의 로직 회로는 그 입력으로서 각각의 저장 유닛의 쌍의 각각의 데이터 비트를 각각 갖고 있고,
상기 계층 트리의 최상위 레벨의 로직 회로는 그 입력으로서 패리티 비트를 생성하는 것을 특징으로 하는 장치.
2. The apparatus of claim 1, wherein the parity generator comprises a hierarchical tree of logic circuits,
The logic circuit of the lowest level of the hierarchical tree having as its input each data bit of each pair of storage units,
Wherein the logic circuit at the highest level of the hierarchical tree generates a parity bit as its input.
제9항에 있어서, 상기 계층 트리의 최상위 레벨에서 출력된 패리티 값을 수신하고 스캔 아웃 신호에 응답하여 스캔 유닛의 스캔 출력부에서 상기 패리티 값을 출력하도록 구성된 상기 스캔 유닛을 더 포함하는 것을 특징으로 하는 장치.The apparatus of claim 9, further comprising a scan unit configured to receive a parity value output from a highest level of the hierarchical tree and output the parity value in a scan output unit of a scan unit in response to a scan- . 제1항에 있어서, 상기 패리티 생성기는 상기 복수의 저장 유닛에 저장된 상기 데이터의 모두 보다 적은 데이터에 따라 서브 패리티 비트를 생성하도록 구성되어 있는 것을 특징으로 하는 장치. 2. The apparatus of claim 1, wherein the parity generator is configured to generate sub-parity bits according to less than all of the data stored in the plurality of storage units. 제11항에 있어서, 상기 패리티 생성기는 상기 복수의 저장 유닛에 저장된 데이터에 대한 복수의 서브 패리티 비트를 생성하도록 구성되어 있는 것을 특징으로 하는 장치.12. The apparatus of claim 11, wherein the parity generator is configured to generate a plurality of sub parity bits for data stored in the plurality of storage units. 제11항에 있어서, 상기 패리티 생성기는 상기 복수의 저장 유닛에 저장된 적어도 하나의 데이터 비트가 상기 서브 패리티 비트의 값에 영향을 주지 않도록 구성되어 있는 것을 특징으로 하는 장치.12. The apparatus of claim 11, wherein the parity generator is configured such that at least one data bit stored in the plurality of storage units does not affect the value of the sub parity bit. 제1항에 있어서, 상기 장치는 복수의 데이터 워드를 저장하도록 구성되어 있고, 상기 패리티 생성기는 상기 데이터 워드의 각각에 대한 각각의 패리티 비트를 생성하도록 구성되어 있고,
상기 각각의 패리티 비트중 어느 하나라도 값이 변하면 에러 플래그를 생성하도록 구성된 결합 로직 회로를 더 포함하는 것을 특징으로 하는 장치.
2. The apparatus of claim 1, wherein the apparatus is configured to store a plurality of data words, the parity generator being configured to generate respective parity bits for each of the data words,
Further comprising: a combinational logic circuit configured to generate an error flag when any one of the respective parity bits changes in value.
제1항에 있어서, 상기 장치는 복수의 데이터 워드를 저장하도록 구성되어 있고, 상기 패리티 생성기는 상기 데이터 워드의 각각에 대한 각각의 패리티 비트를 생성하도록 구성되어 있고,
논-에러 값 또는 에러 값을 유지하도록 구성된 에러 레지스터를 더 포함하고, 상기 에러 레지스터는 상기 각각의 패리티 비트중 하나 이상의 값이 변하면 상기 에러 값 유지로 전환되도록 구성되어 있는 것을 특징으로 하는 장치.
2. The apparatus of claim 1, wherein the apparatus is configured to store a plurality of data words, the parity generator being configured to generate respective parity bits for each of the data words,
And an error register configured to maintain a non-error value or an error value, wherein the error register is configured to switch to maintaining the error value if at least one value of the respective parity bits is changed.
복수의 데이터 저장 유닛에 데이터를 저장하는 단계;
판독 접근에 응답하여 상기 복수의 저장 유닛으로부터 상기 데이터를 출력하는 단계;
상기 복수의 저장 유닛과 연관된 패리티 생성기의 복수의 입력부의 각각에서 상기 복수의 저장 유닛의 각각으로부터 값을 수신하는 단계;
상기 복수의 입력부로부터 패리티 값을 결정하는 단계;
상기 제1 패리티 값을 출력하는 단계; 및
능동 비교기에 의해 상기 출력된 패리티의 변화를 검출하는 단계를 포함하고,
상기 패리티 값의 결정은 상기 복수의 저장 유닛에 저장된 상기 데이터에 대한 상기 판독 접근으로부터 독립되어 있는 것을 특징으로 하는 방법.
Storing data in a plurality of data storage units;
Outputting the data from the plurality of storage units in response to a read access;
Receiving a value from each of the plurality of storage units at each of a plurality of inputs of a parity generator associated with the plurality of storage units;
Determining a parity value from the plurality of input units;
Outputting the first parity value; And
Detecting a change in the output parity by an active comparator,
Wherein the determination of the parity value is independent of the read access to the data stored in the plurality of storage units.
복수의 데이터 저장 유닛에 데이터를 저장하기 위한 수단;
판독 접근에 응답하여 상기 복수의 저장 유닛으로부터 상기 데이터를 출력하기 위한 수단;
상기 복수의 저장 유닛과 연관된 패리티 값을 생성하기 위한 수단의 복수의 입력부중 각각에서 상기 복수의 저장 유닛의 각각으로부터 값을 수신하기 위한 수단으로서, 상기 복수의 저장 유닛과 연관된 패리티 값을 생성하기 위한 수단은 상기 복수의 저장 유닛에 저장된 상기 데이터에 대한 상기 판독 접근으로부터 독립되어 있는 패리티 값을 생성하도록 구성되어 있는 수단;
상기 제1 패리티 값을 출력하기 위한 수단; 및
상기 출력된 패리티의 변화를 검출하기 위한 수단을 포함하는 것을 특징으로 하는 장치.
Means for storing data in a plurality of data storage units;
Means for outputting the data from the plurality of storage units in response to a read access;
Means for receiving a value from each of the plurality of storage units at each of a plurality of inputs of a means for generating a parity value associated with the plurality of storage units, The means being configured to generate a parity value that is independent of the read access to the data stored in the plurality of storage units;
Means for outputting the first parity value; And
And means for detecting a change in the output parity.
KR1020150085225A 2014-06-17 2015-06-16 Error detection in stored data values KR102283686B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/306,714 US9529671B2 (en) 2014-06-17 2014-06-17 Error detection in stored data values
US14/306,714 2014-06-17

Publications (2)

Publication Number Publication Date
KR20150144715A true KR20150144715A (en) 2015-12-28
KR102283686B1 KR102283686B1 (en) 2021-07-30

Family

ID=54836237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150085225A KR102283686B1 (en) 2014-06-17 2015-06-16 Error detection in stored data values

Country Status (3)

Country Link
US (1) US9529671B2 (en)
KR (1) KR102283686B1 (en)
TW (1) TWI691833B (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9760438B2 (en) * 2014-06-17 2017-09-12 Arm Limited Error detection in stored data values
US9891976B2 (en) 2015-02-26 2018-02-13 Arm Limited Error detection circuitry for use with memory
GB2555627B (en) * 2016-11-04 2019-02-20 Advanced Risc Mach Ltd Error detection
US10797078B2 (en) * 2018-08-14 2020-10-06 Taiwan Semiconductor Manufacturing Company Limited Hybrid fin field-effect transistor cell structures and related methods
US11429478B2 (en) 2019-06-05 2022-08-30 Stmicroelectronics International N.V. Robust soft error tolerant multi-bit D flip-flop circuit
US11411584B2 (en) * 2020-09-28 2022-08-09 Western Digital Technologies, Inc. Data storage device channel encoding current data using redundancy bits generated over preceding data
US11468962B2 (en) * 2021-03-03 2022-10-11 Micron Technology, Inc. Performing memory testing using error correction code values

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181164B1 (en) * 1999-01-08 2001-01-30 Xilinx, Inc. Linear feedback shift register in a programmable gate array
US20050223208A1 (en) * 2004-03-05 2005-10-06 Moran Timothy G Transient transceiver clock configuration
KR20080011228A (en) * 2005-06-13 2008-01-31 인텔 코포레이션 Selective activation of error mitigation based on bit level error count
US20080040519A1 (en) * 2006-05-02 2008-02-14 Alacritech, Inc. Network interface device with 10 Gb/s full-duplex transfer rate
US20110231732A1 (en) * 2010-03-22 2011-09-22 Phison Electronics Corp. Error correcting method, and memory controller and memory storage system using the same
US20120240014A1 (en) * 2011-03-14 2012-09-20 Infineon Technologies Ag Error Tolerant Flip-Flops
US20120303986A1 (en) * 2011-05-27 2012-11-29 Arm Limited Verifying state integrity in state retention circuits

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3699322A (en) 1971-04-28 1972-10-17 Bell Telephone Labor Inc Self-checking combinational logic counter circuit
JPH03214809A (en) 1990-01-19 1991-09-20 Nec Corp Linear feedback shift register
US5193092A (en) * 1990-12-20 1993-03-09 Vlsi Technology, Inc. Integrated parity-based testing for integrated circuits
US5623506A (en) 1994-01-28 1997-04-22 International Business Machines Corporation Method and structure for providing error correction code within a system having SIMMs
GB2304941B (en) 1995-06-24 1999-09-08 Motorola Ltd Feedback and shift unit
US5523707A (en) * 1995-06-30 1996-06-04 International Business Machines Corporation Fast, low power exclusive or circuit
US5757823A (en) 1995-10-03 1998-05-26 International Business Machines Corporation Error detection and correction for four-bit-per-chip memory system
US6275311B1 (en) 1997-06-30 2001-08-14 Pirelli Cavi E Sistemi S.P.A. Optical device for processing an optical digital signal
DE19733748C2 (en) 1997-08-04 1999-07-15 Bosch Gmbh Robert Data transfer device
US6295626B1 (en) 1997-10-20 2001-09-25 Nortel Networks Limited Symbol based algorithm for hardware implementation of cyclic redundancy check
US6018304A (en) 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US6332173B2 (en) 1998-10-31 2001-12-18 Advanced Micro Devices, Inc. UART automatic parity support for frames with address bits
US6137734A (en) 1999-03-30 2000-10-24 Lsi Logic Corporation Computer memory interface having a memory controller that automatically adjusts the timing of memory interface signals
US6262596B1 (en) 1999-04-05 2001-07-17 Xilinx, Inc. Configuration bus interface circuit for FPGAS
US6457154B1 (en) 1999-11-30 2002-09-24 International Business Machines Corporation Detecting address faults in an ECC-protected memory
US6433725B1 (en) * 2000-11-27 2002-08-13 Turner Research, Inc. High speed analog-to-digital converter
US6938198B1 (en) 2001-04-12 2005-08-30 Broadband Royalty Corporation Method and system for accelerating ethernet checksums
US7283380B1 (en) * 2001-08-03 2007-10-16 Netlogic Microsystems, Inc. Content addressable memory with selective error logging
DE10147643C2 (en) 2001-09-27 2003-10-09 Infineon Technologies Ag Multiplexer cell and multiplexer circuit arrangement
US7124331B2 (en) 2002-05-14 2006-10-17 Sun Microsystems, Inc. Method and apparatus for providing fault-tolerance for temporary results within a CPU
US7278085B1 (en) 2003-03-06 2007-10-02 Maxtor Corporation Simple error-correction codes for data buffers
US7489730B2 (en) 2004-03-09 2009-02-10 Thomson Licensing Cross-encoding of information in independent channels
US7328396B2 (en) 2004-05-28 2008-02-05 International Business Machines Corporation Cyclic redundancy check generating circuit
JP4413091B2 (en) * 2004-06-29 2010-02-10 株式会社ルネサステクノロジ Semiconductor device
US7589362B1 (en) * 2004-07-01 2009-09-15 Netlogic Microsystems, Inc. Configurable non-volatile logic structure for characterizing an integrated circuit device
JP4980565B2 (en) * 2004-12-21 2012-07-18 富士通セミコンダクター株式会社 Semiconductor memory
US8005209B2 (en) 2005-01-06 2011-08-23 Polytechnic University Invariance based concurrent error detection for the advanced encryption standard
US7346862B2 (en) 2005-08-19 2008-03-18 Synopsys, Inc. Method and apparatus for optimizing a logic network in a digital circuit
US20070250755A1 (en) 2006-03-29 2007-10-25 Wayne Burleson Dormant error checker
US7886210B2 (en) 2007-02-09 2011-02-08 International Business Machines Corporation Apparatus for pipelined cyclic redundancy check circuit with multiple intermediate outputs
US8112699B2 (en) * 2008-02-14 2012-02-07 Atmel Rousset S.A.S. Error detecting/correcting scheme for memories
US8225187B1 (en) 2008-03-31 2012-07-17 Xilinx, Inc. Method and apparatus for implementing a cyclic redundancy check circuit
TWI419481B (en) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua Low density parity check codec and method of the same
US8438344B2 (en) * 2010-03-12 2013-05-07 Texas Instruments Incorporated Low overhead and timing improved architecture for performing error checking and correction for memories and buses in system-on-chips, and other circuits, systems and processes
US8365055B2 (en) 2010-06-24 2013-01-29 International Business Machines Corporation High performance cache directory error correction code
US8694862B2 (en) 2012-04-20 2014-04-08 Arm Limited Data processing apparatus using implicit data storage data storage and method of implicit data storage
GB2505705A (en) 2012-09-10 2014-03-12 St Microelectronics Res & Dev Circuit for combining signals comprising a plurality of edge detectors
US9122625B1 (en) * 2012-12-18 2015-09-01 Western Digital Technologies, Inc. Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems
US20140325303A1 (en) 2013-04-30 2014-10-30 Lsi Corporation Systems and Methods for Protected Data Encoding
GB2520232A (en) 2013-08-06 2015-05-20 Univ Edinburgh Multiple Event Time to Digital Converter
US9471416B2 (en) 2014-02-28 2016-10-18 Cavium, Inc. Partitioned error code computation
US9244124B2 (en) * 2014-03-28 2016-01-26 International Business Machines Corporation Initializing and testing integrated circuits with selectable scan chains with exclusive-or outputs
US9760438B2 (en) 2014-06-17 2017-09-12 Arm Limited Error detection in stored data values

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6181164B1 (en) * 1999-01-08 2001-01-30 Xilinx, Inc. Linear feedback shift register in a programmable gate array
US20050223208A1 (en) * 2004-03-05 2005-10-06 Moran Timothy G Transient transceiver clock configuration
KR20080011228A (en) * 2005-06-13 2008-01-31 인텔 코포레이션 Selective activation of error mitigation based on bit level error count
US20080040519A1 (en) * 2006-05-02 2008-02-14 Alacritech, Inc. Network interface device with 10 Gb/s full-duplex transfer rate
US20110231732A1 (en) * 2010-03-22 2011-09-22 Phison Electronics Corp. Error correcting method, and memory controller and memory storage system using the same
US20120240014A1 (en) * 2011-03-14 2012-09-20 Infineon Technologies Ag Error Tolerant Flip-Flops
US20120303986A1 (en) * 2011-05-27 2012-11-29 Arm Limited Verifying state integrity in state retention circuits

Also Published As

Publication number Publication date
KR102283686B1 (en) 2021-07-30
TW201610664A (en) 2016-03-16
US9529671B2 (en) 2016-12-27
US20150363268A1 (en) 2015-12-17
TWI691833B (en) 2020-04-21

Similar Documents

Publication Publication Date Title
KR102283686B1 (en) Error detection in stored data values
US6259639B1 (en) Semiconductor integrated circuit device capable of repairing defective parts in a large-scale memory
US9401223B2 (en) At-speed test of memory arrays using scan
US7707466B2 (en) Shared latch for memory test/repair and functional operations
JP2007248378A (en) Semiconductor integrated circuit
KR20100031148A (en) Semiconductor memory device for accumulation test and system including the same
KR102271054B1 (en) Error detection in stored data values
US20200091915A1 (en) Semiconductor integrated circuit and reconfigurable semiconductor system
US7656322B2 (en) Semiconductor memory device having error correction function
US20050157565A1 (en) Semiconductor device for detecting memory failure and method thereof
JP5611916B2 (en) Semiconductor integrated circuit
US20080077836A1 (en) Diagnostic Information Capture from Memory Devices with Built-in Self Test
US9003251B2 (en) Diagnosis flow for read-only memories
US8837243B2 (en) Deeply pipelined integrated memory built-in self-test (BIST) system and method
US20120246527A1 (en) Built-in self test circuit and designing apparatus
US20050114612A1 (en) Scan testable first-in first-out architecture
JP5510107B2 (en) Error correction test method
US7716549B2 (en) Semiconductor apparatus and testing method
JP2010040092A (en) Semiconductor integrated circuit
US9159456B2 (en) Semiconductor device
JP5727358B2 (en) Semiconductor device
US20100269001A1 (en) Testing system and method thereof
US20230259433A1 (en) Systems and methods to test an asychronous finite machine
US20210096183A1 (en) Error detection and correction
JP2011257211A (en) Signal observation device and signal observation method

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant