EP0481031A1 - System um befehlssätze zusammenzusetzen zur befehlssatz- und datenstromverarbeitung für einen prozessor mit verschiedenen attributen - Google Patents
System um befehlssätze zusammenzusetzen zur befehlssatz- und datenstromverarbeitung für einen prozessor mit verschiedenen attributenInfo
- Publication number
- EP0481031A1 EP0481031A1 EP91907170A EP91907170A EP0481031A1 EP 0481031 A1 EP0481031 A1 EP 0481031A1 EP 91907170 A EP91907170 A EP 91907170A EP 91907170 A EP91907170 A EP 91907170A EP 0481031 A1 EP0481031 A1 EP 0481031A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- instruction
- instructions
- compounding
- compound
- sequence
- 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 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Definitions
- halfwords which exist in an instruction are initialized to indicate that the halfword is not an initial compound instruction. Best pairs are picked for compounding according to said compounding rules.
- the system employs a technique for choosing instructions for com ⁇ pounding includes instructions which cannot be compounded and certain instructions which are examined are tagged to indicate that a specific instruc ⁇ tion is not an initial instruction, and in the event that the initial instruction of the set being examined is not an appropriate as an initial compound instruc ⁇ tion marking that instruction that it is not an initial instruction.
- the system proceeds to examine a subsequent group of instructions which includes the next sequential instruction in the group which had just been examined.
- FIGURE 14 illustrates the logical and hardware implementation of the worst case compounder.
- FIGURE 16 illustrates a compounding example of the worst case with four instructions per group.
- the tag bits which are generated in memory, are "1" for the first compounded instruction and "zero" for the second compounded instruction. However, if the first and second instructions cannot be compounded, the tag bit for the first instruction is "zero" and the second and third instructions are then considered for compounding.
- the unique technique of this invention works equally well with either fixed or variable length instructions since once the start of an instruction is known (or pre- sumed), the length can always be found in one way or another somewhere in the instructions.
- the length is encoded in the opcode, while in other systems the length maybe encoded in the operands.
- the illus ⁇ trated examples of opcodes illustrated may be either fixed or of variable length.
- This storage mechanism includes a first storage mechanism for storing instructions and data to be processed in the form of a series of base instructions for a scalar machine.
- This storage mechanism is identified as higher-level storage 136.
- This storage (also "main memory”) is a large capacity lower speed storage mech ⁇ anism and may be, for example, a large capacity system storage unit or the lower portion of a comprehensive hierarchical storage system.
- the computer system of FIGURE 4-B also includes an instruction fetch and issue mechanism coupled to compound instruction cache 138 for supplying adjacent instructions stored therein to different ones of the functional instruc ⁇ tion processing units 139-141 when the instruction tag bits indicate that they may be processed in parallel.
- This mechanism also provides single instructions to individual functional units when their tag bits indicate parallel execution is not possible and they must be processed singly.
- This mech ⁇ anism is represented by instruction fetch and issue unit 142.
- Fetch and issue unit 142 fetches instructions form the cache 138 and examines the tag bits and instruction operation code (opcode) fields, performing a decode function, and based upon such examinations sends the instruction under consideration to the appropriate ones of the functional units 138- 141. .
- the bits T of FIGURE 9 are defined to indicate a specific meaning.
- the t 0 bit will mark the beginning of an instruction, as illustrated below. In all cases a 0 shall mean not asserted. In all cases it is preferred to have the compound instruction fetched with a certainty. Accordingly, the number of bits chosen for fetching is the maximum of number of bits which may be contained and could be executed with an instruction of the maximum instruction length of the target machine which is executing the parallel com ⁇ pounded instructions. Thus the fetching system provides for maximum length fetching.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Applications Claiming Priority (8)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US51938490A | 1990-05-04 | 1990-05-04 | |
| US51938290A | 1990-05-04 | 1990-05-04 | |
| US519382 | 1990-05-04 | ||
| US519384 | 1990-05-04 | ||
| US543458 | 1990-06-26 | ||
| US07/543,458 US5197135A (en) | 1990-06-26 | 1990-06-26 | Memory management for scalable compound instruction set machines with in-memory compounding |
| US642011 | 1991-01-15 | ||
| US07/642,011 US5295249A (en) | 1990-05-04 | 1991-01-15 | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| EP0481031A1 true EP0481031A1 (de) | 1992-04-22 |
| EP0481031A4 EP0481031A4 (en) | 1993-01-27 |
Family
ID=46201961
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP91908085A Expired - Lifetime EP0545927B1 (de) | 1990-05-04 | 1991-03-29 | Gerät um befehle für einen prozessor mit parallelbefehlen vorzubereiten und gerät mit einem verfahren um mitten in einem verbundbefehl zu verzweigen |
| EP19910907170 Withdrawn EP0481031A4 (en) | 1990-05-04 | 1991-03-29 | System for compounding instructions for handling instruction and data stream for processor with different attributes |
Family Applications Before (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP91908085A Expired - Lifetime EP0545927B1 (de) | 1990-05-04 | 1991-03-29 | Gerät um befehle für einen prozessor mit parallelbefehlen vorzubereiten und gerät mit einem verfahren um mitten in einem verbundbefehl zu verzweigen |
Country Status (7)
| Country | Link |
|---|---|
| EP (2) | EP0545927B1 (de) |
| JP (2) | JPH0679273B2 (de) |
| AT (1) | ATE194236T1 (de) |
| DE (1) | DE69132271T2 (de) |
| HU (1) | HU216990B (de) |
| PL (1) | PL166513B1 (de) |
| WO (2) | WO1991017496A1 (de) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0728639A (ja) * | 1993-07-13 | 1995-01-31 | Nec Corp | マイクロプロセッサ |
| US5619665A (en) * | 1995-04-13 | 1997-04-08 | Intrnational Business Machines Corporation | Method and apparatus for the transparent emulation of an existing instruction-set architecture by an arbitrary underlying instruction-set architecture |
| US7840717B2 (en) * | 2008-02-14 | 2010-11-23 | International Business Machines Corporation | Processing a variable length device command word at a control unit in an I/O processing system |
| US11204768B2 (en) | 2019-11-06 | 2021-12-21 | Onnivation Llc | Instruction length based parallel instruction demarcator |
| US11334491B1 (en) * | 2020-11-18 | 2022-05-17 | Centaur Technology, Inc. | Side cache array for greater fetch bandwidth |
Family Cites Families (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
| US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
| US4586127A (en) * | 1982-11-03 | 1986-04-29 | Burroughs Corp. | Multiple control stores for a pipelined microcontroller |
| US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
| US4574348A (en) * | 1983-06-01 | 1986-03-04 | The Boeing Company | High speed digital signal processor architecture |
| US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
| JPS60101644A (ja) * | 1983-11-07 | 1985-06-05 | Masahiro Sowa | ノイマン型コンピュータプログラムを実行するコントロールフローコンピュータ |
| JPH0769818B2 (ja) * | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
| US4755966A (en) * | 1985-06-28 | 1988-07-05 | Hewlett-Packard Company | Bidirectional branch prediction and optimization |
| US4847755A (en) * | 1985-10-31 | 1989-07-11 | Mcc Development, Ltd. | Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies |
| EP0239081B1 (de) * | 1986-03-26 | 1995-09-06 | Hitachi, Ltd. | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen |
| JPS63131230A (ja) * | 1986-11-21 | 1988-06-03 | Hitachi Ltd | 情報処理装置 |
-
1991
- 1991-03-29 PL PL91293182A patent/PL166513B1/pl not_active IP Right Cessation
- 1991-03-29 WO PCT/US1991/002037 patent/WO1991017496A1/en not_active Ceased
- 1991-03-29 HU HU9200024A patent/HU216990B/hu unknown
- 1991-03-29 AT AT91908085T patent/ATE194236T1/de not_active IP Right Cessation
- 1991-03-29 JP JP3507600A patent/JPH0679273B2/ja not_active Expired - Fee Related
- 1991-03-29 JP JP3507370A patent/JPH0680489B2/ja not_active Expired - Lifetime
- 1991-03-29 DE DE69132271T patent/DE69132271T2/de not_active Expired - Fee Related
- 1991-03-29 WO PCT/US1991/002040 patent/WO1991017495A1/en not_active Ceased
- 1991-03-29 EP EP91908085A patent/EP0545927B1/de not_active Expired - Lifetime
- 1991-03-29 EP EP19910907170 patent/EP0481031A4/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| EP0545927A4 (de) | 1993-04-26 |
| PL166513B1 (pl) | 1995-05-31 |
| WO1991017496A1 (en) | 1991-11-14 |
| JPH0679273B2 (ja) | 1994-10-05 |
| PL293182A1 (en) | 1992-10-19 |
| EP0481031A4 (en) | 1993-01-27 |
| DE69132271T2 (de) | 2000-12-21 |
| JPH04506878A (ja) | 1992-11-26 |
| JPH04505823A (ja) | 1992-10-08 |
| JPH0680489B2 (ja) | 1994-10-12 |
| WO1991017495A1 (en) | 1991-11-14 |
| DE69132271D1 (de) | 2000-08-03 |
| EP0545927B1 (de) | 2000-06-28 |
| ATE194236T1 (de) | 2000-07-15 |
| HU216990B (hu) | 1999-10-28 |
| HU9200024D0 (en) | 1992-03-30 |
| EP0545927A1 (de) | 1993-06-16 |
| HUT60048A (en) | 1992-07-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5448746A (en) | System for comounding instructions in a byte stream prior to fetching and identifying the instructions for execution | |
| US5303356A (en) | System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag | |
| US5504932A (en) | System for executing scalar instructions in parallel based on control bits appended by compounding decoder | |
| US7458069B2 (en) | System and method for fusing instructions | |
| US5500942A (en) | Method of indicating parallel execution compoundability of scalar instructions based on analysis of presumed instructions | |
| US5502826A (en) | System and method for obtaining parallel existing instructions in a particular data processing configuration by compounding instructions | |
| US5721854A (en) | Method and apparatus for dynamic conversion of computer instructions | |
| US8200987B2 (en) | Dynamic object-level code translation for improved performance of a computer processor | |
| US6301705B1 (en) | System and method for deferring exceptions generated during speculative execution | |
| US6256726B1 (en) | Data processor for the parallel processing of a plurality of instructions | |
| JPH0429093B2 (de) | ||
| US9262140B2 (en) | Predication supporting code generation by indicating path associations of symmetrically placed write instructions | |
| US7886132B2 (en) | Predication support in an out-of-order processor by selectively executing ambiguously renamed write operations | |
| JPH04309131A (ja) | 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置 | |
| US20060253654A1 (en) | Processor and method for executing data transfer process | |
| KR100322726B1 (ko) | 번역 및 테스트를 위한 전문 밀리코드 명령 | |
| KR100308512B1 (ko) | 편집 기능을 위한 전문 밀리코드 지시 | |
| KR100317769B1 (ko) | 압축 기억된 십진수 나눗셈에 대한 전문 밀리코드 명령 | |
| EP0481031A4 (en) | System for compounding instructions for handling instruction and data stream for processor with different attributes | |
| KR100322725B1 (ko) | 전문 갱신 및 분기 명령을 이용하는 밀리코드 플래그 | |
| EP0825529A2 (de) | Gerät, um Befehle für einen Prozessor mit Parallelbefehlen vorzubereiten und Gerät mit einem Verfahren, um mitten in einem Verbundbefehl zu verzweigen | |
| CA2053941A1 (en) | System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction | |
| JP2001084146A (ja) | バイトコード実行装置およびその方法 |
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: 19911202 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE FR GB |
|
| A4 | Supplementary search report drawn up and despatched |
Effective date: 19921207 |
|
| AK | Designated contracting states |
Kind code of ref document: A4 Designated state(s): DE FR GB |
|
| 17Q | First examination report despatched |
Effective date: 19970403 |
|
| 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: 19970814 |