KR0182344B1 - 스플릿 레벨의 데이타 개시 시스템의 동기성을 위한 시스템과 그 방법 - Google Patents
스플릿 레벨의 데이타 개시 시스템의 동기성을 위한 시스템과 그 방법 Download PDFInfo
- Publication number
- KR0182344B1 KR0182344B1 KR1019950703429A KR19950703429A KR0182344B1 KR 0182344 B1 KR0182344 B1 KR 0182344B1 KR 1019950703429 A KR1019950703429 A KR 1019950703429A KR 19950703429 A KR19950703429 A KR 19950703429A KR 0182344 B1 KR0182344 B1 KR 0182344B1
- Authority
- KR
- South Korea
- Prior art keywords
- cache
- level
- instruction
- level cache
- pipeline
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
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)
Abstract
제어시스템은 캐시 동기성에 관한 문제가 발생하지 않도록 캐시메모리 접근명령의 실행을 제어한다.
컴퓨터 시스템은 적어도 하나의 캐시를 갖는 복수의 처리장치(102)를 포함한다. 멀티프로세서캐시의 동기성은 컴퓨터시스템에 있어서 유지된다. 처리장치중 적어도 하나가 제2레벨의 캐시(112)에 연결되는 제1레벨의 캐시(108)로 되는 스플릿레벨의 캐시배열을 포함하고, 정수기억 명령이 데이타를 제1레벨 캐시와 제2레벨 캐시의 양쪽에 기억하는 것을 가능하게 한다. 제1레벨 캐시는 바이트 기입이 가능하고, 제2레벨 캐시는 워드기입이 가능하다. 정수기억명령의 실행중에 하나, 그 이상의 바이트가 제1레벨캐시로부터 판독되고, 워드길이 데이타가 제2레벨캐시에 기입되도록 FA명령의 기입데이타에 따라서 제2레벨캐시에 기입된다.
Description
[발명의 명칭]
스플릿 레벨의 데이타 캐시 시스템의 동기성을 위한 시스템과 그 방법
[발명의 상세한 설명]
[기술분야]
본 발명은 스플릿레벨의 캐시장치를 포함하는 컴퓨터 시스템에 있어서의 데이타캐시의 동기성에 관한 것이다.
[배경기술]
현대의 컴퓨터 시스템은 크기와 속도가 다른 각종 기억장치로 된 기억계층을 포함하고 있다. 어느 기억장치에는 예를들어 소용량이면서 고속인 캐시메모리나 대용량이긴 하지만 저속인 주기억장치가 있다.
데이타는 캐시메모리나 또는 주기억장치 중에서 발견된다. 또,(중앙처리장치나 입출력장치등의)복수의 장치가 캐시메모리와 주기억장치 중에 포함되는 데이타에 접근하여 갱신한다. 이와같이 어느것도 데이타가 캐시메모리 및 /또는 주기억장치에 있어서 일치되지 않거나 또는 낡은 것이 되어버릴지도 모른다.
이것은 캐시메모리의 동기성(coherency) 문제이다. 캐시의 동기성 문제는 특히 복수의 프로세서가 각각 하나 그 이상의 캐시를 포함하고, 모든 캐시 사이에서 동기성이 요구되는 멀티프로세서·컴퓨터 시스템에 있어서 증대한다.
캐시의 동기성을 유지하는 시스템및 그 방법은 공지로서 John L. Hennessy and David A. Patterson의 Computer Architecture-A Quantitative Approach(컴퓨터 아키텍쳐 : 정량적 어프로치)(Morgan Kaufmann Publishers, Inc. San Mateo, California, U.S.A., 1990년)등과 같이 일반적으로 이용할 수 있는 문헌에 기재되어 있고 참조를 위해 인용한다. 이들 종래의 시스템 및 방법은 거의 컴퓨터시스템에 존재하는 캐시의 동기성 문제를 해소하는데는 충분하다.
그러나 새로운 컴퓨터 아키텍쳐는 신형 캐시의 동기성 문제를 발생시키는 일이 있다. 이들 캐시의 동기성 문제는 검출하는 것은 물론, 그 해석 및 해결이 곤란했다. 종래의 캐시의 동기성 기술은 이들의 신형 캐시의 동기성 문제를 해소하기에는 적절하지 않은 점도 있을 것이다.
이와같이 스플릿 레벨의 캐시배열을 갖는 컴퓨터 시스템에 존재하는 캐시의 동기성에 관한 문제를 해결하기 위한 시스템 및 방법이 요구되고 있다.
그래서 본 발명의 목적은 각각 적어도 하나의 캐시를 갖는 복수의 처리장치로 된 컴퓨터 시스템에 있어서, 캐시 메모리 접근명령의 실행을 제어하기 위한 제어시스템 및 방법을 제공하는데 있다.
[발명의 개시]
본 발명에 의하면 멀티칩 프로세서 캐시의 동기성이 컴퓨터 시스템 중에서 유지된다. 컴퓨터 시스템의 적어도 하나의 처리장치가 제2레벨의 캐시에 연결되는 제1레벨의 캐시로 되는 스플릿 레벨의 캐시 배열을 포함하는 처리장치이고, 복수기억명령이 데이타를 제1레벨의 캐시와 제2레벨의 캐시에 기억하는 것을 가능하게 한다. 제1레벨의 캐시는 바이트 기입이 가능하고, 제2레벨의 캐시는 워드기입이 가능하다.
본 발명의 제어시스템은 제2레벨의 캐시의 파이프라인을 감시하여, 포스드어토믹(FA)(forced atomic)명령이 제2레벨의 캐시파이프라인인지 여부를 판별한다. FA명령은 제1레벨의 캐시의 기억할당을 요구하는 정수기억명령이고, 이들은 워드의 정수배 이외의 길이 데이타가 제1레벨의 캐시에 기억되는 것을 가능하게 한다. FA명령 실행 중에 하나, 그 이상의 바이트가 제1레벨의 캐시로부터 판독되고, 워드길이 데이타가 제2레벨의 캐시에 기입되도록 FA명령의 기입데이타가 따라서 제2레벨의 캐시에 기입된다.
FA명령이 제2레벨의 캐시파이프라인에 있는 것으로 판별된 경우에 제어시스템은 FA명령이 제2레벨의 캐시파이프라인이 나올때까지 제2레벨의 캐시에 대한 개입을 지연시킨다. 이것은 결과적으로 캐시메모리 접근명령의 조작에 의해서 기입되는 데이타가 FA명령의 조작에 의해서 파괴되지 않도록 이와같은 개입의 발생으로 책임이 있는 캐시메모리 접근명령의 실행을 지연시킨다.
또, 제어시스템은 제2레벨의 캐시를 감시하고, 파서블미스(PM)명령이 제2레벨의 캐시파이프라인에 있는지 여부를 판별한다. PM명령은 제2레벨의 캐시중에 기억할당을 요구하나 제1레벨의 캐시에 기억할당을 요구하지 않는 캐시메모리 접근명령이다.
PM명령이 제2레벨의 캐시 파이프라인 중에 있는 것으로 판별된 경우에 제어시스템은 FA명령이 제2레벨의 캐시 파이프라인으로 들어가지 않도록 한다. 이 방법에서 제2레벨의 캐시에 대한 개입의 실행이 방지되지 않으나 컴퓨터 시스템의 처리장치의 데드록이 방지되도록 개입이 제2레벨의 캐시를 위해서 처리되는 사이에 제2레벨의 캐시의 명령이 보류될 가능성이 있다.
또, 제어시스템은 정수기억 조작의 기입데이타가 포함되는 정렬된 바이트의 정수배 워드가 제1레벨의 캐시에만 독점되어 있는지 여부를 판별한다. 정렬된 워드가 제1레벨의 캐시에만 독점적이 아닌 것으로 판단한 경우에 제어시스템은 정수기억조작이 제2레벨의 캐시 파이프라인으로 들어가지 않도록 하고, 정렬된 워드가 제1레벨이 캐시에 독점되도록 캐시미스·필 조작을 개시한다.
[도면의 간단한 설명]
제1도는 본 발명의 컴퓨터시스템의 블록선도이다.
제2도는 정수기억 조작이 스플릿레벨의 캐시배열을 갖는 컴퓨터 시스템에 있어서 어떻게 실행되는가를 나타낸 도면이다.
제3도는 스플릿 레벨의 캐시배열을 갖는 컴퓨터 시스템의 구성 및 조작상의 특징 때문에 데이타가 상실되는 시나리오를 묘사한 도면이다.
제4도는 본 발명의 양호한 실시예에 의한 제어 시스템의 조작을 묘사한 플로우차트이다.
제5도는 본 발명의 양호한 실시예에 의한 제어시스템의 조작을 묘사한 플로우차트이다.
[발명을 실시하기 위한 최량의 형태]
이하 본 발명의 바람직한 실시예를 첨부한 도면을 참조하면서 상세히 설명하겠다. 또 도면에 있어서 동일한 참조부호는 동일하거나 또는 기능적으로 유사한 엘리먼트를 나타낸다.
[1.하드웨어를 둘러싼 환경]
제1도는 본 발명이 양호하게 동작할 수 있는 컴퓨터 시스템(101)의 부분적 블록도이다. 또, 당업자라면 인식할 수 있도록 컴퓨터 시스템(101)은 제1도에 나타낸 것 외의 구성부재를 포함한다.
컴퓨터 시스템(101)은 버스(126)에 접속되는 처리장치(102)를 갖는다. 처리장치(102)는 RISC(Reduced Instruction Set Computer)(축소명령 세트컴퓨터)프로세서인 것이 바람직하나 이것 대신에 다른 타입의 컴퓨터 아키텍쳐를 갖는 프로세서여도 좋다. RISC컴퓨터 프로세서에 대해서 참조하기 위해 인용한 이하의 문헌에 자세히 기재되어 있다. 즉 G.Kane and J.Heinrich,MIPS RISC Architecture(Prentice Hall, Englewood Cliffs, New Jersey, U.S.A., 1992); Mike Johnson, Superscalar Microprocessor Design(Prentice Hall, Englewood Cliffs, New Jersey, U.S.A., 1991); 및 Stephen B. Furber, VLSI RISC Architecture and Organization(Marcel Dekker, Inc., New York, New York, U.S.A., 1989)에 기재되어 있다.
처리장치(102)는 정수조작을 실행하기 위한 정수기능단위(IU:명쾌하게는 제1도에 도시되어 있지 않다), 및 부동소수점 조작을 실행하기 위한 부동소수점 기능단위(FPU:명쾌하게는 제1도에 도시되어 있지 않다)등의 복수의 기능단위(FU:functional unit)(104)를 포함한다.
처리장치(102)는 데이타 캐시(108)와 같은 제1레벨의 캐시와 글로벌 캐시(112)와 같은 제2레벨의 캐시로 되는 스플릿 레벨의 캐시배열을 포함한다. 일반적으로 데이타캐시(108)는 글로벌 캐시(112)보다 작다(데이타 캐시(108)의 바람직한 크기는 16킬로바이트이고, 글로벌 캐시(112)의 바람직한 크기는 16메가바이트이다). 데이타 캐시(108)에는 글로벌캐시(112)에 기억되는 데이타의 서브세트가 들어가 있다. 통상 데이타 캐시(108)는 글로벌 캐시(112)보다 조작이 고속이다.
데이타 캐시(108)는 처리장치(102)에 있어서 IU와 동일한 컴퓨터칩상에 형성되는 것이 바람직하다(따라서 데이타 캐시(108)는 「온칩캐시」라고도 함). 글로벌캐시(112)는 처리장치(102)에 있어서 기능단위(104)의 외부에 있는 것이 바람직하다(따라서 글로벌 캐시(112)는 「오프칩 캐시」라고도 함).
정수데이타는 데이타캐시(108)중에 있다. 부동소수점 데이타는 글로벌 캐시(112)중에 있다. 또, 글로벌 캐시(112)는 정수 데이타용의 제2레벨의 기억단위에도 있다.
정수기억조작은 정수 데이타가 데이타 캐시(108)와 글로벌캐시(112)의 양쪽에 기억되도록 한다. 부동소수점 기억조작은 데이타 캐시(108)를 우회하여 부동소수점 데이타가 글로벌 캐시(112)에 기억되도록 한다.
바람직하기로는 데이타 캐시(108)는 비워드기입을 지지한다. 데이타 캐시(108)는 다른 비워드 기입길이의 기입을 지지해도 좋으나 바람직하기로는 데이타 캐시(108)가 바이트기입을 지지하는 것이 좋다. 즉 데이타는 1바이트 패킷에서 데이타 캐시(108)로 기입할 수 있다. 환원하면 데이타 캐시(108)가 바이트기입이 가능한 것이 좋다. 글로벌 캐시(112)는 바이트 기입을 지지하지 않는다. 그 대신에 글로벌 캐시(112)가 워드기입을 지지하고, 이 경우에는 워드가 4바이트인 것이 바람직하다. 환원하면 글로벌 캐시(112)는 워드기입이 가능하다.
바이트 기입이 아니고 워드기입을 지지함으로서 보다 작은 RAM(랜덤억세스메모리)를 사용하여 글로벌 캐시(112)를 실행하는 것이 가능하고, 이것에 의해서 처리장치(102)의 비용을 삭감한다. 워드 기입을 지지하는 것보다 바이트 기입을 지지하는 경우에 패리티의 정도가 커지되므로 사실 그대로이다. 예를들어 워드가 32비트이고, 글로벌 캐시(112)가 4비트 기입폭을 갖는 RAM을 사용하여 실행되는 경우에 바이트 기입이 지지되는 때에 각 2데이타 RAM 마다에 1패리티의 RAM이 필요하게 된다. 이것에 대해서 워드기입이 지지되는 때에는 각 8데이타 RAM마다에 1패리티의 RAM이 필요하게 된다.
상술한 바와같이 정수기억 조작에 의해서 정수데이타가 데이타 캐시(108)와 글로벌 캐시(112)의 양쪽에 기억되도록 한다. 또 상술한 바와같이 데이타 캐시(108)가 바이트 기입을 지지하고, 글로벌 캐시(12)는 워드기입을 지지한다.
제2도는 글로벌 캐시(112)에 대해서 1바이트의 정수기억 조작이 실행되는 모양을 도시하고 있다. 제2도에 있어서, 데이타 캐시(108)는 복수의 열로 된 것으로서 개념적으로 묘사되어 있고, 각열이 된 정열된 4바이트의 데이타 워드를 포함하고 있다.
1바이트의 정수기억 조작의 조작중에 1바이트(이들은 정수기억 조작의 「기입데이타」를 나타냄)가 데이타 캐시(108)중 하나의 열에 기입된다. 또, 이 열외의 3바이트가 데이타 캐시(108)로부터 판독되고, 이들 3바이트가 정수기억 조작의 바이트(즉, 기입데이타)와 적절하게 결합되어 데이타워드를 형성한다. 이 워드는 그 후 글로벌 캐시(112)에 기억된다.
데이타 캐시(108) 및 글로벌캐시(112)로의 데이타 기억은 파이프라인화 된다. 데이타 캐시(108)및 글로벌캐시(112)에 관련된 데이타 기억 파이프라인(데이타 캐시 파이프라인은)제1도에 있어서 106으로 나타내고, 글로벌 캐시파이프라인은 제1도에 있어서 110으로 나타낸다)은 글로벌 캐시(112)에 대한 부동소수점 미스가 실현되기 전에 데이타 캐시(108)에 대한 정수기억이 실행되도록 되어 있다. 이와같이 데이타 캐시(108)에 대한 기억을 실행한후, 또 글로벌캐시(112)에 대한 (부동소수점 미스의 실현을 포함함)부동소수점의 기억을 완료하기전에 정수기억명력을 「취소」할 수는 없다.
스플릿레벨의 캐시 배열은 또『스플릿레벨캐시』라는 제목으로 미국특허출원에서 거론되어 있다.
또, 제1도에 있어서, 컴퓨터시스템(101)은 처리장치(114)와 같은 버스(126)에 접속되는 부가적인 처리장치를 포함한다. 이들 버스(126)에 접속되는 부가적인 처리장치(처리장치114등)는 스플릿 레벨의 캐시 배열을 갖고 있어도 좋고, 또는 다른 타입의 캐시 배열(이와같은 캐시 배열은 정수 데이타와 부동소수점 데이타의 양쪽을 기억할수 있어야만 한다)이어도 좋다. 설명을 위해서 처리장치(102)를 제1처리장치(102)라 하고, 처리장치(114)를 제2처리장치(114)라고 한다.
컴퓨터 시스템(101)은 멀티 프로세서 데이타의 동기성을 유지한다. 즉, 버스(126)에 접속되는 처리장치 사이에 분배되고, 기억되는 정수및 부동소수점의 데이타의 동기성은 컴퓨터시스템(101)에 의해서 유지된다. 컴퓨터시스템(101)은 이 데이타 동기성을 유지하기 위해서 캐시 동기성 매카니즘(도시하지 않음)을 포함한다.
캐시 동기성을 위한 시스템 및 방법은 공지이고, 상기에 있어서 인용한 Computer Architecture A Quantitative Approach(컴퓨터 아키텍쳐, 정량적 어프로치)등의 일반적으로 이용할 수 있는 많은 문헌에 기재되어 있다. 이와 같이 공지의 캐시 동기성 기술은 컴퓨터 시스템(101)의 캐시 동기서 매카니즘의 많은 국면을 실행하기 위해서 사용할 수 있다.
본 발명자는 컴퓨터 시스템(101)의 특별한 구조상 및 조작상 특성, 특히 상술한 스플릿 레벨 캐시 배열에 기인한다. 컴퓨터 시스템(101)의 캐시 동기성에 관련되는 문제를 특정했다. 또 발명자는 이들 캐시 동기성에 관련되는 문제에 대한 해결책을 발전시켰다. 이들 캐시 동기성에 관련되는 문제는 지금까지 특정된 것이 아니고, 따라서 지금까지 해결되지도 못하였다.
본 발명자에 의해서 특정된 캐시 동기성에 관련되는 문제및 본 발명자가 발전시킨 이들 문제에 대한 해결법에 대해서 이하에 자세하게 설명하겠다.
[2.0 데이타로스의 문제]
컴퓨터 시스템(101)의 특별한 구성상 및 조작상의 특징의 결과로서 하나의 프로세서에 의해서 캐시에 기억된 데이타가 다른 프로세서의 조작에 의해서 파괴될 가능성이 있다. 특히 이 데이타로스의 문제는 컴퓨터 시스템(101)의 다음의 특징에 의한 것이다. 즉,(1)스플릿레벨의 캐시배열, (2)데이타 캐시(108)와 글로벌캐시(112)의 기입정도가 다르고(즉, 데이타캐시(108)가 바이트기입을 지지하는 방법, 글로벌캐시(112)는 기입을 지지한다),(3) 컴퓨터시스템(101)의 멀티 프로세서의 동기성요건, 및(4)데이타캐시(108)에 대한 정수기억이 글로벌 캐시(112)에 대한 부동점미스의 실현전에 실행된다는 사실.
제3도는 이 데이타로스의 문제가 발생하는 시나리오를 묘사하고 있고, 제1처리장치(102)의 글로벌캐시(112)의 선택된 내용과 버스(126)에 접속되는(제1도에 도시하지 않음)별도의 처리장치의 캐시가 4개의 다른 시간(t0,t1,t2,t3)(이들 시간은 반드시 서로 등간격이 아니어도 좋다)으로 나타내고 있다. 이러한 별도의 처리장치의 캐시는 바이트기입을 지지하는 것으로 한다.
시간(t0)에 있어서, 제1처리장치(102)에 있는 글로벌 캐시(112)는 바이트값(A,B,C,D)을 갖는 정렬된 4바이트워드(302)를 기억한다. 이 워드의 독점적카피(즉, 컴퓨터시스템(101)에 있어서의 유일하게 유효한 카피)가 제1처리장치(102)의 글로벌 캐시(112)에 들어가 있다고 판정한다. 따라서 이 워드(302)는 제3도에 나타낸 다른 처리장치의 캐시에 있어서는 이용할 수 없다.
시간 t0와 t1사이의 임의시간에 제1처리장치(102)의 기능단위(104)가 제1처리장치(102)의 데이타캐시(108)및 글로벌 캐시(112)에 기억된 데이타워드(302)에 대해서, 바이트 Y를 기입하도록 정수기억명령을 발한다. 이 정수기억명령의 처리는 제1프로세서(102)의 데이터 캐시(108)로부터 바이트(A,C,D)를 판독시켜 정수기억명령에 관련하여 바이트 Y와 적절하게 결합시킨다.
또, 시간 t0와 t1사이에 다른 처리장치내의 기능단위가 바이트 X를 데이타 워드(302)에 기입하도록 기억명령을 발한다. 그러나 데이타워드(302)는 다른 처리장치의 캐시에 있어서, 유효하지 않고 독점되어 있지 않으므로 캐시 미스 메시지가 다른 처리장치에 의해서 발생된다. 즉, 컴퓨터시스템(101)에 있어서는 데이타가 독점적인 경우에만 캐시의 데이타에 기입할 수 있다.
캐시 미스 메시지의 결과로서 데이타 워드(302)의 독점적카피가 제1처리장치(102)로부터 다른 처리장치로 전달된다. 그래서 다른 처리장치의 기억명령이 완료하고 바이트 X가 데이타워드(302)의 바이트중 하나에 기억된다. 이들의 동작은 제3도에 나타낸 바와같이 시간(t1)까지 완료한다.
시간 t1과 t2사이의 임의시간에 결합된 바이트(A,Y,C,D)가 제1처리장치(102)의 데이타 캐시(108)에 기입될 준비가 갖추어진다. 그러나 데이타워드(302)는 제1처리장치(102)의 데이타 캐시(108)에 있어서 유효하지 않고, 독점되지 않으므로 캐시 미스 메시지가 제1처리장치(102)에 의해서 발생된다. 캐시 미스 메시지의 결과, 데이타워드(302)의 독점적 카피가 다른 처리장치로부터 제1처리장치(102)로 전달된다. 제3도에 나타낸 바와같이 이들 동작은 시간(t2)까지 완료한다.
시간 t2와 t3사이의 임의 시간에 제1처리 장치(102)에 있어서, 팬딩되어 있는 정수기억 명령이 완료하고 바이트(A,Y,C,D)가 데이타워드(302)에 기억된다. 다른 처리장치에 의해서 데이타워드(302)에 기입된 바이트 X는 제1처리장치(102)의 조작에 의해서 파괴된다는 점에 주의 해야 한다. 이와같이 컴퓨터 시스템(101)의 특별한 구조상 및 조작상의 특징의 결과, 하나의 프로세서에 의해서 캐시에 기억된 데이타는 별도의 프로세서의 조작에 의해서 파괴된다.
컴퓨터시스템(101)의 상세 또는 포괄적인 분석결과, 본 발명자에 의해서 데이타로스의 문제가 특정되고 이해된다. 데이타로스의 문제는 특정하는 것이 곤란하고, 더구나 조합되어 문제를 만들어내는(상술한)요소의 다중성 및 복잡성을 고려하면 이해하여 해결하는 더욱더 곤란하다.
[3.0 본발명에 의한 데이타 로스 문제해결]
데이타로스의 문제를 해결하기 위해서 본 발명자는 개발한 해결법에 대해서 이하에 설명하겠다.
데이타 로스의 문제는 데이타 로스 문제를 야기할지도 모르는 캐시 메모리 접근명령이 최소 단위적으로(atomically)실행되는 것을 확실하게 함으로서 해결된다. 특히 데이타 로스문제를 야기할지도 모르는 캐시 메모리 접근명령이 데이타 캐시(108)내의 (3바이트의)판독 개시로 부터 글로벌캐시(112)내의 (4바이트의)판독완료에 이를때까지 최소 단위적으로 실행된다. 환원하면 데이타 로스의 문제를 야기할지도 모르는 캐시 메모리 접근명령이 글로벌캐시(112)의 파이프라인(110)으로 들어가는 점에서 명령이 글로벌캐시(112)의 파이프라인을 나가는 점까지 최소 단위적으로 실행된다. 이러한 명령의 최소단위적 실행중은 개입이 허용되지 않는다.
당업자에 공지된 바와같이 개입은 프로세서 X때문에 실행되고, 프로세서 Y의 캐시로부터 데이타를 판독하는 것을 포함하고, 이러한 데이타는 프로세서 X의 캐시를 갱신하기 위해서 사용된다. 개입은 컴퓨터시스템의 캐시사이의 동기성을 유지하기 위해서 필요하다.
예를들어 제3도에 나타낸 시나리오를 생각해 보도록 하자. 상술한 바와 같이, 시간(t0)에 있어서, 제1처리장치(102)내의 글로벌캐시(112)는 바이트값(A,B,C,D)을 갖는 정렬된 4바이트(302)의 독점적카피(exclusive copy)를 기억한다. 제1처리장치(102)에 있어서 기능단위(104)중 하나에 의해서 시간 t0와 t1사이에 발생되는 정수기억 명령은 데이타캐시(108)로부터 바이트(A,B,C,D)의 메모리판독을 개시시킨다.
본 발명에 의하면 이 시점에서, 정수기억명령은 글로벌캐시(112)에 대한 개입이 저지되는 최소단위적 실행부분으로 들어가 있다. 따라서 다른 처리장치는 제1처리장치(102)에 있어서 펜딩되어 있는 정수기억명령이 완료할때까지(즉, 바이트(A,Y,C,D)가 글로벌캐시(112)에 기억될때까지)데이타워드(302)를 수정할 기회를 갖지 못한다.
이 제1처리장치(102)에 있어서, 펜딩되어 있는 정수기억명령이 완료한 후에, 데이타워드(302)의 독점적 카피가 다른 처리장치로 전달된다. 즉 펜딩되어 있는 기억명령이 완료하고 글로벌캐시(112)의 파이프라인을 나온 후에 글로벌캐시(112)에 대한 개입이 허여된다. 그후에 데이타워드(302)가 바이트(A,Y,X,D)를 포함하도록 바이트 X가 데이타워드(302)에 기입된다.
따라서 본 발명의 조작에 의해서 하나의 프로세서(즉 제3도의 예에 있어서 다른 프로세서)에 의해서 캐시에 기억된 데이타는 별도의 프로세서(즉 제3도의 예에 있어서 제1처리장치(102))의 조작에 의해서 파괴되지 않는다.
상술한 바와같이 본 발명은 데이타 로스의 문제를 야기할지도 모르는 캐시메모리 접근명령이 최소 단위적으로 실행되는 것을 확실하게 함으로써 데이타로스의 문제를 해결한다. 이들 명령은 상술한 바와같이 최소 단위적으로 실행되도록 강제되므로, 포스드어토믹(FA:forced atomic)명령이라 한다.
데이타로스 문제의 해결책의 일부로서 발명자는 FA 명령을 정수기억명령(즉, 정렬된 워드블록 이외의 것을 기억하는 데이타 캐시(108)와 글로벌캐시(112) 양쪽에 데이타를 기억하는 것을 요구하는 캐시메모리 접근명령)을 포함하는 것으로서 특정했다. 바람직한 태양으로는 글로벌캐시(112)의 데이타 기억폭은 4바이트이고 FA명령은 정렬된 4바이트의 블록 이외의 것을 기억하거나 또는 정렬된 4바이트의 배수이외의 것을 기억하는 정수기억 명령이다. 이러한 명령은 데이타 캐시(108)의 기억할당을 요구하고 데이타 캐시(108)는 바이트를 검색하기 위해서 억세스하여 4바이트의 기억을 글로벌 캐시(112)에 기입할 것을 요구한다.
데이타로스의 문제의 해결법에 대해서, 이하에 의해서 상세하게 기술하겠다.
[4.0데이타록의 문제]
상술한 바와같이 데이타로스의 문제는 FA명령을 특정하고, FA명령을 최소단위적으로 실행함으로서 해결된다. 그러나 하기에 기술한 바와같이 FA명령의 최소단위적 실행은 새로운 문제를 발생시키고, 이것은 컴퓨터 시스템(101)에 있어서의 처리장치의 데드록의 가능성을 포함하고 있다.
데드록의 문제에는 두가지 국면이 있고, 이들은 포텐셜미스(potential miss)명령에 의한 데드록과 포스드 어토믹 명령(forced atomic command)을 실행할 때에 데이타의 독점성에 대한 요구에 의한 데드록이다. 데드록의 문제중 이들 국면에 대해서 이하에 설명하겠다.
[4.1 포텐셜미스 명령에 의한 데드록]
데드록을 발생시키는 FA명령의 실행을 포함하는 시나리오에 대해서 제1도에 관련하여 설명하겠다.
시간(t0)에 있어서, 부동기입 명령이 제1처리장치(102)에 있어서, 개시된다라고 가정한다. 동일하게 부동기입 명령이 제1처리장치(114)에 있어서도 개신된다고 가정한다. 상술한 바와같이 부동기입 명령이 데이타캐시(108,120)을 우회하여 글로벌캐시(112,124)로 직접 진행한다.
시간(t1)에 있어서 펜딩되어 있는 부동기입 명령이 제1처리장치(102)에 있어서 완료하지 않고 FA정수기입 명령이 제1처리장치(102)에 있어서 개시되어 있다고 가정한다. 제1처리장치(102)의 FA정수기입 명령의 처리중에 데이타 캐시(108)의 판독조작이 개시되어 적절한 3바이트를 검색하고, 글로벌캐시(112)에 대해서 앞으로의 4바이트의 기입을 행한다.
이와같이 이들 3바이트를 포함하는(또, FA 정수기입 명령의 기입데이타를 포함)정렬된 4바이트워드에 관하여 글로벌캐시(112)의 개입이 저지된다.
또, 시간(t1)에 있어서, 제2처리장치(114)에 있어서 펜딩되어 있는 부동기입명령이 완료하고 있지 않고, FA정수기입명령이 제2처리장치(114)에 있어서, 개시되어 있다고 가정한다. 제2처리장치(114)의 FA정수기입 명령의 처리중에 데이타 캐시(120)의 기입조작이 개시되어 적절한 3바이트를 검색하고 글로벌캐시(124)에 대해서 앞으로의 4바이트의 기입을 행한다. 이와같이 이들 3바이트를 포함하는(또 FA정수기입 명령의 기입 데이타를 포함)정렬된 4바이트 워드에 관해서 글로벌캐시(124)에 있어서의 개입이 저지된다.
시간(t2)에 있어서, 제1처리장치(102)에 있어서 펜딩되어 있는 부동기입명령을 위해서 캐시 미스가 실현된다고 가정한다. 즉, 부동기입 명령에 의해서 수정될 데이타는 제1처리장치(102)의 글로벌캐시(112)에 있어서 유효하지 않고, 독점적이 아니다. 또 이 데이타는 제2처리장치(114)의 글로벌캐시(124)에 있어서 유효하고, 독점되어 있다고 가정한다. 이와같이 제1처리장치(102)에 있어서, 펜딩되어 있는 부동기입 명령을 완료하기 위해서 제2처리장치(114)의 글로벌캐시(124)의 개입이 요구된다. 그러나 이 개입은 제2처리장치(114)에 있어서의 펜딩중의 FA정수기입 명령의 최소단위적 실행을 위해서 저지되어 있다.
또, 시간(t2)에 있어서, 제2처리장치(114)에 있어서 펜딩되어 있는 부동기입 명령을 위해서 캐시미스가 실현되는 것으로 판정한다. 즉 부동기입 명령에 의해서 수정될 데이타는 제2처리장치(114)의 글로벌캐시(124)에 있어서 유효하지 않고 독점적이 아니다. 또 이 데이타는 제1처리장치(102)의 글로벌캐시(112)에 있어 유효하고 독점되어 있는 것으로 판정한다. 이와같이 제2처리장치(114)에 있어서 펜딩되어 있는 부동기입 명령을 완료하기 위해서, 제1처리장치(102)의 글로벌캐시(112)의 개입이 요구된다. 그러나 이 개입은 제1처리장치(102)의 펜딩중의 FA정수기입 명령이 최소단위적 실행을 위해서 저지되어 있다.
이와같이 제1처리장치(102)는 봉쇄되고, 제2처리장치(114)로부터의 데이타에 의존하여 제2처리장치(114)는 봉쇄되고, 제1처리장치(102)로부터의 데이타에 의존한다. 그러나 제1처리장치(102)로부터의 데이타에 의존한다. 그러나 제1처리장치(102)로부터의 데이타는 제1처리장치(102)의 봉쇄가 해제될 때까지는 이용할 수 없다. 동일하게 제2처리장치(114)로부터의 데이타는 제2처리장치(114)의 봉쇄가 해제될때까지는 이용할 수 없다. 따라서 제1처리장치(102)와 제2처리장치(114)의 사이에는 데드록 상태가 존재한다.
[4.2 본 발명에 의한 데드록의 문제(포텐셜미스명령)의 해결법]
이 데드록 문제를 해결하기 위해서 발명자들이 개발한 해결법에 대해서 설명하겠다.
발명자에 의해서 특정된 바와같이 이 데드록의 문제에 관해 관계가 있는 캐시메모리 접근명령에는 2개의 카테고리가 있다. 제1명령 카테고리는 데이타로스의 문제를 발생시킬지도 모르는 캐시메모리 접근명령을 포함한다. 이들 명령은 포스드어토믹(FA)명령이라 하고, 상기에 있어서 한정하여 설명했다.
제2명령 카테고리는 데이타 캐시(108,120)의 기억할당을 요구하지 않고(즉, 데이타 캐시(108,120)에 데이타를 기억시키지 않고), 직접 글로벌캐시(112,124)에 접근하는 캐시 메모리 접근명령을 포함한다. 이들은 데이타 캐시(108,120)에 기억할당을 요구하는 FA명령과는 다르다.
글로벌캐시(112,124)의 파이프라인에 있어서 FA명령이 글로벌캐시미스를 발생시킬 수는 없다(그러나 이하의 섹숀에 있어서의 이 문제에 관한 논의를 참조할 것). FA명령은 데이타 개시(108,120)에 있어서 기억할당을 요구하고, 또 데이타 캐시(108,120)가 각각 글로벌캐시(112,124)에 있어서 기억되는 데이타의 적절한 서브세트를 기억하므로 사실 그와같다.
대조적으로 제2명령카테고리의 명령은 데이타 캐시(108,120)에 기억할당을 요구하지 않으므로 글로벌캐시미스를 발생시킬 수 있다. 따라서 제2명령 카테고리의 명령은 포텐셜미스(PM)명령이라 한다.
실제로는 제1명령카테고리 또는 제2명령카테고리에 속하지 않는 캐시 메모리 접근명령을 포함하는 제3명령 카테고리가 있다. 제3명령카테고리의 명령은 제1명령카테고리의 명령 또는 제2명령카테고리의 명령과 동일한 그룹으로 할 수 있다. 이러한 그룹핑은 예를들어 성능을 높이기 위해서 행해진다. 이러한 그룹핑은 예를들어 성능을 높이기 위해서 행해진다. 제3명령카테고리의 명령은 데드록의 문제의 해결에는 관련이 없으므로 이 이상 설명하지 않는다.
일단 FA및 PM명령 카테고리를 특정하면 발명자는 데드록의 문제를 완전히 분석하여 데드록 문제를 해결하기 위한 수순을 발명할 수 있었다. 특히 발명자는 데드록의 문제가 포텐셜미스 명령후 포스드어토믹 명령이 계속되는 경우에만 잠재적으로 발생한다고 단정했다. 보다 상세하게 처리장치(102)에 관해서 설명하면 발명자는 데드록문제가 PM명령이 이미 글로벌캐시(112)의 파이프라인에 있는 경우에 FA명령이 이미 글로벌캐시(112)의 파이프라인에 있는 경우에 FA명령이 글로벌캐시(112)의 파이프라인에 들어가는 것이 허용된 경우에만 잠재적으로 발생한다고 단정했다.
상술한 시나리오에 있어서, 예를들어 시간(t0)에 있어서, 개시된 부동기입 명령이 PM명령을 나타낸다. 시간(t1)에서 개시된 정수기입명령이 FA명령을 나타낸다.
이와같이 본 발명에 의하면 데드록 문제는 PM명령이 글로벌캐시(112)의 파이프라인에 이미 존재하지 않는 경우에만 FA명령이 글로벌캐시(112)의 파이프라인으로 들어가는 것을 허용함으로서 회피할 수 있다. PM명령이 글로벌캐시(112)의 파이프라인에 이미 존재하는 경우에는 FA명령을 지연시킨다.
데드록의 문제(즉, 부분적으로 포텐셜미스명령에 의한)에 대한 해결법에 대해서 보다 상세하게 설명하겠다.
[4.3 포스드어토믹 명령을 실행할 때에 데이타의 독점성에 대한 요구에 기인하는 데드록]
상기에서는 포텐셜미스명령의 실행에 의한 데드록 문제에 대해서 설명했으나, 이하에는 포스드어토믹명령을 실행할 때에 데이타의 독점성을 요구하는 것이 기인하는 데드록의 문제에 대해서 설명하겠다. 이 데드록의 문제는 포텐셜미스 데드록의 문제와 유사하다.
상술한 바와같은 처리장치(102)에 관해서 설명하면 글로벌캐시(112)가 데이타의 독점적 카피를 기억하고 있는 경우에만(즉, 글로벌캐시(112)가 데이타의 유효한 카피를 기억하고 있는 경우에만), 글로벌캐시(112)가 데이타를 기입할 수 있다. 부동소수점 기입이 글로벌캐시(112)에 대해서 행해지고 문제의 데이타의 독점적 카피가 글로벌캐시(112)에 기억되지 않는 경우에 캐시미스·필작업(즉 개입)을 실행해야 한다.
컴퓨터시스템(101)에 있어서, 제1처리장치(102)에 있어서 행해지는 1바이트의 FA정수기입 조작이 데이타캐시(108)와 글로벌캐시(112)에 대한 기입을 실행시킨다. 본 발명에 의하면 데이타 캐시(108)에 대한 기입에 관련하여 문제의 데이타 바이트(즉, 정수기입 조작에 의해서 수정되는 데이타 캐시(108)의 바이트)는 데이타 캐시(108)에 있어서, 독점되는 캐시블록에 있을 것이 요구된다. 이렇게 되지 않으면 정수기입 조작의 처리를 진행시키는 것은 허용되지 않는다.
캐시블록폭은 본 발명의 범위 및 정신으로부터 일탈하지 않고 다른 값이어도 좋으나 캐시블록폭이 128바이트인 것이 바람직하다.
발명자는(문제의 데이타 바이트가 포함된다)정렬된 4바이트워드의 다른 3바이트와 함께 문제의 데이타 바이트가 데이타 캐시(108)에 있어서 독점되는 캐시블록중에 있는 경우에만 정수기입 조작이 글로벌캐시(112)의 파이프라인으로 들어가는 것이 허용된다고 단정했다. 이렇게 되지 않으면 데드록이 발생할지도 모른다.
이들 4바이트가 데이타캐시(108)에 있어서 독점되지 않는 경우에도 정수기입 조작이 글로벌캐시(112)의 파이프라인으로 들어가는 것이 허용되는 시나리오를 고려해 보도록 하자. 이 시나리오에서는 이들 4바이트가 또 글로벌캐시(112)에 있어서도 독점되지 않는다고 가정한다. 정수판독 조작이 글로벌캐시(112)의 파이프라인의 끝에 도달한 때 캐시미스·필조작(즉 개입)이 발생한다.
따라서 이 시나리오에서는 FA명령이 글로벌캐시(112)에 있어서 미스를 발생시키므로 포텐셜 미스명령의 성질을 포함한다. 그 결과로 FA명령은 글로벌캐시(112)에 대한 개입을 저지하고, 별도의 처리장치로부터의 독점성에 의존하는 것이 가능하므로 데드록의 가능성이 존재한다.
[4.4 본 발명에 의한 데드록의 문제(데이타독점성요건)에 대한 해결법]
본 발명에 의하면 이 데드록의 문제는 데이타 캐시(108)의 기억에 관해서 독점적 배치를 요구함으로서 해결된다. 특히 문제의 정렬된 4바이트워드가 포함되는 캐시블록이 데이타캐시(108)에 있어서, 독점되는 경우에만 FA 정수기입 조작이 데이타 캐시(108)에 있어서 실행된다. 이와같이 되지 않으면 캐시미스·필 조작이 발생한다. 이 캐시미스·필 조작이 발생되는 때에는 FA정수기입 명령이 글로벌캐시(112)에 대한 파이프라인중에는 없는 것과 그리고 이 캐시미스·필 조작이 최소단위적으로 행해지지 않는 것에 주목해야 한다. 이와같이 해서 데드록의 위험이 회피된다.
데드록의 문제(즉 독점성 요건에 기인한다)에 대한 이 해결법에 대해서 이하에 상세히 설명하겠다.
[5.0 해결법 및 해결법의 실행정리]
상술한 바와같이 컴퓨터 시스템(101)의 특별한 구조상 및 조작상의 특징이 많은 캐시 동기성에 관련되는 문제를 야기하고 있다. 발명자는 이들 문제를 특정하고, 이들 문제를 제거하기 위한 시스템및 방법을 개발했다. 본질적으로 본 발명의 시스템 및 방법은 이하의 3개의 룰을 실행함으로서 캐시메모리 접근명령의 실행을 제어한다(설명을 간략하게 하기 위해서 처리장치(102)에 관해서 이들의 룰을 설명한다).
(1)(데이타워드를 수정하기 위해서 동작한다)FA명령이 글로벌캐시(112)의 파이프라인에 있는 경우에 FA명령이 완료되어 글로벌캐시(112)의 파이프라인을 나올때 까지는 데이타 워드에 관한(즉 데이타워들르 참조한다)글로벌캐시(112)에 대한 개입을 지연시킨다. 또는 FA명령이 글로벌캐시(112)의 파이프라인에 있는 경우에는 FA명령이 완료되어 글로벌캐시(112)의 파이프라인을 나올때까지는 모든 글로벌캐시(112)에 개입을 지연시킨다.
(2)PM명령이 글로벌캐시(112)의 파이프라인에 있는 경우에 FA명령이 글로벌캐시(112)의 파이프라인으로 들어가는 것이 허용되지 않는다. 이러한 FA명령은 지연된다(즉, 이들은 저지되고 후 시간에 재차 개시된다).
(3) FA명령에 관련하는 정렬된 워드가 데이타캐시(108)에 있어서 독점되지 않는 경우에, FA명령은 글로벌캐시(112)에 대한 파이프라인으로 들어가는 것이 허용되지 않고, 비최소단위적 캐시미스·필이 발생한다.
룰(1)은 데이타로스의 문제를 해결한다. 룰(2)은 데드록의 문제(포텐셜미스)를 해결한다. 룰(3)은 데드록의 문제(데이타독점성의 요건)을 해결한다.
본 발명은 또 다음의 4번째 룰을 포함한다. 즉 글로벌캐시(112)에 있어서, 개입이 펜딩되어 있는 경우에 FA명령을 글로벌캐시(112)의 파이프라인으로 들어가는 것이 허용되지 않는다. 그 대신에 FA명령은 펜딩되어 있는 개입의 전부가 완료할 때까지 지연된다.
이 4번째 룰은 상술한 문제를 해결하기 위해서 사용하지는 않는다. 오히려 이 4번째의 룰은 성능을 향상시키는 것을 목적으로 하는 것이다. 4번째의 룰은 개입이 FA명령에 의해서 영구히 저지되는 것은 아니고 그 대신에 처리되는 기회가 부여되는 것을 보증한다.
룰(1), (2), (4)는 글로벌캐시(112)의 파이프라인으로 들어가는 각각의 명령에 FA비트와 FA비트를 추가함으로서 실행하는 것이 바람직하다. 명령이 포스드어토믹 명령이면, 그 FA비트를 1로 설정하는 것이 바람직하고, 이와 같이 되지 않으면 0으로 설정하면, 그 PM비트를 1로 설정하는 것이 바람직하고, 이와같이 하면 0으로 설정한다.
제어시스템(150)은 명령이 글로벌캐시(112)의 파이프라인으로 들어갈 때에 이들을 감시하는 것이 바람직하다(제어 시스템(150)과 처리장치(102)의 엘리먼트 사이의 제어선은 명료하기 때문에 도시하지 않는다). 제어시스템(150)의 조작에 대해서 제4도에 나타낸 플로우차트를 참조하여 설명하겠다.
제어시스템(150)이 글로벌캐시 파이프라인에 1로 설정된 FA비트를 수반하는 명령을 검출하면(스텝404에서 나타냄), 제어시스템(150)은 글로벌캐시(112)중의 적절한 데이타(즉, 주목의 정렬된 4비트워드)에 대한 개입을 저지한다(스텝 406에서 나타냄). 이것에서 제1룰이 실행된다.
동일하게 제어시스템(150)이 글로벌캐시(112)에 대해서 개입이 펜딩되어 있다고 판단되면(스텝 412에서 나타냄) 제어시스템(150)은 FA명령이 글로벌캐시(112)의 파이프라인으로 들어가는 것을 방지한다(스텝 410에 나타냄). 제어시스템(150)이 개입미결에 관한 지식을 갖는 컴퓨터시스템(101)의 다른 구성부재와 접촉하고 있다고 가정한다. 이것에서 제4룰이 실행된다.
제어시스템(150)이 글로벌캐시 파이프라인에 1로 설정된 PM비트를 수반하는 명령을 검출하면(+스텝408에 나타냄), 제어시스템(150)은 FA명령이 글로벌캐시 파이프라인으로 들어가는 것을 방지한다(스텝 410에 나타냄). 이것에서 제2룰이 실행된다.
룰(3)은 데이타 캐시(108)에 있어서, 각각 캐시블록(이것은 128바이트 폭인 것이 바람직하다)에 W(기입가능)비트를 추가함으로서 실행하는 것이 바람직하다. 캐시블록이 데이타 캐시(108)에 독점되어 있으면 데이타 캐시(108)중의 캐시블록과 관련하는 W비트가 1로 설정되는 것이 바람직하다. 이렇게 되지 않으면 0으로 설정한다. 제어시스템(150)의 다른 동작에 대해서 제5도에 나타낸 플로우차트를 참조하여 설명하겠다.
제어시스템(150)은 데이타 캐시(108)에 있어서, 처리되는 정수기억명령(즉, 데이타 캐시(108)의 파이프라인에 있어서 처리되는 정수 기억명령)을 감시한다. FA명령과 관련하는 정렬된 4바이트워드가 데이타 캐시(108)에 있어서 독점되는 캐시블록에 있는 경우(캐시블록과 관련하는 W비트에 의해서 나타낸 바와같이; 이 테스트는 스텝504에 나타냄), FA명령은 글로벌캐시(112)의 파이프라인으로 들어가는 것이 허용되고 여기서 설명하는 제어시스템(150)의 다른 처리에 부여된다(스텝 510에 나타냄).
FA명령과 관련하는 정렬된 4바이트워드가 데이타 캐시(108)에 있어서, 독점되지 않는 캐시 블록중에 있으면(이 테스트는 스텝504에 나타냄), FA명령은 글로벌캐시(112)의 파이프라인으로 들어가는 것이 허용되지 않고(스텝506에 나타냄), 캐시미스·필 메시지가 글로벌캐시(112)로 보낸다(스텝508에 나타냄).
제어시스템(150)은 상술한 바와같이 조작되는 하드웨어 스테이트 머신으로 실장되는 것이 바람직하고, 특히 상술한 4룰에 따라서 실장되는 것이 바람직하다. 또는 제어시스템(150)은 소프트웨어에 따라서 동작하는 프로세서로서 실장된다.
제어시스템(150)은 데이타 캐시(108)을 포함하는 정수 기능단위(IU)의 일부로서(스플릿레벨 캐시 배열을 갖는다)처리장치의 각각에 실장되는 것이 바람직하다. 또는 제어시스템(180)은 기능단위(104)의 외부에 있는 구성부재로서(스플릿레벨의 캐시배열을 갖는다)처리장치의 각각에 실장된다. 또는 제어시스템(150)은 스플릿레벨의 캐시 배열을 포함하는 컴퓨터 시스템(101)의 처리장치의 각각에 분산되는 다중스테이트 머신으로 실장된다.
제어시스템(150)은 하드웨어 개발자가 개발할 수 있도록 하는 적당한 컴파일러시스템과 소프트웨어의 프론트타입하드웨어 회로를 사용하여 개발하는 것이 바람직하다. 이러한 컴파일러 시스템에 있어서, 하드웨어 구성부재의 기능성은 번역언어를 사용하여 나타낼 수 있다. 이러한 컴파일러 시스템은 논리를 입증하기 위해서 사용할 수 있고, 제어신호 및 관련되는 랜덤논리의 타이밍으로 세대를 한정할 때에 도움이 된다. 이러한 컴파일러중 하나는 캘리포니아주 산호세의 Cadence Design Systems, Inc.에 의한 Verilog컴파일러이다.
본 발명의 실시에 관한 상세는 본 명세서의 설명에 준하면 당업자에게 자명한 것이다.
상기에 있어서 본 발명의 다양한 형태를 설명하고 있으나 이들은 예로들은 것으로 제한적인 것이 아님을 밝혀둔다.
이와같이 본 발명에 의하면 데이타 로스나 데드록을 야기하지 않고 스플릿 레벨의 캐시 배열을 갖는 컴퓨터 시스템에 존재하는 캐시의 동기성에 관한 문제를 해결할 수 있다.
Claims (17)
- 각각 적어도 하나의 캐시를 갖는 복수의 처리장치로 되는 컴퓨터 시스템의 데이타 로스를 방지하는 방법에 있어서, 멀티프로세서캐시의 동기성이 컴퓨터 시스템 중에서 유지되고, 적어도 하나의 처리장치가 제2 레벨의 캐시에 연결되는 제1레벨의 캐시로 되는 스플릿 레벨의 캐시 배열을 포함하고, 정수기억명령이 데이타를 제1레벨의 캐시와 제2레벨의 캐시에 기억하는 것을 가능하게 하고, 제1레벨의 캐시는 바이트 기입이 가능하고, 제2레벨의 캐시는 워드 기입이 가능한 방법이고, 상기 방법은 (a)제2레벨의 캐시의 파이프라인을 감시하여 포스드어토믹(FA)명령이 제2 레벨의 캐시파이프라인에 있는지 여부를 판별하는 스텝을 포함하고, FA명령은 제1레벨의 캐시의 기억할당을 요구하는 정수기억명령이고, 이것은 워드의 정수배 이외의 길이 데이타가 제1레벨의 캐시에 기억되는 것을 가능하게 하고, FA명령실행중에 하나 그 이상의 바이트가 제1레벨의 캐시로부터 판독되고 워드길이 데이타가 제2 레벨의 캐시에 기입되도록 FA명령의 기입데이타에 따라서 제2레벨의 캐시에 기입되고, (b)FA명령이 제2레벨의 캐시 파이프라인에 있다고 판별된 경우에 FA명령은 제2레벨의 캐시파이프라인을 나올때까지 제2레벨의 캐시에 대한 개입을 지연시키고, 이것에 의해서 캐시 메모리 접근명령의 조작에 의해서 기입되는 데이타가 FA명령의 조작에 의해서 파괴되지 않도록 이러한 개입의 원인은 캐시 메모리 접근명령의 실행을 지연시키는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템의 데이타로스를 방지하는 방법.
- 제1항에 있어서, (c)제2레벨의 캐시에 대한 개입이 펜딩되어 있는지 여부를 판별하는 스텝과, (d)제2레벨의 캐시에 대한 개입이 펜딩되어 있는 경우에 제2레벨의 캐시에 대한 개입실행이 제2레벨의 캐시 파이프라인에 있어서의 FA명령의 존재에 의해서 계속해서 지연되지 않도록 FA명령이 제2레벨의 캐시 파이프라인으로 들어가는 것을 방지하는 스텝을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 데이타로스를 방지하는 방법.
- 제1항에 있어서, 상기 스텝(a)은 명령이 FA명령인지 여부를 판별하는 제2레벨의 캐시 파이프라인 표지로 들어가는 명령과 관련시키는 스텝과, 제2레벨의 캐시에 있는 명령의 상기 표지를 분석하고, FA명령이 제2레벨이 캐시파이프라인에 있는지 여부를 판별하는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템의 데이타 로스를 방지하는 방법.
- 제3항에 있어서, 상기 표지가 제2레벨의 캐시파이프라인으로 들어가는 각각의 명령에 관련되는 포스드어토믹(FA)비트로 되고, FA비트가 FA명령용의 제1값으로 설정되고, 또 FA명령용의 제2값으로 설정되는 것을 특징으로 하는 컴퓨터 시스템의 데이타 로스를 방지하는 방법.
- 제1항에 있어서, 상기 스템(b)에 있어서, 제2레벨의 캐시중으로 FA명령의 기입데이타가 들어가 있는 정렬된 멀티바이트워드로 접근하는 FA명령이 제2레벨의 캐시파이프라인을 나올때까지 지연시키는 것을 특징으로 하는 컴퓨터 시스템의 데이타 로스를 방지하는 컴퓨터 시프템의 데이타 로스를 방지하는 방법.
- 각각 적어도 하나의 캐시를 갖는 복수의 처리장치로 되는 컴퓨터 시스템의 처리장치간의 데드록을 방지하는 방법에 있어서, 멀티프로세서 캐시의 동기성이 컴퓨터 시스템중에서 유지되고 적어도 하나의 처리장치가 제2레벨의 캐시에 연결되는 제1레벨의 캐시로 되는 스플릿레벨의 캐시배열을 포함하고, 제1레벨의 캐시는 바이트 기입이 가능하고 제2레벨의 캐시는 워드기입이 가능한 방법이고, 상기 방법은 (a)제2레벨의 캐시의 파이프라인을 감시하여 파서블미스(PM)명령이 제2레벨의 캐시파이프라인에 있는지 여부를 판별하는 스텝을 포함하고, 이 PM명령이 제2레벨의 캐시 중으로 기억할당을 요구하거나 제1레벨의 캐시에는 기억할당을 요구하지 않는 캐시메모리 접근명령이고, (b)컴퓨터 시스템의 처리장치간의 데드록이 방지되도록 개입이 제2레벨 캐시를 위해서 처리되는 사이에 제2레벨의 캐시에 있어서의 명령이 보류될 가능성이 있는 동안에는 제2레벨의 캐시에 대한 개입의 실행이 방해받지 않도록 PM명령이 제2레벨의 캐시 파이프라인 중에 있다고 판별된 경우에 포스드어토믹(FA)명령이 제2레벨의 캐시 파이프라인으로 들어가지 않도록 하고, FA명령이 데이타를 제1레벨의 캐시와 제2레벨의 캐시 양쪽에 기억하는 것을 가능하게 하는 캐시 메모리접근명령이고, 제1레벨의 캐시에 기억되는 데이타는 워드의 정수배 이외의 길이 데이타이고, 제2레벨의 캐시에 대한 개입은 FA명령이 제2레벨의 캐시 파이프라인 중에 있는 동안에는 허가되지 않는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템의 처리장치간의 데드록을 방지하는 방법.
- 제6항에 있어서, 명령이 PM명령인지 여부를 식별하는 제2레벨의 캐시 파이프라인 표지로 들어가는 명령과 관련시키는 스텝과, 제2레벨의 캐시에 있는 명령의 상기 표지를 분석하고, PM명령이 제2레벨의 캐시 파이프라인에 있는지 여부를 판별하는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템의 처리장치간의 데드록을 방지하는 방법.
- 제7항에 있어서, 상기 표지가 제2 레벨의 캐시파이프라인으로 들어가는 각각의 명령에 관련되는 포텐셜미스(PM)비트로 되고, PM비트가 PM명령을 제1값으로 설정되고, 또 비 PM명령용 제2값으로 설정되는 것을 특징으로 하는 컴퓨터 시스템의 처리장치간의 데드록을 방지하는 방법.
- 각각 적어도 하나의 캐시를 갖는 복수의 처리장치로 되는 컴퓨터 시스템의 캐시 메모리 접근명령의 실행을 제어하는 방법에 있어서, 멀티프로세서 캐시의 동기성이 컴퓨터 시스템 중에서 유지되고 적어도 하나의 처리장치가 제2레벨의 캐시에 연결되는 제1레벨의 캐시로 되는 스플릿 레벨의 캐시 배열을 포함하고, 제1레벨의 캐시는 바이트 기입이 가능하고, 제2레벨의 캐시는 워드기입이 가능하고, 스플릿 레벨의 캐시배열은 데이타를 제1레벨의 캐시와 제2레벨의 캐시의 양쪽에 기억시키도록 하는 정수기억 조작을 지지하고, 정수기억조작의 실행중에 하나 이상의 바이트가 제1레벨의 캐시로부터 판독되고 워드길이 데이타가 정수기억조작의 결과로서 제2레벨의 캐시에 기입되도록 정수기억 조작의 기입데이타에 따라서 제2레벨의 캐시에 기입되고, 이러한 정수기억조작의 실행은 최소단위적(atomically)으로 실행되도록 한 방법이고, 상기 방법은 (a)정수기억조작의 기입 데이타가 들어가 있는 정렬된 멀티바이트 워드가 제1레벨의 캐시에만 존재하는지 여부를 판별하는 스탭과, (b)정렬된 워드가 제1레벨의 캐시에만 독점적이 아니라고 판별된 경우에 정수기억 조작이 제2레벨 캐시의 파이프라인으로 들어가는 것을 방지하고 캐시미스·필 조작을 개시시켜 정렬워드가 제1레벨의 캐시에만 존재하도록 하는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템의 캐시메모리 접근명령의 실행을 제어하는 방법.
- 제9항에 있어서, 정렬워드가 제1레벨의 캐시에만 존재하는지 여부를 식별하는 제1레벨 캐시표지에 있는 정렬된 멀티바이트 워드와 관련하여 표지가 제1레벨의 캐시에 기억되는 스텝과, 제1레벨캐시에 기억된 상기 표지를 분석하여 정수기억 조작의 기입데이타가 들어가 있는 정렬된 멀티바이트 워드가 제1레벨 캐시에만 존재하는지 여부를 판별하는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템의 캐시메모리 접근명령의 실행을 제어하는 방법.
- 제10항에 있어서, 상기 표지가 각각 제1레벨 캐시에 있어서, 정렬된 멀티바이트워드와 관련하는 기입이 가능한 (W)비트로 되고, W비트는 제1레벨 캐시에 있어서, 독점되는 정렬워드용의 제1값으로 설정되고, 제1레벨 캐시에 있어서 독점되지 않는 정렬워드용의 제2 값으로 설정되는 것을 특징으로 하는 컴퓨터 시스템의 캐시 메모리 접근명령의 실행을 제어하는 방법.
- 각각 적어도 하나의 캐시를 갖는 복수의 처리장치로 되는 컴퓨터 시스템의 캐시 메모리 접근명령의 실행을 제어하는 방법에 있어서, 멀티프로세서 캐시의 동기성이 컴퓨터 시스템 중에서 유지되고, 적어도 하나의 처리장치가 제2레벨의 캐시에 연결되는 제2 레벨의 캐시로 되는 스플릿 레벨의 캐시 배열을 포함하고, 정수기억명령이 데이타를 제1레벨의 캐시와 제2레벨의 캐시에 기억하는 것을 가능하게 하고, 제1레벨의 캐시는 바이트 기입이 가능하고, 제2레벨의 캐시는 워드기입이 가능한 방법이고, 상기 방법은 (a)제2레벨의 캐시파이프라인을 감시하여 포스드어토믹(FA)명령이 제2레벨의 캐시파이프라인에 있는지 여부를 판별하는 스텝을 포함하고, 이 FA명령은 제1레벨의 캐시에 있어서의 기억할당을 요구하는 정수기억명령이고, 이것은 워드멀티플 이외의 길이 데이타가 제1레벨의 캐시에 기억되는 것을 가능하게 하고, FA명령실행중에 하나 그 이상의 바이트가 제1레벨의 캐시로부터 판독되고, 워드길이 데이타가 제2레벨의 캐시에 기입되도록 FA명령의 기입데이타에 따라서 제2레벨의 캐시에 기입되고, (b)제2레벨 캐시의 파이프라인을 감시하여 파서블미스(PM)명령이 제2레벨의 캐시파이프라인에 있는지 여부를 판별하는 스텝을 포함하고, 이 PM명령은 제2레벨의 캐시중에 기억할당을 요구하거나 제1레벨의 캐시에는 기억할당을 요구하지 않는 캐시 메모리 접근명령이고, (c)PM명령은 제2레벨의 캐시 파이프라인 중에 있다고 판별된 경우에 FA명령이 제2레벨의 태시 파이프라인으로 들어가는 것을 방지하는 스텝과, (d)FA명령이 제2레벨의 캐시 파이프라인에 있다고 판별된 경우에 FA명령이 제2레벨의 캐시파이프라인을 나올때까지 제2레벨캐시에 대한 개입을 지연시키는 스텝을 포함하는 것을 특징으로 하는 컴퓨터 시스템에 있어서 캐시 메모리 접근명령의 실행을 제어하는 방법.
- 제12항에 있어서, (e)제2레벨의 캐시에 대한 개입이 펜딩되어 있는지 여부를 판별하는 스텝과, (f)제2레벨의 캐시에 대한 개입이 펜딩되어 있는 경우에 제2 레벨의 캐시에 대한 개입실행이 제2레벨의 캐시 파이프라인에 있어서의 FA명령의 존재에 의해서 계속해서 지연되지 않도록 FA명령으로 들어가는 것을 방지하는 스텝을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 캐시 메모리 접근명령의 실행을 제어하는 방법.
- 제12항에 있어서, (e)정수기억 조작의 기입데이타가 들어있는 정렬된 멀티바이트워드가 제1레벨의 캐시에만 존재하는지 여부를 판별하는 스텝과, (f)정렬된 워드가 제1레벨의 캐시에만 독점적이 아니라고 판별된 경우에 정수기억 동작이 제2레벨의 캐시파이프라인으로 들어가는 것을 방지하고, 캐시미스·필 조작을 개시시켜 정렬워드가 제2레벨의 캐시에만 존재하도록 하는 스텝을 더 포함하는 것을 특징으로 하는 컴퓨터 시스템의 캐시 메모리 접근명령의 실행을 제어하는 방법.
- 각각 적어도 하나의 캐시를 갖는 복수의 처리장치로 되는 컴퓨터 시스템의 있어서 캐시 메모리 접근명령의 실행을 제어하기 위한 제어시스템에 있어서, 멀티프로세서 캐시의 동기성이 컴퓨터 시스템 중에서 유지되고, 적어도 하나의 처리장치가 제2레벨의 캐시에 연결되는 제1레벨의 캐시로 되는 스플릿 레벨의 캐시 배열을 포함하고, 정수기억 명령이 데이타를 제1레벨의 캐시와 제2레벨의 캐시의 양쪽으로 기억하는 것을 가능하게 하고, 제1레벨의 캐시는 바이트 기입이 가능하고, 제2레벨의 캐시는 워드기입이 가능하고, 상기 제어시스템은 제2레벨 캐시의 파이프라인을 감시하여 포스드어토믹(FA) 명령이 제2레벨의 캐시 파이프라인에 있는지 여부를 판별하는 수단을 포함하고, 이 FA명령은 제1레벨의 캐시에 있어서의 기억할당을 요구하는 정수기억 명령이고, 이것은 워드의 정수배 이외의 길이 데이타가 제1레벨의 캐시에 기억되는 것을 가능하게 하고, FA명령 실행중에 하나, 그 이상의 바이트가 제1 레벨의 캐시로부터 판독되고, 워드길이 데이타가 제2 레벨의 캐시에 기입되도록 FA명령의 기입데이타에 따라서 제2레벨의 캐시에 기입되고, 제2레벨의 캐시파이프라인을 감시하여, 파서블 미스(PM)명령이 제2레벨의 캐시 파이프라인에 있는지 여부를 판별하는 수단을 포함하고, 이 PM명령은 제2레벨의 캐시중에 기억할당을 요구하거나 제1레벨의 캐시에는 기억할당을 요구하지 않는 캐시 메모리 접근명령이고, PM명령이 제2레벨의 캐시 파이프라인 중에 있다고 판별된 경우에 FA명령이 제2레벨의 캐시 파이프라인으로 들어가는 것을 방지하는 수단과, FA명령이 제2레벨의 캐시 파이프라인에 있다고 판별된 경우에 FA명령이 제2레벨의 캐시 파이프라인을 나올때까지, 제2레벨 캐시에 대한 개입을 지연시키는 수단을 포함하는 것을 특징으로 하는 제어시스템.
- 제15항에 있어서, 제2레벨의 캐시에 대한 개입이 펜딩되어 있는지 여부를 판별하는 수단과, 제2레벨의 캐시에 대한 개입이 펜딩되어 있다고 판별된 경우에 제2레벨의 캐시에 대한 개입실장이 제2 레벨의 캐시 파이프라인에 있어서의 FA명령의 존재에 의해서 계속해서 지연되지 않도록 FA명령이 제2 레벨의 캐시 파이프라인으로 들어가는 것을 방지하는 수단을 더 포함하는 것을 특징으로 하는 제어시스템.
- 제15항에 있어서, 정수기억조작의 기입데이타가 들어가 있는 정렬된 멀티바이트 워드가 제1레벨의 캐시에만 존재하는지 여부를 판별하는 수단과, 정렬된 워드가 제1레벨의 캐시에만 독점적이 아니라고 판별된 경우에 정수기억조작이 제2레벨의 캐시의 파이프라인으로 들어가는 것을 방지하고, 캐시미스·필 조작을 개시시켜 정렬워드가 제1레벨의 캐시에만 존재하도록 하는 수단을 포함하는 것을 특징으로 하는 제어시스템.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/167005 | 1993-12-15 | ||
US8/167005 | 1993-12-15 | ||
US08/167,005 US5572704A (en) | 1993-12-15 | 1993-12-15 | System and method for controlling split-level caches in a multi-processor system including data loss and deadlock prevention schemes |
PCT/JP1994/002111 WO1995016959A1 (fr) | 1993-12-15 | 1994-12-15 | Dispositif et procede de synchronisation des systemes a antememoire de donnees a plusieurs niveaux |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960701403A KR960701403A (ko) | 1996-02-24 |
KR0182344B1 true KR0182344B1 (ko) | 1999-05-15 |
Family
ID=22605558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019950703429A KR0182344B1 (ko) | 1993-12-15 | 1994-12-15 | 스플릿 레벨의 데이타 개시 시스템의 동기성을 위한 시스템과 그 방법 |
Country Status (10)
Country | Link |
---|---|
US (2) | US5572704A (ko) |
EP (1) | EP0684561B1 (ko) |
JP (1) | JP2631037B2 (ko) |
KR (1) | KR0182344B1 (ko) |
CN (1) | CN1054223C (ko) |
DE (1) | DE69434728T2 (ko) |
HK (1) | HK1018166A1 (ko) |
SG (1) | SG75776A1 (ko) |
TW (1) | TW367441B (ko) |
WO (1) | WO1995016959A1 (ko) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5628021A (en) * | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
US5751995A (en) * | 1994-01-04 | 1998-05-12 | Intel Corporation | Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively |
WO1996012229A1 (en) | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | Indexing and multiplexing of interleaved cache memory arrays |
WO1996012231A1 (en) | 1994-10-14 | 1996-04-25 | Silicon Graphics, Inc. | A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein |
US5737749A (en) * | 1996-05-20 | 1998-04-07 | International Business Machines Corporation | Method and system for dynamically sharing cache capacity in a microprocessor |
US5872976A (en) * | 1997-04-01 | 1999-02-16 | Landmark Systems Corporation | Client-based system for monitoring the performance of application programs |
US6175899B1 (en) * | 1997-05-19 | 2001-01-16 | International Business Machines Corporation | Method for providing virtual atomicity in multi processor environment having access to multilevel caches |
US6092156A (en) * | 1997-11-05 | 2000-07-18 | Unisys Corporation | System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations |
US7529907B2 (en) | 1998-12-16 | 2009-05-05 | Mips Technologies, Inc. | Method and apparatus for improved computer load and store operations |
US6389449B1 (en) * | 1998-12-16 | 2002-05-14 | Clearwater Networks, Inc. | Interstream control and communications for multi-streaming digital processors |
US7020879B1 (en) * | 1998-12-16 | 2006-03-28 | Mips Technologies, Inc. | Interrupt and exception handling for multi-streaming digital processors |
US7237093B1 (en) | 1998-12-16 | 2007-06-26 | Mips Technologies, Inc. | Instruction fetching system in a multithreaded processor utilizing cache miss predictions to fetch instructions from multiple hardware streams |
US7257814B1 (en) | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
US6341331B1 (en) * | 1999-10-01 | 2002-01-22 | International Business Machines Corporation | Method and system for managing a raid storage system with cache |
US6591361B1 (en) | 1999-12-28 | 2003-07-08 | International Business Machines Corporation | Method and apparatus for converting data into different ordinal types |
US6859862B1 (en) | 2000-04-07 | 2005-02-22 | Nintendo Co., Ltd. | Method and apparatus for software management of on-chip cache |
US6701424B1 (en) * | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
US6857061B1 (en) * | 2000-04-07 | 2005-02-15 | Nintendo Co., Ltd. | Method and apparatus for obtaining a scalar value directly from a vector register |
JP2004518183A (ja) | 2000-07-14 | 2004-06-17 | クリアウオーター・ネツトワークス・インコーポレイテツド | マルチスレッド・システムにおける命令のフェッチとディスパッチ |
US7406554B1 (en) * | 2000-07-20 | 2008-07-29 | Silicon Graphics, Inc. | Queue circuit and method for memory arbitration employing same |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
US7181600B1 (en) | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
GB2392742B (en) * | 2002-09-04 | 2005-10-19 | Advanced Risc Mach Ltd | Synchronisation between pipelines in a data processing apparatus |
US7634638B1 (en) * | 2002-10-22 | 2009-12-15 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US6836833B1 (en) * | 2002-10-22 | 2004-12-28 | Mips Technologies, Inc. | Apparatus and method for discovering a scratch pad memory configuration |
JP3855270B2 (ja) * | 2003-05-29 | 2006-12-06 | ソニー株式会社 | アンテナ実装方法 |
CN100461142C (zh) * | 2005-07-05 | 2009-02-11 | 威盛电子股份有限公司 | 微处理器、处理器总线系统、及执行稀疏写入处理的方法 |
US7454492B2 (en) * | 2005-08-26 | 2008-11-18 | International Business Machines Corporation | Method and apparatus for configuring and modeling server information in an enterprise tooling environment |
US7596661B2 (en) * | 2005-09-01 | 2009-09-29 | Mediatek Inc. | Processing modules with multilevel cache architecture |
US7734901B2 (en) * | 2005-10-31 | 2010-06-08 | Mips Technologies, Inc. | Processor core and method for managing program counter redirection in an out-of-order processor pipeline |
US7711934B2 (en) * | 2005-10-31 | 2010-05-04 | Mips Technologies, Inc. | Processor core and method for managing branch misprediction in an out-of-order processor pipeline |
US7721071B2 (en) * | 2006-02-28 | 2010-05-18 | Mips Technologies, Inc. | System and method for propagating operand availability prediction bits with instructions through a pipeline in an out-of-order processor |
US20070204139A1 (en) | 2006-02-28 | 2007-08-30 | Mips Technologies, Inc. | Compact linked-list-based multi-threaded instruction graduation buffer |
US7370178B1 (en) * | 2006-07-14 | 2008-05-06 | Mips Technologies, Inc. | Method for latest producer tracking in an out-of-order processor, and applications thereof |
US20080016326A1 (en) | 2006-07-14 | 2008-01-17 | Mips Technologies, Inc. | Latest producer tracking in an out-of-order processor, and applications thereof |
US7657708B2 (en) * | 2006-08-18 | 2010-02-02 | Mips Technologies, Inc. | Methods for reducing data cache access power in a processor using way selection bits |
US7650465B2 (en) | 2006-08-18 | 2010-01-19 | Mips Technologies, Inc. | Micro tag array having way selection bits for reducing data cache access power |
US8032734B2 (en) * | 2006-09-06 | 2011-10-04 | Mips Technologies, Inc. | Coprocessor load data queue for interfacing an out-of-order execution unit with an in-order coprocessor |
US7647475B2 (en) * | 2006-09-06 | 2010-01-12 | Mips Technologies, Inc. | System for synchronizing an in-order co-processor with an out-of-order processor using a co-processor interface store data queue |
US8078846B2 (en) | 2006-09-29 | 2011-12-13 | Mips Technologies, Inc. | Conditional move instruction formed into one decoded instruction to be graduated and another decoded instruction to be invalidated |
US9946547B2 (en) * | 2006-09-29 | 2018-04-17 | Arm Finance Overseas Limited | Load/store unit for a processor, and applications thereof |
US20080082793A1 (en) * | 2006-09-29 | 2008-04-03 | Mips Technologies, Inc. | Detection and prevention of write-after-write hazards, and applications thereof |
US7594079B2 (en) | 2006-09-29 | 2009-09-22 | Mips Technologies, Inc. | Data cache virtual hint way prediction, and applications thereof |
US7996632B1 (en) * | 2006-12-22 | 2011-08-09 | Oracle America, Inc. | Device for misaligned atomics for a highly-threaded x86 processor |
US7769957B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Preventing writeback race in multiple core processors |
US7769958B2 (en) * | 2007-06-22 | 2010-08-03 | Mips Technologies, Inc. | Avoiding livelock using intervention messages in multiple core processors |
US7953932B2 (en) * | 2008-02-13 | 2011-05-31 | International Business Machines Corporation | System and method for avoiding deadlocks when performing storage updates in a multi-processor environment |
US8672411B2 (en) * | 2010-03-22 | 2014-03-18 | Faurecia Automotive Seating, Llc | Vehicle seat cushion with integrated ventilation |
CN103473095A (zh) * | 2013-09-10 | 2013-12-25 | 江苏中科梦兰电子科技有限公司 | Cpu二级缓存的加速初始化方法 |
JP6093322B2 (ja) * | 2014-03-18 | 2017-03-08 | 株式会社東芝 | キャッシュメモリおよびプロセッサシステム |
GB2551529B (en) | 2016-06-21 | 2018-09-12 | Advanced Risc Mach Ltd | Switching between private cache and shared memory to handle atomic operations |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5058006A (en) * | 1988-06-27 | 1991-10-15 | Digital Equipment Corporation | Method and apparatus for filtering invalidate requests |
JPH02253356A (ja) * | 1989-03-28 | 1990-10-12 | Toshiba Corp | 階層キャッシュメモリ装置とその制御方式 |
US5287484A (en) * | 1989-06-21 | 1994-02-15 | Hitachi, Ltd. | Multi-processor system for invalidating hierarchical cache |
JPH077358B2 (ja) * | 1989-09-18 | 1995-01-30 | 工業技術院長 | 階層キャッシュメモリ装置 |
EP0432075B1 (en) * | 1989-11-09 | 1997-02-26 | International Business Machines Corporation | Multiprocessor with relatively atomic instructions |
US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
US5490261A (en) * | 1991-04-03 | 1996-02-06 | International Business Machines Corporation | Interlock for controlling processor ownership of pipelined data for a store in cache |
US5406504A (en) * | 1993-06-30 | 1995-04-11 | Digital Equipment | Multiprocessor cache examiner and coherency checker |
-
1993
- 1993-12-15 US US08/167,005 patent/US5572704A/en not_active Expired - Lifetime
-
1994
- 1994-12-15 JP JP7516668A patent/JP2631037B2/ja not_active Expired - Lifetime
- 1994-12-15 KR KR1019950703429A patent/KR0182344B1/ko not_active IP Right Cessation
- 1994-12-15 EP EP95902964A patent/EP0684561B1/en not_active Expired - Lifetime
- 1994-12-15 CN CN94191177A patent/CN1054223C/zh not_active Expired - Lifetime
- 1994-12-15 WO PCT/JP1994/002111 patent/WO1995016959A1/ja active IP Right Grant
- 1994-12-15 SG SG1996004743A patent/SG75776A1/en unknown
- 1994-12-15 DE DE69434728T patent/DE69434728T2/de not_active Expired - Lifetime
-
1995
- 1995-02-11 TW TW084101223A patent/TW367441B/zh not_active IP Right Cessation
-
1996
- 1996-08-14 US US08/696,788 patent/US5632025A/en not_active Expired - Lifetime
-
1998
- 1998-12-22 HK HK98114540A patent/HK1018166A1/xx not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
TW367441B (en) | 1999-08-21 |
DE69434728D1 (de) | 2006-06-14 |
HK1018166A1 (en) | 1999-12-10 |
DE69434728T2 (de) | 2007-04-26 |
SG75776A1 (en) | 2000-10-24 |
CN1054223C (zh) | 2000-07-05 |
EP0684561B1 (en) | 2006-05-10 |
US5572704A (en) | 1996-11-05 |
WO1995016959A1 (fr) | 1995-06-22 |
EP0684561A1 (en) | 1995-11-29 |
KR960701403A (ko) | 1996-02-24 |
US5632025A (en) | 1997-05-20 |
CN1117767A (zh) | 1996-02-28 |
JP2631037B2 (ja) | 1997-07-16 |
EP0684561A4 (en) | 1999-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0182344B1 (ko) | 스플릿 레벨의 데이타 개시 시스템의 동기성을 위한 시스템과 그 방법 | |
US8832415B2 (en) | Mapping virtual addresses to different physical addresses for value disambiguation for thread memory access requests | |
JP5105887B2 (ja) | 非同期式パイプラインのためのデータ・キャッシュ・ミスをアウト・オブ・オーダ方式で処理するための装置及び方法 | |
KR100578437B1 (ko) | 다수의 스레드의 병행 실행을 지원하는 컴퓨터 시스템에서의 인터럽트 처리 메커니즘 | |
US6336168B1 (en) | System and method for merging multiple outstanding load miss instructions | |
KR100204741B1 (ko) | 제1및 제2캐시 메모리 사용방법 | |
US8140828B2 (en) | Handling transaction buffer overflow in multiprocessor by re-executing after waiting for peer processors to complete pending transactions and bypassing the buffer | |
US5509119A (en) | Fast comparison method and apparatus for error corrected cache tags | |
US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
US6684299B2 (en) | Method for operating a non-blocking hierarchical cache throttle | |
US10482024B2 (en) | Private caching for thread local storage data access | |
US4930106A (en) | Dual cache RAM for rapid invalidation | |
US6725365B1 (en) | Branching in a computer system | |
US6154812A (en) | Method for inhibiting thrashing in a multi-level non-blocking cache system | |
JP2004520634A (ja) | ロード命令を処理するための方法および装置 | |
US6804759B2 (en) | Method and apparatus for detecting pipeline address conflict using compare of byte addresses | |
JPH0773104A (ja) | キャッシュ・システム | |
US5897654A (en) | Method and system for efficiently fetching from cache during a cache fill operation | |
US4648033A (en) | Look-aside buffer LRU marker controller | |
KR100218616B1 (ko) | 현재의 트랜잭션동안 다음 어드레스를 제공하기 위한 전송방법 및 시스템 | |
EP0442690A2 (en) | Data cache store buffer for high performance computer | |
US6374344B1 (en) | Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts | |
US9047199B2 (en) | Reducing penalties for cache accessing operations | |
JPH07234819A (ja) | キャッシュメモリ | |
EP0362366B1 (en) | Instruction cache flush-on-rei control |
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: 20121029 Year of fee payment: 15 |
|
FPAY | Annual fee payment |
Payment date: 20131105 Year of fee payment: 16 |
|
FPAY | Annual fee payment |
Payment date: 20141121 Year of fee payment: 17 |
|
EXPY | Expiration of term |