KR20060122982A - 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법 - Google Patents

버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법 Download PDF

Info

Publication number
KR20060122982A
KR20060122982A KR1020067021404A KR20067021404A KR20060122982A KR 20060122982 A KR20060122982 A KR 20060122982A KR 1020067021404 A KR1020067021404 A KR 1020067021404A KR 20067021404 A KR20067021404 A KR 20067021404A KR 20060122982 A KR20060122982 A KR 20060122982A
Authority
KR
South Korea
Prior art keywords
bus master
memory
processor
master device
bit
Prior art date
Application number
KR1020067021404A
Other languages
English (en)
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 KR20060122982A publication Critical patent/KR20060122982A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • 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/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • 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
    • 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
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)

Abstract

버스 마스터 제어기에 의해 액세스되는 시스템 메모리가 캐시 불가능한(non-cacheable) 것으로 설정된다. 시스템 프로세서가 저전력 상태에 있는 동안 상기 캐시 불가능한 메모리에 대한 어떠한 버스 마스터 제어기 전송 사이클에 대해서도 버스 마스터 상태 비트가 세트되지 않는다.
버스 마스터 제어기, 전력 관리, 프로세서, 저전력, 버스 마스터 상태 비트

Description

버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을 감소시키는 방법{METHOD TO REDUCE POWER IN A COMPUTER SYSTEM WITH BUS MASTER DEVICES}
본 발명은 동일한 참조부호가 동일한 구성요소를 나타내는 첨부 도면들에서 한정적인 것이 아니라 예로서 도시되어 있다.
도 1은 본 발명의 일실시예에 따른 캐시불가능한 메모리를 갖는 컴퓨터 시스템의 일례를 나타낸 블럭도이다.
도 2는 본 발명의 일실시예에 따른 연속 기입(write-through) 캐시가능 메모리를 갖는 컴퓨터 시스템의 일례를 나타낸 블럭도이다.
본 발명은 일반적으로 전력 관리 분야에 관한 것이다. 보다 구체적으로는, 본 발명은 프로세서들이 저전력 상태에 놓이게 해주는 방법들 및 시스템들에 관한 것이다.
ACPI(Advanced Configuration and Power Interface) 명세에서는, 오퍼레이팅 시스템(OS) 소프트웨어가 시스템 구성 및 전력 관리의 시각화(visibility) 및 제어를 달성할 수 있게 해주는 하드웨어 및 소프트웨어 환경을 정의한다. ACPI에서는 컴퓨터 시스템들에 대한 전력 관리와 플러그 앤드 플레이(plug and play) 기능을 결합시킨다. ACPI에서는 한 세트의 유효 프로세서 동작 상태들과 이들 간의 허용가능한 천이에 대해 기술한다. 프로세서에 대해 정의된 상위 4개의 상태는 C0, C1, C2 및 C3이다. C0 상태는 통상의 동작 상태이다. C1 상태는 모든 캐시된 컨텍스트를 보유하는 칩셋 로직으로부터 아무런 지원도 받지 않는, 저전력과 짧은 지연 시간(latency)을 갖는 상태이다. C2 상태는 칩셋 지원을 요구하지만 여전히 캐시된 컨텍스트를 보유하는, C1보다 낮은 전력과 C1보다 다소 긴 지연 시간을 갖는 상태이다. C3 상태는 칩셋 지원을 마찬가지로 요구하지만 캐시된 컨텍스트가 손실될 수도 있는, 여전히 더 낮은 전력과 더 긴 지연 시간을 갖는 상태이다. IA-32 아키텍처에 기초한 시스템들은 전형적으로, HALT(HLT) 명령의 사용을 C1 상태로 맵핑하고, STOPGRANT/QUICKSTART 어서션(assertion)을 C2 상태로 맵핑하고, 깊은 수면(Deep Sleep)(프로세서 클럭 입력 신호의 제거) 동작을 C3 상태로 맵핑한다. C1 및 C2 상태에서, 시스템 프로세서는 버스를 스누핑할 수 있다. C3 상태에서, 시스템 프로세서는 버스를 스누핑할 수 없다.
ACPI 인에이블된 OS에서, 이 OS는, 프로세서의 입/출력(I/O) 활동(activity) 및 이용가능 상태들과 그들의 속성에 기초하여 프로세서가 어느 저전력 상태에 놓여져야 할지에 대한 정책 결정을 행할 필요가 있다. OS가 이 정책 결정을 행하는 것을 돕기 위해, ACPI 시스템은 버스 마스터 상태(BM_STS) 비트 및 중재기(arbiter) 디스에이블(ARB_DIS) 비트를 제공한다. ACPI 시스템은 또한 프로세서의 여러 이용가능한 상태들을 설명하는 제어 방법들을 제공한다. BM_STS 및 ARB_DIS 비트는, OS가 언제 프로세서를 C3 상태에 놓이게 하고 언제 프로세서를 더 높은 전력 C2 상태에 놓이게 할지를 결정하게 해준다.
C2 또는 C3 저전력 상태 사이에 결정하기 위한 정책은 C3 상태에서의 시스템의 능력(capabilities)에 기초한다. 전술한 바와 같이, 프로세서는 C3 상태에 있는 동안 스누핑할 수 없으며, 추가적으로 메모리/캐시 일관성(coherency) 문제가 버스 마스터 액세스 동안 발생한다. 따라서, OS 정책은 BM_STS 비트를 통해 버스 마스터 액세스의 활동을 추적한다(track). 활동이 거의 없는 경우, BM_STS 비트를 세트시킴으로써 버스 중재기를 디스에이블시키고(이는 버스 마스터의 실행을 방지함), 프로세서를 C3 상태에 놓는다.
또한, OS가 C2/C3 정책을 결정하는 간격은 시스템의 전력 효율(power performance)에 영향을 미칠 것이다. ACPI OS에 대해, 프로세서의 C-상태를 결정하기 위한 정책은 모든 프리엠프트(preempt) 간격마다 한번씩 수행된다. 프리엠프트는 타이머 인터럽트로서도 알려져 있는 것으로, 주기적 타이머에 의해 생성되는 인터럽트로서 정의된다. 전형적으로 이 간격은 10ms-20ms(이 간격은 OS에 따라 달라짐) 정도이다. 프로세서는 자신의 작업이 이 프리엠프트 시간 동안 행해지도록 스케줄링하고 프로세서가 이 작업을 완료하면 저전력 상태에 놓이게 된다.
프로세서를 저전력 상태에 놓이게 하기 위해, OS는 프리엠프트 기간 내의 나머지 시간과 버스 마스터 액세스의 빈도를 관찰한다. C3 상태에 진입하기 위해, OS는, 나머지 프리엠프트 시간이 C3 엑시트 지연 시간(exit latency)보다 길게 하도록 하고, 그 후 (BM_STS 비트를 검사함으로써) 나머지 프리엠프트 시간에 대한 버스 마스터 액세스의 가능성을 판정한다. C3 엑시트를 위한 시간이 존재하고 버스 마스터 활동이 없었다면, OS는 프로세서를 C3 상태에 놓을 것이다.
따라서, 유휴 저전력 시스템은 가능한 가장 낮은 전력 프로세서 상태에 진입하길 원한다(Cx 상태가 높을수록 전력이 낮게 되는데, 예를 들어 C3은 C1보다 훨씬 낮은 전력 상태임). 또한, C3 상태에 진입하기 위해, 시스템은, 프로세서가 이 상태에서 스누핑할 수 없게 됨에 따라 메모리 및/또는 캐시의 일관성에 영향을 미칠 활동들이 없도록 해야 한다. 또한, Cx 상태를 결정하기 위한 정책은 프리엠프트 간격마다 적어도 한번 발생하거나, 혹은 10ms마다 한번 정도 등으로 발생한다. 이들 조건들이 유효 C3 상태를 결정한다. 그러나, 캐시 일관성 문제를 유발하고 프리엠프트 간격만큼 자주 발생하는 무언가가 존재하는 경우, 프로세서는 C3 상태에 절대로 진입하지 않을 것이다. OS는 BM_STS 비트를 통해 모든 캐시 일관성 문제를 추적하며, OS는, BM_STS 비트가 세트되는 경우 C3 상태에 진입할 수 없는 것으로 결론짓는다.
일실시예에는, BM_STS 비트가 세트되는 것을 방지하여 메모리 일관성을 유지하면서 프로세서가 C3 상태에 진입할 수 있게 해주는 방법이 개시되어 있다. 버스 마스터 버퍼들의 캐시 정책을 변경함으로써, 많은 버스 마스터 활동들이 캐시 일관성 문제를 발생시키지 않으며, 이에 따라 BM_STS 비트에 의해 추적될 필요가 없어서 프로세서가 C3 상태에 더 자주 진입할 수 있게 된다.
이하에서는 설명을 위해, 본 발명의 철저한 이해를 위한 여러 특정 상세 사항들이 제시된다. 그러나, 본 기술분야의 통상의 지식을 가진 자라면, 본 발명은 이들 특정 상세사항없이도 실시될 수 있음을 알 것이다. 다른 예들에서, 널리 공지된 구조들, 프로세스들, 및 디바이스들이 블럭도의 형태로 도시되거나, 혹은 불필요하게 상세하게 설명하지 않기 위해 요약 형태로 언급된다.
전형적으로, 버스 마스터 상태(BM_STS) 비트는 버스 마스터 판독 동작 또는 기록 동작으로 세트된다. 예를 들면, USB 디바이스들을 갖는 시스템에서, USB 호스트 제어기는 메모리로부터 디스크립터(descriptors)를 판독하여, USB 호스트 제어기가 수행할 필요가 있는 임의의 동작이 존재하는지 여부를 판정한다. 메모리로부터 디스크립터를 판독하는 것은 밀리초(millisecond)마다 일어난다. 대부분의 시간 동안 디스크립터는 USB 호스트 제어기가 수행할 동작이 없음을 나타낸다. 전형적으로, 드라이버 버퍼가 후기입(write-back) 캐시가능하기 때문에 BM_STS 비트가 세트되고, 이에 따라 실제의 데이터가 프로세서의 캐시 내에 상주하는 메모리 영역에 대해 버스 마스터 판독 동작이 실행되고 프로세서가 C3 상태에 있는 경우, 버스 마스터 동작은 프로세서가 수면 상태에서 깰(awakened) 때까지 계속될 수 없다. 이는, 프로세서가 C3 상태에 있는 동안 스누프 사이클들을 서비스할 수 없기 때문이다. 이러한 상황을 방지하기 위해, 스누프 사이클을 유발할 수도 있는 이전의 임의의 트래픽이 주어진 경우(BM_STS가 세트되는 경우), OS는 ARB_DIS 비트를 세트시켜 임의의 버스 마스터 동작을 방지한다.
후기입 캐시가능한 메모리 영역에 대한 버스 마스터의 기록 동작에 대해, 메 모리 영역의 카피가 프로세서의 캐시 내에 상주할 수도 있는 가능성이 존재한다. 일관성을 유지하기 위해, 연속 기입 캐시가능한 메모리 영역에 대한 임의의 버스 마스터 기록 동작이 프로세서의 캐시에 의해 스누핑될 필요가 있다. 이 상황을 방지하기 위해, OS는 ARB_DIS 비트를 세트시켜 임의의 버스 마스터 동작을 방지한다.
캐시 및 메모리 일관성 문제를 피하는 설계 방법들(design practices)을 고안함으로써, 프로세서는 저전력 상태에 놓일 수 있게 된다. 드라이버에 의해 사용되는 메모리 공간이 캐시불가능으로 표시되어 유지되면, 메모리 일관성 문제는 없어지게 된다. 이 메모리 공간을 캐시불가능으로 표시하면, 이 메모리 공간의 카피들이 프로세서의 캐시 내에 존재하지 않게 되고 이 메모리 영역을 사용하는 디바이스에 의한 임의의 버스 마스터 액세스에 대해 프로세서의 캐시를 스누핑할 필요가 없게 된다. 디바이스가 캐시불가능 메모리 공간에 대한 버스 마스터 동작을 생성할 때 BM_STS가 세트되지 않게 설계되면, OS는 프로세서를 더 자주 저전력 C3 상태에 놓이게 할 수 있다.
대안적으로, 드라이버에 의해 사용되는 메모리 공간이 연속 기입(write-through) 캐시가능으로 표시되어 유지되면, 일부 메모리 일관성 문제들이 해결된다. 연속 기입 캐시가능 메모리란, 메모리 및 프로세서 캐시 내에 여러 데이터 카피들이 존재할 수 있지만 양쪽에서 이들 카피들은 일관성있게 유지되며, 임의의 판독 동작에서는 단지 로컬 카피를 판독하기만 하는 데 반해 이 데이터의 카피에 대한 기록 동작이 다른 저장소(메모리 또는 캐시)에 카피되어야 한다는 것을 의미한다. 그러므로, 버스 마스터 메모리 판독 동작은 프로세서의 임의의 상호작용을 필 요로 하지 않으며, 메모리로의 버스 마스터 기록 동작은 프로세서의 캐시가 스누핑될 것을 요구할 것이다(데이터의 프로세서의 캐시의 카피를 갱신하기 위해). 이런 타입의 구성에 대해, 버스 마스터 디바이스의 메모리가 연속 기입 캐시가능한 것으로 표시되는 경우에는, 이들 디바이스들이 연속 기입 메모리 영역에 대한 버스 마스터 기록 액세스를 생성하는 경우에만 BM_STS 비트가 세트되도록 설계될 수도 있다. 그러나, 연속 기입 캐시가능한 메모리 영역에 대한 버스 마스터 판독 액세스에서는 BM_STS 비트를 세트할 필요가 없어서 OS가 CPU를 저전력 C3 상태에 놓이게 해준다.
C3 상태로의 진입을 최적화하기 위해, 이하의 표 1에서는 액세스되고 있는 메모리 영역의 캐시 능력에 따라 BM_STS가 어떻게 세트되어야 하는지를 나타낸다.
버스 마스터 사이클의 유형 현재 BM_STS 개선된 BM_STS
메모리 판독 캐시불가능 메모리 세트 변화 없음
메모리 기록 캐시불가능 메모리 세트 변화 없음
메모리 판독 연속 기입 캐시가능 메모리 세트 변화 없음
메모리 기록 연속 기입 캐시가능 메모리 세트 세트
메모리 판독 후기입 캐시가능 메모리 세트 세트
메모리 기록 후기입 캐시가능 메모리 세트 세트
표 1에 나타낸 바와 같이, 버스 마스터 버퍼들을 캐시불가능으로 함으로써 BM_STS 비트를 세트시키는 것을 전적으로 방지하게 되며, 버스 마스터 버퍼들을 연속 기입 캐시가능으로 함으로써 임의의 판독 사이클에서 BM_STS 비트를 세트시키는 것을 방지하게 된다. 버스 마스터의 동작에 따라, 이들 기술중 하나가 적용되어 프로세서가 C3 상태에 더욱 자주 진입할 수 있게 해줄 수 있다.
도 1은 본 발명의 일실시예에 따른 캐시불가능 메모리를 갖는 컴퓨터 시스템의 일례를 도시한 블럭도이다. USB 디바이스들(135, 140)은 USB 호스트 제어기(120)를 통해 컴퓨터 시스템(100)에 접속된다. 컴퓨터 시스템(100)은 프로세서(102), 메모리 제어기 유닛(MCU)(105) 및 메모리(110)를 포함한다. 전형적으로, 컴퓨터 시스템(100) 내의 OS는 매 시간 주기마다(예를 들면 11초마다) 주기적인 프리엠프트 인터럽트를 스케줄링한다. 각 프리엠프트 인터럽트시에, OS는 프로세서(102)가 해야 할 작업량을 스케줄링한다. 프로세서(102)가 작업을 완료하면, 프로세서(102)는 다음 프리엠프트 인터럽트까지 유휴 상태로 된다. 그 후 프로세서(102)는 OS에 의해 스케줄링된 몇몇 작업을 더 행한 후, 프로세서(102)는 다시 유휴 상태로 된다.
프로세서(102)가 유휴 상태일 때, 전술한 바와 같이 OS는 프로세서(102)를 저전력 상태들 C1, C2, 또는 C3중 하나의 상태에 둔다. 이들 상태들 각각은 서로 다른 속성을 갖는다. 예를 들면, C1 상태는 약 2와트의 저전력 상태이며 약 0.5 마이크로초의 엑시트 지연 시간을 갖는다. C2 상태는 약 1.5 와트의 저전력 상태이며 약 100 마이크로초의 엑시트 지연 시간을 갖는다. C3 상태는 약 0.2 와트의 매우 저전력 상태이며 약 3 마이크로초의 엑시트 지연 시간을 갖는다. C3 상태는 매우 낮은 전력 프로세서 상태이다. 엑시트 지연 시간은, 프리엠프트 인터럽트가 존재할 때 프로세서(102)가 재개하는 데 걸리는 시간이다.
프로세서 캐시(103)와 메모리(110) 간의 일관성을 유지하기 위해 스누핑은 중요하다. 프로세서(102)가 C3 상태에 놓이게 되면, 프로세서(102)는 버스를 스누핑할 수 없다. 예를 들면, 프로세서가 C3 상태에 있는 동안, USB 호스트 제어기(120)(또는 버스 마스터 제어기)가 버스를 제어하여 메모리(110)에 대한 데이터 기록을 수행하려고 하고 대응 데이터가 프로세서 캐시(103) 내에 있게 되는 경우, 메모리 일관성 문제가 있을 수 있다. 메모리(110) 내의 데이터는 프로세서 캐시(103) 내의 데이터보다 최신일 수 있지만 프로세서(102)는 버스를 스누핑할 수 없기 때문에 이를 인지할 수 없었을 것이다.
메모리 일관성 문제를 방지하기 위해, ACPI 명세에서는, 버스 마스터 중재기(145)가 디스에이블될 것을 주문한다. 버스 마스터 중재기(145)를 디스에이블시키는 것은 중재기 디스에이블(ARB_DIS) 비트를 세트시킴으로써 달성된다. 이는, 버스 마스터 중재기(145)가 임의의 버스 마스터 제어기(USB 호스트 제어기 포함) 또는 디바이스들에게 버스를 허여하는 것을 방지한다. 그러나, ARB_DIS 비트를 세트시키는 것은, 자신의 프레임 리스트들을 판독하기 위한 USB 호스트 제어기(120)의 능력을 방해할 것이다. 전술한 바와 같이, USB 호스트 제어기(120)는 메모리(110)에 대한 버스 마스터 액세스를 빈번하게 발생시킨다(예를 들면, 1 밀리초 마다).
본 발명의 일실시예에서, 버스 마스터 디바이스에 의해 사용되는 메모리(110) 부분은 캐시불가능으로 설정되며, BM_STS 비트는 버스 마스터 디바이스(USB 호스트 제어기(120))에 의해 행해지는 임의의 버스 마스터 액세스에 대해 세트되지 않는다. 이로 인해, OS가 이 캐시불가능 버스 마스터 디바이스로부터의 임의의 버스 마스터 활동을 무시하게 될 것이며, 이는 프로세서(102)를 C3 상태에 두기 위한 OS 정책에 영향을 미치지 않을 것이다. 예를 들면, USB 호스트 제어기(120)가 캐시불가능 메모리(110)로의 기록을 위해 버스 마스터 기록 동작을 수행할 때, 걱정할 캐시 일관성 문제가 존재하지 않는다. USB 호스트 제어기(120)가 캐시불가능 메모리(110)로부터의 판독을 위해 버스 마스터 판독 동작을 수행하는 경우, 메모리 일관성 문제가 존재하지 않는다. 이에 따라, 프로세서(102)는 USB 호스트 제어기(120)에 의한 임의의 버스 액세스 동안 버스를 스누핑할 필요가 없으며, 이에 따라 저전력 C3 상태에 놓일 수 있게 된다.
이 유형의 구성을 최적화하기 위해, MCU(105)는 "캐시불가능" 버스 마스터 디바이스(USB 호스트 제어기(120))로부터의 임의의 버스 마스터 액세스에 대해 프로세서(102)에게 스누프 사이클을 송출하지 않을 필요가 있다. 이러한 종류의 메모리 타이핑(typing)을 수행하기 위한 많은 방법들이 존재한다. 예를 들면, 어떤 메모리 부분이 캐시불가능한지를 식별하는 MCU로 메모리 속성 레지스터들이 프로그래밍될 수 있으며, 혹은 버스 마스터 디바이스로부터의 개별적인 신호가 이를 버스 사이클 동작의 발신자로서 식별할 수도 있다.
또한, "캐시불가능" 버스 마스터 디바이스(USB 호스트 제어기(120))가 더 이상 캐시 일관성 문제를 발생시키지 않기 때문에, MCU(110)는 프로세서(102)에 대해 더 이상 스누프 사이클들을 발생시키지 않으며, "캐시불가능" 버스 마스터 디바이스는, ARB_DIS 비트가 세트될 때(이는 통상적으로 강제적으로 모든 버스 마스터 디바이스를 동작하지 않게 할 것이다) 동작하도록 허용될 수 있다. 이는 오직 "캐시불가능" 버스 마스터 디바이스들에만 적용되고, 일관성 문제를 발생시킬 수 있는 그 밖의 다른 모든 마스터 디바이스들은 ARB_DIS 비트가 세트될 때 디스에이블될 필요가 있음에 유의한다.
도 2는 본 발명의 일실시예에 따른 연속 기입 캐시가능 메모리를 갖는 컴퓨터 시스템의 일례를 나타낸 블럭도이다. 메모리(210)는, 버스 마스터 디바이스(이 경우, USB 호스트 제어기(220))에 의해 이용되는 메모리에 대한 연속 기입 캐시가능한 것으로 설정되며, BM_STS 비트는 이 "연속 기입 캐시가능" 버스 마스터 디바이스로부터의 버스 마스터 기록 동작에 대해서만 세트되지만, 이 "연속 기입 캐시가능" 버스 마스터 디바이스로부터의 버스 마스터 판독 동작 동안에는 세트되지 않는다. 이로 인해, 버스 마스터 기록 동작이 존재할 때 캐시(203) 및 메모리(210)가 서로 일관성 있게 된다. 캐시(203)가 프로세서 캐시로서 예시되지만, 이 기술은 그 밖의 다른 캐시 구현에도 또한 적용될 수 있다.
이 유형의 구성을 최적화하기 위해, MCU(210)는, 이 특정 "연속 기입 캐시가능" 버스 마스터 디바이스(USB 호스트 제어기(220))로부터의 임의의 버스 마스터 판독 동작을 위해 프로세서(203)에 대해 스누프 사이클을 전송하지 않는다. 이러한 종류의 메모리 타이핑을 수행하기 위한 많은 방법들이 존재한다. 예를 들면, 어떤 메모리 부분이 연속 기입 캐시가능한지를 식별하는 MCU로 메모리 속성 레지스터들이 프로그래밍될 수 있으며, 혹은 버스 마스터로부터의 개별적인 신호가 이를 버스 사이클 동작의 발신자로서 식별할 수도 있다.
또한, "연속 기입 캐시가능" 버스 마스터 디바이스가 메모리 판독 사이클에 대해 더 이상 캐시 일관성 문제를 발생시키지 않고, MCU(210)가 이 "연속 기입 캐시가능" 버스 마스터 디바이스로부터의 버스 마스터 판독 동작에 대해 프로세서(203)에 스누프 사이클을 더 이상 발생시키지 않기 때문에, "연속 기입 캐시가능" 버스 마스터 디바이스는, ARB_DIS 비트가 세트될 때(이는 통상적으로 강제적으로 모든 버스 마스터 디바이스들을 동작하지 않게 할 것이다) 버스 마스터 판독 동작을 수행하도록 허용될 수 있다. 이 "연속 기입 캐시가능" 버스 마스터 디바이스는, ARB_DIS 비트가 세트될 때 버스 마스터 기록 사이클을 생성하는 것을 방지할 것이 여전히 요구되지만, 버스 마스터 판독 동작은 계속될 수 있다. 이는 "연속 기입 캐시가능" 버스 마스터 디바이스들에만 적용되며, 일관성 문제를 발생시킬 수 있는 그 밖의 다른 모든 마스터 디바이스들은 ARB_DIS 비트가 세트될 때 디스에이블될 필요가 있음에 유의한다.
본 발명의 여러 방법들의 동작은, 디지털 처리 시스템 내의 처리 유닛에 의해 구현될 수 있으며, 이는 일련의 컴퓨터 프로그램 명령들을 실행한다. 이 동작들은 전력 관리의 기능을 수행하는 데에 전용되는 보조 프로세서를 갖는 하드웨어 회로를 포함할 수 있다. 이 동작들은 메모리 내에 저장된 명령들을 포함하는 애플리케이션 소프트웨어를 이용하여 수행될 수 있으며, 이 메모리는 기계 판독가능 저장 매체인 것으로 간주될 수 있다. 상기 메모리는 대량 저장 장치와 같은, 랜덤 액세스 메모리, 판독 전용 메모리, 영구(persistent) 저장 메모리, 혹은 이들 장치들의 임의의 결합일 수 있다. 일련의 명령의 실행으로 인해 처리 유닛이 본 발명에 따른 동작을 수행할 수 있게 된다. 상기 명령들은 네트워크 접속을 통해 저장 장치 또는 하나 이상의 그 밖의 다른 디지털 처리 시스템(예를 들면, 서버 컴퓨터 시스템)으로부터 컴퓨터의 메모리 내에 로드될 수 있다. 이 명령들은 몇몇 저장 장치들(예를 들면, 가상 메모리와 같은 하드 디스크 및 DRAM)에 동시에 저장될 수 있다. 따라서, 이들 명령의 실행은 처리 유닛에 의해 직접 수행될 수 있다.
그 밖의 다른 경우, 명령들은 직접 수행될 수 없거나 혹은 처리 유닛에 의해 직접 실행될 수 없을 수 있다. 이들 상황하에서, 이 실행은, 이 명령들을 해석하는 해석기를 프로세서가 실행시키도록 하거나, 수신된 명령들을 프로세서에 의해 직접 실행될 수 있는 명령들로 변환하는 명령을 프로세서가 실행시키도록 함으로써 수행될 수 있다. 다른 실시예에서, 하드 와이어형 회로가, 본 발명을 구현하기 위한 소프트웨어 명령들 대신에, 혹은 이들과 결합하여 사용될 수 있다. 이에 따라, 본 발명은 하드웨어 회로 및 소프트웨어의 임의의 특정 결합으로 제한되지 않으며, 또한 컴퓨터 또는 디지털 처리 시스템에 의해 실행되는 명령들에 대한 임의의 특정 소스로도 제한되지 않는다.
본 발명은 특정 예시적인 실시예들을 참조하여 기술되었지만, 특허청구범위에 제시된 바와 같은 본 발명의 더 넓은 의미의 정신 및 범주로부터 벗어나지 않고 이들 실시예들에 여러 변경들 및 수정들이 실시될 수 있음은 명백하다. 따라서, 명세서 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다.

Claims (18)

  1. 버스 마스터 디바이스에 의해 사용되는 메모리를 연속 기입 캐시 가능한(write-through-cacheable) 것으로 설정하는 단계 - 상기 메모리와 상기 버스 마스터 디바이스는 컴퓨터 시스템 내에 있음 - 와;
    상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 판독 동작들을 수행하는 동안 버스 마스터 상태(BM_STS) 비트를 세트하지 않는 단계와;
    상기 컴퓨터 시스템 내의 프로세서를 저전력 상태로 두는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 기입 동작들을 수행하는 동안 상기 BM_STS 비트를 세트하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서, 상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 기입 동작들을 수행하는 동안 상기 프로세서는 상기 저전력 상태에 놓이지 않는 방법.
  4. 제2항에 있어서, 상기 저전력 상태는 C3 상태인 방법.
  5. 제1항에 있어서, 상기 메모리는, 상기 버스 마스터 디바이스에 의해 수행되는 어떠한 버스 마스터 판독 동작들 동안에도 상기 프로세서에 대해 스누프 사이클들을 발생시키지 않는 메모리 서브시스템에 결합되는 방법.
  6. 제5항에 있어서, 상기 버스 마스터 디바이스는 ARB_DIS 비트가 세트될 때 버스 마스터 판독 동작들을 발생시키도록 허용되는 방법.
  7. 시스템에 의해 실행 가능하고, 상기 시스템에 의해 실행될 때, 상기 시스템으로 하여금,
    버스 마스터 디바이스에 의해 사용되는 메모리를 연속 기입 캐시 가능한 것으로 설정하는 단계 - 상기 메모리와 상기 버스 마스터 디바이스는 컴퓨터 시스템 내에 있음 - 와;
    상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 판독 동작들을 수행하는 동안 버스 마스터 상태(BM_STS) 비트를 세트하지 않는 단계와;
    상기 컴퓨터 시스템 내의 프로세서를 저전력 상태로 두는 단계
    를 포함하는 방법을 수행하게 하는 명령들의 시퀀스들이 저장되어 있는 컴퓨터 판독 가능 매체.
  8. 제7항에 있어서, 상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 기입 동작들을 수행하는 동안 상기 BM_STS 비트를 세트하는 단계를 더 포함하는 컴 퓨터 판독 가능 매체.
  9. 제7항에 있어서, 상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 기입 동작들을 수행하는 동안 상기 프로세서는 상기 저전력 상태에 놓이지 않는 컴퓨터 판독 가능 매체.
  10. 제7항에 있어서, 상기 저전력 상태는 C3 상태인 컴퓨터 판독 가능 매체.
  11. 제7항에 있어서, 상기 메모리는, 상기 버스 마스터 디바이스에 의해 수행되는 어떠한 버스 마스터 판독 액세스들 동안에도 상기 프로세서에 대해 스누프 사이클들을 발생시키지 않는 메모리 서브시스템에 결합되는 컴퓨터 판독 가능 매체.
  12. 제11항에 있어서, 상기 버스 마스터 디바이스는 ARB_DIS 비트가 세트될 때 버스 마스터 판독 동작들을 발생시키도록 허용되는 컴퓨터 판독 가능 매체.
  13. 연속 기입 캐시 가능한 것으로 설정된 메모리;
    상기 메모리에 결합된 버스 마스터 디바이스; 및
    상기 메모리 및 상기 버스 마스터 디바이스에 결합된 프로세서
    를 포함하고,
    버스 마스터 상태(BM_STS) 비트를 세트하지 않고 상기 프로세서가 저전력 상 태에 있는 동안 상기 버스 마스터 디바이스는 메모리 판독 동작들을 수행하도록 허용되는 시스템.
  14. 제13항에 있어서, 상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 기입 동작들을 수행하는 동안 상기 프로세서는 상기 저전력 상태에 놓이지 않는 시스템.
  15. 제13항에 있어서, 상기 버스 마스터 디바이스가 상기 메모리에 대해 메모리 기입 동작들을 수행하는 동안 상기 BM_STS 비트는 세트되는 시스템.
  16. 제13항에 있어서, 상기 저전력 상태는 C3 상태인 시스템.
  17. 제13항에 있어서, 상기 메모리에 결합된 메모리 서브시스템을 더 포함하고, 상기 메모리 서브시스템은 상기 버스 마스터 디바이스에 의해 수행되는 어떠한 버스 마스터 판독 동작들 동안에도 상기 프로세서에 대해 스누프 사이클들을 발생시키지 않는 시스템.
  18. 제17항에 있어서, 상기 버스 마스터 디바이스는 ARB_DIS 비트가 세트될 때 버스 마스터 판독 동작들을 발생시키도록 허용되는 시스템.
KR1020067021404A 2002-02-27 2003-02-25 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법 KR20060122982A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/085,307 2002-02-27
US10/085,307 US20030163745A1 (en) 2002-02-27 2002-02-27 Method to reduce power in a computer system with bus master devices

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020047013414A Division KR100667999B1 (ko) 2002-02-27 2003-02-25 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법

Publications (1)

Publication Number Publication Date
KR20060122982A true KR20060122982A (ko) 2006-11-30

Family

ID=27753600

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020047013414A KR100667999B1 (ko) 2002-02-27 2003-02-25 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법
KR1020067021404A KR20060122982A (ko) 2002-02-27 2003-02-25 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020047013414A KR100667999B1 (ko) 2002-02-27 2003-02-25 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법

Country Status (8)

Country Link
US (1) US20030163745A1 (ko)
KR (2) KR100667999B1 (ko)
CN (1) CN100351743C (ko)
AU (1) AU2003217741A1 (ko)
DE (1) DE10392351T5 (ko)
GB (1) GB2403570B (ko)
TW (1) TWI281607B (ko)
WO (1) WO2003073253A2 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636815B1 (en) * 2003-04-09 2009-12-22 Klaiber Alexander C System and method for handling direct memory accesses
US8751753B1 (en) 2003-04-09 2014-06-10 Guillermo J. Rozas Coherence de-coupling buffer
US20040250035A1 (en) * 2003-06-06 2004-12-09 Atkinson Lee W. Method and apparatus for affecting computer system
US7930572B2 (en) * 2003-12-24 2011-04-19 Texas Instruments Incorporated Method and apparatus for reducing memory current leakage a mobile device
EP1548547A1 (en) * 2003-12-24 2005-06-29 Texas Instruments Incorporated Method and apparatus for reducing memory current leakage in a mobile device
US7272741B2 (en) * 2004-06-02 2007-09-18 Intel Corporation Hardware coordination of power management activities
US7315952B2 (en) * 2004-06-02 2008-01-01 Intel Corporation Power state coordination between devices sharing power-managed resources
US7971002B1 (en) 2005-04-07 2011-06-28 Guillermo Rozas Maintaining instruction coherency in a translation-based computer system architecture
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) * 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
KR100656353B1 (ko) 2005-07-12 2006-12-11 한국전자통신연구원 메모리 전력 소모를 줄이는 방법
US20070050549A1 (en) * 2005-08-31 2007-03-01 Verdun Gary J Method and system for managing cacheability of data blocks to improve processor power management
TWI286705B (en) * 2005-09-06 2007-09-11 Via Tech Inc Power management method of central processing unit
US7750912B2 (en) * 2005-11-23 2010-07-06 Advanced Micro Devices, Inc. Integrating display controller into low power processor
CN100397301C (zh) * 2006-01-09 2008-06-25 威盛电子股份有限公司 中央处理器的省电方法
JP5283128B2 (ja) * 2009-12-16 2013-09-04 学校法人早稲田大学 プロセッサによって実行可能なコードの生成方法、記憶領域の管理方法及びコード生成プログラム
US9921633B2 (en) 2014-08-22 2018-03-20 Intel Corporation Power aware job scheduler and manager for a data processing system

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414827A (en) * 1991-12-19 1995-05-09 Opti, Inc. Automatic cache flush
US5325503A (en) * 1992-02-21 1994-06-28 Compaq Computer Corporation Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line
EP0585117A1 (en) * 1992-08-26 1994-03-02 Cyrix Corporation Method and system for maintaining cache coherency in a multi-master computer system
US5551006A (en) * 1993-09-30 1996-08-27 Intel Corporation Low cost writethrough cache coherency apparatus and method for computer systems without a cache supporting bus
US6052789A (en) * 1994-03-02 2000-04-18 Packard Bell Nec, Inc. Power management architecture for a reconfigurable write-back cache
US5802305A (en) * 1996-05-17 1998-09-01 Microsoft Corporation System for remotely waking a sleeping computer in power down state by comparing incoming packet to the list of packets storing on network interface card
US6205507B1 (en) * 1996-06-13 2001-03-20 Compaq Computer Corporation Memory coherency in a processor-to-bus cycle in a multi-processor system
AU6140098A (en) * 1997-03-31 1998-10-22 Intel Corporation Automatic transitioning between acpi c3 and c2 states
US6128703A (en) * 1997-09-05 2000-10-03 Integrated Device Technology, Inc. Method and apparatus for memory prefetch operation of volatile non-coherent data
US5983354A (en) * 1997-12-03 1999-11-09 Intel Corporation Method and apparatus for indication when a bus master is communicating with memory
KR100626359B1 (ko) * 1999-09-10 2006-09-20 삼성전자주식회사 컴퓨터 시스템의 전원 관리 방법
US6658532B1 (en) * 1999-12-15 2003-12-02 Intel Corporation Cache flushing
US6633987B2 (en) * 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system

