KR19990077799A - 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체 - Google Patents

마이크로프로세서, 연산 처리 실행 방법 및 기억 매체 Download PDF

Info

Publication number
KR19990077799A
KR19990077799A KR1019990008162A KR19990008162A KR19990077799A KR 19990077799 A KR19990077799 A KR 19990077799A KR 1019990008162 A KR1019990008162 A KR 1019990008162A KR 19990008162 A KR19990008162 A KR 19990008162A KR 19990077799 A KR19990077799 A KR 19990077799A
Authority
KR
South Korea
Prior art keywords
instruction
input
arithmetic processing
microprocessor
arithmetic
Prior art date
Application number
KR1019990008162A
Other languages
English (en)
Other versions
KR100309861B1 (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 KR19990077799A publication Critical patent/KR19990077799A/ko
Application granted granted Critical
Publication of KR100309861B1 publication Critical patent/KR100309861B1/ko

Links

Classifications

    • 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
    • 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/3017Runtime instruction translation, e.g. macros
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)

Abstract

본 발명은, 마이크로 코드를 확대하지 않고 연산 처리 명령(프로세스 명령)의 고도화, 복잡화에 대응하여, 연산 처리 명령에 따른 효율적인 연산 처리를 실행 가능하게 하고, 또한 하드웨어의 규모, 및 소비 전력이 감소 가능한 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체를 제공하는 것을 목적으로 한다.
적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행 가능한 마이크로프로세서에서, 입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단과, 상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단과, 상기 데이터 판독 수단에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행할 수 있는 연산기 리소스를 실장하는 연산 처리 실행 수단을 구비하는 구성을 포함하고 있다.

Description

마이크로프로세서, 연산 처리 실행 방법 및 기억 매체{MICROPROCESSOR, OPERATION PROCESS EXECUTION METHOD AND RECORDING MEDIUM}
본 발명은 마이크로 코드에 대응하는 연산 처리가 실행 가능한 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체에 관한 것이다.
최근, 마이크로프로세서는, 고속화 및 고집적화가 진행되고, 그에 따라 퍼스널 컴퓨터나 휴대 단말 등의 하드웨어 기술, 특히 퍼스널 컴퓨터 등의 정보 처리 기술도 급속하게 발달하고 있다.
그러나, 최근의 정보 처리 기술의 발달에 따라, 연산 처리 체계도 고도화, 복잡화하기 때문에, 캐쉬 등의 기억부의 밴드폭이 확대되고, 그 때마다 하드웨어, 소프트웨어를 다시 만들어내고 있다.
그래서, 연산 처리 체계가 고도화, 복잡화해도, 캐쉬 등의 기억부의 밴드폭을 확대시키지 않고, 개발 기간을 단축할 수 있는 마이크로프로세서가 요망되고 있다.
이하, 명령 코드인 마이크로 코드에 따라 소정의 연산 처리를 실행하는 종래의 대표적인 마이크로프로세서에 대해 설명한다.
도 24는, 종래의 VLIW(Very Long Instructin Word)형의 마이크로프로세서의 하드웨어 구성을 나타낸다.
도 24의 마이크로프로세서는, 대량의 연산 처리를 고속으로 실행할 필요성으로 인해, 연산 명령 판독부(311)와 연산 명령 해독부(312)와 데이터 판독부(313)와 연산 처리 실행부(314)와 연산 결과 기록부(315)를 구비한 복수의 파이프 라인으로 구성되고, 병렬로 연산 처리를 실행하는 파이프 라인 처리가 이용되고 있다. 또한, 종래의 마이크로프로세서는, 복수의 파이프 라인으로 구성되기 때문에, 복수의 파이프 라인으로 복잡한 연산 처리 명령을 실행하는 연산 처리 명령의 수평 전개를 행하고 있다.
예를 들면, 도 24에 도시된 바와 같이 파이프 라인(301, 302, 303, 304)의 4종류의 파이프 라인으로 구성되는 경우, 각 파이프 라인의 연산 결과는, 기억부(305)에 기록되고, 기억부(305)를 통해 다른 파이프 라인에 받아들여짐에 따라, 파이프 라인간의 데이터의 교환이 가능해진다. 또한, 각 파이프 라인으로부터의 기억부(305)에의 기록이 경합하는 경우에는, 기록 조정부(306)에서 경합을 회피하는 조정 처리를 실행한다.
상기한 바와 같이 구성되는 마이크로프로세서의 각 파이프 라인을 구성하는 각 부의 기능을 설명한다.
연산 명령 판독부(311)는, 연산 처리에 필요한 입출력 데이터의 전송 내용을 나타내는 정보와, 프로세스 명령(프로세스 명령은 하나의 파이프 라인으로 연산 처리되는 명령의 것을 뜻함)으로 구성되는 마이크로 코드를 판독하는 기능(페치)을 구비한다.
연산 명령 해독부(312)는, 연산 명령 판독부(311)에 의해 받아들여진 마이크로 코드를 해독하는 기능(디코드)을 갖는다.
데이터 판독부(313)는, 연산 명령 해독부(312)에 의해 해독된 마이크로 코드의 입출력 데이터의 전송 내용을 나타내는 정보에 기초하여, 기억부(305)로부터 연산 처리에 필요한 입력 데이터를 판독하는 기능(판독;reading)을 갖는다.
연산 처리 실행부(314)는, 데이터 판독부(313)에 의해 받아들여진 입력 데이터, 및 연산 명령 해독부(312)에서 해독된 프로세스 명령에 따라 소정의 연산을 실행하는 기능을 갖는다. 또한, 종래의 마이크로프로세서는, 연산 처리 실행부(314)에 단일의 연산기 리소스를 갖는다. 또한, 연산기 리소스를 하나 사용하는 기본적인 명령을 RISC형 명령이라고 한다.
연산 결과 기록부(315)는, 연산 처리 실행부(314)에서 실행된 연산 결과를 기억부(305)에 기록하는 기능(쓰기;writing)을 갖는다.
또한, 도 25는 CISC (Complex Instruction Set Computer)형 마이크로프로세서의 연산 처리의 타이밍도를 나타낸다.
CISC 형 마이크로프로세서는, 승제산, 스트링 연산 등의 고기능으로 연산 처리가 복잡한 프로세스 명령을 처리하는 것을 가능하게 하고 있다. 즉, CISC 형 마이크로프로세서는, 하나의 프로세스 명령에 복수의 RISC형 명령을 행하게 함에 따라, 전체의 실행 명령수를 감소시킬 수 있다.
예를 들면, 도 25에 도시된 바와 같이 명령 a, 및 명령 b의 프로세스 명령을 실행하는 경우의 CISC 형 마이크로프로세서의 처리를 설명한다. 또한, 도 25에서, Fa, Fb는 각각 프로세스 명령 a, 및 프로세스 명령 b의 페치 사이클의 시간을, D (1)로부터 D(4)는 프로세스 명령 a 내의 RISC형 명령의 디코드 시간을, D(5)로부터 D(8)은 프로세스 명령 b 내의 RISC형 명령의 디코드 시간을, R(1)로부터 R(4)은 프로세스 명령 a의 실행에 필요한 입력 데이터의 판독 시간을, R(5)로부터 R(8)은 프로세스 명령 b의 실행에 필요한 입력 데이터의 판독 시간을, E(1)로부터 E(4)는 프로세스 명령 a 내의 RISC형 명령의 실행 시간을, E (5)로부터 E(8)는 프로세스 명령 b 내의 RISC형 명령의 실행 시간을, W(1)로부터 W(4)는 프로세스 명령 a 내의 RISC형 명령의 연산 처리 결과의 기록 시간을, W(5)로부터 W(8)는 프로세스 명령 b 내의 RISC형 명령의 연산 처리 결과의 기록 시간을 나타낸다. 또한, 프로세스 명령 a, 및 프로세스 명령 b는, 예를 들면 각각 4개의 RISC형 명령으로 구성되는 것으로 한다.
CISC 형 마이크로프로세서는, 4사이클로 프로세스 명령 a를 페치하고(Fa),또한 프로세스 명령 a 내의 RISC형 명령마다 디코드(D(1) ∼ D(4)), 판독(R(1) ∼ R(4)), 명령 실행(E(1) ∼ E(4)), 기록(W(1) ∼ W(4))의 순으로 처리를 행하고, 도 25에 도시된 바와 같이 11사이클로 프로세스 명령 a의 처리를 종료한다.
또한, CISC 형 마이크로프로세서는, 프로세스 명령 a를 페치 후의 디코드(D(1) ∼ D(4)) 와 동시에 다음 프로세스 명령 b를 페치하고(Fb), 계속하여 프로세스 명령 b 내의 RISC형 명령마다 디코드(D(5) ∼ D(8)), 판독(R(5) ∼ R(8)), 명령 실행(E(5) ∼ E(8)), 기록(W(5) ∼ W(8))의 순으로 처리를 행하고, 도 25에 도시된 바와 같이 합계 15사이클로 프로세스 명령 a, 및 프로세스 명령 b의 처리를 종료한다.
이와 같이, CISC 형 마이크로프로세서의 처리는, 하나의 프로세스 명령에 복수의 RISC형 명령을 행하게 함에 따라 CPI(Cycle per Instruction)는 길어지지만, 프로그램 전체의 실행 명령수를 감소시킬 수 있다.
또한, 도 26은, RISC(Reduced Instruction Set Computer)형 마이크로프로세서의 연산 처리의 타이밍도를 나타낸다.
RISC형 마이크로프로세서는, 하드웨어가 저기능인 부분은 소프트웨어 기술로 보충하는 것을 고려하고 있고, 고수준 언어로 기술된 프로그램을 실행하는 경우에, 발생 빈도가 높은 기본적인 명령의 실행 사이클수를 단축시키고, 고속 처리를 가능하게 하고 있다. 즉, RISC형 마이크로프로세서는, 하나의 프로세스 명령의 내용을 RISC형 명령만으로 구성함으로써, 또는 미리 RISC형 명령으로 분할함으로써, CPI를 단축할 수가 있다.
예를 들면, 도 26에 도시된 바와 같이 RISC형 명령(1) ∼ (8)을 실행하는 경우의 RISC형 마이크로프로세서의 처리를 설명한다. 또한, 도 26에서 F(1)로부터 F(8)는 각각 RISC형 명령(1) ∼ (8)의 페치 사이클의 시간을 나타내고, D(1)로부터 D(8)는 각각 RISC형 명령(1) ∼ (8)의 디코드 시간을, R(1)로부터 R(8)은 RISC형 명령(1) ∼ (8)의 실행에 필요한 입력 데이터의 판독 시간을, E(1)로부터 E(8)는 RISC형 명령 (1) ∼ (8)의 실행 시간을, W(1)로부터 W(8)는 RISC형 명령(1) ∼ (8)의 연산 처리 결과의 기록 시간을 나타낸다.
RISC형 마이크로프로세서는, RISC형 명령(1)을 페치하고(F(1)), 또한 RISC형 명령(1)에 대해 디코드(D(1)), 판독(R(1)), 명령 실행(E(1)), 기록(W(1))의 순으로 처리를 행하고, 도 26에 도시된 바와 같이 5사이클로 RISC형 명령(1)의 처리를 종료한다.
또한, RISC형 마이크로프로세서는, RISC형 명령(1)을 페치 후의 디코드(D(1))와 동시에, 다음 RISC형 명령(1)을 페치하고(F(2)), 계속하여 RISC형 명령 (2)에 대해 디코드(D(2)), 판독(R(2)), 명령 실행(E(2)), 기록(W(2))의 순으로 처리를 행하고, 또한 RISC형 명령③ ∼ (8)에 대해 같은 처리를 행하고(F(3) ∼ F(8), D(3) ∼ D(8), R(3) ∼ R(8), E(3) ∼ E(8), W(3) ∼ W(8)), 도 26에 도시된 바와 같이 합계 12사이클로 RISC형 명령(1) ∼ (8)의 처리를 종료한다.
이와 같이, RISC형 마이크로프로세서의 처리는, 하나의 프로세스 명령의 내용을 RISC형 명령만으로 구성함으로써, CPI를 단축할 수가 있다.
그러나, 종래의 마이크로프로세서는, 명령 체계의 고도화, 복잡화에 의한 마이크로 코드의 확대, 및 연산 처리 파이프 라인의 병렬화에 따른 기억부(캐쉬 등)의 밴드폭이 확대한다고 하는 문제가 있다.
또한, 종래의 CISC 형 마이크로프로세서는, 프로세스 명령을 고기능화(복수의 RISC형 명령을 하나의 프로세스 명령에 복잡화)함으로써, 도 25에 도시한 바와 같이 프로세스 명령수는 감소시킬 수 있지만, CPI가 증가하고, 한편 RISC형 마이크로프로세서는, 프로세스 명령을 간단화(미리 하나의 프로세스 명령을 복수의 RISC형 명령으로 분할)함으로써, 도 26에 도시된 바와 같이 CPI는 단축할 수 있지만, 프로세스 명령수가 증가한다. 이와 같이 종래의 CISC 형 마이크로프로세서, 및 RISC형 마이크로프로세서에는 상반되는 문제가 있다.
또한, 종래의 마이크로프로세서는, 하나의 연산기 리소스의 연산 결과를 기억부(레지스터 등)에 기억시키고, 상기 기억부를 참조함으로써 다음 연산기 리소스에 데이터의 전달이 행해진다. 그 때문에, 종래의 마이크로프로세서는, 연산 결과의 확정 시점으로부터 데이터 참조까지의 사이에, 기억부에의 기록 시간을 확보하기 위해 최저라도 1사이클 이상의 간격을 필요로 하고, 최소한의 사이클수로 연산 처리를 실행할 수 없다.
또한, 종래의 마이크로프로세서는, 하나의 프로세스 명령 내에 복수의 RISC형 명령을 포함하고, 한쪽의 RISC형 명령의 연산 결과를 다른 RISC형 명령이 입력으로 하고 있지 않은 경우, RISC형 명령 입력순으로 연산 결과를 기억부에 기록하기 때문에, 즉 앞의 RISC형 명령의 연산 처리가 종료할 때까지 나중의 RISC형 명령이 유지되어, 그 동안 파이프 라인 스톨이 발생하고, 최소한의 사이클수로 연산 처리를 실행할 수 없다.
또한, 종래의 마이크로프로세서는, 각 파이프 라인으로부터의 기억부에의 기록이 경합하는 경우, 기록 조정부에서 경합을 회피하는 조정 처리를 실행하지만, 각 파이프 라인의 병렬화에 따른, 조정 처리의 제어가 복잡화하는 문제가 있다.
또한, 종래의 마이크로프로세서는, 기억부로부터 입력 데이터를 판독하여 소정의 연산 처리를 실행하고 있지만, 상기 입력 데이터는 유지되지 않기 때문에, 필요에 따라 동일한 입력 데이터를 재 판독할 필요가 있고, 효율적인 연산 처리를 실행할 수 없다. 또한 종래의 마이크로프로세서는, 재 판독한 입력 데이터가 다른 연산 처리에 따라 변화한다고 하는 문제가 있다.
또한, 종래의 마이크로프로세서는, 복수의 파이프 라인이 병렬로 배치하도록 구성되지만, 그에 따라 하드웨어의 규모가 증대하고, 더욱이 소비 전력이 증대한다고 하는 문제가 있다.
본 발명은, 마이크로 코드를 확대하지 않고 연산 처리 명령(프로세스 명령)의 고도화, 복잡화에 대응하여, 연산 처리 명령에 따른 효율적인 연산 처리를 실행 가능하게 하고, 추가로 하드웨어의 규모, 및 소비 전력을 감소 가능한 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체를 제공한다.
그래서, 상기 과제를 해결하기 위해, 본 발명의 마이크로프로세서는, 청구항 1에 기재된 바와 같이 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행할 수 있는 마이크로프로세서에서, 입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단(후술하는 실시예의 연산 명령 해독부(3)에 상당)과, 상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단(후술된 실시예의 데이터 취특부(4)에 상당)과, 상기 데이터 판독 수단에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리가 실행 가능한 연산기 리소스(후술하는 실시예의 연산기 리소스 36, 37, 38, 42, 43, 44, 45, 63, 64, 65, 77, 78, 79, 80에 상당)를 실장하는 연산 처리 실행 수단(후술하는 실시예의 연산 처리 실행부(7)에 상당)을 구비한 구성으로 한다.
상기한 바와 같이 구성함으로써, 본 발명의 마이크로프로세서는, 마이크로 코드를 구성하는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보에 기초하여, 프로세스 명령을 판독하는 것이 가능하기 때문에, 상기 마이크로 코드를 확대하지 않고 고도화, 복잡화한 연산 처리 명령에 대응 가능하게 된다.
또한, 본 발명의 마이크로프로세서로 연산 처리를 실행하기 위한 마이크로 코드는, 상기 프로세스 명령의 저장 장소를 나타내는 어드레스 정보를 가짐으로써 연산 처리가 복잡한 경우라도, 마이크로 코드를 최소한으로 억제하여, 고정 길이로 한다. 그 때문에, 본 발명의 마이크로프로세서는, 마이크로 코드의 소형화를 실현함으로써, 명령 캐쉬 등의 기억부를 소형화할 수 있다.
또한, 청구항 1의 마이크로프로세서에서 연산 처리를 실행하기 위한 마이크로 코드는, 청구항 2에 기재된 바와 같이 상기 프로세스 명령의 저장 장소를 나타내는 어드레스 정보를 대신하여, 직접 적어도 하나의 RISC형 명령을 실장 가능하게 하는 것을 특징으로 한다.
예를 들면, 프로세스 명령이 기본적인 명령(RISC형 명령)인 경우, 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로부터 프로세스 명령을 해독할수록, 명령이 복잡하지 않기 때문에, 즉 마이크로 코드의 비트폭, 및 워드폭이 확대되지 않기 때문에, 직접 프로세스 명령으로서, RISC형 명령을 실장하는 것도 가능해진다.
따라서, 본 발명의 마이크로프로세서에서 실행되는 RISC형 명령은, 상기 어드레스 정보로부터 프로세스 명령을 판독하지 않고 끝나기 때문에, 보다 효율적으로 연산 처리를 실행할 수 있다.
또한, 청구항 1 또는 2 중 어느 한항에 기재된 마이크로프로세서는, 청구항 3에 기재된 바와 같이 프로세스 명령을 임의로 구축 가능한 프로세스 명령 기억 수단(후술하는 실시예의 LUT6에 상당)과, 상기 연산 처리 실행 수단의 연산 결과, 및 임의로 설정 가능한 입력 데이터를 기억하는 입출력 데이터 기억 수단(후술하는 실시예의 기억부(5)에 상당)을 구비하고, 상기 데이터 판독 수단은 상기 프로세스 명령의 저장 장소를 나타내는 어드레스 정보에 기초하여, 상기 프로세스 명령 기억 수단을 참조함으로써, 대응하는 프로세스 명령을 판독하고, 또한 상기 입출력 데이터 기억 수단으로부터 상기 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터를 판독하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 상기 어드레스 정보에 대응하는 프로세스 명령 기억 수단으로부터 소정의 프로세스 명령을 판독하고, 상기 프로세스 명령에 따라 연산 처리를 실행한다. 또한, 프로세스 명령 기억 수단은, 재기록 가능한 RAM으로 구성함으로써, 사용자 임의로 복잡한 프로세스 명령이 지정 가능해져, 앞으로 더욱 고도화되고, 복잡화된 연산 처리에도 용이하게 대응 가능하게 된다.
또한 프로세스 명령 기억 수단을 구비함으로써, 사용자 임의로 복잡한 프로세스 명령을 지정할 수 있기 때문에, 본 발명의 마이크로프로세서는, 개판(改版)이 생긴 경우라도, 복잡한 제어 프로그램을 변경하지 않고, 프로세스 명령 기억 수단의 변경으로 용이하게 대처할 수가 있다. 동시에 어플리케이션 프로그램의 적합성도 보증하기 쉽다.
또한, 본 발명의 마이크로프로세서를 구성하는 연산 처리 실행 수단은, 청구항 4에 기재된 바와 같이 상기 연산 처리 실행 수단은, 상기 프로세스 명령 기억 수단 내의 프로세스 명령을 변경함으로써, 임의 접속 가능한 복수의 연산기 리소스(후술하는 실시예의 연산기 리소스(36, 37, 38, 42, 43, 44, 45, 63, 64, 65, 77, 78, 79, 80)에 상당함)를 구비하고, 하나의 연산기 리소스의 연산 결과를 직접, 즉 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 한다.
또한, 본 발명의 마이크로프로세서를 구성하는 연산 처리 실행 수단은, 청구항 5에 기재된 바와 같이 상기 연산기 리소스를 필요로 하지 않은 처리에 대해, 상기 입력 데이터를 전파하는 스루 패스(후술하는 실시예의 도 11의 스루 패스에 상당함)를 구비하고, 스루 패스의 출력 결과를 직접, 즉 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 프로세스 명령의 내용에 따라 연산 처리 실행 수단 내의 연산기 리소스의 사용순이나 사용 개수를 사용자 임의로 변경할 수 있고, 또한 연산기 리소스를 사용하지 않은 경우에는 스루 패스에 의해 입출력 데이터를 전파함으로써, 효율적으로 연산 처리를 행하고 있다.
또한, 청구항 4 또는 5에 기재된 마이크로프로세서를 구성하는 연산 처리 실행 수단은, 청구항 6에 기재된 바와 같이 하나의 연산기 리소스의 연산 결과를 직접, 즉 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 경우, 상기 연산 처리 실행 수단은, 프로세스 명령에 대응하는 최종적인 연산기 리소스의 연산 처리 결과만 출력하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 하나의 연산기 리소스의 연산 결과를 직접 다음 연산기 리소스의 입력으로서 사용하는 것이 가능하기 때문에, 입출력 데이터 기억 수단과의 연산 처리 결과의 전달이 감소하고, 더욱이 입출력 데이터 기억 수단에의 액세스에서의 경합이 발생하지 않는다.
또한, 청구항 1 내지 6 중 어느 한항에 기재된 마이크로프로세서를 구성하는 연산 처리 실행 수단은, 청구항 7에 기재된 바와 같이 상기 프로세스 명령에 실장되는 RISC형 명령을 병렬로 실행하고, 연산 처리 실행 순서에 관계없이, 연산 처리 결과를 연산 처리 종료순으로 출력하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 연산 처리 실행 수단에의 연산 처리 명령 입력순으로 병렬로 연산 처리를 실행하고(이후, 연산 처리 명령 입력순의 연산 처리의 실행을 in-order 실행이라고 함), 또한 연산 처리 결과를 연산 처리 종료순으로 상기 입출력 데이터 기억 수단에 기록한다(이후, 연산 처리 결과의 연산 처리 종료순의 기록을 out-of-order 출력이라고 함).
한편, 종래의 마이크로프로세서는, 본 발명과 마찬가지로 in-order 실행으로 하지만, 연산 처리 종료와는 관계없이 연산 처리 명령 입력순으로 연산 처리 결과를 상기 입출력 데이터 기억 수단에 기록한다(이후, 연산 처리 결과의 연산 처리 명령 입력순의 기록을 in-order 출력이라고 함).
따라서, 본 발명의 마이크로프로세서는, 먼저 종료한 연산 처리를 기다리게하는 일 없이, 연산 처리 결과를 연산 처리 종료순으로 상기 입출력 데이터 기억 수단에 기록하기 때문에, 연산 처리 명령의 추월이 가능해지고, 그에 따라 최소한의 사이클로 연산 처리가 실행 가능해진다.
또한, 청구항 1 내지 7중 어느 한항에 기재된 마이크로프로세서를 구성하는 연산 처리 실행 수단 내의 각 연산기 리소스는, 청구항 8에 기재된 바와 같이 상기 연산 처리 실행 수단 내의 각 연산기 리소스는 연산 처리 결과를 독립적으로 출력하는 멀티포트 구성(후술된 실시예의 기록부(46, 47, 48, 49)에 상당)으로 하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 각 연산기 리소스의 연산 처리 결과의 기록의 경합을 피할 수 있다.
또한, 청구항 5 내지 7 중 어느 한항에 기재된 마이크로프로세서를 구성하는 연산 처리 실행 수단은, 청구항 9에 기재된 바와 같이 동일한 기능을 갖는 연산기 리소스를 복수개 구비하고, 또한 하나의 프로세스 명령 내에 복수의 RISC형 명령을 포함하고, 상기 RISC형 명령의 병렬 실행시에 연산기 리소스가 경합하는 경우, 동일한 기능을 갖는 다른 연산기 리소스를 사용하여 경합 회피 처리를 실행하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 동일 파이프 라인 상에 배치한 동일한 기능을 갖는 복수의 연산기 리소스를 분류함에 따라 연산 처리 명령의 경합 회피 처리를 실행 가능하게 한다.
또한, 청구항 3 내지 9중 어느 한항에 기재된 마이크로프로세서는, 청구항 10에 기재된 바와 같이 상기 연산 처리 실행 수단에서 실행되는 프로세스 명령에 대응하는 최종적인 연산기 리소스의 연산 처리 결과를, 상기 입출력 데이터 기억 수단에 기억함과 동시에, 상기 연산 처리 결과를 직접, 상기 데이터 판독 수단에 통지하는 패스(후술하는 실시예의 기억부(51)에 상당)와, 상기 연산 처리 결과를 래치 후, 상기 데이터 판독 수단에 통지하는 패스(후술하는 실시예의 기억부(51)에 상당함)를 구비하고, 상기 데이터 판독 수단은 다음 프로세스 명령으로 상기 연산 처리 결과를 사용하는 경우, 상기 입출력 데이터 기억 수단으로부터가 아니라, 어느 한 패스로부터의 연산 처리 결과를 판독하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 연산 처리 결과를 직접, 상기 데이터 판독 수단에 통지하는 패스와, 상기 연산 처리 결과를 래치 후, 상기 데이터 판독 수단에 통지하는 패스를 갖고 있기 때문에, 연산 처리 결과의 전달에 입출력 데이터 기억 수단을 통할 필요가 없어지고, 최소한의 사이클 수로 연산 처리를 실행할 수 있다.
또한, 청구항1 내지 10 중 어느 한항에 기재된 마이크로프로세서는, 청구항 11에 기재된 바와 같이 상기 데이터 판독 수단에서 판독된 입력 데이터를 래치 후, 상기 연산 처리 실행 수단 내의 연산기 리소스에 통지하는 패스(후술하는 실시예의 래치(61, 71, 72, 73, 74)에 상당)를 구비하고, 상기 연산 처리 실행 수단은 상기 입력 데이터를 재차 사용하는 경우, 상기 패스로부터의 상기 입력 데이터를 판독하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 레지스터, 캐쉬, 메모리 등의 입출력 데이터 기억 수단으로부터의 입력 데이터를 래치하기 때문에, 재차 입력할 필요가 없어지고, 연산기 리소스에 의한 연산 도중에 재차 이용 가능하다. 따라서, 본 발명의 마이크로프로세서는, 다른 연산 처리에 따라 입력 데이터가 재기록되고 있는 경우라도, 재기록되기 전의 입력 데이터가 사용 가능해진다.
또한, 청구항 11에 기재된 마이크로프로세서는, 청구항 12에 기재된 바와 같이, 또한 상기 데이터 판독 수단에서 판독된 입력 데이터를 직접, 상기 연산 처리 실행 수단 내의 연산기 리소스에 통지하는 패스(후술하는 실시예의 도 21 및 도 22의 스루 패스에 상당함)를 구비하고, 상기 래치 후에 연산기 리소스에 통지하는 패스와, 상기 직접 연산기 리소스에 통지하는 패스 중, 어느 하나로부터의 입력 데이터를 사용하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 입출력 데이터 기억 수단으로부터의 입출력 데이터의 래치에 필요한 연산 처리 딜레이를 최소한으로 억제할 수 있다.
또한, 청구항 11 또는 12에 기재된 마이크로프로세서에서 래치된 입력 데이터는, 청구항 13에 기재된 바와 같이, 상기 연산 처리 실행 수단 내의 모든 연산기 리소스로써 사용할 수가 있다.
또한, 청구항 3 내지 13중 어느 한항에 기재된 마이크로프로세서를 구성하는 상기 데이터 판독부는, 청구항 14에 기재된 바와 같이 입출력 데이터 기억부로부터의 입력 포트를 멀티포트 구성으로 하고, 각 연산기 리소스에의 입력 데이터를 동시에 공급하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는 입력 데이터의 입력 포트를 멀티포트 구성으로 하고, 필요한 입력 데이터를 동시에 입력 가능하게 하기 때문에, 입력 데이터를 반복 입출력 데이터 기억 수단으로부터 추출할 필요가 없어, 연산 처리에 필요한 시간을 단축할 수가 있다.
또한, 청구항1 내지 14 중 어느 한항에 기재된 마이크로프로세서는, 청구항 15에 기재된 바와 같이 상기 마이크로 코드에 대응하는 연산 처리를 실행 가능한 복수의 파이프 라인(후술하는 실시예의 파이프 라인(11, 11a, 11n)에 상당함)을 구비하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 상기 마이크로 코드에 대응하는 연산 처리를 실행 가능한 복수의 파이프 라인을 구비함으로써, 보다 효율적인 연산 처리가 실행 가능해진다.
또한, 본 발명의 마이크로프로세서는, 청구항 16에 기재된 바와 같이 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행 가능한 마이크로프로세서에서, 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행 가능하게 하고, 또한 프로세스 명령을 변경함으로써 임의 접속 가능한 복수의 연산기 리소스(후술하는 실시예의 연산기 리소스(36, 37, 38, 42, 43, 44, 45, 63, 64, 65, 77, 78, 79, 80)에 상당함)를 구비하고, 하나의 연산기 리소스의 연산 결과를 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 한다.
또한, 본 발명의 마이크로프로세서는, 청구항 17에 기재된 바와 같이 상기 연산기 리소스를 필요로 하지 않은 처리에 대해, 상기 입력 데이터를 전파하는 스루 패스(후술된 실시예의 도 11의 스루 패스에 상당함)를 구비하고, 스루 패스의 출력 결과를 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 프로세스 명령의 내용에 따라 연산 처리 실행 수단 내의 연산기 리소스의 사용 순이나 사용 갯수를 사용자 임의로 변경할 수 있고, 또한 연산기 리소스를 사용하지 않은 경우에는 스루 패스에 의해 입출력 데이터를 전파함으로써, 효율적으로 연산 처리를 행하고 있다.
또한, 청구항 16 또는 17에 기재된 마이크로프로세서는, 청구항 18에 기재된 바와 같이 하나의 연산기 리소스의 연산 결과를 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 경우,
프로세스 명령에 대응하는 최종적인 연산기 리소스의 연산 처리 결과만 출력하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 하나의 연산기 리소스의 연산 결과를 직접 다음 연산기 리소스의 입력으로서 사용하는 것이 가능하기 때문에, 입출력 데이터 기억 수단과의 연산 처리 결과의 전달이 감소하고, 또한 입출력 데이터 기억 수단에의 액세스에서의 경합이 발생하지 않는다.
또한, 본 발명의 마이크로프로세서는, 청구항 19에 기재된 바와 같이 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행 가능한 마이크로프로세서에서, 상기 프로세스 명령에 실장되는 RISC형 명령을 병렬로 실행하고, 연산 처리 실행순에 관계없이, 연산 처리 결과를 연산 처리 종료순으로 출력하는 것을 특징으로 한다.
본 발명의 마이크로프로세서는, 연산 처리 실행 수단에의 연산 처리 명령 입력순으로 병렬로 연산 처리를 실행하고(이후, 연산 처리 명령 입력순의 연산 처리의 실행을 in-order 실행이라고 함), 또한 연산 처리 결과를 연산 처리 종료순으로 상기 입출력 데이터 기억 수단에 기록한다(이후, 연산 처리 결과의 연산 처리 종료순의 기록을 out-of-order 출력이라고 함).
한편, 종래의 마이크로프로세서는, 본 발명과 같이 in-order 실행으로 하지만, 연산 처리 종료와는 관계없이, 연산 처리 명령 입력순으로 연산 처리 결과를 상기 입출력 데이터 기억 수단에 기록한다(이후, 연산 처리 결과의 연산 처리 명령 입력순의 기록을 in-order 출력이라고 함).
따라서, 본 발명의 마이크로프로세서는, 먼저 종료한 연산 처리를 갖게 하지 않고, 연산 처리 결과를 연산 처리 종료순으로 상기 입출력 데이터 기억 수단에 기록하기 때문에, 연산 처리 명령의 추월이 가능해지고, 그에 따라 최소한의 사이클로 연산 처리가 실행 가능해진다.
또한, 본 발명의 마이크로프로세서는, 청구항 20에 기재된 바와 같이 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행 가능한 마이크로프로세서에 있어서,
입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행하는 복수의 연산기 리소스를 구비하고,
각 연산기 리소스는, 연산 처리 결과를 독립적으로 출력하는 멀티 포트 구성으로 하는 것을 특징으로 한다.
따라서, 본 발명의 마이크로프로세서는, 각 연산기 리소스의 연산 처리 결과의 기록의 경합이 회피 가능해진다.
또한, 본 발명의 마이크로프로세서의 연산 처리 실행 방법은, 청구항 21에 기재된 바와 같이 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행 가능한 마이크로프로세서의 연산 처리 실행 방법에 있어서, 입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 스텝(후술된 실시예의 스텝 1, 스텝 2에 상당함)과, 상기 명령 해독 스텝에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 스텝(후술된 실시예의 스텝 3, 스텝 4에 상당함)과, 상기 데이터 판독 스텝에서 받아들여진 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행하는 연산 처리 실행 스텝(후술된 실시예의 스텝 5에 상당함)을 갖는 것을 특징으로 한다.
상기한 바와 같은 연산 처리 실행 방법을 실행함으로써, 본 발명의 마이크로프로세서는, 마이크로 코드를 구성하는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보에 대응하는 프로세스 명령을 판독하는 것이 가능하기 때문에, 상기 마이크로 코드를 확대시키지 않고 고도화, 복잡화한 연산 처리 명령에 대응 가능해진다.
본 발명의 마이크로프로세서는, 청구항 22에 기재된 바와 같이 마이크로 코드를 해독하는 명령 해독 수단과, 상기 명령 해독 수단보다도 많고, 또한 병렬로 실행 가능한 복수의 연산기 리소스로 이루어지는 연산 처리 실행 수단을 구비하고, 상기 연산 처리 실행 수단은 상기 연산기 리소스의 연산 순서를 변경 가능하게 설치한 구성으로 해도 좋다.
이 경우, 청구항 23에 기재된 바와 같이 상기 복수의 연산기 리소스는, 다른 연산기로 이루어지는 구성으로 해도 된다.
이와 같이, 연산기 리소스의 연산 순서를 변경 가능하게 함으로써, 다양한 연산 명령의 실현이 가능해지고, 그 기능을 병렬 실행 가능한 연산 리소스를 구비한 프로세서에 이용함으로써, 파이프 라인 처리의 실현 또는 병렬 연산 처리의 실현이라고 한, DSP 수준의 고속 연산이나 멀티 프로세서 정도의 고속 연산이 가능해진다. 또한, 각각의 연산 리소스를 다르게 함으로써, RISC 프로세서 정도의 연산 유닛량이라는 최소의 연산 유닛으로 병렬 또는 파이프 라인 처리가 가능해진다.
또한, 본 발명의 마이크로프로세서는, 청구항 24에 기재된 바와 같이 기본 명령 코드와 확장 명령 코드의 저장 장소를 나타내는 연산 ID로 이루어지는 마이크로 코드를 해독하는 명령 해독 수단과, 상기 명령 해독 수단에서 해독된 연산 명령에 의해 연산기 리소스를 선택하여 연산 처리하는 연산 처리 실행 수단을 구비하고, 상기 기본 명령 코드에 의해 최초의 연산기 리소스를 선택하고, 상기 확장 명령 코드에 의해 다음 연산기 리소스를 선택하고, 이에 따라 파이프 라인 연산하는 구성으로 해도 된다.
이와 같이 마이크로 코드를 설정함으로써, 복잡한 연산을 하는(CISK 수준의) 마이크로 코드를 해독하는데 충분한 시간적인 여유를 가짐과 동시에, 복잡한 연산을 하는 마이크로 코드의 최초의 연산이나 RISC 명령과 동일한 간단한 연산의 쌍방이, RISC 프로세서와 마찬가지로 바로 연산으로 옮길 수 있다는 작용 효과를 갖는다.
본 발명의 마이크로프로세서는, 청구항 25에 기재된 바와 같이 시계열로 복수의 연산기 리소스를 사용하는 마이크로 코드를 해독 가능하고, 상기 연산기 리소스간의 입출력을 내부의 빈 리소스에 따라 자동적으로 할당하는 기능을 갖는 마이크로프로세서로서, 상기 기능에 따라 상기 연산기 리소스 사이의 입출력의 지정이 마이크로 코드 내에 불필요한 구성으로 해도 된다.
이 경우, 청구항 26에 기재된 바와 같이, 상기 연산기 리소스의 출력을 다음 연산에 이용하는 연산기 리소스의 입력에 직접 접속함으로써, 상기 연산기 리소스사이의 연산 결과의 입출력에 입출력 수단을 사용하지 않은 구성으로 해도 좋다.
즉, 입출력 데이터 기억 수단에 일단 기록하지 않음으로써, 마이크로 코드 상에 그 입출력 데이터 기억 수단의 유니크 번호를 매립할 필요가 없어 마이크로 코드의 단축화를 도모해도 좋다.
여기서, 유니크 번호란, 입력 데이터, 및 출력 데이터의 저장 장소를 나타내는 어드레스 정보를 가리킨다. 후술하는 도 5의 마이크로 코드 구성의 비교에서 처럼, 동일한 연산을 할 때, VLIW에서는 프로세스 명령 내의 각 연산마다 입출력 데이터의 저장 장소를 나타내는 어드레스 정보를 마이크로 코드 상에 매립할 필요가 있다. 이에 대해, 본 발명에서는 프로세스 명령 내의 연산 도중에 입출력 데이터 기억 수단에 일시적으로 기억하지 않기 때문에, 연산 도중의 입출력 데이터의 저장 장소를 나타내는 어드레스 정보를 마이크로 코드에 매립할 필요가 없고, 즉 프로세스 명령 단위에서의 입출력 데이터를 나타내는 어드레스 정보만을 마이크로 코드에 매립할 수 있다.
본 발명의 마이크로프로세서 아키텍쳐는, 청구항 27에 기재된 바와 같이 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행 가능한 마이크로프로세서에 있어서, 입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단과, 상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단과, 상기 데이터 판독 수단에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행 가능한 연산기 리소스를 실장하는 연산 처리 실행 수단을 구비하도록 구성해도 좋다.
상기한 바와 같이 구성함으로써, 본 발명의 마이크로프로세서 아키텍쳐는, 마이크로 코드를 구성하는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보에 기초하여, 프로세스 명령을 판독하는 것이 가능하기 때문에, 상기 마이크로 코드를 확대하지 않고 고도화, 복잡화한 연산 처리 명령에 대응 가능해진다.
본 발명의 기억 매체는, 청구항 28에 기재된 바와 같이 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행 가능한 마이크로프로세서에 관한 하드웨어 기술 언어(記述言語)로 기술된 회로 정보를 저장하는 컴퓨터 판독 가능한 기억 매체로서, 입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단에 관한 회로 정보를 저장하는 제1 데이터 영역과, 상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단에 관한 회로 정보를 저장하는 제2 데이터 영역과, 상기 데이터 판독 수단에 의해 받아들여진 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행 가능한 연산기 리소스를 실장하는 연산 처리 실행 수단에 관한 회로 정보를 저장하는 제3 데이터 영역을 갖도록 구성해도 된다.
상기한 바와 같이 기억 매체를 구성함으로써, 컴퓨터 시스템은 회로 정보에 기초하여 마이크로 코드를 구성하는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보에 기초하여, 프로세스 명령을 판독하는 것이 가능하고, 상기 마이크로 코드를 확대시키지 않고 고도화, 복잡화한 연산 처리 명령에 대응 가능한 마이크로프로세서를 설계할 수가 있다.
도 1은 본 발명의 마이크로프로세서의 구성을 나타내는 도면.
도 2는 마이크로 코드의 구성을 나타내는 도면.
도 3은 본 발명의 마이크로프로세서의 연산 처리 실행 방법을 나타내는 도면.
도 4는 본 발명의 마이크로프로세서의 연산 처리를 나타내는 도면.
도 5는 마이크로 코드 구성의 비교를 나타내는 도면.
도 6은 CPI의 단축과 명령수의 감소를 나타내는 도면.
도 7은 RISC형의 명령을 실행할 수 있는 연산 처리 실행부를 나타내는 도면.
도 8은 도 7의 연산 처리의 타이밍도.
도 9는 MAC 구성형의 명령을 실행할 수 있는 연산 처리 실행부를 나타낸 도면.
도 10은 도 9의 연산 처리의 타이밍도.
도 11은 본 발명의 연산 처리 실행부를 나타내는 도면.
도 12는 도 11의 연산 처리의 타이밍도.
도 13은 도 9의 연산 처리 실행부에서 연산 처리 명령(곱의 합 연산-데이터 이동)을 실행한 경우의 타이밍도.
도 14는 도 11의 연산 처리 실행부에서 연산 처리 명령(곱의 합 연산+데이터 이동)을 실행한 경우의 타이밍도.
도 15는 본 발명의 파이프 라인 구성도.
도 16은 종래의 마이크로프로세서의 파이프 라인 구성으로 MAC 연산 처리 명령을 반복 실행한 경우의 타이밍도.
도 17은 도 15의 마이크로프로세서의 파이프 라인 구성으로써 MAC 연산 처리 명령을 반복 실행한 경우의 타이밍도.
도 18은 도 15의 마이크로프로세서의 파이프 라인 구성으로 연산기 리소스가 경합한 경우의 경합 회피 처리를 나타내는 도면.
도 19는 연산 처리 결과를 포워드함으로써 연산 처리 시간을 단축할 수 있는마이크로프로세서의 하드웨어 구성예를 나타내는 도면.
도 20은 도 19의 마이크로프로세서로 연산 처리 명령을 실행한 경우의 타이밍도.
도 21은 입력 데이터의 재 판독을 실행하지 않음으로써 연산 처리 시간을 단축할 수 있는 마이크로프로세서의 하드웨어 구성예를 나타내는 도면.
도 22는 도 21의 구성에 의한 마이크로프로세서의 구성예를 나타내는 도면.
도 23은 도 15의 마이크로프로세서의 파이프 라인 구성을 병렬로 복수개 접속한 마이크로프로세서를 나타내는 도면.
도 24는 종래의 VLIW 형의 마이크로프로세서의 구성을 나타내는 도면.
도 25는 명령의 감소를 나타내는 도면.
도 26은 CPI의 단축을 나타내는 도면.
도 27은 본 발명의 기억 매체로부터 회로 정보를 판독하는 컴퓨터 시스템을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
1 : 연산 명령 입력부
2 : 연산 명령 판독부
3 : 연산 명령 해독부
4 : 데이터 판독부
5 : 기억부
6 : LUT
7 : 연산 처리 실행부
7a : 연산 처리 실행부
7b : 연산 처리 실행부
8 : 연산 결과 기록부
9 : 출력 제어부
10 : 출력부
11 : 파이프 라인
11a : 파이프 라인
11n : 파이프 라인
21: MPY
22 : SHF
23 : ALU
32 : MPY
33 : SHF
33 : ALU
34 : MPY
35 : ALU
36 : MPY
37 : SHF
38 : ALU
42 : 연산기 리소스
43 : 연산기 리소스
44 : 연산기 리소스
45 : 연산기 리소스
46 : 기록부
47 : 기록부
48 : 기록부
49 : 기록부
51 : 기억부
52 : F/F
53 : 셀렉터
61 : 래치
62 : 기억부
63 : 연산기 리소스
64 : 연산기 리소스
65 : 연산기 리소스
71 : 래치
72 : 래치
73 : 래치
75a : 셀렉터
75b : 셀렉터
75c : 셀렉터
75d : 셀렉터
76 : 셀렉터
77 : 연산기 리소스
78 : 연산기 리소스
79 : 연산기 리소스
80 : 연산기 리소스
301 : 파이프 라인
302 : 파이프 라인
303 : 파이프 라인
304 : 파이프 라인
305 : 기억부
306 : 기록 조정부
311 : 연산 명령 판독부
312 : 연산 명령 해독부
313 : 데이터 판독부
314 : 연산 처리 실행부
315 : 연산 결과 기록부
이하, 본 발명의 마이크로프로세서의 실시예를 도면에 기초하여 설명한다.
도 1은 본 발명의 마이크로프로세서의 구성을 나타낸다.
도 1에서 본 발명의 마이크로프로세서는, 대량의 연산 처리를 고속으로 실행할 필요성때문에, 연산 명령 판독부(2)와 연산 명령 해독부(3)와 데이터 판독부(4)와 연산 처리 실행부(7)와 연산 결과 기록부(8)를 구비한 파이프 라인(11)과, 상기 파이프 라인에 대해 마이크로 코드를 입력하는 연산 명령 입력부(1)와, 연산 처리에 필요한 입력 데이터, 및 연산 처리 결과를 기억하는 기억부(5)와, 연산 처리 명령 코드를 기억하는 LUT6 (룩-업 테이블)과, 기억부(5)에 기억되어 있는 연산 처리 결과 등을 출력하는 출력 제어부(9), 출력부(10)로 구성되고, 병렬로 연산 처리를 실행하는 파이프 라인 처리에 따라 효율적으로 연산 처리를 실행한다. 또한, LUT6은 RAM 등의 메모리로 구성되고, 사용자 임의에 따른 설정이 가능하다.
상기한 바와 같이 구성되는 마이크로프로세서의 파이프 라인(11)을 구성하는 각 부의 기능을 설명한다.
연산 명령 판독부(2)는, 연산 처리에 필요한 입출력 데이터의 전송 내용을 나타내는 정보와, 프로세스 명령 또는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보(이후, 이 어드레스 정보를 연산 ID라고 함)로 구성되는 마이크로 코드를 판독하는 기능(페치)을 갖는다.
연산 명령 해독부(3)는, 연산 명령 판독부(2)에 의해 받아들여진 마이크로 코드를 해독하는 기능(디코드)을 갖는다.
데이터 판독부(4)는, 연산 명령 해독부(3)에서 해독된 마이크로 코드의 입출력 데이터의 전송 내용을 나타내는 정보에 기초하여, 기억부(305)로부터 연산 처리에 필요한 입력 데이터를 판독하는 기능(판독)과, 또한 마이크로 코드가 연산 ID를 갖는 경우에, 상기 연산 ID가 나타나는 어드레스에 기초하여 LUT6으로부터 프로세스 명령을 판독하는 기능(판독)을 갖는다.
연산 처리 실행부(7)는, 가산, 감산, 승제산, 합곱 연산 등의 복수의 연산기 리소스를 구비하고, 데이터 취특부(4)에 의해 받아들여진 입력 데이터, 및 프로세스 명령에 따라 소정의 연산을 실행하는 기능을 갖는다.
연산 결과 기록부(8)는, 연산 처리 실행부(7)에서 실행된 연산 처리 결과를, 데이터 판독부(4)로부터 연산 처리 실행부(7)를 통해, 출력 데이터의 저장 위치를 나타내는 어드레스에 기초하여, 기억부(5)에 기록하는 기능(기록)을 갖는다.
이러한 구성, 및 기능을 갖는 본 발명의 마이크로프로세서는, 마이크로 코드를 구성하는 연산 ID에 기초하여, 프로세스 명령을 판독하는 것이 가능하기 때문에, 상기 마이크로 코드의 소형화를 실현하면서, 고도화, 복잡화한 연산 처리 명령 코드에 대응 가능해진다.
여기서, 도 1에 도시된 본 발명의 마이크로프로세서로써 연산 처리를 실행하기 위한 상기 마이크로 코드를 도 2에 따라 설명한다.
종래의 마이크로 코드는, 예를 들면 도 2 상부에 도시된 바와 같이, 프로세스 명령(RISC 명령에 조합함)과 입출력 데이터로 구성되어 있었지만, 프로세스 명령의 고도화, 복잡화에 따라 마이크로 코드가 확대되고, 연산 처리 정보가 할당되지 않는, 즉 마이크로 코드 상에 실장할 수 없는 경우가 있었다.
그래서, 본 발명의 마이크로프로세서로 연산 처리를 실행하기 위한 마이크로 코드는, 도 2 하부에 도시된 바와 같이 연산 ID를 가짐에 따라, 연산 처리가 복잡한 경우라도 소형화할 수 있다. 연산 ID에는, 먼저 설명한 바와 같이 LUT6의 어드레스 정보가 도시되어 있기 때문에, 고도화, 및 복잡화한 프로세스 명령은 LUT6에 기억한다.
마이크로 코드가 연산 ID, 및 입출력 데이터의 전송 내용을 나타내는 정보로 구성됨에 따라, 본 발명의 마이크로프로세서는, 복수의 RISC형 명령(연산기 리소스를 하나밖에 사용하지 않은 기본적인 명령)으로 구성되는 복잡한 프로세스 명령(하나의 파이프 라인으로 연산 처리되는 명령)에도, LUT6을 사용함으로써 용이하게 대응 가능해지기 때문에, 앞으로 더욱 고도화, 복잡화하는 연산 처리에도 용이하게 대응 가능해진다.
또한, 도 2에 도시된 바와 같이 마이크로 코드의 소형화를 실현함으로써, 명령을 일시적으로 기억하는 명령 캐쉬의 소형화도 가능해진다. 또한, 도 5에 도시된 바와 같이 상기 마이크로 코드를 종래 사용했던 마이크로 코드와 비교하면, 본 발명의 마이크로 코드는, 기억부의 워드폭, 비트폭 모두 소형화할 수 있다.
또한 상기 마이크로프로세서는, 연산 ID를 대신하여 종래대로 직접 프로세스 명령을 실장 가능하게 한다. 예를 들면, 프로세스 명령이 하나의 RISC형 명령인 경우에는, 마이크로 코드가 확대하는 것이 없는 것을 이용하여 연산 ID를 대신하여 RISC형 명령을 그대로 실장한다. 또한, 마이크로 코드의 사이즈에 따라서는, 2개 이상의 경우라도, 직접 실장이 가능하다. 그 때문에, 마이크로프로세서는 LUT6에 액세스하지 않고, 보다 효율적으로 연산 처리 명령을 해독할 수 있다.
본 발명에서는, 도 2와 같이 설명된 바와 같이, 기본 명령 코드와 확장 명령 코드의 저장 장소를 나타내는 연산 ID로 이루어지는 마이크로 코드를 해독하는 명령 해독 수단과, 상기 명령 해독 수단에서 해독된 연산 명령에 따라 연산기 리소스를 선택하여 연산 처리하는 연산 처리 실행 수단을 설치하고, 상기 기본 명령 코드에 의해 최초의 연산기 리소스를 선택하고, 상기 확장 명령 코드에 의해 다음 연산기 리소스를 선택하고, 이에 따라 파이프 라인 연산하도록 마이크로프로세서를 구성할 수 있다. 이와 같이 마이크로 코드를 설정함으로써, 복잡한 연산을 하는 (CISK 정도의)의 마이크로 코드를 해독하는데 충분한 시간적인 여유를 가짐과 동시에, 복잡한 연산을 하는 마이크로 코드의 최초의 연산이나 RISC 명령과 동일한 간단한 연산의 쌍방이, RISC 프로세서와 마찬가지로 바로 연산으로 옮길 수 있다.
도 3, 및 도 4는 도 1에 도시된 마이크로프로세서에, 도 2의 마이크로 코드가 입력된 경우의 연산 처리의 구체예, 및 연산 처리 실행 방법을 나타낸다.
예를 들면, 도 1에 도시된 본 발명의 마이크로프로세서의 파이프 라인(11)에, 도 4에 도시된 바와 같은 연산 ID와, 입력 데이터①, 입력 데이터②, 출력 데이터의 저장 위치를 나타내는 어드레스 정보로 구성되는 입출력 데이터의 전송 내용을 나타내는 정보를 갖는 마이크로 코드가 입력된 경우, 상기 마이크로 코드는, 연산 명령 판독부(2)에서 받아들여져, 연산 명령 해독부(3)에서 디코드된다(S1).
연산 명령 해독부(3)에서 디코드된 결과, 예를 들면 연산 ID의 판정 비트가 ' 0'인 경우(도 4 참조), 상기 연산 ID는 RISC형 명령이기 때문에(S2, RISC), 데이터 판독부(4)는, 입력 데이터①, 입력 데이터②의 저장 위치를 나타내는 어드레스에 기초하여 기억부(5)로부터 입력 데이터①, 입력 데이터②를 판독(S3), 동시에 출력 데이터의 저장 위치를 나타내는 어드레스를 연산 처리 실행부(7)에 통지한다.
연산 처리 실행부(7)에서는, 예를 들면 RISC형 명령에 대응하는 연산기 리소스인 ALU23(가산기)에 의한 가산 연산을 실행하고, 그 연산 처리 결과를 상기 출력 데이터의 저장 위치를 나타내는 어드레스에 기초하여 기억부(5)에 저장한다(S5).
한편, 연산 명령 해독부(3)에서 디코드된 결과, 예를 들면 연산 ID의 판정 비트가 '1'인 경우(도 4 참조), 상기 연산 ID는 LUT6의 어드레스 때문에(S2, ID), 데이터 판독부(4)는, 상기 어드레스 'X'에 기초하여 프로세스 명령을 판독한다(S4). 또한 데이터 판독부(4)는, 입력 데이터①, 입력 데이터②의 저장 위치를 나타내는 어드레스에 기초하여 기억부(5)로부터 입력 데이터①, 입력 데이터②를 판독(S3), 프로세스 명령과 함께 입력 데이터①, 입력 데이터②와, 출력 데이터의 저장 위치를 나타내는 어드레스를 연산 처리 실행부(7)에 통지한다. 또한, LUT6 내의 프로세스 명령은, 예를 들면 도 4와 마찬가지로 어드레스 'X'에, 'MPY → SHF → ADD'를 저장하고 있다.
연산 처리 실행부(7)에서는, 예를 들면 프로세스 명령에 대응하는 연산기 리소스인 MPY21(승산기), SHF22(시프터), ALU23(가산기)에 의한 곱의 합 연산을 실행하고, 그 연산 처리 결과를 상기 출력 데이터의 저장 위치를 나타내는 어드레스에 기초하여 기억부(5)에 저장한다(S5).
상기에 도시한 연산 처리 방법을 실행 가능한 본 발명의 마이크로프로세서는, LUT6의 내용을 사용자 임의로 변경함으로써, 효율적으로 연산 처리를 실행할 수가 있다.
또한, 본 발명의 마이크로프로세서는, 하나의 프로세스 명령에 복수의 RISC형 명령을 행하게 함으로써, 전체의 실행 명령수를 감소시킬 수 있다.
예를 들면, 도 6에 도시한 바와 같이 프로세스 명령 a, 및 프로세스 명령 b를 실행하는 경우의 본 발명의 마이크로프로세서의 처리를 설명한다. 또한, 도 6에서 Fa, Fb는 각각 프로세스 명령 a, 및 프로세스 명령 b의 페치 사이클의 시간을, Da는 프로세스 명령 a 내의 RISC 명령의 디코드 시간을, Db는 프로세스 명령 b 내의 RISC 명령의 디코드 시간을, Ra는 프로세스 명령 a의 입출력 데이터의 판독 시간을, Rb는 프로세스 명령 b의 입출력 데이터의 판독 시간을, E(1)로부터 E(4)는 프로세스 명령 a 내의 RISC 명령의 실행 시간을, E(5)로부터 E(8)는 프로세스 명령 b 내의 RISC 명령의 실행 시간을, Wa는 프로세스 명령 a의 연산 처리 결과의 기록 시간을, Wb는 프로세스 명령 b의 연산 처리 결과의 기록 시간을 나타낸다. 또한, 명령 a, 및 명령 b는, 예를 들면 각각 4개의 RISC형 명령으로 구성되는 것으로 한다.
본 발명의 마이크로프로세서는, 1사이클로 프로세스 명령 a를 페치하고 (Fa), 또한 프로세스 명령 a 내의 RISC형 명령마다 디코드(Da), 판독(Ra), 명령 실행(E(1) ∼ E(4)), 기록(Wa)의 순으로 처리를 행하고, 도 6에 도시된 바와 같이 8사이클로 프로세스 명령 a의 처리를 종료한다.
또한, 본 발명의 마이크로프로세서는, 프로세스 명령 a를 페치 후의 디코드(Da)와 동시에, 다음 프로세스 명령 b를 페치하고(Fb), 계속해서 프로세스 명령 b 내의 RISC형 명령마다 디코드(Db), 판독(Rb), 명령 실행(E(5) ∼ E(8)), 기록(Wb)의 순으로 처리를 행하고, 도 6에 도시된 바와 같이 합계 9사이클로 프로세스 명령 a, 및 프로세스 명령 b의 처리를 종료한다.
이와 같이, 본 발명의 마이크로프로세서는, 하나의 프로세스 명령으로 복수의 RISC형 명령을 행하게 함으로써, 프로그램 전체의 실행 명령수를 감소, 및 CPI의 단축을 동시에 실현할 수 있고(도 25, 도 26 참조), 그에 따라 최소한의 사이클수로 연산 처리가 실행 가능해진다.
계속해서, 도 1에 도시된 본 발명의 마이크로프로세서를 구성하는 연산 처리 실행부(7)의 상세한 내용에 대해 설명한다.
도 7은, 종래의 RISC형 마이크로프로세서를 구성하는 연산 처리 실행부(7a)를 나타낸다.
예를 들면, 도 7에 도시된 바와 같이 연산 처리 명령 : (a + b) * b를 연산 처리하는 경우, RISC형 마이크로프로세서는, 연산 처리 명령 : (a + b) * b를 명령① : ALU(a + b)와 명령② : MPY(* b)로 분할하고, 순서대로 연산 처리를 실행한다. 또한, 명령① : ALU(a + b)는, 연산기 리소스 ALU33을 이용하여 a + b를 실행하는 것을 나타내고, 명령② : MPY(* b)는, 연산기 리소스 MPY31을 이용하여 명령①의 연산 결과와 b와의 곱셈을 실행하는 것을 나타낸다.
RISC형 마이크로프로세서는, 도 8에 도시된 바와 같이 1사이클로 명령① : ALU(a + b)를 페치하고(F), 또한 명령① : ALU (a+ b)를 디코드(D), 판독(R), 명령 실행(E), 기록(W)의 순으로 처리를 행하고, 5사이클로 명령① : ALU (a + b)의 처리를 종료한다.
또한 RISC형 마이크로프로세서에서는, 명령②의 연산 처리를 명령①의 연산 처리 결과를 바탕으로 행하기 때문에, 더미 사이클 실행 후(예를 들면, 파이프 라인 스톨을 발생시킴), 명령① : ALU(a + b)의 명령 실행(E)과 동시에 다음 명령② : MPY(* b)를 페치하고(Fb), 상기 명령②을 디코드하고(D), 명령① : ALU(a + b)의 연산 처리 결과의 레지스터에의 기록이 종료 후, 상기 연산 처리 결과를 레지스터로부터 판독(R)하고, 계속해서 상기 명령②의 명령 실행(E), 연산 처리 결과의 기록(W)의 순으로 처리를 행하고, 도 8에 도시된 바와 같이 합계 8사이클로 연산 처리 명령 : (a + b) * b의 연산 처리를 종료한다.
도 9는, 종래의 DSP(Digital Signal Processor) 등의 MAC (곱의 합) 구성형 마이크로프로세서를 구성하는 연산 처리 실행부(7b)를 나타낸다.
예를 들면, 도 9에 도시된 바와 같이 연산 처리 명령 : (a + b) * b를 연산 처리하는 경우, MAC 구성형 마이크로프로세서는 연산 처리 명령 : (a + b) * b를 명령① : ALU(a + b)와 명령② : MPY(* b)로 분할하고, 순서대로 연산 처리를 실행한다. 또한, 명령① : ALU(a + b)는, 연산기 리소스 ALU35를 이용하여 a + b를 실행하는 것을 나타내고, 명령② : MPY(* b)는, 연산기 리소스 MPY34를 이용하여 명령①의 연산 결과와 b와의 곱셈을 실행하는 것을 나타낸다.
MAC 구성형 마이크로프로세서는, 도 10에 도시된 바와 같이 합계 8사이클로 연산 처리 명령 : (a + b) * b의 연산 처리를 종료한다. 또한, 연산 처리 명령 : (a + b) * b의 연산 처리는, 도 8에서 설명된 타이밍도와 같기 때문에, 설명을 생략한다.
이와 같이, 상기 2종류의 종래형의 마이크로프로세서는, 모두 파이프 라인 스톨이 발생하고, 최소한의 사이클로 연산 처리를 실행할 수 없다.
그래서, 도 11은 연산 처리 내용에 따른 최소한의 사이클로 연산 처리가 실행 가능한 본 발명의 마이크로프로세서를 구성하는 연산 처리 실행부(7)를 나타낸다.
예를 들면, 도 11에 도시된 바와 같이 연산 처리 명령 : (a + b) * b를 연산 처리하는 경우, RISC형 마이크로프로세서는 연산 처리 명령 : (a + b) * b를 명령① : ALU(a + b)와 명령② : MPY(* b)로 분할하고, 순서대로 연산 처리를 실행한다. 또한, 명령① : ALU(a + b)는, 연산기 리소스 ALU38을 이용하여 a + 1을 실행하는 것을 나타내고, 명령② : MPY (* b)는, 연산기 리소스 MPY36을 이용하여 명령①의 연산 처리 결과와 b와의 곱셈을 실행하는 것을 나타낸다.
본 발명의 마이크로프로세서는, 도 12에 도시된 바와 같이 1사이클로 연산 처리 명령 : (a + b) * b를 나타내는 연산 ID, 및 입출력 데이터의 어드레스 정보로 구성되는 마이크로 코드를 페치하고(F), 또한 마이크로 코드를 디코드하고(D), 연산 처리 명령 : (a + b) * b를 실행하는 상기 연산 ID와 입출력 데이터를 판독한다 (R).
여기서, 본 발명의 마이크로프로세서는 명령① : ALU (a + b)의 연산 처리를 실행하고(EI), 명령① : ALU (a+ b)의 명령 실행 후, 출력하지 않고(도 11 참조), 명령①의 연산 처리 결과를 다음 연산기 리소스 MPY36에 입력하고, 계속해서 명령② : MPY(* b)의 연산 처리를 실행하고(EII), 마지막으로 명령②의 연산 처리 결과의 기록을 행하고(W), 도 12에 도시된 바와 같이 합계 6사이클로 연산 처리 명령 : (a + b) * b의 연산 처리를 종료한다.
본 발명의 마이크로프로세서는, 동일 파이프 라인 내에서 복잡한 연산 처리 명령을 실행하는 명령의 수직 전개를 행하기 때문에, 동일 파이프 라인 내에서의 도중의 연산 처리 결과의 레지스터 참조가 필요없고, 또한 파이프 라인 내부에서 연산 처리 결과의 전달이 가능하기 때문에, 파이프 라인 스톨이 발생하지 않는다. 그 때문에, 본 발명의 마이크로프로세서는 연산 처리 내용에 따른 최소한의 사이클수로 연산 처리를 실행할 수 있다.
또한, 본 발명의 마이크로프로세서는 프로세스 명령의 내용에 따라, 즉 LUT6의 내용을 임의로 변경함으로써, 연산기 리소스의 사용순이나 사용 갯수를 변경할 수 있고, 또한 연산기 리소스를 사용하지 않은 경우에는 스루 패스에 의해 입출력 데이터를 전파함으로써, 효율적으로 연산 처리를 행하고 있다.
도 13은, 도 9에 도시된 MAC 형 마이크로프로세서를 구성하는 연산 처리 실행부(7b)에서, 예를 들면 연산 처리 명령 : (곱의 합 연산 → 데이터 이동)을 연산 처리하는 경우의 타이밍도를 나타낸다. 구체적으로는, 예를 들면 이하와 같은 연산 처리 명령을 실행한다.
mac r2, r1, r0 ; MAC(곱의 합 연산) : MPY → SHF → ALU
mov r4, r3 : MOV (데이터 이동) : 스루 패스
MAC 형 마이크로프로세서는, 도 13에 도시된 바와 같이 1사이클로 명령 : MAC을 페치하고(F), 또한 명령 : MAC를 디코드(D), 및 판독하고(R), MPY → SHF → ALU의 순으로 명령을 실행하고(E), 그 연산 처리 결과를 기록하고(W), 7사이클로 명령 : MAC의 처리를 종료한다.
또한 MAC 형 마이크로프로세서는, 명령 : MAC를 페치 후, 명령 : MAC의 디코드(D)와 동시에 다음 명령 : MOV를 페치하고(F), 상기 명령을 디코드(D), 및 판독(R)한다. 그런데 MAC 형 마이크로프로세서는, in-order 출력 때문에, 파이프 라인 스톨이 발생하고, 명령 : MAC의 연산 처리가 종료할 때까지 명령 : MOV를 실행할 수 없다.
여기서, MAC 형 마이크로프로세서는 2사이클의 파이프 라인 스톨이 종료 후, 명령 : MOV를 실행하고(E), 계속해서 스루 패스를 통해 기록(W)을 실행하고, 도 13에 도시된 바와 같이 합계 8사이클로 연산 처리 명령 : (곱의 합 연산 → 데이터 이동)의 연산 처리를 종료한다.
이와 같이, MAC 형 마이크로프로세서는, 2사이클의 파이프 라인 스톨이 발생하고, 연산 처리 내용에 따른 최소한의 사이클로 연산 처리를 실행할 수 없다.
그래서, 도 14는 도 11에 도시된 본 발명의 마이크로프로세서를 구성하는 연산 처리 실행부(7)에서, 예를 들면 연산 처리 명령 : (곱의 합 연산 → 데이터 이동)을 연산 처리하는 경우의 타이밍도를 나타낸다. 구체적으로는, 도 13과 동일한 연산 처리 명령을 실행한다.
본 발명의 마이크로프로세서는, 도 14에 도시된 바와 같이 1사이클로 명령 : MAC을 페치하고(F), 또한 명령 : MAC를 디코드(D), 및 판독하고(R), MPY → SHF → ALU의 순으로 명령을 실행하고(E), 그 연산 처리 결과를 기록하고(W), 7사이클로 명령 : MAC의 처리를 종료한다.
또한 본 발명의 마이크로프로세서는, 명령 : MAC을 페치 후, 명령 : MAC의 디코드(D)와 동시에 다음 명령 : MOV를 페치하고(F), 상기 명령을 디코드(D), 및 판독(R)한다.
여기서, 본 발명의 마이크로프로세서는 병렬로 연산 처리한 결과를 적절하게 출력 가능하게 한 것으로 out-of-order 출력이 가능해져, 파이프 라인 스톨이 발생하지 않고, 명령 : MAC의 연산 처리 종료를 기다리지 않고, 명령 : MAC의 연산 처리와 병렬로 명령 : MOV를 실행한다(E).
또한, 본 발명의 마이크로프로세서는 명령 : MOV를 실행 후, 연산 처리 종료순으로 연산 처리 결과의 기록(W)을 실행하고, 도 14에 도시된 바와 같이 합계 7사이클로 연산 처리 명령 : (곱의 합 연산 → 데이터 이동)의 연산 처리를 종료한다. 또한, 연산 처리 명령 : (곱의 합연산 → 데이터 이동)에서는 명령 : MOV의 연산 처리쪽이 먼저 종료하기 때문에, out-of-order 출력의 영향에 의한 연산 처리의 추월이 발생하고 있다.
본 발명의 마이크로프로세서는, out-of-order 출력 때문에, 먼저 종료한 연산 처리를 기다리게 하지 않고, 연산 처리 종료순으로 연산 처리 결과를 기록한다. 따라서, 본 발명의 마이크로프로세서는 연산 처리 명령의 추월이 가능해지고, 그에 따라 최소한의 사이클수로 연산 처리를 실행할 수 있다.
도 15는 본 발명의 마이크로프로세서의 파이프 라인 구성을 나타낸다. 여기서, 본 발명의 마이크로프로세서의 파이프 라인 구성으로 MAC 형 연산 처리 명령을 반복 실행한 경우의 동작을 도 17의 타이밍도에 기초하여, 종래의 마이크로프로세서와 비교하여 설명한다.
종래의 마이크로프로세서는, 예를 들면 도 24에서 먼저 설명한 바와 같이 파이프 라인(301, 302, 303, 304)의 4종류의 파이프 라인으로 구성되는 경우, 각 파이프 라인의 연산 결과는, 기억부(305)에 기록되고, 기억부(305)를 통해 다른 파이프 라인으로 받아들여짐에 따라 파이프 라인사이의 데이터의 교환이 가능해진다. 즉, 종래의 마이크로프로세서는, 하나의 연산기 리소스의 연산 처리 결과를 다음 연산기 리소스가 사용하는 경우, 반드시 기억부(305)를 통해 연산 처리 결과의 전달을 행한다.
또한, RISC형 명령의 조합에 의한 프로세스 명령을 실행하는 경우, 연산 처리 명령은, 각 파이프 라인에 수평점 전개되고, 각각 병렬의 파이프 라인으로 연산 처리를 실행하고 있다.
도 16은, 도 24에 도시된 바와 같은 종래의 마이크로프로세서의 파이프 라인 구성으로 MAC 형 연산 처리 명령을 반복 실행한 경우의 타이밍도를 나타낸다. 구체적으로는, 예를 들면 이하와 같은 연산 처리 명령을 실행한다.
명령 ① : MAC ;
MPY(M(1)) → SHF(S(1)) → ALU (A(1))
명령 ② : MAC ;
MPY(M(2)) → SHF(S(2)) → ALU(A(2))
종래의 마이크로프로세서는, 도 16에 도시된 바와 같이 파이프 라인(301)에서, 1사이클로 명령 ① : MAC의 M(1)을 페치하고(FI), 또한 명령① : MAC의 M (1)을 디코드(DI), 및 필요한 입출력 데이터를 판독하고(RI), M(1)의 연산을 실행하고(EI), 그 연산 처리 결과를 기억부(305)에 기록하고(WI), 5사이클로 명령① : MAC의 M(1)의 처리를 종료한다.
이어서 종래의 마이크로프로세서는 파이프 라인(302)에서, 명령 ① : MAC의 M(1)의 연산 실행(EI)과 동시에, 명령 ① : MAC의 S(1)를 페치하고(FII), 상기 명령을 디코드하고(DII), 명령 ① : MAC의 M(1)의 연산 처리 결과를 기억부(305)에 기록 후(WI), 기억부(305) 내의 상기 연산 처리 결과, 및 필요한 입출력 데이터를 판독(RII)한다. 여기서, 종래의 마이크로프로세서는, 명령 ① : MAC의 S(1)의 연산을 실행하고(EII), 계속하여 S(1)의 연산 처리 결과를 기억부(305)에 기록하고 (WII), 도 16에 도시된 바와 같이 합계 8사이클로 명령 ① : MAC의 M(1) 및 S(1)의 연산 처리를 종료한다.
마지막으로 종래의 마이크로프로세서는, 재차 파이프 라인(301)에서 명령 ① : MAC의 S(1)의 연산 실행(EII)과 동시에 명령 ① : MAC의 A(1)를 페치하고 (FI), 상기 명령을 디코드하고(DI), 명령 ① : MAC의 S(1)의 연산 처리 결과를 기억부(305)에 기록 후(WII), 기억부(305) 내의 상기 연산 처리 결과, 및 필요한 입출력 데이터를 판독(RI)한다. 여기서, 종래의 마이크로프로세서는, 명령 ① : MAC의 A(1)의 연산을 실행하고(EI), 계속하여 A(1)의 연산 처리 결과를 기억부(305)에 기록하고(WI), 도 16에 도시된 바와 같이 합계 11사이클로 명령 ① : MAC의 M(1), S (1), 및 A(1)의 연산 처리를 종료한다. 또한, 명령 ② : MAC도 상기한 바와 같이 실행된다. 또한, 파이프 라인(301)에서는, 명령 ① : MAC의 M(1)과, 명령 ① : MAC의 A(1) 사이에, 파이프 라인 스톨이 발생하고, 5사이클의 더미 사이클이 삽입되어 있다.
따라서, 종래의 마이크로프로세서는 연산 처리 내용에 따른 최소한의 사이클수로 연산 처리가 실행되지 않는다.
그래서, 본 발명의 마이크로프로세서는 도 15에 도시된 바와 같이 하나의 파이프 라인에 복수의 연산기 리소스를 갖는 구성으로 함으로써, 최소한의 사이클수로 연산 처리를 실행 가능하게 한다.
도 15에서, 본 발명의 마이크로프로세서의 파이프 라인(11)의 구성은, 도 1과 마찬가지로 연산 명령 판독부(2)와 연산 명령 해독부(3)와 데이터 판독부(4)와 연산 처리 실행부(7)와 연산 결과 기록부(8)를 구비하고, 하나의 파이프 라인 내에서 병렬로 연산 처리를 실행하는 파이프 라인 처리에 따라 효율적으로 연산 처리를 실행한다. 그 때문에 본 발명의 마이크로프로세서는, 도 24의 종래의 마이크로프로세서와 비교하여 파이프 라인을 감소시킴으로써, 하드웨어의 규모가 감소하고, 소비 전류도 감소한다.
또한, 파이프 라인(11)을 구성하는 연산 처리 실행부(7)는, LUT6 내의 연산 처리 명령 코드를 변경함으로써, 임의 접속 가능한 복수의 연산기 리소스(42, 43, 44, 45)로 구성되고, LUT6의 변경으로 예를 들면 연산기 리소스의 사용 순이나 사용 갯수를 임의로 변경함으로써 효율적으로 연산 처리를 실행하고 있다.
또한, 파이프 라인(11)을 구성하는 연산 결과 기록부(8)는, 연산기 리소스(42, 43, 44, 45)의 연산 처리 결과를 개개로 기억부(5)에 기록하는 멀티 포트 구성을 취하고, 각 연산기 리소스에 대응하는 기록부(46, 47, 48, 49)로 구성되고, 연산 처리 실행부(7)의 in-order 실행, out-of-order를 이용하여, 각 연산기 리소스의 연산 처리 결과의 기록의 경합을 회피 가능하게 한다.
도 17은, 상기한 바와 같이 구성되는 본 발명의 마이크로프로세서의 파이프 라인 구성으로 MAC 형 연산 처리 명령을 반복 실행한 경우의 타이밍도를 나타낸다. 구체적으로는, 도 16과 마찬가지로 이하와 같은 연산 처리 명령을 실행한다.
명령 ① : MAC ;
MPY(M (1)) → SHF(S(1)) → ALU(A(1))
명령 ② : MAC ;
MPY(M (2)) → SHF(S(2)) → ALU(A(2))
본 발명의 마이크로프로세서는, 도 17에 도시된 바와 같이 파이프 라인(11)에서 1사이클로 명령 ① : MAC의 M(1), S(1), 및 A(1)를 페치하고(F), 또한 명령 ① : MAC를 디코드하고(D), 계속해서 명령 ① : MAC 에서 필요한 모든 입출력 데이터, 및 연산 ID가 나타내는 어드레스를 판독한다(R).
여기서, 본 발명의 마이크로프로세서는, 예를 들면 연산기 리소스(42)로 명령 ① : MAC의 M(1)의 연산을 실행하고(E(1)), 또한 연산기 리소스(42)의 연산 처리 결과를 직접, 예를 들면 다음 연산기 리소스(43)로 보내고, 상기 연산기 리소스(43)로 명령 ① : MAC의 S(1)의 연산을 실행하고(E(2)), 계속하여 연산기 리소스(43)의 연산 처리 결과를 직접, 예를 들면 다음 연산기 리소스(44)로 보내고, 상기 연산기 리소스(44)에서 명령 ① : MAC의 A(1)의 연산을 실행한다(E(3)).
마지막으로, 본 발명의 마이크로프로세서는, 최종적인 연산 처리 결과만을, 예를 들면 기록부(48)로 기억부(305)에 기록하고(W), 도 17에 도시된 바와 같이 합계 7사이클로 명령 ① : MAC의 M(1), S(1), 및 A(1)의 연산 처리를 종료한다. 또한, 명령 ② : MAC도 상기한 바와 마찬가지로 실행된다.
따라서, 본 발명의 마이크로프로세서는 종래와 같은 파이프 라인 스톨이 발생하지 않고, 최소한의 사이클수로 연산 처리를 실행할 수 있다.
도 18은, 상기한 바와 같이 구성되는 본 발명의 마이크로프로세서의 파이프 라인 구조가 동일한 기능을 갖는 연산기 리소스를 복수개 갖는 경우에, 연산 처리 명령을 반복 실행하고, 연산기 리소스가 경합했을 때의 타이밍도를 나타낸다. 구체적으로는, 이하와 같은 연산 처리 명령을 실행한다.
명령 ① : op1 r2, rl, r0 ; op1 : MPY → SHF → ALU
명령 ② : op2 r5, r4, r3 ; op2 : MPY → ALU
명령 ③ : op3 r8, r7, r6 ; op3 : SHF → MPY
명령 ④ : op4 r11, r10, r9 ; op4 : MPY
본 발명의 마이크로프로세서는 도 18에 도시된 바와 같이 파이프 라인(11)에서 1사이클로 명령 ① : op1을 페치하고(F), 순서대로 명령 ② : op2, 명령 ③ : op3, 명령 ④ : op4를 페치한다(F).
또한 본 발명의 마이크로프로세서는, 명령 ① : op1을 페치 후, 명령 ① : op1을 디코드하고(D), 계속해서 명령 ① : op1에서 필요한 모든 입출력 데이터, 및 연산 ID가 나타내는 어드레스를 판독하고(R), 순서대로 명령 ② : op2, 명령 ③ : op3, 명령 ④ : op4에 대해서도 디코드 및 판독을 실행한다(D, R).
명령 ① : op1에서 필요한 모든 입력 데이터, 및 연산 ID가 나타내는 프로세스 명령을 판독 후, 본 발명의 마이크로프로세서는, 4사이클째에 연산기 리소스 MPY에서 명령 ① : op1의 연산을 실행하고(EI), 또한 연산기 리소스(42)의 연산 처리 결과를 직접, 다음 연산기 리소스 SHF로 전달한다.
또한 본 발명의 마이크로프로세서는, 5사이클째에 상기 연산기 리소스 SHF에서 명령 ① : op1의 연산을 실행하고(EII), 계속하여 연산기 리소스 SHF의 연산 처리 결과를 직접, 다음 연산기 리소스 ALU로 전달한다. 동시(5사이클째)에 본 발명의 마이크로프로세서는, 상기 연산기 리소스 MPY에서 명령 ② : op2의 연산을 실행하고(EI), 계속하여 연산기 리소스 MPY의 연산 처리 결과를 직접, 다음 연산기 리소스로 입력하지만, 다음 연산기 리소스 ALU가 경합하기 때문에, 예를 들면 동일 기능을 갖는 연산기 리소스 ALU'에 상기 연산 처리 결과를 전달한다.
또한 본 발명의 마이크로프로세서는, 6사이클째에 상기 연산기 리소스 ALU에서 명령 ① : op1의 연산을 실행하고(EIII), 계속하여 7사이클째에 연산기 리소스 ALU의 연산 처리 결과를, 예를 들면 기록부(46)에서 기억부(305)에 기록한다(WI). 동시(6사이클째)에 본 발명의 마이크로프로세서는, 상기 연산기 리소스 ALU'로 명령 ② : op2의 연산을 실행하고(EII), 계속해서 7사이클째에 연산기 리소스 ALU의 연산 처리 결과를, 예를 들면 기록부(47)에서 기억부(305)에 기록한다(WII). 동시(6사이클째)에 본 발명의 마이크로프로세서는, 상기 연산기 리소스 SHF에서 명령 ③ : op3의 연산을 실행하고(EI), 계속해서 연산기 리소스 SHF의 연산 처리 결과를 직접, 다음 연산기 리소스 MPY에 입력된다.
또한 본 발명의 마이크로프로세서는, 7사이클째에 상기 연산기 리소스 MPY에서 명령 ③ : op3의 연산을 실행하고(EII), 계속하여 8사이클째에 연산기 리소스 MPY의 연산 처리 결과를, 예를 들면 기록부(46)에서 기억부(305)에 기록한다(WI). 동시(7사이클째)에 본 발명의 마이크로프로세서는, 예를 들면 연산기 리소스 MPY와 동일 기능을 갖는 상기 연산기 리소스 MPY'로 명령 ④ : op4의 연산을 실행하고(EI), 계속해서 8사이클째에 연산기 리소스 MPY'의 연산 처리 결과를, 예를 들면 기록부(47)에서 기억부(305)에 기록한다(WⅡ).
이와 같이, 본 발명의 마이크로프로세서는 도 18에 도시된 바와 같이 합계 8사이클로 명령 ① : op1, 명령 ② : op2, 명령 ③ : op3, 명령 ④ : op4의 연산 처리를 종료한다.
따라서, 본 발명의 마이크로프로세서는 연산기 리소스가 경합한 경우, 및 연산 처리 결과의 기억부(305)에의 기록이 경합한 경우에 파이프 라인 스톨이 발생하지 않고, 연산 처리 내용에 따른 최소한의 사이클수로 연산 처리를 실행할 수 있다.
도 19는, 연산 처리 결과를 포워드함으로써 연산 처리 시간을 단축할 수 있는 본 발명의 마이크로프로세서의 하드웨어 구성예를 나타낸다.
도 19에서, 본 발명의 마이크로프로세서는, 도 1에 도시된 마이크로프로세서의 구성에 부가하여, 추가로 연산 처리 실행부(7)의 연산 처리 결과를 기억부(5)에 기록함과 동시에 상기 연산 처리 결과를 직접, 상기 데이터 판독부(4)에 통지하는 패스와, 상기 연산 처리 결과를 래치 후, 데이터 판독부(4)에 통지하는 패스로 구성되는 기억부(51)를 갖는다. 또한, 기억부(51)는 포워드한 연산 처리 결과를 래치하는 F/F52와, 상기 연산 처리 결과를 직접 통지하는 패스와 래치 후에 통지하는 패스를 셀렉트하는 셀렉터(53)를 갖는다.
본 발명의 마이크로프로세서는, 다음 연산 처리 명령으로 앞의 연산 처리 명령의 연산 처리 결과를 사용하는 경우, 기억부(5)에 기록된 앞의 연산 처리 명령의 연산 처리 결과를 사용하지 않고, 데이터 판독부(4)가, 상기 어느 한 패스로부터의 연산 처리 결과를 판독한다.
따라서, 본 발명의 마이크로프로세서는 연산 처리 결과의 전달에 기억부(5)를 통할 필요가 없고, 최소한의 사이클에서 실행할 수 있다.
도 20은, 도 19의 마이크로프로세서의 연산 처리 실행부(7)에 의해 실행되는, 예를 들면 명령 ①, 명령 ②의 연산 처리를 실행하는 경우의 타이밍도를 나타낸다. 구체적으로는, 다음 명령을 연산한다.
명령 ① : mov r2, r1 ; mov : 이동
명령 ② : add r3, r0, r2 ; add : 가산
본 발명의 마이크로프로세서는, 도 20에 도시된 바와 같이 1사이클로 명령①을 페치하고(F), 또한 명령①을 디코드(D), 및 연산 처리에 필요한 데이터를 판독하고(R), 명령①을 실행한다(E).
또한 본 발명의 마이크로프로세서는, 명령 ①을 페치 후, 명령 ①의 디코드와 동시에 다음 명령 ②를 페치하고 (F), 상기 명령을 디코드 (D), 및 연산 처리에 필요한 데이터를 판독(R)한다. 또한, 명령 ②는, 명령 ①의 연산 처리 결과가 기록된 r2 내의 연산 처리 결과를 입력으로 하기 때문에, 데이터 판독부(4)에서는 상기 기억부(51) 내의 패스를 이용하여, 명령 ①의 연산 처리 결과를 포워드하여 판독한다.
이 상태에서, 본 발명의 마이크로프로세서는 명령 ②의 연산 처리를 실행하고(E), 명령 ②의 연산 처리 결과를 기억부(5)에 기록한다(W).
도 21은, 입출력 데이터의 재 판독을 실행하지 않음에 따라 연산 처리 시간을 단축할 수 있는 본 발명의 마이크로프로세서의 하드웨어 구성예를 나타낸다.
도 21에서, 본 발명의 마이크로프로세서는, 도 19에 도시된 마이크로프로세서의 구성에 부가하여, 상기 데이터 판독부(4)에서 판독된 입력 데이터를 래치(61)로 래치하여, 기억부(62)에 유지시킨 후, 연산 처리 실행부(7) 내의 각 연산기 리소스(63, 64, 65)에 통지하는 패스를 갖는다.
이와 같이 구성되는 본 발명의 마이크로프로세서는, 연산 처리 실행부(7) 내에서 한번 사용한 입력 데이터를 재차 사용하는 경우, 기억부(5)로부터의 입력 데이터를 판독하지 않고, 상기 패스로써 유지되어 있는 입력 데이터를 판독한다.
따라서, 본 발명의 마이크로프로세서는 각 연산기 리소스의 연산 도중에 동일한 입력 데이터를, 다른 연산기 리소스로 재차 이용 가능해지고, 기억부(5)로부터 재차 판독할 필요가 없어지고, 연산 처리 시간의 단축이 가능해진다. 또한 본 발명의 마이크로프로세서는, 재판독한 입력 데이터가 다른 연산 처리에 따라 변화한 경우도, 변화전의 입력 데이터를 사용하는 것이 가능해진다.
또한 도 21의 마이크로프로세서는, 데이터 판독부(4)에 의해 받아들여진 입력 데이터를 직접, 각 연산기 리소스에 통지하는 스루 패스를 갖는다.
또한, 도 21의 마이크로프로세서 내의 각 연산기 리소스(63, 64, 65)는 입력 데이터의 입력 포트를 멀티 포트 구성으로 하고, 필요한 입력 데이터를 각 연산기 리소스가 동시에 입력 가능하기 때문에, 기억부(5)로부터 입력 데이터를 반복 추출할 필요가 없어, 더욱 연산 처리 시간의 단축이 가능해진다.
도 22는, 도 21의 구성을 이용한 마이크로프로세서의 실시예를 나타내고, 상기 마이크로프로세서가, D15로부터 D8의 어큐뮬레이션 레지스터(누적형 데이터)와, D7로부터 D0의 범용 레지스터의 데이터를 이용하여, 연산 처리를 행하는 경우를 나타내고 있다.
도 22의 (a)에 나타낸 본 발명의 마이크로프로세서는, 범용 레지스터의 데이터(D7로부터 D0)를 판독한 후, 상기 데이터를 셀렉터(75a)를 통해 스루 패스로 각 연산기 리소스(77)에 통지함과 동시에, 연산기 리소스(78, 79, 80)에 대응하는 각 래치(71, 72, 73)에 통지하여 유지한다(도 22의 (a), 래치 라인).
이 래치 라인에서는, 각 연산기 리소스(78, 79, 80)에 대응하는 각 래치(71, 72, 73)를 구비하고, 각 연산기 리소스는 필요할 때에 셀렉터(75b, 75c, 75d)를 통해 데이터를 판독하는 것이 가능하다.
또한, 아큐뮬레이션 레지스터와 마찬가지로, 연산 처리 결과가 축적되는 기억부로부터의 데이터(D15로부터 D8)는, 작업 처리량을 올리기 위해 스루 라인에 통지되고, 셀렉터(76)를 통해 각 연산기 리소스로 사용 가능하다.
또한, 데이터 판독부(4)의 입력 포트를 멀티 포트 구성으로 함으로써 모든 연산기 리소스가 동시에 필요한 데이터를 판독할 수 있기 때문에, 데이터 판독부(4)의 경합에 따른 파이프라인 스톨이 발생하지 않고, 연산 처리 시간의 단축이 가능해진다.
상기한 바와 같이 구성되는 도 22의 (a)에 도시된 본 발명의 마이크로프로세서는, 레지스터, 캐쉬, 메모리 등의 기억부(5, 6)로부터의 입력 데이터를 래치하기 때문에, 재차 입력할 필요가 없어지고, 연산기 리소스에 의한 연산 도중에 재차 이용 가능하다. 따라서, 본 발명의 마이크로프로세서는, 다른 연산 처리에 따라 입력 데이터가 재기록되는 경우에도, 재기록되기 전의 입력 데이터가 사용 가능해진다.
또한, 도 22의 (b)에 도시된 본 발명의 마이크로프로세서는, 범용 레지스터의 데이터(D7로부터 D0)를 판독한 후, 상기 데이터를 셀렉터(75a, 75b, 75c, 75d)를 통해 스루 패스로 각 연산기 리소스(77, 78, 79, 80)에 통지함과 동시에, 상기 데이터를 연산기 리소스(78, 79, 80)에 대응하는 각 래치(71, 72, 73)에 통지하여 유지된다(도 22의 (b), 래치 라인).
이 래치 라인에서는, 각 연산기 리소스(78, 79, 80)에 대응하는 각 래치(71, 72, 73)를 구비하고, 각 연산기 리소스는 필요할 때에 셀렉터(75b, 75c, 75d)를 통해 데이터를 판독하는 것이 가능하다.
또한, 아큐뮬레이션 레지스터와 마찬가지로 연산 처리 결과가 축적되는 기억부로부터의 데이터(D15로부터 D8)는, 작업 처리량을 올리기 위해 스루 라인에 통지되고, 셀렉터(76)를 통해 각 연산기 리소스로 사용 가능하다.
또한, 데이터 판독부(4)의 입력 포트를 멀티 포트 구성으로 함에 따라 모든 연산기 리소스가 동시에 필요한 데이터를 판독할 수 있기 때문에, 데이터 판독부(4)의 경합에 의한 파이프 라인 스톨이 발생하지 않고, 연산 처리 시간의 단축이 가능해진다.
상기한 바와 같이 구성되는 도 22의 (b)에 도시된 본 발명의 마이크로프로세서는, 래치 후에 연산기 리소스에 통지하는 패스와, 직접 연산기 리소스에 통지하는 스루 패스 중, 어느 하나로부터의 입력 데이터를 사용한다. 따라서, 본 발명의 마이크로프로세서는, 기억부(5, 6)로부터의 입출력 데이터의 래치에 필요한 연산 처리 딜레이를 최소한으로 억제할 수 있다.
도 23은, 도 15의 마이크로프로세서의 파이프 라인 구성을, 추가로 병렬로 복수개 접속한 본 발명의 마이크로프로세서를 나타낸다.
본 발명의 마이크로프로세서는, 도 15의 마이크로프로세서의 파이프 라인(11)과, 상기 파이프 라인과 동일 기능을 갖는 파이프 라인(11a, ···, 11n)으로 구성되고, 각 파이프 라인이 병렬로 접속됨으로써, 보다 효율적인 연산 처리를 실행 가능하게 한다. 또한, n은 임의의 정수로 한다.
이어서, 본 발명이 되는 컴퓨터 판독 가능한 기억 매체의 일 실시예에 대해 설명한다. 기억 매체에는, 상기한 바와 같은 마이크로프로세서의 구성에 관한 회로 정보가 저장되어 있고, 도 27에 도시된 바와 같은 컴퓨터 시스템에 의해 판독되어 마이크로프로세서가 설계된다.
기억 매체는 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 관한 하드웨어 기술 언어로 기술된 회로 정보를 저장하고, 입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단에 관한 회로 정보를 저장하는 제1 데이터 영역과, 상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단에 관한 회로 정보를 저장하는 제2 데이터 영역과, 상기 데이터 판독 수단에 의해 받아들여진 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행할 수 있는 연산기 리소스를 실장하는 연산 처리 실행 수단에 관한 회로 정보를 저장하는 제3 데이터 영역을 갖는다.
도 27에 나타낸 컴퓨터 시스템(100)은, CPU나 디스크 드라이브 장치 등을 내장한 본체부(101), 본체부(101)로부터의 지시에 따라 표시 화면(102a) 상에 화상을 표시하는 디스플레이(102), 이 컴퓨터 시스템(100)에 여러가지의 정보를 입력하기 위한 키보드(103), 디스플레이(102)의 표시 화면(102a) 상의 임의의 위치를 지정하는 마우스(104), 외부의 데이터 베이스 등에 액세스하여 다른 컴퓨터 시스템에 기억되어 있는 프로그램등을 다운 로드하는 모뎀(105)이 구비되어 있다. 디스크(110) 등의 휴대형 기억 매체에 저장되거나, 모뎀(105) 등의 통신 장치를 사용하여 다른 컴퓨터의 기억 매체(106)로부터 다운로드되는 하드웨어 기술 언어에 의한 회로 정보는, 컴퓨터 시스템(100)에 입력되어 컴파일된다. 컴퓨터 시스템(100)은 하드웨어 기술 언어에 의해 기술된 회로 정보를 바탕으로, 셀 라이브러리 정보를 판독하여 실제 회로(actual circuit)의 노광 패턴이나 노광 데이터를 형성하거나, FPGA (필드 프로그래머블 게이트 어레이)의 프로그램을 형성하는 컴파일러가 설치되어 있다. 또, 셀 라이브러리 정보는, 예를 들면 CMOS 용으로 2.5㎛ 피치 배선룰이라고 하는 마이크로프로세서가 형성되는 반도체의 종류나 제조 장치마다 또는, FPGA의 종류마다 준비된다. 컴파일러에 의해 형성된 노광 패턴은 예를 들면 스테퍼 등의 노광 장치에 의해 실리콘 웨이퍼 등의 반도체 웨이퍼 상의 포토레지스트의 노광에 이용된다. 그리고 노광된 포토레지스트는 현상되어 마스크로서 기능하고, p 형 또는 n 형의 반도체를 형성하는 불순물의 도핑이나 반도체 회로를 접속하는 배선의 형성이 행해진다. 이러한 방식으로, 기억 매체에 기억된 회로 정보에 의해 마이크로프로세서가 형성된다. 또, 여기서 이용되는 기억 매체는, IC 카드 메모리, 플로피 디스크, 광자기 디스크, CD-ROM 등의 제거 가능한 기억 매체에 한정되는 것이 아니라, 모뎀이나 LAN 등의 통신 장치나 통신 수단을 통해 접속되는 컴퓨터 장치에서 액세스 가능한 기억 매체도 포함한다.
이상, 본 발명을 실시예에 의해 설명했지만, 본 발명은 상기 실시예에 한정되는 것이 아니라, 본 발명의 범위 내에서 여러가지 변형 및 개량이 가능한 것은 물론이다.
상술한 바와 같이, 본 발명의 마이크로프로세서에 의하면, 마이크로 코드를 구성하는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보(연산 ID)에 기초하여, 프로세스 명령을 판독하는 것이 가능하기 때문에, 상기 마이크로 코드의 소형화를 실현하면서, 고도화, 복잡화한 연산 처리 명령에 대응 할 수 있다.
또한, 본 발명의 마이크로프로세서에 따르면, 프로세스 명령을 고기능화(복수의 RISC형 명령을 하나의 프로세스 명령에 복잡화)와, 마이크로 코드를 구성하는 프로세스 명령의 저장 장소를 나타내는 어드레스 정보(연산 ID)의 이용에 따라, 프로세스 명령수를 줄일 수 있고, 동시에 CPI도 감소 가능해진다.
또한, 본 발명의 마이크로프로세서에 따르면, 하나의 연산기 리소스의 연산 결과를 레지스터 등에 일시적으로 기억하지 않고, 직접 다음 연산기 리소스의 입력으로서 사용하기 때문에, 종래와 마찬가지로 데이터를 전달하는 동안 파이프 라인 스톨이 발생하지 않고, 또한 더미 사이클을 삽입하지도 않고, 연산 처리 내용에 따른 최소한의 사이클수로 연산 처리를 실행할 수 있다.
또한, 본 발명의 마이크로프로세서에 따르면, 하나의 프로세스 명령 내에 복수의 RISC형 명령을 포함하고, 연산 처리 종료 순으로 연산 처리 결과를 기억부에 기록하기 때문에, 종래와 같이 앞의 명령의 연산 처리가 종료할 때까지 나중의 명령이 유지되고, 그 사이에 파이프 라인 스톨이 발생하지 않아, 최소한의 사이클수로 연산 처리를 실행할 수 있다.
또한, 본 발명의 마이크로프로세서에 의하면, 각 파이프 라인으로부터의 기억부에의 기록이 경합하는 경우라도, 동일 파이프 라인 내의 동일 기능을 갖는 연산기 리소스에의 명령을 분류할 수 있고, 및 연산 처리 결과 출력의 멀티 포트 구성에 따라 경합이 회피 가능해진다.
또한, 본 발명의 마이크로프로세서에 의하면, 기억부로부터의 입력 데이터를 판독하여 소정의 연산 처리를 실행할 때, 상기 입력 데이터를 유지하기 때문에, 필요에 따라 동일한 입력 데이터를 재 판독할 필요가 없어지고, 효율적인 연산 처리를 실행할 수 있다.
또한, 본 발명의 마이크로프로세서는, 동일 파이프 라인 내에 사용자 임의로 접속 가능한 복수의 연산기 리소스를 갖는 구성이기 때문에, 종래와 같은 복수의 파이프 라인을 병렬로 배치하는 구성과 비교하여 하드웨어의 규모, 및 소비 전류를 줄일 수 있다.
따라서, 본 발명에 의하면, 마이크로 코드를 최소한으로 억제하여 연산 처리 명령의 고도화, 복잡화에 대응하여, 연산 처리 명령에 따른 효율적인 연산 처리를 실행 가능하게 하고, 또한 하드웨어의 규모, 및 소비 전력을 줄일 수 있는 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체를 제공할 수가 있다.

