[發明專利]一種能夠標記存儲器中某些位置的處理器無效
| 申請號: | 200710085936.9 | 申請日: | 2007-02-28 |
| 公開(公告)號: | CN101256480A | 公開(公告)日: | 2008-09-03 |
| 發明(設計)人: | 宋嘉 | 申請(專利權)人: | 歐蜀平 |
| 主分類號: | G06F9/06 | 分類號: | G06F9/06 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 030002山西省太原市府西街*** | 國省代碼: | 山西;14 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 能夠 標記 存儲器 某些 位置 處理器 | ||
技術領域
本文涉及一種數據處理設備,特別是處理器的體系結構設計。
背景技術
許多種現有技術可以對微處理器所訪問的存儲空間中的某些區段賦以一定的屬性,從而達到提高安全性等目的。例如虛擬內存(virtual?memory)技術中提供的頁表。每個頁表的大小從1K字節到4M字節不等,可以單獨標記某個頁表為是否可讀、是否可寫、是否可執行、是否存在于物理內存中等等。例如ARM公司所提供的TrustZone技術,可以標定某段內存空間的特權級,只有進程擁有足夠高的特權級,才能訪問這段空間。這些技術都是基于地址的,即在內存中的特殊區域,或在微處理器中的特殊寄存器中,存儲頁表或內存區段的地址,及其相應的屬性。
頁表和內存區段只能提供對較大的內存區塊的保護。有時候,對較小的內存區塊進行保護也是非常必要的。對于軟件而言,在某些情況下某些內存位置具有特殊的含義和訪問規則,例如:在訪問數組時,數組的邊界是不可跨越的;未初始化的內存區域是不可訪問的;已釋放的內存是不可訪問的;堆棧中保存的返回地址是不可被覆蓋的,等等。對于較低層次的編程語言如C、C++等,對于上述這些具有特殊含義的內存位置,完全以來編程人員的謹慎來保證特定的訪問規則不被違反。在處理器的體系結構層面上,并沒有對特定位置的特殊訪問規則進行檢查的輔助措施。
有一些技術,可以標記某個指針能訪問的內存范圍。例如肥指針(fat-pointer),它通過改變編譯器,使得指針不只包含一個地址,還包括該指針可以指向的區域的上邊界和下邊界,以此來動態地檢查數組訪問是否越界。在一定程度上,這種方式對較小的內存區塊提供了保護。這種方式也是基于地址的。
當前業界存在普遍的偏見,即指定一段內存具有某種屬性,只有通過基于地址的方式,即一定要指定這段內存的地址范圍。目前尚沒有某種技術,通過基于內容的方式,來標定一段內存具有某種屬性,即一段內存由于它的起始部分、結束部分、中間的某部分或它的整體存儲了特定的內容,而具有某種屬性。
這種偏見是有一定理由的。對通用處理器而言,內存中的數據的具體取值,同它的含義——即處理器對它的解釋——無關。任意一塊內存中存儲的數據,既可以被解釋成為一個或若干個整數,又可以被解釋為一個或若干個浮點數,還可以被解釋為一個字符串,等等。因此,規定某一個取值具有特定含義并且用這個取值標記內存中某位置為特殊的位置在原則上是不可行的,因為內存中某位置可能在某時刻碰巧被寫入了一個整數、浮點數或字符串,使得該位置上的數據的取值正好就是用來標記特殊位置的那個取值,于是意外地碰巧產生了一個我們所不希望的標記。
本發明提出一種基于內容的技術,對在內存特定位置加標記提供支持,從而破除了這種偏見。
發明內容
在概率意義上,用特定取值標記內存位置是可行的。只要選定的取值包含足夠多的比特數,則程序正常運行過程中向內存中寫的數據同這個取值巧合的幾率就會非常之低,以至于在足夠長的時間內都不會出現一次。在軟件技術中,經常使用隨機生成的128位整數作為唯一的、不會重復的ID。這里所謂的“唯一的、不會重復”是指在概率意義上隨機生成的兩個128位整數碰巧相等的可能性非常之低。但類似技術并沒有出現在處理器設計領域。
本發明的基本思想是利用“在概率意義上,用特定取值標記內存位置是可行的”這一事實,并且加以適當的改進。改進之一使得程序正常運行過程中向內存中寫的數據使某位置碰巧滿足標記條件的可能性不會因為數據拷貝增加。改進之二使得預定義的取值所包含的字節數(比特數)保持在適當的范圍。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于歐蜀平,未經歐蜀平許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710085936.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種LD泵浦的微片式單縱模激光器
- 下一篇:一種空腔模殼構件





