基于单体多字与多体并行系统优化主存结构研究

2022-07-14 09:46陈益
企业科技与发展 2022年4期
关键词:存储芯片

陈益

【摘 要】主存和CPU之间的速度差距导致了CPU执行效率的降低。对主存进行结构优化、采用高效性能存储芯片、增加存储器带宽及构建多层次存储结构在改善二者速度差距上都有积极的作用。相比而言,以单体多字和多体并行的方法对主存结构进行优化,能用更小的成本获得更理想的效果,尤其是多体并行系统的低位交叉方式,对缩小主存和CPU之间速度差距有积极作用。对比得知,从结构上对主存进行调整,可以在一定程度上缩小主存与CPU之间的速度差距。

【关键词】存储芯片;带宽;主存结构优化;单体多字;多体并行

【中图分类号】G642 【文献标识码】A 【文章编号】1674-0688(2022)04-0035-03

0 引言

随着半导体技术和集成电路技术的发展,精简指令芯片(RISC)技术的应用,主存(或存储器)运行速度和CPU运行速度的差异日趋增大,造成了计算机主机系统的不均衡发展[1]。采用高性能的存储芯片,能让速度更快、带宽更大、访问延迟更小,但对高速器件性能的挖掘存在达到物理极限的问题;主存-Cache结构,在主存和CPU之间放一个小容量的Cache,将CPU常用的信息放在Cache中,整机的速度能得到很大的提高,但Cache的集成度低、功耗大、价格高、容量小,增加了Cache的容量,这必然增大了硬件成本开销[2]。这些方法对提高访存速度有一定的作用,但都有各自的局限[3]。本文以调整主存自身结构为研究对象,通过对主存结构优化,提高访存速度。

1 单体多字系统

现代计算机结构中,最影响机器效率和速度的就是主存。CPU执行程序时所需的指令、数据均来自主存,运行的结果保存到主存,如主存运行速度很慢,CPU无论运行速度多快都无法提高整机速度。CPU得不到所需要的指令和数据,只能空等,这种现象在计算机系统结构中称为“主存墙”,主存墙是影响计算机系统性能的主要因素之一。通过对主存的结构进行优化可在一定程度上缓解主存墙现象。

CPU执行一条指令,至少要完成取指令和执行指令两个步骤。假设主机的存储字长、机器字长、指令字长3者相等,取指令时在存储器中只能取出一条指令;执行指令时在存储器中取数据,一次也只能取出和机器字长等长的数据。此时,存储器和CPU速度存在的差异,可以通过单体多字系统调整主存结构的方式得以调整。

单体多字的核心是在单个存储体中增加存储器的存储字长。假如CPU的机器字长是16位,存储器的存储字长设成64位,CPU每次访问存储器,可以访问4个机器字,每个机器字都是一条机器指令或长度为16位的数据,CPU一次性把4个值从主存中取出放在数据寄存器(MDR)中,下一次直接从MDR中把需要的指令或数据取走,这个方法可以增加存储器的带宽[4]。

单体多字方式每一个存储单元包括4个机器字,但是4个机器字存取时是以整体的方式进行的,因此存在一些问题:其一,CPU向存储器的某存储单元写长度为16位的字,它先将字写入单字长寄存器中,再写入4个字长的MDR中,最后写入存储器中。对16位数据写入的操作,会导致其他48位也被写入给定的存储单元中,并且这48位被修改的还可能是错误的信息。如果要让这样的存储器完成16位单字长的写入,需要在存储器的内部增加专门的硬件,使存储器结构更加复杂。其二,如果要取的指令或数据不是连续存放在相邻的地址中,或不是连续存放在一个存储字中,用户一次性取出了4条指令,执行完第1条指令后,由(PC)+1的下一条指令,即第2条指令若是跳转指令且跳转的范围大大超出了4个储存字,那么所取的4条指令仅第1条有用,其他3條均无用,浪费了资源。基于以上分析,需要对单体多字方式做相应的改进。

2 多体并行系统

多体并行的基本思想是在不提高存储器效率、不扩展数据通路位数的前提下,通过对存储芯片的组织布局,提高CPU单位时间内访问的数据量,以此缓解CPU与主存之间的速度差异问题。多体并行是一种采用多体模块组成的存储器系统,分为高位交叉和低位交叉两种方式。以下对两种交叉方式的介绍,均以4个存储体为例,编号从M0~M3。

2.1 高位交叉方式

所谓高位交叉,是指给存储体构成的存储器编址时,从M0存储体开始,依次为M0中每个存储单元编址,直到最后一个存储单元为止,然后以同样的方式为存储体M1、M2、M3编址,直到为存储体M3的最后一个存储单元编址完为止(也称为“顺序交叉”)。

2.1.1 高位交叉执行过程

分析4个存储体的执行过程,假定M0~M3的每个存储体包括16个存储单元,地址分配空间为00 0000-11 1111,前面的两位00-11,这是存储体的编号,选中M0~M3中的任意一个存储体,后面的4位0000-1111是体内地址,经地址译码后选中0~15号的任意一个存储单元。CPU给出一个地址,地址的前两位作为存储体的体号,完成对存储体的寻址,选中M0~M3的任意一个存储体;后4位是体内地址,经地址译码后选定体内的某一个存储单元。如果CPU给出的6位地址中前2位是00,即选中存储体M0,对后4位译码得到存储体M0内部的一个具体存储单元。假如每一个存储体都有自己的控制电路(MAR、MDR、地址译码器等),能够对读写信号进行锁存,4个存储体就可以并行工作。

此方法将多个存储体进行了独立,并且每个存储体都有自己独立的控制电路用于完成各种操作,4个存储体有并行工作的基础。执行过程如图1所示[5]。

2.1.2 高位交叉应用分析

在4个存储体的高位交叉方式中,高2位选中存储体,低4位作为体内地址寻找指定存储单元的过程,其实质是对存储器容量进行扩展,尤其是对地址范围(字)的扩展。高位交叉的方式虽然具备了并行工作的基础,但是对程序或数据存取的特征分析不难发现,存在各个存储体工作强度不一致的状况。程序在计算机中是按顺序存储的,用户使用一个程序,如果第1条指令存放在M0的第0号存储单元,下一条指令存在第1号存储单元……第16条指令存在第15号存储单元,指令按序执行,执行程序的过程中,M0这个存储体不停地被CPU访问,工作繁忙,其他的3个存储体是空闲的。

高位交叉执行过程出现了并行的雏形,但以程序或数据组织的特征进行分析,相邻地址的数据处于同一存储体、一个地址寄存器,多模块串行(局部性原理)性能无提升,但为扩充容量提供了方便。此方式容易造成某个存储体频繁地被CPU访问,其他的存储体却是空闲的,因此必须想办法解决高位交叉中存在的问题。

2.2 低位交叉方式

高位交叉方式是对一个存储体进行编址完后,再对另一个存储体进行编址,属于纵向编址方式,存在的问题是每个存储体的工作不均等。现在改变编码方式,进行横向编址。

2.2.1 低位交叉地址编址

以存储体M0~M3为例,M0的首址是0000 00,M1的首址是0000 01,M2的首址是0000 10,M3的首址是0000 11,按照这种顺序给每个存储体的每个存储单元进行编址。地址特征后2位对M0来说是00,M1是01,M2是10,M3是11,用来选中某个存储体,前4位是存储体的体内地址,经译码后选择具体的存储单元。CPU任意给出一个地址,分为低2位的体号地址和高4位的体内地址2个部分。低位地址译码后选定存储体,高位地址译码后选定存储体内的某个存储单元。如果4个存储体完全独立,独立地读写控制电路,能进行地址、数据、控制信号的锁存,能并行工作,采用轮流的方式对每个存储体编址。这便是低位交叉方式的编址全过程[6]。

2.2.2 低位交叉执行过程

低位交叉执行一个程序的过程为代码在存储体中按照地址进行顺序存储,第1条指令存放在M0的第一个存储单元,第2条存放在M1的第一个存储单元,第3条存放在M2的第一个存储单元,第4条存放在M3的第一个存储单元,第5条存放在M0的第二个存储单元,以此类推直到最后一条存放在M3的最后一个存储单元为止。CPU在取指令时,在一个访存周期的开始给出访问的地址,包括体号和体内地址,这个信号假如访问的是M0,它将内部地址和读写命令进行锁存,然后完成读操作,之后CPU在同一个主存周期中再次传输地址、控制命令给M1,轮流对M0~M3进行访问,如果M0准备好数据,在一个存取周期要结束的时候向CPU进行数据传送。低位交叉方式从总线通信控制角度看,属于分离式方式,提高了主存的带宽。低位交叉编址的多体存储器如图2所示。

低位交叉方式数据组织特点:相邻地址处于不同存储体中,每个存储体均需地址寄存器多模块并行(局部性原理),性能得以提升,也能方便地扩充容量。

2.2.3 低位交叉特点及应用

低位交叉方式的优点是可以在不改变存取周期的前提下,增加存储器的带宽。在单体访问周期中,将一个访问周期分为4段,第1段启动M0,对M0读写操作,之后在第2个时间启动M1,对M1存取操作,在第3个时间启动M2,在第4个时间启动M3,相当于用流水的方式访问不同的存储体,在一个存取周期内访问了4个存储字(如图3所示)。

假设四体低位交叉的存储器存取周期为T,地址、数据、控制信号在总线上进行传输,总线的传输周期为τ,为实现流水方式的存取,应满足T=4。实际上是把一个完整的访问时间分成4段,每一段的长度正好是总线的传输周期(如图4所示)。

在T时间启动对M0的存取操作,经过一段时间后(1/4T),启动对M1的存取操作,再经过后启动对M2的存取操作。一个存取周期结束,M0会给出存或取的一个结果完成存取操作,再经过一段时间后,M1也会完成存取操作,直到M3为止。如果用户需要连续读取4个存储字需要的时间计算过程为第1个字需要T时间,第1个字结束后,每经过一个总线传输周期会完成一个访问(读取)操作[7]。

以上为单体多字、多体并行方式提高存储器速度的处理过程。多体并行中的高位交叉更像是对存储器容量进行扩展,低位交叉是真正实现了存储器带宽或访问速度的提高。

3 高性能存储芯片

为进一步提高主存的性能,增强主存结构功能,可以采用高性能的存储芯片。同步动态随机存取内存(Synchro-

nous Dynamic Random-access Memory,SDRAM)就是一种高性能的存储芯片,SDRAM采用同步DRAM方式通信,要求存储器和CPU之间在给定的时间点必须开始或完成给定的操作,存储器的速度可以和CPU的速度保持一致,CPU不需要等待,SDRAM要求存储器的速度非常快[8]。SDRAM在计算机中被广泛使用,从起初的SDRAM到后来的DDR1,接着DDR2和DDR3进入市场,2015年DDR4开始进入市场。

CDRAM是带Cache的DRAM。工作过程为CPU给出要访问存储器的地址,存储器先把地址和上一次访问的行地址进行比较,若相等,说明这行已经被写入Cache中,用列选信号直接输入Cache里面选中指定的存储单元。若不相等,将这行写入Cache中,以备下一次使用。CDRAM中的第一个数据是从主存开始的,速度较慢,在从主存中读取第一个数据时,根据程序访问的局部性原理,会将第一个数据连同它所在的数据块一起送入缓冲存储器Cache中,方便CPU下次直接从Cache读取想要的数据,后续数据的读取速度非常快。

RDRAM主要解决存储器带宽问题。RDRAM的数据存储是16位,远低于DDR和SDRAM的64位,但在频率方面远远高于二者,可以达到400 MHz或更高。RDRAM在一个时钟周期内传输两次数据,能够在时钟的上升期和下降期各传输一次数据,主存带宽能达到1.6 GBps。

4 结束语

本文以寻找缩小主存和CPU速度差距的方法为讫点,重点以调整主存结构的方式为依托,对单体多字系统、多体并行系统和高性能存储芯片3种方式进行分析,研究发现,多体并行系统中的低位交叉方式是最能有效缩小存储器和CPU速度差异,提高存储器带宽,使计算机主机系统均衡发展的方法。

参 考 文 献

[1]邱赐云,李礼,张欢,等.大数据时代——从冯·诺依曼到计算存储融合[J].计算机科学,2018(11):71-75.

[2]胡森森,计卫星,王一拙,等.片上多核处理器Cache一致性协议优化研究综述[J].软件学报,2017,28(4):1027-1047.

[3]邵雄凯,叶志伟,欧阳勇,等.基于系统能力培养的计算机组成原理课程教学探讨[J].计算机教育,2018(11):140-144.

[4]唐朔飞.计算机组成原理[M].3版.北京:高等教育出版社,2021:6.

[5]袁春风,张泽生,杨若瑜,等.“计算机组成与系统结构”课程建设思路与教学实践[J].计算机教育,2012(2):62-66.

[6]谭志虎,胡迪青,秦磊華.计算机组成原理课程设计的改革[J].电气电子教学学报,2016(6):110-112.

[7]聂小龙.DDR3 SDRAM控制器与PHY的设计与仿真[D].济南:山东大学,2017.

[8]石晓敬,吕小萍,郭文秀.基于计算思维的计算机网络课程教学改革[J].中华医学图书情报杂志,2017(6):63-66.

猜你喜欢
存储芯片
基于单片机的音乐播放器硬件设计
大数据模式在起重机械行业中的安全管理
中国存储芯片打破韩美日垄断局面迈出坚实一步
“疯狂内存条”背后的隐忧
《华尔街日报》三星成世界第一大芯片制造商
基于单片机的点餐系统硬件设计
握手言合 三星将为新一代Iphone大量供应零部件
握手言合 三星将为新一代Iphone大量供应零部件
电子元器:国家扶持产业链发展
NORFLASH存储芯片测试程序的设计