【廣告】
程序的運(yùn)行過(guò)程,實(shí)際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過(guò)程。當(dāng)程序要執(zhí)行的部分被裝載到內(nèi)存后,CPU要從內(nèi)存中取出指令,然后指令解了碼(以便知道類型和操作數(shù),簡(jiǎn)單的理解為CPU要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個(gè)指令、解了碼、執(zhí)行,以此類推直到程序退出。
CPU主要包括兩個(gè)部分,即控制器、運(yùn)算器,其中還包括高速緩沖存儲(chǔ)器及實(shí)現(xiàn)它們之間聯(lián)系的數(shù)據(jù)、控制的總線。電子計(jì)算機(jī)三大核心部件就是CPU、內(nèi)部存儲(chǔ)器、輸入/輸出設(shè)備。CPU的功效主要為處理指令、執(zhí)行操作、控制時(shí)間、處理數(shù)據(jù)。
注:指令集的軟硬件層次之分:硬件指令集是硬件層次上由CPU自身提供的可執(zhí)行的指令集合。軟件指令集是指語(yǔ)言程序庫(kù)所提供的指令,只要安裝了該語(yǔ)言的程序庫(kù),指令就可以執(zhí)行。
CPU出現(xiàn)于大規(guī)模集成電路時(shí)代,處理器架構(gòu)設(shè)計(jì)的迭代更新以及集成電路工藝的不斷提升促使其不斷發(fā)展完善。從初專用于數(shù)學(xué)計(jì)算到廣泛應(yīng)用于通用計(jì)算,從4位到8位、16位、32位處理器,后到64位處理器,從各廠商互不兼容到不同指令集架構(gòu)規(guī)范的出現(xiàn),CPU 自誕生以來(lái)一直在飛速發(fā)展。
為了改善性能,CPU已經(jīng)不是單條取指-->解了碼-->執(zhí)行的路線,而是分別為這3個(gè)過(guò)程分別提供獨(dú)立的取值單元,解了碼單元以及執(zhí)行單元。這樣就形成了流水線模式。
CPU有強(qiáng)大的算術(shù)運(yùn)算單 元,可以在很少的時(shí)鐘周期內(nèi)完成算術(shù)計(jì)算。同時(shí),有很大的緩存可以保存很多數(shù)據(jù)在里面。此外,還有復(fù)雜的邏輯控制單元,當(dāng)程序有多個(gè)分支的時(shí)候, 通過(guò)提供分支預(yù)測(cè)的能力來(lái)降低延了時(shí)。GPU是基于大的吞吐量設(shè)計(jì),有很多的算術(shù)運(yùn)算單元和很少的緩存。同時(shí)GPU支持大量的線程同時(shí)運(yùn)行,如果他們需要訪問(wèn)同一個(gè)數(shù)據(jù),緩存會(huì)合并這些訪問(wèn),自然會(huì)帶來(lái)延了時(shí)的問(wèn)題。盡管有延了時(shí),但是因?yàn)槠渌阈g(shù)運(yùn)算單元的數(shù)量龐大,因此能夠達(dá)到一個(gè)非常大的吞吐量的效果。