欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

預加載指令控制的制作方法

文檔序號:6422866閱讀:192來源:國知局

專利名稱::預加載指令控制的制作方法
技術領域
:本發(fā)明涉及數據處理系統(tǒng)領域。更具體地說,本發(fā)明涉及支持用于觸發(fā)預加載操作以準備隨后存儲器訪問的預加載指令的數據處理系統(tǒng)。
背景技術
:提供支持預加載指令的數據處理系統(tǒng)是已知的。這種預加載指令指定要經受預加載操作的存儲器地址以準備隨后存儲器訪問那個存儲器地址。在那個存儲器地址的數據至少有可能在后面訪問,并從而,準備那個隨后訪問的預加載操作可加速后面的訪問。然而,預加載操作消耗能量來執(zhí)行,并且在一些情形下可能減慢它想要執(zhí)行的其它數據處理操作,例如,觸發(fā)提取的預加載操作可以以立即需要其所提取的數據值的后面加載操作的方式獲得??蓽p少能耗并改進執(zhí)行效率的措施是有利的。
發(fā)明內容從一個方面來看,本發(fā)明提供了一種用于處理數據的設備,所述設備包括處理電路,配置成響應于程序指令來執(zhí)行數據處理操作;指令解碼器電路,耦合到所述處理電路,并響應于所述程序指令而生成用于控制所述處理電路以執(zhí)行所述數據處理操作的控制信號;其中所述指令解碼器響應于預加載指令——所述預加載指令指定經受預加載操作的存儲器地址位置以準備隨后存儲器訪問所述存儲器地址——以將所述存儲器地址與空值相比較,并且(i)如果所述存儲器地址不匹配所述空值,則生成用于控制所述處理電路以執(zhí)行所述預加載操作的控制信號;以及()如果所述存儲器地址確實匹配所述空值,則不生成用于控制所述處理電路以執(zhí)行所述預加載操作的所述控制信號。本技術認識到,對于某些存儲器地址,當執(zhí)行尋求預加載那個存儲器地址的預加載指令時可能希望抑制預加載操作。作為一個示例,可能已知的是,某些存儲器地址對應于將不被執(zhí)行并且實際上不需要的數據訪問。從而,尋求預加載對應于那些存儲器地址的數據值的預加載指令將導致能量浪費,并且可能阻礙其它更有用指令被執(zhí)行。這些存儲器地址可視為空值,并且指令解碼器可將接收的預加載指令的存儲器地址與這些空值相比較以確定實際上是否要執(zhí)行預加載操作。如果存儲器地址匹配空值,則不會執(zhí)行預加載操作。這節(jié)省了能量并提高了效率。將認識到,預加載操作可采取大量不同的形式。在一些系統(tǒng)中,轉換后備緩沖器電路存儲指定虛擬地址與物理地址之間轉換的地址映射數據。如果存儲器地址的地址映射數據還未存儲在轉換后備緩沖器內,則預加載操作在此上下文中可以觸發(fā)該存儲器地址的地址映射數據到轉換后備緩沖器的加載。由此,當需要實際加載操作時,地址轉換數據將已經存在于轉換后備緩沖器中,并從而,可以更快速地進行加載操作。將轉換數據加載到轉換后備緩沖器中可以使用頁表遍歷(pagetablewalk)操作。這種頁表遍歷是存儲存儲器地址轉換數據的高效方式,但是遭受比較慢的缺點。從而,當執(zhí)行對存儲器地址的實際訪問操作時,用于使用頁表遍歷操作觸發(fā)存儲那個存儲器地址的轉換數據的、對那個存儲器地址的預加載指令將節(jié)省比較大量的時間。在其它實施例中,可以提供高速緩沖存儲器,并且預加載操作可以將數據從存儲器地址加載到高速緩沖存儲器。當需要訪問存儲器地址時,這個加載的數據然后將更快地可用??罩悼梢栽O置成固定值,諸如0。0存儲器地址正常對應于被常規(guī)設置成許多操作系統(tǒng)不可訪問的存儲器地址空間中的最低頁,作為俘獲錯誤操作的方式。為0的存儲器地址指針值也是指明數據訪問的鏈接列表序列的結尾的通用方式,其中最后的數據塊具有指向填充有0空值的下一數據塊的指針以指示它是最后一個數據塊??罩狄部梢允侵捣秶械娜我恢?,例如存儲器地址范圍內的任何存儲器地址都將被視為匹配空值。還有可能,空值可以是在軟件或硬件控制下設置成對用戶或系統(tǒng)已知的值的可編程值,這指示實際上不需要預加載操作。例如,如果將另一個預定值用作指示鏈接列表數據結構內的最后一個數據塊,則可以使用這個技術。空值可以在硬件控制下由配置成檢測不經受預加載操作的存儲器地址的檢測電路編程。這種存儲器地址例如可以由返回存儲器地址是不可訪問的結果的之前的存儲器訪問標識。預加載不可訪問存儲器地址的隨后嘗試是無用的,并從而,可以抑制這種預加載操作。從另一個方面來看,本發(fā)明提供了一種用于處理數據的設備,所述設備包括處理部件,用于響應于程序指令來執(zhí)行數據處理操作;指令解碼器部件,用于響應于所述程序指令而生成控制信號,所述控制信號控制所述處理電路以執(zhí)行所述數據處理操作;其中所述指令解碼器部件響應于預加載指令——所述預加載指令指定經受預加載操作的存儲器地址位置以準備隨后存儲器訪問所述存儲器地址一一以將所述存儲器地址與空值相比較,并且(i)如果所述存儲器地址不匹配所述空值,則生成用于控制所述處理電路以執(zhí)行所述預加載操作的控制信號;以及()如果所述存儲器地址確實匹配所述空值,則不生成用于控制所述處理電路以執(zhí)行所述預加載操作的所述控制信號。從又一個方面來看,本發(fā)明提供了一種處理數據的方法,所述方法包括如下步驟響應于程序指令來執(zhí)行數據處理操作;解碼程序指令以生成用于控制所述數據處理操作的控制信號;其中所述解碼響應于預加載指令——所述預加載指令指定經受預加載操作的存儲器地址位置以準備隨后存儲器訪問所述存儲器地址——以將所述存儲器地址與空值相比較,并且(i)如果所述存儲器地址不匹配所述空值,則生成用于控制所述處理電路以執(zhí)行所述預加載操作的控制信號;以及()如果所述存儲器地址確實匹配所述空值,則不生成用于控制所述處理電路以執(zhí)行所述預加載操作的所述控制信號。本發(fā)明的以上和其它目的、特征和優(yōu)點根據要結合附圖閱讀的例證性實施例的如下詳細描述而將顯而易見。圖1示意性例證了包含預加載指令支持的數據處理系統(tǒng);圖2是示意性例證指令解碼器解碼預加載指令的流程圖3示意性例證了轉換后備緩沖器;圖4示意性例證了通過三級頁表層級結構的頁表遍歷;圖5是示意性例證在頁表遍歷期間遇到不可訪問頁時更新預加載指令的空值的流程圖6示意性例證了使用空值指示鏈接列表結尾的鏈接列表數據結構;以及圖7示意性例證了虛擬機實施例。具體實施例方式圖1例證了包含耦合到存儲器6的處理器4的數據處理系統(tǒng)2。處理器4包含具有各種不同形式的處理電路。包括寄存器組8、乘法器10、移位器12和加法器14的數據路徑執(zhí)行數據處理操作,諸如算術運算。加載/存儲單元16執(zhí)行訪問存儲在存儲器6內的數據的加載和存儲操作。處理器4包含合并了轉換后備緩沖器20的存儲器管理單元18。存儲器管理單元18接收要訪問的存儲器位置的虛擬地址,并將這變換成物理地址,以及檢查相關訪問許可。轉換后備緩沖器20用于存儲將虛擬地址映射到物理地址的地址映射數據的高速緩存,以及存儲與那些物理地址相關聯(lián)的訪問參數。從存儲在存儲器6內的頁表數據22中導出存儲在轉換后備緩沖器20內的地址映射數據,其定義整個存儲器地址空間的地址映射數據全集以及整個存儲器地址空間的訪問屬性。高速緩沖存儲器M將數據值存儲在處理器4內,使得它們可以比存儲在存儲器6內的數據值被更快速地訪問。高速緩存對被物理尋址,并且從而,虛擬地址到物理地址的下游轉換由存儲器管理單元18使用轉換后備緩沖器20(或從存儲器6中檢索的頁表數據)執(zhí)行。指令提取單元沈用于從存儲在存儲器6內的程序觀中提取程序指令。這些所提取的指令被提供給指令流水線30,在此它們沿指令流水線級(例如重新排序、發(fā)出等)繼續(xù),直到它們到達程序指令被提供給指令解碼器32所處的解碼級。指令解碼器32解碼程序指令并生成控制信號,該控制信號被提供給處理器4的其它部分并用于配置和控制處理器4的那些其它部分以執(zhí)行在正在解碼的程序指令中指定的數據處理操作。程序指令可包含由加載/存儲單元16執(zhí)行的加載和存儲指令以訪問數據值,諸如存儲在存儲器6內的媒體數據值34。程序指令可包含操控那些訪問數據值的算術指令,諸如相加、相乘等。由指令解碼器32支持的一種指令類型是預加載指令(PLD[rj。這個預加載指令用于對由保存在寄存器A內的值指定的存儲器地址執(zhí)行預加載操作。預加載操作可以采取各種不同的形式。預加載操作可以觸發(fā)加載存儲單元16向高速緩沖存儲器M預加載包含由寄存器A中的存儲器地址指定的數據值的高速緩存行(cacheline)。如果轉換后備緩沖器20還未包含為將由寄存器&中的值指定的虛擬地址轉換成物理地址值所必需的轉換數據,則預加載操作的另一種形式可以是觸發(fā)存儲器管理單元18執(zhí)行通過頁表數據22的頁表遍歷。頁表遍歷操作比較慢,并且從而,觸發(fā)存儲器管理單元18在實際需要的該數據值之前執(zhí)行這個頁表遍歷確保了轉換數據在轉換后備緩沖器20中將是可用的,之后才實際需要它,由此減少了隨后訪問指令等待時間。指令解碼器32耦合到存儲所用的空值的預加載空寄存器36,當解碼預加載指令以指示對于其不應該執(zhí)行預加載操作的存儲器地址的空值時,該空值由指令解碼器32解釋。在這個示例實施例中,預加載空寄存器36在軟件控制下是可編程的。然而,還有可能,預加載空寄存器36可以存儲固定的預定值,諸如0,或者可以在硬件控制下設置,這將在后面描述。還有可能,空值可以是值范圍中的任一值,例如范圍內的存儲器地址(其可以是可編程的)將被視為匹配空值??罩祵诖鎯ζ鞯刂贩秶膶嵤├谥T如如下情況中是有用的對于轉換后備緩沖器情況,將加載不僅對應于0x1000而且對應于接著的4kB頁的映射,由此隨后PLD[r0,#0x4]可以被丟棄而沒有性能影響(以及潛在的某種性能增益)。這對于執(zhí)行高速緩存行填充的硬件也是有用的,因為高速緩存行長度不是在體系結構上不變的,因此代碼可以寫成使得用于隨后PLD的步伐是在其上可執(zhí)行代碼的所有芯片上存在的高速緩存行長度的最低公分母,并且由此,用更長的高速緩存行長度的實現(xiàn)可以選擇去除有效重復的PLD(命中同一高速緩存行的那些)。也可以實現(xiàn)條目超時的附加機制以便防止間隔很長時間執(zhí)行的相等預加載(使得該項目可能變成被逐出),備選是探聽逐出。圖2是示意性例證由指令解碼器32所執(zhí)行的預加載指令PLD[rJ的解碼的流程圖。在步驟38,該處理等待,直到接收到預加載指令。當接收到預加載指令時,然后步驟40確定由存儲在寄存器A內的值所指定的存儲器地址是否對應于存儲在空值寄存器36內的空值。如果存在匹配,則該處理終止。如果不存在匹配,則處理繼續(xù)到步驟42,在此執(zhí)行預加載操作。預加載操作可包括如果地址轉換數據還未存儲在轉換后備緩沖器20內的任何必需的頁表遍歷和/或對高速緩沖存儲器M的高速緩存行提取操作。圖3示意性例證了轉換后備緩沖器20。轉換后備緩沖器20存儲地址映射數據,形式為具有對應物理地址轉換和訪問屬性的虛擬地址標簽。在使用中,虛擬地址由轉換后備緩沖器20使用,并與存儲在地址映射數據內的所有虛擬地址標簽進行比較(例如,轉換后備緩沖器用作內容可尋址存儲器CAM)。如果發(fā)現(xiàn)了匹配,則從地址映射數據讀取對應的物理轉換,連同存儲器那個區(qū)域的訪問屬性。本領域的技術人員將理解到,存儲器被分成的頁具有諸如4kB的大小,使得只有虛擬地址的最高有效部分需要轉換成對應的物理地址。對應于存儲器頁內不同位置的地址內的位不需要轉換。圖4示意性例證了當轉換后備緩沖器20內存在未命中時發(fā)生的通過頁表數據22的頁表遍歷操作。當未命中發(fā)生時,則在轉換后備緩沖器20內不存在所接收虛擬地址的地址映射數據。從而,虛擬地址的一部分(例如最高有效部分)首先用于編索引進第一級表44中,在此發(fā)現(xiàn)指針指向第二級表46。虛擬地址的不同部分(例如下一最高有效部分)然后用于形成到那個第二級表46內位置的索引,從那讀取另一指針以標識第三級表48。虛擬地址的最后一部分(但不是虛擬地址的所有其余部分)被消耗為第三級頁表內的、存儲物理地址轉換數據以及要返回到轉換后備緩沖器20的訪問屬性的條目的索引。圖5是示意性例證存儲器管理單元18可如何響應于訪問不可訪問頁的頁表遍歷而在硬件控制下設置空值的流程圖。在步驟50,由存儲器管理單元18處理等待,直到需要頁表遍歷。當需要頁表遍歷時,然后步驟52執(zhí)行如圖4中所例證的頁表遍歷,并返回包含指示訪問屬性的數據的地址映射數據。步驟M根據返回的訪問屬性確定頁是否被標記為不可訪問。如果頁未標記為不可訪問,則步驟56向轉換后備緩沖器20返回頁表數據。如果頁被標記為不可訪問,則步驟58用于設置預加載空寄存器36內的空值,以對應于正好已經執(zhí)行頁表遍歷的頁的存儲器地址。這個頁表是不可訪問的,并從而,執(zhí)行進一步頁表遍歷到那個不可訪問頁是沒有意義的。由此,指定那個不可訪問頁內存儲器地址的預加載指令隨后被標識為對應于空值,并且頁表遍歷不會作為這種存儲器地址的預加載操作的一部分觸發(fā)。圖6是示意性例證鏈接列表數據結構的圖解。這種鏈接列表數據結構一般用在數據處理內,并且方便用于靈活地存儲預先不知道那個數據的大小的大量數據。該數據作為要消耗的數據值存儲在固定大小的塊內,其中每個塊中的最后一個條目指向那個鏈接列表數據結構內的下一數據塊。由此,鏈接列表可由可變數量的塊形成,其中每個塊指向列表中的下一塊。列表中的最后一塊由在發(fā)現(xiàn)指向最后一塊的指針的位置中存在空值指示為最后一塊。為了提高處理效率,當第一次打開數據塊時下一指針值由預加載指令使用是正常的。當首先訪問前一塊時由此關于下一塊執(zhí)行的預加載操作給出了在那個下一數據塊實際需要為了在數據處理中消耗而存在之前要執(zhí)行的操作諸如高速緩存加載、頁表遍歷等的充足時間。然而,當遇到最后一個數據塊時,執(zhí)行關于存儲為鏈接列表結尾的指示符的空值的預加載操作是能量和處理資源的浪費。從而,本技術允許標識這種空值,并抑制預加載操作。圖7例證了可以使用的虛擬機實現(xiàn)。雖然較早描述的實施例在用于操作支持所關注的技術的特定處理硬件的設備和方法方面實現(xiàn)了本發(fā)明,但是還有可能提供硬件裝置的所謂虛擬機實現(xiàn)。這些虛擬機實現(xiàn)運行在主機處理器530上,該主機處理器運行支持虛擬機程序510的主機操作系統(tǒng)520。通常,需要功能強大的處理器來提供以合理速度執(zhí)行的虛擬機實現(xiàn),但是這種方法可能在某些情況下證明是好的,諸如當出于兼容性或重用原因希望運行對于另一個處理器為本機的代碼時。虛擬機程序510提供到應用程序500的應用程序接口,該接口與由作為由虛擬機程序510建模的裝置的真實硬件將提供的應用程序接口相同。由此,可以使用虛擬機程序510從應用程序500內執(zhí)行程序指令,包括上面描述的存儲器訪問控制,以對它們與虛擬機硬件的交互作用建模。雖然本文已經參考附圖詳細描述了本發(fā)明的例證性實施例,但要理解到,本發(fā)明不限于那些精確實施例,并且本領域技術人員可實施其中的各種改變和修改而不脫離所附權利要求書所定義的本發(fā)明的范圍和精神。權利要求1.用于處理數據的設備,包括處理電路,配置成響應于程序指令來執(zhí)行數據處理操作;指令解碼器電路,耦合到所述處理電路,并響應于所述程序指令而生成用于控制所述處理電路以執(zhí)行所述數據處理操作的控制信號;其中所述指令解碼器響應于預加載指令——所述預加載指令指定要經受預加載操作的存儲器地址位置以準備隨后存儲器訪問所述存儲器地址——以將所述存儲器地址與空值相比較,并且(i)如果所述存儲器地址不匹配所述空值,則生成用于控制所述處理電路以執(zhí)行所述預加載操作的控制信號;以及()如果所述存儲器地址確實匹配所述空值,則不生成用于控制所述處理電路以執(zhí)行所述預加載操作的所述控制信號。2.如權利要求1所述的設備,包括轉換后備緩沖器電路,配置成存儲指定虛擬地址與物理地址之間轉換的地址映射數據,其中所述存儲器地址是虛擬存儲器地址,并且如果所述地址映射數據未指定所述存儲器地址的轉換,則所述預加載操作觸發(fā)所述存儲器地址的地址映射數據到所述轉換后備緩沖器的加載。3.如權利要求2所述的設備,其中使用頁表遍歷操作來訪問所述存儲器地址的所述地址映射數據。4.如權利要求1、2和3中任一項所述的設備,包括高速緩沖存儲器,并且其中所述預加載操作將數據從所述存儲器地址加載到所述高速緩沖存儲器。5.如以上權利要求中任一項所述的設備,其中所述空值是0。6.如權利要求1至4中任一項所述的設備,其中所述空值是值范圍中的一個。7.如權利要求1至4中任一項所述的設備,其中所述空值是可編程值。8.如權利要求6所述的設備,其中所述空值由配置成檢測不經受所述預加載操作的存儲器地址的檢測電路編程。9.如權利要求1至4中任一項所述的設備,其中所述存儲器地址在被分成存儲器地址頁的存儲器地址空間內,并且所述指令解碼器電路將所述空值設置成對應于之前檢測的對不可訪問存儲器頁的存儲器訪問。10.用于處理數據的設備,包括處理部件,用于響應于程序指令來執(zhí)行數據處理操作;指令解碼器部件,用于響應于所述程序指令而生成控制信號,所述控制信號控制所述處理電路以執(zhí)行所述數據處理操作;其中所述指令解碼器部件響應于預加載指令一所述預加載指令指定要經受預加載操作的存儲器地址位置以準備隨后存儲器訪問所述存儲器地址一以將所述存儲器地址與空值相比較,并且(i)如果所述存儲器地址不匹配所述空值,則生成用于控制所述處理電路以執(zhí)行所述預加載操作的控制信號;以及(ii)如果所述存儲器地址確實匹配所述空值,則不生成用于控制所述處理電路以執(zhí)行所述預加載操作的所述控制信號。11.一種處理數據的方法,包括如下步驟響應于程序指令而執(zhí)行數據處理操作;解碼程序指令以生成用于控制所述數據處理操作的控制信號;其中所述解碼響應于預加載指令——所述預加載指令指定要經受預加載操作的存儲器地址位置以準備隨后存儲器訪問所述存儲器地址——以將所述存儲器地址與空值相比較,并且(i)如果所述存儲器地址不匹配所述空值,則生成用于控制所述處理電路以執(zhí)行所述預加載操作的控制信號;以及()如果所述存儲器地址確實匹配所述空值,則不生成用于控制所述處理電路以執(zhí)行所述預加載操作的所述控制信號。12.如權利要求11所述的方法,存儲指定虛擬地址與物理地址之間轉換的地址映射數據,其中所述存儲器地址是虛擬存儲器地址,并且如果所述地址映射數據未指定所述存儲器地址的轉換,則所述預加載操作觸發(fā)所述存儲器地址的地址映射數據的加載。13.如權利要求12所述的方法,其中使用頁表遍歷操作來訪問所述存儲器地址的所述地址映射數據。14.如權利要求11、12和13中任一項所述的方法,其中所述預加載操作將數據從所述存儲器地址加載到所述高速緩沖存儲器。15.如權利要求11至14中任一項所述的方法,其中所述空值是0。16.如權利要求11至14中任一項所述的方法,其中所述空值是值范圍中的一個。17.如權利要求11至14中任一項所述的方法,其中所述空值是可編程值。18.如權利要求17所述的方法,其中所述空值通過用不經受所述預加載操作的硬件存儲器地址進行檢測來編程。19.如權利要求11至14中任一項所述的方法,其中所述存儲器地址在被分成存儲器地址頁的存儲器地址空間內,并且所述空值設置成對應于之前檢測的對不可訪問存儲器頁的存儲器訪問。20.一種虛擬機,由控制計算機以根據權利要求11至19中任一項所述的方法操作的計算機程序提供。21.設備,用于基本上如上文參考附圖所描述的那樣處理數據。22.一種方法,用于基本上如上文參考附圖所描述的那樣處理數據。23.一種虛擬機,基本上如上文參考附圖所描述的。全文摘要本發(fā)明涉及預加載指令控制。處理器4提供有指令解碼器32,該指令解碼器響應于觸發(fā)預加載操作諸如頁表遍歷和高速緩存行提取的預加載指令PLD[r0]。指令解碼器標識與預加載指令相關聯(lián)的存儲器地址是否匹配空值,并且如果存儲器地址確實匹配空值,則抑制預加載操作??罩悼梢栽诔绦蚩刂葡略O置,它可以被預定為固定值(例如0),或者可以在硬件控制下設置,諸如對應于由存儲器管理單元標識為不可訪問的頁的存儲器地址。文檔編號G06F9/30GK102236541SQ20111010083公開日2011年11月9日申請日期2011年4月21日優(yōu)先權日2010年4月22日發(fā)明者S.J.克拉斯克申請人:Arm有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
厦门市| 大姚县| 渭南市| 章丘市| 茌平县| 托克逊县| 吐鲁番市| 即墨市| 蚌埠市| 农安县| 炎陵县| 聂拉木县| 孟州市| 湟源县| 浑源县| 胶南市| 西乌珠穆沁旗| 高雄市| 盐边县| 神池县| 邯郸县| 贺兰县| 甘肃省| 息烽县| 府谷县| 京山县| 奉新县| 永年县| 绵阳市| 乳源| 泰和县| 嘉黎县| 镇安县| 托里县| 密山市| 南陵县| 永宁县| 安义县| 宜州市| 龙井市| 营口市|