JP2010152892A - ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート - Google Patents
ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート Download PDFInfo
- Publication number
- JP2010152892A JP2010152892A JP2009280697A JP2009280697A JP2010152892A JP 2010152892 A JP2010152892 A JP 2010152892A JP 2009280697 A JP2009280697 A JP 2009280697A JP 2009280697 A JP2009280697 A JP 2009280697A JP 2010152892 A JP2010152892 A JP 2010152892A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- address
- global
- address map
- access request
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 23
- 230000027455 binding Effects 0.000 title description 7
- 238000009739 binding Methods 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000013507 mapping Methods 0.000 claims abstract description 5
- 238000010586 diagram Methods 0.000 description 17
- 238000011144 upstream manufacturing Methods 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 12
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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/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
- 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)
Abstract
【解決手段】この方法は、第1のプロセッサから第1のアドレスマップを、また第2のプロセッサから第2のアドレスマップを受け取るステップであり、各アドレスマップは、プロセッサがアクセスするように構成されているハードウェアデバイスのセットのためのメモリマップド入出力アパーチャを含む、ステップと、第1と第2のアドレスマップを組み合わせることによってグローバルアドレスマップを生成するステップと、第1のプロセッサから第1のアクセス要求を受けるステップと、グローバルアドレスマップ内に含まれるアドレスマッピングに基づきハードウェアデバイスに第1のアクセス要求をルーティングするステップとを含む。
【選択図】図1D
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のセットのハードウェアデバイスについてのメモリマップドI/Oアパーチャを含む第1のアドレスマップを、第1のプロセッサから受け取り、
前記第2のプロセッサがアクセスするように構成されている、第2のセットのハードウェアデバイスについてのメモリマップドI/Oアパーチャを含む第2のアドレスマップを、第2のプロセッサから受け取り、
前記第1のアドレスマップと前記第2のアドレスマップを組み合わせることによってグローバルアドレスマップを生成し、
前記第1のプロセッサから第1のアクセス要求を受け取り、
前記グローバルアドレスマップ内に含まれるアドレスマッピングに基づいて、前記第1のアクセス要求に関連付けられたハードウェアデバイスに前記第1のアクセス要求をルーティングするように構成されている、デバイスコントローラ。 - 少なくとも1つのハードウェアデバイスが、前記第1のセットのハードウェアデバイス及び前記第2のセットのハードウェアデバイスのいずれにも含まれる、請求項1に記載のデバイスコントローラ。
- 前記I/Oコントローラが、
前記第1のアクセス要求に関連付けられた第1の宛先アドレスに第1のグローバルアドレス部分を追加することによって第1のグローバル宛先アドレスを生成し、
前記グローバルアドレスマップに基づいて、前記第1のグローバル宛先アドレスを第1のデバイスアドレスに変換し、
前記第1のプロセッサを前記ハードウェアデバイスのオーナとして設定し、
前記変換された宛先アドレスから前記グローバルアドレス部分を除去し、
前記第1のアクセス要求を前記ハードウェアデバイスに送信する
ように構成されている、請求項1に記載のデバイスコントローラ。 - 前記第1のグローバルアドレス部分を追加することが、ビットを前記第1のアクセス要求に含まれる前記第1の宛先アドレスの前に付加することを含む、請求項3に記載のデバイスコントローラ。
- 前記第1のアクセス要求が前記第1のプロセッサから受け取られたとき、前記ビットがゼロの値を有し、前記第1のアクセス要求が前記第2のプロセッサから受け取られたとき、前記ビットが1ビットの値を有する、請求項4に記載のデバイスコントローラ。
- 前記I/Oコントローラが、
前記ハードウェアデバイスからリターントランザクションを受け取り、
前記第1のプロセッサが前記ハードウェアデバイスのオーナであると決定し、
前記リターントランザクションに関連付けられた第2の宛先アドレスに第2のグローバルアドレス部分を追加することによって第2のグローバル宛先アドレスを生成し、
前記グローバルアドレスマップを使用して、前記第2のグローバル宛先アドレスを第2のデバイスアドレスに変換し、
前記グローバルアドレスマップ内に含まれるアドレスマッピングに基づいて、前記リターントランザクションを前記第1のプロセッサにルーティングし、
前記変換された宛先アドレスから前記第2のグローバルアドレス部分を除去し、
前記リターントランザクションを前記第1のプロセッサに送信する
ように構成されている、請求項1に記載のデバイスコントローラ。 - 前記グローバルアドレス部分を追加することが、ビットを前記リターントランザクション内に含まれる前記第2の宛先アドレスの前に付加することを含む、請求項6に記載のデバイスコントローラ。
- 前記リターントランザクションが、割込み又はデバイス完了メッセージを含む、請求項7に記載のデバイスコントローラ。
- 前記第1のプロセッサ及び第2のプロセッサが、異なる命令セット、及び異なるオペレーティングシステムを実行するように構成されている、請求項1に記載のデバイスコントローラ。
- コンピュータシステム内に含まれるハードウェアデバイスに対する、プロセッサによるアクセスを、前記コンピュータシステム内に含まれる他のプロセッサとの競合を引き起こすことなしに可能とするための方法であって、
前記第1のプロセッサがアクセスするように構成されている第1のセットのハードウェアデバイスについてのメモリマップド入出力(I/O)アパーチャを含む第1のアドレスマップを、第1のプロセッサから受け取るステップと、
前記第2のプロセッサがアクセスするように構成されている第2のセットのハードウェアデバイスについてのメモリマップドI/Oアパーチャを含む第2のアドレスマップを、第2のプロセッサから受け取るステップと、
前記第1のアドレスマップと前記第2のアドレスマップを組み合わせることによってグローバルアドレスマップを生成するステップと、
前記第1のプロセッサから第1のアクセス要求を受け取るステップと、
前記グローバルアドレスマップ内に含まれるアドレスマッピングに基づいて、前記第1のアクセス要求に関連付けられたハードウェアデバイスに前記第1のアクセス要求をルーティングするステップと
を含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/332,009 US9032101B1 (en) | 2008-12-10 | 2008-12-10 | Chipset support for binding and migrating hardware devices among heterogeneous processing units |
US12/332,009 | 2008-12-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010152892A true JP2010152892A (ja) | 2010-07-08 |
JP5011584B2 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 |
CN102934086B (zh) * | 2010-06-10 | 2017-08-25 | 富士通株式会社 | 多核处理器系统、电力控制方法及电力控制程序 |
EP3242213A1 (en) * | 2012-05-09 | 2017-11-08 | Intel Corporation | Execution using multiple page tables |
CN104462010B (zh) * | 2013-09-13 | 2018-08-31 | 联想(北京)有限公司 | 一种电子设备及状态控制方法 |
US9910700B2 (en) * | 2015-08-26 | 2018-03-06 | Netapp, Inc. | Migration between CPU cores |
RU2017118316A (ru) * | 2015-12-17 | 2018-11-26 | Хуавэй Текнолоджиз Ко., Лтд. | Способ обработки запроса на запись, процессор и компьютер |
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 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187286A (ja) * | 1992-12-15 | 1994-07-08 | Hitachi Ltd | バス変換アダプタ |
JPH086893A (ja) * | 1994-06-20 | 1996-01-12 | Internatl Business Mach Corp <Ibm> | マルチプル・バス情報処理システム及びブリッジ回路 |
JPH08305658A (ja) * | 1995-05-10 | 1996-11-22 | Hitachi Ltd | I/oバス |
JPH09128346A (ja) * | 1995-11-02 | 1997-05-16 | Mitsubishi Electric Corp | 階層バスシステム |
JP2000029824A (ja) * | 1998-07-09 | 2000-01-28 | Hitachi Ltd | 階層型バスシステムとバス変換装置 |
WO2007080718A1 (ja) * | 2006-01-16 | 2007-07-19 | Sony Corporation | ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法 |
JP2008009926A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | 情報処理装置、情報処理システムおよびアドレス変換方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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 |
US7596654B1 (en) | 2006-01-26 | 2009-09-29 | Symantec Operating Corporation | Virtual machine spanning multiple computers |
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 KR KR20090122330A patent/KR101183779B1/ko active IP Right Grant
- 2009-12-10 CN CN2009102504990A patent/CN101751352B/zh active Active
- 2009-12-10 JP JP2009280697A patent/JP5011584B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06187286A (ja) * | 1992-12-15 | 1994-07-08 | Hitachi Ltd | バス変換アダプタ |
JPH086893A (ja) * | 1994-06-20 | 1996-01-12 | Internatl Business Mach Corp <Ibm> | マルチプル・バス情報処理システム及びブリッジ回路 |
JPH08305658A (ja) * | 1995-05-10 | 1996-11-22 | Hitachi Ltd | I/oバス |
JPH09128346A (ja) * | 1995-11-02 | 1997-05-16 | Mitsubishi Electric Corp | 階層バスシステム |
JP2000029824A (ja) * | 1998-07-09 | 2000-01-28 | Hitachi Ltd | 階層型バスシステムとバス変換装置 |
WO2007080718A1 (ja) * | 2006-01-16 | 2007-07-19 | Sony Corporation | ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法 |
JP2008009926A (ja) * | 2006-06-30 | 2008-01-17 | Toshiba Corp | 情報処理装置、情報処理システムおよびアドレス変換方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5011584B2 (ja) | 2012-08-29 |
CN101751352B (zh) | 2012-08-08 |
US9032101B1 (en) | 2015-05-12 |
KR101183779B1 (ko) | 2012-09-17 |
KR20100067066A (ko) | 2010-06-18 |
CN101751352A (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101169514B1 (ko) | 이종 프로세싱 유닛들 사이의 불균일 메모리 액세스를 위한 칩셋 서포트 | |
JP5011584B2 (ja) | ハードウェアデバイスをヘテロジニアス処理ユニット間でバインドし移行するためのチップセットサポート | |
US10282192B1 (en) | Updating device code through a bus | |
US8943584B2 (en) | Centralized device virtualization layer for heterogeneous processing units | |
US7484016B2 (en) | Apparatus and method for high performance volatile disk drive memory access using an integrated DMA engine | |
EP4092540B1 (en) | Method and apparatus for extending pcie domain | |
US9547535B1 (en) | Method and system for providing shared memory access to graphics processing unit processes | |
US8850098B2 (en) | Direct memory access (DMA) address translation between peer input/output (I/O) devices | |
US8806098B1 (en) | Multi root shared peripheral component interconnect express (PCIe) end point | |
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 | |
JP2009037610A (ja) | 入出力(i/o)仮想化動作のプロセッサへのオフロード | |
TW202240413A (zh) | PCIe裝置及其操作方法 | |
TW202240415A (zh) | PCIe裝置及其操作方法 | |
US20080229325A1 (en) | Method and apparatus to use unmapped cache for interprocess communication | |
Achermann et al. | Formalizing memory accesses and interrupts | |
CN106708596B (zh) | 一种输入输出虚拟化资源的调整方法及处理器 | |
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |