KR100239841B1 - 마이크로프로세서 - Google Patents

마이크로프로세서 Download PDF

Info

Publication number
KR100239841B1
KR100239841B1 KR1019970008102A KR19970008102A KR100239841B1 KR 100239841 B1 KR100239841 B1 KR 100239841B1 KR 1019970008102 A KR1019970008102 A KR 1019970008102A KR 19970008102 A KR19970008102 A KR 19970008102A KR 100239841 B1 KR100239841 B1 KR 100239841B1
Authority
KR
South Korea
Prior art keywords
bus
memory
data
cache
internal
Prior art date
Application number
KR1019970008102A
Other languages
English (en)
Other versions
KR19980023967A (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 KR19980023967A publication Critical patent/KR19980023967A/ko
Application granted granted Critical
Publication of KR100239841B1 publication Critical patent/KR100239841B1/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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)

Abstract

외부에도 버스 마스터가 존재하는 마이크로프로세서에 DRAM 및 캐쉬를 내장한다.
마이크로프로세서101에 있어서, 라이트버퍼5를 통해 셀렉터7이 또 DRAM27, 캐쉬28, IQ8이, 각각 버스 ID<0:127>에 접속되어 있다.
버스 ID<0:127>와, 마이크로프로세서101, 외부 메모리4, 외부 버스 마스터41과는 데이터 버스 D<0:15>로 연결되나, 여기에는 BIU3이 개재하고 있다.
마이크로프로세서101와, 외부 메모리4, 외부 버스 마스터41와는 어드레스버스58, 제어버스 56,57에 의해서도 연결되어 있다.
BIU3은 마이크로프로세서가 내장하는 메모리와 그 외부에 접속되는 메모리에 대한 액세스를 제어한다.

Description

마이크로프로세서
본 발명은 마이크로프로세서에 관한 것으로, 특히 메모리 및 캐쉬 메모리를 내장한 마이크로프로세서에서, 그 메모리에 외부에서 액세스하기도 하고, 명령/데이터를 캐쉬에 등록하기도 하는 버스 인터페이스에 관한 것이다.
종래, 메모리를 내장한 마이크로프로세서가 알려져 있다.
예를들면, 도27은 RAM을 내장한 마이크로프로세서의 구성을 나타내는 블럭도이다. 마이크로프로세서201는 CPU1, 내장RAM29, 버스59, 및 버스인터페이스유니트(BI U)39을 구비하고 있다.
내장RAM29은 예를들면, 프로그램RAM(ROM을 포함한다)이거나, 데이터 RAM(ROM을 포함한다)이거나 한다.
단지, 1클럭으로 액세스되어 얻을수 있도록, 내장RAM29에는 SRAM이 사용되고 있었다.
내장RAM29의 메모리영역은 어드레스로 지정되어, 이것에의 액세스는 명령에 의해서 지시된다.
또한, 마이크로프로세서201의 외부에는 버스60을 통해 외부 메모리4가 설정되는 것도 있다.
외부 메모리4에는 예를들면 DRAM이 사용되어 있고, 이것을 제어하기 위해서 DRAM콘트롤러, DMAC(DMA 콘트롤러)등이 마이크로프로세서201에 내장되고 있는 경우가 있다.
도 28은 캐쉬 메모리(이하에서는 단지「캐쉬」라고한다)를 내장한 마이크로프로세서의 구성을 나타내는 블럭도이다.
마이크로프로세서202는 CPU1, 캐쉬28, 버스59, 및 BIU39을 구비하여 있고, 마이크로프로세서202의 외부에는 버스60을 통해 외부 메모리4가 설치된다.
캐쉬28은 마이크로프로세서202가 사용하는 명령과 데이터를 외부 메모리4로부터 캐쉬한다.
물론, 내장RAM29과 캐쉬28와의 양쪽을 내장하고, 캐쉬28가 내장RAM29으로부터 캐쉬하는 것도 가능하다. 그러나, 내장RAM29은 ROM 또는 SRAM에서 구성되어 있어 , 1클럭정도로 액세스 할수 있기 때문에, 캐쉬할 필요는 없었다.
SRAM은 1셀의 면적이 DRAM에 비교하여 크고 , 대용량을 집적 할 수 없었다.
그래서, CPU 코어와 DRAM을 1칩에 집적하고, 대용량의 메모리를 집적한 마이크로프로세서가 필요하여 진다. 여기서 DRAM은 액세스 스피드가 늦어서 메모리액세스의 시간이 CPU의 성능을 떨어뜨리는 큰 원인으로 된다.
또한, 마이크로프로세서에 내장된 CPU뿐만아니라, 외부에도 버스 마스터(메모리에 대해 버스를 통해 액세스할 수 있는 제어수단)이 존재하는 경우에는, 각각의 버스 마스터와 메모리와의 간의 신호의 전달을 별개로 행하면, 마이크로프로세서에 필요한 핀수가 증대하여 버린다고 하는 문제점이 있다.
본원에서는 이러한 문제점을 해결하는 것으로, DRAM 및 캐쉬를 내장하여, 대용량, 저속의 DRAM과 소용량, 고속의 캐쉬를 1칩에 집적하여 CPU의 성능을 인출하는 것을 목적으로 한다.
또한, 그 캐쉬의 형태를 선택함에 의해 캐쉬하는 데이터의 종류를 선택 할 수있는 마이크로프로세서와, 내장하는 메모리에 대해 버스 마스터가 외부에 설치되더라도, 또는 외부 메모리를 접속하여, 핀수를 증대시키지 않고 내장 메모리와 외부 메모리의 사용방법(메인 프로그램, 데이터등을 어느 메모리로 격납할까)을 바꿀 수있는 마이크로프로세서와, 버스 마스터가 내부에 복수존재하는 마이크로프로세서를 제공하는 것을 목적으로 하는 것이다.
본 발명중 청구항1에 관한 것은 내장 메모리와, 상기 메모리에 접속되는 내부 버스와, 상기 내장 메모리에 대하여 상기 내부 버스를 통해 액세스하는 내부 버스 마스터와, 상기 내부 버스의 동작을 제어하는 버스인터페이스를 구비하는 마이크로프로세서이다. 그리고 외부 버스 마스터 및 외부 메모리가 외부 버스를 통해 상기 마이크로프로세서의 외부에 접속된다.
상기 마이크로프로세서는 상기 내장 메모리와 상기 외부 메모리의 데이터를 등록하는 캐쉬 메모리를 더 구비한다.
상기 버스 인터페이스는 (a)상기 내부 버스와 같은 폭의 버퍼를 가지고, (b)상기 외부 버스 마스터로부터의 내장 메모리 액세스요구와 상기 내부 버스 마스터의 내장 메모리 액세스 요구를 조정하여, (c)상기 버퍼와 외부 버스 마스터가 상기 외부 버스를 통해 액세스하고 있는 사이에는 내부 버스 마스터로부터의 상기 내장 메모리 및 상기 캐쉬에의 액세스요구를 접수한다.
본 발명중 청구항2에 관한 것은 내장 메모리와, 상기 메모리에 접속되는 내부 버스와, 상기 내장 메모리에 대해 상기 내부 버스를 통해 액세스하는 제1 및 제2의 내부 버스 마스터와, 상기 내부 버스의 동작을 제어하는 버스 인터페이스를 구비하는 마이크로프로세서이다.
그리고 상기 버스 인터페이스는, 상기 제1의 내부 버스 마스터의 상기 내부 메모리에 대한 액세스 요구가 유효한 경우에는 상기 제2의 내부 버스 마스터의 상기 내부 메모리에 대한 액세스요구를 무효로 하는 메모리 억세스제어수단을 가진다.
본 발명중 청구항3에 관한 것은 내장 메모리와, 상기 내장 메모리에 접속되는 내부 버스와, 상기 내부 버스에 접속된 캐쉬 메모리와, 상기 내장 메모리에 대해 상기 내부 버스를 통해 액세스하는 내부 버스 마스터와, 상기 내부 버스의 동작을 제어하는 버스 인터페이스를 구비하는 마이크로프로세서이다.
그리고 외부 버스 마스터 및 외부 메모리가 외부 버스를 통해 상기 마이크로프로세서의 외부에 접속된다. 상기 마이크로프로세서는 상기 내장 메모리와 상기 외부 메모리의 데이터를 등록하는 캐쉬 메모리를 더 구비한다.
상기 버스 인터페이스는 상기 내부 버스 마스터에 의한 상기 내장 메모리에 대한 액세스요구 및 상기 외부 버스 마스터에 의한 상기 내장 메모리에 대하는 액세스요구, 및 캐쉬모드를 지정하는 정보에 따라서 상기 캐쉬 메모리의 캐쉬대상을 지정하는 등록신호를 발생한다.
도 1은 본 발명의 실시의 형태 1을 나타내는 블록도이다.
도 2는 명령의 구성을 예시하는 모식도이다.
도 3은 명령의 처리를 나타내는 모식도이다.
도 4는 명령의 전송을 나타내는 블록도이다.
도 5는 명령의 전송을 나타내는 블럭도이다.
도 6은 CPU1가 외부 메모리4로부터 데이터를 판독하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
도 7은 CPU1가 외부 메모리4에 데이터를 기록하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
도 8은 외부 버스 마스터41에서 DRAM27로 데이터를 기록하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
도 9는 외부 버스 마스터41에 의한 액세스가 종료하는 경우를 나타내는 타이밍 챠트이다.
도 10은 버퍼301의 구성을 나타내는 블록도이다.
도 11은 외부 버스 마스터41가 DRAM27에서 데이터를 판독하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
도 12는 어드레스가 어드레스경계를 넘는 경우의 동작을 하는 수단을 나타내는 블록도이다.
도 13은 어드레스가 어드레스경계를 넘는 경우의 동작을 나타내는 타이밍 챠트이다.
도 14는 어드레스가 어드레스경계를 넘는 경우의 동작을 나타내는 타이밍 챠트이다.
도 15는 마이크로프로세서101의 어드레스공간을 나타내는 모식도이다.
도 16은 내장제어레지스터의 어드레스공간의 일부를 나타내는 모식도이다.
도 17은 데이터 MSPR, MDRR, MCCR의 구성의 상세를 나타내는 모식도이다.
도 18은 제어블록303의 구성의 일부를 나타내는 블럭도이다.
도 19는 마이크로프로세서101의 구성을 모식적으로 나타내는 블럭도이다.
도 20은 마이크로프로세서101의 구성을 모식적으로 나타내는 블럭도이다.
도 21은 마이크로프로세서101의 구성을 모식적으로 나타내는 블럭도이다.
도 22는 리플레쉬타이머26의 접속관계를 나타내는 블럭도이다.
도 23은 외부마스터41 및 CPU1의 리이드를 나타내는 타이밍 챠트이다.
도 24는 마이크로프로세서 l02의 구성을 예시하는 블록도이다.
도 25는 하버드 아키텍쳐가 채용된 마이크로프로세서의 구성을 예시하는 블럭도이다.
도 26은 2개의 마이크로프로세서가 병존하는 형태를 나타내는 블럭도이다.
도 27는 종래의 기술을 나타내는 블록도이다.
도 28은 종래의 기술을 나타내는 블록도이다.
* 도면의 주요부분에 대한 부호설명
1 : CPU13 : 버스 인터페이스 유니트
4 : 외부 메모리27 : DRAM
28 : 캐쉬 메모리41 : 외부 버스 마스터
101∼l03 : 마이크로프로세서301 : 버퍼
ID<0:127>,D<0:15> : 데이터 버스
<실시의 형태 1>
도 1은 본 발명의 실시의 형태 1에 이러한 마이크로프로세서의 구성의 개요를 나타내는 블럭도이다.
마이크로프로세서101는 DRAM27, 캐쉬28, CPU1, 명령큐(IQ)8, 셀렉터7, 곱합연산부(MAC: multip1y and ACcumulater)6, BIU3, PLL11를 가지고 있다.
CPU1는 예를들면,32비트의 데이터를 취급하는 RlSC형 마이크로프로세서 코어이고, 명령길이는 16비트또는 32비트이다. IQ8은 예를들면 128비트 x 2 엔트리의 구성을 가지고 있고, 버스 ID <0:127>에서 데이터(명령을 포함한다)를 입력하여, 16비트또는 32비트의 형태로 버스 I < 0:31>를 통해 CPU1로 전송한다.
도 2는 명령의 구성을 예시하는 모식도이다.
어드레스경계를 넘는 명령은 허용되지 않기 때문에, 명령의 배치로 해서는 도 2에 표시된 바와같이 2종류 밖에 없다.
셀렉터7은 버스 ID<0:127>에 실리는 128비트의 데이터중, 필요한 32비트분만을 선택하여 CPU1에 전송하기도 하고, CPU1로부터 출력된 32비트의 데이터를 버스 ID<0:127>에서 적절한 위치에 출력한다.
이들 32비트의 데이터의 전달은 버스 DO < 0:31>를 통해 행해진다.
MAC6는 예를들면 32비트 x 16비트+56비트의 곱합연산을 1클럭으로 처리하여, CPU1에 부수하여 설치정된다.
캐쉬28은 예를들면 SRAM으로 구성되고, 라이트백(write back)방식, 즉 기록이 캐쉬에 대하여만 행해져, 캐쉬로 변경된 데이터는 치환의 대상으로 될 때에 주된 기억장치에 기록되는 방식이 채용된다.
TAG부를 가지고, 여기에는 캐쉬하여야 할 데이터의 어드레스의 일부(tag)와 valid비트, dirty 비트가 유지된다.
데이터가 캐쉬28에 등록(fill)되면, valid 비트가 세트되어, 등록되어 있는 영역에 새fh은 데이터가 기억되면 dirty 비트가 세트된다.
캐쉬히트한 경우에는 1클럭으로 데이터를 인출할 수있다.
DRAM27는 예를들면 Mbyte의 용량을 가진다.
128비트의 용량을 가지는 라이트버퍼5를 통해 셀렉터7가, 또 DRAM27, 캐쉬28, IQ8이 각각 버스 ID <0:127>에 접속되어 있다.
이 버스 ID <0:127>와, 마이크로프로세서101와 그 외부(예를들면 외부 메모리4, 외부 버스 마스터41)를 결부하는 데이터 버스 D <0:15>와의 사이에 BIU3이 설치된다. 마이크로프로세서101와, 외부 메모리4, 외부 버스 마스터41과는 어드레스버스58, 제어버스56,57에 의해서도 연결되어 있다.
BIU3은 마이크로프로세서가 내장하는 메모리와, 그 외부에 접속되는 메모리에 대해 액세스를 제어한다.
16비트의 버스 D<0:15>와 128비트의 버스 ID<0:127>와의 정합을 채용하기 위해서, BIU3은 128비트의 버퍼301을 가지고 있다.
또 BIU3은 버퍼301와 버스 ID<0:127>와의 사이에 개재하는 ID 버스 드라이버302를 가지고 있고, 그 동작은 제어블록303에 의해서 제어된다.
제어블록303은 DRAM27, 캐쉬28에 대하여 기록/판독지령(신호R/W 바), 등록지령을 제공하는 기능을 가진다.
PLL11는 마이크로프로세서의 동작클럭을 생성한다.
예를들면, 내부CPU 등의 동작에 4체배한 클럭을 생성하여, 외부와의 액세스용으로 입력클럭과 같은 주파수의 클럭을 생성한다.
도3(a)∼(d)는, 명령의 처리를 나타내는 모식도이다.
명령은 파이프라인제어로 처리된다.
파이프라인제어는 예를들면, 명령훼치(IF), 명령디코드(D), 실행(E), 메모리액세스(MEM),범용레지스터에의 라이트백(WB)의 5단계로 구성된다.
CPU1는 RlSC형의 아키텍쳐를 가지고, 메모리에 대한 오퍼랜드액세스는 1oad/store 계의 명령만으로 발생한다.
도 3(a)는 1oad 명령으로 오퍼랜드가 캐쉬히트하여, 메모리에 존재한 데이터가 1사이클로 전송할 수 있던 경우를 나타낸다.
동 도면(b)은 메모리에 존재한 데이터의 액세스에 복수클럭이 걸린 경우를 나타낸다.
동 도면(c)은 메모리에 대하는 액세스를 발생하지않은 명령의 경우를 나타낸다.
동 도면(d)은 실행에 복수의 클럭을 요하는 명령, 예를들면, 승산명령과 제산명령의 경우를 나타낸다.
(1)명령/데이터의 전송.
CPUl이 훼치하는 명령이 캐쉬28에 히트한 경우는 캐쉬28로부터 클럭1 사이클분으로 버스 ID<0:127>를 통해 IQ8로 전송된다.
CPU1가 훼치하는 명령이 DRAM27에 있는 경우는 1회의 액세스(예를들면 클럭5사이클분을 요한다)로 DRAM에서 버스 ID<0:127>를 통해 IQ8로 전송된다.
CPU1가 훼치하는 명령이 외부 메모리4에 있는 경우는 버스트전송으로 외부 메모리4로부터 훼치하여, BIU3의 버퍼301에 순서대로 비축된다.
버퍼301가 풀로 되면(128비트분의 명령이 비축된다면)IQ8에 128비트분의 명령이 전송된다.
또한 이 명령을 캐쉬하는 경우는 동시에 캐쉬28에도 전송된다.
도 4는 예를들면 IQ8이 2 엔트리 x 128 비트의 용량을 가지고 있는 경우의 명령의 전송을 나타내는 블럭도이다.
DRAM27(혹은캐쉬28)에서도, 128비트의 용량을 가지는 버퍼301로부터도 명령이 전송되는 모양을 나타내고 있다.
도 5는 CPU1이 곧 명령을 필요로 하고 있는 경우(IQ8가 빈 경우)에, 명령이 외부 메모리4로부터 전송되는 모양을 나타내는 블럭도이다.
BIU3이 가지는 제어블록303은, CPU1으로부터 명령을 훼치하는 요구를 나타내는 신호IFetch를 입력하고, 이것이 어서트 되면, 외부 메모리4에 대해 버스스타트신호BS 바를 어서트하는(버스스타트 신호BS 바는 예를들면 도 1에 표시된 제어버스56에 의해서 전달된다).
이 다음, BIU3을 가지는 버퍼301에는 버스 D<0:15>를 통해 명령이 전송된다.
IQ8로부터 제어블록303로 전달되는 IQ8이 빈 상태를 나타내는 신호 IQempty가 어서트 되면, ID 버스 드라이버302에 대해 드라이브신호 및 드라이브사이즈신호가 제어블록303으로부터 주여진다.
드라이브사이즈신호는 16비트로 구성되며, 버퍼301에 비축되는 128비트의 데이터는 16개의 8비트의 데이터로서 파악되고, 8비트단위로 필요한 정보가 지정된다.
그리고 드라이브신호에 따라서, 이 지정된 정보가 버스 ID<0:127>로 전송된다.
예를들면, 드라이브 사이즈신호의 2비트분이 활성화하여, 8 x 2:16비트분이 버스 ID<0:127>를 통하여 IQ8로 전송된다.
CPU1가 또한, 명령의 훼치를 요구하면, 또 16비트가 IQ8로 전송된다.
그 후, CPU1이 곧 명령을 필요로 하지 않으면(신호 IQempty가 네게이트), 외부 메모리4로부터 버스트전송되어 온 데이터가 버퍼301를 풀로 하고, 그 후에 IQ8로 전송된다.
제어블록303에는 외부 메모리4로부터 제어버스56를 통해 데이터전송완료신호 DC바 도 받는다.
물론, IQ8이 빈것이냐 아니냐의 체크를 하지 않고, 항상 최초의 명령만을 먼저 전송하여, 버퍼301이 풀이 되면 128비트를 캐쉬28로 전송하여 기록해도 좋다.
도 1로 되돌아가서, CPU1이 데이터를 리이드하는 경우, DRAM27 또는 캐쉬28에 데이터가 존재하면, 필요한 데이터를 포함하는 128비트가 버스 ID<0:127>를 통해 셀렉터7로 전송된다.
셀렉터7에서는 필요한 32비트의 데이터를 CPU1로 보낸다.
필요한 데이터가 외부 메모리4에 있는 경우에는 버퍼301에 32비트의 데이터가 비축되고, 이것이 버스 ID<0:127>를 통해서 CPU1으로 전송된다.
데이터의 사이즈는 8비트/16비트/32비트의 3종류가 있고, 외부 메모리로부터 판독할 때, 32비트의 경우는 외부액세스가 2회 필요로 되고, 8비트/16비트의 경우는 1회의 액세스로 버퍼301로부터 버스 ID<0:127>를 통해 CPU1로 전송된다.
CPU1이 32비트의 데이터를 메모리(DRAM27 혹은 캐쉬28)로 기록하는 경우, 대응하는 버스 ID<0:127>의 대응하는 위치에 셀렉터7가 이 데이터를 출력한다.
이때, 라이트버퍼5에 기록해야되는 데이터를 비축하고 나서 전송할 수도 있다.
결국, 라이트버퍼5에서는 버스 ID<0:127>가 비어 있는 때에 데이터가 전송된다.
외부 메모리4로 출력하는 경우는 버퍼301에 일단 래치되어, 16비트씩 버스 D<0:15>로 출력되는 것으로 된다.
(2)외부 버스 마스터로부터 마이크로프로세서의 내장하는 DRAM에의 액세스.
마이크로프로세서101의 내장하는 DRAM27은 CPU1 뿐만 아니라 외부의 버스 마스터로부터도, 마이크로프로세서101의 명령과는 무관계하게 직접액세스할 수 있다.
버스 마스터는 버스를 통해 메모리를 액세스하는 권리를 갖고 있고, 예를들면, DMAC(Direct Memory Access Controller)와, 프로세서, 메모리콘트롤러등을 열거 할 수 있다.
도 1에 나타난 바와 같이 외부 버스 마스터41는 데이터 버스 D<0:15>, 어드레스버스58, 제어버스57를 통해 마이크로프로세서101와 접속된다.
외부 버스 마스터41는 마이크로프로세서101에 대해 액세스 요구를 내고, 접수하면 DRAM27에 대하여 직접 액세스할 수 있다.
이하에, CPU1 및 외부 버스 마스터41가 DRAM27과 외부 메모리4를 액세스할 때의 각 액세스의 프로토콜에 관해서 설명한다.
(2-a) CPU1가 DRAM27를 액세스하는 경우:
종래부터 행해지고 있는 프로토콜이고, 우선 ① CPU1으로부터의 액세스요구가 나가게 되고, 이것에 대하여 ② BIU3가 허가를 하여, ③ BIU3의 제어로 ID<0:127>버스를 사용해서 DRAM27의 데이터가 CPU1로 전송된다.
(2-b) CPU1가 외부 메모리4로부터 데이터를 판독하는 경우:
도 6은 CPU1이 외부 메모리4로부터 데이터를 판독하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
클럭은 입력클럭을 나타낸다.
우선 ① CPU1으로부터 BIU3에로 액세스요구가 나가 되고, ② BIU3로부터 CPU1으로 액세스허가가 보내여진다.
그리고 ③ 제어버스56를 통해 BIU3으로부터 외부 메모리4로 보내여지는 버스스타트신호BS바가 어서트하고, 리이드라이트신호R/W바가 외부 메모리4에 리이드동작을 요구하여, 바이트콘트롤신호BC(버스 D<0:15>, ID<0:127>로 전달되는 16비트를 2개의 8비트(: 1바이트)의 신호로해서 파악하고, 그 한편또는 양쪽을 지정하는 신호)의 값이 결정된다.
또한, 어드레스버스58를 통해 어드레스 A1, A2, A3가 마이크로프로세서101로부터 출력된다.
어드레스 A1, A2, A3에 대응하여, 바이트 콘트롤 신호BC는 변화하더라도 좋다.
마이크로프로세서101로부터의 액세스요구를 받아서, ④ 외부 메모리4는 어드레스 A1, A2, A3에 대응하는 판독데이터 D1, D2, D3를 버스 D<0:15>에 전달시켜, 그 때에 데이터 전송완료신호 DC바가 어서트된다.
그리고 ⑤ 데이터 D1, D2, D3가 버스 ID<0:127>를 통해 CPU1으로 전송된다.
(2-c) CPU1이 외부 메모리4로 데이터를 기록하는 경우:
도 7은 CPU1이 외부 메모리4로 데이터를 기록하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
공정①, ②은(2-b)과 같다.
그리고 ③ CPU1로부터 버스 ID<0:127>를 통해 기록되어야되는 데이터(기록데이터)가 BIU3으로 전송된다.
또한, ④ 버스스타트신호BS바가 어서트되어, 리이드라이트신호R/W바가 외부 메모리4에 기록동작을 요구하여, 바이트콘트롤신호BC의 값이 결정된다.
어드레스 A1, A2, A3가 어드레스버스58를 통해, 또한 이들에 대응하는 기록데이터 D1, D2, D3가 버스 D<0:15>를 통해, 각각 마이크로프로세서101로부터 출력된다.
마이크로프로세서101로부터의 액세스요구를 받어서, ⑤ 외부 메모리4에 데이터 D1, D2, D3가 기록되며, 그 때에 데이터 전송완료신호DC바가 어서트된다.
(2-d) 외부 버스 마스터41로부터 DRAM27에 데이터를 기록하는 경우:
도 8은 외부 버스 마스터41로부터 DRAM27에 데이터를 기록하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
우선 ① 외부 버스 마스터41로부터의 접수 요구를 나타내는 Halt Request 신호HREQ 바가 어서트한다.
이것에 대응하여 마이크로프로세서101로부터 접수를 허가하는 HREQ Acknowledge 신호 HACK바가 어서트한다.
그리고 외부 버스 마스터41로부터 칩셀렉트신호CS 바가 어서트한다.
이들은 제어버스57를 통해 마이크로프로세서101와 외부 버스 마스터41와의 사이를 전달한다.
이어서② 외부 버스 마스터41로부터 마이크로프로세서101로 전달되는 리이드라이트신호R/W바가 DRAM27에 대하여 기록동작을 요구하여, 어드레스 A1, A2, A3 및 이들에 대응하는 기록데이터 D1, D2, D3가 마이크로프로세서101로 전달된다.
그리고 ③ 마이크로프로세서101로부터 데이터전송완료신호DC바가 어서트된다.
도 9는 외부 버스 마스터41에 의한 액세스가 종료하는 경우를 나타내는 타이밍 챠트이다.
④ 칩셀렉트신호CS바, Halt Request 신호HREQ바가 네게이트하여, ⑤ 마이크로프로세서101의 접수도 종료한다 (HREQ Ack 신호HACK 바가 네게이트한다).
도 10는, 버퍼301의 구성을 나타내는 블럭도이다.
버퍼301은 128비트의 용량을 가지는 한편, 데이터 버스 D<0:15>가 16비트의 비트폭을 가진다.
따라서, 버퍼301은 용량이 16비트의 8개의 래치301a∼301h와, 각각 대응하는 셀렉터301p∼301w를 가지고 있고, 외부 버스 마스터41이 공급하는 어드레스의 값에 따라서, 버스 D<0:15>에 실리는 데이터를 래치301a∼301h로 격납한다.
예를들면, 하나의 어드레스에 대한 지정되는 데이터의 폭은 8비트이고, 하나의 래치에는 어드레스 2개분의 데이터를 격납할 수 있다.
결국, 한쌍의 인접하는 어드레스에 대응하는 데이터가 동일한 래치로 격납되는 것으로 된다.
이러한 동작을 실현하기 위해서, 버퍼301는 셀렉터제어부301x를 더 가지고 있고, 이것이 어드레스의 하위 4비트의 내, 최하위비트를 제외한 3비트의 값에 따라서 셀렉터301p∼301w에 각각 셀렉터제어신호B0∼ B7를 공급한다.
셀렉터제어신호B0∼ B7는 택일적에 활성화하여, 버스 D<0:15>에 실린 8비트의 데이터를 래치 301a∼301h중 어느쪽에 격납한다.
(2-e) 외부 버스 마스터41가 DRAM27로부터 데이터를 판독하는 경우:
도 11은 외부 버스 마스터41가 DRAM27로부터 데이터를 판독하는 경우의 프로토콜을 나타내는 타이밍 챠트이다.
공정①은(21d)와 같다.
그리고 ② 외부 버스 마스터41로부터 마이크로프로세서101로 전달되는 리이드라이트신호R/W바가 DRAM27에 대해 판독동작을 요구하고, 어드레스 A1, A2, A3가 마이크로프로세서101로 전달된다.
그리고 ③ 이들에 대응하는 데이터 D1, D2, D3가 판독되고, 마이크로프로세서101로부터 이들이 출력되고, 데이터전송 완료신호DC바가 어서트된다.
공정④, ⑤도(2-d)와 같다.
외부 버스 마스터41와 버퍼301가 버스 D<0:15>를 통해 리이드/라이트하고 있는 경우에, CPU1의 캐쉬28, DRAM27에 대한 액세스를 BIU3가 접수한다.
외부 버스 마스터41가 DRAM27를 리이드하는 경우, DRAM27의 데이터, 또는 캐쉬히트하의 경우에는 캐쉬28의 데이터가 버퍼301로 전송된다.
버퍼301은 128비트, 버스 D<0:15>는 16비트이고, 외부 버스 마스터41의 요구가 버퍼301내의 몇개의 데이터판독인 경우는 버스 ID<0:127>는 사용되지 않는다.
이 때문에, 예를들면, CPU1이 DRAM27로부터 명령을 훼치하고 싶을 때는 BIU3은 이 요구를 접수하여, 버스 ID<0:127>를 통해 DRAM27(캐쉬히트한 경우에는 캐쉬28)에서 명령을 전송한다.
외부 버스 마스터41가 DRAM27에 라이트하는 경우도 같이, 버퍼301에 데이터를 축적중은 버스 ID<0:127>를 사용하여, CPU1, DRAM27, 캐쉬28의 사이의 데이터/명령의 전송을 할 수 있다.
도 23은 외부패스마스터41로부터의 리이드와 CPU1의 리이드액세스요구의 모양을 나타내는 타이밍 챠트이다.
외부 버스 마스터41로부터 지정된 어드레스 A1, A2, A3가 어드레스경계를 넘지 않고 (어드레스끼리 소정의 범위내에 존재하는 경우이고, 상세한 것은(2-f)에서 후술한다)각각 대응하는 데이터 D1, D2, D3가 한번에 판독되어(DRAM(캐쉬)액세스요구의 좌단의 어서트), 버스 ID<0:127>에 실리어 , 그 후 버퍼301로 축적된다.
이후는 버스 ID<0:127>가 미사용으로 되어있기 때문에, CPU에서의 액세스요구에 대해 DRAM 액세스요구를 어서트하여 (한가운데에 위치하는 어서트), 이 요구에 대응한 데이터 D-CPU가 판독되어서 버스 ID<0:127>로 실린다.
한편, 버퍼301로부터 외부 버스 마스터41에의 데이터 D1, D2, D3의 전송이 행하여지게 된다.
그리고, 어드레스 A1, A2, A3에 대해 어드레스경계를 넘은 어드레스 A5에 관해서의DRAM(캐쉬)액세스요구가 어서트하여(우단에 위치하는 어서트), 이것에 대응하는 데이터 D5가 판독되어서 버스 ID<0:127>로 실리어, 버퍼301에로 축적된다.
후술하는 도22에 표시된 외부액세스제어회로303g에서는 어드레스 비교결과와 액세스 종류검출결과, 리플레쉬 요구를 받아, 외부 액세스요구 및 내부 버스미사용신호를 생성한다.
이 내부 버스 사용신호는 외부 버스 액세스에 내부 버스를 사용하고 있지 않는 상태, 또는 외부 버스 마스터41의 액세스어드레스가 어드레스경계를 넘지 않은 액세스의 처리중 이고, 내부 버스가 미사용인 것을 나타낸다.
이 신호가 어서트 되어 있는 사이는 CPU1의 액세스요구를 받아 DRAM27, 캐쉬28가 액세스된다.
(2-f) 외부 버스 마스터41가 공급하는 어드레스가, 어드레스경계를 넘는 경우의 외부 버스 마스터로부터 DRAM27 에의 기록:
도 10을 사용해서 설명된 바와 같이, 하위 4비트가 연속하는 어드레스에 대응하는 l6개의 8비트폭의 데이터는 버퍼301로 격납된다.
그러나, 예를들면, 어드레스가 24비트폭이라고 하면, 상위 20비트가 동일이면 이것들의 16개 x 8 비트= 128비트의 데이터를 모아서 DRAM27에로 전송해도 좋으나, 어드레스의 상위20비트가 다른 경우에 이들을 모아서 전송하는 것은 잘 못된 어드레스에 데이터를 공급하는 것으로 되어, 피하지 않으면 안된다.
결국, 외부 버스 마스터41의 어드레스의 값이 16비트의 경계(데이터로 환산하면 16 x 8=128비트의 경계: 본명세에서는 간단히 「어드레스경계」라고 한다)를 넘는 경우에는 그것까지 버퍼301가 비축하고 있는 데이터를 일단 방출하는 필요가 있다.
도 12는 이러한 동작을 하는 위한 수단을 나타내는 블럭도이고, 마이크로프로세서101는 어드레스버퍼51과, 어드레스비교기52를 더 구비하고 있다.
어드레스버퍼51은 어드레스버스58로부터 24비트폭의 어드레스의 상위20비트를 받어, 항상 현재의 어드레스의 하나 앞의 어드레스의 상위20비트를 출력한다.
어드레스비교기52는 어드레스버퍼51의 출력을, 현재의 어드레스의 상위20비트와 비교한다.
양자가 일치하면, 외부 버스 마스터41의 어드레스의 값이 16비트의 어드레스경계를 넘지 않으므로, 버퍼301에 대한 데이터의 격납은 계속해서 행해진다.
그러나 일치하지않은 경우에는 버퍼301에 대하여 현재격납하고 있는 데이터를 버스 ID<0:127>를 통해 DRAM27에 전송하도록 제어한다.
이때, 제어블록303은 DRAM27에 대하여 DRAM27이 기록동작을 하도록 리이드라이트신호R/W 바를 공급한다.
도 13은 상기 한 동작을 나타내는 타이밍 챠트이다.
어드레스 A1∼ A4의 상위20비트는 동일하고, 어드레스 A5의 상위20비트가 이것과 다른 경우가 상정되어 있다.
버퍼301는 어드레스 A1∼ A4에 대응하는 데이터 D1∼ D4를 격납하고 있으나, 어드레스 A5가 주어진 시점에서(어드레스경계를 넘은 시점에서)버스 ID< 0:127>에는 이것들의 데이터 D1-D4가 일거에 주여진다.
또, 칩셀렉트신호CS바가 표명하고 있는 사이는 신호HREQ바 HACK바가 어서트되어 있다.
그 후, DRAM27 에 대해 액세스요구가 어서트하고, 이것들의 데이터가 DRAM27로 기록되고, 제어블록303으로부터 외부 버스 마스터41로 주여지는 데이터 전송완료신호DC바가 네게이트된다(시간t 4∼ t 5).
그리고, 어드레스 A5에 대응하는 데이터 D5가 버퍼301로 격납되고, 외부 버스 마스터41로부터의 액세스요구가 종료한 시점(칩셀렉트신호CS바가 네게이트)으로, 버퍼301의 격납하고 있는 데이터 A5가 버스 ID<0:127>를 통해 DRAM27로 전송된다 (데이터 전송완료신호DC바가 어서트, 그 후, DRAM27에 대한 액세스요구가 네게이트: 시간t 5∼ t 6).
(2-g) 외부 버스 마스터41가 공급하는 어드레스가 어드레스경계를 넘는 경우의 외부 버스 마스터41의 DRAM27로부터의 판독:
도 14는 외부 버스 마스터41가 DRAM27로부터 데이터를 판독하는 경우에, 그 어드레스의 상위20비트가 변동한 경우(어드레스경계를 넘은 경우)의 동작을 나타내는 타이밍 챠트이다.
외부 버스 마스터41의 리이드요구(칩셀렉트 신호CS바가 어서트)가 이루어져, 제어블록303은 DRAM27에 대한 DRAM27이 판독동작을 하도록 리이드라이트신호R/W바를 공급한다.
DRAM27에 대한 액세스요구가 어서트하여, 어느것이나 상위20비트가 같은 24비트의 어드레스 A1, A2, A3의 각각 대응하는 데이터 D1, D2, D3가 버스 ID<0:127>에 주어진다 (시간t 0∼시간t 1).
단지, 어드레스 A5는 그 상위20비트가 어드레스 A1, A2, A3과는 다르기 때문에, 시간t 1에 있어서는 아직 버스 ID<0:127>에는 실리어 있지 않다.
데이터 전송완료신호DC바가 어서트한 상태 그대로, 데이터 D1, D2, D3가 버퍼301를 통해 외부로 전송된다.
DRAM27 에 대한 액세스요구는 일단 네게이트한다(시간t 1).
어드레스 A5가 외부 버스 마스터41로 전송될 때, 어드레스경계를 넘는 것으로 되기 때문에, 일단 데이터 전송완료신호DC바가 네게이트되어, DRAM27에 대한 액세스요구가 재차 어서트한다(시간t 2).
그리고 버스 ID<0:127>에는 DRAM27으로부터 어드레스 A5에 대응하는 데이터 D5가 주여지고, 이것이 버퍼301로 격납된다.
그 한편에서 데이터 D5가 외부로 전송되면 액세스요구가 종료한다(칩셀렉트신호CS바가 네게이트. 시간t 3).
대범히 말하면, 최대128비트의 데이터가 DRAM27로부터 판독되고, 버퍼301에 격납된다 (예를들면 상기 데이터 D1, D2, D3).
데이터는 외부 버스 마스터41로부터 요구되는 어드레스의 값에 응하여, 대응하는 16비트(하나의 래치가 격납하는 어드레스 2개분)의 데이터를 출력한다.
외부 버스 마스터41로부터 요구되는 어드레스가 어드레스경계를 넘은 경우에, 새롭은 데이터(예를들면 상기 데이터D5)가 DRAM27로부터 버퍼301에 전송되고, 외부 버스 마스터로 16비트씩 출력된다.
이상과 같이, 본 실시의 형태에 이러한 마이크로프로세서에 의하면, 내장하는 DRAM27을 자신의 CPU1 뿐만아니라, 외부 버스 마스터41에 의해서도 액세스할 수 있고, 또한 CPU1에 의해서 외부 메모리4에 액세스 할수있다.
더구나, 리이드라이트신호R/W바와 바이트콘트롤신호BC를 공용할 수 있기 때문에, 필요한 핀수가 증대하지는 않는다.
또한, 내부의 데이터 버스 ID<0:127>와 외부의 데이터 버스 D<0:15>와의 비트폭이 다르더라도, 버퍼301을 제어함으로써, 데이터를 내부로에 전송할 수 있다.
또한, 어드레스가 소정의 어드레스경계를 넘어서도, 잘 못된 데이터의 전송이 행하여지는 것을 회피할 수 있다.
<실시의 형태 2>
실시의 형태 2에서는 각종모드의 변경의 형태에 대해 설명한다.
도 15는 마이크로프로세서101의 어드레스공간을 나타내는 모식도이다.
논리어드레스는 16進의 32비트의 수(32/1og216= 8자리수)로 나타낸다.
유저공간으로 해서의 논리공간 00000000 ∼ 80000000번지(Sl D=0)중, 마이크로프로세서101로 내장되는 DRAM27의 물리공간으로해서 00000000 ∼ 001FFFFF번지가 할당된다.
또한, 외부 메모리4를 위한 공간으로 해서 00200000 ∼ 00FFFFFF번지가 할당된다. 따라서, 이들 2개의 메모리에 대한 어드레스공간은 (2)에서 설명되었 던것 같은 24비트의 어드레스(논리어드레스의 하위 6자리수)로 지정될수 있는 것으로 된다.
또한, 유저용의 I/O 공간으로 해서 FF000000 ∼ FF7FFFFF 번지가, ICE(In Circuit Emulator)용 공간으로 해서 FF800000 ∼ FFBFFFFF 번지가, 그리고 FFC00000 ∼ FFFFFFFF 번지에서 내장제어레지스터를 위한 물리공간이 각각할당된다.
이것들의 할당은 I/O 공간(Sl D=1)에서 행해지고 있다.
도 16는 내장제어레지스터의 어드레스공간의 일부를 나타내는 모식도이다.
번지 FFFFFFF4, FFFFFFF8, FFFFFFFC에서, 각각 캐쉬퍼지제어, DRAM 리플레쉬제어, 메모리제어를 위한 데이터 MSPR, MDRR, MCCR(각1바이트)가 격납된다.
도 17은 각데이터 MSPR, MDRR, MCCR의 구성의 상세를 나타내는 모식도이다.
데이터 MSPR의 제7번째의 비트에는 퍼지제어를 행하는가 아닌가를 나타내는 1비트의 값이 데이터 MDRR의 제7번째의 비트에는 리플레쉬제어를 행하는가 아닌가를 나타내는 1비트의 값이 데이터 MCCR의 제6번째 및 제7번째의 비트에는 캐쉬모드의 종류를 나타내는 2비트의 값이 각각 격납된다.
이하의 실시의 형태에서는 이것들의 각데이터 MSPR, MDRR, MCCR에 근거하는 제어에 관해서 설명한다.
(3)캐쉬모드의 변경:
상기 데이터 MCCR에 따라서 제어를 하는 것에 의해, 마이크로프로세서101는 캐쉬하는 데이터의 종류에 따라서, 캐쉬모드를 바꿀 수있다. 예를들면,, 캐쉬모드 로해서는 이하의 모드를 생각할 수있다.
i)캐쉬오프모드; 캐쉬 하지않은 모드이다.
ii)전 메모리공용 캐쉬모드; CPU1이 외부 메모리4, DRAM27에 대해 액세스한 명령/데이터 및 외부 버스 마스터41이 DRAM27에 대해 판독/기록한 데이터를 캐쉬하는 모드이다.
iii)공용캐쉬모드, 외부 메모리4, DRAM27를 막론하고, CPU1이 액세스한 명령/데이터를 캐쉬하는 모드이다.
iv)명령캐쉬모드; 외부 메모리4, DRAM27를 막론하고, CPU1이 액세스한 명령을 캐쉬하는 모드이다.
v)데이터캐쉬모드; 외부 메모리4, DRAM27를 막론하고, CPU1이 액세스한 데이터를 캐쉬하는 모드이다.
vi)내부공용캐쉬모드; DRAM27에서 CPU1이 액세스한 명령/데이터를 캐쉬하는 모드이다.
vii)내부명령캐쉬모드; DRAM27에서 CPU1이 액세스한 명령을 캐쉬하는 모드이다. viii)내부데이터캐쉬모드; DRAM27에서 CPU1가 액세스한 데이터를 캐쉬하는 모드이다.
ix)외부공용캐쉬모드; 외부 메모리4에서 CPU1이 액세스한 명령/데이터를 캐쉬하는 모드이다.
x)외부명령캐쉬모드; 외부 메모리4에서 CPU1이 액세스한 명령을 캐쉬하는 모드이다. xi)외부데이터캐쉬모드; 외부 메모리4에서 CPU1이 액세스한 데이터를 캐쉬하는 모드이다.
xii)외부 메모리캐쉬모드; 외부 메모리4에서 CPU1이 액세스한 명령/데이터 및 외부 버스 마스터41가 DRAM27에 기록된 데이터를 캐쉬하는 모드이다.
xiii)내부 메모리캐쉬모드; DRAM27에서 CPU1이 액세스한 명령/데이터 및 외부 버스 마스터41가 DRAM27로부터 판독한 데이터를 캐쉬하는 모드이다.
xiv)외부 버스 마스터캐쉬모드; 외부 버스 마스터41가 DRAM27에 대해 판독/기록한 데이터를 캐쉬하는 모드이다.
데이터 MCCR의 제6번째 및 7번째의 비트에 격납되는 2비트의 값을 참조함에 의해, 이것들의 캐쉬모드의 속에서, i)캐쉬 오프모드와, vi)내부 공용캐쉬모드와, x)외부 명령캐쉬모드와, iv)명령캐쉬모드의 4종류를 선택할 수 있다.
도18는 제어블록303의 구성의 일부를 나타내는 블럭도이다.
도 15를 사용하여 표시한 바와 같이 DRAM27과 외부 메모리4와의 어드레스공간은 구분되기 때문에, 어드레스디코더303b에 의해서, 양자의 어느쪽이 억세스의 대상이 되는 것인가가 판별된다.
그 판별결과는 액세스 종류검출회로303d에 주여진다.
또한, 액세스주체판정부303c는 액세스의 주체가 CPU1 인가, 외부 버스 마스터41인가 를 판정하여 , 그 결과를 액세스종류검출회로303d로 공급한다.
액세스 종류검출회로303d는 어드레스디코더303b의 판별결과 및 액세스주체판정부303c의 판정결과에 따라서, 버스 ID<0:127>에 실린 신호는 무엇을 요구하는 명령인가, 또는 데이터인가등의 정보C3를 캐쉬액세스제어회로303e로 공급한다.
한편 캐쉬모드디코드회로303a는 데이터 MCCR의 하위2비트의 값에 따라서, 어느 캐쉬모드가 요구될까를 나타내는 정보C1를 캐쉬액세스제어회로303e로 공급한다.
캐쉬액세스제어회로303e는 정보C1, C3에 따라서, DRAM27의 데이터를 캐쉬하는 것인가((vi)내부공용캐쉬모드), 외부 메모리4의 명령을 캐쉬하는 것인가((x)외부명령캐쉬모드), 외부 메모리4, DRAM27를 막론하고, CPU1가 액세스한 명령을 캐쉬하는 것인가((iV)명령캐쉬모드), 혹은 전혀 캐쉬를 하지 않은 것인가((i)캐쉬오프모드)를 제어하는 등록신호C2를 캐쉬28로 공급한다.
도 19 내지 도21은 각각 vi)내부공용캐쉬모드, x)외부명령캐쉬모드, iv)명령캐쉬모드를 채용하는 경우의 마이크로프로세서101의 구성을 모식적으로 나타내는 블럭도이다.
캐쉬28은 도 19에서는 DRAM27과 버스 ID<0:127>와의 사이에, 도 20에서는 BIU3과 버스 ID<0:127>와의 사이에, 도 21에서는 CPU1과 DRAM27 및 BIU3과의 사이에 각각 개재하는 형태를 모식적으로 채용하고 있다.
데이터 버스 D<0:15>, 제어버스56, 57, 어드레스버스58를 모아서 묘사되고 있으나, 그 위에 나타낸 바와 같은 각 신호HREQ, HACK, 어드레스, 데이터(명령도 포함한다),그 밖의 신호BC, R/W바, CS등의 제어신호가 이들의 버스를 통해 전달된다.
(3-a)vi)내부공용캐쉬모드에 관해서 ;
DRAM27에 대해 CPU1이 액세스한 명령/데이터를 캐쉬하는 모드이고, DRAM27에 프로그램이 들어가 있는 경우에 사용된다(도19).
CPU1이 훼치하는 명령이 DRAM27에 있는 경우에는, BIU3의 제어로 우선 캐쉬히트하는지 어떤지가 체크된다.
히트하는 경우는 캐쉬28로부터 버스 ID<0:127>에 그 명령이 출력되어, IQ8(도 19에서는 CPU1에 포함하고 있는 것으로 하여 표시되어 있다)로 전송된다.
캐쉬미스의 경우는 DRAM27으로부터 캐쉬28 및 CPU1로 전송된다.
예를들면, 캐쉬28는 256(=28)엔트리 x 128 비트 = 4K바이트의 용량을 갖는다.
24비트의 어드레스 IAD<7:31>의 내의 8비트 IAD<20:27>가 엔트리어드레스로 된다.
어드레스 IAD<7:31>의 내의 13비트 IAD<7:19>는 tag로해 서 등록된다.
DRAM27로부터 판독된 128비트의 데이터가 캐쉬28로 기록된다.
이 때 IAD<20:27>가 나타내는 엔트리에 대해서의 valid 비트가 세트된다.
CPU1가 DRAM27의 데이터를 리이드하는 경우에는 명령을 훼치하는 경우와 같이 캐쉬히트를 체크하여, 히트의 경우는 캐쉬28로부터 미스의 경우는 DRAM27으로부터 판독한다.
CPU1가 DRAM27에 데이터를 기록하는 경우는 캐쉬히트 하는지 어떤지가 체크된다.
히트하는 경우는 기록데이터를 캐쉬28의 대응하는 엔트리의 128비트의 일부에 기록되어, 이 엔트리의 dirty비트가 세트된다.
dirty 비트가 세트되어 있는 엔트리의 데이터는 이 엔트리에 다음 캐쉬데이터를 등록할 때에 재기록된다(라이트백).
미스하는 경우에는 기록데이터가 DRAM27에 기록된다.
라이트백을 하는 대신해서, 도17로 표시된 신호MSPR의 7번째의 비트의 purge 명령으로 DRAM27에 재기록 할수도 있다.
(3-b) x)외부명령캐쉬모드에 관해서:
외부 메모리4내에 있는 명령이 캐쉬28에 캐쉬된다.
예를들면, 외부 메모리4로해서 명령ROM을 놓고, DRAM27에는 데이터를 넣은 경우에 채용된다(도20).
CPU1가 외부 메모리4에 대해서 명령을 훼치하는 경우, 캐쉬히트를 체크하여, 히트의 경우는 캐쉬28로부터, 미스의 경우는 외부 메모리4로부터 훼치한다.
외부 메모리4로부터 훼치되는 명령은 캐쉬28로 등록되기 때문에 버스트전송에 의해서 마이크로프로세서101로 전달되고, 128비트분이 BIU3로 유지되어서 캐쉬28로 전송된다.
(3-c) iv)명령캐쉬모드에 관해서;
CPU1가 훼치한 명령을 캐쉬하는 모드이고, DRAM27 및 외부 메모리4에 명령을 놓 은 경우에 채용된다(도21).
CPU1가 훼치를 요구하는 명령이 캐쉬히트하는지 어떤지를 체크하여, 히트하는 경우는 캐쉬28로부터, 미스의 경우는 DRAM27 또는 외부 메모리4로부터 훼치한다.
외부 메모리4로부터의 명령의 훼치는(3-b)와 같고, DRAM27로부터의 명령의 훼치는 1회의 판독으로 128비트분이 캐쉬28에 등록된다.
또 각 캐쉬모드에 있어서, DRAM27, 외부 메모리4중 캐쉬되어서는 안 되는 영역(예를들면, 캐쉬하더라도 라이트백이 빈번하게 되어 도리어 처리속도가 악화하는 데이터를 기억하는 영역)을 캐쉬28가 캐쉬하지 않도록, 캐쉬할수 없는 영역을 어드레스에 의해 지정 할수도 있다.
물론, 이러한 영역이 액세스된 경우에, 통상 마이크로프로세서에 설치되어 있는 난캐시블핀을 어서트하는 것으로 캐쉬를 회피할수도 있다.
이상과 같이, 본 실시의 형태에 이러한 마이크로프로세서에 의하면, DRAM27 및 캐쉬28을 내장하여, 그 캐쉬의 형태를 선택할 수 있다.
<실시의 형태 3>
(4)리플레쉬:
마이크로프로세서101에 리플레쉬제어를 위한 리플레쉬타이머26를 부가할수도 있다. 도 22는 제어블록303의 구성과, 이것에 리플레쉬요구를 공급하는 리플레쉬타이머26와의 관계를 나타내는 블럭도이다.
도 22에서는 제어블록303이 도18에 표시된 구성에 대하여, DRAM 액세스제어회로303f, 외부액세스제어회로303g를 더 가지고 있는 구성이 표시되어 있고, 리플레쉬타이머26는 직접으로는 DRAM 액세스제어회로303f로 리플레쉬요구를 주고 있다.
도24는 이러한 리플레쉬타이머26와 제어블록303을 가지는 BIU3을 구비한 마이크로프로세서102의 구성을 예시하는 블럭도이다.
리플레쉬타이머26는 소정의 기간마다 DRAM27을 리플레쉬 하도록 요구하고, 리플레쉬타이머26은 CPU1와 외부 버스 마스터41와는 독립해서, DRAM7에 대한 버스 마스터로 된다. 결국, 제 1의 내부 버스 마스터로서 CPU1이 제 2의 버스 마스터로서 리플레쉬타이머26가 각각 기능한다.
이러한 리플레쉬요구는 데이터 MDRR의 제7번째의 비트의 값에 따라서 행해진다.
도 24는 DRAM27이 리플레쉬되는 상태에서의 액세스의 형태를 보이고 있다.
결국, DRAM27의 리플레쉬중은 그 밖의 버스 마스터, 예를들면 CPU1과 외부 버스 마스터41은 DRAM27을 액세스할 수 없다.
그러나 버스 ID<0:127>가 점유되어 있는 것은 아니기 때문에, CPU1으로부터의 캐쉬28에의 액세스와 외부 메모리4에의 액세스는 가능하다.
또한 외부 버스 마스터41이 DRAM27를 액세스하고, 그것이 캐쉬28에 히트한 경우도 처리할 수 있다.
도22에 되돌아 설명하면, DRAM 액세스제어회로303f는 리플레쉬타이머26로부터의 리플레쉬요구가 네게이트되어 있는 경우에는,정보C3에 따라서DRAM 액세스요구를 DRAM27로 공급한다.
그러나, 리플레쉬요구가 어서트되어 있는 경우에는 DRAM 액세스요구는 무효로 되고, DRAM27에 주어진 리플레쉬신호를 어서트해서 RAM27를 리플레쉬한다.
이와 같이 해서 DRAM27의 리플레쉬중은 그 밖의 버스 마스터가 DRAM27에 액세스하는 것이 금지된다.
캐쉬액세스 제어회로303e, 외부액세스 제어회로303g도 정보C3에 따라서 각각 캐쉬등록신호를 캐쉬28로, 외부 액세스요구를 외부 메모리4, 외부 버스 마스터41로 전달된다.
이들의 신호에 의해, 리플레쉬신호가 어서트하고 있는 경우에는 DRAM27으로부터 캐쉬28에의 캐쉬와, 외부 버스 마스터41로부터 DRAM27에의 액세스가 금지된다. 결국, 리플레쉬중은 DRAM27에의 액세스를 따르지 않은 액세스요구만이 접수된다.
이상과같이 본 실시의 형태에 이러한 마이크로프로세서에 의하면, 버스 마스터가 내부에 복수(예를들면, CPU1와 리플레쉬타이머26)존재하더라도 마이크로프로세서의 동작을 제어할 수 있다.
(5)퍼지:
데이터 MSPR의 제7번째의 비트의 값이 퍼지제어을 행하는 것을 지정하는 경우, 캐쉬가 라이트백방식이면, 캐쉬에서 dirty비트가 세트되어 있는 데이터가 DRAM27로재기록된다.
그리고, valid 비트의 세트가 해제된다.
이때, 캐쉬28로부터 DRAM27로 또는 캐쉬28로부터 외부 메모리4로 데이터가 전송되기 때문에, 버스 ID<0:127>가 점유되어, 버스 마스터는 DRAM27과 외부 메모리4로 액세스할 수 없다.
캐쉬가 라이트스루방식이면, DRAM27와 외부 메모리4에도 갱신되는 데이터가 기록되고, 퍼지제어를 행하면 캐쉬28의 엔트리에 대한 valid비트의 세트가 해제된다.
<그 외의 변형>
(6)분리캐쉬:
도 25는 본 발명에 소위 Harvard architecture를 채용한 경우의 구성을 예시하는 블럭도이다.
마이크로프로세서103에 있어서 캐쉬 메모리는, 어느것이나 2KB의 명령캐쉬28b와 데이터캐쉬28a에 분리하여 구성할 수 있다.
명령캐쉬28b는 명령만이 실리는 명령버스 II<0:127>를 통해, 데이터캐쉬28a은 명령이외의 데이터만이 실리는 데이터 버스 ID<0:127>를 통해, 각각 DRAM27, CPU1, BIU3과 접속되어 있다.
캐쉬모드는 각 캐쉬28a,28b에 대해, DRAM27, 외부 메모리41의 어느쪽을 캐쉬의 대상으로 하는 것일까를 설정할 수 있다.
(7)복수의 마이크로프로세서의 병존
도 26은 2개의 마이크로프로세서101a,101b(이들은 어느쪽도 마이크로프로세서101와 같은 구성을 채용할 수 있다)가, 어드레스버스58, 데이터 버스 D<0:15>를 통해 동일한 외부 버스 마스터41, 외부 메모리4에 접속되는 형태를 나타내는 블럭도이다.
제1마이크로프로세서101a,101b는 각각이 내장하는 DRAM27에 존재하는 명령/데이터를 사용하여 프로그램을 처리한다.
제1마이크로프로세서101a에 대해서는 외부 버스 마스터41로부터 Halt Request 신호HREQ1, 칩셀렉트신호CS1가 공급된다.
또한, 제1마이크로프로세서101a에서 외부 버스 마스터41에 대하여, 접수를 허가하는 HREQ Ac1 신호HACK1가 공급된다.
이들 신호의 주고받기에 의해 제1마이크로프로세서101a가 가지는 DRAM27 에의 기록, 판독이 외부 버스 마스터41에 의해서 행해진다. 같이 하여 , HaIt Req11est 신호HREQ2, 칩셀렉트신호CS2, HREQAck 신호HACK2의 주고받기에 따라서, 제2마이크로프로세서101b가 가지는 DRAM27에의 기록, 판독이 외부 버스 마스터41에 의해서 행해진다.
또, 외부 메모리4에는 제1 및 제2마이크로프로세서101a,101b에 공통의 데이터를 격납해 놓고, 제1 및 제2마이크로프로세서101a,101b의 액세스요구에 따라서 그 내용을 리이드 할수도 있다.
이때, 양쪽의 마이크로프로세서101a,101b의 액세스가 경합하지 않도록, 각각의 마이크로프로세서101a,101b에 마스터/슬레이브신호MS1, MS2를 공급하여, 이들을 배타적으로 어서트 시킴으로써, 마이크로프로세서의 한쪽을 마스터, 다른쪽을 슬레이브로서 기능시킬 수있다.
여기서 마스터/슬레이브로 되는 마이크로프로세서는 각각 외부 메모리4와 액세스를 할수 있고, 할 수 없다고 하는 차이를 가진다.
물론, 마스터/슬레이브신호MS1, MS2의 어서트/네게이트는 서로 바꿀 수있다.
단지, 현재 실행중의 버스오퍼레이션이 종료하고 나서 그 전환이 행하여져야한다.
마이크로프로세서101a,101b의 각각이 내장하는 DRAM27에는 따로따로의 데이터를 격납할 수 있다.
이미 도 14를 사용하여 설명한 바와 같이, 각 마이크로프로세서101a,101b의 어드레스공간에서, DRAM27는,00000000∼001FFFFF번지에 할당되나, 이들의 물리어드레스는 따로따로 할 필요가 있다.
예를들면, 32비트의 어드레스공간(어드레스 하나에 대하여 1바이트의 데이터가 비축되는 것으로 해서 4G바이트의 용량을 가진다)중의 00000000∼001FFFFF번지를 제1마이크로프로세서101a의 내장하는 DRAM27에, 01000000∼011FFFFF번지를 제2마이크로프로세서101b의 내장하는 DRAM27에 각각 할당할 수있다.
이들은 어느것도 논리공간내의 유저공간(SID=0)에서 할당되고 있다.
이상과같이 어드레스공간의 할당을 행하는 것에 의해, 24비트의 어드레스를 사용하면서, 2개의 마이크로프로세서101a,101b는 각각 자신의 내장하는 DRAM27에 대하여 별도의 처리를 병행하여 행할 수있다.
이상으로 설명되 바와 같이, 본 발명에 의하면 복수의 캐쉬모드를 갖은 것에 의해, 여러가지 용도에 대하여 1개의 칩으로 대응 가능하게되고, 비용이 삭감된다.
또한, 핀수삭감에 의한 비용도 줄이게 된다.
내부데이터 버스보다도 비트폭이 좁은 외부데이터 버스에 대하여, 버스트시의 CPU에의 전송을 제어함에 의해, 성능을 올릴 수있다.
본 발명중 청구항1에 관한 마이크로프로세서에 의하면, 제1의 내부 버스 마스터뿐만아니라, 외부 버스 마스터도 상기 메모리에 대해 데이터를 판독 및 독출 할 수있다.
본 발명중 청구항2에 관한 마이크로프로세서에 의하면, 복수의 내부 버스 마스터를 내장하더라도 마이크로프로세서의 동작을 제어할 수 있다.
본 발명중 청구항3에 관한 마이크로프로세서에 의하면, 명령캐쉬모드와 내부공용캐쉬모드등의 복수의 캐쉬모드를 선택하여 캐쉬를 행하기도 하고, 또는 캐쉬을 행 하지 않기도 할 수 있다.

Claims (3)

  1. 내장 메모리와, 상기 메모리에 접속되는 내부 버스와, 상기 내장 메모리에 대해 상기 내부 버스를 통해 액세스하는 내부 버스 마스터와, 상기 내부 버스의 동작을 제어하는 버스 인터페이스를 구비하는 마이크로프로세서에 있어서,
    외부 버스 마스터 및 외부 메모리가 외부 버스를 통해 상기 마이크로프로세서의 외부에 접속되고,
    상기 마이크로프로세서는 상기 내장 메모리와 상기 외부 메모리의 데이터를 등록하는 캐쉬 메모리를 더 구비하여,
    상기 버스 인터페이스는
    (a)상기 내부 버스와 같은 폭의 버퍼를 가지고,
    (b)상기 외부 버스 마스터로부터의 내장 메모리액세스요구와 상기 내부 버스 마스터의 내장 메모리 액세스요구를 조정하며,
    (c)상기 버퍼와 외부 버스 마스터와 상기 외부 버스를 통해 액세스하고 있는 사이는 내부 버스 마스터로부터의 상기 내장 메모리 및 상기 캐쉬로의 액세스요구를 접수하는 마이크로프로세서.
  2. 내장 메모리와, 상기 메모리에 접속되는 내부 버스와, 상기 내장 메모리에 대하여 상기 내부 버스를 통해 액세스하는 제1 및 제2의 내부 버스 마스터와, 상기 내부 버스의 동작을 제어하는 버스 인터페이스를 구비하고, 상기 버스 인터페이스는 상기 제1의 내부 버스 마스터의 상기 내부 메모리에 대한 액세스 요구가 유효한 경우에는 상기 제2의 내부 버스 마스터의 상기 내부 메모리에 대한 액세스요구를 무효로 하는 메모리 액세스 제어수단을 가지는 마이크로프로세서.
  3. 내장 메모리와, 상기 내장 메모리에 접속되는 내부 버스와, 상기 내부 버스에 접속된 캐쉬 메모리와, 상기 내장 메모리에 대한 상기 내부 버스를 통해 액세스하는 내부 버스 마스터와, 상기 내부 버스의 동작을 제어하는 버스 인터페이스를 구비하는 마이크로프로세서에 있어서,
    외부 버스 마스터 및 외부 메모리가 외부 버스를 통해 상기 마이크로프로세서의 외부에 접속되고,
    상기 마이크로프로세서는 상기 내장 메모리와 상기 외부 메모리의 데이터를 등록하는 캐쉬 메모리를 더 구비하며,
    상기 버스 인터페이스는 상기 내부 버스 마스터에 의한 상기 내장 메모리에 대한 액세스요구 및 상기 외부 버스 마스터에 의한 상기 내장 메모리에 대한 액세스요구, 및 캐쉬모드를 지정하는 정보에 의거해서 상기 캐쉬 메모리의 캐쉬대상을 지정하는 등록신호를 발생하는 마이크로프로세서.
KR1019970008102A 1996-09-13 1997-03-11 마이크로프로세서 KR100239841B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP243374 1983-12-23
JP24337496A JP3934710B2 (ja) 1996-09-13 1996-09-13 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
KR19980023967A KR19980023967A (ko) 1998-07-06
KR100239841B1 true KR100239841B1 (ko) 2000-01-15

Family

ID=17102910

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970008102A KR100239841B1 (ko) 1996-09-13 1997-03-11 마이크로프로세서

Country Status (5)

Country Link
US (1) US5915099A (ko)
JP (1) JP3934710B2 (ko)
KR (1) KR100239841B1 (ko)
CN (1) CN1103967C (ko)
TW (1) TW442731B (ko)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
JP3524337B2 (ja) * 1997-07-25 2004-05-10 キヤノン株式会社 バス管理装置及びそれを有する複合機器の制御装置
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6260114B1 (en) * 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6529503B1 (en) * 1999-05-21 2003-03-04 Advanced Micro Devices, Inc. Apparatus and method for storing header information in a network switch
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
US7000034B2 (en) * 2000-03-02 2006-02-14 Agere Systems Inc. Function interface system and method of processing issued functions between co-processors
EP1342158B1 (de) 2000-06-13 2010-08-04 Richter, Thomas Pipeline ct-protokolle und -kommunikation
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
DE10392560D2 (de) 2002-01-19 2005-05-12 Pact Xpp Technologies Ag Reconfigurierbarer Prozessor
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
JP2006524850A (ja) * 2003-04-04 2006-11-02 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理方法およびデータ処理装置
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
WO2006030650A1 (ja) 2004-09-16 2006-03-23 Nec Corporation 複数の処理ユニットでリソースを共有する情報処理装置
JP2009524134A (ja) * 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
JP5003070B2 (ja) * 2006-09-09 2012-08-15 ヤマハ株式会社 デジタル信号処理装置
EP2220554A1 (de) * 2007-11-17 2010-08-25 Krass, Maren Rekonfiguri erbare fliesskomma- und bit- ebenen datenverarbeitungseinheit
US20110173596A1 (en) * 2007-11-28 2011-07-14 Martin Vorbach Method for facilitating compilation of high-level code for varying architectures
WO2009071329A1 (en) * 2007-12-07 2009-06-11 Pact Xpp Technologies Ag Using function calls as compiler directives
JP2008226276A (ja) * 2008-06-09 2008-09-25 Matsushita Electric Works Ltd プログラマブルコントローラ
CN101894084B (zh) * 2010-04-13 2012-06-27 苏州国芯科技有限公司 一种clb总线内用于写操作的装置
US8504730B2 (en) * 2010-07-30 2013-08-06 International Business Machines Corporation Administering connection identifiers for collective operations in a parallel computer
US8565120B2 (en) 2011-01-05 2013-10-22 International Business Machines Corporation Locality mapping in a distributed processing system
US9317637B2 (en) 2011-01-14 2016-04-19 International Business Machines Corporation Distributed hardware device simulation
US8689228B2 (en) 2011-07-19 2014-04-01 International Business Machines Corporation Identifying data communications algorithms of all other tasks in a single collective operation in a distributed processing system
US9250948B2 (en) 2011-09-13 2016-02-02 International Business Machines Corporation Establishing a group of endpoints in a parallel computer

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US34850A (en) * 1862-04-01 Device for canceling notes
JPS6029861A (ja) * 1983-07-28 1985-02-15 Ricoh Co Ltd 周辺装置インタ−フエイス
JPH0738187B2 (ja) * 1984-03-23 1995-04-26 株式会社日立製作所 Lsiに構成されたマイクロコンピュータ
JPS62224849A (ja) * 1986-03-26 1987-10-02 Hitachi Ltd デ−タ処理システム
JPS63216170A (ja) * 1987-03-05 1988-09-08 Mitsubishi Electric Corp デイジタル信号処理プロセツサ
US4912636A (en) * 1987-03-13 1990-03-27 Magar Surendar S Data processing device with multiple on chip memory buses
JPH03254497A (ja) * 1990-03-05 1991-11-13 Mitsubishi Electric Corp マイクロコンピュータ
GB9019023D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station having multiplexing and burst mode capabilities
US5276852A (en) * 1990-10-01 1994-01-04 Digital Equipment Corporation Method and apparatus for controlling a processor bus used by multiple processor components during writeback cache transactions
US5488729A (en) * 1991-05-15 1996-01-30 Ross Technology, Inc. Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution
US5317711A (en) * 1991-06-14 1994-05-31 Integrated Device Technology, Inc. Structure and method for monitoring an internal cache
US5335335A (en) * 1991-08-30 1994-08-02 Compaq Computer Corporation Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US5553266A (en) * 1992-04-24 1996-09-03 Digital Equipment Corporation Update vs. invalidate policy for a snoopy bus protocol
JPH05324539A (ja) * 1992-05-25 1993-12-07 Fujitsu Ltd 半導体装置
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US5463753A (en) * 1992-10-02 1995-10-31 Compaq Computer Corp. Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller
US5353415A (en) * 1992-10-02 1994-10-04 Compaq Computer Corporation Method and apparatus for concurrency of bus operations
US5420808A (en) * 1993-05-13 1995-05-30 International Business Machines Corporation Circuitry and method for reducing power consumption within an electronic circuit
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
JPH07271705A (ja) * 1994-02-09 1995-10-20 Hitachi Ltd データプロセッサ及びこれを用いたトレース回路
US5666509A (en) * 1994-03-24 1997-09-09 Motorola, Inc. Data processing system for performing either a precise memory access or an imprecise memory access based upon a logical address value and method thereof
JPH0895943A (ja) * 1994-09-20 1996-04-12 Hitachi Ltd マイクロプロセッサ
US5598362A (en) * 1994-12-22 1997-01-28 Motorola Inc. Apparatus and method for performing both 24 bit and 16 bit arithmetic
US5687350A (en) * 1995-02-10 1997-11-11 International Business Machines Corporation Protocol and system for performing line-fill address during copy-back operation

Also Published As

Publication number Publication date
CN1103967C (zh) 2003-03-26
KR19980023967A (ko) 1998-07-06
US5915099A (en) 1999-06-22
TW442731B (en) 2001-06-23
JP3934710B2 (ja) 2007-06-20
JPH1091573A (ja) 1998-04-10
CN1177143A (zh) 1998-03-25

Similar Documents

Publication Publication Date Title
KR100239841B1 (ko) 마이크로프로세서
US5784590A (en) Slave cache having sub-line valid bits updated by a master cache
JP5300407B2 (ja) 仮想アドレスキャッシュメモリ及び仮想アドレスキャッシュ方法
US6105111A (en) Method and apparatus for providing a cache management technique
US7398361B2 (en) Combined buffer for snoop, store merging, load miss, and writeback operations
US6202125B1 (en) Processor-cache protocol using simple commands to implement a range of cache configurations
KR100228940B1 (ko) 메모리 일관성 유지 방법
CN101446923B (zh) 一种响应于指令而清洗高速缓冲存储器线的装置和方法
US6185637B1 (en) System for implementing an adaptive burst length for burst mode transactions of a memory by monitoring response times for different memory regions
US6934811B2 (en) Microprocessor having a low-power cache memory
US20030115422A1 (en) System and method for managing data in an I/O cache
WO1998003919A1 (en) A cache system and method using tagged cache lines for matching cache strategy to i/o appication
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
JPH05241954A (ja) プロセッサ
JPH10254772A (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
KR101462220B1 (ko) 마이크로프로세서용 구성가능한 캐시
US8347034B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US6766431B1 (en) Data processing system and method for a sector cache
JPH11288386A (ja) コンピュータシステム
KR100322223B1 (ko) 대기행렬및스누프테이블을갖는메모리제어기
US6484237B1 (en) Unified multilevel memory system architecture which supports both cache and addressable SRAM
KR20190059221A (ko) 메모리 어드레스 변환
US7685372B1 (en) Transparent level 2 cache controller
CA2378777A1 (en) Shared program memory with fetch and prefetch buffers
JP4024247B2 (ja) 半導体データプロセッサ

Legal Events

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

Payment date: 20110920

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20121002

Year of fee payment: 14

LAPS Lapse due to unpaid annual fee