KR940002323B1 - 마이크로명령어의 수식기능을 가진 제어장치 - Google Patents

마이크로명령어의 수식기능을 가진 제어장치 Download PDF

Info

Publication number
KR940002323B1
KR940002323B1 KR1019900006468A KR900006468A KR940002323B1 KR 940002323 B1 KR940002323 B1 KR 940002323B1 KR 1019900006468 A KR1019900006468 A KR 1019900006468A KR 900006468 A KR900006468 A KR 900006468A KR 940002323 B1 KR940002323 B1 KR 940002323B1
Authority
KR
South Korea
Prior art keywords
information
instruction
register
control information
feed
Prior art date
Application number
KR1019900006468A
Other languages
English (en)
Other versions
KR900018807A (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 KR900018807A publication Critical patent/KR900018807A/ko
Application granted granted Critical
Publication of KR940002323B1 publication Critical patent/KR940002323B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • 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
    • 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/30181Instruction operation extension or modification
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching

Abstract

내용 없음.

Description

마이크로명령어의 수식기능을 가진 제어장치
제1도는 본 발명의 일실시예에 의한 제어장치를 도시한 블록도.
제2도는 동 실시예의 제어정보수식장치의 블록도.
제3도는 동 실시예의 기본적인 명령어해독시의 동작을 설명하는 타이밍도.
제4도는 종래의 제어장치의 구성을 표시한 구성도.
제5도는 매크로명령어의 각종 피일드의 정보를 마이크로명령어의 특정피일드에 반영하는 메카니즘을 설명하기 위한 설명도.
* 도면의 주요부분에 대한 부호의 설명
1 : 제어기억장치 2 : 수식정보생성장치
3 : 제어정보수식장치 4 : 선택장치
5 : 입력레지스터 6 : 제어기억어드레스생성장치
10 : 비트수식장치 11 : 스택장치
13 : 개입중단접수장치
본 발명은, 컴퓨터의 명령어 실행시에, 마이크로 프로그램의 제어방식에 의해 연산장치의 제어를 행하는 마이크로명령어의 수식기능을 가진 제어장치에 관한 것이다.
프로세서의 고성능화를 위하여, 예를들면 매크로명령어를 1클록주기로 실행할려면, 하나의 매크로명령어를, 하나의 매크로명령어로 실행하지 않으면 안된다. 이와 같은 경우, 매크로명령어의 각종 피일드의 정보를 마이크로 명령어의 특정 피일드에 반영하지 않으면 안된다. 한편, 명령어 사이즈의 압축이나 기능의 추가에 의해 매크로켜명령어의 비트할당이 복잡화되고 있다. 이 때문에, 제어장치의 회로규모가 커지게 된다.
예를들면, 제5도에 표시한 바와같이, 레지스터사이에서 데이터전송을 행하는 매크로명령어가 2개의 명령어포맷을 가지게 되는 경우, 어느쪽의 경우에 있어서도 동일한 마이크로명령어를 생성할 필요가 있으며, 마이크로명령어의 소스피일드(src 피일드) 및 데스티네이션 피일드(dest 피일드)에서의 수식은 복잡하게 된다. 이것을 명령부호해독기(decoder)에 PLA(Programmable Logic Array)등을 사용해서 한번에 생성하면, 회로규모의 증대를 피할 수 없다.
또한, 종래의 마이크로명령어의 수식기능을 가진 제어장치로서는, 예를들면 일본국 특개소 62-143138에 개시되어 있다. 제4도는 일본국 특개소 62-143138의 마이크로프로그램 제어장치의 블록도를 표시한 것이며, (101)은 제어 기억장치이다. (102),(103),(104)는 제어정보를 무효화하기 위한 게이트 회로이고, (105)는 부호해독기이고, (106)은 레지스터이다.
이상과같이 구성된 종래의 장치에 있어서는 부호해독기(105)에 의해 지시된 게이트회로(102),(103),(104)는, 제어기억장치(101)의 출력의 일부를 무효화한다. 이 기능에 의해, 목적에 따라서 필요한 기능만을 사용할 수 있어, 제어기억장치(101)상의 마이크로프로그램의 삭감을 행할 수 있다.
그러나, 상기한 바와 같은 구성에서는, 마이크로명령어의 수식이 무효화에 한정되고, 효율적으로 행할 수 없다. 따라서, 하아드웨어 및 마이크로명령어의 대폭적인 삭감을 행할 수 없다고 하는 문제점을 가지고 있었다.
본 발명의 목적은, 마이크로명령어의 수식을 효율적으로 행할 수 있고, 동시에 데이터에 의존한 처리등을 마이크로명령어에 의해 유연하게 행함으로써, 하아드웨어와 마이크로명령어의 대폭적인 삭감을 행할 수 있는 마이크로명령어의 수식 기능을 가진 제어장치를 제공하는데 있다.
상기 목적을 달성하기 위하여, 본 발명에 의한 마이크로명령어의 수식기능을 가진 제어장치는, 복수의 마이크로명령어를 기억하고, 매크로명령어로부터 해독된 엔트리어드레스 및 제어기억장치의 제어정보에 의거하여, 소정의 마이크로명령어를 제어정보수식 장치에 출력하믐 제어기억장치와, 상기 매크로명령어를 순차적으로 설정하여 유지하고, 상기 매크로명령어를 수식 정보생성장치에 출력하는 입력레지스터와, 상기 매크로명령어로부터 해독된 제어정보 및 제어기억장치의 제어정보에 의거하여, 상기 입력레즈스터의 매크로명령어로부터 레지스터의 번호 피일드를 소정의 순서로 분리하고, 이 레지스터 번호피일드를 수식정보로서 제어정보 수식장치에 출력하는 수식정보생성장치와, 상기 마이크로명령어의 오퍼랜드피이리드에 상기 레지스터의 번호피일드를 설정하여 수식하거나 상기 마이크로명령어와 동일하게 수식하거나 상기 마이크로명령어의 1개이상의 피일드를 불능으로 수식하도록, 상기 매크로명령어로부터 해독된 제어정보 및 제어기억장치의 제어정보에 의거하여, 상기 마이크로명령어와 수식 정보사이의 논리연산을 행하는 제어정보 수식장치를 포함하는 것을 특징으로 한다.
본 발명은 상기한 수단에 의해, 제어기억장치로부터 출력되는 마이크로명령어의 일부 또는 전부의 피일드를 무효화할 뿐만 아니라, 수식정보생성장치로부터 출력되는 수식정보에 의해 수식할 수 있고, 특히 입력레지스터에 유지된 정보를 근거로, 마이크로명령어의 처리진행에 따라서 수식내용을 변경할 수 있다.
아하, 본 발명의 일실시예에 대하여 첨부한 도면을 참조하면서 상세히 설명한다.
제1도는 본 발명의 제어장치의 구성을 표시한 블록도이다. 제1도에서, (1)은 복수의 마이크로명령어를 기억하는 제어기억장치이고, (2)는 마이크로명령어를 수식하기 위한 정보를 생성하는 수식정보생성장치이며, PLA(Programmable Logic Array)를 사용해서 실현하고 있다. (3)은 제어기억장치(1)로부터 출력되는 마이크로명령어(14) 및 수식정보생성장치(2)로부터 출력되는 수식정보(15)를 각각 수신하고, 상기 수식정보에 의해 마이크로명령어(14)를 수식하는 제어정보수식장치이다.
수식정보 생성장치(2)에 입력되는 입력데이터는, 복수의 입력중에서 선택장치(4)에 의해 선택되고, 선택된 데이터를 입력레지스터(5)에 의해 유지한다. (6)은 어드레스신호를 제어기억장치(1)에 출력하는 제어기억 어드레스생성장치이고, (7)은 매크로명령어(16)을 해독하는 부호해독기이다.
수식정보생성장치(2)는 제어기(8)에 의해서 제어되고, 제어정보 수식장치(3)는 제어기(9)에 의해 제어된다. (10)은 입력레지스터(5)의 소정의 비트를 수식하는 비트 수식장치이고, (11)은 입력레지스터(5)에 유지된 데이터를 대피하고 필요에 따라 데이터를 입력레지스터에 복귀하는 스택장치이고, (12)는 제어정보 수식장치(3)로 부터 수식된 마이크로정보를 수식하고 명령어를 실행하는 연산장치이다. 연산 장치(12)는 ALU의 범용레지스터를 포함한다. (13)은 개입중단요소의 정보를 유지하는 개입중단접수장치이다.
제2a도는, 마이크로명령어내에서, 제어정보로서 출력하는 소정의 정보를 수식하는 기능을 가진 제어정보수식장치(3)의 일부분을 도시한다. 특히 상기 제어정보수식장치(3)의 상기 부분(제2a도)은 제어기(9)로부터 출력되는 제어정보(17)에 따라서 1개의 오퍼레이션 피일드, 2개의 소스오퍼랜드 피일드 및 1개의 데스티네이션 오퍼랜드 피일드 등의 정보(15)를 수식함으로써, 마이크로명령어(14)중 1개의 오퍼레이션 피일드, 2개의 소스오퍼랜드 피일드 및 1개의 데스티네이션 오퍼랜드 피일드를 수식하도록 기능한다. 오퍼렌이션 피일드는 연산장치(12)에 의해 실행하는 연산을 지정한다. 4개의 피일드의 수정을 독립적으로 행한다. 제어정보(17)는 4피일드의 각각에 대응하는 4비트를 가진다. 또한, 제어정보 수식장치(3)는 4피일드의 각각에 대응하는 4개의 AND 게이트(3A)와 4개의 OR 게이트(3B)를 가진다. 제어정보(17)의 비트가 "1"일때에, 대응하는 AND게이트는 개방되어 수식정보(15)의 대응피일드는 대응하는 OR게이트에 전송되고, 마이크로 명령어(14)의 피일드와 수식정보(15)의 피일드사이의 "OR"연산을 행한다. 제어정보(17)의 비트가 "0"일때에, 대응하는 AND 게이트는 폐쇄되어 대응하는 OR게이트에 수식정보(15)의 대응피일드가 전송되는 것이 금지되므로, 마이크로 명령어(14)의 피일드를 수식하는 것이 금지된다.
제2b도는, 마이크로명령어내에서, 데이터로서 연산장치(12)에 출력하는 소정의 정보를 수정하는 기능을 가진 제어정보 수식장치(3)의 다른 부분을 도시한다. 특히, 상기 제어정보수식장치(3)의 다른 부분(제2b도)은 데이터로서 사용되는 수식정보(15)와 마이크로정보(14)의 피일드를 선택하도록 작동하는 선택장치(26)를 포함한다. 이 선택장치(26)는 제어기(9)로부터 출력되는 제어정보(17)에 의해 제어된다. 일반적으로, 마이크로명령어는 복수타입으로 구성된다. 마이크로명령어의 타입 피일드는 마이크로명령어의 타입을 나타낸다. 데이터로서 사용되는 마이크로명령어의 피일드는 마이크로명령어의 타입에 의존한다. 따라서, 선택장치(26)에 의해 선택된 데이터는, 마이크로명령어(14)의 타입피일드에 응답하여 사이즈 확장장치에 의해서 크기를 확장하고, 확장된 데이터(23)를 연산장치(12)에 출력한다.
이상과 같이 구성된 본 실시예에 대해서, 이하 그 동작을 설명한다.
제3도는 명령어 해독시의 기본적인 동작을 설명하는 타이밍도이다. 이 예에서는, 명령어 "a"와 "b"를 취급한다. 명령어 "a"는 1클록주기에서 실행할 수 있는 레지스터와 레지스터사이의 연상명령어이고, 명령어 "b"는 2클록주기에서 실행할 수 있는 메모리와 레지스터 사이의 연산명령어이다.
명령어 "a"의 처리에 대하여 이하 설명한다.
클록주기(t1)에서, 명령어 "a"를 가지는 매크로명령어를 체취한다. 클록주기(t2)에서, 부호해독기(7)는 상기 매크로명령어를 해독하여, 엔트리어드레스(18)와 제어정보(19)를 발생한다. 상기 엔트리어드레스(18)는 제어기억어드레스생성장치(6)에 공급되고, 상기 제어정보(19)는 제어기(8),(9)에 공급된다.
클록주기(t3)에서, 제어기억 어드레스생성장치(6)는 앤드리어드레스(18)를 표시하는 어드레스를 출력하고, 제어기억장치(1)는 제어기억 어드레스 생성장치(6)로부터 공급된 어드레스에 응답하여 마이크로명령어(14)를 출력한다. 이 경우에는, 마이크로명령어(14)중 오퍼레이션 피일드는 연산장치(12)에 의해 실행될 연산을 나타내는 정보를 가지고 있고, 또한 마이크로명령어(14)중 2개의 소스오퍼랜드 피일드와 데스티네이션 오퍼랜드 피일드는 "00…0"으로 설정된다. 한편, 선택장치(4)는 매크로명령어(16)를 선택하고, 입력레지스터(5)에서 명령어 "a"를 가지는 매크로명령어를 설정한다.
제어기(8)는 제어정보(19)에 따라서 수식정보생성장치(2)를 제어하고, 명령어 "a"를 가지는 매크로명령어에서 레지스터 번호피일드를 분리하고, 수식정보생성장치(2)로부터 상기 분리된 레지스터 번호피일드를 수식명령어(15)로서 출력한다. 레지스터 번호피일드는 마이크로 명령어에 필요하다. 특히, 매크로명령어의 소스쪽에서 레지스터 번호를 분리하여, 수식정보(15)의 한쪽의 소스오퍼랜드의 수식피일드에 상기 레지스터번호를 설정한다. 또한, 매크로명령어의 데스티네이션쪽에서 레지스터번호를 분리하여, 수식정보(15)의 다른 쪽와 소스오퍼랜드 피일드와 데스티네이션 오퍼랜드 피일드에 상기 레지스터 번호를 설정한다.
제어기(9)는 제어명령어(19)에 따라서 제어정보수식장치(3)를 제어한다. 특히, 제어기(9)는, 2개의 소스오퍼랜드 피일드와 데스티네이션 오퍼랜드 피일드에 대해서 마이크로명령어(14)와 수식명령어(15) 사이에 제어정보수식장치(3)가 "OR" 연산을 행하도록 명령한다. 또한, 제어기(9)는, 오퍼레이션 피일드에 대해서 제어정보수식장치(3)가 수식명령어(15)에 의해 마이크로명령어(14)의 수정을 금지하도록 명령한다. 따라서, 소정의 레지스터 번호가 마이크로명령어의 오퍼랜드 피일드에 설정되어 수식이 완료된다.
클록주기(t4)에서, 연산장치(12)는 제어정보수식장치(3)로부터 수식하여 공급되는 마이크로명령어에 따라서 명령을 실행한다.
명령어 "b"의 처리에 대하여 이하 설명한다.
명평어 "b"의 처리도 이하 설명하는 내용을 제외하고는 명령어 "a"의 처리와 동일하다.
일반적으로, 명령어 "b"는 여러타입으로 구성된다. 여기서 설명하는 명령어 "b"는, 연산장치(12)에 출력할 필요가 있는 두타입의 마이크로명령어로 구성된다. 그중 하나의 마이크로명령어는 메모리오포랜드를 채취하기 위하여 사용되고, 나머지 하나의 마이크로명령어는 체취된 오퍼랜드와 래지스터사이의 연산을 행하기 위하여 사용된다.
어떤 경우에는, 두개의 마이크로명령어를 필요로 하는 이유로서, 제어기억장치로부터 채취된 오퍼랜드가 명령어 "b"에 대해서 필요하기 때문이다.
클록주기(t2)에서, 명령어 "b"를 가지는 매크로명령어를 채취한다.
클록주기(t3)에서, 매크로명령어에 의거해서 엔트리어드레스(18)과 제어정보(19)를 부호해독기(7)에 의해 발생하도록 매크로명령어를 부호해독기(7)에 의해 해독한다. 엔트리어드레스(18)를 제어기억어드레스 생성장치(6)에 공급하고, 제어정보(19)를 제어기(8),(9)에 공급한다.
클록주기(t4)에서, 제어기억 어드레스생성장치(6)는 엔트리어드레스(18)를 표시하는 어드레스를 출력하고, 제어기억장치(1)는 제어기억 어드레스생성장치(6)로부터 공급된 어드레스에 응답하여 마이크로명령어(14)를 출력한다. 이 경우에는, 마이크로명령어(14)의 오퍼레이션 피일드는, 연산장치(12)에서 메모리오퍼랜드를 채취하기 위해 실행할 오퍼레이션을 나타내는 정보를 가지고, 또한 데스티네이션 오퍼랜드 피일드는 임시레지스터의 레지스터 번호를 가진다. 다음의 클록주기 동안 다음의 마이크로명령어를 출력하여야 하기 때문에, 제어기억장치(1)는 제어기억어드레스생성장치(6)에 다음의 마이크로명령어의 어드레스를 발생하기 위한 제어정보(21)를 공급한다. 또한, 제어기억장치(1)는 제어기(8), (9)에 다음의 마이크로명령어에 관계되는 수식정보를 발생하기 위한 제어정보(22)를 공급한다. 선택장치(4)는 매크로명령어(16)를 선택하고 입력레지스터(5)에 명령어 "b"를 가지는 매크로명령어를 설정한다. 제어기(9)는 제어정보(19)에 따라서 제어정보 수식장치(3)를 제어한다. 특히, 제어기(9)는 2개의 소스오퍼랜드의 피일드, 데스티네이션 오퍼랜드의 피일드 및 오퍼랜이션의 피일드에 대해서 제어정보수식장치(3)는 수식정보(15)에 의해 마이크로명령어(14)의 수식을 금지하도록 명령한다. 따라서, 제어정보수식장치(3)는 입력마이크로명령어(14)와 동일하게 수식된 마이크로명령어를 출력한다. 상기 처리의 실행과 병행하여 메모리오퍼랜드의 어드레스 계산을 실행한다.
클록주기(t5)에서, 연산장치(12)는 제어정보수식장치(3)로부터 수식하여 공급되는 마이크로명령어에 따라서 메모리의 채취를 실행한다. 다음의 마이크로명령어에 대한 어드레스를, 선행의 클록주기(t4)에서 출력되는 제어정보(21)에 응답하여, 제어기억 어드레스생성장치(6)로부터 출력하고, 제어기억장치(1)는 제어기억 어드레스생성장치(6)로부터 공급된 어드레스에 응답하여 후행의 마이크로명령어(14)를 출력한다. 이 경우에는, 마이크로명령어(14)의 오퍼레이션 피일드는 연산장치(12)에서 실행할 오퍼레이션을 나타내는 정보를 가지고, 한쪽의 소스오퍼랜드 피일드는 임시레지스터의 레지스터 번호를 가지고, 다른 쪽의 소스오퍼랜드 피일드와 데스티네이션 오퍼랜드 피일드는 "00…0"으로 설정된다. 한편, 입력 레지스터(5)는 명령어 "b"를 가지는 매크로명령어의 유지를 계속한다. 제어기(8)는 선행의 클록주기(t4)에서 제어기억장치(1)로부터 출력되는 제어정보(22)에 따라서 수식정보생성장치(2)를 제어하고, 명령어 "b"를 가지는 매크로명령어로 부터 레지스터 번호피일드를 분리하고, 수식명령어(15)로서 수식정보생성장치(2)로 부터 상기 레지스터 번호피일드를 출력한다.
레지스터 번호피일드는 마이크로명령어에서 필요하다. 특히, 매크로명령어의 데스티네이션쪽에서의 레지스터 번호를 분리하고, 수식정보(15)의 소스오퍼랜드 피일드와 데스티네이션 오퍼랜드 피일드중 어느하나에 상기 레지스터 번호를 설정한다. 제어기(9)는 선행의 클록주기(t4)에서 제어기억장치(1)로부터 출력되는 제어정보(22)에 따라서 제어정보 수식장치(3)를 제어한다. 특히, 제어기(9)는 제어정보수식장치(3)가 두개의 소스오퍼랜드 피일드와 데스티네이션 오퍼랜드피일드중 어느하나에 대해서 마이크로명령어(14)와 수식명령어(15) 사이에 "OR" 연산을 행하도록 명령한다. 또한, 제어기(9)는 , 제어기억장치(1)로부터 임시레지스터의 레지스터 번호를 출력하는 마이크로명령어(14)중에서 오퍼레이션 피일드와 다른 쪽의 소스오퍼랜드 피일드를 수식정보생성장치(2)로부터 출력되는 수식정보(15)에 응답하여 제어정보 수식장치(3)에서 수기되진 않도록 명령한다. 따라서, 수식완료된 마이크로명령어의 오퍼랜드 피일드에 소정의 레지스터번호를 설정한다.
클록주기(t6)에서는, 연상장치(12)는 제어정보수식장치(3)로부터 수식되어 공급된 마이크로명령어에 따라서 명령을 실행한다.
복수의 분리된 명령어코드를 가진 매크로명령의 경우에는, 명령어코드를 순차적으로 입력레지스터(5)에 입력하면서 매크로명령어의 처리를 진행한다. 스택장치(11)는 입력레지스터(5)에 유지된 명령어코드를 대피한다. 선행의 명령어코드가 필요할 경우에는, 선행의 명령어코드를 상기 스택장치(11)로부터 복귀된다. 스택장치(11)에 의한 대피 및 복귀처리를 마이크로명령어의 서브루틴과 함께 행할 경우에는, 마이크로프로그램의 유연성이 높아진다.
복수의 레지스터에 대한 대피 및 복귀처리를 행하는 명령어가 레지스터를 나티내는 비트열을 가지고 있는 경우에는, 처리의 진행에 따라서 목표레지스터 번호를 갱신한, 이와 같은 경우에는, 입력레지스터(5)에 설정된 비트열중 어느하나의 레지스터 번호를 수식정보(15)로서 수식정보생성장치(2)로부터 출력하고, 또한 입력레지스터(5)에 유지된 비트열중 출력된 레지스터 번호에 대응하는 비트를 비트수식장치(10)에 의해 수식함으로써, 마이크로 프로그램처리의 고속화와 마이크로 프로그램의 간단화를 실현할 수 있다.
선택장치(4)는 연산장치(12)의 데이터버스(24)에 접속된다. 이와같이 접속함으로써, 매크로명령어에 연산을 지정하지 않고 연산장치(12)내의 범용레지스터등에 상기 연산을 지정하는 비트피일드와 같은 고기능의 명령어를 우효하게 처리할 수 있다. 지정된 연산내용을 연산장치(12)로부터 선택장치(4)를 통하여 입력레지스터(5)에 전송한다. 이와 같이 전송된 연산내용을 입력레지스터(5)로부터 수식정보생성장치에 출력한다. 수식정보생성장치(2)는 수식정보(15)의 오퍼레이션 피일드에 목표연산을 설정한다. 제어정보수식장치(3)는 오퍼레이션 피일드에 대해서 마이크로 명령와 수식정보(15)사이의 "OR" 연산을 행한다.
명령어의 처리순서가 연산결과나 메모리상의 데이터에 의존하는 경우에는 목표 데이터를 연산장치(12)로부터 선택장치(4)를 통하여 입력레지스터(5)에 전송하고, 또한 목표데이터를 수식정보생성장치(2)에 출력한다. 수식정보생성장치(2)는 목표데이터에 의거하여 분기정보(25)를 발생한다. 상기 분기정보(25)는 처리순서를 변경시키기 위한 판정조건과 다방향분기를 위한 오프셋 등을 나타낸다.
상기 분리정보(25)를 제어기억 어드레스생성장치(6)에 출력한다. 이와 같이 출력함으로써, 마이크로프로그램의 처리속도를 증가시킬 수 있고 또한 마이크로프로그램의 유연성을 향상시킬 수 있다. 상기 분기처리중에, 입력레지스터(5)에 설정된 이전의 데이터를 다시 필요로 하는 경우가 있다. 이러한 경우에 대비해서, 목표데이터를 입력레지스터(5)에 설정할때에, 입력레지스터(5)의 이전데이터를 스택장치(11)에 대피할 수 있다.
수식정보생성장치(2)는 규칙적인 구조를 가진 PLA를 사용해서 용이하게 실현할 수 있다. 또한, 제어정보수식장치(3)는 간단하고 규칙적인 구조를 가진다. 따라서, 제어정보수식장치(3)를 LSI로 구성한때에는, 상당히 작은 면적만을 점유한다.
상기 설명으로부터 알 수 있는 바와 같이, 제어기억장치(1)로부터 출력된 마이크로명령어의 1개 이상의 피일드를 제어기억장치(3)에 의해 불능(disable)으로 할 수 있다. 또한, 제어기억장치(1)로부터 출력된 마이크로명령어중 1개 이상의 피일드를, 수식정보생성장치(2)로부터 출력된 수식정보에 따라서 제어정보수식장치(3)에 의해 수식할 수 있다. 마이크로명령어의 처리가 지냉됨에 따라, 수식내용을 입력레지스터(5)에 유지된 정보에 의거하여 변경될 수 있다. 따라서, 마이크로명령어의 수식에 대한 유연성을 향상시킬 수 있고, 또한, 마이크로명령어를 공통으로 형성하거나 스텝의 수르 감소킴으로써 마이크로명령을 삭감할 수 있다.
선택장치(4)는 개입중단요소를 유지하는 개입중단접수장치(13)에 접속되어 있다. 이와 같이 접속함으로써, 개입중단을 수신하는 처리를 행하는 동안, 개입중단의 요소의 다중수신과, 개입중단요소에 대응하는 처리순서의 변화 및 판독입력할 개입중단벡터의 어드레스변화 등을 유효하게 처리할 수 있다. 수신된 개입중단 요소를 개입중단접수장치(13)로부터 선택장치(4)를 통하여 입력레지스터(5)에 전송한다. 개입중단요소를 다중수신하는 경우에는, 수식정보생성장치(2)는 제어기억 어드레스 생성장치(6)에 대해서 처리순서를 변경시키기 위한 판정조건과 다방향 분기를 위한 오프셋을 설정한다. 상기와 같이 구성함으로써, 개입중단처리를 위한 하드웨어를 간단하게 할 수 있고 또한 개입중단처리순서의 유연성을 향상시킬 수 있다.
본 실시예는 다음과 같이 수정할 수 있다. 본 실시예에서는 제어정보수식장치(3)는 제어기억장치(1)로부터 출력된 제어정보(22)에 응답하는 제어기(9)에 의해 제어되지만, 제어정보(22)를 수식정보생성장치(2) 또는 기타 장치로부터 출력할 수 있다. 또한, 제어타이밍도, 본 실시예에서는, 다음의 클록으로 하고 있지만, 동일클록으로 하여도 된다.
또한, 본실시예에서는, 데이터버스(24)를 연상장치(12)의 입력쪽의 버스로부터 출력하고 있지만, 출력쪽의 버스로부터 출력하여도 된다.
또한, 선택장치(4)는, 연산장치(12)의 데이터버스(24)에 접속되고, 제어정보수식장치(3)는, 연산장치(12)에 데이터(23)를 출력할 수 있기 때문에, 수식정보생성장치(2)를 연산장치로도 사용할 수 있다. 수식정보생성장치(2)를 PLA로 실현하고 있기 때문에, 배선이 복잡화되는 우선순위부호기(Priority Enocoder)나 비트리버어스장치(bit reverse device)등을 효과적으로 실현할 수 있다.
이상 설명한 바와 같이, 본 발명에 의하면, 제어기억장치로부터 출력되는 마이크로명령어의 일부 또는 전부의 피일드를 제어정보수식장치에 의해 무효화할 뿐만 아니라, 수식정보생성장치로부터 출력되는 수식정보에 의해 수식할 수 있고, 특히 입력레지스터에 유지된 정보에 의거하여 마이크로명령어처리의 진행에 따라서 수식내용을 변경할 수 있다. 이 때문에, 마이크로명령어의 수식의 유연성이 증대하고, 마이크로명령어의 공통화나 스텝수의 압축등에 의해 마이크로 명령어의 삭감을 행할 수 있어 그 실용적 효과는 크다.
또, 명령어코우등의 복수의 입력을 선택하는 선택장치를 구비함으로서 명령어코드 뿐만 아니라, 각종의 정보를 마이크로명령어의 수식을 위하여 사용할 수 있다. 이 때문에, 종래에는 마이크로명령어에 의해 연산장치를 사용해서 순차적으로 판정과 분기를 반복적으로 행하여 처리하고 있던 복잡한 처리를, 마이크로명령어의 수식에 의해 유연하고 고속으로 실현할 수 있어 그 실용적 효과는 크다.
또, 선택장치는 연상장치로부터 데이터를 입력하기 위한 데이터버스를 접속함으로서, 연산결과 등의 데이터에 의해서 명령어의 처리순서가 변화하거나 연산의 종류가 지정되는 경우에는, 마이크로명령어의 수식에 의해 유연하고 고속으로 실현할 수 있어 그 실용적 효과는 크다.
또, 개입중단요소를 유지하는 개입중단접수장치는 선택장치에 접속함으로서, 개입중단처리의 많은 부분에 대한 대응(특히 다중접수시에 대한 대응)을 마이크로 프로그램에 의해 효율적으로 행할 수 있기 때문에, 개입중단전용의 복잡한 회로를 삭감할 수 있어 그 실용적 효과는 크다.
또, 입력레지스터에, 이 입력레지스터의 소정의 비트에 포함되어 있는 선택된 입력데이터의 일부를 수식하기 위한 비트수식장치를 접속하으로서, 입력데이터를 처리의 진행에 따라서 순차 변화시키면서, 수식정보 생성장치로부터 마이크로명령어의 수식정보를 생성할 수 있어 그 실용적 효과는 크다. 이것은, 복수의 레지스터의 대피나 복귀를 행하는 명령어가, 소정의 레지스터를 비트열로서 표현하고 있는 경우등에, 효과가 있다.
또, 스택장치를 구비함으로서, 수식정보생성장치에 입력한 입력정보의 대피나 복귀를 행할 수 있다. 이에 의해, 마이크로프로그램에서 서브루틴에 대응하는 경우나 일시적으로 다른 데이터를 입력레지스터에 설정하는 경우에, 본래의 입력레지스터의 내용을 처리의 진행에 따라서 대피 및 복귀를 할 수 있어, 마이크로 프로그램 작성의 유연성이 향상되어 그 실용적 효과는 크다.
제어기억장치에 어드레스를 공급하는 제어기억어드레스생성장치에 수식정보생성장치의 출력의 일부를 접속함으로서, 제어기억어드레스생성장치에서, 조건판단이나 다방향분기를 행하는 경우에 필요하게 되는 정보를 수식정보생성장치에 의해 유연하게 생성할 수 있고, 명령어코드나 데이터등에 의존한 처리를 마이크로명령어의 수식에 의해 유연하고 고속으로 실현할 수 있어 그 실용적 효과는 크다.
또한, 수식정보생성장치에서는, 명령어코드중 피일드를 분리하기 위하여 비교적 단순한 논리회로에 의해 다수의 기능을 실현할 때에는 배선이 복잡하게 되어 특히 LSI화하는 경우에 문제가 되었지만, 수식정보생성장치를 PLA(Programmble Logic Array)에 의해 실현함으로서, LSI화 할수 있고, 따라서, 면적의 축소 및 설계 변경이 효과적으로 용이하다.

Claims (11)

  1. 복수의 마이크로명령어(14)를 기억하고, 매크로명령어(16)로부터 해독된 엔트리어드레스(18) 및 제어기억장치(1)의 제어정보(22)에 의거하여, 소정의 마이크로명령어(14)를 제어정보수식장치(3)에 출력하는 제어기억장치(1)와, 상기 매크로명령어를 순차적으로 설정하여 유지하고, 상기 매크로명령어를 수식정보생성장치(2)에 출력하는 입력레지스터(5)와, 상기 매크로명령어로부터 해독된 제어정보(19) 및 제어기억장치(1)의 제어정보(22)에 의거하여, 상기 입력레지스터의 매트로명령어로부터 레지스터의 번호피일드를 소정의 순서로 분리하고, 이 레지스터의 번호피일드를 수식정보(15)로서 제어정보 수식장치(3)에 출력하는 수식정보생성장치(2)와, 상기 마이크로명령어(14)의 오퍼랜드피일드에 상기 레지스터의 번호피일드를 설정하여 수식하거나 상기 마이크로명령어와 동일하게 수식하거나 상기 마이크로명령어의 1개 이상의 피일드를 불능으로 수식하도록, 상기 매크로명령어(16)로부터 해독된 제어정보(19) 및 제어기억장치(1)의 제어정보(22)에 의거하여, 상기 마이크로명령어(14)와 상기 수식정보(15) 사이의 논리연산을 행하는 제어정보수식장치(3)를 포함한 것을 특징으로 하는 마이크로 명령어의 수식기능을 가진 제어장치.
  2. 제1항에 있어서, 상기 입력레지스터의 입력족에 접속되고, 명령어코드를 가진 복수의 매크로명령어를 순차적으로 선택하고, 선택된 매크로명령어를 상기 입력 레지스터(5)에 출력하는 선택장치(4)를 부가하여 포함한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  3. 제1항 또는 제2항에 있어서, 상기 수식정보생성장치(2)는, PLA(Programmable Logic Array)로 구성된 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  4. 제2항에 있어서, 상기 선택장치(4)는, 연산장치(12)내의 범용트랜지스터에서 지정된 고기능의 명령어(비트피이드)를 선택하고 상기 수식정보생성장치(2)에서 상기 선택된 명령어를 사용하여 수식정보(15)의 오퍼레이션 피일드에 목표의 연산을 설정할 수 있도록, 상기 선택장치(4)의 입력쪽과 상기 연산장치(12)의 출력쪽을 데이터버스(24)로 접속한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  5. 제2항에 있어서, 상기 선택장치(4)는 수식정보생성장치(2)가 마이크로명령어에 대해서 처리순서를 변경시키기 위한 판정조건과 다방향분기를 위한 오프셋을 설정하도록 개입중단접수장치(13)의 출력쪽과 상기 선택장치(4)의 입력쪽을 접속한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  6. 제1항 또는 제2항에 있어서, 상기 입력레지스터(5)에 병렬접속되고, 마이크로명령어에 대한 처리의 진행에 따라서 소정의 목표레지스터의 번호를 갱신할 수 있도록, 상기 수식 정보생성장치(2)에 의해 출력된 소정의 레지스터의 번호피일드에 상당하는 비트를 수식하기 위한 비트수식장치(10)를 부가하여 포함한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  7. 제1항 또는 제2항에 있어서, 상기 입력레지스터(5)에 병렬접속되고, 상기 입력레지스터(5)에 유지된 명령어코드를 대피하고 이전의 명령어코드가 필요로 하는 경우에 이전의 명령어코드를 상기 입력레지스터에 복귀하는 스택장치(11)를 부가하여 포함한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  8. 제1항 또는 제2항에 있어서, 상기 연상장치로부터 출력하는 목표데이터에 의거하여 마이코명령어에 대해서 처리순서를 변경시키기 위한 판정조건과 다방향분기를 위한 오프셋을 나타내는 분기정보(25)를 생성하여 출력하는 상기 수식정보생성장치(2)의 출력쪽에 접속되고, 또한, 매크로명령어(16)로부터 해독된 엔트리어드레스(18) 및 제어기억장치(1)의 제어정보(21)에 응답하여 소정의 어드레스를 제어기억장치(1)에 출력하는 제어기억 어드레스생성장치(6)를 부가하여 포함하는 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  9. 제3항에 있어서, 상기 입력레지스터(5)에 병렬접속되고, 마이크로명령어에 대한 처리의 진행에 따라서 소정의 목표레지스터의 번호를 갱신할 수 있도록, 상기 수식 정보생성장치(2)에 의해 출력된 소정의 레지스터의 번호피일드에 상당하는 비트를 수식하기 위한 비트수식장치(10)를 부가하여 포함한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  10. 제3항에 있어서, 상기 입력레지스터(5)에 병렬접속되고, 상기 입력레지스터(5)에 유지된 명령어코드를 대피하고 이전의 명령어코드가 필요로 하는 경우에 이전의 명령어코드를 상기 입력레지스터에 복귀하는 스택장치(11)를 부가하여 포함한 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
  11. 제3항에 있어서, 상기 연산장치로부터 출력하는 목표데이터에 의거하여 마이크로명령어에 대해서 처리순서를 변경시키기 위한 판정조건과 다방향분기를 위한 오프셋1을 나타내는 분기정보(25)를 생성하여 출력하는 수식정보생성장치(2)의 출력쪽에 접속되고, 또한 상기 매크로명령어(16)로부터 해독된 엔트리어드레스(18) 및 제어기억장치(1)의 제어정보(21)에 응답하여 소정의 어드레스를 제어기억장치(1)에 출력하는 제어기억어드레스생성장치(6)를 부가하여 포함하는 것을 특징으로 하는 마이크로명령어의 수식기능을 가진 제어장치.
KR1019900006468A 1989-05-08 1990-05-08 마이크로명령어의 수식기능을 가진 제어장치 KR940002323B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1-114740 1989-05-08
JP1114740A JP2538053B2 (ja) 1989-05-08 1989-05-08 制御装置

Publications (2)

Publication Number Publication Date
KR900018807A KR900018807A (ko) 1990-12-22
KR940002323B1 true KR940002323B1 (ko) 1994-03-23

Family

ID=14645464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900006468A KR940002323B1 (ko) 1989-05-08 1990-05-08 마이크로명령어의 수식기능을 가진 제어장치

Country Status (6)

Country Link
US (1) US5479620A (ko)
EP (1) EP0397414B1 (ko)
JP (1) JP2538053B2 (ko)
KR (1) KR940002323B1 (ko)
CA (1) CA2016145C (ko)
DE (1) DE69020430T2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0498067A2 (en) * 1991-02-08 1992-08-12 International Business Machines Corporation Microcode generation for a scalable compound instruction set machine
US5862370A (en) * 1995-09-27 1999-01-19 Vlsi Technology, Inc. Data processor system with instruction substitution filter for deimplementing instructions
US5958046A (en) * 1996-11-26 1999-09-28 Texas Instruments Incorporated Microprocessor with reduced microcode space requirements due to improved branch target microaddress circuits, systems, and methods
US5887159A (en) * 1996-12-11 1999-03-23 Digital Equipment Corporation Dynamically determining instruction hint fields
US7162621B2 (en) * 2001-02-21 2007-01-09 Mips Technologies, Inc. Virtual instruction expansion based on template and parameter selector information specifying sign-extension or concentration
US7599981B2 (en) 2001-02-21 2009-10-06 Mips Technologies, Inc. Binary polynomial multiplier
US7711763B2 (en) 2001-02-21 2010-05-04 Mips Technologies, Inc. Microprocessor instructions for performing polynomial arithmetic operations
US7181484B2 (en) 2001-02-21 2007-02-20 Mips Technologies, Inc. Extended-precision accumulation of multiplier output

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2555963C2 (de) * 1975-12-12 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Funktionsmodifizierung
JPS57105036A (en) * 1980-12-23 1982-06-30 Panafacom Ltd Register means access system
US4419726A (en) * 1981-01-16 1983-12-06 Sperry Corporation Instruction decoding in data processing apparatus
US4467417A (en) * 1981-09-16 1984-08-21 Honeywell Information Systems Inc. Flexible logic transfer and instruction decoding system
JPS58129658A (ja) * 1982-01-29 1983-08-02 Nec Corp マイクロプログラム制御装置
JPS58200349A (ja) * 1982-05-14 1983-11-21 Nec Corp マイクロプログラム制御装置
JPS5957346A (ja) * 1982-09-27 1984-04-02 Nec Corp デ−タ処理装置
US4825363A (en) * 1984-12-05 1989-04-25 Honeywell Inc. Apparatus for modifying microinstructions of a microprogrammed processor
US4984151A (en) * 1985-03-01 1991-01-08 Advanced Micro Devices, Inc. Flexible, next-address generation microprogram sequencer
JPS62143138A (ja) * 1985-12-17 1987-06-26 Nec Corp マイクロプログラム制御装置
JP2695157B2 (ja) * 1986-12-29 1997-12-24 松下電器産業株式会社 可変パイプラインプロセッサ
US5155819A (en) * 1987-11-03 1992-10-13 Lsi Logic Corporation Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions

Also Published As

Publication number Publication date
EP0397414A2 (en) 1990-11-14
US5479620A (en) 1995-12-26
EP0397414A3 (en) 1991-09-18
CA2016145C (en) 2000-02-01
CA2016145A1 (en) 1990-11-08
EP0397414B1 (en) 1995-06-28
JP2538053B2 (ja) 1996-09-25
KR900018807A (ko) 1990-12-22
DE69020430D1 (de) 1995-08-03
JPH02293931A (ja) 1990-12-05
DE69020430T2 (de) 1995-11-09

Similar Documents

Publication Publication Date Title
US5327543A (en) System for selectively masking operand portions for processing thereof
KR100300001B1 (ko) 명령어요소들의재조합에의한서로다른명령어코드들사이의동적변환
EP0071028B1 (en) Instructionshandling unit in a data processing system with instruction substitution and method of operation
US4761755A (en) Data processing system and method having an improved arithmetic unit
EP0096575B1 (en) Concurrent processing elements for using dependency free code
KR100208889B1 (ko) 병렬처리장치 및 병렬처리방법
US4954943A (en) Data processing system
KR900003591B1 (ko) 데이터 처리장치
EP0096576A2 (en) Mechanism for creating dependency free code for multiple processing elements
US6611909B1 (en) Method and apparatus for dynamically translating program instructions to microcode instructions
JPH0374434B2 (ko)
US4388682A (en) Microprogrammable instruction translator
US6061781A (en) Concurrent execution of divide microinstructions in floating point unit and overflow detection microinstructions in integer unit for integer divide
US4159520A (en) Memory address control device with extender bus
KR940002323B1 (ko) 마이크로명령어의 수식기능을 가진 제어장치
US4541047A (en) Pipelined data processing system
JPH05150979A (ja) 即値オペランド拡張方式
WO2000077623A1 (en) Data processor with an arithmetic logic unit and a stack
KR100374401B1 (ko) 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치
US4493029A (en) Microprocessor with PLA adapted to implement subroutines
JPS6042966B2 (ja) デ−タ処理システム
JP2005508554A (ja) データ操作を利用したデータの計算と処理方法、及び、その装置
US5293499A (en) Apparatus for executing a RISC store and RI instruction pair in two clock cycles
KR20080049727A (ko) 별도의 직렬 모듈을 지닌 프로세서 어레이
Chen The overlap design of the IBM System/360 Model 92 central processing unit

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

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee