计算机组成原理——第三章存储器(主存储器与CPU连接、提高访存速度)

存储容量的扩展(若存储芯片连在一起组成足够容量的存储器)
位扩展:指增加存储字长
一片数据线作为高4位、另一片线作为低4位
地址线、CS、WE都分别连在一起


字扩展:指增加存储器字的数量
将A10用作片选信号,通过片选进行选择


字位扩展

存储器与CPU连接
存储芯片与CPU芯片相连时,注意片与片之间地址线、数据线和控制线的连接
地址线连接
CPU地址线数比存储芯片地址线数多
CPU地址线的低位与存储芯片的地址线相连,CPU地址线高位用于存储扩充或其他用途(片选信号等)

数据线连接
CPU数据线数与存储芯片的数据线数也不一定相等,必须对存储芯片扩位,使其数据线数与CPU数据线数相等

读写命令线连接
CPU读写命令线一般可直接与存储芯片读写控制端相连(高电平为读,低电平为写)有些CPU读写线是分开的
CPU读命令线与存储芯片允许读控制端相连
CPU写命令线与存储芯片允许写控制端相连

片选线连接
片选线连接是CPU与存储芯片正确工作的关键
片选有效信号与CPU的访存控制信号MREQ(低电平有效)有关
片选有效信号还和地址有关,因为CPU的地址线往往多于存储芯片的地址线,那些未与存储芯片连上的高位地址必须和访存控制信号共同产生存储芯片的片选信号

合理选择存储芯片
合理选择存储芯片主要指存储芯片类型和数量选择
通常选用ROM存放系统程序、标准子程序和各类常数等

提高访存速度措施
除了寻找高速元件和采用层次结构外,调整主存的结构也可以提高访存速度
1.单体多字系统
由于程序和数据在存储体内是连续存放的,因此CPU访存取出的信息也是连续的
单体字结构的存储器
按地址在一个存取周期内可读出4*W位的指令或数据,使主存带宽提高
前提:指令和数据在主存内必须连续存放,一旦遇到转移指令,或者操作数不能连续存放,这种方法效果不明显

2.多体并行系统
采用多体模块组成存储器。每个模块有相同容量和存取速度,各模块有独立的组件,他们能并行工作也能交叉工作
高位交叉编址:高位地址表示体号,低位地址为体内地址
程序按体内地址顺序存放,按这种编制方式,只要合理调动,使不同的请求源同时访问不同的体,便可实现并行工作

低位交叉编制:低地址表示体号,高位地址为体内地址 又称模M编制(M等于模块数)
一般模块数M取2的方幂    有的为减少存储器冲突,采用质数个模块

多体模块结构的存储器采用交叉编址后,可以在不改变每个模块存取周期的前提下,提高存储器带宽
CPU交叉访问4个存储体的时间关系,负脉冲为启动每个体的工作信号
虽然对每个体而言,存取周期没有缩短,但由于CPU交叉访问各体,最终在一个存取周期内,存储器实际上向CPU提供了4个存储字

模块数为n,存取周期为T,总线传输周期为t
对于低位交叉存储器所需总时间Tz
Tz=T+(n-1)t


对于高位交叉编制
Tz=nT

多模块存储器不仅要与CPU交换信息,还要与辅存、I/O设备,I/O处理机交换信息
存储器控制部件(存控):决定与哪个部件交换信息
存控由排队器、控制线路、节拍发生器及标记触发器组成
排队器
由于访存的请求源很多,并且访问是随机的。为了防止请求源同时占有同一存储体或其他错误产生,有它来确定请求源的优先级
存控标记触发器Cm
它来接受排队器的输出信号,一旦响应某请求源的请求,Cm被置1,启动节拍发生器工作
节拍发生器
产生固定节拍,与机器主脉冲同步,使控制线路按一定时序发出信号
控制线路
它将排队器给出信号与节拍发生器提供的节拍信号配合,向存储器各部件发出各种控制信号

### 提高访存速度的措施方法 为了优化内存访问速度提高访存效率,可以从多个层面采取技术手段。以下是几种常见的优化方式及其原理: #### 1. **硬件预取技术** 硬件预取是一种重要的优化手段,用于预测程序未来可能需要的据,并将其提前加载到高速缓存中[^1]。这种方法能够有效减少因等待主存响应而导致的延迟问题。通过分析不同应用场景下的据访问模式,设计适合的预取策略(如基于流的行为或历史记录),可以进一步降低缓存未命中率。 #### 2. **据局部性优化** 利用时间空间局部性的特点来改进据布局访问顺序是另一种高效的方法[^2]。 - 对于时间局部性,可以通过重复使用已加载至缓存中的据,避免频繁重新读取主存的内容。 - 而对于空间局部性,则应确保连续操作集中在同一片区域内的地址范围,这样有助于充分利用缓存行特性,减少不必要的跨页请求。 #### 3. **GPU 高带宽内存 (HBM) 访问优化** 针对 GPU 中 HBM 性能瓶颈的问题,可通过调整据分布形式以及规划合理的 I/O 流程加以缓解[^3]。具体做法包括但不限于压缩冗余字段、合并零散的小型事务包成较大批次提交处理等方式,在不牺牲太多灵活性的前提下最大限度发挥现有架构潜力。 #### 4. **单体多字系统的特殊考量** 尽管单体多字体系结构具备一定优势,但也存在一些固有缺陷需要注意规避[^4]: - 当仅需更新单一单元格值而不影响其余部分时,传统实现可能会带来额外开销甚至破坏原有状态;对此可引入掩码机制标记哪些位允许修改从而精确控制目标位置; - 此外还需解决非线性路径下分支判断带来的不确定性干扰——即当遇到条件转移语句后剩余待执行项变得无意义时及时中断后续无关运算环节以免浪费资源。 综上所述,结合实际需求灵活运用以上各类方案往往可以获得较为理想的成效表现。 ```python # 示例代码展示如何通过循环展开改善空间局部性 def optimized_matrix_multiplication(A, B): C = [[0]*len(B[0]) for _ in range(len(A))] # 循环展开以增强据重用程度 for i in range(0, len(A), 2): # 外层按两倍步长迭代 for j in range(0, len(B[0]), 2):# 内层同样采用双跨度前进 temp_sum_1 = A[i][k]*B[k][j]+A[i][k+1]*B[k+1][j] temp_sum_2 = A[i][k]*(B[k][j+1])+A[i][k+1]*(B[k+1][j+1]) C[i][j]+=temp_sum_1;C[i][j+1]+=temp_sum_2; k += stride # 增加跳跃距离加快收敛过程 return C ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值