KR100253795B1 - An 8-way smp system and a method for minimizing traffic in order to maintain coherency of the system - Google Patents

An 8-way smp system and a method for minimizing traffic in order to maintain coherency of the system Download PDF

Info

Publication number
KR100253795B1
KR100253795B1 KR1019970036521A KR19970036521A KR100253795B1 KR 100253795 B1 KR100253795 B1 KR 100253795B1 KR 1019970036521 A KR1019970036521 A KR 1019970036521A KR 19970036521 A KR19970036521 A KR 19970036521A KR 100253795 B1 KR100253795 B1 KR 100253795B1
Authority
KR
South Korea
Prior art keywords
bus
pentium
multiprocessor system
buses
processors
Prior art date
Application number
KR1019970036521A
Other languages
Korean (ko)
Other versions
KR19990012939A (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 KR1019970036521A priority Critical patent/KR100253795B1/en
Publication of KR19990012939A publication Critical patent/KR19990012939A/en
Application granted granted Critical
Publication of KR100253795B1 publication Critical patent/KR100253795B1/en

Links

Images

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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges

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

PURPOSE: The system for eight-way symmetrical multi-processor and the method for minimizing the coherency traffic of the system is provided to secure the performance and scalability of the system, to minimizing the unnecessary bus bandwidth and memory access time. CONSTITUTION: The system comprises eight pentium processors(29-36), the multi-port memory control block(20), three pentium pro-buses(24,25,26), four I/O bridges(37-40), the coherency filters(21,22,23), and the shared memory(27,28). Eight pentium processors are mounted on two pentium pro-buses(24,25) for removing the restraint of the electronic loaded number. Four I/O bridges are connected to the third pentium pro-buses(26) for connecting with large capacity I/O unit. The multi-port memory control block processes the memory request cycles occurred by eight pentium processors and four I/O bridges, and deliveries the bus cycle to the other remote buses by using the coherency filters. The coherency filters has the same structure like the tag of a cache memory, and are implemented by the SRAM which the access time is under 10ns.

Description

8 웨이 대칭형 다중 프로세서 시스템 및 이 시스템의 동질성 유지 트래픽 최소화 방법8-Way Symmetric Multiprocessor System and How to Minimize Its Maintaining Traffic

본 발명은 공유메모리(Shared Memory)와의 데이터 동질성(Data Coherency) 유지방법으로 스누핑(Snooping)을 이용하는 캐쉬 메모리(Cache Memory)를 가지는 MPU를 사용하여 고성능 대칭형 다중프로세서 시스템(Symmetric Multi-Processor System)을 구현하기 위해서 다중 버스를 사용하고, 상기 다중 버스들 사이에 발생하는 캐쉬 메모리 데이터 동질성유지 버스 사이클의 숫자를 최소화 함으로써 시스템의 성능과 확장성(Scalability)를 확보할 수 있는 컴퓨터 시스템 구조에 관한 것으로, 특히 버스규약(Bus Protocol)과 전기적 특성상의 제약 때문에 4개 이하의 프로세서를 가지는 다중 프로세서 시스템만을 구성할 수 있도록 설계된 인텔의 펜티움 프로 프로세서와 그버스를 이용하여, 최대 8개까지의 프로세서를 가지는 다중프로세서 시스템으로 확장하기 위해서 펜티움 프로 프로세서 버스를 다중화하고, 다중 버스에 분산된 8개의 펜티움 프로 프로세서들 사이에 발생되는 캐쉬 메모리 데이터 동질성유지 버스 사이클의 숫자를 최소화 함으로써 시스템의 성능과 확장성을 보장 할 수 있는 캐쉬 메모리 데이터 동질성 유지 방법으로 동질성유지 필터(Coherency Filter)를 사용하는 컴퓨터 시스템과, 상기한 시스템의 동질성을 유지하기 위해 트래픽을 최소화하는 방법에 관한 것이다.The present invention provides a high performance symmetric multi-processor system using an MPU having a cache memory using snooping as a method of maintaining data coherency with shared memory. The present invention relates to a computer system structure that can secure performance and scalability of a system by using multiple buses for implementation and minimizing the number of cache memory data homogeneity bus cycles occurring between the multiple buses. In particular, due to bus protocol and electrical limitations, Intel's Pentium Pro processor and its buses are designed to configure only multiprocessor systems with four or fewer processors. Pentium Pro processor to scale to processor system Maintain cache memory data homogeneity to ensure system performance and scalability by minimizing the number of bus cycles multiplexing and maintaining cache memory data homogeneity between eight Pentium Pro processors spread across multiple buses. A computer system using a coherency filter, and a method of minimizing traffic to maintain the homogeneity of the system.

도 1은 통상적으로 인텔의 펜티움프로 프로세서와 이를 지원하는 칩셋 (Chipset)을 사용하여 구현 할 수 있는 대칭형 다중 프로세서 시스템의 구성도이다. 캐쉬메모리(2)를 가지고 있는 최대 4개의 펜티움 프로 프로세서(3), 공유메모리(5)를 연결하기 위한 메모리 컨트롤러(4), 및 입출력 버스와 연결하기 위한 입출력 버스 브리지(6)가 하나의 펜티움 프로 버스(1)를 공유한다.1 is a block diagram of a symmetric multiprocessor system that can be implemented using an Intel Pentium Pro processor and a chipset supporting chips. Up to four Pentium Pro processors (3) with cache memory (2), a memory controller (4) for connecting shared memory (5), and an I / O bus bridge (6) for connecting with the I / O bus. Share the pro bus (1).

하지만, 4개의 프로세서(3)들이 버스(1)의 사용권을 결정하기 위해서 사용하는 펜티움 프로버스(1)의 중재버스 (Arbitration Bus)는 최대 4개까지의 버스 에이전트(Bus Agent)만을 허용함으로써, 4개 이상의 프로세서를 지원하는 고성능 다중프로세서 시스템을 구현할 수 없도록 되어져 있다. 따라서, 애초에 인텔의 펜티움 프로 프로세서(3)와 그 버스(1)는 4개의 프로세서와 최대 2개의 입출력 버스 브리지(6)가 사용할 수 있는 만큼의 버스 밴드폭 (Bandwidth) (533 Mbyte/Sec)를 제공하도록 설계되어졌다.However, the Arbitration Bus of the Pentium Probus 1, which the four processors 3 use to determine the license of the bus 1, allows only up to four Bus Agents, It is not possible to implement high-performance multiprocessor systems that support more than four processors. Therefore, Intel's Pentium Pro processor (3) and its bus (1) initially had enough bus bandwidth (533 Mbyte / Sec) that could be used by four processors and up to two I / O bus bridges (6). It is designed to provide.

도 2는 두 개의 펜티움 프로버스(7)(8)를 연결할 수 있는 메모리 컨트롤러(9)를 이용하여 최대 8개 까지의 프로세서를 지원하는 다중 프로세서 시스템의 구성도 이다. 이 메모리 컨트롤러(9)는 두 개의 동일한 펜티움 프로버스(7)(8)에 각각 4개씩의 펜티움 프로 프로세서(3)를 장착 할 수 있도록 도 1의 펜티움 프로버스(1)가 가지는 중재버스의 제약을 극복 할 수 있는 버스 브리지 역할을 담당한다. 따라서, 도 2의 시스템 구조가 최대 8개까지의 펜티움 프로 프로세서를 지원하는 다중 프로세서 시스템을 구현 할 수는 있지만, 성능면에서는 4개 프로세서를 가지는 다중 프로세서 시스템에 비해 성능이 좋지않다.2 is a configuration diagram of a multiprocessor system supporting up to eight processors using a memory controller 9 capable of connecting two Pentium Proverses 7 and 8. The memory controller 9 is limited to the arbitration bus of the Pentium Probus 1 of FIG. 1 so that four Pentium Pro processors 3 can be mounted on two identical Pentium Probuses 7 and 8 respectively. It serves as a bus bridge to overcome. Thus, although the system structure of FIG. 2 may implement a multiprocessor system supporting up to eight Pentium Pro processors, performance is not as good as that of a multiprocessor system having four processors.

펜티움 프로 프로세서(3)는 버스(1)에 연결된 캐쉬 메모리(2)의 동질성 유지를 위해서 MESI(Mofified/Exclusive/Shared/Invalid) 프로토콜을 사용한다. 이 프로토콜은 모든 캐쉬메모리는 가장 최근의 데이터 복사본만을 가지고 있다는 특성을 보장한다. 이러한 프로토콜은 하드웨어에 의해서 제공되는 것으로 모든 프로세서가 펜티움 프로버스(1)의 버스사이클 종류, 어드레스 및 캐쉬 상태버스를 공유함으로써 가능하다. 하지만, 대부분의 8-Way 펜티움 프로 프로세서 시스템이 다중버스에 연결된 다중 캐쉬 구조로서, 이들 버스들 사이에도 캐쉬 동질성 유지를 위한 적절한 메카니즘(Mechanism)이 필요하다.Pentium Pro processor 3 uses MESI (Mofified / Exclusive / Shared / Invalid) protocol to maintain homogeneity of cache memory 2 connected to bus 1. This protocol guarantees that all cache memories have only the most recent copy of the data. This protocol is provided by hardware and is possible by all processors sharing the bus cycle type, address and cache status bus of the Pentium Probus 1. However, most 8-Way Pentium Pro processor systems are multiple cache structures connected to multiple buses, requiring proper mechanisms for maintaining cache homogeneity between these buses.

도 2의 펜티움 프로버스(7)에 연결된 프로세서의 캐쉬(2)에 존재하는 데이터가 펜티움 프로버스(8)에 연결된 프로세서의 캐쉬(2)에도 존재 할 수 있지만, 어떠한 경우라도 모든 캐쉬는 가장 최근의 데이터만을 가지고 있어야 한다. 즉, 펜티움 프로버스(7)에 연결된 프로세서가 자신의 캐쉬에 존재하는 데이터의 내용을 변경하고자 할 때, 이러한 사실을 다른 프로세서에게 알려야 한다. 알리는 방법은 캐쉬내용 변경을 위한 동질성유지 사이클을 스누핑하여 자신이 가지고 있는 캐쉬의 상태를 스스로 바꿔야 한다. 즉, 자신이 가지고 있던 캐쉬상태를 무효화(Invalidation)하거나, 변경된 데이터를 가지고 있었다면, 변경된 데이터를 버스에 내놓으면서 무효화 한다. 이렇게 함으로써 다중 캐쉬 시스템에서의 캐쉬 동질성이 유지될 수 있으며, 다중 버스의 경우에도 이와 같은 캐쉬동질성 유지를 위한 메카니즘이 적용 되어야 한다. 하지만, 다중 버스 시스템의 경우에는 물리적으로 서로 다른 버스를 사용하고 있기 때문에, 어떤 하나의 버스에서 발생되는 버스 사이클을 다른 버스에서 스누핑할 수 없기 때문에 버스 스위치 또는 버스 브리지를 담당하는 메모리 콘트롤러(9)가 한쪽 버스에서 일어나는 버스 사이클을 모두 다른 버스로 전송해야 한다. 하지만, 펜티움 프로버스는 4개의 프로세서가 하나의 버스를 사용할 수 있을 정도의 버스 밴드폭만 제공하기 때문에, 버스들은 프로세서들의 캐쉬 동질성 유지를 위한 사이클만으로도 포화 상태에 이르게 된다. 즉, 프로세서의 증가에 따른 성능 증가 보다는 오히려 성능 감소 현상이 발생한다.Data present in the cache 2 of the processor connected to the Pentium Proverse 7 of FIG. 2 may also exist in the cache 2 of the processor connected to the Pentium Probus 8, but in any case all caches are the most recent. It should have only data from. That is, when a processor connected to the Pentium Proverse 7 wishes to change the contents of data present in its cache, it must inform the other processor of this fact. The way to advertise is to snoop the homogeneity cycle for changing the contents of the cache and change the state of the cache itself. In other words, it invalidates the cache state that it has, or if it has changed data, it invalidates the changed data by putting it on the bus. By doing this, cache homogeneity can be maintained in multiple cache systems, and the mechanism for maintaining such cache homogeneity should be applied to multiple buses. However, in the case of a multi-bus system, since the buses are physically different from each other, the bus cycles occurring on one bus cannot be snooped on the other bus, and thus the memory controller 9 responsible for the bus switch or the bus bridge 9 Must transfer all bus cycles occurring on one bus to the other bus. However, because the Pentium Probus only provides bus bandwidth enough for four processors to use a single bus, the buses will saturate in cycles to keep the processors homogeneous. In other words, rather than an increase in performance due to an increase in the processor, a decrease in performance occurs.

본 발명은 상기한 바와 같은 문제점들을 해결하기 위하여 창안된 것으로, 최대 4개까지의 펜티움 프로 프로세서만을 지원하는 펜티움 프로버스를 이용하여 프로세서 증가에 상응하는 성능의 증가(Processor Scalability)를 보장 하면서 최대 8개까지의 펜티움 프로 프로세서를 가지는 다중 프로세서 시스템을 구현할 수 있는 새로운 다중버스 대칭형 다중프로세서 시스템구조(Architecture)를 제공하는 것을 제 1 목적으로 하고, 상기한 시스템의 동질성을 유지하기 위해 트래픽을 최소화하는 방법을 제공하는 것을 제 2 목적으로 한다.The present invention was devised to solve the above problems, using Pentium Probus that supports only up to 4 Pentium Pro processors, while guaranteeing processor scalability corresponding to the increase of the processor. It is a first object to provide a new multibus symmetric multiprocessor architecture capable of implementing a multiprocessor system with up to Pentium Pro processors, and a method of minimizing traffic to maintain the homogeneity of the system. To provide a second object.

도 1은 종래의 대칭형 다중 프로세서 시스템의 구성도.1 is a block diagram of a conventional symmetric multiprocessor system.

도 2는 종래의 또 다른 대칭형 다중 프로세서 시스템의 구성도.2 is a block diagram of another conventional symmetric multiprocessor system.

도 3은 본 발명에 의한 대칭형 다중 프로세서 시스템의 구성도.3 is a block diagram of a symmetric multiprocessor system according to the present invention;

도 4는 파형도4 is a waveform diagram

상기한 제 1 목적을 달성하기 위한 본 발명은, 다중포트 메모리 제어블록; 상기 다중포트 메모리 제어블록에 병렬연결된 캐쉬를 포함하는 중앙처리장치; 상기 다중포트 메모리 제어블록에 병렬연결된 공유 메모리; 상기 다중포트 메모리 제어블록에 병렬연결된 동질성 유지 필터; 및 상기 다중포트 메모리 제어블록에 병렬연결된 입출력 버스브리지를 포함하여 이루어지는 것을 특징으로 한다.The present invention for achieving the above first object, the multi-port memory control block; A central processing unit including a cache connected in parallel to the multi-port memory control block; A shared memory connected in parallel to the multiport memory control block; A homogeneous retention filter connected in parallel to the multiport memory control block; And an input / output bus bridge connected in parallel to the multi-port memory control block.

또한 상기한 제 2 목적을 달성하기 위한 본 발명은, 대칭형 다중 프로세서 시스템의 동질성을 유지하기 위해 트래픽을 최소화하는 방법에 있어서, 하나의 프로세서 버스에 연결된 다중 프로세서의 캐쉬들을 대표할 수 있는 동질성 유지 필터를 채용함으로써, 세 개의 버스에서 발생하는 메모리 요구를 선별적으로 원격지 버스에 전송하여 상기 트래픽을 최소화 하는 것을 특징으로 한다.In addition, the present invention for achieving the second object, in the method for minimizing the traffic in order to maintain the homogeneity of the symmetric multiprocessor system, homogeneous retention filter that can represent caches of multiple processors connected to one processor bus By employing, by selectively transmitting the memory request generated in the three buses to the remote bus, it characterized in that to minimize the traffic.

이하 도면을 참조하여 본 발명의 동작원리에 대하여 상세히 설명하기로 한다. 본 발명에서는 펜티움 프로버스가 가지고 있는 버스규약(Bus Protocol)중에 중재버스가 가지고 있는 제약을 극복하기 위해서 두 개의 버스에 각 4개의 프로세서를 분산 시킨다. 이렇게 함으로써, 각각의 버스에는 4개의 프로세서만 연결하고, 두 개의 버스 (실제로는 3개)의 연결을 담당하는 버스 브리지가 두 개의 버스에서 발생하는 버스요청을 중재 할 수 있도록 한다.Hereinafter, the operation principle of the present invention will be described in detail with reference to the accompanying drawings. In the present invention, in order to overcome the limitations of the arbitration bus in the bus protocol of the Pentium Probus, four processors are distributed on two buses. This allows only four processors to be connected to each bus, and the bus bridge responsible for the connection of two buses (actually three) can be used to arbitrate bus requests from two buses.

또한, 100MHz 펜티움 프로버스는 전기적인 부하의 숫자 제한 때문에 하나의 버스에 최대 5개의 버스 에이젼트만을 허용하고 있기 때문에, 도 2의 종래기술에 나타난 것과 같이 하나의 펜티움 프로버스에 4개의 프로세서와 입출력 브리지 두 개를 같이 연결하는 것은, 펜티움 프로버스가 지원하는 최대 100Mhz 클럭에서는 동작할 수 없었다. 본 발명에서는 이러한 문제점을 해결하기 위해서, 제 3의 펜티움 프로버스를 필요로 하며, 이를 이용해서 입출력 브리지를 최대 4개까지 연결 할 수 있다.In addition, because the 100 MHz Pentium Probus only allows up to five bus agents on one bus due to the limited number of electrical loads, four processors and I / O bridges on one Pentium Probus, as shown in the prior art of FIG. Connecting the two together could not work at the maximum 100 MHz clock supported by the Pentium Proverse. In the present invention, to solve this problem, a third Pentium Proverse is required, and up to four input / output bridges can be connected using this.

따라서, 본 발명이 해결한 과제는 세 개의 펜티움 프로버스를 사용하며 8개의 펜티움 프로 프로세서를 가지는 다중프로세서 시스템 구조에 대한 것과, 세 개의 펜티움 프로버스에 분산된 8개의 펜티움 프로 프로세서와 4개의 입출력 버스를 연결함에 있어서, 최대 100Mhz의 버스클럭에서 동작하도록 한 것, 그리고 세 개의 버스에 연결된 프로세서들과 입출력 브리지들이 가지고 있는 캐쉬 메모리와 공유메모리 사이에 발생하는 캐쉬 데이터 동질성유지 사이클들이 모든 세 개의 버스로 전달됨으로써 발생하는 프로세서 증가에 따른 성능의 감소를 막기 위해 "동질성유지 필터" 회로를 창안하였다.Therefore, the problem solved by the present invention is for a multiprocessor system structure using three Pentium Probuses and having eight Pentium Pro processors, and eight Pentium Pro processors and four I / O buses distributed over three Pentium Probuses. In this connection, it is designed to operate on a bus clock of up to 100Mhz, and cache data homogeneity cycles occurring between cache memory and shared memory of processors and input / output bridges connected to three buses to all three buses. The "homogeneous filter" circuit was created to prevent performance degradation due to increased processor throughput.

도 3은 본 발명에 의해서 구성된 시스템 블록 다이어그램이다. 8-Way SMP를 구현하기 위한 캐쉬 메모리를 갖는 8개의 펜티움 프로 프로세서(29-36)는 펜티움 프로버스 규약과 100Mhz 클락에서 동작하기 위한 전기적인 부하 숫자의 제약을 해결하기 위해서 두 개의 펜티움 프로버스(24-25)에 각각 4개씩 장착되며, 대용량 입출력 장치를 연결하기 위해서 4개의 입출력 브리지(37-40)들이 세 번째 펜티움 프로버스(26)에 연결된다. 이들 세 개의 펜티움 프로버스는 세 개의 펜티움 프로버스에서 발생되는 메모리 처리 요구를 처리하기 위한 두 개의 공유메모리 시스템과 연결된 다중포트 메모리 제어 블락(20)에 의해서 상호 연결된다. 즉, 다중포트 메모리 제어 블록(20)은 세 개의 펜티움 프로버스에 연결된 프로세서와 입출력 브리지들에 의해서 발생되는 메모리 요청 사이클들을 처리하는 역할을 하며, 필요한 경우에는 하나의 버스에서 발생한 버스 사이클을 하나 또는 두 개의 원격버스로 전달하는 역할을 한다. 예를들어, 펜티움 프로 프로세서(29)가 펜티움 프로버스(24)에 메모리 요구 사이클을 도 4의 파형도에 나타난 T2에서 내놓으면, 다중 포트 메모리 제어 블록은 이 메모리 요구 사이클을 디코드하여 이것을 어떻게 처리 할 것인지 결정한다. 이러한 결정은 T6의 펜티움 프로 프로세서 버스가 "스누프 국면(Snoop Phase)"에 놓여지기 전에 결정 된다. 만약 단순히 메모리 데이터 만을 읽거나 쓸 수도 있으나, 다른 버스 (25)나 (26)으로 전달해야 하는 경우도 있다. 이때, 다중포트 메모리 제어 블록(20)은 펜티움 프로버스(25-26)에 대해서 마치 펜티움 프로 프로세서 처럼 펜티움 프로버스(24)에서 발생된 것과 똑같은 메모리 요청을 발생한다.3 is a system block diagram constructed in accordance with the present invention. Eight Pentium Pro processors (29-36) with cache memory to implement an 8-Way SMP feature two Pentium Probuses to address the Pentium Proverse specification and the limitations of the number of electrical loads to operate at 100 MHz clocks. 24-25) are respectively mounted, and four input / output bridges 37-40 are connected to the third Pentium Proverse 26 to connect a large capacity input / output device. These three Pentium Probuses are interconnected by a multiport memory control block 20 connected to two shared memory systems for handling the memory processing requests generated by the three Pentium Probuses. That is, the multi-port memory control block 20 handles memory request cycles generated by processors and input / output bridges connected to three Pentium Probuses. It serves to transfer to two remote buses. For example, if the Pentium Pro processor 29 issues a memory request cycle to the Pentium Proverse 24 at T2 shown in the waveform diagram of FIG. 4, the multi-port memory control block decodes this memory request cycle to process this. Decide if you want to. This decision is made before the T6's Pentium Pro processor bus is placed in the "Snoop Phase." If only the memory data can be read or written, it may need to be transferred to another bus (25) or (26). At this time, the multi-port memory control block 20 generates the same memory request to the Pentium Probus 25-26 as is generated in the Pentium Probus 24 as if it were a Pentium Pro processor.

