WO1986005015A1 - Microprogram controller - Google Patents

Microprogram controller Download PDF

Info

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
Application number
PCT/AU1986/000041
Other languages
English (en)
French (fr)
Inventor
David R. Brooks
Daniel S. O'sullivan
Original Assignee
Magellan Corporation (Australia) Pty. Ltd.
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 Magellan Corporation (Australia) Pty. Ltd. filed Critical Magellan Corporation (Australia) Pty. Ltd.
Publication of WO1986005015A1 publication Critical patent/WO1986005015A1/en

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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction 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)
PCT/AU1986/000041 1985-02-20 1986-02-19 Microprogram controller WO1986005015A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 マイクロプログラム制御機器のパイプライン方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
See also references of EP0215028A4 *

Cited By (6)

* Cited by examiner, † Cited by third party
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