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 attributen

Info

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
Application number
EP91907170A
Other languages
English (en)
French (fr)
Other versions
EP0481031A4 (en
Inventor
Richard James Eickemeyer
Stamatis Vassiliadis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US07/543,458 external-priority patent/US5197135A/en
Priority claimed from US07/642,011 external-priority patent/US5295249A/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of EP0481031A1 publication Critical patent/EP0481031A1/de
Publication of EP0481031A4 publication Critical patent/EP0481031A4/en
Withdrawn legal-status Critical Current

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • G06F9/30152Determining start or end of instruction; determining instruction length
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent 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)
  • Devices For Executing Special Programs (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)
EP19910907170 1990-05-04 1991-03-29 System for compounding instructions for handling instruction and data stream for processor with different attributes Withdrawn EP0481031A4 (en)

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
US519384 1990-05-04
US519382 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
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
US642011 1991-01-15

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)

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

Citations (6)

* Cited by examiner, † Cited by third party
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
EP0071028A2 (de) * 1981-07-27 1983-02-09 International Business Machines Corporation Instruktionsverarbeitungseinheit in einer Datenverarbeitungsanlage mit Instruktionssubstitution und Arbeitsverfahren
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
EP0239081A2 (de) * 1986-03-26 1987-09-30 Hitachi, Ltd. Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen
US4780820A (en) * 1983-11-07 1988-10-25 Masahiro Sowa Control flow computer using mode and node driving registers for dynamically switching between parallel processing and emulation of von neuman processors
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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586127A (en) * 1982-11-03 1986-04-29 Burroughs Corp. Multiple control stores for a pipelined microcontroller
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
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
JPS63131230A (ja) * 1986-11-21 1988-06-03 Hitachi Ltd 情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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
EP0071028A2 (de) * 1981-07-27 1983-02-09 International Business Machines Corporation Instruktionsverarbeitungseinheit in einer Datenverarbeitungsanlage mit Instruktionssubstitution und Arbeitsverfahren
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
US4780820A (en) * 1983-11-07 1988-10-25 Masahiro Sowa Control flow computer using mode and node driving registers for dynamically switching between parallel processing and emulation of von neuman processors
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
EP0239081A2 (de) * 1986-03-26 1987-09-30 Hitachi, Ltd. Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JPH0680489B2 (ja) 1994-10-12
EP0545927A1 (de) 1993-06-16
HU9200024D0 (en) 1992-03-30
HU216990B (hu) 1999-10-28
PL293182A1 (en) 1992-10-19
ATE194236T1 (de) 2000-07-15
JPH04505823A (ja) 1992-10-08
HUT60048A (en) 1992-07-28
EP0481031A4 (en) 1993-01-27
JPH04506878A (ja) 1992-11-26
WO1991017495A1 (en) 1991-11-14
DE69132271T2 (de) 2000-12-21
PL166513B1 (pl) 1995-05-31
DE69132271D1 (de) 2000-08-03
EP0545927B1 (de) 2000-06-28
EP0545927A4 (de) 1993-04-26
WO1991017496A1 (en) 1991-11-14
JPH0679273B2 (ja) 1994-10-05

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
JPH0429093B2 (de)
US9262140B2 (en) Predication supporting code generation by indicating path associations of symmetrically placed write instructions
US20060253654A1 (en) Processor and method for executing data transfer process
US7886132B2 (en) Predication support in an out-of-order processor by selectively executing ambiguously renamed write operations
JPH04309131A (ja) 命令群用マイクロコード生成装置及びコンピュータにおける組合せ装置
KR100308512B1 (ko) 편집 기능을 위한 전문 밀리코드 지시
KR100317769B1 (ko) 압축 기억된 십진수 나눗셈에 대한 전문 밀리코드 명령
KR19990082748A (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
Moreno Dynamic translation of tree-instructions into VLIWs
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