KR100292788B1 - 에러검출 및 정정회로 - Google Patents

에러검출 및 정정회로 Download PDF

Info

Publication number
KR100292788B1
KR100292788B1 KR1019980063937A KR19980063937A KR100292788B1 KR 100292788 B1 KR100292788 B1 KR 100292788B1 KR 1019980063937 A KR1019980063937 A KR 1019980063937A KR 19980063937 A KR19980063937 A KR 19980063937A KR 100292788 B1 KR100292788 B1 KR 100292788B1
Authority
KR
South Korea
Prior art keywords
error
bit
data
check
bits
Prior art date
Application number
KR1019980063937A
Other languages
English (en)
Other versions
KR20000047154A (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 KR1019980063937A priority Critical patent/KR100292788B1/ko
Publication of KR20000047154A publication Critical patent/KR20000047154A/ko
Application granted granted Critical
Publication of KR100292788B1 publication Critical patent/KR100292788B1/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/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

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)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 MASS 메모리나 디지털 데이터 프로세싱에 16bit 데이터를 처리하는데 있어 modified Hamming code를 이용하여 1bit 에러정정과 2bit 에러를 검출하도록 하는 에러검출 및 정정회로에 관한 것이다.
이러한 본 발명은 16bit 데이타 입력을 받아 패리티비트를 생성하는 체크비트 생성기와, 전송데이터에 오류를 발생시키기 위해 선택된 데이터비트의 값을 역으로 변환시키는 오류발생회로와, 체크비트와 입력데이터에서 생성된 체크비트를 비교하여 오류코드를 발생시키는 오류코드 발생기와, 체크비트의 값에 따라 오류비트의 위치를 찾아주는 오류위치 감지기와, 오류가 감지된 위치의 데이터를 정정하는 오류정정기와, 오류발생 여부를 감지하는 오류발생 감지기를 구비시킴으로써 이루어진다.

Description

에러검출 및 정정회로
본 발명은 MASS 메모리나 디지털 데이터 프로세싱에 16bit 데이터를 처리하는데 있어 modified Hamming code를 이용하여 1bit 에러정정과 2bit 에러를 검출하도록 하는 에러검출 및 정정회로에 관한 것이다.
다목적 실용위성 본체시스템에서 원격구동장치(RDU)는 자세제어계(AOCS)에 위치한 컴퓨터 처리장치로서 각종 센서로부터 정보를 수립하고 처리하는 기능을 가지고 있으며 디지털 로직부분과 아날로그 회로로 나누어지는데 디지털 로직부분은 15종류의 FPGA(Fied Programmable Gate Array)로 구성되어 있다.
디지털 로직부분은 집적화기법을 이용하여 FPGA를 설계하는데 있어, XOR, 각종카운터, LATCH, 플립플롭(F/F), 레지스터, 멀티플렉서, 디멀티플렉서, 디코더 및 인코더 등의 각종 MACRO 및 Digital CAD에서 제공하는 cell을 이용한다.
위성체에서 디지털 프로세싱을 수행하는 과정에서 신호의 왜곡, 잡음의 혼재. 전송선에서 데이터의 손실, 기억소자에서 장시간 저장으로 인한 데이터의 파손을 원래 데이터로 재생하기 위하여 인코더와 디코더를 사용하며 데이터의 전송이 올바르지 않을 경우 에러를 검출하고 정정을 수행하여야 한다.
본 발명은 상기된 바와 같이 16bit 데이터 전송시 발생할 수 있는 에러를 검출하고 이를 정정해주도록 하는 것으로 16bit modified Hamming code를 사용하여 1bit 에러정정과 2bit 에러를 검출하는 FPGA를 구현한 것이다.
데이터 bit와 패리티 체크 bit를 분리하여 처리하는 것이 systimatic code인데 Hamming code를 systematic code로 수정한 것이 modified Hamming code이다.
이 경우 SRAM 이나 MASS MEMORY EDAC(Error Detection and Correction)에서 1bit 에러정정과 2bit 에러검출하는데 SRAM 경우 bit 단위로 Mass Memory 경우 16bit word 단위로 시행한다.
채널에서의 에러제어방법은 3가지 유형으로 나눌 수 있다.
첫번째는 모든 채널 코딩기법에서 사용되는 FEC(Forword Error Control)방법으로 데이터를 수신한 곳에서 오류를 자체적으로 정정하고,
두번째는 수신측에서 수신한 데이터를 송신측에서 재전송하여 송신측에서 오류발생부를 확인하여 오류발생시 재전송하는 ARQ(Automatic Retransmission Request)방법과,
세번째는 FEC 와 ARQ를 혼용하여 사용하는데 오류정정기능 및 많은 오류검출기능을 갖는 경우에는 FEC를 오류발생시 송신측으로 재전송하는 경우는 ARQ를 이용한다.
본 발명에서는 MASS Memory 와 SRAM에서 데이터를 정정하고 검출하는데 있어 Hamming 코드를 이용하는데 디지털 데이터의 에러가 발생한 지점(bit)까지를 찾아 에러를 정정해 주기 위한 것으로 4bit 데이타가 전송될 경우 3개, 16bit 데이터는 6개의 패리티 체크(Parity check) bit를 필요로 한다.
이같이 bit 수의 발생을 체크하며 에러를 검출하고 에러정정과 진단기능을 수행하도록 하는 본 발명은 16bit 데이타 입력을 받아 패리티비트를 생성하는 체크비트 생성기와,
전송데이터에 오류를 발생시키기 위해 선택된 데이터비트의 값을 역으로 변환시키는 오류발생회로와,
체크비트와 입력데이터에서 생성된 체크비트를 비교하여 오류코드를 발생시키는 오류코드 발생기와,
체크비트의 값에 따라 오류비트의 위치를 찾아주는 오류위치 감지기와,
오류가 감지된 위치의 데이터를 정정하는 오류정정기와,
오류발생 여부를 감지하는 오류발생 감지기를 구비시킴으로써 이루어진다.
본 발명의 체크비트 생성기에서는 도 4 에 도시된 바와 같이 16개의 데이터 중 8개의 데이터에 대한 패리티비트(even 혹은 odd)를 생성하며 16bit 데이터 포맷은 도 2 에 도시된 바와 같다.
도 1 은 본 발명의 회로도
도 2 는 16bit 데이터 포멧도
도 3 은 체크bit와 데이터bit의 상관관계표도
도 4 는 16bit와 체크bit의 연계테이블도
도 5 는 16bit의 에러감지 및 정정결과표도
〈도면의 주요부분에 대한 부호의 설명〉
10 : 체크비트 생성기 20 : 오류발생회로
30 : 오류코드 발생기 40 : 오류위치 감지기
50 : 오류정정기 60 : 오류발생 감지기
본 발명은 도 1 의 실시회로도에 도시된 바와 같이 체크비트생성기(10)는 도 4 에 도시된 테이블을 기준으로 하여 16bit 데이타로부터 패러티비트를 생성하는 것으로 상기 체크비트생성기(10)는 논리식을 입력한 후 LODECAP의 논리합성 기능을 이용하여 설계하고,
오류발생회로(20)는 전송되는 16bit 데이터에 오류를 발생시키는 것으로 선택된 데이터비트의 값을 역으로 변환하게 되며 16개의 EXOR 게이트를 이용하여 구성한다.
오류코드발생기(30)는 송신부에서 전송한 체크비트와 수신부에 입력된 데이터에서 생성된 체크비트를 비교하여 다른 부분의 값을 1로 변환하는 장치로 오류코드를 발생하게 되며 EXOR를 이용한 비교기능을 수행하여 서로 다르면 출력이 1, 같으면 0의 출력을 갖도록 한다.
오류위치감지기는 체크비트생성기의(10)의 반대되는 기능으로 체크비트의 값에 따라 오류의 위치를 찾아주는 기능을 수행하며 도 4 를 기준으로 진리표를 입력하여 논리합성하는 기능을 수행한다.
오류정정기(50)는 오류가 감지되면 그 위치에 데이터를 정정하는 것으로 EXOR 게이트를 이용하여 데이터비트의 번지가 1로 되면 그 번지의 데이터를 반전시키는 역할을 하며 에러가 없는 경우 0의 입력이 인가되고 수신된 데이터는 변환없이 그대로 전달하는 기능을 수행한다.
오류발생감지기(60)는 오류발생여부와 1비트 또는 2비트 이상의 오류를 감지하는 것으로 오류코드가 모두 0이면 오류가 없는 경우이고, 오류위치감지회로의 출력에 1이 1개 있는 경우는 1비트 오류며 나머지의 모든 경우는 2비트 이상의 오류가 발생한 것으로 간주할 수 있다.
이러한 구성의 본 발명을 상세히 설명한다.
오류정정을 위하여 오류가 생긴 비트의 위치를 찾아내기 위하여 modified Hamming code를 이용하는데 어떤 비트에서 데이터의 오류가 생기면 이 데이터 비트의 위치를 나타내는 코드를 생성하기 위한 체크비트의 생성이 필요하다.
체크비트의 수를 늘이면 더욱 많은 비트의 오류정정 및 검증이 가능하다.
그러나 무한정 체크비트의 수를 늘이는 것도 현실적으로 문제가 있다.
16비트의 데이터의 오류정정을 위해서는 최소한 6비트의 체크비트가 필요하다.
오류가 생긴비트의 위치를 나타내기 위하여 4개의 체크비트를 이용할 때 16가지 경우를 나타낼 수 있으나, 패러티체크에서 2비트 에러가 생길 경우 오류를 검증하지 못하는 단점이 있다.
이 경우 1비트 에러를 검증 및 교정이 가능하나 2비트 에러는 검증자체도 불가능하다.
이러한 문제점을 해결하기 위하여 체크비트에는 항상 일정한 수의 1이 있어야 한다.
체크비트에서 1의 갯수가 적을수록 redundancy를 줄일 수가 있어 더 많은 비트의 오류검증이 용이하지만, 이러한 경우 필요로 하는 체크비트의 수가 늘어나는 단점이 있다.
도 3 은 체크비트 수에 따른 검증 가능한 상태의 수를 보이고 있는 것으로 4,8,16,32 비트의 경우 각각 4,5,6,7 비트의 체크비트가 필요하고, 체크비트에는 1의 숫자가 각각 2,2,3,3개 필요로 하는 것을 알 수 있다.
그리고 도 4 에서는 16비트의 데이터 오류정정을 위하여 6비트의 체크비트가 3개의 1을 보여주고 있다.
하나의 데이터 비트에서 오류가 발생되면 이 비트의 위치에 해당하는 체크비트가 1로 된다.
16비트의 오류를 모두 표현하기 위해서는 48개의 1이 필요하며, 오류가 일어날 확률은 모든 데이터 비트에서 동일하므로 하나의 체크비트에는 8개 데이터비트에 대한 패러티비트를 생성한다.
또한 같은 방법으로 32비트의 데이터에 대한 오류정정을 위해서는 도 3에 의하면 체크비트 7개에 1의 숫자가 3개 있는 경우에 해당하므로, 96개의 1이 필요하므로 7개의 체크비트에 균일하게 분포하는 조합을 구하여 체크비트 생성테이블을 작성할 수 있다.
체크비트와 함께 전송된 신호는 수신부에서 송신부에서와 같은 알고리즘으로체크비트를 생성할 수 있다.
전송되어온 체크비트와 새로 생성된 체크비트를 비교하면 전송도중 생성된 오류의 위치를 표시하는 오류데이터가 생성된다.
하나의 비트에서 오류가 발생하면 그 데이터 비트에 해당하는 체크 데이터가 생성되고, 이 데이터를 기준으로 어떤 비트에서 오류가 발생되었는지 알 수 있다.
그리고 오류정정기능을 갖는 회로를 구성하여 오류가 감지된 비트의 데이터를 역으로 바꾸어주면 오류정정이 이루어진다.
16bit 데이터에서 1비트 오류에 대해서 3개의 체크비트가 1로 바뀌고 2비트 오류일 경우 생성된 3개의 비트가 서로 겹치지 않는 경우는 체크비트에 6개의 1이 된다.
같은 방법으로 1개가 겹치는 경우는 4개, 2개가 겹치는 경우는 2개의 1이 나타남을 알 수 있다.
오류가 전혀 없는 경우는 1이 전혀 나타나지 않는다.
이 경우 체크비트 생성 테이블을 이용하여 어떤 위치의 데이터가 오류인지를 알 수 있고 정정이 가능하다.
그 외의 경우는 2비트 이상의 에러가 생성됨을 알 수 있다.
에러데이터에서 에러위치를 나타내는 디코더를 설계하여 에러가 있는 비트에서 1로 변하게 된다.
에러위치를 나타내는 디코더 출력에 여러개의 1이 있게 되면 2비트 이상의 오류가 존재하는 경우이다.
2비트의 오류에 대해서는 감지가 가능하지만 위치를 찾을 수는 없다.
그리고 3비트 이상의 오류가 발생하면 오류발생 감지가 불가능하다.
이같이 본 발명은 16비트 데이터에서 1비트 및 2비트 에러를 정확히 감지하고 3비트 이상 에러는 체크비트수를 늘려서 감지할 수 있는 것으로 도 5 에 도시된 바와 같이 에러의 정정은 1비트 수행함을 보여준다.
도 5 에 따르면 16비트 데이터 입력이 27AF일 때 에러가 없거나 1비트 에러일 경우 27AF로 정정되어 출력되고, 에러가 0003와 같은 2비트 에러일 경우 교정된 데이터가 27AC로 원래 27AF로 정정이 되지 않으며, 입력이 3542일 때 에러가 0007와 같이 3비트 에러일 경우 교정된 데이터가 3555로 원래 3542로 정정이 되지 않음을 보여주고 있다.
본 발명은 modified Hamming code를 이용하여 16비트 데이터의 1비트 오류정정과 2비트의 오류감지가 가능한 효과가 제공된다.

Claims (2)

16bit 데이타 입력을 받아 패러티비트를 발생시키는 체크비트생성기(10)와,
16bit 데이타 입력 중 선택된 데이터 비트의 값을 역으로 변환시켜 전송되는 데이터에 오류를 발생시키는 오류발생회로(20)와,
체크비트생성기(10)에서 발생된 6비트의 패러티비트와 오류발생회로(20)에서 생성된 체크비트를 비교하여 오류코드를 발생시키는 오류코드발생기(30)와,
오류코드발생기(30)에서 인가된 체크비트의 값에 따라 오류의 위치를 찾아주는 오류위치감지기(40)와,
오류위치감지기(40)에서 오류가 감지된 위치의 데이터를 정정하는 오류정정기(50)와,
오류발생회로(20)의 출력을 이용하여 1비트 또는 2비트 이상의 오류를 감지하는 오류발생감지기(60)로 이루어진 것을 특징으로 하는 에러검출 및 정정회로.
제 1 항에서, 체크비트생성기(10)는 16비트 데이터의 6개의 체크비트 중 3개의 체크비트를 1로 설정하는 것을 특징으로 하는 에러검출 및 정정회로.
KR1019980063937A 1998-12-31 1998-12-31 에러검출 및 정정회로 KR100292788B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980063937A KR100292788B1 (ko) 1998-12-31 1998-12-31 에러검출 및 정정회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980063937A KR100292788B1 (ko) 1998-12-31 1998-12-31 에러검출 및 정정회로

Publications (2)

Publication Number Publication Date
KR20000047154A KR20000047154A (ko) 2000-07-25
KR100292788B1 true KR100292788B1 (ko) 2001-06-15

Family

ID=19570460

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980063937A KR100292788B1 (ko) 1998-12-31 1998-12-31 에러검출 및 정정회로

Country Status (1)

Country Link
KR (1) KR100292788B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101272620B1 (ko) * 2012-03-08 2013-06-10 조선대학교산학협력단 확장형 오류검출코드 기반의 자가검사 연산처리장치를 위한 오류 검출 장치 및 그 오류 검출 장치를 포함하는 연산처리시스템
KR20140044048A (ko) * 2012-10-04 2014-04-14 대우조선해양 주식회사 선박의 안티 재머(Anti-Jammer) 위성항법 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100731497B1 (ko) * 2005-05-31 2007-06-21 지멘스 오토모티브 주식회사 마이컴의 고장 코드 제어 장치 및 방법
GB201114831D0 (en) * 2011-08-26 2011-10-12 Univ Oxford Brookes Circuit with error correction

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101272620B1 (ko) * 2012-03-08 2013-06-10 조선대학교산학협력단 확장형 오류검출코드 기반의 자가검사 연산처리장치를 위한 오류 검출 장치 및 그 오류 검출 장치를 포함하는 연산처리시스템
WO2013133462A1 (ko) * 2012-03-08 2013-09-12 조선대학교산학협력단 확장형 오류검출코드 기반의 자가검사 연산처리장치를 위한 오류 검출 장치 및 그 오류 검출 장치를 포함하는 연산처리시스템
KR20140044048A (ko) * 2012-10-04 2014-04-14 대우조선해양 주식회사 선박의 안티 재머(Anti-Jammer) 위성항법 시스템
KR102066507B1 (ko) 2012-10-04 2020-01-15 대우조선해양 주식회사 선박의 안티 재머(Anti-Jammer) 위성항법시스템의 작동 방법

Also Published As

Publication number Publication date
KR20000047154A (ko) 2000-07-25

Similar Documents

Publication Publication Date Title
FI114515B (fi) Menetelmä ja laite dekooderin optimoimiseksi
KR960003094B1 (ko) 프로덕트 코드를 디코딩하는 디코더 및 방법
US4151510A (en) Method and apparatus for an efficient error detection and correction system
US3646518A (en) Feedback error control system
CN111628780B (zh) 数据编码、解码方法及数据处理系统
US8032812B1 (en) Error correction decoding methods and apparatus
US7137057B2 (en) Method and apparatus for performing error correction code (ECC) conversion
CN111597072B (zh) 差错控制编码ecc系统及包括ecc系统的存储器设备
US3688265A (en) Error-free decoding for failure-tolerant memories
CA2364072C (en) Interconnect system with error correction
US8631307B2 (en) Method for encoding and/or decoding multimensional and a system comprising such method
US20040098654A1 (en) FIFO memory with ECC function
US5938773A (en) Sideband signaling with parity bit schemes
KR100292788B1 (ko) 에러검출 및 정정회로
US5878061A (en) Providing serial data clock signal transitions with parity bits
US10860415B2 (en) Memory architecture including response manager for error correction circuit
Faraj ’Design Error Detection and Correction System based on Reed_Muller Matrix for Memory Protection’
US3587042A (en) Random error correcting coding and decoding system having inversion tolerance and double code capability
Mokara et al. Design and implementation of hamming code using VHDL & DSCH
JP2684031B2 (ja) データの復号化方法
GB2048529A (en) Error detection and correction system
JPH0691471B2 (ja) 誤り訂正回路
KR0149298B1 (ko) 리드-솔로몬 디코더
JPS6160618B2 (ko)
JPS61270935A (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
LAPS Lapse due to unpaid annual fee