KR100329968B1 - 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기 - Google Patents

이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기 Download PDF

Info

Publication number
KR100329968B1
KR100329968B1 KR1019990058025A KR19990058025A KR100329968B1 KR 100329968 B1 KR100329968 B1 KR 100329968B1 KR 1019990058025 A KR1019990058025 A KR 1019990058025A KR 19990058025 A KR19990058025 A KR 19990058025A KR 100329968 B1 KR100329968 B1 KR 100329968B1
Authority
KR
South Korea
Prior art keywords
transaction
buffering
cache
read
bus
Prior art date
Application number
KR1019990058025A
Other languages
English (en)
Other versions
KR20010056536A (ko
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 KR1019990058025A priority Critical patent/KR100329968B1/ko
Priority to US09/487,348 priority patent/US6415361B1/en
Publication of KR20010056536A publication Critical patent/KR20010056536A/ko
Application granted granted Critical
Publication of KR100329968B1 publication Critical patent/KR100329968B1/ko

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
    • 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/0817Cache consistency protocols using directory methods
    • G06F12/0828Cache consistency protocols using directory methods with concurrent directory accessing, i.e. handling multiple concurrent coherency transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-uniform memory access [NUMA] architecture

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)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 최소의 제어 오버헤드로 트랜잭션 버퍼링을 제어함으로써 캐쉬 이용률을 증대시키기 위하여 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한 캐쉬 제어기를 제공하기 위한 것으로, 이를 위해 본 발명은 다수의 컴퓨팅 노드가 하나의 상호연결망에 연결되는 CC-NUMA(Cache-Coherent Non-Uniform Memory Access) 컴퓨터 시스템에서 상기 컴퓨팅 노드 각각에 구비되어 다수의 프로세서를 연결하는 노드버스와 상기 상호연결망 사이에 위치하여 상기 컴퓨팅 노드 간의 캐쉬일관성 프로토콜을 수행하고, 상기 컴퓨팅 노드 각각에 구비된 캐쉬를 제어하기 위한 캐쉬 제어기에 있어서, 상기 노드버스에 연결되는 노드버스 인터페이스 수단; 상기 상호연결망에 연결되는 상호연결망 인터페이스 수단; 상기 컴퓨팅 노드 간의 캐쉬일관성 유지 프로토콜을 수행하고, 상기 캐쉬의 태그메모리 및 데이터메모리를 제어하기 위한 캐쉬제어로직수단; 상기 캐쉬제어로직수단과 상기 노드버스 인터페이스 수단 사이에 구비되며, 상기 노드버스를 통해 상기 프로세서가 상기 캐쉬 제어기에게 요청 및 응답한 트랜잭션을 버퍼링하거나 상기 캐쉬 제어기가 상기 프로세서 또는 상기 컴퓨팅 노드의 제어장치에게 요청 및 응답한 트랜잭션을 버퍼링하기 위한 4개의 버스측 이중포트 트랜잭션 버퍼링 수단; 및 상기 캐쉬제어로직수단과 상기 상호연결망 인터페이스 수단 사이에 구비되며, 상기 상호연결망을 통해 다른 컴퓨팅 노드의 원격 프로세서가 상기 캐쉬 제어기에게 요청 및 응답한 트랜잭션을 버퍼링하거나 상기 캐쉬 제어기가 상기 원격 프로세서 또는 상기 다른 컴퓨팅노드의 제어장치에게 요청 및 응답한 트랜잭션을 버퍼링하기 위한 4개의 망측 이중포트 트랜잭션 버퍼링 수단을 포함하여 이루어지며, 상기 캐쉬제어로직수단은, 상기 프로세서에 의해 쓰기 및 읽기 가능하며, 상기 다수의 버스측 이중포트 트랜잭션 버퍼링 수단 및 상기 다수의 망측 이중포트 트랜잭션 버퍼링 수단의 버퍼링 모드를 제어하기 위한 버퍼링 모드 레지스터를 포함한다.

Description

이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한 캐쉬 제어기{CACHE CONTROLLER HAVING DUAL-PORT TRANSACTION BUFFERS}
본 발명은 여러 개의 컴퓨팅 노드(computing node)가 상호연결망(interconnection network)를 통하여 연결된 CC-NUMA(Cache-Coherent Non-Uniform Memory Access) 병렬컴퓨터(parallel computer) 시스템에 관한 것으로, 특히 CC-NUMA 병렬컴퓨터 시스템의 각 캐쉬 제어기에 내장되어 캐쉬 제어기로 드나드는 트랜잭션(transaction)을 버퍼링하는 이중포트 트랜잭션 버퍼에 관한 것이다.
일반적으로, CC-NUMA 시스템은 정의된 캐쉬 일관성 프로토콜(cache coherence protocol)에 따라 여러 개의 컴퓨팅노드에 물리적으로 분산되어 있는(physically distributed) 메모리 모듈들(memory modules)을 하나의 논리적인 공유 메모리(logically shared memory)로 보여주는 일종의 분산공유메모리(distributed shared memory) 시스템이며, 각 컴퓨팅노드는 최대 4개의 프로세서와 메모리 및 입출력 장치를 갖는 대칭형 다중프로세서(symmetric multiprocessor)이다.
본 발명과 관련된 선행 기술로는, 두 개의 비동기(asynchronous) 버스 사이에 위치한 이중포트 버퍼의 충만표시(fullness indication)를 동기적으로(synchronously) 제공하는 장치와 그 방법을 제시한 컴팩 컴퓨터사(Compaq Computer Corporation)의 미국특허 제5,721,839호(Apparatus and method for synchronously providing a fullness indication of a dual ported buffer situated between two asynchronous buses, Feb. 24, 1998, R. A. Callison, G. T. Chandler)가 있다. 이 선행특허에서 컴퓨터 시스템은 (i) PCI(Peripheral Component Interconnect) 버스와 EISA(Extended Industry Standard Architecture) 버스를 연결하는 브리지(bridge) 및 (ii) PCI 버스와 또 다른 PCI 버스를 연결하는 브리지로 구성되어 있으며, 각 브리지는 쓰기 데이터와 읽기 데이터를 저장하는 데이터 버퍼를 갖고 있는 데, 이 데이터 버퍼는 선입선출(First-In First-Out, FIFO) 메모리로 구성된 이중포트 버퍼이다. 이 선행특허는 브리지를 통하여 연결된 두 개의 버스가 각각 별개의 클럭으로 독립적으로 동작하는 것을 허용한다.
본 발명과 관련된 또다른 선행 기술로는, 이중포트 버퍼를 포함하는 컴퓨터 저장장치에서 데이터를 전송하기 위한 장치와 방법을 고안하여 제시한 EMC 사의 미국특허 제5,636,358호(Method and apparatus for transferring data in a storage device including a dual-port buffer, Jun. 3, 1997, W. A. Brant, G. L. Hohenstein)가 있다. 이 선행 특허에서 제시한 저장장치 서브시스템에 사용되는 이중포트 버퍼는, 두 개의 내부 데이터 버스와 연결되어 있으며, 버스 중의 하나는 이중포트 버퍼와 저장장치 사이의 데이터 전송을 수행하고, 다른 하나의 버스는 이중포트 버퍼와 중앙처리장치(CPU) 사이의 데이터 전송을 수행하며, 이 저장장치 서브시스템의 처리율(throughput)은 두 버스 중 느린 버스의 전송률(bandwidth)과 같으며, 저장장치 서브시스템의 유효 처리율을 높이기 위하여 복수의 이중포트 버퍼를 병렬로 사용할 수 있도록 하였다. 특히, 이 선행특허는 이중포트 버퍼를 통하여 CPU와 저장장치 서브시스템 사이의 데이터 전송을 지원한다.
다음으로, 본 발명과 관련된 또다른 선행 기술은 인텔(Intel)사의 G. F. Young과 R. M. Stevens와 L. C. James에 의해 제시된 미국특허 제5,860,120호(Directory-based coherency system using two bits to maintain coherency on a dual ported memory system, Jan. 12, 1999)가 있다. 이 선행 기술에서는, 이중포트 메모리를 포함하는 다중 프로세서(multiprocessor) 컴퓨터 시스템에서 디렉토리에 기반한 캐쉬일관성(directory-based cache coherency) 메모리시스템을 고안하였다. 구체적으로, 여러 개의 프로세서에 의하여 공유되며 이중포트 메모리로 구성되는 이중포트 메모리 시스템은 두 개의 메모리 버스에 연결되되, 첫번째 메모리 버스는 캐쉬를 포함한 복수의 프로세서 중 일부를 이중포트 버퍼의 첫번째 포트에 연결하고, 두번째 메모리 버스는 나머지 프로세서를 두번째 포트에 연결하도록 구성된다. 이와 같은 구성의 이중포트 메모리 시스템을 통하여 두 개의 그룹으로 나누어진 프로세서들 간의 디렉토리 기반 캐쉬일관성을 효과적으로 제어하도록 하였다.
앞서 기술한 이러한 선행 특허들은 버스 간의 브리지 내부에 이중포트 구조의 버퍼를 구비하거나, 또는 저장 장치를 이중포트 구조로 구성하는 것에 한정된 기술들로서, 캐쉬 제어기에 요구되고 응답되는 각종 트랜잭션을 신속하고 효과적으로 버퍼링하기 위한 장치 및 방법들에 대해서는 기술하고 있지 않다. 또한, 제시된 이러한 선행 기술 뿐 아니라 다른 종래의 기술에서도 캐쉬 제어기 내부에서 캐쉬 제어 동작과 관련된 각종 트랜잭션을 효율적으로 제어하기 위한 이중포트 구조의 트랜잭션 버퍼에 관해 제시된 바가 없다.
따라서, 캐쉬 제어기에 요구되고 응답되는 각종 트랜잭션을 신속하고 효과적으로 제어하여 캐쉬 제어기의 성능을 향상시키기 위한 이중포트 구조의 트랜잭션 버퍼를 구비한 캐쉬 제어기가 요청되고 있다.
본 발명은 상기의 제반 요구사항에 기반하여 안출된 것으로, 다수의 이중포트 버퍼를 구비하여 최소의 제어 오버헤드로 트랜잭션 버퍼링을 제어함으로써 캐쉬 이용률을 증대시키는 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한 캐쉬 제어기를 제공하는데 그 목적이 있다.
도 1은 여러 개의 컴퓨팅 노드가 하나의 상호연결망에 연결되어 있는 일반적인 구조의 CC-NUMA 컴퓨터 시스템을 블록도로 간략히 도시한 도면.
도 2는 본 발명의 일실시예에 따른 다수의 이중포트 트랜잭션 버퍼를 구비한 캐쉬제어기에 대한 내부 블록도.
도 3은 본 발명의 일실시예에 따른 이중포트 트랜잭션 버퍼의 내부 블록 및 제어신호를 도시한 도면.
도 4는 본 발명의 일실시예에 따른 이중포트 트랜잭션 버퍼의 내부 엔트리 구조를 도시한 도면.
도 5는 상기 도 3에 도시된 이중포트 트랜잭션 버퍼의 쓰기 및 읽기 동작을 충돌없이 수행하도록 제어하기 위한 쓰기모듈부 및 읽기모듈부 간의 비동기 인터페이스 신호에 대한 신호 타이밍도.
도 6은 본 발명의 일실시예에 따른 상기 도 2의 캐쉬제어로직부 내에 구비된 버퍼링 모드 레지스터(BMR)의 구조를 도시한 도면.
도 7은 상기 도 3에 도시된 이중포트 트랜잭션 버퍼의 쓰기포트를 통해 트랜잭션을 버퍼에 쓰기하는 쓰기 사이클 타이밍도.
도 8은 상기 도 3에 도시된 이중포트 트랜잭션 버퍼의 읽기포트를 통해 버퍼에 저장된 트랜잭션을 읽기하는 읽기 사이클 타이밍도.
* 도면의 주요 부분에 대한 설명
200 : 캐쉬제어로직부 210 : 노드버스 인터페이스부
220 : 상호연결망 인터페이스부
211 내지 214 : 버스측 이중포트 트랜잭션 버퍼
221 내지 224 : 망측 이중포트 트랜잭션 버퍼
300 : 이중포트 트랜잭션 버퍼 301, 302 : 엔트리
310 : 쓰기모듈부 320 : 읽기모듈부
상기 목적을 달성하기 위한 본 발명은, 다수의 컴퓨팅 노드가 하나의 상호연결망에 연결되는 CC-NUMA(Cache-Coherent Non-Uniform Memory Access) 컴퓨터 시스템에서 상기 컴퓨팅 노드 각각에 구비되어 다수의 프로세서를 연결하는 노드버스와 상기 상호연결망 사이에 위치하여 상기 컴퓨팅 노드 간의 캐쉬일관성 프로토콜을 수행하고, 상기 컴퓨팅 노드 각각에 구비된 캐쉬를 제어하기 위한 캐쉬 제어기에 있어서, 상기 노드버스에 연결되는 노드버스 인터페이스 수단; 상기 상호연결망에 연결되는 상호연결망 인터페이스 수단; 상기 컴퓨팅 노드 간의 캐쉬일관성 유지 프로토콜을 수행하고, 상기 캐쉬의 태그메모리 및 데이터메모리를 제어하기 위한 캐쉬제어로직수단; 상기 캐쉬제어로직수단과 상기 노드버스 인터페이스 수단 사이에 구비되며, 상기 노드버스를 통해 상기 프로세서가 상기 캐쉬 제어기에게 요청 및 응답한 트랜잭션을 버퍼링하거나 상기 캐쉬 제어기가 상기 프로세서 또는 상기 컴퓨팅 노드의 제어장치에게 요청 및 응답한 트랜잭션을 버퍼링하기 위한 다수의 버스측 이중포트 트랜잭션 버퍼링 수단; 및 상기 캐쉬제어로직수단과 상기 상호연결망 인터페이스 수단 사이에 구비되며, 상기 상호연결망을 통해 다른 컴퓨팅 노드의 원격 프로세서가 상기 캐쉬 제어기에게 요청 및 응답한 트랜잭션을 버퍼링하거나상기 캐쉬 제어기가 상기 원격 프로세서 또는 상기 다른 컴퓨팅 노드의 제어장치에게 요청 및 응답한 트랜잭션을 버퍼링하기 위한 다수의 망측 이중포트 트랜잭션 버퍼링 수단을 포함하여 이루어지며, 상기 캐쉬제어로직수단은, 상기 프로세서에 의해 쓰기 및 읽기 가능하며, 상기 다수의 버스측 이중포트 트랜잭션 버퍼링 수단 및 상기 다수의 망측 이중포트 트랜잭션 버퍼링 수단의 버퍼링 모드를 제어하기 위한 버퍼링 모드 레지스터를 포함하여 이루어진다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부된 도면을 참조하여 설명하기로 한다.
앞서 기술한 바와 같이, CC-NUMA 병렬 컴퓨터 시스템에서 여러 개의 컴퓨팅 노드에 물리적으로 분산되어 있는 메모리 모듈들을 하나의 논리적인 공유 메모리로 보여 주는 일련의 과정은 노드 간 캐쉬 일관성 프로토콜에 의해 정의된다. 이때, 캐쉬 제어기는 캐쉬 메모리의 제어뿐 아니라 상기 노드 간 캐쉬 일관성 프로토콜을 직접 수행함으로써, CC-NUMA 시스템의 핵심 제어기로서 역할을 수행하게 된다.
일반적으로, 컴퓨팅 노드들은 하나의 상호연결망을 통하여 연결되어 제어정보(control information) 및 데이터를 서로 주고 받으며, 각 노드에 있는 캐쉬 제어기는 원격 노드(remote node)의 메모리 데이터를 가져와 임시 저장하는 동시에 노드 간 캐쉬일관성(inter-node cache coherence)을 유지시키는 제어동작을 수행하게 된다.
즉, 캐쉬 제어기는 CC-NUMA 컴퓨터 시스템의 핵심 소자로, 원격노드 데이터를 캐슁(caching)하는 기능은 물론 분산된 메모리를 하나의 공유 메모리로 보여주는 CC-NUMA 컴퓨터 시스템의 가장 중요한 기능을 담당한다고 할 수 있다.
도 1은 여러 개의 컴퓨팅 노드가 하나의 상호연결망에 연결되어 있는 일반적인 구조의 CC-NUMA 컴퓨터 시스템에 대한 블록도이다.
도 1을 참조하면, 각 컴퓨팅 노드(110, 120)는 최소 1개에서부터 최대 4개까지의 프로세서를 포함하는 대칭형 다중프로세서 구조로 이루어진다. 각 컴퓨팅 노드(110, 120)에 구비되는 각각의 프로세서(111A, 111B, 111C, 111D, 121A, 121B, 121C, 121D)는 노드버스(112, 122)에 연결되고, 노드버스(112, 122)에 연결된 메모리 및 입출력 제어기(MIOC, Memory and Input/Output Controller)(113, 123)(이하, MIOC라 함)를 통하여 메모리(114, 124)와 입출력장치(115, 125)(I/O)에 접근할 수 있다.
그리고, 각 컴퓨팅 노드(110, 120)에 구비되는 캐쉬 제어기(116, 126)는 상호연결망(100)에 연결된 여러 개의 컴퓨팅노드(110, 120)를 하나의 CC-NUMA 컴퓨터 시스템으로 보여주는 핵심기능을 수행한다. 이를 위하여 캐쉬 제어기(116, 126)는 노드버스(112, 122)와 상호연결망(100) 사이에 위치하여 노드간 캐쉬일관성 프로토콜을 수행하고 태그메모리(tag memory, 117, 127)와 데이터메모리(data memory, 118, 128)로 구성된 캐쉬를 제어한다.
도 2는 본 발명의 일실시예에 따른 다수의 이중포트 트랜잭션 버퍼를 구비한 캐쉬제어기에 대한 내부 블록도이다.
도 2에 도시된 바와 같이, 본 발명의 캐쉬 제어기(도 1의 도면부호 116,126)는 핵심 장치인 캐쉬제어로직부(200)를 중심으로 노드버스 인터페이스부(210), 상호연결망 인터페이스부(220) 및 8개의 이중포트 트랜잭션 버퍼(211, 212, 213, 214, 221, 222, 223, 224)로 이루어지며, 외부로는 노드버스(112, 122), 상호연결망(100), 태그 메모리(117, 127) 및 데이터 메모리(118, 128)와 연결되어 있다.
구체적으로, 캐쉬제어로직부(200)는 노드간 캐쉬일관성 유지 프로토콜을 수행할 뿐만 아니라 캐쉬를 구성하는 태그메모리(117, 127)와 데이터메모리(118, 128)를 제어한다. 또한, 캐쉬제어로직부(200)는 이중포트 트랜잭션 버퍼의 버퍼링 모드를 제어하기 위하여 프로세서에 의하여 쓰기와 읽기가 가능한 버퍼링 모드 레지스터(BMR)(201)를 내장하고 있다.
그리고, 캐쉬 제어기 내부에 구비되는 8개의 이중포트 트랜잭션 버퍼는 4개의 버스측 버퍼(211, 212, 213, 214)와 4개의 망측 버퍼(221, 222, 223, 224)로 구분되어진다. 4개의 버스측 버퍼는 버스측 입력요구 버퍼(BIQ, Bus-side Incoming reQuest buffer)(211), 버스측 출력요구 버퍼(BOQ, Bus-side Outgoing reQuest buffer)(212), 버스측 출력응답 버퍼(BOP, Bus-side Outgoing rePly buffer)(213) 및 버스측 입력응답 버퍼(BIP, Bus-side Incoming rePly buffer)(214)이다. 여기서, BIQ(211)는 로컬 프로세서(local processor)가 캐쉬 제어기에게 요청한 트랜잭션을 버퍼링하고, BOQ(212)는 캐쉬 제어기가 로컬 프로세서나 로컬 MIOC에게 요청한 트랜잭션을 버퍼링하고, BOP(213)는 캐쉬 제어기가 로컬 프로세서에게 응답한 트랜잭션을 버퍼링하고, BIP(214)는 로컬 프로세서나 로컬 MIOC가 캐쉬 제어기에게 응답한 트랜잭션을 버퍼링한다. 그리고, 4개의 망측 버퍼는 망측 입력요구버퍼(NIQ, Network-side Incoming reQuest buffer)(221), 망측 출력요구 버퍼(NOQ, Network-side Outgoing reQuest buffer)(222), 망측 출력응답 버퍼(NOP, Network-side Outgoing rePly buffer)(223) 및 망측 입력응답 버퍼(NIP, Network-side Incoming rePly buffer)(214)이다. 여기서, NIQ(221)는 원격 프로세서가 캐쉬 제어기에게 요청한 트랜잭션을 버퍼링하고, NOQ(222)는 캐쉬 제어기가 원격 프로세서나 원격 MIOC에게 요청한 트랜잭션을 버퍼링하고, NOP(223)는 캐쉬 제어기가 원격 프로세서에게 응답한 트랜잭션을 버퍼링하고, NIP(224)는 원격 프로세서나 원격 MIOC가 캐쉬 제어기에게 응답한 트랜잭션을 버퍼링한다.
도 2에 도시된 바와 같이 구성되는 캐쉬 제어기 내부에 구비된 이중포트 트랜잭션 버퍼의 구조에 대해 도 3을 참조하여 설명한다.
도 3은 본 발명의 일실시예에 따른 이중포트 트랜잭션 버퍼의 내부 블록 및 제어신호를 도시한 도면이다.
도 3을 참조하면, 본 발명의 이중포트 트랜잭션 버퍼(300)는 동일한 구조를 갖는 2개의 엔트리(301, 302)로 구성되며, 쓰기포트를 통하여 쓰기모듈부(310)와 연결되고, 읽기포트를 통하여 읽기모듈부(320)와 연결되어 있다. 여기서, 쓰기모듈부(310)와 읽기모듈부(320)는 캐쉬 제어기 내부에 구비되는 8개의 이중포트 트랜잭션 버퍼에 따라 달라진다. 즉, 이중포트 트랜잭션 버퍼 중 BIQ(211) 및 BIP(214)와 연결되는 쓰기모듈부(310)는 노드버스 인터페이스부(210)이고, 읽기모듈부(320)는 캐쉬제어로직부(201)인 반면에, BOQ(212) 및 BOP(213)와 연결되는 쓰기모듈부(310)는 캐쉬제어로직부(201)이고, 읽기모듈부(320)는 노드버스 인터페이스부(210)이다.4개의 망측 버퍼도 이와 동일하게 읽기모듈부 및 쓰기모듈부에 연결된다.
한편, 쓰기포트를 통해 WE1 신호(311), WE0 신호(312), WA 버스신호(313), WD 버스신호(314), WCLK 클럭신호(315) 등이 쓰기모듈부(310)로부터 이중포트 트랜잭션 버퍼(300)로 인가되며, 읽기포트를 통해 OE1 신호(321), OE0 신호(322) 및 RA 버스신호(323)가 읽기모듈부(320)로부터 이중포트 트랜잭션 버퍼(300)로 인가되고, RD 버스신호(324)가 이중포트 트랜잭션 버퍼(300)로부터 읽기모듈부(320)로 인가된다. 여기서, WE1 신호(311)는 이중포트 트랜잭션 버퍼(300)의 엔트리 1(301)에 대한 쓰기 인에이블 신호이고, WE0 신호(312)는 이중포트 트랜잭션 버퍼(300)의 엔트리 0(302)에 대한 쓰기 인에이블 신호이다. 그리고, WA 버스신호(313)는 이중포트 트랜잭션 버퍼(300)의 엔트리 주소를 지정하는 버스신호이고, WD 버스신호(314)는 엔트리에 저장할 데이터를 운반하는 버스신호이다. WCLK 클럭신호(315)는 쓰기 포트의 동기 동작(synchronous operations)에 사용되는 구형파 클럭신호이다. OE1 신호(321)는 이중포트 트랜잭션 버퍼(300)의 엔트리 1(301)에 대한 읽기 인에이블 신호이고, OE0 신호(322)는 버퍼(300)의 엔트리 0(302)에 대한 읽기 인에이블 신호이다. 그리고, RA 버스신호(323)는 이중포트 트랜잭션 버퍼(300)의 엔트리 주소를 지정하는 버스신호이며, RD 버스신호(324)는 이중포트 트랜잭션 버퍼(30)의 엔트리로부터 읽은 데이터를 운반하는 버스신호이다. 여기서, 읽기 포트에서는 클럭 신호없이 비동기적으로(asynchronously) 버퍼 데이터를 읽는다. 이들 포트 제어신호의 제어 타이밍은 이후 서술된 도 7 및 도 8에 상세히 도시되어 있으며, 도 7 및 도 8에 대한 설명부분에서 상세히 기술하기로 한다.
한편, 쓰기모듈부(310)와 읽기모듈부(320)는 비동기 인터페이스 신호를 통하여 직접 연결되며, 이들 비동기 인터페이스 신호(REQ 331, ENT 332, DONE 333, ERR 334)는 이중포트 트랜잭션 버퍼(300)의 쓰기와 읽기를 충돌없이 고속으로 수행하도록 제어 메커니즘을 제공한다. 여기서, REQ 신호(331)는 쓰기모듈부(310)가 읽기모듈부(320)로 구동하는 인터페이스 신호로서, 이중포트 트랜잭션 버퍼(300)에 저장된 데이터를 읽어갈 것을 요청하는 신호이고, ENT 신호(332)는 쓰기모듈부(310)가 읽기모듈부(320)로 구동하고 REQ 신호(331)가 '1'로 인에이블될 때에만 의미가 있으며, 이중포트 트랜잭션 버퍼(300)의 2개 엔트리(301, 302) 중 읽어갈 데이터가 저장되어 있는 엔트리를 나타낸다. 그리고, DONE 신호(333)는 읽기모듈부(320)가 쓰기모듈부(310)로 구동하는 인터페이스 신호로서, 요청한 버퍼(300)의 엔트리 데이터를 읽어갔음을 나타낸다. 마지막으로, ERR 신호(334)는 읽기모듈부(320)가 쓰기모듈부(310)로 구동하는 인터페이스 신호로서, 요청한 버퍼(300)의 엔트리 데이터의 읽기 시 오류가 발생하였음을 나타낸다. 이들 비동기 인터페이스 신호의 제어타이밍은 도 5에 도시되어 있으며, 도 5에 대한 설명부분에서 상세히 기술하기로 한다.
도 4는 본 발명의 일실시예에 따른 이중포트 트랜잭션 버퍼의 내부 엔트리 구조를 도시한 도면이다.
도면을 참조하면, 하나의 버퍼 엔트리(400)는 헤더부(410), 데이터부(420) 및 테일부(430)로 이루어지며, 헤더부(410)는 해당 트랜잭션에 관한 기본 정보를 저장하는 부분으로서, 트랜잭션의 종류, 주소, 트랜잭션 길이, 데이터 길이 등의제어정보를 포함하며, 1 내지 4 플릿(flit)으로 구성된다. 이때, 하나의 플릿은 64비트로 이루어진다. 그리고, 데이터부(420)는 원격 노드의 메모리 데이터를 저장하는 부분으로서, 캐쉬의 데이터 메모리(도 1의 118, 128)에 임시 저장되는 데이터를 저장한다. 이때, 데이터부(420)는 1 내지 8 플릿으로 구성된다. 마지막으로, 테일부(430)는 해당 트랜잭션의 오류제어 정보를 저장하는 부분으로서, 0 내지 1 플릿으로 구성된다.
이와 같이 구성되는 이중포트 트랜잭션 버퍼의 각 버퍼 엔트리에 저장되는 트랜잭션의 총 길이는 최소 1 플릿에서부터 최대 13 플릿까지로 가변적이다. 길이가 가변적인 이유는 트랜잭션의 종류에 따라 헤더부, 데이터부 및 테일부의 크기가 각기 다르기 때문이다.
도 5는 상기 도 3에 도시된 이중포트 트랜잭션 버퍼(300)의 쓰기 및 읽기 동작을 충돌없이 수행하도록 제어하기 위한 쓰기모듈부(310) 및 읽기모듈부(320) 간의 비동기 인터페이스 신호에 대한 신호 타이밍도로서, 도 5를 참조하여, 쓰기모듈부(310) 및 읽기모듈부(320)의 이중포트 트랜잭션 버퍼(300)에 대한 쓰기 및 읽기동작을 아래에 설명한다.
먼저, REQ 신호(331)는 앞서 서술한 바와 같이 쓰기모듈부(310)가 읽기모듈부(320)로 구동하는 신호로서, 이중포트 트랜잭션 버퍼(300)에 저장된 트랜잭션을 읽어갈 것을 요청하는 신호이다. 쓰기모듈부(310)는 버퍼(300)의 어느 한 엔트리에 트랜잭션을 저장한 후 REQ 신호(331)가 현재 '0'이고 DONE 신호(333) 역시 '0'이면, REQ 신호(510)를 '1'로 구동한다(501). 그리고, 쓰기모듈부(310)가 버퍼(300)의 엔트리에 트랜잭션을 저장한 후에도 REQ 신호(331)가 '1'이거나 DONE 신호(333)가 '1'이면, 쓰기모듈부(310)는 상기 조건(즉, REQ 신호가 '0'이고, DONE 신호가 '0'인 조건)이 만족될 때까지 기다리다가 조건이 만족되면 REQ 신호(331)를 '1'로 구동한다.
다음으로, ENT 신호(332)는 쓰기모듈부(310)가 읽기모듈부(320)로 구동하는 신호로, REQ 신호(331)가 '1'일 때에만 의미가 있으며, 버퍼(300)의 2개의 엔트리(301, 302) 중 읽어갈 트랜잭션이 저장되어 있는 엔트리를 나타낸다. 따라서, 쓰기모듈부(310)는 REQ 신호(331)를 '1'로 구동함과 동시에 ENT 신호(332)를 구동한다.
다음으로, DONE 신호(333)는 읽기모듈부(320)가 쓰기모듈부(310)로 구동하는 인터페이스 신호로서, 요청한 버퍼(300)의 엔트리에 저장되어 있는 트랜잭션을 읽어갔음을 나타낸다.
도면에서, 쓰기모듈부(310)가 REQ 신호(331)를 '1'로 구동한 상태에서 읽기모듈부(320)는 ENT 신호(332)가 나타내는 버퍼(300)의 엔트리에 저장된 트랜잭션을 읽어간 후 DONE 신호(333)가 현재 '0'이면 DONE 신호(333)를 '1'로 구동한다(502, 503).
그리고, ERR 신호(334)는 읽기모듈부(320)가 쓰기모듈부(310)로 구동하는 신호로서, 요청한 버퍼 엔트리의 트랜잭션 읽기 동작 시 오류가 발생하였음을 나타내는 인터페이스 신호이며, 읽기모듈부(320)에 의해 DONE 신호(333)가 '1'로 구동됨과 동시에 '1'(오류 발생을 의미) 또는 '0'(정상 동작을 의미)으로 구동된다(507).
만약, DONE 신호(333)가 '1'로 구동되면 쓰기모듈부(310)는 REQ 신호(331)를 '0'으로 구동한다(504). 이때, ENT 신호(332)는 더이상 유효하지 않게 된다(505). 그리고, REQ 신호(331)가 '1'에서 '0'으로 바뀌면, 읽기모듈부(320)는 DONE 신호(333)를 '0'으로 구동함으로써(506), 엔트리에 저장된 하나의 트랜잭션에 대한 읽기 동작이 종료되게 된다. 이때, 읽기모듈부(320)는 DONE 신호(333)를 '0'으로 구동함과 동시에 ERR 신호(334)를 '0'으로 구동한다(508).
도 6은 본 발명의 일실시예에 따른 상기 도 2의 캐쉬제어로직부(200) 내에 구비된 버퍼링 모드 레지스터(BMR)의 구조를 도시한 것이다.
도면을 참조하면, BMR(600)은 프로세서에 의하여 읽기 및 쓰기가 가능하며, 쓰기가 가능한 BOCM 필드(602), BICM 필드(604), NOCM 필드(606), NICM 필드(608)와, 정의되지 않은 필드(reserved field)(601, 603, 605, 607)로 이루어지며, 쓰기가 가능한 BOCM 필드(602), BICM 필드(604), NOCM 필드(606), NICM 필드(608)의 각 필드에 '0'에서 '15'까지의 값을 쓸 수 있다.이와 같은 버퍼링 모드 레지스터(BMR)(600)는, 이중포트 트랜잭션 버퍼를 통하여 트랜잭션을 버퍼링하는 컷스루우(cut-through) 모드로 제어되어 버퍼링을 수행하는데, 상기 컷스루우(cut-through) 모드는 가상 컷스루우(virtual cut-through) 모드, 저장 후 전송(store-and-forward) 모드 및 지연된 가상 컷스루우(delayed virtual cut-through) 모드의 3가지 방법을 총칭한다.저장 후 전송(store-and-forward) 모드는 하나의 트랜잭션을 이중포트 트랜잭션 버퍼의 하나의 엔트리에 쓰기포트를 통하여 저장하고 읽기포트를 통하여 읽어가는 일련의 버퍼링 동작에서, 트랜잭션의 첫번째 플릿이 엔트리에 저장되기 시작하면 곧바로 읽기포트를 통하여 저장된 트랜잭션을 읽어가기 시작하는 버퍼링 모드이다. 읽어가는 속도가 저장하는 속도보다 같거나 느린 경우에 적용이 가능하다.그리고, 가상 컷스루우(virtual cut-through) 모드는 하나의 트랜잭션을 이중포트 트랜잭션 버퍼의 하나의 엔트리에 쓰기포트를 통하여 저장하고 읽기포트를 통하여 읽어가는 일련의 버퍼링 동작에서, 트랜잭션의 첫번째 플릿이 엔트리에 저장되기 시작하면 곧바로 읽기포트를 통하여 저장된 트랜잭션을 읽어가기 시작하는 버퍼링 모드이다. 읽어가는 속도가 저장하는 속도보다 같거나 느린 경우에 적용이 가능하다.그리고, 지연된 가상 컷스루우(delayed virtual cut-through) 모드는 하나의 트랜잭션을 이중포트 트랜잭션 버퍼의 하나의 엔트리에 쓰기포트를 통하여 저장하고 읽기포트를 통하여 읽어가는 일련의 버퍼링 동작에서, 트랜잭션의 두 번째 이상의 플릿이 엔트리에 저장된 후에 읽기포트를 통하여 저장된 트랜잭션을 읽어가기 시작하는 버퍼링 모드이다. 지연된 가상 컷스루우는 가상 컷스루우보다 읽기 동작의 시작시점이 지연되기 때문에 붙여진 명칭이다. 읽어가는 속도가 저장하는 속도보다 빠른 경우에 적용할 수 있다.상기의 각각의 버퍼링 모드를 적절히 선택함에 따라, 캐시 제어기에 요구되고 응답되는 각종 트랜잭션을 신속하고 효과적으로 제어할 수 있다.
여기서, BOCM 필드(602)는 BOQ(212)와 BOP(213)의 컷스루우(cut-through) 모드를 나타내고, BICM 필드(604)는 BIQ(211)와 BIP(214)의 컷스루우 모드를 나타낸다. 그리고, NOCM 필드(606)는 NOQ(222)와 NOP(223)의 컷스루우 모드를 나타내고, NICM 필드(608)는 NIQ(221)와 NIP(224)의 컷스루우 모드를 나타낸다. 이들 필드의 값이 '0'이면 해당 버퍼는 가상 컷스루우(virtual cut-through) 모드로 제어되고, 값이 '15'이면 해당 버퍼는 저장 후 전송(store-and-forward) 모드로 제어된다. 이들 필드의 값이 '1' 내지 '14'이면, 해당 버퍼는 지연된 가상 컷스루우(delayedvirtual cut-through) 모드로 제어된다. 즉, 필드의 값이 '1'이면 1사이클(클럭)을 기다린 후 가상 컷스루우(virtual cut-through) 모드로 제어되고, 필드의 값이 '14'이면 14사이클(클럭)을 기다린 후 가상 컷스루우(virtual cut-through) 모드로 제어된다.
그리고, 정의되지 않은 필드(reserved field)(601, 603, 605, 607)는 사용되지 않는 영역으로서 이 필드의 값은 아무런 의미가 없으며, 향후의 기능 확장시에 정의하여 사용될 수 있다.
도 7은 상기 도 3에 도시된 이중포트 트랜잭션 버퍼(300)의 쓰기포트를 통해 트랜잭션을 버퍼에 쓰기하는 쓰기 사이클 타이밍도를 도시한 것으로, 5 플릿으로 구성된 트랜잭션을 버퍼에 쓰는 경우를 일예로 도시한 타이밍도이다.
도면에서, WE 신호(702)는 버퍼 엔트리에 대한 쓰기 인에이블 신호로서, 도 3의 WE1 신호(311) 또는 WE0 신호(312)에 해당하며, 나머지 신호(WA 버스신호(703), WD 버스신호(704), WCLK 클럭신호(701))들은 도 3에 대한 설명부분에서 정의한 그대로의 신호이다.
도면을 참조하면, 데이터 쓰기동작은 쓰기클럭인 WCLK 클럭신호(701)의 상승에지(rising edge)에 동기되어 수행되며, 쓰기모듈부(310)는 WCLK 클럭신호(701)에 동기되어 쓰고자하는 플릿수에 해당하는 클럭수만큼 WE 신호(702)와 WA 버스신호(703) 및 WD 버스신호(704)를 구동하게 된다. 실제 데이터 쓰기는 WE 신호(702)가 '1'인 경우에서만 이루어진다.
도 8은 상기 도 3에 도시된 이중포트 트랜잭션 버퍼(300)의 읽기포트를 통해버퍼에 저장된 트랜잭션을 읽기하는 읽기 사이클 타이밍도를 도시한 것으로, 5 플릿으로 구성된 트랜잭션을 버퍼로부터 읽는 경우를 일예로 도시한 타이밍도이다.
도면에서, OE 신호(802)는 버퍼 엔트리에 대한 읽기 인에이블 신호로서, 도 3의 OE1 신호(321) 또는 OE0 신호(322)에 해당하며, 나머지 신호(RA 버스신호(803), RD 버스신호(804))들은 도 3에 대한 설명부분에서 정의한 그대로의 신호이다.
데이터 읽기동작은 클럭 신호없이 비동기적으로 수행되며, 읽기모듈부(320)는 읽고자하는 플릿수에 해당하는 OE 신호(801)와 RA 버스신호(802) 및 RD 버스신호(803)를 구동하여 수행되며, 실제 데이터 읽기는 OE 신호(801)가 '1'인 경우에서만 이루어진다.
본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.
상기와 같이 이루어지는 본 발명은, 기능에 따라 분리된 8개의 이중포트 트랜잭션 버퍼를 구비하여 캐쉬 제어기에 요구되고 응답되는 각종 트랜잭션을 최소의 제어 오버헤드로 신속하고 효율적으로 트랜잭션을 버퍼링할 수 있으며, 그로부터 트랜잭션 간의 교착상태를 방지하고 트랜잭션의 블럭킹을 최소화하며 원격 데이터접근시간을 최소화하고, 전송률을 극대화하여 결국 캐쉬 이용률을 증대시킬 수 있는 탁월한 효과를 구현할 수 있다.
따라서, 본 발명은 전체 CC-NUMA 시스템의 전반적인 성능을 높일 수 있다.

Claims (19)

  1. 다수의 컴퓨팅 노드가 하나의 상호연결망에 연결되는 CC-NUMA(Cache-Coherent Non-Uniform Memory Access) 컴퓨터 시스템에서 상기 컴퓨팅 노드 각각에 구비되어 다수의 프로세서를 연결하는 노드버스와 상기 상호연결망 사이에 위치하여 상기 컴퓨팅 노드 간의 캐쉬일관성 프로토콜을 수행하고, 상기 컴퓨팅 노드 각각에 구비된 캐쉬를 제어하기 위한 캐쉬 제어기에 있어서,
    상기 노드버스에 연결하기 위한 노드버스 인터페이스 수단;
    상기 상호연결망에 연결하기 위한 상호연결망 인터페이스 수단;
    상기 컴퓨팅 노드 간의 캐쉬일관성 유지 프로토콜을 수행하고, 상기 캐쉬의 태그메모리 및 데이터메모리를 제어하기 위한 캐쉬제어로직수단;
    상기 캐쉬제어로직수단과 상기 노드버스 인터페이스 수단 사이에 구비되며, 상기 노드버스 인터페이스 수단을 출입하는 트랜잭션을 버퍼링하기 위한 다수의 버스측 이중포트 트랜잭션 버퍼링 수단; 및
    상기 캐쉬제어로직수단과 상기 상호연결망 인터페이스 수단 사이에 구비되며, 상기 상호연결망 인터페이스 수단을 출입하는 트랜잭션을 버퍼링하기 위한 다수의 망측 이중포트 트랜잭션 버퍼링 수단을 포함하여 이루어지며,
    상기 캐쉬제어로직수단은,
    상기 프로세서에 의해 쓰기 및 읽기 가능하며, 상기 다수의 버스측 이중포트 트랜잭션 버퍼링 수단 및 상기 다수의 망측 이중포트 트랜잭션 버퍼링 수단의 버퍼링 모드를 제어하기 위한 버퍼링 모드 레지스터
    를 포함하는 캐쉬 제어기.
  2. 제 1 항에 있어서,
    상기 다수의 버스측 이중포트 트랜잭션 버퍼링 수단은 각각,
    동일한 구조를 갖는 다수의 엔트리를 포함하여,
    상기 노드버스 인터페이스 수단 또는 상기 캐쉬제어로직수단으로부터 인가되는 다수의 쓰기제어신호에 응답하여 상기 엔트리에 상기 트랜잭션을 쓰기하되, 쓰기클럭신호에 동기되어 쓰기 동작하도록 제어되어 버퍼링하며,
    상기 노드버스 인터페이스 수단 또는 상기 캐쉬제어로직수단으로부터 인가되는 다수의 읽기제어신호에 응답하여 상기 엔트리에 저장된 상기 트랜잭션을 읽기 동작하도록 제어되어 버퍼링하도록 하는 것을 특징으로 하는 캐쉬 제어기.
  3. 제 2 항에 있어서,
    상기 노드버스 인터페이스 수단 및 상기 캐쉬제어로직수단은,
    상기 버스측 이중포트 트랜잭션 버퍼링 수단의 쓰기 및 읽기 동작을 충돌없이 수행하도록 제어하는 다수의 비동기 인터페이스 신호에 응답하여 상기 엔트리에 대한 읽기 및 쓰기 동작을 구동하는 것을 특징으로 하는 캐쉬 제어기.
  4. 제 1 항에 있어서,
    상기 다수의 망측 이중포트 트랜잭션 버퍼링 수단은 각각,
    동일한 구조를 갖는 다수의 엔트리를 포함하여,
    상기 상호연결망 인터페이스 수단 또는 상기 캐쉬제어로직수단으로부터 인가되는 다수의 쓰기제어신호에 응답하여 상기 엔트리에 상기 트랜잭션을 쓰기하되, 쓰기클럭신호에 동기되어 쓰기 동작하도록 제어되어 버퍼링하며,
    상기 상호연결망 인터페이스 수단 또는 상기 캐쉬제어로직수단으로부터 인가되는 다수의 읽기제어신호에 응답하여 상기 엔트리에 저장된 상기 트랜잭션을 읽기 동작하도록 제어되어 버퍼링하도록 하는 것을 특징으로 하는 캐쉬 제어기.
  5. 제 4 항에 있어서, 상기 상호연결망 인터페이스 수단 및 상기 캐쉬제어로직수단은,
    상기 망측 이중포트 트랜잭션 버퍼링 수단의 쓰기 및 읽기 동작을 충돌없이 수행하도록 제어하는 다수의 비동기 인터페이스 신호에 응답하여 상기 엔트리에 대한 읽기 및 쓰기 동작을 구동하는 것을 특징으로 하는 캐쉬 제어기.
  6. 제 2 항 또는 제 4 항에 있어서, 상기 다수의 엔트리는 각각,
    해당 트랜잭션에 관한 기본 정보를 저장하는 헤더부;
    상기 트랜잭션을 저장하는 데이터부; 및
    해당 트랜잭션의 오류 제어 정보를 저장하는 테일부를 포함하여,
    1 내지 13개의 플릿으로 구성되는 것을 특징으로 하는 캐쉬 제어기.
  7. 다수의 컴퓨팅 노드가 하나의 상호연결망에 연결되는 CC-NUMA(Cache-Coherent Non-Uniform Memory Access) 컴퓨터 시스템에서 상기 컴퓨팅 노드 각각에 구비되어 다수의 프로세서를 연결하는 노드버스와 상기 상호연결망 사이에 위치하여 상기 컴퓨팅 노드 간의 캐쉬일관성 프로토콜을 수행하고, 상기 컴퓨팅 노드 각각에 구비된 캐쉬를 제어하기 위한 캐쉬 제어기에 있어서,
    상기 노드버스에 연결되는 노드버스 인터페이스 수단;
    상기 상호연결망에 연결되는 상호연결망 인터페이스 수단;
    상기 컴퓨팅 노드 간의 캐쉬일관성 유지 프로토콜을 수행하고, 상기 캐쉬의 태그메모리 및 데이터메모리를 제어하기 위한 캐쉬제어로직수단;
    상기 캐쉬제어로직수단과 상기 노드버스 인터페이스 수단 사이에 구비되며, 상기 노드버스 인터페이스 수단을 출입하는 트랜잭션을 버퍼링하기 위한 4개의 버스측 이중포트 트랜잭션 버퍼링 수단; 및
    상기 캐쉬제어로직수단과 상기 상호연결망 인터페이스 수단 사이에 구비되며, 상기 상호연결망 인터페이스 수단을 출입하는 트랜잭션을 버퍼링하기 위한 4개의 망측 이중포트 트랜잭션 버퍼링 수단을 포함하여 이루어지며,
    상기 캐쉬제어로직수단은,
    상기 프로세서에 의해 쓰기 및 읽기 가능하며, 상기 다수의 버스측 이중포트 트랜잭션 버퍼링 수단 및 상기 다수의 망측 이중포트 트랜잭션 버퍼링 수단의 버퍼링 모드를 제어하기 위한 버퍼링 모드 레지스터
    를 포함하여 이루어지는 캐쉬 제어기.
  8. 제 7 항에 있어서,
    상기 4개의 버스측 이중포트 트랜잭션 버퍼링 수단은,
    상기 프로세서가 상기 캐쉬 제어기에게 요청한 상기 트랜잭션을 버퍼링하기 위한 버스측 입력요구 버퍼링 수단;
    상기 캐쉬 제어기가 상기 프로세서 또는 상기 컴퓨팅 노드의 제어장치에게 요청한 상기 트랜잭션을 버퍼링하기 위한 버스측 출력요구 버퍼링 수단;
    상기 캐쉬 제어기가 상기 프로세서에게 응답한 상기 트랜잭션을 버퍼링하기 위한 버스측 출력응답 버퍼링 수단; 및
    상기 프로세서 또는 상기 컴퓨팅 노드의 제어장치가 상기 캐쉬 제어기에게 응답한 상기 트랜잭션을 버퍼링하기 위한 버스측 입력응답 버퍼링 수단
    을 포함하는 것을 특징으로 하는 캐쉬 제어기.
  9. 제 8 항에 있어서,
    상기 4개의 버스측 이중포트 트랜잭션 버퍼링 수단은 각각,
    동일한 구조를 갖는 제1 및 제2 엔트리를 포함하여 이루어지며,
    상기 버스측 입력요구 버퍼링 수단 및 상기 버스측 입력응답 버퍼링 수단은,
    상기 노드버스 인터페이스 수단으로부터 인가되는 다수의 쓰기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 상기 트랜잭션을 쓰기하되, 쓰기클럭신호에 동기되어 쓰기 동작하도록 제어되어 버퍼링하며, 상기 캐쉬제어로직수단으로부터 인가되는 다수의 읽기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 저장된 상기 트랜잭션을 읽기 동작하도록 제어되어 버퍼링하고,
    상기 버스측 출력요구 버퍼링 수단 및 상기 버스측 출력응답 버퍼링 수단은,
    상기 캐쉬제어로직수단으로부터 인가되는 상기 다수의 쓰기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 상기 트랜잭션을 쓰기하되, 상기 쓰기클럭신호에 동기되어 쓰기 동작하도록 제어되어 버퍼링하며, 상기 노드버스 인터페이스 수단으로부터 인가되는 상기 다수의 읽기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 저장된 상기 트랜잭션을 읽기 동작하도록 제어되어 버퍼링하는 것을 특징으로 하는 캐쉬 제어기.
  10. 제 9 항에 있어서, 상기 노드버스 인터페이스 수단 및 상기 캐쉬제어로직수단은,
    상기 버스측 이중포트 트랜잭션 버퍼링 수단의 쓰기 및 읽기 동작을 충돌없이 수행하도록 제어하는 다수의 비동기 인터페이스 신호에 응답하여 상기 제1 및 제2 엔트리에 대한 읽기 및 쓰기 동작을 구동하는 것을 특징으로 하는 캐쉬 제어기.
  11. 제 10 항에 있어서,
    상기 노드버스 인터페이스 수단은 상기 버스측 입력요구 버퍼링 수단 또는 상기 버스측 입력응답 버퍼링 수단의 어느 한 엔트리에 상기 트랜잭션을 저장한 후 저장된 트랜잭션을 읽어갈 것을 요청하는 요청신호를 상기 캐쉬제어로직수단으로 출력하는 동시에, 상기 버스측 입력요구 버퍼링 수단 또는 상기 버스측 입력응답버퍼링 수단의 상기 제1 및 제2 엔트리 중 읽어갈 트랜잭션이 저장되어 있는 엔트리를 지정하는 엔트리지정신호를 상기 캐쉬제어로직수단으로 출력하고,
    상기 캐쉬제어로직수단은 상기 노드버스 인터페이스 수단으로부터 출력되는 상기 요청신호에 응답하여 상기 엔트리지정신호에 의해 지정된 해당 엔트리의 상기 트랜잭션을 정상적으로 읽어갔음을 나타내는 읽기완료신호 및 상기 엔트리에 저장된 상기 트랜잭션에 대한 읽기 동작 시의 에러 발생 유무를 나타내는 에러 신호를 상기 노드버스 인터페이스 수단으로 출력하되,
    상기 요청신호는 상기 읽기완료신호에 응답하여 디스에이블되며, 디스에이블된 상기 요청신호에 응답하여 상기 읽기완료신호 및 상기 에러 신호가 디스에이블되도록 구동하는 것을 특징으로 하는 캐쉬 제어기.
  12. 제 10 항에 있어서,
    상기 캐쉬제어로직수단은 상기 버스측 출력요구 버퍼링 수단 또는 상기 버스측 출력응답 버퍼링 수단의 어느 한 엔트리에 상기 트랜잭션을 저장한 후 저장된 트랜잭션을 읽어갈 것을 요청하는 요청신호를 상기 노드버스 인터페이스 수단으로 출력하는 동시에, 상기 버스측 출력요구 버퍼링 수단 또는 상기 버스측 출력응답 버퍼링 수단의 상기 제1 및 제2 엔트리 중 읽어갈 트랜잭션이 저장되어 있는 엔트리를 지정하는 엔트리지정신호를 상기 노드버스 인터페이스 수단으로 출력하고,
    상기 노드버스 인터페이스 수단은 상기 캐쉬제어로직수단으로부터 출력되는상기 요청신호에 응답하여 상기 엔트리지정신호에 의해 지정된 해당 엔트리의 상기 트랜잭션을 정상적으로 읽어갔음을 나타내는 읽기완료신호 및 상기 엔트리에 저장된 상기 트랜잭션에 대한 읽기 동작 시의 에러 발생 유무를 나타내는 에러 신호를 상기 캐쉬제어로직수단으로 출력하되,
    상기 요청신호는 상기 읽기완료신호에 응답하여 디스에이블되며, 디스에이블된 상기 요청신호에 응답하여 상기 읽기완료신호 및 상기 에러 신호가 디스에이블되도록 구동하는 것을 특징으로 하는 캐쉬 제어기.
  13. 제 7 항에 있어서, 상기 4개의 망측 이중포트 트랜잭션 버퍼링 수단은,
    상기 원격 프로세서가 상기 캐쉬 제어기에게 요청한 상기 트랜잭션을 버퍼링하기 위한 망측 입력요구 버퍼링 수단;
    상기 캐쉬 제어기가 상기 원격 프로세서 또는 상기 다른 컴퓨팅 노드의 제어장치에게 요청한 상기 트랜잭션을 버퍼링하기 위한 망측 출력요구 버퍼링 수단;
    상기 캐쉬 제어기가 상기 원격 프로세서에게 응답한 상기 트랜잭션을 버퍼링하기 위한 망측 출력응답 버퍼링 수단; 및
    상기 원격 프로세서 또는 상기 다른 컴퓨팅 노드의 제어장치가 상기 캐쉬 제어기에게 응답한 상기 트랜잭션을 버퍼링하기 위한 망측 입력응답 버퍼링 수단
    인 것을 특징으로 하는 캐쉬 제어기.
  14. 제 13 항에 있어서,
    상기 4개의 망측 이중포트 트랜잭션 버퍼링 수단은 각각,
    동일한 구조를 갖는 제1 및 제2 엔트리를 포함하여 이루어지며,
    상기 망측 입력요구 버퍼링 수단 및 상기 망측 입력응답 버퍼링 수단은,
    상기 상호연결망 인터페이스 수단으로부터 인가되는 다수의 쓰기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 상기 트랜잭션을 쓰기하되, 쓰기클럭신호에 동기되어 쓰기 동작하도록 제어되어 버퍼링하며, 상기 캐쉬제어로직수단으로부터 인가되는 다수의 읽기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 저장된 상기 트랜잭션을 읽기 동작하도록 제어되어 버퍼링하고,
    상기 망측 출력요구 버퍼링 수단 및 상기 망측 출력응답 버퍼링 수단은,
    상기 캐쉬제어로직수단으로부터 인가되는 상기 다수의 쓰기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 상기 트랜잭션을 쓰기하되, 상기 쓰기클럭신호에 동기되어 쓰기 동작하도록 제어되어 버퍼링하며, 상기 상호연결망 인터페이스 수단으로부터 인가되는 상기 다수의 읽기제어신호에 응답하여 상기 제1 또는 제2 엔트리에 저장된 상기 트랜잭션을 읽기 동작하도록 제어되어 버퍼링하는 것을 특징으로 하는 캐쉬 제어기.
  15. 제 14 항에 있어서, 상기 상호연결망 인터페이스 수단 및 상기 캐쉬제어로직수단은,
    상기 망측 이중포트 트랜잭션 버퍼링 수단의 쓰기 및 읽기 동작을 충돌없이 수행하도록 제어하는 다수의 비동기 인터페이스 신호에 응답하여 상기 제1 및 제2 엔트리에 대한 읽기 및 쓰기 동작을 구동하는 것을 특징으로 하는 캐쉬 제어기.
  16. 제 15 항에 있어서,
    상기 상호연결망 인터페이스 수단은 상기 망측 입력요구 버퍼링 수단 또는 상기 망측 입력응답 버퍼링 수단의 어느 한 엔트리에 상기 트랜잭션을 저장한 후 저장된 트랜잭션을 읽어갈 것을 요청하는 요청신호를 상기 캐쉬제어로직수단으로 출력하는 동시에, 상기 망측 입력요구 버퍼링 수단 또는 상기 망측 입력응답 버퍼링 수단의 상기 제1 및 제2 엔트리 중 읽어갈 트랜잭션이 저장되어 있는 엔트리를 지정하는 엔트리지정신호를 상기 캐쉬제어로직수단으로 출력하고,
    상기 캐쉬제어로직수단은 상기 상호연결망 인터페이스 수단으로부터 출력되는 상기 요청신호에 응답하여 상기 엔트리지정신호에 의해 지정된 해당 엔트리의 상기 트랜잭션을 정상적으로 읽어갔음을 나타내는 읽기완료신호 및 상기 엔트리에 저장된 상기 트랜잭션에 대한 읽기 동작 시의 에러 발생 유무를 나타내는 에러 신호를 상기 상호연결망 인터페이스 수단으로 출력하되,
    상기 요청신호는 상기 읽기완료신호에 응답하여 디스에이블되며, 디스에이블된 상기 요청신호에 응답하여 상기 읽기완료신호 및 상기 에러 신호가 디스에이블되도록 구동하는 것을 특징으로 하는 캐쉬 제어기.
  17. 제 15 항에 있어서,
    상기 캐쉬제어로직수단은 상기 망측 출력요구 버퍼링 수단 또는 상기 망측 출력응답 버퍼링 수단의 어느 한 엔트리에 상기 트랜잭션을 저장한 후 저장된 트랜잭션을 읽어갈 것을 요청하는 요청신호를 상기 상호연결망 인터페이스 수단으로 출력하는 동시에, 상기 망측 출력요구 버퍼링 수단 또는 상기 망측 출력응답 버퍼링 수단의 상기 제1 및 제2 엔트리 중 읽어갈 트랜잭션이 저장되어 있는 엔트리를 지정하는 엔트리지정신호를 상기 상호연결망 인터페이스 수단으로 출력하고,
    상기 상호연결망 인터페이스 수단은 상기 캐쉬제어로직수단으로부터 출력되는 상기 요청신호에 응답하여 상기 엔트리지정신호에 의해 지정된 해당 엔트리의 상기 트랜잭션을 정상적으로 읽어갔음을 나타내는 읽기완료신호 및 상기 엔트리에 저장된 상기 트랜잭션에 대한 읽기 동작 시의 에러 발생 유무를 나타내는 에러 신호를 상기 캐쉬제어로직수단으로 출력하되,
    상기 요청신호는 상기 읽기완료신호에 응답하여 디스에이블되며, 디스에이블된 상기 요청신호에 응답하여 상기 읽기완료신호 및 상기 에러 신호가 디스에이블되도록 구동하는 것을 특징으로 하는 캐쉬 제어기.
  18. 제 9 항 또는 제 14 항에 있어서, 상기 제1 및 제2 엔트리는 각각,
    해당 트랜잭션에 관한 기본 정보를 저장하는 헤더부;
    상기 트랜잭션을 저장하는 데이터부; 및
    해당 트랜잭션의 오류 제어 정보를 저장하는 테일부를 포함하여,
    1 내지 13 플릿으로 구성되는 것을 특징으로 하는 캐쉬 제어기.
  19. 제 9 항 또는 제 14 항에 있어서, 상기 4개의 버스측 이중포트 트랜잭션 버퍼링 수단 및 상기 4개의 망측 이중포트 트랜잭션 버퍼링 수단은 각각,
    상기 쓰기클럭신호의 제1 에지에 동기되며, 쓰고자하는 플릿수에 해당하는 클럭수만큼 인에이블되는 상기 제1 또는 제2 엔트리에 대한 쓰기인에이블신호, 상기 제1 또는 제2 엔트리의 주소를 지정하는 쓰기주소버스신호 및 쓰기할 상기 트랜잭션을 운반하는 쓰기데이터버스신호에 응답하여 상기 제1 또는 제2 엔트리에 상기 트랜잭션을 쓰고,
    비동기적으로 읽고자하는 플릿수만큼 인에이블되는 상기 제1 또는 제2 엔트리에 대한 읽기인에이블신호 및 상기 제1 또는 제2 엔트리의 주소를 지정하는 읽기주소버스신호에 응답하여 상기 제1 또는 제2 엔트리로부터 상기 트랜잭션을 읽는 동작을 수행하는 것을 특징으로 하는 캐쉬 제어기.
KR1019990058025A 1999-12-15 1999-12-15 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기 KR100329968B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019990058025A KR100329968B1 (ko) 1999-12-15 1999-12-15 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기
US09/487,348 US6415361B1 (en) 1999-12-15 2000-01-19 Apparatus for controlling cache by using dual-port transaction buffers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990058025A KR100329968B1 (ko) 1999-12-15 1999-12-15 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기

Publications (2)

Publication Number Publication Date
KR20010056536A KR20010056536A (ko) 2001-07-04
KR100329968B1 true KR100329968B1 (ko) 2002-03-27

Family

ID=19626137

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990058025A KR100329968B1 (ko) 1999-12-15 1999-12-15 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기

Country Status (2)

Country Link
US (1) US6415361B1 (ko)
KR (1) KR100329968B1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7330904B1 (en) * 2000-06-07 2008-02-12 Network Appliance, Inc. Communication of control information and data in client/server systems
US7058823B2 (en) * 2001-02-28 2006-06-06 Advanced Micro Devices, Inc. Integrated circuit having programmable voltage level line drivers and method of operation
US6912611B2 (en) * 2001-04-30 2005-06-28 Advanced Micro Devices, Inc. Split transactional unidirectional bus architecture and method of operation
US6813673B2 (en) * 2001-04-30 2004-11-02 Advanced Micro Devices, Inc. Bus arbitrator supporting multiple isochronous streams in a split transactional unidirectional bus architecture and method of operation
US6785758B1 (en) 2001-06-01 2004-08-31 Advanced Micro Devices, Inc. System and method for machine specific register addressing in a split transactional unidirectional bus architecture
US6925512B2 (en) * 2001-10-15 2005-08-02 Intel Corporation Communication between two embedded processors
US7529890B1 (en) * 2004-08-25 2009-05-05 Unisys Corporation System, apparatus and method for facilitating on-chip testing
CN101621469B (zh) * 2009-08-13 2012-01-04 杭州华三通信技术有限公司 数据报文存取控制装置和方法
US9237093B2 (en) * 2013-03-14 2016-01-12 Silicon Graphics International Corp. Bandwidth on-demand adaptive routing
US10452573B2 (en) 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465344A (en) 1990-08-20 1995-11-07 Matsushita Electric Industrial Co., Ltd. Microprocessor with dual-port cache memory for reducing penalty of consecutive memory address accesses
US5636358A (en) 1991-09-27 1997-06-03 Emc Corporation Method and apparatus for transferring data in a storage device including a dual-port buffer
US5682498A (en) 1993-11-12 1997-10-28 Intel Corporation Computer system with dual ported memory controller and concurrent memory refresh
US5721839A (en) 1995-10-13 1998-02-24 Compaq Computer Corporation Apparatus and method for synchronously providing a fullness indication of a dual ported buffer situated between two asynchronous buses
US5860120A (en) 1996-12-09 1999-01-12 Intel Corporation Directory-based coherency system using two bits to maintain coherency on a dual ported memory system

Also Published As

Publication number Publication date
US6415361B1 (en) 2002-07-02
KR20010056536A (ko) 2001-07-04

Similar Documents

Publication Publication Date Title
JP5537919B2 (ja) データ転送のためのシステムおよび方法
JP4124491B2 (ja) 異なるデータ転送速度での共用メモリへのアクセスを制御するパケット・ルーティング・スイッチ
US7389364B2 (en) Apparatus and method for direct memory access in a hub-based memory system
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
KR100329968B1 (ko) 이중포트 구조로 이루어진 다수의 트랜잭션 버퍼를 구비한캐쉬 제어기
US8046505B2 (en) Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US20050146944A1 (en) Memory module and method having on-board data search capabilities and processor-based system using such memory modules
US20040107265A1 (en) Shared memory data transfer apparatus
JP2000268006A (ja) マルチプロセッサシステム
EP1738267A2 (en) System and method for organizing data transfers with memory hub memory modules
JP2004185639A (ja) マルチ幅のメモリ・サブシステムをサポートするための方法
US6675251B1 (en) Bridge device for connecting multiple devices to one slot
US6263390B1 (en) Two-port memory to connect a microprocessor bus to multiple peripherals
US6157971A (en) Source-destination re-timed cooperative communication bus
JP2591502B2 (ja) 情報処理システムおよびそのバス調停方式
EP1367492A1 (en) Compute node to mesh interface for highly scalable parallel processing system
JPH09223103A (ja) 情報処理システム
KR100274450B1 (ko) 로컬버스의 트랜잭션 지연 제어방법 및 장치
JP2767811B2 (ja) ビデオデータ処理装置
JP2803616B2 (ja) 入出力バスインタフェース制御方式
JPH02211571A (ja) 情報処理装置
JP2003122701A (ja) インターフェース及び入出力デバイス
JPH07334473A (ja) マルチプロセッサシステム
JP2000035939A (ja) インテリジェント型pcアドインボード
JP2003308248A (ja) メモリ制御装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130304

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20150226

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20160226

Year of fee payment: 15

FPAY Annual fee payment

Payment date: 20170224

Year of fee payment: 16

FPAY Annual fee payment

Payment date: 20180226

Year of fee payment: 17