亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

對(duì)齊控制的制作方法

文檔序號(hào):6361332閱讀:155來源:國知局

專利名稱::對(duì)齊控制的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)處理系統(tǒng)領(lǐng)域。更具體地,本發(fā)明涉及在數(shù)據(jù)處理系統(tǒng)內(nèi)執(zhí)行的存儲(chǔ)器存取的存取對(duì)齊控制。
背景技術(shù)
:為數(shù)據(jù)處理系統(tǒng)提供查核存儲(chǔ)器存取對(duì)齊的機(jī)制是已知的。存儲(chǔ)器存取(memoryaccess)可以是不受限制的從而使得存儲(chǔ)器內(nèi)的任意個(gè)別的字節(jié)都可由任意大小的存儲(chǔ)器存取來尋址,或存儲(chǔ)器存取可以是對(duì)齊受限的從而使得僅可在存儲(chǔ)器內(nèi)進(jìn)行利用諸如半字組、字組、雙字組之類的邊限對(duì)齊的存儲(chǔ)器存取。一般而言,在提供高速存儲(chǔ)器存取時(shí)存儲(chǔ)器存取對(duì)齊要求的實(shí)施是有幫助的,例如寬數(shù)據(jù)總線可與不必容納與數(shù)據(jù)總線寬度不對(duì)齊的存取的總線一同使用。然而,當(dāng)操縱以下的壓縮數(shù)據(jù)結(jié)構(gòu)時(shí),對(duì)僅對(duì)齊的存儲(chǔ)器存取的要求是有問題的該壓縮數(shù)據(jù)結(jié)構(gòu)中的被存取的數(shù)據(jù)元素本身可能未必具有與所施加的對(duì)齊限制對(duì)齊的邊限。在一些情況中,所執(zhí)行的指令可能需要數(shù)據(jù)存取的對(duì)齊,例如對(duì)于堆棧數(shù)據(jù)儲(chǔ)存裝置的一些讀取-修正-寫入指令。此外,一些應(yīng)用二進(jìn)制接口規(guī)定了存取對(duì)齊。
發(fā)明內(nèi)容鑒于一方面,本發(fā)明提供了一種用于處理數(shù)據(jù)的裝置,該裝置包括處理電路,該處理電路響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作;堆棧指針寄存器,該堆棧指針寄存器耦接至所述處理電路并且被配置為存儲(chǔ)指示堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器內(nèi)的地址的堆棧指針值;堆棧對(duì)齊查核電路,該堆棧對(duì)齊查核電路耦接至所述處理電路和所述堆棧指針寄存器,并且被配置為響應(yīng)指定在所述堆棧指針值指定的地址對(duì)所述堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行堆棧存儲(chǔ)器存取的程序指令,檢測所述堆棧指針值是否匹配預(yù)定堆棧對(duì)齊條件;對(duì)齊查核控制電路,該對(duì)齊查核控制電路耦接至所述堆棧對(duì)齊查核電路,并且響應(yīng)于堆棧配置參數(shù)而獨(dú)立于在進(jìn)行存儲(chǔ)器存取時(shí)執(zhí)行的進(jìn)一步的對(duì)齊查核,選擇性地停用所述堆棧對(duì)齊查核電路。本發(fā)明的技術(shù)認(rèn)識(shí)到,適合于堆棧存儲(chǔ)器存取的對(duì)齊限制可能并不適合于其他存儲(chǔ)器存取(例如,并不涉及堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器存取)。作為示例,未存儲(chǔ)在堆棧數(shù)據(jù)儲(chǔ)存裝置內(nèi)的數(shù)據(jù)結(jié)構(gòu)可為壓縮數(shù)據(jù)結(jié)構(gòu),其中對(duì)于該壓縮數(shù)據(jù)結(jié)構(gòu)來說對(duì)齊限制將是個(gè)問題,然而應(yīng)用對(duì)齊限制于堆棧數(shù)據(jù)儲(chǔ)存裝置將有助于識(shí)別堆棧指針或堆棧數(shù)據(jù)儲(chǔ)存裝置的腐化(corruption)。本發(fā)明的技術(shù)認(rèn)識(shí)到此情況,且提供了堆棧對(duì)齊查核電路的機(jī)制以查核堆棧存儲(chǔ)器存取的對(duì)齊,其中堆棧對(duì)齊查核電路獨(dú)立于在系統(tǒng)內(nèi)執(zhí)行的任何進(jìn)一步的對(duì)齊查核(例如,在對(duì)堆棧存儲(chǔ)器和非堆棧存儲(chǔ)器兩者的所有的存儲(chǔ)器存取時(shí)執(zhí)行的對(duì)齊查核)而被選擇性地停用。因此,堆棧對(duì)齊查核可結(jié)合或可不結(jié)合獨(dú)立控制的對(duì)于存儲(chǔ)器存取的進(jìn)一步的查核來執(zhí)行。因此,可以對(duì)堆棧數(shù)據(jù)儲(chǔ)存裝置實(shí)施對(duì)齊,而不對(duì)通用存儲(chǔ)器存取實(shí)施對(duì)齊。將了解,進(jìn)一步的對(duì)齊查核可采取多種不同的形式,例如不使用堆棧指針的對(duì)齊查核存儲(chǔ)器存取。然而,有用的布置是這樣的情況,其中進(jìn)一步的對(duì)齊查核是在進(jìn)行所有的存儲(chǔ)器存取時(shí)執(zhí)行的對(duì)齊查核(即,使用和不使用堆棧指針的存儲(chǔ)器存取)。將了解,堆棧存儲(chǔ)器存取可以是對(duì)堆棧地址的頂部進(jìn)行的讀取(彈出)存取或?qū)懭?壓入)存取,同時(shí)對(duì)于堆棧指針值的相應(yīng)更新被執(zhí)行。除了被選擇性停用的堆棧對(duì)齊查核電路以外,一些實(shí)施例還可額外地包括用于檢測任意存儲(chǔ)器存取是否符合預(yù)定對(duì)齊條件的通用對(duì)齊查核電路。因此,盡管可以單獨(dú)使用堆棧對(duì)齊查核電路,但該堆棧對(duì)齊查核電路也可有效地與通用對(duì)齊查核電路組合。通用對(duì)齊查核電路也可由對(duì)齊查核控制電路來控制,以使得該通用對(duì)齊查核電路可被選擇性地停用。所施加的對(duì)齊條件可改變。對(duì)齊條件可為預(yù)定堆棧對(duì)齊條件是不加限制的,這相當(dāng)于停用堆棧對(duì)齊查核電路。然而,當(dāng)對(duì)齊條件是使得堆棧指針值為2N的整數(shù)倍時(shí)(其中,N是非零整數(shù)值,例如N為對(duì)應(yīng)于64位和128位對(duì)齊的3或4中的一者),堆棧對(duì)齊查核電路更為有用。N的值和相應(yīng)的對(duì)齊條件可在使用者控制下設(shè)定(例如軟件控制)。盡管本發(fā)明的技術(shù)可使用于包括單個(gè)堆棧指針的實(shí)施例中,但是該技術(shù)也可應(yīng)用于包括多個(gè)堆棧指針的實(shí)施例中,其中每個(gè)堆棧指針存儲(chǔ)相應(yīng)的堆棧指針值并且受相應(yīng)的堆棧配置參數(shù)的控制,其中該堆棧配置參數(shù)確定對(duì)于相關(guān)的堆棧指針的堆棧對(duì)齊查核是被停用還是被啟用。這些不同的堆棧指針可與系統(tǒng)內(nèi)的差異異常級(jí)(特權(quán)級(jí))相關(guān)聯(lián)。鑒于另一方面,本發(fā)明提供了一種用于處理數(shù)據(jù)的裝置,該裝置包括處理構(gòu)件,該處理構(gòu)件用于響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作;堆棧指針構(gòu)件,該堆棧指針構(gòu)件用于存儲(chǔ)堆棧指針值,所述堆棧指針構(gòu)件耦接至所述處理構(gòu)件,并且所述堆棧指針值指示堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器內(nèi)的地址;堆棧對(duì)齊查核構(gòu)件,該堆棧對(duì)齊查核構(gòu)件用于查核對(duì)齊,所述堆棧對(duì)齊查核構(gòu)件耦接至所述處理構(gòu)件和所述堆棧指針構(gòu)件,并且被配置為響應(yīng)指定在所述堆棧指針值指定的地址對(duì)所述堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行存儲(chǔ)器存取的程序指令,檢測所述堆棧指針值是否匹配預(yù)定堆棧對(duì)齊條件;對(duì)齊查核控制構(gòu)件,該對(duì)齊查核控制構(gòu)件用于控制對(duì)齊查核,所述對(duì)齊查核控制構(gòu)件耦接至所述堆棧對(duì)齊查核構(gòu)件,并且響應(yīng)于堆棧配置參數(shù)而獨(dú)立于在進(jìn)行存儲(chǔ)器存取時(shí)執(zhí)行的進(jìn)一步的對(duì)齊查核,選擇性地停用所述堆棧對(duì)齊查核構(gòu)件。鑒于另一方面,本發(fā)明提供了一種處理數(shù)據(jù)的方法,該方法包括以下步驟響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作;在堆棧指針寄存器內(nèi)存儲(chǔ)指示堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器內(nèi)的地址的堆棧指針值;響應(yīng)于指定在所述堆棧指針值指定的地址對(duì)所述堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行存儲(chǔ)器存取的程序指令,檢測所述堆棧指針值是否匹配預(yù)定堆棧對(duì)齊條件;響應(yīng)于堆棧配置參數(shù),獨(dú)立于在不使用所述堆棧指針值進(jìn)行存儲(chǔ)器存取時(shí)執(zhí)行的對(duì)齊查核,選擇性地忽略該檢測步驟。本發(fā)明的實(shí)施例也可以虛擬機(jī)的形式來提供,其中該虛擬機(jī)是由執(zhí)行適當(dāng)?shù)能浖蕴峁┢ヅ淝拔乃枋龅难b置和方法的執(zhí)行環(huán)境的通用計(jì)算機(jī)來形成?,F(xiàn)在參考附圖,僅通過示例來描述本發(fā)明的前述和其他實(shí)施例,其中圖1示意性地示出了結(jié)合有對(duì)齊查核電路及對(duì)齊控制電路的數(shù)據(jù)處理裝置;圖2示意性地示出了包括受選擇性停用的對(duì)齊控制的多個(gè)堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器;圖3是示意性地示出對(duì)堆棧存儲(chǔ)器存取和通用存取的對(duì)齊控制的方法的流程圖;以及圖4是示意性地示出前文所描述的技術(shù)的虛擬機(jī)實(shí)施方式的示意圖。具體實(shí)施例方式圖1示意性地示出了數(shù)據(jù)處理裝置2,該數(shù)據(jù)處理裝置包括經(jīng)由存儲(chǔ)器管理單元6耦接至高速緩沖存儲(chǔ)器8的處理器核心4。主存儲(chǔ)器耦接至高速緩沖存儲(chǔ)器8,雖然主存儲(chǔ)器并未在圖1中示出。配置數(shù)據(jù)儲(chǔ)存裝置10存儲(chǔ)在軟件控制下可寫入的用于控制數(shù)據(jù)處理裝置2的各種配置參數(shù)的配置數(shù)據(jù)。此配置數(shù)據(jù)儲(chǔ)存裝置可被以協(xié)同處理器(例如CP15)的形式提供,其中可對(duì)該協(xié)同處理器進(jìn)行寫入以設(shè)定配置參數(shù)并可對(duì)該協(xié)同處理器進(jìn)行讀取以讀取配置參數(shù)。處理器核心4包括由通用寄存器庫12、乘法器14、移位器16、及加法器18形成的數(shù)據(jù)路徑。數(shù)據(jù)路徑12、14、16、18是由譯碼器電路20所產(chǎn)生的控制信號(hào)來控制的,其中該譯碼器電路對(duì)從指令管線22接收的程序指令進(jìn)行譯碼且產(chǎn)生控制信號(hào),該控制信號(hào)用以配置數(shù)據(jù)路徑12、14、16、18執(zhí)行需要的數(shù)據(jù)處理操作并且配置和控制處理器核心4的其他部分執(zhí)行用以處理相關(guān)的指令所必需的功能。將了解,處理器核心4將通常包括許多其他的電路元件,但是出于簡明的目的這些電路元件被從圖1中省去。處理器核心4可在多個(gè)異常級(jí)(exceptionlevel)中進(jìn)行操作。這些異常級(jí)中的每個(gè)級(jí)對(duì)應(yīng)于一個(gè)異常級(jí)模式數(shù)值,且模式寄存器24存儲(chǔ)指示處理器核心4的當(dāng)前異常級(jí)模式的數(shù)值。每個(gè)異常級(jí)模式具有相關(guān)聯(lián)的堆棧指針寄存器26、28、30、32,這些堆棧指針寄存器存儲(chǔ)在操作于特定的異常級(jí)模式時(shí)將被用于由堆棧存取指令指示的堆棧存儲(chǔ)器存取的相應(yīng)堆棧指針值。因此,當(dāng)處理器核心4處于異常級(jí)2(EL2)時(shí)執(zhí)行的堆棧壓入或堆棧彈出指令將使用存儲(chǔ)在堆棧指針寄存器30內(nèi)的堆棧指針值。處理器核心4消耗經(jīng)由高速緩沖存儲(chǔ)器8從存儲(chǔ)器讀取的數(shù)據(jù)和指令。若數(shù)據(jù)項(xiàng)或指令不存在于高速緩沖存儲(chǔ)器8中,則對(duì)主存儲(chǔ)器進(jìn)行存取以擷取該數(shù)據(jù)項(xiàng)或指令。許多可能的高速緩存和存儲(chǔ)器架構(gòu)是可能的,且圖1僅示出了這種高速緩存或存儲(chǔ)器架構(gòu)的一個(gè)示例。處理器核心4產(chǎn)生虛擬地址,該虛擬地址由存儲(chǔ)器管理單元6轉(zhuǎn)換為物理地址。存儲(chǔ)器管理單元6通常使用頁表數(shù)據(jù)(pagetabledata)來執(zhí)行此地址轉(zhuǎn)換。存儲(chǔ)器管理單元6還存儲(chǔ)用于確定是否應(yīng)允許特定的存儲(chǔ)器存取的存取許可數(shù)據(jù)。存儲(chǔ)器管理單元包括對(duì)齊查核電路34,該對(duì)齊查核電路34包括堆棧對(duì)齊查核電路36和通用對(duì)齊查核電路38。堆棧對(duì)齊查核電路36負(fù)責(zé)查核堆棧存儲(chǔ)器存取的對(duì)齊,例如堆棧壓入指令或堆棧彈出指令。通用對(duì)齊查核電路38負(fù)責(zé)查核所有的存儲(chǔ)器存取,例如通用負(fù)載或儲(chǔ)存指令。對(duì)齊查核電路34包括對(duì)齊查核控制電路40,對(duì)齊查核控制電路40彼此獨(dú)立地選擇性地啟用或停用堆棧對(duì)齊查核電路36和通用對(duì)齊查核電路38。因此,堆棧對(duì)齊查核電路36可被停用或啟用,且通用對(duì)齊查核電路38可獨(dú)立地被停用或啟用。堆棧對(duì)齊查核電路36和通用對(duì)齊查核電路38可因此結(jié)合在一起執(zhí)行不查核、僅對(duì)堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行存取時(shí)進(jìn)行查核或在進(jìn)行所有的存儲(chǔ)器存取時(shí)進(jìn)行查核。對(duì)齊查核控制電路40響應(yīng)于存儲(chǔ)在配置數(shù)據(jù)儲(chǔ)存裝置10內(nèi)的配置參數(shù)。對(duì)于堆棧指針寄存器26、28、30、32中的每一個(gè),都存儲(chǔ)堆棧配置參數(shù),該堆棧配置參數(shù)指示就在相關(guān)的堆棧指針寄存器26、28、30、32的相應(yīng)的異常級(jí)發(fā)生的堆棧存取的情況,是否停用對(duì)齊查核。因此,可針對(duì)對(duì)應(yīng)于異常級(jí)ELO和EL2的堆棧指針值執(zhí)行堆棧對(duì)齊查核,而針對(duì)異常級(jí)ELl和EL3的堆棧對(duì)齊查核可停用。配置數(shù)據(jù)儲(chǔ)存裝置10還包括(就執(zhí)行的每個(gè)對(duì)齊查核)指示被查核的匹配所對(duì)照的對(duì)齊大小的數(shù)據(jù),例如對(duì)齊是否是對(duì)照對(duì)應(yīng)于23或24的倍數(shù)的存儲(chǔ)器地址的64位存儲(chǔ)器地址邊界或128位存儲(chǔ)器地址邊界來查核的。配置數(shù)據(jù)儲(chǔ)存裝置10進(jìn)一步包括通用配置參數(shù),該通用配置參數(shù)控制是停用還是啟用通用對(duì)齊查核電路38。針對(duì)此通用對(duì)齊查核實(shí)施的對(duì)齊的大小也被指定為配置參數(shù)。儲(chǔ)存在配置數(shù)據(jù)儲(chǔ)存裝置10內(nèi)的確認(rèn)參數(shù)可在軟件控制下被寫入。這些配置參數(shù)也可在硬件控制下設(shè)定,或被預(yù)先編程在硬件中。圖2示意性地示出了包括對(duì)應(yīng)于不同異常級(jí)的四個(gè)堆棧數(shù)據(jù)儲(chǔ)存裝置44、46、48和50的存儲(chǔ)器42。存儲(chǔ)在堆棧指針寄存器26、28、30、32中的堆棧指針值指示這些堆棧數(shù)據(jù)儲(chǔ)存裝置44、46、48、50中的每一個(gè)的頂部地址值,其中可針對(duì)這些堆棧儲(chǔ)存裝置執(zhí)行諸如壓入操作或彈出操作的堆棧存儲(chǔ)器存取。作為示例,與堆棧數(shù)據(jù)儲(chǔ)存裝置46相關(guān)聯(lián)的對(duì)齊條件在圖2中示出。如果實(shí)施對(duì)齊,則僅有為2N的整數(shù)倍的地址是有效的堆棧指針值。如果發(fā)現(xiàn)堆棧指針值不同于這些允許值,則觸發(fā)異常。這種異常的觸發(fā)結(jié)果可根據(jù)實(shí)施方式而改變。這種異??筛鶕?jù)相關(guān)系統(tǒng)的特性,觸發(fā)軟件響應(yīng)(運(yùn)行異常處理代碼)或硬件響應(yīng)(實(shí)施復(fù)位)。在圖示出的示例中,N的值可為3或4,這兩個(gè)值分別對(duì)應(yīng)于被作為堆棧對(duì)齊條件實(shí)施的64位對(duì)齊或被作為堆棧對(duì)齊條件實(shí)施的128位對(duì)齊。圖2中還示出,如果停用堆棧對(duì)齊查核電路38,則任何地址都可被用作為堆棧指針值,且堆棧數(shù)據(jù)儲(chǔ)存裝置46的頂部地址可位于存儲(chǔ)器地址空間內(nèi)的任何位置(受限于在進(jìn)行所有的存儲(chǔ)器存取時(shí)由通用對(duì)齊查核電路38單獨(dú)實(shí)施的任何對(duì)齊限制)。圖3是示意性地示出對(duì)齊查核電路34的操作的流程圖。在步驟52,處理等待直到接收到存儲(chǔ)器存取。步驟54確定存儲(chǔ)器存取地址是否來自堆棧指針寄存器。如果存儲(chǔ)器存取是堆棧存儲(chǔ)器存取(即,具有來自堆棧指針寄存器的地址),則處理進(jìn)行至步驟56,其中在步驟56確定是否針對(duì)處理器核心4所處理的當(dāng)前異常級(jí)停用堆棧對(duì)齊查核(如可使用異常級(jí)模式寄存器24確定)。如果啟用堆棧對(duì)齊查核,則步驟58確定相關(guān)的存取是否匹配用于當(dāng)前異常級(jí)的預(yù)定對(duì)齊條件。如果符合預(yù)定對(duì)齊條件(即,存取被適當(dāng)?shù)貙?duì)齊),則處理進(jìn)行至步驟60,其中在步驟60存取被允許。如果存取并不匹配預(yù)定對(duì)齊條件(即,存取是非對(duì)齊的),則處理進(jìn)行至步驟62,其中在步驟62觸發(fā)堆棧不對(duì)齊存取響應(yīng)。如果在步驟56確定停用堆棧對(duì)齊查核,則處理進(jìn)行至步驟64,其中在步驟64作出關(guān)于是否停用通用對(duì)齊查核的判決。如果在步驟54確定存儲(chǔ)器存取并不是堆棧存儲(chǔ)器存取(即,并不涉及對(duì)從堆棧指針寄存器中讀取的地址的使用),則處理進(jìn)行至步驟64,其中在步驟64作出關(guān)于當(dāng)前是否停用通用對(duì)齊查核的判決。若通用對(duì)齊查核當(dāng)前被停用,則處理進(jìn)行至步驟60,其中在步驟60存取被允許。如果在步驟64確定不停用通用對(duì)齊查核,則處理進(jìn)行至步驟66,其中在步驟66作出關(guān)于存取是否匹配通用存取的預(yù)定對(duì)齊條件(S卩,通用對(duì)齊條件)的判決。如果存取確實(shí)匹配此通用對(duì)齊條件(即,為對(duì)齊的),則處理進(jìn)行至步驟60,其中在步驟60存取被允許。如果存取并不匹配通用對(duì)齊條件(即,為非對(duì)齊的),則處理進(jìn)行至步驟68,其中在步驟68觸發(fā)通用非對(duì)齊存取響應(yīng)。圖4示出了可使用的虛擬機(jī)實(shí)施方式。盡管先前描述的實(shí)施例以用于操作支持相關(guān)技術(shù)的特定處理硬件的裝置和方法的方式實(shí)施本發(fā)明,但也可以提供所謂的硬件設(shè)備的虛擬機(jī)實(shí)施方式。這些虛擬機(jī)實(shí)施方式在運(yùn)行主機(jī)操作系統(tǒng)520的主機(jī)處理器530上運(yùn)行,該主機(jī)操作系統(tǒng)支持虛擬機(jī)程序510。通常,需要非常強(qiáng)大的處理器來提供以合理的速度執(zhí)行的虛擬機(jī)實(shí)施方式,但此方法在特定的情況中會(huì)受到考驗(yàn),例如當(dāng)由于兼容性或重使用的理由需要在另一處理器執(zhí)行代碼時(shí)。虛擬機(jī)程序510提供至應(yīng)用程序500的應(yīng)用程序接口,該應(yīng)用程序接口與由實(shí)際硬件所提供的應(yīng)用程序接口相同,該實(shí)際硬件為由虛擬機(jī)程序510模仿的設(shè)備。因此,程序指令(包括前文所描述的存儲(chǔ)器存取的控制)可從在應(yīng)用程序500內(nèi)執(zhí)行,應(yīng)用程序500使用虛擬機(jī)程序510來模擬它們與虛擬機(jī)硬件之間的互動(dòng)。權(quán)利要求1.一種用于處理數(shù)據(jù)的裝置,該裝置包括處理電路,該處理電路響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作;堆棧指針寄存器,該堆棧指針寄存器耦接至所述處理電路并且被配置為存儲(chǔ)指示堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器內(nèi)的地址的堆棧指針值;堆棧對(duì)齊查核電路,該堆棧對(duì)齊查核電路耦接至所述處理電路和所述堆棧指針寄存器,并且被配置為響應(yīng)指定在所述堆棧指針值指定的地址對(duì)所述堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行存儲(chǔ)器存取的程序指令,檢測所述堆棧指針值是否匹配預(yù)定堆棧對(duì)齊條件;對(duì)齊查核控制電路,該對(duì)齊查核控制電路耦接至所述堆棧對(duì)齊查核電路并且響應(yīng)于堆棧配置參數(shù)而獨(dú)立于在存儲(chǔ)器存取時(shí)執(zhí)行的進(jìn)一步的對(duì)齊查核,選擇性地停用所述堆棧對(duì)齊查核電路。2.如權(quán)利要求1所述的裝置,其中所述進(jìn)一步的對(duì)齊查核包括對(duì)于所有的存儲(chǔ)器存取的對(duì)齊查核。3.如權(quán)利要求1所述的裝置,其中所述堆棧存儲(chǔ)器存取是下列操作中的一者(i)堆棧壓入操作,該堆棧壓入操作從所述堆棧指針值指定的堆棧地址的頂部開始將一個(gè)或多個(gè)數(shù)據(jù)數(shù)值存儲(chǔ)至所述堆棧存儲(chǔ)器并且更新所述堆棧指針值以指示堆棧地址的新頂部;以及()堆棧彈出操作,該堆棧彈出操作從所述堆棧指針值指定的堆棧地址的頂部開始從所述堆棧存儲(chǔ)器讀取一個(gè)或多個(gè)數(shù)據(jù)數(shù)值并且更新所述堆棧指針值以指示堆棧地址的新頂部。4.如權(quán)利要求2和3中的任一項(xiàng)所述的裝置,包括通用對(duì)齊查核電路,該通用對(duì)齊查核電路耦接至所述處理電路并且被配置為響應(yīng)指定在任意存儲(chǔ)器地址對(duì)所述存儲(chǔ)器進(jìn)行通用存取的程序指令,檢測所述地址是否匹配預(yù)定通用對(duì)齊條件。5.如權(quán)利要求4所述的裝置,其中所述對(duì)齊查核控制電路耦接至所述通用對(duì)齊查核電路,并且響應(yīng)于通用配置參數(shù)而獨(dú)立于在使用所述堆棧指針值進(jìn)行堆棧存儲(chǔ)器存取時(shí)由所述堆棧對(duì)齊查核電路執(zhí)行的對(duì)齊查核,選擇性地停用所述通用對(duì)齊查核電路。6.如前述權(quán)利要求中的任一項(xiàng)所述的裝置,其中所述預(yù)定堆棧對(duì)齊條件包括所述堆棧指針值為下列情況中的一者不加限制;2N的整數(shù)倍,其中N為非零整數(shù)值。7.如權(quán)利要求6所述的裝置,其中N為3和4中的一者。8.如權(quán)利要求4和5中的任一項(xiàng)所述的裝置,其中N在用戶控制下設(shè)定。9.如前述權(quán)利要求中的任一項(xiàng)所述的裝置,包括多個(gè)堆棧指針寄存器,其中每個(gè)堆棧指針寄存器存儲(chǔ)相應(yīng)的堆棧指針值,并且其中所述處理電路被配置為在多個(gè)異常級(jí)進(jìn)行操作,每個(gè)異常級(jí)與所述多個(gè)堆棧指針寄存器中的相應(yīng)的一個(gè)相關(guān)聯(lián)以供所述處理電路在該異常級(jí)進(jìn)行操作時(shí)使用,并且每個(gè)異常級(jí)具有相應(yīng)的用以控制堆棧對(duì)齊查核電路是否在該異常級(jí)被停用的堆棧配置參數(shù)。10.一種用于處理數(shù)據(jù)的裝置,該裝置包括處理構(gòu)件,該處理構(gòu)件用于響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作;堆棧指針構(gòu)件,該堆棧指針構(gòu)件用于存儲(chǔ)堆棧指針值,其中所述堆棧指針構(gòu)件耦接至所述處理構(gòu)件且所述堆棧指針值指示堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器內(nèi)的地址;堆棧對(duì)齊查核構(gòu)件,該堆棧對(duì)齊查核構(gòu)件用于查核對(duì)齊,所述堆棧對(duì)齊查核構(gòu)件耦接至所述處理構(gòu)件和所述堆棧指針構(gòu)件,并且被配置為響應(yīng)指定在所述堆棧指針值指定的地址對(duì)所述堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行存儲(chǔ)器存取的程序指令,檢測所述堆棧指針值是否匹配預(yù)定堆棧對(duì)齊條件;對(duì)齊查核控制構(gòu)件,該對(duì)齊查核控制構(gòu)件用于控制對(duì)齊查核,所述對(duì)齊查核控制構(gòu)件耦接至所述堆棧對(duì)齊查核構(gòu)件,并且響應(yīng)于堆棧配置參數(shù)而獨(dú)立于在存儲(chǔ)器存取時(shí)執(zhí)行的進(jìn)一步的對(duì)齊查核,選擇性地停用所述堆棧對(duì)齊查核構(gòu)件。11.一種處理數(shù)據(jù)的方法,該方法包括以下步驟響應(yīng)于程序指令而執(zhí)行數(shù)據(jù)處理操作;在堆棧指針寄存器中存儲(chǔ)指示堆棧數(shù)據(jù)儲(chǔ)存裝置的存儲(chǔ)器內(nèi)的地址的堆棧指針值;響應(yīng)于指定在所述堆棧指針值指定的地址對(duì)所述堆棧數(shù)據(jù)儲(chǔ)存裝置進(jìn)行存儲(chǔ)器存取的程序指令,檢測所述堆棧指針值是否匹配預(yù)定堆棧對(duì)齊條件;響應(yīng)于堆棧配置參數(shù),獨(dú)立于在存儲(chǔ)器存取時(shí)執(zhí)行的進(jìn)一步的對(duì)齊查核而選擇性地忽略該檢測步驟。12.如權(quán)利要求11所述的方法,其中所述進(jìn)一步的對(duì)齊查核包括對(duì)于所有的存儲(chǔ)器存取的對(duì)齊查核。13.如權(quán)利要求11和12中的任一項(xiàng)所述的方法,其中所述堆棧存儲(chǔ)器存取是下列操作中的一者(i)堆棧壓入操作,該堆棧壓入操作從所述堆棧指針值指定的堆棧地址的頂部開始將一個(gè)或多個(gè)數(shù)據(jù)數(shù)值存儲(chǔ)至所述堆棧存儲(chǔ)器并且更新所述堆棧指針值以指示堆棧地址的新頂部;以及()堆棧彈出操作,該堆棧彈出操作從所述堆棧指針值指定的堆棧地址的頂部開始從所述堆棧存儲(chǔ)器讀取一個(gè)或多個(gè)數(shù)據(jù)數(shù)值并且更新所述堆棧指針值以指示堆棧地址的新頂部。14.如權(quán)利要求11、12和13中的任一項(xiàng)所述的方法,包括以下步驟通用對(duì)齊查核電路響應(yīng)于指定在任意存儲(chǔ)器地址對(duì)所述存儲(chǔ)器進(jìn)行通用存取的程序指令,檢測所述地址是否匹配預(yù)定通用對(duì)齊條件。15.如權(quán)利要求14所述的方法,其中響應(yīng)于通用配置參數(shù),獨(dú)立于在使用所述堆棧指針值進(jìn)行堆棧存儲(chǔ)器存取時(shí)執(zhí)行的對(duì)齊查核,選擇性地停用所述通用對(duì)齊查核。16.如權(quán)利要求11至15中的任一項(xiàng)所述的方法,其中所述預(yù)定堆棧對(duì)齊條件包括所述堆棧指針值為下列情況中的一者不加限制;2N的整數(shù)倍,其中N為非零整數(shù)值。17.如權(quán)利要求16所述的方法,其中N為3和4的一者。18.如權(quán)利要求16和17中的任一項(xiàng)所述的方法,其中N在使用者控制下設(shè)定。19.如權(quán)利要求11至18中的任一項(xiàng)所述的方法,包括以下步驟將多個(gè)堆棧指針值存儲(chǔ)在各個(gè)堆棧指針寄存器中并且在多個(gè)異常級(jí)進(jìn)行操作,其中每個(gè)異常級(jí)與所述多個(gè)堆棧指針寄存器中的相應(yīng)的一個(gè)相關(guān)聯(lián)以供所述處理電路在該異常級(jí)進(jìn)行操作時(shí)使用,每個(gè)異常級(jí)具有用以控制堆棧對(duì)齊查核是否在該異常級(jí)執(zhí)行的相應(yīng)的堆棧配置參數(shù)。20.一種包括控制計(jì)算機(jī)執(zhí)行如權(quán)利要求11至19中任一項(xiàng)所述的方法的計(jì)算機(jī)程序的虛擬機(jī)。全文摘要數(shù)據(jù)處理系統(tǒng)(2)包括堆棧指針寄存器(26、28、30、32),該堆棧指針寄存器存儲(chǔ)用在對(duì)于堆棧數(shù)據(jù)儲(chǔ)存裝置(44、46、48、50)的堆棧存取操作中的堆棧指針值。被選擇性地停用的堆棧對(duì)齊查核電路(36)可被提供,用以查核與堆棧存儲(chǔ)器存取相關(guān)聯(lián)的堆棧指針值的存儲(chǔ)器地址對(duì)齊。堆棧對(duì)齊查核電路(36)的動(dòng)作獨(dú)立于就所有的存儲(chǔ)器存取而執(zhí)行的任何進(jìn)一步的其他對(duì)齊查核。因此,可提供通用對(duì)齊查核電路(38),并可就任何的存儲(chǔ)器存取對(duì)該通用對(duì)齊查核電路(38)獨(dú)立地選擇性停用。文檔編號(hào)G06F9/318GK103052942SQ201180038097公開日2013年4月17日申請(qǐng)日期2011年6月13日優(yōu)先權(quán)日2010年8月12日發(fā)明者理查德·羅伊·格里森思懷特申請(qǐng)人:Arm有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1