專利名稱:數據處理指令的許可檢查的制作方法
技術領域:
本公開總體上涉及數據處理系統,更具體來講,涉及數據處理系統中的目標裝置的訪問許可。
背景技術:
在實現網絡的多處理器或多芯數據處理系統中,使用多個計數器來保持需要各種功能的統計,諸如遞增、遞減和讀改寫操作。因為多個芯可以嘗試同時更新同一計數器,所以產生了網絡延遲并且消耗了大量資源。通常需要用于執行原子更新(即,不間斷的連續更新)的機制。常規的原子更新機制(諸如使用軟件旗語或軟件鎖)會造成系統延遲。為了減少系統延遲,可以使用統計加速器。然而,在單個事務中,通常不能將足夠的信息發送到統計加速器來描述原子操作。因為計數器位大小可以大于處理器內的寄存器的大小,所以在多個存儲訪問更新計數器的子段時還使用鎖變量來限制對計數器的訪問。當芯需要獲得計數器的所有權來進行原子更新時,對于每個鎖變量而言,可能經過大量的數據處理循環。處理器必須使用處理循環來得到鎖變量,等待鎖變量被釋放(如果該鎖變量已經被另一處理器獲取),執行計數器更新并且釋放鎖變量。由此,系統速度和性能劣化。
本發明以示例方式示出并且不受附圖限制,在附圖中,類似的參考標號表示類似的元素。附圖中的元素是為了簡便和清晰起見示出的并且不必按比例繪制。圖1以框圖形式示出根據本發明一個實施例的數據處理系統;圖2以框圖形式示出根據本發明一個實施例的圖1中的數據處理系統的示例性處
理器;圖3以框圖形式示出圖1中的數據處理系統的一部分,其示出了根據本發明一個實施例的處理器和智能存儲器;圖4以圖表形式示出根據本發明一種形式的用于實現遠離處理器的原子作業的數據處理指令;圖5以圖表形式示出根據本發明一種形式的事務旁路(lookaside)緩沖(TLB)條目;圖6以圖表形式示出從處理器傳遞到圖3所示智能存儲器的一部分信息;圖7以表格形式示出圖3中的智能存儲器所使用的指令操作的示例性編碼;圖8以流程圖形式示出根據本發明的處理具有許可信息的指令的示例性方法;以及圖9以流程圖形式示出根據本發明的使用來自處理器的信息來執行許可檢查的示例性方法。
具體實施例方式在此描述了一種用于操作具有處理器和目標裝置的數據處理系統的方法,所述目標裝置是來自處理器的信息的目標或接收者。處理器和目標裝置經由系統互連來通信。處理器執行或處理指令。作為指令執行的一部分,處理器確定與指令相關聯的指令操作和地址。通過處理器基于指令來確定裝飾值。裝飾值或裝飾是提供到諸如存儲器的目標裝置的信息,用于執行裝飾存儲操作。裝飾值被從處理器的通用寄存器中的存儲提供并且連同經轉換的地址傳遞到目標裝置,所述地址指示由指令執行導致的目標位置。裝飾值是到目標裝置的命令,用于除了所執行的指令的主要功能之外的功能。例如,所執行的指令可以是從目標存儲位置加載數據或將數據存儲到目標存儲位置,并且裝飾值可以是用于遞增目標位置或用于將目標位置數據乘以另一操作數的命令。應該理解,可以響應于裝飾值,由目標裝置來實現各種附加或替代的處理功能中的任一個。裝飾值通常不由處理器來解釋,并且給定的裝飾值可以根據指令的目標位置來執行需要不同訪問許可的不同操作。注意的是,不是所有的加載和存儲指令都提供裝飾值。在一個實施例中,提供了單獨的加載、存儲、帶裝飾的加載和帶裝飾的存儲指令類型。如在此使用的,術語“總線”是一種系統互連,并且用于指代可用于傳遞諸如數據、 地址、控制或狀態的一種或多種類型信息的多個信號或導體。可以參照作為單個導體、多個導體、單向導體或雙向導體來示出或描述如在此所討論的導體。然而,不同的實施例可以變化導體的實現方式。例如,可以使用單獨的單向導體而非雙向導體,反之亦然。另外,可以用串行或者以時分復用方式傳遞多個信號的單個導體來替代多個導體。同樣,攜載多個信號的單個導體可以被分成攜載這些信號的子集的各種不同導體。因此,對于傳遞信號而言, 存在許多選擇。當參照使信號、狀態位或類似設備分別為其邏輯真或邏輯假狀態時,在此使用三術語“斷言”或“設置”和“否定”(或“去斷言”或“清除”)。如果邏輯真狀態是邏輯電平 1,則邏輯假狀態是邏輯電平0。并且,如果邏輯真狀態是邏輯電平0,則邏輯假狀態是邏輯電平1。圖1以框圖形式示出根據本發明一個實施例的數據處理系統10。數據處理系統10 包括處理器12、系統互連或系統總線14、存儲器16和多個外圍裝置,諸如外圍裝置18、外圍裝置20、智能存儲器40,以及在一些實施例中,由圖1中的將外圍裝置18與外圍裝置20分開的點指示的額外的外圍裝置。智能存儲器40通過雙向多個導體耦合到系統總線14。存儲器16是通過雙向導體耦合到系統總線14的系統存儲器,所述雙向導體的一種形式為具有多個導體。智能存儲器40是用于特定指令執行的處理器12的目標裝置,如以下將說明的。在所圖示形式中,外圍裝置18和20中的每個通過雙向多個導體耦合到系統總線14,如處理器12 —樣。注意的是,存儲器16可以是任何類型的存儲器,并且外圍裝置18和20均可以是任何類型的外圍裝置或器件。在一個實施例中,所有的數據處理系統10都在單個集成電路上。可供選擇地,可以使用多于一個集成電路來實現數據處理系統10。在一個實施例中,至少所有處理器12都在單個集成電路上。在另一種形式中,系統總線14代表有線互連,并且處理器12可以物理上遠離諸如智能存儲器40的目標裝置。在替代實施例中,可能存在諸如智能存儲器40的多個智能模塊。在操作中,處理器12用于通過執行多個數據處理指令來實現各種數據處理功能。不在處理器12內的由處理器12所需的信息被存儲在存儲器16或智能存儲器40中。在一個實施例中,存儲器16和智能存儲器40被稱作外部存儲器。智能存儲器40是包括額外電路的存儲器,所述額外電路用于執行計算以及實現存儲器常規執行的常規數據存儲功能。 智能存儲器40響應于存儲位置訪問而執行的計算是特定于實現的,并且在各種實施例中可以有所不同。在一種形式中,計算以原子方式被執行,原子方式意味著計算是不間斷的, 并且計算是在允許對被計算修改的存儲位置進行下一訪問請求之前完成。原子計算的示例包括但不限于原子遞增或原子遞減。圖2以框圖形式示出處理器12的示例性構造。系統總線14經由雙向多位導體耦合到總線接口單元(BIU) 34,以通信信號15。總線接口單元34經由雙向多位導體耦合到存儲器管理單元(MMU)42。在存儲器管理單元42內的是事務旁路緩沖(TLB)50,其具有諸如TLB條目52的多個條目。總線接口單元34還經由雙向多位導體耦合到指令獲取單元 26和存儲器管理單元(MMU)42兩者。指令獲取單元沈經由雙向多位導體耦合到指令管道 (管)22。指令管道22經由雙向多位導體耦合到多個執行單元對,并且指令管道22經由雙向多位導體耦合到控制電路觀。指令獲取單元26經由雙向多位導體耦合到控制電路28。 存儲器管理單元42經由雙向多位導體耦合到控制電路28。控制電路觀經由雙向多位導體耦合到執行單元M。總線接口單元34經由雙向多位導體耦合到控制電路觀。存儲器管理單元42經由雙向多位導體耦合到執行單元M。控制電路觀包括機器狀態寄存器31。在機器狀態寄存器31內的是被標為S的具有管理位四的寄存器。管理位四的邏輯狀態確定處理器12是管理員模式還是用戶模式。執行單元M經由雙向多位導體耦合到通用寄存器30。通用寄存器30經由雙向多位導體耦合到加載/存儲單元32。加載/存儲單元32 經由雙向多位導體分別耦合到控制電路觀、存儲器管理單元42和總線接口單元34以及指令管道22和執行單元對。在操作中,處理器12經由系統總線14和總線接口單元34接收指令。由指令獲取單元沈從總線接口單元34獲取指令并且將指令耦合到指令管道22。指令管道22將指令解碼并且對控制電路觀和指令單元24進行控制,以執行指令。在圖4中示出加載/存儲指令的格式示例,其中指令300具有多種字段。字段302保存指令操作代碼(操作碼),所述操作代碼識別何種類型的操作與指令相關聯。字段304、306和308是用于分別保存作為通用寄存器30內的寄存器的寄存器指示符RT、RA和RB的寄存器字段。對于某種類型的加載/存儲指令(經裝飾加載或經裝飾存儲),寄存器A(RA)保存具有以下將說明的含義和目的的裝飾值。寄存器B(ΙΦ)包含虛擬地址值。由加載/存儲單元32將虛擬地址耦合到存儲器管理單元42的事務旁路緩沖(TLB) 50,以被轉換成物理地址。字段310是用于進一步定義與指令相關聯的操作的子操作碼字段。在一個實施例中,子操作碼字段用于將裝飾加載和存儲指令類型與正常加載和存儲指令類型區分開。對于正常加載或存儲指令類型,寄存器RB可以保存索引值,該索引值將被添加到在寄存器RA中包含的地址值,或者可以不使用寄存器RB。對于存儲型指令,寄存器T(RT)保存待被存儲到目標裝置的數據。對于加載型指令,寄存器T (RT)指示用于保存加載操作結果的目的寄存器。在圖5中提供了每個TLB條目的一種形式的示例,其中示出了 TLB條目52的細節。 TLB條目52具有存儲的虛擬地址M。如果加載/存儲單元32提供的虛擬地址與虛擬地址 M匹配,則存儲器管理單元42選擇TLB條目52。TLB條目52對由加載/存儲單元32提供
6的虛擬地址進行虛擬-物理地址轉換,并且提供頁屬性和訪問許可值。TLB條目52具有相關聯的物理地址56和頁大小58,該頁大小58定義物理地址56所處存儲器中的頁的存儲大小。在TLB條目52內包括多個許可60。如果管理員閱讀SR許可位被斷言,則SR許可將允許在管理員模式下對目標裝置進行讀操作。如果管理員寫SW許可被斷言,則SW許可將允許在管理員模式下對目標裝置進行寫操作。如果管理員執行SX許可位被斷言,則SX 許可將允許在管理員模式下目標裝置內的地址處執行指令。如果用戶讀UR許可位被斷言, 則UR許可將允許在用戶模式下對目標裝置進行讀操作。如果用戶寫UW許可位被斷言,則 UW許可將允許在用戶模式下時對目標裝置進行寫操作。如果用戶執行UX許可位被斷言,則 UX許可將允許在用戶模式下在目標裝置內的地址處執行指令。TLB條目還包含多個頁屬性 62。可以提供各種屬性。作為示例,包括形成首字母縮拼詞WIMGE的以下屬性W透寫式高速緩沖存儲操作I高速緩沖存儲禁止操作M所需的存儲一致性G防護(其中將對易失性存儲裝置進行訪問)E字節序(endianness)(存在大字節序(big-endian)還是存在小字節序 (little-endian))應該理解,這些通用屬性只是以示例的方式提供的,可以包括任何其它屬性來補充或替代所示出的頁屬性62。對于正常加載或存儲指令而言,如果加載/存儲單元32確定結合從TLB 50的TLB條目52得到的許可不允許指令操作類型,則由控制電路觀產生異常并且由處理器12開始異常處理。例如,如果,如具有“0”值的機器狀態寄存器31的S位四所指示的,處理器12以用戶模式進行操作,并且指令是加載操作指令,則來自TLB條目 52的許可位UR(用戶模式讀許可)必須被設置成允許發生由加載指令執行的讀操作。同樣,如果指令是存儲指令,則來自TLB條目52的許可位UW(用戶模式寫許可)必須被設置成允許發生由存儲指令執行的寫操作。當使用SR和SW許可位以管理員模式6位四等于 “1”)進行操作時執行類似的檢查。在不存在關于正常加載或存儲指令的所需許可的情況下,處理器12將中止加載或存儲操作,并且不發生物理地址和屬性到指令所指定的目標裝置的傳輸。如對于正常加載或存儲指令的情況可以看到的,在經由系統互連14允許開始訪問目標裝置之前,在處理器12內執行對訪問類型的所有許可評價。然而,在一些實施例中, 不對裝飾加載和裝飾存儲指令執行由加載/存儲單元32執行的正常許可檢查操作。在這種實施例中,處理器12不知道經由裝飾值接收裝飾命令的裝置將執行的實際操作,因此, 處理器12沒有準確的機制用于使用在轉換裝飾加載或裝飾存儲指令的訪問地址時通過匹配TLB條目52提供的許可值來實施訪問許可。替代地,在地址轉換過程期間由TLB條目52 提供的這些訪問許可被提供到目標裝置以進行解釋,并且目標裝置內的下一訪問或操作是基于裝飾值指定的操作所需的實際訪問類型。在這種情況下,處理器12的加載/存儲單元 32不實施對于裝飾加載或裝飾存儲指令的訪問許可,而是提供處理器12外部的許可信息, 以由目標裝置進行評估,如將在圖3的討論中進一步示出的。注意的是,在實際需要更廣泛許可但不能在處理器12內對其單獨確定的情況下,替代實施例可以選擇在處理器12內本地地以及在目標裝置處實施許可,因為要執行的實際操作沒有完全被處理器12得知。圖3中示出經由系統總線14將處理器12和智能存儲器40直接連接的一種形式的進一步細節,包括智能存儲器40的細節。智能存儲器40具有經由單獨的單向導體耦合到控制單元72的存儲器陣列70。裝飾解碼電路76具有耦合到控制單元72的第一輸出和耦合到許可檢查電路74的輸入的第二輸出。許可檢查電路74具有耦合到控制單元72的輸入的輸出。控制單元72的輸出經由系統總線14向處理器12提供響應反饋。在操作中,處理器12向智能存儲器40提供圖6中的信息601。提供與存儲器陣列70內的位置對應的物理地址。提供與物理地址相關聯的屬性。如圖6中所示,如果有的話,這些屬性包括例如管理員或用戶屬性、讀/寫(R/W)屬性、大小屬性、高速緩沖存儲禁止 (Cl)屬性、透寫(WT)屬性、所需的存儲器一致性屬性和其它可能的屬性。應該注意的是,不是要提供所有示出的屬性。如以下將描述的,還向智能存儲器40提供許可信息。對于存儲型指令,還提供存儲數據。另外,還向智能存儲器40提供裝飾信息。在所示出的形式中,智能存儲器40包括控制單元72,所述控制單元72能夠對存儲器陣列70中存儲的信息執行各種處理功能。執行的是哪一個特定的預定處理功能取決于對所提供的裝飾值進行解碼的裝飾解碼電路76的結果,并且在一些實施例中,還可能取決于提供到智能存儲器40的特定物理地址值和屬性。在一個實施例中,使用提供到智能存儲器40的裝飾屬性來指示存儲器訪問請求是裝飾加載或存儲操作而不是正常加載或存儲操作。在替代實施例中,可以解釋特定的預定裝飾值,以指示正請求的是正常加載或存儲操作,在這種情況下,將不執行特殊操作。圖7中示出的是當目標裝置是智能存儲器40時與裝飾加載操作和裝飾存儲操作相關聯的示例性裝飾值的操作表。所述操作表還使與指令操作相關聯的操作所需的許可相互關聯。例如,對于裝飾加載指令,當裝飾值為000時,裝飾操作是需要寫(W)許可的清除位置操作。當裝飾值為000時,將要清除與裝飾加載操作相關聯的被尋址位置。當對于裝飾加載指令裝飾值為001時,裝飾操作是將由與裝飾加載操作相關聯的地址所指定的位置遞增并且提供處于指定位置的最后的值。為了執行該操作,所需的許可是讀(R)許可和寫 (W)許可。當對于裝飾加載指令裝飾值為010時,裝飾操作是讀取由與加載操作相關聯的地址所指定的位置。為了執行該操作,所需的許可是讀(R)許可。當對于裝飾加載指令裝飾值為111時,裝飾操作為空,并且對由與裝飾加載操作相關聯的地址所指定的位置不執行任何操作。為了執行該操作,沒有指定所需的許可。類似地,對于裝飾存儲指令,當裝飾值為000時,裝飾操作是將預定數據值加到由指令地址所指定的位置。為了執行該操作,所需許可是讀(R)許可和寫(W)許可。預定的數據值可以由處理器12作為數據值提供,如對存儲型指令正常提供的,或者可以替代方式由智能存儲器40的控制單元72或裝飾解碼電路 76確定。當裝飾值為001時,裝飾操作是將來自存儲器陣列70中的源位置加到由裝飾存儲的物理地址所指示位置中的值。對于裝飾存儲指令,存儲器陣列40內的源位置可以由處理器12提供的數據值來指示。當用于裝飾存儲指令的裝飾值為111時,裝飾操作是將預定值乘以由指令地址所指定位置中的數據。為了執行該操作,所需許可是寫(W)許可。對于正常加載或正常存儲指令操作,裝飾值被忽略,并且不需要通過圖7中的表條目進行許可檢查。對于這些操作,假設在開始訪問目標裝置之前,處理器12已經檢查了所需許可。應該理解,圖7中的操作表中提供的編碼僅以示例的方式提供。任何數量的位大小可以實現為裝飾值并且可以容易地使用其它類型的指令操作和裝飾操作。智能存儲器的裝飾解碼電路76和許可檢查電路74用于對接收的裝飾加載或裝飾存儲操作進行遠程許可檢查。對于
8每個裝飾值,用于操作的所需許可由裝飾解碼電路76確定并且被提供到許可檢查電路74。 許可檢查電路74將隨訪問請求接收的來自系統互連14的許可值與由裝飾解碼電路76確定的裝飾操作的所需許可相比較,并且確定是否存在足夠的許可來允許發生裝飾加載或存儲操作。如果不存在足夠的許可,則許可檢查電路74告知智能存儲器40的控制電路72應該不發生操作。作為響應,控制單元72經由系統互連14上傳遞的指示已發生異常狀況的響應信號,向處理器12提供響應反饋,并且不對存儲器陣列70執行操作。如果許可檢查電路74執行的檢查的結果指示由接收的指令操作所執行的操作的所需許可和裝飾值是令人滿意的,則將其指示給控制單元72,控制單元72隨后可以繼續所指示的操作并且當成功完成所需操作時可以向處理器20提供正常響應反饋。圖8中示出的是方法800,示出如何執行將具有許可信息的指令傳遞到目標裝置的一種形式。在步驟801中,例如由指令獲取單元沈經由圖2中的總線接口單元34獲取指令。在步驟803中,將指令解碼。在一種形式中,在圖2的指令管道22中發生解碼。在步驟805中,確定經獲取和解碼的指令是否是裝飾加載/存儲指令。如果經解碼的指令不是裝飾加載/存儲指令,則在步驟806中執行與這里描述不同的其它指令處理。如果經解碼的指令是裝飾加載/存儲指令,則在步驟807中,加載/存儲單元32從通用寄存器(GPR) 30 的一個(寄存器A,RA)得到裝飾(即,裝飾命令)。在步驟809中,加載/存儲單元32從通用寄存器(GPR) 30的一個(寄存器B,RB)得到由指令定義的虛擬地址。如果所述操作是裝飾存儲,則加載/存儲單元32在步驟810中從圖3中的通用寄存器(GPR) 30的一個(例如,寄存器T,RT)得到存儲數據值。在步驟811中,在控制電路觀的控制下,加載/存儲單元32用于在存儲器管理單元(MMU)42的事務旁路緩沖(TLB)50中查找或查詢由寄存器B 指定的虛擬地址。識別MMU 42中存儲的虛擬地址與來自寄存器B的虛擬地址的匹配。在 TLB 50的預定TLB條目(例如圖2中的TLB條目52)中存儲匹配的虛擬地址。在步驟813 中,從TLB條目52得到互相關聯的物理地址、許可和頁屬性,并且將其發送到加載/存儲單元32。在步驟815中,經由總線接口單元34和系統互連或系統總線14,將物理地址、屬性、 許可和裝飾發送到所指定的目標裝置。如果所述操作是裝飾存儲,則也將存儲數據發送到系統互連14。對于處理器12的硬件而言,該操作是傳統的加載或存儲操作,并且處理器12 不知道裝飾的功能或其結果。在圖9中示出的是一種方法,示出由目標裝置對發送的信息進行處理以執行許可檢查的一種形式。在步驟901中,目標裝置從系統互連或系統總線14接收物理地址、屬性、 裝飾和許可。在步驟903中,目標裝置使用接收到的裝飾、屬性和物理地址來檢查許可。在步驟905中,目標裝置905確定是否允許裝飾的特定操作。如果不允許所述操作,則實現步驟907,在該步驟中,發出異常并且執行裝置相關錯誤處理。如果允許所述操作,則實現步驟 909,在該步驟中,在所述物理地址處執行由指令和裝飾指定的操作。作為步驟907的一部分,在一個實施例中,可以指示異常并且將其以信號方式返回到系統互連,以被提供到訪問的發起者。在替代實施例中,可以由目標裝置傳遞空響應或諸如全為0的預定數據值,以替代傳遞異常響應。在一個實施例中,如果存在部分許可,則可以執行操作的一部分而不執行其它部分。到現在,應該理解,已提供了一種數據處理系統,其對特定類的存儲器訪問指令實施智能目標裝置處的訪問許可。在一種形式中,目標裝置是具有用于執行除了數據存儲之外的功能的額外電路的存儲器。目標裝置以裝飾值的形式接收命令連同地址和許可。目標裝置實施將作用的特定命令(裝飾值)所需的許可。使用常規或傳統的系統互連協議,因此避免專門的協議擴展。在一種形式中,在將裝飾值解碼之后,不在處理器本地實施許可,而是替代地在目標裝置處實施許可。如果許可檢查部分地成功,則存儲器可以繼續操作并且如果經解碼指令為加載指令,則返回加載數據。如果許可檢查失敗,則中止操作。在目標裝置的許可檢查失敗的情況下,在一種形式中,傳遞錯誤可以由目標裝置產生并且被發送回處理器,并且所請求的操作由目標裝置終止。在另一種形式中,目標裝置可以產生默認值, 例如全0的空值,用于加載到目標裝置的所識別的地址或者用于提供回到發起者。因此,在此提供了一種針對包括裝飾加載和裝飾存儲事務的數據處理事務子集的用于目標裝置的許可檢查操作。可以實現其它類型的裝飾事務。在另一種形式中,處理器12可以可選地執行第一水平許可檢查,以確定是否存在高水平許可,例如,讀許可或寫許可。然而,基于由沒有被處理器12解釋或解碼的裝飾值所指示的操作,目標裝置執行對許可的最終確認。在該可選的實施例中,第一水平許可檢查將使得處理器12開始異常處理并且禁止圖6中的信息 601的傳輸。因為實現本發明的設備大部分由本領域技術人員已知的電子組件和電路組成,所以沒有以比如上所述必須考慮的程度更大的任何程度對電路細節進行說明,以理解和領會本發明的潛在構思并且不混淆或轉移本發明的教導。如可應用的一些以上實施例可以使用各種不同的信息處理系統來實現。例如,盡管圖1和對圖1的討論描述了示例性數據處理架構,但是提供這種示例性構架只是為了在所討論的本發明的各種方面中提供可用的參考。當然,為了討論的目的,簡化了對所述構架的描述,并且這只是可根據本發明使用的許多不同類型的合適構架中的一種。應該理解,邏輯塊之間的邊界只是示例性的并且替代實施例可以合并邏輯塊或電路元件或者將功能的替代分解施加于各種邏輯塊或電路元件。因此,要理解,本文示出的構架只是示例性的,并且事實上,可以實現許多其它構架來實現相同的功能。在此被組合以實現特定功能的任何兩個組件可以被視為彼此“相關聯”,使得實現了所需功能,而與構架或中間組件無關。同樣,如此相關聯的任何兩個元件還可以被視為彼此“可操作地連接”或“可操作地耦合”以實現所需功能。另外,例如,在一個實施例中,所示的數據處理系統10中的元件是位于單個集成電路上或位于同一裝置內的電路。可選擇地,數據處理系統10可以包括彼此互連的任何數量的單獨的集成電路或單獨的裝置。例如,智能存儲器40可以位于與處理器12相同的集成電路上或者位于單獨的集成電路上,或者位于與數據處理系統10的其它元件離散分開的任何外圍或從屬裝置內。外圍裝置18和20還可以位于單獨的集成電路或裝置上。另外, 例如,數據處理系統10或其一部分可以容易地轉變成軟件,作為物理電路的表示或可轉換成物理電路的邏輯表示。如此,數據處理系統10可以按任何合適類型的硬件描述語言來實施。在一種形式中,在此提供了一種用于操作數據處理系統的方法,所述數據處理系統包括經由系統互連耦合的處理器和目標裝置。由處理器處理指令,所述處理包括確定指令操作和地址。處理器基于指令來確定裝飾值。提供與地址相關聯的訪問許可。指令操作的指示、地址、裝飾值和與地址相關聯的訪問許可在事務中經由系統互連發送到目標裝置。在另一種形式中,確定訪問許可包括從處理器的事務旁路緩沖中得到與地址相關聯的訪問許可。在又一種形式中,由目標裝置執行基于訪問許可對指令操作的許可檢查。基于許可檢查的失敗,不執行指令操作。在另一種形式中,目標裝置執行指令操作是基于訪問許可和裝飾值,其中,裝飾值提供將由目標裝置執行的功能作為執行指令操作的一部分。在另一種形式中,通過從指令字段中得到裝飾值來確定裝飾值。在另一種形式中,通過從處理器的寄存器中得到裝飾值來確定裝飾值。在另一種形式中,通過確定寫訪問許可,由處理器來確定訪問許可。在另一種形式中,處理還包括確定指令的屬性。在事務中發送進一步包括在事務中發送屬性。在另一種形式中,指令操作包括由加載操作和存儲操作組成的組中的一個。 由目標裝置執行指令操作。在另一種形式中,目標裝置被實現為存儲器。在另一種形式中,提供了一種操作數據處理系統的方法。目標裝置經由數據處理系統的系統互連接收事務,所述事務由數據處理系統的處理器產生,所述事務包括將由目標裝置執行的指令操作的指示、地址、裝飾值和與地址相關聯的訪問許可。目標裝置基于接收到的訪問許可來確定由裝飾值指定的裝飾操作是否是許可的。在另一種形式中,基于根據確定所述裝飾操作是許可的,由目標裝置執行裝飾操作。在另一種形式中,由目標裝置確定由裝飾值指定的裝飾操作是否是許可的步驟由目標裝置基于裝飾操作來確定要檢查的訪問許可類型來實現。對接收到的訪問許可檢查訪問許可類型。基于接收到的訪問許可的訪問許可類型是否指示裝飾操作是許可的,確定裝飾操作是否是許可的。在另一種形式中, 目標裝置執行對應于地址的指令操作。在另一種形式中,目標裝置被實現為存儲器,其中指令操作是由從存儲器的加載操作或對存儲器的存儲操作組成的組中的一個。在另一種形式中,裝飾操作被實現為包括由以下組成的組中的一個對在由地址指定的位置存儲的值進行加操作,其中指令操作是對所述位置的第二值的存儲操作,其中執行存儲操作和裝飾操作將第二值加到該值以產生結果值,其中結果值存儲在所述位置;以及由地址指定的位置的清除操作,其中指令操作是從所述位置的加載操作,其中在清除操作之前執行指令操作。 在另一種形式中,如果基于確定而確定裝飾操作是不許可的,則不執行指令操作。在另一種形式中,目標裝置以響應方式響應處理器,其中所述響應是基于確定的結果。在另一種形式中,提供了一種操作數據處理系統的方法。數據處理系統的第一裝置產生指令操作的指示、與指令操作相關聯的地址、裝飾值和與地址相關聯的訪問許可。指令操作的指示、地址、裝飾值和與地址相關聯的訪問許可在事務中經由系統互連發送到目標裝置。由目標裝置接收事務。目標裝置基于接收到的訪問許可來確定由裝飾值指定的裝飾操作是否是許可的。在另一種形式中,第一裝置被實現為處理器并且目標裝置被實現為存儲器,其中指令操作是由從存儲器的加載操作或對存儲器的存儲操作組成的組中的一個。在另一種形式中,基于裝飾操作是許可的,由目標裝置執行裝飾操作。此外,本領域的技術人員將認識到,上述操作的功能之間的邊界只是示例性的。多個操作的功能可以被組合成單個操作,和/或單個操作的功能可以被分成額外的操作。此外,替代實施例可以包括特定操作的多個實例,并且在各種其它實施例中,可以改變這些操作的次序。在一個實施例中,數據處理系統10是諸如個人計算機系統的計算機系統。其它實施例可以包括不同類型的計算機系統。計算機系統是信息操縱系統,其可以被設計成向一個或多個用戶提供獨立的計算能力。可能發現計算機系統為多種形式,包括但不限于主機、
11小型計算機、服務器、工作站、個人計算機、筆記本、個人數字助理、電子游戲機、汽車和其它嵌入系統、蜂窩電話和各種其它無線裝置。典型的計算機系統包括至少一個處理單元、相關聯的存儲器和大量輸入/輸出(I/O)裝置。如在此所使用的,術語“耦合”不意在限于直接耦合或機械耦合。此外,如本文所使用的,不加量詞被定義為一個或多于一個。另外,在權利要求中所使用的引語例如“至少一個”和“一個或多個”不應該被理解為意味著不加量詞引入的另一權利要求元素將包含引入的權利要求元素的任何特定權利要求限于只包含一個這樣元素的發明,即使是當同一權利要求包括引語“一個或多個”或“至少一個”以及不加量詞。對于使用明確量詞,也是如此。除非另外說明,否則諸如“第一”和“第二”的術語用于任意區分所述術語所描述的元素。因此,這些術語不必旨在指示這類元素的時間上或其它優先次序。雖然本文中參照特定實施例描述了本發明,但是在不脫離權利要求所闡述的本發明范圍的情況下,可以進行各種修改和變化。例如,可以基于系統要求,修改在地址、屬性、 許可和裝飾字段中使用的位數。與特定操作相關的許可可以變化或修改。因此,說明書和附圖將被視為是示例性的而非限制性的,并且所有的這類修改旨在包括在本發明范圍內。本文中關于特定實施例描述的任何益處、優點或問題的解決方法不旨在被理解為任何或所有權利要求的關鍵、所需或必要的特征或元素。
權利要求
1.一種操作數據處理系統的方法,所述數據處理系統包括經由系統互連耦合的處理器和目標裝置,所述方法包括由所述處理器處理指令,所述處理包括確定指令操作和地址;由所述處理器基于所述指令來確定裝飾值;由所述處理器提供與所述地址相關聯的訪問許可;以及在事務中經由所述系統互連向目標裝置發送所述指令操作的指示、所述地址、所述裝飾值和與所述地址相關聯的所述訪問許可。
2.根據權利要求1所述的方法,其中確定訪問許可包括從所述處理器的事務旁路緩沖得到與所述地址相關聯的所述訪問許可。
3.根據權利要求1所述的方法,進一步包括由所述目標裝置基于所述訪問許可來對所述指令操作執行許可檢查;以及基于所述許可檢查的失敗,不執行所述指令操作。
4.根據權利要求3所述的方法,進一步地,其中由所述目標裝置執行所述指令操作是基于所述訪問許可和所述裝飾值,其中所述裝飾值提供要由所述目標裝置執行的功能作為執行所述指令操作的一部分。
5.根據權利要求1所述的方法,進一步包括通過從所述指令的字段得到所述裝飾值來確定所述裝飾值。
6.根據權利要求1所述的方法,進一步包括通過從所述處理器的寄存器得到所述裝飾值來確定所述裝飾值。
7.根據權利要求1所述的方法,其中由所述處理器確定的所述訪問許可進一步包括確定寫訪問許可。
8.根據權利要求1所述的方法,其中所述處理進一步包括確定所述指令的屬性;以及在事務中發送進一步包括在所述事務中發送所述屬性。
9.根據權利要求1所述的方法,其中所述指令操作包括由加載操作和存儲操作組成的組中的一個,并且進一步包括由所述目標裝置執行所述指令操作。
10.根據權利要求1所述的方法,進一步包括將所述目標裝置實現為存儲器。
11.一種操作數據處理系統的方法,所述方法包括 由目標裝置經由所述數據處理系統的系統互連接收事務,所述事務由所述數據處理系統的處理器產生,所述事務包括將由所述目標裝置執行的指令操作的指示、地址、裝飾值和與所述地址相關聯的訪問許可;以及由所述目標裝置基于接收到的所述訪問許可來確定由所述裝飾值指定的裝飾操作是否是許可的。
12.根據權利要求11所述的方法,進一步包括基于根據確定而得出所述裝飾操作是許可的,由所述目標裝置執行所述裝飾操作。
13.根據權利要求11所述的方法,其中由所述目標裝置確定由所述裝飾值指定的裝飾操作是否是許可的包括所述目標裝置基于所述裝飾操作來確定要檢查的訪問許可類型;對所述訪問許可類型,檢查接收到的所述訪問許可;以及基于接收到的所述訪問許可的所述訪問許可類型是否指示所述裝飾操作是許可的,確定所述裝飾操作是否是許可的。
14.根據權利要求13所述的方法,進一步包括 由所述目標裝置執行對應于所述地址的所述指令操作。
15.根據權利要求11所述的方法,進一步包括將所述目標裝置實現為存儲器,其中所述指令操作是由從所述存儲器的加載操作或對所述存儲器的存儲操作組成的組中的一個。
16.根據權利要求11所述的方法,進一步包括將所述裝飾操作實現為包括由以下組成的組中的一個對在由所述地址指定的位置處存儲的值進行加法操作,其中所述指令操作是第二值到所述位置的存儲操作,其中執行所述存儲操作和所述裝飾操作將所述第二值加到所述值以產生結果值,其中所述結果值被存儲在所述位置;以及由所述地址指定的位置的清除操作,其中所述指令操作是從所述位置的加載操作,其中在所述清除操作之前執行所述指令操作。
17.根據權利要求11所述的方法,進一步包括如果基于所述確定而確定所述裝飾操作是不許可的,則不執行所述指令操作。
18.根據權利要求11所述的方法,進一步包括由所述目標裝置利用響應對所述處理器進行響應,其中所述響應是基于所述確定的結合 ο
19.一種操作數據處理系統的方法,所述方法包括由所述數據處理系統的第一裝置產生指令操作的指示、與所述指令操作相關聯的地址、裝飾值、和與所述地址相關聯的訪問許可;在事務中經由系統互連向目標裝置發送所述指令操作的指示、所述地址、所述裝飾值、 和與所述地址相關聯的所述訪問許可; 由目標裝置接收所述事務;以及由所述目標裝置基于與所述地址相關聯的所述訪問許可來確定由所述裝飾值指定的裝飾操作是否是許可的。
20.根據權利要求19所述的方法,進一步包括將所述第一裝置實現為處理器并且將所述目標裝置實現為存儲器,其中所述指令操作是由從所述存儲器的加載操作或對所述存儲器的存儲操作組成的組中的一個。
21.根據權利要求20所述的方法,進一步包括基于所述裝飾操作是許可的,由所述目標裝置執行所述裝飾操作。
全文摘要
一種數據處理系統,具有處理器(12)和目標裝置(40),其處理裝飾指令(即具有裝飾值的指令)。數據處理系統的裝置例如處理器(12)通過系統互連(14)向目標裝置(40)發送事務。所述事務包括指令操作的指示、與指令操作相關聯的地址、裝飾值(601)(即發送到目標裝置用于執行除了所執行指令的主要功能之外的功能的命令)以及與地址相關聯的訪問許可。目標裝置(40)(例如,具有除了存儲功能之外的功能的存儲器)基于接收到的訪問許可來確定由裝飾值指定的裝飾操作是否是許可的。如果存在合適的許可,則目標裝置(40)執行裝飾操作。
文檔編號G06F9/46GK102197368SQ200980143207
公開日2011年9月21日 申請日期2009年9月30日 優先權日2008年10月28日
發明者加里·L·惠森亨特, 威廉·C·莫耶, 邁克爾·D·斯奈德 申請人:飛思卡爾半導體公司