C語言中文網 目錄
首頁 > 編程筆記 > C語言筆記 閱讀:5,481

CPU、內存、硬盤、顯卡、主板、顯示器之間的關系

它們之間的關系可以通過一個例子來說明。比如說打開一部電影,以下說明這部電影是怎么運行起來的。

電影是如何運行的

首先要雙擊這部電影,這個“雙擊”是操作系統提供的一個操作。電影本身是放在硬盤上的,當我們通過鼠標對它進行雙擊之后,操作系統就會將硬盤上的這部電影拷貝到內存中。

為什么要將它拷貝到內存中呢?因為CPU不能直接處理硬盤上的數據。所以要先將硬盤上的數據拷貝到內存中,然后再通過CPU處理內存里面的這部電影。處理的結果就是將一些數據變成圖像、另一些數據變成聲音。圖像數據發送給顯卡,通過顯示器顯示出來;聲音數據發送給聲卡,聲卡將它變成聲音放出來。這基本上就是一部電影的運行過程。

CPU為什么不能直接操作硬盤卻能直接操作內存

原因很簡單,因為內存的速度比硬盤快很多。CPU 的運行速度很快,硬盤的速度無法跟上 CPU 的速度,所以它們兩個在運行的時候無法同步,因此 CPU 無法直接對硬盤進行操作。

狹義上的內存指的就是我們所說的內存條,但實際上 CPU 也不是直接操作內存的,因為內存的速度雖然比硬盤快很多,但仍然沒有 CPU 快。所以在內存和 CPU 之間還有“緩存”,比如一級緩存、二級緩存。緩存的速度比內存更快,更加接近 CPU 的速度,所以 CPU 讀取數據時操作的都是緩存。

但廣義上說,緩存也屬于內存,所以我們就說 CPU 可以直接操作內存。

內存的速度為什么比硬盤的速度快

內存的速度之所以比硬盤的速度快(不是快一點,而是快很多),是因為它們的存儲原理和讀取方式不一樣。
  • 硬盤是機械結構,通過磁頭的轉動讀取數據。一般情況下臺式機的硬盤為每分鐘 7200 轉,而筆記本的硬盤為每分鐘 5400 轉。
  • 而內存是沒有機械結構的,內存是通過電存取數據的。

電的速度當然要比磁頭的運動快得多。所以,有機械結構的磁頭的讀取速度是不能同無機械結構的電的速度相比的。

那么內存的本質是什么呢?我們應該都聽說過 RAM 存儲器,它是一種半導體存儲器件。RAM 是英文單詞 Random 的縮寫,即“隨機”的意思。所以 RAM 存儲器也稱為“隨機存儲器”。

那么 RAM 存儲器和內存有什么關系呢?內存就是許多 RAM 存儲器的集合,就是將許多 RAM 存儲器集成在一起的電路板。RAM 存儲器的優點是存取速度快、讀寫方便,所以內存的速度當然也就快了。

內存通過電存取數據,本質上就是因為 RAM 存儲器是通過電存儲數據的。但也正因為它們是通過電存儲數據的,所以一旦斷電數據就都丟失了。因此內存只是供數據暫時逗留的空間,而硬盤是永久的,斷電后數據也不會消失。

為什么不將內存造得跟硬盤一樣大

計算機的內存一般是 4GB,而硬盤的容量卻是幾百 GB,甚至 2TB。為什么內存的容量那么小?既然內存速度那么快為什么不造得大點?為什么不造得與硬盤一樣大?

原因主要有三個:
  1. 內存的速度之所以比硬盤快,是因為它們的構造不一樣。對于同樣的容量,內存的價格太貴。
  2. 內存只是暫時存儲數據的,斷電后數據就丟失了,而且它的速度很快,所以不需要那么大的容量。
  3. 第三個原因與地址總線的數量有關,這個后面介紹指針的時候再講。

CPU是如何操作內存的

那么 CPU 是如何操作內存的?一般是先將內存里面的數據讀入 CPU 中,然后 CPU 對數據進行處理,處理完了再將結果寫回內存,最后內存再將數據寫入硬盤。

CPU 對內存進行操作通過三根總線:控制總線、地址總線和數據總線。
  • 控制總線是傳輸控制信號的,比如時鐘、復位、中斷、讀、寫等。CPU是從內存中讀數據還是向內存中寫數據就是通過控制總線控制的。內存中有很多存儲單元,數據都存儲在這些單元中,每個單元都有一個地址。所以要想得到這些單元中的數據就必須先知道每個單元的地址。
  • 地址總線就是傳輸地址信息的。
  • 數據總線顧名思義就是傳輸單元中的數據的。

主板的作用

主板在計算機中起著重要作用。它作為計算機的核心配件之一,是計算機最重要的平臺。那這個平臺是干什么用的呢?

臺式機上所有的設備都是連在主機上的,而主機上有很多接口,這些接口全部都是連在主板上的。鼠標、鍵盤、耳機、顯示屏等外部設備都是通過這些接口連到主板上的。在主機內部,電源、風扇、硬盤、光驅也都是連在主板上的。而CPU、內存條、顯卡、聲卡、網卡這些硬件則全部都是直接插在主板上的。

所以計算機中所有的硬件要么是連在主板上的,要么是直接插在主板上的,但不管怎么樣都是與主板相連的。而且主板上有很多線路,所有硬件之間的信號傳輸也都是通過主板進行的,所有硬件通過主板被有效組織起來。

此外,主板還能接收電源提供的電能并加以分配,從而給各硬件供電。而且還能接收電源開關和操作系統發來的開機信號,從而實現開機、關機、待機、重啟和休眠等操作。

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo