KR100248630B1 - The device for snoop phase control of local bus - Google Patents
The device for snoop phase control of local bus Download PDFInfo
- Publication number
- KR100248630B1 KR100248630B1 KR1019970008647A KR19970008647A KR100248630B1 KR 100248630 B1 KR100248630 B1 KR 100248630B1 KR 1019970008647 A KR1019970008647 A KR 1019970008647A KR 19970008647 A KR19970008647 A KR 19970008647A KR 100248630 B1 KR100248630 B1 KR 100248630B1
- Authority
- KR
- South Korea
- Prior art keywords
- snoop
- signal
- local bus
- state
- output
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus
- G06F13/4217—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus with synchronous protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/12—Synchronisation of different clock signals provided by a plurality of clock generators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/409—Mechanical coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 로컬버스의 스누프 제어장치에 관한 것이다.The present invention relates to a snoop control device of a local bus.
종래의 CPU 스누프 단계 제어장치는 인텔사(INTEL Co.)의 펜티움 프로세서 CPU를 포함한 인텔 칩세트(Intel's Chipset Module)를 사용한 멀티 프로세싱에 적용될뿐, 펜티움 프로 프로세서(P6)를 CPU로 사용할 때에는 호환되지 않는 문제점이 있었다.The conventional CPU snoop step controller is only applicable to multiprocessing using Intel's Chipset Module, including Pentium processor CPU from INTEL Co., but not compatible when using the Pentium Pro processor (P6) as a CPU. There was a problem.
따라서 본 발명은 다수개의 프로세서가 연결된 CPU 로컬버스를 통해 어드레스 스트로브(address strobe) 신호가 구동됨에 따라 스누프 응답단계를 조사하여 해당 상태값을 출력하고, 이와 같은 상태값과 사이클 어드레스의 접근 영역을 검지한 신호와 시스템 버스로부터의 스누프 요청신호와 시스템버스의 스누프 응답 및 스누프 단계 완료신호를 각각 조합하여 스누프 제어신호를 출력함으로써, 시스템 버스 상에서 캐시 일관성을 조사할 때까지 로컬버스의 스누프 단계를 지연시키도록 하는 로컬버스의 스누프 단계 제어장치를 제공함에 목적이 있다.Therefore, the present invention outputs a corresponding state value by examining a snoop response step as an address strobe signal is driven through a CPU local bus to which a plurality of processors are connected, and outputs a corresponding state value and an access area of such a state value and a cycle address. By combining the detected signal with the snoop request signal from the system bus, the snoop response from the system bus, and the snoop step completion signal, the snoop control signal is outputted. It is an object of the present invention to provide a snoop step control device of a local bus to delay the snoop step.
Description
본 발명의 목적은 다수개의 프로세서가 연결된 CPU 로컬버스를 통해 어드레스 스트로브(adress strobe) 신호가 구동됨에 따라 스누프 응답단계를 조사하여 해당 상태값을 출력하고, 이와 같은 상태값과 사이클 어드레스의 접근 영역을 검지한 신호와 시스템 버스로부터의 스누프 요청신호와 시스템버스의 스누프 응답 및 스누프 단계 완료신호를 각각 조합하여 스누프 제어신호를 출력함으로써, 시스템 버스 상에서 캐시 일관성을 조사할 때까지 로컬버스의 스누프 단계를 지연시키도록 하는 로컬버스의 스누프 단계 제어장치를 제공함에 있다.An object of the present invention is to examine the snoop response step as the address strobe signal is driven through a CPU local bus to which a plurality of processors are connected and output a corresponding state value, and the access area of such a state value and a cycle address. The local bus until the cache consistency is checked on the system bus by outputting the snoop control signal by combining the detected signal with the snoop request signal from the system bus, the snoop response from the system bus, and the snoop step completion signal. It is to provide a snoop step control device of the local bus to delay the snoop step of.
본 발명은 씨피유(CPU) 로컬버스의 스누프 단계(Snoop Phase) 제어에 관한 것으로서, 특히 별도의 시스템 버스를 가지는 시스템에서 시스템 버스 상의 캐시 일관성을 조사할 때까지 로컬버스의 스누프 단계를 지연시키도록 하는 로컬버스의 스누프 단계 제어장치에 관한 것이다.The present invention relates to the snoop phase control of a CPU local bus. In particular, in a system having a separate system bus, the snoop phase of the local bus is delayed until the cache coherency on the system bus is examined. A snoop step control device of a local bus.
종래의 펜티움(Pentium) CPU의 스누프 단계 제어장치는 도 1에 도시된 바와 같이, 펜티움 CPU(11)와, 외부 캐시 메모리 및 캐시 메모리 제어부(13)를 포함한 칩세트 모듈(10)과; 상기 칩세트 모듈(10)의 신호를 처리하고 적절한 응답신호를 발생시키는 칩세트 인터페이스부(20)와; 상기 칩세트 인터페이스부(20)로부터의 저장된 사이클 어드레스(Address)를 디코딩하여 현재 사이클이 어느 어드레스 영역을 접근하는가를 조사한 결과(smem)를 상기 칩세트 인터페이스부(20)로 송출하는 어드레스 디코더(30)와; 상기 시스템 버스(System Bus)로부터의 접근을 제어하여 상기 칩세트 인터페이스부(20)에 전송하는 시스템 버스 제어부(40)로 구성된다.As shown in FIG. 1, a snoop stage control apparatus of a conventional Pentium CPU includes a
이와 같이 구성된 종래 기술의 작용에 대해 설명하면 다음과 같다.Referring to the operation of the prior art configured as described above is as follows.
칩세트 모듈(10)에서 원하는 데이터가 없을 때, 즉 캐시 미스(Cache Miss)가 발생할 때에는 원하는 데이터 요청이 칩세트 모듈(10) 외부로 발생된다. 또한 이러한 요청 사이클의 어드레스를 칩세트 인터페이스부(20)에서 저장한다. 저장된 어드레스를 어드레스 디코더(30)에서 디코딩하여 접근 어드레스가 시스템 메모리(도면에 미도시)일 경우 시스템 버스 제어부(40)에서 시스템 버스를 통하여 시스템 메모리를 접근한다.When there is no desired data in the
시스템 버스 상에서 캐시 일관성 조사가 끝나면 시스템 버스 제어부(40)에서는 'snrdy' 신호가 하이(high)로 발생하며 이때 'shared' 값은 결과값에 따라 하이 또는 로우(low)신호를 출력한다. 즉, 해당 사이클의 캐시 태그 상태값이 '공유(shared)' 상태로 되어야 할 때에는 'shared' 신호가 하이로 구동된다. 이는 시스템 버스 상에서 두 개 이상의 캐시 메모리에 해당 데이터가 유효하게 저장되어 있음을 나타낸다.When the cache coherency check is completed on the system bus, the
시스템 버스 제어부(40)에서 시스템 버스상의 스누프 응답이 끝나면 'snrdy'가 하이로 구동되며, 칩세트 인터페이스부(20)의 'snrdy'가 하이로 구동될 때 'swend_' 신호는 로우로 구동한다. 이때의 메모리 라이트백/라이트스로우(write-back/write-through : 이하 'mwb/wt_'라 약칭함)값은 시스템 버스 제어기에서 구동되는 'shared' 값에 따라 좌우되며, 'drctm_'의 값은 해당 사이클이 쓰기를 위한 읽기 사이클일 때 로우로 구동되며, 그 외의 경우는 하이로 구동된다. 'shared'값이 하이이면 'mwb/wt_'의 값은 로우로 구동된다.When the snoop response on the system bus is completed in the
종래 기술에 의한 CPU 스누프 단계 제어장치는 펜티움 프로세서 CPU를 포함한 인텔 칩세트를 사용한 멀티 프로세싱에 적용될 뿐, 펜티움 프로 프로세서(P6)를 CPU로 사용할 때에는 호환되지 않는 문제점이 있었다.The prior art CPU snoop step controller is only applied to multi-processing using the Intel chipset including the Pentium processor CPU, there was a problem incompatible when using the Pentium Pro processor (P6) as a CPU.
따라서 본 발명의 목적은 상기한 종래 기술의 문제점을 개선하고자 하여 다수개의 프로세서가 연결된 CPU 로컬버스를 통해 어드레스 스트로브(adress strobe) 신호가 구동됨에 따라 스누프 응답단계를 조사하여 해당 상태값을 출력하고, 이와 같은 상태값과 사이클 어드레스의 접근 영역을 검지한 신호와 시스템 버스로부터의 스누프 요청신호와 시스템버스의 스누프 응답 및 스누프 단계 완료신호를 각각 조합하여 스누프 제어신호를 출력함으로써, 시스템 버스 상에서 캐시 일관성을 조사할 때까지 로컬버스의 스누프 단계를 지연시키도록 하는 로컬버스의 스누프 단계 제어장치를 제공함에 있다.Accordingly, an object of the present invention is to investigate the snoop response step as the address strobe signal is driven through a CPU local bus to which a plurality of processors are connected in order to improve the problems of the prior art, and output a corresponding state value. By outputting the snoop control signal by combining the signal of detecting the state value and the cycle address access area, the snoop request signal from the system bus, the snoop response of the system bus and the snoop step completion signal, respectively, It is to provide a snoop step control device of a local bus that delays the snoop step of a local bus until it checks cache coherency on the bus.
도 1은 종래 기술에 의한 로컬버스의 스누프 단계 제어장치의 블록도.1 is a block diagram of a snoop step control apparatus for a local bus according to the prior art.
도 2는 본 발명에 따른 로컬버스의 스누프 단계 제어장치의 블록 구성도.2 is a block diagram of a snoop step control apparatus for a local bus according to the present invention;
도 3은 도 2에서 로컬버스 인터페이스부의 상세 회로 구성도.3 is a detailed circuit diagram illustrating a local bus interface unit in FIG. 2;
도 4는 도 2의 상태 천이부에서 구동되는 상태 천이도.4 is a state transition diagram driven in the state transition portion of FIG.
도 5는 도 2에서 조합부의 입출력 신호의 상세도.FIG. 5 is a detailed view of input / output signals of the combining unit in FIG. 2. FIG.
< 도면의 주요부분에 대한 부호의 설명 ><Explanation of symbols for the main parts of the drawings>
110 : 로컬버스 인터페이스부110: local bus interface unit
111 ∼ 117 : 제 1 내지 제 7 플립플롭111-117: 1st-7th flip flops
120 : 어드레스 디코더130 : 상태 천이부120: address decoder 130: state transition unit
140 : 스누프 요청부150 : 시스템 버스 제어부140: snoop request unit 150: system bus control unit
160 : 스누프 제어부161 : 조합부160: snoop control unit 161: combination unit
162 : 플립플롭163 : 버퍼162: flip-flop 163: buffer
상기한 본 발명의 목적을 달성하기 위한 로컬버스의 스누프 단계 제어장치는 다수개의 프로세서가 연결된 로컬버스에서 구동되는 트랜잭션 신호를 일정시간 지연 출력하는 로컬버스 인터페이스수단과; 상기 로컬버스 인터페이스수단으로부터 출력되는 어드레스 스트로브 신호가 구동에 따라 스누프 응답단계를 조사하여 해당 상태값을 출력하는 상태 천이수단과; 상기 로컬버스 인터페이스수단에서 처리된 로컬버스의 구동신호와, 상기 상태 천이수단으로부터 출력된 상태값과, 사이클 어드레스의 접근 영역을 검지한 결과신호와, 시스템 버스로부터의 스누프 요청신호와, 시스템 버스의 스누프 응답 및 스누프 단계 완료신호를 각각 조합하여 로컬버스의 스누프 단계를 제어하는 스누프 제어수단으로 이루어짐을 특징으로 한다.The snoop step control apparatus of the local bus for achieving the above object of the present invention includes a local bus interface means for outputting a delay for a predetermined time a transaction signal driven on a local bus to which a plurality of processors are connected; State transition means for investigating a snoop response step as the address strobe signal output from the local bus interface means is driven and outputting a corresponding state value; A drive signal of a local bus processed by the local bus interface means, a state value output from the state transition means, a result signal of detecting an access area of a cycle address, a snoop request signal from a system bus, and a system bus And a snoop control means for controlling the snoop phase of the local bus by combining the snoop response and the snoop phase completion signal, respectively.
여기서, 로컬버스 인터페이스수단은 로컬버스 어드레스 스트로브 신호를 로컬버스 클럭에 동기시켜 일정주기 지연 출력하도록 직렬 구성된 제 1 내지 제 3 플립플롭과; 상기 로컬버스 클럭에 동기시켜 로컬버스의 스누프 히트 신호를 일정주기 래치하여 출력하는 제 4 플립플롭과; 상기 로컬버스 클럭에 동기시켜 스누프 히트 갱신신호를 일정주기 래치하여 출력하는 제 5 플립플롭과; 상기 로컬버스 클럭에 동기시켜 CPU 리세트 상태신호를 일정주기 래치하여 리세트 신호를 출력하는 제 6 플립플롭과; 상기 제 2 플립플롭의 출력값에 의해 인에이블(enable)되고, 로컬버스의 어드레스를 일정주기 래치하여 출력하는 제 7 플립플롭으로 이루어짐을 특징으로 한다.Here, the local bus interface means includes: first to third flip-flops serially configured to output a predetermined period delay in synchronization with the local bus address strobe signal to the local bus clock; A fourth flip-flop that latches and outputs a snoop hit signal of a local bus in synchronization with the local bus clock; A fifth flip-flop configured to latch and output a snoop hit update signal by a predetermined period in synchronization with the local bus clock; A sixth flip-flop configured to output a reset signal by latching a CPU reset state signal for a predetermined period in synchronization with the local bus clock; And a seventh flip-flop that is enabled by the output value of the second flip-flop and outputs a latched address of the local bus at a predetermined period.
또한 상기 상태 천이수단은 대기상태에서 어드레스 스트로브신호가 액트브될 경우 지연상태로 천이한 후 다음 클럭 주기에서 더미상태로 천이하고, 상기 더미상태에서 스누프 단계가 완료된 경우 스누프 단계의 지연여부를 검지하는 제 1, 제 2 검지상태로 천이하고, 상기 제 2 검지상태에서 스누프 히트 및 스누프 히트 갱신신호가 인액티브(Inactive)될 경우 대기상태로 천이함을 특징으로 한다.In addition, the state transition means transitions to a delay state when the address strobe signal is activated in the standby state, then transitions to the dummy state in the next clock cycle, and delays the snoop phase when the snoop phase is completed in the dummy state. Transition to the first and second detection state to be detected, and transitions to the standby state when the snoop hit and the snoop hit update signal are inactive in the second detection state.
또한 상기 스누프 제어수단은 상기 상태 천이수단으로부터의 상태값과, 어드레스 디코더로부터의 저장된 사이클 어드레스의 접근 영역을 검지한 결과신호와, 스누프 요청부로부터 출력된 시스템 버스의 스누프 요청신호와, 시스템 버스 제어부로부터 출력된 시스템 버스의 스누프 응답완료 및 캐시 태그 상태값을 조합하여 로컬버스 스누프 단계 지연신호를 발생하는 조합수단과; 상기 조합수단에서 출력된 값을 로컬버스 클럭에 따라 일정주기 래치하는 플립플롭과; 상기 플립플롭에서 출력된 신호를 버퍼링하여 로컬버스로 스누프 제어신호를 출력하는 버퍼로 이루어짐을 특징으로 한다.The snoop control means may further include a state value from the state transition means, a result signal of detecting an access area of the stored cycle address from the address decoder, a snoop request signal of the system bus output from the snoop request unit, Combining means for generating a local bus snoop step delay signal by combining a snoop response completion and a cache tag state value of the system bus outputted from the system bus controller; A flip-flop which latches a value output from the combining means in a predetermined period according to a local bus clock; And a buffer for buffering the signal output from the flip-flop and outputting a snoop control signal to the local bus.
또한 상기 조합수단은 로컬버스로 스누프 요청 사이클을 구동하기 시작하여 스누프 요청 사이클이 완료될 때까지 스누프 히트 및 스누프 히트 갱신신호(hitip_, hitmip_)를 인액티브시키고; 스누프 요청 사이클이 완료되고, 현재 사이클 어드레스가 캐시 가능한 어드레스 영역에 속하지 않을 경우 스누프 히트신호를 액티브시키고; 어드레스 스트로브 신호가 액티브될 경우 스누프 히트 및 스누프 히트 갱신신호를 액티브시키고; 스누프 단계가 완료된 경우 스누프 히트 갱신신호를 인액티브시키고; 적어도 두 개이상의 캐시에서 해당 데이터의 공유상태에 있을 경우 스누프 히트 갱신신호를 인액티브시키고; 상기 제 4, 제 5 플립플립으로부터 출력된 스누프 히트 및 스누프 히트 갱신신호가 액티브될 경우 해당 스누프 히트 갱신신호를 인액티브시킴을 특징으로 한다.The combining means also starts driving a snoop request cycle on the local bus to inactivate the snoop hit and snoop hit update signals hitip_, hitmip_ until the snoop request cycle is completed; Activate the snoop hit signal if the snoop request cycle is complete and the current cycle address does not belong to the cacheable address area; Activate the snoop hit and snoop hit update signals when the address strobe signal is activated; Inactive the snoop hit update signal when the snoop step is complete; Inactive the snoop hit update signal when the data is in the shared state in at least two caches; The snoop hit update signal is inactive when the snoop hit and the snoop hit update signals outputted from the fourth and fifth flip flips are activated.
이하, 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 2는 본 발명의 실시예에 따른 로컬버스의 스누프 단계 제어장치의 블록도로서, 이에 도시된 바와 같이 다수개의 프로세서(도면에 미도시)가 연결된 로컬버스(CPU 로컬버스)에서 구동되는 신호(ads_, bclk, hit_, hitm_, p6rstp_, a[35:3]_)를 각각 래치하여 출력하는 로컬버스 인터페이스부(110)와; 상기 로컬버스 인터페이스부(110)로부터 저장된 사이클 어드레스(a[35:3]_)를 디코딩하여 어느 어드레스 영역을 접근하는가를 검색하는 어드레스 디코더(120)와; 상기 로컬버스 인터페이스부(110)에 저장된 값에 따라 해당 상태값(dest[2:0])을 출력하는 상태 천이부(130)와; 시스템 버스상의 트랜잭션을 스누프 하여 상기 로컬버스를 통해 스누프 요청을 수행하는 스누프 요청부(140)와; 상기 시스템 버스의 접근을 제어함과 아울러 시스템 버스상의 해당 스누프 응답 완료(snrdy) 및 캐시 태그 상태값(shared 등)을 출력하는 시스템 제어부(150)와; 상기 상태 천이부(130), 상기 로컬버스 인터페이스부(110), 상기 어드레스 디코더(120), 스누프 요청부(150) 및 시스템 버스 제어부(160)에서 출력된 값을 각각 조합하여 로컬버스의 스누프 단계를 제어하는 스누프 제어부(140)로 구성된다.FIG. 2 is a block diagram of a snoop step control apparatus for a local bus according to an exemplary embodiment of the present invention, and as shown therein, a signal driven on a local bus (CPU local bus) to which a plurality of processors (not shown) are connected. a
여기서, 로컬버스 인터페이스부(110)는 도 3에 도시된 바와 같이 로컬버스 어드레스 스트로브 신호(ads_ : Address Strobe signal)를 로컬버스 클럭(bclk)에 동기시켜 일정주기 지연 출력(adsndd_)하도록 직렬 구성된 제 1 내지 제 3 플립플롭(111∼112)과; 상기 로컬버스 클럭(bclk)에 동기 시켜 로컬버스의 스누프 히트 신호(hit_ : Snoop Hit signal)를 일정주기 래치하여 출력(hitn_)하는 제 4 플립플롭(114)과; 상기 로컬버스 클럭(bclk)에 동기시켜 스누프 히트 갱신신호(hitm_ : snoop hit modified signal)를 일정주기 래치하여 출력(hitmn_)하는 제 5 플립플롭과; 상기 로컬버스 클럭(bclk)에 동기되어 입력되는 CPU 리세트 신호(p6rstp_)를 일정주기 래치하여 로컬버스로 리세트신호(reset_)를 출력하는 제 6 플립플롭(116)과; 상기 제 1 플립플롭(111)의 출력값에 의해 인에이블(ENA : Clock Enable))되고, 로컬버스의 어드레스(a[35:3]_)를 일정주기 래치하여 출력(addr[35:3])하는 제 7 플립플롭(117)으로 구성된다.Here, as shown in FIG. 3, the local
또한 상기 상태 천이부(130)는 도 4에 도시된 바와 같이, 대기상태(dest[2:0] = IDLED)에서 상기 제 3 플립플롭(113)에서 출력되는 어드레스 스트로브신호(adsndd_)가 액트브(Low)될 경우 지연상태(dest[2:0] = DELAYD)로 천이한 후 다음 클럭 주기에서 더미상태(dest[2:0] = DUMMYD)로 천이하고, 상기 더미상태(DUMMYD)에서 스누프 단계가 완료된 경우(snrdy = High) 스누프 단계의 지연여부를 검지하는 제 1, 제 2 검지상태(dest[2:0] = CHK0D)(dest[2:0] = CHK1D)로 천이하고, 상기 제 2 검지상태(CHK1D)에서 스누프 히트 또는 스누프 히트 갱신신호가 인액티브(hitn_ = High)(hitmn_ = High)될 경우 상기 대기상태(IDLED)로 천이하도록 구성한다.In addition, as shown in FIG. 4, in the
또한 상기 스누프 제어부(160)는 상기 상태 천이부(130)로부터의 상태값(dest[2:0])과, 상기 어드레스 디코더(120)로부터 사이클 어드레스의 접근 영역을 검지한 결과신호(smem)와, 상기 스누프 요청부(140)로부터 출력된 시스템 버스의 스누프 요청신호(snon)와, 상기 시스템 버스 제어부(150)로부터 출력된 시스템 버스의 스누프 응답완료 및 캐시 태그 상태값(snrdy)(shared)을 조합하여 로컬버스 스누프 단계 지연신호(hitip_)(hitmip_)를 발생하는 조합부(141)와; 상기 조합부(141)에서 출력된 값을 로컬버스 클럭(bclk)에 따라 일정주기 래치하여 출력(hiti_)(hitmi_)하는 플립플롭(162)과; 상기 플립플롭(162)에서 출력된 신호를 버퍼링하여 로컬버스로 스누프 지연신호(hit_)(hitmi_)를 출력하는 버퍼(GTL+ Buffer)(163)로 구성된다.In addition, the
또한 상기 조합부(160)는 도 5에 도시된 바와 같이, 로컬버스로 스누프 요청 사이클을 구동하기 시작하여 스누프 요청 사이클이 완료될 때까지(snon = High) 스누프 히트 및 스누프 히트 갱신신호(hitip_, hitmip_)를 인액티브(High)시키고; 상기 스누프 요청부(140)에서 스누프 요청 사이클의 완료신호(snon = Low)가 출력되고, 상기 어드레스 디코더(120)로부터 출력된 'smem' 신호가 하이(현재 사이클 어드레스가 캐시 가능한 어드레스 영역에 속하지 않을 경우)로 출력될 경우 스누프 히트신호를 액티브(hitip_ = Low)시키고; 상기 로컬버스 인터페이스부(110)로부터 출력된 어드레스 스트로브 신호(adsndd_)가 액티브(Low)될 경우 스누프 히트 및 히트 갱신신호를 액티브시키고; 스누프 단계가 완료된 경우 스누프 히트 갱신신호를 인액티브(hitmip_ = High)시키고; 적어도 두 개이상의 캐시에서 해당 데이터의 공유상태에 있을 경우 스누프 히트 갱신신호를 인액티브(hitmip_ = High)시키고; 상기 제 4, 제 5 플립플립(114)(115)으로부터 출력된 스누프 히트 및 스누프 히트 갱신신호가 액티브(hitn_ = Low)(hitmn_ = Low)될 경우 해당 스누프 히트 갱신신호를 인액티브(hitmip_)시키도록 조합회로를 구성한다.In addition, as shown in FIG. 5, the
이와 같이 구성된 본 발명의 실시예에 따른 로컬버스의 스누프 단계 제어장치의 작용을 도 2 내지 도 5를 참조하여 상세히 설명하면 다음과 같다.The operation of the snoop step control device of the local bus according to the embodiment of the present invention configured as described above will be described in detail with reference to FIGS. 2 to 5.
먼저 본 발명은 도 2에 도시된 바와 같이 로컬버스는 최대 4개의 펜티움 프로(P6) CPU가 연결될 수 있다.First, as shown in FIG. 2, the local bus may connect up to four Pentium Pro CPUs.
이와 같은 로컬버스 상에서 구동되는 각 신호는 로컬버스 인터페이스부(110)에서 일시 저장하고, 필요한 블록에 해당 신호를 제공한다. 특히, 현재 진행중인 사이클의 어드레스는 클럭 인에이블 기능이 있는 디 플립플롭(D Flip Flop)을 사용하여 저장한다.Each signal driven on the local bus is temporarily stored in the local
로컬버스 인터페이스부(110)에 대한 상세 회로는 도 3에 도시되어 있으며, 이를 참조하여 보다 상세히 설명하면 다음과 같다.A detailed circuit for the local
각 플립플롭(111∼117)은 동일한 버스 클럭(bclk)을 사용하며, 로컬버스로부터의 어드레스 스트로브 신호(ads_)는 제 1 내지 제 3 플립플롭(111∼113)을 통해 'adsndd_'신호를 출력한다.Each flip-
또한 'hit_, hitm_'신호는 각각 제 4, 제 5 플립플롭(114)(115)을 통해 해당 'hitn_, hitmn_'신호를 출력한다.In addition, the 'hit_, hitm_' signals output the corresponding 'hitn_, hitmn_' signals through the fourth and fifth flip-
제 6 플립플롭(116)은 입력되는 'p6rstp_'신호를 래치하여 로컬버스의 리세트 신호(reset_)로 제공된다.The sixth flip-
한편 현재 진행중인 사이클 어드레스(a[35:3]_)는 제 7 플립플롭(117)을 통해 'addr[35:3]'을 출력한다. 여기서 제 7 플립플롭(117)의 클럭 인에이블(ENA) 신호는 상기 제 1 플립플롭(111)의 출력신호에 의해 제공된다. 이는 실제로 로컬버스상에서는 사이클 어드레스가 한 클럭 동안에만 구동되기 때문에 이러한 사이클 어드레스 저장장치가 필요하다.On the other hand, the ongoing cycle address a [35: 3] _ outputs 'addr [35: 3]' through the seventh flip-
어드레스 디코더(120)에서는 상기한 제 7 플립플롭(117)으로부터 출력된 사이클 어드레스(addr[35:3])는 디코딩하여 접근 어드레스가 캐시 메모리에 저장될 수 있는(Cacheable) 시스템 메모리의 어드레스 영역에 속하면, 'smem'신호를 하이로 구동한다.In the
상태 천이부(130)는 로컬버스 상에서 어드레스 스트로브 신호인 'ads_'가 로우로 구동된 후 제 3 플립플롭(113)에서 출력된 'adsndd_'신호가 로우로 구동될 경우와 'p6rstp_'신호가 로우로 액티브되어 로컬버스가 리세트될 경우 상태 천이(transition)를 시작하여 해당 상태를 8비트 데이터(dest[2:0])로 출력한다.In the
즉, 도 4는 상태 천이부(130)의 상태 천이도로서, 이에 도시된 바와 같이 대기상태(IDLED)에서 'adsndd_'가 액티브(Low)될 경우 'DELAYD' 상태로 천이한다. 다음 클럭 주기에서 'dest[2:0]' 상태는 'DUMMYD'로 천이하고, 'DUMMYD' 상태에서 스누프 단계가 완료여부에 따라 다음상태 'CHK0D'로 천이한다. 즉, 스누프 단계가 완료되지 않은 경우를 나타내는 'snrdy' 신호가 로우일 경우에는 'DELAYD' 상태로 천이하여 스누프 단계가 완료될 때까지 대기한다.That is, FIG. 4 is a state transition diagram of the
그리고, 'snrdy' 신호가 하이일 때에는 'CHK0D' 상태로 천이한다. 'CHK0D' 및 'CHK1D'의 상태는 스누프 사이클 동안 스누프 단계의 지연여부를 검지하는 상태이다. 즉, 'CHK1D' 상태에서 로컬버스의 제어신호 'hitn_' 및 'hitmn_'가 로우로 유지되는 동안에는 'dest[2:0]'의 상태는 계속 'CHK0D'로 천이하여 스누프 단계를 지연시키고, 'hitn_' 또는 'hitmn_'이 하이상태가 될 경우에는 'IDLED' 상태로 천이한다.When the 'snrdy' signal is high, the signal transitions to the 'CHK0D' state. The states of 'CHK0D' and 'CHK1D' are for detecting whether the snoop phase is delayed during the snoop cycle. That is, while the control signals 'hitn_' and 'hitmn_' of the local bus are kept low in the 'CHK1D' state, the state of 'dest [2: 0]' continuously transitions to 'CHK0D' to delay the snoop phase. When 'hitn_' or 'hitmn_' becomes high, the state transitions to 'IDLED'.
이와 같이 상태 천이부(130)에서 출력된 'dest[2:0]'신호가 'DUMMYD' 상태일 때 시스템 버스 상에서 해당 사이클의 스누프 응답이 종료됐는가를 검지한다. 만약 시스템 버스 상에서 해당 사이클의 스누프 응답이 종료됐다면, 시스템 버스 제어부(150)에서는 'snrdy' 신호가 하이로 구동된다.As described above, when the 'dest [2: 0]' signal output from the
또한 시스템 버스 제어부(150)에서는 캐시 태그 상태값인 'shared'를 출력하게 되는데, 이는 시스템 버스의 스누프 응답값에 따라 결정되며, 'shared'값이 하이이면, 해당 사이클의 캐시 태그 상태값이 공유(shared)상태가 된다. 즉, 두 개 이상의 캐시 메모리에서 해당 데이터를 공유(함께 저장함)하고 있게 된다.In addition, the
한편, 스누프 요청부(140)에서는 시스템 버스상의 트랜잭션을 스누프하여 필요에 따라 로컬버스 상에 수누프 요청 사이클을 발생시킬 수 있다. 이때 스누프 요청부(130)에서 로컬버스로 스누프 요청 사이클을 구동하기 시작할 때부터 스누프 요청 사이클이 끝날 때까지 'snon'신호는 하이로 구동된다.Meanwhile, the snoop
또한 상기 'snon' 신호는 로컬버스상의 트랜잭션이 시스템 메모리를 접근하는 어드레스를 가진다 할지라도 스누프 요청부(130)에 의한 스누프 요청 사이클이라면 시스템 버스를 접근하지 않는다. 단, 스누프에 의한 라이트백(Write-back) 사이클이 발생하면 이 사이클은 시스템 버스 상에서 수행된다.In addition, the 'snon' signal does not approach the system bus if the snoop request cycle by the snoop
이와 같이 상기 로컬버스 인터페이스부(110)로부터 출력된 'adsndd_', 'hitn_', 'hitmn_' 신호와, 어드레스 디코더(120)로부터 출력된 'smem' 신호와, 상태 천이부(130)로부터 출력된 'dest[2:0]'과, 상기 스누프 요청부(140)로부터 출력된 'snon' 신호와, 상기 시스템 버스 제어부(150)로부터 출력된 'snrdy', 'shared' 신호를 조합논리에 따라 조합부(141)에서 조합하여 스누프 히트 및 스누프 히트 갱신신호(hitip_, hitmip_)를 발생한다.As such, the 'adsndd_', 'hitn_', and 'hitmn_' signals output from the local
도 5는 상기한 조합부(141)에 입력되는 각 신호를 조합하여 스누프 제어신호를 발생하는 신호 입출력도이다.5 is a signal input / output diagram for generating a snoop control signal by combining the signals input to the combination unit 141 described above.
또한 다음 표 1은 조합부(141)에 입력된 각 신호를 조합하여 스누프 제어신호를 출력하는 진리표로서, 이를 참조하여 보다 상세히 설명하면 다음과 같다.In addition, Table 1 is a truth table for outputting a snoop control signal by combining the signals input to the combination unit 141, which will be described in more detail with reference to the following.
[표 1]TABLE 1
여기서, "X"는 'Don't Care' 상태이다.Here, "X" is a 'Don't Care' state.
즉, 스누프 요청부(140)에서 출력된 'snon' 신호는 로컬버스의 스누프 요청 사이클을 구동하기 시작할 때부터 스누프 요청 사이클이 완료될 때까지 하이를 유지하여 조합부(160)의 출력신호 'hitip_' 및 'hitmip_' 신호를 하이로 인액티브시킨다. 스누프 요청 사이클이 완료되어 'snon' 신호가 로우를 유지하게 되면 조합부(140)에 인가되는 각각의 제어신호에 의해서 'hitip_' 및 'hitmip_' 신호가 발생된다.That is, the 'snon' signal output from the snoop
먼저, 로컬버스 인터페이스부(110)의 제 3 플립플롭(113)에서 출력된 'adsndd_' 신호가 로우일 경우에는 상태 천이부(130)의 'dest[2:0]'이 'DELAYD' 상태값을 출력하기 때문에, 즉 스누프 단계가 지연되고 있으므로 조합부(141)의 출력신호 'hitip_' 및 'hitmip_'는 로우로 액티브된다. 이때, 'hitip_' 신호는 스누프 요청부(140)로부터 출력된 'snon' 신호가 로우이고, 어드레스 디코더(120)로부터의 'smem' 신호가 하이일 경우에는 출력신호 'hitip_'는 다른 신호와 관계없이 항상 로우로 액티브된다.First, when the 'adsndd_' signal output from the third flip-
스누프 단계가 완료되지 않은 경우를 나타내는 제어신호 'snrdy' 신호가 로우일 경우에는 'hitmip_' 신호가 로우로 액티브되고, 스누프 단계가 완료된 경우, 즉 시스템 버스 제어부(150)로부터 출력된 'snrdy'가 하이인 경우에는 'hitmip_' 신호는 하이로 인액티브된다.When the control signal 'snrdy' signal indicating that the snoop phase is not completed is low, the 'hitmip_' signal is activated low, and when the snoop phase is completed, that is, 'snrdy' output from the
또한, 'dest[2:0]'이 'CHK1D' 상태를 갖는 경우에는 제 4, 제 5 플립플롭(114)(115)에서 각각 출력된 'hitn_' 및 'hitmn_' 신호가 로우로 구동될 경우 'hitmip_' 신호는 하이로 인액티브된다.In addition, when 'dest [2: 0]' has a 'CHK1D' state, when 'hitn_' and 'hitmn_' signals output from the fourth and fifth flip-
이와 같이 조합부(161)에서 발생된 'hitip_' 및 'hitmip_' 신호는 플립플롭(162)과 버퍼(GTL+ Buffer)(163)를 통해 로컬버스로 제어신호 'hit_' 및 'hitm_' 신호가 구동된다.The 'hitip_' and 'hitmip_' signals generated by the
본 발명은 이상에서 설명한 바와 같이 로컬버스의 트랜잭션이 스누프 요청 사이클이 아니고, 시스템 메모리에 접근하는 어드레스일 경우 로컬버스상의 스누프 단계를 시스템 버스 상에서 해당 사이클의 스누프 응답이 끝날 때까지 지연시키도록 함으로써, 펜티움 프로(P6)를 CPU로 사용하는 멀티 프로세서의 로컬버스와 시스템 버스 사이의 인터페이스 로직으로 사용할 수 있는 효과가 있다.As described above, the present invention delays the snoop step on the local bus until the snoop response of the corresponding cycle is completed on the system bus when the transaction on the local bus is not a snoop request cycle but an address accessing the system memory. By doing so, the Pentium Pro (P6) can be used as an interface logic between the local bus and the system bus of a multiprocessor using the CPU.
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970008647A KR100248630B1 (en) | 1997-03-14 | 1997-03-14 | The device for snoop phase control of local bus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970008647A KR100248630B1 (en) | 1997-03-14 | 1997-03-14 | The device for snoop phase control of local bus |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980073407A KR19980073407A (en) | 1998-11-05 |
KR100248630B1 true KR100248630B1 (en) | 2000-03-15 |
Family
ID=19499725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970008647A KR100248630B1 (en) | 1997-03-14 | 1997-03-14 | The device for snoop phase control of local bus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100248630B1 (en) |
-
1997
- 1997-03-14 KR KR1019970008647A patent/KR100248630B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19980073407A (en) | 1998-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3787155B2 (en) | Multiple processing cache coherency protocol on local bus | |
US5341487A (en) | Personal computer having memory system with write-through cache and pipelined snoop cycles | |
US5787486A (en) | Bus protocol for locked cycle cache hit | |
JP2717752B2 (en) | Processor | |
US5581727A (en) | Hierarchical cache system flushing scheme based on monitoring and decoding processor bus cycles for flush/clear sequence control | |
US5426765A (en) | Multiprocessor cache abitration | |
US6151658A (en) | Write-buffer FIFO architecture with random access snooping capability | |
US5829027A (en) | Removable processor board having first, second and third level cache system for use in a multiprocessor computer system | |
US5485592A (en) | Write back cache controller method and apparatus for use in a system having a CPU with internal cache memory | |
US5724550A (en) | Using an address pin as a snoop invalidate signal during snoop cycles | |
EP0514050B1 (en) | Control circuit for dual port memory | |
JPH0271344A (en) | Micro-computer-system | |
US5748938A (en) | System and method for maintaining coherency of information transferred between multiple devices | |
KR100248630B1 (en) | The device for snoop phase control of local bus | |
CA2113867C (en) | Method and system for enhanced efficiency of data transfers from memory to multiple processors in a data processing system | |
JP3202943B2 (en) | Processing apparatus and improved apparatus and method for snooping a lookaside cache | |
US5781925A (en) | Method of preventing cache corruption during microprocessor pipelined burst operations | |
JP3964049B2 (en) | Microprocessor | |
US5652846A (en) | Bus deadlock prevention circuit for use with second level cache controller | |
KR100251784B1 (en) | Method and apparatus for providing a readable and writable cache tag memory | |
US6385703B1 (en) | Speculative request pointer advance for fast back-to-back reads | |
KR100433511B1 (en) | Snooping apparatus for cache cohecence | |
JPH07210464A (en) | Method and apparatus for storage of cache | |
KR100258026B1 (en) | Method and apparatus for transaction controlling of multi-processor system | |
KR100258027B1 (en) | The method and apparatus for transaction controlling of multi-processor system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |