1. 程式人生 > >計算機硬件基礎知識

計算機硬件基礎知識

station 工作原理 早期 via 字節數 固態硬盤 power 內部 邏輯運算

一,為什麽要學習計算機基礎

  python是編程語言,即python是語言

  語言有英語、法語、葡萄牙語等,但凡是語言,都是用來溝通的介質。

  程序員編程的本質就是讓計算機去工作,而編程語言就是程序員與計算機溝通的介質

  程序員要想讓計算機工作,必須知道計算機能幹什麽,怎麽幹的,這也就是我們必須學習計算機基礎的原因

  然而光有編程語言和硬件也並不能滿足大家的編程需求,為什麽這麽說呢?

  程序用編程語言寫程序,最終開發出的結果就是一個軟件,既然是軟件,那就與騰訊qq、暴風影音、快播等軟件沒有區別了。這些軟件必須運行在操作系統之上,你肯定會問:為何要有操作系統呢?沒錯,遠古時代的程序員確實是在沒有操作系統的環境下,用編程語言之間操作硬件來編程的,你可能覺得這沒有問題,但其實問題是相當嚴重的,因為此時你必須掌握如何操作硬件的所有具體細節,比如如何具體操作硬盤(現在你得把硬盤拆開,然後你能看見的所有的東西,你都得研究明白,因為你編程時要用到它),這就嚴重影響了開發的效率,操作系統的出現就是運行於硬件之上,來控制硬件的,我們開發時,只需要調用操作系統為我們提供的簡單而優雅的接口就可以了

  所以一套完整的計算機系統分為:計算機硬件,操作系統,應用軟件,如下圖。因而我們的python編程之路分為計算機硬件基礎,操作系統基礎,和python編程三部分,就讓我們先從計算機硬件學起吧

技術分享圖片

二,計算機硬件介紹

  計算機硬件有五大部分:(計算機是人的奴隸,可以將其當作一個人去看,請思考下述組件等同於人的哪些器官)

1、控制器:計算機的指揮系統。控制器通過地址訪問存儲器,從存儲器中取出指令,
    經譯碼器分析後,根據指令分析結果產生相應的操作控制信號作用於其他部件,使得
    各部件在控制器控制下有條不紊地協調工作。

2、運算器:實現算術運算和邏輯運算的部件。 

3、存儲器:是計算機用來存放所有數據和程序的記憶部件。它的基本功能是按指定的地
    址存(寫)入或者取(讀)出信息。 計算機中的存儲器可分成兩大類:一類是內存儲器,
    簡稱內存或主存;另一類是外存儲器(輔助存儲器),簡稱外存或輔存。 存儲器由若幹個
    存儲單元組成,每個存儲單元都有一個地址,計算機通過地址對存儲單元進行讀寫。一個
    存儲器所包含的字節數稱為存儲容量,單位有B、KB、MB、GB、TB等。

4、輸入設備:是向計算機中輸入信息(程序、數據、聲音、文字、圖形、圖像等)的設備。
    常見的輸入設備有:鍵盤、鼠標、圖形掃描儀、觸摸屏、條形碼輸入器、光筆等。 
    外存儲器也是一種輸入設備。 

5、輸出設備:主要有顯示器、打印機和繪圖儀等。外存儲器也當作一種輸出設備。

  

  控制器+運算器=CPU

  CPU、內存(主存儲器)以及其他I/O設備都由一條系統總線(bus)連接起來並通過總線與其他設備通信

  現代計算機的結構更復雜,包括多重總線,我們將在後面的小節介紹,此時暫且讓我們以下圖為例來介紹各個部件

技術分享圖片

cpu是人的大腦,負責控制全身和運算

內存是人的記憶,負責臨時存儲

硬盤是人的筆記本,負責永久存儲

輸入設備是耳朵或眼睛或嘴巴,負責接收外部的信息存入內存

輸出設備是你的臉部(表情)或者屁股,負責經過處理後輸出的結果

以上所有的設備都通過總線連接,總線相當於人的神經

  上課開始,老師講課,學生聽課,老師是程序員,學生是計算機,學生的器官都是計算機各部分組成

1.你通過耳朵接收老師講的知識->輸入

2.通過自己的神經,將接收的數據存入自己的內存/短期記憶(總線、內存)

3.光聽不行,你還需要反應/處理老師講的知識,於是你的大腦/cpu從短期記憶裏取出
    知識/指令,分析知識/指令,然後學習知識/執行指令 (cpu取指、分析、執行)

4.你通過作業或者說話輸出你學到的結果

5.你想要永久將知識保存下來,只能拿出一個筆記本,把剛剛學會的知識都寫到本子上,
    這個本子就是硬盤(磁盤)

  

三,計算機各組件及工作原理

3.1處理器

  通常將運算器和控制器合稱為中央處理器(Central Processing Unit,CPU)。其中運算器用來主要負責程序運算與邏輯判斷,控制器則主要協調各組件和各單元的工作,所以CPU的工作主要在於管理和運算。可以說計算機的大腦就是CPU,它從內存中取指令->解碼->執行,然後再取指->解碼->執行下一條指令,周而復始,直至整個程序被執行完成。

  既然CPU的重點在於進行運算和判斷,那麽要被運算與判斷的數據是從哪裏來的?CPU讀取的數據都是從主存儲器(內存)來的!主存儲器內的數據則是從輸入單元所傳輸進來!而CPU處理完畢的數據也必須先寫回主存儲器中,最後數據才從主存儲器傳輸到輸出單元。

  綜合上面所說的,我們會知道其實計算機是由:輸入單元、輸出單元、CPU(控制單元、算術邏輯單元)與主存儲器五大單元構成的。也可以說CPU+輸入輸出+主存儲器構成了電子計算機的三大核心組件,相關性如下圖:

技術分享圖片

  在超大規模集成電路構成的微型計算機中,往往將CPU制成一塊具有特定功能的芯片,稱為微處理器,芯片裏邊有編寫好的微指令集,我們在主機上的所有操作或者說任何軟件的執行最終都要轉化成cpu的指令去執行,如輸入輸出,閱讀,視頻,上網等這些都要參考CPU是否內置有相關微指令集才行。如果沒有那麽CPU無法處理這些操作。不同的CPU指令集不同對應的功能也不同,這就好比不同的人腦,對於大多數人類來說,人腦的結構一樣,但是大家的智商都有差別。

那麽目前世界上的主流CPU由那些呢?我們筆記本上貼的Intel、AMD是怎麽回事呢?下面我們來認識一下;

1、CPU的分類
  我們已經知道CPU內部是含有微指令集的,我們所使用的的軟件都要經過CPU內部的微指令
集來完成才行。這些指令集的設計主要又被分為兩種設計理念,這就是目前世界上常見到的兩種
主要的CPU種類:分別是精簡指令集(RISC)與復雜指令集(CISC)系統。下面我們就來談談
這兩種不同CPU種類的差異!

1.1、精簡指令集
  精簡指令集(Reduced Instruction Set Computing,RISC):這種CPU的設計中,微指令
集較為精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要
做復雜的事情,就要由多個指令來完成。常見的RISC指令集CPU主要例如Sun公司的SPARC系列、
IBM公司的Power Architecture(包括PowerPC)系列、與ARM系列等。
【註:Sun已經被Oracle收購;】

  SPARC架構的計算機常用於學術領域的大型工作站中,包括銀行金融體系的主服務器也都有這
類的計算機架構;

  PowerPC架構的應用,如Sony出產的Play Station 3(PS3)使用的就是該架構的Cell處理器。

  ARM是世界上使用範圍最廣的CPU了,常用的各廠商的手機、PDA、導航系統、網絡設備等,
幾乎都用該架構的CPU。

1.2、復雜指令集
  復雜指令集(Complex Instruction Set Computer,CISC)與RISC不同,在CISC的微指令
集中,每個小指令可以執行一些較低階的硬件操作,指令數目多而且復雜,每條指令的長度並不相同。
因此指令執行較為復雜所以每條指令花費的時間較長,但每條個別指令可以處理的工作較為豐富。
常見的CISC微指令集CPU主要有AMD、Intel、VIA等的x86架構的CPU。

  由於AMD、Intel、VIA所開發出來的x86架構CPU被大量使用於個人計算機(Personal Computer)
上面,因此,個人計算機常被稱為x86架構的計算機!舉個例子,我們在MySQL官網下載MySQL時名字為:
      Windows(x86,32-bit),ZIP Archive
      (mysql-5.7.20-win32.zip)

  我們發現名字中有x86,這其實就是告訴我們該軟件應用於x86結構的計算機。
那麽為何稱為x86架構呢?這是因為最早的那顆Intel發展出來的CPU代號稱為8086,後來依此架構
又開發出80285、80386....,因此這種架構的CPU就被稱為x86架構了。

  在2003年以前由Intel所開發的x86架構CPU由8位升級到16、32位,後來AMD依此架構修改
新一代的CPU為64位,為了區別兩者的差異,因此64位的個人計算機CPU又被統稱為x86_64的架構了。

  不同的x86架構的CPU的差別在哪呢?除了CPU的整體結構(如第二層緩存、每次運作可執行的指令
數等)之外,主要是在於微指令集的不同。新的x86的CPU大多含有很先進的微指令集,這些微指令集
可以加速多媒體程序的運作,也能夠加強虛擬化的效能,而且某些微指令集更能夠增加能源效率,讓
CPU耗電量降低,這對於高電費是個不錯的消息。 試想一下,如果CPU的指令集都相同,那麽OS是
不是就不用分32bit和64bit了,各種程序的跨平臺是不是就更簡單了呢。

2 CPU歷史
  計算機的發展主要表現在其核心部件——微處理器【微處理器由一片或少數幾片大規模集成電路
組成的中央處理器。這些電路執行控制部件和算術邏輯部件的功能。微處理器能完成取指令、執行指
令,以及與外界存儲器和邏輯部件交換信息等操作,是微型計算機的運算控制部分。它可與存儲器和
外圍電路芯片組成微型計算機。】的發展上,每當一款新型的微處理器出現時,就會帶動計算機系統
的其他部件的相應發展,如計算機體系結構的進一步優化,存儲器存取容量的不斷增大、存取速度的
不斷提高,外圍設備的不斷改進以及新設備的不斷出現等。根據微處理器的字長和功能,可將其發展
劃分為以下幾個階段。


第1階段(1971——1973年)是4位和8位低檔微處理器時代,通常稱為第1代。
第2階段(1974——1977年)是8位中高檔微處理器時代,通常稱為第2代。
第3階段(1978——1984年)是16位微處理器時代,通常稱為第3代。
第4階段(1985——1992年)是32位微處理器時代,又稱為第4代。
第5階段(1993-2005年)是奔騰(pentium)系列微處理器時代,通常稱為第5代。
第6階段(2005年至今)是酷睿(core)系列微處理器時代,通常稱為第6代。“酷睿”是一款領先節能
的新型微架構,設計的出發點是提供卓然出眾的性能和能效,提高每瓦特性能,也就是所謂的能效比。

若想具體了解CPU歷史參見鏈接:

https://baike.baidu.com/item/%E4%B8%AD%E5%A4%AE%E5%A4%84%E7%90%86%E5%99%A8/284033?fr=aladdin&fromid=368184&fromtitle=%EF%BC%A3%EF%BC%B0%EF%BC%B5#10

  總結:CPU按照指令集可以分為精簡指令集CPU和復雜指令集CPU兩種,區別在於前者的指令集
精簡,每個指令的運行時間都很短,完成的動作也很單純,指令的執行效能較佳;但是若要做復雜的
事情,就要由多個指令來完成。後者的指令集每個小指令可以執行一些較低階的硬件操作,指令數目
多而且復雜,每條指令的長度並不相同。因為指令執行較為復雜所以每條指令花費的時間較長,但每
條個別指令可以處理的工作較為豐富。

  根據位數又可分為32bit和64bit(指的是CPU一次執行指令的數據帶寬),這個具體後面了解。
CPU往往又可細分為運算器和控制器兩部分,下面我們再來敘說一下這兩部分。

2.1、運算器

  運算器是對信息進行處理和運算的部件。經常進行的運算是算術運算和邏輯運算,所以運算器又
可稱為算術邏輯運算部件(Arithmetic and Logical,ALU)。

  運算器的核心是加法器。運算器中還有若幹個通用寄存器或累加寄存器,用來暫存操作數並存放
運算結果。寄存器的存取速度比存儲器的存放速度快很多。關於寄存器,我們在後面介紹CPU的時候再認識。


2.2 控制器
  控制器是整個計算機的指揮中心,它的主要功能是按照人們預先確定的操作步驟,控制整個計算機
的各部件有條不紊的自動工作。

  控制器從主存中逐條地讀取出指令進行分析,根據指令的不同來安排操作順序,向各部件發出相應
的操作信號,控制它們執行指令所規定的任務。

  控制器中包括一些專用的寄存器。

  

因訪問內存以得到指令或數據的時間比cpu執行指令花費的時間要長得多,所以,所有CPU
內部都有一些用來保存關鍵變量和臨時數據的寄存器,這樣通常在cpu的指令集中專門提供
一些指令,用來將一個字(可以理解為數據)從內存調入寄存器,以及將一個字從寄存器存
入內存。cpu其他的指令集可以把來自寄存器、內存的操作數據組合,或者用兩者產生一個
結果,比如將兩個字相加並把結果存在寄存器或內存中。

    寄存器的分類:
 
      1.除了用來保存變量和臨時結果的通用寄存器外

      2.多數計算機還有一些對程序員課件的專門寄存器,其中之一便是程序計數器,它保存了
將要取出的下一條指令的內存地址。在指令取出後,程序計算器就被更新以便執行後期的指令

  3.另外一個寄存器便是堆棧指針,它指向內存中當前棧的頂端。該棧包含已經進入但是還
沒有退出的每個過程中的一個框架。在一個過程的堆棧框架中保存了有關的輸入參數、局部變
量以及那些沒有保存在寄存器中的臨時變量

  4.最後 一個非常重要的寄存器就是程序狀態字寄存器(Program Status Word,PSW),這
個寄存器包含了條碼位(由比較指令設置)、CPU優先級、模式(用戶態或內核態),以及各種
其他控制位。用戶通常讀入整個PSW,但是只對其中少量的字段寫入。在系統調用和I/O中,
PSW非常非常非常非常非常非常重要

  寄存器的維護:

  操作系統必須知曉所有的寄存器。在時間多路復用的CPU中,操作系統會經常中止正在運行
的某個程序並啟動(或再次啟動)另一個程序。每次停止一個運行著的程序時,操作系統必須保
存所有的寄存器,這樣在稍後該程序被再次運行時,可以把這些寄存器重新裝入。

  

處理器設計的演變

  1.最開始取值、解碼、執行這三個過程是同時進行的,這意味著任何一個過程完成都需要等待其余兩個過程執行完畢,時間浪費

  2.後來被設計成了流水線式的設計,即執行指令n時,可以對指令n+1解碼,並且可以讀取指令n+2,完全是一套流水線。

技術分享圖片

  3.超變量cpu,比流水線更加先進,有多個執行單元,可以同時負責不同的事情,比如看片的同時,聽歌,打遊戲。

  兩個或更多的指令被同時取出、解碼並裝入一個保持緩沖區中,直至它們都執行完畢。只有有一個執行單元空閑,就檢查保持緩沖區是否還有可處理的指令

技術分享圖片

  這種設計存在一種缺陷,即程序的指令經常不按照順序執行,在多數情況下,硬件負責保證這種運算結果與順序執行的指令時的結果相同。

內核態與用戶態

除了在嵌入式系統中的非常簡答的CPU之外,多數CPU都有兩種模式,即內核態與用戶態。

  通常,PSW中有一個二進制位控制這兩種模式。

  內核態:當cpu在內核態運行時,cpu可以執行指令集中所有的指令,很明顯,所有的
指令中包含了使用硬件的所有功能,(操作系統在內核態下運行,從而可以訪問整個硬件)

  用戶態:用戶程序在用戶態下運行,僅僅只能執行cpu整個指令集的一個子集,該子集
中不包含操作硬件功能的部分,因此,一般情況下,在用戶態中有關I/O和內存保護(操作
系統占用的內存是受保護的,不能被別的程序占用),當然,在用戶態下,將PSW中的模
式設置成內核態也是禁止的。

  內核態與用戶態切換  

  用戶態下工作的軟件不能操作硬件,但是我們的軟件比如暴風影音,一定會有操作硬件
的需求,比如從磁盤上讀一個電影文件,那就必須經歷從用戶態切換到內核態的過程,為此,
用戶程序必須使用系統調用(system call),系統調用陷入內核並調用操作系統,TRAP指
令把用戶態切換成內核態,並啟用操作系統從而獲得服務。

  請把的系統調用看成一個特別的的過程調用指令就可以了,該指令具有從用戶態切換到
內核態的特別能力。


CPU的兩種工作狀態:內核態與用戶態

  

 多線程與多核芯片

  moore定律指出,芯片中的晶體管數量每18個月翻一倍,隨著晶體管數量的增多,更強大的功能稱為了可能,如

  I.第一步增強:在cpu芯片中加入更大的緩存,一級緩存L1,用和cpu相同的材質制成,cpu訪問它沒有時延

  II.第二步增強:一個cpu中的處理邏輯增多,intel公司首次提出,稱為多線程(multithreading)或超線程(hyperthreading),對用戶來說一個有兩個線程的cpu就相當於兩個cpu,我們後面要學習的進程和線程的知識就起源於這裏,進程是資源單位而線程才是cpu的執行單位。

  多線程運行cpu保持兩個不同的線程狀態,可以在納秒級的時間內來回切換,速度快到你看到的結果是並發的,偽並行的,然而多線程不提供真正的並行處理,一個cpu同一時刻只能處理一個進程(一個進程中至少一個線程)

  III.第三步增強:除了多線程,還出現了傲寒2個或者4個完整處理器的cpu芯片,如下圖。要使用這類多核芯片肯定需要有多處理操作系統

技術分享圖片

技術分享圖片

3.2存儲器

  計算機中第二重要的就是存儲了,所有人都意淫著存儲:速度快(這樣cpu的等待存儲器的延遲就降低了)+容量大+價錢便宜。然後同時兼備三者是不可能的,所以有了如下的不同的處理方式

技術分享圖片

  存儲器系統采用如上圖的分層結構,頂層的存儲器速度較高,容量較小,與底層的存儲器相比每位的成本較高,其差別往往是十億數量級的

  寄存器即L1緩存:

  用與cpu相同材質制造,與cpu一樣快,因而cpu訪問它無時延,典型容量是:在32位cpu中為32*32,在64位cpu中為64*64,在兩種情況下容量均<1KB。

  高速緩存即L2緩存:

  主要由硬件控制高速緩存的存取,內存中有高速緩存行按照0~64字節為行0,64~127為行1。。。最常用的高速緩存行放置在cpu內部或者非常接近cpu的高速緩存中。當某個程序需要讀一個存儲字時,高速緩存硬件檢查所需要的高速緩存行是否在高速緩存中。如果是,則稱為高速緩存命中,緩存滿足了請求,就不需要通過總線把訪問請求送往主存(內存),這畢竟是慢的。高速緩存的命中通常需要兩個時鐘周期。高速緩存為命中,就必須訪問內存,這需要付出大量的時間代價。由於高速緩存價格昂貴,所以其大小有限,有些機器具有兩級甚至三級高速緩存,每一級高速緩存比前一級慢但是容易大。

  緩存在計算機科學的許多領域中起著重要的作用,並不僅僅只是RAM(隨機存取存儲器)的緩存行。只要存在大量的資源可以劃分為小的部分,那麽這些資源中的某些部分肯定會比其他部分更頻發地得到使用,此時用緩存可以帶來性能上的提升。一個典型的例子就是操作系統一直在使用緩存,比如,多數操作系統在內存中保留頻繁使用的文件(的一部分),以避免從磁盤中重復地調用這些文件,類似的/root/a/b/c/d/e/f/a.txt的長路徑名轉換成該文件所在的磁盤地址的結果然後放入緩存,可以避免重復尋找地址,還有一個web頁面的url地址轉換為網絡地址(IP)地址後,這個轉換結果也可以緩存起來供將來使用。

  緩存是一個好方法,在現代cpu中設計了兩個緩存,再看4.1中的兩種cpu設計圖。第一級緩存稱為L1總是在CPU中,通常用來將已經解碼的指令調入cpu的執行引擎,對那些頻繁使用的數據自,多少芯片還會按照第二L1緩存 。。。另外往往設計有二級緩存L2,用來存放近來經常使用的內存字。L1與L2的差別在於對cpu對L1的訪問無時間延遲,而對L2的訪問則有1-2個時鐘周期(即1-2ns)的延遲。

內存:

  再往下一層是主存,此乃存儲器系統的主力,主存通常稱為隨機訪問存儲RAM,就是我們通常所說的內存,容量一直在不斷攀升,所有不能再高速緩存中找到的,都會到主存中找,主存是易失性存儲,斷電後數據全部消失

  除了主存RAM之外,許多計算機已經在使用少量的非易失性隨機訪問存儲如ROM(Read Only Memory,ROM),在電源切斷之後,非易失性存儲的內容並不會丟失,ROM只讀存儲器在工廠中就被編程完畢,然後再也不能修改。ROM速度快且便宜,在有些計算機中,用於啟動計算機的引導加載模塊就存放在ROM中,另外一些I/O卡也采用ROM處理底層設備的控制。

  EEPROM(Electrically Erasable PROM,電可擦除可編程ROM)和閃存(flash memory)也是非易失性的,但是與ROM相反,他們可以擦除和重寫。不過重寫時花費的時間比寫入RAM要多。在便攜式電子設備中中,閃存通常作為存儲媒介。閃存是數碼相機中的膠卷,是便攜式音譯播放器的磁盤,還應用於固態硬盤。閃存在速度上介於RAM和磁盤之間,但與磁盤不同的是,閃存擦除的次數過多,就被磨損了。

  還有一類存儲器就是CMOS,它是易失性的,許多計算機利用CMOS存儲器來保持當前時間和日期。CMOS存儲器和遞增時間的電路由一小塊電池驅動,所以,即使計算機沒有加電,時間也仍然可以正確地更新,除此之外CMOS還可以保存配置的參數,比如,哪一個是啟動磁盤等,之所以采用CMOS是因為它耗電非常少,一塊工廠原裝電池往往能使用若幹年,但是當電池失效時,相關的配置和時間等都將丟失

3.3磁盤

技術分享圖片

  磁盤低速的原因是因為它一種機械裝置,在磁盤中有一個或多個金屬盤片,它們以5400,7200或10800rpm(RPM =revolutions per minute 每分鐘多少轉 )的速度旋轉。從邊緣開始有一個機械臂懸在盤面上,這類似於老式黑膠唱片機上的拾音臂。信息卸載磁盤上的一些列的同心圓上,是一連串的2進制位(稱為bit位),為了統計方法,8個bit稱為一個字節bytes,1024bytes=1k,1024k=1M,1024M=1G,所以我們平時所說的磁盤容量最終指的就是磁盤能寫多少個2進制位。

  每個磁頭可以讀取一段換新區域,稱為磁道

  把一個戈丁手臂位置上所以的磁道合起來,組成一個柱面

  每個磁道劃成若幹扇區,扇區典型的值是512字節

  數據都存放於一段一段的扇區,即磁道這個圓圈的一小段圓圈,從磁盤讀取一段數據需要經歷尋道時間和延遲時間

平均尋道時間

機械手臂從一個柱面隨機移動到相鄰的柱面的時間成為尋到時間,找到了磁道就以為著招到了數據所在的那個圈圈,但是還不知道數據具體這個圓圈的具體位置

平均延遲時間 機械臂到達正確的磁道之後還必須等待旋轉到數據所在的扇區下,這段時間成為延遲時間

  虛擬內存:

  許多計算機支持虛擬內存機制,該機制使計算機可以運行大於物理內存的程序,方法是將正在使用的程序放入內存取執行,而暫時不需要執行的程序放到磁盤的某塊地方,這塊地方成為虛擬內存,在linux中成為swap,這種機制的核心在於快速地映射內存地址,由cpu中的一個部件負責,成為存儲器管理單元(Memory Management Unit MMU) PS:從一個程序切換到另外一個程序,成為上下文切換(context switch),緩存和MMU的出現提升了系統的性能,尤其是上下文切換

3.4磁帶

  在價錢相同的情況下比硬盤擁有更高的存儲容量,雖然速度低於磁盤,但是因其大容量,在地震水災火災時可移動性強等特性,常被用來做備份。(常見於大型數據庫系統中)

I/O設備

  cpu和存儲器並不是操作系統唯一需要管理的資源,I/O設備也是非常重要的一環。

  I/O設備一般包括兩個部分:設備控制器和設備本身

  控制器:是查找主板上的一塊芯片或一組芯片(硬盤,網卡,聲卡等都需要插到一個口上,這個口連的便是控制器),控制器負責控制連接的設備,它從操作系統接收命令,比如讀硬盤數據,然後就對硬盤設備發起讀請求來讀出內容。

  控制器的功能:通常情況下對設備的控制是非常復雜和具體的,控制器的任務就是為操作系統屏蔽這些復雜而具體的工作,提供給操作系統一個簡單而清晰的接口

  設備本身:有相對簡單的接口且標準的,這樣大家都可以為其編寫驅動程序了。要想調用設備,必須根據該接口編寫復雜而具體的程序,於是有了控制器提供設備驅動接口給操作系統。必須把設備驅動程序安裝到操作系統中。

3.5輸入輸出設備

1、輸入設備  

  輸入設備的任務是把人們編好的程序和原始數據送到計算機中去,並且將他們轉換成計算機內存所能識別和接受的信息方式。

  按照輸入信息的形態可分為字符(包括漢字)輸入、圖形輸入、圖像輸入及語言輸入等。

  目前,常見的輸入設備有:鍵盤、鼠標、掃描儀等。

  輔助存儲器(磁盤、磁帶)也可以看作輸入設備。另外,自動控制和檢測系統中使用的模數(A/D)轉換裝置也是一種輸入設備。

2、輸出設備  

  輸出設備的任務是將計算機的處理結果以人或其他設備所能接受的形式送出計算機。

  目前最常用的輸出設備是打印機和顯示器。

  輔助存儲器也可以看做輸出設備。另外,數模(D/A)轉換裝置也是一種輸出設備。

3.6總線

  磁帶結構在小型計算機中沿用了多年,並也用在早期的IBM PC中。但是隨著處理器和存儲器速度越來越快,單總線很難處理總線的交通流量了,於是出現了下圖的多總線模式,他們處理I/O設備及cpu到存儲器的速度都更快。

  北橋即PCI橋:連接高速設備

  南橋即ISA橋:連接慢速設備

技術分享圖片

主板圖解:

技術分享圖片

  電源(Power)==心臟:所有的組件要能運作,得要有足夠的電力供給才行。這就好像心臟一樣,如果心臟不跳動了,人就嗝屁了,電腦也是如果沒有電源,那也就是一堆垃圾,什麽作用都沒有。

3.7啟動計算機

  在計算機的主板上有一個基本的輸入輸出程序(Basic Input Output system)

  BIOS就相當於一個小的操作系統,它有底層的I/O軟件,包括讀鍵盤,寫屏幕,進行磁盤I/O,該程序存放於一非易失性閃存RAM中。

啟動流程如下:

  1.計算機加電

  2.BIOS開始運行,檢測硬件:cpu、內存、硬盤等

  3.BIOS讀取CMOS存儲器中的參數,選擇啟動設備

  4.從啟動設備上讀取第一個扇區的內容(MBR主引導記錄512字節,前446為引導信息,後64為分區信息,最後兩個為標誌位)

  5.根據分區信息讀入bootloader啟動裝載模塊,啟動操作系統

  6.然後操作系統詢問BIOS,以獲得配置信息。對於每種設備,系統會檢查其設備驅動程序是否存在,如果沒有,系統則會要求用戶按照設備驅動程序。一旦有了全部的設備驅動程序,操作系統就將它們調入內核。然後初始有關的表格(如進程表),穿件需要的進程,並在每個終端上啟動登錄程序或GUI

參考內容:https://www.cnblogs.com/linhaifeng/p/6295875.html;百度百科;寫在此處的目的是鞏固老師所講知識,課後為了方便復習

計算機硬件基礎知識