KR101707096B1 - 일반 호스트 기반 제어기 레이턴시 방법 및 장치 - Google Patents

일반 호스트 기반 제어기 레이턴시 방법 및 장치 Download PDF

Info

Publication number
KR101707096B1
KR101707096B1 KR1020157032742A KR20157032742A KR101707096B1 KR 101707096 B1 KR101707096 B1 KR 101707096B1 KR 1020157032742 A KR1020157032742 A KR 1020157032742A KR 20157032742 A KR20157032742 A KR 20157032742A KR 101707096 B1 KR101707096 B1 KR 101707096B1
Authority
KR
South Korea
Prior art keywords
host controller
latency information
logic
devices
latency
Prior art date
Application number
KR1020157032742A
Other languages
English (en)
Other versions
KR20150145241A (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 KR20150145241A publication Critical patent/KR20150145241A/ko
Application granted granted Critical
Publication of KR101707096B1 publication Critical patent/KR101707096B1/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/3268Power saving in hard disk drive
    • 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
    • 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
    • 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)
  • Power Sources (AREA)

Abstract

일반 호스트 기반 제어기 레이턴시에 관한 방법 및 장치가 기재되어 있다. 일 실시예에서, 하나 이상의 디바이스에 대응하는 레이턴시 정보는 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터 검출된다. 레이턴시 정보의 검출은 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 수행된다. 다른 실시예들이 또한 청구되며 개시된다.

Description

일반 호스트 기반 제어기 레이턴시 방법 및 장치{GENERIC HOST-BASED CONTROLLER LATENCY METHOD AND APPARATUS}
본 개시물은 일반적으로 일렉트로닉스 분야에 관한 것이다. 보다 구체적으로는, 일부 실시예들은 일반 호스트 기반 제어기 레이턴시 방법 및 장치에 관한 것이다.
모바일 컴퓨팅 디바이스들이 더욱 보편화됨에 따라, 시스템 설계자들의 한가지 주요 목표는 전력 소모를 감소시키는 것, 예를 들어 더 긴 배터리 수명, 더 적은 열 발생 등을 허용하는 것이다. 그러나, 컴퓨터 시스템의 다양한 컴포넌트들에서의 전력 소모 감소에 관해서라면, 시스템 설계자들은 일반적으로 정확도를 보장하기 위해서 이러한 컴포넌트들에 대한 동작들의 타이밍을 좌우하는 미리 정의된 표준들로부터 획득된 정보에 의존해야 한다. 따라서, 컴포넌트가 더 낮은 전력 소모 상태에 진입할 수 있으며 정확도를 여전히 유지하는지 여부는, (예를 들어, 타이밍 요건들에 관한) 표준이 이미 그 컴포넌트에 대해 미리 정의되었는지 여부에 직접적으로 종속할 수 있다.
또한, 에너지 효율이 오늘날의 작은 폼팩터 모바일 컴퓨팅 디바이스들에 대해 중요하지만, 에너지 효율은 부분적으로 더 큰 시스템들에 대해서도 중요한데, 그 이유는 더 높은 전력 소모가 열 발생을 증가시킬 수 있기 때문이다. 과도한 열은 컴퓨터 시스템의 컴포넌트들을 손상시킬 수 있다. 또한, 더 높은 전력 이용은 예를 들어 모바일 컴퓨팅 디바이스들에서 배터리 소모를 증가시킬 수 있으며, 이는 다음에 모바일 디바이스가 재충전 이전에 동작할 수 있는 시간의 양을 감소시킨다. 부가적인 전력 소모는 중량이 더 많이 나갈 수 있는 더 큰 배터리들의 이용을 부가적으로 요구할 수 있다. 더 무거운 배터리들은 모바일 컴퓨팅 디바이스의 휴대성 또는 유용성을 감소시킨다.
상세한 설명은 첨부 도면들을 참조하여 제공된다. 도면들에서, 참조 번호의 최좌측 숫자(들)는 이 참조 번호가 처음 나타나는 도면을 식별한다. 상이한 도면들에서의 동일한 참조 번호들의 이용은 유사하거나 동일한 항목들을 나타낸다.
도 1 및 도 4 내지 도 6은 본 명세서에서 논의된 다양한 실시예들을 구현하는데 이용될 수 있는 컴퓨팅 시스템들의 실시예들의 블록도들을 도시한다.
도 2는 실시예에 따른 점진적인 레이턴시 보고(progressive latency reporting)를 구현하기 위한 로직에 대한 상태도를 도시한다.
도 3은 실시예에 따른 제어기 유휴 시간의 함수로서의 레이턴시 정보 제공의 그래프를 도시한다.
다음의 설명에서, 다양한 실시예들의 철저한 이해를 제공하기 위해서 다수의 특정 상세가 제시된다. 그러나, 다양한 실시예들은 이러한 특정 상세 없이 실시될 수 있다. 다른 경우에, 특정 실시예들을 모호하게 하지 않도록 잘 알려진 방법들, 절차들, 컴포넌트들 및 회로들은 상세하게 설명되지 않았다. 또한, 실시예들의 다양한 양태들은 다양한 수단, 예컨대 집적 반도체 회로들("하드웨어"), 하나 이상의 프로그램으로 구성된 컴퓨터 판독가능 명령어들("소프트웨어"), 또는 하드웨어와 소프트웨어의 일부 조합을 이용하여 수행될 수 있다. 본 개시물의 목적을 위해, "로직"에 대한 언급은 하드웨어, 소프트웨어, 펌웨어 또는 이들의 일부 조합을 의미할 것이다.
일부 실시예들은, 일반 호스트 기반 제어기 레이턴시 보고를 통해 (컴퓨팅 시스템에서의 하나 이상의 디바이스에 대한) 레이턴시 정보를 결정하는 것을 제공한다. 올바른 동작을 보장하기 위해서, 특정 레이턴시 요건들이 충족될 필요가 있다. 이들 레이턴시 요건들은 일반적으로 디바이스마다 상이하다. 또한, 일부 구현예들은 디바이스 레이턴시 정보를 결정하기 위해 미리 정의된 표준들에 의존한다. 그러나, 이러한 미리 정의된 표준은 항상 모든 디바이스에 대해 존재하지는 않을 수 있고, 또는 일부 디바이스들은 표준 요건들을 넘어서 동작가능할 수 있다. 이 때문에, 실시예는, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하기 위해 로직을 이용한다. 이 로직은, 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보를 검출할 수 있다.
본 명세서에서 논의된 바와 같이, "호스트 제어기"는, 컴퓨팅 시스템(예컨대, 도 1 및 도 4 내지 도 6을 참조하여 논의된 컴퓨팅 시스템들)의 컴포넌트들에 의한 하나 이상의 디바이스(예를 들어, 도 1의 디바이스들(162))로의 액세스를 제어/게이팅하는 로직(예를 들어, 도 1의 제어기(161))을 일반적으로 지칭한다. 부가적으로, 본 명세서에서 논의된 바와 같이, "레이턴시 정보"는, 디바이스 또는 호스트 제어기가 데이터나 메시지를 이동시키도록 요청할 때부터 시스템이 이 요청을 승인할 때까지 이 디바이스 또는 호스트 제어기가 견딜 수 있는 지연의 양을 일반적으로 지칭한다. 일부 경우에는(예를 들어, 네트워킹 디바이스), 이것은 접속 속도 및 내부 버퍼링의 함수일 수 있고, 또는 다른 디바이스들(예를 들어, 스토리지)의 경우에는, 그것은 단순히 디바이스가 어떻게 이용되는지 및/또는 디바이스가 최근에 어떻게 이용되었는지에 기초한 성능 제약일 수 있다. 예를 들어, 호스트 제어기(들)가 비활성/유휴 상태로 유지되는 동안, 점점 더 깊어지는 레이턴시 값들을 결정하기 위해서 슬립 레이턴시 값(들)이 점진적으로 순환될 수 있다. 예를 들어, 성능 대 전력 소모 감소/에너지 효율의 트레이드오프에 대한 더 큰 융통성을 허용하기 위해서, 레이턴시 정보는 하나 이상의 엔티티(본 명세서에서 추가로 논의됨)에 보고된다.
일부 실시예들에서, 본 명세서에서 논의된 전력 소모 상태들 중 적어도 일부는 ACPI(Advanced Configuration and Power Interface) 규격, 리비전 5(2011년 12월) 하에서 정의된 것들에 따르거나 그것들과 유사할 수 있다. 예를 들어, L0은 일반적으로 정상 동작 모드를 지칭할 수 있고, L1은 슬립 모드를 지칭할 수 있으며, L2는 더 깊은 슬립 모드를 지칭하거나 할 수 있다.
본 명세서에서 논의된 기술들은, 도 1 및 도 4 내지 도 6을 참조하여 논의된 시스템들과 같이 전력 소모 설정들을 갖는 임의의 타입의 컴퓨팅 시스템(스마트폰, 태블릿, 랩톱 컴퓨터, UMPC(Ultra-Mobile Personal Computer), 울트라북 등을 포함할 수 있음)에서 이용될 수 있다. 보다 구체적으로는, 도 1은 실시예에 따른 컴퓨팅 시스템(100)의 블록도를 도시한다. 시스템(100)은 하나 이상의 프로세서(102-1 내지 102-N)(일반적으로 본 명세서에서 "프로세서들(102)" 또는 "프로세서(102)"로 지칭됨)를 포함할 수 있다. 프로세서들(102)은 상호접속 네트워크 또는 버스(104)를 통해 통신할 수 있다. 각각의 프로세서는 다양한 컴포넌트들을 포함할 수 있는데, 그 일부는 명료성을 위해 프로세서(102-1)만을 참조하여 논의된다. 따라서, 나머지 프로세서들(102-2 내지 102-N) 각각은 프로세서(102-1)를 참조하여 논의된 동일하거나 유사한 컴포넌트들을 포함할 수 있다.
실시예에서, 프로세서(102-1)는 하나 이상의 프로세서 코어(106-1 내지 106-M)(본 명세서에서 "코어들(106)" 또는 보다 일반적으로는 "코어(106)"로 지칭됨), 공유 캐시(108) 및/또는 라우터(110)를 포함할 수 있다. 프로세서 코어들(106)은 단일의 집적 회로(IC) 칩 상에 구현될 수 있다. 또한, 칩은 하나 이상의 공유 및/또는 전용 캐시들(private caches)(예컨대, 캐시(108)), 버스들 또는 상호접속부들(예컨대, 버스 또는 상호접속 네트워크(112)), 메모리 제어기들(예컨대, 도 4 내지 도 6을 참조하여 논의된 것들), 또는 다른 컴포넌트들을 포함할 수 있다.
일 실시예에서, 라우터(110)는 시스템(100) 및/또는 프로세서(102-1)의 다양한 컴포넌트들 사이에 통신하는데 사용될 수 있다. 또한, 프로세서(102-1)는 하나보다 많은 라우터(110)를 포함할 수 있다. 또한, 다수의 라우터(110)는 프로세서(102-1) 내부의 또는 외부의 다양한 컴포넌트들 사이의 데이터 라우팅을 가능하게 하도록 통신할 수 있다.
공유 캐시(108)는 프로세서(102-1)의 하나 이상의 컴포넌트들, 예컨대 코어들(106)에 의해 이용되는 데이터(예를 들어, 명령어들을 포함함)를 저장할 수 있다. 예를 들어, 공유 캐시(108)는 프로세서(102)의 컴포넌트들에 의한 더 신속한 액세스를 위해 메모리(114)에 저장된 데이터를 로컬 캐싱할 수 있다. 실시예에서, 캐시(108)는 중간 레벨 캐시(예컨대, 레벨 2(L2), 레벨 3(L3), 레벨 4(L4) 또는 다른 레벨의 캐시), 최종 레벨 캐시(LLC: last level cache), 및/또는 이들의 조합들을 포함할 수 있다. 또한, 프로세서(102-1)의 다양한 컴포넌트들은, 메모리 제어기나 허브 및/또는 버스(예를 들어, 버스(112))를 통해, 직접적으로 공유 캐시(108)와 통신할 수 있다. 도 1에 도시된 바와 같이, 일부 실시예들에서, 코어들(106) 중 하나 이상은 레벨 1(L1) 캐시(116-1)(일반적으로 본 명세서에서 "L1 캐시(116)"로 지칭됨)를 포함할 수 있다.
일 실시예에서, 로직(160)은 (예를 들어, 도 2 내지 도 4를 참조하여 추가로 논의되는 바와 같이 점진적인 방식으로) 호스트 제어기(들)(161)로부터 (하나 이상의 디바이스(162)에 관한) 레이턴시 정보를 검출한다. 로직(160)은, 검출된 레이턴시 정보에 기초하여 결정되는 레이턴시 요건들을 고수하는 것에 의해 동작 정확도를 유지하기 위해서, 검출된 레이턴시 정보를 시스템의 다른 컴포넌트들, 예컨대 전력 관리(PM) 로직(170), 운영 체제(OS), 디바이스 드라이버(들), 소프트웨어 애플리케이션(들) 등에 전달한다. 예를 들어, 로직(160)은 (예를 들어, 미리 정의된 표준이 존재하든지 아니든지 간에) 개별적인 디바이스들에 대한 레이턴시 정보의 동적 조정을 허용할 수 있다. 또한, PM 로직(170), OS, 디바이스 드라이버(들) 및/또는 소프트웨어 애플리케이션(들)(예를 들어, OS 및/또는 소프트웨어 애플리케이션(들) 및/또는 디바이스 드라이버(들)는 메모리(114)에 저장될 수 있음)으로부터 획득된 레이턴시 정보에 적어도 부분적으로 기초하여 (예를 들어, 로직(160)에 의해) 전력 소모 제어가 달성될 수 있다. 실시예에서, 레이턴시 정보는 (로직(161)과 같은) 호스트 제어기에 의해 제공되고, 레이턴시 정보 트랜잭션들은 (디바이스(들)(162)와 같은) 디바이스에 의해 직접적으로 개시되는 것이 아니라, 디바이스의 호스트 제어기를 통해 개시된다. 또한, 디바이스(들)는, eMMC(embedded MultiMedia Card), SATA(Serial Advanced Technology Attachment) 및/또는 UFS(Universal Flash Storage) 스토리지 디바이스들을 비롯하여, 도 1 내지 도 6을 참조하여 논의된 컴포넌트들 중 임의의 것을 포함할 수 있다. 또한, 로직(160 및/또는 170)은 도 1에 도시된 것들과는 다른 위치들에(예를 들어, 상호접속부(104)에 직접 연결된 코어들(106) 내에 등) 제공될 수 있다.
도 2는 실시예에 따른 점진적인 레이턴시 보고를 구현하기 위한 상태도를 도시한다. 실시예에서, 도 1의 로직(160)은 도 2의 상태도에 따라 동작한다. 도시된 바와 같이, 로직(160)은 디바이스 제어기(들)(161)에서의 유휴 시간을 추적하고, 호스트 제어기(들)(161)가 비활성/유휴 상태로 유지되는 동안, (예를 들어, 플랫폼에서의 전력 관리(PM) 로직(170)에) 보고되는 점점 더 깊어지는 레이턴시 값들을 통해 점진적으로 순환한다. 호스트 제어기(들)(161)의 유휴 상태가 길어짐에 따라, 레이턴시 값들은 에너지 효율과 성능 간의 트레이드오프를 더 융통성있게 하기 위해서 (예를 들어, 실리콘 벤더, 시스템 개발자, 사용자 등에 의해) 소프트웨어 제공될 수 있다.
일반적으로, LTR(Latency Tolerance Reporting)은, 호스트 제어기(예를 들어, 제어기(들)(161))를 통해 연결되는 하나 이상의 최종 디바이스(예컨대, 디바이스(들)(162))에 대한 서비스 레이턴시 요건들의 보고를 허용하기 위해 이용된다. 다음에, 이것은 기능성 및/또는 성능에 영향을 미치지 않으면서 (예를 들어, PM 로직(170)을 통한) 전력 관리를 허용한다. 또한, 도 2는 (PCIe(Peripheral Component Interconnect express)와 연관될 수 있는) LTR 값들의 이용을 도시하고 있지만, 실시예들은, USB(Universal Serial Bus) 3.0에 의해 지원되는(예를 들어, 2008년 11월에 릴리즈된 USB 3.0 규격에 따른) 레이턴시 허용오차 메시징(LTM: Latency Tolerance Messaging) 메커니즘과 같은 다른 명시적인 레이턴시 보고 메커니즘들에 따라, 또는 USB 2.0에 의해 지원되는(예를 들어, 2007년 7월 16일자의 "USB 2.0 Link Power Management Addendum Engineering Change Notice to the USB 2.0 Specification", 및 2011년 10월 11일자의 "Errata for USB 2.0 ECN: Link Power Management (LPM) - 7/2007"에 따른) 링크 전력 관리(LPM: Link Power Management) 메커니즘, SATA(Serial Advanced Technology Attachment) 링크 상태(들) 등과 같은 암시적인 수단을 통해 또한 적용될 수 있다. 대안적인 접근법은 디바이스 드라이버가 칩셋 사유 레지스터들(예를 들어, SDIO(Serial Data Input/Output) 레지스터들)에 기입하게 하는 것을 포함한다. 또한, 일부 실시예들은 eMMC, SATA 및/또는 UFS 스토리지 디바이스들에 적용될 수 있다.
도 2를 참조하면, 스테이지(202)(여기서, LTR은 L0에 있고, 유휴 타이머는 T0으로 설정됨 - 도 2의 저부에 있는 표는 일부 실시예들에 따른 일부 예시적인 T 및 L 값들을 나타낸다는 것에 유의함)로부터 스테이지(204)로의 이동은, (T0으로 설정된) 유휴 타이머가 만료되고나면 이루어진다. 스테이지(204)에서, LTR은 L1로 설정되고, 유휴 타이머는 L1로 설정된다. 제어기(예를 들어, 호스트 제어기(161))가 활성 상태로 되는 경우에는, 스테이지(202)에 진입한다. 제어기가 스테이지(204)에서 비활성 상태로 유지되는 경우에는, (L1로 설정된) 유휴 타이머가 만료되고나면, 스테이지(206)에 진입한다. 이러한 프로세스는 표 포맷으로 도 2의 저부에 제시된 값들에 따라 도 2에 도시된 바와 같이 스테이지들(206-210)에 대해 반복된다. 일 실시예에서, 예시된 타이밍 값들은 값(예를 들어, 10 비트) 및 시간의 단위를 선택하는 승수(multiplier)(예를 들어, 000b = 마이크로초, 001b = 밀리초, 010 = 수백 밀리초, 011 = 초)를 갖는다. 레이턴시 값은 마이크로초 단위에서 32 비트로서 프로그래밍되며, 승수를 갖지 않는다. 따라서, 레이턴시 값들은 호스트 제어기가 비활성 상태로 유지됨에 따라 (연속적으로 스테이지들(202-210)을 통해 진행함으로써) 점진적으로 증가하고, 그에 따라 점점 더 깊은 슬립 상태들이 달성되는 것을 허용하고/하거나, 에너지 효율과 성능 간의 트레이드오프를 더 융통성있게 하기 위해서 소프트웨어가 (예를 들어, 실리콘 벤더, 시스템 개발자, 사용자 등으로부터) 레이턴시 값들을 제공하는 것이 허용되도록 융통성을 제공한다.
도 3은 실시예에 따른 제어기 유휴 시간의 함수로서의 레이턴시 정보 제공의 그래프를 도시한다. 도시된 바와 같이, 유휴 시간 값이 (예를 들어, T0 내지 T3의 4개의 점진적인 단계에서) 증가함에 따라, Lx 값들이 증가하여, 더 높은 레이턴시(예를 들어, LTR) 값들을 나타낸다. 따라서, 호스트 제어기(들)(161)의 유휴 상태가 길어짐에 따라(도 3에서 유휴 시간이 증가함에 따라), 레이턴시 값들은 에너지 효율과 성능 간의 트레이드오프를 더 융통성있게 하기 위해서 (예를 들어, 실리콘 벤더, 시스템 개발자, 사용자 등에 의해) 소프트웨어 제공될 수 있다.
도 4는 실시예에 따른 컴퓨팅 시스템(400)의 블록도를 도시한다. 컴퓨팅 시스템(400)은 상호접속 네트워크(또는 버스)(404)를 통해 통신하는 하나 이상의 중앙 처리 유닛(들)(CPU들)(402) 또는 프로세서들을 포함할 수 있다. 프로세서들(402)은 범용 프로세서, (컴퓨터 네트워크(403)를 통해 전달된 데이터를 처리하는) 네트워크 프로세서, 또는 다른 타입의 프로세서(RISC(reduced instruction set computer) 프로세서 또는 CISC(complex instruction set computer)를 포함함)를 포함할 수 있다.
또한, 프로세서들(402)은 단일 또는 다중 코어 설계를 가질 수 있다. 다중 코어 설계를 갖는 프로세서들(402)은 동일한 집적 회로(IC) 다이 상에 상이한 타입의 프로세서 코어들을 집적할 수 있다. 또한, 다중 코어 설계를 갖는 프로세서들(402)은 대칭 또는 비대칭 멀티프로세서들로서 구현될 수 있다. 실시예에서, 프로세서들(402) 중 하나 이상은 도 1의 프로세서들(102)과 동일하거나 유사할 수 있다. 예를 들어, 시스템(400)의 하나 이상의 컴포넌트는 (예를 들어, 도 4에 도시된 바와 같은) 로직(160), 또는 도 1 내지 도 3을 참조하여 논의된 다른 컴포넌트들을 포함할 수 있다. 또한, 도 1 내지 도 3을 참조하여 논의된 동작들은 시스템(400)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
칩셋(406)도 또한 상호접속 네트워크(404)와 통신할 수 있다. 칩셋(406)은 GMCH(Graphics and Memory Control Hub)(408)를 포함할 수 있다. GMCH(408)는 메모리(412)(도 1의 메모리(114)와 동일하거나 유사할 수 있음)와 통신하는 메모리 제어기(410)를 포함할 수 있다. 메모리(412)는, CPU(402) 또는 컴퓨팅 시스템(400)에 포함된 임의의 다른 디바이스에 의해 실행될 수 있는 명령어들의 시퀀스를 포함하는 데이터를 저장할 수 있다. 일 실시예에서, 메모리(412)는 하나 이상의 휘발성 스토리지(또는 메모리) 디바이스, 예컨대 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 동기식 DRAM(SDRAM), 정적 RAM(SRAM), 또는 다른 타입의 스토리지 디바이스를 포함할 수 있다. 하드 디스크와 같은 비휘발성 메모리도 또한 사용될 수 있다. 다수의 CPU 및/또는 다수의 시스템 메모리와 같은 부가적인 디바이스들이 상호접속 네트워크(404)를 통해 통신할 수 있다.
GMCH(408)는 디스플레이 디바이스(416)와 통신하는 그래픽 인터페이스(414)를 또한 포함할 수 있다. 일 실시예에서, 그래픽 인터페이스(414)는 가속화된 그래픽 포트(AGP: accelerated graphics port)를 통해 디스플레이 디바이스(416)와 통신할 수 있다. 실시예에서, 디스플레이(416)(예컨대, 평면 패널 디스플레이)는, 예를 들어, 비디오 메모리 또는 시스템 메모리와 같은 스토리지 디바이스에 저장된 이미지의 디지털 표현을 디스플레이(416)에 의해 해석되고 디스플레이되는 디스플레이 신호들로 변환하는 신호 변환기를 통해, 그래픽 인터페이스(414)와 통신할 수 있다. 디스플레이 디바이스에 의해 생성된 디스플레이 신호들은, 디스플레이(416)에 의해 해석되고 후속하여 디스플레이 상에 디스플레이되기 이전에, 다양한 제어 디바이스들을 통과할 수 있다.
허브 인터페이스(418)는 GMCH(408) 및 입/출력 제어 허브(ICH)(420)가 통신하는 것을 허용할 수 있다. ICH(420)는 컴퓨팅 시스템(400)과 통신하는 I/O 디바이스(들)에 대한 인터페이스를 제공할 수 있다. ICH(420)는 주변 장치 브리지(또는 제어기)(424), 예컨대 PCI(peripheral component interconnect) 브리지, USB(universal serial bus) 제어기, 또는 다른 타입의 주변 장치 브리지 또는 제어기를 통해 버스(422)와 통신할 수 있다. 브리지(424)는 CPU(402)와 주변 디바이스들 사이에 데이터 경로를 제공할 수 있다. 다른 타입의 토폴로지들이 이용될 수 있다. 또한, 다수의 버스가 예를 들어 다수의 브리지 또는 제어기를 통해 ICH(420)와 통신할 수 있다. 또한, ICH(420)와 통신하는 다른 주변 장치들은, 다양한 실시예들에서, IDE(integrated drive electronics) 또는 SCSI(small computer system interface) 하드 드라이브(들), USB 포트(들), 키보드, 마우스, 병렬 포트(들), 직렬 포트(들), 플로피 디스크 드라이브(들), 디지털 출력 지원(예를 들어, DVI(digital video interface)) 또는 다른 디바이스들을 포함할 수 있다.
버스(422)는 오디오 디바이스(426), 하나 이상의 디스크 드라이브(들)(428), 및 (컴퓨터 네트워크(403)와 통신하는) 네트워크 인터페이스 디바이스(430)와 통신할 수 있다. 다른 디바이스들은 버스(422)를 통해 통신할 수 있다. 또한, (네트워크 인터페이스 디바이스(430)와 같은) 다양한 컴포넌트들은 일부 실시예들에서 GMCH(408)와 통신할 수 있다. 또한, 프로세서(402)와 GMCH(408)는 결합되어 단일의 칩을 형성할 수 있고/있거나, GMCH(408)의 일부 또는 전부는 (예를 들어, 칩셋(406)에 GMCH(408)를 포함하는 것 대신에) 프로세서들(402)에 포함될 수 있다. 또한, 그래픽 가속기(416)는 다른 실시예들에서 GMCH(408) 내에 포함될 수 있다.
또한, 컴퓨팅 시스템(400)은 휘발성 및/또는 비휘발성 메모리(또는 스토리지)를 포함할 수 있다. 예를 들어, 비휘발성 메모리는, 판독 전용 메모리(ROM), 프로그램가능 ROM(PROM), 소거가능 PROM(EPROM), 전기적 EPROM(EEPROM), 디스크 드라이브(예를 들어, 428), 플로피 디스크, 콤팩트 디스크 ROM(CD-ROM), DVD(digital versatile disk), 플래시 메모리, 광자기 디스크, 또는 (예를 들어, 명령어들을 포함하는) 전자 데이터를 저장할 수 있는 다른 타입의 비휘발성 머신 판독가능 매체 중 하나 이상을 포함할 수 있다.
도 5는 실시예에 따른 점대점(PtP) 구성으로 배열되는 컴퓨팅 시스템(500)을 도시한다. 특히, 도 5는 프로세서들, 메모리 및 입/출력 디바이스들이 다수의 점대점 인터페이스에 의해 상호접속되는 시스템을 도시한다. 도 1 내지 도 4를 참조하여 논의된 동작들은 시스템(500)의 하나 이상의 컴포넌트에 의해 수행될 수 있다.
도 5에 도시된 바와 같이, 시스템(500)은 수개의 프로세서를 포함할 수 있는데, 명료성을 위해 그 중 2개의 프로세서(502 및 504)만이 도시되어 있다. 프로세서들(502 및 504) 각각은 메모리들(510 및 512)과의 통신을 가능하게 하기 위해 로컬 메모리 제어기 허브(MCH: memory controller hub)(506 및 508)를 포함할 수 있다. 메모리들(510 및/또는 512)은 도 4의 메모리(412)를 참조하여 논의된 것과 같이 다양한 데이터를 저장할 수 있다.
실시예에서, 프로세서들(502 및 504)은 도 4를 참조하여 논의된 프로세서들(402) 중 하나일 수 있다. 프로세서들(502 및 504)은 각각 점대점(PtP) 인터페이스 회로들(516 및 518)을 이용하여 PtP 인터페이스(514)를 통해 데이터를 교환할 수 있다. 또한, 프로세서들(502 및 504) 각각은 점대점 인터페이스 회로들(526, 528, 530 및 532)을 이용하여 개별적인 PtP 인터페이스들(522 및 524)을 통해 칩셋(520)과 데이터를 교환할 수 있다. 칩셋(520)은, 예를 들어 PtP 인터페이스 회로(537)를 이용하여, 그래픽 인터페이스(536)를 통해 그래픽 회로(534)와 데이터를 또한 교환할 수 있다.
적어도 하나의 실시예가 프로세서들(502 및 504) 내에 제공될 수 있다. 예를 들어, 시스템(500)의 하나 이상의 컴포넌트는 프로세서들(502 및 504) 내에 위치되는 것을 비롯하여 도 1 내지 도 4의 로직(160)을 포함할 수 있다. 그러나, 다른 실시예들은 도 5의 시스템(500) 내의 다른 회로들, 로직 유닛들 또는 디바이스들에 존재할 수 있다. 또한, 다른 실시예들은 도 5에 도시된 수개의 회로, 로직 유닛 또는 디바이스 전체에 걸쳐 분산될 수 있다.
칩셋(520)은 PtP 인터페이스 회로(541)를 이용하여 버스(540)와 통신할 수 있다. 버스(540)는 하나 이상의 디바이스, 예컨대 버스 브리지(542) 및 I/O 디바이스들(543)과 통신할 수 있다. 버스(544)를 통해, 버스 브리지(542)는 다른 디바이스들, 예컨대 키보드/마우스(545), 통신 디바이스들(546)(예컨대, 모뎀들, 네트워크 인터페이스 디바이스들, 또는 컴퓨터 네트워크(403)와 통신할 수 있는 다른 통신 디바이스들), 오디오 I/O 디바이스(547), 및/또는 데이터 스토리지 디바이스(548)와 통신할 수 있다. 데이터 스토리지 디바이스(548)는 프로세서들(502 및/또는 504)에 의해 실행될 수 있는 코드(549)를 저장할 수 있다.
일부 실시예들에서, 본 명세서에서 논의된 컴포넌트들 중 하나 이상은 SOC(System On Chip) 디바이스로서 구현될 수 있다. 도 6은 실시예에 따른 SOC 패키지의 블록도를 도시한다. 도 6에 도시된 바와 같이, SOC(602)는 하나 이상의 중앙 처리 유닛(CPU) 코어(620), 하나 이상의 그래픽 프로세서 유닛(GPU) 코어(630), 입/출력(I/O) 인터페이스(640) 및 메모리 제어기(642)를 포함한다. SOC 패키지(602)의 다양한 컴포넌트들은 다른 도면들을 참조하여 본 명세서에서 논의된 것과 같이 상호접속부 또는 버스에 연결될 수 있다. 또한, SOC 패키지(602)는, 다른 도면들을 참조하여 본 명세서에서 논의된 것들과 같은 컴포넌트들을 더 많이 또는 더 적게 포함할 수 있다. 또한, SOC 패키지(620)의 각각의 컴포넌트는, 예를 들어 본 명세서에서 다른 도면들을 참조하여 논의된 바와 같이 하나 이상의 다른 컴포넌트를 포함할 수 있다. 일 실시예에서, SOC 패키지(602)(및 그것의 컴포넌트들)는, 예를 들어 단일의 반도체 디바이스에 패키징되는 하나 이상의 집적 회로(IC) 다이 상에 제공된다.
도 6에 도시된 바와 같이, SOC 패키지(602)는 메모리 제어기(642)를 통해 메모리(660)(다른 도면들을 참조하여 본 명세서에서 논의된 메모리와 유사하거나 동일할 수 있음)에 연결된다. 실시예에서, 메모리(660)(또는 그것의 일부)는 SOC 패키지(602) 상에 집적될 수 있다.
I/O 인터페이스(640)는, 예를 들어 다른 도면들을 참조하여 본 명세서에서 논의된 것과 같은 상호접속부 및/또는 버스를 통해, 하나 이상의 I/O 디바이스(670)에 연결될 수 있다. I/O 디바이스(들)(670)는 키보드, 마우스, 터치패드, 디스플레이, 이미지/비디오 캡처 디바이스(예컨대, 카메라 또는 캠코더/비디오 레코더), 터치 스크린, 스피커 등 중의 하나 이상을 포함할 수 있다. 또한, SOC 패키지(602)는 실시예에서 로직(160)을 포함/집적할 수 있다. 대안적으로, 로직(160)은 SOC 패키지(602)의 외부에(즉, 이산 로직으로서) 제공될 수 있다.
다음의 예들은 추가의 실시예들에 관한 것이다. 예 1은 장치를 포함하는데, 이 장치는, 하드웨어 로직을 적어도 부분적으로 포함하며, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하는 로직을 포함하고, 로직은, 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보를 검출한다. 예 2는 예 1의 장치를 포함하는데, 여기서 로직은, 검출된 레이턴시 정보를, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신한다. 예 3은 예 2의 장치를 포함하는데, 여기서 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나는 송신된 레이턴시 정보를 수신하고, 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정한다. 예 4는 예 1의 장치를 포함하는데, 여기서 레이턴시 정보는, 호스트 제어기의 유휴 시간 값 및 호스트 제어기의 슬립 레이턴시 값 중 하나 이상을 포함한다. 예 5는 예 1의 장치를 포함하는데, 여기서 로직은, 하나 이상의 디바이스에 의해 개시되지 않는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보를 검출한다. 예 6은 예 1의 장치를 포함하는데, 여기서 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA(Serial Advanced Technology Attachment) 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함한다. 예 7은 예 1의 장치를 포함하는데, 여기서 이 장치는, 호스트 제어기가 비활성 상태로 유지되는 동안, 복수의 레이턴시 값을 결정하기 위해서 레이턴시 정보를 통해 점진적으로 순환하는 로직을 포함한다. 예 8은 예 1의 장치를 포함하는데, 여기서 로직, 하나 이상의 프로세서 코어 및 메모리는 단일의 집적 회로 다이 상에 위치한다. 예 9는 방법을 포함하는데, 이 방법은, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하는 단계를 포함하고, 레이턴시 정보의 검출은, 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 수행된다. 예 10은 예 9의 방법을 포함하는데, 여기서 이 방법은, 검출된 레이턴시 정보를, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신하는 단계를 더 포함한다. 예 11은 예 10의 방법을 포함하는데, 여기서 이 방법은, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나가 송신된 레이턴시 정보를 수신하고, 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하는 단계를 더 포함한다.
예 12는 하나 이상의 명령어를 포함하는 컴퓨터 판독가능 매체를 포함하는데, 이들 명령어들은, 프로세서 상에서 실행될 때, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하기 위해 하나 이상의 동작을 수행하도록 프로세서를 구성하고, 레이턴시 정보의 검출은, 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 수행된다. 예 13은 예 12의 컴퓨터 판독가능 매체를 포함하는데, 여기서 이 컴퓨터 판독가능 매체는, 프로세서 상에서 실행될 때, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상으로의 검출된 레이턴시 정보의 송신을 야기시키기 위해 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 더 포함한다. 예 14는 예 13의 컴퓨터 판독가능 매체를 포함하는데, 여기서 이 컴퓨터 판독가능 매체는, 프로세서 상에서 실행될 때, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나가 송신된 레이턴시 정보를 수신하고, 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하게 하기 위해 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 더 포함한다. 예 15는 예 12의 컴퓨터 판독가능 매체를 포함하는데, 여기서 레이턴시 정보는, 호스트 제어기의 유휴 시간 값 및 호스트 제어기의 슬립 레이턴시 값 중 하나 이상을 포함한다. 예 16은 예 12의 컴퓨터 판독가능 매체를 포함하는데, 여기서 이 컴퓨터 판독가능 매체는, 프로세서 상에서 실행될 때, 하나 이상의 디바이스에 의해 개시되지 않는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보의 검출을 야기시키기 위해 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 더 포함한다. 예 17은 예 12의 컴퓨터 판독가능 매체를 포함하는데, 여기서 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함한다.
예 18은 시스템을 포함하는데, 이 시스템은 로직을 포함하는 프로세서를 포함하고, 로직은 하드웨어 로직을 적어도 부분적으로 포함하며, 로직은, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하고, 로직은, 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보를 검출한다. 예 19는 예 18의 시스템을 포함하는데, 여기서 로직은, 검출된 레이턴시 정보를, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신한다. 예 20은 예 19의 시스템을 포함하는데, 여기서 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나는 송신된 레이턴시 정보를 수신하고, 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정한다. 예 21은 예 18의 시스템을 포함하는데, 여기서 레이턴시 정보는, 호스트 제어기의 유휴 시간 값 및 호스트 제어기의 슬립 레이턴시 값 중 하나 이상을 포함한다. 예 22는 예 18의 시스템을 포함하는데, 여기서 로직은, 하나 이상의 디바이스에 의해 개시되지 않는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보를 검출한다. 예 23은 예 18의 시스템을 포함하는데, 여기서 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함한다. 예 24는 예 18의 시스템을 포함하는데, 여기서 로직, 하나 이상의 프로세서 코어 및 메모리는 단일의 집적 회로 다이 상에 위치한다. 예 25는 예 18의 시스템을 포함하는데, 여기서 이 시스템은, 호스트 제어기가 비활성 상태로 유지되는 동안, 복수의 레이턴시 값을 결정하기 위해서 레이턴시 정보를 통해 점진적으로 순환하는 로직을 포함한다.
예 26은, 프로세서 상에서 실행될 때, 예 9 내지 예 11 중 어느 하나의 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 포함하는 컴퓨터 판독가능 매체를 포함한다.
예 27은 장치를 포함하는데, 이 장치는, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하는 수단을 포함하고, 레이턴시 정보의 검출은, 호스트 제어기에 의해 개시되는 하나 이상의 트랜잭션에 응답하여 수행된다. 예 28은 예 27의 장치를 포함하는데, 여기서 이 장치는, 프로세서 상에서 실행될 때, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상으로의 검출된 레이턴시 정보의 송신을 야기시키기 위해 하나 이상의 동작을 수행하도록 프로세서를 구성하는 하나 이상의 명령어를 더 포함한다. 예 29는 예 28의 장치를 포함하는데, 여기서 이 장치는, 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나가 송신된 레이턴시 정보를 수신하고, 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하게 하는 수단을 더 포함한다. 예 30은 예 27의 장치를 포함하는데, 여기서 레이턴시 정보는, 호스트 제어기의 유휴 시간 값 및 호스트 제어기의 슬립 레이턴시 값 중 하나 이상을 포함한다. 예 31은 예 27의 장치를 포함하는데, 여기서 이 장치는, 하나 이상의 디바이스에 의해 개시되지 않는 하나 이상의 트랜잭션에 응답하여 레이턴시 정보의 검출을 야기시키는 수단을 더 포함한다. 예 32는 예 27의 장치를 포함하는데, 여기서 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함한다.
다양한 실시예들에서, 예를 들어 도 1 내지 도 6을 참조하여 본 명세서에서 논의된 동작들은, 예를 들어 본 명세서에서 논의된 프로세스를 수행하도록 컴퓨터를 프로그래밍하는데 이용되는 명령어들(또는 소프트웨어 절차들)이 저장되어 있는 (예를 들어, 비일시적인) 머신 판독가능 또는 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있는 하드웨어(예를 들어, 로직 회로), 소프트웨어, 펌웨어 또는 이들의 조합으로서 구현될 수 있다. 머신 판독가능 매체는 도 1 내지 도 6과 관련하여 논의된 것들과 같은 스토리지 디바이스를 포함할 수 있다.
부가적으로, 이러한 컴퓨터 판독가능 매체는 컴퓨터 프로그램 제품으로서 다운로드될 수 있는데, 여기서 프로그램은 통신 링크(예를 들어, 버스, 모뎀 또는 네트워크 접속)를 통하여 반송파 또는 다른 전파 매체에 구현된 데이터 신호들에 의해 원격 컴퓨터(예를 들어, 서버)로부터 요청 컴퓨터(예를 들어, 클라이언트)로 전송될 수 있다.
본 명세서에서 "일 실시예(one embodiment)", "실시예(an embodiment)" 또는 "일부 실시예들(some embodiments)"에 대한 언급은, 이 실시예(들)와 관련하여 설명된 특정 피처, 구조 또는 특성이 적어도 일 구현예에 포함될 수 있다는 것을 의미한다. 본 명세서의 다양한 곳에서의 "일 실시예에서"라는 구문의 출현은 모두가 동일한 실시예를 언급할 수도 있고 언급하지 않을 수도 있다.
또한, 본 설명 및 청구항들에서, "연결된(coupled)" 및 "접속된(connected)"이라는 용어들은 그 파생어들과 함께 이용될 수 있다. 일부 실시예들에서, "접속된"은, 2개 이상의 엘리먼트가 서로 직접 물리적으로 또는 전기적으로 접촉하는 것을 나타내는데 이용될 수 있다. "연결된"은, 2개 이상의 엘리먼트가 직접 물리적으로 또는 전기적으로 접촉하는 것을 의미할 수 있다. 그러나, "연결된"은, 2개 이상의 엘리먼트가 서로 직접 접촉하지 않을 수 있지만 여전히 서로 상호작용하거나 협력하는 것을 또한 의미할 수 있다.
따라서, 실시예들은 구조적 피처들 및/또는 방법론적 동작들에 대한 특정 언어로 설명되었지만, 청구 대상은 설명된 특정 피처들 또는 동작들에 제한되지는 않을 수 있다는 것이 이해되어야 한다. 오히려, 특정 피처들 및 동작들은 청구 대상을 구현하는 예시적인 형태들로서 개시되어 있다.

Claims (26)

  1. 장치로서,
    하드웨어 로직을 적어도 부분적으로 포함하며, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 상기 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하는 로직
    을 포함하고,
    상기 로직은, 상기 호스트 제어기에 의해 개시되는 하나 이상의 레이턴시 정보 보고에 응답하여 상기 레이턴시 정보를 검출하고, 상기 레이턴시 정보는, 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키도록 요청할 때부터 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키기 위한 요청을 승인받을 때까지 상기 호스트 제어기가 견딜 수 있는 지연의 양에 적어도 부분적으로 기초하여 결정되는 장치.
  2. 제1항에 있어서,
    상기 로직은, 상기 검출된 레이턴시 정보를 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신하는 장치.
  3. 제2항에 있어서,
    상기 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나는 상기 송신된 레이턴시 정보를 수신하고, 상기 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하는 장치.
  4. 제1항에 있어서,
    상기 레이턴시 정보는 상기 호스트 제어기의 유휴 시간 값을 포함하는 장치.
  5. 제1항에 있어서,
    상기 로직은, 상기 하나 이상의 디바이스에 의해 개시되지 않는 상기 하나 이상의 레이턴시 정보 보고에 응답하여 상기 레이턴시 정보를 검출하는 장치.
  6. 제1항에 있어서,
    상기 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA(Serial Advanced Technology Attachment) 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함하는 장치.
  7. 제1항에 있어서,
    상기 호스트 제어기가 비활성 상태로 유지되는 동안, 복수의 레이턴시 값을 결정하기 위해서 레이턴시 정보를 통해 점진적으로 순환하는 로직을 포함하는 장치.
  8. 제1항에 있어서,
    상기 로직, 하나 이상의 프로세서 코어 및 메모리는 단일의 집적 회로 다이 상에 위치하는 장치.
  9. 하드웨어 로직을 적어도 부분적으로 포함하는 로직을 포함하는 장치에 의해 수행되는 방법으로서,
    상기 장치에 의해, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 상기 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하는 단계
    를 포함하고,
    상기 레이턴시 정보의 검출은, 상기 호스트 제어기에 의해 개시되는 하나 이상의 레이턴시 정보 보고에 응답하여 수행되고, 상기 레이턴시 정보는, 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키도록 요청할 때부터 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키기 위한 요청을 승인받을 때까지 상기 호스트 제어기가 견딜 수 있는 지연의 양에 적어도 부분적으로 기초하여 결정되는 방법.
  10. 제9항에 있어서,
    상기 검출된 레이턴시 정보를 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신하는 단계를 더 포함하는 방법.
  11. 제10항에 있어서,
    상기 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나가 상기 송신된 레이턴시 정보를 수신하고, 상기 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하는 단계를 더 포함하는 방법.
  12. 하나 이상의 명령어를 포함하는 비-일시적 컴퓨터 판독가능 매체로서,
    상기 하나 이상의 명령어는, 프로세서 상에서 실행될 때, 상기 프로세서로 하여금:
    하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 상기 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하게 하는 하나 이상의 동작을 수행하도록 구성되고,
    상기 레이턴시 정보의 검출은, 상기 호스트 제어기에 의해 개시되는 하나 이상의 레이턴시 정보 보고에 응답하여 수행되고, 상기 레이턴시 정보는, 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키도록 요청할 때부터 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키기 위한 요청을 승인받을 때까지 상기 호스트 제어기가 견딜 수 있는 지연의 양에 적어도 부분적으로 기초하여 결정되는 비-일시적 컴퓨터 판독가능 매체.
  13. 제12항에 있어서,
    상기 프로세서 상에서 실행될 때, 상기 프로세서로 하여금:
    상기 검출된 레이턴시 정보를 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신하게 하는 하나 이상의 동작을 수행하도록 구성되는 하나 이상의 명령어를 더 포함하는 비-일시적 컴퓨터 판독가능 매체.
  14. 제13항에 있어서,
    상기 프로세서 상에서 실행될 때, 상기 프로세서로 하여금:
    상기 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나는 상기 송신된 레이턴시 정보를 수신하고, 상기 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하게 하는 하나 이상의 동작을 수행하도록 구성되는 하나 이상의 명령어를 더 포함하는 비-일시적 컴퓨터 판독가능 매체.
  15. 제12항에 있어서,
    상기 레이턴시 정보는 상기 호스트 제어기의 유휴 시간 값을 포함하는 비-일시적 컴퓨터 판독가능 매체.
  16. 제12항에 있어서,
    상기 프로세서 상에서 실행될 때, 상기 프로세서로 하여금:
    상기 하나 이상의 디바이스에 의해 개시되지 않는 상기 하나 이상의 레이턴시 정보 보고에 응답하여 상기 레이턴시 정보를 검출하게 하는 하나 이상의 동작을 수행하도록 구성되는 하나 이상의 명령어를 더 포함하는 비-일시적 컴퓨터 판독가능 매체.
  17. 제12항에 있어서,
    상기 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함하는 비-일시적 컴퓨터 판독가능 매체.
  18. 시스템으로서,
    로직을 포함하는 프로세서를 포함하고,
    상기 로직은 하드웨어 로직을 적어도 부분적으로 포함하며, 상기 로직은, 하나 이상의 디바이스에 대한 액세스를 제어하는 호스트 제어기로부터, 상기 하나 이상의 디바이스에 대응하는 레이턴시 정보를 검출하고,
    상기 로직은, 상기 호스트 제어기에 의해 개시되는 하나 이상의 레이턴시 정보 보고에 응답하여 상기 레이턴시 정보를 검출하고, 상기 레이턴시 정보는, 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키도록 요청할 때부터 상기 호스트 제어기가 데이터 또는 메시지들을 이동시키기 위한 요청을 승인받을 때까지 상기 호스트 제어기가 견딜 수 있는 지연의 양에 적어도 부분적으로 기초하여 결정되는 시스템.
  19. 제18항에 있어서,
    상기 로직은, 상기 검출된 레이턴시 정보를 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 하나 이상에 송신하는 시스템.
  20. 제19항에 있어서,
    상기 전력 관리 로직, 운영 체제, 디바이스 드라이버 및 소프트웨어 애플리케이션 중 적어도 하나는 상기 송신된 레이턴시 정보를 수신하고, 상기 수신된 정보를 이용하여, 증가된 에너지 효율에서 동작하는 것 또는 증가된 성능 레벨에서 동작하는 것 사이에서 결정하는 시스템.
  21. 제18항에 있어서,
    상기 레이턴시 정보는 상기 호스트 제어기의 유휴 시간 값을 포함하는 시스템.
  22. 제18항에 있어서,
    상기 로직은, 상기 하나 이상의 디바이스에 의해 개시되지 않는 상기 하나 이상의 레이턴시 정보 보고에 응답하여 상기 레이턴시 정보를 검출하는 시스템.
  23. 제18항에 있어서,
    상기 하나 이상의 디바이스는, eMMC(embedded Multimedia Card), SATA 스토리지 디바이스, 및 UFS(Universal Flash Storage) 디바이스 중 하나 이상을 포함하는 시스템.
  24. 제18항에 있어서,
    상기 로직, 하나 이상의 프로세서 코어 및 메모리는 단일의 집적 회로 다이 상에 위치하는 시스템.
  25. 제18항에 있어서,
    상기 호스트 제어기가 비활성 상태로 유지되는 동안, 복수의 레이턴시 값을 결정하기 위해서 레이턴시 정보를 통해 점진적으로 순환하는 로직을 포함하는 시스템.
  26. 제1항에 있어서,
    상기 호스트 제어기가 비활성 또는 유휴 상태로 유지되는 동안, 복수의 레이턴시 값을 결정하기 위해서, 유휴 상태에 있는 상기 호스트 제어기에 대응하는, 복수의 레이턴시 정보를 통해 점진적으로 순환하는 로직을 포함하는 장치.
KR1020157032742A 2013-06-28 2014-06-26 일반 호스트 기반 제어기 레이턴시 방법 및 장치 KR101707096B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/931,807 2013-06-28
US13/931,807 US9541987B2 (en) 2013-06-28 2013-06-28 Generic host-based controller latency method and appartus
PCT/US2014/044250 WO2014210258A1 (en) 2013-06-28 2014-06-26 Generic host-based controller latency method and apparatus

Publications (2)

Publication Number Publication Date
KR20150145241A KR20150145241A (ko) 2015-12-29
KR101707096B1 true KR101707096B1 (ko) 2017-02-15

Family

ID=52116896

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157032742A KR101707096B1 (ko) 2013-06-28 2014-06-26 일반 호스트 기반 제어기 레이턴시 방법 및 장치

Country Status (6)

Country Link
US (1) US9541987B2 (ko)
JP (1) JP6333971B2 (ko)
KR (1) KR101707096B1 (ko)
CN (1) CN105247498B (ko)
TW (1) TWI564684B (ko)
WO (1) WO2014210258A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9541987B2 (en) 2013-06-28 2017-01-10 Intel Corporation Generic host-based controller latency method and appartus
KR102094902B1 (ko) * 2013-07-08 2020-03-30 삼성전자주식회사 액티브 상태에서 인터페이스 모드를 전환하는 스토리지 시스템 및 ufs 시스템
US10025370B2 (en) * 2013-08-13 2018-07-17 Apple Inc. Overriding latency tolerance reporting values in components of computer systems
JP6769789B2 (ja) * 2016-09-07 2020-10-14 シャープ株式会社 メモリ制御装置、電子機器、メモリの制御方法、および制御プログラム
US10545664B2 (en) 2017-04-11 2020-01-28 Samsung Electronics Co., Ltd. System and method for identifying SSDs with lowest tail latencies
US11204939B2 (en) * 2018-07-18 2021-12-21 Bank Of America Corporation Data manifest as a blockchain service
TWI784120B (zh) * 2019-01-17 2022-11-21 韓商愛思開海力士有限公司 用於儲存裝置之記憶體控制器、儲存裝置、儲存裝置之控制方法以及記錄媒體
US11552892B2 (en) * 2019-08-30 2023-01-10 Ati Technologies Ulc Dynamic control of latency tolerance reporting values

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160254A1 (en) 2003-12-19 2005-07-21 Infineon Technologies Ag Multithread processor architecture for triggered thread switching without any clock cycle loss, without any switching program instruction, and without extending the program instruction format
US20090327774A1 (en) * 2008-06-26 2009-12-31 Jeyaseelan Jaya L Coordinated link power management
JP2010009581A (ja) * 2008-03-31 2010-01-14 Intel Corp レイテンシガイダンスに基づくプラットフォームのパワーマネジメント

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10206875A1 (de) 2002-02-18 2003-08-28 Philips Intellectual Property Verfahren und Schaltungsanordnung zum Überwachen und Verwalten des Datenverkehrs in einem Kommunikationssystem mit mehreren Kommunikationsknoten
US7237131B2 (en) * 2003-12-30 2007-06-26 Intel Corporation Transaction-based power management in a computer system
KR101114984B1 (ko) 2005-03-14 2012-03-06 삼성전자주식회사 가변적인 웨이크업 레이턴시를 가진 프로세싱 장치에서전원 관리 방법 및 장치
US7984314B2 (en) 2007-05-14 2011-07-19 Intel Corporation Power management of low power link states
US20090327609A1 (en) * 2008-06-30 2009-12-31 Bruce Fleming Performance based cache management
US8603905B2 (en) 2008-12-30 2013-12-10 Texas Instruments Incorporated Dual alignment strategy for optimizing contact layer alignment
US7895370B2 (en) * 2008-12-31 2011-02-22 Intel Corporation Method and apparatus to defer USB transactions
US8607075B2 (en) * 2008-12-31 2013-12-10 Intel Corporation Idle duration reporting for power management
WO2011142087A1 (ja) * 2010-05-12 2011-11-17 パナソニック株式会社 中継器およびチップ回路
US8862917B2 (en) * 2011-09-19 2014-10-14 Qualcomm Incorporated Dynamic sleep for multicore computing devices
US9541987B2 (en) 2013-06-28 2017-01-10 Intel Corporation Generic host-based controller latency method and appartus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160254A1 (en) 2003-12-19 2005-07-21 Infineon Technologies Ag Multithread processor architecture for triggered thread switching without any clock cycle loss, without any switching program instruction, and without extending the program instruction format
JP2010009581A (ja) * 2008-03-31 2010-01-14 Intel Corp レイテンシガイダンスに基づくプラットフォームのパワーマネジメント
US20090327774A1 (en) * 2008-06-26 2009-12-31 Jeyaseelan Jaya L Coordinated link power management
US20120324265A1 (en) 2008-06-26 2012-12-20 Intel Corporation Coordinated link power management

Also Published As

Publication number Publication date
JP6333971B2 (ja) 2018-05-30
JP2016523413A (ja) 2016-08-08
CN105247498B (zh) 2018-08-10
TW201516592A (zh) 2015-05-01
WO2014210258A1 (en) 2014-12-31
TWI564684B (zh) 2017-01-01
CN105247498A (zh) 2016-01-13
US20150006931A1 (en) 2015-01-01
KR20150145241A (ko) 2015-12-29
US9541987B2 (en) 2017-01-10

Similar Documents

Publication Publication Date Title
KR101707096B1 (ko) 일반 호스트 기반 제어기 레이턴시 방법 및 장치
US9740645B2 (en) Reducing latency in a peripheral component interconnect express link
RU2624563C2 (ru) Оперативное регулирование производительности твердотельных запоминающих устройств
KR101506857B1 (ko) 플랫폼 전력 절감을 위한 조정 장치 및 브레이크 이벤트 애플리케이션
KR20140025556A (ko) 플랫폼에서 유휴 링크 전력을 감소시키는 방법 및 장치
US9360909B2 (en) System, method and apparatus for energy efficiency and energy conservation by configuring power management parameters during run time
JP5866488B1 (ja) インテリジェントデュアルデータレート(ddr)メモリコントローラ
US20140006824A1 (en) Using device idle duration information to optimize energy efficiency
JP2018506111A (ja) 計算要素がアクティブであるときのシステム低電力状態有効化
US9377833B2 (en) Electronic device and power management method
JP2016513322A (ja) アイドル状態の間の電源ユニットによる電力消費の制御
TWI603187B (zh) 週期活動調整
KR101672357B1 (ko) 응답 타이밍 최적화에 기초하는 멀티프로세서 시스템에서의 주파수 조정 수행
US20230009970A1 (en) In-band communication interface power management fencing
US20160216756A1 (en) Power management in computing devices
TWM524502U (zh) 主機系統

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

Year of fee payment: 4