存储器控制器制造技术

技术编号:25608958 阅读:15 留言:0更新日期:2020-09-12 00:03
本发明专利技术公开一种存储器控制器电路(100),其可耦合到第一存储器电路(125),例如DRAM,并且包含:第一存储器控制电路(155),其从所述第一存储器电路读取或对所述第一存储器电路写入;第二存储器电路(175),例如SRAM;第二存储器控制电路(160),其被调适成当所述所请求的数据存储于所述第二存储器电路中时,响应于读取的读取请求而从所述第二存储器电路读取,否则将所述读取请求传送到所述第一存储器控制电路;预定原子操作电路系统(185);和可编程原子操作电路系统(135),其被调适成执行至少一个可编程原子操作。所述第二存储器控制电路还将接收到的可编程原子操作请求传送到所述可编程原子操作电路系统并且针对所述第二存储器电路的高速缓存行设置危险位。

【技术实现步骤摘要】
【国外来华专利技术】存储器控制器相关申请案的交叉引用本申请案是专利技术人TonyM.Brewer在2018年1月29日申请的标题为“具有集成式定制原子单元的存储器控制器(MemoryControllerwithIntegratedCustomAtomicUnit)”的第62/623,331号美国临时专利申请案的非临时案并且主张其权益和优先权,所述临时专利申请案特此共同转让,且其全部内容由此以全文引用的方式并入本文中,具有相同的完整效力和作用,就如同在本文中完整阐述一般。
本专利技术大体涉及存储器控制器,并且更具体地说,涉及提供预定和可编程原子操作并且减少反复存取的存储器方位的时延的存储器控制器。关于联邦赞助的研究或开发的声明本专利技术是在政府支持下在由国防部(DOD-DARPA)授予的第HR0011-16-3-0002号合约下进行的。政府在本专利技术中享有一定权利。
技术介绍
存储器控制器普遍用于计算技术等中,存储器控制器控制接取以读取来自存储器电路的数据,将数据写入到存储器电路,以及刷新保持于存储器电路中的数据。多种多样的存储器控制器是可购得的且被设计成大体适用于广泛范围的应用,但不针对包含机器学习和人工智能(“AI”)应用的特定应用进行优化。因此,持续需要具有高性能且高效节能的存储器控制器。这类存储器控制器应提供对要求大量且高度频繁存储器存取的计算密集型内核或操作的支持,所述计算密集型内核或操作例如性能可受到应用可对存储于存储器中的数据存取的速度限制,例如用于执行快速傅里叶变换(“FFT”)操作、有限脉冲响应(“FIR”)滤波的应用,以及其它通常用于较大应用(例如合成孔径雷达(例如,需要频繁接取存储于存储器中的表))中的计算密集型操作,例如但不限于5G网络连接和5G基站操作、机器学习、AI、模板代码操作,以及图表分析操作,例如使用光谱技术的图聚类。这类存储器控制器还应针对高处理量和低时延进行优化,包含用于原子操作的高处理量和低时延。这类存储器控制器还应提供广泛范围的原子操作,包含预定原子操作以及可编程或用户定义的原子操作。
技术实现思路
如下文更详细地论述,代表性设备、系统和方法提供具有高性能并且高效节能的存储器控制器。所述存储器控制器的代表性实施例提供对要求大量且高度频繁存储器存取的计算密集型内核或操作的支持,所述计算密集型内核或操作例如用于执行快速傅里叶变换(“FFT”)操作、有限脉冲响应(“FIR”)滤波的计算密集型内核或操作,以及其它通常用于较大应用(例如合成孔径雷达)中的计算密集型操作,例如但不限于5G网络连接和5G基站操作、机器学习、AI、模板代码操作,以及图表分析操作,例如使用光谱技术的图聚类。所述存储器控制器的代表性实施例针对高处理量和低时延经优化,包含用于原子操作的高处理量和低时延。所述存储器控制器的代表性实施例还提供广泛范围的原子操作,包含预定原子操作以及可编程或用户定义的原子操作。当使用架构模拟器进行评估时,所述存储器控制器的代表性实施例产生显著结果。举例来说,与当前技术发展水平的X86服务器平台相比,所述存储器控制器的代表性实施例使用标准GDDR6DRAM存储器提供三倍以上(3.48x)的更佳原子更新性能。并且,举例来说,也是与当前技术发展水平的X86服务器平台相比,所述存储器控制器的代表性实施例使用经修改GDDR6DRAM存储器(具有更多存储器库)提供十七倍(17.6x)的更佳原子更新性能。所述存储器控制器的代表性实施例还提供极低时延和高处理量存储器读取和写入操作,所述操作通常仅受存储器库可用性、错误校正开销和通信网络上可用的带宽(Gb/s)以及存储器和高速缓存器装置本身限制,从而在达成最大带宽之前具有平坦时延。所述存储器控制器的代表性实施例还为可编程或用户定义的原子操作提供与预定原子操作的性能相当的极高性能(高处理量和低时延)。并非执行多个存储器存取,而是响应于指定可编程原子操作和存储器地址的原子操作请求,所述存储器控制器中的电路系统将原子操作请求传送到可编程原子操作电路系统并且设置存储于存储器危险寄存器中的对应于用于原子操作中的存储器行的存储器地址的危险位,以确保在所述存储器行上不执行其它操作(读取、写入或原子),接着在完成原子操作后即刻清除所述危险位。经提供用于可编程原子操作电路系统135执行可编程或用户定义的原子操作的额外直接数据路径允许额外写入操作,不具有通信网络的带宽施加的任何限制,且不会增加通信网络的任何拥塞。在代表性实施例中,一种存储器控制器电路可耦合到第一存储器电路,其中所述存储器控制器包括:第一存储器控制电路,其可耦合到所述第一存储器电路,所述第一存储器控制电路被调适成响应于读取请求而从所述第一存储器电路读取或加载所请求的数据并且响应于写入请求而将所请求的数据写入或存储到所述第一存储器电路;第二存储器电路;第二存储器控制电路,其耦合到所述第二存储器电路,所述第二存储器控制电路被调适成当所述所请求的数据存储于所述第二存储器电路中时,响应于读取的读取请求而从所述第二存储器电路读取或加载所述所请求的数据,并且当所述所请求的数据不存储于所述第二存储器电路中时,将所述读取请求传送到所述第一存储器控制电路;预定原子操作电路系统,其被调适成响应于指定多个预定原子操作中的至少一个预定原子操作的原子操作请求而执行所述至少一个预定原子操作;和可编程原子操作电路系统,其被调适成响应于指定多个可编程原子操作中的至少一个可编程原子操作的原子操作请求而执行所述至少一个可编程原子操作。在另一代表性实施例中,一种存储器控制器电路可耦合到第一存储器电路,其中所述存储器控制器包括:第一存储器控制电路,其可耦合到所述第一存储器电路,所述第一存储器控制电路被调适成响应于读取请求而从所述第一存储器电路读取或加载所请求的数据并且响应于写入请求而将所请求的数据写入或存储到所述第一存储器电路;可编程原子操作电路系统,其耦合到所述第一存储器控制电路,所述可编程原子操作电路系统被调适成响应于指定多个可编程原子操作中的至少一个可编程原子操作的原子操作请求而执行所述至少一个可编程原子操作;第二存储器电路;和第二存储器控制电路,其耦合到所述第二存储器电路和所述第一存储器控制电路,所述第二存储器控制电路被调适成响应于指定所述至少一个可编程原子操作和存储器地址的原子操作请求,将所述原子操作请求传送到所述可编程原子操作电路系统并且设置存储于存储器危险寄存器中的对应于所述存储器地址的危险位。在代表性实施例中,所述多个预定原子操作可包括选自由以下组成的群组的至少两个预定原子操作:提取并AND、提取并OR、提取并XOR、提取并相加、提取并相减、提取并递增、提取并递减、提取并最小化、提取并最大化、提取并交换、比较并交换,以及其组合。在代表性实施例中,可编程原子操作电路系统可包括:指令高速缓存器,其存储对应于所述至少一个可编程原子操作的多个处理器指令;执行队列,其存储对应于所述可编程原子操作的线程识别符;核心控制电路,其耦合到所述指令高速缓存器并且耦合到所述执行队列,所述核心控制电路被调适成响本文档来自技高网
...

【技术保护点】
1.一种存储器控制器电路,其可耦合到第一存储器电路,所述存储器控制器包括:/n第一存储器控制电路,其可耦合到所述第一存储器电路,所述第一存储器控制电路被调适成响应于读取请求而从所述第一存储器电路读取或加载所请求的数据并且响应于写入请求而将所请求的数据写入或存储到所述第一存储器电路;/n第二存储器电路;/n第二存储器控制电路,其耦合到所述第二存储器电路,所述第二存储器控制电路被调适成当所述所请求的数据存储于所述第二存储器电路中时,响应于读取的读取请求而从所述第二存储器电路读取或加载所述所请求的数据,并且当所述所请求的数据不存储于所述第二存储器电路中时,将所述读取请求传送到所述第一存储器控制电路;/n预定原子操作电路系统,其被调适成响应于指定多个预定原子操作中的至少一个预定原子操作的原子操作请求而执行所述至少一个预定原子操作;和/n可编程原子操作电路系统,其被调适成响应于指定多个可编程原子操作中的至少一个可编程原子操作的原子操作请求而执行所述至少一个可编程原子操作。/n

【技术特征摘要】
【国外来华专利技术】20180129 US 62/623,3311.一种存储器控制器电路,其可耦合到第一存储器电路,所述存储器控制器包括:
第一存储器控制电路,其可耦合到所述第一存储器电路,所述第一存储器控制电路被调适成响应于读取请求而从所述第一存储器电路读取或加载所请求的数据并且响应于写入请求而将所请求的数据写入或存储到所述第一存储器电路;
第二存储器电路;
第二存储器控制电路,其耦合到所述第二存储器电路,所述第二存储器控制电路被调适成当所述所请求的数据存储于所述第二存储器电路中时,响应于读取的读取请求而从所述第二存储器电路读取或加载所述所请求的数据,并且当所述所请求的数据不存储于所述第二存储器电路中时,将所述读取请求传送到所述第一存储器控制电路;
预定原子操作电路系统,其被调适成响应于指定多个预定原子操作中的至少一个预定原子操作的原子操作请求而执行所述至少一个预定原子操作;和
可编程原子操作电路系统,其被调适成响应于指定多个可编程原子操作中的至少一个可编程原子操作的原子操作请求而执行所述至少一个可编程原子操作。


2.根据权利要求1所述的存储器控制器电路,其中所述多个预定原子操作包括选自由以下组成的群组的至少两个预定原子操作:提取并AND、提取并OR、提取并XOR、提取并相加、提取并相减、提取并递增、提取并递减、提取并最小化、提取并最大化、提取并交换、比较并交换,以及其组合。


3.根据权利要求1所述的存储器控制器电路,其中所述可编程原子操作电路系统包括:
指令高速缓存器,其存储对应于所述至少一个可编程原子操作的多个处理器指令;
执行队列,其存储对应于所述可编程原子操作的线程识别符;
核心控制电路,其耦合到所述指令高速缓存器并且耦合到所述执行队列,所述核心控制电路被调适成响应于对应于所述可编程原子操作的所述线程识别符,选择所述指令高速缓存器中的开始或下一指令或指令地址以用于执行所述可编程原子操作;和
处理器核心,其被调适成执行用于所述可编程原子操作的至少一个指令并且产生所得数据。


4.根据权利要求3所述的存储器控制器电路,其中所述可编程原子操作电路系统另外包括:
存储器控制器接口电路,其耦合到所述处理器核心并且接收所述所得数据并将所述所得数据传送到所述第二存储器控制电路以将所述所得数据写入到所述第二存储器电路。


5.根据权利要求4所述的存储器控制器电路,其另外包括:
网络通信接口,其可耦合到通信网络并且耦合到所述存储器控制器接口电路,所述网络通信接口被调适成准备并在所述通信网络上发射具有所述所得数据的响应数据分组。


6.根据权利要求3所述的存储器控制器电路,其中所述可编程原子操作电路系统另外包括:
至少一个数据缓冲器,其存储从执行用于所述可编程原子操作的所述至少一个指令产生的操作数数据和中间结果。


7.根据权利要求3所述的存储器控制器电路,其中所述可编程原子操作电路系统另外包括:
网络命令队列,其耦合到所述处理器核心,所述网络命令队列存储所得数据;和
网络通信接口,其耦合到所述网络命令队列并且可耦合到通信网络,所述网络通信接口被调适成准备并在所述通信网络上发射具有所述所得数据的响应数据分组。


8.根据权利要求3所述的存储器控制器电路,其中所述处理器核心耦合到数据缓冲器,且其中所述处理器核心被进一步调适成执行加载非缓冲指令以确定操作数是否存储于所述数据缓冲器中,并且当所述数据不存储于所述数据缓冲器中时,产生发到所述第二存储器控制电路的读取请求。


9.根据权利要求3所述的存储器控制器电路,其中所述处理器核心被进一步调适成执行存储并清除锁定指令以产生发到所述第二存储器控制电路的原子写入请求,所述原子写入请求具有所述所得数据和用以在将所述所得数据写入到所述第二存储器电路之后重置或清除存储器危险位的指定。


10.根据权利要求3所述的存储器控制器电路,其中所述处理器核心被进一步调适成执行原子返回指令以在将所述所得数据写入到所述第二存储器电路之后重置或清除存储器危险位。


11.根据权利要求3所述的存储器控制器电路,其中所述处理器核心被进一步调适成执行原子返回指令以产生具有所述所得数据的响应数据分组。


12.根据权利要求3所述的存储器控制器电路,其中所述处理器核心被进一步调适成执行原子返回指令以完成原子操作。


13.根据权利要求1所述的存储器控制器电路,其中指定所述至少一个可编程原子操作的所述原子操作请求包括物理存储器地址、预定原子操作识别符和至少一个线程状态寄存器值。


14.根据权利要求13所述的存储器控制器电路,其中所述可编程原子操作电路系统另外包括:
至少一个寄存器,其存储线程状态信息。


15.根据权利要求14所述的存储器控制器电路,其中所述可编程原子操作电路系统被进一步调适成响应于接收到指定所述至少一个可编程原子操作的所述原子操作请求,用所述物理存储器地址、对应于所述存储器地址的任何数据以及所述至少一个线程状态寄存器值来初始化所述至少一个寄存器。


16.根据权利要求1所述的存储器控制器电路,其另外包括:
网络通信接口,其可耦合到通信网络并且耦合到所述第一存储器控制电路和所述第二存储器控制电路,所述网络通信接口被调适成解码从所述通信网络接收的多个请求分组,并且准备并在所述通信网络上发射多个响应数据分组。


17.根据权利要求1所述的存储器控制器电路,其中所述可编程原子操作电路系统被调适成执行用户定义的原子操作、多循环操作、浮点操作和多指令操作。


18.根据权利要求1所述的存储器控制器电路,其另外包括:
写入合并电路,其被调适成将从所述第一存储器电路读取的数据写入或存储到所述第二存储器电路。


19.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成当所述所请求的数据存储于所述第二存储器电路中时,响应于原子操作请求而从所述第二存储器电路读取或加载所述所请求的数据,并且当所述所请求的数据不存储于所述第二存储器电路中时,将所述原子操作请求传送到所述第一存储器控制电路。


20.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成响应于写入请求或响应于原子操作请求而将数据写入或存储到所述第二存储器电路。


21.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成响应于指定所述第二存储器电路中的存储器地址的写入请求,设置存储于存储器危险寄存器中的对应于所述存储器地址的危险位,并且在将数据在所述存储器地址处写入或存储到所述第二存储器电路之后,重置或清除所述设置的危险位。


22.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成响应于具有写入数据并且指定所述第二存储器电路中的存储器地址的写入请求,将存储于所述存储器地址处的当前数据传送到所述第一存储器控制电路以将所述当前数据写入到所述第一存储器电路,并且用所述写入数据覆写所述第二存储器电路中的所述当前数据。


23.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成响应于具有写入数据并且指定所述第二存储器电路中的存储器地址的写入请求,设置存储于存储器危险寄存器中的对应于所述存储器地址的危险位,将存储于所述存储器地址处的当前数据传送到所述第一存储器控制电路以将所述当前数据写入到所述第一存储器电路,用所述写入数据覆写所述第二存储器电路中的所述当前数据,并且在将所述写入数据在所述存储器地址处写入或存储到所述第二存储器电路之后,重置或清除所述设置的危险位。


24.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成响应于指定所述至少一个可编程原子操作和存储器地址的原子操作请求,将所述原子操作请求传送到所述可编程原子操作电路系统并且设置存储于存储器危险寄存器中的对应于所述存储器地址的危险位。


25.根据权利要求1所述的存储器控制器电路,其中所述第二存储器控制电路被进一步调适成响应于指定所述至少一个预定原子操作和存储器地址的原子操作请求,将所述原子操作请求传送到所述预定原子操作电路系统,设置存储于存储器危险寄存器中的对应于所述存储器地址的危险位,将来自所述预定原子操作的所得数据写入于所述第二存储器电路中,并且在写入所述所得数据之后,重置或清除所述设置的危险位。


26.根据权利要求1所述的存储器控制器电路,其中所述第一存储器控制电路包括:
多个存储器库请求队列,其存储发到所述第一存储器电路的多个读取或写入请求;
调度器电路,其耦合到所述多个存储器库请求队列,所述调度器被调适成从所述多个存储器库请求队列选择所述多个读取或写入请求中的一读取或写入请求并且调度所述读取或写入请求以用于存取所述第一存储器电路;和
第一存储器存取控制电路,其耦合到所述调度器,所述第一存储器存取控制电路被调适成从所述第一存储器电路读取或加载数据并且将数据写入或存储到所述第一存储器电路。


27.根据权利要求26所述的存储器控制器电路,其中所述第一存储器控制电路另外包括:
多个存储器请求队列,其存储多个存储器请求;
请求选择多路复用器,其从所述多个存储器请求队列选择存储器请求;
多个存储器数据队列,其存储对应于所述多个存储器请求的数据;和
数据选择多路复用器,其从所述多个存储器数据队列选择数据,所述所选择的...

【专利技术属性】
技术研发人员:T·M·布鲁尔
申请(专利权)人:美光科技公司
类型:发明
国别省市:美国;US

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

1