計算機基礎方面的知識,對于一些非科班出身的同學來講,一直是他們心中的痛,而對于科班出身的同學,很多同學在工作之後,也意識到自身所學知識的不足與欠缺,想回頭補補基礎知識。關于計算機基礎的課程很多,内容繁雜,但無論是相關書籍還是大學課程,都有點脫離工作。特别地,計算機基礎知識體系龐雜,想要從零學習或者複習都耗時耗力。
有鑒于此,本系列文章将帶你更快的補足編程必備基礎知識,涵蓋計算機領域三大基礎知識:計算機組成原理、操作系統、計算機網絡,這些都是大學計算機課程裡面最重要的内容。文章對這些内容做了提煉和總結,摒棄了作為程序員不需要掌握的知識。
目的是:
- 幫助大家形成計算機知識的結構體系
- 幫助大家理解計算機底層原理
- 幫助大家在工作實踐中借鑒其中的優秀設計
本篇是計算機組成原理之計算機的存儲器。
歡迎關注、轉發、收藏、評論
1.什麼是存儲器存儲器,顧名思義,是用來儲存物質的。在計算機中,這些儲存的物質就是數據和指令,有了存儲器,計算機就有了記憶功能。
存儲器由一些編号的單元所組成,單元的編号叫做地址。打個比方,存儲器就像是一個大型倉庫,倉庫裡面有很多個房間存放着貨物,每個房間都有自己的房号;而存儲器單元好比房間,房間裡的貨物好比數據和指令,而單元的編号(地址)就好比房間号,我們的計算機就是根據這個地址來存放或取出數據和指令的。
按存儲介質分類
按存取方式來分類,可以将存儲器分為随機存儲器(RAM)、串行存儲器、隻讀存儲器(ROM)。
按存取方式分類
3.存儲器的層次結構在選取計算機的存儲器時,通常需要考慮的因素是存儲器的讀寫速度、存儲容量、價格,我們希望讀寫速度越快越好、存儲容量越大越好、價格則越低越好。有一個專門的單位,用來量化存儲器的性價比——位價。位價綜合地把容量和價格都考慮進去了,它的含義是每比特位的價格,使用位價可以客觀地描述存儲器的性價比。
位價
按照位價和讀寫速度的關系,可以把存儲器劃分為幾個層次:緩存、主存、輔存。
緩存指的是CPU裡的寄存器以及高速緩存,速度快,位價高。
主存指的主要是計算機裡的内存,速度适中,價格适中。
輔存指的是外部儲存設備,如磁盤、U盤、移動硬盤等,速度慢,價格低。
存儲器的層次結構
之前文章裡已經提到過,CPU是高速運算的,處理速率極快,而存儲器沒有CPU快,傳輸數據和程序到CPU裡時速度慢,這會導緻CPU經常空轉等待數據傳輸,兩者在速度上是不匹配的。理論上,不考慮價格的話,我們肯定希望緩存越大越好,但是由于位價的存在,緩存不可能做的越大越好,因此才有了這個層次結構。
存儲器的層次結構也可以使用如下圖來表達:
圖示裡,CPU與高速緩存是直接通信的,也可以跟主存進行通信。而高速緩存和主存之間也可以相互通信,稱之為緩存-主存層次,除了緩存-主存層次,還有主存和輔存之間的通信,這個通信,CPU是不參與的,稱之為主存-輔存層次。
緩存-主存層次,是在CPU與主存之間增加一層速度快容量小的Cache,目的是解決主存與CPU速度不匹配的問題。有了高速緩存的存在,CPU就可以通過一定的策略,盡可能地去訪問這個高速緩存而不是主存,從而有效提高CPU的利用效率以及計算機的運行速度。CPU選取數據時,首先會從緩存中去取,緩存中沒有的話,再會去取主存中的。
主存-輔存層次,是在主存之外增加輔助存儲器(磁盤、SD卡、U盤等),目的是解決主存容量不足的問題。假設我們運行一個超大型遊戲,而内存通常隻有8G,此時,就可以把遊戲當前使用的數據加載到内存中,把不使用的數據放在輔存中。
,