当前位置: 首页 > 专利查询>凯为公司专利>正文

跨多个内存口使用选择性复制降低内存访问延迟的系统及方法技术方案

技术编号:10282746 阅读:128 留言:0更新日期:2014-08-04 10:01
在一个实施例中,一种系统包括多个内存口(608A-608D)。这些内存口分布于多个子集中,其中每一个子集由一个子集索引标识并且这些内存口各自具有一个基于对应工作负载的单独等待时间。该系统进一步包括一个第一地址散列单元(602B),该第一地址散列单元被配置成用于接收一个包括一个虚拟内存地址的读取请求。该虚拟内存地址与一个复制因子相关联,并且该虚拟内存地址指的是图形数据。该第一地址散列单元将该复制因子转化成一个基于该虚拟内存地址的相应子集索引,并且将该虚拟内存地址转换成一个基于硬件的内存地址。该基于硬件的地址指的是该相应子集索引所指示的一个子集内的这些内存口中的图形数据。该系统进一步包括一个内存复制控制器(604),该内存复制控制器被配置成用于将对于该基于硬件的地址的读取请求指向该相应子集索引所指示的该子集内这些内存口中具有最低单独等待时间的一个。

【技术实现步骤摘要】
【国外来华专利技术】相关串请本申请是于2011年10月25日提交的美国13/280,738号申请的继续申请。上述一个或多个申请的整体教导通过引用结合于此。
技术介绍
对于许多计算机系统,内存延迟是访问内存地址时的一个重要障碍。计算机系统执行一个特定算法功能所要求的时间可能有超过90%会由于内存延迟而耗费在等待接收对于一个读取请求的响应上。当计算机系统的算法访问内存时,系统调度对内存的读取请求,等待内存口返回所请求的数据,并且然后算法申请所返回的数据。算法可能频繁地向一个基于所返回的数据的后续内存地址请求数据。与等待内存口返回所请求的数据花费的时间相比,申请所返回的数据并且发出一个后续内存读取请求花费的时间可能更少。因此,在严重依赖内存访问的系统中(如以上描述的系统),减少内存延迟可以改善系统性能。当算法的多个实例并列单独运行而不进行任何交互时,对于这些内存口的若干读取请求可能会在任何给定时间挂起。一个算法体验到的延迟则依赖于执行相同算法的其他单元的读取请求频率,因为对于一个内存口的访问是连续的。
技术实现思路
多个内存口可以降低总的内存延迟。数据可以唯一地跨各种内存口存储。此外,使用多个内存口比使用一个单独的内存口允许更多的总的计算机系统内存,因为每一个内存口具有其能支持的最大容量。然而,在此配置中,单独发出的读取请求可能跨这些内存口是非均匀分布的,这增加了所实现的内存口读取延迟。如此修改这些内存口以便附接在所有这些内存口的内存包含相同的数据,这降低了内存延迟,但牺牲了系统中可以存储唯一数据的存储单元的数量。在此类系统中,所有内存口上的内存包含完全相同的数据,并且一个内存复制控制器将到达的读取请求指向最不繁忙的内存口,这将多个读取请求几乎均匀地分布于这些端口间,假设所有的内存口以大致相同的延迟为读取请求服务。在一个实施例中,一种系统包括多个内存口。这些内存口分布于多个子集中,其中每一个子集由一个子集索引标识并且这些内存口各自具有一个基于对应工作负载的单独等待时间。该系统进一步包括一个第一地址散列单元,该第一地址散列单元被配置成用于接收一个包括一个虚拟内存地址的读取请求。该虚拟内存地址与一个复制因子相关联,并且该虚拟内存地址指的是图形数据。该第一地址散列单元将该复制因子转化成一个基于该虚拟内存地址的相应子集索引,并且将该虚拟内存地址转换成一个基于硬件的内存地址。该基于硬件的地址指的是该相应子集索引所指示的一个子集内的这些内存口中的图形数据。该系统进一步包括一个内存复制控制器,该内存复制控制器被配置成用于将对于该基于硬件的地址的读取请求指向该相应子集索引所指示的该子集内这些内存口中具有最低单独等待时间的一个。在一个实施例中,一个第二地址散列单元被配置成用于接收一个包括对于至少一个虚拟内存地址的数据的写入请求,并且将每一个虚拟内存地址转换成一个基于硬件的内存地址,每一个基于硬件的内存地址指的是这些内存口中的单独一个。该第一及第二地址散列单元被配置成用于修改请求跨这些端口分布的顺序。该第一及第二地址散列单元被配置成用于将任何给定虚拟内存地址转换成一个预先确定的基于硬件的内存地址。一种方法包括将多个内存口分布到多个子集中,每一个子集由一个子集索引标识,这些内存口各自具有一个基于对应工作负载的单独等待时间。该方法进一步包括在一个第一地址散列单元处接收一个具有一个虚拟内存地址的读取请求,该虚拟内存地址与一个复制因子相关联,该虚拟内存地址指的是图形数据。该方法进一步包括在该第一地址散列单元处基于该虚拟内存地址将该复制因子转化成一个相应子集索引。该方法进一步包括在该第一地址散列单元处将该虚拟内存地址转换成一个基于硬件的内存地址,该基于硬件的地址指的是该相应子集索引所指示的一个子集内的这些内存口中的单独一个。该方法进一步包括在一个内存复制控制器中将对于该基于硬件的地址的读取请求指向这些内存口中具有最低单独等待时间的一个。在一个实施例中,该方法可进一步包括在一个第二地址散列单元处接收一个对于包括至少一个虚拟内存地址的图形数据的写入请求,并且在该第二地址散列单元处将每一个虚拟内存地址转换成一个基于硬件的内存地址,每一个基于硬件的内存地址指的是该多个内存口中的单独一个。该第一地址散列单元偶联到多个检查引擎及一个内存复制控制器,其中每一个检查引擎被配置成用于通过该第一地址散列单元向该内存复制控制器发出读取请求。该第二地址散列单元偶联到该高速缓存控制器,其中该高速缓存控制器被配置成用于通过该第二地址散列单元向该多个内存口发布读取和写入请求。该第一及第二地址散列单元被配置成用于将任何给定虚拟内存地址转换成一个预先确定的基于硬件的内存地址。该第一及第二地址散列单元修改虚拟内存地址请求跨该多个内存口分布的顺序。这些内存口被配置成用于在一个基于硬件的内存地址中存储数据。这些基于硬件的地址中的每一个指的是一个子集内的这些内存口中的单独一个并且在这些内存口中的每一个内具有一个相同的相对地址。该复制因子表明这些内存口中一个数据结构的多次复制。复制的数量可能是二的指数幂。在一个给定图形内,具有相同复制因子的图形数据节点存储在一组地址中的虚拟内存中。根据其复制因子以升序及降序中的至少一种顺序为这些图形数据节点分配了虚拟内存地址。一个给定图形数据的复制因子由对该给定图形数据将被读取的频率的预测确定。一个主机或软件可以为多个图形数据的每次复制保留连续虚拟内存地址。该子集索引包括或者该虚拟内存地址的位数或者所修改的虚拟内存地址的位数,以访问这些内存口中的图形数据。【附图说明】上述将在下面如附图中所展示的对示例实施例的更具体的描述中变得清楚,在附图中类似参考符号指代所有不同视图中的相同组件。这些图不必是按比例的,相反,下文讨论的重点放在展示本专利技术的实施例上。图1是一个网络服务处理器的框图。图2是一个跨处理器可访问的多个内存口的内存复制的框级图。图3A是虚拟内存空间中的一个图形的表示。该虚拟内存空间存储了多个复制的图形数据。图3B是虚拟内存空间中的一个图形的表示。该虚拟内存空间存储了多个复制的图形数据。图4是硬件内存空间中的多个图形的表示。图5A是一个表格,展示了一个用于将图形存储在软件中的线性地址空间方案。图5B是一个表格,展示了虚拟内存地址向内存口的转换。图6是跨多个内存口具有内存复制的一个处理器的框图。图7是一个HFA单元的框图,包括多个检查引擎、一个第一地址散列单元、及一个内存复制控制器。图8A是一个表格,展示了 一个附接了四个内存口的地址散列单元。图SB是一个表格,展示了 一个附接了两个内存口的地址散列单元。【具体实施方式】下面是对示例实施例的说明。在详细说明本专利技术的示例实施例之前,下面紧接着描述了一种可以在其中执行这些实施例的示例网络安全处理器,以帮助读者理解本专利技术的创造性特征。图1是一个网络服务处理器100的框图。该网络服务处理器100使用至少一个处理器内核120提供高应用性能。该网络服务处理器100处理在所接收的数据包中封装的开放系统互联网络L2-L7层协议。如本领域技术人员所熟知的,开放系统互联(OSI)参考模型定义了七层网络协议层(L1-L7)。物理层(LI)表示将一台设备连接到一个传输媒介的实际接口,包括电气接口及物理接口。数据链路层(L2)执本文档来自技高网...

【技术保护点】
一种系统,包括:多个内存口,该多个内存口分布于多个子集中,每一个子集由一个子集索引标识,该多个内存口各自具有一个基于对应工作负载的单独等待时间;一个第一地址散列单元,该第一地址散列单元被配置成用于接收一个包括一个虚拟内存地址的读取请求,该虚拟内存地址与一个复制因子相关联,该虚拟内存地址指的是图形数据,将该复制因子转化成一个基于该虚拟内存地址的相应子集索引,并且将该虚拟内存地址转换成一个基于硬件的内存地址,该基于硬件的内存地址指的是在该相应子集索引所指示的一个子集内的这些内存口的其中至少一个中的图形数据;一个内存复制控制器,该内存复制控制器被配置成用于将对于该基于硬件的地址的读取请求指向该相应子集索引所指示的该子集内的该多个内存口中具有最低单独等待时间的一个。

【技术特征摘要】
【国外来华专利技术】2011.10.25 US 13/280,7381.一种系统,包括: 多个内存口 ,该多个内存口分布于多个子集中,每一个子集由一个子集索引标识,该多个内存口各自具有一个基于对应工作负载的单独等待时间; 一个第一地址散列单元,该第一地址散列单元被配置成用于接收一个包括一个虚拟内存地址的读取请求,该虚拟内存地址与一个复制因子相关联,该虚拟内存地址指的是图形数据,将该复制因子转化成一个基于该虚拟内存地址的相应子集索引,并且将该虚拟内存地址转换成一个基于硬件的内存地址,该基于硬件的内存地址指的是在该相应子集索引所指示的一个子集内的这些内存口的其中至少一个中的图形数据; 一个内存复制控制器,该内存复制控制器被配置成用于将对于该基于硬件的地址的读取请求指向该相应子集索引所指示的该子集内的该多个内存口中具有最低单独等待时间的一个。2.如权利要求1所述的系统,进一步包括一个第二地址散列单元,该第二地址散列单元被配置成用于接收一个对于包括至少一个虚拟内存地址的数据的写入请求,将每一个虚拟内存地址转换成一个基于硬件的内存地址,该基于硬件的内存地址指的是该多个内存口中的单独一个。3.如权利要求2所述的系统,其中该第一地址散列单元偶联到多个检查引擎及一个高速缓存控制器,其中每一个检查引擎被配置成用于通过该第一地址散列单元向该内存复制控制器发出多个读取请求,并且该第二地址散列单元与该高速缓存控制器偶联,其中该高速缓存控制器被配置成用于通过该第二地址散列单元向该多个内存口发出多个读取和写入请求。4.如权利要求2所述的系统,其中该第一及第二地址散列单元被配置成用于修改虚拟内存地址请求跨该多个内存口分布的顺序。5.如权利要求2所述的系统,其中该多个内存口被配置成用于在一个基于硬件的内存地址中存储数据。6.如权利要求2所述的系统,其中该第二地址散列单元被配置成用于将任何给定虚拟内存地址转换成一个预先确定的基于硬件的内存地址。7.如权利要求1所述的系统,其中该第一地址散列单元被配置成用于将任何给定虚拟存储地址转换成一个预先确定的基于硬件的内存地址。8.如权利要求1所述的系统,其中这些基于硬件的地址中的每一个指的是一个子集内的该多个内存口中的单独一个,在该多个内存口中的每一个内具有一个相同的相对地址。9.如权利要求1所述的系统,其中该复制因子表明该多个内存口中一个数据结构的多次复制。10.如权利要求1所述的系统,其中复制的数量是二的指数幂。11.如权利要求1所述的系统,其中一个给定图形数据的复制因子由对该给定图形数据将被读取的频率的预测确定。12.如权利要求1所述的系统,其中在一个给定图形内,具有相同复制因子的图形数据节点存储在一组地址中的虚拟内存中,并且根据其复制因子以升序及降序中的至少一种顺序为这些图形数据节点分配虚拟内存地址。13.如权利要求1所述的系统,其中一个主机或软件具有用于多个图形数据的每次复制的保留的连续虚拟内存地址。14.如权...

【专利技术属性】
技术研发人员:J·潘伯恩G·A·鲍查德R·戈亚尔R·E·凯斯勒
申请(专利权)人:凯为公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1