KR960008526A - 파이프라인 프로세서와 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법 - Google Patents
파이프라인 프로세서와 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims 16
- 238000002372 labelling Methods 0.000 claims 4
- 238000010586 diagram Methods 0.000 description 3
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/3867—Concurrent 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항에 있어서, 상기 레지스터값과 상기 단일 레지스터 식별자를 회복하기 위한 결과파이프로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 제1항에 있어서, 상기 레지스터값과 상기 단일 레지스터 식별자를 결과패키지를 형성하는 것으로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 제3항에 있어서, 상기 결과패키지에서 상기 결과파이프로 삽입하고, 상기 결과파이프로부터의 상기 레지스터값을 초기의 명령을 위한 명령파이프에 축적하기 위한 상기 명령파이프와 결과파이프간에 연결된 비교기/삽입기로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 제1항에 있어서, 상기 단일 레지스터시별자를 생성하기 위한 카운터로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 제5항에 있어서, 상기 단일 레지스터식별자가 개명된 레지스터수(RRN)인 것으로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 제6항에 있어서, 상기 카운터가 모듈로카운터인 것으로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 제2항에 있어서, 상기 명령파이프와 상기 결과파이프가 서로에 관해 카운터플로우하도록 연결된 것으로 이루어진 것을 특징으로 하는 파이프라인 프로세서.
- 명령파이프와 결과파이프를 갖춘 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법에 있어서, 단일 레지스터식별자를 프로세서내의 제1명령의 목적 오퍼랜드레지스터에 할당하는 단계로 이루어진것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제9항에 있어서, 명령파이프내에 제1명령의 실행에 의해 생성된 목적 레지스터값을 갖추어 상기 단일 레지스터식별자를 할당하고; 상기 단일 레지스터식별자와 상기 관련된 목적 레지스터값을 결과파이프로 삽입하는 단계를 더욱 포함하는 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제10항에 있어서, 상기 단일 레지스터식별자를 갖춘 초기의 명령의 소스 오퍼랜드레지스터를 연합하고, 초기의 명령의 소스 오퍼랜드레지스터가 제1명령의 상기 목적 오퍼랜드레지스터와 동일하고; 초기의 명령의 상기 소스 오퍼랜드레지스터에 상응하는 소스레지스터값을 위한 결과파이프로부터 상기 단일 레지스터식별자에 연합된 상기 레지스터값을 축적하는 단계를 더욱 포함하는 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제11항에 있어서, 상기 단일 레지스터식별자는 개명된 레지스터스(RRN)인 것으로 이루어지고, 상기 RRN의 할당을 개명표내에 상기 목적 오퍼랜드레지스터에 기록하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제12항에 있어서, 상기 목적 오퍼랜드레지스터를 매칭하는 존재하는 앤트리를 위한 상기 개명표를 조사하고, 기록하는 단계 이전에 어떤 상기 존재하는 앤트리를 무표화하는 단계를 더욱 포함하는 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제l2항에 있어서, 초기의 명령의 상기 소스 오퍼랜드레지스터를 연합하는 상기 단계가 초기의 명령의 상기 소스 오퍼랜드레지스터를 매칭하는 앤트리를 위해 상기 개명표를 조사함으로써 상기 RRN을 회복하는 단계로 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제10항에 있어서, 상기 목적 레지스터값을 갖춘 레지스터파일을 갱신하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제14항에 있어서, 상기 파이프라인프로세서는 카운터플로우 파이프라인프로세서이고, 축적하는 단계전에 결과파이프내에 상기 레지스터값과 상기 RRN을 카운터플로우 하는 단계로 더욱 이루어진 것을 특징으로하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 명령파이프와 결과파이프를 갖춘 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법에 있어서, 프로세서내에 단일 레지스터식별자를 제1명령의 소스 오퍼랜드레지스터에 할당하는 단계로 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제17항에 있어서, 제1명령의 상기 소스 오퍼랜드레지스터를 매칭하는 앤트리를 위해 개명표를 조사하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제18항에 있어서, 상기 단일 레지스터식별자는 개명된 레지스터수(RRN)인 것으로 이루어지고, 개명표내에서 상기 RRN의 할당을 상기 소스 오퍼랜드레지스터에 기록하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제19항에 있어서, 상기 소스 오퍼랜드레지스터에 상응하는 레지스터값을 위한 요정을 레지스터파일로 전달하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제20항에 있어서, 상기 레지스터값과 상기 RRN을 결과파이프로 삽입하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제21항에 있어서, 상기 파이프라인프로세서는 카운터플로우 파이프라인프로세서인 것으로 이루어지고, 결과파이프내에 상기 레지스터값과 상기 RRN을 카운터플로우 하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.
- 제22항에 있어서, 결과파이프로부터 상기 RRN에 연합된 상기 레지스터값을 명령파이프에 축적하는 단계로 더욱 이루어진 것을 특징으로 하는 파이프라인 프로세서를 이용한 명령의 레지스터값을 라벨링하는 방법.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
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)
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)
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 |
-
1994
- 1994-08-24 US US08/295,126 patent/US6205538B1/en not_active Expired - Lifetime
-
1995
- 1995-07-20 CA CA002154327A patent/CA2154327A1/en not_active Abandoned
- 1995-07-25 DE DE69509020T patent/DE69509020T2/de not_active Expired - Fee Related
- 1995-07-25 EP EP95305193A patent/EP0698846B1/en not_active Expired - Lifetime
- 1995-08-24 JP JP7237895A patent/JPH0876997A/ja not_active Withdrawn
- 1995-08-24 KR KR1019950026291A patent/KR100403676B1/ko not_active IP Right Cessation
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 |