存儲器之內存(主存)

前言:
計算機組成的五大基礎是 存儲器 控制器 運算器 輸入輸出設備,其中從存儲功能角度來看
可以把存儲器分爲 內存和磁盤

一 什麼是內存
內存又稱主存,它是程序與CPU進行溝通的橋樑,計算機中所有的程序運行都是在內存中進行的
內存的作用:存放cpu運算的數據 以及與硬盤等外部設備交換數據 保證計算機的穩定運行
二 計算機的內存物理結構
內存 IC 是一個完整的結構,它內部也有電源、地址信號、數據信號、控制信號和用於尋址的 IC 引腳來進行數據的讀寫。下面是一個虛擬的 IC 引腳示意圖
在這裏插入圖片描述
圖中 VCC 和 GND 表示電源,A0 - A9 是地址信號的引腳,D0 - D7 表示的是控制信號、RD 和 WR 都是好控制信號,我用不同的顏色進行了區分,將電源連接到 VCC 和 GND 後,就可以對其他引腳傳遞 0 和 1 的信號,大多數情況下,+5V 表示1,0V 表示 0。
我們都知道內存是用來存儲數據,那麼這個內存 IC 中能存儲多少數據呢?D0 - D7 表示的是數據信號,也就是說,一次可以輸入輸出 8 bit = 1 byte 的數據。A0 - A9 是地址信號共十個,表示可以指定 00000 00000 - 11111 11111 共 2 的 10次方 = 1024個地址。每個地址都會存放 1 byte 的數據,因此我們可以得出內存 IC 的容量就是 1 KB。
內存內部是由各種IC電路組成的 它的種類很龐大 主要分爲三種存儲器
1 隨機存儲器:既可以讀 也可以寫 當機器關閉時 內存信息會丟失
2 只讀存儲器:ROM一般只能用於數據的讀取 不能寫入數據 但當機器停電時 這些數據不會丟失
3 高速緩存 它位於內存和cpu之間 是一個讀寫速度比內存更快的存儲器 當cpu需要讀取數據時 會直接從高速緩存中直接讀取 當然 如需要的數據在cache中沒有 cpu會從內存中去讀數據
分類:一級緩存
二級緩存
三級緩存
三 內存的讀寫過程
在這裏插入圖片描述
來詳細描述一下這個過程,假設我們要向內存 IC 中寫入 1byte 的數據的話,它的過程是這樣的:
首先給 VCC 接通 +5V 的電源,給 GND 接通 0V 的電源,使用 A0 - A9 來指定數據的存儲場所,然後再把數據的值輸入給 D0 - D7 的數據信號,並把 WR(write)的值置爲 1,執行完這些操作後,即可以向內存 IC 寫入數據
讀出數據時,只需要通過 A0 - A9 的地址信號指定數據的存儲場所,然後再將 RD 的值置爲 1 即可。
圖中的 RD 和 WR 又被稱爲控制信號。其中當WR 和 RD 都爲 0 時,無法進行寫入和讀取操作。
內存的現實模型
爲了便於記憶,我們把內存模型映射成爲我們現實世界的模型,在現實世界中,內存的模型很想我們生活的樓房。在這個樓房中,1層可以存儲一個字節的數據,樓層號就是地址,下面是內存和樓層整合的模型圖
在這裏插入圖片描述
我們知道,程序中的數據不僅只有數值,還有數據類型的概念,從內存上來看,就是佔用內存大小(佔用樓層數)的意思。即使物理上強制以 1 個字節爲單位來逐一讀寫數據的內存,在程序中,通過指定其數據類型,也能實現以特定字節數爲單位來進行讀寫。
四 內存和磁盤
計算機最主要的存儲部件是內存和磁盤。磁盤中存儲的程序必須加載到內存中才能運行,在磁盤中保存的程序是無法直接運行的,這是因爲負責解析和運行程序內容的 CPU 是需要通過程序計數器來指定內存地址從而讀出程序指令的。
在這裏插入圖片描述
磁盤構造

磁盤緩存

我們上面提到,磁盤往往和內存是互利共生的關係,相互協作,彼此持有良好的合作關係。每次內存都需要從磁盤中讀取數據,必然會讀到相同的內容,所以一定會有一個角色負責存儲我們經常需要讀到的內容。我們大家做軟件的時候經常會用到緩存技術,那麼硬件層面也不例外,磁盤也有緩存,磁盤的緩存叫做磁盤緩存。
磁盤緩存指的是把從磁盤中讀出的數據存儲到內存的方式,這樣一來,當接下來需要讀取相同的內容時,就不會再通過實際的磁盤,而是通過磁盤緩存來讀取。某一種技術或者框架的出現勢必要解決某種問題的,那麼磁盤緩存就大大改善了磁盤訪問的速度。
在這裏插入圖片描述
五 虛擬內存和內存
虛擬內存是內存和磁盤交互的第二個媒介。虛擬內存是指把磁盤的一部分作爲假想內存來使用。這與磁盤緩存是假想的磁盤(實際上是內存)相對,虛擬內存是假想的內存(實際上是磁盤)。
虛擬內存是計算機系統內存管理的一種技術。它使得應用程序認爲它擁有連續可用的內存(一個完整的地址空間),但是實際上,它通常被分割成多個物理碎片,還有部分存儲在外部磁盤管理器上,必要時進行數據交換。
通過藉助虛擬內存,在內存不足時仍然可以運行程序。例如,在只剩 5MB 內存空間的情況下仍然可以運行 10MB 的程序。由於 CPU 只能執行加載到內存中的程序,因此,虛擬內存的空間就需要和內存中的空間進行置換(swap),然後運行程序。
虛擬內存與內存的交換方式

虛擬內存的方法有分頁式 和 分段式 兩種。Windows 採用的是分頁式。該方式是指在不考慮程序構造的情況下,把運行的程序按照一定大小的頁進行分割,並以頁爲單位進行置換。在分頁式中,我們把磁盤的內容讀到內存中稱爲 Page In,把內存的內容寫入磁盤稱爲 Page Out。Windows 計算機的頁大小爲 4KB ,也就是說,需要把應用程序按照 4KB 的頁來進行切分,以頁(page)爲單位放到磁盤中,然後進行置換。
在這裏插入圖片描述
爲了實現內存功能,Windows 在磁盤上提供了虛擬內存使用的文件(page file,頁文件)。該文件由 Windows 生成和管理,文件的大小和虛擬內存大小相同,通常大小是內存的 1 - 2 倍。
磁盤的物理結構

之前我們介紹了CPU、內存的物理結構,現在我們來介紹一下磁盤的物理結構。磁盤的物理結構指的是磁盤存儲數據的形式。
磁盤是通過其物理表面劃分成多個空間來使用的。劃分的方式有兩種:可變長方式 和 扇區方式。前者是將物理結構劃分成長度可變的空間,後者是將磁盤結構劃分爲固定長度的空間。一般 Windows 所使用的硬盤和軟盤都是使用扇區這種方式。扇區中,把磁盤表面分成若干個同心圓的空間就是 磁道,把磁道按照固定大小的存儲空間劃分而成的就是 扇區
在這裏插入圖片描述
扇區是對磁盤進行物理讀寫的最小單位。Windows 中使用的磁盤,一般是一個扇區 512 個字節。不過,Windows 在邏輯方面對磁盤進行讀寫的單位是扇區整數倍簇。根據磁盤容量不同功能,1簇可以是 512 字節(1 簇 = 1扇區)、1KB(1簇 = 2扇區)、2KB、4KB、8KB、16KB、32KB( 1 簇 = 64 扇區)。簇和扇區的大小是相等的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章