KR20010007007A - 판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치 - Google Patents

판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치 Download PDF

Info

Publication number
KR20010007007A
KR20010007007A KR1020000021226A KR20000021226A KR20010007007A KR 20010007007 A KR20010007007 A KR 20010007007A KR 1020000021226 A KR1020000021226 A KR 1020000021226A KR 20000021226 A KR20000021226 A KR 20000021226A KR 20010007007 A KR20010007007 A KR 20010007007A
Authority
KR
South Korea
Prior art keywords
transaction
write
queue
read
type
Prior art date
Application number
KR1020000021226A
Other languages
English (en)
Other versions
KR100346484B1 (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 KR20010007007A publication Critical patent/KR20010007007A/ko
Application granted granted Critical
Publication of KR100346484B1 publication Critical patent/KR100346484B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F23COMBUSTION APPARATUS; COMBUSTION PROCESSES
    • F23QIGNITION; EXTINGUISHING-DEVICES
    • F23Q2/00Lighters containing fuel, e.g. for cigarettes
    • F23Q2/34Component parts or accessories
    • F23Q2/46Friction wheels; Arrangement of friction wheels
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F23COMBUSTION APPARATUS; COMBUSTION PROCESSES
    • F23QIGNITION; EXTINGUISHING-DEVICES
    • F23Q2/00Lighters containing fuel, e.g. for cigarettes
    • F23Q2/34Component parts or accessories
    • F23Q2/48Flint; Guides for, or arrangements of, flints
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

본 발명은 판독 및 기록 일관성을 유지하면서 버스 사용을 최적화하는 방법 및 장치를 제공한다. 더 상세하게는, 본 발명은 판독 트랜잭션을 기록 트랜잭션 이전으로 우선 순위화함으로써 버스 사용 최적화를 제공하는데, 충돌 보류는 없다. 충돌 보류가 판정되면, 판독 및 기록 트랜잭션은 데이터 일관성이 가능하도록 트랜잭션의 에이지에 따라 처리된다.

Description

판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치{BUS UTILIZATION OPTIMIZATION WITH READ/WRITE COHERENCE}
본 발명은 판독/기록 일관성을 유지하면서 버스 사용을 최적화하는 것에 관한 것이다. 버스 최적화는 기록 트랙잭션에 대해 판독 트랜잭션을 우선 순위화시킴으로써 달성되는데, 이 경우 가능한 많은 판독이 연속적으로 발생된다.
컴퓨터 산업 기술이 발달함에 따라, 정보가 처리 및 액세스되는 속도가 증가하고 있다. 어떤 명령은 프로세서에 의한 내부 동작만을 요구하고, 이들 상태에서는 프로세서 속도가 컴퓨터 시스템의 속도를 제어한다. 그러나, 프로세서에 의해 개시되는 다른 명령은 주변 장치가 프로세서와 상호 작용하는 속도에 의해 보조가 맞춰지는 외부 트랜잭션을 요구한다. 따라서, 버스 최적화는 외부 장치에게 트랜잭션을 처리하도록 요구하는 버스 인터페이스에 대해 트랜잭션을 제공하기 전에 트랜잭션을 처리함으로써 달성될 수 있다. 그러나, 데이터 일관성에 있어서 문제점이 발생한다. 특정 위치에 대해 데이터가 연속적으로 갱신 및 판독된다면, 이 위치에 대한 트랜잭션은 프로세서가 트랜잭션을 발생시킨 순서로 처리되어야 한다. 따라서, 캐시 메모리에 관련하여, 캐시 메모리의 특정 위치에 대한 기록 요구는 메모리의 동일 위치로부터의 판독에 대한 차후의 요구 이전에 완료되어야만 한다. 역으로, 캐시 메모리의 특정 위치에 대한 판독 요구는 메모리의 동일 위치로의 기록에 대한 차후의 요구 이전에 완료되어야만 한다.
종래에는 적어도 2가지의 방식을 채용하였다. 하나의 방식은 트랜잭션의 완전한 순서별 처리를 허용한다. 순서별 실행은 프로세서의 판독 또는 기록 트랜잭션이 프로세서가 각 트랙잭션을 요구하는 순서로 수행되는 것을 요청한다. 이 프로세스는 판독/기록 일관성을 보장하지만 버스 사용을 전혀 최적화하지 않는다.
다른 종래 방식은 트랜잭션의 처리를 순서와 관계없이 캐시 메모리에 대한 판독 및 기록 트랜잭션이 버스 사용을 최적화하도록 순위화될 수 있도록 한 것이다. 판독 트랜잭션이 상주 기록 트랜잭션과 충돌한다면, 판독 데이터는 기록 큐 엔트리로부터 반송된다. 이것에 의해 판독 트랜잭션은 기록 트랜잭션의 완료에 좌우되지 않고 수행될 수 있다. 그러나, 이 방식은 하드웨어를 바람직하지 않게 크게 하고, 프로세서 칩 또는 칩 세트를 복잡하게 한다.
판독/기록 일관성을 유지하면서 버스 사용을 최적화하는 기능에 있어서의 개선이 바람직하다. 그러므로, 본 발명은 판독/기록 일관성을 유지하면서 버스 사용을 증대하는 것을 목적으로 한다.
도 1은 본 발명에 따른 컴퓨터 시스템의 블록도.
도 2는 본 발명에 따른 L3 캐시 외부 버스에 대한 큐잉 및 제어의 블록도.
도 3a 및 3b는 본 발명에 따른 비교 로직을 포함하는 L3 캐시 외부 버스에 대한 큐잉을 더 상세히 도시한 블록도.
도 4는 본 발명에 따른 순서 버퍼의 블록도.
도 5는 판독 및 기록 트랜잭션의 큐 엔트리의 비트 규정을 나타내는 도면.
도 6은 본 발명에 따른 큐간의 중재를 나타내는 플로우챠트.
도 7은 본 발명에 따른 큐 엔트리의 로딩을 나타내는 플로우챠트.
도 8은 본 발명에 따른 중재 프로세스를 나타내는 플로우챠트.
〈도면의 주요 부분에 대한 부호의 설명〉
100 : 마이크로프로세서
114 : 대용량 기억 장치
116 : 비디오 컨트롤러
118 : 모니터
120 : 입출력 장치
112 : 시스템 버스
본 발명은 판독 및 기록 일관성을 유지하면서 버스 사용을 최적화하는 방법 및 장치를 제공한다. 더 상세하게는, 본 발명은 충돌 보류가 없는 경우, 최적 순위화 메카니즘을 허용함으로써 버스 사용 최적화를 제공한다. 충돌 보류가 판정되면, 판독 및 기록 트랜잭션은 데이터 일관성을 허용하는 트랜잭션의 에이지(age)에 따라 처리된다.
본 발명은 예시적인 실시예의 첨부된 도면을 참조한 상세한 설명으로부터 더 잘 이해된다.
이하의 상세한 설명에 있어서, 명세서 및 도면에서 동일한 구성 요소에는 각각 동일한 참조 부호를 붙였다. 도면은 그 실제 크기에 따라 그려지지 않았으며, 발명의 명확함 및 간결함을 위해 과장적 또는 대략적으로 그려졌다.
도 1은 본 발명에 따른 컴퓨터 시스템을 나타낸다. 마이크로프로세서(100)가 도시되어 있다. 마이크로프로세서(100)는 CPU 코어(102), L3 캐시 태그(104a) 및 L3 캐시 컨트롤러(106)를 포함한다. CPU 코어(102)는 내부 버스(105)를 통해 L3 캐시 컨트롤러(106)에 접속되어 있다. L3 캐시 태그(104a)는 제2 내부 버스(107)를 통해 캐시 컨트롤러(106)에 접속되어 있다. L3 캐시 태그(104a), L3 캐시 컨트롤러(106) 및 L3 캐시 데이터 메모리(104b)는 L3 캐시 시스템을 포함한다. L3 캐시 데이터 메모리(104b)는 마이크로프로세서(100)에 접속되고 구체적으로, 외부 버스(108)를 통해 L3 캐시 컨트롤러(106)에 접속되어 있다.
마이크로프로세서(100)는 시스템 버스(112)에 접속되어 있다. 대용량 기억 장치(114), 비디오 컨트롤러(106), 메인 메모리(110) 및 입출력 장치(120)도 버스(112)에 접속되어 있다. 비디오 컨트롤러(116)는 모니터(118)에 접속되어 있다. 이 실시예에서, 대용량 기억 장치(114)는 하드 디스크 드라이브이다. 그러나, 다양한 대용량 기억 장치가 본 발명의 사상을 벗어나지 않고 사용될 수 있다. 다른 일예의 대용량 기억 장치는 테이프 디스크 드라이브 및 컴팩 디스크 드라이브이다. 이 실시예에서 입출력 장치(120)는 키보드 및/또는 마우스이다. 비디오 컨트롤러 및 모니터는 컴퓨터 시스템의 일반적인 구성 요소이며, 따라서 당업계에 공지되어 있다.
도 2를 참조하면, 본 발명에 따른 L3 캐시 컨트롤러(106)의 내부 큐잉 및 제어가 도시되어 있다. 이 캐시 컨트롤러(106)의 큐잉 및 제어에는 큐잉 로직(200)이 포함되어 있다. 큐잉 로직(200) 내에는, 외부 L3 버스로 향하는 일련의 트랜잭션이 도시되어 있다. 트랜잭션은 판독 큐 버스(226)를 통해 판독 큐(202)로, 그리고 기록 큐 버스(228)를 통해 기록 큐(204)로 경로가 지정되어 있다. 판독 큐(202) 및 기록 큐(204)와 함께, 순서 버퍼(206)가 도시되어 있다. 이 실시예에서, 순서 버퍼(206)는 FIFO 버퍼(First In First Out)이다. 트랜잭션은 외부 L3 버스(108)로 향하므로 큐잉 로직(200)을 만나며, 큐잉 로직에 의해 수신된 트랜잭션의 타입은 순서 버퍼(206)에 기억된다. 순서 버퍼(206)는 엔트리들이 판독 큐(202) 및 기록 큐(204)에 기억된 모든 트랜잭션을 식별하는데 충분하도록 설계된 1비트폭의 버퍼이다. 순서 버퍼에서의 판독 큐 엔트리는 1로 지정되고, 기록 큐 엔트리는 0으로 지정되어 있다. 판독 큐(202)는 전체 0∼15 또는 0∼16 엔트리를 갖는다. 기록 큐(204)는 전체 8개의 엔트리에 대해 0∼7 엔트리를 갖는다. 그러므로, 순서 버퍼(206)는 전체 0∼23 또는 0∼24의 1비트 폭 엔트리를 갖는다. 트랜잭션이 큐잉 로직(200)에 진입하면, 트랜잭션은 판독 또는 기록 트랜잭션으로서 식별된다. 트랜잭션이 판독 트랜잭션이면, 트랜잭션은 판독 큐에 다음 트랜잭션으로서 기억된다. 트랜잭션이 기록 트랜잭션이면, 기록 큐에 기억된다. 트랜잭션이 기록 및 판독 큐(204, 202)에 로드되었을 때, 해당 비트가 순서 버퍼(206)에 설정되어 상주 트랜잭션의 에이지를 기록한다. 트랜잭션이 실질적으로 동일한 시간에 판독 트랜잭션 또는 기록 트랜잭션으로 판정되면, 큐잉 로직(200)은 트랜잭션이 충돌을 일으키는지를 판정한다.
충돌은 새로운 트랜잭션의 어드레스와 대항 큐의 모든 유효 엔트리를 비교함으로써 판정된다. 예컨대, 판독 트랜잭션이 외부 L3 버스(108)로 향한다면, 판독 트래잭션은 판독 큐(202)에 기억된다. 그러나, 판독 큐(202)에 판독 트랜잭션을 기억하기 전에, 입력 판독 트랜잭션의 어드레스는 기록 큐에 기억된 모든 상주하는 유효 기록 트랜잭션의 어드레스와 비교된다. 어드레스가 일치하면, 충돌이 발생한다. 큐잉 로직(200)은 기록 큐(204)의 일치하는 엔트리/엔트리들 내에 충돌 비트(들)를 설정하며, 그에 따라 중재 로직(216)에 영향을 미친다. 큐잉 로직(200)은 도 3a 및 3b를 참조하여 더 상세히 설명된다. 기록 큐(204)로부터, 라인(208)을 통해 기록 큐 요구 신호 및 라인(210)을 통해 기록 큐 충돌 신호가 L3 중재 로직(216)으로 출력된다. 가장 오래된 엔트리 큐 포인터(232)는 순서 버퍼(206)에서 발생하여, 어떤 큐가 L3 중재 로직(216)에 대해 가장 오래된 유효 상주 트랜잭션인지를 나타낸다. 판독 큐(202)는 라인(212)을 통해 판독 큐 요구 신호를 그리고, 라인(214)을 통해 판독 큐 충돌 신호를 L3 중재 로직(216)에 전송한다. 판독 및 기록 큐에서의트랜잭션은 라인(222, 224)을 통해 각각 MUX(220)에 전달된다. MUX(220)는 L3 중재 로직(216)으로부터의 출력인 라인(218)에 의해 제어된다. L3 중재 로직은 다음 순서로 큐에 상주하는 어떤 트래잭션이 처리되어 외부 L3 버스(108)에 전송되어야 하는지를 판정한다. 이 실시예에서, 충돌이 발생하지 않으면, 판독 큐(202)가 우선 순위를 갖는다. 충돌이 발생하지 않으면, 판독 큐(202)에 기억된 판독 트랜잭션이 기록 큐(204)에 기억된 어떤 기록 트랜잭션이 처리되기 전에 처리된다. 충돌이 발생하면, 판독 큐(202)에 기억된 판독 트랜잭션 및 기록 큐(204)에 기억된 기록 트랜잭션이 순서 버퍼(206)에서의 엔트리에 따라 처리된다. 다른 중재 메카니즘이 가능하고, 특정 상황에 기초하여 바람직할 수 있으며, 또한 폭넓은 범위의 중재 메카니즘이 본 발명의 사상 및 범위를 벗어나지 않고 구현될 수 있다.
도 3a 및 3b를 참조하면, 본 발명의 따른 캐시 컨트롤러의 큐잉 로직이 상세히 도시되어 있다. 외부 L3 버스로 향하는 트랜잭션은 판독 큐 버스(226) 또는 기록 큐 버스(228)를 통과한다. 판독 트랜잭션은 판독 큐(202)에 진입하기 전에 레지스터(200)에 기억된다. 큐잉 로직(200)은 레지스터(300)에서의 트랜잭션의 어드레스가 기록 큐(204)에 기억된 유효 기록 트랜잭션의 어드레스와 동일한지를 판정한다. 레지스터(300)의 판독 트랜잭션의 어드레스는 기록 큐(204)와의 비교를 위해 버스(304)를 경유하여 전송된다. 기록 큐(204)는 기록 큐(204)에 상주하는 0과 7 사이의 트랜잭션으로 구성되며, 이들 트랜잭션은 엔트리 0(382) 내지 엔트리 M(360)에 의해 지시된다. 각 엔트리는 동일한 구조를 가지며, 엔트리 M(360)과 엔트리 0(382)에 대해 나타난다. 비교기(354)는 기록 큐(204) 내에 존재한다. 레지스터(300)의 판독 트랜잭션의 어드레스는 비교기(354)에 전송된다. 비교기를 인에이블하기 위해, 엔트리 유효 비트(364)가 1비트 와이어드 하이(352)와 비교된다. 비교기(354)는 트랜잭션(300)의 어드레스와 엔트리 M(360)의 어드레스를 비교한다. 출력은 엔트리에 대해 충돌 지시자(368)로서 기억된다. 충돌 지시자(368) 출력은 라인(370)을 통해 OR 게이트(372)에 전송된다. 기록 큐(204)의 모든 충돌 출력은 OR 게이트(372)를 통해 OR 연산된다. OR 게이트(372)의 출력은 기록 큐 충돌(210)을 나타내는 신호로서 전송된다. 이와 동일한 프로세스가 기록 큐(204)의 모든 엔트리 각각에 대해 완료된다.
레지스터(300)의 판독 트랜잭션에 대한 어드레스는 버스(304)를 통해 비교기(378)에 전송된다. 다시 말해, 비교기의 1비트(376)는 하이로 유지되어 엔트리 0(382) 유효 비트(394)와 비교된다. 엔트리 0(382)은 어드레스(384)를 갖는다. 어드레스(384)는 라인(394)을 통해 비교기(378)에 전송된다. 비교기는 판독 큐(202)로 향하는 레지스터(300)의 트랜잭션의 어드레스와 엔트리 0(382)의 어드레스(384)를 비교하고, 이와 함께 엔트리 유효 비트(394) 대 하나의 1(비트 376)을 비교한다. 이 비교 결과의 출력은 충돌 비트(396)에 전송된다. 출력은 라인(397)을 통해 OR 게이트(372)에 전송된다. 모든 충돌 비트의 출력은 OR 게이트(372)에 전송되고, 이 출력은 중재 로직(216)에 송출되어 기록 큐 충돌(210)을 나타낸다. 기록 큐(204)에서의 엔트리의 모든 유효 성분은 OR 게이트(374)에서 함께 OR 연산되고, 그 출력은 중재 로직(216)에 전송되어 기록 큐 요구(208)를 나타낸다. 기록 큐(204)의 상주 트랜잭션의 어드레스는 버스(386, 388)에 전송되어 버스(224)를 통해 MUX(220)에 전송된다.
외부 L3 버스로 향하는 트랜잭션이 기록 트랜잭션으로 판정된다면, 트랜잭션은 레지스터(302)에 기억된다. 기록 트랜잭션 레지스터(302)의 어드레스는 버스(306)를 통해 전송되고 기록 큐(202)에 기억된 모든 각 트랜잭션과 비교된다. 이 실시예에서, 판독 큐(202)는 엔트리 0(310) 내지 엔트리 N(308)을 갖는다. 판독 큐(202)는 16개의 엔트리를 허용하는 반면, 기록 큐는 8개의 엔트리를 허용한다. 레지스터(302)의 기록 트랜잭션의 어드레스는 비교기(340)에 버스(306)를 통해 송출된다. 엔트리 N(308)은 어드레스(312)를 포함한다. 이 어드레스(312)는 버스(316)를 통해 비교기(340)에 전송된다. 엔트리 N(308)이 판독 큐(202)에서 가장 오래된 엔트리인 경우, 이 어드레스(12)는 또한 버스(350)를 통해 MUX(348)에 전송되고 이어서 버스(222)를 통해 최종적으로 MUX(220)에 전송된다. 엔트리 N(308)은 유효성 비트(318)를 포함한다. 유효성 비트(318)는 라인(314)를 통해 비교기(340)에 송출된다. 비교기(340)의 출력은 판정되어 충돌 비트(341)에 전송된다. 충돌 비트(314)는 라인(322)를 통해 OR 게이트(324)에 전송된다. 유효성 비트(318)는 라인(320)을 통해 제2 OR 게이트(326)에 전송된다. 기록 트랜잭션 어드레스(302)는 판독 큐(302)에 상주하는 모든 엔트리 각각과 비교된다. 예컨대, 엔트리 0(310)과의 비교가 이하 설명된다. 버스(306)를 통해 전송된 어드레스는 비교기(346)에 제공된다. 비교기(346)를 인에이블하기 위해, 엔트리 유효 비트(334)는 1(344)과 비교된다. 엔트리 0(310)은 어드레스(328)를 갖는다. 이 어드레스(328)는 버스(330)를 통해 비교기(346)에 전송되어, 버스(306)를 통해 전송된 어드레스와 비교된다. 유효성 비트(334)는 라인(332)를 통해 비교기(346)에 전송된다. 비교기의 결과는 충돌 비트(347)에 제공한다. 충돌 비트(347)는 라인(338)을 통해 OR 게이트(324)에 전송된다. OR 게이트(324)는 판독 큐(202)의 각 엔트리의 충돌 비트를 수신하고, 이 출력은 중재 로직(216)에 전송되어, 판독 큐 충돌(Read Queue collision)을 나타낸다. 유효성 비트(318, 334)는 라인(320, 336)을 통해 각각 OR 게이트(326)에 전송된다. OR 게이트(326)의 출력은 중재 로직(216)에 전송되어 판독 큐 요구(212)를 나타낸다.
이하, 도 4를 참조하면, 순서 버퍼 프로세스가 도시되어 있다. 순서 버퍼(206)는 트랜잭션의 수신을 로그(log)하여 판독 큐(202) 및 기록 큐(204)에 제공하는 버퍼이다. 각 판독 트랜잭션(300)은 하이 비트 또는 1로 나타나며, 각 기록 트랜잭션은 로우 비트 또는 0으로 나타난다. 순서 버퍼(206)는 엔트리가 판독 큐(202) 및 기록 큐(204)에 기억된 모든 트랜잭션을 각각 나타낼 수 있도록 설계된다. 캐시 컨트롤러(106)에 의해 처리되는 트랜잭션을 나타내는 나머지 비트의 프로세스가 도시되어 있다. 예컨대, 컬럼 1(404)의 최하부에서 시작하여, 순서 버퍼(206)는 다음의 디지털값 001100101...0을 포함한다. 캐시 컨트롤러(106)는 판독 트랜잭션(400)을 처리한다. 이어서, 버퍼(206)에서 가장 낮은(가장 오래된) 1은 순서 버퍼(206)로부터 제거된다. 이는 중간 컬럼(406)에 의해 나타난다. 가장 낮은 1은 제거되고, 대시선(-)이 그 위치에 도시되어 있다. 이어서, 버퍼(206)는 나머지 엔트리를 붕괴하여, 버퍼의 최상부에서 다음 트랜잭션이 발생하도록 한다. 이는 408로서 도시되어 있다. 도면에 도시된 바와같이, 최하위 두개의 0 지시자는 그대로 남아 있다. 그러나, 제거된 처음 1 다음의 나머지 디지털값은 압축되어, 엔트리 사이에 비어 있는 공간은 없다. 따라서, 각 트랜잭션이 처리되면, 판독 트랜잭션이 1 또는 기록 트랜잭션이 0일 때, 특정 트랜잭션 타입의 가장 낮은 발생 순서는 제거되며, 순서 버퍼의 나머지 디지털값은 붕괴된다.
도 5를 참조하면, 본 발명에 나타난 판독 및 기록 큐 엔트리의 신호에 대해 설명한다. 판독 트랜잭션(500)이 도시되어 있다. 판독 트랜잭션(500)은 어드레스 필드(502), 유효성 비트(504) 및 충돌 보류 비트(506)를 포함한다. 어드레스 필드(502)는 18 비트폭을 갖는다. 그러므로, 판독 트랜잭션(500)은 20비트폭이다. 기록 트랜잭션(520)은 어드레스 필드(522), 유효 비트(524), 충돌 보류 비트(26), 고우선 순위 비트(530) 및 데이터 필드(528)로 구성되어 있다. 어드레스(522)는 또한 18비트폭을 갖는다. 이 기록 트랜잭션(520)과 관련된 데이터 필드(528)는 32비트폭을 갖는다.
도 6을 참조하면, 본 발명에 따른 중재 프로세스가 도시되어 있다. 프로세스는 단계 570에서 개시된다. 단계 572에서, 트랜잭션이 수신된다. 다른 트랜잭션과의 트랜잭션 충돌은 단계 574에서 판정된다. 충돌이 없는 것으로 판정되면, 단계 576에서 큐잉된 트랜잭션이 최적인 방식으로 처리된다. 충돌이 있다면, 큐잉된 트랜잭션은 단계 578에서 버퍼 순서(206)에 기억되어 있는 수신된 순서에 따라 처리된다. 트랜잭션이 처리된 후, 단계 580에서 다른 트랜잭션이 존재하는지를 판정한다. 다른 트랜잭션이 존재한다면, 프로세스는 리턴되어 단계(574)에서, 충돌 조건이 여전히 존재하는지를 판정한다. 트랜잭션이 존재하지 않으면 단계 582에서 프로세스를 종료한다. 이 실시예에서, 이 프로세스는 캐시 컨트롤러(106)의 판독 및 기록 트랜잭션을 통해 구현된다. 그러나, 다양한 하드웨어 시스템이 본 발명의 사상을 벗어나지 않고 본 발명을 사용할 수 있다.
도 7을 참조하면, 본 발명에 따른 큐 엔트리 로딩 프로세스가 나타나 있다. 프로세스는 단계 600에서 개시한다. 트랜잭션은 단계 602에서 수신된다. 이어서, 단계 604에서 트랜잭션이 판독 또는 기록 트랜잭션인지가 판정된다. 단계 606에서, 수신된 트랜잭션의 타입이 순서 버퍼에 로그된다. 트랜잭션이 단계 608에서 판독 트랜잭션으로 판정되면, 판독 트랜잭션의 어드레스는 단계 610에서 다른 유효 상주 기록 큐 엔트리 어드레스와 비교된다. 단계 612에서 일치하는 어드레스가 없다면, 판독 트랜잭션은 단계 626으로 종료하도록 진행하기 전에 단계 632에서 판독 큐에 기억된다. 그러나, 단계 612에서 어드레스가 일치하면, 판독 트랜잭션은 단계 614에서 판독 큐에 기억되고, 일치하는 유효 상부 기록 트랜잭션의 충돌 비트는 단계 616에서 판독 큐의 트랜잭션과 충돌에 있음을 나타내도록 설정된다.
만일 트랜잭션이 단계 608에서 기록 트랜잭션으로 판정되면, 기록 트랜잭션의 어드레스는 단계 618에서 모든 유효 상부 판독 큐 엔트리의 어드레스와 비교된다. 단계 620에서 일치하는 어드레스가 없으면, 기록 트래잭션은 단계 622에서 기록 큐에 기억되고, 일치하는 유효 상주 판독 트랜잭션의 충돌 비트는 단계 624에서 충돌이 발생하였음을 나타내도록 설정된다. 이 프로세스는 단계 626에서 종료한다. 단계 620에서 일치하는 어드레스가 없으면, 기록 트랜잭션은 단계 630에서 기록 큐에 기억되고, 단게 626에서 프로세스를 종료한다.
도 8을 참조하면, 본 발명에 따른 중재 프로세스가 도시되어 있다. 프로세스는 단계 700에서 개시한다. 이어서 단계 702에서, 충돌이 있는지를 판정한다. 충돌이 있다면, 다음 트랜잭션의 처리는 단계 704에서 우선 순위를 결정하기 위해 순서 버퍼를 사용하여 수행된다. 트랜잭션이 순서 버퍼가 결정한 우선 순위에 기초하여 처리된 후, 단계 706에서 충돌이 여전히 보류중인지가 판정된다. 충돌이 여전히 보류중이면, 프로세스는 단계 704로 되돌아와, 다음 트랜잭션이 우선 순위를 결정하도록 순서 버퍼를 사용하여 처리된다. 충돌이 더이상 존재하지 않으면, 프로세스는 단계 708에서 계속된다. 그러나, 충돌 비트가 단계 702에서 설정되지 않았으면, 프로세스는 단계 708에서 계속된다. 단계 708에서, 판독 큐가 비어있는지를 판정한다. 판독 큐가 비어있지 않으면, 단계 702로 되돌아가 보류 총돌이 있는지를 판정하기 전에 단계 710에서 다음 판독 트랜잭션이 처리된다. 판독 큐가 비어있다면, 프로세스는 도 8의 단계 712에서 계속된다. 단계 712에서 판정한 결과, 기록 큐가 비어 있으면 프로세스는 단계 716에서 종료한다. 그러나, 기록 큐가 비어 있지 않으면, 다음 기록 트랜잭션은 도 8의 단계 702에서 프로세스가 되돌아가기 전에 단계 714에서 처리된다. 충돌이 설정되었는 지는 다음 트랜잭션의 처리 전에 판정된다.
이 프로세스는 보류 충돌이 없다면, 기록 큐의 임의의 트랜잭션 전에 처리되어질 판독 큐의 모든 판독 트랜잭션에 대해 가능하다. 충돌이 존재하면, 판독 큐(202) 및 기록 큐(204)는 상주하는 유효 엔트리가 로드되는 순서를 나타내는 순서 버퍼(206)의 엔트리에 따라 처리된다. 그러나, 판독 또는 기록 큐에 충돌을 포함하는 엔트리가 처리되면, 충돌 비트는 리셋되고, 기록 트랜잭션에 대해 먼저 판독 트랜잭션을 처리하는 것에 기초한 우선 순위는 이력된다. 그러나, 기록 트랜잭션에 우선한 판독 트랜잭션의 처리와 다른 임의의 최적화 방식이 본 발명에 따라 사용될 수 있다. 충돌이 검출되지 않는 경우에 응답하는 최적의 처리 방법은 선택적으로 i) 최종 동작이 기록 동작이면 기록 동작을 판독 동작에 우선적으로 수행하는 방법, ii) 액세스된 최종 페이지에 대응하는 메모리의 페이지를 액세스하는 메모리 액세스 동작을 우선적으로 수행하는 방법, iii) 판독 동작 전에 기록 동작을 수행하는 방법 또는 iv) 원형 루틴 시퀀스로 판독 및 기록 동작을 수행하는 방법이 있다.
본 발명은 충돌이 발생할 때 본 명세서에서 설명한 순서 버퍼를 구현함으로써 데이터 일관성을 유지한다. 그러나, 충돌이 없을 경우 임의의 최적화 방식이 사용될 수 있다. 본 명세서에 개시된 판독 우선 순위 최적화 방식은 일실시예이지만, 다양한 최적화 방식이 본 발명의 사상을 벗어나지 않고 사용될 수 있다.
본 발명에 대한 상기 설명 및 개시는 예시적인 것이며, 그 설명 및 다양한 크기, 형상, 재료 및 성분이 본 발명의 사상을 벗어나지 않고 만들어질 수 있다.

Claims (14)

  1. 트랜잭션을 순위화하는 컴퓨터 시스템에 있어서,
    프로세서와,
    상기 프로세서에 결합된 메모리를 포함하고,
    상기 메모리는 제1 타입 트랜잭션 큐와 제2 타입 트랜잭션 큐와,
    메모리 컨트롤러 로직을 포함하며,
    상기 메모리 컨트롤러 로직은,
    트랜잭션을 수신하는 단계와,
    상기 트랜잭션이 제1 타입 트랜잭션 또는 제2 타입 트랜잭션인지를 판정하는 단계와,
    상기 트랜잭션이 제1 타입 트랜잭션이면, 이 트랜잭션을 제2 타입 트랜잭션 큐에 기억된 모든 제2 타입 트랜잭션과 비교하는 단계와,
    상기 트랜잭션이 제2 타입 트랜잭션이면, 이 트랜잭션을 제1 타입 트랜잭션 큐에 기억된 모든 제1 타입 트랜잭션과 비교하는 단계와,
    상기 제1 타입 트랜잭션이 제2 트랜잭션과 일치하지 않으면 이 트랜잭션을 최적의 방법으로 처리하는 단계와,
    상기 제1 타입 트랜잭션이 제2 타입 트랜잭션과 일치하면, 트랜잭션이 수신되는 순서로 트랜잭션을 처리하는 단계를 수행하는 것인 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 최적의 방법은 고속의 모든 제1 및 제2 타입 트랜잭션을 첫번째로 처리하고, 이어서 저속의 모든 제1 및 제2 타입 트랜잭션을 두번째로 처리하는 단계를 포함하는 것인 컴퓨터 시스템.
  3. 메모리 내의 판독 트랜잭션 및 기록 트랜잭션을 순위화하는 장치에 있어서,
    프로세서와,
    상기 프로세서에 결합된 캐시를 포함하고,
    상기 캐시는 동작 가능하게 결합된 판독 트랜잭션 큐와 기록 트랜잭션 큐, 순서 버퍼 및 우선 순위화 로직을 포함하고,
    상기 우선 순위화 로직은,
    트랜잭션을 수신하는 단계와,
    각 트랜잭션의 발생 순서를 순서 버퍼에 로그하는 단계와,
    상기 수신된 트랜잭션이 판독 트랜잭션이면 수신된 판독 트랜잭션의 어드레스와 기록 트랜잭션 큐의 모든 기록 트랜잭션의 어드레스와 비교하는 단계와,
    상기 판독 트랜잭션의 어드레스가 상기 기록 트랜잭션 큐에 기억된 기록 트랜잭션의 어드레스와 일치하면, 상기 판독 트랜잭션 큐에 수신 판독 트랜잭션을 기억하고, 상기 기록 트랜잭션 큐에서의 충돌로서 기록 트랜잭션을 일치하는 어드레스를 식별하는 단계와,
    상기 수신된 트랜잭션이 기록 트랜잭션이면, 상기 수신된 기록 트랜잭션의 어드레스를 판독 트랜잭션 큐의 모든 판독 트랜잭션의 어드레스와 비교하는 단계와,
    상기 기록 트랜잭션의 어드레스가 판독 트랜잭션 큐의 판독 트랜잭션의 어드레스와 일치한다면, 기록 트랜잭션 큐에 기록 트랜잭션을 기억하고, 판독 트랜잭션 큐의 충돌로서 판독 트랜잭션과 일치하는 어드레스를 식별하는 단계와,
    충돌에 대해 각 트랜잭션 큐를 재조사하는 단계와,
    충돌이 상기 양 트랜잭션 큐에 존재한다면, 충돌로서 표시된 트랜잭션이 처리될 때까지 순서 버퍼에 기록된 순서에 따라 트랜잭션을 처리하는 단계와,
    충돌 트랜잭션이 양 트랜잭션 큐에 존재하지 않으면, 판독 트랜잭션 큐에 존재하는 판독 트랜잭션을 기록 트랜잭션 큐의 기록 트랜잭션을 처리하기 전에 처리하는 단계를 수행하는 것인 장치.
  4. 제2항에 있어서, 상기 어드레스 일치하는 판독 트랜잭션을 식별하는 단계는 판독 트랜잭션 큐에 충돌 속성 비트를 설정하는 단계를 포함하고, 어드레스 일치하는 기록 트랜잭션을 식별하는 단계는 기록 트랜잭션 파일의 충돌 속성 비트를 설정하는 단계를 포함하는 것인 컴퓨터 시스템.
  5. 제2항에 있어서, 상기 캐시는 레벨 3(L3) 캐시인 것인 컴퓨터 시스템.
  6. 제3항에 있어서, 상기 우선 순위화 로직은 판독 트랜잭션 큐가 비어 있다면, 기록 트랜잭션 큐에 존재하는 기록 트랜잭션을 처리하는 단계를 더 수행하는 것인 장치.
  7. 마이크로프로세서를 포함하는 컴퓨터 시스템에서 트랜잭션을 순위화하는 방법에 있어서,
    상기 마이크로프로세서에 동작 가능하게 접속되고, 제1 타입의 트랜잭션이 기억된 제1 타입 트랜잭션 큐와, 제2 타입의 트랜잭션이 기억된 제2 타입 트랜잭션 큐와, 제1 및 제2 타입의 트랜잭션의 순서가 기억된 발생 버퍼를 포함하는 캐시 메모리 시스템을 제공하는 단계와,
    상기 캐시 메모리 시스템에서 트랜잭션을 수신하는 단계와,
    상기 발생 버퍼에 트랜잭션의 수신 순서를 기억하는 단계와,
    상기 트랜잭션이 제1 타입의 트랜잭션 또는 제2 타입의 트랜잭션인지를 판정하는 단계와,
    상기 트랜잭션이 제1 타입의 트랜잭션이면, 이 트랜잭션과 제2 타입의 트랜잭션 큐에 기억된 모든 제2 타입의 트랜잭션을 비교하는 단계와,
    상기 트랜잭션이 제2 타입의 트랜잭션이면, 이 트랜잭션과 제1 타입의 트랜잭션 큐에 기억된 모든 제1 타입의 트랜잭션을 비교하는 단계와,
    상기 양 비교 단계에서 일치하는 트랜잭션이 없다면, 트랜잭션을 최적의 방법으로 처리하는 단계와,
    상기 양 비교 단계에서 일치하는 트랜잭션이 있다면, 상기 발생 버퍼에 기억된 순서대로 트랜잭션을 처리하는 단계를 포함하는 것인 방법.
  8. 제6항에 있어서, 상기 각 트랜잭션은 어드레스를 포함하고, 상기 제1 타입의 트랜잭션을 모든 제2 타입의 트랜잭션과 비교하는 단계는 상기 제1 타입의 트랜잭션의 어드레스와 모든 제2 타입의 트랜잭션의 어드레스를 비교하는 단계를 포함하는 것인 방법.
  9. 제6항에 있어서, 상기 각 트랜잭션은 어드레스를 포함하고, 상기 제2 타입의 트랜잭션을 모든 제1 타입의 트랜잭션과 비교하는 단계는 상기 제2 타입의 트랜잭션의 어드레스와 모든 제1 타입의 트랜잭션의 어드레스를 비교하는 단계를 포함하는 것인 방법.
  10. 제6항에 있어서, 상기 트랜잭션을 최적의 방법으로 처리하는 단계는 임의의 다른 타입의 트랜잭션을 처리하기 전에 하나의 타입의 트랜잭션을 처리하는 단계를 포함하는 것인 방빕.
  11. 제6항에 있어서, 상기 트랜잭션이 제1 타입의 트랜잭션 또는 제2 타입의 트랜잭션인지를 판정하는 단계는 트랜잭션이 판독 트랜잭션 또는 기록 트랜잭션인지를 판정하는 단계를 포함하는 것인 방법.
  12. 제6항에 있어서, 상기 판독 트랜잭션의 처리에 따라 상기 발생 버퍼로부터 기억된 발생 순서를 제거하는 단계와,
    기록 트랜잭션의 처리에 따라 상기 발생 버퍼로부터 기억된 발생 순서를 제거하는 단계와,
    상기 발생 버퍼에 나머지 기억된 발생 순서를 붕괴하는 단계를 더 포함하는 것인 방법.
  13. 프로세서, 순서 버퍼, 기록 큐, 판독 큐를 갖는 컴퓨터 시스템에서 데이터 트랜잭션을 순위화하는 방법에 있어서,
    상기 프로세서로부터 트랜잭션을 포획하는 단계와,
    상기 트랜잭션이 판독 트랜잭션 또는 기록 트랜잭션인지를 판정하는 단계와,
    상기 트랜잭션의 발생 순서를 순서 버퍼에 로그하는 단계와,
    상기 수신된 트랜잭션이 판독 트랜잭션이면, 판독 트랜잭션의 적어도 일부분을 기록 트랜잭션의 모든 기록 트랜잭션의 적어도 일부분과 비교하는 단계와,
    상기 수신된 판독 트랜잭션의 일부분이 기록 큐의 기록 트랜잭션의 일부분과 일치한다면, 판독 큐에 수신된 판독 트랜잭션을 기억하고, 일치하는 기록 트랜잭션을 충돌로서 식별하는 단계와,
    상기 수신된 트랜잭션이 기록 트랜잭션이면, 기록 트랜잭션의 적어도 일부분을 기록 큐의 모든 판독 트랜잭션의 적어도 일부분과 비교하는 단계와,
    상기 수신된 기록 트랜잭션의 일부분이 판독 큐의 판독 트랜잭션의 일부분과 일치한다면, 기록 큐에 기록 트랜잭션을 기억하고, 일치하는 판독 트랜잭션을 충돌로서 식별하는 단계와,
    충돌이 판독 큐나 기록 큐에 존재한다면, 충돌로서 표시된 트랜잭션이 처리될 때까지 트랜잭션이 상기 순서 버퍼에 입력한 순서에 따라 트랜잭션을 처리하는 단계와,
    충돌 트랜잭션이 판독 큐나 기록 큐에 존재하지 않으면, 기록 큐의 기록 트랜잭션을 처리하기 전에 판독 큐에 존재하는 판독 트랜잭션을 처리하는 단계를 포함하는 것인 방법.
  14. 제12항에 있어서, 상기 판독 트랜잭션의 처리에 따라 상기 순서 버퍼로부터 기억된 발생 순서를 제거하는 단계와,
    상기 기록 트랜잭션의 처리에 따라 상기 순서 버퍼로부터 기억된 발생 순서를 제거하는 단계와,
    상기 순서 버퍼에서 나머지 기억된 순서를 붕괴하는 단계를 더 포함하는 것인 방법.
KR1020000021226A 1999-04-29 2000-04-21 판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치 KR100346484B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/303,365 US6256713B1 (en) 1999-04-29 1999-04-29 Bus optimization with read/write coherence including ordering responsive to collisions
US09/303,365 1999-04-29

Publications (2)

Publication Number Publication Date
KR20010007007A true KR20010007007A (ko) 2001-01-26
KR100346484B1 KR100346484B1 (ko) 2002-07-27

Family

ID=23171758

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000021226A KR100346484B1 (ko) 1999-04-29 2000-04-21 판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치

Country Status (3)

Country Link
US (1) US6256713B1 (ko)
JP (1) JP3644588B2 (ko)
KR (1) KR100346484B1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564218B1 (en) * 1998-12-10 2003-05-13 Premitech Aps Method of checking the validity of a set of digital information, and a method and an apparatus for retrieving digital information from an information source
US6983350B1 (en) 1999-08-31 2006-01-03 Intel Corporation SDRAM controller for parallel processor architecture
US6427196B1 (en) * 1999-08-31 2002-07-30 Intel Corporation SRAM controller for parallel processor architecture including address and command queue and arbiter
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
US6532509B1 (en) 1999-12-22 2003-03-11 Intel Corporation Arbitrating command requests in a parallel multi-threaded processing system
US6694380B1 (en) 1999-12-27 2004-02-17 Intel Corporation Mapping requests from a processing unit that uses memory-mapped input-output space
US6631430B1 (en) * 1999-12-28 2003-10-07 Intel Corporation Optimizations to receive packet status from fifo bus
US6307789B1 (en) * 1999-12-28 2001-10-23 Intel Corporation Scratchpad memory
US6625654B1 (en) * 1999-12-28 2003-09-23 Intel Corporation Thread signaling in multi-threaded network processor
US6661794B1 (en) 1999-12-29 2003-12-09 Intel Corporation Method and apparatus for gigabit packet assignment for multithreaded packet processing
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
US6842830B2 (en) * 2001-03-31 2005-01-11 Intel Corporation Mechanism for handling explicit writeback in a cache coherent multi-node architecture
JP3823040B2 (ja) * 2001-10-12 2006-09-20 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、データ処理装置、書き込み要求の実行順序を最適化する方法、データ処理方法およびハード・ディスク・ドライブ
US6877077B2 (en) * 2001-12-07 2005-04-05 Sun Microsystems, Inc. Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency
US7895239B2 (en) 2002-01-04 2011-02-22 Intel Corporation Queue arrays in network devices
US6934951B2 (en) * 2002-01-17 2005-08-23 Intel Corporation Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section
US8082396B2 (en) * 2005-04-28 2011-12-20 International Business Machines Corporation Selecting a command to send to memory
GB2469299B (en) * 2009-04-07 2011-02-16 Imagination Tech Ltd Ensuring consistency between a data cache and a main memory
CN104508646A (zh) * 2012-06-08 2015-04-08 惠普发展公司,有限责任合伙企业 访问存储器
US10037271B1 (en) * 2012-06-27 2018-07-31 Teradata Us, Inc. Data-temperature-based control of buffer cache memory in a database system
US9021228B2 (en) 2013-02-01 2015-04-28 International Business Machines Corporation Managing out-of-order memory command execution from multiple queues while maintaining data coherency
US20140297953A1 (en) * 2013-03-31 2014-10-02 Microsoft Corporation Removable Storage Device Identity and Configuration Information
CN104572506B (zh) * 2013-10-18 2019-03-26 阿里巴巴集团控股有限公司 一种并发访问内存的方法及装置
US9824020B2 (en) * 2013-12-30 2017-11-21 Unisys Corporation Systems and methods for memory management in a dynamic translation computer system
US10031863B2 (en) * 2014-01-30 2018-07-24 Hewlett Packard Enterprise Development Lp Access controlled memory region
US9875037B2 (en) * 2015-06-18 2018-01-23 International Business Machines Corporation Implementing multiple raid level configurations in a data storage device
US9946512B2 (en) * 2015-09-25 2018-04-17 International Business Machines Corporation Adaptive radix external in-place radix sort
US10467157B2 (en) 2015-12-16 2019-11-05 Rambus Inc. Deterministic operation of storage class memory
US10649909B2 (en) * 2018-06-14 2020-05-12 Western Digital Technologies, Inc. Logical block addressing range collision crawler

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55147744A (en) * 1979-05-07 1980-11-17 Hitachi Ltd Memory controlling unit
JPS59154548A (ja) * 1983-02-22 1984-09-03 Hitachi Ltd 記憶制御方式
WO1990000284A1 (en) * 1988-06-30 1990-01-11 Wang Laboratories, Inc. Memory control unit
JPH02151930A (ja) * 1988-12-05 1990-06-11 Nec Corp ストアバツフア管理方式
JPH03241442A (ja) * 1990-02-20 1991-10-28 Nippon Telegr & Teleph Corp <Ntt> ストアバッファ制御方式
JPH05233422A (ja) * 1992-02-19 1993-09-10 Hitachi Ltd メモリ参照要求処理方式
US5530933A (en) * 1994-02-24 1996-06-25 Hewlett-Packard Company Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus
US5822772A (en) * 1996-03-22 1998-10-13 Industrial Technology Research Institute Memory controller and method of memory access sequence recordering that eliminates page miss and row miss penalties
US5978886A (en) * 1997-01-17 1999-11-02 Hewlett-Packard Company Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache
US6038646A (en) * 1998-01-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for enforcing ordered execution of reads and writes across a memory interface

Also Published As

Publication number Publication date
JP2000330859A (ja) 2000-11-30
JP3644588B2 (ja) 2005-04-27
KR100346484B1 (ko) 2002-07-27
US6256713B1 (en) 2001-07-03

Similar Documents

Publication Publication Date Title
KR100346484B1 (ko) 판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치
US6564271B2 (en) Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US6012106A (en) Prefetch management for DMA read transactions depending upon past history of actual transfer lengths
US5857084A (en) Hierarchical bus structure access system
US6493773B1 (en) Data validity measure for efficient implementation of first-in-first-out memories for multi-processor systems
US5283883A (en) Method and direct memory access controller for asynchronously reading/writing data from/to a memory with improved throughput
US5584041A (en) Channel apparatus having a plurality of channels capable of being operated either in parallel mode or in separate mode
US6021473A (en) Method and apparatus for maintaining coherency for data transaction of CPU and bus device utilizing selective flushing mechanism
US20090037689A1 (en) Optimal Use of Buffer Space by a Storage Controller Which Writes Retrieved Data Directly to a Memory
US6457097B1 (en) Information processing system and recording medium recording a program to cause a computer to execute steps
JPH04306748A (ja) 情報処理装置
US20020019903A1 (en) Sequencing method and bridging system for accessing shared system resources
US6442655B1 (en) System and method for handling storage consistency conflict
KR0175983B1 (ko) 데이타 처리 시스템
US5179683A (en) Retrieval apparatus including a plurality of retrieval units
US20030051103A1 (en) Shared memory system including hardware memory protection
US7185122B2 (en) Device and method for controlling data transfer
US6263408B1 (en) Method and apparatus for implementing automatic cache variable update
US8452920B1 (en) System and method for controlling a dynamic random access memory
US5774745A (en) Method and apparatus for writing and reading entries in an event status queue of a host memory
JP3130569B2 (ja) キャッシュメモリのストア方式
JPH0154735B2 (ko)
US7216194B2 (en) Methods and systems for improving delayed read handling
GB2037466A (en) Computer with cache memory
EP0718771B1 (en) DMA logic unit architecture

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
LAPS Lapse due to unpaid annual fee