KR970003321B1 - 코프로세서 지정 시스템 - Google Patents

코프로세서 지정 시스템 Download PDF

Info

Publication number
KR970003321B1
KR970003321B1 KR1019880003371A KR880003371A KR970003321B1 KR 970003321 B1 KR970003321 B1 KR 970003321B1 KR 1019880003371 A KR1019880003371 A KR 1019880003371A KR 880003371 A KR880003371 A KR 880003371A KR 970003321 B1 KR970003321 B1 KR 970003321B1
Authority
KR
South Korea
Prior art keywords
data
microprocessor
coprocessor
coprocessors
storage means
Prior art date
Application number
KR1019880003371A
Other languages
English (en)
Other versions
KR880013059A (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 KR880013059A publication Critical patent/KR880013059A/ko
Application granted granted Critical
Publication of KR970003321B1 publication Critical patent/KR970003321B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)

Abstract

내용없음.

Description

코프로세서 지정 시스템
제1도는 본 발명이 적용된 마이크로 프로세서의 1실시예를 도시한 블럭도.
제2도는 코프로세서 지정 영역이 마련되는 제어 레지스터의 비트 구성도.
제3도는 본 발명에 관한 마이크로 프로세서와 부동 소수점 연산 코프로세서를 사용한 시스템의 일예를 도시한 시스템 구성도.
제4도(a), (b)는 상기 시스템의 동작 순서의 일예를 도시한 플루오 차트로. 제4도(a), (b)는 연속한 플로우를 2개로 분할해서 도시한 도면.
본 발명은 데이타 처리기술, 더 상세하게는 여러개의 프로세서가 결합된 시스템에 있어서의 프로세서 식별 시스템에 적용해서 유효한 기술에 관한 것으로서, 예를들면 같은 종류의 코프로세서가 여러개 마련되어서 되는 마이크로 컴퓨터 시스템에 있어서 코프로세서 지정 시스템에 관한 것이다.
16비트 또는 32비트 등과 같은 고기능을 갖는 마이크로 프로세서에 있어서는, 수치 연산의 고속화 등을 도모하기 위해 FPU(Floating Point Unit : 부동 소수점 연산 유니트) 등의 코프로세서를 결합해서 시스템을 구성하는 것이 있다.
코프로세서는 상기 FPU 이외에도 용도별로 여러가지의 것이 고안되어 있고, 목적에 따라서 코프로세서를 분할 사용할 필요가 있다. 또, 같은 종류의 코프로세서라도 병렬, 다중으로 동작시키고자 하는 경우가 있다.
종래, 코프로세서를 갖는 시스템에 있어서의 코프로세서의 식별 시스템으로서의 예를들면 마이크로 프로세서의 명령어 중에 코프로세서 식별 필드를 마련해 놓고, 코프로세서 명령을 실행할 때 상기 식별 필드의 코드를 어드레스 버스상에 출력한다. 그리고 그후 예를들면 디코더와 같은 외부 해독 장치에 의해서 코프로세서 식별 코드를 해독해서 칩 선택 신호를 형성하여 지정된 코프로세서에 전하도록 한 것이다(일본국 특허 공개공보소화 59-201154호).
상기 코프로세서 식별 시스템에 있어서는, 마이크로 프로세서의 명령어내에 코프로세서 식별 필드를 마련해 놓고 있으므로 명령의 비트 패텬 할당에 있어서의 자유도가 작게 된다. 그 때문에 장래의 명령의 확장성을 좁게 할 염려가 있다.
또, 종래의 코프로세서 식별 시스템에 있어서는, 식별 필드의 코드를 해독해서 코프로세서를 지정하는 식별 장치를 외부 회로로 구성할 필요가 있었다. 더욱이 종래의 코프로세서를 식별 시스템은 코프로세서의 종류를 지정하는 것으로서 코프로세서의 식별 코드가 고정되어 있기 때문에 범용성이 낮음과 동시에 같은 종류의 코프로세세를 여러개 사용해서 이것을 다중으로 조작시키는 것과 같은 시스템을 구성한 경우에 있어서, 1명령에 의해서 같은 코프로세서 사이의 식별을 행하는 것을 할 수 없었다. 따라서 이와 같은 식별을 행할 때에는 상기 와는 전혀 별개의 식별하는 정보(코드)를 명령어내에 넣어 놓지 않으면 안된다는 문제가 있었다.
본 발명의 목적은 고기능 마이크로 프로세서의 명령 확장의 자유도를 높이는 것에 있다. 본 발명의 다른 목적은 코프로세서를 사용한 컴퓨터 시스템에 있어서의 코프로세서 인터페이스의 범용화 및 시스템의 처리효율의 향상을 도모하는 것에 있다.
본 발명의 상기 및 그외의 목적과 새로운 특징에 대해서는 본 명세서의 기술 및 첨부 도면에 의해서 명백하게 될 것이다. 본 출원에 있어서 개시되는 발명 중 대표적인 것의 개요를 설명하면 다음과 같다.
즉, 마이크로 프로세서내의 상태표시 레지스터와 같은 제어레지스터중, 사용자 프로그램에 의해서 리드 라이트가 가능한 부위에 코프로세서 식별 코드(버호)를 저장하는 비트를 마련하여 코프로세서 명령 실행시에 상기 제어 레지스터내의 코프로세서 식별 코드를 외부로 출력시키도록 한다. 또, 상기 제어 레지스터는 인터럽트 등에 따른 예외 처리시에 스택 영역으로 세이브 시키도록 하는 것이다.
상기한 수단에 의하면, 마이크로 프로세서의 명령어내에 코프로세서 식별 필드를 마련할 필요를 없게 하여 장래의 명의 확장성을 높임과 동시에 같은 종류의 코프로세서라도 별도의 식별 번호를 할당해 놓는 것에 의해 식별하여 같은 종류의 여러개의 코프로세서를 신속히 병렬, 다중으로 동작시킬 수 있도록 해서 코프로세서 인터페이스의 범용화 및 시스템의 처리 효율의 향상을 도모하는 상기 목적을 달성할 수가 있다. 제1도에는 본 발명이 적용된 마이크로 프로세서의 1실시예가 도시되어 있다.
제1도에 있어서(1)은 명령 레지스터나 이 명령 레지스터에 폐치되는 마이크로 명령에 대응한 일련의 마이크로 명령군과 이 마이크로 명령에 따라서 프로세서 내부의 제어 신호를 형성하는 제어용 디코더 또는 시켄스콘트롤러 등으로 되는 제어부이다. (2)는 데이타 레지스터나 어드레스 레지스터와 같은 다목적으로 사용되는 범용 레지스터 및 스택 포인터, 이미디어트 값이나 코프로세서에 대한 커맨드 등을 입력하는데 사용되는 명령 레지스터(2b), 프로세서 내부의 상태를 표시하는 상태표시(status) 레지스터(2a)와 같은 제어 레지스터 등으로 되는 레지스터군이다. 이 레지스터군(2)의 내용은 CCB버스(2c) 및 제어 레지스터 값 출력 레지스터(3)을 거쳐서 실행유니트(10)으로 공급 가능하게 되어 있다.
실행 유니트(10)은 어드레스 연산등을 행하는 연산 유니트 AU(11)과 그 연산 결과를 유지하는 어드레스 일시 레지스터 AUO(12), 어드레스 출력 레지스터 AOR(13), 다음에 연산되는 값을 일시 유지하기 위한 일시 레지스터 TRO(14), 데이타 출력 레지스터 DOR(15) 및 데이타 입력 레지스터 DIR(16), 데이타 버스상에 입출력되는 데이타의 바이트 배열을 변경하기 위한 데이타 얼라이너 ALN(17), 실행 유니트(10)에서 레지스터군(2)에 전송되는 데이타를 일시 유지하는 일시 레지스터 ECR(18) 등에 의해 구성되어 있다.
실행 유니트(10) 내에 있어서 처리된 어드레스 및 데이타는 어드레스를 출력 레지스터(13) 및 데이타 얼라이너(17)에서 각각 내부 어드레스 버스(4) 및 내부 데이타 버스(5)를 거쳐서, 어드레스 핀(6) 및 데이타 핀(7)로 송출된다. 한편, 외부에서 받은 데이타는 데이타 버스(5)를 거쳐서 일단 데이타 얼라이너(17)에 입력되는 데이타 입력 레지스터(16)을 거쳐서 실행 유니트(10) 내의 버스 BA, BB 또는 BC에 얹어 진다.
또, 이 실시예에서는 상기 레지스터군(2) 내의 상태 레지스터(2a)의 일부에 외부의 코프로세서를 지정하는 예를들면, 3비트의 코드로 되는 식별 버호가 들어 있는 코프로세서 지정 영역 PID가 마련되어 있다. 더욱이 이 코프로세서 지정 영역 PID는 상태 레지스터(2a)중 사용자 프로그램에 의해 리드 라이트 가능한 영역의 일부에 마련되어 있다. 이것과 함께 제1도의 실시예에서는 특히 제한되지 않지만 상기 상태 레지스터(2a)중 코프로세서 지정 영역 PID 내의 코드를 전송 가능한 레지스터 AOT(19)가 마련되어 있고 이 레지스터(19)로 수신된 3비트의 코드는 상기 어드레스 출력 레지스터(13)에 공급되어 어드레스 버스(4)를 거쳐서 외부의 시스템 어드레스 버스의 제2∼제4비트상에 출력 가능하게 되어 있다.
상기 상태 레지스터(2a)의 PID 영역에의 식별 코드의 설정은 실행 유니트(10) 내의 버스 BC에 접속된 일시 레지스터 ECR(18)에서 CCB 버스(2c)를 거쳐서 행해진다.
또, 상기 상태 레지스터(2a)는 부정 명령이나 인터럽트, 버스 에러, 리세트 등의 예의 발생시에 스택 영역에 시이브할 수 있도록 할 수 있도록 되어 있다. 제2도에는 32비트 마이크로 프로세서에 있어서의 상태 레지스터(2a)의 구성에가 도시되어 있다.
이 상태 레지스터는 제0비트에서 제7비트까지의 8비트는 플래그 영역으로 되어 있고 연산 결과의 올 제로를 표시하는 플래그 Z, 연산 결과의 최상위 비트를 표시하는 플래그 N, 연산 결과의 정·부를 표시하는 플래그 L, 오버플로우의 발생을 표시하는 플래그 V, 멀티렝스(multi-lenght) 연산에 사용되는 플래그 X, 종료 조건의 설정등에 사용되는 플래그 F, 포인트 비트 에러를 표시하는 플래그 P, 10진 기능 선택을 표시하는 플래그 FS가 마련되어 있다.
또, 이 실시예의 상태 레지스터(2a)에서는 제0비트에서 제15비트까지의 16비트가 사용자 프로그램에 의해서 리드 라이트 가능한 영역으로 되어 그 영역내의 2비트의 원래의 링번호 표시 영역 PRNG와 함께 앞서 기술한 코프로세서 지정 영역 PID가 마련되어 있다. 상기 원래의 링 번호 표시 영역 PRNG는 계층적인 제어 구조를 사용한 프로세서에 있어서, 현재 실행중인 링(제어 계층)을 호출하기 전의 링을 표시하는 영역이다. 또, 제11∼제13비트는 할당 영역이다.
또한, 상태 레지스터(2a)의 제16에서 제19비트까지의 4비트에는 인터럽트 마스크의 순위를 지정하는 영역 iMASK가, 또 제20비트에는 디버그 도시에 사용하는 플래그 DB, 제24비트에는 어드레스 변환의 온/오프를 지정하는 플래그 DATS, 제28비트에는 어드레스 확장 모드를 표시하는 플래그 XA, 제29비트와 제30비트에는 현재 실행중인 링의 번호를 표시하는 영역 RNG가, 그리고 제31비트에는 사용하는 스택 포인터의 선택 상태를 표시하는 플래그 SM이 각각 할당되어 있다. 제21∼제23비트 및 제25∼제27비트는 할당 영역이다. 또, 특히 제한되지 않지만 상태 레지스터(2a) 중 제16∼제31비트는 사용자의 사태로서는 리드/라이트 할 수 있는 영역으로 되어 있다.
상기와 같은 상태 레지스터(2a)를 갖는 프로세서에 있어서는 상태 레지스터(2a) 내의 코프로세서 지정영역 PID에 코프로세서 식별 코드를 넣어서 코프로세서 명령 실행시에 커맨드와 함께 상태 레지스터(2a) 내의 코프로세서 식별 코드를 코프로세서로 건네주면 되고 명령어내에 코프로세서 식별 필드를 마련해 놓을 필요가 없다.
제3도에는 상기한 바와 같이 구성된 마이크로 프로세서와 2개의 코프로세서를 사용한 시스템의 일예가 도시되어 있다. 동일 도면에 있어서 부호 MPU로 표시되어 있는 것이 마이크로 프로세서, FPU1, FPU2로 표시되어 있는 것이 부동 소수점 연산 프로세서와 같은 코플세서, MEM으로 표시되어 있는 것이 주 메모리이다. 그들의 LSI 사이는 시스템 어드레스 버스 AB 및 시스템 데이타 버스 DB에 의해서 서로 접속되어 있음과 동시에 핸드 세이킹을 위한 각종 제어 신호
Figure kpo00001
등을 전하는 제어 신호선 ℓ1∼ℓ8이 접속되어 있다.
또, 제3도에 있어서 제어신호
Figure kpo00002
는 메로리 MEM 내에 저장된 데이타의 배열 상태를 지시하는 신호,
Figure kpo00003
는 마이트로 프로세서에서 출력되는 어드레스가 확정되고 있는 것을 표시하는 신호,
Figure kpo00004
은 리드 또는 라이트를 지시하는 신호,
Figure kpo00005
는 버스상의 데이타가 확정하고 있는 것을 표시하는 신호, AT는 코프로세서 커맨드 전송 요구(110)이던가, 오퍼랜드 전송 요구(100)이던가, 마이크로 프로세서가 어떠한 버스 사이클을 요구하는 가를 표시하는 신호이다. 또,
Figure kpo00006
는 버스상의 데이타를 수신하거나 유효한 데이타를 버스상에 출력한 것을 메모리나 코프로세서 측에서 MPU로 알리는 신호, BST는 버스의 상태를, 또 CPST는 코프로세서의 상태(예를들면 커맨드의 수신 종료)를 각각 MPU로 알리기 위한 신호이다.
그리고, 이 실시예에서는 미리 각 코프로세서 FPU1, FPU2에 식별 번호를 부여해 놓고 마이크로 프로세서에서 어드레스 버스 AB 상에 출력된 식별 코드와 상기 식별 신호를 각 코프로세서에 있어서 소프트적으로 비교해서 자기에 대한 명령(코프로세서 명령)인가 아닌가를 스스로 판별시키도록 되어 있다.
다음에, 상기 2개의 코프로세서를 갖는 시스템에 있어서 코프로세서 명령을 실행할 경우의 순서의 일예를 제4도(a), (b)를 사용해서 설명한다.
제4도 a, b의 플로우 차트를 마이크로 프로세서 MPU가 제1의 코프로세서 FPU1에 대해서 부동 소수점 연산의 명령을 부여하고 그후 코프로세서 FPU1에 있어서의 연산중에 제2의 코프로세서 FPU2에 대하여 부동소수점 연산의 명령을 부여하는 경우의 순서가 도시되어 있다. 또, 이 실시예에서는 상기 코프로세서 FPU1에 대하여 식별 코드 "0"이, 또 다른쪽의 코프로세서 FPU2에 대해서는 식별 코드 "1"이 부여되어 있는 것으로 해서 다음에 설명한다.
먼저, 마이크로 프로세서 MPU는 상태 레지스터(2a)의 코프로세서 지정 영역 PID에 제1의 코프로세서 FPU1의 식별코드 "0"을 라이트한다(스텝S1). 다음에 상기 코프로세서 지정 영역 PID 내의 식별 코드를 레지스터 AOT(제1도 참조)에 세트한 후 명령 레지스터 IREG 내의 코프로세서 커맨드(이하 FPU 커맨드라함)를 제어 레지스터 값 출력 레지스터 CBS로 전송한다(스텝 S2). 그리고 나서 레지스터 CBS의 값을 데이타 출력 레지스터 DOR에 세트함과 동시에 상기 레지스터 AOT 내의 식별 코드를 어드레스 출력 레지스터 AOR로 전송하여 일시 레지스터 TRO에는 오퍼랜드 어드레스를 세트한다(스텝 S3).
그리고 나서 어드레스를 출력 레지스터 AOR의 값을 내부 어드레스 버스(4)를 거쳐서 어드레스 핀(6)으로 송출함과 동시에 데이타 출력 레지스터 DOR의 값을 내부 데이타 버스(5)를 거쳐서 데이타 핀(7)로 송출한다. 그리고 FPU 커맨드 전송 요구 신호 AT 110을 어서트하여 일시 레지스터 TRO 내의 오퍼랜드 어드레스를 연산 유니트 AU에 공급한다(스텝 S4).
그러면 전송 요구 신호 AR 110을 받은 코프로세서 FPU1은 식별번호(PID 코드)의 비교를 행해서 자기의 번호와 동일하면 데이타 버스 DS 상에서 FPU 커맨드를 수신하고(스텝 S5), 데이타 수신 종료를 표시하는 신호
Figure kpo00007
를 어서트하여 또한 FPU 커맨드의 수신 종료를 표시하는 신호 CPST 010을 어서트한다(스텝 S6).
다음에 상기 신호
Figure kpo00008
, CPST 010을 받아서 마이크로 프로세서 MPU가 연산 유니트 AU에 있어서의 어드레스 연산 결과를 레지스터 AUO에서 어드레스 출력 레지스터 AOR에 세트한다(스텝 S7). 그리고 나서 어드레스 출력 레지스터 AOR의 값을 어드레스 버스(14)를 거쳐서 어드레스 핀으로 송출하고 또한 코프로세서 오퍼랜드 전송요구 신호 AT 100을 어스트한다(스텝 S8).
그러면 시스템 버스를 거쳐서 메모리 MEM이 액세스되어 지정된 어드레스의 데이타를 출력함과 동시에 데이타를 버스상에 출력한 것을 표시하는 신호
Figure kpo00009
및 버스 상태를 표시하는 신호 BST를 어서트한다(스텝 S9).
상기 제어 신호
Figure kpo00010
및 BST에 의해서 코프로세서 FPU1은 시스템 버스상의 데이타를 수신하여 FPU 커맨드에 따른 연산을 개시한다.
한편, 마이크로 프로세서 MPU는 코프로세서 FPU1의 데이타 수신, 연산 개시와 병행하여 먼저 어드레스 핀을 하이 임피던스 상태로 하고 나서(스텝 S10), 상태 레지스터(2a)의 코프로세서 지정 영역 PID로, 제2코프로세서 FPU2의 식별 코드인 "1"을 라이트한다(스텝 S11).
다음에 상기 코프로세서 지정 영역 PID 내의 식별 코드를 레지스터 AOT에 세트한 후 명령 레지스터 IREG내의 FPU 커맨드를 제어 레지스터 값 출력 레지스터 CBS로 전송한다(스텝 S12).
그러고 나서 레지스터 CBS의 값을 데이타 출력 레지스터 DOR에 세트함과 동시에 상기 레지스터 AOT 내의 식별 코드를 어드레스 출력 레지스터 AOR로 전송하여 일시 일시 레지스터 TRO에는 오퍼랜드 어드레스를 세트한다(스텝 S13).
그런 후 어드레스 출력 레지스터 AOR의 값을 내부 어드레스 버스(4)를 거쳐서 어드레스 핀(6)으로 송출함과 동시에 데이타 출력 레지스터 DOR의 값을 내부 데이타 버스(5)를 거쳐서 데이타 핀(7)로 송출한다. 그리고 FPU 커맨드 전송 요구 신호 AT 110을 어서트하여 일시 레지스터 TRO 내의 오퍼랜드 어드레스를 연산 유니트 AU로 공급한다(스텝 S14).
그러면 전송 요구 신호 AT 110을 받은 코프로세서 FPU2는 식별 번호(PID 코드)의 비교를 행하여 자기의 번호와 동일하면 데이타 버스 DB 상에서 FPU 커맨드를 수신하고 (스텝 S15), 데이타 수신 종료를 수신하는 신호
Figure kpo00011
를 어서트하고 또한 FPU 커맨드의 수신 종료를 표시하는 신호 CPST 010을 어서트한다(스텝 S16).
다음에 상기 신호
Figure kpo00012
, CPST 010을 받아서 마이크로 프로세서 MPU가 연산 유니트 AU에 있어서의 어드레스 연산 결과를 레지스터 AUO에서 어드레스 출력 레지스터 AOR에 세트한다(스텝 S17). 그리고나서 어드레스 출력 레지스터 AOR의 값을 어드레스 버스(4)를 거쳐서 어드레스 핀으로 송출하고 또한 코프로세서 오퍼랜드 전송 요구 신호 AT 100을 어서트한다(스텝 S18).
그러면 시스템 버스를 거쳐서 메모리 MEM이 액섹스되어 지정된 어드레스의 데이타를 출력함과 동시에 데이타를 버스상에 출력한 것을 표시하는
Figure kpo00013
및 버스 상태를 표시하는 신호 BST를 어서트한다(스텝 S19).
상기 제어 신호
Figure kpo00014
및 BST에 의해서 코프로세서 FPU2는 시스템 버스상의 데이타를 수신하여 FPU 커맨드에 따른 연산을 개시한다. 그리고, 마이크로 프로세서 MPU는 코프로세서 FPU2의 데이타 수신, 연산 개시와 병행하여 어드레스 핀을 하이 임피던스 상태로 한다.
따라서, 종래 방식에서는 코프로세서의 식별 코드가 고정되어 있음과 동시에 같은 종류의 코프로세서를 병렬, 다중으로 동작시키는 것이 곤란하였던 것이 상기 실시예에 따르면 코프로세서의 식별 번호를 사용자가 자유로이 바꿀 수 있도록 되어 범용성이 높게 됨과 동시에 같은 종류의 코프로세서라도 용이하게 이것을 병렬, 다중으로 동작시킬 수가 있다.
또, 상기 실시예에서는, 상태 레지스터(2a) 내에 마련된 코프로세서 지정 영역 PID가 3비트로 구성되어 최고 8개의 코프로세서를 식별할 수 있도록 되어 있지만 코프로세서 지정 영역 PID의 비트수는 3비트로 한정되지 않고 제어 레지스터의 플래그 영역 등 다른 영역과의 관계에서 임의의 비트수로 할 수가 있다.
이상 설명한 바와 같이 상기 실시예는 마이크로 프로세서내의 상태 레지스터와 같은 제어 레지스터중 사용자 프로그램에 의해서 리드/라이트 가능한 부위에 코프로세서 식별 필드를 마련할 필요가 없는 작용에 의해 마이크로 프로세서의 장래의 명령의 확장성을 높일 수 있다는 효과가 있다.
또, 마이크로 프로세서내의 상태 레지스터와 같은 제어 레지스터 중, 사용자 프로그램에 의해서 리드/라이트 가능한 부위에 코프로세서 식별 코드(번호)를 저장하는 코프로세서 지정 영역을 마련하여 코프로세서 명령 실행시에 상기 상태 레지스터내의 코프로세서 식별 코를를 외부로 출력시키도록 했으므로 같은 종류의 코프로세서라도 별도의 식별 신호를 할당해 놓는 것에 의해 식별하고 같은 종류의 여러개의 코프로세서를 신속하게 병렬, 다중으로 동작시킬 수가 있다는 작용을 의해 코프로세서 인터페이스의 범용화를 도모한다는 효과가 있다.
또한, 마이크로 프로세서내의 상태 레지스터와 같은 제어레지스터중 사용자 프로그램에 의해서 리드/라이트 가능한 부위에 코프로세서 식별 코드(번호)를 저장하고 코프로세서 지정 영역을 마련하여 코프로세서 명령 실행시에 상기 상태 레지스터내의 코프로세서 식별 코드를 외부로 출력시킴과 동시에 상기 상태 레지스터는 인터럽트 등에 따른 예외 처리시에 스택 영역으로 세이브 시키도록 했으므로 코프로세서 명령 실행중에 인터럽트등에 따라서 예외처리로 옮겼다고 해도 어느 코프로세서가 명령 실행중이었는가르 코프로세서 지정 영역 PID를 스택 영역으로 세이브시켜 예외처리 종료후에 원래의 상태 레지스터로 되돌려 주는 것에 의해 명령 실행을 재개할 때의 처리가 간략회되고 신속하게 원래의 프로그램의 실행을 재개할 수가 있어 이것에 의해서 시스템의 처리 효율이 향상된다는 효과가 있다.
또, 각 코프로세서에 있어서 소프트적으로 식별코드의 판별을 행하도록 하고 있으므로, 외부 해독장치를 외부 부착 회로에 의해서 구성할 필요가 없게 되어 시스템이 간략되 되는 효과가 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라 구체적으로 설명하였지만 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러가지 변경 간으한 것을 물론이다. 예를 들면, 상기 실시예에서는 코프로세서 지정 영역을 인터럽트시에 세이브 가능한 상태 레지스터에 마련하고 있지만 상태 레지스터중 세이브 되지 않는 영역 더 나아가서는 상태 레지스터 이외의 제어 레지스터에 마련하도록 하는 것도 가능하다.
이상의 설명에서는 주 본 발명자에 의해서 이루어진 발명은 그 배경이 된 이용 분야인 마이크로 프로세서에 적용된 것에 대해서 설명하였지만 본 발명은 그것에 한정되는 것은 아니고 범용 프로세서 형태의 데이타 처리 장치 일반에 이용할 수가 있다.

Claims (13)

  1. 마이크로 컴퓨터, 어드레스 버스 수단, 데이타 버스 수단 및 여러개의 코프로세서를 갖는 데이타 처리 시스템으로서, 상기 마이크로 컴퓨터는 명령을 실행하기 위한 명령 실행 수단, 상기 명령 실행 수단을 제어하기 위한 제어 수단, 상기 마이크로 컴퓨터의 상태를 나타내고, 상기 어드레스 버스 수단에 결합되고, 사용자에 의해 리라이트 되는 상기 여러개의 코프로세서의 적어도 하나를 나타내기 위한 지정 데이타를 저장하기 위한 제1저장 수단, 상기 데이타 버스 수단에 결합되고, 상기 지정된 코프로세서에 처리되어야 할 커맨드 데이타를 저장하기 위한 제2저장 수단을 갖는 마이크로 컴퓨터로서, 상기 지정 데이타는 여러개의 비트에 의해 형성되고, 상기 어드레스 버스 수단은 상기 마이크로 컴퓨터를 상기 여러개의 코프로세서에 결합시키고, 상기 여러개의 코프로세서에 상기 지정 데이타를 공급하고, 상기 마이크로 컴퓨터와 여러개의 코프로세서를 결합하는 상기 데이타 버스 수단은 상기 여러개의 코프로세서에 상기 커맨드 데이타를 공급하고, 상기 여러개의 코프로세서의 각각은 식별 코드를 갖고, 또 상기 여러개의 코프로세서의 각각은 상기 마이크로 컴퓨터에서 공급된 상기 지정 데이타가 상기 식별 코드에 대응할때 상기 마이크로 컴퓨터에서 공급된 상기 커맨드 데이타를 선택적으로 페치하기 위한 수단을 갖는 데이타 처리 시스템.
  2. 특허청구의 범위 제1항에 있어서, 상기 커맨드 데이타는 상기 제어 수단에 의해 상기 제2저장 수단의 소정 위치에 저장되는 데이타 처리 시스템.
  3. 특허청구의 범위 제2항에 있어서, 상기 제1저장 수단은 레지스터를 갖는 데이타 처리 시스템.
  4. 마이크로 프로세서와 여러개의 코프로세서를 갖는 컴퓨터 시스템으로서, 상기 마이크로 프로세서는 명령을 실행하기 위한 명령 실행 수단, 상기 명령 실행 수단을 제어하기 위한 제어 수단, 사용자에 의해 리드 라이트가 실행되는 상기 여러개의 코프로세서의 적어도 하나를 나타내기 위한 지정 데이타를 갖고, 상기 마이크로 프로세서내의 상태를 나타내기 위한 제1저장수단, 상기 지정 데이타에 따라 상기 지정된 적어도 하나의 코프로세서에서 처리되어야 할 커맨드 데이타를 저장하기 위한 제2저장 수단, 상기 제2저장 수단과 상기 여러개의 코프로세서에 결합되는 여러개의 제1외부 단자, 상기 제1저장 수단과 상기 여러개의 코프로세서에 결합되는 여러개의 제2외부 단자를 갖고, 상기 여러개의 코프로세서의 각각은 상기 여러개의 제2마이크로 프로세서사이에서 구별하기 위한 식별 코드를 갖는 것으로서, 하나의 코프로세서를 지정하는 방법으로서, (a) 상기 제1저장 수단에 상기 지정 데이타를 저장하는 스텝, (b) 상기 제2저장 수단에 상기 커맨드 데이타를 저장하는 스텝, (c) 상기 제2외부 단자를 거쳐 상기 여러개의 코프로세서에 상기 지정 데이타를 전송하고 상기 제1외부 단자를 거쳐서 상기 여러개의 코프로세서에 상기 커맨드 데이타를 전송하는 스텝, (d) 상기 각각의 코프로세서에서 상기 전송된 지정 데이타와 상기 식별 코드를 비교하고 이것에 의해 상기 여러개의 코프로세서에 적어도 하나의 코프로세서를 선택하는 스텝, (e) 상기 지정된 코프로세서가 사기 여러개의 제1외부 단자로부터의 상기 커맨드 데이타를 페치하는 스텝을 갖는 코프로세서 지정 방법.
  5. 특허청구의 범위 제4항에 있어서, 또 상기 여러개의 제1외부 단자와 상기 여러개의 코프로세서를 직접 결합하는 데이타 버스에서 상기 커맨드를 데이타를 라이트하는 스텝, 상기 여러개의 제2외부 단자와 상기 여러개의 코프로세서를 직접 결합하는 여러개의 어드레스 신호선에서 상기 지정 데이타를 라이트하는 스텝을 갖는 코프로세서 지정 방법.
  6. 특허청구의 범위 제5항에 있어서, 상기 스텝(a)와 (b)는 서로 동기하여 실행되고, 상기 스텝(c)도 또 서로 동기하여 실행되는 코프로세서 지정 방법.
  7. 특허청구의 범위 제2항에 있어서, 상기 제1저장 수단은 레지스터를 갖는 코프로세서 지정 방법.
  8. 제1마이크로 프로세서와 여러개의 제2마이크로 프로세서로 이루어지는 마이크로 프로세서 시스템으로서, 상기 제1마이크로 프로세서는 (i) 커맨드 데이타를 저장하기 위한 제1메모리 수단, (ii) 사용자에 의해 리라이트 되고, 지정 데이타를 저장하는 부분을 가지며, 내부의 상태를 나타내기 위한 제2메모리 수단, (iii) 상기 마이크로 프로세서 시스템내의 여러개의 제2마이크로 프로세서에 상기 커맨드 데이타와 상기 지정 데이타를 송신하기 위한 수단을 갖고, 상기 여러개의 제2마이크로 프로세서의 각각은 (i) 상기 여러개의 제2마이크로 프로세서사이에서 구별하기 위한 식별 코드를 갖고, (ii) 상기 식별 코드가 상기 제1마이크로 프로세서에서 보내진 상기 지정 데이타에 대응할 때 상기 제1마이크로 프로세서에서 보내진 상기 커맨드 데이타를 페치하기 위한 수단을 갖는 마이크로 프로세서 시스템.
  9. 특허청구의 범위 제8항에 있어서, 상기 제2메모리 수단은 레지스터를 갖는 마이크로 프로세서 시스템.
  10. 제1마이크로 프로세서, 제1식별 코드를 갖는 제2마이크로 프로세서, 제2식별 코들 갖는 제3마이크로 프로세서, 제1, 제2 및 제3마이크로 프로세서를 결합하기 위한 여러개의 어드레스선과 데이타 버스를 갖는 마이크로 프로세서 시스템으로서, 상기 제1마이크로 프로세서는 상기 여러개의 어드레스선에 결합되는 제1저장수단과 상기 데이타 버스에 결합되는 제2저장 수단을 갖고, 상기 제1저장수단은 사용자에 의해 리라이트되는 상기 제2 및 제3마이크로 프로세서의 한쪽을 지정하기 위한 지정 데이타를 저장하고, 상기 제2저장 수단은 상기 지정한 마이크로 프로세서에 의해 실행하기 위한 커맨드 데이타를 저장하기 위한 것을 갖는 마이크로프로세서 시스템.
  11. 특허청구의 범위 제10항에 있어서, 상기 제2마이크로 프로세서는 상기 제2마이크로 프로세서를 지정하는 제2프로세서 지정 데이타에 따라 상기 커맨드 데이타를 선택적으로 받기 위한 수단을 갖고, 상기 제3마이크로 프로세서는 상기 제3마이크로 프로세서를 지정하는 제3프로세서 지정 데이타에 따라 상기 커맨드 데이타를 선택적으로 받기 위한 수단을 갖는 마이크로 프로세서 시스템.
  12. 각각의 코프로세서는 식별 코드를 갖고, 마이크로 프로세서에 결합되는 여러개의 코프로세서중의 하나를 지정하기 위한 방법으로서, (a) 상기 마이크로 프로세서에 의해 저장 수단에서 여러개의 코프로세서 명령을 리드하기 위한 스텝, (b) 상기 마이크로 프로세서와 상기 여러개의 코프로세서에 결합된 제1버스에 상기 리드된 여러개의 코프로세서 명령을 전송하기 위한 스텝, (c) 상기 여러개의 코프로세서의 하나를 지정하는 소정 지정 데이타를 사용자에 의해 리라이트되고 상기 마이크로 프로세서의 상태를 나타내기 위한 레지스터내의 영역에 유지하는 스텝, (d) 제2버스를 거쳐서 상기 여러개의 코프로세서에 상기 상태 레지스터내의 영역에서 상기 지정 데이타를 전송하기 위한 스텝, (e) 소정 코프로세서내의 상기 식별 코드가 상기 전송된 지정 데이타에 대응할때 소정 코프로세서내의 상기 여러개의 코프로세서 명령을 선택적으로 페치하기 위한 스텝을 갖는 코프로세서 지정 방법.
  13. 특허청구의 범위 제12항에 있어서, 스텝(b)와 스텝(d)는 정기적으로 실행하는 코프로세서 지정 방법.
KR1019880003371A 1987-04-20 1988-03-28 코프로세서 지정 시스템 KR970003321B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP62095180A JPS63261449A (ja) 1987-04-20 1987-04-20 デ−タ処理装置
JP87-95180 1987-04-20
JP62-95180 1987-04-20

Publications (2)

Publication Number Publication Date
KR880013059A KR880013059A (ko) 1988-11-29
KR970003321B1 true KR970003321B1 (ko) 1997-03-17

Family

ID=14130551

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880003371A KR970003321B1 (ko) 1987-04-20 1988-03-28 코프로세서 지정 시스템

Country Status (3)

Country Link
US (1) US5125095A (ko)
JP (1) JPS63261449A (ko)
KR (1) KR970003321B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
US5638530A (en) * 1993-04-20 1997-06-10 Texas Instruments Incorporated Direct memory access scheme using memory with an integrated processor having communication with external devices
US5613068A (en) * 1994-06-17 1997-03-18 International Business Machines Corporation Method for transferring data between processors on a network by establishing an address space for each processor in each other processor's
US5689727A (en) * 1994-09-08 1997-11-18 Western Digital Corporation Disk drive with pipelined embedded ECC/EDC controller which provides parallel operand fetching and instruction execution
US5803909A (en) * 1994-10-06 1998-09-08 Hitachi, Ltd. Optical system for measuring metabolism in a body and imaging method
US6247113B1 (en) 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
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
AU2003256870A1 (en) * 2002-08-09 2004-02-25 Intel Corporation Multimedia coprocessor control mechanism including alignment or broadcast instructions
US7392368B2 (en) * 2002-08-09 2008-06-24 Marvell International Ltd. Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements
US6986023B2 (en) * 2002-08-09 2006-01-10 Intel Corporation Conditional execution of coprocessor instruction based on main processor arithmetic flags
US20090113211A1 (en) * 2007-10-31 2009-04-30 Chun-Hung Liu Processing unit including a wireless module and method thereof
US8281075B2 (en) * 2009-04-14 2012-10-02 International Business Machines Corporation Processor system and methods of triggering a block move using a system bus write command initiated by user code
JP5414057B2 (ja) * 2009-05-22 2014-02-12 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
US10362093B2 (en) * 2014-01-09 2019-07-23 Netronome Systems, Inc. NFA completion notification
US10733141B2 (en) * 2018-03-27 2020-08-04 Analog Devices, Inc. Distributed processor system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5327339A (en) * 1976-08-26 1978-03-14 Toshiba Corp Information processing method
US4868735A (en) * 1984-05-08 1989-09-19 Advanced Micro Devices, Inc. Interruptible structured microprogrammed sixteen-bit address sequence controller
US4775931A (en) * 1984-05-11 1988-10-04 Hewlett-Packard Company Dynamically configured computing device
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
EP0267613B1 (en) * 1986-11-12 1995-03-01 Nec Corporation Micro processor capable of being connected with coprocessor
DE3814325A1 (de) * 1988-04-28 1989-11-09 Merck Patent Gmbh Aminosaeurederivate

Also Published As

Publication number Publication date
JPS63261449A (ja) 1988-10-28
US5125095A (en) 1992-06-23
KR880013059A (ko) 1988-11-29

Similar Documents

Publication Publication Date Title
US4250546A (en) Fast interrupt method
KR970003321B1 (ko) 코프로세서 지정 시스템
JP4883824B2 (ja) デ―タ・プロセッサにおいて後続の命令処理に影響を及ぼす方法および装置
US4200912A (en) Processor interrupt system
US4729094A (en) Method and apparatus for coordinating execution of an instruction by a coprocessor
US4715013A (en) Coprocessor instruction format
US5155817A (en) Microprocessor
US4731736A (en) Method and apparatus for coordinating execution of an instruction by a selected coprocessor
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
US4750110A (en) Method and apparatus for executing an instruction contingent upon a condition present in another data processor
EP0525831B1 (en) Method and apparatus for enabling a processor to coordinate with a coprocessor in the execution of an instruction which is in the intruction stream of the processor.
US4821231A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
US4758950A (en) Method and apparatus for selectively delaying an interrupt of a coprocessor
US4914578A (en) Method and apparatus for interrupting a coprocessor
US4344133A (en) Method for synchronizing hardware and software
JPS62115542A (ja) 情報処理装置
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
EP0385136B1 (en) Microprocessor cooperating with a coprocessor
US4994961A (en) Coprocessor instruction format
EP0560393B1 (en) Microprocessor and data processing system with register file
US4758978A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor
EP0573071A2 (en) A microprocessor
GB2027238A (en) Clear and wait instruction means and method
JPH0377137A (ja) 情報処理装置
US4811274A (en) Method and apparatus for selectively evaluating an effective address for a coprocessor

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee