JPWO2009028007A1 - Pciデバイスのi/o空間要求抑止方法 - Google Patents

Pciデバイスのi/o空間要求抑止方法 Download PDF

Info

Publication number
JPWO2009028007A1
JPWO2009028007A1 JP2009529859A JP2009529859A JPWO2009028007A1 JP WO2009028007 A1 JPWO2009028007 A1 JP WO2009028007A1 JP 2009529859 A JP2009529859 A JP 2009529859A JP 2009529859 A JP2009529859 A JP 2009529859A JP WO2009028007 A1 JPWO2009028007 A1 JP WO2009028007A1
Authority
JP
Japan
Prior art keywords
space
pci
configuration information
pci device
operating system
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
JP2009529859A
Other languages
English (en)
Other versions
JP5195756B2 (ja
Inventor
勝秀 栗原
勝秀 栗原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2009028007A1 publication Critical patent/JPWO2009028007A1/ja
Application granted granted Critical
Publication of JP5195756B2 publication Critical patent/JP5195756B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/423Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with synchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

I/O空間を割り当て可能なサイズに制約があっても、使用可能なPCIデバイスの台数の制約を最小にするために、演算装置100に、PCIデバイス106−1、106−2、・・・の構成情報を取得する構成情報取得手段101と、各PCIデバイスが使用可能な空間を判別する使用可能空間判別手段102と、構成情報をオペレーティングシステムに通知する構成情報通知手段103と、を備える。

Description

本発明は、PCIデバイスによるI/O空間の要求を抑止する方法に関する。
現在、多くの情報処理装置で、PCI SIG(Peripheral Component Interconnect Special Interest Group)によって策定されるCPU−周辺機器間のインターフェイス規格が採用されている。
例えば、「PCI Local Bus Specification」や、「PCI−X Specification」、「PCI−Express Specification」などである。特許文献1には、PCIブリッジに関する技術が開示されている。また、特許文献2には、PCIバスシステムに関する技術が開示されている。
これらの仕様では、例えば、CPUからPCIデバイスを制御するために使用するレジスタを割り当てる空間として、I/O空間やメモリ空間を使用することが可能となっている。
ここで、I/O空間は、PC/AT(Personal Computer/Advanced Technology)互換機との互換性を確保する等の理由から、PC/AT互換機のアーキテクチャの仕様をひきずった古い仕様となっている。そのため、I/O空間を割り当て可能なサイズの上限が64KBに制約される。
例えば、PCIブリッジが存在する場合、PCIブリッジに対するI/O空間の最小割り当て単位は4KBとなっているので、I/O空間を割り当てることが可能なPCIブリッジの数の上限は、16台(=64KB/4KB)までに制限されてしまう。
こららは、「PCI Local Bus Specification,Revision 2.3」の仕様に起因する制限である。
従来、1つのバス配下には最大32台までのPCIデバイスが接続可能な仕様となっている。しかし、近年、PCIデバイスの伝送速度が高速化に対応するために、PCIブリッジ配下に接続できるPCIデバイスの数が減少してきている。
例えば、PCI−X 100MHzのバスでは接続可能なデバイスの数は2台、PCI−X 133MHzのバスでは1台が限界となっている。また、PCI−Expressの仕様ではブリッジとデバイスの対応は仕様で1対1に規定されている。この場合、I/O空間に割り当て可能なブリッジの台数の上限(16台)が、そのまま接続可能なデバイスの上限となってしまう。
大規模なサーバシステムでは最大128台ものPCIスロットを備えるシステムも多いが、上述の制限をそのまま適用すると、PCIスロットを16台までしか搭載できなくなってしまう。
そのため、従来のシステムでは、I/O空間を要求しないPCIデバイスのみを搭載し、或いは、I/O空間を要求するPCIデバイスであっても、実際にはI/O空間を使用せずにメモリ空間のみで動作可能なPCIデバイスのみに制限して動作させる、などして対応しなければならなかった。また、実際には、I/O空間を要求しないPCIデバイスは種類が少なく、I/O空間を要求しないPCIデバイスのみでシステムを構築するのは難しかった。
そこで、I/O空間を要求してはいるが、実際にI/O空間を使用しなくても動作可能なPCIデバイス、すなわち、I/O空間とメモリ空間のいずれの空間によっても動作可能なPCIデバイス(以下、このPCIデバイスを単に「PCIデバイス」という)が、様々なPCIデバイス・ベンダから提案されている。
しかし、このPCIデバイスでも以下のような問題が残っている。
例えば、オペレーティングシステムは、PCIデバイスに備わるPCI・コンフィグレーション・レジスタに格納されているI/O空間を要求するベース・アドレス・レジスタが存在するかどうかで、PCIデバイスがI/O空間の割り当てを要求しているかどうかを判断している。
したがって、I/O空間を要求するベース・アドレス・レジスタが存在するPCIデバイスは、全てI/O空間を要求していることになる。
その結果、割り当て可能なI/O空間が不足して新たなPCIデバイスに対してI/O空間を割り当てることができなくなった場合、エラー処理を行って当該PCIデバイスを使用できなくしてしまう以外に方法がなく、オペレーティングシステムにI/O空間を使用しないようにする特別な仕組みが必要となる。
Windows(登録商標)の場合は、システム定義ファイルのinfファイルが利用される。このinfファイルを介して、PCIデバイスがI/O空間を使用しないことをオペレーティングシステムに知らせることができる。当該PCIデバイスがI/O空間を使用しないと判明すると、オペレーティングシステムはI/O空間を要求するベース・アドレス・レジスタが存在しても無視し、当該PCIデバイスへのI/O空間の割り当てを行わないでメモリ空間のみを割り当てて動作させる。
また、Linuxの場合は、当該PCIデバイスに対してI/O空間を要求しないドライバを用意することで対処することができる。
しかし、例えば、Windows(登録商標)のインストール時には、上述のinfファイルがインストール用CD−ROM等に含まれていないため、infファイルを介してPCIデバイスがI/O空間を使用しないことをオペレーティングシステムに知らせることができない。
同様に、Linuxのインストール時には、インストール用CD−ROM等にI/O空間を使用しないようにしたドライバが含まれていないため、インストールのときはPCIデバイスにI/O空間割り当てが必要となってしまう。
結局、infファイルや、I/O空間を要求しない特別なドライバもその使用に制約があるために、依然として、I/O空間とメモリ空間のいずれの空間を使用してもアクセス可能なPCIデバイスを有効に使用できていないという問題が残存してしまっている。
特開平11−288400号公報 特開2002−032324号公報
本発明は、上述した問題に鑑みてなされたものであり、その解決しようとする課題は、I/O空間を割り当て可能なサイズに制約があっても、使用可能なPCIデバイスの台数の制約を最小にする方法を提供することである。
上記課題を解決するために、本発明の係る演算装置は、複数のPCIデバイスと接続可能な演算装置であって、該演算装置上で動作するオペレーティングシステムにしたがって前記PCIデバイスに対してI/O空間またはメモリ空間を介して操作可能な演算装置において、前記オペレーティングシステムからの要求に応じて、前記PCIデバイスが有する構成情報を記憶する構成情報記憶手段を参照し、該構成情報を取得する構成情報取得手段と、該構成情報に応じて、前記PCIデバイスがI/O空間とメモリ空間の両空間を使用可能なPCIデバイスか否かを判別する使用可能空間判別手段と、前記構成情報を前記オペレーティングシステムに通知する手段であって、前記使用可能空間判別手段による判別の結果、前記PCIデバイスがI/O空間とメモリ空間の両空間を使用可能な場合には、メモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう構成情報通知手段と、を備える。
本発明によると、PCIデバイスがI/O空間とメモリ空間の両空間を使用可能である場合、構成情報通知手段が、オペレーティングシステムに対して、当該PCIデバイスについてメモリ空間のみ使用可能なPCIデバイスである旨を通知する。
その結果、オペレーティングシステムは、I/O空間のみを使用するPCIデバイス以外のPCIデバイスに対してI/O空間の割り当てを必要としないので、I/O空間の使用を極力抑えることが可能となる。
したがって、本発明によると、I/O空間を割り当て可能なサイズに制約があっても、使用可能なPCIデバイスの台数の制約を最小にする方法を提供することが可能となる。
本発明の実施例に係る演算装置の動作原理を説明する図である。 本発明の実施例に係る演算装置の構成例を示す図である。 本発明の実施例に係るPCIデバイスに備わるPCI・コンフィグレーション・レジスタの構成例を示す図である。 本発明の実施例に係るPCIデバイスに備わるPCI・コンフィグレーション・レジスタのベース・アドレス・レジスタを説明する図である。 本発明の実施例に係るPCIデバイスの構成例を示す図である。 本発明の実施例に係る演算装置の処理を示すフローチャートである。 本発明の実施例に係る演算装置が使用するI/O空間を説明する図である。
以下、本発明の実施形態について、図1〜図7に基づいて説明する。
図1は、本発明の実施例に係る演算装置100の動作原理を説明する図である。
図1に示すように演算装置100は、PCIデバイス106−1、106−2、・・・の構成情報を取得する構成情報取得手段101と、各PCIデバイスが使用可能な空間を判別する使用可能空間判別手段102と、構成情報をオペレーティングシステムに通知する構成情報通知手段103と、を備える。
演算装置100は、オペレーティングシステム105にしたがって動作を行なう演算装置である。例えば、CPU(Central Processing Unit)、CPUを含むチップセット、CPUを含むマザーボート(システムボード)などで実現される。
ただし、上述のCPUやチップセット、マザーボードには、ハードウェアだけでなく、当該ハードウェア上で動作するプログラム(例えば、ファームウェア、マイクロプログラムなど)も含まれる。
また、演算装置100は、複数のPCIデバイス106−1、106−2、・・・と操作可能に接続できる演算装置である。PCIデバイスがI/O空間を要求する場合には、当該PCIデバイスに対してI/O空間の割り当てを行なう。また、PCIデバイスがメモリ空間を要求する場合には、当該PCIデバイスに対してメモリ空間の割り当てを行なう。PCIデバイスがI/O空間とメモリ空間の両空間を要求する場合には、当該PCIデバイスに対して両空間の割り当てを行なう。そして、演算装置100は、割り当てたI/O空間またはメモリ空間を介して当該PCIデバイスに対してアクセスする。
構成情報取得手段101は、例えば、オペレーティングシステム105からの要求に応じて、各PCIデバイス106−1、106−2、・・・が有する構成情報記憶手段106−1a、106−2a、・・・から各構成情報を取得する。そして、構成情報通知手段103は、当該構成情報を使用可能空間判別手段102に通知する。
ここで、構成情報とは、例えば、PCI・コンフィグレーション・レジスタの一部または全部である。
使用可能空間判別手段102は、構成情報取得手段101から構成情報の通知を受けると、当該構成情報を参照し、当該PCIデバイスがI/O空間とメモリ空間の両空間を使用可能なPCIデバイスか否かを判別する。そして、使用可能空間判別手段102は、当該判断結果を構成情報通知手段103に通知する。
構成情報通知手段103は、当該PCIデバイスがI/O空間とメモリ空間の両空間を使用可能な場合には、メモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう。本実施例では、メモリ空間のみ使用可能なPCIデバイスであることを示すデータに構成情報を変更してオペレーティングシステム105に通知する。
以上の処理によって、各PCIデバイスから構成情報を取得すると、オペレーティングシステム105は、各構成情報にしたがってI/O空間のリソース割り当てまたはメモリ空間のリソース割り当てを行なうとともに、必要なドライバをロードすることとなる。
ここで、I/O空間とメモリ空間の両空間を要求するPCIデバイスは、メモリ空間のみを要求するPCIデバイスであるとオペレーティングシステム105に通知されるので、オペレーティングシステム105は、I/O空間のリソース割り当て処理を行なわない(メモリ空間のリソース割り当て処理のみを行なう)。
その結果、I/O空間しか使用できないPCIデバイス以外は、I/O空間を使用しなくなるので、I/O空間を割り当て可能なサイズの制約により、使用可能なPCIデバイスの台数が制約されることを最小限度に抑えることが可能となる。
図2は、本発明の実施例に係る演算装置100の構成例を示す図である。
図2に示すように演算装置100は、CPU201aおよび201bと、揮発性メモリ(例えば、RAM:Random Access Memory)で構成されるメモリ202と、ファームウェア等を格納する不揮発性メモリで構成されるROM(Read Only Memory)203と、PCIブリッジ1a〜34aと、その配下のPCIブリッジ1b〜64bと、その配下のPCIデバイスを実装するPCIスロット1〜128と、各構成要素間のデータの受け渡しを制御するチップセット204と、を備える。
なお、CPU、PCIブリッジおよびPCIスロットの台数は、例示であって図2に示す構成に限定するものではない。
CPU201aおよび201b(以下、両CPUを総じて「CPU201」という)は、ROM203からファームウェアを読み出し、CPU201またはチップセット204内に備わる図示しない記憶部に展開する。そして、当該ファームウェア(以下、「CPUファームウェア」という)を実行する。
また、CPU201は、図示しない外部記憶装置(例えば、磁気ディスク装置)からオペレーティングシステム105を読み出して、一部または全部をメモリ202に展開し、当該オペレーティングシステム105の命令にしたがって処理を行なう。
例えば、オペレーティングシステム105の起動が完了すると、オペレーティングシステム105は、CPUファームウェアに対して、各PCIスロット1〜128に実装されているPCIデバイスからPCI・コンフィグレーション・レジスタのベース・アドレス・レジスタの読み出しを指示する。
CPUファームウェアは、オペレーティングシステム105の指示に応じて、各PCIスロット1〜128に実装されているPCIデバイスからベース・アドレス・レジスタを読み出し、オペレーティングシステム105に通知する。
この時、当該PCIデバイスがI/O空間とメモリ空間の両空間を要求している場合、当該PCIデバイスがメモリ空間のみを要求している旨を示す値にベース・アドレス・レジスタを変更してオペレーティングシステム105に通知する。
オペレーティングシステム105は、通知されたベース・アドレス・レジスタを参照し、当該PCIデバイスがI/O空間を要求している場合には、当該PCIデバイスに対してI/O空間のリソース割り当てを行ない、当該PCIデバイスがメモリ空間を要求している場合には、当該PCIデバイスに対してメモリ空間のリソース割り当てを行なう。
図3は、本発明の実施例に係るPCIデバイスに備わるPCI・コンフィグレーション・レジスタの構成例を示す図である。
図3に示すようにPCI・コンフィグレーション・レジスタ300は、ベンダID(0x00〜0x15)、デバイスID(0x16〜0x31)、ベース・アドレス・レジスタ(0x10〜0x27)を少なくとも備える。
ベンダIDは、PCI SIGがベンダ毎に割り当てるIDである。また、デバイスIDは、製造メーカがデバイスを一意に特定するために自由に割り当てるIDである。
ベース・アドレス・レジスタには、メモリ空間を示すベース・アドレス・レジスタ(32ビットまたは64ビット)や、I/O空間を示すベース・アドレス・レジスタ(32ビットまたは64ビット)が格納される。
なお、その他のデータについては、例えば、「PCI Local Bus Specification,Revision2.3」にしたがったデータ構成であるので説明を省略する。
図4は、本発明の実施例に係るPCIデバイスに備わるPCI・コンフィグレーション・レジスタのベース・アドレス・レジスタを説明する図である。
図4に示すベース・アドレス・レジスタ401は、メモリ空間を示すベース・アドレス・レジスタである(32ビットの場合)。
ベース・アドレス・レジスタ401は、メモリ空間インジケータ(ビット0)と、タイプ(ビット1〜2)と、プリフェッチ可能(ビット3)と、ベースアドレス(ビット4〜31)と、で構成されている。
メモリ空間インジケータは、このレジスタがメモリ空間用のものであることを示し、常に0が格納される。タイプは、メモリブロックを配置可能なアドレス範囲を示す。プリフェッチ可能は、プリフェッチの許可・禁止を制御する。
図4に示すベース・アドレス・レジスタ402は、I/O空間を示すベース・アドレス・レジスタである(32ビットの場合)。
ベース・アドレス・レジスタ402は、I/O空間インジケータ(ビット0)と、ベースアドレス(ビット2〜31)と、で構成されている。
I/O空間インジケータは、このレジスタがI/O空間用のものであることを示し、1が格納される。
図5は、本発明の実施例に係るPCIデバイスの構成例を示す図である。
図5に示すPCIデバイス500は、図3に示したPCI・コンフィグレーション・レジスタ300で構成されるPCI・コンフィグレーション・レジスタ部501と、メモリ空間に割り当てられる各種レジスタで構成されるMMIO(Memory Mapping I/O)レジスタ部502と、I/O空間に割り当てられる各種レジスタで構成されるIOレジスタ部503と、NIC(Network Interface Card)やSCSI(Small Computer System Interface)など所定の機能を実現する制御部504と、を備える。
PCI・コンフィグレーション・レジスタ部501、MMIOレジスタ部502およびIOレジスタ部503へのCPUファームウェアからのアクセスは、PCIバスを介して行なわれる。
MMIOレジスタ部502を構成する各種レジスタ(例えば、R/W命令用レジスタなど)は、オペレーティングシステム105によってメモリ空間の所定のアドレスに割り当てられる。また、IOレジスタ部503を構成する各種レジスタ(例えば、I/O R/W命令用レジスタなど)は、オペレーティングシステム105によってI/O空間の所定のアドレスに割り当てられる。
以上の構成により、図5に示すPCIデバイス500は、PCI・コンフィグレーション・レジスタ部501のベース・アドレス・レジスタにベース・アドレス・レジスタ401および402を格納することにより、I/O空間とメモリ空間の両空間が使用可能となる。
図6は、本発明の実施例に係る演算装置100の処理を示すフローチャートである。
ステップS601aにおいて、例えば、本実施例に係る演算装置100を実装する情報処理装置に電源が投入されると、演算装置100によって、図示しない外部記憶装置からオペレーティングシステム105が読出され実行可能な状態にメモリ202に展開されるOSブート処理が行なわれる。
OSブート処理が完了すると、オペレーティングシステム105が演算装置100上で動作することとなる。そして、情報処理装置に実装されている全デバイスに対して、以下に説明するPCIデバイスのサーチ処理を行なう。
ステップS602aにおいて、オペレーティングシステム105は、CPUファームウェアに対して、情報処理装置に実装されている任意のデバイスのベンダIDとデバイスIDのリード要求を行なう。
一方、ステップS601bにおいて、CPUファームウェアは、オペレーティングシステム105からリード要求を受けると、指定されたPCIコンフィグレーションアドレスからベンダIDとデバイスIDを取得する。そして、CPUファームウェアは、取得したベンダIDとデバイスIDを、オペレーティングシステム105に通知する。
ステップS603aにおいて、オペレーティングシステム105は、通知されたベンダIDとデバイスIDから指定されたPCIコンフィグレーションアドレスにPCIデバイスが搭載されているか否かを判別する。本実施例では、CPUファームウェアによってリードされたベンダIDとデバイスIDの値が、オール0またはオールFでない場合に、PCIデバイスが搭載されていると判断する。
さらに、ステップS603aにおいて、オペレーティングシステム105は、指定されたPCIコンフィグレーションアドレスにPCIデバイスが搭載されていると判断すると、CPUファームウェアに対して、当該PCIデバイスのベース・アドレス・レジスタのリード要求を個々のベースレジスタ毎に順に行なう。
一方、ステップS602bにおいて、CPUファームウェアは、オペレーティングシステム105からリード要求を受けると、当該PCIデバイスのPCI・コンフィグレーション・レジスタからベース・アドレス・レジスタをリードする。
ステップS603bにおいて、CPUファームウェアは、読み出した各ベース・アドレス・レジスタのビット0の値を参照する。そして、読み出したベース・アドレス・レジスタのビット0の値が「1」の場合、CPUファームウェアは、処理をステップS604bに移行する。
また、読み出したベース・アドレス・レジスタが、ビット0の値が「0」の場合、CPUファームウェアは、処理をステップS605bに移行する。
ステップS604bにおいて、CPUファームウェアは、該当するベース・アドレス・レジスタの値を「0(All 0)」に変更する。そして、CPUファームウェアは、処理をステップS605bに移行する。
ステップS605bにおいて、CPUファームウェアは、ベース・アドレス・レジスタをオペレーティングシステム105に通知する。
ステップS604aにおいて、オペレーティングシステム105は、CPUファームウェアからベース・アドレス・レジスタの通知を受けると、当該ベース・アドレス・レジスタのビット0を参照する。
そして、ビット0の値が「0」の場合、オペレーティングシステム105は、当該PCIデバイスが、メモリ空間を要求していると判断する。また、ビット0の値が「1」の場合、オペレーティングシステム105は、当該PCIデバイスが、I/O空間を要求していると判断する。
なお、ベース・アドレス・レジスタの値が「0(All 0)」の場合(例えば、ステップS604bで「0(All 0)」に変更された場合)、オペレーティングシステム105は、当該レジスタがI/O空間もメモリ空間も要求していないと判断して無視する。
以上に説明したサーチ処理を、情報処理装置に実装されている全デバイスに対して行なうと、オペレーティングシステム105は、処理をステップS605bに移行する。
ステップS605bにおいて、オペレーティングシステム105は、ステップS602a〜S604aのサーチ処理の結果にしたがって、各PCIデバイスに対して、I/O空間のリソース割り当て、または、メモリ空間のリソース割り当てを行なう(ステップS604aにおいて、I/O空間を要求していると判断したPCIデバイスに対しては、I/O空間のリソース割り当てを行ない、メモリ空間を要求していると判断したPCIデバイスに対しては、メモリ空間のリソース割り当てを行なう)。
ステップS606aにおいて、オペレーティングシステム105は、外部記憶装置等からPCIデバイス毎に対応するドライバを読み出してメモリ202に実行可能に展開する(ドライバのロードを行なう)。
ステップS602a〜S604aのサーチ処理によって検出した実装PCIデバイスについて、ステップS605aおよび606aの処理が完了すると、オペレーティングシステム105は、ステップS607aに移行してI/O空間またはメモリ空間のリソース割り当て処理を終了する。
以上の処理において、ステップS603bの処理は、以下に示す(1)または(2)または(3)の処理であってもよい。
(1)特定のベンダIDやデバイスIDをあらかじめ記憶装置等に登録しておき、ステップS601bで読み出したベンダIDまたはデバイスIDの一部または全部と一致した場合にステップS603bの処理を実行する。
(2)当該PCIデバイスの上位のPCIブリッジ(に係るI/O空間)を参照し、当該PCIブリッジが当該PCIデバイスに対してI/O空間を割り当てているかをチェックし、I/O空間を割り当てていない場合(または、I/O空間を割り当てる領域が足りない場合)にステップS603bの処理を実行する。
(3)当該PCIデバイスが持つ全てのベース・アドレス・レジスタを参照し、I/O空間およびメモリ空間を要求するベース・アドレス・レジスタを持っている場合にステップS603bの処理を実行する。
図7は、図2に示した構成例の演算装置100の場合におけるI/O空間を説明する図である。
図7は、説明を簡単にするために、図2に示した全てのPCIスロットに、図5で示したPCIデバイス500(すなわち、I/O空間とメモリ空間の両空間を使用可能なPCIデバイス)を実装した場合のI/O空間を示している。
I/O空間701は、本実施例を適用しない従来例を示し、I/O空間702は、本実施例を適用した場合のI/O空間を示している。
ここで、図2には、64台のPCIブリッジが備わっている場合の構成例が示されている。各PCIブリッジ1〜64配下のPCIスロットに、図5で示したPCIデバイス500が実装されると、本実施例を適用しない場合、各PCIブリッジはI/O空間を要求することになる。
例えば、PCIブリッジ1から順に4KB毎にI/O空間の割り当てをおこなうが、割り当て可能なI/O空間のサイズが64KBのため、PCIブリッジ1〜16のみI/O空間が割り当てられた状態となる。この時のI/O空間がI/O空間701である。
一方、本実施例を適用した場合、図5で示したPCIデバイス500は、ステップS603bの処理によって、CPUファームウェアからオペレーティングシステム105には、メモリ空間のみを要求しているものと通知される。
したがって、PCIブリッジ1〜64配下のPCIスロット全てにPCIデバイス500が実装された場合、オペレーティングシステム105は、各PCIブリッジ(PCIデバイス)に対してメモリ空間のみのリソース割り当てを行ない、I/O空間のリソース割り当てを行なわない。この時のI/O空間がI/O空間702である。
なお、図7は、理解を容易にするために極端な場合を例に説明したのであって、図7に示した場合のみに本発明を限定する趣旨ではないのは当然である。PCIブリッジ1〜64配下のいずれかにI/O空間のみを要求するPCIブリッジが実装された場合には、当該PCIブリッジ(PCIデバイス)に対してI/O空間が割り当てられることになる。
以上に説明したように、本実施例に係る演算装置100上で動作するオペレーティングシステム105は、図6に示したCPUファームウェアによるステップS603bの処理によって、メモリ空間のみを要求していると認識する。したがって、当該PCIブリッジに対してI/O空間の割り当ては行なわず、メモリ空間の割り当てのみを行なうこととなる。
したがって、PCIデバイスは、メモリ空間の割り当てのみが行なわれる。その結果、I/O空間の使用を極力抑えることが可能となるので、I/O空間の割り当て可能なサイズに制約があっても、使用可能なPCIデバイスの台数の制約を最小限に抑えることが可能となる。
また、オペレーティングシステム105のインストール時においても、特別な処理やドライバ等を使用することなく、図5に示したPCIデバイス500(I/O空間とメモリ空間の両空間を使用可能なPCIデバイス)を利用することが可能となる。その結果、利用者の利便性も向上する効果を奏する。

Claims (15)

  1. 複数のPCIデバイスと接続可能な演算装置であって、該演算装置上で動作するオペレーティングシステムにしたがって前記PCIデバイスに対してI/O空間またはメモリ空間を介して操作可能な演算装置において、
    前記オペレーティングシステムからの要求に応じて、前記PCIデバイスが有する構成情報を記憶する構成情報記憶手段を参照し、該構成情報を取得する構成情報取得手段と、
    該構成情報に応じて、前記PCIデバイスがI/O空間またはメモリ空間または、その両空間を使用可能なPCIデバイスか否かを判別する使用可能空間判別手段と、
    前記構成情報を前記オペレーティングシステムに通知する手段であって、前記使用可能空間判別手段による判別の結果、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう構成情報通知手段と、
    を備える演算装置。
  2. 前記オペレーティングシステムは、前記構成情報通知手段からメモリ空間のみ使用可能なPCIデバイスである旨の通知を受けると、I/O空間の割り当ては行なわずにメモリ空間の割り当てのみを行なう、
    ことを特徴とする請求項1に記載の演算装置。
  3. 前記構成情報には、PCI・コンフィグレーション・レジスタに格納されるベース・アドレス・レジスタが使用される、
    ことを特徴とする請求項1に記載の演算装置。
  4. 前記構成情報取得手段への要求は、オペレーティングシステム起動時または起動直後に行われる、ことを特徴とする請求項1に記載の演算装置。
  5. 前記PCIデバイスとはPCIブリッジを介して接続可能である、ことを特徴とする請求項1に記載の演算装置。
  6. 複数のPCIデバイスを実装可能な情報処理装置であって、該情報処理装置が有する演算装置上で動作するオペレーティングシステムにしたがって前記PCIデバイスに対してI/O空間またはメモリ空間を介して操作可能な情報処理装置において、
    前記オペレーティングシステムからの要求に応じて、前記PCIデバイスが有する構成情報を記憶する構成情報記憶手段を参照し、該構成情報を取得する構成情報取得手段と、
    該構成情報に応じて、前記PCIデバイスがI/O空間またはメモリ空間または、その両空間を使用可能なPCIデバイスか否かを判別する使用可能空間判別手段と、
    前記構成情報を前記オペレーティングシステムに通知する手段であって、前記使用可能空間判別手段による判別の結果、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう構成情報通知手段と、
    を備える情報処理装置。
  7. 前記構成情報取得手段、使用可能空間判別手段および構成情報取得手段は、前記演算装置に備わる、
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 前記オペレーティングシステムは、前記構成情報通知手段からメモリ空間のみ使用可能なPCIデバイスである旨の通知を受けると、I/O空間の割り当ては行なわずにメモリ空間の割り当てのみを行なう、
    ことを特徴とする請求項6に記載の情報処理装置。
  9. 演算装置に接続可能な複数のPCIデバイスであって、演算装置上で動作するオペレーティングシステムからI/O空間またはメモリ空間のいずれの空間を用いても操作可能なPCIデバイス、によるI/O空間の要求を抑止する方法であって、
    前記オペレーティングシステムからの要求に応じて、前記PCIデバイスが有する構成情報を記憶する構成情報記憶手段を参照し、該構成情報を取得する構成情報取得処理と、
    該構成情報に応じて、前記PCIデバイスがI/O空間またはメモリ空間または、その両空間を使用可能なPCIデバイスか否かを判別する使用可能空間判別処理と、
    前記構成情報を前記オペレーティングシステムに通知する処理であって、前記使用可能空間判別処理による判別の結果、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう構成情報通知処理と、
    を前記演算装置に行なわせる方法。
  10. 前記オペレーティングシステムは、前記構成情報通知手段からメモリ空間のみ使用可能なPCIデバイスである旨の通知を受けると、I/O空間の割り当ては行なわずにメモリ空間の割り当てのみを行なう、
    ことを特徴とする請求項9に記載の方法。
  11. 前記構成情報通知処理は、所定のPCIデバイスを識別する識別情報を記憶する識別情報記憶手段にあらかじめ登録された第1の識別情報と、前記構成情報に登録された第2の識別情報と、を比較し、該比較結果が一致する場合に、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう、
    ことを特徴とする請求項9に記載の方法。
  12. 前記識別情報には、ベンダIDまたはデバイスIDの少なくとも一方が含まれる、ことを特徴とする請求項11に記載の方法。
  13. 前記構成情報通知処理は、前記PCIデバイスの上位に接続されたPCIブリッジに対するI/O空間を参照し、該I/O空間に対してPCIデバイスの割り当てがない場合に、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう、
    ことを特徴とする請求項9に記載の方法。
  14. 前記構成情報通知処理は、前記PCIデバイスの上位に接続されたPCIブリッジに対するI/O空間を参照し、該I/O空間に対してPCIデバイスに割り当てる空間が不足している場合に、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう、
    ことを特徴とする請求項9に記載の方法。
  15. 前記構成情報通知処理は、前記PCIデバイスに、I/O空間を要求するベース・アドレス・レジスタと、メモリ空間を要求するベース・アドレス・レジスタと、が備わる場合に、前記PCIデバイスがメモリ空間のみ使用可能なPCIデバイスである旨の通知を行なう、
    ことを特徴とする請求項9に記載の方法。
JP2009529859A 2007-08-24 2007-08-24 Pciデバイスのi/o空間要求抑止方法 Active JP5195756B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000908 WO2009028007A1 (ja) 2007-08-24 2007-08-24 Pciデバイスのi/o空間要求抑止方法

Publications (2)

Publication Number Publication Date
JPWO2009028007A1 true JPWO2009028007A1 (ja) 2010-11-25
JP5195756B2 JP5195756B2 (ja) 2013-05-15

Family

ID=40386753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009529859A Active JP5195756B2 (ja) 2007-08-24 2007-08-24 Pciデバイスのi/o空間要求抑止方法

Country Status (6)

Country Link
US (1) US7886095B2 (ja)
EP (1) EP2182444A4 (ja)
JP (1) JP5195756B2 (ja)
KR (1) KR101172956B1 (ja)
CN (1) CN101779196B (ja)
WO (1) WO2009028007A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7862640B2 (en) 2006-03-21 2011-01-04 Donaldson Company, Inc. Low temperature diesel particulate matter reduction system
US8166207B2 (en) 2008-09-29 2012-04-24 Intel Corporation Querying a device for information
JP4692912B2 (ja) * 2009-03-18 2011-06-01 日本電気株式会社 リソース割り当てシステム、及びリソース割り当て方法
JP2013114367A (ja) * 2011-11-28 2013-06-10 Junko Suginaka ファイル通信処理方法及び外部デバイス
US8984174B2 (en) * 2011-12-06 2015-03-17 Qualcomm Incorporated 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
KR102255216B1 (ko) * 2014-11-20 2021-05-24 삼성전자주식회사 Pci 장치와 이를 포함하는 pci 시스템
CN113194161B (zh) * 2021-04-26 2022-07-08 山东英信计算机技术有限公司 一种服务器系统mmioh基地址的设置方法、装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4188665A (en) * 1977-11-29 1980-02-12 International Business Machines Corporation Programmable communications subsystem
US5682551A (en) * 1993-03-02 1997-10-28 Digital Equipment Corporation System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
US5613162A (en) * 1995-01-04 1997-03-18 Ast Research, Inc. Method and apparatus for performing efficient direct memory access data transfers
US6418492B1 (en) * 1997-05-13 2002-07-09 Micron Electronics Method for computer implemented hot-swap and hot-add
US6243773B1 (en) * 1997-05-13 2001-06-05 Micron Electronics, Inc. Configuration management system for hot adding and hot replacing devices
JPH11288400A (ja) 1998-04-03 1999-10-19 Nec Shizuoka Ltd Pciブリッジデバイス
JP2001229117A (ja) * 2000-02-15 2001-08-24 Internatl Business Mach Corp <Ibm> 拡張ユニットの制御方法、コンピュータ、記録媒体及び伝送媒体
JP2001256179A (ja) * 2000-03-14 2001-09-21 Sharp Corp プロセッサシステム
JP2002032324A (ja) 2000-07-17 2002-01-31 Hitachi Ltd Pciバスデバイス接続制御方式
US6536014B1 (en) * 2001-09-26 2003-03-18 International Business Machines Corporation Reusable configuration tool
US7155379B2 (en) * 2003-02-25 2006-12-26 Microsoft Corporation Simulation of a PCI device's memory-mapped I/O registers
CN100432967C (zh) * 2005-06-15 2008-11-12 杭州华三通信技术有限公司 Pci设备之间进行通信的方法、设备以及计算机系统
US7376782B2 (en) * 2005-06-29 2008-05-20 Intel Corporation Index/data register pair for indirect register access

Also Published As

Publication number Publication date
US20100122009A1 (en) 2010-05-13
CN101779196A (zh) 2010-07-14
JP5195756B2 (ja) 2013-05-15
EP2182444A4 (en) 2011-04-27
KR20100031772A (ko) 2010-03-24
CN101779196B (zh) 2012-08-22
WO2009028007A1 (ja) 2009-03-05
EP2182444A1 (en) 2010-05-05
US7886095B2 (en) 2011-02-08
KR101172956B1 (ko) 2012-08-09

Similar Documents

Publication Publication Date Title
US9875208B2 (en) Method to use PCIe device resources by using unmodified PCIe device drivers on CPUs in a PCIe fabric with commodity PCI switches
JP5195756B2 (ja) Pciデバイスのi/o空間要求抑止方法
US7689755B2 (en) Apparatus and method for sharing devices between multiple execution domains of a hardware platform
JP5210730B2 (ja) 仮想マシンモニタ及びマルチプロセッサシステム
US7526578B2 (en) Option ROM characterization
US7941803B2 (en) Controlling an operational mode for a logical partition on a computing system
JP5305848B2 (ja) データ処理システム内で入出力(i/o)仮想化を管理するための方法およびデータ処理システムならびにコンピュータ・プログラム
US8386679B2 (en) Dynamic allocation of a direct memory address window
US9531668B2 (en) Micro server, method of allocating MAC address, and computer readable recording medium
US7873754B2 (en) Structure for option ROM characterization
US9423958B2 (en) System and method for managing expansion read-only memory and management host thereof
US8527666B2 (en) Accessing a configuration space of a virtual function
JP2009110518A (ja) 仮想マシンデバイスの動的割り当て
JP2009070368A (ja) PCIe−CardBusコントローラを動的に再構成するための方法及び装置
JP2008021252A (ja) 計算機システム及びアドレス割当方法
US10838861B1 (en) Distribution of memory address resources to bus devices in a multi-processor computing system
JP4692912B2 (ja) リソース割り当てシステム、及びリソース割り当て方法
US8813075B2 (en) Virtual computer system and method of installing virtual computer system
JP2011221634A (ja) 計算機システム、論理区画管理方法及び論理分割処理プログラム
JP2013182461A (ja) 情報処理装置および情報処理装置におけるリソースの制御方法、並びにコンピュータ・プログラム
JP2008071042A (ja) コンピュータシステムおよびそのi/o空間リソース割り当て方法
KR20230142095A (ko) 인터페이스 디바이스 및 그 동작 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120515

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120711

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5195756

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150