KR930009617B1 - 분기처리장치 - Google Patents

분기처리장치 Download PDF

Info

Publication number
KR930009617B1
KR930009617B1 KR1019880014765A KR880014765A KR930009617B1 KR 930009617 B1 KR930009617 B1 KR 930009617B1 KR 1019880014765 A KR1019880014765 A KR 1019880014765A KR 880014765 A KR880014765 A KR 880014765A KR 930009617 B1 KR930009617 B1 KR 930009617B1
Authority
KR
South Korea
Prior art keywords
instruction
branch
address
buffer
storing
Prior art date
Application number
KR1019880014765A
Other languages
English (en)
Other versions
KR890008644A (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
Priority claimed from JP62286065A external-priority patent/JPH0760387B2/ja
Priority claimed from JP62286066A external-priority patent/JPH0766326B2/ja
Application filed by 마쯔시다덴기산교 가부시기가이샤, 다니이 아끼오 filed Critical 마쯔시다덴기산교 가부시기가이샤
Publication of KR890008644A publication Critical patent/KR890008644A/ko
Application granted granted Critical
Publication of KR930009617B1 publication Critical patent/KR930009617B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

내용 없음.

Description

분기처리장치
제 1 도는 본 발명의 제 1 실시예에 관한 구성을 도시한 블록도.
제 2 도는 제 1 실시예에 관한 무조건 PC상대 분기명령어(Unconditional PC Reative Address Branch Instruction)의 동작을 도시한 타이밍차트.
제 3 도는 본 발명의 제 2 실시예에 관한 구성을 도시한 불록도.
제 4 도는 제 2 실시예에 관한 조건부 PC 상대분기명령어의 분기성립시의 동작을 도시한 타이밍차트.
제 5 도는 제 2 실시예에 관한 조건부 PC 상대분기명령어의 분기불성립시의 동작을 도시한 타이밍차트.
제 6 도는 종래의 정보처리장치의 구성을 도시한 블록도.
* 도면의 주요부분에 대한 부호의 설명
(2), (11) : 명령어선행채취 카운터 (3), (13) : 명령어버퍼
(4), (15) : 명령어해독부 (5), (16) : 실행명령버퍼
(6), (17) : 실행부 (7), (18) : 명령어 해독카운터
(8), (20) : 프로그램카운터버퍼 (9), (21) : 가산기
(12) : 분기용명령어 선행채취 어드레스레지스터
(14) : 분기용명령어버퍼 (18) : 분기용 명령어 해독어드레스레지스터
(22), (23), (24), (25), (26) : 셀렉터
본 발명은, 정보처리장치에 대한 분기명령어를 고속으로 실행하는 분기처리장치(Processing System for Branch Instruction)에 관한 것이다.
종래의 정보처리장치는, 제 6 도에 도시한 바와 같이, 명령어(instruction)와 데이터를 저장하는 주기억부(27), 주기억부로부터 정보처리장치의 내부로 명령어를 채취하는 명령어 채취부(Instruction Fetch Unit)(28), 채취한 명령어(instruction)를 해독하여 명령(command)을 생성하는 명령어해독부(Instruction Decode Unit)(29), 명령을 실행하는 실행부(31)등이 종속접속되어 있다. 실행부(31)는, 실행중의 명령어의 어드레스를 유지하는 프로그램카운터(PC)(30)를 가진다.
정보처리장치가, PC에서 유지하는 어드레스가 나타내는 주기억부의 명령어를 채취하고, 명령어의 실행을 행하는 순서는 아래와 같이 된다.
명령어 채취부(28)가, 지정된 어드레스에 대해서, 주기억부(27)로부터 명령어를 채취한다. 명령어 해독부(29)는 채취한 명령어를 해독하여, 실행부(31)로 명령을 출력한다. 실행부(31)는 수신한 명령을 실행하고 명령어의 수행을 종료하면 PC(30)를 갱신한다.
그러나, 정보처리장치는 분기명령어(branch instruction)을 실행부에서 처리하고 있기 때문에, ① 명령어 채취부와 명령어 해독부에서 선행하여 채취한 명령어를 무효화하지 않으면 안되고, ② 분기명령어 실행이전에 분기선(分岐先)명령어의 어드레스와 분기선명령어(branch destinstion instruction)을 준비하지 않으므로, 분기성립시에 명령어 실행의 개시가 지연되고, ③ 분기명령어 보다 먼저 해독된 명령어의 처리가 종료할때까지 분기명령어를 처리할 수 없고, ④ 실행부에서 조건부 분기명령어의 조건판정을 처리하기 때문에, 조건부 분기 명령어의 처리시간이 증가한다고 하는 문제점을 가지고 있었다.
본 발명의 목적은, 분기처리를 실행부(Execution Unot)에서 행하지 않고, 실행부이전에서 처리하므로서, 분기명령어를 고속으로 실행하는 분기처리장치(Processing System for Bracch Instruction)을 제공하는데 있다.
상기 목적을 달성하기 위해서, 명령어 해독부가 분기명령어를 해독하면, 실행부와는 독립적으로 병행하여 분기선 어드레스를 산출하고, 계속해서 분기명령어보다 선행하여 해독된 명령어의 실행완료를 기다리지 않고 분기선명령어를 고속으로 준비하여 해독을 행한다. 이에 의해, 명령어 실행부에서는 분기명령어보다 선행하여 해독된 명령어의 실행 완료직후에 분기선명령어를 실행하는 일이 가능하게 된다.
또한, 명령어 해독부가 조건부분기명령어(Conditional Branch Instruction)를 해독하면, 실행부와는 독립적으로 병행하여 분기선명령어의 어드레스를 산출한 후에, 분기선명령어를 고속으로 준비하고, 분기명령어보다 선행하여 해독된 명령어의 종료까지 동작을 정지하고, 분기성립 유무의 확정을 기다린다. 이에 의해 연산결과 플래그를 확정함과 동시에 명령어 해독부는 분기의 성립 유무를 판단하여, 분기의 성립시에는 미리 준비되어 있는 분기선명령어의 해독을 시작하고, 동시에 이미 해독되어 있는 분기명령어에 후속하는 명령어를 무효화하는 일이 가능하게 된다.
한편, 분기의 불성립시에는 이미 해독되어 있는 분기명령에 후속하는 명령어를 추출하여 계속해서 실행하는 일이 가능해진다.
즉, 고속으로 분기처리를 행하므로서, 분기명령어에 의한 명령어 순서 및 파이프라인(pipeline)의 흐트러짐, 및 오버헤드(overhead)를 삭감하여, 정보 처리장치의 성응향상을 도모한다.
이하, 본 발명의 실시예를 첨부한 도면에 의거하여 상세히 설명한다.
제 1 도는 본 발명의 제 1 실시예에 관한 분기처리장치의 구성도이다. 제 1 도에 있어서, (1)은 실행해야할 명령어가 저장되고 있고, 고속으로 명령어를 판독할 수 있는 명령어를 유지하는 캐쉬(cache), (2)는 선행적으로 명령어를 채취하기 위한 어드레스를 유지하고, 선행하여 채취한 명령어의 바이트의 개수에 대응하는 값을 카운트업하는 기능을 가진 명령어 선행채취 카운터, (3)은 채취된 명령어를 대기행렬하는 선입선출(FIFO : First-In First-out)형식의 명령어 버퍼, (4)는 채취한 명령어를 해독하여 실행부의 명령을 생성하는 명령어 해독부, (5)는 명령어 해독부(4)로부터 출력된 실행명령을 대기행렬하는 FIFO 형식의 실행명령버퍼, (6)은 입력된 실행명령을 처리하는 실행부, (7)은 명령어 해독부(4)에서 다음 차례에 해독할 명령어의어드레스를 유지하고, 해독한 명령어의 바이트의 개수에 대응하는 값을 카운트업하는 기능을 가진 명령어 해독 카운터, (8)은 실행부(6) 및 명령어 해독부(4)에 존재하는 명령에 대응하는 어드레스를 대기행렬하는 FIFO 형식의 프로그램 카운터버퍼, (9)는 명령어 해독 카운터(7)로부터 출력되는 어드레스와 명령어버퍼(3)로부터 출력되는 디스플레이스먼트(displacement)를 가산하는 가산기이다.
다음 설명에서 명백한 바와 같이, 상기 명령이 해독부(4)는 수개의 제어기능을 가지고 있다. 명령어 해독부(4)로부터 다른 구성요소에 전송되는 제어신호선은 제 1 도에서 생략되었음에 유의하여야 한다.
제 2 도는 본 실시예에 관한 무조건 PC 상대분기명령어(Unconditional Program Counter Relative Address Branch Instruction)의 동작을 도시한 타이밍차트이다. 제 2 도에 있어서, A0은 분기명령어(BRA)보다 선행하여 해독된 명령어, 분기명령어(BRA)는 무조건 PC 상대분기명령어, A1은 분기명령어(BRA)에 후속하는 명령어, A2는 A1에 후속하는 명령어, B0은 분기선 명령어이다.
이상과 같이 구성된 본 실시예의 분기처리장치에 대해서, 최초로 분기를 하지 않는 통상동작을 설명한다.
① 명령어 선행 채취 카운터(2)에 의해서 발생한 어드레스에 대응하여 캐쉬(1)로부터 명령어를 채취하고, 명령어버퍼(3)에 저장한다. 이 과정을 명령어 선행채취처리(instruction pre-fetch process)라고 칭한다.
② 명령어 선행채취 카운터(2)는 명령어버퍼(3)에 저장한 명령어의 바이트의 개수에 대응하는 값에 의하여 현행 어드레스를 카운트업한 후에, 카운트업한 어드레스를 유지한다.
③ 명령어 해독부(4)는 명령버퍼(3)의 하부(bottom)로부터 명령어를 채취하고, 채취한 명령어를 해독한다.
④ 명령어 해독부(4)는 해독한 후에, 실행명령버퍼(5)에 명령을 저장함과 동시에, 명령어 해독 카운터(7)가 해독한 명령어의 바이트의 계수에 대응하는 값에 의하여 현행 어드레스를 카운트업한 후에, 카운트업한 어드레스를 유지한다.
⑤ 명령어 해독부(4)가 명령의 최종어(and word)를 해독하는 동안, 연속해서 해독해야한 명령어의 선두어드레스(header address)를 명령어 해독 카운터(7)에 세트한다.
⑥ 명령어 해독부(4) 는 1개의 명령어를 해독한 후에, 명령어 해독 카운터(7)에 준비된, 연속해서 해독해야할, 명령어의 선두어드레스를 프로그램카운터 버퍼(8)에 저장한다.
⑦ 실행부(6)는, 선행의 실행명령의 처리가 종료하면, 실행명령버퍼(5)의 하부의 명령을 채취하고, 채취된 명령을 실행한다. 실행부(6)에 의하여 현재 실행하고 있는 명령어의 어드레스는 프로그램카운터버퍼(8)의 하부에 저장되어 있다.
⑧ 실행부(6)는 채취된 명령을 실행하고, 1개의 명령어(instrucion)에 대한 명령이 종료할때마다 프로그램카운터버퍼(8)의 하부의 어드레스를 폐기(discard)하고 신규의 어드레스로 대치한다.
다음에 무조건 분기명령어의 실행시의 동작을 제 1 도와 제 2 도를 사용하여 설명한다.
①∼③은 분기를 하지 않는 통상동작과 동일하다.
④ 명령어 해독부(4)는, 사이클(C2)에서, 무조건 분기명령어(BRA)를 해독하면 명령어 선행채취처리를 인터럽트 한다. 명령어버퍼(3)의 하부에는 명령어(A2)가 준비된 상태에서 인터럽트 한다.
⑤ 명령어 해독부(4)는, 사이클(C3)에서, 무조건 분기명령어(BRA)에 후속하는 명령어(A1)를 채취하여 해독을 시작한다.
⑥ 가산기(9)는, 사이클(C3)에서, 명령어버퍼(3)내에 저장되어 있는 분기명령어(BRA)에 부속하는 디스플레이스먼트와 명령어 해독 카운터(7)에 저장된 분기 명령어(BRA)의 어드레스를 가산하여 분기선명령어(B0)에 대응하는 분기선어드레스를 생성한다.
⑦ 상기 사이클(C3)에서 생성된 분기선어드레스는 명령어 선행채취 카운터(2)에 저장됨과 동시에, 명령어 해독 카운터(7)에도 저장된다.
⑧ 명령어 해독부(4)는, 사이클(C4)에서, 명령어 선행채취 카운터(2)에 저장되어 있는 분기선어드레스를 출력하여, 캐쉬(1)로부터 분기선 명령어(B0)를 채취하고, 명령어 버퍼(3)를 초기화한 후에, 명령어버퍼(3)에 분기선 명령어(B0)를 저장한다.
⑨ 명령어 해독부(4)는, 사이클(C4)에서, 명령어 선행채취처리를 재개한다.
⑩ 명령어 해독부(4)는, 이미 명령어 해독부(4)에서 해독되어 실효 어드레스 계산단계에 있는 명령어(A1)를 무효화 한다.
⑪ 명령어 해독부(4)는 명령어 해독 단계에 있는 명령어(A2)를 무효화 한다.
⑫ 명령어 해독부(4)는 명령어 해독 카운터(7)에 준비된 분기선명령어(B0)의 선두어드레스를 프로그램카운트버퍼(8)에 출력하고, 프로그램카운터버퍼(8)에서 분기선명령어(B0)를 분기명령어(BRA)의 어드레스에 중복기재(over write)한다.
⑬ 명령어 해독부(4)는, 사이클(C5)에서, 명령어 버퍼(3)로부터 분기선명령어(B0)를 채취하여, 분기선 명령어(B0)를 해독한다.
⑭ 명령어 해독부(4)는, 사이클(C6)에서, 실행명령 버퍼(5)에 명령을 저장한다.
⑮ 실행부(6)는, 선행의 실행명령의 실행이 종료하면, 실행명령버퍼(5)의 하부의 명령을 채취하며, 채취된 명령을 실행한다. 실행부(6)에 의하여 현재 실행하고 있는 명령어 어드레스는 프로그램카운터버퍼(8)의 하부에 저장되어 있다.
Figure kpo00001
실행부(6)는 채취된 명령을 실행하여 1개의 명령어에 관계되는 명령이 종료할때마다 프로그램카운터버퍼(8)의 하부의 어드레스를 폐기하고, 신규의 어드레스로 대치한다.
제 2 도에 있어서, 이하 보충설명한다. 명령어 해독부는 분기명령어(BRA)를 해독한 후에, 실효어드레스계산을 행하면, 현재 실행단계에 있는 명령어(A0)의 종료를 기다리지 않고 즉시 분기선 명령(B0)의 채취를 행하여, 분기선명령어(B0)를 준비할 수 있다. 이미 해독되어 실효어드레스 계산단계에 있는 명령어(A1)와 명령어 해독 단계에 있는 명령어(A2)는 무효화 된다(사선은 무효화된 명령어와 명령). 이 분기선명령어(B0)는 명령어실행단계에 있는 명령어(A0)가 종료되는 대로 실행된다.
이상과 같이 본 실시예에 의하면, 분기명령어가 발생하였을 경우, 명령어 해독부는, 분기명령어(BRA)를 실행부로 출력하지 않고 명령어 해독부가 처리하고, 명령어 해독부는, 실행부에 있어서의 실행과 독립적으로 병행하여 분기선명령어의 어드레스를 계산하고, 또한 계산된 분기선명령어를 고속으로 준비하여, 분기명령어의 처리를, 선행하는 명령의 실행종료를 대기하지 않고 행하므로써, 이하의 효과가 생긴다.
① 미리 채취한 명령어를 무효로 하는 수가 적다. 즉, 불필요한 선행채취 감소시킨다. 이에 의해, 버스의 교통량(traffic)을 경감할 수 있으므로, 버스대역의 유효이용을 도모할 수 있다. 또한, 캐쉬의 불필요한 갱신을 감소할 수 있으므로, 갱신에 의한 오우버헤드의 삭감과 캐쉬의 적증물(hit rate)의 향상을 도모할 수 있다.
② 채취한 명령의 무효화를 행할 경우에도, 무효화를 실행부의 실행동작과 병행하기 때문에, 명령어 실행의 오우버헤드로 되지 않으므로, 성능의 저하를 야기하지 않는다.
③ 분기선명령어의 채취와, 해독을 실행부의 동작과 독립적으로 병행하기 때문에, 분기명령어를 처리한 직후에 분기선 명령어를 실행할 수 있어, 분기선명령어를 준비하기 위한 대기시간이 발생하지 않는다.
④ 명령어 해독부가, 분기명령어의 처리를 실행부의 처리와 병행하기 때문에, 분기처리를 고속으로 행할 수 있고, 또한 분기명령어에 의한 실행부의 정지가 발생하지 않으므로, 부기명령어 보다 선행하여 해독된 명령어가 실행부에서 실행을 종료한 직후에, 분기선명령어를 실행부에서 실사가능하게 된다.
즉, 분기명령어에 의한 명령어 순서 및 파이프라인의 흐트러짐을 삭감하므로서, 고속분기처리를 행하여, 정보처리장치의 성능향상을 도모할 수 있다.
제 3 도는 본 발명의 제 2 실시예에 관한 분기처리장치의 구성도이다. 제 3 도에 있어서, (10)은 실행해야할 명령어가 저장되어 있고, 고속으로 명령어를 판독할 수 있는 명령어를 유지하는 캐쉬, (11)은 선행적으로 명령어를 채취하기 위한 어드레스를 유지하고, 선행하여 채취한 명령어의 바이트의 개수에 대응하는 값을 카운트업하는 기능을 가진 명령어 선행채취카운터, (12)는 분기명령어를 해독한 후에 연산되는 분기선어드레스를 일시적으로 유지하는 분기용 명령어 선행채취 어드레스레지스터, (13)은 채취된 명령어를 대기행렬하는 FIFO형식의 명령어버퍼, (14)는 분기명령어를 해독한 후에 채취된 분기선 명령어를 일시적으로 유지하는 분기용명령어버퍼, (15)는 채취한 명령어를 해독하여 실행부의 명령의 생성하는 명령어 해독부, (16)은 명령어 해독부(15)로부터 출력된 실행명령을 대기행렬하는 FIFO형식의 실행명령버퍼, (17)은 입력된 실행명령을 처리하는 실행부, (18)은 명령어 해독부(15)에서 다음 차례에 해독할 명령어의 어드레스를 유지하고, 해독한 명령어의 바이트의 개수에 대응하는 값을 카운트업하는 기능을 가진 명령어해독카운터, (19)는 분기명령어를 해독한 후에 연산되는 분기선어드레스를 일시적으로 유지하는 분기용 명령어해독어드레스 레지스터, (20)은 실행부(17)와 명령어해독부(15)에 존재하는 명령어에 대응하는 어드레스를 대기행렬하는 FIFO형식의 프로그램카운터버퍼, (21)은 명령어해독카운터(18)로부터 출력되는 어드레스와 명령어버퍼(13)로부터 출력되는 디스플레이스먼트를 가산하는 가산기, (22)는 명령어 선행채취 카운터(11)의 입력을 선택하는 셀렉터, (23)은 캐쉬(10)의 입력을 선택하는 셀렉터, (24)는 명령어해독부(15)의 입력을 선택하는 셀렉터, (25)는 명령어해독카운터(18)의 입력을 선택하는 셀렉터, (26)은 가산기(21)의 입력을 선택하는 셀렉터이다.
다음 설명에서 명백한 바와 같이, 상기 명령어 해독부(15)는 수개의 제어기능을 가지고 있다. 명령어 해독부(15)로부터 다른 구성요소에 전송되는 제어 신호선은 제 3도에서 생략되었음에 유의하여야 한다.
제 4 도는 본 실시예에 관한 조건부 PC 상대분기명령어의 분기성립시의 동작을 도시한 타이밍차트이다. 제 5 도는 본 실시예에 관한 조건부 PC 상대분기명령어의 분기불성립시의 동작을 도시한 타이밍차트이다. 제 4 도와 제 5 도에 있어서 A0은 조건부 PC 상대분기명령어(BCC)보다 선행하여 해독된 명령어, 분기명령어(BCC)는 조건부 PC 상대분기명령어, A1은 조건부 PC 상대분기명령어(BCC)에 후속하는 명령어, A2는 A1에 후속하는 명령어, B0은 분기선명령어이다.
이상과 같이 구성된 본 실시예의 분기처리장치에 대해서, 최초로 분기를 하지 않는 통상 동작을 설명한다.
① 명령어선행채취카운터(11)에 의해서 발생한 어드레스에 대응하여 캐쉬(10)로부터 명령어를 채취하고, 명령어버퍼(13)에 저장한다. 이과정을 명령어선행 채취처리하고 칭한다.
② 명령어선행채취카운터(11)는 명령어버퍼(13)에 저장한 명령의 바이트의 개수에 대응하는 값에 의하여 현행 어드레스를 카운트업한 후에, 카운트업한 어드레스를 유지한다.
③ 명령어해독부(15)는 셀렉터(24)를 통하여 명령어버퍼(13)의 하부로부터 명령어를 채취하고, 채취한 명령어를 해독한다.
④ 명령어해독부(15)는 해독한 후에, 실행명령버퍼(16)에 명령을 저장함과 동시에, 명령어해독카운터(18)는 명령어해독부(15)에서 해독한 명령어의 바이트의 개수에 대응하는 값에 의하여 어드레스를 카운트업한 후에, 카운트업한 어드레스를 유지한다.
⑤ 명렁어해독부(15)가 명령어의 최종어를 해독하는 동안, 연속해서 해독해야 할 명령어의 선두어드레스를 명령어해독카운터(16)에 세트한다.
⑥ 명령어해독부(15)는 1개의 명령어를 해독한 후에, 셀렉터(26)를 통하여, 명령어해독카운터(18)에 준비된, 연속해서 해독해야할, 명령의 선두어드레스를 프로그램카운터버퍼(20)에 저장한다.
⑦ 실행부(17)는, 선행의 실행명령의 처리가 종료하면, 실행명령버퍼(16)의 하부의 명령을 채취하고, 채취된 명령을 실행한다. 실행부(17)에 의하여 현재 실행하고 있는 명령어의 어드레스는 프로그램카운터버퍼(20)의 하부에 저장되어 있다.
⑧ 실행부(17)는 채취된 명령을 실행하여, 1개의 명령어에 대한 명령이 종료 할 때마다 프로그램카운터버퍼(20)의 하부의 어드레스를 폐기하고, 신규의 어드레스로 대치한다.
다음에 조건부 분기명령어의 분기성립시의 동작을 제 3 도와 제 4 도를 사용하여 설명한다.
①∼③은 분기를 하지 않는 통상동작과 동일하다.
④ 명령어해독부(15)는, 사이클(C2)에서, 조건부분기명령어(BCC)를 해독하면 명령어선행채취처리를 인터럽트 한다. 명령어버퍼(13)의 하부에는 명령어(A2)가 준비된 상태에서 인터럽트 한다.
⑤ 명령어해독부(15)는, 사이클(C3)에서, 조건부분기명령어(BCC)에 후속하는 명령어(A1)를 채취하여 해독을 시작한다.
⑥ 가산기(21)는, 사이클(C3)에서, 명령어버퍼(13)내에 저장되어 있는 분기 명령어(BCC)에 부속하는 디스플레이스먼트와 명령어해독카운터(18)에 저장된 분기명령어(BCC)의 어드레스를 각각 셀렉터(24)와 셀렉터(26)를 통해서 가산하여, 분기선명령어(B0)에 대응하는 분기선어드레스를 생성한다. 그후, 명령어 해독 카운터(18)는 해독한 명령어의 바이트의 개수에 대응하는 값에 대하여 어드레스를 카운트업한 후에 카운트업한 어드레스를 유지한다.
⑦ 상기 사이클(C3)에서 생성된 분기선어드레스는 분기용명령어선행채취 어드레스레지스터(12)에 저장됨과 동시에, 분기용 명령어해독 어드레스레지스터(19)에도 저장된다. 명령어선행채취카운터(11) 및 명령어해독카운터(18)에는 분기선 명령어(B0)의 어드레스는 저장되지 않는다.
⑧ 사이클(C4)에서, 명령어해독부(15)는 분기용명령어 선행채취 어드레스레지스터(12)로부터 출력되는 분기선명령어(B0)의 어드레스를 셀렉터(23)를 통해서 출력하고, 캐쉬(10)로부터 분기선 명령어(B0)를 채취하고, 분기용명령어버퍼(14)에 저장한다. 명령어버퍼(13)에는 분기선명령어(B0)를 저장하지 않는다.
⑨ 사이클(C4)의 최종 단계에서, 명령어 선행채취 카운터(11)에는, 명령어버퍼(13)에 저장되어 있는 명령어에 연속하여 채취한 명령어의 어드레스가 저장되어 있다. 분기용 명령어 선행채취 어드레스레지스터(12)에는, 분기선 명령어(B0)의 어드레스가 저장되어 있다. 명령어해독카운터(18)에는 분기선명령어(BCC)에 후속하는 명령어(A1)의 어드레스가 저장되어 있다. 분기용 명령어해독어드레스레지스터(19)에는, 분기선 명령어(B0)의 어드레스가 저장되어 있다.
명령어버퍼(13)의 하부에는, 명령어(A1)에 후속하는 명령어(A2)가 저장되어 있다. 분기용 명령어버퍼(14)에는, 분기선명령어(B0)이 저장되어 있다.
⑩ 분기성립 또는 불성립이 각각 확정된 후에 실행되어야할 명령어(A2), (B0) 및 어드레스를 준비한 후, 분기명령어 보다 선행하여 해독된 명령어(A0)의 실행부(17)에 있어서의 조건플래그의 확정을 대기하고, 실행부(17)를 제외한 다른 구성요소의 동작을 인터럽트 한다.
⑪ 사이클(C5)에서, 실행부(17)에서 명령어(A0)의 조건플래그를 확정한 후에, 명령어해독부(15)는 조건부 분기명령어(BCC)의 조건이 성립하였는지의 여부를 판단한다.
⑫ 분기가 성립할 경우에, 상기 사이클(C5)에서 명령어해독부(15)는 셀렉터(24)를 분기용 명령어버퍼(14)쪽으로 절환하고, 버퍼(14)에 저장되어 있는 분기선 명령어(B0)를 셀렉터(24)를 통하여 채취한다.
⑬ 명령어해독부(15)는 명령어버퍼(13)를 초기화 한다.
⑭ 명령어해독부(15)는 셀렉터(22)를 분기용 명령어 선행채취 어드레스레지스터(21)쪽으로 절환하고, 레지스터(12)에 저장되어 있는 분기선명령어(B0)의 선두어드레스를 셀렉터(22)를 통하여 명령어선행채취카운터(11)에 기록한다.
⑮ 명령어해독부(15)는 셀렉터(25), (26)를 분기용 명령어해독 어드레스레지스타(19)쪽으로 절환하므로써, 페지스터(19)에 저장되어 있는 분기선 명령어(B0)의 선두어드레스를 셀렉터(25)를 통하여 명령어 해독카운터(18)에 기록함과 동시에, 셀렉터(26)를 통하여 프로그램카운터버퍼(20)에 출력하고, 프로그램카운터버퍼(20)에서 분기선명령어(B0)를 분기명령어(BCC)의 어드레스에 중복기재한다.
Figure kpo00002
명령어해독부(15)는 명령어 선행채취 처리를 재개하여, 분기선 명령어(B0)를 해독한다.
Figure kpo00003
명령어해독부(15)는 명령어해독부(15)에서 해독되어 실효 어드레스 계산단계에 있는 명령어(A1)를 무효화 한다.
Figure kpo00004
사이클(C6)에서 명령어해독부(15)에서 해독한 명령을 실행명령버퍼(16)에 격납한다.
Figure kpo00005
사이클(C7)에서 실행부(17)는 실행명령버퍼(16)로부터 분기선명령어(B0)의 명령을 채취하고, 채취한 명령을 실행한다. 실행부(17)에서 현재 실행하고 있는 명령을 가지는 명령어에 대응하는 어드레스는 프로그램카운터버퍼(20)의 하부에 저장되어 있다.
Figure kpo00006
실행부(17)는 채취한 명령을 실행하여 1개의 명령어에 관계되는 명령이 종료할때마다 프로그램카운터버퍼(20)의 하부의 어드레스를 폐기하고, 신규의 어드레스로 대치한다.
다음에 조건부 분기명령어의 분기불성립시의 동작을 제 3 도와 제 5 도를 사용하여 설명한다.
①∼⑪은 조건부 분기명령어의 조건성립시의 동작과 동일하다.
⑫ 분기가 불성립의 경우, 사이클(C5)에서, 명령어해독부(15)는 셀렉터(24)를 명령어버퍼(13)쪽으로 절환하고, 버퍼(13)에 저장되어 있는 분기명령어에 후속하는 명령어(A2)을 셀렉터(24)를 통하여 채취한다.
⑬ 명령어해독부(15)는 셀렉터(22), (23), (24), (25), (26)를 분기를 하지 않는 동안 발생하는 통상 동작과 동일하게 절환한다.
⑭ 명령어해독카운터(18)에 저장되어 있는 분기명령에 후속하는 명령어(A2)의 선두어드레스를 셀렉터(26)를 통하여 프로그램카운터버퍼(20)에 출력하고, 프로그램카운터버퍼(20)에서 명령어(A2)의 선두어드레스를 이미 저장되어 있는 분기명령어(BCC)의 어드레스에 중복기재한다.
⑮ 명령어해독부(15)는 분기명령어에 후속하는 명령어(A2)를 해독한다.
Figure kpo00007
명령어해독부(15)는 해독을 완료한 명령어(A1)를 실효 어드레스 계산단계로 넘어간다.
Figure kpo00008
명령어해독부(15)는 명령어해독부(15)에서 해독한 명령어(A1)로부터 얻은 명령을 실행명령버퍼(16)에 저장한다.
Figure kpo00009
사이클(C6)에서, 실행부(17)는, 실행명령버퍼(16)로부터 명령어(A1)의 명령을 채취하고, 채취된 명령을 실행한다. 실행부(17)에서 현재 실행하고 있는 명령을 가지는 명령어에 대응하는 어드레스는 프로그램카운터버퍼(20)의 하부에 저장되어 있다.
Figure kpo00010
실행부(17)는 채취한 명령을 실행하고, 1개의 명령어에 관계되는 명령이 종료할때마다 프로그램카운터버퍼(20)의 하부의 어드레스를 폐기하고, 신규의 어드레스를 대치한다.
제 4 도에 대해서 이하 보충설명한다. 명령어해독부는 분기명령어(BCC)를 해독한후에 실효어드레스 계산을 행하면, 즉시 분기선 명령어의 채취를 행하여 분기선 명령어(B0)를 준비하고 현재 실행중의 명령어(A0)의 종료를 기다린다. 명령어(A0)가 종료하여 플래그가 확정되면 분기가 성립되고 분기선명령어(B0)가 즉시 명령어해독 단계로 넘어가게 된다. 명령어해독 단계에서 대기상태에 놓여 있던 분기명령어에 후속하는 명령어(A1)는 실효어드레스 계산단계에서 무효화된다(사선은 무효된 명령어와 명령).
제 5 도에 대해서 이하 보충설명한다. 명령어해독부는 분기명령어(BCC)를 해독한 후에, 실효어드레스 계산을 행하면, 즉시 분기선 명령어의 채취를 행하여 분기선명령어(B0)를 준비하고, 현재 실행중의 명령어(A0)의 종료를 기다린다. 명령어(A0)가 종료하고 플래그가 확정되면 분기가 불성립으로 되어, 이미 준비되어 있는 분기명령어에 후속하는 명령어(A2)가 즉시 명령어해독 단계로 넘어가게 된다. 당연히 명령어(A1)는 실효어드레스 계산단계로 넘어가게 된다.
본 실시예에 의하면 조건부분기명령어가 발생하였을 경우, 명령어 해독부는 분기명령어(BCC)를 실행부로 출력하지 않고 명령어해독부가 처리하고, 명령어 해독부는, 실행부에 있어서의 실행과 독립으로 병행하여 분기선명령어의 어드레스를 계산하고, 또한 분기선 명령어와 분기명령어에 후속하는 명령어의 양쪽을 실행부와 독립적으로 병행하여 고속으로 준비하고, 분기 조건이 확정할때까지 해독의 동작이나 명령의 출력을 인터럽트하여 분기조건의 판정을 명령어해독부에서 행하므로써, 이하의 효과가 생긴다.
① 미리 채취한 명령어를 무효로 하는 수가 적다. 즉 불필요한 선행 채취를 감소시킨다. 이에 의해, 버스의 교통량을 경감할 수 있으므로, 버스대역의 유효이용을 도모할 수 있다. 또한, 캐쉬의 불필요한 갱신을 감소할 수 있으므로, 갱신에 의한 오우버헤드의 삭감과 캐쉬의 적중률의 향상을 도모할 수 있다.
② 채취한 명령어의 무효화를 행할 경우에도, 무효화를 실행부의 실행동작과 병행하기 때문에, 명령어실행의 오우버헤드로 되지 않으므로, 성능의 저하를 야기하지 않는다.
③ 분기선 명령어의 어드레스 계산과 분기선 명령어의 채취를 실행부의 동작과 독립적으로 병행할 수 있기 때문에, 고속으로 분기선 명령어를 준비할 수 있다.
④ 분기 명령에 후속하는 명령어는 명령어버퍼에 준비되어 있고, 또한 해독이 완료된 명령어도 준비되어 있기 때문에, 후속하는 명령어를 고속으로 실행할 수 있다.
⑤ 실행부의 플래그를 확정하기 전에, 분기선 명령어와 분기명령어에 후속하는 명령어가 준비되어 있기 때문에, 분기성립 직후에 분기선 명령어를 해독할 수 있다.
⑥ 분기선 명령어와 분기명령어에 후속하는 명령어를 준비후에, 실행부의 플래그를 확정할때까지 동작을 정지하여 명령의 오버런을 행하지 않고, 또 무효화기구에 명령어과 명령을 무효화 하므로서, 실행명령버퍼와 실행부의 내부에서 명령취소기구, 상태회복기구 및 명령재실행기구등을 필요로 하지 않는다.
즉, 제 1 실시예와 같이, 분기명령어에 의한 명령어 순서와 파이프라인의 흐트러짐을 삭감하므로서, 고속분기처리를 행하고, 정보처리 장치의 성능향상을 도모한다.
또한, 제 1, 제 2 실시예에 있어서 명령어버퍼(3), (13), 실행명령버퍼(5), (16), 1자가 프로그램카운터버퍼(8), (20)는 복수단으로 하였으나, 1단으로도 실현가능하다.
또, 캐쉬히트(chche hit)의 경우를 설명하였으나, 캐쉬미스히트(cache miss hit)의 경우, 캐쉬(1), (10)가 없을 경우에 있어서도 주기억부에 대하여 명령어의 채취 동작이 행하여지므로, 효과에는 아무런 영향을 주지 않는다.
마찬가지로, 명령어 채취부, 명령어 해독부 및 실행부가 하나의 파이프라인 단계에 대응하도록 설명하였으나, 복수의 파이프라인 단계를 가질 경우에도 실현가능하다.

Claims (9)

  1. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 어드레스레지스터와, 해독하고 있는 명령어의 어드레스를 저장하는 명령어해독 어드레스레지스터와, 상기 명령어선행채취 어드레스레지스터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 분기선 어드레스를 계산하는 연산기와, 상기 명령어버퍼로부터 분기명령어를 채취하여 해독한 후에, 상기 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 연산기로부터 분기선 어드레스를 계산하고, 계산한 결과를 상기 명령어선행채취 어드레스레지스터 및 상기 명령어해독 어드레스레지스터에 저장하고, 저장한 상기 분기선에드레스에 대응하는 분기선 명령어를 입력하여 해독하는 명령어해독부를 구비한 것을 특징으로 하는 분기 처리장치.
  2. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 어드레스레지스터와, 해독하고 있는 명령어의 어드레스를 저장하는 명령어해독 어드레스레지스터와, 상기 명령어선행채취 어드레스레지스터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 상기 명령어해독 어드레스레지스터에 저장되어 해독하고 있는 명령어 어드레스와 상기 명령어 버퍼내의 데이터를 압력으로 하는 연산기와, 상기 명령어버퍼로부터 분기명령어를 채취하여 해독한 후에, 상기 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기연산기에 의해 분기선 어드레스를 계산하고, 계산한 결과를 상기 명령어선행채취 어드레스레지스터 및 상기 명령어 해독어드레스레지스터에 저장하고, 저장한 분기선 어드레스에 대응하는 분기선 명령어를 상기 명령어버퍼를 통해서 입력하여 해독하는 명령어 해독부를 구비한 것을 특징으로 하는 분기처리장치.
  3. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 카운터와,해독하고 있는 명령어 어드레스를 저장하는 명령어해독 카운터와, 상기 명령어선행채취 카운터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 상기 명령어해독 카운터에 저장되어 해독하고 있는 명령어의 어드레스와 상기 명령어버퍼내의 데이터를 가산하는 가산기와, 상기 명령어 버퍼로부터 분기명령어를 채취하여 해독한 후에, 상기 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 가산기에 의해 분기선어드레스를 계산하고, 계산한 결과를 상기 명령어선행채취 카운터 및 상기 명령어해독 카운터에 저장하고, 저장된 분기선어드레스에 대응하는 분기선 명령어를 상기 명령어버퍼를 통해서 입력하여 해독하는 명령어해독부를 구비한 것을 특징으로 하는 분기처리장치.
  4. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 어드레스레지스터와, 선행하여 채취한 분기선 명령어의 어드레스를 저장하는 분기용명령어선행채취 어드래스레지스터와, 해독하는 명령어의 어드레스를 저장하는 명령어해독 어드레스레지스터와, 해독하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어해독 어드레스레지스터와, 상기 명령어선행채취 어드레스레지스터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 상기 분기용 명령어선행채취 어드레스레스터의 분기선 명령어의 어드레스에 대응하는 분기선 명령어를 저장하는 분기용명령어버퍼와, 분기선 어드레스를 계산하는 연산기와, 상기 명령어버퍼로부터 조건부 분기명령어를 채취하여 해독한 후에 이 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 연산기에 의해 분기선어드레스를 계산하고, 계산한 결과를 상기 분기용 명령어 선행채취 어드레스레지스터 및 상기 분기용명령어해독 어드레스레지스터에 저장하고, 저장한 분기선어드레스에 대응하는 분기선 명령어를 상기 분기용 명령어버퍼에 저장하고, 분기명령어보다 선행하여 해독된 명령어의 실행완료까지 동작을 정지하여 연산결과의 확정을 대기하는 명령어해독부를 구비한 것을 특징으로 하는 분기처리장치.
  5. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 어드레스레지스터와, 선행하여 채취하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어선행채취 어드레스레지스터와, 해독하는 명령어어드레스를 저장하는 명령어해독 어드레스레지스터와, 해독하는 분기선 명령어의 어드레스를 저장하는 분기용명령어해독 어드레스레지스터와, 상기 명령어선행채취 어드레스레지스터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 상기 분기용 명령어선행채취 어드레스레지스터의 분기선명령어 어드레스에 대응하는 분기선 명령어를 저장하는 분기용 명령어 버퍼와, 분기선 어드레스를 계산하는 연산기와, 상기 명령어버퍼로부터 조건부분기 명령어를 채취하여 해독후에, 이 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 연산기에 의해 분기선 어드레스를 계산하고, 계산한 결과를 상기 분기용 명령어선행채취 어드레스레지스터 및 상기 분기용명령어해독 어드레스레지스터에 저장하고, 저장한 분기선 어드레스에 대응하는 분기선 명령어를 상기 분기용명령어버퍼에 저장하고, 분기 명령어 보다 먼저 해독된 명령어의 실행완료까지 동작을 인터럽트하여 연산결과의 확정을 대기하고, 확정후에 분기성립의 유무를 판단하여, 분기성립의 경우에는 분기명령어에 후속하는 해독된 명령어를 무효화함과 동시에 분기용명령어버퍼에 저장된 분기선명령어를 해독하고, 분기불성립의 경우에는 분기명령어에 후속하는 해독완료의 명령어를 계속해서 실행시킴과 동시에 명령어버퍼에 저장된 명령어를 해독하는 명령어 해독부를 구비한 것을 특징으로 하는 분기처리장치.
  6. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 어드레스레지스터와, 선행하여 채취하는 분기선 명령어 어드레스를 저장하는 분기용 명령어 선행채취 어드레스레지스터와, 해독하는 명령어 어드레스를 저장하는 명령어 해독 어드레스레지스터와, 해독하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어해독 어드레스레지스터와, 상기 명령어선행채취 해독 어드레스레지스터의 어드레스에 대응하는 명령어를 저장하는 명령어 버퍼와, 상기 분기용 명령어선행채취 어드레스레지스터의 분기선명령어 어드레스에 대응하는 분기선명령어를 저장하는 분기용 명령어버퍼와, 상기 명령어해독 어드레스레지스터에 저장되어 해독중에있는 명령어 어드레스와 상기 명령어버퍼내의 데이터를 입력으로 하는 연산기와, 상기 명령어 버퍼로부터 조건부분기명령어를 채취하여 해독후에, 상기 분기명령어보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 연산기에 의해 분기선 어드레스를 계산하고, 계산한 결과를 상기 분기용 명령어선행 채취 어드레스레지스터 및 상기 분기용 명령어해독 어드레스레지스터에 저장시키고, 저장한 분기선 어드레스에 대응하는 분기선 명령어를 상기 분기용 명령어버퍼에 저장하고 분기명령어 보다 선행하여 해독된 명령어의 실행완료까지 동작을 인처럽트 하여 연산결과의 확정을 대기하는 명령어 해독부를 구비한 것을 특징으로 하는 분기처리장치.
  7. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 어드레스레지스터와, 선행하여 채취하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어선행채 어드레스레지스터와, 해독하는 명령어의 어드레스를 저장하는 명령어해독 어드레스레지스터와, 해독하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어해독 어드레스레지스터와, 상기 명령어선행채취 어드레스레지스터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 상기 분기용 명령어선행채취 어드레스레지스터의 분기선 명령어의 어드레스에 대응하는 분기선 명령어를 저장하는 분기용 명령어버퍼와, 상기 명령어해독 어드레스레지스터에 저장되어 해독중에 있는 명령어 어드레스와 상기 명령어버퍼내의 데이터를 입력으로 하는 연산기와, 상기 명령어버퍼로부터 조건부 분기명령어를 채취하여 해독한 후에, 상기 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 연산기에 의해 분기선 어드레스를 계산하고, 계산한 결과를 상기 분기용 명령어선행채취 어드레스레지스터 및 상기 분기용 명령어해독 어드레스레지스터에 저장시키고, 저장한 분기선 어드레스에 대응하는 분기선 명령어를 상기 분기용 명령어버퍼에 저장하여 분기명령이 보다 선행하여 해독된 명령어의 실행완료까지 동작을 인터럽트 하여 연산결과의 확정을 대기하고, 확정한 후에 분기성립의 유무를 판단하여, 분기성립의 경우에는 분기명령어에 후속하는 해독 완료의 명령어를 무효화함과 동시에 분기용 명령어버퍼에 저장된 분기선 명령어를 해독하고, 분기불성립의 경우에는 분기명령어에 후속하는 해독완료의 명령어를 계속해서 실행시킴과 동시에 명령어버퍼에 저장된 명령어를 해독하는 명령어해독부를 구비하는 것을 특징으로 하는 분기처리장치.
  8. 선행채취된 명령어의 어드레스를 저장하는 명령어 선행채취 카운터와 선행하여 채취하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어 선행채취 어드레스레지스터와, 해독하는 명령어의 어드레스를 저장하는 명령어해독 카운터와, 해독하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어해독 어드레스레지스터와, 상기 명령어 선행채취 카운터의 어드레스에 대응한 명령어를 저장하는 명령어버퍼와, 상기 분기용 명령어 선행채취 어드레스레지스터의 분기선 명령어의 어드레스에 대응하는 분기선 명령어를 저장하는 분기용 명령어버퍼와, 상기 명령어 해독 카운터에 저장되어 해독중에 있는 명령어 어드레스와 상기 명령어버퍼내의 데이터를 가산하는 가산기와, 상기 명령어버퍼로부터 조건부분기 명령어를 채취하여 해독한 후에, 상기 분기명령어 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 가산기에 의해 분기선 어드레스를 계산하고, 계산한 결과를 상기 분기용 명령어 선행채취 어드레스레지스터 및 상기 분기용 명령어해독 어드레스레지스터에 저장시키고, 저장한 분기선 어드레스에 대응하는 분기선 명령어를 상기 분기용 명령어버퍼에 저장하여 분기명령어 보다 선행하여 해독된 명령어의 실행완료까지 동작을 정지하여 연산결과의 확정을 대기하는 명령어 해독부를 구부한 것을 특징으로 하는 분기처리장치.
  9. 선행채취된 명령어의 어드레스를 저장하는 명령어선행채취 카운터와, 선행하여 채취하는 분기선 명령어의 어드레스를 저장하는 분기용 명령어선행채취 어드레스레지스터와, 해독하는 명령어의 어드레스를 저장하는 분기용 명령어 해독 어드레스레지스터와, 상기 명령어 선행채취 카운터의 어드레스에 대응하는 명령어를 저장하는 명령어버퍼와, 상기 분기용 명령어선행채취 어드레스레지스터의 분기선 명령어의 어드레스에 대응하는 분기선 명령어를 저장하는 분기용 명령어버퍼와, 상기 명령어해독 카운터에 저장되어 해독중에 있는 명령어 어드레스와 상기 명령어 버퍼내의 데이터를 가산하는 가산기와, 상기 명령어버퍼로부터 조건부 분기명령어를 채취하여 해독한 후에, 상기 분기명령이 보다 선행하여 해독된 명령어의 실행과 독립적으로 병행해서 상기 가산기에 의해 분기선 어드레스를 계산하고, 계산한 결과를 상기 분기용 명령어선행 채취 어드레스레지스터 및 상기 분기용 명령해독 어드레스레지스터에 저장시키고, 저장한 분기선 어드레스에 대응하는 분기선 명령어를 상기 분기용 명령어버퍼에 젖아하여 분기명령어 보다 선행하여 해독된 명령어의 실행완료까지 동작을 정지하여 연산결과의 확정을 대기하고, 확정후 분기성립의 유무를 판단하여, 분기성립의 경우에는 분기명령어에 후속하는 해독된 명령어를 무효화함과 동시에 분기용 명령어버퍼에 저장된 분기선명령어를 해독하고, 분기불성립의 경우에는 분기명령어버퍼에 후속하는 해독완료의 명령어를 계속해서 실행시킴과 동시에 명령어버퍼에 저장된 명령어를 후속하는 명령어 해독부를 구비한 것을 특징으로 하는 분기처리장치.
KR1019880014765A 1987-11-12 1988-11-10 분기처리장치 KR930009617B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP62286065A JPH0760387B2 (ja) 1987-11-12 1987-11-12 情報処理装置
JP61-286065 1987-11-12
JP61-286066 1987-11-12
JP62-286066 1987-11-12
JP62286066A JPH0766326B2 (ja) 1987-11-12 1987-11-12 情報処理装置
JP62-286065 1987-11-12

Publications (2)

Publication Number Publication Date
KR890008644A KR890008644A (ko) 1989-07-12
KR930009617B1 true KR930009617B1 (ko) 1993-10-07

Family

ID=26556143

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880014765A KR930009617B1 (ko) 1987-11-12 1988-11-10 분기처리장치

Country Status (3)

Country Link
EP (1) EP0315995B1 (ko)
KR (1) KR930009617B1 (ko)
DE (1) DE3856299T2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0402524B1 (en) * 1988-11-25 1996-10-02 Nec Corporation Microcomputer capable of quickly processing a branch instruction code
FR2726103B1 (fr) * 1994-10-25 1996-12-13 Suisse Electronique Microtech Dispositif d'execution d'un programme d'instructions

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3418638A (en) * 1966-09-21 1968-12-24 Ibm Instruction processing unit for program branches
CA1250667A (en) * 1985-04-15 1989-02-28 Larry D. Larsen Branch control in a three phase pipelined signal processor

Also Published As

Publication number Publication date
EP0315995A3 (en) 1992-02-05
EP0315995B1 (en) 1999-01-27
DE3856299D1 (de) 1999-03-11
EP0315995A2 (en) 1989-05-17
DE3856299T2 (de) 1999-07-01
KR890008644A (ko) 1989-07-12

Similar Documents

Publication Publication Date Title
EP1012705B1 (en) Data processing device
CA1265873A (en) Data processor control unit having an interrupt service using instruction prefetch redirection
US5197136A (en) Processing system for branch instruction
KR930009617B1 (ko) 분기처리장치
US5276825A (en) Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction
KR100253655B1 (ko) 프로세서및번역장치
KR920009999B1 (ko) 정보처리장치
JPH07306785A (ja) 分岐命令実行機能を持つプロセッサおよび分岐命令制御方法
KR19990003937A (ko) 프리페치 장치
US6654872B1 (en) Variable length instruction alignment device and method
JP4413663B2 (ja) 命令キャッシュシステム
JPH0646382B2 (ja) プリフェッチキュー制御方式
JPH01126732A (ja) 情報処理装置
JP2508021B2 (ja) デ−タ処理装置
JPH04145531A (ja) マイクロプログラム制御装置
JPH1153188A (ja) 命令キャッシュ制御方式
JPH0766326B2 (ja) 情報処理装置
JPH01240931A (ja) データ処理装置
JP3739556B2 (ja) 情報処理装置
JP2586690B2 (ja) 命令プリフェッチ装置
JP4049490B2 (ja) 情報処理装置
JPS63106046A (ja) デ−タ処理装置
JP3712675B2 (ja) キュープロセッサにおける投機実行方法
JPH0296234A (ja) データ処理装置
JPS63163532A (ja) マイクロプロセツサ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20080925

Year of fee payment: 16

EXPY Expiration of term