亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

把虛擬存儲器地址的數(shù)據(jù)傳送到設(shè)備存儲器的方法和系統(tǒng)的制作方法

文檔序號:6649300閱讀:189來源:國知局
專利名稱:把虛擬存儲器地址的數(shù)據(jù)傳送到設(shè)備存儲器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種把針對虛擬存儲器地址的數(shù)據(jù)傳送到設(shè)備存儲器的方法、系統(tǒng)及程序。
背景技術(shù)
處理器執(zhí)行有關(guān)快速訪問本地存儲器的操作,諸如通過被執(zhí)行的指令把操作數(shù)從本地存儲器加載到處理器寄存器以使用,以及把操作數(shù)從處理器寄存器存儲到本地存儲器。本地存儲器地址范圍可以映射到設(shè)備存儲器地址范圍,在該處,處理器通過諸如外圍部件互聯(lián)(PCI)總線的輸入/輸出(總線)與設(shè)備存儲器通信。在處理器內(nèi)的存儲器映射輸入輸出(MMIO)部件把存儲操作處理到映射至本地存儲器的虛擬存儲器地址,或者通過產(chǎn)生I/O總線事務(wù)以把存儲操作處理到設(shè)備存儲器地址,來把針對虛擬地址的數(shù)據(jù)傳送到設(shè)備存儲器內(nèi)的相應(yīng)位置。這樣,對于處理器,設(shè)備存儲器地址表現(xiàn)為本地存儲器地址。
為了改善對于通過I/O總線被傳送到設(shè)備存儲器的虛擬地址的存儲操作的性能,MMIO部件可以聚集/收集通過I/O總線把連續(xù)設(shè)備存儲器地址多存儲操作到單個突發(fā)事務(wù)中,以改善通過總線對設(shè)備存儲器地址的數(shù)據(jù)的傳送的性能。但是,許多諸如適配器和傳統(tǒng)設(shè)備的設(shè)備,不支持設(shè)備存儲器內(nèi)設(shè)備寄存器的I/O突發(fā)事務(wù)。因此,如果MMIO部件支持存儲收集,那么存儲收集無法同不支持對設(shè)備寄存器的I/O突發(fā)事務(wù)的設(shè)備一起工作。對該兼容性問題的一個解決辦法是,讓程序員在對設(shè)備寄存器的那些存儲操作之間添加障礙指令,以請求每一存儲操作被分別處理,而不被聚集。另一解決辦法是使MMIO部件內(nèi)的存儲收集失效,以避免通過I/O總線對設(shè)備寄存器的突發(fā)事務(wù)。

發(fā)明內(nèi)容
提供一種用于把針對虛擬存儲器地址的數(shù)據(jù)傳送到設(shè)備存儲器的方法、系統(tǒng)及程序。對通過輸入輸出(I/O)總線可訪問的設(shè)備中的設(shè)備存儲器地址的范圍設(shè)置指示符位,所述指示符位指示關(guān)于設(shè)備存儲器地址范圍收集是否被使能。傳送操作被處理以向設(shè)備中的連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。作出關(guān)于連續(xù)設(shè)備存儲器地址的指示符位是否指示收集被使能的確定。響應(yīng)于確定了連續(xù)設(shè)備存儲器地址的指示符位指示收集被使能,而產(chǎn)生單個總線I/O事務(wù)以通過I/O總線針對連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。


圖1圖解了計算環(huán)境的實施例。
圖2圖解了對于映射至設(shè)備或主存儲器地址的虛擬存儲器地址維護的信息的實施例。
圖3圖解了對本地存儲器地址到設(shè)備存儲器地址的映射初始化的操作的實施例。
圖4圖解了通過I/O總線把數(shù)據(jù)從本地存儲器地址傳送到相應(yīng)的設(shè)備存儲器地址的操作的實施例。
具體實施例方式
圖1圖解了計算環(huán)境的實施例。系統(tǒng)2包括通過輸入/輸出(I/O)總線8通信的處理器4和設(shè)備6。I/O總線8可以包括外圍部件互聯(lián)(PCI)總線或本領(lǐng)域中所知的其它總線接口。處理器4可以在主存儲器10中存儲數(shù)據(jù),所述數(shù)據(jù)諸如操作數(shù)和其它被操作的數(shù)據(jù)。處理器4包括寄存器12和地址翻譯電路14,以處理針對定義在存儲器映射18中的虛擬地址空間的請求。處理器通過把指令從代碼20加載到寄存器12和虛擬地址以執(zhí)行,來執(zhí)行代碼20。代碼20可以包含被實施在諸如只讀存儲器(ROM)設(shè)備的非易失性存儲器內(nèi)的處理器指令集。主存儲器10包含易失性存儲設(shè)備,其中操作系統(tǒng)22、設(shè)備驅(qū)動器24和其它程序被加載。設(shè)備驅(qū)動器24提供設(shè)備6和訪問設(shè)備6的程序之間的接口。設(shè)備6可以包含適配器或其它I/O設(shè)備,并且包括具有設(shè)備寄存器28和隨機訪問存儲器(RAM)30的存儲器26,所述設(shè)備寄存器28用于控制設(shè)備6操作,所述隨機訪問存儲器30可以被寫入數(shù)據(jù)。
在系統(tǒng)初始化期間,設(shè)備驅(qū)動器24可以請求映射到設(shè)備存儲器26地址的虛擬地址的存儲器映射18,以允許處理器4把信息傳送到設(shè)備。在這種情況下,當處理對于映射到相應(yīng)設(shè)備存儲器26地址的虛擬存儲器地址的存儲或其它傳送操作時,地址翻譯電路14使用存儲器映射18,所述存儲器映射18定義虛擬地址空間。當執(zhí)行指令時,處理器4執(zhí)行加載操作,以從虛擬地址把值加載到寄存器12,并且執(zhí)行存儲操作,以從寄存器12把數(shù)據(jù)拷貝到虛擬地址。地址翻譯電路14發(fā)布(issue)I/O總線事務(wù),以把經(jīng)過存儲操作的數(shù)據(jù)傳送到相應(yīng)的設(shè)備存儲器地址,并且發(fā)布I/O總線事務(wù),以把經(jīng)過加載操作的數(shù)據(jù)從相應(yīng)的設(shè)備存儲器地址傳送到寄存器12。在一個實施例中,地址翻譯電路14可以實現(xiàn)存儲器映射輸入輸出(MMIO)存儲器協(xié)議,以把虛擬地址映射到設(shè)備存儲器26地址,以便針對虛擬地址的存儲操作通過I/O總線8被傳送到相應(yīng)的設(shè)備存儲器26地址。在作為替代的實施例中,地址翻譯電路14可以實現(xiàn)本領(lǐng)域中所知的其它存儲器傳送協(xié)議。
圖2圖解了對于諸如4Kb(千字節(jié))范圍的虛擬地址范圍維護的信息,所述虛擬地址范圍映射到相應(yīng)的設(shè)備存儲器26地址范圍。存儲器映射18對于每個虛擬地址范圍可以包括一個入口50,所述虛擬地址范圍諸如虛擬地址的4Kb范圍。在一個實施例中,為每個虛擬地址范圍和相應(yīng)設(shè)備存儲器26地址范圍,例如4Kb的虛擬地址范圍,而維護的信息包含翻譯后備(Lookaside)緩沖器(TLB)50,其中對每個虛擬地址范圍有一個TLB 50。每個TLB包括寫通過(write-thru)高速緩沖存儲器標志52,用于指示寫入虛擬地址的數(shù)據(jù)是否也被寫入高速緩沖存儲器和設(shè)備存儲器26或主存儲器10中;禁止高速緩沖存儲器標志54,用于指示在虛擬地址中高速緩存數(shù)據(jù)是否被使能;存儲器一致(coherency)標志56,用于指示由設(shè)備對設(shè)備存儲器26或主存儲器10進行的關(guān)于數(shù)據(jù)的改變是否反映在主存儲器10的處理器高速緩沖存儲器內(nèi);監(jiān)視位58,用于指示當訪問虛擬地址時,是否使能存儲收集和是否使能推測的(speculative)預(yù)取(prefetch);映射存儲器地址60,用于標識虛擬地址映射至的物理地址,其可以包含設(shè)備存儲器26地址或主存儲器10地址;以及存儲設(shè)備字段(field)62,用于指示虛擬地址范圍映射至的存儲器所位于的位置,例如,包括設(shè)備存儲器26或主存儲器10。地址翻譯電路14使用TLB 50來確定如何處理針對映射到相應(yīng)的設(shè)備存儲器26或主存儲器10地址范圍的虛擬地址范圍的請求。用于從存儲器映射18進行選擇的入口基于請求的虛擬地址,其中存儲器映射18中的每一入口50與映射到設(shè)備存儲器26或主存儲器10地址范圍的虛擬地址范圍對應(yīng)。
圖3圖解了在系統(tǒng)初始化期間(在塊100)執(zhí)行的操作,以初始化對于存儲器映射操作的數(shù)據(jù)結(jié)構(gòu),諸如TLB 50中關(guān)于映射到設(shè)備存儲器26或主存儲器10的虛擬地址范圍的信息。初始化可以作為功率循環(huán)或其它類似類型的事件的結(jié)果而發(fā)生。在初始化期間,關(guān)于設(shè)備6的設(shè)備驅(qū)動器24請求(在塊102)虛擬地址到設(shè)備存儲器26地址的存儲器映射18。作為響應(yīng),操作系統(tǒng)22產(chǎn)生(在塊104)虛擬地址到設(shè)備存儲器26地址的存儲器映射18。操作系統(tǒng)22對每個設(shè)備存儲器26和相應(yīng)的虛擬地址范圍設(shè)置(在塊106)指示符位,對于每個設(shè)備存儲器26和相應(yīng)的虛擬地址范圍,提供位以指示收集失效。在MMIO實施例中,指示收集是否被使能的指示符位包含翻譯后備緩沖器(TLB)中的位。例如,TLB 50中被用來指示收集是否被使能的位可以包含監(jiān)視位58(圖2),所述監(jiān)視位58也指示預(yù)取是否被使能。在這樣的實施例中,如果收集被指示為失效,那么預(yù)取被指示為失效,如果收集被指示為使能,那么預(yù)取也被指示為使能。操作系統(tǒng)22也可以對映射到設(shè)備存儲器26的虛擬地址設(shè)置附加位,包括把寫通過標志52設(shè)置為“開(on)”和把高速緩沖存儲器禁止符設(shè)置為“開”。用這種方法,寫通過對于高速緩存被禁止的設(shè)備存儲器26發(fā)生,所以數(shù)據(jù)也不被寫入高速緩沖存儲器。
設(shè)備驅(qū)動器24可以包括也可以不包括使能存儲收集的代碼。例如,傳統(tǒng)設(shè)備驅(qū)動器可以不包括支持硬件的代碼,所述硬件把多存儲操作聚集在單個I/O總線事務(wù)中,以通過I/O總線8突發(fā)傳送。如果(在塊110)設(shè)備驅(qū)動器24不包括使能存儲收集的代碼,那么設(shè)置為指示不存在通過操作系統(tǒng)22進行收集的默認值的指示符位保持(在塊112)指示對于存儲操作不存在收集。如果設(shè)備驅(qū)動器24包括使能存儲收集的代碼,那么設(shè)備驅(qū)動器24對包括設(shè)備寄存器位的每個設(shè)備存儲器地址范圍(映射到由入口50標識的虛擬地址范圍),例如設(shè)備寄存器28,設(shè)置(在塊114)指示符位,來指示收集失效。在某個實施例中,設(shè)備6可以要求對設(shè)備寄存器28的寫入發(fā)生在分離的總線事務(wù)中,并且不被通過總線8聚集到單個突發(fā)事務(wù)中。設(shè)備6可以不能處理對設(shè)備寄存器28的突發(fā)I/O事務(wù),以及要求對設(shè)備寄存器28的傳送發(fā)生在分離的I/O總線事務(wù)上。設(shè)備驅(qū)動器24對包括設(shè)備隨機訪問存儲器(RAM)30在內(nèi)的每個設(shè)備存儲器地址范圍還設(shè)置(在塊116)例如監(jiān)視標志58的指示符位,來指示對于設(shè)備RAM 30中的那些設(shè)備存儲器地址范圍,收集是被使能的。因此,當把數(shù)據(jù)通過總線8傳送給設(shè)備RAM 30時,多存儲可以被聚集進突發(fā)I/O事務(wù)中,與對設(shè)備寄存器28相反。
圖4圖解了應(yīng)用在地址翻譯電路14中用來處理傳送操作的操作,諸如處理器4從處理器寄存器12到映射到設(shè)備存儲器26地址的虛擬地址的存儲操作??刂崎_始于由地址翻譯電路14處理傳送操作(例如,存儲操作),以把數(shù)據(jù)傳送到相應(yīng)于設(shè)備6中連續(xù)設(shè)備存儲器26地址的虛擬地址。地址翻譯電路14把虛擬地址的存儲器映射18處理到(在塊152)設(shè)備存儲器26地址,以確定與經(jīng)過對于虛擬地址的傳送操作的虛擬地址相應(yīng)的設(shè)備存儲器26地址。還進行(在塊154)關(guān)于對于連續(xù)設(shè)備存儲器26地址的例如監(jiān)視標志58的指示符位是否指示收集被使能的確定。如果(在塊156)對于存儲操作傳送數(shù)據(jù)所至的連續(xù)設(shè)備存儲器26地址,收集沒有被使能,則地址翻譯電路14產(chǎn)生(在塊158)分離的總線I/O事務(wù),以通過I/O總線8對于每個傳送操作傳送數(shù)據(jù)到其例如監(jiān)視標志58的指示符位指示收集失效的設(shè)備存儲器地址的一個范圍。否則,如果收集被使能,則地址翻譯電路14產(chǎn)生(在塊160)單個總線I/O事務(wù)(例如,突發(fā)事務(wù)),以通過I/O總線8為連續(xù)設(shè)備存儲器26地址傳送數(shù)據(jù)。
附加實施例細節(jié)所描述的操作可以被實施為使用標準編程和/或工程技術(shù)來生產(chǎn)軟件、固件、硬件或任何它們的組合的方法、裝置或制品。這里使用的術(shù)語“制品”是指在硬件邏輯中實現(xiàn)的代碼或邏輯(例如,集成電路芯片、可編程選通陣列(PGA)、特定用途集成電路(ASIC)等)或者計算機可讀介質(zhì),所述計算機可讀介質(zhì)諸如磁存儲介質(zhì)(例如硬盤驅(qū)動器、軟盤、磁帶等)、光學(xué)存儲器(CD-ROM、光盤等)、易失性和非易失性存儲設(shè)備(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)。計算機可讀介質(zhì)中的代碼被處理器訪問和執(zhí)行。通過傳輸介質(zhì)或從網(wǎng)絡(luò)上的文件服務(wù)器也可以訪問其中實現(xiàn)優(yōu)選實施例的代碼。在這種情況下,其中代碼被實現(xiàn)的制品可以包含傳輸介質(zhì),所述傳輸介質(zhì)諸如通過空間、無線電波、紅外信號等的網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì)、信號傳播等。因此,“制品”可以包括其中包含代碼的介質(zhì)。另外,“制品”可以包括其中代碼被包含、處理和執(zhí)行的硬件和軟件部件的組合。當然,本領(lǐng)域技術(shù)人員將認識到,在不背離本發(fā)明的范圍的情況下,可以對其構(gòu)造進行許多修改。并且制品可以包含本領(lǐng)域所知的任何信息承載介質(zhì)。
所描述的操作可以通過電路執(zhí)行,其中“電路”是指硬件或軟件,或者它們的組合。用于執(zhí)行所描述的實施例的操作的電路可以包含硬件設(shè)備,諸如集成電路芯片、可編程選通陣列(PGA)、特定用途集成電路(ASIC)等。電路也可以包含處理器部件,諸如集成電路和諸如存儲器的計算機可讀介質(zhì)中的代碼,其中代碼由處理器執(zhí)行,以執(zhí)行所描述實施例中的操作。
某些實施例可以針對用于通過人或自動處理來配置計算指令,以把計算機可讀代碼集成進計算系統(tǒng)的方法,其中使與計算系統(tǒng)組合的代碼能執(zhí)行所描述圖1示出了在處理器4中實現(xiàn)的地址翻譯電路14。在替代的實施例中,地址翻譯電路14可以被實施在處理器4外部的電路中。此外,由地址翻譯電路14執(zhí)行的操作還可以由執(zhí)行存儲器接口操作的代碼或程序的處理器4實施。
虛擬地址可以映射到主存儲器10的高速緩沖存儲器、或在其中實現(xiàn)處理器4的集成電路晶方(die)中實現(xiàn)的高速訪問存儲器。
圖2示出了針對本地存儲器地址每個范圍,例如4Kb,而保持的特定信息。在替代的實施例中,該信息可以被存儲在與所示出的相比具有不同格式和信息的不同數(shù)據(jù)結(jié)構(gòu)中。
圖3和圖4中圖解的操作示出了以某順序發(fā)生的某些事件。在替換的實施例中,某些操作可以以不同的順序被執(zhí)行、修改或去除。而且,可以在如上所述的邏輯中添加仍然與所述的實施例相符的步驟。另外,這里所述的操作可以順序地發(fā)生,或者某些操作可以被并行處理。此外,操作可以由單個處理單元或分布式處理單元執(zhí)行。
為了說明和描述的目的,已經(jīng)展示了本發(fā)明的各種實施例的前面的描述。不意欲徹底窮盡,或者把本發(fā)明限制在所公開的確切的形式上。可以根據(jù)上述講授作許多更改和變化。目的是不以這個詳細的描述,而是以權(quán)利要求來限制發(fā)明的范圍。上面的說明書、例子和數(shù)據(jù)提供了本發(fā)明的制造和部件的使用的完整描述。因為發(fā)明的許多實施例能在不背離本發(fā)明的精神和范圍的情況下被實現(xiàn),所以本發(fā)明存在于權(quán)利要求中。
權(quán)利要求
1.一種方法,包含針對通過輸入/輸出(I/O)總線可訪問的設(shè)備中的設(shè)備存儲器地址的范圍而設(shè)置指示符位,所述指示符位指示關(guān)于設(shè)備存儲器地址的范圍,收集是否被使能;處理傳送操作,以向設(shè)備中的連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù);確定關(guān)于連續(xù)設(shè)備存儲器地址的指示符位是否指示收集被使能;以及響應(yīng)于確定了關(guān)于連續(xù)設(shè)備存儲器地址的指示符位指示收集被使能,而產(chǎn)生單個總線I/O事務(wù)以通過I/O總線針對連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。
2.根據(jù)權(quán)利要求1的方法,其中傳送操作包括存儲操作,以把數(shù)據(jù)通過I/O總線從至少一個寄存器拷貝到設(shè)備存儲器地址。
3.根據(jù)權(quán)利要求1的方法,還包含產(chǎn)生分離的總線I/O事務(wù),以通過I/O總線針對每個傳送操作而傳送數(shù)據(jù),所述傳送操作把數(shù)據(jù)傳送到其指示符位指示收集失效的一個設(shè)備存儲器地址范圍。
4.根據(jù)權(quán)利要求1的方法,其中設(shè)置指示符位還包含針對包括設(shè)備寄存器位的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集失效;以及針對包括設(shè)備隨機訪問存儲器(RAM)的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集被使能。
5.根據(jù)權(quán)利要求1的方法,其中傳送操作包含向虛擬存儲器地址傳送數(shù)據(jù)的請求,還包含處理虛擬存儲器地址到設(shè)備存儲器地址的映射,來確定與經(jīng)過傳送操作的虛擬存儲器地址對應(yīng)的設(shè)備存儲器地址,其中總線I/O事務(wù)通過I/O總線把針對虛擬存儲器地址的數(shù)據(jù)傳送到確定的設(shè)備存儲器地址。
6.根據(jù)權(quán)利要求5的方法,其中操作系統(tǒng)響應(yīng)于對于來自設(shè)備的設(shè)備驅(qū)動器的映射的請求,產(chǎn)生虛擬存儲器地址到設(shè)備存儲器地址的映射,其中設(shè)備驅(qū)動器針對設(shè)備中的設(shè)備存儲器地址范圍設(shè)置指示符位,以針對每個設(shè)備存儲器地址范圍指示收集是否被使能,并且其中地址翻譯電路產(chǎn)生單個總線I/O事務(wù),以在多傳送操作中針對連續(xù)設(shè)備存儲器地址把數(shù)據(jù)寫入虛擬存儲器地址。
7.根據(jù)權(quán)利要求6的方法,還包含由操作系統(tǒng)設(shè)置指示符位,以指示收集失效,其中設(shè)備驅(qū)動器設(shè)置指示符位來指示收集被使能,并且其中如果設(shè)備驅(qū)動器不包括設(shè)置指示符位來指示收集被使能的代碼,則地址翻譯電路不針對對于虛擬地址的多傳送操作而產(chǎn)生單個總線I/O事務(wù)。
8.根據(jù)權(quán)利要求6的方法,其中地址翻譯電路實施存儲器映射輸入/輸出(MMIO)協(xié)議,并且其中指示對于每個設(shè)備存儲器地址范圍收集是否被使能的指示符位在翻譯后備緩沖器(TLB)中包含位,其中對于設(shè)備存儲器地址的每個范圍存在一個TLB。
9.根據(jù)權(quán)利要求8的方法,其中指示收集是否被使能的TLB中的位還包含指示預(yù)取是否被使能的監(jiān)視位,其中如果收集被指示為失效,則預(yù)取被指示為失效,如果收集被指示為使能,則預(yù)取被指示為使能。
10.根據(jù)權(quán)利要求1的方法,其中單個總線I/O事務(wù)包含通過I/O總線的突發(fā)事務(wù)。
11.一種系統(tǒng),與具有設(shè)備存儲器的設(shè)備通信,包含存儲器;第一電路,與存儲器通信,用來針對在通過輸入/輸出(I/O)總線可訪問的設(shè)備存儲器中的設(shè)備存儲器地址的范圍,在存儲器中設(shè)置指示符位,所述指示符位指示對于設(shè)備存儲器地址范圍,收集是否被使能;以及第二電路,被使能以引起將被執(zhí)行的操作,所述操作包括(i)處理傳送操作,以把數(shù)據(jù)傳送至設(shè)備中的連續(xù)設(shè)備存儲器地址;(ii)確定對于連續(xù)設(shè)備存儲器地址的存儲器中的指示符位是否指示收集被使能;以及(iii)響應(yīng)于確定了關(guān)于連續(xù)設(shè)備存儲器地址的指示符位指示收集被使能,而產(chǎn)生單個總線I/O事務(wù),以通過I/O總線針對連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。
12.根據(jù)權(quán)利要求11的系統(tǒng),其中傳送操作包括存儲操作,以把數(shù)據(jù)通過I/O總線從至少一個寄存器拷貝到設(shè)備存儲器地址。
13.根據(jù)權(quán)利要求11的系統(tǒng),其中由第二電路引起的操作還包括產(chǎn)生分離總線I/O事務(wù),以通過I/O總線針對每個傳送操作傳送數(shù)據(jù),所述傳送操作把數(shù)據(jù)傳送到其指示符位指示收集失效的一個設(shè)備存儲器地址范圍。
14.根據(jù)權(quán)利要求11的系統(tǒng),其中設(shè)置指示符位還包含針對包括設(shè)備寄存器位的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集失效;以及針對包括設(shè)備隨機訪問存儲器(RAM)的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集被使能。
15.根據(jù)權(quán)利要求11的系統(tǒng),其中傳送操作包含向虛擬存儲器地址傳送數(shù)據(jù)的請求,其中由第二電路引起的操作還包含在存儲器中處理虛擬存儲器地址到設(shè)備存儲器地址的映射,來確定與經(jīng)過傳送操作的虛擬存儲器地址對應(yīng)的設(shè)備存儲器地址,其中總線I/O事務(wù)通過I/O總線把針對虛擬存儲器地址的數(shù)據(jù)傳送到確定的設(shè)備存儲器地址。
16.根據(jù)權(quán)利要求15的系統(tǒng),其中第一電路包括用于設(shè)備的設(shè)備驅(qū)動器,第二電路包括地址翻譯電路,還包括操作系統(tǒng),響應(yīng)于對于來自設(shè)備的設(shè)備驅(qū)動器的映射的請求,而產(chǎn)生虛擬存儲器地址到設(shè)備存儲器地址的映射,其中設(shè)備驅(qū)動器為設(shè)備中的設(shè)備存儲器地址范圍設(shè)置指示符位,以指示對于每個設(shè)備存儲器地址范圍,收集是否被使能,并且其中地址翻譯電路產(chǎn)生單個總線I/O事務(wù),以針對多傳送操作中的連續(xù)設(shè)備存儲器地址把數(shù)據(jù)寫入虛擬存儲器地址。
17.根據(jù)權(quán)利要求16的系統(tǒng),其中操作系統(tǒng)還被使能以引起操作,所述操作包含設(shè)置指示符位來指示收集失效,其中設(shè)備驅(qū)動器設(shè)置指示符位來指示收集被使能,并且其中如果設(shè)備驅(qū)動器不包括設(shè)置指示符位來指示收集被使能的代碼,則地址翻譯電路不針對對于虛擬地址的多傳送操作而產(chǎn)生單個總線I/O事務(wù)。
18.根據(jù)權(quán)利要求16的系統(tǒng),其中地址翻譯電路執(zhí)行存儲器映射輸入/輸出(MMIO)協(xié)議,并且其中對于每個設(shè)備存儲器地址范圍來指示收集是否被使能的指示符位在翻譯后備緩沖器(TLB)中包含位,其中對于設(shè)備存儲器地址的每個范圍存在一個TLB。
19.根據(jù)權(quán)利要求18的系統(tǒng),其中指示收集是否被使能的TLB中的位還包含指示預(yù)取是否被使能的監(jiān)視位,其中如果收集被指示為失效,則預(yù)取被指示為失效,如果收集被指示為使能,則預(yù)取被指示為使能。
20.根據(jù)權(quán)利要求11的系統(tǒng),其中單個總線I/O事務(wù)包含通過I/O總線的突發(fā)事務(wù)。
21.一種制品,與具有設(shè)備存儲器的設(shè)備通信,其中制品被使能以引起操作被執(zhí)行,所述操作包含針對通過輸入/輸出(I/O)總線可訪問的設(shè)備中的設(shè)備存儲器地址的范圍設(shè)置指示符位,所述指示符位指示關(guān)于設(shè)備存儲器地址的范圍,收集是否被使能;處理傳送操作,以向設(shè)備中的連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù);確定關(guān)于連續(xù)設(shè)備存儲器地址的指示符位是否指示收集被使能;以及響應(yīng)于確定了關(guān)于連續(xù)設(shè)備存儲器地址的指示符位指示收集被使能,而產(chǎn)生單個總線I/O事務(wù)以通過I/O總線針對連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。
22.根據(jù)權(quán)利要求21的制品,其中傳送操作包括存儲操作,以把數(shù)據(jù)通過I/O總線從至少一個寄存器拷貝到設(shè)備存儲器地址。
23.根據(jù)權(quán)利要求21的制品,其中操作還包含產(chǎn)生分離的總線I/O事務(wù),以通過I/O總線針對每個傳送操作而傳送數(shù)據(jù),所述傳送操作把數(shù)據(jù)傳送到其指示符位指示收集失效的一個設(shè)備存儲器地址范圍。
24.根據(jù)權(quán)利要求21的制品,其中設(shè)置指示符位還包含針對包括設(shè)備寄存器位的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集失效;以及針對包括設(shè)備隨機訪問存儲器(RAM)的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集被使能。
25.根據(jù)權(quán)利要求21的制品,其中傳送操作包含向虛擬存儲器地址傳送數(shù)據(jù)的請求,還包含處理虛擬存儲器地址到設(shè)備存儲器地址的映射,來確定與經(jīng)過傳送操作的虛擬存儲器地址對應(yīng)的設(shè)備存儲器地址,其中總線I/O事務(wù)通過I/O總線把針對虛擬存儲器地址的數(shù)據(jù)傳送到確定的設(shè)備存儲器地址。
26.根據(jù)權(quán)利要求25的制品,其中制品與操作系統(tǒng)通信,并且包括設(shè)備驅(qū)動器和地址翻譯電路,其中操作系統(tǒng)響應(yīng)于對于來自設(shè)備的設(shè)備驅(qū)動器的映射的請求,產(chǎn)生虛擬存儲器地址到設(shè)備存儲器地址的映射,其中制品設(shè)備驅(qū)動器針對設(shè)備中的設(shè)備存儲器地址范圍設(shè)置指示符位,以針對每個設(shè)備存儲器地址范圍指示收集是否被使能,并且其中地址翻譯電路產(chǎn)生單個總線I/O事務(wù),以在多傳送操作中針對連續(xù)設(shè)備存儲器地址把數(shù)據(jù)寫入虛擬存儲器地址。
27.根據(jù)權(quán)利要求26的制品,其中操作系統(tǒng)設(shè)置指示符位,以指示收集失效,其中設(shè)備驅(qū)動器設(shè)置指示符位來指示收集被使能,并且其中如果設(shè)備驅(qū)動器不包括設(shè)置指示符位來指示收集被使能的代碼,則地址翻譯電路不針對對于虛擬地址的多傳送操作而產(chǎn)生單個總線I/O事務(wù)。
28.根據(jù)權(quán)利要求26的制品,其中地址翻譯電路實施存儲器映射輸入/輸出(MMIO)協(xié)議,并且其中指示對于每個設(shè)備存儲器地址范圍收集是否被使能的指示符位在翻譯后備緩沖器(TLB)中包含位,其中對于設(shè)備存儲器地址的每個范圍存在一個TLB。
29.根據(jù)權(quán)利要求28的制品,其中指示收集是否被使能的TLB中的位還包含指示預(yù)取是否被使能的監(jiān)視位,其中如果收集被指示為失效,則預(yù)取被指示為失效,如果收集被指示為使能,則預(yù)取被指示為使能。
30.根據(jù)權(quán)利要求21的制品,其中單個總線I/O事務(wù)包含通過I/O總線的突發(fā)事務(wù)。
31.一種方法,用于配置計算指令,包括將計算機可讀代碼集成進計算系統(tǒng),其中與計算系統(tǒng)組合的代碼能夠執(zhí)行針對通過輸入/輸出(I/O)總線可訪問的設(shè)備中的設(shè)備存儲器地址的范圍設(shè)置指示符位,所述指示符位指示關(guān)于設(shè)備存儲器地址的范圍,收集是否被使能;處理傳送操作,向設(shè)備中的連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù);確定關(guān)于連續(xù)設(shè)備存儲器地址的指示符位是否指示收集被使能;以及響應(yīng)于確定了關(guān)于連續(xù)設(shè)備存儲器地址的指示符位指示收集被使能,而產(chǎn)生單個總線I/O事務(wù)以通過I/O總線針對連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。
32.根據(jù)權(quán)利要求31的方法,還包含產(chǎn)生分離的總線I/O事務(wù),以通過I/O總線針對每個傳送操作而傳送數(shù)據(jù),所述傳送操作把數(shù)據(jù)傳送到其指示符位指示收集失效的一個設(shè)備存儲器地址范圍。
33.根據(jù)權(quán)利要求31的方法,其中設(shè)置指示符位還包含針對包括設(shè)備寄存器位的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集失效;以及針對包括設(shè)備隨機訪問存儲器(RAM)的每個設(shè)備存儲器地址范圍設(shè)置指示符位,以指示收集被使能。
34.根據(jù)權(quán)利要求31的方法,其中傳送操作包含向虛擬存儲器地址傳送數(shù)據(jù)的請求,還包含處理虛擬存儲器地址到設(shè)備存儲器地址的映射,來確定與經(jīng)過傳送操作的虛擬存儲器地址對應(yīng)的設(shè)備存儲器地址,其中總線I/O事務(wù)通過I/O總線把針對虛擬存儲器地址的數(shù)據(jù)傳送到確定的設(shè)備存儲器地址。
全文摘要
提供一種用于把針對虛擬存儲器地址的數(shù)據(jù)傳送到設(shè)備存儲器的方法、系統(tǒng)及程序。對通過輸入/輸出(I/O)總線可訪問的設(shè)備中的設(shè)備存儲器地址的范圍設(shè)置指示符位,所述指示符位指示對于設(shè)備存儲器地址范圍,收集是否被使能。傳送操作被處理以向設(shè)備中的連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。進行關(guān)于對于連續(xù)設(shè)備存儲器地址,指示符位是否指示收集被使能的確定。響應(yīng)于確定了對于連續(xù)設(shè)備存儲器地址,指示符位指示了收集被使能,而產(chǎn)生單個總線I/O事務(wù)以通過I/O總線針對連續(xù)設(shè)備存儲器地址傳送數(shù)據(jù)。
文檔編號G06F12/10GK1770128SQ20051010763
公開日2006年5月10日 申請日期2005年9月29日 優(yōu)先權(quán)日2004年11月5日
發(fā)明者邁克爾·T·本哈斯, 羅伯特·A·卡格諾尼, 小詹姆斯·S·菲爾茲, 邁克爾·J·梅菲爾德, 布魯斯·米利 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1