電腦中存儲體系的設計

来源:https://www.cnblogs.com/goWithHappy/archive/2020/04/29/how-to-design-storage-hierarchy.html
-Advertisement-
Play Games

本文主要從存儲體系由來、分類以及原理角度來講解一個存儲體系的設計,努力做到全面。當然由於個人水平有限,文章難免可能會有錯誤,如若發現,懇請指出,不勝感激。 ...


概述

在電腦運行過程中,存儲器是各種信息存儲和交換的中心,而電腦所有存儲器所構成的存儲系統更是整個電腦系統的核心組成部分。在一臺電腦中通常有多個存儲器:主存儲器Cache、通用寄存器磁碟寄存器各種緩衝存儲器光碟存儲器等。

為了評定不同存儲器的性能差異,人們制定了一些主要的性能指標:速度,容量和價格。

其中速度我們用存儲器的訪問周期、讀出時間、頻帶寬度等來進行表示。容量用位元組B、千位元組KB、兆位元組MB和千兆位元組GB等表示。價格則是用單位容量的價錢表示,例如$C/bit

講了這麼多存儲器的內容,那什麼叫做存儲體系哪?

下邊我們引入存儲體系的定義:

兩個或兩個以上速度、容量和價格各不相同的存儲器用硬體、軟體、或軟體與硬體相結合的方法連接建立起來的一個系統。

簡單來說,就是一個將不同類型的存儲器用軟體或者硬體方法結合成一個整體。該系統對程式員透明,並且,從應用程式員來看,它僅僅是一個存儲器。這個存儲器的速度接近速度最快的那個存儲器,存儲容量與容量最大的那個存儲器相等,單位容量的價格接近最便宜的那個存儲器。

為了更加便於理解存儲體系速度、容量和價格的關係,我們畫出下圖用更加嚴謹的方式來進行表述。

符號說明

\[M_i:i\text{號存儲器} \]

\[T_i\text{:}i\text{存儲器的速度性能} \]

\[S_i\text{:}i\text{號存儲器的容量性能} \]

\[C_i\text{:}i\text{號存儲的價格} \]

各個存儲器的各個性能指標和其構成的存儲體系的性能指標之間的關係為:

\[T≈min(T1,T2,……,Tn),用存儲周期表示 \]

\[S=max(S1,S2,……,Sn),容量用MB或GB表示 \]

\[C≈min(C1,C2,……,Cn),價格用每位的價格表示 \]

存儲體系的分類

在電腦系統中一般來說存儲器類別主要有Cache、主存儲器和輔助存儲器三類組成,按照不同的組合方式構成了兩種存儲體系:

  1. Chache存儲體系:由Cache和主存儲器構成
    • 主要目的:提高存儲器速度,或者說是為了貪圖Cache的存儲速度
    • 系統程式員看:速度接近Cache,存儲器容量等於主存,每位的價格接近主存儲器
  2. 虛擬存儲體系:由主存儲器和磁碟存儲器構成
    • 主要目的:擴大存儲器容量,或者說貪圖磁碟存儲器的容量。
    • 應用程式員看:速度接近主存儲器,存儲容量是虛擬地址空間,每位價格接近磁碟存儲器。

看到這裡可能大家會有疑問,三種存儲器兩兩組合方式組中結果不是應該是三種嗎?

或者說應該還有一種組合方式即Cache+磁碟存儲器??

坦白來講此種存儲體系理論上講是可以有的,但是實際應用中,由於Cache和虛擬存儲器的速度差別太大,強行相互結合,根本不可能發揮出Cache存儲器的速度優勢,實際上還會大大拖累Cache的運行。因此此種組合方式在實際應用過程中根本不可能存在。

image-20200418100446764

存儲效率

關於速度的評定我們一般通過,訪問周期、存取周期、存儲周期、存取時間等來進行表示。

關於這些指標的計算我們詳細可以參照百度百科

提到了存儲器的速度,我們就提另一個指標存儲效率

首先我們給出命中率的定義:

\(M_1\)存儲器中達到的訪問效率,給出以下公式

\[

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 十二、迴圈控制及狀態返回值應用實踐 本章將帶著大家學習以下幾個特殊的命令break(迴圈控制)、continue(迴圈控制)、exit(退出腳本)、return(退出函數)。 (一)、break、continue、exit、return的區別和對比 在上述命令中,break、continue在條件語 ...
  • 十一、for迴圈語句應用實踐 (一)、for迴圈語法 (二)範例1 用for迴圈豎向列印1、2、3、4、5共5個數字。 (三)範例2: 通過開發腳本實現僅設置sshd rsyslog crond network sysstat 服務 開機自啟動。 (四)範例3: 計算從1加到100之和。 (五)案例 ...
  • 十、while迴圈及應用實踐 (一)while迴圈語法 (二)範例1: 每隔2s輸出系統負載情況。 1、腳本執行的方法 | 用法 | 說明 | | | | | sh while1.sh & | 把腳本while1.sh放到後臺執行(後臺運行腳本時常用) | | nohup while1.sh & | ...
  • Ansible Jinja2 模板使用、語法與使用案例 主機規劃 添加用戶賬號 說明: 1、 運維人員使用的登錄賬號; 2、 所有的業務都放在 /app/ 下「yun用戶的家目錄」,避免業務數據亂放; 3、 該用戶也被 ansible 使用,因為幾乎所有的生產環境都是禁止 root 遠程登錄的(因此 ...
  • Ncdu (NCurses Disk Usage) :磁碟目錄分析工具 平時大家在Centos系統上使用du命令來查看磁碟目錄及文件的使用情況,今天分享一款更方便更好用的工具:Ncdu,它是一個基於 Ncurses 庫的 du 命令的界面。ncdu命令是對傳統du命令功能上的增強,不需要像du那樣輸 ...
  • 文章來源: "linux下文件的打包和壓縮" "TOC" 一、文件壓縮的原理 簡單來說,壓縮技術就是在存儲時將文件裡面沒有使用的空間利用起來,主要有以下兩種情況。 1. 存儲時去掉沒有用到的空間。假設我們只是存儲一個數字 1 ,二進位表示數字1只需1個bit是1就可以表示(1=1 2^0),但是為了 ...
  • 使用apt-get安裝時,會很慢,更換了國內的源後,就可以解決這個問題了。 1. 備份sources.list文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 2. 打開sources.list文件 sudo gedit /etc/ ...
  • 創建mongodb分片集群 + keyFile認證 一、環境準備 1. 伺服器節點信息【三台伺服器】 x.x.x.159、 x.x.x..160、 x.x.x..161 2. 伺服器系統 linux x86_64 GNU/Linux 或者 centos7 或者 redhat 3. mongodb版本 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...