KR100422781B1 - 통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치 - Google Patents

통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR100422781B1
KR100422781B1 KR10-2001-7008618A KR20017008618A KR100422781B1 KR 100422781 B1 KR100422781 B1 KR 100422781B1 KR 20017008618 A KR20017008618 A KR 20017008618A KR 100422781 B1 KR100422781 B1 KR 100422781B1
Authority
KR
South Korea
Prior art keywords
agent
memory
access
arbitration
request
Prior art date
Application number
KR10-2001-7008618A
Other languages
English (en)
Other versions
KR20010089791A (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 KR20010089791A publication Critical patent/KR20010089791A/ko
Application granted granted Critical
Publication of KR100422781B1 publication Critical patent/KR100422781B1/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Read Only Memory (AREA)

Abstract

일실시예에 따르면, 메모리 및 그 메모리에 연결되어 있는 메모리 제어기를 포함하는 컴퓨터 시스템이 기술된다. 메모리 제어기는 제1 중재 모드 또는 제2 중재 모드에 따라 동작하도록 프로그램될 수 있는 중재 유닛을 포함한다. 컴퓨터 시스템은 또한 중재 유닛에 연결되어 있는 제1 장치 및 제2 장치를 포함한다. 다른 실시예에 따르면, 제1 장치는 중재 유닛이 제1 중재 모드에 따라 동작하고 있는 동안에 메모리로 액세스하도록 제2 장치보다 더 높은 우선순위 등급을 할당받는다. 또한, 제1 장치 및 제2 장치는 중재 유닛이 제2 중재 모드에 따라서 동작하고 있는 동안에 메모리로 액세스하도록 동등한 우선순위 등급을 할당받는다.

Description

통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치{METHOD AND APPARATUS FOR ARBITRATION IN A UNIFIED MEMORY ARCHITECTURE}
통상의 컴퓨터 시스템은 요구중인 에이전트에 의한 메모리 시스템으로의 액세스를 제어하는데 도움을 주는 적어도 2개의 메모리 서브시스템을 사용하여 구현된다. 2개의 서브시스템은 통상적으로 주메모리 서브시스템 및 그래픽스 로컬 메모리 서브시스템(graphics local memory subsystem)이다. 주메모리 서브시스템은 시스템 메모리 제어기를 포함하고, 그래픽스 로컬 메모리 서브시스템은 그래픽스 메모리 제어기를 포함한다. 2개의 메모리 서브시스템은 통상적으로 허용 가능한 대기시간(time latency) 이내에 시스템 메모리로 액세스하도록 모든 요구들의 트래픽 요건(traffic requirements)을 지원하는데 필요하다. 따라서, 2중 메모리 아키텍처는 통상의 컴퓨터 시스템에 성능의 이점을 제공하지만, 그러나 제2 메모리 서브시스템을 포함하는 추가 비용은 통상의 컴퓨터 시스템의 제조비용을 증가시킨다.
UMA를 포함하는 컴퓨터 시스템은 주메모리 서브시스템과 그래픽스 로컬 메모리 서브시스템의 기능성을 겸비한다. UMA를 구비한 컴퓨터 시스템은 제2 메모리 제어기(즉, 그래픽스 메모리 제어기)가 없기 때문에 제조에 더 적은 비용이 드는 것은 분명하다. 그러나, 시스템 메모리로 액세스하기 위한 추가의 그래픽스 요구들은 통상적으로 공통 시스템 메모리 제어기를 오버로드한다(overload). 따라서, 통상의 UMA 컴퓨터 시스템은 시스템 메모리 제어기에서 트래픽 요구의 오버로드 때문에 성능이 상당히 저하된다. 결과적으로, 시스템 메모리에 대한 요구의 균형을 맞추고(balance), UMA 컴퓨터 시스템에서 이용 가능한 대역폭을 최대화시키는 중재 방법이 요구된다.
본 발명은 메모리 시스템에 관한 것으로서 특히, 통합 메모리 아키텍처(UMA)(Unified Memory Architecture)에서의 중재 방법(arbitration policy)에 관한 것이다.
본 발명은 후술되는 상세한 설명 및 본 발명의 다양한 실시예들의 첨부 도면으로부터 더 명백하게 이해될 것이다. 그러나, 도면들은 본 발명을 특정 실시예로국한하기 위한 것이 아니며, 오직 예시 및 이해만을 위한 것이다.
도1은 컴퓨터 시스템의 일실시예의 블록도.
도2는 칩세트(chipset)의 일실시예의 블록도.
도3은 중재 유닛의 일실시예의 블록도.
도4a는 아비터(arbiter)의 일실시예의 상태도.
도4b는 아비터의 일실시예의 상태도.
도5는 아비터의 동작의 일실시예의 흐름도.
도6은 아비터의 동작의 일실시예의 흐름도.
도7은 아비터의 동작의 일실시예의 흐름도.
도8은 시스템 버스 인터페이스(system bus interface)의 일실시예의 블록도.
발명의 요약
일실시예에 따르면, 메모리 및 그 메모리에 연결되어 있는 메모리 제어기를 포함하는 컴퓨터 시스템이 기술된다. 메모리 제어기는 제1 중재 모드 또는 제2 중재 모드에 따라 동작하도록 프로그램될 수 있는 중재 유닛을 포함한다.
도1은 컴퓨터 시스템(100)의 일실시예의 블록도이다. 컴퓨터 시스템(100)은 프로세서 버스(110)에 연결되어 있는 중앙처리장치(프로세서)(105)를 포함한다. 일실시예에서, 프로세서(105)는 미국 캘리포니아 산타 클라라에 위치한 Intel사로부터 이용 가능한 펜티엄 II 프로세서 패밀리, 모바일 펜티엄 및 펜티엄 II 프로세서를 포함하는 펜티엄 프로세서 패밀리 중 한 프로세서이다. 대안으로, 다른 프로세서들이 사용될 수 있으며, 프로세서(105)는 제1 레벨(L1) 캐시 메모리(도1에 도시되지 않음)를 포함할 수 있다.
일실시예에서, 프로세서(105)는 또한 전용 캐시 버스(102)를 통해 제2레벨(L2) 캐시 메모리인 캐시 메모리(107)에 연결되어 있다. L1 및 L2 캐시 메모리는 또한 단일 장치로 집적될 수 있다. 대안으로, 캐시 메모리(107)는 공유버스(shared bus)에 통해 프로세서(105)에 연결될 수 있다.
칩세트(120)는 또한 프로세서 버스(110)에 연결되어 있다. 일실시예에서, 칩세트(120)는 UMA에 따라 동작한다. 주메모리(113)는 칩세트(120)를 통해 프로세서 버스(110)에 연결되어 있다. 주메모리(113) 및 캐시 메모리(107)는 프로세서(105)에 의해 실행되는 명령어 시퀀스를 저장한다. 일실시예에서, 주메모리(113)는 DRAM(dynamic random access memory)를 포함하지만, 그러나 주메모리(113)는 다른 메모리 타입을 사용하여 구현될 수도 있다. 프로세서(105)에 의해 실행되는 명령어 시퀀스는 주메모리(113), 캐시 메모리(107) 또는 임의의 다른 저장 장치로부터 검색될 수 있다. 복수의 프로세서 및/또는 복수의 주메모리 장치와 같은 추가 장치가 또한 프로세서 버스(110)에 연결될 수 있다. 컴퓨터 시스템(100)은 단일 프로세서에 관해 기술되지만, 그러나 다중 프로세서가 프로세서 버스(110)에 연결될 수 있다.
비디오 장치(125)도 또한 칩세트(120)에 연결되어 있다. 일실시예에서, 비디오 장치는 CRT(cathode ray tube) 또는 LCD(liquid crystal display)와 같은 비디오 모니터 및 필요한 지원 회로를 포함한다.
프로세서 버스(110)는 칩세트(120)에 의해 시스템 버스(130)에 연결되어 있다. 일실시예에서, 시스템 버스(130)는 Intel사에 의해 개발된 PCI(Peripheral Component Interconnect) 표준 버스이다. 그러나, 다른 버스 표준들이 또한 사용될수 있다. 오디오 장치(127)와 같은 복수의 장치가 시스템 버스(130)에 연결될 수 있다.
버스 브리지(140)는 시스템 버스(130)를 제2 버스(150)에 연결한다. 일실시예에서, 제2 버스(150)는 미국 뉴욕 아몬크에 위치한 IBM사에 의해 개발된 ISA(Industry Standard Architecture) 버스이다. 그러나, 다른 버스 표준들이 사용될 수가 있는데, 예를 들어 Compaq Computer사 등에 의해 개발된 EISA(Extended Industry Standard Architecture) 버스가 될 수 있다. 하드디스크(153) 및 디스크 드라이브(154)와 같은 복수의 장치가 제2 버스(150)에 연결될 수 있다. 커서 제어 장치(도1에 도시되지 않음)와 같은 다른 장치도 제2 버스(150)에 연결될 수 있다.
도2는 칩세트(120)의 일실시예의 블록도이다. 칩세트(120)는 프로세서 버스(110)에 연결되어 있는 호스트 인터페이스(210)를 포함하며, 주메모리(113)로 액세스하기 위한 프로세서(105)로부터의 요구를 수신한다. 기록 버퍼(212)는 호스트 인터페이스(210)에 연결되어 있고, 주메모리(113)와의 기록 트랜잭션을 수행하기 위하여 호스트 인터페이스(210)로부터 수신된 요구들을 버퍼링한다(buffers). 판독 버퍼(214)는 역시 호스트 인터페이스(210)에 연결되어 있고, 주메모리(113)를 사용하여 판독 트랜잭션을 수행하기 위하여 호스트 인터페이스(210)로부터 수신된 요구들을 버퍼링하는데 사용된다.
칩세트(120)는 또한 그래픽스 제어기(220)를 포함한다. 그래픽스 제어기(220)는 주메모리(113)로 액세스하기 위한 비디오 데이터 요구들을 처리한다. 리프레시 유닛(230)(refresh unit)도 역시 칩세트(120)내에 포함된다. 리프레시 유닛(230)은 데이터 무결성(data integrity)을 유지하기 위하여 주메모리(113)내의 전기적 셀들을 재충전하는 메모리 리프레시(memory refreshes)를 트리거한다. 또한, 칩세트(120)는 시스템 버스(130)에 연결되어 있는 시스템 버스 인터페이스(240)를 포함한다. 시스템 버스 인터페이스(240)는 주메모리(113)로 액세스하기 위하여 시스템 버스(130)상에 위치하는 입력/출력(I/O) 장치(예로, 오디오 장치(127))로부터 요구를 수신한다.
또한, 칩세트(120)는 메모리 제어기(250)를 포함한다. 메모리 제어기(250)는 기록 버퍼(212), 판독 버퍼(214), 그래픽스 제어기(220), 리프레시 유닛(230) 및 시스템 버스 인터페이스(240)에 연결되어 있다. 메모리 제어기(250)는 프로세서(105) 및 칩세트(120)에 연결되어 있는 비디오 장치(125)와 같은 하나 또는 그 이상의 주변 장치들로부터 수신된 명령어(command)에 기반하여 메모리 트랜잭션을 위해 주메모리(113)로 액세스한다. 메모리 제어기(250)는 주메모리(113)로부터 데이터를 판독할 수 있고, 주메모리(113)로 데이터를 기록할 수 있다.
메모리 제어기(250)는 중재 유닛(arbitration unit)(255)을 포함한다. 중재 유닛(255)은 기록 버퍼(212), 판독 버퍼(214), 리프레시 유닛(230) 등과 같은 많은 에이전트들에 의하여 주메모리(113)로의 액세스를 조정한다. 도3은 중재 유닛(255)의 일실시예의 블록도이다. 중재 유닛(255)은 타임 슬라이스 모드(time slice mode)에서 동작하기 위한 슬라이스 타이머(slice timer), 조건부 그레이스 그랜트 모드(conditional grace grant mode)에서 동작하기 위한 그레이스 타이머(grace timer)(320)와 페이지 비교 유닛(page compare unit)(320), 워터마크모드(watermark mode)에서 동작하기 위한 워터마크 유닛(watermark unit)(340) 및 아비터(350)를 포함한다. 아비터(350)는 에이전트로부터 액세스 요구들을 수신하고, 액세스 요구들의 상대적인 우선순위를 판단한 후, 그 상대적인 우선순위에 따르는 시간에 에이전트들 중 한 에이전트에게 액세스를 허용한다.
전에 의미한 바와 같이, 중재 유닛(255) 및 아비터(350)는 많은 동작 모드에 따라 실행할 수 있다. 일실시예에 따르면, 아비터(350)는
1. 우선순위 지정 모드(Priority Designation Mode); 또는
2. 타임 슬라이스 모드
에 기반하여 주메모리(113)에 대한 액세스를 조정할 수 있다.
또한, 아비터(350)가 우선순위 지정 모드 또는 타임 슬라이스 모드에서 동작하는 동안에, 아비터(350)도 역시
3. 조건부 그레이스 그랜트 모드; 및
4. 워터마크 모드
에 따라 동작할 수 있다.
더욱이, 전술된 중재 동작 모드는 시스템(100) 사용자가 원하는 성능에 따라 모드를 선택할 수 있도록 프로그램될 수 있다. 중재 유닛(255)은 그것이 동작할 모드를 나타내는 MODE 신호를 수신한다. 모드 구성은 제2 버스(150)에 연결되어 있는 BIOS(basic input output system) 메모리(도시되어 있지 않음)내에 저장될 수 있고, PCI 구성 기록(PCI configuration write)과 같은 구성 메커니즘을 통해 시스템(100)이 개시되거나 또는 리셋될 때 칩세트(120)로 전송될 수 있다.
I. 중재 모드
A. 우선순위 지정 모드
우선순위 지정 모드에서 동작하는 동안에, 주메모리(113)로 액세스하기 위한 요구는 다음과 같이 분류되며, 번호 1은 가장 높은 우선순위를 갖는다.
1. 높은 우선순위(high priority);
2. 호스트 및 시스템 I/O(host and system I/O);
3. 보통 우선순위 그래픽스(normal priority graphics); 및
4. 오퍼츄니스틱스(opportunistics)
높은 우선순위 범주(category)는 실시간 요구를 충족하기 위하여 소정의 대기시간 내에 주메모리(113)에 의하여 서비스되어야 하는 요구들을 포함한다. 예를 들어, 만일 주메모리(113)에 의한 서비스가 실질적으로 표시되면, 그래픽스 제어기(220)에 연결되어 있는 비디오 장치(125)는 프리커할(flicker) 수 있다. 높은 우선순위 범주는 또한 시스템 고장(system failure)을 방지하기 위하여 서비스되어야 하는 요구들을 포함한다. 예를 들어, 만일 리프레시 유닛(230)으로부터 수신되는 메모리 리프레시 사이클이 실행되지 않고 과도하게 지연된다면, 데이터 파손(data corruption)이 주메모리(113)에서 발생할 수 있다.
호스트 및 시스템 I/O 범주는 프로세서 버스(110)로부터 수신되는 요구들(예로, 판독 버퍼(214)로부터의 판독 트랜잭션) 및 시스템 버스 인터페이스(240)를 통해 수신되는 시스템 버스(130)상의 시스템 I/O 장치로부터의 요구들을 포함한다. 시스템 버스(130)상의 장치로부터의 요구들은 등시성이고, 비동기인(isochronousand asynchronous)것으로서 분류된다. 등시성 요구(예로, 비디오 카메라, 네트워크 트래픽 등으로부터의 요구)는 대기시간에 민감하고, 허용 가능한 시간주기 내에 주메모리(113)에 의하여 서비스되어야 한다. 비동기 요구(예로, 하드디스크(153), 디스크 드라이브(154) 등으로부터의 요구)는 이러한 시간제한을 받지 않는다.
도8은 시스템 버스 인터페이스(240)의 일실시예의 블록도이다. 시스템 버스 인터페이스는 시스템 버스(130)에 연결되어 있는 등시성 큐(isochronous queue)(810) 및 비동기 큐(asynchronous queue)(815)를 포함한다. 등시성 큐(810)는 주메모리(113)로 액세스하기 위한 등시성 요구들을 저장하고, 반면에 비동기 큐(815)는 비동기 요구들을 저장한다. 시스템 버스 인터페이스(240)는 또한 등시성 큐(810) 및 비동기 큐(815)에 연결되어 있는 프리-아비터(820)를 포함한다. 프리-아비터(820)는 주메모리(113)에 대한 액세스를 중재하도록 허용된 시스템 I/O 요구(등시성이거나 또는 비동기임)들을 선택한다. 등시성 요구들은 임계적인 대기시간(critical time latencies) 때문에 더 높은 우선순위를 부여받는다.
보통 우선순위 그래픽스 범주는 주메모리(113)로 액세스하기 위하여 그래픽스 제어기(220)으로부터의 비-실시간 그래픽스 요구들을 포함한다. 오퍼츄니스틱스 범주는 시스템(100)의 성능저하를 발생시키지 않고 실질적인 시간동안에 보류될 수 있는 완화된 대기시간 요건들을 갖는 요구들을 포함한다. 예를 들어, 기록 버퍼(212)로부터의 전달된 기록 트랜잭션(write transactions)과 주메모리 리프레시는 그들의 각각의 버퍼에 큐잉되고, 나중의 실행을 위해 보류된다.
도4a는 우선순위 지정 모드에서 동작하는 동안의 아비터(350)의 상태도이다.상태도에서의 많은 천이 아크(transitional arcs)들은 혼동을 방지하기 위하여 고의로 생략되었다. 아비터(350)는 다음의 상태 즉, 높은 우선순위(HP)(410), 호스트 및 시스템 I/O(HIO)(420), 보통 우선순위 그래픽스(NPG)(430) 및 오퍼츄니스틱스(OPP)(440) 등의 상태들을 포함한다. 만일 아비터(350)가 임의의 상태에 있고 주메모리(113)로 액세스하기 위한 하나 또는 그 이상의 요구들을 수신하면, 그 요구와 현재의 상태 사이의 우선순위에 대하여 판단이 이루어진다. 예를 들어, 만일 아비터(350)가 HIO(420)에서 동작하고 있고 주메모리(113)로의 보통의 액세스를 위한 그래픽스 제어기(220)로부터의 보통 우선순위 그래픽스 요구를 수신한다면, 아비터(350)는 HIO(420)에 남아있게 된다. 이후에 더 높은 우선순위 에이전트가 액세스를 요구하지 않는다고 가정한다면, 아비터(350)는 주메모리(113)가 HIO(420)를 서비스하는 것을 완료한 후에 NPG(430)로 천이한다. 그러나, 만일 높은 우선순위 요구가 수신된다면, 아비터(350)는 즉시 HIO(420)로부터 HP(410)로 천이한다.
전술된 바와 같이, 높은 우선순위 요구는 실시간 요건 때문에 가장 높으며, 그리고 오퍼츄니스틱스 요구는 성능에 거의 영향을 주지 않고 지연될 수 있기 때문에 가장 낮다. 호스트 및 시스템 I/O 요구에는 보통 우선순위 그래픽스 요구보다 더 높은 우선순위가 지정되며, 그 이유는 프로세서(105)가 데이터의 대기시간에 민감하기 때문이다. 예를 들어, 서비스중인 프로세서(105)내의 지연은 극적인(dramatic) 성능저하를 야기할 수 있다.
또한, 프로세서(105)는 통상적으로 적합한 방식으로 주메모리(113)로 액세스한다. 예를 들어, 프로세서(105)는 통상적으로 집중되는 데이터 요구들과 휴지기간(period of inactivity)사이에서 순환한다(cycles). 대부분의 프로세서 요구(즉, 95% 또는 그 이상)는 캐시 메모리(107)에서 서비스된다. 따라서, 프로세서(105)가 데이터를 페치하기 위하여 주메모리(113)로의 액세스는 드물게 필요하다. 주메모리(113)에서 프로세서 데이터 요구들 사이의 휴지기간은 보통 우선순위 그래픽스 요구에 대하여 충분한 대역폭을 허용한다.
그러나, 다량의 그래픽스 애플리케이션 또는 작은 크기의 캐시 메모리(107)를 사용하는 것과 같은 어떤 경우에 있어서, 호스트 및 시스템 I/O 요구는 보통 우선순위 그래픽스 요구의 기아상태(starvation)를 초래할 수 있다. 이러한 경우에 호스트 및 시스템 I/O 요구와 보통 우선순위 그래픽스 요구 사이에 동등한 우선순위 등급을 제공하는 것이 필요할 수 있다. 또한, 호스트 및 시스템 I/O 요구에 의한 보통 우선순위 그래픽스 요구의 연속적인 인터럽션(interruption)은 주메모리(113)동작의 효율 감소를 초래한다. 예를 들어, 보통 우선순위 요구가 인터럽트될 때마다, 주메모리(113)의 액세스된 페이지가 클로즈되어야(closed)하며, 그 이유는 호스트 및 시스템 I/O 요구가 동일한 페이지에 액세스할 가능성이 없기 때문이다. 이후에, 호스트 및 시스템 I/O 요구를 서비스하기 위하여 메모리의 새로운 페이지가 오픈되어야(opened)한다. 호스트 및 시스템 I/O 요구가 주메모리(113)로 액세스하는 것을 완료하고, 보통 우선순위 그래픽스 요구에 대하여 다시 액세스가 허용된 이후에, 호스트 및 시스템 I/O 요구에 의해 액세스된 페이지는 클로즈되어야 하며, 보통 우선순위 그래픽스 요구 페이지가 재오픈되어야(re-opened) 한다.타임 슬라이스 모드는 호스트 및 시스템 I/O 요구와 보통 우선순위 그래픽스 요구사이에 동등한 우선순위 등급을 제공함으로써 이러한 관련사항을 완화시키는데 도움을 준다.
B. 타임 슬라이스 모드
아비터(350)는 타임 슬라이스 동작모드를 나타내는 MODE 신호를 통해 구성된 정보를 수신하면, 타임 슬라이스의 중재 기법에 따라 동작한다. 타임 슬라이스 기법을 사용하여, 주메모리(113)로 액세스하기 위한 요구는 다음과 같이 분류되며, 번호 1은 가장 높은 우선순위를 갖는다.
1. 높은 우선순위
2. 호스트 및 시스템 I/O 및 보통 우선순위 그래픽스
3. 오퍼츄니스틱스
타임 슬라이스 기법은 보통 우선순위 그래픽스 요구의 기아상태가 우선순위의 지정 방식에서와 같이 발생하지 않도록 보장한다. 호스트 및 시스템 I/O 요구에 대한 주메모리(113)로의 액세스는 도3에 도시되고, 슬라이스 타이머(315)에 의해 조정된다. 슬라이스 타이머(315)는 주메모리(113)에 의하여 호스트 및 시스템 I/O 요구가 서비스될 수 있는 지속기간(duration)을 제한한다. 슬라이스 타이머(315)가 종료된 후에, 높은 우선순위 요구들이 없다고 가정한다면, 보통 우선순위 그래픽스 요구에 대하여 주메모리(113)로 액세스하는 것을 허용한다. 일단 보통 우선순위 요구에 대하여 액세스가 허용된다면, 호스트 및 시스템 I/O 요구에 대해서는 슬라이스 타이머(315)가 종료할 때까지 주메모리(113)로 액세스하는 것을 허용하지 않는다. 일실시예에 따르면, 슬라이스 타이머(315)의 지속기간은 시스템(100) 사용자에 의하여 프로그램될 수 있다.
도4b는 타임 슬라이스 모드에서 동작하는 동안의 아비터(350)의 상태도이다. 아비터(350)는 대부분의 조건 하에서 우선순위 모드에서와 동일하게 동작한다. 예를 들어, 만일 아비터(350)가 임의의 상태(예로, OPP(440))에 있고 주메모리(113)로 액세스하기 위한 더 높은 우선순위 에이전트로부터의 요구를 수신한다면, 아비터(350)는 더 낮은 우선순위 상태로부터 더 높은 우선순위 상태(예로, HP(410))로 시프팅하고, 더 높은 우선순위 요구에 대하여 주메모리(113)의 제어를 허용한다. 그러나, 만일 아비터(350)가 임의의 상태(예로, NPG(430))에 있고 동등한 우선순위 에이전트(예로, 호스트 및 시스템 I/O 그룹)로부터 요구를 수신한다면, 아비터(350)는 슬라이스 타이머(315)가 종료될 때까지 NPG 요구에 서비스하는 현재의 상태에 남아있게 된다. 더 높은 우선순위 에이전트로부터의 어떠한 요구도 없다고 가정하면, 슬라이스 타이머(315)가 종료된 후에, 아비터(350)는 동등한 우선순위 상태로 시프팅한다.
도5는 아비터(350)가 타임 슬라이스 모드에서 동작하는 동안의 아비터(350)의 동작의 흐름도이다. 아비터(350)가 NPG 또는 HIO 상태에 있는 동안에, 프로세스 블록(510)에서, 주메모리(113)로 액세스하기 위하여 상이한 에이전트로부터 요구가 수신된다. 프로세스 블록(520)에서, 그 요구가 아비터(350)가 현재 위치한 상태보다 더 높은 우선순위 에이전트로부터 온 것인지 여부에 관해 판단이 이루어진다. 만일 그 요구가 더 높은 우선순위 에이전트로부터 온 것이면, 아비터(350)는 프로세스 블록(530)에서, 현재의 상태로부터 더 높은 우선순위 상태로 천이한다. 따라서, 더 높은 우선순위 상태에 대하여 주메모리(113)로 액세스하는 것을 허용한다. 이후에, 제어는 프로세스 블록(510)으로 복귀되고, 여기서 다른 요구가 수신된다.
만일 요구가 더 높은 우선순위 에이전트로부터 온 것이 아닌 것으로 판단된다면, 프로세스 블록(540)에서, 수신된 요구가 동등한 우선순위 등급을 갖는 에이전트로부터 온 것인지 여부에 관해 판단한다. 만일 그 요구가 동등한 우선순위 에이전트로부터 온 것이 아니면, 그 요구는 더 낮은 우선순위 에이전트로부터 온 것이며, 아비터(350)는 프로세스 블록(550)에서, 적어도 더 높은 우선순위 요구가 수신될 때까지 현재의 상태에서 현재의 에이전트를 계속하여 서비스한다. 만일 수신된 요구가 동등한 우선순위 에이전트로부터 온 것이면, 프로세스 블록(560)에서, 슬라이스 타이머(315)가 종료되었는지 여부를 판단한다.
만일 슬라이스 타이머(315)가 종료되지 않은 것으로 판단된다면, 아비터(350)는 현재의 상태에서 현재 제어중인 에이전트를 서비스한다. 그러나, 만일 슬라이스 타이머(315)가 종료되었다면, 아비터(350)는 프로세스 블록(570)에서, 동등한 우선순위 상태로 시프팅한다. 프로세스 블록(580)에서, 슬라이스 타이머(315)는 새로 허용된 에이전트에게 새로운 카운트를 제공하기 위하여 리셋된다. 이후에, 제어는 프로세스 블록(510)으로 복귀되고, 여기서 상이한 에이전트 요구가 수신된다. 당 기술 분야에서 통상의 지식을 가진 자는 프로세스 블록(520-560)들이 다양한 다른 순서로 처리될 수 있다는 것을 이해할 것이다. 예를 들어, 프로세스 블록(540)에 기재된 프로세스는 프로세스 블록(520)에 기재된 프로세스이전에 실행될 수 있다. 대안으로, 프로세스 블록(520-560)들은 병렬로 실행될 수 있다.
일실시예에 따르면, 만일 아비터(350)가 서비스의 완료이전에 HIO(420) 또는 NPG(430)로부터 더 높은 우선순위 에이전트로 시프팅한다면, 아비터(350)는 슬라이스 타이머(315)가 종료되지 않은 경우에, 더 높은 우선순위 에이전트를 서비스한 후에 이전 상태로 복귀한다. 이러한 경우에, 슬라이스 타이머는 그 상태로 다시 들어갈 때 리셋된다. 그러나, 다른 실시예에서, 동등한 상태들 중 하나의 상태로 다시 들어갈 때, 슬라이스 타이머(315)는 더 높은 우선순위 에이전트로 시프팅할 때의 시간으로부터 카운팅을 계속한다.
타임 슬라이스 기법의 추가적인 장점은, 호스트 및 시스템 I/O 요구에 서비스하기 위하여 보통 우선순위 그래픽스 요구를 인터럽트하지 않음으로써, 메모리 어드레스 공간(memory address space)의 소정의 범위에 자연적으로 집중되는 트랜잭션을 그룹짓는 것이 허용된다는 것이다. 예를 들어, 연속적인 트랜잭션이 주메모리(113)의 동일한 페이지로 액세스할 때마다(즉, 페이지 히트(page hit)), 액세스 시간은 감소되고 최소화될 수 있다. 반면에, 연속적인 트랜잭션이 주메모리(113)의 상이한 페이지로 액세스할 때마다(즉, 페이지 미스(page miss)), 액세스 시간은 최대화되며, 그 이유는 각각의 트랜잭션이 데이터가 액세스되기 전에 상이한 페이지를 프리차지(precharge)하기 위한 추가적인 시간을 필요로 하기 때문이다. 따라서, 타임 슬라이스 기법은 페이지 히트의 가능성을 증가시키며, 그 이유는 보통 우선순위 그래픽스 그룹으로부터의 요구들뿐만 아니라 호스트 및 시스템 I/O 그룹으로부터의 요구들이 주메모리(113)의 동일한 페이지들에 집중되는 경향이 있기 때문이다.
C. 조건부 그레이스 그랜트
조건부 그레이스 그랜트 기법은 주메모리(113)의 페이지 히트의 가능성을 최대화하는 개념을 말한다. 이러한 중재 방식(arbitration scheme)에서, 아비터(350)는 현재 주메모리(113)를 제어하는 에이전트에 의한 요구 및 더 높은 우선순위 에이전트로부터 요구를 모두 수신하면, 현재의 상태에서 남아있게 된다. 그렇지만, 제어중인 에이전트에게 다음에 주메모리(113)로의 액세스를 허용하는 것은 페이지 히트인 다음의 요구에 따라 정해진다. 도3에 도시된 페이지 비교 유닛(330)은 다음의 요구가 페이지 히트일 것인지 여부를 판단한다. 제어중인 에이전트에 의한 다음의 요구가 페이지 히트인 한, 에이전트는 주메모리(113)의 제어를 유지한다. 그러나, 일단 페이지 비교 유닛(330)이 제어중인 에이전트에 의한 다음의 요구가 페이지 미스를 초래할 것으로 판단한다면, 아비터(350)는 더 높은 우선순위 상태로 시프팅한다.
또한, 에이전트가 주메모리(113)의 제어를 유지할 수 있는 시간은 그레이스 타이머(grace timer)(320)에 의해 제한된다. 에이전트가 그레이스 조건 하에서 주메모리(113)의 제어를 첫번째로 회복할 때에 그레이스 타이머(320)가 작동된다. 그러나, 그레이스 타이머(320)가 종료될 때, 페이지 비교 유닛(330)이 다음의 요구가 페이지 히트일 것으로 판단하는 것과 관계없이 에이전트는 주메모리(113)의 제어를 중단하여야 한다. 그레이스 타이머(320)는 주메모리(113)로의 액세스를 요구하는다른 에이전트에게 과도한 대기시간(wait time)을 부과하는 것을 방지한다. 그레이스 타이머(320)는 사용자가 최적의 값을 선택하기 위하여 프로그램될 수 있다. 최적의 값은 요구중인 다른 에이전트들에게 상당한 대기시간을 부과하지 않는 시간제한(time limit)인 것이다. 또한, 조건부 그랜트 기법은 타임 슬라이스 모드 또는 우선순위 지정 모드에서 동작할 수 있다.
도6은 본 발명의 일실시예에 따른 아비터(350)의 동작의 흐름도이다. 프로세스 블록(610)에서, 현재 주메모리(113)를 제어하는 에이전트로부터의 요구뿐만 아니라 높은 우선순위 요구가 수신된다. 프로세스 블록(620)에서, 페이지 비교 유닛(330)은 제어중인 에이전트로부터의 다음의 요구가 페이지 히트일 것인지 여부를 판단한다. 만일 페이지 비교 유닛(330)이 다음의 요구가 페이지 미스라고 판단한다면, 더 높은 우선순위 요구에 대하여 주메모리(113)로 액세스하는 것을 허용한다. 그러나, 만일 페이지 비교 유닛(330)이 다음의 요구가 페이지 히트라고 판단한다면, 프로세스 블록(640)에서, 그레이스 타이머(320)가 종료됐는지 여부에 대한 판단이 이루어진다.
만일 그레이스 타이머(320)가 종료됐다면, 제어는 프로세스 블록(630)으로 복귀되고, 여기서 더 높은 우선순위 상태에 대하여 주메모리(113)의 액세스가 허용된다. 만일 그레이스 타이머(320)가 종료되지 않았다면, 프로세스 블록(650)에서, 제어중인 에이전트가 주메모리(113)의 제어를 유지한다. 이후에, 제어는 프로세스 블록(610)으로 복귀되고, 여기서 다른 요구가 수신된다. 많은 페이지 히트 액세스들을 함께 그룹지음으로써, 주메모리(113)의 불필요한 프리차지 시간이 제거된다.따라서, 이용 가능한 주메모리(113)의 대역폭이 최대화된다.
D. 워터마크 레벨
워터마크 기법은 오퍼츄니스틱스 요구에 대한 완화된 대기시간 요건을 이용한다. 예를 들어, 전송된 기록 버퍼(212)로부터의 기록 요구와 리프레시 유닛(230)으로부터의 주메모리(113) 리프레시 요구는 홀딩 버퍼에 큐잉되고, 아비터(350)가 유휴 상태로 될 때까지 실행이 보류된다. 그러나, 주메모리(113)에서 다량의 작업부하(workload)가 있는 동안에, 오퍼츄니스틱스 에이전트가 주메모리(113)로 액세스하기 위한 기회는 감소된다. 만일 주메모리(113)로부터의 서비스가 거의 없다면, 각각의 에이전트내의 각각의 홀딩 큐들이 최대 용량에 도달할 수 있고, 성능에 나쁜 영향을 발생시킬 수 있다.
워터마크 기법은 타임 슬라이스 모드 또는 우선순위 지정 모드에서 동작하며, 오퍼츄니스틱스 에이전트들의 홀딩 큐의 레벨(또는 워터마크)에 영향을 받는 아비터(350)를 필요로한다. 만일 홀딩 큐가 거의 비어 있다면, 워터마크 레벨은 낮고 오퍼츄니스틱스 그룹은 전술된 바와 같이 낮은 우선순위를 부여받는다. 그러나, 만일 홀딩 큐가 거의 차있다면, 워터마크 레벨은 높고 오퍼츄니스틱스 그룹은 높은 우선순위를 부여받는다. 예를 들어, 전술된 우선순위 등급을 사용하여, 만일 리프레스 유닛(230)내의 기록 버퍼(212) 또는 홀딩 큐가 거의 차있다면, 오퍼츄니스틱스 그룹의 등급은 가장 높은 우선순위로 상승된다. 또한, 오퍼츄니스틱스 그룹의 우선순위는 홀딩 큐가 채워짐에 따라 점차적으로 상승할 수 있다. 예를 들어, 만일 큐가 절반 차있다면, 우선순위는 제2 또는 제3 등급으로 상승될 수 있다.
도7은 본 발명의 일실시예에 따른 아비터(350)의 동작의 흐름도이다. 프로세스 블록(710)에서, 오퍼츄니스틱스 에이전트에 의하여 주메모리(113)로 액세스하기 위한 요구가 이루어진다. 프로세스 블록(720)에서, 아비터(350)는 워터마크 레벨을 검사하고, 오퍼츄니스틱스 그룹이 현재의 상태 또는 다른 수신된 요구들보다더 높은 우선순위를 갖는지 여부를 판단한다. 만일 워터마크 레벨이 상대적으로 낮다는 것이 판단된다면, 프로세스 블록(730)에서, 아비터(350)는 현재의 상태에 남아있게 되거나 또는 더 높은 우선순위 요구중인 다른 에이전트로 시프팅한다. 만일 워터마크 레벨이 상대적으로 높다는 것이 판단된다면, 프로세스 블록(740)에서, 아비터(350)는 오퍼츄니스틱스 상태로 시프팅하고, 요구중인 오퍼츄니스틱스 에이전트에게 주메모리(113)로의 액세스를 허용한다.
비록 본 발명이 UMA에 관하여 기술되었을지라도, 본 기술 분야에서 통상의 지식을 가진 자는 본 발명이 다른 메모리 시스템 구성을 사용하여 구현될 수 있다는 것을 인식할 것이다. 또한, 본 발명에서 기술된 중재 기법은 네트워크, 프린터 등과 같은 다른 전자 시스템에서도 구현될 수 있다.
따라서, UMA 컴퓨터 시스템에서 이용 가능한 대역폭을 증가시키기 위한 중재 방법이 기술되었다.

Claims (28)

  1. 컴퓨터 시스템에 있어서,
    메모리;
    상기 메모리에 연결되어 있는 메모리 제어기 - 여기서, 상기 메모리 제어기는 모드 선택 신호를 수신하는 중재 유닛을 포함하고, 상기 중재 유닛은 상기 모드 선택 신호가 제1 상태에 잇을 때마다 제1 중재 모드에 따라 동작하고, 상기 모드 선택 신호가 제2 상태에 있을 때마다 제2 중재 모드에 따라 동작함 -
    상기 중재 유닛에 연결되어 있는 제1 장치; 및
    상기 중재 유닛에 연결되어 있는 제2 장치
    를 포함하고,
    여기서, 상기 제1 장치는 상기 중재 유닛이 상기 제1 중재 모드에 따라 동작하는 동안에 상기 메모리로 액세스하기 위한 상기 제2 장치보다 더 높은 우선순위 등급을 할당받고, 상기 중재 유닛이 상기 제2 중재 모드에 따라 동작하는 동안에는 상기 제1 장치 및 상기 제2 장치에 상기 메모리로 액세스하기 위한 동등한 우선순위 등급이 할당되고,
    상기 중재 유닛은 상기 제1 장치가 상기 제2 중재 모드에 따라 동작할 때마다 상기 메모리를 제어하는 동안에, 소정의 시간 간격 동안 상기 제2 장치로부터의 상기 메모리의 액세스를 보류하는
    를 포함하는 컴퓨터 시스템.
  2. 삭제
  3. 삭제
  4. 제2항에 있어서,
    상기 중재 유닛은 상기 제2 장치가 상기 제2 중재 모드에 따라 동작할 때마다 상기 메모리를 제어하는 동안에, 소정의 시간 간격동안 상기 제1 장치로부터의 메모리 액세스를 보류하는
    컴퓨터 시스템.
  5. 제2항에 있어서,
    제3 장치
    를 더 포함하고
    여기서, 상기 제3 장치는 상기 중재 유닛이 상기 제1 또는 제2 중재 모드에 따라 동작할 때마다 상기 제1 및 제2 장치보다 더 낮은 우선순위 등급을 할당받는
    컴퓨터 시스템.
  6. 제5항에 있어서,
    상기 중재 유닛은 제3 모드에 따라 동작하고, 상기 제3 모드에서 상기 중재 유닛은 만일 상기 제3 장치에 의해 상기 메모리로 액세스하기 위한 다음의 요구가 페이지 히트를 초래한다면, 소정의 시간 간격동안 상기 제1 및 제2 장치로부터의 메모리 액세스를 보류하는
    컴퓨터 시스템.
  7. 제6항에 있어서,
    상기 중재 유닛은 만일 상기 제3 장치에 의해 상기 메모리로 액세스하기 위한 상기 다음의 요구가 페이지 미스를 초래한다면, 상기 제1 또는 제2 장치에 액세스를 허용하는
    컴퓨터 시스템.
  8. 제5항에 있어서,
    상기 제3 장치는 상기 메모리로 액세스하기 위한 요구들을 저장하기 위한 요구 버퍼(request buffer)를 포함하는
    컴퓨터 시스템.
  9. 제8항에 있어서,
    아비터는 상기 제3 모드에 따라 동작하고, 상기 제3 모드에서 상기 아비터는, 만일 상기 요구 버퍼가 차있다면, 상기 제3 장치에게 상기 제1 및 제2 장치보다 더 높은 우선순위 등급을 할당하고, 만일 상기 요구 버퍼가 비어있다면, 상기 제3 장치에게 상기 제1 및 제2 장치보다 더 낮은 우선순위 등급을 할당하는
    컴퓨터 시스템.
  10. 제5항에 있어서,
    상기 중재 유닛에 연결되어 있는 호스트 인터페이스;
    상기 중재 유닛에 연결되어 있는 시스템 버스 인터페이스;
    상기 중재 유닛에 연결되어 있는 그래픽스 제어기; 및
    상기 중재 유닛에 연결되어 있는 리프레시 유닛
    을 더 포함하는 컴퓨터 시스템.
  11. 제10항에 있어서,
    상기 제1 장치는 호스트 인터페이스를 통해 상기 중재 유닛에 연결되어 있는 프로세서이고, 상기 제2 장치는 그래픽스 제어기를 통해 상기 중재 유닛에 연결되어 있는 그래픽스 장치이고, 상기 제3 장치는 상기 리프레시 유닛인
    컴퓨터 시스템.
  12. 제11항에 있어서,
    상기 제1 장치는 상기 시스템 버스 인터페이스를 통해 상기 중재 유닛에 연결되어 있는
    컴퓨터 시스템.
  13. 제12항에 있어서,
    상기 시스템 버스 인터페이스는
    프리-아비터;
    상기 프리-아비터에 연결되어 있는 등시성 버퍼; 및
    상기 프리-아비터에 연결되어 있는 비동기 버퍼를 포함하고
    여기서, 상기 프리-아비터는 상기 비동기 버퍼에 저장되는 요구들보다 상기등시성 버퍼에 저장되는 요구들에게 더 높은 우선순위 등급을 할당하는
    컴퓨터 시스템.
  14. 제5항에 있어서,
    시간 관련 장치(time sensitive device) - 여기서, 상기 시간 관련 장치는 상기 중재 유닛이 상기 제1 또는 제2 중재 모드에 따라 동작할 때마다, 제1, 제2 및 제3장치보다 더 높은 우선순위 등급을 할당받음 - 를 더 포함하는
    컴퓨터 시스템.
  15. 제2항에 있어서,
    상기 중재 유닛은 상기 중재 유닛이 상기 제1 모드 또는 상기 제2 모드에 따라 동작할 것인지 여부를 나타내는 신호를 수신하는
    컴퓨터 시스템.
  16. 제2항에 있어서,
    상기 메모리 제어기는 UMA에 따라 동작하는
    컴퓨터 시스템.
  17. UMA 컴퓨터 시스템에서 메모리로 액세스하는 방법에 있어서,
    중재 후에 제1 에이전트에게 상기 메모리의 액세스를 허용하는 단계;
    상기 메모리로 액세스하기 위한 제2 에이전트로부터 요구를 수신하는 단계;
    상기 제2 에이전트가 상기 제1 에이전트와 동등한 우선순위 요구 등급을 갖고 있는지 여부를 판단하는 단계;
    만일 그렇다면, 상기 제1 에이전트에게 상기 메모리로 액세스하는 것을 허용한 후에 소정의 시간 간격이 경과했는지 여부를 판단하는 단계; 및
    만일 그렇지 않다면, 상기 제2 에이전트로부터의 상기 메모리의 액세스를 보류하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서,
    만일 상기 제2 에이전트가 상기 제1 에이전트보다 더 높은 우선순위 요구 등급을 갖는 것으로 판단된다면, 상기 제2 에이전트에게 상기 메모리의 액세스를 허용하는 단계
    를 더 포함하는 방법.
  19. 제17항에 있어서,
    만일 상기 소정의 시간 간격이 경과한 것으로 판단된다면, 상기 제2 에이전트에게 상기 메모리로의 액세스를 허용하는 단계
    를 더 포함하는 방법.
  20. 제19항에 있어서,
    상기 제1 에이전트는 CPU(central processing unit)이고, 상기 제2 에이전트는 그래픽스 장치인
    방법.
  21. 제19항에 있어서,
    상기 제1 에이전트는 그래픽스 장치이고, 상기 제2 에이전트는 시스템 입력/출력 장치인
    방법.
  22. 제17항에 있어서,
    상기 제1 에이전트에게 상기 메모리로의 액세스를 허용한 이후에 상기 메모리로 액세스하기 위한 상기 제1 에이전트보다 더 낮은 우선순위 요구 등급을 갖는 제3 에이전트로부터의 요구를 수신하는 단계;
    상기 제3 에이전트내의 버퍼가 상대적으로 차있는지를 판단하는 단계; 및
    만일 그렇다면, 상기 제3 에이전트에게 상기 메모리의 액세스를 허용하는 단계
    를 더 포함하는
    방법.
  23. 제22항에 있어서,
    만일 상기 버퍼가 상대적으로 차있지 않다면, 상기 제3 장치로부터의 상기 메모리의 액세스를 보류하는 단계
    를 더 포함하는
    방법.
  24. 자원(resource)으로 액세스하기 위해 다수의 추가 에이전트과 경쟁하고 있는 제1 에이전트가 경험하는 액세스 시간을 감소하는 방법에 있어서,
    상기 제1 에이전트에게 상기 자원으로 액세스하는 것을 허용하는 단계;
    상기 자원으로 액세스하기 위한 상기 다수의 추가적인 에이전트들 중 제2 에이전트로부터 요구를 수신하는 단계;
    상기 자원의 제어를 유지하기 위한 상기 제1 에이전트로부터의 요구를 수신하는 단계;
    상기 제1 에이전트에 의한 상기 요구가 상기 자원의 동일한 페이지로의 액세스를 초래할 것인지 여부를 판단하는 단계; 및
    만일 그렇지 않다면, 상기 제2 에이전트에게 상기 자원으로 액세스하는 것을 허용하는 단계
    를 포함하는 방법.
  25. 제24항에 있어서,
    만일 상기 제1 에이전트에 의한 상기 요구가 메모리의 동일한 페이지로 액세스하는 것을 초래할 것으로 판단된다면, 상기 제1 에이전트에게 상기 자원으로의 액세스를 허용한 후에 소정의 시간 간격이 경과했을지 여부를 판단하는 단계; 및
    만일 그렇다면, 상기 제2 에이전트로부터의 상기 자원의 액세스를 보류하는 단계;
    만일 그렇지 않다면, 상기 제2 에이전트에게 상기 자원으로 액세스하는 것을 허용하는 단계
    를 더 포함하는
    방법.
  26. UMA 컴퓨터 시스템에서 메모리로 액세스하는 방법에 있어서,
    중재 이후에 제1 에이전트에게 상기 메모리로 액세스하는 것을 허용하는 단계;
    요구 버퍼를 갖는 제2 에이전트로부터 상기 메모리로 액세스하기 위한 요구를 수신하는 단계;
    상기 제2 에이전트가 상기 제1 에이전트보다 더 높은 우선순위 요구 등급을 갖고 있는지 여부를 판단하는 단계;
    만일 그렇지 않다면, 상기 요구 버퍼가 상대적으로 차있는지 여부를 판단하는 단계; 및
    만일 그렇다면, 상기 제2 에이전트에게 상기 메모리로 액세스하는 것을 허용하는 단계
    를 포함하는 방법.
  27. 제26항에 있어서,
    만일 상기 제2 에이전트가 상기 제1 에이전트보다 더 높은 우선순위 요구 등급을 갖고 있다면, 상기 제2 에이전트에게 상기 메모리로 액세스하는 것을 허용하는 단계
    를 더 포함하는 방법.
  28. 제26항에 있어서,
    만일 상기 버퍼가 상대적으로 차있지 않다면, 상기 제2 에이전트로부터의 상기 메모리의 액세스를 보류하는 단계
    를 더 포함하는 방법.
KR10-2001-7008618A 1999-01-08 1999-12-21 통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치 KR100422781B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/226,965 US6330646B1 (en) 1999-01-08 1999-01-08 Arbitration mechanism for a computer system having a unified memory architecture
US09/226,965 1999-01-08
PCT/US1999/030719 WO2000041083A2 (en) 1999-01-08 1999-12-21 Method and apparatus for arbitration in a unified memory architecture

Publications (2)

Publication Number Publication Date
KR20010089791A KR20010089791A (ko) 2001-10-08
KR100422781B1 true KR100422781B1 (ko) 2004-03-12

Family

ID=22851205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-7008618A KR100422781B1 (ko) 1999-01-08 1999-12-21 통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치

Country Status (10)

Country Link
US (1) US6330646B1 (ko)
EP (1) EP1222552B1 (ko)
JP (1) JP4774152B2 (ko)
KR (1) KR100422781B1 (ko)
CN (1) CN1294502C (ko)
AU (1) AU2593400A (ko)
DE (1) DE69924039T2 (ko)
HK (1) HK1044838B (ko)
TW (1) TW468108B (ko)
WO (1) WO2000041083A2 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6504549B1 (en) * 1999-05-19 2003-01-07 Ati International Srl Apparatus to arbitrate among clients requesting memory access in a video system and method thereof
US6542159B1 (en) * 1999-05-19 2003-04-01 Ati International S.R.L. Apparatus to control memory accesses in a video system and method thereof
US6469703B1 (en) * 1999-07-02 2002-10-22 Ati International Srl System of accessing data in a graphics system and method thereof
US6629220B1 (en) * 1999-08-20 2003-09-30 Intel Corporation Method and apparatus for dynamic arbitration between a first queue and a second queue based on a high priority transaction type
US6950893B2 (en) 2001-03-22 2005-09-27 I-Bus Corporation Hybrid switching architecture
US7174415B2 (en) * 2001-06-11 2007-02-06 Zoran Corporation Specialized memory device
US6775727B2 (en) * 2001-06-23 2004-08-10 Freescale Semiconductor, Inc. System and method for controlling bus arbitration during cache memory burst cycles
US6715042B1 (en) * 2001-10-04 2004-03-30 Cirrus Logic, Inc. Systems and methods for multiport memory access in a multimaster environment
JP2003114825A (ja) * 2001-10-04 2003-04-18 Hitachi Ltd メモリ制御方法、その制御方法を用いたメモリ制御回路、及びそのメモリ制御回路を搭載する集積回路
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system
KR100518576B1 (ko) * 2003-05-24 2005-10-04 삼성전자주식회사 버스 중재기 및 버스 중재방법
US7206866B2 (en) * 2003-08-20 2007-04-17 Microsoft Corporation Continuous media priority aware storage scheduler
US7013357B2 (en) * 2003-09-12 2006-03-14 Freescale Semiconductor, Inc. Arbiter having programmable arbitration points for undefined length burst accesses and method
JP4625620B2 (ja) * 2003-10-10 2011-02-02 株式会社日立製作所 フェイルセイフ制御装置
JP2005190092A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd メモリアクセスコントロール回路
WO2006045216A1 (fr) * 2004-10-28 2006-05-04 Magima Digital Information Co., Ltd. Dispositif et procede d'arbitrage
JP4817725B2 (ja) * 2005-06-20 2011-11-16 キヤノン株式会社 データ処理装置及び方法
US7640381B1 (en) * 2005-10-07 2009-12-29 Ji Zhang Input/output decoupling system method having a cache for exchanging data between non-volatile storage and plurality of clients having asynchronous transfers
KR100839494B1 (ko) * 2006-02-28 2008-06-19 삼성전자주식회사 버스 중재 시스템 및 버스 중재 방법
JP2008198127A (ja) * 2007-02-15 2008-08-28 Toshiba Corp プロセッサシステム
US8112566B2 (en) * 2007-06-06 2012-02-07 Intel Corporation Methods and apparatuses for processing I/O requests of data storage devices
US8051232B2 (en) * 2007-06-25 2011-11-01 Intel Corporation Data storage device performance optimization methods and apparatuses
US7908440B2 (en) * 2007-08-09 2011-03-15 Intel Corporation Simultaneous personal sensing and data storage
JP2010165175A (ja) 2009-01-15 2010-07-29 Internatl Business Mach Corp <Ibm> バスの使用権を制御する装置および方法
CN101840382B (zh) * 2009-03-19 2013-03-27 北京普源精电科技有限公司 数据存储***和数据存取方法
FR2975893B1 (fr) 2011-05-30 2013-07-12 3Dceram Implant renforce en ceramique biocompatible et son procede de fabrication
US9411774B2 (en) * 2013-04-23 2016-08-09 Arm Limited Memory access control
JP6146128B2 (ja) * 2013-05-20 2017-06-14 ヤマハ株式会社 データ処理装置
US9971711B2 (en) * 2014-12-25 2018-05-15 Intel Corporation Tightly-coupled distributed uncore coherent fabric
US10198789B2 (en) * 2016-12-13 2019-02-05 Advanced Micro Devices, Inc. Out-of-order cache returns
CN110515871B (zh) * 2019-08-09 2021-05-25 苏州浪潮智能科技有限公司 一种中断方法、装置及fpga和存储介质
KR20210081699A (ko) 2019-12-24 2021-07-02 서강대학교산학협력단 자연어 피처를 결합한 주식 매도 및 매수 시그널 판별기
CN113495858A (zh) * 2021-06-08 2021-10-12 青岛本原微电子有限公司 一种同步总线访存的仲裁***及仲裁方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60246471A (ja) * 1984-05-22 1985-12-06 Yokogawa Hokushin Electric Corp メモリ制御装置
JPH07281942A (ja) * 1994-04-14 1995-10-27 Asahi Kasei Micro Syst Kk 共有資源のアービトレーション方法
US5528766A (en) * 1994-03-24 1996-06-18 Hewlett-Packard Company Multiple arbitration scheme
US5603061A (en) * 1991-07-23 1997-02-11 Ncr Corporation Method for prioritizing memory access requests using a selected priority code

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56149629A (en) * 1980-04-21 1981-11-19 Nec Corp Information processor
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US4858107A (en) * 1985-03-11 1989-08-15 General Electric Company Computer device display system using conditionally asynchronous memory accessing by video display controller
US4716523A (en) * 1985-06-14 1987-12-29 International Business Machines Corporation Multiple port integrated DMA and interrupt controller and arbitrator
JPH0786853B2 (ja) * 1988-02-29 1995-09-20 株式会社ピーエフユー バス転送制御方式
US5247649A (en) * 1988-05-06 1993-09-21 Hitachi, Ltd. Multi-processor system having a multi-port cache memory
US4937781A (en) * 1988-05-13 1990-06-26 Dallas Semiconductor Corporation Dual port ram with arbitration status register
JPH02144652A (ja) * 1988-11-25 1990-06-04 Fujitsu Ltd バス調停方式
JPH0528103A (ja) * 1990-05-22 1993-02-05 Mitsubishi Electric Corp バス多重方式
JPH0810445B2 (ja) * 1990-09-21 1996-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 動的バス調停方法及び装置
JPH05120206A (ja) * 1991-10-25 1993-05-18 Nec Corp Dmaコントローラ
US5629950A (en) * 1992-04-24 1997-05-13 Digital Equipment Corporation Fault management scheme for a cache memory
JPH06110828A (ja) * 1992-09-28 1994-04-22 Toshiba Corp メモリ制御装置
WO1995015528A1 (en) * 1993-11-30 1995-06-08 Vlsi Technology, Inc. A reallocatable memory subsystem enabling transparent transfer of memory function during upgrade
JPH07200386A (ja) * 1993-12-28 1995-08-04 Toshiba Corp 共有メモリのアクセス制御装置および画像形成装置
US5611053A (en) * 1994-01-21 1997-03-11 Advanced Micro Devices, Inc. Apparatus and method for integrating bus master ownership of local bus load by plural data transceivers
JPH07319756A (ja) * 1994-05-25 1995-12-08 Casio Electron Mfg Co Ltd メモリアクセス制御装置
US5524235A (en) * 1994-10-14 1996-06-04 Compaq Computer Corporation System for arbitrating access to memory with dynamic priority assignment
US5809539A (en) * 1995-04-27 1998-09-15 Hitachi, Ltd. Processor system having address allocation and address lock capability adapted for a memory comprised of synchronous DRAMs
US5664152A (en) * 1995-06-06 1997-09-02 Hewlett-Packard Company Multiple segmenting of main memory to streamline data paths in a computing system
JPH08339346A (ja) * 1995-06-09 1996-12-24 Toshiba Corp バスアービタ
CN1095125C (zh) * 1995-09-28 2002-11-27 联华电子股份有限公司 共用***存储器的可扩充式仲裁装置
US5937205A (en) * 1995-12-06 1999-08-10 International Business Machines Corporation Dynamic queue prioritization by modifying priority value based on queue's level and serving less than a maximum number of requests per queue
JPH1091577A (ja) * 1996-09-17 1998-04-10 Toshiba Corp バスアクセス権制御方式
US6070215A (en) * 1998-03-13 2000-05-30 Compaq Computer Corporation Computer system with improved transition to low power operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60246471A (ja) * 1984-05-22 1985-12-06 Yokogawa Hokushin Electric Corp メモリ制御装置
US5603061A (en) * 1991-07-23 1997-02-11 Ncr Corporation Method for prioritizing memory access requests using a selected priority code
US5528766A (en) * 1994-03-24 1996-06-18 Hewlett-Packard Company Multiple arbitration scheme
JPH07281942A (ja) * 1994-04-14 1995-10-27 Asahi Kasei Micro Syst Kk 共有資源のアービトレーション方法

Also Published As

Publication number Publication date
CN1615474A (zh) 2005-05-11
EP1222552B1 (en) 2005-03-02
HK1044838A1 (en) 2002-11-01
JP2002539509A (ja) 2002-11-19
HK1044838B (zh) 2005-06-10
AU2593400A (en) 2000-07-24
WO2000041083A2 (en) 2000-07-13
WO2000041083A3 (en) 2002-05-16
EP1222552A2 (en) 2002-07-17
KR20010089791A (ko) 2001-10-08
US6330646B1 (en) 2001-12-11
CN1294502C (zh) 2007-01-10
DE69924039T2 (de) 2006-04-13
TW468108B (en) 2001-12-11
DE69924039D1 (de) 2005-04-07
JP4774152B2 (ja) 2011-09-14

Similar Documents

Publication Publication Date Title
KR100422781B1 (ko) 통합 메모리 아키텍처에서 중재하기 위한 방법 및 장치
US6286083B1 (en) Computer system with adaptive memory arbitration scheme
JP3699833B2 (ja) メモリアーキテクチャーのための優先符号化及び復号化
US6792516B2 (en) Memory arbiter with intelligent page gathering logic
US5828856A (en) Dual bus concurrent multi-channel direct memory access controller and method
US6182177B1 (en) Method and apparatus for maintaining one or more queues of elements such as commands using one or more token queues
US6092158A (en) Method and apparatus for arbitrating between command streams
US9141568B2 (en) Proportional memory operation throttling
US5655151A (en) DMA controller having a plurality of DMA channels each having multiple register sets storing different information controlling respective data transfer
US5388245A (en) Memory arbitration method and apparatus for multiple-cycle memory coprocessors employing a data cache unit and stack RAM
JP4034969B2 (ja) 共通メモリのメモリ管理システム
US5754884A (en) Method for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller
US7769970B1 (en) Unified memory controller
US6519666B1 (en) Arbitration scheme for optimal performance
US20070294447A1 (en) Information Processing Apparatus and Access Control Method Capable of High-Speed Data Access
US6393505B1 (en) Methods and apparatus for data bus arbitration
US7617344B2 (en) Methods and apparatus for controlling access to resources in an information processing system
US5301332A (en) Method and apparatus for a dynamic, timed-loop arbitration
WO2001048618A2 (en) Dynamic priority external transaction system
US6317813B1 (en) Method for arbitrating multiple memory access requests in a unified memory architecture via a non unified memory controller
US6215703B1 (en) In order queue inactivity timer to improve DRAM arbiter operation
US5933616A (en) Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses
US7035984B2 (en) Memory arbiter with grace and ceiling periods and intelligent page gathering logic
JPH11345165A (ja) アクセス待ち時間を減少するため優先度とバースト制御を使用するトラフィック・コントローラ
JP2006268753A (ja) Dma回路及びコンピュータシステム

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: 20120224

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee