計算機存儲結構分析(寄存器,內存,緩存,硬盤)

https://blog.csdn.net/bemodesty/article/details/81476906

前言 ?

? ? ? ? ?一個計算機包含多種存儲器比如:寄存器、高速緩存、內存、硬盤、光盤等,為啥有這么多種存儲方式,對于不太了解的人,總是覺得云里霧里的,搞不明白原因。

? ? ? ? 計算機主要的功能就是運算(cpu),但是要完成一個任務,就要讀取運算指令,并將結果輸出給用戶;因此,指令的存儲、運算過程中中間狀態的存儲、結果的保存等都需要存儲器。

第一代計算機,接收指令是通過讀取穿孔卡片來實現的,這個穿孔卡片就可以理解為最老的用來存儲命令的存儲器。

理想狀態下,存儲器的執行速度應該快過計算機的運算速度,這樣才可以最大化的利用cpu的計算能力。比如:cpu的運算速度是每秒100條指令,但是如果存儲器的速度是每秒最多能讀取10條指令,那么cpu就有90%的時間是等待指令; 這樣的存儲器是有的,那就是寄存器,寄存器是和cpu同樣材質制作的,速度和cpu一樣快,當然價格也就和cpu一樣了。

但是如果一臺計算機,存儲器都是寄存器的話,那造出來的計算機,肯定就是天價了,普通人都買不起。計算機的設計著綜合:讀寫速度,空間大小,產品價格等因素采用了分層結構來實現,取了一個性價比最好的方案。

分層結構

如下所示,頂層的存儲器(寄存器)讀寫速度較高,但是空間較小。底層的讀寫(比如硬盤)速度較低,但是空間較大。

寄存器和cpu速度相當,空間比較小在kb級別。??????

高速緩存比寄存器要慢1倍左右,但是空間可以達到MB級別。

內存比緩存要慢10倍左右,但是空間可以達到GB級別,當前個人電腦一般都不小于4G

硬盤這個速度更慢,比內存要慢上萬被,千萬被級別,但是價格也比較偏移,空間也很大。

其他存儲光盤,軟盤,usb外接的其他存儲器,作為硬盤的一個補充,有便于攜帶的優點

總結:計算機的存儲設計的這么復雜,并不是設計者故意要搞得麻煩,而是要兼顧性能和價格綜合考量的一個因素,如果未來有一個存儲產品,能達到當前寄存器的讀取性能,而又可以做的空間極大,并且價格和硬盤一樣,或者說比硬盤還便宜,且數據是掉電不丟失的話,那么計算機的存儲結構肯定就被簡化了,直接就只有一個存儲器。

小貼士:現在買電腦時,存儲器上,大家主要關注在了 內存大小和硬盤大小,但是從分層結構圖上,可以看出緩存大小更加重要,(當然如果廠商公布寄存器大小的話,這個也要關注)。

寄存器

寄存器是CPU內部用來存放數據的一些小型存儲區域,用來暫時存放參與運算的數據和運算結果,寄存器雖然也能存儲數據,但同內存等存儲器相比,寄存器又有自己獨有的用途:其主要是CPU對內存中的數據進行處理時,往往先把數據取到寄存器中,而后再作處理,加快直接同內存讀取指令和讀寫數據的速度。

高速緩存

高速緩沖存儲器是存在于內存與CPU之間的存儲器,容量比較小但速度比內存高得多, 接近于CPU的速度。高速緩存是是加速讀取速度的一個橋梁(工具)。CPU向內存讀取數據時,首先查詢緩存區是否有對應數據,如果有則直接讀取,沒有再從內存中讀取。高速緩存中存儲的都是內存中的數據,這部分數據是cpu訪問比較頻繁的部分。

系統也會動態管理緩存中的數據,如果有數據訪問頻率降低到一定值,就從緩存中移除,而將內存中訪問更加頻發的數據替換進去。(高速緩存可以不只一級,可以有多級緩存區)

內存

這個才是計算機運行過程中的存儲主力,用于存儲 指令(編譯好的代碼段),運行中的各個靜態,動態,臨時變量,外部文件的指針等等。

前面提到的寄存器和高速緩存只是加速存儲速度的中間部件,原始運行文件肯定都是先加入到內存中的,因此內存的大小決定了一個可運行程序的最大大小。

舉例:如果內存大小是4G,一個程序裝入內存需要大于4G空間的話,改程序是無法運行的,當然實際是還要去掉操作系統占用的內存,因此連4G都無法滿足的。(當然現在有了虛擬內存,也就是將硬盤的一部分映射為內存空間,將不經常訪問的指令放到虛擬內存中,這樣其實是支持大于4G的程序的,這里只是在假設沒有虛擬內存的情況下的舉例說明)。

硬盤

硬盤這個東西,大家應該都比較熟悉,其優點是空間大,價格便宜,并且掉電數據不丟失。常常用來存儲需要永久存儲的文件。

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

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

相關文章

java-兩個列表進行比較,判斷那些是需要新增的、刪除的、和更新的

文章目錄 前言兩個列表進行比較,判斷那些是需要新增的、刪除的、和更新的 前言 如果您覺得有用的話,記得給博主點個贊,評論,收藏一鍵三連啊,寫作不易啊^ _ ^。 ??而且聽說點贊的人每天的運氣都不會太差,實…

SpringIOC之@Configuration

博主介紹:?全網粉絲5W,全棧開發工程師,從事多年軟件開發,在大廠呆過。持有軟件中級、六級等證書。可提供微服務項目搭建與畢業項目實戰,博主也曾寫過優秀論文,查重率極低,在這方面有豐富的經驗…

Django的logging-日志模塊的簡單使用方法

擴展閱讀: Python-Django的“日志功能-日志模塊(logging模塊)-日志輸出”的功能詳解 現在有下面的Python代碼: # -*- coding: utf-8 -*-def log_out_test(content_out):print(content_out)content1 "i love you01" log_out_test(content1)現…

云服務器Centos中安裝Docker

云服務器Centos中安裝Docker 1 簡介DockerCentosCentos和Ubuntu區別 2 安裝3 測試hello-world的鏡像測試 1 簡介 Docker Docker是一個開源的應用容器引擎,利用操作系統本身已有的機制和特性,可以實現遠超傳統虛擬機的輕量級虛擬化。它支持將軟件編譯成…

Hive 淺析

Hive是一個簡單的LUA沙盒,除了基本的LUA解釋器的功能以外,還提供了諸如熱加載等功能。 了解HIVE的工作原理有利于了解Lua虛擬機的底層實現機理。 本文從是什么-怎么用-為什么三個維度介紹HIVE。 Hive Hive是什么 hive是一個簡單的LUA應用框架,目前基于…

Mybatis Plus詳解【一】

一、簡介 MybatisPlus可以節省大量時間,所有的CRUD代碼都可以自動化完成。MyBatis-Plus是一個MyBatis的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。 特性: 無侵入:只做增強不做改變&…

Windows 12 和 AI 計算機

據商業時報消息 ,微軟計劃于 2024 年 6 月發布Windows 12。 新版本的操作系統將伴隨集成人工智能。 該數據基于廣達首席執行官林百里和宏基陳杰森在中國臺北醫療科技展上的發言。 雖然這篇文章沒有直接引用微軟高管的話,但它是根據他們的評論得出的結…

IDEA 社區版 add GitLab Account

問題 IntelliJ IDEA Community Edition 2023.3(社區版)在使用GitLab連接時,使用個人訪問令牌出現報錯,代碼: GraphQL error:[No such type ProjectMember,so it cant be a fraggment condition,Field id doesnt exis…

2023年最新prometheus + grafana搭建和使用

一、安裝prometheus 1.1 安裝 prometheus官網下載地址 sudo -i mkdir -p /opt/prometheus #移動解壓后的文件名到/opt/,并改名prometheus mv prometheus-2.45 /opt/prometheus/ #創建一個專門的prometheus用戶: -M 不創建家目錄, -s 不讓登錄 useradd…

Navicat 技術指引 | 適用于 GaussDB 分布式的數據遷移工具

Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式數據庫。GaussDB 分布式模式更適合對系統可用性和數據處理能力要求較高的場景。Navicat 工具不僅提供可視化數據查看和編輯功能,還提供強大的高階功能(如模型、結…

單例模式---餓漢式、懶漢式

一、什么是單例模式 單例模式,指的是一個類中的對象只能有一個,它在內存中只會創建一次對象的設計模式。 二、餓漢式 public class SingleTon {// 私有的構造方法private SingleTon() {};// 1. 餓漢式private static SingleTon instance new SingleTon…

整數以及浮點數在內存中的存儲

一.整數在內存當中的存儲 數據在內存中是以十六進制補碼的形式進行存儲的。 原碼表示法簡單易懂,適用于乘法,但用原碼表示的數進行加減運算比較復雜,當兩數相加時,如果同號則數值相加,但是進行減法時要先比較絕對值的…

認知覺醒(六)

認知覺醒(六) 第二節 感性:頂級的成長竟然是“憑感覺” 人類生存于世,比拼的是腦力思維,但極少有人知道,我們的身體里還有一個更高級的系統,若能善用,成就非凡。 1941年,德軍對英國本土進行…

Neo4j介紹

1、Neo4j介紹 Neo4j 是一個圖數據庫管理系統,它專注于存儲和處理圖形結構的數據。圖數據庫是一類特殊的數據庫,用于有效地管理圖形數據模型,其中數據以節點、關系和屬性的形式存儲。 2、Neo4j特點 圖數據庫: Neo4j 是一種 NoSQ…

目標檢測器技術演進簡史

引言 目標檢測算法的發展已經取得了長足的進步,從早期的計算機視覺方法開始,通過深度學習達到了很高的準確度。在這篇博文中,我們將一起回顧一下這些算法的發展階段以及現代目標檢測系統中使用的主要方法。 我們首先回顧早期傳統的目標檢測…

大數據技術3:數據倉庫的ETL和分層模型

前言:我們先了解一下數據倉庫架構的演變過程。 1 、數據倉庫定義 數據倉庫是一個面向主題的(Subject Oriented)、集成的(Integrate)、相對穩定的(Non-Volatile)、反映歷史變化(Time…

電商系統架構演進

聊聊電商系統架構演進 具體以電子商務網站為例, 展示web應用的架構演變過程。 1.0時代 這個時候是一個web項目里包含了所有的模塊,一個數據庫里包含了所需要的所有表,這時候網站訪問量增加時,首先遇到瓶頸的是應用服務器連接數&a…

深入體驗:山海鯨可視化軟件的獨特魅力

山海鯨可視化軟件是一款功能強大的數據可視化工具,作為該軟件的資深用戶,我深感其獨特的魅力和優勢。下面,我將從軟件特點、操作體驗、數據交互和實際應用場景等方面,為大家詳細介紹山海鯨可視化軟件。 首先,山海鯨可視…

解決Eslint和Prettier關于三元運算符的沖突問題

三元運算符Prettier的格式化 三元運算符Eslint的格式要求 解決辦法 // eslint加入配置,屏蔽標紅報錯indent: [error, 2, { ignoredNodes: [ConditionalExpression] }]效果

Nginx按指定格式記錄訪問日志

今天突然想起來一個日志的一個東西,因為拉項目無意中看到了日志文件的一些東西,現在不經常做后端了,加上其他的一些原因吧.有時候有些問題也沒想太多,馬馬虎虎就過了,后來想想還是要記錄一下這方面的處理過程吧: 一般我們作為開發人員關注的日志只是在應用程序層面的,我們稱它…