KR950008225B1 - 마이크로프로세서 시스템 - Google Patents

마이크로프로세서 시스템 Download PDF

Info

Publication number
KR950008225B1
KR950008225B1 KR1019870007807A KR870007807A KR950008225B1 KR 950008225 B1 KR950008225 B1 KR 950008225B1 KR 1019870007807 A KR1019870007807 A KR 1019870007807A KR 870007807 A KR870007807 A KR 870007807A KR 950008225 B1 KR950008225 B1 KR 950008225B1
Authority
KR
South Korea
Prior art keywords
processor
data
data transfer
bit
command
Prior art date
Application number
KR1019870007807A
Other languages
English (en)
Other versions
KR880004383A (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 KR880004383A publication Critical patent/KR880004383A/ko
Application granted granted Critical
Publication of KR950008225B1 publication Critical patent/KR950008225B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

내용 없음.

Description

마이크로프로세서 시스템
제1도는 본 발명에 관한 마이크로프로세서 시스템의 1실시예의 블럭도.
제2도는 마스터프로세서에 포함되는 수행 장치의 일례.
제3도는 코-프로세서에 포함되는 수행장치의 일례
제4도는 마스터프로세서가 페치하는 실질적으로 코-프로세서를 위한 데이타 전송 명령의 일예의 포매트.
제5도는 마스터프로세서가 생성하는 코-프로세서를 위한 코맨드의 일예의 포매트.
제6도는 데이타 전송할때에 마스터프로세서의 동작을 설명하는 플로우 챠트.
제7도는 데이타 전송할때에 코-프로세서의 동작을 설명하는 플로우 챠트.
본 발명은 마이크로프로세서 시스템, 더 나아가서는 거기에 있어서의 데이타 전송 제어 기술에 관하여, 예를들면, 코-프로세서(co-processor)에 포함되는 여러 개의 레지스터와 외부 데이타 격납 수단의 사이에 있어서 데이타 전송 제어에 적용해서 유효한 기술에 관한 것이다.
코-프로세서는, 범용 데이타 프로세서와 같은 마스터프로세서 (master processor)에 결합되어, 레지스터 세트나 명령 세트를 확장 가능하게 하여, 프로세서에 새로운 처리 능력을 부가하는 프로세서이다.
마스터프로세서와 코-프로세서의 인터페이스(inter-face)방식으로서는 코-프로세서가 마스터프로세서의 명령 실행 상태를 스테이터스(status)신호에 의해서 감시하고 코-프로세서용의 명령을 검출하면 그 명령을 코-프로세서가 실행하도록 하고, 그 명령의 실행할때에 버스 액세스(bus access)를 필요로 할 때에는, 코-프로세서가 로컬 버스 마스터 (local bus master)로써 마스터프로세서를 대신하여 버스 액세스 사이클을 발생시키는 방식이 있다. 또 다른 방식으로서는, 마스터프로세서가 코-프로세서 명령을 검출하도록 하여, 코-프로세서에 대한 코맨드(command)의 전송이나, 메모리와 코-프로세서의 사이의 데이타 전송등, 모든 버스 사이클을 마스터프로세서가 실행하는 방식이 있다. 코-프로세서에 대해서 기재된 문헌으로서는, 1984년 11월 30일 오옴사 발행의 「LSI Hand books p558 및 p559, 1986년 12월 25일 오옴사의 발생의 「Micro computer Hand book」p680 및 p681이 있다.
본 발명자들은, 상기한 것과 같이 마스터프로세서가 코-프로세서를 위해 예를들면 메모리에 대한 어드레스 신호의 송출등의 동작을 포함하는 버스 액세스 사이클을 시행하는 시스템에 있어서, 코-프로세서가 마스터프로세서나 메모리 사이에서 여러개의 데이타의 전송을 행하는 경우에 대해서 검로했다. 거기에 의하면, 마스터프로세서가 버스 액세스 사이클의 발생과 제어를 행하는 한편, 코-프로세서가 실제 데이타 통신을 행하지 않으면 안되는 성질상, 일련의 데이타 전송수를 마스터프로세서만이 인식해서 관리하는 경우에는 마스터프로세서는, 1회의 데이타 전송마다 코-프로세서에 코맨드를 발생하지 않으면 안되고, 그것에 의해서, 코맨드 발행 회수의 증대에 의해서 일련의 데이타 전송 효율이 낮게 되는 것이 명확해졌다. 또, 마찬가지의 이유에 의해, 일련의 데이타 전송수를 코-프로세서만이 인식하여 관리하는 경우에는, 마스터프로세서는 필요한 전송 사이를이 끝났는가 아닌가를 그 자체에서 알 수가 없으므로, 일련의 데이타 잔송 사이클의 종류를 지시하는 정보를 코-프로세서에서 얻어지 않으면 안된다. 그렇게 하면, 해당 정보의 전달이 로컬신호선이나 데이타 입출력 버퍼에 있어서 바람직하지 않게 늦어져, 혜당 일련의 데이타 전송의 다음에 필요한 동작의 개시가 늦어져서, 시스템 전체의 동작 효율이 저하한다는 문제점이 명백해졌다.
본 발명의 목적은, 마스터프로세서가 코-프로세를 위한 버스 액세스 사이클을 제어하는 시스템에 있어서, 코-프로세서가 개재하는 데이타 전송 효율을 향상시킬 수 있는 시스템을 제공하는데 있다.
본 발명의 상기 및 그 이외의 목적과 새로운 특징에 대해서는, 본 명세서의 기술 및 첨부 또 면에서 명확하게 될 것이다.
본 출원에 개시되는 발명중 대표적인 것의 개요를 간단하게 설명하면 다음과 같다.
즉, 마스터프로세서가 기동하는 버스 액세스 사이클에 따라서, 코-프로세서가 일련의 여러개의 데이터를 마스터프로세서나 메모리등의 사이에서 주고 받을때, 코-프로세서는, 그 내부에 있어서 데이타 전송원,(source) 또는 데이타 전송선(destination)으로 되는 데이타 격납위치를 표시하는 정보가 주어짐과 동시에, 마스터프로세서 및 코-프로세서는 모두 독립하여, 일련의 데이타 전송 동작의 종료를 감시한다. 이때, 마스터프로세서에 의한 버스 액세스 사이클에 필요한 정보는 데이타 전송 명령에 포함시킬 수가 있고, 또 해당 데이타 전송 명령에 포함되는 정보를 코-프로세서에 데이타 전송용 코맨드로서 부여할 수가 있다. 그경우에, 마스터프로세서 및 코-프로세서가 모두 독립해서 감시하는 일련의 데이타 전송 동작의 종료는, 상기 데이타 전송 명령 및 데이타 전송 코맨드의 양쪽에 포함되는 코-프로세서내의 여러개의 데이타 격납 위치를 표시하는 필드의 정보에 따라서 부여할 수가 있다.
따라서, 코 프로세서가 일련의 여러개의 데이타 전송 동작을 실행할때, 코-프로세서는 1개의 데이터를 전송할때마다 마스터프로세서에서 코맨드를 받을 필요도 없고, 또 코-프로세서는 일련의 데이타 전송 사이클의 종료를 마스터프로세서에 지시할 필요도 없다. 이것에 의해, 마스터프로세서가 버스 액세스 사이클의, 발생과 제어를 행하는 한편, 코-프로세서가 실제 데이타 통신을 행하는 경우에, 일련의 데이타 전송수를 마스터프로세서만이 인식하여 관리하는 경우에 발생하는 코맨드 발행회수의 중대에 의한 데이타 전송 효율의 저하라는 사태의 방지를 달성한다. 또 일련의 데이타 전송수를 코-프로세서만이 인식해서 관리하는 경우에 발생하는 일련의 데이타 전송 사이클의 종료 지시가 바람직하지 못하게 지연되어서 마스터 코-프로세서에 부여되는 사태의 방지를 달성한다. 그 결과, 일련의 데이타가 전송 효율의 향상, 또, 해당 데이타 전송 동작의 다음에 필요한 동작을 즉시 개시 가능하게 하여, 시스템 전체의 동작 효율 향상이 달성된다.
제1도에 도시되는 마이크로프로세서는 시스템은, 특히 제한되진 않지만, 범용 프로세서와 같은 마스터프로세서(1)과, 부동 소수점 연산이나 초월함수의 다정밀도 연산등의 기능을 갖는 코-프로세서(2)가, 로컬버스(3)에 의해서 일정하게 결합되어 구성된다. 로컬 버스(3)은, 시스템 인터페이스(4)를 거쳐서 시스템 버스(5)에 결합되어 있다. 제1도에 있어서, 상기 시스템 버스(5)에는, 특히 제한되진 않지만, RAM(random access memory)에 의해서 구성되는 메모리(6)가 대표적으로 결합되어 있다.
시스템측에서 공급되는 기계의 명령과 같은 매크로(macro)명령은 상기 마스터프로세서(1)가 페치(fetch)하여, 페치한 명령이 코-프로세서 명령인 경우에는, 특히 제한되진 않지만, 마스터프로세서(1)는, 해당 명령에서 코-프로세서(2)에 대해서 필요한 필드를 절단하여 생성한 코맨드를 코-프로세서 (2)에 부여하도록 되어 있다.
마스터프로세서(1)는, 코-프로세서(2)에 대한 코맨드의 전송이나, 메모리(6)와 코-프로세서(2)의 사이의 데이타 전송등을 할때, 모든 버스 사이클을 제어한다.
상기 마스터프로세서(1)는, 마이크로프로그램이 격납된 마이크로 ROM(7)이 마련되어 있다. 이 마이크소ROM(7)은, 마이크로 어드레스 데코더 (8)에 의해서 액세스되어, 마이크로프로그램을 구성하는 마이크로 명령이 차례로 리드된다.
제1도에 있어서, (9)는 파이프라인(pipeline)처리 흑은 명령 프리페치(prefetch)제어에 따라서 매크로 명령을 프리페치히는 FIFO(first in first out)레지스터 (도시하지 않음)를 포함하는 명령 페치부이다. 상기 마이크로 어드레스 데코더 (8)에는, 명령 페치부(9)에 페치된 매크로 명령의 연산 코드가 명령 데로더(10)에서 데코드해서 얻어지는 어드레스 신호가 공급된다. 마이크로 어드레스 데코더 (8)는, 이 어드레스 신호를 데코드하는 것에 의해서 그 매크로 명령을 실행하기 위해 일련의 마이크로 명령군의 선두의 명령을 상기 마이크로 ROM(7)에서 리드한다. 이와가이 하여 리드된 마이크로 명령은, 마이크로 명령 데코더 (11)에 공급되어 해독되고, 그것에 의해서, 마이크로 명령 데코더 (11)는, 해당 명령의 실행에 필요한 제어 신호를 수행 장치(12)등에 공급한다.
매크로 명령에 대응하는 일련의 마이크로 명령군중 2번째 이후의 마이크로 명령은, 바로전에 리드된 마이크로 명령의 다음의 어드레스 필드의 코드가 명령 데코더(10)에 공급되는 것에 의해서 지시된다. 명령 데코더(10)는, 매크로 명령과, 마이크로 명령에 포함되는 다음의 어드레스 필드의 코드의 어느 것인가를 선택해서 출력하기 위한 멀티플렉서(multiplexer) (도시하지 않음)를 포함하고 있으며, 차례로 선택되는 다음의 어드레스 필드의 코드에 따라서 차례로 마이크로 ROM(7)에서 리드되는 마이크로 명령 및 그것에 대응하는 제어신호에 의해서 상기 수행 장치 (12)등의 동작이 소정의 번호순에 따라서 제어된다.
이것에 의해서, 전송 명령이나 산술 명령등의 1개의 매크로 명령이 실행된다. 이 마스터프로세서(1)은 입출력 장치 (13)를 거쳐서 상기 로컬 버스(3)에 결합되어 있다.
상기 코-프로세서 (2)는, 입출력 창치 (14)를 거쳐서 상기 로컬 버스(3)에 결합되어 있다. 이 코-프로세서(2)에는 마이크로프로그램이 격납된 마이크로 RAM(15)이 마련되어 있다. 이 마이크로 RAM(15)은 마이크로 어드레스 데코더(16)에 의해서 액세스되어, 마이크로프로그램을 구성하는 마이크로 명령아 차례로 리드된다.
제1도에 있어서 (17)은 상기 마스터프로세서(1)에 의해서 생성된 코맨드를 페치하는 코맨드 페치부이다.
상기 마이크로 어드레스 데코더(16)에는, 코맨드 페치부(17)에 페치된 코맨드의 연선 코드가 코맨드 데코더(18)에서 데코드하여 얻어지는 어드레스 신호가 공급된다.
마이크로 어드레스 데코더(16)는, 이 어드레스 신호를 데코드하는 것에 의해서 그 코맨드를 실행하기 위한 일련의 마이크로 명령군의 선두의 명령을 상기 마이크로 RAM(15)에서 리드한다. 이와같이 해서 리드된 마이크로 명령은, 마이크로 명령 데코더(19)의 공급되어 해독되고, 그것에 의해서, 마이크로 명령 데코더(19)는, 해당 마이크로 명령의 실행에 필요한 제어신호를 수행장치(20)등에 공급한다.
코맨드에 대응하는 일련의 마이크로 명령군중 2번째 이후의 마이크로 명령은, 바로전에 리드된 마이크로 명령의 다음 어드레스 필드의 코드가 코맨드 데코더(18)에 공급되는 것에 의해서 지시된다. 코맨드 데코더(18)는 마스터프로세서 (1)에서 주어지는 코맨드와, 마이크로 명령에 포함되는 다음의 어드레스 필드의 코드의 어느쪽인가를 선택해서 출력하기 위한 멀티플렉서(도시하지 않음)를 포함하고 있으며, 차례로 선택는 다음의 어드레스 필드의 코드에 따라서 차례로 마이크로 ROM(15)에서 리드되는 마이크로 명령 및 그것에 대응하는 제어신호에 의해서 상기 수행 장치 (20)등의 동작이 소정의 번호순에 따라 제어된다.
이것에 의해서, 코-프로세서(2)는, 마스터프로세서(1)에서 주어지는 데이타 전송이나 산술 연산등에 관한 1개의 코맨드를 실행한다. 이때 필요로 되는 버스 액세스 사이클의 제어는 마스터프로세서(1)가 실행한다.
상기 마스터프로세서 (1)에 포함되는 수행장치(12)는, 예를들면 제2도에 도시되는 구성을 갖는 갖는다.
즉, 상기 입출력 장치(13)에 접속된 데이타 입력 레지스터(21) 및 데이타 출력 레지스터 (22)에 결합된 4줄의 내부 버스에, 제1연산기(23), 오직 어드레스 연산에 할당된 제2연산기(24), 배럴 시프터 (barrel shifter) (25), 여러개의 일시 레지스터와 같은 범용 레지스터가 포함되는 범용 레지스터군(26) 및 프로그램 카운터나 스테이터스 레지스터 또 스택 포인터(stack pointer) 등이 포함되는 특수 레지스터군(27)이 결합되어 있다.
상기 범용 레지스터군(26)에 대한 레지스터의 지정은 레지스터 지정 회로(28)가 행한다. 레지스터 지정회로(28)에 있어서 레지스터의 지정 방식을 2가지가 있다. 제1의 지정 방식은, 명령에 포함되는 레지스터 지정 필드의 정보에 따르는 지정이다. 제2의 지정 방식은, 명령에 포함되는 다수의 범용 레지스터를 지정하기 위한 정보인 레지스터 리스트(list)를 데코드하는 파인드 퍼스트 원(find first one) 회로(29)의 출력에 따르는 지정이다. 또한, 레지스터 리스트 및 파인드 퍼스트 원 회로(29)에 대해서는 그 상세한 것은 다음에 설명한다.
제2도에 있어서, (30)은 명령 필드 슬라이드(slice)부이다. 이 명령 필드 슬라이스부(30)는, 명령 페치부(9)에 페치된 명령이 코-프로세서를 위한 명령일때, 해당 명령에서 소정의 필드를 슬라이스해서 코-프로세서(2)를 위한 코맨드를 생성한다. 또, 명령에 포함되어 있는 이미디에이트 데이타(immediate data), 메모리 어드레스 지정 정보, 또 상기 레지스터 리스트등을 슬라이스해서, 상기 제1연산기 (23), 제2연산기(24), 그리고 상기 파인드 퍼스트 원 회로(29)등에 공급한다. 또 명령 데코더(10)를 거쳐서, 전송이나 연산하여야할 데이타의 크기에 대한 정보, 또 데이타의 리드 라이트에 관한 정보등이 주어진다.
상기 코-프로세서(2)에 포함되는 수행 장치(20)는, 예를들면 제3도에 도시되는 구성이 포함되어 있다.
즉, 상기 입출력 장치(14)에 연결되는 3줄의 내부 버스에, 연산기 (31), 여러개의 일시 레지스터와 같은 범용 레지스터가 포함되는 범용 레지스터군(32)가 결합된다. 상기 범용 레지스터군(32)에 대한 레지스터의 지정은 레지스터지정 회로(33)가 행한다. 레지스터 지정회로(33)에 있어서 레지스터의 지정 방식은, 마스터프로세서(1)에서 주어지는 코맨드에 포함되는 레지스터 지정 필드의 정보에 따른 지정과, 코맨드에 포함되는 다수의 레지스터를 지정하기 위한 정보인 레지스터 리스트를 데코드하는 파인드 파스트 원 회로(34)의 출력에 따른 지정의 2가지가 있다. 이 파인드 퍼스트 원 회로(34)에 대해서도 그 상세한 것은 다음에 설명한다.
또한, 도시하지 않았지만, 이 수행장치(20)에도, 코맨드 필드의 슬라이스부나 각종 제어 레지스터등이 마련되어 있다.
마스터프로세서(1)에 의한 코-프로세서(2)의 동작 선택은 마스터프로세서(1)가 코-프로세서(2)를 위한 명령을 페치했을때, 코-프로세서(2)에 할당된 어드레스 신호를 어드레스 데코더(35) (제3도 참조)에 출력하고, 그 어드레스 데코더 (35)에서 출력되는 선택신호에 따라서 행하여진다. 코-프로세서(2)는, 그 동작이 선택되면, 마스터프로세서(1)에서 공급되는 코맨드를 페치해서, 해당 코맨드의 실행 가능한 상태로 제어된다.
여기에서, 마스터프로세서(1)가 기동하는 버스 액세스 사이클에 따라서, 코-프로세서(2)가 데이타의 입출력을 행하고, 데이타 전송의 형태에 대해서 설명한다.
이 데이타 전송 형태는, 특히 제한되진 않지만, 다음에 나타내는 5개의 형태로 된다.
(1) 코-프로세서(2)가 마스터프로세서(1)에서 코맨드나 명령 어드레스를 받는다.
(2) 코-프로세서(2)가 마스터프로세서(1)에서 코맨드나 명령 어드레스 이외의 데이타를 받는다.
(3) 코-프로세서(2)가 마스터프로세서(1)에 데이타를 전송한다.
(4) 코-프로세서(2)가 메모리(6)에 데이타를 라이트한다.
(5) 코-프로세서(2)가 메모라(6)에서 데이타를 받는다. 상기 각 형태의 데이타 전송을 할때에는, 제1도에 도시된 것과 같이, 어드레스 신호 ADRS, 어드레스 신호 ADRS의 출력 확정을 표시한 어드레스 스트로브(strobe)신호 AS 및 데이타 전송의 방향을 표시한 리드 라인트 신호 R/W는, 마스터프로세서 (1)에서 출력된다. 즉 각종 데이타 전송할때에 마스터프로세서(1)가 버스 액세스 사이클의 기동 및 제어를 행한다. 마스터프로세서 (1)가 버스 액세스 사이클을 기동할때, 마스터프로세서(1)는, 그때의 전송 대상이 코맨드인가, 명령 어드레스인가, 또 그 이외의 데이타인가 등을 식별가능하게 하기 위한 액세스 타이프 신호 AT를 출력한다. 전송 대상으로 되는 데이타 DATA는, 마스터프로세서(1) 및 코-프로세서(2)에 있어서 명령이나 코맨드의 실행 내용에 따라서, 마스터프로세서(1), 코-프로세서(2) 및 메모리(6)등의 사이에저 주고 받게된다. 또한 상기 명령 어드레스는, 코-프로세서 (2)가 실행하는 코맨드에 대응하는 매크로 명령의 어드레스이다. 마스터프로세서 (1)는 파이프라인 처리를 행하기 때문에, 코-프로세서 (2)에 발행한 코맨드에 대응하는 명령 어드레스를 그 자신이 유지할 수가 없다. 코-프로세서 (2)가 이 명령 어드레스를 유자하는 것에 의해, 코맨드 실행에 대해서 에러(error)가 발생한 경우의 다음 처리나 예외 처리를 원만한 실행이 가능하다.
데이타의 전송할때에는, 제1도에 도시된 것과 같이, 1개의 데이타의 전송이 완료한 것을 의미하는 아크노리지(acknowledge)신호 ACK가 전달된다. 이 아크노리지 ACK는, 특히 제한되진 않지만, 상기 전송 형태(1), (2), (3)에 있어서는 코-프로세서(2)가 출력하고, 그것을 마스터프로세서(1)가 인식한다. 마스터프로세서 (1)가 액티브 레벨(active level) (전송 완료를 지시하는 레벨)의 아크노리지 ACK를 검출하면, 해당 데이타 전송 사이클을 종료시킨다. 또, 상기 전송 형태(4), (5)에 있어서는 메모리(6)가 아크노리지 신호ACK를 출력하고, 그것을 마스터프로세서 (1) 및 코-프로세서(2)가 모두 인식하도록 되어 있다. 이 경우 마스터프로세서 (1)가 액티브 레벨의 아크노리지 신호 ACK를 검출하면, 소정의 타이밍으로 해당 데이타 전송 사이클을 위한 버스 액세스 사이클을 종료시킨다. 또, 코-프로세서(2)는 액티브 레벨의 아크노리지 신호 ACK를 검출하는 것에 의해서, 해당 데이타 전송 사이클을 위한 동작을 소정의 타이밍으로 종료한다.
특히, 상기 데이타 전송 형태(5)의 경우에는, 코-프로세서 (2)는, 액티브 레벨의 아크노리지 신호 ACK를 검출하는 것에 의해서, 메모리 (6)에서 리드된 데이타를 내부에 페치한다.
마스터프로세서(1)와 코-프로세서(2)는 특히 제한되진 않지만, 동일한 클럭(clock)신호를 사용해서 또 기동작하도록 되어 있다. 그 경우에, 코-프로세서(2)가 마스터프로세서(1)나 메모리(6)에 데이타를 라이트 할때, 마스터프로세서(1)가 제어하는 버스 액세스 사이클에 호응하는 타이밍으로 코-프로세서 2가 필요한 데이타를 출력 가능하게 고려하여, 바꾸어 말하면, 코-프로세서(2)가 데이타 전송원으로 되는 라이트 사이클에 있어서는, 마스터프로세서(1)가 데이타 전송원으로 되는 타이트 사이클과 같은 타이밍으로 필요한 데이타를 출력 가능하게 하는 고려가 되어 있다. 즉 제1도에 도시되는 것과 같이, 마스터프로세서(1)는, 코-프로세서(2)가 데이타 전송원으로 되는 라이트 사이클의 개시를 코-프로세서 데이타 인에이블 신호 CDE에 의해서 코-프로세서(2)에 주어진다. 만약 코-프로세서(2)가 상기 어드레스 스트로브 신호 AS와 리드 라이트 신호 R/W에 의해서 그 라이트 사이클의 개시를 판별할 경우에는, 전송선 어드레스가 버스상에서 확정된 후가 아니면, 코-프로세서(2)는 라이트 사이클인가 아닌가를 판별하는 동작을 실질적으로 개시할 수 가 없어, 필요한 데이타의 출력 타이밍이 늦어지게 된다.
마스터프로세서(1)와 코-프로세서(2)의 스테이터스 인터페이스는, 코-프로세서 스테이터스 CPST에 의해서 주어진다. 코-프로세서 스테이터스 CPST는, 특히 제한되진 않지만, 코-프로세서(2)에 의한 코맨드의 수신을 의미하는 코맨드 억셉트(accept), 코-프로세서 (2)에 의한 코맨드 실행중인 것을 의미하는 비지(busy), 코-프로세서(2)에 의한 전송할 데이타가 크기나 형의 변환을 완료한 것을 의미하는 데이타 래디(ready), 코맨드 실행할 때에 데이타의 오버플로우(overflow)등 에러의 발생을 의미하는 에러 발생의 4종류로 된다.
본 실시예의 코-프로세서 시스템은, 데이타 전송 명령, 산술 연산 명령, 분기 명령등 여러가지의 명령을 실행하지만, 특히 본 발명에 직접 관계하는, 레지스터 리스트를 포함하는 명령에 대해서 설명한다.
제4도에 도시하는 명령 포매트는, 실질적으로 코-프로세서(2)가 실행하여야할 데이타 전송 명령의 포매트의 일례이다. 이 명령은, 레지스터 리스트에서 지정되는 코-프로세서(2)내의 여러개의 범용 레지스터와, 메모리(6)와의 사이에 데이타 전송을 행하는 것을 지시하는 명령이다. 해당 명령은, 실질적으로 코-프로세서 (2)가 실행하여야할 명령인 것을 지시하기 위한 명령 귀속 지정 필드 BDF, 연산의 내용인 연산코드가 지정되는 연산 코드 지정 필드 OP, 소오스 오퍼런드(source operand)의 데이타 크기를 지정하기 위한 크기 지정 필드 SZ, 리드 또는 라이트 동작을 지정하는 디렉션(direction) 필드 DF, 소오스 또는 디스티네이션(destination)으로 되어야할 메모리의 선두 어드레스를 지정하기 위한 어드레스지정 필드 EA 및 메모리와의 사이에서 데이타 전송되어야 할 여러개의 범용 레지스터를 지정하기 위한 레지스터 리스트 RL이 포함되어 있다.
상기 레지스터 리스트 RL은, 특히 제한되진 않지만, 상기 범용 레지스터군(32)에 포함되는 16개의 범용레지스터에 1비트씩 번호순으로 할당된 1바이트의 필드로 구성 되어 있고, 해당 필드의 소정 비트가 「1」인 경우에는, 해당 비트에 대응하는 범용 레지스터의 지정을 의미한다.
제4도에 도시되는 명령이 마스터 프로세서(1)에 페치되어, 그 명령 귀속 지정 필드 BDF의 데코드 결과에 따라서, 실질적으로 코-프로세서(2)의 실행하여야 할 데이타 전송 명령인 것이 검출되면, 상기 명령 필드 슬라이스부(30)가 제4도에 도시되는 소정의 명령 필드를 슬라이스해서 코-프로세서 (2)를 위한 코맨드를 생성한다. 이 코맨드는, 특히 제한되진 않지만, 제5도에 도시되는 것괴 같은 포매트를 가지며, 상기 연산 코드 지정 필드 OP, 크기 지정 필드 SZ 및 레지스터 리스트 RL에 의해서 구성된다.
마스터프로세서(1)의 내부에 있어서, 제4도에 도시되는 명령에서 슬라이스되든 레지스터 리스트 RL은 상기 파인드 퍼스트 원 회로(29)에 세트된다. 또, 코-프로세서(2)에 전송되는 제5도의 코맨드에 포함되는 레지스터 리스트 RL은, 코-프로세서(2)의 내부에서 슬라이스되어서 상기 파인드 퍼스트 원 회로(34)에 세트된다.
상기 파인드 퍼스트 원회로(29),(34)는 각각 레지스터 리스트 RL로 지정되어 있는 레지스타 번호에 따르는 데이타를, 데이타 전송 사이클마다 번호순으로 레지스터 지정회로(28), (34)에 공급해서, 레지스터 지정동작을 제어함과 동시에, 레지스터 리스트 RL로 지정되는 모든 범용 레지스터에 의한 일련의 데이타 전송 수 혹은 일련의 데이타 전송 동작의 종료를 감시한다. 구체적으로는, 레지스터 리스트 RL에 있어서, 「1」이 설정되어 있는 최상위 비트의 위치를 검출해서, 해당 검출 위치에 대응하는 레지스터의 번호에 따른 정보를 레지스터지정회로(28), (33)에 주어진다. 그리고, 데이타의 입출력이 실행된 후의 타이밍으로, 전회의 검출비트 「1」을 「0」으로 리라이트해서 레지스터 리스트 RL을 갱신한다. 이것에 의해서, 다음에 데이타 전송되어야할 범용 레지스터의 지정이 가능하게 된다. 또 레지스터 리스트 RL로 지정되는 모든 범용 레지스터에 대한 일련의 데이타 전송수 흑은 일련의 데이타 전송 동작의 종료를 감시하기 위하여, 레지스터 리스트 RL을 구성하는 비트가 전부 「0」인가 아닌가를 검출한다. 파인드 퍼스트 원 회로(29), (34)에 있어서, 레지스터 리스트 RL을 구서하는 모든 비트가 「0」인 것이 검출되면, 도시하지 않은 플래그(flag)레지스터가 세트되고 그것에 의해서, 마스터프로세서(1) 및 코-프로세서(2)는 서로 독립적으로 일련의 데이타 전송 명령 및 코맨드의 실행을 종료한다. 즉, 마스터프로세서(1)는 그것에 포함되는 파인드 퍼스트 원 회로(29)의 출력에 따라서, 코-프로세서(2)를 위한 일련의 오퍼런드 어드레스의 갱신처리를 정지하고 버스 액세스 사이클 기동을 위한 처리를 종료한다. 코-프로세서는, 그것에 포함되는 파인드 퍼스트 원 회로(34)의 출력에 따라서, 새로운 코맨드를 실행 가능한 것을 표시하는 스테이터스를 상기 코-프로세서 스테이러스 CPST에 의해서 마스터프로세서(1)에 주어진다.
다음에, 제4도에 도시되는 명령 및 제5도에 도시되는 코맨드에 따라서 상기 데이타 전송 형태(4),(5)에 분류되는 처리를 행하기 위한 마스터프로세서(1) 및 코-프로세서(2)에 의한 동작 순서를 제6도 및 제7도에 따라서 더욱 상세하게 설명한다. 제6도에는 마스터프로세서(1)의 동작 순서가 도시되고, 제7도에는 코-프로세서 (2)의 동작 순서가 도시된다.
제4도에 도시되는 데이타 전송 명령이 마스터프로세서(1)에 페치되면(스텝 Sml), 마스터프로세서 (1)는, 그 명령 코드에 포함되는 명령 귀속 지정 필드 BDF의 정보 및 연산 코드를 명령 데코더 (10)에서 데코드한다(스텝 Sm2), 그것에 의해서, 마스터프로세서 (1)는, 해당 명령은 실질적으로 코-프로세서 (2)가 실행하여야할 명령인 것을 인식함과 동시에, 마이크로 RAM(7)에서 차례로 마이크로 명령을 리드해서, 그 연산 코드에 따른 동작 순서를 실행한다.
즉, 먼저, 데이타 전송 명령에 포함되는 어드레스 지정필드 EA의 정보에 따라서 전송하여야할 최초의 오퍼런드 어드레스(메모리 6상의 어드레스)가 계산됨과 동시에, 명령 필드 슬라이스부(30)에 의해서 코-프로세서(2)를 위한 코맨드가 생성된다(스텝 Sm3). 이 코맨드를 제5도에 도시되는 포매트를 갖는 코맨드이다.
다음에, 그 코맨드가 로-프로세서(2)에 전송됨과 동시에(스텝 Sm4), 명령 필드 슬라이스부(30)에 의해서 슬라이스된 레지스터 리스트 RL이 파인드 퍼스트 원 회로(29)에 세트되고(스텝 Sm5), 그후에 코맨드의 전송 결과가 코-프로세서 스테이터스 CPST에 포함되는 비지 플래그 등에 의해서 판정되고(스텝 Sm6), 해당 코맨드의 받는 것이 완료될 때까지 상기 스텝 Sm4, Sm5, Sm6의 동작이 반복된다. 스텝 Sm6에 있어서, 코-프로세서(2)에 의한 코맨드 받는 것이 완료가 판별되면, 그후에 해당 명령의 어드레스가 마스터 프로세서(1)에서 코-프로세서(2)에 전송된다(스텝 Sm7). 코-프로세서(2)에 있어서는, 마스터프로세서(1)의 스텝 Sm4에서 전송된 코맨드가, 그 전송 타이밍에 동기해서 코맨드 페치부(17)에 접수되면(스텝 Scl), 코-프로세서(2)는, 그 코맨드에 포함되는 연산 코드를 코맨드 데코더(18)에서 데코드한다(스텝 Sc2). 그것에 의해서, 코-프로세서(2)는, 마이크로 ROM(15)에서 차례로 마이크로 명령을 리드해서, 그 연산 코드에 따른 동작 순서를 실행하게 되어, 먼저 상기 마스터프로세서(1)의 스텝 Sm7로 전송된 명령 어드레스가, 그 전송 타이밍에 동기해서 코-프로세서(2)에 수신됨과 동시에, 코-프로세서(2)의 내부로 로맨드에서 슬라이스된 레지스터 리스트 RL이 파인드 퍼스트 원회로(34)에 세트된다(스텝 Sc3). 그후, 마스터프로세서(1)에 있어서는 파인트 퍼스트 원 회로(29)에 세트된 레지스터 리스트 RL의 각 비트가 전부 「0」인가 아닌가의 판별이 행하여지고(스텝 Sm8), 그렇지 않은 경우에는, 코-프로세서(2)에 의한 오퍼런드 전송을 위한 버스 액세스 사이클의 발생과 그 제어가 행하여지고, 계속해서, 파인드 퍼스트 원 회로(29)에 있어서 레지스터 리스트 RL의 갱신에 행하여진다(스텝 Sm9). 여기에서, 코-프로세서(2)에 의한 오퍼런드 전송을 위한 버스 액세스 사이클의 발생과 그 제어는, 상기 스텝 Sm3에서 연산된 오퍼런드 어드레스의 출력 버스상에 있어서 해당 어드레스 신호의 확정에 호응한 어드레스 스트로브 신호 AS의 출력, 리드 라이트 신호 R/W의 출력등이다. 마스터프로세서(1)에 포함되는 파인드 퍼스트 원 회로(29)는, 레지스터 리스트 RL의 각 비트가 전부 「0」인가 아닌가, 즉 해당명령에 따른 일련의 데이타 전송이 전부 종료했는가 아닌가를 감시하여, 범용 레지스터를 지정하기 위한 제어 동작은 행하지 않는다. 또는 파인드 퍼스트 원 회로(29)의 데코드 결과는 레지스터 지정 회로(28)에 공급되지 않는다.
이때, 코-프로세서(2)에 있어서는, 마스터프로세서(1)와 마찬가지로 파인드 퍼스트 원 회로(34)에 세트된 레지스터 리스트 RL의 각 비트가 전부 「0」인가 아닌가의 판별이 행하여지고(스텝 Sc4), 그렇지 않은 경우에는, 상기 마스터프로세서(1)가 기동하는 버스 액세스 사이클에 따라서, 오퍼런드의 입력 또는 출력 제어가 행하여지고, 그것에 계속해서 파인드 퍼스트 원 회로(34)에 있어서 레지스터 리스트 RL의 갱신이 행하여진다(스텝 Sc5). 여기에서, 코-프로세서(2)에 의한 오퍼런드의 입출력 제어를 할때에, 파인드 퍼스트 원 회로(34)는 레지스터 리스트 RL에 있어서 「1」이 설정되어 있는 최상위 비트의 위치를 검출해서, 해당 검출 위치에 대응하는 레지스터의 번호에 따른 정보를 레지스터 지정 회로(33)에 부여하는 것에 의해서, 코-프로세서(2)내부에 있어서 오퍼런드를 출력하고 또는 오퍼런드를 입력하는 레지스터를 지정하는 동작을 제어한다. 또, 그때의 오퍼런드 전송 동작이 라이트 동작일때, 바꾸어 말하면, 코-프로세서(2)가 메모리에 데이타를 라이트할때에는, 코-프로세서 (2)에 의한 데이타 출력 타이밍은, 마스터프로세서(1)에서 출력되는 코-프로세서 데이타 인에이블 신호 CDE에 의해서 부여된다.
마스터프로세서(1)는, 버스 액세스 사이클의 발생후, 메모리(6)에서 출력되는 아크노리지 신호 ACK(메모리) (6)에서 데이타가 리드된 것, 또는 메모리(6)가 데이타를 라이트한 것을 의미한다)에 따라서 해당 사이클에 있어서 데이타 전송 동작이 완료했는가 아닌가를 판별하고(스텝 Sm10), 완료했다고 판단했을때에는, 오퍼런드 어드레스에 데이타 크기를 가산하고(스텝 Sm11), 다음의 버스 액세스 사이클의 기동에 대비한다. 한편 코-프로세서(2)는, 마찬가지로 메모리(6)에서 출력되는 아크노리지 신호 ACK에 따라서 해당 데이타 사이클에 있어서 데이타 전송 동작이 완료했는가 아닌가를 판별한(스텝 Sc9). 또한 코-프로세서(2)가 메모리(6)에서 전송되어 오는 데이타를 페치하는 경우(데이타 라이트 동작)에는, 상기 아코노리지 신호 ACK에 따라서 해당 전송 데이타를 상기 파인드 퍼스트 원 회로(34)에서 지정된 소정의 범용 레지스터로 페치된다.
마스터프로세서(1)는 스텝 Sm11의 다음에 스텝 Sm8로 되돌아가서, 갱신된 레지스터 리스트 RL의 모든비트가 「0」인가 아닌가를 판별한다. 바꾸어 말하면, 마스터프로세서(1)는, 코-프로세서(2)에 의한 데이터 전송 요소가 남아있는가, 즉 코-프로세서(2)를 위한 버스 액세스 사이클을 다시 기동할 필요가 있는가 없는가를 독자적으로 판별한다. 코-프로세서(2)는 스탭 Sc6의 다음에 스텝 Sc4로 되돌아가서, 갱신된 레지스터 리스트 RL의 모든 비트가 「0」인가 아닌가를 판별하고, 그렇지 않는 경우는, 다음의 데이타 전송에 이용되는 범용 레지스터의 지정에 이용된다.
이와 같이 해서 마스터프로세서(1) 및 코-프로세서(2)가 각각 독자적으로 데이타 전송 요소의 나머지를 판단하고, 또 데이타 전송이 필요하다고 판단한 경우에는, 상기와 마찬가지로, 마스터프로세서(1)가 버스액세스 사이클 기동하여, 기동된 버스 액세스 사이클에 따라서 코-프로세서(2)가 데이타의 주고받음을 행한다.
그리고, 마스터프론세서(1) 및 코-프로세서(2)가 각각 레지스터 리스트 RL의 모든 비트가 「0」이라고 판단했을때는, 서로 정보의 주고 받음을 행하지 않고 명령 및 코맨드의 실행을 종료한다.
상기 설명에 따르면, 다음의 효과를 얻을 수 있다.
(1) 마스터프로세서가 기동하는 버스 액세스 사이클에 따라서, 코-프로세서가, 일련의 여러개의 데이타를 마스터프로세서나 메모리등과의 사이에서 주고받을때, 코-프로세서는, 그 내부에 있어서 데이타 전송원 또는 데이타 전송선으로 되는 데이타가 격납 위치를 표시하는 정보가 주어짐과 동시에, 마스터프로세서 및 코-프로세서는, 함께 독립해서, 일련의 데이타 전송수 혹은 일련의 데이타 전송 동작의 종료를 감시하기 때문에, 코-프로세서가 일련의 여러개의 데이타 전송 동작을 실행할때, 코-프로세서는, 1개의 데이터를 전송할때마다 마스터프로세서에서 코맨드를 받을 필요는 없고, 이것에 의해, 마스터프로세서가 버스 액세스 사이클의 발생과 제어를 행하는 한편, 코-프로세서가 실제의 데이타의 주고 받음을 행하는 경우에, 일련의 데이타 전송수를 마스터프로세서만이 인식해서 관리하는 경우에 발생하는 코맨드 발생회수의 증대에 의한 데이타 전송 효율의 저하를 방지할 수 있다는 효과가 있다.
(2) 또, 그 경우에, 코-프로세서너는, 일련의 데이타 전송 사이클의 종료를 마스터프로세서에 지시할 필요는 없으므로, 일련의 데이타 전송 수로를 코-프로세서만이 인식해서 관리하는 경우와 같이 일련의 데이타 전송 사이클의 종류를 마스터프로세서에 지시하는 신호가 바람직하 못하게 지연하는 일이 없고, 그 결과, 일련의 데이타 전송 동작의 다음에 필요한 동작을 그 즉식로 개시활 수 있다는 효과가 있다.
(3) 상기 효과(1) 및 (2)에서, 코-프로세서 시스템 전체의 동작 효율을 향상시키는 효과가 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라서 구체적으로 설명했지만, 본 발명은 상기 실시예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에 있어서 여러가지 변경 가능하다는 것은 말할것도 없다.
예를들면, 상기 실시예에서는, 데이타 전송수 또는 일련의 데이타 전송 동작의 종료를 감시하는 수단으로서, 레지스터 지정 회로의 제어도 겸하는 파인드 퍼스트 원 회로(29), (34)를 채용했지만, 그와같은 수단을, 데이타 전송수를 계수해서 그 계수값이 소정값에 또 도달한 것을 검출 가능한 구성등으로 변경할 수가 있다. 또 이러한 수단을 레지스터 지정 회로의 제어를 겸하지 않아도 좋다.
또, 여러개의 데이타 전송원이나 데이타 전송선을 표시하는 정보는, 상기 실시예에서 설명할 포매트의 레지스터 리스트에 한정되지 않고, 직접 여러개의 레지스터 번호를 지정하는 형식이어도 좋다. 그 경우에는, 필요한 데이타 전송수를 표시하는 데이타가 별로로 필요하게 되지만, 그와같은 데이타는 명령이나 코맨드에 포함되지 않고 오퍼런드로서 주어지도록 해도 좋다.
또, 상기 실시예에서는, 메모리와 코-프로세서와의 사이에서의 데이타 전송 명령을 일례로 설명했지만, 마스터프로세서와 코-프로세서 사이에서의 코맨드나 그 이외의 데이타의 전송 또는 실질적으로 오퍼런드의 전송이 필요로되는 산술 명령등의 실행을 할때에도 본 발명을 적용할 수가 있다.
이상의 설명에서는 주로 본 발명자에 의해서 이루어진 발명을 그 배경이 되었던 이용분야인 메모리와 코-프로세서내의 여러개의 범용 레지스터의 사이에서의 데이타 전송 제어에에 적용한 경우에 대해서 설명했지만, 본 발명은 그것에 한정되는 것은 아니고, 메모리이외의 주변 장치, 코-프로세서내부의 제어 레지스터등 그 이외의 데이타 격납 수단을 데이타 전송원이나 전송선으로 하는 것과 같은 데이타 전송 제어등에도 널리 적용할 수가 있다. 본 발명은 적어도, 마스터프로세서 및 코-프로세서를 포함하는 조건의 것에 적용할 수가 있다.

Claims (34)

  1. 상기 버스에 결합된 코-프로세서, 상기 버스에 결합되어 상기 코-프로세서를 위한 버스 액세스 사이클을 실행한 마스터 프로세서와 상기 버스에 결합된 외부 장치를 포함하며, 상기 마스터 프로세서는 코-프로세서에 코맨드를 전송하는 전송수단, 외부에 장치에 제공될 어드레스의 연산을 실행하는 연산 수단, 코맨드에 구비된 코-프로세서와 외부 장치사이의 데이타 전송수가 세트되어 있는 제1의 세트 수단을 구비하고, 상기 코-프로세서는 마스터 프로세서에서 제공된 코맨드에 구비된 데이타 전송수가 세트되어 있는 제2의 세스 수단을 구비하고, 상기 마스터 프로세서는 상기 제1의 세스 수단의 세트된 데이타 전송수에 따라 상기 코-프로세서와 독립적으로 데이타 전송 동작의 완료를 판별하고, 상기 코-프로세서는 상기 제2의 세트 수단의 세트된 데이타 전송수에 따라 코-프로세서의 내부외 외부 장치 사이에서 실행된 데이타 전송 동작의 완료를 판별하고, 상기 코-프로세서와 외부 장치사이의 데이타 전송 동작은 상기 마스터 프로세스를 통하지 않고 버스를 거쳐 실행되는 마이크로컴퓨터 시스템.
  2. 버스, 상기 버스에 결합된 코-프로세서, 상기 버스에 결합되어 상기 코-프로세서를 위한 버스 액세스 사이클을 실행하는 마스터 프로세서와, 상기 버스에 결합된 외부 장치를 포함하며, 상기 코-프로세서는 그것에 대해 상기 코-프로세서의 내부와 상기 외부 장치사이에서 실행된 데이타 전송 동작의 순서의 완료를 판별하는 제1의 판별 수단을 구비하고, 상기 마스터 프로세서는 상기 제1의 판별 수단과 독립적으로 데이타 전송 동작의 상기 순서의 완료를 판별하는 제2의 판별 수단을 구비하고, 상기 제2의 판별 수단은 상기 데이타 전송 동작의 계수에 따라 데이타 전송 동작의 상기 수선의 완료의 상기 판별을 실행하고, 상기 제1의 판별 수단 및 상기 제2의 판별 수단은 각각 상기 코-프로세서 및 상기 마스터 프로세서에 각각 배치된 파인드 퍼스트 세트 비트 회로이고, 상기 파인드 퍼스트 세트 비트 회로의 각각은 여러개의 비트군의 데이타의 갱신을 위해 비트군이 상기 파인드 퍼스트 세트 비트 회로 각각에 인가되는 각각의 데이타 전송동작중에 전송된 데이타의 여러개의 비트군에 구비된 소정의 코드 비트로 데이타 전송 동작마다 코드 변환을 실행하는 수단, 상기 각각의 데이타 전송 동작중에 전송된 상기 갱신된 데이타가 상기 소정의 코드 비트를 구비하지 않는 상태에 따라서 상기 각각의 데이타 전송 동작의 동작 완료의 판별을 실행하는 수단을 구비하는 마이크로프로세서 시스템.
  3. 특허청구의 범위 제2항에 있어서, 상기 각각의 데이타 전송 동작중에 전송된 데이타의 상기 여러개의 비트군의 상기 데이타는 각 비트 코드의 조합에 따라 상기 코-프로세서내의 여러개의 내부 데이타 저장수단중의 소정의 하나를 지정하는 마이크로프로세서 시스템.
  4. 특허청구의 범위 제3항에 있어서, 상기 파인드 퍼스트 원 회로의 각각은 상기 코-프로세서의 상기내부 데이터 저장 수단의 지정을 제어하기 위해 여러개의 비트군의 데이타를 결정하는 수단을 구비하는 마이크로프로세서 시스템.
  5. 특허청구의 범위 제4항에 있어서, 상기 각각의 데이타 전송 동작중에 전송된 데이타의 상기 여러개의 비트군의 상기 데이타는 상기 코-프로세서를 위해 상기 마스터로세서에 의해 페치될 명령에 포함되는 마이크로프로세서 시스템.
  6. 특허청구위 범위 제5항에 있어서, 상기 마스터 프로세서는 상기 코-프로세서를 위해 상기 마스터프로세서에서 페치될 명령을 슬라이스하고 상기 코-프로세서를 위한 코맨드를 발생하는 수단을 구비하고, 상기 코맨드는 상기 각각의 데이타 전송 동작에서 전송된 데이타의 상기 여러개의 비트군의 상기 데이타를 포함하는 마이크로프로세서 시스템.
  7. 특허청구의 범위 제3항에 있어서, 상기 여러개의 내부 데이타 격납 수단은 여러개의 범용 레지스터를 구비하는 마이크로프로세서 시스템.
  8. 버스에 결합된 마스터 프로세서에 의해 활성화된 버스 액세스 사이클에 따라 코-프로세서에 구비된 여러개의 데이타 저장수단과 상기 버스에 결합된 외부 장치 사이에서 여러 데이타의 순서를 주고 받도록 버스에 결합된 코-프로세서에 의해 실행된 동작에 대한 스텝을 구비하는 마이크로프로세서에 있어서, 상기 스텝은 상기 코-프로세서를 위해 상기 마스터 프로세서에 소정의 명령을 페치하기 위해 상기 마프터 프로세서에 의해 사용되는 페치 스템, 상기 페치 스텝에서 페치된 상기 명령에 따라 상기 코-프로세서를 위한 코맨드를 발생하기 위해 상기 마스터 프로세서에 의해 사용되는 상기 페치 스텝에 따르는 코맨드 스텝과 상기 코-프로세서에 상기 코맨드 스텝에서 발생된 상기 코맨드를 공급하기 위해 상기 마스터 프로세서에 의해 사용되는.상기 코맨드 스텝에 따르는 스텝을 구비하고, 상기 마스터 프로세서는 또 상기 명령에 포함된 데이타에 따라 데이타 전송 동작의 순서 끝을 감시하는 스텝을 실행하는 수단을 구비하고, 상기 코-프로세서는 상기 마스터 코-프로세서에 의해 실행된 상기 감시 스텝과 독립적으로 상기 코맨드에 포함된 상기 정보에 따라 데이타 전송 동작의 순서 끝을 감시하는 스텝과 상기 코-프로세서에서 데이타 전송원 또는 전송선으로서 사용된 데이타 격납 위치를 데이타 전송 사이클마다 판별하고 지정하는 스텝을 실행하는 수단을 구비하고, 상기 데이타 격납 위치를 데이타 전송 사이클마다 판별하고 지정하는 스텝은 상기 각각의 데이터 전송 동작중에 전송된 데이타의 여러개의 비트군내의 소정의 코드 비트로 데이타 전송 동작마다 코드 반전을 실행하는 것과 상기 각각의 데이타 전송 동작중에 전송된 상기 갱신된 데이타가 상기 소정의 코드 비트를 구비하지 않는 상태에 따라 상기 데이타 전송 동작마다 동작의 완료 판별을 실행하는 것을 포함하는 마이크로프로세서.
  9. 특허청구의 범위 제8항에 있어서, 상기 각각의 데이타 전송 동작중에 전송된 데이타의 여러개의 비트군의 상기 데이타는 각각의 비트 코드의 조합에 따라 상기 프로세서내의 여러개의 내부 데이타 격납 수단중의 소정의 하나를 지정하는 마이크로프로세서.
  10. 버스, 상기 버스에 결합된 마스터 프로세서, 상기 버스에 결합된 코-프로세서, 상기 버스에 결합된 외부 장치를 구비하는 마이크로프로세서 시스템에서, 상기 버스를 거쳐, 상기 마스터 프로세서에 의해 활성화된 버스 액세스 사이클에 따라 상기 코-프로세서내의 여러개의 데이타 격납 수단과 상기 외부 장치 사이의 데이타 전송 동작의 순서를 실행하는 방법에 있어서, (a) 상기 마스터 프로세서에 의해, 상기 코-프로세서에서 소정의 명령을 페치하는 스텝, (b) 상기 마스터 프로세서에 의해, 상기 페치 스텝 (a)에서 페치된 상기 명령에 따라 상기 코-프로세서를 위한 코맨드를 발생하는 스텝, (c) 상기 코-프로세서에 상기 코맨드 스텝에서 발생된 상기 코맨드를 공급하는 스텝을 포함하고, 상기 마스터 프로세서는 상기 명령에 포함된 데이타에 따라 상기 데이타 전송 동작의 상기 순서 끝을 감시하는 스텝을 실행하는 수단을 구비하고, 상기 코-프로세서는 상기 마스터 프로세서에 의해 실행된 감시와 독립적으로 상기 코맨드에 포함된 데이타에 따라 상기 데이타 전송 동작의 순서 및 끝을 감시하는 스텝을 실행하는 수단을 구비하는 방법.
  11. 특허청구의 범위 제10항에 있어서, 상기 마스터 프로세서에 의해 실행되는 감시하는 스텝은 데이터 전송 동작의 순서의 상기 끝의 검출후 또 하나의 버스 액세스 사이클의 활성화를 정지하는 스텝을 구비하는 방법 .
  12. 특허청구의 범위 제10항에 있어서, 상기 코-프로세서에 의한 감시하는 스텝은 데이타 전송 동작의 상기 순서의 상기 끝의 감시후 또 하나의 버스 액세스 사이클의 활성화를 정지하는 스텝을 구비하는 방법.
  13. 특허청구의 범위 제11항에 있어서, 상기 코-프로세서에 의한 상기 감시하는 스텝은 데이타 전송 동작의 상기 순서의 상기 끝의 검출후 데이타의 입력 또는 출력 동작을 정지하는 스텝을 구비하는 방법.
  14. 특허청구의 제10항에 있어서, 또 상기 코맨드에 포함된 상기 데이타에 따라 동작가능하게 되어 상기 코-프로세서에서 데이타 전송원 또는 전송선으로서 사용된 데이타 격납 수단을 데이타 전송 사이클마다 판별하고 지정하는 스텝을 구비하는 방법.
  15. 특허청구의 범위 제14항에 있어서, 상기 데이타 격납 수단을 데이타 전송 사이클마다 판별하고 지정하는 스텝은 상기 데이타에 포함된 소정의 코드 비트로 데이타 전송 동작마다 코드 변환을 실행하는 스텝과 상기 데이타가 상기 소정의 코드 비트를 구비하지 않는 상태에 따라 상기 데이타 전송 동작마다 동작의 완료 판별을 실행하는 스텝을 포함하는 방법.
  16. 특허청구의 범위 제15항에 있어서, 상기 데이타에 포함된 여러개의 비트는 각각의 비트 코드의 조합에 따라, 상기 코-프로세서에 포함된 데이타 격납 수단중의 소정의 하나를 지정하는 방법.
  17. 버스, 상기 버스에 결합된 코-프로세서, 상기 버스에 결합되어 상기 코-프로세서를 위한 버스 액세스 사이클을 실행하는 마스터 프로세서와, 상기 버스에 결합된 외부 장치를 포함하며, 상기 코-프로세서는 상기 외부 장치와 상기 코-프로세서의 내부사이에서 실행된 데이타 전송 동작의 순서 완료를 판정하는 제1의 파인드 퍼스트 세트 비트 수단을 구비하고, 상기 마스터 프로세서는 데이타 전송 동작의 상기 순서 완료를 판정하는 제2의 파인드 퍼스트 세트 비트 수단을 구비하고, 상기 제1 및 제2의 파인드 퍼스트 세트 비트 수단의 각각은 상기 내부를 지정하는 여러개의 정보 비트를 세트하는 수단, 상기 테이트 전송 동작의 각각에 따라 상기 세트 정보 비트를 갱신하는 수단, 상기 갱신된 세트 정보 비트의 각각이 소정의 상태에 도달하는가 아닌가를 결정하기 위해 갱신된 정보 비트를 판정하는 수단을 구비하는 마이크로프로세서 시스템.
  18. 특허청구의 범위 제17항에 있어서, 상기 내부는 여러개의 레지스터를 구비하는 코-프로세서 시스템.
  19. 특허청구의 범위 제18항에 있어서, 상기 갱신 수단은 상기 데이타 전송 동작중의 하나에 따라 상기세트 정보 비트의 소정의 정보 비트를 반전하는 반전수단을 구비하는 코-프로세서 시스템.
  20. 특허청구의 범위 제19항에 있어서, 상기 소정의 정보 비트는 상기 하나의 데이타 전송 동작에 따라 상기 레지스터중에서 데이타가 전송될 레지스터를 지정하는 비트인 마이크로프로세서 시스템.
  21. 버스, 상기 버스에 결합된 코-프로세서, 상기 버스에 결합되어 상기 코-프로세서를 위하 버스 액세스 사이클을 실행하는 마스터 프로세서와 상기 버스에 결합된 외부 장치를 구비하는 마이크로프로세서 시스템에서의 데이타 전송 방법에 있어서, (a) 명령에 따라 상기 코-프로세서의 내부를 지정하는 제1의 정보 비트를 제1의 파인드 퍼스트 세트 비트 수단으로 세트하는 스텝, (b) 상기 명령에 따라 형성되는 코맨드에 따라 상기 코-프로세서의 상기 내부를 지정하는 제2의 정보 비트를 제2의 파인드 퍼스트 세트 비트 수단으로 세트하는 스텝, (c) 상기 마스터 프로세서에서 상기 데이타 전송 동작의 각각에 따라 세트된 제1의 정보 비트를 갱신하는 스텝, (d) 상기 코-프로세서에서 상기 데이타 전송 동작의 각각에 따라 설정된 제2의 정보 비트를 갱신하는 스텝, (e) 상기 마스터 프로세서에서 데이타 전송 동작의 상기 순서 완료를 검출하도록 갱신된 제1의 정보 비트의 각각이 소정의 상태에 도달하는가 아닌가를 결정하기 위해 갱신된 제1의 정보 비트를 판정하는 스텝과, (f) 상기 코-프로세서에서 데이타 전송 동작의 상기 군서 완료를 검출하도록 갱신된 제2의 정보 비트의 각각이 소정의 상기에 도달하는가 아닌가를 결정하기 의해 갱신된 제2의 정보 비트를 판정하는 스텝을 포함하고, 상기 외부 장치와 상기 코-프로세서의 상기 내부 사이에서 실행된 데이타 전송 동작의 순서 완료를 판정하는 상기 제1의 파인드 퍼스트 세트 비트 수단은, 상기 마스터 프로세서내에 구비되고, 상기 외부 장치와 상기 코-프로세서의 상기 내부사이에서 실행된 데이타 전송 동작의 상기 순서 완료를 판정하는 상기 제2의 파인드 퍼스트 세트 비트 수단은 상기 코-프로세서에 구비되는 데이타 전송 방법.
  22. 특허청구의 범위 제21항에 있어서, 상기 내부는 여러개의 레지스터를 구비하는 데이타 전송 방법.
  23. 특허청구의 범위 제22항에 있어서, 상기 갱신 스텝(c)는 상기 마스터 프로세서에서 상기 데이타 전송동작중의 하나에 따라 세트된 제1의 정보 비트의 소정의 비트를 반전하는 스텝(c1)을 구비하는 데이타 전송 방법.
  24. 특허청구의 범위 제23항에 있어서, 상기 갱신 스텝(d)는 상기 코-프로세서에서 상기 데이타 전송동작중의 하나에 따라 세트된 제2이 정보 비트의 소정의 비트를 반전하는 스텝(d1)을 구비히는 데이타 전송 방법.
  25. 특허청구의 범위 제1항에 있어서, 상기 제1 및 제2의 세트 수단의 각각은 파인드 퍼스트 세트 비트회로이고, 상기 파인드 퍼스트 세트 비트 회로는 여러개의 비트군을 갱신하도록 파인드 퍼스트 세트 비트회로에 설정되어 있는 여러개의 비트군에 포합된 소정의 코드 비트로 데이타 전송 동작마다 코드 반전을 실행하는 수단, 갱신된 비트군의 각각의 소정의 코드 비트를 구비하지 않는 조건에 따라 데이타 전송 동작의 순서 완료 판정을 실행하는 수단을 구비하는 마이크로프로세서 시스템.
  26. 특허청구의 범위 제25항에 있어서, 상기 내부는 데이타를 격납하는 여러개의 데이타 격납 수단을 구비하고, 상기 여러개의 비트군은 여러개의 데이타 격납 수단중의 소정의 하나를 지정하는 마이크로프로세서 시스템.
  27. 특허청구의 범위 제26항에 있어서, 상기 파인드 퍼스트 세트 비트 회로의 각각은 상기 코-프로세서의 상기 데이타 격납 수단중의 하나를 지정하도록 여러개의 비트군을 데코드하는 수단을 구비하는 마이크로 프로세서 시스템.
  28. 특허청구의 범위 제27항에 있어서, 상기 마스터 프로세서는 상기 마스터 프로세서에 의해 페치된 명령에 따라 코-프로세서에 제공될 코맨드를 형성하는 수단을 구비하고, 상기 코맨드는 코-프로세서의 파인드 퍼스트 세트 비트 회로에 세트될 여러개의 비트군을 구비하는 마이크로프로세서 시스템.
  29. 특허청구의 범위 제28항에 있어서, 상기 여러개의 데이타 격납 수단은 여러개의 범용 레지스터를 구비하는 마이크로프로세서 시스템.
  30. 특허청구의 범위 제29항에 있어서, 상기 외부 장치는 데이타용 메모리 수단인 마이크로프로세서 시스
  31. 특허청구의 범위 제26항에 있어서, 상기 여러개의 데이터 격납 수단은 여러개의 범용 레지스터를 구비하는 마이크로프로세서 시스템.
  32. 특허청구의 범위 제27항에 있어서, 상기 여러개의 비트군은 상기 코-프로세서를 위해 상기 마스터 프로세서에 의해 페치될 명령에 구비되는 마이크로프로세서 시스템.
  33. 특허청구의 범위 제32항에 있어서, 상기 마스터 프로세서는 상기 마스터 프로세서에 의해 페치된 상기 명령에 따라 상기 코-프로세서에 제공될 코맨드를 형성하는 수단을 구비하고, 상기 코맨드는 상기 코-프로세서의 파인드 퍼스트 세트 비트 회로에 설정될 여러개의 비트군을 구비하는 마이크로프로세서 시스템.
  34. 특허청구의 범위 제27항에 있어서, 상기 여러개의 데이터 격납 수단은 여러개의 범용 레지스터를 구비하는 마이크로프로세서 시스템.
KR1019870007807A 1986-09-24 1987-07-18 마이크로프로세서 시스템 KR950008225B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP61223587A JPH079643B2 (ja) 1986-09-24 1986-09-24 コプロセツサデ−タ転送制御方式
JP223587 1986-09-24
JP86-223587 1986-09-24

Publications (2)

Publication Number Publication Date
KR880004383A KR880004383A (ko) 1988-06-07
KR950008225B1 true KR950008225B1 (ko) 1995-07-26

Family

ID=16800502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870007807A KR950008225B1 (ko) 1986-09-24 1987-07-18 마이크로프로세서 시스템

Country Status (4)

Country Link
EP (1) EP0261685B1 (ko)
JP (1) JPH079643B2 (ko)
KR (1) KR950008225B1 (ko)
DE (1) DE3750284T2 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0389175A3 (en) * 1989-03-15 1992-11-19 Fujitsu Limited Data prefetch system
US6505290B1 (en) * 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2422205A1 (fr) * 1978-04-05 1979-11-02 Renault Operateur de calcul universel microprogrammable
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
JPS5840214B2 (ja) * 1979-06-26 1983-09-03 株式会社東芝 計算機システム
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
JPS6097458A (ja) * 1983-10-18 1985-05-31 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション デ−タ転送装置
JPS60195661A (ja) * 1984-03-19 1985-10-04 Hitachi Ltd デ−タ処理システム

Also Published As

Publication number Publication date
DE3750284D1 (de) 1994-09-01
JPH079643B2 (ja) 1995-02-01
JPS6379162A (ja) 1988-04-09
DE3750284T2 (de) 1994-11-17
EP0261685B1 (en) 1994-07-27
EP0261685A3 (en) 1991-04-24
EP0261685A2 (en) 1988-03-30
KR880004383A (ko) 1988-06-07

Similar Documents

Publication Publication Date Title
EP0057788B1 (en) Data processing system with external microcode control unit
KR100260353B1 (ko) 2종류의 명령장 코드를 실행하는 프로세서 및 그명령 코드입력 장치
CA1227877A (en) Instruction prefetch operation for branch and branch- with-execute instructions
US4928226A (en) Data processor for parallelly executing conflicting instructions
EP0378425A2 (en) Branch instruction execution apparatus
EP0162778A2 (en) Instruction prefetch system for conditional branch instruction for central processor unit
EP0459445A2 (en) Method for processing by processor
EP0405495B1 (en) Instruction unit logic management apparatus included in a pipelined processing unit and method therefor
EP0087785B1 (en) Microprogram controlled data processing apparatus
CN1983167A (zh) 将一个处理器与一个协处理器相接口的方法
US5193159A (en) Microprocessor system
US4967338A (en) Loosely coupled pipeline processor
US6205536B1 (en) Combined Instruction and address caching system using independent buses
US5497496A (en) Superscalar processor controlling fetching of instructions based upon number of empty instructions registers detected for each cycle
US4491908A (en) Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit
EP1034473B1 (en) Enhanced instruction decoding
EP0094535B1 (en) Pipe-line data processing system
KR100267101B1 (ko) 명령어 페치장치 및 프로세서 처리방법
EP0193654B1 (en) Data-processing apparatus fetching operands from independently accessible memories
JPH0332818B2 (ko)
US4758949A (en) Information processing apparatus
US5203006A (en) System for selecting next instruction address between unit incremented address and address from table specified by operating condition signals
EP0010196A1 (en) Control circuit and process for digital storage devices
KR950008225B1 (ko) 마이크로프로세서 시스템
EP0150506B1 (en) Instruction processor

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
LAPS Lapse due to unpaid annual fee