用戶態(tài)的cpu,nxt貼片機(jī)cpu卡維修,只允許執(zhí)行指令集中的部分指令。一般而言,io相關(guān)和把內(nèi)存保護(hù)相關(guān)的所有執(zhí)行在用戶態(tài)下都是被禁止的,nxt貼片機(jī)cpu卡現(xiàn)場測試,此外其它一些-指令也是被禁止的,比如用戶態(tài)下不能將psw的模式設(shè)置控制位設(shè)置成內(nèi)核態(tài)。
控制器之所以知道數(shù)據(jù)放哪里、做什么運(yùn)算(比如是做加法還是邏輯運(yùn)算?)都是由指令告訴控制器的,每個指令對應(yīng)一個基本操作,比如加法運(yùn)算對應(yīng)一個指令。例如,將兩個mdr寄存器(保存了來自內(nèi)存的兩個數(shù)據(jù))中的值拷貝到alu中,然后根據(jù)的操作指令執(zhí)行加法運(yùn)算,nxt貼片機(jī)cpu卡,將運(yùn)算結(jié)果拷貝會一個mdr寄存器中,后寫入到內(nèi)存。
程序的運(yùn)行過程,實際上是程序涉及到的、未涉及到的一大堆的指令的執(zhí)行過程。當(dāng)程序要執(zhí)行的部分被裝載到內(nèi)存后,cpu要從內(nèi)存中取出指令,然后指令解了碼(以便知道類型和操作數(shù),簡單的理解為cpu要知道這是什么指令),然后執(zhí)行該指令。再然后取下一個指令、解了碼、執(zhí)行,以此類推直到程序退出。
關(guān)于cpu上的高速緩存
1、高速的緩存是cpu的寄存器,它們和cpu的材料相同,靠近cpu或接近cpu,訪問它們沒有時延(<1ns)。但容量很小,小于1kb。
2、寄存器之下,是cpu的高速緩存。分為l1緩存、l2緩存、l3緩存,每層速度按數(shù)量級遞減、容量也越來越大。
3、每-都有一個自己的l1緩存。l1緩存分兩種:l1指令緩存(l1-icache)和l1數(shù)據(jù)緩存(l1-dcache)。l1指令緩存用來存放已解了碼指令,nxt貼片機(jī)cpu卡上機(jī)測試,l1數(shù)據(jù)緩存用來放訪問非常頻繁的數(shù)據(jù)。
4、l2緩存用來存放近期使用過的內(nèi)存數(shù)據(jù)。更嚴(yán)格地說,存放的是很可能將來會被cpu使用的數(shù)據(jù)。
5、多數(shù)多核cpu的各核都各自擁有一個l2緩存,但也有多核共享l2緩存的設(shè)計。無論如何,l1是各核私有的(但對某核內(nèi)的多線程是共享的)。