KR100276136B1 - 캐시 스트리밍을 가능하게 하기 위한 방법 및 장치 - Google Patents
캐시 스트리밍을 가능하게 하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR100276136B1 KR100276136B1 KR1019980003466A KR19980003466A KR100276136B1 KR 100276136 B1 KR100276136 B1 KR 100276136B1 KR 1019980003466 A KR1019980003466 A KR 1019980003466A KR 19980003466 A KR19980003466 A KR 19980003466A KR 100276136 B1 KR100276136 B1 KR 100276136B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- data
- cache memory
- output signal
- circuit
- 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
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0879—Burst mode
-
- 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
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
본 발명은 일반적으로 정보 처리 시스템에 관한 것으로서, 본 발명의 프로세스 및 그 구현되는 컴퓨터 시스템에 있어서, 중재 회로(201)는 다수의 상태 머신(301,303 및 305)을 포함하고, 이들 머신은 여러 시스템 타이밍 신호를 수신하도록 조합되어, 데이터 블록간에 대기 상태를 개입하지 않고 L2 캐시 메모리(109)로부터의 정보의 순차적인 데이터 블록의 데이터 스트리밍을 가능하게 하는데 유효한 데이터 버스 허가 신호를 제공한다.
Description
본 발명은 일반적으로 정보 처리 시스템에 관한 것으로서, 특히 캐시 메모리로 부터 다수의 메모리 라인을 스트리밍(streaming)하기 위한 개선된 방법 및 장치에 관한 것이다.
컴퓨터 시스템은 전형적으로 중앙 처리 장치 또는 CPU, 메모리 서브시스템, 및 입/출력 장치를 포함하며, 또한 이러한 입/출력 장치에는 마우스, 키보드, 디스크 드라이브, 디스플레이 장치, 프린터가 포함될 수 있으며, 가능하게는 네트워크에 대한 접속장치가 포함될 수도 있다. 또한 많은 시스템은 다수의 프로세서 또는 CPU를 포함한다. 또한 대부분의 시스템은 제2 레벨 캐시 메모리 서브시스템 또는 L2 캐시를 포함하는데, 이는 상대적으로 더 느린 시스템 메인 메모리에 저장될 수 있는 다른 정보 보다 더 자주 억세스되는 정보의 저장을 위한 메인 시스템 메모리 보다도 제한되기는 하지만 더 빠른 메모리를 포함하도록 설계된다. 전형적으로, 이러한 모든 구성요소는 메인 시스템 메모리에 접속되는 것은 물론이고 L2 캐시에 직접 접속되는 로컬 버스 시스템을 통해서 함께 접속된다.
많은 CPU 장치는 컴퓨터 시스템내의 여러 구성요소에 대한 소위 "버스트(burst)" 억세스 허가(grants)를 처리하는 기능을 갖는다. 버스트 억세스가 개시될 때, 메인 시스템 메모리는, 다른 컴퓨터 시스템 구성요소들로부터 메인 메모리내의 다른 어드레스들을 억세스하기 위한 후속 요구(request)에 의해 인터럽트되지 않고 정상적인 것 보다 더 긴 정보 스트림을 판독 또는 기록하는 것이 가능하다. 이러한 버스트 모드는 시스템의 처리 속도를 증가시키는데 효과가 있는데, 특히 대용량의 정보가 처리될 때 유효하다. 왜냐하면, 이러한 정보의 상당부분은, 반복적으로 연속되는 순서에서 더 적은 정보 전송을 초래하게 되는 대기 상태와, 메모리 중재(arbitration) 및 억세스 지연에 개입하지 않고도, 단일 버스트에서 전송될 수 있기 때문이다.
전형적으로, 메모리에 대한 억세스는, 컴퓨터 시스템의 여러 구성요소에 의해서 메인 시스템 메모리를 억세스하기 위한 여러 요구를 구분하고 요구된 정보를 가장 효율적으로 그리고 신속히 전송하기 위해서 계산된 허가 순서로 요구를 허가(grant)하도록 위해서 설계된 메모리 억세스 요구 중재 회로를 일반적으로 포함하는, 시스템 메모리 제어기에 의해 제어된다. 일반적으로, 메모리 제어기에 대한 우선순위 및 포함된 중재 회로는 시스템 메인 메모리와의 정보 흐름을 최적화시키기 위해서 비교적 양호하게 설정된다. 그러나, 컴퓨터 시스템의 비교적 빠른 캐시 메모리 서브시스템과의 정보 전송을 최적화시키는데 개선점이 거의 없었다. 더욱이, 개선된 캐시 메모리 시스템 조차도 시스템 레벨상에서 시스템 메모리 억세스 요구를 중재하고 제어하는 데에는 기존의 방식 의해서는 제한된다. 그러므로, 캐시 메모리와 캐시에 저장된 정보에 대한 억세스를 요구하는 컴퓨터 시스템 구성요소 사이에서 정보를 더 빠르게 전송하게 하는 것이 가능한 캐시 메모리 억세스 중재 기술을 포함하는, 개선된 중재 장치 및 캐시 메모리가 필요하다.
다수의 상태 머신을 포함하는 중재 회로가 여러 시스템 타이밍 신호를 수신하고, 개별 데이터 블록 전송 사이에서 대기(wait) 상태를 개입하지 않고도 연속적인 데이터 블록으로 전송되는 캐시 메모리로부터의 데이터 스트리밍을 가능하게 하도록 캐시 메모리 회로에 인가될 때 유효한 데이터 버스 허가 신호를 제공하는 방법 및 구현 시스템이 제공된다.
도 1은 본 발명에 따라서 수행되는 데이터 버스 중재기 회로 및 L2 캐시를 포함하는 컴퓨터 시스템의 일부에 대한 개략적인 블록도.
도 2는 도 1에 도시된 데이터 버스 중재기 회로의 개략적 블록도.
도 3은 세 개의 주요 기능 엔진을 도시하는 중재기 회로의 보다 상세한 블록도.
도 4는 캐시 스트리밍 기술을 적용하지 않았을 때의 여러 신호 상호 관계를 도시하는 신호 타이밍도.
도 5는 캐시 스트리밍 기술을 실행했을 때의 여러 신호 상호 관계를 도시하는 신호 타이밍도.
도 6은 본원에 개시된 방법론에 따라서 수행된 하나의 예시된 프로세스 흐름을 도시한 흐름도.
* 도면의 주요부분에 대한 부호의 설명
101 : 중앙 처리 장치 103 : 시스템 로컬 버스
105 : 브릿지 회로 107 : 버스
109 : L2 캐시 메모리 111 : 데이터 버스 중재기 회로
첨부 도면과 함께하는 본 발명의 양호한 실시예에 관한 다음의 상세한 설명을 참조하면, 본 발명이 보다 양호하게 이해될 것이다.
도 1을 참조하면, 전술된 여러 방법은 개인용 컴퓨터, 워크스테이션 또는 네트워크 구성내에 장치된 정보 처리 장치들의 여러 조합을 포함할 수 있는, 전형적인 컴퓨터 시스템내에서 실행될 수 있다. 예시된 실시예에는 종래의 마이크로프로세서와 같은 중앙 처리 장치(CPU)(101)와, 시스템 로컬 버스(103)를 통해서 상호접속되는 다수의 다른 장치가 포함된다. 본 발명의 설명을 위해서, 여기서 개시된 처리 방법론이 미래의 버스 구성에 적용되며 어떤 특정한 버스 스켐에 제한되지는 않는다 할지라도, 예시된 실시예에서 도시된 로컬 버스는 메모리 제어기 및 브릿지 회로(105)를 통해서 소위 "PCI" 버스가 될 수도 있는, 다른 시스템 버스(107)로 접속되는 것으로 도시되어 있다. 로컬 버스(103) 및 PCI 버스(107)는 다른 워크스테이션 또는 네트워크, 다른 주변기기 및 그와 같은 장치에 대한 다른 접속을 포함할 수 있다. 또한 도 1에 도시된 시스템은 로컬 스버(103)에 접속된 레벨-2 또는 L2 캐시 메모리(109)를 포함한다. 또한, 데이터 버스 중재기 회로(111)는 로컬 버스(103)에 접속되는 것으로 도시되어 있다. 그 이유는 본 발명이 수행되는 워크스테이션 또는 컴퓨터 시스템이, 대부분의 경우에, 종래의 기술에서 일반적으로 공지되었으며 종래 기술에서 숙련된 사람에게는 일반적으로 공지된 전자 구성요소 및 회로로 구성되기 때문이다. 도 1에 도시된 것 이상의 또다른 시스템-레벨 세부사항은 도시된 것 이상으로는 설명되지 않는다. 왜냐하면 제시된 설명이 본 발명의 기본 개념의 이해 및 인식에 충분하며, 또한 본 발명의 사상을 혼란스럽게하거나 빗나가지 않기 위해서이다.
도 2에서, 도 1의 데이터 버스 중재기 회로(111)는 주요 중재기 입력 및 출력 신호를 포함하는 것으로 도시되어 있다. 입력 신호는, 로컬 버스(103)를 억세스하기 위해서 메모리 제어기 회로(105)에 의해서 시스템 구성요소에 대한 억세스가 허가된 매 시간 N 마다 표명(assert)되는 버스 허가 신호 BG, 전송 개시 신호 TS, 어드레스 승인 신호 AACK, 전송 타입 신호 TT를 포함하며, 이는 판독 신호, 기록 신호, 버스트 판독 신호, 버스트 기록 신호등을 포함하되 그것들에 제한되지는 않는, 다수의 정보 전송 형태중 하나를 표시할 수 있다. 다른 중재기 입력 신호는, 어드레스 재시행(retry) 신호 ARTRY, 전송 승인 신호 TA, 전송 버스트 신호 TBST, 및 하드웨어 리셋 신호 HRESET를 포함한다. 데이터 버스 중재기 회로는 데이터 버스 허가 출력 신호 DBG를 제공한다. 각각의 버스 마스터에 대해서 고유의 BR (버스 요구), BG (버스 허가) 및 DBG가 있다. 프로세서와 같은 장치는, 데이터 전송을 개시할 필요가 있을 때 BR을 표명한다. 어드레스 버스 중재기는 버스 허가 신호 BG에 응답하므로서 버스를 허가하며 그 후 프로세서는 전송을 개시하기 위해서 전송 개시 TS를 표명한다. 다음에, 데이터 버스 중재기는 데이터 버스 허가 DBG 신호를 이용하여 데이터 버스를 허가한다.
도 3에 도시된 바와같이, 데이터 버스 중재기 회로(111)내에 포함된 세 개의 주요 상태 머신 즉, 전송 승인 상태 머신(301), 제어 상태 머신(303) 및 L2 스트리밍 검출 상태 머신(305)이 있다. 전송 승인 상태 머신은 다수의 제어 상태중 하나를 표시하는 제어 상태 입력 신호를 수신한다. 또한, 전송 승인 상태 머신은 입력 신호 TA,DBB(제어 상태 머신(303)의 출력에 의해서 제공됨), TS, TT(0..4) 및 TBST를 수신한다. 전송 승인 상태 머신은 제어 상태 머신(303)의 하나의 입력에 인가되는 출력 계수 상태 신호를 제공한다.
제어 상태 머신(303)은 TS, BG, AACK, ARTRY, TT(0..4) 및 L2 스트리밍 검출 상태 머신(305)의 출력으로부터 인가되는 L2 스트리밍 검출 신호 LSD(0..4)를 포함하는 다른 입력을 수신한다. 제어 상태 머신(303)은 전송 승인 상태 머신(301)의 하나의 입력에 인가되는 제어 상태 (0..3) 출력 신호를 제공한다. 또한, 제어 상태 머신(303)은 L2 스트리밍 검출 상태 머신(305)의 하나의 입력에 인가되는 DBB 출력 신호를 출력한다. 제3 출력 신호로서, 데이터 버스 중재기 회로(201)로부터의 출력 신호인 데이터 버스 허가 신호 DBG는 제어 상태 머신(303)에 의해서 제공된다.
L2 스트리밍 검출 상태 머신(305)으로부터의 출력 신호 LSD(0..4)는 제어 상태 머신(303)에 대한 하나의 입력으로서 인가된다. L2 스트리밍 검출 상태 머신(305)은, 제어 상태 머신(303)의 출력으로부터 제공된 TS, TT(0..4), TA 및 DBB 신호를 포함하는 입력 신호를 수신한다. 도 4 및 도 5에 도시된 타이밍 차트는, 여기에 개시된 방법을 수행하는데 있어서 이를 테면 상태 머신(301,303,305)의 요구 조건을 규정하기 위해 도시된 여러 시스템 신호 사이 그리고 그 신호들 중의 관계를 설명하기 위해서 도시된 것이다. 상태 머신(301,303,305)은 도시된 시스템 신호 사이 및 그 신호들 중의 여러 타이밍 관계를 달성하기 위한 여러 특정 논리 구현에서 구성될 수 있다.
도 4에는, 여기서 개시된 고속 L2 스트리밍 기술을 채용하지 않는 시스템에서 제공되는 바와 같은 여러 신호가 도시되어 있다. 도 4의 타이밍 차트는 L2 캐시로부터 판독된 2-캐시-라인 판독을 위한 정상적인 타이밍의 일례를 제공한다. 도 5에서, 도시된 바와같은 신호 관계는 L2 캐시 메모리를 위한 고속 L2 스트리밍 방법을 수행하는데 효율적이다. 도 5의 타이밍 차트는 L2 캐시로부터 판독하는 두 개의 캐시 라인에 대한 L2 캐시 스트리밍 동안의 여러 신호의 타이밍을 도시하고 있다. 본 예에서, 각각의 캐시 라인은 32 바이트를 포함하며 데이터 버스 폭은 8 바이트이다. 그러므로, L2 캐시로부터 한 라인의 데이터를 전송하는데에는 각각 8 바이트의 4 데이터 클록이 요구된다. 다음에, 두 개의 라인을 전송하는데에는 각각 8 바이트의 8 데이터 클록이 요구된다. 본 발명에 따르면, 전송되어야 하는 제2 블록은 제1 블록 전송이 완료되기 전에 어드레스된다.
L2 캐시 회로는 소정의 프로세서에 의해서 지원되는 고속 L2 스트리밍 모드를 이용할 수 있다. 그러나, 고속 L2 스트리밍 모드는 매우 특별한 데이터 버스 중재 동작을 요구하며 통형적으로는 구현되지 않는다. 본 구현에 있어서, 데이터 버스 중재 및 향상된 L2 스트리밍 로직은, 전술된 바와 같은 세 개의 기능 상태 머신을 포함하는 새로운 데이터 버스 중재기 회로(201)내에 포함된다. 여기서 사용된 바와 같이, 고속 L2 스트리밍은 어떤 "대기 상태"를 개입하지 않고도 L2 캐시로부터 다수의 캐시된 메모리 라인을 검색하기 위한 프로세서 기능이다. 예를 들어, 고속 L2 스트리밍이 없을 때 다섯 개의 캐시 라인이 고속으로 연속하여 L2로부터 판독되었으면, 각각의 캐시 라인 판독전에 요구되는 2클록 대기 상태가 존재하게 된다. 고속 L2 스트리밍에 있어서, 전체 다섯 개의 라인이 어떤 개입되는 대기 상태를 초래하지 않고도 L2 캐시로부터 판독될 수 있다. 이러한 프로세스는 통상적으로 트랜잭션(transaction) 시간을 상당히 감소시키는 결과를 가져온다.
도 4에는, 캐시 데이터 스트리밍이 없는 예시적인 동작이 도시되어 있다. 도 4 및 도 5에서, 시간 T1-T10은 기준을 정하기 위한 목적으로, 클럭 펄스 C1-C10의 시작에 대응한다. 초기에, BG는 프로세서(101)가 어드레스 버스에 허가됨에 따라서 T1에서 액티브상태로 된다. 다음 클록 펄스 T2에서, 프로세서는 TS가 액티브상태로 됨에 따라서 전송을 시작한다. 시간 T3에서는, L2가 액티브상태로 되는 L2HIT 신호에 의해서 표시된 바와 같이 요구된 데이터를 갖는 것으로 판단되었다. 다음에, 데이터 버스 중재기 DBA(201)는 신호 DBG가 액티브 상태로 됨에 따라 데이터 버스를 프로세서로 허가한다. 시간 T4에서, 캐시(109)는 데이터 버스 허가를 승인하며 AACK 및 TA 신호가 액티브상태로 됨에 따라 데이터를 전송하기 시작한다. 현재의 중재 방식에 있어서는, 다음 데이터 블록은, 전송 데이터 신호 TA가 다시 액티브 로우로 되고 판독 프로세스가 반복되는 시간 T9에서, 가장 빨리, 캐시로부터 사이클을 시작할 수 있다.
도 5에는, 캐시 데이터를 스트리밍에 관한 예시적인 동작이 도시되어 있다. 다시, 버스 허가 신호 BG는 액티브되며, 시간 T2에서, 프로세스는 TS가 액티브 상태로 됨에 따라 전송 동작을 시작한다. 동일 시간 T2에서, 데이터 버스 중재기는 데이터 버스 허가 신호 DBG가 액티브상태로 됨에 따라 데이터 버스를 프로세서(101)로 허가한다. 시간 T3에서, L2 캐시(109)는 L2HIT가 액티브 상태로 됨에 따라 데이터를 갖는다는 것이 판단되었다. 또한, 전송 시작은 AACK로 승인되며, 데이터 TA 신호의 전송은 데이터가 전송됨에 따라 액티브상태로 된다. 전술된 캐시 스트리밍 방법론에 있어서, 데이터 전송은, 본 예에서, 또 다른 중재 또는 억세스 지연이 없이 여덟 개의 클록 사이클 동안에 액티브상태로 유지되며, 따라서 L2 캐시 메모리로부터의 데이터 전송을 최적화함을 알 수 있다. 시간 T4에서, 프로세서는 다시 어드레스 버스 BG를 허가하며 시간 T5에서 다음 전송 TS를 시작한다. 시간 T6에서, 다음 데이터 블록은 캐시 L2HIT에 있으며, 다시 AACK에 의해 전송 시작이 승인되고, 데이터 버스 중재기(201)는 데이터 버스를 프로세서(101)로 허가하는 것으로 판정되었다. 그 후 L2 캐시(109)는 대기 상태를 개입하지도 않고 다음 데이터 블록을 전송하기 시작한다.
본 예의 데이터 버스 중재기 회로는, L2 캐시의 동작을 제어하는데 있어서 현재의 데이터 버스 중재기 회로와 연산적 또는 기능적 충돌을 야기시킬 수도 있는 시스템 메모리 제어기내의 총돌 회로를 효율적으로 디스에이블시킬 수 있다. 이것은 예를 들어, 그 데이터 버스 중재기(DBA)를 디스에이블시키기 위해서 하드웨어 또는 소프트웨어내에 메모리 제어기(105)를 구성함으로써 수행될 수 있으며, 또는 메모리 제어기의 DBG 신호가 접속되지 않은 상태로 유지되고 DBG 신호는 향상된 데이터 버스 중재기(201)로부터 취해질 수 있다.
향상된 데이터 버스 중재기 회로(201)는 여러 버스 제어 신호를 모니터하고 요구된 데이터 버스 허가 DBC 신호를 발생하기 위해서 상태 머신을 이용하여 구현되었다. 시스템 내의 각각의 버스 마스터에 대해 하나의 DBG 신호가 발생되어야 한다. 버스 마스터는 그 버스 요구 신호 BR을 표명하므로서 버스를 요구할 수 있다. 시스템 프로세서(101)는 라이트-백(write-back)이 가능한 L2 캐시(109) 뿐만 아니라 버스(103)도 요구할 수 있다. 대칭 다중처리의 경우에, 다수의 프로세서 중 각각의 부가적인 프로세서(도시되지 않음)도 버스(103)를 요구할 수 있다. 고속 L2 스트리밍은, L2로부터의 프로세서-개시(processor-initiated) 캐시 라인 판독이 L2로부터의 다른 프로세서-개시 캐시 라인 판독의 상부에 파이프라인될 때만 이루어질 수 있다. 파이프라인된 L2 판독에 대해 전달되는 데이터는 어떤 대기 상태도 삽입하지 않고 초기 L2 판독 이후에 즉시 시작될 수 있다. 이를 위해서, 향상된 데이터 버스 중재기(201)는 제1 L2 "판독"의 마지막 데이터 클럭과 일치하는 프로세서의 데이터 버스 허가 DBG 출력 신호를 표명해야 한다. DBG 신호는, L2 스트리밍에 대한 모든 선행조건들이 만족될 때에만 즉, L2로부터의 프로세서-개시 캐시 라인 판독이 L2로부터의 다른 프로세서-개시 캐시 라인 판독의 상부에 파이프라인될 때에만 이러한 방식으로 표명된다. 만약 그렇지 않으면 프로세서의 특정 프로토콜이 위반될 수 있는데 이것은 불완전한 데이터 전송 및 시스템 정지를 야기시킬수 있기 때문에 이같은 사실이 옳음을 알 수 있다.
도 6에서, 예시된 방법론은 캐시 스트리밍 플래그를 "거짓(false)" 표시로 설정하므로서 시작된다(601). 다음으로, 프로세스는 프로세서(101)로부터 전송 개시 TS 신호를 기다린다(603). 다음에, 요구된 전송이 캐시 메모리(109)내에 배치되는지 여부를 판단한다(605). 만일 배치되지 않았으면, 프로세스는 시작 단계(601)로 되돌아가 다음 TS 신호를 대기한다. 그러나, 요구된 전송 정보가 캐시 메모리(109)내에 존재하면(605), 프로세스는 요구된 전송을 위한 최종 전송 승인 신호 TA가 언제 발생하였는지를 판단한다(607). 전술된 바와 같이, 본 예에서는, 캐시의 라인당 32 바이트 정보가 있으며, 데이터 버스 폭이 8 바이트 이므로 캐시로부터 메모리의 한 라인을 전송하기 위해서 각각 8 바이트로된 네 개의 블록이 있게 된다. 네 개의 데이터 세그먼트가 전송되는 동안에, 그리고 최종 데이터 전송 승인 신호가 감지되기 전에(607), 다음 전송 개시 신호가 프로세서(101)에 의해서 표명되었는지를 검사하므로써(609) 이 방법은 계속된다. 만일 표명되지 않았으면, 이 방법이 계속되어 최종 데이터 전송 승인 신호 TA에 대해 검사하게 된다. 그러나, 파이프라인된 전송 신호 TS가 캐시로부터 데이터를 전송하는 동안에 프로세서(101)에 의해서 표명되었으면(609), 데이터가 캐시 메모리내에 있는지 여부에 대한 판단이 이루어지고(611), 만일 메모리 내에 있으면, 캐시 스트리밍 플래그는 "참(TRUE)"으로 설정되고, 이 방법은 최종 데이터 전송 승인 신호를 검사하기 위해(607) 리턴된다. 판독되고 있는 캐시의 라인으로부터 네 개의 8-바이트 블록 중 마지막 블록의 최종 데이터 전송이 완료되었을 때, 프로세스는 스트리밍 플래그를 검사하고(615), 만일 이 스트리밍 플래그가 설정되었으면, 캐시로부터의 순차 데이터 전송 사이에 어떤 대기 상태도 초래하지 않고 그 다음 파이프라인된 데이터 전송이 개시된다(617).
본 발명의 방법 및 장치는 여기서 개시된 바람직한 실시예와 관련하여 기술되었다. 본 발명의 일 실시예가 여기서 상세히 예시 및 설명되었지만, 본 기술 분야에 통상의 지식을 가진자는 본 발명의 사상을 반영하는 여러 다양한 실시예를 쉽게 구성할 수 있으며, CPU나 다른 시스템 집적 회로 또는 칩에 포함되거나 집적될 수 있을 것이다. 그러므로, 본 발명은 여기에 설명된 특정 형태에 제한되지 않으며, 오히려, 발명의 사상 및 범위에 합리적으로 포함될 수 있는 대안예, 변형예 및 균등물을 포괄하도록 의도된 것이다.
전술한 바와 같은 본 발명에 따르면, 다수의 상태 머신을 포함하는 중재 회로가 여러 시스템 타이밍 신호를 수신하며, 개별 데이터 블록 전송 사이에서 대기 상태를 개입하지 않고도 연속적인 데이터 블록으로 전송되는 캐시 메모리로부터 데이터 스트리밍을 가능하게 하도록 캐시 메모리 회로에 인가될 때 유효한 데이터 버스 허가 신호를 제공하는 방법 및 실행 시스템이 제공된다.
Claims (9)
- 정보 처리 시스템 - 상기 정보 처리 시스템은 하나의 버스와 캐시 메모리 및 하나의 프로세서를 포함하고, 상기 캐시 메모리 및 상기 프로세서는 상기 버스에 결합됨 - 과 함께 사용하기 위한 중재 회로에 있어서, 상기 버스에 결합되어, 상기 정보 처리 시스템의 카운트 상태를 표시하는 카운트 출력 신호를 제공하기 위해 선택적으로 동작하는 제1 회로 장치, 상기 버스에 결합되어, 상기 캐시 메모리의 스트리밍 상태를 표시하는 스트리밍 출력 신호를 제공하기 위해 선택적으로 동작하는, 제2 회로 장치 및 상기 버스에 결합되며, 상기 카운트 출력 신호 및 상기 스트리밍 출력 신호에 응답하여 데이터 버스 허가 신호 - 상기 데이터 버스 허가 신호는 상기 캐시 메모리에 결합되고, 상기 캐시 메모리는 상기 데이터 버스 허가 신호에 응답하여 캐시 스트리밍 상태를 인에이블시키고, 상기 캐시 메모리는 상기 스트리밍 상태에 동작하여 대기 상태 개입 없이 상기 캐시 메모리로부터의 순차적인 정보 전송을 제공함 - 를 선택적으로 제공하기 위한 제3 회로 장치를 포함하는 중재 회로.
- 제 1항에 있어서, 상기 제1, 제2 및 제3 회로 장치는 상태 머신인 중재 회로.
- 제 1항에 있어서, 상기 제3 회로 장치는 또한 제어 상태 출력 신호를 제공하기 위해서 선택적으로 동작하며, 상기 제어 상태 출력 신호는 상기 제1 회로 장치의 입력 단자에 인가되는 중재 회로.
- 제 1항에 있어서, 상기 제3 회로 장치는 또한 버스 상태 출력 신호를 제공하기 위해서 선택적으로 동작하며, 상기 버스 상태 출력 신호는 상기 제2 회로 장치의 입력 단자에 인가되는 중재 회로.
- 정보 처리 시스템에 있어서, 프로세서 장치, 상기 프로세서 장치에 결합된 버스 시스템, 상기 버스 시스템에 결합된 캐시 메모리 및 상기 버스 시스템에 결합된 중재 회로를 포함하고, 상기 중재 회로는, 상기 버스에 결합되어, 상기 정보 처리 시스템의 카운트 상태를 표시하는 카운트 출력 신호를 제공하기 위해 선택적으로 동작하는 제1 회로 장치, 상기 버스에 결합되어, 상기 캐시 메모리의 스트리밍 상태를 표시하는 스트리밍 출력 신호를 제공하기 위해 선택적으로 동작하는, 제2 회로 장치 및 상기 버스에 결합되며, 상기 카운트 출력 신호 및 상기 스트리밍 출력 신호에 응답하여 데이터 버스 허가 신호 - 상기 데이터 버스 허가 신호는 상기 캐시 메모리에 결합되고, 상기 캐시 메모리는 상기 데이터 버스 허가 신호에 응답하여 캐시 스트리밍 상태를 인에이블시키고, 상기 캐시 메모리는 상기 스트리밍 상태에 동작하여 대기 상태 개입 없이 상기 캐시 메모리로부터의 순차적인 정보 전송을 제공함 - 를 선택적으로 제공하기 위한 제3 회로 장치를 더 포함하는 정보 처리 시스템.
- 제 5항에 있어서, 상기 제1, 제2 및 제3 회로 장치는 상태 머신인 정보 처리 시스템.
- 제 5항에 있어서, 상기 제3 회로 장치는 또한 제어 상태 출력 신호를 제공하기 위해 선택적으로 동작하며, 상기 제어 상태 출력 신호는 상기 제1 회로 장치의 입력 단자에 인가되는 정보 처리 시스템.
- 제 5항에 있어서, 상기 제3 회로 장치는 또한 버스 상태 출력 신호를 제공하기 위해 선택적으로 동작하며, 상기 버스 상태 출력 신호는 상기 제2 회로 장치의 입력 단자에 인가되는 정보 처리 시스템.
- 데이터를 위한 제1 요구에 응답하여 캐시 메모리로부터 데이터를 요구한 장치로 제1 데이터 블록의 제1 전송을 실행하는 단계, 데이터를 위한 상기 제1 요구에 이어지는, 상기 요구한 장치로부터의 데이터를 위한 제2 요구에 따라 요구된 제2 데이터 블록이 상기 캐시 메모리에 존재하는지를 판단하는 단계, 데이터를 위한 제2 요구에 응답하여 상기 캐시 메모리로부터 상기 데이터를 요구한 장치로 상기 제2 데이터 블록의 제2 전송을 실행하는 단계 및 상기 제1 전송과 상기 제2 전송 사이에 어떠한 대기 상태도 야기시키지 않고 상기 제1 데이터 블록의 상기 제1 전송에 이어 상기 제2 데이터 블록의 상기 제2 전송이 시작되도록 타이밍을 조절하는 단계를 포함하는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US8/829,554 | 1997-03-28 | ||
US08/829,554 US6009482A (en) | 1997-03-28 | 1997-03-28 | Method and apparatus for enabling cache streaming |
US08/829,554 | 1997-03-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19980079674A KR19980079674A (ko) | 1998-11-25 |
KR100276136B1 true KR100276136B1 (ko) | 2000-12-15 |
Family
ID=25254841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980003466A KR100276136B1 (ko) | 1997-03-28 | 1998-02-06 | 캐시 스트리밍을 가능하게 하기 위한 방법 및 장치 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6009482A (ko) |
JP (1) | JPH10320348A (ko) |
KR (1) | KR100276136B1 (ko) |
CN (1) | CN1095126C (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560712B1 (en) * | 1999-11-16 | 2003-05-06 | Motorola, Inc. | Bus arbitration in low power system |
KR100487542B1 (ko) * | 2000-07-29 | 2005-05-03 | 엘지전자 주식회사 | 글로벌 버스의 버스 사용권 예약 중재방법 |
US6801964B1 (en) * | 2001-10-25 | 2004-10-05 | Novell, Inc. | Methods and systems to fast fill media players |
US7099971B1 (en) * | 2003-06-26 | 2006-08-29 | Emc Corporation | Arbitration system |
CN106209424A (zh) * | 2016-06-28 | 2016-12-07 | 积成电子股份有限公司 | 一种用电信息采集终端升级***及升级方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63220342A (ja) * | 1987-03-10 | 1988-09-13 | Fujitsu Ltd | ブロツクアクセス方式 |
US5537555A (en) * | 1993-03-22 | 1996-07-16 | Compaq Computer Corporation | Fully pipelined and highly concurrent memory controller |
US5781925A (en) * | 1994-10-14 | 1998-07-14 | Compaq Computer Corporation | Method of preventing cache corruption during microprocessor pipelined burst operations |
US5596729A (en) * | 1995-03-03 | 1997-01-21 | Compaq Computer Corporation | First arbiter coupled to a first bus receiving requests from devices coupled to a second bus and controlled by a second arbiter on said second bus |
US5559968A (en) * | 1995-03-03 | 1996-09-24 | Compaq Computer Corporation | Non-conforming PCI bus master timing compensation circuit |
-
1997
- 1997-03-28 US US08/829,554 patent/US6009482A/en not_active Expired - Fee Related
-
1998
- 1998-02-06 KR KR1019980003466A patent/KR100276136B1/ko not_active IP Right Cessation
- 1998-03-06 CN CN98106047A patent/CN1095126C/zh not_active Expired - Fee Related
- 1998-03-17 JP JP10066393A patent/JPH10320348A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
KR19980079674A (ko) | 1998-11-25 |
JPH10320348A (ja) | 1998-12-04 |
CN1195141A (zh) | 1998-10-07 |
CN1095126C (zh) | 2002-11-27 |
US6009482A (en) | 1999-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6405271B1 (en) | Data flow control mechanism for a bus supporting two-and three-agent transactions | |
US6026464A (en) | Memory control system and method utilizing distributed memory controllers for multibank memory | |
US6098137A (en) | Fault tolerant computer system | |
US5613075A (en) | Method and apparatus for providing deterministic read access to main memory in a computer system | |
US5572703A (en) | Method and apparatus for snoop stretching using signals that convey snoop results | |
KR100248902B1 (ko) | 다중의 이종프로세서들을 지원할수있는 마이크로프로세서구조 | |
EP0549164B1 (en) | Memory controller with snooping mechanism | |
US5463753A (en) | Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller | |
JP4891405B2 (ja) | バリア操作の条件付き伝搬のための方法および装置 | |
KR0167817B1 (ko) | 브리지 및 컴퓨터 시스템 | |
KR100263633B1 (ko) | 각종프로세서와버스프로토콜에적용가능한범용구조를제공하는컴퓨터시스템 | |
KR980010805A (ko) | 범용 컴퓨터 구조용 프로세서 서브시스템 | |
US5313591A (en) | Computer bus arbitration for N processors requiring only N unidirectional signal leads | |
US5758170A (en) | System for preventing corruption during CPU reset | |
JP3092566B2 (ja) | パイプライン方式のバスを用いたメモリ制御方式 | |
US6968431B2 (en) | Method and apparatus for livelock prevention in a multiprocessor system | |
KR980010804A (ko) | 프로세서와 고성능 시스템 버스간의 신호처리 프로토콜 변환 장치 | |
KR100276136B1 (ko) | 캐시 스트리밍을 가능하게 하기 위한 방법 및 장치 | |
US20040054843A1 (en) | Configuration and method having a first device and a second device connected to the first device through a cross bar | |
US20040160978A1 (en) | Arbitration mechanism for packet transmission | |
US5809534A (en) | Performing a write cycle to memory in a multi-processor system | |
JP4412852B2 (ja) | 無応答検出を備えたグローバルバス同期トランザクション肯定応答 | |
US6701398B1 (en) | Global bus synchronous transaction acknowledge with nonresponse detection | |
US6240474B1 (en) | Pipelined read transfers | |
JPH0973429A (ja) | コンピュータシステム及びバス間制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050812 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |