KR20140097563A - Pcie(peripheral component interface express) 커플링된 디바이스를 pcd(portable computing device) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 pcd - Google Patents

Pcie(peripheral component interface express) 커플링된 디바이스를 pcd(portable computing device) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 pcd Download PDF

Info

Publication number
KR20140097563A
KR20140097563A KR1020147018530A KR20147018530A KR20140097563A KR 20140097563 A KR20140097563 A KR 20140097563A KR 1020147018530 A KR1020147018530 A KR 1020147018530A KR 20147018530 A KR20147018530 A KR 20147018530A KR 20140097563 A KR20140097563 A KR 20140097563A
Authority
KR
South Korea
Prior art keywords
pcie
content
pcd
acpi
base address
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020147018530A
Other languages
English (en)
Other versions
KR101576263B1 (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 KR20140097563A publication Critical patent/KR20140097563A/ko
Application granted granted Critical
Publication of KR101576263B1 publication Critical patent/KR101576263B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

SoC(system-on-chip) ARM(Acorn RISC Machine)-기반 자원 아키텍처를 갖는 휴대용 컴퓨칭 디바이스에서, PCIe(peripheral component interconnect express) 버스는 PCIe 구동기 없이 시스템 메모리 내로 PCIe 디바이스 메모리를 삽입하는데 이용된다. PCIe 초기화 동안, PCIe BAR들(base address registers)의 콘텐츠들은 ACPI(advanced configuration and power interface) 표들에서 PCIe 디바이스에 할당된 값들과 일치하도록 맵핑되거나 그렇지 않으면 업데이트된다.

Description

PCIE(PERIPHERAL COMPONENT INTERFACE EXPRESS) 커플링된 디바이스를 PCD(PORTABLE COMPUTING DEVICE) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 PCD{METHOD AND A PORTABLE COMPUTING DEVICE (PCD) FOR EXPOSING A PERIPHERAL COMPONENT INTERFACE EXPRESS (PCIE) COUPLED DEVICE TO AN OPERATING SYSTEM OPERABLE ON THE PCD}
관련 출원들에 대한 상호참조
[001] 35 U.S.C.§119(e) 하에서, 2011년 12월 6일 출원되고, 출원 일련 번호 제61/567,425호가 할당되었으며, 발명의 명칭이 "Method and a Portable Computing Device (PCD) For Exposing A Peripheral Component Interface Express (PCIE) Coupled Device To An Operating System Operable On The PCD"인 미국 가출원을 우선권으로 주장하며, 상기 가출원의 전체 내용물은 그에 의해 인용에 의해 포함된다.
[002] 더 저렴하고, 더 작고 더 유능한 집적 회로들의 개발은 비교적 복잡한 기능을 보유하면서 더 작은 설계들을 피처링(featuring)하는 휴대용 컴퓨팅 시스템들의 개발을 가능하게 하였다. 이들 컴퓨팅 시스템들은 주로 랩톱들, 넷북들, 및 태블릿들을 지칭하지만, 스마트폰들, 휴대용 오디오 디바이스들, 휴대용 비디오 디바이스들 및 휴대용 비디오게임 콘솔들을 또한 포함한다. 그러나 휴대용 컴퓨팅 시스템들을 소형화하는 최근의 동향이 지속됨에 따라, 이들 설계들을 위해 하드웨어에 대해 이용 가능한 공간이 점점 감소하였다. 그 결과, 하드웨어 설계 및 아키텍처의 최적화는 매우 중요하게 되었다.
[003] 종래의 휴대용 컴퓨팅 디바이스들은 적어도 마이크프로세서들 또는 중앙 처리 장치(CPU), 메모리, 칩셋을 피처링하는 마더보드(예를 들어, 중앙 인쇄 회로 보드) 및 디스플레이에 대한 비디오 츨력 생성하기 위한 적어도 하나의 그래픽 처리 장치의 모음을 포함한다. 몇몇 종래의 마더보드 설계들에서, 칩셋은 2개의 별개의 컴포넌트 허브들로 배열된다. 제 1 제어기에 따라 동작하는 제 1 허브는 통상적으로 CPU, 랜덤 액세스 메모리(RAM), 비디오 출력 인터페이스들 및 제 2 제어기 사이에서 통신들을 처리한다. 다수의 동시대의 휴대용 컴퓨팅 디바이스 구현들에서, 비디오 출력 인터페이스는 통합된 그래픽 처리 장치로서 구현된다. 제 2 제어기는 입력/출력 디바이스들과 대용량 저장 디바이스들과 같은 주변 컴포넌트들을 통해 RAM 및/또는 CPU 간의 통신들을 지원한다. 다수의 구현들에서, 제 2 제어기는 또한, 오디오 제어기들, 네트워크 인터페이스 카드들, 유니버셜 직렬 버스(USB), 및 PCI-익스프레스(PCIe) 연결 등과 같이 통합된 주변기기들을 포함할 수 있다.
[004] 전통적으로, 넷북들 및 랩톱들은 제 1 제어기에 커플링되는 통합된 GPU들(graphics processing units)과 같은 통합된 그래픽 솔루션들을 이용하였다. 통합된 그래픽 처리 장치들은 그 자신의 전용 메모리를 갖기 보다는 오히려 컴퓨터의 시스템 메모리의 일부를 활용하는 그래픽 프로세서들이다. 일반적으로, 통합된 GPU들은 전용 또는 "별개의" GPU들 보다 구현하는데 더 저렴하고, 별개의 GPU들에 비해 감소된 능력 및 성능 레벨들을 비용이 들지만, 비교적 개선된 배터리 수명 및 더 낮은 전력 이용을 제공한다. 유리하게는, 넷북들 및 랩톱들의 제조자들은 통합된 그래픽 프로세서들 이외에 부가적인 별개의 그래픽 처리 장치들을 포함하는 컴퓨터 시스템들을 제공함으로써 더 높은 그래픽 처리 능력을 갖는 구성들을 제공하기 시작하였다.
[005] 별개의 또는 "전용" GPU들은 더 높은 성능을 갖고 GPU가 근본적인 컴퓨터 시스템과 공유하지 않는, GPU에 의한 이용에 전용되는 로컬 메모리를 또한 가짐으로써 통합된 GPU들과 구분 가능하다. 공통적으로, 별개의 GPU들은 다른 컴포넌트들 중에서도, GPU, 로컬 메모리, 통신 버스들 및 다양한 출력 단자들을 포함하는 이른바 "비디오 카드"라 불리는 별개의 회로 보드들 상에서 구현된다. 종래의 애플리케이션들에서, 이들 비디오 카드들은 통상적으로 PCIe 인터페이스를 통해 비디오 카드가 장착될 수 있는, 컴퓨팅 시스템의 메인 회로 보드(예를 들어, 마더보드)와 인터페이스한다. 일반적으로, 별개의 GPU들은 통합된 GPU들에 비해 상당히 더 높은 성능 레벨들이 가능하지만, 통상적으로 통합된 그래픽 솔루션들에 비해 더 높은 레벨의 전력을 요구하고 소비한다. 통합된 그리고 별개의 그래픽 프로세싱 솔루션들 둘 다를 갖는 휴대용 컴퓨팅 디바이스들은 종종 상황적 필요성들 또는 원하는 성능 레벨들에 따라 성능 및 배터리 수명을 관리하도록 사용자가 특정한 솔루현들 간의 교번적 이용을 가능하게 하는 매커니즘 또는 프로시저를 제공한다.
[006] 위에서 언급된 바와 같이, 통상적인 넷북들 및 랩톱들에서, PCIe 인터페이스는 보조 제어기의 컴포넌트이다. 그러나 데스크톱들과 같은 다른 컴퓨팅 시스템의 PCIe 인터페이스들과 달리, 휴대용 컴퓨팅 디바이스의 PCIe 인터페이스는 종종 감소된 크기로, 결과적으로 감소된 용량으로 이루어진다. 간결한 설계 및 배터리 수명 둘 다에 초점을 둔 몇몇 휴대용 컴퓨팅 디바이스 설계들에 대해, PCIe 인터페이스에 대한 운영체제 지원이 없을 수 있다. 이러한 운영 체제는 PCI 또는 PCIe 구동기들을 갖도록 사전 구성되지 않는다. 그러나 운영 체제에서 PCI 및 PCIe 구동기들의 부재에도, PCIe 디바이스들과 통신할 필요성이 여전히 있을 수 있다. 예를 들어, 이러한 디바이스와 통신하기 위한 필요성은, 주변 디바이스가 운영 체제의 초기화 또는 "부트" 이전에 알려지고, 제거 가능하지 않고 연결되는 경우, 그리고 휴대용 컴퓨팅 디바이스가 이러한 주변 디바이스들의 자동 구성을 지원하도록 구성되지 않는 경우 존재할 수 있다.
[007] 이 요약은 아래의 상세한 설명에서 추가로 설명되는 단순화된 형태로 개념들의 선택을 소개한다. 이 요약은 청구된 요지의 핵심 특징들 또는 필수 특징들을 식별하도록 의도되거나 어떠한 방식으로도 청구된 요지의 범위를 제한하도록 이용되게 의도되지 않는다.
[008] 청구된 요지의 실시예들은 PCI 또는 PCIe 구동기를 이용함 없이 PCIe 호환 가능한 디바이스를 휴대용 컴퓨팅 디바이스 상의 운용 체제에 노출하는 시스템들 및 방법들에 관한 것이다. 일 예시적인 실시예에서, PCIe(peripheral component interconnect express) 호환 가능한 디바이스를 휴대용 컴퓨팅 디바이스 상의 운영 체제에 노출하기 위한 방법은, PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 결정하는 단계; 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 ACPI(advanced configuration power interface)에 통합하는 단계; 및 상기 ACPI에 통합된 바와 같이 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠에 매칭시킴으로써 상기 휴대용 컴퓨팅 디바이스에 커플링된 PCIe 디바이스를 초기화하도록 펌웨어를 이용하는 단계를 포함한다. PCIe 버스를 초기화하도록 펌웨어를 이용하는 단계는 UEFI(unified extensible firmware interface)를 이용하는 단계를 포함할 수 있다.
[9] 다른 예시적인 실시예에서, PCIe(peripheral component interconnect express) 호환 가능한 디바이스를 PCD(portable computing device) 상에서 동작 가능한 운영 체제에 노출하는 PCD가 제공된다. PCD는 운영 체제 및 ACPI(dvanced configuration and power interface)를 저장한 메모리 엘리먼트에 커플링된 프로세서; PCIe 버스를 통해 상기 프로세서에 커플링되는 xHCI(extensible host controller interface); 및 제 1 버스를 통해 상기 프로세서 및 상기 메모리 엘리먼트에 커플링되는 펌웨어 엘리먼트를 포함한다. 펌웨어 엘리먼트는 상기 ACPI의 표들 중 하나 이상 내의 정보에 의해 설명된 바와 같이 자원에 매칭하는, 각각의 콘텐츠를 각각 저장한 복수의 어드레싱 가능한 메모리 엘리먼트들을 갖는 PCIe 베이스 어드레스 레지스터 세트 저장소를 포함한다. 이 콘텐츠는, 운영 체제로 포워딩되면, 그 내부에 식별된 디바이스를 운영 체제에 노출한다.
[10] 또 다른 예시적인 실시예에서, 휴대용 컴퓨팅 디바이스는 PCIe(peripheral component interconnect express) 호환 가능한 디바이스를 구동기를 이용함 없이 운영 체제에 노출한다. 이 휴대용 컴퓨팅 디바이스는 PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 콘텐츠를 제공하기 위한 수단; 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 갖는 ACPI(advanced configuration power interface)를 제공하기 위한 수단; 및 상기 ACPI에 포함되는 바와 같이 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠에 매칭하도록 상기 휴대용 컴퓨팅 디바이스 내의 PCIe 디바이스를 초기화하기 위한 수단을 포함한다.
[11] 또 다른 실시예에서, 컴퓨터 프로그램 물건은 컴퓨터 판독 가능한 프로그램 코드가 구현된 컴퓨터 이용 가능한 매체를 포함한다. 컴퓨터 판독 가능한 프로그램 코드는 복수의 자원들을 갖는 휴대용 컴퓨팅 디바이스를 구성하기 위한 방법을 구현하도록 실행되게 적응된다 . 이 방법은 PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 결정하는 단계; 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 ACPI(advanced configuration power interface)에 비교하는 단계; 및 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠 및 상기 ACPI의 정보가 PCIe 디바이스를 식별할 때, 상기 휴대용 컴퓨팅 디바이스 및 상기 PCIe 디바이스에 커플링된 PCIe 버스를 초기화하도록 펌웨어를 이용하는 단계를 포함한다.
[0012] 도면들에서, 유사한 참조 번호들은 달리 표시되지 않으면 다양한 도면들에 전체에 걸쳐서 유사한 부분들을 지칭한다. "102A" 또는 "102B"와 같은 문자 글자 지정자들을 갖는 참조 번호들에 대해, 문자 캐릭터 지정자들은 동일한 도면에 존재하는 2개의 유사한 부분들 또는 엘리먼트들을 구분할 수 있다. 참조 번호들에 대한 문자 캐릭터 지정자들은 참조 번호가 모든 도면들에서 동일한 참조 번호를 갖는 모든 부분들을 포괄하도록 의도될 때 생략될 수 있다.
도 1은 휴대용 컴퓨팅 디바이스("PCD")의 예시적인 엘리먼트들을 예시하는 기능적 블록도이다.
도 2는 PCD의 대안적인 실시예의 예시적인 엘리먼트들을 예시하는 기능적 블록도이다.
도 3은 PCD의 대안적인 실시예의 예시적인 엘리먼트들을 예시하는 기능적 블록도이다.
도 4는 구동기를 이용하지 않고 운영 체제에 PCIe 호환 가능한 디바이스를 노출하기 위한 방법을 예시하는 흐름도이다.
도 5는 구동기를 이용하지 않고 운영 체제에 PCIe 호환 가능한 디바이스를 노출하기 위한 대안적인 방법을 예시하는 흐름도이다.
도 6은 구동기를 이용하지 않고 운영 체제에 PCIe 호환 가능한 디바이스를 노출하기 위한 대안적인 방법을 예시하는 흐름도이다.
[19] "예시적인"이라는 단어는 본 명세서에서 "예시, 실례 또는 예증으로서의 역할"을 의미하는데 사용된다. 본 명세서에서 "예시적인" 것으로서 기술되는 어떠한 양상도 다른 양상들에 비해 선호되거나 유리한 것으로 반드시 해석되는 것은 아니다.
[20]이 기술에서, "애플리케이션"이라는 용어는 또한 객체 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들 및 패치(patch)들과 같은 실행 가능 콘텐츠를 갖는 파일들을 포함할 수도 있다. 추가로, 본 명세서에서 지칭되는 "애플리케이션"은 또한 열릴 필요가 있을 수도 있는 문서들이나 액세스될 필요가 있는 다른 데이터 파일들과 같이, 본래 실행 가능하지 않은 파일들을 포함할 수도 있다.
[21] "콘텐츠" 라는 용어는 데이터 또는 정보를 설명하며 또한 객체 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들 및 패치들과 같이 실행 가능한 콘텐츠를 갖는 파일들을 포함할 수 있다. 또한, 여기서 지칭되는 "콘텐츠"는 또한 열릴 필요가 있을 수 있는 문서들이나 액세스될 필요가 있는 다른 데이터 파일들과 같이, 본래 실행 가능하지 않은 파일들을 포함할 수도 있다.
[22] 이 설명에서 이용되는 바와 같이, "컴포넌트", "데이터베이스", "모듈", "시스템" 등의 용어들은 컴퓨터-관련 엔티티, 즉, 하드웨어, 펌웨어, 하드웨어 및 소프트웨어의 조합, 소프트웨어, 또는 실행중인 소프트웨어 중 어느 하나를 지칭하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에서 실행중인 프로세스, 프로세서, 객체, 실행 가능한 것, 실행 스레드, 프로그램 및/또는 컴퓨터일 수 있지만, 이들로 제한되지 않는다. 예로서, 컴퓨팅 디바이스 상에서 실행중인 애플리케이션 및 컴퓨팅 디바이스 둘 다는 컴포넌트일 수 있다. 하나 이상의 컴포넌트들은 프로세스 및/또는 실행 스레드 내에 상주할 수 있고, 컴포넌트는 2개 이상의 컴포넌트들 사이에 분배되고 및/또는 하나의 컴퓨터 상에서 로컬화될 수 있다. 또한, 이들 컴포넌트들은 다양한 데이터 구조들이 그 위에 저장된 다양한 컴퓨터 판독 가능한 매체들로부터 실행될 수 있다. 컴포넌트들은 예컨대 하나 이상의 데이터 패킷들(예를 들면, 로컬 시스템에서, 분산 시스템에서 및/또는 신호에 의한 다른 시스템들과의 네트워크(예를 들어, 인터넷)를 통해 다른 컴포넌트와 상호 작용하는 하나의 컴포넌트로부터의 데이터)을 갖는 신호에 따라 로컬 및/또는 원격 프로세스들을 통해 통신할 수 있다.
[23] 이 설명에서, "통신 디바이스", "무선 디바이스", "무선 전화", "무선 통신 디바이스" 및 "무선 핸드셋"이라는 용어들은 상호 교환 가능하게 이용된다. 제 3 세대("3G") 및 제 4 세대("4G") 무선 기술의 출현으로, 더 큰 대역폭 가용성은 더 큰 다양한 무선 성능들을 갖는 보다 많은 휴대용 컴퓨팅 디바이스들을 인에이블하였다.
[024] 이 기술에서, 휴대용 컴퓨팅 디바이스("PCD")라는 용어는 배터리와 같은 한정된 용량의 전원으로 동작하는 임의의 디바이스를 기술하는데 사용된다. 수십 년간 배터리 동작 PCD들이 사용되어 왔지만, 3세대("3G") 및 제 4 세대("4G") 무선 기술의 출현과 결부된 충전 가능한 배터리들의 기술적 진보들은 다양한 능력들을 가진 수많은 PCD들을 가능하게 하였다. 따라서 PCD는 무엇보다도, 셀룰러 전화, 위성 전화, 호출기, 개인용 디지털 보조기기("PDA"), 스마트폰, 네비게이션 디바이스, 스마트북 또는 리더, 미디어 플레이어, 앞서 언급한 디바이스들의 결합, 무선 연결성을 갖는 태블릿 컴퓨터 및 무선 연결성을 가진 랩톱 컴퓨터일 수 있다.
[0025] 도 1은 휴대용 컴퓨팅 디바이스 상에서 동작 가능한 운영 체제에 PCIe 호환 가능한 디바이스를 노출하기 위한 방법들 및 시스템들을 구현하기 위한 무선 전화의 형태의 PCD(100)의 예시적인 비-제한적 양상의 기능적 블록도이다. 도시된 바와 같이, PCD(100)는 다중-코어, 즉 중앙 처리 장치("CPU")(110), 그래픽 프로세서(111) 및 아날로그 신호 프로세서(126)를 갖는 온-칩 시스템(102)을 포함한다. 이들 프로세서들(110, 111, 126)은 당업자에게 알려진 바와 같이, 하나 이상의 시스템 버스들 또는 다른 상호연결 아키텍처 상에서 함께 커플링될 수 있다.
[0026] CPU(110), 그래픽 프로세서(111) 및 아날로그 신호 프로세서(126)는 당업자에 의해 이해되는 바와 같이, 제 0 코어, 제 1 코어 등 내지 제 N 코어(모두가 도시되진 않음)를 포함할 수 있다. 대안적인 실시예들에서, CPU(110) 및 그래픽 프로세서(111) 대신, 하나 이상의 디지털 신호 프로세서("DSP들")는 또한 당업자에 의해 이해되는 바와 같이 이용될 수 있다. 또한, 대안적인 실시예들에서, 2개 이상의 다중-코어 프로세서들이 포함될 수 있다.
[0027] 도 1에서 도시된 바와 같이, 메모리 엘리먼트(112) 및 프로그래밍 가능한 판독-전용 메모리(PROM)(114)는 중앙 처리 장치(110)에 커플링된다. PROM(114)은 PCD(100)의 다양한 하드웨어 엘리먼트들 간의 제어를 지원하고 가능하게 하는 고정 프로그램들 및 데이터 구조들을 포함한다. 메모리 엘리먼트(112)는 적응 가능한 프로그램들, 데이터 구조들 및 운영 체제를 포함한다.
[028] 도 1에 예시된 바와 같이, 디스플레이 제어기(128) 및 터치스크린 제어기(130)가 다중-코어 CPU(110)에 커플링된다. 온-칩 시스템(102) 외부의 터치스크린 디스플레이(132)가 디스플레이 제어기(128) 및 터치스크린 제어기(130)에 커플링된다. PCD(100)에는 또한, 비디오 인코더/디코더("codec")(134), 예를 들어 "PAL(phase-alternating line)" 인코더, "SECAM(sequential couleur avec memoire)" 인코더, "NTSC(national television system(s) committee)" 인코더 또는 다중-코어 중앙 처리 장치("CPU")(110)에 커플링되는 임의의 다른 타입의 비디오 인코더(134)가 포함된다. 비디오 증폭기(136)가 비디오 인코더(134) 및 터치스크린 디스플레이(132)에 커플링된다. 비디오 포트(138)가 비디오 증폭기(136)에 커플링된다. 도 1에 도시된 바와 같이, 유니버셜 직렬 버스("USB(universal serial bus)") 제어기(140)가 CPU(110)에 커플링된다. 또한, USB 포트(142)가 USB 제어기(140)에 커플링된다. 가입자 신원 모듈(SIM: subscriber identity module) 카드(146)가 또한 CPU(110)에 커플링될 수 있다. 또한, 도 1에 도시된 바와 같이, 디지털 카메라(148)가 CPU(110)에 커플링될 수 있다. 예시적인 양상에서, 디지털 카메라(148)는 "CCD"(charge-coupled device) 카메라 또는 "CMOS"(complementary metal-oxide semiconductor) 카메라이다.
[29] 도 1에 더 예시된 바와 같이, 스테레오 오디오 코덱(150)이 아날로그 신호 프로세서(126)에 커플링될 수 있다. 더욱이, 오디오 증폭기(152)가 스테레오 오디오 코덱(150)에 커플링될 수 있다. 예시적인 양상에서, 제 1 스테레오 스피커(154) 및 제 2 스테레오 스피커(156)가 오디오 증폭기(152)에 커플링된다. 도 1은 마이크로폰 증폭기(158)가 또한 스테레오 오디오 코덱(150)에 커플링될 수 있음을 보여준다. 추가로, 마이크로폰(160)이 마이크로폰 증폭기(158)에 커플링될 수 있다. 특정 양상에서, 주파수 변조("FM(frequency modulation)") 라디오 튜너(162)가 스테레오 오디오 코덱(150)에 커플링될 수 있다. 또한, FM 안테나(164)가 FM 라디오 튜너(162)에 커플링된다. 또한, 스테레오 헤드폰들(166)이 스테레오 오디오 코덱(150)에 커플링될 수 있다.
[30] 도 1은 또한, 무선 주파수("RF(radio frequency)") 트랜시버(168)가 아날로그 신호 프로세서(126)에 커플링될 수 있음을 나타낸다. RF 스위치(170)가 RF 트랜시버(168) 및 RF 안테나(172)에 커플링될 수 있다. 도 1에 도시된 바와 같이, 키패드(174)가 아날로그 신호 프로세서(126)에 커플링될 수 있다. 또한, 마이크로폰을 구비한 모노 헤드셋(176)이 아날로그 신호 프로세서(126)에 커플링될 수 있다. 또한, 진동기 디바이스(178)가 아날로그 신호 프로세서(126)에 커플링될 수 있다. 도 1은 또한 전원(180), 예를 들어 배터리가 온-칩 시스템(102)에 커플링됨을 보여준다. 특정 양상에서, 전원(180)은 교류("AC(alternating current)") 전원에 연결된 교류("AC")-DC 변압기로부터 유도되는 재충전 가능한 배터리 또는 직류("DC") 전원을 포함한다.
[0031] PCD(100)의 상술된 엘리먼트들 중 일부는 하드웨어를 포함할 수 있는 반면에, 다른 것들은 소프트웨어를 포함할 수 있고, 또 다른 것들은 하드웨어 및 소프트웨어의 결합을 포함할 수 있다. "자원" 이란 용어는 하드웨어, 소프트웨어 또는 이들의 결합이든지 간에, 프로세서에 의해 제어 가능한 임의의 이러한 엘리먼트를 지칭하도록 본 명세서에서 이용된다. 자원은 일 양상에서 이러한 엘리먼트의 기능의 캡슐화(encapsulation)로서 정의될 수 있다. 달리 표시될 수 있는 경우를 제외하면, "프로세서" 란 용어는 CPU(110), 그래픽 프로세서(111), 아날로그 신호 프로세서(126)와 같은 프로세서, 또는 임의의 다른 프로세서, 제어기 또는 소프트웨어, 펌웨어, 또는 유사한 제어 로직의 제어 하에서 동작하는 유사한 엘리먼트를 지칭하도록 본 명세서에서 이용된다. 2개 이상의 "프로세싱 엔티티들"에 대한 참조는 상이한 칩들 상의 프로세서들, 동일한 프로세서 칩의 상이한 프로세싱 코어들, 동일한 코어 상의 실행의 스레드들, 또는 데이터 전송 패널티 또는 비효율이 있을 수 있는 임의의 다른 프로세싱 엔티티들을 포함한다.
[0032] 아래에서 더 상세히 기술되는 바와 같이, 자원의 예는 프로세서 상에서 실행되는 소프트웨어 엘리먼트이다. 예를 들어, 실행중인 애플리케이션 프로그램에 관련된 스레드와 같은 프로세서 상의 실행의 스레드는 "요청"이 자원 상에서 발행되게 함으로써 자원에 액세스할 수 있다. 아래에서 설명된 바와 같이, 자원 요청들은 "프레임워크"로서 본 개시에서 지칭되는 소프트웨어-기반 시스템을 통해 프로세싱된다. "클라이언트"란 용어는 자원을 요청하는 기능에 영향을 주는 엘리먼트를 지칭하도록 본 개시에 넓게 이용된다. 따라서, 그 용어가 본 명세서에서 이용되면, 스레드는 자원 요청들을 발행할 목적으로 클라이언트를 생성하거나 클라이언트를 이용할 수 있다. 몇몇 인스턴스들에서, 자원은 클라이언트를 생성하거나 이용하여서, 자원은 자원 요청이 다른 자원에 대해 발행되게 할 수 있다는 것이 주의되어야 한다. 아래에서 추가로 상세히 기술되는 바와 같이, 이러한 다른 자원은 요청 자원과 요청된 자원 간의 의존 관계로 인해, "의존" 자원으로서 본 명세서에서 지칭될 수 있다. 자원들 및 클라이언트들은 메모리에서 데이터 구조들에 의해 표현될 수 있다. 자원들이 다중-프로세서 PCD(100)의 특정한 프로세서들에 의해 제어되므로, PCD(100)의 각각의 프로세서가 PCD(100)의 각각의 자원에 대한 액세스를 갖는 것은 아니다.
[0033] 당 분야에 알려진 바와 같이, 메모리 엘리먼트(112)는 운영 체제(O/S) 및 ACPI(advanced configuration and power interface)(도시되지 않음)를 포함한다. 운영 체제는 PCD(100)의 모든 다른 프로그램들을 관리하는 프로그램 또는 프로그램들의 세트이다. 다른 프로그램들 또는 애플리케이션들은 정의된 인터페이스를 통해 서비스들에 대한 요청들을 행함으로써 운영 체제를 이용한다. 또한, PCD의 사용자들은 그래픽 사용자 인터페이스의 커맨드 언어 등과 같은 사용자 인터페이스를 통해 운영 체제와 상호작용할 수 있다. 운영 체제는 부착된 하드웨어 디바이스들로부터의 출력 및 이에 대한 입력은 물론 다수의 애플리케이션들 간의 실행의 우선순위 및 메모리 자원들의 공유를 관리한다. 동작에서, ACPI는 하드웨어 발견, 구성, 전력 관리 및 모니터링을 위해 O/S에 의해 이용된다.
[0034] 도 2 및 도 3에서 예시된 실시예들과 관련하여 더 상세히 설명되는 바와 같이, PROM(114)은 PCD(100)에 커플링된 PCIe 호환 가능한 자원을 설명하는 콘텐츠(즉, 데이터 및/또는 데이터 구조들)를 포함한다. 실행될 때, 메모리(112)에 저장된 운영 체제 또는 애플리케이션 프로그램은 판독-전용 메모리 엘리먼트(예를 들어, PROM(114)) 또는 메모리(112) 내의 다른 위치들에 저장될 수 있는 콘텐츠(즉, PCIe 베이스 어드레스 레지스터들과 연관된 값들)에 액세스하고 이를 운영 체제에 전달하도록 중앙 처리 장치(110) 또는 프로세서에 지시한다. 콘텐츠가 중앙 처리 장치(110) 또는 프로세서 상에서 실행중인 운영 체제에 대해 이용 가능하고, 콘텐츠가 ACPI 표들(운영 체제에 대해 또한 이용 가능함)에 할당된 값들을 기술하고 이와 일치할 때, PCIe 호환 가능한 자원이 이용을 위해 노출되고 이용 가능하다. PCD(100)에 의한 계획적 이용(nominal use)을 위한 이러한 노출 및 가용성은 PCI 또는 PCIe 구동기의 지원 없이 달성될 수 있다는 것에 주의한다.
[0035] 이에 따라, PCD(100) 상에서 동작 가능한 운영 체제에 PCIe 호환 가능한 디바이스를 노출하기 위한 방법은 PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 결정하는 단계, PCD(100) 상에 저장된 ACPI내에 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 통합하는 단계, 및 ACPI에 통합된 바와 같이 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠에 매칭하도록 PCD(100) 상의 PCIe 버스를 초기화하는 단계를 포함할 수 있다. 일 예에서, PROM(114)에 저장된 펌웨어와 같은 시스템 펌웨어는 적절한 PCIe 콘텐츠 - ACPI AML 맵핑을 결정하기 위해 실행 시에 ACPI 표들을 판독하도록 소프트웨어에 의해 액세스된다. 다른 예에서, 소프트웨어는 컴파일 시에 적절한 PCIe 콘텐츠 - ACPI AML 맵핑을 결정한다. 선택된 방법에 무관하게, PCIe 초기화는 ACPI 표들에 할당된 값들과 일치하도록 PCIe 베이스 어드레스 레지스터들을 구성할 것이다. PCIe가 원하는 동작에 대해, 메모리 맵핑된 점대점 버스(memory mapped point-to-point bus)이기 때문에, 메모리 맵핑 동작은 ACPI에서 정의된 시스템 하드웨어 설명에 매칭해야 한다.
[0036] 도 2는 PCD(210)의 대안적인 실시예의 예시적인 엘리먼트들을 예시하는 기능적 블록도이다. 도 2의 기능적 블록도는 청구된 발명의 예시적인 아키텍처 및 동작을 예시하는 컴포넌트들 및 상호연결들을 포함한다. PCD(210)는 요구될 수 있는 바와 같이 부가적인 기능적 엘리먼트들(도시되지 않음)을 포함할 수 있다는 것이 이해되어야 한다. 이들 부가적인 기능적 엘리먼트들 중 모두가 아닌 일부는 도 1과 관련하여 설명되는 실시예에서 소개되었다.
[0037] 도 2에서 예시된 바와 같이, 휴대용 컴퓨팅 디바이스(210)는 프로세서/SoC(system on chip)(220), xHCI(extensible host controller interface)(230), 유니버셜 직렬 버스 3.0 커넥터(240), 메모리 엘리먼트(250) 및 펌웨어 엘리먼트(260)를 포함한다. 메모리 엘리먼트(250) 및 펌웨어 엘리먼트(260)는 제 1 버스(221)에 의해 프로세서/SoC(220)에 커플링된다. 몇몇 실시예들에서, ARM(Acorn RISC Machine)-기반 자원 아키텍처를 이용하여 구성되는 프로세서/SoC(220)는 PCIe 호환 가능한 버스(225)에 의해 xHCI(230)에 커플링된다. xHCI(230)는 버스(235)를 통해 고속 차동 신호들을 USB 3.0 커넥터(240)에 제공한다. USB 3.0 커넥터(240)는 연결(245)을 통해 휴대용 컴퓨팅 디바이스(210) 내의 USB 3.0 호환 가능한 주변 디바이스(270a)에 전력 및 데이터를 제공한다. 대안적으로, USB 3.0 커넥터(240)는 연결(245)을 통해 휴대용 컴퓨팅 디바이스(210)와 별개의 USB 3.0 호환 가능한 주변 디바이스(270b)에 전력 및 데이터를 제공한다.
[0038] 당 분야에 알려진 바와 같이, 메모리 엘리먼트(250)는 운영 체제(O/S)(252) 및 ACPI(advanced configuration and power interface)(254)를 포함한다. 동작에서, ACPI(254)는 하드웨어 발견, 구성, 전력 관리 및 모니터링을 위해 O/S(252)에 의해 이용된다. ACPI(254)는 해석된 실행 가능한 기능 인터페이스, 구성표들, 및 마더보드 디바이스 일람표 및 구성을 포함해서 하드웨어 레지스터들 및 기본 입력 출력 시스템 인터페이스들을 정의한다. 또한, ACPI는 시스템 및 디바이스 전력 상태들 및 열 모델을 정의한다. 위의 것들 모두는 운영 체제 독립적 애플리케이션 프로그래밍 인터페이스들을 통해 PCD(210) 상에서 실행되는 하나 이상의 애플리케이션 프로그램들에 통신될 수 있다.
[0039] 도 2에서 추가로 예시되는 바와 같이, 펌웨어 엘리먼트(260)는 각각의 콘텐츠가 저장된 복수의 어드레싱 가능한 메모리 엘리먼트들(267a 내지 267z)을 갖는 PCIe 베이스 어드레스 레지스터 세트 저장소(265)를 포함한다. 콘텐츠는 ACPI(254)의 표들(254a-254n) 중 하나 이상의 정보에 의해 설명되는 바와 같이, 자원(예를 들어, USB 3.0 주변 디바이스(270a) 또는 USB 3.0 주변 디바이스(270b))에 매칭하는 자원(예를 들어, PCIe 호환 가능한 디바이스)을 설명한다. 복수의 어드레싱 가능한 메모리 엘리먼트들(267a 내지 267z)의 콘텐츠가 펌웨어 엘리먼트(260)로부터 프로세서/SoC(220)로 통신될 때, 콘텐츠는 PCIe 호환 가능한 디바이스(270a, 270b)를 운영 체제(252) 및 운영 체제(252) 하에서 실행중인 애플리케이션 프로그램들에 노출한다.
[0040] 도 3은 PCD(310)의 대안적인 실시예의 예시적인 엘리먼트들을 예시하는 기능적 블록도이다. 도 3의 기능적 블록도는 청구된 발명의 예시적인 아키텍처 및 동작을 예시하는 컴포넌트들 및 상호연결들을 포함한다. PCD(310)는 PCIe 스위치(226), PCIe-이더넷 변환기(236) 및 이더넷 커넥터(244) 외에, 도 2에서 도시된 PCD(210)와 관련하여 앞서 소개된 그러한 엘리먼트들을 포함한다. PCD(310)는 요구될 수 있는 바와 같이 부가적인 기능적 엘리먼트들(도시되지 않음)을 포함할 수 있다는 것이 이해되어야 한다. 이들 부가적인 기능적 엘리먼트들 중 전부가 아닌 일부는 도 1과 관련하여 설명된 실시예들에서 소개되었다.
[0041] 도 3에서 예시된 바와 같이, 휴대용 컴퓨팅 디바이스(310)는 프로세서/SoC(system on chip)(220), xHCI(extensible host controller interface)(230), 유니버셜 직렬 버스 3.0 커넥터(240), 메모리 엘리먼트(250), 펌웨어 엘리먼트(260)를 포함한다. 메모리 엘리먼트(250) 및 펌웨어 엘리먼트(260)는 제 1 버스(221)에 의해 프로세서/SoC(220)에 커플링된다. 몇몇 실시예들에서, ARM(Acorn RISC Machine)-기반 자원 아키텍처를 이용하여 구성되는 프로세서/SoC(220)는 PCIe 스위치(226) 및 PCIe 호환 가능한 버스(225)를 통해 xHCI(230) 및 PCIe-이더넷 변환기(236)에 커플링된다. xHCI(230) 및 PCIe-이더넷 변환기(236)는 버스(227) 상에서 PCIe 스위치(226)에 커플링된다. xHCI(230)은 버스(235)를 통해 고속 차동 신호들을 USB 3.0 커넥터(240)에 제공한다. USB 3.0 커넥터(240)는 연결(245)을 통해 USB 3.0 호환 가능한 주변 디바이스(270)에 전력 및 데이터를 제공한다. 예시되는 실시예에서, USB 3.0 주변 디바이스(270)는 PCD(310)와 별개이다. 그러나 몇몇 실시예들에서, USB 3.0 주변 디바이스(270)는 휴대용 컴퓨팅 디바이스(310)로서 통합(즉, 동일한 하우징 내에)될 수 있다. PCIe-이더넷 변환기(236)는 버스(237)를 통해 신호들을 이더넷 커넥터(244)에 제공한다. 이더넷 커넥터(244)는 이더넷 케이블(도시되지 않음)의 꼬임-선 쌍들(twisted-wire pairs)을 통해 전력 및 데이터를 이더넷 호환 가능한 디바이스에 제공하도록 이용 가능하다.
[0042] 메모리 엘리먼트(250)는 운영 체제(O/S)(252) 및 ACPI(advanced configuration and power interface)(254)를 포함한다. 동작에서, ACPI(254)는 하드웨어 발견, 구성, 전력 관리 및 모니터링을 위해 O/S(252)에 의해 이용된다. ACPI(254)는 해석된 실행 가능한 기능 인터페이스, 구성표들, 및 마더보드 디바이스 일람표 및 구성을 포함해서 하드웨어 레지스터들 및 기본 입력 출력 시스템 인터페이스들을 정의한다. 또한, ACPI는 시스템 및 디바이스 전력 상태들 및 열 모델을 정의한다. 위의 것들 모두는 운영 체제 독립적 애플리케이션 프로그래밍 인터페이스들을 통해 PCD(310) 상에서 실행되는 하나 이상의 애플리케이션 프로그램들에 통신될 수 있다.
[0043] 도 3에서 추가로 예시되는 바와 같이, 펌웨어 엘리먼트(260)는 각각의 콘텐츠가 저장된 복수의 어드레싱 가능한 메모리 엘리먼트들(267a-267z)을 갖는 PCIe 베이스 어드레스 레지스터 세트 저장소(265)를 포함한다. 콘텐츠는 ACPI(254)의 표들(254a-254n) 중 하나 이상의 정보에 의해 설명되는 바와 같이, 자원(예를 들어, PCIe-이더넷 변환기(236))에 매칭하는 자원(예를 들어, PCIe 호환 가능한 디바이스)을 설명한다. 복수의 어드레싱 가능한 메모리 엘리먼트들(267a-267z)의 콘텐츠가 펌웨어 엘리먼트(260)로부터 프로세서/SoC(220)로 전달될 때, 콘텐츠는 PCIe-이더넷 변환기(236)를 운영 체제(252) 및 운영 체제(252) 하에서 실행되는 애플리케이션 프로그램들에 노출한다.
[0044] 도 4는 PCD(210)(도 2) 또는 PCD(310)(도 3)와 같은 PCD 상에서 동작 가능한 운영 체제로 PCIe 호환 가능한 디바이스를 노출하기 위한 방법(400)을 예시하는 흐름도이다. 이 방법은 PCIe 디바이스를 설명하는 PCIe 베이스 레지스터들의 세트에 대한 콘텐츠가 결정되는 블록(410)과 함께 시작한다. 다수의 PCIe 디바이스들 중 임의의 것이 정의될 수 있다. 예를 들어, PCD에 통합된 디바이스들을 포함(그러나 이것으로 제한되지 않음)해서, 그래픽 프로세서, 데이터 저장 디바이스들, 다른 USB 2.0 및 USB 3.0 호환 가능한 디바이스, 이들 및 다른 통신 표준들과 호환 가능한 통신 포트들 또는 커넥터들 중 하나 이상을 정의하는 콘텐츠가 수집될 수 있다.
[0045] 블록(420)에서, PCIe 베이스 레지스터들의 세트에 대한 콘텐츠가 ACPI에서 통합되고, 이에 통신되거나, 또는 다른 방식으로 확인된다. ACPI는 운영 체제 지향 구성, 전력 관리, 모바일, 데스크톱, 및 서버 컴퓨팅 플랫폼의 열 관리를 가능하게 하기 위한 업계 표준 인터페이스이다. ACPI는 BIOS(basic input/output systems)의 전력 관리 코드, 전력 관리에 관한 애플리케이션 프로그래밍 인터페이스들, 플러그-앤-플레이 BIOS에 관한 애플리케이션 프로그래밍 인터페이스들, 및 다중프로세서 규격 정보의 모음을 대체한다. ACPI 디바이스들은 AML(ACPI machine language)로 후속적으로 컴파일되는 ACPI 소스 언어로 기술된다. 운영 체제는 ACPI 디바이스들을 발견 또는 열거(enumerate)하도록 AML을 판독한다.
[0046] 블록(430)에서, PCD의 펌웨어는 AML의 정보(예를 들어, 표들(254a 내지 254n)의 정보)에 매칭하도록 PCIe 버스를 초기화하는데 이용된다. 예를 들어, 그리고 휴대용 컴퓨팅 디바이스(210)(도 2) 및 휴대용 컴퓨팅 디바이스(310)(도 3)와 관련하여 설명된 바와 같이, 펌웨어(260)의 저장소(265)에 저장된 콘텐츠(267)는 프로세서(220)와 하나 이상의 정의된 PCIe 호환 가능한 디바이스들 간의 PCIe 연결을 설정하는데 있어서 이들 엘리먼트들을 지원하기 위해 프로세서(220) 및 메모리(250) 중 하나 또는 둘 다에 적절한 시간에 통신된다. 위에서 표시된 바와 같이, 소프트웨어는 ACPI AML 표들에서 설명된 자원들에 매칭하도록 PCIe 버스를 초기화하는데 이용된다. 위에서 추가로 표시된 바와 같이, 소프트웨어는 적절한 ACPI-PCIe 맵핑을 결정하기 위해 실행 시에 ACPI 표들의 판독 동작을 지시할 수 있다. 대안적으로 ACPI-PCIe 맵핑은 컴파일 시에 결정될 수 있다. 타이밍에 무관하게, PCIe 초기화는 ACPI 표들에 할당된 값들과 일치하도록 PCIe 베이스 어드레스 레지스터들을 구성한다.
[0047] 도 5는 PCD 상에서 동작 가능한 운영 체제에 PCIe 호환 가능한 디바이스를 노출하기 위해 PCD(210)(도 2) 또는 PCD(310)(도 3)와 같은 PCD를 구성하기 위한 방법(500)을 예시하는 흐름도이다. 방법(500)은 콘텐츠가 PCIe 디바이스를 설명하는 PCIe 베이스 레지스터들의 세트에 제공되는 블록(510)과 함께 시작한다. 예시적인 실시예들에서, 콘텐츠는 펌웨어 엘리먼트(260)에 제공된다. 다수의 PCIe 디바이스들 중 임의의 것이 정의될 수 있다. 예를 들어, PCD에 통합된 디바이스들을 포함(그러나 이것으로 제한되지 않음)해서, 그래픽 프로세서, 데이터 저장 디바이스들, 다른 USB 2.0 및 USB 3.0 호환 가능한 디바이스들, 이들 및 다른 통신 표준들과 호환 가능한 통신 포트들 또는 커넥터들 중 하나 이상을 정의하는 콘텐츠가 제공될 수 있다.
[0048] 블록(520)에서, 블록(510)에서 제공된 PCIe 베이스 레지스터들의 세트에 대한 콘텐츠에 매칭하는 AML을 포함하는 ACPI가 제공된다. ACPI는 운영 체제 지향 구성, 모바일, 데스크톱 및 서버 컴퓨팅 플랫폼의 전력 관리 및 열 관리를 가능하게 하기 위한 업계 표준 인터페이스이다. ACPI 디바이스들은 후속적으로 AML(ACPI machine language)로 컴파일되는 ACPI 소스 언어에서 설명된다. 위에서 표시된 바와 같이, PCD 상에서 동작 가능한 운영 체제는 ACPI 디바이스들을 발견하거나 열거하도록 AML을 판독한다.
[0049] 블록(530)에서, PCD 상의 PCIe 버스는 AML의 정보(예를 들어, 표들(254a 내지 254n)의 정보)에 매칭하는 콘텐츠로 초기화된다. 예를 들어, 그리고 휴대용 컴퓨팅 디바이스(210)(도 2) 및 휴대용 컴퓨팅 디바이스(310)(도 3)와 관련하여 설명되는 바와 같이, 펌웨어(260)의 저장소(265)에 저장된 콘텐츠(267)는 프로세서(220)와 하나 이상의 정의된 PCIe 호환 가능한 디바이스들 간의 PCIe 연결을 설정하는데 있어 이들 엘리먼트들을 지원하기 위해 프로세서(220) 및 메모리(250) 중 하나 또는 둘 다에 적절한 시간들에 통신된다. 위에서 표시된 바와 같이, 소프트웨어는 ACPI AML 표들에서 설명된 자원들에 매칭하도록 PCIe 버스를 초기화하는데 이용된다. 위에서 또한 표시된 바와 같이, 소프트웨어는 적절한 ACPI-PCIe 맵핑을 결정하기 위해 실행 시에 ACPI 표들의 판독 동작을 지시할 수 있다. 대안적으로 ACPI-PCIe 맵핑은 컴파일 시에 결정될 수 있다. 타이밍에 무관하게, PCIe 초기화는 ACPI 표들에 할당된 값들과 일치하도록 PCIe 베이스 어드레스 레지스터들을 구성한다.
[0050] 도 6은 컴퓨터 판독 가능한 프로그램 코드가 구현된 컴퓨터 프로그램 물건에 의해 가능하게 될 수 있는 방법(600)을 예시하는 흐름도이며, 상기 컴퓨터 판독 가능한 프로그램 코드는 PCD 상에서 동작 가능한 운영 체제에 하나 이상의 PCIe 호환 가능한 자원들을 노출하도록 PCD를 구성하기 위해 프로세서(220)에 의해 실행되도록 적응된다. 방법(600)은 PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 레지스터들의 세트에 대한 콘텐츠가 결정되는 블록(610)과 함께 시작한다. 다수의 PCIe 호환 가능한 디바이스들 중 임의의 것이 정의될 수 있다. 예를 들어, PCD에 통합된 디바이스들을 포함(그러나 이것으로 제한되지 않음)해서, 그래픽 프로세서, 데이터 저장 디바이스들, 다른 USB 2.0 및 3.0 호환 가능한 디바이스들, 이들 및 다른 통신 표준들과 호환 가능한 통신 포트들 또는 커넥터들 중 하나 이상을 정의하는 콘텐츠가 결정될 수 있다.
[0051] 판단 블록(620)에서, 블록(610)에서 결정된 콘텐츠가 PCD에 커플링된 정의된 PCIe 호환 가능한 디바이스들에 관한 ACPI 정보에 매칭한다는 것을 검증하도록 결정 또는 비교가 수행된다. 판단 블록(620)을 나가는 "아니오"로 라벨링된 흐름 제어 화살표에 의해 표시된 바와 같이, 콘텐츠가 AML에 매칭하지 않는다고 결정될 때, 방법(600)은 AML 또는 콘텐츠 중 하나가 PCIe 호환 가능한 디바이스들을 정의하도록 조정되는 블록(630)으로 이어진다. 그렇지 않고, 판단 블록(620)을 나가는 "예"로 라벨링된 흐름 제어 화살표에 의해 표시된 바와 같이 콘텐츠가 AML의 정보에 매칭할 때, 방법(600)은 PCD의 펌웨어가 AML의 정보(예를 들어, 표들(254a 내지 254n)의 정보)에 매칭하도록 PCIe 버스를 초기화하기 위해 이용되는 블록(640)으로 이어진다. 예를 들어, 그리고 휴대용 컴퓨팅 디바이스(210)(도 2) 및 휴대용 컴퓨팅 디바이스(310)(도 3)와 관련하여 설명되는 바와 같이, 펌웨어(260)의 저장소(265)에 저장된 콘텐츠(267)는 프로세서(220)와 하나 이상의 정의된 PCIe 호환 가능한 디바이스들 간의 PCIe 연결을 설정하는데 있어 이들 엘리먼트들을 지원하도록 프로세서(220) 및 메모리(250) 중 하나 또는 둘 다에 절절한 시간에 통신된다. 위에서 표시된 바와 같이, 소프트웨어는 ACPI AML 표들에서 설명된 자원에 매칭하도록 PCIe 버스를 초기화하는데 이용된다. 위에서 또한 표시된 바와 같이, 소프트웨어는 적절한 ACPI-PCIe 맵핑을 결정하기 위해 실행 시에 ACPI 표들의 판독 동작을 지시할 수 있다. 대안적으로, ACPI-PCIe 맵핑은 컴파일 시에 결정될 수 있다. 타이밍에 무관하게, PCIe 초기화는 ACPI 표들에서 할당된 값들과 일치하도록 PCIe 베이스 어드레스 레지스터들을 구성한다.
[0052] 위의 개시를 고려하면, 당업자는 소프트웨어 구동기들을 이용함 없이, PCIe 버스를 통해 프로세서에 커플링된 PCIe 호환 가능한 디바이스를 운영 체제에 노출하도록 컴퓨터 코드를 작성하거나 적절한 하드웨어 및/또는 다른 로직 또는 회로를 식별할 수 있다. 당업자는 예를 들어, PCIe 디바이스를 식별하기 위해 적절한 베이스 어드레스 레지스터 콘텐츠를 통신하기 위해, 본 명세서에서의 흐름도들 및 연관된 설명에 기초하여 어려움 없이 적절한 하드웨어 및/또는 소프트웨어를 식별할 수 있다. 그러므로 프로그램 코드 명령들 또는 상세한 하드웨어 디바이스들의 특정한 세트의 개시는 설명된 휴대용 컴퓨팅 디바이스들, 시스템들 및/또는 방법들을 어떻게 제조하고 이용하는지에 관한 충분한 이해를 위해 필수적인 것으로 간주되지 않는다. 청구된 컴퓨터 구현 프로세스들의 진보적인 기능은 다양한 프로세스 흐름들을 예시할 수 있는 도면들과 함께 그리고 위의 설명에서 보다 상세히 설명되었다. 또한, 메모리(112 및 250) 및 그 내부에 저장된 명령들과 결합하여, 프로세서들(110, 220 등)은 본 명세서에서 설명된 방법 단계들 중 하나 이상을 수행하기 위한 수단으로서 역할할 수 있다.
[0053] 하나 이상의 예시적인 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 결합으로 구현될 수 있다. 소프트웨어로 구현된다면, 기능들은 컴퓨터 판독 가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 이로서 전송될 수 있다. 컴퓨터 판독 가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체와 컴퓨터 저장 매체를 모두 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있다. 제한이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 광학 또는 다른 자기 저장 디바이스들, 또는 명령들이나 데이터 구조들의 형태로 원하는 프로그램 코드를 전달하거나 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있다. 본 명세서에서 사용된 것과 같은 디스크(disk 및 disc)란 용어는 "CD"(compact disc), 레이저 디스크(laser disc), 광 디스크(optical disc), "DVD"(digital versatile disc), 플로피 디스크(floppy disk) 및 블루레이 디스크(blu-ray disc)를 포함(그러나 이것으로 제한되지 않음)한다. 상기의 조합들 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
선택된 양상들이 예시되고 상세히 기술되었지만, 다음의 청구항들에 의해 정의된 바와 같은, 본 개시의 개념을 벗어나지 않으면서 그 양상들에서 다양한 치환들 및 변형들이 이루어질 수 있다고 이해될 것이다.

Claims (26)

  1. PCIe(peripheral component interconnect express) 호환 가능한 디바이스를 휴대용 컴퓨팅 디바이스 상의 운영 체제에 노출하기 위한 방법으로서,
    PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 결정하는 단계;
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 ACPI(advanced configuration power interface)에 통합하는 단계; 및
    상기 ACPI에 통합된 바와 같이 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠에 매칭시킴으로써 상기 휴대용 컴퓨팅 디바이스에 커플링된 PCIe 디바이스를 초기화하도록 펌웨어를 이용하는 단계
    를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 통합하는 단계는,
    실행 시에 표를 판독하는 단계를 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 통합하는 단계는,
    컴파일 시에 콘텐츠를 제공하는 단계를 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 PCIe 디바이스는,
    xHCI(extensible host controller interface)인,
    방법.
  5. 제 4 항에 있어서,
    상기 xHCI은,
    유니버설 직결 버스 호환 가능한 커넥터에 커플링되고 PCIe 스위치를 통해 프로세서와 통신하는,
    방법.
  6. 제 1 항에 있어서,
    상기 PCIe 버스를 초기화하도록 펌웨어를 이용하는 단계는,
    UEFI(unified extensible firmware interface)를 이용하는 단계를 포함하는,
    방법.
  7. 제 1 항에 있어서,
    상기 PCIe 디바이스는,
    PCIe-이더넷 변환기인,
    방법.
  8. 제 7 항에 있어서,
    상기 PCIe-이더넷 변환기는,
    이더넷 커넥터에 커플링되고 PCIe 스위치를 통해 프로세서와 통신하는,
    방법.
  9. PCIe(peripheral component interconnect express) 호환 가능한 디바이스를 PCD(portable computing device) 상의 운영 체제에 노출하기 위한 PCD로서,
    운영 체제 및 ACPI(dvanced configuration and power interface)를 저장한 메모리 엘리먼트에 커플링된 프로세서;
    PCIe 버스를 통해 상기 프로세서에 커플링되는 xHCI(extensible host controller interface); 및
    제 1 버스를 통해 상기 프로세서 및 상기 메모리 엘리먼트에 커플링되는 펌웨어 엘리먼트
    를 포함하고,
    상기 펌웨어 엘리먼트는,
    상기 ACPI의 표들 중 하나 이상 내의 정보에 의해 설명된 바와 같이 자원에 매칭하고, PCIe 호환 가능한 디바이스를 상기 운영 체제에 노출하는, 각각의 콘텐츠를 저장한 복수의 어드레싱 가능한 메모리 엘리먼트들을 갖는 PCIe 베이스 어드레스 레지스터 세트 저장소를 포함하는,
    PCD.
  10. 제 9 항에 있어서,
    PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠는 실행 시에 판독되는 표에 응답하는,
    PCD.
  11. 제 9 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠는 컴파일 시에 제공되는,
    PCD.
  12. 제 9 항에 있어서,
    상기 xHCI는 PCIe 스위치를 통해 상기 프로세서에 커플링되는,
    PCD.
  13. 제 9 항에 있어서,
    상기 xHCI는 유니버셜 직렬 버스 호환 가능한 커넥터에 커플링되는,
    PCD.
  14. 제 9 항에 있어서,
    PCIe 호환 가능한 스위치를 통해 상기 프로세서에 커플링되는 PCIe-기가비트 이더넷 변환기
    를 더 포함하는,
    PCD.
  15. 제 14 항에 있어서,
    상기 PCIe-기가비트 이더넷 변환기는 이더넷 호환 가능한 커넥터에 커플링되는,
    PCD.
  16. 제 9 항에 있어서,
    UEFI(unified extensible firmware interface)가 상기 PCIe 버스에 커플링된 PCIe 디바이스를 초기화하는,
    PCD.
  17. 트Ie(peripheral component interconnect express) 호환 가능한 디바이스를 구동기 없이 운영 체제에 노출하는 휴대용 컴퓨팅 디바이스로서,
    PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 콘텐츠를 제공하기 위한 수단;
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 갖는 ACPI(advanced configuration power interface)를 제공하기 위한 수단; 및
    상기 ACPI에 포함되는 바와 같이 상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠가 매칭하도록 상기 휴대용 컴퓨팅 디바이스 내의 PCIe 디바이스를 초기화하기 위한 수단
    을 포함하는,
    휴대용 컴퓨팅 디바이스.
  18. 제 17 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 콘텐츠를 제공하기 위한 수단은,
    하드웨어, 소프트웨어 및 펌웨어 중 하나 이상을 포함하는,
    휴대용 컴퓨팅 디바이스.
  19. 제 17 항에 있어서,
    상기 ACPI를 제공하기 위한 수단은,
    하드웨서, 소프트웨어및 펌웨어 중 하나 이상을 포함하는,
    휴대용 컴퓨팅 디바이스.
  20. 제 17 항에 있어서,
    상기 PCIe 디바이스를 초기화하기 위한 수단은,
    표를 포함하는,
    휴대용 컴퓨팅 디바이스.
  21. 제 20 항에 있어서,
    상기 표는 실행 시에 판독되는,
    휴대용 컴퓨팅 디바이스.
  22. 제 20 항에 있어서,
    상기 표는 컴파일 시에 제공되는,
    휴대용 컴퓨팅 디바이스.
  23. 컴퓨터 판독 가능한 프로그램 코드가 구현된 컴퓨터 이용 가능한 매체를 포함하는 컴퓨터 프로그램 물건으로서,
    상기 컴퓨터 판독 가능한 프로그램 코드는 복수의 자원들을 갖는 휴대용 컴퓨팅 디바이스를 구성하기 위한 방법을 구현하도록 실행되게 적응되고, 상기 방법은,
    PCIe 호환 가능한 디바이스를 설명하는 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 결정하는 단계;
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 ACPI(advanced configuration power interface)에 비교하는 단계; 및
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠 및 상기 ACPI의 정보가 PCIe 디바이스를 식별할 때,
    상기 휴대용 컴퓨팅 디바이스 및 상기 PCIe 디바이스에 커플링된 PCIe 버스를 초기화하도록 펌웨어를 이용하는 단계
    를 포함하는,
    컴퓨터 프로그램 물건.
  24. 제 23 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 결정하는 단계는,
    PCIe 디바이스 특정 정보를 판독하는 단계를 포함하는,
    컴퓨터 프로그램 물건.
  25. 제 23 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 상기 ACPI에 비교하는 단계는,
    컴파일 시에 상기 콘텐츠 및 상기 ACPI 중 적어도 하나를 판독하는 단계를 포함하는,
    컴퓨터 프로그램 물건.
  26. 제 23 항에 있어서,
    상기 PCIe 베이스 어드레스 레지스터들의 세트에 대한 콘텐츠를 상기 ACPI에 비교하는 단계는,
    실행 시에 상기 콘텐츠 및 상기 ACPI 중 적어도 하나를 판독하는 단계를 포함하는,
    컴퓨터 프로그램 물건.
KR1020147018530A 2011-12-06 2012-11-08 Pcie(peripheral component interface express) 커플링된 디바이스를 pcd(portable computing device) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 pcd Active KR101576263B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161567425P 2011-12-06 2011-12-06
US61/567,425 2011-12-06
US13/350,931 US8984174B2 (en) 2011-12-06 2012-01-16 Method and a portable computing device (PCD) for exposing a peripheral component interface express (PCIE) coupled device to an operating system operable on the PCD
US13/350,931 2012-01-16
PCT/US2012/064171 WO2013085668A1 (en) 2011-12-06 2012-11-08 Method and a portable computing device (pcd) for exposing a peripheral component interface express (pcie) coupled device to an operating system operable on the pcd

Publications (2)

Publication Number Publication Date
KR20140097563A true KR20140097563A (ko) 2014-08-06
KR101576263B1 KR101576263B1 (ko) 2015-12-09

Family

ID=48524836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147018530A Active KR101576263B1 (ko) 2011-12-06 2012-11-08 Pcie(peripheral component interface express) 커플링된 디바이스를 pcd(portable computing device) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 pcd

Country Status (7)

Country Link
US (1) US8984174B2 (ko)
EP (1) EP2788866B1 (ko)
JP (1) JP5916881B2 (ko)
KR (1) KR101576263B1 (ko)
CN (1) CN103975304B (ko)
IN (1) IN2014CN03959A (ko)
WO (1) WO2013085668A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN202564744U (zh) * 2011-12-28 2012-11-28 钰创科技股份有限公司 高速外设组件互连接口与usb3.0装置之间的桥接器
US8645594B2 (en) * 2012-06-29 2014-02-04 Intel Corporation Driver-assisted base address register mapping
US8806098B1 (en) * 2013-03-15 2014-08-12 Avalanche Technology, Inc. Multi root shared peripheral component interconnect express (PCIe) end point
US9286258B2 (en) 2013-06-14 2016-03-15 National Instruments Corporation Opaque bridge for peripheral component interconnect express bus systems
US9467526B2 (en) 2014-01-15 2016-10-11 Microsoft Technology Licensing, Llc Network communication using intermediation processor
CN104021105B (zh) * 2014-06-17 2016-10-19 成都联星微电子有限公司 一种基于arm的多功能接口扩展装置及方法
TWI630485B (zh) * 2014-10-03 2018-07-21 鈺群科技股份有限公司 擴展主控制器和其操作方法
CN104679144A (zh) * 2015-02-15 2015-06-03 长芯盛(武汉)科技有限公司 一种终端一体机和一种局域网系统
CN104679145A (zh) * 2015-02-15 2015-06-03 长芯盛(武汉)科技有限公司 一种终端及系统
US20170010996A1 (en) * 2015-07-09 2017-01-12 Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd. System for expansion of input/output ports of a computer
WO2017111858A1 (en) * 2015-12-24 2017-06-29 Intel Corporation Techniques to provide wireless storage and processing capabilities
KR102521652B1 (ko) * 2016-07-06 2023-04-13 삼성전자주식회사 암호화된 고해상도 비디오/오디오 데이터를 전송할 수 있는 인터페이스 모듈 및 이를 포함하는 디스플레이 시스템
US10091904B2 (en) * 2016-07-22 2018-10-02 Intel Corporation Storage sled for data center
US10372660B2 (en) * 2016-09-08 2019-08-06 Eever Technology, Inc. Extensible host controller and an operation method thereof
US10620963B2 (en) * 2017-07-19 2020-04-14 Vmware, Inc. Providing fallback drivers for IO devices in a computing system
US10789188B1 (en) * 2019-02-08 2020-09-29 Facebook, Inc. Systems and methods for providing semi-custom printed circuit boards based on standard interconnections
TWI718618B (zh) * 2019-08-12 2021-02-11 英業達股份有限公司 自動配置PCIe插槽的BIOS及方法
US20220222006A1 (en) * 2021-01-14 2022-07-14 Seagate Technology Llc In-device handling of file and object life cycle
US11366769B1 (en) * 2021-02-25 2022-06-21 Microsoft Technology Licensing, Llc Enabling peripheral device messaging via application portals in processor-based devices
CN114125902B (zh) * 2021-11-30 2024-09-20 上海移远通信技术股份有限公司 Wwan设备及其配置方法、装置、存储介质
CN115297187B (zh) * 2022-07-12 2023-11-17 重庆大学 一种网络通讯协议与总线协议的转换装置及集群系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119191A (en) * 1998-09-01 2000-09-12 International Business Machines Corporation Performing PCI access cycles through PCI bridge hub routing
US6185677B1 (en) * 1998-09-30 2001-02-06 Phoenix Technologies Ltd. Automatic generation of ACPI source language for peripheral resource configuration
US6931553B1 (en) * 2000-04-20 2005-08-16 Microsoft Corporation Preventing general purpose event interrupt storms in a computer system
US6832278B2 (en) 2001-03-15 2004-12-14 Microsoft Corporation PCI bar target operation region
US7493438B2 (en) 2001-10-03 2009-02-17 Intel Corporation Apparatus and method for enumeration of processors during hot-plug of a compute node
JP2003303071A (ja) * 2002-01-16 2003-10-24 Canon Inc 情報処理装置及び情報処理方法及び情報処理システム及び制御プログラム及び記憶媒体
US7664903B2 (en) * 2002-02-25 2010-02-16 Solid Access Technologies LLC Control unit with PCI and SCSI buses and computing system with electronic semiconductor disk
US20030204656A1 (en) * 2002-04-30 2003-10-30 Philip Ha PDA to PCMCIA universal adapter
US7155379B2 (en) * 2003-02-25 2006-12-26 Microsoft Corporation Simulation of a PCI device's memory-mapped I/O registers
US7600082B2 (en) * 2004-11-30 2009-10-06 Hewlett-Packard Development Company, L.P. Virtualization logic
US7480755B2 (en) * 2004-12-08 2009-01-20 Hewlett-Packard Development Company, L.P. Trap mode register
US7392172B2 (en) * 2005-04-28 2008-06-24 Hewlett-Packard Development Company, L.P. Providing virtual device access via firmware
JP4831317B2 (ja) 2006-02-24 2011-12-07 日本電気株式会社 Pci多段ブリッジ構成コンピュータにおけるacpiマシン語テーブル記述方法及び装置とそのプログラム
US7953996B2 (en) 2006-12-18 2011-05-31 Hewlett-Packard Development Company, L.P. ACPI to firmware interface
CN100504823C (zh) * 2007-04-19 2009-06-24 杭州华三通信技术有限公司 实现周边元件接口加速总线插卡热插拔的方法及装置
US7752360B2 (en) * 2007-05-16 2010-07-06 Nuova Systems, Inc. Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus
CN101779196B (zh) * 2007-08-24 2012-08-22 富士通株式会社 Pci设备的i/o空间请求抑制方法
JP5163180B2 (ja) * 2008-02-26 2013-03-13 日本電気株式会社 デバイス制御装置
EP2508987A1 (en) * 2008-04-04 2012-10-10 Interdigital Patent Holdings, Inc. Wireless modem device usable on computer device without driver installation
US9256560B2 (en) * 2009-07-29 2016-02-09 Solarflare Communications, Inc. Controller integration
EP2480977B1 (en) * 2009-09-25 2014-11-05 Hewlett-Packard Development Company, L.P. Mapping non-prefetchable storage locations into memory mapped input/output space
US8117350B2 (en) * 2009-11-03 2012-02-14 Oracle America, Inc. Configuration space compaction

Also Published As

Publication number Publication date
JP5916881B2 (ja) 2016-05-11
JP2015501048A (ja) 2015-01-08
EP2788866A1 (en) 2014-10-15
KR101576263B1 (ko) 2015-12-09
IN2014CN03959A (ko) 2015-09-25
CN103975304B (zh) 2017-07-21
US20130145052A1 (en) 2013-06-06
CN103975304A (zh) 2014-08-06
WO2013085668A1 (en) 2013-06-13
US8984174B2 (en) 2015-03-17
EP2788866B1 (en) 2017-08-30

Similar Documents

Publication Publication Date Title
KR101576263B1 (ko) Pcie(peripheral component interface express) 커플링된 디바이스를 pcd(portable computing device) 상에서 동작 가능한 운영 체제에 노출하기 위한 방법 및 pcd
US8943232B2 (en) System method for enumerating client devices embedded in a user device during reboot, wake up or restart of user device
JP6378325B2 (ja) 非対称な記憶容量を有する複数チャネルメモリアーキテクチャにわたってデータを均一にインターリーブするためのシステムおよび方法
TWI465926B (zh) 支援多個高速設備及單一超快速設備之通用序列匯流排集線器裝置
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
CN106575273B (zh) 用于扩展片上系统的存储器的系统和方法
TW201227516A (en) System and method for facilitating wireless communication during a pre-boot phase of a computing device
US20180365425A1 (en) Systems and methods for securely booting a system on chip via a virtual collated internal memory pool
CN107111564B (zh) 用于对连接器进行串接的适配器
US20190332262A1 (en) Information Handling System with Reduced Reset During Dual In-Line Memory Module Goal Reconfiguration
CN116107945A (zh) 一种配置带宽的装置、方法、系统、设备及介质
US10877918B2 (en) System and method for I/O aware processor configuration
US20190004816A1 (en) Systems and methods for heterogeneous system on a chip servers
CN110741359B (zh) 改变共享总线上集成电路的从属标识的系统和方法
US20210034364A1 (en) Processing unit, processor, processing system, electronic device and processing method
CN114185720B (zh) 服务器动态热备份的方法、装置、设备及存储介质
WO2016040189A1 (en) System and method for sharing a solid-state non-volatile memory resource
CN100413359C (zh) 移动终端
CN115562921A (zh) 一种基于海光平台的网卡性能优化方法、装置及介质
US11762414B2 (en) Methods for preventing PCIe misconfigurations
US20240296053A1 (en) Multi-initialization implementation dxe driver loading system
CN116048239A (zh) 一种控制方法及芯片
WO2021021738A1 (en) Processing unit, processor, processing system, electronic device and processing method

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20140703

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
A302 Request for accelerated examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20150430

Comment text: Request for Examination of Application

PA0302 Request for accelerated examination

Patent event date: 20150430

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20150909

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20151203

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20151204

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20180928

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20190924

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20210929

Start annual number: 7

End annual number: 7

PR1001 Payment of annual fee

Payment date: 20230921

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee