KR0130737B1 - 데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치 - Google Patents

데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치

Info

Publication number
KR0130737B1
KR0130737B1 KR1019930030595A KR930030595A KR0130737B1 KR 0130737 B1 KR0130737 B1 KR 0130737B1 KR 1019930030595 A KR1019930030595 A KR 1019930030595A KR 930030595 A KR930030595 A KR 930030595A KR 0130737 B1 KR0130737 B1 KR 0130737B1
Authority
KR
South Korea
Prior art keywords
processor
information
data
memory
response
Prior art date
Application number
KR1019930030595A
Other languages
English (en)
Other versions
KR940018763A (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 윌리암 티.엘리스
Publication of KR940018763A publication Critical patent/KR940018763A/ko
Application granted granted Critical
Publication of KR0130737B1 publication Critical patent/KR0130737B1/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/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Abstract

데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치가 제공된다. 각 다중 프로세서는 다중 프로세서와 메모리를 연결하는 공통 버스에 의해 전송된 데이터를 지장하기 위한 관련 버퍼를 갖는다. 각 다중 프로세서는 공통 버스를 지속적으로 모니터하고, 시도된 동작에 이어지는 특정 시간 주기동안 데이터 처리 장치 내에서 데이터 일치성을 위반한 또 다른 하나의 다중 프로세서의 시도된 동작에 응답하여 소정의 제어 신호를 요구할 수 있다. 데이터는 메모리로부터 하나의 다중 프로세서와 관련된 버퍼로 전송되어 특정 시간 주기의 종료 전 및 이러한 전송이 가능한 데이터 일치성 문제를 일으킬지 여부의 결정 전에 버퍼와 관련된 프로세서로부터의 요구에 응답하여 버퍼 내에 저장된다. 공통 버스는 특정 시간 주기동안 지속적으로 모니터된다. 특정 시간 주기의 종료 전에 공통 버스 상에 나타나는 소정의 제어 신호에 응답하여 데이터 전송이 금지된다. 공통 버스 상에 소정의 제어 신호의 부존재에 응답하여 버퍼로부터 프로세서로의 데이터 전송이 허용된다.

Description

데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치
제1도는 본 발명의 방법 및 장치를 구현하기 위해 사용되는 다중 프로세서 데이터 처리 장치를 도시한 고레벨 블록 다이아그램.
제2도는 제1도의 다중 프로세서 데이터 처리 장치 내의 캐쉬 메모리/버스 인터페이스의 고레벨 블록 다이아그램.
제3도는 본 발명에 따른 데이터 전송을 도시한 타이밍 다이아그램.
제4도는 본 발명에 따라 버퍼로부터 그 버퍼와 관련된 프로세서로의 데이터 전송을 예시한 고레벨 플로우챠즈.
* 도면의 주요부분에 대한 부호의 설명
6 : 다중 데이터 처리장치 8 : 버스
10 : 프로세서 18 : 주 저장 메모리
20 : 제2 레벨 캐쉬 40 : 캐쉬 메모리
42 : 입력 대기열 48 : 캐쉬 중재
50 : 캐쉬 데이터 52 : 캐쉬 태그(tags)
54 : 캐쉬 상태부(메시 : MESI) 56 : 최근 최소 사용(LPU)
60 : 메모리 대기열 62 : 버스 제어 논리
64 : 판독 버퍼 66 : 재적재 버퍼
본 발명은 일반적으로 데이터 처리 장치에서 데이터 전송의 향상된 효율에 관한 것으로, 구체적으로 다중 프로세서 데이터 처리 장치에서 전송 효율을 향상시키기 위한 방법 및 장치에 관한 것이다. 더욱 구체적으로는, 본원 발명은 전송이 데이터 일치성(coherency) 문제를 일으키는지 여부를 판단하기 전에 다중 프로세서 데이터 처리 장치 내에서 데이터를 실험적으로 전송하고, 그 후 시험 동작이 다중 프로세서 데이터 처리 장치 내에서 데이터 일치성을 위반했음을 알려주는 공통 버스 상에서 나타나는 소정의 후속 제어 신호에 응답하여 하나의 다중 프로세서에 그 데이터 전송 완료를 금지시키기 위한 방법 및 장치에 관한 것이다.
현재 데이터 처리 장치 기술 분야의 설계자들은 이러한 장치의 성능 특성을 향상시키기 위한 시도를 지속적으로 하고 있다. 데이터 처리 장치 효율을 향상시키기 위한 한가지 기술은 그 장치 내에 다중 프로세서를 제공하는 것이다. 다중 프로세서 데이터 처리 장치 내의 각 프로세서는 통상 소형의 특수 메모리, 또는 본 기술 분야의 당업자에게 잘 알려진 방식으로 장치 메모리 내에 데이터 또는 명령을 액세스하는데 자주 사용되는 캐쉬(CACHE)를 포함하고 있다. 캐쉬 메모리 장치의 크기나 용도는 데이터 처리 기술에서는 잘 알려진 부차(副次)특성으로, 본 출원 내에서는 설명되어 있지 않다. 그러나, 본 기술 분야의 당업자들은 캐쉬/메모리 인터페이스 내에 일시적으로 저장된 데이터를 사용하는 최근의 연관 캐쉬(associative cache) 기술을 사용하여, 장치 내에서 큰 비율(percentage)의 메모리 액세스가 달성될 수 있다는 것을 잘 알고 있다. 메모리가 더 작은 캐쉬들로 분산되어 있는 다중 프로세서 장치에서 발생하는 하나의 문제는 어떤 캐쉬의 동작에 의해 프로세서로 하여금 프로세서와 관련된 캐쉬 내에 들어 있는 데이터 블록을 비워서 쓸모없게 하거나 비우거나 쓸모없게 한다는 점이다. 프로세서가 하나인 경우에는, 데이터 블록은 두 장소 중 어느 하나 내에만, 즉 캐쉬 또는 주 메모리 내에만, 존재할 수 있기 때문에 이러한 캐쉬 동작은 상대적으로 집적적인 동작으로 이루어진다. 그러나, 다중 프로세서인 경우에는 다른 프로세서가 관련된 캐쉬 내에 동일한 데이터 블록을 가질 수도 있으며, 데이터 블록은 변경되지 않을 수 있기 때문에 이러한 기능은 복잡해진다.
다중 프로세서 장치에서 데이터 일치성을 유지하기 위한 하나의 방법은 데이터가 그 데이터를 요구하는 마이크로프로세서까지 실제로 전송되기 전에 그 데이터가 유효한 데이터(good data)임이 확인되어야 한다. 확인 처리를 하는 동안 이러한 장치에서는 시간 지연이 발생한다. 각 프로세서가 자신의 캐쉬를 포함하고 있는 다중 프로세서 장치에서는, 각 캐쉬가 검사되어야만 하기 때문에 이러한 시간 지연은 증가된다. 데이터 일치성 문제를 일으킬 수도 있는 주소가 지정된 데이터에서 지시받은 요구를 검사하기 위해 각 프로세서가 공통 버스 상에서 스누프(snoop)동작을 하도록 함으로써 달성된다.
따라서, 데이터 일치성 문제가 존재하는지 여부를 결정하기 전에 다중 프로세서 데이터 처리 장치내에서 데이터의 시험적 전송을 허용하고 그 후 그 시험 동작이 데이터 일치성을 위반했음을 알려주는 공통 버스 상에 나타나는 소정의 제어신호에 응답하여 그 데이터 전송 완료를 금지시킴으로써 데이터 전송 효율을 향상 시키기 위한 방법 및 장치가 필요하다는 것은 명백하다.
본 발명의 목적은 데이터 처리 장치에서 향상된 데이터 전송 효율을 제공하는 것이다.
본 발명의 또다른 목적은 다중 프로세서 데이터 처리 장치에서 데이터 전송효율을 향상시키기 위한 개량된 방법 및 장치를 제공하는 것이다.
본 발명의 또다른 목적은 전송이 데이터 일치성 문제를 일으키는지 여부를 결정하기 전에 다중 프로세서 데이터 처리 장치 내에서 데이터를 시험적으로 전송하고, 그후 그 시험 동작이 다중 프로세서 데이터 처리 장치 내에서 데이터 일치성을 위반했음을 알려주는 공통 버스 상에 나타나는 소정의 후속 제어 신호에 응답하여 하나의 다중 프로세서에 그 데이터 전송 완료를 금지시키기 위한 개량된 방법 및 장치를 제공하는 것이다.
상기 목적들은 이하 기술하는 바와 같이 달성된다. 데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치가 제공된다. 각 다중 프로세서는 프로세서와 메모리를 연결해 주는 공통 버스에 의하여 전송된 데이터를 저장하기 위한 관련된 버퍼를 가지고 있다. 각 다중 프로세서는 공통 버스를 지속적으로 모니터하고, 시험 동작에 이어지는 특정 시간 주기동안 데이터 처리 장치 내에서 데이터 일치성을 위반한 또 다른 다중 프로세서의 시험 동작에 응답하여 소정의 제어신호를 요구할 수 있다. 데이터는 그 버퍼와 관련된 프로세서로부터의 요구에 응답하여 특정 시간 주기 종료 전 및 이러한 전송이 가능한 데이터 일치성 문제를 일으키는지의 여부를 판단하기 전에 메모리로부터 하나의 다중 프로세서와 관련된 버퍼에 전송되고, 그 버퍼 내에 저장된다. 공통 버스는 특정 시간 주기동안 지속적으로 모니터된다. 버퍼로부터 프로세서로의 데이터 전송은 특정 시간 주기 종료 전에 공통 버스상에 나타나는 소정의 제어 신호에 응답하여 금지된다. 버퍼로부터 프로세서로의 데이터 전송은 공통버스 상에 소정의 제어 신호가 없는 것에 응답하여 허용된다.
상기 이외의 본 발명의 부가적인 목적, 특징 및 장점은 다음의 상세한 설명에서 명확해질 것이다.
본 발명의 신규한 특징은 첨부된 청구 범위에 설명되어 있다. 그러나, 바람직한 사용 모드, 그 부가적인 목적 및 장점 뿐만 아니라 본 발명 자체는 첨부 도면과 함께 해석될 때 예시적인 실시례에 대한 다음의 상세한 설명을 참조함으로써 가장 잘 이해될 것이다.
도면, 특히 제1도를 참조하면, 본 발명의 방법 및 장치를 구현하기 위해 사용되는 다중 프로세서 데이터 처리 장치(6)을 예시한 고레벨 블록 다이아그램이 도시되어 있다. 예시된 바와 같이, 다중 프로세서 데이터 처리 장치(6)은 다중 스칼라 프로세서 (10)을 사용하여 구성되며, 다중 스칼라 프로세서는 각각 버스 (8)을 사용하여 장치 메모리 (18)에 연결된다. 다중 프로세서 데이터 처리 장치(6)과 같은 밀결합(tightly­coupled) 대칭 다중 프로세서 장치에 있어서, 다중 프로세서 데이터 처리 장치(6) 내의 각 프로세서(10)은 메모리 (18)로부터 판독 하거나 메모리 (18)에 기록하는데 사용된다.
제1도 내에 예시되고, 이하 더욱 자세히 설명되는 바와 같이, 다중 프로세서 데이터 처리 장치(6)내의 각 프로세서(10)은 장치 메모리 (18)로부터 소정의 명령 또는 데이터를 효율적이고 일시적으로 액세스하여 저장하는데 사용되는 캐쉬 메모리 (40)을 포함한다. 캐쉬 메모리가 메모리 공간을 구성하고 있다는 사실에 비추어, 정확한 동작을 확실히 수행하기 위해서는 다중 프로세서 데이터 처리 장치(6) 내에 있는 각 캐쉬 메모리(40)간에 일치성을 유지하는 것이 중요하다. 캐쉬 (40) 외에 제2 레벨 캐쉬 또는 제2차 캐쉬(20)은 메모리 (18)과 버스 (18)사이에 제공된다. 제2 레벨 캐쉬 (20)은 데이터 전송 효율을 개선하기 위하여 제공된다. 전형적으로, 제2 레벨 캐쉬 (20)은 캐쉬 (40)보다 더 크고 더 많은 데이터를 저장할 수 있지만, 응답 시간은 더 느리다. 제2 레벨 캐쉬 (20)은 어느 하나의 프로세서 (10)에 의해 요구될 수도 있는 데이터 이외에 캐쉬 (40)내에 저장된 데이터의 복사본을 포함한다.
따라서, 제2 레벨 캐쉬 (20)를 부가하여, 어느 하나의 프로세서 (10)에 의해 요구된 데이터가 캐쉬(40) 또는 제2 레벨 캐쉬 (20) 중 어느 하나에서 발견될 가능성이 증가된다.
제2도를 참조하면, 제1도의 다중 프로세서 데이터 처리 장치 내에 있는 캐쉬 메모리/버스 인터페이스의 고레벨 블록 다이아그램이 도시되어 있다. 도시된 바와 같이, 캐쉬 메모리 (40)은 메모리 대기열(queue) (60)에 의해 버스(8)에 연결된다.
본 발명의 중요한 특징에 따르면, 캐시 메모리 (40)에 대한 적재 및 저장은 입력 대기열 (42)에 의해 메모리(40)에 연결된다. 캐쉬 메모리 (40)의 액세스 본 기술 분야의 당업자에게 잘 알려진 방법으로 캐쉬 중재 제어 (48)을 통해 이루어진다.
캐쉬 메모리(40)내에 도시된 바와같이, 일반적으로 다수의 캐쉬 태그(tags) (52)가 제공된다. 각 캐쉬 태그는 캐쉬 메모리 (40)내에 있는 캐쉬 데이터 (50)의 액세스 지정 및 제어에 이용된다. 부가적으로 캐쉬 상태부(5)가 캐쉬 메모리(40)내에 도시되어 있다. 캐쉬 상태부(54)는 캐쉬 메모리(40)내에 있는 각 엔트리에 대한 캐쉬 상태 표시를 제공하는데 사용된다. 본 발명의 도시된 실시예에 있어서, 전형적으로 메시(MESI)로 통칭되는 4가지 상태의 캐쉬 프로토콜이 사용된다. 본 기술 분야의 당업자들은 이러한 4가지 분자의 각각이 캐쉬 메모리 (40)내의 특정 데이터 상태에 대응된다는 것을 이해할 것이다. 즉, 4가지 상태는 변경된 (modified) ; 베타적인(exclusive) ; 공유된(shared) ; 및 무효의(invalid) 상태를 나타낸다. 또한, 최근 최소 사용(least recently used : LRU) 프로토콜 (56)도 캐쉬 메모리 (40)내에 도시되어 있다. 본 기술 분야의 당업자들이 잘 이해하고 있는 바와같이, 최근 최고 사용 프로토콜 (56)은 케이블 내에 존재하지 않는 데이터를 요구한 결과 부가적인 데이터가 캐쉬 메모리 (40)내로 들어오는 경우, 무슨 데이터가 캐쉬 메모리 (40)으로부터 제거되어야만 하는지를 결정하는데 사용된다.
다중 프로세서 장치에 있어서, 다중 프로세서는 동일한 데이터를 거의 동일한 시간에 액세스 하거나 또는 변경하도록 시도될 수 있다. 데이터의 일관성을 유지하기 위해, 프로세서 (10)은 버스 (8) 상의 모든 데이터를 판독 버퍼(64)에 입력시켜 다른 프로세서의 동작을 모니터 하거나 또는 스누프한다. 그 후 각 프로세서 (10)은 다른 프로세서 (10)에 의한 동작이 데이터의 일관성을 위반하는지의 여부를 결정한다. 데이터 일관성이 위반된 경우, 프로세서 (10)은 버스 (8)상에서 가능한 데이터 일관성 문제를 알려주는 소정의 제어 신호를 출력할수 있어야만 한다. 판독 버퍼(64)내의 데이터 재적재 버퍼(66)내에 배열된다. 데이터 일관성이 위반될 경우, 재적재 버퍼(66)내의 데이터는 프로세서(10)내로 전송되는 것이 금지된다.
버스 제어 논리(62)는 시도 동작 후 특정 시간 주기 동안 공통 버스(8)상에 소정의 제어 신호가 존재하는지 여부를 재적재 버퍼에 나타낸다. 만일 소정의 제어 신호가 시도 동작 후 특정 시간 주기동안 나타나지 않으면, 재적재 버퍼(66)내의 데이터는 캐시 중재(48)내에 배열된다.
제3도를 참조하면, 본 발명에 따른 데이터 전송을 예시하는 타이밍 다이아그램이 도시되어 있다. 신호(70)은 도시된 다른 신호들을 동기화시켜 주는 버스 클럭을 나타낸다. 신호(71)은 주소 및 주소 일치 제어 신호를 나타낸다. 신호 (72)는 주소 버스 주기의 시작을 나타낸다. 하나의 프로세서 (10)은 데이터의 주소를 전송함으로써 데이터를 요구한다. 다음에, 신호 (74)는 주소 전송 종료의 인식을 나타낸다. 신호 (76)은 전형적으로 데이터 전송을 위해 요구되는 데이터 버스의 부여을 나타낸다. 그후 신호(78)은 데이터가 프로세서 (10)내로 전송되었다는 인식을 나타낸다. 이러한 인식은 데이터의 실제 전송과 동시에 일어난다. 신호 (80)은 신호 (72) 및 (74)에 의해 도시된 전송된 주소와 관련하여 버스(8)상의 데이터의 존재를 나타낸다.
다음에, 신호(82)는 판독 버퍼(64)에 존재하는 버스 (8)로부터 전송된 데이터를 나타낸다. 도시된 바와 같이, 이미 클럭 주기 2에서 데이터 전송 인식이 발생하는 한편 데이터는 클럭 주기 3동안에 버퍼(64)내로 전송된다. 그 후 데이터는 신호(84)에 의해 도시된 바와같이 클럭 주기 4도안에 재적재 버퍼(66) 내로 전송된다. 프로세서(10)은 이 시간동안 버스(8)을 모니터 하고 예시된 바와같이 신호(86)의 존재를 검지한다. 신호(86)은 데이터 일치성 문제가 검지되는 경우에 출력된다. 신호(86)이 검지된 경우에는, 신호(88)은 출력되지 않으며, 신호 (88)의비출력은 데이터가 프로세서로 전송되는 것을 금지한다. 그러나, 만일 신호(86)이 검지되지 않으면, 신호(88)이 요구되고 신호(90)에 의해 도시된 바와같이 데이터는 프로세서로 전송된다.
제4도를 참조하면, 본 발명의 방법 및 장치에 따라 장치 메모리로부터 프로세서와 관련된 버퍼로 데이터 전송을 예시한 고레벨 플로우챠트가 도시되어 있다.
도시된 바와같이, 프로세서는 블록 (100)에서 시작하고 그 후 블록(102)를 통과한다. 블록 (102)는 다중 프로세서 블록 (100)에서 시작하고 그후 블록(102)를 통과한다. 블록 (102)는 다중 프로세서 데이터 처리장치 (6)내에서 프로세서에 의한 데이터 전송요구의 개시를 나타낸다. 데이터 요구 및 버스(8)상으로 그 데이터에 대한 주소의 전송의 결과로 이러한 개시가 발생한다.
다음에, 본 발명의 중요한 특징에 따르면, 두 개의 프로세서가 동시에 일어난다. 즉, 블럭(104)는 다른 프로세서가 데이터 전송과 관련된 데이터 일치성 문제를 알려주는 특정 시간 주기동안 공통 버스를 지속적으로 모니터링하는 것을 나타낸다.
동시에, 블록(106)은 다른 프로세서가 데이터 일치성 문제의 가능성을 알려주는 허용된 시간 주기가 계속되는 동안 개시 프로세서와 관련된 버퍼에 그 데이터를 전송하는 것을 나타낸다. 본 기술 분야의 당업자들은 이러한 방법으로 데이터 일치성 문제가 존재하는지 여부의 결정에 필요한 호출 주기(latency period)의 종료 전에 고속 캐쉬 메모리로부터 데이터가 신속하게 전송되어 데이터 전송 효율이 매우 향상된다는 것을 이해할 것이다.
다음에, 블록(108)을 참조하면, 데이터 일치성 문제의 가능성을 알려주는 다른 프로세서를 위해 허용된 시간 주기 종료 전에 공통 버스상에 주소 재시도, 또는 ARETRY신호가 존재하는지 여부에 관한 결정이 도시되어 있다. 주소 재시도 신호는 데이터 일치성 문제의 가능성을 알려주는 프로세서에 의한 장치에 전형적으로 사용되는 신호로서 주소 재시도 신호를 개시하는 프로세서에 의해 데이터 일치성 문제가 해결될 때까지 반복적으로 출력된다. 주소 재시도 신호가 그 장치 내에 있는 대체 프로세서에 의해 출력된 경우, 그 프로세서는 블록 (110)을 통과한다.
블록(110)은 버퍼로부터 관련 프로세서로의 데이터 전송 금지를 나타낸다. 따라서, 데이터 일치성 문제가 존재하는지 여부를 실제로 결정하기 전에 데이터가 메모리로부터 프로세서와 관련된 버퍼로 전송되고, 그 후 만일 가능한 데이터 일치성 문제가 존재함을 알려주는 신호가 버스 상에 존재하는 경우, 버퍼로부터 프로세서로의 데이터 전송은 선택적으로 금지된다. 그 후에, 프로세서는 블럭(112)를 통과하고 후속 전송 발생 대기로 되돌아 간다.
블록(108)을 다시 참조하면, 신호가 허용되는 시간 주기의 종료 전에 대체 프로세서에 의해 공통 버스상에 재시도 신호의 요구가 없는 경우, 프로세서는 블록(114)를 통과한다. 블록 (114)는 버퍼로부터 관련 프로세서로 그 데이터를 즉시 전송하여 매우 향상된 속도 및 효율로 데이터가 프로세서에 전송되는 것을 나타낸다. 이러한 방법으로 본 발명의 방법 및 장치는 시간 주기를 대기하는 동안 대체 프로세서가 데이터 일치성 문제의 기능성을 알려주고 그 후 메모리로부터 프로세서로 데이터 전송을 개시하기 보다는, 데이터가 메모리로부터 프로세서와 관련된 버퍼로 데이터가 시험적으로 전송되도록 하여 버퍼로부터 관련 프로세서로 그 데이터 전송은 일치성 문제의 기능성을 알려주는 신호의 존부(存否)를 사용하여 제어된다. 버퍼로부터 관련 프로세서로 데이터를 전송한 후, 프로세스는 다시 블록 (112)를 통과하고 후속 데이터 전송 대기로 되돌아간다.
본 발명은 바람직한 실시예를 참조하여 특별히 도시되고 기술되었지만, 형태 및 세부 사항의 다양한 변경이 본 발명의 정신과 범위를 벗어남이 없이 이루어질 수 있다.

Claims (13)

  1. 요구에 응답하여 정보를 출력하는 메모리, 상기 메모리에 연결되어 있고 상기 요구를 출력하기 위한 제1 프로세서로서 ① 데이터와 명령어를 저장하기 위한 캐쉬 메모리 구역, ② 상기 캐쉬 메모리 구역에 연결된 버퍼 구역으로서, 상기 요구후 제2프로세서가 데이터 일치성의 위반을 나타내는 기간인 특성 시간 주기 종료 이전에 상기 메모리로부터 상기 버퍼 구역으로 상기 정보를 입력하고, 상기 특정 시간 주기 종료에 응답하여 상기 캐쉬 메모리 구역으로 상기 정보를 선택적으로 전송하되, 상기 특정 시간 주기 종료 이전에 제어 신호가 없으면 상기 특정 시간 종료에 응답하여 상기 캐쉬 메모리 구역에 상기 정보를 전송하도록 동작되는 버퍼 구역, ③ 상기 제어 신호에 응답하여 상기 전송을 금지시키는 로직 구역을 포함하는 제1 프로세서. 상기 제1 프로세서에 연결되고 상기 정보의 일치성을 위반하는 요구에 응답하여 상기 특정 시간 주기 종료 전에 상기 제어 신호를 출력하기 위한 상기 제2 프로세서를 포함하되, 일치성의 위반을 나타내는 상기 제어 신호가 출력되는 상기 특정 시간 주기 동안 상기 정보가 상기 버퍼 구역 내에 수신되는 시스템.
  2. 제1항에 있어서, 상기 제1 프로세서는 상기 정보의 주소를 출력함으로서 상기 요구를 출력하도록 동작하는 시스템.
  3. 제2항에 있어서, 상기 신호는 주소 재시도 신호를 포함하는 시스템.
  4. 제1항에 있어서, 상기 메모리는 제2 레벨 캐쉬 메모리인 시스템.
  5. 제1항에 있어서, 상기 정보는 데이터 정보를 포함하는 시스템.
  6. ① 요구에 응답하여 정보를 출력하는 메모리, ② 상기 메모리에 연결되어 있고 상기 요구를 출력하기 위한 제1프로세서, ③ 상기 메모리와 상기 제1 프로세서에 연결되어 있고, 상기 요구후 제2 프로세서가 데이터 일치성의 위반을 나타내는 기간이 특정 시간 주기 종료 이전에 상기 메모리로부터 상기 로직으로 상기 정보를 입력하고, 상기 특정 시간 주기 종료에 응답하여 상기 제1 프로세서의 구역으로 상기 정보를 선택적으로 전송하고, 제어 신호에 응답하여 상기 전송을 금지시키기 위한 로직부로서, 상기 특정 시간 주기 종료 이전에 제어 신호가 없으면 상기 특정 시간 종료에 응답하여 상기 제1 프로세서의 상기 구역에 상기 정보를 전송하도록 동작되는 로직부, ④ 상기 로직부에 연결되고 상기 정보의 일치성을 위반하는 요구에 응답하여 상기 특정 시간 주기 전에 상기 제어 신호를 출력하기 위한 상기 제2 프로세서를 포함하되, 일치성의 위반을 나타내는 상기 제어 신호가 출력되는 상기 특정 시간 주기 동안 상기 정보가 상기 로직부 내에 수신되는 시스템.
  7. 제6항에 있어서, 상기 제1 프로세서는 상기 정보의 주소를 출력함으로서 상기 요구를 출력하도록 동작되는 시스템.
  8. 제7항에 있어서, 상기 신호는 주소 재시도 신호를 포함하는 시스템.
  9. 제6항에 있어서, 상기 제1 프로세서의 상기 구역은 캐쉬 메모리 구역인 시스템.
  10. 제9항에 있어서, 상기 제1 프로세서는 상기 로직을 포함하는 시스템.
  11. ① 제1 프로세서로부터 요구를 출력하는 단계, ② 상기 요구에 응답하여 메모리로부터 정보를 출력하는 단계, ③ 상기 요구 이후 특정 시간 주기 종료 이전 로직부를 이용하여 상기 제1 프로세서 내에 포함된 버퍼로 상기 메모리로부터 상기 정보를 입력하는 단계, ④ 상기 특정 시간 주기 종료에 응답하여 상기 버퍼로부터 상기 제1 프로세서의 캐쉬 구역으로 상기 정보를 선택적으로 전송하는 단계, ⑤ 상기 정보의 일치성을 위반하는 상기 요구에 응답하여 상기 특정 시간 주기 종료 이전에 제2 프로세서로부터 제어 신호를 출력하는 단계, ⑥ 상기 제어 신호에 응답하여 상기 전송을 금지시키는 단계를 포함하되 상기 특정 시간 주기 종료에 응답하여 상기 정보를 상기 제1 프로세서의 상기 캐쉬 구역으로 전송하는 방법.
  12. 제11항에 있어서, 상기 요구를 출력하는 제1단계는 상기 정보의 주소를 출력하는 단계를 포함하는 방법.
  13. 제12항에 있어서, 상기 신호를 출력하는 제5단계는 주소 재시도 신호를 출력하는 단계를 포함하는 방법.
KR1019930030595A 1993-01-29 1993-12-29 데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치 KR0130737B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US1091893A 1993-01-29 1993-01-29
US8/010,918 1993-01-29
US08/010.918 1993-01-29

Publications (2)

Publication Number Publication Date
KR940018763A KR940018763A (ko) 1994-08-18
KR0130737B1 true KR0130737B1 (ko) 1998-04-15

Family

ID=21748030

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930030595A KR0130737B1 (ko) 1993-01-29 1993-12-29 데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US5793986A (ko)
EP (1) EP0608638A1 (ko)
JP (1) JPH06282528A (ko)
KR (1) KR0130737B1 (ko)
CN (1) CN1054224C (ko)
CA (1) CA2113867C (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10501914A (ja) * 1995-07-19 1998-02-17 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 共用キャッシュ・メモリ装置
JP3123413B2 (ja) * 1995-11-07 2001-01-09 株式会社日立製作所 コンピュータシステム
DE69733623T2 (de) * 1996-03-15 2006-05-18 Sun Microsystems, Inc., Santa Clara Snoopbus für zerteite transaktionen und arbitrierungsverfahren
DE69717124T2 (de) * 1997-12-11 2003-07-17 Bull S.A., Louveciennes Verfahren zum Lesen von Daten auf einem gemeinsamen Speicher in einem Multiprozessor-Rechnersystem
US6338122B1 (en) 1998-12-15 2002-01-08 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively forwards a read request to a remote processing node
US20080077749A1 (en) * 2006-09-22 2008-03-27 Daniel Scott Cohen Access control of memory space in microprocessor systems
FR3021773B1 (fr) 2014-05-27 2017-10-06 Bull Sas Interrogation speculative en memoire centrale d'un systeme multiprocesseur

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4161778A (en) * 1977-07-19 1979-07-17 Honeywell Information Systems, Inc. Synchronization control system for firmware access of high data rate transfer bus
US4807109A (en) * 1983-11-25 1989-02-21 Intel Corporation High speed synchronous/asynchronous local bus and data transfer method
US4816993A (en) * 1984-12-24 1989-03-28 Hitachi, Ltd. Parallel processing computer including interconnected operation units
CN85101065A (zh) * 1985-04-01 1987-01-10 国际商业机器公司 高速处理器
US4992930A (en) * 1988-05-09 1991-02-12 Bull Hn Information Systems Inc. Synchronous cache memory system incorporating tie-breaker apparatus for maintaining cache coherency using a duplicate directory
US5018063A (en) * 1988-12-05 1991-05-21 International Business Machines Corporation Method for reducing cross-interrogate delays in a multiprocessor system
JP3016788B2 (ja) * 1989-03-02 2000-03-06 日本電気株式会社 装置間通信・キャッシュ一致処理方式
JPH02281356A (ja) * 1989-04-24 1990-11-19 Matsushita Graphic Commun Syst Inc 共有メモリ装置
US5283886A (en) * 1989-08-11 1994-02-01 Hitachi, Ltd. Multiprocessor cache system having three states for generating invalidating signals upon write accesses
ES2093001T3 (es) * 1990-03-26 1996-12-16 Siemens Nixdorf Inf Syst Sistema multiprocesador con un sistema de lineas para el acoplamiento de varias unidades de procesamiento con memorias cache privadas correspondientes y una memoria de trabajo comun.
US5289585A (en) * 1990-03-26 1994-02-22 Siemens Nixdorf Informationssysteme Ag Multiprocessor system having a system bus for the coupling of several processing units with appertaining private cache memories and a common main memory
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置

Also Published As

Publication number Publication date
JPH06282528A (ja) 1994-10-07
CN1054224C (zh) 2000-07-05
CA2113867A1 (en) 1994-07-21
CA2113867C (en) 1999-02-16
EP0608638A1 (en) 1994-08-03
CN1092883A (zh) 1994-09-28
US5793986A (en) 1998-08-11
KR940018763A (ko) 1994-08-18

Similar Documents

Publication Publication Date Title
KR100371844B1 (ko) 데이타처리시스템
KR100371845B1 (ko) 데이타처리시스템
KR100194253B1 (ko) 메시 데이터 코히어런시 프로토콜 이용 방법 및 멀티프로세서 시스템
KR0154533B1 (ko) 데이타 프로세서
US6049841A (en) Method and apparatus of selecting data transmission channels
US5353415A (en) Method and apparatus for concurrency of bus operations
US5426765A (en) Multiprocessor cache abitration
EP0748481B1 (en) Highly pipelined bus architecture
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US5133074A (en) Deadlock resolution with cache snooping
US5761725A (en) Cache-based computer system employing a peripheral bus interface unit with cache write-back suppression and processor-peripheral communication suppression for data coherency
US20100005247A1 (en) Method and Apparatus for Global Ordering to Insure Latency Independent Coherence
US5822765A (en) System and method for resolving contention arising from execution of cache coherency operations in a multiple cache computer system
US5737564A (en) Cache memory system having multiple caches with each cache mapped to a different area of main memory to avoid memory contention and to lessen the number of cache snoops
KR0130737B1 (ko) 데이터 처리 장치에서 메모리로부터 다중 프로세서로의 데이터 전송 효율을 향상시키기 위한 방법 및 장치
US7127562B2 (en) Ensuring orderly forward progress in granting snoop castout requests
US6601145B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
JPH01237835A (ja) 集積キャッシュユニットおよびその内部でキャッシュ機能を実現するための方法
US6862646B2 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
US6163815A (en) Dynamic disablement of a transaction ordering in response to an error
US6021474A (en) Apparatus and method of snooping processors and look-aside caches
US5949980A (en) Bus interface unit for preventing deadlock
US5696938A (en) Computer system permitting mulitple write buffer read-arounds and method therefor
US5809534A (en) Performing a write cycle to memory in a multi-processor system

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
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: 20010908

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee