KR920009999B1 - 정보처리장치 - Google Patents

정보처리장치 Download PDF

Info

Publication number
KR920009999B1
KR920009999B1 KR1019890000482A KR890000482A KR920009999B1 KR 920009999 B1 KR920009999 B1 KR 920009999B1 KR 1019890000482 A KR1019890000482 A KR 1019890000482A KR 890000482 A KR890000482 A KR 890000482A KR 920009999 B1 KR920009999 B1 KR 920009999B1
Authority
KR
South Korea
Prior art keywords
instruction
branch
execution
unit
destination address
Prior art date
Application number
KR1019890000482A
Other languages
English (en)
Other versions
KR890012226A (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 KR890012226A publication Critical patent/KR890012226A/ko
Application granted granted Critical
Publication of KR920009999B1 publication Critical patent/KR920009999B1/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/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
    • 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

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)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

내용 없음.

Description

정보처리장치
제1도는 본 발명의 1실시예에 따른 정보처리장치의 구성을 나타낸 블럭도,
제2도는 제1도에 도시된 정보처리장치에 의해 처리되는 명령의 구성을 나타낸 도면,
제3도는 제1도에 도시된 정보처리장치를 설명하기 위한 타이밍챠트,
제4a도 내지 제4c도는 제1도에 도시된 명령버퍼의 격납상태를 나타낸 도면,
제5도는 본 발명의 다른 실시예에 따른 정보처리장치의 구성을 나타낸 블럭도,
제6도는 종래의 정보처리장치의 구성을 나타낸 블럭도,
제7도는 제6도에 도시된 정보처리장치를 설명하기 위한 타이밍챠트이다.
* 도면의 주요부분에 대한 부호의 설명
1,11 : CPU 3 : 메모리
5,13 : 명령인출부 7,15 : 명령해독부
17 : 실효어드레스 생성부 9,19 : 실행부
21 : 명령버퍼 23 : 명령 선인출용 랫치회로(PCI)
[산업상의 이용분야]
본 발명은 정보처리장치에 관한 것으로, 특히 파이프라인(pipeline)처리에서의 분기명령에 대한 처리효율을 높여 처리능력을 향상시키도록 된 정보처리장치에 관한 것이다.
[종래의 기술 및 그 문제점]
최근의 정보처리장치에서는 처리속도를 향상시키기 위해 파이프라인 제어방식을 사용하고 있는 바, 이 파이프라인 제어방식은 명령을 실행하기까지의 일련의 처리를 복수의 스테이지(stage)로 분할해서 각각의 스테이지의 처리를 담당하는 복수의 처리회로를 병렬로 동작시킴으로써 처리속도의 고속화를 실현하도록 된 방식이다.
제6도는 이러한 파이프라인 제어방식에 의해 명령의 실행처리를 수행하는 정보처리장치의 구성을 나타낸 블럭도로서, 이 제6도에 있어서 정보처리장치는 명령의 인출(IF 스테이지), 명령의 해독(ID 스테이지), 실행처리(EX 스테이지)를 각각 독립적으로 수행하는 CPU(1)와, 실행처리하고자 하는 명령을 격납하는 메모리(3)를 갖추고 있으며, CPU(1)는 명령인출부(IFU ; 5)와 명령해독부(IDU ; 7) 및 실행부(EXU ; 9)를 구비하고 있다.
그중 명령인출부(5)는 메모리(3)로부터 독출되는 명령코드를 인출해서 격납하고, 격납된 명령코드를 명령 해독부(7)에 공급하는 것으로서, 인출된 복수의 명령코드를 격납하는 도시되지 않은 명령버퍼를 갖추고 있다. 여기에서, 명령인출부(5)는 이 명령인출동작을 1사이클로 수행하는 것으로 한다.
명령해독부(7)는 상기 명령인출부(5)로부터 공급되는 명령코드를 해독해서 그 해독된 명령코드를 실행부(9)에 공급하는 것이다. 여기에서도 명령해독부(7)는 이 명령해독동작을 1사이클로 수행하는 것으로 한다.
실행부(9)는 상기 명령해독부(7)로부터 공급되는 해독된 명령코드를 실행처리하는 것이고, 조건분기명령(Bcc)에는 조건의 성립(成立) 또는 불성립(不成立)에 대한 판정(상태플래그의 확인) 및 조건성립시의 분기처 어드레스의 산출 등이 포함된다.
이러한 구성에 있어서, 조건분기명령 이외의 명령(A1)의 실행처리에 이어서 조건분리명령(Bcc)이 처리되는 경우에 대해 제7도에 나타낸 타이밍챠트를 참조해서 설명한다.
먼저, 분기명령 이외의 명령(A1)은 T1사이클에서 인출되어 T2사이클에서 해독된 후 T3∼T5사이클기간에서 실행처리되고, 이 명령(A1)에 후속하는 조건분기명령(Bcc)은 T1사이클에서 명령(A1)이 인출된 후 T2사이클에서 인출되어 T3사이클에서 해독되는데, 이 해독된 조건분기명령(Bcc)은 먼저 해독된 명령(A1)이 T3∼T5사이클기간에서 실행처리되기 때문에 T6사이클에서 실행처리되게 된다.
명령(A1)의 실행처리가 종료하고, 조건분기명령(Bcc)의 실행처리가 개시되어 조건이 성립한 경우에는 분기처 어드레스가 산출된다. 분기처 어드레스가 산출되고, T7사이클에서 조건분기명령의 실행처리가 종료하면, 산출된 분기처 어드레스에 따라 T8사이클에서 분기처 명령(C1)의 선인출(prefetch)이 수행된다. 그리고 선인출된 분기처 명령(C1)은 후속의 T9사이클에서 해독되어 T10사이클에서 실행처리되게 된다.
이상에서 설명한 바와 같이 제6도에 도시된 종래의 정보처리장치에 있어서는, 조건분기명령(Bcc)은 EX 스테이지(실행처리)에서 분기처 어드레스가 산출되고, 조건분기명령(Bcc)의 실행처리가 종료한 후에 분기처 명령(C1)의 선인출이 개시되도록 되어 있기 때문에, 실행부(9)는 분기처 명령이 인출되고(T8사이클), 그 인출된 분기처 명령이 해독되는 기간(T9사이클)동안 분기처 명령의 실행처리를 기다리게 된다. 그에 따라, 실행부(9)에서는 T8, T9사이클의 기간동안 처리가 수행되지 않게 되므로, 파이프라인처리에서의 EX스테이지에 중단기간이 생기게 된다. 따라서, 조건분기명령의 실행처리로 인하여 장치 전체의 처리속도가 늦어지게 되어 처리능력이 저하되게 되는 문제가 생기게 된다.
[발명의 목적]
본 발명은 상기한 문제점을 감안해서 이루어진 것으로, 그 구성을 현저하게 증대시키지 않고 분기명령의 실행처리효율을 높여 장치 전체의 처리능력을 향상시킬 수 있도록 된 정보처리장치를 제공함에 그 목적이 있다.
[발명의 구성]
상기한 목적을 달성하기 위해 본 발명은, 실행처리하고자 하는 명령을 격납하는 메모리와, 상기 메모리로부터 독출되는 명령코드를 인출해서 격납하는 명령인출부, 상기 명령인출부에 격납된 명령을 해독하는 명령해독부 및, 상기 명령해독부에 의해 해독된 명령을 실행처리하는 실행부를 구비하고서, 파이프라인 제어방식에 의해 명령의 실행처리를 제어하는 정보처리장치에 있어서, 상기 명령해독부에 의해 해독된 명령이 분기명령인 경우, 상기 명령해독부로부터 공급되는 상기 분기명령의 분기처 어드레스를 산출하라는 취지의 요구신호에 따라 상기 실행부에서의 상기 분기명령의 실행처리가 종료하기 전에 상기 분기명령의 분기처 어드레스를 산출하는 실효어드레스 생성부를 더 구비하여 이루어지고, 상기 명령인출부는, 전(前)명령의 실행처리가 종료하여 상기 분기명령의 분기조건이 성립한 경우에 상기 실효어드레스 생성부에 의해 산출된 분기처리어드레스를 공급받아 셋트시키는 명령 선인출용 랫치회로를 더 갖추고 있는 것을 특징으로 한다.
[작용]
상기 구성에 있어서, 본 발명은 분기명령이 해독된 때에 분기처 어드레스를 산출해서 최소한 분기명령의 실행처리가 종료하기 전에 그 산출된 분기처 어드레스에 따라 분기처 명령을 선인출하도록 되어 있다.
[실시예]
이하, 예시도면을 참조해서 본 발명의 실시예를 상세히 설명한다.
제1도는 본 발명의 1실시예에 따른 정보처리장치의 구성을 나타낸 블럭도로서, 이 제1도에 도시된 정보처리장치는 명령의 인출(IF 스테이지), 명령의 해독(ID 스테이지), 실효어드레스의 산출(AG 스테이지) 및, 명령의 실행처리(EX 스테이지)를 파이프라인 제어방식에 의해 각각 별도로 수행하는 CPU(11)를 갖추고 있고, 조건분기명령의 처리에 있어서 조건분기명령의 처리가 종료하기 전에 조건분기명령의 분기처 어드레스를 산출하도록 되어 있다.
제1도에 있어서, CPU(11)는 명령인출부(IFU ; 13)와 명령해독부(IDU ; 15), 실효어드레스 생성부(AGU ; 17) 및, 실행부(EXU ; 19)를 구비하고 있다. 그중 명령인출부(13)는 명령버퍼(21)와 명령 선인출용 랫치회로(PCI ; 23)를 갖추고 있다.
명령버퍼(21)는, 메모리(3)로부터 독출되어 인출된 명령코드를 격납하고, 격납된 명령코드를 독출해서 그 일부를 명령해독부(15)에 공급하는 한편 그 이외의 부분을 실효어드레스 생성부(AGU ; 17)에 공급하는 것이다.
인출된 명령코드는 제2도에 나타낸 바와 같이 16비트를 1워드 단위로 해서 구성되어 있는 바, 어드레스 지정 모드(addressing mode)에 관한 정보를 포함하는 16비트의 오퍼레이션 코드(operation code)에 어드레스 지정시의 변위를 나타내는 16비트 또는 32비트의 변위가 부가되어 구성되어 있다. 따라서, 명령버퍼(21)는 명령코드를 16비트 단위로 격납하도록 되어 있다.
또, 명령버퍼(21)는 다음에 독출될 1워드의 명령코드의 위치(어드레스)를 나타내는 도시되지 않은 포인터(pointer)를 구비하고 있는데, 이 포인터는 1워드의 명령코드가 순차적으로 독출될 때마다 독출된 명령코드의 다음에 격납되어 있는 1워드의 명령코드의 위치를 나타내는 것이다. 따라서, 명령버퍼(21)는, 이 포인터가 지시하는 위치에 따라 명령버퍼(21)로부터 독출된 명령코드중에서 오퍼레이션 코드를 명령해독부(15)에 공급하는 한편, 변위를 실효어드레스 생성부(17)로부터 공급되는 변위의 송출을 요구하는 DIS신호에 따라 실효어드레스 생성부(17)에 공급하게 된다.
명령 선인출용 랫치회로(23)는 실효어드레스 생성부(17)로부터 공급되는 실효어드레스를 격납하는 것으로, 격납된 실효어드레스는 메모리(3)로부터 독출되는 명령의 명령어드레스로서 메모리(3)에 공급된다.
명령해독부(15)는 명령버퍼(21)로부터 16비트 단위로 공급되는 오퍼레이션 코드를 받아서 이 오퍼레이션 코드를 해독하여 그 해독결과의 명령코드를 실행부(19)에 공급한다. 또, 명령해독부(15)는 오퍼레이션 코드의 해독결과로서 얻어지는 어드레스지정 모드에 관한 정보와 더불어 이 정보에 따라 실효어드레스를 산출하라는 취지의 요구신호(AR신호)를 실효어드레스 생성부(17)에 공급한다. 이 AR신호는, 명령해독부(15)에서 해독된 명령코드가 조건분기명령을 나타내는 경우에는 조건분기명령에서의 분기처 어드레스의 산출을 요구하는 신호로 되게 된다. 더욱이, 명령해독부(15)는, 해독된 명령코드가 조건분기명령인 경우에는 조건분기명령의 직전의 명령이 실행부(19)에서 실행처리된 시점에서 확정되는 상태플래그를 검출하여 조건분기명령이 성립하는가의 여부를 판단하고, 그 판단결과를 실효어드레스 생성부(17)에 공급한다.
실효어드레스 생성부(17)는 명령해독부(15)로부터 공급되는 어드레스지정 모드에 관한 정보에 따라 해독된 명령코드에 변위가 부가되어 있는 경우에는 변위의 송출을 요구하는 DIS신호를 명령인출부(13)의 명령버퍼(21)에 공급하게 된다. 그에 따라, 명령버퍼(21)로부터 변위가 실효어드레스 생성부(17)로 공급되면, 실효어드레스 생성부(17)는 명령해독부(15)로부터 공급되는 AR신호에 따라 명령버퍼(21)로부터 공급되는 변위를 이용해서 어드레스지정 모드에 대응하는 실효어드레스를 산출하고, 그 산출된 실효어드레스를 명령선인출용 랫치회로(23)에 공급하게 된다.
또, 실효어드레스 생성부(17)는 명령해독부(15)에서 해독된 명령코드가 조건분기명령인 경우에는 명령해독부(15)로부터 공급되는 어드레스지정 모드 및 AR신호에 따라 명령버퍼(21)로부터 대응하는 변위를 공급받아 분기처 어드레스를 산출한 다음 그 산출된 분기처 어드레스를 보존하게 된다. 그리고, 분기조건이 성립한 경우에는 산출된 분기처 어드레스를 명령 선인출용 랫치회로(23)에 공급해서 셋트시키는 반면, 분기조건이 성립되지 않은 경우에는 산출된 분기처 어드레스를 명령 선인출용 랫치회로(23)에 공급하지 않게 되므로 명령 선인출용 랫치회로(23)로의 셋트는 이루어지지 않게 된다. 즉, 분기처 어드레스의 산출은 분기조건의 성립 및 불성립에 관계없이 이루어지고, 분기조건이 성립한 경우에만 산출된 분기처 어드레스가 명령 선인출용 랫치회로(23)에 셋트되게 되는 것이다.
실행부(19)는 명령해독부(15)로부터 공급되는 명령코드를 실행처리함과 더불어 실행처리후의 상태플래그 정보를 명령해독부(15)에 공급한다.
본 발명의 1실시예에 따른 정보처리장치는 이상 설명한 바와 같이 구성되어 있는 바, 본 실시예의 작용을 제3도에 나타낸 타이밍챠트를 참조해서 설명한다.
여기에서, 명령의 인출(IF 스테이지)과 명령의 해독(ID 스테이지)은 공히 1사이클로 종료하는 것으로 한다.
먼저, 분기명령 이외의 명령(A1)이 메모리(3)로부터 독출되어 T1사이클에서 선인출되어 명령버퍼(21)에 격납된 후, T2사이클에서 명령해독부(15)에 공급되어 해독되면, 이 해독된 명령(A1)의 실효어드레스가 T3사이클에서 해독결과의 어드레스지정 모드 및 AR신호에 따라 명령버퍼(21)로부터 공급되는 변위를 이용해서 실효어드레스 생성부(17)에서 산출됨과 더불어 명령(A1)의 실행처리가 실행부(19)에서 동시에 개시되어 T5사이클에서 실행처리가 종료하게 된다.
한편, 명령(A1)에 후속하는 명령이 메모리(3)로부터 독출된 다음 T2사이클에서 인출되어 명령버퍼(21)에 격납되면, 그 격납된 명령의 오퍼레이션 코드는 제4a도에 나타낸 바와 같이 명령버퍼(21)의 포인터의 지시에 의해 T3사이클에서 명령해독부(15)에 공급되어 해독된다.
이 해독결과에 있어서, 이 명령이 조건분기명령(Bcc)이라고 하면, 이 조건분기명령(Bcc)의 분기처 어드레스를 산출하라는 취지의 AR신호가 실효어드레스 생성부(17)에 공급된다. 실효어드레스 생성부(17)는 이 AR신호를 수신한 다음 조건분기명령(Bcc)의 해독결과로서 얻어져 명령해독부(15)로부터 공급되는 어드레스지정 모드를 참조해서 조건분기명령(Bcc)에 변위가 부가되어 있는가의 여부를 판별하게 된다. 여기에서, 조건분기명령(Bcc)의 오퍼레이션 코드에 32비트의 변위가 부가되어 있는 것이라고 하면, 실효어드레스 생성부(17)는 명령버퍼(21)에 대해 조건분기명령(Bcc)의 오퍼레이션 코드에 대응하는 변위를 요구하기 위해 DIS신호를 명령버퍼(21)로 공급하게 된다.
이와 같이, DIS신호가 명령버퍼(21)에 공급되면, 조건분기명령(Bcc)이 명령버퍼(21)로부터 명령해독부(15)로 공급된 후 명령버퍼(21)의 포인터는 제4b도에 나타낸 바와 같이 조건분기명령(Bcc)의 변위의 위치를 지시하고 있기 때문에, 16비트의 변위가 순차적으로 독출되어 실효어드레스 생성부(17)에 공급되게 된다. 32비트의 변위가 독출되면, 제4c도에 나타낸 바와 같이 포인터는 변위의 다음에 명령버퍼(21)에 인출되어 격납되어 있는 명령(A3)의 오퍼레이션 코드의 위치를 지시하게 된다.
32비트의 변위가 실효어드레스 생성부(17)에 공급되면, 이 변위를 이용해서 조건분기명령(Bcc)의 분기처어드레스가 조건분기명령(Bcc)의 해독결과로서 얻어지는 어드레스지정 모드에 따라 T4사이클에서 산출되게 된다.
이 경우, 분기처 어드레스는 T4사이클에서 산출되게 되지만, 조건분기명령(Bcc) 전에 해독된 명령(A1)의 실행처리가 T5사이클까지 종료하지 않고, 또 T4사이클의 시점에서는 분기조건의 성립 또는 불성립을 지시하는 상태플래그의 값이 확인되지 않기 때문에, 산출된 분기처 어드레스는 T5사이클기간동안 실효어드레스 생성부(17)에 보존되고, 실효어드레스 산출스테이지(AG 스테이지)는 대기상태로 되게 된다.
이어, 명령(A1)의 실행처리가 T5사이클에서 종료하여 상태플래그가 확정되면, 분기조건의 성립/불성립이 결정되게 된다. 이때 분기조건이 성립한 경우에는 산출된 분기처 어드레스가 실효어드레스 생성부(17)로부터 명령 선인출용 랫치회로(23)로 공급되어 셋트되고, 그에 따라 T6사이클에서 조건분기명령(Bcc)의 실행이 개시됨과 동시에 명령 선인출용 랫치회로(23)에 셋트된 분기처 어드레스에 따라 메모리(3)로부터 분기처 명령(C1)이 독출되어 선인출된 다음 명령버퍼(21)에 격납되게 된다. 그 후, 분기처 명령(C1)은 T7사이클에서 해독되고, 조건분기명령(Bcc)의 실행처리가 종료한 직후의 T8사이클에서 실효어드레스의 산출과 동시에 실행처리가 이루어지게 된다. 즉, 분기처 명령(C1)은 제3도에 나타낸 바와 가타이 조건분기명령(Bcc)의 실행처리가 종료한 다음 사이클에서 실행처리되게 된다.
상술한 본원 제1도의 실시예의 동작을 각 사이클별로 나누어서 설명하면 다음과 같다.
①T1사이클
명령버퍼(21)가 조건분기명령 직전의 명령(A1)을 격납한다.
②T2사이클
명령해독부(15)가 명령버퍼(21)에 격납된 명령(A1)을 해독한다. 명령버퍼(21)가 명령(A1)에 후속하는 명령(Bcc)를 격납한다.
③T3사이클
실행부(19)가 해독된 명령(A1)의 실행처리를 개시한다.
명령해독부(15)가 명령버퍼(21)에 격납된 명령(Bcc)을 해독한다. 「이 결과, 명령(Bcc)이 조건분기명령이라는 것이 판명되므로, 명령해독부(15)는 명령(Bcc)의 어드레스지정 모드를 나타내는 신호 및 이것을 참조해서 분기처 어드레스의 산출을 요구하는 AR신호를 실효어드레스 생성부(17)에 출력하게 된다. 또, 명령버퍼(21)는 실효어드레스 생성부(17)에서의 분기처 어드레스의 산출에 필요한 변위를 요구하는 DIS신호를 실효어드레스 생성부(17)로부터[제5도의 실시예의 경우는 명령해독부(15)로부터] 입력받고, 변위를 실효어드레스 생성부(17)에 출력하게 된다.」(「」로 둘러싸인 부분은 T4사이클에서 실행하도록 해도 좋다.)
④T4사이클
실행부(19)는 명령(A1)의 실행처리를 계속한다. 이 때문에 명령해독부(15)는 대기상태(wait)로 된다. 실효어드레스 생성부(17)는 명령버퍼(21)로부터 입력된 변위를 이용해서 어드레스지정 모드에 따른 분기처 어드레스를 산출한다.
⑤T5사이클
실행부(19)는 명령(A1)의 실행처리를 종료한다. 이 결과, 상태플래그가 확정된다. 명령해독부(15)는, 이 상태플래그에 따라 T3사이클에서 해독된 명령(Bcc)의 분기조건의 성립여부를 판단하고, 그 결과를 실효어드레스 생성부(17)에 출력한다. 한편, 이때 명령해독부(15)는 새로운 명령의 해독은 하지 않는다(대기상태). 실효어드레스 생성부(17)는, 분기조건이 성립한 경우에는 T4사이클에서 산출한 분기처 어드레스를 명령 선인출용 랫치회로(23)에 공급한다. 한편, 분기조건이 성립하지 않은 경우에는 분기처 어드레스는 명령 선인출용 랫치회로(23)에 공급되지 않는다.
⑥T6사이클(T5사이클에서 분기조건이 성립한 경우)
실행부(19)는 명령(A1)에 후속하는 명령(Bcc)의 실행처리를 개시한다. 한편, T5사이클에서 분기조건의 성립여부판단은 종료하고 있기 때문에, 명령(Bcc)의 실행처리는 CPU외부로부터의 인터럽트유무의 판단 등으로 제한된다.
명령버퍼(21)는 명령 선인출용 랫치회로(23)에 셋트된 분기처 어드레스에 대응하는 분기처 명령(C1)을 메모리(3)로부터 독출해서 격납한다.
⑦T7사이클(T5사이클에서 분기조건이 성립한 경우)
실행부(19)는 명령(Bcc)의 실행처리를 종료한다. 명령해독부(15)는 명령버퍼(21)에 격납된 명령(C1)을 해독한다.
⑧T8사이클(T5사이클에서 분기조건이 성립한 경우)
실행부(19)는 분기처 명령(C1)의 실행처리를 개시한다.
이와 같이, 본 실시예에서는 조건분기명령 직전의 명령(A1)의 실행처리중에 미리 조건분기명령(Bcc)의 분기처 어드레스를 산출해 놓고, 조건분기명령 직전의 명령(A1)의 실행처리가 종료한 후에 이 명령(A1)을 실행함으로써 확정되는 상태플래그를 이용해서 조건분기명령의 분기조건 성립여부를 판단하며, 분기조건이 성립한 경우 조건분기명령(Bcc)의 실행처리가 종료하기 이전에 분기처 명령(C1)의 선인출을 개시하도록 되어 있으므로, 분기처 명령을 조건분기명령(Bcc)의 실행사이클수만큼 빨리 인출할 수 있게 된다. 그에 따라, 조건분기명령의 실행처리에 따른 파이프라인의 스테이지에 중단기간이 생기는 것이 방지되어 처리효율을 높일 수 있게 된다.
다음에는 분기조건이 성립하지 않은 경우에 대해 설명한다.
분기처 어드레스가 산출된 후, 분기조건의 불성립이 판명된 경우에는, 그 산출된 분기처 어드레스는 명령 선인출용 랫치회로(23)에 셋트되지 않게 되므로, 분기처 명령의 인출은 수행되지 않게 된다. 따라서, 조건분기명령의 다음 명령(A3)이 미리 명령버퍼(21)에 격납되어 있는 경에에는 이 명령(A3)이 포인터의 지시에 의해 독출되어 해독이 개시되게 된다.
한편, 분기처 어드레스의 산출이 종료하기 전에 분기조건의 불성립이 판명된 경우에는, 분기처 어드레스의 산출은 수행되지만, 산출된 분기처 어드레스의 명령 선인출용 랫치회로(23)로의 셋트는 수행되지 않게 된다. 즉, 분기처 어드레스의 산출이 종료하기 전에 분기조건의 불성립이 판명된 경우에 있어서도, 분기처 어드레스를 산출함으로써, 명령버퍼(21)로부터 조건분기명령(Bcc)의 변위를 독출하여 명령버퍼(21)의 포인터를 제4c도에 나타낸 바와 같이 조건분기명령(Bcc)의 다음 명령(A3)의 오퍼레이션 코드를 지시하도록 이동시키게 된다. 그에 따라, 분기조건이 성립하지 않는 경우에 있어서도, 조건분기명령(Bcc)의 다음 명령(A3)의 오퍼레이션 코드가 명령버퍼(21)로부터 독출되어 정상적인 독출동작이 이루어지게 된다.
여기에서, 분기조건이 성립하지 않은 경우에, 분기처 어드레스의 산출을 수행하지 않고 조건분기명령(Bcc)의 변위의 워드수만큼 포인터를 진행시켜 조건분기명령(Bcc)의 다음에 명령(A3)의 오퍼레이션 코드를 독출하도록 포인터를 제어하는 방법이 고려되고 있지만, 이러한 제어방법에서는 분기조건이 성립하는 때와 성립하지 않는 때에서 포인터의 제어를 변경시켜야만 되기 때문에, 명령버퍼(21)의 제어논리가 복잡해지게 된다. 이에 대해, 본 발명의 실시예에서는 분기조건의 성립, 불성립에 관계없이 명령버퍼(21)는 통상의 동작을 수행하면 좋으므로, 여분의 구성을 설치할 필요가 없게 됨과 더불어 명령버퍼(21)의 제어논리를 간단화할 수 있게 된다.
또한, 본 발명은 상기 실시예에 한정되지 않고, 예컨대 제5도에 나타낸 바와 같이 명령버퍼(21)로의 변위의 요구를 나타내는 DIS신호를, 명령코드의 오퍼레이션 코드가 명령해독부(15)에서 해독되어 어드레스지정 모드가 판명된 후, 명령해독부(15)로부터 명령버퍼(21)에 공급하도록 해도 좋다.
한편, 본 발명의 특허청구의 범위의 각 구성요소에 병기한 참조부호는 본 발명의 이해를 용이하게 하기 위한 것으로서, 본 발명의 기술적 범위를 도면에 도시된 실시예에 한정되는 의도로 병기한 것은 아니다.
[발명의 효과]
이상에서 설명한 바와 같이 본 발명에 의하면, 분기명령이 해독된 때에 분기처 어드레스를 산출해서 최소한 분기명령의 실행처리가 종료하기 전에 산출된 분기처 어드레스에 따라 분기처 명령을 선인출하도록 되어 있으므로, 구성을 현저하게 증대시키지 않고 분기명령의 실행처리효율을 높여 장치 전체의 처리능력을 향상시킬 수 있게 된다.

Claims (3)

  1. 실행처리하고자 하는 명령을 격납하는 메모리(3)와, 상기 메모리(3)로부터 독출되는 명령코드를 인출해서 격납하는 명령인출부(13), 상기 명령인출부(13)에 격납된 명령을 해독하는 명령해독부(15) 및, 상기 명령해독부(15)에 의해 해독된 명령을 실행처리하는 실행부(19)를 구비하고서, 파이프라인 제어방식에 의해 명령의 실행처리를 제어하는 정보처리장치에 있어서, 상기 명령해독부(15)에 의해 해독된 명령이 분기명령인 경우, 상기 명령해독부(15)로부터 공급되는 상기 분기명령의 분기처 어드레스를 산출하라는 취지의 요구신호에 따라 상기 실행부(19)에서의 상기 분기명령의 실행처리가 종료하기 전에 상기 분기명령의 분기처 어드레스를 산출하는 실효어드레스 생성부(17)를 더 구비하여 이루어지고, 상기 명령인출부(13)는, 전(前)명령의 실행처리가 종료하여 상기 분기명령의 분기조건이 성립한 경우에 상기 실효어드레스 생성부(17)에 의해 산출된 분기처 어드레스를 공급받아 셋트시키는 명령 선인출용 랫치회로(23)를 더 갖추고 있는 것을 특징으로 하는 정보처리장치.
  2. 제1항에 있어서, 상기 실효어드레스 생성부(17)는, 분기조건의 성립, 불성립에 관계없이 분기처 어드레스를 산출하도록 된 것을 특징으로 하는 정보처리장치.
  3. 제1항 또는 제2항에 있어서, 상기 실효어드레스 생성부(17)에 의해 산출된 분기처 어드레스에 대응하는 분기처 명령은, 상기 분기명령의 분기조건이 성립하는 것이 판단된 후에 상기 명령인출부(13)에 격납되는 것을 특징으로 하는 정보처리장치.
KR1019890000482A 1988-01-18 1989-01-18 정보처리장치 KR920009999B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP63-7035 1981-01-18
JP63007035A JP2723238B2 (ja) 1988-01-18 1988-01-18 情報処理装置

Publications (2)

Publication Number Publication Date
KR890012226A KR890012226A (ko) 1989-08-25
KR920009999B1 true KR920009999B1 (ko) 1992-11-10

Family

ID=11654782

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890000482A KR920009999B1 (ko) 1988-01-18 1989-01-18 정보처리장치

Country Status (5)

Country Link
US (1) US5237664A (ko)
EP (1) EP0324952B1 (ko)
JP (1) JP2723238B2 (ko)
KR (1) KR920009999B1 (ko)
DE (1) DE3855629T2 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68928937T2 (de) * 1988-12-27 1999-07-01 Fujitsu Ltd Steuerungssystem und -verfahren zum Instruction Fetch
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5574887A (en) * 1993-09-20 1996-11-12 Apple Computer, Inc. Apparatus and method for emulation routine pointer prefetch
US5408622A (en) * 1993-09-23 1995-04-18 Apple Computer, Inc. Apparatus and method for emulation routine control transfer via host jump instruction creation and insertion
US5748976A (en) * 1993-10-18 1998-05-05 Amdahl Corporation Mechanism for maintaining data coherency in a branch history instruction cache
DE19945940C2 (de) * 1999-09-24 2002-01-17 Infineon Technologies Ag Verfahren und Vorrichtung zur Bearbeitung bedingter Sprungbefehle in einem Prozessor mit PIPELINE-Rechnerarchitektur
JP4159586B2 (ja) * 2006-08-03 2008-10-01 エヌイーシーコンピュータテクノ株式会社 情報処理装置および情報処理の高速化方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
JPS51138355A (en) * 1975-05-26 1976-11-29 Hitachi Ltd Processing apparatus with a high speed branching feature
JPS5318931A (en) * 1976-08-06 1978-02-21 Hitachi Ltd Information processor
JPS573142A (en) * 1980-06-04 1982-01-08 Matsushita Electric Ind Co Ltd Instruction prefetching system
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
JPS57114949A (en) * 1981-01-05 1982-07-17 Nec Corp Data processor
JPS5848144A (ja) * 1981-09-16 1983-03-22 Nec Corp デ−タ処理装置の分岐命令制御方式
US4435756A (en) * 1981-12-03 1984-03-06 Burroughs Corporation Branch predicting computer
US4742451A (en) * 1984-05-21 1988-05-03 Digital Equipment Corporation Instruction prefetch system for conditional branch instruction for central processor unit
JPH0769818B2 (ja) * 1984-10-31 1995-07-31 株式会社日立製作所 デ−タ処理装置
JPS61229134A (ja) * 1985-04-03 1986-10-13 Nec Corp マイクロコンピユ−タ
JPH0789319B2 (ja) * 1985-04-22 1995-09-27 株式会社日立製作所 デ−タ処理装置における先行制御装置
US4679141A (en) * 1985-04-29 1987-07-07 International Business Machines Corporation Pageable branch history table
JPS61289429A (ja) * 1985-06-18 1986-12-19 Matsushita Electric Ind Co Ltd 演算処理装置
CA1254661A (en) * 1985-06-28 1989-05-23 Allen J. Baum Method and means for instruction combination for code compression
US4777587A (en) * 1985-08-30 1988-10-11 Advanced Micro Devices, Inc. System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses
DE3650473T2 (de) * 1985-11-08 1996-08-14 Nippon Electric Co Mikroprogrammsteuereinheit
US4853840A (en) * 1986-01-07 1989-08-01 Nec Corporation Instruction prefetching device including a circuit for checking prediction of a branch instruction before the instruction is executed
WO1987005417A1 (en) * 1986-02-28 1987-09-11 Nec Corporation Instruction prefetch control apparatus
US4991080A (en) * 1986-03-13 1991-02-05 International Business Machines Corporation Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions
JPS6393041A (ja) * 1986-10-07 1988-04-23 Mitsubishi Electric Corp 計算機
JP2603626B2 (ja) * 1987-01-16 1997-04-23 三菱電機株式会社 データ処理装置

Also Published As

Publication number Publication date
US5237664A (en) 1993-08-17
EP0324952A2 (en) 1989-07-26
EP0324952B1 (en) 1996-10-23
EP0324952A3 (en) 1991-09-25
DE3855629T2 (de) 1997-03-27
JP2723238B2 (ja) 1998-03-09
DE3855629D1 (de) 1996-11-28
KR890012226A (ko) 1989-08-25
JPH01183737A (ja) 1989-07-21

Similar Documents

Publication Publication Date Title
CA1268555A (en) Branch stream coprocessor
KR940003383B1 (ko) 파이프라인 처리 방식으로 동작하는 프리디코더 유니트 및 주 디코더 유니트를 구비한 마이크로프로세서
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
JP2722523B2 (ja) 命令先取り装置
EP0488819B1 (en) Conditional branch instructions execution apparatus
EP0180725A2 (en) Instruction prefetch operation for branch instructions
KR920009999B1 (ko) 정보처리장치
KR930011686B1 (ko) 짧은 명령실행시간과 작은 점유면적을 갖는 가변 워드길이 명령시스템용 데이타 처리장치
KR930001055B1 (ko) 가변 단어길이 명령의 병렬해독 및 병렬실행을 하는 데이터 처리장치
KR960042329A (ko) 프로그램의 코드크기의 축소화를 지원하는 마이크로 프로세서
EP0223150A2 (en) Information processing apparatus
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
EP0292188B1 (en) Cache system
KR920006770B1 (ko) 명령을 페치(fetch)하기 위한 제어 시스템
JPH06295243A (ja) データ処理装置
US5243705A (en) System for rapid return of exceptional processing during sequence operation instruction execution
KR920003182B1 (ko) 마이크로프로세서
JPS63163929A (ja) マイクロプロセツサ
KR920004433B1 (ko) 데이타 처리 시스템
JP3017866B2 (ja) 割込み処理方式
JP3414579B2 (ja) プログラマブルコントローラ
KR100200487B1 (ko) 파이프라인 구조를 가진 중앙처리장치 및 점프/호출 실행방법
JPH0248733A (ja) 情報処理装置
KR100214084B1 (ko) 마이크로 프로세서의 다수 명령어의 병렬 처리 방법 및 그 장치
JPH06314196A (ja) 情報処理方法および装置

Legal Events

Date Code Title Description
A201 Request for examination
E601 Decision to refuse application
E902 Notification of reason for refusal
AMND Amendment
J2X1 Appeal (before the patent court)

Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL

G160 Decision to publish patent application
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20031030

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee