KR920010968B1 - 공유 캐쉬 메모리의 어드레스경로 제어회로 - Google Patents
공유 캐쉬 메모리의 어드레스경로 제어회로 Download PDFInfo
- Publication number
- KR920010968B1 KR920010968B1 KR1019900021854A KR900021854A KR920010968B1 KR 920010968 B1 KR920010968 B1 KR 920010968B1 KR 1019900021854 A KR1019900021854 A KR 1019900021854A KR 900021854 A KR900021854 A KR 900021854A KR 920010968 B1 KR920010968 B1 KR 920010968B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- cache
- snoop
- cpu
- comparator
- 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
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
내용 없음.
Description
제1도는 본 발명 캐쉬메모리 어드레스경로 제어회로(TAP)의 내부구성도.
제2도는 본 발명 캐쉬메모리 제어회로의 부분인 CAP의 구성도.
제3도는 본 발명 캐쉬메모리 제어회로의 부분인 SAP의 구성도.
제4도는 본 발명 캐쉬메모리 제어회로의 부분인 SAB,DRA의 구성도.
제5도는 본 발명 캐쉬메모리 제어회로의 부분인 EQU의 구성도.
* 도면의 주요부분에 대한 부호의 설명
1 : 어드레스경로 제어부 11 : 비교기
12 : CPU캐쉬의 어드레스경로 형성부
13 : 스누우프 캐쉬의 어드레스경로 형성부
14 : 데이터캐쉬의 어드레스경로 형성부 15 : 시스템 어드레스버스 생성부
본 발명은 캐쉬메모리의 어드레스경로 제어회로에 관한 것으로, 특히 캐쉬메모리를 카피백(Copy back 또는 Write back)모드로 운영하는 경우에 어드레스의 경로를 효율적으로 제어하도록한 공유메모리의 어드레스경로 제어회로에 관한 것이다.
종래에는 여러개의 프로세서가 여러개의 캐쉬메모리를 지니면서 시스템버스를 통하여 정보를 주고받는 다중프로세서 시스템에서 프로세서와 스누우프가 서로 다른 주파수로 동작하게 되면서 캐쉬의 일치성을 효율적으로 제어할 수 없었음은 물론 캐쉬 메모리의 어드레스와 시스템버스의 어드레스경로를 적절히 제어할 수 없었으며, 어드레스경로를 제어하기 위한 제어회로의 구성이 복잡하여 원할하지 않고 집적화에 어려움이 많았었다.
이에따라 본 발명은 캐쉬메모리를 카피백모드로 운영하는 경우에, 그 캐쉬메모리의 어드레스를 제어하고 시스템버스에 어드레스를 제공하도록한 공유메모리의 어드레스경로 제어회로를 제공함을 그 목적으로 한다.
또한 본 발명은 어드레스 비교기를 구비하여 다중 캐쉬메모리에서 발생하기 쉬운 오동작을 방지함을 또다른 목적으로한다.
본 발명을 첨부도면에 의거 상세히 기술하여 보면 다음과 같다.
제1도는 개략적인 구성을 개략적인 구성을 나타낸 것으로, 어드레스경로 제어부(TAP)(1)의 입출력신호들과 어드레스경로 제어부(1)의 내부모듈을 도시한 것이다.
어드레스경로 제어부(1)는 CPU(4)로부터 어드레스를 받아 캐쉬메모리를 읽거나 쓸 때 필요한 어드레스를 만들고 시스템버스제어부(SB-RQ)(2)로 버스동작시에 어드레스를 보내며, 캐쉬 일치성을 보장하기 위해 몇가지 어드레스를 비교하는 비교기를 가지고 있다.
발진기(5)로부터 어드레스경로 제어부(1)로 입력되는 클럭은 CLK20, CLK25, TP60세가지가 있으며 이러한 클럭은 주로 타이밍을 정확히 하는데 사용된다.
태그램(6)의 데이터신호(CT-ADB〈13〉)는 유일한 양방향 신호로써, 히트 또는 미스를 판단하기 위해서는 어드레스경로 제어부(1)의 출력이 되며, 캐쉬제어기(3)가 WRB(Write Back)를 행할때는 태그램(6)에서 어드레스를 읽어와야 하므로 그때는 어드레스경로 제어부(1)의 입력이 된다.
입출력의 구분은 캐쉬제어기(3)로부터 입력되는 WRB시에 태그램(6)을 읽기 위한 신호(RA-CRT)에 의해 제어된다. 어드레스경로 제어부(1)는 입출력되는 어드레스를 비교하는 비교기(11)의 비교결과에 따라 CPU캐쉬의 어드레스경로 형성부(12), 스누우프캐쉬의 어드레스경로 형성분(13), 데이터 캐쉬의 어드레스경로 형성부(14)들에 의해 경로를 형성하면서 CPU캐쉬 및 스누우프캐쉬의 어드레스경로 형성부(12), (13)의 출력에 따라 시스템 어드레스버스 생성부(15)에서 시스템버스제어부(2)로 어드레스를 보내는 것이다.
제2도는 캐쉬상태 메모리의 어드레스와 태그메모리의 어드레스를 생성하는 CPU캐쉬의 어드레스경로 형성부(12)의 구성을 나타낸 것으로, CPU캐쉬의 어드레스경로 설정부(1)는 캐쉬상태메모리(6b)의 어드레스와 캐쉬태그메모리(6a)의 어드레스를 만든다.
캐쉬태그메모리(6a)의 어드레스〈15..3〉는 직접 CPU에서 보내며, 캐쉬상태메모리(6b)의 어드레스는 MUX(12a)를 통해서 보냄.
CPU캐쉬의 어드레스경로 형성부(12)에서 스누우프에서 변경한 캐쉬상태메모리(6b)의 어드레스(TP-AU〈15..3〉)는 2단 큐(queue)(12b)를 통해서 MUX(12a)에 주어진다.
또한 스누우프상태메모리 및 스누우프태그메모리를 변경하기 위한 어드레스신호(RC-ADB), (XP-AL)를 캐쉬 FIFO의 쓰기신호(FS-WR)로 래치(12c)(12d)에서 래치하여 스누우프캐쉬의 어드레스경로 형성부(12)로 보낸다.
제3도는 스누우프상태메모리와 스누우프태그메모리의 어드레스를 만드는 스누우프캐쉬의 어드레경로 형성부(13)의 구성을 나타낸 것으로, 멀티플렉서(13a)(13b)를 통하여 스누우프태그메모리(6c)의 어드레스 및 데이타신호(ST-ADB)를 보내면서 멀티플렉서(13c) 및 래치(13d)(13e)를 통하여 스누우프상태 메모리(6d)의 어드레스신호(SS-ADD)를 보내는 한편, 래치(13f)(13g)(13h) 및 멀티플렉서(13i)를 통하여 타임펄스 60에서의 어드레스 쓰기신호(TP-AW) 어드레스신호(TP-AU)를 출력한다.
제4도는 시스템 어드레스버스 생성부(15)와 데이터캐쉬의 어드레스경로 형성부(14)의 구성을 나타낸 것으로, 시스템 어드레스버스 생성부(15)는 래치(15a)를 경유한 캐쉬 어드레스신호(CT-ADB)와 어드레스신호(XP-a)가 멀티플렉서(15b)를 거치도록한 후 래치(15c)를 경유하여 래치(15d)를 경유한 어드레스신호(XP-A)와 합쳐져 멀티플렉서(15f)로 인가되도록 하고, 래치(15e)를 경유한 어드레스신호(TP-AW)와 허가신호(SB-GRANT)에 의해 선택되면서 시스템버스제어부(2)로 어드레스(SB-A)를 출력한다.
그리고 데이터캐쉬의 어드레스경로 형성부(14)는 어드레스신호(XP-A)를 인버터(14a)에 의해 반전된 어드레스 스트로브신호(XP-AS)로 래치(14b)에서 래치되도록 한 후 데이터램어드레스의 선택신호(DA-SEL)에 의해 선택되어 어드레스신호( DA-ADD)를 데이터메모리로 출력한다.
제5도는 FIFO(first in first out)이 비교기(EQUFS), 스누우프(SN)의 비교기(EQUSN), 프로세서(Processor)의 비교기(EQUXP), 캐쉬(Cache)의 비교기(EQUCA), 라이트백(Write back)의 비교기(EQUWRB)의 5개의 비교기로 이루어져 캐쉬일치성을 위하여 입력되거나 출력되는 어드레스를 비교하는 비교기(11)의 구성을 나타낸 것이다.
FIFO의 비교기(EQUFS)는 프로세서 어드레스(XPO-A)〈15..3〉와 fifo에 저장된 스누우프 FIFO어드레스(FS-ADD〈15..3〉를 비교한다.
스누우프가 자신의 상태메모리를 업데이트(update)한 후에 fifo에 그 어드레스를 넣어둔 뒤 캐쉬상태메모리(cacje state ram)가 업데이트되기 전까지 CPU어드레스를 어드레스 스트로브(XP-AS)로 래치한 어드레스와 비교하여 같으면 CPU를 늦은 제시도 모드(late mode)로 가게한다.
프로세서의 접근제어부(CA)의 기준상태에서 그 비교한 결과를 참조한다. 스누우프 FIFO가 2단계이므로 두개의 래치된 어드레스를 비교한다. 예를들어, 만약에 스누우프가 ‘A’란 어드레스를 valid〉shard로 업데이트를 했는데, 마침 이 ‘A’어드레스를 그 순간(스누우프가 스누우프상태 메모리를 업데이트하고 난후에 캐쉬 상태메모리가 업데이트되기 전까지)에 CPU가 쓰기를 행한다면, 이때의 상태메모리의 상태가 valid이므로 바로 dirty로 바꾸고 데이터메모리에 쓰게되어 캐쉬일치성이 깨어져 버린다.
이런 경우를 방지하기 위해 FIFO의 비교기가 사용된다. 비교신호(FS-EQU1)(FS-EQU0)를 캐쉬제어부의 입력으로 하여, 캐쉬제어부에서 스누우프가 캐쉬메모리를 변경한 상태(FS-UPD)가 ‘참’인가를 본뒤 캐쉬메모리로 일치신호를 보내어 CPU의 동작을 일시 중지시킨다.
스누우프의 비교기(EQUSN)는 스누우프가 WRB중 일때(즉, 스누우프가 허가신호(grant)를 받은 후부터 정상데이타 전송종료신호(done)를 읽기/쓰기(read/write) 동작을 하면, 이 두 개의 어드레스(스누우프가 WRB중인 어드레스와 CPU가 읽기/쓰기(read/write)하려는 address)를 비교를 하여 어드레스가 같다면 CPU의 동작을 스누우프의 WRB를 끝낼때까지 중지시켜야 한다.
이렇게 두 개의 어드레스를 비교하는 역할을 스누우프의 비교기(EQUSN)가 담당한다.
프로세서의 비교기(EQUXP)는 프로세서 어드레스(XP0-A)와 시스템 어드레스버스를 래치한 어드레스(TP-A)를 비교하여 두 어드레스가 같으면 스누우프가 동작중이므로 현재 수행중인 버스구동을 다시하도록 하는 스누우프 응답신호인 스낵신호(SN ACK)를 어서트(assert)하여 그 어드레스에 대해 재시도하여 마며 캐쉬일치성(cache coherende)이 깨지지 않도록 한다.
캐쉬의 비교기(EQUCA)는 캐쉬가 버스구동(operation)중인 어드레스와 시스템 어드레스버스를 래치한 어드레스(TP-A)를 비교하여 두 어드레스가 같다면 스누우프는 스낵신호(SNACK)를 시스템버스제어부(2)로 어서트하여 그 어드레스에 대해 제시도하도록 한다.
라이트백의 비교기(EQUWRB)는 스누우프가 WRB중인 어드레스와 시스템 어드레스버스를 래치한 어드레스(TP-A)를 비교하여 두 어드레스가 같으면 스누우프가 스낵신호(SNACK)를 시스템버스 제어부(2)로 어서트하여 그 어드레스에 대해 제시도하도록 한다.
그러므로 FIFO의 비교기(EQUSF)와 스누우프의 비교기(EQUSN)는 CPU쪽으로 제시도록하도록 하고, 프로세서의 비교기(EQUXP), 라이프백의 비교기(EQUWR B), 및 캐쉬의 비교기(EQUCA)는 스누우프가 시스템버스제어부로 스택신호(SNA CK)를 보내어 시스템버스를 요청한 요청기(RQ)가 제시도록하도록 하고, 프로세서의 비교기, 라이프백의 비교기 및 캐쉬의 비교기중 어느 하나라도 참이면 어드레스경로 제어부는 일치 출력신호(TP-EQU)를 참으로하여 캐쉬제어기로 보내어 스낵신호(SN ACK)를 생성하도록 하지만 캐쉬에서 버스를 점유한 경우에는 아무런 동작도 취하지 않는다.
따라서 본 발명은 캐쉬메모리를 카피백 모드로 운영하는 경우에, 캐쉬메모리의 어드레스경로를 제어하도록 한 것으로, CPU와 스누우프가 다른 주파수로 동작할 때 생길수 있는 캐쉬의 일치성 문제를 해결하기 위해 다수의 어드레스 비교기를 구비하고 이 캐쉬메모리 어드레스경로 제어회로를 집적화하기 위해 여러 가지 설계상의 기법도 사용한 것이다.
Claims (2)
- 입출력되는 어드레스를 비교하여 CPU 또는 시스템제어부로 재시도의 신호를 출력하는 비교기(11)와, CPU(4) 등으로부터 어드레스를 입력받아 캐쉬상태메 모리(6b) 및 캐쉬태그메모리(6a)의 어드레스(FC-ADB), (XP-A)를 발생하는 CPU캐쉬의 어드레스경로 형성부(12)와, CPU(4) 등으로부터 입력받아 스누우프상태메모리(6d) 및 스누우프태그메모리(6c)의 어드레스(SS-ADD)(TP-AU)를 발생하는 스누우프캐쉬의 어드레스경로 형성부(13)와, CPU(4) 등으로부터 어드레스를 입력받아 데이터메모리로 어드레스신호(DA-ADD)를 출력하는 데이터캐쉬의 어드레스경로 형성부(14)와, 상기 CPU캐쉬의 어드레스경로 형성부(12) 및 스누우프캐쉬의 어드레스경로 형성부(13)로부터 어드레스(XP-A)(TP-A)를 입력받아 시스템버스제어부(2)로 어드레스(SB-A)를 출력하는 시스템 어드레스버스 생성부(15)들로 구성됨을 특징으로 하는 공유캐쉬메모리의 어드레스경로 제어회로.
- 제1항에 있어서, 비교기(11)는 프로세서 어드레스(XPO-A)와 FIFO에 저장된 스누우프 FIFO어드레스(FS-ADD)를 비교하여 CPU(4)로 그 결과를 알려주는 FIFO의 비교기(EQUFS)와, 스누우프가 WRB동작중 CPU가 읽기/쓰기 동작을 할 때 두 어드레스가 일치하는가를 비교하여 CPU(4)로 알려주는 스누우프의 비교기(EQUSN)와, 캐쉬가 구동중인 어드레스와 시스템 어드레스버스를 래치한 어드레스를 비교하여 그 결과를 시스템버스제어부(2)로 알려주는 캐쉬의 비교기(EQUCA)와, 스누우프가 WRB중인 어드레스와 시스템 버스어드레스를 래치한 어드레스를 비교하여 그 결과를 시스템버스제어부(2)로 알려주는 리이트백의 비교기(EQUWRB)와, 프로세서 어드레스와 시스템버스어드레스를 래치한 어드레스를 비교하여 그 결과를 CPU로 알려주는 프로세서의 비교기(EQUXP)들로 구성한 공유캐쉬메모리의 어드레스경로 제어회로.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019900021854A KR920010968B1 (ko) | 1990-12-26 | 1990-12-26 | 공유 캐쉬 메모리의 어드레스경로 제어회로 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019900021854A KR920010968B1 (ko) | 1990-12-26 | 1990-12-26 | 공유 캐쉬 메모리의 어드레스경로 제어회로 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR920013127A KR920013127A (ko) | 1992-07-28 |
KR920010968B1 true KR920010968B1 (ko) | 1992-12-26 |
Family
ID=19308534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019900021854A KR920010968B1 (ko) | 1990-12-26 | 1990-12-26 | 공유 캐쉬 메모리의 어드레스경로 제어회로 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR920010968B1 (ko) |
-
1990
- 1990-12-26 KR KR1019900021854A patent/KR920010968B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR920013127A (ko) | 1992-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5623632A (en) | System and method for improving multilevel cache performance in a multiprocessing system | |
US5353415A (en) | Method and apparatus for concurrency of bus operations | |
JP3533355B2 (ja) | キャッシュ・メモリ・システム | |
US4586133A (en) | Multilevel controller for a cache memory interface in a multiprocessing system | |
US5274787A (en) | Method of copy-back cache coherence control and tightly coupled multi-processor system with split transfer system bus | |
US5561779A (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
US5355467A (en) | Second level cache controller unit and system | |
US5335335A (en) | Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed | |
EP0667578B1 (en) | Apparatus and method for checking cache coherency with double snoop mechanism | |
US5878268A (en) | Multiprocessing system configured to store coherency state within multiple subnodes of a processing node | |
US20050160239A1 (en) | Method for supporting improved burst transfers on a coherent bus | |
JP3661764B2 (ja) | 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム | |
US5293491A (en) | Data processing system and memory controller for lock semaphore operations | |
WO1998025208A1 (en) | Computer system including multiple snooped, multiple mastered system buses and method for interconnecting said buses | |
US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
US4385351A (en) | Multiprocessor system with apparatus for propagating cache buffer invalidation signals around a circular loop | |
CN101061462B (zh) | 多处理器系统以及其中的排他控制方法 | |
US7089376B2 (en) | Reducing snoop response time for snoopers without copies of requested data via snoop filtering | |
US6601145B2 (en) | Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls | |
KR100322223B1 (ko) | 대기행렬및스누프테이블을갖는메모리제어기 | |
EP0681241A1 (en) | Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system | |
WO1997004392A1 (en) | Shared cache memory device | |
KR920010968B1 (ko) | 공유 캐쉬 메모리의 어드레스경로 제어회로 | |
US4594658A (en) | Hierarchy of control stores for overlapped data transmission | |
KR20010015008A (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: 19980929 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |