JP6147840B2 - ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム - Google Patents

ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム Download PDF

Info

Publication number
JP6147840B2
JP6147840B2 JP2015247188A JP2015247188A JP6147840B2 JP 6147840 B2 JP6147840 B2 JP 6147840B2 JP 2015247188 A JP2015247188 A JP 2015247188A JP 2015247188 A JP2015247188 A JP 2015247188A JP 6147840 B2 JP6147840 B2 JP 6147840B2
Authority
JP
Japan
Prior art keywords
state
protocol stack
recovery time
transition
point
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.)
Active
Application number
JP2015247188A
Other languages
English (en)
Other versions
JP2016076257A5 (ja
JP2016076257A (ja
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 JP2016076257A publication Critical patent/JP2016076257A/ja
Publication of JP2016076257A5 publication Critical patent/JP2016076257A5/ja
Application granted granted Critical
Publication of JP6147840B2 publication Critical patent/JP6147840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/3243Power saving in microcontroller unit
    • 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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/3246Power saving characterised by the action undertaken by software initiated power-off
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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/4418Suspend and resume; Hibernate and awake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Information Transfer Systems (AREA)

Description

本開示は、計算システムに関し、特に(限定することなく)ルートポート及びルートポートが搭載されたエンドポイント(RPIE)に関する。
ユーザの日常生活において電子装置がより複雑になり、ユビキタスなものになるに従って、それらに対してより多様な要求が求められる。これらの要求の多くを充足するため、多くの電子装置は、CPU、通信デバイス、グラフィックアクセラレータなどの多数の異なるデバイスを有することになる。多くの状況では、これらのデバイスの間の通信量が多くなる可能性がある。さらに、多くのユーザは装置のパフォーマンスに関して高い期待を有している。ユーザは、自分の装置により処理が実行されることを待機するのにあまり寛容でなくなりつつある。さらに、多くの装置は、かなりの量のデバイス間通信に伴うより複雑かつ負担の大きなタスクを実行している。
従って、本発明の1つの課題は、迅速なレスポンス時間を可能にするデバイス間の通信を可能にすることである。
上記課題を解決するため、本発明の一態様は、デバイスが低電力状態にあると判断し、前記低電力状態からアクティブ状態への前記デバイスの遷移を開始し、前記低電力状態から前記アクティブ状態への前記デバイスの遷移に対応する前記デバイスの能力を特定し、前記能力に少なくとも部分的に基づき前記低電力状態から前記アクティブ状態への前記デバイスの遷移を完了させるリカバリロジックを有する装置であって、前記低電力状態から前記アクティブ状態への遷移について固定的な最小リカバリ時間が規定され、前記遷移は、前記固定的な最小リカバリ時間の経過前に完了される装置に関する。
本発明によると、迅速なレスポンス時間を可能にするデバイス間の通信を可能にすることができる。
図1は、少なくとも1つの実施例によるマルチコアプロセッサを有する計算システムのブロック図の一実施例を示す。 図2は、少なくとも1つの実施例によるインターコネクトアーキテクチャを有する計算システムの一実施例を示す。 図3は、少なくとも1つの実施例によるレイヤ化スタックを有するインターコネクトアーキテクチャの一実施例を示す。 図4は、少なくとも1つの実施例によるインターコネクトアーキテクチャ内で生成又は受信されるリクエスト又はパケットの一実施例を示す。 図5は、少なくとも1つの実施例によるインターコネクトアーキテクチャの送信機及び受信機のペアの一実施例を示す。 図6は、一例となる電力管理状態遷移図を示す。 図7は、少なくとも1つの実施例によるフロー図である。 図8は、少なくとも1つの実施例によるフロー図である。 図9は、少なくとも1つの実施例によるフロー図である。 図10は、計算システムのブロック図の他の実施例を示す。
以下、図面に基づいて本発明の実施の形態を説明する。
以下の説明では、特定のタイプのプロセッサ及びシステムコンフィギュレーション、特定のハードウェア構造、特定のアーキテクチャ及びマイクロアーキテクチャの詳細、特定のレジスタコンフィギュレーション、特定の命令タイプ、特定のシステムコンポーネント、特定の測定/高さ、特定のプロセッサパイプラインステージ及び処理などの多数の具体的詳細が、本発明の完全な理解を提供するため与えられる。しかしながら、これらの具体的な詳細が本発明を実現するのに利用される必要がないことは明らかであろう。他の例では、特定の他のプロセッサアーキテクチャ、説明されたアルゴリズムのための特定の論理回路/コード、特定のファームウェアコード、特定のインターコネクト処理、特定のロジックコンフィギュレーション、特定の製造技術及び物質、特定のコンパイラ実装、特定のコードによるアルゴリズムの表現、特定の電力ダウン及びゲート化技術/ロジック及びコンピュータシステムの他の特定の処理の詳細などの周知のコンポーネント又は方法は、本発明を不要に不明瞭にすることを回避するため詳細には説明されない。
以下の実施例は計算プラットフォーム又はマイクロプロセッサなどにおけるルートポート及びルートポートが搭載されたエンドポイントのレジューム時間の向上を参照して説明されるが、他の実施例は、他のタイプの集積回路及びロジックデバイスに適用可能である。ここに説明される実施例の同様の技術及び教示は、レジューム時間の向上を享受する他のタイプの回路又は半導体デバイスに適用されてもよい。例えば、開示される実施例は、デスクトップコンピュータシステム又はUltrabooksTMに限定されるものでなく、携帯デバイス、タブレット、他のシンノートブック、SOC(System On Chip)デバイス及び埋め込みアプリケーションなどの他のデバイスにおいて利用されてもよい。携帯デバイスのいくつかの具体例は、携帯電話、インターネットプロトコルデバイス、デジタルカメラ、PDA(Personal Digital Assistant)及び携帯PCを含む。埋め込みアプリケーションは、典型的には、マイクロコントローラ、デジタル信号プロセッサ(DSP)、SOC、ネットワークコンピュータ(NetPC)、セットトップボックス、ネットワークはぶ、WAN(Wide Area Network)スイッチ、又は後述される機能及び処理を実行可能な他の何れかのシステムを含む。さらに、ここに説明される装置、方法及びシステムは、物理的な計算デバイスに限定されず、レジューム時間を向上させるためのソフトウェア最適化に関するものであってもよい。
図1は、少なくとも1つの実施例によるルートポート及びルートポートを搭載したエンドポイント(RPIE)のレジューム時間の向上に関連するコンポーネントを示すブロック図である。図1の具体例は、ルートポート及びルートポートを搭載したエンドポイントのレジューム時間の向上に関連するコンポーネントの単なる一例であり、請求項の範囲を限定するものでない。例えば、コンポーネントに帰属する処理は可変的であり、コンポーネントの個数も可変的であり、コンポーネントの合成も可変的である。例えば、いくつかの実施例では、図1の具体例の1つのコンポーネントに帰属可能な処理は、1以上の他のコンポーネントに配分されてもよい。
プロセッサ100は、マイクロプロセッサ、埋め込みプロセッサ、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、携帯プロセッサ、アプリケーションプロセッサ、コプロセッサ、SOC又はコードを実行する他のデバイスなどの何れかのプロセッサ又は処理デバイスを含む。一実施例では、プロセッサ100は、非シンメトリックコア又はシンメトリックコア(図示された実施例)を含むものであってもよい少なくとも2つのコア101,120を有する。しかしながら、プロセッサ100は、シンメトリック又は非シンメトリックな何れかの個数の処理要素を含むものであってもよい。
一実施例では、処理要素は、ソフトウェアスレッドをサポートするハードウェア又はロジックを表す。ハードウェア処理要素の具体例として、スレッドユニット、スレッドスロット、スレッド、プロセスユニット、コンテクスト、コンテクストユニット、論理プロセッサ、ハードウェアスレッド、コア及び/又は実行状態又はアーキテクチャ状態などのプロセッサの状態を保持可能な他の何れかの要素があげられる。すなわち、一実施例では、処理要素は、ソフトウェアスレッド、オペレーティングシステム、アプリケーション又は他のコードなどのコードに独立に関連付け可能な何れかのハードウェアを表す。物理プロセッサ(又はプロセッサソケット)は、典型的には、コア又はハードウェアスレッドなどの何れかの個数の他の処理要素を含むものであってもよい集積回路を表す。
コアは、しばしば独立したアーキテクチャ状態を維持可能な集積回路に配置されるロジックを表し、独立して維持される各アーキテクチャ状態は、少なくともいくつかの専用の実行リソースに関連付けされる。コアと対照的に、ハードウェアスレッドは、典型的には、独立したアーキテクチャ状態を維持可能な集積回路に配置された何れかのロジックを表し、独立に維持されたアーキテクチャ状態は、実行リソースへのアクセスを共有する。理解できるように、特定のリソースが共有され、他のものがアーキテクチャ状態に専用とされるとき、ハードウェアスレッドとコアとの用語の間には重複がある。また、コアとハードウェアスレッドとはしばしば、オペレーティングシステムが各論理プロセッサ上の処理を個別にスケジューリング可能である場合、個々の論理プロセッサとしてオペレーティングシステムによりみなされる。
図1に示されるように、物理プロセッサ100は、2つのコア101,102を有する。ここで、コア101,102は、シンメトリックコア、すなわち、同一のコンフィギュレーション、機能ユニット及び/又はロジックを備えたコアとみなされる。他の実施例では、コア101はアウトオブオーダプロセッサコアを有し、コア102はインオーダプロセッサコアを有する。しかしながら、コア101,102は、ネイティブコード、ソフトウェアにより管理されたコア、ネイティブISA(Instruction Set Architecture)を実行するよう構成されるコア、変換されたISAを実行するよう構成されたコア、一緒に設計されたコア又は他の既知のコアなどの何れかのタイプのコアから個別に選択されてもよい。ヘテロジーニアスコア環境(すなわち、非シンメトリックコア)では、バイナリ変換などのある変換形態が、一方又は双方のコア上のコアをスケジューリング又は実行するのに利用されてもよい。さらなる説明のため、コア101に示される機能ユニットは、以下においてさらに詳細に説明され、コア102のユニットは、図示された実施例において同様に動作する。
図示されるように、コア101は、ハードウェアスレッドスロット101a,101bとして参照されてもよい2つのハードウェアスレッド101a,101bを有する。従って、一実施例では、オペレーティングシステムなどのソフトウェアエンティティは、4つの別個のプロセッサ、すなわち、4つのソフトウェアスレッドを同時に実行可能な4つの論理プロセッサ又は処理要素としてプロセッサ100をみなすことが可能である。上述されるように、第1スレッドはアーキテクチャ状態レジスタ101aに関連付けされ、第2スレッドはアーキテクチャ状態レジスタ101bに関連付けされ、第3スレッドはアーキテクチャ状態レジスタ102aに関連付けされ、第4スレッドはアーキテクチャ状態レジスタ102bに関連付けされてもよい。ここで、各アーキテクチャ状態レジスタ(101a,101b,102a,102b)は、上述されるように、処理要素、スレッドスロット又はスレッドユニットとして参照されてもよい。図示されるように、アーキテクチャ状態レジスタ101aは、アーキテクチャ状態レジスタ101bにおいて複製され、個々のアーキテクチャ状態/コンテクストは、論理プロセッサ101a,101bのための格納可能である。コア101では、アロケータリネーマブロック103の命令ポインタ及び梨ネーミングロジックなどの他のより小さなリソースがまた、スレッド101a,101bのために複製されてもよい。リオーダ/リタイアメントユニット135におけるリオーダバッファ、ブランチターゲットバッファ(BTB)及び命令変換バッファ(I−TLB)120、ロード/ストアバッファ及びキューなどのいくつかのリソースは、パーティション処理を介し共有されてもよい。汎用内部レジスタ、ページテーブルベースレジスタ、低レベルデータキャッシュ及びデータTLB150、実行ユニット140及びアウトオブオーダユニット135の一部などの他のリソースは、完全に共有される可能性がある。
プロセッサ100はしばしば、完全に共有される、パーティション化を介し共有される、又は処理要素に専用であってもよい他のリソースを含む。図1において、プロセッサの例示的な論理ユニット/リソースを備えた一例となるプロセッサの実施例が示される。プロセッサは、これらの機能ユニットの何れかを含む又は省略すると共に、他の何れか既知の図示されない機能ユニット、ロジック又はファームウェアを含むものであってもよいことに留意されたい。図示されるように、コア101は、簡単化された典型的なアウトオブオーダ(OOO)プロセッサコアを有する。しかしながら、インオーダプロセッサは、異なる実施例において利用されてもよい。OOOコアは、実行/選択されるブランチを予測するBTB及びI−TLB120と、命令のためアドレス変換エントリを格納するためのBTB及びI−TLB120とを含む。
コア101はさらに、BTB及びI−TLB120に接続され、フェッチされた要素を復号化する復号化モジュール125を有する。一実施例では、フェッチロジックは、スレッドスロット101a,101bに関連付けされる個々のシーケンサを含む。通常、コア101は、プロセッサ100上で実行可能な命令を規定/指定する第1ISAに関連付けされる。しばしば、第1ISAの一部であるマシーンコード命令は、実行される命令又は処理を参照/指定する命令の一部(オペコードと呼ばれる)を含む。復号化ロジック125は、オペコードから命令を認識し、第1ISAにより規定されるような処理のためのパイプラインにより復号化された命令をわたす回路を含む。例えば、以下においてより詳細に説明されるように、一実施例では、デコーダ125は、トランザクション命令などの特定の命令を認識するよう設計又は構成されるロジックを含む。デコーダ125による認識の結果として、アーキテクチャ又はコア101は、適切な命令に関連付けされたタスクを実行するため特定の所定のアクションを選択する。ここで説明されたタスク、ブロック、処理及び方法の何れかが、単一の命令、又は一部が新たな又は古い命令であってもよい複数の命令に応答して実行されてもよいことに留意することが重要である。一実施例では、デコーダ125は同一のISA(又はそれのサブセット)を認識することに留意されたい。あるいは、ヘテロジーニアスコア環境では、デコーダ125は第2ISA(第1ISAのサブセット又は異なるISA)を認識する。
一例では、リネーマ/アロケータブロック130は、命令処理結果を格納するためのレジスタファイルなど、リソースを確保するためのアロケータを含む。しかしながら、スレッド101a,101bは、アウトオブオーダ実行が可能であり、アロケータリネーマブロック130はまた、命令結果をトラックするためのリオーダバッファなどの他のリソースを確保する。ユニット130はまた、プログラム/命令リファレンスレジスタをプロセッサ100の内部の他のレジスタにリネーミングするためのレジスタリネーマを有してもよい。リオーダ/リタイアメントユニット135は、アウトオブオーダ命令と、以降のアウトオブオーダに実行された命令のインオーダリタイアメントとをサポートするため、上述したリオーダバッファ、ロードバッファ及びストアバッファなどのコンポーネントを含む。
一実施例では、スケジューラ実行ユニットブロック140は、実行ユニット上の命令/処理をスケジューリングするためのスケジューラユニットを有する。例えば、浮動小数点命令は、利用可能な浮動小数点実行ユニットを有する実行ユニットのポート上でスケジューリングされる。実行ユニットに関連するレジスタファイルはまた、情報命令処理結果を格納するため含まれる。一例となる実行ユニットは、浮動小数点実行ユニット、整数実行ユニット、ジャンプ実行ユニット、ロード実行ユニット、ストア実行ユニット及び他の既知の実行ユニットを含む。
下位レベルデータキャッシュ及びデータ変換バッファ(D−TLB)150は、実行ユニット140に接続される。データキャッシュは、メモリコヒーレンシ状態において保持されるデータオペランドなどの最近利用された/動作した要素を格納するものである。D−TLBは、最近のバーチャル/リニアから物理アドレスへの変換を格納するものである。具体例として、プロセッサは、物理メモリを複数のバーチャルページに分割するためのページテーブル構造を有してもよい。
ここで、コア101,102は、オンチップインタフェース110に関連付けされた第2レベルキャッシュなどの上位レベル又はさらなるアウトキャッシュへのアクセスを共有する。上位レベル又はさらなるアウトは実行ユニットから増加又は離れるキャッシュレベルを表すことに留意されたい。一実施例では、上位レベルキャッシュは、第2又は第3レベルデータキャッシュなどのラストレベルデータキャッシュ、すなわち、プロセッサ100上のメモリ階層における最後のキャッシュである。しかしながら、上位レベルキャッシュはこれに限定されず、命令キャッシュに関連付け又は含むものであってもよい。あるタイプの命令キャッシュであるトレースキャッシュが、直近に復号化されたトレースを格納するため、デコーダ125の後に接続されてもよい。ここで、命令はマイクロ命令(すなわち、デコーダにより認識される汎用命令)を表し、複数のマイクロ命令(マイクロ処理)に復号化されてもよい。
図示されたコンフィギュレーションでは、プロセッサ100はまた、オンチップインタフェースモジュール110を有する。従来、以下でより詳細に説明されるメモリコントローラは、プロセッサ100の外部の計算システムに含まれていた。このシナリオでは、オンチップインタフェースモジュール110は、システムメモリ175、チップセット(しばしばメモリ175に接続するためのメモリコントローラハブと、周辺デバイスに接続するためのI/Oコントローラハブとを含む)、メモリコントローラハブ、ノースブリッジ又は他の集積回路など、プロセッサ100の外部のデバイスと通信するためのものである。このシナリオでは、バス105は、マルチドロップバス、ポイント・ツー・ポイントインターコネクト、シリアルインターコネクト、パラレルバス、コヒーレント(キャッシュコヒーレントなど)バス、レイヤ化プロトコルアーキテクチャ、異なるバス及びGTLバスなどの何れか既知のインターコネクトを有してもよい。
メモリ175は、プロセッサ100に専用とされてもよいし、又はシステムの他のデバイスと共有されてもよい。一般的なタイプのメモリ175は、DRAM、SRAM、不揮発性メモリ(NVメモリ)及び他の既知の記憶デバイスを含む。デバイス180は、グラフィックアクセラレータ、メモリコントローラハブに接続されるプロセッサ若しくはカード、I/Oコントローラハブに接続されるデータストレージ、無線送受信機、フラッシュデバイス、オーディオコントローラ、ネットワークコントローラ又は他の既知のデバイスを含むものであってもよい。
しかしながら、最近、より多くのロジック及びデバイスがSOCなどの単一のダイに統合されるに従って、これらのデバイスのそれぞれはプロセッサ100上に搭載される可能性がある。例えば、一実施例では、メモリコントローラハブは、プロセッサ100と同一パッケージ及び/又はダイ上にある。ここで、コア110の一部(オンコア部分)は、メモリ175やデバイス180などの他のデバイスとインタフェースをとるための1以上のコントローラを有する。当該デバイスとインタフェースをとるためのインターコネクト及びコントローラを含むコンフィギュレーションは、しばしばオンコア(又はアンコアコンフィギュレーション)と呼ばれる。一例として、オンチップインタフェース110は、オンチップ通信のためのリングインターコネクトと、オフチップ通信のための高速シリアルポイント・ツー・ポイントリンク105とを有する。さらに、SOC環境では、ネットワークインタフェース、コプロセッサ、メモリ175、デバイス180及び他の何れか既知のコンピュータデバイス/インタフェースなどのさらに多くのデバイスが、高機能及び低電力消費をスモールフォームファクタに提供するため、単一のダイ又は集積回路上に搭載されてもよい。
一実施例では、プロセッサ100は、ここに開示される装置及び方法をサポートするため、又はそれらとインタフェースをとるため、アプリケーションコード176をコンパイル、変換及び/又は最適化するコンパイラ、最適化及び/又は変換コード177を実行可能である。コンパイラはしばしば、ソーステキスト/コードをターゲットテキスト/コードに変換するためのプログラム又はプログラムセットを含む。通常、コンパイラによるプログラム/アプリケーションコードのコンパイルは、ハイレベルプログラミング言語コードを低レベルマシーン又はアセンブリ言語コードに変換するため複数のフェーズ及びパスにおいて実行される。さらに、単一パスコンパイラが、シンプルなコンパイルのため依然として利用されてもよい。コンパイラは、何れか既知のコンパイル技術を利用し、レキシカル解析、前処理、パーシング、意味解析、コード生成、コード変換及びコード最適化などの何れか既知のコンパイラ処理を実行してもよい。
より大きなコンパイラはしばしば複数のフェーズを有するが、最も頻繁には、これらのフェーズは2つの一般的なフェーズ、(1)フロントエンド、すなわち、一般に構文処理、意味処理及び変換/最適化が行われるところ、(2)バックエンド、すなわち、一般に解析、変換、最適化及びコード生成が行われるところに含まれる。一部のコンパイラは、コンパイラのフロントエンドとバックエンドとの間の描写を曖昧に示すミドルを表す。この結果、コンパイラの挿入、関連付け、生成又は他の処理の参照は、上述されたフェーズ又はパスの何れかと共に、コンパイラの他の何れか既知のフェーズ又はパスにおいて実行されてもよい。例示的な具体例として、コンパイラは、コンパイルのフロントエンドフェーズにおけるコール/処理の挿入と、その後の変換フェーズにおけるコール/処理の下位レベルコードへの変換などのコンパイルの1以上のフェーズにおける処理、コール、ファンクションなどを挿入する。動的なコンパイル中、コンパイラコード又は動的最適化コードは、当該処理/コールを挿入すると共に、ランタイム中に実行用のコードを最適化してもよいことに留意されたい。特定の例示的な具体例として、バイナリコード(すでにコンパイルされたコード)は、ランタイム中に動的に最適化されてもよい。ここで、プログラムコードは、動的な最適化コード、バイナリコード又はこれらの組み合わせを含むものであってもよい。
コンパイラと同様に、バイナリトランスレータなどのトランスレータは、コードを最適化及び/又は変換するため、静的又は動的にコードを変換する。従って、コード、アプリケーションコード、プログラムコード又は他のソフトウェア環境の実行の表現は、(1)プログラムコードをコンパイルし、ソフトウェア構造を維持し、他の処理を実行し、コードを最適化し、又はコードを変換するための最適化装置又はトランスレータのコンパイラプログラム及び最適化コードの動的又は静的な実行、(2)最適化/コンパイルされたアプリケーションコードなどの処理/コールを含むメインプログラムコードの実行、(3)ソフトウェア構造を維持し、他のソフトウェア関連処理を実行し、又はコードを最適化するためメインプログラムコードに関連するライブラリなどの他のプログラムコードの実行、又は(4)これらの組み合わせを表すものであってもよい。
いくつかの実現形態では、電力管理コントローラ160がまた設けられ、ハードウェア及びソフトウェアにより実現可能である。システム及び当該システムに接続されるデバイスは、他の(中間など)状態及び状況のうちフル電力、低電力及び無電力状態を含む複数の電力状態をサポート可能である。電力管理コントローラ160は、他の機能のうちシステムの電力消費を最小化するのを支援し、システムの熱制限を管理し、システムのバッテリ寿命を最大化するため、機能を提供してタスクを実行することが可能である。電力管理は、他の具体例のうちシステムスピード、ノイズ、バッテリ寿命及びAC電力消費を含むシステムの他の機能及び特性を管理することを含むことが可能である。
オンチップインタフェースは、レジューム時間モジュール104を有することが可能である。レジューム時間モジュール104は、プロセッサ182及びメモリ184を有することが可能である。オンチップインタフェース110及びデバイス180は、PCIe(Peripheral Component Interconnect express)に準拠した又は他の接続を介し通信してもよい。PCI及びPCIeなどのいくつかのインターコネクトプロトコルでは、アーキテクチャ機構が、デバイスのエントリをフル電力状態に遅延させるため設けることができる(例えば、特定の電力管理ポリシー及び能力に関して)。例えば、デバイスのオペレーティングシステムの電力管理ロジックなどのソフトウェアは、少なくとも部分的にエントリを制御し、各種電力状態にイグジットする。いくつかの具体例では、プラットフォームポリシーは、例えば、電力状態の初期化に関して、デバイスにコンフィギュレーションリクエストをソフトウェアが発行することを許可する前に最小限のリカバリ時間(遅延)を提供することができる。例えば、アイドル電力の利用を向上させるため、電力管理ポリシー及び機能は、インターコネクトを介し接続された外部デバイスと共に、個別のアタッチされたデバイス、Root Port(RP)及びRoot Complex Integrated End Point(RCIE)を含むデバイスを、当該デバイスへの電力が取り除くことが可能であるか、当該デバイスが低電力状態により動作可能であるか、又は当該デバイスが補助電力下で動作可能である電力管理状態に配置することを試みることが可能である。これらの電力状態から再開すると、ソフトウェアは、コンフィギュレーションリクエストを発行するまで指定された時間(10ms、100msなど)待機する。これは、レジューム時間に対して有意な影響を有する可能性がある。しかしながら、このような規定された最小リカバリ時間は、ある状況及びデバイスにおいて効果的であるが、他の状況及びデバイスにおいては所望されない可能性がある。
いくつかの実現形態では、オンチップインタフェースは、レジューム時間モジュール104を含むことができる。レジューム時間モジュール104は、プロセッサ182とメモリ184とを有することができる。レジューム時間モジュール104は、ルートポート、DP(Designated Port)又はRCIEなどの内部デバイスが電力状態遷移後(例えば、初期的な電力オン、D3からD0への移行など)に第1コンフィギュレーション(ソフトウェアなどに関して)の準備がどの程度すぐにできるか示すデバイス固有のリカバリ時間を通知することを可能にするよう構成可能である。一実施例では、レジューム時間モジュール104はさらに、内部デバイスがエンドを所定のリカバリ時間に強制するため、又はソフトウェアによりコンフィギュレーションタスクが実行されるのを開始するため、電力状態遷移を完了又は完了する準備ができると、インタラプトをトリガするためのインタラプト機構(能力記述、インタラプトを可能にするための制御機構など)を有することが可能である。
いくつかの実現形態では、デバイス固有のレジューム時間能力は、1以上の能力レジスタにおいて規定でき、ソフトウェアベースツールを含む1以上の電力管理ツールによりアクセス可能である。一例では、デバイスの数え上げ中(例えば、外部又は内部デバイスを含む1以上のデバイス180など)、レジューム時間モジュール104は、デバイスのレジューム時間能力にアクセスし、以降の利用のためそれをメモリ184に格納してもよい。レジューム時間モジュール104はまた、デバイスのインタラプト能力を読み、内部デバイスがコンフィギュレーションアクセスの準備がでくると、インタラプトのトリガ及び認識を可能にするため、ポーリング機構の代わりにインタラプト機構を実装してもよい。例えば、あるポイントでは、内部デバイスは低電力状態に遷移可能である。一実施例では、レジューム時間モジュール104は、内部デバイスが低電力状態からフル電力状態に遷移することを決定できる。さらに、レジューム時間モジュール104は、メモリ184からデバイス180のレジューム時間通知値を抽出し、対応する能力構成により内部デバイスにより通知されたメモリ184における期間の待機後に第1コンフィギュレーションリクエストを発行してもよい。
他の実施例では、レジューム時間モジュール104は、それがデバイス180の制御を有するサブシステムに電力を印加することを決定できる。デバイス180が低電力状態からイグジットしたときにインタラプトを送信するよう構成される場合、レジューム時間モジュール104は、第1コンフィギュレーションアクセスの準備ができていることを通知するインタラプトがデバイス180から受信されることを待機してもよい。双方のケースにおいて、レジューム時間モジュールは、第1コンフィギュレーションアクセスによってデバイスにアクセスする前、100msの固定的な設定された待機時間を取り除くことができる。レジューム時間モジュール104はまた、電力管理制御状態レジスタ(PMCSR)への書き込み後、第1コンフィギュレーションアクセスによりデバイスにアクセスする前に、ソフトウェアのための固定的な設定された待機時間を取り除くようにしてもよい。後方互換性を維持するため、設定されたリカバリ時間(レガシー100ms又は10ms(PMCSRライト後のアクセスのため)遅延など)はレジューム時間モジュール104により延長されるべきでなく、カスタムレジューム時間能力を利用しないデバイスについてデフォルトとしてサポートできる。上述されるように、オンチップインタフェース110及びデバイス180は、PCIe、MIPI、QPI又は他のプロトコルに準拠したインターコネクトリンクなどのリンク接続を介し通信してもよい。
PCIeの主要な目標は、異なるベンダからのデバイス及びコンポーネントが、クライアント(デスクトップ及びモバイル)、サーバ(標準及び企業)及び埋め込み通信デバイスの複数のマーケットセグメントに及ぶオープンアーキテクチャにおいて連携することを可能にすることである。PCIeは、広範な将来的な計算及び通信プラットフォームに対して規定されるハイパフォーマンスな汎用的なI/Oインターコネクトである。それの利用モデル、ロードストアアーキテクチャ及びソフトウェアインタフェースなどのいくつかのPCI属性がそれの改訂を介し維持される一方、以前のパラレルバス実装はスケーラビリティの高い完全にシリアルなインタフェースと置換された。PCIeのより最近のバージョンは、新たなレベルのパフォーマンス及び機能を提供するため、ポイント・ツー・ポイントインターコネクト、スイッチベース技術及びパケット化プロトコルにおける進歩を利用する。電力管理、QoS(Quality of Service)、ホットプラグ/ホットスワップサポート、データインテグリティ及びエラーハンドリングは、PCIeによりサポートされる先進的な機能の一部である。
図2を参照して、コンポーネントセットを相互接続するポイント・ツー・ポイントリンクから構成されるファブリックの実施例が示される。システム200は、コントローラハブ215に接続されるシステムメモリ210とプロセッサ205とを有する。プロセッサ205は、マイクロプロセッサ、ホストプロセッサ、埋め込みプロセッサ、コプロセッサ又は他のプロセッサなどの何れかの処理要素を含む。プロセッサ205は、フロントサイドバス(FSB)206を介しコントローラハブ215に接続される。一実施例では、FSB206は、後述されるようなシリアルポイント・ツー・ポイントインターコネクトである。他の実施例では、リンク206は、異なるインターコネクト規格に準拠するシリアルな差動インターコネクトアーキテクチャを有する。
システムメモリ210は、RAM(Random Access Memory)、不揮発性(NV)メモリ又はシステム200のデバイスによりアクセス可能な他のメモリなどの何れかのメモリデバイスを含む。システムメモリ210は、メモリインタフェース216を介しコントローラハブ215に接続される。メモリインタフェースの具体例は、DDR(Double−Data Rate)メモリインタフェース、デュアルチャネルDDRメモリインタフェース及びDRAMメモリインタフェースを含む。
一実施例では、コントローラハブ215は、PCIeインターコネクション階層におけるルートハブ、ルートコンプレックス又はルートコントローラである。コントローラハブ215の具体例は、チップセット、メモリコントローラハブ(MCH)、ノースブリッジ、インターコネクトコントローラハブ(ICH)、サウスブリッジ及びルートコントローラ/ハブを含む。しばしば、チップセットという用語は、2つの物理的に分離したコントローラハブ、すなわち、インターコネクトコントローラハブ(ICH)に接続されたメモリコントローラハブ(MCH)を表す。現在のシステムはしばしばプロセッサ205により統合されたMCHを有し、コントローラ215は後述されるような同様の方法によりI/Oデバイスと通信するためのものであることに留意されたい。いくつかの実施例では、ピア・ツー・ピアルーティングは、任意的には、ルートコンプレックス215を介しサポートされる。
ここで、コントローラハブ215は、シリアルリンク219を介しスイッチ/ブリッジ220に接続される。インタフェース/ポート217,221として参照されてもよい入力/出力モジュール217,221は、コントローラハブ215とスイッチ220との間の通信を提供するため、レイヤ化プロトコルスタックを有する/実装する。一実施例では、複数のデバイスが、スイッチ220に接続可能である。
スイッチ/ブリッジ220は、デバイス225からコントローラハブ215に上流に、すなわち、ルートコンプレックスまで階層を上方に、及びプロセッサ205又はシステムメモリ210からデバイス225に下流に、すなわち、ルートコントローラから階層を下方にパッケージ/メッセージをルーティングする。一実施例では、スイッチ220は、複数のバーチャルPCI−to−PCIブリッジデバイスの論理アセンブリとして参照される。デバイス225は、I/Oデバイス、ネットワークインタフェースコントローラ(NIC)、アドインカード、オーディオプロセッサ、ネットワークプロセッサ、ハードドライブ、ストレージデバイス、CD/DVD ROM、モニタ、プリンタ、マウス、キーボード、ルータ、ポータブルストレージデバイス、ファイアワイヤデバイス、USB(Universal Serial Bus)デバイス、スキャナ及び他の入出力デバイスなどの電子システムに接続される内部又は外部デバイス又はコンポーネントを含む。しばしばPCIeにおいて、、デバイスなどの用語はエンドポイントして参照される。具体的に図示しないが、デバイス225は、レガシー又は他のバージョンのPCIデバイスをサポートするためのPCIeからPCI/PCI−Xへのブリッジを有してもよい。PCIeのエンドポイントデバイスは、しばしばレガシー、PCIe又はルートコンプレックスが搭載されたエンドポイントとして分類される。
グラフィックアクセラレータ230がまた、シリアルリンク232を介しコントローラハブ215に接続される。一実施例では、グラフィックアクセラレータ230は、ICHに接続されるMCHに接続される。スイッチ220及びI/Oデバイス225は、その後にICHに接続される。I/Oモジュール231,218はまた、グラフィックアクセラレータ230とコントローラハブ215との間で通信するため、レイヤ化プロトコルスタックを実装する。上述したMCHと同様に、グラフィックコントローラ又はグラフィックアクセラレータ230自体は、プロセッサ205に統合されてもよい。さらに、いくつかの実現形態では、1以上の内部デバイス(211、212、213など)が、例えば、チップセット、コントローラハブ、ルートコンプレックスなどに備えることが可能である。例えば、RCIE(Root Complex Integrated Endpoint)、ダウンストリームポート若しくはルートポート(217など)、内部PCIデバイス及び他の内部デバイスを備えることができる。ここに説明される機能は、外部デバイスと共に内部デバイスに適用可能である。
図3を参照して、レイヤ化プロトコルスタックの実施例が示される。レイヤ化プロトコルスタック300は、クイックパスインターコネクト(QPI)スタック、PCIeスタック、次世代ハイパフォーマンス計算インターコネクトスタック又は他のレイヤ化スタックなどのレイヤ化通信スタックの何れかの形態を含む。図2〜5を参照して以降の説明はPCIeスタックに関するものであるが、同じコンセプトが他のインターコネクトスタックに適用されてもよい。一実施例では、プロトコルスタック300は、トランザクションレイヤ305、リンクレイヤ310及び物理レイヤ320を含むPCIeプロトコルスタックである。図2のインタフェース217、218、221、222、226及び231などのインタフェースは、通信プロトコルスタック300として表されてもよい。通信プロトコルスタックとしての表現はまた、プロトコルスタックを実装/内蔵するモジュール又はインタフェースとして参照されてもよい。
PCIeは、コンポーネント間で情報を通信するためパケットを利用する。パケットは、送信元コンポーネントから受信先コンポーネントに情報を搬送するため、トランザクションレイヤ305及びデータリンクレイヤ310において構成される。送信されたパケットはその他のレイヤを通過するとき、これらのレイヤにおいてパケットを処理するのに必要な追加的情報により拡張される。受信サイドでは、逆の処理が行われ、パケットはその物理レイヤ320の表現からデータリンクレイヤ310の表現に変換され、最終的には(トランザクションレイヤパケットのため)受信先デバイスのトランザクションレイヤ305により処理可能な形式に変換される。
トランザクションレイヤ
一実施例では、トランザクションレイヤ305は、データリンクレイヤ310及び物理レイヤ320などのインターコネクトアーキテクチャとデバイスの処理コアとの間のインタフェースを提供する。これに関して、トランザクションレイヤ305の主要な役割は、パケットのアセンブリ及びデアセンブリである(すなわち、トランザクションレイヤパケット又はTLP)。トランザクションレイヤ305は、典型的には、TLPのためのクレジットベースフロー制御を管理する。PCIeは、ターゲットデバイスがレスポンスのためのデータを収集しながら、リンクが他のトラフィックを搬送することを可能にするため、分離されたトランザクション、すなわち、時間により分離されたリクエスト及びレスポンスによるトランザクションを実現する。
さらに、PCIeは、クレジットベースフロー制御を利用する。このスキームでは、デバイスは、トランザクションレイヤ305における各受信バッファの初期的なクレジット量を通知する。図2のコントローラハブ115などのリンクの反対のエンドの外部デバイスは、各TLPにより消費されるクレジット数をカウントする。トランザクションがクレジットリミットを超過しない場合、当該トランザクションは送信されてもよい。レスポンスを受信すると、クレジット量が復元される。クレジットスキームの効果は、クレジットリミットに直面しない場合、クレジットリターンの遅延がパフォーマンスに影響を与えないことである。
一実施例では、4つのトランザクションアドレススペースは、コンフィギュレーションアドレススペース、メモリアドレススペース、入出力アドレススペース及びメッセージアドレススペースを含む。メモリスペーストランザクションは、メモリにマッピングされた位置との間でデータを伝送するため、リードリクエスト及びライトリクエストの1以上を含む。一実施例では、メモリスペーストランザクションは、32ビットアドレスなどのショートアドレスフォーマット又は64ビットアドレスなどのロングアドレスフォーマットなどの2つの異なるアドレスフォーマットを利用することができる。コンフィギュレーションスペーストランザクションは、PCIeデバイスのコンフィギュレーションスペースにアクセスするのに利用される。コンフィギュレーションスペースに対するトランザクションは、リードリクエストとライトリクエストとを含む。メッセージスペーストランザクション(又は単にメッセージ)は、PCIeエージェントの間のインバンド通信をサポートするため規定される。従って、一実施例では、トランザクションレイヤ305は、パケットヘッダ/ペイロード306を構成する。現在のパケットヘッダ/ペイロードのためのフォーマットは、PCIe規格のウェブサイトにおけるPCIe規格において見つけられる。
図4を参照して、PCIeトランザクション記述子の実施例が示される。一実施例では、トランザクション記述子400は、トランザクション情報を搬送するための機構である。これに関して、トランザクション記述子400は、システムにおけるトランザクションの特定をサポートする。他の可能性のある利用は、デフォルトトランザクションオーダリングの修正とトランザクションとチャネルとの関連付けをトラッキングすることを含む。
トランザクション記述子400は、グローバル識別子フィールド402、属性フィールド404及びチャネル識別子フィールド406を含む。図示された例では、グローバル識別子フィールド402は、ローカルトランザクション識別子フィールド408及びソース識別子フィールド410を含むように示される。一実施例では、グローバルトランザクション識別子402は、すべての発行済みリクエストに対して一意的である。
一実現形態によると、ローカルトランザクション識別子フィールド408は、要求元のエージェントにより生成されるフィールドであり、それは、当該要求元のエージェントに対して完了を要求する全ての発行済みのリクエストに対して一意的である。さらに、本例では、ソース識別子410は、PCIe階層内で要求元のエージェントを一意的に特定する。従って、ソースID410と共に、ローカルトランザクション識別子408のフィールドは、階層ドメイン内のトランザクションのグローバルな特定を提供する。
属性フィールド404は、トランザクションの特性及び関係を指定する。これに関して、属性フィールド404は、トランザクションのデフォルト処理の変更を可能にする追加的な情報を提供するため利用可能である。一実施例では、属性フィールド404は、プライオリティフィールド412、リザーブフィールド414、オーダリングフィールド416及び非スヌープフィールド418を有する。ここで、プライオリティサブフィールド412は、トランザクションにプライオリティを割り当てるのに発信元により変更されてもよい。リザーブ属性フィールド414は、以降における又はベンダにより規定された利用のため確保される。プライオリティ又はセキュリティ属性を利用した可能な利用モデルは、リザーブ属性フィールドを用いて実現されてもよい。
本例では、オーダリング属性フィールド416は、デフォルトオーダリングルールを変更可能なオーダリングのタイプを伝える任意的情報を供給するのに利用される。一実現形態によると、“0”のオーダリング属性は、デフォルトオーダリングルールが適用されることを示し、“1”のオーダリング属性は、ライトが同一方向にライトをパスし、リード完了が同一方向にライトをパスすることが可能な緩和されたオーダリングを示す。スヌープ属性フィールド418は、トランザクションがスヌープされるか判断するのに利用される。図示されるように、チャネルIDフィールド406は、トランザクションが関連付けされるチャネルを特定する。
リンクレイヤ
データリンクレイヤ310とも呼ばれるリンクレイヤ310は、トランザクションレイヤ305と物理レイヤ320との間の中間ステージとして機能する。一実施例では、データリンクレイヤ310の役割は、2つのコンポーネントの間でトランザクションレイヤパケット(TLP)を交換するための信頼できる機構を提供する。データリンクレイヤ310の一方のサイドは、トランザクションレイヤ305により構成されたTLPを受理し、パケットシーケンス識別子311、すなわち、識別番号又はパケット番号を適用し、誤り検出コード、すなわち、CRC312を計算及び適用し、物理レイヤを介し外部デバイスに送信するため変更されたTLPを物理レイヤ320に送信する。
物理レイヤ
一実施例では、物理レイヤ320は、外部デバイスにパケットを物理的に送信するため、論理サブブロック321及び電子サブブロック322を有する。ここで、論理サブブロック321は、物理レイヤ321の“デジタル”機能のためのものである。これに関して、論理サブブロックは、物理サブブロック322による送信用の出力情報を準備するための送信セクションと、リンクレイヤ310に渡す前に受信した情報を特定及び準備するための受信セクションとを有する。
物理ブロック322は、送信機及び受信機を有する。送信機には論理サブブロック321によりシンボルが供給され、送信機は、シリアル化して外部デバイスに送信する。受信機には、外部デバイスからシリアル化されたシンボルが供給され、受信信号をビットストリームに変換する。ビットストリームは、シリアル化解除され、論理サブブロック321に供給される。一実施例では、10ビットシンボルが送受信される場合、8b/10b送信コードが利用される。ここで、特別なシンボルは、フレーム323によりパケットをフレーム化するのに利用される。さらに、一例では、受信機はまた、入力されたシリアルストリームから復元されたシンボルクロックを提供する。
上述されるように、トランザクションレイヤ305、リンクレイヤ310及び物理レイヤ320がPCIeプロトコルスタックの特定の実施例を参照して説明されるが、レイヤ化プロトコルスタックはこれに限定されるものでない。実際、何れかのレイヤ化プロトコルが包含/実装されてもよい。一例として、レイヤ化プロトコルとして表されるポート/インタフェースは、(1)パケットを構成するための第1レイヤ、すなわち、トランザクションレイヤ、パケットをシーケンス化するための第2レイヤ、すなわち、リンクレイヤ、及びパケットを送信するための第3レイヤ、すなわち、物理レイヤを含む。具体例として、CSI(Common Standard Interface)レイヤ化プロトコルが利用される。
次に図5を参照して、PCIeシリアルポイント・ツー・ポイントファブリックの実施例が説明される。PCIeシリアルポイント・ツー・ポイントリンクの実施例が示されるが、シリアルポイント・ツー・ポイントリンクはこれに限定されず、シリアルデータを送信する何れかの送信パスを含む。図示された実施例では、ベーシックPCIeリンクは、2つの低電圧差動駆動される信号ペア、すなわち、送信ペア506/511と受信ペア512/507とを有する。従って、デバイス505は、データをデバイス510に送信するための送信ロジック506と、データをデバイス510から受信するための受信ロジック507とを有する。すなわち、2つの送信パス、すなわち、パス516,517と、2つの受信パス、すなわち、パス518,519とがPCIeリンクに含まれる。
送信パスは、送信ライン、銅線、光ライン、無線通信チャネル、赤外線通信リンク又は他の通信パスなどのデータを送信するための何れかのパスを表す。デバイス505,510などの2つのデバイスの間の接続は、リンク415などのリンクとして参照される。リンクは1つのレーンをサポートし、各レーンは差動信号パスのセットを表す(送信用の1つのパスと受信用の1つのパス)。帯域幅をスケーリングするため、リンクはxNにより示される複数のレーンを集約するものであってもよく、Nは、1,2,4,8,12,16,32,64又はさらに広い何れかのサポートされたリンク幅である。
差動ペアは、差動信号を送信するためのライン416,417などの2つの送信パスを表す。一例として、ライン416が低電圧レベルから高電圧レベルに、すなわち、ライジングエッジに切り替わるとき、ライン417は、高い論理レベルから低い論理レベルに、すなわち、フォーリングエッジに駆動する。差動信号は、より良好な信号インテグリティ、すなわち、クロスカップリング、電圧オーバシュート/アンダーシュート、リンギングなどのより良好な電気特性を示しうる。これは、より良好なタイミングウィンドウを可能にし、より高速な送信周波数を可能にする。
上述されるように、PCIeなどの各種プラットフォームは、複数の電力管理状態をサポート可能である。図6は、一例となる電力管理状態(605,610,615,620,625,630など)とこれらの状態間の遷移とを示す一例となる状態遷移図600を示す。図6の例では、4つの主要な電力状態がサポートされる。例えば、D0状態(605,620など)は1つの極限において最大電力又はアクティブ状態とすることが可能であり、D3状態(610,615など)は電力“オフ”状態を提供する。状態D1(625など)及びD2(630など)は、例えば、デバイスのスリープ又はライトスリープ状態などを表す中間的な電力状態を提供することができる。一例では、Vccがデバイスを完全に電力オフするため取り除かれるD3コールド状態(615など)と区別するため、Vccがデバイスに依然として印加されるD3ホット状態(610など)が提供可能である。
図6に示されるように、各種状態(605,610,615,620,625,630など)間の遷移が規定可能である。例えば、一実現形態では、状態D3のホットのデバイスは、例えば、D0状態コマンドを対応する電力管理制御状態レジスタに書き込むことなどによって、電力アップに応答してまずデバイスをD0非初期化620の状態にすることによってD0に戻すことができる。他の例では、デバイス状態D3コールドにおいて、ファンクションはD3コールドからD0に戻すことができる(D3コールドからの唯一の正当な状態遷移)。いくつかの具体例では、例えば、それの対応するコンフィギュレーションスペースを含むファンクションのフル又はパーシャル再初期化を実行するため、電力管理状態遷移に関してソフトウェアが呼び出し可能である。さらに、上述されたように、最小リカバリ時間要求が、いくつかの例において(システムソフトウェアにより実施されるなど)、ファンクションがD3からD0にプログラムされたときと、ファンクションがアクセス(コンフィギュレーションアクセスを含む)されたときとの間で規定できる。これは、自らをリセットし、電力オン状態に移行させるための当該ファンクションの時間を許容することができる。しかしながら、上述されたように、このようなデフォルト最小リカバリ時間は、不要な遅延を特定のデバイスのレジューム時間に導入する可能性がある。従って、いくつかの実現形態では、レジューム時間能力は、デバイスが代わりに設定された最小リカバリ時間より(短い又は長い)デバイス固有のリカバリ時間を通知することを可能にするため設けることができる。さらに、デバイスが他の可能な具体例のうち設定された(又はいくつかの実現形態では、デバイスにより通知された)最小リカバリ時間を決定する前に、コンフィギュレーションアクセスをトリガするためのインタラプトを開始することを可能にするため備えることができる。
図7に戻って、簡単化されたフロー図700が示される。オペレーティングシステムの電力管理ツールなどのソフトウェアコントローラは、チップセットの内部デバイス又はSOCなどの特定のデバイスがフル電力に遷移し、デバイス電力オンし(710)、低電力状態又は無電力状態からアクティブ状態に遷移することを開始する準備をすることができる(例えば、デバイスを用いて実行される特定のファンクションなどに関して)。ポーリング(710など)は、対応する電力管理レジスタ、拡張された能力構造又は他の構造若しくはレジスタにおいてデバイスに対して規定される能力に基づき行うことができる。例えば、コントローラは、デバイスのレジューム時間を特定し(例えば、設定された時間又は通知された時間遅延など)、レジューム時間が経過したことを特定すると、電力状態遷移の完了をトリガするため(725)、コンフィギュレーションライトを発信することが可能である。あるいは、デバイスは、能力構造又はレジスタなどにおいて規定されるインタラプト能力を有することが可能であり、コントローラは、当該能力を特定し、デバイスがアクティブ状態に入り、コンフィギュレーションアクセスを受信する準備ができたことを示すデバイスからのインタラプト720を待機することが可能である。
図8に戻って、RCIE、ルートポート、ダウンストリームポート又は他のデバイスなどのデバイスが1以上のレジューム時間能力をサポートしているか判断するためのデバイスエニュミレーション処理805が、いくつかの実現形態において実行可能である。図8の具体例では、エニュミレーション(enumeration)処理は、デバイスに対応する能力構造を準備し(810)、カスタマイズされたレジューム又はリカバリ時間が通知及びサポートされているか判断する(815)ことが可能である。エニュミレーション処理805は、いくつかの例では、デバイスのリカバリを迅速化することを支援するため、デバイスのインタラプト能力がまた規定されているか判断できる。レジューム時間がサポートされていると判断された場合(820など)、(能力構造に指定されるなど)デバイスに固有の通知されたリカバリ値が特定できる(825)。その後、通知されたリカバリ値は、デバイスの電力状態遷移に関連してコンフィギュレーションアクセスを開始する際に、ソフトウェアコントローラによって従われる。あるいは、特別なレジューム時間がデバイスによりサポートされていないと判断された場合(830など)、ソフトウェアコントローラは、アーキテクチャを介し規定された標準的な最小リカバリ時間(10ms、100msなどの固定的な最小リカバリ時間など)を含む設定されたプロトコルにデフォルトのものとすることができる。
図9は、少なくとも1つの実施例による処理セット900を示すフロー図である。図1のレジューム時間モジュール104などの装置又はその一部が、処理セット900を利用してもよい。当該装置は、図9の処理を実行するための手段を有してもよい。一実施例では、装置は、プロセッサにより実行されると、当該装置に処理セット900を実行させるよう構成されたコンピュータコードを有する図1のメモリ184及び/又はメモリ175などのメモリを有することによって変換される。
ブロック905において、デバイスは、低電力状態にあると決定できる(対応するレジスタなどから)。低電力状態からアクティブ状態へのデバイスの遷移は、例えば、少なくとも部分的にソフトウェアに基づくコントローラなどによって、ブロック910において開始できる。固定的な最小リカバリ時間は、インターコネクトプロトコルによる設定されたリカバリ時間などのシステム内の低電力状態からアクティブ状態への遷移のついて規定できる。デバイスの能力は、ブロック915においてデバイスの電力管理に対応して特定できる。当該能力は、デバイスについてサポートされるインタラプト機構と、固定的な最小リカバリ時間の代わりにデバイスにおいて適用されるべき通知された他のリカバリ時間とを含むことができる。いくつかのケースでは、双方の能力がデバイスについて有効とすることができる。デバイスのアクティブ状態への遷移は、ブロック920において、例えば、特定された能力に対応するトリガにより開始されるデバイスのコンフィギュレーションを介し完了させることができる。例えば、通知されたリカバリ時間が適用可能であるか、又は可能な具体例及び実現形態のうち固定的な最小リカバリ時間の経過前に、デバイスのアクティブ状態への遷移の完了をトリガするため受信可能である。
上述された原理は、各種インターコネクトプラットフォームを含む何れか様々な異なるアーキテクチャに適用可能である。さらに、上記原理は、他の例のうちマルチプロセッササーバ、パーソナルコンピュータ、モバイル計算装置(スマートフォン、タブレットなど)を含む様々な異なるデバイスにおいて適用可能である。一例として、図10に戻って、SOC設計の実施例が示される。特定の例示的な具体例として、SOC1000はユーザ装置(UE)を有するコンピュータに含めることができる。一実施例では、UEは、携帯電話、スマートフォン、タブレット、ウルトラシンノートブック、ブロードバンドアダプタを備えたノートブック又は他の何れか同様の通信デバイスなど、エンドユーザにより通信するのに利用される何れかのデバイスを表す。しばしば、UEは、GSM(登録商標)ネットワークの移動局(MS)に本来的に対応する基地局又はノードに接続する。
ここで、SOC1000は、2つのコア1006,1007を有する。上記説明と同様に、コア1006,1007は、Intel(登録商標)Architecture CoreTMベースプロセッサ、Advanced Micro Device,Inc.(AMD)プロセッサ、MIPSベースプロセッサ、ARMベースプロセッサ又はこれらのカスタマと共に、それらのライセンス又はアドプタなどのInstruction Set Architectureに準拠してもよい。コア1006,1007は、システム1000の他のパーツと通信するため、バスインタフェースユニット1009及びL2キャッシュ1012に関連付けされるキャッシュコントロール1008に接続される。インターコネクト1010は、説明される発明の1以上の態様を実現可能な上述されたIOSF、AMBA又は他のインターコネクトなどのオンチップインターコネクトを含む。
インタフェース1010は、SOC1000を初期化及びブートするためコア1006,1007により実行されるブートコードを保持するためのSIMカードのブートROM1035とインタフェースをとるSIM(Subscriber Identity Module)1030、外部メモリ(DRAM1060など)とインタフェースをとるためのSDRAMコントローラ1040、不揮発メモリ(フラッシュ1065など)とインタフェースをとるためのフラッシュコントローラ1045、周辺装置とインタフェースをとるための周辺コントロール1050(SPI(Serial Peripheral Interface)など)、入力を表示及び受信するためのビデオコーデック1020及びビデオインタフェース1025(タッチ対応入力など)、グラフィック関連計算を実行するGPU1015などの他のコンポーネントとの通信チャネルを提供する。これらのインタフェースの何れもここに説明された本発明の態様を含むものであってもよい。
さらに、システムは、ブルートゥースモジュール1070、3Gモデム1075、GPS1085及びWiFi1085などの通信用の周辺装置を示す。上述されるように、UEは、通信用のラジオを有することに留意されたい。この結果、これらの周辺通信モジュールの全てが必要であるとは限らない。しかしながら、UEのある形態では、外部通信用のラジオが含まれる。
上述された装置、方法及びシステムは、上述されるような何れかの電子デバイス又はシステムにより実現されてもよいことに留意されたい。具体例として、以下の図面はここに説明される本発明を利用するための一例となるシステムを提供する。以下のシステムがより詳細に説明されるとき、上記説明から複数の異なるインターコネクトが開示、説明及び再訪される。また、容易に明らかなように、上述された進歩はこれらのインターコネクト、ファブリック又はアーキテクチャの何れかに適用されてもよい。
本発明が限定数の実施例に関して説明されたが、当業者は、そこから多数の変更及び変形を理解するであろう。添付した請求項は本発明の真の趣旨及び範囲内に属するものとしてこれら全ての変更及び変形をカバーすることが意図される。
設計は、作成からシミュレーションを経て製造までの各種段階を経る。設計を表すデータは、複数の方法により当該設計を表すものであってもよい。まず、シミュレーションにおいて有用であるように、ハードウェアは、ハードウェア記述言語又は他の機能記述言語を用いて表現されてもよい。さらに、ロジック及び/又はトランジスタゲートを備えた回路レベルモデルが、設計プロセスのいくつかの段階において生成されてもよい。さらに、ある段階における大部分の設計は、ハードウェアモデルにおける各種デバイスの物理的配置を表すデータのレベルに到達する。従来の半導体製造技術が利用される場合、ハードウェアモデルを表すデータは、集積回路を生成するため利用されるマスクのための異なるマスクレイヤ上の各種機能の有無を指定するデータであってもよい。当該設計の何れかの表現において、データは機械可読媒体の何れかの形式により格納されてもよい。メモリ又はディスクなどの磁気若しくは光ストレージは、情報を伝送するため変調又は生成される光波又は電波を介し伝送される情報を格納するための機械可読媒体であってもよい。コード又は設計を示す又は搬送する電気的な搬送波が送信されるとき、電気信号のコピー、バッファリング又は再送が実行される程度まで、新たなコピーが生成される。従って、通信プロバイダ又はネットワークプロバイダは、本発明の実施例の技術を実現する搬送波に符号化された情報などの少なくとも一時的な有形な機械可読媒体を有する物に格納されてもよい。
ここで用いられるモジュールは、ハードウェア、ソフトウェア及び/又はファームウェアの何れかの組み合わせを表す。一例として、モジュールは、マイクロコントローラにより実行されるよう構成されるコードを格納するための非一時的媒体に関連付けされるマイクロコントローラなどのハードウェアを含む。従って、一実施例では、モジュールという参照は、非一時的媒体に保持されるコードを認識及び/又は実行するよう特に構成されるハードウェアを表す。さらに、他の実施例では、モジュールの使用は、所定の処理を実行するためマイクロコントローラにより実行されるよう特に構成されるコードを含む非一時的媒体を表す。推察できるように、さらなる他の実施例では、モジュールという用語(本例では)は、マイクロコントローラと非一時的媒体との組み合わせを表す。しばしば、一般に分離するよう示されるモジュールの境界は、可変的であり、重複する可能性がある。例えば、第1及び第2モジュールは、いくつかの独立したハードウェア、ソフトウェア又はファームウェアを維持しながら、ハードウェア、ソフトウェア、ファームウェア又はこれらの組み合わせを共有してもよい。一実施例では、ロジックという用語の使用は、トランジスタ、レジスタ又はプログラマブルロジックデバイスなどの他のハードウェアを含む。
一実施例では、“〜するため”又は“〜するよう構成される”という用語の使用は、指定された又は決定されたタスクを実行するための装置、ハードウェア、ロジック又は要素を構成、組み立て、製造、販売の申し出、輸入及び/又は設計することを表す。本例では、動作していない装置又はその要素は、それが指定されたタスクを実行するよう設計、接続及び/又は相互接続される場合、指定されたタスクを実行するよう依然として“構成される”。純粋に例示的な具体例として、論理ゲートは、動作中に0又は1を提供する。クロックにイネーブル信号を提供するよう構成される論理ゲートは、1又は0を提供するすべての論理ゲートを含むものでない。代わり、論理ゲートは、動作中に1又は0の出力がクロックをイネーブルにするという方法により接続されるものである。再び、“〜するよう構成される”という用語の使用は処理を要求しないが、代わりに装置、ハードウェア及び/又は要素の潜在的な状態に着目し、潜在的な状態では、装置、ハードウェア及び/又は要素は、当該装置、ハードウェア及び/又は要素が動作しているとき、特定のタスクを実行するよう設計される。
さらに、一実施例では、“〜できる”及び/又は“〜するよう動作可能である”という用語の使用は、指定された方法により装置、ロジック、ハードウェア及び/又は要素の使用を可能にするように設計された装置、ロジック、ハードウェア及び/又は要素を表す。上述されるように、一実施例では、“〜できる”又は“〜するよう動作可能である”の使用は、装置、ロジック、ハードウェア及び/又は要素が動作していないが、指定された方法により装置の使用を可能にするように設計される装置、ロジック、ハードウェア及び/又は要素の潜在的な状態を表す。
ここで使用される値とは、数、状態、論理状態又はバイナリ論理状態の何れか既知の表現を含む。しばしば、論理レベル又は論理値の使用はまた、1及び0として参照され、単にバイナリ論理状態を表す。例えば、1は高論理レベルを表し、0は低論理レベルを表す。一実施例では、トランジスタやフラッシュセルなどのストレージセルは、単一の論理値又は複数の論理値を保持することが可能であってもよい。しかしながら、コンピュータシステムにおける他の値の表現が使用された。例えば、10進数の10はまた、1010のバイナリ値及び16進文字Aとして表現されてもよい。従って、値はコンピュータシステムに保持可能な情報の何れかの表現を含む。
さらに、状態は値又は値の一部により表現されてもよい。一例として、論理1などの第1の値はデフォルト又は初期状態を表し、論理0などの第2の値は非デフォルト状態を表してもよい。さらに、一実施例では、リセット及び設定という用語はそれぞれ、デフォルト及び更新値又は状態を表す。例えば、デフォルト値は、高論理値、すなわち、リセットを含み、更新値は、低論理値、すなわち、設定を含む。何れかの値の組み合わせは任意数の状態を表すのに利用されてもよいことに留意されたい。
上述された方法、ハードウェア、ソフトウェア、ファームウェア又はコードの実施例は、処理要素により実行可能な機械アクセス可能、機械可読、コンピュータアクセス可能又はコンピュータ可読媒体に格納される命令又はコードを介し実現されてもよい。非一時的機械アクセス可能/可読媒体は、コンピュータ又は電子システムなどの機械により可読な形態による情報を提供(すなわち、格納及び/又は送信)する何れかの機構を含む。例えば、非一時的機械アクセス可能媒体は、スタティックRAM(SRAM)又はダイナミックRAM(DRAM)などのRAM(Random Access Memory)、ROM、磁気若しくは光記憶媒体、フラッシュメモリデバイス、電子ストレージデバイス、光ストレージデバイス、音響ストレージデバイス、そこから情報を受信する非一時的媒体と区別されるべき一時的(伝搬)信号(搬送波、赤外線信号、デジタル信号など)から受信される情報を保持する他の形態のストレージデバイスを含む。
本発明の実施例を実行するようロジックをプログラムするのに利用される命令は、DRAM、キャッシュ、フラッシュメモリ又は他のストレージなどのシステムのメモリ内に格納されてもよい。さらに、命令はネットワークを介し又は他のコンピュータ可読媒体により配布可能である。従って、機械可読媒体は、機械(コンピュータなど)により可読な形態により情報を格納又は送信するための何れかの機構を含むが、フロッピー(登録商標)ディスケット、光ディスク、CD、CD−ROM、光磁気ディスク、ROM、RAM、EPROM、EEPROM、磁気若しくは光カード、フラッシュメモリ、又は電気、光、音響若しくは他の形態の伝搬信号(搬送波、赤外線信号、デジタル信号など)を介しインターネットによる情報の伝送に利用される有形な機械可読ストレージに限定されるものでない。従って、コンピュータ可読媒体は、機械(コンピュータなど)により可読な形態により電子命令又は情報を格納又は送信するのに適した何れかのタイプの有形な機械可読媒体を含む。
以下の具体例は、本明細書による実施例に関する。1以上の実施例は、デバイスが低電力状態にあることを決定し、低電力状態からアクティブ状態への遷移について固定的な最小のリカバリ時間が規定される場合、低電力状態からアクティブ状態へのデバイスの遷移を開始し、低電力状態からアクティブ状態へのデバイスの遷移に対応するデバイスの能力を特定し、遷移が固定的な最小のリカバリ時間の経過前に完了されるべきである場合、当該能力に少なくとも部分的に基づき低電力状態からアクティブ状態へのデバイスの遷移を完了させるための装置、システム、機械可読ストレージ、機械可読媒体及び方法を提供するものであってもよい。
少なくとも一例では、当該能力はインタラプト能力を含み、インタラプトは、デバイスが遷移を完了させる準備ができているという通知である場合、デバイスから受信されるべきである。デバイスは、インタラプトについてモニタリング可能である。
1以上の具体例はさらに、インタラプトが規定されたリカバリ時間前に受信されない場合、デバイスについて規定されたリカバリ時間に従って完了されるべきであることを提供することができる。
少なくとも一例では、規定されたリカバリ時間は、固定的な最小リカバリ時間を含む。規定されたリカバリ時間は、デバイスに固有の通知されたリカバリ時間を含むことが可能である。
少なくとも一例では、当該能力は、デバイスに対して通知されたリカバリ時間を含み、通知されたリカバリ時間は、固定的な最小リカバリ時間より短い。
少なくとも一例では、通知されたリカバリ時間は、固定的な最小リカバリ時間の代わりに、低電力状態からアクティブ状態へのデバイスの遷移に適用可能である。
少なくとも一例では、固定的な最小リカバリ時間は、低電力状態からアクティブ状態への他のデバイスの遷移において当該他のデバイスに適用可能である。
少なくとも一例では、デバイスは、PCIeに準拠したデバイスを含む。低電力状態はD3状態を含み、アクティブ状態はD0状態を含む。
少なくとも一例では、低電力状態からアクティブ状態へのデバイスの遷移の完了は、デバイスにコンフィギュレーションアクセスリクエストを送信することを含む。
少なくとも一例では、デバイスは、ルートポート、ダウンストリームポート又はルートコンプレックスインテグレーテッドエンドポイント(RCIE)の少なくとも1つを含む。
1以上の具体例はさらに、少なくとも1つのデバイスの電力管理能力を規定する電力管理能力構造を格納する機械可読媒体と、電力管理能力構造からデバイスの特定の能力を特定し、低電力状態からアクティブ状態への遷移に対して規定された固定的な最小リカバリ時間の経過前に遷移が完了されるべきである場合、特定の能力に少なくとも部分的に基づき低電力状態からアクティブ状態へのデバイスの遷移を完了させる電力管理コントローラとを提供することが可能である。
少なくとも一例では、電力管理能力構造は、デバイスについて他のリカバリ時間が通知されているか規定する。
少なくとも一例では、電力管理能力構造は、固定的な最小リカバリ時間より短いデバイスの他のリカバリ時間を規定する。
少なくとも一例では、電力管理能力構造は、デバイスによってインタラプトがサポートされているか規定し、低電力状態からアクティブ状態へのデバイスの遷移が、デバイスからのインタラプトの受信に基づき完了される。
少なくとも一例では、デバイスは、電力管理能力構造がデバイスがインタラプトをサポートしていることを示す場合、インタラプトについてモニタリングされる。
少なくとも一例では、低電力状態からアクティブ状態へのデバイスの遷移の開始は、デバイスに電力を提供することを含む。
本明細書を通じて“一実施例”又は“実施例”の参照は、当該実施例に関して説明された特定の機能、構造又は特性が本発明の少なくとも1つの実施例に含まれることを意味する。従って、本明細書を通じて各所における“一実施例では”又は“実施例では”という表現の出現は、必ずしも全てが同一の実施例を参照しているとは限らない。さらに、特定の特徴、構造又は特性は、1以上の実施例において何れか適切な方法により組み合わされてもよい。
本明細書において、特定の実施例を参照して詳細な説明が与えられた。しかしながら、添付した請求項に提供される本発明の広範な趣旨及び範囲から逸脱することなく、各種変更及び改良が可能であることは明らかであろう。明細書及び図面は、限定的なものでなく例示的なものであるとみなされるべきである。さらに、実施例及び他の一例となる言語の使用は、同一の実施例又は具体例を必ずしも参照するものでなく、同一の実施例と共に異なる実施例を参照してもよい。
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 プロセッサ
101,102 コア
110 オンチップインタフェース
120 BTB I−TLB
125 復号化モジュール
130 アロケータリネーマユニット
135 リオーダ/リタイアメントユニット
140 スケジューラ実行ユニット

Claims (9)

  1. システム・オン・チップ(SoC)であって、
    マルチコアプロセッサと、
    前記マルチコアプロセッサに結合されるレベル2(L2)キャッシュコントローラと、
    前記L2キャッシュコントローラ及び前記マルチコアプロセッサに結合されるL2キャッシュと、
    統合されたメモリコントローラと、
    前記マルチコアプロセッサとデバイスとの間の通信を可能にするためのシリアルポイント・ツー・ポイントリンクインタフェースと、
    を有し、
    前記シリアルポイント・ツー・ポイントリンクインタフェースは、プロトコルスタックを実装し、シリアルデータを前記デバイスに送信するための送信機と、前記デバイスから入力されたシリアルストリームをシリアル化解除するための受信機とを有し、
    前記プロトコルスタックは、アクティブ状態、供給電圧が前記デバイスに提供される第1のオフ状態、及び前記供給電圧が前記デバイスに提供されない第2のオフ状態を含む複数の電力管理状態をサポートし、
    前記プロトコルスタックは、前記デバイスにアクセスする前に前記デバイスが前記第1のオフ状態から前記アクティブ状態への遷移を開始することを可能にするためのデフォルトリカバリ時間を提供し、
    前記デバイスが前記アクティブ状態に入る準備ができたという通知に応答して、前記プロトコルスタックは、前記遷移を完了させるための前記デフォルトリカバリ時間の満了前に前記デバイスへのアクセスを提供するSoC。
  2. 前記プロトコルスタックは、PCIe(Peripheral Component Interconnect express)プロトコルスタックであり、前記デバイスは、PCIeエンドポイントデバイスである、請求項1記載のSoC。
  3. 前記アクティブ状態は、非初期化アクティブ状態であり、前記遷移を完了させるための前記デフォルトリカバリ時間の経過前に前記デバイスにアクセスすることは、コンフィギュレーションアクセスリクエストを前記PCIeエンドポイントデバイスに送信することを含む、請求項2記載のSoC。
  4. 前記通知は、前記デバイスのレジスタに指定されたリカバリ時間の満了に基づく、請求項1記載のSoC。
  5. 前記通知は、前記デバイスから受信したインタラプトに基づく、請求項1記載のSoC。
  6. プロセッサとデバイスとの間の通信を可能にするためのシリアルポイント・ツー・ポイントリンクインタフェースであって、当該シリアルポイント・ツー・ポイントリンクインタフェースは、
    シリアルデータを送信するための送信機と、
    シリアルデータをシリアル化解除するための受信機と、
    プロトコルスタックを実現するための制御ロジックと、
    を有し、
    前記プロトコルスタックは、アクティブ状態、供給電圧が維持される第1のオフ状態、及び前記供給電圧が前記デバイスに提供されない第2のオフ状態を含む複数の電力管理状態をサポートし、
    前記プロトコルスタックは、前記デバイスにアクセスする前に前記デバイスが前記第1のオフ状態から前記アクティブ状態への遷移を開始することを可能にするためのデフォルトリカバリ時間を提供し、
    前記プロトコルスタックは、デバイスにより通知されたリカバリ時間に基づき、前記遷移を完了させるための前記デフォルトリカバリ時間の満了前に前記デバイスへのアクセスを提供するシリアルポイント・ツー・ポイントリンクインタフェース。
  7. 前記プロトコルスタックは、PCIe(Peripheral Component Interconnect express)プロトコルスタックであり、前記デバイスは、PCIeエンドポイントデバイスである、請求項6記載のシリアルポイント・ツー・ポイントリンクインタフェース。
  8. 前記アクティブ状態は、非初期化アクティブ状態であり、前記遷移を完了させるための前記デフォルトリカバリ時間の経過前に前記デバイスにアクセスすることは、コンフィギュレーションアクセスリクエストを前記PCIeエンドポイントデバイスに送信することを含む、請求項7記載のシリアルポイント・ツー・ポイントリンクインタフェース。
  9. 前記デバイスにより通知されるリカバリ時間は、前記デバイスのレジスタに指定される、請求項6記載のシリアルポイント・ツー・ポイントリンクインタフェース。
JP2015247188A 2013-03-15 2015-12-18 ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム Active JP6147840B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/835,275 2013-03-15
US13/835,275 US20140281622A1 (en) 2013-03-15 2013-03-15 Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014034243A Division JP6017476B2 (ja) 2013-03-15 2014-02-25 ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム

Publications (3)

Publication Number Publication Date
JP2016076257A JP2016076257A (ja) 2016-05-12
JP2016076257A5 JP2016076257A5 (ja) 2016-06-23
JP6147840B2 true JP6147840B2 (ja) 2017-06-14

Family

ID=51534126

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014034243A Active JP6017476B2 (ja) 2013-03-15 2014-02-25 ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム
JP2015247188A Active JP6147840B2 (ja) 2013-03-15 2015-12-18 ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014034243A Active JP6017476B2 (ja) 2013-03-15 2014-02-25 ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム

Country Status (5)

Country Link
US (3) US20140281622A1 (ja)
JP (2) JP6017476B2 (ja)
KR (2) KR101637075B1 (ja)
BR (1) BR102014006218A2 (ja)
RU (2) RU2586022C2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281622A1 (en) 2013-03-15 2014-09-18 Mahesh Wagh Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints
US9792252B2 (en) 2013-05-31 2017-10-17 Microsoft Technology Licensing, Llc Incorporating a spatial array into one or more programmable processor cores
US9967417B2 (en) * 2015-01-21 2018-05-08 Canon Kabushiki Kaisha Managing apparatus power states
US9946548B2 (en) 2015-06-26 2018-04-17 Microsoft Technology Licensing, Llc Age-based management of instruction blocks in a processor instruction window
US10169044B2 (en) 2015-06-26 2019-01-01 Microsoft Technology Licensing, Llc Processing an encoding format field to interpret header information regarding a group of instructions
US10346168B2 (en) 2015-06-26 2019-07-09 Microsoft Technology Licensing, Llc Decoupled processor instruction window and operand buffer
US9952867B2 (en) 2015-06-26 2018-04-24 Microsoft Technology Licensing, Llc Mapping instruction blocks based on block size
US10191747B2 (en) 2015-06-26 2019-01-29 Microsoft Technology Licensing, Llc Locking operand values for groups of instructions executed atomically
US9720693B2 (en) 2015-06-26 2017-08-01 Microsoft Technology Licensing, Llc Bulk allocation of instruction blocks to a processor instruction window
US10409606B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Verifying branch targets
US10409599B2 (en) 2015-06-26 2019-09-10 Microsoft Technology Licensing, Llc Decoding information about a group of instructions including a size of the group of instructions
US10175988B2 (en) 2015-06-26 2019-01-08 Microsoft Technology Licensing, Llc Explicit instruction scheduler state information for a processor
US10078614B2 (en) 2015-08-10 2018-09-18 Sandisk Technologies Llc Systems and methods of data transfer
CN105677320B (zh) * 2015-12-28 2019-06-21 小米科技有限责任公司 一种设置等待时长的方法和装置
CN107179956B (zh) * 2017-05-17 2020-05-19 北京计算机技术及应用研究所 分层多核处理器核间可靠通信方法
US10353455B2 (en) 2017-07-27 2019-07-16 International Business Machines Corporation Power management in multi-channel 3D stacked DRAM
RU2675045C1 (ru) * 2017-09-18 2018-12-14 Юрий Анатольевич Ткаченко Архитектура микропроцессора с функцией автоматического программирования микроконтроллеров
US10521388B2 (en) 2018-09-28 2019-12-31 Intel Corporation Multi-uplink device enumeration and management

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05224787A (ja) * 1992-02-12 1993-09-03 Hitachi Ltd 省電力制御方式
FI100443B (fi) * 1995-04-10 1997-11-28 Nokia Telecommunications Oy Liikenteen väylöitys tietoliikenneverkon solmussa
US6941480B1 (en) * 2000-09-30 2005-09-06 Intel Corporation Method and apparatus for transitioning a processor state from a first performance mode to a second performance mode
JP2002304237A (ja) * 2001-04-06 2002-10-18 Murata Mach Ltd データ処理装置
US7564810B2 (en) * 2002-05-08 2009-07-21 Microsoft Corporation Method and system for managing power consumption of a network interface module in a wireless computing device
US7600136B2 (en) * 2005-08-19 2009-10-06 Seagate Technology Llc Power management in an information channel
US7496742B2 (en) * 2006-02-07 2009-02-24 Dell Products L.P. Method and system of supporting multi-plugging in X8 and X16 PCI express slots
JP4314249B2 (ja) * 2006-04-21 2009-08-12 キヤノン株式会社 省エネモード搭載装置を制御する情報処理装置及びその制御方法
US7532135B1 (en) * 2007-11-26 2009-05-12 Broadcom Corporation Dual purpose serializer/de-serializer for point-to-point and point-to-multipoint communication
US20090204837A1 (en) * 2008-02-11 2009-08-13 Udaykumar Raval Power control system and method
US8156362B2 (en) * 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8201005B2 (en) * 2009-03-17 2012-06-12 Intel Corporation Negotiating a transmit wake time
US8566628B2 (en) * 2009-05-06 2013-10-22 Advanced Micro Devices, Inc. North-bridge to south-bridge protocol for placing processor in low power state
JP5460167B2 (ja) * 2009-07-31 2014-04-02 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及び制御プログラム
US8271811B2 (en) * 2009-11-05 2012-09-18 Lsi Corporation Methods and apparatus for load-based power management of PHY logic circuits of a SAS device based upon a current workload
EP2482196B1 (en) * 2011-01-31 2016-06-29 Canon Kabushiki Kaisha Image processing apparatus, printing apparatus and controlling method in image processing apparatus
KR101571278B1 (ko) * 2011-07-01 2015-11-24 퀄컴 인코포레이티드 시리얼 통신 시스템에서의 대기 전력 감소를 위한 시스템 및 방법
US20130173837A1 (en) * 2011-12-30 2013-07-04 Advanced Micro Devices, Inc. Methods and apparatus for implementing pci express lightweight notification protocols in a cpu/memory complex
US8699953B2 (en) 2012-03-21 2014-04-15 Texas Instruments Incorporated Low-latency interface-based networking
WO2013162512A1 (en) * 2012-04-24 2013-10-31 Intel Corporation Adaptive low-power link-state entry policy for active interconnect link power management
US9015396B2 (en) * 2012-09-18 2015-04-21 Apple Inc. Reducing latency in a peripheral component interconnect express link
US20140281622A1 (en) 2013-03-15 2014-09-18 Mahesh Wagh Method, apparatus, and system for improving resume times for root ports and root port integrated endpoints

Also Published As

Publication number Publication date
JP2014182801A (ja) 2014-09-29
BR102014006218A2 (pt) 2015-10-13
KR20160080105A (ko) 2016-07-07
US20160209911A1 (en) 2016-07-21
US20160209912A1 (en) 2016-07-21
KR101637075B1 (ko) 2016-07-06
KR102014581B1 (ko) 2019-10-21
US20140281622A1 (en) 2014-09-18
RU2014109920A (ru) 2015-09-20
RU2586022C2 (ru) 2016-06-10
US10146291B2 (en) 2018-12-04
JP2016076257A (ja) 2016-05-12
JP6017476B2 (ja) 2016-11-02
RU2645596C1 (ru) 2018-02-21
KR20140113481A (ko) 2014-09-24
US10139889B2 (en) 2018-11-27

Similar Documents

Publication Publication Date Title
JP6147840B2 (ja) ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム
US11657015B2 (en) Multiple uplink port devices
CN107077521B (zh) 片上系统配置元数据
US20200019522A1 (en) Integrated component interconnect
CN110262923B (zh) 带内重定时器寄存器访问
JP6321194B2 (ja) リンクインタフェースの使用されていないハードウェアの電力消費を制御するための方法、装置及びシステム
JP2017503245A (ja) 高速構成機構のための装置、方法、およびシステム
US11347673B2 (en) Method, apparatus, system for thunderbolt-based display topology for dual graphics systems
EP3343367A1 (en) A method, apparatus, system for optimized work submission to an accelerator work queue
CN110121703B (zh) 用于向量通信的系统和方法
US10817454B2 (en) Dynamic lane access switching between PCIe root spaces
CN110633241A (zh) 用于非对称接口的动态高速通道方向切换的系统、方法和装置
CN107003838B (zh) 解码信息库
JP2021090188A (ja) ストリーミングファブリックインタフェース
US20140281276A1 (en) Method, apparatus, and system for low latency communication

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160419

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170517

R150 Certificate of patent or registration of utility model

Ref document number: 6147840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250