KR0124812B1 - 독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법 - Google Patents

독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법

Info

Publication number
KR0124812B1
KR0124812B1 KR1019930028552A KR930028552A KR0124812B1 KR 0124812 B1 KR0124812 B1 KR 0124812B1 KR 1019930028552 A KR1019930028552 A KR 1019930028552A KR 930028552 A KR930028552 A KR 930028552A KR 0124812 B1 KR0124812 B1 KR 0124812B1
Authority
KR
South Korea
Prior art keywords
instruction
intermediate memory
memory buffers
execution
execution units
Prior art date
Application number
KR1019930028552A
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 윌리엄 티. 엘리스
Application granted granted Critical
Publication of KR0124812B1 publication Critical patent/KR0124812B1/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/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/3856Reordering of instructions, e.g. using queues or age tags

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)
  • Multi Processors (AREA)

Abstract

본 발명의 방법 및 시스템을, 명령어를 실행하고 그 결과를 지정된 범용 레지스터 안에 배치하기 위해 기회가 있을때마다 일단의 실행 유니트로 순차적으로 정렬된 복수의 명령어를 동시에 디스패치하는 슈퍼스칼라 프로세서 시스템의 비순차적 명령어 디스패치에 관한 것이다. 일반적으로 각 명령어는 적어도, 한 개의 소오스 오퍼런드와 한 개의 목적지 오퍼런드를 구비한다. 복수의 중간 기억 버퍼가 제공되며, 이용 가능한 실행 유니트에 명령어가 디스패치될 때마다 특정 중간 기억 버퍼가 디스패치된 명령어 내의 임의의 목적지 오퍼런드에 할당됨으로써 각 명령어의 실행 결과가 중간 버퍼 안에 기억될 수 있게 한다. 각 명령어의 상태표시는 완료 버퍼 안에 유지된 후 어플리케이션에 특정한 순차적 정렬과 일치하는 순서로 중간 기억 버퍼 안의 결과를 선정된 범용 레지스터로 선택적으로 전달하는데 이용된다. 그래서 선정된 명령어의 완료를 막는 인터럽트의 발생이 완료 버퍼 안에서 정확하게 식별될 수 있다.

Description

독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법
제1도는 본 발명의 방법 및 시스템을 구현하는데 이용될 수 있는 슈퍼스칼라 데이터 처리 시스템의 하이레벨 블럭도.
제2도는 본 발명의 방법 및 시스템을 구현하는데 이용될 수 있는 제1도 슈퍼스칼라 데이터 처리 시스템의 명령어 디스패치 회로에 대한 세부 블럭도.
제3도는 본 발명의 방법 및 시스템에 따른 제1도의 슈퍼스칼라 데이터 처리 시스템 내의 중간 기억 버퍼를 나타내는 하이 레벨 블럭도.
제4도는 본 발명의 방법 및 시스템에 따른 디스패치 제어 프로세스의 개략도.
제5도는 본 발명의 방법 및 시스템에 따라 단일 사이클 명령어 디스패치를 위한 프로세서를 나타내는 논리 순서도.
제6도는 본 발명의 방법 및 시스템에 따른 선정된 명령어로 오퍼런드를 지정하기 위한 프로세서를 나타내는 논리 순서도.
* 도면의 주요 부분에 대한 부호의 설명
10 : 슈퍼스칼라 데이터 처리 시스템
18 : 메모리
20 : 캐쉬/메모리 인터페이스
22 : 명령어 디스패치부
24, 24a, 24b, 24c, 32, 34 : 실행유니트
28, 30 : 적재/기억 유니트
40 : 부동 소수점 중간 기억 버퍼
42 : 고정 소수점 중간 기억 버퍼
44 : 부동 소수점 범용 레지스터
46 : 고정 소수점 범용 레지스터
48 : 완료버퍼
58 : 기억 버퍼 인덱스부
60 : 중간 기억 버퍼
62 : 범용 레지스터
64 : 버스
본 발명은 일반적으로 향상된 데이터 처리 시스템에 관한 것으로서 특히, 슈퍼스칼라 프로세서 시스템에서 명령어 디스패치 효율을 향상시키기 위한 방법 및 시스템에 관한 것이다. 더우기, 본 발명은 독립적으로 액세스되는 중간 기억 장치를 이용하여 슈퍼스칼라 프로세서 시스템의 명령어당 디스패치를 향상시키는 방법 및 시스템에 관한 것이다.
최첨단의 데이터 처리 시스템의 설계가들은 이와 같은 시스템의 성능을 향상시키려고 끊임없이 시도하고 있다. 데이터 처리의 효율을 향상시키기 위한 한가지 기술은 사이클 시간을 짧게 하며 명령어 사이클(CPI) 비율을 낮게 하는 것이다. 데이터 처리 시스템을 향상시키기 위해 상기 기술을 적용한 하나의 좋은 예는 IBM(주)의 RISC 시스템16000(RS 6000) 컴퓨터이다. 상기 RS/6000시스템은 멀티 유저의 상업용 환경은 물론 주로 수치를 처리하는 엔지니어링 및 과학적인 어플리케이션에서 잘 수행되도록 설계되어 있다.
상기 RS/6000 프로세서는 복수의 명령어가 동시에 발송되고(issued) 실행되는 슈퍼스칼라 구현체를 이용한다.
이와 같이 복수의 명령을 동시에 발송하고 실행하기 위해서는, 높은 명령어 대역폭으로(with a high instruction bandwidth) 동시에 실행될 수 있는 독립적인 기능 유니트가 필요하다. 상기 RS/6000 시스템은 개별적인 분기 유니트, 고정 소수점 유니트 및 부동 소수점 처리 유니트를 파이프라이닝(pipelining)하여 이용함으로써 이러한 목적을 달성한다. 이와 같은 시스템에서 파이프라인된 프로세서의 특징을 고려하면, 후속명령어(subsequent instruction)를 디스패치하기 이전에 후속 명령어를 실행하는데 필요한 특정한 명령어의 결과가 확실히 얻어질 수 있도록 하여야 한다. 이와 같은 소위 데이타 종속성 위험(data dependency hazards)이 발생되지 않도록 하는 확실한 하나의 기술은 특정 명령어를 디스패치하기 이전에 특정 명령어의 모든 선행 명령어들(preceding instructions)이 디스패치되도록 하는 것이다. 비록, 이와 같은 기술을 이용하여 데이터 종속 데이터 종속 위험이 발생하는 것을 방지할 수는 있지만, 이와 같은 기술을 이용함으로써 발생하는 성능 상의 손실은 매우 크다.
따라서, 오늘날의 슈퍼스칼라 데이터 처리 시스템은 종종 소위 데이타 종속성 인터럭 회로(data dependency interlock circuit)를 이용한다. 이와 같은 회로에는 특정 명령어가 올바르게 실행되기 위해 필요한 선행 명령어의 실행 결과가 얻어질 때까지, 특정 명령어가 디스패치되지 않도록 하는 명령어 디스패치회로와 관련하여 동작하는 논리가 포함된다. 데이터 종속성 인터럭 회로를 구현하는데 필요한 논리 회로의 크기는 각 명령어 내의 소오스 오퍼런드 수와 직접 비례한다. 소오스 오퍼런드는 명령어를 실행하기 위해, 레지스터 파일 내의 오퍼런드를 액세스하는데 이용되는 명령어 내의 하나의 필드이다.
비록 데이터 종속성 인터럭 회로를 이용하여 전술한 성능상의 커다란 손실없이 데이터 종속 위험성을 방지할 수 있을지라도, 많은 수의 소오스 및 목적지 오퍼런드를 포함하고 있는 명령어를 위해 데이터 종속성 인터럭을 설계하고 구현하는 것은 상당히 복잡해지게 된다.
각 프로세서 사이클에서 복수의 명령어를 동시에 실행함에 따라 일어나는 상기 데이터 종속 위험성은, 또한 공지된 레지스터 리네이밍(register renaming)이라는 방법을 이용함으로써 해결되고 있다. 레지스터 리네이밍이란, 명령으로 인한 최종 결과가 레지스터 파일에 놓이기 전에 다음에 오는 명령어에 의해 잠재적으로 사용되기 위한 레지스터에 특정 명령의 결과를 일시적으로 위치시키는데 사용되는 기술이다. 레지스터 리네이밍은 일반적으로 잉여의 장소를 가지는 레지스터 파일과 논리 레지스터에 할당되는 특정한 물리 레지스터를 식별하기 위한 포인터 배열을 제공함으로써 이루어진다. 또한, 취할 수 있는 종래 기술의 해결 방법은 복수의 레지스터 파일 어레이를 이용하여 데이터를 위한 또는 예외 상황에 대비하여 이전의 결과를 백업하여 저장하기 위한 많은 판독 포트를 제공하는 것이다.
비록 이와 같은 기술이 연속적인 실행을 필요로 하는 복수의 명령을 동시에 디스패치하고 실행할 수 있는 기능을 제공할지라도, 이와 같은 기술을 이용하는 실행 유니트로 명령어를 디스패치하는 데에는 문제가 있다. 명령어가 디스패치될 수 있도록 하기 위해서는 상기 실행을 수행하는데 필요한 오퍼런드를 위한 소오스위치는 물론 명령의 실행 결과를 기억하기 위한 목적지 위치가 식별되어야만 한다. 복잡한 리네이밍 방법은 조사표(lookup tables) 및 논리 회로를 이용할 필요가 있고 결국 종종 리네임할 수 있는 레지스터가 포함되는 레지스터 파일에 액세스하기 위해 실행 유니트간에 경합이 발생하므로, 이러한 시스템에서는 처리 효율이 떨어지게 된다.
그러므로, 데이터 목적지에 대한 실행 유니트간의 경합이 최소화될 수 있도록 독립적으로 액세스할 수 있는 중간 기억 장치를 제공함으로써 슈퍼스칼라 프로세서 시스템 내의 명령어 디스패치 효율을 향상시키기 위한 방법 및 시스템이 필요한 것이다.
따라서, 본 발명의 한가지 목적은 향상된 데이터 처리 시스템을 제공하는 것이다.
본 발명의 다른 목적은 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율을 향상시키기 위한 방법 및 시스템을 제공하는 것이다.
본 발명의 또 다른 목적은 독립적으로 액세스되는 중간 기억 장치를 이용하여 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 방법 및 시스템을 제공하는 것이다.
상기 목적들은 이제부터 서술되는 바와 같이 달성된다. 본 발명의 방법 및 시스템은, 명령어를 실행하여 그 결과를 지정된 범용 레지스터에 배치하기 위해 일단의 실행 유니트에 복수의 명령을 동시에 디스패치하는 슈퍼스칼라 프로세서 시스템에서, 단일 사이클내에 명령어를 디스패치할 수 있도록 해준다. 각 명령어는 일반적으로 적어도 한 개의 소오스 오퍼런드와 한 개의 목적지 오퍼런드를 포함한다. 복수의 중간 기억 버퍼가 제공되는데, 상기 중간 기억 버퍼는 독립적인 버스에 의해 모든 실행 유니트에 접속되어 있다. 이용 가능한 실행 유니트에 명령어가 디스패치될 때마다, 특정한 중간 기억 버퍼가 디스패치된 명령어의 임의의 목적지 오퍼런드에 할당되므로, 지정된 범용 레지스터 또는 지정된 대체 가능한 범용 레지스터를 판단하여 선정할 필요성이 제거되고 실행 유니트가 독립적인 버스를 통해 지정된 중간 기억 버퍼를 직접 액세스함으로써 명령어가 효율적으로 디스패치될 수 있기 때문에 다른 실행 유니트와 액세스하기 위해 발생할 수 있는 경합이 제거된다.
본 발명의 부가적인 목적, 특징 및 장점은 물론 상기 사항은 다음의 상세한 설명에서 보다 명확해질 것이다.
본 발명에서 신규하게 간주되는 특징은 첨부되는 특허 청구 범위에 기재되어 있다. 그러나, 본 발명의 바람직한 실시 방법, 부가적인 목적 및 장점은 첨부하는 도면과 관련하여 예시적인 실시예에 대한 다음의 상세한 설명을 참조하면 좀더 잘 이해할 수 있을 것이다.
지금부터 도면, 특히, 제1도를 참조하면, 본 발명의 방법 및 시스템을 구현하는데 이용될 수 있는 슈퍼스칼라 데이터 처리 시스템(10)의 상위 레벨 블럭도가 도시되어 있다. 도시된 바와 같이, 데이터 처리 시스템(10)은 데이터, 명령 및 그와 유사한 것을 기억시키기 위해 사용될 수 있는 메모리(18)를 포함한다. 메모리(18) 내에 기억된 데이터 또는 명령은 바람직하게는, 본 기술 분야에 공지된 방법인, 캐쉬/메모리 인터페이스(20)를 이용하여 액세스된다. 캐쉬 메모리 시스템의 크기와 그 이용은 데이터 처리 기술 분야에 잘 공지되어 있기 때문에 본 발명에서는 서술되지 않는다. 그러나, 본 기술 분야의 숙련자는 오늘날의 연관 캐쉬기법을 이용함으로써 캐쉬/메모리 인터페이스(20) 내에 일시적으로 기억된 데이터를 이용하여 높은 확율로 메모리를 액세스할 수 있다는 것을 알 수 있을 것이다.
캐쉬/메모리 인터페이스(20)에서 나오는 전형적인, 명령어는 바람직하게는 복수의 대기 장소를 포함하는 명령어 디스패치부(22)로 적재된다. 슈퍼스칼라 데이터 처리 시스템의 전형적인 실시예에서, 각 명령어 디스패치부의 각 장소에는 두 개 내지 여덟 개의 명령어가 포함될 수 있으므로, 소정의 사이클 내에, 캐쉬/메모리 인터페이스(20)를 통과하는 유효한 명령어의 수와 명령어 디스패치부(22) 안의 가능한 공간에 따라, 최대 여덟 개의 명령어가 명령어 디스패치부(22)에 로드될 수 있다.
이러한 슈퍼스칼라 데이터 처리 시스템에서는 전형적으로, 명령어를 실행 유니트(24)로 디스패치하기 위해 명령어 디스패치부(22)가 이용된다. 제1도에 도시된 바와 같이, 데이터 처리 시스템은(10)은 설계에 따라 한 개 이상의 부동 소수점 유니트, 고정 소수점 유니트, 적재/기억 유니트 및 분기 프로세서 유니트를 구비할 수 있다. 그러므로, 명령어 디스패치부(22)는 설계에 따라 단일 사이클 동안 실행 유니트로 한 개 이상의 명령을 디스패치할 수 있는 할당부(reservation stations)를 포함할 수 있다. 따라서, 슈퍼스칼라 프로세서의 복수의 실행 유니트 각각은 단일 사이클 동안 복수의 명령어를 수신할 수 있다. 또한, 멀티프로세서 시스템에서, 명령어는 복수의 프로세서와 연관된 복수의 실행 유니트(24)로 디스패치될 수 있다.
지금부터 제2도와 관련하여, 본 발명의 방법 및 시스템을 구현하는데 이용될 수 있는 제1도 슈퍼스칼라 데이터 처리 시스템의 명령어 디스패치 회로의 세부 블럭도가 도시되어 있다. 도시된 바와 같이, 캐쉬/메모리 인터페이스(20)로부터 명령어는 전형적으로 어플리케이션에 따라 지정된 순차적 순서에 따라 그룹되어 명령어 디스패치부(22)로 로드된다. 그리하여, 기회가 있을때마다 실행 유니트(24) 내 한 개 이상의 실행 유니트로 디스패치하기 위해 설계에 따라 두 개, 네 개 또는 여덟 개의 명령어가 한꺼번에 캐쉬/메모리 인터페이스(20)로부터 명령어 디스패치부(22)로 로드된다. 제2도의 실시예에서 도시된 바와 같이, 이와 같은 실행 유니트에는 복수의 적재/기억 유니트(28과 30), 복수의 고정 소수점 실행 유니트(32와 34) 및 분기실행 유니트(36)가 포함될 수 있다. 물론, 상술된 바와 같이, 설계에 따라 데이터 처리 시스템(10) 안에는 서로 다른 유형을 갖는 보다 많거나 또는 적은 수의 실행 유니트가 포함될 수 있다.
이하에 도시된 유형과 같은 슈퍼스칼라 처리 시스템에 전형적인 바와 같이, 복수의 범용 레지스터가 또한 제공된다. 제2도의 실시예에서는, 두 개 그룹의 범용 레지스터가 제공되어 있다. 즉, 부동 소수점 범용 레지스터(44)와 고정 소수점 범용 레지스터(46)이다. 따라서, 전형적으로, 제2도에 도시된 실행 유니트 내에서 복수 명령어의 실행 결과는 다음에 이용하기 위해 선정된 범용 레지스터 안에 기억된다. 본 발명의 중요한 특징에 따르면, 또한 복수의 중간 기억 버퍼가 제공되어 있다. 즉, 부동 소수점 중간 기억 버퍼(40)와 고정소수점 중간 기억 버퍼(42)이다. 이하에 보다 상세히 서술되는 바와 같이, 각 실행 유니트는 독립적인 버스를 거쳐 각 중간 기억 버퍼에 접속되어 있다. 따라서, 실행유니트에 의해 필요하거나 또는 실행 유니트 안에서 명령을 실행함으로써 생성된 데이터는 독립적인 버스에 놓여 지정된 중간 기억 버퍼에 저장되므로, 다른 실행 실행 유니트에 의해 이용하거나 또는 다음에 범용 레지스터로 전달될 수 있다.
이러한 방법에서는, 전형적으로 레지스터 리네이밍 방법과 연관되어 있는 복잡한 조사표(lookup tables)를 유지할 필요 없이 목적지 오퍼런드에 대한 기억 장소로서 즉시 이용될 수 있도록 중간 기억 버퍼가 효율적으로 지정되며, 리네임된 레지스터 파일 안에서 데이터 장소를 판단할 필요가 없기 때문에 명령어가 단일프로세서 사이클 내에 디스패치될 수 있다. 또한, 범용 레지스터 안에 어플리케이션에 따라 지정된 순차적순서로 차후에 어셈블하기 위해 명령의 출력이 중간 기억 버퍼에 일시적으로 기억되므로, 비순차적인 방식으로 명령어가 실행될 수 있다.
도시된 바와 같이, 고정 소수점 실행 유니트 각각은 독립적인 버스를 통해 고정 소수점 중간 기억 버퍼(42)에 결합되어 있고, 부동 소수점 실행 유니트 각각은 독립적인 버스를 통해 부동 소수점 중간 기억 버퍼(40)에 접속되어 있다. 본 기술 분야의 숙련자라면 이해할 수 있듯이, 고정 소수점 및 부동 소수점 데이터 모두를 로드하고 저장해야 되기 때문에 적재 및 기억 유니트(load/store unit, 28 및 30)는 반드시 부동 소수점 중간 기억 버퍼(40)와 고정 소수점 중간 기억 버퍼(42)에 접속되어 있다.
본 발명의 또다른 중요한 특징에 따르면, 완료 버퍼(completion buffer)(48)가 제공되는데, 완료 버퍼(48)는 실행 유니트(24) 안에서 실행되고 있는 복수의 스칼라 명령의 종료를 파악한다. 상술된 바와 같이, 상기 명령어의 실행 결과는 연관된 중간 기억 버퍼에 각각 일시적으로 기억되며, 하나의 명령어 또는 복수의 명령어가 성공적으로 완료됨에 따라, 어플리케이션에 지정된 순차적 순서로, 상기 완료된 명령어의 결과 데이터를 연관된 범용 레지스터로 전달하는 것을 초기화 하기 위해 완료 버퍼(48)가 이용된다. 또한, 예외 상황이 발생한 경우, 예외 상황의 발생 이전에 완료된 임의 명령어의 실행 결과를 저장하도록 개시하고 예외상황이 발생된 시점에서부터 처리를 다시 시작할 수 있도록 명령어 디스패치부(22)를 제어하기 위해, 완료 버퍼를 이용함으로써, 효율적인 방식으로 손상되거나 유효하지 않은 데이터를 유효한 출력으로 교체하거나, 또는 특정한 형태의 예외 상황에 대해 어플리케이션의 특정 프로그램에 지정된 바와 같이 명령어를 새로운 순서로 초기화 할 수 있다.
지금부터 제3도를 참조하면, 본 발명의 방법 및 시스템에 따라 제1도 슈퍼스칼라 프로세서 시스템 안에서 중간 기억 버퍼를 이용하고 있는 것을 도시하는 상위 레벨 블럭도가 도시되어 있다. 명령어 디스패치부(22)에 의해 액세스될 수 있는 기억 버퍼 인덱스부(58)가 제공된다. 이하에 보다 상세히 서술되는 바와 같이, 기억 버퍼 인덱스부(58)는 복수개의 중간 기억 버퍼(60) 각각과 연속되는 명령어를 실행하는 동안 이용되는 지정된 범용 레지스터(62)간의 관계의 표시를 기억하여 유지하는데 이용된다.
복수의 중간 기억 버퍼(60)는 바람직하게는 복수의 독립적인 버스(64)에 접속되어 있다. 바람직한 실시예에서는, 각각의 중간 기억 버퍼가 각 버스에 접속되어 있기 때문에 독립적인 버스(64)의 수는 중간 기억 버퍼(60)의 수와 같게 된다. 각각의 중간 기억 버퍼(60)에는 대응하는 독립적인 버스(64)로부터 데이터가 기억될 수 있다. 본 기술 분야의 숙련자는 설계에 따라 이용된 버스의 수가 다를 수 있음을 이해할 것이다.
도시된 복수의 실행 유니트(24a, 24b, 24c)는 복수의 독립적인 각 버스(64)에 접속되어 있다. 바람직한 실시예에서, 실행 유니트(24a, 24b, 24c)에는 부동 소수점 실행 유니트, 복수의 적재/기억 유니트, 복수의 고정 소수점 실행 유니트 및 실행 유니트가 포함될 수도 있다. 그러나, 본 기술의 숙련자는 설계에 따라 실행 유니트의 유형 및 그 수가 변할 수도 있다는 것을 알 것이다.
또한, 복수의 각 실행 유니트(24a, 24b, 24c)는 각각의 독립적인 버스(64)로부터 읽거나 그것에 기억할 수 있다. 결과적으로, 복수의 각 실행 유니트(24a, 24b, 24c)는 복수의 독립적인 버스(64)를 통해 복수의 중간 기억 버퍼(60) 각각에 접속되어 있다. 따라서, 실행 유니트 내에서 명령어를 실행함으로써 데이터가 생성될 때, 실행 유니트는 그 데이터의 목적지로서 지정되어 있던 지정된 중간 기억 버퍼에 대응하는 버스 상에 상기 데이터를 위치시켜, 데이터가 중간 기억 버퍼에 일시적으로 저장될 수 있다. 이와 동시에, 상기 실행 유니트는 유효비트를 적절한 상태로 세팅시킴으로서 버스 상의 데이터가 유효하다는 것을 나타낸다. 상기 방법에서, 비록 데이터가 버스 상에 존재하며, 지정된 중간 기억 버퍼 안에 데이터가 저장되거나 또는 그 이전일지라도, 그 데이터를 필요로 하는 임의의 다른 실행 유니트는 상기 버스로부터 데이터를 읽을 수도 있다. 따라서, 독립적인 버스를 제공함으로써 얻게 되는 한가지 장점은 버퍼에 데이터를 저장하고 그런 후에 버퍼로부터 그 데이터를 액세스해야 하는 필요성이 사라진다는 것이다. 버스로부터 데이터를 직접 검색함으로써 프로세서 시스템의 동작 속도를 크게 향상시킬 수 있을 것이다.
제3도를 다시 참조하면, 복수의 독립적인 버스(64) 각각은 범용 레지스터(62)에 결합되어 있다는 것을 알 수 있을 것이다. 명령어가 실행 유니트에 디스패치될 때, 지정된 중간 기억 버퍼와 선정된 범용 레지스터간의 관계는 바람직하게는 기억 버퍼 인덱스부(58)안에 기억된다. 다른 실행 유니트에 의해 실행 결과가 필요할 때에는 기억 버퍼 인덱스부(58)안의 정보를 이용함으로써 그 결과의 전달이 수행될 수 있다. 이하에 보다 상세히 서술되는 바와 같이, 기억 버퍼 인덱스부(58)안에 기억된 정보는 범용 레지스터 명칭을 이용하여 액세스되는 지정된 중간 기억 버퍼에 대한 식별자 또는 지정된 중간 기억 버퍼의 명칭과 함께액세스되는 범용 레지스터의 식별자일 수도 있다.
상기 방법에 있어서, 범용 레지스터 파일을 리네이밍할 필요없이 디스패치될 명령어의 각 목적지 오퍼런드에 대한 기억 장소로서 중간 기억 버퍼가 즉시 할당될 수 있기 때문에, 전형적으로 레지스터 리네이밍 방법과 연관되어 있는 복잡한 조사표를 유지할 필요가 없다. 더욱이, 각 명령어의 실행 결과가 중간 기억 버퍼(60)에 일시적으로 기억되어 기억 버퍼 인덱스부(58) 내의 정보 및 완료 버퍼(48)(제2도 참조)의 내용을 이용함으로써 연속되는 명령에 의해 후속적으로 이용될 수 있기 때문에, 기억 버퍼 인덱스부(58)는 비순차적으로 명령어의 실행을 가능하게 한다.
지금부터 제4도를 참조하면, 본 발명의 방법 및 시스템에 따른 디스패치 제어 처리의 개략도가 도시되어 있다. 도시된 바와 같이, 명령어 디스패치 버퍼(instruction dispatch buffer, 64) 안에 복수의 명령어가 있다. 즉, 명령어(66, 68, 70 및 72)는 어플리케이션에 지정된 순차적 순서로 명령어 디스패치 버퍼(64)에 적재되어 있는 복수의 명령어를 나타낸다. 도시된 바와 같이, 각 명령어는 일반적으로 하나의 소오스 오퍼런드와 하나의 목적지 오퍼런드를 포함하지만, 본 기술 분야의 숙련자라면 보다 많은 수의 오퍼런드가 있을 수 있다는 것을 이해할 것이다.
본 발명의 중요한 특징에 따르면, 명령어(72)를 디스패치하려고 할 때 목적지(Dn)을 위한 중간 기억 버퍼를 할당하여야 한다. 또한, 소오스 오퍼런드(SN)를 위해 이용되는 장소도 지정할 필요가 있다. 본 발명의 방법 및 시스템에 따르면 이것은 우선, 소오스 오퍼런드(SN)와 상기 소오스 오퍼런드를 선행하는 명령어 디스패치 버퍼(64) 내의 목적지 오퍼런드들을 비교함으로써 이루어진다. 따라서, 비교 유니트(compare unit, 74)는 소오스 오퍼런드(SN)와 목적지 오퍼런드(D3, D2, D1)를 비교하기 위해 이용된다. 이와 같은 단계는 현재 명령어 디스패치 버퍼(64) 내에 소오스 오퍼런드(SN)를 위해 지정된 장소가 있는지 없는지를 판단하기 위해 이용된다. 각각의 명령어는 해당 소오스 오퍼런드의 내용을 순차적으로 변경시키며 명령어 디스패치 버퍼(64)내의 명령어는 어플리케이션에 지정된 순차적 순서 내에서 배열되기 때문에, 명령어(72)에 선행하며 소오스 오퍼런드(SN)와 동일한 목적지로서 가장 최근의 목적지가 이용된다. 그리하여, 만약 비교 유니트(74)를 이용하는 첫 번째 비교에서 일치되면, 소오스 오퍼런드(SN)에 대한 지정이 목적지 오퍼런드(D3)과 같게 설정된다. 유사하게, 선행하는 어떠한 목적지 오퍼런드도 소오스 오퍼런드(SN)와 일치하지 않을 경우에는 역시 소오스 오퍼런드(SN)에 대한 지점이 목적지 오퍼런드(D2또는 D1)로 설정될 수도 있다.
이제 제5도를 참조하면, 본 발명의 방법 및 시스템에 따라 단일 사이클 동안 명령어를 디스패치하기 위한 단계를 설명하는 논리 순서도가 도시되어 있다. 도시된 바와 같이 단계는 블럭(80)에서 시작한 후 블럭(82)으로 넘어간다. 블럭(82)는 특정 명령어에 대한 실행 유니트 요구가 발생하였는지 아닌지를 판단하는 단계이다. 실행 유니트 요구가 발생하지 않는 경우, 상기 단계는 실행 유니트 요구가 발생할 때까지 단순히 반복된다. 그러나, 실행 유니트 요구가 발생한 후에 단계는 블럭(84)으로 넘어간다.
블럭(84)는 이러한 명령어를 위해 요구되는 형태의 실행 유니트가 이용 가능한지를 판단하는 단계이다. 이용 가능하지 않은 경우에, 상기 단계는 적당한 실행 유니트가 이용 가능하게 될 때까지 단순히 반복된다.
그후, 블럭(86)에 도시된 단계로 넘어간다. 블럭(86)은 디스패치될 명령어 내의 각 목적지 오퍼런드를 위해 중간 기억 버퍼가 이용 가능한지를 판단하는 단계를 도시한 것이다. 본 발명의 중요한 특징에 따르면, 중간기억 버퍼가 명령어 내의 각 목적지 오퍼런드에 할당되므로, 범용 레지스터 파일 내의 리네임된 레지스터를 복잡하게 판단할 필요없이, 명령어 및 그와 연관된 데이터가 단일 프로세서 사이클 내에서 디스패치될 수 있다. 선정된 명령어 내의 목적지 오퍼런드에 할당되기 위한 중간 기억 버퍼가 이용 가능하지 않은 경우, 상기 단계는 이러한 중간 기억 버퍼가 이용가능하게 될 때까지 기다린다.
다음에, 단계는 블럭(88)으로 넘어간다. 블럭(88)은 이러한 중간 기억 버퍼가 이용가능해짐에 따라, 중간 기억 버퍼를 선정된 명령어의 목적지 오퍼런드(들)에 할당하는 단계를 나타낸다. 그런 후에, 단계는 블럭(90)으로 넘어간다. 블럭(90)에서는 선정된 명령어 내의 모든 소오스 오퍼런드가 지정되었는지 아닌지를 판단한다. 이하에 보다 상세히 서술되는 바와 같이, 명령어가 디스패치되는 것을 허용하기 이전에 명령어 내에 포함된 각 소오스 오퍼런드를 위해 데이터를 얻기 위한 소오스 또는 장소가 지정될 필요가 있을 것이다. 선정된 명령 내의 모든 소오스 오퍼런드가 지정되어 있지 않은 경우에는 각 소오스 오퍼런드에 대한 지정이 판단될 때까지 단순히 반복된다.
그런 후에, 선정된 명령어 내 모든 소오스 오퍼런드가 지정되면, 단계는 블럭(92)으로 넘어간다. 블럭(92)은 현재의 프로세서 사이클 내에서 선정된 명령어 및 지정된 데이터(data specification)를 디스패치하는 것을 나타낸다. 따라서, 각 명령어 내의 목적지 오퍼런드에 중간 버퍼가 할당되게 함으로써, 본 발명의 방법 및 시스템은 해당 명령어를 실행하는데 필요한 명령어 및 지정된 데이터가 단일 프로세서 사이클 내에서 디스패치될 수 있게 된다. 그후, 단계는 블럭(94)으로 넘어가 복귀한다. 비록 상술된 상기 단계들이 순차적으로 발생하는 것처럼 도시되어 있지만, 본 기술 분야의 숙련자라면 효율적인 목적에서, 이러한 단계들은 병행으로 거의 동시에 발생할 것이라는 것을 알 수 있을 것이다.
마지막으로, 지금부터 제6도를 참조하면, 본 발명의 방법 및 시스템에 따라 선정된 명령어에 소오스 오퍼런드를 지정하기 위한 단계를 나타내는 논리 순서도가 도시되어 있다. 도시된 바와 같이, 블럭(100)에서 시작된 후 블럭(100)으로 넘어간다. 블럭(102)은 명령어 내의 소오스 오퍼런드의 식별을 지정하는 단계를 나타낸다. 그런 후에, 블럭(104)으로 넘어간다. 블럭(104)에서는 고려중인 현재의 오퍼런드가 명령어 디스패치 버퍼안에 있는 명령어 내에 선행하는 목적지 오퍼런드와 같은지 아닌지를 판단한다. 선행하는 목적지 오퍼런드와 같은 경우, 블럭(106)으로 넘어간다.
블럭(106)에서는 소오스 오퍼런드 지정을 가장 최근에 선행한 목적지 오퍼런드 버퍼 할당으로 설정한다. 물론, 본 기술 분야의 숙련자는 어플리케이션에 지정된 순차적 순서로 연속하는 각 명령어가 특정 목적지에 할당되어 있는 버퍼의 내용을 바꿀 수도 있다는 것을 알 수 있을 것이다. 따라서, 가장 최근에 선해하는 목적지 오퍼런드 버퍼 할당이 항상 이용되어야만 한다. 그런 후에, 단계는 블럭(114)으로 넘어가 복귀함으로써, 제5도와 관련하여 서술된 바와 같이 명령어가 디스패치될 수 있게 한다.
다시 블럭 (104)를 참조하면, 명령어 디스패치 버퍼 내의 선행하는 어떠한 목적지 오퍼런드도 현재의 소오스 오퍼런드와 같지 않은 경우에는 블럭(108)으로 넘어간다. 블럭(108)은 상술된 바와 같이, 상기 소오스 오퍼런드를 위한 버퍼가 이미 인덱스부 안에 할당되었는지 아닌지를 판단하는 것이다. 소오스 오퍼런드를 위한 명령어 버퍼가 이미 버퍼 인덱스부 안에 할당된 경우, 단계는 블럭(110)으로 넘어간다. 블럭(110)은 소오스 오퍼런드의 지정을 버퍼 인덱스부 내의 할당된 버퍼로 세팅되는 단계를 나타내며, 다음에 블럭(114)으로 넘어가 복귀한다. 이와 같이, 만약 현재의 소오스로부터 역할을 하는 선행하는 목적지에 중간 기억 버퍼가 할당되었다면 비록 선행하는 명령이 디스패치되었을지라도 적절한 중간 기억 버퍼의 식별이 수행될 수도 있다.
마지막으로, 다시 블럭(108)을 참조하면, 식별된 소오스 오퍼런드를 위한 버퍼가 버퍼 인덱스부 내에 아직 할당되지 않은 경우에는 단계가 블럭(112)으로 넘어간다. 블럭(112)은 범용 레지스터 파일 안에 소오스 오퍼런드 지정을 지정된 제지스터로 세팅되는 것을 나타내며 다음에 단계는 블럭(114)에 나타낸 바와 같이 복귀한다.
비록 본 순서도의 단계들이 순차적으로 서술되어 있지만, 본 기술 분야의 숙련자는 명령어 디스패치의 효율을 향상시키기 위해서는, 선행하는 목적지 오퍼런드가 현재 소오스 오퍼런드와 같은지를 판단하는 단계, 버퍼 인덱스부 안에 명령어 버퍼가 이미 할당되어 있는지 아닌지를 판단하는 단계, 또는 현재의 소오스 오퍼런드의 지정을 위해 범용 레지스터가 지정되어야 하는지를 판단하는 단계가 일반적으로는 병렬로 수행되므로, 처리의 효율이 크게 향상된다는 것을 이해할 것이다.
비록 본 발명이 바람직한 실시예와 관련하여 특정하게 도시되고 서술되었지만, 본 기술 분야의 숙련자는 본 발명의 정신과 범위를 벗어나지 않고 형태 및 세부 사항에 있어서 여러 가지 변화가 있을 수도 있다는 것을 알 수 있을 것이다.

Claims (10)

  1. 어플리케이션에 지정된 순서로 각 스칼라 명령어 시이퀀스를 패치하고(fetch) 복수의 실행 유니트에 상기 스칼라 명령어의 그룹(group)을 동시에 디스패치할 수 있는 슈퍼스칼라 프로세서 시스템에서의 명령어 디스패치 효율 향상 방법에 있어서, ① 상기 슈퍼스칼라 프로세서 시스템에 복수의 중간 기억 버퍼를 제공하는 단계와, ② 독립적인 버스(independent bus)-각각의 독립적인 버스는 상기 복수의 중간 기억 버퍼중 하나의 버퍼와 연관됨-를 통해 상기 복수의 실행 유니트 모두에 상기 복수의 중간 기억 버퍼 각각을 결합시키는 단계와, ③ 기회가 있을 때마다 상기 복수의 실행 유니트 중 선택된 실행 유니트에 상기 스칼라 명령어의 그룹 중 선택된 명령어를 디스패치하는 단계와, ④ 상기 디스패치된 스칼라 명령어 각각의 실행결과를 상기 복수의 실행 유니트 중의 하나로부터 상기 중간 기억 버퍼 중 지정된 버퍼로 연관된 독립적인 버스를 통해 전달하는 단계-상기 실행 결과는 상기 복수의 실행 유니트 간의 액세스 경합없이 저장되며, 상기 복수의 실행 유니트 각각은 상기 실행 결과를 이용 가능함-를 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 방법.
  2. 제1항에 있어서, 상기 디스패치된 스칼라 명령어 각각의 상기 실행 결과를 상기 복수의 중간 기억 버퍼로부터 선택된 범용 레지스터로 전달하는 단계를 더 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 방법.
  3. 제1항에 있어서, 상기 슈퍼스칼라 프로세서 시스템에 복수의 중간 기억 버퍼를 제공하는 단계는 상기 슈퍼스칼라 프로세서 시스템 내에 열두개의 중간 기억 버퍼를 제공하는 단계를 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 방법.
  4. 제3항에 있어서, 독립적인 버스를 통해 상기 복수의 실행 유니트 각각에 상기 복수의 중간 기억 버퍼 각각을 결합시키는 단계는 상기 복수의 실행 유니트 각각에 열두개의 독립적인 버스를 결합시키는 단계-상기 열두개의 독립적인 버스 각각은 상기 열두개의 중간 기억 버퍼 중의 하나에 결합됨-를 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 방법.
  5. 제1항에 있어서, 상기 디스패치된 스칼라 명령어 각각의 실행 결과를 독립적인 버스를 통해 상기 복수의 실행 유니트 중의 하나로부터 상기 복수의 중간 기억 버퍼 중 지정된 버퍼로 전달하는 단계는 상기 전달에 따라(in response to said tranferring) 상기 독립적인 버스 상의 데이터가 유효하다는 표시를 제공하는 단계를 더 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 방법.
  6. 어플리케이션에 지정된 순서로 된 스칼라 명령어 시이퀀스를 패치하고(fetch) 복수의 실행 유니트에 상기 스칼라 명령어의 그룹(group)을 동시에 디스패치할 수 있는 슈퍼스칼라 프로세서 시스템에서 명령어 디스패치 효율 향상 시스템에 있어서, ① 상기 슈퍼스칼라 프로세서 시스템에 복수의 중간 기억 버퍼를 제공하는 수단과, ② 독립적인 버스(independent bus)-각각의 독립적인 버스는 상기 복수의 중간 기억 버퍼중 하나의 버퍼와 연관됨-를 통해 상기 복수의 실행 유니트 모두에 상기 복수의 중간 기억 버퍼 각각을결합시키는 수단과, ③ 기회가 있을때마다 상기 복수의 실행 유니트 중 선택된 실행 유니트에 상기 스칼라 명령어의 그룹 중 선택된 명령어를 디스패치하는 수단과, ④ 상기 디스패치된 스칼라 명령어 각각의 실행결과를 상기 복수의 실행 유니트 중의 하나로부터 상기 복수의 중간 기억 버퍼 중 지정된 버퍼로 연관된 독립적인 버스를 통해 전달하는 수단-상기 실행결과는 상기 복수의 실행 유니트 간의 액세스 경합 없이 저장되며, 상기 복수의 실행 유니트 각각은 상기 실행 결과를 이용 가능함-을 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 시스템.
  7. 제6항에 있어서, 상기 디스패치된 스칼라 명령어 각각의 상기 실행 결과를 상기 복수의 중간 기억 버퍼로부터 선택된 범용 레지스터로 전달하는 수단을 더 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 시스템.
  8. 제6항에 있어서, 상기 슈퍼스칼라 프로세서 시스템에 복수의 중간 기억 버퍼를 제공하는 수단은 상기 슈퍼스칼라 프로세서 시스템 내에 열두개의 기억 버퍼를 제공하는 수단을 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 향상 시스템.
  9. 제8항에 있어서, 독립적인 버스를 통해 상기 복수의 실행 유니트 각각에 상기 복수의 중간 기억 버퍼 각각을 결합시키는 수단은 상기 복수의 실행 유니트 각각에 열두개의 독립적인 버스를 결합시키는 수단- 상기 열두개의 독립적인 버스 각각은 상기 열두개의 중간 기억 버퍼 중의 하나에 결합됨-를 포함하는 슈퍼스칼라 프로세서 명령어 디스패치 효율 향상 시스템.
  10. 제6항에 있어서, 상기 디스패치된 스칼라 명령어 각각의 결괄르 독립적인 버스를 통해 상기 복수의 실행 유니트 중의 하나로부터 상기 복수의 중간 기억 버퍼 중 버퍼로 전달하는 수단은 상기 전달에 따라(in response to said tranferring) 상기 독립적인 버스 상의 데이터가 유효하다는 표시를 제공하는 수단을 포함하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치 효율 향상 시스템.
KR1019930028552A 1993-01-08 1993-12-20 독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법 KR0124812B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/001,865 US5898882A (en) 1993-01-08 1993-01-08 Method and system for enhanced instruction dispatch in a superscalar processor system utilizing independently accessed intermediate storage
US08/001,865 1993-01-08

Publications (1)

Publication Number Publication Date
KR0124812B1 true KR0124812B1 (ko) 1997-12-11

Family

ID=21698179

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930028552A KR0124812B1 (ko) 1993-01-08 1993-12-20 독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법

Country Status (9)

Country Link
US (2) US5898882A (ko)
EP (1) EP0605866B1 (ko)
JP (1) JP2783505B2 (ko)
KR (1) KR0124812B1 (ko)
CN (1) CN1047245C (ko)
AT (1) ATE182013T1 (ko)
CA (1) CA2107306A1 (ko)
DE (1) DE69325566T2 (ko)
TW (1) TW280879B (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3699518B2 (ja) * 1995-01-26 2005-09-28 サン マイクロシステムズ インコーポレイテッド パイプライン・プロセッサ内において、誤って予測された実行分岐後にアネックス内のヤング・ビットを回復する方法及び装置
US5881264A (en) * 1996-01-31 1999-03-09 Kabushiki Kaisha Toshiba Memory controller and memory control system
US6209083B1 (en) * 1996-02-28 2001-03-27 Via-Cyrix, Inc. Processor having selectable exception handling modes
US5974538A (en) * 1997-02-21 1999-10-26 Wilmot, Ii; Richard Byron Method and apparatus for annotating operands in a computer system with source instruction identifiers
US6295601B1 (en) * 1997-05-30 2001-09-25 Sun Micro Systems, Inc. System and method using partial trap barrier instruction to provide trap barrier class-based selective stall of instruction processing pipeline
US5964862A (en) * 1997-06-30 1999-10-12 Sun Microsystems, Inc. Execution unit and method for using architectural and working register files to reduce operand bypasses
US6085315A (en) * 1997-09-12 2000-07-04 Siemens Aktiengesellschaft Data processing device with loop pipeline
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6487715B1 (en) * 1999-04-16 2002-11-26 Sun Microsystems, Inc. Dynamic code motion optimization and path tracing
US6298436B1 (en) 1999-06-08 2001-10-02 International Business Machines Corporation Method and system for performing atomic memory accesses in a processor system
US6453412B1 (en) * 1999-07-20 2002-09-17 Ip First L.L.C. Method and apparatus for reissuing paired MMX instructions singly during exception handling
US6591361B1 (en) 1999-12-28 2003-07-08 International Business Machines Corporation Method and apparatus for converting data into different ordinal types
US6851044B1 (en) * 2000-02-16 2005-02-01 Koninklijke Philips Electronics N.V. System and method for eliminating write backs with buffer for exception processing
US6701424B1 (en) 2000-04-07 2004-03-02 Nintendo Co., Ltd. Method and apparatus for efficient loading and storing of vectors
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US20020124157A1 (en) * 2001-03-01 2002-09-05 International Business Machines Corporation Method and apparatus for fast operand access stage in a CPU design using a cache-like structure
JP3855270B2 (ja) * 2003-05-29 2006-12-06 ソニー株式会社 アンテナ実装方法
US7027062B2 (en) * 2004-02-27 2006-04-11 Nvidia Corporation Register based queuing for texture requests
US20060293644A1 (en) * 2005-06-21 2006-12-28 Donald Umstadter System and methods for laser-generated ionizing radiation
EP2102750B1 (en) * 2006-12-04 2014-11-05 Commvault Systems, Inc. System and method for creating copies of data, such as archive copies
US9582276B2 (en) * 2012-09-27 2017-02-28 Apple Inc. Processor and method for implementing barrier operation using speculative and architectural color values
JP6115394B2 (ja) * 2013-08-13 2017-04-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10915317B2 (en) * 2017-12-22 2021-02-09 Alibaba Group Holding Limited Multiple-pipeline architecture with special number detection
CN117742794A (zh) * 2023-12-05 2024-03-22 摩尔线程智能科技(北京)有限责任公司 数据处理系统、方法、装置及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
JPS581246A (ja) * 1981-06-26 1983-01-06 Fujitsu Ltd 命令処理順序制御方式
JPS58178464A (ja) * 1982-04-14 1983-10-19 Hitachi Ltd 並列演算処理装置
US4594660A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Collector
US5067069A (en) * 1989-02-03 1991-11-19 Digital Equipment Corporation Control of multiple functional units with parallel operation in a microcoded execution unit
WO1990010267A1 (en) * 1989-02-24 1990-09-07 Nexgen Microsystems Distributed pipeline control for a computer
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5197137A (en) * 1989-07-28 1993-03-23 International Business Machines Corporation Computer architecture for the concurrent execution of sequential programs
US5471593A (en) * 1989-12-11 1995-11-28 Branigin; Michael H. Computer processor with an efficient means of executing many instructions simultaneously

Also Published As

Publication number Publication date
ATE182013T1 (de) 1999-07-15
JP2783505B2 (ja) 1998-08-06
EP0605866A1 (en) 1994-07-13
US5898882A (en) 1999-04-27
JPH06242954A (ja) 1994-09-02
CN1092188A (zh) 1994-09-14
CA2107306A1 (en) 1994-07-09
DE69325566D1 (de) 1999-08-12
CN1047245C (zh) 1999-12-08
EP0605866B1 (en) 1999-07-07
TW280879B (ko) 1996-07-11
US5764942A (en) 1998-06-09
DE69325566T2 (de) 2000-01-27

Similar Documents

Publication Publication Date Title
KR0124812B1 (ko) 독립적으로 액세스되는 중간 기억 장치를 이용하는 슈퍼스칼라 프로세서 시스템의 명령어 디스패치를 향상시키기 위한 시스템 및 그 방법
KR0122529B1 (ko) 슈퍼스칼라 프로세서 시스템에서 복수의 명령어를 단일 사이클 동안 디스패치하기 위한 방법 및 장치
KR0122528B1 (ko) 슈퍼스칼라 프로세서 시스템에서 중간 기억 버퍼의 할당을 인덱스하기 위한 방법 및 시스템
EP0682789B1 (en) System and method for register renaming
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US3718912A (en) Instruction execution unit
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US4468736A (en) Mechanism for creating dependency free code for multiple processing elements
US4466061A (en) Concurrent processing elements for using dependency free code
EP0762270B1 (en) Microprocessor with load/store operation to/from multiple registers
US5892963A (en) System and method for assigning tags to instructions to control instruction execution
US5781790A (en) Method and apparatus for performing floating point to integer transfers and vice versa
US6128721A (en) Temporary pipeline register file for a superpipelined superscalar processor
RU2142157C1 (ru) Способ функционирования системы обработки
KR0122527B1 (ko) 슈퍼스칼라 프로세서 시스템에서 비순차적 명령어의 디스패치 및 실행을 위한 방법 및 시스템
US5765017A (en) Method and system in a data processing system for efficient management of an indication of a status of each of multiple registers
RU2150738C1 (ru) Система обработки и способ ее функционирования
JP3045964B2 (ja) スーパスカラ・プロセッサのリネーム・バッファを効率よく使用する方法及び装置
EP0495162A2 (en) Storage management
EP0605873A1 (en) Method and system for tracking scalar instructions within a superscalar processor system
JPH08263289A (ja) 複数命令流パイプライン計算機

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20020715

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee