KR100346561B1 - 명령프리페치회로 - Google Patents

명령프리페치회로 Download PDF

Info

Publication number
KR100346561B1
KR100346561B1 KR1019950034373A KR19950034373A KR100346561B1 KR 100346561 B1 KR100346561 B1 KR 100346561B1 KR 1019950034373 A KR1019950034373 A KR 1019950034373A KR 19950034373 A KR19950034373 A KR 19950034373A KR 100346561 B1 KR100346561 B1 KR 100346561B1
Authority
KR
South Korea
Prior art keywords
address
instruction
prefetch
branch
command
Prior art date
Application number
KR1019950034373A
Other languages
English (en)
Other versions
KR960015238A (ko
Inventor
마끼카즈히꼬
Original Assignee
오끼 덴끼 고오교 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 오끼 덴끼 고오교 가부시끼가이샤 filed Critical 오끼 덴끼 고오교 가부시끼가이샤
Publication of KR960015238A publication Critical patent/KR960015238A/ko
Application granted granted Critical
Publication of KR100346561B1 publication Critical patent/KR100346561B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 정보처리시스템 등에 있어서 처리를 고속화하기 위하여 이용되는 명령프리페취회로 및 캐쉬장치에 관한 것이다.
명령 어드레스와 프리 페취 어드레스가 일치해서 불일치로 변화했을 때만, 어드레스 생성부에 인크리 먼트의 정지를 선택시켜 선택 신호를 송출하는 선택 신호 생성수단을 설치하고, 어드레스 생성부는 선택신호를 입력한 경우, 명령 어드레스를 프리페취 어드레스 로써 송출하는 구성으로써 하고 있기 때문에, 명령이 분기 명령의 경우에서도 구별하지 않고 프리페취를 계속한다.
이때문에 프리 페취한 명령을 효율좋게 연산 장치로 공급할 수 있다.
또한, 선행 바꿔쓰기형 캐쉬장치에 적용해도 새로움을 계속하기 때문에, 캐쉬 히트율이 높게되고, 성능이 향상된다.
프리 페취한 명령이 무조건 분기 명령에 있어서도, 무조건 분기 명령인 것을 검출하는 수단과, 그 분기선 어드레스를 추출하는 수단을 설치하고, 더욱 그 분기선 어드레스에서 프리페취를 행하는 구성으로 하고 있기 때문에, 무조건 분기 명령이 프리 페취되어도, 프리 페취 모드에서 벗어나지 않고, 인크리먼트한 프리 페취 동작을 한다.
따라서 효율 명령 공급을 실행할 수 있다.

Description

명령 프리페치 회로
본 발명은 정보처리시스템 등에 있어서 처리를 고속화하기 위하여 이용되는 명령프리페치회로에 관한 것이다.
제 2 도는, 종래의 명령 프리페치 회로를 나타내는 구성 블럭도이다.
이 명령 프리페치 회로는, 마이크로 컴퓨터등의 연산 장치등에 설치되어, 해당 연산 장치에서 다음에 필요한 명령 데이타 D를 미리 판독하고, 명령 실행속도를 조속하게 하는 것이다.
또한, 제 2 도의 회로는, 캐쉬장치에도 적응되는 경우에도 있다.
이 경우, 예를들면, CPU에서 발생되는 명령 어드레스 보다 선행하여 미스히트시의 명령을 바꿔쓰기를 한다.
즉, 명령 데이타D를 미리 판독하고, 캐쉬장치의 동작을 빠르게하게 된다.
제2도의 명령 프리페치 회로는, 도시되어 있지 않은 연산장치(도시되지 않음)에서의 페치 어드레스(이하, FA라고 한다)를 입력하고, 프리페치 어드레스를 생성하는 어드레스 생성부(10)과, 그 어드레스 생성부(10)의 출력측에 접속되어, 명령을 어드레스에 대응시켜 격납하고 있는 메모리(20)과, 동일한 모양으로 어드레스 생성부(10)의 출력측에 접속되어, 연산장치에 출력하는 데이타(D)가 유효한지 무효한지를 나타내는 신호 Vaild를 해당 연산장치에 출력하는 판정신호 생성부(30)을 구비하고 있다.
또한, 메모리(20)의 출력측에는 메모리(20)에서 불러낸 데이타(D)를 유지하고 연산장치에 출력하는 데이타 송출부인 데이타 레지스터(40)이 접속되어 있다.
데이타 레지스터(40)의 출력측에는 프리디코더(prDEC)(51)이 접속되고, 프리디코더(51)의 출력측은 플립플롭(62)를 통해 2입력 OR게이트(52) 한쪽의 입력단자에 접속되어 있다.
OR게이트 (52)의 다른쪽 입력단자에는, CPU의 제어하에 리세트신호 RST가 선택적으로 입력된다. 또한, 이 명령 프리페치회로에 신호Vaild를 인버터(53)을 개재하여 입력하는 클럭, 동기소망의 리세트 세트 플립플롭(이하 RS-FF라고한다)(54)가 설치되고, RS-FF(54)에 리세트 단자에는 OR게이트(52)에서의 리세트 신호 R이 입력되고, RS-FF(54)는 그 리세트 신호 R에 의해서 리세트되는 구성이다.
RS-FF(54)의 출력(SEL0)이 어드레스 생성부(10)에 접속되어 있다.
어드레스 생성부(10)은, FA를 한쪽의 입력단자에 입력하는 셀렉터(11)과, 셀렉터(11)의 출력측에 접속된 프리페치 어드레스 레지스터(PFA)(12)와 이레지스터(12)의 출력을 입력하는 인크리먼트(13)을 구비하고 있다.
인크리먼트(13)은, 레지스터(12)를 유지하고 있는 어드레스에 1 를 가산한 것이며, 인크리먼트(13)의 출력은 셀렉터(11)의 다른쪽의 입력단자에 접속되어 있다.
셀렉터(11)은, RS-FF(54)의 출력신호 (SEL0)에 의해, FA 또는 인크리먼트(13)의 출력을 선택하여 레지스터(12)에 공급하는 구성이다.
결국, RS-FF(54)의 출력신호(SEL0)는, 레지스터(12)의 로드선택신호로 되어 있다.
레지스터(12)는, 셀렉터(11)의 출력하는 어드레스를 로드하고, 로드한 어드레스를 프리페치 어드레스로써 메모리(20)에 부여되는 접속으로 되어 있다.
판정신호 생성부(30)은, 태그레지스터(TAG)(31)과 매쳐(MAT)(32)를 구비하고 있다.
태그레지스터(31)는 어드레스생성부(10)중의 레지스터(12)의 출력을 유지하고, 매쳐(32)에 출력하는 구성이다.
태그레지스터(31)의 출력되는 어드레스가 일치하던가, FA와 일치하면, 매쳐(32)및 AND 게이트(60)의 일치를 검출하고, 일치하지 않을 때 신호Vaild를 "0", 일치하고 있을 때 "1"로 하는 구성으로 되어 있다.
신호 Vaild는 매쳐(32)출력과 플립플롭(62)를 통해 출력하는 프리디코더(51)의 결합으로 생성되어 AND 게이트(60)을 개재하여 CPU로 송출된다.
제3도는, 제2도의 동작을 나타내는 타임 챠트이며, 이 도를 참조하면서, 제2도의 명령 프리페치회로의 동작을 설명한다.
제3도에는, FA와 레지스터(12)를 로드하고 있는 프리페치 어드레스와, 레지스터(40)의 송출데이타와, 각 신호Vaild, SEL0, RST로 나타내고 있다.
먼저 리세트시에는, 신호RST가 "1"이며, 레지스터(12)의 로드선택신호SEL0이 "0"으로 리세트된다.
이 단계에서는, 레지스터(40)은 유효데이타를 송출하고 있지 않다.
다음의 스태이지에서는 신호RST가 "0"으로 되고, 동시에 레지스터(12)에는 FA가 얻어진다.
제1도, 신호SEL0이 "1" 로 되면 이 회로는 프리페치 모드로써 동작하고, 이 사이 레지스터(12)는 인크리먼트한 어드레스를 페치하여 계속한다.
메모리(20)에서는 레지스터(12)를 출력하는 어드레스에 대응한 데이타(D)를 레지스터(40)을 게재하여 출력한다.
여기에서, 레지스터(12)를 송출하는 어드레스(2)가 분기 명령인 경우, 프리 디크더(51)로, 분기 명령인 것이 레지스터(40)의 송출데이타중의 (2)에서 검출되고, 프리페치가 중지된다.
이후, FA에 분기선의 어드레스A가 나타나고, 레지스터(12)에 얻어져 새롭게 프리페치가 개시된다.
[발명이 해결하려고 하는 과제]
따라서, 종래의 명령 프리페치회로에서는, 다음과 같은 과제가 있었다.
프리디코더(51)에서 검출한 명령이, 무조건 분기 명령이라면, 모르되, 조건분기 명령의 경우에도, 프리페치를 한번 중지한다.
그때문에, 이 조건분기 명령이 설립하지 않아도 프리페치를 한번 정지하게 되고, 낭비되는 시간을 발생하고, 연산장치나 캐쉬장치에 있어서 처리성능을 저하시키고 있었다.
[과제를 해결하기위한 수단]
제1의 발명에 의한 명령 프리페치 회로는, 상기 과제를 해결하기 위하여, 연산장치에서 사용하는 명령을 미리 어드레스로 대응시켜 격납하는 메모리와, 상기 연상장치에서 입력된 제1의 명령 어드레스를 인크리먼트하고 프리페치 어드레스를 생성하는 어드레스 생성부와, 상기 프리페치 어드레스에 대응하는 상기 명령을 상기 메모리에서 판독하고 상기 연산장치로 송출하는 데이타 송출부와, 상기 제1의 명령 어드레스의 후에 입력된 제2의 명령 어드레스와 상기 프리페치 어드레스간의 일치 불일치를 검출하고, 해당 검출결과가 일치의 경우에 상기 데이타 송출부의 송출하는 명령이 유효하며 불일치의 경우에는 무효인 것을 나타내는 판정신호를, 상기 연산 장치에 제공하는 판정 신호 생성부와, 상기 판정신호가 일치에서 불일치로 변화했을 때만, 상기 어드레스 생성부가 상기 제2의 명령 어드레스를, 상기 제1의 명령 어드레스의 인크리먼트함에 의한 어드레스보다 새로운 프리페치 어드레스로써 선택하게 하는 선택신호를 상기 어드레스 생성부에 송출하는 선택신호 생성수단으로 구성된다.
상기 제2의 발명에 의한 명령 프리페치 회로는 연산장치에서 사용하는 명령을 미리 어드레스로 대응시켜 격납하는 메모리와, 상기 연상장치에서 입력된 제1의명령 어드레스를 인크리먼트하고 프리페치 어드레스를 생성하는 어드레스 생성부와, 상기 프리페치 어드레스에 대응하는 상기 명령을 상기 메모리에서 판독하고 상기 연산장치로 송출하는 데이타 송출부와, 상기 제1의 명령 어드레스의 후에 입력된 제2의 명령 어드레스와 상기 프리페치 어드레스간의 일치 불일치를 검출하고, 해당 검출결과가 일치의 경우에 상기 데이타 송출부의 송출하는 명령이 유효하며 불일치의 경우에는 무효인 것을 나타내는 판정신호를, 상기 연산 장치에 제공하는 판정 신호 생성부와, 상기 데이타 송출부의 송출하는 명령이 무조건 분기 명령인 것을 검출하는 수단과, 상기 무조건 분기 명령에 있어서 분기선 어드레스를 해당 무조건 분기 명령에서 추출하는 수단을 설치하고, 상기 어드레스 생성부는, 상기 데이타 송출부의 송출하는 명령이 무조건 분기 명령일 때, 상기 분기선 어드레스를 새롭게 상기 프리페치 어드레스로써 송출하는 구성으로 한다.
제3의 발명에 의한 명령 프리페치 회로는 연산장치에서 사용하는 명령을 미리 어드레스로 대응시켜 격납하는 메모리와, 상기 연상장치에서 입력된 제1의 명령 어드레스를 인크리먼트하고 프리페치 어드레스를 생성하는 어드레스 생성부와, 상기 프리페치 어드레스에 대응하는 상기 명령을 상기 메모리에서 판독하고 상기 연산장치로 송출하는 데이타 송출부와, 상기 제1의 명령 어드레스의 후에 입력된 제2의 명령 어드레스와 상기 프리페치 어드레스간의 일치 불일치를 검출하고, 해당 검출결과가 일치의 경우에 상기 데이타 송출부의 송출하는 명령이 유효하며 불일치의 경우에는 무효인 것을 나타내는 판정신호를, 상기 연산 장치에 제공하는 판정 신호 생성부와, 상기 데이타 송출부의 송출하는 명령이 조건 분기 명령인 것을 검출하는수단과, 상기 조건 분기 명령에 있어서 분기선 어드레스를 해당 조건 분기 명령에서 추출하는 수단과, 상기 조건 분기가 실제로 행해지는지 어떤지를 예측하는 예측수단과, 상기 예측에 근거하여 상기 제1의 명령 어드레스를 인크리먼트한 어드레스 또는 상기 분기선 어드레스를 선택하는 선택수단과, 상기 예측이 빗나갔는지 어떤지를 나타내는 신호에 근거하여 상기 선택수단에 의해 선택된 어드레스중의 하나 또는 상기 연산 장치에서 입력되어 있는 제3의 명령 어드레스를 상기 어드레스 생성부에 프리페치 어드레스로써 출력시키는 수단을 포함하여 구성된다.
제4의 발명에 의한 명령 프리페치 회로는, 제3의 발명의 명령 프리페치 회로에 있어서, 상기 예측수단을, 상기 조건 분기 명령의 명령 필드중의 분기 예측비트를 추출하고, 그것을 예측값으로 하는 수단으로 하고 있다.
제5의 발명에 의한 명령 프리페치 회로는 제 3 발명의 명령 프리페치회로에 있어서, 상기 예측수단을 랜덤값을 예측값으로 하는 수단으로 하고 있다.
제6의 발명에 의한 명령 프리페치 회로는, 제3의 발명의 명령 프리페치 회로에 있어서, 상기 예측수단을 조건 분기명령에 있어서 과거의 분기이력을 격납하는 테이블을 이용하고, 해당 분기 이력을 참조하여 예측값을 정하는 구성을 하고 있다.
제1의 발명에 의하면, 이상과 같이 명령 프리페치회로를 구성했기 때문에, 메모리는 연산 장치에서 사용하는 명령을 미리 어드레스에 대응시켜서 격납하고, 어드레스 생성부가 연산 장치에서 입력된 제1의 명령 어드레스를 인크리먼트하여 프리페치 어드레스를 생성한다.
데이타 송출부는, 프리페치 어드레스에 대응하는 상기 명령을 메모리에서 판독하고, 연산 장치로 송출한다.
한편, 판정신호 생성부는, 제2의 명령 어드레스와 프리페치 어드레스사이의 일치 불일치를 검출하여 판정신호를 연산장치로 공급한다.
그 결과, 연산 장치가 다음에 필요로하는 명령이 상기 페치 어드레스보다도 선행하여 부여된다.
여기에서 어드레스 생성부는, 명령 어드레스와 프리페치 어드레스가 일치에서 불일치로 변화 했을때만 선택신호에 의해서 상기 인크리먼트의 정지를 선택하고, 상기 선택신호시 입력되어 있는 제2의 명령 어드레스를 프리페치 어드레스로써 송출한다.
제2의 발명에 의하면, 제1의 발명에 기재의 데이타 송출부의 송출하는 명령이 무조건 분기 명령인 것이 검출되고, 또한, 그 무조건 분기 명령에 있어서 분기선 어드레스가 추출된다.
어드레스 생성부는, 데이타 송출부의 송출하는 명령이 무조건 분기 명령일 때, 그 분기선 어드레스를 새로운 프리페치 어드레스로써 송출한다.
제3의 발명에 따르면, 데이타 송출부의 송출하는 명령이 조건 분기 명령인 것을 검출됨과 동시에 그 조건 분기 명령에 있어서 분기선 어드레스가 추출된다. 조건 분기가 실제로 행해지는지 어떤지의 예측이 행해지고, 예측에 근거하여, 어드레스 생성부의 출력하는 제1의 명령 어드레스를 인크리먼트한 어드레스 또는 분기선 어드레스가 선택수단에 의해 선택된다.
그리고, 예측이 빗나갔는지 어떤지를 나타내는 신호에 근거하고, 선택된 어드레스중의 하나인지 또는 그때 입력되어 있는 제3의 명령 어드레스가 프리페치 어드레스로써 출력된다.
제4의 발명에 의하면, 조건분기가 실제로 행해지는지 어떤지를 예측하는 수단은, 명령 필드중의 분기 예측 비트를 추출하고, 그것을 예측값으로 한다.
제5의 발명에 의하면, 제3의 발명에 있어서 조건 분기가 실제로 행해지는지 어떤지를 예측하는 수단은, 랜덤값을 예측값으로 한다.
제6의 발명에 의하면, 제3의 발명에 있어서 조건 분기가 실제로 행해지는지 어떤지를 예측하는 수단은 조건분기 명령에 있어서 과거의 분기 이력을 격납하는 테이블에서 해당 분기 이력을 참조하고 예측값으로 한다.
[실 시 예]
[제1의 실시예]
제1도는, 본발명의 제1의 실시예를 나타낸 명령 프리페치 회로의 구성 블럭도이며, 종래의 제2도와 공통하는 요소에는 공통의 부호가 부여되어 있다.
본 실시예의 명령 프리페치 회로는, 도시하지 않은 연산장치에 접속되어 그 연산 장치에서 다음에 필요로하는 명령을 프리페치하는 회로이며, 선행 바꿔쓰기형의 캐쉬장치로써도 적용된다.
제1도의 회로는, 제2도와 동일한 모양으로, 도시되지 않은 연산장치에서의 FA를 입력하고, 그것을 인크리먼트하여 프리페치 어드레스를 생성하는 어드레스 생성부(20)과, 어드레스 생성부(10)의 출력측에 접속되고, 연산장치에서 사용하는 명령을 어드레스에 대응시켜 격납하고 있는 메모리(20)과, 어드레스 생성부(10)의 출력측에 접속되어 연산장치에 출력하는 데이타(D)가 유효한지 무효한지를 나타내는 신호 Vaild를 해당 연산장치에 출력하는 판정신호 생성부(30)과, 메모리(20)의 출력측에 접속되어 메모리(20)에서 판독된 데이타(D)를 유지하는 데이타 레지스터(DATA)(40)를 구비하고 있다.
본실시예의 명령 프리페치회로는, 종래회로에 비교하여 프리디코더를 제거하고, 대신에, 선택신호 생성수단(60)을 설치하고 있다.
선택신호 생성수단(60)은, 신호Vaild가 유효에서 무효로 했을 때에는 어드레스 생성부(10)의 로드하는 어드레스를 FA에 바꿔어쓰는 신호SELI를 생성하는 것이다.
어드레스 생성부(10)은, FA를 한쪽의 입력단자에 입력하는 셀렉터와, 셀럭터의 출력측에 접속된 프리페치 어드레스 레지스터(PEA)(12)와, 레지스터(12)의 출력을 입력하는 인크리먼트(13)을 구비하고 있다.
인크리먼트(13)은, 레지스터(12)를 유지하고 있는 어드레스에 (1)을 가산하는 것으로, 인크리먼트(13)의 출력은 셀렉터(11)의 다른 쪽의 입력단자에 접속되어 있다.
셀렉터(11)은, 신호 SELI에 의해, FA 또는 인크리먼트(13)의 출력을 선택하여 레지스터(12)로 공급하는 구성이다.
판정신호 생성부(30)은, 제2도와 동일한 모양으로, 태그레지스터(31)과, 매쳐(32)를 구비하고 있다.
태그레지스터(31)은, 어드레스 생성부(10)중의 레지스터(12)의 출력을 유지하고 마쳐(32)로 출력하는 구성이다.
마쳐 (32)는 태그 레지스터(31)의 출력과 FA의 일치를 검출하고, 일치하지 않을 때 신호 Vaild를 "0", 일치하고 있을 때"1" 로 하는 구성으로 되고 있다.
선택신호 생성수단(60)은, 신호 Vaild를 인버터(61)를 게재하여 입력하는 RS-FF(62)와, 신호 Vaild를 직접 입력하는 데이타 지연형 플립플롭(이하, D-FF로 한다)(63)를 구비하고 있다. RS-FF(62)는 리세트 혹은 세트의 모드를 설정하는 것으로, 리세트신호 RST가 리세트단자 R에 입력되는 구성이다. D-FF(63)은 신호 Vaild의 상태를 래치하는 것으로, D-FF(63)의 출력단자는 2입력의 AND게이트(64)의 한쪽의 입력단자에 접속되어 있다.
AND게이트 (64)의 다른쪽의 입력단자에는 신호 Vaild의 반전 신호가 입력되고, 그 AND게이트(64)의 출력신호는 반전되어, 2입력의 AND게이트 (65)의 한쪽의 입력단자에 입력되어 있다.
또한, RS-FF(62)의 출력단자 (SELI)는 AND게이트 (65)의 다른쪽의 입력단자에 접속되어 있다.
AND게이트 (65)가 신호를 셀렉터(11)로 공급하는 구성으로 되고 있다.
제4도는, 제1도의 동작을 나타낸 타임 챠트이다.
제4도에는, FA와 레지스터(12)를 로드하고 있는 어드레스와, 레지스터(40)의 송출 데이타와, 각 신호 Vaild, SEL0,RST등이나 나타내게 되고 있다.
이 도를 참조하고, 제1도의 명령 프리페치 회로의 동작을 설명한다.
리세트시에는 신호 RST가"1"이며, AND게이트(65)의 출력신호(SELI)가 "0"으로 리세트 된다.
이 단계에서는, 레지스터(40)은, 유효 데이타를 송출하지 않는다.
다음의 스테이지에서는, 신호 RST가 "0"으로 되고, 동시에 레지스터(12)에는 FA가 받아들여진다.
한번, 신호 SEL0이 "1"로 되면, 이 회로는, 프리페치 모드로써 동작하고, 이 사이 레지스터(12)를 인크리먼트한 어드레스를 페치하여 계속한다.
메모리(20)에서는 레지스터(12)의 출력하는 어드레스에 대응한 데이타 D가 레지스터(40)을 게재하여 출력된다.
여기에서 레지스터(40)을 송출하는 데이타(2)가 분기 명령인 경우, FA와 레지스터(12)를 송출하는 어드레스가 다르기 때문에 마쳐(32)는, 신호 Vaild를 무효를 나타내는 상태로 된다.
즉, 분기가 실행되면 FA의 어드레스는 A로 되고, 레지스터(12)를 유지하는 어드레스는(4)로 된다.
D-FF(63)과 AND게이트(64)에 의해, 신호 Vaild의 변화시의 1싸이클이 추출되고, 이 때만 신호 (SELI)를 강제적으로"0"으로 한다.
즉, 셀렉터(11)이 FA를 선택하고 출력한다.
데이타(2)가 분기 명령인 경우에도, 본실시예에서는 프리페치 모드를 리세트하지 않고, 계속 프리페치를 행하지 않고, 레지스터(40)은 제4도와 같이 데이타(3)(4)(5)를 송출한다.
제4도에서는 데이타(2)가 조건 분기명령의 경우를 나타내고 있으나, 비분기의 경우, 신호 Vaild가 계속되어 유효를 나타내고, 프리페치가 접속된다.
이상과 같이, 본실시예에서는, 분기 명령을 프리페치한 경우에도, 프리페치를 계속하기 때문에, 그 분기 명령이 비 분기건 분기 명령의 경우일 때에 효율 좋게 연산 장치에 명령을 제공할 수 있다.
또한, 종래 회로의 제2도와 같이, 명령을 프리디코드할 필요가 없기 때문에, 하드량이 적고 또한 지연에 관한 문제도 없다.
선행 바꿔쓰기형 장치에 적용해도 새롭게 접속할 수 있기 때문에, 캐쉬 히트율이 높게되고, 성능이 향상된다.
(제2의 실시예)
제5도는, 본발명의 제2의 실시예를 나타낸 명령 프리페치회로의 구성 블럭도이다.
이 명령 프리페치 회로에서는, 종래와 동일한 어드레스 생성부(20)과, 메모리(20)과, 판정신호 생성부(30)과, 데이타 레지스터(40)이, 제1도 및 제2도와 동일한 모양으로 접속되어 있다.
본 실시예에서는, 더욱, 데이타 레지스터(40)의 출력측에 접속되어 프리페치한 명령이 무조건 분기인 것을 검출함과 동시에 그 무조건 분기 명령의 분기선 어드레스를 추출하는 수단의 프리디코더(71)과, 무조건 분기 명령의 경우, 그 추출한 분기선 어드레스를 인크리먼트한 어드레스 대신에 프리페치 어드레스로 하는 수단인 셀렉터(72)를 설치하고 있다.
셀렉터 (72)는 , 인크리먼트(13)의 출력측과 설렉터(1)의 입력측의 사이에 접속되고, 프리디코더(71)에서의 분기선 어드레스 또는 인크리먼트(13)를 출력하는 어드레스 중 어느 하나를 선택하여 셀렉터(11)에 부여되는 구성으로 된다.
프리디코더(71)의 다른쪽의 출력인 검출신호는 2입력의 AND 게이트(73)의 한쪽의 입력단자에 입력되고, 그 AND게이트(73)의 다른쪽의 입력단자에는 신호 Vaild가 입력되고 있다.
이 AND게이트(73)의 송출하는 선택신호 SEL2에 의해 셀렉터(72)는, 선택을 전환하는 구성으로 되어 있다.
한편 셀렉터(11)에는 선택 신호 SEL1이 입력되는 구성이다.
신호 SELI을 본실시예에서는 제1의 실시예에 있어서 선택 신호 생성회로(60)을 이용하여 생성하고 있으나, 종래의 프리디코더(51)을 이용하여 생성해도 된다.
제6도는 제5도중의 프리디코더의 구성예를 나타낸 블럭도이다.
이 프리디코더(71)은, 일치회로(71-1)를 가지고 있다. 일치회로(71-1)는, 데이타 레지스터(40)를 출력하는 명령중에서 그 명령을 특징을 나타내는 예를들면 6비트를 추출하고, 미리 준비하고 있는 무조건 분기 명령의 비트 특징과의 일치를 검출하고, 검출효과의 일치신호(S71-1)를 AND게이트(73)로 출력하는 것이다.
프리디코더(71)에는, 더욱, 어드레스 추출용의 레지스터(71-2)와 비트 확장기(71-3)이 설치되어 있다.
레지스터(71-2)는, 예를들면, 데이타 레지스터(40)의 출력하는 명령의 명령 필드의 어드레스를 나타내는 예를들면 26비트를 입력하는 구성이며, 그레지스터(71-2)는, 신호(S71-1)가 일치를 나타낸 경우에 분기선 어드레스를 받아들이는 구성으로 되고 있다.
레지스터(71-2)의 출력하는 비트는 비트확장기(71-3)에서 32비트에 확장되어 셀렉터(72)에 출력된다.
제7도는, 제5도의 동작을 나타내는 타임 챠트이며, 이 도를 참조하면서, 제5도의 명령 프리페치회로의 동작을 설명한다.
이 명령 프리페치는, 프리페치 모드일 때, 도시하지 않은 연산 장치에서 fA를 입력하고, 제1의 실시예와 동일한 모양으로, 프리페치 결과의 데이타 D를 데이타레지스터(40)에서 출력한다.
여기에서, 데이타 레지스터(40)에서 출력하는 데이타D가 무조건 분기 명령일때, 프리디코더(71)이 그것을 검출하고, AND게이트(73)이 대응하는 선택신호 SEL2를 생성한다.
동시에 프리디코더71이 그것을 검출하고, AND게이트(73)이 대응하는 선택신호(SEL2)를 생성한다.
동시에, 프리디코더(71)는 그 무조건 분기 명령에 지정되는 분기선 어드레스를 추출하고 셀렉터(72)에 부여한다.
셀렉터 (72)는 선택신호 (SEL2)에 근거하여 분기선 어드레스를 선택하기 때문에, 셀렉터(11)의 출력도 분기선 어드레스로 되고, 레지스터(12)는 분기선 어드레스를 로드하고 출력한다.
그 때문에, 그 명령 프리페치회로는, 프리페치 모드에서 빠져나가지 않고 명령의 프리페치를 접속한다.
이상과 같이, 본실시예에서는, 프리디코더(71)과 셀렉터(72)를 설치하고, 무조건 분기 명령을 프리페치했을 때에도, 그 무조건 분기 명령의 분기선 어드레스에서 프리페치를 행하는 구성으로 하고 있다.
이 때, 신호 Valid의 상태는 유효인 채이며, 헛되지않게 명령 공급이 행해진다.
(제3의 실시예)
제8도는, 본 발명의 제3의 실시예의 명령 프리페치회로를 나타낸 구성 블럭도이다.
이 명령 프리페치 회로는 제1도 및 제2도의 실시예와 동일한 모양의 어드레스 생성부(10)과, 메모리(20)과, 판정신호 생성부(30)과, 데이타 레지스터(40)을 구비하고, 그것이 제1도 제2도 제5도와 동일한 모양으로 접속되고 있다.
본 실시예에서는, 데이타 레지스터(40)의 출력측에 접속되어 프리페치한 명령이 조건 분기 명령인 것을 검출함과 동시에 그 조건 분기 명령의 분기선 어드레스를 추출하는 수단인 프리디코더(81)과, 그 추출한 분기선 어드레스 또는 인크리먼트한 어드레스를 선택하는 선택수단인 셀렉터(82)를 설치하고 있다.
프리디코더(81)의 출력중 검출결과는, 2입력의 AND게이트(83)의 한쪽의 입력단자에 입력되고 있다.
AND게이트(83)의 다른쪽의 입력단자에는, 데이타 레지스터(40)의 출력중 특정의 분기 예측비트가 입력되고 있다.
AND게이트(83)의 출력은 신호 Vaild와 동시에 2입력의 AND게이트(84)에 접속되고, AND게이트(84)의 출력측은 셀렉터(82)에 접속되어 있다.
AND게이트(84)는 셀렉터(82)에 있어서 출력의 선택을 결정하는 선택신호(SEL2)를 생성하는 것이다.
한편, 어드레스 생성부(10)중의 셀렉터(11)에는, 선택신호(SEL1)가 입력되는 구성으로 되어 있다.
본 실시예에서는, 조건 분기 명령이 실행되는지 어떤지의 예측을 정하기 때문에, 그 예측이 벗어난 경우에 본래의 프리페치를 로드하기위하여, 신호 MISS를 추가하고 있다.
신호MISS와 리세트신호 RST는 OR게이트(85)에 입력되고, 그 OR게이트(85)의 출력은 플립 플롭(FF)(86)의 리세트단자 R에 접속되어 있다.
FF86의 출력이 선택신호 SEL1로써 셀렉터(11)에 입력되는 구성이다.
이 SEL1에 근거하여, 셀렉터(82)의 출력 또는 그 때 입력되어 있는 FA가 프리페치 어드레스로 된다.
제9도는 제8도의 MISS를 생성하는 회로를 나타낸 구성 블럭도이다.
이 회로는 FA를 입력하고, 그 변화를 추출하는 FA변화추출부(91)과, FA변화추출부(91)의 출력을 카운트하는 카운터(92)와, 카운터의 출력이 "1"인 것을 검출하는 일치회로(93)과, 일치회로(93)의 출력과 리세트신호 RST의 논리를 구하는 OR게이트(94)와, OR게이트(94)의 출력을 리세트단자 R에 입력하는 RS-FF95를 구비하고 있다.
이것은 신호MISS의 타이밍을 설정하는 것으로, RS-FF95의 세트단자(S)에는 프리디코더(81)에서의 검출결과가 입력되어 있다.
RS-FF95의 출력측은, 카운터92의 인에이블 단자에 접속됨과 동시에 2입력 AND게이트(96)의 한쪽의 입력단자에 접속되어 있다.
이 회로에는, 지연형 플립 플롭(이하 D-FF라고 한다)(97)이 설치되고, D-FF97의 출력은 반전한 신호 (Vaild)와 동시에 2입력 AND게이트(98)에 입력되는 접속이다.
AND게이트 (98)의 출력측은, AND게이트(96)의 다른쪽의 입력단자에 접속되고, 그 AND게이트 (96)에서 신호 MISS가 출력되는 구성이다.
제9도의 회로는, 조건 분기 명령이 실행되었을 때에 그 체크를 행하고, 벗어난다면 유효를 신호 MISS로 나타낸 기능을 부과한다.
다음으로, 제8도의 명령 프리페치 회로의 동작을 설명한다.
프리페치 모드에서 동작하고 있을때, 조건 분기 명령을 제출한 경우, 명령 필드 중의 분기 예측비트에 의해, 조건 분기 명령에 의해 분기가 발생하는지 아닌지가 추정된다.
이 예측 비트는 컴파이러나 프로그램이 프로그램작성시에 예측 알고리즘에 의해 작성한 것이다.
분기 예측이 행해졌을 때, RS-FF95가 세트되어, 그후 제9도이 회로는 분기 명령 실행의 FA가 출력되었을 때에 체크를 행한다.
즉, 신호 vaild가 일치하고 있는지 아닌지에서, 예측가 있었는지 아닌지를체크한다.
어긋났을 때에는 어긋남을 나타내는 신호 MISS를 출력하고, RS-FF85를 리세트한다.
분기 예측이 일치하고 있는지에 한하여, 제8도의 명령 프리페치회로는, 제7도와 동일한 타이밍의 동작을 실행한다.
프리디코더(81)은 그 조건 분기 명령에 지정되는 분기선 어드레스를 추출하여 셀렉터(82)로 부여된다.
셀렉터(82)는 선택신호(SEL2)에 근거하여 분기선 어드레스를 선택하기 때문에, 셀렉터(11)의 출력도 분기선 어드레스로 되고, 레지스터(12)는 분기선 어드레스를 로드하고 출력한다.
그 때문에, 이 명령 프리페치회로는, 프리페치 모드에서 빠져나가지 않고 명령의 프리페치를 계속한다.
이상과 같이, 본 실시예에서는, 조건 분기에 있어서도 프리페치에 헛됨이 없이, 프리페치 모드에서 벗어나지 않고 고속으로 명령을 공급할 수 있다.
또한, 무조건 분기 명령을 대상으로 하는 제2의 실시예와 조합한 경우, 분기 예측이 벗어나지않는 한, 전부 명령에 있어서 프리페치를 계속하는 것이 가능하다.
(제4의 실시예)
제10도는 본 발명의 제4의 실시예를 나타낸 명령 프리페치 회로의 구성 블럭도이며, 제8도와 공통하는 부분에는 공통의 부호가 부여되고 있다.
제3의 실시예에서는 분기 예측 비트를 설정하여 조건 분기 명령에 대처하고있는 것에 대하여, 본실시예에서는 분기 예측수단(100)을 설치하고 있다.
즉, 제10도에서는 AND 게이트(83)의 한쪽의 입력단자에는, 분기 예측 비트에서는 없이 분기 예측수단(100)의 출력이 입력되는 구성으로 되어 있다.
다른 부분에 관해서는, 제8도와 동일한 구성이다.
제11도는, 제10도중의 분기 예측 수단(100)의 구성을 나타낸 블럭도이다.
본 실시예에 있어서 분기 예측수단(100)은, D-FF에서 구성된 랜덤 발생기(101)로써 하고 있다.
랜텀 발생기(101)의 D-FF의 데이타단자(D)에는 출력단자Q가 접속된 구성으로, 분기 예측의 공급원으로 되어 있다.
제10도의 명령 프리페치회로는, 제3의 실시예와 동일한 동작을 행하고 효율적인 프리페치를 실행했으나, 명령 필드중에 분기 예측 비트가 없는 명령 세비트의 경우, 훨씬 적은 하드량에서 분리예측을 행할 수 있다.
(제5의 실시예)
제12도는, 제10도중의 분기 예측수단의 다른 예를 나타낸 도이다.
본 실시예는, 제10도의 명령 프리페치 회로중의 분기 예측수단(100)을 제12도와 같이 하고 있다.
제12도의 분기 예측수단(100)은, 이력테이블 메모리(111)과 비교기 (112)와 2입력 AND게이트(113)을 구비하고 있다.
이력 테이블 메모리(111)은, 어드레스 태그에 대응하여 과거의 분기 또는 비분기의 이력을 얻는 것으로, 이 이력 테이블 메모리(111)에는 FA의 하위 비트가 입력되고, 어드레스 태그와 그 이력을 출력한다.
또한 비교기(112)는 FA의 상위 비트와 이력 테이블메모리(111)의 출력하는 어드레스 태그가 입력되고, 비교결과를 AND 게이트(113)의 다른쪽의 입력단자에 송출하는 접속이다.
AND게이트(113)의 다른쪽의 입력단자에는, 이력 테이블 메모리(111)에서의 이력 출력이 입력되고, AND게이트(113)에서의 분기 예측이 출력되는 구성을 되어 있다.
본 실시예에서는 명령 필드중에 분기 예측비트가 없는 명령 비트의 경우, 과거의 분기 이력에 근거하여 분기예측을 행한다.
제12에서는, 이력 테이블 메모리(111)를 전부 어드레스 마다에 설치되는 것이 불가능하기 때문에, 세트 어소시에이티브 방식으로 하고 있으나, 물론, 풀어소시에이티브방식으로 한 것이 효율이 좋다.
어떻게 하더라도, 이력 테이블 메모리(111)중에 발견할 수 없는 경우에는 "분기하지 않는다"를 출력하도록 한다.
이상과 같이, 본 실시예에서는, 이력 테이블 메모리(111)를 설치하고, 과거의 이력에서 분기 예측을 행하기 때문에, 분기 예측 비트를 가지지 않은 명령 세트에 대하여 효율적으로 프리페치한 명령을 연산 장치에 공급할 수 있다.
특히, 복수회 루프를 반복하도록 하는 프로그램의 경우, 예측의 히트율이 향상된다.
또한 선행 고쳐쓰기형 캐쉬장치에 대하여 분기 명령을 프리페치해도 갱신이접속하기 때문에, 캐쉬 히트율이 높게되고, 성능이 향상된다.
또한, 본 발명은, 상기 실시예에 한정되지 않고 여러가지의 변형이 가능하다.
예를들면, 제5의 실시예에 있어서, 분기 이력 테이블 메모리(111)중에서 발견할 수 없는 어드레스의 경우, "분기하지않는다"를 메모리(111)에서 판독하도록 하고 있으나, AND게이트(113)을 OR게이트로 하여 비교기(112)의 출력을 반전하도록 하면, "분기하다"를 판독하는 구성으로써 해도 된다.
제 1 도는 본 발명의 제 1 실시예를 나타낸 명령 프리페치회로의 구성 블럭도.
제 2 도는 종래의 명령 프리페치 회로를 나타낸 구성 블럭도.
제 3 도는 제 2 도의 동작을 나타낸 타임 챠트.
제 4 도는 제 1 의 동작을 나타낸 챠트.
제 5 도는 본 발명의 제 2 실시예를 나타낸 명령 프리페치 회로의 구성 블럭도.
제 6 도는 제 5 도중의 프리디코더의 구성예를 나타낸 블럭도.
제 7 도는 제 5 도의 동작을 나타낸 타임 챠트.
제 8 도는 본 발명의 제 3 실시예의 명령 프리페치회로를 나타낸 구성 블럭도.
제 9 도는 제 8 도중의 신호 MISS를 생성하는 회로를 나타낸 구성 블럭도.
제 10 도는 본 발명의 제 4 실시예를 나타낸 명령 프리페치 회로의 구성 블럭도.
제 11 도는 제 10 도중의 분기 예측 수단 (100)의 구성을 나타낸 블럭도.
제 12 도는 제 10 도중의 분기 예측수단의 다른 예를 나타낸 도.
*도면의 주요 부분에 대한 부호의 설명
10 : 어드레스 생성부 11, 72, 82 : 셀렉터
12 : 프리페치 어드레스 레지스터 13 : 인크리먼트
20 : 메모리 30 : 판정신호 생성부
40 : 데이타 레지스터 60 : 선택 신호 생성수단
71, 81, 91 : 프리디코더 100 : 분기 예측수단
101 : 랜덤 발생기 111 : 이력 테이블 메모리
이상 상세하게 설명한 바와 같이, 제1의 발명에 따르면, 명령 어드레스와 프리페치 어드레스가 일치해서 불일치로 변화했을 때만, 어드레스 생성부에 인크리먼트의 정지를 선택시켜 선택 신호를 송출하는 선택신호 생성수단을 설치하고, 어드레스 생성부는 선택신호를 입력한 경우, 명령 어드레스를 프리페치 어드레스 로써 송출하는 구성으로써 하고 있기 때문에, 명령이 분기 명령의 경우에서도 구별하지 않고 프리페치를 계속한다.
이때문에 프리페치한 명령을 효율좋게 연산 장치로 공급할 수 있다.
또한, 선행 바꿔쓰기형 캐쉬장치에 적용해도 새로움을 계속하기 때문에, 캐쉬 히트율이 높게되고, 성능이 향상된다.
제2의 발명에 의하면, 프리페치한 명령이 무조건 분기 명령에 있어서도, 무조건 분기 명령인 것을 검출하는 수단과, 그 분기선 어드레스를 추출하는 수단을 설치하고, 더욱 그 분기선 어드레스에서 프리페치를 행하는 구성으로 하고 있기 때문에, 무조건 분기 명령이 프리페치되어도, 프리페치 모드에서 벗어나지 않고, 인크리먼트한 프리페치 동작을 한다.
따라서 효율 명령 공급을 실행할 수 있다.
또한, 선행 바꿔쓰기형 캐쉬장치에 적용해도 동일한 모양으로 새롭게 접속할 수 있기 때문에, 무조건 분기 명령이 프리페치하더라도, 캐쉬 히트율이 높게되고, 성능이 향상한다.
제3의 발명에 의하면, 프리페치한 명령이 조건 분기 명령에 있어서도, 조건 분기 명령인 것을 검출하는 수단과, 그 분기선 어드레스를 추출하는 수단과 구비하고, 더욱, 조건분기가 실제로 행해지는지 어떤지를 예측하는 수단과, 그 예측에 의해서 분기선 어드레스 또는 인크리먼트한 어드레스를 선택하는 선택수단을 설치하고 있기 때문에, 조건 분기 명령을 프리페치한 경우에도, 효율적인 명령 공급을 실행할 수 있다.
또한, 선행 바꿔쓰기형 캐쉬장치에 적용해도 동일한 모양으로 효율적인 갱신이 접속할 수 있기 때문에, 조건 분기 명령이 프리페치되어도 캐쉬 히트율이 높게 되고, 성능이 향상한다.
제4의 실시예에서는, 명령 필드중의 분기 예측 비트를 추출하고, 그것을 예측값으로 하는 구성이기 때문에, 적은 하드량에서 제3의 발명을 실현할 수 있다.
제5의 발명에서는, 랜덤값을 이용해서 분기값으로 하고 있기때문에, 예측 비트를 가지지 않은 명령 비트에 있어서도 적은 하드웨어에서 제3의 발명을 실현할 수 있다.
제6의 발명에서는, 분기 이력을 격납하는 테이블을 이용하여 예측값을 정하는 구성으로 하고 있기 때문에, 예를들면, 복수회 루프를 반복하여 행하는 것과 같은 프로그램의 경우, 제3의 발명에 있어서 예측 히트율이 향상된다.

Claims (6)

  1. 연산장치에서 사용하는 명령을 미리 어드레스로 대응시켜 격납하는 메모리와,
    상기 연상장치에서 입력된 제1의 명령 어드레스를 인크리먼트하고 프리페치 어드레스를 생성하는 어드레스 생성부와,
    상기 프리페치 어드레스에 대응하는 상기 명령을 상기 메모리에서 판독하고 상기 연산장치로 송출하는 데이타 송출부와,
    상기 제1의 명령 어드레스의 후에 입력된 제2의 명령 어드레스와 상기 프리페치 어드레스간의 일치 불일치를 검출하고, 해당 검출결과가 일치의 경우에 상기 데이타 송출부의 송출하는 명령이 유효하며 불일치의 경우에는 무효인 것을 나타내는 판정신호를, 상기 연산 장치에 제공하는 판정 신호 생성부와,
    상기 판정신호가 일치에서 불일치로 변화했을 때만, 상기 어드레스 생성부가 상기 제2의 명령 어드레스를, 상기 제1의 명령 어드레스의 인크리먼트함에 의한 어드레스보다 새로운 프리페치 어드레스로써 선택하게 하는 선택신호를 상기 어드레스 생성부에 송출하는 선택신호 생성수단을 포함하여 구성된 것을 특징으로 하는 명령 프리페치 회로.
  2. 연산장치에서 사용하는 명령을 미리 어드레스로 대응시켜 격납하는 메모리와,
    상기 연상장치에서 입력된 제1의 명령 어드레스를 인크리먼트하고 프리페치 어드레스를 생성하는 어드레스 생성부와,
    상기 프리페치 어드레스에 대응하는 상기 명령을 상기 메모리에서 판독하고 상기 연산장치로 송출하는 데이타 송출부와,
    상기 제1의 명령 어드레스의 후에 입력된 제2의 명령 어드레스와 상기 프리페치 어드레스간의 일치 불일치를 검출하고, 해당 검출결과가 일치의 경우에 상기 데이타 송출부의 송출하는 명령이 유효하며 불일치의 경우에는 무효인 것을 나타내는 판정신호를, 상기 연산 장치에 제공하는 판정 신호 생성부와,
    상기 데이타 송출부의 송출하는 명령이 무조건 분기 명령인 것을 검출하는 수단과,
    상기 무조건 분기 명령에 있어서 분기선 어드레스를 해당 무조건 분기 명령에서 추출하는 수단을 설치하고,
    상기 어드레스 생성부는, 상기 데이타 송출부의 송출하는 명령이 무조건 분기 명령일 때, 상기 분기선 어드레스를 새롭게 상기 프리페치 어드레스로써 송출하는 구성으로 한 것을 특징으로 하는 명령 프리페치 회로.
  3. 연산장치에서 사용하는 명령을 미리 어드레스로 대응시켜 격납하는 메모리와,
    상기 연상장치에서 입력된 제1의 명령 어드레스를 인크리먼트하고 프리페치 어드레스를 생성하는 어드레스 생성부와,
    상기 프리페치 어드레스에 대응하는 상기 명령을 상기 메모리에서 판독하고 상기 연산장치로 송출하는 데이타 송출부와,
    상기 제1의 명령 어드레스의 후에 입력된 제2의 명령 어드레스와 상기 프리페치 어드레스간의 일치 불일치를 검출하고, 해당 검출결과가 일치의 경우에 상기 데이타 송출부의 송출하는 명령이 유효하며 불일치의 경우에는 무효인 것을 나타내는 판정신호를, 상기 연산 장치에 제공하는 판정 신호 생성부와,
    상기 데이타 송출부의 송출하는 명령이 조건 분기 명령인 것을 검출하는 수단과,
    상기 조건 분기 명령에 있어서 분기선 어드레스를 해당 조건 분기 명령에서 추출하는 수단과,
    상기 조건 분기가 실제로 행해지는지 어떤지를 예측하는 예측수단과,
    상기 예측에 근거하여 상기 제1의 명령 어드레스를 인크리먼트한 어드레스 또는 상기 분기선 어드레스를 선택하는 선택수단과 상기 예측이 빗나갔는지 어떤지를 나타내는 신호에 근거하여 상기 선택수단에 의해 선택된 어드레스중의 하나 또는 상기 연산 장치에서 입력되어 있는 제3의 명령 어드레스를 상기 어드레스 생성부에 프리페치 어드레스로써 출력시키는 수단을 포함하여 구성된 것을 특징으로 하는 명령 프리페치 회로.
  4. 제 3 항에 있어서,
    상기 예측수단은, 상기 조건 분기 명령의 명령 필드중의 분기 예측 비트를추출하고, 그것을 예측값으로 하는 수단인 것을 특징으로 하는 명령 프리페치 회로.
  5. 제 3 항에 있어서,
    상기 예측수단은, 랜덤값을 예측값으로 하는 수단인 것을 특징으로 하는 명령 프리페치 회로.
  6. 제 3 항에 있어서,
    상기 예측수단은, 조건 분기 명령에 있어서 과거의 분기 이력을 격납하는 테이블을 이용하고, 상기 과거의 분기 이력을 참조하여 예측값을 정하는 것을 특징으로 하는 명령 프리페치 회로.
KR1019950034373A 1994-10-06 1995-10-06 명령프리페치회로 KR100346561B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP6242553A JPH08106387A (ja) 1994-10-06 1994-10-06 命令プリフェッチ回路及びキャッシュ装置
JP94-242553 1994-10-06

Publications (2)

Publication Number Publication Date
KR960015238A KR960015238A (ko) 1996-05-22
KR100346561B1 true KR100346561B1 (ko) 2002-12-05

Family

ID=17090820

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950034373A KR100346561B1 (ko) 1994-10-06 1995-10-06 명령프리페치회로

Country Status (5)

Country Link
US (1) US5729707A (ko)
EP (2) EP0706121B1 (ko)
JP (1) JPH08106387A (ko)
KR (1) KR100346561B1 (ko)
DE (2) DE69535932D1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101099417B1 (ko) 2008-07-09 2011-12-27 르네사스 일렉트로닉스 가부시키가이샤 캐시 메모리 디바이스

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2759176B1 (fr) * 1997-02-05 1999-04-09 Sgs Thomson Microelectronics Micro-processeur faisant une prediction d'adresse rapide
US5951678A (en) * 1997-07-25 1999-09-14 Motorola, Inc. Method and apparatus for controlling conditional branch execution in a data processor
US6134649A (en) * 1997-11-17 2000-10-17 Advanced Micro Devices, Inc. Control transfer indication in predecode which identifies control transfer instruction and an alternate feature of an instruction
US6167506A (en) 1997-11-17 2000-12-26 Advanced Micro Devices, Inc. Replacing displacement in control transfer instruction with encoding indicative of target address, including offset and target cache line location
US6061786A (en) * 1998-04-23 2000-05-09 Advanced Micro Devices, Inc. Processor configured to select a next fetch address by partially decoding a byte of a control transfer instruction
US6141745A (en) * 1998-04-30 2000-10-31 Advanced Micro Devices, Inc. Functional bit identifying a prefix byte via a particular state regardless of type of instruction
US6175908B1 (en) 1998-04-30 2001-01-16 Advanced Micro Devices, Inc. Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte
JP3867427B2 (ja) * 1999-01-11 2007-01-10 ソニー株式会社 プロセッサ装置および集積回路
US7085915B1 (en) * 2000-02-29 2006-08-01 International Business Machines Corporation Programmable prefetching of instructions for a processor executing a non-procedural program
US6988189B1 (en) * 2000-10-31 2006-01-17 Altera Corporation Ternary content addressable memory based multi-dimensional multi-way branch selector and method of operating same
US20020073301A1 (en) * 2000-12-07 2002-06-13 International Business Machines Corporation Hardware for use with compiler generated branch information
US7984279B2 (en) * 2006-11-03 2011-07-19 Qualcomm Incorporated System and method for using a working global history register
US11550577B2 (en) * 2019-05-15 2023-01-10 Western Digital Technologies, Inc. Memory circuit for halting a program counter while fetching an instruction sequence from memory
US11366667B2 (en) * 2020-04-14 2022-06-21 Shanghai Zhaoxin Semiconductor Co., Ltd. Microprocessor with instruction fetching failure solution

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0320098A2 (en) * 1987-12-05 1989-06-14 International Computers Limited Jump prediction

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DD98576A1 (ko) * 1972-08-15 1973-06-20
JPS58129660A (ja) * 1982-01-29 1983-08-02 Nec Corp 情報処理装置
EP0109655B1 (en) * 1982-11-17 1991-07-24 Nec Corporation Instruction prefetching device with prediction of a branch destination address
DE3785897T2 (de) * 1986-02-28 1993-09-30 Nippon Electric Co Steuervorrichtung zum vorabruf von befehlen.
JPS6393038A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JPS63170740A (ja) * 1987-01-07 1988-07-14 Mitsubishi Electric Corp デ−タ処理装置
JPH0769810B2 (ja) * 1988-11-25 1995-07-31 日本電気株式会社 マイクロプロセッサ
JPH0384630A (ja) * 1989-08-28 1991-04-10 Nec Corp マイクロプロセッサ
JP2560889B2 (ja) * 1990-05-22 1996-12-04 日本電気株式会社 マイクロプロセッサ
US5283873A (en) * 1990-06-29 1994-02-01 Digital Equipment Corporation Next line prediction apparatus for a pipelined computed system
JPH04348430A (ja) * 1991-02-25 1992-12-03 Matsushita Electric Ind Co Ltd データ処理装置
JPH0588891A (ja) * 1991-09-30 1993-04-09 Toshiba Corp キヤツシユメモリ制御装置
US5507028A (en) * 1992-03-30 1996-04-09 International Business Machines Corporation History based branch prediction accessed via a history based earlier instruction address
US5586278A (en) * 1994-03-01 1996-12-17 Intel Corporation Method and apparatus for state recovery following branch misprediction in an out-of-order microprocessor
US5542109A (en) * 1994-08-31 1996-07-30 Exponential Technology, Inc. Address tracking and branch resolution in a processor with multiple execution pipelines and instruction stream discontinuities

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0320098A2 (en) * 1987-12-05 1989-06-14 International Computers Limited Jump prediction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101099417B1 (ko) 2008-07-09 2011-12-27 르네사스 일렉트로닉스 가부시키가이샤 캐시 메모리 디바이스

Also Published As

Publication number Publication date
EP1109095A2 (en) 2001-06-20
US5729707A (en) 1998-03-17
EP0706121A3 (en) 1997-01-15
DE69530895D1 (de) 2003-07-03
DE69535932D1 (de) 2009-05-07
EP0706121B1 (en) 2003-05-28
JPH08106387A (ja) 1996-04-23
KR960015238A (ko) 1996-05-22
EP0706121A2 (en) 1996-04-10
EP1109095B1 (en) 2009-03-25
DE69530895T2 (de) 2004-05-19
EP1109095A3 (en) 2001-10-24

Similar Documents

Publication Publication Date Title
KR100346561B1 (ko) 명령프리페치회로
US6263427B1 (en) Branch prediction mechanism
US5530825A (en) Data processor with branch target address cache and method of operation
KR101074621B1 (ko) 프로액티브 브랜치 타겟 어드레스 캐시 관리를 위한 방법들 및 장치
US4894772A (en) Method and apparatus for qualifying branch cache entries
US5805877A (en) Data processor with branch target address cache and method of operation
US6272623B1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
US6550004B1 (en) Hybrid branch predictor with improved selector table update mechanism
KR20070118135A (ko) 인덱스당 2개 이상의 분기 타겟 어드레스를 저장하는 분기타겟 어드레스 캐시
US8943298B2 (en) Meta predictor restoration upon detecting misprediction
KR20010077297A (ko) 멀티프로세싱 마이크로프로세서에 적합한 분기 예측기
KR20090061075A (ko) 가변 길이 명령 세트 실행 모드들을 가지는 프로세서 내의 bht의 효율적 사용방법
KR101081674B1 (ko) 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법
US7069426B1 (en) Branch predictor with saturating counter and local branch history table with algorithm for updating replacement and history fields of matching table entries
KR100317240B1 (ko) 분기 예측 정확도 히스토리를 이용한 분기 예측기
US20030204705A1 (en) Prediction of branch instructions in a data processing apparatus
US20020078333A1 (en) Resource efficient hardware loops
JP2002278752A (ja) 命令の実行結果予測装置
US7428627B2 (en) Method and apparatus for predicting values in a processor having a plurality of prediction modes
KR20050039259A (ko) 저전력 분기 예측 시스템 및 분기 예측 방법
US20090070569A1 (en) Branch prediction device,branch prediction method, and microprocessor
EP0666538A2 (en) Data processor with branch target address cache and method of operation
JP2943772B2 (ja) 分岐予測方式
US7343481B2 (en) Branch prediction in a data processing system utilizing a cache of previous static predictions
KR100265332B1 (ko) 분기예측방법

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: 20100712

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee