版权归原作者所有,如有侵权,请联系我们

[科普中国]-多级存储体系

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

多级存储体系是指将多级存储器结合起来的一种方式。在一个计算机系统中,对存储器的容量、速度和价格这三个基本性能指标都有一定的要求。存储容量应确保各种应用的需要;存储器速度应尽量与CPU的速度相匹配并支持I/O操作;存储器的价格应比较合理。然而,这三者经常是互相矛盾的。例如存储器的速度越快,则每位的价格就越高;存储器的容量越大,则存储器的速度就越慢。按照现有的技术水平,仅仅采用一种技术组成单一的存储器是不可能同时满足这些要求的。只有采用由多级存储器组成的存储体系,把几种存储技术结合起来,才能较好地解决存储器大容量、高速度和低成本这三者之间的矛盾。

概念简介存储器的多级结构如概述图所示。图中最内层是CPU中的通用寄存器,很多运算可直接在CPU的通用寄存器中进行,减少了CPU与主存的数据交换,很好地解决了速度匹配的问题,但通用寄存器的数量是有限的一般在几个到几百个之间,如Pentium CPU中有8个32位的通用寄存器。

高速缓冲存储器(Cache)设置在CPU和主存之间,可以放在CPU 内部或外部。其作用也是解决主存与CPU的速度匹配问题。Cache一般是由高速SRAM组成,其速度要比主存高1到2个数量级。由主存与Cache构成的“主存-Cache存储层次,从CPU来看,有接近于Cache的速度与主存的容量,并有接近于主存的每位价格。通常,Cache还分为一级Cache和二级Cache。

但是,以上两层仅解决了速度匹配问题,存储器的容量仍受到内存容量的制约。因此,在多级存在储结构中又增设了辅助存储器(由磁盘构成)和大容量存储器(由磁带构成)。随着操作系统和硬件技术的完善,主存之间的信息传送均可由操作系统中的存储管理部件和相应的硬件自动完成,从而构成了主存一辅存的价格,从而弥补了主存容量不足的问题。

结构多级存储结构构成的存储体系是一个整体。从CPU看来,这个整体的速度接近于Cache和寄存器的操作速度、容量是辅存的容量,每位价格接近于辅存的位价格。从而较好地解决了存储器中速度、容量、价格三者之间的矛盾,满足了计算机系统的应用需要。

随着半导体工艺水平的发展和计算机技术的进步,存储器多级结构的构成可能会有所调整,但由多级半导体存储器芯片集成度的提高,主存容量可能会达到几百兆字节或更高,但由于系统软件和应用软件的发展,主存的容量总是满足不了应用的需求,只要这一现状仍然存在,由主存――辅存为主体的多级存储体系也就会长期存在下去。

iSCSI多级存储系统中的高可用性研究与实现iSCSI协议是网络存储领域最活跃的研究方向之一,它建立在存储领域和网络领域应用最广泛的两个协议,(SCSI TCP/IP)SCSI 基础之上。它不仅解决了原有的总线长度有限,存储设备扩展能力不足的问题,还可以利用现有的以太网络实现基于协议的存储网络,大大减少了企业在TCP/IP存储方面的开支。

高可用系统理论分析各种电子系统复杂度越来越高,对系统的可用性(availability)的要求也越来越高。从概率学的角度来说,系统的可用性是一个时间函数,定义为:系统正常工作并A(t)在时刻能执行它的功能的概率。其实,简单来说,一个高t可用性系统,就是一个用户能(High Availability System HA)随时使用的系统,系统中断服务的时间被期望为无穷小,使系统能一天24小时、一年365天不间断地工作。

(1)二元元件模型以及可用性指标

要达到高可用性的目标,首先必须分析哪些指标影响了系统的可用性。为此建立一个简单的系统元件统计模型,元件具有二元属性:元件处于工作状态或处于非工作状态。根据这个模型,定义两个可用性参数:平均无故障工作时间(MTBF)(MTTR)和平均故障修复时间。对于系统中一个足以影响系统正常运行的元件来说,如果它发生故障,则引起整个系统的失效。所以,在系统的一个服务维护周期内,整个系统有这样的表现,如图1所示。

(2)建立马尔可夫过程模型

从简单的元件模型分析得到了提高系统可用性的关键指标,要进行量化的最适用方案研究就必须要借助随机过程理论来进行数学分析了。为了建立更加成熟的模型,采用时域连续的马尔可夫链作为工具,其状态根据概率因素(Markov)而变化。对于存储系统的主要部件而言,其正常工作时间和故障后的修理时间的分布均为指数分布,据此定义系统的状态,并用马尔可夫链来描述系统。

系统的状态定义如下:系统初始状态为0。一个节点出现故障,则状态数加1;而一个故障节点恢复正常,则状态数减1。也就是说,某时刻系统的状态为n,则表示该时刻系统有n个节点处于故障状态。

多级协同存储系统中的高可用方案及测试(1)多级协同存储系统结构分析

iSCSI多级协同存储系统重新整合了现有的各类存储设备,形成统一的存储池,实现存储数据共享,并对外提供标准接口,接口标准符合的协议。在实现单级存储IETF iSCSI虚拟化技术的基础上,利用多台虚拟存储控制单元级联,通过递阶控制手段,构建大系统环境下的存储池。多级 iSCSI协同存储系统结构示意图如图2所示。

其中的关键部件是虚拟存储控制单元,它是界于各类应用服务和存储资源之间的软硬件结合体,VSCU一方面为各种应用提供统一的连接和通信手段,另一方面,还提供存储池管理功能。VSCU包含iSCSI Target模块、 iSCSI Initiator模块、虚拟逻辑单元管理、虚拟逻辑卷管理模块、Web管理模块等子模块,并且连接客户端、Web管理客户端、SCSI设备端,几乎包含了多级协同存储系统中最重要的模块和提供了几乎全部的功能,其重要性毋庸置疑。在考虑本系统的高可用性时,把它看作系统中最重要的单点失效点。

(2)高可用性方案

根据以上的理论建模分析,针对多级协同存储系统结构的分析结论,我们提出以下方案:

1) 要提高整个系统的高可用性,最重要的是提高VSCU的可用性。至于其他元件,例如SCSI设备的可用性可以通过RAID等技术解决,不在本课题考虑范围内。

2)本课题的主要问题是解决本地子系统的高可用性,针对带内(也就是本地局域网内)的VSCU构建HA子系统,远程的VSCU之间的备份与恢复属于容灾课题。

3)根据数学分析,选用双机高可用方案已经足以满足需要。为了提高整个系统的高效率,高可用系统结构选用“集中式”结构,即任意时间只有一个结点作为主服务器提供服务。一旦主服务器出现故障,备份服务器就接替其工作。1

多级存储系统中跨边界访问实现策略研究研究背景跨边界访问问题是现代处理器必须解决的一个问题。较早的计算机利用编译技术避免了跨边界的访问,但是随着多媒体技术的不断发展,越来越多的处理器需要提供跨边界访问服务。跨边界访问具有一定的复杂性,如图3所示的两个连续的双字A和B之间将会出现表1所示的7种跨双字边界的读双字操作。

在多级存储系统中,A、B这两个双字还有可能会出现不同的Cache行,还可能处在不同的存储层次中(如A在一级Cache,B在外存等),这些复杂性加剧了跨边界访问问题的解决难度,因此必须采用高效合理的办法加以解决。2

跨边界访问问题出现的背景由于存储器实现技术的原因,程序员所看到的存储空间和处理器所看到的存储空间是不同的。在程序员眼中,存储器空间就是一组简单的连续字节的组合,如在C语言中,char*即是代表着一块字节区,类似的如Java中的 byte类型,如图4所示。程序员能够访问以任意地址开始的字、双字或四字。但是实际处理器往往并不支持以任意地址开始的访问字、双字、四字的要求。其访问字要求起始地址的末两位为0,访问双字要求起始地址的末3位为0,因为在处理器眼中,存储器空间实际上是按组存放的和不连续的,如图5所示。

造成这种现象的根本原因是现代计算机为了提高存储频宽,往往采用多体并行和单体多字技术相结合的并行存储系统来构成存储体(包括各级Cache和片外存储器)。这种存储结构虽然能够提高主存系统的最大频宽,但是对跨边界访问的支持却比较差。因此,早期的一些计算机,就不支持跨边界访问,如moto68000系列,遇到一个跨边界访问的操作,处理器会产生一个异常,操作系统对这样的异常也不友好,通常需要用户重新启动计算机。

但是随着计算机应用需求的发展,越来越多的多媒体算法(如MPEG2/MPEG4/H.264等)需要进行跨边界操作。在接下来的章节中,我们主要介绍3类解决跨边界访问的存储系统,第1类是早期的通用处理器利用编译技术避免跨边界访问和逐步提供低效的跨边界访问操作;第2类是TIGERSHARK DSP利用跨边界访问的数据相关性和一个称之为data alignment buffer的寄存器解决跨边界访问问题;第3类是在一些存储容量较小的DSP中利用单体单字节存储体构成存储器来解决跨边界访问问题;本文分析了这 3 种方法的优缺点,并提出一种在多级存储系统基础之上的高效低开销的解决方案。

解决跨边界访问问题的技术手段及分析(1)早期依靠编译技术的解决方案

在大多数不支持跨边界访问的计算机里面,需要编译器在用户进行数据定义和空间分配时提供额外的支持。这个过程称为填充(pad),对程序员是透明的,造成的结果是一些程序员定义的结构实际占用的空间比程序员自己想象的要大,填充的实质是用牺牲空间的办法来提高程序的执行效率。一方面由于这种靠编译的解决方案存在着对空间的浪费,另一方面随着向量处理能力的需要和SIMD的流行,早期仅仅依靠编译技术来避免跨边界访问的办法已经行不通,因此在一些处理器中初步提供跨边界访问指令,如MIPS提供了跨边界读和跨边界写指令,但是这两类指令都是伪指令,是通过一组基本指令来完成的,如ulw(跨边界访问一个字)指令是由两个加载操作、一个移位操作、一个按位或操作组成的,这种情况下一个跨边界访问的周期很长,类似的还有DEC公司的Alpha处理器。

(2)依赖额外的数据对齐寄存器的解决方案

ADI公司的TTIGERSHARK处理器利用多个跨边界操作之间的数据相关性,以及一个额外的硬件资源称为数据对齐寄存器来解决跨边界访问的问题。TIGERSHARK的设计者认为这种跨边界访问操作虽然是不按边界对齐的,但是往往是对许多个连续地址的访问,这样硬件就可以通过一个寄存器保存上次访问的地址的内容,以便在下次访问中能够用到这次寄存的数据,尽可能减少对存储体的访问,降低访问开销。通过数据对齐寄存器,理想情况下能够达到在连续地址的跨边界访问中每个周期提供一个数据的目标。

(3)依赖于单体单字节存储体的解决方案

在一些超长指令字(VLIW)处理器中,为了减轻编译器过于沉重的负担和更好地支持跨边界访问,从改变存储体的组织结构出发,为解决跨边界访问提供了更好的解决思路。这种方案的关键是改变以往的单体多字存储体系结构,而使用多个单体单字节存储体。单体多字存储体是多个字节复用一个访存地址的,而单体单字节存储体的每个字节都拥有一个独立的访问地址,只需要对一部分字节给出本行的地址,一部分字节给出下一行的地址,从存储体读出的数据就是所需的两行数据的拼装,再将过一次循环移位操作就能得到跨边界访问的结果。对于跨边界写的处理也比较容易,只需将要写的数据分派到每个字节存储体上,然后给出不同的地址即可。3

本词条内容贡献者为:

张磊 - 副教授 - 西南大学