KR930004430B1 - 가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치 - Google Patents

가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치 Download PDF

Info

Publication number
KR930004430B1
KR930004430B1 KR1019900017233A KR900017233A KR930004430B1 KR 930004430 B1 KR930004430 B1 KR 930004430B1 KR 1019900017233 A KR1019900017233 A KR 1019900017233A KR 900017233 A KR900017233 A KR 900017233A KR 930004430 B1 KR930004430 B1 KR 930004430B1
Authority
KR
South Korea
Prior art keywords
cache
virtual
information
memory
address
Prior art date
Application number
KR1019900017233A
Other languages
English (en)
Other versions
KR910014814A (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 KR910014814A publication Critical patent/KR910014814A/ko
Application granted granted Critical
Publication of KR930004430B1 publication Critical patent/KR930004430B1/ko

Links

Classifications

    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed

Landscapes

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

Abstract

내용 없음.

Description

가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치
제1도는 본 발명 시스템에서 메모리의 이용을 설명하는 도.
제2도는 본 발명을 포함하는 컴퓨터 시스템을 설명하는 블록도.
본 발명은 컴퓨터 메모리 시스템에 관한 것인데 특히 공통버스선을 통해 연결된 다중처리 컴퓨터 시스템에서 캐쉬(cache) 내에 포함된 데이타의 일치성을 유지하는 가상 기억장치에 관한 것이다.
컴퓨터 시스템에서 메모리를 최대로 사용하고 및 프로그래머들에 의해 사용되는 대단히 많은 양의 램(RAM)을 제공하기 위해, 가상기억장치가 널리 사용되어 왔다.
가상기억장치는 램(RAM)에 존재하는 실제 메모리보다 더 주소지정이 가능한 메모리를 제공한다.
이러한 시스템은, 비록 램에 존재하지만, 긴항 메모리를 포함하는 시스템에서 메모리의 어느 부분에 실제로 존재할 수 있는 매우 많은 양의 가상 주소들을 제공한다.
이것은 램을 각각 동일 크기의 다수의 고정된 블럭으로 나눔으로써 요구 페이지 가상 기억 시스템에서 형성된다.
메모리에서 어떤 일이 일어날때, 그 주소 공간은 블럭들과 같은 크기의 페이지로 나누어지고, 상기 페이지는 실제적인 블럭에 저장된다.
이때, 블럭들이 실제적으로 연속되거나 또는 연속되지 않는다할지라도 주소는 메모리 관리 시스템에 대해서 논리적으로 연속되어 유지된다.
이것은 실제 메모리의 각 블럭에 가상 주소를 할당함으로 이루어진다. 메모리 관리 장치는 대개 일련의 조사 테이블을 통해 실제 주소와 가상 주소의 관계에 대한 트랙을 유지한다.
프로그램을 운용하는데 정보가 필요할때, 그 가상 주소는 메모리 관리장치에 의해 실제 메모리 위치로 전환되고, (그곳에 없다면) 처리과정의 운용에 즉시 필요한 정보는 램으로 복사된다.
처리과정에서 요구되는 첨가된 정보는 그것이 필요할때 램으로 호출된다.
컴퓨터 시스템은 시스템의 운동을 빠르게 하도록 캐쉬를 오래동안 사용해 왔다.
캐쉬 시스템에서 정보가 주 메모리부터 호출되어 사용되는 것과 같이, 정보는 캐쉬라 부르는 특별히 빠른 메모리의 작은 부분에 주소에 따라 저장된다. 각각의 새로운 판독 또는 기입 명령이 나타남에 따라, 시스템은 정보가 캐쉬안에 존재함을 알기 위해서 고속 메모리인 캐쉬를 검색한다.
원하는 주소와 캐쉬 메모리안의 주소들 간의 비교가 이루어진다.
만약 캐쉬메모리안의 주소가 원하는 주소와 일치할때는 적중되었다고 한다(정보 캐쉬안에서 이용된다).
이때 정보는 캐쉬에 액세스되어 주 메모리에 액세스는 요구되지 않고; 명령은 매우 빨리 처리된다.
만약 정보가 캐쉬안에 이용될 수 없다면, 새로운 데이타가 주 메모리로부터 복사되어 사용에 대기된 캐쉬안에 저장된다.
잘 설계된 캐쉬 시스템에서는 액세스 정보가 캐쉬안에서 90퍼센트이상의 평균치로 발견된다. 메모리 관리 장치를 통하지 않고 직접 어드레스 될 수 있을때 캐쉬는 매우 빨리 작동한다.
가상 메모리 시스템과 함께 사용되는 캐쉬는 정보가 캐쉬안에서 발견되기전에 가상주소를 실제 주소로 전환시킬 필요가 없기 때문에 더 효과적으로 사용하는 정보의 가상 주소를 어드레스할 수 있다.
가상 캐쉬에 대한 문제는 주소 에일리어스(alias), 즉 공동 실제 주소로 매핑하는 두개의 가상 주소와 연관된 데이타 일치성 또는 스테일 데이타(stale data)이다.
다중 프로세서를 사용하는 컴퓨터 시스템이 설계되어 왔다.
다중 프로세서의 사용은 총괄 시스템의 계산력을 향상시키도록 다양한 기능 또는 처리가 단일 중앙 처리 장치(CPU)이외의 방법으로 운용된다.
다중 프로세서가 시스템에 사용될때, 이 프로세서에 의해 동작속도를 증가시키기 위해 각각의 프로세서를 갖춘 개개의 캐쉬를 이용하는 것이 종종 유익하다.
다중 처리 시스템에 의해 주어지는 특별한 장점은 프로세서가 동일한 실제 메모리를 어드레스할 수 있기 때문에, 프로세서가 동일한 데이타를 공유할 수 있다는 것이다.
그러나, 다중 프로세서에 의해 사용되는 다중 가상 캐쉬가 데이타를 공유할때, 어느 특별한 프로세서가 데이타용 실제 메모리를 검색하는 시간에 캐쉬에서의 동작이 두개의 프로세서에 의해 공유된 실제메모리에 반영되지 않기 때문에 데이타 일치성 문제가 야기된다.
이것은 포함된 가상 캐쉬 및 예컨대 총 시스템 메모리가 개개의 프로세서에 의해서 상기 프로세서와 다른 캐쉬로 존재하는 것이 고려되기 때문에 특별히 어려운 문제이다.
가상 캐쉬는 가상 주소에 의해 어드레스된다.
하나의 프로세서 뿐만 아니라 다른 가상 캐쉬와 연관된 또다른 프로세서에 대한 가상 주소는 두개의 프로세서가 동일한 실제 메모리로부터 동일한 데이타를 갖는 캐쉬들을 이용할지라도 관계가 없다.
실제로 종래의 기술에서 가상 캐쉬를 이용하는 다중 처리 컴퓨터 시스템은 일치성에 대한 매우 어려운 문제를 야기시킨다.
다중 처리 컴퓨터 시스템에서 가상 캐쉬를 이용함으로서 야기되는 데이타 일치성 문제에 대한 종래 기술의 해결책은 하드웨어의 지나친 사용과 그로 인해서 시스템은 느리게 하는 경향을 가져왔다.
그러므로 가상 캐쉬를 사용하는 다중 처리 시스템에서 데이타 불일치에 대한 문제를 제거하는 것이 본 발명의 목적이며, 어드레싱의 복잡성을 감소시키는 것이 본 발명의 또 다른 목적이다.
실제로 상기 시스템의 복잡성 또는 비용의 증가없이 가상 캐쉬를 사용하는 다중처리 시스템에서 데이타 불일치의 문제를 제거하는 것과 본 발명의 부가된 목적이다.
가상캐쉬메모리, 주메모리, 주메모리와 프로세서를 연결하는 버스, 주메모리안의 동일한 실제 위치로부터 정보를 저장하는 각각의 가상 캐쉬안의 정보가 각각의 가상 캐쉬안의 동일한 인덱스 위치에 있다는 것을 제공하는 인덱싱 수단을 포함하는 각각의 처리와 연관된 캐쉬를 어드레싱하는 수단, 각각의 프로세서와 연관된 메모리관리장치, 정보가 있는 캐쉬안의 위치를 가리키는 인덱스를 포함하는 가상캐쉬에 기입될 정보의 가상 주소를 가리키기 위하여 어드레싱 정보를 각각의 메모리 관리장치로 전달하는 수단, 실제주소와 정보가 있는 가상 캐쉬안의 위치를 가리키는 가상 오프셋(offset)인덱스를 가상 주소로부터 발생시키는 수단, 또다른 가상 캐쉬가 동일한 실제 메모리 위치로부터 정보를 갖고있는지 어떤지를 실제 주소 및 가상 오프셋인덱스로부터 결정하는 수단을 각각 갖춘 제1 및 제2프로세서를 포함하는 컴퓨터 시스템에서 본 발명의 상기 및 다른 목적 및 특징이 실현된다.
본 발명의 상기 및 다른 특징 및 장점은 부재번호가 여러 도면을 통해서 부재를 설명하는 도면과 연관된 이하 상세한 설명을 읽음으로써 당업자에게는 명백해질 것이다.
이하의 상세한 설명은 컴퓨터 메모리내에서 데이타 비트상의 동작의 알고리즘 및 기호표시로 기술된다.
이러한 알고리즘 설명 및 표시는 타업자에게 작업량을 가장 효과적으로 전달하도록 데이타 처리 기술에서의 당업자가 사용하는 수단이다.
여기서 알고리즘을 일반적으로 원하는 결과에 따라 일관성있는 일련의 단계가 되도록 표현하였다.
이 단계는 실제양의 실제 조작을 필요로 한다.
대개, 비록 필요하지 않더라도 이 양은 저장되고 전달되고 협쳐지고 비교되고 이외로 조작될 수 있는 전기적 또는 자기적 신호의 형태를 취한다.
주로 일반 관용의 이유로 비트, 값, 요소, 심볼, 문자, 용어, 숫자등등으로 이 신호를 언급하는 것이 때때로 편리하다.
그러나, 상기의 모든 용어 및 유사 용어가 적절한 실제량과 관련될 수 있고 단지 상기 량에 가해진 편리한 표시하는 것을 명심하자.
또한, 실행된 조작은 사람에 의해서 실행되는 암산과 관견된, 가령 더하기 또는 비교등과 같은 용어들로 종종 언급된다.
사람의 그러한 수고가 본 발명의 일부분을 형성하고 여기에서 언급된 동작의 어느 부분에서 대부분의 경우에 필요하거나 또는 요구되지 않는다; 이 동작은 기계 동작이다.
본 발명의 동작을 실행하는 유용한 기계는 범용 디지탈 컴퓨터 또는 다른 유사한 장치를 포함한다.
모든 경우에 컴퓨터를 구동하는데 있어서의 방법 동작과 그 자체의 계산방법간의 차이를 명심해야 한다.
본 발명은 달리 원하는 물리신호를 발생시키기 위하여 전기적 또는 다른(예컨대 기계적, 화학적)물리 신호를 처리한 컴퓨터를 구동하기 위한 방법단계 및 장치에 관한 것이다.
역사적으로 특별한 처리과정이 컴퓨터 시스템에 대해서 실행됐을때, 모든 처리 과정은 램(RAM)안에 있었고 중앙 처리장치(CPU)는 램(RAM)에 있는 상기 처리과정의 명령과 데이타에 의해 구동되었다.
처리과정이 점점 복잡해질때, 더 많은 램이 요구되기 때문에 비용이 더 비싸졌다.
램의 비용이 다른 형태의 메모리의 비용보다 더 비싸기 때문에 가상 메모리를 이용하는 시스템이 개선되었다.
가상 메모리 시스템에서는 램의 많은 양을 끄집어낼 수 있다.
상기 모든 램이 가상 주소에 할당된다; 그러나 가상 주소에 유용한 정보는 긴 항 메모리(long term memory)를 포함하는 시스템의 어느 곳에도 저장될 수 있다.
이 정보는 가상 주소에 의해서 어드레스되고, 이 주소는 대개 메모리 관리 장치(MMU)로 언급되는 회로소자에 의해서 실제 주소로 전환된다.
중앙처리장치와 연관된 메모리 관리 장치는 다른 소자들 사이에서 이 변환을 방아서, 실제 메모리 상태로 갱신된 정보를 유지해야 한다.
실제 램에서 사용할 수 없는 정보가 처리과정에서 필요할때, 그 정보는 롱텀 메모리로부터 호출되어 램에 위치된다.
본 기능에 실제로 요구되는 처리과정의 부분만이 램에 두는 것이 필요하기 때문에 이러한 시스템에서는 램이 덜 필요하다.
만약 처리과정의 다른 부분이 필요하게 되면, 이러한 부분들은 램에 첨가되고, 만약 요구되면, 상기 또는 다른 처리과정의 사용되지 않는 부분이 공간을 만들기 위하여 램으로부터 제거된다.
이러한 제거된 부분은 필요할때 제호출하기 위해 보조 메모리에 남게된다. 일반적으로 가상 메모리 시스템에서, 정보는 페이지로도 언급되는 동일한 크기 부분의 실제 메모리에 저장된다.
대표적인 페이지 크기는 메모리의 1킬로 비트에서 8킬로 비트 범위내에 있다. 정보가 제2메모리로부터 램으로 전달될때, 대개 한 페이지 크기의 블록으로 전달된다.
범용 시스템에서 가상 메모리주소와 실제 메모리 주소간의 대응관계를 유지하기 위해 메모리내에 저장될 수 있는 페이지 맵(map) 테이블을 창출하려고 메모리 관리장치 및 구동 시스템이 함께 작업한다.
컴퓨터 시스템은 또한 속도시스템 동작을 위해 캐쉬를 이용한다.
대표적인 장치에서 캐쉬 메모리를 이용한 실제 메모리 소자는 정상적인 램(RAM) 보다 더 빠른 구동능력을 갖고있으며, 실제로 램의 주요부분을 이용한 소자보다 더 비싸다.
예컨대 캐쉬 메모리는 비록 매우 비싸더라도 종래의 메모리에서 이용된 동적램칩에서 보다 더 빨리 구동되는 정적 램칩을 이용할 수 있다.
캐쉬 메모리의 속도에 접근하는 총괄적인 시스템 속도의 동작을 얻기위해서, 정보가 중앙처리장치에 의해 어느 특별한 동작을 위한 주메모리로부터 요구될때, 그 정보는 캐쉬 메모리에 저장된다.
정보를 판독하기 위한 어떤 시도가 있을때, 중앙처리장치가 그 정보를 검색하는 제1위치는 연관된 캐쉬 메모리안이다.
만약 정보가 캐쉬 메모리내에 있다면 주메모리에 대한 액세스가 불필요하고, 캐쉬 속도가 주어진다.
만약 정보가 캐쉬내에 없다면, 다음번 시도에서 더 접근 가능하도록 주메모리로부터 캐쉬로 복사된다.
캐쉬장치는 가상 메모리를 이용하는 컴퓨터 시스템에 종종 사용된다.
이러한 시스템에서는 가상 주소에서 실제 주소로 변환되는 시간을 제거할 수 있도록 캐쉬는 가상 주소를 사용하여 어드레스될 수 있다.
이러한 시스템에서는 메모리에 대한 기입이 캐쉬 레벨(level)에서 발생할때 캐쉬내의 갱신된 데이타는 즉시 주메모리에 재기입되어야 한다.
다중 프로세서를 이용하는 시스템은 공지되어 있다.
다중 프로세서의 이용은 총괄적인 시스템의 계산력이 향상되도록 다양한 기능이 하나의 중앙 처리장치이외의 방법에 의해서 운용되게 한다.
다중 프로세서가 시스템에 사용될때, 이 프로세서에 의해 동작 속도를 증가시키기 위해서 각각의 프로세서를 갖춘 개별적인 캐쉬를 이용하는 것이 종종편리하다. 이것은 다중 캐쉬가 이용될때 동일 프로세서가 동일 실제 메모리로 어드레스될 수 있기 때문에 동일 프로세서는 동일 데이타를 공유 할수 있는 부수적 장점을 가진다.
그러나, 다중 프로세서에 의해 사용된 다중 가상 캐쉬가 동일 데이타를 공유하는 상황에서 어느 특별한 캐쉬가 데이타가 있는 실제 메모리를 검색하는 동안 캐쉬에서의 동작이 다중프로세서에 의해서 공유된 실제 메모리에서 반영되지 않을 수도 있기 때문에 데이타 일치 문제가 야기된다.
예컨대 이것은 즉 메모리의 정보가 즉시 갱신되지 않는 기입-백(write-back) 캐쉬 시스템에서 야기된다.
이러한 시스템은 시스템 버스에서 가능한 가장 낮게 교통량을 유지하는 경향이 있기 때문에 주메모리가 프로세서에 의해서 버스위에서 접근되어지는 시스템에서 기입-백 캐쉬 시스템은 특별히 편리하다.
첨가된 캐쉬가 개개의 처리과정에 개별적이므로 다른 프로세서에서 동작되는 처리과정에서 알려지지 않는 가상 주소에 의해서 어드레스되는 가상 메모리를 이용한 컴퓨터 시스템에서 이것은 특별히 어려운 문제이다.
하나의 프로세서와 연관된 처리과정에 의해서 사용된 가상 캐쉬에 저장된 정보를 가상 주소는 비록 정보가 동일한 실제 메모리로부터 얻게되어도 또 다른 프로세서에 의해 동작되는 처리과정에 의해 사용된 가상 캐쉬에서는 정보용 가상 주소에 대응하지 않는다.
결과적으로 종래기술에서 가상 캐쉬를 이용한 다중처리 컴퓨터 시스템을 극단적으로 어려운 데이타 일치문제를 제공하였다.
본 발명의 시스템에서 이용된 캐쉬는 직접 맵 가상 어드레스 캐쉬(direct-mapped virtually-addressed caches)이다.
직접 맵 캐쉬는 캐쉬메모리의 기본적으로 유사한 페이지 크기의 블럭에 맵(map)된 주 메모리의 페이지를 갖춘 것이며, 각각의 캐쉬 페이지 크기의 블럭은 정보가 전달되는 주메모리의 페이지의 라인(line)에서와 같이 라인에서 동일량의 정보를 각각 저장할 수 있는 메모리 라인들을 갖춘다.
이러한 캐쉬에서 주메모리내의 정보의 페이지로부터의 라인은 주메모리내의 페이지와 같은 라인수를 갖춘 캐쉬내에 페이지 크기의 블럭의 라인으로 맵(map)된다.
이러한 캐쉬에서, 캐쉬내에 저장된 주메모리의 어느 페이지로부터의 정보는 실제 메모리의 페이지내에 정보가 상주하는 것과 같이 캐쉬에서 페이지 크기 블럭내의 동일 라인에 상주한다.
종래의 기술 시스템에서는 주메모리의 페이지가 4K바이트에서 8K 바이트까지일때 가상 캐쉬의 크기는 64K 바이트와 256K바이트 사이에 있는 것이 보통이다. 결과적으로 종래의 기술시스템에서 캐쉬는 주 메모리의 8페이지에서 64페이지까지의 여분이 있어서 정보의 특별 라인은 캐쉬에서 8만큼 적거나 또는 64만큼 많은 다른 위치에 상주한다.
이러한 캐쉬내의 정보를 액세스하고 데이타 일치(또는 데일리어스 calias)문제를 피하는 것은 정보가 맵(map)되는 라인 위치가 매치(match)가 발견될때까지 캐쉬의 각 페이지 크기 영역과 비교되는 것이 요구된다.
이러한 캐쉬에서 어느 64 위치에 상주한 정보를 액세스하는 것은 이를 성취하기 위해서 많은 시스템시간 및 하드웨어를 요구한다.
주메모리내의 동일 실제주소로 부터의 정보가 각각의 가상 캐쉬내의 8중의 1 또는 64중의 1의 다른 위치에서 보다 더 동일한 위치에 상주되도록 캐쉬내의 정보의 위치를 제한함으로써 본 발명의 시스템은 이 문제를 극복한다. 이것은 캐쉬내의 특별한 페이지 트기 영역을 지정하기에 충분한 가상 주소의 일부를 시스템 버스에 제공함으로서 달성된다.
통상, 캐쉬의 페이지 크기 영역내에 오프셋(offset)을 나타내는 가상 주소의 하위 비트는 실제주소의 페이지내의 오프셋을 나타내는 하위비트와 동일하다. 바람직한 시스템에서는 가상 주소는 32비트를 포함한다.
이 비트에서, 19개의 상위 비트가 실제 페이지 주소로 전환될때 13개의 하위비트는 페이지 크기 블럭에 있는 오프셋을 지시한다.
그러나, 상위 19개의 비트의 5개 또는 6개의 최하위 비트'(캐쉬 크기에 의존하는)는 정보가 들어있는 캐쉬의 페이지 크기 블록을 한정함으로써 어느 캐쉬내에 정보의 위치를 명백히 결정한다.
전형적으로 13개의 하위 비트는 메모리 관리 장치에 의해서 변환되는 것이 아니라 프로세서에서 버스로 직접 전달된다.
게다가, 만약 충분한 수의 가상 주소비트(그 다음의 다섯개 또는 여섯개의 높은 비트)가 정보가 들어있는 가상 캐쉬의 페이지 크기 영역을 지시하기 위해서 프로세서로 부터 버스로 직접 전달된다면, 각각 다른 가상 캐쉬내의 개개의 기능한 페이지 위치에 대해 체크하지 않고 어느 다른 가상 캐쉬내의 정보의 위치를 명백하게 결정하기 위해서 이 정보는 실제 주소와 함께 사용될 수 있다.
따라서 만약 페이지 크기가 8K바이트이고 캐쉬의 크기가 256K바이트라면, 캐쉬내의 32개의 가능한 페이지 크기 위치를 나타내기 충분한 수인, 가상 주소의 5개의 부가적인 비트가 필요하다.
페이지 크기 블럭을 나타내는 동일한 5비트를 포함하는 가상주소의 상위를 메모리 관리 장치로 보내어 실제 주소로 전환되는 동안 가상주소의 상기 부가적인 5개의 비트는 정상적인 오프셋과 함께 직접 버스로 전달된다. 이 라인과 페이지 오프셋 정보와 실제주소를 사용하여, 다수의 다른 가상 캐쉬내에 상주하는 실제 메모리의 동일 라인으로 부터의 정보는 정보를 공유할 수 있는 어느 다른 가상 캐쉬와 동일한 캐쉬내의 통 오프셋에서만 존재할 뿐이다.
캐쉬내의 총 오프셋은 페이지 크기 영역내의 오프셋 및 가상 주소의 부가적인 비트(오프셋 인덱스(index)로 불리는)에 의해서 제한된다.
따라서 바람직한 실시예에서 만약 가상 주소가 직접 맵 가상캐쉬에 어드레스하는데 사용된 18개의 하위 가상 주소 비트에 부합된다면 두개의 다른 가상 주소는 통상의 실제주소에 맵될 수 있다.
가상 캐쉬에 어드레스하는 정보를 제한함으로써, 동일한 실제 메모리위치로부터 정보를 갖는 두개의 가상 캐쉬는 각각의 가상 캐쉬내의 동일 위치에 그 정보를 저장한다.
동일한 실제 메모리로부터 동일 데이타를 얻은 두개의 가상 캐쉬는 다른 가상 주소에 그 정보를 저장할 수 있지만, 정보의 각각의 특별한 부분은 각각의 가상 캐쉬내의 동일한 총 오프셋("가상 인덱스"로 불려지는) 및 동일라인 및 바이트에 존재한다.
이것은 데이타를 공유할때 캐쉬의 크기를 장치내의 주메모리에서 실제 주소로 맵핑하는 효과를 갖는다.
이것은 적색이 캐쉬내의 많은 다른 페이지에서 특별한 라인을 찾을 필요가 없으므로 시스템의 동작 속도를 증가시키고 복잡성을 감소시킨다.
이것은 제1도에 설명된다.
제1도는 실제 메모리(P)의 캐쉬 크기 블럭 및 A와 B로 표시된 두개의 가상 캐쉬를 도시한다.
본 발명의 바람직한 실시예에서 예컨대 가상 캐쉬는 256K 바이트의 정보를 포함한다.
결국, 공유된 정보가 다른 가상 캐쉬 메모리에 저장될때, 비록 개개의 캐쉬의 가상 주소 태그(tag)는 다를지라도, 어드레스된 캐쉬 라인이 각각의 캐쉬내에 동일한 위치에 있다는 것을 확인하기 위하여 캐쉬의 올바른 페이지 크기 영역이 어드레스되도록 각각의 캐쉬내의 어느 특정 정보용 총 오프셋(가상 인덱스)은 동일할 것이다.
예컨대 가상 캐쉬(A)내의 X로 표시된 위치에 저장된 정보는 가상캐쉬(B)내의 X로 표시된 위치에 저장된 정보와 동일하다.
이것은 실제 메모리에서 X로 표시된 위치로부터 가상 캐쉬의 각각으로 전달된 정보이다.
결국, 만약 어느캐쉬용 가상 캐쉬 주소가 알려진다면, 공유가 일어날때 각각의 캐쉬에게 있어서의 인덱스는 동일할 것이다.
일정시간동안 시스템이 동작되고 정보가 주 메모리내의 실제 메모리(P)로부터 복사된 가상 캐쉬(A) 및 가상 캐쉬(B)에 저장된다고 가정하여 중앙처리장치가 가상 캐쉬(B)로 기입할때, 주 메모리와 캐쉬메모리(A)내의 그 위치에서의 정보는 캐쉬(B)에 저장된 정보와 더이상 같지 않을 것이다. 그러므로 중앙 처리장치가 낡은 정보로 구동되지 않도록 시스템이 새로운 정보를 캐쉬(B)로부터 주 메모리로 기입하고 가상 캐쉬(A)내의 정보를 무효로 하거나 갱신하여 캐쉬(B)에 기입된 새로운 정보를 반영하는 것이 필요하다.
제2도는 컴퓨터 시스템(10)을 도시한다.
시스템(10)은 제1중앙처리장치(12), 중앙처리장치(12)와 연관된 제1메모리 관리 장치(MMU)(14), 제2중앙처리장치(16), 중앙처리장치(16)와 연관된 제2메모리 관리장치(MMU)(18), 중앙처리장치(12)와 연관된 캐쉬메모리(20), 중앙처리장치(16)와 연관된 캐쉬메모리(21), 및 주메모리(22)를 포함한다.
또한 제2도는 스누피 태그 디렉토리(snoopy tag directory)(30,32) 및 시스템소자 연결용 버스(34)가 설명된다.
예컨대 중앙처리장치(12)가 특별 처리동작을 위해 주메모리(22)로 부터 정보를 원할때, 이 정보를 가상주소에 의해 메모리 관리장치(14)를 통해 요구한다. 메모리 관리장치(14)는 중앙처리장치(12)에 의해 제공되는 가상 주소를 정보가 주 메모리(22)내에 상주하는 실제 주소로 전환하며, 주메모리(22)로부터 정보를 호출하고, 정보가 있는 캐쉬의 페이지 크기 블럭을 나타내기에 충분한 부가적인 비트(오프셋 인텍스)를 더한 하위 오프셋 비트에 의해 지시된 캐쉬 위치에서 캐쉬 메모리내에 정보를 둔다.
따라서, 특정 정보가 가상 인덱스에 의해 결정된 특정 위치에서 가상 캐쉬에 상주한다.
가상 캐쉬에 저장된 정보에 대한 가상 디렉토리는 각각의 가상 캐쉬 메모리내에 저장된다.
가상 디렉토리는 이러한 정보에 관련된 허가에 관한 어떤 정보를 갖춘 특정캐쉬에 저장된 정보의 가상 주소를 포함한다.
스누피 태그 디렉토리(30,32)는 가상 캐쉬에 저장된 정보의 실제 메모리내의 페이지 주소를 각각 저장하는 보조(또는 이중의)디렉토리이다.
디렉토리(30,32)는 또한 각 페이지내의 오프셋을 포함하는 가상 인덱스 및 정보가 있는 연관된 가상 캐쉬의 페이지 크기 부분을 제한하는 오프셋 인덱스 비트도 저장한다.
따라서, 가상 캐쉬에 저장된 정보의 어느 특정 부분에 대하여 2개의 디렉토리가 존재하는데, 가상 디렉토리는 가상 주소를 리스트하고 스누피 디렉토리는 정보의 가상 주소와 연관된 실제 주소를 리스트 한다.
중앙처리장치가 정보를 가상 캐쉬에 기입할때, 하나의 캐쉬 및 또다른 캐쉬 그리고 실제 메모리는 동일 실제 메모리에 접근하는 또다른 캐쉬에 낡은 정보를 제공하지 않도록 갱신되거나 제거되어야 한다.
스누피 디렉토리의 사용은 시스템(10)의 중앙처리장치에 의해서 갱신된 정보를 포함한 상기 캐쉬 메모리를 빨리 갱신되게 한다.
기입 신호가 중앙처리장치에 의해 가상 캐쉬로 보내질때, 가상 주소 태그(tag)는 캐쉬와 연관된 메모리 관리 장치로 보내지고, 가상 오프셋 인덱스를 포함한 가상 인덱스는 버스(34)로 직접 전달된다.
메모리 관리 장치는 가상 주소를 실제 주소로 전환하고 가상 오프셋 인덱스를 갖춘 버스상의 상기 실제주소를 모든 스누피 태그 디렉토리로 보낸다. 각각의 상기 디렉토리에서, 비교기(36)와 같은 비교기는 버스(34)로 부터 실제 인덱스를 받고, 디렉토리는 하위 실제 비트와 가상 오프셋 인덱스를 가지고 어드레스된다.
실제 어드레스와 가상 오프셋 인덱스의 결합은 디렉토리가 상기 실제 주소에서의 정보가 상기 스누피 태그 디렉토리와 연관된 가상 캐쉬내에 포함되는 여부를 명확하게 결정하게 한다.
갱신되거나 제거된 가상 캐쉬는 실제 메모리의 동일 부분과 연관된 정보를 포함한 상기 디렉토리에만 있다.
스누피 태그 디렉토리의 사용에 의해서, 버스의 사용은 감소되고 시스템동작 속또는 향상된다.
공유목적을 위하여 캐쉬 크기를 "모듈로"(modulo) 하도록 가상 주소크기를 제한함으로써 가상 및 실제(스누피)캐쉬 태그를 인덱스하는 동일한 가상 인덱스를 사용하는 것이 가능하다.
다시 제2도에서 기입 신호가 캐쉬(B)로 보내질때, 데이타를 기입해야 하는 저장 위치의 가상 인덱스를 포함하는 가상 주소를 나타내는 메모리 관리 장치(18)에 한 신호가 보내진다.
메모리 관리 장치(18)는 종래의 기술에서 공지된 방법으로 가상주소를 실제 주소로 전환하고, 버스(34)상에 가상 오프셋 인덱스(프로세서(16)에 의해 개시된 가상 주소로 부터 얻은 가상 캐쉬에서 정보의 단일위치를 제한하는데 필요한 가상주소의 하위 비트)를 갖춘 실제 주소를 둔다.
상기 주소 정보는 각각의 스누피 태그 디렉토리(30,32)에 제공된다.
각각의 스누피 태그 디렉토리에서 스누피 태그는 페이지 오프셋으로 구성된 가상 인덱스 및 가상 오프셋 인덱스에 의해 인덱스되고 비교기는 동일 실제 주소가 연관된 가상 캐쉬내에 저장되어 있는지를 결정하게 된다.
상기예에서 시제 주소 및 가상 인덱스는 가상 캐쉬(A,B)에 있어서 동일하다.
결국, 스누피 태그 디렉토리(30)는 캐쉬 메모리(A)의 특별한 위치에서의 정보가 낡은 시스템(10)에 지시하여 재기입 또는 무시되게 해야한다.
포함된 특별 시스템에 의존하여, 한쪽 또는 다른쪽이 발생할 수 있다.
포함된 특별 시스템에 의존하여, 주메모리 위치에 대한 재기입이 즉시 일어나거나 또는 시스템에서 시간 손실이 발생되지 않는 편리한 클럭 타임때까지 지연될 수 있다.
상기 시스템은 수행하기 위하여 실제, 주소 및 가상 오프셋 인덱스가 동시에 버스상에 위치되도록 하기 위하여 버스(34)에 약간의 와이어(예컨대, 5 또는 6개의 와이어)를 첨부시키는 것이 필요하다는 것이 당업자에게 이해될 것이다.
상기 여분이 5 또는 6개의 와이어는 가상 캐쉬내의 정확한 페이지 크기 위치를 지시하기에 충분한 수이다.
이것은 동일 실제 메모리를 어드레스한 복수의 가상 캐쉬에 의해 발생된 문제를 해결하기 위해서 하드웨어에서 상대적으로 조금 증가한다.
비록 본 발명은 특별한 장치 및 시스템을 참조로 하여 설명되었지만, 이 장치 및 시스템의 상세한 설명은 예시된 목적으로 사용되고 본 발명을 제한하는 것은 아니다.
따라서, 본 발명의 정신 및 범위를 벗어나지 않고 많은 변화 및 수정이 당업자에 의해 이루어질 수 있음을 고려하자.
그러므로 본 발명은 이하의 청구범위에 의해서만 해석되어야 한다.

Claims (6)

  1. 제1 및 제2프로세서, 각각 상기 프로세서와 연관된 직접 맵 가상 캐쉬 메모리, 주메모리, 가상 어드레스를 실제 어드레스로 변환하는 각각의 프로세서와 연관된 메모리 관리 수단, 주 메모리내의 동일 실제주소로부터 각 캐쉬내의 정보를 각 캐쉬내의 동일 오프셋에 상주시키도록 가상 인덱스를 포함한 가상 주소에 의해서 각 프로세서와 연관된 캐쉬를 어드레스 하는 수단, 어느 다른 가상 캐쉬가 동일 실제 메모리 위치로부터 정보를 포함하는지를 결정하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제1항에 있어서, 어느 다른 가상 캐쉬가 동일한 실제 메모리 위치로부터 정보를 포함하는지를 결정하는 수단이, 찾아낸 정보의 실제 주소 및 가상 인덱스를 각 캐쉬에 저장된 실제 주소 및 가상 인덱스와 비교하는 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제1항에 있어서, 가상 인덱스는 정보가 상주한 캐쉬의 특정한 페이지 크기 부분 및 페이지 크기 부분 내의 오프셋을 지시하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제1 및 제2프로세서, 하나의 이러한 프로세서에 각각 연관된 제1 및 제2가상 어드레스 가능한 직접 맵 캐쉬 메모리, 주 메모리, 시스템 버스, 주 메모리내의 동일한 실제 주소로 부터 각 캐쉬내의 정보가 각 캐쉬내의 동일한 오프셋에 상주하도록 상기 프로세서와 연관된 캐쉬를 제어하는 하나의 상기 프로세서에 각각 연관된 제1 및 제2메모리 관리 수단으로 구성되는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제4항에 있어서, 메모리 관리 수단은 실제 주소 및 어느 특정 정보의 가상 캐쉬내의 위치를 나타내는 가상 인덱스를 포함하는 신호를 발생하며, 어느 다른 가상 캐쉬가 동일한 실제 메모리위치로 부터 정보를 포함하는지를 결정하는 수단을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제5항에 있어서, 어느 다른 가상 캐쉬가 동일한 실제 메모리 위치로부터의 정보를 포함하는지를 결정하는 수단은, 신호의 실제 주소 부분을 연관된 가상 캐쉬내의 정보의 실제 주소와 비교하는 스누피 태그 수단, 및 어느 특별한 정보의 가상 캐쉬내의 부분을 나타내는 신호의 가상 인덱스 부분을 연관된 가상 캐쉬내의 정보의 가상 인덱스와 비교하는 비교기 수단을 포함하는 것을 특징으로 하는 컴퓨터 시스템.
KR1019900017233A 1990-01-05 1990-10-26 가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치 KR930004430B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US46122590A 1990-01-05 1990-01-05
US461,225 1990-01-05

Publications (2)

Publication Number Publication Date
KR910014814A KR910014814A (ko) 1991-08-31
KR930004430B1 true KR930004430B1 (ko) 1993-05-27

Family

ID=23831689

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900017233A KR930004430B1 (ko) 1990-01-05 1990-10-26 가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치

Country Status (6)

Country Link
US (1) US5361340A (ko)
JP (1) JP3493409B2 (ko)
KR (1) KR930004430B1 (ko)
CA (1) CA2026224C (ko)
GB (1) GB2239724B (ko)
HK (1) HK53994A (ko)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06318174A (ja) * 1992-04-29 1994-11-15 Sun Microsyst Inc キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
JPH06290076A (ja) * 1993-04-05 1994-10-18 Nec Ic Microcomput Syst Ltd デバッグ装置
JPH09506988A (ja) * 1993-09-30 1997-07-08 アップル コンピュータ,インコーポレイテッド コンピュータの仮想メモリにおける補助記憶の分散制御システム
US5813046A (en) * 1993-11-09 1998-09-22 GMD--Forschungszentrum Informationstechnik GmbH Virtually indexable cache memory supporting synonyms
US5584007A (en) * 1994-02-09 1996-12-10 Ballard Synergy Corporation Apparatus and method for discriminating among data to be stored in cache
US5588129A (en) * 1994-02-09 1996-12-24 Ballard; Clinton L. Cache for optical storage device and method for implementing same
SE515718C2 (sv) * 1994-10-17 2001-10-01 Ericsson Telefon Ab L M System och förfarande för behandling av minnesdata samt kommunikationssystem
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5787476A (en) 1995-05-05 1998-07-28 Silicon Graphics, Inc. System and method for maintaining coherency of virtual-to-physical memory translations in a multiprocessor computer
JPH0926945A (ja) * 1995-07-10 1997-01-28 Toshiba Corp 情報処理装置
US5809537A (en) * 1995-12-08 1998-09-15 International Business Machines Corp. Method and system for simultaneous processing of snoop and cache operations
US5787445A (en) * 1996-03-07 1998-07-28 Norris Communications Corporation Operating system including improved file management for use in devices utilizing flash memory as main memory
US6041396A (en) * 1996-03-14 2000-03-21 Advanced Micro Devices, Inc. Segment descriptor cache addressed by part of the physical address of the desired descriptor
US5897664A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessor system having mapping table in each node to map global physical addresses to local physical addresses of page copies
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US5991819A (en) * 1996-12-03 1999-11-23 Intel Corporation Dual-ported memory controller which maintains cache coherency using a memory line status table
US6282625B1 (en) 1997-06-25 2001-08-28 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6249853B1 (en) 1997-06-25 2001-06-19 Micron Electronics, Inc. GART and PTES defined by configuration registers
US6069638A (en) * 1997-06-25 2000-05-30 Micron Electronics, Inc. System for accelerated graphics port address remapping interface to main memory
WO1999008191A1 (en) * 1997-08-11 1999-02-18 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
CN100392618C (zh) * 1997-08-11 2008-06-04 全斯美达有限公司 保护计算机内存储器被写入的***、方法和设备
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US6148387A (en) 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US6157398A (en) * 1997-12-30 2000-12-05 Micron Technology, Inc. Method of implementing an accelerated graphics port for a multiple memory controller computer system
US6252612B1 (en) 1997-12-30 2001-06-26 Micron Electronics, Inc. Accelerated graphics port for multiple memory controller computer system
US7071946B2 (en) * 1997-12-30 2006-07-04 Micron Technology, Inc. Accelerated graphics port for a multiple memory controller computer system
KR19990070788A (ko) * 1998-02-24 1999-09-15 윤종용 가상캐쉬 메모리의 어라이징 방지방법
US6275872B1 (en) * 1998-10-20 2001-08-14 Bellsouth Intellectual Property Corporation Method for performing migration of uninitialized entries from a storage to a repository within an intelligent peripheral in an advanced intelligent network
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US6763452B1 (en) 1999-01-28 2004-07-13 Ati International Srl Modifying program execution based on profiling
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US8065504B2 (en) 1999-01-28 2011-11-22 Ati International Srl Using on-chip and off-chip look-up tables indexed by instruction address to control instruction execution in a processor
US7111290B1 (en) * 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7013456B1 (en) 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US6779107B1 (en) 1999-05-28 2004-08-17 Ati International Srl Computer execution by opportunistic adaptation
US6549959B1 (en) * 1999-08-30 2003-04-15 Ati International Srl Detecting modification to computer memory by a DMA device
US6469705B1 (en) * 1999-09-21 2002-10-22 Autodesk Canada Inc. Cache addressing
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US7502901B2 (en) * 2003-03-26 2009-03-10 Panasonic Corporation Memory replacement mechanism in semiconductor device
JP4783229B2 (ja) * 2006-07-19 2011-09-28 パナソニック株式会社 キャッシュメモリシステム
JP4821887B2 (ja) * 2009-06-08 2011-11-24 日本電気株式会社 コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
KR101355105B1 (ko) * 2012-01-03 2014-01-23 서울대학교산학협력단 캐시 일관성 보장을 위한 공유 가상 메모리 관리 장치
US9678872B2 (en) * 2015-01-16 2017-06-13 Oracle International Corporation Memory paging for processors using physical addresses
US11550455B2 (en) * 2016-06-07 2023-01-10 Palo Alto Research Center Incorporated Localized visual graph filters for complex graph queries
US10747679B1 (en) * 2017-12-11 2020-08-18 Amazon Technologies, Inc. Indexing a memory region

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB232526A (en) * 1924-09-22 1925-04-23 Progression Sa Improvements relating to change speed gearing
US4136385A (en) * 1977-03-24 1979-01-23 International Business Machines Corporation Synonym control means for multiple virtual storage systems
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page
US4885680A (en) * 1986-07-25 1989-12-05 International Business Machines Corporation Method and apparatus for efficiently handling temporarily cacheable data
US5091846A (en) * 1986-10-03 1992-02-25 Intergraph Corporation Cache providing caching/non-caching write-through and copyback modes for virtual addresses and including bus snooping to maintain coherency
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
GB8814076D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data processing system
US5097409A (en) * 1988-06-30 1992-03-17 Wang Laboratories, Inc. Multi-processor system with cache memories
US4939641A (en) * 1988-06-30 1990-07-03 Wang Laboratories, Inc. Multi-processor system with cache memories
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US5148533A (en) * 1989-01-05 1992-09-15 Bull Hn Information Systems Inc. Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units
US5222224A (en) * 1989-02-03 1993-06-22 Digital Equipment Corporation Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system

Also Published As

Publication number Publication date
CA2026224C (en) 1995-10-10
US5361340A (en) 1994-11-01
KR910014814A (ko) 1991-08-31
GB9018686D0 (en) 1990-10-10
HK53994A (en) 1994-06-03
CA2026224A1 (en) 1991-07-06
JP3493409B2 (ja) 2004-02-03
GB2239724A (en) 1991-07-10
GB2239724B (en) 1993-11-24
JPH03220644A (ja) 1991-09-27

Similar Documents

Publication Publication Date Title
KR930004430B1 (ko) 가상 캐쉬를 이용하는 다중 처리컴퓨터 시스템의 일치성 유지장치
US4885680A (en) Method and apparatus for efficiently handling temporarily cacheable data
KR920005280B1 (ko) 고속 캐쉬 시스템
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US3761881A (en) Translation storage scheme for virtual memory system
US6490671B1 (en) System for efficiently maintaining translation lockaside buffer consistency in a multi-threaded, multi-processor virtual memory system
US5230045A (en) Multiple address space system including address translator for receiving virtual addresses from bus and providing real addresses on the bus
US5694567A (en) Direct-mapped cache with cache locking allowing expanded contiguous memory storage by swapping one or more tag bits with one or more index bits
EP0817059A1 (en) Auxiliary translation lookaside buffer for assisting in accessing data in remote address spaces
US5088026A (en) Method for managing a data cache using virtual external storage addresses as arguments
EP0062165A2 (en) Multiprocessors including private and shared caches
US20020099913A1 (en) Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy
US5684976A (en) Method and system for reduced address tags storage within a directory having a tree-like data structure
JPH0628262A (ja) ルックアサイドバッファおよび仮想から物理的へアドレスを高速に翻訳する方法
US5479630A (en) Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
JPH08272693A (ja) 仮想アドレスについてのキャッシュ可能性属性ビットを備えた変換テーブル・エントリ及びそのビットを用いた仮想アドレスの参照方法並びにその仮想アドレスの参照装置
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
CN115617709A (zh) 缓存管理方法及装置、缓存装置、电子装置和介质
JP3295436B2 (ja) マイクロプロセッサキャッシュの一貫性
JPH0551937B2 (ko)
JP3116215B2 (ja) 二重ディレクトリー仮想キャッシュの制御方法
JPH0727492B2 (ja) 緩衝記憶装置
JPS63240653A (ja) 記憶装置管理ユニットと仮想一実アドレス間の翻訳方法
JPH0383150A (ja) アドレス変換機構付キャッシュ装置の制御方式
JPS6398749A (ja) デ−タ処理装置

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee