分享免费的编程资源和教程

网站首页 > 技术教程 正文

计算机组成原理(16):存储技术之一——内存瓶颈

goqiw 2025-03-14 16:53:19 技术教程 4 ℃ 0 评论

截止到上一篇,已经实现了我(PN结)到基本CPU的华丽转身。然而这距离实用的CPU还远远不够,各位看官随我一起继续CPU的完善之旅。首先,来看看计算机系统中所用到的存储技术。

满足精简指令集架构Beta ISA要求的计算机有很多共同点,在执行执行指令的电路中,最终设计有几个重要的组成部分:

  • 多路选择器MUX:使用MUX转向逻辑进行选择,输入适当的值可以让正确的信号通过MUX
  • 控制逻辑(Control Logic):使用ROM加上简单逻辑器件,形成各类指令的数据路径所需要的控制信号
  • 算数逻辑运算单元ALU:使用ALU进行算术和逻辑计算。
  • 寄存器文件(Register File):存储各种计算机状态(在Beta ISA中,R31在硬件上被设置为0,R30是异常处理的专用寄存器【其5位地址由异常指针XP指定】,程序计数器PC记录当前指令在主内存中的地址)
  • 主内存(Main MemOry):存储指令和数据
  • 各个部分端口之间的连接线

如果CPU使用MOSFET器件并考虑延迟,我们将很快确定在计算机中的主内存(逻辑图中的指令内存和数据内存)在存储空间和耗时的占比方面是代价最大的部分。原因如下:

  • 每条指令的执行过程是:首先从主内存中获取指令,其次是从指令中或主内存中获取操作数,再次是进行各类运算,最后是将计算结果存储到主内存
  • 从每条指令的执行过程可以看出,CPU的大多数指令都要访问主内存(CPU只保留少量的变量在寄存器文件中的寄存器中)。
  • 并且大多数的程序需要通过作为数据路径一部分的主内存处理超过主内存容量大小的数据。
  • 因此在很多方面,我们的计算机(Computing Machine)实际上就是存储机(Memory Machine)。

CPU和主内存之间的连线的带宽(bytes/second)是有限的,只是因为受连线的长短、线间的电容效应和主内存的访问延迟的影响,于是就有了所谓的内存瓶颈(memory bottleneck)。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表