具有带嵌入式cpu的存储器控制器的数据存储系统的制作方法

文档序号:6567077阅读:123来源:国知局
专利名称:具有带嵌入式cpu的存储器控制器的数据存储系统的制作方法
具有带嵌入式CPU的存储器控制器的数据存储系统技术领域5 本发明涉及数据存储系统,尤其涉及具有高速缓冲存储器控制器的数据存储系统。
背景技术
由几个因素推动了对高性能、高容量信息技术系统的需求。在许 10多产业中,关键信息技术应用需要优良的服务水平。同时,随着越来 越多的用户要求适时访问数量巨大且稳定增长的、包括高质量多媒体 内容的数据,世界正在经历信息爆炸。用户还要求信息技术方案保护 数据并在苛刻的条件下以最小的数据损失执行。并且所有类型的计算 系统不仅正在适应更多的数据而且还变得越来越互连接,这使得交换 15 的数据量以几何速率增长。服务于要求,网络计算机系统通常包括多个地理上分离的或分布 的计算机节点,这些节点被配置成经由一个或多个网络通信介质相互 通信和互连接。 一个传统类型的网络计算机系统包括网络存储子系 统,网络存储子系统被配置成在网络上提供一个集中的场所以将数据 20 存储在场所或者从场所取得数据。通过在网络中使用这种存储子系 统,可以有利地将许多网络数据存储管理和控制功能集中在子系统 上,而不是分布在网络节点中。由商品名称Symmetri,下的主题应用的受让人(以下称为"受让 人")生产和销售的一种类型的传统网络存储子系统(以下称为"受 25 让人的传统存储系统")包括一组被配置为一个或多个磁盘阵列的大 容量存储磁盘装置。磁盘系统由连接到子系统中共享的高速缓冲存储 器资源的磁盘控制器(统称为"后端"控制器Z引导器)来控制。高 速缓冲存储器资源还连接到多个主控制器(统称为"前端"控制器/ 引导器)。磁盘控制器连接到各自的磁盘适配器,此外,磁盘适配器 将磁盘控制器连接到磁盘装置。类似地,主控制器连接到相应主通道 适配器,此外,主通道适配器将主控制器经由通道输入/输出(1/0)端口连接到网络通信通道(例如,基于SCSI、企业系统连接(ESCON) 5或者基于光纤通路(FC)的通信通道),网络通信通道将存储子系统连接到子系统之外的计算机网络中的计算机节点(统称为"主"计算机 节点或"主机")。在受让人的传统存储系统中,共享的高速缓冲存储器资源包括相对大量的动态随机访问存储器(DRAM) , DRAM被划分成多个高速缓冲存 io 储区域。此外,每个高速缓冲存储区域可包括各自的存储器阵列和各 自的存储区域I/0控制器对。包括在各自的存储区域内的存储器阵列 可被配置成多组DRAM器件(每一这样的组包括多个64、 128或256兆位 DRAM集成电路芯片),这些DR認器件组经由多个各自的命令和数据接 口组与各自的存储区域的I/0控制器连接。 15 各存储区域中的I/0控制器基于从主机和磁盘控制器接收到的命 令在各自的存储区域中进行相对高水平的控制和存储器访问功能。例 如,基于从主机和磁盘控制器接收到的命令,各存储区域中的每个1/0 控制器可利用区域中的其它I/0控制器进行仲裁操作以确保只允许区域中的一个i/o控制器在任意给定的时间有效访问/控制存储器阵列。20另外,各存储区域中的每个I/0控制器可进行地址解码操作,由此作为从主机控制器或磁盘控制器到i/o控制器的存储器访问请求(例如,存储器读或写请求)一部分的、由主机控制器或磁盘控制器提供给1/0控制器的存储器地址可被i/o控制器解码为存储区域的存储器阵列中的物理地址,物理地址对应于由主控制器或磁盘控制器提供的所述地 25址。此外,各存储区域中的I/0控制器的其它功能包括在各区域中的 存储器阵列中来回移动的数据的临时存储和传送同步以及下面要更 充分说明的可能在存储器阵列中出现的错误情况的处理。相反地,各存储区域中的命令和数据接口基于从I/0控制器接收 到的命令(例如,经由将I/0控制器连接到接口的命令/控制信号总线)
在各存储区域中进行相对低水平的控制和存储器访问功能。例如,响 应于从I/0控制器提供给接口的存储器访问请求,这些接口可提供适 当的芯片选择、时钟同步、存储器寻址、数据传送、存储器控制/管 理以及时钟使能信号给存储器阵列中的存储器装置,这允许所请求的 5 存储器访问发生。
当存储器阵列遇到错误情况时,命令和数据接口可检测错误情况 的出现并且可以将这种现象报告给当前正在有效访问/控制存储器阵 列的l/0控制器(以下称为"有效I/0控制器")。命令和数据接口可以 检测和报告的典型错误情况包括由命令/控制信号总线发送的值中的 10 奇偶校验错误的出现、所请求的受控存储器访问在预定的"超时"时 间段内没有完成等。在传统系统中,1/0控制器具有有限的或者没有计算智能并且具有有限的或者没有可编程性,这使得大多数或全部复杂的或可编程的 操作由存储区域外的处理器来执行。此外,在传统系统中,存储区域 15 之外的处理器监视区域的存储器阵列和I/0控制器的状态并旦在存储 器阵列上进行常规的维护/服务。

发明内容
在本发明的一个方面,数据存储系统包括适于连接到主计算机/ 20 服务器的第一引导器、适于连接到磁盘驱动器组的第二引导器以及逻 辑上位于所述第一和第二引导器之间的并且所述第一和第二引导 器之间通信的高速缓冲存储器。所述高速缓冲存储器包括具有嵌入式 中央处理单元(CPU)的存储器控制器,存储器控制器适于执行计算机 可执行指令。
25 在本发明的另一个方面,存储器系统包括存储器组、与包交换网络的接口以及存储器控制器。存储器系统适于通过所述接口接收基于 包的命令以访问所述存储器组。所述存储器控制器适于执行所述存储 器组的初始化和配置周期。在所述存储器控制器中包括嵌入式中央处 理单元(CPU),嵌入式中央处理单元适于执行计算机可执行指令。所述存储器控制器适于处理所述基于包的命令。在本发明的另一个方面,存储器控制器包括适于执行存储器的初 始化和配置周期的逻辑、适于执行计算机可执行指令的嵌入式中央处 理单元(CPU)以及适于访问存储器的接口。所述嵌入式CPU适于根据所 5 述计算机可执行指令访问所述存储器。所述存储器控制器适于独立于 所述嵌入式CPU的处理,响应来自所述存储器控制器外部的引导,访 问所述存储器。本发明的一个或多个实施例可提供以下优点中的一个或多个。 可以由数据存储系统的全局存储器的存储器控制器中的嵌入式 10 中央处理单元(CPU)来实现对全局存储器的低延迟访问。可以在比由所述存储器控制器之外的CPU所需的时间短的时间内由嵌入式CPU执行多个存储器操作。在没有嵌入式CPU的情况下,需要由存储器控制器之外的CPU处理的复杂处理任务可以由存储器控制器本身来执行。存储器控制器之外15 的其它CPU例如数据存储系统的引导器上的CPU等可以将复杂的处理 任务转给具有嵌入式CPU的存储器控制器。全局存储器和存储器控制器的监视和维护/服务可以由嵌入式CPU来执行。嵌入式CPU在存储器控制器内可以是部分或完全任选的,使得存20 储器控制器对没有嵌入式CPU的全部或许多必要的存储器控制器操作可以是充分可用的。嵌入式CPU可以具有可编程的优先级,使得当根据嵌入式CPU正在 执行的任务对全局存储器进行仲裁时可以对CPU操作给予不同的优先级。25 如果同一操作需要由各自的不同的多个存储器控制器控制的多个存储区域来完成,则可以将消息广播给存储器控制器内的所有嵌入式CPU,使得每个存储器控制器可以与其它嵌入式CPU并行执行操作。从以下包括附图的说明书和权利要求书将明显看出其它优点和 特征。


图l是包括数据存储系统的数据存储网络的示意性框图,本发明 的一个实施例可以在其中有利地实施。图2是示出包括在图1所示的数据存储网络中的数据存储系统的 5 功能部件的示意性框图。图3是示出图2的数据存储系统的共享的高速缓冲存储器资源的 功能部件的示意性框图。图4是示出可包含在图3的共享的高速缓冲存储器资源中的存储区域的功能部件的示意性框图。io 图5是可以包含在图4的存储区域中的存储器控制器的示意性框 图。图6是可以包含在图5的存储器控制器中的中央处理单元联合体 的示意性框图。图7和图8是示出可包含在图5的存储器控制器中的中央处理单元 15联合体内的过程流的示意性框图。图9至图13是可包含在图5的存储器控制器中的中央处理单元联 合体的中央处理单元的各部分的示意性框图。
具体实施方式
20 图1是示出包括数据存储系统112的数据存储网络110的框图,可以在其中有利地实施本发明的至少一个实施例。系统112经由通信链 路114、 116、 118、 120、…、122 (它们可以是或者包括FC协议光学 通信链路)连接到各主计算机节点124、 126、 128、 130、…、132。 主节点124、 126、 128、 130、…、132经由另外的各通信链路134、 136、25 138、 140、…、142 (它们可以是或者包括传统的网络通信链路)还 连接到外部网络144。网络144可以包括一个或多个基于传输控制协议 /因特网协议(TCP/IP)和/或基于以太网的局域和/或广域网络。网络 144还经由网络通信链路(在图1中统一由数字145指出)连接到一个 或多个客户计算机节点(在图1中统一或单独由数字146指出)。选择
由链路134、 136、 138、 140、…、142和145使用的网络通信协议以帮 助确保节点124、 126、 128、 130、…、132可以经由网络144与节点146交换数据和命令。主节点124、 126、 128、 130、…、132可以是几个公知类型的计 5 算机节点中的任何一个,例如服务器计算机、工作站或者大型机。通 常,主节点124、 126、 128、 130、…、132和客户节点146中的每一个 包括各自的计算机可读存储器(未示出),用于存储与节点相关的软 件程序和数据结构,并用于执行本文中所描述的由这些节点124、126、 128、 130、…、132和146执行的功能和操作。另外,节点124、 126、io128、 130、…、132和146中的每一个还包括一个或多个各自的处理器 (未示出)和网络通信装置,用于执行这些软件程序、操纵这些数据 结构以及用于允许和促进经由通信链路134、 136、 138、 140、…、142、 网络144以及链路145在主节点124、 126、 128、 130、…、132和客户 节点146当中交换数据和命令。包括在主机124、 126、 128、 130、…、15 132中的处理器和网络通信装置对软件程序的执行还允许和促进按照 下面将要说明的方式经由链路114、 116、 118、 120、…、122在节点 124、 126、 128、 130、…、132和系统112当中交换数据和命令。图2是系统112的功能部件的框图。系统112包括包交换网络结构 14,其连接多个主控制器(也被称为前端引导器)22…24、多个磁盘20 控制器(也被称为后端引导器)18…20以及具有包括区域200、 202 的多个存储区域的共享的高速缓冲存储器资源16。转让给与本申请同 一受让人的2003年9月30日提交的标题为"具有包交换网络的数据存 储系统"的未决专利申请10/675,038中描述了网络结构14,其全部主 题内容通过引用包含于此。25 每个主控制器22…24可包括单一各自的电路板或面板。同样,每个磁盘控制器18…20可包括单一各自的电路板和面板。图2中所示的 每个磁盘适配器30…32可包括单一各自的电路板或面板。同样,图2 中所示的每个主适配器26…28可包括单一各自的电路板或面板。每个 主控制器22…24可以分别经由各自配合机电连接系统电和机械连接
到各主适配器28…26。在本实施例的系统112中,尽管在图中没有明确示出,但是每个 主适配器26…28可以经由各链路连接到四个各自的主节点。例如,在 本实施例的系统112中,适配器26可以经由各链路114、 116、 118、 120 连接到主节点124、 126、 128、 130。应理解,每个主适配器26…28 可以连接的主节点的数目可根据主适配器26…28以及主控制器22… 24的具体配置而变化,这不违背本发明。磁盘适配器32电连接到一组大容量存储装置34并且将磁盘控制 器20连接到装置34以允许在磁盘控制器20中的处理器(未示出)和存 储装置34之间交换数据和命令。磁盘适配器30电连接到一组大容量存 储装置36并且将磁盘控制器18连接到装置36以允许在磁盘控制器18 中的处理器(未示出)和存储装置36之间交换数据和命令。装置34、 36可被配置为冗余的磁和/或光磁盘大容量存储装置阵列。应意识到,图2中所示的系统112的各功能部件的各自数目仅是用 于说明目的并且可根据系统112想要投放到的具体应用而变化,这不 违背本发明。然而,可能希望允许系统112能够在系统112中的个别部 件失效的情况下容忍失效。因此,在系统112的实际应用中,可能希 望系统112包括冗余的功能部件以及用于确保任何特定的功能部件的 失效被检测到并且由与失效部件相同类型的各冗余功能部件承担失 效功能部件的操作的传统机构。现在说明从系统112中取出数据和将数据存储到系统112中的一 般方式。 一般地说,在网络110的操作中,客户节点146可以经由与客 户节点146相关联的链路145、网络144以及与主节点124相关联的链路 134中的一个将取出数据的请求转发给主节点(例如,节点124)。如 果所请求的数据没有本地存储在主节点124处而是存储在数据存储系 统112中,则主节点124可以请求经由与节点124相关联的链路114从系 统112转发数据。连接到链路114的主适配器26最先接收到经由链路114转发的请 求。然后与链路1M相关联的主适配器26将请求转发到与其连接的主
控制器24。响应于转发给其的请求,主控制器24继而可以(例如根据 存储在高速缓冲存储器16中的数据存储管理表(未示出))判断所请 求的数据当前是否在高速缓冲存储器16中;如果判断出所请求的数据当前没在高速缓冲存储器16中,则主控制器24可以请求与存储有所请 5 求的数据的存储装置36相关联的磁盘控制器(例如,控制器18)将所 请求的数据取出到高速缓冲存储器16中。响应于来自主控制器24的请 求,磁盘控制器18可以经由与其连接的磁盘适配器转发用于使一个或 多个磁盘装置36取出所请求的数据的适当命令。响应于命令,装置36 可以经由磁盘适配器30将所请求的数据转发给磁盘控制器18。然后磁 io盘控制器18可以将所请求的数据存储在高速缓冲存储器16中。当所请求的数据在高速缓冲存储器16中时,主控制器22可以从高 速缓冲存储器16中取出数据并经由适配器26和链路114将其转发到主 节点124。然后主节点124可以将所请求的数据经由链路134、网络144 以及与客户节点146相关联的链路145转发到请求数据的客户节点 15 146。另外,客户节点146可经由与客户节点146相关联的链路145、网 络144以及与主节点124相关联的链路134之一将存储数据请求转发给 主节点(例如,节点124)。主节点124可以在本地存储数据,或者请 求经由与节点124相关联的链路114将数据存储在系统112中。20 连接到链路114的主适配器26最先接收到经由链路114转发的数 据存储请求。然后与链路114相关联的主适配器26将数据存储请求转 发到与其连接的主控制器24。然后响应于转发给其的数据存储请求, 主控制器24可以将数据先存储在高速缓冲存储器16中。此后,磁盘控 制器之一 (例如,控制器18)可以通过经由适配器30向装置36发出适25当的命令,使存储在高速缓冲存储器16中的数据存储在数据存储装置 36的一个或多个中。现在具体参考图3至图5来说明可有利地用在系统112的高速缓冲 存储器16中的本发明的说明性实施例。也被称为全局存储器(GM)的高 速缓冲存储器16被划分为多个存储区域200、 202、 204和206。这些区
域200、 202、 204、 206中的每一个都连接到网络结构14。尽管在图中 没有示出,但是在系统112的实际应用中,存储器16被划分成的存储 区域的实际数目可以远大于图3中所示的四个区域200、 202、 204、 206 (例如大2到4倍),理解这一点是很重要的。 5 存储区域200、 202、 204、 206在它们各自结构和操作上可以基本相同。因此,为了在描述中避免不必要的重复,在这里只描述存储区 域200、 202、 204、 206中的单独一个200的功能部件和操作。图4示出存储区域200、 202,它们包括以下描述的各自的区域控 制器(RC)400、 410,每个RC是或者包括存储器控制器专用集成电路 io(ASIC)。在至少一个实施例中,数据存储系统的存储器模块(MM)具有主印 刷电路板和夹层印刷电路板,其每一个具有一个存储区域(或存储器 阵列),存储区域例如具有8GB (使用512Mb DRAM)。每个存储器阵列 200或202由其各自的RC 400或410来控制。每个RC接收请求并生成对 is 数据存储系统高速缓冲存储器操作的响应,以下将操作称为全局存储 器(GM)操作,包括其各自的存储区域。
图5示出RC 400的框图,其具有两个与各自DRAM阵列512、 514的 数据接口510、 520, DRAM阵列512、 514包括在由RC 400控制的存储区 域200中。
20 每个RC包括至少以下功能模块第一RapidlO,示准(RIO)端点516、 518 (也被表示为RIOOP、 RI01P)、第二RI0端点522 (也被表示 为RI00S或2nd R工O E.P. )、 RI0开关组524、 526、管流控制器(PFC) 组528、调度器532 (也被表示为SCD)、数据引擎534 (也被表示为DE)、 双数据速率2标准同步动态随机访问存储器(DDR2 SDRAM)控制器25(DDRC)组536以及服务逻辑540 (也被表示为SRV)。转让给与本申请同 一受让人的2005年6月3日提交的标题为"在当前数据传输期间排队 和管理多个存储器操作"的未决专利申请11/145, lll中描述了这些 功能模块。每个RC接收请求并生成对RIO消息的响应,发送RIO消息, 处理服务请求,将RIO请求上游路由到下一个RC,即使有的话,在RC
的菊花链中,如果在消息中指定的目的地不匹配当前的RC,则将RIO响应下游向结构16传送。图5还示出RC包括中央处理单元(CPU)联合体542。具体来说,RC 特征在于可访问所有或几乎所有RC资源的嵌入式CPU。参考图6,访问 5 由CPU联合体542启动,CPU联合体542是一组逻辑模块并且包括后面将 进一步详细说明的下列功能具有紧连接存储器的CPU 1310、作为从 CPU到外围的接口的先进高性能总线接口 (AHB I)逻辑1312 、向CPU 1310提供计时服务的定时器1314、中断控制器逻辑1316 (被表示为 IRQ)、向先进外围总线(APB)提供桥的先进外围总线接口 (APBI)1318、io UART 1320、服务接口(SRBI)逻辑1322、 GMI逻辑916、消息引擎718、 调度器(SCD)以及数据引擎532、 534、服务(SRV)逻辑540以及开关组 524、 526的存储和转发部分(S&F R工OSWO, S&F RI0SW1)。先进高性能 总线和先进外围总线是先进微控制器总线结构(AMBA)的协议,其是开 放的标准片上总线规范,并且由德克萨斯州奥斯汀市的A脂公司描述15 (http: //www. arm. com/)。CPU联合体对在先进高性能总线(AHB)上从CPU接收到的访问进行 解码,并将对应的请求分派给适当的模块或接口。可从AHB获得的模 块和接口是GMI 916、消息引擎718、服务接口322、 APBI和UART逻辑 1318、 1320、中断控制器1316以及定时器1314。20 CPU 1310通过消息引擎718发送和接收RIO消息。当消息从数据存储系统的其它部分到达RC时,它们被放在如下所述的入站消息环中并 通过中断将其通知给CPU。同样,CPU可以在两个出站消息环之一中建 立消息,以通过设定指令给消息引擎718来发送消息。全局存储器接口 (GMI)916向CPU 1310提供对直接连到RC的全局25 存储器部分的访问。接口SRVI 1322允许CPU得到和设置RC内部寄存器 的状态。UART 1320提供软件调试路径,定时器1314被用于软件调度, 中断控制器1316用于管理中断源。由RC处理的多个操作涉及或者潜在涉及CPU。接收和响应于消息 涉及将RIO消息路由到DRAM阵列、发送回RIO消息响应以及CPU GMI访
问DRAM阵歹U,这至少部分由用于接收/处理消息操作序列的图7和用于 CPU访问全局存储器的图8示出。关于图7中所示的消息访问序列,将 消息包路由到全局存储器以及接下来的响应大部分与常规的全局存 储器操作(不涉及CPU的操作)中的相似。 5 参考图7,由端点RI01P接收和处理RI0包(图7箭头1)。在此情况下,RI0端点518将包识别为S/F包并将其转发到开关组526的S/F RIO 开关SW2 1410 (图7箭头2)。包的目的地首部字段被检查用于正确的 路由;在此情况下,它被路由到CPU联合体542中的消息引擎(图7箭 头3)。包被消息引擎718接收,其处理与PFC模块相类似的包包的首io 部和有效载荷被存储以同步FIF0从RI0时钟(156. 25MHz)到DDR时钟 (200MHz)转移。消息引擎718还检查包首部的完整性。消息引擎718请求通过调度器532对数据引擎534进行访问。当访 问被同意时,包被数据引擎534处理(图7箭头4),其将数据移动到DDRC 536进行写操作(图7箭头5)。 DDRC执行对DRAM阵列512、 514的写操作15 (图7箭头6)。将状态发送到数据引擎534 (图7箭头7)。数据引擎534 将状态信息发送回消息引擎718 (图7箭头8)。消息引擎718从数据引 擎534得到状态/数据,将其从200MHz同步到156. 25MHz时钟,准备响 应包,请求通过开关SW3 1410回访R工0端点(图7箭头10)。另外,消 息引擎718将中断发送到CPU 1310以将所存储的消息通知给CPU 131020 (图7箭头9)。当开关1410同意访问时,它将响应包路由回RI0端点518 (图7箭头11)。 RI0端点518将包发送到所述结构(未示出)(图7箭头 12)。关于图8流程图中所示的CPU-GM访问序列,当CPU 1310从消息引 擎718接收到中断信号时(图8箭头1),执行以下动作。CPU本身的GMI 25 启动存储器访问(图8箭头1)。 GMI解码CPU命令并发送请求给调度器 532 (图8箭头2)。调度器同意访问,并触发数据引擎。数据引擎发送 读取命令给DDRC 536 (图8箭头3),其执行读取操作(图8箭头4)。所 读取的数据被发送到DDRC 536 (图8箭头5),并将所读取的数据和状 态发送给数据引擎534 (图8箭头6)。DE检査数据完整性并将数据发送到GMI (图8箭头7),其将数据发 送给CPU。
关于生成和发送消息,CPU 1310可构建消息并将其发送到结构 14。动作序列很大程度上是接收/处理消息操作的倒置。CPU执行对GMI 5916的写操作,并通知消息引擎718。消息引擎718执行从全局存储器 的读取操作,准备包,并将其发送到结构14。
参考图6,通过其外部接口CPU联合体542与CPU联合体外部的模块 相互作用。通过调度器接口组1330, CPU联合体对全局存储器执行读 取和写入。调度器是对连接到RC的DRAM装置的访问的仲裁器。Cra联 io合体具有与调度器532的两个接口,因为它包含两个请求者消息引 擎718和GMI 916。
服务接口1322提供用于访问RC的内部寄存器以及四个RI0端点内 部寄存器中的每一个的装置。服务接口 1322还将错误信息传给这些内 部寄存器。具体来说,服务接口1322提供从两个第一RI0端点中的任 is —个或从CPU联合体542对RC的五个区的访问。这些区是RC内部寄存器 (状态、错误以及配置寄存器)、内部I2C控制器核心(例如外部温度 传感器和VPD)、第一RIO端点的内部寄存器(RIO错误、状态以及配置、 SERDES寄存器)、第二RIO端点的内部寄存器以及DDR培训逻辑。I2C代表内部集成电路,指的是公知的两线双向串行总线技术。 20 在至少一个实施例中,CPU 1310不具有对连到其它RC的存储器的直接访问(即,不是通过结构14的访问)。AHB接口 (AHBI) 1312负责翻译它从CPU核心1332接收到的请求并将它们发给所连接的外围设备。接口1312实现AHB从属,AHB从属在一侧上连接到AHB,在另一侧上具有与目的地的独立连接,目的地包括 25APB接口1318、定时器1314、中断控制器1316、服务接口1322、消息引擎718以及GMI 916。对于每个AHB事务,它解码哪一个目的地是事务的主题,将请求转发给主题目的地并等待响应。当它接收到响应时,它在AHB上完成事务。
更具体来说,AHB接口通过翻译在AHB总线上从CPU接收到的请求
并将它们分派给可用接口中的每一个来作为地址解码器。通过解码请 求的地址来确定正确的外围目的地。当地址已经被解码时,AHBI通过 主张其选择信号来选择被寻址的接口。在每个事务之后,目的地表明 是成功还是失败。5 在至少一个实施例中,通过256MB倍数的窗口访问连接到RC的所有全局存储器。通过窗口寄存器的编程,CPU可以访问全局存储器的 各部分。为了减少存储器争用,可以通过如下说明GMI 916高速缓冲 数据,使得引导到全局存储器的对应区域的进一步读取不必触发全部 全局存储器访问。io 其它窗口可用于如下说明的访问消息环。每个窗口的(base)基可 被翻译为被访问的环的基地址。除了用于一般全局存储器访问的高速 缓冲存储器以外,还有单独为消息环维持的高速缓冲存储器。如图6中所示,GMI 916具有两个接口 AHB接口1334,在其上发 送和接收所有CPU读和写请求;调度器接口1330,当在GMI的高速缓冲15 存储器外不能服务从AHB接口1334接收到的请求并且请求需要访问全局存储器时使用接口。对GMI 916的读和写访问可能来自4个不同窗口全局存储器窗 口、接收环窗口以及发送环窗口。对其进行请求的窗口影响GMI 916 的行为。20 对全局存储器窗口的访问使用窗口寄存器的内容以及窗口内的特定地址以确定要访问的全局存储器中的地址。如果对应数据在GMI 的高速缓冲存储器中,则从高速缓冲存储器返回数据。否则,GMI916 从全局存储器取回数据。除了全局存储器地址计算为从位于消息引擎中的基址寄存器的25偏移以外,消息窗口与全局存储器窗口类似地操作。GMI的高速缓冲存储器可以是或者包括两个单独的64字节高速缓 冲存储器。在至少一个实施例中,高速缓冲存储器和全局存储器之间 的一致性没有被保证,使得如果对应于高速缓冲存储器的内容的全局 存储器被另一个CPU通过RIO通信修改,则没有将其指示给嵌入式CPU1310。此外在至少一个实施例中,没有在内部保证两个64字节的高速 缓冲存储器之间的一致性。高速缓冲存储器可以被配置成高速缓存读 或写,或者读和写。高速缓冲存储器还可以被引导转储清除或者使高 速缓冲存储器无效。5 如图6中所示,消息引擎718具有四个接口用于从RIO端点读取数据和向RI0端点写入数据的与开关组524、 526中每一个的接口;用 于向全局存储器发送消息和从全局存储器取回消息的调度器接口;以 及用于环管理器的与AHB接口1312的连接。在至少一个实施例中,来自开关组524、 526二者的所有引入消息io 都被放在单个引入环中。针对出站消息,定义两个环。来自这两个环 之一的消息被引导到一个开关组,而来自这两个环中另一个的消息被 引导到另一个开关组。通过基地址和大小来定义消息环。由被称为生产者指数和消费者 指数的一对指数来定义这些环上的工作。当这两个指数相等时,没有15工作要做。生产者通过第一次将数据写入当前生产者指数之后的下一 个消息槽中来创建工作。当数据己经被写入时,生产者指数递增以表 示存在新的工作。消费者处理槽中的数据,然后递增消费者指数以反 映数据已经被处理。在消费者指数递增之前,消息槽不能被用于其它 消息。20 RC具有引入环和引出环。引出环用于将消息发送到端点516、 518之外。对于引入环,RC是生产者而CPU 1310是消费者。对于引出环,关系相反,CPU是生产者而RC是消费者。当己经接收到包之后,消息引擎718请求通过调度器532访问全局存储器,当访问被同意时,将包传入引入消息环的下一个入口。然后 25 RX消息环生产者指数递增并且将中断传给CPU以表示新消息到达。消息的首部四个字是消息的描述符。根据所传递的包的类型,对消息响应包进行排队。当引出槽可用时,响应包的有效负荷被写入到槽中。响应包的状态字段包含关于消息传送的成功或失败的信息。
如果TX消费者指数不等于对应的生产者指数,则消息引擎718判断出包正在等待被发送到全局存储器。在该情况下,消息引擎718在下一个消费者指数处读出被称为消息描述符的首部八个全局存储器 字。基于描述符,消息引擎取回消息的剩余部分并将其存储在引出槽5中。
只要包可用于传输,在消息引擎已经取回引出包之后,或者已经创建了消息响应,对开关组524或526进行请求。请求和准许对于两个 路径是分开的(CPU响应和消息引擎响应),但是数据路径是共享的。 一旦赢得仲裁,就将包的全部内容发送到端点516或518。
io 在至少一个实施例中,CPU1310是或者包括可以从德克萨斯州奥斯汀市的A固公司获得的ARM966E-S嵌入式微处理器 (http:〃www. arm. com/) 。 ARM966E-S微处理器是低高速缓存5阶段处 理器,具有与内部的紧连接的存储器(TCM)的接口以及A朋接口1312, 并且在可从ARM公司得到的ARM966E-S技术参考手册(ARM DDI 0213C)、ARME-S技术参考手册(ARM DDI 0240A)以及AMBA规范(A脂IHI 0011A) 中做了说明。参考图9, CPU核心1332具有经由多路复用器1614取得指令和数据 的两个装置(1)指令紧连接存储器(ITCM)1610和数据紧连接存储器 (DTCM)1612,它们是快速的本地数据存储,以及(2) AHB接口1312,CPU在其上对更大的存储器和任何可获得的外围设备进行访问。
ITCM 1610和DTCM 1612可以为CPU核心提供指令和数据的存储, 这可以使CPU不必在AHB接口1312上针对每个指令发出请求,这会显著 降低性會g。否则,在AHB总线上发生存储器访问,AHB总线与存在于AHBI 内的AHB从属连接,其服务于请求。
如图10中所示,APB接口1312用于访问连接外围设备的APB;在CPU 联合体542中UART 1320是唯一的APB外围设备。APB接口接受来自AHB 接口的请求并将它们翻译成在APB总线上的请求,也就是担当AHB接口 禾口APB总线之间的桥。每次选择APB接口时,在AHB侧上指定的操作被 翻译成对应的APB操作。APB总线是与200MHz系统时钟同步的50MHz接19
口,其减轻了两个域之间的同步。在上面引用的AMBA规范(ARM IHI 0011A)中给出数据流细节。图11示出定时器1314,它是或者包括可被用于按周期生成中断给 CPU的可编程定时器。在每次计数器到达O并滚回到设定值时,定时器 5 执行生成中断的重新加载32位计数器。定时器计数200MHz时钟周期直 到最大的232,其给出从10ns到42. 9s的10ns间隔的粒度。中断控制器1316接收来自多个中断源的输入并驱动到CPU的两个中断线。然后可询问控制器以确定中断的特定源。还可以屏蔽中断源 以防止它们中断CPU。由中断控制器1316内部固有的一组寄存器来判 io 断中断是否作为一般中断或者快速中断传给CPU。具体来说,中断控制器监视其高水平的输入(工RQ端口)。如果没 有被屏蔽,只要检测到这些条件就基于配置寄存器向CPU主张信号。图12示出服务接口1322,其是用于访问RC宽内部寄存器、传递相关错误信息并接收配置信息的装置。15 图13示出UART 1320,其可以是或者包括可从加利福尼亚州米尔皮塔斯市的LSI Logic公司获得的零件号码cw001203下的技术,并且 实现与工业标准16C550 UART的功能类似的UART功能。UART 1320可经 由接口1318访问,并且作为在UART 1320处的输入/输出业务2210的结 果可在中断控制器1316处生成中断。20 现在参考图5和图6说明作为使用嵌入式CPU 1310的一个应用例子的分布式锁定管理。数据存储系统包括在所有引导器、前端和后端 之间共享的许多个存储器。为了帮助确保一致性,也就是说,两个引 导器不同时访问存储器的同一部分,需要锁定(即,临时限制访问) 存储器的区域。这些锁定可以通过设置和检查预定位置中的指定位的25 状态来实现。更具体来说,通过检查指定位的状态(设定或未设定), 引导器可以判断锁定是否已经有效。另外,引导器可以测试位的状态, 如果它没有被设定则设定它;以这种方式,引导器获得锁定。稍后通 过同一引导器清除指定的位来解除锁定。当一个以上的引导器试图获取同一锁定时出现锁定争用。在第一 引导器保持锁定的同时,第二引导器轮询锁定的状态,即,周期性检 查锁定的状态以判断它是否已经被解除,从而第二引导器可以获得锁 定。每次第二引导器轮询锁定的状态时,它在互连网络上发送单独的 请求,这可能是昂贵的。每个轮询事件导致的往返延迟是显著的,并 5且在这种轮询中消耗的计算资源可能是相当大的。然而,RC嵌入式CPU 1310的使用可以例如通过消除或帮助消除这 种往返延迟来消除或者帮助消除这种成本。引导器可以通过向CPU1310发送表示引导器希望获得哪个时钟的单个消息来将轮询任务转 移给CPU1310。然后,由于CPU靠近存储器,所以CPU可以以相对小得 io多的往返延迟来执行对锁定的轮询。当已经为请求引导器获得锁定 时,CPU可以通过另一消息通知引导器。可以使用如上所述的CPU执行以下步骤以获得锁定。1.引导器在引导到嵌入式CPU 1310的结构14上发送表示要取得锁定的消息。 is 2.将消息路由到消息引擎718。3. 消息引擎718将消息放入全局存储器,递增RX生产者指数,并 向CPU发出表示消息已经到达的中断。4. 消息引擎718向引导器发送表示接收到请求的响应。5. 作为中断的结果或者通过针对RX生产者指数变化的轮询,CPU 2013 IO判断出消息已经到达。6. 通过GMI 916, CPU 1310取得消息并判断出由哪一个引导器请 求了哪一个锁定。7. 通过GMI 916, CPU 1310判断锁定是否已经发生。如果锁定已 经发生,贝UCPU1310将请求放在要被服务的队列上。如果锁定还没有25发生,则CPU 1310将锁定设置为已获得。8. 当已经获得针对引导器的锁定时,CPU 1310通过GMI 916在全 局存储器中建立向引导器表示引导器拥有锁定的消息。9. CPU 1310写TX生产者指数,其向消息引擎916表示存储器中存在要发送的消息。 10. 消息引擎718从全局存储器取回消息并在结构14上将其发送 到引导器。11. 引导器接收消息并开始在锁定所管理的全局存储器的一部 分上操作。5 12.当利用锁定所管理的存储器的一部分完成时,引导器将另一个表示锁定没有被占用的消息发送给存储器,或者如果存在,则将锁 定分配给下一个请求者。其它实施例在所附权利要求的范围内。例如,可以与一个或多个 电路板一起使用多个半导体插件或者作为一个或多个电路板来实现io RC。可以在包括其它RC模块的ASIC的外部实现一个或多个RC模块。 RC可以包括多个嵌入式CPU。除了如上所述的区域200的RC的一些或全部模块以外,存储器控 制器ASIC还可以包括一个或多个另外的模块。例如,存储器控制器 15 ASIC可以具有模块使得ASIC是区域200的RC的扩展集。嵌入式CPU或CPU联合体可具有数据存储系统中的另一个CPU的一 些或全部处理和/或数据处理能力。
权利要求
1.数据存储系统,包括适于连接到主计算机/服务器的第一引导器;适于连接到磁盘驱动器组的第二引导器;以及逻辑上位于所述第一和第二引导器之间并且在所述第一和第二引导器之间通信的高速缓冲存储器,其中所述高速缓冲存储器包括具有嵌入式中央处理单元CPU的存储器控制器,存储器控制器适于执行计算机可执行指令。
2. 根据权利要求1的数据存储系统,其特征在于,还包括 连接所述第一和第二引导器以及所述高速缓冲存储器的包交换网络,其中可以在所述包交换网络上将存储器命令发送到所述存储器 控制器。
3. 根据权利要求l的数据存储系统,其特征在于,所述嵌入式CPU适于响应来自所述第一引导器的存储器命令访问所述高速缓冲存储 器。
4. 根据权利要求l的数据存储系统,其特征在于,所述嵌入式CPU 适于响应来自所述第二引导器的存储器命令访问所述高速缓冲存储 器。
5. 根据权利要求l的数据存储系统,其特征在于,所述存储器控 20制器适于独立于所述嵌入式CPU的处理,响应来自所述高速缓冲存储器外部的存储器命令,访问所述高速缓冲存储器。
6. 根据权利要求l的数据存储系统,其特征在于,所述嵌入式CPU 适于根据计算机可执行指令访问所述高速缓冲存储器,所述计算机可 执行指令存储在所述高速缓冲存储器中。
7.根据权利要求l的数据存储系统,其特征在于,所述嵌入式CPU具有内部存储器,并且适于根据计算机可执行指令访问所述高速缓冲 存储器,所述计算机可执行指令存储在所述CPU的所述内部存储器中。
8.根据权利要求l的数据存储系统,其特征在于,所述存储器控 制器还包括与包交换网络的接口。
9. 根据权利要求l的数据存储系统,其特征在于,所述嵌入式CPU 还包括适于处理被引导到所述嵌入式CPU的消息的消息引擎。
10. 根据权利要求l的数据存储系统,其特征在于,所述嵌入式 CPU还包括与所述高速缓冲存储器的接口 。
11.存储器系统,包括存储器组;与包交换网络的接口,所述存储器系统适于通过接口接收基于包的命令以访问所述存储器组;以及存储器控制器,其适于执行所述存储器组的初始化和配置周期,所述存储器控制器具有适于执行计算机可执行指令的嵌入式中央处理单元CPU,所述存储器控制器适于处理所述基于包的命令。
12.根据权利要求ll的存储器系统,其特征在于,所述嵌入式CPU 适于响应来自所述存储器系统外部的存储器命令,访问所述存储器 组。
13.根据权利要求ll的存储器系统,其特征在于,所述存储器控制器适于独立于所述嵌入式CPU的处理,响应来自所述存储器系统外 部的存储器命令,访问所述存储器组。
14. 根据权利要求ll的存储器系统,其特征在于,所述嵌入式CPU 适于根据计算机可执行指令访问所述存储器组,所述计算机可执行指令存储在所述存储器组中。
15. 根据权利要求ll的存储器系统,其特征在于,所述嵌入式CPU 具有内部存储器并且适于根据计算机可执行指令访问所述存储器组, 所述计算机可执行指令存储在所述CPU的所述内部存储器中。
16. 根据权利要求ll的存储器系统,其特征在于,所述嵌入式CPU 25还包括消息引擎,消息引擎适于处理被引导到所述嵌入式CPU的消息。
17. 根据权利要求ll的存储器系统,其特征在于,所述嵌入式CPU 还包括与所述存储器组的直接接口。
18. 存储器控制器,包括适于执行存储器的初始化和配置周期的逻辑电路; 适于执行计算机可执行指令的嵌入式中央处理单元CPU;以及 适于访问存储器的接口;其中所述嵌入式CPU适于根据计算机可执行指令访问所述存储 器;以及5 其中所述存储器控制器适于独立于所述嵌入式CPU的处理,响应来自所述存储器控制器外部的引导,访问所述存储器。
19.根据权利要求18的存储器控制器,其特征在于,所述嵌入式 CPU还包括消息引擎,消息引擎适于处理被引导到所述嵌入式CPU的消 息。io 20.根据权利要求18的存储器控制器,其特征在于,所述嵌入式CPU具有内部存储器并且适于根据计算机可执行指令访问所述存 储器组,所述计算机可执行指令存储在所述CPU的所述内部存储器 中。
全文摘要
一种存储器系统包括存储器组、与包交换网络的接口以及存储器控制器。存储器系统适于通过接口接收基于包的命令以访问存储器组。存储器控制器适于执行存储器组的初始化和配置周期。在存储器控制器中包括适于执行计算机可执行指令的嵌入式中央处理单元(CPU)。存储器控制器适于处理基于包的命令。
文档编号G06F12/08GK101160567SQ200680012484
公开日2008年4月9日 申请日期2006年3月31日 优先权日2005年4月13日
发明者B·D·马格努森, B·K·坎贝尔, C·柯里, D·L·谢菲, O·波拉特 申请人:伊姆西公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1