KR890005352B1 - 버퍼 기억제어 시스템(buffer storage system) - Google Patents
버퍼 기억제어 시스템(buffer storage system) Download PDFInfo
- Publication number
- KR890005352B1 KR890005352B1 KR1019840007733A KR840007733A KR890005352B1 KR 890005352 B1 KR890005352 B1 KR 890005352B1 KR 1019840007733 A KR1019840007733 A KR 1019840007733A KR 840007733 A KR840007733 A KR 840007733A KR 890005352 B1 KR890005352 B1 KR 890005352B1
- Authority
- KR
- South Korea
- Prior art keywords
- store
- address
- register
- operand
- buffer
- Prior art date
Links
- 239000000872 buffer Substances 0.000 title claims description 189
- 230000015654 memory Effects 0.000 claims description 93
- 238000000034 method Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000002360 preparation method Methods 0.000 claims description 3
- 238000012423 maintenance Methods 0.000 claims 1
- 230000000737 periodic effect Effects 0.000 claims 1
- 230000008929 regeneration Effects 0.000 claims 1
- 238000011069 regeneration method Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 13
- 101000622430 Homo sapiens Vang-like protein 2 Proteins 0.000 description 4
- 102100023520 Vang-like protein 2 Human genes 0.000 description 4
- 101100150580 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) STB4 gene Proteins 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 101150110418 STB3 gene Proteins 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000012536 storage buffer Substances 0.000 description 1
- 238000013519 translation 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3812—Instruction prefetching with instruction modification, e.g. store into instruction stream
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
Landscapes
- Engineering & Computer Science (AREA)
- 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)
Abstract
내용 없음.
Description
제1도는 본 발명에 의한 데이타처리장치의 일반개통 시스템.
제2도는 종래의 기억제어 유니트(S-Unit)를 사용하여 CPU파이프라인의 동작을 설명하는 타이밍도표.
제3도는 버퍼기억장치에 대한 억세스(access) 동작을 설명하는 타이밍 도표.
제4도는 버퍼기억장치 억세스들간의 장애를 회피하기위한 종래의 방법을 설명하는 타이밍 도표.
제5도는 종래의 버퍼기억제어시스템을 나타내는 도면.
제6도는 S-Unit 파이프라인을 설명하는 타이밍 도표.
제7도는 본 발명의 실시예에 의한 버퍼기억 제어시스템을 나타내는 도면.
제8도는 제7도에 보인 버퍼기억 제어시스템의 상세회로도.
제9도는 스토아버퍼레지스터의 개략도해도.
제10도는 오퍼랜드(operand)억세스 파이프라인에 관한 개략 개통도.
제11도는 각종 제어플래그(flag)들을 설명하는 타이밍도표.
제12도는 명령인출 파이프라인에 관한 개략 개통도.
제13도는 S-Unit 파이프라인에 관한 특히, 스토아억세스가 소거되는 각종 제어 플래그들을 설명하는 타이밍 도표.
본 발명은 데이타 처리장치의 버퍼 기억제어 시스템에 관한 것으로 특히 오퍼랜드(operand)를 억세스(access)하기 위한 버퍼 기억장치와 명령을 인출(fetch)하기 위한 버퍼 기억장치를 별도로 포함하고 있는 버퍼 기억제어 시스템에 관한 것이다.
최근에 데이타 처리장치의 능력을 향상시키는 추세에 따라 그에 보조를 맞추기 위해 각종의 데이타 처리방식들을 사용하게 되었다. 이 방식들 중 하나인 파이프라인(pipe-line)방식에서는 명령실행을 위한 각각의 시퀀서(sequence)를 다수의 페이스(phase)로 나누어 각각의 페이스를 각각의 스테이숀(station)에서 실행한다. 따라서 각각의 스테이숀이 독립적으로 동작 가능하게 함으로서 다수의 명령들을 동시에 처리하는 것이 가능하였다.
종래의 버퍼 기억제어 시스템에서는 오퍼랜드 억세스 버퍼 기억장치내에 셋업(set up)된 파이프라인과 명령인출 버퍼 기억장치내에 셋업된 파이프라인이 상호 동기화되어야만 했다. 그러한 동기화를 엄격히 유지시키기 위해 고우선 순위의 여러 명령인출 싸이클들이 완료될때까지 종종 여러 오퍼랜드 억세스 싸이클들이 유휴상태(idle state)로 대기해야만 했다. 이에 대해서는 뒤에서 상세히 설명되겠지만 결국 상술한 유휴상태의 오퍼랜드 억세스 싸이클들이 삽입됨으로 인해 데이타 처리장치의 유효 동작속도가 충분히 고속이 될 수 없는 문제점이 야기된다. 그러므로, 오퍼랜드를 억세스하고 명령을 인출하기 위한 버퍼 기억장치를 분리사용함에도 불구하고 데이타 처리장치의 능력이 크게 향상될 수 없었다.
본 발명의 목적은 오퍼랜드 억세스 버퍼 기억용 파이프라인과 명령인출 버퍼 기억용 파이프라인간에 동기화가 필요없는 버퍼 기억제어시스템을 제공하는데 있다.
본 발명의 상기 목적은 소위 스토아 스루(store through)방식으로 동작되는 데이타 처리 장치에 설치되어 있는 스토아 버퍼를 통하여 오퍼랜드 억세스 버퍼 기억장치로부터 명령인출 버퍼 기억장치로 오퍼랜드 스토아 억세스 어드래스와 오퍼랜드 스토아 데이타 둘다를 궤환시켜줌으로서 달성된다.
이하 첨부된 도면을 참고로 본 발명을 설명한다. 양호한 실시예를 설명하기 전에 우선 종래의 버퍼 기억제어 시스템에 대하여 설명한다.
제1도는 본 발명에 의한 데이타 처리장치의 일반적인 개통도이다. 제1도는 데이타 처리장치 즉, 중앙처리유니트(CPU)의 요부만을 보이고 있다. CPU는 3개의 기능블록(block)과 2개의 기억 부분들로 구성된다. 3개의 기능블록들 중 첫번째 기능블록은 각 명령을 해독(decode)한다음 그에 의해 전체적으로 파이프라인을 제어하도록 동작하는 명령유니트(instruction unit : I-Unit)이고, 두번째것은 실행될 논리 및/또는 산술연산을 행하는 실행유니트(execution-unit E-Unit)이고, 그리고 세번째 것은 전술한 두개의 기억부분들, 즉 버퍼 기억장치 및/또는 주기억장치에의 억세스를 제어하도록 동작하는 기억 제어유니트(storage control unit : S-Unit)이다. 주기억 장치는 주기억 제어 유니트(main storage Control unit : MCU)를 통하여 S-Unit와 연결되나 그것은 MCU를 통함이 없이 직접 함께 연결될 수 있다. 제1도의 CPU에서 본 발명은 기억제어 유니트(S-Unit)에 주로 관계된다.
제2도는 공지의 기억제어 유니트(S-Unit)가 사용될때 CPU 파이프라인의 동작을 설명하는 타이밍도표이다. 즉, 이는 그러한 공지의 S-Unit에 의해 실행되는 기능을 설명하기 위한 것이다. 하나의 명령은 명령인출페이스(instrution fetch phase : INST FETCH)에 의해 버퍼기억장치로부터 판독된 후 6개의 페이스들A 내지F를 통하여 처리된다. 각각의 페이스는 보통 하나, 둘 또는 세개의 사이클로 분할된다. 각 싸이클에 할당된 일은 다음과 같다. I : 명령인출을 위한 어드레스 계산사이클, B1: 명령인출을 위한 버퍼 기억억세스의 사이클 1, B2: 명령인출을 위한 버퍼 기억억세스의 사이클 2, D : 명령해독사이클, R : 레지스터 판독사이클, A : 오퍼랜드 억세스를 위한 어드레스 계산사이클, B1: 오퍼랜드를 위한 버퍼 기억억세스의 사이클 1, B2: 오퍼랜드를 위한 버퍼 기억억세스의 사이클 2, E1: 연산실행 사이클 1, E2: 연산실행 사이클 2, V : 체크연산사이클, W : 기입연산사이클
제3도는 버퍼 기억에 억세스가 어떻게 행해지는가를 설명하는 타이밍 도표이다. 상부의 수평 파이프라인 줄기는 CPU파이프라인이고, 하부의 수평파이프라인 줄기는 S-Unit이다. S-Unit 파이프라인에서 명령 인출 연산과 오퍼랜드 인출연산은 각각 4싸이클로 완료된다. S-Unit 파이프라인에서 각 싸이클에 할당된 일은 다음과 같다. P : 버퍼 기억을 사용하여 우선순위를 결정하는 프라이어리티(priority) 사이클, B1: 버퍼 기억 억세스의 사이클 1, B2: 버퍼 기억 억세스의 사이클 2, R(싸이클 4)에서 : 억세스의 결과에 의해 판독 데이타를 I-Unit로 이송하는 사이클 R, (싸이클 9)에서 : 억세스의 결과에 의해 판독 데이타를 E-Unit로 전송하는 사이클, 제3도에서 알 수 있는 바와같이 버퍼 기억에로의 억세스는 보통 CPU파이프라인으로 공급되는 각 명령에 대해 2회 즉, 1싸이클과 "A"싸이클에서 작동된다. 따라서 버퍼기억억세스를 실행할시에 장애가 될 가능성이 있다. 이에 대해 아래에 분석한다.
제4도는 버퍼 기억 억세스를 실행할시에 상술한 장애를 피하는 종래의 방식을 설명하기위한 타이밍 도표를 나타낸다. 버퍼 기억 억세스들의 이러한 장애를 피하는 공지된 방법에 의하면, 연속적인 명령의 실행은 제4도에 나타낸 바와같이 매 2싸이클마다 시작되며 그에 의해 A싸이클은 I싸이클과 중복되지 않는다.
제4도의 방식에 의해 동작되는 CPU에서 만일 연속적인 명령들이 순차적으로 하나씩 하나씩 매 싸이클마다 CPU파이프라인으로 투입되면, CPU의 처리속도는 두배로 빨라질 수 있다. 그러나, 만일 연속적인 명령들이 매 싸이클마다 투입되면 A와 I싸이클들간에 전술한 장애가 발생될 가능성이 아주 높아진다. 이 경우에 I싸이클당 1회마다 두개의 명령은 인출할 수 있다하더라도 결과적으로 CPU파이프라인의 처리능력은 매 1.5싸이클당 하나의 명령밖에는 실행할 수가 없다.
그러한 환경하에 CPU의 처리능력을 향상시키기위해 예를들어 일본에서 발행되는 "NIKKEI ELECTRONICS 5-11 1981년 제264호 174 내지 200페이지"에 한 CPU가 제안된 바 있는데 이는 버퍼기억을 오퍼랜드 억세스용 버퍼기억과 명령인출용 버퍼 기억을 분리해서 별도로 구성하여 이 두개의 버퍼기억을 상호 무관하게 즉 개별적으로 동작시킬 수 있다. 그러나, 상술한 개별 버퍼 기억을 갖는 CPU에서 문제점이 발생되는데 특히 두 버퍼기억들에 대해 특별한 제어를 해야만된다는데에서 문제가 발생된다. 이는 버퍼 기억들 중 하나에 스토아된 블록(stored block)의 내용이 다른 버퍼기억에 스토아된 관력블록의 내용과 일치해야만 되기 때문이다. 여기서 블록은 통상적으로 32바이트나 64바이트단위로 분할되어 있다. 상술한 제어동작은 자신의 버퍼기억을 각각 갖고 있는 두대의 CPU로 된 멀티 CPU 시스템에서 한 버퍼기억과 다른 버퍼 기억간에서 행한 종래의 데이타 일치제어 동작과 비슷한 것이다.
제5도는 공지된 버퍼 기억제어 시스템을 나타내는 것이다. 전술한 별개의 버퍼 기억들은 오퍼랜드 억세스 버퍼 기억 2와 명령인출 버퍼 기억 5로 나타낸다. 오퍼랜드 억세스 버퍼 기억 2는 오퍼랜드 실효어드레스 레지스터(operand effective addres register : OER) 1, 오퍼랜드 워드 레지스터(operand word register : OWR) 3, 그리고 오퍼랜드 스토아 데이타 레지스터(operand store data register :OSDR) 7과 공동 작용한다. 명령인출 버퍼 기억 5는 명령실효 어드레스 레지스터(instruction effective address register : IER) 4, 명령워드 레지스터(instruction word register : IWR)6, 그리고 명령스토아 데이타 레지스터(instrustion store data register : ISDR)8과 공동 작용한다.
오퍼랜드 억세스 어드레스, 예를들어 오퍼랜드인출 어드레스가 명령유니트(I-Unit)로부터 나오면 이는 오퍼랜드 실효 어드레스 레지스터(OER) 1내에 세트된다. 결국 세트된 어드레스로서 오퍼랜드 억세스 버퍼 기억 2가 억세스되어 판독데이타가 발생된다. 이 발생된 판독데이타는 오퍼랜드 워드 레지스터(OWR)3에 세트된 다음 실행유니트(E-Unit)로 보내진다.
마찬가지로 명령인출 어드레스가 명령유니트(I-Unit)로부터 나오면 이는 명령실효 어드레스 레지스터(IER)4내에 세트된다. 결국 세트된 어드레스로서 명령인출버퍼 기억 5가 억세스되어 판독데이타가 발생된다. 이 발생된 판독데이타는 명령워드 레지스터(IWR) 6에 세트된 다음 명령유니트(I-Unit)로 복귀된다.
오퍼랜드 억세스 어드레스는 전술한 오퍼랜드 인출 어드레스나 오퍼랜드 스토아 어드레스 중 어느 하나이다. 오퍼랜드 스토아 어드레스가 I-Unit로부터 나올때 그것은 OER1과 IER4 모두에 동시에 세트된다. 이 경우에 오퍼랜드 스토아 어드레스에 의해 해당하는 블록이 버퍼 기억 2내에 뿐만아니라 버퍼 기억 5내에도 존재하는지를 판정해준다. 상기와 같은 조사는 필수적인 것이다. 왜냐하면, 명령들이 블록의 선두에 자리잡고 있다할지라도 데이타는 블록의 나머지 뒷부분에 내장될 가능성이 있고, 또한 명령데이타 자체가 또다른 명령데이타에 대한 오퍼랜드 데이타일 수 있는 가능성이 있기 때문이다. 만일 해당하는 블록이 버퍼 기억 5내에 존재할 경우, 실행유니트(E-Unit)로부터 나온 해당하는 오퍼랜드 스토아 데이타를 OSDR7 뿐만아니라 ISDR8내에 세트됨으로해서 결국 해당하는 오퍼랜드 스토아 데이타는 각 버퍼 기억들 2와 5의 해당 블록내에 기입된다. 다른 한편, 오퍼랜드 인출 또는 명령인출이 실행될 예전에 있을때, 그러나, 해당하는 어드레스가 상응하는 버퍼 기억 2 또는 5내에 존재하지 않을때에는 해당하는 블록을 전송시키기 위한 요청이 주기억장치에 인가된다. 그러면 결국 전송된 블록데이타는 상응하는 버퍼 기억 2 또는 5에 기입된다.
전술한 바와 같이, 공지의 버퍼 기억제어시스템(제5도 참조)은 CPU의 실효처리 속도를 충분히 고속으로 할 수 없으므로 심지어 오퍼랜드 억세스용 및 명령인출용 버퍼 기억들 2와 5를 각각 독립시켜 적용한다 할지라도 CPU의 능력을 높은 정도로 향상시킬 수 없는 문제점을 발생시킨다.
상술한 문제점을 제6도를 참조하여 설명한다. 제6도는 S-Unit 파이프라인을 설명하는 타이밍 도표를 나타낸다. (a) 열로부터 명백한 바와 같이 종래의 버퍼 기억제어 시스템(제5도 참조)에서는 순서 POP, B1, B2및 R에 따라 오퍼랜드(op) 스토아동작이 수행되는 동안 버퍼기억 2를 억세스키는 S-Unit 파이프라인과 순서 PIF, B1, B2및 R에 따라 명령인출(instruction fetch : IF) 동작이 수행되는 동안, 버퍼기억 5를 억세스시키는 다른 S-Unit 파이프라인이 상호 동기화되어야만 한다. 만일 오퍼랜드 및 명령인출 양자에 대한 우선권이 (a) 열에 보인 바와같이 동시에 취해진다면 버퍼기억 2와 5의 억세스는 즉시 시작한다. 그러나 만일 명령인출 버퍼 기억이 블록전송(이동입력) 요청에 보조맞추기위해 사용되는 경우 우선권 PM1는 P1F보다 보통 더 빠르기때문에 우선권 P1F를 갖는 명령인출은 예를들어 (b) 열에 보인 바와같이 마지막 우선권 PM1이 완료될때까지 3싸이클동안 대기해야만 한다. 이 경우에, 버퍼기억 2를 억세스 시키기 위한 우선권 POP는 오퍼랜드 억세스와 명령인출 사이에 동기화를 보장하도록 유휴 오퍼랜드 싸이클들(괄호속의 POP)동안 대기해야만 한다. 따라서 공지의 CPU의 처리속도는 충분히 향상될 수 없다.
본 발명의 버퍼 기억제어 시스템에 의하면, 상술한 동기화는 필요없다. 왜냐하면 스토아 버퍼 레지스터내에 어드레스와 데이타 양자를 순간적으로 유지시킴으로써 버퍼 기억제어 시스템내로 명령인출 버퍼 기억에 대한 오퍼랜드스토아 정보를 궤환시켜줄 수 있는 수단이 설비되어 있기 때문이다. 스토아 버퍼 레지스터는 통상적으로 스토아 스루 방식으로 동작되는 CPU에 자체 내장되어 있다. 그러므로, 본 발명은 그러한 CPU, 즉 적어도 스토아 버퍼레지스터를 자체 내장하고 있는 CPU를 사용하는 것이 좋다. 공지된 바와같이 스토아 스루방식에 의하면 오퍼랜드 스토아 어드레스와 오퍼랜드 스토아 데이타는 둘다 오퍼랜드스토아 레지스터들에 입력됨과 동시에 스토아 데이타 레지스터에도 입력되어 한순간 그속에 유지된다. 그때 해당되는 어드레스와 데이타는 또한 통상 저속으로 동작되지만 비교적 큰 용량을갖는 주기억장치에도 전송된다.
제7도는 본 발명의 일실시예에 의한 버퍼 기억제어 시스템을 나타낸다. 제7도 이후의 도면들에서는 전술한 도면에서와 동일 부분에 대해서는 동일번호나 기호로 나타낸다. 번호 9와 10은 전술한 스토아 버퍼 레지스터를 나타낸다. 즉, 스토아 버퍼 레지스터는 스토아 어드레스 레지스터들(store address register : STAR) 9와 스토아 데이타 레지스터들(store data register : STDR) 10으로 구성되어 있다.
이 경우에 오퍼랜드 억세스 어드레스 즉, 오퍼랜드 스토아 어드레스는 제5도의 공지의 시스템에서와 같이 IER 4에 세트되지 않고 단지 오퍼랜드 실효 어드레스 레지스터(OER) 1에만 세트된다. 그다음 그것은 해당 스토아 어드레스가 오퍼랜드 억세스 버퍼 기억 2내에 존재하는지의 여부가 판단된다. 만일 존재한다면, 오퍼랜드 스토아 데이타 레지스터(OSDR) 7내에 세트된 해당 오퍼랜드 스토아 데이타는 버퍼 기억 2에 기입된다(상술한 판단은 뒤에서 좀더 상세히 설명될 것이다). 그와 동시에, 오퍼랜드 스토아 어드레스는 OER1으로부터 스토아 어드레스 레지스터(STAR) 9중 하나에 입력되어 그내에 세트된다. 다른한편, 오퍼랜드 스토아 데이타는 스토아 데이타 버퍼 레지스터(STDR) 10중 해당하는 것에 세트되며, 또한 바이트 표식(후술됨)은 바이트 표식 레지스터들(byte mark register : BMR)중 상응하는 것에 세트된다. 그후, 주기억장치내로의 기입요청이 발생된다.
스토아 어드레스 버퍼 레지스터들(STAR) 9중 하나에 세트되는 오퍼랜드 스토아 어드레스는 본 발명의 특징인 궤환 수단에 의해 명령실효어드레스 레지스터(IER) 4로 궤환된다. 그다음 그것은 이후 설명되는 식으로 해당하는 어드레스가 명령인출 버퍼 기억 5내에 존재하는가를 판단한다. 만일 존재하면, STDR 10중 하나에 세트된 오퍼랜드 스토아 데이타는 상술한 궤환 수단을 사용하여 명령스토아 데이타 레지스터(ISDR) 8에 입력되며, 그다음 오퍼랜드 스토아 데이타는 명령인출 버퍼 기억 5내에 기입된다. 궤환수단은 어드레스 버스라인(bus line)LA와 데이타 버스라인 LD로서 특별히 실현될 수 있으므로 복잡한 하드웨어가 필요없다.
제7도에 관한 상술한 설명으로부터 명백한 바와 같이 오퍼랜드 스토아 억세스는 제5도의 공지의 시스템에서 행해야만 되는 바와같은 오퍼랜드 억세스 파이프라인과 명령인출 파이프라인간의 동기화를행할 필요없이 궤환수단을 이용하여 처리될 수 있다. 이는 스토아 스루 방식에 의해 스토아 버퍼 레지스터들 9와 10내에 필연적으로 세트되는 동일한 어드레스와 데이타를 이용함으로서 오퍼랜드 억세스 어드레스와 오퍼랜드 데이타가 버퍼 기억 5로 궤환될 수 있기 때문이다. 또한, S-Unit 파이프 라인과 CPU 파이프라인(제3도 참조)는 비동기적으로 행할 수 있다.
제8도는 제7도에 보인 버퍼 기억제어 시스템의 상세회로도이다. 이 도면에서 오퍼랜드 억세스 어드레스와 명령인출 어드레스는 명령유니트(I-Unit)로부터 나와 오퍼랜드 실효 어드레스 레지스터(OER) 1과 명령실효 어드레스 레지스터(IER) 4에 각각 세트된다. 그와 동시에 오퍼랜드 억세스 어드레스는 오퍼랜드 어드레스 변환버퍼(operand address conversion buffer : OP TLB) 11과 오퍼랜드 억세스 버퍼 기억 태그(operand access buffer storahe tag : OP BS TAG) 13 둘다에 인가된다. 또한 그와 동시에 명령인출 어드레스는 명령 어드레스 변환 버퍼(instruction address conversion buffer : IF TLB) 12와 명령인출 버퍼 기억 태그(instruction fetch buffer storage tag : IF BS TAG) 14 둘다에 역시 입력된다. 버퍼(OP TLB) 11에서 논리 어드레스(logical address)는 고속으로 실 어드레스(real address)로 변환된다. 이는 버퍼(IF TLB)12에 대해서 진(true)이며, 즉 TLB는 공지의 용어로서 "우선 변환 참조 버퍼(Translation Looi-aside Buffer)"의 축어이다.
버퍼(OP TLB)11로부터의 그렇게 변환된 실어드레스에 의해, 태그(OP BS TAG) 13이 억세스된다. 이는 버퍼(IF TLB) 12와 태그(IF BS TAG) 14에 대해 진이다. 각 태그들(BS TAG) 13과 14는 해당하는 버퍼 기억장치들(2, 5)의 블록 어드레스들을 유지시킨다.
버퍼들(TLB) 11과 12로부터 판독되는 논리 어드레스들은 그들이 제각기 주어진 어드레스들과 일치하는지를 판단하도록 비교회로(comparing circyut : CMP) 15와 16에 각각 입력된다. 그와 동시에 해당되는 실어드레스들은 비교기들 17 및 18의 각 우측입력에 각각 입력된다. 다른 한편, 태그 13 및 14에 유지되는 블록 어드레스들은 비교기들 17 및 18의 각 좌측 입력에 입력된다. 따라서 실어드레스들과 블록어드레스들은 16개의 비교기들 17과 18에서 서로 비교된다. 일치신호가 비교기 17들 중 하나로부터 발생되면 일치신호는 오퍼랜드 억세스 버퍼 기억 2로부터 출력데이타를 얻도록 정렬 및 선택회로 19를 트리거한다. 그렇게 얻어진 데이타는 오퍼랜드 데이타로서 실행유니트(E-Unit)로 전송된다.
동일한 방식으로 일치신호가 비교기들 18중 하나로 부터 발생되면 일치신호는 명령인출 버퍼 기억 5로부터 출력데이타를 얻도록 정렬 및 선택회로 20을 트리거한다. 그렇게 얻어진 데이타는 명령데이타로서 명령유니트(I-Unit)로 전송된다. 각 회로들 19와 20은 64바이트 데이타들 중 어느 8바이트 데이타가 선택되야 하는지를 판단하도록 동작한다.
오퍼랜드 실 레지스터(operand real register : ORR) 21은 만일 비교기회로 15가 전술한 일치신호의 발생을 검출할 경우 버퍼(OP TLB) 11의 프라이머리부(primary part) 또는 알터네이트부(alternate part) 중 하나로 부터 발생된 실 어드레스를 수신한다. 해당하는 블록이 버퍼 기억 2에 존재하지 않을때, 그렇게 입수된 실어드레스는 MCU 어드레스 레지스터(MAR) 23내에 주기억장치에의 해당요구 어드레스를 세트시키는데에 사용된다. 동일한 방식으로 명령 실레지스터(instruction real register : IRR) 22는 만일 비교회로 16이 전술한 일치신호의 발생을 검출할 경우, 버퍼(IF TLB)12의 플라이머리부 또는 알터네이트부 중 하나로부터 발생되는 실어드레스를 수신한다. 해당하는 블록이 버퍼 기억 5에 존재하지 않으면 그렇게 입수된 실 어드레스는 MCU 어드레스 레지스터(MAR) 23내에 주기억장치에의 해당되는 요구 어드레스를 세트시키는데에 사용된다. 상술한 프라이머리부와 알터네이트부는 투웨이(two-way)억세스를 수행하는데 유용하다. 투웨이 억세스는 억세스 효율면에서 단지 프라이머리부만을 사용하는 원웨이 억세스보다 상당히 편리하다.
한편, 오퍼랜드 스토아 어드레스는 오퍼랜드 실효 어드레스 레지스터(OER) 1내에 세트되며 다른 한편, 스토아 되야할 블록이 오퍼랜드 스토아버퍼기억 2내에 존재하는지를 판단하도록 전술한 바와같이 버퍼(OP TLB) 11과 또한 테그(OP BS TAG) 13을 억세스시키는데에 사용된다. 이때에 버퍼(OP TLB) 11로부터의 실어드레스는 주기억장치용 스토아 어드레스로서 레지스터(ORR) 21을 통하여 레지스터들(STAR) 9중 하나에 유지된다.
오퍼랜드 스토아 데이타(STORE DATA)는 실행 유니트(E-Unit)로부터 나와 스토아 데이타 레지스터들(STDR) 10 중 하나에 세트된다.
이 레지스터는 스토아-정렬회로(store-alignment cirtcuit) 24에 의해 선택된다. 스토아데이타는 오퍼랜드 스토아 데이타 레지스터(OSDR) 7로부터 스토아-정렬회로 24와 단자 "B"를 통하여 오퍼랜드 억세스 버퍼 기억 2로 기입된다.
제9도는 스토아 버퍼 레지스터의 개략도이다. 스토아 버퍼 레지스터(store buffer register : STB)는 4부분 즉, STB1 내지 STB4로 셋업된다. 4부분 각각은 플래그 레지스터(flag register : FR), 스토아 어드레스 레지스터(STAR) 9, 스토아 데이타 레지스터(STDR) 10, 및 바이트 표식 레지스터(BMR)로 구성된다. 각 STAR은 스토아 버퍼 레지스터 억세스용 실어드레스(STB어드레스)를 주기억장치에 기억하며, 각 STDR은 8바이트 데이타(STB데이타)를 기억하며, 각 BMR은 STDR내에 데이타의 바이트 위치를 나타내는 바이트표식(BM)을 기억한다. 이 BM은 8바이트 이내의 데이타 부분 기입이 주기억장치에 대해 행해질때 이용될 수 있다. 심볼 "V"는 어드레스가 STAR내에 들어왔다는 것을 나타내는 유효 플래그(valid flag)를 나타낸다. 심볼 "R"은 데이타가 STDR내에 들어왔다는 것을 나타내는 준비플래그(ready flag)를 나타낸다. 플래그들 V와 R은 각 플래그 레지스터(FR)내에 기억된다.
4개의 스토아 버퍼 레지스터들 STB1 내지 STB4는 매번 스토아억세스가 발생될때마다 순차 주기적으로 사용된다. 마지막으로 제 4 스토아 버퍼 레지스터 즉, STB4가 사용될때 제1 스토아 버퍼 레지스터 즉, STB1은 스토아 버퍼 레지스터들 STB1 내지 STB3의 내용들이 주기억장치로 이미 배출이 행해져 있는 상태에 있을 경우, 다시 사용된다.
제8도를 다시보면 선택회로 25(제8(b)도)는 레지스터들(STAR) 9중 하나를 선택하며, 선택된 레지스터내에 기억된 실어드레스는 단자 "A"와 버스라인 LA를 통하여 명령실효 어드레스 레지스터(IER)4 (제8(c)도)내에 세트되며, 그에 의해 어드레스용 명령인출 버퍼 기억장치 5로 전술한 궤환이 완료된다. 그와동시에 태그(IF BS TAG) 14는 해당하는 블록(BLOCK)이 버퍼 기억장치 5내에 존재하는가를 판단하도록 선택된 실어드레스에 의해 억세스된다.
이 경우에 IER4에 세트될 어드레스는 실어드레스이고 그러므로 IER4의 어드레스는 버퍼(IF TLB) 12를 참고함이 없이 비교기들 18로 직접 입력된다.
만일 해당되는 스토아 어드레스가 명령인출 버퍼 기억장치 5내에 존재할 경우, 레지스터들(STDR) 10 중 해당하는 것에 들어있는 해당되는 스토아데이타는 선택회로로(SELECT) 26 (제8(d)도)에 의해 선택된다.
해당하는 바이트표식(BM)에 의해 결국 선택된 스토아 데이타는 단자 "C"와 버스라인 LD를 통하여 명령 스토아 데이타 레지스터(ISDR)8 (제7도)에 입력된 다음, 명령인출버퍼 기억장치 5에 기입됨으로서 데이타용 명령인출 버퍼 기억장치 5로의 전술한 궤환이 완료된다.
이때에 스토아 어드레스가 선택회로 25를 통해 MCU 어드레스 레지스터(MAR) 23 (제8(b)도)으로 보내져 그내에 세트된다. 그다음 그렇게 세트된 스토아 어드레스는 주기억장치로 보내진다. 이때에 스토아 버퍼 레지스터들(STDR) 10중 해당하는 것내에 있는 해당 스토아 데이타는 기입데이타로서 레지스터(MD1) 27 (제8(d)도)내의 MCC 데이타를 통해 주기억장치로 보내진다.
오퍼랜드 스토아 어드레스가 STAR9 내에 세트된 후 그러나, 명령인출 버퍼 기억장치 5로의 궤환이 완료되기 전에 명령인출 어드레스가 명령실효 어드레스 레지스터(IER) 4내에 세트됐을 경우와 상술한 명령인출 어드레스가 IER4내에 세트된 스토아 어드레스와 동일한 경우에 명령 실레지스터(IRR) 22 (제8(d)도)내에 세트된 내보낸 명령인출의 해당하는 실 어드레스는 비교기들 28 (제8(b)도)에 의해 레지스터들(STAR) 9내에 세트된 실어드레스들과 비교된다. 여기서 주목해야되는 것은 ORR21로부터 각 비교기 28로 입력되는 출력은 본 발명의 본질과 무관하다는 것이다. 만일, 비교기들 28중 일치신호를 발생시킬 경우 넌드게이트 29와 같은 논리게이트는 그 일치신호에 의해 개방되어 재시행신호를 발생시킨다.
이 재시행 신호는 다음과 같은 이유 때문에 필요하다. 왜냐하면 상술한 경우에 스토아 어드레스와 그에 해당하는 스토아 데이타는 주기억장치에 이미 보내졌지만 그러나 동일한 스토아 어드레스와 스토아 데이타가 아직 명령인출 버퍼 기억장치 5로 궤환되지 않았기 때문이다. 따라서, 이때에 주기억장치에 해당하는 블록의 데이타는 버퍼 기억장치 5내의 동일 블록의 데이타와 다르다.
그러므로, 이때에 만일 동일한 명령인출 어드레스가 버퍼 기억장치 5로 보내지면 버퍼 기억장치 5로부터의 판독데이타는 주기억장치의 것과 필연적으로 다를것이다. 따라서 그러한 경우에 데이타의 불일치를 피하도록 재시행 수단으로부터 발생된 재시행신호에 의해 재시행동작이 수행되어야만 한다. 재시행 신호는 재시행 동작을 명령하도록 명령유니트(I-Unit)를 보내질 수 있다. 딴 방법으로는 재시행 신호를 사용하여 세이브 레지스터(save register : SR)내에 순간적으로 남아있는 장해 어드레스(conflicting address)를 사용함으로서 버퍼 레지스터 5에 대한 명령인출 동작을 다시 실행할 수 있다. 그럼에도 불구하고 재시행 동작은 장해 어드레스가 STAR9로 부터 완전히 제거될때까지 반복되어야만 한다.
재시행 동작은 또한 다음 경우에도 필요하다. 4개의 레지스터들(STAR) 9가 모두 사용되면 새로 내보낸 오퍼랜드 스토아 어드레스를 세팅시키기 위한 능력이 없어진다. 그러한 경우에 비교기들 28에 의한 전술한 어드레스 비교가 더이상 수행될 수 없다. 따라서 일련의 오퍼랜드 스토아 어드레스들과 일련의 명령인출 어드레스들간의 순서성을 보증하는 것이 불가능하다. 통상적으로 순서성을 보증하기 위해 레지스터들(STAR)9가 다음 오퍼랜드 스토아 어드레스를 받아들일 수 있을때까지 명령인출 억세스에 대한 공정이 정지되어야만 한다. 즉, 넌드게이트 29로 입력되는 "STAR FULL"신호는 정지되므로 명령인출 억세스를 실행하기 위한 재시행 신호는 정지된다.
본 발명의다른 형의 버퍼 기억제어 시스템에 의하면 궤환수단은 제7도에 보인 바와같은 버스라인들 LA와 LD를 사용함이 없이 실현된다. 이 버퍼 기억제어 시스템에서 궤환동작은 다음 설명과 같이 등가적으로 수행될 수 있다. 제1단계는 명령인출 버퍼 기억장치 5내에 기억된 해당되는 구데이타를 소거하기 위한 것이다. 이는 태그(IF BS TAG)14내의 해당 블록 어드레스의 무효에 의해 즉시 수행된다. 제2단계는 주기억장치로부터 해당하는 데이타를 전송시켜 소거된 데이타를 교체하기 위한 것이다. 상술한 아이디어는 스토아-스루방식에 의하면 주기억장치가 버퍼 기억장치내에 기억될 데이타의 복제를 항상 갖고있다는 사실에서 나온 것이다.
제7도, 제8도 및 제9도의 버퍼 기억제어 시스템을 참조하여 설명되는 다음 설명으로부터 그에대한 제어동작을 더욱 명확히 이해할 수 있다. 제10도는 오퍼랜드 억세스 파이프라인에 관련된 개략 블록도이다. 파이프라인은 싸이클들 P, B1, B2, R/P, S1, S2, …… 를 따라 동작한다. 싸이클들 S1과 S2는 특히 스토아 싸이클을 나타내지만 B1과 B2와 동일하다. 제1 유통 즉, P→B1→B2→R에서, 버퍼(OP TLB) 11과 태그(OP BS TAG)13으로의 전술한 억세스가 행해져 전술한 판단을 하여 준다. 제2 유통 즉, P→S1→S2에서, 오퍼랜드 스토아 데이타는 E-Unit로부터 나와 버퍼 기억장치 2내에 기입된다. 싸이클 R에서 오퍼랜드 스토아 어드레스가 ORR 21로부터 나와 레지스터들(STAR)9 중 하나에 세트될때 유효플래그 V는 유효 플래그 레지스터들 32내에 세트된다. 이 레지스터는 제9도의 플래그 레지스터 FR과 동일하다. 싸이클 S2에서 오퍼랜드 스토아 데이타가 스토아-정렬회로 24로 부터 나와 레지스터들(STDR)10중 하나에 세트될때 준비플래그 R은 준비플래그 레지스터들 34내에 세트되며, 이는 제9도의 플래그레지스터들(FR)과 동일하다. STAR9와 STDR10에 각각 세트된 오퍼랜드 스토아 어드레스와 오퍼랜드 스토아 데이타는 싸이클 S2의 말단에서 MAR23과 MDI27로 이송된 다음 주기억장치(MS)로 결국 공급된다.
2비트 스토아 버퍼 출력포인트(Out-Pointer) 31은 선택기(SEL)들 39와 41을 통해 차례로 열거되는데 여기서 레지스터들(STAR) 9 중 하나와 레지스터들(STDR) 10 중 하나가 순서적으로 선택된다. 출력포인터 31은 증분기(incrementer : INC)와 디코오더(decoder : DEC)를 갖는 2비트 레지스터로 구성된다. 따라서, 4단 "0", "1", "10" 및 "11"이 주기적으로 얻어진다. 한편, 2비트 스토아 버퍼 입력포인터(In-Pointer) 33은 레지스터들(STAR) 9 중 하나가 유효플래그 레지스터 32와 레지스터들(HFR)과 함께 선택되도록 순서적으로 열거한다. 스토아 버퍼 지연 포인터(delay pointer) 36은 래치(latch) 레지스터 35를 경유하여 싸이클 B2로부터 싸이클 S1으로 입력 포인터 33의 값을 이동시키도록 동작한다. 그러므로 STAR9 중 선택된 것에 상응하는 레지스터들(STDR) 10 중 하나가 선택될 수 있다. 오퍼랜드 스토아 어드레스와 오퍼랜드 스토아 어드레스 데이타는 각각 선택기 40과 42를 통하여 IER4와 ISRD8로 궤환된다. 선택기 40과 41은 스토아 버퍼 포인터 37에 의해 제어된다.
버퍼 기억제어 시스템에서 주기억장치(MS)에 대한 데이타 전송 타이밍과 명령인출 버퍼 기억 장치 5에 대한 스토아 억세스 타이밍의 시퀀스 즉, 순서를 결정하는 것이 어렵다. 이는 왜냐하면 MS로 데이타를 전송하는 것은 데이타 버스(도시안됨)가 다른 데이타에 의해 점유되지 않을때만 가능하기 때문이며, 또한 버퍼 기억장치로의 스토아 억세스는 명령인출측의 파이프라인이 바쁘지 않을때만 가능하기 때문이다. 더우기 심지어 스토아 억세스가 명령인출 파이프 라인으로 일단 들어갔다할지라도 스토아 억세스는 진행 요청의 상태(status)에 의해 진행될 수 없으므로 결국, 재시동 동작이 일단 허용된 스토아 억세스에 대해 필요하게 되는 경우가 있을 수 있다.
상술한 문제는 적어도 유지플래그(hold flag : H플래그), 유출(issue)플래그 및 식별(identi fication)비트를 사용하여 극복될 수 있다.
유지플래그는 버퍼기억장치 5로 궤환될 스토아 데이타가 스토아 데이타 레지스터(STDR)10내에 유지됨을 나타낸다. 유출플래그는 버퍼 기억장치 5에 대한 스토아 억세스가 명령인출 파이프라인으로 유출되는 것을 나타낸다. 식별 비트는 스토아 데이타 레지스터들 10 중 하나로부터 스토아 데이타가 명령인출 파이프라인내로 인도된다.
제11도는 여러가지 제어플래그들을 설명하는 타이밍 도표들을 나타낸다. H 플래그는 유효플래그(valid flag : V 플래그)가 세트되는 동일한 싸이클 R내에 세트된다. H플래그는 레지스터 HFR(제10도)로부터 주어지며 명령 인출 버퍼 스토레이지에 대한 오퍼랜드 스토아 억세스가 현재 계류중임을 나타낸다. 데이타를 스토아 버퍼 레지스터(9, 10)으로부터 명령인출(IF) 파이프라인으로 인도하기 위한 타이밍은 전술한 스토아 버퍼 포인터(pointer) 37(제10도)에 의해 결정된다. 만일 H플래그가 포인터 37에 의해 특정된 스토아 데이타 레지스터들 10 중 하나에 관하여 세트될 경우 요청 P(IF STORE LOW)는 명령인출 파이프라인내로 삽입된다. 요청 P(IF ST LOW)가 우선권을 취할때 명령인출 파이프라인은 그에 대해 동작한다. 이에 반응하여 상응하는 I플래그가 세트된다. 이는 오퍼랜드 스토아 억세스가 명령인출 버퍼 기억장치 5에 대해 작동한다는 것을 뜻한다.
제12도는 명령인출 파이프라인과 관련된 개략 블록도표이다. 싸이클 P로부터 싸이클 B1으로 요청(IF ST LOW)의 전이중 플래그는 I플래그 레지스터들 51에 상응하여 세트되며, 여기서 레지스터는 스토아 버퍼 포인터 37에 의해 특정된다. 그와 동시에 식별비트(ID)는 식별 레지스터(BI-ID)56내에 세트된다. ID는 스토아 버퍼 레지스터(9, 10)의 부분들로 부터 스토아 억세스가 발생되는 것을 나타낸다. 이 식별비트(ID)는 식별 레지스터들 즉, B2-ID57-R-1D58-SI-ID59를 통하여 이동된다.
싸이클 R에서 만일 스토아될 상응하는 어드레스 블록이 버퍼 기억장치내에 존재하지 않고 있다는 것이 밝혀질 경우 H플래그는 싸이클 R의 단부에서 리세트된다. 리세트될 H플래그는 레지스터(R-ID) 58의 내용에 의해 디코어더(DEC)를 통하여 특정된다. 반대로 만일 상응하는 어드레스 블록이 그내에 존재할 경우 요청 P(IF STORE HIGH)는 제11도의 하부열내에 보인 바와같이 발생된다. 그다음 기억을 위해 상응하는 기입동작이 시작된다. 이 경우에 식별 비트 ID는 래지스터(SI-ID) 59에 의해 나타나며 여기서 ID는 스토아 데이타 레지스터들 10 중 상응하는 것을 특정한다. 그다음 리세트될 상응하는 H플래그는 디코어더 55로부터의 출력에 의해 특정된다. H플래그의 세트상태 동안 H플래그는 스토아 데이타가 버퍼 기억 장치 5로 여전히 궤환되지 않고 있음을 나타낸다. 따라서 H플래그는 명령 실레지스터(IRR) 22내에 드레스와 STAR9내에 유지된 실스토아 어드레스 양자를 비교하도록 비교기 28을 명령하기 위한 제어신호로서 이용된다. H플래그의 리세트 상태동안 각 비교기 28로 부터의 결과는 무시된다.
제13도는 특히 스토아 억세스가 소거된 경우 S-Unit 파이프라인에 관계되는 여러 제어플래그들을 설명하는 타이밍 도표들을 나타낸다. 명령인출 파이프라인내로 삽입되는 전술한 스토아 억세스동안 만일 진행요청 P(IF ST LOW)하에 어드레스 블록이 버퍼 기억장치 5내에 존재할 경우 스토아 요청에 대한 실 기입 동작이 곧 시작되야만 한다. 이때에 만일 요청 P(IF ST HIGH)가 고치 우선권을 취할 수 있을 경우 문제가 없다. 그러나, 만일 요청 P(IF ST HIGH)가 1싸이클 지연될 경우, 뒤이은 요청P(IF SF LOW)가 싸이클 R내로 삽입된다. 그러므로 요청 P(IF ST HIGH)에 사용될 정보는 의도하지 않은 바와같이 재기입되므로 뒤따르는 요청은 싸이클 B2의 단부에서 소거되어야만 한다. 이러한 상황하에서 사전에 활성된 스토아 억세스가 재생되는 식으로 제어되야만 한다. 제13도를 참조하면, 이와 관련된 경우가 싸이클 B1과 B2에서 발생한다. 이 경우에 제12도를 다시 참조하면, 레지스터들 BI-1D 56과 B2-ID 57의 출력들은 디코오더들 52와 53을 통하여 각각의 H플래그들을 리세트하는데 사용된다. 여기서 I플래그는 리세트되지만 H플래그는 한 세트 상태에 그대로 유지된다. 포인터 37은 스토아 억세스가 명령인출 파이프 라인으로 유도될 때마다 하나씩 증분되는 한편 포인터 37은 세트된 H플래그와 리세트된 I플래그를 갖는 스토아 버퍼 레지스터들(9, 10)이 존재하는 것이 밝혀질때 명령인출 파이프라인으로 다시 요청 P(IF ST LOW)를 삽입시키도록 제어된다. 이 경우에 포인터 37은 0→1→2→3→0→1→…과 같은 포인트를 주기적으로 발생시킨다. 따라서, 파이프라인으로 요청 P(IF ST LOW)의 상실한 재삽입이 수행될때 스토아 버퍼 레지스터(9, 10)내로 데이타를 삽입시키는 순서는 명령인출 버퍼 기억 태그(IF BS TAG)14로의 궤환통로의 순서와 일치된다. 그러므로, 이 경우에 태그 14에 대한 전술한 무효는 버퍼 기억장치 5와 주기억장치 사이에서 일치하는 데이타를 설정해주도록 수행되기위한 것이다. 스토아 버퍼레지스터들의 4부분들을 무효시키도록 명령하기 위해 4부분들 각각은 명령인출 기억실패 플래그(AB FLAG)를 갖고 있다. 레지스터들 ABFR(제12도)내의 AB플래그는 상응하는 I플래그가 리세트됨과 동시에 새트된다. 따라스, 버퍼 기억장치 5에 대한 오퍼랜드 스토아 억세스는 동작시에 모순없이 취급될 수 있다.
상술한 바와 같이 본 발명에 의하면 버퍼 기억 제어시스템은 오퍼랜드 억세스 파이프라인과 명령인출 파이프라인을 비동기적으로 가동시킬 수 있는 것이 실현되므로 결국 CPU는 동기 상태로 작동되는 버퍼 기억 제어시스템을 갖는 CPU의 동작속도보다 더 고속으로 동작될 수 있다.
Claims (12)
- 파이프라인 처리기를 셋업하기 위해 명령유니트(I-Unit), 실행 유니트(E-Unit) 및 주기억장치와 함께 동작 가능하게 연결되는 버퍼 기억제어 시스템을 구성하되, 상기 명령유니트로부터 주어진 오펴랜드 스토아 어드레스 또는 오퍼랜드 인출 어드레스에 의해 억세스되며 또한 그로부터 억세스된 오퍼랜드 데이타를 상기 실행 유니트로 이송시키는 오퍼랜드 억세스 버퍼 기억장치(2)와, 상기 실행유니트로부터 제공되는 명령인출 어드레스에 의해 억세스되며, 억세스된 명령 데이타가 상기 명령유니트로 복귀되는 명령인출 버퍼 기억장치(5)와, 스토아 스루 방법을 행하도록 상기 시행 유니트로부터 보내온 오퍼랜드 스토아 어드레스와 상기 오퍼랜드 스토아 데이타를 각각 등록한 다음 등록된 데이타를 상기 주기억장치로 각각 이송시키며 또한 오퍼랜드 스토아 동작 기간동안 작동되는 스토아어드레스 레지스터(9)와 스토아 데이타 레지스터(10)들로 구성된 정보 레지스터를 포함하는 버퍼 기억 제어 시스템이 있어서, 상기 버퍼 기억제어 시스템은 상기 스토아 어드레스 레지스터와 상기스토아 데이타 레지스터내에 각각에 등록되는 오퍼랜드 스토아 어드레스와 오퍼랜드 스토아 데이타를 상기 명령인출 버퍼 기억장치로 입력시키기 위한 궤환수단을 포함하고있는 것이 특징인 버퍼 기억 제어 시스템.
- 제1항에서, 상기 궤환수단은 상기 명령인출 버퍼 기억장치와 상기 스토아 어드레스 레지스터 및 스토아 데이타 레지스터 양자 사이에 각각 연결되는 어드레스 버스라인(LA)와 데이타 버스라인(Ln)으로 실현되는 것이 특징인 버퍼 기억제어 시스템.
- 제2항에서, 상기 오퍼랜드 억세스 버퍼 기억장치는 상기 주기억장치로부터 주어진 블록데이타 또는 상기 오퍼랜드 스토아 데이타를 임시 유지하기 위해 오퍼랜드 스토아 데이타 레지스터(7)를 갖고 있고, 상기 명령 인출 버퍼 기억장치는 명령 실효 어드레스 레지스터(4)와 명령 스토아 데이타 레지스터(8)를 갖고 있고, 상기 명령 실효 어드레스 레지스터는 상기 어드레스 버스라인을 통하여 이송되는 상기 오퍼랜드 스토아 어드레스와 상기 명령인출 어드레스를 선택적으로 임시 유지시켜 주며, 그리고 상기 명령 스토아 데이타 레지스터는 상기 데이타 버스라인을 통하여 이송되는 상기 오퍼랜드 스토아 데이타와 상기 블록데이타를 선택적으로 임시 유지시켜주는 것이 특징인 버퍼 기억제어 시스템.
- 제3항에서, 상기 버퍼 기억제어 시스템은 재시행 수단을 더 포함하되, 상기 재시행 수단은 오퍼랜드 스토아 어드레스가 상기 스토아 어드레스 레지스터내에 세트된 후, 그러나 상기 궤환수단에 의해 명령인출 버퍼 기억장치로 궤환이 완료되기 전에 명령인출 어드레스가 상기 명령 실효 어드레스내에 세트될때 관련된 명령인출 동작의 재시행을 명령하기 위한 재시행 신호를 발생시키도록 동작하며 또한 상술한 명령인출 어드레스는 상기 스토아 어드레스 레지스터들 중 어느 하나에 세트된 오퍼랜드 스토아 어드레스와 동일한 것이 특징인 버퍼 기억제어 시스템.
- 제4항에서, 상기 시행 수단은 논리게이트(29)와 비교기(28)들로 구성하되, 상기 논리 게이트는 비교기들의 출력들과 각각 연결되는 다수의 입력들과 상기 재시행 신호를 발생시키기 위한 출력을 갖고 있으며, 상기 비교기들은 그들의 제1비교입력들에서 상기 스토아 어드레스 레지스터들로부터의 출력들을 각각 수신하며 또한 그들의 제2비교 입력들에서 상기 명령실효 어드레스 레지스터로 부터의 출력들을 수신하는 것이 특징인 버퍼 기억제어 시스템.
- 제5항에서, 상기 논리게이트의 상기 입력들 중 하나는 상기 모든 스토아 어드레스 레지스터들이 각 오퍼랜드 스토아 어드레스들의 전부인 것을 나타내는 신호를 수신하여 그에 의해 상기 재시생 신호를 상기 논리게이트의 출력으로부터 발생시키는 것이 특징인 버퍼 기억제어 시스템.
- 제6항에서, 상기 버퍼 기억제어 시스템은 상기 정보 레지스터로서 상기 재시동 동작을 수행하기 위한 관련된 명령 인출 어드레스를 축적시키는 세이브 레지스터(SR)를 그내에 더 갖고있는 것이 특징인 버퍼 기억제어 시스템.
- 제6항에서, 상기 버퍼 기억제어 시스템은 제어 레지스터들에 의해 제어되는것이 특징인 버퍼 기억제어 시스템.
- 제8항에서, VR플래그 레지스터(FR)와 BM레지스터(BMR)들은 상기 제어 레지스터들로서 이용되며, 상기 스토아 어드레스 레지스터와 그에 상응하는 상기스토아 데이타 레지스터 양자는 스토아 버퍼 레지스터(STB)를 구성하며, 결국 다수의 스토아 버퍼 레지스터들은 상기 스토아 어드레스와 스토아 데이타 레지스터쌍을 각각 구성하며, 각 스토아 버퍼 레지스터들은 VR플래그 레지스터와 BM 레지스터를 갖고 있고, 각 VR플래그 레지스터들은 그 내에 V플래그 즉, 유효플래그와 R플래그 즉, 준비플래그를 세트하며, 각 BM레지스터는 그내에 BM, 즉 바이트 표식을 세트하며, 상기 각 V플래그는 오퍼랜드 스토아 어드레스가 상기 스토아 어드레스 레지스터들 중 상응하는 것내에 기억됐음을 나타내며, 상기 각 R플래그는 오퍼랜드 스토아 데이타가 상기 스토아 데이타 레지스터들 중 상응하느 것내에 기억됐음을 나타내며 그리고 상기 각 바이트 표식은 상기 스토아 데이타 레지스터내에 오퍼랜드 스토아 데이타의 바이트 위치를 나타내는 것이 특징인 버퍼 기억제어 시스템.
- 제9항에서, 상기 버퍼 기억제어 시스템은 상기 제어레지스터들로서 H플래그 레지스터(HFR)들과 I플래그 레지스터(51)들을 더 포함하며, H플래그 레지스터들 각각은 그 내에 H플래그 즉, 상기 명령인출 버퍼 기억장치로 궤환돌 오퍼랜드 스토아 데이타가 상기 스토아 데이타 레지스터들 중 하나에 유지되어 있음을 나타내는 유지플래그를 기억하며, I플래그 레지스터들 각각은 그 내에 I플래그 즉, 명령인출 버퍼 기억장치에 대한 오퍼랜드 스토아 억세스가 명령인출 파이프 라인으로 유출시켰음을 나타내는 유출 플래그를 기억하는 것이 특징인 버퍼 기억 제어 시스템.
- 제10항에서, 상기 버퍼 기억제어 시스템은 식별 비트 레지스터들(56, 57, 58, 59)을 상기 제어 레지스터들로서 더 포함하며, 상기 식별 비트는 스토아 데이타 레지스터들 중 어느 하나로 부터 오퍼랜드 스토아 데이타가 상기 명령인출 파이프라인으로 유도시키기 위한 것임을 나타내는 것이 특징인 버퍼 기억제어 시스템.
- 제11항에서, 상기 정보레지스터들과 제어레지스터들은 하나씩 주기적으로 선택되며, 주기적인 선택은 상기 식별 비트의 전진과 동기되는 포인터(31, 33, 37)들에 의해 성취되며, 각 포인터들은 주기적인 포인팅 어드레스들을 순서적으로 발생시키도록 그내에 증분기(INC)를 포함하는 것이 특징인 버퍼 기억제어 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP58231104A JPS60123936A (ja) | 1983-12-07 | 1983-12-07 | バッフア記憶制御方式 |
JP58-231104 | 1983-12-07 | ||
JP?58-231104 | 1983-12-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR850004821A KR850004821A (ko) | 1985-07-27 |
KR890005352B1 true KR890005352B1 (ko) | 1989-12-23 |
Family
ID=16918358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019840007733A KR890005352B1 (ko) | 1983-12-07 | 1984-12-07 | 버퍼 기억제어 시스템(buffer storage system) |
Country Status (9)
Country | Link |
---|---|
US (1) | US4713752A (ko) |
EP (1) | EP0144249B1 (ko) |
JP (1) | JPS60123936A (ko) |
KR (1) | KR890005352B1 (ko) |
AU (1) | AU553039B2 (ko) |
BR (1) | BR8406290A (ko) |
CA (1) | CA1220284A (ko) |
DE (1) | DE3478881D1 (ko) |
ES (1) | ES538327A0 (ko) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6184753A (ja) * | 1984-10-01 | 1986-04-30 | Hitachi Ltd | バツフアメモリ |
JP2539357B2 (ja) * | 1985-03-15 | 1996-10-02 | 株式会社日立製作所 | デ−タ処理装置 |
US5349672A (en) * | 1986-03-17 | 1994-09-20 | Hitachi, Ltd. | Data processor having logical address memories and purge capabilities |
JPS6314275A (ja) * | 1986-07-04 | 1988-01-21 | Nec Corp | ベクトル演算プロセツサのスカラデ−タ演算方式 |
US4888689A (en) * | 1986-10-17 | 1989-12-19 | Amdahl Corporation | Apparatus and method for improving cache access throughput in pipelined processors |
EP0271187B1 (en) * | 1986-10-17 | 1995-12-20 | Amdahl Corporation | Split instruction and operand cache management |
JPS63240650A (ja) * | 1987-03-28 | 1988-10-06 | Toshiba Corp | キヤツシユメモリ装置 |
IT1215539B (it) * | 1987-06-03 | 1990-02-14 | Honeywell Inf Systems | Memoria tampone trasparente. |
GB8817911D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
US5226169A (en) * | 1988-12-30 | 1993-07-06 | International Business Machines Corp. | System for execution of storage-immediate and storage-storage instructions within cache buffer storage |
EP0389175A3 (en) * | 1989-03-15 | 1992-11-19 | Fujitsu Limited | Data prefetch system |
EP0442116A3 (en) * | 1990-02-13 | 1993-03-03 | Hewlett-Packard Company | Pipeline method and apparatus |
EP0475209A3 (en) * | 1990-09-14 | 1993-09-29 | Siemens Aktiengesellschaft | Arrangement for the determination of instructions modified by the cpu of a processor |
JPH05324469A (ja) * | 1992-04-02 | 1993-12-07 | Nec Corp | キャッシュ・メモリを内蔵したマイクロプロセッサ |
US6378062B1 (en) * | 1994-01-04 | 2002-04-23 | Intel Corporation | Method and apparatus for performing a store operation |
US6651074B1 (en) * | 1999-12-20 | 2003-11-18 | Emc Corporation | Method and apparatus for storage and retrieval of very large databases using a direct pipe |
JP4128551B2 (ja) * | 2004-07-29 | 2008-07-30 | 富士通株式会社 | 情報処理装置及びストア命令制御方法 |
GB2426082B (en) * | 2005-05-09 | 2007-08-15 | Sony Comp Entertainment Europe | Memory caching in data processing |
CZ305260B6 (cs) * | 2009-06-29 | 2015-07-08 | Indet Safety Systems A.S. | Plastový pinový generátor plynů a způsob jeho výroby |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4354232A (en) * | 1977-12-16 | 1982-10-12 | Honeywell Information Systems Inc. | Cache memory command buffer circuit |
JPS5687282A (en) * | 1979-12-14 | 1981-07-15 | Nec Corp | Data processor |
US4467414A (en) * | 1980-08-22 | 1984-08-21 | Nippon Electric Co., Ltd. | Cashe memory arrangement comprising a cashe buffer in combination with a pair of cache memories |
JPS5829187A (ja) * | 1981-08-14 | 1983-02-21 | Nec Corp | キヤツシユメモリ制御装置 |
JPS6022376B2 (ja) * | 1980-08-28 | 1985-06-01 | 日本電気株式会社 | キャッシュメモリ制御装置 |
JPS5835627A (ja) * | 1981-08-26 | 1983-03-02 | Toshiba Corp | メモリデ−タ先取り制御方式 |
US4551799A (en) * | 1983-02-28 | 1985-11-05 | Honeywell Information Systems Inc. | Verification of real page numbers of stack stored prefetched instructions from instruction cache |
US4551797A (en) * | 1983-08-31 | 1985-11-05 | Amdahl Corporation | Apparatus for reverse translation |
-
1983
- 1983-12-07 JP JP58231104A patent/JPS60123936A/ja active Granted
-
1984
- 1984-11-28 CA CA000468878A patent/CA1220284A/en not_active Expired
- 1984-12-04 AU AU36267/84A patent/AU553039B2/en not_active Ceased
- 1984-12-05 US US06/678,684 patent/US4713752A/en not_active Expired - Lifetime
- 1984-12-06 ES ES538327A patent/ES538327A0/es active Granted
- 1984-12-07 DE DE8484308519T patent/DE3478881D1/de not_active Expired
- 1984-12-07 EP EP84308519A patent/EP0144249B1/en not_active Expired
- 1984-12-07 KR KR1019840007733A patent/KR890005352B1/ko not_active IP Right Cessation
- 1984-12-07 BR BR8406290A patent/BR8406290A/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP0144249B1 (en) | 1989-07-05 |
KR850004821A (ko) | 1985-07-27 |
ES8602285A1 (es) | 1985-11-01 |
AU553039B2 (en) | 1986-07-03 |
BR8406290A (pt) | 1985-10-08 |
JPH0526212B2 (ko) | 1993-04-15 |
ES538327A0 (es) | 1985-11-01 |
EP0144249A2 (en) | 1985-06-12 |
JPS60123936A (ja) | 1985-07-02 |
EP0144249A3 (en) | 1987-05-20 |
US4713752A (en) | 1987-12-15 |
DE3478881D1 (en) | 1989-08-10 |
AU3626784A (en) | 1985-06-13 |
CA1220284A (en) | 1987-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR890005352B1 (ko) | 버퍼 기억제어 시스템(buffer storage system) | |
US4831520A (en) | Bus interface circuit for digital data processor | |
EP0243892B1 (en) | System for guaranteeing the logical integrity of data | |
US4725947A (en) | Data processor with a branch target instruction storage | |
US4760520A (en) | Data processor capable of executing instructions under prediction | |
EP0690371B1 (en) | Fetch and store buffer for supporting out of order execution in a data processing system | |
US4851991A (en) | Central processor unit for digital data processing system including write buffer management mechanism | |
US5129075A (en) | Data processor with on-chip logical addressing and off-chip physical addressing | |
US4831581A (en) | Central processor unit for digital data processing system including cache management mechanism | |
US5091845A (en) | System for controlling the storage of information in a cache memory | |
US5226170A (en) | Interface between processor and special instruction processor in digital data processing system | |
KR930011686B1 (ko) | 짧은 명령실행시간과 작은 점유면적을 갖는 가변 워드길이 명령시스템용 데이타 처리장치 | |
KR900007135B1 (ko) | 우선 선택회로를 갖는 바퍼 스토리지 제어 시스템 | |
EP0159712B1 (en) | Control means in a digital computer | |
AU606083B2 (en) | Interface between processor and special instruction processor in digital data processing system | |
EP1050807A1 (en) | Memory access in a computer memory | |
US5276853A (en) | Cache system | |
EP0600583B1 (en) | Vector processing device | |
EP0292188B1 (en) | Cache system | |
US5276892A (en) | Destination control logic for arithmetic and logic unit for digital data processor | |
EP1278121B1 (en) | Microprocessor maintaining memory consistency | |
US5349672A (en) | Data processor having logical address memories and purge capabilities | |
JPS6149250A (ja) | バツフア記憶制御方式 | |
KR960029986A (ko) | 데이타처리장치 및 캐쉬메모리제어방법 | |
CA1305557C (en) | Control signal generation circuit for arithmetic and logic unit for digital processor |
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: 20001214 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |