KR960008526A - 파이프라인 프로세서와 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법 - Google Patents

파이프라인 프로세서와 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법 Download PDF

Info

Publication number
KR960008526A
KR960008526A KR1019950026291A KR19950026291A KR960008526A KR 960008526 A KR960008526 A KR 960008526A KR 1019950026291 A KR1019950026291 A KR 1019950026291A KR 19950026291 A KR19950026291 A KR 19950026291A KR 960008526 A KR960008526 A KR 960008526A
Authority
KR
South Korea
Prior art keywords
register
instruction
pipe
result
pipeline processor
Prior art date
Application number
KR1019950026291A
Other languages
English (en)
Other versions
KR100403676B1 (ko
Inventor
영 로버트
Original Assignee
리 패치
선마이크로 시스템스, 인코포레이티드
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 리 패치, 선마이크로 시스템스, 인코포레이티드 filed Critical 리 패치
Publication of KR960008526A publication Critical patent/KR960008526A/ko
Application granted granted Critical
Publication of KR100403676B1 publication Critical patent/KR100403676B1/ko

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
    • 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/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • 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/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

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)

Abstract

본 발명은 개명표를 갖춘 카운터플로우 파이프라인프로세서를 위한 효과적인 능률화된 파이프라인을 제공한다. 카운터플로우 파이프라인은 명령파이프를 형성하는 다중 명령단계와, 결과파이프를 형성하는 복수의 결과단계 및 상응하는 복수의 비교기/삽입기를 포함한다. 각 비교기/삽입기는 명령단계에 상응하는 결과단계로 연결된다. 카운터플로우 파이프라인은 개명표를 갖추는 레지스터 시험단계를 역시 포함한다. 개명표는 능률적인 카운터플로우 파이프라인에 명령과 그들 각각의 레지스터와 같은 조정과 하우스키핑(스테일 레지스터값을 제거하는)을 위한 필요를 제거함에 의해 단일 개명된 레지스터수(RRN)를 갖춘 명령의 각 레지스터값에 연합하기 위한 엔트리를 갖춘다. 모듈로 카운터와 같은 RRN카운터는 개명표에 연결되고, 새로운 레지스터값으로 할당을 위한 단일 RRNs를 제공한다. 본 발명의 실시예에 따라, 명령은 디코드되고, 만일 RRNs는 소스와 목적오퍼랜드레지스터로 할당된다. 만일 거기에 레지스터오퍼랜드로 할당된 이전의 RRN이 없으면, 그들 레지스터값은 레지스터파일로부터 회복되고, 결과파이프의 상단으로 삽입된다. 부가적으로, 명령 실행이 실행파이프내의 레지스터결과값을 생성할 때, 연합된 RRN과 레지스터값은 나중에 결과파이프로 삽입된다. 결과파이프의형태에서 레지스터값과 RRN은 명령파이프를 카운터플로우하는 초기의(프로그램차례 후에) 명령에 의해 생성된다.

Description

파이프라인 프로세서와 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제1도는 본 발명의 컴퓨터시스템의 블럭도.
제2도(a)는 본 발명에 따른 카운터플로우 파이프라인프로세서(CFPP)를 위한 카운터플로우 파이프라인의 제1실시예를 설명하는 블록도.
제2도(b)는 카운터플로우 파이프라인의 실행파이프의 블록도,
제3도는 CFPP에 대한 명령패키지의 제1수단를 나타낸 도면.
제4도는 CFPP에 대한 결과패키지의 제1수단를 니타낸 도면.

Claims (23)

  1. 레지스터값을 생성하도록 제1명령을 실행하기 위한 명령파이프와; 단일 레지스터식별자의 할당을 상기 레지스터값에 기록하기 위한 상기 명령파이프에 연결된 개명표로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  2. 제1항에 있어서, 상기 레지스터값과 상기 단일 레지스터 식별자를 회복하기 위한 결과파이프로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  3. 제1항에 있어서, 상기 레지스터값과 상기 단일 레지스터 식별자를 결과패키지를 형성하는 것으로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  4. 제3항에 있어서, 상기 결과패키지에서 상기 결과파이프로 삽입하고, 상기 결과파이프로부터의 상기 레지스터값을 초기의 명령을 위한 명령파이프에 축적하기 위한 상기 명령파이프와 결과파이프간에 연결된 비교기/삽입기로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  5. 제1항에 있어서, 상기 단일 레지스터시별자를 생성하기 위한 카운터로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  6. 제5항에 있어서, 상기 단일 레지스터식별자가 개명된 레지스터수(RRN)인 것으로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  7. 제6항에 있어서, 상기 카운터가 모듈로카운터인 것으로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  8. 제2항에 있어서, 상기 명령파이프와 상기 결과파이프가 서로에 관해 카운터플로우하도록 연결된 것으로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
  9. 명령파이프와 결과파이프를 갖춘 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법에 있어서, 단일 레지스터식별자를 프로세서내의 제1명령의 목적 오퍼랜드레지스터에 할당하는 단계로 이루어진것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  10. 제9항에 있어서, 명령파이프내에 제1명령의 실행에 의해 생성된 목적 레지스터값을 갖추어 상기 단일 레지스터식별자를 할당하고; 상기 단일 레지스터식별자와 상기 관련된 목적 레지스터값을 결과파이프로 삽입하는 단계를 더욱 포함하는 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  11. 제10항에 있어서, 상기 단일 레지스터식별자를 갖춘 초기의 명령의 소스 오퍼랜드레지스터를 연합하고, 초기의 명령의 소스 오퍼랜드레지스터가 제1명령의 상기 목적 오퍼랜드레지스터와 동일하고; 초기의 명령의 상기 소스 오퍼랜드레지스터에 상응하는 소스레지스터값을 위한 결과파이프로부터 상기 단일 레지스터식별자에 연합된 상기 레지스터값을 축적하는 단계를 더욱 포함하는 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  12. 제11항에 있어서, 상기 단일 레지스터식별자는 개명된 레지스터스(RRN)인 것으로 이루어지고, 상기 RRN의 할당을 개명표내에 상기 목적 오퍼랜드레지스터에 기록하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  13. 제12항에 있어서, 상기 목적 오퍼랜드레지스터를 매칭하는 존재하는 앤트리를 위한 상기 개명표를 조사하고, 기록하는 단계 이전에 어떤 상기 존재하는 앤트리를 무표화하는 단계를 더욱 포함하는 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  14. 제l2항에 있어서, 초기의 명령의 상기 소스 오퍼랜드레지스터를 연합하는 상기 단계가 초기의 명령의 상기 소스 오퍼랜드레지스터를 매칭하는 앤트리를 위해 상기 개명표를 조사함으로써 상기 RRN을 회복하는 단계로 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  15. 제10항에 있어서, 상기 목적 레지스터값을 갖춘 레지스터파일을 갱신하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  16. 제14항에 있어서, 상기 파이프라인프로세서는 카운터플로우 파이프라인프로세서이고, 축적하는 단계전에 결과파이프내에 상기 레지스터값과 상기 RRN을 카운터플로우 하는 단계로 더욱 이루어진 것을 특징으로하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  17. 명령파이프와 결과파이프를 갖춘 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법에 있어서, 프로세서내에 단일 레지스터식별자를 제1명령의 소스 오퍼랜드레지스터에 할당하는 단계로 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  18. 제17항에 있어서, 제1명령의 상기 소스 오퍼랜드레지스터를 매칭하는 앤트리를 위해 개명표를 조사하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  19. 제18항에 있어서, 상기 단일 레지스터식별자는 개명된 레지스터수(RRN)인 것으로 이루어지고, 개명표내에서 상기 RRN의 할당을 상기 소스 오퍼랜드레지스터에 기록하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  20. 제19항에 있어서, 상기 소스 오퍼랜드레지스터에 상응하는 레지스터값을 위한 요정을 레지스터파일로 전달하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  21. 제20항에 있어서, 상기 레지스터값과 상기 RRN을 결과파이프로 삽입하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  22. 제21항에 있어서, 상기 파이프라인프로세서는 카운터플로우 파이프라인프로세서인 것으로 이루어지고, 결과파이프내에 상기 레지스터값과 상기 RRN을 카운터플로우 하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
  23. 제22항에 있어서, 결과파이프로부터 상기 RRN에 연합된 상기 레지스터값을 명령파이프에 축적하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
    ※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
KR1019950026291A 1994-08-24 1995-08-24 카운터플로우파이프라인프로세서와카운터플로우파이프라인프로세서에서유용한명령의레지스터값을라벨링하는방법 KR100403676B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/295,126 1994-08-24
US08/295126 1994-08-24
US08/295,126 US6205538B1 (en) 1994-08-24 1994-08-24 Instruction result labeling in a counterflow pipeline processor

Publications (2)

Publication Number Publication Date
KR960008526A true KR960008526A (ko) 1996-03-22
KR100403676B1 KR100403676B1 (ko) 2003-12-31

Family

ID=23136319

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950026291A KR100403676B1 (ko) 1994-08-24 1995-08-24 카운터플로우파이프라인프로세서와카운터플로우파이프라인프로세서에서유용한명령의레지스터값을라벨링하는방법

Country Status (6)

