[發明專利]計算裝置中的可搶占語境切換無效
| 申請號: | 200680028671.2 | 申請日: | 2006-08-08 |
| 公開(公告)號: | CN101238441A | 公開(公告)日: | 2008-08-06 |
| 發明(設計)人: | 丹尼斯·梅 | 申請(專利權)人: | 西姆畢恩軟件有限公司 |
| 主分類號: | G06F9/46 | 分類號: | G06F9/46 |
| 代理公司: | 北京康信知識產權代理有限責任公司 | 代理人: | 余剛;尚志峰 |
| 地址: | 英國*** | 國省代碼: | 英國;GB |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 計算 裝置 中的 搶占 語境 切換 | ||
本發明涉及改進多任務計算裝置的性能、響應性和效率,并且具體地,涉及通過使用可搶先(pre-emptible或稱可搶占)的語境切換來提供這些種改進。
術語“計算裝置”包括但不限于,臺式及膝上型計算機、個人數字助理(PDA)、移動電話、智能手機、數碼相機以及數字音樂播放器。它還包括合并了一種或多種上述裝置的功能的集成裝置,和許多其他形式的、在其功能上依靠于軟件的工業與家用電子設備。
多數先進的計算裝置是由操作系統(OS)控制的,該操作系統控制著裝置的所有操作。在OS中,內核代表中心核,它具有超越裝置中其它所有硬件和軟件之上的、非常高的控制等級;典型地,所述內核在特權管理程序模式下運行,由此它就被信任去做普通應用程序(在用戶模式下運行)不被信任去做的任務。
多任務計算裝置可在若干單獨指令串中的任一個的執行之間快速切換,其中,每個連貫的串被稱為線程。因此,線程被當作該裝置上的執行單元。線程間的切換被稱為語境切換。
計算裝置上的內存在不同的進程之間被分割,其中,每個進程都由一個或多個線程組成。當進程由多于一個的線程組成時,該進程中的所有線程都可以訪問同一個共享內存;但一個進程中的線程除了訪問其自身進程的內存以外不能訪問其他進程的內存。因此,該進程可被當作裝置上的內存保護單元。
由此得出,當計算裝置在第一進程中的第一線程和第二進程中的第二線程之間切換時,從第一線程到第二線程的執行的轉移也必然伴隨著在所使用的活動存儲器中的、從第一進程的第一線程到第二進程的第二線程的某種形式的切換。
為實現這個,最普通的方案之一就是利用這樣的事實,即,現代計算裝置上的存儲器通常處于非常嚴密的管理之下,典型處在內核的控制之下。那些本領域的普通技術人員將意識到,裝置上的內存被分組為地址連續的多個頁面,并且裝置上所有可能的可尋址的內存位置的全體(totality)被稱為虛擬內存地址。實際被安裝的內存地址的全體被稱為物理內存地址,且計算裝置包括由內存管理單元或MMU所維護的從虛擬內存頁面地址到物理內存頁面地址的映射。通過改變那些保存此映射的頁面目錄項的內容,一組虛擬內存地址可用來指向所有可尋址的物理內存的期望區域。在如上所述的方案中,不同進程中線程間的語境切換伴隨著內存的重新映射以便保護其線程已被切出(be?switched?out)的進程的內存,且以便可訪問其線程已被切入(be?switched?in)的進程的內存。
為加速對相對緩慢的主存儲器的訪問,計算裝置經常利用局部(locality)的現象,該研究延續了三十多年。局部就是指“內存訪問在程序執行期間趨于被群集在小內存區域中的現象”(選自《用于在共享內存多處理器系統中改進內存訪問局部的排序函數》作者Youfeng?Wu,關于微架構目錄的第25年度國際研討會會議學報,1992年)
因此,計算裝置維護高速緩存,它由保存了已被讀取的內存最后幾頁內容的少量更快的內存組成。當一項讀取內存的請求訪問了已被標識成在該高速緩存內的頁面時,就稱為發生了高速緩存命中,且可以從更快的高速緩存存儲器而不是相對緩慢的主存儲器對內存進行訪問。
然而,通常在很多計算裝置上,用于高速緩存的內存地址是虛擬內存地址而不是物理內存地址。這意味著當在不同進程的線程之間發生語境切換時,在該高速緩存工作方式之后的邏輯就被無效,且因為所請求的內存訪問恰好匹配被保存的虛擬地址,故從該高速緩存讀取數據就幾乎肯定是錯的。因而,這種語境切換需要使該高速緩存的整個內容無效從而對之前保存在該高速緩存內的虛擬內存地址的任何訪問將導致高速緩存未命中,這就迫使一次來自物理內存的讀取。
這種高速緩存內容的無效叫做刷新高速緩存。以上所有操作對于本技術領域工作人員都是熟知的。
從上述描述可以看出,由于來回移動潛在的大量內存映射的需求以及在利用被虛擬標記的數據高速緩存的硬件結構上刷新數據高速緩存的需求,所以屬于不同用戶方進程的線程間的語境切換可能是個耗時的過程。在這期間,該裝置典型是不響應的,這是因為這些操作一般在禁用搶占的情況下運行;這表明兩進程間的語境切換并不允許被準備運行的第三進程所搶先。
執行語境切換的所耗時長已在ARM結構4與5處理器上被測量。在最壞的情況下,這可能包括如下操作:
●修改頁面目錄項以移動附于前一進程的所有內存的虛擬地址
●保護附于前一進程的所有內存
●修改頁面目錄項以移動附于新進程的所有內存的虛擬地址
●刷新該處理器數據高速緩存
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西姆畢恩軟件有限公司,未經西姆畢恩軟件有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200680028671.2/2.html,轉載請聲明來源鉆瓜專利網。





