KR100381619B1 - 데이터 전송을 위한 이론적 조정 제공 시스템 및 방법 - Google Patents
데이터 전송을 위한 이론적 조정 제공 시스템 및 방법 Download PDFInfo
- Publication number
- KR100381619B1 KR100381619B1 KR10-2000-7004752A KR20007004752A KR100381619B1 KR 100381619 B1 KR100381619 B1 KR 100381619B1 KR 20007004752 A KR20007004752 A KR 20007004752A KR 100381619 B1 KR100381619 B1 KR 100381619B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- data
- early warning
- signal
- requesting
- Prior art date
Links
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
-
- 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
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)
- Bus Control (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 다중 요구장치 버스 환경에서 요구장치(장치)(540,320)가 메모리 저장 장치(110)로부터 데이터(230)를 수신하는데 소요되는 시간을 최적화하는 시스템 및 방법에 관한 것이다. 장치(540,320)가 데이터(230)에 대한 호출 요구를 수행한 후에, 데이터(230)가 곧 전송될 것임을 장치(540,320)에 경고하기 위하여, 본 발명은 조기 경고 신호(740)로 명명되는 단방향 응답 신호(740)를 제공하고, 상기 단방향 응답 신호(740)는 메모리 저장 장치(110)로부터 장치(540,320)로 송신된다. 데이터(230)가 도달될 때 데이터(230)를 즉시 수용하기 위하여 장치(540,320)가 데이터 버스(520,340)의 배타 소유권을 가지도록, 상기 조기 경고 신호(740)는 장치(540,320)가 데이터 버스(520,340)에 대해 조정되도록 한다. 본 발명은 주 메모리(110), 캐쉬 메모리(510), 하나 이상의 프로세서 모듈(120), 하나 이상의 I/O 모듈(320) 및 조기 경고 버스(710)로 구성된다. 캐쉬 메모리(510)는 인터페이스 버스(130)를 통하여 주 메모리(110)에 연결된다. 프로세서 모듈(120)은 프로세서 인터페이스 버스(520)를 통하여 캐쉬 메모리(510)에 연결된다. I/O 모듈(320)은 I/O 인터페이스 버스(340)를 통하여 주 메모리(110)에 연결된다. 프로세서 모듈(120) 및 I/O 모듈(320)은 주 메모리로부터 데이터 장치를 요구하기 위한 수단을 포함한다. 조기 경고 버스(710)는 주 메모리(110), 캐쉬 메모리(510) 및 I/O 모듈(320) 사이에 연결된다.
Description
다중 프로세서 시스템에서, 마이크로프로세서(microprocessor)와 같은 장치, 메모리 뱅크(memory bank) 및 주변 제어 장치는 다수의 버스(bus)를 통하여 상호연결된다. 상기 시스템은 조정으로 공지된 메모리 또는 데이터 버스(data bus)와 같은 기계 자원의 할당 원칙을 사용한다. 다중 장치가 데이터 전송을 위해 버스 액세스(access)와 겨루는 다중 프로세서 버스 환경에서, 각 장치는 버스의 소유권을 얻기 위해 조정하여야 한다. 예를 들어, 프로세서가 메모리로부터 한 단위의 데이터를 요구할 때, 잠시 후에 데이터가 프로세서에 전송된다. 메모리 장치가 데이터에 대한 요구를 받게 되면, 메모리 장치는 데이터 위치를 판독하여야 하고, 데이터를 호출하며, 데이터를 프로세서에 전송한다. 데이터에 대한 요구가 수신될 때 및 데이터가 전송될 때 사이의 메모리 잠재(latency)는 시간이 소요될 수 있다.
데이터가 메모리(또는 캐쉬(cache))로부터 프로세서로 전송될 수 있기 전에, 데이터를 전송하는 버스 에이전트(bus agent)는 데이터 버스의 소유권을 얻기 위해 조정되어야 한다. 상기의 예는 애플 컴퓨터(Apple Computer, Inc.)에 허여된 WO 96/35172에 기술되어 있고, 상기 문헌에 시스템 버스에 연결된 요구 에이전트를 가진 시스템의 그래픽 제어기가 기술되어 있다. 상기 시스템에서, 요구 에이전트가 메모리의 프레임 버퍼(frame buffer)로부터 정보를 호출하도록 제어기가 조정을 개시한다. 조정은 시간이 소요될 수 있다. 메모리 제어기가 데이터와 동일한 매체에 디렉토리 정보를 저장하는 디렉토리(directory) 기반 시스템에서, 메모리 제어기는 동시에 디렉토리 정보를 얻고, 요구 프로세서로의 전송에 대한 관련 데이터를 얻는다. 만약 디렉토리 상태가 적합하지 않다면, 판독되는 데이터는 전송되지 못하고, 요구를 만족시키기 위해 디렉토리를 적합한 상태로 구성하도록 작용이 가해진다. 대부분의 시간 동안 데이터는 프로세서로 전송될 수 있다. 만약 메모리 제어기가 조정 시작 전에 디렉토리 정보를 주시할 때까지 대기하면, 상기 메모리 제어기는 요구를 만족시키는데 있어서 시간을 낭비하는 것이다. 만약 메모리 제어기가 조정의 직접 제어를 가진다면, 데이터가 저장 매체로부터 유용할 때 유용한 데이터 버스를 가지도록 조정을 시작할 수 있고, 조정 시간을 잃지 않고 버스에 데이터를 전송하거나, 만약 디렉토리 상태가 적합하지 않다면, 데이터 전송없이 버스를 해제한다. 대형 다중 프로세서 시스템에서, 데이터 전송을 위해 프로세서 버스를 이론적으로 조정하기 위한 시스템 및 방법이 필요하도록, 버스를 삽입함으로써 메모리 제어기는 프로세서 버스로부터 분리된다.
본 발명은 다중 프로세서 시스템(multiple processor system)에 관한 것이고, 특히 메모리 저장 장치로부터 다중 프로세서 시스템의 장치로 데이터 전송을 가속시키기 위한 기술에 관한 것이다.
본 발명은 첨부 도면을 참고로 기술될 것이다.
도 1 은 본 발명의 선호되는 실시예에 따른 시스템 플랫폼 환경의 블록선도.
도 2 는 메모리 저장 장치의 실시예를 나타낸 도면.
도 3 은 처리 모듈의 실시예를 나타낸 도면.
도 4 는 I/O 모듈의 실시예를 나타낸 도면.
도 5 는 부처리 모듈의 실시예를 나타낸 도면.
도 6 은 디렉토리 기반 메모리 및 캐쉬 시스템의 실시예를 나타낸 도면.
도 7 은 본 발명의 선호되는 실시예를 나타낸 도면.
도 8 은 본 발명의 선호되는 실시예를 사용하여 데이터 전송을 가속시키기 위한 시간 다이어그램을 나타낸 도면.
*부호 설명
100...시스템 처리 플랫폼 110...메모리 저장 장치(MSU)
120...처리 모듈 130...MSU 인터페이스 버스
210...메모리 제어기 220...메모리
230...데이터 라인 320...입력/출력 모듈
330,340...인터페이스 350...크로스바
본 발명은 다중 요구장치 버스 환경에서 요구장치(장치)가 메모리 저장 장치로부터 데이터를 수신하는데 소요되는 시간을 최적화하는 시스템 및 방법에 관한 것이다. 본 발명은 조기 경고 신호로 명명되는 단방향 신호를 제공하고, 에이전트(agent)가 프로세서를 위해 MSU로부터 데이터를 요구한 후에, 상기 단방향신호는 메모리 저장 장치로부터 프로세서의 버스 에이전트로 송신된다. 신호는 데이터가 곧 전송될 것임을 버스 에이전트에 경고한다. 데이터가 도달될 때, 에이전트가 데이터 버스의 소유권을 위해 조정되고 데이터를 즉시 전송할 수 있도록, 상기 조기 경고 신호는 에이전트가 데이터 버스에 대해 조정되도록 한다.
선호되는 실시예에서, 본 발명은 주 메모리, 캐쉬 메모리, 하나 이상의 프로세서 모듈, 하나 이상의 I/O 모듈 및 조기 경고 버스로 구성된다. 캐쉬 메모리는 인터페이스 버스를 통하여 주 메모리에 연결된다. 프로세서 모듈은 프로세서 인터페이스 버스를 통하여 캐쉬 메모리에 연결된다. I/O 모듈은 I/O 인터페이스 버스를 통하여 주 메모리에 연결된다. 프로세서 모듈 및 I/O 모듈은 주 메모리로부터 데이터 장치를 요구하기 위한 수단을 포함한다. 조기 경고 버스는 주 메모리 및 캐쉬 메모리 사이에 연결된다.
조기 경고 버스는 수신지 버스 에이전트 및 유효 비트(bit)를 식별하는 제 1 필드(field)를 포함하고, 상기 유효 비트는 "1"로 설정될 때 유효 조기 경고 신호를 나타낸다.
조기 경고 신호가 조기 경고 버스를 가로질러 전송된 후에, 요구된 데이터 단위가 요구 인터페이스 버스를 통하여 전송된다. 조기 경고 신호는 요구된 데이터 단위를 수신하기 전에 버스 에이전트가 데이터 버스에 대해 조정되도록 한다.
조기 경고 신호의 이론적 특징을 설명하기 위해, 본 발명은 에이전트에 대한 조정 논리의 타이머(timer)로 구성되고, 상기 타이머는 조기 경고 신호가 수신될 때 설정되며, 만약 요구된 데이터가 수신되지 않았다면 타이머가 종료될 때 에이전트가 버스를 해제하거나 조정 시도를 취소하도록 한다. 또한, 본 발명은 에이전트가 버스에 대해 조정되도록 하고, 데이터가 경고 신호없이 주 메모리로부터 수신될 때 데이터를 전송하도록 한다.
본 발명의 다양한 실시예에 대한 구조 및 작동 외에, 본 발명의 다른 특징 및 장점은 첨부 도면을 참고로 하기에 더 상세히 기술된다. 도면에서, 유사한 인용부호는 동일한, 기능적으로 유사한 그리고/또는 구조적으로 유사한 요소를 나타낸다.
본 발명의 선호되는 실시예가 상세히 논의될 것이다. 특정 구성이 논의되나, 상기 구성은 단지 설명의 목적으로 수행된다. 관련 기술분야의 숙련자라면 본 발명의 사상 및 범위를 벗어나지 않고 다른 구성 요소 및 구성이 사용될 수 있음을 알 수 있을 것이다.
본 발명은 다중 요구장치 버스 환경에서 요구장치(장치)가 메모리 저장 장치로부터 데이터를 수신하는데 소요되는 시간을 최적화하는 시스템 및 방법에 관한 것이다. 장치가 데이터에 대한 호출 요구를 수행한 후에, 데이터가 곧 전송될 것임을 장치에 경고하기 위하여, 본 발명은 조기 경고 신호로 명명되는 단방향 응답 신호를 제공하고, 상기 단방향 응답 신호는 메모리 저장 장치로부터 장치로 송신된다. 데이터가 도달될 때 데이터를 즉시 수용하기 위하여 장치가 데이터 버스의 배타 소유권을 가지도록, 상기 조기 경고 신호는 장치가 데이터 버스에 대해 조정되도록 한다.
본 발명을 상세히 설명하기 전에, 시스템 처리 플랫폼(platform)에 대한 설명이 제공된다. 도 1 은 시스템 처리 플랫폼(100)의 블록선도이고, 상기 시스템 처리 블록선도(100)에 본 발명이 이용된다. 시스템 처리 플랫폼(100)은 다중 처리시스템 및 다중 메모리 저장 시스템 사이의 데이터 흐름을 처리하는데 유용하다. 시스템 처리 플랫폼(100)은 하나 이상의 메모리 저장 장치(MSU)(110)(MSU(110A) 및 MSU(110B)로 도시) 및 하나 이상의 처리 모듈(module)(POD)(120)(POD(120A) 및 POD(120B)로 도시)로 구성된다. 시스템 처리 플랫폼(100)에 추가 MSU(110) 및 POD(120)를 가함으로써 상기 시스템 처리 플랫폼(100)을 증대시킬 수 있다.
각 MSU(110)는 MSU 인터페이스(MI) 버스(130)(MI 버스(130A,130B,130C,1340D)로 도시)를 통하여 각 POD(120)에 연결된다. MI 버스(130)는 번지/함수 및 데이터 버스를 분리시키는 점대점 인터페이스(interface)이다. MI 버스(130)는 단방향 제어 버스, 양방향 요구 버스 및 양방향 데이터 버스로 구성된다. 요구 버스는 시스템 클록 주파수(clock frequency)(SYSCLK)에서 작동되고, 데이터 버스는 시스템 클록 주파수의 두 배에서 동기 작동된다. 선호되는 실시예에서, 시스템 처리 플랫폼(100)의 시스템 클록 주파수는 100 메가헤르쯔(MHZ)이다.
POD(120)는 하나의 MI 버스(130)를 통하여 임의 MSU(110)의 데이터에 대한 직접 액세스(direct access)를 가진다. 예를 들어, MI 버스(130A)는 POD(120A)가 MSU(110A)에 대한 직접 액세스를 가지도록 하고, MI 버스(130c)는 POD(120A)가 MSU(110B)에 대한 직접 액세스를 가지도록 한다.
도 2 에 메모리 저장 장치(MSU)(110)가 더 상세히 도시된다. MSU(110)는 메모리 제어기(210) 및 메모리(220)를 포함한다. 메모리(220)는 다수의 데이터 라인(data line)(230)으로 구성된다. 각 데이터 라인(230)은 시스템 플랫폼(100)의 MSU(110) 및 POD(120) 사이에 전송되는 최소 데이터 양이다. 시스템 처리 플랫폼(100)에서, 데이터 라인(230)은 64바이트의 정보량과 동등하다.
메모리 제어기(210)는 메모리(220)의 메모리 관리기로서 작동된다. 메모리 제어기(210)는 POD(120)로부터 MI 버스를 통하여 제어 및 번지 라인을 수신한다. 메모리 제어기(210)는 하기의 방법으로 각 데이터 라인(230)의 상태를 감시 및 제어한다.
POD(120)의 상세한 블록선도가 도 3 에 도시된다. POD(120)는 크로스바(crossbar)(350), 하나 이상의 부처리 모듈(부POD)(부POD(310A) 및 부POD(310B)로 도시) 및 하나 이상의 입력/출력(I/O) 모듈(320)(I/O 모듈(320A) 및 I/O 모듈(320B)로 도시)로 구성된다. 시스템 처리 플랫폼(100)에서, 각 POD(120)는 2개의 부POD(310) 및 2개의 I/O 모듈(320)을 포함한다.
크로스바(350)는 부POD(310) 및 I/O 모듈(320)을 MI 버스(130)를 통하여 MSU(110)에 연결한다. 부POD(310)(부POD(310A) 및 부POD(310B)로 도시)는 인터페이스(330)(인터페이스(330A) 및 인터페이스(330B)로 도시)를 통하여 크로스바(350)에 연결된다. 크로스바(350)는 인터페이스(340)(인터페이스(340A) 및 인터페이스(340B)로 도시)를 통하여 I/O 모듈(320)(I/O 모듈(320A) 및 I/O 모듈(320B)로 도시)에 연결된다. 시스템 처리 플랫폼(100)에서, MI 버스(130) 및 인터페이스(330)는 동등한 전송률로 데이터를 전송한다. I/O 모듈(320) 및 크로스바(350) 사이의 인터페이스(340)는 MI 버스(130) 및 인터페이스(330)와 유사한 구성을 가지나, 1/2의 전송률로 작동된다.
I/O 모듈(320)이 도 4 에 도시된다. I/O 모듈(320)은 I/O 모듈(320)에 연결된 하나 이상의 I/O 장치(도시되지 않음) 및 POD(120) 사이의 인터페이스로서 기능한다. I/O 모듈(320)은 브리지(bridge)(410)로 구성되고, 상기 브리지(410)는 버스(430)(버스(430A), 버스(430B) 및 버스(430C)로 도시)를 통하여 하나 이상의 주변 구성요소 상호연결장치(PCI)(PCI(420A), PCI(420B) 및 PCI(420C)로 도시)에 상호연결된다. 또한, 도 3 에 도시된 바와 같이, 브리지(410)는 버스(340)를 통하여 POD(120)의 크로스바(350)에 연결된다. 브리지(410)는 버스(340) 및 버스(330) 사이의 스위치(switch)로서 기능하고, POD(120)가 각 PCI(420)에 접근가능하도록 한다.
주변 구성요소 상호연결장치(PCI)(420)는 다양한 I/O 장치(도시되지 않음)를 I/O 모듈(320)에 연결하는 I/O 버스이다. 시스템 처리 플랫폼(100)에서, 각 PCI(420)는 4개의 장치를 지원할 수 있다. 상기 장치는 모니터, 키보드, 프린터, 디스크 또는 테이프 드라이버 등을 포함하나, 상기 부품에 제한되지 않는다.
부POD(310)의 블록선도가 도 5 에 도시된다. 부POD(310)는 3단계 캐쉬(TLC)(510) 및 하나 이상의 코히런트 도메인(coherent domain)(530)(코히런트 도메인(530A) 및 코히런트 도메인(530B))으로 구성된다. TLC(510)는 버스(520)(버스(520A) 및 버스(520B)로 도시)를 통하여 각 코히런트 도메인(530)에 연결된다. TLC(510)는 각 코히런트 도메인(530) 사이의 코히런시(coherency)를 유지한다. 각 코히런트 도메인(530)은 2개 이상의 2단계 캐쉬(SLC)(550)(코히런트 도메인(530A)의 SLC(550A) 및 SLC(550B)와 코히런트 도메인(530B)의 SLC(550C) 및 SLC(550D)로도시) 및 프로세서(540)(코히런트 도메인(530A)의 프로세서(540A) 및 프로세서(540B)와 코히런트 도메인(530B)의 프로세서(540C) 및 프로세서(540D)로 도시)로 구성되고, 상기 프로세서(540)는 버스(560)(코히런트 도메인(530A)의 버스(560A) 및 버스(560B)와 코히런트 도메인(530B)의 버스(560C) 및 버스(560D)로 도시)를 통하여 각 SLC(550)에 연결된다. 각 버스 인터페이스(520)는 코히런트 도메인(530)의 두 프로세서/SLC(540/550) 구성까지 지원한다. 프로세서 모듈(540)은 예를 들어 Deshutes형 P6, Merced형 P7, Voyager형 2200 또는 Capricorn형 A 시리즈 명령 프로세서 중의 하나를 포함할 수 있다. 상기 4개 형태의 명령 프로세서는 관련기술의 숙련자에게 공지되어 있다.
각 코히런트 도메인(530)의 SLC(550)는 상기 SLC(550) 사이의 코히런스(coherence) 외에 상기 SLC(550)의 코히런트 도메인 내의 코히런스를 유지한다. 상기는 버스(520)를 분배하고 스누피 기반 코히런스(snoopy-based coherence)를 따름으로써 이루어진다. 스누피 기반 코히런스에 따라, 데이터 라인(230)의 상태를 확인하기 위해, 그리고 필요하다면 데이터 라인의 상태를 갱신하기 위해, 각 SCL(550)는 요구 버스(520)를 "점검"한다. 스누피 프로토콜(protocol)의 더 상세한 논의는, 본 출원과 동시에 출원된(대리인 포대 번호 TN050; 1521.0080000) "디렉토리 기반 캐쉬 코히런시 시스템"에 기술되어 있다.
POD(120) 및 MSU(110)는 코히런트 메모리 시스템을 구성하도록 공동작동한다. 시스템 처리 플랫폼(100)의 코히런시 구성은 디렉토리 기반, 소유 프로토콜이다. 도 6 에 시스템 처리 플랫폼(100)에 사용되는 디렉토리 기반 소유 프로토콜이도시된다. 메모리(220) 및 각 단계의 캐쉬(즉, TLC(510), SLC(550) 등)는 코히런스를 유지하기 위해 디렉토리 프로토콜을 고려한다. 도 6 에 도시된 바와 같이, 메모리(220)는 메모리 디렉토리(610)를 가지고, TLC(510)는 TLC 디렉토리(640)를 가지며, SLC(550)는 MESI(수정 배타 공유 무효(ModifiedExclusiveSharedInvalid))로 명명된 SLC 디렉토리(650)를 가진다.
선호되는 실시예에서, 각 캐쉬(510,550)는 캐쉬 라인(TLC(510)의 캐쉬 라인(620) 및 SLC(550)의 캐쉬 라인(630)으로 도시)으로 명명된 데이터 라인을 저장하기 위한 메모리를 포함한다. 캐쉬 라인은 하나 이상의 캐쉬(510,550)에 존재하는 데이터 라인의 카피(copy)이다.
디렉토리(610)에서, 각 데이터 라인(230)에 대한 정보는 상태(state)(612) 및 벡터(vector)(614)를 사용하여 감시되고 갱신된다. 상태(612)는 데이터 라인(230)에 대해 요구장치에 제공된 액세스 상태에 관한 정보를 유지한다. 상기 상태는 현재, 공유 및 배타 상태를 포함할 수 있다. 현재 상태는 데이터 라인(230)만이 메모리(220)에 존재함을 나타낸다. 공유 상태는 데이터 라인(230)의 판독 전용 카피가 하나 이상의 POD에 존재함을 나타낸다. 상기는 상기 하나 이상의 POD(120)가 데이터 라인(230)의 카피를 자유롭게 판독할 수 있음을 나타낸다. 배타 상태는 단일 요구장치만이 데이터 라인(230)에 대한 기록 액세스가 가능함을 나타낸다. 상기는 단일 요구장치가 데이터 라인(230)을 수정할 수 있음을 나타낸다. 기록 액세스가 제공된 벡터(614)는, 메모리 상태(612)가 배타 상태를 나타낼 때, 부POD(310)에 대한 포인터(pointer)이다. 벡터(614)의 비트가 부POD가 판독전용 카피를 가짐을 나타내는 벡터(614)는, 메모리 상태(612)가 공유 상태임을 나타낼 때, 마스크(mask)이다.
TLC 디렉토리(640)에서, 각 캐쉬 라인(620)에 대한 정보는 상태(642) 및 벡터(644)를 사용하여 감시되고 갱신된다. 상태(642)는 캐쉬 라인(620)에 관한 세 부분의 정보를 유지한다. 상기 정보는 소유 권리, 데이터 상태 및 버스 권리를 포함한다. 벡터(644)는 캐쉬 라인(620)이 존재하는 하나 이상의 위치를 가리킨다.
소유 권리는 배타, 공유 및 미지 권리를 포함할 수 있다. 배타 권리는 TLC(510)가 캐쉬 라인(620)에 대한 배타 권리(즉, 기록 액세스)를 가짐을 나타내고, 상기 배타 권리는 메모리(220)의 상응하는 데이터 라인(230) 상태와 일치된다. 공유 권리는 메모리(220)가 공유된 캐쉬 라인(620)(즉, 판독 전용 액세스)관련됨을 나타낸다. 미지 권리는 캐쉬 라인(620)에 대한 소유 권리가 알려지지 않음을 나타낸다.
TLC 디렉토리(640)에 대한 데이터 상태는 무 데이터, 수정 데이터 또는 무수정 데이터를 포함할 수 있다. 무 데이터는 데이터가 캐쉬 라인(620)에 존재하지 않음을 나타낸다. 수정 데이터는 캐쉬 라인(620)의 데이터가 수정되었음을 의미한다. 수정 데이터는 메모리(220)로 기록되어야 한다. 무수정 데이터는 캐쉬 라인(620)의 데이터가 수정되지 않았음을 나타낸다.
버스 권리는 어떤 권리가 버스(520A,520B)의 하나에 제공되었는지를 나타낸다. 또한, 버스 권리는 상태 및 벡터(상태 및 벡터는 도시되지 않음)를 포함한다. 버스 권리는 배타, 공유 또는 미지 상태를 포함할 수 있다. 배타 권리는버스(520A,520B)의 하나와 결합된 SLC(550)에 배타 소유권이 속함을 나타낸다. 공유 권리는 권리가 양 버스(520A,520B)에 부여되었음을 나타낸다. 미지 권리는 어떤 버스가 권리를 가지는가에 대해 알려지지 않음을 나타낸다.
SLC 디렉토리(650)에서, 단지 캐쉬 라인(630)의 상태만이 유지된다. 상태는 수정, 배타, 공유 또는 무효 상태를 포함할 수 있다. 수정 상태는 캐쉬 라인(630)의 데이터가 수정되었음을 나타낸다. 배타 상태는 캐쉬 라인(630)의 데이터가 수정될 수 있음을 나타내고, 관련 SLC(550)만이 데이터가 포함된 장치임을 나타낸다. 공유 상태는 캐쉬 라인(630)의 데이터가 장치 사이에서 공유됨을 나타낸다. 무효 상태는, 다른 장치의 데이터 라인(230)에 수행된 기록으로 인해, SLC(550)의 캐쉬 라인(630)에 구성된 데이터 라인(230)의 카피가 더 이상 유효하지 않음을 나타낸다.
캐쉬 구성은 메모리(22)의 데이터 라인(230)을 판독하기 위해 프로세서(540)와 같은 프로세서에 의해 요구되는 시간을 감소시키고자 개발되어 왔다. 시스템 처리 플랫폼(100)에 사용된 캐쉬 구성과 같은 캐쉬 구성은, 시스템 처리 플랫폼(100)이 적합하고 효율적으로 수행될 수 있도록, 각 메모리(220), TLC(510) 및 SLC(550)내의 코히런트 데이터를 유지하여야 한다.
코히런시는 본 기술분야에 널리 공지된 용어이고, 다중 메모리 및 처리 장치가 구비된 시스템의 데이터 액세스를 제어한다. 데이터 라인의 판독이 가장 최근에 기록된 상기 데이터 라인의 값을 복귀시키고, 데이터 라인의 기록이 판독 액세스를 가진 모든 에이전트(agent)에 의해 소유된 데이터 라인의 모든 카피를 무효화시키는 것이, 코히런트 시스템에 요구된다. 시스템 처리 플랫폼(100)에 대해, 코히런시는, 하나의 요구장치가 임의 캐쉬(510,550)내의 캐쉬 라인(620 또는 630)을 수정하도록 하기 전에, POD(120)가 상기 데이터에 대해 MSU(110)로부터 소유권 인증(특히, 배타 소유권)을 얻어야만 함을 의미한다. 배타 소유권이 부여되면, POD(120) 요구장치는 MSU(110)와 상호작용하지 않고 캐쉬 라인(620)을 변경할 수 있다. POD(120)가 캐쉬 라인(620)과 분리될 때, 캐쉬 라인(620)은 MSU(110)로 기록된다.
MSU(110)는 TLC(510) 및 I/O 버스 인터페이스(340)의 캐쉬 라인(620) 상태 정보를 탐지한다. MSU(110)는 상기를 디렉토리 구조(610)를 사용하여 수행한다. 디렉토리(610)는 MSU(110), 특정 TLC(510) 또는 특정 I/O 버스 인터페이스(340)가 데이터 라인(230)을 소유하는지 아닌지에 대한 정보를 유지한다. 디렉토리(610)는, 어떤 TLC(510)가 데이터 라인(230)의 카피를 가지는지 아닌지에 대한 또는 특정 I/O가 코히런트 카피를 가지는지 아닌지에 대한 정보를 유지한다. 또한 디렉토리(610)는 특정 데이터 라인(230)이 정정불가능 오류를 포함하는지 아닌지를 나타낸다.
시스템 처리 플랫폼(100)의 코히런시 구성은 동시에 하나만의 오너(owner)를 고려하고, 코히런시는 캐쉬 라인을 기초로 강화된다. 따라서, 만약 다른 TLC(510) 또는 I/O 버스 인터페이스(340)가 수정 캐쉬 라인(620 또는 630)에 대한 액세스를 가질 필요가 있다면, MSU(110)는 요구장치에 새로운 데이터를 전송하기 위해 오너가 캐쉬 라인(620 또는 630)을 복귀시키도록 요구하거나 MSU(110)로 복귀시키도록요구한다. 만약 요구장치가 캐쉬 라인(620 또는 630)을 수정하고자 한다면, 원 오너는 캐쉬로부터 상응하는 캐쉬 라인(620 또는 630)을 제거(무효화)시킬 것이다. 다음에, 만약 상기 특정 캐쉬 라인(620 또는 630)에 대한 액세스가 다시 필요하다면, 최근 카피에 대해 MSU(110)로 강제 이동될 것이다. 만약 요구장치가 데이터 라인(230)을 판독하고자 한다면, 원 오너는 상응하는 캐쉬 라인(620 또는 630)의 카피를 유지한다. 어떤 경우든, 원 오너는 상응하는 캐쉬 라인(620 또는 630)의 임의 데이터를 수정하는 특권을 잃게 되고, 상기 상응하는 캐쉬 라인(620 또는 630)의 임의 데이터를 수정하기 위해, MSU(110)로부터 다시 배타 소유 권리를 요구하여야 한다.
시스템 처리 플랫폼(100)의 코히런시 구성은, 본 출원과 동시에 출원된(대리인 포대 번호 TN050; 1521.0080000) "디렉토리 기반 캐쉬 코히런시 시스템"에 더 상세히 기술되어 있다.
본 발명은 상기 실시예로 기술된다. 상기 실시예에 의한 기술은 단지 편리함을 위해 제공된다. 본 발명은 상기 실시예에 제한되지 않는다. 하기 설명으로부터, 관련 기술의 숙련자라면 본 발명이 어떠한 방법으로 다른 메모리 저장 장치 및 처리 모듈 구성에 사용되는지 이해할 수 있을 것이다. 예를 들어, 본 발명은 다수의 프로세서에 연결된 메모리 조직을 사용하는 임의 시스템에 적응성을 가진다. 다중 단계 캐쉬는 본 발명의 실행에 요구되지 않는다.
도 7 에 본 발명의 선호되는 실시예가 도시된다. 상기와 같이, 본 발명은, 데이터가 MSU(110)로부터 호출되어야 할 때, MSU(110)로부터 POD(120)로 데이터 라인(230) 전송을 가속시키기 위한 시스템 및 방법에 관한 것이다. 본 발명은, 데이터 라인(230)에 대한 요구가 발생되었을 때, 조기 경고 신호(E_W)를 송신함으로써 MSU(110)로부터 POD(120)로 데이터 전송을 가속시킨다. 데이터 라인(230)이 유효할 때, 장치 요구 데이터 라인(230)이 즉시 수용할 수 있도록, 데이터 버스에 대해 조정함으로써, 조기 경고 신호는 요구 장치(예를 들어 프로세서(540) 또는 I/O 모듈(320))가 데이터 라인(230)의 도달에 대해 대비하도록 한다.
프로세서(540) 또는 I/O 모듈(320)과 같은 요구 장치는 MSU(110)로부터 데이터에 대한 호출 요구를 수행한다. 데이터가 MSU(110)로부터 요구 장치로 복귀될 수 있기 전에, 요구 장치는 데이터 버스를 조정하여야 한다. 본 발명은 조기 경고 신호를 제공하고, 상기 조기 경고 신호는 요구 데이터의 전송 전에 조기 경고 버스를 가로질러 MSU(110)로부터 요구 장치로 전송된다. 조기 경고 신호는 요구 데이터의 수신 전에 요구 장치가 데이터 버스를 조정하도록 한다. 요구 데이터의 수신 전에 조정하는 것은, 요구 장치가 데이터의 도달시 즉시 데이터에 대한 액세스를 가능하도록 한다.
선호되는 실시예에서, 본 발명은 MI 버스(130)(도 1 에 도시)의 부집합이다. 선택적으로, 다른 실시예에서, 본 발명은 분리 버스가 될 수 있다. 본 발명은 MSU(110)로부터 POD(120)로 조기 경고 단방향 버스(E_W[2:0])(710)를 제공한다. 조기 경고 단방향 버스(710)는 R_버스 신호(720), P_버스 신호(730) 및 유효 신호(740)를 포함한다.
R_버스 신호(720)는 어떤 인터페이스 버스가 요구 데이터인가를 나타낸다.특히, R_버스 신호(720)는 어떤 요구장치 버스(I/O 모듈에 대한 버스(340A) 및 버스(340B) 또는 부POD(310)에 대한 버스(330A) 및 버스(330B))가 데이터 요구로 발생되는가를 나타낸다. P_버스 신호(730)는 요구 장치를 식별한다. 특히, 만약 R_버스(720)가 데이터가 I/O 모듈(320)로부터 전송되었음을 나타낸다면, P_버스(730)는 어떤 I/O 모듈(320)이 요구하였는지를 나타낸다. 만약, R_버스(720)가 데이터 요구가 TLC 인터페이스 버스(330)로부터 발생되었음을 나타낸다면, P_버스(730)는 어떤 프로세서(540)가 요구하였는지를 나타낸다. 신호가 유효함을 나타내고 데이터가 곧 전송될 것임을 조기에 경고하기 위해, 유효 신호(740)는 1로 설정된다.
본 발명의 선호되는 실시예에서, 만약 데이터가 일정 시간 프레임(frame)내에 요구 장치에 도달하지 못한다면, 타이머(timer)(도시되지 않음)가 조정을 해제하도록 사용된다. 타이머는 0으로부터 1로 유효 신호(740)의 전이 도달시 개시되고, E_W 버스(710)의 유효 정보를 나타낸다. 왜 데이터가 일정 시간내에 전송되지 못하는가에 대한 여러 이유가 있다. 예를 들어, 만약 데이터 라인(230)의 카피가 요구되고 데이터 라인(230)이 다른 요구장치에 의해 소유된다면, 현재 MSU(110)에 존재하는 데이터 라인(230)은 제 1 요구장치에 전송되지 않고, 그 이유는 상기 데이터 라인(230)은 반드시 갱신된 카피일 필요가 없기 때문이다. 갱신된 카피는 현재 오너에 존재한다. 그러나, 마치 MSU(110)가 데이터 라인(230)의 소유를 포기한 것처럼, E_W 버스(710)는 동시에 요구장치로 송신된다. 또한, MI(130)의 양방향 특성과 결합된 시간 윈도우(window)가 존재하고, 상기 시간 윈도우는 요구 POD(120)로 데이터 라인(230)이 전송되는 것을 방지하나, E_W 버스(710)의 송신을방해하지 않는다. 상기와 같은 경우에 있어서, 요구된 데이터 라인(230)은 즉시 도달되지 않는다. 따라서, 데이터 버스의 이용을 최대화하기 위해 조정을 해제하도록 타이머가 사용된다.
MSU(110)로부터 유효 신호(740)를 수행하는 프로세서(540)로 데이터 전송에 대한 시간 다이어그램이 도 8 에 도시된다. REQ 신호(810)는 POD(120)로부터 MSU(110)로 요구 트랜잭션(transaction)을 개시한다. REQ 신호(810)는 임의 클록 사이클로 한정될 수 있다. 선호되는 실시예에서, REQ 신호(810)는 길이에 있어 한 클록 사이클이다. MI 버스(130)의 번지 및 함수(ADR_FNC) 신호(820)는, 두 클록 사이클을 차지한다. 선호되는 실시예에서, REQ 신호(810)는 ADR_FNC 신호(820)의 제 1 사이클내로 한정된다. R_버스(720) 및 P_버스(730)는 ADR_FNC 신호(820)에 포함된다. MSU(110)는 E_W[2:0] 버스(710), R_버스(720) 및 P_버스(730)에 ADR_FNC 신호(820)로부터 얻어진 값을 배열하고, 조기 경고를 E_W[2:0] 버스(710)를 통하여 POD(120)로 송신한다. 유효 신호(740)는 데이터 라인(230)의 도달 전에 두 클록 사이클을 나타낸다. 모든 내부 데이터 경로가 MSU(110)가 데이터 라인(230)을 소유한다는 가정에 의해 분해된 후에, MSU(110)는 유효 신호(740)를 송신한다. 상기는 MSU(110)가 데이터 라인(230)을 소유하는지 아닌지를 알기 전이다. POD(120)로 전송되는 유효 데이터(230)의 개시는 응답 신호(840)에 의해 MSU(110)로부터 POD(120)로 나타내어진다. 만약 MSU(110)가 데이터 라인(230)을 소유하지 않음을 후에 발견한 경우, 상기 MSU(110)는 응답 신호(840)를 억제할 것이다. 응답 신호(840)는 MI 인터페이스(130)의 부분이다. 유효 신호(740)는 요구장치가 버스 조정 신호(830)를 발생시키도록 한다. 버스 조정 신호(830)는 데이터 버스(예를 들어, 프로세서 버스(520))에 대해 조정하기 위한 요구 장치로부터의 요구이다. 데이터 버스는 데이터 라인(230)의 도달시 즉시 수용할 수 있도록 대비된다. 만약 응답 신호(840)가 두 클록 시간 윈도우내에 도달되지 않는다면, 데이터 버스는 다른 전송을 위해 해제된다.
본 발명의 다양한 실시예가 위에 기술되었으나, 상기 실시예는 제한이 아닌 단지 예로서 기술되었다. 따라서, 본 발명의 범위는 상기 실시예에 제한되지 않고, 하기 청구범위 및 상당 부분에 의해 구성된다.
Claims (11)
- 다중 프로세서 시스템(100)에 있어서,상기 다중 프로세서 시스템(100)은 하나 이상의 메모리 저장 장치(110), 하나 이상의 캐쉬 메모리(510), 하나 이상의 프로세서 인터페이스 버스(520), 조기 경고 신호(740) 발생용 수단(210) 및 하나 이상의 조기 경고 버스(710)로 구성되고,상기 하나 이상의 캐쉬 메모리(510)는 인터페이스 버스(130)를 통하여 상기 하나 이상의 메모리 저장 장치(110)의 각각에 연결되며,상기 하나 이상의 프로세서 인터페이스 버스(520)는 상기 하나 이상의 캐쉬 메모리(510) 중의 하나를 다수의 프로세서(540)에 연결하고, 상기 다수의 프로세서(540)는 상기 하나 이상의 메모리 저장 장치(110)로부터 데이터를 요구하기 위한 수단(540)을 포함하며,상기 조기 경고 신호 발생용 수단(210)이 상기 다수의 프로세서(540) 중의 하나에 의해 요구된 데이터가 곧 유효할 것이고, 상기 다수의 프로세서(540) 중의 상기 하나가 상기 프로세서 인터페이스 버스(520) 사용을 위해 조정을 시작해야 함을, 상기의 프로세서(540)에 알리며,상기 하나 이상의 조기 경고 버스(710)는 상기 하나 이상의 메모리 저장 장치(110) 중의 하나를 상기 하나 이상의 캐쉬 메모리(510) 중의 하나에 연결하여, 상기 조기 경고 신호(740)가 전송될 수 있도록 함을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 제 1 항에 있어서, I/O 인터페이스 버스(130A,130B)를 통하여 상기 하나 이상의 메모리 저장 장치(110)에 연결된 다수의 I/O 모듈(320A,320B)을 더욱더 포함하며, 상기 다수의 I/O 모듈의 각각은 상기 하나 이상의 메모리 저장 장치(110)의 각각으로부터 데이터를 요구하기 위한 수단을 가지며, 상기 조기 경고 신호(740)가 상기 조기 경고 버스를 통하여 전송된 뒤에, 상기 요구된 데이터가 상기 I/O 인터페이스 버스(520)로 전송되어, 상기 조기 경고 신호(740)가 상기 요구된 데이터의 수신 전에 상기 I/O 모듈(320A,320B)이 상기 I/O 인터페이스 버스(520A,520B)를 위해 조정하도록 하는 것을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 제 1 항에 있어서, 상기 조기 경고 버스(710)는 요구 버스(requesting bus) 식별용 데이터 라인, 요구 장치(requesting device) 식별용 데이터 라인 및 상기 요구된 데이터(requested data)가 상기 하나 이상의 메모리 저장 장치(110) 중의 하나로부터 전송될 것임을 나타내기 위한 하나 이상의 데이터 라인으로 구성되므로써, 상기 조기 경고 신호(740)가 상기 요구 장치에 제공되도록 함을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 제 3 항에 있어서, 상기 시스템이 타이머(timer)를 더욱더 포함하며, 상기 프로세서 인터페이스 버스(520)를 위해 조정이 시작될 때 상기 타이머가 계산을 시작하며, 만약 상기 요구된 데이터의 도달 전에 상기 타이머가 종료되면 상기 조정이 종료되도록 함을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 제 1 항에 있어서, 상기 조기 경고 버스(710)는, 상기 하나 이상의 메모리 저장 장치(110) 중의 하나 및 상기 하나 이상의 캐쉬 메모리(510) 중의 하나 사이에 구성된 상기 인터페이스 버스의 부분인 것을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 다중 프로세서 처리 시스템(100)에서 메모리 저장 장치(110)로부터 다수의 요구 장치(I/O 모듈, 프로세서)(540,320)중의 하나로 데이터 전송에 대해 조기 경고를 제공하기 위한 방법에 있어서, 상기 방법이,(1) 다수의 요구 장치(540,320)중의 하나에 의해 메모리 저장 장치(110)로부터 데이터(230)를 요구하고,(2) 상기 요구된 데이터(230)가 곧 전송될 것이고 상기 다수의 요구 장치(540,320)중의 하나가 버스 조정을 시작해야 함을 상기 다수의 요구 장치(540,320)중의 하나에 알리기 위하여, 메모리 저장 장치(110)로부터 조기 경고 신호(740)를 전송하며, 상기 조기 경고 신호(740)를 전송하는 단계는,제 1 신호(720)를 조기 경고 버스(710)로 전송하고, 상기 제 1 신호(720)가 상기 데이터(230)가 요구되었던, 다수의 인터페이스 버스(330,340)중의 하나를 식별하며,제 2 신호(730)를 상기 조기 경고 버스(710)로 전송하고, 상기 제 2 신호(730)는 상기 다수의 요구 장치(540,320)중의 하나를 식별하며, 그리고제 3 신호(740)를 조기 경고 버스(710)로 전송하고, 상기 제 3 신호(740)가, 유효 조기 경고가 제공되고 상기 다수의 요구 장치(540,320)중의 하나가 상기 버스 조정을 시작해야 함을 나타내도록 하는 단계를 포함하고,(3) 상기 다수의 요구 장치(540,320)중의 하나에 의해 버스 인터페이스(520,340)사용에 대한 조정을 하며,(4) 상기 요구된 데이터(230)를 상기 다수의 요구 장치(540,320)중의 하나에 의해 수신하는 단계로 구성됨을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 방법.
- 제 6 항에 있어서, 단계(3)는,상기 버스 조정이 시작될 때 타이머를 설정하고, 그리고만약 상기 요구된 데이터가 단계(4)에서 송신되기 전에 상기 타이머가 종료되면, 상기 버스 조정을 해제하는 단계를 더욱더 포함함을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 방법.
- 다중 프로세서 처리 시스템(100)에서 메모리 저장 장치(110)로부터 다수의 요구 장치(I/O 모듈, 프로세서)(540,320)중 하나로의 데이터 전송에 대해 조기 경고를 제공하기 위한 시스템에 있어서, 상기 시스템이,상기 다수의 장치(540,320)중 하나에 의해 메모리 저장 장치(110)로부터 데이터(230)를 요구하기 위한 수단(330,340),상기 요구된 데이터(230)가 곧 전송될 것이고 상기 다수의 요구 장치(540,320)중 하나가 버스 조정을 시작해야 함을 상기 다수의 요구 장치(540,320)중 하나에 알리기 위하여, 메모리 저장 장치(110)로부터 조기 경고 신호(740)를 전송하기 위한 수단(710)을 포함하며,상기 전송하기 위한 수단이,제 1 신호(720)를 조기 경고 버스(710)에 전송하기 위한 수단,제 2 신호(730)를 상기 조기 경고 버스(710)에 전송하기 위한 수단 및제 3 신호(740)를 조기 경고 버스(710)에 전송하기 위한 수단을 포함하며,상기 제 1 신호(720)는 상기 데이터(230)가 요구되었던 다수의 인터페이스 버스(330,340)중 하나를 식별하고,상기 제 2 신호(730)는 상기 다수의 요구 장치(540,320)중 하나를 식별하며,상기 제 3 신호(74)는 유효 조기 경고가 제공되고 상기 다수의 요구 장치(540,320)중 하나가 상기 버스 조정을 시작해야 함을 나타내도록 함을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 제 8 항에 있어서, 상기 조정하기 위한 수단이,상기 버스 조정이 시작될 때 타이머를 설정하기 위한 수단, 그리고만약 상기 요구된 데이터가 상기 송신하기 위한 수단에 의해 송신되기 전에 상기 타이머가 종료되면, 상기 버스 조정을 해제하기 위한 수단을 더욱더 포함함을 특징으로 하는 데이터 전송을 위한 이론적 조정 제공 시스템.
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/964,630 US6049845A (en) | 1997-11-05 | 1997-11-05 | System and method for providing speculative arbitration for transferring data |
US8/964,630 | 1997-11-05 | ||
US08/964,630 | 1997-11-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20010031690A KR20010031690A (ko) | 2001-04-16 |
KR100381619B1 true KR100381619B1 (ko) | 2003-04-26 |
Family
ID=25508789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-7004752A KR100381619B1 (ko) | 1997-11-05 | 1998-11-04 | 데이터 전송을 위한 이론적 조정 제공 시스템 및 방법 |
Country Status (9)
Country | Link |
---|---|
US (1) | US6049845A (ko) |
EP (1) | EP1029283B1 (ko) |
JP (1) | JP3635634B2 (ko) |
KR (1) | KR100381619B1 (ko) |
AT (1) | ATE235713T1 (ko) |
AU (1) | AU1305199A (ko) |
BR (1) | BR9814844A (ko) |
DE (1) | DE69812685T2 (ko) |
WO (1) | WO1999023570A1 (ko) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199135B1 (en) * | 1998-06-12 | 2001-03-06 | Unisys Corporation | Source synchronous transfer scheme for a high speed memory interface |
US6263409B1 (en) * | 1998-12-22 | 2001-07-17 | Unisys Corporation | Data processing system and method for substituting one type of request for another for increased performance when processing back-to-back requests of certain types |
US6304945B1 (en) * | 1999-05-13 | 2001-10-16 | Compaq Computer Corporation | Method and apparatus for maintaining cache coherency in a computer system having multiple processor buses |
JP2001184295A (ja) * | 1999-12-27 | 2001-07-06 | Toshiba Corp | 周辺装置および計算機システム |
US7058750B1 (en) * | 2000-05-10 | 2006-06-06 | Intel Corporation | Scalable distributed memory and I/O multiprocessor system |
US6826619B1 (en) | 2000-08-21 | 2004-11-30 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6487643B1 (en) | 2000-09-29 | 2002-11-26 | Intel Corporation | Method and apparatus for preventing starvation in a multi-node architecture |
US6772298B2 (en) | 2000-12-20 | 2004-08-03 | Intel Corporation | Method and apparatus for invalidating a cache line without data return in a multi-node architecture |
US7234029B2 (en) * | 2000-12-28 | 2007-06-19 | Intel Corporation | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture |
US6791412B2 (en) * | 2000-12-28 | 2004-09-14 | Intel Corporation | Differential amplifier output stage |
US6721918B2 (en) | 2000-12-29 | 2004-04-13 | Intel Corporation | Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect |
US20020087766A1 (en) * | 2000-12-29 | 2002-07-04 | Akhilesh Kumar | Method and apparatus to implement a locked-bus transaction |
US20020087775A1 (en) * | 2000-12-29 | 2002-07-04 | Looi Lily P. | Apparatus and method for interrupt delivery |
US6662277B2 (en) * | 2001-07-31 | 2003-12-09 | Hewlett-Packard Development Company, L.P. | Cache system with groups of lines and with coherency for both single lines and groups of lines |
CN100445973C (zh) * | 2002-04-17 | 2008-12-24 | 威盛电子股份有限公司 | 总线控制权仲裁方法与仲裁器 |
US7133972B2 (en) * | 2002-06-07 | 2006-11-07 | Micron Technology, Inc. | Memory hub with internal cache and/or memory access prediction |
US6862665B2 (en) * | 2002-07-19 | 2005-03-01 | Intel Corporation | Method, system, and apparatus for space efficient cache coherency |
US7117316B2 (en) | 2002-08-05 | 2006-10-03 | Micron Technology, Inc. | Memory hub and access method having internal row caching |
US6820181B2 (en) | 2002-08-29 | 2004-11-16 | Micron Technology, Inc. | Method and system for controlling memory accesses to memory modules having a memory hub architecture |
US7120743B2 (en) | 2003-10-20 | 2006-10-10 | Micron Technology, Inc. | Arbitration system and method for memory responses in a hub-based memory system |
US7330992B2 (en) | 2003-12-29 | 2008-02-12 | Micron Technology, Inc. | System and method for read synchronization of memory modules |
US7966439B1 (en) * | 2004-11-24 | 2011-06-21 | Nvidia Corporation | Apparatus, system, and method for a fast data return memory controller |
US20080059674A1 (en) * | 2006-09-01 | 2008-03-06 | Jiaxiang Shi | Apparatus and method for chained arbitration of a plurality of inputs |
JP2009026136A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
JP2009026135A (ja) * | 2007-07-20 | 2009-02-05 | Nec Electronics Corp | マルチプロセッサ装置 |
US20090164689A1 (en) * | 2007-12-21 | 2009-06-25 | Unisys Corporation | Early response indication for data retrieval in a multi-processor computing system |
US8090967B2 (en) * | 2008-05-23 | 2012-01-03 | Intel Corporation | Power state transition initiation control of memory interconnect based on early warning signal, memory response time, and wakeup delay |
US8713277B2 (en) * | 2010-06-01 | 2014-04-29 | Apple Inc. | Critical word forwarding with adaptive prediction |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3641505A (en) * | 1969-06-25 | 1972-02-08 | Bell Telephone Labor Inc | Multiprocessor computer adapted for partitioning into a plurality of independently operating systems |
US3812469A (en) * | 1972-05-12 | 1974-05-21 | Burroughs Corp | Multiprocessing system having means for partitioning into independent processing subsystems |
US4000485A (en) * | 1975-06-30 | 1976-12-28 | Honeywell Information Systems, Inc. | Data processing system providing locked operation of shared resources |
US4253146A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Module for coupling computer-processors |
US4245306A (en) * | 1978-12-21 | 1981-01-13 | Burroughs Corporation | Selection of addressed processor in a multi-processor network |
US4253144A (en) * | 1978-12-21 | 1981-02-24 | Burroughs Corporation | Multi-processor communication network |
US4240143A (en) * | 1978-12-22 | 1980-12-16 | Burroughs Corporation | Hierarchical multi-processor network for memory sharing |
US4488217A (en) * | 1979-03-12 | 1984-12-11 | Digital Equipment Corporation | Data processing system with lock-unlock instruction facility |
US4392196A (en) * | 1980-08-11 | 1983-07-05 | Harris Corporation | Multi-processor time alignment control system |
US4466059A (en) * | 1981-10-15 | 1984-08-14 | International Business Machines Corporation | Method and apparatus for limiting data occupancy in a cache |
US4441155A (en) * | 1981-11-23 | 1984-04-03 | International Business Machines Corporation | Page controlled cache directory addressing |
US4464717A (en) * | 1982-03-31 | 1984-08-07 | Honeywell Information Systems Inc. | Multilevel cache system with graceful degradation capability |
US4586133A (en) * | 1983-04-05 | 1986-04-29 | Burroughs Corporation | Multilevel controller for a cache memory interface in a multiprocessing system |
US4562536A (en) * | 1983-06-30 | 1985-12-31 | Honeywell Information Systems Inc. | Directory test error mode control apparatus |
US4686621A (en) * | 1983-06-30 | 1987-08-11 | Honeywell Information Systems Inc. | Test apparatus for testing a multilevel cache system with graceful degradation capability |
US4667288A (en) * | 1983-06-30 | 1987-05-19 | Honeywell Information Systems Inc. | Enable/disable control checking apparatus |
US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
US5067071A (en) * | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
US4875155A (en) * | 1985-06-28 | 1989-10-17 | International Business Machines Corporation | Peripheral subsystem having read/write cache with record access |
JPS62194563A (ja) * | 1986-02-21 | 1987-08-27 | Hitachi Ltd | バツフア記憶装置 |
US4843541A (en) * | 1987-07-29 | 1989-06-27 | International Business Machines Corporation | Logical resource partitioning of a data processing system |
US5016167A (en) * | 1987-12-21 | 1991-05-14 | Amdahl Corporation | Resource contention deadlock detection and prevention |
US5251308A (en) * | 1987-12-22 | 1993-10-05 | Kendall Square Research Corporation | Shared memory multiprocessor with data hiding and post-store |
DE68923829T2 (de) * | 1988-06-21 | 1996-03-21 | Amdahl Corp | Startsteuerung von logischen Systemen in einem Datenverarbeitungssystem mit logischer Prozessormöglichkeit. |
US5142676A (en) * | 1988-12-28 | 1992-08-25 | Gte Laboratories Incorporated | Separate content addressable memories for storing locked segment addresses and locking processor identifications for controlling access to shared memory |
US4967414A (en) * | 1989-01-06 | 1990-10-30 | International Business Machines Corp. | LRU error detection using the collection of read and written LRU bits |
US5060136A (en) * | 1989-01-06 | 1991-10-22 | International Business Machines Corp. | Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first |
US5237670A (en) * | 1989-01-30 | 1993-08-17 | Alantec, Inc. | Method and apparatus for data transfer between source and destination modules |
JP2833062B2 (ja) * | 1989-10-30 | 1998-12-09 | 株式会社日立製作所 | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 |
JP2826857B2 (ja) * | 1989-12-13 | 1998-11-18 | 株式会社日立製作所 | キャッシュ制御方法および制御装置 |
JPH0470946A (ja) * | 1990-07-04 | 1992-03-05 | Mitsubishi Electric Corp | Dmaコントローラを内蔵した処理装置 |
JPH04119445A (ja) * | 1990-09-11 | 1992-04-20 | Canon Inc | 計算機システム |
US5408629A (en) * | 1992-08-13 | 1995-04-18 | Unisys Corporation | Apparatus and method for controlling exclusive access to portions of addressable memory in a multiprocessor system |
US5434976A (en) * | 1992-09-28 | 1995-07-18 | Standard Microsystems Corporation | Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers |
JPH06110781A (ja) * | 1992-09-30 | 1994-04-22 | Nec Corp | キャッシュメモリ装置 |
JP2809961B2 (ja) * | 1993-03-02 | 1998-10-15 | 株式会社東芝 | マルチプロセッサ |
US5499354A (en) * | 1993-05-19 | 1996-03-12 | International Business Machines Corporation | Method and means for dynamic cache management by variable space and time binding and rebinding of cache extents to DASD cylinders |
US5450551A (en) * | 1993-05-28 | 1995-09-12 | International Business Machines Corporation | System direct memory access (DMA) support logic for PCI based computer system |
FR2707774B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux. |
US5504874A (en) * | 1993-09-29 | 1996-04-02 | Silicon Graphics, Inc. | System and method of implementing read resources to maintain cache coherency in a multiprocessor environment permitting split transactions |
WO1995025306A2 (en) * | 1994-03-14 | 1995-09-21 | Stanford University | Distributed shared-cache for multi-processors |
US5490280A (en) * | 1994-03-31 | 1996-02-06 | Intel Corporation | Apparatus and method for entry allocation for a resource buffer |
US5465336A (en) * | 1994-06-30 | 1995-11-07 | International Business Machines Corporation | Fetch and store buffer that enables out-of-order execution of memory instructions in a data processing system |
KR100357338B1 (ko) * | 1994-08-02 | 2003-02-11 | 가부시끼가이샤 히다치 세이사꾸쇼 | 데이타처리시스템 |
JP3531074B2 (ja) * | 1994-11-28 | 2004-05-24 | 富士通株式会社 | 記憶装置制御システム |
US5717942A (en) * | 1994-12-27 | 1998-02-10 | Unisys Corporation | Reset for independent partitions within a computer system |
US5838955A (en) * | 1995-05-03 | 1998-11-17 | Apple Computer, Inc. | Controller for providing access to a video frame buffer in split-bus transaction environment |
US5852718A (en) * | 1995-07-06 | 1998-12-22 | Sun Microsystems, Inc. | Method and apparatus for hybrid packet-switched and circuit-switched flow control in a computer system |
US5787265A (en) * | 1995-09-28 | 1998-07-28 | Emc Corporation | Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses |
US5793992A (en) * | 1996-06-13 | 1998-08-11 | Vlsi Technology, Inc. | Method and apparatus for arbitrating access to main memory of a computer system |
US5717897A (en) * | 1996-09-09 | 1998-02-10 | Unisys Corporation | System for coordinating coherency of cache memories of multiple host computers of a distributed information system |
-
1997
- 1997-11-05 US US08/964,630 patent/US6049845A/en not_active Expired - Lifetime
-
1998
- 1998-11-04 KR KR10-2000-7004752A patent/KR100381619B1/ko not_active IP Right Cessation
- 1998-11-04 DE DE69812685T patent/DE69812685T2/de not_active Expired - Fee Related
- 1998-11-04 WO PCT/US1998/023459 patent/WO1999023570A1/en active IP Right Grant
- 1998-11-04 AU AU13051/99A patent/AU1305199A/en not_active Abandoned
- 1998-11-04 JP JP2000519362A patent/JP3635634B2/ja not_active Expired - Fee Related
- 1998-11-04 BR BR9814844-3A patent/BR9814844A/pt not_active Application Discontinuation
- 1998-11-04 AT AT98956552T patent/ATE235713T1/de not_active IP Right Cessation
- 1998-11-04 EP EP98956552A patent/EP1029283B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1029283A1 (en) | 2000-08-23 |
WO1999023570A1 (en) | 1999-05-14 |
US6049845A (en) | 2000-04-11 |
EP1029283B1 (en) | 2003-03-26 |
AU1305199A (en) | 1999-05-24 |
JP2001522092A (ja) | 2001-11-13 |
DE69812685D1 (de) | 2003-04-30 |
JP3635634B2 (ja) | 2005-04-06 |
KR20010031690A (ko) | 2001-04-16 |
BR9814844A (pt) | 2000-10-03 |
ATE235713T1 (de) | 2003-04-15 |
DE69812685T2 (de) | 2003-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100381619B1 (ko) | 데이터 전송을 위한 이론적 조정 제공 시스템 및 방법 | |
JP2501375B2 (ja) | マルチプロセッサシステム | |
US5778438A (en) | Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests | |
EP1029271B1 (en) | Split lock operation to provide exclusive access to memory during non-atomic operations | |
US6029204A (en) | Precise synchronization mechanism for SMP system buses using tagged snoop operations to avoid retries | |
US6052760A (en) | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks | |
US6189078B1 (en) | System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency | |
US6128677A (en) | System and method for improved transfer of data between multiple processors and I/O bridges | |
JPH0786849B2 (ja) | 共有メモリ及び私用キャッシュメモリを有するマルチプロセッサコンピュータシステム | |
JPH07287686A (ja) | データ処理システム内でバス仲裁プロトコルを実行する方法および装置 | |
KR980010806A (ko) | 각종 프로세서와 버스 프로토콜에 적응 가능한 범용 구조를 제공하는 컴퓨터 시스템 | |
US20040111563A1 (en) | Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors | |
EP1029276A1 (en) | System and method for terminating lock-step sequences in a multiprocessor system | |
JPH06282528A (ja) | データ転送方法及びそのシステム | |
US6889343B2 (en) | Method and apparatus for verifying consistency between a first address repeater and a second address repeater | |
US6735654B2 (en) | Method and apparatus for efficiently broadcasting transactions between an address repeater and a client | |
US6877055B2 (en) | Method and apparatus for efficiently broadcasting transactions between a first address repeater and a second address repeater | |
KR100277446B1 (ko) | 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치 | |
JP3466728B2 (ja) | 情報処理システム及びその方法 | |
JP2697974B2 (ja) | デッドロックを回避する方法 | |
JPH0619833A (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: 20090408 Year of fee payment: 7 |
|
LAPS | Lapse due to unpaid annual fee |