KR100586599B1 - 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기 - Google Patents

이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기 Download PDF

Info

Publication number
KR100586599B1
KR100586599B1 KR1019990067965A KR19990067965A KR100586599B1 KR 100586599 B1 KR100586599 B1 KR 100586599B1 KR 1019990067965 A KR1019990067965 A KR 1019990067965A KR 19990067965 A KR19990067965 A KR 19990067965A KR 100586599 B1 KR100586599 B1 KR 100586599B1
Authority
KR
South Korea
Prior art keywords
multiplier
discrete cosine
matrix
mask signal
vector
Prior art date
Application number
KR1019990067965A
Other languages
English (en)
Other versions
KR20010059970A (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 KR1019990067965A priority Critical patent/KR100586599B1/ko
Publication of KR20010059970A publication Critical patent/KR20010059970A/ko
Application granted granted Critical
Publication of KR100586599B1 publication Critical patent/KR100586599B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/74Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)

Abstract

본 발명은 비동기식 매트릭스-벡터 곱셈기에 관한 것으로, 입력데이터를 여러개의 슬라이스로 나누어 부호확장비트가 아닌 유효 데이터를 포함하고 있는 부분을 감지하여 매스크 신호를 출력하는 수단과 아울러 제로 데이터를 감지하여 입력 데이터로부터 제로가 감지된 경우에는 모든 연산과 레지스터를 비활성화시키기 위한 플레그를 발생시키는 수단과, 상기한 매스크신호를 이전에 저장되었던 매스크 신호와 논리합시켜서 부호확장비트들을 비활성으로 만드는데 사용하는 논리합수단과, 불필요한 입력 데이터를 강제로 제로로 만드는 입력논리곱 수단과, 상기한 논리합 수단의 논리합 결과신호를 이용하여 곱셈기와 누산기에 공유되어 있는 동작완료 감지수단과, 누산기의 두 입력중에서 곱셈기로부터 입력되는 것과 피드백되어 입력되는 것의 가용 비트폭을 일치시켜 줌으로써 유효 비트만 선택적으로 활성화시켜서 연산에 활용하는 부분 부호비트 복원수단과, 전치회로를 이용하여 매트릭스 전치가 끝난 후에 전체 부호비트를 복구함으로써 전력소비를 줄이기 위한 전체 부호비트 복구수단을 포함하여 이루어지며, 계산량이 방대한 2차원 이산여현변환기(DCT) 및 역이산여현 변환기(IDCT)를 구현함에 있어서 매트릭스-벡터 곱셈기의 구조를 비동기식 하드와이어드 매트릭스-벡터 곱셈기의 구조로 가져가 저 전력 및 고성능 하드웨어 설계가 가능하도록 한다.
이산여현변환, 역이산여현변환, 매트릭스, 벡터, 스테틱로직, 리플캐리체인

Description

이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기{asynchronous matrix-vetcor multiplier for discrete cosine transform}
도 1은 동기식 매트릭스-벡터 곱셈기의 구조도.
도 2는 본 발명의 일 실시예에 따른 비동기식 4×4 매트릭스-벡터 곱셈기의 구조도.
도 3은 본 발명의 일 실시예에 따른 다이나믹 로직을 이용한 마스크 신호 생성기 및 제로 신호 감지기의 구조도.
도 4는 본 발명의 일 실시예에 따른 스테틱 로직을 이용한 마스크 신호 생성기 및 제로 신호 감지기의 구조도.
도 5는 본 발명의 일 실시예에 따른 리플 캐리 체인에 의한 곱셈기의 구조도.
도 6은 본 발명의 일 실시예에 따른 캐리 세이브 곱셈기의 구조도.
도 7은 본 발명의 일 실시예에 따른 곱셈기내의 부호 확장 메커니즘을 나타낸 도면.
도 8은 본 발명의 일 실시예에 따른 스테틱 로직에 의한 다중 분리된 가산기의 구조도.
도 9는 본 발명의 일 실시예에 따른 매스크 신호를 사용한 스페큘레이티브 동작완료 감지장치의 회로도.
도 10은 본 발명의 실시예에 따른 부분적인 부호비트 복원장치의 회로도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 매스크 장치 2 : 오아 게이트
3 : 입력 논리곱 4, 5 : 동작완료 로직
6 : 멀티플렉서 7 : 부분 부호비트 복원장치
8 : 전체 부호비트 복구장치
본 발명은 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기에 관한 것으로서, 특히 2차원 이산여현변환기(DCT) 및 역이산여현변환기 (IDCT)가 사용되는 응용 분야에서 많은 부분을 차지하는 제로(zero) 및 적은 값을 가진 데이터를 처리함에 있어서 제로와의 곱셈은 계산하지 않고 그냥 통과시키고 적은 값에 대해서는 전체 연산 비트폭을 여러개의 작은 비트로 쪼개서 다이나믹하게 활성/비활성화시킴으로써 저전력 및 고성능 하드웨어를 설계할 수 있도록 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기에 관한 것이다.
이산여현변환(Discrete Cosine Transform, DCT) 및 역이산여현변환(Inverse Discrete Cosine Transform, IDCT)은 H.261, JPEG(Joint Photographic Expert Group), MPEG(Moving Picture Experts Group) 등과 같은 데이터 압축 및 복원을 위한 표준에서 필수적인 구성요소이다.
상기 이산여현변환(DCT)은 화상을 주파수 성분으로 변환하기 위한 것으로서 파형을 가중된 코사인의 합(weighted sum of cosines)으로 표현하는 기술을 의미하고, 역이산여현변환은 그의 역변환을 의미한다.
일반적으로 휴대용 멀티미디어 디바이스들에서 점점 데이터 전송 속도가 빨라지고, 전력소모가 줄어들도록 하여 배터리 사용수명이 더 길어지도록 하는 것이 요구됨에 따라 이차원 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)의 저전력 및 고성능 구현이 점점 중요시되고 있다.
저전력 및 고성능 하드웨어를 설계 분야에서는, 지금까지 저전력 및 고성능을 위한 여러 가지 동기식 구조가 개발되어 제시된 바 있다. 그 예로서, Xanthopoulos 등은 역이산여현변환기(IDCT)의 입력 데이터에 제로(zero)가 많이 포함되어 있는 점에 착안하여 제로와의 곱셈을 스킵함으로써 전력 소모를 줄일 수 있도록 그 구조를 개선하였는데, 통상 이를 데이터 드리븐(data-driven) 구조한 한다.
그러나, 상기한 바와 같은 데이터 드리븐 구조는 역이산여현변환기(IDCT)만을 위해서 개발된 것으로, 이산여현변환기(DCT)에는 제로가 역이산여현변환기 (IDCT)에서 처럼 많지 않기 때문에 실질적으로 효과적이지 못한 문제점이 있다.
또한, 2차원 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)는 두개의 1차 원 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)로 분리되는데, 두번째 1차원 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)에는 제로가 많이 포함되어 있지 않으므로, 상기한 바와 같은 데이터 드리븐 구조는 두번째 1차원 이산여현변환기 (DCT) 및 역이산여현변환기(IDCT)에서도 덜 효과적인 한계가 있다.
본 발명의 목적은 이와 같은 종래의 문제점을 해결하기 위한 것으로서, 2차원 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)를 위한 효율적인 비동기식 하드와이어드 매트릭스-벡터 곱셈기의 구조를 제안하여, 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)가 사용되는 응용 분야에서 보통 많은 부분을 차지하는 제로 (zero) 및 적은 값을 가진 데이터의 특성을 이용하여 저전력 및 고성능 하드웨어를 설계할 수 있도록 하는, 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기를 제공하는데 있다.
상기 목적을 달성하기 위한 수단으로서 본 발명의 매트릭스-벡터 곱셈기는, 비동기식으로 동작되는 누산기와 곱셈기와 레지스터를 포함하는 비동기식 매트릭스-벡터 곱셈기에 있어서, 부호확장비트가 아닌 유효 데이터를 포함하고 있는 입력 데이터의 비트 슬라이스를 표시하며, 아울러 제로 데이터를 감지하여 입력 데이터로부터 제로가 감지된 경우에는 모든 연산과 레지스터를 디제이블시키기 위 한 매스크신호를 출력하는 매스크 수단; 상기 매스크신호를 이전에 저장되었던 매스크 신호와 논리합시켜서 비트들을 비활성으로 만드는데 사용하는 논리합수단; 불필요한 입력 데이터를 강제로 제로로 만드는 입력논리곱 수단; 상기 논리합 수단의 논리합 결과신호를 이용하며 곱셈기와 누산기에 공유되어 있는 동작완료 감지수단; 누산기의 입력에서 곱셈기로부터 입력되는 것과 피드백되어 입력되는 것의 가용 비트폭을 일치시켜 줌으로써 유효 비트만 선택적으로 활성화시켜서 연산에 활용하는 부분 부호비트 복원수단; 전치회로를 이용하여 매트릭스 전치가 끝난 후에 전체 부호비트를 복구함으로써 전력소비를 줄이기 위한 전체 부호비트 복구수단을 포함하여 이루어지는 것을 특징으로 한다.
본 발명에서는 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)의 데이터 통계를 이용하는 것으로, 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)의 입력 데이터에 많은 제로가 포함되어 있는 것 이외에 대부분의 값들이 적은 값들로 구성된다는 것을 이용한다. 특히 2번째 1차원 이산여현변환기(DCT) 및 역이산여현변환기 (IDCT)의 입력에는 적은 값들이 많이 포함되어 있는 것을 이용한다.
아울러 본 발명에서는 비동기식 회로의 잇점을 적은 값을 처리하는데 이용한다. 즉, 부호확장 비트를 포함한 비트 슬라이스를 비활성으로 만들어 처리 속도와 소비 전력을 줄이게 된다. 즉, 제어 오버레드를 최소화함으로써 높은 평균 성능 향상과 저전력 소모를 동시에 얻을 수 있다. 본 발명의 비동기식 회로는 그 특성상 공급 전압과 칩의 외부 온도에 잘 적응할 수 있으며, 최악의 경우에 따라 클럭을 동작시키는 동기식에 비해서 훨씬 효과적이다.
상기한 바와 같은 장점을 얻기 위해서는, 데이터의 통계적인 특성에 대해 매트릭스-벡터 곱셈기를 통계적으로 최적화해야 하고, 언제 연산을 종료해야 할지를 표시하는 효과적인 동작완료 감지장치를 구성해야 한다. 종래의 동작완료 감지 방법은 기능 블럭의 최악 지연과 같은 지연 라인(bundled delay line)을 만들어 제어하는 방법으로서 대단히 비효율적이다. 또한, 종래에는 다이나믹 로직을 이용한 듀얼-레일 구조가 제안된 바 있는데, 이 듀얼-레일 구조는 많은 하드웨어 영역을 차지하고, 상대적으로 많은 전력을 소모하는 단점이 있다. 최근에는 스테틱 로직의 장점과 평균적인 성능을 향상시키기 위한 미세 동작완료 감지 방법이 발표된 바 있는데, 이것의 기본 아이디어는 여러 개의 지연 라인을 만들어 두고 기능 블럭의 동작 상태에 따라서 지연 라인을 선택하여 세밀하게 회로를 제어하는 것이다.
본 발명에서는 입력 데이터가 대부분 제로 및 작은 값을 가지는 응용분야의 특징을 이용하기 위해서 비트 슬라이스를 세밀하게 분리하고, 이를 비동기식으로 제어하기 위해서 효과적인 미세 동작완료 회로를 제시한다. 이를 위해서 연산이 중간에 완료되었다는 것을 감지하는 로직(abort logic)이 필요한데 이를 마스크 회로로 대치하여 간략화한다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조로 하여 상세히 설명하면 다음과 같다.
일반적으로, N ×N 이산여현변환 연산은 3번의 매트릭스 곱셈으로 이루어 진 다. 즉, Z = CXCT이다. 여기서, C는 N ×N 상수 매트릭스이고, X는 입력 매트릭스이다. 상기한 N ×N 이산여현변환 연산은 두개의 N×1 변환으로 분리될 수 있고, 이는 두개의 매트릭스 곱으로 표현된다. 즉, Y = CX 와 Z = YCT로 표현된다. 여기서, 상수 매트릭스 C는 짝수 및 홀수 행끼리 서로 대칭(symmetric)이므로 N ×N 매트릭스 곱들은 다시 두개의 N/2 ×N/2 서브 매트릭스로 분리될 수 있다.
이와 같은 처리는 약간의 덧셈과 뺄셈 연산이 추가되는 대신에 곱셈 연산의 수를 절반으로 줄여주는 역할을 한다. 상기한 매트릭스 곱들은 보통 입력 데이터 서브 매트릭스에 있는 각 입력 벡터(행)와 상수 매트릭스와의 매트릭스-벡터 곱셈기로 구현된다.
도 1은 이와 같은 매트릭스-벡터 곱셈기의 동기식 구조를 나타낸 것이다.
따라서, 도 1의 4 ×4 상수 매트릭스와 4 ×1 입력벡터의 곱은 8 ×8 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)를 구현하기 위한 핵심 연산기로 사용된다. 여기서, 4 ×4 서브 매트릭스는 최대 4개의 상수(C0, C1, C2, C3)로 구성되며, 각 출력 (y0, y1, y2, y3)은 4 ×4 상수 매트릭스의 각 행과 입력 벡터[x0, x1, x2, x3]의 내적이다. 따라서, 첫번째 출력은 y0 = C0x0 + C1x1 + C2x2 + C3x3 와 같이 계산된다.
이와 같은 동기식 구조는 입력 벡터 [x0, x1, x2, x3]의 각 요소를 클럭신호(clock)에 따라 순차적으로 처리하므로 4클럭에 걸쳐서 이 내적을 연산한 다. 다시말해 각 곱셈 연산 결과는 다시 멀티플렉서(MUX)를 통해서 해당 누산기로 스위칭되어 각각의 결과를 출력한다.
상기한 바와 같은 동기식 매트릭스-벡터 곱셈기와는 달리, 비동기식 매트릭스-벡터 곱셈기는 일반적으로 하드와이어드 곱셈기나 분산연산(distributed arithmetic)을 이용해서 구현된다.
상기 하드와이어드 곱셈기는 곱셈 연산을 위하여 일련의 쉬프트와 가산을 하드와이어드로 라우팅하여 구성하는 것으로, 예를 들어, 입력 데이터 X1과 상수 C(=0.35352)의 곱은 (2-9*x1) + (2-7*x1) + (2-5*x 1) + (2-4*x1) + (2-2*x1)로 변환되며, 여기서 2의 마이너스 승수는 하드와이어드로 오른쪽으로 쉬프트함으로써 구현된다.
또한, 상기한 분산연산을 이용한 곱셈-누산은 롬(ROM)이나 룩업 테이블 (loop-up table)을 이용하여 구성된다. 이와 같은 분산연산을 이용한 곱셈-누산은 병렬 연산으로 인해 하드와이어드 곱셈기에 비해서 처리 속도가 빠르기는 하나, 하드웨어 면적이 많이 소요되고 전력 소모가 많은 단점이 있다. 즉, 분산연산을 이용한 곱셈-누산은, 한번의 곱셈-누산에 대해서 높은 캐패시턴스를 가지는 롬(ROM) 어드레스와 비트 라인이 여러 차례 스위칭함으로써 전력을 많이 소모하는 단점이 있다.
본 발명의 실시예에 따른 비동기식 매트릭스-벡터 곱셈기의 구조가 도 2에 도시되어 있다.
본 발명에서 제시하는 비동기식 매트릭스-벡터 곱셈기의 구조에서는 데이터 의 통계적인 특성을 이해하는 것이 대단히 중요하다. 즉, 플라우어가든(flower garden), 풋볼(football), 테이블테니스(table tennis) 등의 이미지를 사용하여 입력 데이터의 특성을 분석한 결과 대부분의 데이터가 제로 또는 작은 값으로 구성되어 있다. 이와 함께, 본 발명에서는, 이산여현변환기 (DCT) 및 역이산여현변환기 (IDCT)의 동작 자체가 데이터의 크기를 작은 값으로 줄이거나 원래의 값으로 복귀시키는 것이기 때문에 연산 도중에 생기는 리던던시를 실제 연산의 속도와 전력소모의 개선에 이용할 수가 있게 된다.
도 2에 도시되어 있는 바와 같이 본 발명의 실시예에 따른 비동기식 매트릭스-벡터 곱셈기는, 데이터 패스는 동기식과 비슷하나, 클럭신호에 의해서 제어되는 것이 아니라 4상 핸드쉐이킹에 의해서 제어된다. 상기한 비동기식 데이터 패스에 있는 곱셈기와 누산기는 세밀하게 분리된 비트 슬라이스로 구성되고, 각각의 비트 슬라이스는 매스크 제어신호(m)에 의해서 선택적으로 활성화 되거나 비활성화된다. 특히, 매스크 장치(1)는 부호확장비트가 아닌 유효 데이터를 포함하고 있는 입력 데이터(x)의 비트 슬라이스를 표시하며, 아울러 제로 데이터를 감지한다.
매스크 신호(m)들은 누산기와 비트 슬라이스를 나타내기 위해서 이전에 저장되었던 매스크 신호(m)와 오아게이트(2)에서 논리합(ORing)되어야 한다. 상기한 오아게이트(2)의 논리합 결과신호(m)는 곱셈 결과에 대한 비트 슬라이스를 나타내며 누산기의 세밀한 제어를 위해서 비트들을 비활성으로 만드는데 사용된다.
이는 입력 논리곱(3)을 통해서 불필요한 입력 데이터(x)를 강제로 제로로 만듬으로써 수행된다.
아울러 상기한 오아게이트(2)의 논리합 결과신호(m)는 곱셈기와 누산기의 동작완료 로직(4, 5)을 제어하는데 사용된다. 여기서 입력 데이터가 여러개의 곱셈기로 입력되므로 동작완료 로직(4, 5)이 곱셈기와 누산기에 공유된다. 따라서 전체 설계에 대해서 오버헤드가 줄어든다.
매스크 장치(1)에 의해서 입력 데이터(x)로부터 제로가 감지된 경우에는 모든 연산과 레지스터(R)가 디스에이블(disable)된다.
또한, 부분 부호비트 복원장치(Partial Sign Bit Recovery, PSBR) (7)는 누산기의 입력에서 곱셈기로부터 입력되는 것과 피드백되어 입력되는 것의 가용 비트폭을 일치시켜 주는 역할을 한다. 이 경우의 기본적인 접근 방법은 단지 유효 비트만 선택적으로 활성화시켜서 연산에 활용하고자 하는 것이다. 그러나, 이와 같이 유효 비트를 선택하기 위해서는 각 비트를 일일이 전부 제어해야 하는데 따른 해결하기 어려운 오버헤드가 따르게 되는 문제점이 발생되므로, 제어 로직의 오버헤드를 고려하여 활성화할 비트 슬라이스의 수를 최적화 하는 것이 필요하다.
이와 같은 최적화를 위해서 본 발명에서는 앞에서 언급한 바 있는 잘 알려져 있는 이미지 시퀀스를 이용하여 비트-레벨 시뮬레이션을 거쳐 아래의 (표 1)과 같이 매스크신호(m) 및 제로감지신호(zero_detect)를 정의한다. 아래의 (표 1)에서 3비트의 매스크 신호 m(2), m(1), m(0)는 이산여현변환기(DCT)에 대한 것이고, 2비트의 매스크 신호 m(2), m(0)는 역이산여현변환기(IDCT)에 대한 것이다.
설 명 m(2) m(1) m(0) zero_detect
모든 비트 활성화 1 1 1 1
3비트 활성화 0 1 1 1
2비트 활성화 0 0 1 1
1비트 활성화 0 0 0 1
제로 데이터 감지 0 0 0 0
본 발명의 실시예에서는 상기한 [표 1]의 회로적 구현을 위하여, 두가지 경우에 대한 매스크신호 생성 및 제로신호 감지 회로를 제시한다. 하나는 다이나믹 로직을 이용한 회로이고, 다른 하나는 스테틱 로직을 이용한 회로이다. 도 3은 본 발명의 실시예에 따른 다이나믹 로직을 이용한 매스크 신호 생성기 및 제로신호 감지기의 구조를 도시한 것이고, 도 4는 본 발명의 실시예에 따른 스테틱 로직을 이용한 매스크 신호 생성기 및 제로신호 감지기의 구조를 도시한 것이다.
상기한 도 3 및 도 4에 도시되어 있는 매스크 신호 생성기 및 제로신호 감지기의 구조들은 모두 입력 비트(x)에 포함된 부호비트들을 감지하는 것이기 때문에 입력 비트(x)에서 동일한 비트가 얼마나 많이 연속되는지를 감지해야 하므로, 입력 비트(x)들을 순차적으로 스캔해나가야 한다. 이 경우에, 설계자가 미리 비트 슬라이스의 갯수를 정함으로써 감지해야 할 비트의 범위를 알수 있기 때문에 병렬 구조로 설계할 수 있으며, 이와 같은 병렬구조에 의하여 처리속도가 향상된다.
일반적으로, 도 4의 스테틱 로직을 이용한 매스크 신호 생성기 및 제로신호 감지기는 도 3의 다이나믹 로직을 이용한 매스크 신호 생성기 및 제로신호 감지기에 비해서 속도는 약간 느리지만, 동작이 안정적이고, 전력소모가 적은 장점이 있 다.
본 발명의 실시예에 따른 곱셈기의 구조는 도 5 및 도 6에 도시되어 있는 바와 같다. 도 5에 도시되어 있는 리플 캐리에 의한 곱셈기의 구조는 도면에서 굵게 표시된 최장 경로 이외에도 여러개의 최장 경로를 가질 수 있다. 그러나, 도 6에 도시되어 있는 바와 같은, 캐리 세이브 곱셈기의 구조는 단일의 최장 경로를 가지므로 비동기식 매트릭스-벡터 곱셈기의 구조에서 지연 모델을 추출하기에 적합하다. 따라서, 도 5의 리플 캐리에 의한 곱셈기 구조는 도 6의 캐리 세이브 곱셈기 구조에 비해서 지연을 줄이기 위한 최적화가 어렵다.
특히, 도 6의 캐리 세이브 곱셈기는 최장 경로가 마지막의 벡터 머징 가산기를 따라서 구성되어 있는데, 상기한 마지막의 벡터 머징 가산기는 리플캐리 가산기로 구성된다. 이와 같이 마지막의 벡터 머징 가산기를 리플캐리 가산기로 구성하는 첫째 이유는 리플 캐리 가산기가 캐리 셀렉트 및 캐리 바이패스 가산기와 같은 고속 가산기에 비해서 전력 소모가 적기 때문이고, 둘째 이유는 리플 캐리 가산기가 긴 최장 지연을 가지지만 곱셈기 행렬을 비트로 잘랐기 때문에 평균적(average case delay)으로 좋은 성능을 가지기 때문이다.
도 5 및 도 6에 도시되어 있는 계단형으로 된 비트 슬라이스들은 서로 다른 입력 비트 폭에 대해서 동적으로 한 행의 가산기가 구성되도록 하여, 곱셈기의 비트폭을 가변하게 할 수 있도록 한다. 예를 들어, 만약에 처음 두개의 비트 슬라이스만 활성화 된다면 곱셈기는 9비트의 입력만을 처리하는 곱셈기와 같게 동작한다. 이와 같은 구조는 비트폭을 재구성할 수 있도록 해 주는 두가지 종류의 중요한 구 조적인 측면이 있는데, 첫번째는 단지 처음 두 비트 슬라이스만 활성화되었을 때 세번째 비트 슬라이스로 확장되는 두번째 비트 슬라이스의 입력들(즉, 비트 슬라이스의 경계부분)은 입력 논리곱(input ANDing) 로직에 의해서 강제로 제로가 된다는 것이고, 두번째는 비트 슬라이스 경계 부분에서 가장 오른쪽으로 쉬프트된 입력은 부호 비트로 확장된다는 것이다.
도 7은 본 발명에서 제시하는 비트 슬라이스를 나누는 방법에서 상기의 문제들에 대한 해결로서 곱셈기내의 부호확장 메커니즘을 도시한 것으로서, 원 데이터 x의 두 비트 슬라이스가 활성화될 때, 즉 b13에서 b15까지의 비트가 제로로 되었을 때, x' >> 90|x' >> 7와 더해지는 경우를 예시한 것이다. 이 경우에 오른쪽으로 더 많이 쉬프트된 입력이 x' >> 9 입력이고, 이 입력에 대해서 비트 슬라이스 경계 부분에서 두 비트 부호가 확장되어야 한다. 본 발명에서 제시하는 해법은 매스크 신호(m)에 의해서 제어되는 두개의 멀티플렉서(MUX)를 추가하여 두개 이상의 비트슬라이스가 활성화되었을 때 정상 데이터 입력과 두개의 비트 슬라이스만 활성화되었을 때의 부호비트를 선택적으로 사용할 수 있도록 하는 것이다. 도 7에서 멀티플렉서(MUX)는 정확하게 3개의 비트 슬라이스만 활성화되었을 때 (m(2)=0, m(1)=0, m(0)=1)만 제외하고는 x' 입력 비트들을 출력한다. 그리고, 3개의 비트 슬라이스만 활성화되었을 때, 즉 매스크 신호가 m(2)=0, m(1)=0, m(0)=1 일때는 멀티플렉서(MUX)는 부호확장 비트( 이 경우 x'의 b12 비트)를 출력한다.
도 5 및 도 6에 도시되어 있는 바와 같이, 곱셈기내에서 필요한 멀티플렉서(MUX)의 수는 그다지 많지 않고, 그리고 최장 경로에도 포함되지 않는다. 이 문제에 대한 대체 가능한 해법은 곱셈기의 모든 가산기 행에 입력논리곱(input ANDing) 로직을 추가하는 것이다. 그러나 이는 너무 많은 하드웨어 면적, 전력소모, 속도에 대한 오버헤드를 필요로 한다. 본 발명에서는 상기한 오버헤드를 줄이기 위하여 입력 논리곱(input ANDing) 로직을 전체 곱셈기 입력에 대해서 공통적으로 하나만 사용한다. 그리고, 본 발명에서는 활성화된 비트 슬라이스의 처리 지연에 기초한 스페큘레이티브 동작완료 감지(speculative completion sensing) 장치(도 9 참조)에 의해서 활성화된 비트들을 선택적으로 취하도록 한다. 이 경우에, 비활성화된 출력 비트들은 그대로 제로인 상태로 머물러 있으므로 래치와 셋업 타임을 만족시킬 필요가 없다. 그러므로, 본 발명에서 제시한 바와 같은 입력 논리곱(input ANDing) 로직을 사용하지 않고서도 평균 성능을 얻을 수는 있겠지만, 작은 음수의 값을 곱셈하는 경우에 상당히 많은 전력을 소모하므로 저전력을 필요로 하는 응용에서는 본 발명에서와 같은 처리가 반드시 필요하다.
본 발명에서 제시한 곱셈기에서 최악의 경로 지연은 도 5의 굵은 박스와 도 6의 검게 표시된 리플 캐리 가산기의 지연에 의존한다. 이 패스는 도 8에 도시되어 있는 바와 같이 4개의 비트 슬라이스로 나누어져 있다. 도 8은 스테틱 로직에 의한 다중 분리된 가산기의 구조를 보여주고 있다.
상기 가산기들의 동작 완료를 감지하기 위해서는, 도 9에 도시되어 있는 바와 같은, 매스크 신호를 이용한 간략화된 스페클레이티브 동작완료 감지(speculative completion sensing) 장치를 사용한다. 상기한 스페클레이티브 동작완료 감지장치는, 4개의 서로 다른 지연 라인으로 구성되고, 각 지연 라인들은 서로 다른 크기의 가산기와 매치된다. 그런 다음에 각각의 지연 라인들은 멀티플렉서(MUX)를 통과하게 되는데, 이는 매스크 신호(m)에 의해서 제어되며, 결과로서 동작완료 신호(Done)를 출력한다. 상기한 멀티플렉서(MUX)의 선택 신호인 매스크신호(m)는 기존의 스페클레이티브 동작완료 감지장치의 어보트(abort) 신호의 역할을 한다.
역이산여현변환기(IDCT)의 경우에는, 상기 신호들 중에서 중간에 있는 두 개의 신호가 하나로 통합된다. 각각의 다른 크기를 가진 가산기들에 대한 지연은 단순한 스테틱 지연 라인과 다른, 시뮬레이션을 통해서 가장 근접한 최장 경로를 각 비트 슬라이스에 대해서 추출한 다음 사용한다. 이와 같이 하는 이유는 본 발명에서 제시하는 하드와이어드 곱셈기는 단지 한 개의 입력 소스인 x만을 가지므로 실제 각 비트 슬라이스의 연산영역을 전부 사용하지 않기 때문이다. 각 비트 슬라이스에 대한 실질적인 최장 경로를 결정하기 위해서는 모든 가능한 입력 패턴에 대해서 시뮬레이션한 다음에 결정해야 한다. 본 발명의 실시예에서는, 도 9에 도시되어 있는 바와 같이, 각 가산기들의 최악의 경로 지연으로서 모든 비트 슬라이스가 활성화 되었을 때 20개의 전가산기(Full Adder, FA)의 지연이 필요하고, 3비트 슬라이스가 활성화 되었을 때 13개의 전가산기(FA)의 지연이 필요하며, 2 비트 슬라이스가 활성화 되었을 때 11개의 전가산기(FA)의 지연이 필요하며, 1비트 슬라이스가 활성화 되었을 때 8개의 전가산기(FA) 지연이 필요하다.
본 발명에서 제시하는 4 ×4 매트릭스-벡터 곱셈기는 각각의 매트릭스 행에 대한 곱셈 결과를 더하기 위한 4개의 누산기가 있다. 상기한 누산기의 비트 폭은 한번 레지스터(R)를 통과한 매스크 신호(m', m")에 의해서 결정된다. 이는 누산기를 위해서 새로운 매스크 로직이 필요하지 않다는 것을 의미하고, 상기한 매스크 신호(m', m")들은 누산기들에 대한 동작완료 감지장치(4, 5)를 제어하는 신호로서 이용된다. 상기한 동작완료 감지장치(4, 5)는 곱셈기의 경우와는 달리 여러개의 활성화된 비트 슬라이스의 다양한 크기와 완전히 매치되는 지연들로 구성된다. 그리고 이전에 누산된 결과는 새로운 입력(곱셈기 결과)과 활성화된 비트 폭이 동일해야 하므로(왜냐하면, 누산기를 구성하는 가산기의 두 연산자(operands)에 대한 비트 폭이 동일해야 2의 보수 연산에서 올바른 결과를 얻을 수 있다) 부분적인 부호비트 복원이 필요하다.
본 발명에서는 이를 위하여 도 10에 도시되어 있는 바와 같은 부분적인 부호비트 복원장치(Partial Sign Bit Recovery, PSBR) (7)를 제공한다. 본 발명의 실시예에 따른 부분적인 부호비트 복원장치(7)는, 기본적으로 매스크 신호(m', m")를 사용하여 현재 누산결과신호(t)의 부호를 결정한다. 그런 다음에 결정된 부호를 이용하여 새롭게 활성화된 비트 슬라이스에 부호를 확장한다. 도 10에 도시된 바와 같이, 부호 확장은 현재 입력 비트와 추출된 부호비트(저장되었던 매스크 신호와 현재 입력된 매스크 신호의 앤드(AND) 로직에 의해서 결정됨)중에서 어느 것을 입력시킬지 결정하는 여러개의 멀티플렉서(MUX)들에 의해 구현된다. 이 경우에, 하위 10비트에 대해서는 항상 정상적인 연산 동작을 수행하도록 구성되어 있으므로, 즉 강제로 제로가 되도록 하지 않았으므로, 부호 확장이 필요없다.
한편, 전체 부호비트의 복구장치(Full Sign Bit Recovery, FSBR) (8)는 도 6에 도시되어 있는 바와 같이, 연속되는 로직 블록(예, 매트릭스 전치 회로)의 저전력 구현에 응용될 수 있다. 1차원 이산여현변환기(DCT) 및 역이산여현변환기 (IDCT)의 결과를 입력 받아서 그 결과를 매트릭스 전치할 경우에, 기존의 구조에서는 많은 작은 부(-)의 값들이 전치 회로를 통과할 때 트랜지션을 일으키게 되므로 전력 소모의 주 원인이 되고 있는데, 본 발명에서와 같이 이미 부호비트 확장이 강제로 제로로 설정된 구조를 사용하면 저전력으로 전치회로를 구현할 수 있고, 그리고 전치가 끝난 후에 전체 부호비트를 복구하면 된다.
H.261, JPEG, MPEG과 같은 멀티미디어 표준들을 채용하는 멀티미디어 응용분야에서의 핵심 연산은 상수 매트릭스와 입력 벡터의 곱셈인, 보통 몇 개의 곱셈-누산기의 조합으로 구현되는 매트릭스-벡터 곱셈이라 할 수 있는데, 본 발명은 이와 같은 매트릭스-벡터 곱셈이 적용되는 멀티미디어 응용분야, 특히 휴대용 및 무선 멀티미디어 응용분야에서 효과적으로 사용할 수가 있다.
상술한 내용에서는 본 발명의 바람직한 실시예에 관하여 설명이 이루어졌지만, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시가 가능함을 이해할 수 있을 것이다.
이상에서 설명한 바와 같은 본 발명의 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기는, 이산여현변환기(DCT) 및 역이산여현변환기(IDCT)가 사용되는 응 용 분야에서 보통 많은 부분을 차지하는 제로(영) 및 적은 값을 가진 데이터의 특성을 이용하여 저 전력 및 고성능 하드웨어를 설계할 수 있도록 하는 우수한 효과를 가진다.

Claims (9)

  1. 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기에 있어서,
    부호확장비트가 아닌 유효 데이터를 포함하고 있는 입력 데이터의 비트 슬라이스를 표시하며, 아울러 제로 데이터를 감지하여 입력 데이터로부터 제로가 감지된 경우에는 모든 연산과 레지스터를 디제이블시키기 위한 매스크신호를 출력하는 매스크 수단;
    상기한 매스크신호를 이전에 저장되었던 매스크 신호와 논리합시켜서 비트들을 비활성으로 만드는데 사용하는 논리합수단;
    불필요한 입력 데이터를 강제로 제로로 만드는 입력논리곱 수단;
    상기한 논리합 수단의 논리합 결과신호를 이용하며 곱셈기와 누산기에 공유되어 있는 동작완료 감지수단;
    누산기의 입력에서 곱셈기로부터 입력되는 것과 피드백되어 입력되는 것의 가용 비트폭을 일치시켜 줌으로써 유효 비트만 선택적으로 활성화시켜서 연산에 활용하는 부분 부호비트 복원수단; 및
    전치회로를 이용하여 매트릭스 전치가 끝난 후에 전체 부호비트를 복구함으로써 전력소비를 줄이기 위한 전체 부호비트 복구수단
    을 포함하여 이루어지는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  2. 제 1 항에 있어서,
    상기 매스크 신호 생성 및 제로신호 감지를 위하여, 다이나믹 로직을 이용하는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  3. 제 1 항에 있어서,
    상기한 매스크 신호 생성 및 제로신호 감지를 위하여 스테틱 로직을 이용하는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  4. 제 2 항 또는 제 3 항에 있어서,
    상기 매스크 신호 생성 및 제로신호 감지는 병렬 처리구조로 구성하여 처리 지연을 줄이는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  5. 제 1 항에 있어서,
    상기 곱셈기는 최장 경로가 마지막의 벡터 머징 가산기를 따라서 구성되어 있으며, 상기 마지막의 벡터 머징 가산기는 리플캐리 가산기로 구성되는 캐리 세이 브 곱셈기를 사용하는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  6. 제 1 항에 있어서,
    상기 곱셈기와 가산기를 구성할 때, 이를 여러개의 비트 슬라이스로 나누어 각각에 해당하는 지연을 만들어 이를 매스크 신호로 선택할 수 있도록 하는 간략화된 스페클레이티브 동작감지회로를 포함하여 이루어지는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  7. 제 1 항에 있어서,
    상기 곱셈기에서의 최악의 경로 지연은 리플 캐리 가산기의 지연에 의존하며, 이 경로는 4개의 비트 슬라이스로 나누어지는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  8. 제 6 항에 있어서,
    상기 스페클레이티브 동작 감지회로는 4개의 서로 다른 지연 라인으로 구성되고, 각 지연 라인들은 서로 다른 크기의 가산기와 매치되며, 각각의 지연 라인들 은 멀티플렉서를 통과하며, 상기한 멀티플렉서는 매스크 신호에 의해서 제어되어 결과로서 동작완료 신호를 출력하는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
  9. 제 1 항에 있어서,
    상기 매스크 신호는 곱셈기 및 누산기의 제어에 활용하기 위해서 래지스터에 저장하였다가 이를 새로운 값과 논리합하여 곱셈과 누산에 연속적으로 활용하는 것을 특징으로 하는 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기.
KR1019990067965A 1999-12-31 1999-12-31 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기 KR100586599B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990067965A KR100586599B1 (ko) 1999-12-31 1999-12-31 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990067965A KR100586599B1 (ko) 1999-12-31 1999-12-31 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기

Publications (2)

Publication Number Publication Date
KR20010059970A KR20010059970A (ko) 2001-07-06
KR100586599B1 true KR100586599B1 (ko) 2006-06-02

Family

ID=19635053

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990067965A KR100586599B1 (ko) 1999-12-31 1999-12-31 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기

Country Status (1)

Country Link
KR (1) KR100586599B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1320478C (zh) * 2001-08-21 2007-06-06 皇家菲利浦电子有限公司 离散变换运算设备
KR100481067B1 (ko) 2001-09-28 2005-04-07 브이케이 주식회사 분산 산술 처리장치 및 그를 이용한 이차원 이산여현변환 처리장치
KR100930436B1 (ko) * 2002-10-17 2009-12-08 (주)휴맥스 홀딩스 이산 여현 역변환을 이용한 이미지 크기 재설정 방법
KR100522595B1 (ko) * 2002-11-29 2005-10-19 삼성전자주식회사 엠펙 비디오 복호화방법 및 엠펙 비디오 복호화기
CN102611883B (zh) * 2011-01-19 2014-07-30 华为技术有限公司 编码方法、解码方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0468165A2 (en) * 1990-07-27 1992-01-29 International Business Machines Corporation Array processing with fused multiply/add instruction
JPH0652214A (ja) * 1992-08-04 1994-02-25 Sharp Corp 逆離散余弦変換演算装置
JPH07262175A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd 関数変換演算装置
JPH1063646A (ja) * 1996-08-23 1998-03-06 Nec Corp 2次元逆離散コサイン変換回路

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0468165A2 (en) * 1990-07-27 1992-01-29 International Business Machines Corporation Array processing with fused multiply/add instruction
JPH0652214A (ja) * 1992-08-04 1994-02-25 Sharp Corp 逆離散余弦変換演算装置
JPH07262175A (ja) * 1994-03-18 1995-10-13 Fujitsu Ltd 関数変換演算装置
JPH1063646A (ja) * 1996-08-23 1998-03-06 Nec Corp 2次元逆離散コサイン変換回路

Also Published As

Publication number Publication date
KR20010059970A (ko) 2001-07-06

Similar Documents

Publication Publication Date Title
US8660380B2 (en) Method and system for performing two-dimensional transform on data value array with reduced power consumption
EP0602886A2 (en) Masks for selecting multi-bit components in a composite operand
Ruetz The architectures and design of a 20-MHz real-time DSP chip set
US20080243976A1 (en) Multiply and multiply and accumulate unit
KR100586599B1 (ko) 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기
Liu et al. A high-throughput subspace pursuit processor for ECG recovery in compressed sensing using square-root-free MGS QR decomposition
US8707235B2 (en) Techniques for use with automated circuit design and simulations
Lim et al. A serial-parallel architecture for two-dimensional discrete cosine and inverse discrete cosine transforms
Srinivas et al. New realization of low area and high-performance Wallace tree multipliers using booth recoding unit
Hung et al. Compact inverse discrete cosine transform circuit for MPEG video decoding
Trainor et al. Implementation of the 2D DCT using a Xilinx XC6264 FPGA
Hara et al. Design, implementation and on-chip high-speed test of SFQ half-precision floating-point multiplier
Olivares et al. Minimum Sum of Absolute Differences implementation in a single FPGA device
Coelho et al. Computation of 2D 8× 8 DCT based on the Loeffler factorization using algebraic integer encoding
Kim et al. An asynchronous matrix-vector multiplier for discrete cosine transform
JPH05181896A (ja) 離散コサイン変換処理装置
Di et al. Power-aware pipelined multiplier design based on 2-dimensional pipeline gating
Hafizullah et al. An Efficient Hardware Implementation of Walsh Hadamard Transform for JPEG XR
Li et al. Low power design of two-dimensional DCT
Swamy et al. A fast, pipelined implementation of a two-dimensional inverse discrete cosine transform
JP3803895B2 (ja) デジタル信号処理のための低電力消費型演算装置
Nandhini et al. Implementation of Normal Urdhva Tiryakbhayam Multiplier in VLSI
Savitha et al. Efficient operand divided hybrid adder for error tolerant applications
Shirol et al. Design and Implementation of Adders and Multiplier in FPGA Using ChipScope: A Performance
Current et al. Unified forward and inverse discrete cosine transform architecture and proposed VLSI implementation

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: 20110509

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee