KR100235397B1 - 정보처리장치 - Google Patents

정보처리장치 Download PDF

Info

Publication number
KR100235397B1
KR100235397B1 KR1019960013275A KR19960013275A KR100235397B1 KR 100235397 B1 KR100235397 B1 KR 100235397B1 KR 1019960013275 A KR1019960013275 A KR 1019960013275A KR 19960013275 A KR19960013275 A KR 19960013275A KR 100235397 B1 KR100235397 B1 KR 100235397B1
Authority
KR
South Korea
Prior art keywords
data
expansion
instruction
processor
processing apparatus
Prior art date
Application number
KR1019960013275A
Other languages
English (en)
Other versions
KR960038572A (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 KR960038572A publication Critical patent/KR960038572A/ko
Application granted granted Critical
Publication of KR100235397B1 publication Critical patent/KR100235397B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

Landscapes

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

Abstract

본 발명은 확장연산기가 프로세서의 범용레지스터의 데이터를 소스, 수신처로 하는 확장연산명령을 행하는 경우에 실행시간이 증대하지 않는 정보처리장치를 제공하는 것을 목적으로 한 것이며, 그 구성에 있어서, 프로세서(101)는 확장연산기(102)용 확장연산명령을 해독하고, 필요한 오퍼랜드데이터를 범용레지스터(106)로부터 데이터처리부입력버스(124)를 개재해서 공급한다. 확장연산기(102)는 공급된 오퍼랜드데이터를 사용해서 확장연산을 실행하고, 연산결과를 데이터처리부출력버스(125)를 개재해서 프로세서(101)에 보낸다. 프로세서(101)에서는 보내진 데이터를 범용레지스터(106)에 되기록한다. 이에 의해 실행시간을 단축할 수 있는 것을 특징으로 한 것이다.

Description

정보처리장치
제1도는 본 발명의 제1실시예에 있어서의 정보처리장치의 구성을 표시한 블록도.
제2도는 동 실시예에 있어서의 확장연산장치에 대한 확장명령의 일예를 표시한 도면.
제3도는 동 실시예에 있어서의 정보처리장치에 있어서의 파이프라인처리의 상태를 표시한 타임차트.
제4도는 본 발명의 제2실예에 있어서의 정보처리장치의 구성을 표시한 블록도.
제5도는 동 실시예의 정보처리장치에 있어서의 프로세서의 범용레지스터(10 6)가 유지하는 오퍼랜드(operand)를 데이터처리부입력버퍼(230)에 기록하는 확장전송명령의 파이프라인처리의 상태를 표시한 타임차트.
제6도는 동 실시예의 정보처리장치에 있어서의 프로세서의 범용레지스터(10 6)가 유지하는 오퍼랜드와, 데이터처리부입력버퍼(230)가 유지하는 오퍼랜드를 사용하고, 출력결과를 프로세서의 범용레지스터(106)와 데이터처리부출력버퍼(231)에의 기록을 행하는 확장처리부(211)의 실행명령의 파이프라인처리의 상태를 표시한 타임차트.
제7도는 본 발명의 실시예2의 정보처리장치에 있어서의 데이터처리부출력버퍼(231)가 유지하는 데이터를 프로세서의 범용레지스터(106)에 기록하는 명령의 파이프라인처리의 상태를 표시한 타임차트.
제8도는 본 발명의 실시예2의 정보처리장치에 있어서의 프로세서(201)에 개입중단이 발생하고, 확장연산기의 데이터처리부입력버퍼(230)와, 확장연산기의 데이터처리부출력버퍼(231)와의 데이터를 퇴피데이터유지버퍼(232)에 격납하는 동작을 표시한 타임차트.
제9도는 본 발명의 실시예2의 정보처리에 있어서의 개입중단복귀명령의 파이프라인처리의 상태를 표시한 타임차트.
제10도는 본 발명의 실시예3에 있어서의 정보처리장치의 구성도.
제11도는 본 발명의 정보처리장치의 LSI레이아우트의 일예를 표시한 도면.
* 도면의 주요부분에 대한 부호의 설명
101 : 프로세서 102 : 확장연산기
103 : 메모리 104, 109 : 디코더
105, 110 : 제어회로 106 : 범용레지스터
108 : 플래그격납레지스터 112, 119 : 명령레지스터
113, 120 : 마이크로명령레지스터 114 : 데이터래치
116 : 레지스터기록버퍼 117 : 메모리기록버퍼
118 : 확장연산기용 데이터래치
121~123, 132~135, 154 : 드라이버
124 : 데이터처리부입력버스 125 : 데이터처리부출력버스
126 : 명령공급버스 127, 128 : 데이터버스
12) : 상태관리부 130, 131 : 플래그데이터버스
140 : 제1데이터처리부 141 : 제2데이터처리부
143 : 파이프라인래치 150 : 제1확장처리부
151 : 제2확장처리부 152 : 제3확장처리부
153 : 제4확장처리부
본 발명은, 메모리중의 명령에 따라서 데이터를 처리하는 주요 데이터처리장치와 부수적인 확장처리장치로 이루어진 정보처리장치에 관한 것이다.
최근, 데이터처리장치(이하, 프로세서라고 함)와 함께, 용도에 따른 특별한 연산을 고속으로 실행하는 확장연산기를 설치해서 처리능력의 향상이 도모되고 있다.
이 확장연산기의 실정방식에는 프로세서에 내장하는 방식이나, 필요한 경우만 접속해서 실장하는 접속방식 등이 있다. 내장방식에서는 확장연산기를 사용하지 않는 경우에, 코스트의 증대와 소비전력의 증대를 발생시킨다는 단점이 있으므로, 성능을 열화시키지 않고 프로세서와 확장연산기를 접속하는 방식이 요구되고 있다.
종래의 프로세서와 확장연산기를 접속한 정보처리장치로서, 프로세서가 확장연산기의 명령을 해독해서, 확장연산기에 코맨드를 통지함으로써, 확장연산을 실행시키는 방식이 있다. 이 방식에서는 프로세서로부터의 코맨드전송의 오버헤드가 발생하는 것이 원인으로 확장연산기의 처리시간이 오래 걸린다는 결점이 있다.
또, 일본국 특개평 1-240932호 공보에서는 확장연산기에서도 파이프라인처리를 행하는 프로세서와 동일한 명령을 동기를 취해서 해독함으로써 코맨드전송 및 코맨드해독에 요하는 시간을 은폐하는 정보처리장치가 고안되고 있다.
그러나, 종래의 정보처리장치에 의하면, 프로세서내의 범용레지스터가 가진 데이터를 사용해서, 확장연산기가 처리를 행하는 경우나, 확장연산기가 처리를 행한 데이터를 프로세서가 가진 범용레지스터에 격납하는 경우에는 데이터를 일단 메모리에 유지시켜서, 데이터를 전송하기 때문에, 실행시간이 증대하고 성능이 열화한다는 과제를 가지고 있었다.
또, 프로세서의 플래그격납레지스터가 가진 플래그정보를 사용해서, 확장연산기가 처리를 행하는 경우, 또는 확장연산기가 처리를 행한 플래그정보를 프로세서가 가진 플래그격납레지스터에 격납하는 경우, 플래그정보를 일단 메모리에 유지함으로써 플래그정보를 전송하기 때문에, 실행시간이 증대하고 성능이 열화한다는 과제를 가지고 있었다.
또 프로세서의 범용레지스터가 가진 데이터, 확장연산기가 처리를 행한 플래그정보를, 프로세서가 가진 범용레지스터, 플래그격납레지스터에 격납하는 경우에, 프로세서가 데이터, 또는 플래그정보를 범용레지스터, 플래그격납레지스터에 격납을 완료할때까지, 파이프라인처리를 정지시킬 필요가 있기 때문에, 실행시간이 증대하고 성능이 열화한다는 과제를 가지고 있었다.
또, 확장연산기가 처리중에 개입중단처리가 발생한 경우, 처리중의 데이터를 유지할 수 없으므로, 개입중단처리후에 재차 확장연산기가 처리하기 때문에, 실행시간이 증대하고 성능이 열화한다는 과제를 가지고 있었다.
또, 확장연산기가 처리중에 태스크절환처리가 발생한 경우, 처리중의 데이터를 유지할 수 없으므로, 재차 데스크절환전의 태스크절환전의 태스크처리시에, 확장연산기가 재차 처리되기 때문에, 실행시간이 증대하고 성능이 열화한다는 과제를 가지고 있었다.
상기 문제점에 비추어서 본 발명은, 프로세서의 범용레지스터가 가진 데이터를 사용해서 확장연산기가 처리를 행하는 경우, 또는 확장연산기가 처리를 행한 데이터를 프로세서가 가진 범용레지스터에 격납하는 경우에 있어서, 실행시간이 증대하지 않는 정보처리장치를 제공하는 것을 목적으로 한다.
또, 본 발명은, 프로세서의 범용레지스터가 가진 데이터를 사용해서, 확장연산기가 처리를 행할 경우, 또는 확장연산기가 처리를 행한 데이터를 프로세서가 가진 범용레지스터에 격납하는 경우, 고속으로 처리하고, 확장연산기를 필요로 하지 않을 경우, 회로규모의 증대에 의한 코스트상승과 소비전력의 증대를 억제하는 정보처리장치를 제공하는 것을 목적으로 한다.
또, 본 발명은, 프로세서의 범용레지스터가 가진 데이터를 사용해서, 확장연산기가 처리를 행하는 또는 확장연산기가 처리를 행한 데이터를 프로세서가 가진 범용레지스터에 격납하는 경우에 있어서, 프로세서의 파이프라인을 혼란시키지 않고 고속으로 실행하는 정보처리장치를 제공하는 것을 목적으로 한다.
또, 본 발명은, 프로세서의 플래그격납레지스터가 가진 플래그정보를 사용해서 확장연산기가 처리를 행할 경우, 또는 확장연산기가 처리를 행한 플래그정보를 프로세서가 가진 플래그격납레지스터에 격납하는 경우, 실행시간이 증대하고 성능이 열화하지 않는 정보처리장치를 제공하는 것을 목적으로 한다.
또 본 발명은 확장연산기가 복수의 오퍼랜드를 처리할 경우, 칩면적의 증대에 따른 코스트상승과 소비전력의 증대를 억제하는 정보처리장치를 제공하는 것을 목적으로 한다.
또 본 발명은 확장연산기가 처리중에 개입중단처리가 발생한 경우, 실행시간의 증대와 성능의 열화를 억제하는 정보처리장치를 제공하는 것을 목저으로 한다.
또, 본 발명은, 확장연산기가 처리중에 태스크전환처리가 발생한 경우, 실행시간의 증대와 성능의 열화를 억제하는 정보처리장치를 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위하여, 제1발명은, 메모리중의 명령에 따라서 데이터를 처리하는 주요데이터처리장치와 부수적인 확장처리장치로 이루어진 정보처리장치에 있어서, 데이터처리장치는 복수의 데이터유지영역을 가진 데이터유지수단과, 메모리중의 명령을 꺼내는 명령꺼내기수단과 꺼내진 명령을 해독하고, 확장처리장치에서 실행해야할 확장연산명령을 검출하는 명령검출수단과, 검출된 확장연산명령의 오퍼랜드에 의해서 지정된 소스의 데이터유지영역과 수신처(destination)의 데이터유지영역을 판별하는 오퍼랜드판별수단과, 판별된 소스의 데이터유지영역의 데이터를 확장처리장치에 공급하는 데이터공급수단과, 확장처리장치로부터 전송되는 연산결과를, 판별된 수신처의 데이터유지영역에 격납하는 데이터격납수단을 구비하고, 확장처리장치는 꺼내진 명령을 해독해서 확장연산명령을 검출하는 확장명령해독수단과, 데이터공급수단으로부터 공급되는 데이터를 사용해서, 확장명령해독수단에 검출된 확장연산명령을 실행하는 확장실행수단을 구비하고, 데이터처리장치와 확장처리장치는 메모리로부터 꺼내진 명령을 명령검출수단과 확장명령해독수단에 전송하는 명령버스, 데이터공급수단의 공급데이터를 확장실행수단에 전송하는 제1버스 및 확장실행수단의 연산결과를 데이터격납수단에 전송하는 제2버스에 의해 접속되어 있다.
제2발명은, 제1발명에 더하여, 연산종류가 서로 다른 확장연산명령을 실행하는 복수의 상기 확장처리장치를 구비하고 있다.
제3발명은, 제1발명의 정보처리장치에 있어서 상기 데이터처리장치가, 또, 연산결과의 상태를 표시하는 복수의 플래그를 유지하는 플래그레지스터를 구비하고, 상기 데이터공급수단은, 소스레지스터의 데이터공급과 함께 플래그레지스터의 플래그를 확장처리장치에 공급하고, 상기 데이터격납수단은, 연산결과를 수신처의 데이터유지영역에 격납하는 동시에, 확장처리장치로부터의 새로운 플래그를 플래그레지스터에 격납하고, 상기 확장실행수단은 데이터공급수단으로부터 공급되는 데이터와 함께 플래그를 사용해서 확장연산명령을 실행하고, 당해 연산의 상태를 표시하는 새로운 플래그를 데이터격납수단에 출력하고, 데이터처리장치와 확장처리장치는 또 데이터공급수단에 의해 공급되는 플래그를 확장실행수단에 전송하는 제1플래그버스 및 확장실행수단으로부터의 새로운 플래그를 플래그레지스터에 전송하는 제2플래그버스에 의해 접속되어 있다.
제4발명은, 제2발명의 정보처리장치에 있어서 상기 데이터처리장치가, 적어도 명령인출(fetch)스테이지와, 명령해독스테이지와 명령실행스테이지를 포함한 파이프라인처리를 행하고, 또, 확장실행수단에 있어서의 확장연산의 실행사이클수에, 명령실행스테이지의 사이클수를 일치시키는 스테이지상태관리수단을 구비하고, 상기 확장처리장치는 데이터처리장치에 동기해서 동작한다.
제5발명은, 제4발명의 정보처리장치에 있어서, 상기 확장실행수단이, 확장연산의 실행시에, 명령실행의 최후의 사이클이 되었을때에, 스테이지상태관리수단에 확장연산의 실행종료를 통지하고, 상기 스테이지상태관리수단은, 확장연산의 실행종료통지를 받으면, 받은 시점의 실행사이클에서 명령실행스테이지를 종료시킨다.
제6발명은, 제4발명의 정보처리장치에 있어서, 상기 데이터처리장치가, 검출수단에 의해 검출된 확장연산명령에 따라서, 데이터처리장치의 실행스테이지의 사이클수를 결정하는 결정수단을 구비하고, 상기 스테이지상태관리수단은, 결정된 사이클수의 동안 명령실행스테이지를 계속시킨다.
제7발명은, 제1, 3또는 4발명의 정보처리장치에 있어서, 상기 명령검출수단이, 데이터처리장치로부터 확장처리장치에의 데이터전송을 지시하는 제1전송명령을 검출하고, 상기 오퍼랜드판별수단은, 검출된 제1전송명령의 오퍼랜드에 의해서 소스로서 지정된 데이터유지영역을 판별하고, 상기 데이터공급수단은, 판별된 제1전송명령의 소스의 데이터유지영역의 데이터를 제1버스에 출력시킨다. 상기 확장처리장치는 또 데이터를 유지하는 입력버퍼를 구비하고, 상기 확장명령해독수단은, 상기 전송명령을 검출한 경우, 제1버스로부터의 데이터를 입력버퍼에 격납하고, 상기 확장명령실행수단은, 3개이상의 오퍼랜드를 요하는 확장연산명령의 실행에 입력버퍼의 데이터를 사용한다.
제8발명은, 제7발명의 정보처리장치에 있어서, 또, 데이터를 기억하는 영역을 가진 퇴피버퍼를 구비하고, 상기 데이터처리장치는 개입중단요구를 받아들이면, 개입중단신호를 확장처리장치에 출력하고, 상기 확장명령해독수단은, 개입중단처리로부터의 복귀명령을 검출하고, 상기 확장처리장치는 또 개입중단신호를 받으면 상기 입력버퍼의 데이터를 퇴피버퍼에 퇴피시키는 퇴피수단과, 개입중단처리로부터의 복귀명령이 검출되면, 퇴피버퍼의 데이터를 상기 입력버퍼에 복귀시키는 복귀수단을 구비한다.
제9발명은, 제7발명에 있어서, 상기 확장처리장치가, 또 확장실행수단의 연산결과의 일부를 유지하는 출력버퍼를 구비하고, 상기 확장명령해독수단은, 확장처리장치로부터 데이터유지수단에의 데이터전송을 지시하는 제2전송명령을 검출한 경우, 출력버퍼의 데이터를 제2버스에 출력하고, 상기 명령검출수단은, 상기 제2전송명령을 검출하고, 상기 오퍼랜드판별수단은, 검출된 제2전송명령의 수신처의 데이터유지영역을 판별하고, 상기 데이터격납수단은 제2전송명령의 수신처의 데이터유지영역에 제2버스로부터의 데이터를 격납한다.
제10발명은, 제9발명의 정보처리장치에 있어서, 또 복수의 데이터를 기억하는 영역을 가진 퇴피버퍼를 구비하고, 상기 데이터처리장치는 개입중단요구를 받아들이면, 개입중단신호를 확장처리장치에 출력하고, 상기 확장처리장치는 또 개입중단신호를 받으면, 상기 입력버퍼 및 출력버퍼의 데이터를 퇴피버퍼에 퇴피시키는 퇴피수단과, 개입중단처리로부터의 복귀명령이 검출되면, 퇴피버퍼의 데이터를 상기 입력버퍼 및 출력버퍼에 복귀시키는 복귀수단을 구비하고, 상기 확장명령해독수단은, 개입중단처리로부터의 복귀명령을 검출하면, 그 취지를 복귀수단에 통지한다.
제11발명은, 제9발명의 정보처리장치에 있어서, 상기 확장명령해독수단이, 태스크를 식별하는 태스크번호를 수반하는 태스크절환명령을 해독하고, 상기 확장처리장치는 또 복수의 상기 입력버퍼와, 동수의 상기 출력버퍼를 쌍으로 해서 구비하고, 해독한 태스크절환명령에 표시되는 태스크번호에 대응시킨 1쌍의 입력버퍼와 출력버퍼에 대한 데이터입출력을 허가하고, 다른 입력버퍼와 출력버퍼에 대한 데이터입출력을 금지하는 태스크관리수단을 구비한다.
상기 과제를 해결하기 위하여 본 발명의 제1발명에 관한 정보처리장치에서는 데이터처리장치는 확장처리장치용 확장연산명령을 해독하고, 확장처리장치가 필요로 하는 오퍼랜드데이터를 데이터유지수단으로부터 제1버스를 개재해서 공급한다. 확장처리장치는 공급된 오퍼랜드데이터를 사용해서 확장연산을 실행하고, 연산결과를 제2버스를 개재해서 데이터처리장치에 되보낸다, 데이터처리장치에서는 데이터격납수단이 되보내진 데이터를 데이터유지수단에 되기록한다. 이에 의해, 확장처리장치가 데이터처리장치의 데이터유지수단의 데이터를 사용해서 연산하는 경우에, 일단 메모리를 개재해서 데이터전송할 필요가 없어지고, 데이터처리장치와 확장처리장치와의 사이에서 직접 데이터의 수수를 하므로, 처리능력이 높은 정보처리장치를 실현할 수 있다.
제2발명에 관한 정보처리장치에서는 제1발명에 더하여 연산종류가 서로 다른 확장연산명령을 실행하는 복수의 상기 확장처리장치를 구비한다. 따라서 동시에 복수의 확장처리장치를 접속해서 다양한 확장연산명령이 혼재하는 프로그램을 고속으로 실행할 수 있다.
제3발명에 관한 정보처리장치에서는 제1발명의 정보처리장치에 대해서, 복수의 플래그도오퍼랜드데이터와 마찬가지로, 데이터처리장치와 확장처리장치의 사이에서 직접 수수를 하므로 보다 처리능력이 높은 정보처리장치를 실현할 수 있다.
제4발명에 관한 정보처리장치에서는 제2발명의 정보처리장치에 대해서, 스태이지상태관리수단이, 상기 확장처리장치의 확장연산실행스테이지와 데이터처리장치의 실행스테이지에서, 실제의 스테이지의 사이클수를 맞추므로, 데이터처리장치의 파이프라인동작을 혼란시키지 않고, 확장연산명령의 실행과, 데이터처리장치의 명령실행의 이행을 원활하게 행할 수 있다.
제5발명에 관한 정보처리장치에서는 제4발명의 정보처리장치에 대해서, 스테이지상태관리수단은 확장실행수단으로부터 확장연산의 실행종료통지를 받음으로써, 데이터처리장치의 명령실행스테이지를 종료시킨다. 이에 의해, 상기 실행종료통지를 전달하는 신호선을 추가함으로써, 파이프라인동작을 혼란시키지 않고, 간단한 구성으로 확장연산명령에의 이행을 원활하게 행할 수 있다.
제6발명에 관한 정보처리장치에서는 제4발명의 정보처리장치에 있어서, 상기 데이터처리장치가, 검출수단에 의해 검출된 확장연산명령에 따라서, 데이터처리장치의 실행스테이지의 사이클수를 결정하는 결정수단을 구비하고, 상기 스테이지상태관리수단은, 결정된 사이클수의 동안 명령실행스테이지를 계속시킨다. 이에 의해, 데이터처리장치와 확장처리장치와의 사이에 신호선을 추가하지 않고, 또, 복수의 확장처리장치의 접속에 적합한 구성을 실현할 수 있다.
제7 발명에 관한 정보처리장치에서는 제1, 3또는 제4발명의 정보처리장치에 있어서, 제1전송명령에 의해 확장연산명령에 필요한 오퍼랜드데이터를 사전에 입력버퍼에 격납한다. 이에 의해, 3개이상의 오퍼랜드를 요하는 확장연산명령의 실행에 적합한 정보처리장치를 실현할 수 있다.
제8 발명에 관한 정보처리장치에서는 제7발명의 정보처리장치에 있어서, 개입중단처리의 개시시에 입력버퍼의 데이터를 퇴피버퍼에 퇴피시키고 개입중단처리로부터의 복귀시에 퇴피버퍼의 데이터를 입력버퍼에 복귀시킨다. 이에 의해, 개입중단처리에의 이행을 신속하게 할 수 있다.
제9발명에 관한 정보처리장치에서는 제7발명의 정보처리장치에 있어서, 출력버퍼는 확장실행수단의 연산결과의 일부를 유지한다. 제2전송명령에 의해 출력버퍼의 데이터가 데이터유지수단에 격납된다. 이에 의해 확장연산의 결과 복수의 데이터가 생성되는 경우에도, 연산결과를 데이터유지수단에 고속으로 격납할 수 있다.
제10발명에 관한 정보처리장치에서는 제9발명의 정보처리장치에 있어서, 개입중단처리의 개시시에 입력버퍼와 출력버퍼의 쌍방의 데이터를 퇴피버퍼에 퇴피시키고, 개입중단처리로부터의 복귀시에 퇴피버퍼의 데이터를 입력버퍼와 출력버퍼의 쌍방에 복귀시킨다. 이에 의해, 개입중단처리에 이행을 신속하게 할 수 있고, 보다 유연한 확장연산을 할 수 있다.
제11발명에 관한 정보처리장치에서는 제9발명의 정보처리장치에 있어서, 태스크관리수단은, 복수의 태스크를 처리할 경우에, 각 태스크에 대응해서 1쌍의 입력버퍼와 출력버퍼가 사용된다. 이에 의해 고속의 태스크스위치를 실현할 수 있다.
이하, 본 발명의 실시예를 도면에 의거해서 설명한다.
[제1실시예]
제1도는 본 발명의 제1실시예에 있어서의 정보처리장치의 구성을 표시한 블록도이다. 이 정보처리장치는 프로세서(101), 확장연산기(102), 메모리(103)을 구비하고, 데이터처리부입력버스(124), 데이터처리부출력버스(125), 명령공급버스 (126), 데이터버스(127), 데이터버스(128), 플래그데이터버스(130), 플래그데이터버스(131)에 의해 동도면에 표시한 바와 같이 접속되어 있다.
프로세서(101)는 디코더(104), 제어회로(105), 범용레지스터(106), 플래그격납레지스터(108), 명령레지스터(112), 마이크로명령레지스터(113), 데이터래치 (114), 레지스터기록버퍼(116), 메모리기록버퍼(117), 확장연산기용 데이터래치 (118), 상태관리부(129), 파이프라인래치(143), 드라이버(121)∼(123)(132)∼ (135), 제1데이터처리부(140), 제2데이터처리부(141)를 구비하고, 명령인출스테이지, 명령해독스테이지, 제1실행스테이지, 제2실행스테이지, 기록스테이지로 이루어진 5단의 파이프라인처리에 의해 메모리(103)의 명령을 실행한다. 메모리(103)의 명령에는 프로세서(101)에 대한 명령(이후, 프로세서명령이라고 부름)과 확장연산기(102)에 대한 명령(이후, 확장명령이라고 부름)이 존재하나, 프로세서(101)는 명령해독스테이지에 있어서 확장명령을 해독한 경우에 당해 명령의 오퍼랜드에 의해 지정된 소스데이터를 범용레지스터(106)로부터 판독해서 확장연산기(102)에 공급하고, 또 확장연산기(102)에 의한 연산결과를 범용레지스터(106)에 격납하도록 구성되어 있다. 본 실시예에서는 프로세서(101)는 32비트프로세서로 하고, 특히 명기하고 있지 않는한 버스폭도 32비트인 것으로 한다.
확장연산기(102)는 디코더(109), 제어회로(110), 명령레지스터(119), 마이크로명령레지스터(120), 제1∼제3파이프라인래치(160)∼(162), 제1확장처리부(150), 제2확장처리부(151), 제3확장처리부(152), 제4확장처리부(153)를 구비하고, 확장연산기(102)는 확장연산으로서 예를들면 승산, 제산, 적화연산, 비트필드연산, 스트링연산, 포화연산, 대기행렬(queuing)처리, 문맥(context)절환처리필터링처리등을 실행하는 복수의 확장연산기의 하나이고, 용도에 따라서 필요하게 되는 연산종류를 지지하는 확장연산기가 구비된다. 본 실시예에서는 연산종류를 승산으로 하고, 명령해독스테이지, 제1∼제4실행스테이지로 이루어진 파이프라인처리에 의해 승산을 실행하는 것으로 한다. 승산을 지시하는 확장명령의 일예를 제2도에 표시한다. 동도면에 있어서, 「MULQ Dm, Dn」은 소스레지스터Dm(부호붙은 32비트정수)과 소스레지스터 Dn(부호붙은 32비트정수)의 내용을 승산하고, 결과(64비트)의 하위 32비트를 수신처레지스터Dn에 상위 32비트를 범용레지스터(106)중의 승산레지스터MR에 격납한다. 「MULQ imm8, Dn」은, 8비트씩 데이터를 32비트정수로 부호확장한 값과 소스레지스터Dn(부호붙은 32비트정수)의 내용을 승산하고, 결과를 레지스터Dn, MR에 격납한다. 「MULQ imm16, Dn」, 「MULQ imm32, Dn」 도 마찬가지이다.
메모리(103)는 프로세서명령 및 확장명령으로 이루어진 프로그램과, 프로세서(101)와 확장연산기(102)에서 사용하는 데이터를 기억한다.
디코더(104)는 메모리(103)로부터 명령공급버스(126), 명령레지스터(112)를 개재해서 인출된 프로세서명령 및 확장명령을 명령해독스테이지에 있어서 해독하고, 당해 명령을 실현하는 마이크로명령을 출력한다. 보다 상세하게 말하면 디코더(104)는 해독의 결과가 확장명령일 경우(제2도의 예에서는 명령코드의 상위 4비트가 FH일 경우)에는 ①확장명령의 오퍼랜드에 의해서 지정된 소스레지스터를 판독하는 마이크로명령과, ②소스레지스터로부터 판독된 데이터를 확장연산기용 데이터래치(118)에 래치시키는 미이크로명령과, ③플래그격납레지스터(108)의 플래그데이터를 플래그데이터버스(130)에 드라이버(134)를 개재해서 출력시키는 마이크로명령과, ④제1, 제2데이터처리부(140)에 대한 NOP(no operation)를 지시하는 마이크로명령과, ⑤확장연산기(102)의 연산결과를 오퍼랜드에 의해서 지정된 수신처레지스터에 격납시키는 마이크로명령과, ⑥확장연산기(102)로부터의 플래그데이터를 드라이버(135)를 개재해서 플래그격납레지스터(108)에 격납하는 마이크로명령을 발생한다. 이중 전자 3개의 마이크로명령은, 마이크로명령레지스터를 경유하지 않고 직접 제어회로(105)에 출력되고, 다른 마이크로명령은, 마이크로명령레지스터(113)를 경유해서 제어회로(105)에 출력된다. 따라서, 전자3개의 마이크로명령은 명령해독스테이지에 있어서 선행적으로 실행된다. 또 상기 마이크로명령은, 상기 ①∼⑥을 내용으로 하는 것이면 되고, 1개의 마이크로명령이어도 복수의 마이크로명령이어도 된다.
또, 디코더(104)는 확장명령의 종별에 따라서 계속수를 결정하고, 그 계속수를 상태관리부(129)에 출력한다. 여기서, 계속수란, 프로세서(101)의 실행스테이지수와 확장연산기(102)의 실행스테이지수와의 차를 표시하고, 확장명령실행중에 프로세서(101)가 추가해야 할 아이들상태(NOP)의 실행스테이지수를 가리킨다. 본 실시예에서는 확장연산기(102), 프로세서(101)의 실행스테이지수는 각각 4단, 2단이므로, 디코드(104)는 해독의 결과, 확장명령이 승산명령일 경우(제2도의 예에서는 명령코드의 상위 8비트가 F6H, F9H, F BH일 경우)에는 계속수를 2로 결정한다.
프로세서의 제어회로(105)는 디코더(104)로부터 직접 혹은 마이크로명령레지스터(113)를 개재해서 입력되는 마이크로명령을 각종 제어신호로 변환하는 동시에 파이프라인처리를 제어하는 회로이다. 확장명령의 해독결과로서 상기 ①②③의 마이크로명령이 입력된 경우에는 당해명령의 실행스테이지에 선행해서 당해명령의 해독스테이지에 있어서, 범용레지스터(106)의 지정된 레지스터의 판독신호 및 드라이버(122)를 개방하는 제어신호와, 확장연산기용데이터래치(118)에 래치시키는 제어신호와, 드라이버(134)를 개방하는 제어신호를 출력한다. 또, 상기 ⑤⑥의 마이크로명령이 입력된 경우에는 범용레지스터(106)에 래치시키는 제어신호 및 범용레지스터(106)의 지정된 레지스터의 기록신호와, 드라이버(135)를 개방하는 제어신호를 출력한다.
범용레지스터(106)는 32비트데이터를 유지하는 레지스터DD∼D3, 승산결과의 상위 32비트를 유지하는 승산레지스터MR을 구비한다.
명령레지스터(112)는 제어회로(105)의 제어에 의해, 명령공급버스(126)를 개재해서 메모리(103)로부터 인출된 명령을 디코더(104)에 출력한다. 이 출력은, 명령인출스테이지로부터 명령해독스태이지로 변화할때마다, 다음의 명령으로 절환된다.
플래그격납레지스터(108)는 프로세서스테이터스를 표시하는 각종 플래그를 유지하고, 프로세서(101)의 제2데이터처리부(141)에서 생성되는 플래그와, 확장연산기(102)의 제4확장처리부(153)에서 생성되는 플래그와의 쌍방이 제어회로(105)의 제어에 의해 반영된다.
마이크로명령레지스터(113)는 제어회로(105)의 제어에 의해, 디코드(104)로부터의 마이크로명령을 제어회로(105)에 출력한다. 이 출력은 명령해독스테이지로부터 제1실행스테이지로 변화할때마다 다음의 마이크로명령(또는 마이크로명령렬)로 절환된다.
데이터래치(114)는 제어회로(105)로부터의 제어에 의해, 데이터처리부입력버스(124)를 개재해서 범용레지서터(106)로부터 판독된 오퍼랜드데이터를 제1데이터처리부(140)에 출력한다. 이 출력은 명령해독스테이지로부터 제1실행스테이지로 변화할 때마다 절환된다.
레지스터기록버퍼(116)는 제2실행스테이지종료후에, 제어회로(105)의 제어에 의해, 데이터처리부출력버스(125)로부터의 데이터를 범용레지스터(106)에 출력한다.
메모리기록버퍼(117)는 제2실행스테이지종료후에, 제어회로(105)의 제어에 의해, 데이터처리부출력버스(125)로부터의 데이터를 데이터버스(128)상에 출력한다.
확장연산기용 데이터래치(118)는 명령해독스테이지로부터 제1실행스테이지로 변화할때에, 제어회로(105)의 제어에 의해, 데이터처리부입력버스(124)를 경유하는 레지스터데이터를 확장연산기(102)에 출력한다.
프로세서의 드라이버(121)는 제어회로(105)의 제어에 의해 게이트를 개방해서, 데이터버스(127)를 경유하는 메모리(103)의 데이터를 데이터처리부입력버스(12 4)에 전달하는 드라이버이다.
드라이버(122)는 제어회로(105)의 제어에 의해 게이트를 개방해서, 범용레지스터(106)로부터 데이터처리부입력버스(124)에 데이터를 전달하는 드라이버이다
드라이버(123)는 제어회로(105)의 제어에 의해 게이트를 개방해서, 제2데이터처리부(141)로부터 데이터처리부출력버스(125)에 데이터를 전달하는 드라이버이다.
데이터처리부입력버스(124)는 프로세서(101)내부에서는 범용레지스터(106), 메모리(103)로부터의 데이터를 제1데이터처리부(140) 및 확장연산기용 데이터래치 (118)에 전달하고, 확장연산기(102)내부에서는 확장연산기용 데이터래치 (118)로부터의 데이터를 제1확장처리부(150)에 전달한다. 주목해야할 점은, 데이터처리부입력버스(124)가, 프로세서(101)내부의 범용레지스터(106)의 데이터를 확장연산기용 데이터래치(118)를 통해서 확장연산기(102)의 제1확장처리부(150)에 전달하는 점이다. 이 버스는 본 실시예에서는 32비트×2개의 비트수인 것으로 한다.
데이터처리부출력버스(125)는 프로세서(101)내의 제2데이터처리부(141)로부터 및 확장연산기(102)내의 제1확장처리부(153)로부터 프로세서(101)내의 레지스터기록버퍼(116), 메모리기록버퍼(117)에 실행결과를 전달한다. 데이터처리부출력버스(125)는 프로세서의 제1데이터처리부(140)와 확장연산기의 제2확장처리부(153)에서 처리된 데이터를 범용레지스터(106)메모리(103)와의 데이터에 전달하는 버스이다. 이 버스는 본 실시예에서는 32비트×2개의 비트수인 것으로 한다.
명령공급버스(126)는 메모리(103)에 격납된 명령을, 프로세서(101)내의 명령레지스터(112)와 확장연산기(102)내의 명령레지스터(119)에 전달하는 버스이다.
데이터버스(127)는 메모리(103)에 격납된 데이터를, 드라이버(121)를 개재해서 데이터처리부 입력버스(124)에 전달한다.
데이터버스(128)는 데이터처리부출력버스(125)로부터의 데이터를 메모리기록버퍼(117)를 개재해서 메모리(103)에 전달한다.
상태관리부(129)는 프로세서(101)의 모든 파이프라인스테이지의 상태를 관리하고, 현재의 스테이지의 다음 사이클에서 다음의 처리를 옮길지 현재의 스테이지를 그대로 계속할지를 관리한다. 보다 상세하게 말하면, 상태관리부(129)는 파이프라인스테이지의 상태를 표시하는 플래그정보를 유지한다. 플래그정보는, 현재의 스테이지의 다음의 사이클에서 다음의 처리로 옮기는 것을 표시하는 「다음 스테이지실행상태」와 다음의 사이클에서 현재의 스테이지를 그대로 계속하는 것을 표시하는 「현스테이지계속상태」를 표시한다. 디코더(104)에 의해 프로세서명령이 해독된 경우에는 플래그정보는 「다음스테이지실행상태」를 표시하고, 제1실행스테이지와 제2실행스테이지의 2스테이지분으로 명령실행이 종료한다. 디코더(104)에 의해 확장명령이 해독된 경우에는 디코더(104)로부터 상기한 계속수가 통지되고, 제2차실행스테이지에 있어서 당해 계속수분의 스테이지수가 「현스테이지계속상태」가 된다. 예를 들면 계속수 2가 통지되면, 플래그정보는 제1실행스테이지에서는 「다음스테이지실행상태」를 표시하고, 제2실행스테이지에서는 「현스테이지계속상태」→「현스테이지계속상태」→「다음스테이지계속상태」로 변환한다. 이와 같이 해서, 상태관리부(129)는 확장연산기(102)에 있어서의 확장명령의 실행스테이지수에, 프로세서(101)에 있어서의 실행스테이지수를 맞추도록 상태를 관리한다.
플래그데이터버스(130)는 플래그격납레지스터(108)의 플래그데이터를 확장연산기(102)에 전달하는 버스이다. 이 버스는 플래그수와 동수의 비트폭이어도 된다.
플래그데이터버스(131)는 제4확장처리부(153)에서 처리된 플래그데이터를, 프로세서(101)내의 플래그격납레지스터(108)에 전달하는 버스이다. 이 버스도 플래그수와 동수의 비트폭이어도 된다.
드라이버(132)는 프로세서의 제어회로(105)의 제어에 의해 게이트를 개방해서, 플래그격납레지스터(108)로부터 제1데이터처리부(140)에 플래그데이터를 전달하는 드라이버이다.
드라이버(133)는 제어회로(105)의 제어에 의해 게이트를 개방해서, 제2데이터처리부(141)로부터 플래그격납레지스터(108)에 플래그데이터를 전달하는 드라이버이다.
드라이버(134)는 제어회로(105)의 제어에 의해 게이트를 개방해서, 플래그격납레지스터(108)로부터 확장연산기(102)에 플래그데이터를 전달하는 드라이버이다.
드라이버(135)는 제어회로(105)의 제어에 의해 게이트를 개방해서, 확장연산기(102)로부터 플래그격납레지스터(108)에 플래그데이터를 전달하는 드라이버이다.
제1데이터처리부(140)는, 제어회로(105)의 제어에 의해 제1실행스테이지에 있어서의 데이터 처리를 행한다. 디코드(104)에 의해 확장명령이 해독된 경우에는 제어회로(105)의 제어에 의해 아이들상태(NOP)가 된다.
제2데이터처리부(141)는, 프로세서(101)의 제2실행스테이지에 있어서의 데이터처리를 행한다. 디코더(104)에 의해 확장명령이 해독된 경우에는, 제어회로(105)의 제어에 의해 아이들상태(NOP)가 된다.
파이프라인래치(143)는 제1실행스테이지로부터 제2실행스테이지로 변화할때에, 파이프라인제어를 행하는 프로세서의 제어회로(105)로부터의 제어에 의해, 프로세서의 제1데이터처리부(140)로부터, 제2데이터처리부(141)에 래치를 개방해서 데이터를 전달한다.
동 도면의 확장연산기(102)에 있어서, 디코더(109)는 메모리(103)로부터 명령공급버스(126), 명령레지스터(112)를 개재해서 인출된 명령을 명령해독스테이지에 있어서 해독한다. 해독의 결과가 확장명령일 경우에는 확장명령의 OP코드가 표시하는 연산내용을 실현하는 마이크로명령을 방행한다. 여기서 주의해야 할 것은, 확장명령의 오퍼랜드레지스터에 대해서(예를들면 제2도의 승산명령), 오퍼랜드데이터의 판독 및 기록을 지시하는 마이크로명령을 발행할 필요가 없는 점이다. 오퍼랜드레지스터의 판독 및 기록은 프로세서(101)에 의해 실행되기 때문이다.
제어회로(110)는 디코드(109)로부터 마이크로명령레지스터(120)를 개재해서 입력되는 마이크로명령을 각종 제어신호로 변환하는 동시에, 파이프라인처리를 제어하는 회로이다.
명령레지스터(119)는, 명령공급버스(126)를 개재해서 메모리(103)로부터 인출된 명령을 디코더(109)에 출력한다. 이 출력은 명령인출스테이지로부터 명령해독스테이지로 변화할때마다, 다음의 명령으로 절환된다.
마이크로명령레지스터(120)는 명령해독스테이지로부터 제1실행스테이지로 변화할때에, 파이프라인제어를 행하는 제어회로(110)로부터의 제어에 의해, 디코더 (109)로부터의 마이크로명령을 제어회로(110)에 출력한다. 이 출력은, 명령해독스테이지로부터 제1실행스테이지로 변화할때마다 다음의 마이크로명령(또는 마이크로명령렬)으로 절환된다.
제1확장처리부(150)는 확장연산기(102)의 제1실행스테이지에 있어서의 데이터처리를 행한다.
제2확장처리부(151)는 확장연산기(102)의 제2실행스테이지에 있어서의 데이터처리를 행한다.
제3확장처리부(152)는 확장연산기(102)의 제3실행스테이지에 있어서의 데이터처리를 행한다.
제4확장처리부(153)는 확장연산기(102)의 제4실행스테이지에 있어서의 데이터처리를 행한다.
제1파이프라인래치(160)는 제1실행스테이지로부터 제2실행스테이지로 변화할때에 제어회로(110)의 제어에 의해, 제1확장처리부(150)로부터 제2확장처리부(151)에 래치를 개방해서 데이터를 전달한다.
제2파이프라인래치(161)는 제2실행스테이지로부터 제3실행스테이지로 변화할때에, 제어회로(110)의 제어에 의해, 제2확정처리부(151)로부터 제3확장처리부(15 2)에 래치를 개방해서 데이터를 전달한다.
제3파이프라인래치(162)는 제3실행스테이지로부터 제4실행스테이지로 변화할때에, 제어회로(110)로부터의 제어에 의해 제3확장처리부(152)로부터 제4확장처리부(153)에 래치를 개방해서 데이터를 전달한다.
이상과 같이 구성된 본 발명의 제1실시예에 있어서의 정보처리장치에 대해서 그 동작을 설명한다.
제3도는 확장연산기(102)에 있어서 프로세서(101)의 범용레지스터(106)와 플래그격납레지스터(108)와의 데이터처리를 행하고, 처리결과 데이터를 범용레지스터 (106)와 플래그격납레지스터(108)에 격납하는 동작에 대해서, 파이프라인처리의 상태를 표시하는 타임차트를 표시한다.
동도면에 있어서, "IF1"는 프로세서에 있어서 확장명령을 인출하는 스테이지이다. "DP1"는 프로세서에 있어서 확장명령을 해독하는 스테이지이다. "EXP1","EXP 2"는 각각 프로세서에 있어서 확장명령을 실행하는 (NOP) 제1, 제2스테이지이다. "WB1"은 프로세서에 있어서 확장연산기의 연산결과를 기록하는 스테이지이다. "DE1"은 확장연산기에 있어서 확장명령을 명령해독하는 스테이지이다. "EXE1","EXE 2","EXE3","EXE4"는 각각 확장연산기에 있어서 확장명령을 실행하는 제1, 제2, 제3, 제4스테이지이다. "다음IF"는 프로세서에 있어서 IF1에서 인출된 다음의 명령을 인출하는 스테이지이다. "다음 DP"는 프로세서에 있어서 다음의 명령을 해독하는 스테이지이다. "다음EXP1","다음EXP2"는 각각 프로세서에 있어서 다음의 명령을 실행하는 제1, 제2스테이지이다.
시각1에 있어서, 프로세서의 명령인출스테이지(IF1)에서는 메모리(103)는 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할 때, 프로세서(101)의 제어회로(105)는 IF1로부터 DP1에 이행시키기 위하여, 프로세서의 명령레지스터(112)를 개방한다. 확장연산기(102)의 제어회로(110)는 IF1로부터 DE1에 이행시키기 위하여 명령레지스터(119)를 개방한다.
시각2에 있어서, 프로세서의 명령인출스테이지(다음 IF)에서는 메모리(103)는 다음 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(104)는 명령레지스터(112)가 개방되었을 때, 명령을 받아들이고, 명령을 해독한다. 제어회로 (105)는 디코드(104)가 선행적으로 출력하는 마이크로명령에 의해, 프로세서의 드라이버(122)를 개방함으로써, 범용레지스터(106)의 데이터를 데이터처리부입력버스 (124)에 싣고, 드라이버(134)를 개방함으로써 플래그격납레지스터(108)의 플래그정보를 플래그데이터버서(130)에 싣는다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기의 디코더(109)는 명령레지스터(119)가 개방되었을 때, 명령을 받아들여 명령을 해독한다.
시각 2로부터 시각3으로 변화할 때, 프로세서의 제어회로(105)는 다음 IF로부터 다음 DP에 이행하기 때문에, 프로세서의 명령레지스터(112)를 개방한다.
프로세서의 제어회로(105)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 마이크로명령레지스터(113), 데이터래치(114), 확장연산기용 데이터래치(11 8)를 개방한다. 확장연산기의 제어회로(110)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(105)는 프로세서의 마이크로명령레지스터(113)가 개방했을 때, 프로세서의 디코더(104)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(110)는 확장연산기의 마이크로명령레지스터(120)가 개방했을 때, 확장연산기의 디코더(109)의 명령해독스테이지(DE1)가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(104)는 프로세서의 명령레지스터(112)가 개방했을 때, 다음명령을 받아들여 명령을 해독한다.
프로세서의 제1명령실행스테이지(EXP1)에서는 프로세서의 제1데이터처리부 (140)는 데이터처리를 행하지 않는다(NOP).
확장연산기의 제1명령실행스테이지(EXE1)에서는 확장연산기의 제1확장처리부 (150)는 제1데이터처리를 행한다.
시각3으로부터 시각4로 변화할 때, 프로세서의 제어회로(105)는 다음DP로부터 다음EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113)를 개방한다. 프로세서의 제어회로(105)는 프로세서의 마이크로명령레지스터(113)가 개방했을 때, 프로세서의 디코더(104)의 다음 DP명령해독스테이지가 해독한 마이크로명령을 받아들인다.
프로세서의 제어회로(105)는 EXP1로부터 EXP2에 파이프라인스테이지가 변화할때에, 프로세서의 파이프라인레치(143)를 개방한다.
확장연산기의 제어회로(110)는 EXE1로부터 EXE2에 파이프라인스테이지가 변화할때에, 확장연산기의 제1파이프라인래치(160)을 개방한다.
시각4에 있어서, 프로세서의 제1명령실행스테이지(다음EXP1)에서는 프로세서의 제1데이터처리부(140)는 다음실행명령의 제1데이터처리를 행한다.
프로세서의 제2명령실행스테이지(EXP2)에서는 프로세서의 제2데이터처리부 (141)는 데이터처리를 행하지 않는다.
상태관리부(129)는 프로세서의 제2데이터처리부(141)가 EXP2스테이지를 실행함으로써, 상태가 다음스테이지실행상태로부터 3스테이지간의 현스테이지계속상태로 변화하고, 현스테이지계속신호를 프로세서의 제어회로(105)에 계속 전달한다.
확장연산기의 제2명령실행스테이지(EXE2)에서는 확장연산기의 제2확장처리부 (151)는 데이터처리를 행한다.
시각4로부터 시각5로 변화할 때, 프로세서의 제어회로(105)는 상태관리부 (129)가 전달한 현스테이지계속신호에 의해, 모든 파이프라인래치를 개방하지 않는다. 즉 현재의 스테이지의 상태가 다음의 스태이지에 있어서도 계속한다.
확장연산기의 제어회로(110)는 EXE2로부터 EXE3에 파이프라인스테이지가 변화할때에 확장연산기의 제2파이프라인래치(161)를 개방한다.
시각5에 있어서, 프로세서의 제1명령실행스테이지(다음EXP1)에서는 스테이지가 계속하고 있으므로, 프로세서의 제1데이터처리부(140)는 상기한 다음 명령실행명령의 제1데이터처리를 계속해서 행한다.
프로세서의 제2명령실행스테이지(EXP2)에서는 스테이지가 계속하고 있으므로, 프로세서의 제2데이터처리부(141)는 데이터처리를 행하지 않는다.
확장연산기의 제3명령실행스테이지(EXE3)에서는 확장연산기의 제3확장처리부 (152)는 제3데이터처리를 행한다.
시각4로부터 시각5로 변화할 때, 프로세서의 제어회로(105)는 상태관리부 (129)가 전달한 현스테이지계속신호에 의해, 모든 파이프라인래치를 개방하지 않는다.
확장연산기의 제어회로(110)는 EXE3으로부터 EXE4에 파이프라인스테이지가 변화할때에 확장연산기의 제3파이프라인래치(162)를 개방한다.
시각 6에 있어서, 프로세서의 제1명령실행스테이지(다음EXP1)에서는 스테이지가 계속하고 있으므로, 프로세서의 제1데이터처리부(140)는 상기한 다음 명령실행명령의 제1데이터처리를 계속해서 행한다.
프로세서의 제2명령실행스테이지(EXP2)에서는 스테이지가 계속하고 있으므로, 프로세서의 제2데이터처리부(141)는 데이터처리를 행하지 않는다(NOP).
상태관리부(129)는 프로세서의 제2데이터처리부(141)가 3스테이지간 EXP2스테이지를 계속(2스테이지분이 추가)함으로써 계속수 2를 경과했으므로, 현스테이지계속상태로부터 다음 스테이지실행상태로 변화하고, 현스테이지계속신호를 프로세서의 제어회로(105)에 전달을 멈춘다.
확장연산기의 제4명령실행스테이지(EXE4)에서는 제4확장처리부(153)는 데이터처리를 GDO하고, 결과데이터와 플래그정보를 출력하고, 플래그데이터버스(131)에 싣는다. 확장연산기의 제어회로(110)는 확장연산기의 드라이버(154)를 개방함으로써, 확장연산기의 제4확장처리부(153)가 처리한 데이터를 데이터처리부출력버스 (125)에 싣는다.
시각 6으로부터 시각 7로 변화할 때, 프로세서의 제어회로(105)는 다음 EXP1로부터 다음 EXP2에 파아프라인스테이지가 변화할때에 프로세서의 파이프라인래치 (143)를 개방한다.
프로세서의 제어회로(105)는 EXP2로부터 WB1에 파이프라인스테이지가 변화할때에, 드라이버(123)를 개방하고, 또한 드라이버(135)를 개방함으로써 플래그데이터버스(131)의 플래그정보를 플래그격납레지스터(108)에 전달한다.
시각 7에 있어서, 프로세서의 제2명령실행스테이지(다음 EXP2)에서는 프로세서의 제2데이터처리부(141)는 다음 명령실행의 제2데이터처리를 행한다.
프로세서의 기록스테이지(WB1)에서는 범용레지스터(106)는 프로세서와 확장연산기와의 데이터처리부출력버스(125)의 데이터를 받아들이고, 격납한다. 플래그격납레지스터(108)는 확장연산기로부터 프로세서에의 플래그데이터버스(131)의 플래그정보를 받아들이고 격납한다. 이상과 같이 확장연산기(102)는 프로세서(101)내의 범용레지스터(106)의 데이터를 직접 사용해서 연산할 수 있으므로, 메모리를 개재해서 데이터의 수수가 불필요한 만큼 고속으로 실행할 수 있다. 또, 프로세서 (101)내의 플래그격납레지스터(108)의 플래그를 참조할 경우도 마찬가지로 고속으로실행할 수 있다. 또한 전송시의 데이터불일치가 발생하지 않고, 또 프로세서 (101)와 확장연산기(102)와의 파이프라인처리를 혼란시키지 않고 실행시간을 단축할 수 있다.
또, 확장연산기(102)가 불필요할 경우, 프로세서(101)와 확장연산기(102)와 접속버스인 확장연산기화의 데이터처리부입력버스(124)와 확장연산기와의 데이터처리부출력버스(125)와 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)와, 프로세서로부터 확장연산기에의 플래그데이터버스(130)와, 확장연산기로부터 프로세서에의 플래그데이터버스(131)를 분리하는 것이 가능하다.
또, 종래예에서 표시한 바와 같이 확장연산기에서 데이터를 처리할 경우에, 처리하는 데이터를 메모리를 개재해서 확장연산기에 전송할 필요가 없고, 실행시간을 단출할 수 있다.
또, 실시예 1에서는 프로세서(101)의 디코더(104)가 확장명령의 종류에 따라서 계속수를 판별하고 있었으나, 예를 들면 확장연산기(102)의 어느 하나의 데이터처리부로부터 상태관리부(129)에 연산종료신호선을 접속하고, 이 연산종료신호에 의해, 상태관리부(129)의 스테이지계속을 종료하도록 구성해도 된다. 또, 확장명령자체에 프로세서(101)와 확장연산기(102)와의 파이프라인단수의 차의 정보를 가지게 하고, 디코더가 이 정보로부터 상태관리부(129)는 스테이지계속횟수를 결정하도록 구성해도 된다.
또한, 상기 실시예에서는 프로서서(101)에 대해서 1개의 확장연산기(102)를 접속한 경우의 구성을 설명했으나, 종류가 다른 복수의 확장연산기를 접속하는 구성으로 해도 된다. 예를 들면, 승산을 실행하는 확장연산기와, 적화연산을 실행하는 확장연산기와, 제산을 실행하는 확장연산기를 접속할 경우, 프로세서(101)와 각각의 확장연산기의 사이에서, 명령공급버스(126), 데이터처리부입력버스(124), 데이터처리부출력버서(125), 플래그데이터버스(130), 플래그데이터버스(131)의 5개의 버스를 접속하는 구성으로 하면 된다. 이 경우, 각각의 확장연산기에 대한 확장명령은 그 명령코드의 비트패턴이 독특하게 할당되어 있을 필요가 있다. 프로세서 (101)는 어느 확장연산기에 대한 확장명령에 있어서도 상기 실시예와 마찬가지로 레지스터데이터 및 플래그의 공급과 격납을, 상기 버스위에 행하게 된다. 각각의 확장연산기는 명령을 해독한 결과, 자체에 대한 확장명령만을 상기 실시예와 마찬가지로 실행하게 된다.
또, 상기 실시예에서는 프로세서(101)가 2단, 확장연산기(102)가 4단의 실행스테이지를 가진 파이프라인처리를 행하는 예를 표시했으나, 각각의 이 이외의 단수이어도 된다. 확장연산기(102)가 b(1b)단의 실행스테이지를 가지고, 프로세서가 b이하인 c단(1cb)의 실행스테이지를 가진 경우에는 제 c단째에 상태관리부를 설치하고, b-c의 값을 계속수로서 디코더로부터 상태관리부에 통지하도록 구성하면 된다. 또, 프로세서의 실행스테이지수c가 확장연산기의 실행스테이지수b보다 많은 경우(c>b)에는 계속수를 0으로 해서 통지하면 된다. 이 경우, 프로세서는 c단분의 실행스테이지가 종료한 시점에서 확장연산기로부터의 연산결과를 도입하고, 확장연산기는 b단분의 실행스테이지종료시점으로부터 프로세서가 c단분의 실행스테이지를 종료해서 연산결과를 도입할때까지 출력하게 된다.
또, 명령공급버서(126)는 프로세서의 명령레지스터(112)의 입력쪽과 확장연산기의 명령레지스터(119)의 입력쪽에 접속하고 있으나, 이 대신에, 명령공급버스를 메모리(103)로부터 프로세서의 명령레지스터(112)의 입력쪽에만 접속하고, 프로세서의 명령레지스터(112)의 출력쪽으로부터 확장연산기의 디코더(109)에 접속하는 다른 버스를 설치하는 구성으로 해도 된다. 이 경우, 확장연산기의 명령레지스터 (119)를 삭제할 수 있는 동시에, 명령공급버스의 전기적부가를 저감할 수 있다.
또, 본 정보처리장치를 1개의 LSI위에 구성하는 경우에, 제11도에 표시한 레이아우트도와 같이, 프로세서(101)에 대해서는 주로 디코더(104), 제어회로(105)로 이루어진 제어모듈부와, 제1, 제2데이터처리부(140)(141)와 데이터버스(데이터처리부입력버스(124), 데이터처리부출력서비스(125), 명령공급버스(126))등으로 이루어진 데이터패스부로 분류해서 레이아우트된다. 확장연산기(102)에 대해서도, 주로 디코더(109), 제어회로(110)로 이루어진 제어모듈부와, 제1∼제4확장처리부 (150)∼(153)와 데이터버스등으로 이루어진 데이터패스부로 분류해서 레이아우트된다. 이 중에서, 통상, 데이터패스부의 레이아우트의 1변은 데이터버스의 비트슬라이스(데이터버스의 비트폭)에 의존하므로, 본 정보처리장치에서는 데이터버스가 공통이므로, 연산종류가 다른 새로운 확장연산기를 용이하게 설계할 수 있고, 확장연산기 (102)를 구비하는 경우도 구비하지 않는 경우도 용이하게 제조할 수 있고, 또, 연산종별이 다른 복수의 확장연산기를 1칩위에 구비하는 것도 용이하게 할 수 있다.
[제2실시예]
제4도는 본 발명의 제2실시예에 있어서의 정보처리장치의 구성을 표시한 블록도이다. 이 정보처리장치는 프로세서(201), 확장연산기(202), 메모리(103), 퇴피데이터유지버퍼(232), 드라이버(259)로 구성된다. 제1도에 표시한 제1실시예의 구성과, 동일한 구성요소에는 동일한 부호를 붙이고 있다. 이하 동일한 구성요소에 대해서는 설명을 생략하고, 다른 점을 중심으로 설명한다.
동 도면에 있어서 프로세서(201)는 설명의 편의상 명령실행스테이지수는 1인 것으로 하고, 명령인출스테이지, 명령해독스테이지, 기록스테이지로 이루어진 4단의 파이프라인처리를 행하는 것으로 한다. 제1실시예와 다른 주요점은, 프로세서 (201)와 확장연산기(202)와의 사이에서 범용레지스터(106)의 데이터를 전송하는 전송명령(아하, 확장전송명령이라고 부름)을 실행하는 점과, 개입중단처리개시시에 확장연산기(202)에 그 취지를 통지하고, 그 통지에 대한 응답을 확인하고나서 개입중단처리에 분기하는 점이다. 이 때문에, 개입중단요구신호선(240), 개입중단신호선(241), 완료신호선(242)이 추가되고 있다. 또, 데이터처리부출력버스(125)는 제1실시예에서는 32비트×2구성으로 했으나, 본 실시예에서는 32비트×1구성이어도 된다.
확장연산기(202)는 설명의 편의상 명령실행스테이지수는 1인 것으로 하고, 명령인출스테이지, 명령해독스테이지, 명령실행스테이지, 기록스테이지로 이루어진 4단의 파이프라인처리를 행하는 것으로 한다. 제1실시예와 다른 점은, 상기 확장전송명령을 실행하는 점과, 프로세서(201)로부터 개입중단처리개시의 통지를 받으면 실행주의 확장명령이 중단해서 데이터를 퇴피하고, 준비가 된 것을 프로세서(201)에 응답하는 점이다. 이 때문에, 데이터처리부입력버퍼(230), 데이터처리부출력버퍼(231), 퇴피데이터유지버퍼(232), 그 주변에 드라이버(250)(251)(253)∼(259)가 추가되고, 데이터처리부입력버퍼퇴피버스(243), 데이터처리부출력버퍼복귀버스(24 5)에 의해서 접속되어 있다.
여기서, 확장전송명령은, 본 실시예에 있어서는 프로세서(201)내부의 범용레지스터(106)로부터, 확장연산기(202)내부의 데이터처리부입력버퍼(230)에의 데이터전송명령과, 확장연산기(202)내부의 데이터처리부출력버퍼(231)로부터 프로세서(2 01)내부의 범용레지스터(106)에의 데이터전송명령을 말한다. 예를 들면, 다음과 같이 통상의 전송명령(MOVE명령)의 수신처, 소스에 데이터처리부입력버퍼(230)(ex-outBUF라고 약칭),데이터처리부출력버퍼(231)(ex-out BUF라고 약칭)가 지정된 형식으로 표시된다.
MOV Dn, ex_inBUF:레지스터Dn→ex_inBUF에 데이터전송
MOV ex_outBUF, Dn:ex_outBUF→레지스터 Dn에 데이터전송
본 실시예에서는 확장연산기(202)는 오퍼랜드데이터가 3개이상의 다항연산지시하는 확장명령, 예를 들면 Dn * Dm + DI과 같은 3항연산을 실행하는 것으로 한다. 이 경우, 확장전송명령은, 3항연산의 오퍼랜드데이터의 하나DI의 값을 사전에 확장연산기(202)에 전송하기 위하여 이용된다. 또, 3항연산의 연산결과가 복수워드로 증가하는 경우에, 연산후에 연산결과의 일부를 프로세서(201)에 전송하는 것에도 이용된다.
프로세서(201)에 있어서 개입중단요구신호선(240)은, 프로세서(201)의 외부로부터의 개입중단요구를 프로세서의 제어회로(205)에 전달한다.
개입중단신호선(241)은, 프로세서(201)의 제어회로(205)로부터, 확장연산기 (202)의 제어회로(210)에 개입중단요구를 전달한다.
완료신호선(242)는 개입중단요구시의 처리와 개입중단처리완료시의 처리와의 완료를 확장연산기(202)의 제어회로(210)로부터 프로세서(210)의 제어회로(205)에 전달한다.
디코더(204)는 제1실시예의 디코더(104)의 기능에 더하여, 확장전송명령을 해독하는 점이 다르다. 보다 구체적으로는 해독의 결과, 전송명령의 소스로서 범용레지스터(106)가, 수신처로서 데이터처리부입력버퍼(230)가 지정되어 있는 경우(M OV Dn, ex_inBUF의 경우), (P1,1)레지스터Dn으로부터 데이터를 판독하는 마이크로명령과, (P1,2)드라이버(122)를 개방해서 소스레지스터로부터 판독된 데이터를 확장연산기용 데이터래치(118)에 래치시키는 마이크로명령을 발행한다. 해독의 결과, MOV ex_out BUF, Dn의 경우, (P2,1)데이터처리부출력버스(125)로부터의 데이터를 레지스터기록버퍼(116)에 래치시키는 마이크로명령과, (P2,2)레지스터기록버퍼(11 6)의 데이터를 레지스터Dn에 기록마이크로명령을 발행한다. 또, 해독의 결과, 개입중단처리로부터의 복귀를 지시하는 명령(rti명령이라고 약칭)일 경우에는 (P3,1)복귀처리(복귀처리어드레스의 복귀등)를 지시하는 마이크로명령을 발행한다.
제어회로(205)는 제1실시예의 제어회로(105)의 기능에 더해서, 외부로부터 개입중단요구신호선(240)을 개재해서 개입중단요구를 받아들인 경우에, 개입중단신호선(241)을 개재해서 확장연산기(202)의 제어회로(210)에 통지한 후, 확장연산기 (202)로부터 완료신호선(242)을 개재해서 준비완료를 표시한 응답이 되돌아온 시점에서 개입중단처리에의 분기를 제어한다. 또, 상기(P1,1)(P1,2)(P2,1)(P2,2)(P3,1)의 각 마이크로명령에 대응하는 제어신호를 출력한다.
데이터처리부(207)는 프로세서(201)의 실행스테이지에 있어서의 처리를 실행한다.
확장연산기(202)에 있어서 디코더(209)는 제1실시예의 디코더(109)의 기능에 더하여, 확장전송명령 및 개입중단복귀명령을 해독하는 점이 다르다. 보다 구체적으로는 해독의 결과, MOV Dn, ex_inBUF일 경우, (E1,1)드라이버(251)를 개방해서 데이터처리부입력버스(124)로부터의 데이터를 데이터처리부입력버퍼(230)에 출력시키는 마이크로명령과, (E1,2)데이터처리부입력버스(124)로부터 드라이버(251)를 개재해서 전달되는 데이터를 데이터처리부입력버퍼(230)에 래치시키는 마이크로명령을 발행한다. 또, 해독의 결과, MOV ex_outBUF, Dn일 경우, (E2,1)드라이버(257)을 개방해서 데이터처리부출력버퍼(231)의 데이터를 데이터처리부출력버스(125)에 출력시키는 마이크로명령과, (E2,2)레지스터기록버퍼(116)의 데이터를 레지스터Dn에 기록 마이크로명령을 발행한다. 또, 해독의 결과, 개입중단처리로부터의 복귀명령 (rti명령이라고 약칭)일 경우에는 (E4,1)퇴피데이터유지버퍼(232)의 퇴피데이터를 판독해서 드라이버(259)를 개방하는 마이크로명령과, (E4,2)드라이버(251)를 개방해서 데이터처리부입력버퍼(230)에 기록하는 마이크로명령과, (E4,3)퇴피데이터유지버퍼(232)의 다른 퇴피데이터를 판독해서 드라이버(259)를 개방하는 마이크로명령과, (E4,4)드라이버(256)를 개방해서 데이터처리부출력버퍼(231)에 기록하는 마이크로명령과, (E4,5)완료신호선(242)의 출력을 지시하는 마이크로명령을 발행한다.
제어회로(210)는 제1실시예에의 제어회로(110)의 기능에 더하여, 개입중단처리개시시에 퇴피데이터유지버퍼(232)에의 퇴피처리를 행한다. 보다 구체적으로는 개입중단신호선(241)을 개재해서 개입중단신호를 받은 경우에, (E3,1)드라이버 (258)를 개방해서 데이터처리부입력버퍼(230)의 데이터를 데이터처리부출력버스 (125)에 출력시키는 제어와, (E3,2)데이터처리부출력버스(125)상의 데이터를 퇴피데이터유지버퍼(232)에 기록하는 제어와, (E3,3)드라이버(257)를 개방해서 데이터처리부출력버퍼(231)의 데이터를 데이터처리부출력버스(125)에 출력하는 제어와, (E3,4)데이터처리부출력버스(125)상의 데이터를 퇴피데이터유지버퍼(232)에 보충기록하는 제어와, (E3,5)완료신호선(242)의 출력을 행한다. 또, 상기 (E1,2)(E1,2) (E2,1)(E2,2)(E4,1)(E4,2)(E4,3)(E4,5)의 각 마이크로명령에 대응하는 각종 제어신호를 출력한다.
확장처리부(211)는 확장연산기(202)의 실행스테이지에 있어서의 확장명령을 실행한다.
데이터처리부입력버퍼(230)는 확장처리부(211)가 복수의 오퍼랜드를 사용해서 처리하기 위하여 프로세서와 확장연산기와의 데이터처리부입력버스(124)로부터 전송되는 오퍼랜드를 유지하는 버퍼이다.
데이터처리부출력버퍼(231)는 확장처리부(211)가 처리하고, 그 결과, 복수의 데이터를 출력하기 위하여, 프로세서와 확장연산기와의 데이터처리부출력버스(125)에 전송하는 데이터를 유지하는 버퍼이다.
퇴피데이터유지버퍼(232)는 확장연산기의 데이터처리부입력버퍼(230)와 확장연산기의 데이터처리부출력버퍼(231)와의 데이터를 회피하는 버퍼이고, 본 실시예에서는 32비트데이터 2개분의 용량을 가진 선입선출방식의 FIFO메모리인 것으로 한다. 퇴피데이터유지버퍼(232)는 프로세서(201)와 확장연산기(202)의 외부에 설치되어 있으나, 프로세서(201)가 가진, 또는 확장연산기(202)가 가진 경우이어도 된다. 또, 퇴피데이터유지버퍼(232)는 프로세서와 확장연산기의 데이터처리부출력버스(12 5)에 접속되어 있으나, 프로세서와 확장연산기의 데이터처리부입력버스(124)와 메모리로부터 프로세서에의 데이터버스(127)와 프로세서로부터 메모리에의 데이터버스(128)의 어느 하나에 접속해도 된다.
데이터처리부입력버퍼퇴피버스(243)는 개입중단요구시에, 확장연산기의 데이터처리부입력버퍼(230)의 데이터를, 퇴피데이터유지버퍼(232)에 퇴피하는 버스이다.
데이터처리부입력버퍼복귀버스(244)는 개입중단처리완료시에, 퇴피데이터유지버퍼(232)에 퇴피한 데이터를 확장연산기의 데이터처리부입력버퍼(230)에 복귀하는 버스이다.
데이터처리부출력버퍼복귀버스(245)는 개입중단처리완료시에, 퇴피데이터유지버퍼(232)에 퇴피한 데이터를, 확장연산기의 데이터처리부출력버퍼(231)에 복귀하는 버스이다.
드라이버(250)는 제어회로(205)의 제어에 의해 개방해서, 데이터처리부입력버스(124)로부터 확장처리부(211)에 데이터를 전달한다.
드라이버(251)는 제어회로(205)의 제어에 의해 개방해서, 데이터처리부입력버스(124)로부터 데이터처리부입력버퍼(230)에 데이터를 전달한다.
드라이버(253)는 제어회로(205)의 제어에 의해 개방해서, 데이터처리부입력버퍼(230)로부터 확장처리부(211)에 데이터를 전달한다.
드라이버(254)는 제어회로(205)의 제어에 의해 개방해서, 확장처리부(211)로부터 데이터처리부출력버스(125)에 데이터를 전달한다.
드라이버(255)는 제어회로(205)의 제어에 의해 개방해서, 확장처리부(211)로부터 데이터처리부출력버퍼(231)에 데이터를 전달한다.
드라이버(256)는 제어회로(205)의 제어에 의해 개방해서, 데이터처리부입력버스(124)로부터 데이터처리부출력버퍼(231)에 데이터를 전달한다.
드라이버(257)는 제어회로(205)의 제어에 의해 개방해서, 데이터처리부입력버퍼(231)로부터 데이터처리부출력버스(125)에 데이터를 전달한다.
드라이버(258)는 제어회로 (205)의 제어에 의해 개방해서, 데이터처리부입력버퍼(230)로부터 프로세서와 확장연산기의 데이터처리부출력버스(125)에 데이터를 전달한다.
드라이버(259)는 퇴피데이터유지버퍼(232)가 유지하고 있는 퇴피데이터를 복귀할때에 개방해서 퇴피데이터유지버퍼(232)로부터 프로세서와 확장연산기의 데이터처리부입력버스(124)에 데이터를 전달한다.
이상과 같이 구성된 본 발명의 제2실시예에 있어서의 정보처리장치에 대해서, 그 동작을 (2,1)범용레지스터(106)로부터 데이터처리부입력버퍼(230)에의 확장전송명령의 동작, (2,2)데이터처리부입력버퍼(230)의 오퍼랜드데이터를 사용하는 확장명령의 동작, (2,3)데이터처리부출력버퍼(231)의 데이터로부터 범용레지스터 (106)에의 확장전송명령의 동작, (2 4)개입중단처리개시시의 데이터처리부입력버퍼 (230) 및 데이터처리부출력버퍼(231)의 데이터퇴피동작, (2,5)개입중단처리종료시의 데이터처리부입력버퍼(230) 및 데이터처리부출력버퍼(231)에의 데이터복귀동작으로 나누어서 설명한다.
[(2. 1)데이터처리부입력버퍼(230)에의 기록동작]
제5도는 프로세서의 범용레지스터(106)가 유지하는 데이터를 데이터처리부입력버퍼(230)에 기록하는 확장전송명령의 실행시의 파이프라인처리의 상태를 표시하는 타임차트이다.
동도면에 있어서, "IF1"는 프로세서에 있어서 확장전송명령을 인출하는 스테이지이다."DP1"는 프로세서에 있어서 확장전송명령을 해독하는 스테이지이다. "EXP 1"는 프로세서에 있어서 확장전송명령을 실행하는 제1스테이지이고, 데이터처리는 행하지 않는다(NOP). "WB1"은 프로세서에 있어서 확장전송명령의 연산결과를 기록하는 스테이지이다. "DE1"은 확장연산기에 있어서 확장전송명령을 해독하는 스테이지이다. "EXE1"은 확장연산기에 있어서 확장연산기의 실행명령을 실행하는 스테이지이다. "입력유지오퍼랜드"는 데이터처리부입력버퍼(230)가 기록된 데이터를 유지하고 정리타이밍을 표시한다.
시각1에 있어서, 프로세서의 명령인출스테이지에서는 메모리(103)는 명령을 메모리로부터 프로세서의 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할 때, 프로세서의 제어회로(205)는 IF1로부터 DP1에 이행시키기 위하여, 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(210)는 IF1로부터 DE1에 이행시키기 위하여, 확장연산기의 명령레지스터 (119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(204)는 프로세서의 명령레지스터(112)가 개방되었을때, 명령을 받아들이고 해독한다. 프로세서의 제어회로(205)는 프로세서의 디코더(204)가 선행적으로 출력하는 마이크로명령에 의해, 프로세서의 드라이버(122)를 개방함으로써, 프로세서의 범용레지스터(106)의 오퍼랜드를 데이터처리부입력버스(124)에 싣는다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기의 디코더(209)는 확장연산기의 명령레지스터(119)가 개방되었을 때, 명령을 받아들여 명령을 해독한다.
시각2로부터 시각3으로 변화할 때, 프로세서의 제어회로(205)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (114), (218)을 개방하고, 그 결과, 프로세서의 디코더(204)로부터 프로세서의 제어회로(205)에 래치를 개방해서 마이크로명령을 전달하고, 파이프라인제어를 행하는 프로세서의 제어회로(205)로부터의 제어에 의해, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 프로세서의 데이터처리부(207)에, 래치를 개방해서 오퍼랜드를 전달하고, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 데이터가 확장연산기(202)에 달한다. 확장연산기의 제어회로(210)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(205)는 프로세서의 마이크로명령레지스터(113)가 개방했을때, 프로세서의 디코더(204)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(110)는 확장연산기의 마이크로명령레지스터 (120)가 개방했을 때, 확장연산기의 디코더(209)의 DE1명령해독스테이지가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령실행스테이지(EXP1)에서는 프로세서의 데이터처리부(207)는 데이터처리를 행하지 않는다.
확장연산기의 명령실행스테이지(EXE1)에서는 확장연산기의 제어회로(210)는 확장연산기의 드라이버(251)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개(32비트)의 오퍼랜드를 확장연산기의 데이터처리부입력버퍼 (230)에 전달한다. 확장연산기의 데이터처리부입력버퍼(230)는 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드를 유지한다.
[(2,2)데이터처리부입력버퍼(230)의 오퍼랜드데이터를 사용하는 확장연산명령의 실행동작]
제6도는 확장연산기(202)에 있어서, 프로세서의 범용레지스터(106)가 유지하는 데이터와 데이터처리부입력버퍼(230)가 유지하는 데이터를 사용해서, 3항연산을 행하여 연산결과의 일부분을 프로세서의 범용레지스터(106)에 전송하고, 연산결과의 다른 부분을 데이터처리부출력버퍼(231)에 기록하는 확장명령의 동작에 대해서 파이프라인처리의 상태를 표시하는 타임차트이다. 동 도면중 "출력유지데이터"는 데이터처리부출력버퍼(231)에 데이터가 유지되고 있는 타이밍을 표시한다.
시각1에 있어서, 프로세서의 명령인출스테이지(IF1)에서는 메모리(103)는 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할때, 프로세서의 제어회로(205)는 IF1로부터 DP1에 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(210)는 IF1로부터 DE1에 이행시키기 위하여 확장연산기의 명령레지스터(119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(204)는 프로세서의 명령레지스터(112)가 개방되었을때, 명령을 받아들이고, 명령을 해독한다. 프로세서의 제어회로(205)는 프로세서의 디코더(204)가 선행적으로 출력하는 마이크로명령에 의해, 프로세서의 드라이버(122)를 개방함으로써, 프로세서의 범용레지스터(106)의 오퍼랜드를 프로세서와 확장연산기와의 데이터처리부입력버스(124)에 싣는다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기의 디코더(209)는 확장연산기의 명령레지스터(119)가 개방되었을때, 명령을 받아들여 명령을 해독한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(205)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (114), (218)를 개방하고, 그 결과 프로세서의 디코더(204)로부터 프로세서의 제어회로(205)에 래치를 개방해서 마이크로명령을 전달하고, 파이프라인제어를 행하는 프로세서의 제어회로(205)로부터의 제어에 의해, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 프로세서의 데이터처리부(207)에, 래치를 개방해서 오퍼랜드를 전달하고, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 데이터가 확장연산기(202)에 달한다. 확장연산기의 제어회로(210)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(205)는 프로세서의 마이크로명령레지스터(113)가 개방했을 때, 프로세서의 디코더(204)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(210)는 확장연산기의 마이크로명령레지스터 (120)가 개방했을때, 확장연산기의 디코더(209)의 DE1명령해독스테이지가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령실행스테이지(EXP1)에서는 프로세서의 데이터처리부(207)는 데이터처리를 행하지 않는다.
확장연산기의 명령실행스테이지(EXE1)에서는 확장연산기의 제어회로(210)는 확장연산기의 드라이버(250)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드를 확장처리부(211)에 전달하고, 확장연산기의 드라이버(253)를 개방함으로써 확장연산기의 데이터처리부입력버퍼(230)의 1개의 오퍼랜드를 확장처리부(211)에 전달한다. 확장처리부(211)는 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드와, 확장연산기의 데이터처리부입력버퍼(230)의 1개의 오퍼랜드를 처리하고 결과로서 2개의 처리결과 데이터를 출력한다. 확장연산기의 제어회로(210)는 확장연산기의 드라이버(254)를 개방함으로써, 확장처리부(211)의 한쪽의 처리결과데이터를 프로세서와 확장연산기의 데이터처리부출력버스(125)에 전달하고, 프로세서와 화장연산기의 데이터처리부출력버스 (125)에 싣는 것에 의해, 처리결과데이터가 프로세서(201)에 달한다. 확장연산기의 제어회로(210)는 확장연산기의 드라이버(255)를 개방함으로써, 확장처리부(211)의 다른 한쪽의 처리결과데이터를 확장연산기의 데이터처리부출력버퍼(231)에 전달한다. 확장연산기의 데이터처리부출력버퍼(231)는 다른 한쪽의 처리결과데이터를 유지한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(205)는 EXP1로터 WB1에 파이프라인스테이지가 변화할때에, 프로세서의 레지스터기록버퍼(116)를 개방하고, 그 결과, 프로세서와 확장연산기의 데이터처리부출력버스(125)로부터 프로세서의 범용레지스터(106)에, 래치를 개방해서 한쪽의 처리결과데이터를 전달한다.
시각4에 있어서, 프로세서의 범용레지스터(106)는 한쪽의 처리결과데이터를 유지한다.
[(2,3)데이터처리부출력버퍼(231)의 데이터를 판독해서 범용레지스터(106)에 격납하는 동작]
제7도는 데이터처리부출력버퍼(231)가 유지하는 데이터를 프로세서의 범용레지스터(106)에 기록하는 확장전송명령의 동작에 대해서, 파이프라인처리의 상태를 표시한 타임차트이다.
시각1에 있어서, 프로세서의 명령인출스테이지에서는 메모리(103)는 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할때, 프로세서의 제어회로(205)는 IF1로부터 DP1에 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(210)는 IF1로부터 DE1에 이행시키기 위하여 확장연산기의 명령레지스터(119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(204)는 프로세서의 명령레지스터(112)가 개방되었을때, 명령을 받아들이고, 명령을 해독한다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기 디코더(209)는 확장연산기의 명령레지스터(119)가 개방되었을때, 명령을 받아들여 명령을 해독한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(205)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (114)을 개방하고, 그 결과 프로세서의 디코더(204)로부터 프로세서의 제어회로(2 05)에 래치를 개방해서 마이크로명령을 전달하고, 파이프라인제어를 행하는 프로세서의 제어회로(205)로부터의 제어에 의해, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 프로세서의 데이터처리부(207)에, 래치를 개방해서 오퍼랜드를 전달한다. 확장연산기의 제어회로(210)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(113)가 개방했을때, 프로세서의 디코더(204)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(210)는 확장연산기의 마이크로명령레지스터(120)가 개방했을때, 확장연산기의 디코더(209)의 명령해독스테이지(DE1)가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령실행스테이지(EXP1)에서는 프로세서의 데이터처리부(207)는 데이터처를 행하지 않는다.
확장연산기의 명령실행스테이지(EXE1)에서는 확장연산기의 제어회로(210)는 확장연산기의 드라이버(257)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부출력버퍼(231)가 유지하는 처리결과데이터를, 프로세서와 확장연산기의 데이터처리부출력버스(125)에 전달한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(205)는 EXP1로부터 WB1에 파이프라인스테이지가 변화할때에, 프로세서의 레지스터기록버퍼(116)을 개방하고, 그 결과, 프로세서와 확장연산기의 데이터처리부출력버스(125)로부터 프로세서의 범용레지스터(106)에, 래치를 개방해서 한쪽의 처리결과데이터를 전달한다.
시각4에 있어서, 프로세서의 범용레지스터(106)는 한쪽의 처리결과데이터를 유지한다.
이와 같이 확장연산기가 버퍼를 가짐으로써, 칩면적의 증대에 의한 코스트상승과 소비전력이 증대하는 일없이 확장연산기가 복수의 오퍼랜드를 처리할 수 있다.
[(2,4)개입중단처리개시시의 데이터처리부입력버퍼(230) 및 데이터처리부출력버퍼(231)의 데이터퇴피동작]
제8도는 프로세서(201)에 개입중단이 발생하고, 확장연산기의 데이터처리부입력버퍼(230)와, 확장연산기의 데이터처리부출력버퍼(231)의 데이터를, 퇴피데이터유지버퍼(232)에 격납하는 동작을 표시한 타임차트이다. 이 타임차트에서는 "ESC 1"은 확장연산기에 있어서 확장연산기의 데이터처리부입력버퍼(230)을 퇴피하는 명령을 행하는 것을 표시한다. "ESC2"는 확장연산기에 있어서 확장연산기의 데이터처리부출력버퍼(231)를 퇴피하는 명령을 행하는 것을 표시한다.
시각1에 있어서, 프로세서(201)는 외부로부터의 개입중단요구신호선(240)으로부터 개입중단요구신호를 받아들인다.
시각2에 있어서, 프로세서의 제어회로(205)는, 프로세서로부터 확장연산부에의 개입중단신호선(241)에 개입중단신호를 전달한다. 확장연산기의 제어회로(21 0)는 프로세서로부터 확장연산부에의 개입중단신호선(241)으로부터 개입중단신호를 받아들인다.
시각3에 있어서, 확장연산기의 제어회로(210)는 확장연산기의 드라이버(258)를 개방함으로써, 확장연산기의 데이터처리부입력버퍼(230)의 처리결과를 프로세서와 확장연산기의 데이터처리부출력버스(125)에 전달하고, 프로세서와 확장연산기의 데이터처리부출력버스(125)에 싣는다. 퇴피데이터유지버퍼(232)는 프로세서와 확장연산기의 데이터처리부출력버스(125)로부터 데이터를 받아들여 격납을 갱신한다.
시각4에 있어서, 확장연산기의 제어회로(210)는 확장연산기의 드라이버(257)를 개방함으로써, 확장연산기의 데이터처리부출력버퍼(231)의 처리결과를 프로세서와 확장연산기의 데이터처리부출력버스(125)에 전달하고, 프로세서와 확장연산기의 데이터처리부출력버스(125)에 싣는다. 퇴피데이터유지버퍼(232)는 프로세서와 확장연산기의 데이터처리부출력버스(125)로부터 데이터를 받아들여 격납한다.
시각5에 있어서, 확장연산기의 제어회로(210)는 확장연산부로부터 프로세서에의 개입중단수속완료신호선(242)에 개입중단준비완료신호를 전달하고, 프로세서 (201)에 개입중단처리의 허가를 부여한다.
[(2,5)개입중단처리종료시의 데이터처리부입력버퍼(230) 및 데이터처리부출력버퍼(231)에의 데이터복귀동작]
제9도는 개입중단복귀명령의 파이프라인처리의 상태를 표시한 타임차트이다. 이 타임차트에서는 "RTI1"은 프로세서(201) 및 확장연산기(202)에 있어서 데이터처리부입력버퍼(230)에의 데이터복귀처리를 표시한다. "RTI2"는 프로세서(201) 및 확장연산기(202)에 있어서 데이터처리부출력버퍼 (231)에의 데이터복귀처리를 표시한다.
이어서, 확장연산기(202)에 있어서 개입중단복귀명령의 동작에 대해서 제9도의 파이프라인처리의 상태를 표시한 타임차트를 사용해서 설명한다.
시각1에 있어서, 프로세서의 명령인출스테이지에서는 메모리(103)는 개입중단복귀명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할때, 프로세서의 제어회로(205)는 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(210)는 IF1로부터 DE1에 이행시키기 위하여 확장연산기의 명령레지스터(119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(RTI1)에서는 프로세서의 디코더(204)는 프로세서의 명령레지스터(112)가 개방되었을때, 개입중단복귀 명령을 받아들이고, 개입중단복귀명령을 해독한다.
확장연산기의 명령해독스테이지(RTI1)에서는 확장연산기의 디코더(209)는 확장연산기의 명령레지스터(119)가 개방되었을 때, 개입중단복귀 명령을 받아들여 개입중단복귀 명령을 해독한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(205)는 RTI1처리에서 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (114)을 개방하고, 그 결과 프로세서의 디코더(204)로부터 프로세서의 제어회로(205)에 래치를 개방해서 개입중단복귀마이크로명령을 전달한다. 확장연산기의 제어회로 (210)는 RTI1처리에서 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(205)는 프로세서의 마이크로명령레지스터(113)가 개방했을때, 프로세서의 디코더(204)의 명령해독스테이지가 RTI1을 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(210)는 확장연산기의 마이크로명령레지스터(120)가 개방했을때, 확장연산기의 디코더(209)의 명령해독스테이지가 RTI1을 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령해독스테이지(RTI2)에서는 개입중단복귀마이크로명령을 반복출력한다.
프로세서의 명령실행스테이지(RTI1)에서는 프로세서의 복귀처리를 행한다.
확장연산기의 명령해독스테이지(RTI2)에서는 개입중단복귀마이크로명령을 반복출력한다.
확장연산기의 명령실행스테이지(RTI1)에서는 퇴피데이터유지버퍼(232)는 퇴피데이터유지버퍼의 드라이버(259)를 개방해서, 프로세서와 확장연산기의 데이터처리부입력버스(124)에 데이터를 싣는다. 확장연산기의 제어회로(210)는 확장연산기의 드라이버(256)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부입력버스 (124)의 데이터를 확장연산기의 데이터처리부입력버퍼(230)에 전달한다. 확장연산기의 데이터처리부입력버퍼(230)는 프로세서와 확장연산기의 데이터처리부입력버스 (124)의 데이터를 받아들여 유지한다.
시각3에 있어서, 프로세서의 명령해독스테이지(RTI3)에서는 개입중단복귀마이크로명령을 반복출력한다.
프로세서의 명령실행스테이지(RTI2)에서는 프로세서의 복귀처리를 행한다.
확장연산기의 명령실행스테이지(RTI2)에서는 퇴피데이터유지버퍼(232)는 퇴피데이터유지버퍼의 드라이버(259)를 개방해서, 프로세서와 확장연산기의 데이터처리부입력버스(124)에 데이터를 싣는다. 확장연산기의 제어회로(210)는 확장연산기의 드라이버(256)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부입력버스 (124)의 데이터를 확장연산기의 데이터처리부출력버퍼(231)에 전달한다. 확장연산기의 데이터처리부출력버퍼(231)는 프로세서와 확장연산기의 데이터처리부입력버스 (124)의 데이터를 받아들여 격납한다.
[제3실시예]
제10도는 본 발명의 실시예 3에 있어서의 정보처리장치의 구성을 표시한 블록도이다.
이 정보처리장치는 프로세서(301)와, 확장연산기(302)와, 메모리(103)로 구성된다. 제4도에 표시한 제2실시예의 구성과, 동일한 구성요소에는 동일한 부호를 붙이고 있다. 퇴피데이터유지버퍼에 대해서는 도시와 설명을 생략한다. 이하, 동일한 구성요소에 대해서는 설명을 생략하고, 다른 점을 중심으로 설명한다.
동도면에 있어서 프로세서(301)는 제2실시예의 프로세서(201)의 기능에 더하여, 태스크절환기능을 가지고 있다. 프로세서(301)의 태스크의 절환에 대해서는 본 실시예에서는 태스크절환명령에 의해서 절환처리를 실행하는 것으로 한다. 여기서, 태스크절환명령은, 절환할 곳의 태스크번호를 지정하는 동시에 태스크절환을 지시하는 명령이다. 프로세서(301)의 태스크절환은 일반적인 방법이어도 된다. 또, 데이터처리부출력버스(125)는 제2실시예와 마찬가지로 32비트×1구성이어도 된다.
확장연산기(302)는 제2실시예의 확장연산기(202)의 데이터처리부입력버퍼 (230), 데이터처리부출력버퍼(231), 및 그 주변의 드라이버의 대신에, 데이터처리부입력버퍼(330)(331), 데이터처리부출력버퍼(332)(333), 그 주변의 드라이버를 구비하고, 태스크관리부(361)가 새롭게 추가되고 있다.
프로세서(301)에 있어서 디코더(304)는 제2실시예의 디코더(204)의 기능에 더하여, 태스크절환명령을 해독하고, 당해명령에 의해서 지정된 태스크로 절환하는 마이크로명령을 발행하는 점이 다르다.
프로세서의 제어회로(305)는 제2실시예의 제어회로(205)의 기능에 더하여, 태스크절환을 실현하는 마이크로명령을 받으면, 그것에 대응하는 각종제어신호를 출력한다.
확장연산기(302)에 있어서 디코더(309)는 제2실시예의 디코더(209)의 기능에 더하여 태스크절환명령을 해독하는 점이 다르다. 구체적으로는 해독결과가 태스크절환명령일 경우에는 당해명령에 의해서 지정된 태스크번호를 태스크관리부(361)에 격납하는 마이크로명령을 발행한다.
프로세서의 데이터처리부(207)는 프로세서(301)의 주요데이터처리를 행한다.
제어회로(310)는 제2실시예의 제어회로(210)의 기능에 더하여, 태스크절환명령의 디코드결과로서의 마이크로명령을 받아들이면, 당해 명령에 의해서 지정된 태스크번호를 태스크관리부(361)에 격납하는 제어신호를 출력한다. 또 제2실시예에서 설명한 확장전송명령의 디코드결과로서의 마이크로명령을 받아들이면, 태스크관리부(361)의 태스크번호에 따라서 데이터처리부입력버퍼(330)와 데이터처리부입력버퍼(331)의 한쪽을 선택적으로 사용한다. 예를 들면, 태스크관리부(361)의 태스크번호가 1일때에는 데이터처리부입력버퍼(330), 데이터처리부출력버퍼(332)를 사용하고, 태스크번호가 2일때에는 데이터처리부입력버퍼(331), 데이터처리부출력버퍼 (333)를 사용하도록 제어한다. 또, 예를 들면, 3항연산을 행하는 확장명령의 경우에는 데이터처리부입력버퍼(330)와 (331)를 선택적으로 사용하고, 연산결과가 복수의 데이터가 되는 확장명령의 경우에는 태스크번호에 따라서데이터처리부출력버퍼 (332)와 (333)를 선택적으로 사용하도록 제어한다.
데이터처리부입력버퍼(330)(331)는 각각 확장처리부(211)가 복수의 오퍼랜드를 사용해서 처리할 경우에 데이터처리부입력버스(124)로부터 전송되는 데이터를 유지하는 버퍼이고 태스크관리부(361)의 태스크번호에 따라서 선택된다.
데이터처리부출력버퍼(332)(333)는 각각 확장처리부(211)의 연산결과가 복수의 데이터가 되는 경우에, 데이터처리부출력버스(125)에 전송해야 할 당해 데이터를 유지하는 버퍼이고, 태스크관리부(361)의 태스크번호에 따라서 선택된다.
드라이버(350)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 확장처리부(211)에 데이터를 전달한다.
드라이버(351)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 데이터처리부입력버퍼(330)에 데이터를 전달한다.
드라이버(352)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 데이터처리부입력버퍼(331)에 데이터를 전달한다.
드라이버(354)는 제어회로(305)의 제어에 의해 확장처리부(211)로부터 프로세서와 확장연산기의 데이터처리부출력버스(125)에 드라이버를 개방해서 데이터를 전달한다.
드라이버(355)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 확장처리부(211)로부터 데이터처리부출력버퍼(332)에 데이터를 전달한다.
드라이버(356)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 확장처리부(211)로부터 데이터처리부출력버퍼(333)에 데이터를 전달한다.
드라이버(357)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 데이터처리부출력버퍼(332)로부터 프로세서와 확장연산기의 데이터처리부출력버스(125)에 데이터를 전달한다.
드라이버(358)는 제어회로(305)의 제어에 의해 드라이버를 개방해서, 데이터처리부출력버퍼(333)로부터 프로세서와 확장연산기의 데이터처리부출력버스(125)에 데이터를 전달한다.
셀렉터(360)는 제어회로(305)의 제어에 의해 데이터처리부입력버퍼(330)와 데이터처리부입력버퍼(331)를 선택한다.
태스크관리부(361)는 제어회로(305)의 제어에 의해 태스크번호를 유지하고, 태스크번호를 제어회로(305)에 전달한다. 본 실시예에서는 태스크관리부(361)가 유지하는 태스크번호는 태스크1. 태스크2로 하고, 태스크관리부(361)가 태스크1을 유지하는 경우, 데이터처리부입력버퍼(330)와, 데이터처리부출력버퍼(332)가 선택되고, 태스크관리부(361)가 태스크 2를 유지할 경우, 데이터처리부입력버퍼(331)와, 데이터처리부출력버퍼(333)가 선택되는 것으로 한다.
이상과 같이 구성된 본 발명의 제3실시예에 있어서의 정보처리장치에 대해서, 그 동작을 (3,1)태스크절환명령의 실행동작, (3,2)프로세서의 범용레지스트 (106)가 유지하는 데이터를 확장연산기(302)의 데이터처리부입력버퍼에 기록하는 확장전송명령의 동작, (3,3)프로세서의 범용레지스터(106)의 데이터와, 데이터처리부입력버퍼의 데이터를 사용해서 연산하고, 출력결과를 프로세서의 범용레지스터 (106)와 데이터처리부출력버퍼에의 기록을 행하는 확장명령의 동작, (3,4)프로세서 (201)의 데이터처리부출력버퍼의 데이터를 프로세서의 범용레지스터(106)에 기록하는 확장전송명령의 동작으로 나누어서 설명한다.
[(3,1)확장연산기(302)에 있어서의 태스크절환하는 명령의 실행동작]
명령인출스테이지에 있어서, 메모리(103)는 태스크절환명령을 명령공급버스 (126)에 싣는다. 명령해독스테이지에 있어서, 제어회로(310)는 명령레지스터(119)를 개방한다. 디코더(309)는 명령레지스터(119)가 개방되었을때, 명령을 받아들이고, 태스크절환명령을 해독한다. 확장연산기의 제어회로(310)는 파이프라인스테이지가 변화할때에, 마이크로명령레지스터(120)를 개방한다. 제어회로(310)는 확장연산기의 마이크로명령레지스터(120)가 개방했을 때, 확장연산기의 디코더(309)가 해독한 마이크로명령을 받아들이고, 태스크절환을 행하는 제어를 행하는 동시에, 태스크관리부(361)에 명령에 의해서 지정된 태스크번호를 격납한다. 확장전송명령 및 3항이상의 연산을 행하는 확장명령의 실행시에, 이 태스크번호가 태스크 1이면, 데이터처리부입력버퍼(330)와 데이터처리부출력버퍼(332)가 선택되고, 태스크번호가 태스크 2이면, 데이터처리부입력버퍼(331)와 데이터처리부출력버퍼(333)가 선택된다.
(3,2)확장연산기(302)에 있어서, 태스크관리부(361)가 태스크 1을 유지하고, 프로세서의 범용레지스터(106)가 유지하는 데이터를 데이터처리부입력버퍼(330)에 기록하는 명령의 동작에 대해서 설명한다. 제5도에 표시한 파이프라인처리의 상태를 표시한 타임차트는 본 동작에 있어서도 동일 타이밍으로 제5도를 참조하면서 설명한다.
시각1에 있어서, 프로세서의 명령인출스테이지에서는 메모리(103)는 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할때, 프로세서의 제어회로(305)는 IF1로부터 DP1에 이행시키기 위하여, 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(310)는 IF1로부터 DE1에 이행시키기 위하여, 확장연산기의 명령레지스터 (119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(304)는 프로세서의 명령레지스터(112)가 개방되었을때, 명령을 받아들이고 명령을 해독한다. 프로세서의 제어회로(305)는 프로세서의 디코더(304)가 선행적으로 출력하는 마이크로명령에 의해, 프로세서의 드라이버(122)를 개방함으로써, 프로세서의 범용레지스터(106)의 오퍼랜드를 프로세서와 확장연산기의 데이터처리부입력버스(124)에 싣는다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기의 디코더(309)는 확장연산기의 명령레지스터(119)가 개방되었을때, 명령을 받아들여 명령을 해독한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(305)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (314), (318)을 개방하고, 그 결과, 프로세서의 디코더(304)로부터 프로세서의 제어회로(305)에 래치를 개방해서 마이크로명령을 전달하고, 파이프라인제어를 행하는 프로세서의 제어회로(305)의 제어에 의해, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 프로세서의 데이터처리부(207)에, 래치를 개방해서 오퍼랜드를 전달하고, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 데이터가 확장연산기(302)에 달한다. 확장연산기의 제어회로(310)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(305)는 프로세서의 마이크로명령레지스터(113)가 개방했을때, 프로세서의 디코더(304)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(310)는 확장연산기의 마이크로명령레지스터(120)가 개방했을때, 확장연산기의 디코더(309)의 DE1명령해독스테이지가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령실행스테이지(EXP1)에서는 프로세서의 데이터처리부(207)는 데이터처리를 행하지 않는다.
확장연산기의 명령실행스테이지(EXE1)에서는 태스크관리부(361)는 유지하는 태스크정보로서 태스크 1을 확장연산기의 제어회로(310)에 출력한다.
확장연산기의 제어회로(310)는 태스크관리부(361)가 출력하는 태스크 1에 의해 확장연산기의 드라이버(351)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드를 확장연산기의 데이터처리부입력버퍼(330)에 전달한다. 확장연산기의 데이터처리부입력버퍼(330)는 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드를 유지한다.
(3,3)확장연산기(302)에 있어서, 태스크관리부(361)가 태스크 1을 유지하고 있는 경우에 프로세서의 범용레지스터(106)가 유지하는 데이터와 데이터처리부입력버퍼(330)가 유지하는 데이터를 사용해서, 연산하고, 출력결과를 프로세서의 범용레지스터(106)와 데이터처리부출력버퍼(332)에의 기록을 행하는 확장명령의 동작에 대해서 설명한다. 제6도에 표시한 파이프라인처리의 상태를 표시한 타임차트는 본 동작에 있어서도 동일한 타이밍이므로, 제6도를 참조하면서 설명한다.
시각1에 있어서, 프로세서의 명령인출스테이지에서는 메모리(103)는 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할때, 프로세서의 제어회로(305)는 IF1로부터 DP1에 이행하기 위하여 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(310)는 IF1로부터 DE1에 이행시키기 위하여 확장연산기의 명령레지스터(119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 프로세서의 디코더(304)는 프로세서의 명령레지스터(112)가 개방되었을때, 명령을 받아들이고, 명령을 해독한다. 프로세서의 제어회로(305)는 프로세서의 디코더(304)가 선행적으로 출력하는 마이크로명령에 의해 프로세서의 드라이버(122)를 개방함으로써, 프로세서의 범용레지스터(106)의 오퍼랜드를 프로세서와 확장연산기와의 데이터처리부입력버스(124)에 싣는다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기의 디코더(309)는 확장연산기의 명령레지스터(119)가 개방되었을때, 명령을 받아들여 명령을 해독한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(305)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (314), (318)를 개방하고, 그 결과 프로세서의 디코더(304)로부터 프로세서의 제어회로(305)에 래치를 개방해서 마이크로명령을 전달하고, 파이프라인제어를 행하는 프로세서의 제어회로(205)로부터의 제어에 의해, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 프로세서의 데이터처리부(207)에, 래치를 개방해서 오퍼랜드를 전달하고, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 데이터가 확장연산기(302)에 달한다. 확장연산기의 제어회로(310)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(305)는 프로세서의 마이크로명령레지스터(113)가 개방했을때, 프로세서의 디코더(304)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(310)는 확장연산기의 마이크로명령레지스터 (120)가 개방했을때, 확장연산기의 디코더(309)의 DE1명령해독스테이지가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령실행스테이지(EXP1)에서는 프로세서의 데이터처리부(207)는 데이터처리를 행하지 않는다.
확장연산기의 명령실행스테이지(EXE1)에서는 태스크관리부(361)는 유지하는 태스크정보로서 태스크 1을 확장연산기의 제어회로(310)에 출력한다.
확장연산기의 제어회로(310)는 확장연산기의 드라이버(350)를 개방함으로써, 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드를 확장처리부(211)에 전달하고, 태스크관리부(361)가 출력하는 태스크 1에 의해 확장연산기의 셀렉터(360)가 확장연산기의 데이터처리부입력버퍼(330)를 선택하고 1개의 오퍼랜들를 확장처리부(211)에 전달한다.
확장처리부(211)는 프로세서와 확장연산기의 데이터처리부입력버스(124)의 1개의 오퍼랜드와, 확장연산기의 데이터처리부입력버퍼(330)의 1개의 오퍼랜드를 처리하고 결과로서 2개의 처리결과 데이터를 출력한다. 확장연산기의 제어회로(310)는 확장연산기의 드라이버(354)를 개방함으로써, 확장처리부(211)의 한쪽의 처리결과데이터를 프로세서와 확장연산기의 데이터처리부출력버스(125)에 전달하고, 프로세서와 확장연산기의 데이터처리부출력버스(125)에 싣는 것에 의해, 처리결과데이터가 프로세서(201)에 달한다. 확장연산기의 제어회로(310)는 태스크관리부(361)가 출력하는 태스크 1에 의해 확장연산기의 드라이버(355)를 개방함으로써, 확장처리부(211)의 다른 한쪽의 처리결과데이터를 확장연산기의 데이터처리부출력버퍼(332)에 전달한다. 확장연산기의 데이터처리부출력버퍼(332)는 다른 한쪽의 처리결과데이터를 유지한다.
시각3으로부터 시각4로 변화할때, 프로세서의 제어회로(305)는 EXP1로부터 WB1에 파이프라인스테이지가 변화할때에, 프로세서의 레지스터기록버퍼(116)를 개방하고, 그 결과, 프로세서와 확장연산기의 데이터처리부출력버스(125)로부터 프로세서의 범용레지스터(106)에, 래치를 개방해서 한쪽의 처리결과데이터를 전달한다.
시각4에 있어서, 프로세서의 범용레지스터(106)는 한쪽의 처리결과데이터를 유지한다.
(3,4)태스크관리부(361)가 태스크 2를 유지하고 있는 경우에 데이터처리부출력버퍼(333)가 유지하는 데이터를 프로세서의 범용레지스터(106)에 기록하는 확장전송명령의 동작에 대해서 설명한다. 제7도에 표시한 파이프라인처리의 상태를 표시한 타임차트는 본 동작에 있어서도 동일한 타이밍으로, 제7도를 참조하면서 설명한다.
시각1에 있어서, 프로세서의 명령인출스테이지에서는 메모리(103)는 명령을 메모리로부터 프로세서와 확장연산기에의 명령공급버스(126)에 싣는다.
시각1로부터 시각2로 변화할때, 프로세서의 제어회로(305)는 IF1로부터 DP1에 이행하기 위하여 프로세서의 명령레지스터(112)를 개방한다. 확장연산기의 제어회로(310)는 IF1로부터 DE1에 이행시키기 위하여 확장연산기의 명령레지스터(119)를 개방한다.
시각2에 있어서, 프로세서의 명령해독스테이지(DP1)에서는 디코더(304)는 프로세서의 명령레지스터(112)가 개방되었을때, 명령을 받아들이고, 명령을 해독한다.
확장연산기의 명령해독스테이지(DE1)에서는 확장연산기의 디코더(309)는 확장연산기의 명령레지스터(119)가 개방되었을때, 명령을 받아들여 명령을 해독한다.
시각2로부터 시각3으로 변화할때, 프로세서의 제어회로(305)는 DP1로부터 EXP1에 파이프라인스테이지가 변화할때에, 프로세서의 마이크로명령레지스터(113), (314)를 개방하고, 그 결과 프로세서의 디코더(304)로부터 프로세서의 제어회로 (305)에 래치를 개방해서 마이크로명령을 전달하고, 파이프라인제어를 행하는 프로세서의 제어회로(305)의 제어에 의해, 프로세서와 확장연산기의 데이터처리부입력버스(124)로부터 프로세서의 데이터처리부(207)에, 래치를 개방해서 오퍼랜드를 전달한다.
확장연산기의 제어회로(310)는 DE1로부터 EXE1에 파이프라인스테이지가 변화할때에, 확장연산기의 마이크로명령레지스터(120)를 개방한다. 프로세서의 제어회로(305)는 프로세서의 마이크로명령레지스터(113)가 개방했을때, 프로세서의 디코더(304)의 DP1명령해독스테이지가 해독한 마이크로명령을 받아들인다. 확장연산기의 제어회로(310)는 확장연산기의 마이크로명령레지스터(120)가 개방했을때, 확장연산기의 디코더(309)의 DE1명령해독스테이지가 해독한 마이크로명령을 받아들인다.
시각3에 있어서, 프로세서의 명령실행스테이지(EXP1)에서는 프로세서의 데이터처리부(207)는 데이터처리를 행하지 않는다.
확장연산기의 명령실행스테이지(EXE1)에서는 태스크관리부(361)는 유지하는 태스크정보로서 태스크 2를 확장연산기의 제어회로(310)에 출력한다.
확장연산기의 제어회로(310)는 태스크관리부(361)가 출력하는 태스크 2에 의해 확장연산기의 드라이버(358)를 개방함으로써, 확장연산기의 데이터처리부출력버퍼(333)가 유지하는 처리결과데이터를, 프로세서와 확장연산기의 데이터처리부출력버스(125)에 전달한다.
시각3으로부터 시각4로 변화할때, 프로세서의 제어회로(305)는 EXP1로부터 WB1에 파이프라인스테이지가 변화할때에, 프로세서의 레지스터기록버퍼(116)를 개방하고, 그 결과, 프로세서와 확장연산기의 데이터처리부출력버스(125)로부터 프로세서의 범용레지스터(106)에, 레치를 개방해서 한쪽의 처리결과데이터를 전달한다.
시각4에 있어서, 프로세서의 범용레지스터(106)는 한쪽의 처리결과데이터를 유지한다.
또한, 본 실시예에 있어서 태스크관리부(361)가 태스크를 절환하는 것을 제어하기 위하여, 여기서는 확장연산기의 제어회로(310)가 제어를 행했으나, 외부로부터 태스크절환신호선을 설치하고, 이 태스크절환신호에 의해서 태스크를 절환해도 된다.
또, 상기 제1∼제3실시예에서는 확장명령의 오퍼랜드데이터로서 레지스터가 지정되어 있는 경우를 설명했으나, 오퍼랜드데이터로서 모리데이터가 지정되어 있는 경우도 마찬가지로 동작할 수 있다. 이 경우, 프로세서가 메모리엑세스를 행하므로, 실행속도의 점에서는 종래기술과 동등하나, 확장연산기내부에 메모리엑세스를 제어하는 회로가 불필요하게 되므로, 회로규모의 점에서는 종래기술보다도 작게 할 수 있고, 그 만큼 코스트도 저감할 수 있다.
이상 설명한 바와 같이 제1발명에 의하면, 확장처리장치가 데이터처리장치의 데이터유지수단의 데이터를 사용해서 연산하는 경우 및 확장처리장치의 연산결과를 데이터처리장치의 레지스터에 격납하는 경우에, 일단 메모리를 경유해서 데이터전송할 필요가 없어지고, 데이터처리장치와 확장처리장치와의 사이에서 직접 데이터의 수수를 하므로, 처리능력이 높은 정보처리장치를 실현할 수 있다는 효과가 있다.
제2발명에 의하면, 제1발명의 효과에 더하여 복수의 확장처리장치를 접속해서 다양한 확장연산명령이 혼재하는 프로그램을 고속으로 실행할 수 있다는 효과가 있다. 또, 필요하게 되는 확장처리장치만을 실장함으로써, 코스트상승과 소비전력의 증대를 억제할 수 있다. 또 확장처리장치를 필요로 하지 않는 경우에는 데이터처리장치로부터 분리해서 실장하지 않아도 된다. 분리한 경우, 프로세서내부의 각 배선에 걸리는 전기전 부하가 변화하지 않으므로 분리에 관해서 제약을 받지 않는다는 효과가 있다.
제3발명에 의하면, 제1발명의 효과에 대해서, 복수의 플래그도 오퍼랜드데이터가 마찬가지로, 데이터처리장치와 확장처리장치의 사이에서 직접 수수를 하므로 보다 처리능력이 높은 정보처리장치를 실현할 수 있다는 효과가 있다.
제4발명에 의하면, 제2발명의 효과에 대해서, 확장연산실행스테이지와 데이터처리장치의 실행스테이지에서, 실제의 스테이지의 사이클수를 맞추므로, 데이터처리장치의 파이프라인동작을 혼란시키지 않고, 확장연산명령의 실행과, 데이터처리장치의 명령실행의 이행을 원활하게 행할 수 있다는 효과가 있다.
제5발명에 의하면, 제4발명의 효과에 더해서, 상기 실행종료통지를 전달하는 신호선을 추가함으로써, 파이프라인동작을 혼란시키지 않고, 간단한 구성으로 확장연산명령에의 이행을 원활하게 행할 수 있다는 효과가 있다.
제6발명에 의하면, 제4발명의 효과에 더하여, 데이터처리장치와 확장처리장치와의 사이에 확장명령실행종료를 통지하는 신호선을 추가하지 않고, 또, 복수의 확장처리장치의 접속에 적합한 구성을 실현할 수 있다는 효과가 있다.
제7발명에 의하면, 제1, 3 또는 제4발명의 효과에 더하여, 3개이상의 오퍼랜드를 요하는 확장연산명령의 실행에 적합한 정보처리장치를 실현할 수 있다는 효과가 있다. 또 복수의 오퍼랜드데이터를 버스를 설치해서 공급하는 경우에 비해서, 칩면적의 증대에 의한 코스트상승과 소비전력의 증대를 억제할 수 있다.
제8발명에 의하면, 제7발명의 효과에 더하여 확장연산명령의 실행중에 개입중단처리가 발생한 경우, 실행시간이 증대하여 성능의 열화를 억제할 수 있고, 개입중단처리에의 이행을 신속하게 할 수 있다는 효과가 있다.
제9발명에 의하면, 제7발명의 효과에 더하여, 확장연산의 결과 복수의 데이터가 생성되는 경우에도, 연산결과를 데이터유지수단에 고속으로 격납할 수 있다는 효과가 있다.
제10발명에 의하면, 제9발명의 효과에 더하여, 개입중단처리에의 이행을 신속하게 할 수 있고, 보다 유연한 확장연산을 할 수 있다는 효과가 있다.
제11발명에 의하면, 제9발명의 효과에 더하여, 복수의 태스크를 처리할 경우에, 각 태스크에 대응해서 1쌍의 입력버퍼와 출력버퍼가 사용되므로 확장연산기가 처리중에 태스크절환처리가 발생한 경우, 실행시간의 증대와 성능열화를 억제할 수 있고, 고속의 태스크스위치를 실현할 수 있다는 효과가 있다.

Claims (14)

  1. 메모리중의 명령에 따라서 데이터를 처리하는 주요데이터처리장치와 부수적인 확장처리장치로 이루어진 정보처리장치에 있어서, 데이터처리장치는 복수의 데이터유지영역을 가진 데이터유지수단과, 메모리중의 명령을 꺼내는 명령꺼내기수단과, 꺼내진 명령을 해독하고, 확장처리장치에서 실행해야할 확장연산명령을 검출하는 명령검출수단과, 검출된 확장연산명령의 오퍼랜드에 의해서 소스로서 지정된 데이터유지영역과 수신처로서 지정된 데이터유지영역을 판별하는 오퍼랜드판별수단과, 판별된 소스의 데이터유지영역의 데이터를 확장처리장치에 공급하는 데이터공급수단과, 확장처리장치로부터 전송되는 연산결과를 판별된 수신처의 데이터유지영역에 격납하는 데이터격납수단을 구비하고, 확장처리장치는 꺼내진 명령을 해독해서 확장연산명령을 검출하는 확장명령해독수단과, 데이터공급수단으로부터 공급되는 데이터를 사용해서, 확장명령해독수단에 검출된 확장연산명령을 실행하는 확장실행수단을 구비하고, 데이터처리장치와 확장처리장치는 메모리로부터 꺼내진 명령을 명령검출수단과 확장명령해독수단에 전송하는 명령버스, 데이터공급수단의 공급데이터를 확장실행수단에 전송하는 제1버스 및 확장실행수단의 연산결과를 데이터격납수단에 전송하는 제2버스에 의해 접속되어 있는 것을 특징으로 하는 정보처리 장치.
  2. 제1항에 있어서 상기 정보처리장치는 또 복수의 상기 확장처리장치를 구비하고, 각 확장처리장치는 연산종류가 서로 다른 확장연산명령을 실행하고, 상기 명령버스는 메모리로부터 꺼내진 명령을 각 확장명령해독수단에 전송하고, 상기 제1버스는 데이터공급수단의 공급데이터를 각 확장실행수단에 전송하고, 상기 제2버스는 각 확장실행수단의 연산결과를 데이터격납수단에 전송하는 것을 특징으로 하는 정보처리장치.
  3. 제1항에 있어서 상기 데이터처리장치는 또, 연산결과의 상태를 표시하는 복수의 플래그를 유지하는 플래그레지스터를 구비하고, 상기 데이터공급수단은, 소스의 데이터유지영역의 데이터공급과 함께 플래그레지스터의 플래그를 확장처리장치에 공급하고, 상기 데이터격납수단은, 연산결과를 수신처의 데이터유지영역에 격납하는 동시에, 확장처리장치로부터의 새로운 플래그를 플래그레지스터에 격납하고, 상기 확장실행수단은, 데이터공급수단으로부터 공급되는 데이터와 함께 플래그를 사용해서 확장연산명령을 실행하고, 당해 연산의 상태를 표시하는 새로운 플래그를 데이터격납수단에 출력하고, 데이터처리장치와 확장처리장치는 또 데이터공급수단에 의해 공급되는 플래그를 확장실행수단에 전송하는 제1플래그버스, 및 확장실행수단으로부터의 새로운 플래그를 플래그레지서터에 전송하는 제2플래그버스에 의해 접속되어 있는 것을 특징으로 하는 정보처리장치.
  4. 제2항에 있어서 상기 데이터처리장치는 적어도 명령인출스테이지와, 명령해독스테이지와 명령실행스테이지를 포함한 파이프라인처리를 행하고, 또, 확장실행수단에 있어서의 확장연산의 실행사이클수에 명령실행스테이지의 사이클수를 일치시키는 스테이지상태관리수단을 구비하고, 상기 확장처리장치는 데이터처리장치에 동기해서 동작하는 것을 특징으로 하는 정보처리장치
  5. 제4항에 있어서 상기 확장실행수단은 확장연산의 실행시에, 명령실행의 최후의 사이클이 되었을때에, 스테이지상태관리수단에 확장연산의 실행종료를 통지하고, 상기 스테이지상태관리수단은, 확장연산의 실행종료통지를 받으면, 받은 시점의 실행사이클에서 명령실행스테이지를 종료시키는 것을 특징으로 하는 정보처리장치.
  6. 제4항에 있어서, 상기 데이터처리장치는 검출수단에 의해 검출된 확장연산명령에 따라서, 데이터처리장치의 실행스테이지의 사이클수를 결정하는 결정수단을 구비하고, 상기 스테이지상태관리수단은, 결정된 사이클수의 동안 명령실행스테이지를 계속시키는 것을 특징으로 하는 정보처리장치.
  7. 제1항, 제3항 또는 제4항에 있어서, 상기 명령검출수단은, 데이터처리장치로부터 확장처리장치에의 데이터전송을 지시하는 제1전송명령을 검출하고, 상기 오퍼랜드판별수단은 검출된 제1전송명령의 오퍼랜드에 의해서 소스로서 지정된 데이터유지영역을 판별하고, 상기 데이터공급수단은, 판별된 제1전송명령의 소스의 데이터유지영역의 데이터를 제1버스에 출력시키고, 상기 확장처리장치는 또 데이터를 유지하는 입력버퍼를 구비하고, 상기 확장명령해독수단은, 상기 전송명령을 검출한 경우, 제1버스로부터의 데이터를 입력버퍼에 격납하고, 상기 확장명령실행수단은, 3개이상의 오퍼랜드를 요하는 확장연산명령의 실행에 입력버퍼의 데이터를 사용하는 것을 특징으로 하는 정보처리장치.
  8. 제7항에 있어서, 상기 정보처리장치는 또 데이터를 기억하는 영역을 가진 퇴피버퍼를 구비하고, 상기 확장명령해독수단은, 개입중단처리로부터의 복귀명령을 검출하고 상기 데이터처리장치는 개입중단요구를 받아들이면, 개입중단신호를 확장처리장치에 출력하고, 상기 확장처리장치는 또 개입중단신호를 받으면 상기 입력버퍼의 데이터를 퇴피버퍼에 퇴피시키는 퇴피수단과, 개입중단처리로부터의 복귀명령이 검출되면, 퇴피버퍼의 데이터를 상기 입력버퍼에 복귀시키는 복귀수단을 구비한 것을 특징으로 하는 정보처리장치
  9. 제1항 또는 제3항 또는 제4항에 있어서, 상기 확장처리장치는 또 확장실행수단의 연산결과의 일부를 유지하는 출력버퍼를 구비하고, 상기 확장명령해독수단은, 확장처리장치로부터 데이터처리장치에의 데이터전송을 지시하는 제2전송명령을 해독한 경우, 출력버퍼의 데이터를 제2버스에 출력시키고, 상기 명령검출수단은, 상기 제2전송명령을 검출하고, 상기 오퍼랜드판별수단은, 검출된 제2전송명령의 오퍼랜등에 의해서 수신처로서 지정된 데이터유지영역을 판별하고, 상기 데이터격납수단은 제2전송명령의 수신처의 데이터유지영역에 제2버스로부터의 데이터를 격납하는 것을 특징으로 하는 정보처리장치.
  10. 제9항에 있어서, 상기 정보처리장치는 또 복수의 데이터를 기억하는 영역을 가진 퇴피버퍼를 구비하고, 상기 데이터처리장치는 개입중단요구를 받아들이면, 개입중단신호를 확장처리장치에 출력하고, 상기 확장처리장치는 또 개입중단신호를 받으면, 상기 입력버퍼 및 출력버퍼의 데이터를 퇴피버퍼에 퇴피시키는 퇴피수단과, 개입중단처리로부터의 복귀명령이 검출되면, 퇴피버퍼의 데이터를 상기 입력버퍼 및 출력버퍼에 복귀시키는 복귀수단을 구비하고, 상기 확장명령해독수단은, 개입중단처리로부터의 복귀명령을 검출하면, 그 취지를 복귀수단에 통지하는 것을 특징으로 하는 정보처리장치.
  11. 제9항에 있어서, 상기 확장명령해독수단은, 태스크를 식별하는 태스크번호를 수반하는 태스크절환명령을 해독하고, 상기 확장처리장치는 또, 복수의 상기 입력버퍼와, 동수의 상기 출력버퍼를 쌍으로 해서 구비하고, 해독된 태스크절환명령에 표시되는 태스크번호에 대응시킨 1쌍의 입력버퍼와 출력버퍼에 대한 데이터입출력을 허가하고, 다른 입력버퍼와 출력버퍼에 대한 데이터입출력을 금지하는 태스크관리수단을 구비한 것을 특징으로 하는 정보처리장치.
  12. 제7항에 있어서, 상기 확장처리장치는 또 확장실행수단의 연산결과의 일부를 유지하는 출력버퍼를 구비하고, 상기 확장명령해독수단은, 확장처리장치로부터 데이터처리장치에의 데이터전송을 지시하는 제2전송명령을 해독한 경우, 출력버퍼의 데이터를 제2버스에 출력시키고, 상기 명령검출수단은, 상기 제2전송명령을 검출하고, 상기 오퍼랜드판별수단은, 검출된 제2전송명령의 오퍼랜드에 의해서 수신처로서 지정된 데이터유지영역을 판별하고, 상기 데이터격납수단은 제2전송명령의 수신처의 데이터유지영역에 제2버스로부터의 데이터를 격납하는 것을 특징으로 하는 정보처리장치.
  13. 제12항에 있어서, 상기 정보처리장치는 또 복수의 데이터를 기억하는 영역을 가진 퇴피버퍼를 구비하고, 상기 데이터처리장치는 개입중단요구를 받아들이면, 개입중단신호를 확장처리장치에 출력하고, 상기 확장처리장치는 또 개입중단신호를 받으면, 상기 입력버퍼 및 출력버퍼의 데이터를 퇴피버퍼에 퇴피시키는 퇴피수단과, 개입중단처리로부터의 복귀명령이 검출되면, 퇴피버퍼의 데이터를 상기 입력버퍼 및 출력버퍼에 복귀시키는 복귀수단을 구비하고, 상기 확장명령해독수단은, 개입중단처리로부터의 복귀명령을 검출하면, 그 취지를 복귀수단에 통지하는 것을 특징으로 하는 정보처리장치.
  14. 제12항에 있어서, 상기 확장명령해독수단은, 태스크를 식별하는 태스크번호를 수반하는 태스크절환명령을 해독하고, 상기 확장처리장치는 또, 복수의 상기 입력버퍼와, 동수의 상기 출력버퍼를 쌍으로 해서 구비하고, 해독된 태스크절환명령에 표시되는 태스크번호에 대응시킨 1쌍의 입력버퍼와 출력버퍼에 대한 데이터입출력을 허가하고, 다른 입력버퍼와 출력버퍼에 대한 데이터입출력을 금지하는 태스크관리수단을 구비한 것을 특징으로 하는 정보처리장치.
KR1019960013275A 1995-04-28 1996-04-27 정보처리장치 KR100235397B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP7106624A JP2987308B2 (ja) 1995-04-28 1995-04-28 情報処理装置
JP95-106624 1995-04-28

Publications (2)

Publication Number Publication Date
KR960038572A KR960038572A (ko) 1996-11-21
KR100235397B1 true KR100235397B1 (ko) 1999-12-15

Family

ID=14438271

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960013275A KR100235397B1 (ko) 1995-04-28 1996-04-27 정보처리장치

Country Status (7)

Country Link
US (1) US5909565A (ko)
EP (1) EP0740249B1 (ko)
JP (1) JP2987308B2 (ko)
KR (1) KR100235397B1 (ko)
CN (1) CN1153155C (ko)
DE (1) DE69619885T2 (ko)
TW (1) TW310409B (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US5864703A (en) * 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US6052771A (en) * 1998-01-20 2000-04-18 International Business Machines Corporation Microprocessor with pipeline synchronization
US6434689B2 (en) * 1998-11-09 2002-08-13 Infineon Technologies North America Corp. Data processing unit with interface for sharing registers by a processor and a coprocessor
AU782238B2 (en) * 1999-08-30 2005-07-14 Ip Flex Inc. Control program product and data processing system
JP2001092662A (ja) * 1999-09-22 2001-04-06 Toshiba Corp プロセッサコア及びこれを用いたプロセッサ
WO2001069372A2 (en) * 2000-03-10 2001-09-20 Koninklijke Philips Electronics N.V. Method for compiling a program
US7376820B2 (en) 2000-03-16 2008-05-20 Fujitsu Limited Information processing unit, and exception processing method for specific application-purpose operation instruction
JP3957948B2 (ja) 2000-04-12 2007-08-15 富士通株式会社 演算処理装置
US20060095723A1 (en) * 2001-11-05 2006-05-04 Moyer William C Method and apparatus for interfacing a processor to a coprocessor
US7007101B1 (en) * 2001-11-09 2006-02-28 Radisys Microware Communications Software Division, Inc. Routing and forwarding table management for network processor architectures
US7073048B2 (en) * 2002-02-04 2006-07-04 Silicon Lease, L.L.C. Cascaded microcomputer array and method
US7028167B2 (en) * 2002-03-04 2006-04-11 Hewlett-Packard Development Company, L.P. Core parallel execution with different optimization characteristics to decrease dynamic execution path
ATE472134T1 (de) 2002-04-18 2010-07-15 Nxp Bv Prozessor mit mehrfachbefehlsausgabe
AU2003287319B2 (en) * 2002-10-31 2010-06-24 Lockheed Martin Corporation Pipeline coprocessor
US7386704B2 (en) * 2002-10-31 2008-06-10 Lockheed Martin Corporation Pipeline accelerator including pipeline circuits in communication via a bus, and related system and method
US20040103269A1 (en) * 2002-11-27 2004-05-27 Intel Corporation Processor context register mapping
US7254696B2 (en) * 2002-12-12 2007-08-07 Alacritech, Inc. Functional-level instruction-set computer architecture for processing application-layer content-service requests such as file-access requests
US7430652B2 (en) * 2003-03-28 2008-09-30 Tarari, Inc. Devices for performing multiple independent hardware acceleration operations and methods for performing same
US7293159B2 (en) * 2004-01-15 2007-11-06 International Business Machines Corporation Coupling GP processor with reserved instruction interface via coprocessor port with operation data flow to application specific ISA processor with translation pre-decoder
US7765334B2 (en) * 2004-05-12 2010-07-27 Canon Kabushiki Kaisha Electronic apparatus for use with removable storage medium, control method therefor, and program for implementing the method
US7441106B2 (en) 2004-07-02 2008-10-21 Seagate Technology Llc Distributed processing in a multiple processing unit environment
US7395410B2 (en) * 2004-07-06 2008-07-01 Matsushita Electric Industrial Co., Ltd. Processor system with an improved instruction decode control unit that controls data transfer between processor and coprocessor
FR2875982B1 (fr) * 2004-09-28 2006-12-22 Commissariat Energie Atomique Architecture de communication semi-automatique noc pour applications "flots de donnees"
US7619541B2 (en) * 2004-10-01 2009-11-17 Lockheed Martin Corporation Remote sensor processing system and method
US7818724B2 (en) * 2005-02-08 2010-10-19 Sony Computer Entertainment Inc. Methods and apparatus for instruction set emulation
JP4211751B2 (ja) * 2005-03-25 2009-01-21 セイコーエプソン株式会社 集積回路装置
US8145882B1 (en) * 2006-05-25 2012-03-27 Mips Technologies, Inc. Apparatus and method for processing template based user defined instructions
US8032734B2 (en) * 2006-09-06 2011-10-04 Mips Technologies, Inc. Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor
US7647475B2 (en) * 2006-09-06 2010-01-12 Mips Technologies, Inc. System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue
US7594079B2 (en) 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
JP2008310693A (ja) * 2007-06-15 2008-12-25 Panasonic Corp 情報処理装置
US7930519B2 (en) * 2008-12-17 2011-04-19 Advanced Micro Devices, Inc. Processor with coprocessor interfacing functional unit for forwarding result from coprocessor to retirement unit
FR2942556B1 (fr) * 2009-02-24 2011-03-25 Commissariat Energie Atomique Unite d'allocation et de controle
JP2011138308A (ja) * 2009-12-28 2011-07-14 Sony Corp プロセッサ、コプロセッサ、情報処理システムおよびそれらにおける制御方法
CN101895743B (zh) * 2010-03-11 2013-11-13 宇龙计算机通信科技(深圳)有限公司 一种处理器间编解码数据的传输方法、系统及可视电话
CN103064655A (zh) * 2011-10-20 2013-04-24 知惠科技股份有限公司 模块化程序处理装置
CN106406810B (zh) * 2014-07-02 2019-08-06 上海兆芯集成电路有限公司 微处理器及其方法
US11132203B2 (en) * 2014-08-14 2021-09-28 Texas Instruments Incorporated System and method for synchronizing instruction execution between a central processor and a coprocessor
CN107451090B (zh) * 2016-06-01 2020-09-11 华为技术有限公司 数据处理系统和数据处理方法
CN106371807B (zh) * 2016-08-30 2019-03-19 华为技术有限公司 一种扩展处理器指令集的方法及装置
CN106598059A (zh) * 2017-01-25 2017-04-26 桂林航天工业学院 基于fpga的多旋翼无人机系统
WO2019169582A1 (zh) * 2018-03-07 2019-09-12 华为技术有限公司 处理中断的方法和装置
US11030075B2 (en) * 2018-11-14 2021-06-08 Microsoft Technology Licensing, Llc Efficient register breakpoints
GB2579617B (en) * 2018-12-06 2021-01-27 Advanced Risc Mach Ltd An apparatus and method for handling exception causing events
CN110502278B (zh) * 2019-07-24 2021-07-16 瑞芯微电子股份有限公司 基于RiscV扩展指令的神经网络协处理器及其协处理方法
US11263014B2 (en) * 2019-08-05 2022-03-01 Arm Limited Sharing instruction encoding space between a coprocessor and auxiliary execution circuitry
CN113254070B (zh) * 2020-02-07 2024-01-02 阿里巴巴集团控股有限公司 加速单元、片上系统、服务器、数据中心和相关方法
CN113157636B (zh) * 2021-04-01 2023-07-18 西安邮电大学 协处理器、近数据处理装置和方法
CN117667220B (zh) * 2024-01-30 2024-05-17 芯来智融半导体科技(上海)有限公司 指令处理方法、装置、计算机设备和存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
US4758950A (en) * 1983-04-18 1988-07-19 Motorola, Inc. Method and apparatus for selectively delaying an interrupt of a coprocessor
DE3486465D1 (de) * 1983-04-18 1998-04-02 Motorola Inc Verfahren und Vorrichtung zum Koordinieren einer Instruktionsausführung durch eine Zusatzdatenverarbeitungseinheit
JPS62151971A (ja) * 1985-12-25 1987-07-06 Nec Corp マイクロ・プロセツサ装置
JPH0679307B2 (ja) * 1987-10-22 1994-10-05 日本電気株式会社 コプロセッサの並行動作制御方式
JPH01147656A (ja) * 1987-12-03 1989-06-09 Nec Corp マイクロプロセッサ
JP2667864B2 (ja) * 1988-03-23 1997-10-27 株式会社日立製作所 データ処理装置
JPH01243167A (ja) * 1988-03-25 1989-09-27 Hitachi Ltd データ処理装置
JP2741867B2 (ja) * 1988-05-27 1998-04-22 株式会社日立製作所 情報処理システムおよびプロセツサ
JP2946952B2 (ja) * 1992-07-31 1999-09-13 ティーディーケイ株式会社 複合型薄膜磁気ヘッド
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus

Also Published As

Publication number Publication date
US5909565A (en) 1999-06-01
JPH08305568A (ja) 1996-11-22
TW310409B (ko) 1997-07-11
DE69619885T2 (de) 2002-07-18
EP0740249B1 (en) 2002-03-20
JP2987308B2 (ja) 1999-12-06
DE69619885D1 (de) 2002-04-25
CN1140857A (zh) 1997-01-22
CN1153155C (zh) 2004-06-09
EP0740249A1 (en) 1996-10-30
KR960038572A (ko) 1996-11-21

Similar Documents

Publication Publication Date Title
KR100235397B1 (ko) 정보처리장치
KR100260353B1 (ko) 2종류의 명령장 코드를 실행하는 프로세서 및 그명령 코드입력 장치
US20040199390A1 (en) Signal processing system for reducing power consumption
KR100471794B1 (ko) 가변파이프라인단수의데이터처리장치
US6581120B1 (en) Interrupt controller
KR100310958B1 (ko) 정보 처리 장치 및 기억 매체
US5574937A (en) Method and apparatus for improving instruction tracing operations in a computer system
KR100442306B1 (ko) 파이프라인마이크로프로세서테스트장치
US6178500B1 (en) Vector packing and saturation detection in the vector permute unit
US5617549A (en) System and method for selecting and buffering even and odd instructions for simultaneous execution in a computer
EP1098248A1 (en) A method and apparatus for performing breakpoint instructions in a processor
JP3183844B2 (ja) 可変パイプライン段数のデータ処理装置
JP2000305779A (ja) パイプライン保護
KR19980058221A (ko) 파이프라인 정지회로를 구비한 프로세서
US6247119B1 (en) Apparatus having a flattener for outputting aligned or unaligned information from an instruction execution pipeline
JP2007200106A (ja) データ処理装置、制御方法、及びプログラム
JP2001249805A (ja) マイクロプロセッサ内の命令取出ユニット
JP2000231488A (ja) プロセッサ
JPH0377137A (ja) 情報処理装置
US20050033939A1 (en) Address generation
EP1622005B1 (en) Branch instruction control apparatus and control method with a branch reservation station
KR100209233B1 (ko) 고속 슈퍼-스케일러블 마이크로 프로세서의 디코더 유니트
US5345568A (en) Instruction fetch circuit which allows for independent decoding and execution of instructions
JPH0816392A (ja) コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法
JP2001092658A (ja) データ処理回路及びデータ処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130902

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20140902

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20150819

Year of fee payment: 17

EXPY Expiration of term