KR920004401B1 - 디지탈 데이타 프로세싱 시스템내의 프로세서와 특수명령 프로세서간의 인터페이스 - Google Patents

디지탈 데이타 프로세싱 시스템내의 프로세서와 특수명령 프로세서간의 인터페이스 Download PDF

Info

Publication number
KR920004401B1
KR920004401B1 KR1019870012090A KR870012090A KR920004401B1 KR 920004401 B1 KR920004401 B1 KR 920004401B1 KR 1019870012090 A KR1019870012090 A KR 1019870012090A KR 870012090 A KR870012090 A KR 870012090A KR 920004401 B1 KR920004401 B1 KR 920004401B1
Authority
KR
South Korea
Prior art keywords
information
unit
data
central processor
processor unit
Prior art date
Application number
KR1019870012090A
Other languages
English (en)
Other versions
KR880010364A (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 KR880010364A publication Critical patent/KR880010364A/ko
Application granted granted Critical
Publication of KR920004401B1 publication Critical patent/KR920004401B1/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
    • 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)
  • Multi Processors (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

내용 없음.

Description

디지탈 데이타 프로세싱 시스템내의 프로세서와 특수명령 프로세서간의 인터페이스
제 1a 도는 본 발명을 사용하는 디지탈 데이타 프로세싱 시스템의 일반 계통도.
제 1b 도는 제 1a 도에 도시한 시스템내에 사용된 프로세서의 구성 계통도.
제 2a 도 및 제 2d 도는 본 발명을 이해하는 데 유용한 타이밍도.
제 3 도는 시스템의 다른 부분과의 전송을 제어하기 위한 회로에 특히 관련하여 제 1b 도에 도시한 프로세서의 일부를 상세하게 도시한 계통도.
* 도면의 주요부분에 대한 부호의 설명
10 : 중앙 프로세서유니트(CPU) 11 : 메모리
12 : 입/출력 서브시스템 13 : 버스
15 : 메모리 제어기 17 : 어레이
20 : 입/출력 유니트 21 : 장치 버스
22 : 입/출력 제어기 23 : 기입 버퍼
24 : 전용 버스 25 : 시스템 제어 회로,
30 : 프로세서 31 : 부동 소숫점 프로세서
33 : 버스 인터페이스회로 34 : 내부 IDAL 버스
35 : 캐쉬 메모리 36 : 데이타 통로
37 : 메모리 관리 유니트(가상 어드레스 변환 회로)
38 : 데이타 격납 영역 40 : 프로세서 제어 회로
41 : 태그 42 : 스테일 플랙
50 : DAL라인 250 : 기입 데이타 레지스터(래치)
251 : 기입 어드레스 레지스터(래치) 252 : 해독 어드레스 레지스터(래치)
253, 261, 263, 264 : 멀티플렉서 254 : 입력 데이타 레지스터(래치)
255 : 레지스터 256 : 산술 및 논리회로
257 : 소오스 레지스터 260 : 변환 버퍼
262 : 히트/미스 논리회로 265 : 리프레쉬 카운터
270 : 상태기 271 : IDAL상태기
272 : FPP 논리회로 273, 276, 277 : 제어논리회로
274 : 핀
본 발명은 디지탈 데이타 프로세싱 시스템 분야에 관한 것이다.
전형적인 디지탈 데이타 프로세싱 시스템은 3개의 기본소자, 즉 프로세서 소자, 메모리 소자, 및 입/출력소자를 포함한다. 메모리 소자는 어드레스 가능한 격납장소내에 정보를 격납시킨다. 이 정보는 데이타와 데이타를 프로세싱하기 위한 명령을 포함한다. 프로세서 소자는 각각 메모리 소자로부터 정보가 전송 또는 페치(fetch)되게 하고, 인입 정보를 명령 또는 데이타로서 변환하며, 명령에 따라 데이타를 프로세스하는 1개이상의 디지탈 데이타 프로세싱 유니트, 또는 "프로세서"를 포함한다. 그 결과는 메모리 소자내의 어드레스된 장소내에 격납된다.
또한, 입/출력 소자는 정보를 시스템 내로 전송하고 이로부터 프로세서된 데이타를 얻기 위해서 메모리소자와 통신한다. 입/출력 소자를 구성하는 유니트들은 통상적으로 프로세서 소자에 의해 공급된 제어 정보에 따라 동작한다. 제어 정보는 입/출력 유니트에 의해 수행될 동작을 정한다. 입/출력 유니트에 의해 수행된 동작들의 최소한 1가지 부류는 입/출력 유니트와 메모리 소자사이에서 사용자 정보, 즉 사용자 프로그램에 의해 사용된 정보를 전송하는 것이다. 입/출력 소자를 구성하는 전형적인 유니트들은 예를들어 프린터, 텔리타이프라이터, 및 비디오 디스플레이 단말기를 포함하고, 또한 디스크 또는 테이프 기억 장치와 같은 2차 정보 기억 장치를 포함할 수 있다.
입/출력 장치로서 작용하는 것외에, 디스크 기억장치 및 때때로 테이프 기억장치는 메모리 소자의 일부로서 작용할 수 있다. 특히, 전형적으로, 메모리 소자는 내용이 비교적 신속하게 프로세서에 억세스가능한 주(main)메모리를 포함하지만, 이것은 일반적으로 비교적 고가의 기억 장치이다. 최근의 주 메모리들은 전형적으로 MOS 또는 바이폴라 반도체 기술을 사용하여 실행되고, 수 메가 바이트 내지 수십 메가바이트의 기억용량을 제공할 수 있다.
최근의 데이타 프로세싱 시스템 내에서, 시스템 내에서 사용될 수 있는 모든 명령을 실행할 수 있는 1개, 또는 시스템이 다중 프로세서 시스템인 경우에 몇개의 프로세싱 유니트를 갖는 것이 통상적이다. 그러나, 몇가지 형태의 명령, 특히 한 부분은 분수(traction)를 나타내고 다른 부분은 지수를 나타내는 2개의 별도 부분으로 구성되는 부동 소숫점 주(floating point number)의 산술(arithmetic)을 수행하는 명령을 실행할 때, 동작을 수행하기 위해 공동 프로세서(co-processor)를 제공하는 것이 통상적이다.
부동 소숫점 수는 2개의 별도 부분, 즉 분수 및 지수로 구성된다. 전형적으로, 각각의 부분은 별도로 프로세스되어야 하지만, 프로세싱의 개시 및 종료시에, 다른 부분의 값에 따르는 전이(shifting) 및 정규화(normalization)와 같은 동작들이 부분들상에서 수행되어야 한다. 이 복잡한 프로세싱은 범용 프로세서 내에서 상당한 시간량을 필요로 한다. 따라서, 명령을 신속히 실행하기 위해 최적화되는 회로를 포함하는 부동 소수점 프로세서라고 부르는 공동 프로세서가 제공된다.
종래의 시스템내에서, 반드시 선택적인 부동 소숫점 프로세서는 주 프로세서 내에 접속될 수 있고, 프로세스될 데이타를 검색하기 위해 주 프로세서의 회로를 사용한다. 이것은 마이크로프로세서 출현 이전에 만적스러운 해결 방법이었다. 그러나, 주 프로세서가 마이크로프로세서이면, 부동 소숫점 프로세서를 포함하는 마이크로프로세서를 다른 회로에 접속시키는 핀의 수는 매우 제한된다. 따라서, 다수의 접속부들이 부동소숫점 프로세서에 할당되는 것은 불가능하다.
사용되어온 다른 상호접속 메카니즘은 부동 소숫점 프로세서가 시스템 작동을 모니터하고 마이크로프로세서가 부동 소숫점 데이타를 프로세스하기 위한 명령을 검색하고 있는 때를 지시(note)하게 하기 위한 것이다. 이러한 명령이 수신되면, 부동 소숫점 프로세서는 마이크로프로세서를 디스에이블시키고, 명령을 디코드하며, 요구된 데이타를 검색하고, 명령을 실행하며, 프로세스된 데이타를 기억시킨다. 그러나, 이것은 부동 소숫점 프로세서가 명령이 검색되고 있는 때를 식별할 수 있고 프로세스될 데이타를 식별하기 위해 확장 인터페이스 회로 및 디코딩회로를 갖게 한다. 부수적으로, 마이크로프로세서가 명령을 프리패치(prefetch)하면, 마이크로프로세서와 부동 소숫점 프로세서는 통합(coordinate)되어야 하는데, 그 이유는 부동 소숫점명령이 수신될때 즉시 프로세스되는 것이 아니라 이 명령 앞의 명령이 프로세스된 후에 프로세스되기 때문이다. 또한, 프로그램이 명령이 도달되기 전에 분기(branch)하면, 명령은 절대로 실행되지 않게 된다.
본 발명은 디지탈 데이타 프로세싱 시스템 내에 사용하기 위한 새로운 프로세서를 제공한다.
이 프로세서는 부동 소숫점 프로세서("FPP")로의 인터페이스를 포함한다. 인터페이스는 한 셋트의 FPP 상태 라인, 및 프로세서와 부동 소숫점 프로세서 사이에서 신호들을 전송하는 한 셋트의 FPP 데이타 라인을 포함한다. 부수적으로, 부동 소숫점 프로세서는 프로세스될 오퍼런드 데이타(operand data)를 얻게 하고 프로세스된 데이타를 복귀시키도록 프로세서의 입/출력 버스의 데이타 라인 및 선택된 제어 라인에 접속된다. 프로세서가 부동 소숫점 명령을 디코드하면, 프로세서는 명령이 전송되고 있다는 것을 표시하는 FPP 상태 라인을 거쳐 전송된 코드(code)와 함께 이것을 FPP 데이타 라인을 거쳐 전송한다.
후속적으로, 프로세스될 오퍼런드는 부동 소숫점 프로세서에 전송된다. 부동 소숫점 프로세서는 오퍼런드가 메모리로부터 발생하는지 또는 프로세서의 캐쉬(cache) 또는 레지스터로부터 발생하는지를 결정하기 위해 프로세서의 입/출력 버스의 소정의 제어 라인들을 모니터한다. 오퍼런드가 프로세서의 캐쉬 또는 레지스터로부터 발생하면, 프로세서는 오퍼런드가 입/출력 버스 상에 있다는 것을 표시하는 FPP 상태 라인 상의 코드와 함께 입/출력 버스상에 이 오퍼런드를 배치시킨다. 프로세서가 부동 소숫점 프로세서용 메모리로부터의 오퍼런드를 검색하기 시작하면, 입/출력 버스상의 데이타의 일부가 오퍼런드의 일부로서 사용되지 않을 경우에, 프로세서는 소정의 요구된 데이타 정렬을 표시하는 FPP 데이타 라인 상에 정렬 코드를 배치시킨다. 부동 소숫점 프로세스는 메모리가 오퍼런드를 복귀시키고 있다는 것을 표시하는 제어 라인을 모니터한다.
프로세서가 부동 소숫점 프로세서로부터 프로세서된 데이타를 수신할 준비를 하면, 프로세서는 이 결과(effect)에 대한 코드를 FPP 상태 라인 상에 배치시킨다. 부동 소숫점 프로세서가 이 결과(result)를 전송할 준비를 하면, 프로세서는 먼저 이 결과에 대한 FPP 데이타 라인상의 코드와 함께 조건(condition) 코드를 FPP 데이타 라인을 거쳐 전송한다. 후속적으로, 부동 소숫점 프로세서는 FPP 상태 라인 상의 이 결과에 대한 코드와 함께 프로세스된 데이타를 입/출력 라인을 거쳐 전송한다.
이하, 첨부 도면을 참조하여 본 발명에 대해서 상세하게 기술하겠다.
제 1 도를 참조하면, 본 발명을 포함하는 데이타 프로세싱 시스템은 기본 소자로서, 중앙프로세서 유니트(CPU,10), 메모리(11) 및 1개 이상의 입/출력 서브시스템(12)(1개의 입/출력 서브시스템이 제 1 도에 도시되어 있다)를 포함한다. 버스(13)은 CPU(10), 메모리(11)과 입/출력 서브시스템(12)를 병렬로 상호접속시킨다. CPU(10)은 메모리(11)내의 어드레스 가능한 격납장소 내에 격납되는 명령을 실행한다. 이 명령은 역시 메모리 유니트 내의 어드레스 가능한 장소내에 격납되는 오퍼런드상에서 수행될 동작을 식별한다. 이 명령 및 오퍼런드는 필요시에 CPU(10)에 의해 페치되고, 프로세스된 데이타는 메모리(11)내에 격납되기 위해 복귀된다. 또한, CPU(1 0)은 제어 정보를 입/출력 서브시스템(12)로 전송하여, 이들이 데이타를 메모리(11)로 전송하거나 메모리(11)로부터의 데이타를 검색하는 것과 같은 선택된 동작을 수행할 수 있게 한다. 이러한 데이타는 메모리(11)로 전송될 수 있는 명령 또는 오퍼런드, 또는 격납 또는 디스플레이되기 위해 메모리(11)로부터 검색되는 프로세스된 데이타를 포함할 수 있다.
조작자 콘솔(14)는 조작자의 인터페이스로서 작용한다. 이것은 조작자가 데이타를 검사 및 격납하고, CPU(10)의 동작을 정지시키거나 명령 순차를 통해 CPU(10)을 스탭(step)시키며, 이에 응답하여 CPU(10)의 응답을 결정하게 한다. 또한, 이것은 조작자가 부트 스트랩(boot strap)과정을 통해 시스템을 초기화시키고 전체 데이타 프로세싱 시스템 상에서 다양한 진단 검사를 수행할 수 있게 한다.
데이타 프로세싱 시스템은 디스크 및 테이프 2차 기억장치, 텔리타이프라이터, 비디오 디스플레이 단말기, 라인 프린터, 전화기 및 컴퓨터 회로망 유니트등을 포함하는 몇가지 형태의 입/출력 유니트(20)을 포함 할 수 있다. 이 모든 유니트들은 1개 이상의 제어기(22)를 통해 장치버스(21)을 거쳐 버스(13)과 통신한다. 제어기(22), 이것에 접속되는 장치 버스(21), 및 제어기와 통신하는 입/출력 유니트(22)는 1개의 입/출력 서브 시스템(12)를 정한다.
메모리(11)은 버스(13) 및 다수의 어레이(17)에 직접 접속되는 메모리 제어기(15)를 포함한다. 어레이(17)은 정보가 격납되는 다수의 어드레스가능한 격납장소를 갖고 있다. 메모리 제어기(15)는 버스(13)을 거쳐 CPU(10) 또는 입/출력 서브시스템(12)로부터 전송 요구를 수신한다. 몇가지 형태의 전송 요구는 버스(13)을 거쳐 전송될 수 있는데, 이 요구들은 2가지 일반적인 부류로 구분된다. 한가지 부류내에서 정보는 격납 장소내에 기입되거나, 격납되고, 다른 부류내에서 정보는 격납 장소로부터 검색되거나 해독된다.
또한, 제 1 도에 도시한 시스템은 버스(13) 및 메모리 제어기(15)에 접속되고 CPU(10)에 의해 메모리(11)로 보내지는 기입전송 요구를 차단하는 기입 버퍼(23)을 포함한다. 이 시스템내에서, 메모리 제어기(15)는 CPU(10) 또는 입/출력 제어기(22)에 의해 버스(13)을 거쳐 전송되는 기입 요구에 응답하지 않는다. 특히, 기입 버퍼(11)은 기입될 데이타와 데이타가 격납될 어레이 내의 장소를 식별하는 관련 어드레스를 포함하는 기입 정보를 버퍼한다. 메모리 제어기가 기입 동작을 허용할 수 있으면, 기입 버퍼는 어드레스 및 관련 데이타를 전용 버스(24)를 거쳐 메모리 제어기(15)로 전송하므로, 어레이(17)이 어드레스에 의해 식별된 장소내에 데이타를 격납시킬 수 있게 한다. 그러므로, 버스(13)을 거치는 CPU(10)에 의한 기입 데이타의 전송률이 메모리(11)이 허용하기에 너무 크게 되면, 기입 버퍼(23)은 메모리(11)이 이들을 허용할 수 있을때까지 요구를 버퍼할 수 있다. 또한, 메모리 제어기(15)는 CPU(10) 또는 입/출력 제어기(22)로부터의 해독 요구에 응답하고 해독 데이타를 복귀시키기 위해 버스(13)에 직접 접속된다.
본 분야에 숙련된 기술자들은 기입 버퍼(23)이 제 1 도에 도시한 바와 같이 유니프로세서내에 유리하게 사용될 수 있지만, 다중프로세서 시스템(도시하지 않은)내에 가장 유리하게 사용된다는 것을 알게 된다. 다중 프로세서 시스템 내에서 메모리(11)은 다수의 CPU 및 관련된 입/출력 서브시스템(12)로부터 해독 및 기입요구를 수신하게 된다. 기입 동작을 수행하기를 대기하는 CPU(10)에 의한 프로세싱 지연을 방지하기 위해, 기입 버퍼(23)은 기입 어드레스 및 데이타를 취하고, CPU(10)은 프로세싱을 계속할 수 있다.
또한, 기입 버퍼는 CPU(10)로부터 버스(13)을 거치는 해독 요구를 모니터하기 위한 회로를 포함한다. 해독 요구가 버퍼되고 있고 메모리(11)로 아직 전송되지 않은 데이타를 식별하는 버스(13)을 거쳐 전송되었다는 것을 기입 버퍼(23)이 결정하면, 기입 버퍼는, 전용 버스(24)를 거쳐, 메모리 제어기가 요구에 응답하지 못하게 한다. 그 대신, 기입 버퍼(23)은 해독 동작을 완료하기 위해 버스(13)을 거쳐 요구된 데이타를 전송한다.
또한, 제 1 도에 도시한 시스템은 CPU(10)의 제어하에서 중재(arbitration)동작을 수행함으로써 1개 이상의 입/출력 서브시스템이 시스템 내에 존재하는 경우에 버스(13)으로의 다수의 입/출력 서브시스템(12)의 억세스를 조절하는 시스템 제어 회로(25)를 포함한다.
CPU(10)은 프로세서(30) 및 선택적 부동 소숫점 프로세서(31)을 포함한다. 전형적으로, 부동 소숫점 프로세서는 선택적이고, 본 발명에 따라 구성된 디지탈 데이타 프로세싱 시스템 또는 CPU(10) 내에 존재할 필요가 없다. 부동 소숫점 프로세서는 선택된 형태의 데이타, 즉 부동 소숫점 포오맷의 데이타 상의 명령을 프로세스하기에 최적한 회로를 포함한다. 전형적으로, 프로세서(30)은 동일한 데이타를 프로세스할 수 있지만, 프로세싱을 수행하기 위해 더 많은 시간을 필요로 한다.
제 1b 도에는 시스템내에 사용된 1개의 프로세서(30)의 상세한 기능 계통도가 도시되어 있다. 제 1b 도를 참조하면, 프로세서(30)은 [참조번호(13A)로 집합적으로 표시한] 버스(13)의 다수의 제어 라인들에 접속되고 다음에 기술한 바와 같이 버스의 다수의 라인을 거쳐 신호들을 송신 및 수신하는 버스 인터페이스 회로(33)을 포함한다. 또한, 버스 인터페이스 회로는 신호들을 캐쉬(35), 데이타 통로(36), 메모리 관리 유니트(37), 및 프로세서 제어회로(40)에 및 이들로부터 전송하는 내부 IDAL 버스(34)에 접속된다. 프로세서(30)의 한 실시예에 대한 버스 인터페이스 회로(33)에 대해서 제 3 도에 관련하여 다음에 기술하겠다.
또한, 다수의 레지스터들은 내부 IDAL 버스(34)에 접속되고, 버스 인터페이스 회로(33)의 제어하에서 내부 IDAL버스(34)와 버스(13)의 DAL라인(50) 사이에서 데이타를 전송한다. 상세하게 말하자면, 버스 인터페이스 유니트(33)의 제어하에서 기입 데이타 레지스터(250) 및 기입 어드레스 레지스터(251)은 기입 데이타 및 이 기입 데이타가 격납될 메모리(11) 또는 입/출력 유니트(12)내의 장소의 어드레스를 각각 수신한다. 적당한 때에, 다음에 기술한 바와 같이, 버스 인터페이스 유니트(33)은 이 레지스터들의 내용이 기입 동작을 수행하기 위해 멀티플렉서(253)을 통해 DAL라인(50)상에 전송될 수 있게 한다. 이와 유사하게, 버스 인터페이스 유니트(33)의 제어하에서, 해독 어드레스 레지스터(252)는 해독될 데이타를 갖고 있는 장소의 어드레스를 수신한다. 적당한 때에 버스 인터페이스 유니트(33)은 해독 동작을 수행하기 위해 해독 어드레스 레지스터(252)의 내용이 멀티플렉서(253)을 통해 DAL라인(50)상에 결합될 수 있게 한다. 해독 데이타는 버스 인터페이스 유니트(33)의 제어하에서 입력 레지스터(254)내에 래치된다. 버스 인터페이스 유니트(33)은 입력 레지스터(254)의 내용이 RCV DAT수신 데이타 신호로서 내부 IDAL 버스(34)상에 결합될 수 있게 할 수 있다.
프로세서 제어 회로(40)은 메모리(11)로부터 검색되는 프로그램 명령을 디코드하고, 연속 프로세싱 싸이클 내에서 데이타 통로(36)이 명령을 실행하기 위해 필요하게 되는 산술 및 논리 연산을 수행할 수 있게 한다. 데이타 통로(36)은 프로세스될 데이타를 기억하기 위한 한 셋트의 레지스터(255), 및 프로세싱을 수행하기 위한 산술 및 논리회로(256)을 포함한다.
프로세서(30)의 한 실시예는 가상 어드레스를 사용하고, 가상 어드레스를 실제 어드레스로 변환(translate)시키기 위해 가상 어드레스 변환회로(37)을 제공한다. 가상 어드레스 변환회로는 프로세서(30)내의 다른 회로들, 특히 데이타 통로(36), 및 소정의 변환 정보를 포함하는 변환 버퍼(260)으로부터 가상 어드레스를 수신하는 한 셋트의 소오스 레지스터(257)을 포함한다. 변환 동작은 프로세서 제어회로(40)의 제어하에서 필요시에 수행된다. 실제 어드레스들은 멀티플렉서(261)을 통해 변환회로(37)로부터 내부 IDAL 버스(34) 상에 결합된다. 또한, 데이타 통로(36)은 실제 어드레스를 포함할 수 있고, 멀티플렉서(261)용 제2소오스 입력을 제공한다. 프로세서 제어회로(40)은 멀티플랙서(261)을 제어한다.
캐쉬 메모리(35)는 CPU(10)내의 종래의 정보 기억 회로이다. 캐쉬 메모리들은 케이, 황(K. Hwang) 및 에프. 브릭스(F. Briggs) 저. Computer Architecture And Parallel Processing(McGraw-Hill, 1984), 단원 2.4, 98페이지, 및 브리. 해마쳐(V. Hamacher) 저 Computer Organization(McGraw-Hill, 1984), 단원 8.6, 306페이지에 기술되어 있다. 캐쉬 메모리(35)는 다수의 격납 장소를 포함하는 데이타 격납 영역(38)을 포함한다. 데이타 격납 영역(38)은 블럭으로 구성되는데, 각각의 블럭은 2개의 격납 장소를 갖고 있다. 각각의 격납 장소는 정보의 1개의 워드(word), 즉 한번에 버스(13)을 거쳐 전송될 수 있는 정보량을 격납한다. 한 특수한 실시예내에서, 정보의 워드는 정보의 4개의 바이트, 또는 32개의 이진수(binary digit)에 대응한다. 그러므로, 각각의 블럭은 정보의 8개의 바이트를 격납할 수 있다.
캐쉬 메모리(35)는 가상 어드레스변환회로에 의해 발생된 실제 어드레스가 캐쉬 메모리(35)내의 어드레스에 대응할 때를 결정하는 히트/미스(hit/miss)논리회로(262)를 포함한다. 소오스 레지스터(257)로부터의 가상 어드레스의 하위(low order)부, 즉 한 실시예내에서 VA SRCE(8:3)신호는 데이타 격납 영역 및 관련 태그(41)의 엔트리내의 한 블럭을 선택하기 위해 멀티플랙서(264)를 통해 결합된다. 히트/미스 논리회로(262)는 관련 태그(41) 엔트리의 내용이 변환된 실제 어드레스에 대응하는지의 여부를 결정한다. 이러한 대응 관계가 있으면, 히트/미스 논리회로는 버스 인터페이스 유니트(33)에 전송되는 발생 HIT 신호를 발생시킨다. 버스 인터페이스 유니트(33)이 발생 HIT 신호를 수신하지 못하면, 이 유니트는 종래 방식대로 어드레스된 장소의 내용을 검색하기 위해 버스(13)을 거쳐 동작을 엔에이블시킨다. HIT 신호가 발생되면, 버스 인터페이스 유니트(33)은 버스(13)을 거쳐 동작을 엔에이블시키지 않지만, 그 대신에 캐쉬 데이타 격납영역(38)로부터의 데이타가 멀티플랙서(263)을 통해 내부 IDAL 버스(34)를 거쳐 전송되게 한다. 일반적으로, 이러한 데이타는 데이타 통로(36)에 전송된다.
본 분야에 숙련된 기술자들은, 캐쉬 메모리(35)내의 블럭 내에 격납된 정보는 이것이 메모리 유니트(11)로부터 검색될 때 메모리 유니트(11)내에 격납된 정보의 카피(copy)라는 것을 알게된다. 캐쉬 메모리(35)내의 각각의 블럭은 정보가 카피된 메모리 유니트(11)내의 장소들을 식별하기 위해 내용이 버스 인터페이스회로(36)에 의해 설정되는 관련 태그(41)을 갖고 있다. 부수적으로, 각각의 블럭은 블럭의 내용이 실제로 태그에 의해 식별된 장소들의 카피인지의 여부, 즉 블럭의 내용이 스테일(stale)한지의 여부를 표시하기 위해 버스 인터페이스 회로에 의해 리셋트 또는 클리어되는 스테일 플랙(42)를 포함한다.
캐쉬 메모리(35)의 한 실시예 내에서, 데이타 격납 영역(38), 태그(41) 및 플랙(42)는 동적 메모리들이다. 리프레쉬 카운터(refresh counter, 265)는 버스 인터페이스 유니트의 제어하에서 동적 메모리들을 리프래쉬하기 위해 멀티플랙서(264)를 통해 결합되는 리프레쉬 어드레스를 발생시킨다.
명령은 데이타 통로(367 내의 레지스터들 내의 오퍼런드의 위치를 식별하거나 가상 어드레스 공간내의 오퍼런드의 위치를 식별하는 1개 이상의 오퍼런드 식별자를 갖고 있다. 예를들어, 1980, 11, 25자 더블유. 디. 스트렉커(W.D. Stredker)등에게 허여된 Central Processor Unit For Executing Instructions of Variable Length 라는 명칭의 미합중국 특허 제4, 236, 206호를 참조한다. 프로세서 제어회로(40)은 데이타 통로와 함께, 오퍼런드의 위치를 식별하기 위해 각각의 오퍼런드 식별자를 디코드한 다음, 식별된 위치들로부터 오퍼런드의 위치를 얻기 위해 진행된다. 오퍼런드 식별자는 오퍼런드를 갖고 있을 수 있는데[즉, 오퍼런드 식별자는 "리터럴(literal)"로 될 수 있는데], 이 오퍼런드 식별자는 오퍼런드를 갖고 있는 것으로서 데이타 통로의 레지스터(도시하지 않음)들 중 1개의 레지스터를 식별할 수 있다.
선택적으로, 오퍼런드는 프로그램의 가상 메모리 공간내의 한 위치내에 있을 수 있고, 오퍼런드 식별자는 이 위치를 어떻게 결정하는지를 표시할 수 있다. 오퍼런드가 가상 메모리 공간내에 있으면, 제어회로(40)은 가상 어드레스를 실제 어드레스로 변환하도록 메모리 관리회로(37)을 엔에이블시킨다. 오퍼런드의 실제 어드레스가 얻어진 후, 버스 인터페이스(33)은 오퍼런드를 얻는다. 먼저 오퍼런드가 캐쉬 메모리(35)내에 있는지를 결정한다. 오퍼런드가 캐쉬 메모리내에 있으면, 버스 인터페이스는 오퍼런드를 데이타 통로(36)에 전송한다. 한편, 오퍼런드가 캐쉬 메모리(35)내에 없으면, 버스 인터페이스회로(33)은 오퍼런드를 검색하기 위해 해독 요구를 버스(13)을 거쳐 메모리(11)에 전송한다. 모든 오퍼런드들이 얻어진 후, 데이타 통로(36)은 명령에 의해 요구된 동작을 수행할 수 있다.
또한, 오퍼런드 식별자는 프로세스된 데이타가 격납될 장소를 식별할 수 있다. 제어회로(40) 및 메모리 곤리회로(37)은 실제 어드레스를 결정하기 위해 상술한 바와같은 방식으로 사용된다. 프로세스된 데이타가 메모리(11)내에 격납된 경우에, 버스 인터페이스(33)은 버스(13)을 거쳐 요구된 기입 동작을 수행한다. 부수적으로, 실제 어드레스가 캐쉬(35)내의 적합한 태그에 대응하면, 버스 인터페이스(33)은 데이타가 캐쉬(35)내에 격납되게 할 수 있다.
버스 인터페이스 유니트(33)은 버스(13)을 거치는 데이타의 전송을 제어하는 상태기(state machine, 270), 및 내부 IDAL버스(34)를 거치는 데이타의 전송을 제어하는 IDAL상태기(271)을 포함한다. 또한, 버스 인터페이스 유니트는 부동 소숫점 프로세서(31)과의 통신을 제어하는 FPP논리회로(272)를 제어한다. 버스 인터페이스 유니트(33)에 대해서는 제 3 도에 관련하여 더욱 상세하게 후술하겠다.
[버스(13)을 거치는 동작]
버스(13)은 접속된 다수의 유니트들 간에 정보를 나타내는 신호들을 전송하기 위한 다수의 라인들을 포함한다. 특히, 버스(13)은 DAT(data) 및 ADRS(address) 신호들을 전송하는 DAL(31 : 0)(data address line, 50)을 포함한다. CPU(10), 특히 프로세서(30)이 전송을 개시하여 이것이 전송용 버스 마스터가 되게 하면, 프로세서(30)은 먼저 DAL(31 : 0)(data address line, 50)을 거쳐 ADRS(address) 신호들을 전송하고, 라인(52)상에 TR TYPE(2 :0)(transfer type) 명령신호들을 동시에 전송 동작이 해독 동작인지 또는 기입 동작인지를 표시하게 된다. ADRS(address) 신호 및 TR TYPE(2 : 0)(transfer type) 명령신호들이 정착(settle)되게 하기에 충분한 짧은시간 후에, 프로세서(30)은 라인(51)상에 ADRS STR(address strobe)신호를 발생시킨다.
ADRS STR(address strobe)신호가 발생되면, 버스(13)에 접속된 모든 다른 유니트들은 ADRS (address)신호 및 TR TYPE(2:0)(transfer type)명령 신호들을 수신 및 디코드하는데, 이 유니트는 ADRS(address) 신호들에 의해 식별된 위치를 갖고 있으므로, 전송용 응답 유니트 또는 슬레이브(slave)로 된다. 전송 동작이 기입 동작이고, ADRS(address) 신호들이 메모리(11)내의 위치를 식별하면, 기입 버퍼(23)은 슬레이브(유니트)이다. 프로세서(30)이 ADRS STR(address strobe) 신호를 발생시킨 선택된 시간후에, 프로세서는 각각의 라인들로부터 ADRS(address) 신호들 및 TR TYPE(2 : 0)(transfer type)명령 신호들을 제거한다.
전송된 TR TYPE(2 : 0)(transfer type)명령 신호들이 기입 동작을 의미하면, 마스터 유니트는 라인(50)을 거쳐 데이타 신호들을 전송하고, 라인(53)상에 DATA STR(data strobe) 신호를 발생시킨다. 슬레이브 유니트는 전송된 데이타를 수신 및 격납시킨다. 데이타가 격납되었으면, 어드레스된 유니트는 동작이 에러 없이 완료되었을 경우에 라인(54)상에 RDY(ready)신호를 발생시키고, 격납 동작중에 에러가 발생한 경우에 라인(55) 상에 ERR(error)신호를 발생시킨다.
한편, 전송된 TR TYPE(2 : 0)(transfer type) 명령신호들이 해독 동작을 의미하면, 슬레이브 유니트는 어드레스 신호들에 의해 식별된 장소로부터의 데이타를 검색하고, 라인(54)를 거쳐 발생된 RDY(ready)신호를 전송한다. 이에 응답하여, 프로세서(30)은 데이타를 수신하고, 라인(53)을 거쳐 발생된 DATA STR(data strobe)신호를 전송한다.
해독 또는 기입 동작시에, 슬레이브가 전송중에 에러가 발생한 경우에 RDY(re ady)신호 또는 ERR(error)신호를 발생시킨 후, 프로세서(30)은 DATA STR(data strobe) 신호를 무효화(negate)시킨다. 슬레이브 유니트는 RDY(ready) 또는 ERR(e rror)신호를 무효화시키고, 프로세서(30)은 전송을 완료하기 위해 ADRS STR(addre ss strobe)신호를 무효화시킨다.
프로세서(30)이 아닌 버스(13)에 접속된 유니트들은 버스 마스터를 구성할 수 있고, 메모리(11)과의 전송을 개시할 수 있다. 입/출력 서브시스템(2), 특히 입/출력 제어기(22)는 버스 마스터로 될 수 있다. 버스 마스터로 되기 위해, 입/출력 제어기(22)는 라인(56)을 거쳐 DMR(direct memory request)신호를 발생시킨다. 프로세서(30)은 라인(57)상에 DMG(direct memory grant)신호를 발생시키는데, 이 신호는 입/출력 제어기(22)에 의해 수신된다. 이 지점에서, 입/출력 제어기는 프로세서(30)에 관련하여 상술한 바와같은 방식으로 메모리와의 전송을 개시한다. 입/출력 제어기는 전송을 완료할때까지 DMR(direct memory request)신호를 계속 발생시킨다. 그러므로, 입/출력 제어기가 다중 전송을 요구하면, 이 입/출력 제어기는 전송을 완료할때까지 DMR (direct memory request) 신호를 계속 발생시킬 수 있다. DMR(direct memory request) 신호가 발생되는 한, 프로세서(30)은 스톨(atall) 상태내에 있게 된다. 즉, 프로세서(30)은 버스(13)의 다수의 라인들 상의 신호들을 모니터하고, 그렇지 않으면 어떠한 명령도 실행하지 않는다.
시스템이 다수의 입/출력 서브시스템(12)를 포함하면, 버스 마스터로 되기 위한 입/출력 제어기(22)에 의한 별도 요구 신호들은 DMR(direct memory request) 신호를 발생시키고 DMR(dirdct memory request) 신호의 상태를 모니터하는 시스템 제어기에 전송된다. 프로세서(0)이 DMR(direct memory request) 신호를 발생시키면, 시스템 제어기는 소정의 우선 중재 기법(priority arbitration scheme)에 따라 버스 마스터로 되도록 입/출력 제어기(22)들 중 1개의 입/출력 제어기를 엔에이블 시킨다.
또한, 버스(13)은 상태 및 제어신호들을 전송하는 다수의 다른 라인들을 갖고 있다. 라인(60)은 시스템내의 동작을 동기화시키기 위해 사용되는 CLK(clock)신호들을 전송한다. 버스(13)상의 다수의 신호들은 CLK(clock) 신호에 응답하여 타임(time) 된다.
라인(61)은 2가지 기능을 갖고 있는 CCTL(cache control) 신호를 전송한다. 폴 루빈펠드(Paul Rubinfeld)가 1986. 9. 12자 출원한 Cache Invalidate Protocol f or Digital Data Processing System 이란 명칭의 계류중인 미합중국 특허출원 제 908, 825호 내에 기술된 바와같이, CCTL(cache control) 신호는 버스 마스터이고 메모리(11)로의 기입 동작을 수행할때 예를들어 입/출력 제어기(22)에 의해 발생된다. 입/출력 제어기(22)는 DAL(data address line,50) 상에 ADRS(address) 신호를 전송하고 라인(52)상에 TR TYPE(transfer type) 신호를 전송하며 라인(51)상에 ADRS STR(address strobe) 신호를 전송하는 동안에 CCTL 신호를 발생시킨다. CCTL (cache control) 신호가 발생되고, TR TYPE(transfer type) 신호들이 메모리(11)로의 기입 동작을 표시하면, 버스인터페이스(33)은 모든 캐쉬 엔트리들의 태그(41)의 내용을 검사한다. 버스(13)의 DAL(data address line,50)상의 ADRS 신호들이 태그(41)의 내용에 대응하면, 버스 인터페이스(33)은 이 캐쉬 블럭용 S(stale) 플렉(42)를 리셋트시킨다.
또한, CCTL(cache control)신호는 프로세서(30)이 해독 동작중에 요구된 캐쉬(35)내의 데이타를 격납시키지 못하게 하기 위해 메모리(11)에 의해 발생된다. 이것은 예를들어 메모리(13)이 다중 포오트 메모리인 경우, 즉 별도 버스를 거쳐 메모리(11)을 각각 억세스하는 다수의 프로세서들에 의해 공유(share)되는 경우에 사용될 수 있고, 검색되고 있는 데이타는 모든 프로세서들에 유용한 한 셋트의 어드레스가능한 격납 장소로부터 나온다. 캐쉬(35)내에 격납된 이러한 데이타를 갖는 것은 바람직하지 못한데, 그 이유는 다른 프로세서들이 공유 장소들의 내용을 갱신(Update)할 수 있고, 갱신이 버스(13)을 거치지 않아 프로세서(30)에 의해 검출될 수 없기 때문이다. 프로세서(30)이 캐쉬로부터의 이러한 데이타를 사용한 경우에, 메모리 내의 적합한 장소의 내용에 대응할 수 없다. 이 CCTL(cache control) 신호 사용에 관련하며, 메모리(11)은 DAL(data address line,50)을 거쳐 데이타를 전송함과 동시에 CCTL(cache control ) 신호를 발생시키고, 데이타를 제거할 때까지 CCTL(cache control) 신호를 계속 발생시킨다.
또한, 버스(13)은 CLR WRT BUF(clear write buffer)신호를 전송하는 라인(62)를 포함한다. CLR WRT BUF(clear write buffer)신호는 프로세서(30) 외부에서 검출할 수 없게 되는 프로세서(30) 내부의 소정의 상태에 응답하여 프로세서(30)에 의해 발생된다. 예를들어 프로세서(30)은 프로세서 콘텍스트(context)를 스위치 시키는 명령을 실행하거나 인터럽트 서비스 루틴(interrupt service routine)또는 예외(exception)루틴을 실행하기 시작할 때 CLR WRT BUF(clear write buffer) 신호를 발생시킨다. CLR WRT BUF(clear write buffer)신호는 명령들을 실행하는 동안에 프로세서 제어회로(40)에 의해 발생되는 마이크로명령 내의 휠드(field)에 의해 제어된다.
CLR WRT BUF(clear write buffer) 신호가 발생되면, 기입 버퍼(23)은 메모리(11)내에 격납될 데이타를 갖고 있는지의 여부를 결정한다. 데이타를 갖고 있지 않으면, 아무것도 행해지지 않는다. 그러나, 기입버퍼(23)이 메모리(11)내에 격납될 데이타를 갖고 있으면 DMR(direct memory request) 신호를 발생시키고, 메모리(11)내에 나머지 데이타를 계속 격납한다. 발생된 DMR(direct memory request) 신호에 응답하여, 프로세서는 기입 버퍼(23)에 의해 무시되고 스톨되는 DMG(direct memory grant)신호를 발생시킨다. 기입 버퍼(23)은 갖고있는 모든 데이타가 메모리(11)내에 적합하게 격납될 때까지 DMR(direct memory request) 신호를 발생된 상태로 유지한다. 격납시에 에러가 발생하지 않으면, 기입 버퍼(23)은 DMR(direct memory request)신호를 무효화시켜, 프로세서(30)을 계속시키게 된다.
에러가 메모리(11)로의 기입중에 발생하면, 기입 버퍼(23)은 에러를 프로세서에 신호하여, 프로세서(30)이 현재 콘텍스트내의 에러를 배치 및 수정하기 위한 루틴을 프로세스하게 한다. 이것은 에러 회복(recovery)을 매우 간략화시킨다. 프로세서가 에러가 검출되기 전에 콘텍스트를 스위치시키게 되면, 데이타를 처음 발생시킨 콘텍스트를 결정하기가 어렵게 된다. 콘텍스트가 식별될 수 있는 경우에 에러 회복은 간략화되므로, 기입 버퍼(23)은 현재 콘텍스트로부터의 모든 데이타가 메모리(11)내에 적합하게 격납될 때까지 프로세서가 콘텍스트를 스위칭하지 못하게 한다.
[부동 소숫점 프로세서(31)과의 전송]
또한, 프로세서(30)은 (1) 제 2a 도에 관련하여 후술한 바와같이 수행될 동작을 표시하기 위해 부동 소숫점 명령의 연산 코드를 부동 소숫점 프로세서(31)에 전송하고, (2) 제 2b 도 및 제 2c 도에 관련하여 기술한 바와같이 프로세스하기 위해 부동 소숫점 프로세서(31)에 전송되도록 오포런드 데이타를 엔에이블시키며, (3) 제 2d 도에 관련하여 기술한 바와같이 부동 소숫점 프로세서(31)로부터 프로세서된 데이타를 얻기 위해 부동 소숫점 프로세서(31)에 접속된다. 프로세서(30) 및 부동 소숫점 프로세서(31)은 2셋트의 라인(70 및 71)에 의해 상호 접속되는데, 라인(70)은 CP STA( 1 : 0)(floating point status) 신호를 전송하고, 라인(71)은 CP DAT(5 : 0)(floating point data)신호들을 전송한다. 또한, 부동 소숫점 프로세서(31)은 DAL(data address line, 50), CLK 신호를 수신하기 위한 라인(60), ADRS STR(address strobe) 신호를 수신하기 위한 라인(54), ERR(error) 신호를 수신하기 위한 라인(55), 및 DMG( direct memory grant) 신호를 수신하기 위한 라인(57)을 포함하는 버스(13)의 다수의 라인들에 접속된다. CP STA(1 : 0)(floating point status) 신호 및 CP DAT(5 : 0)(floating point data) 신호는 라인(60)상의 CLK 신호와 동시에 전송된다.
유휴 상태인 동안, 부동 소숫점 프로세서(31)은 라인(60)상의 CLK 신호와 동시에 라인(70 및 71)상의 신호들의 상태를 반복적으로 샘플한다. 라인(71)들 중 최소한 1개의 라인이 발생된 레벨 신호를 전송하면, 부동 소숫점 프로세서(31)은 이 라인들 상의 신호들 및 라인(70)상의 신호들을 래치시킨다. 제 2a 도를 참조하면, 프로세서(30)이 부동 소숫점 프로세서(31)에 명령을 전송하면, CLK(clock)신호들의 선택된 수의 틱(tick)에 의해 정해진 기간 동안 라인(71)을 거쳐 CP DAT(5 : 0)(floating point data) 신호로서 명령의 연산 코드의 최소한 일부를 부동 소숫점 프로세서(31)에 전송한다. 이 기간동안, CLK(clock) 신호들의 틱들 중 1개의 틱과 동시에, 부동 소숫점 프로세서(31)은 신호들을 래치 및 격납시킨다. 이 기간의 종료시에, 프로세서(3)은 라인(70 및 71)로부터 신호들을 제거한다.
라인(71)을 거쳐 전송된 CP DAT(5 : 0)(floating point data)신호들은 수행될 부동 소숫점 산술 연산을 식별하기에 충분하고, 연산시에 사용될 오퍼런드의 수를 식별한다. 라인(71)을 거쳐 연산 정보를 전송함과 동시에, 다른 정보는 부동 소숫점 프로세싱에 관련된 다른 정보를 제공하는 라인(70)을 거쳐 CP STA(1 : 0)(floating point status) 신호로서 전송된다. 특히, 부동 소숫점 오퍼런드는 다수의 포오맷, 즉 데이타 형태로 엔코드될 수 있고, 오퍼런드의 포오맷에 관한 정보는 라인(70)을 거쳐 CP STA(1 : 0)(floating point status)신호로서 전송된다. 한 실시예 내에서, 또한 오퍼런드의 포오맷에 관한 몇개의 정보는 연산 정보와 함께 라인(71)을 거쳐 전송된다.
연산 코드를 수신할 때, 부동 소숫점 프로세서(31)은 수행될 연산 및 요구되는 다수의 오퍼런드를 결정하기 위해 이 연산 코드를 디코드한다. 프로세서(30)(연산 코드 전송에 응답할) 및 부동 소숫점 프로세서(31)(연산 코드 수신에 응답함)은 오퍼런드들이 DAL(data address line, 50)을 거쳐 전송된다. 데이타 형태 정보는 각각의 오퍼런드들의 포오맷을 부동 소숫점 프로세서(31)에 식별하기 위해 사용된다. 몇가지 오퍼런드 포맷에 관련하여, DAL(data address line, 50)을 거치는 단일 전송에 의해 제공될 수 있는 것보다 더 많은 비트들이 몇가지 오퍼런드 포맷 내에서 요구되므로, 단일 오퍼런드를 전송하기 위해 다중 전송이 요구된다. 그러므로, 데이타 형태 정보는 각각의 오퍼런드를 전송하기 위해 요구되는 DAL(data address line, 50)을 거치의 전송 수를 표시한다.
오퍼런드는 3개의 소오스들 중 1개의 소오스, 즉 메모리(11, 제 1 도), 캐쉬(35), 또는 데이타 통로(36)내의 프로세서의 레지스터내에 격납될 수 있다. 또한, 단일 연산 용으로 요구된 상이한 오퍼런드들은 3개의 소오스들 중 소정의 소오스내에 격납될 수 있다. 그러나, 단일 오퍼런드를 전송하기 위해 DAL(data address line, 50)을 거치는 다중 전송이 요구되면, 모든 전송들은 통상적으로 단일 소오스에 관련된다. 제 2b 도는 메모리로부터의 오퍼런드를 검색하기 위해 전송되는 신호들의 상태를 도시한 것이고, 제 2c 도는 캐쉬(35) 또는 데이타 통로(36) 내의 레지스터들로부터의 오퍼런드를 전송하기 위해 전송된 신호들을 도시한 것이다. 특히, 제 2b 도 및 제 3c 도는 DAL(data address line, 50)을 거치는 단일 전송을 실행하기 위한 신호들의 상태를 도시한 것인데, 다중 전송이 단일 오퍼런드용으로 요구될 수 있다.
제 2b 도를 참조하면, 오퍼런드가 메모리(11)내에 있으면, 프로세서(30)은 메모리(11)로부터의 검색을 개시한다. 특히, 프로세서(30)은 상술한 바와 같이 해독동작을 수생하여 ADRS(address) 신호들을 DAL(data address line, 50)상에 배치시키고, ADRS STR(address strobe)신호를 발생한다. 잠시후, 프로세서(30)은 CP STA(1 : 0)(floating point status)신호들을 이진값 0을 갖고 있는 라인(70)상에 배치시킨다. 즉, 2개의 CP STA(1 : 0)(floating point status)신호들을 무효화시킨다. 부수적으로, 프로세서(30)은 CP DAT(5 : 0)(floating point data)신호들이 DAL(data address line, 50)을 거쳐 전송된얼마나 많은 데이타가 오퍼런드내에 사용될지를 표시하는 어드레스 정렬 코드를 갖고 있는 라인(71)상에 CP DAT(5 : 4)(floating point data)신호들을 전송한다. 오퍼런드가 DAL(5 : 0)(data address line)들 상의 짧은 리터럴인 경우에 CP DAT(0)(floating point data)신호가 발생되고, 그렇지 않은 경우에는 CP DAT(1)(floating point data)신호가 발생된다.
부동 소숫점 프로세서(31)이 제 2a 도에 관련하여 상술한 과정내에서 연산 정보를 이미 수신하였기 때문에, 오퍼런드를 수신할 상태내에 있게 된다. 발생된 CP DA T(5 : 0)(floating point data)신호는 버스(13)의 선택된 라인, 특히 ADRS STR(addr ess strobe) 신호를 전송하는 라인(51)상의 신호들을 샘플할 것을 부동 소숫점 프로세서(31)에 표시한다. 부동 소숫점 프로세서(31)은 오퍼런드가 메모리(11)로부터 검색되고 있다는 것을 결정하기 위해 ADRS STR(address strobe)신호의 발생된 상태를 사용한다. 발생된 CP DAT(5 : 0)(floating point data)신호를 수신할때 ADRS STR(address strobe)신호가 발생되면, 부동 소숫점프로세서(31)은 라인(54)상의 RDY(ready)신호의 메모리(11)에 의한 발생에 응답하여 DAL(data address line, 50)데이타 신호들을 래치시킨다. 프로세서(30)은 전송을 완료하기 위해 DATA STR(datastrobe)신호와 응답한다.
메모리(11)이 발생된 RDY(ready)신호 대신에 발생된 ERR(error)신호와의 검색 요구에 응답하면, 부동 소숫점 프로세서(31)은 DAL(data address line, 50)상의 전송된 데이타 신호들을 래치시키지 않게 된다. 프로세서(30)은 요구될 수 있는 재시도(retry)와 같은 소정의 요구된 래치 회복 동작을 수행하고, 제 2b 도내에 도시한 동작을 반복한다.
제 2c 도는 오퍼런드가 캐쉬(35)내에 있던지 또는 데이타 통로(36)내에 있든지 간에 프로세서(30)으로부터 부동 소숫점 프로세서(31)로의 오퍼런드의 전송을 이해하는데 유용한 타이밍도를 도시한 것이다. 어느 한 경우에, 프로세서 DAL(data add ress line, 50)상의 데이타 신호, 및 제 2b 도에 관련하여 상술한 바와 같은 엔코딩을 갖고 있는 CT DAT(5 : 0)(floating point data) 신호를 배치시키고, 2개의 CP STA( 1 : 0 )(floating point status)신호를 무효화시킨다. 이 신호들을 CLK(clock)신호들의 선택된 수의 턱용으로 프로세서(30)에 의해 유지된다. 이 기간동안, 부동 소숫점 프로세서(31)은 DAL(data address line, 50)상의 신호들을 해치시킨다. 전체 오퍼런드를 전송하기 위해 DAL(data address line, 50)을 거치는 다중 전송이 요구되면, 제 2c 도에 도시한 순차가 반복된다.
오퍼런드의 데이타 형태가 전체 오퍼런드를 전송하기 위해 DAL(data address line, 50)을 거치는 다중 전송이 요구되도록 되면 메모리(11) 및 부동 소숫점 프로세서(31)은 완전한 오퍼런드가 전송될때까지 제 2b 도 및 제 2c 도내에 도시한 동작을 반복한다.
제 2b 도내에 도시한 동작들의 순차는 제 2c 도내에 도시한 동작들의 순차와 유사한데, 다음과 같은 차이가 있다. CP DAT(5 : 0)(floating point data)신호가 발생될때 ADRS STR(address strobe) 신호가 라인(51)상에 발생되면, 부동 소숫점 프로세서(31)은 오퍼런드(또는 오퍼런드의 일부가)가 DAL(data address line, 50)상에 있다는 것의 표시로서 발생된 RDY(ready)신호를 사용한다. 그러나, CP DAT(5 : 0)(floating point data) 신호가 발생될때 ADRS STR(address strobe)신호가 발생되지 않으면, 부동 소숫점 프로세서(31)은 오퍼런드(또는 오퍼런드의 일부)가 DAL(data address line, 50)상에 있다는 것의 표시로서 CP DAT(5 : 0)(floating point data)신호의 발생을 사용한다. 2가지 경우에, 첫번째 경우에는 RDY(ready)신호를 수신한 후 및 두번째 경우에는 발생되는 CP DAT(5 : 0)(floating point data)신호를 수신 한 후에 부동 소숫점 프로세서(31)은 라인(60)상의 CLK(clock)신호들과 동시에 DAL(data address line, 50)상의 신호들을 래치시킨다.
오퍼런드들이 전송된 후, 프로세서(30) 및 부동 소숫점 프로세서(31)은 부동 소숫점 프로세서(31)이 결과를 전송할 준비를 할때 프로세서(30)이 결과를 수신할 준비를 하는 상태로 된다. 제 2d 도는 프로세스된 데이타를 프로세서(30)에 전송하기 위해 프로세서(30) 및 부동 소숫점 프로세서(31)에 의해 사용된 동작들의 순차를 상세하게 도시한 타이밍도이다. 프로세스된 데이타는 결과가 네가티브(negative)인지 또는 0인지를 표시하고 이 결과에 관련하여 선택된 다른 사실을 표시하는 상태 코드와 부동 소숫점 프로세서(31)에 의해 수행된 계산값을 나타내는 데이타신호들로 구성된다.
제 2d 도를 참고하면, 처음에 프로세서(30)은 라인(70 및 71)을 거쳐 신호 코드를 전송하여, 프로세스된 데이타를 수신할 준비를 한다는 것을 표시하게 된다. 한 실시예내에서 CP STA(1 : 0)(floating point status)신호들은 모두 무효화되고, CP DAT(3)(floating point data)신호는 발생되는데, 다른 것들은 무효화된다. 그 다음에, 부동 소숫점 프로세서(31)은 라인(70 및 71)을 거쳐 전송할 수 있다.
부동 소숫점 프로세서(31)이 프로세스된 데이타를 전송할 준비를 하면, 이 프로세서(31)은 상태 코드를 나타내는 CP DAT(5 : 0)(floating point data)신호들과 동시에 이런 취지로 코드를 나타내는 CP STA(1 : 0)(floating point status)신호들을 전송한다. 부동 소숫점 프로세서(31)은 CLK(clock)신호들의 선택된 수의 턱용으로 이 신호들을 유지시킨 다음, 이런 취지로 라인(70 및 71)상의 코드와 함께 DAL(data address line, 50)상에 데이타 신호들을 배치시킨다. 프로세스된 데이타 신호들을 전송하기 위해 DAL(data address line, 50)을 거쳐 다중 전송되면, 부동 소숫점 프로세서(31)은 CLK(clock)신호들과 동시에 이 신호들을 전송한다.
부동 소숫점 프로세서(31)이 오퍼런드를 프로세서하는 동안, 및 그 결과를 프로세서(30)에 전송하기 위해, 프로세서(30)은 입/출력 서브시스템(12)를 메모리(11)과 전송시에 결합시키도록 DMG(direct memory grant)신호를 발생시킬 수 있다. 부동 소숫점 프로세서(31)은 프로세서(30)이 프로세스된 데이타를 수신할 준비를 한다는 것을 표시한 후에 라인(57)의 상태를 모니터한다. 부동 소숫점 프로세서(31)이 프로세스된 데이타를 복귀시킬 준비를 할 때 DMG(direct memory grant)신호가 라인(57)상에 발생되면, 부동 소숫점 프로세서(31)은 DMG 신호가 무효화된 후까지 프로세스된 데이타의 복귀를 지연시킨다.
부수적으로 에러가 예를들어 메모리(11)로부터의 오퍼런드를 검색할 때 발생하면, 프로세서(30)은 부동 소숫점 프로세서(30)로부터 프로세스된 데이타를 수시하기를 원한다는 것을 표시하지 않는다. 프로세서(30)은 부동 소숫점 프로세서(31)의 동작을 포기(abort)하지 않고, 그 대신 프로세서(30)이 새로운 연산 코드를 부동 소숫점 프로세서(31)에 전송하면, 부동 소숫점 프로세서(31)은 이 연산 코드에 따라 동작한다. 프로세스된 데이타를 수신할 준비를 한다는 것을 표시하기 위해 라인(70 및 71)을 거쳐 프로세서(30)에 의해 전송된 CP STA(1 : 0)(floating point status)신호 및 CP DAT(5 : 0)(floating point data)신호들은 소정의 연산 코드에 대응하지 않아야 하므로, 부동 소숫점 프로세서(31)이 이들 사이를 구별하게 한다.
[버스 인터페이스 회로(33)]
프로세서(30)의 한 실시예 내의 버스 인터페이스 회로(33)은 제 3 도에 도시되어 있다. 제 3 도를 참조하면, 버스 인터페이스 회로(33)은 버스(13, 제 1a 도)을 제어하는 상태기(270) 및 내부 IDAL버스(34)를 거치는 동작을 제어하는 제 2 상태기(271)을 포함한다. 이 2개의 상태기(270 및 271)은 후술하는 바와 같이 상태기(271)이 버스(13)을 거치는 동작들이 요구된다는 것을 상태기(270)에 표시하게 되는 몇 개의 플랙과 제어신호들, 및 동작들의 완료를 상태기(271)에 표시하기 위해 상태기(270)에 의해 제공된 응답 신호들을 제외하고는 독립적으로 동작한다.
내부 IDAL 버스(34)를 제어하는 상태기(271)은 제어논리회로(273)으로 표시되어 있는 프로세서(30)내의 다수의 소오스들, 버스(13)의 핀(274)로 표시되어 있는 버스(13)상의 몇개의 단자들, 및 제어회로(40, 제 1b 도)로부터의 마이크로 명령들로부터 입력신호들을 수신한다. 상태기(271)은 부동 소숫점 프로세서(31)과의 전송을 제어하는 논리회로(272)를 포함하는 프로세서(30)내의 회로들의 수를 제어하기 위한 출력신호, 및 캐쉬 및 어드레스 입력 멀티플랙서(264, 제 1b 도)의 기능을 제어하는 몇개의 신호들을 전송한다. 부수적으로, 상태기(271)로부터의 출력 신호들은 해독동작이 미결 상태에 있다는 것[RD REQ(read request)신호의 상태에 의해 표시됨], 기입 동작이 미결 상태로 있다는 것[WRT REQ(write request)신호의 상태에 의해 표시됨], 및 프로세서(30)으로부터 부동 소숫점 프로세서(31)로의 오퍼런드의 전송이 미결 상태에 있다는 것[BRDCST REQ(broadcast request)신호의 상태에 의해 표시됨]을 표시하는 플랙(도시하지 않음)을 갖고 있는 논리회로(276)을 제어한다.
또한, 제어논리회로(276)은 동작시스템의 제어하에서, 해독동작중에 버스(13, 제 1a 도)을 거쳐 수신된 소정의 정보가 캐쉬(35, 제 1b 도)내에 격납될지의 여부를 결정할 수 있다. 예를들어, 동작 시스템은 해독하는 모든 정보를 캐쉬(35)내에 격납시키기 위해 프로세서(30)을 조절할 수 있다. 선택적으로, 동작시스템은 프로세서 명령을 캐쉬(35)내에 격납시키지 못하게 하고, 단지 프로세서될 데이타만을 캐쉬내에 격납시키게 할 수 있다. 그러나, 일반적으로, 동작 시스템은 제 1a 도내에 도시한 시스템의 다른 부분 내의 다수의 제어레지스터로부터 수신되는 정보를 캐쉬(35)내에 격납시키지 못하게 하고, 단지 프로세스될 데이타만을 캐쉬내에 격납시키게 할 수 있다. 그러나, 일반적으로, 동작시스템은 제 1a 도내에 도시한 시스템의 다른 부분 내의 다수의 제어레지스터로부터 수신되는 정보를 캐쉬(35)내에 격납시키지 못하게 된다. 제어논리회로(276)은 버스(13)을 거쳐 수신된 정보의 캐슁을 제어하기 위해 CACHE ACC(cacheable access)신호를 조절한다.
상술한 바와 같이, 프로세서(30) 외부의 유니트는 라인(61,제 1a 도)상의 CC IL(cache control)신호에 의해 전송이 캐쉬될지의 여부를 제어할 수도 있다.
상태기(271)은 다른 제어논리회로(도시하지 않음)를 직접적으로 또는 간접적으로 통해, 래치(250 내지 252)내로의 기입 데이타 및 해독 및 기입 어드레스의 로딩을 제어하고, 또한 핀(274)상의 신호들의 상태에 기초를 두고 입력 데이타 래치(254)로부터의 해독 데이타의 전송을 제어한다.
버스(13)을 거치는 전송을 제어하는 상태기(270)은 핀(274)로부터의 신호들뿐만 아니라 제어논리회로(276)으로부터 RD REQ(read request), WRT REQ(write request), 및 BRDCST REQ(broadcast request)신호들을 수신하고, 버스(13)을 구성하는 몇 개의 신호들의 상태를 제어하는 논리회로(277)에 전송되는 신호들을 발생시킨다. 부수적으로, 상태기(270)은 신호들이 버스(13)의 DAL(data address line, 50)상에 결합되고 이 DAL(50)으로부터 수신되게 하도록 래치(250, 251, 252 및 254) 및 멀티플랙서(253, 제 1b 도)의 동작을 제어하는 제어논리회로(280)에 전송된 신호들을 발생시킨다. 해독동작이 완료된 후, 상태기(270)은 제어논리회로(276)이 RD REQ(read request)신호를 무효화시키게 할 수 있는 CLR RD FLAGS(clear read flags)신호를 발생시킨다.
이 배경을 참조하여, 이제부터 제 3 도에 도시한 버스제어회로(33)의 동작에 대해서 설명하겠다. 기입동작 중에, 제어회로(40)에 의해 엔에이블된 바와 같이, DMA OR WRT PND(DMA or write pending)신호가 제어논리회로(273)에 의해 발생되지 않으면, 상태기(271)은 먼저 기입될 장소의 어드레스를 기입 어드레스래치(251, 제 1b 도)내에 로드시키고, 이 장소가 캐쉬(35, 제 1b 도)내에 캐쉬되는 지를 결정한다. DMA OR WRT PND 신호가 발생되면, 제 1a 도 내에 도시한 시스템내의 다른 유니트는 버스(13)을 사용하고 있거나, 상태기(271)은 각각 버스(13)을 거쳐 전송되지 않은 래치(251 및 250, 제 1b 도)내에 로드되도록 기입 어드레스 및 데이타를 엔에이블시킨다.
DMA OR WRT PND(DMA or write pending)신호가 발생되지 않으면, 기입될 장소가 캐쉬되든지 여부의 결정이 행해진다. 이 장소가 캐쉬되면, 이 장소에 대응하는 캐쉬(35)내의 엔트리를 새로운 데이타로 갱신되어야 한다. 이 장소가 캐쉬되는지 여부를 결정하기 위해, 상태기(271)은 캐쉬가 여부를 결정하기 위해, 상태기(271)은 캐쉬가 해독되게 할 수 있는 CACHE FTN(1:0)(cache function)신호들, 가상 어드레스 변환회로(37)에 의해 발생된 실제 어드레스를 사용하기 위해 멀티플랙서(264)를 엔에이블시키는 CACHE ADRS(1:0)신호를 발생시킨다. 이 동작중에, IDAL CACHE XMIT(cache trasmit) 신호는 내부 데이타 버스(34)상에 결합될 캐쉬로부터의 데이타를 억제하기 위해 무효화된다. 장소가 캐쉬되면, HIT 신호가 AND 게이트(312)에 의해 발생하게되므로, 제어논리회로(273)으로부터의 MISS 신호의 상태내에 반영된다. MISS 신호가 발생되지 않으면, 기입될 장소는 캐쉬된다. 무효화된 MISS신호에 응답하여, 상태기(271)은 캐쉬, 기입동작을 엔에이블시키는 CACHE FTN(1 : 0)(cache function)신호 및 가상 어드레스 변환회로(37)로부터의 어드레스를 사용하도록 멀티플랙서(264)를 엔에이블시키는 CACHE ADRS(1 : 0)(cache address)신호를 발생시킨다. 동시에, 캐쉬 엔트리내에 기입된 데이타는 기입 데이타 래치(250, 제 1b 도)내에 격납되고, 제어논리회내의 플렉들은 발생된 WRT REQ(write request)신호를 발생시키도록 조절된다. 이 동작중에, 가상 어드레스 변환회로가 동작하지 못하게 하기 위해 MBOS STALL 신호가 발생된다.
한편, MISS 신호가 발생되면, 기입될 장소는 캐쉬되지 않는다. 발생된 MISS 신호에 응답하여, 상태기는 기입데이타 래치(250, 제 1b 도)내에 래치되도록 기입 데이타를 엔에이블시키고 제어논리회로(276)에 의해 발생되도록 WRT REQ 신호를 엔에이블 시킨다. 부수적으로, CACHE ADRS(1 : 0) (cache address)신호들은 리프레쉬 카운터(265, 제 1b 도)를 증가시키고, 리프레쉬되게 하기 위해 어드레스를 플랙(42), 태그(41) 및 데이타 격납회로(38, 제 1b 도)에 결합시키도록 멀티플랙서(264)를 엔에이블시키도록 조절된다. 또한, 이 동작중에, 다른 실제 어드레스를 발생시키지 못하게 하도록 가상 어드레스 변환회로가 동작하지 못하게 하기 위해 MBOX STALL 신호가 발생된다.
기입 동작이 완료된 후, DMA OR WRT PND(DMA or write pending)신호는 무효화된다. 이것은 다른 어드레스 및 기입 데이타가 래치(250 및 251, 제 1b 도)내에 로드되게 한다. 또한, 리프레쉬 동작은 엔에이블된다.
해독동작중에 상태기(271)에 의해 수행되거나 엔에이블된 동작들은 요구된 정보가 명령인지 데이타인지의 여부, 또는 요구된 정보가 캐쉬(35, 제 1b 도)내에 있는지의 여부에 따른다. 어드레스에 의해 식별된 장소가 캐쉬되는 경우, 및 캐쉬 엔트리를 사용불가능하게 만드는 태그(41) 또는 데이타(38, 제 1b 도)상에 패리티에러가 없는 경우에 정보는 캐쉬내에 있다. 명령을 검색하기 위해 해독동작이 요구될 수 있는데, 이 경우에 제어논리회로(273)은 IB REQ(instruction buffer request)신호를 발생시킨다. 그렇지 않으면, 제어회로(40)은 RD(read)신호를 발생시킨다. 요구된 정보가 캐쉬(35)내에 있지 않으면, 제어논리회로(273)은 READ MISS 신호를 발생시킨다. 이 READ MISS 신호는 제 1b 도에 도시한 HIT 신호의 보수이다.
제어회로(40)으로부터의 발생된 RD(read)신호 또는 IB REQ(instruction buffer request)신호의 발생에 응답하여, 상태기(271)은 캐쉬해독을 엔에이블시키는 CACHE FTN(1:0)(cache function)신호, 및 가상 어드레스 변환 논리회로(37)로부터의 어드레스를 사용하기 위해 멀티플랙서(264, 제 1b 도)를 엔에이블시키는 CACH E ADRS(1:0)(cache address)신호를 발생시킨다. 동시에, 상태기(271)은 해독 어드레스 래치(252)내에 로드되도록 가상 어드레스 변환논리 회로(37)로부터의 어드레스를 엔에이블시키는 ARM ADRS STR(arm address strobe)신호를 발생시킨다. 동작이 IB REQ 신호에 응답하였으면, 상태기(271)은 PREV IB REQ(previous instruct ion buffer request)신호의 발생을 엔에이블시키는 플랙을 셋트시키기 위해 제어논리회로(273)을 엔에이블시키는 INIT IB REQ(initiate instruction buffer request)신호를 발생시킨다. 정보가 캐쉬(35)내에 있으면, 상태기 (271)은 정보가 캐쉬(35)로부터 결합되게 하고, 동작은 종료된다.
정보가 캐쉬(35)내에 있지 않고, DMA OR WRT PND(DMA or write pendi ng)신호가 발생되면, 상태기(271)은 프로세서(30)을 스톨시키기 위해 STALL 및 M BOX STALL 신호를 발생시키고, 리프레쉬 동작을 허용하는 CACHE FTN(1 : 0)신호를 발생시킨다. 스톨은 기입동작이 해독동작이 진행되기 전에 완료되게 한다.
DMA OR WRT PND(DMA or write pending)신호가 무효화되면, 해독동작이 진행된다. 상태기(271)은 RD REQ(read request)신호를 발생시키도록 제어논리회로(276)을 엔에이블시킨다. 그 다음 상태기(271)은 해독동작의 종료부를 결정하기 위해 CACHEABLE, CCTL(cache control), RDY(ready) 및 ERR(error)신호들을 모니터한다. CACHEABLE 또는 CCTL(cache control)신호들이 정보가 캐쉬되지 말아야 한다는 것을 표시하면, 버스(13)을 거치는 1회 전송이 있게 된다. 한편, 정보가 캐쉬될 경우에, 2회 전송이 요구되는데, 1회는 캐쉬엔트리 내의 하위(low)워드용이고, 다른 1회는 상위(high)워드용이다.
전송이 캐쉬되면, RDY(ready)신호가 수신될 때, DAL PAR ERR(parity erro r)신호가 발생되지 않아, 수신된 정보내에 패리티 에러가 없다는 것을 표시하게 되면, 상태기(271)은 캐쉬(35)내의 엔트리를 선택하기 위해 가상 어드레스 변환회로로부터의 어드레스를 사용하도록 멀티플랙서(264, 제 1b 도)를 엔에이블시키고, 선택된 상위 또는 하위 워드내에 로드되도록 정보를 엔에이블시킨다. 정보가 로드될 캐쉬(35)내의 워드는 VA(2)(virtual address)비트의 상태에 따른다. 그 다음, 이 정보는 데이타통로(36, 제 1b 도)에 결합된다.
DAL PAR ERR(parity error)신호가 발생되거나, ERR(error)신호가 라인(55,제 1a 도)상에 발생되어 전송시에 결합된 다른 유니트에 의한 에러 응답을 표시하게 되면, 동작은 PREV IB REQ(previous instruction buffer request)신호가 발생되는 지의 여부에 따른다. PREV IB REQ 신호가 발생되면, 제어회로(40, 제 1b 도)는 수정동작을 취하게 하도록 발생된 IB FILL ERR(instruction buffer fill error)신호에 의해 통보를 받는다. PREV IB REQ(previous instruction buffer request)신호가 발생되지 않으면, 프로세서(30)을 스톨시키기 위해 STALL 및 MBOX STALL 신호들이 발생되고, TRAP REQ(trap request)신호가 발생되므로, 프로세서 제어회로(40)이 선택된 회복동작들을 수행하게 한다.
수신된 정보가 캐쉬되고, 데이타가 수신될때 ERR(error)신호도 DAL PAR ERR(parity error)신호도 발생되지 않으면, 상태기(271)은 캐쉬(35)내에 수신 및 격납되도록 제2워드를 엔에이블시키도록 진행된다. 제 2 워드가 적합하게 수신되면, 이 제2워드는 상술한 바와 같이 캐쉬(35)내에 격납된다. 상태기(271)은 가상 어드레스 변환회로(37)로부터의 어드레스를 사용하도록 멀티플랙서(264)를 엔에이블시키는 CACHE ADRS(1 : 0)(cache address)신호, 및 캐쉬 엔트리내에 격납되도록 제 2 워드를 엔에이블시키는 CACHE FTN(1 : 0)(cache function)신호들을 발생시킨다. 그러나, 상태기(271)은 데이타 통로(36)에 전송되도록 정보를 엔에이블시키지 않는다.
한편 ERR(error)신호 또는 DAL PAR ERR(parity error)신호들이 발생하면, 가상 어드레스 변환회로(37)을 스톨시키기 위해 MBOX STALL 신호가 발생되고, 제 1 워드가 기입된 캐쉬내의 엔트리는 무효 엔트리로 표시된다. 동시에, CACHE ADRS (1 : 0) 신호들은 캐쉬(35)의 내용을 리프레쉬하기 위해 리프레쉬 카운터(265)로부터의 리프레쉬 어드레스를 사용하고 이 카운터를 증가시키도록 멀티플랙서(264)를 엔에이블시키기 위해 조절된다.
상태기(271)은 이 상태기(271)이 캐쉬(35)내에 기입되거나 이 캐쉬(35)로부터 해독되도록 정보를 엔에이블시키지 않을때마다 수행되도록 리프레쉬 동작을 엔에이블시킨다. 동작을 발생시키기 위해, 상태기(271)은 종래 방식으로 격납회로(38, 41 및 42, 제 1b 도)의 내용을 리프레쉬하기 위해 리프레쉬 카운터(265)로부터의 리프레쉬 어드레스 신호들을 사용하도록 멀티플렉서(264)를 엔에이블시키는 CACHE ADRS 신호들을 발생시킨다.
또한, 상태기(271)은 제어논리회로(273)으로부터의 DMA INV REQ(invalid ate request)신호에 응답하여 무효화되도록 캐쉬(35)내의 엔트리들을 엔에이블시킨다. 제 1b 도에 관련하여 상술한 바와 같이, 이 신호는 발생된 CCTL(cache control)신호와 발생된 ADRS STR(address strobe)신호가 제 1a 도 내에 도시한 시스템내의 다른 유니트에 의해 발생될때 CCTL(cache control)신호와 발생된 ADRS STR(address strobe)신호의 동시 발생에 응답하여 발생된다. 이것은 다른 유니트가 메모리(11)과의 DMA(direct memory access)동작을 수행하고 있을 때 발생하므로, DMG(direct memory grant)신호가 발생된다. 다른 유니트가 캐쉬(35)내에 캐쉬되는 메모리(11)내의 장소로 데이타를 전송하면, 캐쉬 엔트리는 무효 엔트리로 표시된다. 제 1b 도를 참조하면, DMG와 ADRS STR(address strobe)신호의 동시 발생에 응답하여, AND 게이트(401)은 이 경우에 DAL(data address line, 50)상의 어드레서 신호들인 신호들을 래치시키도록 입력데이타래치(254)를 엔에이블시킨다.
DMA INV REQ(invalidate request)신호에 응답하여, 상태기(271)은 먼저 캐쉬로부터의 데이타가 내부버스(34)상에 결합되게 하지 않고서 입력데이타 래치(254)내의 어드레스를 사용하여 캐수(35)의 해독 동작을 수행한다. MISS신호가 발생되면, 장소는 캐쉬되지 않고, 아무 동작도 발생하지 않는다.
그러나, MISS 신호가 무효화되면, 입력 데이타 래치(254)내의 어드레스에 의해 식별된 장소는 캐쉬되고, 상태기는 캐쉬 무효화 동작을 개시한다. 이 경우에, 상태기는 무효화 동작을 엔에이블시키는 CACHE FTN(1:0)(cache function)신호 및 무효화시에 입력 데이타 래치의 내용을 사용하도록 멀티플렉서(264)를 엔에이블시키는 CACHE ADRS(1:0)(cache address)신호들을 발생시킨다.
상태기(270)은 CCTL(cache control), DMR(direct memory request), 버스(13)으로부터의 RDY(ready) 및 ERR(error)신호, RD REQ(read request), WRT REQ(write request), BRDCST REQ(broadcast request), 제어논리회로(276)으로부터의 CACHE ACC(cache access)신호, 및 상태기(271)로부터의 INH DMA(inhibit direct memory access) 및 ARM RD REQ(arm read request)신호들에 응답하여 동작한다. 상태기(270)이 발생된 DMR (direct memory request)신호를 수신하여, INH DMA(inhibit DMA) 또는 BRDCST REQ(broadcast request)신호들이 발생되지 않는한 제 1a 도 내에 도시한 시스템 내의 다른 유니트가 버스(13)을 거쳐 전송을 수행하기 원한다는 것을 표시하게 되면, 상태기는 DMG(direct memory grant)신호를 발생시키도록 제어논리회로(277)을 엔에이블시키는 DIS DMG(disable direct memory grant)신호를 무효화 시킨다. 발생된 DMG(direct memory grent) 신호는 버스(13)을 거쳐 전송을 수행하도록 다른 유니트를 엔에이블시킨다. 부수적으로, 상태기(270)은 시스템내의 다른 유니트들이 사용하게 하기 위해 DAL(data address line, 50)을 조절하도록 DAL 제어논리회로(280)을 엔에이블시키는 DATA IN 신호를 발생시킨다. 또한, 상태기(270)은 다른 유니트들이 DATA STR(data strobe), ADRS STR(address strobe), 및 TR TYPE(transfer type)신호들을 사용하게 하도록 제어논리회로를 엔에이블시키기 위해 TRI-STATE STR 신호를 발생시킨다.
선택적으로, 시스템내의 다른 유니트가 버스(13)을 거쳐 전송을 전혀 수행하지 않으면, 상태기(270)은 제어논리회로(276)으로부터의 RD REQ, WRT REQ 및 BRD CST REQ(broadcast request)신호들에 응답하여 전송을 엔에이블시킨다. WRT RE Q(write request)신호가 발생되어 래치(251 및 250, 제 1b 도)내의 기입 어드레스 및 기입 데이타를 표시하는 경우에, DMR 신호가 발생되지 않으면, 상태기(270)은 래치(251)로부터의 기입 어드레스를 DAL(data address line, 50)상에 결합시키도록 멀티플렉서(253)을 엔에이블시키는 DAL CONT(1 : 0)(DAL contents)신호들을 발생시킨다. 동시에, 상태기(270)은 ADRS STR(address strobe)신호를 발생시키도록 제어논리회로(277)을 엔에이블시키는 ADRS STR EN(address strobe enable)신호를 발생시킨다.
다음에, 상태기(270)은 기입 데이타 래치(250)의 내용을 DAL(data address line, 50)상에 결합시키도록 멀티플렉서(253)을 엔에이블시키는 DAL CONT(1 : 0) (DAL contents)신호를 발생시킨다. 동시에, 상태기(270)은 DATA STR(data strobe) 신호를 발생시키도록 제어논리회로(277)을 엔에이블시키는 DATA STR EN(data strobe enable) 신호를 발생시킨다. 그 다음에, 상태기는 RDY(ready) 또는 ERR(err or)신호가 발생될 때까지 대기한다. 발생된 RDY 신호가 수신되면, 동작은 ADRS ST R(address storbe) 및 DATA STR(data strobe)신호들을 무효화시키도록 제어논리회로(277)을 엔에이블시키는 ADRS STR EN(address strobe enable) 및 DATA STR EN(data strobe enable)신호들을 무효화 시킴으로써 종료되고, 제어논리회로(276)을 WRT REQ 신호를 무효화시키도록 엔에이블된다.
한편, 발생된 ERR(error)신호가 수신되면, 상태기(270)은 래치(250)으로부터의 기입 데이타신호를 DAL(data address line, 50)상에 결합시키도록 멀티플랙서(253)을 엔에이블시키는 DAL CONT(1 : 0)(DAL contents)신호를 발생시키는 재시도를 수행한다.
RDY(ready)와 ERR(error) 신호들이 발생되면, 재시도가 신호되고, 전송이 다시 시도된다.
다른 동작이 전혀 발생되지 않으면, 상태기(270)은 해독 어드레스 래치(252)의 내용을 DATL(data address line, 50)상에 결합시키도록 멀티플랙서(253)을 엔에이블시키는 DAL CONT(1:0)(DAL contents)신호들을 발생시킨다. 이것은 다른 신호들 및 상태들이 해독 동작을 발생시킬 때 상태기(270)이 신속히 해독 동작을 개시하게 된다. 해독 동작중에, RD REQ(read request)신호가 발생되면, 상태기(270)은 ADRS STR(address trobe)신호를 발생시키도록 제어논리회로(277)을 엔에이블시키는 ADRS STR EN(address strobe enable)신호를 발생시킨다. 그 다음, 상태기(270)은 시스템내의 다른 유니트들이 사용할 수 있게 하기 위해 DAL(data address line, 50)을 조절하도록 제어논리회로(280)을 엔에이블시키는 DATA IN(data in)신호를 발생시킨다. 동시에, 이 상태기는 DATA STR(data strobe)신호를 발생시키도록 제어 논리회로(277)을 엔에이블시키는 DATA STR EN(data strobe enable)을 발생시킨다.
다음 동작들은 CACHE ACC(cachealbe access)신호가 제어논리회로(276)에 의해 발생되는지의 여부에 따른다. 신호가 발생되면, 검색된 데이타는 캐쉬가능하게 되므로, 2개의 워드들이 버스(13)을 거쳐 해독된다. 한편, CACHE ACC(cacheable access)신호가 발생되지 않으면, 검색된 데이타는 캐쉬불가능하게 되고, 단지 1개의 워드만이 버스(13)을 거쳐 해독된다. CACHE ACC(cacheable access) 신호가 발생되지 않으면, 상태기(270)은 발생시에 DAL(data address line, 50)상의 신호들을 수신하도록 입력 래치(254, 제 1b 도)를 엔에이블시키는 RD DATA LAT(read data latch)신호를 발생시킨다. RD DATA LAT(read data latch)신호가 그 후에 무효화되면, 신호들은 입력 래치에 의해 래치된다. 상태기(270)은 ERR(error)신호가 무효화될 경우에 발생된 DAL(ready)신호에 응답하여 RE DATA LAT(read data latch)신호를 무효화시키고, CLR RD FLAGS(clear read flags)신호를 발생시킨다. 발생된 CLR RD REQ 신호에 응답하여, 제어논리회로(276)은 RD REQ(read request)신호를 무효화시킨다.
한편, CACHE ACC(cacheable access)신호가 발생되면, 해독 동작이 상술한 바와 같이 수행된다. 데이타가 입력 데이타 래치내에서 래치될 때 CCTL(cache control)신호가 발생되지 않으면, 제 2 동작도 수행된다. 한편, CCTL(cache control)신호가 발생되어 전송시에 결합된 다른 유니트가 제이타의 캐싱을 배제(precluding)한다는 것을 표시하면, 제 2 동작은 수행되지 않는다.
상태기(271)은 상태기(270)이 다른 유니트로부터의 DMR(direct memory request)신호의 수신에 응답하여 DMG(direct memory grant)신호를 발생시키지 못하게 하기위해 INH DMA(inhibit direct memory access)신호를 사용한다. INH DMA(inhibit direct memory access)신호는 부동 소숫점 프로세서(31, 제 1a 도)와의 소정의 전송중에 발생된다.
제어회로(40)으로부터의 RD BRDCST(read broadcast) 및 BASIC BRDCS T(basic broadcast)신호는 캐쉬(35) 또는 레지스터(255)로부터의 부동 소숫점 오퍼런드 정보를 데이타 통로(36)내에 전송하도록 상태기(271)을 엔에이블시킨다(제 1b 도 참조). 또한, 제어논리회로(276)은 상술한 바와 같이 이 정보를 전송하도록 상태기(270)을 엔에이블시키기 위해 BRDCST REQ(broadcast request)신호를 발생시키도록 엔에이블시킨다. 또한, 상태기(271)은 FPP PND(floating point processor pending)신호를 발생시키는 플랙을 셋트시키도록 제어논리회로(273)을 엔에이블시킨다. 상태기(271)은 부동 소숫점 프로세서(31)로부터의 부동소숫점 연산의 결과를 수신할 준비를 한다는 것을 FPP 인터페이스회로(272)에 표시하도록 SIG FPP(floating point processor)신호를 발생시킨다. 상술한 바와 같이 조건 코드들이 준비되면, 인터페이스회로(271)은 CP OK 신호를 발생시키고, 결과 데이타가 준비되면, 인터페이스 회로(272)는 CP REY(ready)신호를 발생시킨다. CP RDY(ready)신호에 응답하여, 상태기(271)은 결과 데이타를 수신하도록 상태기(270)을 엔에이블시킨다. 부동 소숫점 프로세서(31)이 에러를 신호하면, 인터페이스회로(271)은 CP ERR(error)신호를 발생시킨다. CP OK, CP RDY 또는 CP ERR 신호에 응답하여, 상태기(271)은 리셋트되도록 FPP PND(floating point processor pending)신호를 제어함으로써 이 신호를 무효화시키는 플랙을 엔이블시킨다.
버스 인터페이스회로(33)은 다수의 장점들을 제공한다. 첫째, 각각 상이한 동작을 제어하고 플랙을 통해 통신하는 2개의 상태기(270 및 271)을 사용함으로서, 회로가 현저하게 간략화된다.
또한, 상태기(271)은 캐쉬(35)의 리프레싱을 엔에이블시켜, 동적 메모리 소자들을 사용하게 한다. 이것은 캐쉬의 물리적 크기를 감소시키거나, 선택적으로 과거의 경우와 동일한 면적내에 더 많은 캐쉬 격납량을 제공한다.
또한, 버스 인터페이스회로(33)은 캐쉬가능한 데이타를 검색할 때, 먼저 프로그램에 의해 요구되는 데이타를 검색한 다음, 캐쉬 엔트리내에 격납시키기 위해 다른 워드를 검색한다. 종래 시스템내에서, 데이타워드들은 메모리내에 격납된 순서로 검색되었으므로, 제 1 데이타워드는 프로그램에 의해 즉시 요구된 데이타 워드로 될 수 없었다. 이것은 제 2 워드가 검색될 때까지 프로세싱의 재개시를 지연시켰다.
부수적으로, 버스 인터페이스회로(33)은 해독 어드레스가 발생되고 해독 어드레스 래치(252)내에서 래치 되는 크기로 해독 동작이 개시되게 하지만, 기입 동작은 미결 상태로 있게 된다. 해독 동작은 미결 상태인 기입 동작이 완료될 때까지 완료되지 않지만, 기입 동작이 완료되었을때 해독 어드레스는 즉시 전송될 수 있다.
최종적으로, 버스 인터페이스호로는 해독 동작 또는 기입 동작이 프로세서(30)내에 셋 업 되었는지에 관계없이 제 1a 도 내에 도시한 시스템 내의 다른 유니트들에 의해 수행된 직접 메모리 억세스 동작에 의해 캐쉬엔트리들이 무효화되게 한다. 즉, 캐쉬 엔트리 무효화 동작은 래치(254)에 수시된 DMA 어드레스에 응답하여 행해질 수 있지만, 기입 데이타 및 기입 어드레스는 각각의 래치(251 및 250) 내에서 래치되고, 해독 어드레스는 래치(252)내에서 래치된다. 이것은 무효화 프로세스를 간략화시킨다.
상술한 설명은 본 발명의 특수한 실시예에 제한 되었다. 그러나 본 발명의 몇가지 또는 모든 장점을 보유하면서, 본 발명은 여러가지 형태로 변형 및 변경될 수 있다. 그러므로, 첨부한 청구서의 범위의 목적은 본 발명의 원리 및 범위내에서 모든 이러한 변형 및 변경을 커버하기 위한 것이다.

Claims (20)

  1. 데이타 전송라인, 상태 전송라인 및 정보 전송라인을 포함하는 버스에 의해 상호 접속된 중앙 프로세서 유니트 및 보조 프로세서 유니트를 포함하는 디지탈 데이타 프로세싱 시스템에 있어서, 보조 프로세서 유니트가 각각의 명령에 의해 식별된 정보에 따라 연산 코드를 각각 포함하는 선택된 명령을 실행하고, 중앙 프로세서 유니트와 보조 프로세서 유니트가 데이타 전송라인을 거쳐 프로세스될 데이타에 관련된 연산 코드 및 정보로 구성되는 데이타를 반복적으로 전송하기 위해 데이타 전송라인에 접속된 데이타 전송장치, 정보 전송라인을 거치는 정보의 전송을 엔에이블시키기 위해 정보 전송라인에 접속된 정보 전송장치, 및 상태 라인을 거쳐 상태신호를 전송하기 위해 상태 전송라인에 접속된 상태 전송장치를 포함하며, 중앙 프로세서 유니트가 연산 코드를 보조 프로세서에 전송하도록 데이타 전송장치를 엔에이블시키고 프로세스될 정보를 보조 프로세서에 전송하도록 정보 전송장치 및 데이타 전송장치를 엔에이블시키며 프로세스된 정보를 수신할 준비를 한다는 것을 보조 프로세서 유니트에 표시하도록 상태 전송장치를 엔에이블시키고 상태 전송장치에 의한 신호의 수신에 응답하여 프로세스된 정보를 수신하도록 데이타 전송장치 및 정보 전송장치를 반복적으로 엔에이블시키기 위해 각각의 데이타 전송장치, 정보 전송장치 및 상태 전송장치에 접속되고 보조 프로세서 유니트에 의해 프로세스될 선택된 명령의 수신에 응답하는 제어장치를 포함하고, 보조 프로세서 유니트가 프로세서 유니트로부터 연산 코드를 수신하도록 데이타 전송장치를 엔에이블시키고 프로세스될 정보를 수신하도록 정보 전송장치 및 데이타 전송장치를 엔에이블시키며 프로세서 유니트가 결과를 수신할 준비를 한다는 것을 표시하는 상태 전송장치에 의한 신호의 수신에 응답하여 프로세스된 정보를 전송하도록 데이타 전송장치 및 정보 전송장치를 엔에이블시키기 위해 각각의 데이타 전송장치, 정보 전송장치 및 상태 전송장치에 접속된 제어장치를 포함하는 것을 특징으로 하는 디지탈 데이타 프로세싱 시스템.
  2. 보조 프로세서 유니트를 포함하는 디지탈 데이타 프로세싱 시스템 내에 사용하기 위한 중앙 프로세서 유니트에 있어서, 중앙 프로세서 유니트 및 보조 프로세서 유니트가 데이타 전송라인, 상태 전송라인 및 정보 전송라인을 포함하는 버스에 의해 상호접속되고, 보조 프로세서 유니트가 각각의 명령에 의해 식별된 데이타에 따라 연산 코드를 각각 포함하는 선택딘 명령을 실행하며, 프로세서 유니트가 데이타 전송라인을 거쳐 프로세스될 정보에 관련된 연산 코드 및 정보를 반복적으로 전송하기 위해 데이타 전송라인에 접속된 데이타 전송장치, 정보 전송라인을 거쳐 프로세스될 정보의 전송을 엔에이블시키기 위해 정보 전송라인에 접속된 정보 전송장치, 상태 라인을 거쳐 상태 신호를 전송하기 위해 상태 전송라인에 접속된 상태 전송장치, 연상코드를 보조 프로세서에 전송하도록 데이타 전송장치를 엔에이블시키고, 프로세스될 정보를 보조 프로세서 유니트에 전송하도록 정보 전송장치 및 데이타 장치를 엔에이블시키며, 프로세스된 정보를 수신할 준비를 한다는 것을 보조 프로세서 유니트에 표시하도록 상태 전송장치를 엔에이블시키고, 보조 프로세서 유니트로부터 상태 전송장치에 의한 신호의 수신에 응답하여 프로세스된 정보를 수신하도록 데이타 전송장치 및 정보 전송장치를 엔에이블시키기 위해 데이타 전송장치, 정보 전송장치 및 상태 전송장치에 접속되고 보조 프로세서 유니트에 의해 프로세스될 선택된 명령의 수신에 응답하는 제어장치를 포함하는 것을 특징으로 하는 중앙 프로세서 유니트.
  3. 중앙 프로세서 유니트를 포함하는 디지탈 데이타 프로세싱 시스템내에 사용하기 위한 보조 프로세서 유니트에 있어서, 중앙 프로세서 유니트 및 보조 프로세서 유니트가 데이타 전송라인, 상태 전송라인 및 정보 전송라인을 포함하는 버스에 의해 상호 접속되고, 보조 프로세서 유니트가 각각의 명령에 의해 식별된 데이타에 따라 연산코드를 각각 포함하는 선택된 명령을 실행하며, 보조 프로세서 유니트가 데이타 전송라인을 거쳐 프로세스될 데이타에 관련된 연산코드 및 정보를 반복적으로 수신하기 위해 데이타 전송라인에 접속된 데이타 전송장치, 정보 전송라인을 거쳐 프로세스될 정보를 수신하고 정보 전송 라인을 거쳐 프로세스된 정보를 전송하기 위해 정보 전송 라인에 접속된 정보 전송장치, 상태 라인을 거쳐 상태 신호를 전송하기 위해 전송 라인에 접속된 상태 전송장치, 및 프로세서 유니트로부터 연산 코드를 수신하도록 데이타 전송장치를 엔에이블시키고 프로세스될 정보를 수신하도록 정보 전송장치 및 데이타 전송장치를 엔에이블시키며 프로세서 유니트가 결과를 수신할 준비를 한다는 것을 표시하는 상태 전송장치에 의한 신호의 수신에 응답하여 프로세스된 정보를 전송하도록 데이타 전송장치 및 정보 전송장치를 엔에이블시키기 위해 데이타 전송장치, 정보 전송장치 및 상태 전송장치에 접속된 제어장치를 포함하는 것을 특징으로 하는 보조 프로세스 유니트.
  4. 제 1 항에 있어서, 중앙 프로세서 유니트 제어 장치가 데이타 전송장치를 거쳐 연산 코드를 보조 프로세서 유니트에 전송하도록 데이타 전송장치를 엔에이블시키기 위해 보조 프로세서 유니트에 의해 프로세스 될 명령의 수신에 응답하는 중앙 프로세서 유니트 데이타 전송 제어장치, 연산코드를 보조 프로세서 유니트에 전송한 다음에 프로세스될 정보를 보조 프로세서 유니트에 전송하도록 중앙 프로세서 유니트 정보 전송 장치 및 중앙 프로세서 유니트 데이타 전송장치를 엔에이블시키기 위해 중앙 프로세서 유니트 데이타 전송 제어장치, 중앙 프로세서 유니트 정보 전송장치 및 중앙 프로세서 유니트 데이타 전송장치에 접속된 중앙 프로세서 유니트 정보 전송 제어장치, 프로세스될 정보의 보조 프로세서 유니트로의 성공적인 전송을 엔에이블 시키는 중앙 프로세서 유니트 정보 전송제어장치에 응답하여 결과를 수신할 준비를 한다는 표시를 보조 프로세서 유니트에 전송하도록 중앙 프로세서 유니트 상태 전송장치를 엔에이블시키고 보조 프로세서 유니트로부터 엔에이블링 신호를 수신하기 위해 중앙 프로세서 유니트 정보 전송 제어장치 및 중앙 프로세서 유니트 상태 전송장치에 접속된 중앙 프로세서 유니트 상태 전송제어장치, 및 중앙 프로세서 유니트 상태 전송장치에 의해 엔에이블 신호를 수신한 다음에 프로세스된 정보의 수신을 제어하기 위해 중앙 프로세서 유니트 상태 전송제어장치, 중앙 프로세서 유니트 상태 전송 제어장치 및 중앙 프로세서 유니트 데이타 전송장치 및 중앙 프로세서 유니트 정보 전송장치에 접속된 중앙 프로세서 유니트 프로세스된 정보 전송제어장치를 포함하는 것을 특징으로 하는 시스템.
  5. 제 4 항에 있어서, 명령이 데이타 형태 정보를 포함하고, 중앙 프로세서 유니트 제어 장치가 중앙 프로세서 유니트 데이타 전송장치에 의해 데이타 전송라인을 거쳐 명령으로부터의 연산코드를 전송함과 동시에 상태 전송라인을 거쳐 명령으로부터의 데이타 형태 정보를 전송하도록 중앙 프로세서 유니트 상태 전송 장치를 엔에이블시키기 위해 중앙 프로세서 유니트 상태 전송장치에 접속된 중앙 프로세서 유니트 데이타 형태 전송제어장치를 포함하는 것을 특징으로 하는 시스템.
  6. 제 4 항에 있어서, 중앙 프로세서 유니트가 명령에 응답하여 프로세스될 정보를 격납시키기 위해 정보 소오스를 포함하고, 이 정보 소오스가 중앙 프로세서 유니트 정보 전송장치 및 중앙 프로세서 유니트 정보 전송제어장치에 접속되며, 중앙 프로세서 유니트 정보 전송제어장치가 보조 프로세서 유니트에 전송하기 위해 프로세스될 정보를 중앙 프로세서 유니트 정보 전송장치에 전송하도록 정보 소오스를 엔에이블시키기 위한 장치를 포함하는 것을 특징으로 하는 시스템.
  7. 제 4 항에 있어서, 프로세스될 정보를 격납하기 위한 정보 격납 장치를 포함하고, 이 정보 격납 장치가 정보의 검색을 제어하기 위한 검색 제어신호를 수신하기 위해 버스에 접속되고 검색된 정보를 버스의 정보 전송라인을 거쳐 전송하며, 중앙 프로세서 유니트 정보 전송장치가 정보 격납장치로부터의 정보의 검색을 개시하기 위한 장치를 포함하는 것을 특징으로 하는 시스템.
  8. 제 7 항에 있어서, 정보 격납장치가 정보를 격납하기 위한 어드레스에 의해 각각 식별된 다수의 어드레스 가능한 격납 장소를 포함하고, 버스가 어드레스 제어신호라인, 액크놀리지먼트 신호 라인 및 정보 전송제어신호라인을 포함하는 버스 제어신호를 전송하기 위한 라인들을 포함하며, 정보 격납장치가 버스로부터 어드레스 및 어드레스제어신호를 수신하고 정보 전송라인을 거쳐 어드레스에 의해 식별된 장소로부터의 정보를 전송한 다음에 액크놀리지먼트 신호라인을 거쳐 액크놀리지먼트 신호를 전송하기 위한 장치를 포함하고, 중아 프로세서 유니트 정보 전송제어장치가 어드레스 제어신호라인을 거쳐 어드레스 및 어드레스 제어신호를 전송하도록 중앙 프로세서 유니트 정보 전송장치를 엔에이블시키기 위한 장치를 포함하며, 보조 프로세서 유니트 정보 전송장치가 액크놀리지먼트 신호의 수신에 응답하여 정보 전송라인으로부터 정보를 수신하기 위해 액크놀리지먼트 신호라인에 접속되는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서, 정보 격납장치가 에러에 응답하여 에러 신호 전송라인을 거쳐 에러신호를 전송하고, 보조 프로세서 유니트 정보 전송장치가 에러 신호의 수신에 응답하여 정보 전송라인을 거쳐 전송된 정보를 무시하는 것을 특징으로 하는 시스템.
  10. 제 4 항에 있어서, 중앙 프로세서 유니트 데이타 전송제어장치가 프로세스될 정보를 보조 프로세서 유니트에 전송함과 동시에 데이타 전송라인을 거쳐 정렬 코드를 전송하도록 중앙 프로세서 유니트 데이타 전송장치를 엔에이블시키는 장치를 포함하는 것을 특징으로 하는 시스템.
  11. 제 2 항에 있어서, 중앙 프로세서 유니트 제어 장치가 데이타 전송장치를 거쳐 연산 코드를 보조 프로세서 유니트에 전송하도록 데이타 전송장치를 엔에이블시키기 위해 보조 프로세서 유니트에 의해 프로세스될 명령의 수신에 응답하는 중앙 프로세서 유니트 데이타 전송제어장치, 연산 코드를 보조 프로세서 유니트에 전송한 다음에 프로세스될 정보를 보조 프로세서 유니트에 전송하도록 중앙 프로세서 유니트 정보 전송장치 및 중앙 프로세서 유니트 데이타 전송장치를 엔에블시키기 위해 중앙 프로세서 유니트 데이타 전송 제어장치, 중앙 프로세서유니트 정보 전송장치, 및 중앙 프로세서 유니트 데이타 전송장치에 접속된 중앙 프로세서 유니트 정보 전송제어장치, 프로세스될 정보의 보조 프로세서 유니트로의 성공적인 전송을 엔에이블시키는 중앙 프로세서 유니트 정보 전송제어장치에 응답하여 결과를 수신할 준비를 한다는 표시를 보조 프로세서 유니트에 전송하도록 중앙 프로세서 유니트 상태 전송장치를 엔에이블시키고 보조 프로세서 유니트로부터의 엔에이블링 신호를 수신하기 위해 중앙 프로세서 유니트 정보 전송제어장치 및 중앙 프로세서 유니트 상태 전송장치에 접속된 중앙 프로세서 유니트상태 전송 제어장치, 및 중앙 프로세서 유니트 상태 전송장치에 의해 엔에이블링 신호를 수신한 다음에 프로세스된 정보의 수신을 제어하기 위해 중앙 프로세서 유니트 상태 전송 제어장치, 중앙 프로세서 유니트 데이타 전송장치 및 중앙 프로세서 유니트 정보 전송장치에 접속된 중앙 프로세서 유니트 프로세스된 정보 전송제어장치를 포함하는 것을 특징으로 하는 중앙 프로세서 유니트.
  12. 제 11 항에 있어서, 명령이 데이타 형태 정보를 포함하고, 중앙 프로세서 유니트 제어 장치가 중앙 프로세서 유니트 데이타 전송장치에 의해 데이타 전송라인을 거쳐 명령으로부터의 연산코드를 전송함과 동시에 상태 전송라인을 거쳐 명령으로부터의 데이타 형태 정보를 전송하도록 중앙 프로세서 유니트 상태 전송 장치를 엔에이블시키기 위해 중앙 프로세서 유니트 상태 전송장치에 접속된 중앙 프로세서 유니트 데이타 형태 전송제어장치를 포함하는 것을 특징으로 하는 중앙 프로세서 유니트.
  13. 제 11 항에 있어서, 명령에 응답하여 프로세스될 정보를 격납시키기 위해 정보 소오스를 포함하고, 이 정보 소오스가 중앙 프로세서 유니트 정보 전송장치 및 중앙 프로세서 유니트 정보 전송제어장치에 접속되며, 중앙 프로세서 유니트 정보 전송제어장치가 보조 프로세서 유니트에 전송하기 위해 프로세스될 정보를 중앙 프로세서 유니트 정보 전송장치에 전송되도록 정보 소오스를 엔에이블시키기 위한 장치를 포함하는 것을 특징으로 하는 중앙 프로세서 유니트.
  14. 제 11 항에 있어서, 프로세스될 정보를 격납시키기 위한 정보 격납장치를 포함하는 시스템 내에 사용하기 위해, 정보 격납장치가 정보의 검색을 제어하기 위한 검색 제어신호를 수신하기 위해 버스에 접속되며, 버스의 정보 전송라인을 거쳐 검색된 정보를 전송하고, 중앙 프로세서 유니트 정보 전송장치가 정보 격납 장치로부터의 정보의 검색을 개시하기 위한 장치를 포함하는 것을 특징으로 하는 중앙 프로세서 유니트.
  15. 제 14 항에 있어서, 정보 격납장치가 정보를 격납시키기 위해 어드레스에 의해 각각 식별된 다수의 어드레스 가능한 격납 장소를 포함하고, 버스가 어드레스 제어신호라인, 액크놀리지먼트 신호 라인 및 정보 전송제어신호라인을 포함하는 버스 제어 신호를 전송하기 위한 라인을 포함하는 시스템내에 사용하기 위해, 정보 격납장치가 버스로부터 어드레스 및 어드레스 제어신호를 수신하고 정보 전송라인을 거쳐 어드레스에 의해 식별된 장소로부터의 정보를 전송한 다음에 액크놀리지먼트 신호라인을 거쳐 액크놀리지먼트 신호를 전송하기 위한 장치를 포함하고, 중앙 프로세서 유니트 정보 전송제어장치가 어드레스 제어 신호라인을 거쳐 어드레스 및 어드레스 제어신호를 전송하도록 중앙 프로세서 유니트 정보 전송장치를 엔에이블시키기 위한 장치를 포함하는 것을 특징으로 하는 중앙 프로세서 유니트.
  16. 제 11 항에 있어서, 중앙 프로세서 유니트 데이타 전송제어장치가 프로세스될 정보를 보조 프로세서 유니트에 전송함과 동시에 전송라인을 거쳐 정렬 코드를 전송하도록 중앙 프로세서 유니트 데이타 전송장치를 엔에이블시키는 것을 특징으로 하는 중앙 프로세서 유니트.
  17. 제 3 항에 있어서, 보조 프로세서 유니트 제어장치가 중앙 프로세서 유니트로부터 연산코드를 수신하도록 보조 프로세서 유니트 데이타 전송장치를 엔에이블시키기 위해 보조 프로세서 유니트 데이타 전송장치에 접속된 보조 프로세서 유니트 데이타 전송 제어장치, 중앙 프로세서 유니트로부터 보조 프로세서 유니트 데이타 전송장치에 의한 연산 코드의 수신에 응답하여 프로세스될 정보를 수신하도록 정보 전송장치를 엔에이블시키기 위해 보조 프로세서 유니트 데이타 전송제어장치에 접속된 보조 프로세서 유니트 정보 전송제어장치, 연산 코드 및 프로세서 될 정보를 수신하고 이에 응답하여 프로세스된 정보를 발생시키기 위해 보조 프로세서 유니트 데이타 전송장치 및 보조 프로세서 유니트 정보 전송장치에 접속된 프로세싱 장치, 및 정보 전송라인을 거쳐 프로세스된 정보를 전송하도록 보조 프로세서 유니트 정보 전송제어 장치를 엔에이블시키기 위해 보조 프로세서 유니트 정보 전송장치 및 프로세싱장치에 접속된 보조 프로세서 유니트 프로세스된 정보 전송제어장치를 포함하는 것을 특징으로 하는 보조 프로세서 유니트.
  18. 제 17 항에 있어서, 명령이 데이타 형태 정보를 포함하고, 보조 프로세서 유니트 데이타 전송제어장치가 보조 프로세서 유니트 데이타 전송장치에 의해 데이타 전송라인을 거쳐 명령으로부터 연산 코드를 수신함과 동시에 상태 전송라인을 거쳐 명령으로부터 데이타 형태 정보를 수신하도록 보조 프로세서 유니트 상태 전송장치를 엔에이블시키기 위해 보조 프로세서 유니트 상태 전송장치에 접속된 보조 프로세서 유니트 데이타 형태 전송제어장치를 포함하는 것을 특징으로 하는 보조 프로세서 유니트.
  19. 제 17 항에 있어서, 버스가 어드레스 제어 신호라인, 액크놀리지먼트 신호 라인 및 정보 전송 제어신호라인을 포함하는 버스 제어신호를 전송하기 위한 라인을 포함하고, 보조 프로세서 유니트 정보 전송장치가 액크놀리지먼트 신호의 수신에 응답하여 정보 전송 라인으로부터 정보를 수신하기 위해 액크놀리지먼트 신호 라인에 접속되는 것을 특징으로 하는 보조 프로세서 유니트.
  20. 제 19 항에 있어서, 버스가 에러 신호를 전송하기 위한 에러 신호 전송라인을 포함하고, 보조 프로세서 유니트 정보 전송장치가 에러 신호의 수신에 응답하여 정보 전송라인을 거쳐 전송된 정보를 무시하는 것을 특징으로 하는 보조 프로세서 유니트.
KR1019870012090A 1987-02-24 1987-10-30 디지탈 데이타 프로세싱 시스템내의 프로세서와 특수명령 프로세서간의 인터페이스 KR920004401B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1751787A 1987-02-24 1987-02-24
US17,517 1987-02-24
US017517 1987-02-24

Publications (2)

Publication Number Publication Date
KR880010364A KR880010364A (ko) 1988-10-08
KR920004401B1 true KR920004401B1 (ko) 1992-06-04

Family

ID=21783031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019870012090A KR920004401B1 (ko) 1987-02-24 1987-10-30 디지탈 데이타 프로세싱 시스템내의 프로세서와 특수명령 프로세서간의 인터페이스

Country Status (9)

Country Link
EP (1) EP0280821A3 (ko)
JP (1) JPS63208151A (ko)
KR (1) KR920004401B1 (ko)
CN (1) CN1019152B (ko)
AU (1) AU606083B2 (ko)
BR (1) BR8800696A (ko)
CA (1) CA1295749C (ko)
IN (1) IN171198B (ko)
MX (1) MX160485A (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890007159A (ko) * 1987-10-30 1989-06-19 미다 가쓰시게 데이타 처리장치 및 그것을 갖는 데이타 처리 시스템
US4982428A (en) * 1988-12-29 1991-01-01 At&T Bell Laboratories Arrangement for canceling interference in transmission systems
FR2649982B1 (fr) * 1989-07-20 1991-09-27 Inst Nat Sante Rech Med Membrane biologique artificielle
JP2884831B2 (ja) * 1991-07-03 1999-04-19 株式会社日立製作所 処理装置
US6505290B1 (en) 1997-09-05 2003-01-07 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
DE602004026431D1 (de) * 2004-07-09 2010-05-20 Michael Colin George Chapman Hochleistungsfähiger benutzer-konfigurierbarer Prozessor
CN104424033B (zh) * 2013-09-02 2018-10-12 联想(北京)有限公司 一种电子设备及数据处理方法
CN108268281B (zh) * 2017-01-04 2021-12-07 中科创达软件股份有限公司 处理器协同方法及电路

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system
JPS62243531A (ja) * 1986-04-17 1987-10-24 松下精工株式会社 食器乾燥機

Also Published As

Publication number Publication date
IN171198B (ko) 1992-08-15
CN87107291A (zh) 1988-09-07
BR8800696A (pt) 1988-10-04
CN1019152B (zh) 1992-11-18
EP0280821A3 (en) 1990-11-07
MX160485A (es) 1990-03-12
EP0280821A2 (en) 1988-09-07
AU606083B2 (en) 1991-01-31
AU8003687A (en) 1988-08-25
KR880010364A (ko) 1988-10-08
CA1295749C (en) 1992-02-11
JPS63208151A (ja) 1988-08-29

Similar Documents

Publication Publication Date Title
KR920004402B1 (ko) 디지탈 데이타 프로세서용 버스 인터페이스 회로
CA1300280C (en) Central processor unit for digital data processing system including write buffer management mechanism
KR0154533B1 (ko) 데이타 프로세서
US5148533A (en) Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
EP0303648B1 (en) Central processor unit for digital data processing system including cache management mechanism
US4843542A (en) Virtual memory cache for use in multi-processing systems
EP0258559A2 (en) Cache memory coherency control provided with a read in progress indicating memory
US5091845A (en) System for controlling the storage of information in a cache memory
US5119484A (en) Selections between alternate control word and current instruction generated control word for alu in respond to alu output and current instruction
US5226170A (en) Interface between processor and special instruction processor in digital data processing system
US5339397A (en) Hardware primary directory lock
JP2575219B2 (ja) データ処理システム及びその命令実行を促進する方法
EP0380842A2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
KR920004401B1 (ko) 디지탈 데이타 프로세싱 시스템내의 프로세서와 특수명령 프로세서간의 인터페이스
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
KR920004060B1 (ko) 디지탈 데이타 프로세싱 시스템용 버스 아답터 장치
US5276892A (en) Destination control logic for arithmetic and logic unit for digital data processor
EP0302926B1 (en) Control signal generation circuit for arithmetic and logic unit for digital processor
EP0418220B1 (en) Destination control logic for arithmetic and logic unit for digital data processor
AU628531B2 (en) Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units
WO1988006763A1 (en) Central processor unit for digital data processing system including virtual to physical address translation circuit
IE901514A1 (en) Method and apparatus for interfacing a system control unit¹for a multiprocessor system with the central processing¹units

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee