JP5011584B2 - ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート - Google Patents
ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート Download PDFInfo
- Publication number
- JP5011584B2 JP5011584B2 JP2009280697A JP2009280697A JP5011584B2 JP 5011584 B2 JP5011584 B2 JP 5011584B2 JP 2009280697 A JP2009280697 A JP 2009280697A JP 2009280697 A JP2009280697 A JP 2009280697A JP 5011584 B2 JP5011584 B2 JP 5011584B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- address
- global
- hardware device
- hardware
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1081—Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
- G06F12/0692—Multiconfiguration, e.g. local and global addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/206—Memory mapped I/O
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
Description
102A プロセッサ
102B プロセッサ
104A メモリブリッジ
104B メモリブリッジ
106A メモリ
106B メモリ
108 入出力(I/O)管理モジュール
110A〜110N 集積ハードウェアデバイス
112A〜112N 周辺ハードウェアデバイス
114 I/Oコントローラ
116 第1のチップ
118 第2のチップ
120 コンピュータシステム
130 コンピュータシステム
132 第1のチップ
134 第2のチップ
136 第3のチップ
140 コンピュータシステム
142 第1のチップ
144 第2のチップ
146 第3のチップ
302 第1のアドレスマップ
304 第2のアドレスマップ
306 グローバルアドレスマップ
402 第1の構成空間アドレスマップ
404 第2の構成空間アドレスマップ
406 グローバル構成空間マップ
Claims (10)
- 処理ユニットからコンピュータシステム内に含まれる1つ又は複数のデバイスに、前記コンピュータシステム内に含まれる他の処理ユニットとの競合を引き起こすことなしに信号をルーティングするためのデバイスコントローラであって、
1つ又は複数のハードウェアデバイスと、
入出力(I/O)コントローラと
を備え、
前記I/Oコントローラが、
第1のプロセッサがアクセスするように構成されている、第1のハードウェアデバイスに関連付けされた第1のアパーチャを有する第1のセットのハードウェアデバイスについてのメモリマップドI/Oアパーチャを含む第1のアドレスマップを、前記第1のプロセッサから受け取り、
第2のプロセッサがアクセスするように構成されている、第1のハードウェアデバイスに関連付けされた第2のアパーチャを有する第2のセットのハードウェアデバイスについてのメモリマップドI/Oアパーチャを含む第2のアドレスマップを、前記第2のプロセッサから受け取り、
前記第1のアドレスマップと前記第2のアドレスマップを組み合わせることによって、前記第1のアパーチャ及び前記第2のアパーチャを含むグローバルアドレスマップを生成し、
前記第1のプロセッサから前記第1のハードウェアデバイスに関連付けされた第1のアクセス要求を受け取り、
前記第1のプロセッサを前記第1のハードウェアデバイスのオーナとして設定し、
前記グローバルアドレスマップ内に含まれるアドレスマッピングに基づいて、前記第1のハードウェアデバイスに前記第1のアクセス要求をルーティングするように構成されている、デバイスコントローラ。 - 前記I/Oコントローラが、
前記第1のアクセス要求に関連付けられた第1の宛先アドレスに第1のグローバルアドレス部分を追加することによって第1のグローバル宛先アドレスを生成し、
前記グローバルアドレスマップに基づいて、前記第1のグローバル宛先アドレスを第1のデバイスアドレスに変換し、
前記第1のプロセッサを前記第1のハードウェアデバイスのオーナとして設定し、
前記変換された宛先アドレスから前記グローバルアドレス部分を除去し、
前記第1のアクセス要求を前記第1のハードウェアデバイスに送信するように構成されている、請求項1に記載のデバイスコントローラ。 - 前記第1のグローバルアドレス部分を追加することが、ビットを前記第1のアクセス要求に含まれる前記第1の宛先アドレスの前に付加することを含む、請求項2に記載のデバイスコントローラ。
- 前記第1のアクセス要求が前記第1のプロセッサから受け取られたとき、前記ビットがゼロの値を有し、前記第1のアクセス要求が前記第2のプロセッサから受け取られたとき、前記ビットが1ビットの値を有する、請求項3に記載のデバイスコントローラ。
- 前記I/Oコントローラが、
前記第1のハードウェアデバイスからリターントランザクションを受け取り、
前記第1のプロセッサが前記第1のハードウェアデバイスのオーナであると決定し、
前記リターントランザクションに関連付けられた第2の宛先アドレスに第2のグローバルアドレス部分を追加することによって第2のグローバル宛先アドレスを生成し、
前記グローバルアドレスマップを使用して、前記第2のグローバル宛先アドレスを第2のデバイスアドレスに変換し、
前記グローバルアドレスマップ内に含まれるアドレスマッピングに基づいて、前記リターントランザクションを前記第1のプロセッサにルーティングし、
前記変換された宛先アドレスから前記第2のグローバルアドレス部分を除去し、
前記リターントランザクションを前記第1のプロセッサに送信するように構成されている、請求項1に記載のデバイスコントローラ。 - 前記グローバルアドレス部分を追加することが、ビットを前記リターントランザクション内に含まれる前記第2の宛先アドレスの前に付加することを含む、請求項5に記載のデバイスコントローラ。
- 前記リターントランザクションが、割込み又はデバイス完了メッセージを含む、請求項6に記載のデバイスコントローラ。
- 前記第1のプロセッサ及び第2のプロセッサが、異なる命令セット、及び異なるオペレーティングシステムを実行するように構成されている、請求項1に記載のデバイスコントローラ。
- コンピュータシステム内に含まれるハードウェアデバイスに対する、プロセッサによるアクセスを、前記コンピュータシステム内に含まれる他のプロセッサとの競合を引き起こすことなしに可能とするための方法であって、
第1のプロセッサがアクセスするように構成されている、第1のハードウェアデバイスに関連付けされた第1のアパーチャを有する第1のセットのハードウェアデバイスについてのメモリマップド入出力(I/O)アパーチャを含む第1のアドレスマップを、前記第1のプロセッサから受け取るステップと、
第2のプロセッサがアクセスするように構成されている、第1のハードウェアデバイスに関連付けされた第2のアパーチャを有する第2のセットのハードウェアデバイスについてのメモリマップドI/Oアパーチャを含む第2のアドレスマップを、前記第2のプロセッサから受け取るステップと、
前記第1のアドレスマップと前記第2のアドレスマップを組み合わせることによって、前記第1のアパーチャ及び前記第2のアパーチャを含むグローバルアドレスマップを生成するステップと、
前記第1のプロセッサから前記第1のハードウェアデバイスに関連付けされた第1のアクセス要求を受け取るステップと、
前記第1のプロセッサを前記第1のハードウェアデバイスのオーナとして設定し、
前記グローバルアドレスマップ内に含まれるアドレスマッピングに基づいて、前記第1のハードウェアデバイスに前記第1のアクセス要求をルーティングするステップと
を含む方法。 - 前記第1のアパーチャ内の第1のグローバル宛先アドレスは、前記第1のハードウェアデバイスの第1のデバイスアドレスへマッピングされており、
前記第2のアパーチャ内の第1のグローバル宛先アドレスは、前記第1のハードウェアデバイスの第1のデバイスアドレスへマッピングされている請求項9に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/332,009 | 2008-12-10 | ||
US12/332,009 US9032101B1 (en) | 2008-12-10 | 2008-12-10 | Chipset support for binding and migrating hardware devices among heterogeneous processing units |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010152892A JP2010152892A (ja) | 2010-07-08 |
JP5011584B2 true JP5011584B2 (ja) | 2012-08-29 |
Family
ID=42365850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009280697A Active JP5011584B2 (ja) | 2008-12-10 | 2009-12-10 | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート |
Country Status (4)
Country | Link |
---|---|
US (1) | US9032101B1 (ja) |
JP (1) | JP5011584B2 (ja) |
KR (1) | KR101183779B1 (ja) |
CN (1) | CN101751352B (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015446B2 (en) * | 2008-12-10 | 2015-04-21 | Nvidia Corporation | Chipset support for non-uniform memory access among heterogeneous processing units |
WO2011155047A1 (ja) * | 2010-06-10 | 2011-12-15 | 富士通株式会社 | マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム |
CN104335162B (zh) * | 2012-05-09 | 2018-02-23 | 英特尔公司 | 使用多个页表的执行 |
CN104462010B (zh) * | 2013-09-13 | 2018-08-31 | 联想(北京)有限公司 | 一种电子设备及状态控制方法 |
US9910700B2 (en) * | 2015-08-26 | 2018-03-06 | Netapp, Inc. | Migration between CPU cores |
WO2017101080A1 (zh) * | 2015-12-17 | 2017-06-22 | 华为技术有限公司 | 处理写请求的方法、处理器和计算机 |
US10542120B2 (en) * | 2016-11-10 | 2020-01-21 | Microsoft Technology Licensing, Llc | Wirelessly providing operating system specific features |
FR3080198A1 (fr) * | 2018-04-16 | 2019-10-18 | Stmicroelectronics (Rousset) Sas | Procede de gestion du routage de transactions entre au moins un equipement source et au moins un equipement cible, par exemple une memoire multiports, et systeme sur puce correspondant |
US20210311895A1 (en) * | 2020-11-16 | 2021-10-07 | Intel Corporation | Disaggregation of computing devices using enhanced retimers with circuit switching |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187286A (ja) | 1992-12-15 | 1994-07-08 | Hitachi Ltd | バス変換アダプタ |
JP3454294B2 (ja) * | 1994-06-20 | 2003-10-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプル・バス情報処理システム及びブリッジ回路 |
JPH08305658A (ja) * | 1995-05-10 | 1996-11-22 | Hitachi Ltd | I/oバス |
US5682512A (en) * | 1995-06-30 | 1997-10-28 | Intel Corporation | Use of deferred bus access for address translation in a shared memory clustered computer system |
JPH09128346A (ja) | 1995-11-02 | 1997-05-16 | Mitsubishi Electric Corp | 階層バスシステム |
US5893144A (en) | 1995-12-22 | 1999-04-06 | Sun Microsystems, Inc. | Hybrid NUMA COMA caching system and methods for selecting between the caching modes |
US6438660B1 (en) * | 1997-12-09 | 2002-08-20 | Intel Corporation | Method and apparatus for collapsing writebacks to a memory for resource efficiency |
US6418514B1 (en) | 1998-02-17 | 2002-07-09 | Internationl Business Machines Corporation | Removal of posted operations from cache operations queue |
JP2000029824A (ja) * | 1998-07-09 | 2000-01-28 | Hitachi Ltd | 階層型バスシステムとバス変換装置 |
US6275907B1 (en) | 1998-11-02 | 2001-08-14 | International Business Machines Corporation | Reservation management in a non-uniform memory access (NUMA) data processing system |
US6701399B1 (en) | 2000-02-29 | 2004-03-02 | Compaq Information Technologies Group | Priority mechanism for scheduling isochronous and asynchronous transactions on a shared bus |
US6754739B1 (en) | 2000-08-31 | 2004-06-22 | Hewlett-Packard Development Company | Computer resource management and allocation system |
US6658538B2 (en) | 2001-06-21 | 2003-12-02 | International Business Machines Corporation | Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control |
US7284077B2 (en) | 2003-09-12 | 2007-10-16 | International Business Machines Corporation | Peripheral interface system having dedicated communication channels |
JP4376040B2 (ja) * | 2003-11-27 | 2009-12-02 | 株式会社日立製作所 | 複数のプロセッサを用いて情報処理を行う装置及び方法 |
US7290112B2 (en) | 2004-09-30 | 2007-10-30 | International Business Machines Corporation | System and method for virtualization of processor resources |
JP2009110032A (ja) * | 2006-01-16 | 2009-05-21 | Sony Computer Entertainment Inc | ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法 |
US7596654B1 (en) | 2006-01-26 | 2009-09-29 | Symantec Operating Corporation | Virtual machine spanning multiple computers |
JP2008009926A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | 情報処理装置、情報処理システムおよびアドレス変換方法 |
US20080162873A1 (en) | 2006-12-28 | 2008-07-03 | Zimmer Vincent J | Heterogeneous multiprocessing |
US7603428B2 (en) | 2008-02-05 | 2009-10-13 | Raptor Networks Technology, Inc. | Software application striping |
CN101216781B (zh) * | 2007-12-28 | 2011-03-23 | 中国科学院计算技术研究所 | 一种多处理器系统、装置及方法 |
US7734900B2 (en) | 2008-01-11 | 2010-06-08 | International Business Machines Corporation | Computer configuration virtual topology discovery and instruction therefore |
-
2008
- 2008-12-10 US US12/332,009 patent/US9032101B1/en active Active
-
2009
- 2009-12-10 CN CN2009102504990A patent/CN101751352B/zh active Active
- 2009-12-10 JP JP2009280697A patent/JP5011584B2/ja active Active
- 2009-12-10 KR KR20090122330A patent/KR101183779B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR101183779B1 (ko) | 2012-09-17 |
KR20100067066A (ko) | 2010-06-18 |
CN101751352B (zh) | 2012-08-08 |
JP2010152892A (ja) | 2010-07-08 |
CN101751352A (zh) | 2010-06-23 |
US9032101B1 (en) | 2015-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101169514B1 (ko) | 이종 프로세싱 유닛들 사이의 불균일 메모리 액세스를 위한 칩셋 서포트 | |
JP5011584B2 (ja) | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート | |
US10282192B1 (en) | Updating device code through a bus | |
US7484016B2 (en) | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine | |
US9690739B2 (en) | Method and apparatus for extending PCIe domain | |
JP5170782B2 (ja) | ヘテロジニアス処理ユニットのための集中デバイス仮想化レイヤ | |
US8850098B2 (en) | Direct memory access (DMA) address translation between peer input/output (I/O) devices | |
JP4805314B2 (ja) | 入出力(i/o)仮想化動作のプロセッサへのオフロード | |
US9423958B2 (en) | System and method for managing expansion read-only memory and management host thereof | |
TW201120643A (en) | Providing hardware support for shared virtual memory between local and remote physical memory | |
TW202240413A (zh) | PCIe裝置及其操作方法 | |
TW202240415A (zh) | PCIe裝置及其操作方法 | |
US20080229325A1 (en) | Method and apparatus to use unmapped cache for interprocess communication | |
Markussen et al. | Flexible device sharing in pcie clusters using device lending | |
US9047264B2 (en) | Low pin count controller | |
US20150326684A1 (en) | System and method of accessing and controlling a co-processor and/or input/output device via remote direct memory access | |
Kristiansen et al. | Device lending in PCI express networks | |
KR20230152394A (ko) | PCIe 장치 및 이의 동작 방법 | |
JP2008257596A (ja) | データプリフェッチデバイス、データプリフェッチ方法およびデータプリフェッチプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110729 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111102 |
|
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: 20120508 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120516 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150615 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5011584 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
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 |