專利名稱:多任務虛擬機的堆組織的制作方法
多任務虛擬機的堆組織
背景技術:
堆組織(heap organization)是可以用于為由多任務虛擬機并發執行的 多個任務存儲數據的存儲區。所述數據可以包括用于所有任務的程序對象 和元數據。
常規上,有兩類堆組織,即共享堆和分離堆。對于共享堆類型,多任 務虛擬機可以使用單個堆來存儲可由所有任務訪問的數據。對于分離堆類 型,多任務虛擬機可以使用邏輯上分離的多個堆。可以分配每個分離堆來 存儲僅可由單個任務訪問的數據。
在附圖中,通過示例而非限制來說明本文闡述的發明。為了使說明簡 潔清楚,附圖中所示的元件并不一定是按照比例繪制的。例如,為了清楚, 某些元件的尺寸相對于其它元件的尺寸可能會被放大。此外,在認為適當 的情況下,在多張附圖中重復使用了附圖標記,以表示對應或類似的元件。
圖1示出了包括多任務虛擬機的計算平臺的實施例;
圖2示出了多任務虛擬機的實施例;
圖3示出了圖2的多任務虛擬機中的堆組織的實施例;
圖4示出了將任務堆添加到圖3的堆組織中的方法的實施例;
圖5示出了從圖3的堆組織回收任務堆的方法的實施例;
圖6示出了圖2的多任務虛擬機中的堆組織的另一個實施例;以及
圖7示出了圖2的多任務虛擬機中的堆組織的又一個實施例。
具體實施例方式
下面的說明描述了用于多任務虛擬機的堆組織的技術。在以下說明中, 為了提供對本發明的更透徹的理解,闡述了許多具體細節,諸如邏輯實現、 偽代碼、指定操作數的方法、資源分區/共享/復制實現、系統組件的類型和相互關系、以及邏輯分區/集成選擇。但不使用這些具體細節也可以實踐 本發明。在其它實例中,沒有詳細示出控制結構、門級電路和完整的軟件 指令序列,以免對本發明造成模糊。本領域技術人員借助于該說明書就可 以實現適合的功能,而無需不當的實驗。
說明書中提到的"一個實施例"、"實施例"和"示例性實施例"等表 示所述的實施例可以包括特定的特征、結構或特點,但并不是每個實施例 都必須要包括所述特定的特征、結構或特點。此外,這種短語并不一定指 代同一實施例。而且,當結合某一實施例描述該特定的特征、結構或特點 時,結合其它實施例(不管是否明確說明)來實現這樣的特征、結構或特 點也被認為是在本領域技術人員的知識范圍內。
可以以硬件、固件、軟件或它們的任意組合來實現本發明的實施例。 還可以將本發明的實施例實現為存儲在機器可讀介質上的指令,所述指令 可由一個或多個處理器讀取和執行。機器可讀介質可以包括以機器(例如, 計算裝置)可讀的形式存儲或傳輸信息的任何機制。例如,機器可讀介質 可以包括只讀存儲器(ROM);隨機存取存儲器(RAM);磁盤存儲媒體; 光存儲媒體;閃存裝置;和電、光、聲或其它形式的傳播信號(例如載波、 紅外信號、數字信號等)等。
圖1示出了包括多任務虛擬機的計算平臺10的實施例。計算平臺10 的示例可以包括個人計算機、工作站、服務器計算機、個人數字助理(PDA)、 移動電話、以及游戲機。
計算平臺IO可以包括一個或多個處理器101、存儲器102、芯片組103、 1/0裝置104、固件105和可能的其它組件。 一個或多個處理器101可以經 由諸如處理器總線之類的一條或多條總線可通信地耦合到各個組件(例如 芯片組103)。可以將處理器101實現為在適當的架構(例如包括,由位于 加州Santa Clara的英特爾公司出品的英特爾^至強TM、英特爾 奔騰TM、 英特爾^安騰w架構)下的具有一個或多個可以執行代碼的處理核心的集 成電路(IC)。
存儲器102可以存儲多個軟件應用1021、多任務虛擬機1022和操作 系統1023的形式的指令和數據。存儲器102的示例可以包括以下半導體裝 置之一或其任意組合例如,同步動態隨機存取存儲器(SDRAM)裝置、RAMBUS動態隨機存取存儲器(RDRAM)裝置、雙倍數據速率(DDR) 存儲器裝置、靜態隨機存取存儲器(SRAM)、以及閃存裝置。
可以從諸如I/O裝置106之類的任何適當裝置輸入多個軟件應用1021。 在其它實施例中,還可以通過計算平臺IO中的其它組件來生成軟件應用。 軟件應用1021的示例可以包括JAVA應用(例如JAVA.class文件)、.NET 應用(例如.NET代碼)、或可能的其它編程語言形式的應用。
多任務虛擬機1022可以運行在操作系統1023之上,以并發執行多個 軟件應用1021。每個軟件應用1021可以包括一個或多個任務,每個任務 可以代表單個軟件應用1021的一個實例化。在JAVA虛擬機中,如果兩個 "任務"共享相同的類路徑(即,類文件的相同有序表),則這兩個"任務" 可以屬于一個應用。
多任務虛擬機1022的示例可以包括由位于加州Santa Clara的Sun微 系統公司出品的多任務JAVA虛擬機、以及由位于華盛頓州Redmond的 Microsoff公司出品的多任務.NET虛擬機。操作系統1023可以包括但不限 于不同版本的Linux 、 Microsoft Windows 、和諸如¥乂\¥0&5@之類的實 時操作系統等。
在一個實施例中,芯片組103可以提供在一個或多個處理器101、存 儲器102、和諸如1/0裝置104和固件105之類的其它組件之間的一條或 多條通信路徑。芯片組103可以包括存儲器控制中心1031、輸入/輸出控 制中心1032和固件中心1033。
在一個實施例中,存儲器控制中心1031可以提供到處理器總線(其可 與處理器101連接)和到適當裝置(諸如存儲器102)的通信鏈路。存儲 器控制中心102可以耦合到I/O控制中心1032,以提供到計算平臺的I/O 裝置104的接口。 1/0裝置104的示例可以包括鍵盤、鼠標、網絡接口、 存儲裝置、照相機、藍牙裝置和天線。
在一個實施例中,存儲器控制中心1031可以經由輸入/輸出控制中心 1032可通信地耦合到固件中心1033。固件中心1033可以耦合到固件105, 所述固件可以存儲BIOS例程和/或EFI例程,所述BIOS例程在系統啟動 期間被計算平臺執行,以初始化處理器101、芯片組103、以及該計算平臺 的其它組件,所述EFI例程使固件105與計算機平臺的操作系統通過接口進行連接并提供用于引導該操作系統的標準環境。
其它的實施例可以實現用于計算平臺10的結構的其它技術。例如,多
任務虛擬機1022可以在虛擬機的一個實例化中執行一個軟件應用1021。 換句話說,多任務虛擬機1022可以在虛擬機的一個實例化中并發地執行屬 于一個應用的多個任務,并且所述多個任務是該應用的各個實例化。
圖2示出了圖1的多任務虛擬機1022的實施例。根據該實施例,多任 務虛擬機1022可以包括加載器201、執行引擎202、堆組織203、堆管理 器204和可能的其它組件。
加載器201可以加載來自各種資源的文件(包括類、接口、本地方法)。 例如,加載器201可以加載來自多任務虛擬機廠商、程序員和任何第三方 的多個軟件應用1021、庫、運行時環境變量、以及可能的其它文件。庫可 以包括向用戶程序提供基本功能的各種函數和例程,例如自舉(bootstrap) 類庫和非自舉類庫。運行時環境變量可以包括用于幫助多任務虛擬機尋找
應用資源的配置。加載器的示例可以包括類加載器、本地方法接口、和可 能的其它加載模塊。
執行引擎202可以并發執行與軟件應用1021相關聯的多個任務。更具 體而言,執行引擎202可以并發地解釋(translate)軟件應用并執行經解釋的 代碼。
堆組織203可以存儲用于多任務虛擬機1022的數據,例如元數據和程 序對象。元數據可以包括關于從加載器201或其它組件加載的文件(例如, 軟件應用、庫、運行時環境變量等)、來自執行引擎202的文件的經解釋的 代碼、以及可能的其它數據的信息。元數據的示例可以包括JAVA類、方 法、字段、字節碼、JIT (即時)代碼等的虛擬機內部表示。程序對象可以 包括在執行所加載的文件時生成的對象。程序對象的示例可以包括用戶定 義的類加載器和類文件的實例。
例如在加載器201的幫助下,堆管理器204可以管理堆組織203。
圖3示出了圖2的堆組織203的實施例。
堆組織203可以包括多個在邏輯上分開的堆,其中每個堆可以包括多 個邏輯上鄰接的存儲塊,在兩個堆之間沒有塊重疊。
在圖3的實施例中,堆組織203可以包括系統堆301、多個應用堆302^、以及多個任務堆303,.N。
系統堆可以存儲可由多任務虛擬機1022執行的所有任務共享的系統 數據。在系統堆中存儲的數據的壽命(lifespan)可以與多任務虛擬機1022 的一個實例化相同。系統數據的示例可以包括全局共享庫(例如自舉類庫、 全局共享運行時環境、平臺定義信息)的元數據、與多任務虛擬機的實例 化具有相同壽命的程序對象(例如在執行自舉類程序時生成的對象)、和用 于該系統的可能的其它數據。在圖3的實施例中,系統堆301是單例的 (singleton),并不會被回收(reclaim)甚至壓縮。
可以將應用堆302,.w中的每一個分配給多個軟件應用1021中的每個 "活(live)"應用,其中"活"應用可以具有由多任務虛擬機1022執行的 至少一個任務。任務可以是其應用的實例化。應用堆302,—w中的每一個可 以存儲可由屬于該應用并和該應用持續同樣壽命的所有任務訪問的應用數 據。對于JAVA虛擬機規范,如果兩個"任務"屬于一個應用,則這兩個 "任務"可以共享相同的類路徑,即它們可以共享類文件的相同有序表。 有鑒于此,應用可以代表用于其任務的可執行二進制代碼(binaries)(包 括動態加載的二進制代碼)和運行時環境。
在應用堆302^的每一個中存儲的應用數據可以包括應用的元數據和 可以與該應用具有相同壽命的程序對象。該應用的元數據的示例可以包括 關于應用類文件、應用類文件的經解釋的代碼、應用庫和用于解釋并執行 應用類文件的運行時環境變量、以及用于該應用的可能的其它數據的信息。 程序對象的示例可以包括當初始化應用類文件時生成的對象。在圖3的實 施例中,如果該應用的最后一個任務被終止,則可以回收該應用堆。
可以將任務堆303^中的每一個分配給由多任務虛擬機1022執行的每 個"活"任務。任務堆303,.w中的每一個可以存儲僅可由相關任務訪問的 任務數據,這意味著禁止由其它任務來訪問該任務數據。任務數據可以具 有和相關任務相同的壽命。任務數據的示例可以包括當執行該任務時生成 的程序對象和用于執行該任務的運行時環境變量。在圖3的實施例中,如 果相關任務被終止,則可以回收任務堆。
如圖3所示,任務可以訪問在其任務堆中存儲的任務數據和在系統堆 中存儲的系統數據。任務還可以訪問在該任務所屬的應用的應用堆中存儲的應用數據。由于一個應用可以具有由多任務虛擬機1022正執行的多于一 個的任務,因此一個應用堆可以具有與其綁定的多于一個的任務堆。例如, 應用堆302i可以具有與其綁定的兩個任務堆303,-3032。但是,任務無法訪 問在該任務不屬于的其它應用的其它應用堆中存儲的其它應用數據。
其它實施例可以實現用于圖3的堆組織203的結構的其它技術。例如, 如果多任務虛擬機1022在一個實例期間執行一個應用1023,則堆組織203 可以包括用于存儲系統數據和應用數據的系統堆、以及用于存儲任務數據 的多個任務堆。
圖4示出了將任務堆添加到如圖3所示的堆組織203中的方法的實施例。
在塊401中,堆管理器204或其它適當的裝置可以確定為多任務虛擬 機1022執行的任務創建任務堆。在塊402中,堆管理器204或其它適當的 裝置可以確定該任務所屬的應用。如上所述,應用可以代表用于其任務的 可執行二進制代碼(包括動態加載的二進制代碼)和運行時環境,因此, 堆管理器204或其它適當的裝置可以通過自檢(introspect)該任務的可執 行二進制代碼和運行時環境來確定該應用。
在塊403,堆管理器204或其它適當的裝置可以確定是否有應用堆已 被分配給該應用。在塊403的一個實施例中,堆管理器204或其它適當的 裝置可以維護記錄著所有"活"應用的一個"活"應用表。每個"活"應 用可以具有由多任務虛擬機1022執行的至少一個任務,因此每個"活"應 用可以被分配有應用堆。通過這種方式,如果該應用被列在"活"應用表 中,則堆管理器204或其它適當的裝置可以確定應用堆已被分配給該應用, 而如果沒有列出,則可以確定應用堆還沒有被分配給該應用。
如果該應用還沒被分配有應用堆,則在塊404中,堆管理器204或其 它適當的裝置可以為該應用創建應用堆。在塊405中,堆管理器203或其 它適當的裝置可以將應用數據加載到該應用堆中。應用數據可以包括該應 用的元數據和與該應用具有相同壽命的程序對象。
在塊406中,堆管理器203或其它適當的裝置可以標記出所創建的應 用堆的存在。在塊408的一個實施例中,堆管理器203或其它適當的裝置 可以將與該應用堆相對應的應用添加到"活"應用表中。在塊407中,堆管理器203或其它適當的裝置可以將該在務綁定到在 塊404中創建的應用堆,從而該任務可以訪問該應用堆中的應用數據。在 塊407的一個實施例中,堆管理器203或其它適當的裝置可以將該任務添 加到為該應用維護的、記錄著屬于該應用的并由多任務虛擬機1022執行的 每個任務的"活"任務表中。
隨后,在塊408中,堆管理器203或其它適當的裝置可以為由多任務 虛擬機1022執行的該任務創建任務堆。可以通過將任務堆地址、應用堆地 址和系統堆地址添加到該任務的棧中來創建任務堆,從而該任務可以訪問 這些堆中的數據。最后,在塊409中,多任務虛擬機1022的執行引擎202 可以在該任務的任務堆上運行該任務。
返回到塊403,如果已經將應用堆分配給了與該任務相對應的應用, 則堆管理器203或其它適當的裝置可以在塊407中將該任務綁定到該應用 堆,在塊408中為該任務創建任務堆,從而在塊409中,執行引擎202可 以在該任務的任務堆上運行該任務。
圖5示出了從堆組織203回收任務堆的方法的實施例。
在塊501中,例如當執行引擎202完成任務的執行時,該任務可以被 終止。在塊502中,堆管理器203或其它適當的裝置可以釋放分配給該任 務的任務堆。在塊502的一個實施例中,堆管理器203可以將該任務堆的 存儲區域作為整體返還給操作系統。隨后,在塊503中,堆管理器203或 其它適當的裝置可以確定該任務是否是其所屬的應用的最后一個任務。堆 管理器203或其它適當的裝置可以以各種方式實現塊203,例如,通過檢
查上述的為該應用維護的"活"任務表來確定該任務是否是"活"任務表 中的最后一個任務。
如果該任務不是該應用的最后一個任務,則在塊506中,堆管理器203 或其它適當的裝置可以將該任務與分配給該應用的應用堆解除綁定。可以 通過從為該應用維護的"活"任務表中刪除該任務來實現解除綁定。然而, 如果該任務是該應用的最后一個任務,則在塊504中,堆管理器203或其 它適當的裝置可以回收該應用的應用堆。堆管理器203或其它適當的裝置 可以以各種方式實現塊504,例如,通過將該應用堆的存儲區域作為整體 返還給操作系統。隨后,在塊505中,例如通過從上述"活"應用表中刪
13除對應的應用,堆管理器203或其它適當的裝置可以標記該應用堆的回收。 圖6示出了圖2的堆組織203的另一個實施例。
堆組織203可以包括多個應用堆601^和多個任務堆602^。可以將 應用堆601^中的每一個分配給一個應用1021。每個應用堆可以包括僅可 由屬于該應用并和該應用持續相同壽命的(多個)任務訪問的系統數據和 應用數據。系統數據可以包括全局共享庫和全局共享運行時環境的元數據 和程序對象,應用數據可以包括應用類、應用庫和應用運行時環境的元數 據和程序對象。
可以將任務堆602lN中的每一個分配給由多任務虛擬機執行的每個任 務。每個任務堆可以存儲僅可由相關任務訪問的、并和相關任務持續相同 壽命的任務數據。任務數據可以包括該任務的程序對象和運行時環境。可 以將任務堆602^中的每一個綁定到應用堆601^其中之一,從而該任務 能夠訪問任務堆和應用任務中的數據。
其它實施例可以實現用于圖6的堆組織的結構的其它技術。例如,可 以將系統數據復制到每個任務堆602^中,而不復制到每個應用堆601^ 中。
圖7示出了圖2的堆組織203的又一個實施例。
如圖所示,堆組織203可以包括系統堆701和多個任務堆702^。系 統堆701可以存儲可由多任務虛擬機1022執行的全部任務訪問的、并和多 任務虛擬機1022的實例化持續相同壽命的系統數據。系統數據可以包括全 局共享庫和全局共享運行時環境變量的元數據、以及與該多任務虛擬機的 實例化持續相同壽命的程序對象、以及可能的其它系統數據。
可以將任務堆702卜n中的每一個分配給由多任務虛擬機1022執行的每 個任務。每個任務堆可以存儲僅可由相關任務訪問的任務數據和應用數據。 應用數據可以包括應用類、應用庫和運行時環境的元數據和程序對象,以 及該應用的可能的其它數據。任務數據可以包括該任務的程序對象和運行 時環境變量。
盡管已經結合某些實施例描述了本發明,但應當理解,可以采取各種 修改和變更,而不偏離本領域技術人員所很容易理解的本發明的精神和范 圍。這樣的修改和變更被認為是涵蓋在本發明和所附權利要求的范圍內。
權利要求
1、一種多任務虛擬機,包括執行引擎,用于并發執行多個任務;多個堆,其耦合到所述執行引擎,其中,所述多個堆包括系統堆,用于存儲可由所述多個任務訪問的系統數據;以及任務堆,其被分配給所述多個任務中的一個任務,以存儲僅可由所分配的任務訪問的任務數據。
2、 如權利要求1所述的多任務虛擬機,其中,所述系統數據包括全局 共享庫和全局共享運行時環境變量的系統元數據。
3、 如權利要求1所述的多任務虛擬機,其中,所述系統數據包括程序 對象,所述程序對象的壽命與所述多任務虛擬機的壽命相同。
4、 如權利要求1所述的多任務虛擬機,其中,所述任務數據包括程序 對象,所述程序對象的壽命與所分配的任務的壽命相同。
5、 如權利要求1所述的多任務虛擬機,其中,所述多個堆還包括 應用堆,其被分配給應用,以存儲所述應用的應用數據,其中,所述應用數據僅可由所述多個任務中與所述應用相關聯的至少一個任務來訪 問。
6、 如權利要求5所述的多任務虛擬機,其中,所述應用數據包括應用 類文件、應用庫和應用運行時環境變量的應用元數據。
7、 如權利要求5所述的多任務虛擬機,其中,所述應用數據包括程序 對象,所述程序對象的壽命與所述應用的壽命相同。
8、 如權利要求l所述的多任務虛擬機,還包括堆管理器,用于如果所分配的任務被終止則回收所述任務堆。
9、 如權利要求5所述的多任務虛擬機,還包括堆管理器,用于如果與所述應用相關聯的所述至少一個任務被終止則 回收所述應用堆。
10、 一種多任務虛擬機,包括-執行引擎,用于并發執行多個任務;多個堆,其耦合到所述執行引擎,其中,所述多個堆包括任務堆,其被分配給所述多個任務中的一個任務,以存儲僅可由所分配的任務訪問的任務數據;以及應用堆,其被分配給應用,以存儲僅可由所述多個任務中的至少一個任務訪問的應用數據,其中,所述至少一個任務與所述應用相關聯并包括所分配的任務。
11、 如權利要求10所述的多任務虛擬機,其中,所述應用數據包括全 局共享庫和全局共享運行時環境變量的系統元數據,以及應用類文件、應用庫和應用運行時環境變量的應用元數據。
12、 如權利要求10所述的多任務虛擬機,其中,所述應用數據包括應 用類文件、應用庫和應用運行時環境變量的應用元數據,并且其中,所述 任務數據包括全局共享庫和全局共享運行時環境變量的系統元數據。
13、 如權利要求10所述的多任務虛擬機,其中,所述應用數據包括程 序對象,所述程序對象的壽命與所述應用的壽命相同。
14、 如權利要求10所述的多任務虛擬機,其中,所述任務數據包括程 序對象,所述程序對象的壽命與所述任務的壽命相同。
15、 如權利要求10所述的多任務虛擬機,還包括堆管理器,用于如果所述任務被終止則回收所述任務堆。
16、 如權利要求10所述的多任務虛擬機,還包括堆管理器,用于如果與所述應用相關聯的所述至少一個任務被終止則 回收所述應用堆。
17、 一種多任務虛擬機的方法,包括提供被分配給多個任務中的一個任務的任務堆,其中,所述任務堆存 儲僅可由所分配的任務訪問的任務數據;以及確定是否存在被分配給應用的應用堆,其中,所述應用堆存儲僅可由 所述多個任務中的至少一個任務訪問的應用數據,其中,所述至少一個任 務與所述應用相關聯并包括所分配的任務。
18、 如權利要求17所述的方法,其中,所述確定還包括確定與所分配的任務相關聯的所述應用;以及確定所述應用是否存在于活應用表中,所述活應用表記錄具有由所述 多任務虛擬機執行的所述多個任務中的至少一個任務的每個應用。
19、 如權利要求17所述的方法,還包括如果所述應用堆并不存在于所述多任務虛擬機中,則提供所述應用堆。
20、 如權利要求17所述的方法,還包括標記所述應用堆的存在。
21、 如權利要求20所述的方法,其中,所述標記還包括將所述應用添加到活應用表中,所述活應用表記錄具有由所述多任務 虛擬機執行的所述多個任務中的至少一個任務的每個應用。
22、 如權利要求17所述的方法,還包括將所分配的任務綁定到所述應用堆,使得所分配的任務能夠訪問在所述應用堆中存儲的應用數據。
23、 如權利要求22所述的方法,其中,所述綁定還包括將所分配的任務添加到所述應用的活任務表中,其中,所述活任務表 記錄與所述應用相關聯的并由所述多任務虛擬機執行的每個任務。
24、 一種包括多個指令的機器可讀介質,所述多個指令當被執行時使多任務處理機從所述多任務虛擬機回收被分配給多個任務中的一個任務的任務堆,其中,所述任務堆存儲僅可由所分配的任務訪問的任務數據;以及確定是否從所述多任務虛擬機回收被分配給應用的應用堆,其中,所 述應用堆存儲僅可由所述多個任務中的至少一個任務訪問的應用數據,其 中,所述至少一個任務與所述應用相關聯并包括所分配的任務。
25、 如權利要求24所述的機器可讀介質,其中,使所述多任務虛擬機 確定是否回收所述應用堆的多個指令還使所述多任務虛擬機確定所分配的任務是否是活任務表中列出的最后一個任務,所述活任 務表記錄與所述應用相關聯的并由所述多任務虛擬機執行的每個任務;以 及如果所分配的任務是所述活任務表中的最后一個任務,則確定回收所 述應用堆。
26、 如權利要求24所述的方法,其中,所述多個指令還使所述多任務 虛擬機響應于確定不回收所述應用堆,將所分配的任務與所述應用堆解除綁定。
27、 如權利要求26所述的方法,其中,使所述多任務虛擬機將所述任 務解除綁定的多個指令還使所述多任務虛擬機從活任務表中刪除所分配的任務,所述活任務表記錄與所述應用相關聯的并由所述多任務虛擬機執行的每個任務。
28、 如權利要求24所述的方法,其中,所述多個指令還使所述多任務 虛擬機從所述多任務虛擬機回收所述應用堆;以及 標記所述應用堆的回收。
29、 如權利要求28所述的方法,其中,使所述多任務虛擬機標記所述 回收的多個指令還使所述虛擬機從活應用表中刪除所述應用,所述活應用表記錄具有由所述多任務虛 擬機執行的所述多個任務中的至少一個任務的每個應用。
全文摘要
本文描述了多任務虛擬機的堆組織。堆組織可以包括用于并發執行多個任務的執行引擎和與該執行引擎相耦合的多個堆。在一些實施例中,所述多個堆可以包括系統堆和與該系統堆相分離的任務堆。系統堆可以存儲可由所述多個任務訪問的系統數據。任務堆可以存儲僅可由所述多個任務中的一個任務訪問的任務數據。
文檔編號G06F9/44GK101484876SQ200680055340
公開日2009年7月15日 申請日期2006年7月14日 優先權日2006年7月14日
發明者B·陳, G·吳, J·彭, P·郭, X·周, Z·英 申請人:英特爾公司