一种扩展同步内存总线功能的方法和装置的制造方法

文档序号:9375526阅读:340来源:国知局
一种扩展同步内存总线功能的方法和装置的制造方法
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种扩展同步内存总线功能的方法和装置。
【背景技术】
[0002]随着多核时代的进化和大数据时代的来临,计算机系统对于大容量内存的需求不断加强。多核处理器可以将多个并发应用放在一个芯片上运行,需要的内存也就是所有应用数据需求的总和。而最新出现的以Spark为代表的内存计算模式,在处理大数据应用时,会尝试将工作集常驻内存,以避免缓慢的磁盘操作。这都说明大容量内存已成为影响性能的决定性因素。
[0003]近年来以电阻存储器(RRAM, Resistive random-access memory)、铁电存储器(FeRAM,Ferroelectric random-access memory)、相变存储器(PCM,Phase Change Memory)等为代表的新兴非易失性随机存储介质(NVM, Non-volatile memory)的访问性能在逐步逼近动态随机访问存储器(DRAM, Dynamic Random Access Memory)。基于新型存储器件和传统DRAM设计新型混合内存体系的思想也逐渐被人们所接受。异构存储可以在保持成本和能耗优势的前提下大幅提升内存容量,克服内存和外存之间的1/0性能不匹配,将成为优化大数据处理的重要思路。
[0004]经过以上分析可以看出,内存系统在容量、介质等方面都面临更高的要求,需要不断的扩展。但是处理器和内存之间传输数据的业界标准SDRAM (Synchronous DynamicRandom Access Memory,同步动态随机访问存储器)总线采用固定时序访问内存颗粒,而固定的响应延迟不利于实现容量级联扩充,也给搭建混合内存系统带来困难。
[0005]为了解决现有技术中存在的问题,现有的技术是通过扩展芯片连接多个内存芯片或者其他存储介质实现容量的扩展。下面根据图1进行说明,图1中包括处理器(Processor) 101,系统内存102,内存扩展芯片103,以及扩展内存104,其中,处理器系统101中集成了处理器1011,内存控制器1012和10控制器1013,其中,在处理器系统101内部,处理器1011和内存控制器1012以及10控制器1013通过片上总线1014相连。系统内存102通过内存总线105和处理器系统101相连,扩展内存104通过内存总线105和内存扩展芯片103相连,处理器系统101通过10控制器1012和内存扩展芯片103可以采用多种方式总线相连接。
[0006]现有技术一的实现方式是采用1/0总线或处理器间互联总线来连接处理器系统 101 和内存扩展芯片 103,常用的总线为 PC1-E (Peripheral Component InterconnectExpress,高速外设部件互连标准)、Intel QPI (Quick Path Interconnect,快速通道互连)或者AMD HT (Hyper Transport,超级传输)总线。采用上述总线,会存在延迟较大的问题,且需要对内存扩展芯片103进行精细的流水线设计,以此掩盖数据访问的延迟。另外,由于内存扩展芯片采用了不同的1/0总线,处理器会与内存扩展芯片之间存在兼容性问题,比如基于ARM处理器搭建的服务器系统,如果没有Intel的授权,就无法通过IntelQPI内存扩展芯片扩充内存系统的容量。
[0007]现有技术二的实现方式是采用内存总线来连接处理器系统101和内存扩展芯片103,采用内存总线105能够使得内存扩展芯片103和处理器系统101能够直接共享扩展内存104,访存的延迟较小,也具备了更好的兼容性。但是现有技术二中也存在如下问题:由于在处理器系统101和扩展内存104之间存在内存扩展芯片103,当处理器系统101发出对扩展内存104中的数据进行访问的内存访问请求后,集成内存控制器1011接受该内存访问请求后,采用DDR协议访问扩展内存104时,内存扩展芯片103的存在带来了额外的时延,使得内存访问请求的处理结果无法按照DDR协议要求的时延内返回,从而影响上述计算机系统对扩展内存104访问的可行性。为了解决时延的问题,现有技术二一般采用修改内存控制器的时序参数的方式,即通过对处理器内部集成的内存控制器的时序参数进行修改,使得处理器的时序参数大于内存实际的内存访问延迟,但是由于处理器支持的最大时序参数设置范围有限,很难补偿访问扩展内存过程中额外的访问延迟。

【发明内容】

[0008]针对现有技术的不足,本发明提出一种扩展同步内存总线功能的方法和装置。
[0009]本发明还提出一种扩展同步内存总线功能的装置,包括:
[0010]处理器、辅助访存模块、扩展内存控制器;
[0011 ] 其中,处理器用于生成内存访问请求,并将所述内存访问请求发送给辅助访存模块;
[0012]所述辅助访存模块,用于根据所述内存访问请求中所包含的地址属性信息,判断所述内存访问请求为访问系统内存或是扩展内存,若为访问所述系统内存,则将所述内存访问请求发送给内存控制器,若为访问扩展内存,则生成目标地址为扩展内存控制器的访存请求;
[0013]所述扩展内存控制器,用于接收所述目标地址为扩展内存控制器的访存请求,并将所述访问请求发给扩展内存。
[0014]所述的扩展同步内存总线功能的装置,所述辅助访存模块,还用于根据所述扩展内存控制器的返回结果判断访问扩展内存是否结束,如果所述返回结果为除例外标记数据之外的数据,则将所述返回结果发给处理器,否则再生成一条新的目标地址为所述扩展内存控制器的访存请求。
[0015]所述的扩展同步内存总线功能的装置,所述辅助访存模块还包括令牌计数器,所述令牌计数器的初始值设为扩展内存控制器可缓存的最大写请求数目,每当所述辅助访存模块发出一个写请求后,所述令牌计数器的值减1,当所述令牌计数器的值降为O后,所述辅助访存模块就停止接收处理器访问扩展内存的写请求;令牌释放计数器,在扩展内存控制器,所述扩展内存控制器将缓存的写请求数据写到扩展内存中后,所述令牌释放计数器的值加I,所述辅助访存模块定时访问所述令牌释放计数器,并恢复所述令牌计数器的值。
[0016]所述的扩展同步内存总线功能的装置,所述内存控制器用于根据所述内存访问请求中所包含的地址属性信息,判断所述内存访问请求访问系统内存或是扩展内存,当确定为访问系统内存,将所述内存访问请求发送给所述系统内存,当确定为访问所述扩展内存时,将所述内存访问请求发送给所述扩展内存控制器。
[0017]所述的扩展同步内存总线功能的装置,扩展内存控制器至少包括执行模块,用于执行对所述扩展内存中待访问数据的读取操作;数据缓冲器,用于暂存所述执行模块从所述扩展内存中读取待访问数据;
[0018]其中执行模块每收到一个访问所述扩展内存的请求,优先检查所述数据缓冲器中是否保存了需要的数据,如果有,则在内存总线上直接返回所述需要的数据,否则返回一个例外标记数据,并访问所述扩展内存,将获取到的数据存入所述数据缓冲器。
[0019]所述的扩展同步内存总线功能的装置,还包括片上总线,所述片上总线支持请求乱序返回,请求发起者的每一个读请求都附带一个请求标记,当请求接收方返回数据的时候同时返回数据所属请求的请求标记。
[0020]本发明还提出一种实施于本发明装置的扩展同步内存总线功能的方法,包括:
[0021]步骤1,生成内存访问请求,并将所述内存访问请求发送给辅助访存模块;
[0022]步骤2,根据所述内存访问请求中所包含的地址属性信息,判断所述内存访问请求为访问系统内存或是扩展内存,若为访问所述系统内存,则将所述内存访问请求发送给内存控制器,若为访问扩展内存,则生成目标地址为扩展内存控制器的访存请求;
[0023]步骤3,扩展内存控制器接收所述目标地址为扩展内存控制器的访存请求,并将所述访问请求发给扩展内存。
[0024]所述的扩展同步内存总线功能的方法,所述步骤2还包括根据所述扩展内存控制器的返回结果判断访问扩展内存是否结束,如果所述返回结果为除例外标记数据之外的数据,则将所述返回结果发给处理器,否则再生成一条新的目标地址为所述扩展内存控制器的访存请求。
[0025]所述的扩展同步内存总线功能的方法,还包括存储所述处理器执行过程中的运算数据。
[0026]所述的扩展同步内存总线功能的方法,还包括:每收到一个访问所述扩展内存的请求,优先检查所述数据缓冲器中是否保存了需要的数据,如果有,则在内存总线上直接返回所述需要的数据,否则返回一个例外标记数据,并访问所述扩展内存,将获取到的数据存入所述数据缓冲器。
[0027]由以上发明可知,本发明的优点在于:
[0028]辅助访存模块是一个支持标准片上总线的硬件模块,可以方便的在处理器和内存控制器之间插入而无需修改其他模块。辅助访存模块监测处理器的访存请求,识别出属于访问扩展内存的请求并代替处理器与内存扩展芯片交互,运行在处理器上的软件不用修改就可以顺利访问扩展内存而无需考虑延迟不匹配,带宽不匹配等问题。采用本发明的方案,即可以应用于不同型号的处理器(只要其提供了标准SDRAM接口,如DDR、DDR2、DDR3、DDR4等),内存扩展芯片也可以连接不同介质的存储资源,能广泛用于各种场景下搭建高扩展能力的内存子
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1