專利名稱:地址空間仿真的制作方法
技術(shù)領(lǐng)域:
在此所描述的各種實(shí)施方式通常涉及數(shù)據(jù)處理,包括被用來(lái)經(jīng)由寄存器及其他存儲(chǔ)單元將信息傳送到硬件裝置的設(shè)備、系統(tǒng)和方法。
背景技術(shù):
老式中央處理器(CPU)一般并不將諸如存儲(chǔ)控制器之類(lèi)的平臺(tái)組件集成到與處理器本身相同的封裝(package)中。為了與這種非集成組件進(jìn)行通信,操作系統(tǒng)(OS)可使用各種方案,這些方案包括諸如外圍組件互連(PCI)2.0接口的基于寄存器的接口。對(duì)于有關(guān)PCI 2.0接口的更多信息,請(qǐng)參閱如在1998年12月18日由PCI-SIG(專用業(yè)務(wù)組)所出版的相應(yīng)規(guī)范的修訂版2.2以及隨后的校訂版。
為了改善性能,已經(jīng)制造了一些平臺(tái)組件(諸如存儲(chǔ)控制器),以駐留在與處理器核心(多個(gè)處理器核心)相同的封裝中。為了簡(jiǎn)化這種設(shè)計(jì)并且更進(jìn)一步增加性能,一些集成平臺(tái)組件的寄存器已經(jīng)從傳統(tǒng)的32位輸入/輸出(I/O)空間移植到64為存儲(chǔ)器映射地址空間中。然而,與這種集成平臺(tái)組件一起使用的傳統(tǒng)(老式)OS軟件仍然企圖使用諸如PCI接口之類(lèi)的老式基于寄存器的機(jī)制來(lái)對(duì)組件寄存器進(jìn)行存取。
發(fā)明內(nèi)容
本發(fā)明提供一種設(shè)備,其包含處理器和高速暫存存儲(chǔ)器。該處理器包括宏代碼指令攔截器,以檢測(cè)與輸入/輸出地址空間和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作。該高速暫存存儲(chǔ)器記錄與操作系統(tǒng)線程和所述輸入/輸出地址空間相關(guān)聯(lián)的配置地址,其中,所述宏代碼指令攔截器應(yīng)將所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于所述第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
本發(fā)明提供一種系統(tǒng),其包括第一處理器、第一高速暫存存儲(chǔ)器以及被電耦合到所述處理器的平板顯示器。該第一處理器包括第一宏代碼指令攔截器,以檢測(cè)與輸入/輸出地址空間和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的第一輸入/輸出存取操作。該第一高速暫存存儲(chǔ)器記錄與第一操作系統(tǒng)(OS)線程和所述輸入/輸出地址空間相關(guān)聯(lián)的配置地址,其中,所述第一宏代碼指令攔截器應(yīng)將與所述第一OS線程相關(guān)聯(lián)的所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的第一數(shù)據(jù)包。
本發(fā)明提供一種方法,其包括檢測(cè)與配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作;以及將所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于所述第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
本發(fā)明還提供一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有指令。當(dāng)由處理器執(zhí)行所述指令時(shí),所述指令使得所述處理器執(zhí)行一種方法。該方法包含檢測(cè)與配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作;以及將所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于所述第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
圖1是根據(jù)本發(fā)明的各種實(shí)施方式的設(shè)備和系統(tǒng)的框圖。
圖2是圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施方式的若干方法的流程圖。
圖3是根據(jù)本發(fā)明的各種實(shí)施方式的產(chǎn)品的框圖。
具體實(shí)施例方式
圖1是根據(jù)本發(fā)明的各種實(shí)施方式的設(shè)備100和系統(tǒng)160的框圖。為了解決如上所述的問(wèn)題,一些實(shí)施方式可運(yùn)行來(lái)仿真寄存器組所映射的功能存儲(chǔ)器,諸如那些被用于PCI I/O地址空間中的功能存儲(chǔ)器。如此,能夠維持傳統(tǒng)OS與集成平臺(tái)組件之間的硬件兼容性,而無(wú)論這種組件(例如,存儲(chǔ)控制器、超高速緩存控制器等等)是否是基于PCI的。
因而,在一些實(shí)施方式中,地址空間仿真設(shè)備100可包含一個(gè)或多個(gè)處理器P1、P2。當(dāng)I/O存取操作118’、118”指向集成器件154時(shí),處理器P1、P2又包括宏代碼指令攔截器(MCII,macro-codeinstruction interceptor)114,以檢測(cè)與I/O地址空間122(諸如PCI I/O地址空間170)相關(guān)聯(lián)的這種I/O存取操作118’、118”和第一存儲(chǔ)器地址位大小126(例如,16位或者32位等)。MCII 114可以形成微代碼序列發(fā)生器128的部分。這種存取操作118’、118”可以在I/O地址空間122存取操作期間發(fā)生,該I/O地址空間122存取操作包括存儲(chǔ)器讀取或者存儲(chǔ)器寫(xiě)入到PCI I/O地址空間170。然而,存取操作118’、118”將不會(huì)被檢測(cè)到,除非這些存取操作指向集成器件154,這些集成器件154實(shí)際上被映射到存儲(chǔ)器地址HMADDR1、HMADDR2、...、HMADDRN,而不是傳統(tǒng)的I/O地址空間122中的地址。
在一些實(shí)施方式中,諸如微代碼高速暫存存儲(chǔ)器的高速暫存存儲(chǔ)器130’、130”可運(yùn)行來(lái)記錄與操作系統(tǒng)線程138和I/O地址空間122相關(guān)聯(lián)的配置存儲(chǔ)器地址134。MCII 114可運(yùn)行來(lái)將配置存儲(chǔ)器地址134和相關(guān)聯(lián)的配置數(shù)據(jù)142組合成具有大于第一存儲(chǔ)器地址位大小126的第二存儲(chǔ)器地址位大小146的數(shù)據(jù)包PKT。該數(shù)據(jù)包PKT可能被用作對(duì)包括高存儲(chǔ)器位置的存儲(chǔ)器位置(例如,HMADDR)的直接或者間接參考,以對(duì)處理器封裝162中的裝置(例如,集成平臺(tái)裝置154)進(jìn)行存取。舉例來(lái)說(shuō),在一些實(shí)施方式中,在4GB(少于16MB)至4GB(少于32MB)之間的區(qū)域中的地址可為這種操作被保留。因而,舉例來(lái)說(shuō),地址0xFA00_0000是高存儲(chǔ)器地址,該高存儲(chǔ)器地址可以在內(nèi)部被用于寫(xiě)入組合的PCI數(shù)據(jù)包。當(dāng)然也可使用其它的地址范圍。
相對(duì)于存取PCI I/O空間,無(wú)論什么被寫(xiě)入0xCF8都可被用來(lái)唯一地定義期望的高存儲(chǔ)器地址HMADDR1、HMADDR2、...、HMADDRN。所寫(xiě)入或者所讀取的數(shù)據(jù)可以被插入來(lái)適配64位字大小或者比初始的位大小126’、126”大的任何位大小146。舉例來(lái)說(shuō),如通過(guò)先前所參考的PCI規(guī)范所確定的那樣,通過(guò)將組合地址和寄存器選擇以壓縮格式寫(xiě)入地址0xcf8,傳統(tǒng)OS 150可運(yùn)行來(lái)選擇應(yīng)該寫(xiě)入到其的跟著發(fā)生的數(shù)據(jù)字節(jié)(或者字)的寄存器的索引。該地址信息能夠被提取并且與來(lái)自下一I/O地址存取的數(shù)據(jù)組合,以形成數(shù)據(jù)包,以便該數(shù)據(jù)然后適當(dāng)?shù)乇桓袷交?,以被?xiě)入到由組合地址和寄存器選擇所定義的高存儲(chǔ)器地址。
為了更好地理解這樣一個(gè)設(shè)備100的一些實(shí)施方式如何運(yùn)行,考慮以下實(shí)例。傳統(tǒng)OS 150可在以下假設(shè)下運(yùn)行集成器件154(諸如外圍設(shè)備)依照其在傳統(tǒng)的PCI 2.0 I/O地址空間170中的相應(yīng)位置來(lái)進(jìn)行存取。也就是說(shuō),配置存儲(chǔ)器地址134和相關(guān)聯(lián)的配置數(shù)據(jù)142旨在對(duì)PCI地址配置空間170進(jìn)行存取。因而,對(duì)于PCI I/O空間中的所選擇的地址(例如,具有位31設(shè)置的0xCF8的CONFIG_ADDRESS配置存儲(chǔ)器地址),可使用32位I/O存儲(chǔ)器存取周期對(duì)集成平臺(tái)裝置154的寄存器158進(jìn)行存取?;蛟S被實(shí)施為CPU I/O微代碼模塊的部分的MCII 114可運(yùn)行來(lái)將與存取操作118’、118”相關(guān)聯(lián)的數(shù)據(jù)142保存到高速暫存存儲(chǔ)器130’、130”位置,該位置是由微代碼為每個(gè)(邏輯或物理的)CPU線程138’所保留的。
由于PCI存取對(duì)(acces spair)可通過(guò)處理實(shí)體(例如處理器P1或者P2)被執(zhí)行為關(guān)鍵代碼序列,所以相同的CPU線程138’也可運(yùn)行來(lái)發(fā)布對(duì)第二PCI 2.0 I/O地址(例如,0xCFC的CONFIG_DATA地址)的存取。MCII 114可運(yùn)行來(lái)將32位配置地址134和32位配置數(shù)據(jù)142組合成單個(gè)64位數(shù)據(jù)包PKT。該64位數(shù)據(jù)包PKT又可被用作參考地址(例如索引)或者直接地或者間接地對(duì)應(yīng)于高存儲(chǔ)器地址(例如地址HMADDRN)的地址,該高存儲(chǔ)器地址特別被解碼用于與諸如核心硬件裝置154之類(lèi)的集成平臺(tái)硬件裝置進(jìn)行通信,所述集成平臺(tái)硬件裝置包括集成PCI外圍設(shè)備,所述集成平臺(tái)硬件裝置將寄存器用作存儲(chǔ)器映射寄存器。然后可對(duì)參考位置158進(jìn)行存儲(chǔ)器讀取或者存儲(chǔ)器寫(xiě)入。如此,已經(jīng)檢測(cè)了存取操作118’、118”,并且已經(jīng)仿真I/O地址空間122,以幫助傳統(tǒng)OS150與集成平臺(tái)組件(諸如核心硬件裝置154)進(jìn)行通信。
在一些實(shí)施方式中,單個(gè)集成電路封裝172可以容納處理器P1(或者作為多核心處理器封裝的部分的多個(gè)處理器P1、P2)和高速暫存存儲(chǔ)器130’、130”。MCII 114也可以被容納在封裝172中并且可以包含硬件、軟件、固件或者其任意組合,如所期望的那樣。在一些實(shí)施方式中,CPU微代碼可被用來(lái)完成所描述的仿真,并且在一些情況下,可以通過(guò)使用微代碼指令來(lái)完全地完成仿真,而無(wú)需另外的硬件。
處理器P1、P2可以各包括諸如集成存儲(chǔ)控制器核心硬件元件之類(lèi)的一個(gè)或多個(gè)核心硬件裝置154,所述核心硬件裝置154具有諸如存儲(chǔ)器映射寄存器之類(lèi)的一個(gè)或多個(gè)相關(guān)聯(lián)的寄存器158。配置存儲(chǔ)器地址134和/或相關(guān)聯(lián)的配置數(shù)據(jù)142可被用來(lái)修改位于各種高存儲(chǔ)器地址HMADDR1、HMADDR2、...、HMADDRN的寄存器158的內(nèi)容(例如位)。
如先前所注意的那樣,第一存儲(chǔ)器地址位大小126可包含第二存儲(chǔ)器地址位大小146的某個(gè)部分。舉例來(lái)說(shuō),在一些實(shí)施方式中,第一存儲(chǔ)器地址位大小126可是第二存儲(chǔ)器地址位大小146的大約二分之一或者大約四分之一。因而,如果第一存儲(chǔ)器地址位大小126是16位或者32位,那么第二存儲(chǔ)器地址位大小146可分別是32位、64位或者128位。應(yīng)當(dāng)注意到,這些大小僅僅是實(shí)例而不是限制。第一存儲(chǔ)器地址位大小126和第二存儲(chǔ)器地址位大小146可以是許多位,如通過(guò)在此所描述的設(shè)備100和系統(tǒng)160的設(shè)計(jì)者所選擇的那樣。
在一些情況下,存取I/O地址空間122的過(guò)程可能被中斷,或許通過(guò)高優(yōu)選級(jí)中斷來(lái)中斷,該高優(yōu)選級(jí)中斷包括系統(tǒng)管理中斷(SMI)。舉例來(lái)說(shuō),在一些情況下,對(duì)PCI配置地址0xCF8的存取可以不繼之以將期望的數(shù)據(jù)從配置數(shù)據(jù)地址0xCFC中讀取/將期望的數(shù)據(jù)寫(xiě)入到配置數(shù)據(jù)地址0xCFC。如果發(fā)生這樣的中斷(例如SMI),那么控制可以被轉(zhuǎn)移到平臺(tái)系統(tǒng)管理模式(SMM)代碼。在這一點(diǎn)上,MCII 114可運(yùn)行來(lái)為所中斷的線程(該線程通常不能由SMM例行程序所存取)保存高速暫存存儲(chǔ)器130’、130”內(nèi)容。因而,在一些實(shí)施方式中,SMM例行程序可以引導(dǎo)32位讀取,以尋址0xCF8并且將最終的數(shù)據(jù)保存到所保留的SMM數(shù)據(jù)區(qū)168(諸如SMM存儲(chǔ)器164所保留的數(shù)據(jù)區(qū)168)中。應(yīng)當(dāng)注意到,在一些系統(tǒng)中,所有處理器P1、P2的SMI都是互連的,以便單個(gè)SMI可以導(dǎo)致所有的處理器P1、P2運(yùn)行來(lái)在每個(gè)線程的基礎(chǔ)上(on a per-thread basis)將高速暫存存儲(chǔ)器130’、130”內(nèi)容保存到SMM存儲(chǔ)器164中。
如果另外的外圍I/O空間122進(jìn)行存取,則什么內(nèi)容將在SMI的服務(wù)期間被執(zhí)行?在這種情況下,SMM代碼可運(yùn)行來(lái)讀取0xCF8 I/O地址的內(nèi)容并且將所述內(nèi)容保存在SMM存儲(chǔ)器164內(nèi)的SMI數(shù)據(jù)區(qū)166中?,F(xiàn)在,SMM代碼隨意自由地存取外圍I/O地址空間122。然而,在返回到上述操作模式之前,SMM代碼可運(yùn)行來(lái)將0xCF8 I/O地址的先前所保存的內(nèi)容重寫(xiě)入到0xCF8寄存器(多個(gè)0xCF8寄存器)并且將對(duì)具有所保存的數(shù)據(jù)的0XCF8進(jìn)行I/O存取。將再次通過(guò)MCII 114檢測(cè)該存取操作,MCII 114將等待下一0xCFC存儲(chǔ)器存取,從而以所描述的方式完成仿真。因而,在一些實(shí)施方式中,SMM代碼可以將位于高速暫存存儲(chǔ)器130’、130”中的0xCF8索引保存到其自己的SMI數(shù)據(jù)區(qū)(例如,區(qū)166),并且然后,如果需要,則在SMI服務(wù)例行程序執(zhí)行期間執(zhí)行另外的0xCF8和0xCFC存取。
應(yīng)當(dāng)注意到,高速暫存存儲(chǔ)器130’、130”(或許被包括在處理器P1、P2中)與SMM存儲(chǔ)器164不相同。舉例來(lái)說(shuō),雖然高速暫存存儲(chǔ)器130’、130”可以包含微代碼高速暫存存儲(chǔ)器,但是SMM存儲(chǔ)器164可被選擇來(lái)包含所保留的存儲(chǔ)器,以便宏代碼標(biāo)志位于動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)中。因而,服務(wù)另外的SMI調(diào)用(例如,在SMM已經(jīng)進(jìn)入之后發(fā)生的SMI)的SMM代碼不會(huì)運(yùn)行來(lái)保存來(lái)自封裝172內(nèi)部的高速暫存存儲(chǔ)器130’、130”上下文(context)。相反地,服務(wù)SMI的SMM代碼可運(yùn)行來(lái)使用I/O指令讀取0xCF8 I/O地址并然后將相關(guān)聯(lián)的數(shù)據(jù)保存在SMM存儲(chǔ)器164中,或許保存在獨(dú)立分配的SMI數(shù)據(jù)區(qū)166中。
一檢測(cè)到恢復(fù)(例如,RSM)指令的急迫執(zhí)行,各個(gè)處理器P1、P2的MCII 114就運(yùn)行來(lái)將線程專用的0xCF8索引值恢復(fù)到來(lái)自SMM存儲(chǔ)器164的獨(dú)立的高速暫存存儲(chǔ)器130’、130”中。在執(zhí)行恢復(fù)指令之后,可以由具有隨后通過(guò)受影響的線程138存取0xCFC的各個(gè)線程138來(lái)完成被中斷的任何外圍I/O空間122存取(例如,對(duì)0xCF8地址的存取)。
可以實(shí)現(xiàn)其它實(shí)施方式。舉例來(lái)說(shuō),根據(jù)各種實(shí)施方式的系統(tǒng)160可以包括彼此耦合的一個(gè)或多個(gè)處理器P1、P2,作為多核心封裝172的部分或者作為一批封裝162。許多變型是可能的。舉例來(lái)說(shuō),第一處理器P1可以包括第一MCII 114’,以檢測(cè)與I/O地址空間122和第一存儲(chǔ)器地址位大小126相關(guān)聯(lián)的第一I/O存取操作118’。第二處理器P2可以包括第二MCII 114”,以檢測(cè)與I/O地址空間122和第一存儲(chǔ)器地址位大小126相關(guān)聯(lián)的第二I/O存取操作118”。處理器P1、P2可以是物理處理器或者邏輯處理器。
被包括在第一處理器P1中的第一高速暫存存儲(chǔ)器130’可運(yùn)行來(lái)記錄與第一OS線程138’和I/O地址空間122相關(guān)聯(lián)的配置地址134’,并且第一MCII 114’可運(yùn)行來(lái)將與第一OS線程138’相關(guān)聯(lián)的配置存儲(chǔ)器地址134和相關(guān)聯(lián)的配置數(shù)據(jù)142’組合成第一數(shù)據(jù)包PKT’,該第一數(shù)據(jù)包PKT’具有大于第一存儲(chǔ)器地址位大小126的第二存儲(chǔ)器地址位大小146,如上所述的那樣。第二高速暫存存儲(chǔ)器130”(諸如微代碼高速暫存存儲(chǔ)器)可運(yùn)行來(lái)記錄與第二OS線程138”和I/O地址空間122相關(guān)聯(lián)的配置地址134”。第二MCII 114”可運(yùn)行來(lái)將與第二OS線程138”相關(guān)聯(lián)的配置存儲(chǔ)器地址134”和相關(guān)聯(lián)的配置數(shù)據(jù)142”組合成第二數(shù)據(jù)包PKT”,該第二數(shù)據(jù)包PKT”具有第二存儲(chǔ)器地址位大小146。高速暫存存儲(chǔ)器130’、130”可由微代碼序列發(fā)生器128來(lái)進(jìn)行存取。
所述系統(tǒng)160可包括一個(gè)或多個(gè)顯示器188,這些顯示器188包括陰極射線管顯示器、平板顯示器以及其它顯示器,以顯示由處理器P1、P2所處理的數(shù)據(jù)(例如,配置數(shù)據(jù)142)。所述顯示器(多個(gè)顯示器)188可被電耦合到處理器(多個(gè)處理器)P1、P2,或者直接地被電耦合到處理器(多個(gè)處理器)P1、P2或者經(jīng)由總線和/或圖形控制器外圍設(shè)備(未示出)被電耦合到處理器(多個(gè)處理器)P1、P2。計(jì)算機(jī)母板194可運(yùn)行來(lái)給處理器P1、P2提供運(yùn)行電源。系統(tǒng)160也可包括一個(gè)或多個(gè)無(wú)線收發(fā)機(jī)196,以發(fā)送由處理器P1、P2所處理的數(shù)據(jù),以及系統(tǒng)160包括被耦合到無(wú)線收發(fā)機(jī)的一個(gè)或多個(gè)天線192,這些天線192包括全向天線、偶極天線、接線天線、或者定向天線。在一些實(shí)施方式中,系統(tǒng)160可以包括系統(tǒng)管理存儲(chǔ)器164,以在高電平中斷(包括SMI)由處理器P1、P2檢測(cè)到之后接收相關(guān)聯(lián)的配置數(shù)據(jù)142的副本。
先前所描述的任何組件可以多種方式來(lái)實(shí)施,這些方式包括經(jīng)由軟件來(lái)模擬。因而,在此,“模塊”可表征設(shè)備100;處理器P1、P2;MCII 114’、114”;I/O存取操作118’、118”;I/O地址空間122;第一和第二存儲(chǔ)器地址位大小126、146;微代碼序列發(fā)生器128;高速暫存存儲(chǔ)器130’、130”;配置存儲(chǔ)器地址134;OS線程138’、1.38”;相關(guān)聯(lián)的配置數(shù)據(jù)142’、142”;OS 150;集成器件154;寄存器158;系統(tǒng)160;封裝162、172;SMM存儲(chǔ)器164;SMI數(shù)據(jù)區(qū)166;所保留的SMM存儲(chǔ)區(qū)168;I/O地址空間170;顯示器188;天線192;母板194;無(wú)線收發(fā)機(jī)196;存儲(chǔ)器地址HMADDR1、HMADDR2、...、HMADDRN;數(shù)據(jù)包PKT’、PKT”;和中斷SMI。
如通過(guò)設(shè)備100和系統(tǒng)160的設(shè)計(jì)者所期望的那樣,并且如適于各種實(shí)施方式的特定實(shí)施方案那樣,這些模塊可以包括硬件電路、單個(gè)或者多處理器電路、存儲(chǔ)電路、軟件程序模塊和對(duì)象、固件及其組合。所述模塊可被包括在系統(tǒng)操作模擬封裝中,諸如被包括在軟件電信號(hào)模擬封裝、電源使用和分配模擬封裝、網(wǎng)絡(luò)安全性模擬封裝、電源/熱耗散模擬封裝、信號(hào)發(fā)送-接收模擬封裝、或者被用來(lái)模擬各種潛在實(shí)施方式的操作的軟件和硬件的任何組合中。舉例來(lái)說(shuō),這種模擬可被用來(lái)表征或者測(cè)試所述實(shí)施方式。
也應(yīng)該理解的是,各種實(shí)施方式的設(shè)備和系統(tǒng)可被用于除了具有單個(gè)或者多核心處理器的桌上型計(jì)算機(jī)或者膝上型計(jì)算機(jī)之外的應(yīng)用。因而,本發(fā)明的各種實(shí)施方式不應(yīng)如此被限制。設(shè)備100和系統(tǒng)160的圖解說(shuō)明旨在提供各種實(shí)施方式的結(jié)構(gòu)的一般理解,并且這些圖解說(shuō)明不旨在用作可利用在此所描述的結(jié)構(gòu)的設(shè)備和系統(tǒng)的所有要素和特征的完整說(shuō)明。
可以包括各種實(shí)施方式的新穎的設(shè)備和系統(tǒng)的應(yīng)用包括被用于高速計(jì)算機(jī)、通信和信號(hào)處理電路、調(diào)制解調(diào)器、單個(gè)或者多處理器模塊、單個(gè)或者多個(gè)嵌入式處理器,以及應(yīng)用專用的模塊(包括多層、多芯片模塊)的電子電路。這種設(shè)備和系統(tǒng)可以更進(jìn)一步作為各種電子系統(tǒng)內(nèi)的子組件而被包括,這些子組件其中諸如是數(shù)據(jù)橋、開(kāi)關(guān)和集線器;電視和蜂窩式電話;個(gè)人計(jì)算機(jī)和工作站;無(wú)線電和視頻播放器;以及車(chē)輛。
一些實(shí)施方式可以包括多種方法。舉例來(lái)說(shuō),圖2包括圖解說(shuō)明根據(jù)本發(fā)明的各種實(shí)施方式的若干方法211的流程圖。響應(yīng)于外圍I/O地址空間存取,并且在其它選定時(shí)間,諸如在執(zhí)行任何線程之前,可以執(zhí)行地址空間仿真方法211。在一些實(shí)施方式中,可以由多核心封裝中的每個(gè)處理器和/或由封裝中的每個(gè)處理器核心中的每個(gè)運(yùn)行線程來(lái)執(zhí)行方法211。
在塊215,方法211可以開(kāi)始對(duì)集成器件檢測(cè)I/O存取操作,該I/O存取操作或許與所選擇的配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小(例如,0xCF8和32位)相關(guān)聯(lián)??梢詧?zhí)行微代碼序列來(lái)完成I/O存取操作的檢測(cè)。
在一些實(shí)施方式中,在塊219,所述方法211可以包括在高速暫存存儲(chǔ)器(諸如微代碼高速暫存存儲(chǔ)器)中保存配置存儲(chǔ)器地址。該動(dòng)作可以包括在每個(gè)線程的基礎(chǔ)上保存配置存儲(chǔ)器地址。
如果在塊223檢測(cè)到隨后的存儲(chǔ)器讀取或者存儲(chǔ)器寫(xiě)入到I/O地址空間,則在塊227,方法211可以接著包括將配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成數(shù)據(jù)包。如先前所注意的那樣,該數(shù)據(jù)包可以具有大于第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小。
在塊231,方法211可以接著包括執(zhí)行對(duì)由數(shù)據(jù)包的內(nèi)容所定義的地址進(jìn)行讀取操作或者寫(xiě)入操作之一。數(shù)據(jù)包的內(nèi)容所定義的地址可以包含存儲(chǔ)器地址,該存儲(chǔ)器地址被解碼來(lái)與核心硬件元件(例如,已經(jīng)被集成到與處理器相同的封裝中的平臺(tái)硬件組件,諸如被集成到與當(dāng)前執(zhí)行讀取/寫(xiě)入操作的處理器相同的封裝中的PCI兼容的外圍設(shè)備)中的存儲(chǔ)器映射寄存器進(jìn)行通信。因而,在塊231,方法211可以包括寫(xiě)入存儲(chǔ)器地址,該存儲(chǔ)器地址被解碼來(lái)與使用配置存儲(chǔ)器地址(以定義存儲(chǔ)器映射寄存器)和相關(guān)聯(lián)的配置數(shù)據(jù)的核心硬件元件中的存儲(chǔ)器映射寄存器進(jìn)行通信。如果在塊223沒(méi)有檢測(cè)到讀取/寫(xiě)入操作,并且在塊235沒(méi)有檢測(cè)到高級(jí)中斷(諸如SMI),那么方法211可以包括繼續(xù)進(jìn)行參考?jí)K227所描述的動(dòng)作。
在一些實(shí)施方式中,如果在塊235檢測(cè)到高級(jí)中斷(諸如SMI),那么在塊243,方法211可以包括輸入或者執(zhí)行SMM代碼,并且在塊247,方法211保存與配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)相關(guān)聯(lián)的上下文(諸如微代碼上下文)。這可以包括讀取0xCF8配置地址并且直接地將信息讀取副本保存到SMM所保留的存儲(chǔ)器中。在一些實(shí)施方式中,這可以包括在系統(tǒng)管理存儲(chǔ)器(諸如SMM所保留的存儲(chǔ)器)中保存一個(gè)或多個(gè)(例如,多個(gè))微代碼高速暫存存儲(chǔ)器的內(nèi)容,該內(nèi)容包括與配置存儲(chǔ)器地址相關(guān)聯(lián)的數(shù)據(jù)。
在塊251,方法211可以包括處理諸如SMI的中斷。中斷處理例行程序可以存取I/O地址空間,該I/O地址空間或許使用SMM中斷數(shù)據(jù)區(qū),并且在一些實(shí)施方式中,這種存取不會(huì)由MCII檢測(cè)到(例如,可以在PCI 2.0存取構(gòu)造之外使用0xCF8和0xCFC寄存器)。當(dāng)在塊255完成所述中斷處理時(shí),在塊259,方法211可以包括恢復(fù)諸如微代碼上下文的上下文。此動(dòng)作可以包括從系統(tǒng)管理存儲(chǔ)器(例如,SMM所保留的存儲(chǔ)器區(qū))中檢索相關(guān)聯(lián)的配置數(shù)據(jù)的副本,將相關(guān)聯(lián)的配置數(shù)據(jù)重寫(xiě)入配置地址,以及執(zhí)行恢復(fù)指令,所以操作可以返回到所中斷的上下文。在一些實(shí)施方式中,這動(dòng)作可以完全地由SMM代碼的執(zhí)行來(lái)指引。
在此所描述的方法不必以所描述的順序、或者以任何特定順序來(lái)執(zhí)行。此外,可以重復(fù)地、連續(xù)地,或以并行方式執(zhí)行參考在此所確定的方法所描述的各種動(dòng)作。包括參數(shù)、命令、操作數(shù)以及其它數(shù)據(jù)的信息可以一個(gè)或多個(gè)載波的形式被發(fā)送和接收。
本領(lǐng)域普通技術(shù)人員將理解該方式,軟件程序可以該方式由基于計(jì)算機(jī)的系統(tǒng)中的計(jì)算機(jī)可讀介質(zhì)來(lái)啟動(dòng)(launch),以執(zhí)行在軟件程序中所定義的功能。可以使用各種編程語(yǔ)言來(lái)創(chuàng)建被設(shè)計(jì)來(lái)實(shí)施和執(zhí)行在此所公開(kāi)的方法的一個(gè)或多個(gè)軟件程序。所述程序可以使用諸如Java或者C++的面向?qū)ο蟮恼Z(yǔ)言以面向?qū)ο蟮母袷奖粯?gòu)造??商鎿Q地,所述程序可以使用過(guò)程語(yǔ)言(諸如匯編或者C)以面向過(guò)程的格式被構(gòu)造。軟件組件可以使用本領(lǐng)域普通技術(shù)人員公知的多種機(jī)制來(lái)進(jìn)行通信,這些機(jī)制諸如應(yīng)用程序接口或者進(jìn)程間通信技術(shù)(包括遠(yuǎn)程過(guò)程調(diào)用)。各種實(shí)施方式的教導(dǎo)不限于任何特定的編程語(yǔ)言或者環(huán)境。
因而,可以實(shí)現(xiàn)其它的實(shí)施方式。舉例來(lái)說(shuō),圖3是根據(jù)各種實(shí)施方式的產(chǎn)品385的框圖,產(chǎn)品諸如是計(jì)算機(jī)、存儲(chǔ)系統(tǒng)、磁盤(pán)或者光盤(pán)、某種其它存儲(chǔ)裝置、和/或任何類(lèi)型的電子器件或者系統(tǒng)。產(chǎn)品385可以包括被耦合到具有相關(guān)聯(lián)的信息391(例如,計(jì)算機(jī)程序指令和/或數(shù)據(jù))的計(jì)算機(jī)可讀介質(zhì)389的(具有一個(gè)或多個(gè)處理器的)計(jì)算機(jī)387,該計(jì)算機(jī)可讀介質(zhì)389諸如存儲(chǔ)器(例如、固定的和可移動(dòng)的存儲(chǔ)介質(zhì),這些介質(zhì)包括具有電導(dǎo)體、光導(dǎo)體、或者電磁導(dǎo)體的有形的存儲(chǔ)器)或者載波,當(dāng)由計(jì)算機(jī)387執(zhí)行相關(guān)聯(lián)的信息391時(shí),該信息391使得計(jì)算機(jī)387執(zhí)行一種方法,所述方法包括檢測(cè)與配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的I/O存取操作,并且將配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
其它的動(dòng)作可以包括對(duì)由數(shù)據(jù)包的內(nèi)容所定義的地址執(zhí)行讀取操作或者寫(xiě)入操作之一(例如,由數(shù)據(jù)包的內(nèi)容所定義的地址可以包含存儲(chǔ)器地址,該存儲(chǔ)器地址被解碼來(lái)與核心硬件元件中的存儲(chǔ)器映射寄存器進(jìn)行通信)。其它動(dòng)作可以包括執(zhí)行微代碼序列,以完成檢測(cè)I/O存取操作。
在一些實(shí)施方式中,另外的動(dòng)作可以包括檢測(cè)系統(tǒng)管理中斷,并且保存多個(gè)微代碼高速暫存存儲(chǔ)器的內(nèi)容,該內(nèi)容包括與系統(tǒng)管理存儲(chǔ)器中的配置存儲(chǔ)器地址相關(guān)聯(lián)的數(shù)據(jù)。其它動(dòng)作可以包括那些形成圖2中示出的和如上所述的方法的部分的任何步驟。
實(shí)施在此所公開(kāi)的設(shè)備、系統(tǒng)和方法可運(yùn)行來(lái)允許存取集成平臺(tái)級(jí)資源,該資源諸如被包括在CPU封裝中的存儲(chǔ)控制器,如64位寬的存儲(chǔ)器映射寄存器。另外,可實(shí)現(xiàn)與由其它硬件(例如,使用0xCF8和0xCFC地址進(jìn)行尋址的硬件)所使用的傳統(tǒng)PCI 2.0空間的傳統(tǒng)OS軟件兼容性。因而,在維持兼容性的同時(shí),可以增強(qiáng)效率和性能。
形成本文的一部分的附圖經(jīng)由圖解說(shuō)明而非限制的方式示出了特定實(shí)施方式,其中可以實(shí)踐該主題。足夠詳細(xì)地描述了圖解說(shuō)明的實(shí)施方式,以使本領(lǐng)域普通技術(shù)人員能夠?qū)嵺`在此所公開(kāi)的教導(dǎo)??梢岳闷渌膶?shí)施方式并且從該其它實(shí)施方式導(dǎo)出,以便可以在不偏離此公開(kāi)內(nèi)容的范圍的情況下作出結(jié)構(gòu)和邏輯上的置換和改變。因此,此“具體實(shí)施方式
”不是在限制意義進(jìn)行,并且各種實(shí)施方式的范圍僅僅由所附的權(quán)利要求以及與稱為權(quán)利要求的內(nèi)容等效的全部范圍來(lái)定義。
如果事實(shí)上公開(kāi)了超過(guò)一個(gè)實(shí)施方式,這僅僅為了方便起見(jiàn),并且其意圖不在將這種應(yīng)用的范圍自動(dòng)限制到任何單個(gè)發(fā)明或者發(fā)明構(gòu)思的情況下,本發(fā)明主題的這種實(shí)施方式在此可以單獨(dú)地或者集中地被稱作術(shù)語(yǔ)“本發(fā)明”。因而,盡管已經(jīng)圖解說(shuō)明并且在此描述了具體的實(shí)施方式,但適于實(shí)現(xiàn)相同目的的任何裝置可以被所示的具體實(shí)施方式
所代替。此公開(kāi)內(nèi)容旨在覆蓋各種實(shí)施方式的任何和全部改編或者變型。依據(jù)回顧上述說(shuō)明,在此沒(méi)有具體描述的上述實(shí)施方式的組合、以及其它實(shí)施方式對(duì)本領(lǐng)域普通技術(shù)人員而言是顯而易見(jiàn)的。
為了遵照要求將允許讀者很快地確定技術(shù)公開(kāi)內(nèi)容的本質(zhì)的摘要的37 C.F.R.§1.72(b),提供了本公開(kāi)內(nèi)容的摘要。應(yīng)理解,該摘要不被用來(lái)解釋或者限制所述權(quán)利要求的范圍或者意義。另外,在上述“具體實(shí)施方式
”部分中,能夠看出,為了使該公開(kāi)內(nèi)容成為整體,在單個(gè)實(shí)施方式中集合了各種特征。所公開(kāi)的方法不被解釋為要求比在每個(gè)權(quán)利要求中清楚地引用的特征更多的特征。相反地,可以在小于單個(gè)所公開(kāi)的實(shí)施方式的全部特征的特征中發(fā)現(xiàn)本發(fā)明的主題。因而,由于每個(gè)權(quán)利要求自己作為獨(dú)立的實(shí)施方式,所以據(jù)此將以下權(quán)利要求并入到“具體實(shí)施方式
”部分中。
權(quán)利要求
1.一種設(shè)備,其包含處理器,該處理器包括宏代碼指令攔截器,以檢測(cè)與輸入/輸出地址空間和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作;和高速暫存存儲(chǔ)器,以記錄與操作系統(tǒng)線程和所述輸入/輸出地址空間相關(guān)聯(lián)的配置地址,其中,所述宏代碼指令攔截器應(yīng)將所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于所述第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
2.如權(quán)利要求1所述的設(shè)備,還包括集成電路封裝,以容納所述處理器和所述高速暫存存儲(chǔ)器。
3.如權(quán)利要求1所述的設(shè)備,其中,所述宏代碼指令攔截器形成微代碼序列發(fā)生器的一部分。
4.如權(quán)利要求1所述的設(shè)備,還包括具有存儲(chǔ)器映射寄存器的核心硬件元件,其中,至少一個(gè)所述配置存儲(chǔ)器地址和所述相關(guān)聯(lián)的配置數(shù)據(jù)被用來(lái)修改所述存儲(chǔ)器映射寄存器的位。
5.如權(quán)利要求1所述的設(shè)備,其中,所述第一存儲(chǔ)器地址位大小是所述第二存儲(chǔ)器地址位大小的大約二分之一或者大約四分之一中的一種。
6.如權(quán)利要求1所述的設(shè)備,其中,所述配置存儲(chǔ)器地址和所述配置數(shù)據(jù)被包括在外圍組件互連(PCI)配置空間中。
7.如權(quán)利要求6所述的設(shè)備,其中,所述配置存儲(chǔ)器地址包含0xCF8地址。
8.如權(quán)利要求1所述的設(shè)備,其中,所述高速暫存存儲(chǔ)器包含微代碼高速暫存存儲(chǔ)器。
9.一種系統(tǒng),其包括第一處理器,該第一處理器包括第一宏代碼指令攔截器,以檢測(cè)與輸入/輸出地址空間和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的第一輸入/輸出存取操作;第一高速暫存存儲(chǔ)器,以記錄與第一操作系統(tǒng)(OS)線程和所述輸入/輸出地址空間相關(guān)聯(lián)的配置地址,其中,所述第一宏代碼指令攔截器應(yīng)將與所述第一OS線程相關(guān)聯(lián)的所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的第一數(shù)據(jù)包;以及被電耦合到所述處理器的平板顯示器。
10.如權(quán)利要求9所述的系統(tǒng),還包括計(jì)算機(jī)母板,以將運(yùn)行電源提供給所述第一處理器。
11.如權(quán)利要求9所述的系統(tǒng),還包括無(wú)線收發(fā)機(jī),以發(fā)送由所述第一處理器所處理的數(shù)據(jù)。
12.如權(quán)利要求9所述的系統(tǒng),還包括第二處理器,該第二處理器包括第二宏代碼指令攔截器,以檢測(cè)與所述輸入/輸出地址空間以及所述第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的第二輸入/輸出存取操作第二高速暫存存儲(chǔ)器,以記錄與第二OS線程以及所述輸入/輸出地址空間相關(guān)聯(lián)的配置地址,其中,所述第二宏代碼指令攔截器應(yīng)將與所述第二OS線程相關(guān)聯(lián)的所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有第二存儲(chǔ)器地址位大小的第二數(shù)據(jù)包;以及集成電路封裝,以容納所述第一處理器和所述第二處理器。
13.如權(quán)利要求9所述的系統(tǒng),其中,所述第一高速暫存存儲(chǔ)器應(yīng)由微代碼序列發(fā)生器來(lái)進(jìn)行存取。
14.如權(quán)利要求9所述的系統(tǒng),還包括系統(tǒng)管理存儲(chǔ)器,以在系統(tǒng)管理中斷由所述第一處理器檢測(cè)到之后接收所述相關(guān)聯(lián)的配置數(shù)據(jù)的副本。
15.如權(quán)利要求9所述的系統(tǒng),其中,所述第一高速暫存存儲(chǔ)器包含微代碼高速暫存存儲(chǔ)器。
16.一種方法,其包括檢測(cè)與配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作;以及將所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于所述第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
17.如權(quán)利要求16所述的方法,還包括在微代碼高速暫存存儲(chǔ)器中保存所述配置存儲(chǔ)器地址。
18.如權(quán)利要求16所述的方法,還包括在每個(gè)線程的基礎(chǔ)上保存所述配置存儲(chǔ)器地址。
19.如權(quán)利要求16所述的方法,還包括寫(xiě)入存儲(chǔ)器地址,該存儲(chǔ)器地址被解碼來(lái)與在使用所述配置存儲(chǔ)器地址以及所述相關(guān)聯(lián)的配置數(shù)據(jù)的核心硬件元件中的存儲(chǔ)器映射寄存器進(jìn)行通信。
20.如權(quán)利要求19所述的方法,其中,所述存儲(chǔ)器映射寄存器作為外圍組件互連(PCI)配置空間的部分被解碼。
21.如權(quán)利要求16所述的方法,還包括保存與所述配置存儲(chǔ)器地址和所述相關(guān)聯(lián)的配置數(shù)據(jù)相關(guān)聯(lián)的微代碼上下文;處理系統(tǒng)管理中斷;以及恢復(fù)所述微代碼上下文。
22.如權(quán)利要求16所述的方法,還包括檢測(cè)系統(tǒng)管理中斷;和將所述相關(guān)聯(lián)的配置數(shù)據(jù)的副本保存到系統(tǒng)管理存儲(chǔ)器中。
23.如權(quán)利要求22所述的方法,還包括檢索所述相關(guān)聯(lián)的配置數(shù)據(jù)的副本;將所述相關(guān)聯(lián)的配置數(shù)據(jù)寫(xiě)入到所述配置地址;以及執(zhí)行恢復(fù)指令。
24.一種計(jì)算機(jī)可讀介質(zhì),其上存儲(chǔ)有指令,當(dāng)由處理器執(zhí)行所述指令時(shí),所述指令使得所述處理器執(zhí)行一種方法,該方法包含檢測(cè)與配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作;以及將所述配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)組合成具有大于所述第一存儲(chǔ)器地址位大小的第二存儲(chǔ)器地址位大小的數(shù)據(jù)包。
25.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中,當(dāng)所述處理器執(zhí)行所述指令時(shí),所述指令使得所述處理器執(zhí)行一種方法,該方法包含對(duì)由所述數(shù)據(jù)包的內(nèi)容所定義的地址執(zhí)行讀取操作或者寫(xiě)入操作中的一種。
26.如權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),其中,由所述數(shù)據(jù)包的內(nèi)容所定義的所述地址包含存儲(chǔ)器地址,該存儲(chǔ)器地址被解碼來(lái)與核心硬件元件中的存儲(chǔ)器映射寄存器進(jìn)行通信。
27.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中,當(dāng)所述處理器執(zhí)行所述指令時(shí),所述指令使得所述處理器執(zhí)行一種方法,該方法包含執(zhí)行微代碼序列,以完成所述檢測(cè)。
28.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),其中,當(dāng)所述處理器執(zhí)行所述指令時(shí),所述指令使得所述處理器執(zhí)行一種方法,該方法包含檢測(cè)系統(tǒng)管理中斷;以及將多個(gè)微代碼高速暫存存儲(chǔ)器的內(nèi)容保存到系統(tǒng)管理存儲(chǔ)器中,該多個(gè)微代碼高速暫存存儲(chǔ)器的內(nèi)容包括與所述配置存儲(chǔ)器地址相關(guān)聯(lián)的數(shù)據(jù)。
全文摘要
一種設(shè)備和系統(tǒng)、以及方法和產(chǎn)品可運(yùn)行來(lái)檢測(cè)與配置存儲(chǔ)器地址和第一存儲(chǔ)器地址位大小相關(guān)聯(lián)的輸入/輸出存取操作。該配置存儲(chǔ)器地址和相關(guān)聯(lián)的配置數(shù)據(jù)可被組合成具有大于第一存儲(chǔ)器地址位大小(例如,32位)的第二存儲(chǔ)器地址位大小(例如,64位)的數(shù)據(jù)包。所述數(shù)據(jù)包可被用來(lái)建立傳統(tǒng)操作系統(tǒng)與類(lèi)似的平臺(tái)裝置的兼容性,該傳統(tǒng)操作系統(tǒng)試圖與基于外圍組件互連(PCI)接口的外圍設(shè)備進(jìn)行通信,所述平臺(tái)裝置已經(jīng)被集成到與處理器相同的封裝中。
文檔編號(hào)G06F12/08GK1991797SQ20061017230
公開(kāi)日2007年7月4日 申請(qǐng)日期2006年12月30日 優(yōu)先權(quán)日2005年12月30日
發(fā)明者S·M·達(dá)塔, R·格賴納, F·賓斯, K·蒂魯瓦盧爾, R·帕塔薩拉蒂, M·帕塔薩拉蒂 申請(qǐng)人:英特爾公司