2017年3月12日16:33:54
介紹CPU、內(nèi)存坡垫、硬盤(pán)梭灿、指令、以及它們之間的關(guān)系冰悠。
CPU:
中央處理器(英語(yǔ):Central Processing Unit堡妒,縮寫(xiě):CPU),由寄存器溉卓、運(yùn)算器皮迟、控制器和時(shí)鐘組成,是計(jì)算機(jī)的主要設(shè)備之一桑寨,功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)伏尼。計(jì)算機(jī)的可編程性主要是指對(duì)中央處理器的編程。
寄存器:用來(lái)暫存指令尉尾、數(shù)據(jù)等處理對(duì)象爆阶,可以視為內(nèi)存的一種。根據(jù)種類(lèi)的不同沙咏,一個(gè)CPU內(nèi)部會(huì)有多個(gè)寄存器辨图。
控制器:負(fù)責(zé)將內(nèi)存上的指令、數(shù)據(jù)等讀取到寄存器內(nèi)肢藐,并根據(jù)指令的執(zhí)行結(jié)果來(lái)控制整個(gè)計(jì)算機(jī)故河。調(diào)用指令分為三步:取指令,分析指令吆豹,執(zhí)行指令鱼的。
運(yùn)算器:負(fù)責(zé)運(yùn)算從內(nèi)存讀入寄存器的數(shù)據(jù)。
時(shí)鐘:負(fù)責(zé)發(fā)出CPU開(kāi)始計(jì)時(shí)的時(shí)鐘信號(hào)痘煤。不過(guò)鸳吸,也有些計(jì)算機(jī)的時(shí)鐘位于CPU外。
內(nèi)存:
訪問(wèn)速度快速勇,只是用來(lái)暫時(shí)存放CPU所要執(zhí)行的程序和數(shù)據(jù)晌砾,一旦關(guān)閉電源或者發(fā)生斷電,其中的程序和數(shù)據(jù)就會(huì)丟失烦磁。
硬盤(pán):
磁盤(pán)的一種养匈,容量大,但是訪問(wèn)速度不快都伪,因此一般作為外存來(lái)使用呕乎。磁盤(pán)可以用來(lái)長(zhǎng)時(shí)間存儲(chǔ)數(shù)據(jù),在斷電的情況下不會(huì)丟失數(shù)據(jù)陨晶。
指令:
操作碼和地址碼組成猬仁,由二進(jìn)制組成帝璧。
操作碼:
用來(lái)指明該指令所要完成的操作。
長(zhǎng)度可以是固定的也可以是變化的湿刽,前者將操作碼集中放在指令字的一個(gè)字段內(nèi)的烁,這種格式便與硬件設(shè)計(jì),
指令譯碼時(shí)間短诈闺,廣泛用于字長(zhǎng)較長(zhǎng)的渴庆、大中型見(jiàn)算計(jì)和超級(jí)小型計(jì)算機(jī)一級(jí)RISC中,例如:ibm 370和 VAX-11系列機(jī)中雅镊。
而后者的操作碼則分散在指令字的不同字段中襟雷,這種格式可以有效地壓縮操作碼的平均長(zhǎng)度,在字長(zhǎng)較短的微型計(jì)算機(jī)中被廣泛使用仁烹。
例如:PDP-11耸弄、Intel 8086/80386等。
地址碼:
用來(lái)指出該指令的源操作數(shù)的地址卓缰、結(jié)果的地址以及下一條指令的地址叙赚。
這里的地址可以是主存的地址,也可以是寄存器的地址僚饭,甚至可以使I/O設(shè)備的地址。
尋址方式:指令尋址和數(shù)據(jù)尋址兩類(lèi)胧砰。
指令尋址:
1>順序?qū)ぶ?/p>
2>跳躍尋址鳍鸵。
數(shù)據(jù)尋址:
1>立即尋址
2>直接尋址
3>隱含尋址
4>間接尋址
5>寄存器尋址
6>寄存器間接尋址
7>基址尋址
8>變址尋址
9>相對(duì)尋址
總體流程:
當(dāng)用戶對(duì)CPU發(fā)出指令,CPU所要執(zhí)行的指令和所要使用到的數(shù)據(jù)就會(huì)從磁盤(pán)加載到內(nèi)存中尉间。在CPU空閑的時(shí)候,控制器從內(nèi)存中讀取指令和數(shù)據(jù)偿乖,(按照操作系統(tǒng)的說(shuō)法,就是按照一定的個(gè)算法從外存也就是磁盤(pán)上的作業(yè)后備隊(duì)列中選取出來(lái)若干個(gè)作業(yè)哲嘲,每個(gè)作業(yè)都被分配好內(nèi)存以及所需要的資源后贪薪,將這些作業(yè)調(diào)入內(nèi)存,分別為它們建立進(jìn)程眠副,插入到進(jìn)程就緒隊(duì)列画切。
若CPU空閑了,就會(huì)按照一定的算法從進(jìn)程的就緒隊(duì)列中選出一個(gè)進(jìn)程進(jìn)行執(zhí)行囱怕。)在CPU沒(méi)有完成所有指令的時(shí)候霍弹,CPU與內(nèi)存之間始終存在著信息交換,CPU將計(jì)算中間的只保存在內(nèi)存上娃弓,
這時(shí)候如果內(nèi)存不足典格,則會(huì)從外存-硬盤(pán)上劃分一部分空間作為虛擬內(nèi)存使用,但是訪問(wèn)速度會(huì)大大降低台丛。
CPU與指令關(guān)系:
CPU通過(guò)控制器來(lái)對(duì)指令進(jìn)行取指令耍缴,分析指令,執(zhí)行指令三步操作。
硬盤(pán)與指令關(guān)系:
指令在沒(méi)被執(zhí)行時(shí)存儲(chǔ)在硬盤(pán)中防嗡。
內(nèi)存與指令關(guān)系:
當(dāng)用戶發(fā)出命令之后变汪,指令和數(shù)據(jù)一同存儲(chǔ)在內(nèi)存中,等待CPU的調(diào)用本鸣。
CPU與內(nèi)存關(guān)系:
當(dāng)CPU在執(zhí)行指令時(shí)疫衩,中間過(guò)程的數(shù)據(jù)主要存儲(chǔ)在內(nèi)存中。
內(nèi)存與硬盤(pán)關(guān)系:
硬盤(pán)用來(lái)存儲(chǔ)長(zhǎng)時(shí)間需要保存的程序和數(shù)據(jù)荣德。
內(nèi)存只有暫時(shí)存儲(chǔ)功能闷煤。
當(dāng)CPU需要執(zhí)行某條指令時(shí),程序和數(shù)據(jù)從硬盤(pán)存儲(chǔ)到內(nèi)存涮瞻,供CPU調(diào)用鲤拿。當(dāng)內(nèi)存不夠時(shí),可能會(huì)劃分出來(lái)一部分硬盤(pán)作為虛擬內(nèi)存使用署咽,但速度會(huì)降低近顷。
注:別人推薦的《程序是怎樣跑起來(lái)的》和《深入理解計(jì)算機(jī)系統(tǒng)》還沒(méi)抽出時(shí)間來(lái)看,有空看完之后再修改下宁否。
參考文獻(xiàn):
湯小丹窒升,梁紅兵等 計(jì)算機(jī)操作系統(tǒng). ?4版 ?西安:西安電子科技大學(xué)出版社, 2014
唐朔飛 計(jì)算機(jī)組成原理. ?2版 ?北京:高等教育出版社, ?2008