KR920006275B1 - 데이타 처리 장치 - Google Patents

데이타 처리 장치 Download PDF

Info

Publication number
KR920006275B1
KR920006275B1 KR1019850000766A KR850000766A KR920006275B1 KR 920006275 B1 KR920006275 B1 KR 920006275B1 KR 1019850000766 A KR1019850000766 A KR 1019850000766A KR 850000766 A KR850000766 A KR 850000766A KR 920006275 B1 KR920006275 B1 KR 920006275B1
Authority
KR
South Korea
Prior art keywords
instruction
address
branch
control information
branch line
Prior art date
Application number
KR1019850000766A
Other languages
English (en)
Other versions
KR850006087A (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 KR850006087A publication Critical patent/KR850006087A/ko
Application granted granted Critical
Publication of KR920006275B1 publication Critical patent/KR920006275B1/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3846Speculative instruction execution using static prediction, e.g. branch taken strategy

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도는 종래의 데이타 처리 장치의 전체 블럭도.
제2도, 제3도, 제4도, 제5도 및 제6도는 종래의 명령처리를 나타낸 타이밍도.
제7도는 본 발명의 실시예를 도시한 데이타 처리장치의 블럭도.
제8도는 제7도의 명령의 1예를 도시한 도면.
제9도, 제10도는 제7도의 명령처리의 타이밍도.
제11도는 제7도의 제어회로(13)을 도시한 회로도.
제12도는 제7도의 제어회로(27)을 도시한 회로도.
제13도, 제14도는 각각 본 발명의 다른 실시예를 도시한 도면.
본 발명은 명령제어 방식에 관한 것으로, 특히 파이프 라인제어 방식을 사용한 마이크로 프로세서의 분기명령 실행시간을 고속화할 수 있는 데이타 처리 장치에 관한 것이다.
종래, 제1도에 도시한 바와 같이 데이타 처리 장치(1)은 일반적으로 기억장치(5)와의 사이에서 데이타를 주고 받는 인터페이스 회로(4)와 실행하여야 할 명령을 제어하는 명령 제어 유니트(2) 및 명령을 실행하는 명령 실행 유니트(3)을 가지고 있다. 기억장치(5)에서 페치된 명령이 인터페이스 회로(4)를 거쳐서 명령 제어 유니트(2)로 전송되면, 명령제어 유니트(2)는 전송된 명령을 해석하여 그 결과를 명령 실행 유니트(3)으로 전송한다. 명령 실행 유니트(3)은 해석의 결과에 의해 각종의 제어 신호를 발생시키고, 이 제어 신호에 의해 명령 실행 유니트(3)내의 각 게이트를 개페하여 연산, 저장, 시프트등의 처리를 실행하게 한다. 명령제어 유니트(2)는 다음 명령의 페치를 인터페이스회로(4)를 거쳐서 기억장치(5)에 지시한다. 이들 일련의 동작을 반복하는 것에 의해 데이타 처리 장치(1)은 기억장치(5)에 저장되어 있는 프로그램을 실행한다.
본 데이타 처리 장치에서 인터페이스회로(4), 명령 제어 유니트(2) 및 명령 실행 유니트(3)은 각각 병렬적으로 동작하는 것이 가능하여 파이프 라인 제어가 실행된다.
제2도에서 사이클T1, T2의 2사이클을 걸쳐서 인터페이스회로(4)에 의해 기억장치(5)에서 명령 ①을 리드하고, 사이클 T3에서 명령 제어 유니트(2)에 의해 해석된다. 인터페이스 회로(4)에서는 기억장치(5)로부터 사이클 T3, T4의 2사이클을 걸쳐서 다음의 명령 ②가 리드된다.
한편, 사이클 T3에서 해석된 명령 ①은 사이클 T4, T5의 2사이클을 걸쳐서 명령 실행 유니트(3)에 의해 실행된다. 사이클 T5에서는 명령 ③의 리드 개시와 명령 ②가 해석되므로 명령 실행 유니트(3)이 쉴사이가 없이 사이클 T8, T7에서 명령 ②를 실행한다. 이와 같이 파이프 라인 제어를 실행하면 1명령 마다의 실행시간을 단축할 수가 있다.
그러나, 일련의 처리 도중에서 분기 명령을 실행하였을 때에 분기선 어드레스는 명령 실행 후가 아니면 결정 되지 않으므로 제3도에 도시한 바와 같이 분기 명령 ①을 실행한 후 분기선 명령 ⑩이 실행될때까지 4사이클의 쉬는 시간이 생긴다.
이와 같이, 종래의 파이프 라인 제어방식의 데이타 처리 장치에서는 분기 명령을 실행하면 그 기간만큼 병렬 처리를 할 수 없게 되어 파이프 라인의 제어 효과가 나타나지 않으므로 성능의 저하를 초래하고 있었다.
따라서, 종래 이것을 개선하기 위해서 기억장치(5)에 저장되어 있는 명령의 일부를 복사하여 데이타 처리장치(1)내에 마련된 고속이고 소용량인 캐시 메모리에 유지하여 두고, 그 캐시 메모리에 분기선의 명령이있을 때에는 명령을 그곳에서 페치하는 것에 의해 기억 장치(5)로부터의 페치시간을 단축하는 방법이 많이 사용되고 있었다.
또, 명령 케어 유니트(2)내에 어드레스 계산회로를 마련하고, 명령 실행 유니트(3)에서 분기 명령의 실행이 완료하기 이전에 분기 어드레스를 계산하고, 분기선 명령을 리드하여 분기 명령 처리시간을 짧게 하는 방법도 많이 사용되고 있었다. 즉, 이 방법으로는 제4도에 도시한 바와 같이 분기 명령 ①의 해석이 끝난후, 어드레스 계산 회로에서 명령 ①을 실행함과 동시에 분기 어드레스를 계산하기 때문에 사이클 T5, T6의 2사이클에서 분기선 명령 ⑩을 페치할 수가 있다. 제4도에서는 분기가 실행하여졌을 때의 처리의 지연은 1사이클로 끝난다.
그러나, 이 방법은 분기가 실행되는 것을 전제로 하고 있으므로, 조건부의 분기 명령의 조건이 성립하지않을 때에는 제5도에 도시한 바와 같이 나머지 명령도 페치해 버린다. 또, 명령 제어 유니트(2)내에서 어드레스 계산을 하기 위해서는 어드레스 계산에 필요한 정보를 명령 실행 유니트(3)에서 구해야 하므로, 구성이 복잡하게 되고, 또한 배선수가 증가함에 따라서 LSI상에 회로를 탑재할 때에 집적도가 낮아진다. 따라서, LSI화가 필요한 마이크로 프로세서 등에는 적합하지 않다.
범용 계산기 등에서는 기억장치(5)와 인터페이스 회로(4)사이에 신호선을 많이 배치할 수 있고, 동시에 전송되는 데이타양이 많이 제6도에 도시한 바와 같이 1사이클로 1명령의 페치가 완료하므로 분기선 명령의 페치를 개시하기 전의 시점에서 불성립시에 필요하게 되는 명령이 리드될 가능성이 높다. 이 때문에 조건부분기 명령의 조건을 불성립인 때에도 나머지 명령을 페치하는 것이 성능을 저하시키는 일이 적다. 그러나, 마이크로 프로세서등 입출력 핀수의 제약에 의해 데이타 전송량을 증가할 수 없는 것에 있어서는 1사이클 마다 1명령을 페치할 수 없으므로 성능저하를 초래한다.
또, 종래의 분기선 명령을 고속으로 인출하기 위해서 연상 메모리에 분기선 명령을 저장하여 두고 명령해석시에 명령 어드레스를 검색입력으로 하여 성립하는 분기 명령인가 아닌가를 예측하고, 그때의 분기선명령을 출력시키는 장치가 제안되고 있었다(일본국 특허공보 소화 54-9456호, 대응 미국 특허 No.3940741참조). 그러나, 상기의 장치에서는 분기선 명령의 페치시간만을 단축하고 있을 뿐, 그것에 계속되는 명령 해석 시간은 단축되지 않는다는 문제점이 있었다.
본 발명의 목적은 기억장치에서 명령을 페치하고, 그 명령을 해석해서 명령을 실행하기 위한 제어정보를 생성하여 그 제어 정보를 명령실행 회로로 전송하는 파이프 라인 제어 방식을 사용해서 마이크로 프로세서등의 분기 명령 실행시간을 단축해서 분기 명령 실행시간을 고속화할 수 있는 데이타 처리 장치를 제공하는 것이다.
본 발명에서는 분기 명령 실행 시간을 단축하기 위해서 분기 명령의 어드레스를 연상 메모리의 검색필드에, 또 상기 분기 명령의 분기선 명령을 해석한 제어 정보를 해당 연상 메모리의 데이타 필드에 기억하여 두고 분기 명령 실행시에 분기 명령 어드레스에서 상기 연상 메모리를 검색하여 해당하는 엔트리에 기억되어 있는 제어정보를 리드하여 명령 실행 회로로 전송하고, 명령 실행 회로에서는 분기 명령실행에 계속해서 분기선 명령의 실행을 개시한다.
본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부도면으로 명확하게 될 것이다.
이하 본 발명의 구성에 대해서 실시예와 함께 설명한다.
제7도는 본 발명의 데이타 처리장치의 전체 블럭도로써, 인터페이스회로(4)와 명령 제어 유니트(2) 및 명령 실행 유니트(3)의 주요부만을 도시하고 있다. 제7도에서(21)은 명령 디코더로써 명령의 종별을 해독한다. (10), (24)는 연상 메모리, (11), (25), (29), (40)은 셀렉터, (12), (23)은 카운터, (22), (28), (32), (33), (42)는 레지스터, (20)은 최초에 들어간 데이타가 최초로 리드되어 이 리드된 데이타를 소각하는 선입선출형 메모리, (30), (41)은 정수생성회로, (31), (43)은 가산기, (42)는 명령길이 레지스터, (13)은 인터페이스 회로(4)의 제어회로, (27)은 명령제어 유니트(2)의 제어회로이다. (46)은 다수의 범용 레지스터군, (48)은 연산회로, (49)은 인터페이스회로, (50)은 타이밍 제어회로이다. (301), (302) 및 (303)은 데이타 버스이다.
또, 제7도에서(200)은 기억장치(5)에서 리드된 명령 데이타 신호, (201)은 연상 메모리(10)에서 리드된 명령데이타신호, (202)는 기억장치(5) 또는 연상 메모리(10)의 어느 하나에서 리드된 명령 데이타 신호, (203)은 명령을 연상 메모리(10)에 라이트하기 위한 엔트리 넘버, (204)는 연상 메모리(10)에 해당 엔트리가 저장되어 있는가, 아닌가를 표시하는 신호, (205)는 명령 페치 요구신호, (206)은 명령 페치 종료 신호이다.
(210)은 메모리(20)에서 리드된 명령 데이타 신호, (211)은 명령의 해서 결과 신호, (212)는 연상 메모리의 엔트리 넘버, (213)은 연상 메모리(24)에서 리드된 명령의 해석 결과 신호, (214)는 명령 디코더(21) 또는 연상 메모리(24)의 어느 하나에서 출력된 명령의 해석 결과 신호, (215)는 레지스터(22)에 일시 기억된 명령 데이타 신호, (216)은 연상 메모리(24)에서 페치된 명령 데이타 신호, (217)은 레지스터(22) 또는 연상 메모리(24)의 어느 하나에서 리드된 명령 데이타 신호, (218)은 연상 메모리(24)에 해당 엔트리가 저장되어 있는가, 아닌가를 표시하는 신호, (219) 및 (220)은 다음에 리드하여야 할 명령 데이타의 어드레스 신호, (221)은 다음에 리드하여야할 명령 데이타의 어드레스를 계산하는 데 사용하는 어드레스 신호, (222)는"0" 또는 "1"의 값을 취하는 신호, (223)은 명령 리드요구신호, (224)는 명령 리드 종료 신호, (225)는 명령 실행 금지신호이다.
(241)은 실행하는 명령의 어드레스 신호, (242)는 명령의 명령어 길이를 값으로 취하는 신호, (243)은 분기 어드레스 신호, (244)는 다음의 명령 요구 신호, (245)는 분기하여야할 것을 표시하는 분기 신호이다.
이와 같은 구성에서 레지스터(28), 셀렉터(29), 정수생성회로(30) 및 가산기(31)에 의해 다음에 리드하여야 할 명령의 어드레스를 계산한다.
셀렉터(40), 정수 생성 회로(41), 레지스터(42) 및 가산기(43)에 의해 명령 실행 유니트(3)이 실행하여야할 명령의 선두어의 어드레스를 계산한다.
연상 메모리(10)은 카운터(12)에 유지되는 엔트리 넘버(203)에 의해 지정된 위치에 데이타를 라이트한다. 카운터(12)는 엔트리 넘버를 카운트 업한다. 연상 메모리(10)의 모든 엔트리가 체워진 후는 가장 오래된 엔트리가 소거되고 새로운 데이타가 라이트 된다.
연상 메모리(24)에 대해서도 연상 메모리(10)과 마찬가지로 카운터(23)에 의해 지정된 위치에 데이타가 라이트된다.
제어 회로(27)은 그 내부에 카운터(271)을 갖는다. 이 카운터(271)은 메모리(20)내에 저장되어 있는 명령의 수를 기억해 두는 것이다. 제어회로(27)은 카운터(271)의 내용이 어떤 값으로도 채워져 있지 않을 때, 즉 메모리(20)에 공백이 있을 때는 제어회로(13)으로 명령 리드 요구신호(223)을 출력하는 것이다.
범용 레지스터군(46)은 명령 데이타 신호(217)에 의해 지정된 범용 레지스터의 데이타를 출력하고 또는 명령 데이타 신호(217)에 의해 지정된 범용 레지스터에 데이타 버스(303)위의 데이타를 입력하는 것이다.
인터페이스 회로(49)는 명령을 실행할 때 기억장치(5)의 기억 데이타가 필요한 경우에 그 데이타를 리드하기 위한 것이다.
제8도는 본 장치에 사용되는 명령의 니모닉과 그 코드의 1예를 도시한 것이다. 제8도a에 도시한 명령은 데이타 d(8비트)의 값과 레지스터(42)의 값을 가산한 어드레스로 분기하는 명령이다. 동일 도면 b에 도시한 명령은 레지스터 번호 Am(3비트)으로 지정되는 범용 레지스터 군(46)내의 레지스터 내용을 분기선의 어드레스로서 분기하는 명령이다. 동일 도면 c에 도시한 명령은 레지스터 번호 Am(3비트)으로 지정되는 범용 레지스터군(46)내의 레지스터 내용과 다음의 어드레스 데이타 d를 가산한 어드레스로 분기하는 명령이다. 동일 도면 d에 도시한 명령은 레지스터 번호 Dx, Dz로 지시되는 범용 레지스터군(46)내의 2개의 레지스터 내용을 가산하여 레지스터번호 Dx로 지정되는 범용 레지스터군(46)내의 레지스터에 저장하는 명령이다. 동일 도면 e에 도시한 명령은 레지스터 번호 Dz로 지정되는 범용 레지스터군(46)내의 레지스터 내용과 다음의 어드레스 데이타 d(16비트)를 가산하고, 그 가산결과를 기억장치(5)의 어드레스로서 데이타를 리드하여 그 리드한 데이타와 레지스터 번호 Dx로 지정되는 범용 레지스터 군(46)내의 레지스터 내용을 가산해서 레지스터 번호 Dx의 레지스터에 저장하는 명령이다.
다음에, 타이밍도를 사용해서 본 장치의 동작에 대해서 설명한다.
제9도의 타이밍도는 제7도에서 분기명령 ①, 예를들면 제8도a에 도시한 명령을 최초로 실행하였을 때의 동작을 도시한 것이다.
다음의 설명에서 명령 ①,②.③은 번호 순으로 연속된 어드레스로 기억장치(5)에 저장되어 있다. 또, 명령 ⑩,⑪,⑫도 번호순으로 연속된 어드레스로 기억장치(5)에 저장되어 있다. 그리고, 명령 ①,②.③과 명령⑩,⑪,⑫는 서로 연속되지 않는 어드레스를 갖는다.
가산기(31)에 의해 분기 명령 ①의 어드레스가 계산되어 연상 메모리(10)내의 버퍼(10a)에 저장된다. 분기 명령 ①이 아직 한번도 실행되지 않았을 때에는 연상 메모리(10)에 해당하는 어드레스의 명령이 기억되지 않으므로 검색 결과 신호(204)가 "OFF"로 되어 있다.
(1) 사이클 T1
제어회로(13)은 검색 결과 신호(204)가 OFF로 되어 있으므로, 기억장치(5)에 명령 페치 요구 신호(205)를 출력한다. 분기 명령 ①의 어드레스 신호(220)이 레지스터(28)에서 기억장치(5)에 부여된다.
버퍼(10a)에 기억된 분기 명령 ①의 어드레스 신호는 카운터(12)에서 지정되는 엔트리 넘버(203)에 의해 연상 메모리(10)의 검색 필드에 라이트 된다.
(2) 사이클 T2
기억장치(5)예서 명령 페치 종료 신호(206)을 받은 제어회로(13)은 페치된 분기 명령의 데이타 신호(200)을 셀렉터(11)에 신호(202)로서 출력시킨다.
메모리(20)은 신호(202)를 라이트한다. 제어회로(27)내의 카운터(271)은 분기 명령 ①이 저장된 "1"을 저장한다.
또, 리드된 분기 명령 ①의 데이타 신호(200)은 카운터(12)에서 지정되는 엔트리 넘버(203)에 의해 연상메모러(10)의 데이타 필드로 라이트된다. 카운터(12)는 그후 증분된다.
즉, 분기 명령 ①과 그 어드레스가 연상 메모리(10)과 동일한 엔트리에 기억되게 된다.
한편, 가산기(31)은 다음의 명령 ②의 어드레스를 계산하여 그 계산 결과를 신호(219)로서 연상 메모리(10)에 부여한다. 연상 메모리(10)은 신호(219)에 의해 검색 되지만, 이 때에도 명령 ②에 대해서는 엔트리되어 있지 않으므로 신호(204)를 "OFF"로 한다.
(3) 사이클 T3
메모리(20)에는 공백이 있으므로 사전에 가산기(31)에서 계산된 명령 ②의 어드레스가 레지스터(28)에 세트되어 명령 페치 요구(223)이 출력된다. 신호(204)가 "OFF"상태에서 명령 페치 요구 신호(223)을 받으면 제어회로(13)은 기억장치(5)로부터의 명령 ②의 페치가 필요하다고 판정하고 명령 페치 요구 신호(205)를 출력한다. 동시에 버퍼(10a)에 기억된 신호(219)(명령 ②의 어드레스)를 카운터(12)에 의해 연상 메모리(10)의 검색필드에 라이트한다.
한편, 분기 명령 ①은 메모리(20)에서 리드되어 명령 디코더(21)에 의해 디코드 된다. 이 결과, 분기 명령①이 BRA의 명령인 것을 알 수 있다. 메모리(20)이 공백으로 되기 때문에 제어회로(27)내의 카운터(271)은 "0"으로 된다. 디코드된 결과인 제어 정보는 셀렉터(25)를 거쳐서 레지스터(32)에 저장된다. 또, 명령자체도 레지스터(33)에 저장된다.
(4) 사이클 T4
명령 디코더(21)에서 T3의 사이클로 디코드된 제어정보는 명령 실행 유니트(3)으로 보내진다. 제어 정보는 타이밍 제어회로(50)에 세트되어 소정의 타이밍으로 연산회로(48), 범용 레지스터군(46), 인터페이스 회로(49)에 각각 제어 신호로서 출력된다. 구체적으로는 분기 명령 ①의 데이타 d의 부분과 레지스터(42)의 내용이 각각 데이타 버스(301), (302)를 거쳐서 연산회로(48)에 결합되어 가산되어 데이타 버스(303)으로 출력된다. 이와 같은 시퀸스로 타이밍 제어회로(50)에 의해 다음의 사이클 T5에 결쳐서 제어 정보가 출력되는 것이다. 명령 실행 개시시에는 사전에 가산기(43)에 의해 계산된 분기 명령 ①의 어드레스가 셀렉터(40)을 거쳐서 레지스터(42)에 세트된다. 레지스터(42)의 출력신호(241)은 연상 메모리(24)의 검색 입력에 접속되지만, 분기 명령 ①의 실행은 이것이 처음이기 때문에, 해당하는 엔트리가 없어 신호(218)은 "OFF"된다. 이 사이에 명령 ②의 페치가 끝나 메모리(20) 및 연상 메모리(10)의 데이타 필드로 라이트된다.
또, 명령 ③의 어드레스가 가산기(31)에 의해 계산되어 연상 메모리(10)을 이 어드레스로 검색한다. 이때, 해당하는 엔트리가 없으므로 신호(204)는 "OFF"이다.
리드된 명령 ②는 신호(202)로서 메모리(20)에 라이트된다. 이것에 의해 제어회로(27)내의 카운터(217)은 "1"을 저장한다.
(5) 사이클 T5
메모리(20)에서 명령 ②가 리드되어 명령 ②를 디코드한다. 또, 명령 ③의 어드레스가 카운터(12)의 엔트리 넘버에 의해 연상 메모리(10)의 검색 필드로 라이트된다.
사이클 T5에서, 분기 명령 ①의 실행 결과가 얻어진다. 그 결과, 데이타 버스(303)에서 분기선 명령 ⑩의 어드레스가 분기 어드레스 신호(243)으로서 셀렉터(29), (40)에 부여된다. 여기서, 분기선 명령 ⑩을 제8도 d에 도시한 명령으로 한다.
또, 분기선 어드레스를 구하였으므로, 다음 명령을 실행하기 위해서 연산회로(48)은 다음 명령 요구 신호(244)를 "ON"한다. 또, 연산회로(48)에서 분기신호(245)가 제어 회로(27)로 부여된다. 이 분기 신호(245)를 받은 제어 회로(27)은 메모리(20)의 내용을 클리어한다. 현재 명령 페치중인 명령 ③에 대해서는 기억장치(5)에서 리드되었다하여도 메모리(20)에는 저장되지 않도록 제어회로(27)이 제어한다.
또, 신호(218)이 "OFF"상태에서 분기 신호(245)를 받으면, 명령 제어 유니트(2)의 제어회로(27)은 연상메모리(24)에 명령 ⑩(제8도 d)의 디코드된 결과가 들어가지 않는 것으로 판정하고, 명령 실행 유니트(3)을 중지시키기 위하여 명령 실행 금지 신호(225)를 "ON"으로 하고, 타이밍 제어회로(50)의 신호 발생을 중지한다. 또, 정수 생성회로(30)의 출력 신호(222)를 "0"으로 한다.
제어 회로(27)은 신호(218)이 "OFF"이고, 신호(245)가 "ON"이기 때문에 실행 가능한 명령이 메모리(20) 및 레지스터(32), (33)에는 없다고 판단하고 명령 리드 요구 신호(223)을 출력한다.
또, 사이클 T5개시시에 신호(223)이 "ON"이고, 신호(204)가 "OFF"이기 때문에 기억 장치(5)로 명령③에 대한 명령 페치 요구 신호(205)가 제어 회로(13)에서 출력되고 있다.
(6) 사이클 T6
정수 생성 회로(30)의 출력 "0"과 셀렉터(29)를 거쳐서 출력된 분기 어드레스를 가산기(31)에 의해서 가산한다. 가산기(31)의 출력 신호(219)는 다음에 리드하는 명령(명령 ⑩)의 어드레스로서 레지스터(28)에 세트되고, 명령 리드 요구 신호(223)이 출력된다. 명령 ⑩(제8도 d)은 이전에 리드되어 있지 않으므로 가산기(31)의 출력신호(219)에서 연산 메모리(10)을 검색한 결과 신호(204)는 "OFF"로 된다.
또, 기억장치(5)로부터의 명령 ③의 리드가 끝나 신호(200)으로써 명령 ③이 출력됨과 동시에 연상 메모리(10)으로 라이트 된다. 그러나, 신호(200)은 메모리(20)에는 기억되지 않는다.
(7) 사이클 T7
신호(204)가 "OFF"로 되어 있기 때문에 인터페이스회로(4)의 제어회로(13)은 명령 페치 요구 신호(205)를 출력하여 기억장치(5)에 명령 ⑩의 리드를 요구한다.
또, 이때 명령 ⑩의 어드레스가 연산 메모리(10)으로 라이트 된다. 제어 회로(13)은 정수생성 회로(30)의 출력을 "1"로 되돌린다.
(8) 사이클 T8
제어회로(13)이 명령 ⑩(제8도 d)에 대해 기억장치(5)에서 명령 페치 종료신호(206)이 출력되면, 제어회로(13)은 페치된 명령 ⑩을 연상 메모리(10)으로 라이트함과 동시에 셀렉터(11)을 거쳐서 메모리(20)으로 보내고, 신호(224)를 출력해서 제어회로(27)에 통지한다.
또, 가산기(31)은 명령 ⑪의 어드레스를 계산하고, 그 어드레스로써 연상 메모리(10)을 검색한다.
(9) 사이클 T9
분기 신호(245)를 받았을 때에 제어회로(27)은 메모리(20)을 클리어하여 두기 때문에 명령 ②는 즉시 명령 디코더(21)로 보내져서 가산 명령(제8도 d)이 디코드되어 필요한 제어 정보가 출력된다. 디코드된 결과는 제어 정보로서 셀렉터(25)를 거쳐서 레지스터(32)에 세트된다. 명령 ⑩도 레지스터(33)에 세트된다. 신호(241)상의 분기 명령 ①의 어드레스를 카운터(23)의 엔트리 넘버(212)에 따라 연상 메모리(24)의 검색필드에 라이트해 둔다. 신호(241)상이 분기 명령 ①의 어드레스 그대로인 것은 명령 실행 유니트(3)에서 분기 명령 ① 이후에 새로이 실행된 명령이 없었기 때문이다.
제어회로(13)은 신호(204)가 "OFF"이기 때문에 기억장치(5)에 명령 ⑪에 대해서의 명령 페치 요구 신호(205)를 출력한다. 명령 ⑪의 어드레스는 이미 가산기(31)에 의해 계산되어 레지스터(28)에 기억되어 있으며, 신호(220)으로서 기억 장치(5)에 부여된다.
또, 명령 ⑪의 어드레스는 연상 메모리(10)으로 라이트 된다.
(10) 사이클 T10
명령 ⑪의 기억장치(5)로부터의 리드가 완료한다. 한편, 명령 ⑩(제8도 d)의 실행 준비가 되었으므로 제어회로(27)은 명령 실행 금지신호(225)를 "OFF"하고 명령 실행 유니트(3)의 동작을 개시시킨다. 즉, 제어 정보(214)가 타이밍 제어 회로(50)에 세트되어 소정의 타이밍에 따라서 다음의 사이클 T11을 걸쳐서 연산 회로(48) 및 범용 레지스터군(46)으로 각각 출력된다.
이 타이밍에 의해 다음의 시퀸스 제어가 이루어진다.
오퍼런드 Dx, Dz(신호(217))로 지명되는 범용 레지스터군(46)내의 레지스터의 내용이 각각 데이타 버스(301), (302)로 리드되어 연산 회로(48)에 결합되어 가산되고 데이타 버스(303)으로 출력되어 오퍼런드 Dx로 지칭되는 레지스터에 결합된다. 이와 같이 해서 명령이 실행된다.
한편, 명령 실행 유니트(3)으로 보내진 명령 ⑩의 디코드된 결과는 연상 메모리(24)에도 기억되어 카운터(23)이 증분된다. 즉, 분기 명령 ①의 어드레스와 명령 ⑩의 해석 결과가 동일한 엔트리에 저장되게 된다.
그리고, 명령 ⑩ 자체도 연상 메모리(24)에 기억되는 것이 되지만, 이것은 범용 레지스터(46)으로부터의 데이타 리드에 오퍼런드를 사용하기 때문이다.
또, 명령 ⑪이 연상 메모리(10)에 저장되어 가산기(31)에 구해진 명령 ⑫의 어드레스에 의해 연상 메모리(10)이 검색된다.
(11) 사이클 T11
명령 ⑩의 실행 완료시에는 사이클 T3과 동시에 명령 ⑪의 해석 결과가 준비되어 있으므로, 이후 명령은 차례로 끊임없이 실행된다.
제9도에 도시한 바와 같이 연상 메모리(10)에 대한 검색이 사이클 T2,T4,T6,T8,T10···으로 실행된 결과, 명령 ②,③,⑩,⑪,⑫···이 모두가 기억되어 있지 않으므로,사이클 T2,T4,T6,T8,T10,T12에서 명령 ①,②,③,⑩,⑪,⑫를 기억시킨다. 그리고, 명령 ①의 검색은 사이클 T1이전에 실행되고 있는 것으로 한다. 또, 연상 메모리(24)에 대한 검색도 사이클 T4에서 실행되지만, 분기선 명령 ⑩이 기억되어 있지 않으므로 사이클 T10에서 명령 ⑩을 기억시킨다.
다음에, 두번째 이후에 이들의 명령을 실행할 때에 대해서 제10도에 따라 설명한다.
(1) 사이클 T1
연상 메모리(10)에 분기 명령 ①이 기억되어 있으므로, 사이클 T1에서 분기 명령 ①의 리드가 완료한다. 연상 메모리에서 리드된 분기 명령 ①은 셀렉터(11)을 거쳐서 메모리(20)에 저장된다. 제어회로(27)의 카운터(271)은 "1"을 저장한다.
연상 메모리(10)에서 명령을 리드할 때 검색시에 데이타 필드의 리드를 실행하므로 신호(223)에 의한 페치 요구가 출력됨과 동시에 신호(224)에 의해 종료가 통지된다. 이로 인해, 다음 명령 어드레스의 계산이 불충분하게 되므로 1사이클 간격으로 리드 요구가 실행된다.
신호(204)는 연상 메모리에 해당 엔트리가 있기 때문에 "ON"으로 되어 있다. 또, 연상 메모리(10)에 분기 명령 ①을 재차 기억하지 않는다.
(2) 사이클 T2
명령 ①의 해석이 명령 디코더(21)에 의해 완료된다. 해석결과는 신호(211), (214)로서 셀렉터(25), 레지스터(32)를 거쳐서 명령 실행 유니트(3)으로 보낸다.
제어 회로(l3)은 신호(204)가 "ON"으로 되어 있기 때문에 기억장치(5)에 명령 ①에 대해서의 명령 페치요구 신호(205)를 출력하지 않는다.
(3) 사이클 T3
분기 명령 ①의 실행이 명령 실행 유니트(3)에 의해 개시 되기 전에 레지스터(42)에는 실행하여야 할 명령 ①의 어드레스가 기억된다. 연상 메모리(24)는 레지스터(42)에 기억된 분기 명령 ①의 어드레스로써 검색된다.
해당하는 엔트리가 발견되면 신호(218)이 "ON"하여 분기선 명령 ⑩의 데이타 필드의 값이 신호(213) 및 신호(216)으로 출력된다.
여기에서 데이타 필드의 값은 분기선 명령 ⑩의 해석 결과와 분기선 명령 ⑩ 자체이다. 이때, 신호(218)은 해당하는 엔트리가 존재하기 때문에 "ON"으로 된다.
한편, 가산기(31)은 다음의 명령 ②의 어드레스를 계산하고 있으며, 이 어드레스에 의해 연상 메모리(10)의 검색이 실행된다. 명령 ②는 이미 연상 메모리(10)에 저장되어 있으므로, 즉시 리드되어 메모리(20)에 저장된다. 이것에 의해, 레지스터(22)에는 "1"이 저장되게 된다.
(4) 사이클 T4
메모리(20)에 저장된 명령 ②가 명령 디코더(21)에 의해 디코드 된다. 분기 명령 ①이 실행되어 다음 명령 요구 신호(244), 분기 신호(245) 및 분기선 명령 ⑩의 어드레스인 분기 어드레스 신호(243)이 출력된다. 제어 회로(27)은 신호(218)이 "ON"이므로 상기 분기 신호(245)가 입력되면, 신호(213) 및 (216)을 각각 셀렉터(25), (26), 레지스터(32), (33)을 거쳐서 명령 실행 유니트(3)으로 전송하도록 제어한다. 분기 신호(245)가 출력되어 신호(218)이 "ON"일때는 정수 생성 회로(30)의 출력은 "0"이거나 "1" 그대로이다.
또, 분기 신호(245)에 의해 제어회로(27)은 메모리(20)을 클리어한다. 한편, 분기 신호(245)가 출력되고있지 않을 때는 메모리(20)에 저장되어 있는 명령 ②가 명령 디코더(21)에 의해서 분기 명령 ①의 실행 완료와 동시에 해석이 끝나므로, 제어 회로(27)은 셀랙터(25), (26)에 의해서 명령 ②의 해석 결과 및 명령 ②자세를 다음의 사이클 T5로 명령 실행 유니트(3)에 공급하여 명령을 실행시킬 수가 있다. 이것에 의해 실행 정지 사이클은 일어나지 않는다.
(5) 사이클 T5
분기 신호(245)가 출력되었을 때는 명령 ⑩의 제어 정보가 즉시 마련되므로 명령 실행 금지 신호(225)가 "ON"되지 않으므로 실행 정지 사이클이 없이 명령 ⑩의 실행이 이루어 진다. 이때, 신호(223)이 제어 회로(27)에 의해서 "OFF"상태이므로 분기선 명령의 페치는 실행되지 않는다. 정수 생성 회로(30)으로부터는 "1"이 출력되고, 또 분기선 명령 ⑩의 어드레스가 셀렉터(29)를 거쳐서 가산기(31)에 입력되므로 가산기(31)의 출력신호(219)에는 명령 ⑪의 어드레스가 출력된다. 이것에 의해 연상 메모리(10)이 검색되어 명령 ⑪이 사이클 T5에서 페치 된다.
(6) 사이클 T6
명령 ⑩의 실행이 완료된다. 또, 명령 ⑪의 해석도 동시에 완료된다. 이것에 의해 실행 정지 사이클은 일어나지 않는다. 즉, 명령 ⑪의 실행은 사이클 T7,T8로 실행할 수 있다, 그리고, 이 실시예에서 연상 메모리(24)에 분기선 명령 ⑩이 있을 때 다음의 명령 ⑪의 어드레스는 가산기(31)을 사용하여 계산한다.
제11도는 제7도의 제어 회로(13)의 내부 회로를 도시한 것이다. 제11도에서 (131)과 (132)는 AND 회로, (134)는 OR 회로이다. 연상 메모리(10)에 해당 엔트리가 있을 때 신호(204)가 "1"로 되고, 명령 리드요구 신호(223)이 "1"일때 AND 회로(132) 및 OR 회로(134)를 거쳐서 명령 리드 종료 신호(224)가 출력된다. 한편, 연상 메모리(10)에 해당하는 엔트리가 없을 때, 신호(204)가 "0"으로 되고 명령 페치 요구 신호(223)이 "1"일때 AND 회로(131)을 거쳐서 기억장치(5)로 명령 페치 요구 신호(205)를 출력한다. 기억장치(5)에서 명령 리드가 종료하면 명령 페치 종료신호(206)이 OR 회로(134)를 거쳐서 명령 리드 종료신호(224)로서 출력된다.
제12도는 제7도의 제어회로(27)의 내부회로를 도시한 것이다.
제12도에서 (271)은 카운터, (272)는 1사이클을 지연시키기 위한 지연회로, (273) 및 (274)는 비교기, (275)는 AND 회로, (276)은 OR 회로, (277)은 플립플롭이다. 연상 메모리(24)에 해당 엔트리가 있고 분기 신호(245)가 "1"일때, 신호(218)이 "1"일때, 신호(218)이 "1"로 되어 AND 회로(275),OR 회로(276)을 거쳐서 플립플롭(277)의 D 단자에 "1"이 부여된다. 다음 명령 요구 신호(244)에 의해 D 단자의 "1"의 반전신호 "0"이 입력되어 명령 실행 금지 신호(225)를 "OFF"한다. 또, 카운터(271)은 리세트 된다.
연상 메모리(24)에 해당 엔트리가 없고, 또한 분기 신호(245)가 "0"일에 카운터(271)의 값에서 1사이클 전의 값을 지연회로(272)에서 비교기(273)으로 출력하고, 비교기(273)은 사전에 설정된 값보다 상기 입력된값이 클때에는 "1", 그 이외는 "0"을 출력한다. 지연회로(272)는 명령 디코더(21)에 의해 명령을 디코드하는데 1사이클을 요하는 것에 의한다. 비교기(273)의 출력은 OR 회로(276)을 거쳐서 플립플롭(277)의 D단자에 부여되어 다음 명령 요구 신호(244)에 의해 그 반전 신호를 플립플롭(277)에 입력한다. 비교기(273)에 사전에 설정된 값보다 상기 입력된 값이 적든가 또는 같을 때에는 명령 디코더(21)에 의해 명령이 디코드 되지 않는 것이 표시되므로 실행 금지 신호(225)가 "ON"한다.
연상 메모리(24)에 해당 엔트리가 없고, 또한 분기 요구 신호(245)가 "1"일때 카운터(271) 및 지연회로(272)가 리세트 된다. 이것에 의해 비교기(273)은 사전에 설정된 값보다도 적으므로, "0"을 출력한다. 따라서, 플립플롭(277)은 다음 명령 요구 신호(244)에 의해 "1"이 입력되어 실행 금지 신호(225)를 "ON"한다.
카운터(271)은 제어 회로(24)에서 명령 페치하고, 명령 페치 종료 신호(224)에 의해 카운트 업하고, 다음명령 요구 신호(244)에 의해 카운트 다운 된다. 이것에 의해, 카운터(271)에는 메모리(20)에 기억되어 있는 명령의 수가 기억되게 된다.
비교기(274)는 카운터(271)의 값이 사전에 설정된 값보다 적은가, 아닌가를 검출하고, 적을 때는 메모리(20)에 아직 공백이 있다고 판단하여 명령 리드 요구 신호(223)을 "ON"한다.
플립플롭(277)이 실행 금지 신호(225)를 "ON"하고 있을 때 비교기(273)에서 "1"이 출력되면, 다음에 실행하여야 할 명령의 디코드가 끝난 것으로 되기 때문에 플립플롭(277)이 리세트 된다.
이것에 대해, 제13도에 도시한 실시예에서는 연상 메모리(24)의 데이타 필드에 분기선 명령 ⑩의 다음의 명령 ⑩의 어드레스를 기억하는 필드를 마련하고, 분기 명령 실행시에 저장되어 있는 명령 ⑪의 어드레스를 인터페이스 회로(4)로 보낸다. 제13도의 회로에서는 제7도의 회로보다 연상 메모리(24)로부터의 어드레스와 가산기(31)로부터의 어드레스를 선택하는 셀렉터(34)가 더 마련된다.
동작은 제7도의 회로와 기본적으로는 같으나 제9도에서의 사이클 T8, 제10도에서의 사이클 T3및 T4가 다르다.
(1) 제9도에서의 사이클T8
명령 ⑩에 대해서 기억장치(5)에서 명령 페치 종료 신호(206)이 출력되면, 제어회로(13)은 페치한 명령⑩을 연상 메모리 ⑩으로 라이트함과 동시에 셀렉터(11)을 거쳐서 메모리(20)으로 보내고, 신호(224)를 출력해서 제어 회로(27)에 통지한다. 또, 가산기(31)은 명령 ⑪의 어드레스를 계산하고, 그 어드레스로써 연상 메모리(10)을 검색한다. 또, 그 어드레스는 카운터(23)으로 표시되는 연상 메모리(24)의 엔트리로 라이트 시킨다. 연상 메모리(24)의 동일한 엔트리에는 사이클 T9에서 분기 명령 ①의 어드레스가, 사이클 T10에서 분기선 명령 ⑩의 해석 결과가 저장된다.
(2) 제10도에서의 사이클 T3
분기 명령 ①의 실행이 명령 실행 유니트(3)에 의해 개시 되기 전에 레지스터(42)에는 실행하여야 할 명령 ①의 어드레스가 기억된다. 연상 메모리(24)는 레지스터(42)에 기억된 분기 명령 ①의 어드레스로써 검색된다. 해당하는 엔트기가 발견되면 신호(218)이 "ON"하고, 분기선 명령 ⑩의 데이타 필드의 값이 신호(213), (216) 및 신호(226)으로써 출력된다. 여기에서, 데이타 필드의 값은 분기선 명령 ⑩의 해석 결과와 분기선 명령 ⑩ 자체 및 명령 ⑪의 어드레스이다. 이때, 신호(218)은 해당하는 엔트리가 존재하기 때문에 "ON"으로 된다.
한편, 가산기(31)은 다음의 명령 ②의 어드레스를 계산하고 있으며, 이 어드레스에 의해 연상 메모리(10)의 검색이 실행된다. 명령 ②는 이미 저장되어 있으므로 즉시 리드되어 메모리(20)에 저장된다. 이것에 의해 레지스터(28)은 "1"이 된다.
(3) 제10도에서의 사이클 T4
메모리(20)에 저장된 명령 ②가 해석된다. 분기 명령 ①이 실행되어 다음 명령 요구 신호(244), 분기 신호(245) 및 분기선 명령 ⑩의 어드레스인 분기 어드레스 신호(243)이 출력된다. 제어회로(27)은 신호(218)이 "ON"이기 때문에 상기 분기 신호(245)가 입력되면, 신호(213) 및 (216)을 각각 셀렉터(25), (26), 레지스터(32), (33)을 거쳐서 명령 실행 유니트(3)으로 전송하도록 제어한다.
분기 신호(245)가 출력되어 신호(218)이 "ON"일때는 정수 생성 회로(30)의 출력은 "0"으로 되지 않고 "1" 그대로이다. 또, 분기 신호(245)에 의해 제어 회로(27)은 메모리(20)을 클리어한다, 제어회로(27)은 신호(218)이 "ON"으로 되어 있기 때문에 셀렉터(34)를 신호(226)을 선택하도록 제어한다.
사이클 T3에 연상 메모리(24)에서 리드된 명령 ⑪의 어드레스는 셀렉터(34)를 거쳐서 연상 메모리(10)의 검색 필드가 부여된다. 연상 메모리(10)은 명령 ⑪의 어드레스에 의해 검색되어 명령 ⑪을 메모리(20)에 저장한다.
이와 같이 제13도의 실시예에서는 가산기(31)의 계산 시간이 절약되어 연상 메모리(10)의 검색시간을 짧게할 수가 있다. 즉, 제7도의 회로와는 달리 다음의 명령 요구 신호(244), 분기 신호(245)와 같은 사이클로 연상 메모리(10)에 페치 요구를 할 수가 있다.
제14도의 실시예에서는 검색에 의해 분기 어드레스를 구하는 분기 명령에 대해서도 유효하게 동작하도록 제7도의 회로의 연상 메모리(24)에 또 분기선 어드레스를 기억하는 필드를 마련하고, 또 분기 어드레스 신호(243)과 해당 연상 메모리(24)에 기억된 분기선 어드레스를 비교하는 비교기(35)를 마련한다.
검색에 의해 분기 어드레스를 구하는 분기 명령은 명령내의 오퍼런드로서 지정하는 레지스터(제7도(46))의 내용을 참조해서 분기선의 어드레스를 결정하는 명령(예를들면 제8도 b)이며, 이 레지스터의 내용을 다른 명령으로 변경할 수 있다는 것을 말한다.
동작은 제7도의 회로와 기본적으로 같으나 제9도에서의 사이클 T6및 제10도에서의 사이클 T3및 T4의 동작이 다르다.
(1) 제9도에서의 사이클 T6
정수 생성 회로(30)의 출력이 "0"으로 되어 셀렉터(29)를 거쳐서 출력된 분기 어드레스와 가산기(31)로 가산된다. 가산기(31)의 출력신호(219)는 카운터(23)에서 지정되는 연상 메모리(24)의 데이타 필드에 저장되는데 따라서 다음에 기억 장치에서 리드하는 명령 ⑩의 어드레스로 레지스터(28)에 세트되어 명령 리드요구 신호(223)이 출력된다. 명령 ⑩은 이전에 리드되어 있지 않으므로, 가산기(31)의 출력신호(219)로 연상 메모리(10)을 검색한 결과, 신호(204)는 "OFF"로 된다. 또, 기억장치(5)로부터의 명령 ③의 리드가 끝나고 신호(200)으로서 명령 ③이 출력됨에 따라서 연상 메모리(10)에 라이트된다. 그러나, 신호(200)은 메모리(20)에는 기억되지 않는다.
(2) 제10도에서의 사이클 T3
분기 명령 ①의 실행이 명령 실행 유니트(3)에 의해 개시되기 전에 레지스터(42)에는 실행하여 할 명령①의 어드레스가 기억된다. 연상 메모리(24)는 레지스터(42)에 기억된 분기 명령 ①의 어드레스로써 검색된다.
해당하는 엔트리가 발견되면 신호(218)이 "ON"하고, 분기선 명령 ⑩의 데이타 필드의 값이 신호(213),신호(216) 및 신호(227)로써 출력된다.
여기에서 데이타 필드의 값은 분기선 명령 ⑩의 디코드 결과와 분기선 명령 ⑩ 자체 및 명령 ⑩의 어드레스이다. 이때, 신호(218)은 해당하는 엔트리가 존재하기 때문에 "ON"으로 된다.
한편, 가산기(31)은 다음의 명령 ②의 어드레스를 계산하고 있으므로, 이 어드레스에 의해 연상 메모리(10)의 검색이 행하여지고 있다. 명령 ②는 이미 저장되어 있으므로 즉시 리드되어 메모리(20)에 저장된다.이로 인해 레지스터 (28)은 "1"로 된다.
(3) 제10도에서의 사이클 T4
메모리(20)에 저장된 명령 ②가 디코드 된다.
분기 명령 ①이 실행되어 다음의 명령 요구 신호(244), 분기 신호(245) 및 분기선 명령 ⑩의 어드레스인분기 어드레스 신호(243)이 출력된다.
비교기(35)는 사이클 T3에 있어서 연상 메모리(24)에서 리드된 분기선 명령 ⑩의 어드레스와 분기 어드레스 신호(243)을 비교한다. 일치하다는 것이 검출되면 신호(228)을 "ON"하여 제어회로(27)에 통지한다.
제어회로(27)은 신호(218) 및 신호(228)이 "ON"하기 때문에, 상기 분기 신호(245)를 받으면, 신호(213)및 (216)을 각각 셀렉터(25), (26), 레지스터(32), (33)을 경유해서 명령 실행 유니트(3)으로 전송하도록 제어한다.
분기 신호(245)가 출력되어 신호(218) 및 신호(228)이 "ON"일때, 정수 생성 회로(30)의 출력은"0"으로되지 않고 "1"인 그대로이다. 또, 분기신호(245)에 의해 제어회로(27)은 메모리(20)을 클리어한다.
한편, 비교기(35)에 있어서 일치하다는 것이 검출되지 않을 때는 신호(228)은 "OFF"로 된다. 제어회로(27)은 신호(228)이 "OFF"이기 때문에 명령 실행 금지 신호(225)를 "ON"하고, 명령 실행 유니트(3)에서의 명령 실행올 금지시킨다.이 기능은 제어회로(27)에 있어서 신호(228)과 신호(218)을 논리화해서 AND회로(275)(제12도)에 입력하는 것에 의해 실현된다.
그 후는 제9도에서의 사이클 T6이후와 같이 동작한다.
본 실시예에 의하면, 분기 명령의 어드레스에 의해서 분기선이 의도적으로 정하여지지 않는 명령에 대해서도 적용할 수가 있다.
이상의 제7도, 제13도 및 제14도의 실시예에 있어서 연상 메모리(10), (24)를 사용해서 명령의 유무를 판정하고 있으나, 이것은 연산기나 비교기 등으로 되는 판정 회로와 비교해서 구조가 규칙적이기 때문에 마이크로 프로세서등과 같이 집적회로로 실현할 때 집적도를 높일 수가 있다.

Claims (32)

  1. 실행해야할 명령이 저장된 주기억 장치(5), 상기 주기억 장치에 접속되어 상기 주기억 장치에서 명령을 페치하는 페치수단(4), 상기 페치 수단에 접속되어 상기 페치수단에 의해 페치된 명령을 디코드하고, 상기 명령을 실행하기 위해 제어정보를 발생하는 디코드 및 제어정보 발생수단(2), 상기 디코드 및 제어정보발생수단(2)에 접속되어 상기 디코드 및 제어정보 발생수단에서 발생된 제어정보에 따라서 명령을 실행하는 실행수단(3), 병렬적으로 동작하여 파이프 라인 데이타 처리를 실행하는 상기 페치수단, 상기 디코드 및 제어정보 발생수단, 상기 실행수단, 분기 명령에서 얻어진 분기선 어드레스에 의해 액세스된 분기선 명령을 디코드하여 상기 디코드 및 제어정보 발생 수단에서 얻어진 상기 제어정보를 저장하고, 상기 분기선 명령의 내용을 저장하고, 상기 분기 명령의 어드레스를 저장하여 분기 명령을 재실행하기 전에 상기 제어정보, 상기 분기선 명령의 내용 및 상기 분기 명령의 어드레스를 저장하는 제1의 메모리(24)를 구비한 상기 디코드및 제어정보 발생수단을 포함하며, 또, 상기 제1의 메모리(24)는 상기 분기 명령의 어드레스에 따라 분기선 명령의 상기 내용 및 상기 제어 정보를 리드하고, 상기 분기 명령을 재실행할 때 상기 주기억 장치(5)에서 분기선 명령의 페치를 추가하지 않고 상기 실행수단(3)으로 분기선 명령의 리드된 내용과 상기 리드된 제어정보를 전송하는 수단을 포함하는 데이타 처리장치.
  2. 특허청구의 범위 제1항에 있어서, 상기 재1의 메모리(24)는 연상 메모리이고, 상기 제어 정보 및 상기 분기선 명령의 내용은 상기 연상 메모리내의 데이타 필드로 라이트되고, 상기 분기 명령의 어드레스는 연상 메모리의 검색필드내에 기억되며, 상기 제어정보, 상기 분기선 명령의 내용 및 상기 분기 명령의 어드레스는 1개의 엔트리 넘버에 의해 연상 메모리내에 라이트되는 데이타 처리장치.
  3. 특허청구의 범위 제1항에 있어서, 상기 디코드 및 제어정보 발생수단은 상기 제1의 메모리가 분기 명령의 어드레스로 액세스될 때 상기 제1의 메모리내에 분기 명령의 어드레스가 존재하지 않으면 상기 페치 수단에 디코드될 명령을 요구하는 신호를 전송하는 수단을 포함하며, 상기 신호를 전송하는 수단은 상기 제1의 메모리가 분기 명령의 어드레스로 액세스되고 분기 명령의 어드레스가 그안에 존재할 때 신호를 전송하지 않는 데이타 처리장치.
  4. 특허청구의 범위 제1항에 있어서, 상기 실행수단은 상기 제1의 메모리내에 저장된 제어 정보에 따라 상기 분기선 명령을 실행하는 데이타 처리장치.
  5. 실행해야할 명령이 저장된 주기억 장치(5), 상기 주기억 장치에 접속되어 상기 주기억 장치에서 명령을 페치하는 페치수단(4), 상기 페치 수단에 접속되어 상기 페치수단에 의해 페치된 명령을 디코드하고, 상기 명령을 실행하기 위해 제어정보를 발생하는 디코드 및 제어정보 발생수단(2), 상기 디코드 및 제어정보발생수단(2)에 접속되어 상기 디코드 및 제어정보 발생수단에서 발생된 제어정보에 따라서 명령을 실행하는 실행수단(3), 병렬적으로 동작하여 파이프 라인 데이타 처리를 실행하는 상기 페치수단, 상기 디코드 및 제어정보 발생수단, 상기 실행수단, 분기 명령에서 얻어진 분기선 어드레스에 의해 액세스된 분기선 명령의 내용을 저장하고, 상기 분기선 명령의 어드레스 바로 다음의 명령의 어드레스를 저장하고, 상기 분기 명령을 저장하며, 분기 명령을 재실행하기 전에 상기 분기선 명령의 상기 내용, 상기 분기선 명령 바로 다음의 명령의 상기 어드레스 및 상기 분기 명령의 어드레스를 저장하는 제1의 메모리를 구비한 상기 디코드 및 제어정보 발생수단을 포함하며, 또 상기 제1의 메모리는 상기 분기 명령의 어드레스에 응답하여 상기 분기선 명령 바로 다음의 상기 명령의 어드레스와 분기선 명령의상기 내용을 리드하고, 상기 실행수단으로 분기선 명령의 상기 리드된 내용을 전송하며, 상기 주기억 장치에서 분기선 명령의 페치를 추가하지 않고 상기 페치수단으로 상기 분기선 명령 바로 다음의 상기 명령의 리드된 어드레스를 전송하는 수단을 포함하는 데이타 처리장치.
  6. 특허청구의 범위 제5항에 있어서, 상기 제1의 메모리는 연상 메모리이고, 분기선 명령 바로 다음 명령의 어드레스와 상기 분기선 명령의 내용은 상기 연상 메모리내의 데이타 필드로 라이트되고, 상기 분기명령의 어드레스는 연상 메모리의 검색 필드내에 기억되며, 상기 분기선 명령의 내용 및 상기 분기선 명령 바로 다음 명령의 어드레스는 1개의 엔트리 넘버에 의해 연상 메모리내에 라이트되는 데이타 처리 장치.
  7. 특허청구의 범위 제5항에 있어서, 상기 디코드 및 제어정보 발생수단은 상기 제1의 메모리카 분기명령의 어드레스로 액세스될 때 상기 제1의 메모리내에 분기 명령의 어드레스가 존재하지 않으면 상기 페치 수단에 디코드될 명령을 요구하는 신호를 전송하는 수단을 포함하며, 상기 신호를 전송하는 수단은 상기 제1의 메모리가 분기 명령의 어드레스로 액세스되고 분기 명령의 어드레스가 그 안에 존재할 때 신호를 전송하지 않는 데이타 처리장치.
  8. 특허청구의 범위 제5항에 있어서, 상기 제1의 메모리는 또 상기 분기선 명령을 디코드하여 얻어진 제어 정보를 저장하고, 상기 실행수단은 메모리에 저장된 제어 정보에 따라 상기 분기선 명령을 실행하는 데이타 처리장치.
  9. 실행해야 할 명령이 저장된 주기억 장치(5), 상기 주기억 장치에 접속되어 상기 주기억 장치에서 명령을 페치하는 페치수단(4), 상기 페치 수단에 접속되어 상기 페치 수단에 의해 페치된 명령을 디코드하고, 상기 명령을 실행하기 위해 제어 정보를 발생하는 디코드 및 제어정보 발생수단(2), 상기 디코드 및 제어정보 발생수단(2)에 접속되어 상기 디코드 및 제어정보 발생수단에서 발생된 제어정보에 따라서 명령을 실행하는 실행수단(3), 병렬적으로 동작하여 파이프 라인 데이타 처리를 실행하는 상기 페치수단, 상기 디코드및 제어정보 발생수단, 상기 실행수단, 분기 명령에서 얻어진 분기선 어드레스에 의해 액세스된 분기선 명령을 디코드하여 상기 디코드 및 제어정보 발생수단에서 얻어진 상기 제어 정보를 저장하고, 상기 분기선 명령의 내용을 저장하고, 상기 분기 명령의 어드레스를 저장하며, 분기 명령을 재실행하기 전에 상기 제어정보, 상기 분기선 명령의 내용, 상기 분기선 명령의 어드레스 및 상기 분기 명령의 어드레스를 저장하는 제1의 메모리를 구비한 상기 디코드 및 제어정보 발생수단을 포함하며, 또, 상기 제1의 메모리는 상기 분기 명령의 어드레스에 따라 분기선 명령의 상기 내용, 상기 분기선 명령의 어드레스 및 상기 제어 정보를 리드하고, 상기 분기선 명령의 리드된 어드레스를 비교 수단으로 전송하는 수단을 포함하며, 상기 비교 수단은 상기 분기선 명령의 리드된 어드레스와 상기 실행 수단에서 발생된 상기 분기선 명령을 비교하며, 상기 비교수단에 의해 일치가 검출될 때, 상기 리드된 제어정보와 상기 분기선 명령의 리드된 내용은 상기 분기 명령을 재실행시 상기 주기억 장치에서 분기선 명령의 페치를 추가하지 않고 상기 비교 수단의 출력에따라 상기 실행수단으로 전송되는 데이타 처리장치.
  10. 특허청구의 범위 제9항에 있어서, 상기 제1의 메모리는 연상 메모리이고, 상기 제어정보, 상기 분기선 명령의 어드레스 및 상기 분기선 명령의 내용은 상기 연상 메모리내의 데이타 필드로 라이트되고, 상기 분기 명령의 어드레스는 연상 메모리의 검색 필드내에 기억되며, 상기 제어정보, 상기 분기선 명령의 내용, 상기 분기선 명령의 어드레스 및 상기 분기 명령의 어드레스는 1개의 엔트리 넘버에 의해 연상 메모리내에 라이트되는 데이타 처리장치.
  11. 특허청구의 범위 제9항에 있어서, 상기 디코드 및 제어정보 발생수단은 상기 제1의 메모리가 분기명령의 어드레스로 액세스될때 상기 제1의 메모리내에 분기 명령의 어드레스가 존재하지 않으면 상기 페치수단에 디코드될 명령을 요구하는 신호를 전송하는 수단을 포함하며, 상기 신호를 전송하는 수단은 상기 제1의 메모리가 분기 명령의 어드레스로 액세스되고 분기 명령의 어드레스가 그 안에 존재할 때 신호를 전송하지 않는 데이타 처리장치.
  12. 특허청구의 벙위 제9항에 있어서, 상기 실행수단은 상기 제1의 메모리내에 저장된 제어 정보에 따라 상기 분기선 명령을 실행하는 데이타 처리장치.
  13. 특허청구의 범위 제9항에 있어서, 상기 제1의 메모리에서 리드된 분기선 명령의 어드레스는 상기 실행수단에 의해 계산된 다음 명령의 어드레스와 비교되는 데이타 처리장치.
  14. 마이크로 프로세서에 의해 실행된 명령의 주기억 장치내에 저장되는 데이타 처리 시스템내의 주기억장치로서 사용되는 마이크로 프로세서에 있어서, 상기 주기억 장치에 접속되어 상기 주기억 장치에서 명령을 페치하는 페치수단(4), 상기 페치 수단에 접속되어 상기 페치수단에 의해 페치된 명령을 디코드하고, 상기 명령을 실행하기 위해 제어정보를 발생하는 디코드 및 제어정보 발생수단(2), 상기 디코드 및 제어정보발생수단(2)에 접속되어 상기 디코드 및 제어정보 발생수단에서 발생된 제어 정보에 따라서 명령을 실행하는 실행수단(3), 병렬적으로 동작하여 파이프 라인 데이타 처리를 실행하는 상기 페치수단, 상기 디코드 및 제어정보 발생수단, 상기 실행수단, 분기 명령에서 얻어진 분기선 어드레스에 의해 액세스된 분기선 명령을 디코드하여 상기 디코드 및 제어정보 발생수단에서 얻어진 상기 제어정보를 저장하고, 상기 분기선 명령의 내용을 저장하고, 상기 분기 명령의 어드레스를 저장하며, 분기 명령을 재실행하기 전에 상기 제어정보, 상기 분기선 명령의 내용 및 상기 분기 명령의 어드레스를 저장하는 제1의 메모리를 구비한 상기 디코드 및 제어정보 발생수단을 포함하며, 또, 상기 제1의 메모리는 상기 분기 명령의 어드레스에 따라 분기선 명령의 상기 내용 및 상기 제어 정보를 리드하고, 상기 분기 명령을 재실행할 때 상기 주기억 장치에서 분기선명령의 페치를 추가하지 않고 상기 실행수단으로 분기선 명령의 리드된 내용과 상기 리드된 제어 정보를 전송하는 수단을 포함하는 마이크로 프로세서.
  15. 특허청구의 범위 제14항에 있어서, 상기 제1의 메모리는 연상 메모리이고, 상기 제어 정보 및 상기 분기선 명령의 내용은 상기 연상 메모리내의 데이타 필드로 라이트되고, 상기 분기 명령의 어드레스는 연상메모리의 검색필드내에 기억되며, 상기 제어정보, 상기 분기선 명령의 내용 및 상기 분기 명령의 어드레스는 1개의 앤트리 넘버에 의해 연상 메모리내에 라이트되는 마이크로 프로세서.
  16. 특허청구의 범위 제14항에 있어서, 상기 디코드 및 제어정보 발생수단은 상기 제1의 메모리가 분기명령의 어드레스로 액세스될 때 상기 제1의 메모리내에 분기 명령의 어드레스가 존재하지 않으면 상기 페치 수단에 디코드될 명령을 요구하는 신호를 전송하는 수단을 포함하며, 상기 신호를 전송하는 수단은 상기제1의 메모리가 분기 명령의 어드레스로 액세스되고 분기 명령의 어드레스가 그 안에 존재할때 신호를 전송하지 않는 마이크로 프로세서.
  17. 특허청구의 범위 제14항에 있어서, 상기 실행수단은 상기 제1의 메모리내에 저장된 제어 정보에 따라 상기 분기선 명령을 실행하는 마이크로 프로세서.
  18. 마이크로 프로세서에 의해 실행될 명령이 주기억 장치내에 저장되는 데이타 처리 시스템내의 주기억장치로서 사용되는 마이크로 프로세서에 있어서, 상기 주기억 장치에 접속되어 상기 주기억 장치에서 명령을 페치하는 페치수단(4), 상기 페치수단에 접속되어 상기 페치수단에 의해 페치된 명령을 디코드하고, 상기 명령을 실행하기 위해 제어정보를 발생하는 디코드 및 제어정보 발생수단(2), 상기 디코드 및 제어정보발생수단(2)에 접속되어 상기 디코드 및 제어정보 발생수단에서 발생된 제어 정보에 따라서 명령을 실행하는 실행수단(3), 병렬적으로 동작하여 파이프 라인 데이타 처리를 실행하는 상기 페치수단, 상기 디코드 및 제어정보 발생수단, 상기 실행수단, 분기 명령에서 얻어진 분기선 어드레스에 의해 액세스된 분기선 명령의 내용을 저장하고, 상기 분기선 명령의 어드레스 바로 다음의 명령의 어드레스를 저장하고, 상기 분기 명령을 저장하며, 분기 명령을 재실행하기 전에 상기 분기선 명령의 상기 내용, 상기 분기선 명령 바로 다음의 명령의 상기 어드레스 및 상기 분기 명령의 어드레스를 저장하는 제1의 메모리를 구비한 상기 디코드 및 제어정보 발생수단을 포함하며, 또 상기 제1의 메모러는 상기 분기 명령의 어드레스에 응답하여 상기 분기선 명령 바로 다음의 상기 명령의 어드레스와 분기선 명령의 상기 내용을 리드하고, 상기 실행수단으로 분기선 명령의 상기 리드된 내용을 전송하며, 분기 명령이 재실행될 때 상기 주기억 장치에서 분기선 명령의 페치를 추가하지 않고 상기 페치수단으로 상기 분기선 명령 바로 다음의 상기 명령의 리드된 어드레스를 전송하는 수단을 포함하는 마이크로 프로세서.
  19. 특허청구의 범위 제18항에 있어서, 상기 제1의 메모리는 연상 메모리이고, 분기 명령 바로 다음 명령의 어드레스와 상기 분기선 명령의 내용은 상기 연상 메모리내의 데이타 필드로 라이트되고, 상기 분기명령의 어드레스는 연상 메모리의 검색 필드내에 기억되며, 상기 분기선 명령의 내용, 상기 분기선 명령 바로 다음 명령의 어드레스 및 분기 명령의 어드레스는 1개의 엔트리 넘버에 의해 연상 메모리내에 라이트되는 마이크로 프로세서.
  20. 특허청구의 범위 제18항에 있어서, 상기 디코드 및 제어정보 발생수단은 상기 제1의 메모리가 분기명령의 어드레스로 액세스될때 상기 제1의 메모리내에 분기 명령의 어드레스가 존재하지 않으면 상기 페치수단에 디코드될 명령을 요구하는 신호를 전송하는 수단을 포함하며, 상기 신호를 전송하는 수단은 상기 제1의 메모리가 분기 명령의 어드레스로 액세스되고 분기 명령의 어드레스가 그 안에 존재할 때 신호를 전송하지 않는 마이크로 프로세서.
  21. 특허청구의 범위 제18항에 있어서, 상기 제1의 메모리는 또 상기 분기선 명령을 디코드하여 얻어진 제어정보를 저장하고, 상기 실행수단은 메모리에 저장된 제어 정보에 따라 상기 분기선 명령을 실행하는 마이크로 프로세서.
  22. 마이크로 프로세서에 의해 실행된 명령이 주기억 장치내에 저장되는 데이타 처리 시스템내의 주기억장치로서 사용되는 마이크로 프로세서에 있어서, 상기 주기억 장치에 접속되어 상기 주기억 장치에서 명령을 페치하는 페치수단(4), 상기 페치 수단에 접속되어 상기 페치수단에 의해 페치된 명령을 디코드하고, 상기 명령을 실행하기 위해 제어정보를 발생하는 디코드 및 제어정보 발생수단(2), 상기 디코드 및 제어정보 발생수단(2)에 접속되어 상기 디코드 및 제어정보 발생수단에서 발생된 제어정보에 따라서 명령을 실행하는 실행수단(3), 병렬적으로 동작하여 파이프 라인 데이타 처리를 실행하는 상기 페치수단, 상기 디코드 및 제어정보 발생수단, 상기 실행수단, 분기 명령에서 얻어진 분기선 어드레스에 의해 액세스된 분기선 명령을 디코드하여 상기 디코드 및 제어정보 발생수단에서 얻어진 상기 제어정보를 저장하고, 상기 분기선 명령의 내용을 저장하고, 상기 분기 명령의 어드레스를 저장하며, 분기 명령을 재실행하기 전에 상기 제어 정보, 상기 분기선 명령의 내용, 상기 분기선 명령의 어드레스 및 상기 분기 명령의 어드레스를 저장하는 제1의 메모리를 구비한 상기 디코드 및 제어정보 발생수단을 포함하며, 또, 상기 제1의 메모리는 상기 분기 명령의 어드레스에 따라 분기선 명령의 상기 내용, 상기 분기선 명령의 어드레스 및 상기 제어 정보를 리드하고, 상기 분기선 명령의 리드된 어드레스를 비교수단으로 전송하는 수단을 포함하며 상기 비교 수단은 상기분기선 명령의 리드된 어드레스와 상기 실행 수단에서 발생된 상기 분기선 명령을 비교하며, 상기 비교 수단에 의해 일치가 검출될 때, 상기 리드된 제어정보와 상기 분기선 명령의 리드된 내용은 상기 분기 명령을 재실행시 상기 주기억 장치에서 분기선 명령의 페치를 추가하지 않고 상기 비교 수단의 출력에 따라 상기 실행수단으로 전송되는 마이크로 프로세서.
  23. 특허청구의 범위 제22항에 있어서, 상기 제1의 메모리는 연상 메모리이고, 상기 제어정보 및 상기 분기선 명령의 내용은 상기 연상 메모리내의 데이타 필드로 라이트되고, 상기 분기 명령의 어드레스는 연상메모리의 검색 필드내에 기억되며, 상기 제어정보, 상기 분기선 명령의 내용, 상기 분기선 명령의 어드레스 및 상기 분기 명령의 어드레스는 1개의 엔트리 넘버에 의해 연상 메모리내에 라이트되는 마이크로 프로세서.
  24. 특허청구의 범위 제22항에 있어서, 상기 디코드 및 제어정보 발생수단은 상기 제1의 메모리가 분기명령의 어드레스로 액세스될 때 상기 제1의 메모리내에 분기 명령의 어드레스가 존재하지 않으면 상기 페치수단에 디코드 될 명령을 요구하는 신호를 전송하는 수단을 포함하며, 상기 신호를 전송하는 수단은 상기 제1의 메모리가 분기 명령의 어드레스로 액세스되고 분기 명령의 어드레스가 존재할 때 신호를 전송하지않는 마이크로 프로세서.
  25. 특허청구의 범의 제22항에 있어서, 상기 실행수단은 상기 제1의 메모리내에 저장된 제어 정보에 따라 상기 분기선 명령을 실행하는 마이크로 프로세서.
  26. 특허청구의 범위 제23항에 있어서, 상기 제1의 메모리에서 리드된 분기선 명령의 어드레스는 상기 실행수단에 의해 계산된 다음 명령의 어드레스와 비교되는 마이크로 프로세서.
  27. 특허청구의 범위 제1항에 있어서, 상기 페치 수단은 또 다수의 명령 및 상기 다수의 명령에 대응하는 다수의 어드레스를 저장하는 제2의 메모리를 포함하는 데이타 처리장치.
  28. 특허청구의 범위 제5항에 있어서, 상기 페치수단은 또 다수의 명령 및 상기 다수의 명령에 대응하는 다수의 어드레스를 저장하는 제2의 메모리를 포함하는 데이타 처리장치.
  29. 특허청구의 범위 제9항에 있어서, 상기 페치수단은 또 다수의 명령 및 상기 다수의 명령에 대응하는 다수의 어드레스를 저장하는 제2의 메모리를 포함하는 데이타 처리장치.
  30. 특허청구의 범위 제14항에 있어서, 상기 페치수단은 또 다수의 명령 및 상기 다수의 명령에 대응하는 다수의 어드레스를 저장하는 제2의 메모리를 포함하는 마이크로 프로세서.
  31. 특허청구의 범위 제18항에 있어서, 상기 페치수단은 또 다수의 명령 및 상기 다수의 명령에 대응하는 다수의 어드레스를 저장하는 제2의 메모리를 포함하는 마이크로 프로세서.
  32. 특허청구의 범위 제22항에 있어서, 상기 페치수단은 또 다수의 명령 및 상기 다수의 명령에 대응하는 다수의 어드레스를 저장하는 제2의 메모리를 포함하는 마이크로 프로세서.
KR1019850000766A 1984-02-10 1985-02-07 데이타 처리 장치 KR920006275B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP59021794A JPS60168238A (ja) 1984-02-10 1984-02-10 パイプラインデータ処理装置
JP59-21794 1984-02-10

Publications (2)

Publication Number Publication Date
KR850006087A KR850006087A (ko) 1985-09-28
KR920006275B1 true KR920006275B1 (ko) 1992-08-03

Family

ID=12064956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019850000766A KR920006275B1 (ko) 1984-02-10 1985-02-07 데이타 처리 장치

Country Status (3)

Country Link
US (1) US4912635A (ko)
JP (1) JPS60168238A (ko)
KR (1) KR920006275B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100325177B1 (ko) * 1991-07-08 2002-02-21 고성능 알아이에스씨 마이크로프로세서 구조

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6295636A (ja) * 1985-10-22 1987-05-02 Nec Corp 先取り制御処理装置
JPS6336336A (ja) * 1986-07-30 1988-02-17 Nec Corp 情報処理装置
JPS6349844A (ja) * 1986-08-18 1988-03-02 Nec Corp 命令先取り装置
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
JPH0195331A (ja) * 1987-10-08 1989-04-13 Fujitsu Ltd パイプライン処理システム
US4943908A (en) * 1987-12-02 1990-07-24 International Business Machines Corporation Multiple branch analyzer for prefetching cache lines
US5127091A (en) * 1989-01-13 1992-06-30 International Business Machines Corporation System for reducing delay in instruction execution by executing branch instructions in separate processor while dispatching subsequent instructions to primary processor
US5134693A (en) * 1989-01-18 1992-07-28 Intel Corporation System for handling occurrence of exceptions during execution of microinstructions while running floating point and non-floating point instructions in parallel
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5454090A (en) * 1990-10-12 1995-09-26 Siemens Aktiengesellschaft Apparatus for furnishing instructions in a microprocessor with a multi-stage pipeline processing unit for processing instruction phase and having a memory and at least three additional memory units
DE59010857D1 (de) * 1990-10-12 1999-02-04 Siemens Ag Vorrichtung zur Befehlsbereitstellung in einem Mikroprozessor
US5265213A (en) * 1990-12-10 1993-11-23 Intel Corporation Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction
JPH04260929A (ja) * 1991-01-21 1992-09-16 Mitsubishi Electric Corp データ処理装置
JPH04321130A (ja) * 1991-04-22 1992-11-11 Toshiba Corp 分岐予測装置
JP2875909B2 (ja) * 1991-07-12 1999-03-31 三菱電機株式会社 並列演算処理装置
US5319784A (en) * 1991-12-18 1994-06-07 International Business Machines Corp. System for automatic and selective compile-time installation of fastpath into program for calculation of function/procedure without executing the function/procedure
US5434986A (en) * 1992-01-09 1995-07-18 Unisys Corporation Interdependency control of pipelined instruction processor using comparing result of two index registers of skip instruction and next sequential instruction
US5742839A (en) * 1992-01-30 1998-04-21 Fujitsu Limited Coprocessor for performing an arithmetic operation by automatically reading data from an external memory
JP2761688B2 (ja) * 1992-02-07 1998-06-04 三菱電機株式会社 データ処理装置
US5706459A (en) * 1994-01-06 1998-01-06 Fujitsu Limited Processor having a variable number of stages in a pipeline
US5561782A (en) * 1994-06-30 1996-10-01 Intel Corporation Pipelined cache system having low effective latency for nonsequential accesses
US5692170A (en) * 1995-04-28 1997-11-25 Metaflow Technologies, Inc. Apparatus for detecting and executing traps in a superscalar processor
US5905881A (en) * 1995-11-30 1999-05-18 Unisys Corporation Delayed state writes for an instruction processor
US5867699A (en) * 1996-07-25 1999-02-02 Unisys Corporation Instruction flow control for an instruction processor
WO1999057642A1 (fr) * 1998-05-01 1999-11-11 Matsushita Electric Industrial Co., Ltd. Dispositif et procede de traitement de donnees
JP3862642B2 (ja) * 2002-09-17 2006-12-27 株式会社日立製作所 データ処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3559183A (en) * 1968-02-29 1971-01-26 Ibm Instruction sequence control
JPS549456B2 (ko) * 1972-07-05 1979-04-24
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
US4477872A (en) * 1982-01-15 1984-10-16 International Business Machines Corporation Decode history table for conditional branch instructions
JPS5920049A (ja) * 1982-07-26 1984-02-01 Nec Corp 演算処理装置
US4604691A (en) * 1982-09-07 1986-08-05 Nippon Electric Co., Ltd. Data processing system having branch instruction prefetching performance
US4594659A (en) * 1982-10-13 1986-06-10 Honeywell Information Systems Inc. Method and apparatus for prefetching instructions for a central execution pipeline unit
US4626988A (en) * 1983-03-07 1986-12-02 International Business Machines Corporation Instruction fetch look-aside buffer with loop mode control
US4566063A (en) * 1983-10-17 1986-01-21 Motorola, Inc. Data processor which can repeat the execution of instruction loops with minimal instruction fetches

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100325177B1 (ko) * 1991-07-08 2002-02-21 고성능 알아이에스씨 마이크로프로세서 구조
KR100325176B1 (ko) * 1991-07-08 2002-02-25 고성능 알아이에스씨 마이크로프로세서 구조

Also Published As

Publication number Publication date
US4912635A (en) 1990-03-27
JPH0527143B2 (ko) 1993-04-20
KR850006087A (ko) 1985-09-28
JPS60168238A (ja) 1985-08-31

Similar Documents

Publication Publication Date Title
KR920006275B1 (ko) 데이타 처리 장치
US5283873A (en) Next line prediction apparatus for a pipelined computed system
US5293500A (en) Parallel processing method and apparatus
KR0149658B1 (ko) 데이터 처리장치 및 데이터 처리방법
US4827402A (en) Branch advanced control apparatus for advanced control of a branch instruction in a data processing system
EP0394624B1 (en) Multiple sequence processor system
US5706459A (en) Processor having a variable number of stages in a pipeline
US5446850A (en) Cross-cache-line compounding algorithm for scism processors
US5131086A (en) Method and system for executing pipelined three operand construct
US5689694A (en) Data processing apparatus providing bus attribute information for system debugging
JP3242508B2 (ja) マイクロコンピュータ
JP3400458B2 (ja) 情報処理装置
US5889986A (en) Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer
US4747045A (en) Information processing apparatus having an instruction prefetch circuit
EP0592404B1 (en) Apparatus and method for providing a stall cache
US8578135B2 (en) Apparatus for calculating and prefetching a branch target address
EP0223150B1 (en) Information processing apparatus
US20050102659A1 (en) Methods and apparatus for setting up hardware loops in a deeply pipelined processor
US5615375A (en) Interrupt control circuit
US5276822A (en) System with enhanced execution of address-conflicting instructions using immediate data latch for holding immediate data of a preceding instruction
US6654872B1 (en) Variable length instruction alignment device and method
US5276853A (en) Cache system
US5421026A (en) Data processor for processing instruction after conditional branch instruction at high speed
EP0292188A2 (en) Cache system
EP0573071A2 (en) A microprocessor

Legal Events

Date Code Title Description
A201 Request for examination
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: 20030801

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee