当前位置: 首页 > news >正文

计算机组成与体系结构:内存接口(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.xdnf.cn/news/67015.html

相关文章:

  • 工具:下载vscode .vsix扩展文件及安装的方法
  • 可穿戴设备待机功耗需降至μA级但需保持实时响应(2万字长文深度解析)
  • 小天互连与DeepSeek构建企业智能化新生态
  • iframe下系统访问跨域问题解决办法
  • VTK知识学习(53)- 交互与Widget(四)
  • Unity3D ILRuntime与Scripting Backend整合指南
  • 剪映学习02
  • Kotlin协程学习笔记
  • OpenCV---图像预处理(四)
  • HCIE Datacom备考技巧
  • typedef MVS_API CLISTDEF0IDX(ViewScore, IIndex) ViewScoreArr;
  • 《解锁增强型上下文学习,打造你的专属智能助手》
  • 每天学一个 Linux 命令(29):tail
  • gnome中删除application中失效的图标
  • 齐次坐标系下的变换矩阵
  • 【图论 DFS BFS】P10725 [GESP202406 八级] 最远点对|普及+
  • LangChain实现PDF中图表文本多模态数据向量化及RAG应用实战指南
  • LeetCode算法题(Go语言实现)_54
  • ubuntu--汉字、中文输入
  • iso文件在麒麟V10系统上安装达梦数据库
  • 基础服务系列-Jupyter Notebook 支持JavaScript
  • 【技术派后端篇】基于 Redis 实现网站 PV/UV 数据统计
  • 前端笔记-Vue3(上)
  • Spark-SQL 四(实验)
  • 显卡及相关大模型部署需求概述
  • 靠华为脱胎换骨,但赛力斯仍需要Plan B
  • 【Linux网络编程十】网络原理之IP协议【网络层】
  • 悬空引用和之道、之禅-《分析模式》漫谈57
  • SystemWeaver详解:从入门到精通的深度实战指南
  • css3新特性第五章(web字体)