版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
US2019303154A1,2019.各种实例涉及用于可重新配置的计算结构启动第一同步流处的第一线程以执行所述循环二流控制器启动第二同步流处的第一线程以执器可以确定所述循环的所述第一次迭代是待执代标志的情况下启动所述第二同步流处的所述2步流由包含一组多个流控制器和一组多个计算元件的在启动所述第一线程之后,启动至少一个线程以执行所述循环控制器启动所述第二同步流处的第一线程以执行所述循环的所述第一次迭代的第二部分,所述第一次迭代的所述第二部分在所述第一次迭代的所述第一部由所述第二流控制器确定所述循环的所述第一次迭代是待执行的所述循环的最后迭响应于确定所述第一同步消息包括所述最后条件操作至少部分基于所述循环的所述第一次迭代产生的输出且至少部分基于所述循环将先前由所述第二流控制器启动的线程的数量与所述迭代6.根据权利要求3所述的方法,其进一步包含将所述存储器计算系统编程为包括所述7.根据权利要求3所述的方法,其进一步包含由所述第一同步流的至少一部分向所述3在启动所述第一同步流处的所述第一线程之后,由所述第一流在接收所述第一异步消息之前,由所述第二流控制器接收第二步消息指示所述第二流控制器启动所述第二同步流处的第二线程以执行所述循环的第二由所述第二流控制器确定所述循环的所述第二次迭代不是待执行的所述循环的最后步流的所述第一计算元件提供不包括所述最第一同步流,所述第一同步流包含第一流控制器和至少一个第二同步流,所述第二同步流包含第二流控制器和至少一个接收第一异步消息,所述第一异步消息指示所述第二流控制器确定所述循环的所述第一次迭代是待执行的所述第一条件操作至少部分基于所述循环的所述第一次迭代产生的输出且至少部分执行进一步包含以下的操作来执行所述第二同步将先前由所述第二流控制器启动的线程的数量与所述迭代412.根据权利要求11所述的存储器计算系统,其中所述第一异步消息包含所述迭代计13.根据权利要求11所述的存储器计算系统,其进一步包含被编程为执行包含以下的14.根据权利要求11所述的存储器计算系统,所述存储器计算系统被编程为在所述第15.根据权利要求11所述的存储器计算系统,所述第一同步流被编程为至少部分地通过执行包含由所述第一同步流的至少一部分向所述第二流控制器发送所述第一异步消息在启动所述第一同步流处的所述第一线程之后,启动所述第一同步流处的第二线程,在接收所述第一异步消息之前,接收第二异步消息,所述第二异流控制器启动所述第二同步流处的第二线程以执行所述循环的第二次迭代计算结构处被执行时使所述可重新配置的计步流由包含一组多个流控制器和一组多个计算元件的可在启动所述第一线程之后,启动至少一个线程以执行所述循环迭代的所述第二部分在所述第一次迭代的所述第一部由所述第二流控制器确定所述循环的所述第一次迭代是待执行的所述循环的最后迭响应于确定所述循环的所述第一次迭代是待5响应于确定所述第一同步消息包括所述最后条件操作至少部分基于所述循环的所述第一次迭代产生的输出且至少部分基于所述循环6[0002]本申请要求2020年12月31日提交的美国临时申请序列号63/132,779(其通过引用以其整体并入本文)和2021年8月18日提交的美国申请序列号17/405,371(其通过引用以其一次迭代是待执行的所述循环的所述最后迭代的最后流控制器被编程为启动所述第一同步流处的第一线程以执行循环的第一次迭代的第一部步消息指示所述第二流控制器启动所述第二同步流处的第一线程以执行所述第一次迭代的第二部分,所述第一次迭代的所述第二部分在所述第一次迭代的所述第一部分之后执处的所述第一线程,所述启动包含向所述第二同步流的第一计算单元提供第一同步消息,7所述第一同步消息包含指示所述第一次迭代是待执行的所述循环的所述最后迭代的最后执行包含以下的操作:由第一同步流的第一流控制器启动所述第一同步流处的第一线程,[0009]图1总体上示出了根据实施例的存储器计算系统的环境中的第一存储器计算装置[0016]图7总体上示出了根据实施例的用于存储器计算装置的基于小芯片的实现的实[0018]图9是示出使用多于一个同步流在可重新配置的计算结构上执行操作的工作流的[0019]图10是示出用于在可重新配置的计算结构处执行操作的[0021]图12是示出可以使用可重新配置的计算结构来执行使用最后迭代标志的循环来[0022]图13是示出了使用最后迭代标志用可重新配置的计算结构执行循环的工作流的8[0024]可以利用材料、装置和集成技术的最新进展来提供以存储器为中心的计算拓限制的应用。该拓扑可以用于促进存储器或其它数据存储元件附近或内部的低时延计算。[0026]在实例中,CNM系统中的每个节点都可以具有一或多个主机处理器。在每个节点户可以使用高级编程语言(如C/C++)提供指令,这些指令可以被编译并被直接映射到系统以为计算密集型操作实现显著的时间节省和[0029]在一些实例中,邻存储器计算系统被编程为将可重新配置的计算结构的部件(如9[0030]计算元件包含计算元件存储器和形成用于处理接收的数据的计算流水线的处理[0033]同步流的流控制器通过向同步流的第一计算元件提供第一同步消息来启动同步算元件提供各种标志和其它配置和/或指令数据的控制信息。第一计算元件被编程为例如基于由第一同步消息提供的数据来执行一或多个操作。第一计算元件生成第二同步消息,的下一个计算元件可以是可重新配置的计算结构的另一个计算元件,尽管在一些实例中,[0035]当同步流的所有计算元件已经按照同步流的预定顺序完启动附加线程之前等待一个线程完成。考虑包括流控制器和多个计算元件的示例性同步[0037]通过利用以预定的节奏或分支计数(如本文描述的各种图块)操作的计算元件可[0038]同步流可以使用可重新配置的计算结构的异步结构来使用异步消息与其它同步不属于同步流的外部存储器。在同步流处执行的线程可以包括向存储器接口发送读取和/送异步读取请求消息。第一线程还可以向第二同步流的流控制器发送异步继续类型消息,[0041]邻存储器计算系统或邻存储器计算系统的节点或部件可以包括或使用各种存储片系统由集成在中介层上并封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路面讨论的图6A和图6B总体上示出了如可以包含邻存储器计算系统的小芯片系统的实例。[0042]在一些实例中,如本文所述的HFT的可重新配置的计算结构用于执行一或多个循[0047]流控制器可以通过启动i=1循环迭代的同步流处的第一线程来开始示例性循第二流控制器发送异步消息,该异步消息指示第二流控制器期望读取请求的结果(直接从存储器接口或者从已经接收到读取数据的第二同步流的计算元件)。存储器接口启动对y二流控制器可以在接收到指示已经接收到i=9迭代值(y[9])的异步消息之前接收到指示[0056]当使用可重新配置的计算结构(如本文所述的HTF)实现时,此实例可以为每个循[0059]另一种示例性方法使用附加的同步流来执行循环。考虑由下面的代码段[4]给出[0062]各种实例通过利用由循环迭代的最后同步流的流控制器管理的最后迭代标志来线程提供。执行循环迭代的最后部分的同步流的流控制器被配置为本地设置最后迭代标二同步流的第二流控制器发送异步消息。在第二流控制器接收到数据[i]值已被接收的指足迭代计数时,第二流控制器在启动最后线程的同步消息中设置最后迭代标志存和清除以设置最后迭代标志为条件的本地[0068]图1总体上示出了邻存储器计算系统或CNM系统102的第一实例。CNM系统102的实储器计算节点可以任选地用作同一系统中的一或多个其它存储器计算节点的主机或控制配置为促进第一存储器计算节点104或CNM系统102的装置之间的通信,如使用专用或其它互连快速(PCIe)接口或小芯片协议接口(CPI)等。第一交换机110可以包括被配置为使用储器计算节点104可以包括使用小芯片实现的各种芯片。在下面讨论的CNM系统102的基于构、操作和功能可以等同地应用于如可能使用基于非小芯片的CTCPI以其它方式实现来实现的结构、操作和功能。除非另有明确说明,否则本文关于CPI的任何讨论同样适用于[0073]CPI接口包括基于包的网络,所述网络支持虚拟信道以实现小芯片之间的灵活和片的存储器计算系统的灵活性,适配器(如使用CPI)可以在可以在各种小芯片中实现的各种AXI设计选项之间进行接口。通过实现物理信道到虚拟信道的映射以及用打包的协议封或其它不同配置的存储器计算节点的多个不同实例可以使用扩展结构106来耦合,以提供协调系统范围的资源使用。[0075]在图1的实例中,第一存储器计算节点104的第一交换机110被耦合到扩展结构的封装版本可以包括例如一或多个CNM小芯片。这些小芯片可以使用CTCPI进行通信耦合,[0077]在图1的实例中,第一存储器计算装置112可以包括片上网络(NOC)或第一NOC[0081]第一NOC118可以支持计算元件与存储器之间的各种有效负载(例如,从8到许外部主机处理器被耦合到第一存储器计算装置112的接口。外部主机处理器可以任选地过基于PCIe的交换机与外部主机处理器的通信可以将装置到装置的通信限制在交换机支器122可以被配置为例如使用内部PCIe主模块126与第一NOC118或第一存储器计算装置[0087]在实例中,第一NOC118可以经由扩展结构接口模块136和第二物理层接口1装置112的特定存储器计算装置可以如使用加载/存储范例来访问不同存储器计算装置(例储器装置128。第一存储器装置128可以包括各种类型的存储器装置,例如LPDDR5或GDDR6[0093]CNM系统102的HTP和HTF加速器可以使用各种高级结构化的编程语言来编程。例本身的配置细节。在实例中,HTF加速器工具链可以使用LLVM前端编译器和LLVM中间表示储器子系统200包含来自图1的实例的第一存储器计算装置112的一部分,如包括第一NOC以被配置为处理相对简单的单周期整数原子。内置原子模块214可以以与例如正常存储器[0096]可以提供本地高速缓存模块212(如可以包括SRAM高速缓存),以帮助减少重复访缓冲器。本地高速缓存模块212对于具有相对较小或没有数据高速缓存的计算元件尤其有[0097]存储器控制模块210(如可以包括DRAM控制器)可以提供低级请求缓冲和调度,如用具有一组专用指令的RISC-VISA来促进与控制器202的交互以原子地执行用户定义的操[0099]如从节点上或节点外主机接收的可编程的原子请求可以经由第二NOC206和控制器202然后可以将识别的请求转发给可编程的原子单元[0100]图3总体上示出了根据实施例的与存储器控制器一起使用的可编程的原子单元操作模块中)所述的部件。如图3所示,可编程的原子单元302包括PAU处理器或PAU核306、数据高速缓存310或指令SRAM308中。这通过消除用于这种存储器中的寄存器的传统触发索数据,无论它是从存储器控制器314上的高速缓存还是裸片外存储器。为了解决这个问在存储器请求指令通过可以做出存储器请求的流水线阶段之前的最后线程重新调度点之310是否包括所请求的存储器地址的数据,进行中的存储器请求的存在都使得不确定在该[0106]在实例中,危险是针对所请求的存储器地址的数据高速缓存310中的脏高速缓存使用存储器控制器314的内置的原子运算符或其它单独的硬件块。在存储器控制器的上下[0109]在实例中,调度接口414可以包含用于处理基于硬件的线程管理的HTP加速器400速缓存406可以包括用于主机处理器的高速缓存(例如,用于本地和远程存储器计算装置,器中。如果干净数据或脏数据在数据高速缓存406中,则这些加载可以使用高速缓存的数据。如果引用的存储器位置不在数据高速缓存406中,则可以从存储器访问整个高速缓存令可以帮助避免用未被顺序写入存储器的写数据来冲击数据高[0115]图5示出了根据实施例的存储器计算装置的混合线程结构(HTF)或HTF500的表示图块N)。每个HTF图块可以利用本地图块或计算元件存储器和算术功能来实现一或多个计5的实例中的图块510的图块基础可以仅被耦合到相邻图块512(图块N-1)和示例性图块504六个图块的HTF集群502和具有六十四个条目的相应指令RAM实例的实例中,该集群可以允[0127]HTF集群502中的图块可以为HTF执行各种计算操作。计算操作可以通过配置图块任选的指令子集。写入图块存储器,例如当使用特定图块指令的多个输入并且一个输入先于其它输入到达[0130]图6A和图6B总体上示出了可以用于实现CNM系统102的一或多个方面的小芯片系包括基于小芯片的架构或邻存储器计算(CNM)小芯片。封装的存储器计算装置可以包括例[0132]小芯片系统可以包括例如一或多个应用(或处理器)小芯片和一或多个支持小芯602的封装被示出为具有盖或覆盖物618,尽管可以使用小芯片系统的其它封装技术和结[0135]应用小芯片610被示出为包括小芯片系统NOC620以支持小芯片网络622用于小芯[0137]CPI接口(如可以用于系统中的小芯片之间的通信)是基于包的网络,其支持虚拟使用带有转发时钟的源同步数据传输来发射和接收数据。以单数据速率(SDR)或双数据速标识符和六位链路标识符的20位值。AIB物理层使用AIB带外移位寄存器来发射接口标识加上辅助信道。辅助信道含有用于AIB初始化的信号。列内的所有AIB信道(除了辅助信道[0141]通常,单独的小芯片上的CPI接口可以包括串行化-反串行化(SERDES)硬件。包括用于使这些超短距离小芯片互连的时延和能耗两者最要小芯片系统NOC620。小芯片网状网络624可以用CPI或另一种小芯片到小芯片协议来实系统外部的PCIe接口。这种专用小芯片接口626通常在行业中的惯例或标准已经在这种接口上融合时使用。将存储器控制器小芯片614连接到动态随机存取存储器(DRAM)存储器装置小芯片616的双数据速率(DDR)接口的图示的实例正是这样的行这是因为几乎无处不在地使用存储器进行计算机处理以及存储器装置的先进技术。因此,使用由他人生产的存储器装置小芯片616和存储器控制器小芯片614使小芯片系统设计者的存储器中,如刷新的一些存储器操作可以在某些时间由主机处理器或存储器控制器控[0148]原子运算符是例如可以由存储器控制器小芯片614执行的数据操纵。在其它小芯且存储结果。在成功完成后,存储器控制器小芯片614向应用小芯片610提供命令成功的指示。原子运算符避免了跨过小芯片网状网络624传输数据,导致较低的此类命令的时延执行。硬件中不变地实施的一组有限的操作。可编程原子是可以在存储器控制器小芯片614的可[0150]存储器装置小芯片616可以是或者可以包括易失性存储器装置或非易失性存储器[0151]图7总体上示出了根据实施例的用于存储器计算装置的基于小芯片的实现的实或包含来自图1的实例的第一存储器计算装置112或第一存储器计算节点104的部分。各个部分本身可以包括或包含各自的小芯片。基于小芯片的实现可以包括或使用基于CPI的系[0152]图7的实例包括包含多个小芯片的第一CNM封装700。第一CNM封装700包括耦合到[0153]在图7的实例中,第一小芯片702包括耦合到CNMNOC集线器710的第一NOC集线器缘中的交换机经由CNMNOC集线器710促进小芯片内或小芯片系[0154]第一小芯片702可以进一步包括一或多个存储器控制器716。存储器控制器716可器716包含存储器控制器小芯片614,或者包含存储器控制器130,或者包含存储器子系统[0155]第一小芯片702可以进一步包括第一HTP小芯片718和第二HTP小芯片720,其如经由各自不同的NOC端点交换机被耦合到第一NOC集线器边缘714。HTP小芯片可以对应于HTP与HTF小芯片722通信。HTF小芯片72[0156]CNMNOC集线器710可以通过各种接口和交换机被耦合到其它小芯片或其它CNM封装中的NOC集线器实例。例如,CNMNOC集线器710可以通过第一CNM封装700上的多个不同NOC端点被耦合到CPI接口。多个不同NOC端点中的每一个可以被耦合到例如第一CNM封装与其它装置接口的PCIe扩展结构接口(PCIE/SFI)或CXL接口(CXL)。在实例中,使用各种的各种小芯片中的单独的HTF图块集群进入和退出功率/存储器计算小芯片的每个实例本身可以包括一或多个组成小芯片(例如,主机处理器小芯于第四小芯片708)。第一CNM集群802中的小芯片可以被耦合到公共NOC集线器,所述公共NOC集线器又可以被耦合到相邻的一或多个集群中(例如,第二CNM集群804或第四CNM集群[0161]在实例中,图块化的小芯片实例800中的邻存储器计算小芯片之一可以包括负责跨图块化的小芯片实例800的工作负载平衡的主机接口(例如,对应于来自图7的实例的主理器和一或多个邻存储器计算小芯片中的混合线程结构来调度新[0162]图9是示出使用多于一个同步流在如HTF142或HTF500的可重新配置的计算结构的一部分。本文所述的其它同步流可以使用如本文所述的HTF的图块和图块基础来类似地[0165]在图9的工作流900中,域接口902通过经由可重新配置的计算结构的异步结构向口902可以基于其自己的编程和/或响应于来自邻存储器计算系统可重新配置的计算结构配置为用于执行处理任务的正确内核配置,所述处理任务包括例如对各种流控制器904、[0166]异步消息912可以指示流控制器904开始同步流线程。例如,当分支RAM为同步流901的部件之间的同步数据路径908选择流控制器904时,流控制器可以通过向同步数据路和控制信息。同步数据路径908的第一计算元件通过执行处理任务并生成发送到同步数据路径908的第二计算元件的下一同步消息来开始线程的执行。第二计算元件执行处理任务[0167]同步数据路径908的计算元件被编程为在执行线程时执行各种操作,包括例如用多个计算元件向同步流903的流控制器906发送异步消息914。异步消息914指示流控制器包括从同步流901接收另一异步消息,该异步消息指示线程完成或者以其它方式启动同步件向同步流903的流控制器906发送异步消息916。异步消息916指示同步流901处的线程已[0168]在接收到异步消息916时(并且当异步消息914的其它条件(如果有的话)被满足时),流控制器906例如通过向同步数据路径910的第一计算元件发送第一同步消息来启动[0169]图10是示出了用于在如HTF142或HTF500的可重新配置的计算结构上执行操作步流1001处的线程。(在一些实例中,消息1010可以指示流控制器1004立即开始线程的执接口1016向同步流1003的多个计算元件提供包括加载数据的异步消息。类似于消息1017,已经接收到加载数据的每个计算元件可以向流控制器1006提[0173]在接收到异步消息1017时(并且在满足继续类型消息1012流控制器1006例如通过向同步数据路径1024的第一计算元件提供同步消息启动同步流1003处的线程。如果同步流1003的多于一个的计算元件要接收加载数据,则当流控制器[0174]图11是示出了使用如HTF142或HTF500的可重新配置的计算结构来执行循环[0176]流控制器1104启动线程以用于循环的第一次迭代。同步域1103的同步数据路径1110的计算元件执行循环的第一次迭代。当线程完成时,一或多个计算元件向流控制器在不考虑先前循环迭代的线程是否已经完成通过同步数据路径1110的计算元件传播的情代的同步流1103处的每个线程可以导致另一个同步流(未示第二流控制器和/或存储器接口发送异步消息。第二流控制器启动另一个同步流(未示出)[0182]图12是示出了可以使用如HTF142或HTF500的可重新配置的计算结构来实现以流的流控制器)执行的动作。列1205指示执行可能在循环迭代的执行期间发生的异步操作下一个线程可以在自循环的前一次迭代的线程启动以来经过了分支计数数量的时钟周期[0185]如果第一循环流控制器在操作1208处确定对于循环的所有迭代已经启动了第一确定循环的所有迭代都完成时,它可以在操作1212处向循环启动部件发送异步消息1211,[0187]由列1205处的一或多个异步操作部件执行的异步操作的完成可以由提供给最后计数1213可以以任何合适的方式被提供给最后循环流控制器。在一些实例中,迭代计数最后循环流控制器启动最后循环同步流处的线程以在不设置最后迭代标志的情况下继续[0192]图13是示出了用于使用最后迭代标志利用如HTF142或HTF500的可重新配置的1307,其包括各自的流控制器1302、1304、1306、1308和组成各自的同步数据路径1310、1312、1314、1316的计算元件。工作流1300还示出了调度接口1318和存储器接口1320A、过向流控制器1304提供异步消息1322A来启动循环1340,所述异步消息指示流控制器1304开始为循环1340的各种迭代启动线程。异步消息1322A可以包括指示待执行的循环迭代的器1304提供异步消息1322B,所述异步消息指示流控制器1304开始为循环1340的迭代启动[0196]循环1340的迭代可以以任何合适的方式在同步流1303(第一循环同步流)与同步到同步消息1330B和/或从同步流1305的执行元件接收到异步消息1330C,其指示已经接收例中,同步流1303处的线程可以向存储器接口1320A发送异步消息1333,使得存储器接口1320A执行经由异步消息1331或1330B向同步流130控制器1306为各种循环迭代启动线程时,它测试待启动的线程是否对应于待完成的循环标
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI生成式技术传统节日数字艺术设计制作
- AI技术在传统竹编文化创新中的应用
- 文明礼仪记心中健康成长伴我行-小学主题班会课件
- 2025-2026学年英语电影片段剪辑教学设计
- 2025-2026学年蜜蜂教学设计温儒敏
- 2025-2026学年一首儿童诗的教学设计
- 小学主题班会课件-,生活,实践,安全,文明
- 信息技术系统集成实施方案
- 通知召开季度销售策略会议2026年3月15日8篇范本
- 函商2026年夏季新款智能家居产品市场定位(5篇范文)
- 2026年碳排放管理办法考试试题及答案
- 2026年医疗卫生法律法规知识继续教育试题及答案
- 2026年广东省中考数学试卷(含答案及解析)
- 2026年苏州相城区村(社区)工作者招聘考试试卷(含答案解析)
- 2026年地方病控制副主任医师试题解析及答案
- 【新教材】统编版(2024)八年级下册道德与法治全册知识点背诵提纲(表格式)
- 危险源辨识、风险评价清单(办公区、食堂、宿舍)
- AI原生工作报告
- 2026黑龙江省交通投资集团有限公司招聘备考题库附答案详解(研优卷)
- 2026年IPA国际注册对外汉语教师资格认证考试真题含答案
- 2026年乡村振兴专干考试题库
评论
0/150
提交评论