計(jì)算機(jī)硬件基礎(chǔ)知識(shí)簡(jiǎn)介

姓名:朱佳男

學(xué)號(hào):17021210978

專業(yè):信號(hào)與信息處理

轉(zhuǎn)載自:http://www.lxweimin.com/p/b14a35b9b7ad

【嵌牛導(dǎo)讀】現(xiàn)代人們對(duì)于計(jì)算機(jī)的硬件基礎(chǔ)知識(shí)有所來(lái)了解是很有必要的,這篇文章主要介紹了計(jì)算機(jī)硬件的基礎(chǔ)知識(shí),包括CPU、寄存器、存儲(chǔ)器與磁盤等等。通過(guò)對(duì)本文的閱讀,能讓我們對(duì)計(jì)算機(jī)的工作方式有一個(gè)基本的認(rèn)識(shí)。

【嵌牛鼻子】計(jì)算機(jī)硬件、CPU、寄存器

【嵌牛提問(wèn) 】CPU的作用是什么?寄存器包括哪些類?操作系統(tǒng)的啟動(dòng)流程是怎么樣的?

【嵌牛正文】

一.編程語(yǔ)言的作用及與操作系統(tǒng)和硬件的關(guān)系

編程語(yǔ)言是程序員用來(lái)控制計(jì)算機(jī)的工具,是一種標(biāo)準(zhǔn)化的交流技巧,使得人與計(jì)算機(jī)之間可以在某種程度上交流,使得計(jì)算機(jī)能夠完成人所下達(dá)的工作。

在計(jì)算機(jī)剛出現(xiàn)的時(shí)候,程序員直接控制硬件來(lái)使計(jì)算機(jī)工作,但是用機(jī)器語(yǔ)言(二進(jìn)制代碼)編寫(xiě)的程序無(wú)明顯特征,難以書(shū)寫(xiě)和閱讀,具有很大的局限性。因此隨著計(jì)算機(jī)的發(fā)展,操作系統(tǒng)出現(xiàn)并成為了人與計(jì)算機(jī)硬件之間的橋梁,人直接控制操作系統(tǒng),操作系統(tǒng)調(diào)用計(jì)算機(jī)硬件。

應(yīng)用程序即是軟件,是程序員用編程語(yǔ)言寫(xiě)的程序,應(yīng)用程序在操作系統(tǒng)環(huán)境下運(yùn)行,并通過(guò)操作系統(tǒng)調(diào)動(dòng)計(jì)算機(jī)硬件完成工作。

二.計(jì)算機(jī)硬件

計(jì)算機(jī)由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備等五個(gè)邏輯部件組成,其中運(yùn)算器和控制器合稱為中央處理器(Central Processing Unit,簡(jiǎn)稱CPU),存儲(chǔ)器(Memory)分為內(nèi)存和外存,輸入設(shè)備(Input Device)和輸出設(shè)備(Output Device)即是通過(guò)各種控制器能被計(jì)算機(jī)調(diào)用并實(shí)現(xiàn)輸入或輸出的設(shè)備。

CPU是計(jì)算機(jī)系統(tǒng)的核心,是運(yùn)算中心和指揮中心。內(nèi)存是存儲(chǔ)速度較快而容量較小的存儲(chǔ)器,外存(通常指磁盤)是存儲(chǔ)速度較慢而容量較大的存儲(chǔ)器。內(nèi)存是通過(guò)電工作的存儲(chǔ)器,斷電則存儲(chǔ)的數(shù)據(jù)丟失;磁盤是通過(guò)磁工作的存儲(chǔ)器,可長(zhǎng)時(shí)間保存數(shù)據(jù)。

計(jì)算機(jī)工作時(shí),CPU從內(nèi)存中取出指令解碼并執(zhí)行,當(dāng)需要用到磁盤中的數(shù)據(jù)時(shí),則將磁盤中的數(shù)據(jù)送入內(nèi)存后再使用。

三.CPU與寄存器

CPU是計(jì)算機(jī)的大腦,通過(guò)從內(nèi)存中取出指令并解碼執(zhí)行來(lái)控制計(jì)算機(jī)各個(gè)部件。每個(gè)CPU都有一套可執(zhí)行的專門指令集,任何軟件的執(zhí)行都必須轉(zhuǎn)換為CPU的指令去執(zhí)行。

因訪問(wèn)內(nèi)存得到指令或數(shù)據(jù)花費(fèi)的時(shí)間比CPU解碼執(zhí)行指令的時(shí)間多得多,因此CPU內(nèi)部有一些保存關(guān)鍵變量和臨時(shí)數(shù)據(jù)的寄存器,CPU可直接從寄存器中調(diào)用常用數(shù)據(jù)或者通過(guò)寄存器中的內(nèi)存地址直接調(diào)用內(nèi)存中的數(shù)據(jù),使運(yùn)行速度更快。

寄存器分類:

1.通用寄存器:保存變量和臨時(shí)結(jié)果。

2.程序計(jì)數(shù)器:保存了將要取出的下一條指令的內(nèi)存地址,指令取出后,程序計(jì)數(shù)器就更新以執(zhí)行后續(xù)指令。

3.堆棧指針:它指向內(nèi)存中當(dāng)前棧的頂端,該棧包含已經(jīng)進(jìn)入但還沒(méi)有退出的每個(gè)過(guò)程中的一個(gè)框架。在一個(gè)堆棧框架中保存了有關(guān)的輸入?yún)?shù)、局部變量以及那些沒(méi)有保存在寄存器中的臨時(shí)變量。

4.程序狀態(tài)字寄存器(Program Status Word,PSW):該寄存器包含條碼位(由比較指令設(shè)置)、CPU優(yōu)先級(jí)、模式(用戶態(tài)和內(nèi)核態(tài))、以及各種其他控制位。用戶通常讀入整個(gè)PSW,但只對(duì)其中少量的字段寫(xiě)入。在系統(tǒng)調(diào)用I/O設(shè)備中,PSW非常重要。

寄存器的維護(hù):

在時(shí)間多路復(fù)用的CPU中,操作系統(tǒng)每次停止一個(gè)正在運(yùn)行的程序時(shí),都必須保存所有的寄存器,這樣在稍后該程序再次運(yùn)行時(shí),可以把這些寄存器重新裝入。

四.內(nèi)核態(tài)與用戶態(tài)及如何切換

多數(shù)CPU有兩種模式,即內(nèi)核態(tài)和用戶態(tài),PSW中有一個(gè)二進(jìn)制位控制這兩種模式。

內(nèi)核態(tài):當(dāng)CPU在內(nèi)核態(tài)運(yùn)行時(shí),可以執(zhí)行指令集中的所有指令,即可以使用硬件的所有功能。

用戶態(tài):當(dāng)CPU在用戶態(tài)運(yùn)行時(shí),僅僅只能執(zhí)行指令集中的一個(gè)子集,該子集不包含操作硬件功能的部分,一般情況下,在用戶態(tài)下不允許訪問(wèn)外圍設(shè)備,不允許占用其他程序的用戶空間,將PSW的模式設(shè)置成內(nèi)核態(tài)也是禁止的。

將用戶態(tài)切換到內(nèi)核態(tài)的過(guò)程稱為系統(tǒng)調(diào)用(system call),CPU中對(duì)應(yīng)的指令為陷阱指令(Trap Instruction),這個(gè)過(guò)程的實(shí)現(xiàn)需要通過(guò)調(diào)用操作系統(tǒng)。

五.存儲(chǔ)器系列

存儲(chǔ)器在計(jì)算機(jī)硬件中僅次于處理器(CPU),一般而言,隨著存儲(chǔ)器容量的增加,其讀寫(xiě)速度會(huì)逐漸變慢。

L1緩存指寄存器:用與CPU相同材質(zhì)制造,CPU訪問(wèn)它無(wú)時(shí)延,典型容量是:在32位CPU中為32*32,在64位CPU中為64*64,兩種情況下容量均小于1KB。

L2緩存指高速緩存:主要由硬件控制高速緩存的存取,不同CPU,高速緩存行大小不同,如X86是32BYTES,ALPHA是64BYTES,并且始終在第32或64個(gè)字節(jié)出對(duì)齊(從0開(kāi)始)。最常用的高速緩存行放置下CPU內(nèi)部或者非常接近CPU的高速緩存中。高速緩存命中指當(dāng)某個(gè)程序需要讀一個(gè)存儲(chǔ)數(shù)據(jù)時(shí),高速緩存硬件檢查所需要的高速緩存行在高速緩存中。高速緩存的命中通常需要兩個(gè)時(shí)鐘周期(2ns),若高速緩存命中,就必須訪問(wèn)內(nèi)存,這需要付出大量時(shí)間代價(jià)。高速緩存價(jià)格昂貴,因此大小有限,有些機(jī)器具有兩級(jí)甚至三級(jí)高速緩存,每一級(jí)高速緩存比前一級(jí)慢但是容量大。

主存(即內(nèi)存)通常稱為隨機(jī)訪問(wèn)存儲(chǔ)(RAM),主存是易失性存儲(chǔ),斷電后數(shù)據(jù)消失。

ROM(Read Only Memory)是非易失性隨機(jī)訪問(wèn)存儲(chǔ),但它是只讀存儲(chǔ)器。ROM速度快且便宜,在有些計(jì)算機(jī)中,用于啟動(dòng)計(jì)算機(jī)的引導(dǎo)加載模塊就存放在ROM中,另外一些I/O卡也采用ROM處理底層設(shè)備的控制。

EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的,但它們可以被擦除和重寫(xiě),不過(guò)花費(fèi)的時(shí)間比RAM多。閃存速度介于RAM和磁盤之間,但閃存擦除次數(shù)過(guò)多就會(huì)磨損。

CMOS是易失性的,許多計(jì)算機(jī)利用它來(lái)保持當(dāng)前時(shí)間和日期。CMOS存儲(chǔ)器和遞增時(shí)間的電路由一小塊電池驅(qū)動(dòng)。CMOS還可以保存配置的參數(shù),比如哪一個(gè)是啟動(dòng)磁盤等。CMOS耗電非常少,一塊原裝電池能用若干年。

BIOS基本輸入輸出程序儲(chǔ)存在ROM芯片中,CMOS用來(lái)存儲(chǔ)BIOS設(shè)置和系統(tǒng)時(shí)間。

六.磁盤

1.磁盤結(jié)構(gòu):在磁盤中有一個(gè)或多個(gè)金屬盤片,它們以5400,7200或10800RPM(RPM,revolutions per minute,轉(zhuǎn)速)的速度旋轉(zhuǎn),從邊緣開(kāi)始有一個(gè)機(jī)械臂懸在盤面上,信息寫(xiě)在磁盤上的一些列的同心圓上,是一連串的二進(jìn)制位(稱為bit位)

機(jī)械臂稱為磁頭。

每個(gè)磁頭在磁盤表面劃出的圓形軌跡,稱為磁道(Track)。

在有多個(gè)盤片構(gòu)成的盤組中,由不同盤片的面,但處于同一半徑圓的多個(gè)磁道組成的一個(gè)圓柱面(Cylinder)。

磁盤上的每個(gè)磁道被等分為若干個(gè)弧段,這些弧段便是硬盤的扇區(qū)(Sector)。硬盤的第一個(gè)扇區(qū),叫做引導(dǎo)扇區(qū)。

每個(gè)磁道劃分成多個(gè)扇區(qū),扇區(qū)的典型值是512字節(jié)。

扇區(qū)是磁盤級(jí)別的最小讀寫(xiě)單位,操作系統(tǒng)的最小讀寫(xiě)單位是1block = 8 * 512Bytes。

2.平均尋道時(shí)間:機(jī)械手臂從一個(gè)柱面隨機(jī)移動(dòng)到相鄰的柱面的時(shí)間稱為尋道時(shí)間,找到了磁道就找到了數(shù)據(jù)所在的那個(gè)圓圈,但是還是不知道這個(gè)數(shù)據(jù)在這個(gè)圓圈的具體位置。

3.平均延遲時(shí)間:機(jī)械臂到達(dá)正確的磁道之后還必須等待旋轉(zhuǎn)到數(shù)據(jù)所在的扇區(qū)下,這段時(shí)間成為延遲時(shí)間

數(shù)據(jù)存放于一段一段的扇區(qū),即磁道這個(gè)圓圈的一小段圓弧,從磁盤讀取一段數(shù)據(jù)需要經(jīng)歷尋道時(shí)間和延遲時(shí)間。

4.虛擬內(nèi)存和MMU:將正在使用的程序放入內(nèi)存,而將暫時(shí)不需要執(zhí)行的程序放到磁盤的某個(gè)地方,這塊地方稱為虛擬內(nèi)存(Virtual Memory),在linux中稱為swap。這種機(jī)制的核心在于快速映射內(nèi)存地址,由cpu中的一個(gè)部件負(fù)責(zé),稱為存儲(chǔ)器管理單元(Memory Management Unit,MMU)

從一個(gè)程序切換到另外一個(gè)程序,稱為上下午切換(context switch),緩存和MMU的出現(xiàn)提升了系統(tǒng)的性能,尤其是上下文切換。

5.磁帶:在價(jià)錢相同的情況下比硬盤擁有更高的存儲(chǔ)容量,雖然速度低于磁盤,但因其容量大,在地震水災(zāi)火災(zāi)時(shí)機(jī)動(dòng)性強(qiáng)等特性,常被用來(lái)做備份。(常見(jiàn)于大型數(shù)據(jù)庫(kù)系統(tǒng)中)

6.I/O設(shè)備:I/O設(shè)備一般包括兩個(gè)部分:設(shè)備控制器和設(shè)備本身。

控制器:是主板上的一塊芯片或一組芯片,控制器負(fù)責(zé)控制連接的設(shè)備,它從操作系統(tǒng)接收命令,比如讀取硬盤數(shù)據(jù),然后就對(duì)硬盤設(shè)備發(fā)起讀取請(qǐng)求來(lái)讀出內(nèi)容。

控制器的功能:通常情況下對(duì)設(shè)備的控制是復(fù)雜而具體的,控制器的任務(wù)就是為操作系統(tǒng)屏蔽這些復(fù)雜而具體的工作,提供給操作系統(tǒng)一個(gè)簡(jiǎn)單而清晰的接口。

設(shè)備本身:要想調(diào)用設(shè)備,必須根據(jù)該接口編寫(xiě)復(fù)雜而具體的程序,于是有了控制器提供設(shè)備驅(qū)動(dòng)接口給操作系統(tǒng)。必須把設(shè)備驅(qū)動(dòng)程序安裝到操作系統(tǒng)中。

七.總線與南橋和北橋

南橋即ISA橋:連接慢速設(shè)備

北橋即PCI橋:連接高速設(shè)備

八.操作系統(tǒng)的啟動(dòng)流程

1.計(jì)算機(jī)加電

2.BIOS開(kāi)始運(yùn)行,檢測(cè)硬件:CPU、內(nèi)存、硬盤等

3.BIOS讀取CMOS存儲(chǔ)器中的參數(shù),選擇啟動(dòng)設(shè)備

4.從啟動(dòng)設(shè)備上讀取第一個(gè)扇區(qū)的內(nèi)容(MBR主引導(dǎo)記錄512字節(jié),前446為引導(dǎo)信息,后64位為分區(qū)信息,最后兩個(gè)為標(biāo)志位)

5.根據(jù)分區(qū)信息讀入bootloader啟動(dòng)裝載模塊,啟動(dòng)操作系統(tǒng)

6.然后操作系統(tǒng)詢問(wèn)BIOS,獲得配置信息。對(duì)于每種設(shè)備,系統(tǒng)會(huì)檢查起設(shè)備驅(qū)動(dòng)程序是否存在,如果沒(méi)有,系統(tǒng)則會(huì)要求用戶安裝設(shè)備驅(qū)動(dòng)程序。一旦有了全部設(shè)備驅(qū)動(dòng)程序,操作系統(tǒng)就將它們調(diào)入內(nèi)核。然后初始有關(guān)的表格(如進(jìn)程表),創(chuàng)建需要的進(jìn)程,并在每個(gè)終端上啟動(dòng)登錄程序或GUI。

九.應(yīng)用程序的啟動(dòng)流程

1.通過(guò)操作系統(tǒng)發(fā)出啟動(dòng)程序的指令,并將之存入內(nèi)存。

2.CPU從內(nèi)存中調(diào)出指令,并解碼執(zhí)行。

3.程序數(shù)據(jù)從硬盤讀入內(nèi)存

4.CPU從內(nèi)存中讀取程序數(shù)據(jù)并運(yùn)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,401評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,069評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,873評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,635評(píng)論 6 408
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,128評(píng)論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,365評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,881評(píng)論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,733評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,935評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,172評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,582評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,821評(píng)論 1 282
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,595評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,908評(píng)論 2 372

推薦閱讀更多精彩內(nèi)容

  • 眾所周知,計(jì)算機(jī)硬件主要由CPU(運(yùn)算器和控制器)、存儲(chǔ)器(內(nèi)存和外存)、外部設(shè)備(輸入/輸出設(shè)備)等構(gòu)成。那這幾...
    張利鋒閱讀 5,876評(píng)論 0 4
  • 一.編程語(yǔ)言的作用及與操作系統(tǒng)和硬件的關(guān)系 編程語(yǔ)言是程序員用來(lái)控制計(jì)算機(jī)的工具,是一種標(biāo)準(zhǔn)化的交流技巧,使得人與...
    夢(mèng)不覺(jué)_ac35閱讀 724評(píng)論 0 5
  • 在我們的生活與工作中所使用到的計(jì)算機(jī)都是基于馮諾依曼結(jié)構(gòu)實(shí)現(xiàn)的,馮諾依曼結(jié)構(gòu)又稱馮諾依曼模型或普林斯頓結(jié)構(gòu),它是一...
    SylvanasSun閱讀 2,738評(píng)論 1 6
  • 8086匯編 本筆記是筆者觀看小甲魚(yú)老師(魚(yú)C論壇)《零基礎(chǔ)入門學(xué)習(xí)匯編語(yǔ)言》系列視頻的筆記,在此感謝他和像他一樣...
    Gibbs基閱讀 37,296評(píng)論 8 114
  • 文/木言 太陽(yáng)一跳一跳的出現(xiàn)在藍(lán)色的天邊,公主揉揉眼睛,偏偏頭目光落在了實(shí)木桌子上,“哇!好漂亮的小石頭。”一顆石...
    韓梅梅閱讀 183評(píng)論 0 0