KR20090006642A - 오류 검사 코드 생성장치 및 방법 - Google Patents

오류 검사 코드 생성장치 및 방법 Download PDF

Info

Publication number
KR20090006642A
KR20090006642A KR1020070070192A KR20070070192A KR20090006642A KR 20090006642 A KR20090006642 A KR 20090006642A KR 1020070070192 A KR1020070070192 A KR 1020070070192A KR 20070070192 A KR20070070192 A KR 20070070192A KR 20090006642 A KR20090006642 A KR 20090006642A
Authority
KR
South Korea
Prior art keywords
information
check code
error check
data
odd
Prior art date
Application number
KR1020070070192A
Other languages
English (en)
Other versions
KR100902051B1 (ko
Inventor
윤상식
김보겸
Original Assignee
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이닉스반도체 filed Critical 주식회사 하이닉스반도체
Priority to KR1020070070192A priority Critical patent/KR100902051B1/ko
Priority to US11/958,324 priority patent/US8060813B2/en
Priority to JP2008099708A priority patent/JP2009021981A/ja
Publication of KR20090006642A publication Critical patent/KR20090006642A/ko
Application granted granted Critical
Publication of KR100902051B1 publication Critical patent/KR100902051B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • 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/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • 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

Abstract

본 발명에 따른 오류 검사 코드 생성장치는 가상 DBI(Data Bus Inversion) 정보와 데이터를 이용하여 가상 오류 검사 코드를 생성하는 오류 검사 코드 생성부; 및 오류 검사 코드 생성에 관련된 데이터 개수의 짝수 또는 홀수 중 어느 하나를 정의하는 짝/홀수 정보, 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 상기 오류 검사 코드를 생성하는 오류 검사 코드 재생성부를 구비한다.
오류 검사 코드, CRC(Cyclic Redundancy Check), DBI(Data Bus Inversion)

Description

오류 검사 코드 생성장치 및 방법{APPARATUS AND METHOD FOR GENERATING ERROR DETECTION CODE}
본 발명은 반도체 집적회로에 관한 것으로서, 특히 데이터 수신측에서 데이터의 오류 발생 여부를 판단할 수 있도록 오류 검사 코드를 생성하는 장치 및 방법에 관한 것이다.
데이터 버스 반전기능을 수행하기 위한 구성 즉, 데이터 버스 반전부(DBI: Data Bus Inversion)는 데이터 전송시 전체 데이터 비트 중에서 이전 데이터 비트와 비교하여 현재 데이터 비트의 논리값이 바뀌는 개수가 증가함에 따라 발생되는 문제 즉, 동시 스위칭 노이즈(Simultaneous Switching Noise) 또는 내부 심볼 간섭(Inter Symbol Interference)을 방지하기 위해 사용된다.
상기 데이터 버스 반전부는 전체 데이터 비트 중에서 논리값이 바뀐 비트의 수가 전체 데이터 비트의 절반 이상일 경우, DBI 플래그(DBI Flag)를 인에이블 시키고 정상적인 데이터 대신 반전된 데이터를 전송하여 데이터 비트의 스위칭 개수를 절반 이하로 줄인다.
또한 반도체 회로 예를 들어, DRAM과 같은 반도체 메모리 장치의 경우 처리 속도의 고속화에 따라 데이터 전송오류가 유발될 확률이 높다. 따라서 데이터 수신측에서 전송받은 데이터의 오류 발생 여부를 판단할 수 있도록 데이터와 별도로 오류 검사 코드를 생성하여 전송하기 위한 오류 검사 코드 생성회로가 사용되고 있다.
상기 오류 검사 코드 생성회로는 CRC(Cyclic Redundancy Check) 방식이 널리 사용되고 있다. 상기 CRC의 한 종류로서, 64 비트에서 오류 검출 코드 8 비트를 출력하는 CRC8이 있다.
종래의 기술에 따른 데이터 버스 반전부를 구비한 반도체 회로에서, 오류 검사 코드 생성장치의 구성을 설명하면 다음과 같다.
종래의 기술에 따른 오류 검사 코드 생성장치는 도 1에 도시된 바와 같이, 데이터 버스 반전부(10), 오류 검사 코드 생성부(20), 반전소자(IV) 및 다중화부(40)를 구비한다.
상기 데이터 버스 반전부(10)는 데이터 라인(GIO<0:7>)을 통해 64비트의 데이터를 입력받아 8비트의 DBI 플래그를 생성하도록 구성된다.
상기 반전소자(IV1)는 상기 64비트의 데이터를 반전시켜 출력하도록 구성된다.
상기 다중화부(40)는 상기 DBI 플래그에 따라 상기 64비트의 데이터 또는 상기 반전소자(IV1)를 통해 반전된 64비트의 데이터를 선택하여 출력하도록 구성된다.
종래의 기술에 따른 오류 검사 코드 생성장치의 동작을 설명하면 다음과 같 다.
상기 데이터 버스 반전부(10)가 상기 64비트의 데이터를 입력 받아 각 8비트별로 이전 데이터에 비해 논리값이 바뀐 비트가 몇 개인지 판단한다.
상기 데이터 버스 반전부(10)는 상기 전체 데이터 비트 중에서 논리값이 바뀐 비트의 수가 전체 데이터 비트의 절반 이상일 경우 상기 DBI 플래그(DBI Flag)를 로우 레벨로 출력한다.
상기 다중화부(40)는 상기 DBI 플래그가 로우 레벨인 경우, 반전소자(IV1)를 통해 반전된 데이터를 선택하여 출력한다.
상기 오류 검사 코드 생성부(20)는 상기 다중화부(40)에서 출력된 64비트의 데이터와 상기 8비트의 DBI 플래그에 대한 오류 검사 코드(CRC<0:7>)를 생성하여 출력한다.
상기 오류 검사 코드 생성부(20)는 CRC(Cyclic Redundancy Check) 방식에 따라 64비트의 데이터와 8비트의 DBI 플래그 전체, 즉 72비트에 대한 배타적 논리합(XOR) 연산을 수행하여 상기 오류 검사 코드(CRC<0:7>)를 생성한다.
상기 오류 검사 코드(CRC<0:7>)는 EDC 핀(Error Detection Code Pin)을 통해 외부의 시스템 예를 들어, GPU(Graphic Processing Unit)로 출력된다.
상술한 바와 같이 데이터 버스 반전부(10)를 갖는 반도체 회로의 경우, 오류 검사 코드 생성을 위해서는 상기 8비트의 DBI 플래그가 필요하다.
따라서 종래의 기술은 데이터 버스 반전 기능을 위한 연산동작이 선행된 후 오류 검사 코드 생성을 위한 연산동작을 수행할 수 있으므로 오류 검사 코드를 생 성하는 시간이 길어지는 문제점이 있다. 또한 상술한 오류 검사 코드 생성시간 증가는 반도체 메모리 장치와 같은 시스템의 성능 저하 요소로 작용할 수 있다.
본 발명은 오류 검사 코드 생성에 소요되는 시간을 단축시킬 수 있도록 한오류 검사 코드 생성장치 및 방법을 제공함에 그 목적이 있다.
본 발명에 따른 오류 검사 코드 생성장치는 가상 DBI(Data Bus Inversion) 정보와 데이터를 이용하여 가상 오류 검사 코드를 생성하는 오류 검사 코드 생성부; 및 오류 검사 코드 생성에 관련된 데이터 개수의 짝수 또는 홀수 중 어느 하나를 정의하는 짝/홀수 정보, 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 상기 오류 검사 코드를 생성하는 오류 검사 코드 재생성부를 구비함을 특징으로 한다.
본 발명에 따른 오류 검사 코드 생성장치는 데이터를 이용하여 DBI(Data Bus Inversion) 정보를 생성하는 데이터 버스 반전부; 가상 DBI 정보와 상기 데이터를 이용하여 상기 DBI 정보 생성완료 이전에 가상 오류 검사 코드를 생성하는 오류 검사 코드 생성부; 및 오류 검사 코드 생성에 관련된 데이터 개수의 짝수 또는 홀수 중 어느 하나를 정의하는 짝/홀수 정보, 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 상기 오류 검사 코드를 생성하는 오류 검사 코드 재생성부를 구비함을 또 다른 특징으로 한다.
본 발명에 따른 오류 검사 코드 생성방법은 전체 데이터 중 오류 검사 코드 생성에 관련된 데이터 개수의 짝/홀수 정보를 생성하는 단계; 가상 DBI 정보와 상 기 데이터를 이용하여 DBI 정보 생성완료 이전에 가상 오류 검사 코드를 생성하는 단계; 및 상기 짝/홀수 정보, 전체 DBI 정보 중 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 실제 오류 검사 코드를 생성하는 단계를 구비함을 특징으로 한다.
본 발명에 따른 오류 검사 코드 생성장치 및 방법은 데이터 버스 반전기능을 수행하기 위한 연산시간 동안 가상 DBI 플래그를 이용한 오류 검사 코드 생성 연산을 1차적으로 수행하고, 기존의 오류 검사 코드 생성연산을 위해 필요한 신호성분 중 실제 오류 검사 코드 생성에 관련된 일부 신호성분만을 이용하여 최종적인 오류 검사 코드 생성연산을 수행한다. 따라서 종래기술에 비해 오류 검사 코드 생성에 소요되는 시간을 크게 줄일 수 있다. 상기 오류 검사 코드 생성에 소요되는 시간이 줄어들므로 이를 사용하는 시스템 예를 들어, 다이나믹 렌덤 억세스 메모리(DRAM)과 같은 반도체 메모리 장치의 성능을 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 오류 검사 코드 생성장치 및방법의 바람직한 실시예를 설명하면 다음과 같다.
본 발명에 따른 오류 검사 코드 생성장치는 데이터 버스 반전기능에 따른 DBI 플래그도 오류 검사 코드 생성을 위한 연산과정에 포함시켜야 하는 경우에 따른 실시예이다. 따라서 본 발명이 적용된 시스템 예를 들어, 반도체 집적회로에 상기 데이터 버스 반전기능을 수행하기 위한 데이터 버스 반전부(100)가 구비되어 있 다.
본 발명에 따른 오류 검사 코드 생성장치는 도 2에 도시된 바와 같이, 오류 검사 코드 생성부(200) 및 오류 검사 코드 재생성부(300)를 구비한다.
상기 오류 검사 코드 생성부(200)는 데이터 라인(GIO)를 통해 입력된 64비트의 데이터와 8 비트의 가상 DBI 플래그(VDBI)를 이용하여 가상 오류 검사 코드(A<0:7>)를 생성하도록 구성된다. 상기 가상 DBI 플래그(VDBI)는 상기 64 비트의 데이터를 한 비트도 반전시키지 않은 상태로 출력할 때 사용되는 DBI 플래그 값으로 설정된다. DBI 플래그가 하이 레벨인 경우 데이터를 반전시키지 않으므로 상기 8비트의 가상 DBI 플래그(VDBI)는 모두 하이 레벨(11111111)로 설정될 수 있다.
상기 오류 검사 코드 생성부(200)는 CRC(Cyclic Redundancy Check) 방식에 따른 회로구성이 가능하며, 도 1의 오류 검사 코드 생성부(20)와 동일한 구성을 사용할 수 있다.
상기 오류 검사 코드 재생성부(300)는 상기 가상 오류 검사 코드(A<0:7>)와 상기 데이터 버스 반전부(100)에서 출력된 실제 DBI 플래그(B<0:7>) 및 짝/홀수 정보(C<0:7>)를 이용하여 오류 검사 코드(CRC<0:7>)를 생성하도록 구성된다. 상기 짝/홀수 정보(C<0:7>)는 데이터 라인(GIO<0:7>) 각각을 통해 순차적으로 입력되는 8 비트 데이터 중 오류 검사 코드 생성에 관련된 데이터의 수가 짝수인지 아니면 홀수인지를 정의하는 정보이다. 상기 짝/홀수 정보(C<0:7>)는 C<0> ~ C<7> 각각에 대해 8비트씩 총 64비트로 구성된다.
상기 오류 검사 코드 재생성부(300)는 도 3에 도시된 바와 같이, 상기 가상 오류 검사 코드(A<0:7>)와 상기 실제 DBI 플래그(B<0:7>) 및 짝/홀수 정보(C<0:7>)를 선택적으로 입력받아 8비트의 오류 검사 코드(CRC<0:7>)의 각 비트를 생성하기 위한 제 1 내지 제 8 연산회로(310 ~ 317)를 구비한다.
<수학식 1>
Figure 112007050915179-PAT00001
상기 수학식 1은 가상 오류 검사 코드(A<0:7>), 실제 DBI 플래그(B<0:7>) 및 짝/홀수 정보(C<0:7>)와 오류 검사 코드(CRC0)의 관계를 정의한 것이다.
상기 수학식 1에 정의된 바와 같이, 오류 검사 코드(CRC0)는 상기 실제 DBI 플래그(B<0:7>)와 오류 검사 코드(CRC0)와 관련된 짝/홀수 정보(C0[C00 ~ C07])를 각각 한 비트씩 쌍을 지어 논리곱 연산하고, 그 논리곱 결과값과 가상 오류 검사 코드(A0)를 배타적 논리합 연산하여 생성됨을 알 수 있다.
상기 제 1 연산회로(310)는 상기 수학식 1의 정의에 따른 개념적인 구성으로서, 도 4에 도시된 바와 같이, 논리곱 로직(311) 및 XOR 로직(312)을 구비한다. 상기 논리곱 로직(311)은 제 1 내지 제 8 앤드 게이트(AND0 ~ AND7)를 구비한다.
<표 1>
1st data 2nd data 3rd data 4th data 5th data 6th data 7th data 8th data
GIO 0 0 6 7
GIO 1 8 12 14
GIO 2 16 18 19 21 23
GIO 3 28 30 31
GIO 4 34 35 39
GIO 5 40 43 45
GIO 6 48 49 50 52 53 54
GIO 7 56 60 63
B<0:7> 64 66 67 68 69
A0 A00 A01 A02 A03 A04 A05 A06 A07
B<0:7> B0 B1 B2 B3 B4 B5 B6 B7
C0 C00 C01 C02 C03 C04 C05 C06 C07
CRC 0 Z00 Z01 Z02 Z03 Z04 Z05 Z06 Z07
표 1에 나타난 바와 같이, CRC 방식의 연산원리를 이용하면 상기 데이터 라인(GIO<0:7>)을 통해 첫 번째에서 여덟 번째까지 순차적으로 입력되는 순서별 데이터(1st data ~ 8th data)와 실제 DBI 플래그(B<0:7>) 중에서 오류 검사 코드(CRC0) 생성시 상기 오류 검사 코드(CRC0)값에 영향을 끼칠 수 있는 데이터와 그렇지 않은 데이터로 구분할 수 있다.
상기 표 1의 데이터 중에서 번호가 부여된 데이터가 오류 검사 코드(CRC0) 생성시 상기 오류 검사 코드(CRC0)값에 영향을 끼칠 수 있는 데이터이다. 상기 표 1의 데이터 중에서 번호가 부여되지 않은 데이터는 오류 검사 코드(CRC0) 생성과는 무관한 데이터이다.
나머지 오류 검사 코드(CRC1 ~ CRC7>)에 관여된 데이터 또한 CRC 방식의 연산원리를 이용하여 추출할 수 있으며 상기 표 1과는 다를 수 있다.
상기 가상 오류 검사 코드(A0)는 상기 첫 번째에서 여덟 번째까지 순차적으 로 입력되는 순서별 데이터(1st data ~ 8th data)에 대해 각각 하나씩 8개의 신호성분(A00 ~ A07)으로 구분할 수 있다.
상기 8개의 신호 성분(A00 ~ A07)은 순서별 데이터(1st data ~ 8th data) 각각에 대해 번호가 부여된 데이터들을 배타적 논리합 연산한 결과값이다. 예를 들어, 신호 성부(A02)는 세 번째 데이터들(3rd data) 중에서 data<18>, data<34>, data<50> 및 data<66>을 배타적 논리합 연산한 결과값이다.
상기 가상 오류 검사 코드(A0)는 상기 8개의 신호성분(A00 ~ A07)을 모두 배타적 논리합 연산한 결과값이다.
상기 짝/홀수 정보(C0)는 상기 첫 번째에서 여덟 번째까지 순차적으로 8비트씩 입력되는 순서별 데이터(1st data ~ 8th data) 각각에 대해 상기 오류 검사 코드(CRC0)값에 영향을 끼칠 수 있는 데이터 개수가 짝수인지 아니면 홀수인지를 정의하는 정보이다. 상기 짝/홀수 정보(C0)는 상기 첫 번째에서 여덟 번째까지 순차적으로 입력되는 순서별 데이터(1st data ~ 8th data)에 대해 각각 하나씩 8개의 신호성분(C00 ~ C07)으로 구분할 수 있다. 상기 표 1에 기재된 바와 같이, 순차적으로 입력되는 순서별 데이터(1st data ~ 8th data)와 실제 DBI 플래그(B<0:7>) 중에서 오류 검사 코드(CRC0) 생성시 상기 오류 검사 코드(CRC0)값에 영향을 끼칠 수 있는 데이터와 그렇지 않은 데이터의 수는 CRC 방식의 연산원리를 이용하여 추출한 것으로서 변하지 않는다. 따라서 상기 상기 짝/홀수 정보(C0)와 그 신호성분(C00 ~ C07)들의 값 또한 변하지 않는 고정된 값이다.
입력 데이터의 수가 짝수인 경우 하이 레벨인 데이터의 개수가 홀수이면 로 우 레벨인 데이터의 개수도 홀수가 된다. 따라서 모든 입력 데이터를 반전시켜도 오류 검사 코드(CRC0)의 값은 변하지 않는다.
상기 짝/홀수 정보(예를 들어, C00)가 하이 레벨인 경우 즉, 데이터의 수가 홀수라 하더라도 DBI 플래그(예를 들어, B<0>)가 하이 레벨이면 가상 오류 검사 코드(A0)의 값에 영향을 끼치지 못한다. 상기 가상 오류 검사 코드(A0)는 가상 DBI 플래그(VDBI)를 하이 레벨로 설정한 상태에서 생성된 것이기 때문이다.
상기 오류 검사 코드(CRC0) 생성과 관련된 데이터의 수가 짝수인지 여부는 짝/홀수 정보(C00 ~ C07)를 통해 파악할 수 있다. 상기 오류 검사 코드(CRC0) 생성과 관련된 데이터의 수가 짝수이면 짝/홀수 정보(C00 ~ C07)가 로우 레벨이다.
상기 도 4에 도시된 제 1 연산회로(310)는 수학식 1에 따른 개념적인 구성이다.
실제로 제 1 연산회로(310)를 구성할 경우에는 표 1을 기준으로 짝/홀수 정보(C00 ~ C07) 중에서 로우 레벨인 짝/홀수 정보(C02, C03, C05, C06)를 입력받는 앤드 게이트(AND2, AND3, AND5, AND6)를 삭제하여 도 5와 같이, 회로면적을 줄일 수 있다. 입력신호 중 하나가 로우 레벨인 경우 논리곱 연산의 결과값은 항상 로우 레벨이므로 해당 논리곱 회로를 구성할 필요가 없기 때문이다.
또한 상기 DBI 플래그(B<0:7>)가 로우 레벨인 경우에만 가상 오류 검사 코드(A0)의 값에 영향을 끼치므로, 원래의 DBI 플래그(B<0:7>) 대신에 상기 DBI 플래그(B<0:7>)를 반전시킨 값들이 상기 논리곱 로직(311)에 입력되도록 한다.
상기 제 2 내지 제 8 연산회로(311 ~ 317)는 상기 제 1 연산회로(310)와 동 일한 원리를 통해 구성할 수 있다.
이와 같이 구성된 본 발명에 따른 오류 검사 코드 생성방법을 설명하면 다음과 같다.
상기 데이터 버스 반전부(100)가 상기 64비트의 데이터를 입력 받아 각 8비트별로 이전 데이터에 비해 논리값이 바뀐 비트가 몇 개인지 판단한다.
상기 데이터 버스 반전부(100)는 상기 전체 데이터 비트 중에서 논리값이 바뀐 비트의 수가 전체 데이터 비트의 절반 이상일 경우 상기 DBI 플래그(B<0:7>)를 로우 레벨로 출력한다.
상기 데이터 버스 반전부(100)는 상기 전체 데이터 비트 중에서 논리값이 바뀐 비트의 수가 전체 데이터 비트의 절반 미만일 경우 상기 DBI 플래그(B<0:7>)를 하이 레벨로 출력한다.
상기 오류 검사 코드 생성부(200)는 상기 64비트의 데이터와 가상 DBI 플래그(VDBI)에 대한 가상 오류 검사 코드(A<0:7>)를 생성하여 출력한다.
상기 오류 검사 코드 생성부(200)의 가상 오류 검사 코드(A<0:7>) 생성은 상기 데이터 버스 반전부(100)와 무관하게 이루어진다. 상기 가상 오류 검사 코드(A<0:7>)는 상기 DBI 플래그(B<0:7>)에 비해 빠르거나 동일한 시점에 생성된다.
상기 오류 검사 코드 재생성부(300)의 제 1 내지 제 4 연산회로(310 ~ 380)는 64 비트의 데이터 중 오류 검사 코드(CRC<0:7>) 생성에 관련된 일부 비트와, 8비트의 DBI 플래그(B<0:7>) 중 일부 비트에 대한 연산을 동시에 수행하여 상기 오류 검사 코드(CRC<0:7>)를 생성한다.
예를 들어, 도 1에 도시된 종래기술에 따르면, 오류 검사 코드 생성부(20)가 64비트의 데이터와 8비트의 DBI 플래그 전체, 즉 72비트에 대한 연산을 수행하여 상기 오류 검사 코드(CRC0)를 생성하였다.
그러나 본 발명은 표 1을 기준으로 하였을 때, 도 4의 제 1 연산회로(310)가 64 비트의 데이터 중 오류 검사 코드(CRC<0:7>) 생성에 관련된 29 비트와, 8비트의 DBI 플래그(B<0:7>) 중 5 비트 즉, 34 비트에 대한 연산을 수행하여 상기 오류 검사 코드(CRC<0>)를 생성한다.
상기 제 2 내지 제 4 연산회로(320 ~ 380)의 경우에도 종래의 기술에 비해 감소된 데이터와, 종래의 기술에 비해 감소된 DBI 플래그(B<0:7>)에 대한 연산을 수행하여 상기 오류 검사 코드(CRC<1:7>)를 생성한다.
예를 들어, 도 1에 도시된 데이터 버스 반전부(10)의 연산시간이 '10'이고, 오류 검사 코드 생성부(20)의 연산시간이 '20'이라고 가정하면 오류 검사 코드(CRC<0:7>)가 생성되는데 소요되는 총 시간은 '30'이다.
그러나 도 2에 도시된 본 발명의 경우 데이터 버스 반전부(100)의 연산시간이 '10'이고, 오류 검사 코드 생성부(200)는 상기 데이터 버스 반전부(100) 이전에 연산이 완료되므로 시간 가산이 없다. 그리고 오류 검사 코드 재생성부(300)는 종래기술에 비해 거의 1/2의 데이터를 연산하므로 대략 '10' 정도의 시간이 소요될 수 있다. 따라서 본 발명의 실시예에 따라서 오류 검사 코드(CRC<0:7>)가 생성되는데 소요되는 총 시간은 '20' 미만이 될 것이다.
상술한 정도의 시간 단축은 고속화 동작하는 반도체 메모리 장치와 같은 시 스템에서는 성능을 좌우하는 큰 요소로 작용할 수 있다.
상기 오류 검사 코드(CRC<0:7>)는 EDC 핀을 통해 외부의 시스템 예를 들어, GPU(Graphic Processing Unit)로 출력된다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시괼 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 종래의 기술에 따른 오류 검사 코드 생성장치의 블록도,
도 2는 본 발명에 따른 오류 검사 코드 생성장치의 블록도,
도 3은 도 2의 오류 검사코드 재생성부의 블록도,
도 4는 도 3의 제 1 연산회로의 개념을 나타낸 회로도,
도 5는 도 3의 제 1 연산회로의 실시예를 나타낸 회로도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
100: 데이터 버스 반전부 200: 오류 검사 코드 생성부
300: 오류 검사 코드 재생성부 310 ~ 380: 제 1 내지 제 8 연산회로
311: 논리합 로직 312: XOR 로직

Claims (20)

  1. 가상 DBI(Data Bus Inversion) 정보와 데이터를 이용하여 가상 오류 검사 코드를 생성하는 오류 검사 코드 생성부; 및
    오류 검사 코드 생성에 관련된 데이터 개수의 짝수 또는 홀수 중 어느 하나를 정의하는 짝/홀수 정보, 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 상기 오류 검사 코드를 생성하는 오류 검사 코드 재생성부를 구비하는 오류 검사 코드 생성장치.
  2. 제 1 항에 있어서,
    상기 가상 DBI 정보는
    상기 데이터를 한 비트도 반전시키지 않은 상태로 출력할 때의 DBI 정보 값으로 설정되는 것을 특징으로 하는 오류 검사 코드 생성장치.
  3. 제 1 항에 있어서,
    상기 짝/홀수 정보는
    상기 오류 검사 코드 값을 가변 시킬 수 있는 변수로 사용되는 정보인 것을 특징으로 하는 오류 검사 코드 생성장치.
  4. 제 3 항에 있어서,
    상기 짝/홀수 정보는
    상기 오류 검사 코드 생성에 관련된 데이터 개수가 홀수인 것을 정의하는 값을 갖는 정보인 것을 특징으로 하는 오류 검사 코드 생성장치.
  5. 제 1 항에 있어서,
    상기 오류 검사 코드 생성부는
    CRC(Cyclic Redundancy Check) 로직을 구비하는 것을 특징으로 하는 오류 검사 코드 생성장치.
  6. 제 1 항에 있어서,
    상기 오류 검사 코드 재생성부는
    상기 짝/홀수 정보와 상기 가상 오류 검사 코드를 선택적으로 입력받고, 상기 짝/홀수 정보와 연관된 DBI 정보를 공통으로 입력받는 복수개의 연산회로를 구비하는 것을 특징으로 하는 오류 검사 코드 생성장치.
  7. 제 6 항에 있어서,
    상기 연산회로는
    상기 짝/홀수 정보 및 상기 짝/홀수 정보와 연관된 DBI 정보를 한 비트 씩 논리곱 연산하는 논리곱 로직, 및
    상기 논리곱 로직의 출력과 상기 가상 오류 검사 코드를 배타적 논리합 연산 하는 배타적 논리합 로직을 구비하는 것을 특징으로 하는 오류 검사 코드 생성장치.
  8. 데이터를 이용하여 DBI(Data Bus Inversion) 정보를 생성하는 데이터 버스 반전부;
    가상 DBI 정보와 상기 데이터를 이용하여 상기 DBI 정보 생성완료 이전에 가상 오류 검사 코드를 생성하는 오류 검사 코드 생성부; 및
    오류 검사 코드 생성에 관련된 데이터 개수의 짝수 또는 홀수 중 어느 하나를 정의하는 짝/홀수 정보, 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 상기 오류 검사 코드를 생성하는 오류 검사 코드 재생성부를 구비하는 오류 검사 코드 생성장치.
  9. 제 8 항에 있어서,
    상기 가상 DBI 정보는
    상기 데이터를 한 비트도 반전시키지 않은 상태로 출력할 때의 DBI 정보 값으로 설정되는 것을 특징으로 하는 오류 검사 코드 생성장치.
  10. 제 8 항에 있어서,
    상기 짝/홀수 정보는
    상기 오류 검사 코드 값을 가변 시킬 수 있는 변수로 사용되는 정보인 것을 특징으로 하는 오류 검사 코드 생성장치.
  11. 제 10 항에 있어서,
    상기 짝/홀수 정보는
    상기 오류 검사 코드 생성에 관련된 데이터 개수가 홀수인 것을 정의하는 값을 갖는 정보인 것을 특징으로 하는 오류 검사 코드 생성장치.
  12. 제 8 항에 있어서,
    상기 오류 검사 코드 생성부는
    CRC(Cyclic Redundancy Check) 로직을 구비하는 것을 특징으로 하는 오류 검사 코드 생성장치.
  13. 제 8 항에 있어서,
    상기 오류 검사 코드 재생성부는
    상기 짝/홀수 정보와 상기 가상 오류 검사 코드를 선택적으로 입력받고, 상기 짝/홀수 정보와 연관된 DBI 정보를 공통으로 입력받는 복수개의 연산회로를 구비하는 것을 특징으로 하는 오류 검사 코드 생성장치.
  14. 제 13 항에 있어서,
    상기 연산회로는
    상기 짝/홀수 정보 및 상기 짝/홀수 정보와 연관된 DBI 정보를 각각 한 비트 씩 논리곱 연산하는 논리곱 로직, 및
    상기 논리곱 로직의 출력과 상기 가상 오류 검사 코드를 배타적 논리합 연산하는 배타적 논리합 로직을 구비하는 것을 특징으로 하는 오류 검사 코드 생성장치.
  15. 오류 검사 코드 생성방법으로서,
    전체 데이터 중 오류 검사 코드 생성에 관련된 데이터 개수의 짝/홀수 정보를 생성하는 단계;
    가상 DBI 정보와 상기 데이터를 이용하여 DBI 정보 생성완료 이전에 가상 오류 검사 코드를 생성하는 단계; 및
    상기 짝/홀수 정보, 전체 DBI 정보 중 상기 짝/홀수 정보와 연관된 DBI 정보, 및 상기 가상 오류 검사 코드를 이용하여 실제 오류 검사 코드를 생성하는 단계를 구비하는 오류 검사 코드 생성방법.
  16. 제 15 항에 있어서,
    상기 가상 DBI 정보는
    상기 데이터를 한 비트도 반전시키지 않은 상태로 출력할 때의 DBI 정보 값으로 설정되는 것을 특징으로 하는 오류 검사 코드 생성방법.
  17. 제 15 항에 있어서,
    상기 짝/홀수 정보는
    상기 오류 검사 코드 값을 가변 시킬 수 있는 변수로 사용되는 정보인 것을 특징으로 하는 오류 검사 코드 생성방법.
  18. 제 17 항에 있어서,
    상기 짝/홀수 정보는
    상기 오류 검사 코드 생성에 관련된 데이터 개수가 홀수인 것을 정의하는 값을 갖는 정보인 것을 특징으로 하는 오류 검사 코드 생성방법.
  19. 제 15 항에 있어서,
    상기 가상 오류 검사 코드는 CRC(Cyclic Redundancy Check) 방식으로 생성됨을 특징으로 하는 오류 검사 코드 생성방법.
  20. 제 15 항에 있어서,
    상기 실제 오류 검사 코드를 생성하는 단계는
    상기 짝/홀수 정보, 전체 DBI 정보 중 상기 짝/홀수 정보와 연관된 DBI 정보를 각각 한 비트씩 논리곱 연산하는 단계, 및
    상기 논리곱 연산결과 및 상기 가상 오류 검사 코드를 배타적 논리합하여 그 연산결과를 상기 실제 오류 검사 코드로서 출력하는 단계를 구비하는 것을 특징으 로 하는 오류 검사 코드 생성방법.
KR1020070070192A 2007-07-12 2007-07-12 오류 검사 코드 생성장치 및 방법 KR100902051B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070070192A KR100902051B1 (ko) 2007-07-12 2007-07-12 오류 검사 코드 생성장치 및 방법
US11/958,324 US8060813B2 (en) 2007-07-12 2007-12-17 Apparatus and method for generating error detection codes
JP2008099708A JP2009021981A (ja) 2007-07-12 2008-04-07 エラー検出コード生成装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070070192A KR100902051B1 (ko) 2007-07-12 2007-07-12 오류 검사 코드 생성장치 및 방법

Publications (2)

Publication Number Publication Date
KR20090006642A true KR20090006642A (ko) 2009-01-15
KR100902051B1 KR100902051B1 (ko) 2009-06-15

Family

ID=40254147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070070192A KR100902051B1 (ko) 2007-07-12 2007-07-12 오류 검사 코드 생성장치 및 방법

Country Status (3)

Country Link
US (1) US8060813B2 (ko)
JP (1) JP2009021981A (ko)
KR (1) KR100902051B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539305B2 (en) 2011-02-28 2013-09-17 SK Hynix Inc. Semiconductor apparatus and data processing method
US10606689B2 (en) 2017-04-18 2020-03-31 SK Hynix Inc. Memory system and operating method thereof
US10936409B2 (en) 2018-04-09 2021-03-02 SK Hynix Inc. Memory system and operating method of the memory system

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006005836B4 (de) * 2006-02-08 2009-01-02 Infineon Technologies Ag Schaltungsanordnung und Verfahren zum Erzeugen von zur Fehlererkennung bei einer digitalen Schaltung auswertbaren Kontrollbits und Anordnung zum Überwachen einer digitalen Schaltung
US8633915B2 (en) 2007-10-04 2014-01-21 Apple Inc. Single-layer touch-sensitive display
US20090174676A1 (en) 2008-01-04 2009-07-09 Apple Inc. Motion component dominance factors for motion locking of touch sensor data
US9760424B2 (en) * 2008-01-31 2017-09-12 Thomson Licensing Dtv Systems and methods for dynamically reporting a boot process in content/service receivers
WO2009108562A2 (en) 2008-02-25 2009-09-03 Rambus Inc. Code-assisted error-detection technique
US8487898B2 (en) 2008-04-25 2013-07-16 Apple Inc. Ground guard for capacitive sensing
US8576193B2 (en) * 2008-04-25 2013-11-05 Apple Inc. Brick layout and stackup for a touch screen
US20100059294A1 (en) * 2008-09-08 2010-03-11 Apple Inc. Bandwidth enhancement for a touch sensor panel
US8319747B2 (en) * 2008-12-11 2012-11-27 Apple Inc. Single layer touch panel with segmented drive and sense electrodes
US9261997B2 (en) * 2009-02-02 2016-02-16 Apple Inc. Touch regions in diamond configuration
US8922521B2 (en) 2009-02-02 2014-12-30 Apple Inc. Switching circuitry for touch sensitive display
US9087025B2 (en) 2009-02-05 2015-07-21 Micron Technology, Inc. Data encoding using spare channels in a memory system
JP5303325B2 (ja) * 2009-03-18 2013-10-02 ルネサスエレクトロニクス株式会社 データ処理装置
US8593410B2 (en) 2009-04-10 2013-11-26 Apple Inc. Touch sensor panel design
US8957874B2 (en) * 2009-06-29 2015-02-17 Apple Inc. Touch sensor panel design
US20110134050A1 (en) * 2009-12-07 2011-06-09 Harley Jonah A Fabrication of touch sensor panel using laser ablation
US8260992B2 (en) * 2010-04-12 2012-09-04 Advanced Micro Devices, Inc. Reducing simultaneous switching outputs using data bus inversion signaling
US9652088B2 (en) 2010-07-30 2017-05-16 Apple Inc. Fabrication of touch sensor panel using laser ablation
JP2012100210A (ja) * 2010-11-05 2012-05-24 Nec Corp データ伝送システム、送信回路および受信回路
KR101198250B1 (ko) * 2010-12-06 2012-11-07 에스케이하이닉스 주식회사 오류코드 패턴 형성 회로 및 이를 포함하는 메모리 장치
EP2671155B1 (en) * 2011-01-31 2017-10-11 Everspin Technologies, Inc. Method of reading and writing to a spin torque magnetic random access memory with error correcting code
US9329723B2 (en) 2012-04-16 2016-05-03 Apple Inc. Reconstruction of original touch image from differential touch image
US9886141B2 (en) 2013-08-16 2018-02-06 Apple Inc. Mutual and self capacitance touch measurements in touch panel
US10936120B2 (en) 2014-05-22 2021-03-02 Apple Inc. Panel bootstraping architectures for in-cell self-capacitance
US10289251B2 (en) 2014-06-27 2019-05-14 Apple Inc. Reducing floating ground effects in pixelated self-capacitance touch screens
US9280251B2 (en) 2014-07-11 2016-03-08 Apple Inc. Funneled touch sensor routing
US9880655B2 (en) 2014-09-02 2018-01-30 Apple Inc. Method of disambiguating water from a finger touch on a touch sensor panel
WO2016048269A1 (en) 2014-09-22 2016-03-31 Onamp Research Llc Ungrounded user signal compensation for pixelated self-capacitance touch sensor panel
CN112379792A (zh) 2014-10-27 2021-02-19 苹果公司 像素化自电容水排斥
US9979416B2 (en) * 2014-12-10 2018-05-22 Rambus Inc. Memory controller and method of data bus inversion using an error detection correction code
KR101653468B1 (ko) 2014-12-17 2016-09-01 한양대학교 산학협력단 데이터 반전 코딩 장치 및 방법
CN107209602B (zh) 2015-02-02 2020-05-26 苹果公司 柔性自电容和互电容触摸感测系统架构
KR20160105625A (ko) * 2015-02-27 2016-09-07 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10488992B2 (en) 2015-03-10 2019-11-26 Apple Inc. Multi-chip touch architecture for scalability
US10534481B2 (en) 2015-09-30 2020-01-14 Apple Inc. High aspect ratio capacitive sensor panel
US10365773B2 (en) 2015-09-30 2019-07-30 Apple Inc. Flexible scan plan using coarse mutual capacitance and fully-guarded measurements
AU2017208277B2 (en) 2016-09-06 2018-12-20 Apple Inc. Back of cover touch sensors
KR20180063475A (ko) * 2016-12-02 2018-06-12 삼성전자주식회사 반도체 장치의 오류 검출 코드 생성 회로, 이를 포함하는 메모리 컨트롤러 및 반도체 메모리 장치
US10642418B2 (en) 2017-04-20 2020-05-05 Apple Inc. Finger tracking in wet environment
JP6994649B2 (ja) 2019-07-09 2022-01-14 パナソニックIpマネジメント株式会社 半導体メモリデバイス、エラー通知方法
US11662867B1 (en) 2020-05-30 2023-05-30 Apple Inc. Hover detection on a touch sensor panel

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH063420A (ja) * 1992-06-17 1994-01-11 Toshiba Corp 組み合わせ論理回路のテストパタン生成方法
JPH09204365A (ja) * 1996-01-24 1997-08-05 Sony Corp メモリ検査符号発生回路
JPH10163881A (ja) * 1996-11-27 1998-06-19 Victor Co Of Japan Ltd データ誤り検出符号の算出方法及び算出回路
KR100227789B1 (ko) * 1996-12-14 1999-11-01 정선종 메모리 테스트 패턴 생성기
JP2001523861A (ja) * 1997-11-17 2001-11-27 シーゲイト テクノロジー エルエルシー フレーム受信のための方法及び専用のフレームバッファ
KR100434463B1 (ko) * 1999-01-07 2004-06-05 삼성전자주식회사 부호분할다중접속 통신시스템의 데이터 통신 장치 및 방법
US6490703B1 (en) * 1999-09-30 2002-12-03 Intel Corporation Bus power savings using selective inversion in an ECC system
TW451212B (en) * 1999-12-03 2001-08-21 Macronix Int Co Ltd Read only memory chip having a built in testing circuit
US6584526B1 (en) * 2000-09-21 2003-06-24 Intel Corporation Inserting bus inversion scheme in bus path without increased access latency
JP3480444B2 (ja) * 2000-12-26 2003-12-22 日本電気株式会社 Gfpフレーム転送装置およびgfpフレーム転送方法
US7174498B2 (en) * 2002-02-15 2007-02-06 Intel Corporation Obtaining cyclic redundancy code
US6898648B2 (en) * 2002-02-21 2005-05-24 Micron Technology, Inc. Memory bus polarity indicator system and method for reducing the affects of simultaneous switching outputs (SSO) on memory bus timing
US7613980B2 (en) 2003-06-06 2009-11-03 Avago Technologies General Ip (Singapore) Pte. Ltd. System for computing a CRC value by processing a data message a word at a time
US20050289435A1 (en) * 2004-06-29 2005-12-29 Mulla Dean A Fast approximate DINV calculation in parallel with coupled ECC generation or correction
KR100643498B1 (ko) * 2005-11-21 2006-11-10 삼성전자주식회사 반도체 메모리에서의 데이터 버스 반전 회로 및 데이터버스 반전 방법
KR100877680B1 (ko) * 2006-04-04 2009-01-09 삼성전자주식회사 반도체 장치 사이의 단일형 병렬데이터 인터페이스 방법,기록매체 및 반도체 장치
KR100837802B1 (ko) * 2006-09-13 2008-06-13 주식회사 하이닉스반도체 데이터 입출력 오류 검출 기능을 갖는 반도체 메모리 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539305B2 (en) 2011-02-28 2013-09-17 SK Hynix Inc. Semiconductor apparatus and data processing method
US10606689B2 (en) 2017-04-18 2020-03-31 SK Hynix Inc. Memory system and operating method thereof
US10936409B2 (en) 2018-04-09 2021-03-02 SK Hynix Inc. Memory system and operating method of the memory system

Also Published As

Publication number Publication date
JP2009021981A (ja) 2009-01-29
KR100902051B1 (ko) 2009-06-15
US8060813B2 (en) 2011-11-15
US20090019344A1 (en) 2009-01-15

Similar Documents

Publication Publication Date Title
KR100902051B1 (ko) 오류 검사 코드 생성장치 및 방법
US7352299B1 (en) Method and system for improving memory interface data integrity
JP3871471B2 (ja) Ecc回路搭載半導体記憶装置及びその検査方法
JP5113074B2 (ja) 情報セキュリティ装置
JP5230960B2 (ja) データバスインバージョンを使う低電力バランスコード
US6728743B2 (en) Modulo remainder generator
JP5548218B2 (ja) 物理的システムに依存する暗号鍵を確立するためのシステム
US20080212776A1 (en) Encryption processing circuit and encryption processing method
US8572447B2 (en) Circuitry for built-in self-test
JPH08330975A (ja) 誤り訂正符号復号化方法およびこの方法を用いる回路
US20110299581A1 (en) Built-in self-test circuitry
US8738990B2 (en) Cyclic redundancy check generation via distributed time multiplexed linear feedback shift registers
KR20120098326A (ko) 반도체 장치 및 데이터 처리방법
JP2001243049A (ja) バスエンコーディング/デコーディング装置及びその方法
KR20150043044A (ko) 반도체 장치 및 이를 포함하는 반도체 시스템
EP0608848A2 (en) Cyclic coding and cyclic redundancy code check processor
US7299398B2 (en) Data generating method for forming desired CRC code
CN114374883B (zh) 一种数据传输的校验方法、装置及车辆
JP5062874B2 (ja) 半導体記憶装置
US5835511A (en) Method and mechanism for checking integrity of byte enable signals
US20060007026A1 (en) Data transmitting circuit and method based on differential value data encoding
US20200153459A1 (en) Polar code-based interleaving method and apparatus
KR20080019140A (ko) 테스트 벡터 압축 방법 및 압축된 테스트 벡터를 복원하는디코더
US7075461B2 (en) Method of generating pseudo 8B/10B code and apparatus for generating the same
US6027243A (en) Parity check circuit

Legal Events

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

Payment date: 20120524

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee