KR910002556B1 - 캐쉬메모리장치 - Google Patents

캐쉬메모리장치 Download PDF

Info

Publication number
KR910002556B1
KR910002556B1 KR1019880003334A KR880003334A KR910002556B1 KR 910002556 B1 KR910002556 B1 KR 910002556B1 KR 1019880003334 A KR1019880003334 A KR 1019880003334A KR 880003334 A KR880003334 A KR 880003334A KR 910002556 B1 KR910002556 B1 KR 910002556B1
Authority
KR
South Korea
Prior art keywords
data
cache memory
command
command code
processor
Prior art date
Application number
KR1019880003334A
Other languages
English (en)
Other versions
KR880011674A (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 KR880011674A publication Critical patent/KR880011674A/ko
Application granted granted Critical
Publication of KR910002556B1 publication Critical patent/KR910002556B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3812Instruction prefetching with instruction modification, e.g. store into instruction stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

내용 없음.

Description

캐쉬메모리장치
제1도는 본 발명을 구현한 캐쉬메모리장치의 블럭선도.
제2a도 및 제2b도는 상이한 내용을 포함하는 태그부를 갖는 캐쉬메모리들을 도시한 도면.
제3도는 제1도의 메인메모리의 분할영역을 설명하기 위한 도면.
제4도는 제1도의 코드영역변경부의 테이블을 예로써 도시한 도면.
제5도는 본 발명의 다른 실시예에 따른 캐쉬메모리장치의 블럭선도.
* 도면의 주요부분에 대한 부호의 설명
1 : 프로세서 2 : 메인메모리
3 : 어드레스버스 4 : 데이타버스
5 : 데이타캐쉬메모리 6 : 명령캐쉬메모리
11 : 데이타캐쉬메모리제어부 12,15 : 태그부
13,16 : 데이타부 14 : 명령캐쉬메모리제어부
21 : 명령코드영역 변경검출부 22 : 명령코드 변경처리부
23 : 선택기.
본 발명은 데이터 및 명령의 2개의 분리캐쉬메모리를 가진 캐쉬메모리장치에 관한 것으로서, 보다 구체적으로 말하면 고속 액세스를 실행함과 더불어 자체 정정코드의 일관성을 유지하기 위한 캐쉬메모리장치에 관한 것이다.
컴퓨터에서 사용된 메모리장치들은 그 속도가 빠르고 대용량인 것이 요구된다. 일반적으로, 고속메모리장치는 매우 값비싸기 때문에 모든 메모리장치를 단지 고속메모리장치만으로 구성하는 것은 경제적인 이유에 기인한 곤란이 따른다. 그러므로, 통상 대용량 저비용의 메모리장치와 소용량 고속의 메모리장치는 고속 대용량의 메모리를 등가적으로 실현하도록 결합된다. 이러한 경우, 소용량 고속장치는 "캐쉬메모리"(버퍼기억장치)로 불리운다.
상기 캐쉬메모리는 프로세서 및 대용량 메인메모리사이에 배치된다. 이 캐쉬메모리는 프로세서 및 메인메모리 사이로 자주 전송된 데이터 또는 명령코드를 기억하도록 되어 있다. 프로세서가 데이터 또는 명령코드를 캐쉬메모리로 액세스하려고 하는 경우에는 프로세서가 메인메모리 대신에 캐쉬메모리를 액세스하는데, 이것은 "캐쉬 히트"로 불리운다. 즉, 고액세스 주파수를 갖는 데이터 또는 명령코드를 캐쉬메모리내에 기억시킴으로써 고속액세스가 얻어질 수 있다.
캐쉬메모리의 구성은 다음의 2가지 유형으로 대별된다. 제1의 유형은 프로세서가 취급하는 데이터 및 명령코드를 버퍼시키는 단지 하나의 캐쉬메모리만을 포함하는 것이다. 제2의 유형은 하나는 데이터 기억용이고 다른 하나는 명령코드 기억용인 2개의 분리캐쉬메모리를 포함하는 것이다. 제한된 용량을 가진 캐쉬메모리가 원하는 바대로 갱신되도록 함으로써, 보다 높은 액세스 주파수를 가진 데이터 또는 명령코드가 상기 캐쉬메모리내에 항상 기억된다.
제2유형의 경우에서와 같이, 캐쉬메모리가 데이터캐쉬메모리 및 명령캐쉬메모리로 분할될 때는 캐쉬메모리의 내용을 리프레쉬하기 위한 대수 데이터 및 프로그램간에 발생할 수도 있는 상호간섭이 방지될 수 있다. 다시 말하여, 데이터캐쉬메모리의 내용과 "명령 캐쉬"로서도 언급되는 프로그램 캐쉬메모리의 내용이 최적화 될 수 있다. 아울러, 프로세서가 분리 데이터 액세스 및 명령 페치 포트를 갖는 경우에는 그들이 동시에 사용될 수 있으며 또한 서로 평행하게 될 수도 있다.
그러나, 캐쉬메모리를 데이터캐쉬 및 명령 캐쉬로 분할하게 되면 다음의 결점이 생기게 된다. 즉, 프로그램 자체를 변경시켜 실행하는 동작의 경우나 혹은 소위자체 변경코드의 경우, 캐쉬메모리들 사이와 그리고 각각의 캐쉬메모리 및 메인메모리사이의 데이터 또는 명령 코드나 혹은 처리에 대한 일관성은 상실되게 된다.
다시 말해서, 프로그램 그 자체를 재기입하는 동작은 프로그램이 데이터와 같이 취급되는 데이터캐쉬메모리에 대한 동작이 된다. 한편, 프로세서가 프로그램의 재기입을 실행하는 동작은 명령이 명령캐쉬메모리에 인가되어 명령캐쉬메모리로부터 추출되게 하는 동작이다. 즉, 데이터캐쉬메모리내에 기입된 명령이 메인메모리로 복귀할 때까지는 명령을 실행중인 메인메모리에서 추출된 내용은 변경되지 않는다.
또한, 내용이 변경되기 전에 명령이 캐쉬메모리내에 인입되게 하는 경우에는 변경될 수 있다. 통상, 이러한 문제점을 해소시키기 위하여, 자체 변경될 프로그램이 캐쉬메모리내에는 인입되지 않지만 메인메모리내에는 인입된다. 이러한 경우, 고속처리의 캐쉬메모리 용량의 잇점이 취해질 수 없으므로 프로그램의 실행속도가 떨어진다. 그러나, 자체 변경 프로그램은 프로그램자체의 동작을 빠르게 수행하기 위해 사용된다. 따라서, 캐쉬메모리가 자체 변경 프로그램을 기억하도록 사용될 수 없다는 사실은 큰 결점을 초래시킨다. 이러한 결점을 해소시키기 위하여, 통상 버스워치(Watch)라 불리우는 대형 하드웨어가 항상 액세스 조건을 모니터하도록 하는 것이 필요하다.
프롤로그(Prolog) 및 리스프(Lisp)와 같은 통상의 인공지능언어는 그들이 프로그램을 실행되게 하는 실행 공정대로 동작한다. 따라서, 자체 변경 프로그램 기술은 이들 언어에 필수적이다.
이러한 이유로, 캐쉬메모리장치는 데이터캐쉬메모리 및 명령캐쉬메모리를 독립적으로 갖는 것과, 캐쉬메모리들간의 일관성과 또한 자체 변경 프로그램에 관한 각각의 캐쉬메모리 및 메인메모리간의 일관성을 유지시키는 것이 필요하다.
상술한 바와 같이, 데이터캐쉬 및 명령캐쉬 분리형으로된 통상의 캐쉬메모리장치는 자체변경코드의 실행에 대한 일관성이 유지될 수 없으며, 자체 변경코드가 캐쉬될 수 없고, 또 캐쉬들을 모니터하는데 대형 하드웨어가 필요하다는 문제점들을 갖는다.
따라서, 본 발명의 목적은 캐쉬효과에 악영향을 미치지 않고 또한 하드웨어의 실질적인 증가를 필요로 함이 없이 자체 변경 프로그램의 일관성을 유지되게 하는 캐쉬메모리장치를 제공하는 것이다.
상기 목적을 달성하기 위하여, 본 발명의 캐쉬메모리장치는 데이터 영역 및 명령코드영역을 가진 컴퓨터 프로세서 및 메인메모리에 결합되어 프로세서가 실행하는 명령을 기억하기 위한 명령캐쉬메모리수단과; 상기 프로세서 및 메인메모리에 결합되어 데이터를 기억하기 위한 데이터캐쉬메모리수단과; 상기 프로세서가 메인메모리의 명령코드영역내로의 기입을 수행한 것을 검출하기 위한 명령코드영역 변경검출수단과; 상기 명령코드영역 변경검출수단, 명령캐쉬메모리수단, 데이터캐쉬메모리수단에 결합되어 명령코드영역 변경검출수단이 명령코드가 데이터캐쉬메모리수단으로부터 메인메모리의 명령코드영역내에 기입되는 것을 검출할 때 데이터캐쉬메모리내로의 기입을 프로세서에서 메인메모리로의 직접 기입으로 변경시키도록 데이터캐쉬메모리를 제어함과 아울러, 상기 기입시 메인메모리로의 직접 기입으로 변경된 후 명령코드영역내에 기입된 명령코드의 내용이 명령캐쉬메모리에 기억될 때 명령코드를 무효화시키기 위한 신호를 명령캐쉬메모리에 인가시키기 위한 명령코드영역변경처리수단을 구비하고 있다.
상술한 바와 같은 캐쉬메모리장치에 따르면, 명령코드가 프로세서에 의해 변경되었다 하더라도 그 변경된 명령의 실행동안 데이터캐쉬메모리, 명령캐쉬메모리 및 메인메모리간의 데이터 또는 명령처리에 있어서의 일관성이 유지될 수 있다.
즉, 프로그램이 변경된 경우에는 단지 메인메모리를 직접 액세스하고, 명령캐쉬메모리를 무효화하거나 혹은 데이터를 정확하게 재기입하는 것만이 필요하다. 프로그램이 변경된 후에는 정상 캐쉬가능 프로그램에서와 같은 고속처리가 수행될 수 있다.
이하, 첨부한 도면에 의거하여 본 발명의 양호한 실시예를 상세히 설명하겠다.
제1도를 참조하면, 프로세서(1) 및 메인메모리(2)가 어드레스버스(3) 및 데이터버스(4)를 거쳐서 프로세서(1) 및 버스들(3,4)사이에 배치된 데이터캐쉬메모리(5) 및 명령캐쉬메모리(6)와 상호 접속되어 있다.
데이터캐쉬메모리(5)는 데이터캐쉬메모리제어부(11), 태그부(12) 및 데이터부(13)를 포함한다. 보다 상세히 말하자면, 데이터캐쉬메모리제어부(11)는 프로세서(1)로부터의 판독/기입(R/W)제어신호와 기입허가명령신호에 응답하여 메모리제어동작을 수행하게 되어 있다. 상기 태그부(12)는 프로세서(1)로부터의 데이터어드레스(DADRS)를 유지한다. 또, 데이터부(13)는 프로세서(1)로부터의 데이터 어드레스에 대응하는 데이터(DDATA)를 기억한다. 마찬가지로, 명령캐쉬메모리(6)는 명령캐쉬메모리제어부(14), 태그부(15) 및 데이터부(16)를 포함한다. 특히, 명령캐쉬메모리제어부(14)는 프로세서(1)로부터 명령코드영역변경검출부(21) 및 코드변경검출부(22)를 거쳐 공급된 명령코드영역변경 명령신호에 응답하여 메모리제어 동작을 수행한다. 상기 태그부(15)는 프로세서(1)로부터 선택기(23)를 거쳐 공급된 명령 어드레스(IADRS)를 유지한다. 또, 데이터(16)는 프로세서(1)로부터의 명령 어드레스에 응답하는 명령데이타(IDATA)를 유지한다.
상기 DADRS신호 및 R/W신호는 프로세서(1)가 명령코드영역내로의 기입을 검출할 때 프로세서(1)로부터 자체 변경코드검출신호를 발생시키는 명령코드영역 변경검출부(21)로 인가된다. 명령코드 변경처리부(22)가 기입허가명령, 명령코드 변경명령 및 데이터캐쉬 어드레스 선택신호를 발생시키기 위하여 자체 변경코드 검출신호에 응답한다. 데이터캐쉬 어드레스 선택신호는 절환신호로서 명령캐쉬 어드레스 선택기(23)에 인가된다. 상기 선택기(23)는 자체 변경코드가 검출된 경우 대응하는 어드레스 코드가 기억되었는지의 여부를 확인하기 위하여 명령캐쉬메모리(6)를 DADRS신호에 의해 액세스되게 한다.
데이터 및 명령 캐쉬메모리들(5,6)의 태그부(12), (15)는 각각 제2a도에서 도시된 바와 같은 플래그(V) 및 어드레스를 포함한다. V=1은 데이터부(13,16)가 유효인 것을 나타내고 반면에 V=0은 상기 데이터부(13,16)가 무효인 것을 나타낸다.
프로세서(1)로부터의 어드레스 데이터의 하위비트에 관한 캐쉬메모리들(5,6)의 태그부(12,15)의 어드레스피일드가 프로세서 어드레스의 상위비트와 부합하고 플래그 V가 1인 경우, 그것은 캐쉬 히트로서 취급되고 태그에 해당하는 데이터부(13,15)가 액세스된다. 한편, 동일 태그부의 어드레스 피일드 및 프로세서 어드레스의 상위 비트 사이에 전혀 일치가 발생하지 않거나, 혹은 V=0 또는 두가지 경우가 다 발생하는 경우 그것은 캐쉬 에러로서 간주된다. 결과적으로, 정정 데이터는 메인메모리(2)에서 캐쉬메모리(5,6)의 데이터부로 판독되고, 정정 상위 어드레스는 태그부(12,15)로 로우드되며, 또 플래그는 V=1로 세트된다.
이어서, 프로세서(1)는 캐쉬메모리들에 대한 액세스를 다시 시작한다.
상기 프로세서(1)는 명령 캐쉬메모리(6)로부터 실행될 명령을 정상적으로 추출하며, 그리고 명령을 실행하는 경우에는 데이터캐쉬메모리(5)를 액세스 시킨다. 메인메뢰(2)에서는 명령코드영역 및 데이터영역이 명확히 분리된다. 따라서, 대부분의 경우 명령영역내로의 기입 데이터는 허용되지 않는다.
그러나, 프로그램 실행속도를 빠르게 하기 위한 기술로서는 프로그램 실행을 진전시키기 위해 소위 자체변경코드를 사용함과 더불어 프로그램 그 자체를 변경시키는 기술이 있다.
아울러, 프롤로그 및 리스프와 같은 최근에 알려진 인공지능언어에서는 프로그램영역내의 변경이 그 실행과정중에 자주 발생한다는 것이 잘 알려져 있다. 데이터 및 명령용 분리 캐쉬메모리를 사용한 시스템에서는, 프로세서(1)가 데이터캐쉬메모리(5)로부터 프로그램을 재기입하여 명령캐쉬메모리(6)에서 프로그램을 추출한다. 따라서, 캐쉬메모리(5,6) 및 메인메모리(2)사이에서 자체 변경코드의 일관성이 유지될 수 없게되는 문제점이 발생한다. 다시 말하여, 비록 데이터 메모리(5)가 자체 변경코드에 의해 변경된다 하더라도 그것은 명령캐쉬메뢰(6)상에 반영되지 않는다.
그러므로, 본 발명의 캐쉬메모리장치에서는, 프로세서(1)에 의한 데이터캐쉬메모리(5)로의 기입 액세스가 데이터 영역인지 아니면 메인메모리(2)의 명령영역인지의 여부를 결정하기 위하여 명령코드영역변경검출기(21)가 제공되어 있다. 아울러, 프로세서(1)의 기입 액세스가 명령코드 영역에 있을 때는 데이터캐쉬메모리(5)를 통과하며 명령캐쉬메모리(6)의 태그부(15)를 검사하는 메인메모리(2)로의 직접 기입과, 그리고 프로세서 어드레스의 데이터가 캐쉬될때는 유효 태그플래그를 0으로 세트에 적합한 명령코드 변경프로세서(22)가 제공되어 있다.
명령코드영역변경검출기(21)는 예를 들어 메인메모리(2)의 명령코드영역 및 데이터영역의 배열을 나타내는 테이블로 형성된다.
프로세서(1)의 어드레스는 제3도에서 도시된 바와 같이 32비트로 형성되었다고 가정한다. 하위 16비트어드레스들이 1세그먼트(65K 바이트 유니트)로 운집되고 이 1세그먼트 유니트가 명령코드영역 및 데이터영역을 형성하는 경우, 명령코드영역변경검출기(21)는 어드레스들의 상위 16비트에 대응하는 64K(64K 비트)테이블을 갖는데, 이는 그 내용으로서 0 또는 1로 세트된다. 그 내용이 0인 경우, 상위 16비트 어드레스와 공통인 64K바이트(1세그먼트) 영역은 데이터 영역이다.
또, 그 내용이 1인 경우에는 그 영역은 명령코드영역이다. 메인메모리(2)의 조건이 변경되는 경우에는 그때마다 테이블이 갱신된다.
명령코드영역 변경검출기(21)는 프로세서(1)로부터의 어드레스에 대한 16비트에 응답한다. 그 내용이 1이고 프로세서(1)로부터 R/W신호가 기입되면, 검출기(21)는 이러한 프로세서사이클을 자체 변경코드검출신호를 명령코드변경프로세서(22)에 인가하기 위한 자체 변경사이클로서 간주한다.
명령코드 변경프로세서(22)는 다음의 2가지 처리를 수행하기 위하여 자체 변경코드검출신호에 응답한다.
제1의 처리로서는 명령코드 변경프로세서(22)가 기입허가 명령신호를 데이터캐쉬메모리(5)에 인가한다. 그 결과, 데이터캐쉬제어부(11)가 액세스된 데이터를 통과시켜 메인메뢰(2)내에 그 데이터를 직접 기입한다.
이때, 데이터캐쉬메모리(5)의 태그부(12) 및 데이터부(13)의 내용들은 불변된다.
제2의 처리는 다음과 같다. 명령코드 변경프로세서(22)는 명령코드변경명령을 명령캐쉬메모리(6)의 명령캐쉬제어부(14)에 출력시키고, 또한 데이터캐쉬 어드레스 선택신호를 선택기(23)에 출력시킨다. 그 결과, 명령캐쉬제어부(14)는 변경된 프로그램 어드레스의 데이터가 명령캐쉬메모리(6)에 캐쉬되었는지의 여뷰를 체크한다. 데이터가 캐쉬된 경우, 태그부(15)의 유효 비트는 0으로 된다. 그 결과, 캐쉬된 데이터는 무효로 된다.
다음 프로세서(1)이 어드레스 데이터를 추출하는 경우에는 에러히트가 초래됨으로써 정정 데이터용 메인메모리(2)를 액세스 시킨다. 따라서, 명령코드를 변경하는데 있어서의 일관성이 유지된다.
본 발명은 상술한 실시예로 제한되지는 않는다. 예를 들면, 제5도에서 도시된 바와 같이, 데이터 선택기(24)가 상기 실시예에 부가될 수 있다. 이러한 경우, 변경된 구명령 코드가 명령캐쉬메모리(6)에 캐쉬되었다면, 명령코드변경프로세서(22)가 선택기(24)에 데이터 선택신호를 허가하므로, 프로세서(1)로부터 데이터 캐쉬메모리(5)로 발생되는 신 데이터가 캐쉬된 구데이타를 신데이타로 교체시키기 위해 명령캐쉬메모리(6)에 인가된다.
이때, 유효플래그비트(V)가 1로 세트된다. 따라서, 변경된 프로그램이 프로세서(1)에 의해 차후추출될 때 정정 내용은 에러히트를 초래함이 없이 판독된다.
이때, 명령캐쉬메모리(6)의 태그부(15)는 제2b도에서 도시된 바와 같이 데이터가 변경되었음을 나타내는 변경플래그 M과 함께 제공될 수 있다. 이러한 변경플래그 M은 기입 데이터 A의 명령캐쉬 재기입 기능을 갖는데, 이는 단지 변경 상태의 데이터 A가 다른 데이터 B로 교체된 경우에만 데이터 A에 대응하는 메인메모리(2)의 어드레스로 복귀된다.
이러한 기능의 제공으로 말미암아, 명령부를 재기입함에 있어 데이터캐쉬메모리를 동작시킬 필요성이 전혀없게 된다.

Claims (7)

  1. 캐쉬메모리장치에 있어서, 컴퓨터의 프로세서(1)와 데이터영역 및 명령코드영역을 가진 메인메모리(2)에 결합되어, 상기 프로세서가 실행하는 명령을 기억하기 위한 명령캐쉬메모리수단(6)과; 상기 프로세서 및 상기 메인메모리에 결합되어, 데이터를 기억하기 위한 데이터캐쉬메모리수단(5)과; 상기 프로세서에 의해 상기 메인메모리의 명령코드영역내로의 기입이 수행된 것을 검출하기 위한 명령코드영역변경검출수단(21)과; 상기 명령코드영역변경검출수단, 상기 명령캐쉬메모리수단 및상기 데이터캐쉬메모리수단에 결합되어, 상기 명령코드영역변경검출수단이 상기 데이터캐쉼모리수단으로부터 상기 메인메모리의 명령코드영역내로 명령코드가 기입된 것을 검출한 경우 상기 데이터캐쉬메모리내로의 기입을 상기 프로세서에서 상기 메인메모리로의 직접 기입으로 변경시키도록 상기 데이터캐쉬메모리를 제어함과 아울러, 상기 기입이 상기 메인메모리로의 직접기입으로 변경된 후에 명령코드영역내로 기입된 명령코드의 내용이 상기 명령캐쉬메모리에 기억된 경우 상기 명령코드를 무효화시키는 신호를 상기 명령캐쉬메모리에 인가하기 위한 명령코드영역변경처리수단(22)을 구비한 것을 특징으로 하는 캐쉬메모리장치.
  2. 제1항에 있어서, 상기 명령코드영역변경검출수단은 상기 메인메모리의 명령코드영역과 데이터영역의 배열을 나타내는 테이블로 형성되는 것을 특징으로 하는 캐쉬메모리장치.
  3. 제1항에 있어서, 상기 데이터캐쉬메모리 및 상기 명령캐쉬메모리는 각각 태그부 및 데이터부를 가지며, 상기 명령캐쉬메모리의 태그부는 유효플래그를 포함하고, 상기 명령코드영역 변경프로세서는 상기 명령캐쉬메모리에 기억된 프로그램 데이터의 내용을 무효시킬 때 유효플래그 1비트를 0비트로 변경하는 것을 특징으로 하는 캐쉬메모리장치.
  4. 제3항에 있어서, 상기 명령캐쉬메모리의 태그부는 데이터가 재기입되었음을 나타내는 변경플래그를 추가로 포함하며, 상기 명령코드영역 변경처리수단은 단지 변경상태의 데이터가 상기 변경플래그에 따라 다른 데이터로 대체된 경우에만 상기 변경상태의 데이터를 상기 메인메모리의 데이터에 대응하는 어드레스로 재기입하기 위한 명령캐쉬 재기입기능을 갖는 것을 특징으로 하는 캐쉬메모리장치.
  5. 캐쉬메모리장치에 있어서, 컴퓨터의 프로세서와 데이터영역 및 명령코드영역을 가진 메인메모리에 결합되어, 상기 프로세서가 실행하는 명령을 기억하기 위한 명령캐쉬메모리수단과; 상기 프로세서 및 상기 메인메모리에 결합되어, 데이타를 기억하기 위한 데이타캐쉬메모리수단과; 상기 프로세서에 의해 상기 메인메모리의 명령코드 영역내로의 기입이 수행된 것을 검출하기 위한 명령코드영역변경검출수단과; 상기 명령코드영역변경검출수단, 상기 명령캐쉬메모리수단 및 상기 데이타캐쉬메모리수단에 결합되어, 상기 명령코드영역변경검출수단이 상기 데이타캐쉬메모리수단으로부터 상기 메인메모리의 명령코드영역내로 명령코드가 기입된 것을 검출한 경우 상기 데이터캐쉬메모리내로의 기입을 상기 프로세서에서 상기 메인메모리로의 직접 기입으로 변경시키도록 상기 데이터캐쉬메모리를 제어함과 아울러, 상기 기입이 상기 메인메모리로의 직접 기입으로 변경된 후에 명령코드영역내로 기입된 명령코드의 내용이 상기 명령캐쉬메모리에 기억된 경우 상기 명령코드를 무효화시키는 신호를 상기 명령캐쉬메모리에 인가하기 위한 명령코드영역변경처리수단과; 상기 명령코드변경처리수단 및 상기 캐쉬메모리 사이와 상기 프로세서에 결합되어, 구 명령코드를 상기 프로세서로부터의 신 데이터로 대체하기 위해 변경된 구명령코드가 상기 명령캐쉬메모리에 캐쉬될 때 상기 명령코드변경처리수단으로부터 데이터 선택신호를 수신하기 위한 선택기수단을 구비한 것을 특징으로 하는 캐쉬메모리장치.
  6. 제5항에 있어서, 상기 데이터캐쉬메모리 및 상기 명령캐쉬메모리는 각각 태그부 및 데이터부를 가지며, 상기 명령캐쉬메모리의 태그부는 유효 플래그를 포함하고, 상기 명령코드영역 변경프로세서는 상기 명령캐쉬메모리내에 기억된 프로그램데이타의 내용을 무효화시킬 때 유효플래그 1비트를 0비트로 변경하는 것을 특징으로 하는 캐쉬메모리장치.
  7. 제6항에 있어서, 상기 명령캐쉬메모리의 태그부는 데이터가 재기입 되었음을 나타내는 변경플래그를 추가로 포함하면, 상기 명령코드영역 변경처리수단은 단지 변경상태의 데이터가 상기 변경플래그에 따라 다른 데이터로 대체된 경우에만 상기 변경상태의 데이터를 상기 메인메모리의 데이터에 대응하는 어드레스로 재기입하기 위한 명령캐쉬 재기입 기능을 갖는 것을 특징으로 하는 캐쉬메모리장치.
KR1019880003334A 1987-03-28 1988-03-28 캐쉬메모리장치 KR910002556B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP62073000A JPS63240650A (ja) 1987-03-28 1987-03-28 キヤツシユメモリ装置
JP62-73000 1987-03-28

Publications (2)

Publication Number Publication Date
KR880011674A KR880011674A (ko) 1988-10-29
KR910002556B1 true KR910002556B1 (ko) 1991-04-24

Family

ID=13505652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880003334A KR910002556B1 (ko) 1987-03-28 1988-03-28 캐쉬메모리장치

Country Status (4)

Country Link
US (1) US4992977A (ko)
EP (1) EP0285346A3 (ko)
JP (1) JPS63240650A (ko)
KR (1) KR910002556B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2511146B2 (ja) * 1989-07-07 1996-06-26 富士通株式会社 デ―タ処理装置
WO1991004536A1 (en) * 1989-09-20 1991-04-04 Dolphin Server Technology A/S Instruction cache architecture for parallel issuing of multiple instructions
EP0475209A3 (en) * 1990-09-14 1993-09-29 Siemens Aktiengesellschaft Arrangement for the determination of instructions modified by the cpu of a processor
JPH05189238A (ja) * 1992-01-14 1993-07-30 Nec Corp 動的プログラムロード方式
US5586303A (en) * 1992-02-12 1996-12-17 Integrated Device Technology, Inc. Structure and method for providing a cache memory of selectable sizes
JPH05324469A (ja) * 1992-04-02 1993-12-07 Nec Corp キャッシュ・メモリを内蔵したマイクロプロセッサ
US5740398A (en) * 1993-10-18 1998-04-14 Cyrix Corporation Program order sequencing of data in a microprocessor with write buffer
US5615402A (en) * 1993-10-18 1997-03-25 Cyrix Corporation Unified write buffer having information identifying whether the address belongs to a first write operand or a second write operand having an extra wide latch
US6219773B1 (en) 1993-10-18 2001-04-17 Via-Cyrix, Inc. System and method of retiring misaligned write operands from a write buffer
US5471598A (en) * 1993-10-18 1995-11-28 Cyrix Corporation Data dependency detection and handling in a microprocessor with write buffer
US5539895A (en) * 1994-05-12 1996-07-23 International Business Machines Corporation Hierarchical computer cache system
JP3127796B2 (ja) * 1994-10-07 2001-01-29 松下電器産業株式会社 情報記録再生装置
US5651134A (en) * 1994-10-26 1997-07-22 Ncr Corporation Method for configuring a cache memory to store only data, only code, or code and data based on the operating characteristics of the application program
US7330954B2 (en) * 2002-04-18 2008-02-12 Intel Corporation Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices
GB2426082B (en) * 2005-05-09 2007-08-15 Sony Comp Entertainment Europe Memory caching in data processing
JP5482197B2 (ja) * 2009-12-25 2014-04-23 富士通株式会社 演算処理装置、情報処理装置及びキャッシュメモリ制御方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4481573A (en) * 1980-11-17 1984-11-06 Hitachi, Ltd. Shared virtual address translation unit for a multiprocessor system
US4445174A (en) * 1981-03-31 1984-04-24 International Business Machines Corporation Multiprocessing system including a shared cache
JPS60123936A (ja) * 1983-12-07 1985-07-02 Fujitsu Ltd バッフア記憶制御方式
EP0156307A3 (en) * 1984-03-30 1988-04-20 Four-Phase Systems Inc. Pipelined processor having dual cache memories
US4807110A (en) * 1984-04-06 1989-02-21 International Business Machines Corporation Prefetching system for a cache having a second directory for sequentially accessed blocks
US4802085A (en) * 1987-01-22 1989-01-31 National Semiconductor Corporation Apparatus and method for detecting and handling memory-mapped I/O by a pipelined microprocessor

Also Published As

Publication number Publication date
EP0285346A3 (en) 1990-09-12
KR880011674A (ko) 1988-10-29
US4992977A (en) 1991-02-12
EP0285346A2 (en) 1988-10-05
JPS63240650A (ja) 1988-10-06

Similar Documents

Publication Publication Date Title
KR910002556B1 (ko) 캐쉬메모리장치
EP0118828B1 (en) Instruction fetch apparatus and method of operating same
US5214770A (en) System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
US5073851A (en) Apparatus and method for improved caching in a computer system
US4561051A (en) Memory access method and apparatus in multiple processor systems
US4816991A (en) Virtual machine system with address translation buffer for holding host and plural guest entries
JPH0668735B2 (ja) キヤツシユメモリ−
WO1997046937A1 (en) Method and apparatus for caching system management mode information with other information
US5946717A (en) Multi-processor system which provides for translation look-aside buffer address range invalidation and address translation concurrently
US5530823A (en) Hit enhancement circuit for page-table-look-aside-buffer
US5034885A (en) Cache memory device with fast data-write capacity
US6519684B1 (en) Low overhead method for selecting and updating an entry in a cache memory
KR920008428B1 (ko) 메인 메모리와 캐시 메모리내에 기억된 데이타의 불일치를 방지하는 데이타 처리장치
US20090292857A1 (en) Cache memory unit
US5226138A (en) Method for selectively transferring data instructions to a cache memory
US4648033A (en) Look-aside buffer LRU marker controller
US5619673A (en) Virtual access cache protection bits handling method and apparatus
US4803616A (en) Buffer memory
JP3733604B2 (ja) キャッシュメモリ
EP0570646A1 (en) Method for processor simulation
EP0362366B1 (en) Instruction cache flush-on-rei control
JP2637853B2 (ja) キャッシュメモリ装置
JPH07104834B2 (ja) 処理装置間ロック制御システム
EP0346915A2 (en) Cache breakpoint system for computers
KR100201671B1 (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 캐시 메모리 이용방법

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee