KR970003321B1 - 코프로세서 지정 시스템 - Google Patents
코프로세서 지정 시스템 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 10
- 230000008878 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- UBAXRAHSPKWNCX-UHFFFAOYSA-N diallyl trisulfide Chemical compound C=CCSSSCC=C UBAXRAHSPKWNCX-UHFFFAOYSA-N 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- RMKCQUWJDRTEHE-UHFFFAOYSA-N diallyl tetrasulfane Natural products C=CCSSSSCC=C RMKCQUWJDRTEHE-UHFFFAOYSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent 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에 의해서 서로 접속되어 있음과 동시에 핸드 세이킹을 위한 각종 제어 신호등을 전하는 제어 신호선 ℓ1∼ℓ8이 접속되어 있다.
또, 제3도에 있어서 제어신호는 메로리 MEM 내에 저장된 데이타의 배열 상태를 지시하는 신호,는 마이트로 프로세서에서 출력되는 어드레스가 확정되고 있는 것을 표시하는 신호,은 리드 또는 라이트를 지시하는 신호,는 버스상의 데이타가 확정하고 있는 것을 표시하는 신호, AT는 코프로세서 커맨드 전송 요구(110)이던가, 오퍼랜드 전송 요구(100)이던가, 마이크로 프로세서가 어떠한 버스 사이클을 요구하는 가를 표시하는 신호이다. 또,는 버스상의 데이타를 수신하거나 유효한 데이타를 버스상에 출력한 것을 메모리나 코프로세서 측에서 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), 데이타 수신 종료를 표시하는 신호를 어서트하여 또한 FPU 커맨드의 수신 종료를 표시하는 신호 CPST 010을 어서트한다(스텝 S6).
다음에 상기 신호, CPST 010을 받아서 마이크로 프로세서 MPU가 연산 유니트 AU에 있어서의 어드레스 연산 결과를 레지스터 AUO에서 어드레스 출력 레지스터 AOR에 세트한다(스텝 S7). 그리고 나서 어드레스 출력 레지스터 AOR의 값을 어드레스 버스(14)를 거쳐서 어드레스 핀으로 송출하고 또한 코프로세서 오퍼랜드 전송요구 신호 AT 100을 어스트한다(스텝 S8).
그러면 시스템 버스를 거쳐서 메모리 MEM이 액세스되어 지정된 어드레스의 데이타를 출력함과 동시에 데이타를 버스상에 출력한 것을 표시하는 신호및 버스 상태를 표시하는 신호 BST를 어서트한다(스텝 S9).
한편, 마이크로 프로세서 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), 데이타 수신 종료를 수신하는 신호를 어서트하고 또한 FPU 커맨드의 수신 종료를 표시하는 신호 CPST 010을 어서트한다(스텝 S16).
다음에 상기 신호, CPST 010을 받아서 마이크로 프로세서 MPU가 연산 유니트 AU에 있어서의 어드레스 연산 결과를 레지스터 AUO에서 어드레스 출력 레지스터 AOR에 세트한다(스텝 S17). 그리고나서 어드레스 출력 레지스터 AOR의 값을 어드레스 버스(4)를 거쳐서 어드레스 핀으로 송출하고 또한 코프로세서 오퍼랜드 전송 요구 신호 AT 100을 어서트한다(스텝 S18).
그러면 시스템 버스를 거쳐서 메모리 MEM이 액섹스되어 지정된 어드레스의 데이타를 출력함과 동시에 데이타를 버스상에 출력한 것을 표시하는및 버스 상태를 표시하는 신호 BST를 어서트한다(스텝 S19).
상기 제어 신호및 BST에 의해서 코프로세서 FPU2는 시스템 버스상의 데이타를 수신하여 FPU 커맨드에 따른 연산을 개시한다. 그리고, 마이크로 프로세서 MPU는 코프로세서 FPU2의 데이타 수신, 연산 개시와 병행하여 어드레스 핀을 하이 임피던스 상태로 한다.
따라서, 종래 방식에서는 코프로세서의 식별 코드가 고정되어 있음과 동시에 같은 종류의 코프로세서를 병렬, 다중으로 동작시키는 것이 곤란하였던 것이 상기 실시예에 따르면 코프로세서의 식별 번호를 사용자가 자유로이 바꿀 수 있도록 되어 범용성이 높게 됨과 동시에 같은 종류의 코프로세서라도 용이하게 이것을 병렬, 다중으로 동작시킬 수가 있다.
또, 상기 실시예에서는, 상태 레지스터(2a) 내에 마련된 코프로세서 지정 영역 PID가 3비트로 구성되어 최고 8개의 코프로세서를 식별할 수 있도록 되어 있지만 코프로세서 지정 영역 PID의 비트수는 3비트로 한정되지 않고 제어 레지스터의 플래그 영역 등 다른 영역과의 관계에서 임의의 비트수로 할 수가 있다.
이상 설명한 바와 같이 상기 실시예는 마이크로 프로세서내의 상태 레지스터와 같은 제어 레지스터중 사용자 프로그램에 의해서 리드/라이트 가능한 부위에 코프로세서 식별 필드를 마련할 필요가 없는 작용에 의해 마이크로 프로세서의 장래의 명령의 확장성을 높일 수 있다는 효과가 있다.
또, 마이크로 프로세서내의 상태 레지스터와 같은 제어 레지스터 중, 사용자 프로그램에 의해서 리드/라이트 가능한 부위에 코프로세서 식별 코드(번호)를 저장하는 코프로세서 지정 영역을 마련하여 코프로세서 명령 실행시에 상기 상태 레지스터내의 코프로세서 식별 코를를 외부로 출력시키도록 했으므로 같은 종류의 코프로세서라도 별도의 식별 신호를 할당해 놓는 것에 의해 식별하고 같은 종류의 여러개의 코프로세서를 신속하게 병렬, 다중으로 동작시킬 수가 있다는 작용을 의해 코프로세서 인터페이스의 범용화를 도모한다는 효과가 있다.
또한, 마이크로 프로세서내의 상태 레지스터와 같은 제어레지스터중 사용자 프로그램에 의해서 리드/라이트 가능한 부위에 코프로세서 식별 코드(번호)를 저장하고 코프로세서 지정 영역을 마련하여 코프로세서 명령 실행시에 상기 상태 레지스터내의 코프로세서 식별 코드를 외부로 출력시킴과 동시에 상기 상태 레지스터는 인터럽트 등에 따른 예외 처리시에 스택 영역으로 세이브 시키도록 했으므로 코프로세서 명령 실행중에 인터럽트등에 따라서 예외처리로 옮겼다고 해도 어느 코프로세서가 명령 실행중이었는가르 코프로세서 지정 영역 PID를 스택 영역으로 세이브시켜 예외처리 종료후에 원래의 상태 레지스터로 되돌려 주는 것에 의해 명령 실행을 재개할 때의 처리가 간략회되고 신속하게 원래의 프로그램의 실행을 재개할 수가 있어 이것에 의해서 시스템의 처리 효율이 향상된다는 효과가 있다.
또, 각 코프로세서에 있어서 소프트적으로 식별코드의 판별을 행하도록 하고 있으므로, 외부 해독장치를 외부 부착 회로에 의해서 구성할 필요가 없게 되어 시스템이 간략되 되는 효과가 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라 구체적으로 설명하였지만 본 발명은 상기 실시예에 한정되는 것은 아니고 그 요지를 이탈하지 않는 범위에서 여러가지 변경 간으한 것을 물론이다. 예를 들면, 상기 실시예에서는 코프로세서 지정 영역을 인터럽트시에 세이브 가능한 상태 레지스터에 마련하고 있지만 상태 레지스터중 세이브 되지 않는 영역 더 나아가서는 상태 레지스터 이외의 제어 레지스터에 마련하도록 하는 것도 가능하다.
이상의 설명에서는 주 본 발명자에 의해서 이루어진 발명은 그 배경이 된 이용 분야인 마이크로 프로세서에 적용된 것에 대해서 설명하였지만 본 발명은 그것에 한정되는 것은 아니고 범용 프로세서 형태의 데이타 처리 장치 일반에 이용할 수가 있다.
Claims (13)
- 마이크로 컴퓨터, 어드레스 버스 수단, 데이타 버스 수단 및 여러개의 코프로세서를 갖는 데이타 처리 시스템으로서, 상기 마이크로 컴퓨터는 명령을 실행하기 위한 명령 실행 수단, 상기 명령 실행 수단을 제어하기 위한 제어 수단, 상기 마이크로 컴퓨터의 상태를 나타내고, 상기 어드레스 버스 수단에 결합되고, 사용자에 의해 리라이트 되는 상기 여러개의 코프로세서의 적어도 하나를 나타내기 위한 지정 데이타를 저장하기 위한 제1저장 수단, 상기 데이타 버스 수단에 결합되고, 상기 지정된 코프로세서에 처리되어야 할 커맨드 데이타를 저장하기 위한 제2저장 수단을 갖는 마이크로 컴퓨터로서, 상기 지정 데이타는 여러개의 비트에 의해 형성되고, 상기 어드레스 버스 수단은 상기 마이크로 컴퓨터를 상기 여러개의 코프로세서에 결합시키고, 상기 여러개의 코프로세서에 상기 지정 데이타를 공급하고, 상기 마이크로 컴퓨터와 여러개의 코프로세서를 결합하는 상기 데이타 버스 수단은 상기 여러개의 코프로세서에 상기 커맨드 데이타를 공급하고, 상기 여러개의 코프로세서의 각각은 식별 코드를 갖고, 또 상기 여러개의 코프로세서의 각각은 상기 마이크로 컴퓨터에서 공급된 상기 지정 데이타가 상기 식별 코드에 대응할때 상기 마이크로 컴퓨터에서 공급된 상기 커맨드 데이타를 선택적으로 페치하기 위한 수단을 갖는 데이타 처리 시스템.
- 특허청구의 범위 제1항에 있어서, 상기 커맨드 데이타는 상기 제어 수단에 의해 상기 제2저장 수단의 소정 위치에 저장되는 데이타 처리 시스템.
- 특허청구의 범위 제2항에 있어서, 상기 제1저장 수단은 레지스터를 갖는 데이타 처리 시스템.
- 마이크로 프로세서와 여러개의 코프로세서를 갖는 컴퓨터 시스템으로서, 상기 마이크로 프로세서는 명령을 실행하기 위한 명령 실행 수단, 상기 명령 실행 수단을 제어하기 위한 제어 수단, 사용자에 의해 리드 라이트가 실행되는 상기 여러개의 코프로세서의 적어도 하나를 나타내기 위한 지정 데이타를 갖고, 상기 마이크로 프로세서내의 상태를 나타내기 위한 제1저장수단, 상기 지정 데이타에 따라 상기 지정된 적어도 하나의 코프로세서에서 처리되어야 할 커맨드 데이타를 저장하기 위한 제2저장 수단, 상기 제2저장 수단과 상기 여러개의 코프로세서에 결합되는 여러개의 제1외부 단자, 상기 제1저장 수단과 상기 여러개의 코프로세서에 결합되는 여러개의 제2외부 단자를 갖고, 상기 여러개의 코프로세서의 각각은 상기 여러개의 제2마이크로 프로세서사이에서 구별하기 위한 식별 코드를 갖는 것으로서, 하나의 코프로세서를 지정하는 방법으로서, (a) 상기 제1저장 수단에 상기 지정 데이타를 저장하는 스텝, (b) 상기 제2저장 수단에 상기 커맨드 데이타를 저장하는 스텝, (c) 상기 제2외부 단자를 거쳐 상기 여러개의 코프로세서에 상기 지정 데이타를 전송하고 상기 제1외부 단자를 거쳐서 상기 여러개의 코프로세서에 상기 커맨드 데이타를 전송하는 스텝, (d) 상기 각각의 코프로세서에서 상기 전송된 지정 데이타와 상기 식별 코드를 비교하고 이것에 의해 상기 여러개의 코프로세서에 적어도 하나의 코프로세서를 선택하는 스텝, (e) 상기 지정된 코프로세서가 사기 여러개의 제1외부 단자로부터의 상기 커맨드 데이타를 페치하는 스텝을 갖는 코프로세서 지정 방법.
- 특허청구의 범위 제4항에 있어서, 또 상기 여러개의 제1외부 단자와 상기 여러개의 코프로세서를 직접 결합하는 데이타 버스에서 상기 커맨드를 데이타를 라이트하는 스텝, 상기 여러개의 제2외부 단자와 상기 여러개의 코프로세서를 직접 결합하는 여러개의 어드레스 신호선에서 상기 지정 데이타를 라이트하는 스텝을 갖는 코프로세서 지정 방법.
- 특허청구의 범위 제5항에 있어서, 상기 스텝(a)와 (b)는 서로 동기하여 실행되고, 상기 스텝(c)도 또 서로 동기하여 실행되는 코프로세서 지정 방법.
- 특허청구의 범위 제2항에 있어서, 상기 제1저장 수단은 레지스터를 갖는 코프로세서 지정 방법.
- 제1마이크로 프로세서와 여러개의 제2마이크로 프로세서로 이루어지는 마이크로 프로세서 시스템으로서, 상기 제1마이크로 프로세서는 (i) 커맨드 데이타를 저장하기 위한 제1메모리 수단, (ii) 사용자에 의해 리라이트 되고, 지정 데이타를 저장하는 부분을 가지며, 내부의 상태를 나타내기 위한 제2메모리 수단, (iii) 상기 마이크로 프로세서 시스템내의 여러개의 제2마이크로 프로세서에 상기 커맨드 데이타와 상기 지정 데이타를 송신하기 위한 수단을 갖고, 상기 여러개의 제2마이크로 프로세서의 각각은 (i) 상기 여러개의 제2마이크로 프로세서사이에서 구별하기 위한 식별 코드를 갖고, (ii) 상기 식별 코드가 상기 제1마이크로 프로세서에서 보내진 상기 지정 데이타에 대응할 때 상기 제1마이크로 프로세서에서 보내진 상기 커맨드 데이타를 페치하기 위한 수단을 갖는 마이크로 프로세서 시스템.
- 특허청구의 범위 제8항에 있어서, 상기 제2메모리 수단은 레지스터를 갖는 마이크로 프로세서 시스템.
- 제1마이크로 프로세서, 제1식별 코드를 갖는 제2마이크로 프로세서, 제2식별 코들 갖는 제3마이크로 프로세서, 제1, 제2 및 제3마이크로 프로세서를 결합하기 위한 여러개의 어드레스선과 데이타 버스를 갖는 마이크로 프로세서 시스템으로서, 상기 제1마이크로 프로세서는 상기 여러개의 어드레스선에 결합되는 제1저장수단과 상기 데이타 버스에 결합되는 제2저장 수단을 갖고, 상기 제1저장수단은 사용자에 의해 리라이트되는 상기 제2 및 제3마이크로 프로세서의 한쪽을 지정하기 위한 지정 데이타를 저장하고, 상기 제2저장 수단은 상기 지정한 마이크로 프로세서에 의해 실행하기 위한 커맨드 데이타를 저장하기 위한 것을 갖는 마이크로프로세서 시스템.
- 특허청구의 범위 제10항에 있어서, 상기 제2마이크로 프로세서는 상기 제2마이크로 프로세서를 지정하는 제2프로세서 지정 데이타에 따라 상기 커맨드 데이타를 선택적으로 받기 위한 수단을 갖고, 상기 제3마이크로 프로세서는 상기 제3마이크로 프로세서를 지정하는 제3프로세서 지정 데이타에 따라 상기 커맨드 데이타를 선택적으로 받기 위한 수단을 갖는 마이크로 프로세서 시스템.
- 각각의 코프로세서는 식별 코드를 갖고, 마이크로 프로세서에 결합되는 여러개의 코프로세서중의 하나를 지정하기 위한 방법으로서, (a) 상기 마이크로 프로세서에 의해 저장 수단에서 여러개의 코프로세서 명령을 리드하기 위한 스텝, (b) 상기 마이크로 프로세서와 상기 여러개의 코프로세서에 결합된 제1버스에 상기 리드된 여러개의 코프로세서 명령을 전송하기 위한 스텝, (c) 상기 여러개의 코프로세서의 하나를 지정하는 소정 지정 데이타를 사용자에 의해 리라이트되고 상기 마이크로 프로세서의 상태를 나타내기 위한 레지스터내의 영역에 유지하는 스텝, (d) 제2버스를 거쳐서 상기 여러개의 코프로세서에 상기 상태 레지스터내의 영역에서 상기 지정 데이타를 전송하기 위한 스텝, (e) 소정 코프로세서내의 상기 식별 코드가 상기 전송된 지정 데이타에 대응할때 소정 코프로세서내의 상기 여러개의 코프로세서 명령을 선택적으로 페치하기 위한 스텝을 갖는 코프로세서 지정 방법.
- 특허청구의 범위 제12항에 있어서, 스텝(b)와 스텝(d)는 정기적으로 실행하는 코프로세서 지정 방법.
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)
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)
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 |
-
1987
- 1987-04-20 JP JP62095180A patent/JPS63261449A/ja active Pending
-
1988
- 1988-03-28 KR KR1019880003371A patent/KR970003321B1/ko not_active IP Right Cessation
-
1991
- 1991-03-28 US US07/678,906 patent/US5125095A/en not_active Expired - Fee Related
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 |