EP0215028A1 - Controleur de microprogrammes - Google Patents
Controleur de microprogrammesInfo
- Publication number
- EP0215028A1 EP0215028A1 EP86901305A EP86901305A EP0215028A1 EP 0215028 A1 EP0215028 A1 EP 0215028A1 EP 86901305 A EP86901305 A EP 86901305A EP 86901305 A EP86901305 A EP 86901305A EP 0215028 A1 EP0215028 A1 EP 0215028A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- register
- instruction
- memory
- multiplexer
- arithmetic logic
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
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)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Abstract
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AUPG938385 | 1985-02-20 | ||
AU9383/85 | 1985-02-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0215028A1 true EP0215028A1 (fr) | 1987-03-25 |
EP0215028A4 EP0215028A4 (fr) | 1987-07-23 |
Family
ID=3770948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19860901305 Withdrawn EP0215028A4 (fr) | 1985-02-20 | 1986-02-19 | Controleur de microprogrammes. |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0215028A4 (fr) |
JP (1) | JPS62501940A (fr) |
AU (1) | AU582424B2 (fr) |
WO (1) | WO1986005015A1 (fr) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
EP0302926B1 (fr) * | 1987-02-24 | 1993-07-14 | Digital Equipment Corporation | Circuit de generation de signaux de commande pour unite arithmetique et logique pour un processeur numerique |
JPH04328634A (ja) * | 1991-04-26 | 1992-11-17 | Nec Corp | マイクロプログラム制御装置 |
EP0522513A2 (fr) * | 1991-07-09 | 1993-01-13 | Hughes Aircraft Company | Unité de commande à grande vitesse pour programme à microcode parallèle |
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 |
---|---|---|---|---|
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 |
EP0107952A2 (fr) * | 1982-10-18 | 1984-05-09 | Nec Corporation | Dispositif de traitement d'information et son système de commande d'instruction |
EP0142562A1 (fr) * | 1983-01-14 | 1985-05-29 | Hitachi, Ltd. | Systeme de pipeline pour unite de commande de microprogramme |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5410219B2 (fr) * | 1973-12-07 | 1979-05-02 | ||
US4336602A (en) * | 1979-09-24 | 1982-06-22 | Control Data Corporation | Network for generating modified microcode addresses |
US4459666A (en) * | 1979-09-24 | 1984-07-10 | Control Data Corporation | Plural microcode control memory |
DE3009121C2 (de) * | 1980-03-10 | 1982-02-18 | Siemens AG, 1000 Berlin und 8000 München | Mikroprogramm-Steuereinrichtung |
-
1986
- 1986-02-19 AU AU54599/86A patent/AU582424B2/en not_active Ceased
- 1986-02-19 WO PCT/AU1986/000041 patent/WO1986005015A1/fr not_active Application Discontinuation
- 1986-02-19 EP EP19860901305 patent/EP0215028A4/fr not_active Withdrawn
- 1986-02-19 JP JP61501315A patent/JPS62501940A/ja active Pending
Patent Citations (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 |
EP0107952A2 (fr) * | 1982-10-18 | 1984-05-09 | Nec Corporation | Dispositif de traitement d'information et son système de commande d'instruction |
EP0142562A1 (fr) * | 1983-01-14 | 1985-05-29 | Hitachi, Ltd. | Systeme de pipeline pour unite de commande de microprogramme |
Non-Patent Citations (2)
Title |
---|
MICROPROCESSING AND MICROPROGRAMMING, vol. 14, no. 3/4, October-November 1984, pages 211-214, Amsterdam, NL; E. MANDADO et al.: "New developments in fast microprogrammable control units" * |
See also references of WO8605015A1 * |
Also Published As
Publication number | Publication date |
---|---|
AU5459986A (en) | 1986-09-10 |
JPS62501940A (ja) | 1987-07-30 |
WO1986005015A1 (fr) | 1986-08-28 |
AU582424B2 (en) | 1989-03-23 |
EP0215028A4 (fr) | 1987-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4862407A (en) | Digital signal processing apparatus | |
US4984151A (en) | Flexible, next-address generation microprogram sequencer | |
CN100437547C (zh) | 具有级联simd结构的数字信号处理器及其信号处理方法 | |
JPS6217252B2 (fr) | ||
WO1998011483A1 (fr) | Systeme de traitement vectoriel effectue a l'aide de pipelines multi-operations configurables pendant l'execution | |
US20020108026A1 (en) | Data processing apparatus with register file bypass | |
US6026486A (en) | General purpose processor having a variable bitwidth | |
Jones | The ultimate RISC | |
US7111155B1 (en) | Digital signal processor computation core with input operand selection from operand bus for dual operations | |
US20240004663A1 (en) | Processing device with vector transformation execution | |
EP0215028A1 (fr) | Controleur de microprogrammes | |
EP2267896A2 (fr) | Procédé pour mettre en oeuvre des filtres à réponse impulsionnelle finie | |
US5974531A (en) | Methods and systems of stack renaming for superscalar stack-based data processors | |
US5867696A (en) | Saving a program counter value as the return address in an arbitrary general purpose register | |
US7107302B1 (en) | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units | |
JP2916605B2 (ja) | コンピュータ用プロセツサ | |
US6820189B1 (en) | Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation | |
US6859872B1 (en) | Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation | |
AU646956B2 (en) | Register and arithmetic logic unit | |
KR100278136B1 (ko) | 데이타처리장치 및 데이타처리방법 | |
LaMeres | Computer System Design | |
JP2793357B2 (ja) | 並列演算装置 | |
JPH02197924A (ja) | 中央演算処理装置 | |
US4805133A (en) | Processor memory element and a new computer architecture | |
JPH07110769A (ja) | Vliw型計算機 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19861018 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH DE FR GB IT LI LU NL SE |
|
A4 | Supplementary search report drawn up and despatched |
Effective date: 19870723 |
|
17Q | First examination report despatched |
Effective date: 19880706 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 19910813 |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: O'SULLIVAN, DANIEL, S. Inventor name: BROOKS, DAVID, R. |