1. 程式人生 > >程式設計必備基礎知識|計算機組成原理篇(08):儲存器

程式設計必備基礎知識|計算機組成原理篇(08):儲存器

計算機基礎方面的知識,對於一些非科班出身的同學來講,一直是他們心中的痛,而對於科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關於計算機基礎的課程很多,內容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特別地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。

有鑑於此,本系列文章將帶你更快的補足程式設計必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、作業系統、計算機網路,這些都是大學計算機課程裡面最重要的內容。文章對這些內容做了提煉和總結,摒棄了作為程式設計師不需要掌握的知識。

目的是:

  • 幫助大家形成計算機知識的結構體系
  • 幫助大家理解計算機底層原理
  • 幫助大家在工作實踐中借鑑其中的優秀設計

本篇是計算機組成原理之計算機的儲存器

歡迎關注、轉發、收藏、評論

1.什麼是儲存器

儲存器,顧名思義,是用來儲存物質的。在計算機中,這些儲存的物質就是資料和指令,有了儲存器,計算機就有了記憶功能。

儲存器由一些編號的單元所組成,單元的編號叫做地址。打個比方,儲存器就像是一個大型倉庫,倉庫裡面有很多個房間存放著貨物,每個房間都有自己的房號;而儲存器單元好比房間,房間裡的貨物好比資料和指令,而單元的編號(地址)就好比房間號,我們的計算機就是根據這個地址來存放或取出資料和指令的。

計算機中的全部資訊,包括輸入的原始資料、計算機程式、中間執行結果和最終執行結果都儲存在儲存器中。

2.儲存器的分類

按儲存介質來劃分,儲存器可分為半導體儲存器和磁儲存器。其中,半導體儲存器儲存的元器件是由半導體組成的,常見的如:記憶體、U盤、固態硬碟等;磁儲存器,是由表面塗有磁性材料的儲存介質組成的,常見的有:磁帶、磁碟。

按存取方式來分類,可以將儲存器分為隨機儲存器(RAM)、序列儲存器、只讀儲存器(ROM),

3.儲存器的層次結構

在選取計算機的儲存器時,通常需要考慮的因素是儲存器的讀寫速度、儲存容量、價格,我們希望讀寫速度越快越好、儲存容量越大越好、價格則越低越好。有一個專門的單位,用來量化儲存器的價效比——位價。位價綜合地把容量和價格都考慮進去了,它的含義是每位元位的價格,使用位價可以客觀地描述儲存器的價效比。

按照位價和讀寫速度的關係,可以把儲存器劃分為幾個層次:快取、主存、輔存。

快取指的是CPU裡的暫存器以及快取記憶體,速度快,位價高。

主存指的主要是計算機裡的記憶體,速度適中,價格適中。

輔存指的是外部儲存裝置,如磁碟、U盤、行動硬碟等,速度慢,價格低。

之前文章裡已經提到過,CPU是高速運算的,處理速率極快,而儲存器沒有CPU快,傳輸資料和程式到CPU裡時速度慢,這會導致CPU經常空轉等待資料傳輸,兩者在速度上是不匹配的。理論上,不考慮價格的話,我們肯定希望快取越大越好,但是由於位價的存在,快取不可能做的越大越好,因此才有了這個層次結構。

儲存器的層次結構也可以使用如下圖來表達:

圖示裡,CPU與快取記憶體是直接通訊的,也可以跟主存進行通訊。而快取記憶體和主存之間也可以相互通訊,稱之為快取-主存層次,除了快取-主存層次,還有主存和輔存之間的通訊,這個通訊,CPU是不參與的,稱之為主存-輔存層次。

快取-主存層次,是在CPU與主存之間增加一層速度快容量小的Cache,目的是解決主存與CPU速度不匹配的問題。有了快取記憶體的存在,CPU就可以通過一定的策略,儘可能地去訪問這個快取記憶體而不是主存,從而有效提高CPU的利用效率以及計算機的執行速度。CPU選取資料時,首先會從快取中去取,快取中沒有的話,再會去取主存中的。

主存-輔存層次,是在主存之外增加輔助儲存器(磁碟、SD卡、U盤等),目的是解決主存容量不足的問題。假設我們執行一個超大型遊戲,而記憶體通常只有8G,此時,就可以把遊戲當前使用的資料載入到記憶體中,把不使用的資料放在輔存中