WO1986005015A1 - Microprogram controller - Google Patents
Microprogram controller Download PDFInfo
- Publication number
- WO1986005015A1 WO1986005015A1 PCT/AU1986/000041 AU8600041W WO8605015A1 WO 1986005015 A1 WO1986005015 A1 WO 1986005015A1 AU 8600041 W AU8600041 W AU 8600041W WO 8605015 A1 WO8605015 A1 WO 8605015A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- register
- instruction
- memory
- multiplexer
- logic unit
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/267—Microinstruction selection based on results of processing by instruction selection on output of storage
Definitions
- the present invention relates to microprogram con ⁇ trollers including a memory to store instructions at speci- fied addresses, a register to hold a current instruction and an arithmetic logic unit (ALU) : the ALU executing the current instruction and thereby manipulating external data as well as altering the choice of the following instruction and accessing the corresponding address in the memory.
- ALU arithmetic logic unit
- This device comprises a memory containing coded instructions, and a register, connected in loop arrangement. The simplest arrangement is shown in Fig. 1.
- the register R holds the current micro ⁇ instruction, which is presented to an Arithmetic/Logic Unit (ALU), that executes the instruction, manipulating external data as required.
- An additional field in the micro- instruction represents the memory address of the next instruction to be executed.
- this "next address” can be modified by the ALU outputs, providing a "conditional jump” feature.
- Further prior art systems known to applicant are disclosed in Australian patent specification nos. 535105 and 538215 in the name of Control Data Corporation. The disclosures therein require the use of separate address registers and support circuitry, buses and the like for each memory bank.
- a microprogram controller including a memory to store instructions at specified addresses, a register to hold a current instruc- tion including the address in the memory of the following instruction an arithmetic logic unit to execute the current instruction and thereby manipulating external data as well as altering the choice of following instruction; the improvement comprising dividing the memory into two banks and presenting the output of each memory, each said output being a possible following instruction,, to a first multiplexer which is connected to the register, and providing a second multiplexer to simultaneously with the execution of the current instruction receive as input any number of various conditions (including "1" and "0") one at a time, developed by the arithmetic logic unit and to develop a binary output to determine which of the following instructions at the
- Figure 3 shows a block diagram of a micropro- grammer made in accordance with the invention.
- FIG. 4 is a block diagram of a modified micro ⁇ program controller made in accordance with the invention.
- the circular dashed arrow in Fig. 1 indicates the time sequence of the various operations. The total delay around this path limits the maximum speed of the machine. Since the delays in memory and the ALU represent by far the largest component of this delay, and in practical systems are often approximately equal, the scheme of Fig. 2 may be used to double the speed of the machine, by allowing these functions to proceed in parallel (see the two arrows in Fig. 2).
- the current instruction and the address of its successor are held in the two registers Rl and R2. Simultaneously, the memory presents the following instruction at the input of Rl, while the address of its successor (i.e.
- Fig. 3 The scheme according to the invention is shown in greater detail in Fig. 3.
- the memory is here split into two banks (A and B), each of half of the original size (the total size will be dictated by program requirements), and register R2 of Fig. 2 is replaced by the multiplexer Ml, which can present the output of either memory bank to the register R.
- the two paralleled paths are as before, denoted by circular dashed arrows.
- the current instruction is output from R, and the
- ALU commences to calculate the desired results.
- Various con ⁇ ditions of possible interest (zero, negative, etc.) are offered as inputs to the secondary multiplexer M2, together with the constant values 0 and 1.
- M2 selects one of these inputs, as specified by the instruction, and develops the binary output "SWITCH".
- the address field of the current instruction has accessed both memory banks simultaneously, yielding two possible successor instructions. Note that the slow processes, i.e ALU function and memory access, proceed simultaneously.
- the signal "SWITCH”, acting on multiplexer Ml determines which of the two possible successor instructions is actually loaded into R, and next executed.
- the current instruction has modified its immediate successor, and simple programming methods may be used (as in Fig. 1).
- a one-instruction "loop" is developed by coding the instruction's successor address to point to itself. As long as the looping condition obtains, the instruction (in one bank of memory) is repeatedly executed, when the condition fails, the alternative instruction is executed instead and the program proceeds.
- Normal instructions i.e. those with no condi ⁇ tional effects, merely direct M2 to select one of the literal inputs 0 and 1, so explicitly directing the flow of control into Bank A or B as required.
- Multi-way Branches Modification A limited ability to perform multi-way branches, based on values computed by the ALU, is frequently desirable. Such a feature can readily be added to the architecture of Fig. 3, yielding that of Fig. 4, by parti ⁇ tioning the multiplexer Ml, into two sections, handling the current instruction and next address fields respectively.
- the current instruction field .operates as described above, ' as does most of the next address field.
- a portion of -the address field is provided with an additional input channel ("BRANCH" in Fig. 4) supplied from a register previously loaded by the ALU.
- BRANCH additional input channel
- Literal Outputs Modification Another infrequently used, but nonetheless valuable feature is the ability for the microprogram to supply literal values to the ALU at certain times. This feature may be obtained by addition of the LITERAL register (Fig. 4). On every machine cycle, the current value in one memory bank (in this example memory Bank B) may be loaded into this register, which can be read by the ALU when required. This implies that instructions to load meaningful data into the literal register must themselves reside in Bank A, since the corresponding Bank B location contains literal data, not an instruction. Since no penalty attaches to branching from one bank to another, this is not a problem. Once loaded, the value in the literal register is simply another ALU input, to be accessed when required.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPG9383 | 1985-02-20 | ||
AUPG938385 | 1985-02-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1986005015A1 true WO1986005015A1 (en) | 1986-08-28 |
Family
ID=3770948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/AU1986/000041 WO1986005015A1 (en) | 1985-02-20 | 1986-02-19 | Microprogram controller |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0215028A4 (ja) |
JP (1) | JPS62501940A (ja) |
AU (1) | AU582424B2 (ja) |
WO (1) | WO1986005015A1 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988006759A1 (en) * | 1987-02-24 | 1988-09-07 | Digital Equipment Corporation | Control signal generation circuit for arithmetic and logic unit for digital processor |
US5119484A (en) * | 1987-02-24 | 1992-06-02 | Digital Equipment Corporation | Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction |
FR2675920A1 (fr) * | 1991-04-26 | 1992-10-30 | Nec Corp | Dispositif commande par microprogramme comprenant un dispositif de memoire de commande de taille reduite. |
EP0522513A2 (en) * | 1991-07-09 | 1993-01-13 | Hughes Aircraft Company | High speed parallel microcode program controller |
US6629262B1 (en) * | 1999-09-30 | 2003-09-30 | Toshiba Tec Kabushiki Kaisha | Multiplexed storage controlling device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4008462A (en) * | 1973-12-07 | 1977-02-15 | Fujitsu Ltd. | Plural control memory system with multiple micro instruction readout |
AU6193380A (en) * | 1979-09-24 | 1981-04-02 | Control Data Corporation | Data processing control memory system |
AU6193480A (en) * | 1979-09-24 | 1981-04-02 | Control Data Corporation | Network for generating modified microcode addresses |
EP0035772A1 (de) * | 1980-03-10 | 1981-09-16 | Siemens Aktiengesellschaft | Mikroprogramm-Steuereinrichtung |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3570006A (en) * | 1968-01-02 | 1971-03-09 | Honeywell Inc | Multiple branch technique |
US3909797A (en) * | 1973-12-13 | 1975-09-30 | Honeywell Inf Systems | Data processing system utilizing control store unit and push down stack for nested subroutines |
EP0107952B1 (en) * | 1982-10-18 | 1988-06-01 | Nec Corporation | Information processing apparatus and its instruction control system |
JPS59128642A (ja) * | 1983-01-14 | 1984-07-24 | Hitachi Ltd | マイクロプログラム制御機器のパイプライン方式 |
-
1986
- 1986-02-19 AU AU54599/86A patent/AU582424B2/en not_active Ceased
- 1986-02-19 WO PCT/AU1986/000041 patent/WO1986005015A1/en not_active Application Discontinuation
- 1986-02-19 JP JP61501315A patent/JPS62501940A/ja active Pending
- 1986-02-19 EP EP19860901305 patent/EP0215028A4/en not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4008462A (en) * | 1973-12-07 | 1977-02-15 | Fujitsu Ltd. | Plural control memory system with multiple micro instruction readout |
AU6193380A (en) * | 1979-09-24 | 1981-04-02 | Control Data Corporation | Data processing control memory system |
AU6193480A (en) * | 1979-09-24 | 1981-04-02 | Control Data Corporation | Network for generating modified microcode addresses |
EP0035772A1 (de) * | 1980-03-10 | 1981-09-16 | Siemens Aktiengesellschaft | Mikroprogramm-Steuereinrichtung |
Non-Patent Citations (1)
Title |
---|
See also references of EP0215028A4 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1988006759A1 (en) * | 1987-02-24 | 1988-09-07 | Digital Equipment Corporation | Control signal generation circuit for arithmetic and logic unit for digital processor |
US5119484A (en) * | 1987-02-24 | 1992-06-02 | Digital Equipment Corporation | Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction |
FR2675920A1 (fr) * | 1991-04-26 | 1992-10-30 | Nec Corp | Dispositif commande par microprogramme comprenant un dispositif de memoire de commande de taille reduite. |
EP0522513A2 (en) * | 1991-07-09 | 1993-01-13 | Hughes Aircraft Company | High speed parallel microcode program controller |
EP0522513A3 (ja) * | 1991-07-09 | 1994-01-05 | Hughes Aircraft Co | |
US6629262B1 (en) * | 1999-09-30 | 2003-09-30 | Toshiba Tec Kabushiki Kaisha | Multiplexed storage controlling device |
Also Published As
Publication number | Publication date |
---|---|
JPS62501940A (ja) | 1987-07-30 |
AU582424B2 (en) | 1989-03-23 |
AU5459986A (en) | 1986-09-10 |
EP0215028A1 (en) | 1987-03-25 |
EP0215028A4 (en) | 1987-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4984151A (en) | Flexible, next-address generation microprogram sequencer | |
US4398244A (en) | Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same | |
US4860197A (en) | Branch cache system with instruction boundary determination independent of parcel boundary | |
US3949370A (en) | Programmable logic array control section for data processing system | |
EP0378830B1 (en) | Method and apparatus for handling multiple condition codes as for a parallel pipeline computer | |
US7149878B1 (en) | Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values | |
EP0198216B1 (en) | Three phased pipelined signal processor | |
US4558411A (en) | Polymorphic programmable units employing plural levels of sub-instruction sets | |
EP0428326A1 (en) | Processor array system | |
US4539635A (en) | Pipelined digital processor arranged for conditional operation | |
CN100437547C (zh) | 具有级联simd结构的数字信号处理器及其信号处理方法 | |
US5008807A (en) | Data processing apparatus with abbreviated jump field | |
AU599245B2 (en) | A return address stack | |
US4370729A (en) | Microprogram sequencer | |
US4789957A (en) | Status output for a bit slice ALU | |
US5459847A (en) | Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register | |
US5274777A (en) | Digital data processor executing a conditional instruction within a single machine cycle | |
Jones | The ultimate RISC | |
US6026486A (en) | General purpose processor having a variable bitwidth | |
AU582424B2 (en) | Microprogram controller | |
CA1126406A (en) | Sequence control circuit for a computer | |
US5590359A (en) | Method and apparatus for generating a status word in a pipelined processor | |
KR100374401B1 (ko) | 마이크로 명령을 기초로 프로그램 가능한 명령을 실행하는하드웨어 장치 | |
EP0382235A2 (en) | Microprogram control apparatus | |
US4872109A (en) | Enhanced CPU return address stack |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB IT LU NL SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1986901305 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1986901305 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1986901305 Country of ref document: EP |