다중포트 메모리 제어 블록(20)이 펜티움 프로 버스(24)에서 T2에 발생한 메모리 요청 사이클이 메모리(27)(28)로 갈 것인지 또는 다른 펜티움 버스(25)(26)로 전달될 것인지 결정하기 위해서는 동질성 유지 필터(21-23)를 이용한다. 동질성 유지 필터는 마치 캐쉬메모리의 태그(Tag)와 같은 구조를 가지고 있으며, 펜티움 프로 프로세서가 가지고 있는 캐쉬들을 대표할 수 있으며, 메모리 접근 속도 (Access Time)가 10ns 미만인 SRAM으로 구현된다. SRAM의 용량은 펜티움 프로 프로세서의 캐쉬메모리 용량과 몇 개의 프로세서가 연결되어져 있는지에 따라서 달라진다. 예를들면, 펜티움 프로 프로세서의 어드레스가 36비트이고, 캐쉬메모리가 1MB, 캐쉬 라인 크기는 32Byte라고 가정할 때 필요한 SRAM용량은 다음의 수학식 1 및 수학식 2와 같이 계산된다.In order to determine whether the multiport memory control block 20 will have memory request cycles occurring at T2 on the Pentium Pro bus 24 going to the memory 27, 28 or forwarded to another Pentium bus 25, 26? Homogeneous retention filters 21-23 are used. The homogeneity maintenance filter has a structure similar to that of a cache memory tag and can represent caches of a Pentium Pro processor, and is implemented as an SRAM having a memory access time of less than 10 ns. The amount of SRAM depends on the cache memory capacity of the Pentium Pro processor and how many processors are connected. For example, assuming that the Pentium Pro processor has an address of 36 bits, a cache memory of 1MB, and a cache line size of 32 bytes, the required SRAM capacity is calculated as in Equations 1 and 2 below.

