US4766531A - Method and apparatus for generating the next microaddress for a micromachine - Google Patents
Method and apparatus for generating the next microaddress for a micromachine Download PDFInfo
- Publication number
- US4766531A US4766531A US06/852,008 US85200886A US4766531A US 4766531 A US4766531 A US 4766531A US 85200886 A US85200886 A US 85200886A US 4766531 A US4766531 A US 4766531A
- Authority
- US
- United States
- Prior art keywords
- microaddress
- primary
- field
- qualifier
- current
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/261—Microinstruction address formation
Definitions
- This invention relates to micromachines, and, more particularly, to a method and apparatus for generating the next microaddress for a micromachine.
- the starting microaddress for each microroutine is typically generated by instruction decoding circuitry.
- subsequent microaddresses are generated by simply incrementing the current microaddress until stopped by the last microinstruction in that particular microroutine.
- the next microaddress comprises a next microaddress field in the current microinstruction.
- multiplexing circuitry selects between this next microaddress and the starting microaddress(es) under control of a microaddress select field of the current microinstruction.
- each microinstruction contains alternate next microaddress fields and the current state of one or more conditions selected by a conditional branch control field of the same microinstruction determines which is selected as the next microaddress.
- the next microaddress field of the current microinstruction is concatenated with the conditions selected by the conditional branch control field, as in the micromachine shown in U.S. Pat. No. 4,038,643.
- the conditions are used by a PLA to generate the low order microaddress bits which are then concatenated with the base microaddress, as in the micromachine shown in U.S. Pat. No. 4,338,661.
- sequencing information is stored in a separate memory, as in the micromachine shown in U.S. Pat. No. 4,155,120.
- Another object of the present invention is to provide a method and an apparatus which allows a condition selected by a condition selector field of the current microinstruction to determine which of a plurality of microaddress qualifiers comprising respective fields of the current microinstruction will be combined with a base microaddress also comprising a field of the current microinstruction to produce the next microaddress for a micromachine.
- each microinstruction includes a primary base microaddress in a first field, a first primary microaddress qualifier in a second field, a second primary microaddress qualifier in a third field, and a condition selector in a fourth field.
- the next microaddress for the micromachine is generated by selecting a primary one of a plurality of current conditions based upon the condition selector, selecting one of the first and second primary microaddress qualifiers based upon the selected primary condition, combining the selected primary microaddress qualifier and the primary base microaddress to form a composite primary microaddress, the composite primary microaddress comprising the next microaddress of the micromachine.
- one (or more) additional base/qualifier set(s) can be provided and selectively enabled to generate the next microaddress.
- the condition which selects between the several qualifiers can be selected independently from the condition that selects between the several combined microaddresses.
- FIG. 1 is a block diagram of a micromachine in which the next microaddress is generated in accordance with the present invention.
- FIG. 2 is a block diagram of a modified form of the microaddress generation portion of the micromachine of FIG. 1 in which the next microaddress is generated in accordance with an expanded form of the present invention.
- a plurality of microaddresses are received by a microaddress mux 12.
- the microaddress mux 12 selects one of the microaddresses as the "next" microaddress to be provided to a microaddress latch 14.
- a microinstruction read-only-memory (ROM) 16 provides a selected one of a plurality of stored microinstructions to a microinstruction latch 18.
- This "current" microinstruction contains the operation signal (OP) to be provided to the microaddress mux 12 to select the next microaddress, and such other customary control information (not shown) as may be necessary to control other circuitry (not shown).
- each microinstruction also includes the following fields:
- A0a a first primary microaddress qualifier
- A0b a second primary microaddress qualifier
- CS condition selector
- a plurality of current condition signals are received by a condition mux 20.
- the condition mux 20 selects a primary one of the current conditions to be provided to a primary microaddress qualifier mux 22.
- the primary microaddress qualifier mux 22 provides a selected one of the first and second primary microaddress qualifiers, A0a or A0b. This selected primary microaddress qualifier is combined with the primary base microaddress (BASE A) to form a composite primary microaddress. Depending upon the operation signal in the current microinstruction, this composite primary microaddress may be selected by the microaddress mux 12 as the next microaddress.
- each microinstruction can now select which of several current conditions will control the selection of one of two microaddress qualifiers to be combined with a specified base microaddress to form a particular one of the possible microaddresses.
- each microinstruction also includes the following additional fields:
- condition mux 20 selects a primary one of the current conditions to be provided to both a primary microaddress qualifier mux 22a and a secondary microaddress qualifier mux 22b.
- the condition mux 20 also selects a secondary one of the current conditions to be provided to a composite microaddress selector mux 24.
- the primary microaddress qualifier mux 22a provides a selected one of the first and second primary microaddress qualifiers, A0a or A0b. This selected primary microaddress qualifier is combined with the primary base microaddress (BASE A) and provided to the composite microaddress selector mux 24 as the composite primary microaddress.
- the secondary microaddress qualifier mux 22b provides a selected one of the first and second secondary microaddress qualifiers, B0a or B0b. This selected secondary microaddress qualifier is combined with the secondary base microaddress (BASE B) and provided to the composite microaddress selector mux 24 as a composite secondary microaddress.
- the composite microaddress selector mux 24 In response to the secondary condition, the composite microaddress selector mux 24 provides either the composite primary microaddress or the composite secondary microaddress. Depending upon the operation signal in the current microinstruction, this selected composite microaddress may be selected by the microaddress mux 12 as the next microaddress.
- each microinstruction can now select one condition which will control the selection of one of two microaddress qualifiers to be combined with a specified base microaddress to form a particular one of two composite microaddresses and another current condition which will control the selection between the two composite microaddresses.
- the microinstruction also includes a control condition selector (CCS).
- CCS control condition selector
- a swapper 26 selectively swaps the primary and secondary conditions. In this manner, each microinstruction can independently select which selected condition controls qualifier selection and which selected condition controls the composite microaddress selection.
- each base microaddress comprises only the high order bits of the combined microaddress
- the microaddress qualifiers comprise one (or more) low order bits of the combined microaddress.
- the full microaddress is formed by concatenating the selected microaddress qualifier with the (selected) base microaddress.
- each base microaddress may comprise a full microaddress and the qualifiers may be logically combined therewith so the combined microaddress is a modified form of the base microaddress.
- additional base/qualifier sets in the microinstructions, and expand the condition selector and current condition mux 20 so that additional conditions select among the several alternative combined microaddresses.
- additional bases may not be required if the qualifiers are expanded in size or number so as to provide the desired number of alternative microaddress combinations.
- the present invention allows the next microaddress to be resolved more rapidly than using either a PLA or a separate memory to determine the qualifier.
- the present invention allows multi-way branching in a manner which facilitates modifications to the microinstruction routines without requiring changes to other portions of the micromachine.
- the size penalty incurred in expanding the size of the microinstruction to accomodate the qualifier(s) may be offset by inherent benefits of the faster resolution time and greater freedom to modify the microinstruction routines.
- the micromachine is provided with a microaddress stack (not shown), as in U.S. Pat. No. 4,449,184, one of the base/qualifier pairs can be used to conditionally branch to a microinstruction subroutine and the other base/qualifier pair can be used to generate the return microaddress to be stacked.
- the base/qualifier pair for the return microaddress can be resolved into the actual return microaddress before stacking or stacked "as is" so that the subroutine can itself conditionally generate the return microaddress.
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)
Abstract
Description
Claims (6)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/852,008 US4766531A (en) | 1986-04-14 | 1986-04-14 | Method and apparatus for generating the next microaddress for a micromachine |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/852,008 US4766531A (en) | 1986-04-14 | 1986-04-14 | Method and apparatus for generating the next microaddress for a micromachine |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| US4766531A true US4766531A (en) | 1988-08-23 |
Family
ID=25312278
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US06/852,008 Expired - Lifetime US4766531A (en) | 1986-04-14 | 1986-04-14 | Method and apparatus for generating the next microaddress for a micromachine |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US4766531A (en) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5155819A (en) * | 1987-11-03 | 1992-10-13 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
| US5371862A (en) * | 1991-02-27 | 1994-12-06 | Kabushiki Kaisha Toshiba | Program execution control system |
| US5410660A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for executing branch on bit set/clear instructions using microprogramming flow |
| US5872962A (en) * | 1995-05-24 | 1999-02-16 | Fuji Xerox Co., Ltd. | Program control system |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3943495A (en) * | 1973-12-26 | 1976-03-09 | Xerox Corporation | Microprocessor with immediate and indirect addressing |
| US4038643A (en) * | 1975-11-04 | 1977-07-26 | Burroughs Corporation | Microprogramming control system |
| US4155120A (en) * | 1977-12-01 | 1979-05-15 | Burroughs Corporation | Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution |
| US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
| US4392198A (en) * | 1979-07-18 | 1983-07-05 | Matsushita Electric Industrial Company, Limited | Method of producing microaddresses and a computer system for achieving the method |
| US4394735A (en) * | 1979-07-25 | 1983-07-19 | A. Aoki & Associates | Data processor controlled by microprograms |
| US4407015A (en) * | 1980-11-26 | 1983-09-27 | Burroughs Corporation | Multiple event driven micro-sequencer |
| US4449184A (en) * | 1978-01-31 | 1984-05-15 | Intel Corporation | Extended address, single and multiple bit microprocessor |
-
1986
- 1986-04-14 US US06/852,008 patent/US4766531A/en not_active Expired - Lifetime
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3943495A (en) * | 1973-12-26 | 1976-03-09 | Xerox Corporation | Microprocessor with immediate and indirect addressing |
| US4038643A (en) * | 1975-11-04 | 1977-07-26 | Burroughs Corporation | Microprogramming control system |
| US4155120A (en) * | 1977-12-01 | 1979-05-15 | Burroughs Corporation | Apparatus and method for controlling microinstruction sequencing by selectively inhibiting microinstruction execution |
| US4449184A (en) * | 1978-01-31 | 1984-05-15 | Intel Corporation | Extended address, single and multiple bit microprocessor |
| US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
| US4392198A (en) * | 1979-07-18 | 1983-07-05 | Matsushita Electric Industrial Company, Limited | Method of producing microaddresses and a computer system for achieving the method |
| US4394735A (en) * | 1979-07-25 | 1983-07-19 | A. Aoki & Associates | Data processor controlled by microprograms |
| US4407015A (en) * | 1980-11-26 | 1983-09-27 | Burroughs Corporation | Multiple event driven micro-sequencer |
Non-Patent Citations (2)
| Title |
|---|
| Chapter V, "Synthesis for ROM-Centered Design", pp. 75-96. |
| Chapter V, Synthesis for ROM Centered Design , pp. 75 96. * |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5155819A (en) * | 1987-11-03 | 1992-10-13 | Lsi Logic Corporation | Flexible ASIC microcomputer permitting the modular modification of dedicated functions and macroinstructions |
| US5371862A (en) * | 1991-02-27 | 1994-12-06 | Kabushiki Kaisha Toshiba | Program execution control system |
| US5410660A (en) * | 1992-12-24 | 1995-04-25 | Motorola, Inc. | System and method for executing branch on bit set/clear instructions using microprogramming flow |
| US5872962A (en) * | 1995-05-24 | 1999-02-16 | Fuji Xerox Co., Ltd. | Program control system |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4407015A (en) | Multiple event driven micro-sequencer | |
| US4180861A (en) | Selectively operable mask generator | |
| KR20010042931A (en) | Method and apparatus for performing shift operations on packed data | |
| SU1515164A1 (en) | Device for addressing a memory | |
| US4821183A (en) | A microsequencer circuit with plural microprogrom instruction counters | |
| US4766531A (en) | Method and apparatus for generating the next microaddress for a micromachine | |
| US5016212A (en) | IC card having system ROM selection inhibit | |
| US4128872A (en) | High speed data shifter array | |
| US3602901A (en) | Circuit for controlling the loading and editing of information in a recirculating memory | |
| US4674063A (en) | Information processing apparatus having a sequence control function | |
| US5526502A (en) | Memory interface | |
| US5355462A (en) | Processor data memory address generator | |
| US5124910A (en) | Microprogram control apparatus for generating a branch condition signal to be designated by a micro-branch instruction | |
| US4556976A (en) | Checking sequential logic circuits | |
| US5426766A (en) | Microprocessor which holds selected data for continuous operation | |
| US4131835A (en) | Microprogrammable control unit | |
| KR840003082A (en) | Bus sourcing and shifter control of the central processing unit | |
| US6920544B2 (en) | Processor and instruction execution method with reduced address information | |
| EP0306260B1 (en) | Bit reversing apparatus | |
| KR100270248B1 (en) | Shift circuit emulating barrel shifter | |
| US4755968A (en) | Buffer memory device controlled by a least recently used method | |
| US6459751B1 (en) | Multi-shifting shift register | |
| US3484701A (en) | Asynchronous sequential switching circuit using a single feedback delay element | |
| EP0108473A2 (en) | Slew length timer | |
| US5696498A (en) | Address encoding method and address decoding circuit therefor |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MOTOROLA, INC., SCHAUMBURG, IL., A CORP OF DE. Free format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:HUNTSMAN, CLAYTON D.;CAWTHRON, DUANE W.;REEL/FRAME:004545/0835;SIGNING DATES FROM 19860422 TO 19860512 Owner name: MOTOROLA, INC., A CORP OF DE., ILLINOIS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HUNTSMAN, CLAYTON D.;CAWTHRON, DUANE W.;SIGNING DATES FROM 19860422 TO 19860512;REEL/FRAME:004545/0835 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| FPAY | Fee payment |
Year of fee payment: 12 |
|
| AS | Assignment |
Owner name: FREESCALE SEMICONDUCTOR, INC., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC.;REEL/FRAME:015698/0657 Effective date: 20040404 Owner name: FREESCALE SEMICONDUCTOR, INC.,TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MOTOROLA, INC.;REEL/FRAME:015698/0657 Effective date: 20040404 |