文章目錄
- 一、層次化存儲結構
- 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 相當 ;
- RAM 全稱 Random Access Memory 是 隨機存取存儲器 , 一旦掉電數據全部刷掉 ;
- 外存 : 又稱為 " 輔助存儲器 " , 掛接在計算機外部的 硬盤 / 固態硬盤 / U 盤 , 容量很大可達到幾 TB , 訪問速度很慢 磁盤需要幾千萬個 CPU 周期 / 固態硬盤需要幾十萬個 CPU 周期 ;
- 外存 斷電后仍然可以存儲數據 , 寄存器 / 高速緩存 / 內存 斷電后數據消失 ;
- 這里的 訪問速度 指的是 建立連接所需時間 , 訪問后吞吐量每秒幾百 MB ;
2、層次化存儲結構 - 示例說明
安裝軟件 , 是將 軟件的程序包 存儲到 外存 ( 磁盤 ) 中 ,
運行軟件時 , 將要運行的 數據 加載到 內存 中運行 , 運行時 不會將整個軟件包加載到內存中 , 用什么資源 , 就將對應的資源加載到內存中 , 如顯示圖片 , 就將圖片加載到內存中 , 顯示完畢后 , 馬上釋放該圖片占用的內存資源 ,
如果需要進行 CPU 計算 , 程序指令調用 , 將 內存中的數據 加載到 高速緩存 Cache 中 ,
正在執行的指令 , 加載到 CPU 內部的 寄存器 中 ;
3、程序員可操作的部分
程序員 開發軟件 , 可以操作 寄存器 / 外存 / 內存 , 高級緩存 Cache 對開發者透明 ;
- 高級語言只能操作 內存 和 外存 ,
- 只有 匯編語言可以操作寄存器 ;
操作 外存 就是 文件管理 ;
操作 內存 就是 定義變量 和 函數 , 運行過程中涉及的操作 棧內存 和 堆內存 ;
- C 語言可以直接手動操作 堆內存 ;
- Java / Python 等高級語言 由系統管理 堆內存 ;