KR930001921B1 - 사이클릭 리던던시 코드 체크회로 - Google Patents

사이클릭 리던던시 코드 체크회로 Download PDF

Info

Publication number
KR930001921B1
KR930001921B1 KR1019900019968A KR900019968A KR930001921B1 KR 930001921 B1 KR930001921 B1 KR 930001921B1 KR 1019900019968 A KR1019900019968 A KR 1019900019968A KR 900019968 A KR900019968 A KR 900019968A KR 930001921 B1 KR930001921 B1 KR 930001921B1
Authority
KR
South Korea
Prior art keywords
bit
data
unit
latch
output
Prior art date
Application number
KR1019900019968A
Other languages
English (en)
Other versions
KR920013110A (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 KR1019900019968A priority Critical patent/KR930001921B1/ko
Publication of KR920013110A publication Critical patent/KR920013110A/ko
Application granted granted Critical
Publication of KR930001921B1 publication Critical patent/KR930001921B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

내용 없음.

Description

사이클릭 리던던시 코드 체크회로
제1도는 CD롬 데이터 포맷 예시도.
제2도는 비트 순차 사이클릭 리던던시 코드 체크 회로 블럭도.
제3도는 제2도중 쉬프트 레지스터의 구체회로도.
제4도는 본 발명의 블럭도.
제5도는 제4도중 제1래치의 일실시예의 구체회로도.
제6도는 제4도중 제2래치의 일실시예의 구체회로도.
제7도는 제4도중 조합부의 구체회로도.
제8도는 제4도중 제로 검출부의 구체회로도.
* 도면의 주요부분에 대한 부호의 설명
A : 제1래치부 B : 제2래치부
C : 조합부 D : 제로검출부
FF : D플립플롭 INV1, INV2 : 제1 및 제2인버터
G1-G59 : 익스크루시브 오아게이트
G60-G64 : 낸드게이트 G65, G66 : 노아게이트
본 발명은 디지탈 데이타 저장 및 재생회로에 있어서 저장 데이타의 에러발생 여부를 체크하는 회로에 관한 것으로, 특히 8비트 단위로 병렬 처리 가능한 사이클릭 리던던시 코드체크(Cyclic Redundancy Code Check; 이하 CRCC라함) 회로에 관한 것이다.
일반적으로 데이타를 디지털로 저장하고 재생하는 시스켐에서는 저장한 데이타가 원래의 데이터일 것인가, 아니면 에러가 발생한 데이타인가를 체크하기 위해 사이클릭 리던던시 코드(이하 CRC라함)를 사용하고 있다. 뿐만 아니라 에러의 위치와 값 까지도 알아내기 위해서는 CD, CD-롬, CD-I, DAT등에 RS-코드가 널리 사용되고 있다.
일예로, CD-롬에서는 정보의 정확성이 절실히 요구됨에 따라 에러의 발생을 검출하고 그 위치와 값을 알아내기 위해 상기 RS-코드를 사용하고 있고, 생성 다항식이 하기한 (1)식과 같이 표시되는 CRC를 사용하여 에러의 발생 유무를 검출하고 있다.
G(X)=(X16+X16+X2+1)*(X16+X2+X+1)=X32+X31+X16+X15+X4+X3+X+1…(1)
보통전자를 ECC(Error Correction Code), 후자를 EDC(Error Detection Code)라고 말한다. CD-롬에서는 상기 EDC로서 CRC를 사용하고 있는데 그 대상으로 하는 데이타가 제1도에 도시된 바와 같은 CD-롬 데이타 포맷의 동기(Sync), 헤더(header), 사용자 데이타(User data)의 2064바이트를 비트로 나열한 2064×8비트이다.
CRC를 생성하기 위해 2064바이트를 비트로 나열한 2064×8에 대한 정보를 상기와 같은 다항식으로 표현하고, CRC의 생성 다항식 G(x)로 나눈 나머지를 덧붙여 CRC를 형성한다. 다항식으로 표현된 데이타들의 나눗셈은 쉬프트 레지스터를 사용해서 단계적으로 행할 수 있으므로 총 2064×8+4×8 동작을 수행하여야 한다. 그러나 CRC의 데이타가 아주 많기 때문에 리얼타임 프로세싱을 실현하는 시스템에 있어서는 상기의 방식으로 CRCC를 행하는데 시간적으로 문제가 발생하였다.
보통 데이타를 저장하기 위해서는 8비트(1바이트)를 동시에 읽거나 쓸수 있는 메모리를 사용하게 되는데 종래의 경우 CD-롬의 데이타 처리 과정을 보면, CD-DSP 칩으로부터 제1도와 같이 구성된 2352바이트를 직렬로 받아서 메모리에 저장하고 난후 그 2352바이트(1블럭분의 데이타)를 ECC를 행하고 EDC를 행하고 난후 호스트 컴퓨터(Host Computer)로 전송하토록 하였다. 여기서 종래의 비트 순차 CRCC회로에 관하여 설명하면 하기와 같다. 먼저 제1도의 CD-롬 데이타 포멧을 참조하여 다항식을 구하면 바이트신호 2063까지의 2064바이트를 대상으로 하는 다항식을 R(x)라하고 GF(2)에서 표현하면
(여기서 a1은 동기, 헤더, 사용자 데이타 순으로 각 데이타 바이트의 최하위 비트를 선두로 나열한 2064×8=16512비트에 대응함)로 표현할 수 있다.
R1(x)를 R(x)에 X32를 곱한 다항식이라 하고 R(x)를 G(x)로 나누면 다음식으로 쓸수 있다.
R1(x)=Q(x)·G(x)+r(x)
여기서 r(x)는 잉여 다항식이다. 다시쓰면, R1(x)+r(x)=Q(x)·G(x)=Q(x)·G(x)으로 부호다항식 R1(x)+r(x){또는 Q(x)·G(x)}가 구해지고 잉여다항식 r(x)는 하기한 (2)식과 같이 나타낼 수 있다.
이 데이타는 1섹터 데이타(2352바이트들)중 제2064바이트-2067바이트가 되고 2064바이트는(b31…b24), 2065바이트는 (b23…b16), 2066바이트는 (b15…b8), 2067바이트는(b7…b0)에 각각 해당한다. 상기 2068바이트에 대해서 각각의 바이트의 최하위 비트를 선두로하여 순차적으로 32비트 쉬프트 레지스트에 입력시킴으로써 CRCC를 행할 수 있다.
상기와 같은 동작을 수행하기 위해서는 제2도에 도시된 바와 같이 메모리에 데이타를 저장하여두고 CRCC를 행하는 시스템이 필요하다. 먼저 래치부(2a)에서 8비트를 래치해서 1비트씩 순차적으로 2068×8비트를 쉬프트레지스터(2b)에 입력시켜서 레지스터값이 0인가 아닌가를 제로 검출부(2c)에서 판별토록 한다.
상기 쉬프트 레지스터부(2b)에 임의의 초기값으로 예를들어 a31, a30, …, a0들어 있고 상기 래치부(2a)로부터의 출력신호(DT-BIT)로서 데이타가 순차적으로 b0, b1, b2, …, b7이 입력된다고 한다면 제3도는 serial-in 신호선으로 들어오는 데이타를 상기의 G(x)로 나누는 회로이다.
처음 a31, a30, …, a0가 있던 레지스터는 b0를 입력받아 새로운 값을 저장하게 되고 b1, b2, …, b7이 입력됨에 따라 새로운 값을 저장하여 각 32개의 레지스터는 b0-b7과 a31-a0의 값들의 조합으로 표현된다. 이것을 C-언어로 시뮬레이션(Simulation)한 결과는 하기한 reg[31]에서 reg[0]에 이르는 식들과 같이 표현될 수 있다.
reg[31]=a[23]^ a[24]^ a[25]^ a[26]^ a[27]^ a[28]^ a[29]^ a[30]^ a[31]^ b[0]^ b[1]^ b[2]^ b[3]^ b[4]^ b[5]^ b[6]^ b[7]^ ;
reg[30]=a[22];
reg[29]=a[21];
reg[28]=a[20];
reg[27]=a[19];
reg[26]=a[18];
reg[25]=a[17];
reg[24]=a[16];
reg[23]=a[15]^ a[31]^ b[0];
reg[22]=a[14]^ a[30]^ b[1];
reg[21]=a[13]^ a[29]^ b[2];
reg[20]=a[12]^ a[28]^ b[3];
reg[19]=a[11]^ a[27]^ b[4];
reg[18]=a[10]^ a[26]^ b[5];
reg[17]=a[ 9]^ a[25]^ b[6];
reg[16]=a[ 8]^ a[24]^ b[7];
reg[15]=a[ 7]^ a[24]^ a[25]^ a[26]^ a[27]^ a[28]^ a[29];
reg[15]^ =a[30]^ a[31]^ b[0]^ b[1]^ b[2]^ b[3]^ b[4]^ b[5]^ b[6]^ b[7];
reg[14]=a[ 6];
reg[13]=a[ 5];
reg[12]=a[ 4];
reg[11]=a[ 3]^ a[31]^ b[0];
reg[10]=a[ 2]^ a[30]^ b[1];
reg[ 9]=a[ 1]^ a[29]^ b[2];
reg[ 8]=a[ 0]^ a[31]^ a[28]^ b[0]^ b[3];
reg[ 7]=a[30]^ a[27]^ b[1]^ b[4];
reg[ 6]=a[29]^ a[26]=b[2]^ b[5];
reg[ 5]=a[28]^ a[25]^ b[3]^ b[6];
reg[ 4]=a[27]^ a[24]^ b[4]^ b[7];
reg[ 3]=a[27]^ a[28]^ a[29]^ a[30]^ a[31]^ a[24]^ a[25]^ b[0]^ b[1]^ b[2]^ b[3]^ b[4]^ b[5]^ b[6]^ b[7];
reg[ 2]=a[25]^ b[6];
reg[ 1]=a[24]^ b[7];
reg[ 0]=a[24]^ a[25]^ a[26]^ a[27]^ a[28]^ a[29]^ a[30]^ a[31]^ b[0]^ b[1]^ b[2]^ b[3]^ b[4]^ b[5]^ b[6]^ b[7];
상기 과정은 1데이타클럭을 메모리에 저장하는 과정(Buffering) 동안에 행해져야 하므로 각 동작을 수행하는 과정을 짧게 수행할 수 있도록 해야 한다. 그래서 CD-롬에서 채택하고 있는 EDC로서 CRC를 체크하는데 있어서 2068×8번의 동작 수행 횟수를 좀 더 줄일 필요가 있다.
따라서 본 발명의 목적은 8비트(1바이트) 단위로 병렬 처리 가능한 CRCC회로를 제공함에 있다.
이하 본 발명을 첨부한 도면을 참조하여 설명한다.
제4도는 본 발명의 블럭도로써, 메모리(도시하지 않았음)로부터 8비트 데이타를 병렬로 입력하여 병렬로 출력하는 제1래치부(A)와, 상기 제1래치부(A)의 출력데이타를 소정의 신호와 논리조합하여 32비트의 조합신호를 발생하는 조합부(C)와, 상기 조합부(C)의 출력을 일시적으로 래치하여 상기 조합부(C)로 다시 입력하는 제2래치부(B)와, 상기 제2래치부(B)의 출력으로부터 제로 비트를 검출하는 제로 검출부(D)로 구성한다.
제5도는 상기 제4도중 제1래치부(A)의 일예로써, 8비트의 데이타를 메모리로부터 병렬 입력하여 병렬 출력한다.
제6도는 상기 제4도중 제2래치부(B)의 일예로써, 8비트 병렬 입력/출력 래치를 4개(L1-L4) 병렬로 접속하여 조합부(C)로부터 출력되는 32비트 데이타를 일시적으로 래치한다.
제7도는 상기 제4도 중 조합부(C)의 일예로써, 상기 제1 및 제2래치부(A, B)로부터 각각 출력되는 8비트 데이타 및 32비트 데이타를 다수의 익스크루시브 오아게이트(G1-G59)로 논리조합하여 출력한다.
제8도는 상기 제4도 중 제로 검출부(D)의 일예로써, 상기 조합부(C) 출력을 반전하여 병렬 출력하는 제1인버터(INV1)와, 상기 제1인버터(INV1)으로부터 출력되는 32비트 데이타를 8비트씩 논리조합 하는 제1-제4낸드게이트(G60-G63)와, 상기 제1 및 제2낸드게이트(G60, G61) 출력을 논리조합하는 제1노아게이트(G66)와, 상기 제3 및 제4낸드게이트(G62, G63)출력을 논리조합하는 제2노아게이트(G65)와 상기 제1 및 제2노아게이트(G66, G65)출력을 논리조합하는 제5낸드게이트(G64)와, 상기 제5낸드게이트(G64)출력을 반전하는 제2인버터(INV2)와, 상기 제2인버터(INV2)출력을 소정 클럭에 동기시켜 완충하는 D플립플롭(FF)으로 구성된다.
상술한 구성에 의거 본 발명을 상세히 설명한다.
먼저 제4도에서 제1래치부(A)는 제1클럭(CLK1)에 동기되어 메모리로부터 8비트 데이타를 병렬 입력하여 병렬출력한다. 상기 병렬 입력/병렬 출력 기능을 수행하는 제1래치부(A)로는 예를들어 제5도에 도시된 바와 같이 래치(L5)를 사용할 수 있다. 상기 제1래치부(A)에서 출력된 8비트 데이타는 조합부(C)의 한단으로 입력된다.
한편 제2래치부(B)에서는 제2클럭(CLK2)에 동기되어 상기 조합부(C)로부터 출력되는 32비트의 데이타를 래치하여 상기 조합부(C)의 타단으로 다시 인가하는 동시에 제로 검출부(D)로 인가한다. 여기서 상기 제2래치부(B)는 예를들어 제6도에 도시된 바와 같이 8비트 병렬 입력/병렬 출력 래치 4개(L1-L4)를 병렬 연결하여 구성할 수 있다. 이때 상기 조합부(C)에서는 제7도에 도시된 바와 같이 제1-제59익스크루시브 오아게이트(G1-G59)를 이용하여 상기 제1 및 제2래치부(A, B)로부터 각각 인가된 8비트 및 32비트 데이타를 논리조합하여 32비트의 출력데이타를 발생하게 되고 상기 32비트 출력 데이타는 상기 제2래치부(B)로 궤환 입력된다. 이때 상기 조합부(c)의 논리 조합결과는 별첨한 식들과 같다. 다음으로 상기 제로검출부(D)에서 상기 제2래치부(B)로부터 출력되는 32비트 데이타를 제1인버터(INV1)에서 반전하여 제1-제4낸드게이트(G60-G63)에서 각각 8비트씩 논리조합한다. 상기 논리조합 결과는 다시 제1 및 제2노아게이트(G66, G65)에서 논리조합 되는데 상기 제1노아게이트(G66)는 상기 제1 및 제2낸드게이트(G60, G61)출력을 논리조합하게 되며, 상기 제2노아게이트(G65)는 상기 제3 및 제4낸드게이트(G62, G63)출력을 논리조합한다. 상기 제1 및 제2노아게이트(G66, G65)출력은 다시 제5낸드게이트(G64)에서 논리조합된 후 제2인버터(INV2)를 거쳐 반전되고 제4클럭(CLK4)에 동기되어 D플립플롭(FF)에서 완충되어 출력된다. 그러므로 2068바이트가 입력되었을시 상기 제2래치부(B)의 레지스터 값이 0일 경우 상기 제로검출부(D)에서는 이를 인식하게 되는 플래그를 액티브 시키게 된다.
상술한 바와 같이 메모리로부터 8비트 데이타를 독출하여 일시에 CRCC를 행하고 다시 8비트를 독출하여 다음 동작을 수행하는 8비트 병렬처리회로를 구현함으로써 비트를 순차적으로 처리하는 것에 비해배의 시간을 단축할 수 있는 이점이 있을 뿐만 아니라 8비트로 억세스가 가능한 메모리에 데이타를 저장해 놓고 CRCC를 행하는 시스템에 용이하게 적용 가능한 잇점이 있다.

Claims (3)

  1. 디지탈 데이타를 저장 및 재생하는 시스템에서 G(x)=x32+x31+x16+x15+x4+x3+x+1인 생성 다항식을 만족하는 사이클릭 리던던시 코드 체크 회로를 이용하여 저장 데이타의 에러발생 유무를 체크하는 회로에 있어서, 메모리로부터 8비트 데이타를 병렬로 입력하여 출력하는 제1래치부(A)와, 상기 제1래치부(A)의 출력 데이타를 상기 생성 다항식을 만족하도록 소정의 신호와 논리조합하여 32비트의 조합신호를 발생하는 조합부(C)와, 상기 조합부(C)의 출력을 일시적으로 래치하여 상기 조합부(C)로 다시 입력하는 제2래치부(B)와, 상기 제2래치부(B)의 출력으로부터 제로 비트를 검출하는 제로 검출부(D)로 구성되어 8비트 단위로 병렬 처리함을 특징으로 하는 사이클릭 리리던던시 코드 체크회로.
  2. 제1항에 있어서, 조합부(C)가 상기 제1래치부(A)로부터 발생되는 8비트의 데이타와 상기 제2래치부(B)로부터 발생되는 32비트의 데이타를 다단계적으로 배타적 논리합하여 32비트의 데이타를 출력하도록 구성됨을 특징으로 하는 8비트 순차 사이클릭 리던던시 코드 체크회로.
  3. 제1항에 있어서, 제로검출부(D)가 상기 제2래치부(B)로부터 출력되는 32비트 데이타를 반전하는 제1인버터(INV1)와, 상기 반전된 32비트 데이타를 논리조합하여 제로비트 유무를 체크함으로써 제로검출신호를 발생하는 논리조합부와, 상기 제로검출 신호를 소정 클럭에 동기시켜 완충하는 플립플롭(FF)으로 구성됨을 특징으로 하는 8비트 순차 사이클릭 리던던시 코드 체크회로.
KR1019900019968A 1990-12-06 1990-12-06 사이클릭 리던던시 코드 체크회로 KR930001921B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019900019968A KR930001921B1 (ko) 1990-12-06 1990-12-06 사이클릭 리던던시 코드 체크회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019900019968A KR930001921B1 (ko) 1990-12-06 1990-12-06 사이클릭 리던던시 코드 체크회로

Publications (2)

Publication Number Publication Date
KR920013110A KR920013110A (ko) 1992-07-28
KR930001921B1 true KR930001921B1 (ko) 1993-03-20

Family

ID=19307095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900019968A KR930001921B1 (ko) 1990-12-06 1990-12-06 사이클릭 리던던시 코드 체크회로

Country Status (1)

Country Link
KR (1) KR930001921B1 (ko)

Also Published As

Publication number Publication date
KR920013110A (ko) 1992-07-28

Similar Documents

Publication Publication Date Title
US5691994A (en) Disk drive with fast error correction validation
US3668632A (en) Fast decode character error detection and correction system
US5331645A (en) Expandable digital error detection and correction device
JPH05290527A (ja) デ・インターリーブ回路
US4404676A (en) Partitioning method and apparatus using data-dependent boundary-marking code words
JPS6037833A (ja) 符号語の複号装置及び読み取り装置
US4404673A (en) Error correcting network
JP3345385B2 (ja) チェンサーチ装置
JP3803246B2 (ja) 非同期fifo回路
KR930001921B1 (ko) 사이클릭 리던던시 코드 체크회로
JPH11328880A (ja) 誤り訂正装置及び光ディスク読取装置
EP0723342A2 (en) Error correction apparatus
JP2000181807A (ja) 記録媒体のデータ検査方法及び装置
JPH06197025A (ja) エラー訂正方法及び訂正回路
JPS62242258A (ja) 記憶装置
KR0164509B1 (ko) 4비트 병렬 사이클릭 리던던시 체크 디코더
JP3300376B2 (ja) 光ディスクの信号処理方法
JP3135552B2 (ja) リードソロモン符号の誤り検出及び訂正装置
US4893312A (en) Compact, real time tape drive system
KR0164726B1 (ko) 병렬 사이클릭 리던던시 체크 엔코더
JP3339803B2 (ja) 誤り訂正符号生成回路
JPS603046A (ja) 記憶制御方式
JPH05225717A (ja) Datの誤謬訂正のためのアドレス発生回路
KR930005439B1 (ko) 광기록 재생 시스템의 rs엔코딩 회로
KR930007367Y1 (ko) 패리티체크 시스템

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030227

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee