當堆棧操作未對準的硬件支持作為任選部件時,處理器利用單個系統堆棧指針建立監控器和用戶二者的堆棧操作的記錄。單個系統堆棧指針作為自對準堆棧指針用于把它自己自動地對準到低于當前地址的最近的模4余0地址,從而即使在沒有硬件支持未對準操作數的情況下也不會發生對準系統錯。一旦發生了自動對準,數據處理器在異常事件堆棧幀中存儲一個格式字段以指示在出錯時刻堆棧指針對準的有關信息,當對異常事件的服務完成時,把堆棧指針恢復到原來值。(*該技術在2017年保護過期,可自由使用*)
【技術實現步驟摘要】
本專利技術一般涉及數據處理系統,特別是涉及數據處理系統中的堆棧指針。在數據處理系統中,堆棧指針通常是硬件寄存器,用作限定程序變量和臨時存儲的存儲器位置的存儲器地址指針。通常,硬件使用程序設計模型中一個或多個寄存器作為系統堆棧指針。在許多系統中,在執行某些操作期間,堆棧指針由指令集隱含使用。通常,該地址寄存器定義了當前堆棧幀的頂,在此操作數通過將數據“推進”存儲器堆棧而在各函數之間傳送。該推進操作包括將堆棧指針減“1”,然后將數據拷貝到新堆棧指針地址定義的位置。在例行程序使用了該數據之后,通過簡單地將堆棧指針加“1”使其恢復到原來值,而再分配該數據。該過程稱為“彈出”堆棧。由于這些堆棧指針通常定義了存儲器地址,用戶程序例行處理限定堆棧頂的堆棧指針內容。各類長度的操作數,如字節、字、長字,都可能被推入堆棧,這樣在任何時候堆棧頂都可能指向任何允許的對準。據說在任何操作數地址對準上提供任何操作數長度的自動硬件支持的處理器也支持未對準。如果操作數的存儲器地址與其自然邊界不對應,則稱該操作數未對準。自然邊界簡單地定義成一個對操作數長度模運算余0的地址。例如,如果存儲器字節地址是模2余0則16位字操作數是對準的,如果存儲器字節地址是模4余0則32位長字是對準的。不符合這種定義的對準會產生未對準操作數。大多數處理器包括對各種異常事件處理的硬件支持。這些異常事件,也稱為故障,通常包括中斷、系統調用和算術運算錯誤條件。也可能發生其他異常事件。通常在檢測到異常事件時,處理器將在發生故障時在描述機器環境的系統堆棧頂部產生一特殊的異常事件幀。在產生該異常事件堆棧幀之后,處理器通過將控制傳送給異常事件類型確定的指令地址,而將控制傳送給特殊異常事件處理例程。通常異常事件處理例程將處理可能會啟動某些校正動作的故障,然后返回到異常事件發生時執行的應用程序。大多數處理器使用某種類型的出錯檢測,這樣在處理任何其他異常事件期間發生的某些災難性故障狀態會導致整個系統失效從而使處理器停止工作。災難性故障狀態這一特殊的集合包括在某些邊界上系統堆棧指針的對準。為了補償這種可能性,現有技術已實施了一些不同的解決方案,它們要求大量的硬件。例如,大多數現有技術解決方案要求能夠確保無操作數未對準的硬件電路。該方案通常要求基于處理器操作模式的多堆棧指針。該操作模式通常定義與執行程序有關的特權級,其最簡單形式通常包括兩級特權監督者(最高特權)和用戶(最低特權)。在監督方式中執行提供對系統所有資源的訪問,而用戶方式中執行不能訪問某些硬件資源。此外,許多處理器在數據處理系統中提供專用硬件電路來強制所需的堆棧指針的對準。注意,在每種現有技術方案中,都需要專用硬件電路和相應的額外開銷。對于無法實施這種昂貴的硬件電路的數據處理系統,已開發出軟件解決方案。在使用這種軟件方案時,不允許并發異常事件。換句話說,一旦數據處理系統已經獲取了一個異常事件,則不允許其他異常事件。在這種情況下,如果另一異常事件不能被標記和確認,則機器環境的狀態和程序計數器信息將被重寫。于是,數據處理系統將不能回到處理第一個異常事件之前的狀態。在第二種類型的現有技術系統中,數據處理系統無法有效地正確處理所有異常事件?,F有技術的解決方案需要大量額外的硬件電路,以在確認和處理完異常事件之后將數據處理系統恢復到其初始狀態。于是需要這樣一種解決方案它使數據處理系統的設計者有選擇地包括用于操作數未對準的硬件支持,同時又能保證數據處理系統無論系統堆棧指針是否對準都能正確地處理所有的異常事件并在處理了異常事件之后恢復初始狀態。附圖說明圖1以方框圖形式顯示根據本專利技術一個實施例的數據處理系統;圖2以方框圖形式顯示圖1所示數據處理系統的中央處理單元部分;圖3以方框圖形式顯示圖2所示中央處理單元的取操作數電路;圖4以方框圖形式顯示圖3所示取操作數電路的寄存器存儲器電路(register file circuit);圖5以方框圖形式顯示圖2所示中央處理單元的地址產生執行電路;圖6以方框圖形式顯示圖4所示地址產生執行電路的另一個執行機構的一部分;圖7以方框圖形式顯示用于多個截棧指針SP寄存器值的一個異常事件堆棧幀結構;以及圖8以方框圖形式顯示包括4位格式字段的一個異常事件堆棧幀的結構。本專利技術提供一種數據處理器以及操作一個數據處理系統的方法,在該系統中當把硬件支持堆棧操作數對準作為一種可選功能時,可以使用單個系統堆棧指針來建立系統和用戶堆棧操作二者的記錄。該單個系統堆棧指針被用作為自對準堆棧指針。簡單地說,這個自對準堆棧指針自動地把自己對準到當前地址設置之下的最近的模4余0(0-modulo-4)地址,從而即使當沒有硬件支持未對準操作數時也不會發生系統錯誤。一旦發生了自動對準,本專利技術的數據處理器便在一個異常事件堆棧幀中存儲一個4位格式字段(field),以指示關于出錯時堆棧指針對準的信息。當已經對異常事件提供了服務并執行從異常事件返回(RTE)指令時,處理器使用這個存儲在異常事件堆棧幀中的4位格式字段,以把堆棧指針恢復到異常事件發生時它的原來值。本專利技術提供一種數據處理器和操作方法,其中使用單一堆棧指針來支持一個數據處理系統的監控和用戶二個堆棧區。再有,在本專利技術中可以采用專用于操作數未對準的硬件,但不是必需的。這一單個堆棧指針對自己對準的能力允許數據處理器保證當發生異常事件而堆棧指針未對準時也不會使數據處理系統出現災難性錯誤。下面將更詳細地討論本專利技術的操作。在下面的討論中將更詳細地提供采用本專利技術的數據處理系統的連接和操作情況。本專利技術的連接在下面描述本專利技術的連接時,將使用“總線(bus)”一詞代表可能用于傳送一種或多種類型信息(諸如數據、地址、控制、或狀態)的一組信號或導線。術語“認定(assert)”和“否定(negate)”將用于表示一個信號、狀態位、或類似裝置分加進入了它的邏輯真或邏輯偽狀態。如果邏輯真狀態是邏輯電平1,則邏輯偽狀態將是邏輯電平0。而如果邏輯真狀態是邏輯電平0,則邏輯偽狀態將是邏輯電平1。再有,如果在一個數字前冠以“$”符號,則表明這個數是以其16進制形式或者說以16為基的形式表示的。在數字前冠以“%”符號,則表明這個數是以其2進制形式或者說以2為基的形式表示的?,F在參考圖1,圖1顯示了根據本專利技術一個實施例的數據處理系統5。數據處理系統5由數據處理器3和外部開發系統7組成。數據處理器3包括系統總線控制器8、處理器核心9、從動模塊12、從動模塊13、主控模塊14、以及調試模塊10。系統總線控制器8通過E-總線與一外部設備(這里未畫出)相連。系統總線控制器8通過S-總線與從動模塊12及從動模塊13相連。S-總線是從動模塊總線。系統總線控制器8通過M-總線23與處理器核心9及主控模塊14相連。M-總線23是主控模塊總線。處理器核心9由中央處理單元(CPU)2、存儲器管理單元(MMU)/控制器4、以及存儲器6組成。在處理器核心9中也可以有選擇地包括一個操作數未對準單元5。中央處理單元2、MMU/控制器4、存儲器6以及調試模塊10通過K-總線25彼此相連。中央處理單元2和存儲器6還直接與MMU/控制器4相連。MMU/控制器4通過M-總線23向數據處理系統5的其余部分提供信息。中央處理單元2與調試模塊10本文檔來自技高網...
【技術保護點】
一個數據處理系統的運轉方法,其特點在于如下步驟:接收表明已發生第一預定狀態的第一信號;從堆棧指針寄存器中取出當前地址值;將當前地址值對準到當前地址值以下的最近的模4余0(0-modulo-4)地址;以及在一存儲器中存儲-格式 字段,該格式字段指明在接收表明已發生第一預定狀態的第一信號時當前地址值對準的方式。
【技術特征摘要】
...
【專利技術屬性】
技術研發人員:約瑟夫C西爾塞羅,杰弗遜高金科,
申請(專利權)人:摩托羅拉公司,
類型:發明
國別省市:US[美國]
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。