KR100258026B1 - 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 - Google Patents
다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 Download PDFInfo
- Publication number
- KR100258026B1 KR100258026B1 KR1019970051080A KR19970051080A KR100258026B1 KR 100258026 B1 KR100258026 B1 KR 100258026B1 KR 1019970051080 A KR1019970051080 A KR 1019970051080A KR 19970051080 A KR19970051080 A KR 19970051080A KR 100258026 B1 KR100258026 B1 KR 100258026B1
- Authority
- KR
- South Korea
- Prior art keywords
- transaction
- local
- memory
- bus
- processor
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치에 관한 것으로서, 프로세서 및 메모리 등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 또 하나의 로컬 버스를 사용하여 이를 상호 접속하고, 이러한 상호 접속된 로컬 버스에 구동되는 트랜잭션을 트랜잭션 종류, 현재의 로컬 디렉토리 상태 및 트랜잭션이 수행되는 어드레스 범위에 의하여 로컬 메모리에 억세스 되거나 또는 로컬 버스에 필요한 트랜잭션을 발생시키므로써, 구동된 트랜잭션을 효율적으로 처리하고, 적은 비용으로 다중 프로세서을 구현 할수 있다. 이와 같은 다중 프로세서 시스템의 트랜잭션 제어장치는 다수개의 프로세서 및 메모리 등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 상호 접속 버스로 연결하여 구성한 다중 프로세서 시스템에서, 로컬 버스에 구동된 트랜잭션을 수행하는 제 1트랜잭션 처리 수단과; 상호 접속버스에서 구동된 트랜잭션을 저장하고, 로컬 버스에 트랜잭션을 구동하는 제 2트랜잭션 처리수단과; 로컬 버스 및 상호 접속 버스의 캐시 일관성을 위하여 로컬 디렉토리의 상태 천이를 제어하는 제어부를 포함함으로써 달성된다.
Description
본 발명은 다중 프로세서 시스템의 트랜잭션 제어에 관한 것으로서, 보다 상세하게는 다수개의 프로세서를 공유하는 두 개의 로컬 버스를 상호 연결하기 위하여, 또 하나의 로컬 버스가 사용되는 다중 프로세서 시스템에서, 프로세서에서 발생되는 트랜잭션을 최소한도로 억세스 할수 있는 다중 프로세서 시스템의 트랜잭션 제어 방법 및 장치에 관한 것이다.
일반적으로, 분산형 공유 메모리 구조의 시스템은, 공유 메모리가 각 프로세서 노드에 분산되어 있기 때문에, 자기 노드의 메모리 및 다른 노드의 메모리에 대한 억세스 시간이 일정하지 않았다.
이를 도면을 참조하여 보다 구체적으로 기술하면, 분산 공유 메모리 구조의 다중 처리 시스템의 개략적인 블록 구성도인 도 1에 도시된 바와 같이, 분산 공유 메모리 구조의 다중 처리 시스템은 다수개의 CPU와 캐시 메모리 및 분산 공유 메모리(10a~14a)를 구비하는 다수개의 노드(10~14)와, 각 노드(10~14)를 상호 연결하여 리모트 억세스에 따른 해당 노드로 어드레스 및 데이터를 요청 및 제공하는 상호 접속 버스로 구성된다.
이와 같이 구성되는 다중 처리 시스템에서, 특정 노드에서 발생되는 프로세서의 메모리 억세스는 로컬 노드의 메모리에 접근하는 시간이 리모트 노드의 메모리 접근시의 시간보다 더 짧게 된다.
리모트 노드에 대한 메모리 억세스는 상호 접속 버스를 통해 수행되기 때문에, 상대적으로 로컬 메모리의 억세스 시간보다 더 지연된다. 이 때문에 각 프로세서의 메모리 접근 시간이 불일정하게 되고, 이에 따라 로컬 버스로 연결되는 두 개 이상의 노드에서의 데이터 억세스는 상호 접속 버스상에서 데이터 일관성을 유지시킨후, 상호 노드간에 데이터 억세스를 수행한다.
즉, 다수개의 노드들이 접속되어 구성되는 시스템에서 상호 노드간의 데이터 일관성을 유지시키기 위하여, 각각의 노드들을 하나의 연결 버스로서 연결하고, 이 연결 버스상에서 하드웨어에 의하여 데이터 일관성을 유지시킨다. 이러한 구조를 "ccNUMA(cache coherent NUMA)"구조라고 한다.
그러나, 상기한 분산 공유 메모리 시스템은 다수개의 노드를 연결버스를 통해 상호 연결시킬수 있으나, 하나의 노드에서 다른 노드로의 트랜잭션 요구시에 실제 프로세서의 버스 속도에 비하여 데이터 처리속도가 느리고, 또한 프로세서 버스와 다른 버스를 연결시키기 위한 프로토콜 변환에도 많은 시간이 소비되는 문제점이 있었다.
따라서, 본 발명은 프로세서 및 메모리 등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 또 하나의 로컬 버스를 사용하여 이를 상호 접속하고, 다수개의 프로세서에서 발생되는 트랜잭션을 로컬 디렉토리 상태, 로컬 버스의 스누프 결과 및 트랜잭션의 어드레스 범위, 트랜잭션 종류에 따라 효율적으로 처리하는 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치를 제공함에 그 목적이 있다.
도 1은 일반적인 분산 공유메모리 구조의 다중 처리 시스템의 개략 구성도.
도 2는 본 발명을 구현하기 위한 다중 프로세서 시스템의 개략 구성도.
도 3은 본 발명에 따른 다중 프로세서 시스템의 트랜잭션 제어장치를 보인 블록 구성도.
<도면의 주요 부분에 대한 부호의 설명>
40 ~ 43 : 제 1내지 제 4 프로세서 44 : 버스 트랜잭션 제어부
46, 52 : 제 1 및 제 2 큐처리기 47 : 메모리 제어기
48 : 메모리 모듈 49, 53 : 응답기
50 : 지연 큐 제어기 51, 54 : 제 1 및 제 2요구기
55, 56 : 제 1 및 제 2 데이터 큐 57 : 로컬 디렉토리
58 : 로컬 디렉토리 제어기
상기와 같은 목적을 달성하기 위하여, 본 발명의 하나의 양태에 따른 다중 프로세서 시스템의 트랜잭션 제어방법은 다수개의 프로세서 및 메모리등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 상호 접속 버스로 연결하여 구성한 다중 프로세서 시스템에서, 상기 상호 접속 버스에서 구동된 트랜잭션을 검지하는 제 1과정과; 상기 구동된 트랜잭션이 자신의 메모리 영역을 참조하는 단순한 읽기 동작일 경우, 로컬 디렉토리가 클린 및 공유상태이면 자신의 메모리에서 데이터를 읽는 동작이 수행되고, 다른 메모리 영역을 참조하는 경우는 로컬 디렉토리에 관계없이 라이트 백이 구동되는 제 2과정과; 상기 트랜잭션이 자신의 메모리 영역 및 다른 메모리 영역을 참조하면서, 특정 프로세서가 해당 어드레스 정보를 읽는 동작일 경우, 로컬 디렉토리에 관계없이 각각 해당 노드의 프로세서는 자신의 메모리에 가장 최근의 어드레스 정보를 저장하는 트랜잭션을 수행하는 제 3과정과; 상기 트랜잭션이 자신의 메모리 영역을 참조하여 단순히 쓰기 동작일 경우, 로컬 디렉토리가 더티 상태이면 해당 메모리에 쓰기 동작이 수행되는 제 4과정을 포함하는 것을 특징으로 한다.
여기서, 상기 제 2과정에서 자신의 메모리 영역을 참조하는 단순한 읽기 동작이고 로컬 디렉토리가 더티 상태로서 로컬 노드의 특정 프로세서가 변경된 정보를 가지고 있는 경우는, 리모트 노드의 다른 프로세서가 동일한 어드레스에 대하여 읽기 동작을 수행하면 상기 특정 프로세서에 의하여 라이트 백이 수행되고, 상기 리모트 노드의 프로세서들의 로컬 디렉토리 상태가 공유상태로 천이되는 트랜잭션이 발생되는 것을 특징으로 한다.
또한, 상기된 바와 같은 목적을 달성하기 위하여, 본 발명의 또 다른 양태에 따른 다중 프로세서 시스템의 트랜잭션 제어장치는, 다수개의 프로세서 및 메모리등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 상호 접속 버스로 연결하여 구성한 다중 프로세서 시스템에서, 상기 로컬 버스에 구동된 트랜잭션을 수행하는 제 1트랜잭션 처리 수단과; 상기 상호 접속버스에서 구동된 트랜잭션을 저장하고, 상기 로컬 버스에 트랜잭션을 구동하는 제 2트랜잭션 처리수단과; 상기 로컬 버스 및 상호 접속 버스의 캐시 일관성을 위하여 로컬 디렉토리의 상태 천이를 제어하는 제어부를 포함하는 것을 특징으로 한다.
여기서, 상기 제 2 트랜잭션 처리수단은 상호 접속 버스에서 발생된 트랜잭션이 로컬 노드의 메모리에 어드레스 정보를 억세스 하는 경우에는 상기 로컬 버스에 트랜잭션을 요청하고, 리모트 노드의 메모리에 어드레스 정보를 억세스 하는 경우에는 해당 트랜잭션이 끝난 후 어드레스 정보를 삭제하는 것을 특징으로 한다.
또한, 상기 제 2트랜잭션 처리수단은 상호 접속 버스에서 구동된 트랜잭션 종류, 메모리 영역, 로컬 디렉토리 상태에 따라 트랜잭션을 처리하는 것을 특징으로 한다.
이하, 본 발명의 바람직한 실시 예를 첨부된 도면을 참고하여 상세히 설명하면 다음과 같다.
도 2는 본 발명을 구현하기 위한 다중 프로세서 시스템의 개략 구성도이다. 이에 도시된 바와 같이, 제 1로컬 버스를 공유하는 제 1내지 제 4프로세서(21~24) 및 제 1버스 트랜잭션 제어부(25)와, 각 프로세서(21~24)로부터 입/출력 요구를 받아 제 1 버스 트랜잭션 제어부(25)와 연결된 입출력 버스를 통해 전송하고, 입출력 버스와 PCI 버스와의 인터페이스를 위한 PCI 브리지(27,28)와, 제 1 버스 트랜잭션 제어부(25)에 연결되며, 데이터를 저장 및 판독하기 위하여 다수개의 메모리가 장착되는 제 1메모리(26)로 구성된다. 이와 같이 구성되는 다중 프로세스 시스템의 제 1노드(20)는 제 3 로컬버스를 통해 제 2노드(30)와 상호 대칭적으로 연결된다. 이때, 제 2노드(30)는 제 1노드(20)와 동일하게 구성되며, 도면 부호만 변경된다.
즉, 보통 펜티움 프로 프로세서는 CPU 로컬 버스에 4개까지 장착되며, 더 이상의 펜티움 프로 프로세서를 사용한 다중 프로세스 구현은 상기와 같은 상호 접속 버스를 이용하여 다른 노드와 연결하여 사용한다.
이때, 하나의 노드(20,30)의 프로세서에서 트랜잭션이 발생되면 제 1,2 버스 트랜잭션 제어부(25,35)는 트랜잭션에 대한 어드레스 정보가 어느 메모리에 해당되는지를 판단하고, 로컬 메모리 억세스인 경우에는 각각의 로컬 메모리인 제 1, 2 메모리(26,36)에서 데이터를 읽거나 또는 쓰기 동작을 수행한다.
또한, 리모트 노드로의 트랜잭션인 경우에도 제 1,2 버스 트랜잭션 제어부(25,35)에서 이를 판단하고,트랜잭션 종류, 메모리 영역, 로컬 디렉토리 상태(Local Directory) 및 로컬 버스의 스누프 결과(Snoop Result)에 따라 각각 다른 트랜잭션 억세스를 수행한다.
이와 같은 다중 처리 시스템에서 트랜잭션 처리를 위한 제어장치가 도 3에 도시되어 있다. 이에 도시된 바와 같이 로컬 버스를 공유하는 다수개의 프로세서(40~42)에서 발생한 트랜잭션을 저장하고, 발생한 트랜잭션의 어드레스가 로컬 메모리 또는 리모트 메모리인지를 판단하는 제 1큐처리기(46); 상기 트랜잭션이 로컬 억세스인 경우 제 1 큐처리기(46)와 연결된 메모리 제어기(47)는 메모리 모듈(48)로부터 데이터를 패치하고, 로컬버스에 응답신호를 구동하는 제 1응답기(49) 및 ; 제 1큐처리기(46)에서 전송된 어드레스가 리모트 메모리 트랜잭션이고, 지연 가능한 트랜잭션일 경우 트랜잭션을 일시 저장하는 지연 큐제어기(50): 지연 큐제어기(50) 또는 제 1 큐처리기(46)로부터 트랜잭션을 받아 상호 접속버스를 통해 트랜잭션을 요구하는 제 1요구기(51); 상호 접속 버스를 통해 다른 노드로부터 발생된 트랜잭션을 저장하고 관리하는 제 2 큐처리기(52) 및; 제 2큐처리기(52)에 전달된 트랜잭션에 대한 응답신호를 상호 접속 버스에 구동하는 제 2응답기(53); 제 2 큐처리기(52)로부터 트랜잭션을 전달받아 로컬 버스에 버스 사용을 요구하고 트랜잭션을 구동하는 제 2요구기(54); 로컬 디렉토리(57)의 상태를 제어하며 캐쉬 일관성을 위하여 제 1 큐처리기(46) 및 제 2 큐처리기(52)에 다른 노드의 메모리 상태를 전송하는 로컬 디렉토리 제어기(58); 상기 로컬 버스 및 상호 접속 버스에 연결되고, 로컬 버스 및 상호 접속 버스로부터 구동되거나 또는 구동된 데이터를 저장하는 제 1 데이터 큐(55) 및 제 2 데이터 큐(56)를 포함하여 구성된다.
여기서, 미설명부호 44는 버스 트랜잭션 제어부(BTC : Bus Transaction Controller)이다.
이와 같이 구성된 다중 프로세서 시스템에서의 트랜잭션 처리는 먼저, 다수개의 프로세서(40~43)에서 트랜잭션이 발생되면, 제 1 큐처리기(46)는 트랜잭션을 저장한 후, 로컬 억세스 또는 리모트 억세스를 판단한다. 이때 로컬 억세스인 경우에는 메모리 제어기(47)가 메모리 모듈(48)에서 바로 트랜잭션에 대한 해당 데이터를 패치하여 프로세서에 제공한다.
그러나, 리모트 억세스인 경우에는 제 1요구기(51)를 통해 리모트 노드에 트랜잭션을 요구하며 이때, 계속적으로 발생되는 트랜잭션중 지연 가능한 트랜잭션은 지연 큐제어기(50)에 일시 저장한 후 처리한다.
한편, 리모트 노드에서 발생된 트랜잭션은 상호 접속버스를 통해 로컬 노드의 메모리 영역을 참조하는 경우가 발생되며, 이와 같이 상호 접속버스에 구동된 트랜잭션 처리는 트랜잭션 종류, 현재의 로컬 디렉토리 상태 및 트랜잭션이 수행되는 어드레스 범위에 의하여 로컬 메모리에 억세스 되거나 또는 로컬 버스에 필요한 트랜잭션을 발생시킨다. 이와 같은 트랜잭션 동작이 다음 표 1a, 표 1b 에 따라 제 2 큐처리기(52)에서 수행되며, 이를 참조하여 보다 상세히 설명하면 다음과 같다.
트랜잭션 | 억세스 구분 | 로컬 디렉토리 상태 | 동 작 |
메모리 리드(MR) | 로컬 메모리 | CleanSharedDirty | MR Request for localmemory (제 2요구기)Read from local memory (메모리 제어기)N.A |
리모트메모리 | N.A | MR Request for Remote Address(제 2요구기)with expecting Write Back | |
메모리 리드 인밸리드(MRI) | 로컬 메모리 | CleanSharedDirty | MRI Request for localmemory (제 2요구기)MRI Request for localmemory (제 2요구기)N.A |
리모트메모리 | N.A | Request for Remote memory (제 2요구기) |
트랜잭션 | 억세스 구분 | 로컬 디렉토리 상태 | 동 작 |
메모리 리드(MW) | 로컬 메모리 | CleanSharedDirty | N.AN.AWrite to local memory (메모리 제어기) |
리모트메모리 | N.A | N.A | |
임플리시트 메모리 라이트백(IMW) | 로컬 메모리 | CleanSharedDirty | N.AN.AWrite to local memory (메모리 제어기) |
리모트메모리 | N.A | N.A |
여기서, "N.A"는 Not Allowed를 나타낸다.
또한, 로컬 디렉토리 상태는, 다수개의 노드로 구성된 시스템에서 자신의 메모리를 다른 노드가 가지고 있는 경우를 표시하고, 상호 노드간의 캐쉬 일관성 유지를 수행하기 위한 것으로서, 다음 3가지 상태를 가진다.
클린(Clean) 상태는 다른 노드가 해당 어드레스 정보를 가지고 있지 않는 상태이고, 공유(Shared) 상태는 다른 노드가 해당 어드레스 정보를 가지고 있으며 이 정보는 로컬 메모리의 내용과 동일한 상태를 가리키며, 더티(Dirty) 상태는 다른 노드가 해당 어드레스 정보를 가지고 있으며 로컬 메모리의 내용보다 더 최근의 어드레스 정보를 가지고 있는 상태를 가리킨다.
이와 같은 상태에서, 상기 표 1a에서와 같이 소정의 프로세서에서 발생된 메모리 리드(MR) 및 메모리 리드 인밸리드(Memory Read Invalidate : 이하 "MRI"라 약칭함) 트랜잭션을 처리하는 경우에 대하여 설명하면 다음과 같다.
먼저, 로컬 노드의 메모리 영역을 단순히 읽는 트랜잭션(MR)인 경우에, 로컬 디렉토리가 클린 상태이면 단순히 자신의 메모리를 읽으려는 경우이다. 이때, 로컬 디렉토리가 클린 상태이지만 로컬 노드의 프로세서가 캐싱(Caching)하고 있는 경우도 발생되므로, 제 2요구기(54)를 통하여 로컬 버스에서 해당되는 어드레스 값을 읽는다.
만약, 로컬 노드 및 리모트 노드가 모두 공유 상태로 캐싱하고 있는것를 나타내는 로컬 디렉토리가 공유상태인 경우는, 바로 메모리 제어기(47)를 통하여 메모리 모듈(48)로부터 원하는 어드레스값을 읽는다.
만약, 로컬 디렉토리가 더티인 경우는, 이때는 리모트 노드가 해당 어드레스 정보를 가지고 있기 때문에 리모트 노드내에서 동일한 어드레스에 대하여 다른 프로세서가 억세스 하더라도, 어드레스 정보를 가지고 있는 프로세서에 의하여 라이트 백(Writeback)이 수행된다.
이때, 리모트 노드의 각 프로세서들은 공유 상태로 천이되므로, 가장 최근의 어드레스 정보로 저장되어 있다라는 것을 로컬 노드의 프로세서에 알려주어야 한다. 이러한 트랜잭션 동작을 임플리시트 라이트백(Implict Write back : IMW)이라 한다.
리모트 억세스인 경우에는 로컬 디렉토리에 관계없이 IMW가 발생된다. 즉, 로컬 노드가 리모트 노드로부터 더티한 어드레스 정보를 가지고 있는 상태로서, 리모트 노드는 어드레스 정보를 읽기 동작을 하기 전에 라이트 백 동작을 수행한다.
한편, 특정 프로세서에서 발생된 트랜잭션에 대한 해당 어드레스 정보를 읽어들이기 위한 MRI 트랜잭션에서, 먼저 로컬 억세스인 경우에 로컬 디렉토리가 클린 및 공유상태이면 로컬 노드의 로컬 버스에 리모트 노드가 저장되기 위해 캐쉬 라인을 요구하고, 캐쉬 라인을 무효화 시킨다. 이때, 로컬 디렉토리 상태는 더티 상태로 천이한다.
만약, 로컬 디렉토리가 더티 상태이면 리모트 노드에 특정 프로세서가 더티로 캐싱하고 있고, 이때 리모트 노드 내의 다른 프로세서가 MRI를 시작하면 캐싱하고 있는 프로세서는 라이트 백을 수행하고, 이후 저장된 어드레스 정보를 다른 프로세서에 알린다.
다음은 표 1b와 같이, 특정 프로세서가 발생된 트랜잭션에 대한 해당 어드레스 정보를 쓰기 동작 하는 트랜잭션에 관하여 보다 상세히 설명하면 다음과 같다.
먼저, 메모리 라이트 트랜잭션에서 로컬 억세스인 경우에, 로컬 디렉토리 상태가 클린상태면 리모트 노드가 어드레스에 대하여 캐싱을 하지 않는 상태이므로 트랜잭션이 발생되지 않는다.
또한, 로컬 디렉토리가 공유상태이면 이때도 리모트 노드가 어드레스에 대하여 공유상태로 캐싱하고 있으므로, 트랜잭션이 발생되지 않는다.
만약, 로컬 디렉토리가 더티 상태이면 로컬 메모리에 쓰기 동작을 수행하고, 이때는 리모트 노드가 캐싱하고 있는 내용을 무효화 시키므로 로컬 디렉토리는 클린 상태로 천이된다.
한편, 리모트 노드에서 로컬 어드레스에 대하여 MRI 트랜잭션이 발생하여 어드레스 정보를 읽어 간후, 동일한 어드레스에 대하여 리모트 노드내의 다른 프로세서에서 메모리 읽기 요구가 발생하면, 리모트 노드내에서 라이트 백이 수행되고 각 프로세서들은 공유 상태로 천이된다. 이때, 로컬 디렉토리를 공유 상태로 바꾸는 작업이 필요하다. 즉, 로컬 디렉토리 상태가 더티인 경우에 IMW 트랜잭션이 발생되면, 로컬 메모리에 가장 최근 정보를 저장한다. 이때, 리모트 노드는 쓰기 동작이 끝난 후에도 계속 공유 상태로 캐싱하고 있으므로 로컬 디렉토리 상태는 공유상태로 천이된다.
그러나, 로컬 디렉토리가 클린상태이면 리모트 노드가 어드레스에 대하여 캐싱 작업을 하고 있지 않으므로 라이트 백 트랜잭션은 일어나지 않으며, 또한 로컬 디렉토리가 공유상태인 경우에도, 리모트 노드가 어드레스에 대하여 공유 상태로 캐싱 작업을 하고 있으므로 트랜잭션이 발생하지 않는다.
만약, 리모트 억세스인 경우에는 리모트 노드의 어드레스에 대한 쓰기 동작이 자신의 메모리 영역에 저장되므로써, 이러한 트랜잭션은 로컬 노드로 전달되지 않는다.
이상에서 상세히 설명한 바와 같이, 본 발명은 프로세서 및 메모리등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 또 하나의 로컬 버스를 사용하여 이를 상호 접속하고, 이러한 상호 접속된 로컬 버스에 구동되는 트랜잭션을 트랜잭션 종류, 현재의 로컬 디렉토리 상태 및 트랜잭션이 수행되는 어드레스 범위에 의하여 로컬 메모리에 억세스 되거나 또는 로컬 버스에 필요한 트랜잭션을 발생시키므로써 트랜잭션을 효율적으로 처리할 수 있다.
Claims (5)
- 다수개의 프로세서 및 메모리등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 상호 접속 버스를 연결하여 구성한 다중 프로세서 시스템에서, 상기 상호 접속 버스에 구동된 트랜잭션을 검지하는 제 1과정과;상기 구동된 트랜잭션이 자신의 메모리 영역을 참조하는 단순한 읽기 동작일 경우, 로컬 디렉토리가 클린 및 공유상태이면 자신의 메모리에서 데이터를 읽는 동작이 수행되고, 다른 메모리 영역을 참조하는 경우는 로컬 디렉토리에 관계없이 라이트 백이 구동되는 제 2과정과;상기 트랜잭션이 자신의 메모리 영역 및 다른 메모리 영역을 참조하면서, 특정 프로세서가 해당 어드레스 정보를 읽는 동작일 경우, 로컬 디렉토리에 관계없이 각각 해당 노드의 프로세서는 자신의 메모리에 가장 최근의 어드레스 정보를 저장하는 트랜잭션을 수행하는 제 3과정과;상기 트랜잭션이 자신의 메모리 영역을 참조하여 단순히 쓰기 동작일 경우, 로컬 디렉토리가 더티 상태이면 해당 메모리에 쓰기 동작이 수행되는 제 4과정을 포함하는 것을 특징으로 하는 다중 프로세서 시스템의 트랜잭션 제어방법.
- 제 1항에 있어서, 상기 제 2과정에서 자신의 메모리 영역을 참조하는 단순한 읽기 동작이고 로컬 디렉토리가 더티 상태로서 로컬 노드의 특정 프로세서가 변경된 정보를 가지고 있는 경우는, 리모트 노드의 다른 프로세서가 동일한 어드레스에 대하여 읽기 동작을 수행하면 상기 특정 프로세서에 의하여 라이트 백이 수행되고, 상기 리모트 노드의 프로세서들의 로컬 디렉토리 상태가 공유상태로 천이되는 트랜잭션이 발생되는 것을 특징으로 하는 다중 프로세서 시스템의 트랜잭션 제어방법.
- 다수개의 프로세서 및 메모리등을 포함하며 로컬 버스를 공유하는 두 개 이상의 노드를, 상호 접속 버스로 연결하여 구성한 다중 프로세서 시스템에서, 상기 로컬 버스에 구동된 트랜잭션을 수행하는 제 1트랜잭션 처리 수단과; 상기 상호 접속버스에서 구동된 트랜잭션을 저장하고, 상기 로컬 버스에 트랜잭션을 구동하는 제 2트랜잭션 처리수단과; 상기 로컬 버스 및 상호 접속 버스의 캐시 일관성을 위하여 로컬 디렉토리의 상태 천이를 제어하는 제어부를 포함하는 것을 특징으로 하는 다중 프로세서 시스템의 트랜잭션 제어장치.
- 제 3항에 있어서, 상기 제 2 트랜잭션 처리수단은 상호 접속 버스에서 발생된 트랜잭션이 로컬 노드의 메모리에 어드레스 정보를 억세스 하는 경우에는 상기 로컬 버스에 트랜잭션을 요청하고, 리모트 노드의 메모리에 어드레스 정보를 억세스 하는 경우에는 해당 트랜잭션이 끝난 후 어드레스 정보를 삭제하는 것을 특징으로 하는 다중 프로세서 시스템의 트랜잭션 제어장치.
- 제 4항에 있어서, 상기 제 2트랜잭션 처리수단은 상호 접속 버스에서 구동된 트랜잭션 종류, 메모리 영역, 로컬 디렉토리 상태에 다라 트랜잭션을 처리하는 것을 특징으로 하는 다중 프로세서 시스템의 트랜잭션 제어장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970051080A KR100258026B1 (ko) | 1997-10-04 | 1997-10-04 | 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970051080A KR100258026B1 (ko) | 1997-10-04 | 1997-10-04 | 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990030724A KR19990030724A (ko) | 1999-05-06 |
KR100258026B1 true KR100258026B1 (ko) | 2000-06-01 |
Family
ID=19522231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970051080A KR100258026B1 (ko) | 1997-10-04 | 1997-10-04 | 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100258026B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101863605B1 (ko) | 2011-09-19 | 2018-07-06 | 삼성전자주식회사 | 스트림 데이터를 고속으로 처리하는 프로세서 |
-
1997
- 1997-10-04 KR KR1019970051080A patent/KR100258026B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990030724A (ko) | 1999-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100465583B1 (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는 비정형 메모리 액세스 데이터 처리 시스템 및 이 시스템에서의 통신 방법 | |
US7814279B2 (en) | Low-cost cache coherency for accelerators | |
US7996625B2 (en) | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture | |
US6789173B1 (en) | Node controller for performing cache coherence control and memory-shared multiprocessor system | |
EP0777184B1 (en) | Cache coherency method and system | |
EP0735480B1 (en) | Cache coherent computer system that minimizes invalidation and copyback operations | |
US6438660B1 (en) | Method and apparatus for collapsing writebacks to a memory for resource efficiency | |
US20010013089A1 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
EP0743601A2 (en) | A system and method for improving cache performance in a multiprocessing system | |
US20030135670A1 (en) | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherentmemory spaces | |
US6397302B1 (en) | Method and apparatus for developing multiprocessor cache control protocols by presenting a clean victim signal to an external system | |
JPH0247756A (ja) | 多重プロセツサ・システム用書込み共用キヤツシユ回路 | |
JP3574031B2 (ja) | 不均等メモリ・アクセス・システム内で無効化トランザクションの衝突によって生じるライブロックを避けるための方法およびシステム | |
JPH10154100A (ja) | 情報処理システム及び装置及びその制御方法 | |
US6587922B2 (en) | Multiprocessor system | |
US5987544A (en) | System interface protocol with optional module cache | |
US6226718B1 (en) | Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system | |
US20010029574A1 (en) | Method and apparatus for developing multiprocessore cache control protocols using a memory management system generating an external acknowledgement signal to set a cache to a dirty coherence state | |
US6336169B1 (en) | Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus | |
US20040186964A1 (en) | Snoop filtering | |
KR100258026B1 (ko) | 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 | |
KR100258027B1 (ko) | 다중 프로세서 시스템의 트랜잭션 제어방법 및 장치 | |
US10482015B2 (en) | Ownership tracking updates across multiple simultaneous operations | |
US6314496B1 (en) | Method and apparatus for developing multiprocessor cache control protocols using atomic probe commands and system data control response commands | |
KR100371140B1 (ko) | 캐시부착식 비균등분포적 메모리접근형병렬컴퓨터시스템의 캐시일관성을 유지하기 위한버스스누핑장치 및 방법 |
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: 20090302 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |