KR100451712B1 - 멀티플리케이션장치및방법 - Google Patents

멀티플리케이션장치및방법 Download PDF

Info

Publication number
KR100451712B1
KR100451712B1 KR1019970008326A KR19970008326A KR100451712B1 KR 100451712 B1 KR100451712 B1 KR 100451712B1 KR 1019970008326 A KR1019970008326 A KR 1019970008326A KR 19970008326 A KR19970008326 A KR 19970008326A KR 100451712 B1 KR100451712 B1 KR 100451712B1
Authority
KR
South Korea
Prior art keywords
register
value
multiply
multiplication
destination
Prior art date
Application number
KR1019970008326A
Other languages
English (en)
Other versions
KR19980073178A (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 KR1019970008326A priority Critical patent/KR100451712B1/ko
Publication of KR19980073178A publication Critical patent/KR19980073178A/ko
Application granted granted Critical
Publication of KR100451712B1 publication Critical patent/KR100451712B1/ko

Links

Images

Classifications

    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5332Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • 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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations

Abstract

마이크로 프로세서의 배럴 쉬프터를 이용한 멀티플리케이션 장치 및 방법에 관한 것으로, 스텝수를 카운팅하여 첫 스텝인지를 판단하고, 첫 스텝이면 소오스 레지스터와 멀티플라이 레지스터의 값을 읽어들여 멀티플리케이션을 수행한 후 데스티네이션 레지스터로 출력하는 단계와, 상기 단계에서 첫 스텝이 아니면 레지스터 뱅크부로부터 오퍼랜드 레지스터, 데스티네이션 레지스터, 및 멀티플라이 레지스터의 값을 읽어 들이는 단계와, 마지막 스텝인지를 판단하여 마지막 스텝이 아니면 데스티네이션 레지스터의 값과 멀티플라이 레지스터의 값을 멀티플리케이션하고, 이 결과에 오퍼랜드 레지스터의 값의 어큐뮬레이트 연산을 수행한 후 데스티네이션 레지스터로 출력하고, 이어 상기 멀티플라이 레지스터의 값을 2비트 쉬프트하여 다시 멀티플라이 레지스터의 값으로 재저장하는 단계로 이루어져, 2N 비트의 데이터들끼리의 멀티플리케이션 과정에서 기존의 멀티플리케이션 단계인 N+1단계를 N단계로 줄일 수 있으며, 이로 인해 실행 사이클 타임을 줄일 수 있는 효과가 있다.

Description

멀티플리케이션 장치 및 방법{Method and apparatus for multiplication}
본 발명은 마이크로 프로세서에 관한 것으로 특히, 배럴 쉬프터를 이용한 멀티플리케이션 장치 및 방법에 관한 것이다.
종래 기술에 따른 멀티플리케이션 장치의 구성은 도 1과 같이 어드레스 레지스터(11), 증가부(12), 레지스터 뱅크부(13), 멀티플리케이션부(14), ALU(Arithmetic and Logical Unit)(15), 데이터 입출력부(16), 및 명령 파이프라인(17)을 포함하여 구성된다.
상기 어드레스 레지스터(11)는 한 명령어가 끝나면 프로그램 카운터(PC : Program Counter) 값을 증가부(12)로 출력한다. 상기 증가부(12)는 상기 어드레스 레지스터(11)에서 프로그램 카운터 값이 입력되면 1번지씩 증가시켜 어드레스 레지스터(11)와 레지스터 뱅크부(13)로 출력한다.
상기 레지스터 뱅크부(13)는 소오스 레지스터(Rs : Source Register), 오퍼랜드 레지스터(Rn : Operand Register), 데스티네이션 레지스터(Rd : Destination Register), 프로그램 카운터(PC : Program Counter) 및 멀티플라이 레지스터(Rm : Multiply Register)를 포함하여 구성된다. 상기 프로그램 카운터(PC)는 다음에 수행할 명령어의 번지를 기억하는 레지스터로서, 상기 증가부(12)에서 출력되는 번지 값을 저장한다.
상기 멀티플리케이션부(14)는 멀티플리케이션의 첫 스텝일 경우 레지스터 뱅크부(13)에서 출력된 소오스 레지스터(Rs) 값을 일시 저장하고, 데스티네이션 레지스터(Rd) 값은 그대로 출력한다. 또한 그 밖의 스텝에서는 첫 스텝에서 저장된 소오스 레지스터(Rs) 값을 상기 ALU(15)로 출력하고, 상기 멀티플라이 레지스터(Rm)의 멀티플리케이션 오퍼레이션의 스텝 수를 연산한다.
상기 ALU(15)는 멀티플리케이션의 첫 스텝에서는 멀티플케이션부(14)의 오퍼랜드 레지스터(Rn) 값을 레지스터 뱅크부(13)의 데스티네이션 레지스터(Rd)의 값으로 출력하고, 그 이후의 스텝에서는 상기 멀티플케이션부(14)에서 입력된 소오스 레지스터(Rs) 값에 따라 MLA(Multiply-Accumulate) 또는 MUL(Multiply)을 구분 결정한다.
상기 데이터 입출력부(16)는 레지스터 뱅크부(13)에서 출력된 데이터를 외부로 출력하거나, 외부의 데이터를 입력받는다. 상기 명령 파이프라인(17)은 다음 명령을 입력받아 멀티플리케이션부(14)로 출력한다.
이와 같이 구성된 종래 기술에 따른 멀티플리케이션 장치의 동작을 설명하면 다음과 같다.
먼저, 첫 번째 클럭이 발생할 때 멀티플라이 데이터 패스를 살펴보면 마이크로 프로세서의 레지스터 뱅크부(13)는 데스티네이션 레지스터(Rd)의 값을 읽어오고, 소오스 레지스터(Rs)의 값과 오퍼랜드 레지스터(Rn) 값을 멀티플리케이션부(14)로 출력한다.
상기 멀티플리케이션부(14)는 상기 소오스 레지스터(Rs) 값은 일시 저장하고, 오퍼랜드 레지스터(Rn) 값은 그대로 ALU(15)로 출력한다. 상기 ALU(15)는 오퍼랜드 레지스터(Rn) 값을 레지스터 뱅크부(13)의 데스티네이션 레지스터(Rd) 값으로 출력한다.
동시에 증가부(12)는 어드레스 레지스터(11)에서 입력된 PC 값을 1 증가시켜 어드레스 레지스터(11) 및 레지스터 뱅크부(13)의 프로그램 카운터로 출력한다.
이때 어드레스 레지스터(11)는 현재 프로그램 카운터 값을 출력하고, 명령 파이프라인(17)은 다음 명령을 패치(fetch)한다.
그 다음 두 번째 클럭부터는 전 단계에서 멀티플리케이션부(14)가 저장해놓은 소오스 레지스터(Rs)의 값과 동시에 현재 데스티네이션 레지스터(Rd)의 값이 ALU(15)에 입력되어 연산된 후 다시 레지스터 뱅크부(13)의 데스티네이션 레지스터(Rd)의 값으로 출력된다.
이는 레지스터 뱅크부(13)의 데스티네이션 레지스터(Rd)의 값이 입력될때마다 상기 레지스터 뱅크부(13)는 멀티플라이 레지스터(Rm)의 값을 멀티플리케이션부(14)로 출력하기 때문이다.
그러면 멀티플리케이션부(14)는 멀티플리케이션 오퍼레이션의 스텝수가 2N(N=비트수/2)+1 까지 한 스텝씩 반복하여 멀티플리케이션을 수행한다.
만약, 32비트 멀티플리케이션을 수행할려면 첫 번째 스텝에서는 꼭 소오스 레지스터(Rs)의 값을 읽어놓고 수행하므로 1스텝을 소모해버리고, 나머지 스텝에서 멀티플리케이션을 수행하게 되면 총 N+1 스텝이 된다.
종래 기술에 따른 멀티플리케이션 장치는 멀티플리케이션을 수행할려면 첫 번째 스텝에서는 꼭 소오스 레지스터(Rs)의 값을 읽어놓고 수행하므로 어큐뮬레이트 계산시 따로 한 스텝을 필요로 하여 회로를 복잡하게 만들며, 게이트 수의 증가를 초래하는 문제점이 발생된다.
본 발명은 이와 같은 문제점을 해결하기 위하여 안출한 것으로 어큐뮬레이션 계산시 따로 한 스텝 소모하지 않도록 멀티플라이 레지스터(Rm)를 바로 읽고 배럴 쉬프터를 이용하여 멀티플리케이션을 수행하는 멀티플리케이션 장치 및 방법을 제공하는 데 그 목적이 있다.
도 1은 종래기술에 따른 멀티플리케이션 장치의 구성을 설명하기 위한 블록도
도 2는 본 발명에 따른 멀티플리케이션 장치의 구성을 설명하기 위한 블록도
도 3은 본 발명에 따른 멀티플리케이션 방법을 설명하기 위한 플로우챠트
도면의 주요부분에 대한 부호의 설명
21 : 어드레스 레지스터 22 : 증가부
23 : 레지스터 뱅크부 24 : 멀티플케이션부
25 : ALU 26 : 데이터 입출력부
27 : 명령 파이프라인 241 : 부스 멀티플라이어
242 : 배럴 쉬프터부
본 발명에 따른 멀티플리케이션 장치의 특징은 소오스 레지스터, 오퍼랜드 레지스터, 데스티네이션 레지스터, 프로그램 카운터 및 멀티플라이 레지스터를 포함하며, 첫 스텝일 경우 소오스 레지스터와 멀티플라이 레지스터의 값을 출력하고, 첫 스텝이 아닐 경우 오퍼랜드 레지스터, 데스티네이션 레지스터, 및 멀티플라이 레지스터의 값을 출력하는 레지스터 뱅크부와, 상기 레지스터 뱅크부에서 소오스 레지스터나 데스티네이션 레지스터의 값이 입력될때마다 스텝수를 카운트하고, 그 스텝수에 해당하는 멀티플리케이션을 수행하는 멀티플리케이션부와, 상기 멀티플리케이션부의 출력에 따라 연산을 수행하여 상기 레지스터 뱅크부의 데스티네이션 레지스터로 출력하는 ALU를 포함하여 구성되는데 있다.
상기 멀티플리케이션부는 상기 레지스터 뱅크부의 소오스 레지스터나 데스티네이션 레지스터의 값이 입력될때마다 스텝수를 카운트하여 이 카운트된 스텝수가 첫 스텝이면 소오스 레지스터와 멀티플라이 레지스터의 값을 멀티플리케이션하고, 첫 스텝이 아니면 데스티네이션 레지스터와 멀티플라이 레지스터의 값을 멀티플리케이션하는 부스 멀티플라이어와, 상기 부스 멀티플라이어의 카운트된 스텝수가 첫 스텝이 아니면서 일정 스텝이 될 때까지는 레지스터 뱅크부에서 출력되는 멀티플라이 레지스터의 값을 2비트 쉬프트하여 상기 레지스터 뱅크부의 멀티플라이 레지스터의 값으로 재저장하고, 일정 스텝이 되면 멀티플라이 레지스터의 값을 2비트 쉬프트하여 상기 레지스터 뱅크부의 데스티네이션 레지스터로 출력하는 배럴 쉬프트부로 구성됨을 특징으로 한다.
본 발명에 따른 멀티플리케이션 방법의 특징은, 멀티플라이어의 첫 스텝이면 상기 레지스터 뱅크부로부터 소오스 레지스터와 멀티플라이 레지스터의 값을 읽어들여 멀티플리케이션을 수행한 후 데스티네이션 레지스터로 출력하는 단계와, 멀티플라이어의 첫 스텝이 아니면 상기 레지스터 뱅크부로부터 오퍼랜드 레지스터, 데스티네이션 레지스터, 및 멀티플라이 레지스터의 값을 읽어 들이는 단계와, 상기 단계 수행 후 멀티플라이어의 마지막 스텝인지를 판단하여 마지막 스텝이 아니면 데스티네이션 레지스터의 값과 멀티플라이 레지스터의 값을 멀티플리케이션하고, 이 멀티플리케이션 결과에 오퍼랜드 레지스터의 값의 어큐뮬레이트 연산을 수행한 후 데스티네이션 레지스터로 출력하고, 이어 상기 멀티플라이 레지스터의 값을 2비트 쉬프트하여 다시 멀티플라이 레지스터의 값으로 재저장하는 단계와, 상기 단계에서 마지막 스텝으로 판별되면 상기 멀티플라이 레지스터의 값을 2비트 쉬프트하여 데스티네이션 레지스터로 출력하는 단계를 포함하여 이루어지는데 있다.
이하, 본 발명에 따른 멀티플리케이션 장치 및 방법을 첨부된 도면을 참조하여 상세히 살펴보면 다음과 같다.
도 2는 본 발명에 따른 멀티플리케이션 장치의 구성을 설명하기 위한 블록도로써, 멀티플리케이션부(24)를 제외한 나머지 구성은 상기된 도 1과 같다.
즉 어드레스 레지스터(21)는 한 명령어가 끝나면 프로그램 카운터 값을 증가부(22)로 출력하고, 상기 증가부(22)는 어드레스 레지스터(21)에서 프로그램 카운터 값이 입력되면 1 증가시켜 어드레스 레지스터(21)와 레지스터 뱅크부(23)의 프로그램 카운터로 출력한다.
상기 레지스터 뱅크부(23)는 소오스 레지스터(Rs : Source Register), 오퍼랜드 레지스터(Rn : Operand Register), 데스티네이션 레지스터(Rd : Destination Register), 프로그램 카운터 및 멀티플라이 레지스터(Rm : Multiply Register)를 포함하여 구성된다. 이러한 구성의 레지스터 뱅크부(23)는 멀티플리케이션의 첫 스텝일 경우 증가부(22)에서 1 증가되어 출력된 프로그램 카운터 값을 프로그램 카운터에 저장하거나 프로그램 카운터에 저장된 값을 어드레스 레지스터(21)로 출력하고, 소오스 레지스터(Rs)와 멀티플라이 레지스터(Rm)의 값을 출력한다. 또한 상기 레지스터 뱅크부(23)는 멀티플리케이션의 다음 스텝일 경우 멀티플라이 레지스터(Rm), 데스티네이션 레지스터(Rd), 및 오퍼랜드 레지스터(Rn)의 값을 출력한다.
상기 멀티플리케이션부(24)는 부스 멀티플라이어(241)와 배럴 쉬프터부(242)로 구성되어, 상기 레지스터 뱅크부(23)에서 소오스 레지스터(Rs) 또는 데스티네이션 레지스터(Rd)의 값이 입력될때마다 스텝수(N)를 카운트하고, 그 스텝수에 해당하는 멀티플리케이션을 수행하여 ALU(25)로 출력한다. 상기 ALU(25)는 멀티플리케이션부(24)의 출력에 따라 연산을 수행하여 상기 레지스터 뱅크부(23)의 데스티네이션 레지스터(Rd)로 출력한다. 데이터 입출력부(26)는 ALU(25)에서 출력된 데이터를 외부로 출력하거나 외부의 데이터를 입력받는다. 명령 파이프라인(27)은 다음 명령을 입력받아 멀티플리케이션부(24)로 출력한다.
상기 멀티플리케이션부(24)의 부스 멀티플라이어(241)는 레지스터 뱅크부(23)의 소오스 레지스터(Rs)의 값 또는 데스티네이션 레지스터(Rd)의 값이 입력될때마다 스텝수를 카운트하고 이 카운트된 스텝수에 따라 소오스 레지스터(Rs)와 멀티플라이 레지스터(Rm)의 값을 멀티플리케이션하거나, 데스티네이션 레지스터(Rd)와 멀티플라이 레지스터(Rm)의 값을 멀티플리케이션하여 ALU(25)로 출력한다.
그리고 상기 멀티플리케이션부(24)의 배럴 쉬프터부(242)는 다수의 3상태 버퍼로 이루어져 상기 부스 멀티플라이어(241)에서 카운트된 스텝수가 일정 스텝이 될 때까지는 레지스터 뱅크부(23)에서 출력되는 멀티플라이 레지스터(Rm)의 값을 2비트 쉬프트한 후 ALU(25)를 통해 상기 레지스터 뱅크부(23)의 멀티플라이 레지스터(Rm)로 출력하여 Rm 값으로 재저장한다. 그리고 일정 스텝이 되면 멀티플라이 레지스터(Rm)의 값을 2비트 쉬프트한 후 ALU(25)를 통해 상기 레지스터 뱅크부(23)의 데스티네이션 레지스터(Rd)로 출력한다.
이와 같이 구성된 본 발명에 따른 멀티플리케이션 장치의 동작을 도 3의 플로우챠트를 참조하여 설명하면 다음과 같다.
클럭 에지 발생시 부스 멀티플라이어(241)는 스텝수(N)를 카운팅하여(S31) 스텝수가 첫 스텝이면(S32) 레지스터 뱅크부(23)로부터 소오스 레지스터(Rs)와 멀티플라이 레지스터(Rm)의 값을 읽어들여(S33) 멀티플리케이션을 수행한 후 ALU(25)를 통해 레지스터 뱅크부(23)의 데스티네이션 레지스터(Rd)로 출력한다(S34).
상기 단계들의 수행 후 스텝수(N)를 하나 증가시켜 카운팅하고(S31), 이 카운팅된 스텝수(N)가 첫 스텝인지를 판단한다(S32). 첫 스텝이 아니라고 판별되면 레지스터 뱅크부(23)에서 오퍼랜드 레지스터(Rn), 멀티플라이 레지스터(Rm), 및 데스티네이션 레지스터(Rd) 값을 읽어온다(S35). 이때 레지스터 뱅크부(23)의 오퍼랜드 레지스터(Rn) 값은 ALU(25)로 출력되고, 멀티플라이 레지스터(Rm), 데스티네이션 레지스터(Rd) 값은 부스 멀티플라이어(241)로 출력된다.
여기서, 상기 멀티플리케이션부(24)가 레지스터 뱅크부(23)로부터 데이터를 읽어 들일때마다 스텝수(N)는 하나씩 증가한다.
그리고, 상기 부스 멀티플라이어(241)는 현재 스텝이 16번째 스텝인지를 판단하여(S36) 16번째 스텝이 아니면 즉, 2스텝에서 15스텝일때는 상기 S35에서 읽어온 데스티네이션 레지스터(Rd)의 값과 멀티플라이 레지스터(Rm)의 값의 멀티플리케이션을 수행하여 ALU(25)로 출력한다. 상기 ALU(25)는 상기 멀티플리케이션 결과(Rd*Rm)에 오퍼랜드 레지스터(Rn)의 값을 더하는 어큐뮬레이트 연산(Rd*Rm+Rn)을 수행한 후 그 결과를 레지스터 뱅크부(23)의 데스티네이션 레지스터(Rd)로 출력한다(S37).
그 후 배럴 쉬프터부(242)는 멀티플라이 레지스터(Rm)의 값을 2비트 쉬프트한 후 ALU(25)를 통해 다시 레지스터 뱅크부(23)의 멀티플라이 레지스터(Rm)의 값으로 재저장한다(S38).
상기와 같은 단계를 스텝수(N)가 16이 될 때까지 반복하고, 스텝수(N)가 16이 되면 즉 마지막 스텝이 되면 상기 배럴 쉬프터부(242)는 멀티플라이 레지스터(Rm)의 값을 2비트 쉬프트한 후 ALU(25)를 통해 레지스터 뱅크부(23)의 데스티네이션 레지스터(Rd) 값으로 출력한다(S39).
즉, 본 발명에 따른 멀티플리케이션 장치 및 방법은 한 스텝에서 어큐뮬레이터 계산을 따로 수행하는 것이 아니라 바로 멀티플라이 레지스터(Rm) 값을 읽어서멀티플리케이션을 수행하고, 멀티플리케이션 수행 도중 오퍼랜드 레지스터(Rn) 값을 읽어들여 계속해 오던 멀티플리케이션과 어큐뮬레이트를 동시에 수행한다.
본 발명에 따른 멀티플리케이션 장치 및 방법은 2N 비트의 데이터들끼리의 멀티플리케이션 과정에서 부스-멀티플라이어와 배럴 쉬프터를 이용함으로써, 기존의 멀티플리케이션 단계인 N+1단계를 N단계로 줄일 수 있으며, 이로 인해 실행 사이클 타임을 줄 일 수 있는 효과가 있다.

Claims (6)

  1. 소오스 레지스터, 오퍼랜드 레지스터, 데스티네이션 레지스터, 프로그램 카운터 및 멀티플라이 레지스터를 포함하며, 첫 스텝일 경우 소오스 레지스터와 멀티플라이 레지스터의 값을 출력하고, 첫 스텝이 아닐 경우 오퍼랜드 레지스터, 데스티네이션 레지스터, 및 멀티플라이 레지스터의 값을 출력하는 레지스터 뱅크부와,
    상기 레지스터 뱅크부에서 소오스 레지스터나 데스티네이션 레지스터의 값이 입력될때마다 스텝수를 카운트하고, 그 스텝수에 해당하는 멀티플리케이션을 수행하는 멀티플리케이션부와,
    상기 멀티플리케이션부의 출력에 따라 연산을 수행하여 상기 레지스터 뱅크부의 데스티네이션 레지스터로 출력하는 ALU를 포함하여 구성함을 특징으로 하는 멀티플리케이션 장치.
  2. 제 1 항에 있어서, 상기 멀티플리케이션부는
    상기 레지스터 뱅크부의 소오스 레지스터나 데스티네이션 레지스터의 값이 입력될때마다 스텝수를 카운트하여 이 카운트된 스텝수가 첫 스텝이면 소오스 레지스터와 멀티플라이 레지스터의 값을 멀티플리케이션하고, 첫 스텝이 아니면 데스티네이션 레지스터와 멀티플라이 레지스터의 값을 멀티플리케이션하는 부스 멀티플라이어와,
    상기 부스 멀티플라이어의 카운트된 스텝수가 첫 스텝이 아니면서 일정 스텝이 될 때까지는 레지스터 뱅크부에서 출력되는 멀티플라이 레지스터의 값을 2비트 쉬프트하여 상기 레지스터 뱅크부의 멀티플라이 레지스터의 값으로 재저장하고, 일정 스텝이 되면 멀티플라이 레지스터의 값을 2비트 쉬프트하여 상기 레지스터 뱅크부의 데스티네이션 레지스터로 출력하는 배럴 쉬프트부로 구성됨을 특징으로 하는 멀티플리케이션 장치.
  3. 소오스 레지스터, 오퍼랜드 레지스터, 데스티네이션 레지스터, 프로그램 카운터 및 멀티플라이 레지스터를 포함하는 레지스터 뱅크부를 이용한 멀티플리케이션 방법에 있어서,
    (a) 멀티플라이어의 첫 스텝이면 상기 레지스터 뱅크부로부터 소오스 레지스터와 멀티플라이 레지스터의 값을 읽어들여 멀티플리케이션을 수행한 후 데스티네이션 레지스터로 출력하는 단계와,
    (b) 멀티플라이어의 첫 스텝이 아니면 상기 레지스터 뱅크부로부터 오퍼랜드 레지스터, 데스티네이션 레지스터, 및 멀티플라이 레지스터의 값을 읽어 들이는 단계와,
    (c) 상기 (b) 단계 수행 후 멀티플라이어의 마지막 스텝인지를 판단하여 마지막 스텝이 아니면 데스티네이션 레지스터의 값과 멀티플라이 레지스터의 값을 멀티플리케이션하고, 이 멀티플리케이션 결과에 오퍼랜드 레지스터의 값의 어큐뮬레이트 연산을 수행한 후 데스티네이션 레지스터로 출력하고, 이어 상기 멀티플라이 레지스터의 값을 2비트 쉬프트하여 다시 멀티플라이 레지스터의 값으로 재저장하는단계와,
    (d) 상기 (c) 단계에서 마지막 스텝으로 판별되면 상기 멀티플라이 레지스터의 값을 2비트 쉬프트하여 데스티네이션 레지스터로 출력하는 단계를 포함하여 이루어짐을 특징으로 하는 멀티플리케이션 방법.
  4. 제 2 항에 있어서, 상기 ALU는
    상기 부스 멀티플라이어의 카운트된 스텝수가 첫 스텝과 마지막 스텝이 아니면 상기 부스 멀티플라이어에서 출력되는 데스티네이션 레지스터와 멀티플라이 레지스터의 값의 멀티플리케이션 결과에 오퍼랜드 레지스터 값의 어큐뮬레이트 연산을 수행한 후 상기 레지스터 뱅크부의 데스티네이션 레지스터로 출력하는 것을 특징으로 하는 멀티플리케이션 장치.
  5. 제 1 항에 있어서,
    한 명령어가 끝나면 프로그램 카운터 값을 출력하는 어드레스 레지스터와,
    상기 프로그램 카운터 값을 증가시켜 상기 레지스터 뱅크부의 프로그램 카운터로 출력하는 증가부를 포함하여 구성되며,
    상기 레지스터 뱅크부는 첫 스텝일 경우 프로그램 카운터에 저장된 값을 상기 어드레스 레지스터로 출력하는 것을 특징으로 하는 멀티플리케이션 장치.
  6. 제 3 항에 있어서,
    상기 레지스터 뱅크부에서 소오스 레지스터나 데스티네이션 레지스터의 값을 읽어올 때마다 스텝수를 카운트하여 멀티플라이어의 각 스텝을 판별하는 것을 특징으로 하는 멀티플리케이션 방법.
KR1019970008326A 1997-03-12 1997-03-12 멀티플리케이션장치및방법 KR100451712B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970008326A KR100451712B1 (ko) 1997-03-12 1997-03-12 멀티플리케이션장치및방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970008326A KR100451712B1 (ko) 1997-03-12 1997-03-12 멀티플리케이션장치및방법

Publications (2)

Publication Number Publication Date
KR19980073178A KR19980073178A (ko) 1998-11-05
KR100451712B1 true KR100451712B1 (ko) 2004-11-16

Family

ID=37366984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970008326A KR100451712B1 (ko) 1997-03-12 1997-03-12 멀티플리케이션장치및방법

Country Status (1)

Country Link
KR (1) KR100451712B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271557A (ja) * 1994-03-11 1995-10-20 Advanced Risc Mach Ltd データ処理乗算装置および方法
US5568646A (en) * 1994-05-03 1996-10-22 Advanced Risc Machines Limited Multiple instruction set mapping
US5583804A (en) * 1994-07-14 1996-12-10 Advanced Risc Machines Limited Data processing using multiply-accumulate instructions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07271557A (ja) * 1994-03-11 1995-10-20 Advanced Risc Mach Ltd データ処理乗算装置および方法
US5568646A (en) * 1994-05-03 1996-10-22 Advanced Risc Machines Limited Multiple instruction set mapping
US5583804A (en) * 1994-07-14 1996-12-10 Advanced Risc Machines Limited Data processing using multiply-accumulate instructions

Also Published As

Publication number Publication date
KR19980073178A (ko) 1998-11-05

Similar Documents

Publication Publication Date Title
US6209017B1 (en) High speed digital signal processor
US6009451A (en) Method for generating barrel shifter result flags directly from input data
US11347511B2 (en) Floating-point scaling operation
US6904446B2 (en) Floating point multiplier/accumulator with reduced latency and method thereof
EP0754998B1 (en) An arithmetic unit
US6115729A (en) Floating point multiply-accumulate unit
US5682545A (en) Microcomputer having 16 bit fixed length instruction format
US6925480B2 (en) Microarchitecture of an arithmetic unit
US5884069A (en) Computer and a method of operating a computer to combine data values within a singularly addressable data string
US5583804A (en) Data processing using multiply-accumulate instructions
US4866652A (en) Floating point unit using combined multiply and ALU functions
US4084254A (en) Divider using carry save adder with nonperforming lookahead
JP3081710B2 (ja) オーバーフロー検出機能付き乗算装置
JP3476960B2 (ja) 算術論理演算装置及び制御方法
US5682339A (en) Method for performing rotate through carry using a 32 bit barrel shifter and counter
KR100451712B1 (ko) 멀티플리케이션장치및방법
US5557563A (en) Data processing method and apparatus including iterative multiplier
US5831877A (en) Bit searching through 8, 16, or 32 bit operands using a 32 bit data path
US5754460A (en) Method for performing signed division
JP3579087B2 (ja) 演算器およびマイクロプロセッサ
KR100315303B1 (ko) 디지탈 신호 처리기
US5687102A (en) Double precision (64 bit) shift operations using a 32 bit data path
US5646874A (en) Multiplication/multiplication-accumulation method and computing device
Mayerwieser et al. Testing a high-speed data path the design of the rsaβ crypto chip
KR100246472B1 (ko) 디지탈신호처리기

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee