KR19990022495A - 프로그램 가능한 구조를 사용한 고속 순환 용장 체크 시스템및 방법 - Google Patents

프로그램 가능한 구조를 사용한 고속 순환 용장 체크 시스템및 방법 Download PDF

Info

Publication number
KR19990022495A
KR19990022495A KR1019970708976A KR19970708976A KR19990022495A KR 19990022495 A KR19990022495 A KR 19990022495A KR 1019970708976 A KR1019970708976 A KR 1019970708976A KR 19970708976 A KR19970708976 A KR 19970708976A KR 19990022495 A KR19990022495 A KR 19990022495A
Authority
KR
South Korea
Prior art keywords
data
error
word
buffer
latch
Prior art date
Application number
KR1019970708976A
Other languages
English (en)
Other versions
KR100264875B1 (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 로데릭 더블류 루이스
Publication of KR19990022495A publication Critical patent/KR19990022495A/ko
Application granted granted Critical
Publication of KR100264875B1 publication Critical patent/KR100264875B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received

Abstract

디지털 시스템에서 사용하기 위한 고속 순환 용장 체크 시스템. 상이한 데이터 프로토콜에 대해 프로그램 가능한 에러 정정 기능을 제공하는 고속 순환 용장 체크 시스템. 처리부담을 최소화하고 스루풋을 최대로 하는 프로그램 가능한 데이터 경로를 제공하는 고속 순환 용장 체크 시스템. 단일 사이클 내에 복수의 동작을 지원하는 시스템. 이 시스템은 입력 버퍼, 래치, CRC 발생기 및 기입 회로, 상태 레지스터, 및 편집 버퍼를 포함하며, 이들은 공통 버스 구조에 접속되어 에러 정정을 수행할 때 최대의 적응성을 제공한다. 데이터 흐름은 데이터가 에러 정정을 필요로 하지 않을 경우 CRC 모듈을 우회하도록 프로그램될 수 있다. 더욱이, 원 데이터는 상이한 데이터 프로토콜을 수용하도록 처리될 수 있으므로 시스템은 단일 데이터 프로토콜로 제한되지 않는다.

Description

프로그램 가능한 구조를 사용한 고속 순환 용장 체크 시스템 및 방법
디지털 시스템은 디지털 데이터의 에러 검출 및 정정을 위해서 시스템에 의해 전송된 데이터의 순환 용장 체크(CRC)를 흔히 채용한다. 본 디지털 시스템은 에러 검출 및 정정을 실현하기 위해서 일반적으로, 정해진 데이터 전송 프로토콜을 필요로 하는 에러 정정 시스템을 갖추고 있다.
예를 들면, 컴퓨터 시스템에서, 데이터는 소정의 프로토콜에 따라 전송되며 전송된 각각의 바이트에 대해 CRC가 수행된다. 원 데이터는 원 데이터 각각의 바이트에 관련된 CRC 비트 정보를 제공하는 CRC 모듈을 통과한다. 이 CRC 비트 정보는 원 데이터에 결합되어 원 데이터와 함께 전송된다. 그러면 원 데이터 및 CRC 비트 정보가 수신된다. CRC 비트 정보는 버퍼에 저장되고 에러 검출 모듈은 원 데이터에 대한 또 다른 CRC를 수행한다. 새롭게 발생된 CRC 비트 정보와 버퍼에 저장된 CRC 비트 정보가 서로 일치하면, 수신기는 원 데이터의 각각의 비트를 정확히 수신한 것이며 에러 정정을 할 필요가 없다. CRC 비트 정보가 서로 일치하지 않으면, 에러가 검출된 것이며 수신기는 이에 따라 에러 정정을 수행할 수 있다.
스루풋이 작은 시스템의 경우, 이와 같은 정정을 수행하는 처리부담이 극미하므로, 정해진 프로토콜로 이와 같은 에러 정정을 정기적으로 수행할 수 있다. 그러나, 데이터량이 큰 시스템의 경우, 정해진 고정된 에러 정정 시스템의 처리부담은 스루풋을 크게 감소시킨다.
더욱이, 어떤 형태의 디지털 데이터는 정보를 실시간 처리해야 하고 원 데이터 일부가 손실되어도 시스템 동작에 특별히 영향을 미치지 않으므로 에러정정을 할 필요가 없다. 디지털 방식 음성 응용예가 한 예이다. 이 경우, 에러 정정은 스루풋을 감소시키는 불필요한 처리부담이 된다.
그러므로, 이 기술에서는 고속 에러 정정 시스템이 필요하다. 에러 정정 시스템은 또한 프로그램할 수 있어야 하는데, 이에 따라 시스템을 거치는 원 데이터는 상황이 요구하는 바에 따라 선택적으로 체크될 수도 있고 체크되지 않을 수도 있는 것이다. 이러한 시스템은 하드웨어를 고치지 않고도 상이한 데이터 프로토콜을 적응성 있게 처리해야 한다.
발명의 요약
여기 개시된 것은 디지털 컴퓨터 시스템에서 데이터를 순환 용장 체크하는 시스템을 기술한 것이다. 본 시스템은 프로그래머블 구조를 사용하여 고속 에러 정정을 제공한다. 본 시스템은 입력 버퍼, 래치, CRC 발생기 및 기입 회로, 상태 레지스터, 및 편집(edit) 버퍼를 포함하며, 이들은 공통 버스 구조에 접속되어 최대한의 적응성으로 에러 정정을 수행할 수 있다.
데이터의 에러 정정이 필요치 않을 경우 데이터 흐름은 CRC 모듈을 우회하도록 프로그램될 수 있다. 더욱이, 원 데이터는 상이한 데이터 프로토콜을 수행하도록 처리될 수 있으므로 시스템은 단일 데이터 프로토콜로 한정되지 않는다.
도면에서, 동일 참조부호는 일부 도면에서 동일 구성요소를 나타낸다.
본 발명은 디지털 순환 용장 체크 시스템에 관한 것으로, 특히 디지털 시스템용 고속 순환 용장 체크 시스템에 관한 것이다.
도1은 순환 용장 체크 시스템의 일 실시예에 대한 블록도이다.
도2a, 도2b 및 도2c는 도1의 순환 용장 체크 시스템의 상세한 도면이다.
도3a, 3b 및 3c는 도1의 순환 용장 체크 시스템에 대한 CRC 발생기의 일예의 상세한 도면이다.
도4는 도3a, 3b, 3c의 CRC 발생기 모듈의 한 단에 대한 상세한 도면이다.
도5는 도1의 순환 용장 체크 시스템의 비교회로의 일예에 대한 상세한 도면이다.
도6은 도1의 순환 용장 체크 시스템에 대한 래치 회로의 일예의 상세한 도면이다.
도7은 도1의 순환 용장 체크 시스템의 단일 사이클 동작의 일예를 도시한 흐름도이다.
바람직한 실시예에 대한 다음의 상세한 설명에서, 이 설명의 일부를 구성하며, 본 발명을 실시하는 예시된 특정 실시예를 통해 도시한 첨부한 도면을 참조한다. 이들 실시예는 이 분야에 숙련된 자들이 본 발명을 실시할 수 있을 정도로 상세히 기술되어 있고, 또한 다른 실시예들에 활용될 수 있으며 구조적인 변경을 본 발명의 정신 및 범위에서 벗어남이 없이 행할 수 있음을 알아야 한다. 따라서, 다음의 상세한 설명은 한정의 의미로 취해지지 말아야 하며 본 발명의 범위는 첨부된 청구범위 및 이의 등가물로 정해지는 것이다.
도1은 순환 용장 체크(CRC) 시스템의 일 실시예에 대한 전체 블록도를 도시한 것이다. 데이터는 시스템을 통해 양방향으로 흐른다. 도1의 좌측에 포트 IOD[0:31]에 데이터 입력은 포트 HE[0:31], PP[0:31], 및 CRC 발생기(130)로 전송할 수 있다. 포트 HE[0:31], PP[0:31]로부터 데이터는 게이트(183 및 185)를 사용하여 데이터 버스(105)를 통해서 CRC 발생기(105)로 전송하거나, 출력을 위한 포트 IOD[0:31]로 전송하기 위해 게이트(184 및 186)를 사용하여 데이터 버스(106)를 통해 CRC 발생기(105)로 전송할 수 있다. 또한, 포트 IOD[0:31]에 입력은 CRC 시스템(100)에 의해서 처리되어 출력을 위해 포트 IOD[0:31]로 복귀될 수 있다. 마찬가지로, 포트 HE[0:31], PP[0:31]에 입력은 CRC 시스템(100)에서 내부적으로 처리되어 포트 HE[0:31], PP[0:31]로 복귀될 수도 있다. 그러므로, CRC 시스템(100)의 구조는 상이한 프로토콜 및 데이터 처리 동작을 처리하도록 프로그램될 수 있어 적응성이 있는 것이다.
CRC 시스템(100)을 통하는 데이터 흐름 제어는 제어기(190)에 의해서, 게이트(181-189)를 통한 입력, CRC 인에이블(192), 입력 인에이블(196), Dout 래치 인에이블(197), 및 상태 인에이블(194)을 사용함으로써 수행된다. 제어기(190)는 CRC 발생기(130), 편집 버퍼(160), 및 비교기(170)에 의해 제공된 에러 정정 정보를 처리하기 위한 에러 신호(198)를 또한 수신한다.
동작 모드
본 발명의 개선된 구조는 많은 처리 모드에 의해 설명될 수 있는 데이터 흐름 및 데이터 처리에 있어 적응성을 제공한다. 제1 동작 모드에서, CRC 시스템(100)은 게이트(187, 188, 189) 각각을 인에이블함으로써 포트 C[0:7], HE[0:31], PP[0:31]로부터 병렬 데이터를 수신한다. 이들 포트로부터의 데이터는 편집 버퍼(160)에 입력되어 다음 처리를 위해 저장된다. 편집 버퍼(160)에 저장된 원 데이터는 많은 상이한 프로토콜을 사용하여 전송될 수 있으나, 대부분 사용되는 프로토콜은 편집 버퍼(160)의 레지스터(160a)에 저장된 8비트 CRC 정보, 레지스터(160b)에 저장된 32비트 헤더 정보, 및 레지스터(160c)에 저장된 32비트 원 데이터를 포함한다. 또 다른 프로토콜은 편집 버퍼(160)의 레지스터(160a)에 저장된 8비트 CRC 정보, 레지스터(160b)에 저장된 32비트 헤더 정보, 및 레지스터(160c)에 저장된 32비트 프리펜드(prepend) 및 포스트펜드(postpend) 데이터를 포함한다. 도1은 8비트 크기의 레지스터(160a), 32비트 크기의 레지스터(160b), 32비트 크기의 레지스터(160c)를 예시하고 있으나, 이 분야에 숙련된 자들은 상이한 비트 길이의 레지스터를 본 발명의 범위 및 정신에서 벗어남이 없이 채용될 수 있음을 쉽게 할 것이다. 이러한 레지스터 길이의 사용은 유일한 혹은 한정하려고 한 것이 아니다.
제1 동작 모드에서, CRC 시스템(100)은 포트 C[0:7], HE[0:31], PP[0:31]로부터 데이터를 수신하여, 수신된 데이터에 에러가 없음을 입증하는데 사용된다. 데이터는 게이트(187, 188, 189)를 활성화하여 편집 버퍼(160)에 저장된다. 도1에 도시한 게이트는 각각 8비트, 32비트, 32비트의 병렬 전송 게이트를 나타낸 것이다. 레지스터(160b) 혹은 레지스터(160c)로부터의 데이터는 게이트(183 및 185)를 사용하여 데이터 버스(105)를 통해 CRC 발생기(130)로 전송될 수 있다. CRC 발생기(130)는 CRC 발생기(130)의 입력에 나타난 32비트에 기초한 새로운 8비트 CRC 워드를 발생하기 위해 제어기(190)에 의해서 CRC 인에이블(192)을 통해 인에이블되어야 한다. CRC 기입 회로(132)는 새로이 발생된 CRC 워드를 래치하며, 이것은 다음에 비교기(170)에서 사용된다. 레지스터(160a)의 내용 또한 게이트(182)가 활성화될 때 비교기(170)로 제공되어, 비교기(170)는 에러 신호(198)를 발생한다. 비교기(170)는 CRC 발생기(130)로부터의 CRC 워드와 레지스터(160a)로부터의 CRC 워드가 상이할 때 논리 1을 발생한다. 프로토콜은 CRC 체킹이 레지스터(160b)의 내용에 대해 수행되었는지 아니면 레지스터(160c)의 내용에 대해서 수행되었는지를 판단하나, 이 실시예에서는 레지스터(160b)의 내용에 대해 에러 정정을 수행하는 것으로 선택하였다. 본 CRC 시스템(100)은 이 시스템에 의해 처리될 수 있는 많은 모드에 더하여, 레지스터(160b 혹은 160c)에 저장된 데이터에 대한 CRC 정보를 발생할 수 있다.
제2 동작 모드에서, 본 CRC 시스템은 포트 IOD[0:31]로부터 원 데이터를 취하여, (1) 원 데이터에 대한 적합한 CRC 워드를 발생하여 이 CRC 워드를 포트 C[0:7]로 전송함으로써, 그리고 (2) 프로토콜에 따라 원 데이터를 포트 HE[0:31], PP[0:31]로 전송함으로써, 데이터를 전송하기 위해 형식화(format) 한다. 이 제2 모드에서, 본 CRC 시스템(100)은 포트 IOD[0:31]로 32비트 워드를 수신하여, 제어기(190)로부터 입력 인에이블(196)에 의해 입력 버퍼(120)가 활성화될 때 래치(110)에 상기 수신된 워드를 래치한다. 사용된 프로토콜은 편집 버퍼(160)의 어느 32비트 포트가 상기 저장된 워드(원 데이터)를 수신하는가를 판단한다. 예를 들면, 한 동작에서, 래치(110)에 저장된 워드는 게이트(183)를 인에이블함으로써 데이터 버스(105)를 통해 레지스터(160b)로 보내진다. 또 다른 예에서, 저장된 워드는 게이트(185)를 인에이블함으로써 데이터 버스(105)를 통해 레지스터(160c)로 보내진다. 래치(110) 내의 워드에 대해 에러 정정이 요구된 경우, CRC 워드 발생을 위해 CRC 발생기(130)의 CRC 인에이블(192)을 인가하여 워드가 처리된다. 발생된 CRC 워드는 게이트(181)를 인에이블함으로써 레지스터(160a)에 저장될 수 있다.
이 제2 동작 모드를 변형하여 32비트 워드를 반복하여 스트로브(strobe)함으로써 64비트 데이터를 처리할 수 있다. 32개의 64비트 제1 및 제2 워드는 포트 IOD[0:31]로부터 데이터를 래치(110)에 반복하여 래치함으로써 데이터 버스(105) 및 게이트(183 및 185)를 사용하여 레지스터(160b 및 160c)로 편집 버퍼(160)에 저장된다. 그러나, 이 경우 CRC 워드 발생은 64비트 데이터 중 단지 32비트에 대해서만 발생해야 한다. 그러나, 본 CRC 시스템(100)의 적응성으로 레지스터(160b) 혹은 (160c)에 저장된 32비트 워드에 대해 CRC가 프로그램된다.
제3 동작 모드에서 CRC 시스템(100)은 IOD[0:31]과 HE[0:31] 혹은 PP[0:31]간 파이프라인 흐름을 제공한다. 데이터 흐름을 양방향이며, HE[0:31] 및 PP[0:31]으로부터 IOD[0:31]로 진행할 수 있다. IOD[0:31]로부터 데이터는 입력 버퍼(120), 래치(110), 데이터 버스(105), 및 게이트(183 및 185)를 통해서 HE[0:31] 및 PP[0:31]로 전송된다. HE[0:31] 및 PP[0:31]로부터 데이터는 데이터 버스(106), Dout 래치(140), 및 게이트(184 및 186)를 사용하여 IOD[0:31]로 전송된다. 데이터는 3개의 상이한 형식으로 파이프라인될 수 있다:
형식1은 IOD[0:31]와 HE[0:31]간 32비트 전송을 제공하며;
형식2는 IOD[0:31]와 PP[0:31]간 32비트 전송을 제공하며;
형식3은 IOD[0:31]와 HE[0:31] 및 PP[0:31]간 연속한 32비트 전송에 의한 64비트 전송을 제공한다.
각각의 형식은 전송된 데이터에 대한 CRC를 필요로 할 수도 있고 그렇지 않을 수도 있기 때문에, 상기 형식 각각은 2중임에 또한 유념한다. 그러나, 64비트 형식에서, CRC 정보는 64비트 워드중 32비트에 대해서만 발생될 수 있다.
또 다른 동작 모드에서, CRC 시스템(100)은 데이터 전송 속도를 최대로 하기 위해서 단일 사이클 내에 32비트 워드 전송 및 CRC를 제공한다. 예를 들면, 편집 버퍼(160)가 레지스터(160a)에 CRC 워드를, 레지스터(160b)에는 헤더 워드를, 레지스터(160c)에는 원 데이터를 포함하고 있다고 가정한다. 단일 사이클 내에 (1) 원 데이터는 데이터 버스(106) 및 게이트(186)를 통해 Dout 래치(140)로 전송되며, (2) 헤더 워드는 데이터 버스(105) 및 게이트(183)를 사용하여 CRC 에러 체크되고, (3) 비교기(160)가 인에이블되어 레지스터(160a) 내의 8비트 데이터에 대해 CRC 발생기(130)의 8비트 출력이 체크된다. 하시라도 출력 동작이 수행되어, Dout-래치-인에이블(197)은 Dout 래치(140)를 활성화시킬 것이며 데이터는 IOD[0:31]에 나타날 것이다.
본 CRC 시스템(100)의 적응성 및 프로그램 가능성은 160b 대신 레지스터(106c)의 내용에 대해 CRC가 수행될 수 있는 모드를 또한 제공한다. 이 모드에서, 데이터 버스(106) 및 게이트(184)는 레지스터(160b)의 내용을 Dout 래치(140)로 전송하는데 사용된다. 데이터 버스(105) 및 게이트(185)는 레지스터(160c)의 내용을 CRC 워드 발생을 위한 CRC 발생기(130)로 전송하는데 사용된다. CRC 시스템(100)은 상기 언급한 것 이외의 데이터 전송의 순열(permutation)을 제공하는 적응성 구조를 가지며, 설명한 모드들은 유일한 혹은 한정의 의미로 의도되지 않았다.
CRC 시스템(100)은 사용자로 하여금 데이터를 PP(160c) 혹은 HE(160b) 레지스터 및/또는 레지스터(160a)에 넣을 수 있게 하며 동시에 상태 레지스터(150)로부터 데이터를 읽게 하며, 데이터를 버스(106)로 해서 Dout 래치(140)로 하여 IOD[0:31]로 출력되게 한다. 대안 실시예에서, 상태 레지스터(150)는 편집 버퍼(160)와 유사하게 별도의 서브레지스터, 및 각각의 서브레지스터를 데이터 버스(106)에 선택적으로 접속시키는 멀티플렉서를 포함한다.
단일 사이클 동작의 한 예를 도7에 도시하였다. 단일 사이클 내에, CRC 시스템(100)은 IOD[0:31]의 데이터 입력을 취하여 이들을 래치(110)에 래치한다(스텝 710, 720, 730). 입력 버퍼를 무능화시켜 다음 데이터 천이들이 입력 버퍼(120)로부터 래치(110)로 전송되지 못하게 한다(스텝 740). 래치(110) 내의 데이터는 데이터 버스(105)로 구동된다(스텝 750). 이때 데이터는 데이터 버스(105) 및 게이트(183 및 185) 각각을 통해 레지스터(160b 혹은 160c)가 사용할 수 있다(스텝 760). 다른 동작은 동일 사이클 내에 수행된다. 예를 들면 상태 레지스터(150)의 내용은 Dout 래치(140)를 사용하여 IOD[0:31]로 전송될 수 있다(스텝 770, 780, 790, 800). 본 발명의 범위 및 정신에서 벗어나지 않고 다른 동작이 가능하다. 인에이블 신호 조정은 제어기(190)에 의해서 수행된다. 제어기(190)의 일 실시예는 단일 사이클 동작에서 사용되는 인에이블들의 타이밍을 동기시키기 위해서 조합 논리 및 아날로그 타이밍 지연을 사용한다. 또 다른 실시예는 제어를 수행하기 위해서 프로세서 및 디지털 타이머를 사용한다. 다른 제어 방법은 본 발명의 범위 및 정신에서 벗어남이 없이 가능하다.
상세한 논리도
도2a , 도2b 및 도2c는 도1의 CRC 시스템을 상세히 한 도면으로, 비교기(170), 래치(110), CRC 구동기(132), 상태 레지스터(150), Dout 래치(140), 및 편집 버퍼(160)에 대한 상세한 논리도를 도시한 것이다. 도3a, 3b 및 3c는 CRC 발생기(130)에 대한 상세한 논리도이다. 도4는 CRC 발생기(130)의 전형적인 단(310)을 도시한 것이다. 도5는 비교 회로(170)의 일 실시예의 상세한 논리도이다. 도6은 래치 회로(110)의 상세한 논리도이다.
고속 CRC 동작
고속 및 콤팩트한 CRC 시스템(100)은 진보된 편집 버퍼(160) 래치(도2c의 EB_HFF(209)) 및 도2b의 3상태 인버터(7) 구동 회로(207)로부터 만들어진다. CRC 를 발생하기 위해서 레지스터(160b 혹은 160c)의 데이터는 데이터 버스(105; 도2c의 EBIO[0:31], 혹은 D 및 C)로 멀티플렉스되어, 도6에 도시된 상세히 도시된 래치(110; 도2a의 isosa_crc 래치(110))를 사용하여 CRC 발생기(130)로 스트로브된다. 래치(110)의 각각의 isosa_crc 래치는 프리차지, 분리, 스트로브, 및 래치 회로를 갖는다. 프리차지 시간에 데이터 버스(105) 라인들은 하이로 프리차지되고, CRC 스트로브(192)는 로우이며, 편집 버퍼(160)는 프리차지된다. CRC 스트로브(192)일 때, 프리차지는 턴오프되고 기입 구동기 혹은 편집 버퍼(160) 출력들이 활성화되어 전하가 데이터 버스(105)로 옮겨지게 한다. 전하차가 발생되게 하는 충분한 시간이 지나면 데이터는 래치(110)에 래치되고, 이것은 프리차지가 다음 액세스시 활성화되게 하는 것이며 데이터 버스(105) 라인의 큰 정전용량을 분리함으로써 전력을 절약하는 것이다. 이때쯤 데이터가 래치되어 래치(110)의 Q 및 Q* 출력에 나타나, 또 다른 액세스까지 유효상태에 있게 된다. 래치(110)의 Q 및 Q* 출력은 CRC 발생기(130)에 대한 완전한 CMOS 값에 있는데, 여기서 이 CRC 발생기(130)는 프리차지 방식을 사용하며 적합한 활성화를 위해서 안정한 DC 입력을 필요로 한다. CRC 프리차지는 무능화되어 CRC 발생기(130)로부터 CRC출력을 발생하게 된다. 이 방식은 매우 빠르며 CMOS EXOR형 회로보다 레이아웃 공간을 덜 필요로 한다.
결론
바람직한 실시예를 설명하기 위해서 특정한 실시예를 예시 및 여기 설명하였으나, 본 발명의 범위에서 벗어남이 없이 여기 도시 및 기술된 특정 실시예 대신, 같은 목적을 달성하도록 계산된 광범한 대안 및/또는 등가 구현된 것을 대신할 수도 있음을 이 분야에 통상의 지식을 가진 자이면 알 것이다. 예를 들면, 레지스터당 비트수는 본 발명의 범위 및 정신에서 벗어남이 없이 변할 수 있다. 또한, 설계에서 레지스터 및 버퍼의 접속의 약간의 변경을 본 발명에서 벗어남이 없이 수행할 수도 있다. 전기, 컴퓨터, 및 전기통신 기술에 지식을 가진자들은 본 발명은 매우 광범위한 실시예로 실현될 수 있음을 쉽게 알 것이다. 예를 들면, 에러 정정을 포함하는 어떤 디지털 시스템이라도 본 발명을 사용하여 향상된 스루풋을 위한 프로그램 가능한 에러 정정을 제공할 수 있다. 이것은 디지털 비디오, 오디오, 컴퓨터, 컴퓨터망, 및 기타 다른 전기통신 시스템을 포함한다. 이 응용은 여기에서 다룬 바람직한 실시예의 어떤 채택이나 변경도 포함한다. 그러므로, 이 발명은 청구범위 및 이의 등가물에 의해서만 제한되게 하였다.

Claims (10)

  1. 에러 정정 시스템에 있어서,
    제1 포트에 접속된 입력 버퍼;
    상기 입력 버퍼에 접속되어 데이터를 래치하는 래치;
    에러 정정 워드를 저장하는 에러부 및 데이터 워드를 저장하는 데이터부를 갖는 편집(edit) 버퍼;
    상기 래치에 접속된 입력 및 상기 편집 버퍼에 접속된 출력을 갖는 것으로, 상기 래치 내의 데이터에 기초하여 에러 워드를 발생하는 에러 워드 발생기;
    상기 에러 워드 발생기 및 상기 편집 버퍼의 상기 편집부에 접속되어, 상기 에러 워드 및 상기 편집 버퍼의 상기 에러부 내의 상기 에러 정정 워드에 기초하여 에러 신호를 발생하는 비교 회로;
    상기 에러 워드 발생기의 상기 입력을 상기 편집 버퍼의 상기 데이터부에 접속하는 제1 데이터 버스; 및
    상기 편집 버퍼의 상기 데이터부를 출력 래치에 접속하며, 상기 출력 래치를 상기 제1 포트에 접속하는 제2 데이터 버스
    를 포함하며,
    상기 편집 버퍼는 상기 에러부를 위한 에러 워드 포트 및 상기 데이터부를 위한 데이터 워드 포트를 갖는 것
    을 특징으로 하는 에러 정정 시스템.
  2. 제1항에 있어서, 상기 편집 버퍼의 상기 데이터부는 헤더부 및 원 데이터부를 포함하며, 상기 데이터 워드 포트는 상기 헤더부를 위한 헤더 워드 포트 및 상기 원 데이터부를 위한 원 워드 포트를 갖는 것을 특징으로 하는 에러 정정 시스템.
  3. 제1항에 있어서, 상기 편집 버퍼의 상기 데이터부는 헤더부 및 프리펜드(prepend) 데이터 및 포스트펜드(postpend) 데이터부를 포함하며, 상기 데이터 워드 포트는 상기 헤더부를 위한 헤더 워드 포트 및 상기 프리펜드 데이터 및 포스트펜드 데이터를 위한 프리펜드 및 포스트펜드 데이터 포트를 갖는 것을 특징으로 하는 에러 정정 시스템.
  4. 제1항에 있어서, 상기 에러 워드 발생기는 순환 용장 체크 발생기인 것을 특징으로 하는 에러 정정 시스템.
  5. 제2항에 있어서, 상기 에러 워드 발생기는 순환 용장 체크 발생기인 것을 특징으로 하는 에러 정정 시스템.
  6. 제3항에 있어서, 상기 에러 워드 발생기는 순환 용장 체크 발생기인 것을 특징으로 하는 에러 정정 시스템.
  7. 데이터부, 헤더부, 및 에러 정정부를 갖는 데이터 워드의 에러 검출 및 정정 방법에 있어서,
    상기 데이터부를 래치로, 상기 헤더부를 에러 신호 발생기로 동시에 전송하는 단계;
    상기 헤더부 및 상기 에러 정정부에 기초하여 상기 에러 신호 발생기로부터 에러 신호를 발생하는 단계;
    상기 에러 신호가 네가티브이면, 상기 래치를 인에이블하여 상기 데이터 워드를 전송하는 단계; 및
    상기 에러 신호가 포지티브이면, 상기 래치를 무능화시켜 상기 데이터 워드의 전송을 금지하는 단계
    를 포함하는 것을 특징으로 하는 데이터 워드 에러 검출 및 정정 방법.
  8. 순환 용장 체크 발생기, 데이터 래치, 및 복수의 데이터 버스 라인에 의해서 접속된 데이터 버퍼를 갖고 있고, 상기 데이터 래치는 프리차지 회로를 갖고 있으며 상기 데이터 버퍼는 데이터 버퍼 출력들을 갖는 시스템에서 순환 용장 체크 에러 발생을 위한 방법에 있어서,
    상기 순환 용장 체크 발생기 및 상기 데이터 버퍼 출력들을 금지하는 단계;
    순환 용장 체크 스트로브가 검출될 때까지 상기 복수의 데이터 버스 라인을 제1 논리 레벨로 프리차지하는 단계;
    상기 프리차지 회로를 턴오프하는 단계;
    상기 복수의 데이터 버스 라인의 전하를 변조하도록 상기 데이터 버퍼 출력들을 활성화하는 단계;
    전하차가 나타나도록 상기 복수의 데이터 버스 라인에 대해 충분한 시간 동안 대기하는 단계;
    상기 데이터 래치에 상기 복수의 데이터 버스를 래치하는 단계; 및
    상기 데이터 래치에 의해서 래치된 데이터에 대해 순환 용장 체크를 수행하는 단계
    를 포함하는 것을 특징으로 하는 순환 용장 체크 에러 발생 방법.
  9. 포트, 입력 버퍼, 입력 래치, 제1 데이터 버스, 레지스터, 출력 래치, 및 제2 데이터 버스를 갖는 순환 용장 체크 시스템에서 단일의 사이클 내에 복수의 동작을 수행하는 방법에 있어서,
    상기 포트로부터 데이터를 수신하도록 상기 입력 버퍼를 활성화하는 단계;
    상기 입력 버퍼로부터 데이터를 상기 입력 래치에 래치하는 단계;
    상기 입력 버퍼를 무능화하는 단계;
    상기 입력 래치의 데이터를 상기 제1 데이터 버스로 전송하는 단계; 및
    상기 제2 데이터 버스의 내용을 상기 포트로 전송하도록 상기 출력 래치를 활성화하는 단계
    를 포함하는 것을 특징으로 하는 순환 용장 체크 시스템의 단일 사이클 내 복수 동작 수행 방법.
  10. 제9항에 있어서, 상기 제1 데이터 버스의 데이터를 상기 레지스터 내에 저장하는 단계, 및 상기 레지스터에 저장된 데이터를 처리하는 단계를 포함하는 것을 특징으로 하는 순환 용장 체크 시스템의 단일 사이클 내 복수 동작 수행 방법.
KR1019970708976A 1995-06-07 1995-12-08 프로그램 가능한 구조를 사용한 고속 순환 용장 체크 시스템및 방법 KR100264875B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/474,397 US5854800A (en) 1995-06-07 1995-06-07 Method and apparatus for a high speed cyclical redundancy check system
US8/474397 1995-06-07

Publications (2)

Publication Number Publication Date
KR19990022495A true KR19990022495A (ko) 1999-03-25
KR100264875B1 KR100264875B1 (ko) 2000-09-01

Family

ID=23883351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970708976A KR100264875B1 (ko) 1995-06-07 1995-12-08 프로그램 가능한 구조를 사용한 고속 순환 용장 체크 시스템및 방법

Country Status (8)

Country Link
US (2) US5854800A (ko)
EP (1) EP0830741B1 (ko)
JP (1) JP3020009B2 (ko)
KR (1) KR100264875B1 (ko)
AT (1) ATE178443T1 (ko)
DE (1) DE69508800T2 (ko)
TW (1) TW482955B (ko)
WO (1) WO1996041424A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620878B2 (en) 2005-03-09 2009-11-17 Samsung Electronics Co., Ltd. Apparatuses and methods for checking integrity of transmission data

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289023B1 (en) * 1997-09-25 2001-09-11 Hewlett-Packard Company Hardware checksum assist for network protocol stacks
US6516363B1 (en) 1999-08-06 2003-02-04 Micron Technology, Inc. Output data path having selectable data rates
US6694416B1 (en) * 1999-09-02 2004-02-17 Micron Technology, Inc. Double data rate scheme for data output
GB0013350D0 (en) * 2000-06-01 2000-07-26 Tao Group Ltd End of message markers
US6906961B2 (en) 2003-06-24 2005-06-14 Micron Technology, Inc. Erase block data splitting
US7444579B2 (en) 2005-04-28 2008-10-28 Micron Technology, Inc. Non-systematic coded error correction
US7453723B2 (en) * 2006-03-01 2008-11-18 Micron Technology, Inc. Memory with weighted multi-page read
US7369434B2 (en) * 2006-08-14 2008-05-06 Micron Technology, Inc. Flash memory with multi-bit read
US7739576B2 (en) * 2006-08-31 2010-06-15 Micron Technology, Inc. Variable strength ECC
US9106258B2 (en) 2013-11-22 2015-08-11 International Business Machines Corporation Early data tag to allow data CRC bypass via a speculative memory data return protocol

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55120252A (en) * 1979-03-12 1980-09-16 Nec Corp Error control system
JPS5776621A (en) * 1980-10-30 1982-05-13 Fujitsu Ltd Data processing system having input and output system
JPS58206254A (ja) * 1982-05-27 1983-12-01 Nec Corp 誤り検出符号生成/検査方式
US4720830A (en) * 1985-12-02 1988-01-19 Advanced Micro Devices, Inc. CRC calculation apparatus having reduced output bus size
JPH01150940A (ja) * 1987-12-08 1989-06-13 Hitachi Ltd Crc演算方式
JPH03505035A (ja) * 1989-02-16 1991-10-31 グラマン エアロスペース コーポレーション 超高速エラー検出ネットワーク
US5241546A (en) * 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
US5691976A (en) * 1992-04-02 1997-11-25 Applied Digital Access Performance monitoring and test system for a telephone network
GB9312135D0 (en) * 1993-06-11 1993-07-28 Inmos Ltd Generation of checking data
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7620878B2 (en) 2005-03-09 2009-11-17 Samsung Electronics Co., Ltd. Apparatuses and methods for checking integrity of transmission data

Also Published As

Publication number Publication date
DE69508800T2 (de) 1999-08-05
KR100264875B1 (ko) 2000-09-01
TW482955B (en) 2002-04-11
DE69508800D1 (de) 1999-05-06
EP0830741A1 (en) 1998-03-25
US5964896A (en) 1999-10-12
JPH10510411A (ja) 1998-10-06
EP0830741B1 (en) 1999-03-31
JP3020009B2 (ja) 2000-03-15
WO1996041424A1 (en) 1996-12-19
ATE178443T1 (de) 1999-04-15
US5854800A (en) 1998-12-29

Similar Documents

Publication Publication Date Title
US6198751B1 (en) Multi-protocol packet translator
US5777567A (en) System and method for serial to parallel data conversion using delay line
US6345334B1 (en) High speed semiconductor memory device capable of changing data sequence for burst transmission
US7093061B2 (en) FIFO module, deskew circuit and rate matching circuit having the same
US6864709B2 (en) Cross point switch with serializer and deserializer functions
US5784370A (en) Method and apparatus for regenerating a control signal at an asynchronous transfer mode (ATM) layer or a physical (PHY) layer
US6452927B1 (en) Method and apparatus for providing a serial interface between an asynchronous transfer mode (ATM) layer and a physical (PHY) layer
JPH0241221B2 (ko)
KR100264875B1 (ko) 프로그램 가능한 구조를 사용한 고속 순환 용장 체크 시스템및 방법
JPH04358245A (ja) データ通信装置
CA2011934A1 (en) Method and apparatus for source routing bridging
US20100257293A1 (en) Route Lookup System, Ternary Content Addressable Memory, and Network Processor
GB2235995A (en) Apparatus for read handshake in high-speed asynchronous bus interface
US5654985A (en) Address tracking over repeater based networks
US6427179B1 (en) System and method for protocol conversion in a communications system
WO1999005608A1 (en) Method and apparatus for recovery of time skewed data on a parallel bus
US5809341A (en) Circuit for transmitting received character when detection signal is not activated and transmitting substitute character when the detection signal is activated
KR100337059B1 (ko) 탄성 버스 인터페이스 데이터 버퍼
JPH0363861B2 (ko)
US7161937B1 (en) Method and apparatus for routing encoded signals through a network
EP0668680B1 (en) Address tracking over repeater based networks
JP3473746B2 (ja) データ送受信回路
US5339312A (en) Station interface unit
SU1211747A1 (ru) Устройство дл сопр жени процессоров в многопроцессорной вычислительной системе
JPH0561812A (ja) 情報処理システム

Legal Events

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

Payment date: 20100525

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee