【技术实现步骤摘要】
【国外来华专利技术】存储器控制器相关申请案的交叉引用本申请案是专利技术人TonyM.Brewer在2018年1月29日申请的标题为“具有集成式定制原子单元的存储器控制器(MemoryControllerwithIntegratedCustomAtomicUnit)”的第62/623,331号美国临时专利申请案的非临时案并且主张其权益和优先权,所述临时专利申请案特此共同转让,且其全部内容由此以全文引用的方式并入本文中,具有相同的完整效力和作用,就如同在本文中完整阐述一般。
本专利技术大体涉及存储器控制器,并且更具体地说,涉及提供预定和可编程原子操作并且减少反复存取的存储器方位的时延的存储器控制器。关于联邦赞助的研究或开发的声明本专利技术是在政府支持下在由国防部(DOD-DARPA)授予的第HR0011-16-3-0002号合约下进行的。政府在本专利技术中享有一定权利。
技术介绍
存储器控制器普遍用于计算技术等中,存储器控制器控制接取以读取来自存储器电路的数据,将数据写入到存储器电路,以及刷新保持于存储器电路中的数据。多种多样的存储器控制器是可购得的且被设计成大体适用于广泛范围的应用,但不针对包含机器学习和人工智能(“AI”)应用的特定应用进行优化。因此,持续需要具有高性能且高效节能的存储器控制器。这类存储器控制器应提供对要求大量且高度频繁存储器存取的计算密集型内核或操作的支持,所述计算密集型内核或操作例如性能可受到应用可对存储于存储器中的数据存取的速度限制,例如用于执行快速傅里叶变换(“FFT”)操 ...
【技术保护点】
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所述的存储器控制器电路,其中所述第一存储器控制电路另外包括:
多个存储器请求队列,其存储多个存储器请求;
请求选择多路复用器,其从所述多个存储器请求队列选择存储器请求;
多个存储器数据队列,其存储对应于所述多个存储器请求的数据;和
数据选择多路复用器,其从所述多个存储器数据队列选择数据,所述所选择的...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。