KR960012355B1 - Controller for supporting cache-to-cache data transfer in multiprocessor system - Google Patents

Controller for supporting cache-to-cache data transfer in multiprocessor system Download PDF

Info

Publication number
KR960012355B1
KR960012355B1 KR1019940023878A KR19940023878A KR960012355B1 KR 960012355 B1 KR960012355 B1 KR 960012355B1 KR 1019940023878 A KR1019940023878 A KR 1019940023878A KR 19940023878 A KR19940023878 A KR 19940023878A KR 960012355 B1 KR960012355 B1 KR 960012355B1
Authority
KR
South Korea
Prior art keywords
cache
data
bus
driven
transfer
Prior art date
Application number
KR1019940023878A
Other languages
Korean (ko)
Other versions
KR960011722A (en
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 재단법인 한국전자통신연구소
Priority to KR1019940023878A priority Critical patent/KR960012355B1/en
Publication of KR960011722A publication Critical patent/KR960011722A/en
Application granted granted Critical
Publication of KR960012355B1 publication Critical patent/KR960012355B1/en

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
    • 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
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • 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/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/403Error protection encoding, e.g. using parity or ECC codes

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

a cache - to - cache controller(10) controlling the cache - to - cache transfer by generating control signals; a transfer type controller(30) making/inspecting the data transfer type; a bus receiver/driver(50) storing and receiving the signal driven in a pended protocol bus(P-bus); an address/data buffer and parity checker(20) storing the address and data driven in a processor and in a cache memory and checking the parity of the address and the data; and an ID comparator(40) comparing DI with SI driven in the pended protocol bus.

Description

다중프로세서 시스템에서의 캐쉬간 직접 데이타 전송 지원 제어장치Cache-to-Cache Direct Data Transfer Control in Multiprocessor System

제1도는 여러개의 프로세서를 가진 시스템의 구성도.1 is a schematic diagram of a system having multiple processors.

제2도는 캐쉬들간 직접 전송의 데이타를 받는 순서.2 is a sequence of receiving data of direct transmission between caches.

제3도는 캐쉬들간 직접 전송의 데이타를 보내는 순서.3 is a sequence of sending data of direct transfers between caches.

제4도는 본 발명의 상세 구성도.4 is a detailed block diagram of the present invention.

제5도는 본 발명의 제어회로의 상태 흐름도.5 is a state flowchart of a control circuit of the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

P-Bus : 펜디드 프로토콜 버스(Pended Protocol Bus)P-Bus: Pended Protocol Bus

C2CM : 캐쉬간 전송 모듈(Cache-to-Cache Transfer Module)C2CM: Cache-to-Cache Transfer Module

C2C : 캐쉬간 직접 데이타 전송(Cache-to-Cache Data Transfer)C2C: Cache-to-Cache Data Transfer

10 : 캐쉬간 제어기 20 : 버퍼 및 패리티 체커10: inter-cache controller 20: buffer and parity checker

30 : 전송 형태 제어기 40 : ID 비교기30: transmission type controller 40: ID comparator

50 : 버스 수신 및 구동기50: bus receive and driver

본 발명은 여러개의 프로세서 모듈과 여러개의 메모리 모듈이 펜디드 프로토콜(Pended Protocol Bus)로 연결된 시스템에서 캐쉬 메모리와 캐쉬 메모리간의 직접 데이타 전송을 지원하는 장치에 관한 것이다.The present invention relates to an apparatus supporting direct data transfer between a cache memory and a cache memory in a system in which a plurality of processor modules and a plurality of memory modules are connected through a Pended Protocol Bus.

캐쉬 메모리를 가진 다중프로세서 시스템에서는 주 메모리를 공유하기 때문에 한쪽 캐쉬 메모리의 데이타를 다른쪽 캐쉬 메모리로 이동시켜야 하는 경우가 자주 발생한다.In multiprocessor systems with cache memory, the main memory is shared, so it is often necessary to move data from one cache memory to another.

종전에는 이런 경우에 캐쉬 데이타를 일단 주 메모리의 DRAM(Dynamic Random Access Memory)에 옮긴 다음 다시 다른 캐쉬가 그 데이타를 읽어 가도록 하였다.Previously, in this case, the cache data was once moved to the dynamic random access memory (DRAM) in main memory, and then another cache read the data.

이 방법은 시스템 버스를 통해서 두번의 데이타 전송이 일어나야 되고, 또한 캐쉬 메모리에 비해 접근 속도가 3∼5배 정도 느린 DRAM의 쓰기 동작과 읽기 동작이 한번씩 수행되어야 한다.This method requires two data transfers through the system bus and one write and read operation of the DRAM, which is three to five times slower than the cache memory.

펜디드 프로토콜 버스는 다중프로세서 환경인 시스템에서 사용되는 버스다.The pending protocol bus is the bus used in systems with multiprocessor environments.

이것은 하나의 데이타 전송을 요청단계와 응답단계로 나누어 메모리에 접근하는 방식의 버스이다.This is a bus that accesses memory by dividing a data transfer into request and response steps.

이 프로토콜에서는 한 프로세서가 데이타 전송을 위해 메모리에 접근하는 시간 동안 버스를 점유하지 않아, 긴 메모리 접근시간이 버스의 전송 속도에 영향을 주지 않도록 되어 있다.In this protocol, one processor does not occupy the bus for the time to access memory for data transfer, so long memory access times do not affect the transfer speed of the bus.

또한 메모리 접근 요청을 여러개의 프로세서가 중첩하여 보낼 수 있으며, 이에 대한 메모리의 응답 역시 중첩되어 수행된다.In addition, multiple processors can send overlapping memory access requests, and memory responses are also overlapped.

따라서 다중프로세서 환경의 시스템에서는 절대적으로 유리한 버스용 프로토콜이다.Thus, it is an absolutely advantageous protocol for buses in multiprocessor environments.

여러개의 프로세서를 동시에 수행시켜 단일 프로세서에 비해 단위 시간당 보다 많은 작업을 수행시키기 위한 방법으로 제안된 것이 다중프로세서 시스템이다. 다중프로세서 시스템은 단일 공유 메모리를 사용하는 것을 가상하며, 이는 여러개의 프로세서가 공유 메모리의 어떠한 데이타도 동시에 공유하여 사용할 수 있음을 의미한다.A multiprocessor system is proposed as a method for performing more tasks per unit time than a single processor by simultaneously executing multiple processors. Multiprocessor systems virtualize the use of a single shared memory, which means that multiple processors can share and use any data in shared memory at the same time.

따라서 프로세서의 속도와 동일하게 움직이며 데이타를 제공할 수 있는 메모리가 가장 이상적이라고 할 수 있지만 프로세서의 수행 속도 향상에 비해 메모리의 접근 속도 향상은 이에 미치지 못하고 있는 실정이다.Therefore, the memory that can move at the same speed as the processor and provide data is the most ideal, but the access speed of the memory is less than that of the processor.

또한 대량의 데이타를 처리해야 하는 복잡한 문제가 점점 더 컴퓨터의 성능 뿐 아니라 메모리의 증가를 요구하고 있다. 비용면에서, 대량의 기억장치를 구성하는데는 현재까지 DRAM이 가장 유리한 것으로 알려지고 있다.In addition, the complexity of dealing with large amounts of data is increasingly demanding more memory as well as computer performance. In terms of cost, DRAM is known to be the most advantageous to date for the construction of large amounts of memory.

그러나 DRAM은 프로세서의 속도 만큼 빠르지 못하기 때문에 보다 빠른 작업을 처리하기 위해서는 프로세서는 근처에 DRAM보다 빠른 동작속도를 갖는 캐쉬 메모리를 둔다.However, because DRAMs are not as fast as the processor, the processor places cache memory with faster operating speeds than DRAM to handle faster tasks.

간단히 말해서, 캐쉬는 프로세서가 필요로 하는 데이타와 명령어를 저장하는 기억장치이다.In short, a cache is a storage device that stores data and instructions needed by the processor.

캐쉬는 이외에도 DRAM 보다 더 느린 I/O(입출력) 장치를 보상하기 위해서도 자주 사용된다. 캐쉬가 어디에 있든 그 원리는 동일하다.Caches are also often used to compensate for I / O (input and output) devices, which are slower than DRAM. Wherever the cache is, the principle is the same.

대부분의 프로그램과 데이타 처리는 같은 정보나 코드가 계속해서 다시 필요하게 된다는 데이타 반복성과, 한번 사용한 데이타의 어드레스 근처에 있는 정보가 곧 다시 사용될 가능성이 높다는 데이타 지역성의 원리에 기초를 두고 있다.Most programs and data processing are based on the principle of data repeatability, where the same information or code is needed again and again, and data locality, where information near the address of a used data is likely to be reused soon.

유니 프로세서 시스템에서의 캐쉬 구현은 비교적 쉬운편이지만 다중프로세서 캐쉬에서는 상당히 복잡해 진다. 여러가지 문제가 있을 수 있으나 대략 다음의 3가지 정도로 요약할 수 있다.Cache implementations on uniprocessor systems are relatively easy, but multiprocessor caches are quite complex. There may be a variety of problems, but they can be summarized in roughly three ways:

첫째, 다중프로세서의 공유 메모리 캐쉬에 대한 요구는 메모리 분쟁을 야기한다.First, the demand for a shared memory cache from multiple processors causes a memory conflict.

즉, 여러개의 프로세서가 동일한 어드레스의 데이타를 요구하는 경우에는 이에 대한 중재가 요구된다.In other words, if multiple processors require data of the same address, arbitration is required.

둘째, 캐쉬는 메모리의 데이타를 여러개의 캐쉬에 복사본을 가질 수 있는 경우가 발생하며 이런 복사본 데이타를 일관성 있게 유지하는 문제이다.Second, a cache can sometimes have copies of data in multiple caches, and this is a problem of keeping the copy data consistent.

이는 캐쉬를 사용한 다중프로세서 시스템에서 가장 어려운 문제로 남아 있다. 셋째, 공통 버스를 이용하는 다중프로세서의 시스템에서 발생하는 대역폭 문제이다. 다중프로세서 시스템이 커질수록 데이타 통신을 수행하기 위한 시간은 더 늘어난다.This remains the most difficult problem in multiprocessor systems using caches. Third, there is a bandwidth problem in a multiprocessor system using a common bus. The larger the multiprocessor system, the longer the time to perform data communication.

본 발명은 공유 캐쉬 메모리를 사용하는 다중프로세서 시스템에서 발생하는 이러한 문제들을 개선하기 위해 제안된 것으로, 캐쉬간 직접 데이타 전송(cache-to-cache data transfer ; 이하, 'C2C'라 함)을 DRAM은 한번도 읽거나 쓰기를 행하지 않고, 단지 한번의 버스 사용으로 이루어지도록 하는 방법을 제시하여 궁극적으로 전체 시스템 성능을 향상시키는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been proposed to improve these problems in multiprocessor systems using shared cache memory. [0005] Cache-to-cache data transfer (hereinafter referred to as "C2C") can be used in DRAMs. The goal is to improve the overall system performance by presenting a way to use only one bus without reading or writing once.

캐쉬에서 캐쉬로 데이타를 직접 전송하는 방법을 사용하면, 메모리 데이타 복사본을 여러개의 프로세서 전용의 캐쉬에 분산하여 두었을 경우 발생하는 데이타 불일치 문제를 좀 더 간략화시켜 쉽게 해결할 수가 있고, 캐쉬 데이타의 메모리 되쓰기로 인한 공통버스의 빈번한 사용에 따라서 발생되는 버스 병목 현상을 감소시킨다.By using the direct data transfer method from cache to cache, the data inconsistency problem caused by distributing memory data copies in multiple processor-only caches can be simplified and solved easily. Reduces bus bottlenecks caused by frequent use of common buses by writing.

또한, 캐쉬에서 메모리로, 또 메모리에서 캐쉬로 데이타를 이중 전송하는 동안 발생할 수 있는 데이타의 에러를 줄여주는 역할도 한다.It also helps reduce data errors that can occur during dual transfers of data from cache to memory and from memory to cache.

제1도는 이 발명이 적용될 시스템의 전체적인 구성을 나타낸 것이다.1 shows the overall configuration of a system to which the present invention is applied.

이 시스템은 펜디드 프로토콜 버스(이하, 'P-Bus'라 함)에 n+1개의 프로세서 모듈(P0∼Pn)과 메모리 모듈이 연결되어 있다.In this system, n + 1 processor modules (P0 to Pn) and memory modules are connected to a pending protocol bus (hereinafter referred to as 'P-Bus').

본 발명이 적용되는 위치는 각 프로세서 모듈의 내부이며, 제1도에서 굵은 선으로 표시된 사각형의 캐쉬간 전송 모듈(Cache-to-Cache Transfer Module ; 이하, 'C2CM'라 함)에 본 발명의 요지에 해당된다. 프로세서 모듈 P0의 캐쉬 데이타를 프로세서 모듈 P1의 캐쉬로 전송하거나 P1의 캐쉬 데이타를 P0로 전송할 수 있다.The position to which the present invention is applied is the inside of each processor module, and the gist of the present invention is a Cache-to-Cache Transfer Module (hereinafter referred to as 'C2CM') shown in bold in FIG. Corresponds to Cache data of the processor module P0 may be transmitted to the cache of the processor module P1 or cache data of the P1 may be transmitted to the P0.

제2도는 P-Bus상에서 캐쉬들간 직접 데이타 전송을 행할 때, 데이타를 받는 쪽 모듈의 시간진행에 따른 순서를 나타내고 있다.FIG. 2 shows a sequence of time-dependent steps of a module receiving data when performing direct data transfer between caches on a P-Bus.

제3도는 P-Bus상에서 캐쉬들간 직접 데이타 전송을 행할 때, 데이타를 보내는쪽 모듈의 시간 진행에 따른 순서를 나타내고 있다.3 shows a sequence of time-sequences of the module sending data when performing direct data transfer between caches on the P-Bus.

캐쉬 데이타를 전송할 때는 한쪽의 프로세서 모듈을 읽기 전송을 시작하고 읽어가기를 원하는 데이타를 가진 다른쪽의 프로세서 모듈은 쓰기 전송을 시작한다.When transferring cache data, one processor module starts a read transfer, and the other processor module whose data you want to read starts a write transfer.

제2도는 P-Bus상에서 전형적인 읽기진행을 나타내고 있는데, t0에서 프로세서 모듈 P0는 읽기를 원하는 어드레스(ADDR)와 전송형태(Transfer Type ; TT)와 자신의 위치(Source Identification ; SI)를 구동한다. 전송형태(TT)에는 다음과 같은 CRD, EXR 두가지가 있다.FIG. 2 shows a typical read process on the P-Bus. At t0, the processor module P0 drives an address ADDR, a transfer type (TT) and its own location (SI) to be read. There are two types of transmission (TT): CRD and EXR.

CRD는 프로세서가 데이타를 읽어가기 위해 그 어드레스의 데이타를 요구한 경우에 생기는 전송형태이다.CRD is a form of transmission that occurs when a processor requests data at that address to read data.

EXR은 프로세서가 그 어드레스의 데이타에 어떤 값을 써 넣기 위해서 읽어가는 경우에 생기는 전송형태이다. CRD인 경우는 캐쉬 상태가 V(Vaild)나 S(Shared)가 될 수가 있지만, EXR인 경우에는 캐쉬 상태가 D(Dirty)가 된다.EXR is a form of transfer that occurs when a processor reads to write some value to the data at that address. In the case of CRD, the cache state may be V (Vaild) or S (Shared). In the case of EXR, the cache state is D (Dirty).

이 두가지 형태의 전송인 경우에는 다른 캐쉬는 캐쉬간 직접 데이타 전송(C2C)을 할 수가 있다.In the case of these two types of transfers, other caches can perform direct data transfer (C2C) between caches.

t1에서는, 다른 모든 프로세서 모듈들 각각이 프로세서 모듈 P0가 원하는 데이타를 자신이 갖고 있는지를 조사한다. 이때는 어드레스(ADDR)와 전송형태(TT)를 보고 결정한다. 이렇게 조사하는 기간이 P-Bus의 1클럭(Clock)의 주기보다 길면 안된다.At t1, each of all the other processor modules checks whether processor module P0 has the desired data. At this time, the address ADDR and the transmission type TT are determined. This investigation period should not be longer than one clock period of the P-Bus.

t2에서는, 원하는 데이타를 갖고 있는 프로세서 모듈이 자신이 그 데이타를 갖고 있으므로 P-Bus를 통해 그것을 보내 주겠다는 것을 나타내는 ITV 신호를 P-Bus상에 구동한다.At t2, the processor module holding the desired data drives an ITV signal on the P-Bus indicating that it has that data and will send it through the P-Bus.

이때 구동되는 AACK는 t0에서 구동한 ADDR과 TI가 정상적으로 인식되었음을 나타낸다.At this time, the driven AACK indicates that the ADDR and the TI driven at t0 are normally recognized.

만약, 프로세서 모듈 P0가 t2에서 아무도 ITV 신호를 구동하지 않은 것을 확인하면 캐쉬간 직접 데이타 전송(C2C)은 일어나지 않고 메모리가 데이타를 보내줄 것으로 안다. 반면, ITV 신호가 구동되면 다른 프로세서 모듈에서 자신이 원한 데이타를 보내줄 것을 알고 그 데이타가 도착되기를 기다린다.If the processor module P0 confirms that nobody drives the ITV signal at t2, then the direct data transfer (C2C) between caches does not occur and the memory knows to send the data. On the other hand, when the ITV signal is driven, the other processor module knows to send the data it wants and waits for the data to arrive.

t_0에서, 데이타가 구동되면 프로세서 모듈 P0는 DI(Destination Identification)를 자신의 SI(Source Identification)와 비교한다. 비교된 결과가 동일하면 자신의 데이타임을 알고 P0는 그 데이타를 읽어 간다.At t_0, when data is driven, processor module P0 compares DI (Destination Identification) with its SI (Source Identification). If the result is the same, it knows its data and P0 reads it.

t_1에서는, 읽어온 데이타가 에러가 있는지를 판단한다. 이는 데이타 패리티를 가지고 조사한다.At t_1, it is determined whether the read data has an error. It checks with data parity.

t_2에서, 패리티를 조사한 결과 에러가 없는 것으로 판명되면 CDK 신호를 구동하여 데이타를 정상적으로 받았음을 알려 준다. 만약, CDK가 구동되지 않았다면 프로세서 모듈 P0는 캐쉬간 직접 데이타 읽기 전송을 재시도 한다.At t_2, if the parity is checked and there is no error, the CDK signal is driven to indicate that data has been received normally. If the CDK is not running, the processor module P0 retries the direct data read transfer between caches.

제4도는 본 발명에 따른 캐쉬간 전송 모듈(C2CM)의 구성을 나타낸 것이다. 캐쉬간 전송 모듈(C2CM)은 크게 다음과 같이 다섯개의 서브 모듈로 구성된다.4 shows the configuration of an inter-cache transmission module (C2CM) according to the present invention. The inter-cache transmission module (C2CM) is composed of five sub modules as follows.

제4도를 참조하여, 캐쉬간 전송 모듈(C2CM)은 캐쉬간 제어기(Cache-to-Cache Controll ; C2C-CNTR)(10)와, 버퍼 및 패리티 체커(Address/Data Buffer and Parity Checker ; ADB-PC)(20)와, 전송 형태 제어기(Transfer Type Controller ; TT-CNTR)(30)와, ID 비교기(Identity Comparator ; ID-CMP)(40) 및, 버스수신 및 구동기(Bus Receiver/Driver ; B-RD)(50)로 구성된다. 각각의 서브 모듈의 기능은 다음과 같다.Referring to FIG. 4, the Inter-Cache Transmission Module (C2CM) includes a Cache-to-Cache Controll (C2C-CNTR) 10 and an Address / Data Buffer and Parity Checker; PC (20), Transfer Type Controller (TT-CNTR) 30, Identity Comparator (ID-CMP) 40, and Bus Receiver / Driver (B) -RD) 50. The function of each submodule is as follows.

캐쉬간 제어기(C2C-CNTR)(10)는 캐쉬간 전송 모듈(C2CM)의 중심이 되는 부분으로서, 각 서브 모듈을 제어하는 신호를 만들어 낸다. 프로세서에 의해 데이타 읽기나 쓰기가 요청되면 캐쉬간 제어기(10)는 P-Bus를 통해 ADD, TT, SI 신호를 구동하기 위해 버스 수신 및 구동기(B-RD)(50)를 제어하는 신호를 생성한다.The inter-cache controller (C2C-CNTR) 10 is a central portion of the inter-cache transmission module (C2CM), and generates a signal for controlling each submodule. When a data read or write is requested by the processor, the inter-cache controller 10 generates a signal for controlling the bus receiving and driver (B-RD) 50 to drive the ADD, TT, and SI signals through the P-Bus. do.

또한, 프로세서나 P-Bus에 의해 구동되는 데이타와 어드레스를 버퍼 및 패리티 체커(ADB-PC)(20)에 잡아 두기 위한 신호를 구동한다. P-Bus에 구동되는 데이타를 잡기 위해서는 ID 비교기(ID-CMP)(40)의 결과를 이용한다.In addition, a signal for holding data and an address driven by a processor or P-Bus in the buffer and parity checker (ADB-PC) 20 is driven. In order to capture data driven in the P-Bus, the result of the ID comparator (ID-CMP) 40 is used.

캐쉬간 제어기(10)는 이를 위한 제어신호를 생성하기 위해 스테이트 머신을 가지고 있는데, 이에 대해서는 추후 제5도를 참조하여 상세히 설명하겠다.The inter-cache controller 10 has a state machine for generating a control signal for this, which will be described in detail later with reference to FIG.

버퍼 및 패리티 체커(ADB-PC)(20)는 프로세서나 P-Bus에서 구동되는 어드레스와 데이타를 잡아 두는 버퍼로 이루어져 있다. 또한, 어드레스와 데이타의 정상유무를 판단하는 패리티 검사기도 포함한다.The buffer and parity checker (ADB-PC) 20 is composed of a buffer that holds an address and data driven by a processor or a P-Bus. It also includes a parity checker that determines whether the address and data are normal.

전송 형태 제어기(TT-CNTR)(30)는 프로세서가 구동하는 사이클의 형태에 따라 P-Bus 전송을 위한 전송 형태를 생성하고, 또한 P-Bus에서 구동되는 전송 형태를 보고 자신이 그 전송에 참가를 해야 할지를 결정한다.The transmission type controller (TT-CNTR) 30 generates a transmission type for P-Bus transmission according to the type of cycle driven by the processor, and also sees the transmission type driven in the P-Bus and participates in the transmission. Decide if you should.

ID 비교기(ID-CMP)(40)는 자신의 SI와 P-Bus에서 구동된 DI를 비교한다. 이 비교기(40)는 다른 프로세서에 의해 전송되는 데이타가 캐쉬간 전송 모듈(C2CM) 자신이 원하는 것인지를 알 수 있게 한다.The ID comparator (ID-CMP) 40 compares its SI and DI driven in the P-Bus. This comparator 40 allows the data transmitted by the other processor to know if it is desired by the inter-cache transfer module (C2CM) itself.

또 이 비교기(40)는 읽기 전송에서 구동된 SI를 자신의 레지스터에 저장하는 기능도 가지고 있다. 이 기능은 나중에 자신(C2CM)의 데이타를 상대방에 보내줄때 이 SI를 DI로 보내기 위해서 필요하다.The comparator 40 also has a function of storing the SI driven in the read transfer in its register. This function is necessary to send this SI to DI when sending the data of own (C2CM) to the other party later.

버스 수신 및 구동기(B-RD)(50)는 P-Bus에서 구동되는 신호를 잡거나, P-Bus로 신호를 구동하기 위한 소자들로 이루어져 있다. 버스로 신호를 보내거나 버스로의 신호를 잡기 위한 제어 신호를 캐쉬간 제어기(10)가 만들어 낸다. 이 버스 수신 및 구동기(50)가 구동하거나 받아 들이는 신호의 종류는 제4도에 나타나 있는 것과 같이 TT, DI, SI, CDK, A, D 등이 있다.The bus receiver and driver (B-RD) 50 is composed of elements for catching a signal driven in the P-Bus or driving a signal in the P-Bus. The inter-cache controller 10 generates a control signal for sending a signal to the bus or catching a signal to the bus. Types of signals driven or received by the bus receiver and driver 50 include TT, DI, SI, CDK, A, and D as shown in FIG.

제5도는 캐쉬간 제어기(10)의 상태 흐름도를 나타낸 것이다. 제5도에서, #는 논리적 OR를 나타내고, 는 논리적 AND를 나타낸다. 캐쉬간 제어기(10)는 이 상태 흐름도에 따라서 캐쉬간 전송 모듈(C2CM)의 모든 부분들(B-RD, DB-PC)을 제어하는 신호들을 생성한다. 상태 흐름도의 동작은 다음과 같다.5 shows a state flow diagram of the inter-cache controller 10. In FIG. 5, # represents a logical OR, and represents a logical AND. The intercache controller 10 generates signals for controlling all parts B-RD and DB-PC of the intercache transmission module C2CM according to this state flowchart. The operation of the state flow diagram is as follows.

이 상태 흐름도의 기본 클럭은 P-Bus의 기준 클럭(BCLK)을 사용한다.The base clock of this state flow chart uses the reference clock BCLK of the P-Bus.

ㆍIDLE : 프로세서에서 데이타 전송요청(PRQ)이 오면 DALATCH로 상태가 천이된다. 전송요청이 없으면 계속 자신의 상태에 머문다.• IDLE: When the Data Transfer Request (PRQ) is received from the processor, the state transitions to DALATCH. If there is no request for transmission, it stays in its own state.

ㆍDALATCH : 프로세서가 읽기나 쓰기를 수행하기 위해 필요한 신호를 프로세서나 캐쉬 메모리로부터 가져오는 단계이다. 읽기인 경우에는 PCRD나 PEXR이 구동되고 있고, 쓰기인 경우에는 PITW가 구동되고 있다. 읽기이면 CC-PAL를 구동한다. 쓰기이면 CC-PAL을 구동한다. 쓰기인 경우는 다른 프로세서가 자신의 캐쉬에 있는 데이타를 요청하였기 때문에 프로세서는 자신이 가지고 있는 데이타를 내보내는 전송을 수행하는 것이다. 바로 ADDDR로 상태가 천이된다.DALATCH: A step in which the processor gets a signal from the processor or cache memory to perform a read or write operation. In case of reading, PCRD and PEXR are driven, and in case of writing, PITW is driven. If it is read, it drives CC-PAL. If it is a write, it drives CC-PAL. In the case of a write, the processor performs a transfer that sends out its own data because another processor has requested data from its cache. The state transitions directly to ADDDR.

ㆍADDDR : 어드레스를 P-Bus상에 구동되는 상태이다. CRD나 EXR 전송인 경우에는 TT, SI도 같이 구동한다. ITW 전송인 경우에는 TT를 같이 구동한다. PITW가 구동되어 있으면 DDRV로, 그렇지 않으면 AKWAIT으로 상태가 천이된다.• ADDR: The address is driven on the P-Bus. In case of CRD or EXR transmission, TT and SI are also driven. In case of ITW transmission, TT is driven together. If PITW is running, it will transition to DDRV, otherwise to AKWAIT.

ㆍDDRV : 1TW 전송을 하는 경우에는 어드레스를 구동하는 바로 다음 BCLK에 데이타를 전송한다. 이때는 DI도 같이 구동하여 구동되고 있는 데이타가 어디로 보내져야 하는지를 알려준다.• In case of 1TW transmission, data is transferred to BCLK immediately after driving address. In this case, DI is also driven to tell where the driving data should be sent.

ㆍAKWAIT : 어드레스를 구동한 후에 그것이 정상적으로 전송이 되었는지를 다른 프로세서 모듈에서 판단하는데 걸리는 시간이 걸리기 때문에 1BCLK 동안 기다리는 상태이다.AKWAIT: Waits for 1BCLK because it takes time for another processor module to determine if it has been successfully sent after driving the address.

ㆍADDCHK : 어드레스 전송의 결과를 판단하는 상태이다. 결과가 에러로 판단되면 다시 ADDR 상태로 천이되고, 그렇지 않고 CRD나 EXR이면 DWAIT으로, ITW면 CDKWAIT으로 상태가 천이된다.ADDCHK: This is a state for judging the result of address transmission. If the result is judged to be an error, it is transitioned back to ADDR state, otherwise it is transitioned to DWAIT if CRD or EXR, and to CDKWAIT if ITW.

ㆍCDKCHK : 데이타 전송의 결과를 판단한다. CDK가 구동되어 있으면, 정상적으로 ITW 전송을 완료하고 CDONE를 구동한다. 그렇지 않으면 ITW 전송을 재시도하기 위해서 ADDRV 상태로 천이한다.CDKCHK: Determine the result of data transfer. If the CDK is running, complete the ITW transfer normally and start the CDONE. Otherwise it transitions to ADDRV state to retry the ITW transmission.

ㆍDWAIT : 요청한 데이타가 전송되어 오기를 기다리는 상태, 이때 B-RD는 P-Bus상에서 구동되는 데이타와 DI를 매 BCLK마다 계속해서 래치한다. B-RD는 B-DI를 ID-CMP에 제공하여 비교하게 된다. C2C-CNTR은 ID-CMP의 MYID가 구동되면 자신의 데이타가 도착한 것이므로 CC-BDL을 구동하고 DCHK 상태로 천이한다.• DWAIT: Waiting for the requested data to be sent. At this time, the B-RD continuously latches data and DI driven on the P-Bus every BCLK. The B-RD compares the B-DI by providing it to the ID-CMP. The C2C-CNTR drives the CC-BDL and transitions to the DCHK state because its data has arrived when the ID-CMP MYID is driven.

ㆍDCHK : 전송되어온 데이타를 검사하는 상태, 데이터와 함께 구동되는 데이타 패리티를 가지고 이상 유무를 판단한다. ADB-PC가 조사한 데이터 검사의 결과가 이상이 있으면 ADDDR로 상태가 천이되어 재시도 한다. 그렇지 않고 DPOK가 구동되면 CDKDR로 상태가 천이된다.ㆍ DCHK: Checks the status of the data with the status of checking the transmitted data and the data parity driven with the data. If the result of the data inspection examined by ADB-PC is abnormal, the state is changed to ADDDR and retry. Otherwise, when DPOK is driven, the state transitions to CDKDR.

ㆍCDKDR : 전송되어온 데이터가 이상이 없기 때문에 CDK를 구동한다. 데이타를 수신하는 쪽이 정상적으로 데이타를 가져갔음을 데이타를 보내는 쪽에게 알리기 위해서 CDK를 구동한다. 읽기 전송을 완료하고 CDONE를 구동한다.• CDKDR: The CDK is driven because there is no error in the transmitted data. Run the CDK to inform the sending party that the receiving party has successfully taken the data. Complete the read transfer and run CDONE.

Claims (1)

적어도 두개 이상의 프로세서들이 펜디드 프로토콜 버스상에 연결되어 있는 다중프로세서 시스템에 있어서, 상기 프로세서들 각각에 연결되어 캐쉬간 직접 데이터 전송을 수행하는 캐쉬간 전송 모듈(C2CM)들을 포함하고, 상기 캐쉬간 전송 모듈들 각각은 캐쉬간 직접 데이타 전송에 필요한 소정의 제어 신호들을 생성하여 캐쉬간 전송을 제어하는 캐쉬간 제어기(10)와, 데이타 전송형태를 만들거나 검사하는 전송 형태 제어기(30)와, 상기 펜디드 프로토콜 버스에서 구동되는 신호를 저장하거나 구동하는 버스 수신 및 구동기(50)와, 프로세서와 캐쉬 메모리에서 구동되는 어드레스와 데이타나 상기 버스 수신 및 구동기(50)를 통한 상기 펜디드 프로토콜 버스상에서 구동된 데이타를 저장하거나 데이타와 어드레스의 패리티를 검사하는 버퍼 및 패리티 체커(20)와, 상기 펜디드 프로토콜 버스에서 구동되는 DI와 SI를 비교하여 그 결과를 캐쉬간 제어기(10)로 보내는 ID 비교기(40)를 포함하는 것을 특징으로 하는 펜디드 프로토콜 버스상에서의 캐쉬간 직접 데이타 전송 지원 제어 장치.A multiprocessor system in which at least two processors are coupled on a pending protocol bus, comprising: inter-cache transfer modules (C2CMs) coupled to each of the processors to perform direct cache transfers between caches; Each module includes an inter-cache controller 10 for generating predetermined control signals for direct data transfer between caches to control inter-cache transfers, a transfer mode controller 30 for creating or checking a data transfer form, and the Fendi A bus receiver and driver 50 for storing or driving a signal driven on a protocol protocol bus, and an address and data driven by a processor and cache memory, or a bus receiver and driver 50 driven on the pending protocol bus through the bus receiver and driver 50. Buffer and parity checker for storing data or checking parity of data and addresses (2 0) and an ID comparator 40 which compares DI and SI driven on the pending protocol bus and sends the result to the inter-cache controller 10. Data transfer support control device.
KR1019940023878A 1994-09-22 1994-09-22 Controller for supporting cache-to-cache data transfer in multiprocessor system KR960012355B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940023878A KR960012355B1 (en) 1994-09-22 1994-09-22 Controller for supporting cache-to-cache data transfer in multiprocessor system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940023878A KR960012355B1 (en) 1994-09-22 1994-09-22 Controller for supporting cache-to-cache data transfer in multiprocessor system

Publications (2)

Publication Number Publication Date
KR960011722A KR960011722A (en) 1996-04-20
KR960012355B1 true KR960012355B1 (en) 1996-09-18

Family

ID=19393243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940023878A KR960012355B1 (en) 1994-09-22 1994-09-22 Controller for supporting cache-to-cache data transfer in multiprocessor system

Country Status (1)

Country Link
KR (1) KR960012355B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100348808B1 (en) * 1996-04-24 2003-01-29 엘지전자주식회사 Device for transmitting data between memories

Also Published As

Publication number Publication date
KR960011722A (en) 1996-04-20

Similar Documents

Publication Publication Date Title
US5327570A (en) Multiprocessor system having local write cache within each data processor node
KR100360064B1 (en) Highly Pipelined Bus Structure
KR100245818B1 (en) Shared bus system with transaction and destination id
KR100286962B1 (en) Cache controller
EP0283628A2 (en) Bus interface circuit for digital data processor
EP0022829B1 (en) Data processing system
KR970049655A (en) Direct Memory Access (DMA) Controller
JPH0640317B2 (en) Digital data processing system
US5966728A (en) Computer system and method for snooping date writes to cacheable memory locations in an expansion memory device
US5673414A (en) Snooping of I/O bus and invalidation of processor cache for memory data transfers between one I/O device and cacheable memory in another I/O device
JPH10320282A (en) Method and device for controlling virtual cache
JP4642531B2 (en) Arbitration of data requests
US5923857A (en) Method and apparatus for ordering writeback data transfers on a bus
KR960012355B1 (en) Controller for supporting cache-to-cache data transfer in multiprocessor system
US20040054843A1 (en) Configuration and method having a first device and a second device connected to the first device through a cross bar
JPH10105461A (en) Improved device and method for snooping processor and look-aside cache
KR100276136B1 (en) Method and apparatus for enabling cache streaming
JPH11232213A (en) Data transfer system for input/output device
JP2002541548A (en) Global bus synchronous transaction acknowledgment with no response detection
JPH10307788A (en) Bus bridge
JPH10283302A (en) Method and system for supplying data to bus connected to plural processors
JPH04305746A (en) Cache memory control device
US5790892A (en) Information handling system for modifying coherency response set to allow intervention of a read command so that the intervention is not allowed by the system memory
KR950003877B1 (en) Cache updating device and method
KR100278805B1 (en) Data Mediation Device and Method in Multi-Processing System

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

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee