KR880002660B1 - 중앙 처리장치 - Google Patents
중앙 처리장치 Download PDFInfo
- Publication number
- KR880002660B1 KR880002660B1 KR1019830004796A KR830004796A KR880002660B1 KR 880002660 B1 KR880002660 B1 KR 880002660B1 KR 1019830004796 A KR1019830004796 A KR 1019830004796A KR 830004796 A KR830004796 A KR 830004796A KR 880002660 B1 KR880002660 B1 KR 880002660B1
- Authority
- KR
- South Korea
- Prior art keywords
- instruction
- unit
- execution
- instructions
- cache
- Prior art date
Links
- 238000012545 processing Methods 0.000 claims abstract description 67
- 230000015654 memory Effects 0.000 claims description 53
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims 1
- 230000015572 biosynthetic process Effects 0.000 abstract description 7
- 230000005540 biological transmission Effects 0.000 description 26
- 238000012546 transfer Methods 0.000 description 24
- 230000008859 change Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000012535 impurity Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0846—Cache with multiple tag or data arrays being simultaneously accessible
- G06F12/0848—Partitioned cache, e.g. separate instruction and operand caches
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
Abstract
내용 없음.
Description
제 1 도는 본 발명에 의한 중앙 처리장치의 블록도.
제 2 도는 명령어의 서식을 도시한 도면.
* 도면의 주요부분에 대한 부호의 설명
12 : 중앙 파이프라인 유니트 14 : 명령인출 유니트
16 : 명령 캐쉬 20 : 오페란드 캐쉬
22 : 주 메모리 24 : 분쇄기
26 : 중앙 실행유니트 28 : 가상 메모리겸 안전관리 실행 유니트
30 : 2진 연산 실행 유니트 32 : 십진 문자 실행 유니트
34 : 명령 실행큐 38,40,42 : 입력스택
44,46,48,50 : 결과스택 52 : 콜렉터 제어기
54 : 마스터 세이프 스토어(master safe store)
56 : 스토어 스택
본 발명은 최대의 시스템 효율을 달성하기 위해 최적화된 중앙 처리장치를 가진 범용 디지탈 데이타 처리 시스템에 관한 것이다. 중앙 처리장치는 복수개의 실행 유니트를 구비하는데, 이들 실행유니트는 제각기 중앙 처리장치의 명령 목록을 구성하는 각종의 명령 서브 세트(subset of the instructions)를 실행한다. 실행 유니트들은 상호간에 독립적이며, 병렬로 작용한다. 즉, 주어진 프로그램에 대한 명령의 실행은 다른 명령의 실행과 병행처리되며, 명령인출 유니트는 캐쉬유니트(cache unit)로부터 명령을 인출하여 명령스택(instruction stack)에 저장한다. 중앙 파이프라인(pipeline)유니트는 명령스택으로부터 프로그램 순서대로 명령을 인출하고, 일련의 순차적인 단계로, 명령을 식별하고, 명령의 어드레스 부분으로부터 오페란드의 어드레스(address of the operand)를 형성하며, 캐쉬 유니트의 오페란드 캐쉬부분(operand cache portion)으로부터 오페란드를 얻는다. 오페란드 및 실행지령은 처리를 위해 유니트들에 분배되고, 콜렉터(collector)는 실행 유니트에 의한 명령의 실행 결과들을 수신하여, 중앙 처리장치의 프로그램 어드래서블(addressable)레지스터의 마스터 카피(master copy)와 더불어 프로그램 순서대로 저장한다. 스토어(store)명령은 오페란드 또는 데이타워드(word)를 오페란도 캐쉬에 기입하는 콜렉터에 의해 실행되는데, 수정된 데이타는 데이타를 중앙 처리장치의 외부에 설정할 필요가 있을 때 즉, 데이타가 시스템의 RAM메모리에 기입될 때까지 캐쉬내에 보존된다.
통상적으로, 대규모 범용 디지탈 데이타 처리 시스템에 있어서, 중앙 처리장치는 시스템 메모리내의 명령어의 어드레스를 형성하는 회로, 메모리로부터 명령을 인출하는 회로, 오페란드의 어드레스를 형성하는 회로, 메모리로부터 오페란드를 인출하는 회로, 데이타를 지명된 레지스터에 로오드(load)하는 회로, 명령을 실행하는 회로, 결과가 생성되었을시에 결과를 메모리나 프로그램-비저블레지스터(program-visible register) 에 기입하는 회로를 구비하고 있다.
데이타 처리 시스템의 전체 효율과 같은 시스템의 성능 및 중앙 처리장치의 성능을 증진시키기 위해서 중앙 처리장치에 대해 각종 수정을 행하고, 오페란드 및 명령을 얻는데 필요한 시간을 단축시키기 위해서는 중앙 처리장치내에 고속의 캐쉬를 설치하며, 또한 시스템의 능률을 높이기 위해서는 시스템이 동기된다. 즉, 클록방식으로 클록펄스를 생성하여 중앙 처리장치의 각 조작단계가 제어되게 한다. 파이프 라인식 처리기(pipelined processor)에서는 프로그램의 명령 및 오페란드의 형성 및 인출을 동시에 행함으로서 성능이 증가되었다. 그렇지만, 고성능 처리장치가 기존 프로그램의 수정 및 변경없이 기존의 프로그램을 실행할 수 있도록 즉, 처리장치가 기존의 시스템용으로 작성된 프로그램과 호환 가능하도록 하기 위해서는 시스템내의 처리장치의 내부 구조 및 명령 목적을 변경하지 않으면서도 성능을 보다 증진시킬 필요가 있다.
본 발명은 대규모 겸용 디지탈 데이타 처리 시스템용의 고효율 동기식 중앙 처리장치를 제공하는데, 중앙 처리장치에 구비된 캐쉬 유니트는 주로 오페란드가 저장되는 오페란드 부분 즉, 오페란드 캐위와 주로 명령이 저장되는 명령부분, 즉, 명령 캐쉬(instruction cache)를 갖는다. 또한 중앙 처리장치는 소정의 명령목록(repertoire of instruction) 및 복수개의 실행 유니트를 구비하는데, 이들 실행 유니트는 명령목록을 구성하는 각종 명령 세트를 실행할 수 있다. 명령 인출 회로는 주어진 프로그램의 명령을 주로 명령 캐쉬로부터 인출하여 명령스택에 저장한다. 중앙 파이프 라인 유니트의 5레벨 또는 5단의 파이프 라인은 명령을 명령 스택으로부터 프로그램 순서대로 얻는데, 제 1 단 또는 제 1 단계에서는, 명령이 식별되고, 명령의 어드레스 정보 부분을 이용하여 오페란드의 어드레스 형성이 개시되며, 제 2 단계에서는 오레란드의 어드레스가 완성되고, 제 3 단계에서는, 어드레스가 가상 메모리 어드레스 공간 정보 표시로부터 실제의 물리적인 어드레스 공간 표시로 변환되고, 한 세트의 후보 오페란드들은 오페란드 후보들 각각에 악세스된 시스템 메모리 기억장소를 식별하는 물리적인 페이지 번호(page number)와 함께 오페란드 캐쉬로부터 악세스되고 제 4 단계에서는 물리적인 어드레스의 오페란드 페이지 번호 부분이 각각 캐쉬로부터 악세스되는 후보 오페란드와 관련하는 페이지 번호와 비교되어 정합이 추정되며, 제 5 단계에서는, 선택된 오페란드 및 실행지령 코드가 명령을 독특하게 수행할 수 있는 실행 유니트에 전송되고, 이와 동시에 명령 코드가 콜렉터에 전송된다. 명령들이 실행 유니트에 전달되면 이들 명령은 실행되거나 또는, 입력 스택에 보존된 채로 실행을 대기한다.
명령의 실행은 각 실행 유니트에 명령이 수신되는 순서대로 행해진다. 각 실행 유니트 조작은 독립적으로 그리고 다른 것들과 병렬로 수행된다. 따라서, 각 실행 유니트에 보내진 주어진 프로그램의 명령들은 캐쉬로부터 최초 인출되는 바와같은 동일한 시간적 시킨스에 따라서 처리되지 않을 수 있다. 각 명령 유니트들은 제각기 실행되는 명령의 결과들이 저정되는 결과 스택을 구비한다. 콜렉터는 실행될 주어진 프로그램의 순서의 결과를 실행 유니트로부터 인출하여, 이들을 콜렉터의 마스터 세이프(safe) 스토어 또는 스토어 스택에 저장한다. 마스터 세이프 스토어는 중앙 처리장치의 프로그램 비저블 레지스터들의 유효한 카피를 보존하며, 메모리에 기입될 데이터는 오페란드 캐쉬내로 기입되기 전에 스토어 스택에 저장되고, 그 캐쉬에서 데이타는 중앙 처리장치가 속하는 시스템의 다른 유니트에 의해 치환되거나 필요시에 이용하거나 다른 수정을 위해 잔존한다. 치환 또는 시스템의 요구에 따라 수정된 데이타는 중앙 처리장치의 시스템의 RAM에 기입된다.
본 발명의 목적은 데이타의 효율을 증진할 수 있는 중앙 처리장치를 제공하는 것이며, 본 발명의 또 다른 목적은 명령들의 실행이 효율을 증진하기 위해 병행처리(overlap)되는 중앙 처리장치를 제공하는 것이고, 본 발명의 또 다른 목적은 명령 캐쉬 및 오페란드 캐쉬를 갖는 중앙 처리장치를 제공하는 것이다. 이하, 도면을 참조하여 본 발명을 상세히 설명하겠다.
제 1 도에는 대규모 법용 디지탈 컴퓨터용 중앙 처리장치(10)의 주요성분 또는 부시스템들이 도시되어 있다. 중앙 처리장치(10)의 전반적인 동작은 중앙 파이프 라인 유니트(12)에 의해 제어된다. 명령 인출 유니트(14)는 명령어의 어드레스를 명령 캐쉬(16)에 전송한다. 명령 캐쉬(16)가 명령 인출 유니트(14)로부터 명령 어드레스를 수신하는 것에 응답하여, 명령 이중어(instruction double word)가 명령캐쉬(16)로부터 명령인출 유니트(14)에 전송된다. 상기 인출 유니트(14)는 그 인출 유니트(14)의 일부분인 명령 스택내에 일련의 주어진 프로그램 명령을 저장한 것이다. 중앙 파이프 라인 유니트(12)는 명령 인출 유니트(14)의 명령스택으로부터 프로그램 순서에 따라 명령을 얻는데, 양호하게는 중앙 처리장치(10)의 시스템 클록주기당 한개씩 얻는다. 중앙 파이프 라인 유니트(12)는 5단계 파이프라인 유니트로서, 제 1 단계에서는 제 2 도에 도시된 명령어(18)중의 비트 18부터 비트 27까지의 오퍼레이션 코드(op code)가 해독되고, 오페란드 어드레스가 제 2도에 Y로서 도시된 18개의 비트(비트 0부터 비트17까지), 비트(29), 및 제 2도에 TAG로서 도시된 6개의 비트를 사용하여 형성되기 시작하며, 제 2 단계에서는, 오페란드의 어드레스 형성이 완성된다. 제 3 및 제 4 단계에서는, 오페란드 캐쉬(20)의 목록이 탐색되어 오페란드가 오페란드 캐쉬(20)내에 저장되어 있는지의 여부가 결정되고, 오페란드가 오페란드 캐쉬(20)내에 저장되어 있으면, 오페란드는 오페란드 캐쉬(20)로부터 악세스되거나 얻어지며 만일에 저장되어 있지 않으면, 오페란드를 내포하는 8워드의 블록이 주메모리(22)로부터 인출되어 소망의 오페란드를 분배기(24)에 전송한 후에 오페란드 캐쉬(20)내에 저장되고, 제 5 단계에서는 분배기(24)가 각 명령 및 그의 오페란드를 실행 유니트, 즉, 중앙실행 유니트(CEU)(26), 가상 메모리겸 안전 관리 실행 유니트(28), 2진 연산 실행 유니트(30) 또는 십진 문자 실행유니트(32)에 분배한다.
이외에도 명령 및 다른 관련정보가 후술된 바와같이 콜렉터(36)의 명령 실행 큐(queue)(34)에 프로그램 순서에 따라 전송된다.
각 실행 유니트(26,28,30,32)는 실행 프로그램의 명령 및 오페란드를 수신하여 처리할 수 있는데, 이같은 처리는 제각기 독립적으로 행해진다. 각 실행 유니트(26,28,30,32)는 각각 입력된 명령세트를 수행하도록 최적화되어 있는 논리회로들을 구비하고 있다. 특정 실시예에 있어서, 중앙 실행 유니트(26)는 기본적인 컴퓨터 동작(간단한 로오드, 가산, 감산등) 및 각종 명령을 수행한다. 중앙 실행 유니트(24)는 입력된 각 명령들을 일 클록주기내에서 실행한다는 점에서 다른 실행 유니트(28,30,32)와는 달리 독특하다. 따라서 중앙 실행 유니트(26)에는 제 1 도에서 볼 수 있듯이 다른 실행 유니트(28,30,32)와는 다르게 입력 스택에 제공되지 않는다. 가상 메모리겸 안전 관리 실행 유니트(28)는 가상 메모리에 관계되는 명령과, 안전 및 특수명령 즉, 안전 동작 시스템에 대해 독특한 명령을 실행한다. 2진 연산 실행유니트(30)는 2진 연산명령(예, 승산, 제산 및 이동 소숫점 명령)을 실행한다. 십진 문자 실행유니트(32)는 영자숫자, 십진연산 및 비트 열 명령을 실행한다. 가상 메모리겸 안전 관리 실행 유니트(28)는 입력 스택(38)을 구비하고, 2진 연산 실행 유니트(30)는 입력 스택(40)을 구비하며, 십진 문자 실행 유니트(32)는 두개의 입력 스택(42)을 구비한다. 입력스택(38,40,42)의 기능은 각 입력 스택의 관련 실행 유니트에 의한 실행을 기다리는 명령의 오페란드 및 오퍼레이션 코드를 저장하는 것이다.
각 입력 스택(38,40,42)은 16레벨의 선입선출(first-in, first-out)스택으로서, 각 레벨에는 2준 데이타어가 저장된다. 특정 실시예에 있어서, 각 데이타어는 2중 데이타어가 72개의 비트를 갖도록 36개의 비트들을 갖는다. 또한, 실행될 명령어의 오퍼레이션코드로부터 인툴된 실행코드는 입력스택내에 오페란드와 함께 저장된다. 실행 유니트(28,30,32)의 입력 스택(38,40,42)는 선입선출 스택이기 때문에, 먼저 들어간 오퍼레이션 코드 및 소정의 실행 유니트에 오퍼레이숀 코드를 인가하는데 필요한 오페란드는 실행 유니트에 의한 실행을 위해 입력 스택으로부터 먼저 독출된다. 각 실행 유니트에는 또한 결과 스택이 구비되는데, 결과 스택(44)은 중앙 실행 유니트(26)와 연관되며, 결과 스택(46)은 가상 메모리겸 안전 관리 실행 유니트(28)와 연관되고, 결과 스택(48)은 2진 연산 실행 유니트(30)와 연관되며, 결과 스택(50)은 십진 문자 실행 유니트(32)와 연관된다. 특정 실시예에 있어서, 결과 스택들은 각 16레벨의 선입선출 스택으로 이 스택들에는 명령 동작의 결과가 실행순서에 따라 저장된다. 결과 스택의 각 레벨은 이중어 및 이중어에 대한 부가적인 정보를 저장할 수 있는 능력이 있다. 실행에 있어서 각 명령어의 오퍼레이션 코드는 다른 정보와 더불어 명령 실행 대기어의 일부분으로 되는데, 이 명령 실행대기어는 16레벨의 선입선출 스택인 명령 실행큐(34)에 저장된다.
중앙 처리장치(10)의 중요한 특징은 성능의 관점에서 볼때 캐쉬 유니트를 형성하는 오페란드 캐쉬(20) 및 명령 캐쉬(16)와, 그리고 주 메모리(22)가 8개의 36비트어의 블록들로 구성되는 어드레스된 공간을 파악한다는 것이다. 주 메모리(22)와 캐쉬(20) 및 (16) 사이의 모든 데이타 이동은 8개의 36비트 워드 또는 블로단위로 구성되고 중앙 처리장치(10)내에서, 특히, 캐쉬 유니트와 실행 유니트 사이에서의 데이타 이동은 이중워드로 또는 쌍으로 이뤄진다. 분배기(24)는 오페란드 캐쉬(20)로부터 각종의 실행 유니트에 오페란드를 공급하며, 중앙 파이프 라인 유니트, 2진 연산 실행 유니트 및 십진문자 실행 유니트에 대해 설치된 AQ레지스터의 카피(copy)들을 유지한다. 명령 인출 유니트(14)는 5단계의 명령 선행인출 파이프 라인으로 구성되어 있다. 명령 인출 유니트(14)는 명령 인출 유니트(14)는 선행 인출된 명령 및 데이타를 자체내의 명령 스택에 저장하는데, 이들 명령은 현재의 명령 스트림(stream) 및 하나 이상의 선행 인출된 다른 스트림 또는, 명령 인출 유니트(14)의 전송/간접 예견표에 의해 예견되는 간접어를 나타낸다. 명령 인출 유니트(14)는 명령을 중앙 파이프 라인 유니트(12)에 공급하는데 중앙 파이프 유니트(12)에서, 이들 명령은 중앙 실행 파이프라인 유니트(12)의 명령 사이클중에 해독된다. 명령인출 유니트(14)는 선행 인출한 명령의 오퍼레이션 코드를 검사하지 않고, 오히려 그의 명령 카운터 레지스터의 명령 카운터를 사용하여 전송/간접 예견표를 탐색해서 소정의 명령이 새로운 메모리 위치에 대한 브랜치(branch)인지 또는 간접 어드레싱을 필요로하는 명령인지를 결정한다.
명령 선행인출 파이프 라인은 중앙 파이프 라인 유니트(12)에 실행될 명령을 공급하는데, 이것은 전송/간접 예견표를 사용하여, 새로운 명령 스킨스를 예견하고, 다음에 명령 캐쉬 또는 때때로 오페란드 캐쉬로부터 한번에 두개의 워드씩 새로운 명령 스트림의 명령을 선행인출하여 이들 명령, 즉, 간접어들을 명령 스택에 로오드한다. 이러한 새로운 명령 스킨스를 선행 인출 명령스택에 로오드하는 것은, 각 쌍중의 하나의 명령이 성공적으로 전송되거나 이전의 명령 실행 시각에서 간접주기를 필요로 하는 것을, 전송/간접 예견표가 나타낼 경우에만 발생한다. 이것이 발생하며, 명령 인출 유니트(14)는 전송 명령 또는 간접 명령의 목표 워드(target word)를 인출하도록 현재의 명령 스킨스를 전환하며, 그렇지 않으면, 명령을 순차적으로 계속 인출하여 자신의 명령 스택에 위치시킨다. 또한, 명령 인출 유니트(14)의 명령 선행인출 파이프 라인은 문제의 명령이 실제적으로 실행되었을 시에 비 전송으로 판명되는 경우 순차적인 선행 인출을 다시 행한다. 선행 인출된 전송 또는 간접 타겟트들은 그들이 인출되어 명령인출 유니트(14)의 명령 스택에 저장되면 곧바로 중앙 파이프 라인 유니트(12)에 의한 처리에 사용될 수 있다. 따라서, 중앙 파이프 라인 유니트(12)에 의한 전송 또는 간접 명령의 실제 실행이 명령 인출 유니트(14)가 자신의 명령 스택내에 새로운 명령 스트림의 명령을 위치시키기 시작하기 전에 완료되는 것을 기다릴 필요가 없다. 이와같이, 전송 명령 및 간접 오페란드를 가진 명령의 유효 실행 시간은 최소화된다.
명령 선행인출 파이프 라인은 중앙 파이프 라인 유니트(12)의 5주기와 같은 식으로 5주기로 동작하는데, 한가지 다른점은 명령 인출 유니트(14)가 명령을 자신의 명령 스택에 위치시킴으로써 한번에 이중 워드의 쌍에 대한 명령들을 처리하는 반면에, 중앙 파이프 라인 유니트(12)는 명령을 중앙 실행 유니트(26) 또는 실행 유니트(28,20,32)의 입력 스택에 보내는 것에 의해 한번에 하나의 워드씩 명령들을 처리한다는 것이다. 또 한가지 다른 점은 명령인출 유니트(14)가 그의 전송/간접 예견표를 갖고서 전송 또는 간접 어드레스가 실행될 것인지를 결정하도록 점검하는 반면에, 중앙 파이프 라인 유니트(12)는 중앙 인출 유니트(14)의 전송/간접 예견표를 갱신하는 것이다. 중앙 인출 유니트(14)의 명령 선행 인출 파이프라인의 제 1 주기, 즉 제 1 단계 동안에 중앙 처리장치(10)의 명령 카운터는 2씩 증분되고, 제 2 단계중에 명령쌍의 어드레스가 전송/간접 예견표 및 명령 오페란드 캐쉬에 분배되고, 제 3 단계에서는 전송/간접 예견표 및 명령 캐쉬(16)가 악세스된다. 상기 명령 캐쉬 악세스는 한세트의 이중 워드, 본 특정 실시예의 경우에는 4개의 이중워드와, 이들 이중워드와 연관된 물리적 시스템 메모리 기억장소를 표시하는 물리적인 페이지(page)어드레스로서 구성된다. 제 4 단계중에는 소망의 명령쌍의 물리적인 페이지 어드레스가 각 캐쉬로부터 악세스된 이중워드의 페이지 어드레스와 비교되는데, 만일 정합이 이루어지면 정합과 연관된 이중워드가 명령이중워드로서 선택되고, 만일 정합이 이루어지지 않으면, 오페란드 캐쉬가 명령 이중워드를 찾도록 탐색된다. 명령 이중워드가 만일 명령 캐쉬 또는 오페란드 캐쉬의 어느 것에서도 찾아지지 않는 경우에는 소망의 이중워드를 포함한 8워드 블록이 주 메모리(10)로부터 인출되어서 명령 캐쉬내에 기억된다.
전송/간접 예견표는 악세스되는 명령들의 어느 하나 또는 모두가 비교/선택, 즉, 제 4 단계중에 전송/진행 명령으로서 예견되는 지를 알 수 있게끔 악세스된다. 명령쌍이 현재의 명령 스트림의 목록으로부터 실페이지번호의 정합에 대응하는 4개의 캐쉬레벨중의 한 레벨로부터 선택된다. 캐쉬로부터 독출된 명령쌍은 명령 인출 레지스터내에 저장되고, 실페이지 번호가 보존되며, 전송/간접 예견표로부터의 응답은 명령들중의 어느것이 전송/간접 예견표내에 전송/진행으로서 기로되는지를 알수 있게끔 점검된다. 전송/간접 예견표로부터의 응답은 그 응답이 질의된 후에 두주기로 도달하는 것에 주목할 필요가 있다. 실행 주기동안, 선행인출 명령 파이프 라인의 제 5 단계에 있어서, 명령쌍은 만일 전송/간접 예견표가 명령들중의 어느 하나가 전송 명령이라는 것을 표시하는 경우라면 명령 선행 인출 파이프 라인이 새로운 명령 스트림으로부터 명령을 인출하도록 준비하게끔 명령 스택내에 위치된다. 타이밍은 현재의 명령 스트림으로부터 두개까지의 여분(extra)의 이중 워드쌍이 또한 캐쉬로부터 독출될 수 있도록 되어 있다. 예견된 전송/진행이 비진행으로 되는 경우에 있어서도 여분의 이중워드쌍이 명령 스택내에서 사용 가능하다. 명령 스택과 연관된 포인터(pointer)는, 중앙 파이프 라인 유니트(12)가 정확한 시킨스로 또는 프로그램 순서에 따라 명령 스택으로부터 명령을 독출할 수 있도록 한다.
명령 스택은 명령 인출 유니트(14)와 명령 실행 유니트 또는 중앙 파이프 라인 유니트(12)간에서 명령 큐로서의 기능을 행한다. 특정 실시예에 있어서, 명령 스택은 15레벨 길이의 스택이다. 명령들 또는 간접어들이 명령 인출 유니트 파이프 라인에 의해서 명령 스택내에 일단 위치되면 이들 명령워드는 그들이 실행될 때까지 또는 그들이 실행되지 않는 것이 결정될 때까지 남아 있을 것이다.
간접 워드의 이력(history)이 선행인출 중에 전송/간접 예견표내에서 찾아볼 수 있는 간접워드를 필요로 하는 전송 명령의 경우에 있어서, 명령 스택 제어에는 목표 명령 또는 간접워드의 어드레스를 보유하는 명령 스택 기억장소에 대한 포인터가 포함된다. 명령 스택은 순환 라운드 로빈(round-robbin)스택으로서, 명령 이중 워드쌍을 완충(buffer)하는데 사용되는 16번째의 엔트리(antry)가 제공되어 있다. 명령 및 간접워드 또는 오페란드는 명령인출 유니트(14)의 입력 스택으로부터 중앙 파이프 라인 유니트(12)로 중앙 파이프 라인 유니트(12)의 베이스 명령 레지스터를 통해 한번에 단일 워드씩 전송된다. 중앙 파이프 라인 유니트(12)는 또한 5단계로 되는데, 제 1단계에서는, 명령의 오퍼레이션 코드가 해독되고 어드레스의 형성이 계시되며, 제 2 단계에서는 오페란드 어드레스의 형성이 완료되고, 제 3 단계에서는 어드레스가 가상의 메로리 어드레스 공간 정보표시로부터 실제의 물리적인 어드레스 공간 표시로 변환되고, 후보 오페란드 세트가 각 후보 오페란드가 악세스 되는 시스템 메모리 기억장소를 식별하는 물리적인 페이지 번호와 더불어 오페란드 캐쉬로부터 악세스 되며, 제 4 단계에서는 물리적인 어드레스의 오페란드 페이지 번호 부분이 각 캐쉬로부터 악세스된 후보 오페란드들과 연관되는 페이지 번호와 비교되어 정합이 추축되며, 제 5 단계에서는 선택된 오페란드 및 실행 지령 코드가 명령을 수행할 수 있는 실행유니트에 전송된다. 주목할 것은 수행되는 작동들중의 어떤 것은 규정된 파이프 라인의 단계들을 어긋나게 한다는 점이다. 중앙 파이프 라인 유니트(12)는 명령 인출 유니트(14)의 전송/간접 예견표내로의 엔트리를 만든다. 중앙 파이프 라인 유니트(12)가 전송/진행 명령을 실행할 때마다, 중앙 파이프 유니트(12)는 전송/간접 예견표내에 있는 어떠한 대응 엔트리도 확인한다. 만일, 예견된 전송이 비진행(no go) 또는 비전송이라고 판명되면, 전송/간접 예견표내의 엔트리는 삭제된다. 불순공정의 경우, 예를들면 전송 명령의 목표 어드레스는 수정되나, 오퍼레이션 코드가 여전히 전송 상태를 유지하는 경우에 있어서, 전송/간접 예견표내의 적절한 엔트리는 이같은 사실을 반영하게끔 교정된다.
전송/진행이 미리 기록되지 않은 경우에 있어서, 새로운 엔트리가 전송/간접 예견표내에 만들어지는데, 이 새로운 엔트리는 특정 명령에 대한 명령 카운터에 대응하는 4개의 모든 레벨이 점유되는 경우에는 다른 엔트리로 치환될 수도 있다. 이같은 치환 알고리즘에는 전송/간접 예견표의 실패가 드물기 때문에 최소한 최근에 사용된 엔트리를 치환하는데 필요한 복잡한 회로를 부가하는 이점이 거의 없다. 중앙 파이프 라인 유니트는 전송/간접 예견표와 다른 방식으로 상호 작용한다. 불순공정 즉, 오퍼레이션 코드가 변하였으나 전송/간접 예견표가 여전히 전송 상태를 유지하고 있는 경우, 중앙 파이프 라인 유니트(12)는 명령이 처음 해독되는 명령 사이클에서 그 사실을 검출할 것이다. 간접 명령의 경우에 있어서, 중앙 파이프 라인 유니트(12)도 또한 이러한 명령에 대해 전송 간접 예견표내로 엔트리를 만든다. 명령 파이프 라인 유니트(12)는, 캐쉬 유니트내에 있지 않는 데이터나 비예견된 전송등으로 인한 인터럽트가 그러한 인터럽트가 교정될 때까지 중앙 파이프 라인 유니트의 동작을 정지할 때, 중앙 처리장치(10)내에서 필요한 고레벨을 달성하는 결정적인 역할을 담당한다.
전송/간접 예견표는 4096개의 엔트리들로 구성되는데, 이들 4096개의 엔트리들은 4개를 한 세트로하여 1024개의 세트로 나누어진다. 전송/간접 예견표는 제 1 레벨의 명령에 대한 목적 어드레스를 기록하는데, 또한 조건이 부여된 전송 및 조건이 부여되지 않은 전송에 대한 목적 어드레스를 예견하는데 사용된다. 성공적인 제 1 실행중에 즉, 전송/진행 명령 또는 간접워드를 필요로하는 명령중에, 중앙 파이프 라인 유니트의 파이프 라인내에 중단이 발생할 것이고, 반면에 목표 어드레스는 형성되고 캐쉬로부터 목표가 악세스된다. 재 1 실행시에 캐쉬 유니트내에 목표 명령의 기억 위치를 규정하는 전송/간접 예견표에 대한 명령이 제공되는데, 전송 명령 또는 간접워드를 필요로하는 명령의 차기 선행인출중에, 선행인출 파이프 라인은 전송/간접 예견표를 악세스하고, 다른 명령 스트림 또는 간접워드도 선행인출하기 위해 목표 위치를 결정한다. 전송 또는 간접 명령을 점검하는 선행인출 목표 어드레스가 변하지 않았음을 확인하기 위해 중앙 파이프 라인 유니트의 1클록 주기만을 점유하며, 계속되는 어떤 전송 명령의 실행중에, 전송/간접 예견표의 에트리는 전송이 예상한 것 같이 진행되지 않을 경우에만 갱신된다. 전송/간접 예견표는 간접의 1레벨만을 보존하며, 간점어의 캐쉬 어드레스들은 간접어 들의 수정되지 않는 경우에만 전송/간접 예견표내에 격납된다.
캐쉬 유니트는 두개의 8K캐쉬, 명령캐쉬(16) 및 오페란드 캐쉬로 구성된다. 캐쉬내에는 테이타가 8워드 블록 형태로 유지되는데 한 불록은 8개의 연속하는 36비트 주 메모릴 워드로 구성되고, 제 1 워드는 2진수 표시의 000의 어드레스를 갖는다. 한 블록내의 어떤 워드에 대한 참조(reference)에 의해서, 만일 상기 블록일 적합한 캐쉬내에 존재하고 있지 않게되면 주 메모리로부터 전체 블록이 독출된다. 캐쉬내의 어떤 블록은 그것이 다른 블록으로 치환될 때까지 또는 캐쉬 클리어(clear)명령에 의해 캐쉬로부터 클리어 될때까지 보존된다. 명령캐쉬(16)는 수정되지 않은 명령 및 간접어의 블록들을 보존하는 반면, 오페란드 캐쉬는 오페란드, 수정된 명령 및 간접어의 블록들을 보존한다. 오페란드 데이타는 명령 캐쉬로부터 인출될 수도 없고, 명령 캐쉬내에서 데이타가 수정될 수도 없다. 그러나, 오페란드 캐쉬로부터 명령을 인출하는 것은 가능하다. 단, 이 경우 통상적인 소망의 동작모드에 의해서 명령 캐쉬로부터만 명령이 인출된다. 만일 명령 캐쉬내에 내장된 블록이 저장 또는 데이타 인출 동작에 대해 참조되면 그 블록은 명령 캐쉬로부터 클리어되고 주 메모리로(22)부터 제 인출되어 오페란드 캐쉬내에 위치된다. 요약하자면, 오페란드는 오페란드 캐쉬로부터만 인출되는데 이들 오페란드는 오페란드 캐쉬에만 기억될 수도 있다. 반면에 명령들은 어떤 캐쉬로부터도 인출될 수 있는데, 바람직하게는 명령 캐쉬로부터 인출되는 것이 좋다.
각 캐쉬는 8k 36비트워드 기억장치용 4레벨 세트의 관련 목록을 가지며, 256행의 4개의 8워드 블록으로서 구성된다. 물리적인 메모리의 최초 8워드, 즉, 0으로부터 7까지는 캐쉬의 0행에 매핑되고, 어 8부터 어 15까지는 1행에 매핑되며, …, 어 2040으로부터 어 2047까지는 마지막의 255행에 매핑된다. 각 연속하는 2k의 물리적 메모리들도 캐쉬에 같은 방식으로 매핑된다. 따라서, 8워드 블록의 캐쉬 행 넘버는 물리적 메모리의 어드레스로부터 알 수 있게된다. 각 행은 4개의 8워드 블록에 대한 공간을 4개의 레벨내에 갖기 때문에, 소정 캐쉬 유니트내의 특정 행에 대한 레벨들은 특정행 내의 공간에 대한 선택이 있기전에 채워질 것이다. 행내의 모든 레벨들이 채워진 후에, 행내의 구블록이 최근 거의 사용되지 않은 기준에 따라 치환된다. 따라서, 들어오는 8워드 블록이 이전의 8워드 블록을 치환할 수 있기 전에 동일행으로서의 다섯번의 인입(hit)이 필요하다. 만일 8워드 블록의 명령이 오페란드 캐쉬내에 있으면, 명령 선행인출 유니트(14)는 캐쉬로부터 명령을 한번에 이중워드의 쌍으로 인출할 수 있으나, 오페란드 캐쉬로부터 그 명령을 제거하지 않고서 인출한다. 통상, 명령 인출 유니트는 중앙 파이프 라인 유니트(12)의 명령 파이프 라인의 훨씬 앞쪽에서 동작하므로, 이같은 결점은 반드시 눈에 띄는 것은 아니나, 이러한 상황은 명령인출 파이프 라인이 뒤떨어지게하고, 이 경우, 적정 명령의 부족은 중앙 파이프 라인 유니트의 파이프 라인에 있어 중단을 초래할 것이다.
성능은, 캐쉬를 통한 기억과 구별되듯이 캐쉬내로의 기억에 의해, 향상된다. 모든 기억(store)동작은 오페란드 캐쉬쪽으로 진행하나, 기억동작이 발생된 블록을 치환한은 것에 의해 블록이 주 메모리(22)로 기입되더라도 주 메모리(22)쪽으로 즉시 진행하지는 않는다. 기억되는 블록이 이미 오페란드 캐쉬에 존재하고 제어 정보 8워드 블록이 이미 수정되어 있음을 나타낸다면, 오페란드 캐쉬에 대한 기억동작이 완료되고 더 이상의 동작을 취하지 않는다. 그렇지만, 만일에 블록이 오페란드 캐쉬내에서 찾아지나 아직 수정되지 않은 경우라면, 중앙 처리장치(10)는 수정될 블록과 연관된 중앙 인터페이스 유니트에 그 블록이 수정되고 있다는 것을 통지한다. 이때 중앙 인터페이스 유니트는 어떤 다른 중앙 처리장치들에 기입 통지신호를 보낸다. 이경우, 이들은 그들의 오페란드 캐쉬나 그들의 명령 캐쉬의 어느것에 있을 수도 있는 8워드 블록의 카피를 무효로 해야 한다. 데이타 블록이 기억동작에 관해 오페란드 캐쉬내에서 찾아볼 수 없으며, 블록은 메모리에서 인출된다. 중앙 처리장치(10)는 블록의 수신시에 블록이 유니트들간에 어떤 추가적 교신이 없이도 수정될 수 있도록 블록을 수정할 목적으로한 인출임을 중앙 인터페이스 유니트에 표시한다. 독출 캐쉬만이 없으면, 중앙 실행 파이프 라인 유니트의 파이프 라인은 데이터를 기다리게 되며, 기억 캐쉬가 없으면, 파이프 라인은 데이터를 기다리지 않고 동작을 지속한다.
각 캐쉬는 똑같은 복제 목록(duplicate directory)을 갖기 때문에, 시스템 요구가 수신되어 블록이 클리어 되거나 블록이 시스템 메모리에 전송될 때, 중앙 처리장치는 블록이 중앙 파이프 라인 유니트(12)의 동작을 간섭하지 않고서, 제공된 것인지를 결정하기 위해 그의 복제 캐쉬 목록을 탐색할 수 잇다. 만일 요구된 블록이 찾아지면, 중앙 처리장치는 적당한 조치를 취한다. 만일 찾아지지 않으면 복제 목록 은 그 요구에 응답하고 중앙 처리장치는 지연되지 않는다.
중앙 실행 파이프 라인 유니트(12)는 주어진 프로그램에 대한 각 명령의 오퍼레이션 코드를 수신하면 프로그램 순서에 따라 명령 실행큐(34)에 기억하도록 전송한다. 16개까지의 명령 실행큐 IEQ워드들은 명령 실행큐(34)에 기억될 수 있다. 콜렉터제어기(52)는 실행 유니트의 결과 스택(44,46,48,50)내에 저장된 결과들의 독출을 제어하기 위해 명령 실행 큐워드의 오퍼레이션 코드를 사용함으로, 결과들은 적당한 프로그램 순서에 따라 마스터 세이트 스토어(master safe store : Mss : 54)나 스토어 스택(56)내에 기억될 수 있다. 스토어 스택(56)내에 저장된 결과들은 메모리에 오페란드를 기입하기 위해 사용된다. 중앙 처리장치(10)의 프로그램 어드레서블 레지스터들을 변화시키는 명령은 인터럽트, 고장 또는 하드웨어 에러 발생시에 있어서 프로그램 어드레서블 레지스터들의 내용을 마스터 세이프 스토어(54)내에서 사용하도록 마스터 세이프 스토어(54)내에 기억되는 결과들을 발생한다. 현재 사용 가능도와 모든 프로그램 어드레서블 레지스터들의 확실한 내용은 고장회복, 인터럽트의 취급 및 적당한 시기에서의 명령의 재시도를 용이하게 한다. 중앙 처리장치(10)에 있어서의 부시스템인 데이타 처리 시스템의 주 메모리(22)는 명령 캐쉬(16)용의 명령 및 오페란드 캐쉬(20)용의 오페란드를 제공한다. 주 메모리(22)에 기억 또는 기입되는 것들은 오페란드 캐쉬(20)내에 저장된 데이타들이다. 따라서, 데이타가 명령의 실행 결과로서 주 메모리에 기입될 경우마다, 필수 불가결한 데이타, 오페란드는 프로그램 순서대로 스토어 스택(50)내에 저장되고 오페란드 캐쉬(20)내에 기입된다. 오페란드 캐쉬(20)의 블록이 새로운 데이타가 기입될 수 있도록 되면, 오페란드 캐쉬 제어에 의해 캐쉬 블록내의 데이타가 주 메모리(22)에 새로운 데이타의 기입전에 기입된다.
중앙 실행 파이프 라인 유니트(12)는 중앙 처리장치(10)의 전체 동작을 제어하고, 동작 코드 또는 명령 및 관련 오페란드를 각종 실행 유니트(26,28,30,32)에, 즉, 실제적인 오페란드 코드의 실행이 수행되는 실행 유니트에 전송하는 기능을 한다. 명령 인출 유니트(14)는 중앙 파이프 라인 유니트(12)의 제어하에서 주로 명령 캐쉬(16)로부터 명령을 인출하여, 명령 인출 유니트(14)의 일부인 명령 스탭내에 16개까지의 명령 쌍을 로오드한다. 중앙 파이프 라인 유니트(12)는 명령 인출 유니트의 명령 스택으로부터 명령을 얻는다. 중앙 파이프 라인 유니트(12)는 오페란드로부터 일련의 5단계로 오페란드의 어드레스들을 형성하고, 오퍼레이션 코드 및 오페란드들을 동일한 실행 능력을 갖는 실행 유니트(26,(28),(30) 또는 (32)에 보낸다. 중앙 파이프 라인 유니트(12)내에서는 명령의 선행처리, 명령의 해독, 오페란드 어드레스으리 형성 및 오페란드 캐쉬의 관련 메모리 탐색이 수행된다.
실행 유니트(26,28,30,32)는 중앙 파이프 라인 유니트(12)로 부터의 지령 및 분배기(24)에 의해 각종 실행 유니트에 분배되는 오페란드 캐쉬(20)로부터의 오페란드를 수신한다. 명령의 실행에는 일반적으로 프로그램 비저블 레지스터 또는 메모리에 변화를 생성하는 입력 오페란드 및 현재의 레지스터 내용에 근거된 어떤 결과들의 형성이 포함된다.
중앙 처리장치(10)에는 각기 하나 또는 그 이상의 부유니트로 만들어지는 4개의 주요 실행 유니트가 제공되는데, 이들은 중앙 실행 유니트(26), 이동 소숫점, 승산 및 제산을 행하는 2진 연산 실행 유니트(30), 십진문자 실행 유니트(32) 및 가상 메모리겸 안전 관리 실행 유니트(28)이다. 실행 유니트(26,28,30,32)는 명령 및 오페란드를 수신하여, 제각기 독립적으로 처리한다. 실행 유니트(28) 및 (30)는 제각기 16레벨의 입력 스택(38) 및 (40)을 가지며, 이들은 선입력 선출력식 스텍으로서 그들의 각 레벨은 이중워드를 보존할 수 있다. 실행 유니트(32)는 두개의 16레벨 선입력 선출력식 스택을 갖는데, 이들 각각은 이중워드를 보존할 수 있다. 특정 실시예의 이중 워드는 패리티 비트를 가진 72개의 비트를 구비하고 있다.
또한, 각 실행 유니트는 관련 지령 스택을 갖고 있는데, 실행 유니트(28) 및 (30)는 16개까지이 실행 대기 지령을 보존할 수 있는 반면에, 실행 유니트(32)는 4개까지의 실행대기 지령을 보존할 수 있다. 실행 유니트가 소정의 명령 및 관련 오페란드를 수신하거나 실행 유니트에 소정의 명령 및 관련 오페란드가 할당되는 것에 관한 결정이 각 명령의 오퍼레이션 코드를 조사하는 것에 따라 중앙 파이프 라인 유니트(12)에 의해서 결정되는 것에 주목할 필요가 있다. 바람직한 실시예로서 사용된 특정 방식은 통상적인 룩업(lookup) 테이블 기법이다. 입력스택(38,40,42)은 중앙 파이프 라인 유니트(12)가 오페란드 및 주어진 프로그램의 관련 동작 코드를 실행 유니트들에 클록 주기당 한개씩 최대의 속도로서, 그리고 선행하는 복수의 실행 주기 명령에 대한 실행의 완료를 기다리지 않고 전송할 수 있게하며, 또한, 각 실행 유니트내에서 명령들의 실행이 동시에 행해질 수 있게 한다. 실행 유니트에 의해 주어진 프로그램에 대한 명령 실행의 순서는 프로그램 순서에 의해 진행되지 않는다. 각 명령 코드는 중앙 파이프 라인 유니트(12)로부터 수신되는 순서대로 실행된다. 중앙 처리장치(10)의 시스템 구성 즉, 수개의 실행 유니트를 가진 시스템 구성은 주요 레지스터의 수개의 카피, 예컨대, A 및 Q가 유지되는 것을 필요로 한다. 처리가 진행되면, 특정 레지스터의 카피는 실행 유니트들중의 어떤 것내에 있을 수도 있으며, 또는 중앙 처리장치(10)내에 있는 수개의 레지스터 뱅크(bank)중의 어떤 것 내에 있을 수도 있다. 중앙 파이프 라인 유니트(12)는 각 레지스터에 대해 현재의 유효한 카피를 유지하며, 다음 명령의 실행이 레지스터 내용의 카피를 하나의 실행 유니트로부터 다른 실행 유니트에 전송할 필요가 있는 시기를 식별한다. 그렇지만, 특정 레지스터 내용의 유효한 카피를 유지하는 것은 다섯개의 명령 또는 클록주기에 상당하는 중앙 파이프 라인 유니트(12)의 길이 때문에 복잡하게 된다. 고장의 발생 직전에 어드레서블 레지스터의 내용을 결정할 수 있는 능력은 고장에 대한 즉각적인 회복에 필요하다.
어떤 파이프 라인 컴퓨터에 있어서, 명령의 처리는 다른 실행 단계의 복수개의 다른 명령의 처리와 병행 처리된다. 또한, 중앙 처리장치(10)내에서는 복수개의 명령들이 다른 실행 유니트내에서 동시에 실행될수도 있다. 그결과, 어떤 시각에 있어서, 중앙 파이프 라인 유니트(12) 및 실행 유니트(26,28,30,32)의 레지스터들은 복수개의 다른 명령코드의 실행 및 처리로부터 발생되는 레지스터 변화를 포함할 수 있다. 명령 프로그램의 결함, 명령 처리의 에러, 또는 인터럽트가 발생하는 경우, 콜렉터(36)는 최종 성공적으로 완료된 명령의 종단부에서 정지되어야만 한다. 모든 레지스터 변화 즉, 결함, 에러 또는 인터럽트 이전의 명령의 순서에 따르는 실행의 결과로 인한 변화는 완료되어야만 하며, 프로그램 비저블 레지스터 변화 또는 프로그램 순서에 따르는 명령에 있어 나중의 실행 결과로 인한 메모리에 대한 변화는 취소되거나 삭제되어야만 한다. 콜렉터(36)는 결함 및 에러의 복구 및 인터럽트의 취급이 용이하도록 프로그램 어드레서블 레지스터의 유효한 카피를 제공한다. 중앙 처리장치(10)에 의해 처리되는 실행에서의 모든 명령에 대한 적당한 프로그램 순서의 기록은 명령 실행큐(34)내에서 유지된다. 명령 실행큐(34)는 처리에 있어 각 명령에 대해 하나의 엔트리를 내포하고 있는데, 마스터 세이프 스토어(54) 및 스토어 스택(56)내의 엔트리들은 그들이 적당한 프로그램 순서대로 로오드되지 않도록, 즉, 명령이 분배기(24)에 의해 명령 실행큐내에 저장되게 하는 동일한 순서로서 로오드되지 않도록 순서가 정해진다. 명령 실행큐 워드들은 명령의 오퍼레이션 코드를 포함하고, 실행시 명령의 결과들이 인입되는 실행 결과 스택을 룩업 테이블법에 의해 식별한다. 이때, 실행된 각 명령의 결과는 적당한 결과 스택으로부터 프로그램 순서에 따라 마스터 세이프 스토어(54) 또느 스토어 스택(56)에 전송된다. 따라서, 콜렉터(36)에 있어서는, 명령이 완료되고, 결과가 수신되어 프로그램 순서대로 배열된다.
콜렉터(36)는 또한 모든 메모리 기억 명령의 실제적인 실행을 수행한다. 마스터 세이프 스토어(54)는 메모리에 디입될 프로그램 비저블 레지스터의 내용을 편리하게 얻기 위해 프로그램 비저블 레지스터의 카피를 내포하고 있으며, 마스터 세이프 스토어(48)나 실행 유니트의 결과 스택들로부터 스토어 스택(56)을 경유하는 메모리(22)내에 기입될 데이타와 더불어 콜렉터(36)내에서 기억 명령을 취급하는 것은 프로그램 순서를 유지하여, 실행 유니트(44), (46), (48), (50)가 기억 명령내에 포함되는 것을 방지하지 위함이다. 따라서, 이 같은 점에서, 콜렉터(36)는 명령을 처리하기 위한 별도의 실행 유니트이다. 그 결과, 기억 실행은 둘 또는 그 이상의 클록 주기를 취하는 다른 명령들의 실행과 동시에 행해질 수 있다. 마스터 세이프 마스터(48)내에 기억된 정보는 중앙처리장치(10)가 필요로 하는 하드웨어 명령들을 재시행하기에 비교적 용이하도록 한다.
Claims (7)
- 범용 디지탈 데이타 처리 시스템에 사용하기 위한 것으로서, 글록 수단에 의해 발생된 글록펄스로 동기되며, 주어진 명령 목록을 갖는 동기식 중앙 처리장치에 있어서, 캐쉬수단(16,20)과 : 복수의 명령 실행 유니트(26,28,30,32)와 : 명령 인출 수단(14)과 : 중앙 유니트 수단(12) 및 콜렉터 수단(36)을 구비하는데, 상기 캐쉬수단은 명령과 오페란드를 포함한 기계어를 기억하도록 되어 있고, 상기 각 명령 실행 유니트는 상기 목록의 상이한 명령세트를 상호간에 독립적으로든지 동시에 실행하는데, 각 명령은 완성을 위한 소정의 클록 주기수를 필요로하고, 각 실행 유니트는 각 명령의 실행 결과를 기억하는 결과 스택을 구비하고, 상기 명령 인출 수단은 상기 캐쉬 수단으로부터 명령을 인출하고 실행을 기다리는 명령들을 대기시키며, 상기 중앙 유니트 수단은 상기 명령 인출 수단으로부터 프로그램 순서에 따라 주어진 프로그램의 명령을 얻고, 명령을 해독하고, 명령에 의해서 동작되도록 오페란드의 어드레스를 준비하고, 상기 어드레스된 오페란드가 상기 캐쉬수단에 기억되었는지의 여부를 검사하고, 상기 어드레스된 오페란드를 상기 캐쉬수단으로부터 액세스하고, 상기 명령 및 그의 오페란드를 실행하도록 상기 복수의 명령 실행 유니트들 중의 하나에 디스패치하는데, 상기 각 명령 실행 유니트는 결과를 산출하도록 수신된 순서에 따라 유니트에 디스패치된 명령을 실행하며, 상기 실행 순서대로 유니트의 결과 스택내에 각 명령에 대한 실행 결과를 기억하고, 상기 명령 실행 유니트에 의해 주어진 프로그램에 대한 명령 실행의 결과가 프로그램 순서에 따라 산출되지 않도록 각 명령을 실행하는데 필요한 클록주기의 수를 상이하게 하며, 상기 콜렉터 수단은 상기 명령 실행 유니트의 결과 스택으로부터 프로그램 순서대로 상기 프로그램에 대한 명령 실행의 결과를 얻고, 프로그램 순서대로 메모리에 기입될 프로그램에 대한 명령 실행의 결과를 상기 캐쉬수단에 기입하는 것을 특징으로 하는 동기식 중앙 처리장치.
- 제 1 항에 있어서, 제 1 명령 실행 유니트에 의해 실행된 명령 세트는 하나의 클록주기만을 실행하는데 필요한 명령으로 한정되는 것을 특징으로 하는 동기식 중앙 처리장치.
- 제 2 항에 있어서, 상기 제 1 명령 실행 유니트 이외의 명령 실행 유니트에 의해 실행된 명령 세트는 각 명령이 실행되는 클록 주기수에 대하여 한정되지 않는 것을 특징으로 하는 동기식 중앙 처리장치.
- 제 3 항에 있어서, 상기 제 1 명령 실행 유니트 이외의 모든 명령 실행 유니트는 오퍼레이숀 코드들과 상기 중앙 유니트에 의해 실행을 위한 상기 다른 실행 유니트에 디스패치되는 상기 코드들과 관련된 오페란드들을 기억하는 입력 스택을 포함하는 것을 특징으로 하는 동기식 중앙 처리장치.
- 제 4 항에 있어서, 상기 입력 스택과 결과 스택은 선입선출식 스택인 것을 특징으로하는 동기식 중앙 처리장치.
- 명령과 오페란드를 포함한 기계어를 기억하기 위한 메모리 수단을 구비한 범용 디지탈 데이타 처리 시스템에 사용하기 위한 것으로서, 콜록 수단에 발생된 클록 펄스로 동기되며, 주어진 명령 목록을 갖는 동기식 중앙 처리장치에 있어서, 복수의 명령 실행 유니트 수단(26,28,30,32)과 : 명령 인출 수단(14)과 : 중앙 유니트수단(12) 및 콜렉터 수단(36)을 구비하는데, 상기 각 명령 실행 유니트 수단은 상기 중앙 처리장치의 목록에 대한 상이한 명령 세트를 다른 실행 유니트 수단과 독립적으로든지 동시에 실행하는데 각 명령은 완성을 위한 정수의 클록 주기를 필요로하고, 각 실행 유니트 수단은 각 명령의 실행 결과를 기억하는 결과 스택을 구비하고, 상기 명령 인출 수단은 상기 메모리수단으로부터 명령을 인출하고, 상기 중앙 유니트 수단은 상기 명령 인출 수단으로부터 프로그램 순서에 따라 프로그램의 명령을 얻고, 명령을 해독하고, 상기 명령에 의해서 동작되도록 오페란드의 어드레스를 준비하고, 상기 메모리 수단으로부터 상기 어드레스된 오페란드를 얻고, 각 명령 및 그의 오페란드를 순서대로 실행하기 위하여 상기 복수의 실행 유니트 수단중의 하나에 디스패치하는데, 상기 각 명령 실행 유니트 수단은 결과를 산출하도록 수신된 순서대로 유니트 수단에 디스패치된 명령을 실행하며, 상기 실행 순서대로 유니트 수단에 결과 스택내에 각 명령에 대한 실행 결과를 기억하고, 상기 명령 실행 유니트 수단에 의해서 명령 실행의 결과가 프로그램 순서대로 산출되지 않도록 각 명령을 실행하는데 필요한 클록 주기의 수를 상이하게 하며, 상기 콜렉터 수단은 상기 실행 유니트 수단의 결과 스택수단으로부터 프로그램의 순서대로 상기 명령 실행 유니트 수단에 의한 프로그램에대한 명령 실행의 결과를 얻고, 프로그램 순서대로 상기 메모리 수단에 기입될 명령 실행의 결과를 상기 메모리 수단에 기입하는 것을 특징으로 하는 동기식 중앙 처리장치.
- 디지탈 데이타 처리 시스템에서 컴퓨터 프로그램을 실행하기 위한 것으로서, 명령과 오페란드를 포함한 컴퓨터 워드를 보유하기 위한 캐쉬수단(16,20)과 : 상기 캐쉬수단으로부터 명령을 인출하고, 인출된 명령을 사용 가능하도록 형성하는 명령 인출 유니트(14)와 : 상기 명령 인출 유니트에 의해서 사용 가능하도록 형성된 명령을 프로그램 순서대로 얻고, 그렇게 얻어진 각각의 명령에 의해 어드레스된 어페란드를 상기 캐쉬수단으로부터 인출하는 파이프 라인 제어 유니트(12)를 포함하는 동기식 중앙 처리장치에 있어서, 복수의 상이한 명령 실행 유니트(26,28,30,32)와 : 분배기(24)와 : 콜렉터 유니트(36)를 아울러 구비하는데, 상기 각 명령 실행 유니트는 상이한 명령 카테고리의 실행 능력을 가지며, 상기 모든 실행 유니트는 명령을 동시에 상호 비동기적으로 실행하도록 제어되고, 상기 각 실행 유니트는 상기 관련 실행 유니트에 의해 수행된 동작에 의한 컴퓨터 워드 결과를 검색하기 위한 출력기억부(44,46,48,50)를 구비하고, 상기 분배기는 상기 파이프 라인 제어 유니트 및 각 명령과 파이프 라인 제어 유니트에 의해 처리된 대응 오페란드를 상기 명령에 대한 실행능력을 갖는 특정 실행 유니트중의 하나에 디스패치하기 위한 실행 유니트에 접속되어 있고, 상기 콜렉터 유니트(36)는 상기 실행 유니트의 출력 기억부내에 보유된 컴퓨터 워드 결과를 프로그램 순서대로 검색하기 위한 상기 실행 유니트에 접속되는 것을 특징으로 하는 동기식 중앙 처리장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US06/434,122 US4521851A (en) | 1982-10-13 | 1982-10-13 | Central processor |
US434.122 | 1982-10-13 | ||
US434122 | 1982-10-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR840006528A KR840006528A (ko) | 1984-11-30 |
KR880002660B1 true KR880002660B1 (ko) | 1988-12-17 |
Family
ID=23722909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019830004796A KR880002660B1 (ko) | 1982-10-13 | 1983-10-10 | 중앙 처리장치 |
Country Status (9)
Country | Link |
---|---|
US (1) | US4521851A (ko) |
EP (1) | EP0106667B1 (ko) |
JP (1) | JPS5991546A (ko) |
KR (1) | KR880002660B1 (ko) |
AU (1) | AU555456B2 (ko) |
CA (1) | CA1200318A (ko) |
DE (1) | DE3377678D1 (ko) |
ES (1) | ES8406756A1 (ko) |
FI (1) | FI80532C (ko) |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594660A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Collector |
US4594659A (en) * | 1982-10-13 | 1986-06-10 | Honeywell Information Systems Inc. | Method and apparatus for prefetching instructions for a central execution pipeline unit |
JPS60500187A (ja) * | 1982-12-30 | 1985-02-07 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | データ処理システム |
US4689765A (en) * | 1983-01-28 | 1987-08-25 | Digital Equipment Corporation | Groups of tag signals for data store in multi-plane set of buffers |
US4757445A (en) * | 1983-09-12 | 1988-07-12 | Motorola, Inc. | Method and apparatus for validating prefetched instruction |
US4710866A (en) * | 1983-09-12 | 1987-12-01 | Motorola, Inc. | Method and apparatus for validating prefetched instruction |
US4628477A (en) * | 1983-10-17 | 1986-12-09 | Sanders Associates, Inc. | Programmable push-pop memory stack |
GB8401807D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Pipelined data processing apparatus |
US4701844A (en) * | 1984-03-30 | 1987-10-20 | Motorola Computer Systems, Inc. | Dual cache for independent prefetch and execution units |
US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
EP0159712B1 (en) * | 1984-04-27 | 1991-01-30 | Bull HN Information Systems Inc. | Control means in a digital computer |
JPS6116350A (ja) * | 1984-07-02 | 1986-01-24 | Nec Corp | 情報処理装置のバツフア記憶装置 |
US4794524A (en) * | 1984-07-03 | 1988-12-27 | Zilog, Inc. | Pipelined single chip microprocessor having on-chip cache and on-chip memory management unit |
JP2539357B2 (ja) * | 1985-03-15 | 1996-10-02 | 株式会社日立製作所 | デ−タ処理装置 |
US5206945A (en) * | 1985-03-15 | 1993-04-27 | Hitachi, Ltd. | Single-chip pipeline processor for fetching/flushing instruction/data caches in response to first/second hit/mishit signal respectively detected in corresponding to their logical addresses |
DE3752100T2 (de) * | 1986-01-07 | 1997-12-11 | Nippon Electric Co | Befehlsvorabrufgerät mit einer Schaltung zum Prüfen der Vorhersage eines Verzweigungsbefehls vor seiner Ausführung |
EP0256134B1 (en) * | 1986-01-27 | 1991-12-18 | Fujitsu Limited | Central processing unit |
JP2554050B2 (ja) * | 1986-02-26 | 1996-11-13 | 株式会社日立製作所 | デ−タ処理方法 |
US5187782A (en) * | 1986-02-26 | 1993-02-16 | Hitachi, Ltd. | Data processing system |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
US5349672A (en) * | 1986-03-17 | 1994-09-20 | Hitachi, Ltd. | Data processor having logical address memories and purge capabilities |
JPH06100968B2 (ja) * | 1986-03-25 | 1994-12-12 | 日本電気株式会社 | 情報処理装置 |
US5237671A (en) * | 1986-05-02 | 1993-08-17 | Silicon Graphics, Inc. | Translation lookaside buffer shutdown scheme |
US4896264A (en) * | 1986-09-08 | 1990-01-23 | American Telephone And Telegraph Company | Microprocess with selective cache memory |
EP0271187B1 (en) * | 1986-10-17 | 1995-12-20 | Amdahl Corporation | Split instruction and operand cache management |
US5095424A (en) * | 1986-10-17 | 1992-03-10 | Amdahl Corporation | Computer system architecture implementing split instruction and operand cache line-pair-state management |
US5265220A (en) * | 1986-12-23 | 1993-11-23 | Nec Corporation | Address control device for effectively controlling an address storing operation even when a request is subsequently cancelled |
GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
JP3137117B2 (ja) * | 1987-03-27 | 2001-02-19 | 将容 曽和 | 高速処理計算機 |
US4991078A (en) * | 1987-09-29 | 1991-02-05 | Digital Equipment Corporation | Apparatus and method for a pipelined central processing unit in a data processing system |
JP2810043B2 (ja) * | 1987-11-13 | 1998-10-15 | 株式会社日立製作所 | データ処理装置 |
US5119483A (en) * | 1988-07-20 | 1992-06-02 | Digital Equipment Corporation | Application of state silos for recovery from memory management exceptions |
JP2858140B2 (ja) * | 1988-10-19 | 1999-02-17 | アポロ・コンピューター・インコーポレーテッド | パイプラインプロセッサ装置および方法 |
US5123097A (en) * | 1989-01-05 | 1992-06-16 | Bull Hn Information Systems Inc. | Apparatus and method for simultaneous execution of a write instruction and a succeeding read instruction in a data processing system with a store through cache strategy |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5109495A (en) * | 1989-02-03 | 1992-04-28 | Digital Equipment Corp. | Method and apparatus using a source operand list and a source operand pointer queue between the execution unit and the instruction decoding and operand processing units of a pipelined data processor |
US5167026A (en) * | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
US5781753A (en) | 1989-02-24 | 1998-07-14 | Advanced Micro Devices, Inc. | Semi-autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for speculative and out-of-order execution of complex instructions |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
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 |
US5185871A (en) * | 1989-12-26 | 1993-02-09 | International Business Machines Corporation | Coordination of out-of-sequence fetching between multiple processors using re-execution of instructions |
US5230068A (en) * | 1990-02-26 | 1993-07-20 | Nexgen Microsystems | Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence |
JP2535252B2 (ja) * | 1990-10-17 | 1996-09-18 | 三菱電機株式会社 | 並列処理装置 |
JP2532300B2 (ja) * | 1990-10-17 | 1996-09-11 | 三菱電機株式会社 | 並列処理装置における命令供給装置 |
JP2682232B2 (ja) * | 1990-11-21 | 1997-11-26 | 松下電器産業株式会社 | 浮動小数点演算処理装置 |
JPH04260929A (ja) * | 1991-01-21 | 1992-09-16 | Mitsubishi Electric Corp | データ処理装置 |
JPH0659972A (ja) * | 1992-08-05 | 1994-03-04 | Oki Electric Ind Co Ltd | メモリ制御装置 |
US5493669A (en) * | 1993-03-03 | 1996-02-20 | Motorola, Inc. | Data processor for simultaneously searching two fields of the rename buffer having first and second most recently allogated bits |
KR940022276A (ko) * | 1993-03-11 | 1994-10-20 | 오오가 노리오 | 병렬연산 처리장치 |
US5651134A (en) * | 1994-10-26 | 1997-07-22 | Ncr Corporation | Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program |
US6704923B1 (en) | 1994-12-20 | 2004-03-09 | Sun Microsystems, Inc. | System and method for pre-verification of stack usage in bytecode program loops |
US5668999A (en) * | 1994-12-20 | 1997-09-16 | Sun Microsystems, Inc. | System and method for pre-verification of stack usage in bytecode program loops |
US5748964A (en) * | 1994-12-20 | 1998-05-05 | Sun Microsystems, Inc. | Bytecode program interpreter apparatus and method with pre-verification of data type restrictions |
GB9514433D0 (en) * | 1995-07-14 | 1995-09-13 | Sgs Thomson Microelectronics | Computer instruction execution |
US5933651A (en) * | 1995-09-29 | 1999-08-03 | Matsushita Electric Works, Ltd. | Programmable controller |
US5680571A (en) * | 1995-12-28 | 1997-10-21 | Unisys Corporation | Multi-processor data processing system with multiple, separate instruction and operand second level caches |
US5919256A (en) * | 1996-03-26 | 1999-07-06 | Advanced Micro Devices, Inc. | Operand cache addressed by the instruction address for reducing latency of read instruction |
US5875201A (en) * | 1996-12-30 | 1999-02-23 | Unisys Corporation | Second level cache having instruction cache parity error control |
US5960455A (en) * | 1996-12-30 | 1999-09-28 | Unisys Corporation | Scalable cross bar type storage controller |
US6122711A (en) | 1997-01-07 | 2000-09-19 | Unisys Corporation | Method of and apparatus for store-in second level cache flush |
US5860093A (en) * | 1997-01-21 | 1999-01-12 | Unisys Corporation | Reduced instruction processor/storage controller interface |
US6112265A (en) * | 1997-04-07 | 2000-08-29 | Intel Corportion | System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command |
JP3469469B2 (ja) | 1998-07-07 | 2003-11-25 | 富士通株式会社 | 情報処理装置 |
US6212623B1 (en) | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Universal dependency vector/queue entry |
US6212622B1 (en) * | 1998-08-24 | 2001-04-03 | Advanced Micro Devices, Inc. | Mechanism for load block on store address generation |
US6564315B1 (en) | 2000-01-03 | 2003-05-13 | Advanced Micro Devices, Inc. | Scheduler which discovers non-speculative nature of an instruction after issuing and reissues the instruction |
US6694424B1 (en) | 2000-01-03 | 2004-02-17 | Advanced Micro Devices, Inc. | Store load forward predictor training |
US6651161B1 (en) | 2000-01-03 | 2003-11-18 | Advanced Micro Devices, Inc. | Store load forward predictor untraining |
US6622237B1 (en) | 2000-01-03 | 2003-09-16 | Advanced Micro Devices, Inc. | Store to load forward predictor training using delta tag |
US6542984B1 (en) | 2000-01-03 | 2003-04-01 | Advanced Micro Devices, Inc. | Scheduler capable of issuing and reissuing dependency chains |
US6622235B1 (en) | 2000-01-03 | 2003-09-16 | Advanced Micro Devices, Inc. | Scheduler which retries load/store hit situations |
US7120572B1 (en) | 2000-01-06 | 2006-10-10 | Sun Microsystems, Inc. | Memory efficient program pre-execution verifier and method |
US7321964B2 (en) * | 2003-07-08 | 2008-01-22 | Advanced Micro Devices, Inc. | Store-to-load forwarding buffer using indexed lookup |
US7376817B2 (en) | 2005-08-10 | 2008-05-20 | P.A. Semi, Inc. | Partial load/store forward prediction |
US9128725B2 (en) | 2012-05-04 | 2015-09-08 | Apple Inc. | Load-store dependency predictor content management |
US9600289B2 (en) | 2012-05-30 | 2017-03-21 | Apple Inc. | Load-store dependency predictor PC hashing |
US9710268B2 (en) | 2014-04-29 | 2017-07-18 | Apple Inc. | Reducing latency for pointer chasing loads |
US10514925B1 (en) | 2016-01-28 | 2019-12-24 | Apple Inc. | Load speculation recovery |
US10437595B1 (en) | 2016-03-15 | 2019-10-08 | Apple Inc. | Load/store dependency predictor optimization for replayed loads |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3840861A (en) * | 1972-10-30 | 1974-10-08 | Amdahl Corp | Data processing system having an instruction pipeline for concurrently processing a plurality of instructions |
JPS5110746A (ko) * | 1974-07-17 | 1976-01-28 | Hitachi Ltd | |
GB1506972A (en) * | 1976-02-06 | 1978-04-12 | Int Computers Ltd | Data processing systems |
US4156906A (en) * | 1977-11-22 | 1979-05-29 | Honeywell Information Systems Inc. | Buffer store including control apparatus which facilitates the concurrent processing of a plurality of commands |
US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
JPS5730042A (en) * | 1980-07-30 | 1982-02-18 | Nippon Telegr & Teleph Corp <Ntt> | Control system for instruction executing sequence |
JPS57109084A (en) * | 1980-12-26 | 1982-07-07 | Fujitsu Ltd | Schedule system for instruction in parallel computer having plural operating devices |
-
1982
- 1982-10-13 US US06/434,122 patent/US4521851A/en not_active Expired - Lifetime
-
1983
- 1983-09-07 AU AU18792/83A patent/AU555456B2/en not_active Ceased
- 1983-09-07 CA CA000436212A patent/CA1200318A/en not_active Expired
- 1983-10-07 FI FI833637A patent/FI80532C/fi not_active IP Right Cessation
- 1983-10-10 KR KR1019830004796A patent/KR880002660B1/ko not_active IP Right Cessation
- 1983-10-11 ES ES526393A patent/ES8406756A1/es not_active Expired
- 1983-10-13 DE DE8383306189T patent/DE3377678D1/de not_active Expired
- 1983-10-13 EP EP83306189A patent/EP0106667B1/en not_active Expired
- 1983-10-13 JP JP58190000A patent/JPS5991546A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0106667B1 (en) | 1988-08-10 |
CA1200318A (en) | 1986-02-04 |
DE3377678D1 (en) | 1988-09-15 |
ES526393A0 (es) | 1984-08-01 |
FI833637A0 (fi) | 1983-10-07 |
EP0106667A2 (en) | 1984-04-25 |
FI80532B (fi) | 1990-02-28 |
ES8406756A1 (es) | 1984-08-01 |
AU1879283A (en) | 1984-04-19 |
AU555456B2 (en) | 1986-09-25 |
JPS5991546A (ja) | 1984-05-26 |
EP0106667A3 (en) | 1986-04-16 |
FI833637A (fi) | 1984-04-14 |
FI80532C (fi) | 1990-06-11 |
KR840006528A (ko) | 1984-11-30 |
US4521851A (en) | 1985-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR880002660B1 (ko) | 중앙 처리장치 | |
US4530052A (en) | Apparatus and method for a data processing unit sharing a plurality of operating systems | |
US4597044A (en) | Apparatus and method for providing a composite descriptor in a data processing system | |
JP3542021B2 (ja) | セット予測によりセット連想キャッシュの遅延を少なくする方法及び装置 | |
US4991080A (en) | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions | |
EP0380859B1 (en) | Method of preprocessing multiple instructions | |
US5113515A (en) | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer | |
JP3542020B2 (ja) | 複数予測分岐命令にわたる命令フェッチの位置合わせ命令キャッシュ処理を実行するプロセッサ装置およびプロセッサ制御方法 | |
US4594660A (en) | Collector | |
EP1095330B1 (en) | Register renaming in which moves are accomplished by swapping rename tags | |
EP0628184B1 (en) | Cpu having pipelined instruction unit and effective address calculation unit with retained virtual address capability | |
US4942520A (en) | Method and apparatus for indexing, accessing and updating a memory | |
EP0381447B1 (en) | Method and apparatus for controlling the conversion of virtual to physical memory addresses in a digital computer system | |
EP0180725B1 (en) | Instruction prefetch operation for branch instructions | |
JPS6341093B2 (ko) | ||
JPH02206837A (ja) | パイプライン方式のコンピューターシステムにおける色々な個数の潜在的メモリーアクセス矛盾を解決する方法及び装置 | |
JPS62106545A (ja) | 分岐命令の結果予測装置 | |
KR19990072271A (ko) | 고성능의추론적인오정렬로드연산 | |
US6301654B1 (en) | System and method for permitting out-of-order execution of load and store instructions | |
EP0377436A2 (en) | Apparatus and method for increased operand availability in a data processing unit with a store through cache memory unit strategy | |
US6240503B1 (en) | Cumulative lookahead to eliminate chained dependencies | |
EP0550289A2 (en) | A mechanism to detect stores into the instruction stream | |
KR100431975B1 (ko) | 분기에의한중단이없는파이프라인방식의마이크로프로세서를위한다중명령디스패치시스템 | |
JPH09330221A (ja) | マイクロプロセッサにおける早期例外を追跡するシステム及び方法 | |
EP0107448A2 (en) | Computer with multiple operating systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
G160 | Decision to publish patent application | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 19981215 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |