KR101564520B1 - 정보 처리 장치 및 스케줄링 방법 - Google Patents

정보 처리 장치 및 스케줄링 방법 Download PDF

Info

Publication number
KR101564520B1
KR101564520B1 KR1020147004632A KR20147004632A KR101564520B1 KR 101564520 B1 KR101564520 B1 KR 101564520B1 KR 1020147004632 A KR1020147004632 A KR 1020147004632A KR 20147004632 A KR20147004632 A KR 20147004632A KR 101564520 B1 KR101564520 B1 KR 101564520B1
Authority
KR
South Korea
Prior art keywords
memory
unit
dma
bus
access request
Prior art date
Application number
KR1020147004632A
Other languages
English (en)
Other versions
KR20140051348A (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 KR20140051348A publication Critical patent/KR20140051348A/ko
Application granted granted Critical
Publication of KR101564520B1 publication Critical patent/KR101564520B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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)
  • Bus Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리(10)에 대한 메모리 액세스 요구를 발행하는 적어도 1개의 액세스부(3)와, 상기 액세스부(3)로부터 발행된 메모리 액세스 요구를 조정하는 조정부(4)와, 상기 조정부(4)에 의한 조정 결과에 따른 메모리 액세스 요구의 발행원의 액세스부(3)에 대하여, 상기 메모리(10)에 대한 메모리 액세스를 실행시키는 관리부(8)와, 적어도 1개의 캐시 메모리(22)를 통하여 상기 메모리(10)에 대한 액세스를 행하는 처리부(2)와, 상기 액세스부(3)에 의해 발행된 상기 메모리 액세스 요구에 관한 처리를, 미리 설정된 보류 시간 동안에 보류하는 한편, 상기 보류 시간이 만료되기 전에 상기 처리부(2)에서의 상기 적어도 1개의 캐시 메모리(22)의 전원이 오프가 된 경우에, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 타이밍 조정부(5)를 구비한다.

Description

정보 처리 장치 및 스케줄링 방법{INFORMATION PROCESSING APPARATUS AND SCHEDULING METHOD}
본건은, 메모리 액세스 요구를 발행하는 디바이스를 구비하는 정보 처리 장치 및 메모리 액세스 요구에 관한 처리의 스케줄링 방법에 관한 것이다.
서버나 퍼스널 컴퓨터(PC; Personal Computer) 등의 소위 컴퓨터 시스템에서는, DMA(Direct Memory Access)이라고 하는 시스템 버스의 사용 방법이 있다. DMA이란, 통상은 CPU(Central Processing Unit)가 행하는 시스템 버스의 사용을, CPU 이외의 기기(버스 마스터)에도 허용하는 것이다. 또한, 복수의 CPU(또는 CPU 코어)를 구비하는 멀티 프로세서 시스템에 있어서는, 복수의 CPU가 서로 시스템 버스의 사용을 서로 융통하도록 설계된다.
또한, 시스템 버스의 사용이 허용된 기기(CPU를 포함)가 복수 존재하는 시스템을 멀티 마스터 시스템이라고 하고, 멀티 마스터 시스템에 사용되는 버스를 멀티 마스터 버스라고 한다.
멀티마스터 시스템에서는, 어떤 타이밍에서 버스를 사용할 수 있는 것은 CPU를 포함하는 하나의 기기이다. 따라서, 멀티 마스터 시스템은, 어떤 타이밍에서 복수의 기기로부터 DMA 요구가 발행되면, 발행된 DMA 요구를 조정하여 어느 하나의 기기에 대하여 DMA 허가를 부여하는 조정 회로(버스 아비터)를 구비한다.
도 14는, DMA 요구를 발행하는 기기를 구비하는 컴퓨터 시스템(멀티 마스터 시스템)(100)의 구성예를 도시하는 도면이며, 도 15는, 컴퓨터 시스템(100)에서의 DMA 요구의 조정을 행하는 버스 아비터(400)의 구성예를 도시하는 도면이다.
도 14에 도시한 예에서는, 컴퓨터 시스템(100)에서 DMA 요인이 되는 디바이스는, USB(Universal Serial Bus)나 SATA(Serial Advanced Technology Attachment)의 인터페이스에 대응한, 도시하지 않은 HDD(Hard Disk Drive)이다. 컴퓨터 시스템(100)은 이들의 디바이스를 시스템 버스(600)에 접속하기 위한 컨트롤러로서, USB의 호스트 컨트롤러(UHCI; Universal Host Controller Interface)이나, SATA의 호스트 컨트롤러(AHCI; Advanced Host Controller Interface)를 구비한다.
이들의 호스트 컨트롤러는, PCI 디바이스(300-1 내지 300-3)로서 구성되고, 시스템 버스(600)인 PCI 버스에 접속되어 있다. PCI 디바이스(300-1 내지 300-3)로부터 발생하는 DMA 요구는, PCI 버스 사양에 준거한 버스 아비터(400)에 의해 조정되고, 버스 아비터(820)에 대한 메인 메모리(1000)에의 액세스 요구(DMA 요구)로서 발행된다.
구체적으로는, 도 14에 도시한 바와 같이, DMA 요구의 발행원으로서 기능하는 PCI 디바이스(복수의 버스 마스터 디바이스)(300-1 내지 300-3)는, 버스 아비터(400)에 대하여 파선 화살표(A 내지 C)로 나타내는 DMA 요구(메인 메모리(1000)에 대한 액세스 요구)를 발행한다.
버스 아비터(400)에서는, 도 15에 도시한 바와 같이, 동기화 처리부(410)에 의해 DMA 요구(A 내지 C)의 입력 타이밍이 조정된다. 또한, DMA 요구(A 내지 C)를 받은 조정 처리부(420)는, 버스 브리지(700)를 통하여 상위의 버스(호스트 버스(810))측의 버스 아비터(820)에 대하여 DMA 요구(D)를 발행하고, 호스트 버스(810) 사용의 허가를 요구한다. 버스 아비터(820)에서는, 호스트 버스(810)의 사용 상태에 따라서 DMA 요구에 대하여 호스트 버스(810)를 사용시킬지 여부가 판단된다. 버스 아비터(820)에 의해 호스트 버스(810)의 사용 허가가 떨어지고 DMA 허가 신호(E)가 송신되면, 버스 아비터(400)에서는, 조정 처리부(420)에 의해 DMA 요구가 조정(선택)되고, 동기화 처리부(430)에서 출력 타이밍이 조정된다. 그리고, 버스 아비터(400)로부터, 선택된(접수된) DMA 요구에 대응하는 PCI 디바이스(300-1 내지 300-3)에, DMA 허가(출력 신호; 도 14 및 도 15의 A′ 내지 C′ 참조)가 출력된다. 이 출력 신호(A′ 내지 C′)를 받은 기기(PCI 디바이스(300-1 내지 300-3) 중 어느 하나)는 호스트 버스(810)의 사용권을 획득하게 된다.
여기서, 호스트 버스(810)의 사용은, 버스 마스터에 의해, 액세스하고 싶은 메모리 어드레스와 함께, 그 액세스의 종류(판독·기입 등)를 나타내는 버스 커맨드가 송출됨으로써 행해진다. 즉, 버스 마스터에 의한 호스트 버스(810)의 사용은, CPU가 호스트 버스(810)를 사용하여 기기의 데이터를 판독 기입하는 동작과 동일하게 행해진다.
또한, PCI 버스 사양이 널리 퍼지는 과정에서, DMA 동작과 시스템의 전체 성능의 관계에 관한 연구와 계몽이 진행되고, 시스템에 있어서, DMA 요구를 잘게 나누어 행하는 것은 시스템 전체의 효율을 저하시킨다는 것이 알려져 있다. 즉, 버스 마스터가 실행하는 DMA에 의해, 메인 메모리(1000)에 대하여 판독 기입되는 데이터량이 증가하고 있다(예를 들어, 수K 바이트 내지 수M 바이트 정도). 이로 인해, 컴퓨터 시스템(100)에 있어서, DMA 요구에 대하여 잘게 나누어(예를 들어 수 바이트마다) 액세스 허가를 부여하면, DMA 요구의 발행 및 허가가 반복 행하여지므로, 시스템 전체의 처리 효율을 저하시키게 된다.
이러한 이유 등에 의해, 버스 아비터(400)에서는, 보다 빠르게 DMA 요구에 대응하도록 설계가 행해졌다.
그런데, 최근의 컴퓨터 시스템의 처리 속도의 고속화에 수반하여, CPU에는 대용량의 캐시 메모리(Cache Memory; 이하, CM이라고 함)(220)가 탑재되는 경우가 있다. 이러한 CPU를 탑재하는 멀티 마스터 시스템은, 버스 스누프 기능을 구비하는 것이 요구된다.
CM(220)에는, 데이터와 함께, 그 데이터가 메인 메모리(1000)의 어디에 있는지라고 하는 어드레스 정보가 한 쌍이 되어서 저장된다. 버스 상의 각 기기가 호스트 버스(810)를 사용하여 메인 메모리(1000)에 기입 동작을 행할 때, 메인 메모리(1000)와 CM(220)의 사이의 코히어런스를 유지하므로, 메모리 컨트롤러(900)를 통하여 메인 메모리(1000)에 기입된 데이터는, CPU의 CM(220)에도 반영시킬 필요가 있다.
버스 스누프는, 호스트 버스(810) 상의 각 기기가 버스 동작을 감시하고, 호스트 버스(810) 상을 전송되는 메모리 어드레스(1000)에 대해서, 자신이 갖는 CM(220) 중에 상당하는 어드레스 정보가 존재하는지 여부를 검출하는 것이다. 호스트 버스(810) 상을 전송되는 메모리 어드레스에 상당하는 어드레스 정보가 자신이 갖는 CM(220)으로부터 검출되면, 호스트 버스(810) 상의 각 기기는, 당해 어드레스 정보에 따라서 CM(220)의 갱신 등의 동작을 행한다. 이와 같이, 각 기기는, 호스트 버스(810) 상에 흐르고 있는 메모리 어드레스와, CM(220)에 있는 모든 어드레스 정보를, 모든 액세스 동작 때마다 비교하게 된다.
이어서, CM(220)을 구비한 CPU에 대한 전력 제어에 대하여 설명한다.
CPU에서 실행되는 타스크는 OS(Operating System)가 관리하고 있으며, 실행하는 타스크가 없는 경우(아이들 상태인 경우), OS는, CPU를 정지 또는 전원 절단으로 함으로써, CPU에서의 불필요한 전력 소비를 억제한다. 예를 들어, CPU가 라이트 백 방식의 CM(220)을 구비할 경우, OS에 의한 전원 절단에 앞서, CPU는, CM(220)에 저장되어 있는 데이터를 메인 메모리(1000)에 반영하는 처리를 행한다.
이 CPU에 의한 반영 처리는, CM(220)으로부터 메인 메모리(1000)의 내용과 상이가 있는 부분을 검색하고, 상이가 있는 부분의 데이터를 메인 메모리(1000)에 쓰기 시작함으로써 행해진다. 이 반영 처리에는, CM(220)의 크기나 메모리의 성능에 따른 시간을 필요로 하게 된다. 최근에는, 6M 바이트 정도의 용량의 CM(220)을 구비하는 CPU도 있고, CPU에 의한 반영 처리에 의해 CM(220)의 내용을 모두 메인 메모리(1000)에 쓰기 시작하기 위해서는 수 밀리 초 걸리는 경우도 있다.
또한, 이러한 전력 제어를 행하는 컴퓨터 시스템에는, CPU의 전원을 내린 후, 새로운 타스크의 실행이 행해지는 경우에 발생하는 인터럽트(IRQ; Interrupt Request)를 트리거로서, 자동으로 CPU 및 CM(220)의 전원을 투입하는 하드웨어가 구비된다.
이어서, 도 16을 참조하면서 CPU에 대한 전력 제어의 순서에 대하여 설명한다.
도 16은, OS의 아이들 상태에서의 CM(220)을 구비한 CPU에 대한 전력 제어의 일례를 설명하는 흐름도이다.
우선, OS에 의해, CPU(CPU 코어(210))마다 구비된 전원 절단 타이머의 초기화 및 카운트가 개시됨과 함께(스텝 S1), CPU마다 할당된 시스템(또는 타스크)이 아이들중인지 여부가 판단된다(스텝 S2).
시스템이 아이들중이 아니면, 즉 실행중이면(스텝 S2의 No 루트), 시스템이 아이들중이 될 때까지, 예를 들어 소정 시간마다 스텝 S1 및 S2의 처리가 실행된다. 한편, 시스템이 아이들중이면(스텝 S2의 "예" 루트), OS에 의해, 아이들중인 시스템(또는 타스크)에 대응하는 CPU(코어(210))마다 전원 절단 타이머가 만료되었는지 여부가 판단된다(스텝 S3).
전원 절단 타이머가 만료되지 않은 경우에는(스텝 S3의 No 루트), 스텝 S2의 처리로 이행한다. 한편, 전원 절단 타이머가 만료된 경우에는(스텝 S3의 "예" 루트), 당해 CPU가 구비하는 CM(220)의 내용이 메인 메모리(1000)에 토출된다(스텝 S4). 그리고, OS에 의해, CM(220)을 포함하는 CPU의 전원이 절단된다(스텝 S5).
계속해서, IRQ를 검출하는 하드웨어에 의해, IRQ가 발생했다고 판단되면(스텝 S6의 "예" 루트), CPU 및 CM(220)의 전원이 투입되고(스텝 S7), CPU에 의한 시스템에 관한 처리 및 버스 스누프 처리가 행해진다. 또한, 스텝 S7에서 CPU에의 전원 투입이 행해지면, 스텝 S1의 처리로 이행한다. 또한, IRQ가 발생할 때까지는, CPU 및 CM(220)의 전원 절단이 유지된다(스텝 S6 및 스텝 S6의 No 루트).
이러한 처리에 의해 CPU의 전력 제어가 행해진다.
또한, 관련된 기술로서, 데이터 전송을 효율적으로 행함과 함께, 버스를 독점하지 않고 DMA 방식으로의 데이터 전송을 가능하게 하기 위해서, DMA 유닛 제어부가, CPU로부터 ON 상태의 DMA 전송 요구 신호가 공급되어 있는 동안에, DMA 동작 인에이블 신호의 상태에 따라서 시스템 버스의 사용권을 CPU에 대하여 요구하거나, 시스템 버스의 사용권을 CPU에 개방하는 기술이 있다.
또한, 관련된 다른 기술로서, 슬립중인 CPU와 메모리에 대하여 전송 제어부의 명령에 의해 클록 생성부로부터 DMA 전송을 행하는 타이밍에서 고속의 클록을 필요한 기간만 공급하여, 통틀어 DMA를 행하게 하는 클록 제어를 행함으로써, 저전력화를 도모하는 것이 있다.
일본 특허 공개 제2000-90045호 공보 일본 특허 공개 제2005-190332호 공보
CM이 대용량화함에 따라서 버스 스누프 처리에서 CPU에 의해 비교되는 어드레스 정보도 증대한다.
CM은, CPU와 메인 메모리의 사이의 데이터의 교환을 고속으로 행하기 위하여 설치되는 것이므로, CPU가, 데이터가 호스트 버스 상을 흐를 때마다 버스 스누프 처리에 의해 어드레스 정보를 하나하나 비교하는 것은, 처리 시간 증대의 관점에서 바람직하지 않다. 따라서, 예를 들어 비교기를 필요한 수만큼 구비하여 동시에 비교 동작을 실행시키는 것도 생각할 수 있지만, 비교기의 수에 따른 전력을 소비하게 된다. 이 소비 전력은, CM의 용량이나 캐쉬 방식 등에 따라 바뀌지만, CM의 대용량화나 고속화가 진행된 최근에는 CPU가 소비하는 전력의 40% 정도를 CM이 사용하는 예도 있다.
그런데, 최근 들어, CPU가 전력 제어를 위한 기능을 구비하는 경우가 있지만, CM의 전력 소비를 억제하는 것은 어렵다. CPU로서는 동작을 정지하여 전력 소비를 저감시킬 수 있는 경우에도, 다른 버스 마스터가 호스트 버스를 사용하고 있는 한, 버스 스누프를 위하여 적어도 CM의 부분을 가동 상태로 해 둘 필요가 있기 때문이다.
CM의 소비 전력을 삭감시키기 위해서는, CM의 내용을 비우고나서 캐쉬 동작을 정지시키게 된다. 그러나, 상술한 바와 같이, CM을 비우는 부담은 크고, 특히 라이트 백 방식의 CM을 사용하고 있는 경우, 상응한 시간과 전력을 필요로 한다. 또한, CM이 동작하고 있지 않은 상태(전원 절단의 상태)에서는 CPU를 동작시켜도 정상적인 성능을 내기가 어려워, CPU의 동작을 재개하기 위해서는 CM도 가동 상태에 복귀시키게 된다.
이와 같이, CM에서의 정지·가동 상태간의 상태 천이에도 시간과 전력을 사용하므로, 천이의 빈도가 상승하면 소비 전력은 오히려 증가하는 경우도 있다. 천이의 빈도는, DMA 요구나 인터럽트 처리를 요구하는 디바이스에 따라서 변하고, 또한 메모리 성능에 의해서도 변화한다. 또한, 디바이스는, DMA 요구나 인터럽트 처리의 요구가 접수될 때까지의 시간이 길어지면, 성능이 저하하거나, 최악의 경우에는 동작을 계속할 수 없게 되는 경우도 있다. 따라서, 종래, 컴퓨터 시스템(호스트 버스 등)은, 각 디바이스로부터의 인터럽트 요구에 대해서는 가능한 한 빠르게 응답하고, 처리 속도의 저하를 억제하도록 설계되는 경우가 많아서 전력 소비의 삭감이 진행되지 않는다라고 하는 문제가 있었다.
이상과 같이, 멀티 마스터 시스템에서 DMA가 발생한 경우, CPU에 의해 버스 스누프 처리가 행해져서 CPU(CM)의 소비 전력이 증가한다는 문제가 있다.
또한, OS에 의해 CPU의 전원이 절단되어 있는 상태에서 DMA가 발생한 경우에는, CPU(CM)의 전원이 투입되어 CM이 정지 상태로부터 가동 상태로 천이하는 결과, 처리 시간 및 소비 전력이 증가한다는 문제가 있다.
상술한 점에 감안하여, 본건의 목적 중 하나는, 정보 처리 장치에 있어서, DMA와 같은 메모리 액세스가 발생한 경우의 소비 전력을 저감시키는 것이다.
또한, 상기 목적에 한하지 않고, 후술하는 발명을 실시하기 위한 형태에 나타내는 각 구성에 의해 유도되는 작용 효과이며, 종래의 기술에 의해서는 얻어지지 않는 작용 효과를 발휘하는 것도 본 발명의 다른 목적의 하나로서 자리매김할 수 있다.
본건의 정보 처리 장치는, 메모리에 대한 메모리 액세스 요구를 발행하는 적어도 1개의 액세스부와, 상기 액세스부에서 발행된 메모리 액세스 요구를 조정하는 조정부와, 상기 조정부에 의한 조정 결과에 따른 메모리 액세스 요구의 발행원의 액세스부에 대하여, 상기 메모리에 대한 메모리 액세스를 실행시키는 관리부와, 적어도 1개의 캐시 메모리를 통하여 상기 메모리에 대한 액세스를 행하는 처리부와, 상기 액세스부에 의해 발행된 상기 메모리 액세스 요구에 관한 처리를, 미리 설정된 보류 시간 동안에 보류하는 한편, 상기 보류 시간이 만료되기 전에 상기 처리부에서의 상기 적어도 1개의 캐시 메모리의 전원이 오프가 된 경우에, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 타이밍 조정부를 구비하는 것이다.
또한, 본건의 스케줄링 방법은, 메모리에 대한 메모리 액세스 요구를 발행하는 적어도 1개의 액세스부와, 상기 액세스부에서 발행된 메모리 액세스 요구를 조정하는 조정부와, 상기 조정부에 의한 조정 결과에 따른 메모리 액세스 요구의 발행원의 액세스부에 대하여, 상기 메모리에 대한 메모리 액세스를 실행시키는 관리부와, 적어도 1개의 캐시 메모리를 통하여 상기 메모리에 대한 액세스를 행하는 처리부를 구비하는 정보 처리 장치에서의 상기 메모리 액세스 요구의 스케줄링 방법으로서, 상기 액세스부에 의해 발행된 상기 메모리 액세스 요구에 관한 처리를, 미리 설정된 보류 시간 동안에 보류하는 한편, 상기 보류 시간이 만료되기 전에 상기 처리부에서의 상기 적어도 1개의 캐시 메모리의 전원이 오프가 된 경우에, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 것이다.
개시된 기술에 의하면, 정보 처리 장치에 있어서, DMA와 같은 메모리 액세스가 발생한 경우의 소비 전력을 저감시킬 수 있다.
도 1은 일실시 형태로서의 정보 처리 장치의 구성예를 도시하는 도면이다.
도 2는 본 실시 형태에 관한 정보 처리 장치에서의 버스 아비터의 구성예를 도시하는 도면이다.
도 3은 본 실시 형태에 관한 TA의 보류 시간의 설정 처리의 일례를 설명하는 도면이다.
도 4는 본 실시 형태에 관한 정보 처리 장치에서 DMA 요구가 발생하고나서 DMA 요구가 관리부에 송신될 때까지의 처리의 일례를 설명하는 흐름도이다.
도 5는 본 실시 형태에 관한 정보 처리 장치에서 DMA 요구가 발생하고나서 DMA가 실행될 때까지의 동작을 설명하는 타임차트이다.
도 6은 본 실시 형태의 제1 변형예로서의 정보 처리 장치의 구성을 도시하는 도면이다.
도 7은 본 실시 형태의 제1 변형예에 관한 TA의 보류 시간의 설정 처리를 설명하는 도면이다.
도 8은 본 실시 형태의 제1 변형예에 관한 TA의 보류 처리를 설명하는 도면이다.
도 9는 본 실시 형태의 제2 변형예로서의 정보 처리 장치의 구성을 도시하는 도면이다.
도 10은 본 실시 형태의 제2 변형예에 관한 TA의 보류 시간의 설정 처리를 설명하는 도면이다.
도 11은 본 실시 형태의 제2 변형예에 관한 정보 처리 장치에서 DMA 요구가 발생하고나서 DMA 요구가 관리부에 송신될 때까지의 처리를 설명하는 흐름도이다.
도 12는 본 실시 형태에 관한 정보 처리 장치의 시스템에의 적용예를 도시하는 도면이다.
도 13은 본 실시 형태에 관한 정보 처리 장치의 하드웨어 구성예를 도시하는 도면이다.
도 14는 DMA 요구를 발행하는 기기를 구비하는 컴퓨터 시스템의 구성예를 도시하는 도면이다.
도 15는 멀티 마스터 시스템에서의 DMA 요구의 조정를 행하는 버스 아비터의 구성예를 도시하는 도면이다.
도 16은 CM을 구비한 CPU에 대한 전력 제어의 일례를 설명하는 흐름도이다.
이하, 도면을 참조하여 실시 형태를 설명한다.
〔1〕일실시 형태
〔1-1〕정보 처리 장치의 구성예
도 1은, 일실시 형태로서의 정보 처리 장치(1)의 구성예를 도시하는 도면이며, 도 2는, 정보 처리 장치(1)에서의 버스 아비터(4)의 구성예를 도시하는 도면이다.
정보 처리 장치(1)는, 서버나 PC 등의 컴퓨터 시스템(멀티 마스터 시스템)이며, CPU 코어(21) 및 CM(22)을 구비하는 적어도 1개(도 1에 도시한 예에서는 1개)의 CPU(처리부)(2)와, DMA를 실행 가능한 PCI 디바이스(3-1 내지 3-3)를 구비한다. 또한, 정보 처리 장치(1)는, 버스 아비터(4)와, 타이밍 조정기(Timing Adjuster; 이하, TA라고 함)(5-1 내지 5-3)와, 시스템 버스(6)와, 버스 브리지(7)와, 호스트 버스(81) 및 버스 아비터(82)를 구비하는 관리부(8)와, 메모리 컨트롤러(9)와, 메인 메모리(10)를 구비한다.
여기서, 본 실시 형태에 관한 정보 처리 장치(1)에서는, CPU(2)에 의해, 호스트 버스(81) 상을 통과하는 어드레스 정보 및 데이터에 대하여 버스 스누프 처리가 행해진다.
또한, 정보 처리 장치(1)는, CPU(2)에 의해 실행되는 OS에 의해, 도 16에 도시한 바와 같은 CPU(2)에 대한 전력 제어가 행해진다. 즉, 정보 처리 장치(1)에 있어서는, 시스템(또는 타스크)이 아이들중인 경우에는, OS에 의해 CM(22)을 포함하는 CPU(2)의 전원이 절단된다.
CPU 코어(21)는 다양한 제어나 연산을 행하는 처리 장치이며, PCI 디바이스(3-1 내지 3-3)나 도시하지 않은 ROM(Read Only Memory) 등에 저장된 프로그램을 실행함으로써 다양한 기능을 실현한다.
CM(22)은, CPU 코어(21)와 메인 메모리(10)의 사이에서 전송되는 데이터 및 그 데이터의 어드레스 정보를 유지하는 것이며, CPU(2)는, 적어도 1개의 CM(22)을 통하여 메인 메모리(10)에 대한 액세스를 행한다. 또한, 본 실시 형태에 관한 CM(22)은 라이트 백 방식을 채용하는 것으로 한다.
메인 메모리(주기억 장치; 메모리)(10)는, 다양한 데이터나 프로그램을 일시적으로 저장하는 기억 장치이며, CPU(2)가 프로그램을 실행할 때, 데이터나 프로그램을 일시적으로 저장·전개하여 사용한다. 또한, 메인 메모리(10)로서는, 예를 들어 RAM(Random Access Memory) 등의 휘발성 메모리를 들 수 있다.
메모리 컨트롤러(9)는, CPU(2)나 버스 마스터로서의 PCI 디바이스(3-1 내지 3-3)로부터 메인 메모리(10)에의 액세스 등을 제어하는 것이다.
PCI 디바이스(3-1 내지 3-3)는, 각각 시스템 버스(6)에 접속된 UHCI나 AHCI 등의 호스트 컨트롤러이며, USB나 SATA 등의 인터페이스에 의해, 도시하지 않은 HDD 등의 기억 장치 등이 접속된다. 이 HDD 등은, 데이터나 프로그램을 유지하여 CPU(2)에 의해 액세스 됨과 함께, 메인 메모리(10)에 대한 DMA 요인으로서 구성된다.
또한, PCI 디바이스(3-1 내지 3-3)(이하의 설명에서 PCI 디바이스(3-1 내지 3-3)를 구별하지 않을 경우에는 간단히 부호3으로 나타냄)는, 메인 메모리(10)에 대한 DMA 요구(메모리 액세스 요구)(A 내지 C)를 발행하는, 버스 마스터(DMA 요구의 발행원; 액세스부)로서 기능한다.
버스 아비터(조정부)(4)는, PCI 디바이스(3)로부터 발행된 DMA 요구(A 내지 C)를 조정하는 것이며, 도 2에 예시한 바와 같이, 상술한 버스 아비터(400)와 마찬가지로, 동기화 처리부(41 및 43)와 조정 처리부(42)를 구비한다.
또한, 버스 아비터(4)는, 후술하는 TA(5-1 내지 5-3)에 대응한 레지스터(44-1 내지 44-3)를 구비한다.
동기화 처리부(41)는, PCI 디바이스(3-1 내지 3-3)로부터 발행된 DMA 요구(A 내지 C)의 입력 타이밍을 조정하는 것이며, 동기화 처리부(43)는, 버스 아비터(4)에서의 아비트레이션(조정)의 결과를 나타내는 DMA 허가(메모리 액세스 허가; 출력 신호)(A′ 내지 C′)의 출력 타이밍을 조정하는 것이다.
조정 처리부(42)는, 동기화 처리부(41)에서 입력 타이밍이 조정된 DMA 요구(A 내지 C)에 대하여 조정를 행하여 어느 한쪽의 DMA 요구를 접수하는 동시에, 접수한 DMA 요구에 대응하는 출력 신호(A′ 내지 C′ 중 어느 하나)를 출력한다. 이 출력 신호(A′ 내지 C′)가 입력된 PCI 디바이스(3)는, 호스트 버스(81)의 사용권을 획득하여 DMA를 실행하게 된다.
또한, 조정 처리부(42)는, 입력된 DMA 요구(A 내지 C)에 대하여 미리 설정된 조정 조건에 따른 조정를 행한다. 조정 조건으로서는, 예를 들어 DMA 요구를 발행한 기기간에서의 우선 순위, 선착순(선수 득승), 확률 분산 등의 조건을 들 수 있다.
또한, 조정 처리부(42)는, DMA 요구(A 내지 C)가 입력되면, 버스 브리지(7)를 통하여 관리부(8)(상위 버스인 호스트 버스(81)측의 버스 아비터(82))에 대하여 DMA 요구(D)를 발행한다. 조정 처리부(42)는, 관리부(8)로부터 DMA 요구(D)에 대한 DMA 허가 신호(E)를 수신하면, 입력된 DMA 요구(A 내지 C)에 관한 조정 처리를 실행한다.
호스트 버스(81)는, CPU(2), 도시하지 않은 다른 디바이스, 메모리 컨트롤러(9) 및 버스 브리지(7)의 사이에서 데이터 등의 전송을 행하는 버스이며, CPU 코어(21)는, 호스트 버스(81)를 통하여 CM(22)이나 메모리 컨트롤러(9)에의 액세스를 행한다. 또한, 호스트 버스(81)는, DMA에 의해 PCI 디바이스(3)와 메인 메모리(10)(메모리 컨트롤러(9))의 사이에서 송수신되는 어드레스 정보나 데이터를 전송한다.
버스 아비터(82)는, CPU(2)나 도시하지 않은 다른 디바이스에 의한 호스트 버스(81)에의 액세스를 조정하는 것이다. 또한, 버스 아비터(82)는, 버스 아비터(4)로부터 DMA 요구(D)가 입력되면, 호스트 버스(81)의 사용 상태에 따라서 DMA 허가 신호(E)를 송신한다.
구체적으로는, 관리부(8)(버스 아비터(82))는, 버스 아비터(4)로부터 DMA 요구(D)가 입력되면, 호스트 버스(81)의 사용 상태에 따라서 DMA 발행원에 호스트 버스(81)를 사용시킬지 여부, 즉 메인 메모리(10)에의 액세스를 허가할지 여부를 판단한다. 그리고, 관리부(8)는, DMA 요구(D)에 대해서, 호스트 버스(81)를 사용한 메인 메모리(10)에의 액세스를 허가할 경우, DMA 허가 신호(E)를 송신(유효화; 어서트)한다. 또한, 관리부(8)가 호스트 버스(81)의 사용 허가를 부여하는 경우로서는, 예를 들어 호스트 버스(81)가 CPU(2)나 다른 디바이스에 사용되지 않은 경우 등을 들 수 있다.
DMA 허가 신호(E)에 의해 관리부(8)에 메인 메모리(10)에의 액세스를 허가 받은 버스 아비터(4)는, 조정 결과에 따른 PCI 디바이스(3)에 대하여 DMA 허가(출력 신호)를 발행하고, 출력 신호를 받은 PCI 디바이스(3)는, 발행된 출력 신호에 따라서 메인 메모리(10)에 대한 메모리 액세스를 실행한다.
상술한 동작에 의해, 관리부(8)는, 버스 아비터(4)에 의한 조정 결과에 따른 DMA 요구의 발행원의 PCI 디바이스(3)에 대하여 메인 메모리(10)에 대한 DMA(메모리 액세스)를 실행시킨다.
또한, 관리부(8) 및 버스 아비터(4)에 의해, 호스트 버스(81)의 사용 허가를 부여 받은 PCI 디바이스(3)는, 호스트 버스(81)의 사용에 의해 기입 액세스를 행할 경우에는, 기입해야 할 데이터를 시스템 버스(6)에 송출한다. 한편, 호스트 버스(81)의 사용에 의해 판독 액세스를 행할 경우에는, PCI 디바이스(3)는, 판독된 데이터가 메인 메모리(10)로부터 시스템 버스(6) 상에 보내져 오는 것을 기다려서 그 데이터를 수신한다.
시스템 버스(6)는, PCI 디바이스(3)로부터 발행된 DMA 요구(A 내지 C)에 관한 액세스처의 어드레스나 판독 기입되는 데이터 등이 전송되는 버스이며, 예를 들어 PCI 버스이다.
버스 브리지(7)는, 시스템 버스(6)(및 버스 아비터(4))와, 호스트 버스(81)(및 버스 아비터(82))의 사이에서 서로 버스 사이클을 주고받는 디바이스이다.
또한, 버스 브리지(7)는, OS에 의한 전원 제어에 의해 CPU(2)의 전원이 절단된 것을 검출한다.
구체적으로는, 버스 브리지(7)는, CPU(2)의 전원을 관리하는 도시하지 않은 전원 회로로부터, CPU(2) 중 적어도 CM(22)의 전원 상태를 취득하도록(또는 통지되도록) 구성된다. 즉, 버스 브리지(7)는, OS에 의한 CPU(2)의 전력 제어에 의해 CPU(2)에 공급되는 전력이 절단되고, 적어도 1개의 CM(22)이 전원 절단으로 된 경우, 전원 회로로부터, 적어도 1개의 CM(22)이 전원 절단의 상태인 것을 취득할(또는 통지될) 수 있다.
TA(타이밍 조정부)(5-1 내지 5-3)(이하의 설명에서 TA(5-1 내지 5-3)를 구별하지 않을 경우에는 간단히 부호5로 나타냄)는, PCI 디바이스(3)에 의해 발행된 DMA 요구(A 내지 C)에 관한 처리를, 미리 설정된 보류 시간 동안에 보류하는 것이다.
또한, 도 1 및 도 2에 도시한 TA(5-1 내지 5-3)는 각각 PCI 디바이스(3)마다 구비된다. 또한, 도 2에 도시한 바와 같이, TA(5-1 내지 5-3)는, PCI 디바이스(3)에 대응하여 DMA의 보류 시간을 지정하는 타이머(5-1a 내지 5-3a)를 구비한다.
또한, 본 실시 형태에서의 정보 처리 장치(1)는, 1개의 타이머를 구비하는 TA(5)를 복수 구비하고 있지만, 이것에 한정되지 않고, 복수의 타이머(5-1a 내지 5-3a)를 구비하는 1개의 TA(5)를 구비해도 된다. 또한, 도 2에 있어서는, TA(5)를 1개의 블록으로 도시하고 있다.
여기서, DMA 요구에 관한 처리란, 도 1 및 도 2에 도시한 예에서는, PCI 디바이스(3)로부터 버스 아비터(4)에의 DMA 요구(A 내지 C)의 발행을 말한다. 즉, 도 1 및 도 2에 도시한 예에서는, TA(5)는, 각각 대응하는 PCI 디바이스(3)로부터 발행되는 DMA 요구(A 내지 C)를, 미리 설정된 보류 시간 동안에 보류한다.
〔1-2〕TA의 설명
상술한 바와 같이, CPU(2)는, PCI 디바이스(3)에 의한 DMA 동작이 발생하면, CM(22)의 버스 스누프 처리를 행한다. 바꿔 말하면, PCI 디바이스에 의한 DMA 동작이 CPU(2)의 전원이 절단되어 있는 동안에 행해지면, CM(22)의 버스 스누프 처리는 불필요해진다. 한번 정지한 CPU(2)(및 CM(22))는, 호스트 버스(81)의 사용 요구에 응답할 뿐이면, 버스 스누프 동작을 행할 필요가 없고, CM(22)의 기억 영역은, 전력 절단에 의해 비어있을 것이기 때문이다.
여기서, PCI 디바이스(3)는, CPU(2)가 전원 절단이 되는 타이밍에 맞춰서 DMA 요구(A 내지 C)를 발행하는 것이 바람직하지만, DMA 요구(A 내지 C)가 발행되는 타이밍은, 각 주변 기기나 CPU(2)에 따라서 불규칙하게 결정되므로, PCI 디바이스(3)에 의해 제어하는 것이 어렵다.
따라서, 본 실시 형태에서의 정보 처리 장치(1)는, CPU(2)가 전원 절단이 되는 타이밍을 기다리기 위한 TA(5)를 버스 아비터(4)의 전단에 구비하고, TA(5)에 있어서, PCI 디바이스(3)로부터 발행되는 DMA 요구(A 내지 C)의 발행 타이밍을 조절한다. 그리고, TA(5)에 의해, DMA 요구(A 내지 C)를 가능한 한 지연시킴으로써, 지연된 DMA 요구(A 내지 C)의 버스 아비터(4)에의 입력이 CPU(2)의 전원 절단의 타이밍에 들어맞을 확률을 올릴 수 있다.
이에 의해, 본 실시 형태에서의 정보 처리 장치(1)는, CPU(2)의 전원 절단의 타이밍이 될 때까지, TA(5)에 의해 DMA 요구를 기다리게 함으로써, CPU(2)에 의한 버스 스누프 동작을 억제하여 정보 처리 장치(1) 전체로서의 소비 전력을 삭감시킬 수 있다.
여기서, DMA 요구(A 내지 C)를 TA(5)에서 어느 정도의 시간을 보류시킬 것인가 하는 문제가 있다. 발행된 DMA 요구(A 내지 C)가 보류되어도 되는 최대 보류 시간(지연 한계 시간)은 주변 기기(PCI 디바이스(3))나 CPU(2)에 따라 상이하다. 그러나, 주변 기기는, OS에 의한 CPU(2)의 전력 제어에 있어서, 적어도 CPU(2)가 전원 절단의 상태로부터 전원이 공급될 때까지의 상태 천이에 필요로 하는 시간은 기다리게 되어도 파탄하지 않도록 설계되어 있을 것이다.
따라서, TA(5)에 설정되는 보류 시간은, 대응하는 DMA 요구의 발행원의 PCI 디바이스(3)에 있어서, 지연이 허용되는 지연 한계 시간(최대 보류 시간)에 따라서 결정되는 것이 바람직하다.
이와 같이, 주변 기기의 DMA 요구를 지연시킬 수 있게 된 요인의 하나로서, PCI 버스가 표준화된 적이 있다. PCI 버스에서는, 사용 효율을 올리기 위해서, 어느 정도의 영역에 대하여 일괄하여 액세스하는 버스트 액세스가 권장되고 있다. 버스트 액세스를 행하기 위해서, 각 디바이스에서는, 버스트 액세스로 전송되는 데이터량에 따른 용량의 버퍼를 갖는 것이 요구되어 왔다. 그리고, 디바이스의 버퍼가 대용량화된 결과, 비교적 긴 대기 시간에 견딜 수 있는 디바이스가 보급되고 있다. 디바이스에 따라 차이는 있지만, DMA 요구의 지연이 허용되는 지연 한계 시간으로서는 적어도 100μs 정도의 여유는 있다고 생각된다.
본 실시 형태에 있어서는, 미리 각 PCI 디바이스(3)에 최대 보류 시간이 등록되어 있고, TA(5-1 내지 5-3)에는, 대응하는 PCI 디바이스(3)의 최대 보류 시간이 설정된다.
또한, 정보 처리 장치(1)는, CPU(2)에 대하여 일정 시간마다 인터럽트(IRQ)가 발생하도록 구성되어도 된다. 인터럽트가 발생하는 정보 처리 장치(1)에서는, 시스템이 아이들 상태인 경우에는, 인터럽트 처리가 실행된 직후에 전원 절단에 들어간다. CPU(2)의 가동 타이밍은 OS가 관리하므로, OS는 다음의 인터럽트 처리가 실행될 때까지의 시간을 알 수 있다. 따라서, TA(5)에 설정되는 보류 시간은, PCI 디바이스(3)로부터 DMA 요구가 발행되고나서 다음의 인터럽트 처리, 즉 CPU(2)의 전원 절단이 행해질 때까지의 시간이 설정되어도 된다.
또한, 정보 처리 장치(1)의 시스템에서 요구되는 성능에 따라서는, 각 TA(5)에 설정되는 보류 시간은 고정(일정)으로 해도 된다.
또한, 각 PCI 디바이스(3)에 대해서, DMA 요구에 관한 처리가 얼마나 시간 보류되었는지, 및 보류된 결과 에러가 발생했는지 등을 감시하는 기구를 설치하고, 감시 결과에 기초하여 경험적으로 TA(5)에 설정되는 보류 시간이 결정되어도 된다. 또한, DMA 요구에 관한 처리가 보류된 결과 에러가 발생한 경우에는, 에러 회복을 행하는 것이 바람직하지만, 에러 처리나 회복 처리에 대해서는, 이미 알려진 다양한 방법에 의해 행하는 것이 가능하고, 그 상세한 설명은 생략한다.
상술한 바와 같이, 본 실시 형태에서의 TA(5)는, DMA 요구(A 내지 C)가 입력되었을 때, CPU(2)(CM(22))가 통전 상태이면, 당해 DMA 요구에 관한 처리를 보류하는 한편, 보류 시간이 만료되기 전에 CPU(2)에서의 적어도 1개의 CM(22)의 전원이 오프가 된 경우에, DMA 요구에 관한 처리의 보류를 해제한다.
또한, TA(5)는, 보류 시간이 만료된 경우, 즉, DMA 요구를 보류하고 있는 시간이 최대 보류 시간을 초과한 경우에도, DMA 요구에 관한 처리의 보류를 해제한다.
또한, TA(5)는, 보류하고 있었던 PCI 디바이스(3)로부터의 DMA 요구의 보류를 해제하면, 당해 DMA 요구를 버스 아비터(4)에 입력한다.
또한, TA(5)는, CPU(2)(CM(22))가 전원 절단의 상태가 된 것을, 상술한 버스 브리지(7)로부터 취득함으로써(또는 통지됨으로써) 검지한다.
또한, DMA 요구(A 내지 C)가 발행되었을 때, 이미 CPU(2)(CM(22))가 전원 절단의 상태인 경우, 즉 적어도 1개의 CM(22)의 전원이 오프인 동안에는, TA(5)는, DMA 요구에 관한 처리의 보류를 억제하여 당해 DMA 요구를 버스 아비터(4)에 입력한다. 즉, 정보 처리 장치(1)는 DMA 요구에 대하여 즉시 응답을 행한다.
또한, TA(5)에서 복수의 DMA 요구에 관한 처리가 보류되어 있는 상태에서 CM(22)의 전원이 오프가 된 경우, TA(5)는, 보류 시간이 만료되지 않은 DMA 요구 중 남은 보류 시간이 적은 DMA 요구부터 순서대로, DMA 요구에 관한 처리의 보류를 해제하도록 구성되어도 된다. 또한, TA(5)에서 보류되어 있는 DMA 요구의 보류 시간이 만료된 경우에는, TA(5)는, 보류 시간이 만료된 DMA 요구부터 순서대로, DMA 요구에 관한 처리의 보류를 해제하는 것이 바람직하다. 이에 의해, TA(5)에서 보류되어 있는 DMA 요구에 관한 처리가 과대한 지연을 방지할 수 있고, DMA 요구의 발행원에서 처리를 계속할 수 없게 되는 등의, PCI 디바이스(3)에 끼치는 영향을 억제할 수 있다.
이어서, 도 3을 참조하면서, TA(5)의 보류 시간의 설정 처리에 대하여 설명한다.
도 3은, TA(5)의 보류 시간의 설정 처리의 일례를 설명하는 도면이다.
각 PCI 디바이스(3)에는, PCI 사양으로 관리되어 있는 벤더 ID(VID; Vendor ID)와, 각 벤더에서 관리되어 있는 디바이스 ID(DID; Device ID)가 설정되어 있다. 예를 들어, 도 3에 도시한 바와 같이, PCI 디바이스(3-1 및 3-2)로서의 UHCI에는 "VID=8086, DID=1C26"이 설정되어 있는 한편, PCI 디바이스(3-3)로서의 AHCI에는 "VID=8086, DID=1C03"이 설정되어 있다.
본 실시 형태에 있어서는, OS 등에 의해 이들 VID 및 DID가 사용되어 PCI 디바이스(3)의 식별이 행해짐으로써, 이종 디바이스간의 중복을 피하여 동종의 디바이스마다 특성의 관리가 행해진다.
도 3에 도시한 보류 시간 데이터 베이스(DB)(11)는, 예를 들어 PCI 디바이스(3)에 접속된 HDD나 도시하지 않은 메모리 등의 기억 영역에 설정되고, 보류 시간 테이블(12)을 구비한다.
보류 시간 테이블(12)은, VID 및 DID의 세트마다 최대 보류 시간이 대응지어진 테이블이다. 도 3에 예시한 보류 시간 테이블(12)에는, "VID=8086, DID=1C26"의 디바이스(UHCI)에 지연 한계 시간(최대 보류 시간) "1ms"가 설정되고, "VID=8086, DID=1C03"의 디바이스(AHCI)에 지연 한계 시간 "500μs"가 설정되어 있다. 이들의 지연 한계 시간은 디바이스마다 요구되는 것이며, OS에 의해 미리 PCI 디바이스(3)로부터 판독되어 수집된다.
OS는, 정보 처리 장치(1)가 기동되었을 때나, PCI 디바이스(3)가 접속되었을 때(주변 기기의 접속 구성이 변경되었을 때) 등에, 정보 처리 장치(1)에 실장된 각 디바이스의 특성(최대 보류 시간)을 각 디바이스의 VID 및 DID에 기초하여 보류 시간 테이블(12)로부터 취득한다. 또한, OS는, 보류 시간 테이블(12)로부터 취득한 디바이스마다의 최대 보류 시간을, 각 디바이스에 대응한 레지스터(44-1 내지 44-3)(이하의 설명에서 레지스터(44-1 내지 44-3)를 구별하지 않을 경우에는 간단히 부호44로 나타냄)에 대하여 설정한다.
버스 아비터(4)의 각 레지스터(44)는, 설정된 최대 보류 시간(보류 시간)을 유지한다. 그리고, TA(5-1 내지 5-3)는, 대응하는 레지스터(44-1 내지 44-3)로부터 보류 시간을 취득하여, 취득한 보류 시간에 기초하여 DMA 요구에 관한 처리의 보류를 행한다.
이와 같이, 버스 아비터(4)가 구비하는 레지스터(44)는, DMA 요구의 발행 타이밍을 조정하기 위한 보류 시간을, PCI 버스 사양에 기초하여 설정되어 유지함으로써, TA(5)에 설정되는 보류 시간을 결정한다. 또한, PCI의 버스 조정은 중앙 집중 관리 방식이므로, 본 실시 형태에 있어서는, DMA 요구 발행의 타이밍 조정도 중앙 리소스인 버스 아비터(4)에서 집중 관리시키는 방식을 채용하고 있다. 이에 의해, OS는, PCI 디바이스(3)마다의 보류 시간을, 버스 아비터(4)의 각 레지스터(44)에 기입하는 것만으로 용이하게 설정할 수 있다. 또한, TA(5-1 내지 5-3)는, 상술한 바와 같이 하여 설정된 보류 시간을 사용하여 타이머(5-1a 내지 5-3a)를 개별로 제어하고, DMA 요구에 관한 처리의 보류 시간을 유연하게 관리할 수 있다.
또한, TA(5)에 설정되는 보류 시간은, 상술한 방법에 한정되지 않고, 다른 방법에 의해 설정되어도 된다.
〔1-3〕동작예
이어서, 상술한 바와 같이 구성된 본 실시 형태에 관한 정보 처리 장치(1)에서의 DMA 요구(A 내지 C)가 발생한 경우의 처리의 일례를 설명한다.
먼저, 도 4를 참조하면서, 발행된 DMA 요구(A 내지 C)에 관한 처리의 TA(5)에 의한 보류 순서에 대하여 설명한다.
도 4는, 본 실시 형태에 관한 정보 처리 장치(1)에서의 DMA 요구(A 내지 C)가 발생하고나서 DMA 요구(D)가 관리부(8)에 송신될 때까지의 처리의 일례를 설명하는 흐름도이다.
또한, 이하, OS에 의해, 미리 보류 시간 테이블(12)로부터 PCI 디바이스(3)마다의 최대 보류 시간이 취득되고, 버스 아비터(4)의 레지스터(44)에 설정되어 있는 것으로서 설명한다.
정보 처리 장치(1)에 있어서, PCI 디바이스(3)로부터 DMA 요구(A 내지 C)가 발행되어 TA(5)에 입력되면(스텝 S11의 "예" 루트), TA(5)에 의해, 적어도 1개의 CM(22)의 전원이 오프인지 여부가 판단된다(스텝 S12).
적어도 1개의 CM(22)의 전원이 오프라고 판단된 경우(스텝 S12의 "예" 루트), TA(5)에 의해, 입력된 DMA 요구(A 내지 C)가 버스 아비터(4)에 출력되고, 버스 아비터(4)에 의해, 당해 DMA 요구의 조정이 행해진다(스텝 S17).
한편, 스텝 S12에 있어서, CM(22)의 전원이 온이라고 판단된 경우(스텝 S12의 No 루트), TA(5)에 의해, DMA 요구의 발행원(3)에 대응하는 타이머(5-1a 내지 5-3a)가 초기화되고, 입력된 DMA 요구(A 내지 C)의 버스 아비터(4)에의 출력이 보류된다(스텝 S13).
스텝 S13의 처리가 실행되면, TA(5)에 의해, CM(22)의 전원이 오프로 천이되었는지 여부가 판단된다(스텝 S14). CM(22)의 전원이 오프로 천이되었다고 판단된 경우(스텝 S14의 "예" 루트), TA(5)에 의해, DMA 요구(A 내지 C)에 관한 처리의 보류가 해제되고(스텝 S16), 스텝 S17의 처리로 이행하여 DMA 요구(A 내지 C)에 관한 처리가 실행된다.
한편, 스텝 S14에 있어서, 어느 쪽의 CM(22)의 전원도 온의 상태라고 판단된 경우(스텝 S14의 No 루트), TA(5)에 의해, 타이머(5-1a 내지 5-3a)의 값에 기초하여 보류 시간이 만료되었는지 여부가 판단된다(스텝 S15).
보류 시간이 만료되어 있지 않다고 판단된 경우(스텝 S15의 No 루트), 스텝 S14의 처리로 이행한다. 한편, 보류 시간이 만료되었다고 판단된 경우(스텝 S15의 "예" 루트), 스텝 S16의 처리로 이행한다.
계속해서, 도 5를 참조하면서, DMA 요구(A 내지 C)가 발생하고나서 DMA가 실행될 때까지의 동작을 설명한다.
도 5는, 본 실시 형태에 관한 정보 처리 장치(1)에서의 DMA 요구(A 내지 C)가 발생하고나서 PCI 디바이스(3)에 의해 DMA가 실행될 때까지의 동작을 설명하는 타임차트이다.
또한, 도 5에 있어서는, PCI 디바이스(3-1)를 디바이스 A로 표기하고, PCI 디바이스(3-2)를 디바이스 B로 표기하고 있다.
먼저, 타이밍T1에서, PCI 디바이스(3-1)로부터 TA(5-1)에 DMA 요구(A)가 발행된다. 타이밍 T1에서 CM(22)의 전원이 온이므로, TA(5-1)에서는, 타이머(5-1a)에 의해, 레지스터(44-1)에 설정된 보류 시간(최대 보류 시간)의 동안에 DMA 요구(A)에 관한 처리가 보류된다.
타이밍 T2에서, CM(22)의 전원이 오프로 천이되면, TA(5-1)에서는, 타이머(5-1a)에 의한 DMA 요구에 관한 처리의 보류가 해제되고, 타이밍 T3에서, 지연된 DMA 요구(이하, 지연 DMA 요구라고 함)(A)가 버스 아비터(4)에 출력된다.
지연 DMA 요구(A)가 입력된 버스 아비터(4)는, 타이밍 T4에서, 조정 처리부(42)에 의해, DMA 요구(D)를 버스 브리지(7)를 통하여 관리부(8)에 발행한다.
또한, 타이밍 T5에서, PCI 디바이스(3-2)로부터 TA(5-2)에 DMA 요구(B)가 발행된다. 타이밍 T5에서 CM(22)의 전원이 오프이므로, TA(5-2)에서는, 타이머(5-2a)에 의한 DMA 요구(B)에 관한 처리의 보류가 행해지지 않고, 타이밍 T6에서, 당해 DMA 요구(B)는 버스 아비터(4)에 출력된다.
DMA 요구(D)가 입력된 관리부(8)에서는, 버스 아비터(82)에 의해 호스트 버스(81)가 사용되지 않은 것이 확인되고, 타이밍 T7에서, DMA 허가 신호(E)가 어서트된다.
버스 아비터(4)에서는, DMA 허가 신호(E)가 어서트되면, 조정 처리부(42)에 의해, 입력되어 있는 DMA 요구(A 및 B)가 조정된다. 도 5에 도시한 예에서는, 버스 아비터(4)는, DMA 요구(A)를 선택하고(접수하고), 타이밍 T8에서, 출력 신호(DMA 허가; 도 5 중 "Grant"로 표기)(A′)를 PCI 디바이스(3-1)에 출력한다.
계속해서, 아비트레이션의 승자로서 출력 신호(A′)가 입력된 PCI 디바이스(3-1)에 의해, DMA에 의한 메모리 액세스가 실행되고, DMA가 완료되면, DMA 요구(A)가 철회된다(타이밍 T9). DMA 요구(A)가 철회되면, 버스 아비터(4)에서는, 조정 처리부(42)에 의해, 타이밍 T10에서 출력 신호(A′)의 발행이 정지됨과 함께, 대기중의 DMA 요구(B)가 선택되어(접수되어), 타이밍 T11에서 출력 신호(B′)가 PCI 디바이스(3-2)에 출력된다.
그리고, 출력 신호(B′)가 입력된 PCI 디바이스(3-2)에 의해 DMA가 실행되고, DMA가 완료되면, DMA 요구(B)가 철회된다(타이밍 T12). DMA 요구(B)가 철회되면, 버스 아비터(4)에서는, 조정 처리부(42)에 의해, 타이밍 T13에서 출력 신호(B′)의 발행이 정지된다.
또한, 입력되어 있는 DMA 요구가 모두 철회되므로, 버스 아비터(4)에서는, 타이밍 T14에서 DMA 요구(D)의 발행이 정지되고, 관리부(8)에서는, 타이밍 T15에서 DMA 허가 신호(E)의 발행이 정지된다.
또한, DMA 요구(D)는, DMA 요구(A 내지 C) 중 적어도 1개가 버스 아비터(4)에 입력되어 있는 동안에 버스 아비터(4)로부터 발행된다. 또한, DMA 허가 신호(E)는, DMA 요구(D)가 관리부(8)에 입력되어 있고, 또한, 호스트 버스(81)가 DMA를 위하여 개방 가능한 동안에 어서트된다.
이와 같이, 본 실시 형태에 관한 정보 처리 장치(1)에 의하면, TA(5)에 있어서, DMA 요구에 관한 처리를 보류하고, 적어도 1개의 CM(22)가 전원 절단의 상태가 되었을 때, DMA 요구의 발행원에 대하여 DMA의 허가를 부여함으로써, CPU(2)에 의한 버스 스누프 동작이 행해지지 않고 DMA가 실행된다. 예를 들어, 도 14에 도시한 정보 처리 장치(100)에 있어서, 도 5에 도시한 바와 같은 타이밍에서 DMA 요구(A 및 B)가 발생한 경우, DMA 요구(A)는 CPU(2)(CM(22))의 전원이 온일 때에 발행되어 있으므로, 적어도 DMA 요구(A)에 관한 DMA는, CPU(2)에 의한 버스 스누프 동작을 발생시키게 된다.
따라서, 본 실시 형태에 관한 정보 처리 장치(1)에 의하면, DMA가 행해질 때의 버스 스누프 동작에 관한 소비 전력을 억제할 수 있다. 또한, CPU(2)(CM(22))의 전원이 오프일 때에 DMA가 실행되므로, DMA를 위하여 CM(22)의 전원을 오프에서 온으로 천이시키지 않고 완료되어 CM(22)의 기동을 위한 소비 전력을 억제할 수 있다.
또한, 정보 처리 장치(1)에 의해 삭감할 수 있는 소비 전력은, 시스템의 가동 상태나 각종 디바이스의 요구 사양에 따라 상이하다. 예를 들어, OS의 인터럽트(IRQ)에 관한 인터벌 타이머의 주기와, PCI 디바이스(3)에 의한 DMA 요구(A 내지 C)의 발행의 주기가 일치하도록 시스템을 구성하면, CPU(2)(CM(22))가 전원 절단의 상태일 때에 DMA 요구가 발행되게 되므로, CM(22)의 기동이나 버스 스누프를 위한 소비 전력을 억제할 수 있다. 예를 들어, CM(22)의 소비 전력이 CPU(2) 전체의 소비 전력의 40%를 차지하는 경우에는, 아이들 상태의 CPU(2)에서의 소비 전력의 40%를 삭감할 수 있게 된다. 또한, 인터벌 타이머의 주기와 DMA 요구(A 내지 C)의 발행의 주기가 일치할 경우에는, DMA 요구의 보류 시간도 억제할 수 있어 DMA에 관한 처리 시간을 증대시키지 않고 완료된다.
또한, 본 실시 형태에 관한 TA(5)는, 보류 시간이 만료된 경우에, DMA 요구에 관한 처리의 보류를 해제하므로, 보류 시간 동안에 CM(22)의 전원이 오프가 되지 않은 경우에도, 정보 처리 장치(1)는 DMA 요구에 관한 처리를 확실하게 실행할 수 있다.
또한, TA(5)는, 적어도 1개의 CM(22)의 전원이 오프인 동안에는, PCI 디바이스(3)에 의해 발행된 DMA 요구에 관한 처리의 보류를 억제하므로, DMA 요구가 발생했을 때에 CM(22)의 전원이 오프인 경우에는, DMA에 관한 처리 시간을, 도 14에 도시한 정보 처리 장치(100)의 경우와 동일한 정도로 억제할 수 있다.
또한, TA(5)에 설정되는 보류 시간은, 복수의 PCI 디바이스(3)마다 설정되고, 각 보류 시간은 각각 대응하는 PCI 디바이스(3)마다 결정되는 최대 보류 시간이 된다. 이에 의해, PCI 디바이스(3)마다의 사양에 따른 적절한 보류 시간을 TA(5)에 설정할 수 있고, TA(5)에서 보류되어 있는 DMA 요구에 관한 처리의 과대한 지연을 방지할 수 있으므로, DMA 요구의 보류에 의해 발행원에 끼치는 영향을 억제할 수 있다.
〔1-4〕제1 변형예
상술한 정보 처리 장치(1)에 있어서는, TA(5)의 타이머(5-1a 내지 5-3a)는 버스 마스터로서의 PCI 디바이스(3)의 수에 대응한 수가 구비되어 있었지만, 이것에 한정되지 않고, PCI 디바이스(3)에 대하여 1개의 타이머가 구비되어도 된다.
도 6은, 본 실시 형태의 제1 변형예로서의 정보 처리 장치(1)의 구성을 도시하는 도면이며, 도 7은, 제1 변형예에 관한 TA(5)의 보류 시간의 설정 처리를 설명하는 도면이며, 도 8은, 제1 변형예에 관한 TA(5)의 보류 처리를 설명하는 도면이다.
또한, 도 6 및 도 7에 도시한 정보 처리 장치(1)에서 이미 설명한 부호와 동일한 부호는, 도 1 및 도 3에 도시한 정보 처리 장치(1)와 동일한 부분 또는 대략 동일한 부분을 도시하고 있으므로, 중복된 설명은 생략한다.
도 6 및 도 7에 도시한 바와 같이, 제1 변형예에 관한 정보 처리 장치(1)는 1개의 TA(5-4)를 구비하고, TA(5-4)는 PCI 디바이스(3-1 내지 3-3)에서 공용되는 타이머(5-4a)를 구비한다. 또한, 버스 아비터(4)는, TA(5-4)의 타이머(5-4a)에 대응한 1개의 레지스터(44-4)를 구비한다.
제1 변형예에 관한 TA(5-4)는, 복수의 PCI 디바이스(3)에 대하여 1개의 보류 시간을 설정받는다.
TA(5-4)는, 1개의 DMA 요구에 관한 처리의 보류를 행하고 있을 때, 다른 DMA 요구에 관한 처리의 보류를 행할 경우에는, 1개의 DMA 요구에서의 잔보류 시간을 사용하여 다른 DMA 요구에 관한 처리를 보류하도록 구성된다.
또한, 제1 변형예에 있어서, TA(5-4)의 보류 시간(레지스터(44-4))에는, PCI 디바이스(3)마다 결정되는 각각의 최대 보류 시간 중, 최소의 시간이 설정되는 것이 바람직하다. 예를 들어, 도 7에 도시한 바와 같이, 레지스터(44-4)에는, OS에 의해, PCI 디바이스(3-1 내지 3-3) 중 PCI 디바이스(3-3)에 설정되는 "500μs"가 설정된다.
이어서, TA(5-4)의 보류 처리를 도 8을 사용하여 설명한다.
또한, 도 8에 도시한 예에 있어서, DMA 요구(A 내지 C)에서의 타이밍(t1 내지 t3)은, 각 DMA 요구가 TA(5-4)에 입력된 타이밍을 나타내고, 각 DMA 요구(A 내지 C)가 각각 최대 보류 시간까지 발행되는 상태를 나타내고 있다. 즉, 도 8에서는, 보류 시간 테이블(12)의 설정값에 기초하여 DMA 요구(A 및 B)는 각각 타이밍(t1 및 t2)부터 "1ms"동안 발행되고, DMA 요구(C)는 타이밍t3부터 "500μs"동안 발행된다. 또한, 도 8에 도시한 예에 있어서는, CM(22)의 전원은 온의 상태이다.
TA(5-4)는, PCI 디바이스(3-1 내지 3-3)(디바이스(A 내지 C))로부터 각각 DMA 요구(A 내지 C)가 입력되면, 최초에 도래한 DMA 요구(A)가 입력되었을 때(타이밍 t1)부터 타이머(5-4a)에 의한 보류 시간의 카운트를 개시한다. TA(5-4)에는, 보류 시간의 카운트를 행하고 있는 동안에 DMA 요구(B 및 C)가 입력되지만, TA(5-4)는, 이들 DMA 요구(B 및 C)에 대해서도, 카운트중인 타이머(5-4a)에서의 남은 보류 시간을 사용하여 보류를 행한다.
그리고, 타이밍 t4가 될 때까지 CM(22)의 전원이 오프로 천이되지 않을 경우, 즉 타이머(5-4a)에 의한 보류 시간이 만료된 경우에는, TA(5-4)는, DMA 요구(A 내지 C)에 관한 처리의 보류를 해제하여 버스 아비터(4)에 출력한다.
이와 같이, 제1 변형예에 관한 정보 처리 장치(1)에 의하면, 상술한 일실시 형태에 관한 정보 처리 장치(1)와 동일한 효과를 발휘할 수 있는 것 외에, TA(5)(타이머(5-4a))를 1개 구비하는 것만으로 완료되므로, 회로 구성을 간소화할 수 있어 제조 비용 등을 억제할 수 있다.
또한, TA(5-4)에 의해, 최초에 도래한 DMA 요구에서의 남은 보류 시간을 사용하여 후발의 DMA 요구에 관한 처리가 보류됨과 함께, TA(5-4)에 설정되는 보류 시간은, PCI 디바이스(3)마다 결정되는 각각의 최대 보류 시간 중 최소 시간이다. 따라서, TA(5-4)에 복수의 DMA 요구가 입력되어도, TA(5)에서 보류되어 있는 DMA 요구에 관한 처리의 과대한 지연을 방지할 수 있고, DMA 요구의 보류에 의해 발행원에 끼치는 영향을 억제할 수 있다.
〔1-5〕제2 변형예
상술한 일실시 형태 및 제1 변형예에서의 정보 처리 장치(1)는, TA(5)를 PCI 디바이스(3)와 버스 아비터(4)의 사이에 구비했지만, 이것에 한정되지 않고, TA(5)를 버스 아비터(4)와 버스 브리지(7)의 사이에 구비해도 된다.
도 9는, 본 실시 형태의 제2 변형예로서의 정보 처리 장치(1)의 구성을 도시하는 도면이며, 도 10은, 제2 변형예에 관한 TA(5)의 보류 시간의 설정 처리를 설명하는 도면이며, 도 11은, 제2 변형예에 관한 정보 처리 장치(1)에서의 DMA 요구가 발생하고나서 DMA 요구(D)가 관리부(8)에 송신될 때까지의 처리를 설명하는 흐름도이다.
또한, 도 9 및 도 10에 도시한 정보 처리 장치(1)에서 이미 설명한 부호와 동일한 부호는, 도 1 및 도 3에 도시한 정보 처리 장치(1)와 동일한 부분 또는 대략 동일한 부분을 도시하고 있으므로, 중복된 설명은 생략한다.
도 9 및 도 10에 도시한 바와 같이, 제2 변형예에 관한 정보 처리 장치(1)는 1개의 TA(5-5)를 구비하고, TA(5-5)는 버스 아비터(4)에 대응한 1개의 타이머(5-5a)를 구비한다.
제2 변형예에 관한 TA(5-5)는, 버스 아비터(4)로부터 출력된 DMA 요구(D)의 발행을 보류한다. 즉, TA(5-5)는, 버스 아비터(4)에 의한 DMA 요구(D)의 관리부(8)에의 발행 처리를, DMA 요구에 관한 처리로서 소정의 보류 시간 동안 보류한다.
또한, 버스 아비터(4)는, TA(5-5)에 대응한 1개의 레지스터(44-5)를 구비한다.
제2 변형예에 있어서, TA(5-5)는, 제1 변형예와 마찬가지로, 복수의 PCI 디바이스(3)에 대하여 1개의 보류 시간을 설정받는다.
또한, 제2 변형예에 있어서도, TA(5-5)의 보류 시간(레지스터(44-5))에는, 제1 변형예와 마찬가지로, PCI 디바이스(3)마다 결정되는 각각의 최대 보류 시간 중 최소의 시간이 설정되는 것이 바람직하다.
이어서, 도 11을 참조하면서, 상술한 바와 같이 구성된 제2 변형예에 관한 정보 처리 장치(1)에서의 DMA 요구가 발생한 경우의 처리를 설명한다.
또한, 도 11에 도시한 처리에서 이미 설명한 부호와 동일한 부호는, 도 4에 도시한 처리와 동일한 부분 또는 대략 동일한 부분을 도시하고 있으므로, 중복된 설명은 생략한다.
정보 처리 장치(1)에 있어서, PCI 디바이스(3)로부터 DMA 요구가 발행되어 버스 아비터(4)에 입력되면(스텝 S11의 "예" 루트), 버스 아비터(4)에 의해 당해DMA 요구의 조정이 행해진다(스텝 S17).
그리고, 버스 아비터(4)에 의해 DMA 요구(D)가 TA(5-5)에 출력되면, TA(5-5)에 의해 스텝 S12 내지 S16의 처리가 실행된다.
스텝 S16의 처리, 또는 스텝 S12에서 "예" 루트의 판단이 행해지면, TA(5-5)에 의해 DMA 요구(D)가 버스 브리지(7)를 통하여 관리부(8)에 출력된다(스텝 S18).
이와 같이, 제2 변형예에 관한 정보 처리 장치(1)에 의하면, 상술한 일실시 형태 및 제1 변형예에 관한 정보 처리 장치(1)와 동일한 효과를 발휘할 수 있다.
또한, TA(5-5)에 의해 버스 아비터(4)로부터 관리부(8)에의 DMA 요구(D)의 발행이 보류되므로, 1개의 DMA 요구(D)가 입력되는 것만으로 좋으며, 제1 변형예에서의 TA(5-4)와 같이, 복수의 DMA 요구(A 내지 C)를 입력하지 않고 완료된다. 따라서, TA(5-5)는, 제1 변형예에서의 TA(5-4)보다도 간소한 구성으로 할 수 있어 제조 비용 등을 억제할 수 있다.
〔2〕기타
이상, 본 발명의 바람직한 실시 형태에 대하여 상세하게 설명했지만, 본 발명은 이러한 특정한 실시 형태 및 변형예에 한정되지 않고, 본 발명의 취지를 일탈하지 않는 범위 내에서 다양한 변형, 변경하여 실시할 수 있다.
예를 들어, TA(5)에서 복수의 DMA 요구(A 내지 C)에 관한 처리의 보류를 행할 경우, 즉 복수의 DMA 요구가 겹친 경우, TA(5)는 보류 시간을 일단락 짓는, 즉 남은 보류 시간으로부터 소정의 시간을 감하는, 또는 남은 보류 시간을 소정의 시간으로 변경하는 등의 처리를 행해도 된다. 이에 의해, TA(5)에서 보류되어 있는 DMA 요구에 관한 처리의 과대한 지연을 방지할 수 있다.
또한, 버스 아비터(4)는, 각 PCI 디바이스(3)가 기다릴 수 있는 시간(최대 보류 시간)을 고려하여 복수의 DMA 요구가 입력된 경우에, 최대 보류 시간이 짧은 PCI 디바이스(3)로부터 발행된 DMA 요구에 대한 허가를 우선하도록 조정 처리를 실행해도 된다.
또한, 정보 처리 장치(1)는, 상술한 실시 형태 또는 제1 변형예에서의 PCI 디바이스(3)에 대응하여 구비된 TA(5-1 내지 5-4)와, 제2 변형예에서의 버스 브리지(7)의 바로 아래에만 구비된 TA(5-5)를 조합해도 된다. 또한, TA(5)는, 버스 아비터(4)에 구비되어도 된다.
또한, 상술한 실시 형태 및 각 변형예에 있어서, CPU(2)(CM(22))가 1개인 경우에 대하여 설명했지만, 이것에 한정되지 않고, CM(22)이 복수 구비되어도 된다. 예를 들어, 멀티 CPU나 멀티 코어 CPU를 탑재한 시스템의 경우, CM은 CPU 코어마다 구비되거나, 복수의 CPU 코어에서 공유되는 CM이 구비되는 경우가 있다. 이 경우, TA(5)는, DMA 요구에 관한 처리를 보류할지 여부를, 적어도 1개의 CM의 전원이 오프로 되었는지 여부에 따라서 결정할 수 있다. 이와 같이, CM이 복수 구비되는 시스템에 있어서도, 적어도 1개의 CM의 전원이 오프인 상태에서 DMA가 실행되면, 모든 CM의 전원이 온인 경우에 비해 시스템의 소비 전력을 저감시킬 수 있다.
또한, 상술한 정보 처리 장치(1)의 구성은, 예를 들어 도 12에 도시한 바와 같은 버스나 컨트롤러 등이 칩 내에 집적된 시스템에서도 적용할 수 있다.
도 12는, 본 실시 형태에 관한 정보 처리 장치(1)의 시스템에의 적용예를 도시하는 도면이며, 도 13은, 정보 처리 장치(1′)의 하드웨어 구성예를 도시하는 도면이다.
또한, 도 12에 도시한 정보 처리 장치(1′)에서 이미 설명한 부호와 동일한 부호는, 도 1에 도시한 정보 처리 장치(1)와 동일한 부분 또는 대략 동일한 부분을 도시하고 있으므로, 중복된 설명은 생략한다.
정보 처리 장치(1′)는, CPU 코어(21), CM(22), TA(5-1), 버스 아비터(4)의 일부, 시스템 버스(6)의 일부, 버스 브리지(7), 관리부(8) 및 메모리 컨트롤러(9)가 수정 기재된 CPU 칩(20)을 구비한다. 또한, 정보 처리 장치(1′)는, 내장 주변 기기로서의 PCI 디바이스(3-2), TA(5-2 및 5-3), 버스 아비터(4)의 일부, 및 시스템 버스(6)의 일부가 집적된 PCH(Platform Controller Hub; 이하, PCH 칩이라고 함)(60)를 구비한다.
CPU 칩(20) 및 PCH 칩(60)은 각각 인터페이스부(30-1 및 30-2)를 구비한다. 인터페이스부(30-1 및 30-2)는, 예를 들어 PCI-Express의 포트이며, 주변 디바이스(확장 기기)로서의 PCI 디바이스(3-1 및 3-3)는, 이 포트를 통하여 CPU 칩(20) 및 PCH 칩(60)에 접속된다. 또한, PCI-Express는, PCI의 동작을 고속의 시리얼 버스에서 대행시키는 인터페이스이다. 또한, 도 13에 예시한 바와 같이, CPU 칩(20)은 히트 싱크(23) 및 팬(24)의 아래에 구비되고, PCH 칩(60)은 히트 싱크(61)(및 팬)의 아래에 구비되어 있다.
또한, 정보 처리 장치(1′)에 있어서는, 논리적으로는, 실선으로 나타낸 바와 같이, 가상적인 시스템 버스(6)에 의해 각 디바이스가 접속되고, 메인 메모리(10)를 전체 디바이스가 공유하고 있다. 여기서, 이 시스템 버스(6)는, 논리적으로는 PCI 버스로서 동작한다. 또한, 정보 처리 장치(1′)에서 발생하는 DMA 요구는, PCI 버스 사양에 따라 처리가 행해진다.
이와 같이 현재에서는, PCI 버스는 CPU 칩(20)이나 칩세트(60)의 내부에 집적되어 있고, PCI 버스의 칩 외부와의 접속은 PCI-Express로서 실현되는 경우가 많다. CPU 칩(20)과 PCH 칩(60)의 사이의 신호도, 고속 시리얼 신호를 사용하여 전송된다. 이러한 물리 구성은, 집적 회로의 칩 크기나 단자수 등의 현실적인 요건부터 주류로 되어 있다.
본건은, 상술한 바와 같은 정보 처리 장치(1)나 정보 처리 장치(1′)와 같은 물리 구성에 한정되지 않는다. 따라서, 정보 처리 장치(1′)에 의해서도, 상술한 실시 형태 및 각 변형예에서의 기능을 구비할 수 있고, 상술한 바와 같이 효과를 발휘할 수 있다.
1, 1′, 100 : 컴퓨터 시스템(멀티 마스터 시스템, 정보 처리 장치)
2 : CPU(처리부)
20 : CPU 칩
21, 210 : CPU 코어
22, 220 : CM(캐시 메모리)
23, 61 : 히트 싱크
24 : 팬
3, 3-1 내지 3-3 : PCI 디바이스(액세스부)
30-1, 30-2 : 인터페이스부
4 : 버스 아비터(조정부)
41, 43, 410, 430 : 동기화 처리부
42, 420 : 조정 처리부
44, 44-1 내지 44-5 : 레지스터
5, 5-1 내지 5-5 : TA(타이밍 조정부)
5-1a 내지 5-5a : 타이머
6, 600 : 시스템 버스
60 : PCH 칩
7, 700 : 버스 브리지
8 : 관리부
81, 810 : 호스트 버스
82, 400, 820 : 버스 아비터
9, 900 : 메모리 컨트롤러
10 : 메인 메모리(주기억 장치, 메모리)
11 : 보류 시간 DB
12 : 보류 시간 테이블
300, 300-1 내지 300-3 : PCI 디바이스
1000 : 메인 메모리

Claims (20)

  1. 메모리에 대한 메모리 액세스 요구를 발행하는 적어도 1개의 액세스부와,
    상기 액세스부로부터 발행된 메모리 액세스 요구를 조정하는 조정부와,
    상기 조정부에 의한 조정 결과에 따른 메모리 액세스 요구의 발행원인 액세스부에 대하여, 상기 메모리에 대한 메모리 액세스를 실행시키는 관리부와,
    적어도 1개의 캐시 메모리를 포함하고, 상기 적어도 1개의 캐시 메모리를 통하여 상기 메모리에 대한 액세스를 행하는 처리부와,
    상기 액세스부에 의해 발행된 상기 메모리 액세스 요구에 관한 처리를, 미리 설정된 보류 시간 동안에 보류하는 한편, 상기 보류 시간이 만료되기 전에 상기 처리부에서의 상기 적어도 1개의 캐시 메모리의 전원이 오프가 된 경우에, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 타이밍 조정부를 구비하는 것을 특징으로 하는, 정보 처리 장치.
  2. 제1항에 있어서, 상기 타이밍 조정부는, 상기 보류 시간이 만료된 경우에, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 것을 특징으로 하는, 정보 처리 장치.
  3. 제1항 또는 제2항에 있어서, 상기 타이밍 조정부는, 복수의 상기 액세스부마다 상기 보류 시간을 설정받고, 상기 메모리 액세스 요구에 관한 처리를, 당해 메모리 액세스 요구의 발행원의 액세스부에 대응하는 보류 시간 동안에 보류하는 것을 특징으로 하는, 정보 처리 장치.
  4. 제3항에 있어서, 상기 타이밍 조정부에 설정되는 보류 시간은, 각각, 대응하는 액세스부마다 결정되는 최대 보류 시간인 것을 특징으로 하는, 정보 처리 장치.
  5. 제3항에 있어서, 상기 타이밍 조정부는, 상기 캐시 메모리의 전원이 오프가 된 경우에, 상기 보류 시간이 만료되어 있지 않은 메모리 액세스 요구 중 남은 보류 시간이 적은 메모리 액세스 요구부터 순서대로, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 것을 특징으로 하는, 정보 처리 장치.
  6. 제1항 또는 제2항에 있어서, 상기 타이밍 조정부는, 복수의 상기 액세스부에 대하여 1개의 보류 시간을 설정받고, 1개의 메모리 액세스 요구에 관한 처리의 보류를 행하고 있을 때, 다른 메모리 액세스 요구에 관한 처리의 보류를 행할 경우, 상기 1개의 메모리 액세스 요구에서의 남은 보류 시간을 사용하여, 상기 다른 메모리 액세스 요구에 관한 처리를 보류하는 것을 특징으로 하는, 정보 처리 장치.
  7. 제1항 또는 제2항에 있어서, 상기 타이밍 조정부는, 복수의 상기 액세스부에 대하여 1개의 보류 시간을 설정받음과 함께, 상기 조정부와 상기 관리부의 사이에 구비되고, 상기 조정부로부터 상기 관리부에의 메모리 액세스 요구의 발행을 보류하는 것을 특징으로 하는, 정보 처리 장치.
  8. 제6항에 있어서, 상기 타이밍 조정부에 설정되는 보류 시간은, 상기 액세스부마다 결정되는 각각의 최대 보류 시간 중 최소의 시간인 것을 특징으로 하는, 정보 처리 장치.
  9. 제1항 또는 제2항에 있어서, 상기 타이밍 조정부는, 상기 액세스부와 상기 조정부의 사이에 구비되고, 상기 액세스부로부터 상기 조정부에의 상기 메모리 액세스 요구의 발행을 보류하는 것을 특징으로 하는, 정보 처리 장치.
  10. 메모리에 대한 메모리 액세스 요구를 발행하는 적어도 1개의 액세스부와, 상기 액세스부로부터 발행된 메모리 액세스 요구를 조정하는 조정부와, 상기 조정부에 의한 조정 결과에 따른 메모리 액세스 요구의 발행원인 액세스부에 대하여, 상기 메모리에 대한 메모리 액세스를 실행시키는 관리부와, 적어도 1개의 캐시 메모리를 포함하고, 상기 적어도 1개의 캐시 메모리를 통하여 상기 메모리에 대한 액세스를 행하는 처리부를 구비하는 정보 처리 장치에서의 상기 메모리 액세스 요구의 스케줄링 방법으로서,
    상기 액세스부에 의해 발행된 상기 메모리 액세스 요구에 관한 처리를, 미리 설정된 보류 시간 동안에 보류하는 한편, 상기 보류 시간이 만료되기 전에 상기 처리부에서의 상기 적어도 1개의 캐시 메모리의 전원이 오프가 된 경우에, 상기 메모리 액세스 요구에 관한 처리의 보류를 해제하는 것을 특징으로 하는, 스케줄링 방법.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020147004632A 2011-08-23 2011-08-23 정보 처리 장치 및 스케줄링 방법 KR101564520B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/068921 WO2013027261A1 (ja) 2011-08-23 2011-08-23 情報処理装置及びスケジューリング方法

Publications (2)

Publication Number Publication Date
KR20140051348A KR20140051348A (ko) 2014-04-30
KR101564520B1 true KR101564520B1 (ko) 2015-10-29

Family

ID=47746043

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147004632A KR101564520B1 (ko) 2011-08-23 2011-08-23 정보 처리 장치 및 스케줄링 방법

Country Status (6)

Country Link
US (1) US9329998B2 (ko)
EP (1) EP2750043B1 (ko)
JP (1) JP5668858B2 (ko)
KR (1) KR101564520B1 (ko)
CN (1) CN103765394B (ko)
WO (1) WO2013027261A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6251112B2 (ja) * 2014-04-14 2017-12-20 株式会社東芝 伝送装置およびコントローラ
US11144240B2 (en) 2018-08-24 2021-10-12 Micron Technology, Inc. Memory sub-system for increasing bandwidth for command scheduling
CN111077976B (zh) * 2018-10-18 2021-07-20 珠海全志科技股份有限公司 多核心处理器的空闲状态低功耗模式实现方法和处理器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761406A (en) * 1992-07-31 1998-06-02 Fujitsu Limited Method of controlling data transfer and a safe shutdown in a hierarchical cache system during power cut-off
US6125450A (en) * 1996-12-19 2000-09-26 Intel Corporation Stop clock throttling in a computer processor through disabling bus masters
JP2000090045A (ja) 1998-09-08 2000-03-31 Nec Eng Ltd データ転送システム、ダイレクトメモリアクセス制御装置及び方法、並びに記録媒体
DE60143194D1 (de) * 2000-04-12 2010-11-18 Dsp Group Switzerland Ag Datenverarbeitungsschaltung mit cachespeicher und vorrichtung mit solcher schaltung
JP2003256353A (ja) * 2002-02-28 2003-09-12 Casio Comput Co Ltd Dma制御装置及びdma制御方法
JP2005190332A (ja) 2003-12-26 2005-07-14 Matsushita Electric Ind Co Ltd データ転送制御装置
US7958312B2 (en) * 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
JP5167952B2 (ja) * 2008-05-26 2013-03-21 富士通株式会社 キャッシュメモリシステム

Also Published As

Publication number Publication date
EP2750043A4 (en) 2015-08-05
US9329998B2 (en) 2016-05-03
JPWO2013027261A1 (ja) 2015-03-05
US20140173202A1 (en) 2014-06-19
KR20140051348A (ko) 2014-04-30
EP2750043B1 (en) 2016-04-20
CN103765394A (zh) 2014-04-30
EP2750043A1 (en) 2014-07-02
CN103765394B (zh) 2016-08-24
WO2013027261A1 (ja) 2013-02-28
JP5668858B2 (ja) 2015-02-12

Similar Documents

Publication Publication Date Title
CN110729006B (zh) 存储器控制器中的刷新方案
US5590341A (en) Method and apparatus for reducing power consumption in a computer system using ready delay
CN107924375B (zh) 用于高速存储器接口的命令仲裁
JP4685312B2 (ja) データ処理システムおよび電力節約方法
US6438635B1 (en) Bus management using logic-based arbitration among bus access requests
US5625779A (en) Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
US7380063B2 (en) Cache flushing
US20030172310A1 (en) Low power system and method for a data processing system
KR102478527B1 (ko) 이기종 메모리 시스템용 시그널링
KR102542493B1 (ko) 비휘발성 듀얼 인라인 메모리 모듈에 대한 커맨드 리플레이
KR20220116033A (ko) 비휘발성 메모리 모듈에 대한 오류 복구
KR20230017865A (ko) Dram을 위한 리프레시 관리
CN102449612A (zh) 数据空间仲裁器
KR101564520B1 (ko) 정보 처리 장치 및 스케줄링 방법
TW200402619A (en) Method to reduce power in a computer system with bus master devices
US20060179172A1 (en) Method and system for reducing power consumption of a direct memory access controller
JP3568592B2 (ja) 周辺バスクロック信号を制御するためのコンピュータシステムおよびその方法
JP2024528414A (ja) ハイブリッドdram/永続メモリチャネルアービトレーションを有するメモリコントローラ
JP2005209230A (ja) 記憶装置
WO2002093392A1 (fr) Processeur de donnees
KR102705924B1 (ko) Dram 커맨드 스트리크 효율 관리
US11340786B2 (en) Apparatus and methods for synchronizing a plurality of double data rate memory ranks
JP5440419B2 (ja) 情報処理システム
JP2000207354A (ja) バスア―ビタ及びバス間制御装置
JPH08137785A (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