【廣告】
程序的運(yùn)行過程,實(shí)際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過程。當(dāng)程序要執(zhí)行的部分被裝載到內(nèi)存后,CPU要從內(nèi)存中取出指令,然后指令解了碼(以便知道類型和操作數(shù),簡(jiǎn)單的理解為CPU要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個(gè)指令、解了碼、執(zhí)行,以此類推直到程序退出。
在計(jì)算機(jī)體系結(jié)構(gòu)中,CPU 是對(duì)計(jì)算機(jī)的所有硬件資源(如存儲(chǔ)器、輸入輸出單元) 進(jìn)行控制調(diào)配、執(zhí)行通用運(yùn)算的核心硬件單元。CPU 是計(jì)算機(jī)的運(yùn)算和控制核心。計(jì)算機(jī)系統(tǒng)中所有軟件層的操作,終都將通過指令集映射為CPU的操作。
由于CPU訪問內(nèi)存以得到指令或數(shù)據(jù)的時(shí)間要比執(zhí)行指令花費(fèi)的時(shí)間長(zhǎng)很多,因此在CPU內(nèi)部提供了一些用來保存關(guān)鍵變量、臨時(shí)數(shù)據(jù)等信息的通用寄存器。所以,CPU需要提供 一些特定的指令,使得可以從內(nèi)存中讀取數(shù)據(jù)存入寄存器以及可以將寄存器數(shù)據(jù)存入內(nèi)存。
每核上的多線程CPU都共享該核的CPU資源。
假設(shè)每核CPU都只有一個(gè)"發(fā)動(dòng)機(jī)"資源,那么線程1這個(gè)虛擬CPU使用了這個(gè)"發(fā)動(dòng)機(jī)"后,線程2就沒法使用,只能等待。
所以,超線程技術(shù)的主要目的是為了增加流水線上更多個(gè)獨(dú)立的指令,這樣線程1和線程2在流水線上就盡量不會(huì)爭(zhēng)搶該核CPU資源。所以,超線程技術(shù)利用了superscalar(超標(biāo)量)架構(gòu)的優(yōu)點(diǎn)。