동질성 유지 필터가 가지는 캐쉬라인 수 ≥ ( 1 MB / 32-Byte) * 8 (CPU) = 256K 라인Number of cachelines a homogeneous filter has ≥ (1 MB / 32-Byte) * 8 (CPU) = 256K lines

동질성유지 필터에 필요한 데이터 비트수 = 36 (64GB 어드레스) - 5 (32-Byte 캐쉬라인 크기) - 18 (총 PPro들이 가진 캐쉬 엔트리 = 256K 라인) + 2 (상태비트) + 1 (패리티 비트) = 16Number of data bits required for homogeneous filter = 36 (64GB address)-5 (32-byte cacheline size)-18 (cache entries with total PPros = 256K lines) + 2 (status bits) + 1 (parity bits) = 16

2비트의 상태비트는 펜티움 프로 프로세서 캐쉬의 상태를 외부에서 알 수 있도록 무효(Invalid)/공유(*Shared)/소유(Owned)로 표시하며, 프로세서의 캐쉬가 독점(Exclusive)으로 표시되거나 또는 수정(Modified)으로 표시되면, 상기 캐쉬는 동질성 유지 필터를 소유(Owned)하고 있음을 나탸낸다. 즉, 펜티움 프로 버스(25)와 (26)에 연결된 펜티움 프로 프로세서의 캐쉬들이 T2 시간에, 펜티움 프로버스(24)에서 발생한 메모리 요청이 필요로하는 데이터를 가지고 있는지, 가지고 있다면, 어떤 상태 (공유 또는 수정된 소유 또는 독점적 소유)로 가지고 있는지를 알기 위해서 다중포트 메모리 제어 블록(20)이 동질성 유지 필터(21)(22)(23)를 도 4 T4 시간에 읽음으로써 알 수 있다. 즉, 원격지 버스에 동질성 필터(22)(23)의 상태가 소유 또는 공유라면, (24)에서 발생한 메모리 요청을 버스 (25 또는 26)에 전달해서 원격지에 있는 프로세서 캐쉬의 상태를 스누핑에 의해서 업데이트 할 수 있도록 한다. 하지만, 무효상태를 가지고 있다면, 원격지 버스의 간섭이 없이도 메모리 데이터를 읽거나 쓸 수 있다.The 2-bit status bit indicates Invalid / Shared / Owned so that the status of the Pentium Pro processor cache can be seen from the outside. The processor's cache is marked as Exclusive or modified. If it is marked as Modified, the cache indicates that it owns an homogeneous retention filter. That is, if the caches of the Pentium Pro processors connected to Pentium Probus 25 and 26 have the data needed by the memory request that occurred at Pentium Probus 24 at T2 time, and what state (shared) Or modified ownership or exclusive ownership) by reading the homogeneous retention filters 21, 22, 23 at time 4 T4. That is, if the state of the homogeneity filter 22, 23 on the remote bus is owned or shared, the memory request from 24 is passed to the bus 25 or 26 to update the state of the remote processor cache by snooping. Do it. However, if they are invalid, they can read or write memory data without interfering with the remote bus.

다중버스에 연결된 다중캐쉬의 대표역할을 하는 동질성 유지 필터의 상태비트는 하나의 캐쉬라인에 대해서 2비트의 상태 비트로 표시될 수 있다.The status bit of the homogeneity maintenance filter serving as a representative of the multiple caches connected to the multiple buses may be represented by a status bit of 2 bits for one cache line.

- 무효 : 메모리 데이터 사본이 어떤 프로세서의 캐쉬에도 들어있지 않음.Invalid: A copy of the memory data is not in the cache of any processor.

- 공유 : 메모리 데이터 사본이 하나 이상의 프로세서 캐쉬에 존재함.Share: Memory data copy exists in one or more processor caches.

- 소유 : 메모리 데이터의 사본이 오직 하나의 캐쉬에 수정적으로 또는 독점적인 상태로 존재함.-Owned: A copy of the memory data exists in a single cache, either modifiably or exclusively.

이제 상기한 동질성 유지필터의 상태가 어떻게 변하는지의 예를 들어 설명함으로써, 어떻게 8개의 프로세서를 갖는 다중 버스 다중프로세서 시스템을 구현하는지 설명한다.Now, an example of how the state of the homogeneous retention filter changes will be described to explain how to implement a multi-bus multiprocessor system with eight processors.

- 동질성 유지필터의 상태비트는 시스템을 리셋하면 무효상태로 초기화 된다.-The status bit of the homogeneous filter is reset to invalid when the system is reset.

- 펨티움 프로버스(24)에 연결된 프로세서가 하나의 캐쉬라인을 독점적으로사용하기 위해서 이에 대한 메모리 접근 요청 (BRIL)을 하면,When a processor connected to the Pentium Proverse 24 requests a memory access request (BRIL) for the exclusive use of one cacheline,

- 다중포트 메모리 제어블록(20)은 메모리(27 또는 28)에서 캐쉬라인을 읽어서 BRIL을 요청한 프로세서로 전달하고, 프로세서에 연결된 캐쉬의 상태는 무효에서 독점로 바뀔 것이다.The multiport memory control block 20 reads the cacheline from the memory 27 or 28 and passes the BRIL to the requesting processor, and the state of the cache connected to the processor will change from invalid to exclusive.

- 이러한 처리가 다른 펜티움 프로버스와의 간섭없이 가능한 것은, 도 4의 T4에서 읽은 리모트 동질성 필터(22 와 23)에 무효로 표시되어져 있기 때문이다.This processing is possible without interference with other Pentium Proverses because it is marked invalid in the remote homogeneous filters 22 and 23 read in T4 of FIG.

- 또한 메모리 제어블락은(20)은 로칼 동질성 필터(21)의 엔트리를 소유로 바꾼다.The memory control block 20 also changes the entry of the local homogeneity filter 21 to possession.

- 이후에, 프로세서가 프로세서의 캐쉬를 독점에서 수정으로 바꾸는 것은 펜티움 프로버스(24)에 아무런 사이클도 내놓지 않고 바꿀 수 있기 때문에 동질성유지 필터의 상태 소유는 프로세서 캐쉬가 독점상태에 또는 수정상태에 있을 수 있다는 것을 의미한다.Afterwards, the processor retains the state of the homogeneous filter because the processor's cache changes from monopoly to modified without any cycles on the Pentium Proverse 24. That means you can.

- 다른 펜티움 프로버스(25)에 연결된 프로세서가 같은 캐쉬라인을 독점적으로 사용하기 위해서 버스(25)에 BRIL을 내놓으며, 제4도의 T4에서와 같이 소유로 표시된 리모트 동질성필터(21)을 가장 먼저 점검한다. 이럴 경우 다중포트 메모리 제어블락은 이 BRIL에 대해서 "지연된(Deferred) 응답"을 하고, 펜티움 프로버스(24)로 BRIL을 전달하며, 동질서 필터(21)의 소유 상태는 무효 상태로 다시 바뀐다.A processor connected to another Pentium Probus 25 presents BRIL on the bus 25 for exclusive use of the same cacheline and first checks the remote homogeneous filter 21 marked as proprietary, as in T4 of FIG. do. In this case, the multiport memory control block makes a "deferred response" to this BRIL, passes the BRIL to the Pentium Proverse 24, and changes the ownership state of the homogeneous filter 21 back to an invalid state.

- 이때, 버스(24)에 연결된 프로세서에 독점 또는 수정으로 되어져 있던 캐쉬도 리모트 버스에서 전달되어진 BRIL에 의해서 무효로 바뀌는데, 만약 이 캐쉬의 상태가 수정이었다면, HITM#과 함께 바뀐 데이터를 버스에 내어놓는 절대적 답장현상(Implicit Writeback)이 일어난다.At this time, the cache exclusively or modified by the processor connected to the bus 24 is also invalidated by BRIL transmitted from the remote bus. If the state of the cache was modified, the data changed with HITM # is output to the bus. Implicit writeback occurs.

- 절대적 답장현상에 의해서 바뀐 데이터는 공유메모리와 버스(25)에서 지연된 응답을 받았던 BRIL을 요구한 프로세서 캐쉬에 전달된다. 따라서, 어떤 캐쉬도 가장 최근에 바뀐 데이터의 사본을 가질 수 있다.The data changed by the absolute reply is sent to the shared cache and processor cache requesting BRIL, which received the delayed response on the bus 25. Thus, any cache can have a copy of the most recently changed data.

- 하지만, 버스(24)에 연결된 캐쉬가 독점상태에 있었다면, 이 캐쉬라인의 상태는 그냥 무효로 바뀌고, 버스(25)의 BRIL은 메모리로부터 데이터를 전송받는다.However, if the cache connected to bus 24 was in a monopoly state, the state of this cache line would simply be invalid and BRIL of bus 25 would receive data from memory.

- 어찌하였던지, 캐쉬라인을 취한 버스의 동질성 필터(22)는 무효에서 소유로 바뀐다.Whatever the case, the homogeneous filter 22 of the bus taking the cacheline is changed from void to proprietary.

이상과 같은 동질성필터에 의해서 다중버스에 분포된 다중프로세서의 캐쉬와 메모리사이의 데이터 동질성을 유지함으로서, 도 2의 경우와 같이 모든 버스 트랜잭션을 리모트 버스로 전달할 필요가 없다는 것이 증명되었다. 따라서, 본 발명에 의한 8-Way 대칭형 다중 프로세서 시스템(SMP:Symetric Multiple Processor System)의 성능과 확장성이 도 2의 구조에 비해 월등하게 뛰어나다는 것을 예측 할 수 있다.By maintaining the data homogeneity between the cache and the memory of the multiple processors distributed in the multiple buses by the above-described homogeneous filter, it has been proved that it is not necessary to transfer all the bus transactions to the remote bus as in the case of FIG. Accordingly, it can be expected that the performance and scalability of the 8-way Symmetric Multiple Processor System (SMP) according to the present invention are superior to those of FIG. 2.

상술한 바와 같이 본 발명은 세 개의 펜티움 프로버스와 두 개의 메모리 포트를 다중포트 메모리 제어블락에 의해서 상호연결 함으로써 각각의 펜티움 프로버스의 중재버스가 갖는 제약을 극복하면서, 8개의 펜티움 프로 프로세서를 갖는 대칭형 다중 프로세서를 구현 할 수 있다. 또한, 각각의 펜티움 프로버스에는 최대 5개의 전기적인 부하만 걸리게 함으로써 100 Mhz의 클럭에서 동작할 때 발생하는 타이밍 문제를 해결했다.As described above, the present invention has eight Pentium Pro processors, overcoming the limitations of each Pentium Probus arbitration bus by interconnecting three Pentium Probuses and two memory ports by a multiport memory control block. Symmetric multiprocessors can be implemented. In addition, each Pentium Probus takes up to five electrical loads to solve timing problems that occur when operating at a clock of 100 MHz.

8-Way 펜티움 프로 프로세서 시스템으로서의 성능과 확장성을 보장하기 위해서, 동질성 유지 필터를 고안하여, 불필요하게 버스 밴드폭을 사용하는 것과 메모리 접근시간을 최소화 하였다. 이렇게 함으로써 사용자의 요구에 따라 최소 1개의 펜티움 프로 프로세서 시스템에서부터 최대 8개의 펜티움 프로 프로세서를 갖는 다중프로세서 시스템까지 매우 경제적으로 확장이 가능하다. 즉, 사용자의 성능요구에 따라 시스템에 프로세서 만을 추가 함으로써 그 성능이 선형적으로 증가 하게된다.In order to ensure performance and scalability as an 8-Way Pentium Pro processor system, homogeneous retention filters have been devised to minimize unnecessary bus bandwidth and memory access time. This makes it very economical to scale from a single Pentium Pro processor system to a multiprocessor system with up to eight Pentium Pro processors, depending on your needs. That is, the performance is linearly increased by adding only processors to the system according to the user's performance requirements.

Claims (11)

다중포트 메모리 제어블록;A multiport memory control block; 상기 다중포트 메모리 제어블록에 병렬연결된 캐쉬를 포함하는 중앙처리장치;A central processing unit including a cache connected in parallel to the multi-port memory control block; 상기 다중포트 메모리 제어블록에 병렬연결된 공유 메모리;A shared memory connected in parallel to the multiport memory control block; 상기 다중포트 메모리 제어블록에 병렬연결된 동질성 유지 필터; 및A homogeneous retention filter connected in parallel to the multiport memory control block; And 상기 다중포트 메모리 제어블록에 병렬연결된 입출력 버스브리지를 포함하여 이루어지는 것을 특징으로 하는, 8-Way 대칭형 다중 프로세서 시스템.And an input / output bus bridge connected in parallel to the multiport memory control block. 8-Way symmetric multiprocessor system. 제 1 항에 있어서, 상기 시스템은 인텔 펜티움 프로 프로세서를 기반으로 하는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.The 8-Way symmetric multiprocessor system of claim 1, wherein the system is based on an Intel Pentium Pro processor. 제 1 항에 있어서, 상기 시스템의 구현을 위해 다중 버스를 사용하는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.8. The 8-Way symmetric multiprocessor system of claim 1, wherein multiple buses are used to implement the system. 제 3 항에 있어서, 상기 다중 버스 가운데 하나 또는 그 이상을 입출력 버스로 사용하는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.4. The 8-Way symmetric multiprocessor system of claim 3, wherein one or more of the multiple buses are used as input / output buses. 제 4 항에 있어서, 상기 입출력 버스 사이클이 상기 동질성 유지 필터의 내용에 따라 선별적으로 프로세서 버스에 전달됨으로써 각 버스 고유의 밴드폭을 최대한으로 사용할 수 있는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.The 8-Way symmetric multiprocessor system according to claim 4, wherein the input / output bus cycles are selectively transferred to the processor buses according to the content maintaining filter of the homogeneity maintaining filter to maximize the bandwidth of each bus. . 제 2 항에 있어서, 세 개의 펜티움 프로세서를 사용하고 각 버스에 최대 5개의 버스 에이전트만 연결시킴으로써 시스템이 100 MHz의 클럭에서 동작할 수 있는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.3. The 8-Way symmetric multiprocessor system of claim 2, wherein the system can operate at a clock of 100 MHz by using three Pentium processors and connecting only up to five bus agents to each bus. 제 2 항에 있어서, 상기 시스템을 최대 8개까지의 프로세서를 가지는 다중 프로세서 시스템으로 확장하기 위해서 펜티움 프로 프로세서 버스를 다중화 하는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.3. The 8-Way symmetric multiprocessor system of claim 2, wherein the Pentium Pro processor bus is multiplexed to extend the system to a multiprocessor system having up to eight processors. 제 7 항에 있어서, 상기 다중 버스에 분산된 상기 8개의 펜티움 프로 프로세서들 사이에 발생되는 캐쉬 메모리 데이터 동질성유지 버스 사이클의 숫자를 최소화 함으로써 시스템의 성능과 확장성을 보장 할 수 있는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.8. The system of claim 7, wherein the performance and scalability of the system can be guaranteed by minimizing the number of cache memory data homogeneity bus cycles occurring between the eight Pentium Pro processors distributed over the multiple buses. 8-way symmetric multiprocessor system. 제 8 항에 있어서, 상기 캐쉬 메모리 데이터의 동질성을 유지하기 위한 수단으로서 동질성유지 필터(Coherency Filter)를 사용하는 것이 특징인, 8-Way 대칭형 다중 프로세서 시스템.9. The 8-Way symmetric multiprocessor system of claim 8, wherein a coherency filter is used as a means for maintaining homogeneity of the cache memory data. 대칭형 다중 프로세서 시스템의 동질성을 유지하기 위해 트래픽을 최소화하는 방법에 있어서, 하나의 프로세서 버스에 연결된 다중 프로세서의 캐쉬들을 대표할 수 있는 동질성 유지 필터를 채용함으로써, 세 개의 버스에서 발생하는 메모리 요구를 선별적으로 원격지 버스에 전송하여 상기 트래픽을 최소화 하는 것이 특징인, 대칭형 다중 프로세서 시스템에서 발생하는 동질성 유지 트래픽을 최소화하는 방법.A method of minimizing traffic to maintain homogeneity in a symmetric multiprocessor system, employing a homogeneous retention filter that can represent caches of multiple processors connected to one processor bus, thereby screening for memory demands on three buses. And minimizing the traffic by transmitting to a remote bus. 제 10 항에 있어서, 상기 다중 프로세서 시스템은 4 개이상의 대칭형 다중 프로세서 시스템인 것을 특징으로 하는, 대칭형 다중 프로세서 시스템에서 발생하는 동질성 유지 트래픽을 최소화하는 방법.11. The method of claim 10, wherein the multiprocessor system is four or more symmetric multiprocessor systems.
KR1019970036521A 1997-07-31 1997-07-31 An 8-way smp system and a method for minimizing traffic in order to maintain coherency of the system KR100253795B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970036521A KR100253795B1 (en) 1997-07-31 1997-07-31 An 8-way smp system and a method for minimizing traffic in order to maintain coherency of the system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970036521A KR100253795B1 (en) 1997-07-31 1997-07-31 An 8-way smp system and a method for minimizing traffic in order to maintain coherency of the system

Publications (2)

Publication Number Publication Date
KR19990012939A KR19990012939A (en) 1999-02-25
KR100253795B1 true KR100253795B1 (en) 2000-04-15

Family

ID=19516466

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970036521A KR100253795B1 (en) 1997-07-31 1997-07-31 An 8-way smp system and a method for minimizing traffic in order to maintain coherency of the system

Country Status (1)

Country Link
KR (1) KR100253795B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783822B2 (en) 2007-07-25 2010-08-24 Hewlett-Packard Development Company, L.P. Systems and methods for improving performance of a routable fabric

Also Published As

Publication number Publication date
KR19990012939A (en) 1999-02-25

Similar Documents

Publication Publication Date Title
US6633945B1 (en) Fully connected cache coherent multiprocessing systems
US6789173B1 (en) Node controller for performing cache coherence control and memory-shared multiprocessor system
US5878268A (en) Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
JP2540517B2 (en) Hierarchical cache memory device and method
US5796605A (en) Extended symmetrical multiprocessor address mapping
US5805839A (en) Efficient technique for implementing broadcasts on a system of hierarchical buses
US5754877A (en) Extended symmetrical multiprocessor architecture
US7669018B2 (en) Method and apparatus for filtering memory write snoop activity in a distributed shared memory computer
US5749095A (en) Multiprocessing system configured to perform efficient write operations
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
US6826653B2 (en) Block data mover adapted to contain faults in a partitioned multiprocessor system
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
US6868481B1 (en) Cache coherence protocol for a multiple bus multiprocessor system
US5991819A (en) Dual-ported memory controller which maintains cache coherency using a memory line status table
US6128677A (en) System and method for improved transfer of data between multiple processors and I/O bridges
US20030041212A1 (en) Distributed read and write caching implementation for optimized input//output applications
WO2003060730A1 (en) Method and apparatus for using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
EP0764905B1 (en) An invalidation bus optimisation for multiprocessors using directory-based coherence protocols
US6269428B1 (en) Method and system for avoiding livelocks due to colliding invalidating transactions within a non-uniform memory access system
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US5860109A (en) Methods and apparatus for a coherence transformer for connecting computer system coherence domains
US6078997A (en) Directory-based coherency system for maintaining coherency in a dual-ported memory system
US5713004A (en) Cache control for use in a multiprocessor to prevent data from ping-ponging between caches
EP0489583A2 (en) Multiple processor cache control system
EP0817095A2 (en) Extended symmetrical multiprocessor architecture

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee