KR100486213B1 - 바이트/워드단위겸용에러검출코드를채용한에러검출장치 - Google Patents

바이트/워드단위겸용에러검출코드를채용한에러검출장치 Download PDF

Info

Publication number
KR100486213B1
KR100486213B1 KR1019970049089A KR19970049089A KR100486213B1 KR 100486213 B1 KR100486213 B1 KR 100486213B1 KR 1019970049089 A KR1019970049089 A KR 1019970049089A KR 19970049089 A KR19970049089 A KR 19970049089A KR 100486213 B1 KR100486213 B1 KR 100486213B1
Authority
KR
South Korea
Prior art keywords
error detection
unit
detection code
word
byte
Prior art date
Application number
KR1019970049089A
Other languages
English (en)
Other versions
KR19990026797A (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 KR1019970049089A priority Critical patent/KR100486213B1/ko
Publication of KR19990026797A publication Critical patent/KR19990026797A/ko
Application granted granted Critical
Publication of KR100486213B1 publication Critical patent/KR100486213B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding 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 using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check

Landscapes

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

Abstract

본 발명은 8비트/16비트 데이터 버스를 지원하는 시스템에서의 상호 호환성을 갖는 에러 검출 코드에 의한 에러 검출 장치에 관한 것이다.
본 발명은 바이트 단위의 에러 검출 코드 또는 워드 단위의 에러 검출 코드에 의한 에러 검출 여부를 결정하여, 이에 상응하는 제어신호를 발생시키는 제어부, 상기 입력되는 데이터를 하기 레지스터부에서 출력되는 데이터를 이용하여 소정의 에러 검출 다항식으로 나눈 값의 나머지 값에 상응하는 바이트 단위 및 워드 단위 에러 검출 코드로 출력하는 피드백 연산부, 상기 피드백 연산부의 바이트 단위 에러 검출 코드 및 워드 단위 에러 검출 코드를 입력하여, 상기 제어신호에 상응하여 상기 바이트 단위 에러 검출 코드 또는 상기 워드 단위 에러 검출 코드를 선택하여 출력하는 멀티플렉서, 상기 멀티플렉서의 출력 데이터를 입력하여, 이를 일시 저장하고 상기 입력되는 데이터에 상응하여 바이트 단위 또는 워드 단위로 저장된 데이터를 출력하는 레지스터부 및 상기 레지스터부의 출력 값이 "1"이 되는 경우에 에러가 발생되었음을 판단하는 에러 검출부를 포함함을 특징으로 한다.
본 발명에 의하면 워드 단위 에러 검출 코드에 의한 데이터 처리 속도를 빠르게 할 수 있을 뿐만 아니라 하나의 시스템으로 바이트 단위 에러 검출 코드와 워드 단위 에러 검출 코드를 모두 지원할 수 있는 효과가 있다.

Description

바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치{Apparatus for detecting the error using the byte/word-based error detection code}
본 발명은 에러 검출 장치에 관한 것으로서, 특히 8비트/16비트 데이터 버스를 지원하는 시스템에서의 데이터 버스 크기에 따라 호환성을 갖는 에러 검출 코드에 의한 에러 검출 장치에 관한 것이다.
일반적으로 저장 매체를 이용하는 시스템에서는 저장하였던 데이터의 복원 및 전송 시에 매체 자체의 결점이나, 전송 중의 노이즈에 의한 소스 데이터의 유실이 발생할 수 있다.
이를 보완하기 위하여 데이터 처리 시스템에서는 적절한 에러 정정 엔진(Error Correction Engine)을 채용하여 어느 정도의 에러를 시스템 자체에서 보정할 수 있도록 하고 있다.
그런데, HDD, CD-ROM 등 호스트 방면으로 데이터를 전송하는 경우에 시스템 자체에서 보정한 데이터를 전송하게 되는데 이 때 더블 체크의 개념으로 에러 검출 코드(EDC ; Error Detection Code) 엔진을 대부분 채용하고 있다.
이 때 사용되는 에러 검출 코드는 시스템의 성격 및 특성에 따라 에러 검출 코드를 적용한 에러 정정 엔진이 재구성될 수 있다.
일 예로 도 2에 도시된 현재 CD-ROM에서 채용하고 있는 에러 검출 코드를 적용하는 에러 정정 엔진은 8비트 데이터 버스를 이용하는 메모리에 연결되어 있어서, 바이트(8비트) 단위의 에러 검출 코드에 의하여 에러를 검출하는 것이 대부분이다. 하지만, CD-ROM의 배속 증가에 의한 데이터 처리에 있어서 기존의 8비트 내부 데이터 버스를 이용하게 되면 빠른 데이터 처리를 실행하는데 하드웨어의 부담이 가중되어 이를 해결하기 위해 16비트 내부 데이터 버스를 채용하고 있는 추세이다. 그리고, 이에 따라서 메모리 인터페이스도 16비트 버스를 지원하는 방향으로 전개되고 있는데, 메모리에 저장되어 있는 데이터를 호스트로 전송할 때 사용되는 에러 검출 코드를 적용하는 시스템의 경우도 16비트 데이터를 처리할 수 있어야 한다.
따라서, 종래의 기술에 의하면 8비트로 구성된 바이트 단위의 에러 검출 코드를 적용하는 에러 검출 시스템과 16비트로 구성된 워드 단위의 에러 검출 코드 적용하는 에러 검출 시스템을 모두 지원할 수 없고, 상호간에 호환성이 없으므로, 각각 별도의 하드웨어로 구성하여야 문제점이 있었다.
본 발명이 이루고자 하는 기술적 과제는 상술한 문제점을 해결하기 위하여 바이트 단위의 에러 검출 코드와 워드 단위의 에러 검출 코드를 적용하는 에러 검출 시스템을 모두 지원할 수 있는 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치를 제공하는데 있다.
상기 기술적 과제를 달성하기 위하여 본 발명에 의한 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치는 바이트 단위 또는 워드 단위로 입력되는 데이터를 소정의 에러 검출 다항식으로 나눈 나머지 값으로 정의되는 소정의 에러 검출 코드의 값들이 "1"일 때 에러가 검출됨을 판단하는 에러 검출 장치에 있어서, 바이트 단위의 에러 검출 코드 또는 워드 단위의 에러 검출 코드에 의한 에러 검출 여부를 결정하여, 이에 상응하는 제어신호를 발생시키는 제어부, 상기 입력되는 데이터를 하기 레지스터부에서 출력되는 데이터를 이용하여 소정의 에러 검출 다항식으로 나눈 값의 나머지 값에 상응하는 바이트 단위 및 워드 단위 에러 검출 코드로 출력하는 피드백 연산부, 상기 피드백 연산부의 바이트 단위 에러 검출 코드 및 워드 단위 에러 검출 코드를 입력하여, 상기 제어신호에 상응하여 상기 바이트 단위 에러 검출 코드 또는 상기 워드 단위 에러 검출 코드를 선택하여 출력하는 멀티플렉서, 상기 멀티플렉서의 출력 데이터를 입력하여, 이를 일시 저장하고 상기 입력되는 데이터에 상응하여 바이트 단위 또는 워드 단위로 저장된 데이터를 출력하는 레지스터부 및 상기 레지스터부의 출력 값이 "1"이 되는 경우에 에러가 발생되었음을 판단하는 에러 검출부를 포함함을 특징으로 한다.
상기 기술적 과제를 달성하기 위하여 본 발명에 의한 또 다른 실시예인 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치는 바이트 단위 또는 워드 단위로 입력되는 데이터를 소정의 에러 검출 다항식으로 나눈 나머지 값으로 정의되는 소정의 에러 검출 코드의 값들이 "1"일 때 에러가 검출됨을 판단하는 에러 검출 장치에 있어서, 바이트 단위의 에러 검출 코드를 채용하는 경우에는 제1상태의 제어신호를, 그리고 워드 단위의 에러 검출 코드를 채용하는 경우에는 제2상태의 제어신호를 발생시키는 제어부, 상기 입력되는 데이터를 하기 레지스터부에서 출력되는 데이터를 이용하여 소정의 에러 검출 다항식으로 나눈 나머지 값에 상응하는 워드 단위 에러 검출 코드를 출력하는 피드백 연산부, 상기 피드백 연산부의 워드 단위 에러 검출 코드를 제1상태의 제어신호가 입력되는 경우에는 상기 워드 단위 에러 검출 코드와 바이트 단위 에러 검출 코드의 공통점을 이용하여 바이트 단위의 에러 검출 코드로 변환시켜 출력시키고, 제2상태의 제어신호가 입력되는 경우에는 상기 논리 연산부의 워드 단위 에러 검출 코드를 변환없이 출력시키는 코드 변환부, 상기 코드 변환부의 출력 데이터를 입력하여, 이를 일시 저장하고 상기 입력되는 데이터에 상응하여 바이트 단위 또는 워드 단위로 출력하는 레지스터부 및 상기 레지스터부의 출력 값이 "1"이 되는 경우에 에러가 발생되었음을 판단하는 에러 검출부를 포함함을 특징으로 한다.
이하 첨부된 도면들을 참조하여 본 발명에 대하여 상세히 설명하기로 한다.
도 3에 도시된 바와 같이, 본 발명에 의한 제1실시예인 바이트/워드 겸용 에러 검출 장치는 연산부(31), 제1피드백 블록(32), 제2피드백 블록(33), 멀티플렉서(34), 레지스터부(35), 에러 검출부(36), 제어부(37)를 구비한다. 여기서, 연산부(31), 제1피드백 블록(32) 및 제피드백 블록(33)을 통합하여 피드백 연산부(100)라 칭한다.
연산부(31)는 도 1과 같은 블록도에 따라서 입력되는 데이터와 레지스터부(35)에서 출력되는 레지스터 값과 배타적 논리합(Exclusive OR) 연산을 실행하여 도 11에 도시된 바와 같이 8비트 단위의 데이터 T[7:0] 및 P[7:0]을 출력시킨다.
제1피드백 블록(32)은 연산부(31)에서 출력되는 T[7:0]을 8비트 데이터 버스를 이용하여 입력받고, 도 9에 도시된 연산식을 실행한 후에 32비트의 피드백 데이터들을 멀티플렉서(34)로 전송한다.
제2피드백 블록(33)은 연산부(31)에서 출력되는 T[7:0]과 P[7:0]을 16비트 데이터 버스를 이용하여 입력받고, 도 10에 도시된 연산식을 실행한 후에 32비트의 피드백 데이터들을 멀티플렉서(34)로 전송한다.
멀티플렉서(34)는 제1피드백 블록(32)에서 출력되는 바이트 단위 피드백 코드와 제2피드백 블록(33)에서 출력되는 워드 단위 피드백 코드를 각각 입력하여, 제어부(37)의 제어신호 로직 상태에 따라서 하나의 피드백 코드를 선택하여 출력한다.
레지스터부(35)는 멀티플렉서(34)에서 출력되는 피드백 코드들을 입력하여, 32비트 레지스터에 에러 검출 코드 즉, 피드백 코드를 일시 저장시킨 후에 8비트 바이트 단위 또는 16비트 워드 단위로 출력시킨다.
에러 검출부(36)는 레지스터부(35)에서 출력되는 각 비트의 값이 "0"인 경우에는 에러가 발생되지 않는 것으로 판단하고, 만일 하나의 비트라도 "1"이 검출되는 경우에는 에러가 발생됨을 표시한다.
제어부(37)는 시스템이 지원하는 데이터 버스의 크기에 따라서 바이트 단위 에러 검출 코드방식을 적용할 것인지 또는 워드 단위 에러 검출 코드방식을 적용할 것인지를 결정하여, 이에 상응하는 논리 상태의 제어신호를 발생시킨다.
본 발명이 적용되는 CD-ROM에서 지원되는 에러 검출 코드에 대한 일반적인 다항식은 다음과 같다.
G(X) =(X16+X15+X2+1)*(X16+X2+X+1)
=X32+X31+X16+X15+X4+X3+X+1
위의 G(X)를 이용한 비트 단위의 에러 검출 코드를 도 1에 도시하였다.
도 1과 같은 기본적인 비트 단위의 에러 검출 코드는 비트 단위의 시프트의 개념으로 이루어진다. 이러한 시프팅을 이용한 레지스터의 값들은 입력 데이터를 일반적인 다항식으로 나눈 값으로 정의되는데, 이 때 레지스터의 값들이 모두 "0"일 때 에러 검출 코드 엔진은 에러가 없음을 나타내게 된다.
도 1과 같이 우측 끝으로부터의 시프트가 시작되는 경우, 다음과 같은 수학식 2가 성립된다.
나머지[R(n-k)(X)/G(X)]=나머지[{R(X)*Xn-k}/G(X)]
여기서, R(X): 수신 데이터
R(n-k)(X): R(X)을 n-k만큼 시프트 수신 데이터이다.
위의 수학식 2의 개념을 해석하면, 에러 검출 데이터의 경우 나머지 값에 의한 에러 유무 판단이므로, 직렬 입력의 데이터를 병렬 형식으로 바꾸어도 나머지 값은 동일하다는 의미가 된다. 이에 따라서, 바이트 단위 에러 검출 코드 방식의 경우는 나머지[{R(X)*X8 }/G(X)]를 하드웨어로 구현하고, 워드 단위 에러 검출 코드 방식의 경우는 나머지[{R(X)*X16 }/G(X)]를 하드웨어로 구현하면 에러 검출 코드에 의한 에러 검출 시스템을 완성할 수 있다.
그러면, 각 구성 요소들을 결합하여 본 발명을 설명하기로 한다.
우선 연산부(31)에서는 입력되는 데이터들을 레지스터부(35)의 레지스터들의 값과 다음과 같은 연산을 실행한다.
입력되는 8비트 데이터 X[7:0]은 레지스터부(35)의 레지스터 Reg[31:24]값과 각 비트 별로 대응하여 배타적 논리합(Exclusive OR)을 실행하여 그 결과를 T[7:0]으로 출력하고, 다음에 입력되는 8비트 데이터 X[8:15]는 레지스터부(35)의 레지스터 Reg[23:16] 값과 각 비트 별로 대응하여 배타적 논리합(Exclusive OR)을 실행하여 그 결과를 P[7:0]으로 출력한다.
위에서 T[7:0]은 바이트 단위 에러 검출 코드방식을 적용하는 경우에 연산된 데이터이고, P[7:0]은 워드 단위 에러 검출 코드방식을 적용하는 경우의 연산된 데이터이다. 워드 단위 에러 검출 코드방식을 적용하는 경우에는 P[7:0]과 T[7:0]을 상/하위 바이트로 하여 16비트 워드로 연산된 데이터를 만든다.
그리고 나서, 연산된 바이트 단위의 데이터 출력은 제1피드백 블록(32)에 입력되고, 연산된 워드 단위의 데이터 출력은 제2피드백 블록(33)에 입력된다.
그러면, 제1피드백 블록(32)에서는 8비트 단위로 입력되는 데이터 T[7:0]과 레지스터부(35)로부터 입력되는 Reg[31:0]을 도 1에 도시된 블록에 의하여 도 9와 같이 Feedback[31:0]을 연산하여 출력한다.
즉, 만일 비트 단위 에러 검출 코드 방식을 적용하는 경우에는 첫 번째 데이터 T[7]이 인가되면, 레지스터부(35)의 Reg[31] 값과 T[7]을 합산한 결과가 Reg[0]의 값으로 로딩된다. 이 때 합산은 캐리는 불필요하므로, 배타적 논리합(Exclusive OR) 연산에 의하여 실행한다. 그리고 순차적으로 T[6]∼T[0]이 입력되어, 레지스터들이 시프트되면서 연산을 실행하면 도 9에 도시된 바와 같이 레지스터 Reg[0]에는 T[7]^T[6]^T[5]^T[4]^T[3]^T[2]^T[1]^T[0]을 연산한 값이 로딩된다. 이와 같은 연산을 도 1의 블록도를 참조하여 바이트 단위로 연산을 실행하여 4개 바이트를 결합하여 32비트의 바이트 단위 피드백 데이터를 출력시킨다.
그리고 수학식 2에서 해석된 바와 같이, 1비트씩 시프트시키면서 연산을 실행하는 것과, 바이트 단위 또는 워드 단위로 연산을 실행한 값의 결과는 일치하므로, 도 9와 같이 바이트 단위로 피드백 데이터를 연산하여도 비트 단위로 연산한 결과와는 동일하게 된다.
그리고, 제2피드백 블록(33)에서는 16비트 단위로 입력되는 데이터 P[7:0] T[7:0]과 레지스터부(35)로부터 입력되는 Reg[31:0]을 도 1에 도시된 블록에 의하여 연산하면 도 10과 같은 결과를 얻는다. 그리고 도 10에 도시된 32비트의 워드 단위 피드백 데이터를 출력시킨다.
그러면, 멀티플렉서(34)는 인가되는 제어신호의 논리 상태에 따라서, 제1피드백 블록(32)에서 입력되는 바이트 단위 피드백 데이터 또는 제2피드백 블록(33)에서 입력되는 워드 단위 피드백 데이터를 선택하여 출력한다. 이렇게 선택되어 출력된 피드백 데이터는 레지스터부(35)를 구성하는 32비트 레지스터에 저장된다.
그리고 나서, 에러 검출부(36)는 레지스터부(35)의 32비트 레지스터의 값을 비교하여 "0"인 경우에는 에러가 없는 경우이고, "1"인 경우에는 에러가 있음을 알린다.
이와 같은 동작에 의하여 16비트 데이터 처리에 있어서는 16비트 내부 데이터 버스를 이용하여 워드 단위 에러 검출 코드 방식을 적용하여 에러 유무를 검출할 수 있으며, 또한 8비트 데이터 처리에 있어서는 8비트 내부 데이터 버스를 이용하여 바이트 단위 에러 검출 코드 방식을 적용하여 에러 유무를 검출할 수 있게 되었다.
다음은 본 발명의 또 다른 실시예를 도 4를 참조하여 설명하기로 한다.
도 4에 도시된 바와 같이, 본 발명에 의한 제2실시예는 연산부(41), 피드백 블록(42), 제1코드변환부(43), 제2코드변환부(44), 레지스터부(45), 에러 검출부(46), 제어부(47)를 구비한다. 여기서, 연산부(41)과 피드백 블록(42)을 통합하여 피드백 연산부(200)라 칭한다.
연산부(41)는 도 1과 같은 블록도에 따라서 입력되는 데이터를 레지스터부(44)에서 출력되는 에러 검출 코드와 연산을 실행하여 도 11에 도시된 바와 같은 P[7:0] T[7:0]을 출력한다.
피드백 블록(42)은 연산부(41)에서 16비트(2 바이트)로 구성된 연산 데이터들로 도 10에 도시된 연산식과 같은 32비트 피드백 코드를 만든 후에 제1코드변환부(43)로 출력한다.
그러면, 제1코드변환부(43)에서는 내부의 제1∼3멀티플렉서에 의하여 에러 검출 코드 방식이 바이트 방식인지 아니면, 워드 방식인지에 따라서 다음과 같이 동작한다.
내부의 제1∼3멀티플렉서 동작 설명에 앞서, 도 9에 도시된 바이트 단위 에러 검출 코드에 의한 피드백 데이터 구성과 도 10에 도시된 워드 단위 에러 검출 코드에 의한 피드백 데이터 구성의 공통점을 살펴보면 다음과 같다.
워드 단위 방식 피드백 데이터 중 Feedback[0:7]은 워드 단위 방식의 구성에서 T[7:0]을 "0"으로 만들고, P[7:0]을 T[7:0]으로 변환시키면, 동일해 진다는 것을 알 수 있다.
이에 대한 변환을 실행시켜 주는 멀티플렉서를 도 5 및 도 6에 도시하였다.
즉, 워드 단위 방식이 적용되는 경우에는 T[7:0]과 P[7:0]을 그대로 선택하여 T[7:0]과 P[7:0]으로 출력시키고, 바이트 단위 방식이 적용되는 경우에는 T[7:0]에는 "0"을 출력시키고, P[7:0]에는 T[7:0]을 선택하여 출력시킨다.
이와 같은 변환을 실행하면 피드백 데이터 중 Feedback[0:7]을 워드 단위 방식에서 바이트 단위 방식으로 변환시켜 출력할 수 있게 된다.
다음으로, 피드백 데이터 중 Feedback[16:31]의 워드 단위 방식과 바이트 단위 방식의 공통점을 이용한 방식 변환 방법을 살펴보면, 워드 단위 방식의 데이터 Feedback[16:31]은 T[7:0]을 "0"으로 하고, Reg[X]를 Reg[X+8]로 변환시키면 동일해짐을 알 수 있다.
이에 대한 변환을 실행시켜 주는 멀티플렉서를 도 7에 도시하였다.
즉, 워드 단위 방식이 적용되는 경우에는 Reg[15:0]을 그대로 선택하여 Reg[15:0]으로 출력시키고, 바이트 단위 방식이 적용되는 경우에는 도 5의 제1멀티플렉서에 의하여 T[7:0]에는 "0"을 출력시키고, Reg[23:8]을 Reg[15:0]으로 레지스터부의 데이터를 8비트 시프트시켜 출력한다.
이와 같은 변환을 실행하면 피드백 데이터 중 Feedback[16:31]을 워드 단위 방식에서 바이트 단위 방식으로 변환시켜 출력할 수 있게 된다.
그런데, 피드백 데이터 Feedback[8:15]는 바이트 단위 방식과 워드 단위 방식의 데이터에서 공통적인 요소를 찾을 수가 없으므로, 제1코드변환부(43)의 제1,2멀티플렉서를 거친 후에, 제2코드변환부(44)에 의하여 워드 단위 방식에서 바이트 단위 방식으로 각 해당 비트를 변환시키는 연산을 실행하여 도 8과 같이 내부 멀티플렉서(MUX8∼MUX15)의 한 입력단자에 인가시키고, 또 다른 입력단자에는 워드 단위 방식의 Feedback[8:15]를 인가시킨다. 그런 후에 제어신호에 의하여 워드 단위의 피드백 데이터 Feedback[8:15] 또는 바이트 단위로 변환된 피드백 데이터를 선택하여 출력한다.
그리고, 레지스터부(45)는 32비트로 구성된 피드백 데이터인 에러 검출 코드들을 일시 저장한다. 즉, 레지스터부의 Reg[31:0]에 상응하는 각 비트에 해당되는 레지스터에 제1코드변환부(43)로부터 Feedback[31:16] 및 Feedback[7:0]이 인가되고, 제2코드변환부(44)로부터 Feedback[15:8]이 인가된다.
에러 검출부(46) 및 제어부(47)는 도 3에서 설명한 에러 검출부(36) 및 제어부(37)의 동작과 동일하다.
이상과 같은 동작에 의하여 시스템에 적용되는 방식이 8비트 데이터 버스를 사용하는 바이트 단위 에러 검출 코드 방식인지 또는 16비트 데이터 버스를 사용하는 워드 단위 에러 검출 코드 방식인지에 관계없이 호환성 있게 에러 검출을 할 수 있게 되었다.
상술한 바와 같이 본 발명에 의하면 워드 단위 에러 검출 코드의 생성 및 워드 단위 에러 검출 코드를 바이트 단위 에러 검출 코드로 변환시킴으로써, 워드 단위 에러 검출 코드에 의한 데이터 처리 속도를 빠르게 할 수 있을 뿐만 아니라 하나의 시스템으로 바이트 단위 에러 검출 코드와 워드 단위 에러 검출 코드를 모두 지원할 수 있는 효과가 있다.
도 1은 종래의 기술에 의한 비트 단위 에러 검출 코드 방식의 블록도이다.
도 2는 종래의 기술에 의한 바이트 단위 에러 검출 코드 방식을 적용한 에러 검출 장치의 블록도이다.
도 3은 본 발명에 의한 제1실시예인 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치의 구성도이다.
도 4는 본 발명에 의한 제2실시예인 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치의 구성도이다.
도 5는 도 4의 코드 변환부를 구성하는 제1멀티플렉서의 블록도이다.
도 6은 도 4의 코드 변환부를 구성하는 제2멀티플렉서의 블록도이다.
도 7은 도 4의 코드 변환부를 구성하는 제3멀티플렉서의 블록도이다.
도 8은 도 4의 코드 변환부를 구성하는 제4멀티플렉서의 블록도이다.
도 9는 바이트 단위 에러 검출 코드의 피드백 데이터의 연산식을 도시한 표이다.
도 10은 워드 단위 에러 검출 코드의 피드백 데이터의 연산식을 도시한 표이다.
도 11은 도 3∼8에 도시된 연산부에서 출력되는 데이터의 연산식을 도시한 표이다.

Claims (3)

  1. 바이트 단위 또는 워드 단위로 입력되는 데이터를 소정의 에러 검출 다항식으로 나눈 나머지 값으로 정의되는 소정의 에러 검출 코드의 값들이 "1"일 때 에러가 검출됨을 판단하는 에러 검출 장치에 있어서,
    바이트 단위의 에러 검출 코드 또는 워드 단위의 에러 검출 코드에 의한 에러 검출 여부를 결정하여, 이에 상응하는 제어신호를 발생시키는 제어부;
    상기 입력되는 데이터를 하기 레지스터부에서 출력되는 데이터를 이용하여 소정의 에러 검출 다항식으로 나눈 값의 나머지 값에 상응하는 바이트 단위 및 워드 단위 에러 검출 코드로 출력하는 피드백 연산부;
    상기 피드백 연산부의 바이트 단위 에러 검출 코드 및 워드 단위 에러 검출 코드를 입력하여, 상기 제어신호에 상응하여 상기 바이트 단위 에러 검출 코드 또는 상기 워드 단위 에러 검출 코드를 선택하여 출력하는 멀티플렉서;
    상기 멀티플렉서의 출력 데이터를 입력하여, 이를 일시 저장하고 상기 입력되는 데이터에 상응하여 바이트 단위 또는 워드 단위로 저장된 데이터를 출력하는 레지스터부; 및
    상기 레지스터부의 출력 값이 "1"이 되는 경우에 에러가 발생되었음을 판단하는 에러 검출부를 포함함을 특징으로 하는 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치.
  2. 바이트 단위 또는 워드 단위로 입력되는 데이터를 소정의 에러 검출 다항식으로 나눈 나머지 값으로 정의되는 소정의 에러 검출 코드의 값들이 "1"일 때 에러가 검출됨을 판단하는 에러 검출 장치에 있어서,
    바이트 단위의 에러 검출 코드를 채용하는 경우에는 제1상태의 제어신호를, 그리고 워드 단위의 에러 검출 코드를 채용하는 경우에는 제2상태의 제어신호를 발생시키는 제어부;
    상기 입력되는 데이터를 하기 레지스터부에서 출력되는 데이터를 이용하여 소정의 에러 검출 다항식으로 나눈 나머지 값에 상응하는 워드 단위 에러 검출 코드를 출력하는 피드백 연산부;
    상기 피드백 연산부의 워드 단위 에러 검출 코드를 입력하여, 제1상태의 제어신호가 입력되는 경우에는 상기 워드 단위 에러 검출 코드를 구성하는 총 비트 중에서 하위의 1/2 비트 값들을 "0"으로 세팅하고 상위의 1/2 비트 값들만을 선택하여 바이트 단위의 에러 검출 코드로 변환시켜 출력시키고, 제2상태의 제어신호가 입력되는 경우에는 상기 피드백 연산부의 워드 단위 에러 검출 코드를 변환없이 출력시키는 코드 변환부;
    상기 코드 변환부의 출력 데이터를 입력하여, 이를 일시 저장하고 상기 입력되는 데이터에 상응하여 바이트 단위 또는 워드 단위로 출력하는 레지스터부; 및
    상기 레지스터부의 출력 값이 "1"이 되는 경우에 에러가 발생되었음을 판단하는 에러 검출부를 포함함을 특징으로 하는 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치.
  3. 제2항에 있어서, 상기 코드 변환부는
    상기 워드 단위 에러 검출 코드를 구성하는 하위 바이트 단위 에러 검출 코드(T[7:0])를 상기 제1상태의 제어신호가 인가되는 경우에는 "0"을 출력하고, 상기 제2상태의 제어신호가 인가되는 경우에는 입력 데이터를 그대로 출력하는 제1멀티플렉서;
    상기 워드 단위 에러 검출 코드를 구성하는 하위 바이트 단위 에러 검출 코드(T[7:0]) 및 상위 바이트 단위 에러 검출 코드(P[7:0])를 입력하여, 상기 제1상태 제어신호가 인가되는 경우에는 상기 하위 바이트 단위 에러 검출 코드(T[7:0])를 선택하고, 상기 제2상태 제어신호가 인가되는 경우에는 상기 상위 바이트 단위 에러 검출 코드(P[7:0])를 선택하여 에러 검출 코드[7:0]을 발생시키는 제2멀티플렉서;
    상기 레지스터부의 데이터 Reg[15:0]과 Reg[23:0]을 입력하여, 상기 제1상태 제어신호가 인가되는 경우에는 Reg[15:0]을 선택하고, 상기 제2상태 제어신호가 인가되는 경우에는 Reg[23:8]을 선택하여, 에러 검출 코드[31:16]을 발생시키는 제3멀티플렉서; 및
    상기 제1상태 제어신호가 인가되는 경우에는 상기 워드 단위 에러 검출 코드[15:8]을 바이트 단위 에러 검출 코드 값에 상응하는 값으로 변환시키는 연산을 실행하여 출력하고, 상기 제2상태 제어신호가 인가되는 경우에는 워드 단위 에러 검출 코드를 선택하여, 에러 검출 코드[15:8]을 발생시키는 제4멀티플렉서를 포함함을 특징으로 하는 바이트/워드 단위 겸용 에러 검출 코드를 채용한 에러 검출 장치.
KR1019970049089A 1997-09-26 1997-09-26 바이트/워드단위겸용에러검출코드를채용한에러검출장치 KR100486213B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970049089A KR100486213B1 (ko) 1997-09-26 1997-09-26 바이트/워드단위겸용에러검출코드를채용한에러검출장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970049089A KR100486213B1 (ko) 1997-09-26 1997-09-26 바이트/워드단위겸용에러검출코드를채용한에러검출장치

Publications (2)

Publication Number Publication Date
KR19990026797A KR19990026797A (ko) 1999-04-15
KR100486213B1 true KR100486213B1 (ko) 2005-06-16

Family

ID=37303042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970049089A KR100486213B1 (ko) 1997-09-26 1997-09-26 바이트/워드단위겸용에러검출코드를채용한에러검출장치

Country Status (1)

Country Link
KR (1) KR100486213B1 (ko)

Also Published As

Publication number Publication date
KR19990026797A (ko) 1999-04-15

Similar Documents

Publication Publication Date Title
US7590916B2 (en) Cyclic redundancy checking value calculator
US9047082B2 (en) Instruction-set architecture for programmable Cyclic Redundancy Check (CRC) computations
US4809273A (en) Device for verifying operation of a checking code generator
KR0147150B1 (ko) 디코더를 이용한 순환 리던던시 체크 오류 검출 및 정정 장치
JPH02178738A (ja) 少なくとも2つのオペランドの算術演算において誤りを検出するための方法
US5724370A (en) CRC generation and detection method
KR100486213B1 (ko) 바이트/워드단위겸용에러검출코드를채용한에러검출장치
JP2004159333A (ja) 巡回冗長検査(crc)符号を用いたデータを交換するための構成、ならびにデータバス上で交換されているデータからcrc符号を自動的に生成するための方法および装置
US5408476A (en) One bit error correction method having actual data reproduction function
JPS617729A (ja) 短縮形巡回ブロツクコ−ドにおけるエラ−バ−ストを訂正する装置
JPH10112660A (ja) リード・ソロモン符号を利用した誤り復号方法および装置
KR100188147B1 (ko) 주기적 여유 코드를 이용한 오류검출회로
US5835511A (en) Method and mechanism for checking integrity of byte enable signals
JPH0241032A (ja) 誤り訂正装置
US6694344B1 (en) Examination of residues of data-conversions
KR101149110B1 (ko) 디지털 통신 시스템의 rs 복호기
JP3579039B2 (ja) 巡回符号を用いた誤り訂正回路
JP3071482B2 (ja) パケット受信機の誤り訂正回路
JP2008112522A (ja) 誤り検出装置および誤り検出方法
JP2009117883A (ja) 演算処理装置
JPH0652002A (ja) データチェック方法及び回路
US20130227375A1 (en) Techniques for Reusing Components of a Logical Operations Functional Block as an Error Correction Code Correction Unit
KR100246342B1 (ko) 리드솔로몬오류수정장치
KR100234703B1 (ko) 데이타 오류체크 방법
JPH0311827A (ja) 誤り検出訂正回路

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
LAPS Lapse due to unpaid annual fee