Country Link
US (1) US6205538B1 (ko)
EP (1) EP0698846B1 (ko)
JP (1) JPH0876997A (ko)
KR (1) KR100403676B1 (ko)
CA (1) CA2154327A1 (ko)
DE (1) DE69509020T2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6205538B1 (en) 1994-08-24 2001-03-20 Sun Microsystems, Inc. Instruction result labeling in a counterflow pipeline processor
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US6233637B1 (en) * 1996-03-07 2001-05-15 Sony Corporation Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure
US6163839A (en) * 1998-09-30 2000-12-19 Intel Corporation Non-stalling circular counterflow pipeline processor with reorder buffer
GB0002848D0 (en) 2000-02-08 2000-03-29 Siroyan Limited Communicating instruction results in processors and compiling methods for processors
US8452944B2 (en) * 2009-05-22 2013-05-28 Canon Kabushiki Kaisha Information processing apparatus and information processing method

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967343A (en) * 1983-05-18 1990-10-30 International Business Machines Corp. Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
US4901233A (en) 1987-07-20 1990-02-13 International Business Machines Corporation Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries
US5487156A (en) 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
JPH03186243A (ja) * 1989-12-15 1991-08-14 Matsushita Electric Ind Co Ltd アップライト型電気掃除機
US5202993A (en) * 1991-02-27 1993-04-13 Sun Microsystems, Inc. Method and apparatus for cost-based heuristic instruction scheduling
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
EP0514763A3 (en) 1991-05-20 1993-08-25 Motorola, Inc. A data processor having a logical register content-addressable memory
JPH0628186A (ja) * 1992-07-09 1994-02-04 Kawasaki Steel Corp 複数処理演算器の並列処理方法及び並列処理装置
JPH06139075A (ja) * 1992-10-29 1994-05-20 Hitachi Ltd プログラムの命令配列方式およびコンパイラ
US5481683A (en) * 1992-10-30 1996-01-02 International Business Machines Corporation Super scalar computer architecture using remand and recycled general purpose register to manage out-of-order execution of instructions
US5548776A (en) * 1993-09-30 1996-08-20 Intel Corporation N-wide bypass for data dependencies within register alias table
US5682493A (en) * 1993-10-21 1997-10-28 Sun Microsystems, Inc. Scoreboard table for a counterflow pipeline processor with instruction packages and result packages
US5553256A (en) * 1994-02-28 1996-09-03 Intel Corporation Apparatus for pipeline streamlining where resources are immediate or certainly retired
US6205538B1 (en) 1994-08-24 2001-03-20 Sun Microsystems, Inc. Instruction result labeling in a counterflow pipeline processor
WO1996012228A1 (en) * 1994-10-14 1996-04-25 Silicon Graphics, Inc. Redundant mapping tables
US5625789A (en) * 1994-10-24 1997-04-29 International Business Machines Corporation Apparatus for source operand dependendency analyses register renaming and rapid pipeline recovery in a microprocessor that issues and executes multiple instructions out-of-order in a single cycle
US5634026A (en) * 1995-05-12 1997-05-27 International Business Machines Corporation Source identifier for result forwarding

Also Published As

Publication number Publication date
US6205538B1 (en) 2001-03-20
DE69509020T2 (de) 1999-11-25
CA2154327A1 (en) 1996-02-25
DE69509020D1 (de) 1999-05-20
JPH0876997A (ja) 1996-03-22
EP0698846A1 (en) 1996-02-28
EP0698846B1 (en) 1999-04-14
KR100403676B1 (ko) 2003-12-31

Similar Documents

Publication Publication Date Title
EP1023660B1 (en) Processor utilizing template field instruction encoding
US5996068A (en) Method and apparatus for renaming registers corresponding to multiple thread identifications
EP0096575B1 (en) Concurrent processing elements for using dependency free code
EP1380946A2 (en) Program code conversion with reduced translation
AU593570B2 (en) Digital data processing system
KR920001320A (ko) 감소된 명령 세트 프로세서에서 내부 레지스터의 데이타를 조정하는 방법 및 장치
KR840006528A (ko) 중앙 처리장치
KR920001321A (ko) 고속 프로세서에서의 브랜치 처리 방법 및 장치
KR940018757A (ko) 슈퍼스칼라 프로페서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
KR960008526A (ko) 파이프라인 프로세서와 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법
TW430769B (en) Information processing apparatus for realizing data transfer for a plurality of registers using instructions of short word length
JP3592673B2 (ja) レジスタ・リネーミング方式
US7836282B2 (en) Method and apparatus for performing out of order instruction folding and retirement
US8782378B2 (en) Dynamic instruction splitting
Barve et al. A parallel lexical analyzer for multi-core machines
CN114594962A (zh) 机器码的反汇编系统、反汇编方法、计算机设备及存储介质
EP0096574B1 (en) System and method of renaming data items for dependency free code
CN104239064B (zh) 一种提取和组织arm程序重定位信息的方法
KR950027573A (ko) 처리 시스템 및 그이 동작 방법
KR890012224A (ko) 정보처리장치
Bürkle et al. High level language oriented hardware and the post-von Neumann era
El-Kharashi et al. The JAFARDD processor: a java architecture based on a folding algorithm, with reservation stations, dynamic translation, and dual processing
US20040148489A1 (en) Sideband VLIW processor
JPS5933555A (ja) デ−タフロ−制御方式
Xin et al. The architecture of the Java extension of 32-bit RISC for smart cards and other embedded systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee