KR100335563B1 - 카운터플로우파이프라인프로세서용스코어보드테이블 - Google Patents

카운터플로우파이프라인프로세서용스코어보드테이블 Download PDF

Info

Publication number
KR100335563B1
KR100335563B1 KR1019950004484A KR19950004484A KR100335563B1 KR 100335563 B1 KR100335563 B1 KR 100335563B1 KR 1019950004484 A KR1019950004484 A KR 1019950004484A KR 19950004484 A KR19950004484 A KR 19950004484A KR 100335563 B1 KR100335563 B1 KR 100335563B1
Authority
KR
South Korea
Prior art keywords
operand
pipeline
instruction
package
memory
Prior art date
Application number
KR1019950004484A
Other languages
English (en)
Other versions
KR950033819A (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 KR950033819A publication Critical patent/KR950033819A/ko
Application granted granted Critical
Publication of KR100335563B1 publication Critical patent/KR100335563B1/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
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

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

본 발명은 레지스터 파일 및 스코어보드 테이블을 구비한 다단 카운터플로우 파이프라인 마이크로프로세서에 관한 것이다.
스코어보드 테이블 및 레지스터 파일을 구비한 카운터플로우 파이프라인은 기술되었다. 카운터플로우 파이프라인에서, 정보흐름은 쌍방향이다. 명령은 동작중에 파이프라인 위로진행한다. 상기 명령으로 부터의 결과는 동일한 파이프라인 아레로 진행한다. 스코어보드 테이블은 선정된 시간동안 카운터 플로우 파이프라인에서 재계산되는 레지스터 값의 기록을 처리한다. 신명령이 카운터플로우 파이프라인에 입력될때, 레지스터 값은 재계산될 레지스터 값의 기록자 비교되거나 또는 스코어보드 테이블에 기억된다. 만약 조합이 생긴다면, 소스값은 레지스터 파일로부터 페치되지 않는다. 오히려, 필요한 소스 값은 카운터 플로우 파이프 라인에 저장된다.
상기 절차에 의거, 엑세스될 필요가 있는 레지스터 파일의 배수는 상당히 축소된다.

Description

카운터플로우 파이프라인 프로세서용 스코어보드 테이블
[산업상 이용분야]
본 발명은 컴퓨터 시스템에 관한 것으로 특히, 카운터 플로우 파이프라인, 레지스터 파일 및, 카운터플로우 파이프라인내에서 레지스터값의 기록을 처리하는 레지스터파일 스코어보드 테이블을 구비한 마이크로 프로세서에 관한 것이다.
[종래의 기술 및 그 문제점]
마이크로프로세서는 컴퓨터 프로그램이 특수한 작업을 수행할 수 있도록 제한된 유저(user)를 사용한다. 작업에 관계없이, 모든 프로그램은 직렬의 명령어로 구성된다. 기술적인 면에서, 마이크로프로세서는 다단파이프라인을 통해 명령어를 실행한다. 명령어는 파이프라인의 한끝에 입력되어, 단을 통해 처리되며, 명령어의 결과는 파이프라인의 반대끝 으로 출력된다. 통상 파이프라인은 명령페치단, 명령해독부, 레지스터 페치단, 실행단, 메모리 엑세스단, 라이트-백(write-back)단을 구비한다. 파이프라인은 동시에 실행되는 명령어의 수를 증가시며, 따라서 전체 프로세서의 실행량은 향상된다. 초대규모 프로세서는 복수의 명령어 스트림을 동시에 실행시키기 위해 구성된 복수의 파이프라인을 구비한 프로세서이다.
제어 및 데이타 헤저드는 프로세서가 초대규모의 파이프라인을 구비해야 하는 결함이있다. 제어 및 데이타 해저드는 명령어 서로 간에 관여가 있을때 발생한다. 제1명령을 실행하는 제1파이프라인을 살펴보면, 제1명령은 목적 레지스터(X)를 인식한다. 제2파이프라인을 통해 실행되는 제2명령은 레지스터(X)내용의 필요 여부에 따라 달라질수있다. 만약, 제2파이프라인이 상기 제1명령이 종료되기 전에 레지스터(X)의 내용을 사용한다면, 레지스터(X)내 데이타가 최근의 것이 아니기 때문에 잘못된 출력이 나타나게된다. 데이타 헤저드의 결함을 극복하기 위한 간단한 방법으로, 제1파이프라인의 적정한 결과가 실행되어, 레지스터(X)로 이동하므로써 이용가능할 때까지 제2명령의 실행을 보류하는 것이다. 더 우수한 개선책으로는, 각 파이프라인내 단마다의 출력을 멀티플렉싱하는 포워딩(forwarding)이 있다. 만약, 한 파이프라인의 결과가 중간단에서 계산된다면, 상기 결과는 다른 관련 명령에 즉시 이용할 수 있도록 되는 동시에 포워드된다. 이러한 개선책이 결과를 대기하는 파이프라인의 지연시간을 단축시키기는 하지만, 결함이 완전히 해소되는 것은 아니다.
제1도는 본 발명에 따른 컴퓨터 시스템의 블럭도,
제2도는 본 발명의 카운터플로우 파이프라인에 사용된 명령 패키지의 예시도,
제3도는 본 발명이 카운터플로우 파이프라인에 사용된 결과 패키지의 예시도,
제4도는 본 발명에 따른 카운터플로우 파이프라인을 단순화한 블럭도,
제5도는 본 발명의 카운터플로우 파이프라인에 사용된 스코어보드 테이블의 예시도,
제6도는 본 발명의 스코어보드 테이블내 목록에 관한 레지스터 테이블을 갱신하는 소스 레지스터의 순차흐름도,
제7도는 본 발명의 스코어보드 테이블내 목록에 관한 레지스터 테이블을 갱신하는 목적 레지스터의 순차흐름도,
제8도는 본 발명이 스코어보드 테이블내 목록에 관한 레지스터 테이블을 갱신하는 결과 패키지의 순차흐름도이다.
2 --- 컴퓨터 시스템, 10 --- CPU,
14 --- 레지스터 파일, 16 --- 카운터플로우 파이프라인,
22 --- 레지스터 검색단, 30 --- 명령 패키지,
50 --- 결과 패키지, 60 --- 스코어보드 테이블.
본 발명은 상기한 점을 감안하여 발명된 것으로, 레지스터파일 및 스코어보드 테이블을 구비한 개선된 다단 카운터플로우 파이프라인 마이크로프로세서를 제공함에 그 목적이 있다.
[발명의 구성]
상기 목적을 달성하기 위한 본 발명은, 카운터플로우 파이프라인내의 정보가쌍향향으로 흐른다. "명령패키지"내 명령어는 실행중에는 카운터플로우 파이프라인의 단 위로 진행하며, 상기 명령어로 부터의 결과는 카운터 플로우 파이프라인의 단 아래로 "결과 패키지"에 진행된다. 명령패키지는 동작(OP)코드, 소스 레지스터(SR)식별자 또는 식별자들, 소스레지스터값 또는 값들, 목적레지스터(DR) 식별자 및, 목적레지스터 값을 포함한다. 결과패키지는 DR식별자 및 DR값을 포함한다.
스코어보드 테이블은 레지스터 식별자칼럼(column), 레지스터값 칼럼 및, 상태칼럼을 포함한다. 상태칼럼은 VALID, INPIPE 또는 FLUSH 플래그 중 하나를 홀드시킬 수 있다. VALID 플래그는 식별된 레지스터의 값이 최근의 것임을 나타낸다. INPIPE 플래그는 식별된 레지스터의 값이 카운터 플로우 파이프라인내에서 재계산되고 있음을 나타낸다. FLUSH플래그는 트랩 또는 오판된 브랜치로 인해 발생되는 것처럼 프로그램 순서상에 부적절한 변화때문에 테이블내 목록이 소멸됨을 나타낸다. 만약 레지스터가 스코어보드 테이블에 입력되지 않는다면, 테이블에서 INVALID목록으로 처리된다.
동작중에, 스코어보드 테이블은 명령패키지가 카운터플로우 파이프라인에 입력되기 이전에 명령패키지의 필요한 소스레지스터가 스코어보드 테이블내에 있는가를 판단하기 위해 검색된다. 만약, 필요한 소스레지스터가 테이블내에 있으며 VALID상태를 갖는다면, 레지스터 및 레지스터의 대응값은 스코어보드 테이블에 의해 명령패키지에 신속히 공급된다. 만약, 필요한 레지스터가 INPIPE상태에 있다면, 명령패키지는 파이프라인내로 진행하여, 필요한 값이 파이프라인내에 제공되거나또는 "저장된다". 만약, 필요한 레지스터가 INVALID 또는 FLUSH상태에 있다면, 필요한 값은 레지스터파일로부터 제공된다.
카운터플로우 파이프라인에서, 명령패키지 및 결과패키지는 각단에서 비교된다. 명령패키지의 SR식별자와 결과패키지의 DR 식별자를 조합하여 결과패키지가 명령패키지에 의해 제공된 결과를 처리하도록 지시한다. 상기 조합에 반응하여, 결과패키지의 DR값은 명령패키지에 의해 저장된다. 명령패키지의 DR은 또한 결과패키지에서 식별된 DR에 비교된다. 조합은 명령패키지에서 식별된 DR값이 재계산되도록 지시한다. 조합이 있는단은 결과패키지의 DR값을 "정지시킨다(Kills)". 따라서, 결과를 정지시킴으로써 프로그램 순서상 후입 명령패키지와 더이상 호환하는 것을 방지한다.
본 발명의 스코어보드 테이블을 카운터플로우 파이프라인 프로세서에 여러가지 우수한 장점을 제공한다. 통계학적 논문에 의하면, 다수의 소정 명령형태는 상호간에 긴밀한 상관 관계가 있음이 기술된다. 따라서, 상기 명령으로부터 필요한 레지스터가 스코어보드 테이블에 있게 될 가능성은 상당히 높다. 주파수에 엑세스되기 위해 필요한 레지스터파일이 상당히 감소함으로 인해, 카운터플로우 파이프라인 프로세서의 효율은 향상된다. 또다른 장점으로, 더적은 포트(port)가 레지스터파일에 사용되며, 더작은 다이 면적으로 레지스터파일의 포트의 디자인 및 레이아웃을 시행할수있다.
[실시예]
이하, 예시도면을 참조하여 본 발명에 따른 실시예를 상세히 설명한다.
제1도에는, 본 발명에 따른 컴퓨터 시스템의 블럭도가 도시되어 있다. 컴퓨터 시스템(2)은 입력장치(4), 디스플레이장치(6), 입력/출력(I/O)회로(7), 시스템 메모리(8) 및 중앙처리장치(CPU) (10)를 구비한다. 컴퓨터 시스템(2)의 기본동작은 공개된바, 이후 명세서에서는 상세한 설명을 피하기로 한다. 한 실시예에서, 카운터플로우 프로세서(10)는 측정할 수 있는 프로세서 구조(SPARC)를 기초로 한다. SPARC 명령세트를 포함한 SPARC에 대한 더많은 정보를 제공키 위해서 예컨데, 본 명세서에서 구현되는 1992년 버전8, 국제 SPARC인 "SPARC구조 메뉴얼"을 참조한다. 본 발명이 소정의 마이크로프로세서 구조를 기초로 하며, 복합 명령세트(CISC) 또는 축소명령세트(RISC)를 포함하는 소정의 명령세트 형태를 사용함은 공지된 바와 같다.
본 발명에 따르면, CPU(10)는 카운터플로우 프로세서이다. "카운터플로우 파이프라인"으로 명칭되어 1993년 10월 21일 공개된 미국특허출원 제 08/140,654호 및, "카운터플로우 파이프라인 프로세서"로 명칭되어 1993년 10월 21일 공개된 미국특허출원 제 08/140,655호는 각기 신 카운터플로우파이프라인 및 마이크로프로세서의 구조를 유사한 개념으로 기술하였다. 정보흐름이 쌍방향이기 때문에 상기 디자인은 종래 파이프라인 디자인과는 차별화된다. 명령패키지는 실행중에는 파이프라인 위로 진행한다. 상기 명령으로 부터의 결과는 동일한 파이프라인 아래로 결과패키지에 진행된다. 명령이 상기 명령에 따른 결과와 교차함에 따라, 상기 결과는 카피된다. "저장"으로 명칭되는 상기 과정은 지연의 문제점을 상당히 극복한다. 본 명세서를 통해 구현되는 상기 특허출원은 본 출원의 동의뢰인인 Sun Microsystems,Inc, Mountain View CA.에 의해 의뢰되었다. 카운터플로우파이프라인 및 이것의 장점에 대한 상세한 설명은 후술하기로 한다.
제2도에는, CPU(10)에 사용되는 명령패키지가 도시되어있다. 명령패키지(30)는 OP코드필드(31), 제1 SR식별자 필드(32), 제1값필드(33), 제1플래그(34), 제2 SR식별자필드(35), 제2값필드(36), 제2플래그(37), DR식별자필드(38), 값필드(39) 및, 제3플래그(40)로 구성된다. OP코드필드(31)는 명령패키지(30)의 명령을 홀드시킨다 필드(32 및 35)는 물리적 레지스터수, 실제 레지스터수 또는 소정의 다른 식별자같은 SR오퍼랜드의 식별자를 홀드시킨다. 필드(33 및 36)는 각기 상기 SR오퍼랜드의 값을 홀드시킨다. 플래그(34 및 37)는 특수한 명령패키지(30)가 필드(32 및 35)에서 각기 식별되는 SRs를 사용하도록 지시한다. 필드(38)는 DR의 식별자를 홀드시키고, 필드(39)는 DR레지스터의 값을 홀드시키며, 플래그(40)는 명령패키지(30)가 DR을 인식하도록 지시를한다. 예컨데, 레지스터 SR1, SR2 및 DR3는 모두 ADD명령의 실행을 필요로하기 때문에, 상기 ADD 명령을 통해, 명시된 플래그(35, 37 및 39)는 모두 세트된다. 한편, SET HIGH명령(즉, SETHI DR4)동안에는 필드(38)에서 식별된 BR만이 상기 명령의 실행에 필요하므로, 제3플래그 (40)만이 세트된다.
제3도에는, CPU(10)에 사용되는 결과 패키지가 도시되어있다. 결과패키지(5대는 DR식별자 필드(52), 값필드(53) 및, 플래그(54)로 구성된다. 필드(52)는 물리적 레지스터수, 실제 레지스터수 또는 소정의 다른 식별자처럼 DR의 식별자를 홀드시킨다. 값필드(53)는 필드(52)에서 식별된 특수한 DR의 내용을 홀드시킨다. 플래그(54)는 특수한 결과패키지(50)가 필드(52)에서 식별된 DR을 포함하도록 지시를 한다. NO OPERATION명령 같은 일부 명령은 목적레지스터를 인식하지 않는다. 따라서, 플래그(54)는 상기 명령으로 리세트된다. 본 발명의 또다른 실시예에 의거, 만약 상기 명령이 DR을 식별하지 않는다면, 이때 결과패키지(50)는 상기 명령에 제공되지 않는다.
본 발명의 배경을 기술하기 위해 본명세서에서는 CPU(10)의 관련 부분에 대한 간단한 설명을 하기로 한다. 제4도에는, CPU(10)내 단순화한 카운터 플로우 파이프라인이 도시되어 있다. CPU(10)는 버퍼(12), 레지스터파일(14) 및, 카운터플로우 파이프라인(16)을 포함한다. 카운터플로우 파이프라인(16)은 명령설정단(18), 해독단(20), 레지스터 검색단(22), 복수의 실행단(24(l)내지 24(n)) 및, 레지스터파일 제어단(26)을 포함하는 복수의 단으로 구성된다. 스코어보드 테이블(60)은 레지스터 검색단(22)에 결합된다. 쌍방향 전기 접속부(28)는 레지스터 검색단(22)과 레지스터 파일(14)간에 접속된다. 이하, 카운터플로우 파이프라인(16)내 각 단에대한 기술을 하기로한다.
버퍼(12) : 카운터플로우 파이프라인(16)에 의해 실행되는 명령패키지(30)는 페치순서로 버퍼(12)에 기억된다. 버퍼(12)의 상층부에 명령패키지(30(a))는 통상 "선임(older)"명령으로 명칭되며, 버퍼(12)의 하층부에 명령패키지(30(z))는 통상 "후입(younger) "명령으로 명칭된다. 선입은 프로그램순서상 하부에 있는 명령보다 앞서 파이프라인(16)에 설정되기 때문에 상층부에 인접한 명령을 "선임"이라 한다.
레지스터파일(14) : 레지스터파일(14)은 카운터플로우 파이프라인(16)에 물리적으로 상당히 인접한 레지스터세트 이다. 명령패키지(30)의 최종 결과는 레지스터파일(14)에 기억된다. 상기 최종결과는 카운터플로우 파이프라인(16)에 용이하게 엑세스될 수 있다. 레지스터파일내 물리적 레지스터(도시되지 않음)는 통상 실행순서에 따라 지정된다.
명령설정부(18) : 명령설정단(18)은 버퍼(12)에서 카운터플로우 파이프라인(16)으로의 명령패키지(30)의 설정을 제어하는 역할을 한다. 일반적으로 명령설정단은 상술한바와 같은 역할을 하나, 여기에 제한되지만은 않는다. 즉, 버퍼(12)에서 제1명령패키지(30)는 제1명령패키지(30)를 추출한다. 정지, 호출 또는 다른 브랜치경로가 발생한다면 발생순서는 변경될 수 있다.
해독부(20) : 해독단(20)은 카운터플로우 파이프라인(16)에 설정된후 명령패키지(30)의 필드(31)에 나타나는 OP코드를 검색하는 역할을 한다. 상기 해독단은 명령이 데이타 전송동작(예컨데, LOAD 또는 STORE), 연산동작(예컨데, ADD, SUBTRACT), 논리동작(예컨데, OR, AND), 유동시점동작(즉, MULTIPLY, DIVIDE) 또는, 제어전송동작(예컨데, CALL, JUMP)인가를 판독한다.
레지스터 검색부(22) : 레지스터 검색단(22)은 명령패키지(30)의 필드(32,35)에서 식별된 SR 및 필드(38)에서 식별된 DR을 검색하는 역할을 한다. ADD명령예(즉, ADD SR1, SR2, SD3)에서, 부가된 SR오퍼랜드는 소스레지스터(SR1 및 SR2)에 접속된다. 카운터플로우 파이프라인(16)의 실행단(24)에서 계산된 합계는 목적레지스터(DR3)에 기억된다. SETHI같은 다른 형태의 명령에서는, SR이 필요치않다. NO OPERATION(NOP)같은 다른 명령에서는, DR이 필요치 않다.
실행단(24(l)내지 24(n)) : 실행단(24(l)내지 24(n))에서, 명령패키지(30)는 실행된다. 카운터플로우 파이프라인에서 별개의 단(24)은 명령세트내의 다른 형태의 명령을 실행시킬 수 있다. 예컨데, 단(24)중 하나는 ADD명령을 실행하기위해 사용되며, 또다른단(24)은 LOAD명령 등을 위해 사용된다. 복수의 실행단(24(l)내지 24(n))에서는, 적어도 하나의 단(24)이 명령세트내 각자의 명령형태를 실행시킬 수 있다.
레지스터파일 제어부(26) : 레지스터파일 제어단(26)은 명령패키지(30)의 결과를 레지스터파일(14)내 적정한 DR에 기억시키는 역할을 한다. 레지스터파일 제어단(26)은 또한 레지스터파일(14)에 엑세스하여 결과패키지(50)를 유도하므로써 결과스트림을 제공하며, 결과패키지(50)를 카운터플로우 파이프라인(16)에 전달시키는 역할을 한다. 이후, 결과 패키지는 카운터플로우 파이프라인단(16)아래로 순차적으로 진행하며, 이때, 특히 명령설정단(18)을 거쳐서 파이프라인(16)으로 나오게 된다.
동작중에, 명령패키지(30)는 카운터플로우 파이프라인(16)에 설정된다. 레지스터 검색단에서, 명령패키지(30)의 필드(32,35)에서 식별된 SR오퍼랜드 및 필드(38)에서 식별된 DR은 검색된다. 상술한 동시 계류중인 출원은 명령패키지(30)의 식별된 SR오퍼랜드값이 제공되는 수개의 방법을 기술한다.
a. 한실시예에서, 레지스터파일 제어단(26)은 주기적으로 액세스 레지스터파일(14)에 프로그램되며, 레지스터파일(14)의 각 레지스터에 결과패키지(50)를 제공한다. 결국, 모든 레지스터값은 재발생되어, SR값을 대기하는 소정의 명령패키지(39)에 양호한 결과를 제공한다.
b. 또다른 실시예에서, 레지스터 검색단(22)은 명령패키지(30)의 식별된 SR오퍼랜드에 대한 어드레스를 레지스터파일(14)에 전송한다. 이로인해, 상기 레지스터의 대응하는 결과패키지(50)는 카운터플로우 파이프라인(16)의 결과스트림에 제공된다. 이후, 명령패키지는 카운터플로우 파이프라인(16)내 결과패키지의 스트림 으로부터 필요한 결과를 기억시킨다.
c. 또다른 실시예에서, 레지스터 검색단(22)은 레지스터파일(14)에서 쌍방향 전기접속부(28)를 통과하여 필드(32,35)에서 식별되는 SR오퍼랜드를 필요로 한다. 다음으로, 레지스터파일(14)은 식별된 레지스터의 필요한 SR값을 레지스터 검색단으로 다시 전송한다.
d. 또다른 실시예에서, 카운터플로우 파이프라인(16)에 입력되는 명령패키지(30)를 이용하거나 하게 될경우 식별된 레지스터의 메모리는 파이프라인 프로세서(16)의 초기단에 제공된다. 본 발명은 상기 메모리에 적용되는 한가지 가능한 방법을 후술하기로 한다.
제4도에는, 스코어보드 테이블이 도시되어 있다. 스코어보드 테이블(60)은 카운터플로우 파이프라인(16)의 레지스터검색단(22)에서 조정된다. 스코어보드 테이블(60)은 레지스터 식별자칼럼(62), 값칼럼 및, 상태칼럼(66)을 포함한다. 레지스터 식별자칼럼(62)은 레지스터파일(14)의 레지스터를 식별한다. 값칼럼(64)은 칼럼(62)에서 식별된 레지스터에 대응하는 값을 홀드시킨다. 상태칼럼 목록부(66)는 칼럼(62)에서 식별된 레지스터의 전류값(64)으로 "VALID", "INPIPE" 또는 "FLUSH"플래그중 하나를 홀드시킨다.
VALID플래그는 칼럼(62)에서 식별된 레지스터에 대응하는 값(64)이 최근의 것이며, 따라서, 레지스터 검색단(30)에 입력되는 명령패키지(30)에 즉시 이용할 수 있음을 나타낸다. 예컨데, 만약 명령패키지(30)가 오퍼랜드로서 SR1을 필요로하고, 레지스터를 식별하여, 스코어보드테이블(60)에서 VALID상태를 갖는다면, 이때 SR1의 값은 명령패키지(30)에 즉시 이용할 수 있고, 레지스터파일(14)로 부터 SR오퍼랜드를 획득할 필요가 없어진다.
칼럼(66)에서 INPIPE플래그는 칼럼(62)에서 식별된 레지스터의 값(64)이 카운터플로우 파이프라인(16)에서 재계산되고 있음을 나타낸다. 이것은 만약 명령패키지(30)가 INPIPE상태의 칼럼(62)에서 별도로 식별된 레지스터의 내용을 필요로 하면, 칼럼(64)에 대응하는 값은 카운터플로우 파이프라인(16)에 저장될 수 있음을 나타낸다. 따라서, 명령패키지(30)는 필드(32 또는 35)에서 식별된 SR오퍼랜드 없이 실행단(24)에 입력될 수 있으므로, 다시 레지스터파일(14)로부터 SR오퍼랜드를 획득할 필요는 없다.
칼럼(66)에서 FLUSH플래그는 칼럼(62)에서 식별된 레지스터의 값(64)이 소멸되었음을 나타낸다. FLUSH목록부는 트랩 또는 브랜치의 오판이 검색되었을때 발생된다.
만약, 명령패키지(30)의 필드(32, 35)에서 식별되는 SR오퍼랜드가 스코어보드테이블(60)상에 존재치 않는다면, 이것은 INVALID목록으로 처리된다. 식별된 SR이 INVALID 또는 FLUSH상태에 있다면, 레지스터값은 상술된 방법(a 내지 c의 문장을 참조하라)중 하나에 의해 제공된다. 이와같은 경우에, 식별된 SR오퍼랜드는 명령패키지(30)에 제공된다.
명령검색단(22)을 거쳐서, 명령패키지(30)는 실행단(24(l)내지 24(n))에 입력된다. 명령패키지(30)는 프로그램순서에 따라 카운터플로우 파이프라인(16) 위로 진행한다. 동시에, 선입 명령으로부터의 결과패키지(50)는 카운터플로우 파이프라인(16)아래로 진행하며, 관련위치가 변동하는 것을 방지한다. 명령패키지(30) 및 결과패키지(50)는 카운터플로우 파이프라인(16)의 각단에서 교차하게 된다.
명령패키지(30) 및 결과패키지(50)는 각단에서 비교된다. 명령패키지(30)의 필드(32 또는 35)에서 식별된 SR오퍼랜드중 하나와 결과패키지(50)의 필드(52)에서 식별된 DR을 조합하여 결과패키지(50)가 명령패키지(30)에 의해 제공된 결과를 처리하도록 지시한다. 조합에 반응하여, 결과패키지(50)의 필드(53)값은 필요한 경우에는 명령패키지(30)의 대응하는 값필드(33 또는 36)에 카피된다. 상기 절차에 따라, 명령패키지(30)는 결과스트림 으로부터 필요한 값을 저장시킬 수 있다.
각단에서, 명령패키지(30)의 필드(38)에서 식별된 DR은 또한 결과패키지(50)의 필드(52)에서 식별된 DR과 비교된다. 소정의 조합은 명령패키지(30)가 결과패키지(50)의 필드(52)에서 식별된 DR과 관련된 값(53)을 재산하도록 지시한다. 조합이 있는단은 결과패키지(50)의 값(53)을 "정지시킨다". 이것은 결과패키지(50)의 플래그(54)를 리세트 시키는 본 발명의 한실시예를 통해 구현된다. 따라서, 결과를 정지시킴으로써 프로그램 순서상 후입 명령패키지(30)와 더이상 호환되는 것을 방지시킨다.
카운터플로우 파이프라인(16)의 동작을 적정하게 하기 위해서 스코어보드 테이블(60)을 갱신한다. 이것은 SR순차흐름, DR순차흐름, 결과패키지순차흐름을 통해 구현된다. 상기 각각의 순차흐름은 후술하기로 한다. 순차흐름이 하드웨어 또는 소프트웨어에 적용될 수 있음은 자명하다.
제6도에는, SR순차흐름이 도시되어 있다. 레지스터 검색단(22)은 명령 패키지(30)가 SR오퍼랜드(결정 다이아모드(80))를 인식하는가를 판독한다. 이것은 명령패키지(30)내 플래그(34 및 37)의 상태를 검색함으로써 구현될 수 있다. 두개의 플래그가 모두 리세트 된다면, 명령패키지(30)가 SR오퍼랜드를 필요로하지 않음을 지시하여 순차흐름을 종료시킨다(타원(82)). 만약, 명령패키지가 필드(32 또는 35)에서 식별된 SR오퍼랜드를 인식한다면, 다음단계는 인식된 SR(32)이 스코어보드 테이블(60) (결정 다이아몬드(84))내 목록인가를 검색하는 것이다. 만약 인식된 SR이 INVALID라면, 이것은 스코어보드 테이블(60)내에 목록이 아님을 뜻하며, 레지스터파일(14)이 엑세스피고, SR이 a내지 c문장(박스(86))에 기술된 방법중 하나에 의해 페치됨을 뜻한다. 이후, 신목록이 스크어보드 테이블(60) (박스(88))에서 페치된 SR에 대한 칼럼(62)에 제공되고, 이상태는 INPIPE(박스(90))로 세트되어, 순차흐름의 상기 브랜치는 종료된다(타원(92)).
한편, 만약 스코어보드 테이블(60)이 인식된 SR(결정 다이아몬드(84))을 포함하고, 이상태가 VALID(결정 다이아몬드(94))라면, 대응하는 SR값(64)은 명령패키지(30)에 신속히 전달된다. 스코어보드 테이블(60)에서 상태목록부(66)는 VALID로 남게되며, 순차흐름의 상기 브랜치는 종료된다(타원(98)). 만약, 인식된 SR에 대한 상태목록부(66)가 FLUSH라면, 상술한 바와같이 INVALID 목록으로 처리된다. 결국, 만약 인식된 SR에 대한 상태 목록부(66)가 이미 INPIPE라면, SR의 값이 카운터플로우 파이프라인(16)에 저장될 수 있기 때문에, 작업이 종료된다(타원(100)). 상기 순차는 검색단(22)에 입력되는 명령패키지(30)에서 식별된 모든 SR오퍼랜드에 대해 반복실행된다.
제7도에는, DR순차흐름이 도시되어 있다. 레지스터 검색단(22)에서, 명령패키지(30)의 플래그(40)는 DR이 필드(38) (다이아몬드(110))에 인식되었는가를 추적하기 위해 검색된다. 만약 명령패키지가 DR을 인식하지 않는다면, 순차흐름은 종료된다(타원(112)). 만약 명령패키지(30)가 DR을 인식한다면, 순차흐름의 다음단계는 인식된 DR이 스코어보드 테이블(60) (결정 다이어몬드(114))의 칼럼(62)내 목록인가를 추적하기 위해 검색된다. 만약, 인식된 DR이 스코어보드(60) (즉, INVALID)에 나타나지 않으면, 목록은 스코어보드 테이블(60) (박스(116))의 칼럼(62)에 제공되며, 칼럼(66)의 대응목록의 상태가 INPIPE(박스(118))로 세트되어, 상기 순차흐름의 브랜치(타원(120))는 종료된다. 한편, 만약, 스코어보드 테이블(60)이 이미 인식된 DR에 대한 목록을 포함한다면 목록의 상태는 결정된다(결정 다이아몬드(122)). 만약, 상태가 INPIPE라면, 순차흐름은 종료된다(타원(124)). 만약, 상태가 VALID라면, 상태는 INPIPE(박스(128))로 변경되어, 순차흐름은 종료된다(타원(128)). 명령패키지(30)는 카운터플로우 파이프라인(16)의 DR값을 갱신하기 때문에, 상태는 VALID에서 INPIPE로 변경된다. 따라서, 만약, 후입 명령패키지(30)가 레지스터를 필요로 한다면, INPIPE상태는 레지스터가 카운터플로우 파이프라인(16)에 저장되도록 지시한다. 만약, 상태가 FLUSH라면, 상술한 INVALID목록과 동일한 방법으로 처리된다. 상기 순차는 레지스터 검색단(22)에 입력되는 각 명령 패키지로부터 식별되는 모든 DR에 대해 반복 실행된다.
제8도에는 결과패키지(50)의 순차흐름이 도시되어 있다. 상기 순차는 결과패키지(50)가 카운터플로우 파이프라인(16)의 단 아래로 순차하여 레지스터 검색만(22)에 입력된 후에 발생된다. 레지스터 검색단(22)은 플래그(54)를 검색해서, 하나이상의 DR이 결과패키지(결정다이아몬드(140))의 필드(52)에서 식별 되는가를 판독한다. 만약, 결과패키지(50)의 플래그가 리세트 된다면, 어떠한 DR도 인식되지 않거나 또는, 결과패키지가 정지되어서, 순차흐름을 종료시킨다(타원(142)). 만약, 결과패키지(50)가 DR을 인식한다면, 순차의 다음 단계에서는 인식된 DR이 스코어보드 테이블(60) (결정다이아몬드(144))의 칼럼(62)내 목록인가를 판독한다. 만약, DR이 테이블에 없다면, 한 실시예에 따라 순차흐름은 종료된다(타원(146)). 만약 DR이 테이블에 있다면, 칼럼(66)에서 상태는 판독된다(결정다이아몬드(148)). 만약, 상태가 VALID라면, 순차흐름은 종료된다(타원(150)). 만약 상태가 INPIPE라면, VALID(박스(152))로 세트되어, 순차흐름은 종료된다(타원(154)). 만약 상태가 FLUSH라면, 목록은 스코어보드 테이블(60) (박스(156))의 칼럼(62)에 제공되며, 신목록의 상태가 VALID(박스(158))로 세트되어,상기 순차흐름의 브랜치는 종료된다(타원(160)). INPIPE 및 FLUSH상태에서, 결과패키지(50)의 필드(53)값은 스코어보드 테이블(60)내 대응목록에 전송된다. 따라서, 필드(52)에서 식별된 레지스터값은 레지스터 검색단(22)에 입력되는 후입 명령패키지(30)에 즉시 이용할 수 있다. 상기 순차는 레지스터 검색단(22)에 입력되는 결과패키지(50)내 모든 DR에 대해 반복 실행된다.
제7도의 순차흐름에 대한 또다른 실시예에서, 만약 DR이 이미 스코어보드 테이블내 목록이 아니라면, DR에 대한 테이블내 목록이 제공되어, 그 상태가 INPIPE로 세트된다. 상기 실시예는 스코어보드 테이블(60)에 신목록을 제공하는 장점을 갖는다. 그러나, 상기 목록은 후입 명령패키지(30)에 의해 사용될 확률이 더 높은 스코어보드 테이블(60)내 또다른 목록으로 대체시킬 수 있다.
상술한 실시예에서, 소스레지스터(SR)식별자 및 목적레지스터(DR)식별자는 레지스터파일(14)내 인식레지스터에 대응한다. 상기 식별자가 소스오퍼랜드 및 명령의 결과가 저장될 수 있는 메모리영역 같은 컴퓨터(2)내 소정의 영역과 대응할 수 있음은 공지된 바와같다.
본 발명의 여러 실시예에 따라, 스코어보드 레이블(60)내 목록의 수는 다양하다. 한 실시예에서, 목록의 수는 8 또는 16(m=8 또는 16)같이 선정된 수에 일치한다. 상기 실시예에서는, 선입선출(FIFO), 후입선출(LRU), 해슁(hsshing), 랜덤, 또는 라운드-로빈(round-robin)같은 목록 대체 알고리즘이 필요하다. 신목록이 동작중에 스코어보드 테이블(60)에 삽입됨에 따라, 구목록은 상술한 알고리즘중 하나를 통해 대체될 수 있다.
또다른 실시예에서, 스코오보드 테이블(60)내 목록의 수는 레지스터파일(14)내 물리적 목록의 수와 동일하다. 상기 실시예에서는 대체 알고리즘을 사용할 필요가 없다. 그러나, 파이프라인 프로세서(16)를 포함하는 반도체 다이상에서 스코어보드 테이블(60)의 디자인 및 레이아웃은 테이블의 면적때문에 더욱 복잡하게 된다.
트랩 및 브랜치의 오판이 발생되면, 레지스터 테이블(60)은 플러쉬되어야 한다. 트랩은 외부방해 또는 명령소멸 때문에 컴퓨터(2)의 동작시스템에 방향전환된 전송제어를 한다. 트랩이 발생하면, 레지스터의 전류상태는 세이브되고, 카운터플로우 파이프라이너(16)의 제어를 통해 트랩이 없는 경로로 전송된다. 오판은 브랜치명령을 추측하여 실행한다. 브랜치명령에 따라, CPU(10)는 브랜치의 출력에 관한 추측을 하고, 브랜치가 적합한 판독을 할 수 있도록 한후 명령의 실행을 개시한다. 오판은 추측이 부적합할때 발생하며, 브랜치이후에 실행된 명령은 효과가 없게 된다.
스코어보드 테이블(60)은 전체적인 또는 선택적인 두가지 방법중 한가지로 플러쉬 될 수 있다. 전체적인 플러쉬에서, 테이블내 모든 레지스터 식별자는 스코어보드 테이블(60)내 목록마다 플래그(66)를 FLUSH로 세팅함으로써 소멸된다. 예컨데, 트랩상태에서, 스코어보드테이블(60)의 내용은 CPU(10)내 어느곳에서나 카피 및 세이브될 수 있다. 트랩의 실행이 개시되면, 스코어보드 테이블(60)의 목록은 소멸되며, 이때 상기 테이블은 트랩경로의 명령에 의해 채워진다. 트랩의 실행이 종료될때, 세이브된 내용은 스코어보드테이블(60)로 복귀되며, 프로그렘순서의 정상적인 실행이 재개된다. 선택적인 플러쉬에서는 스코어보드 테이블내 관련있는 목록만이 플러쉬될 수 있다. 예컨테, 오판으로 인한 테이블내 목록만이 블랜치가 이것의 대응플래그(66)를 FLUSH로 세팅하므로써 소멸된후 제공되며, 테이블내 잔여 목록은 원상태로 남게 된다.
본 발행은 명세서, 참고자료및, 실시예를 통해 기술하였으나, 본 발명의 변형은 당분야에 숙련된 지식을 가진자에게는 자명하다. 본명세서는 상기 실시예에 국한되지 않으며, 본 발명의 실제적인 범주는 이후 특허청구범위에서 기술하기로 한다.

Claims (29)

  1. 복수의 단과,
    오퍼랜드 식별자에 관련된 명령을 복수의 단에서 실행시키며 상기 실행된 명령의 결과를 오퍼랜드 식별자중 하나를 인식하는 결과패키지에 전달시키기 위한 실행 회로망,
    결과스트림의 결과패키지를 카운터플로우 파이프라인내 명령과 상반된 방향으로 진행하도록 지정해주는 지정회로망 및,
    최근에 삽입된 명령의 오퍼랜드 식별자를 기억시키기 위한 메모리를 갖춘 카운터플로우 파이프라인을 구비한 것을 특징으로 하는 장치.
  2. 제 1항에 있어서, 상기 카운터플로우 파이프라인이 명령에 관련된 오퍼랜드 식별자를 검색하는 검색회로망 및 메모리내 오퍼랜드 식별자를 명령에 관련된 오퍼랜드 식별자와 비교하는 비교회로망을 더 갖춘 것을 특징으로 하는 장치.
  3. 제 2장에 있어서, 상기 검색회로망이 메모리내 오퍼랜드 식별자중 하나에 관련된 오퍼랜드 값을 오퍼랜드 식별자중 동일한 하나를 갖는 명령에 전송시키는 전송회로망을 더 갖춘 것을 특징으로 하는 장치.
  4. 제 2항에 있어서, 상기 검색회로망이 메모리내 오퍼랜드 식별자중 하나에 관련된 오퍼랜드 값이 카운터 플로우 파이프라인에서 재계산되는가를 판독하는 논리회로망을 더 갖춘 것을 특징으로 하는 장치.
  5. 제 1항에 있어서, 상기 메모리가 오퍼랜드 식별자목록, 값 목록 및, 상태 목록을 갖는 테이블을 갖춘 것을 특징으로 하는 장치.
  6. 제 5항에 있어서, 상태플래그는 테이블에서 최근의 동작 오퍼랜드 값을 갖는 오퍼랜드 식별자에 대해 VALID 플래그인 것을 특징으로 하는 장치.
  7. 제 5항에 있어서, 상태플래그는 카운터 플로우 파이프라인에서 오퍼랜드 값을 갖는 오퍼랜드 식별자에 대해 INPIPE 플래그인 것을 특징으로 하는 장치.
  8. 제 5항에 있어서, 상태플래그는 소멸된 오퍼랜드 값을 갖는 오퍼랜드 식별자에 대해 FLUSH 플래그인 것을 특징으로 하는 장치.
  9. 제 5항에 있어서, 인식된 오퍼랜드 식별자는 테이블에 포함되지 않는다면, 상기 인식된 오퍼랜드 식별자는 INVALID 상태인 것을 특징으로 하는 장치.
  10. 제 1항에 있어서, 카운터 플로우 파이프라인에 관련된 오퍼랜드 파일을 더 구비한 것을 특징으로 하는 장치.
  11. 제 1항에 있어서, 오퍼랜드 식별자중 별도의 식별자로 메모리를 갱신시키는 논리소자를 더 구비한 것을 특징으로 하는 장치.
  12. 제 11항에 있어서, 상기 논리소자는 카운터플로우 파이프라인으로 삽입된 명령에 관련된 오퍼랜드 식별자에 대한 메모리에서 목록을 생성하는 것을 특징으로 하는 장치.
  13. 제 11항에 있어서, 상기 논리소자는 결과 패키지에 의해 인식된 오퍼랜드 식별자에 대한 메모리에서 목록을 생성하는 것을 특징으로 하는 장치.
  14. 제 1항에 있어서, 명령은 동작 코드필드와, 소스 오퍼랜드필드와, 소스 값필드와, 목적 위치필드와, 목적 값필드 또는 상태 플래그필드를 하나이상 갖는 명령패키지를 더 갖춘 것을 특징으로 하는 장치.
  15. 제 1항에 있어서, 결과패키지는 목적 위치필드, 값필드 및 상태 플래그필드를 하나 이상 포함하는 것을 특징으로 하는 장치.
  16. 제 1항에 있어서, 카운터플로우 파이프라인을 포함하는 마이크로프로세서를 더 구비한 것을 특징으로 하는 장치.
  17. 제 1항에 있어서, 카운터플로우 파이프라인을 포함하는 중앙처리장치, 입력장치, 출력장치 및 중앙처리장치와 결합된 시스템 메모리를 더 구비한 것을 특징으로 하는 장치.
  18. 카운터 플로우 파이프라인을 제공하는 단계를 갖춘 방법에 있어서, 복수의 단을 제공하는 단계와,
    오퍼랜드 식별자에 관련된 명령을 복수의 단에서 실행시키며 상기 실행된 명령의 결과를 오퍼랜드 식별자중 하나를 인식하는 결과 패키지에 전달시키기 위한 실행회로망을 제공하는 단계,
    결과스트림의 결과패키지를 카운터플로우 파이프라인내 명령과 상반된 방향으로 진행하도록 지정해주는 지정회로망을 제공하는 단계 및,
    최근에 삽입된 명령의 오퍼랜드 식별자를 카운터플로우 파이프라인에 기억시키기위한 메모리를 제공하는 단계를 카운터 플로우 파이프라인에 최근에 삽입된 명령의 오퍼랜드 식별자를 기억시키기 위한 메모리를 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  19. 제 18항에 있어서, 명령에 관련된 오퍼랜드 식별자를 검색하는 검색회로망 및 메모리내 오퍼랜드 식별자를 명령에 관련된 오퍼랜드 식별자와 비교하는 비교회로망을 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  20. 제 19항에 있어서, 메모리내 오퍼랜드 식별자중 하나에 관련된 오퍼랜드 값을 오퍼랜드 식별자중 동일한 하나를 갖는 명령에 전송시키는 전송회로망을 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  21. 제 19항에 있어서, 메모리내 오퍼랜드 식별자중 하나에 관련된 오퍼랜드 값이 카운터플로우 파이프라인에서 재계산되는가를 판독하는 논리회로망을 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  22. 제 18항에 있어서, 오퍼랜드 식별자목록, 값목록, 상태목록을 갖는 테이블을 메모리에 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  23. 제 18항에 있어서, 카운터플로우 파이프라인을 포함하는 마이크로프로세서를 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  24. 제18항에 있어서, 카운터 플로우 파이프라인, 입력장치, 출력장치 및 중앙처리장치와 결합된 시스템 메모리를 포함하는 중앙처리장치를 제공하는 단계를 더 구비한 것을 특징으로 하는 방법.
  25. 복수의 단을 갖는 중앙처리장치를 갖춘 컴퓨터의 동작방법에 있어서, 오퍼랜드 식별자에 관련된 명령을 복수의 단에서 실행시키는 단계와,
    상기 실행된 명령의 결과를 오퍼랜드 식별자중 하나를 인식하는 결과 패키지에 전달시키는 단계,
    결과스트림의 결과패키지를 카운터플로우 파이프라인내 명령과 상반된 방향으로 진행하도록 지정해주는 단계 및,
    최근에 삽입된 명령의 오퍼랜드 식별자를 카운터 플로우 파이프라인에 기억시키는 단계를 구비한 것을 특징으로 하는 방법.
  26. 제 25항에 있어서, 명령의 오퍼랜드 식별자를 검색하는 단계 및 메모리내 오퍼랜드 식별자를 명령의 오퍼랜드 식별자와 비교하는 단계를 더 구비한 것을 특징으로 하는 방법.
  27. 제 25항에 있어서, 메모리내 오퍼랜드 식별자중 하나에 관련된 오퍼랜드 값을 오퍼랜드 식별자중 동일한 하나를 갖는 명령에 전송시키는 단계를 더 구비한 것을 특징으로 하는 방법.
  28. 제 26항에 있어서, 메모리내 레지스터 식별자중 하나에 관련된 오퍼랜드 값이 카운터 플로우 파이프라인에서 재계산되는가를 판독하는 단계를 더 구비한 것을 특징으로 하는 방법.
  29. 제 25항에 있어서, 메모리에 저장된 오퍼랜드 식별자마다 상태플래그로 세팅하는 단계를 더 구비한 것을 특징으로 하는 방법.
KR1019950004484A 1994-03-08 1995-03-06 카운터플로우파이프라인프로세서용스코어보드테이블 KR100335563B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US20852694A 1994-03-08 1994-03-08
US08/208526 1994-03-08
US8/208,526 1994-03-08

Publications (2)

Publication Number Publication Date
KR950033819A KR950033819A (ko) 1995-12-26
KR100335563B1 true KR100335563B1 (ko) 2002-10-04

Family

ID=22774906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950004484A KR100335563B1 (ko) 1994-03-08 1995-03-06 카운터플로우파이프라인프로세서용스코어보드테이블

Country Status (2)

Country Link
JP (1) JPH0836492A (ko)
KR (1) KR100335563B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970067265A (ko) * 1996-03-29 1997-10-13 이데이 노부유키 데이타 처리 제어장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR970067265A (ko) * 1996-03-29 1997-10-13 이데이 노부유키 데이타 처리 제어장치 및 방법

Also Published As

Publication number Publication date
JPH0836492A (ja) 1996-02-06
KR950033819A (ko) 1995-12-26

Similar Documents

Publication Publication Date Title
JP2500958B2 (ja) デイジタルデ―タプロセツサ作動方法及び分岐履歴テ―ブル
KR100431168B1 (ko) 단일 클럭 사이클 내에 불연속 명령을 페치하기 위한 방법 및 시스템
US6009512A (en) Mechanism for forwarding operands based on predicated instructions
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US5872985A (en) Switching multi-context processor and method overcoming pipeline vacancies
JP2937485B2 (ja) スーパースカラプロセッサにおけるトラップを検出して実行する方法及び装置
US4587632A (en) Lookahead stack oriented computer
US6192465B1 (en) Using multiple decoders and a reorder queue to decode instructions out of order
JPH0429093B2 (ko)
JPH03147022A (ja) 分岐命令処理装置および処理方法
WO1998037485A1 (en) Method and apparatus for forwarding of operands in a computer system
JPH0231419B2 (ko)
KR20010030587A (ko) 데이터 처리장치
JPH07271579A (ja) 計算機システムにおける演算方法および計算機システム
KR100343601B1 (ko) 무순서 레지스터 동작용 장치를 구비하는 데이터 처리 시스템 및그 방법
US7203821B2 (en) Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands
JP3486690B2 (ja) パイプライン方式プロセッサ
US6256725B1 (en) Shared datapath processor utilizing stack-based and register-based storage spaces
KR100335563B1 (ko) 카운터플로우파이프라인프로세서용스코어보드테이블
US5940602A (en) Method and apparatus for predecoding variable byte length instructions for scanning of a number of RISC operations
EP0545927B1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
US5898851A (en) Method and apparatus for five bit predecoding variable length instructions for scanning of a number of RISC operations
EP0825529A2 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
JP2626675B2 (ja) データ誘起状態信号発生装置及び方法
JP2004103012A (ja) プロセッサの動作速度を向上させるキャッシュ構造及びキャッシュ管理方法を有するプロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee