반전 부호화

Inversion encoding

반전 부호화는 저전력 시스템의 버스 전송을 부호화하기 위해 사용되는 부호화 기술입니다.이는 특히 외부 버스에서의 전환으로 인해 대량의 전력이 낭비된다는 사실에 기초하고 있으며, 따라서 이러한 전환을 줄이면 전력 소모를 최적화하는 데 도움이 됩니다.이를 통해 INV라는 이름의 추가 신호선이 버스 라인에 도입됩니다.이 신호는 다른 라인의 반전 여부를 결정합니다.

개요

버스 반전 부호화 기술은 데이터의 "극성"을 나타내기 위해 추가 신호(INV)를 사용합니다.버스 반전 부호어 INV@x를 가지며, 여기서 @는 연결 연산자이고, x는 소스 워드 또는 그 하나를 나타내며, 버스 반전 복호기는 코드 워드를 받아들여 대응하는 소스 워드를 생성한다.INV 신호가 1이면 x의 보수가 되고, 그렇지 않으면 x가 됩니다.

사용 시나리오

  • 대용량 라인
  • 높은 스위칭액티비티

버스 반전법

  1. 현재 버스 값(현재 반전 라인도 카운트)과 다음 데이터 값 사이의 해밍 거리(비트 수)가 계산됩니다.
  2. 해밍 거리가 n/2보다 크면 인버트가 1로 설정되고 다음 버스 값이 반전된 다음 데이터 값과 같아집니다.
  3. 그렇지 않으면 반전이 0으로 설정되고 다음 버스 값은 다음 데이터 값과 동일합니다.
  4. 수신측에서는 데이터가 그대로 인코딩되어(예를 들어 RAM에) 저장되지 않는 한 버스 내용을 반전 라인에 따라 조건부로 반전해야 합니다.어느 경우든 반전 값은 버스를 통해 전송해야 합니다(이 방법은 라인 수를 n에서 n+[1]1로 증가시킵니다).

센서에서 데이터를 가져오는 시스템의 예를 들어 대부분의 경우 센서가 노이즈를 측정할 수 있습니다.이 예에서는 측정되는 값이 (0)과 (-1)로 번갈아 가정해야 합니다.32비트 데이터 버스의 경우 값 0은 0x000000000000000000000000000000000000000000000000000000000000000000000000)으로 변환되며 (-1)은 2의 보완 표현으로 0xFFFFFFFFF(1111111111111111111111111111111111111111111111111111111111111111111)로 변환됩니다.이 경우 해밍 거리는 32입니다(32비트 모두 상태가 변화하고 있기 때문입니다).Hamming 거리는 부호 비트 표현을 사용하여 훨씬 더 작습니다.단, 2의 보수를 사용하더라도 반전 부호화는 필요한 액티비티를 줄입니다.이 경우 INV=0일 경우 0x00000000으로 표시되고 INV=1일 경우 -1이 0x000000으로 표시됩니다.INV=1 이후 수신기는 데이터를 소비하기 전에 데이터를 반전시켜 내부적으로 0xFFFFFF로 변환합니다.이 경우 버스 내에서 변경되는 것은 1비트(INV 비트)뿐이며, 이는 부호 비트 표현보다 더 나은 계수1의 액티비티로 이어집니다.

퍼포먼스 분석의 개요: 반전 부호화

퍼포먼스 분석

버스 반전 방식에서는 타임 슬롯당 최대 전환 수가 n에서n/2로 감소하여 입력/출력(I/O)의 피크 전력 소모가 절반으로 감소하는 특성이 있는 코드를 생성합니다.부호화 이론의 관점에서 버스 반전 부호는 시간에 의존하는 마르코프 부호이다.

최대 전환 수는 절반으로 줄지만 평균 수는 더 적습니다.예를 들어 8비트 버스의 경우 버스 반전 부호화를 사용한 평균 전환 수는 버스 회선당 3.27(4) 또는 타임 슬롯당 0.41(0.5)이 됩니다.즉, 부호화되지 않은 버스가 있는 경우 평균 전환 수는 숫자의 81.8%입니다.이는 반전선이 일부 전환에 기여하고 Hamming 거리의 분포가 [1]균일하지 않기 때문입니다.

파티션 반전 부호화

넓은 버스의 평균 I/O 전력 소산을 줄이기 위해 버스 반전법이 작은 버스 사이즈에 대해 더 나은 성능을 발휘한다는 관찰을 사용하여 버스를 여러 개의 좁은 서브버스로 분할할 수 있습니다.그런 다음 각 서브버스는 자체 반전 신호로 독립적으로 코드화할 수 있습니다.예를 들어 64비트버스는 8비트 서브버스로 분할되며 총 8개의 반전신호가 추가됩니다.와이드 버스를 통해 전송되는 데이터가 균일하게 분포된다는 가정 하에 좁은 서브버스에 대한 통계는 독립적이며 각 서브버스에 대한 데이터 시퀀스는 균일하게 분포됩니다.예를 들어, 8비트 서브버스로 분할된 64비트버스의 경우 타임슬롯당 평균 전환 수는 26.16(8x 3.27, 1개의 8비트 서브버스의 평균)이며, 타임슬롯당 버스 회선당 평균 전환 수는 0.41(1개의 반전 회선이 있는 8비트 버스의 경우)이 됩니다.최대 전환 수는 버스를 분할해도 개선되지 않으며 n/2로 동일하게 유지됩니다.단, 더 많은 회선을 사용하는 경우 항상 추가 오버헤드가 발생하지만 계산상으로는 대부분의 [1]경우 반전 버스 부호화가 잘 작동하는 것으로 나타났습니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c Stan, Mircea R.; Burleson, Wayne P. (March 1995). "Bus-Invert Coding for Low-Power I/O". IEEE Transactions on Very Large Scale Integration (VLSI) Systems. 3 (1): 49–58. CiteSeerX 10.1.1.89.2154. doi:10.1109/92.365453. 1063-8210/95$04.00.

추가 정보