[計算機科學#6]:從鎖存器到內存,計算機存儲的構建與原理

[LOGO]:CoreKSets

? ? ? ? ? ?【核知坊】:釋放青春想象,碼動全新視野。? ? ? ? ??

? ? ? ? ? ? 我們希望使用精簡的信息傳達知識的骨架,啟發創造者開啟創造之路!!!? ? ? ? ??


內容摘要在上一篇文章中,我們深入了解了計算機如何通過二進制進行高效加法計算。然而,計算僅僅是計算機功能的一部分,如何保存這些計算結果也很重要。存儲對于計算機而言,就如同人類的記憶一樣不可或缺。我們通過記憶保存信息,以便在未來需要時能夠隨時調用。計算機雖然不會像人腦那樣“遺忘”,但如果沒有存儲機制,它將無法保存任何數據,每次計算的結果都會在瞬間消失。本文將帶你走進計算機存儲的世界,從基礎的寄存器到復雜的內存模塊,逐步揭開計算機存儲的基本原理。

關鍵詞:狀態保持 RAM 內存


其他相關文章:

[計算機科學#5]:計算機的“數學大腦”——核心部件ALU揭秘-CSDN博客

[計算機科學#4]:二進制如何塑造數字世界(0和1的力量)-CSDN博客

[計算機科學#3]:布爾邏輯 (計算機數學基礎)-CSDN博客

1. 常見存儲器


????????存儲器是計算機系統中用于存儲數據的關鍵組件,盡管存在多種類型,但它們的核心功能都是存儲數據。不同存儲器的主要區別在于是否持久存儲(數據是否在斷電后保留)和存儲速度(讀寫數據的快慢)。易失性存儲器(如RAM)在斷電后會丟失數據,但讀寫速度快,適合臨時存儲;而非易失性存儲器(如ROM、閃存、硬盤)則能在斷電后保留數據,適合長期存儲。這些特性決定了它們各自的應用場景和成本效益。

1.1 RAM(隨機存儲)

????????RAM是計算機中用于臨時存儲數據的關鍵組件,支持快速的隨機讀寫操作,適合頻繁的數據訪問。例如,當你在電腦上玩游戲時,游戲的實時狀態(如角色位置、任務進度等)會被存儲在 RAM 中,以便快速讀取和更新。然而,RAM 是易失性存儲器,一旦斷電,數據就會丟失。因此,游戲進度需要定期保存到硬盤等非易失性存儲設備中。RAM 的常見類型包括 DRAM(動態隨機存取存儲器),它通過電容器存儲數據,但需要定期刷新以保持數據完整性。

1.2 SRAM(靜態存儲)

????????SRAM是 RAM 的一種類型,使用鎖存器存儲數據,因此不需要定期刷新,數據在電源持續供應的情況下可以長期保持。SRAM 的速度通常比 DRAM 更快,功耗更低,但成本更高,因此常用于對速度和穩定性要求較高的場景,如 CPU 緩存和高端顯卡。例如,在游戲主機中,SRAM 可能用于存儲地圖數據或角色狀態,以便快速讀取并確保數據的穩定性。

1.3 DRAM(動態隨機存取存儲器)

????????DRAM是RAM的一種,使用電容器存儲數據,需要定期刷新以保持數據完整性。它比SRAM成本更低,但速度較慢,功耗更高。由于其成本效益,DRAM是現代計算機主內存的主要組成部分,用于存儲操作系統、應用程序和當前正在處理的數據。

1.4 ROM(只讀存儲器)

????????ROM是一種非易失性存儲器,數據在制造過程中寫入,通常不可更改。它用于存儲固件或系統軟件,如BIOS或路由器固件。ROM用于存儲啟動程序和系統級軟件,這些軟件在設備啟動時加載,用于初始化硬件和操作系統。

1.5 PROM(可編程只讀存儲器)

????????PROM是一種可編程的非易失性存儲器,用戶可以在制造后寫入數據,但寫入后通常不可更改。PROM用于存儲定制的固件或配置數據,例如嵌入式系統中的啟動代碼。

1.6 EPROM(可擦寫可編程只讀存儲器)

????????EPROM是一種可擦寫的非易失性存儲器,數據可以通過紫外線照射擦除,然后重新編程。EPROM用于需要多次更新固件的場景,例如開發階段的嵌入式系統。

1.7EEPROM(電可擦寫可編程只讀存儲器)

????????EEPROM是一種可以通過電信號擦寫數據的非易失性存儲器,擦寫速度快,支持多次寫入。EEPROM用于存儲需要頻繁更新的小量數據,如設備的配置參數或用戶設置。

1.8 Flash Memory(閃存)

????????閃存是一種非易失性存儲器,數據在斷電后仍然保留。它結合了EEPROM的優點,但具有更高的密度和更低的成本。閃存廣泛應用于USB閃存驅動器、固態硬盤(SSD)、智能手機和嵌入式設備中,用于存儲操作系統、應用程序和用戶數據。

1.9 NVRAM(非易失性隨機存取存儲器)

????????NVRAM是一種非易失性存儲器,結合了RAM的隨機存取特性和非易失性存儲器的數據保留能力。它通常使用電池或其他電源技術來保持數據。NVRAM用于需要在斷電時保留數據的場景,例如工業控制系統和某些嵌入式設備。

1.10磁盤存儲(HDD/SSD)

????????硬盤驅動器(HDD)和固態硬盤(SSD)是用于長期存儲數據的設備。HDD使用磁性介質存儲數據,而SSD使用閃存技術。磁盤存儲用于存儲操作系統、應用程序、用戶文件和其他大量數據,是計算機系統的主要存儲設備。

2. 鎖存器


2.1 AND-OR 鎖存器

????????AND-OR鎖存器是一種基礎的數字電路存儲元件,具有獨特的功能和結構特點。它能夠存儲一個比特的信息,即0或1,通過反饋機制保持輸出狀態,直到被新的輸入信號改變。這種鎖存器有兩個主要輸入:“置位”輸入和“復位”輸入。置位輸入用于將鎖存器的輸出設置為1,而復位輸入則用于將輸出設置為0。當置位和復位輸入均為0時,鎖存器會保持其當前的輸出狀態不變,這意味著它可以“記住”之前存儲的值,即使在沒有新的輸入信號時也能保持穩定。但是,AND-OR鎖存器的置位和復位輸入不能同時為1,否則會導致鎖存器的輸出狀態不確定。這種互斥特性要求在實際應用中對輸入信號進行嚴格控制,以避免沖突。

2.2 GATED 鎖存器

????????上述內容你可能看后感覺非常不易理解,于是我們對其進行改進,將它封裝為一個更容易理解的鎖存器部件,該部件有2個輸入:DATA_INPUT(需要配置存儲的數據,0或1) 和 WRITE_ENABLE(讀寫開關,配置1可以隨意更改輸出,配置0只能讀取不能修改),一個輸出DATA_OUPT。

3. 寄存器


????????寄存器由一組鎖存器組成,可以同時存儲多位二進制,寄存器存儲的位數就叫做位寬。常見的寄存器位寬有,8位、16位、32位、64位,當今的大多數電腦位寬都是32位和64位。寄存器的主要特點是其讀寫速度非常快,通常比主內存(RAM)的訪問速度要快得多。它們通常位于CPU內部或靠近CPU的位置,用于存儲CPU在執行程序時需要頻繁訪問的數據,如指令地址、操作數、中間結果等。寄存器的使用可以顯著提高計算機的運行效率,因為它們減少了對主內存的訪問次數。

????????如圖,8位寄存器由8個鎖存器組成,通過一根控制線統一管理這些鎖存器的讀寫操作。當這根控制線激活寫功能時,數據輸入端的每一位都可以被寫入到對應的鎖存器中,從而更新寄存器的輸出狀態。而當寫功能關閉(即進入只讀模式)時,即使輸入端的數據發生變化,鎖存器中之前保存的狀態也不會被修改。由于這根控制線同時管理所有8個鎖存器的寫操作,因此這種操作被稱為“寫入一個字節(8位)”。

4.矩陣寄存器


????????隨著對存儲容量需求的增加,單純通過擴展8位寄存器的方式(如直接并排放置更多鎖存器)來構建16位、32位或64位寄存器變得越來越不靈活。這種簡單擴展不僅會導致線路復雜度急劇增加,還會顯著提高硬件成本和控制難度。因此,研究人員們探索了更高效的設計方法。

????????他們采用了一種矩陣形式的布局,將鎖存器規則地排列成網格狀,利用行線和列線的交叉點來唯一標識每個鎖存器。通過在矩陣中增加一些邏輯門,可以精確地控制任何一個鎖存器,從而實現對任何一個數據位的讀寫操作。然而,如果直接使用行和列的交叉位置來控制每個鎖存器,會導致控制線路數量過多,從而增加控制成本。

????????為了優化這一過程,研究人員利用了二進制的特性。他們將鎖存器的位置用行列序號來表示,而這些序號則用二進制形式表示。通過這種方式,每個鎖存器都可以通過一個唯一的地址來標識。這種使用二進制序號來標識鎖存器位置的方法被稱為地址。通過地址機制,可以高效地定位和訪問矩陣中的任何一個鎖存器,從而顯著減少了控制線路的數量,并簡化了整體的控制邏輯。

????????通過該方式我們可以拓展更大的不同規模的寄存器矩陣,例如256(8位地址),1024(10位地址),2048(11位地址)等寄存器。

5.更大的存儲器


????????通過矩陣布局和地址編碼的方式,可以高效地將小型寄存器塊組合成更大容量的寄存器系統。例如,我們可以使用8個256比特的寄存器塊,通過8條數據地址線來精確選擇每個寄存器塊中的任意一個比特位。同時,利用3條存儲塊片選地址線來確定操作哪一個256比特的寄存器塊。此外,僅需一條數據線即可輸入待存儲的數據位,而讀寫操作則通過單獨的讀寫控制線來管理。這種設計不僅優化了線路數量,還提高了存儲系統的靈活性和可擴展性。

????????6.寄存器表


????????在許多應用場景中,為了更直觀地使用和管理寄存器,我們常常將寄存器抽象為一張數據和地址對應的表格。這種表格形式的表示方法能夠清晰地展示每個寄存器的地址以及其對應的數據內容,使得開發者可以快速定位和操作所需的寄存器。

????????對于那些經常接觸嵌入式系統的開發者來說,這種表格形式的寄存器表示在各種模塊的說明文檔中屢見不鮮。例如,在微控制器或嵌入式芯片的文檔中,寄存器表格通常會詳細列出每個寄存器的地址、名稱、位寬、默認值以及功能描述。通過這些表格,開發者可以輕松地了解如何通過特定的地址訪問和修改寄存器中的數據,從而實現對硬件模塊的精確控制。

文章總結


????????從簡單的鎖存器到復雜的內存模塊,計算機存儲系統的發展經歷了漫長的過程。寄存器和內存作為計算機存儲體系的核心部分,各自承擔著不同的任務。寄存器用于快速存儲和處理數據,而內存則為計算機提供了廣闊的工作空間。通過合理的存儲組織方式和高效的尋址機制,計算機能夠高效地管理海量數據,從而實現復雜的計算任務。在未來,隨著技術的不斷進步,計算機存儲系統還將繼續發展。例如,新型存儲介質如閃存(Flash)和相變存儲器(PCM)的出現,為計算機存儲帶來了新的可能性。這些存儲介質具有更高的存儲密度、更快的讀寫速度和更低的功耗,有望進一步提升計算機的性能和效率。無論技術如何發展,存儲始終是計算機不可或缺的一部分,它將陪伴著計算機不斷前行。

????????感謝閱覽,如果你喜歡該內容的話,可以點贊,收藏,轉發。由于 Koro 能力有限,有任何問題請在評論區內提出,Koro 看到后第一時間回復您!!!


其他精彩內容:

[計算機科學#1]:計算機的前世今生,從算盤到IBM的演變之路-CSDN博客

[計算機科學#2]:從繼電器到晶體管的電子計算機發展史(龐然大物的進化)-CSDN博客


參考內容:

Crash Course Computer Science(Y-T)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78989.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78989.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78989.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何刪除Google Chrome中的所有歷史記錄【一鍵清除】

谷歌瀏覽器記錄了用戶訪問過的網站。這方便了查找,但有時也需要清理。刪除所有歷史記錄很簡單,只要按照以下步驟操作。 1. 打開谷歌瀏覽器 首先要啟動谷歌瀏覽器。點擊右上角的三個點,進入主菜單。 2. 進入歷史記錄界面 在菜單中找到“歷史…

關于瀏覽器對于HTML實體編碼,urlencode,Unicode解析

目錄 HTML實體編碼 URL編碼 Unicode編碼 解析層次邏輯 為什么<script></script>不可以編碼符號 為什么不能編碼JavaScript:協議 為什么RCDATA標簽中的都會被解析成文本 為什么HTML編碼了<>無法執行 HTML實體編碼 通過特殊語法&#xff08;<、>…

【數據分享】2020年中國高精度森林覆蓋數據集(免費獲取)

森林作為全球陸地生態系統的主體&#xff0c;分布面積廣、結構復雜&#xff0c;承擔著調節氣候、維護生態安全、改善環境等方面的重要作用。我國的森林資源豐富&#xff0c;據《中國森林資源報告&#xff1a;2014—2018》統計&#xff0c;我國森林覆蓋率已經達到23.04%。森林覆…

C語言學習之動態內存的管理

學完前面的C語言內容后&#xff0c;我們之前給內存開辟空間的方式是這樣的。 int val20; char arr[10]{0}; 我們發現這個方式有兩個弊端&#xff1a;空間是固定的&#xff1b;同時在聲明的時候必須指定數組的長度&#xff0c;一旦確定了大小就不能調整的。 而實際應用的過程中…

【深度學習-Day 2】圖解線性代數:從標量到張量,理解深度學習的數據表示與運算

Langchain系列文章目錄 01-玩轉LangChain&#xff1a;從模型調用到Prompt模板與輸出解析的完整指南 02-玩轉 LangChain Memory 模塊&#xff1a;四種記憶類型詳解及應用場景全覆蓋 03-全面掌握 LangChain&#xff1a;從核心鏈條構建到動態任務分配的實戰指南 04-玩轉 LangChai…

首頁數據展示

排版 現在做首頁的排版&#xff0c;依舊是偷antd里面的東西 使用card包裹list的樣式 import React from react import axios import { Card, Col, Row, List } from antd import { EditOutlined, EllipsisOutlined, SettingOutlined } from ant-design/icons; import { Avat…

使用Set和Map解題思路

前言 Set和Map這兩種數據結構,在解決一些題上&#xff0c;效率很高。跟大家簡單分享一些題以及如何使用Set和Map去解決這些題目。 題目鏈接 136. 只出現一次的數字 - 力扣&#xff08;LeetCode&#xff09; 138. 隨機鏈表的復制 - 力扣&#xff08;LeetCode&#xff09; 舊…

嘗試leaflet+webassemly

前言 筆者在github發現rust版本的leaflet&#xff0c;發現是用wasm-bindgen包裝的&#xff0c;嘗試使用一下 Issues slowtec/leaflet-rshttps://github.com/slowtec/leaflet-rs 正文 準備 新建一個react項目&#xff0c;安裝rsw依賴 pnpm i -D vite-plugin-rsw cargo ins…

機器學習實戰,天貓雙十一銷量與中國人壽保費預測,使用多項式回歸,梯度下降,EDA數據探索,彈性網絡等技術

前言 很多同學學機器學習時總感覺&#xff1a;“公式推導我會&#xff0c;代碼也能看懂&#xff0c;但自己從頭做項目就懵”。 這次我們選了兩個小數據集&#xff0c;降低復雜度&#xff0c;帶大家從頭開始進行分析&#xff0c;建模&#xff0c;預測&#xff0c;可視化等&…

SQL數據庫系統全解析:從入門到實踐

一、數據庫世界入門指南 在數字時代&#xff0c;數據就像新時代的石油&#xff0c;而數據庫系統就是儲存和管理這些寶貴資源的倉庫。對于初學者來說&#xff0c;理解數據庫的基本概念是邁入這個領域的第一步。 數據庫本質上是一個有組織的數據集合&#xff0c;它允許我們高效…

【大模型】圖像生成:StyleGAN3:生成對抗網絡的革命性進化

深度解析StyleGAN3&#xff1a;生成對抗網絡的革命性進化 技術演進與架構創新代際技術對比StyleGAN3架構解析 環境配置與快速入門硬件要求安裝步驟預訓練模型下載 實戰全流程解析1. 圖像生成示例2. 自定義數據集訓練3. 潛在空間操作 核心技術深度解析1. 連續信號建模2. 傅里葉特…

PHP-Cookie

Cookie 是什么&#xff1f; cookie 常用于識別用戶。cookie 是一種服務器留在用戶計算機上的小文件。每當同一臺計算機通過瀏覽器請求頁面時&#xff0c;這臺計算機將會發送 cookie。通過 PHP&#xff0c;您能夠創建并取回 cookie 的值。 設置Cookie 在PHP中&#xff0c;你可…

“Everything“工具 是 Windows 上文件名搜索引擎神奇

01 Everything 和其他搜索引擎有何不同 輕量安裝文件。 干凈簡潔的用戶界面。 快速文件索引。 快速搜索。 快速啟動。 最小資源使用。 輕量數據庫。 實時更新。 官網&#xff1a;https://www.voidtools.com/zh-cn/downloads/ 通過網盤分享的文件&#xff1a;Every…

CSS:選擇器-基本選擇器

文章目錄 1、通配選擇器2、元素選擇器3、類選擇器4、ID選擇器 1、通配選擇器 2、元素選擇器 3、類選擇器 4、ID選擇器

一種動態分配內存錯誤的解決辦法

1、項目背景 一款2年前開發的無線網絡通信軟件在最近的使用過程中出現網絡中傳感器離線的問題&#xff0c;此軟件之前已經使用的幾年了&#xff0c;基本功能還算穩定。這次為什么出了問題。 先派工程師去現場調試一下&#xff0c;初步的結果是網絡信號弱&#xff0c;并且有個別…

React 第三十四節 Router 開發中 useLocation Hook 的用法以及案例詳解

一、useLocation基礎用法 作用&#xff1a;獲取當前路由的 location 對象 返回對象結構&#xff1a; {pathname: "/about", // 當前路徑search: "?namejohn", // 查詢參數&#xff08;URL參數&#xff09;hash: "#contact", …

DeepSeek-Prover-V2-671B最新體驗地址:Prover版僅適合解決專業數學證明問題

DeepSeek-Prover-V2-671B最新體驗地址&#xff1a;Prover版僅適合解決專業數學證明問題 DeepSeek 團隊于 2025 年 4 月 30 日正式在Hugging Face開源了其重量級新作 —— DeepSeek-Prover-V2-671B&#xff0c;這是一款專為解決數學定理證明和形式化推理任務而設計的超大規模語…

tornado_登錄頁面(案例)

目錄 1.基礎知識?編輯 2.腳手架&#xff08;模版&#xff09; 3.登錄流程圖&#xff08;processon&#xff09; 4.登錄表單 4.1后&#xff08;返回值&#xff09;任何值&#xff1a;username/password &#xff08;4.1.1&#xff09;app.py &#xff08;4.1.2&#xff…

Android學習總結之自定義view設計模式理解

面試題 1&#xff1a;請舉例說明自定義 View 中模板方法模式的應用 考點分析 此問題主要考查對模板方法模式的理解&#xff0c;以及該模式在 Android 自定義 View 生命周期方法里的實際運用。 回答內容 模板方法模式定義了一個操作的算法骨架&#xff0c;把一些步驟的實現延…

【Scrapy】簡單項目實戰--爬取dangdang圖書信息

目錄 一、基本步驟 1、新建項目 &#xff1a;新建一個新的爬蟲項目 2、明確目標 &#xff08;items.py&#xff09;&#xff1a;明確你想要抓取的目標 3、制作爬蟲 &#xff08;spiders/xxspider.py&#xff09;&#xff1a;制作爬蟲開始爬取網頁 4、存儲內容 &#xff08;p…