KR19990013416A - 프로세싱 시스템 - Google Patents

프로세싱 시스템 Download PDF

Info

Publication number
KR19990013416A
KR19990013416A KR1019980022223A KR19980022223A KR19990013416A KR 19990013416 A KR19990013416 A KR 19990013416A KR 1019980022223 A KR1019980022223 A KR 1019980022223A KR 19980022223 A KR19980022223 A KR 19980022223A KR 19990013416 A KR19990013416 A KR 19990013416A
Authority
KR
South Korea
Prior art keywords
unit
instruction
instructions
cycle
storage
Prior art date
Application number
KR1019980022223A
Other languages
English (en)
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 KR19990013416A publication Critical patent/KR19990013416A/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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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
    • 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

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)

Abstract

프로세싱 시스템에서 정체(stall) 상태 이후에 다수의 저장 인스트럭션의 완료를 처리하는 방법 및 시스템이 개시된다. 프로세싱 시스템은 인스트럭션 유닛을 포함하고, 이 인스트럭션 유닛은 디스패치 유닛, 완료 유닛, 변환 유닛, 적어도 하나의 실행 유닛을 포함한다. 로드 저장 유닛은 디스패치 유닛으로부터 다수의 인스트럭션을 수신하는 인스트럭션 큐, 인스트럭션 큐로부터 다수의 인스트럭션을 수신하는 적어도 하나의 유효 어드레스(EA) 유닛, 저장 큐를 포함한다. 저장 큐는 변환 유닛, 적어도 하나의 실행 유닛, 적어도 하나의 EA 유닛에 접속된다. 저장 큐는 다수의 인스트럭션의 각각을 완료하기 이전에 적어도 하나의 실행 유닛으로부터 다수의 인스트럭션의 각각에 관한 데이터 및 실제 어드레스 정보를 수신한다. 이렇게 함으로써, 통상적인 시스템과 연관된 병목, 즉 인스트럭션 유닛에 의해 디스패치될 수 있는 인스트럭션의 최대수가 감소된다.

Description

프로세싱 시스템
본 발명은 전반적으로 프로세싱 시스템에 관한 것으로, 보다 상세하게는 프로세싱 시스템에서 다수의 저장 인스트럭션을 완료하는 프로세싱 시스템에 관한 것이다.
보다 고속이고 보다 강력한 컴퓨터 시스템의 계속적인 발전에 있어서, RISC(reduced instruction set computer) 프로세서로서 알려진 중요한 마이크로프로세서가 이용되었다. RISC 프로세서 분야의 진보로 인해 수퍼스칼라 프로세서가 개발되었다. 이들의 명칭이 암시하는 바와 같이, 수퍼스칼라 프로세서는 통상적인 스칼라 마이크로프로세서에서는 흔히 발견할 수 없었던 기능을 수행한다. 이들 기능에는 프로그램 순서와 상관없이(out-of-order) 인스트럭션을 실행하는 능력이 포함된다. 인스트럭션이 순서와 상관없이 발생한다 하더라도, 실행 결과는 프로그램 순서로 발생하는 것처럼 보이게 되어, 적절한 데이터 코히어런시(coherency)가 유지된다.
수퍼스칼라 프로세서 성능에 있어서의 통상적인 병목은 주어진 시간에서 프로세서내에서 계류(outstanding)중일 수 있는 인스트럭션의 수이다. 전형적으로, 인스트럭션 유닛은 계류중인 인스트럭션의 수를 표시하는 큐를 포함한다. 이 큐는 전형적으로 최대 수에 도달하는 경우 차후에 임의로 인스트럭션을 디스패칭하는 것을 보류한다.
완료(completion)시키는데 있어 속도가 느릴 수 있는 인스트럭션의 한 형태는 저장 인스트럭션이다. 저장 인스트럭션은 여러 가지 이유로 인해 완료시키는데 걸리는 속도가 느리다. 예를 들면, 저장 인스트럭션은 사이클 당 완료될 수 있는 최대 저장 수, 각 사이클의 캐쉬를 갱신할 수 있는 저장 수로 인해, 완료시키는데 걸리는 속도가 느려지게 된다. 통상적인 수퍼스칼라 프로세서는 전형적으로 사이클 당 단지 하나의 저장 인스트럭션을 완료시킨다. 이로 인해 종종 정체가 야기된다. 따라서, 이러한 문제에 효율적이고 효과적으로 대처하고 저장 인스트럭션이 완료되지 않음에서 기인하는 디스패치 유닛의 정체 수를 감소시켜 프로세서의 전체적인 성능을 향상시키는 시스템에 대한 필요성이 존재한다.
따라서, 본 발명은 사이클 당 완료될 수 있는 저장 인스트럭션의 수를 증대시키는 것에 관한 것이다. 프로세싱 시스템에서 정체(stall) 상태 이후에 다수의 저장 인스트럭션의 완료를 처리하는 방법 및 시스템이 개시된다. 프로세싱 시스템은 인스트럭션 유닛을 포함하고, 이 인스트럭션 유닛은 디스패치 유닛, 완료 유닛, 변환 유닛, 적어도 하나의 실행 유닛을 포함한다. 로드 저장 유닛은 디스패치 유닛으로부터 다수의 인스트럭션을 수신하는 인스트럭션 큐, 인스트럭션 큐로부터 다수의 인스트럭션을 수신하는 적어도 하나의 유효 어드레스(EA) 유닛, 저장 큐를 포함한다. 저장 큐는 변환 유닛, 적어도 하나의 실행 유닛, 적어도 하나의 EA 유닛에 접속된다. 저장 큐는 다수의 인스트럭션의 각각을 완료하기 이전에 적어도 하나의 실행 유닛으로부터 다수의 인스트럭션의 각각에 관한 데이터 및 실제 어드레스 정보를 수신한다.
이렇게 함으로써, 통상적인 시스템과 연관된 병목, 즉 인스트럭션 유닛에 의해 디스패치될 수 있는 인스트럭션의 최대수가 감소된다.
도 1은 본 발명에 따른 컴퓨터 시스템의 블록도.
도 2는 프로세싱 시스템에서 저장 인스트럭션을 완료하는 통상적인 시스템을 도시하는 도면.
도 3은 도 2의 데이터 흐름의 동작을 도시하는 타이밍도.
도 4는 본 발명에 따른 다수의 저장 인스트럭션을 완료하는 데이터 흐름의 제 1 실시예를 도시하는 도면.
도 5는 본 발명에 따른 저장 인스트럭션을 완료하는 데이터 흐름을 예시하는 흐름도.
도 6은 도 4의 데이터 흐름의 동작을 도시하는 타이밍도.
도 7은 본 발명에 따른 다수의 저장 인스트럭션을 완료하는 데이터 흐름의 제 2 실시예를 도시하는 도면.
도 8은 도 7의 데이터 흐름의 동작을 도시하는 타이밍도.
도면의 주요 부분에 대한 부호의 설명
10 : 프로세서 12 : 버스 인터페이스 유닛
14 : 인스트럭션 캐쉬 16 : 데이터 캐쉬
18 : 시퀀서 유닛 20 : 분기 유닛
22, 24 : 고정 소수점 유닛 26 : 복합 고정 소수점 유닛
28 : 로드/저장 유닛 30 : 부동 소수점 유닛
32 : 범용 아키텍처 레지스터 34 : 부동 소수점 재명명 버퍼
36 : 부동 소수점 아키텍처 레지스터
38 : 부동 소수점 재명명 버퍼 40 : 특수용 레지스터
42 : 캐리 비트 레지스터 46 : 디스패치 유닛
47 : 인스트럭션 버퍼
상기한 내용 및 본 발명의 측면의 다른 장점은 후술하는 본 발명의 상세한 설명 및 첨부되는 도면을 참조하면 보다 완전하게 이해될 것이다.
본 발명은 수퍼스칼라 프로세서에서 완료될 수 있는 저장 인스트럭션의 수를 증가시켜 디스패치 정체를 감소시키는 것에 관한 것이다. 다음의 상세한 설명은 당 분야에서 통상의 지식을 가진 자가 본 발명을 실시하고 이용할 수 있도록 제공되며 특허 출원 및 그 요건에 맞게 제공된다. 당 분야에서 통상의 지식을 가진 자라면 바람직한 실시예에 대한 각종 변경이 용이하게 이루어질 것이다.
도 1은 본 발명에 따라 정보를 처리하는 프로세서 시스템(10)의 블록도이다. 바람직한 실시예에서, 프로세서(10)는 텍사스 오스틴에 소재하는 IBM사로부터의 PowerPCTM프로세서와 같은 단일 집적 회로의 수퍼스칼라 마이크로프로세서이다. 따라서, 이하 더 기술되는 바와 같이, 프로세서(10)는 각종 유닛, 레지스터, 버퍼, 메모리, 다른 섹션을 포함하며, 이들 모두는 집적 회로에 의해 형성된다. 또한, 바람직한 실시예에서, 프로세서(10)는 RISC 기법에 따라 동작한다. 도 1에 도시된 바와 같이, 시스템 버스(11)는 프로세서(10)의 버스 인터페이스 유닛(BIU)(12)에 접속된다. BIU(12)는 프로세서(10) 및 시스템 버스(11)간의 정보 전송을 제어한다.
BIU(12)는 프로세서(10)의 인스트럭션 캐쉬(14) 및 데이터 캐쉬(16)에 접속된다. 인스트럭션 캐쉬(14)는 시퀀서 유닛(18)에 인스트럭션을 출력한다. 인스트럭션 캐쉬(14)로부터의 이러한 인스트럭션에 응답하여, 시퀀서 유닛(18)은 프로세서(10)의 다른 실행 회로에 인스트럭션을 선택적으로 출력한다.
바람직한 실시예에서, 프로세서(10)의 실행 회로는 디스패치 유닛(46) 및 완료 유닛(48)의 실행 유닛을 포함하는 시퀀서 유닛(18) 이외에, 다수의 실행 유닛, 즉 분기 유닛(20), 고정 소수점 유닛 A(FXUA)(22), 고정 소수점 유닛 B(FXUB)(24), 복합 고정 소수점 유닛(CFXU)(26), 로드/저장 유닛(LSU)(28), 부동 소수점 유닛(FPU)(30)을 포함한다. FXUA(22), FXUB(24), CFXU(26), LSU(28)는 범용 아키텍처 레지스터(GPRs)(32) 및 고정 소수점 재명명 버퍼(34)로부터 이들의 근원지 오퍼랜드 정보를 입력한다. 또한, FXUA(22) 및 FXUB(24)는 캐리 비트(CA) 레지스터(42)로부터 캐리 비트를 입력한다. FXUA(22), FXUB(24), CFXU(26), LSU(28)는 고정 소수점 재명명 버퍼(34)내의 선택된 엔트리에서의 저장을 위해 이들의 동작 결과(목적지 오퍼랜드 정보)를 출력한다. 또한, CFXU(26)는 근원지 오퍼랜드 정보 및 목적지 오퍼랜드 정보를 특수용 레지스터(SPRs)(40)로부터 입력하거나 특수용 레지스터(SPRs)(40)에 출력한다.
FPU(30)는 부동 소수점 아키텍처 레지스터(FPRs)(36) 및 부동 소수점 재명명 버퍼(38)로부터 그 소스 오퍼랜드 정보를 입력한다. FPU(30)는 부동 소수점 재명명 버퍼(38)내의 선택된 엔트리에서의 저장을 위해 그 동작 결과(목적지 오퍼랜드 정보)를 출력한다.
시퀀서 유닛(18)은 GPRs(32) 및 FPRs(36)로부터 정보를 입력하거나 GPRs(32) 및 FPRs(36)에 정보를 출력한다. 시퀀서 유닛(18)으로부터, 분기 유닛(20)은 프로세서(10)의 현재 상태를 표시하는 인스트럭션 및 신호를 입력한다. 이러한 인스트럭션 및 신호에 응답하여, 분기 유닛(20)은 프로세서(10)에 의해 실행을 위한 일련의 인스트럭션을 저장하는 적절한 메모리 어드레스를 표시하는 신호를 (시퀀서 유닛(18)에) 출력한다. 분기 유닛(20)으로부터의 이러한 신호에 응답하여, 시퀀서 유닛(18)은 인스트럭션 큐(14)로부터 표시된 인스트럭션 시퀀스를 입력한다. 하나 이상의 인스트럭션 시퀀스가 인스트럭션 캐쉬(14)에 저장되지 않는 경우, 인스트럭션 캐쉬(14)는 시스템 버스(11)에 접속된 시스템 메모리(39)로부터의 이러한 인스트럭션을 (BIU(12) 및 시스템 버스(11)를 통해) 입력한다.
인스트럭션 캐쉬(14)로부터의 인스트럭션 입력에 응답하여, 시퀀서 유닛(18)은 디스패치 유닛(46)을 통해 인스트럭션을 실행 유닛(20, 22, 24, 26, 28, 30)중의 선택된 하나로 선택적으로 디스패치한다. 각 실행 유닛은 특정 클래스의 인스트럭션중 하나 이상의 인스트럭션을 실행한다. 예를 들면, FXUA(22) 및 FXUB(24)는 소스 오퍼랜드에 대해 가산, 감산, AND연산, OR연산, XOR연산과 같은 제 1 클래스의 고정 소수점 수학적 연산을 실행한다. CFXU(26)는 소스 오퍼랜드에 대해 고정 소수점 승산 및 제산과 같은 제 2 클래스의 고정 소수점 연산을 실행한다. FPU(30)는 소스 오퍼랜드에 대해 부동 소수점 승산 및 제산과 같은 부동 소수점 연산을 실행한다.
프로세서(10)는 실행 유닛(20, 22, 24, 26, 28, 30)의 각종 유닛에서 다수의 인스트럭션을 동시에 프로세스함으로써 고성능을 성취한다. 따라서, 각 인스트럭션은 일련의 스테이지로서 프로세스되고, 각각은 다른 인스트럭션의 스테이지와 병렬로 실행될 수 있다. 이러한 기법은 파이프라이닝이라 불리운다. 바람직한 실시예의 중요한 측면에 있어서, 인스트럭션은 통상 6개의 스테이지, 즉 인출, 디코드, 디스패치, 실행, 완료, 되기록(writeback)으로서 프로세스된다.
바람직한 실시예에서, 각 인스트럭션은 인스트럭션 프로세싱의 각 스테이지를 완료시키는데 하나의 머신 사이클을 필요로 한다. 그럼에도 불구하고, 몇몇 인스트럭션(예를 들면, CFXU(26)에 의해 실행되는 복합 고정 소수점 인스트럭션)은 둘 이상의 사이클을 필요로 할 수 있다. 따라서, 선행하는 인스트럭션을 완료시키는데 필요한 시간 편차에 따라 특정 인스트럭션의 실행 및 완료 스테이지간에 가변 지연이 발생할 수 있다.
로드 인스트럭션에 응답하여, LSU(28)는 데이터 캐쉬(16)로부터의 정보를 입력하고 이러한 정보를 재명명 버퍼(34 및 38)의 선택된 하나에 복사한다. 이러한 정보가 데이터 캐쉬(16)에 저장되지 않는 경우, 데이터 캐쉬(16)는 시스템 버스(11)에 접속된 시스템 메모리(39)로부터 (BIU(12) 및 시스템 버스(11)를 통해) 이러한 정보를 입력한다. 또한, 데이터 캐쉬(16)는 (BIU(12) 및 시스템 버스(11)를 통해) 데이터 캐쉬(16)로부터 시스템 버스(11)에 접속된 시스템 메모리(39)로 정보를 출력할 수 있다. 저장 인스트럭션에 응답하여, LSU(28)는 GPR(32) 및 FPR(36)중 선택된 하나로부터 정보를 입력하고 이러한 정보를 데이터 캐쉬(16) 또는 메모리에 복사한다.
실행 유닛, 예를 들면 FXUA(22), FXUB(24), 재명명 버퍼(34), 디스패치 유닛(46)들간의 인스트럭션의 일예로서, 인스트럭션 add c,a,b는 디스패치 유닛(46)으로부터 FXUA(22)로 디스패치된다. 디스패치 유닛(46)은 FXUA(22)에 오퍼랜드에 대한 태그를 제공하여 오퍼랜드에 대한 데이터를 어느 곳에서 복구할지를 FXUA(22)에게 알리는데, 이는 당 분야에서 통상의 지식을 가진 자라면 잘 이해될 것이다. 예를 들면, 6개의 재명명 버퍼를 갖는 시스템에서, 디스패치 유닛(46)은 6 비트 태그 100000를 갖는 재명명 버퍼 1에 위치되는 a에 대한 오퍼랜드를 적절하게 태그할 수 있다. 010000의 태그는 재명명 버퍼(2)에 오퍼랜드 b가 있는지를 표시하는데 사용될 수 있다. FXUA(22)는 GPRs(32)에 기록되지 않기 때문에, 디스패치 유닛(46)은 'add' 인스트럭션이 재명명 버퍼(3)에 위치될 결과를 위해, 001000과 같은 연산 타겟을 위한 재명명 버퍼 태그를 사용해야 한다.
이미 언급한 바와 같이, 종래 기술의 시스템에 의한 문제점중의 하나는 하나의 사이클내에서 단지 하나의 저장 인스트럭션이 완료될 수 있다는 점이다. 통상적인 시스템에서의 이러한 문제점을 설명하기 위해 수반되는 상세한 설명과 함께 도 2를 참조한다.
도 2는 프로세싱 시스템에서 저장 인스트럭션을 완료하는 통상적인 시스템을 도시하는 도면이다. 본 실시예에서, 인스트럭션 유닛(102)은 디스패치 유닛(103)과 완료 유닛(105)을 포함한다. 인스트럭션 유닛(102)은 디스패치 유닛(103)내의 인스트럭션을 인스트럭션 캐쉬(104)로부터 수신한다. 디스패치 유닛(103)은 인스트럭션 캐쉬로부터 수신된 저장 인스트럭션을 로드/저장(LDST) 유닛(106)에 제공한다. 디스패치 유닛(103)은 저장 인스트럭션을 완료 유닛(105)에 또한 전송한다. LDST(106)내에 이전의 인스트럭션이 존재하는 경우, 저장 인스트럭션은 인스트럭션 큐(108)로 제공된다. LDST(106)내에 이전의 인스트럭션이 존재하지 않는 경우, 인스트럭션 큐(108)는 바이패스되고 저장 인스트럭션은 유효 어드레스(EA) 유닛(110)에 직접 제공될 수 있다. 이러한 두 경우, EA 유닛(110)은 특정 인스트럭션에 대한 어드레스 정보를 수신한다.
유효 어드레스의 제어 정보는 저장 큐(130)의 종료 큐(FQ)(112)에 제공되는 반면, 어드레스에 관한 정보는 변환 유닛(114)에 제공된다. 변환 유닛(114)은 EA 정보를 실제 어드레스(RA)로 변환하고 RA를 FQ(112)에 제공한다. FQ(112)는 종료 유효 신호를 완료 유닛(105)에 제공한다. 완료 유닛(105)은 완료 유효 신호를 FQ(112)에 제공한다. FQ(112)는 어드레스를 고정 소수점 유닛(FXU)(116) 및 부동 소수점 유닛(FPU)(118)에 전송한다. FXU 및 FPU는 이들 어드레스에 관한 데이터를 완료 큐(CQ)(120)에 제공한다. FQ(112)는 RA 정보를 CQ(120)에 또한 제공한다. CQ(120)는 저장 인스트럭션을 데이터 캐쉬(122)에 제공한다.
이제 도 3을 참조하면, 고정 소수점 실행(FXD) 유닛(116)의 다수의 저장 인스트럭션 1-4에 대한 데이터 흐름의 타이밍도가 도시되어 있다. 본 실시예에서, 통상 참조 부호 (202)로 도시된 바와 같이, 인스트럭션 1은 사이클 1내에서 디스패치되고, 인스트럭션 2는 사이클 2내에서 디스패치되며, 인스트럭션 3은 사이클 3내에서 디스패치되고, 인스트럭션 4는 사이클 4내에서 디스패치된다. 이후, 통상 참조 부호 (204)로 도시된 바와 같이, LDST 유닛(106)은 인스트럭션 1의 유효 어드레스(EA1)를 사이클 2의 제 1 반부내에서 실행하고, 인스트럭션 2의 유효 어드레스(EA2)를 사이클 3의 제 1 반부내에서 실행하며, 인스트럭션 3의 유효 어드레스(EA3)를 사이클 4의 제 1 반부내에서 실행하고, 인스트럭션 4의 유효 어드레스(EA4)를 사이클 5의 제 1 반부내에서 실행한다. 인스트럭션 1-4의 변환된 어드레스의 액세싱은 참조 부호 (206)으로 도시되어 있다. 이러한 어드레스의 액세싱은 사이클 2의 제 2 반부 및 사이클 3의 제 1 반부 사이의 인스트럭션 1을, 사이클 3의 제 2 반부 및 사이클 4의 제 1 반부 사이의 인스트럭션 2를, 사이클 4의 제 2 반부 및 사이클 5의 제 1 반부 사이의 인스트럭션 3을, 사이클 5의 제 2 반부 및 사이클 6의 제 1 반부 사이의 인스트럭션 4를, 액세스하여 이루어진다.
통상 참조 부호 (208)로 도시된 바와 같이 실제 어드레스는 변환 유닛으로부터 제공된다. 인스트럭션 1의 실제 어드레스(RA1)는 사이클 3의 제 2 반부 동안 제공되고, 인스트럭션 2의 실제 어드레스(RA2)는 사이클 4의 제 2 반부 동안 제공되며, 인스트럭션 3의 실제 어드레스(RA3)는 사이클 5의 제 2 반부 동안 제공되고, 인스트럭션 4의 실제 어드레스(RA4)는 사이클 6의 제 2 반부 동안 제공된다.
본 실시예에서, 이미 언급한 종료 큐는 통상 참조 부호 (210)로 도시되어 있는 바와 같이 사이클 4-7 동안 인스트럭션 1-4에 대한 실제 어드레스값으로 로딩된다. 인스트럭션 1-4는 통상 참조 부호 (212)로 도시된 바와 같이 사이클 4-7에서 종료될 수 있다. 인스트럭션 1-4는 완료될 수 있다 하더라도, 통상 참조 부호 (213)로 도시된 바와 같이 프로세서의 성능을 제한하는 인스트럭션들간에 의존도가 존재한다. 즉, 인스트럭션 1은 사이클 5에서 완료될 수 있고, 인스트럭션 2는 인스트럭션 1이 완료되는 경우에만 사이클 6에서 완료될 수 있으며, 인스트럭션 3은 인스트럭션 1 및 2가 완료되는 경우에만 사이클 7에서 완료될 수 있다. 마지막으로, 인스트럭션 4는 인스트럭션 1-3이 완료된 경우에만 사이클 8에서 완료될 수 있다.
통상 참조 부호 (214)로 도시된 정체 상태 이후에, 사이클 n+1에서 시작되어 인스트럭션 완료 유닛이 가득 차 있는 경우, 통상 참조 부호 (216)로 도시된 바와 같이 인스트럭션 1-4가 한꺼번에 완료될 수 있다. 이것은 사이클 n+1 내지 사이클 n+4 동안 인트스럭션 1-4에 대한 완료 신호를 각각 표시하는 완료 유닛(105)을 통해 성취된다. 따라서, 고정 소수점 범용 레지스터(GPRs)는 통상 참조 부호 (218)로 도시된 바와 같이 사이클 n+1로부터 사이클 n+4까지의 인스트럭션에 대한 데이터를 획득하도록 액세스될 수 있다. 인스트럭션의 각각에 대한 데이터 유효 신호는 또한 참조 부호 (220)로 통상 도시된 바와 같이 사이클 n+1로부터 사이클 n+4로 각각 제공된다.
이후, 완료된 저장 큐는 통상 참조 부호 (222)로 도시된 바와 같이 인스트럭션 1-4로 로드된다. 인스트럭션 1은 사이클 n+2에서 완료된 저장 큐내로 로드된다. 인스트럭션 2는 사이클 n+3에서 완료된 저장 큐내로 로드된다. 인스트럭션 3은 사이클 n+4에서 완료된 저장 큐내로 로드된다. 인스트럭션 4는 사이클 n+5에서 완료된 저장 큐내로 로드된다. 인스트럭션 1-4에 대한 데이터는 참조 부호 (224)로 도시된 바와 같이 사이클 n+2 내지 사이클 n+5 동안 각 인스트럭션 유닛내의 데이터 캐쉬로 한꺼번에 전송된 하나의 인스트럭션이다.
프로세서가 계류중인 인스트럭션의 최대 수에 관한 한계값에 도달하였으면, 사이클 N+2에서 인스트럭션 1만이 디스패치될 수 있다. 이것은 사이클 N+3 내지 N+6에 또한 적용된다. 따라서, 참조 부호 (226)로 통상 도시된 바와 같이 인스트럭션 5-8은 완료 유닛이 가득 차 있기 때문에 순차적으로 디스패치되어야 한다. 따라서, 이러한 디스패치 시간의 패널티는 프로세서의 전체 성능에 영향을 준다.
이러한 데이터 흐름에 의한 문제점은 상기한 종료 큐/완료 큐의 상호작용으로 인해, 완료 유닛(105)이 가득 차 있는 곳에서 디스패치 정체가 발생하는 경우에 인스트럭션의 디스패칭이 현저하게 지연된다는 점이다. 이러한 문제점을 극복하는 통상적인 방법은 실행 유닛상에서 가산 포트를 부가하는 것이다. 이러한 방법은 시스템에 부가적인 비용 및 복잡성을 부가하게 된다. 따라서, 디스패치 정체가 발생한 이후에 알려진 방법보다 간단하게 다수의 저장 인스트럭션을 완료시킴으로써 프로세서의 전체 성능을 향상시키는 방법 및 시스템이 요구된다.
본 발명에 따라 설명된 시스템 밍 방법은 정체 상태가 발생하고 완료 버퍼가 가득 찬 이후에 다수의 저장 인스트럭션을 완료시킴으로써 프로세서의 성능을 실질적으로 향상시킨다. 본 발명에서, 저장 큐는 종료 큐 및 완료 큐를 조합한 것이 아닌 단일 큐이다. 또한, 저장 인스트럭션에 관한 데이터는 인스트럭션의 완료 이후가 아닌 완료 이전에 액세스된다. 저장 인스트럭션은 다음의 두가지 조건이 충족될 때, 즉 저장 큐내에 실제 어드레스(RA) 및 데이터가 로드되거나, 또는 저장 큐내에 RA가 로드되고 데이터가 저장 큐에 전송될 때, 종료될 수 있다. 데이터를 미리 액세스함으로써, 다수의 저장 인스트럭션이 실질적으로 동시에 완료될 수 있다. 따라서, 완료 버퍼가 가득 차 있을 경우 디스패치 정체 이후에 다수의 인스트럭션이 디스패치될 수 있다. 이렇게 함으로써, 다수의 저장 인스트럭션이 동시에 완료되게 하여 완료 버퍼내의 엔트리를 자유롭게 함으로써 인스트럭션 디스패치의 지연을 실질적으로 감소시키는 시스템이 제공된다.
다음의 설명은 본 발명을 특히 더 기술할 것이다. 도 4는 본 발명에 따라 사이클 당 하나의 저장 인스트럭션을 실행하는 저장 인스트럭션 데이터 흐름의 제 1 실시예이다. 도 2에 도시된 이들 구성요소와 유사한 몇가지 구성요소가 존재한다. 이들 구성요소는 도 2에 도시된 구성요소와 유사한 참조 부호를 갖는다. 그러나 몇가지 중요한 차이가 있다. 그 첫번째는 로드/저장 유닛(306)의 저장 큐(312)가 종료 큐 및 완료 큐를 조합한 것이 아닌 단일 큐라는 것이다. 이러한 구성에서, 완료 유닛(105)은 저장 인스트럭션을 완료시키고 이 저장 인스트럭션이 완료될 때 저장 큐(312)는 적절한 엔트리를 마크한다. 바람직한 실시예에서, 저장 큐(312)는 16개의 엔트리 깊이이다. 즉, 저장 큐에는 16개의 저장 인스트럭션이 저장될 수 있다. 또한, 바람직한 실시예에서, 각 엔트리내의 비트는 인스트럭션 유닛으로부터의 완료 신호를 기초로 하여 활성으로 된다. 또한, 이러한 데이터 흐름의 동작은 도 2의 저장 인스트럭션의 데이터 흐름에 대해 기술된 것과는 상이하다. 상기한 바와 같이, 데이터는 저장 인스트럭션의 완료 이전에 액세스된다. 저장 인스트럭션은 다음의 두가지 조건중 하나가 충족될 때, 즉 (1) 저장 큐내에 실제 어드레스 및 데이터가 로드되거나, 또는 (2) 저장 큐내에 실제 어드레스가 로드되고 저장 큐로 데이터가 전송될 때 종료된다.
이러한 차이를 특히 더 기술하기 위해, 도 4의 데이터 흐름의 동작을 통상적으로 설명하는 흐름도인 도 5를 참조한다.
먼저, 단계(402)에서, 디스패치 유닛(103')으로부터 로드/저장 유닛(306)내의 유효 어드레스(EA) 유닛(310)으로 다수의 저장 인스트럭션이 제공된다. 단계(404)에서, EA 유닛(310)은 저장 큐(312)에 제어 정보를 제공한다. 단계(406)에서, EA 유닛(310)은 변환 유닛(114')에 어드레스 정보를 제공한다. 단계(408)에서, 변환 유닛(114')로부터 다수의 저장 인스트럭션에 관한 실제 어드레스(EA)가 판독되고 FXU 유닛(116')으로부터 다수의 저장 인스트럭션에 관한 데이터가 판독된다. 단계(409)에서, 디스패치 정체가 발생한 이후에, 완료 유닛은 가득 차게 된다.
단계(410)에서, 완료 유닛(105')은 저장 큐(312)로부터 수신된 종료 유효 신호를 기초로 하여 그 완료 윈도우내에서 다수의 저장 인스트럭션을 완료시킨다. 단계(412)에서, 저장 큐는 완료된 그 엔트리를 마크한다. 이후, 단계(416)에서, 디스패치 유닛(105)으로부터 동일한 번호의 새로운 인스트럭션이 디스패치될 수 있고, 단계(418)에서, 완료 유닛(105')으로 제공될 수 있다. 이렇게 함으로써, 본 발명에 의해 디스패치의 정체가 크게 감소된다.
본 발명의 동작을 특히 더 설명하고 이를 도 2의 데이터 흐름의 타이밍도와 대비하기 위해, 도 3과 함께 도 6을 참조한다. 도 6은 도 4의 데이터흐름의 타이밍도이다. 도 6의 실시예에서, 참조 부호 (502)로 통상 도시된 바와 같이, 도 3의 참조 부호 (202)와 유사한 방식으로, 인스트럭션 1은 사이클 1내에서 디스패치되고, 인스트럭션 2는 사이클 2내에서 디스패치되며, 인스트럭션 3은 사이클 3내에서 디스패치되고, 인스트럭션 4는 사이클 4내에서 디스패치된다. 이후, 도 3의 참조 부호 (204)로 도시된 것과 유사하게, 로드/저장 유닛은 인스트럭션 1의 유효 어드레스 (EA1)를 사이클 2의 제 1 반부내에서 실행하고, 인스트럭션 2의 유효 어드레스 (EA2)를 사이클 3의 제 1 반부내에서 실행하며, 인스트럭션 3의 유효 어드레스 (EA3)를 사이클 4의 제 1 반부내에서 실행하고, 인스트럭션 4의 유효 어드레스 (EA4)를 사이클 5의 제 1 반부내에서 실행하는데, 이는 도 6의 참조 부호 (504)로 도시되어 있다.
이후, 인스트럭션 1-4의 변환을 위한 캐쉬 변환 액세스는 도 3의 참조 부호 (206)로 도시된 것과 유사한 방식으로 발생한다. 인스트럭션 1의 변환된 어드레스를 위한 캐쉬의 액세스는 사이클 2의 제 2 반부 및 사이클 3의 제 1 반부 사이에 발생하고, 인스트럭션 2의 변환된 어드레스를 위한 캐쉬의 액세스는 사이클 3의 제 2 반부 및 사이클 4의 제 1 반부 사이에 발생하며, 인스트럭션 3의 변환된 어드레스를 위한 캐쉬의 액세스는 사이클 4의 제 2 반부 및 사이클 5의 제 1 반부 사이에 발생하고, 인스트럭션 4의 변환된 어드레스를 위한 캐쉬의 액세스는 사이클 5의 제 2 반부 및 사이클 6의 제 1 반부 사이에 발생하는데, 이는 도 6의 참조 부호 (506)로 통상 도시되어 있다.
그러나, 도 3과는 달리, 다음에는 참조 부호 (508)로 도시된 아키텍트 레지스터 화일(GPRs)이 액세스된다. 인스트럭션 1에 대한 데이터는 사이클 3에서 액세스되고, 그 다음에 인스트럭션 2에 대한 데이터는 사이클 4에서 액세스되며, 인스트럭션 3에 대한 데이터는 사이클 5에서 액세스되고, 인스트럭션 4에 대한 데이터는 사이클 6에서 액세스된다.
다음에, 실제 어드레스(RA1-RA4)를 위한 데이터는 변환 유닛으로부터 제공되고 데이터 유효 신호는 FXU(116')로부터 저장 큐(312)로 제공되며 이는 각각 참조 부호 (510 및 512)로 도시되어 있다. 본 실시예에서, 인스트럭션 1에 대한 데이터 유효 신호는 사이클 4 동안 제공되고, 인스트럭션 2에 대한 데이터 유효 신호는 사이클 5 동안 제공되며, 인스트럭션 3에 대한 데이터 유효 신호는 사이클 6 동안 제공되고, 인스트럭션 4에 대한 데이터 유효 신호는 사이클 7 동안 제공된다. RA1은 사이클 3의 제 2 반부 동안 제공되고, RA2는 사이클 4의 제 2 반부 동안 제공되며, RA3은 사이클 5의 제 2 반부 동안 제공되고, RA4는 사이클 6의 제 2 반부 동안 제공된다.
본 실시예에서, 저장 큐(312)는 사이클 4-7 동안 인스트럭션 1-4에 대한 실제 어드레스값으로 로드되고, 이는 참조 부호 (514)로 도시되어 있다. 인스트럭션 1-4의 각각에 대한 저장 큐 종료는 참조 부호 (518)로 도시된 바와 같이 저장 큐내로 저장 실제 어드레스가 로드되고, 참조 부호 (510)로 도시된 바와 같이 FXU(116')의 데이터 유효 신호가 제공되는 동일한 사이클 동안 발생한다. 따라서, 저장 큐 종료는 다음의 두가지 조건중 하나가 충족될 때, 즉 1) RA 및 데이터가 인스트럭션 1-4을 위한 저장 큐로 로드되거나, 또는 2) 인스트럭션 1-4을 위한 저장 큐내로 데이터가 전송될 때 발생할 수 있다. 다음에, 참조 부호 (516)로 도시된 바와 같이, 인스트럭션 1-4을 위한 데이터가 사이클 5-8 동안 이용가능하다면 이들은 각각 저장 큐(312)내로 로드된다.
참조 부호 (521)로 도시된 정체 상태 이후에, 참조 부호 (522)로 도시된 바와 같이 4개의 인스트럭션이 동시에 완료될 수 있다. 이것은 도 3의 시스템과 대조적이며, 여기서 4개의 인스트럭션은 순차적으로 완료되어야 한다. 완료 유닛(105')은 사이클 n+1 동안 인스트럭션 1-4에 대한 완료 신호를 개시한다. 또한, 모든 인스트럭션은 완료된 바와 같이 마크되었기 때문에, 디스패치 유닛(103')은 참조 부호 (524)로 도시된 바와 같이 인스트럭션 5-8을 동시에(사이클 n+2에서) 디스패치할 수 있다.
프로세서가 사이클 N+2 당 계류중인 인스트럭션의 최대 수에 관한 한계값에 도달한 경우, 이러한 구현에 의해 사이클 당 4개 한도의 인스트럭션이 사이클 N+2내에서 디스패치되게 하는 반면, 종래 기술의 구현에서는 하나의 인스트럭션이 디스패치될 수 있도록 한다.
도 7은 본 발명의 바람직한 실시예의 저장 인스트럭션의 데이터 흐름을 도시한다. 데이터 흐름은 사이클 당 2개 한도의 인스트럭션을 지원한다. 구성요소는 도 5의 구성요소와 유사하다. 공통의 구성요소에는 유사한 참조 부호가 지정되었다. 여기에는 몇가지 차이가 존재한다. 그러나, 보이는 바와 같이, 2개의 EA 유닛(310a 및 310b)이 존재한다. FXU(116)에 대해 2개의 포트가 또한 존재한다. FXU(116)상에 2개의 포트가 존재하기 때문에, 변환 유닛(114')은 각 포트에 대해 변환 신호를 제공하고 저장 큐는 각 포트에 대해 종료 유효 신호를 제공한다.
이제 도 8을 참조하면, 본 실시예에서, 참조 부호 (602)로 도시된 바와 같이, 사이클 당 2개의 인스트럭션이 처리될 수 있기 때문에, 사이클 1 동안 인스트럭션 1 및 2가 디스패치되고, 사이클 2 동안 인스트럭션 3 및 4가 디스패치된다. 다음에, 참조 부호(604)로 도시된 바와 같이, EA1 및 EA2의 로드/저장의 생성은 사이클 2의 제 1 반부에서 발생하고 EA3 및 EA4의 로드/저장의 생성은 사이클 3의 제 1 반부에서 발생한다. 다음에, 참조 부호 (606)로 도시된 바와 같이, 인스트럭션 1 및 2의 변환된 어드레스에 대한 캐쉬의 액세스는 사이클 2의 제 2 반부 및 사이클 3의 제 1 반부 사이에서 발생되고, 인스트럭션 3 및 4의 변환된 어드레스에 대한 캐쉬의 액세스는 사이클 3의 제 2 반부 및 사이클 4의 제 1 반부 사이에서 발생된다.
다음에, 참조 부호 (608)로 도시된 바와 같이, 아키텍트 레지스터 화일(GPR)이 액세스된다. 인스트럭션 1 및 2에 대한 데이터는 사이클 3에서 액세스되고, 인스트럭션 3 및 4에 대한 데이터는 사이클 4에서 액세스된다.
다음에, 참조 부호 (610 및 612)로 도시된 바와 같이, 실제 어드레스(RA1-RA4)에 대한 데이터는 변환 유닛으로부터 제공되고 인스트럭션 1-4에 대한 데이터 유효 신호는 저장 큐(312)로 제공된다. 본 실시예에서, 인스트럭션 1 및 2에 대한 데이터 유효 신호는 사이클 4 동안 제공되고 인스트럭션 3 및 4에 대한 데이터 유효 신호는 사이클 5 동안 제공된다. RA1 및 RA2는 사이클 3의 제 2 반부 동안 제공되고, RA3 및 RA4는 사이클 4의 제 2 반부 동안 제공된다.
본 실시예에서, 저장 큐(312')는 참조 부호 (614)로 도시된 바와 같이, 사이클 4 및 5 동안 인스트럭션 1-4에 대한 실제 어드레스값으로 로드된다. 인스트럭션 1-4의 각각에 대한 저장 큐는 참조 부호 (618)로 도시된 바와 같이, 저장 큐의 실제 어드레스가 로드되는 동일한 사이클 동안 발생한다. 다음에, 참조 부호 (616)로 도시된 바와 같이, 인스트럭션 1-4을 위한 데이터가 사이클 5 및 8 동안 이용가능하다면 이들은 각각 저장 큐(312')내로 로드된다.
참조 부호 (621)로 도시된 정체 상태 이후에, 참조 부호 (622)로 도시된 바와 같이 4개의 인스트럭션이 동시에 완료될 수 있다. 인스트럭션 유닛은 사이클 n+1 동안 인스트럭션 1-4에 대한 완료 신호를 개시한다. 또한, 모든 인스트럭션이 완료된 바와 같이 마크되었기 때문에, 디스패치 유닛은 참조 부호 (624)로 도시된 바와 같이 인스트럭션 5-8을 동시에(사이클 n+2에서) 디스패치할 수 있다.
프로세서가 사이클 N+2에서 계류중인 인스트럭션의 최대 수에 관한 한계값에 도달하는 경우 4개 한도의 인스트럭션이 디스패치될 수 있는 반면, 종래 기술의 구현에서는 단지 하나의 인스트럭션이 디스패치될 수 있다. 이것은 인스트럭션 8이 디스패치될 때 3 사이클을 절약한다.
본 발명에 따른 시스템 및 방법에 있어서, 다수의 저장 인스트럭션이 함께 처리되기 때문에, 인스트럭션들이 함께 완료될 수 있어, 저장 인스트럭션을 완료시키는 사이클의 수를 실질적으로 감소시킨다. 인스트럭션 유닛에 의해 디스패치될 수 있는 인스트럭션의 최대 수의 병목은 통상적인 시스템에 의해 요구되는 완료 큐 엔트리를 제거함으로써 완화되어 인스트럭션 유닛이 새로운 인스트럭션을 디스패치할 수 있게 된다.
본 발명은 도시된 실시예에 따라 기술되었으나, 당 분야에서 통상의 지식을 가진 자라면 실시예에 대한 변형이 있을 수 있고 이들 변형은 본 발명의 정신 및 범위내에 있을 수 있음을 인지할 것이다. 따라서, 본 발명은 4개의 인스트럭션을 한꺼번에 완료시키는 관점에서 기술되었으나, 당 분야에서 통상의 지식을 가진 자라면 임의의 수의 저장 인스트럭션이 완료될 수 있으며 이들은 본 발명의 정신 및 범위내에 있을 수 있음을 용이하게 인지할 것이다. 따라서, 당 분야에서 통상의 지식을 가진 자라면 본 발명의 정신 및 범위로부터 벗어나지 않고 다수의 변형이 이루어질 수 있고, 이들의 범위는 다음의 청구 범위에 의해 정의된다.
상기한 바와 같은 본 발명에 따르면, 정체 문제에 대해 효율적이고 효과적으로 대처하고 저장 인스트럭션을 완료시키지 않고 디스패치 유닛의 정체 수를 감소시켜 프로세서의 전체적인 성능을 향상시키는 효과가 있다.

Claims (10)

  1. 프로세싱 시스템에서 정체 상태 이후에 다수의 저장 인스트럭션의 완료를 처리하는 로드 저장 장치─상기 프로세싱 시스템은 인스트럭션 유닛을 포함하고, 이 인스트럭션 유닛은 디스패치 유닛, 완료 유닛, 변환 유닛, 적어도 하나의 실행 유닛을 포함한다─에 있어서,
    상기 디스패치 유닛으로부터 다수의 인스트럭션을 수신하는 인스트럭션 큐와,
    상기 인스트럭션 큐로부터 상기 다수의 인스트럭션을 수신하는 적어도 하나의 유효 어드레스(EA) 유닛과,
    상기 변환 유닛, 상기 적어도 하나의 실행 유닛, 상기 적어도 하나의 EA 유닛에 접속되어, 상기 다수의 인스트럭션의 각각을 완료하기 이전에 상기 적어도 하나의 실행 유닛으로부터 상기 다수의 인스트럭션의 각각에 관한 데이터 및 실제 어드레스 정보를 수신하는 저장 큐를 포함하는 로드 저장 장치.
  2. 제 1 항에 있어서,
    사이클 당 다수의 인스트럭션이 디스패치되는 로드 저장 장치.
  3. 제 1 항에 있어서,
    사이클 당 하나의 인스트럭션이 디스패치되는 로드 저장 장치.
  4. 제 2 항에 있어서,
    상기 적어도 하나의 EA 유닛은 2개의 EA 유닛으로 된 로드 저장 장치.
  5. 제 4 항에 있어서,
    상기 인스트럭션 유닛은 상기 다수의 인스트럭션을 상기 인스트럭션 유닛의 완료 윈도우내에서 완료시키는 로드 저장 장치.
  6. 다수의 저장 인스트럭션의 완료를 인에이블하는 프로세싱 시스템에 있어서,
    인스트럭션 유닛과,
    변환 유닛과,
    적어도 하나의 실행 유닛과,
    상기 인스트럭션 유닛, 변환 유닛, 적어도 하나의 실행 유닛에 접속된 로드/저장 유닛─상기 로드/저장 유닛은,
    상기 디스패치 유닛으로부터 다수의 인스트럭션을 수신하는 인스트럭션 큐와,
    상기 인스트럭션 큐로부터 상기 다수의 인스트럭션을 수신하는 적어도 하나의 유효 어드레스(EA) 유닛과,
    상기 변환 유닛, 상기 적어도 하나의 실행 유닛, 상기 적어도 하나의 EA 유닛에 접속되어, 상기 다수의 인스트럭션의 각각을 완료하기 이전에 상기 적어도 하나의 실행 유닛으로부터 상기 다수의 인스트럭션의 각각에 관한 데이터 및 실제 어드레스 정보를 수신하는 저장 큐를 포함한다─을 포함하는
    프로세싱 시스템.
  7. 제 6 항에 있어서,
    사이클 당 다수의 인스트럭션이 디스패치되는 프로세싱 시스템.
  8. 제 6 항에 있어서,
    사이클 당 하나의 인스트럭션이 디스패치되는 프로세싱 시스템.
  9. 제 7 항에 있어서,
    상기 적어도 하나의 EA 유닛은 2개의 EA 유닛으로 이루어진 프로세싱 시스템.
  10. 제 9 항에 있어서,
    상기 인스트럭션 유닛은 상기 다수의 인스트럭션을 상기 인스트럭션 유닛의 완료 윈도우내에서 완료시키는 프로세싱 시스템.
KR1019980022223A 1997-07-22 1998-06-13 프로세싱 시스템 KR19990013416A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/898,359 US5926645A (en) 1997-07-22 1997-07-22 Method and system for enabling multiple store instruction completions in a processing system
US8/898,359 1997-07-22

Publications (1)

Publication Number Publication Date
KR19990013416A true KR19990013416A (ko) 1999-02-25

Family

ID=25409337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980022223A KR19990013416A (ko) 1997-07-22 1998-06-13 프로세싱 시스템

Country Status (2)

Country Link
US (1) US5926645A (ko)
KR (1) KR19990013416A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192461B1 (en) * 1998-01-30 2001-02-20 International Business Machines Corporation Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
US6807586B2 (en) * 2002-01-09 2004-10-19 International Business Machines Corporation Increased computer peripheral throughput by using data available withholding
US7225299B1 (en) 2003-07-16 2007-05-29 Transmeta Corporation Supporting speculative modification in a data cache
US7149851B1 (en) * 2003-08-21 2006-12-12 Transmeta Corporation Method and system for conservatively managing store capacity available to a processor issuing stores
US7484122B2 (en) * 2004-06-17 2009-01-27 International Business Machines Corporation Controlling timing of execution of test instruction by target computing device
US9411395B2 (en) * 2013-04-18 2016-08-09 Intel Corporation Method and apparatus to control current transients in a processor

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5023776A (en) * 1988-02-22 1991-06-11 International Business Machines Corp. Store queue for a tightly coupled multiple processor configuration with two-level cache buffer storage
US5155831A (en) * 1989-04-24 1992-10-13 International Business Machines Corporation Data processing system with fast queue store interposed between store-through caches and a main memory
US5450564A (en) * 1990-05-04 1995-09-12 Unisys Corporation Method and apparatus for cache memory access with separate fetch and store queues
JP2511588B2 (ja) * 1990-09-03 1996-06-26 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理ネットワ―ク、ロックを獲得させる方法及び直列化装置
US5442766A (en) * 1992-10-09 1995-08-15 International Business Machines Corporation Method and system for distributed instruction address translation in a multiscalar data processing system
US5548735A (en) * 1993-09-15 1996-08-20 International Business Machines Corporation System and method for asynchronously processing store instructions to I/O space
US5592684A (en) * 1994-07-22 1997-01-07 Dell Usa, L.P. Store queue including a byte order tracking mechanism for maintaining data coherency
US5611063A (en) * 1996-02-06 1997-03-11 International Business Machines Corporation Method for executing speculative load instructions in high-performance processors

Also Published As

Publication number Publication date
US5926645A (en) 1999-07-20

Similar Documents

Publication Publication Date Title
US5611063A (en) Method for executing speculative load instructions in high-performance processors
US5860107A (en) Processor and method for store gathering through merged store operations
US5452426A (en) Coordinating speculative and committed state register source data and immediate source data in a processor
KR100335745B1 (ko) 고성능의 추론적인 오정렬 로드 연산
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
US5913054A (en) Method and system for processing a multiple-register instruction that permit multiple data words to be written in a single processor cycle
JP2742393B2 (ja) オペレーションの処理システム及び方法
US6192461B1 (en) Method and apparatus for facilitating multiple storage instruction completions in a superscalar processor during a single clock cycle
KR100335744B1 (ko) 로드/로드 검출 및 재정렬 방법
US20030182537A1 (en) Mechanism to assign more logical load/store tags than available physical registers in a microprocessor system
US5802556A (en) Method and apparatus for correcting misaligned instruction data
US5802340A (en) Method and system of executing speculative store instructions in a parallel processing computer system
US5751946A (en) Method and system for detecting bypass error conditions in a load/store unit of a superscalar processor
US5678016A (en) Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization
US6209073B1 (en) System and method for interlocking barrier operations in load and store queues
US5812812A (en) Method and system of implementing an early data dependency resolution mechanism in a high-performance data processing system utilizing out-of-order instruction issue
US6115730A (en) Reloadable floating point unit
US5926645A (en) Method and system for enabling multiple store instruction completions in a processing system
US5956503A (en) Method and system for front-end and back-end gathering of store instructions within a data-processing system
KR19990067773A (ko) 산술 또는 논리 연산의 수행과 동시에 조건 코드 비트를 발생하는 방법 및 시스템
US5805916A (en) Method and apparatus for dynamic allocation of registers for intermediate floating-point results
US6079002A (en) Dynamic expansion of execution pipeline stages
US5758117A (en) Method and system for efficiently utilizing rename buffers to reduce dispatch unit stalls in a superscalar processor
KR19980086627A (ko) 특정 유형의 인스트럭션을 동시에 처리할 수 있는 방법 및 데이터 프로세싱 시스템
US5894569A (en) Method and system for back-end gathering of store instructions within a data-processing system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee