goosegoose.DRAM
article thumbnail

동기화(Clocking)를 확보하기 위해선, 어떤 식이든 여분의 비트가 필요하다.  이런 오류를 검출해 내기 위해서라도 여분의 비트를 포함시키기 위해 블록 코딩을 사용한다.

블록 코딩은 m비트 블록을 n비트 블록으로 변경하며 (n>m), mB/nB 인코딩 이라고 한다.

 

4B/5B

 

4B/5B 블럭 코딩은 NRZ-I와 혼합하여 사용하기 위해 고안되었다.

NRZ-I은 좋은 신호율을 가지지만, 연속된 0값에선 문제가 발생한다. (DC, 동기화 문제 등)  때문에 NRZ-I로 변환하기 전, 연속되는 0이 생기지 않도록 스트림을 바꾼다. (0000 -> 00100 규칙 테이블 존재.)

그때 4bit -> 5bit가 되는데 아래의 규칙을 따른다.

  • 0으로 시작하지 않을 것.
  • 2개 이상의 0으로 끝내지 않을 것.

이 규칙에 따라 비트코드는 절대 3개보다 많은 0이 연속되지 않는다.

이렇게 연속되는 값 == Clocking이 어려운 비트 패턴은 오류검추로가 같은 특수목적으로 사용한다.

단점으론, 4bit가 5bit로 변하면서 쓸모없는 데이터가 1bit 들어가 전송효율이 떨어진다. 그리고 bandwidth가 증가한다.

필요한 신호는 16개였으나, 만들어진 신혼 25개가 된다.

 

 

 

 

profile

goosegoose.DRAM

@goosesong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!