專利名稱:處理外圍設(shè)備頁錯(cuò)誤的機(jī)制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)內(nèi)的頁請(qǐng)求,更具體來說,涉及處理來自外圍設(shè)備的頁請(qǐng)求的那些系統(tǒng)。
背景技術(shù):
隨著外圍設(shè)備具有更多的功能,被并入外圍設(shè)備的一種這樣的功能是翻譯后援緩沖器(TLB),其向外圍設(shè)備指示是否可在系統(tǒng)存儲(chǔ)器中獲得外圍設(shè)備想要訪問的邏輯地址。原先由存儲(chǔ)器控制器提供的這樣的頁請(qǐng)求現(xiàn)在可由具有TLB的外圍設(shè)備發(fā)送。需要以靈活和恰當(dāng)?shù)姆绞教幚磉@樣的頁請(qǐng)求的方法。發(fā)明公開在一個(gè)實(shí)施例中,提供了一種方法,其包括從外圍設(shè)備接收請(qǐng)求將存儲(chǔ)頁載入系統(tǒng)存儲(chǔ)器的頁請(qǐng)求。將對(duì)應(yīng)于接收到的頁請(qǐng)求的頁請(qǐng)求信息作為隊(duì)列條目寫入到系統(tǒng)存儲(chǔ)器中的隊(duì)列結(jié)構(gòu)中。通知處理器隊(duì)列中存在頁請(qǐng)求。在一個(gè)實(shí)施例中,可使用與新的頁請(qǐng)求的存在唯一地相關(guān)的中斷來通知處理器。在一個(gè)實(shí)施例中,提供了一種計(jì)算機(jī)系統(tǒng),其包括具有用于從外圍設(shè)備接收指示需要存儲(chǔ)頁服務(wù)的頁請(qǐng)求的第一通信鏈路接口的集成電路。隊(duì)列條目產(chǎn)生邏輯通過產(chǎn)生包括來自頁請(qǐng)求的信息的隊(duì)列條目來對(duì)接收到頁請(qǐng)求作出響應(yīng),通過第二通信接口發(fā)送隊(duì)列條目以將隊(duì)列條目寫入到頁請(qǐng)求隊(duì)列中。頁請(qǐng)求隊(duì)列在系統(tǒng)存儲(chǔ)器中,系統(tǒng)存儲(chǔ)器經(jīng)由存儲(chǔ)器控制器耦合至集成電路。集成電路通知處理器可在隊(duì)列中獲得隊(duì)列條目。附圖簡述通過參考附圖,可以更好地理解本發(fā)明并且其大量對(duì)象、特征和優(yōu)勢對(duì)本領(lǐng)域技術(shù)人員將變得顯而易見。
圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例性系統(tǒng)。圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的示例性隊(duì)列結(jié)構(gòu)。圖3示出了示例性隊(duì)列條目。圖4示出了如從根據(jù)本發(fā)明的一個(gè)實(shí)施例的外圍設(shè)備接收到的示例性頁請(qǐng)求。圖5示出了本發(fā)明的一個(gè)實(shí)施例的示例性流程圖。在不同附圖中使用相同參考符號(hào)指示相似或相同的元件。用于實(shí)施本發(fā)明的模式頁請(qǐng)求向系統(tǒng)指示需要將新的頁載入存儲(chǔ)器。圖1示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的處理來自外圍設(shè)備的頁服務(wù)請(qǐng)求的系統(tǒng)。示例性系統(tǒng)包括其包括一個(gè)或多個(gè)中央處理單元(CPU)和圖形處理單元(GPU)的處理器101、系統(tǒng)存儲(chǔ)器103、I/O集線器105和107、外圍設(shè)備111和113。I/O集線器執(zhí)行計(jì)算機(jī)體系結(jié)構(gòu)中傳統(tǒng)的芯片集功能(在之前的體系結(jié)構(gòu)中稱為南橋(South-Bridge)),這些功能包括與具有各種I/O接口的各種I/O設(shè)備進(jìn)行接口連接。在圖1所示的實(shí)施例中,I/o集線器105和107包括I/O存儲(chǔ)管理單元(IOMMU) 110,其為將I/O地址映射到系統(tǒng)存儲(chǔ)器中的適當(dāng)物理地址和其它存儲(chǔ)管理功能提供支持。在替代實(shí)施例中,可以諸如數(shù)字信號(hào)處理器、微控制器等的其它處理器來實(shí)施(在示例性實(shí)施例中示出的包括CPU和GPU的)處理器。圖1的計(jì)算機(jī)系統(tǒng)可以在手持設(shè)備、PDA、筆記本計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、平板式計(jì)算機(jī)、服務(wù)器或具有處理器以及具有與本文的教導(dǎo)一致的存儲(chǔ)需求的外圍設(shè)備的任何其它系統(tǒng)中體現(xiàn)。另外,可將I/O集線器105、107并入處理器101。外圍設(shè)備111和113包括I/O TLB112并且因此可以確定何時(shí)可在系統(tǒng)存儲(chǔ)器103中獲得虛擬地址。當(dāng)外圍設(shè)備111確定不可在系統(tǒng)存儲(chǔ)器中獲得地址時(shí),該外圍設(shè)備通過通信鏈路115向I/O集線器107發(fā)出頁請(qǐng)求,該請(qǐng)求被I0MMU110接收。為了對(duì)該請(qǐng)求提供服務(wù),IOMMUl 10必須通過通信鏈路117通信。在通信鏈路115和117根據(jù)不同的通信協(xié)議操作的系統(tǒng)中,當(dāng)外圍設(shè)備111發(fā)出頁請(qǐng)求時(shí),必須將該頁請(qǐng)求轉(zhuǎn)換到適當(dāng)?shù)膮f(xié)議。例如,通信鏈路115可根據(jù)PCIe 協(xié)議操作,而通信鏈路117可根據(jù)諸如HyperTransportTM協(xié)議的另一組通信協(xié)議操作。為了正確地對(duì)頁請(qǐng)求作出響應(yīng),需要將頁請(qǐng)求轉(zhuǎn)換為處理器101可以正確處理的形式。在一個(gè)實(shí)施例中,將用于通信鏈路115的協(xié)議從PCIe 語義轉(zhuǎn)換為與HyperTransport 或AMD64 兼容的語義,以便由系統(tǒng)來處理。在其它實(shí)施例中,可涉及其它處理器體系結(jié)構(gòu)和其它通信鏈路協(xié)議。頁請(qǐng)求事務(wù)是通信鏈路115上的瞬時(shí)性操作。在一個(gè)實(shí)施例中,根據(jù)為PCIe (PCI通信接口系列之一)定義的頁請(qǐng)求接口(PRI)協(xié)議在通信鏈路115上提供頁請(qǐng)求。由于頁請(qǐng)求是瞬時(shí)性的(PRI是提供最新信息的操作),所以需要捕獲信息并將其傳遞給處理器。此外,該信息中的一些內(nèi)容包括在對(duì)外圍設(shè)備的PRI響應(yīng)中。當(dāng)初始請(qǐng)求被處理時(shí),其它頁請(qǐng)求可從其它外圍設(shè)備發(fā)出來由處理器處理,因此需要某種緩沖,使得在整個(gè)系統(tǒng)繼續(xù)操作的同時(shí)保留PRI信息。一種解決方案是創(chuàng)建新的硬件,其帶有通過麗10(存儲(chǔ)器映射的I/O)操作訪問的一組寄存器。PCIe總線上的新硬件將接受PRI請(qǐng)求、在這組寄存器中存儲(chǔ)接收到的信息(請(qǐng)求)并隨后使用中斷通知處理器。在處理器上運(yùn)行的系統(tǒng)軟件將接收中斷、讀寄存器、處理請(qǐng)求以及寫某些額外的寄存器(或者也許是相同的寄存器)。專用的寫操作將使新的硬件將寄存器的內(nèi)容封裝成PCIe總線事務(wù)以用信號(hào)通知外圍設(shè)備完成了 PRI服務(wù)。可以在許多地方定位此新硬件。IOMMU是邏輯位置(即IOMMU已提供I/O相關(guān)的服務(wù),因此將新的PRI功能與現(xiàn)有的IOMMU功能整合是合理的)。此解決方案易于以硬件來實(shí)現(xiàn),但不利之處在于PCIe段中的所有外圍設(shè)備將被串行化在一組寄存器之后。可以使用硬件將設(shè)定而軟件將清除的“有效”位來讓一組寄存器保存多個(gè)PRI請(qǐng)求,但這會(huì)消耗可觀的硬件資源且用軟件管理起來較復(fù)雜。在一個(gè)實(shí)施例中,通信鏈路117為HyperTransport鏈路。并非添加上述的一組寄存器,另一解決方案將是將語義添加到如HyperTransport的通信協(xié)議以及將把PRI包轉(zhuǎn)換成待由處理器消耗的HyperTransport事務(wù)的處理器體系結(jié)構(gòu)。這將需要添加到所有處理器,并且遇到與上面構(gòu)想的新硬件相同的問題,如硬件資源的消耗、在一組寄存器后面的串行化以及復(fù)雜的軟件管理。最后,這將非常難以以單深串行化方式以外的方式來實(shí)現(xiàn)。
在本發(fā)明的一個(gè)實(shí)施例中,I/O集線器107接收頁服務(wù)請(qǐng)求(在接口上利用PRI或其它協(xié)議)、將信息組裝成標(biāo)準(zhǔn)格式并將信息寫入系統(tǒng)存儲(chǔ)器103中的隊(duì)列中。圖2示出了系統(tǒng)存儲(chǔ)器103中的示例性隊(duì)列結(jié)構(gòu)203。隊(duì)列的利用提供靈活的容量并允許同時(shí)處理多個(gè)請(qǐng)求而不丟失任何請(qǐng)求。由于隊(duì)列在系統(tǒng)存儲(chǔ)器中,所以隊(duì)列可為任意大(或小),且可基于系統(tǒng)活動(dòng)或其它考慮通過系統(tǒng)軟件來設(shè)定大小。本解決方案的可伸縮性不再簡單地受硬件資源的限制,并且可根據(jù)需要變大。在一個(gè)實(shí)施例中,用來從接收到的頁請(qǐng)求產(chǎn)生隊(duì)列條目的硬件功能119被集成到IOMMU中(見圖1)。在一個(gè)實(shí)施例中,頁服務(wù)請(qǐng)求可集成到除了頁服務(wù)請(qǐng)求之外還提供其它功能(如事件報(bào)告)的隊(duì)列中。事件可以是例如IOMMU檢測到的錯(cuò)誤狀況。在一個(gè)實(shí)施例中,將頁服務(wù)請(qǐng)求作為一種類型的事件來處理并將其直接與其它事件一起合并到事件日志(或隊(duì)列)中。在另一實(shí)施例中,頁服務(wù)請(qǐng)求具有獨(dú)特的頁服務(wù)請(qǐng)求隊(duì)列。在獨(dú)特的頁服務(wù)請(qǐng)求隊(duì)列(外圍設(shè)備頁請(qǐng)求(PPR)隊(duì)列或日志)的情況下,可使用中斷來通知處理器新的PPR服務(wù)請(qǐng)求已到達(dá)。此中斷可不同于事件中斷,且可對(duì)PPR隊(duì)列狀態(tài)是唯一的,從而允許PPR處理代碼被直接調(diào)用(而沒有一般事件處理的開銷)。此外,可將處理PPR請(qǐng)求的代碼與事件日志處理隔離,從而通過功能隔離提供更佳的系統(tǒng)安全性。為了簡單管理,隊(duì)列具有頭和尾指針。在其它實(shí)施例中,可使用消息而非中斷來告知處理器新隊(duì)列條目的存在。參照?qǐng)D2,IOMMU包含包括尾指針寄存器211、頭指針寄存器215、緩沖器大小寄存器217和緩沖器基地址寄存器219的寄存器。在一個(gè)實(shí)施例中,PPR日志或隊(duì)列占用從基地址寄存器219中的可編程基地址開始直到在緩沖器大小寄存器217中指定的可編程大小的連續(xù)的物理存儲(chǔ)器。當(dāng)主機(jī)軟件消耗隊(duì)列條目時(shí),其增大讀指針以向IOMMU指示處理器已消耗隊(duì)列條目。當(dāng)IOMMU發(fā)送新的隊(duì)列條目時(shí),IOMMU增大尾指針。當(dāng)除了一個(gè)隊(duì)列槽之外其它隊(duì)列槽都被使用時(shí)隊(duì)列就滿了,當(dāng)沒有槽可用時(shí)隊(duì)列就溢出了。當(dāng)溢出存在時(shí),主機(jī)軟件必須消耗隊(duì)列條目或者增大隊(duì)列以避免使頁請(qǐng)求無法進(jìn)入頁請(qǐng)求隊(duì)列。圖3中示出了示例性的普通隊(duì)列條目。該條目包括將該條目標(biāo)識(shí)為PPR隊(duì)列條目的PPR碼。隊(duì)列條目通過通信接口 117發(fā)送到存儲(chǔ)器控制器102,該存儲(chǔ)器控制器102將隊(duì)列條目寫入到系統(tǒng)存儲(chǔ)器103中(見圖1)。圖4示出了從在PRI包中接收到的外圍設(shè)備頁服務(wù)請(qǐng)求產(chǎn)生的PPR隊(duì)列條目的實(shí)施例。進(jìn)程地址空間ID(PASID)是用來標(biāo)識(shí)客戶VM(虛擬機(jī))(如果虛擬化已激活)內(nèi)的用戶進(jìn)程的字段。如果虛擬化不存在,則PASID標(biāo)識(shí)本機(jī)OS (操作系統(tǒng))中的用戶進(jìn)程。設(shè)備ID(DeviceID)標(biāo)識(shí)請(qǐng)求外圍設(shè)備。PPR碼OOOlb是用來定義此特定格式的值;然而,將包含不同信息或其它格式的其它格式也是可能的。GN位指示PRI請(qǐng)求是用于客戶VM還是客戶VM內(nèi)的進(jìn)程(在一種設(shè)置中,可忽略PASID信息;在另一種設(shè)置中,PASID信息對(duì)于處理請(qǐng)求是必需的)。RZ位指示接收到的包中存在錯(cuò)誤且PPR信息可能已損壞。WP、RP和NX位表示PRI包中請(qǐng)求的寫、讀和執(zhí)行權(quán)限(如果有)。PPR標(biāo)簽(PPRtag)字段將在PRI響應(yīng)包中返回給外圍設(shè)備。S和地址字段定義需要服務(wù)的頁的地址(連同PASID-如果GN指示需要它的話)。計(jì)數(shù)字段指示請(qǐng)求中有多少連續(xù)的頁需要服務(wù)。可包括用戶/主管(US)位以用信號(hào)通知請(qǐng)求是用于用戶還是主管訪問。當(dāng)圖4中所示信息是用于PRI請(qǐng)求時(shí),頁服務(wù)請(qǐng)求可采用其它格式。然而,通常將在頁服務(wù)請(qǐng)求中找到諸如設(shè)備ID和地址的與頁請(qǐng)求相關(guān)的信息。
當(dāng)PRI請(qǐng)求到達(dá)時(shí),使用圖2中所示的隊(duì)列結(jié)構(gòu)203,PRI請(qǐng)求中的信息被寫入存儲(chǔ)器103。然后,使用中斷或其它適當(dāng)?shù)耐ㄖ夹g(shù)通知在處理器101上執(zhí)行的系統(tǒng)軟件。然后,系統(tǒng)軟件能夠在適當(dāng)?shù)臅r(shí)候消耗PRI請(qǐng)求。必須為系統(tǒng)軟件提供以信號(hào)通知外圍設(shè)備PRI請(qǐng)求已完成的某種方式。這可以幾種方式來完成。在一個(gè)實(shí)施例中,提供帶有諸如標(biāo)簽字段、計(jì)數(shù)和設(shè)備ID的PRI請(qǐng)求(圖4)的關(guān)鍵部分并指示IOMMU來根據(jù)協(xié)議要求構(gòu)造PRI響應(yīng)包的IOMMU命令。在一個(gè)實(shí)施例中,IOMMU的命令隊(duì)列存在于系統(tǒng)存儲(chǔ)器中。系統(tǒng)軟件將命令寫入IOMMU命令隊(duì)列中并通知IOMMU已將新的命令置于堆棧上。在一個(gè)實(shí)施例中,軟件將PRI恢復(fù)命令寫入到存儲(chǔ)器中的命令隊(duì)列中。為了通知I0MMU,軟件寫入存儲(chǔ)管理Ι/0(ΜΜΙ0)郵箱(由IOMMU公布)以喚醒IOMMU并向其告知其命令隊(duì)列中存在新的工作。最后,由于系統(tǒng)中可以有多個(gè)I0MMU,每個(gè)IOMMU可以服務(wù)于不同的外圍設(shè)備集合,所有IOMMU都獨(dú)立地操作,所以進(jìn)一步的并行是可能的。對(duì)于多個(gè)MMU,存在多個(gè)PPR隊(duì)列,每個(gè)IOMMU —個(gè)PPR隊(duì)列。來自每個(gè)MMU的中斷可間接地指示來源。在一個(gè)實(shí)施例中,中斷被配置來使用八位矢量數(shù)將CPU中斷。每個(gè)矢量數(shù)具有唯一的代碼入口點(diǎn)。如果軟件配置所有IOMMU中斷來使用唯一的矢量數(shù),則IOMMU源可根據(jù)矢量數(shù)來確定。然而,IOMMU中斷共享矢量數(shù)也是可能的。如果軟件這樣做,則其無法立即分辨出哪個(gè)IOMMU在中斷且必須檢查映射到中斷矢量的每個(gè)IOMMU的PPR隊(duì)列。圖5示出了根據(jù)本發(fā)明的實(shí)施例的示例性流程圖。在501中,外圍設(shè)備111通過通信鏈路115向IOMMUl 10發(fā)送頁服務(wù)請(qǐng)求。在503中,IOMMU從頁服務(wù)請(qǐng)求提取相關(guān)信息并構(gòu)造隊(duì)列條目。在505中,IOMMU通過存儲(chǔ)器控制器102向系統(tǒng)存儲(chǔ)器發(fā)送隊(duì)列條目并更新IOMMU中的隊(duì)列寫指針。在507中,IOMMU中斷處理器以指示頁服務(wù)請(qǐng)求已進(jìn)入系統(tǒng)存儲(chǔ)器中的頁服務(wù)隊(duì)列。響應(yīng)于該中斷,在509中,處理器處理該中斷和頁請(qǐng)求、更新IOMMU中的讀指針并通過響應(yīng)包向IOMMU發(fā)出命令以確認(rèn)請(qǐng)求。最后,在511中,IOMMU向外圍設(shè)備發(fā)送響應(yīng)包。
使用本文描述的隊(duì)列結(jié)構(gòu)的方法具有幾個(gè)優(yōu)勢。它是可縮放的,從而能夠處理具有最小作用的小系統(tǒng),但能夠縮放到具有許多活動(dòng)I/o的大系統(tǒng)。軟件開發(fā)相對(duì)簡單(相比于開發(fā)用于新硬件的新軟件)。本發(fā)明可以基于對(duì)尾指針寄存器的訪問通過IOMMU內(nèi)部的簡單爭用技術(shù)并發(fā)地處理多個(gè)PRI請(qǐng)求,因此爭用解決可以很快。本文描述的方法通過使用諸如中斷和系統(tǒng)存儲(chǔ)器的現(xiàn)有體系結(jié)構(gòu)機(jī)制避免了對(duì)處理器和通信鏈路體系結(jié)構(gòu)進(jìn)行更改。可將硬件修改限于I0MMU。最后,此隊(duì)列方法將各種通信和處理器協(xié)議實(shí)現(xiàn)的機(jī)制與策略(由系統(tǒng)軟件實(shí)現(xiàn))整潔地分開。因此,此方法可用在處理多個(gè)通信協(xié)議的多個(gè)處理器體系結(jié)構(gòu)上??梢攒浖碳⒂布蚱浣M合實(shí)現(xiàn)本發(fā)明的實(shí)施例的各個(gè)方面。計(jì)算機(jī)可讀介質(zhì)可存儲(chǔ)可用于實(shí)現(xiàn)本發(fā)明的各個(gè)方面的指令。計(jì)算機(jī)可讀介質(zhì)為永久地、可拆卸地或遠(yuǎn)程地耦合至計(jì)算機(jī)系統(tǒng)的有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。有形計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括例如諸如基于半導(dǎo)體的存儲(chǔ)器(如RAM、EEPROM或ROM)、磁存儲(chǔ)介質(zhì)或光學(xué)存儲(chǔ)介質(zhì)的有形介質(zhì)或其它有形存儲(chǔ)介質(zhì)。雖然在描述本發(fā)明的實(shí)施例時(shí)已大致地闡述了電路和物理結(jié)構(gòu),但應(yīng)認(rèn)識(shí)到,在現(xiàn)代半導(dǎo)體設(shè)計(jì)和制造中,可以適于在后續(xù)的設(shè)計(jì)、模擬、測試或制造階段中使用的計(jì)算機(jī)可讀描述形式來實(shí)施物理結(jié)構(gòu)和電路??蓪⒆鳛槭纠耘渲弥械碾x散組件呈現(xiàn)的結(jié)構(gòu)和功能實(shí)現(xiàn)為組合的結(jié)構(gòu)或組件。本發(fā)明的各實(shí)施例被構(gòu)想為包括均如本文所述且如權(quán)利要求書所定義的電路、電路系統(tǒng)、相關(guān)方法以及其上具有此類電路、系統(tǒng)和方法的編碼(如HDL、Verilog、⑶SII數(shù)據(jù))的有形計(jì)算機(jī)可讀介質(zhì)。另外,計(jì)算機(jī)可讀介質(zhì)可存儲(chǔ)可用于實(shí)現(xiàn)本發(fā)明的指令以及數(shù)據(jù)。這些指令/數(shù)據(jù)可與硬件、軟件、固件或其組合相關(guān)。在本文中闡述的本發(fā)明的描述為說明性的,并且不旨在如權(quán)利要求書中所闡述的那樣限制本發(fā)明的范圍。例如,雖然本文中描述的實(shí)施例利用IOMMU來產(chǎn)生隊(duì)列條目并發(fā)送響應(yīng)包和中斷處理器,但根據(jù)每個(gè)特定系統(tǒng)的需要和要求,其它實(shí)施例可將該功能定位在計(jì)算機(jī)系統(tǒng)中的其它地方。在不脫離如權(quán)利要求書中闡述的本發(fā)明的范圍的情況下,可根據(jù)本文中闡述的描述對(duì)本文所公開的實(shí)施例進(jìn)行其它變化和修改。
權(quán)利要求
1.一種方法,其包括 從外圍設(shè)備接收頁請(qǐng)求,所述頁請(qǐng)求請(qǐng)求將存儲(chǔ)頁載入系統(tǒng)存儲(chǔ)器; 將對(duì)應(yīng)于所述頁請(qǐng)求的頁請(qǐng)求信息作為隊(duì)列條目寫入所述系統(tǒng)存儲(chǔ)器中的隊(duì)列;以及 通知處理器可在所述隊(duì)列中獲得所述頁請(qǐng)求。
2.如權(quán)利要求1所述的方法,其還包括使用中斷通知所述處理器以向所述處理器指示已接收到所述頁請(qǐng)求,所述中斷用新頁請(qǐng)求的存在來唯一地標(biāo)識(shí)。
3.如權(quán)利要求1所述的方法,其還包括在所述處理器已處理所述頁請(qǐng)求后用信號(hào)通知所述外圍設(shè)備所述頁請(qǐng)求已完成。
4.如權(quán)利要求3所述的方法,其還包括 在輸入/輸出存儲(chǔ)管理單元(IOMMU)從所述外圍設(shè)備接收所述頁請(qǐng)求;以及 從所述處理器向所述IOMMU提供指示以產(chǎn)生用來以信號(hào)通知所述頁請(qǐng)求的完成的消肩、O
5.如權(quán)利要求1所述的方法,其還包括 在所述處理器上執(zhí)行的主機(jī)軟件通過更新用于所述隊(duì)列的讀指針來指示所述隊(duì)列條目的消耗,所述隊(duì)列為具有寫指針和所述讀指針的循環(huán)緩沖器。
6.如權(quán)利要求1所述的方法,其還包括通過寫可編程位置來選擇所述隊(duì)列的大小。
7.一種計(jì)算機(jī)系統(tǒng),其包括 集成電路,其包括 第一通信鏈路接口,其用來從外圍設(shè)備接收指示需要存儲(chǔ)頁服務(wù)的頁請(qǐng)求;以及 隊(duì)列條目產(chǎn)生邏輯,其用來響應(yīng)于接收到所述頁請(qǐng)求而產(chǎn)生包括來自所述頁請(qǐng)求的信息的隊(duì)列條目并將所述隊(duì)列條目通過第二通信接口發(fā)送,以便將所述隊(duì)列條目寫入到頁請(qǐng)求隊(duì)列中。
8.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其還包括 系統(tǒng)存儲(chǔ)器,其經(jīng)由存儲(chǔ)器控制器耦合至所述集成電路,所述系統(tǒng)存儲(chǔ)器包括所述頁請(qǐng)求隊(duì)列。
9.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述集成電路還被配置來通知處理器可在所述隊(duì)列中獲得所述隊(duì)列條目。
10.如權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其中 所述集成電路還包括定義向所述頁請(qǐng)求隊(duì)列中的寫入的尾指針和定義向所述頁請(qǐng)求隊(duì)列中的讀入的頭指針,且其中, 在讀取所述系統(tǒng)存儲(chǔ)器中的隊(duì)列條目后,在所述處理器上執(zhí)行的軟件更新所述頭指針,且其中在向所述頁請(qǐng)求隊(duì)列寫入后,所述集成電路更新所述尾指針。
11.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述隊(duì)列條目包括標(biāo)識(shí)需要存儲(chǔ)頁服務(wù)的所述外圍設(shè)備的設(shè)備標(biāo)識(shí)字段和包含所述外圍設(shè)備想要訪問的虛擬地址的地址字段。
12.如權(quán)利要求7所述的計(jì)算機(jī)系統(tǒng),其中所述集成電路還包括可編程隊(duì)列長度寄存器,其用來定義所述頁請(qǐng)求隊(duì)列的大小;和隊(duì)列基地址寄存器,其用來定義所述頁請(qǐng)求隊(duì)列的基地址。
全文摘要
從外圍設(shè)備接收到頁服務(wù)請(qǐng)求,其請(qǐng)求將存儲(chǔ)頁載入系統(tǒng)存儲(chǔ)器。將對(duì)應(yīng)于接收到的頁服務(wù)請(qǐng)求的頁服務(wù)請(qǐng)求信息作為隊(duì)列條目寫入系統(tǒng)存儲(chǔ)器中的隊(duì)列結(jié)構(gòu)。通知處理器隊(duì)列中存在頁請(qǐng)求。可使用新隊(duì)列條目的中斷通知處理器。處理器處理頁服務(wù)請(qǐng)求,并向外圍設(shè)備通知請(qǐng)求處理的完成。
文檔編號(hào)G06F13/42GK103052949SQ201180036664
公開日2013年4月17日 申請(qǐng)日期2011年7月15日 優(yōu)先權(quán)日2010年7月16日
發(fā)明者馬克·D·赫梅爾, 安德魯·G·克格爾 申請(qǐng)人:超威半導(dǎo)體公司