Also Published As

Publication number Publication date
GB0420421D0 (en) 2004-10-20
TWI281607B (en) 2007-05-21
AU2003217741A1 (en) 2003-09-09
WO2003073253A2 (en) 2003-09-04
GB2403570A (en) 2005-01-05
KR100667999B1 (ko) 2007-01-15
CN100351743C (zh) 2007-11-28
WO2003073253A3 (en) 2004-02-19
CN1639671A (zh) 2005-07-13
US20030163745A1 (en) 2003-08-28
KR20040086459A (ko) 2004-10-08
TW200402619A (en) 2004-02-16
DE10392351T5 (de) 2005-03-10
GB2403570B (en) 2006-11-22

Similar Documents

Publication Publication Date Title
KR100667999B1 (ko) 버스 마스터 디바이스로 컴퓨터 시스템에서의 전력을감소시키는 방법
US5426765A (en) Multiprocessor cache abitration
US7380063B2 (en) Cache flushing
US5890200A (en) Method and apparatus for maintaining cache coherency in a computer system with a highly pipelined bus and multiple conflicting snoop requests
US5335335A (en) Multiprocessor cache snoop access protocol wherein snoop means performs snooping operations after host bus cycle completion and delays subsequent host bus cycles until snooping operations are completed
US20180232332A1 (en) Pcie traffic tracking hardware in a unified virtual memory system
US5530932A (en) Cache coherent multiprocessing computer system with reduced power operating features
US6463529B1 (en) Processor based system with system wide reset and partial system reset capabilities
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US10133677B2 (en) Opportunistic migration of memory pages in a unified virtual memory system
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
US5163143A (en) Enhanced locked bus cycle control in a cache memory computer system
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
JP2004280269A (ja) 情報処理装置、プログラム、記録媒体、及び制御回路
JP2007004802A (ja) データ処理装置におけるスヌープ・オペレーションの管理
EP0681241A1 (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US20020129210A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers that uses dynamic hardware/software controls
JPH0322056A (ja) マルチ・バス・マイクロコンピユータ・システム
CN115087961B (zh) 用于相干及非相干存储器请求的仲裁方案
US5913225A (en) Cache flush mechanism for a secondary cache memory
EP0425843A2 (en) Enhanced locked bus cycle control in a cache memory computer system
US6546468B2 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers performing directory update
US20020129209A1 (en) Multiprocessor system snoop scheduling mechanism for limited bandwidth snoopers
JPH02307123A (ja) 計算機

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application