【系統架構設計師】計算機組成與體系結構 ③ ( 層次化存儲結構 | 寄存器 | 高速緩存 | 內存 | 外存 )

文章目錄

  • 一、層次化存儲結構
    • 1、層次化存儲結構
    • 2、層次化存儲結構 - 示例說明
    • 3、程序員可操作的部分


計算機 采用 分級存儲結構 , 主要目的是 為了 解決 容量 / 價格 / 速度 之間的矛盾 ;





一、層次化存儲結構




1、層次化存儲結構


計算機 存儲器 按照存儲速度 由快到慢 進行排序 :

  • CPU 寄存器 : 在 CPU 內部 , 速度最快 , 每秒可操作幾十億次 , 其容量只有 幾個字節到幾十個字節不等 , 其訪問速度 1 個 CPU 周期 ;
    • CPU 周期 : 指的是 CPU 的運算一次花費的事件 , 2.4GHz 頻率的 CPU 1 秒鐘運算 24 億次 , 其周期就是 24 億分之一秒 ;
    • 寄存器大小 : 32 位 CPU 寄存器有 8位、16位、32位 , 64 位 CPU 寄存器有 8位、16位、32位、64位 ;
  • 高速緩存 Cache : 位于 CPU 與 內存 RAM 之間 , 速度較快 , 用于暫時存放 頻繁使用的 指令和數據 , 可根據速度又分為 L1、L2、L3 多級高速緩存 , 大小在幾百 KB 到 幾 MB 之間 , 訪問速度在 1 ~ 30 個 CPU 周期 ;
  • 內存 : 又稱為 " 主存儲器 / RAM " , 插在計算機的主板上 , 速度慢 , 訪問速度在 50 ~ 200 個 CPU 周期 , 一般家用電腦的 內存條 有 4 ~ 32GB 大小 ;
    • RAM 全稱 Random Access Memory 是 隨機存取存儲器 , 一旦掉電數據全部刷掉 ;
      • DRAM 全稱 Dynamic Random Access Memory 是 動態隨機存取存儲器 , 一個電容 存儲 1 比特信息 , 速度慢 , 成本低 , 性能低于 SRAM ;
      • SRAM 全稱Static Random Access Memory 是 靜態隨機存取存儲器 , 六個晶體管 存儲 1 比特 信息 , 速度快 , 成本高 ;
    • ROM 全稱 Read-Only Memory 是 只讀存儲器 , 掉電后數據不會丟失 , 一般 BIOS / 看門狗 都寫在 ROM 中 , 其讀寫速度與 RAM 相當 ;
  • 外存 : 又稱為 " 輔助存儲器 " , 掛接在計算機外部的 硬盤 / 固態硬盤 / U 盤 , 容量很大可達到幾 TB , 訪問速度很慢 磁盤需要幾千萬個 CPU 周期 / 固態硬盤需要幾十萬個 CPU 周期 ;
    • 外存 斷電后仍然可以存儲數據 , 寄存器 / 高速緩存 / 內存 斷電后數據消失 ;
    • 這里的 訪問速度 指的是 建立連接所需時間 , 訪問后吞吐量每秒幾百 MB ;

在這里插入圖片描述


2、層次化存儲結構 - 示例說明


安裝軟件 , 是將 軟件的程序包 存儲到 外存 ( 磁盤 ) 中 ,

運行軟件時 , 將要運行的 數據 加載到 內存 中運行 , 運行時 不會將整個軟件包加載到內存中 , 用什么資源 , 就將對應的資源加載到內存中 , 如顯示圖片 , 就將圖片加載到內存中 , 顯示完畢后 , 馬上釋放該圖片占用的內存資源 ,

如果需要進行 CPU 計算 , 程序指令調用 , 將 內存中的數據 加載到 高速緩存 Cache 中 ,

正在執行的指令 , 加載到 CPU 內部的 寄存器 中 ;


3、程序員可操作的部分


程序員 開發軟件 , 可以操作 寄存器 / 外存 / 內存 , 高級緩存 Cache 對開發者透明 ;

  • 高級語言只能操作 內存 和 外存 ,
  • 只有 匯編語言可以操作寄存器 ;

操作 外存 就是 文件管理 ;

操作 內存 就是 定義變量 和 函數 , 運行過程中涉及的操作 棧內存 和 堆內存 ;

  • C 語言可以直接手動操作 堆內存 ;
  • Java / Python 等高級語言 由系統管理 堆內存 ;

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

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

相關文章

吐血推薦!3款視頻生成工具,全部國產,都免費

AI視頻大模型的爆發,讓創作爆款視頻不再是專業人士的能力。 今天二師兄給大家推薦3款免費的視頻生成工具。 01 可靈 推薦指數 : 五顆星 先看效果 可靈大模型測試 可靈大模型是快手AI團隊自主研發的視頻生成大模型,具備強大的視頻創作能力&a…

【經典面試題】RabbitMQ如何防止重復消費?

RabbitMQ的消息消費是有確認機制的,正常情況下,消費者在消費消息成功后,會發送一個確認消息,消息隊列接收到之后,就會將該消息從消息隊列中刪除,下次也就不會再投遞了。 但是如果存在網絡延遲的問題&#…

教程:在 Kubernetes 集群上部署 WordPress 網站

WordPress 是專為每個人設計的開源軟件,強調創建網站、博客或應用程序的可訪問性、性能、安全性和易用性。WordPress 是一個基于 PHP 的內容管理系統(CMS),使用 MySQL 作為數據存儲,目前很多網站、電商獨立站、個人博客…

AI新紀元-GPT-5

GPT-5:引領AI新紀元 隨著OpenAI首席技術官米拉穆拉蒂的確認,GPT-5的發布正在逐漸接近我們。從GPT-4到GPT-5的躍遷,不僅標志著技術層面的巨大進步,更是AI智能水平的一次質的飛躍。穆拉蒂將這一進步比喻為從高中生到博士生的成長&am…

深入比較:Symfony與Laravel框架的異同

引言 在現代Web開發領域,PHP框架扮演著至關重要的角色。Symfony和Laravel是兩個非常流行的PHP框架,它們各自有著獨特的設計理念、功能特性和社區支持。本文將深入探討這兩個框架的不同之處,包括設計理念、架構、性能、學習曲線、社區支持等方…

推薦系統三十六式學習筆記:原理篇.模型融合14|一網打盡協同過濾、矩陣分解和線性模型

目錄 從特征組合說起FM模型1.原理2.模型訓練3.預測階段4.一網打盡其他模型5.FFM 總結 在上一篇文章中,我們講到了使用邏輯回歸和梯度提升決策樹組合的模型融合辦法,用于CTR預估,給這個組合起了個名字,叫“輯度組合”。這對組合中&…

Yokogawa AQ6370E 10與AQ6370E 20 光譜儀的區別?

Yokogawa AQ6370E 20相比AQ6370E 10在波長準確度上有哪些改進? AQ6370E 20在波長準確度上相對于AQ6370E 10有明顯的提升,這對于需要高精度波長測量的應用來說是非常有益的。 波長精度提升:AQ6370E 20的波長精度相比AQ6370E 10有所提升&#…

SQL面試題練習 —— 查詢每個用戶的第一條和最后一條記錄

目錄 1 題目2 建表語句3 題解 題目來源:小紅書。 1 題目 現有一張訂單表 t_order 有訂單ID、用戶ID、商品ID、購買商品數量、購買時間,請查詢出每個用戶的第一條記錄和最后一條記錄。樣例數據如下: ---------------------------------------…

個人支付系統實現

基礎首頁: 訂單: 智能售卡系統 基于webmanworkerman開發 禁用函數檢查 使用這個腳本檢查是否有禁用函數。命令行運行curl -Ss https://www.workerman.net/check | php 如果有提示Function 函數名 may be disabled. Please check disable_functions in …

外星生命在地球的潛在存在:科學、哲學與社會的交織

外星生命在地球的潛在存在:科學、哲學與社會的交織 摘要:近年來,關于外星生命是否存在的討論日益激烈。有研究表明,外星人可能已經在地球漫步,這一觀點引發了廣泛的科學、哲學和社會學思考。本文將從科學角度探討外星…

線程池FutureTask淺談

一,概述 FuturnTask實現了Future與Runnable接口,筆者知道,ThreadPoolExecutor#submit可以傳入Callable接口而非Runnable,區別點在于Callable可以返回值,而整個FuturnTask可以理解為Callable設計,用來優雅地異步獲取執行結果,無需手動Condition去實現。 圍繞此,需知道…

鴻蒙開發系統基礎能力:【@ohos.wallpaper (壁紙)】

壁紙 說明: 本模塊首批接口從API version 7開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。 導入模塊 import wallpaper from ohos.wallpaper;WallpaperType 定義壁紙類型。 系統能力: 以下各項對應的系統能力均為SystemCapability…

python接口自動化的腳本

使用Requests庫進行GET請求 Requests是Python中最常用的HTTP庫,用于發送HTTP請求。下面是一個簡單的GET請求示例,用于從API獲取數據。 import requests url = "https://api.example.com/data" response = requests.get(url) if response.status_code == 200:prin…

【項目實訓】falsk后端連接數據庫以及與前端vue進行通信

falsk連接數據庫 我們整個項目采用vueflaskmysql的框架,之前已經搭建好了mysql數據庫,現在要做的是使用flask連接到數據庫并測試 安裝flask 首先安裝flask pip install flask 進行數據庫連接 數據庫連接需要使用到pymysql庫以及flask庫 連接數據庫…

通過注釋語句,簡化實體類的定義(省略get/set/toString的方法)

引用Java的lombok庫,減少模板代碼,如getters、setters、構造函數、toString、equals和hashCode方法等 import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;Data NoArgsConstructor AllArgsConstructorData&#xf…

使用【docker】簡單部署打包構建好的鏡像并運行python項目

使用【docker】簡單部署運行python項目 方案一:使用打包好的鏡像直接運行 一.項目配置 項目壓縮包:project.tar.gz 項目目錄存放在服務器路徑:/var/opt/app (1)解壓項目文件到該目錄下:/var/opt/app 命令&#xff1…

Linux-引導過程與服務控制

目錄 一、Linux操作系統引導過程 1、引導過程總覽 2、引導過程詳解 2.1、開機自檢(BIOS) 2.2、 MBR引導 2.3、GRUB菜單 2.4、加載內核(kernel) 2.5、init進程初始化 3、系統初始化進程 3.1、Systemd單元類型 3.2、運行級別所對應的 Systemd 目…

SherlockChain:基于高級AI實現的智能合約安全分析框架

關于SherlockChain SherlockChain是一款功能強大的智能合約安全分析框架,該工具整合了Slither工具(一款針對智能合約的安全工具)的功能,并引入了高級人工智能模型,旨在輔助廣大研究人員針對Solidity、Vyper和Plutus智…

前端 Array.sort() 源碼學習

源碼地址 V8源碼Array 710行開始為sort()相關 Array.sort()方法是那種排序呢&#xff1f; 去看源碼主要是源于這個問題 // In-place QuickSort algorithm. // For short (length < 22) arrays, insertion sort is used for efficiency.源碼中的第一句話就回答了我的問題…

Potato(土豆)一款輕量級的開源文本標注工具(二)

示例項目&#xff08;模版&#xff09; Potato 旨在提高數據標注的可復制性&#xff0c;并降低研究人員設置新標注任務的成本。因此&#xff0c;Potato 提供了一系列預定義的示例項目&#xff0c;并歡迎公眾向項目中心貢獻。如果您使用 Potato 進行了自己的標注工作&#xff0…