并行存储器

本文探讨了并行存储器技术,包括双口RAM的双控制器访问机制及高位和低位交叉编址策略。高位交叉用于多CPU并行,低位交叉则在单CPU系统中提高带宽。还介绍了访存冲突和计算存储体位置的方法,以及两种并行方式下的访问时间分析。

随着计算机应用领域的不断扩大,处理的信息量越来越多,并且现代计算机的I/O设备也在不断增加,因此,提高访存的速度已经成为了迫不及待的任务。于是就出现了并行存储器。
在介绍并行存储器之前,先来介绍一个概念:
**存储器的带宽:表示单位时间内存储器存取的信息量,可用字/秒或者位/秒表示。是衡量数据传输率的重要技术指标。**存储器的带宽是决定了以存储器为中心的机器获得信息的速度。可以通过下面的几种方式提高:

  1. 缩短存取周期
  2. 增加存储字长
  3. 增加存储体

双口RAM

为了提高CPU访问存储体的速度,可以采用双端口的存储器,多模块存储器等技术,它们同属于并行技术。前者为空间并行,后者为时间并行。双口RAM的模型图如下:
在这里插入图片描述
该模型允许两个独立的控制器同时异步地访问存储单元。但是这种方式有时也会带来一些读取错误。例如:

  1. 两个端口对同一个地址单元写入
  2. 两个端口对同一地址单元,一个写入,一个读出。

(熟悉操作系统的朋友应该能看出来,这是个读者写者问题的模型),通常的处理方式是设立一个置忙信号Busy,当遇到上述状况的时候,将busy置0.暂时关闭一个端口。
可以看出,这是一个从空间上并行的存储技术。

多模块存储器

我们还可以从时间上并行并行存取。我们知道CUP的速度要比存储器要快,如果我们同时从存储器中取出几条指令,那么我们就可以充分利用CPU资源,提高运行效率。
多体并行存储器,由多体模块构成,每个模块都有相同的容量和存取速度,有独立的读写控制电路,地址寄存器和数据寄存器。
多体并行存储器分为高位交叉编址和低位交叉编址两种。

高位交叉编址

当程序按体内地址顺序存放,即一个体存满之后,再存入下一个体时,这种方式称为顺序存储,高位地址表示题号,低位表示体内地址(注意0 1 2 3…的顺序是从上往下的):
在这里插入图片描述
因此,CPU给出一次存储访问总是对一块连续的存储单元进行的,在多CPU系统中,不同的CPU访问不同的存储块,达到并行工作。
访存轨迹可以用下面的线条表示:
在这里插入图片描述

低位交叉编址

对应于高位交叉编址,低位交叉编址指的是将程序连续存放在相邻体中,又称交叉存储。(注意,0 1 2 3的顺序是从左往右的)
在这里插入图片描述
这种做法可以在不改变存取周期的前提下,提高存储器带宽,因为可以在一个访问周期下,访问多个不同的存储体。适用于单处理器系统
访存轨迹可以用下图表示:
在这里插入图片描述

访存冲突

但是低位交叉存储可能导致访存冲突,当访存地址在相邻的四次访存中,出现在同一存储块内,就会发生访存冲突。
比如,下面有一组将要访问的地址序列(3 9 17 2),采用的是4体低位交叉存储(即4个存储体,从0开始编号)。
我们可以通过计算得知3,9,17,2分别位于存储体3,1,1,2.
由于我们的访存方式是一次性访问多个不同的存储体,比如这个是4体,一次性同时访问4个不同的体,那么就分别是 0,1,2,3,及其对应的其他存储单元。
由于访问的顺序存在体数重合,因此有一次访问是一定失败的,这就是访问冲突。
那么如何算给定访问序列的所在体数呢?
所在体数 = 序列号mod体数,比如3%4 = 3,9%4 = 1

两种并行存储器的访问时间

设存储器的模块数为n,存取周期为T,总线传输周期为i,当采用流水线方式存取的时候,:

  1. 若采用高位交叉编址,那么连续读取n个字节所需的时间t1为: t1 = nT
  2. 若采用低位交叉编址,那么连续读取n个字节所需的时间t2为:t2 = T +(n - 1 )i
  3. 存储器的交叉模块数 m >= T/i
### 多行并行存储器的实现原理 多行并行存储器是一种通过增加带宽和减少访问延迟的技术手段,从而提升整体性能的设计方案。其核心理念在于利用多个独立通道或路径同时访问存储单元中的数据。 #### 1. **多行并行存储器的基本结构** 多行并行存储器通常采用分块的方式将数据分布在多个物理存储体中[^1]。这种分布使得每个存储体可以独立工作,在同一时间周期内完成多次读写操作。具体来说: - 数据被分割成若干部分,并分别存储于不同的存储行中。 - 控制逻辑协调这些存储行之间的同步性和一致性,确保最终的数据输出满足预期需求。 #### 2. **并行处理的优势** 并行处理允许在同一时刻对多个数据片段进行运算或者传输,极大地提高了系统的吞吐量。对于近存计算而言,由于不需要修改存储阵列本身,而是依赖靠近存储位置布置的逻辑单元来加速特定任务,因此非常适合应用于高并发环境下的快速响应场景[^1]。 而在存内计算方面,无论是 IM-P 还是 IM-A 方式都可以进一步优化传统冯·诺依曼架构下存在的瓶颈问题——即频繁地在处理器与外部 DRAM 之间交换大量中间状态信息所带来的额外开销。这种方式不仅减少了能耗还提升了效率[^2]。 #### 3. **存储架构设计考量因素** 当构建一个多行并行存储系统时,有几个重要的考虑要素需要纳入规划之中: - **互连网络拓扑**: 如何有效地连接各个子模块决定了整个体系能否高效运作。常见的选项包括总线型、交叉开关以及环形互联等。 - **错误检测与纠正机制**: 鉴于大规模集成可能导致更高的失效概率, 所以必须具备强大的 ECC (Error Correction Code) 功能或其他形式的安全保障措施. - **资源共享策略**: 如果存在竞争条件,则需制定合理的调度算法以平衡负载并防止死锁现象发生 . 以下是基于 Slurm 调度框架的一个简单示例脚本展示如何管理集群内的资源分配过程 [^3]: ```bash #!/bin/bash #SBATCH --job-name=parallel_job # Job name #SBATCH --output=output_%j.log # Output file (%j expands to jobId) #SBATCH -n 8 # Total number of tasks requested #SBATCH -p compute # Queue/Partition where the job will run srun ./my_parallel_program arg1 arg2 ``` 此脚本定义了一个名为 `parallel_job` 的批处理作业请求八个 CPU 核心运行程序 `./my_parallel_program`, 同时指定了标准输出重定向至文件名包含唯一 JOB ID 的日志记录当中去. ### 结论 综上所述,多行并行存储器通过巧妙运用现代半导体工艺技术和先进的计算机科学理论实现了前所未有的速度突破。随着未来人工智能领域的发展趋势愈发明显,此类创新解决方案必将在更多实际应用场景中发挥重要作用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值