背景技術(shù):
便攜式計(jì)算設(shè)備(例如,蜂窩電話、智能電話、平板計(jì)算機(jī)、便攜式數(shù)字助理(pda)以及便攜式游戲控制臺)持續(xù)提供不斷擴(kuò)展的服務(wù)和特征陣列,并且向用戶提供前所未有的信息接入、資源以及通信的水平。為了跟上這些服務(wù)增強(qiáng)的步伐,這些設(shè)備已經(jīng)變得更加強(qiáng)大并且更加復(fù)雜。便攜式計(jì)算設(shè)備現(xiàn)在通常包括包含嵌在單個(gè)基底上的一個(gè)或多個(gè)芯片部件(例如,一個(gè)或多個(gè)中央處理單元(cpu)、圖形處理單元(gpu)、數(shù)字信號處理器等)的片上系統(tǒng)(soc)。
由于在集成電路上增加晶體管密度變得更具挑戰(zhàn),二維單片集成電路的成本可能變得過高,導(dǎo)致在便攜式計(jì)算設(shè)備中對多管芯或多soc產(chǎn)品的使用增加。該多管芯產(chǎn)品可以包括互連的物理管芯,每個(gè)物理管芯提供對快速本地存儲器(諸如,動(dòng)態(tài)隨機(jī)存取存儲器(dram))的訪問。該架構(gòu)一般被稱作非統(tǒng)一存儲器架構(gòu)(numa)。然而,numa設(shè)計(jì)提出了多種情況,在這些情況中,通過高性能總線可訪問的近的或本地的dram中的數(shù)據(jù)或通過低性能芯片間接口可訪問的遠(yuǎn)的dram中的數(shù)據(jù)需要被任一管芯上的處理器訪問。這可能導(dǎo)致較高的延遲,例如當(dāng)處理器必須去往遠(yuǎn)的dram時(shí)。
因此,需要提供針對非統(tǒng)一存儲器架構(gòu)中的所有處理器的低延遲存儲器訪問的系統(tǒng)和方法。
技術(shù)實(shí)現(xiàn)要素:
公開了用于在具有非統(tǒng)一存儲器架構(gòu)的便攜式計(jì)算設(shè)備中分配存儲器的系統(tǒng)、方法以及計(jì)算機(jī)程序。一種這樣的方法涉及:從在第一片上系統(tǒng)(soc)上執(zhí)行的進(jìn)程接收針對虛擬存儲器頁面的請求。該第一soc通過芯片間接口電耦合與第二soc。該第一soc通過第一高性能總線電耦合于第一本地易失性存儲器設(shè)備,并且該第二soc通過第二高性能總線電耦合于第二本地易失性存儲器設(shè)備。確定空閑物理頁面對,其包括在該第一和第二本地易失性存儲器設(shè)備上可用的相同物理地址。將該空閑物理頁面對映射到單個(gè)虛擬頁面地址。
附圖說明
在附圖中,除非另外指出,貫穿各個(gè)視圖的相似的附圖標(biāo)記指代相似的部分。對于具有字母符號標(biāo)號的附圖標(biāo)記(諸如“102a”或“102b”),該字母符號標(biāo)號可以對在同一附圖中出現(xiàn)的兩個(gè)相似的部分或元件進(jìn)行區(qū)分。當(dāng)附圖標(biāo)記旨在包括在所有附圖中的具有相同附圖標(biāo)記的所有部分時(shí),可以省略針對附圖標(biāo)記的字母符號標(biāo)號。
圖1是包括多個(gè)互連的具有非統(tǒng)一存儲器架構(gòu)(numa)的片上系統(tǒng)(soc)的系統(tǒng)的實(shí)施例的框圖。
圖2示出了具有在多個(gè)soc上選擇性復(fù)制的存儲器數(shù)據(jù)的圖1的系統(tǒng)。
圖3是示出了在包括具有相同物理地址的空閑物理頁面對的soc中的頁面表格的實(shí)施例的方框圖。
圖4是示出了用于實(shí)現(xiàn)包括用于將空閑物理頁面對映射到單個(gè)虛擬地址的復(fù)制屬性字段的頁面表格條目的數(shù)據(jù)結(jié)構(gòu)的實(shí)施例的方框圖。
圖5是示出了由圖1和2中的自適應(yīng)numa延遲優(yōu)化模塊實(shí)現(xiàn)的方法的實(shí)施例的流程圖。
圖6是示出了由用于釋放物理頁面對的操作系統(tǒng)實(shí)現(xiàn)的方法的實(shí)施例的流程圖。
圖7是示出了用于將先前分配的單個(gè)頁面轉(zhuǎn)換為空閑物理頁面對的方法的實(shí)施例的流程圖。
圖8是示出了用于實(shí)現(xiàn)圖1和2的系統(tǒng)中的頁面表格條目的數(shù)據(jù)結(jié)構(gòu)的另一個(gè)實(shí)施例的方框圖。
圖9a和圖9b是示出了由圖1和2中的非阻塞numa延遲優(yōu)化模塊實(shí)現(xiàn)的方法的實(shí)施例的流程圖。
圖10是示出了實(shí)現(xiàn)圖8的頁面表格條目的示例性寫事務(wù)的流程圖。
圖11是示出了實(shí)現(xiàn)圖8的頁面表格條目的示例性讀事務(wù)的流程圖。
圖12是示出了用于復(fù)制使用圖8的頁面表格條目的數(shù)據(jù)的頁面翻譯圖表的功能框圖。
圖13是可以合并用于擴(kuò)展系統(tǒng)存儲器的ram卡/插槽的便攜式通信設(shè)備的另一個(gè)實(shí)施例的方框圖。
具體實(shí)施方式
本文中所使用的詞語“示例性”意指“用作例子、實(shí)例或說明”。本文中被描述為“示例性”的任何方面未必要被解釋為比其它方面更優(yōu)選或更具優(yōu)勢。
在本描述中,術(shù)語“應(yīng)用”或“圖像”也可以包括具有可執(zhí)行內(nèi)容的文件,例如:目標(biāo)代碼、腳本、字節(jié)代碼、標(biāo)記語言文件和補(bǔ)丁。另外,本文中所提及的“應(yīng)用”,也可以包括本質(zhì)上不可執(zhí)行的文件,例如可能需要被打開的文檔或需要被存取的其它數(shù)據(jù)文件。
術(shù)語“內(nèi)容”也可以包括具有可執(zhí)行內(nèi)容的文件,例如:目標(biāo)代碼、腳本、字節(jié)代碼、標(biāo)記語言文件和補(bǔ)丁。另外,本文中所提及的“內(nèi)容”,也可以包括本質(zhì)上不可執(zhí)行的文件,例如可能需要被打開的文檔或需要被存取的其它數(shù)據(jù)文件。
如在本描述中所使用的,術(shù)語“部件”、“數(shù)據(jù)庫”、“模塊”、“系統(tǒng)”以及類似的術(shù)語旨在指代與計(jì)算機(jī)相關(guān)的實(shí)體,其可以是硬件、固件、硬件和軟件的結(jié)合、軟件、或執(zhí)行中的軟件。例如,部件可以是但不限于是處理器上運(yùn)行的進(jìn)程、處理器、對象、可執(zhí)行文件、執(zhí)行的線程、程序、和/或計(jì)算機(jī)。舉例來說,計(jì)算設(shè)備上運(yùn)行的應(yīng)用和計(jì)算設(shè)備均可以是部件。一個(gè)或多個(gè)部件可以存在于執(zhí)行中的進(jìn)程和/或線程內(nèi),以及部件可以位于一臺計(jì)算機(jī)上和/或分布于兩臺或更多臺計(jì)算機(jī)之間。另外,可以從其上存儲了各種數(shù)據(jù)結(jié)構(gòu)的各種計(jì)算機(jī)可讀介質(zhì)來執(zhí)行這些部件。這些部件可以通過本地和/或遠(yuǎn)程過程的方式,例如根據(jù)具有一個(gè)或多個(gè)數(shù)據(jù)分組(例如,來自通過信號的方式與本地系統(tǒng)、分布式系統(tǒng)中的另一個(gè)部件進(jìn)行交互和/或跨越諸如互聯(lián)網(wǎng)這樣的網(wǎng)絡(luò)與其它系統(tǒng)進(jìn)行交互的一個(gè)部件的數(shù)據(jù))的信號,來進(jìn)行通信。
術(shù)語“虛擬存儲器”指的是從引用存儲器的應(yīng)用或圖像對實(shí)際物理存儲器的抽象??梢允褂梅g或映射將虛擬存儲器地址轉(zhuǎn)換為物理存儲器地址。該映射可以是如1對1一樣簡單的(例如,物理地址等于虛擬地址)、適度復(fù)雜的(例如,物理地址等于距虛擬地址的常量偏移),或該映射可以是復(fù)雜的(例如,每4kb頁面唯一地映射)。該映射可以是靜態(tài)的(例如,在啟動(dòng)時(shí)執(zhí)行一次),或該映射可以是動(dòng)態(tài)的(例如,隨著分配和釋放存儲器而不斷演變)。
在本描述中,可互換地使用術(shù)語“通信設(shè)備”、“無線設(shè)備”、“無線電話”、“無線通信設(shè)備”以及“無線手機(jī)”。隨著第三代(“3g”)無線技術(shù)以及第四代(“4g”)的出現(xiàn),更大的可用帶寬已經(jīng)使得更多的便攜式計(jì)算設(shè)備能夠具有更多種多樣的無線能力。因此,便攜式計(jì)算設(shè)備可以包括蜂窩電話、傳真機(jī)、pda、智能電話、導(dǎo)航設(shè)備、或具有無線連接或鏈接的手持計(jì)算機(jī)。
圖1示出了包括多個(gè)互連的具有非統(tǒng)一存儲器架構(gòu)(numa)的物理管芯(例如,片上系統(tǒng)(soc)102和soc202)的系統(tǒng)100的實(shí)施例。系統(tǒng)100可以被實(shí)現(xiàn)為設(shè)計(jì)用于任何計(jì)算設(shè)備的、或者駐留在任何計(jì)算設(shè)備中的多管芯產(chǎn)品,上述任何計(jì)算設(shè)備包括:個(gè)人計(jì)算機(jī)、工作站、服務(wù)器、便攜式計(jì)算設(shè)備(pcd)(例如,蜂窩電話、便攜式數(shù)字助理(pda)、便攜式游戲控制臺、掌上計(jì)算機(jī)或平板計(jì)算機(jī))。soc102和202通過管芯間接口116電耦合。每個(gè)soc通過高性能總線電耦合于近的或本地的易失性存儲器設(shè)備(例如,動(dòng)態(tài)隨機(jī)存取存儲區(qū)(dram)設(shè)備)。如圖1中的實(shí)施例中示出的那樣,soc102通過總線105連接于本地dram104,并且soc202通過總線205連接于本地dram204??偩€105和205分別由soc102和202提供具有對本地dram104和204的更低延遲的更快速的、更高性能的訪問。如本領(lǐng)域已知的那樣,numa使得soc102和202中的每一個(gè)都能夠訪問其它soc的本地dram,管芯間接口116可以造成更高的延時(shí)以及相對更低的性能。
soc102和202包括各個(gè)片上或管芯上部件。應(yīng)當(dāng)了解的是,片上部件可以隨需要而變化,并且系統(tǒng)100可以包括任何數(shù)量的soc。在圖1的實(shí)施例中,soc102包括通過soc總線112互連的一個(gè)或多個(gè)處理器108(例如,中央處理單元(cpu)、圖形處理單元(gpu)、數(shù)字信號處理器(dsp)等)、dram控制器106以及芯片間接口控制器114。soc202包括通過soc總線212互連的一個(gè)或多個(gè)處理器208、dram控制器206以及芯片間接口控制器214。soc102和202可以包括從soc的本地dram(分別通過總線105和205)或通過管芯間接口116連接于另一個(gè)soc的遠(yuǎn)的dram請求存儲器資源的一個(gè)或多個(gè)存儲器客戶端。dram控制器106和206分別管理去往和來自dram104和204的數(shù)據(jù)流。芯片間接口控制器114和214管理soc102和202之間的數(shù)據(jù)流。
每個(gè)soc均可以包括操作系統(tǒng)(o/s110和220),其支持通過諸如系統(tǒng)存儲器管理器200的虛擬存儲器來管理。系統(tǒng)存儲器管理器200被配置為控制可以使用硬件和/或軟件二者實(shí)現(xiàn)的各個(gè)存儲器管理技術(shù)。如本領(lǐng)域已知的那樣,系統(tǒng)存儲器管理器200將由程序使用的存儲器地址(稱作虛擬地址)映射到計(jì)算機(jī)存儲器中的物理地址。o/s110和210管理虛擬地址空間和物理存儲器(例如,dram104和204)到虛擬存儲器的分配。地址翻譯硬件(例如,存儲器管理單元(mmu))將虛擬地址翻譯成物理地址。
參考圖2,應(yīng)當(dāng)了解的是,o/s110、o/s210以及系統(tǒng)存儲器管理器200可以被配置為支持numa,在numa中,跨越多個(gè)處理器來管理存儲器訪問、任務(wù)以及工作負(fù)荷。如下文更詳細(xì)描述的那樣,系統(tǒng)存儲器管理器200可以包括用于提供具有在系統(tǒng)100的非統(tǒng)一存儲器架構(gòu)中的多個(gè)處理器上的改進(jìn)延遲的存儲器訪問的各個(gè)模塊。自適應(yīng)numa延遲優(yōu)化模塊201在下文中結(jié)合圖3-7進(jìn)行描述,而非阻塞numa延遲優(yōu)化模塊在下文中結(jié)合圖8-12進(jìn)行描述。
如圖2的示例性實(shí)施例中示出的那樣,系統(tǒng)存儲器管理器200可以被配置為選擇性地復(fù)制存儲器數(shù)據(jù),從而使得每個(gè)管芯(例如,soc102和202)在本地dram(即,直接與之連接的dram)中具有該數(shù)據(jù)的副本。例如,駐留在dram204中的存儲器數(shù)據(jù)300可以被多個(gè)處理器訪問。存儲器數(shù)據(jù)300可以包括多個(gè)數(shù)據(jù)部分302、304、306以及308。駐留在soc202上,處理器220可以請求訪問數(shù)據(jù)304和308,而處理器222可以請求訪問數(shù)據(jù)302和306。駐留在soc102上,處理器120可以請求訪問數(shù)據(jù)302和304,而處理器122可以請求訪問數(shù)據(jù)306。盡管numa使得處理器120和122能夠通過管芯間接口116訪問存儲器數(shù)據(jù)300,但是可能期望在dram104上選擇性地復(fù)制位于dram204中的存儲器數(shù)據(jù)(反之亦然)以向soc102上的處理器120和122提供對它們需要的存儲器的更高性能、更低延遲的訪問。
應(yīng)當(dāng)了解的是,為了系統(tǒng)100中選擇性地復(fù)制存儲器數(shù)據(jù),可以采用各種方法、算法以及技術(shù)。在圖3-7中示出的實(shí)施例中,系統(tǒng)100通過定位、識別和/或管理空閑物理頁面對來復(fù)制存儲器數(shù)據(jù)。如圖3中示出的那樣,空閑物理頁面對399包括dram104中的可用物理地址與dram204中的相同的可用物理地址的邏輯映射。應(yīng)當(dāng)了解的是,在示例性實(shí)施例中,相同的物理地址可以指的是它們的頁面地址具有完全相同的低位n比特的兩個(gè)物理頁面地址,其中,n=log2(單個(gè)存儲器芯片的容量)。例如,在包括兩個(gè)1gb的存儲器芯片的2gb系統(tǒng)中,物理頁面對可以在位置(29、28、27...14、13、12)處具有完全相同的地址比特。應(yīng)當(dāng)了解的是,可以不比較比特(11、10...1、0),這是因?yàn)樗鼈兛赡芤呀?jīng)在例如4kb的頁面內(nèi)??梢酝ㄟ^頁面表格350和360來提供邏輯映射。頁面表格350(對應(yīng)于dram104)可以由在soc102上執(zhí)行的虛擬存儲器管理器402管理。頁面表格360(對應(yīng)于dram204)可以由在soc202上執(zhí)行的虛擬存儲器管理器404管理。頁面表格350和360包括對物理地址402-432的范圍的索引。作為例子,頁面表格350中的物理地址402a和頁面表格360中的物理地址402b代表物理頁面對,這是因?yàn)樗鼈兙哂邢嗤奈锢淼刂?。空閑或可用物理頁面對399指的是可用于dram104和204二者中的存儲器分配的物理頁面對(即,402a/b、404a/b、406a/b等)。在圖3中,空閑物理頁面對在灰視方框中進(jìn)行標(biāo)識。就這點(diǎn)而言,利用字母“a”標(biāo)引的物理地址(例如,406a、408a等)對應(yīng)于soc102/dram104,而利用字母“b”標(biāo)引的物理地址(例如,406b、408b等)對應(yīng)于soc202/dram204,其中相同編號的“a/b”對包括物理頁面對399。
為了選擇性地復(fù)制用于在多個(gè)處理器(例如,soc102上的處理器120和122以及soc202上的處理器220和222)上訪問的存儲器數(shù)據(jù),可以提供經(jīng)修改的頁面表格條目400,如圖4中所示。該經(jīng)修改的頁面表格條目400包括用于將物理頁面索引454存儲到物理地址的字段454,以及用于存儲復(fù)制比特值452的復(fù)制屬性字段450。復(fù)制比特值“0”或“假”可以用于默認(rèn)操作中以將單個(gè)物理頁面映射到對應(yīng)的虛擬頁面地址。當(dāng)期望改進(jìn)的延遲并且當(dāng)空閑物理頁面對399可用時(shí),可以將該復(fù)制比特值設(shè)置為“1”或“真”,其使得系統(tǒng)100能夠?qū)⒃摽臻e物理頁面對399邏輯地映射到單個(gè)虛擬頁面地址。應(yīng)當(dāng)了解的是,復(fù)制屬性字段450可以用于選擇性地復(fù)制存儲器數(shù)據(jù),從而使得每個(gè)soc管芯在本地dram中都具有該數(shù)據(jù)的副本。
圖5示出了用于使用空閑物理頁面對399在numa中分配存儲器的方法500。方法500可以由o/s110、o/s210和/或系統(tǒng)存儲器管理器200實(shí)現(xiàn)。在方框500處,可以從在第一soc102上執(zhí)行的進(jìn)程接收針對虛擬存儲器頁面的請求。在方框502處,該系統(tǒng)確定是否存在任何空閑物理頁面對399。如果空閑物理頁面對399不可用(判斷框506),則可以將虛擬頁面地址邏輯地映射到單個(gè)物理頁面。然而,如果可用,則可以將該空閑物理頁面對399邏輯地映射到相同的虛擬頁面地址(方框508)。如上所述,可以通過修改頁面表格條目350來執(zhí)行該邏輯映射。例如,在方框510處,可以通過將復(fù)制比特值452設(shè)置為“1”或“真”值來修改復(fù)制屬性字段450,其復(fù)制存儲在dram104和204上的相同物理地址中的存儲器數(shù)據(jù)。
系統(tǒng)存儲器管理器200可以被配置為使得o/s110和o/s210能夠執(zhí)行后臺進(jìn)程以定位和/或管理空閑物理頁面對399。圖6示出了用于釋放額外的物理頁面對的方法600??梢蕴峁┧写鎯ζ魑锢眄撁娴娜帜夸?。在方框602處,操作系統(tǒng)可以通過該全局目錄進(jìn)行搜索。在方框604處,操作系統(tǒng)可以確定頁面表格350和360是否識別具有分配給不同虛擬地址的匹配物理地址的任何物理頁面。如果不存在匹配(判斷框606),則流程可以返回方框602以隨后檢查潛在的匹配。如果發(fā)現(xiàn)匹配,則在方框608處,操作系統(tǒng)可以通過重分配物理頁面中的一個(gè)物理頁面的沖突物理地址來創(chuàng)建空閑物理頁面對399。具有原始物理地址的剩余物理頁面現(xiàn)在可用作新的物理頁面對399。
圖7示出了用于通過將先前分配的單個(gè)頁面轉(zhuǎn)換為成對的頁面來提高存儲器復(fù)制的性能的另一個(gè)技術(shù)。方法700可以用于確定這樣的情況,在該情況中,存在較少的存儲器壓力并且變得期望從默認(rèn)的非復(fù)制模式切換到上文所描述的切換模式。在判斷框702處,操作系統(tǒng)可以確定空閑頁面的總數(shù)量是否超出最小閾值。如果沒有超出該閾值,則可以以預(yù)定間隔來重復(fù)判斷框702。如果超出了該閾值,則在方框704處,操作系統(tǒng)可以在全局目錄中的全部存儲器物理頁面幀進(jìn)行遍歷搜索。操作系統(tǒng)可以確定是否存在這樣的情況:具有復(fù)制比特值452未啟動(dòng)(值=“0”或“假”)的頁面而匹配頁面對是空閑的。在判斷框706處,如果匹配被定位,則操作系統(tǒng)可以將頁面復(fù)制到該頁面對中的另一個(gè)頁面,并且將復(fù)制比特值設(shè)置為“1”或“真”。
圖8-12示出了實(shí)現(xiàn)基于不共享相同物理地址的空閑物理頁面對的非阻塞、匿名分配的復(fù)制方案的另一個(gè)實(shí)施例。該復(fù)制方案可以由系統(tǒng)100中的非阻塞numa延遲模塊203(圖1)實(shí)現(xiàn)。為了在不考慮匹配物理地址的情況下選擇性地復(fù)制存儲器數(shù)據(jù),可以提供經(jīng)修改的頁面表格條目800,如圖8中示出的那樣。經(jīng)修改的頁面表格條目800包括復(fù)制屬性字段450、用于存儲對與第一dram104相關(guān)聯(lián)的第一物理地址的物理頁面索引#11406的字段802、以及用于存儲副本地址的新的字段804。該副本地址包括對與第二dram204相關(guān)聯(lián)的第二物理地址1408的物理頁面索引#2。就這點(diǎn)來說,頁面表格條目800可以支持單個(gè)虛擬地址到具有任意(例如,不需要是相同的)物理地址的物理頁面對的映射,每個(gè)管芯一個(gè)。頁面表格條目800實(shí)現(xiàn)到這兩個(gè)物理地址的翻譯。圖12示出了單個(gè)虛擬地址怎樣由頁面索引1402(第13個(gè)比特及以上)和頁面偏移1404(低位12個(gè)比特)組成,以及單獨(dú)的頁面索引1402怎樣分別基于頁面表格字段802和804映射到物理頁面索引#11406和物理頁面索引#21408。頁面偏移1404不被修改并且將其用于訪問每個(gè)4kb頁面內(nèi)的字。
圖9示出了用于使用任意物理頁面對在numa中分配存儲器的方法900。在方框902處,可以從在第一soc102上執(zhí)行的進(jìn)程接收針對虛擬存儲器頁面的請求。系統(tǒng)可以實(shí)現(xiàn)各種閾值以確定是否存在足夠的存儲器以支持復(fù)制。應(yīng)當(dāng)了解的是,該復(fù)制可以基于逐頁來發(fā)生。在實(shí)施例中,在判斷框904處,系統(tǒng)可以確定多個(gè)可用物理頁面是否超出針對使用dram104的soc102的最小閾值。如果“是”,則在方框906處,可以將針對soc102的存儲器充足值設(shè)置為“真”。如果“否”,則在方框908處,可以將針對soc102的存儲器充足值設(shè)置為“假”。在判斷框910處,系統(tǒng)可以確定可用物理頁面的數(shù)量是否超出針對使用dram204的soc202的最小閾值。如果“是”,則在方框912處,可以將針對soc202的存儲器充足值設(shè)置為“真”。如果“否”,則在方框914處,可以將針對soc202的存儲器充足值設(shè)置為“假”?;谠摯鎯ζ鞒渥阒?,在方框916處,系統(tǒng)可以確定要執(zhí)行的合適的分配行動(dòng)。如圖9b中示出的那樣,如果在soc102和soc202二者中都有充足的存儲器可用(即,二者的值都=“真”),則操作系統(tǒng)可以從使用dram104的soc102和使用dram204的soc202分配頁面,并且將該復(fù)制比特值設(shè)置為“真”或“1”以啟動(dòng)復(fù)制,當(dāng)復(fù)制比特值以這種方式啟動(dòng)時(shí),還可以將副本地址添加到頁面表格條目800中。如果在soc102或soc202中有(但不是二者都有)充足的存儲器可用時(shí),取決于哪個(gè)soc具有充足的存儲器(即,值=“真”),操作系統(tǒng)可以從使用dram104的soc102或使用dram204的soc202分配單個(gè)頁面。如果soc102或soc202二者都不具有充足的存儲器(即,二者值都=“假”),則操作系統(tǒng)將分配失敗并且觸發(fā)異常。針對分配失敗的異常處理與現(xiàn)有的方法沒有不同,并且調(diào)用將終止較低優(yōu)先級的不經(jīng)常訪問的進(jìn)程以便釋放分配給它們的存儲器的執(zhí)行程序或服務(wù)。應(yīng)當(dāng)了解的是,在其中可以共享存儲器的numa中,可以從使用dram104的soc102或使用dram204的soc202分配單個(gè)頁面。
圖10示出了用于執(zhí)行涉及經(jīng)修改的頁面表格條目800的存儲器寫事務(wù)的方法1000的實(shí)施例。應(yīng)當(dāng)了解的是,該方法1000可以通過軟件和/或硬件來實(shí)現(xiàn)。在硬件實(shí)施例中,該方法可以通過例如存儲器管理單元(mmu)中的翻譯后備緩沖器(tlb)來執(zhí)行。在方框1000處,存儲器寫事務(wù)由tlb接收。在方框1004處,tlb執(zhí)行頁面表格條目800的查找。在方框1006處,讀復(fù)制比特值452。如果該復(fù)制比特值是“真”(判斷框1008),則讀副本地址(方框1010)并且高速緩存硬件將數(shù)據(jù)刷新到原始物理地址和副本物理地址二者中。如果該復(fù)制比特值是“假”,則高速緩存硬件只將數(shù)據(jù)刷新到原始物理地址中。
圖11示出了用于執(zhí)行涉及經(jīng)修改的頁面表格條目800的存儲器讀事務(wù)的方法1100的實(shí)施例。應(yīng)當(dāng)了解的是,該方法1100可以通過軟件和/或硬件來實(shí)現(xiàn)。在硬件實(shí)施例中,該方法可以通過例如存儲器管理單元(mmu)中的翻譯后備緩沖器(tlb)來執(zhí)行。在方框1100處,存儲器讀事務(wù)由tlb接收。在方框1104處,tlb執(zhí)行頁面表格條目800的查找。在方框1106處,讀復(fù)制比特值452。如果該復(fù)制比特值是“真”(判斷框1108),則讀副本地址(方框1110)并且從副本地址或原始地址(方框1112)發(fā)生高速緩存填充。如果該復(fù)制比特值是“假”,則從原始地址發(fā)生高速緩存填充。
如上所述,系統(tǒng)100可以被并入任何期望的計(jì)算系統(tǒng)中。圖13示出了包括soc102和soc202的示例性便攜式計(jì)算設(shè)備(pcd)1300。在該實(shí)施例中,soc102和soc202可以包括多核cpu1302。該多核cpu1302可以包括第零核1310、第一核1312、以及第n核1314。這些核中的一個(gè)可以包括例如圖形處理單元(gpu),而其它核中的一個(gè)或多個(gè)包括cpu。
顯示器控制器328和觸摸屏控制器330可以耦合于cpu602。反過來,在soc102和202外部的觸摸屏顯示器606可以耦合于顯示器控制器328和觸摸屏控制器330。
圖13還示出了耦合于多核cpu1302的視頻編碼器334,例如,逐行倒相制式(pal)編碼器、順序與存儲彩色電視系統(tǒng)(secam)編碼器或國家電視系統(tǒng)委員會(ntsc)編碼器。此外,視頻放大器336耦合于視頻編碼器334和觸摸屏顯示器1306。另外,視頻端口338耦合于視頻放大器336。如圖13顯示的那樣,通用串行總線(usb)控制器340耦合于多核cpu602。另外,usb端口342耦合于usb控制器340。存儲器104和204以及用戶識別模塊(sim)卡346也可以耦合于多核cpu1302。
此外,如圖13所述,數(shù)字照相機(jī)348可以耦合于多核cpu1302。在示例性方面中,數(shù)字照相機(jī)348是電荷耦合器件(ccd)照相機(jī)或互補(bǔ)金屬氧化物半導(dǎo)體(cmos)照相機(jī)。
如圖13中進(jìn)一步所示,立體聲音頻編碼器-解碼器(codec)350可以耦合于多核cpu1302。此外,音頻放大器352可以耦合于立體聲音頻codec350。在示例性方面中,第一立體聲揚(yáng)聲器354和第二立體聲揚(yáng)聲器356耦合于音頻放大器352。圖13顯示麥克風(fēng)放大器358也可以耦合于立體聲音頻codec350。此外,麥克風(fēng)360可以耦合于麥克風(fēng)放大器358。在特定方面中,頻率調(diào)制(fm)無線電調(diào)諧器362可以耦合于立體聲音頻codec350。此外,fm天線364耦合于fm無線電調(diào)諧器362。此外,立體聲頭戴式耳機(jī)366可以耦合于立體聲音頻codec350。
圖13還示出了射頻(rf)收發(fā)機(jī)368可以耦合于多核cpu1302。rf開關(guān)370可以耦合于rf收發(fā)機(jī)368和rf天線372。鍵盤204可以耦合于多核cpu602。此外,具有麥克風(fēng)的單聲道耳機(jī)376可以耦合于多核cpu1302。此外,振蕩器設(shè)備378可以耦合于多核cpu1302。
圖13還顯示電源380可以耦合于soc102和soc202。在特定方面中,電源380是向pcd1300的需要電力的各個(gè)部件提供電力的直流(dc)電源。此外,在特定方面中,電源是可再充電的dc電池或從連接于交流(ac)電源的ac到dc變換器導(dǎo)出的dc電源。
圖13還指示pcd1300還可以包括網(wǎng)卡388,網(wǎng)卡388可用于接入數(shù)據(jù)網(wǎng)絡(luò),例如局域網(wǎng)、個(gè)域網(wǎng)或任何其它網(wǎng)絡(luò)。網(wǎng)卡388可為藍(lán)牙網(wǎng)卡、wifi網(wǎng)卡、個(gè)域網(wǎng)(pan)卡、個(gè)域網(wǎng)超低功率技術(shù)(peanut)網(wǎng)卡、電視/電纜/衛(wèi)星調(diào)諧器、或本領(lǐng)域眾所周知的任何其它網(wǎng)卡。此外,網(wǎng)卡388可并入到芯片中,即網(wǎng)卡388可為芯片上的整個(gè)解決方案,且可以不是單獨(dú)的網(wǎng)卡388。
參考圖13,應(yīng)當(dāng)了解的是,存儲器104、ram卡105、觸摸屏顯示器606、視頻端口338、usb端口342、相機(jī)348、第一立體聲揚(yáng)聲器354、第二立體聲揚(yáng)聲器356、麥克風(fēng)360、fm天線364、立體聲頭戴式耳機(jī)366、rf開關(guān)370、rf天線372、鍵盤374、單聲道耳機(jī)376、振動(dòng)器378以及電源380可以在片上系統(tǒng)102的外部。
應(yīng)當(dāng)了解的是,本文所描述的方法步驟中的一者或一者以上可作為計(jì)算機(jī)程序指令(諸如,上文所描述的模塊)存儲于存儲器中。這些指令可由任何合適的處理器與對應(yīng)的模塊結(jié)合或合作執(zhí)行以執(zhí)行本文所描述的方法。
本描述中所描述的過程或處理流程中的某些步驟自然先于針對本發(fā)明的其它步驟來如同所描述的運(yùn)行。然而,在這種次序或順序不改變本發(fā)明的功能的情況下,本發(fā)明不受限于所描述的步驟的次序。即,應(yīng)認(rèn)識到的是,在不脫離本發(fā)明的范圍及精神的情況下,可以將一些步驟在其它步驟之前、之后或與其它步驟并行地(基本上與其它步驟同時(shí)地)執(zhí)行。在一些實(shí)例中,在不脫離本發(fā)明的情況下,可以省略或者不執(zhí)行某些步驟。此外,諸如“其后”、“然后”、“接下來”等詞語不是要限制步驟的次序。這些詞語僅用于引導(dǎo)讀者通讀示例性方法的描述。
另外,編程設(shè)計(jì)領(lǐng)域的普通技術(shù)人員能夠基于例如本說明書中的流程圖及相關(guān)聯(lián)的描述而毫不費(fèi)力地編寫計(jì)算機(jī)代碼或識別適當(dāng)?shù)挠布?或電路來實(shí)施本公開的發(fā)明。
因此,對程序代碼指令或詳細(xì)硬件設(shè)備的特定集合的公開不視為對于充分理解如何制造及使用本發(fā)明的必須。在以上的描述中以及結(jié)合示出了各個(gè)處理流程的附圖,較為詳細(xì)地解釋了所提出的計(jì)算機(jī)實(shí)施的過程的創(chuàng)造性功能。
在一個(gè)或多個(gè)示例性方案中,所描述的功能可以由硬件、軟件、固件、或其任何組合來實(shí)現(xiàn)。如果用軟件實(shí)現(xiàn),則該功能可存儲在計(jì)算機(jī)可讀介質(zhì)上或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼來傳輸。計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)二者,該通信介質(zhì)包括促進(jìn)將計(jì)算機(jī)程序從一處傳送到另一處的任何介質(zhì)。存儲介質(zhì)可以是可由計(jì)算機(jī)存取的任何可用介質(zhì)。舉例而言并非限制,該計(jì)算機(jī)可讀介質(zhì)可包括ram、rom、eeprom、nand閃存、nor閃存、m-ram、p-ram、cd-rom或其它光盤存儲器、磁盤存儲器或其它磁存儲設(shè)備或可用于攜帶或存儲具有指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼并且可由計(jì)算機(jī)存取的任何其它介質(zhì)。
此外,可將任何連接恰當(dāng)?shù)胤Q為計(jì)算機(jī)可讀介質(zhì)。例如,如果使用同軸電纜、光纖光纜、雙絞線、數(shù)字用戶線(“dsl”)或諸如紅外線、無線電及微波的無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源來傳輸軟件,則同軸電纜、光纖光纜、雙絞線、dsl、或諸如紅外線、無線電及微波的無線技術(shù)包含在介質(zhì)的定義中。
本文中所使用的,磁盤和光盤包括壓縮光盤(“cd”)、激光盤、光盤、數(shù)字多功能光盤(“dvd”)、軟盤及藍(lán)光盤,其中磁盤通常磁性地復(fù)制數(shù)據(jù),而光盤則利用激光光學(xué)地復(fù)制數(shù)據(jù)。以上各物的組合也應(yīng)包含在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
對于本領(lǐng)域普通技術(shù)人員來說,在不脫離本發(fā)明的精神和范圍的情況下,附屬于本發(fā)明的替代實(shí)施例將變得顯而易見。因此,盡管已詳細(xì)說明和描述了選定的方案,但應(yīng)理解的是,在不脫離作為由所附權(quán)利要求書所定義的本發(fā)明的精神及范圍的情況下,可在其中做出各種替代及改變。