KR20150144715A - Error detection in stored data values - Google Patents
Error detection in stored data valuesInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0727—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
Description
본 발명은 데이터 처리 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 데이터 값을 저장하도록 구성되어 있고 저장된 데이터 값의 변화를 검출하도록 제공된 회로를 갖는 데이터 저장 장치에 관한 것이다. 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
제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
기록 프로세스의 일부로서, 데이터 워드 역시 데이터 워드의 데이터 비트의 각 값에 의존하여 단일 패리티 비트 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
도 3은 다른 실시예의 데이터 저장 장치(40)를 개략적으로 도시하고 있다. 도 2에 도시된 실시예와 같이, 데이터 저장 장치(40)는 프로세서 유닛이 사용하는 특정 데이터의 저장을 위해 프로세서 유닛과 밀접하게 연관되어 제공되는 레지스터 파일이다. 또한, 도 2에 도시된 실시예와 같이, 데이터 저장 장치(40)는 다수의 데이터 워드를 저장하도록 구성되어 있지만, 이해를 위해 하나의 데이터 워드와 관련된 기억 용량만이 도시되어 있다. 3 schematically shows a
여기에서, 도 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
도 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
도 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
도 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
도 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
도 7은 패리티 계산이 모두 보다 적은 데이터 워드에 실행될 수 있는 데이터 워드(64)를 개략적으로 도시하고 있다. 이것은 데이터 워드(64)의 4개의 최상위 비트에 기초하여 생성된 서브 패리티 비트 A 및 데이터 워드(64)의 4개의 최하위 비트에 기초하여 생성된 서브 패리티 비트 B에 의해 도 7에 도시되어 있다. 일부 실시예에서, 서브 패리티 비트 A 및 B 모두가 생성되어, 에러에 대해 데이터 워드(64)를 감시하는 전체 적용 범위를 제공하고 전체 데이터 워드(64)에 대해 생성된 단일 패리티 비트에 대해 감소된 패리티 계산 대기 시간을 가질 수 있는데, 그 이유는 보다 적은 수의 비트가 각 서브 패리티 비트를 생성하기 위해 결합되기 때문이다. 이것은 물론 단일 패리티 비트와 대조되어 2개의 서브 패리티 비트를 계산하는데 필요한 추가 로직의 비용으로 이루어진다. 대신 도 7에 도시된 2개의 서브 패리티 비트중 하나 만이, 예를 들어, 서브 패리티 비트 A 만이 생성되는 경우가 있을 수 있다. 이것은 데이터 워드(64)의 일부만이 에러 발생의 감시를 필요로 하고, 나머지 부분은 덜 중요하고 이러한 부분에서 일어나는 에러가 무시될 수 있는 상황에 유익할 수 있다. Figure 7 schematically shows a
도 8은 다수의 데이터 워드(71)를 저장하도록 구성되어 있는 레지스터 파일(70)을 개략적으로 도시하고 있는데, 예를 들어, 도 8에 도시된 실시예에서, 이것은 128 워드 레지스터 파일이고, 각 저장된 데이터 워드(71)는 8-비트 워드이다. 이러한 레지스터 파일(70)은 9개의 기록 포트 및 14개의 판독 포트를 갖는 멀티 포트 레지스터 파일이다. 상당 수의 판독 포트를 제공함으로써, 저장 데이터 워드가 판독될 때마다 주어진 저장된 데이터 워드에 대한 패리티 비트가 생성되지 않도록, 각 데이터 워드(71)의 저장을 위해 제공된 저장 유닛과 연관된 패리티 로직(72)이 본 기술에 따라 구성되는 것이 특히 유리할 수 있다. 도 8의 동시 패리티 생성 회로(72)는 단지 개략적으로 도시되어 있고, 도 2 또는 도 3에 도시된 실시예에 따라 보다 상세하게 제공될 수 있다. Figure 8 schematically shows a
에러가 저장 데이터 워드(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
도 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
본 발명의 특정 실시예가 여기에 설명되었지만, 본 발명은 이에 제한되지 않고 많은 수정 및 추가가 본 발명의 범위 안에서 가능할 수 있음을 이해할 것이다. 예를 들어, 다음의 종속항의 특징의 독립항의 특징과의 다양한 결합이 본 발명의 범위로부터 벗어남 없이 가능할 수도 있다. 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.
상기 제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.
상기 계층 트리의 최하위 레벨의 로직 회로는 그 입력으로서 각각의 저장 유닛의 쌍의 각각의 데이터 비트를 각각 갖고 있고,
상기 계층 트리의 최상위 레벨의 로직 회로는 그 입력으로서 패리티 비트를 생성하는 것을 특징으로 하는 장치.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.
상기 각각의 패리티 비트중 어느 하나라도 값이 변하면 에러 플래그를 생성하도록 구성된 결합 로직 회로를 더 포함하는 것을 특징으로 하는 장치.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.
논-에러 값 또는 에러 값을 유지하도록 구성된 에러 레지스터를 더 포함하고, 상기 에러 레지스터는 상기 각각의 패리티 비트중 하나 이상의 값이 변하면 상기 에러 값 유지로 전환되도록 구성되어 있는 것을 특징으로 하는 장치.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.
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)
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)
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)
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 |
-
2014
- 2014-06-17 US US14/306,714 patent/US9529671B2/en active Active
-
2015
- 2015-06-16 TW TW104119465A patent/TWI691833B/en active
- 2015-06-16 KR KR1020150085225A patent/KR102283686B1/en active IP Right Grant
Patent Citations (7)
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 |