可動(dòng)態(tài)構(gòu)建的計(jì)算機(jī)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是將硬件和軟件組件識(shí)別為被動(dòng)態(tài)構(gòu)建以創(chuàng)建符合由執(zhí)行進(jìn)程定義的功能和性能要求的計(jì)算機(jī)系統(tǒng)和子系統(tǒng)的單獨(dú)實(shí)體的一種新穎和獨(dú)特的計(jì)算機(jī)架構(gòu)。本發(fā)明用能夠做現(xiàn)有計(jì)算機(jī)架構(gòu)不能做的事情的獨(dú)特、異步、分散的進(jìn)程來(lái)取代傳統(tǒng)的計(jì)算機(jī)設(shè)
i+o
[0002]該架構(gòu)稱為“元指導(dǎo)器”(meta mentor,在此也稱為“MM”),是一種容錯(cuò)的、分布式處理架構(gòu)。元指導(dǎo)器處理器通過(guò)使用按特定路線將信號(hào)發(fā)送到硬件和軟件實(shí)體,以及從硬件和軟件實(shí)體接收信號(hào)的容錯(cuò)指導(dǎo)器交換機(jī)來(lái)創(chuàng)建系統(tǒng)和子系統(tǒng)。創(chuàng)建的系統(tǒng)和子系統(tǒng)是可以按照?qǐng)?zhí)行進(jìn)程定義的分開(kāi)或同時(shí)運(yùn)轉(zhuǎn)的不同的子結(jié)構(gòu)和獨(dú)特的配置。
[0003]根據(jù)本發(fā)明,硬件或軟件操作中任何意想不到或無(wú)計(jì)劃的變化,故意或隨意的,都定義為故障。故意故障被視為是包括計(jì)劃的系統(tǒng)或組件顛覆的故障類型。這些種類的故障通過(guò)兩種途徑,各個(gè)組件和進(jìn)程基于規(guī)則和作用的定義,其次使用分析組件和進(jìn)程特性的算法來(lái)減少。根據(jù)本發(fā)明,減少故障通過(guò)進(jìn)程分配和系統(tǒng)虛擬化來(lái)動(dòng)態(tài)地重新配置工作系統(tǒng)而實(shí)現(xiàn)。
[0004]如下面將進(jìn)一步說(shuō)明地,MM架構(gòu)超越傳統(tǒng)的一個(gè)引用域操作,MM系統(tǒng)不僅在傳統(tǒng)系統(tǒng)的數(shù)據(jù)和指令域兩者,而且在獨(dú)立且不同于數(shù)據(jù)和指令域的元指導(dǎo)器域中操作。應(yīng)當(dāng)注意的是,在該整個(gè)文檔中,數(shù)據(jù)和指令域可替代地稱為“數(shù)據(jù)和指令域”或“DID”。
[0005]MM系統(tǒng)可以動(dòng)態(tài)地重新配置以實(shí)現(xiàn)基于quorum的計(jì)算、歐拉方陣范例、請(qǐng)求可用組件(相對(duì)于冗余組件)的異步容錯(cuò)。它能夠同時(shí)運(yùn)行不同的操作系統(tǒng),并且不受限于二進(jìn)制兼容的CPU,(雖然應(yīng)用程序必須與CPU 二進(jìn)制兼容)。該系統(tǒng)還可以監(jiān)測(cè)應(yīng)用軟件的完整性,阻止未經(jīng)授權(quán)人員或程序的訪問(wèn),并記錄惡意軟件的活動(dòng)。
[0006]MM架構(gòu)的獨(dú)特設(shè)計(jì)通過(guò)在經(jīng)典的檢查點(diǎn)動(dòng)作中保存系統(tǒng)狀態(tài)信息來(lái)從故障中恢復(fù)。系統(tǒng)可以在中斷、系統(tǒng)上下文切換或被迫超時(shí)期間設(shè)置檢查點(diǎn)。在硬件故障的情況下,系統(tǒng)或應(yīng)用程序自動(dòng)在上一個(gè)檢查點(diǎn)重新啟動(dòng),并重新分配工作進(jìn)程給可用的硬件。錯(cuò)誤的應(yīng)用程序(隨意或故意的)被列入“黑名單”,所有相關(guān)聯(lián)的數(shù)據(jù)、存儲(chǔ)使用情況和狀態(tài)信息都可以保存以供取證分析。在繞過(guò)錯(cuò)誤的應(yīng)用程序,并發(fā)出操作員通知之后,系統(tǒng)繼續(xù)工作,就好像從未啟動(dòng)過(guò)該應(yīng)用程序。除了對(duì)抗硬件或軟件故障,并防止計(jì)算機(jī)病毒感染,這種獨(dú)有的架構(gòu)還可以與現(xiàn)有的操作系統(tǒng)和軟件無(wú)縫地銜接。
[0007]為了說(shuō)明元指導(dǎo)器架構(gòu),回顧傳統(tǒng)的計(jì)算機(jī)架構(gòu)是有益的,它可以大致分為兩種類型,馮.諾依曼(VN)架構(gòu)和非馮.諾依曼架構(gòu)。產(chǎn)品計(jì)算機(jī)系統(tǒng)中絕大多數(shù)都包括VN架構(gòu)。參見(jiàn)圖1,示出了傳統(tǒng)的VN架構(gòu),包括四個(gè)組件:(a)具有算術(shù)邏輯單元(ALU)和控制寄存器(2)的處理單元;(b)包括指令寄存器和程序計(jì)數(shù)器3的控制單元(ALU和控制單元統(tǒng)稱為中央處理單元,通常稱為“CPU”4) ;(c)用來(lái)存儲(chǔ)數(shù)據(jù)和指令兩者的通用存儲(chǔ)器5(通用存儲(chǔ)器示為六個(gè)“Mem”單元);以及⑷輸入6a和輸出6b機(jī)制。根據(jù)本領(lǐng)域的一些公知常識(shí),馮?諾依曼架構(gòu)已經(jīng)發(fā)展到的階段意味著存儲(chǔ)程序的計(jì)算機(jī),其中指令和數(shù)據(jù)都存儲(chǔ)在通用存儲(chǔ)器中,并且由于通過(guò)一條數(shù)據(jù)總線訪問(wèn)兩個(gè)數(shù)據(jù)片段的物理限制而不能同時(shí)訪問(wèn)指令和數(shù)據(jù)。該限制稱為馮.諾依曼瓶頸,并通常稱為架構(gòu)限制。
[0008]圖2示出了用維恩圖表示的VN架構(gòu)。CPU 4與系統(tǒng)5有交叉。該圖中的系統(tǒng)包括存儲(chǔ)器和輸入/輸出設(shè)備。啟動(dòng)時(shí),某一事件使得CPU中斷,并定義用于要開(kāi)始的進(jìn)程的地址,其定義各個(gè)組件的地址空間。在這個(gè)意義上,它是循環(huán)邏輯。CPU直接附加在系統(tǒng)上,集中時(shí)序信號(hào)協(xié)調(diào)架構(gòu)內(nèi)所有的組件功能。CPU的地址空間定義作為CPU可以直接控制的整個(gè)空間的域。系統(tǒng)和CPU的交叉代表連接這兩個(gè)實(shí)體的電路。
[0009]圖3是以虛擬化配置示出VN架構(gòu)的維恩圖。目前可以在一些應(yīng)用中看到這種配置,如Zones、Zen、Vmware和其他。VN架構(gòu)內(nèi)的虛擬化是一種軟件異常,當(dāng)軟件停止功能時(shí),系統(tǒng)恢復(fù)到圖2。它也是一種信號(hào)域系統(tǒng),用CPU和系統(tǒng)的交叉定義互連電路。
[0010]參見(jiàn)圖4,示出了另一種類的計(jì)算機(jī)架構(gòu),哈佛(H)架構(gòu)。H架構(gòu)通過(guò)將指令和數(shù)據(jù)信息分離而與VN架構(gòu)區(qū)分。這意味著這兩種信息在物理上是分開(kāi)的,通常具有不同的格式。哈佛CPU 4的輸入/輸出與VN架構(gòu)中使用的基本相同。H架構(gòu)的特點(diǎn)是,指令找取和數(shù)據(jù)訪問(wèn)對(duì)于到存儲(chǔ)器的單條物理通路不進(jìn)行競(jìng)爭(zhēng)。在該設(shè)計(jì)中隱含的是兩個(gè)不同種類并分開(kāi)的存儲(chǔ)器:數(shù)據(jù)存儲(chǔ)器7和指令存儲(chǔ)器8,以及兩條數(shù)據(jù)通路9a和9b:—條用于每一種類的存儲(chǔ)器。由于指令和數(shù)據(jù)可以大致快2倍地獲取,因此H架構(gòu)被認(rèn)為比VN架構(gòu)更快。
[0011]圖5用維恩圖示出了 H架構(gòu)??梢钥吹街噶钕到y(tǒng)10和CPU 4之間的交叉,這代表連接這兩者的電路。類似地,數(shù)據(jù)系統(tǒng)11和CPU之間的交叉表示連接電路。在VN架構(gòu)中看到,從CPU發(fā)出的集中時(shí)序信號(hào)(或信號(hào))協(xié)調(diào)系統(tǒng)內(nèi)的所有組件。同樣,與VN架構(gòu)類似,H架構(gòu)地址空間定義單一域一一數(shù)據(jù)和指令域(DID),將在下面更全面地說(shuō)明。
[0012]H架構(gòu)可以被設(shè)計(jì)為使得數(shù)據(jù)或數(shù)據(jù)存儲(chǔ)器不能修改指令存儲(chǔ)器(如果該存儲(chǔ)器是只讀的)。然而,如果任何人想要修改指令,那么從數(shù)據(jù)存儲(chǔ)器加載新的指令。例如,應(yīng)用程序基于CPU、ALU的傳輸指令將其執(zhí)行代碼從數(shù)據(jù)存儲(chǔ)器傳輸?shù)街噶畲鎯?chǔ)器。當(dāng)考慮到可能修改指令代碼導(dǎo)致系統(tǒng)的CPU執(zhí)行非預(yù)期任務(wù)的惡意軟件的影響時(shí),這點(diǎn)是重要的。
[0013]H架構(gòu)通常被描述為“受限于存儲(chǔ)器”,因?yàn)锳LU中的指令集執(zhí)行速度遠(yuǎn)大于存儲(chǔ)器訪問(wèn)時(shí)間。因此,ALU能夠處理數(shù)據(jù)的速度受到對(duì)指令存儲(chǔ)器的訪問(wèn)時(shí)間的限制,執(zhí)行速度受限于存儲(chǔ)器訪問(wèn)時(shí)間。該問(wèn)題通常通過(guò)為ALU提供少量的快速存儲(chǔ)器(稱為緩存)來(lái)解決。在實(shí)際中存在三級(jí)緩存,通常稱為L(zhǎng)I,L2, L3。
[0014]另一架構(gòu)結(jié)合H和VN架構(gòu)兩者以創(chuàng)建工作的CPU。在該CPU內(nèi)部,常見(jiàn)的VN信息分為數(shù)據(jù)和指令H類型。這通常在稱為緩存的臨時(shí)存儲(chǔ)器區(qū)域中實(shí)現(xiàn)。H架構(gòu)處理內(nèi)部(PU數(shù)據(jù)/指令,VN處理外部CPU數(shù)據(jù)/指令傳輸。指令信息可以基于算法進(jìn)行劃分。簡(jiǎn)單的算法示例是將地址范圍0-500分配為指令,而將501-1000分配為數(shù)據(jù)。該規(guī)則通過(guò)電子設(shè)計(jì)確定,并在制造后永遠(yuǎn)不能改變??刂茊卧B接到地址空間0-500,ALU連接到地址空間501-1000。這定義了 H架構(gòu),其中信息的地址空間被劃分成邏輯或數(shù)據(jù)信息,如圖4所示。在VN或H架構(gòu)中,控制單元和ALU之間的地址空間是一對(duì)一關(guān)系,如圖1和4所示。
[0015]圖1和4還不出了外部輸入6a和輸出6b模塊。這些模塊通過(guò)CPU外部的電子信號(hào)接收或處理信息。該關(guān)系在進(jìn)行電子設(shè)計(jì)時(shí)確定,并在制造后永遠(yuǎn)不能改變。輸入/輸出,信息或數(shù)據(jù)區(qū)域,以及控制通過(guò)固定的電子通路確定。信息如何被分類成指令或數(shù)據(jù)由在控制單元和ALU中起作用的軟件算法確定。從數(shù)據(jù)存儲(chǔ)器請(qǐng)求信息的控制單元可以將該信息變?yōu)橹噶钚畔ⅰ?br>[0016]算法如何執(zhí)行可以通過(guò)電子裝置或算法實(shí)現(xiàn)。在算法的情形中,什么是數(shù)據(jù)和信息由算法確定,這是循環(huán)邏輯。電子裝置通過(guò)管腳如何連接來(lái)定義硬件地址空間。它們一起定義了域一一DID。地址空間全都是信息、數(shù)據(jù)或指令,算法或電子裝置可以使用算法在地址空間內(nèi)進(jìn)行控制。而且,當(dāng)信息組件之間交換時(shí),它們遵循定義通信狀態(tài)的全部設(shè)備所共用的周期信號(hào)。這通常由CPU提供給在其域內(nèi)的外部設(shè)備,并且該信號(hào)與內(nèi)部設(shè)備保持同步。這定義了一種同步系統(tǒng),其中共用的周期信號(hào),如時(shí)鐘,在信息傳輸期間管理組件狀
??τ O
[0017]從功能上說(shuō),CPU具有其他組件,稱為緩存的臨時(shí)信息存儲(chǔ)區(qū)域通常是對(duì)數(shù)據(jù)和指令信息進(jìn)行分類的地方。圖7示出了一個(gè)示例。L2緩存12從公共L3緩存和相關(guān)聯(lián)的元件接收信息。L3緩存是VN架構(gòu),L2緩存是H架構(gòu)。這些內(nèi)部存儲(chǔ)器組件在位于CPU內(nèi)預(yù)定義的電子通路網(wǎng)絡(luò)內(nèi)創(chuàng)建高速存儲(chǔ)器傳輸。
[0018]參見(jiàn)圖7,在外部,CPU使用馮?諾依曼的架構(gòu)。使用該架構(gòu),CPU使用CPU外部的設(shè)備發(fā)出、接收并處理(信息)信號(hào)。這些設(shè)備通常比內(nèi)部設(shè)備更慢。靈活性和實(shí)際考慮使得VN成為CPU外部的架構(gòu)選擇。外部設(shè)備電傳輸信息以指示CPU如何工作。CPU根據(jù)外部存儲(chǔ)器信息(數(shù)據(jù)和指令信息兩者)運(yùn)行,并作為馮?諾依曼機(jī)器運(yùn)行。在實(shí)際中,通過(guò)稱為直接存儲(chǔ)器訪問(wèn)(DMA)的過(guò)程,數(shù)據(jù)在VN和H架構(gòu)之間大量傳輸。DMA過(guò)程繞過(guò)CPU,并比正常CPU讀取/寫(xiě)入過(guò)程更快地傳輸信息。
[0019]另一種計(jì)算機(jī)架構(gòu)稱為標(biāo)記令牌或數(shù)據(jù)流。VN和H架構(gòu)可以被分類為控制流架構(gòu),以CPU、存儲(chǔ)器和它們內(nèi)部的傳輸為特點(diǎn)。數(shù)據(jù)流系統(tǒng)在理論上不具有程序計(jì)數(shù)器,根據(jù)輸入數(shù)據(jù)對(duì)指令集的可用性來(lái)執(zhí)行進(jìn)程。它宣稱是一種人工智能引擎,聲稱具有用作某種神經(jīng)元的簡(jiǎn)單架構(gòu)的數(shù)據(jù)驅(qū)動(dòng)并行計(jì)算機(jī)。該系統(tǒng)有基于數(shù)據(jù)已經(jīng)到達(dá)的信號(hào)執(zhí)行的若干寄存器或進(jìn)程。數(shù)據(jù)流架構(gòu)可以相對(duì)于控制流架構(gòu)進(jìn)行評(píng)估或?qū)Ρ取?br>[0020]參見(jiàn)圖6A,示出了控制流和數(shù)據(jù)流程序的比較。等式定義了要解決的問(wèn)題。左手邊示出了傳統(tǒng)的控制流架構(gòu),右側(cè)示出了數(shù)據(jù)流架構(gòu)。實(shí)箭頭和線指向數(shù)據(jù)的位置和流向。在存儲(chǔ)器程序中,每個(gè)進(jìn)程都將結(jié)果存儲(chǔ)在可以被進(jìn)程會(huì)話中的下一進(jìn)程訪問(wèn)的公用存儲(chǔ)位置。虛箭頭線示出了指令進(jìn)展。標(biāo)記令牌模型將數(shù)據(jù)直接放入進(jìn)程存儲(chǔ)器。當(dāng)進(jìn)程填充滿所需的輸入令牌時(shí),該進(jìn)程觸發(fā),其輸出指向輸入或放置在標(biāo)記令牌處理元件外部的存儲(chǔ)器中的限定的進(jìn)程。
[0021]在實(shí)際中,數(shù)據(jù)流架構(gòu)具有可以互相通信的若干處理元件。圖6B描述了這樣的一種處理元件,它包括匹配單元21、找取單元22、功能單元23和相關(guān)聯(lián)的存儲(chǔ)器24a和24b。應(yīng)該注意到,在簡(jiǎn)單的數(shù)據(jù)流機(jī)器中,匹配和找取單元組合成單個(gè)處理元件,稱為具有單個(gè)存儲(chǔ)器的使能單元。然而,當(dāng)輸入令牌變得很多,或大小增加時(shí),該使能單元被配置具有兩個(gè)存儲(chǔ)器類型,每一個(gè)都附接到它的處理元件。
[0022]匹配單元將令牌(數(shù)據(jù))存儲(chǔ)在它的存儲(chǔ)器中,并檢查示出為找取單元的目的地節(jié)點(diǎn)的可用性。這需要與目的地地址和進(jìn)程標(biāo)記相關(guān)的信息。當(dāng)用于某一進(jìn)程實(shí)例的所有令牌都組裝好時(shí),將它們發(fā)送到找取單元,這將它們與節(jié)點(diǎn)描述結(jié)合(這與指令存儲(chǔ)器是類似的)。節(jié)點(diǎn)描述存儲(chǔ)在用于節(jié)點(diǎn)的存儲(chǔ)器中,并將該信息轉(zhuǎn)發(fā)到執(zhí)行進(jìn)程的功能單元。
[0023]CPU 內(nèi)部
[0024]在CPU設(shè)計(jì)中可以看到VN和H架構(gòu)。例如,圖7示出了代表典型的CPU的傳統(tǒng)的微處理器架構(gòu)。圖7中所示,L2緩存12同步地連接到單核模塊,該單核模塊包括L3緩存13、存儲(chǔ)器控制器14、快速通路進(jìn)入連接(間連接)15和四關(guān)聯(lián)指令緩存16??梢钥闯觯噶詈蛿?shù)據(jù)存儲(chǔ)器使用L2緩存。L2緩存饋送連接到最后饋送解碼指令隊(duì)列18的指令緩存的一條數(shù)據(jù)通路17 ;另一通路饋送數(shù)據(jù)緩存19。L2緩存是哈佛類型的馮?諾依曼存儲(chǔ)器,并通過(guò)單核模塊中的L3緩存連接到其他的馮.諾依曼存儲(chǔ)器。雖然可以認(rèn)為存在各種緩存的一些虛擬化,但它們都是無(wú)源設(shè)備,其中定時(shí)信號(hào)和地址空間發(fā)送到預(yù)定設(shè)備,或從預(yù)定設(shè)備發(fā)送定時(shí)信號(hào)和地址空間,并且信息總是位于其定時(shí)信號(hào)和數(shù)據(jù)通路不能改變的預(yù)定設(shè)備中,因此定義單一域一一DID,具有專用于一個(gè)設(shè)備的單一目的。在該具有單一域的系統(tǒng)中,數(shù)據(jù)和指令可以互換,引起計(jì)算錯(cuò)誤(computat1nal corrupt1n)危險(xiǎn)。
[0025]翻譯旁視緩沖器(TLB) 20,在圖7中示為“L2-TLB”,引用物理(主)馮?諾依曼存儲(chǔ)器。TLB具有固定數(shù)量的槽,這些槽包含將虛擬地址映射到物理地址的頁(yè)表項(xiàng)。該空間被分割成預(yù)固定大小的多個(gè)分頁(yè);一個(gè)分頁(yè)用于每一個(gè)表項(xiàng)。TLB有兩種模式,物理地址和虛擬地址,取決于TLB所在的位置。當(dāng)TLB位于CPU緩存和主存儲(chǔ)器存儲(chǔ)之間時(shí),對(duì)該緩存進(jìn)行物理尋址。在物理尋址中,TLB在每個(gè)存儲(chǔ)器操作上執(zhí)行查找,位于主存儲(chǔ)器中的信息被復(fù)制到緩存。
[0026]當(dāng)TLB位于CPU和緩存之間時(shí),僅當(dāng)發(fā)生緩存未命中時(shí)才引用CPUTLB。圖7示出了連接到包括四關(guān)聯(lián)指令緩存16和八關(guān)聯(lián)數(shù)據(jù)緩存19的CPU的L2-TLB。L2-TLB還連接到L3-緩存和存儲(chǔ)器控制器,該存儲(chǔ)器控制器是混合物理/虛擬位置的類型。
[0027]哈佛架構(gòu)CPU采用不同的方式。在純哈佛架構(gòu)中,如上所述,指令和數(shù)據(jù)存儲(chǔ)器是物理分離的,可以在哈佛架構(gòu)CPU外部的兩條數(shù)據(jù)通路或數(shù)據(jù)總線中看到;一條通向指令存儲(chǔ)器,另一條連接到數(shù)據(jù)存儲(chǔ)器,這導(dǎo)致兩種不同的緩存種類,一種用于指令存儲(chǔ)器,另一種用于數(shù)據(jù)存儲(chǔ)器。
[0028]盡管有幾種純哈佛架構(gòu)的商業(yè)示例,但在實(shí)際中,大多數(shù)哈佛架構(gòu)使用改性的哈佛架構(gòu)設(shè)計(jì),在有時(shí)候稱為“改性哈佛架構(gòu)”。在這種改性中,使用公用存儲(chǔ)器設(shè)備,數(shù)據(jù)和指令存儲(chǔ)器之間的分離通過(guò)存儲(chǔ)位置空間劃分,而不物理分離。這允許哈佛架構(gòu)具有使用某種公用存儲(chǔ)器而帶來(lái)的改進(jìn)的性能。然而,當(dāng)前的CPU通常在CPU緩存內(nèi)使得數(shù)據(jù)和指令存儲(chǔ)器分離。這可以在圖7中看出,其中信息信號(hào)從L2緩存指令存儲(chǔ)器地址空間行進(jìn)到四關(guān)聯(lián)指令緩存。圖7中還示出了通過(guò)標(biāo)有“256”的永久連接提供信息給四關(guān)聯(lián)數(shù)據(jù)緩存的L2緩存數(shù)據(jù)存儲(chǔ)器地址空間。一旦在數(shù)據(jù)緩存和指令緩存中將信息分離,剩余的進(jìn)程就像哈佛架構(gòu)一樣進(jìn)行。圖7中還示出了 L2和L3緩存之間的永久連接,它提供從CPU的內(nèi)部組件到CPU外部組件的通路。應(yīng)該注意的是,到L2和從L2出來(lái)的信息通道是位于CPU內(nèi)的設(shè)備專用的,并與位于CPU內(nèi)的設(shè)備保持同步。這構(gòu)成單一進(jìn)程域,DID。
[0029]多核處理器(同質(zhì))
[0030]參見(jiàn)圖8A和8B,可以將兩個(gè)或更多的中央處理單元(CPU)封裝在單個(gè)芯片內(nèi),示出了兩個(gè)示例。在該配置中,每個(gè)處理單元都相互獨(dú)立,但共享內(nèi)部資源和公用的外部接口。在具有多個(gè)內(nèi)部CPU的封裝中,每個(gè)CPU都稱為核。核如上所述共享資源。一個(gè)封裝可以包含許多個(gè)核。圖8A和8B示出了兩種類型的雙核(CPU)處理器。圖8A是具有相應(yīng)的LI緩存25和共享的L2緩存26的雙核處理器。每個(gè)核都直接連接到L2緩存,每個(gè)I/O控制都管理共享緩存中的指令和數(shù)據(jù)存儲(chǔ)器。如圖8B所示,每個(gè)核都具有不共享的單獨(dú)的L2緩存27。在每個(gè)情形中,外部接口都通過(guò)存儲(chǔ)器控制器28或總線接口 29進(jìn)行配置,并通過(guò)核地址空間定義。
[0031]參見(jiàn)圖9,示出了 64核CPU。圖9是多核CPU的代表,因?yàn)閷?duì)CPU的數(shù)量理論上沒(méi)有限制,雖然實(shí)際上存在涉及制造封裝的限制。圖9左側(cè)的設(shè)備示出了該配置如何將信息傳輸給CPU外部的輸入和輸出裝置,以及如何從CPU外部的輸入和輸出裝置傳輸信息。在頂部和底部還示出了引用物理(主)馮.諾依曼存儲(chǔ)器的四個(gè)存儲(chǔ)器控制器30。核31在它們自身之間通過(guò)2D網(wǎng)網(wǎng)絡(luò)傳輸。圖9在它的網(wǎng)絡(luò)節(jié)點(diǎn)中具有五條路徑,每條路徑都專用于傳輸一種類型的信息。該信息被隔離以增加在內(nèi)部網(wǎng)絡(luò)中的傳輸速度。附接到每個(gè)核的是網(wǎng)交換機(jī)32 (圖9,細(xì)節(jié)A),它的目的是將信息傳輸?shù)矫總€(gè)核,以及從每個(gè)核傳輸信息,并將該信息分離成五個(gè)數(shù)據(jù)通路。在每個(gè)CPU核的內(nèi)部是LI和L2緩存,如圖9所示,細(xì)節(jié)Bo在該特定的表示中,LI緩存具有哈佛架構(gòu),L2緩存具有馮.諾依曼架構(gòu)。LI指令和數(shù)據(jù)TLB確定它們?cè)贚2緩存內(nèi)相應(yīng)的存儲(chǔ)器空間。該設(shè)備獨(dú)特的特征是它在核之間共享L2緩存的能力。
[0032]多核處理器(異質(zhì))
[0033]單個(gè)CPU封裝中的多核的一些其他配置稱為圖形處理單元,它除了 CPU之外還采用稱為GPU的處理單元類型。GPU是被設(shè)計(jì)為進(jìn)行與3D計(jì)算機(jī)圖形卡相關(guān)的計(jì)算的設(shè)備。由于3D圖形計(jì)算涉及復(fù)雜的數(shù)學(xué)運(yùn)算,因此GPU被設(shè)計(jì)為進(jìn)行高速和高效的數(shù)學(xué)運(yùn)算。GPU可以用來(lái)進(jìn)行非圖形計(jì)算。當(dāng)GPU設(shè)計(jì)用于該目的時(shí),該設(shè)備稱為GPGPU (通用GPU)。用于GPGPU計(jì)算的模型是在分級(jí)、異質(zhì)的計(jì)算模型中一起使用CPU和GPU。在CPU上運(yùn)行的應(yīng)用程序的順序部分和計(jì)算密集部分通過(guò)GPU加速。在該異質(zhì)模型中,CPU和GPGPU存儲(chǔ)器連同其在馮.諾依曼、哈佛架構(gòu)或改性的哈佛架構(gòu)中的存儲(chǔ)器一起操作。
[0034]在實(shí)際中,應(yīng)用程序(代碼)在主機(jī)CPU上啟動(dòng),主機(jī)CPU被分派將應(yīng)用程序的計(jì)算密集部分分配給GPU的任務(wù)。應(yīng)用程序的剩余部分仍然在主機(jī)CPU上。將計(jì)算密集功能映射到GPU涉及稱為并行化的過(guò)程。GPGPU設(shè)備的制造提供特別的計(jì)算命令,方便將數(shù)據(jù)和指令消息移動(dòng)到GPU以及從GPU移動(dòng)數(shù)據(jù)和指令消息的并行化過(guò)程。開(kāi)發(fā)該應(yīng)用程序的個(gè)人被分派使用這些計(jì)算命令將稱為線程的100s指令片段中的1s同時(shí)加載到GPU的任務(wù)。GPU硬件管理這些線程,并進(jìn)行線程調(diào)度。
[0035]參見(jiàn)圖10,示出了傳統(tǒng)的GPGPU和GPU架構(gòu)。該設(shè)計(jì)的一個(gè)功能是在視頻顯示器上根據(jù)輸入算法顯示像素值。主機(jī)33發(fā)送算法調(diào)用幾何基元給GPGPU輸入組裝器34,它通常是對(duì)一系列GPU進(jìn)行調(diào)度以計(jì)算像素值的CPU。雖然線程處理器功能當(dāng)它使用各種繪制(shading)和呈現(xiàn)硬件和軟件從基元變換成像素時(shí)可以變得相當(dāng)復(fù)雜,但結(jié)果是GPU將像素值信息儲(chǔ)存在幀緩沖(FB)存儲(chǔ)器35中。FB存儲(chǔ)器顯示在計(jì)算機(jī)屏幕上,將圖像顯示給用戶。
[0036]再次參見(jiàn)圖10,來(lái)自主機(jī)的進(jìn)程被變換成儲(chǔ)存在FB存儲(chǔ)器中的像素值。從主機(jī)發(fā)出的進(jìn)程按特定路線發(fā)送到輸入組裝器GPGPU。輸入GPGPU連同線程調(diào)度一起使用函數(shù)隔離主機(jī)進(jìn)程,并將該隔離的子進(jìn)程分配給線程發(fā)射硬件(thread issue