KR900002603B1 - 브랜치(branch)제어방식 - Google Patents

브랜치(branch)제어방식 Download PDF

Info

Publication number
KR900002603B1
KR900002603B1 KR1019850700123A KR850700123A KR900002603B1 KR 900002603 B1 KR900002603 B1 KR 900002603B1 KR 1019850700123 A KR1019850700123 A KR 1019850700123A KR 850700123 A KR850700123 A KR 850700123A KR 900002603 B1 KR900002603 B1 KR 900002603B1
Authority
KR
South Korea
Prior art keywords
instruction
branch
stage
address
pipeline
Prior art date
Application number
KR1019850700123A
Other languages
English (en)
Other versions
KR850700168A (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 후지쓰가부시끼가이샤
Priority claimed from PCT/JP1984/000536 external-priority patent/WO1985002280A1/ja
Publication of KR850700168A publication Critical patent/KR850700168A/ko
Application granted granted Critical
Publication of KR900002603B1 publication Critical patent/KR900002603B1/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
    • 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)

Abstract

내용 없음.

Description

[발명의 명칭]
브랜치(branch) 제어방식
[도면의 간단한 설명]
제 1 도는 본 발명에 관련되는 분기명령의 명령형식을 표시한 도면.
제 2 도는 종래 방식에 의해서 상기 분기명령을 실행할 경우의 동작을 모식적으로 표시한 도면.
제 3 도는 본 발명의 한 실시예를 모식적으로 표시한 도면.
제 4 도는 본 발명의 타의 실시예를 모식적으로 표시한 도면.
제 5 도는 제 4 도의 실시예에 있어서의 효과의 예를 설명하는 도면.
제 6 도는 본 발명에 있어서의 한 실시예 요부 전체 구성도를 표시한 도면.
[발명의 상세한 설명]
[기술분야]
본 발명은, 브랜치 제어방식, 특히 파이프라인 제어의 데이타처리장치에 있어서, 분기명령을 실행할 경우에 있어서 브랜치선(先)어드레스를 조기 발생토록해서, 분기성공시에 있어서의 취소하는 처리량을 적게하도록 한 브랜지 제어방식에 관한 것이다.
[기술배경]
최근의, 대형 계산기 시스템이 있어서는, 파이프라인에 의해서, 데이타를 고속으로 처리하는 것이 일반적으로 되어가고 있다.
이 경우, 통상의 시퀀스로 흐르는 명령에 대해서는, 파이프라인의 특성을 살려 고속처리를 행할 수가 있지만, 분기명령에 대해서는, 분기조건이 결정된 시점에서, 이미 파이프라인에 취입되어 있는 후속명령이 무효가 되어, 싸이클이 손실되는 문제가 있다. 특히, 최근 일반화되어가고 있는 데이터 처리기술이다. 데이타베이스를 구축해서, 데이타 처리를 행할 경우라든가, 온라인으로 데이타 처리를 행할 경우에는, 해당 데이타 처리를 행하는 프로그램중에서, 분기명령이 실행되는 비율이 크고, 상기 파이프라인중에 발생하는 싸이클손실이 눈에 띌 정도이며, 이 싸이클 손실을 적게하는 파이프라인 처리방식이 요망되고 있다.
파이프라인에서 명령의 실행을 행하는 데이타 처리 시스템에 있어서, 본 발명에 관련되는 지표고분기(index high branching ; 이하 BXH라고 한다)명령, 혹은 지표저등분기(index low equal branchig ; 이하 BXLE라고 한다)명령을 실행할 경우의 종래 방식의 동작에 관해서 설명한다.
상기의 BXH 명령, BXLE 명령은 제 1 도에 표시하는 것과 같은 레지스터 스토레이지(RS)형식의 명령이며, OP는 오퍼레이숀 코드부, R1, R3, B3은 레지스터 지정부이다. R1으로 표시되는 범용 레지스터의 내용은 제 1 오퍼랜드, R3으로 표시되는 범용 레지스터의 내용은 제 3 오퍼랜드, B2로 표시되는 범용 레지스터의 내용에 D2의 값을 더한 것이 제 2 오퍼랜드로 된다.
BXH 명령은, 상기 제 1 오퍼랜드(이하 지표라고 칭한다)에, 상기 제 3 오퍼랜드의 증분을 가하여, 그 결과가 R3부에 의해서 결정되는 비교수보다 크다면, 제 2 오퍼랜드가 표시하는 어드레스로 분기하는 명령이다. 그리고, 분기가 성립하든, 안하든 제 1 오퍼랜드의 내용은, 증분을 가한 값으로 갱신된다. 증분은, 전술한 바와같이 R3로 지정되는 범용 레지스터의 내용(제 3 오퍼랜드)인 것이며, 비교수는 기수번호의 범용 레지스터가운데 있으며, R3가 우수 레지스터를 가리킬때는, R3+1로 표시되는 범용 레지스터의 내용으로 되며, R3가 기수 레지스터를 표시할때는, R3로 표시되는 범용 레지스터의 내용 그 자신으로 된다.
제 1 오퍼랜드와 비교수가 동일의 범용 레지스터일지라도 좋고, 그때는 증분을 더하기 전의 처음의 값이 비교수로서 사용된다.
BXLE 명령은, 분기의 성립조건이 역이라는 것, 즉 지표가 비교수보다 작든가 같을때에 분기된다는 것을 제외하고는, 상기 BXH 명령과 같은 것이다.
상기, BXH 명령, BXLE 명령을 실행할때의 종래 방식에 의한 파이프라인 동작을, 제 2 도에 표시한 모식도에 의해서 설명한다. 이 도면에서, P1, P2, P3, P4, P5, P6는 파이프라인의 각 스테이지를 표시하며, 일반적인 동작은 아래와 같다.
즉:
P1 스테이지 : 명령의 디코오드 및 범용 레지스터의 판독을 행한다.
P2 스테이지 : 오퍼랜드 어드레스 계산 및 버퍼메모리 억세스 요구의 발신을 행한다.
P3 스테이지 : 어드레스 변환 버퍼에 의한 논리 어드레스에서 실 어드레스 변환을 행한다.
P4 스테이지 : 버퍼 메모리 억세스를 행한다.
P5 스테이지 : 연산을 행한다.
P6 스테이지 : 연산결과의 범용 레지스터로의 기록을 행한다.
이다. 그리고, 파이프라인에 의한 명령의 실행은, 일반적으로 하나의 명령이 1 또는 복수의 후로우로 전개되어서 행해진다.
그리고 상기 제 2 도시와 같은 처리동작을 행하는 종래의 구성은 후술하는 제 6 도 도시의 본 발명에 있어서의 구성하고는 세부에 있어서, 다소 다르지만, 요부에 있어서 같은 양태를 가지고 있는 것으로 생각해도 좋다. 여기서 종래 구성에 관해서 대략의 설명을 하겠다.
제 6 도 도시의 스테이지 P6는 상술한 각 스테이지와 같은 것이며, 제 6 도 도시의 스테이지 I1, I2, I3는 명령 취출 파이프라인의 스테이지이며, 각 스테이지에서의 동작은 :
I1 스테이지 : 생성된 분기선 어드레스를 어드레스 변환 버퍼로 보낸다.
I2 스테이지 : 어드레스 변환 버퍼에 의해서 논리 어드레스에서 실 어드레스로 변환한다.
I3 스테이지 : 상기 실 어드레스에 의해서 버퍼 메모리를 억세스한다.
P1 스테이지 : 버퍼 메모리로부터 명령을 판독하여, 디코오드하며, 오퍼랜드를 레지스터에서 판독한다.
이다. 그리고, 어드레스 변환버퍼는 캐쉬(cash) 메모리 16 또는 20의 일부로서, 또는 그 전단에 설치되어 있다고 생각해도 좋지만 도시 생략하고 있다.
도시의 명령 어드레스 레지스터(이하 IAR라고 한다) 11에, 이제부터 실행할 명령의 어드레스가 세트되어, 실효 어드레스 레지스터(이하 EAR라 한다) 15, 캐쉬 메모리 16을 거쳐 해당하는 명령어가 판독되어 명령어 레지스터(이하 IWR라 한다) 17에 세트된다. 해당 IWR 17은 일반적으로 복수단의 쉬프트 레지스트 구성을 가지고 있으며, 상술한 파이프라인에서 장래 처리될 복수의 명령이 순차 프리헷치(prefetch)되어 격납된다.
프리헷치된 명령은 셀렉터 18을 통해서 추출되어, 상기 스테이지 P1 내지 P6에 표시하는 파이프라인으로 들어간다. 즉, 명령어중의 오퍼레이숀 코드부(OP부)는 레지스터 28, 29 … 32와 각 스테이지의 진행에 따라서 쉬프트되어간다. 또 가산기 4를 통해서 당해명령에 대응하는 오퍼랜드의 어드레스가 계산되어, 캐쉬 메모리 20에 의해서 해당하는 오퍼랜드가 판독되어, 연산회로 9로 공급된다. 그리고 연산결과는 레지스터 10을 경유해서 범용 레지스터의 하나 22에 세트된다. 이동안, 파이프라인에 인도된 명령이 분기명령이었을 경우에는, 도시 브랜치 결정회로 33이 분기성공인가 불성공인가를 결정하도록 동작한다.
이하 제 2 도 내지 제 4 도에 표시하는 부호 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12는 각각 제 6 도에 표시한 것과 같은 부호를 갖는 각 구성단위와 대응한 것으로 생각해도 좋다.
종래 상술한 바와같은 각 스테이지의 기능을 사용해서, 상기 브랜치 명령을 실행할 경우, 제 2 도 도시와 같이, 해당 명령의 제 1 후로우의 P2 스테이지에 있어서, 해당 명령의 R1으로 표시되는 범용 레지스터의 내용을 베이스 레지스터(이하 BR라 한다) 1에, R3으로 표시되는 범용 레지스터의 내용을 인덱스 레지스터(이하 XR라고 한다) 2에 세트하여, 3입력가산기 4를 사용해서(이 BR 1, XR 1 및 후술의 DR 3과, 3 입력가산기 4는 어드레스 생성회로를 구성한다), 제 1 오퍼랜드와 증분과의 가산을 행하여, 그 결과를 파이프라인에 흐르게 해서, P3 스테이지에서 P3 싸이클 오퍼랜드 어드레스 레지스터(이하 P30AR라 한다) 5로부터 P4 스테이지에 있어서의 P4 싸이클 오퍼랜드 어드레스 레지스터(이하 P40AR라 한다) 6을 통해서, P5 스테이지에서, 오퍼랜드 레지스터 #2(이하 2R라함) 8에 세트한다. (이하 1R라 한다)동시에, 오퍼랜드 레지스터 #1 7에, R3+1 또는 R3으로 표시되는 범용 레지스터의 값인 비교수를 세트하여 연산부가산기 9에서 비교연산을 행하여(이 1R 7, 2R 8, 연산기 가산기 9는 연산부를 구성한다), 1R와 2R의 값의 대소관계를 표시하는 신호(즉, 1R=2R, 1R>2R, 1R<2R를 표시하는 신호)를 출력함과 더불어, 2R의 값을 리절트(result) 레지스터(RR) 10에 세트한다. 해당 1R와 2R와의 대소관계를 표시하는 신호에 의해, 브랜치의 결정을 행한다.
종래의 방식의 경우에는, 상기 비교연산을 P5 스테이지로 행하고 있다.
다음에, 제 2 후로우의 P2 스테이지에서, 상기 명령의 B2로 표시하는 범용 레지스터의 값을 BR 1에 세트하며, D2의 값을 디스플레이스먼트 레지스터(이하 DR라 한다) 3에 세트하며, 제 1 후로우에서 사용한 3입력가산기 4에 의해 브랜치선 어드레스를 생성하여, P3 스테이지에서 명령 어드레스 레지스터(이하 IAR라 한다) 11에 세트함과 동시에, P2 스테이지에서 어드레스 생성시에, 브랜치선 명령의 판독요구를 낸다. 이것에 의해 명령 취출 파이프라인(I1, I2, I3, P1)에 기동이 걸려, 이 경우에는 브랜치선 명령의 취출이 행해지는 것으로 된다.
당해 브랜치선 명령 인출 파이프라인은, 스테이지 I1, I2 및 I3으로 나아가, 스테이지 P1에서 명령이 꺼내져, 브랜치가 성공이면 이때, 통상의 파이프라인에 들어갈 수가 있다.
제 1 오퍼랜드의 지표값에 증분이 가산된 값의 범용 레지스터 R1에로의 기록은, 제 2 후로우의 P6 후로우의 P6 스테이지의 끝의 타이밍에서, RR 10에서 R1으로 표시되는 범용 레지스터에 대해서 행해진다.
종래 방식에 있어서는, 제 2 도로부터 명백한 바와같이 상기 브랜치 명령에 잇따르는 브랜치 불성공측의 명령에 대해서도 명령의 선취가 행해지고 있으며, 불성공측의 명령의 제 3 후로우목이 P1 스테이지에서 P2 스테이지로 옮길때에, 브랜치선 명령을 P1 스테이지로 거둬들일 수가 있다. 그러나, 브랜치 성공이 결정될 때까지 3개의 후로우분의 명령이 흐르는 것으로 된다. 그리고 브랜치 조건이 결정되었을때에 브랜치 불성공이면 제 4 후로우목을 P1 스테이지에 넣지만, 브랜치 성공이면, 이미 흐르고 있는 상기 3 후로우분의 명령의 처리를 취소하고 브랜치선 명령을 P1 스테이지로 거두어 들이도록 되는 것으로 된다.
이상의 설명에서 명백한 바와같이, 종래 방식에 있어서, BXH 명령과 BXLE 명령을 실행했을 때 브랜치 성공시에는 5싸이클, 불성공시에는 2싸이클 걸리는 것으로 되며, 양자의 싸이클 차이가 크며, 그러면서도 브랜치 성공시에는 파이프라인에서, 전술의 3개의 후로우분의 처리를 취소하지 않으면 아니되는 문제가 있었다.
성공시와 불성공시의 싸이클수가 다른 것은, 그 이후의 명령의 조립하는 방식, 즉 프로그램의 작성을 복잡하게 하여, 또 취소되는 후로우가 많은 것은 취소하기 위한 처리(예를들면 버퍼메모리나 주 메모리에로의 취소의뢰)가 복잡, 다량으로 되어, 어느것이나 실용상 커다란 문제가 된다.
[발명의 개시]
본 발명은 상기 종래의 결점에 비추어보아, BXH 명령과 BXLE 명령을 파이프라인에서 처리하는 데이타 처리장치에 있어서, 브랜치조건의 결정을 빨리 행하여, 파이프라인에서 무효 후로우를 적게해서, 상기 BXH 명령과 BXLE 명령의 고속화를 행하는 방식을 제공하는 것을 목적으로 하는 것이다.
그리고 이 목적은, 본 발명에 의하면, 어드레스 계산용의 가산기를 이용해서 분기선 명령의 취출에 지연없이 분기조건을 결정하는 연산을 행하는 방식을 제공하는 것에 의해서 달성되며, BXH 명령과 BXLE 명령을 고속으로 처리할 수 있는 이점이 있다.
[발명을 실시하기 위한 최량의 형태]
제 3 도는 본 발명의 한 실시예를 모식적으로 표시한 도면이며, 제 4 도는 본 발명의 타의 실시예를 모식적으로 표시한 도면이며, 제 5 도는 제 4 도의 실시예에 있어서의 효과의 한예를 설명하는 도면이지만, 상기 제 3 도와 제 4 도에 표시하는 각 구성요소는, 제 6 도에 표시하는 구성도중의 구성요소이다
제 3 도의 실시예의 요지를 요약하면, 제 1 후로우의 P2 스테이지에서 분기선 어드레스를 우선 구하고, 그리고 제 1 오퍼랜드의 지표와 증분과의 가산뿐이 아니고, 비교수와의 비교연산에 관해서도, 전술의 어드레스 생성회로를 사용하여, 제 1 후로우의 P5 스테이지에서 실행되는 연산부를 사용하는 처리보다 빠르게, 브랜치의 결정을 행하도록 한 것이다.
제 3 도에 있어서, 1-6과, 8-11은 제 2 도에서 설명한 것과 같은 것이며, 12는 워크(work)어드레스 레지스터(이하 WAR이라 한다)이다.
도면에서는, 우선 전술의 브랜치 명령의 제 1 후로우의 P2 스테이지에서, B2로 표시되는 범용 레지스터의 값을 BR 1에 세트하여, D2의 값을 DR 3에 세트하며(XR 2는 사용하지 않음), BR 1과 DR 3과를 3입력가산기 4에서 가산해서, 브랜치선 어드레스를 생성하여, P3 스테이지에서, IAR 11에 세트함과 동시에, P2 스테이지에서 어드레스 생성시에, 브랜치선 명령 취출 파이프라인에 기동을 건다. 이결과, 브랜치선 명령 취출은 파이프라인은, 상기 제 1 후로우의 P2 스테이지(이것이 11 스테이지에 상당한다)의 타이밍으로부터, 12, 13 스테이지와 나아가, P1 스테이지에서 명령이 취출되어 통상의 명령 파이프라인으로 들어갈 수가 있다.
다음에, 제 2 후로우의 P2 스테이지에 있어서, R1로서 표시되는 범용 레지스터의 값을 BR 1에 세트하여, R3으로 표시되는 범용 레지스터의 값을 XR 2에 세트하여(DR 3은 사용치 않음), 해당 BR 1과 XR 2와를 3입력가산기 4(즉, 전술의 어드레스 생성회로)에서 가산하여, 제 1 오퍼랜드와 증분의 가산값으로서, P30AR 5와 WAR 12에 세트하여, 파이프 라인으로 흐르게 한다.
파이프라인에서는, 그러한 값이 P3 스테이지의 전기 P30AR 5로부터 P4 스테이지의 P40AR 6을 통해서, P5 스테이지내의 2R 8에 세트된 다음 연산부 가산기 9를 통해서 P6 스테이지의 최초의 타이밍에서, RR 10에 세트된다.
다음의 제 3 후로우의 P2 스테이지에서는 XR 2에 R3+1 또는 R3으로 표시되어지는 범용 레지스터의 값인 비교수를 세트하여, 상기 제 2 후로우로 세트되어진 WAR 12로부터 XR 2의 감산을 3입력가산기 4로 행하여(즉, 비교연산을 행하여)해당 감산결과로부터 WAR 12의 값과 XR 2의 값간의 대소관계를 구하여, 브랜치의 결정을 행한다.
이때, 브랜치 선명령 취출 파이프라인은 13 스테이지로서, 브랜치 선명령을 취출한 곳으로 브랜치 성공시에는, 즉시 P1 스테이지로 들어갈 수가 있다.
또, 제 1 오퍼랜드의 지표값에 증분이 가산된 값(제 2 후로우의 P6 스테이지에 있어서, RR 10에 세트되어 있다)의 범용 레지스터 R1에로의 기록은, 제 3 후로우의 P6 스테이지의 마지막의 타이밍에서, RR 10에서 R1로 표시되는 범용 레지스터에 대해서 행해진다.
제 3 도에 있어서는, 제 1 후로우로 분기선 어드레스를 우선 구한다는 것과 상기 비교연산을 위해 어드레스 생성회로를 사용한다는 것에 포인트가 있다.
이와같은 연산방식을 채용함에 의해, 브랜치 조건이 결정될 때까지 브랜치 불성공측의 명령이 한 후로우 이상 흐르지 않기 때문에 브랜치 성공시의 해당 후로우의 취소등의 제어가 간단하게 된다.
또, 브랜치 성공시의 처리 싸이클은 4싸이클로 되지만, 브랜치 불성공시의 처리 싸이클은 3싸이클이며, 그 차가 종래방식에 비교하여 적어지게 되어, 제어가 간단하게 되기 때문에, 전체로서 성능의 향상을 도모할 수가 있다.
다음에, 제 4 도에서, 본 발명의 타의 실시예를 설명한다.
제 4 도의 실시예의 요지를 요약하면, 제 1 후로우로 분기선 어드레스를 구하는 것은 제 3 도의 예와 같지만 본 실시예는 어드레스 생성회로의 가산기가, 3입력가산기인 점을 이용해서, 제 1 오퍼랜드의 지표와 증분고의 가산과, 해당 가산값에 대한 비교수의 감산과를 동시에 행해서, 상기 가산값과 비교수와의 대소관계를 구하여, 브랜치 조건의 결정을 보다 빨리 행하도록 한 것이다.
제 4 도에서, 1-4, 7-11은 제 2 도에서 설명한 것과 같은 것이다.
제 4 도에서는, 전술의 브랜치 명령의 제 1 후로우의 P2 스테이지에서, B2로 표시되는 범용 레지스터의 값을 BR 1에 세트하여, D2의 값을 DR 3에 세트하여, BR 1과 DR 3과를 3입력가산기 4에서 가산하며, 브랜치선 어드레스로 생성하며, P3 스테이지에서, IAR 11에 세트한다. 또, P2 스테이지에서의 어드레스 생성시에, 브랜치선 명령 취출 파이프라인에 기동을 건다. 이 결과, 브랜치선 명령 취출 파이프라인은, 상기 제 1 후로우의 P2 스테이지의 타이밍(이것은 I1 스테이지에 상당)에서, I2, I3 스테이지로 나아가며, P1 스테이지에서 명령이 취출되어 통상의 명령 파이프라인에 들어갈 수가 있다.
다음에, 제 2 후로우의 P2 스테이지에서, R1에서 표시되는 범용 레지스터의 값을 BR 1에 세트하여, R3에서 표시되는 범용 레지스터의 값을 XR 2에 세트하여, R3 또는 R3+1로 표시되는 범용 레지스터의 값인 비교수를 DR 3에 세트한다.
그리고, 「BR 1+XR 2+(DR 3의 2의 보수)」가 되는 연산을, 어드레스 생성회로에서 행하는 것에 의해, 제 1 오퍼랜드의 지표와 증분의 가산값과 비교수와의 대소관계를 P2 스테이지의 1연산 싸이클로 구할 수가 있어, 곧바로 브랜치의 결정을 행할 수가 있다.
이때, 브랜치선 명령 취출 파이프라인은, 12 스테이지인 것이며, 브랜치 선명령이 취출되는 13 스테이지까지에, 1싸이클분의 기다림이 필요하지만, 브랜치 명령이 판독되었을때에는, 곧바로 P1 스테이지로 들어갈 수가 있다.
같은 제 2 후로우의 P5 스테이지에서, R1에서 표시되는 범용 레지스터의 값과 R3에서 표시되는 범용 레지스터의 값을 각각 1R 7과 2R 8에 세트하여, 연산부 가산기 9를 사용해서 가산하며, 그 결과를 P6 스테이지의 처음의 타이밍에서 RR 10에 세트하여, P6 스테이지의 마지막의 타이밍에서, RR 10에서 R1로 표시되는 범용 레지스터에 세트하는 것에 의해, 제 1 오퍼랜드의 지표값에 증분이 가산된 값의 범용 레지스터 R1에로의 기록을 행할 수가 있다.
도면에서는, 제 1 오퍼랜드의 지표와 증분의 가산과, 해당 가산 결과에 대한 비교수의 감산을 어드레서 생성회로의 3입력가산기로 동시에 행하여 브랜치의 결정조건을 얻고있는 점에 포인트가 있다.
이와같은 방식을 취함에 의해, 브랜치 결정시까지 브랜치 불성공측의 명령은 단하나의 후로우밖에 흐르지 않기 때문에 브랜치 성공시의 해당 후로우의 취소등의 제어가 간단하게 된다.
또, 이 경우는, 브랜치 성공시의 처리 싸이클이 4싸이클로 되지만, 브랜치 불성공시의 처리 싸이클은 2싸이클로 된다.
또, 파이프라인이 타의 조건에 의해 「기다림」이 생겼을 경우, 브랜치선 명령의 취출 파이프라인이 기동된 후에는, 브랜치 성공시에도 처리 싸이클이 3싸이클로 되어, 성능의 향상을 도모할 수가 있다.
이 경우의 예를, 제 5 도의 타임 챠트로 설명한다.
제 5 도에서, n은 당해 브랜치 명령이고, 제 4 도에서 설명하고 있듯이, 두개의 후로우로 전개되어서 실행된다.
그리고, 예를들어 n-3의 명령에서, P5 스테이지가 2싸이클을 필요로 하는 명령이었다고 한다면, n-2명령에서는, P4 스테이지에서 「기다림」이 생기며, n-1명령에서는, P3 스테이지에서「기다림」이 생기며, n의 당해 브랜치 명령의 제 1 후로우로는, P2 스테이지에서, 제 2 후로우로는, P1 스테이지에서「기다림」이 발생한다.
이결과, 당해 브랜치 명령 n에서, 브랜치 결정이 행해졌을 때(즉, 제 2 후로우의 P2 스테이지), 브랜치선 명령 취출 파이프라인은 13 스테이지에 있으며, 브랜치 성공시에는, 즉시, P1 스테이지로 들어갈 수가 있으며, 해당 브랜치 명령의 외관상의 처리 싸이클은 3싸이클로 됨을 알수 있다.
이것은, 제 4 도에서 설명한 브랜치 결정시에 아직 브랜치선 명령의 취출이 끝나지 않았다(즉, 12 스테이지에서)고하는 즉 명령 취출은 파이프라인의 지연을 상기 통상의 파이프레인에서 발생한「기다림」에서 흡수된 결과의 효과이다.
제 6 도는 상기 제 3 도나 제 4 도를 참조해서 설명한 처리동작을 행하는 본 발명의 한 실시예의 요부 전체 구성도를 표시하고 있다.
도시 좌단에 표시하는 34는, 명령 헷치 제어부(IFC)이며, 최초의 명령 판독시에, 명령 훼치 콘스탄트 레지스터(IFKR) 13에 "0"을 세트하고, 최초의 명령의 판독이후에서는 고정치 "8"을 IFKR 13에 세트한다. 최초의 명령일 때에는, 도시하지 않는 써비스 프로세서에서 도시좌단과 우단과의 두개의 각 명령 어드레스 레지스터(IAR(Ⅰ)) 11과 (IAR(Ⅱ)) 26과에 프로그램의 선두 어드레스가 세트된다. 그리고 가산기 14는 IRA 11의 내용과 IFKR 13의 내용을 가산해서 실효 어드레스를 생성하며, 이것을 실효 어드레스 레지스터(EAR) 15에 세트한다. EAR 15의 내용에 근거해서 어드레스 변환 버퍼(도시하지 않음) 및 캐쉬 메모리(10) 16이 억세스되어, 명령어 레지스터(IWR) 17에 순차 명령이 프리헷치된다.
스테이지 P1에서 하나의 명령이 추출된다. 스테이지 P2에서 (ⅰ) 당해 명령의 OP부는 레지스터 28에 세트되고, (ⅱ) 당해 명령의 오퍼랜드 어드레스는 가산기 4에 의해서 계산된다. 그리고, 스테이지 P3, P4를 통해서 각 오퍼랜드값이 레지스터 21, 7, 8에 세트가능한 상태로 되어 스테이지 P5에서 연산회로 9에 의해 연산된다. 스테이지 P6에서 연산결과가 얻어진다.
상기 스테이지들은 P3, P4, P5, P6로 변동하는 사이에 오퍼랜드 어드레스도 레지스터 6, 23, 24로 쉬프트된다. 상기 스테이지 P6에서 당해 명령이 파이프라인에서 탈출될 때에, 명령 어드레스 레지스터(Ⅱ) 26의 내용은 가산기 27과 명령기 장생성 회로(ILC) 25에 의해서 갱신된다. 즉, 명령 어드레스 레지스터(Ⅱ) 26의 내용은 당해 파이프라인에서 처리되고 있는 명령들중에서 가장 오랜 명령에 관한 어드레스를 보지하는 형태로 된다.
그리고, 도면중앙하부의 브랜치 결정회로 33은, 제 3 도나 제 4 도에 표시된 「브랜치 결정」을 행한다. 또 제 3 도나, 제 4 도에서, 분기명령에 대응하여 제 1 후로우나 제 2 후로우나 제 3 후로우로 진술한 것은, 제 6 도 도시의 구성을, 시분할적으로 복수의 흐름에 따르는 형식으로 사용하고 있음을 의미하고 있다. 즉, 예를들어 제 3 도에 대응해서 설명하면, 제 6 도 도시의 가산기 4는 제 1 후로우의 스테이지 P2에서 IAR Ⅱ의 내용 결정을 위해서 사용됨과 동시에 제 2 후로의 스테이지 P2에서도 지표값의 갱신을 위해서 사용되고, 또한 제 3 후로우의 스테이지 P2에서도 브랜치 결정을 위해서 사용된다.
또, 이상의 설명은 BXH와 BXLE에 관해서 행했으나, 이것 이외의 분기명령일지라도, 분기선 어드레스의 계산, 분기조건의 판정 및 어떤 연산처리와 같은 3개의 연산이 필요한 분기명령에 대해서는 본 발명이 적용 가능한다.

Claims (5)

  1. 지표에 증분을 가산하여, 그 결과와 비교수와의 비교를 행하여, 비교수보다 크던가, 작던가 혹은 같던가에 의해서, 지정 어드레스에 분기하는 분기명령을 파이프라인에서 처리하는 데이타 처리장치에 있어서, 분기선 명령의 취출이 지연되지않도록 분기조건을 결정하는 연산을 행하되, 상기 파이프라인에서 데이타를 처리하는 데이타 처리장치는 복수 스테이지분의 처리에서 어드레스 생성을 행하는 명령을 취출하는 처리부(I1~I3)와, 복수 스테이지분의 처리에서 명령실행을 행하는 명령실행 처리부(P1∼P6)와를 구비하며 상기 분기명령(BXH 또는 BXLE)이 상기 명령실행처리부에 도입되면, 상기 명령을 취출하는 처리부는 당해 분기가 불성공으로 됐을 경우의 후속명령(제 3 도의 제 1 및 제 2 후로우)을 순차 헷치함과 더불어 당해 분기가 성공했을 경우의 분기선측의 명령(제 3 도의 브랜치선 명령)을 순차헷할 수 있도록 구성되어, 상기 분기조건의 결정시에 분기가 성공했을 경우에는 상기 분기선측의 명령이 상기 명령실행 처리부에 도입되며, 그것까지의 사이에 실행된 상기 불성공측의 후속 명령에 대응한 처리를 무효화시키도록 구성되는 것을 특징으로 하는 브랜치 제어방식.
  2. 제 1 항에 있어서, 상기 분기조건을 결정하는 연산을 행하는데 있어 상기 명령 취출처리부내의 어드레스 생성회로(4)를 사용해서 상기 지표(R1)에 증분(R3)을 가산하는 연산을 행하여, 그 결과와 상기 비교수(3R+1 또는 R3)와의 비교연산을 행해서 분기조건을 결정하는 것을 특징으로 하는 브랜치 제어방식.
  3. 제 1 항에 있어서, 상기 분기조건을 결정하는 연산을 행하는데에 있어서 상기 명령 취출처리부내의 어드레스 생성회로(4)의 3입력가산기를 사용하여 그 하나의 입력에 상기 지표(R1)를 주고, 타의 입력에 상기 증분(R3)을 주어, 제 3의 입력에 비교수(R3+1 또는 R3)의 2의 보수를 주어서, 3입력가산을 행해서 분기조건을 결정하는 것을 특징으로 하는 브랜치 제어방식.
  4. 제 1 항에 있어서, 상기 명령실행처리부(R1∼P6)는 분기명령이 도입될 즈음될 즈음에 당해 명령실행처리부의 적어도 선두 스테이지의 다음의 스테이지(P2)에서 분기선 명령의 어드레스를 결정해서, 상기 명령 취출처리부(I1∼I3)에서의 당해 분기선 명령의 취출을 기동시킴과 더불어, 당해 명령 취출처리부에서 분기선 명령이 이용 가능하게 추출되어질때까지(제 3 도 또는 제 4 도의 브랜치선 명령의 I3 스테이지까지)의 사이에 분기조건을 결정할 수 있도록 구성되는 것을 특징으로 하는 브랜치 제어방식.
  5. 오퍼랜드 데이타용의 연산기(9)란 별도로 어드레스 계산용 연산기(4)를 구비한 파이프라인처리부에 의해, 명령을 복수의 후로우로 전개해서 처리하는 데이타 처리장치에 있어서, 분기선 어드레스의 계산과, 분기조건의 판정과, 오퍼랜드데이타의 갱신과의 세 개의 연산을 필요로 하는 분기명령을 처리함에 즈음하여, 제 1의 후로우에서 상기 어드레스 계산용 연산기(4)에 의해서 분기선 어드레스를 계산하여, 제 2 후로우 이후에서, 상기 어드레스 계산용 연산기(9)에 의해서 분기조건의 판정을 행하는 것을 특징으로 하는 브랜치 제어방식
KR1019850700123A 1983-11-16 1984-11-08 브랜치(branch)제어방식 KR900002603B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP58-215196 1983-11-16
JP21519658 1983-11-16
PCT/JP1984/000536 WO1985002280A1 (en) 1983-11-16 1984-11-08 Method of controlling branching

Publications (2)

Publication Number Publication Date
KR850700168A KR850700168A (ko) 1985-10-25
KR900002603B1 true KR900002603B1 (ko) 1990-04-20

Family

ID=69104155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019850700123A KR900002603B1 (ko) 1983-11-16 1984-11-08 브랜치(branch)제어방식

Country Status (1)

Country Link
KR (1) KR900002603B1 (ko)

Also Published As

Publication number Publication date
KR850700168A (ko) 1985-10-25

Similar Documents

Publication Publication Date Title
US10776127B2 (en) Reducing data hazards in pipelined processors to provide high processor utilization
US4476525A (en) Pipeline-controlled data processing system capable of performing a plurality of instructions simultaneously
JP2559399B2 (ja) 情報処理装置
US4541047A (en) Pipelined data processing system
JP3130446B2 (ja) プログラム変換装置及びプロセッサ
JP3486690B2 (ja) パイプライン方式プロセッサ
US4933841A (en) Microcode reading control system
EP0163740A1 (en) Pipeline control system
KR930003124B1 (ko) 파이프라인방식의 분기명령제어장치
EP0162929B1 (en) Method of controlling branching
EP1354267A2 (en) A superscalar processor having content addressable memory structures for determining dependencies
KR900002603B1 (ko) 브랜치(branch)제어방식
US7278010B2 (en) Instruction execution apparatus comprising a commit stack entry unit
JP2636136B2 (ja) 演算処理装置及び演算処理方法
KR900005340B1 (ko) 파이프라인 제어방식(pipeline control system)
JPH046983B2 (ko)
JP3647930B2 (ja) 動的ハイパースカラ・プロセッサ
JP2591325B2 (ja) 分岐制御装置
JP2843844B2 (ja) 並列演算処理装置
JP2856784B2 (ja) 電子計算機
JPS60178539A (ja) 情報処理装置におけるバイパス制御方式
JP2835179B2 (ja) 並列処理計算機
JP3102846B2 (ja) ロードアドレスキャッシュ装置及び方法
JPH07219771A (ja) 命令プロセッサ
JPH01240931A (ja) データ処理装置

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

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee