專利名稱:Pci設(shè)備的i/o空間請(qǐng)求抑制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及抑制PCI設(shè)備的I/O空間請(qǐng)求的方法。
背景技術(shù):
當(dāng)前,在很多信息處理裝置中采用了由PCI SIG(PeripheralComponentInterconnect Special Interest Group :外圍組件互連特殊興趣組織)制定的CPU-外圍設(shè)備之間的接口標(biāo)準(zhǔn)。 例如,存在"PCI Local Bus Specification,,、"PCI_XSpecification,,、"PCI-Express Specif ication "等。在專利文獻(xiàn)1中公開了關(guān)于PCI橋的技術(shù)。另外,在專利文獻(xiàn)2中公開了關(guān)于PCI總線系統(tǒng)的技術(shù)。 在這些規(guī)格中,例如,可向I/O空間和存儲(chǔ)器空間分配用于由CPU對(duì)PCI設(shè)備進(jìn)行控制的寄存器。 這里,由于確保PC/AT (Personal Computer/Advanced Technology,個(gè)人計(jì)算機(jī)/先進(jìn)技術(shù))兼容機(jī)之間的兼容性等原因,I/O空間是繼承了 PC/AT兼容機(jī)的架構(gòu)規(guī)格的舊規(guī)格。因此,可分配I/O空間的容量的上限被限制為64KB。 例如,當(dāng)存在PCI橋時(shí),針對(duì)PCI橋的1/0空間的最小分配單位為4KB,因此可分配I/O空間的PCI橋的數(shù)量上限被限制為16臺(tái)(=64KB/4KB)。 這些是由于"PCI Local Bus Specification,Revision 2. 3"的規(guī)格導(dǎo)致的限制。
現(xiàn)有的規(guī)格是最多有32臺(tái)PCI設(shè)備可連接到1個(gè)總線屬下。但是,近年來(lái),為了應(yīng)對(duì)PCI設(shè)備傳輸速度的高速化,可連接到PCI橋?qū)傧碌腜CI設(shè)備的數(shù)量正在減少。
例如,在PCI-X 100MHz的總線中,可連接的設(shè)備的數(shù)量為2臺(tái),在PCI-X 133MHz的總線中,l臺(tái)為極限。另外,在PCI-Express的規(guī)格中,根據(jù)規(guī)格,橋與設(shè)備的對(duì)應(yīng)被規(guī)定為1對(duì)1。在該情況下,可分配I/O空間的橋的臺(tái)數(shù)的上限(16臺(tái))直接成為可連接的設(shè)備的上限。 在大規(guī)模的服務(wù)器系統(tǒng)中,很多系統(tǒng)具有最多128臺(tái)PCI插槽,但如果直接應(yīng)用上述限制,則只能安裝16臺(tái)PCI插槽。 因此,在現(xiàn)有的系統(tǒng)中,必須只安裝不請(qǐng)求I/0空間的PCI設(shè)備、成者只限定為即使是請(qǐng)求I/O空間的PCI設(shè)備但實(shí)際上不使用I/O空間而僅使用存儲(chǔ)器空間就能工作的PCI設(shè)備工作等來(lái)應(yīng)對(duì)。另外,實(shí)際上,不請(qǐng)求I/O空間的PCI設(shè)備的種類較少,只由不請(qǐng)求I/O空間的PCI設(shè)備來(lái)構(gòu)建系統(tǒng)是很困難的。 因此,各種PCI設(shè)備廠商提出了雖然請(qǐng)求了 I/O空間但實(shí)際上即使不使用I/O空間也能工作的PCI設(shè)備,即無(wú)論通過(guò)1/0空間和存儲(chǔ)器空間中的哪一個(gè)空間都能工作的PCI設(shè)備(以下將該P(yáng)CI設(shè)備簡(jiǎn)稱為"PCI設(shè)備")。
但是,在這種PCI設(shè)備中也存在下述問(wèn)題。 例如,操作系統(tǒng)根據(jù)是否存在儲(chǔ)存在PCI設(shè)備具有的PCI配置寄存器中的、請(qǐng)求I/0空間的基地址寄存器,來(lái)判斷PCI設(shè)備是否請(qǐng)求I/O空間的分配。
因此,存在請(qǐng)求I/O空間的基地址寄存器的PCI設(shè)備請(qǐng)求所有的I/O空間。
其結(jié)果是,當(dāng)可分配的I/O空間出現(xiàn)不足從而不能向新的PCI設(shè)備分配I/O空間時(shí),除了執(zhí)行錯(cuò)誤處理來(lái)禁用該P(yáng)CI設(shè)備以外,沒(méi)有其他方法,因此對(duì)于操作系統(tǒng)而言,需要使得不使用I/O空間的特殊機(jī)制。 在Windows (注冊(cè)商標(biāo))的情況下,利用了作為系統(tǒng)定義文件的inf文件。可通過(guò)該inf文件,向操作系統(tǒng)通知PCI設(shè)備不使用I/O空間。當(dāng)判斷為該P(yáng)CI設(shè)備不使用I/O空間時(shí),即使存在請(qǐng)求I/O空間的基地址寄存器,操作系統(tǒng)也忽略其存在,不向該P(yáng)CI設(shè)備分配I/O空間,而只分配存儲(chǔ)器空間來(lái)進(jìn)行工作。 另外,在Li皿x的情況下,可通過(guò)為該P(yáng)CI設(shè)備準(zhǔn)備不請(qǐng)求I/O空間的驅(qū)動(dòng)程序來(lái)應(yīng)對(duì)。 但是,例如,在安裝Windows (注冊(cè)商標(biāo))時(shí),由于在安裝用CD-ROM等中不包含上述inf文件,因此不能通過(guò)inf文件向操作系統(tǒng)通知PCI設(shè)備不使用I/O空間。
同樣,在安裝Li皿x時(shí),由于在安裝用CD-ROM等中不包含使得不使用I/O空間的驅(qū)動(dòng)程序,因此在安裝時(shí)需要向PCI設(shè)備分配I/O空間。 結(jié)果,由于inf文件和不請(qǐng)求1/0空間的特殊驅(qū)動(dòng)程序在其使用上存在限制,因此依然留下下述問(wèn)題,即尚未能有效地使用無(wú)論使用1/0空間和存儲(chǔ)器空間中的哪一個(gè)空間都能進(jìn)行訪問(wèn)的PCI設(shè)備。 專利文獻(xiàn)1 :日本特開平11-288400號(hào)公報(bào)
專利文獻(xiàn)2 :日本特開2002-032324號(hào)公報(bào)
發(fā)明內(nèi)容
本發(fā)明正是鑒于上述問(wèn)題而完成的,其欲解決的課題在于,提供即使可分配1/0
空間的容量存在限制,也將可使用的PCI設(shè)備的臺(tái)數(shù)限制降至最低的方法。 為了解決上述課題,本發(fā)明的運(yùn)算裝置可與多個(gè)PCI設(shè)備連接,該運(yùn)算裝置能夠
按照在該運(yùn)算裝置上工作的操作系統(tǒng)通過(guò)I/O空間或存儲(chǔ)器空間對(duì)所述PCI設(shè)備進(jìn)行操
作,該運(yùn)算裝置具有結(jié)構(gòu)信息取得單元,其根據(jù)來(lái)自所述操作系統(tǒng)的請(qǐng)求,參照所述PCI
設(shè)備所具有的存儲(chǔ)結(jié)構(gòu)信息的結(jié)構(gòu)信息存儲(chǔ)單元,來(lái)取得該結(jié)構(gòu)信息;可使用空間判斷單
元,其根據(jù)該結(jié)構(gòu)信息,判斷所述PCI設(shè)備是否是能夠使用1/0空間或存儲(chǔ)器空間或這兩個(gè)
空間的PCI設(shè)備;以及結(jié)構(gòu)信息通知單元,其向所述操作系統(tǒng)通知所述結(jié)構(gòu)信息,當(dāng)所述可
使用空間判斷單元的判斷結(jié)果為所述PCI設(shè)備能夠使用1/0空間和存儲(chǔ)器空間這兩個(gè)空間
時(shí),進(jìn)行表示所述PCI設(shè)備是只能使用存儲(chǔ)器空間的PCI設(shè)備的通知。 根據(jù)本發(fā)明,當(dāng)PCI設(shè)備可使用I/O空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),結(jié)構(gòu)信息通
知單元對(duì)操作系統(tǒng)進(jìn)行表示該P(yáng)CI設(shè)備是只能使用存儲(chǔ)器空間的PCI設(shè)備的通知。 其結(jié)果,操作系統(tǒng)無(wú)需向除了只使用I/O空間的PCI設(shè)備以外的PCI設(shè)備分配1/
0空間,因此可盡量抑制I/O空間的使用。 因此,根據(jù)本發(fā)明,可提供即使可分配I/0空間的容量存在限制,也將可便用的PCI設(shè)備的臺(tái)數(shù)限制降至最低的方法。
圖1是說(shuō)明本發(fā)明的實(shí)施例的運(yùn)算裝置的動(dòng)作原理的圖。 圖2是示出本發(fā)明的實(shí)施例的運(yùn)算裝置的結(jié)構(gòu)示例的圖。 圖3是示出本發(fā)明的實(shí)施例的PCI設(shè)備具有的PCI配置寄存器的結(jié)構(gòu)示例的圖。 圖4是說(shuō)明本發(fā)明的實(shí)施例的PCI設(shè)備具有的PCI配置寄存器的基地址寄存器的圖。 圖5是示出本發(fā)明的實(shí)施例的PCI設(shè)備的結(jié)構(gòu)示例的圖。 圖6是示出本發(fā)明的實(shí)施例的運(yùn)算裝置的處理的流程圖。 圖7是說(shuō)明本發(fā)明的實(shí)施例的運(yùn)算裝置使用的I/O空間的圖。
具體實(shí)施例方式
下面,根據(jù)圖1 圖7對(duì)本發(fā)明的實(shí)施方式進(jìn)行說(shuō)明。 圖1是說(shuō)明本發(fā)明的實(shí)施例的運(yùn)算裝置100的動(dòng)作原理的圖。 如圖1所示,運(yùn)算裝置100具有結(jié)構(gòu)信息取得單元IOI,其取得PCI設(shè)備106-1、
106-2、…的結(jié)構(gòu)信息;可使用空間判斷單元102,其判斷各PCI設(shè)備可使用的空間;以及結(jié)
構(gòu)信息通知單元103,其向操作系統(tǒng)通知結(jié)構(gòu)信息。 運(yùn)算裝置100是隨著操作系統(tǒng)105而進(jìn)行動(dòng)作的運(yùn)算裝置。例如,通過(guò)CPU (Central Processing Unit,中央處理單元)、包含CPU的芯片組、包含CPU的主板(系統(tǒng)板)等來(lái)實(shí)現(xiàn)。 但是,在上述CPU、芯片組和主板中,不僅包含硬件,還包含在該硬件上工作的程序(例如,固件、微程序等)。 另外,運(yùn)算裝置100是可與多個(gè)PCI設(shè)備106-l、106-2、…以可操作的方式連接的運(yùn)算裝置。當(dāng)PCI設(shè)備請(qǐng)求I/0空間時(shí),向該P(yáng)CI設(shè)備分配I/0空間。另外,當(dāng)PCI設(shè)備請(qǐng)求存儲(chǔ)器空間時(shí),向該P(yáng)CI設(shè)備分配存儲(chǔ)器空間。當(dāng)PCI設(shè)備請(qǐng)求I/O空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),向該P(yáng)CI設(shè)備分配這兩個(gè)空間。然后,運(yùn)算裝置100通過(guò)所分配的I/O空間或存儲(chǔ)器空間訪問(wèn)該P(yáng)CI設(shè)備。 結(jié)構(gòu)信息取得單元101例如根據(jù)來(lái)自操作系統(tǒng)105的請(qǐng)求,從各PCI設(shè)備106-1、106-2、…具有的結(jié)構(gòu)信息存儲(chǔ)單元106-la、106-2a、…取得各結(jié)構(gòu)信息。然后,結(jié)構(gòu)信息通知單元103向可使用空間判斷單元102通知該結(jié)構(gòu)信息。
這里,結(jié)構(gòu)信息是指例如PCI配置寄存器的一部分或全部。 當(dāng)從結(jié)構(gòu)信息取得單元101接收到結(jié)構(gòu)信息的通知時(shí),可使用空間判斷單元102參照該結(jié)構(gòu)信息,判斷該P(yáng)CI設(shè)備是否是可使用I/O空間和存儲(chǔ)器空間這兩個(gè)空間的PCI設(shè)備。然后,可使用空間判斷單元102向結(jié)構(gòu)信息通知單元103通知該判斷結(jié)果。
當(dāng)PCI設(shè)備可使用I/O空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),結(jié)構(gòu)信息通知單元103進(jìn)行表示PCI設(shè)備只能使用存儲(chǔ)器空間的通知。在本實(shí)施例中,將結(jié)構(gòu)信息變更成表示PCI設(shè)備只能使用存儲(chǔ)器空間的數(shù)據(jù)后將其通知給操作系統(tǒng)105。 當(dāng)通過(guò)以上處理從各PCI設(shè)備取得了結(jié)構(gòu)信息時(shí),操作系統(tǒng)105根據(jù)各結(jié)構(gòu)信息進(jìn)行I/O空間的資源分配或進(jìn)行存儲(chǔ)器空間的資源分配,并且加載所需的驅(qū)動(dòng)程序。
這里,請(qǐng)求I/O空間和存儲(chǔ)器空間這兩個(gè)空間的PCI設(shè)備作為只請(qǐng)求存儲(chǔ)器空間的PCI裝置被通知給操作系統(tǒng)105,因此操作系統(tǒng)105不進(jìn)行I/O空間的資源分配處理(只進(jìn)行存儲(chǔ)器空間的資源分配處理)。 結(jié)果,由于除了只能使用1/0空間的PCI設(shè)備以外的PCI設(shè)備不再使用1/0空間,因此,可通過(guò)限制可分配I/0空間的容量,將對(duì)可使用的PCI設(shè)各的臺(tái)數(shù)的限制降低至最低程度。 圖2是示出本發(fā)明的實(shí)施例的運(yùn)算裝置100的結(jié)構(gòu)示例的圖。
如圖2所示,運(yùn)算裝置100具有CPU 201a以及201b、由易失性存儲(chǔ)器(例如,RAM:Random Access Memory,隨機(jī)存取存儲(chǔ)器)構(gòu)成的存儲(chǔ)器202、由儲(chǔ)存固件等的非易失性存儲(chǔ)器構(gòu)成的ROM (Read Only Memory,只讀存儲(chǔ)器)203、 PCI橋la 34a、 PCI橋la 34a屬下的PCI橋lb 64b、 PCI橋lb 64b屬下的安裝PCI設(shè)備的PCI插槽1 128、以及控制各結(jié)構(gòu)要素之間的數(shù)據(jù)交換的芯片組204。 并且,CPU、PCI橋以及PCI插槽的臺(tái)數(shù)只是例示,并不限于圖2所示的結(jié)構(gòu)。
CPU 201a以及201b(以下,2個(gè)CPU總稱為"CPU 201")從ROM 203讀出固件,在CPU 201或芯片組204內(nèi)具有的未圖示的存儲(chǔ)部中將其展開。然后,執(zhí)行該固件(以下,稱為"CPU固件")。 另外,CPU 201從未圖示的外部存儲(chǔ)裝置(例如,磁盤裝置)讀出操作系統(tǒng)105,在存儲(chǔ)器202中展開其一部分或全部,根據(jù)該操作系統(tǒng)105的指令進(jìn)行處理。
例如,當(dāng)操作系統(tǒng)105的啟動(dòng)結(jié)束時(shí),操作系統(tǒng)105指示CPU固件從安裝在各PCI插槽1 128的PCI設(shè)備讀出PCI配置寄存器的基地址寄存器。 CPU固件根據(jù)操作系統(tǒng)105的指示,從安裝在各PCI插槽1 128的PCI設(shè)備讀出基地址寄存器,將其通知給操作系統(tǒng)105。 此時(shí),當(dāng)該P(yáng)CI設(shè)備請(qǐng)求I/O空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),將基地址寄存器變
更成表示該P(yáng)CI設(shè)備只請(qǐng)求存儲(chǔ)器空間的值,并將其通知給操作系統(tǒng)105。 操作系統(tǒng)105參照所通知的基地址寄存器、當(dāng)該P(yáng)CI設(shè)備請(qǐng)求I/O空間時(shí),對(duì)該
PCI設(shè)備進(jìn)行I/O空間的資源分配,當(dāng)該P(yáng)CI設(shè)備請(qǐng)求存儲(chǔ)器空間時(shí),對(duì)該P(yáng)CI設(shè)備進(jìn)行存
儲(chǔ)器空間的資源分配。 圖3是示出本發(fā)明的實(shí)施例的PCI設(shè)備具有的PCI配置寄存器的結(jié)構(gòu)示例的圖。
如圖3所示,PCI配置寄存器300至少具有廠商ID(OXOO 0X15)、設(shè)備ID(0X16 0X31)以及基地址寄存器(OX 10 0X27)。 廠商ID是PCI SIG向每個(gè)廠商分配的ID。另外,設(shè)備ID是制造商為了唯一地確定設(shè)備而自由分配的ID。 在基地址寄存器中儲(chǔ)存有表示存儲(chǔ)器空間的基地址寄存器(32位或64位)、表示I/O空間的基地址寄存器(32位或64位)。 并且,其它數(shù)據(jù)是例如基于"PCI Local Bus Specification, Revision2. 3"的數(shù)據(jù)結(jié)構(gòu),因此省略說(shuō)明。 圖4是說(shuō)明本發(fā)明的實(shí)施例的PCI設(shè)備具有的PCI配置寄存器的基地址寄存器的圖。 圖4所示的基地址寄存器401是表示存儲(chǔ)器空間的基地址寄存器(32位的情況)。
基地址寄存器401由存儲(chǔ)器空間指針(位0)、類型(位1 2)、"可預(yù)取"(位3)、以及基地址(位4 31)構(gòu)成。
7
存儲(chǔ)器空間指針表示孩寄存器是存儲(chǔ)器空間用的寄存器,始終存儲(chǔ)有0。類型表示
可配置存儲(chǔ)器塊的地址范圍。"可預(yù)取"對(duì)預(yù)取的允許/禁止進(jìn)行控制。 圖4所示的基地址寄存器402是表示I/O空間的基地址寄存器(32位的情況)。 基地址寄存器402由I/O空間指針(位0)、以及基地址(位2 31)構(gòu)成。 I/O空間指針表示該寄存器是I/O空間用的寄存器,存儲(chǔ)有1。 圖5是示出本發(fā)明的實(shí)施例的PCI設(shè)備的結(jié)構(gòu)示例的圖。 圖5所示的PCI設(shè)備500具有由圖3所示的PCI配置寄存器300構(gòu)成的PCI配置 寄存器部501、由分配給存儲(chǔ)器空間的各種寄存器構(gòu)成的匪I0(Memory M即ping1/0,存儲(chǔ)器 映射I/O)寄存器部502、由分配給I/O空間的各種寄存器構(gòu)成的10寄存器部503、以及實(shí) 現(xiàn)NIC(Networklnterface Card,網(wǎng)絡(luò)接口卡)或SCSI (Small Computer Systemlnterface, 小型計(jì)算機(jī)系統(tǒng)接口 )等預(yù)定功能的控制部504。 從CPU固件對(duì)PCI配置寄存器部501 、匪10寄存器部502以及10寄存器部503的 訪問(wèn)是通過(guò)PCI總線來(lái)進(jìn)行的。 由操作系統(tǒng)105將構(gòu)成匪IO寄存器部502的各種寄存器(例如,R/W指令用寄存
器等)分配給存儲(chǔ)器空間的預(yù)定地址。另外,由操作系統(tǒng)105將構(gòu)成10寄存器部503的各
種寄存器(例如,I/O R/W指令用寄存器等)分配給I/O空間的預(yù)定地址。 通過(guò)上述結(jié)構(gòu),圖5所示的PCI設(shè)備500將基地址寄存器401以及402儲(chǔ)存在PCI
配置寄存器部501的基地址寄存器中,由此可使用I/O空間和存儲(chǔ)器空間這兩個(gè)空間。 圖6是示出本發(fā)明的實(shí)施例的運(yùn)算裝置100的處理的流程圖。 在步驟S601a中,例如,當(dāng)安裝有本實(shí)施方式的運(yùn)算裝置100的信息處理裝置接通
電源時(shí),由運(yùn)算裝置100從未圖示的外部存儲(chǔ)裝置讀出操作系統(tǒng)105,進(jìn)行在存儲(chǔ)器202中
將操作系統(tǒng)105展開成可執(zhí)行的狀態(tài)的OS引導(dǎo)處理。 當(dāng)OS引導(dǎo)處理結(jié)束時(shí),操作系統(tǒng)105在運(yùn)算裝置100上工作。然后,針對(duì)安裝在 信息處理裝置中的全部設(shè)備,進(jìn)行下面說(shuō)明的PCI設(shè)備的查找處理。 在步驟S602a中,操作系統(tǒng)105向CPU固件進(jìn)行安裝在信息處理裝置中的任意設(shè) 備的廠商ID和設(shè)備ID的讀請(qǐng)求。 另一方面,在步驟S601b中,當(dāng)從操作系統(tǒng)105接收到讀請(qǐng)求時(shí),CPU固件從所指 定的PCI配置地址取得廠商ID和設(shè)備ID。然后,CPU固件向操作系統(tǒng)105通知所取得的廠 商ID和設(shè)備ID。 在步驟S603a中,操作系統(tǒng)105根據(jù)所通知的廠商ID和設(shè)備ID,判斷在所指定的 PCI配置地址中是否安裝有PCI設(shè)備。在本實(shí)施例中,當(dāng)由CPU固件讀出的廠商ID和設(shè)備 ID的值不是全0或不是全F時(shí),判斷為安裝有PCI設(shè)備。 并且,當(dāng)在步驟S603a中判斷為在所指定的PCI配置地址中安裝有PCI設(shè)備時(shí),操 作系統(tǒng)105向CPU固件針對(duì)每個(gè)基寄存器依次進(jìn)行該P(yáng)CI設(shè)備的基地址寄存器的讀請(qǐng)求。
另一方面,當(dāng)在步驟S602b中從操作系統(tǒng)105接收到讀請(qǐng)求時(shí),CPU固件從該P(yáng)CI 設(shè)備的PCI配置寄存器中讀出基地址寄存器。 在步驟S603b中,CPU固件參照所讀出的各基地址寄存器的位0的值。然后,當(dāng)所
讀出的基地址寄存器的位0的值為"1"時(shí),CPU固件將處理轉(zhuǎn)移至步驟S604b。 另外,當(dāng)所讀出的基地址寄存器的位0的值為"O"時(shí),CPU固件將處理轉(zhuǎn)移至步驟S605b。 在步驟S604b中,CPU固件將相應(yīng)的基地址寄存器的值變更成"0 (全0)"。然后, CPU固件將處理轉(zhuǎn)移至步驟S605b。 在步驟S605b中,CPU固件向操作系統(tǒng)105通知基地址寄存器。 當(dāng)在步驟S604b中從CPU固件接收到基地址寄存器的通知時(shí),操作系統(tǒng)105參照
該基地址寄存器的位O。 然后,當(dāng)位O的值為"O"時(shí),操作系統(tǒng)105判斷為該P(yáng)CI設(shè)備請(qǐng)求了存儲(chǔ)器空間。
另外,當(dāng)位0的值為"1"時(shí),操作系統(tǒng)105判斷為該P(yáng)CI設(shè)備請(qǐng)求了 I/O空間。 并且,當(dāng)基地址寄存器的值為"O(全0)"時(shí)(例如,在步驟S604b中變更成"O(全
0)"時(shí)),操作系統(tǒng)105判斷為該寄存器既沒(méi)請(qǐng)求I/O空間也沒(méi)請(qǐng)求存儲(chǔ)器空間,忽略該寄存器。 當(dāng)針對(duì)安裝在信息處理裝置中的全部設(shè)備進(jìn)行了上述查找處理時(shí),操作系統(tǒng)105 將處理轉(zhuǎn)移至步驟S605b。 在步驟S605b中,操作系統(tǒng)105根據(jù)步驟S602a S604a的查找處理結(jié)果,對(duì)各 PCI設(shè)備進(jìn)行1/0空間的資源分配或存儲(chǔ)器空間的資源分配(在步驟S604a中,對(duì)判斷為請(qǐng) 求I/O空間的PCI設(shè)備進(jìn)行I/O空間的資源分配,對(duì)判斷為請(qǐng)求存儲(chǔ)器空間的PCI設(shè)備進(jìn) 行存儲(chǔ)器空間的資源分配)。 在步驟S606a中,操作系統(tǒng)105從外部存儲(chǔ)裝置等中讀出與每個(gè)PCI設(shè)備對(duì)應(yīng)的 驅(qū)動(dòng)程序后在存儲(chǔ)器202中展開成可執(zhí)行的狀態(tài)(加載驅(qū)動(dòng)程序)。 當(dāng)對(duì)通過(guò)步驟S602a S604a的查找處理而檢測(cè)出的安裝PCI設(shè)備結(jié)束了步驟 S605a以及606a的處理時(shí),操作系統(tǒng)105轉(zhuǎn)移至步驟S607,結(jié)束I/O空間或存儲(chǔ)器空間的 資源分配處理。 在以上處理中,步驟S603b的處理也可以是以下所示的(1)或(2)或(3)的處理。
(1)預(yù)先將特定的廠商ID和/或設(shè)備ID登記在存儲(chǔ)裝置等中,當(dāng)與在步驟S601b 中讀出的廠商ID或設(shè)備ID的一部分或全部一致時(shí),執(zhí)行步驟S603b的處理。
(2)參照該P(yáng)CI設(shè)備的上級(jí)的PCI橋(所關(guān)聯(lián)的I/O空間),檢查該P(yáng)CI橋是否向 該P(yáng)CI設(shè)備分配了 I/O空間,當(dāng)未分配I/O空間時(shí)(或分配I/O空間的區(qū)域不足時(shí)),執(zhí)行 步驟S603b的處理。 (3)參照該P(yáng)CI設(shè)備具有的全都基地址寄存器,當(dāng)具有請(qǐng)求I/0空間以及存儲(chǔ)器空 間的基地址寄存器時(shí),執(zhí)行步驟S603b的處理。 圖7是說(shuō)明圖2所示的結(jié)構(gòu)示例的運(yùn)算裝置100的情況下的I/O空間的圖。
為了簡(jiǎn)化說(shuō)明,圖7示出了在圖2所示的全部PCI插槽中安裝有圖5所示的PCI 設(shè)備500(即,可使用I/O空間和存儲(chǔ)器空間這兩個(gè)空間的PCI設(shè)備)時(shí)的I/O空間。
1/0空間701示出了未應(yīng)用本實(shí)施例的現(xiàn)有示例,I/0空間702示出了應(yīng)用了本實(shí) 施例時(shí)的1/0空間。 這里,圖2示出了具有64臺(tái)PCI橋時(shí)的結(jié)構(gòu)示例。當(dāng)在各PCI橋1 64屬下的 PCI插槽中安裝圖5所示的PCI設(shè)備500時(shí),在不應(yīng)用本實(shí)施例的情況下各PCI橋?qū)⒄?qǐng)求 1/0空間。 例如,從PCI橋1開始依次分配4KB的I/O空間,由于可分配的I/O空間的容量為
964KB,因此成為只向PCI橋1 16分配了 I/O空間的狀態(tài)。此時(shí)的I/O空間為I/O空間 701。 另一方面,在應(yīng)用了本實(shí)施例的情況下,通過(guò)步驟S603b的處理,從CPU固件向操 作系統(tǒng)105通知圖5所示的PCI設(shè)備500只請(qǐng)求了存儲(chǔ)器空間。 因此,當(dāng)PCI橋1 64屬下的全部PCI插槽中安裝有PCI設(shè)備500時(shí),操作系統(tǒng) 105對(duì)各PCI橋(PCI設(shè)備)只進(jìn)行存儲(chǔ)器空間的資源分配,不進(jìn)行I/0空間的資源分配。 此時(shí)的I/O空間為I/O空間702。 并且,為了容易理解,圖7以極端的情況為例進(jìn)行了說(shuō)明,當(dāng)然主旨并不是將本發(fā) 明僅限于圖7所示的情況。當(dāng)在PCI橋1 64屬下的任一插槽中安裝有只請(qǐng)求I/O空間 的PCI橋時(shí),向該P(yáng)CI橋(PCI設(shè)備)分配I/O空間。 如上所述,在本實(shí)施例的運(yùn)算裝置IOO上工作的操作系統(tǒng)105通過(guò)圖6所示的CPU 固件進(jìn)行的步驟S603b的處理,識(shí)別為只請(qǐng)求存儲(chǔ)器空間。因此,不向該P(yáng)CI橋分配I/O空 間,而是只分配存儲(chǔ)器空間。 因此,PCI設(shè)備只被分配存儲(chǔ)器空間。其結(jié)果,可盡量抑制I/O空間的使用,因此 即使在1/0空間的可分配容量存在限制時(shí),也能將對(duì)可使用的PCI設(shè)備臺(tái)數(shù)的限制降至最 低程度。 另外,在安裝操作系統(tǒng)105時(shí),能夠使用圖5所示的PCI設(shè)備500(可使用I/O空 間和存儲(chǔ)器空間這兩個(gè)空間的PCI設(shè)備),而無(wú)需使用特殊處理和驅(qū)動(dòng)程序等。結(jié)果,起到 了提高用戶的便利性的效果。
10
權(quán)利要求
一種運(yùn)算裝置,該運(yùn)算裝置能夠與多個(gè)PCI設(shè)備連接,能夠按照在該運(yùn)算裝置上工作的操作系統(tǒng)通過(guò)I/O空間或存儲(chǔ)器空間對(duì)所述PCI設(shè)備進(jìn)行操作,該運(yùn)算裝置具有結(jié)構(gòu)信息取得單元,其根據(jù)來(lái)自所述操作系統(tǒng)的請(qǐng)求,參照所述PCI設(shè)備所具有的存儲(chǔ)結(jié)構(gòu)信息的結(jié)構(gòu)信息存儲(chǔ)單元,來(lái)取得該結(jié)構(gòu)信息;可使用空間判斷單元,其根據(jù)該結(jié)構(gòu)信息,判斷所述PCI設(shè)備是否是能夠使用I/O空間或存儲(chǔ)器空間或這兩個(gè)空間的PCI設(shè)備;以及結(jié)構(gòu)信息通知單元,其向所述操作系統(tǒng)通知所述結(jié)構(gòu)信息,當(dāng)所述可使用空間判斷單元的判斷結(jié)果為所述PCI設(shè)備能夠使用I/O空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),進(jìn)行表示所述PCI設(shè)備是只能使用存儲(chǔ)器空間的PCI設(shè)備的通知。
2. 根據(jù)權(quán)利要求l所述的運(yùn)算裝置,其特征在于,當(dāng)從所述結(jié)構(gòu)信息通知單元接收到表示是只能使用存儲(chǔ)器空間的pci設(shè)備的通知時(shí), 所述操作系統(tǒng)只進(jìn)行存儲(chǔ)器空間的分配,而不進(jìn)行i/o空間的分配。
3. 根據(jù)權(quán)利要求l所述的運(yùn)算裝置,其特征在于, 在所述結(jié)構(gòu)信息中,使用存儲(chǔ)在pci配置寄存器中的基地址寄存器。
4. 根據(jù)權(quán)利要求l所述的運(yùn)算裝置,其特征在于,在操作系統(tǒng)啟動(dòng)時(shí)或剛剛啟動(dòng)后進(jìn)行對(duì)所述結(jié)構(gòu)信息取得單元的請(qǐng)求。
5. 根據(jù)權(quán)利要求l所述的運(yùn)算裝置,其特征在于, 該運(yùn)算裝置能夠通過(guò)pci橋與所述pci設(shè)備連接。
6. —種信息處理裝置,該信息處理裝置能夠安裝多個(gè)pci設(shè)備,能夠按照在該信息處 理裝置所具有的運(yùn)算裝置上工作的操作系統(tǒng)通過(guò)i/0空間或存儲(chǔ)器空間對(duì)所述pci設(shè)備進(jìn) 行操作,該信息處理裝置具有結(jié)構(gòu)信息取得單元,其根據(jù)來(lái)自所述操作系統(tǒng)的請(qǐng)求,參照所述pci設(shè)備所具有的存 儲(chǔ)結(jié)構(gòu)信息的結(jié)構(gòu)信息存儲(chǔ)單元,取得該結(jié)構(gòu)信息;可使用空間判斷單元,其根據(jù)該結(jié)構(gòu)信息,判斷所述pci設(shè)備是否是能夠使用ia)空間 或存儲(chǔ)器空間或這兩個(gè)空間的pci設(shè)備;以及結(jié)構(gòu)信息通知單元,其向所述操作系統(tǒng)通知所述結(jié)構(gòu)信息,當(dāng)所述可使用空間判斷單 元的判斷結(jié)果為所述pci設(shè)備能夠使用1/0空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),進(jìn)行表示所 述pci設(shè)備是只能使用存儲(chǔ)器空間的pci設(shè)備的通知。
7. 根據(jù)權(quán)利要求6所述的信息處理裝置,其特征在于,所述運(yùn)算裝置具有所述結(jié)構(gòu)信息取得單元、可使用空間判斷單元以及結(jié)構(gòu)信息取得單元。
8. 根據(jù)權(quán)利要求6所述的信息處理裝置,其特征在于,當(dāng)從所述結(jié)構(gòu)信息通知單元接收到表示是只能使用存儲(chǔ)器空間的pci設(shè)備的通知時(shí), 所述操作系統(tǒng)只進(jìn)行存儲(chǔ)器空間的分配,而不進(jìn)行i/o空間的分配。
9. 一種抑制pci設(shè)備的i/o空間請(qǐng)求的方法,該pci設(shè)備是能夠與運(yùn)算裝置連接的多 個(gè)pci設(shè)備,無(wú)論使用1/0空間或存儲(chǔ)器空間中的哪一個(gè),均能由在運(yùn)算裝置上工作的操作 系統(tǒng)對(duì)該pci設(shè)備進(jìn)行操作,該方法使所述運(yùn)算裝置執(zhí)行下述處理結(jié)構(gòu)信息取得處理,根據(jù)來(lái)自所述操作系統(tǒng)的請(qǐng)求,參照所述pci設(shè)備所具有的存儲(chǔ) 結(jié)構(gòu)信息的結(jié)構(gòu)信息存儲(chǔ)單元,取得該結(jié)構(gòu)信息;可使用空間判斷處理,根據(jù)該結(jié)構(gòu)信息,判斷所述PCI設(shè)備是否是能夠使用1/0空間或存儲(chǔ)器空間或這兩個(gè)空間的PCI設(shè)備;以及結(jié)構(gòu)信息通知處理,向所述操作系統(tǒng)通知所述結(jié)構(gòu)信息,當(dāng)所述可使用空間判斷處理的判斷結(jié)果為所述PCI設(shè)備能夠使用1/0空間和存儲(chǔ)器空間這兩個(gè)空間時(shí),進(jìn)行表示所述 PCI設(shè)備是只能使用存儲(chǔ)器空間的PCI設(shè)備的通知。
10. 根據(jù)權(quán)利要求9所述的方法,其特征在于,當(dāng)從所述結(jié)構(gòu)信息通知單元接收到表示是只能使用存儲(chǔ)器空間的PCI設(shè)備的通知時(shí), 所述操作系統(tǒng)只進(jìn)行存儲(chǔ)器空間的分配,而不進(jìn)行I/O空間的分配。
11. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述結(jié)構(gòu)信息通知處理將預(yù)先登記在識(shí)別信息存儲(chǔ)單元中的第1識(shí)別信息與登記在 所述結(jié)構(gòu)信息中的第2識(shí)別信息進(jìn)行比較,當(dāng)該比較結(jié)果為一致時(shí),進(jìn)行表示所述PCI設(shè)備 是只能使用存儲(chǔ)器空間的PCI設(shè)備的通知,其中,該識(shí)別信息存儲(chǔ)單元對(duì)識(shí)別預(yù)定的PCI設(shè) 備的識(shí)別信息進(jìn)行存儲(chǔ)。
12. 根據(jù)權(quán)利要求ll所述的方法,其特征在于, 在所述識(shí)別信息中包含廠商ID或設(shè)備ID中的至少一方。
13. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述結(jié)構(gòu)信息通知處理參照關(guān)于連接在所述PCI設(shè)備的上級(jí)的PCI橋的I/O空間,當(dāng) 未向該1/0空間分配PCI設(shè)備時(shí),進(jìn)行表示所述PCI設(shè)備是只能使用存儲(chǔ)器空間的PCI設(shè) 備的通知。
14. 根據(jù)權(quán)利要求9所述的方法,其特征在于,所述結(jié)構(gòu)信息通知處理參照關(guān)于連接在所述PCI設(shè)備的上級(jí)的PCI橋的I/O空間,當(dāng) 要向PCI設(shè)備分配的該I/O空間出現(xiàn)了不足時(shí),進(jìn)行表示所述PCI設(shè)備是只能使用存儲(chǔ)器 空間的PCI設(shè)備的通知。
15. 根據(jù)權(quán)利要求9所述的方法,其特征在于,當(dāng)所述PCI設(shè)備具有請(qǐng)求I/O空間的基地址寄存器和請(qǐng)求存儲(chǔ)器空間的基地址寄存器 時(shí),所述結(jié)構(gòu)信息通知處理進(jìn)行表示所述PCI設(shè)備是只能使用存儲(chǔ)器空間的PCI設(shè)備的通 知。
全文摘要
本發(fā)明提供抑制PCI設(shè)備的I/O空間請(qǐng)求的方法。為了即使可分配I/O空間的容量存在限制,也能將對(duì)可使用的PCI設(shè)備的臺(tái)數(shù)進(jìn)行的限制降至最低,運(yùn)算裝置(100)具有結(jié)構(gòu)信息取得單元(101),其取得PCI設(shè)備(106-1)、(106-2)、…的結(jié)構(gòu)信息;可使用空間判斷單元(102),其判斷各PCI設(shè)備可使用的空間;以及結(jié)構(gòu)信息通知單元(103),其向操作系統(tǒng)通知結(jié)構(gòu)信息。
文檔編號(hào)G06F13/14GK101779196SQ200780100279
公開日2010年7月14日 申請(qǐng)日期2007年8月24日 優(yōu)先權(quán)日2007年8月24日
發(fā)明者栗原勝秀 申請(qǐng)人:富士通株式會(huì)社