Claims (28)

  1. 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 있어서,
    입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단과,
    상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단과,
    상기 데이터 판독 수단에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행할 수 있는 연산기 리소스를 실장하는 연산 처리 실행 수단
    을 갖는 것을 특징으로 하는 마이크로프로세서.
  2. 제1항에 있어서,
    상기 마이크로 코드는, 상기 프로세스 명령의 저장 장소를 나타내는 어드레스 정보 대신, 적어도 하나의 RISC형 명령을 직접 실장할 수 있는 것을 특징으로 하는 마이크로프로세서.
  3. 제1항에 있어서,
    프로세스 명령을 임의로 구축 가능한 프로세스 명령 기억 수단과,
    상기 연산 처리 실행 수단의 연산 결과, 및 임의로 설정 가능한 입력 데이터를 기억하는 입출력 데이터 기억 수단을 구비하고,
    상기 데이터 판독 수단은, 상기 프로세스 명령의 저장 장소를 나타내는 어드레스 정보에 기초하여, 상기 프로세스 명령 기억 수단을 참조함으로써, 대응하는 프로세스 명령을 판독하고,
    상기 입출력 데이터 기억 수단으로부터 상기 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터를 더 판독하는 것을 특징으로 하는 마이크로프로세서.
  4. 제1항 내지 제3항 중 어느 한항에 있어서,
    상기 연산 처리 실행 수단은, 상기 프로세스 명령 기억 수단 내의 프로세스 명령을 변경함으로써, 임의로 접속 가능한 복수의 연산기 리소스를 구비하고,
    하나의 연산기 리소스의 연산 결과를 직접 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 하는 마이크로프로세서.
  5. 제4항에 있어서,
    상기 연산 처리 실행 수단은, 상기 연산기 리소스를 필요로 하지 않는 처리에 대해, 상기 입력 데이터를 전파하는 스루 패스를 더 구비하고,
    스루 패스의 출력 결과를 직접 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 하는 마이크로프로세서.
  6. 제4항에 있어서,
    하나의 연산기 리소스의 연산 결과를 직접 다음 연산기 리소스의 입력으로서 사용하는 경우,
    상기 연산 처리 실행 수단은, 프로세스 명령에 대응하는 최종적인 연산기 리소스의 연산 처리 결과만 출력하는 것을 특징으로 하는 마이크로프로세서.
  7. 제1항 내지 제3항, 제5항, 제6항 중 어느 한항에 있어서,
    상기 연산 처리 실행 수단은, 상기 프로세스 명령에 실장되는 RISC형 명령을 병렬로 실행하고, 연산 처리 실행 순서에 관계없이, 연산 처리 결과를 연산 처리 종료 순서대로 출력하는 것을 특징으로 하는 마이크로프로세서.
  8. 제1항 내지 제3항, 제5항, 제6항 중 어느 한항에 있어서,
    상기 연산 처리 실행 수단 내의 각 연산기 리소스는, 연산 처리 결과를 독립적으로 출력하는 멀티 포트 구성으로 되어 있는 것을 특징으로 하는 마이크로프로세서.
  9. 제1항 내지 제3항, 제5항, 제6항 중 어느 한항에 있어서,
    동일한 기능을 갖는 연산기 리소스를 복수개 구비하고, 또한 하나의 프로세스 명령 내에 복수의 RISC형 명령을 포함하며, 상기 RISC형 명령의 병렬 실행시에 연산기 리소스가 경합하는 경우,
    상기 연산 처리 실행 수단은, 동일한 기능을 갖는 다른 연산기 리소스를 사용하여 경합 회피 처리를 실행하는 것을 특징으로 하는 마이크로프로세서.
  10. 제3항, 제5항, 제6항 중 어느 한항에 있어서,
    상기 연산 처리 실행 수단에서 실행되는 프로세스 명령에 대응하는 최종적인 연산기 리소스의 연산 처리 결과를, 상기 입출력 데이터 기억 수단에 기억함과 동시에,
    상기 연산 처리 결과를 상기 데이터 판독 수단에 직접 통지하는 패스와,
    상기 연산 처리 결과를 래치한 후, 상기 데이터 판독 수단에 통지하는 패스를 구비하고,
    상기 데이터 판독 수단은, 다음 프로세스 명령에서 상기 연산 처리 결과를 사용하는 경우, 상기 입출력 데이터 기억 수단으로부터가 아니라, 어느 한 패스로부터의 연산 처리 결과를 판독하는 것을 특징으로 하는 마이크로프로세서.
  11. 제1항 내지 제3항, 제5항, 제6항 중 어느 한항에 있어서,
    상기 데이터 판독 수단에서 판독된 입력 데이터를 래치한 후, 상기 연산 처리 실행 수단 내의 연산기 리소스에 통지하는 패스를 구비하고,
    상기 연산 처리 실행 수단은, 상기 입력 데이터를 재차 사용하는 경우, 상기 패스로부터의 상기 입력 데이터를 판독하는 것을 특징으로 하는 마이크로프로세서.
  12. 제11항에 있어서,
    상기 데이터 판독 수단에서 판독된 입력 데이터를 직접, 상기 연산 처리 실행 수단 내의 연산기 리소스에 통지하는 패스를 더 구비하고,
    상기 래치 후에 연산기 리소스에 통지하는 패스와, 상기 직접 연산기 리소스에 통지하는 패스 중, 어느 하나로부터의 입력 데이터를 사용하는 것을 특징으로 하는 마이크로프로세서.
  13. 제11항에 있어서,
    래치된 입력 데이터는, 상기 연산 처리 실행 수단 내의 모든 연산기 리소스에서 사용 가능한 구성으로 되어 있는 것을 특징으로 하는 마이크로프로세서.
  14. 제3항, 제5항, 제6항, 제12항, 제13항 중 어느 한항에 있어서,
    상기 데이터 판독부는, 입출력 데이터 기억부로부터의 입력 포트를 멀티 포트 구성으로 하고, 각 연산기 리소스에의 입력 데이터를 동시에 공급하는 것을 특징으로 하는 마이크로프로세서.
  15. 제1항 내지 제3항, 제5항, 제6항, 제12항, 제13항 중 어느 한항에 있어서,
    상기 마이크로 코드에 대응하는 연산 처리를 실행할 수 있는 복수개의 파이프 라인을 갖는 것을 특징으로 하는 마이크로프로세서.
  16. 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 있어서,
    입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행 가능하게 하고, 또한 프로세스 명령을 변경함으로써 임의로 접속 가능한 복수개의 연산기 리소스를 구비하고,
    하나의 연산기 리소스의 연산 결과를 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 하는 마이크로프로세서.
  17. 제16항에 있어서,
    상기 연산기 리소스를 필요로 하지 않는 처리에 대해, 상기 입력 데이터를 전파하는 스루 패스를 더 구비하고,
    스루 패스의 출력 결과를 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 것을 특징으로 하는 마이크로프로세서.
  18. 제16항 또는 제17항에 있어서,
    하나의 연산기 리소스의 연산 결과를 일시적으로 기억하지 않고, 다음 연산기 리소스의 입력으로서 사용하는 경우,
    프로세스 명령에 대응하는 최종적인 연산기 리소스의 연산 처리 결과만 출력하는 것을 특징으로 하는 마이크로프로세서.
  19. 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 있어서,
    상기 프로세스 명령에 실장되는 RISC형 명령을 병렬로 실행하고, 연산 처리 실행 순서에 관계없이, 연산 처리 결과를 연산 처리 종료 순서대로 출력하는 것을 특징으로 하는 마이크로프로세서.
  20. 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 있어서,
    입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행하는 복수개의 연산기 리소스를 구비하고,
    각 연산기 리소스는, 연산 처리 결과를 독립적으로 출력하는 멀티 포트 구성으로 되어 있는 것을 특징으로 하는 마이크로프로세서.
  21. 적어도 하나의 RISC형 명령을 실장하는 프로세스 명령을 실행할 수 있는 마이크로프로세서의 연산 처리 실행 방법에 있어서,
    입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 스텝과,
    상기 명령 해독 스텝에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 스텝과,
    상기 데이터 판독 스텝에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행하는 연산 처리 실행 스텝
    을 갖는 것을 특징으로 하는 마이크로프로세서의 연산 처리 실행 방법.
  22. 마이크로 코드를 해독하는 명령 해독 수단과,
    상기 명령 해독 수단보다도 많고, 또한 병렬로 실행 가능한 복수개의 연산기 리소스로 이루어지는 연산 처리 실행 수단을 구비하고,
    상기 연산 처리 실행 수단은 상기 연산기 리소스의 연산 순서를 변경 가능하게 설치한 것을 특징으로 하는 마이크로프로세서.
  23. 제22항에 있어서,
    상기 복수개의 연산기 리소스는, 서로 다른 연산기로 이루어지는 것을 특징으로 하는 마이크로프로세서.
  24. 기본 명령 코드와 확장 명령 코드의 저장 장소를 나타내는 연산 ID로 이루어지는 마이크로 코드를 해독하는 명령 해독 수단과,
    상기 명령 해독 수단에서 해독된 연산 명령에 의해 연산기 리소스를 선택하여 연산 처리하는 연산 처리 실행 수단을 구비하고,
    상기 기본 명령 코드에 의해 최초의 연산기 리소스를 선택하고, 상기 확장 명령 코드에 의해 다음 연산기 리소스를 선택하여, 이에 따라 파이프 라인 연산하는 것을 특징으로 하는 마이크로프로세서.
  25. 시계열로 복수개의 연산기 리소스를 사용하는 마이크로 코드를 해독 가능하고, 상기 연산기 리소스 간의 입출력을 내부의 빈(空) 리소스에 대응시켜 자동적으로 할당하는 기능을 갖는 마이크로프로세서에 있어서,
    상기 기능에 의해 상기 연산기 리소스 간의 입출력의 지정이 마이크로 코드내에 불필요한 것을 특징으로 하는 마이크로프로세서.
  26. 제25항에 있어서,
    상기 연산기 리소스의 출력을 다음 연산에 이용할 연산기 리소스의 입력에 직접 접속함으로써, 상기 연산기 리소스 간의 연산 결과의 입출력에 입출력 수단을 사용하지 않는 것을 특징으로 하는 마이크로프로세서.
  27. 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 있어서,
    입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단과,
    상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단과,
    상기 데이터 판독 수단에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행할 수 있는 연산기 리소스를 실장하는 연산 처리 실행 수단
    을 갖는 것을 특징으로 하는 마이크로프로세서 아키텍쳐.
  28. 적어도 하나의 RISC형 명령을 갖는 프로세스 명령을 실행할 수 있는 마이크로프로세서에 관한 하드웨어 기술(記述) 언어로 기술된 회로 정보를 저장하는 컴퓨터 판독 가능한 기억 매체에 있어서,
    입출력 데이터 전송 내용을 나타내는 정보와 프로세스 명령의 저장 장소를 나타내는 어드레스 정보로 구성되는 마이크로 코드를 해독하는 명령 해독 수단에 관한 회로 정보를 저장하는 제1 데이터 영역과,
    상기 명령 해독 수단에서 해독된 입출력 데이터 전송 내용을 나타내는 정보에 대응하는 입력 데이터와, 상기 어드레스 정보에 대응하는 프로세스 명령을 판독하는 데이터 판독 수단에 관한 회로 정보를 저장하는 제2 데이터 영역과,
    상기 데이터 판독 수단에서 판독된 입력 데이터, 및 프로세스 명령에 따라 연산 처리를 실행할 수 있는 연산기 리소스를 실장하는 연산 처리 실행 수단에 관한 회로 정보를 저장하는 제3 데이터 영역을 갖는 것을 특징으로 하는 기억 매체.
KR1019990008162A 1998-03-12 1999-03-11 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체 KR100309861B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP06159598A JP3614646B2 (ja) 1998-03-12 1998-03-12 マイクロプロセッサ、演算処理実行方法及び記憶媒体
JP1998-061595 1998-03-12

Publications (2)

Publication Number Publication Date
KR19990077799A true KR19990077799A (ko) 1999-10-25
KR100309861B1 KR100309861B1 (ko) 2001-10-29

Family

ID=13175675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990008162A KR100309861B1 (ko) 1998-03-12 1999-03-11 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체

Country Status (6)

Country Link
US (1) US6292881B1 (ko)
EP (1) EP0942358B1 (ko)
JP (1) JP3614646B2 (ko)
KR (1) KR100309861B1 (ko)
CN (1) CN1163823C (ko)
DE (1) DE69926934T2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2374950B (en) * 2001-04-23 2005-11-16 Imagination Tech Ltd Expanded functionality of processor operations within a fixed width instruction encoding
US6988242B2 (en) * 2002-01-07 2006-01-17 International Business Machines Corporation Transforming a portion of a database into a custom spreadsheet
CN100419669C (zh) * 2002-06-13 2008-09-17 中颖电子(上海)有限公司 精简功能及指令数量的微处理器
CN102681796B (zh) * 2012-05-18 2015-04-08 重庆大学 数据多级流水算法模块中的ram分布结构
CN113835901A (zh) * 2013-10-15 2021-12-24 北京奥星贝斯科技有限公司 读锁操作方法、写锁操作方法及系统
CN103699361A (zh) * 2013-12-03 2014-04-02 青岛海尔软件有限公司 Android平台的Linux命令执行
US10157164B2 (en) * 2016-09-20 2018-12-18 Qualcomm Incorporated Hierarchical synthesis of computer machine instructions
WO2021182222A1 (ja) * 2020-03-11 2021-09-16 株式会社エヌエスアイテクス 演算装置及び演算方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5894035A (ja) 1981-11-30 1983-06-04 Nippon Telegr & Teleph Corp <Ntt> デ−タ処理システム
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
US5630157A (en) * 1991-06-13 1997-05-13 International Business Machines Corporation Computer organization for multiple and out-of-order execution of condition code testing and setting instructions
JPH05181669A (ja) 1991-12-27 1993-07-23 Fujitsu Ltd マイクロプロセッサ
JPH05181673A (ja) 1991-12-27 1993-07-23 Fujitsu Ltd マイクロプロセッサ
US5490252A (en) * 1992-09-30 1996-02-06 Bay Networks Group, Inc. System having central processor for transmitting generic packets to another processor to be altered and transmitting altered packets back to central processor for routing
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
JPH0944355A (ja) 1995-07-31 1997-02-14 Omron Corp プログラマブルコントローラ
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
US5926642A (en) * 1995-10-06 1999-07-20 Advanced Micro Devices, Inc. RISC86 instruction set
JPH09305401A (ja) * 1996-05-13 1997-11-28 Mitsubishi Electric Corp コンピュータ及びコンパイラ
JP3745450B2 (ja) * 1996-05-13 2006-02-15 株式会社ルネサステクノロジ 並列処理プロセッサ
EP0862111B1 (en) * 1997-02-27 2010-07-21 International Business Machines Corporation Dynamic conversion between different instruction codes by recombination of instruction elements

Also Published As

Publication number Publication date
CN1163823C (zh) 2004-08-25
EP0942358A2 (en) 1999-09-15
JP3614646B2 (ja) 2005-01-26
DE69926934D1 (de) 2005-10-06
EP0942358A3 (en) 2003-04-02
JPH11259290A (ja) 1999-09-24
US6292881B1 (en) 2001-09-18
CN1229211A (zh) 1999-09-22
KR100309861B1 (ko) 2001-10-29
EP0942358B1 (en) 2005-08-31
DE69926934T2 (de) 2006-05-11

Similar Documents

Publication Publication Date Title
US11609862B2 (en) Method and apparatus to sort a vector for a bitonic sorting algorithm
Lee Programmable dsp architectures. ii
US6356994B1 (en) Methods and apparatus for instruction addressing in indirect VLIW processors
US6484255B1 (en) Selective writing of data elements from packed data based upon a mask using predication
US6775766B2 (en) Methods and apparatus to dynamically reconfigure the instruction pipeline of an indirect very long instruction word scalable processor
EP1102163A2 (en) Microprocessor with improved instruction set architecture
US11550575B2 (en) Method and apparatus for vector sorting
WO1997038372A1 (en) A data processing management system
US9141386B2 (en) Vector logical reduction operation implemented using swizzling on a semiconductor chip
EP4152146A1 (en) Data processing method and device, and storage medium
KR100309861B1 (ko) 마이크로프로세서, 연산 처리 실행 방법 및 기억 매체
KR100765567B1 (ko) 산술 논리 유닛 및 스택을 가지는 데이터 프로세서, 멀티미디어 장치 및 컴퓨터 판독가능 기록 매체
US6948049B2 (en) Data processing system and control method
US7047396B1 (en) Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
US5465334A (en) Processor with a respective latch provided for each pipelined stage to transfer data to the pipeland stages
JPH096614A (ja) データ処理装置
JP2004503872A (ja) 共同利用コンピュータシステム
US20030009652A1 (en) Data processing system and control method
David et al. Self-timed architecture of a reduced instruction set computer
US6564312B1 (en) Data processor comprising an arithmetic logic unit
US12019561B2 (en) Pseudo-first in, first out (FIFO) tag line replacement
US20230065512A1 (en) Pseudo-First In, First Out (FIFO) Tag Line Replacement
US20040260912A1 (en) Arrangement and a method in processor technology
JP2022546785A (ja) 迅速かつ広範な結果生成のための隣接simdユニットの再利用
Kneip et al. Parallel implementation of medium level algorithms on a monolithic ASIMD multiprocessor

Legal Events

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

Payment date: 20120821

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20130822

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee