一种消息式内存访问装置及其访问方法制造方法及图纸

技术编号:7612835 阅读:851 留言:0更新日期:2012-07-26 20:43
一种消息式内存访问装置及其访问方法,包括:消息式命令总线,用于传输CPU生成的消息式访存指令,指示内存系统完成相应操作;消息式内存控制器,用于将CPU的请求包装成消息包发送给存储模块,并解析存储模块返回的消息包将数据返给CPU;消息通道,用于请求和应答消息包传送的通路;存储模块,含有缓冲调度器,用于接收消息式内存控制器的请求包,完成相应的请求。

【技术实现步骤摘要】

本专利技术涉及计算机系统设计领域,尤其涉及。
技术介绍
计算机的内存系统是影响体系结构和软件效能的重要因素之一。过去几十年,由于处理器与内存之间的性能差距越来越大,内存系统已成为制约系统性能的瓶颈。近年来随着处理器向多核、众核结构的转变,内存系统的访问带宽问题变得日益突出,已经制约了多核处理器规模的进一步扩展。多年来,提高内存有效访问带宽的主要途径是依靠提高总线频率和数据通道数,也就是提高物理带宽。而基于同步总线式的访存体系结构多年来没有大的改变。 SDRAM (Synchronous Dynamic Random Access Memory,同步式随机动态存储器)出现于上世纪90年代中期,经历SDR,DDR, DDR2,DDR3,一直发展到即将发布的DDR4。SDRAM使用同步接口,所有的请求都要等待固定的时钟周期才能得到回应。自从SDRAM发布以来,内存总线的结构基本没有发生本质的变化。SDRAM的发展途径基本上是通过不断的提高接口频率来提高带宽。目前国际上已经开始了对内存结构转变的尝试。如Rambus公司的RDRAM和XDR技术中,采用了基于包的请求/应答的协议,利用相对窄但数据率高的串联内存总线来传送数据包。Intel的FB-DIMM则在内存板(DIMM)上增加一个缓冲芯片(AWB,Advanced Memory Buffer),从而可以通过高速的串行通道连接内存控制器或者相邻DIMM上的AMB。LRDIMM、 DDR4等技术也采用了类似的全数据缓冲,来提高高频信号的质量。但这些只是部分的改变, 也就是实现了数据传输的从并行总线向包格式的转化,而从时序要求上仍然延续同步访问协议。现有的同步式内存系统设计主要为了保证单次内存访问的延迟固定且较小。但在多核条件下,内存访问的延迟实际上包括在处理器访存队列的等待时间和访问内存通道的延迟两部分。显然,仅仅保证后者的延迟小并不能保证总体内存访问的性能。另一方面,传统的内存访问的数据粒度是固定不变的,而且有增大的趋势。这是为了保证在一次传送周期传送的更多数据,每次读取数据基本上都是CPUCache行的长度。但是真实程序中,实际每次数据访问的粒度是变化的。对于有些应用数据访问是无规则且粒度很小的,这样每次访问的固定的大数据粒度必然造成浪费;而对有些应用需要大量连续数据读写时,又需要将整个数据访问分割成多个内存事务进行,从而增加协议上的开销。这些实际上都造成了对访存带宽的浪费。
技术实现思路
为解决上述问题,本文提供了。本专利技术的目的是提高CPU内存通道的有效利用率,提出了。本专利技术公开了一种消息式内存访问装置,包括消息式命令总线,用于传输CPU生成的消息式访存指令,指示内存系统完成相应操作;消息式内存控制器,用于将CPU的请求包装成消息包发送给存储模块,并解析存储模块返回的消息包将数据返给CPU ;消息通道,用于请求和应答消息包传送的通路;存储模块,含有缓冲调度器,用于接收消息式内存控制器的请求包,完成相应的请求。所述消息式命令总线还用于指定请求的访存长度,访存长度可大于或小于寄存器的长度;请求的数据可返回至cache,或返回至CPU可寻址缓冲区,或不经cache返回至寄存器或寄存器组;请求可附带数据访问优先级信息,用于指导消息式内存控制器和缓冲调度器中访存命令的调度,为内存系统提供调度依据。所述消息式内存控制器还包括访存请求接口,用于CPU与消息式内存控制器进行请求交互的接口。读写请求分配器,用于根据读写请求保留站的状态,控制能否将从访存请求接口接收到的访存请求插入到读请求状态表或是写请求状态表中,如果接收到的请求是写请求,则需要将写入到内存的数据暂存在写数据缓冲区中。写数据缓冲区,用于暂存写请求的数据。 读数据缓冲区,用于暂存读请求的数据。读写请求保留站,由读请求状态表和写请求状态表两部分组成,用于请求状态表为每个新接收的请求分配一个表项,在请求被缓冲调度器响应或是消息式内存控制器将请求响应给CPU时,请求状态表中对应的表项需要被更新或删除。所述消息式内存控制器还包括请求生成与调度器,用于一方面根据请求状态表中请求的属性如请求长度和定时时延等生成多个小的请求;另一方面用于调度,从读请求状态表和写请求状态表中未完成的请求中选择下一时刻需要处理的请求。被选择的请求发送给消息打包器;消息打包器,用于将一个或多个请求封装成消息通道上的消息包格式,并通过消息通道接口发送给缓冲调度器;消息解包器,用于从消息包中抽取出一个或多个请求,以及解析每个请求对应的数据内容;请求状态更新单元,用于根据消息解包器解析出来的请求及其数据,更新请求在读写请求保留站中的状态表,以及将数据暂存到读数据缓冲区;请求响应控制器,用于向CPU发送请求的响应;控制器配置接口,用于配置消息式内存控制器的参数,或是指定请求的属性,对某个请求或访存地址的配置,会将相应的值更新到读写请求状态表的属性中;消息通道接口,用于与缓冲调度器互相传递消息包,针对消息通道的不同物理实现,消息通道接口也有对应的接口类型。所述读写请求保留站中读请求状态表的条目号对应请求在请求状态表中的序号, 消息式内存控制器和缓冲调度器的消息包中采用这个条目号来唯一指定被处理的请求,请求地址是待访问内存的首地址,定时时延指定了该请求需要返回给CPU的时间,通过控制器配置接口来设置的,返回粒度由消息式内存控制器每次返回给CPU的数据长度组成,数据状态是标识出已经从存储模块获取请求需要的数据,并标识出空数据,数据位置是标识已获取的请求数据存放在读数据缓冲区中的位置。所述请求响应控制器还用于查询读写请求保留站中请求的状态,当CPU发送过来的请求被缓冲调度器和存储模块处理完成后,请求响应控制器向CPU发送请求的响应,如果是读请求被完成,则同时需要发送读数据缓冲区中请求对应的数据。所述消息式内存控制器,与存储模块之间的交互是基于消息包完成的,还用于每个消息包包括一个或多个访存请求或应答的信息;消息包中的请求没有同步时序的限制, 有请求返回的最大时延信息;消息式内存控制器配置接口单元提供了消息式内存控制器特有的命令地址空间, 允许对控制器的属性进行配置,允许设置访存请求的属性,可以发出相应的访存命令。所述消息式内存控制器还用于对消息式内存控制器及命令地址空间通过相应的访存命令,支持内存系统定时推送数据至寄存器或可寻址高速缓冲区;支持在存储系统内部执行简单的算术逻辑运算和移动操作,并可设定访存的原子性,或批量执行;读写请求保留站提供了读请求状态表和写请求状态表,每个被处理的请求都会在对应的读或写请求状态表中存在对应的表项,每个表项包括请求的地址和长度,包括请求的定时返回时延、返回粒度、数据状态和数据位置,在消息包中,每个请求都用其在请求状态表中唯一的条目号进行确定;消息式内存控制器允许一个消息包包括了多个请求的信息,可以将每个请求分成一个或多个消息包传递到存储模块,还允许一个请求由存储模块通过一个或多个消息包来完成;所述消息式内存控制器,多个请求或者一个请求的多个消息包之间可以乱序返回。所述消息式内存控制器还用于如果一个读请求被多个存储模块的消息包应答时, 请求对应的读请求状态表中的数据状态标识已返回的数据和未返回的数据;未全部返回的数据可以存本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈明宇阮元崔泽汉陈荔城黄永兵陈明扬
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:

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

1
相关领域技术