計算機組成與體系結構:內存接口(Memory Interface)

目錄

什么是內存接口 ?

為什么需要特別設計“接口”?

什么是 MIPS?為什么它和內存接口有關?

內存接口的兩種訪問方式

串行訪問(Serial Access Model)

并行訪問(Parallel Access Model)


什么是內存接口 ?

我們可以從最直覺的問題入手:

? CPU 要處理數據,那它是怎么和內存溝通、傳輸數據的?

這就像人要和外界溝通,需要“語言”和“通道”,那么 CPU 也需要某種“協議”或“機制”來訪問 memory(內存)。這個“語言和通道”就是:

Memory Interface(內存接口)——它是連接 CPU 和 Memory(內存)之間的通信橋梁。

它解決的本質問題是:

CPU 訪問數據的速度 vs 內存響應的速度 嚴重不匹配,怎么辦?

為什么需要特別設計“接口”?

我們可以回到最基礎的現實限制:

組件執行速度(Cycle)
CPU幾 GHz(1 納秒級)
Memory100 納秒甚至更慢

于是你會發現:

? CPU 每執行一條指令,可能得等幾十個時鐘周期才能從內存中拿到數據!

那么問題來了:

怎么讓 CPU 不至于“餓死在等待內存數據”時鐘周期中?

這就是 Memory Interface(內存接口)設計的出發點。

什么是 MIPS?為什么它和內存接口有關?

我們先解釋這個術語:

MIPS(Million Instructions Per Second)中文叫“每秒百萬條指令數”,是衡量 CPU 執行速度的指標。

BUT? 注意:

MIPS 只反映 CPU 的潛力,不考慮它是否在等待內存!

所以現實中你可能看到:

CPU 有 2 GHz、理應執行 2 Billion 條指令/秒,但實際 MIPS 遠低于理論值。

為什么?因為……

🔁 CPU 經常被 慢速 memory interface 拖慢了節奏。

這就說明:

內存接口的效率,直接影響 CPU 的真實性能表現(有效 MIPS)!

內存接口的兩種訪問方式

什么是 AMAT?

AMAT(Average Memory Access Time):平均內存訪問時間,它是衡量 每一次訪問內存時,CPU 平均等待的總時間。由于內存系統通常是多級的(multi-level memory hierarchy,多級內存層次結構),所以我們需要計算一個綜合延遲。?

這兩種公式,其實對應了兩種不同的層級訪問策略(memory access strategy)

串行訪問(Serial Access Model)

在這種模型下:

  • CPU 一級一級地訪問內存層級:先查 L1 Cache → 如果 Miss 再查 L2 → 如果還 Miss 再查主存(Memory)。

  • 每次只訪問一個層次,如果命中了,就不繼續往下找。

  • H1?,H2?:第1、2級緩存的命中率(hit rate)

  • T1?,T2?,T3?:第1、2級緩存和主存的訪問時間(access time)

??

通俗解釋:

就像你要在一個大圖書館找一本書:

  • 你先去最近的書架(L1)找;

  • 找不到再去二樓(L2);

  • 如果還找不到,才去圖書館最深處(Memory)。

每次你只動一步,只有沒找到才走下一步。

并行訪問(Parallel Access Model)

在這個模型下:

  • 所有層級同時開始訪問(look-through),但只有命中最低層才使用它的數據。

  • 每次你 miss 上一層,就會把前面“浪費掉的等待時間”也算上。

注意這里每層訪問時間是累加的,因為所有層是并發啟動的,miss 時你還得等前面那幾層“白白等的時間”。?

?

通俗解釋:

你像是在同時發送3個郵件請求給不同的圖書管理員:

  • 如果第一個管理員(L1)找到了,他最快回你;

  • 如果他沒找到,而第二個找到了,你要等 L1 的時間 + L2 的時間;

  • 如果前兩個都沒找到,那你得等 L1 + L2 + 內存 的時間。

每一層你都等了一遍,結果可能還是沒拿到你要的書。

?

?

串行模型(Serial) 更接近實際硬件層級 Cache 的使用方式(大多數 CPU 是這樣設計的);

并行模型(Parallel) 更適合某些流水線處理場景或預測式 prefetch 架構。

?

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

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

相關文章

Java面試(2025)—— Spring MVC

什么是Spring MVC Spring MVC 是 Spring 框架的一個 基于 Java 的 Web 開發模塊,它實現了 MVC(Model-View-Controller)架構模式,用于構建靈活、松耦合的 Web 應用程序。 它是 Spring 生態的核心組件之一,通過簡化 HTT…

天翼云手機斷開連接2小時關機

2025-04-21 天翼云手機斷開連接2小時自動 天翼云手機 4元1個月 天翼云手機永不關機 天翼云手機不休眠 天翼云手機斷開連接時,界面顯示:離線運行,2小時后自動關機 電腦每小時自動連接一次 手機每小時自動連接一次

Redis——數據結構

目錄 1.動態字符串SDS 1.1SDS底層源碼 1.2 SDS動態擴容 1.3動態字符串SDS優點 2.IntSet 2.1底層結構 2.2有序性 2.3.IntSet結構擴容 2.4總結 3.Dict 3.1底層結構 3.2.Dict擴容 3.3Dict收縮 3.4.Dict的rehash 1.分配空間 2. 設置 rehashidx 3. 漸進式 rehash…

C++ GPU并行計算開發實戰:利用CUDA/OpenCL加速粒子系統與流體模擬

🧑 博主簡介:CSDN博客專家、CSDN平臺優質創作者,高級開發工程師,數學專業,10年以上C/C, C#, Java等多種編程語言開發經驗,擁有高級工程師證書;擅長C/C、C#等開發語言,熟悉Java常用開…

LeetCode算法題(Go語言實現)_54

題目 給你兩個正整數數組 spells 和 potions ,長度分別為 n 和 m ,其中 spells[i] 表示第 i 個咒語的能量強度,potions[j] 表示第 j 瓶藥水的能量強度。 同時給你一個整數 success 。一個咒語和藥水的能量強度 相乘 如果 大于等于 success &a…

內網穿透快解析免費開放硬件集成SDK

一、行業問題 隨著物聯網技術的發展,符合用戶需求的智能硬件設備被廣泛的應用到各個領域,而智能設備的遠程運維管理也是企業用戶遇到的問題 二、快解析內網穿透解決方案 快解析是一款內網穿透產品,可以實現內網資源在外網訪問,…

Python+Word實現周報自動化的完整流程

一、技術方案概述 自動化報表解決方案基于以下技術組件: Python 作為核心編程語言python-docx 庫用于處理 Word 文檔pandas 庫用于數據處理和分析matplotlib 或 plotly 庫用于數據可視化Word 模版作為報表的基礎格式 這種方案的優勢在于:保留了 Word 文…

elastic/go-elasticsearch與olivere/elastic

在 Go 語言中,與 Elasticsearch 交互的客戶端庫有多種選擇,其中 github.com/elastic/go-elasticsearch/v8 和 github.com/olivere/elastic/v7 是兩個常用的庫。這兩個庫的功能和用途有一些差異,以下是它們的詳細對比: 1. github.c…

deepseek + kimi制作PPT

目錄 一、kimi簡介二、deepseek生成內容三、生成PPT四、編輯PPT 一、kimi簡介 kimi是一款只能ppt生成器,擅長將文本內容生成PPT。 在這里,??DeepSeek 負責內容生成與邏輯梳理??,??Kimi 優化表達與提供設計建議??。 二、deepseek生…

【八大排序】冒泡、直接選擇、直接插入、希爾、堆、歸并、快速、計數排序

目錄 一、排序的介紹二、排序算法的實現2.1 直接插入排序2.2 希爾排序2.3 直接選擇排序2.4 堆排序2.5 冒泡排序2.6 快速排序2.7 歸并排序2.8 比較排序算法的性能展示2.9 計數排序 個人主頁<— 數據結構專欄<— 一、排序的介紹 我們的生活中有很多排序&#xff0c;比如像…

linux 查詢目錄文件大小

? 在 Linux 系統中&#xff0c;準確地掌握目錄和文件的大小對于磁盤空間管理至關重要。?本文將詳細介紹如何使用 du&#xff08;disk usage&#xff09;命令逐層查看目錄和文件的大小&#xff0c;并結合 sort 命令對結果進行排序&#xff0c;以便有效地識別和管理占用…

如何簡單幾步使用 FFmpeg 將任何音頻轉為 MP3?

在多媒體處理領域&#xff0c;FFmpeg 以其強大的功能和靈活性而聞名。無論是視頻編輯、音頻轉換還是流媒體處理&#xff0c;它都是專業人士和技術愛好者的首選工具之一。在這篇文章中簡鹿辦公將重點介紹如何使用 FFmpeg 進行音頻格式轉換&#xff0c;提供一些常用的轉換方式&am…

通信信號分類識別

通信信號分類識別 AlexNet網絡識別InceptionV3、ResNet-18、ResNet-50網絡識別 采用短時傅里葉變換將一維信號轉換為二維信號&#xff0c;然后采用經典神經網絡進行識別 支持識別BASK,BFSK,BPSK,QPSK,8PSK,QAM和MSK。 AlexNet網絡識別 在這里插入圖片描述 InceptionV3、Re…

TPshop項目-服務器環境部署(部署環境/服務,檢查部署環境/服務,上傳TPshop項目到服務器,配置文件的更改,安裝TPshop)

目錄 部署環境/服務&#xff0c;檢查部署環境/服務 檢查部署環境/服務 上傳TPshop項目到服務器&#xff0c;配置文件的更改&#xff0c;安裝TPshop 部署環境/服務&#xff0c;檢查部署環境/服務 一般部署環境&#xff0c;會根據開發寫的部署文檔來一步一步的部署環境。 部署…

C++入門基礎:命名空間,缺省參數,函數重載,輸入輸出

命名空間&#xff1a; C語言是基于C語言的&#xff0c;融入了面向對象編程思想&#xff0c;有了很多有用的庫&#xff0c;所以接下來我們將學習C如何優化C語言的不足的。 在C/C語言實踐中&#xff0c;在全局作用域中變量&#xff0c;函數&#xff0c;類會有很多&#xff0c;這…

緩存 --- Redis基本數據類型

緩存 --- Redis基本數據類型 Redis Intro5種基礎數據類型 Redis Intro Redis&#xff08;Remote Dictionary Server&#xff09;是一款開源的高性能鍵值存儲系統&#xff0c;常用于緩存、消息中間件和實時數據處理場景。以下是其核心特點、數據類型及典型使用場景&#xff1a; …

Redis命令——list

列表類型是用來存儲多個有序的字符串&#xff0c;列表中的每個字符串稱為元素&#xff08;element&#xff09;&#xff0c;?個列表最多可以存儲個元素 在 Redis 中&#xff0c;可以對列表兩端插入&#xff08;push&#xff09;和彈出&#xff08;pop&#xff09;&#xff0c;…

Android Jetpack Compose 狀態管理解析:remember vs mutableStateOf,有啥不一樣?為啥要一起用?

&#x1f331;《Jetpack Compose 狀態管理解析&#xff1a;remember vs mutableStateOf&#xff0c;有啥不一樣&#xff1f;為啥要一起用&#xff1f;》 在 Jetpack Compose 的世界里&#xff0c;UI 是響應式的。這意味著當狀態發生變化時&#xff0c;UI 會自動重組&#xff0…

使用 PCL 和 Qt 實現點云可視化與交互

下面我將介紹如何結合點云庫(PCL)和Qt框架(特別是QML)來實現點云的可視化與交互功能&#xff0c;包括高亮選擇等效果。 1. 基本架構設計 首先需要建立一個結合PCL和Qt的基本架構&#xff1a; // PCLQtViewer.h #pragma once#include <QObject> #include <pcl/point…

mybatis plus打印sql日志到指定目錄

1、mybatis plus打印sql日志 參考文檔&#xff1a;mybatis plus打印sql日志_mybatisplus日志打印-CSDN博客 2、修改 修改InfoLevelLogger Override public void debug(String s) {// 修改這里logger.info(s);log.debug(s); } 增加&#xff1a;log.debug(s); 修改logback.x…