KR950015181B1 - 곱셈-합 연산장치 - Google Patents

곱셈-합 연산장치 Download PDF

Info

Publication number
KR950015181B1
KR950015181B1 KR1019930700639A KR930700639A KR950015181B1 KR 950015181 B1 KR950015181 B1 KR 950015181B1 KR 1019930700639 A KR1019930700639 A KR 1019930700639A KR 930700639 A KR930700639 A KR 930700639A KR 950015181 B1 KR950015181 B1 KR 950015181B1
Authority
KR
South Korea
Prior art keywords
command
control signal
output
timing signal
signal
Prior art date
Application number
KR1019930700639A
Other languages
English (en)
Other versions
KR930702716A (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 후지쓰 가부시끼가이샤
Publication of KR930702716A publication Critical patent/KR930702716A/ko
Application granted granted Critical
Publication of KR950015181B1 publication Critical patent/KR950015181B1/ko

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/544Methods 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 for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

내용 없음.

Description

[발명의 명칭]
곱셈-합 연산장치
[도면의 간단한 설명]
제1도는 본 발명의 원리를 설명키 위한 개통도.
제2도는 본 발명이 적용되는 DSP의 일실시예를 도시한 레이아웃도.
제3도는 시퀀스(sequence)장치를 나타낸 개통도.
제4도는 상기 시퀀스장치의 일부와 실행장치에 의해 구성된, 제1실시예에 의한, 곰셈-합 연산장치를 도시한 개통도.
제5도는 제1실시예에 의한, 곱셈-합 연산장치의 연산을 나타낸 타이밍 챠트도.
제6도는 제2실시예에 의한 곱셈-합 연산장치를 나타낸 개통도.
제7도는 제3실시예에 의한 곱셈-합 연산를 나타낸 개통도.
제8도는 제4실시예에 의한, 시퀀스장치의 일부와 실행장치로 구성된 곱셈-합 연산을 나타낸 개통도.
제9도는 제4실시예에 의한, 곱셈-합 연산장치의 동작을 나타낸 타이밍 챠트.
제10도는, DSP를 사용한 광디스크 드라이버를 나타낸 개략도.
제11도는 광디스크의 고속 서보제어시스템의 소프트웨어 기술을 설명키 위한 DSP를 나타낸 도면.
제12도는 종래 장치를 나타낸 개통도.
제13도는 상기 종래 장치의 동작을 나타낸 타이밍 챠트도.
[발명의 상세한 설명]
[기술분야]
본 발명은 다양한 프로세서들에 구비된 곱셈-합 연산장치에 관한 것이다.
최근 컴퓨터 시스템의 고속동작요구로 인하여, 산술연산, 특히 고속의 곱셈-합 연산에 대한 요구가 높다. 곱셈-합 연산이라함은, 2수(피승수와 승수)의 곱셈 결과를 다른 수(가수)에 가산하는 것을 의미한다.
이러한 곱셈-합 연산은, 예를들어 아날로그-디지탈 변환기로부터의 디지탈 출력신호를 처리하기 위한 필수적 산술연산이다.
즉, 곱셈-합 연산은, 예를들어 아날로그-디지탈 변환기를 구비한 모뎀(변조-복조기)의 필터링 처리, 또는 하드 디스크 드라이버내의 독출 헤드의 포지션닝(positioning)을 위한 고속서보 제어를 실현키 위한 필수적 산술연산이다.
최근 반도체 기술의 발전으로 인하여, 디지탈 신호 프로세서(DSP) 또는 마이크로 제어장치내에 고성능 곱셈-합 연산장치가 구비돼 있다. 상기 설명한 바와같이, 곱셈-합 연산장치는, 다양한 통신 설비 또는 고성능 제어실비를 실행키 위한 필수 장치가 돼 있다.
[배경기술]
곱셈-합 연산장치로서, 디지탈 곱셈적 가산장치가 일본 특개소 59-194242호 공보에서 제안된 바 있다. 이러한 디지탈 곱셈적 가산장치는, 3 또는 4개의 곱셈장치, 제1과 제2가산기, 제1 및 제2레지스터 및 복수의 멀티플렉서로 구성돼 있다.
각 곱셈장치는, 피승수의 각각의 부분데이타와 승수의 각각의 부분데이타를 곱함으로써 각각의 부분곱을 산출한다. 상기 제1과 제2가산기가 상기 부분곱들을 가산하여 곱을 산출한다.
상기 제2가산기가 상기 제1과 제2레지스터의 값들을 누적 가산하고, 상기 제2레지스터가 상기 가산치를 기억한다.
상기 제2가산기가 상기 제1과 제2레지스터의 값들을 누적 가산하는 동안, 각 곱셈장치가, 상기 피승수와 승수의 상기 부분곱들을 산출한다. 제1과 제2가산기가 새로운 부분곱들을 가산함으로써 곱셈치를 구한다.
제1레지스터가 상기 얻어진 곱셈치들을 기억한다. 상기 제2가산기가, 상기 제1과 제2레지스터의 값들을 누적 가산하고, 상기 제2레지스터가 그 결과치를 기억한다.
상기 설명한 바와같이, 디지탈 곱셈 누적 가산장치는, 특수한 하드웨어 구성을 도입하여 고속 곱셈 누적 가산, 즉, 곱셈-합 연산을 실현한 것이다.
그러나, 상기 디지탈 곱셈 누적 가산장치의 곱셈-합 연산은, 상기 누산결과가 상기 제2레지스터내에 가수로써 기억되는 것을 고려한 것이다. 그러므로, 상기 디지탈 곱셈 누적 가산장치는, 원하는 수를 가수로서 사용하여 곱셈-합 연산을 실행할 수 없고, 2개의 원하는 수의 연속 가산과 같은 곱셈-합 연산이외의 다른 연산을 실행할 수 없다. 그러므로, 상기 디지탈 곱셈 누적 가산장치를 장치하여 디지탈 신호 프로세서 또는 마이크로 콘트롤러등을 구성해야 하는 경우, 상기 곱셈-합 연산이외의 연산들을 실행할 수 있는 다른 산술부가 또한 필요하다. 따라서, 디지탈 신호 프로세서 또는 마이크로 콘트롤러의 결합을 실현하기가 불가능하다는 문제점이 생긴다.
프로그램 제어를 통한 곱셈-합 연산을 실행키 위한 곱셈-합 연산장치가 또한 제안된 바 있다. 제12도는, 2개의 명령 즉, 곱셈명령과 가산명령으로 곱셈-합 연산을 실행키 위한 곱셈-합 연산장치(200)의 개통도를 나타낸다. 상기 곱셈-합 연산장치(200)는, 명령 레지스터(201), 명령 디코더(202), 곱셈장치(203), 파이프라인 레지스터(204), 데이타 셀렉터(selector)(205) 및 가산장치(이하, ALU라고 함(206)로 구성돼 있다. 상기 파이프라인 레지스터(204)는, 고속 곱셈-합 연산을 실현키 위해 구비된 것이다.
상기 곱셈-합 연산장치(200)는, 곱셈명령"C×D→P"와, 가산명령 "P+A→A"를 사용한다. 곱셈명령 "C×D→P"는 필승수 C와 승수 D의 곱을 파이프라인 레지스터(204)에 기억시키는데 사용된다.
상기 파이프라인 레지스터(204)내에 기억된 값, 즉, 상기 곱셈장치(203)의 곱셈결과치와 수 A의 가산과, 그 얻어진 합계를 새로운 수 A로 배정하는데 사용된다.
제13도에 도시된 바와 바와같이, 제1기계사이클 Tcl중 곱셈명령 "C×D→P"가 명령 레지스터(201)내에 로드(load)되면, 이 곱셈명령 "C×D→P"는, 상기 명령 디코더(202)에 의해서 제어신호로 디코드된다.
이 제어신호는 상기 곱셈장치(203)로 출력된다. 상기 제어신호에 의하여, 상기 곱셈장치(203)가 곱셈을 실행하여, 그 곱셈결과를 상기 파이프라인 레지스터(204)에 출력한다. 이 곱셈결과는 후속 기계사이클 Tc2중 파이프라인 레지스터(204)내에 로드된다.
후속 기계사이클중, 가산명령 "P+A→A"명령 레지스터(201)내로 로드되면, 상기 가산명령 "P+A→A"이 명령 디코더(202)에 의하여 제어신호로 디코드된다. 이러한 제어신호는 셀렉터(205)에 출력된다. 이 제어신호에 의하여, 상기 곱셈결과가, 데이타 셀렉터(205)에 의하여, 파이프라인 레지스터(204)를 통해서 선택된다.
다음, 상기 곱셈결과와 수 A의 가산은, 상기 명령 디코더(202)로부터의 제어신호에 의하여, ALU(206)에 의하여 실행된다. 이 가산결과는, 목표한 곱셈-합이며, 가산될 새로운 수 A로서 사용된다.
그러나, 프로그래머가, 곱셈명령과 가산명령등으로 이루어진 프로그램을 작성하여 제12도에 도시된 곱셈-합 연산장치(200)를 사용하여, 곱셈-합 연산을 실행키 위한 프로그램을 작성할때, 상기 파이프라인 레지스터(204)의 동작의 인식, 즉, 소망하는 곱셈결과가 기억됐는가 여부의 사실의 인식이 필요하다.
즉, 제13도에 도시한 바와같이, 기계사이클 Tc2중 명령 레지스터(201)내로 로드되는 가산명령 "P+A→A"의 파이프라인 레지스터(204)의 값이, 제1기계사이클 Tc1중 명령 레지스터(201)내로 로드되는 곱셈명령"C×D→P"의 파이프라인 레지스터(204)의 값을 사용함이 인색돼야 한다. 또한, 기계사이클 Tc3중, 상기 곱셈 및 가산명령 "C×D→P, P+A→A"을 명령 레지스터(201)에 로드하는 경우에, 가산명령 "P+A→A"의 파이프라인 레지스터(204)의 값이, 기계사이클 Tc2중, 명령 레지스터(201)내로 로드되는 곱셈명령 "C×D→P"의 파이프라인 레지스터(204)의 값이어야 함이 인색돼야 한다. 상기 설명한 바와같이, 상기 곱셈-합 연산장치(200)를 동작시키기 위한 프로그램의 작성이 프로그래머에게 큰 부담이 되는 문제가 있다.
또한, 상기 곱셈-합 연산장치(200)는, 곱셈-합 연산의 결과만을 얻기 위하여 2기계사이클 Tc1, Tc2를 필요로 하며, 따라서, 처리속도에 문제를 초래한다.
본 발명은, 상기 문제점들을 해소하기 위한 것이며, 따라서, 본 발명의 목적은, 프로그래머가 프로그램을 작성하는 경우에, 인식되는 파이프라인 레지스터의 동작들을 요구하지 않는 단일명령으로 구성된 곱셈-합 명령으로 곱셈-합 연산을 실행함으로써 프로그래머의 부담을 감소시키고, 단일의 기계사이클중 가산장치를 2회 동작시킴으로써 고속 곱셈-합 연산을 실현하는데 있다.
[발명의 개시]
본 발명의 곱셈-합 연산장치는, 본 발명의 원리를 나타낸 제1도에 도시된 바와 같이, 승수와 피승수를 곱함으로써 곱셈치를 산출키 위한 곱셈장치(1)와 ; 상기 곱셈장치(1)와 가산장치(3)에 의해서 산출된 곱셈 결과를 로드하고, 피가수와 파이프라인 레지스터(2)의 출력중 어느하나 또는 가수를 가산하기 위한 파이프라인 레지스터(2)를 구비하고 있다.
타이밍 신호 발생수단(4)이, 제1클록(CK1)과 제2클록(CK2)과 동기화되는, 제1타이밍 신호(T1)와 제2타이밍 신호(T2)를 발생한다. 제1명령래치(5)는, 제1제어신호를 출력하기 위해서, 제1타이밍 신호(T1)와 동기해서 명령을 로드한다. 제2명령래치(6)가, 제2타이밍 신호(T2)와 동기해서, 제1명령래치(5)내로 로드되는 명령을 로드하여, 제2제어신호를 출력한다. 제어신호 셀렉터(7)가, 상기 제1타이밍 신호(T1)에 응답성인 가산기(3)에 제2제어신호를 출력하고 제2타이밍 신호(T2)에 응답성인 가산기(3)에 제1제어신호를 출력한다. 또한, 상기 제1타이밍 신호와 동기적으로 발생되는 제3타이밍 신호와, 제2타이밍 신호와 동기적으로 발생되는 제4타이밍 신호를 사용하고, 이 제3과 제4타이밍 신호들로써 제어신호 셀렉터를 제어할 수 있다. 이 경우, 상기 제3타이밍 신호는 상기 제1타이밍 신호와 동일 타이밍으로 출력되고, 상기 제4타이밍 신호가 상기 제2타이밍 신호와 동일 타이밍으로 출력되는 것이 바람직하다.
또한, 제1과 제2클록을 기본 클록으로서 사용하여, 곱셈-합 연산장치의 동작을 제어하고 ; 상기 제1클록과 동일 타이밍으로 제3타이밍을 출력하고 ; 상기 제2클록과 동일 타이밍에 제4타이밍 신호를 출력할 수 있다.
또한, 상기 가산장치가, 상기 제2제어신호에 의하여 피가수와 파이프라인 레지스터의 출력을 가산하고, 제1제어신호에 의하여 피가수와 가수를 가산할 수 있다.
다른 실시예로서, 피승수과 승수를 곱함으로써 곱셈치를 산출하기 위한 곱셈장치를 포함한 곱셈-합 연산장치를 구성할 수도 있다. 파이프라인 레지스터는, 상기 곱셈장치에 의해 산출된 곱셈결과를 로드한다.
데이타 셀렉터가, 상기 파이프라인 레지스터의 출력과 가수를 모두 입력하고, 상기 파이프라인 레지스터 출력 또는 가수중 어느 것을 선택 및 출력한다. 가산장치가 피가수와 상기 데이타 셀렉터의 출력을 가산한다.
타이밍 신호 발생회로가, 제1클록과 동기된 제1타이밍 신호와, 제1클록과 주파수는 동일하나 위상이 상이한 제2클록과 동기된 제2타이밍 신호를 발생한다. 제2명령 레지스터는, 상기 제1타이밍 신호와 동기해서 명령을 로드하여, 그 로드된 명령을 출력한다. 제어신호 셀렉터는, 상기 제2명령 레지스터와 제3명령 레지스터를 통하여 명령들을 입력하고, 상기 제1타이밍 신호에 응답하여, 제3명령 레지스터로부터 송출된 명령을 출력하고, 상기 제2타이밍 신호에 응답하여, 상기 제2명령 레지스터로부터 송출된 명령을 출력한다. 제1명령 디코더가 상기 제2명령 디코더를 통해 송출된 명령을 디코드하여, 그 디코드된 명령을, 상기 곱셈장치와 파이프라인 레지스터에 출력한다. 제2명령 디코더는, 상기 제어신호 셀렉터로부터 출력된 명령을 ALU제어신호로 디코드하여 그 디코드된 명령을 상기 데이타 셀렉터와 가산장치에 출력한다.
다른 실시예로서, 피승수와 승수를 곱함으로써 곱셈치를 산출하기 위한 곱셈장치를 포함한 곱셈-합 연산장치를 구성할 수도 있다. 파이프라인 레지스터는, 상기 곱셈장치에 의해 산출된 곱셈결과를 로드한다. 데이타 셀렉터가, 상기 파이프라인 레지스터의 출력과 가수를 모두 입력하고, 상기 파이프라인 레지스터 출력 또는 가수중 어느 것을 선택 및 출력한다. 가산장치가 피가수와 상기 데이타 셀렉터의 출력을 가산한다.
타이밍 신호 발생회로가, 제1클록과 동기된 제1타이밍 신호와, 상기 제1클록과 주파수는 동일하나 위상이 상이항 제2클록과 동기된 제2타이밍 신호를 발생한다. 제2명령 레지스터는, 상기 제1타이밍 신호와 동기해서 명령을 로드하여, 그 로드된 명령을 출력한다.
제3명령 디코더가 상기 제2명령 레지스터로부터 송출된 명령을 제어신호로 디코드하고, 이 디코드된 명령을, 곱셈장치 및 파이프라인 레지스터와, 상기 제2타이밍 신호와 동기해서 제3명령 디코더로부터 출력된 제어신호를 로드하고 이 로드된 제어신호를 출력하기 위한 제어신호 래치에 출력한다. 제어신호 셀렉터는, 상기 제3명령 레지스터로부터 출력된 제어신호와, 상기 제어신호래치로부터 송출된 제어신호를 입력하고 ; 상기 제1타이밍 신호에 응답하여, 상기 제어신호래치를 통해 송출된 제어신호를 선택하고 ; 상기 제2타이밍 신호에 응답하여 상기 제3명령 디코더로부터 출력된 제어신호를 선택하고, 그 선택된 제어신호를 상기 데이타 셀렉터와 가산장치에 출력한다.
또한, 다른 실시예로서, 피승수와 승수를 곱함으로써 곱셈치를 산출하기 위한 곱셈장치를 포함한 곱셈-합 연산장치를 구성할 수도 있다. 파이프라인 레지스터는, 상기 곱셈장치에 의해 산출된 곱셈결과를 로드한다.
데이타 셀렉터가, 상기 파이프라인 레지스터의 출력과 가수를 모두 입력하고, 상기 파이프라인 레지스터 출력 또는 가수중 어느 것을 선택 및 출력한다. 가산장치가 피가수와 상기 데이타 셀렉터의 출력을 가산한다.
상태카운터가, 제1클록을 카운트함으로써 상태신호를 출력하고, 또한, 상기 제1클록과 주파수는 동일하나 위상이 다른 제2클록을 카운트함으로써 상태신호를 출력한다.
제4명령 디코더가, 입력된 명령들을 제어신호들로 디코드하고, 그 디코드된 신호를, 상기 곱셈장치와 파이프라인 레지스터에 출력하며, 또한, 명령코드의 실행에 필요한 사이클의 수가 각 상태신호와 매치될때는 제어신호를 출력한다. 논리회로가, 상기 제어신호들과 제1과 제2클록에 의하여, 제1클록과 동기된 제1타이밍 신호와 제2클록에 동기된 제2타이밍 신호를 발생한다.
제2명령 레지스터는, 상기 제1타이밍 신호와 동기해서 명령을 로드하고, 그 로드된 명령을 제4명령 디코더에 출력한다.
제3명령 레지스터는, 상기 제2타이밍 신호와 동기해서 제2명령 레지스터를 통해 송출된 명령을 로드하고, 그 로드된 명령을 출력한다.
제5명령 디코더는, 상기 제3명령 레지스터를 통해 송신된 명령을 ALU제어신호로 디코드하여 출력한다. ALU제어신호 출력회로가, 제4명령 디코더로부터 출력된 제어신호와, 제5명령 디코더로부터 출력된 제어신호를 입력하고, 제1클록에 의하여 제5명령 디코더로부터의 제어신호를 선택하고, 제2클록에 의하여 제4명령 디코더로부터 출력된 제어신호를 선택하고, 선택된 제어신호를, 데이타 셀렉터와 가산장치에 출력한다.
이 경우, 상기 논리회로는, 상기 제어신호들중 어느 것과, 상기 제1과 제2클록들중 어느 것에 의하여, 상기 제1클록과 동기되는 제1타이밍 신호를 발생키 위한 제1AND회로를 구비할 수도 있다.
상기 논리회로는 또한, 다른 제어신호와 다른 클록신호에 의하여, 상기 제2클록과 동기된 제2타이밍 신호를 발생키 위한 제2AND회로를 구비할 수도 있다.
또한, 상기 제1AND회로는, 상기 제어신호들과 제2클록에 의하여, 상기 제1클록과 동기된 제1타이밍 신호를 발생키 위한 NAND회로인 것이 바람직하며, 한편, 상기 제2AND회로는, 상기 제어신호와 제1클록에 의하여 제2클록과 동기된 제2타이밍 신호를 발생하는 NAND회로인 것이 바람직하다.
[발명의 양호 실시예]
[제1실시예]
본 발명에 의한 디지탈 신호 프로세서의 제1실시예를 제2~5도를 참조하여 상세히 설명한다.
제2도에 도시된 바와같이, 디지탈 신호 프로세서(DSP)(10)는, 시퀀스장치(11), 실행장치(13), 곱셈장치(14), 클록발생기(CG)(15), 버스제어장치(16), 에뮬레이터 인터페이스(ICE)(17), 인터럽트 제어장치(INTC)(18), 제1RAM(19), 제2RAM(20), ROM제어회로(21), 제1 및 제2명령 RAM(22,23) 외부버스 제어회로(24), 타이머등의 주변회로(25), 변환기 제어회로(26), 아날로그-디지탈 변환기(ADC)(27), 디지탈-아날로그 변환기(DAC)(28), 명령버스(29) 및 데이타 버스(30,31)를 구비하고 있다.
상기 명령버스(29)는, 시퀀스장치(11), 에뮬레이터 인터페이스(ICE)(17), 제1 및 제2명령 RAM(22,23)및, 외부버스 제어회로(24)를 상호접속하고 있다. 상기 데이타버스(30)는 상기 실행부(13), INTC(18), 제2RAM(20), ROM제어회로(21), 제1 및 제2명령 RAM(22,23), 외부버스 제어회로(24), 주변회로(25) 및 변환기 제어회로(26)를 상호 접속하고 있다. 상기 데이타버스(31)는 상기 실행장치(13)과 제1RAM(19)을 상호 접속하고 있다.
상기 클록 발생기(15)는, 소정 주기로 변하는, 충격비(duty ratio)가 50%인 제1기계클록 CK1과, 이 제1기계클록 CK1으로부터 1/2사이클 지연되는 제2기계클록 CK2를 발생한다. 본 실시예에서는, 클록 발생기(15)가, 주기가 40ns, 즉, 주파수가 25㎒인 제1과 제2기계클록 CK1, CK2를 발생한다. 상기 클록 발생기(15)는, 상기 DSP(10)의 각 부분에 제1과 제2기계클록 CK1, CK2를 공급한다.
제1과 제2RAM(22,23)이 프로그램을 기억하고 있다. 3개의 기억된 프로그램이 명령버스(29) 또는 데이타버스(30)를 통해서 전달되어, 명령코드 또는 데이타로서 사용된다.
ADC(27)는 아날로그 입력신호를 디지탈 입력신호로 변환하여, 이 디지탈 신호를 변환기 제어회로(26)에 출력한다.
상기 변환기 제어회로(26)는 상기 ADC(27)로부터 데이타버스(30)를 통해서 입력된 디지탈 신호를 전송한다. 또한, 상기 변환기 제어회로(26)가, 상기 데이타버스(30)를 통해 입력되는 디지탈 신호를 DAC(28)에 출력한다.
이 DAC(28)는, 상기 변환기 제어회로(26)로부터 입력된 디지탈 신호를 아날로그 신호로 변환하여, 그 신호를 출력한다.
상기 시퀀스장치(11)는, 제3도에 도시된 바와같이, 인출 레지스터(40), 제1명령 레지스터(41), 제1명령래치로서 제2명령 레지스터(42), 제2명령래치로서 제3명령 레지스터(43)및, 제1과 제2디코더(44,45)를 구비하고 있다. 상기 인출 레지스터(40)는 명령버스(29)에 접속돼 있다. 상기 제1~제3명령 레지스터(41,42,43)가 이 순서로, 인출 레지스터(40)에 접속돼 있다.
상기 인출 레지스터(40)는, 소정 래치 신호에 의하여 명령버스(29)를 통해서 전송되는 명령코드를 인출한다. 제1~3명령 레지스터(41~43)는, 소정의 래치 신호에 의하여, 선행 단계에서 레지스터들의 출력들을 각각 로드한다.
제1디코더(44)는, 제1명령 레지스터(41)에 접속돼 있다. 이 디코더(44)는, 제 1명령 레지스터(41)로부터 출력된 명령코드를 제어신호로 디코드하고, 이 제어신호를 번지 산술부(12)로 출력한다. 상기 번지 산술부(12)는, 제1디코더(44)로부터 송출된 제어신호에 의하여 억세스를 위한 번지를 산출한다.
제2디코더(45)는, 제2 및 제3명령 레지스터(42,43)에 접속돼 있다. 제2디코더(45)는, 상기 제2 및 제3명령 레지스터(42,43)로부터 출력된 각 명령코드를 디코드하여, 제어신호를 실행장치(13)에 출력한다.
제4도에 도시된 바와같이, 본 발명의 곱셈-합 연산장치(50)는, 제2 및 제3명령 레지스터(42,43) 제2디코더(45), 실행장치(13), 데이타버스(51~53), 및 명령버스(29)에 접속된 명령버스(54)를 구비하고 있다.
상기 제2디코더(45)는, 제1과 제2명령 디코더(60,61)와, 타이밍 신호 발생회로(62) 및, 제어신호 셀렉터(63)를 구비하고 있다. 상기 실행장치(13)는, 곱셈장치(70), 파이프라인 레지스터(71), 데이타 셀렉터(72), 가산장치(ALU)(73) 및 레지스터 그룹(74)를 구비하고 있다.
상기 타이밍 신호 발생회로(62)는, 제1명령 디코더(60)의 디코드된 신호 DE를 입력하고, 또한 제1기계클록 CK1, 제2기계클록 CK2를 입력한다.
상기 타이밍 신호 발생회로(62)는, 제5도에 도시된 바와같이, 상기 제1명령 디코더(60)의 디코드된 신호에 의하여, 상기 기계사이클 Tc1~Tc6의 개시점과 동기된 제1타이밍 신호 T1과, 상기 제1타이밍 신호 T1으로부터 1/2사이클 지연된 제2타이밍 신호 T2를 발생한다. 또한, 상기 타이밍 신호 발생회로(62)가 제1타이밍 신호 T1을 제2명령 레지스터(42)와 제어신호 셀렉터(63)에 출력하고, 또한 제2타이밍 신호 T2를 제3명령 레지스터(43)와 제어신호 셀렉터(63)에 출력한다.
제2명령 레지스터(42)는, 상기 제1타이밍 신호 T1의 상승구간에 의하여, 명령버스(54)를 통해 입력된 각 명령코드를 로드한다.
다음, 제2명령 레지스터(42)가, 로드된 명령코드를 제1명령 디코더(60)와, 제어신호 셀렉터(63)에 출력한다. 제1명령 디코더(60)가, 입력된 명령코드를 곱셈장치 제어신호로 디코드하고, 곱셈장치 제어신호를, 상기 곱셈장치(70)와 파이프라인 레지스터(71)에 출력한다.
제3명령 레지스터(43)가, 제2타이밍 신호 T2의 상승구간에서, 제2명령 레지스터(42)내에 로드된 명령을 로드하고, 이 명령코드를 제어 신호 셀렉터(63)에 출력한다. 따라서, 제2명령 레지스터(43)내에 로드된 명령코드는 제2명령(42)내에 로드된 명령코드로부터 각 기계사이클 Tc1~Tc6의 1/2사이클 만큼 지연된다.
상기 제어신호 셀렉터(63)가, 상기 제1타이밍 신호 T1에 응답하여, 제3명령 레지스터(43)로부터 출력된 명령코드를 선택하고, 이 명령코드를 제2명령 디코더(61)에 출력한다. 또한, 상기 제어신호 셀렉터(63)가, 제2타이밍 신호 T2에 응답하여, 상기 제2명령 레지스터(42)로부터 출력된 명령코드를 선택하고, 이 명령코드를 제2명령 디코더(61)에 출력한다. 즉, 각 기계사이클 Tc1~Tc6의 전반 1/2사이클에서는, 제어 신호 셀렉터(63)가 제3명령 레지스터(43)로부터 명령코드를 선택하고, 각 기계사이클 Tc1~Tc6의 후반 1/2사이클에서 상기 제2명령 레지스터(42)로부터의 명령코드를 출력한다. 상기 제2명령 디코더(61)는 입력된 명령코드를 디코드하고, ALU제어신호를 데이타 셀렉터(72)와 ALU(73)에 출력한다.
상기 곱셈장치(70)는, 데이타버스들(51,52)을 통해서 피승수 C와 승수 D를 입력한다. 상기 곱셈장치(70)는, 제1명령 디코더(60)로부터의 제어신호를 제어할때, 곱셈명령 또는 곱셈-합 명령에 의하여 피승수 C와 승수 D를 곱합으로써 곱셈치를 산출한다. 파이프라인 레지스터(71)는 또한, 제1명령 디코더(60)로부터의 곱셈장치 제어신호에 의하여 곱셈장치(70)의 출력을 로드하고, 후속 단계에서 곱셈결과를 데이타 셀렉터(72)에 출력한다.
상기 데이타 셀렉터(72)는, 파이프라인 레지스터(71)의 출력을 입력하고, 또한 데이타버스(71)를 통해서 가수 B를 입력한다. 상기 데이타 셀렉터(72)는 또한, 파이프라인 레지스터(71)의 출력과 제1가수 B중 어느 하나를 선택하고, 상기 제2명령 디코더(61)로부터 출력된 ALU제어신호에 응답하여, 상기 선택한 것을 ALU(73)에 출력한다. 즉, 상기 데이타 셀렉터(72)가, 상기 ALU제어신호가 입력될때, 상기 제2명령 레지스터(42)의 명령코드에 의하여 가수 B를 선택하거나, 또는 파이프라인 레지스터(71)의 출력, 즉, 곱셈결과를 선택하고, 다음, 상기 ALU제어신호가 입력되때 제3명령 레지스터(43)의 명령코드에 의하여 상기 명령코드를 ALU(73)에 출력한다.
상기 ALU(73)가, 데이타 셀렉터(72)의 출력, 즉, 파이프라인 레지스터(71)의 출력, 또는 가수 B를 입력하고, 또한 데이타버스(52)를 통해서 피가수 A를 입력한다. 상기 ALU(73)가, 상기 제2명령 디코더(61)로부터 출력된 ALU제어신호에 의하여, 피가수 A와, 파이프라인 레지스터(71)의 출력 또는 가수 B를 가산한다. 즉, 상기 ALU(73)가 상기 제2명령 레지스터(42)의 명령코드에 의하여 ALU제어신호가 입력될때, 가수 B와 피가수 A를 가산한다. 또한, 상기 ALU(73)가, 상기 제3명령 레지스터(43)의 명령코드에 의하여 ALU제어신호가 입력될때, 파이프라인 레지스터(71)의 출력과 피가수 A를 가산한다.
상기 ALU(73)에 의한 가산결과는, 데이타버스(53)를 통해서, 레지스터 그룹(74)에 전송된다. 상기 레지스터 그룹(74)은, 데이타버스(51,52)를 통해서 피승수 C, 승수 D, 가수 B 및 피가수 A를 출력한다. 여기서, 상기한 곱셈-합 연산장치(50)가 곱셈-합 명령 "C×D+A"와 가산 명령 "A+B"를 사용하는 것으로 가정한다.
상기 곱셈-합 명령 "C×D+A"는, 피승수 C와 D의 곱에 피가수 A를 가산함으로 의미한다. 가산명령 "A+B"는, 상기 데이타버스(51,52)를 통해 전송된 가수 B와 피가수 A를 가산함을 의미한다.
제5도에 되시된 바와같이, 제1기계사이클 Tcl중에 곱셈-합명령 "C×D+A"가 입력되면 상기 곱셈-합 명령이, 상기 타이밍 신호 발생회로(62)로부터 출력되는 제1타이밍 신호 T1과 동기해서 제2명령 레지스터(42)내에 로드된다. 상기 제2명령 레지스터(42)내에 로드된 곰셉-합 명령은, 제1명령 디코더(60), 제3명령 레지스터(43) 및 제어신호 셀렉터(63)에 출력된다. 상기 곱셈-합 명령은, 제1명령 디코더(60)에 의하여 곱셈장치 제어신호로 디코드된 후, 곱셈장치(70)와 파이프라인 레지스터(71)에 출력된다.
상기 곱셈장치 제어신호가 곱셈-합 연산을 트리거하므로, 기계사이클 Tc1중, 상기 곱셈장치(70)에 의하여, 피승수 C와 승수 D의 곱셈이 실행된다. 이 곱셈결과는, 상기 곱셈장치 제어신호에 의하여, 후속기계사이클 Tc2중에 상기 파이프라인 레지스터(71)내에 로드된다.
기계사이클 Tc1중에, 타이밍 신호 발생회로(62)로부터 제2타이밍 신호 T2가 출력되면, 제2명령 레지스터(42)로부터 출력되는 곱셈-합 명령 "C×D+A"가 제2타이밍 신호 T2와 동기하여 제3명령 레지스터(43)내에 로드되고, 이 곱셈-합 명령은 제어신호 셀렉터(63)에 출력된다.
이 타이밍에, 상기 제어신호 셀렉터(63)가, 상기 제2타이밍 신호 T2에 의하여, 제2명령 레지스터(42)의 명령코드를 선택한다.
이것은 다음, 제2명령디코더(61)에 의해서 ALU제어신호로 디코드되고, 다음 데이타 셀렉터(72)에 출력된다. 이 경우, 곱셈결과가 파이프라인 레지스터(71)에 로드돼 있지 않으므로, ALU(73)가 동작하지 않는다.
상기 가산명령 "A+B"가 제2기계사이클 Tc2중에 입력될때, 상기 가산명령은, 상기 제1타이밍 신호 T1과 동기해서 제2명령 레지스터(42)내에 로드된다. 제2명령 레지스터(42)내에 로드된 가산명령은, 제1명령 디코더(60)와, 제3명령 레지스터(42) 및 제어신호 셀렉터(63)에 출력된다. 상기 가산명령은 제1명령 디코더(60)에 의해서 디코드되고, 다음, 곱셈장치 제어신호로서 곱셈장치(70)와 파이프라인 레지스터(71)에 출력된다. 그러나, 상기 곱셈장치 제어신호는 가산명령이므로, 상기 곱셈장치(70)가 동작하지 않는다.
기계사이클 Tc2중에는, 제1타이밍 신호 T1에 의하여, 제어신호 셀렉터(63)에 의하여 제3명령 레지스터(43)의 곱셈-합 명령의 명령코드가 선택된다. 상기 곱셈-합 명령의 명령코드는, 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드된후, 데이타 셀렉터(72)와 ALU(73)에 출력된다.
그럼으로써, 데이타 셀렉터(72)에 의하여, 상기 파이프라인 레지스터(71)에 로드된 곱셈결과 "C×D"가 선택되고, 그 곱셈결과가 ALU(73)에 출력된다. 이 곱셈결과는, ALU(73)에 의해서 피가수 A에 가산되어, 그 곱셈-합이 구해진다. 구해진 곱셈-합은, 데이타 버스를(53)를 통해서 레지스터 그룹(74)내에 기억된다.
기계사이클 Tc2중에는, 제2타이밍 신호 T2가 타이밍 신호 발생회로(62)로부터 출력되면, 제2명령 레지스터(42)로부터 출력되는 가산명령 "A+B"가, 제2타이밍 신호 T2와 동기해서, 제3명령 레지스터(43)내에 로드된다. 상기 가산명령은, 제어신호 셀렉터(63)로 출력된다. 이 경우, 제2타이밍 신호 T2에 따라서, 상기 제어신호 셀렉터(63)에 의하여, 제2명령 레지스터(42)의 가산명령의 명령코드가 선택된다. 상기 가산명령은, 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드된후, 데이타 셀렉터(72)로 출력된다. 그럼으로써, 데이타 셀렉터(72)에 의해서 가수 B가 선택되고, 다음 ALU(73)로 출력된다. 이 가수 B는, ALU(73)에 의해서 피가수 A에 가산된다. 얻어진 가산결과는, 데이타버스(53)를 통하여, 레지스터 그룹(74)내에 기억된다.
제3기계사이클 Tc3중 곱셈-합 명령 "C×D+A"가 입력되면, 제1타이밍 신호 T1과 동기해서 상기 곱셈-합 명령이 제2명령 레지스터(42)내에 로드된다. 다음, 제2명령 레지스터(42)내에 로드된 곱셈-합 명령은, 제1명령 레지스터(60), 제3명령 레지스터(43) 및 제어신호, 셀렉터(63)에 출력된다. 이 곱셈-합 명령은, 제1명령 디코더(60)에 의하여, 곱셈장치 제어신호로 디코드된후, 곱셈장치(70)와 파이프라인 레지스터(71)에 출력된다.
상기 곱셈장치 제어신호가 곱셈-합 연산을 트리거하므로, 기계사이클 Tc3중에 피가수 C와 승수 D의 곱셈이 실행된다. 이 경우, 기계사이클 Tc1중 상기 곱셈-합 연산에 의한 곱셈-합 연산결과와, 기계사이클 Tc2중 가산명령에 의한 가산결과는 기계사이클 Tc2의 단부에서 각각 한정된다. 그러므로, 기계사이클 Tc1의 곱셈결과, 또는 기계사이클 Tc2의 가산결과를 기계사이클 Tc3중 곱셈-합 명령의 피가수 C 또는 승수 D로서 사용할 수 있다. 기계사이클 Tc3중의 곱셈결과는, 곱셈장치 제어신호에 응답하여 후속기계사이클 Tc4중에 파이프라인 레지스터(71)내에 로드된다.
또한, 기계사이클 Tc3중에, 제2명령 레지스터(42)로부터 출력된 곱셈-합 명령 "C×D+A"가, 제2타이밍 신호 T2와 동기해서, 제3명령 레지스터(43)내에 로드된다. 상기 곱셈-합 명령은 다음 제어신호 셀렉터(63)에 출력된다. 이 경우, 제2명령 레지스터(42)의 가산명령의 명령코드가, 제2타이밍 신호 T2에 따라서 제어신호 셀렉터(63)에 의해서 선택되고, 다음, 제2명령 디코더(61)에 의해서 ALU제어신호로 디코드되어, 데이타 셀렉터(72)로 출력된다. 이 타이밍에서, 상기 곱셈결과가 파이프라인 레지스터(71)내에 로드돼 있지 않으므로, ALU(73)가 동작하지 않는다.
제4기계사이클 Tc4중 곱셈-합 명령 "C×D+A"가 입력되면, 제1타이밍 신호 T1과 동기해서 상기 곱셈-합 명령이 제2명령 레지스터(42)내에 로드된다. 다음, 제2명령 레지스터(42)내에 로드된 곱셈-합 명령은, 제1명령 레지스터(41), 제3명령 레지스터(43) 및 제어신호 셀렉터(63)에 출력된다. 이 곱셈-합 명령은, 제1명령 디코더(60)에 의하여, 곱셈장치 제어신호로 디코드된후, 곱셈장치(70)와 파이프라인 레지스터(71)에 출력된다.
상기 곱셈장치 제어신호가 곱셈-합 연산을 트리거하므로, 기계사이클 Tc4중에 피가수 C와 승수 D의 곱셈이 실행된다. 이 경우, 기계사이클 Tc3중 상기 곱셈-합 연산에 의한 곱셈-합 연산결과는, 기계사이클 Tc3의 종료시점에서 한정되지는 않는다. 그러므로, 기계사이클 Tc4의 곱셈-합 명령의 피가수 C와 승수 D가, 기계사이클 Tc의 곱셈결과에 무관한 새로운 값들을 갖는다. 기계사이클 Tc4중의 곱셈결과는, 곱셈장치 제어신호에 응답하여, 후속기계사이클 Tc5중에 파이프라인 레지스터(71)내에 로드된다.
기계사이클 Tc4중에는, 제1타이밍 신호 T1에 의하여, 제어신호 셀렉터(63)에 의하여 제3명령 레지스터(43)의 곱셈-합 명령의 명령코드가 선택되고, 상기 곱셈-합 명령의 명령코드는, 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드된 후, 데이타 셀렉터(72)와 ALU(73)에 출력된다.
그럼으로써, 데이타 셀렉터(72)에 의하여, 상기 파이프라인 레지스터(71)에 로드된 곱셈결과 "C×D"가 선택되고, 그 곱셈결과가 ALU(3)에 출력된다. 이 곱셈결과는, ALU(73)에 의해서 피가수 A에 가산되어, 기계사이클 Tc3중 곱셈-합 명령에 의한 곱셈-합이 구해진다. 구해진 곱셈-합은, 데이타버스(53)를 통해서 레지스터 그룹(74)내에 기억된다.
기계사이클 Tc4중에, 제2명령 레지스터(42)로부터 출력된 곱셈-합 명령 "C×D+A"가 제2타이밍 신호 T2와 동기하여 제3명령(43)내에 로드된다. 이 곱셈-합 명령은 제어신호 셀렉터(63)에 출력된다. 이 경우, 상기 제어신호 셀렉터(63)에 의하여, 상기 제2타이밍 신호 T2에 따라서, 제2명령 레지스터(42)의 곱셈-합 명령의 명령코드가 선택되고, 다음, 제2명령 디코더(61)에 의해서 ALU제어신호로 디코드되고, 다음 데이타 셀렉터(72)에 출력된다. 이 타이밍에, 새로운 곱셈결과가 파이프라인 레지스터(71)에 로드되지 않으므로, ALU(73)가 동작하지 않는다.
상기 가산명령 "A+B"가 제5기계사이클 Tc5중에 입력될때, 상기 가산명령은, 상기 제1타이밍 신호 T1과 동기해서 제2명령 레지스터(42)내에 로드된다. 제2명령 레지스터(42)내에 로드된 가산명령은, 제1명령 디코더(60)와, 제3명령 레지스터(43) 및 제어신호 셀렉터(63)에 출력된다. 상기 가산명령은 제1명령 디코더(60)에 의해서 디코드되고, 다음, 곱셈장치 제어신호로서 곱셈장치(70)와 파이프라인 레지스터(71)에 출력된다. 그러나, 상기 곱셈장치 제어신호는 가산명령이므로, 상기 곱셈장치(70)가 동작하지 않는다.
기계사이클 Tc5중에는, 제1타이밍 신호 T1에 의하여, 제어신호 셀렉터(63)에 의하여 제3명령 레지스터(43)의 곱셈-합 명령의 명령코드가 선택된다. 상기 곱셈-합 명령의 명령코드는, 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드된후, 데이타 셀렉터(72)와 ALU(73)에 출력된다.
그럼으로써, 데이타 셀렉터(72)에 의하여, 상기 파이프라인 레지스터(71)에 로드된 곱셈결과 "C×D"가 선택되고, 그 곱셈결과가 ALU(73)에 출력된다. 이 곱셈결과는, ALU(73)에 의해서 피가수 A에 가산되어, 제4기계사이클 Tc4중 곱셈-합 명령에 의한 곱셈-합이 구해진다. 구해진 곱셈-합은, 데이타버스(53)를 통해서 레지스터 그룹(74)내에 기억된다.
기계사이클 Tc5중에는, 제2명령 레지스터(42)로부터 출력된 가산명령 "A+B"이, 제2타이밍 신호 T2와 동기해서, 제3명령 레지스터(43)내에 로드된다. 이 가산명령은, 제어신호 셀렉터(63)에 출력된다. 이 경우, 제2타이밍 신호 T2에 따라서 제어신호 셀렉터(63)에 의하여, 제2명령 레지스터(42)의 가산명령의 명령코드가 선택되고, 다음 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드되어 데이타 셀렉터(72)에 출력된다. 그럼으로써, 가수 B가 데이타 셀렉터(72)에 의해 선택된 후 ALU(73)에 출력된다. 상기 가수 B는 ALU(73)에 의하여 피가수 A에 가산된다. 구해진 가산결과는 데이타버스(53)를 통하여 레지스터 그룹(74)에 기억된다.
또한, 상기 가산명령 "A+B"가 제6기계사이클 Tc6중에 입력될때, 상기 가산명령은, 상기 제1타이밍 신호 T1과 동기해서, 제2명령 레지스터(42)내에 로드된다. 제2명령 레지스터(42)내에 로드된 가산명령은, 제1명령 디코더(60)와, 제3명령 레지스터(43) 및 제어신호 셀렉터(63)에 출력된다.
상기 가산명령은 제1명령 디코더(60)에 의해서 디코드되고, 다음, 곱셈장치 제어신호로서 곱셈장치(70)와 파이프라인 레지스터(71)에 출력된다. 그러나, 상기 곱셈장치 제어신호는 가산명령이므로, 상기 곱셈장치(70)가 동작하지 않는다.
기계사이클 Tc6중에는, 제1타이밍 신호 T1에 따라서 제어신호 셀렉터(63)에 의하여, 제3명령 레지스터(43)의 가산명령의 명령코드가 선택된다. 이 가산명령의 명령코드는, 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드되고, 다음 데이타 셀렉터(72)와 ALU(73)에 출력된다. 그러나, 상기 가산명령은, 기계사이클 Tc5의 후반부에서 기 실행되므로, ALU(73)가 동작하지 않는다.
기계사이클 Tc6중에, 제2타이밍 신호 T2가 타이밍 신호 발생회로(62)로부터 출력되면, 제2명령 레지스터(42)로부터 출력된 가산명령 "A+B"가 제2타이밍 신호 T2와 동기해서, 제3명령 레지스터(43)내에 로드된다.
상기 가산명령은, 제어신호 셀렉터(63)로 출력된다. 이 경우, 제2타이밍 신호 T2 에 따라서, 상기 제어 신호 셀렉터(63)에 의하여 제2명령 레지스터(42)의 가산명령의 명령코드가 선택된다. 상기 가산명령은, 제2명령 디코더(61)에 의하여 ALU제어신호로 디코드된후 데이타 셀렉터7(2)로 출력된다. 그럼으로써 데이타 셀렉터(72)에 의해서 가수 B가 선택되고, 다음, ALU(73)로 출력된다.
이 가수 B는, ALU(73)에 의해서 피가수 A에 가산된다. 이 경우, 기계사이클 Tc5중의 가산명령에 의한 상기 가산결과는 기계사이클 Tc5의 종료시점에서 한정된다. 그러므로, 기계사이클 Tc5중의 가산결과는, 기계사이클 Tc6의 가산명령의 피가수 A 또는 가수 B로서 사용될 수 있다.
얻어진 가산결과는, 데이타버스(53)를 통하여, 레지스터 그룹(74)내에 기억된다.
상기 설명한 바와 같이, 상기 실시예는, 설계단계에서, 곱셈-합 연산장치(50)내에 파이프라인 레지스터(71)를 구비하고 있고, 또한 곱셈장치(70)와 상기 파이프라인 레지스터(71)를 제어하기 위해서, 제2와 제3명령 레지스터(42,43), 곱셈장치 제어신호 출력을 위한 제1명령 디코더(60)와, 데이타 셀렉터(72)와 ALU(73)을 제어하기 위해서, ALU 제어신호 출력을 위한 제2명령 디코더(61)를 구비하고 있다.
그러므로, 상기 곱셈-합 연산장치(50)가, 단일명령으로 구성된 곱셈-합 명령으로 곱셈-합 연산을 실행할 수 있다. 그 결과, 프로그래머가 곱셈-합 연산장치(50)의 제어를 위한 프로그램을 작성할때, 파이프라인 레지스터(71)의 동작들을 인식할 필요가 더 이상 없고, 따라서 프로그래머의 부담을 감소시킬 수 있다.
본 실시예에서는, 타이밍 신호 발생회로(62)가, 제1기계사이클 CK1의 개시시점과 동기된 제1타이밍 신호 T1과, 제2기계사이클 CK2의 개시시점과 동기된 즉, 제1타이밍 신호 T1으로부터, 기계사이클의 1/2 사이클 만큼 지연된 제2타이밍 신호 T2를 발생한다. 상기 제1타이밍 신호 T1에 의하여, 명령코드가 제2명령 레지스터(42)내에 로드되고, 상기 제2타이밍 신호 T2에 의하여, 기계사이클의 1/2사이클의 지연시간후에, 명령코드가 제3명령 레지스터(43)내에 로드된다.
상기 제어신호 셀렉터(63)가, 제1타이밍 신호 T1에 의하여, 제3명령 레지스터(43)의 명령코드와, 제2타이밍 신호 T2에 의하여, 제2명령 레지스터(42)의 명령코드를 선택하고, 이 명령코드를, 제2명령 디코더(61)를 통하여 데이타 셀렉터(72)와 ALU(73)에 출력한다.
그러므로, 상기 ALU(73)는 상기 1계기사이클 동안에 2회 동작될 수 있다. 그러므로, 상기 곱셈-합 연산장치(50)는 2기계사이클중 곱셈-합 연산과 가산을 연속적으로 실행할 수 있고, 피승수 C와 승수 D, 피가수 A 및 가수 B의 소망치를 선택함으로써 고속 산술연산들을 실현할 수 있다.
또한, 상기 곱셈-합 연산장치는, 곱셈-합 연산 또는 곱셈을 연속적으로 실행할 수 있다. 이 경우, 선행하는 곱셈-합 결과 또는 곱셈결과를 피승수 C 또는 승수 D로서 사용할 수 있다.
[제2실시예]
다음, 곱셈-합 연산장치의 제2실시예를 제6도를 참조하여 설명한다. 상기 실시예의 것들과 유사한 요소들은 유사한 참조번호가 부기돼 있고, 이 요소들의 설명은 부분 생략한다.
본 실시예의 곱셈-합 연산장치(80)는, 유일한 제3명령 디코더(82)를 구비하고 있고, 곱셈-합 연산장치(50)의 제3명령 레지스터(43)가 제어신호 래치(83)로써 치환돼 있다. 상기 타이밍 신호 발생회로(62)의 제2타이밍 신호 T1은 제2명령 레지스터(42)에 입력되는 한편, 제2타이밍 신호 T2는 제어신호 래치(83)에 입력된다.
제3명령 디코더(82)는, 제2명령 레지스터(42)내에 로드된 명령 코드를 디코드하고, 이 디코드된 신호를 곱셈장치(70), 파이프라인 레지스터(71), 제어신호 셀렉터(63) 및 제어신호 래치(83)에 출력한다. 상기 제어신호 래치(83)가, 제2타이밍 신호 T2에 의하여 명령 디코더(41)의 상기 디코드된 신호를 로드하고 이 로드된 디코드된 신호를 제어신호 셀렉터(63)에 출력한다.
상기 제3명령 디코더(82)는, 셀렉터(72)와 ALU(73)를 제어키 위한 제어신호 셀렉터(63)를 통해서 출력한다. 셀렉터(63)는, 제1과 제2기계클록(CK1,CK2)에 의해서 발생된, 제1과 제2타이밍 신호 T1, T2에 응답하여 동작한다.
본 실시예의 곱셈-합 연산장치는, 단일의 제3명령 디코더(82)만을 사용함으로써, 상기 실시예의 것과 유사한 효과를 제공하며, 회로 구성을 간소화한 것이다.
[제3실시예]
상기 곱셈-합 연산장치의 제3실시예를 제7도를 참조하여 설명한다. 본 실시예에서는, 상기 실시예들의 것들과 유사한 요소들은 유사한 참조번호가 부기돼 있고, 이 요소들의 설명은 일부 생략한다.
본 실시예의 곱셈-합 연산장치(90)는, 제4도에 도시된 곱셈-합 연산장치(50)내에 구비된 데이타 셀렉터(72)를 구비하고 있지 않다. 데이타버스(51)은, 제어장치(도시안함)로부터 제어신호에 의한 데이타 셀렉터로서 사용한다.
곱셈-합 연산장치(90)에서의 곱셈-합 연산후에 가산을 연속적으로 실행하는 동안 파이프라인 레지스터(71)내에 로드되는, 곱셈장치(70)의 곱셈결과는, 가수 B로서 데이타버스(51)를 통해서 ALU(73)에 입력된다.
피가수 A는, 레지스터 그룹(74)로부터 데이타버스(52)를 통해서 ALU(73)에 입력된다. ALU(73)는, 피가수 A와 가수 B를 가산하여, 곱셈-합 결과를 산출한다.
이 곱셈-합 결과는, 데이타버스(53)를 통하여 레지스터 그룹(74)내에 기억된다. 다음, 가수 B와 피가수 A는 데이타버스(51,52)을 통하여 ALU(73)에 입력되고, ALU(73)가 가산을 실행한다.
상기 곱셈-합 연산장치의(90)는 또한 상기 실시예들의 것과 유사한 효과를 제공하며, 또한, 단일의 데이타 셀렉터(72)를 사용함으로써 회로구성을 간소화시킨 것이다.
[제4실시예]
곱셈-합 연산장치의 보다 바람직한 제4실시예를, 제8도와 제9도를 참조하여 설명한다. 본 실시예에서, 상기 실시예들의 것들과 유사한 요소들은 또한 유사한 참조번호가 부기돼 있고, 이 요소들의 설명은 부분적으로 생략한다.
곱셈-합 연산장치(100)는, 제8도에 도시된 바와같이, 실행장치(13), 제2와 제3명령 레지스터(42,43), 제4와 제5명령 디코더(101,103), 상태 카운터(102), NAND회로(104,105), 곱셈장치 제어신호 출력회로(110), 및 제어신호 셀렉터로서 동작하는 ALU제어신호 출력회로(120)를 구비하고 있다.
본 실시예에서, 타이밍 신호 발생수단은, 제4명령 디코더(101), 상태 카운터(102) 및, NAND회로(104,105)로 구성돼 있다. 즉, 제4명령 디코더(101)는, 제2명령 레지스터(42)와, 또한 상태카운터(102)에 접속 돼 있다. 제5명령 디코더(103)는, 제3명령 레지스터(43)와, 또한 상태카운터(102)에 접속돼 있다.
상태카운터(102)가, 제1과 제2기계클록(CK1,CK2)을 입력한다. 디코더 개시신호 D0가 제4명령 디코더(101)로부터 입력되면, 상태카운터(102)가 리세트되고, 명령의 개시를 표시하기 위한 개시표시신호 ST1을 제5명령 디코더(103)에 출력한다. 상태카운터(102)가 일단 리세트되면, 제1과 제2기계클록펄스 CK1, CK2의 각 입력을 카운트한다.
상태카운터(102)는, 예를들어, 제1기계클록 CK1에 응답하여, 클록 CK1의 매 1사이클, 2사이클,…, n 사이클의 타이밍에 발생된 복수의 클록 CS1을 발생한다. 상기 상태카운터(102)는, 또한, 제2기계클록 CK2에 응답해서, 복수의 클록 CS2를 발생한다. 상태카운터(102)는, 상태신호 SC1, SC2를 제4명령 디코더(101)에 출력한다.
제2명령 레지스터(42)로부터 명령코드가 입력되면, 제4명령 디코더(102)가 명령코드를 디코드하고, 이 명령을 실행키 위해서 필요한 기계클록의 수를 판정하고, 디코드개시신호 D0를 상태카운터(102)에 출력한다.
제4명령 디코더(101)는 다중 비트(본 실시예에서는 m비트)제어신호 D1a, D2a를 곱셈장치 제어신호 출력회로(110)에 개별적으로 출력하고, 또한, 다중 비트(본 실시예에서 k비트) 제어신호 D1b, D2b를 ALU 제어신호 출력회로(120)에 출력한다. 상기 제어신호 D1a, D1b는, 상기 명령코드의 디코드결과와 상태카운터(102)의 상태신호 SC1간의 논리연산결과에 의하여, 제어신호 D1a, D1b가 발생한다. 제어신호 D2a, D2b는, 명령코드의 디코드결과와 상태카운터(102)의 상태신호 SC2간의 논리연산결과에 의하여 발생된다.
또한, 제4명령 디코더(101)가, 제어신호 SE1, SE2를 개별적으로 출력한다. 제어신호 SE1은, 상태신호 SC1와 명령코드에 대해 필요한 기계사이클 수에 의하여 발생되며, 상태신호 SC1이 명령코드의 기계사이클 수와 매치(match)되면, 제어신호 SE1이 H레벨로 된다. 제어신호 SE2는, 상태신호 SC2와 명령코드에 대해 필요한 기계사이클 수에 의하여 발생되며, 상태신호 SC1이 명령코드의 기계사이클 수와 매치될때, 제어신호 SE2가 H레벨이 된다.
NAND회로(104)는 제2기계클록 CK2와 또한 제어신호 SE1을 입력한다. NAND회로(104)는, 제2기계클록 CK2의 논리와 상기 제어신호 SE1에 의하여, 제9도에 도시된 제1타이밍 신호 T1을 발생한다. 상기 NAND회로(105)가 제1기계클록 CK1과, 또한 제어신호 SE2를 입력한다. 상기 NAND회로(105)가, 제1기계클록 CK1의 논리와 제어신호 SE2에 의하여 제9도에 도시된 제2타이밍 신호 T2를 발생한다.
그러므로, 제9도에 도시된 바와같이, 상기 명령코드가 1기계사이클의 명령인 경우, 제1과 제2기계클록 CK1, CK2의 각 펄스와 동기해서, 제1과 제2타이밍 신호 T1, T2에 펄스들이 발생된다. 또한, 상기 명령코드가 2기계사이클을 요구하는 경우, 제1과 제2기계클록 CK1, CK2의 매 두번째 펄스와 동기해서 제1과 제2타이밍 신호 T1, T2의 일부로서 펄스들이 발생된다. 예를들어 제1타이밍 신호 T1의 펄스들은 기계사이클 Tc3~Tc4중에 발생되고, 제2타이밍 신호 T2중의 펄스들은, 기계사이클 Tc2~Tc4중에 발생된다.
상기 상태카운터(102)로부터 개시표시신호 ST1이 입력되면, 제5명령 디코더(103)가, 제3명령 레지스터(43)로부터 입력된 명령코드를 다중 비트(본 실시예의 경우 k비트)제어신호 D3로 디코드하고, 다음 이것을 ALU제어신호 출력회로(120)에 출력한다.
곱셈장치 제어신호 출력회로(110)는, 복수쌍(본 실시예에서 m쌍)의 AND회로(111,112)와 복수의 OR회로(113)(본 실시예에서 m회로)를 구비하고 있다. 각 AND회로는, 상기 제어신호 D1a의 각 비트는 한 입력으로서, 그리고 제2기계클록 CK2를 다른 입력으로서 입력한다. 각 AND회로(112)는, 제어신호 D2a의 각 비트를 한 입력으로서, 그리고 제1기계클록 CK1을 다른 입력으로서 입력한다. 각 OR회로(113)는, 1쌍의 AND회로(111,112)의 출력들을 입력한다. 그러므로, 제1기계클록 CK1이 H레벨이 되면, 각 OR회로(113)가 제어신호 D2a의 각 비트는 곱셈장치 제어신호로서 출력한다. 또한, 각 OR회로(113)는, 제2기계클록 CK2가 H레벨이 될때, 제어신호 D1a의 각 비트신호를 곱셈장치 제어신호로서 출력한다.
상기 AKU제어신호 출력회로(120)는, 복수쌍(본 실시예에서 K쌍)의 AND회로(121,122)와, 복수의(본 실시예의 k회로) OR회로(123,124)를 구비하고 있다. 각 OR회로(124)는, 제어신호 D2b의 각 비트를 한 입력으로서, 그리고 제어신호 D3의 각 비트를 다른 입력으로서 입력한다. 각 AND회로(121)는 제어신호 D1b의 각 비트를 한 입력으로서, 그리고 제2기계클록 CK2를 다른 입력으로서 입력한다. 각 AND회로(122)는, OR회로(124)의 출력을 한 입력으로서, 그리고 제1기계클록 CK1을 다른 입력으로서 입력한다.
각 OR회로(123)는, AND회로쌍(121,122)의 출력들을 입력한다. 그러므로, 제1기계클록 CK1이 H레벨이 되면, 각 OR회로(112)가 제어신호 D2b 또는 D3의 각 비트신호를 ALU제어신호로서 출력한다. 또한, 각 OR회로(123)는, 제2기계클록 CK2가 H레벨이 될때, 제어신호 D1b의 각 비트신호를 ALU제어신호로서 출력한다.
제9도에 도시된 바와같이, 상기 곱셈-합 연산장치에서, 제1기계사이클 Tc1중 곱셈-합 명령 "C×D+A"가 제4명령 디코더(101)로 입력되면, 제4명령 디코더(101)가, 디코드 개시번호 D0를 상태카운터(102)에 출력한다. 제4명령 디코더(101)가, 1기계사이클중에 곱셈-합 명령의 실행을 판정한다.
상기 제4명령 디코더(101)는, 상태카운터(102)의 상태신호 SC1을 수신하여, 제어신호 SE1을 발생한다. NAND회로(104), 제2기계클록 CK2와 동기해서 제1타이밍 신호 T1을 발생한다. 다른 한편, 상태신호 SC2에 의하여, 제어신호 SE2로부터, 기계사이클 Tc1중에 제2타이밍 신호 T2의 펄스가 발생된다. 후속 기계사이클 Tc2중 제1타이밍 신호 T1의 펄스가 출력된다.
제2기계사이클 Tc2중, 가산명령 "A+B"가 입력되면, 상태카운터(102)가 디코드 개신신호 D0에 의하여 리세트되고, 제1타이밍 신호 T1과 동기해서, 가산명령이 제2명령 레지스터(42)에 로드된다. 상기 가산명령은 1기계사이클 명령이므로, 제2타이밍 신호 T2의 펄스가 기계사이클 Tc2중에 발생되고, 후속 기계사이클 Tc3중에 제1타이밍 신호 T1의 펄스가 출력된다.
그러므로, 2기계사이클 Tc1, Tc2중에, 곱셈-합 명령 "C×D+A", 가산명령 "A+B"가 연속적으로 실행된다.
제3기계사이클 Tc3중, 전송명령 "A←a, B←b"가 입력되면, 디코드 개시신호 D0에 의하여 상태카운터(102)가 리세트되고, 상기 전송명령은, 제1타이밍 신호 T1과 동기해서, 제2명령 레지스터(42)에 로드된다. 이 전송명령이 2기계사이클 명령이므로, 제4명령 디코더(101)가, 상기 2기계사이클중에 출력되는 상태신호 SC1, SC2를 수신하여, 제어신호 SEA, SE2를 발생함으로써, 제1과 제2타이밍 신호 T1, T2를 발생한다. 후속의 제4기계사이클 Tc4중, 제2타이밍 신호 T2의 펄스가 발생되고, 기계사이클 Tc5중에, 제1타이밍 신호 T1의 펄스가 출력된다. 또한, 기계사이클 Tc3의 명령이 상기 2기계사이클의 전송명령이므로, 기계사이클 Tc3와 Tc4중에 곱셈장치(70)와 ALU(73)가 동작하지 않는다.
상기 제5기계사이클 Tc5중에 가산명령 "A+B"가 입력되면, 상기 가산명령이, 제1타이밍 신호 T1과 동기해서 제2명령 레지스터(42)내에 로드된다.
상기 가산명령이 1기계사이클 명령이므로, 기계사이클 Tc5중에, 제2타이밍 신호 T2의 펄스가 발생되고, 후속 기계사이클 Tc6중에 제1타이밍 신호 T1의 펄스가 출력된다. 이 기계사이클 Tc5중에는, 제2명령 레지스터(42)에 로드된 명령이 가산명령이므로, 곱셈장치(70)가 동작하지 않는다.
이 기계사이클 Tc5중에는, ALU제어신호 출력회로(110)가, 제2기계클록 CK2에 의하여, 제4명령 디코더(101)로부터 가산명령의 제어신호를 선택하고, 가산을 실행한다.
본 실시예의 곱셈-합 연산장치(100)는, 상기 실시예들과 유사한 효과를 제공하며, 실행을 위해 복수의 기계사이클을 요하는 명령에 의하여, 제1과 제2타이밍 신호 T1, T2를 발생키 위한 간격을 매치시킨다. 그러므로, 본 장치(100)는, 프로그램 작성의 자유도를 증대한다.
[제5실시예]
본 발명에 의한 장치의 다른 실시예를 또한, 제10도와 제11도를 참조하여 설명한다.
제10도에 도시된 바와같이, 광 디스크 드라이버(130)는, 디지탈 신호 프로세서(DSP)(10), 구동모터(131), 렌즈 작동기/선형 모터(133)등으로 구성된 디스크 드라이브 및, 마이크로 콘트롤러(134)로 구성된 제어장치를 구비하고 있다.
구동모터(131)가, 회전위치의 아날로그값과, 구동축의 회전속도를 검출하고, 상기 아날로그값을 DSP(10)에 출력한다. 상기 구동모터(131)는, DSP(10)로부터 출력된 아날로그 제어신호에 의하여, 광 디스크를 회전시킨다.
상기 렌즈 작동기/선형 모터(133)가 상기 렌즈등의 위치와 같은 아날로그 신호들을 검출하고, 이 아날로그 신호들을 DSP(10)에 출력한다.
또한, 상기 렌즈작동기/선형 모터(133)가 또한, DSP(10)로부터 출력된 아날로그 제어신호에 의하여 렌즈의 위치를 조정한다.
제11도에 도시된 바와같이, DSP(11)가, 구동모터(131) 또는 렌즈작동기/선형 모터(133)로부터 입력된 아날로그 신호를 아날로그-디지탈 변환기(27)에서 디지탈 신호로 변환시킨다. 상기 곱셈-합 연산장치(50)가, 상기 디지탈 신호를 고속으로 처리하고, 그 처리결과를 디지탈-아날로그 변환기(28)로 출력한다. 이 디지탈-아날로그 변환기(28)가, 곱셈-합 연산장치(50)로부터 송출된 디지탈 신호를 아날로그 제어신호로 변환하여, 이 아날로그 신호를 구동모터(131), 또는 렌즈작동기/선형 모터(133)에 출력한다.
마이크로 콘트롤러(134)가 상기 DSP(10)와 상기 디지탈 신호들을 교환하고, 광디스크축(SCS1)의 인터페이스를 통하여 데이타를 교환한다. 상기 마이크로 콘트롤러(134)는, 에로보정 및 데이타 변조/복조등의 각종 제어를 실행한다.
본 실시예의 광디스크ㆍ드라이브 장치(130)는 곱셈-합 연산장치(50)를 구비한 DSP(10)를 사용하여, 구동모터(311) 또는 렌즈작동기/선형 모터(133)를 고속으로 제어한다.
[산업상 이용가능성]
상기 설명한 바와같이, 본 발명의 곱셈-합 연산장치는, 아날로그-디지탈 변환기로부터의 디지탈 출력신호의 처리를 위한, 디지탈 신호 프로세서와, 마이크로 콘트롤러의 구성에 적합하다. 또한, 디지탈 신호 프로세서, 마이크로 콘트롤러등을 사용하는 모뎀, 하드디스크 드라이브 및 광디스크 드라이브용으로 유용하다.

Claims (10)

  1. 피승수와 승수를 곱하여 곱셈치를 산출키 위한 곱셈장치(1)와, 상기 곱셈장치(1)에 접속되며 또한 상기 곱셈장치(1)의 출력 또는 가수중 어느 하나와 피가수를 가산하기 위한 가산장치(3)와 제1클록(CK1)과 동기된 제1타이밍 신호(T1)와 상기 제1클록(CK1)과 주파수는 동일하나 위상이 상이하며 제2클록(CK2)과 동기된 제2타이밍 신호(T2)를 발생키 위한 타이밍 신호 발생수단(4)과 ; 상기 타이밍 신호 발생수단(4)에 접속되며, 상기 제1타이밍 신호(T1)동기해서 명령을 로드하고, 상기 명령에 대응하는 제1제어신호를 출력하기 위한 제1명령래치(5)와 ; 상기 제1명령래치(5)에 접속되며, 상기 제1명령래치(5)로 로드된 명령을 제2타이밍 신호(T2)와 동기해서 로드하고, 상기 로드된 명령에 대응하는 제2제어신호를 출력하기 위한 제2명령래치(6) 및 상기 제1및 제2명령래치들(5,6)에 접속되며 상기 제1및 제2제어신호를 입력하고, 상기 제1타이밍 신호(T1)에 응답하여 상기 제2제어신호를 상기 가산장치(3)에 출력하고, 상기 제2타이밍 신호(T2)에 응답하여 상기 제1제어신호를 상기 가산기장치(3)에 출력하는 제어신호 셀렉터(7)를 더 구비한 것을 특징으로 하는 연산장치.
  2. 제1항에 있어서, 상기 제1타이밍 신호(T1)와 동기해서 발생되는 제3타이밍 신호(T3)와, 상기 제2타이밍 신호(T2)와 동기해서 발생되는 제4타이밍 신호(T4)에 의해서 상기 제어신호 셀렉터(7)가 제어되는 것이 특징인 연산장치.
  3. 제2항에 있어선 상기 제3타이밍 신호(T3)가 상기 제1타이밍 신호(T1)와 동일 타이밍에 출력되고, 상기 제4타이밍 신호(T4)가 상기 제2타이밍 신호(T2)와 동일 타이밍에 출력되는 것이 특징인 연산장치.
  4. 제2항에 있어서, 상기 연산장치의 제어를 위해서 제1과 제2클록들(CK1,CK2)이 기본클록으로 작성되고, 상기 제1클록(CK1)과 동일 타이밍으로 상기 제3타이밍 신호(T3)가 출력되고, 상기 제2클록(CK2)과 동일 타이밍으로 상기 제4타이밍 신호(T4)가 출력되는 것이 특징인 연산장치.
  5. 제1항에 있어서, 파이프라인 레지스터(2)를 더 포함하며, 상기 가산장치(3)가 상기 제2제어신호에 의하여 피가수와 상기 파이프라인 레지스터(2)의 출력을 가산하고, 또한 상기 제1제어신호에 의하여 피가수와 가수를 가산하는 것이 특징인 연산장치.
  6. 피승수와 승수를 곱해서 곱셈치를 산출하기 위한 곱셈장치(70)와 상기 곱셈장치(70)에 접속되며 상기 곱셈장치(70)에 의해 산출된 곱셈결과를 로드하기 위해 파이프라인 레지스터(71)와 ; 상기 파이프라인 레지스터(71)의 출력과 가수를 수신하여 상기 파이프라인 레지스터(71)의 출력과 가수중 어느 하나를 선택 및 출력하는 데이타 셀렉터(72)와 ; 피가수와 데이타 셀렉터(72)의 출력을 가산하는 가산장치(73)와 ; 제1클록(CK1)과 동기된 제1타이밍 신호(T1)와, 상기 제1클록(CK1)과 주파수는 동일하나 위상은 상이하며 상기 제2클록(CK2)과 동기된 제2타이밍 신호(T2)를 발생키 위한 타이밍 신호 발생회로(62)와 ; 상기 제1타이밍 신호(T1)와 동기된 명령을 로드하여 로드된 명령을 출력하기 위한 제2명령 레지스터(42)와 ; 상기 제2명령 레지스터(42)를 통해 송출되고, 상기 제2타이밍 신호(T2)와 동기된 명령을 로드하여 이 로드된 명령을 출력하는 제3명령 레지스터(43)와 ; 상기 제2명령 레지스터(42)를 통한 명령과 제3명령 레지스터(43)를 통한 명령을 입력하고, 상기 제1타이밍 신호(T1)에 응답하여 상기 제3명령 레지스터(43)를 통한 명령을 출력하고 상기 제2타이밍 신호(T2)에 응답하여 상기 제2명령 레지스터(42)를 통한 명령을 출력하기 위한 제어신호 셀렉터(63)와 ; 상기 제2명령 레지스터(42)를 통한 명령을 곱셈장치 제어신호로 디코드하여 디코드된 명령을 곱셈장치(70)와 파이프라인 레지스터(71)에 출력하는 제1명령 디코더(60)와 ; 상기 제어신호 셀렉터(63)로부터 산술논리장치로 출력된 명령을 ALU제어신호로 디코드하고, 디코드된 명령을 상기 데이타 셀렉터(72)와 상기 가산장치(73)로 출력하기 위한 제2명령 디코더(61)를 구비한 것을 특징으로 하는 연산장치.
  7. 피승수와 승수를 곱해서 곱셈치를 산출하기 위한 곱셈장치(70)와 상기 곱셈장치(70)에 산출된 곱셈결과를 로드하기 위해 파이프라인 레지스터(71)와 ; 상기 파이프라인 레지스터(71)의 출력과 가수를 입력하여 상기 파이프라인 레지스터(71)의 출력과 가수중 어느 하나를 선택 및 출력하는 데이타 셀렉터(72)와 ; 피가수와 데이타 셀렉터(72)의 출력을 가산하는 가산장치(73)와 ; 제1클록(CK1)과 동기된 제1타이밍 신호(T1)와, 상기 제1클록(CK1)과 주파수는 동일하나 위상은 상이하며 상기 제2클록(CK2)과 동기된 제2타이밍 신호(T2)를 발생키 위한 타이밍 신호 발생회로(62)와 ; 상기 제1타이밍 신호(T1)와 동기된 명령을 로드하여 로드된 명령을 출력하기 위한 제2명령 레지스터(42)와 ; 상기 제2명령 레지스터(42)를 통한 명령을 제어신호로 디코드하여 이 디코드된 명령을 상기 곱셈장치(70)와 파이프라인 레지스터(71)에 출력하는 명령 디코더(82)와 ; 상기 명령 디코더(82)로부터 출력되고 상기 제2타이밍 신호(T2)와 동기된 제어신호를 로드하고 이 로드된 제어신호를 출력하는 제어신호 래치(83) 및 상기 명령 디코더(82)로부터 출력된 제어신호와 상기 제어신호 래치(83)를 통한 제어신호를 입력하고, 상기 제1타이밍 신호(T1)에 응답하여 상기 제어신호 래치(83)를 통한 제어신호를 선택하고 상기 제2타이밍 신호(T2)에 응답하여 상기 명령 디코더로부터 출력된 제어신호를 선택하고, 상기 선택된 제어신호를 상기 디코더 셀렉터(72)와 가산장치(73)에 출력하는 제어신호 셀렉터(63)를 구비한 것을 특징으로 하는 연산장치.
  8. 피승수와 승수를 곱해서 곱셈치를 산출하여 곱셈결과를 출력하기 위한 곱셈장치(70)와 ; 상기 곱셈장치(70)에 의해 산출된 곱셈결과를 로드하기 위한 파이프라인 레지스터(71)와 ; 상기 파이프라인 레지스터(71)의 출력과 가수를 입력하여 상기 파이프라인 레지스터(71)의 출력과 가수중 어느 하나를 선택 및 출력하는 데이타 셀렉터(72)와 ; 피가수와 데이타 셀렉터(72)의 출력을 가산하는 가산장치(73)와 ; 제1클록(CK1)을 카운트함으로써 제1상태신호(SC1)를 출력하고 그리고 상기 제1클록(CK)과 주파수는 동일하나 위상이 다른 제2클록(CK2)을 카운트함으로써 제2상태신호(SC2)를 출력하는 상태카운터(102)와 ; 상기 곱셈장치(70)와 상기 상태카운터(102)에 접속되며 입력명령을 제어신호로 디코드하여 이 제어신호를 상기 곱셈장치(70)와 파이프라인 레지스터(71)에 출력하고 명령코드의 실행을 위해 필요한 사이클의 수가 상기 제1및 제2상태신호들(SC1,SC2)과 매치될때 제어신호들(SE1,SE2)을 출력하는 제1명령 디코더(101)와 ; 상기 제어신호들(SE1,SE2)과 제1, 제2클록(CK1,CK2)에 의하여 상기 제1클록(CK1)과 동기된 제1타이밍 신호(T1)를 발생하고, 상기 제2클록(CK2)과 동기된 제2타이밍 신호(T2)를 발생하는 논리회로와 ; 상기 제1명령 디코더(101)에 접속되며 제1타이밍 신호(T1)와 동기하여 명령을 로드하고 이 로드된 명령을 상기 제1명령 디코더(101)에 출력하는 제1명령 레지스터(42)와, 상기 제1명령 레지스터(42)에 접속되며 상기 제2타이밍 신호(T2)와 동기해서 명령을 로드하고, 이 로드된 명령을 출력하는 제2명령 레지스터(43)와 ; 상기 제2명령 레지스터(43)에 접속되며 명령을 산술논리장치에서 ALU제어신호로 디코드하고, 상기 제어신호를 출력하는 제2명령 디코더(103)와 ; 상기 제1명령 디코더(101)및 상기 제2명령 디코더(103)에 접속되며 상기 제1명령 디코더(101)로부터 출력된 제어신호와 상기 제2명령 디코더(103)로부터 출력된 제어신호를 입력하고 상기 제1클록(CK1)에 의하여 제2명령 디코더(103)로부터 제어신호를 선택하고, 상기 제2클록(CK2)에 의하여 제1명령 디코더(101)로부터 출력된 제어신호를 선택하고, 이 선택된 제어신호를 상기 데이타 셀렉터(72)와 상기 가산장치(73)에 출력하는 ALU제어신호 출력신호(120)를 구비한 것을 특징으로 하는 연산장치.
  9. 제8항에 있어서 상기 논리회로가 상기 제1 및 제2명령 디코더(101,103)중 하나로부터의 제어신호들(SE1,SE2)과 제1및 제2클록(CK1,CK2)중 어느 하나에 의하여 제1클록(CK1)과 동기된 제1타이밍 신호(T1)를 발생하는 제1NAND회로와 상기 제1 및 제2명령 디코더(101,103)중 하나로부터의 다른 제어신호(SE1,SE2)와 다른 제1 및 제2클록(CK1,CK2)에 의하여 제2클록신호(CK2)와 동기된 제2타이밍 신호(T2)를 발생키 위한 제2NAND회로로 구성된 것이 특징인 연산장치.
  10. 제9항에 있어서, 상기 제1NAND회로가 상기 제어신호(SE1)와 제2클록(CK2)에 의하여 상기 제1클록(CK1)과 동기된 제1타이밍 신호(T1)를 발생키 위한 NAND회로(104)이고 상기 제2NAND회로가 상기 제어신호(SE2)와 상기 제1클록(CK1)에 의하여 상기 제2클록(CK2)과 동기된 제2타이밍 신호(T2)를 발생키 위한 NAND회로(105)인 것이 특징인 연산장치.
KR1019930700639A 1991-07-01 1992-06-29 곱셈-합 연산장치 KR950015181B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP16057691 1991-07-01
JP91-160576 1991-07-01
PCT/JP1992/000819 WO1993001541A1 (en) 1991-07-01 1992-06-29 Apparatus for sum-of-product operation

Publications (2)

Publication Number Publication Date
KR930702716A KR930702716A (ko) 1993-09-09
KR950015181B1 true KR950015181B1 (ko) 1995-12-23

Family

ID=15717953

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930700639A KR950015181B1 (ko) 1991-07-01 1992-06-29 곱셈-합 연산장치

Country Status (5)

Country Link
EP (1) EP0547230B1 (ko)
JP (1) JP3241043B2 (ko)
KR (1) KR950015181B1 (ko)
DE (1) DE69230128T2 (ko)
WO (1) WO1993001541A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100412475B1 (ko) * 2000-08-01 2003-12-31 학교법인 인하학원 데이타 정렬회로 및 이를 이용한 자기타이밍 웨이브파이프라인 가산기

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248918A (ja) * 1994-03-10 1995-09-26 Matsushita Electric Ind Co Ltd マイクロプロセッサ
US5666300A (en) * 1994-12-22 1997-09-09 Motorola, Inc. Power reduction in a data processing system using pipeline registers and method therefor
JP3658072B2 (ja) * 1996-02-07 2005-06-08 株式会社ルネサステクノロジ データ処理装置およびデータ処理方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5958549A (ja) * 1982-09-29 1984-04-04 Hitachi Ltd マイクロプログラム制御方式
JP2583774B2 (ja) * 1987-12-25 1997-02-19 ジーイー横河メディカルシステム株式会社 高速数値演算装置
DE4001232C2 (de) * 1989-02-10 1996-05-30 Intel Corp Gleitkommaeinheit
JP2864597B2 (ja) * 1989-12-26 1999-03-03 ソニー株式会社 ディジタル演算回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100412475B1 (ko) * 2000-08-01 2003-12-31 학교법인 인하학원 데이타 정렬회로 및 이를 이용한 자기타이밍 웨이브파이프라인 가산기

Also Published As

Publication number Publication date
KR930702716A (ko) 1993-09-09
EP0547230B1 (en) 1999-10-13
JP3241043B2 (ja) 2001-12-25
EP0547230A4 (en) 1993-09-29
EP0547230A1 (en) 1993-06-23
DE69230128D1 (de) 1999-11-18
WO1993001541A1 (en) 1993-01-21
DE69230128T2 (de) 2000-02-03

Similar Documents

Publication Publication Date Title
Renaudin et al. ASPRO-216: a standard-cell QDI 16-bit RISC asynchronous microprocessor
US4228498A (en) Multibus processor for increasing execution speed using a pipeline effect
JPS6029402B2 (ja) クロツク制御信号発生装置
US4949291A (en) Apparatus and method for converting floating point data formats in a microprocessor
CA1145478A (en) High speed synchronous computer
JP2007519052A (ja) 命令制御式データ処理装置
JP5231800B2 (ja) 半導体集積回路装置および半導体集積回路装置のクロック制御方法
KR0176255B1 (ko) 디지탈 신호 프로세서
KR950015181B1 (ko) 곱셈-합 연산장치
JPH1097517A (ja) 並列乗算累算アレイ回路
JPH0514936B2 (ko)
US5390306A (en) Pipeline processing system and microprocessor using the system
US5682342A (en) High-speed counter
JP4142589B2 (ja) フィールド指向制御システムのためのモジュラー機能ブロック
US20020019671A1 (en) Asynchronous controller generation method
JP5169697B2 (ja) 動作合成装置、動作合成方法並びにプログラム
EP0356940B1 (en) Finite state machine
JPH09101889A (ja) パイプライン演算装置
JPH07248918A (ja) マイクロプロセッサ
JPH04289924A (ja) シーケンス制御装置
JPH0713763A (ja) マイクロコンピュータ
JPH03149622A (ja) データ処理装置
KR100345678B1 (ko) 설계의 변경이 용이한 제어 유닛
JPH04181409A (ja) パイプライン処理装置
JPH0561648A (ja) 部分乗数選択回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081202

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee