使用长向量仲裁的异步管线合并的制作方法

未命名 08-15 阅读:120 评论:0

使用长向量仲裁的异步管线合并
1.优先权申请
2.本技术要求2020年10月20日提交的美国申请序列号17/074,991的优先权权益,所述美国申请以全文引用的方式并入本文中。


背景技术:

3.小芯片是用于集成各种处理功能性的新兴技术。一般来说,小芯片系统由离散模块(各自称为“小芯片”)构成,所述离散模块集成在中介层上,且在许多实例中视需要通过一或多个已建立的网络互连,以向系统提供所要功能。中介层及所包含的小芯片可封装在一起,以便于与较大系统的其它组件互连。每个小芯片可包含一或多个单独的集成电路(ic)或“芯片”,其可能与离散电路组件组合,且通常耦合到相应衬底以便于附接到中介层。系统中的大多数或所有小芯片可单独地配置用于通过一或多个已建立的网络进行通信。
4.小芯片作为系统的个别模块的配置不同于在单芯片上实施的此系统,所述芯片在一个衬底(例如单个裸片)上含有不同装置块(例如,知识产权(ip)块),例如芯片上系统(soc),或集成在印刷电路板(pcb)上的多个离散封装装置。一般来说,小芯片提供比离散封装装置更好的性能(例如,更低的功率消耗、减少的时延等),并且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含更高的良率或减少的开发成本及时间。
5.小芯片系统可包含例如一或多个应用(或处理器)小芯片及一或多个支持小芯片。此处,应用小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计情境的参考。因此,举例来说,合成视觉小芯片系统可包含(仅借助于实例)用于产生合成视觉输出的应用小芯片,以及例如存储器控制器小芯片、传感器接口小芯片或通信小芯片的支持小芯片。在典型的用例中,合成视觉设计者可设计应用小芯片并且从其它方获取支持小芯片。因此,由于避免设计及生产支持小芯片中所体现的功能性,因此减少了设计支出(例如,在时间或复杂性方面)。小芯片还支持原本可能很困难的ip块紧密集成,例如使用不同处理技术或使用不同特征大小(或利用不同的接触技术或间距)制造的ip块。因此,可以模块化方式组装具有不同物理、电气或通信特性的多个ic或ic组合件,以提供实现期望功能的组合件。小芯片系统还可促进调适以适应将并入有小芯片系统的不同较大系统的需要。在实例中,ic或其它组合件可针对特定功能的功率、速度或发热进行优化,如同传感器可能发生的情况一样,相比于在单个裸片上尝试与其它装置集成,所述ic或其它组合件可更容易地与其它装置集成。此外,通过减小裸片的整体大小,小芯片的良率往往会高于更复杂的单裸片装置的良率。
附图说明
6.根据下文给出的详细描述及本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释及理解。
7.图1a及1b说明根据实施例的小芯片系统的实例。
8.图2说明根据实施例的存储器控制器小芯片的实例的组件。
9.图3说明根据实施例的通过电子组件的处理流。
10.图4是根据实施例的用于异步管线合并的方法的实例的流程图。
11.图5是机器的实例的框图,本公开的实施例可利用所述机器、在所述机器中或通过所述机器进行操作。
具体实施方式
12.下文所描述的图1a到1b提供小芯片系统及在其中操作的组件的实例。所说明的小芯片系统包含存储器控制器。下文关于图1a到1b及2描述关于存储器控制器的额外细节。
13.如下文进一步描述,存储器控制器可包含用于裸片外存储器(例如,动态随机存取存储器(dram)的本地高速缓存。存储器控制器可接收存储器请求。存储器控制器随后尝试满足来自高速缓存的请求。如果在高速缓存中未发现所请求数据,则从裸片外存储器检索数据。一般来说,与彼此相比,高速缓存被视为具有低时延的快速路径,而裸片外存储器访问被视为具有更高时延的慢速路径。因为一些存储器请求可由高速缓存满足,而其它存储器请求可能需要存取裸片外存储器,所以通过高速缓存及裸片外存储器提取的组合满足的任何存储器请求可呈现用于协调这些访问与管线中的其它单元的时序问题。
14.尽管在存储器请求的上下文中提出问题,但是当前公开的实施方案可应用于其中在并行异步路径中执行操作的任何系统。在此类系统中,在进一步转发到计算管线中之前,操作可能需要最终进行组合或协调。如果并行处理管线具有可能使相关操作具有非常不同且不可预测的响应时间的特性,则需要独立地且异步地记录这些响应。
15.为了解决这些问题,本公开论述在并行路径管线中使用用于表示事务(例如,存储器请求事务)的向量。每个向量可与一个路径相关联。在并行路径中执行的每个线程、操作、指令或事务表示在向量中的共享位索引处。一旦事务完成,如由共享位索引中的位值表示,每个路径的数据可合并并且用于沿管线向下进一步处理。位值表示操作中的子完成步骤。数据跨越异步多路径管线的这种编组及合并维持事务部分的完整性,而无论不同路径的不同时延如何。因此,本文描述的系统及技术能够适应大量的正在进行中操作,这些操作可具有非常不同的时序。
16.使用日志向量之间的逐位and运算,容易地识别完成的事务。每个向量中的每一对可比较位进行and运算,从而形成相同长度的第三向量。此向量基本上采用子完成日志向量,并且确定在可比较位置的哪些位集准备好进行进一步的完成处理。
17.将此第三向量馈送到宽、快速、公平的轮循仲裁器,所述宽度等于向量的长度。仲裁器将确保将完全地且公平地处理满足完成标准的子完成位的对或集合。一旦仲裁器将完成状态授予一组子完成位,就清除这些子完成位,并且处理前进到与所述一组子完成位相关联的事务的管线的下一阶段。
18.如果没有本文所论述的控制机制,事务可能必须等待从最慢路径的存储器存取(例如,对裸片外存储器装置的存储器请求)。管线可能停滞或变得非常低效。这些停滞循环会造成时间及能量的浪费。
19.控制机制通过允许事务异步地且独立地完成而提供明显的优势。因为由于操作停滞而浪费更少资源,因此整体管线产量增加并且功耗减小。这些效率在包含存储器控制器的小芯片系统中可能特别有益,因为此类系统提供模块化能力,在一些实施例中,模块化能
力可经配置以实现执行大量及/或相对高复杂度计算的系统所需的相对高性能的存储器操作。
20.举例来说,各种形式的导航导向系统可能需要基本上同时协调来自多个传感器的数据以执行导航功能。实施存储器系统的此种小芯片系统的实例用途将为自动驾驶车辆,其中来自例如雷达、激光雷达及/或超声波传感器的各种测距传感器的数据可与来自多个光学传感器(可能需要图像处理及模式识别)、陀螺仪、打滑传感器等的数据相关,所述存储器系统包含具有一或多种形式的存储器的存储器控制器。
21.图1a及1b说明根据实施例的小芯片系统110的实例。图1a是安装在外围板105上的小芯片系统110的表示,所述小芯片系统可通过例如外围组件互连高速(pcie)接口连接到较广泛的计算机系统。小芯片系统110包含封装衬底115、中介层120及四个小芯片:应用小芯片125、主机接口小芯片135、存储器控制器小芯片140及存储器装置小芯片150。其它系统可包含许多额外小芯片以提供额外功能,如将从以下论述中显而易见。小芯片系统110的封装以封盖或盖板165说明,但可使用用于小芯片系统的其它封装技术及结构。图1b是为了清楚起见标记小芯片系统中的组件的框图。
22.应用小芯片125说明为包含片上网络(noc)130以支持用于小芯片间通信的小芯片网络155。在实例实施例中,noc 130可包含在应用小芯片125上。在实例中,noc 130可响应于选定的支持小芯片(例如,小芯片135、140及150)而定义,因此使设计者能够为noc 130选择适当数目或小芯片网络连接或开关。在实例中,noc 130可位于单独小芯片上或甚至中介层120内。在如本文所论述的实例中,noc 130实施小芯片协议接口(cpi)网络。
23.cpi是基于包的网络,其支持虚拟信道,以实现小芯片之间灵活及高速的交互。cpi实现从小芯片内网络到小芯片网络155的桥接。举例来说,高级可扩展接口(axi)是设计芯片内通信的广泛使用的规范。然而,axi规范涵盖大量的物理设计选项,例如物理信道的数目、信号定时、功率等。在单芯片内,通常选择这些选项以满足设计目标,例如功率消耗、速度等。然而,为了实现小芯片系统的灵活性,使用如cpi等适配器在可实施于各种小芯片中的各种axi设计选项之间介接。通过实现物理信道到虚拟信道的映射且利用包化协议包封基于时间的信令,cpi跨小芯片网络155桥接小芯片内网络。
24.cpi可利用多种不同的物理层来传输包。物理层可包含简单的导电连接,或可包含驱动器以增加电压,或以其它方式促进在较长距离上传输信号。一个此类物理层的实例可包含高级接口总线(aib),其在各种实例中可在中介层120中实施。aib使用具有转发时钟的源同步数据传送来传输及接收数据。以单数据速率(sdr)或双数据速率(ddr)相对于所传输的时钟跨aib传送包。aib支持各种信道宽度。当在sdr模式下操作时,aib信道宽度为20位的倍数(20、40、60、...),并且对于ddr模式,aib信道宽度为40位的倍数:(40、80、120、...)。aib信道宽度包含传输及接收信号。信道可经配置以具有对称数目的发射(tx)及接收(rx)输入/输出(i/o),或者具有非对称数目的发射器及接收器(例如,所有发射器或所有接收器)。取决于哪个小芯片提供主时钟,信道可充当aib控制或从属(即,“主”或“从”)。aib i/o单元支持三个时钟模式:异步(即,非计时)、sdr及ddr。在各种实例中,非计时模式用于时钟及一些控制信号。sdr模式可使用专用的仅sdr i/o单元,或双用途sdr/ddr i/o单元。
25.在实例中,cpi包协议(例如,点到点或可路由)可在aib信道内使用对称的接收及传输i/o单元。cpi串流协议允许更灵活地利用aib i/o单元。在实例中,串流模式的aib信道
可将i/o单元配置为全部tx、全部rx或者一半tx且一半rx。cpi包协议可在sdr或ddr操作模式中使用aib信道。在实例中,aib信道针对sdr模式以80个i/o单元(即,40个tx及40个rx)的增量配置,且针对ddr模式以40个i/o单元的增量配置。cpi串流协议可在sdr或ddr操作模式下使用aib信道。此处,在实例中,aib信道针对sdr及ddr模式两者以40个i/o单元为增量。在实例中,向每一aib信道分配唯一的接口标识符。所述标识符在cpi复位及初始化期间用于确定跨连接的小芯片的成对aib信道。在实例中,接口标识符是包括七位小芯片标识符、七位列标识符及六位链路标识符的20位值。aib物理层使用aib带外移位寄存器来传输接口标识符。使用移位寄存器的位32到51跨越aib接口在两个方向上传送20位接口标识符。
26.aib将堆叠的一组aib信道限定为aib信道列。aib信道列具有一定数目的aib信道,外加辅助信道。辅助信道含有用于aib初始化的信号。列内的所有aib信道(辅助信道除外)具有相同配置(例如,全部为tx、全部为rx,或者一半为tx且一半为rx,以及具有相同数目的数据i/o信号)。在实例中,以邻近于aux信道的aib信道开始,以连续递增次序对aib信道编号。与aux相邻的aib信道被定义为aib信道零。
27.通常,个别小芯片上的cpi接口可包含串行化-反串行化(serdes)硬件。serdes互连非常适用于需要高速信令及低信号计数的情境。然而,对于复用及解复用、错误检测或校正(例如,使用块级循环冗余检查(crc))、链路级重试或前向错误校正,serde可能会引起额外的功耗及更长的时延。然而,在低时延或能量消耗为超短距离小芯片到小芯片互连的主要关注点时,可利用具有允许以最小时延进行数据传送的时钟速率的并行接口。cpi包含用于使这些超短距离小芯片互连的时延及能耗两者最小化的元件。
28.对于流控,cpi采用基于信用值的技术。如应用小芯片125的接收方向例如存储器控制器小芯片140的发送方提供表示可用缓冲器的信用。在实例中,cpi接收方包含用于给定传输时间单位的每一虚拟信道的缓冲器。因此,如果cpi接收方在时间上支持五个消息及单个虚拟信道,则接收方具有布置成五行的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟信道,则接收方具有布置成五行的二十个缓冲器。每一缓冲器保持一个cpi包的有效负载。
29.当发送方向接收方传输时,发送方基于传输而使可用信用递减。一旦消耗接收方的所有信用,发送方就停止向接收方发送包。这确保接收方始终具有可用缓冲器以存储传输。
30.当接收方处理接收到的包并释放缓冲器时,接收方将可用缓冲空间传达回发送方。接着,发送方可使用此信用返回以允许传输额外信息。
31.还说明小芯片网状网络160,其使用直接小芯片到小芯片技术,而不需要noc 130。小芯片网状网络160可在cpi或另一小芯片到小芯片协议中实施。小芯片网状网络160通常实现小芯片管线,其中一个小芯片充当到管线的接口,而管线接口中的其它小芯片仅与自身介接。
32.此外,还可使用专用装置接口来互连小芯片,所述专用装置接口例如一或多个工业标准存储器接口145(例如,同步存储器接口,例如ddr5、ddr6)。小芯片系统或个别小芯片到外部装置(例如,较大系统的连接可通过所要接口(例如,pcie接口)。在实例中,可通过主机接口小芯片135实施此外部接口,在所描绘的实例中,所述主机接口小芯片提供小芯片系统110外部的pcie接口。当行业中的惯例或标准已汇聚在此类专用接口145上时,通常采用
此类接口。将存储器控制器小芯片140连接到动态随机存取存储器(dram)存储器装置150的双数据速率(ddr)接口145的所说明实例仅为此类行业惯例。
33.在多种可能的支持小芯片中,存储器控制器小芯片140很可能存在于小芯片系统110中,这是因为几乎无所不在地使用存储来进行计算机处理以及对存储器装置使用先进技术。因此,使用由其它设计者产生的存储器装置小芯片150及存储器控制器小芯片140使小芯片系统设计者能够获得由成熟生产商生产的稳健产品。通常,存储器控制器小芯片140提供存储器装置特定接口来读取、写入或擦除数据。通常,存储器控制器小芯片140可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。对于一些类型的存储器,维护操作往往特定于存储器装置150,例如nand快闪或存储类存储器中的垃圾收集、nand快闪存储器中的温度调整(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(l2p)映射或管理,以在数据的物理与逻辑表示之间提供间接层级。在例如dram的其它类型的存储器中,例如刷新的一些存储器操作可在某些时间由主机处理器或存储器控制器控制,并且在其它时间由dram存储器装置或与一或多个dram装置相关联的逻辑控制,所述逻辑例如接口芯片(在实例中,缓冲器)。
34.原子操作是例如可由存储器控制器小芯片140执行的数据操纵。在其它小芯片系统中,原子操作可由其它小芯片执行。举例来说,可由应用小芯片125在命令中指定“增量”的原子操作,所述命令包含存储器地址并且可能包含增量值。在接收到命令后,存储器控制器小芯片140从指定存储器地址检索数字,使所述数字递增命令中所指定的量,并且存储结果。在成功完成后,存储器控制器小芯片140向应用小芯片125提供命令成功的指示。原子操作避免跨小芯片网络160传输数据,从而减少执行此类命令的时延。
35.原子操作可分类为内置原子或可编程(例如,自定义)原子。内置原子是在硬件中不变地实施的一组有限的操作。可编程原子是可在存储器控制器小芯片140的可编程原子单元(pau)(例如,自定义原子单元(cau))上执行的小程序。图1a及1b说明论述pau的存储器控制器小芯片的实例。
36.存储器装置小芯片150可为或包含易失性存储器装置或非易失性存储器的任何组合。易失性存储器装置的实例包含但不限于随机存取存储器(ram),例如dram、同步dram(sdram)、图形双数据速率类型6sdram(gddr6 sdram)等。非易失性存储器装置的实例包含但不限于与非(nand)型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)、铁电ram(feram)等。所说明实例包含作为小芯片的存储器装置150,然而,存储器装置150可驻存在其它地方,例如在外围板105上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一或多种存储技术。在实例中,存储器小芯片可包含不同技术的多个堆叠存储器裸片,例如一或多个sram装置与一或多个dram装置堆叠或以其它方式通信。存储器控制器140还可用于协调小芯片系统110中的多个存储器小芯片之间的操作;例如,在一或多个层级的高速缓存存储装置中利用一或多个存储器小芯片,并且使用一或多个额外存储器小芯片作为主存储器。小芯片系统110还可包含多个存储器控制器140,其可用以提供用于单独处理器、传感器、网络等的存储器控制功能性。例如小芯片系统110的小芯片架构提供允许通过更新的小芯片配置适合于不同存储器存储技术及不同存储器接口,而不需要重新设计系统结构的其余部分的优点。
37.图5说明根据实施例的存储器控制器小芯片505的实例的组件。存储器控制器小芯
片505包含高速缓存510、高速缓存控制器515、裸片外存储器控制器520(例如,用于与裸片外存储器575通信)、网络通信接口525(例如,用于与小芯片网络585介接且与其它小芯片通信),及一组原子及合并单元550。此组的成员可包含例如写入合并单元555、存储器危险单元560、内置原子单元565或pau 570。各种组件按逻辑说明,并且它们未必会实施。举例来说,内置原子单元565有可能包括沿着到裸片外存储器的路径的不同装置。举例来说,内置原子单元565可处于存储器小芯片上的接口装置/缓冲器中,如上文所论述。相比之下,可编程原子单元570可在存储器控制器小芯片505上的单独处理器中实施(但在各种实例中,可在其它位置中实施,例如在存储器小芯片上实施)。
38.裸片外存储器控制器520直接耦合到裸片外存储器575(例如,经由总线或其它通信连接)以提供进出所述一或多个裸片外存储器装置(例如,裸片外存储器575及裸片外存储器580)的写入操作及读取操作。在所描绘的实例中,裸片外存储器控制器520还经耦合以用于输出到原子及合并单元550且用于输入到高速缓存控制器515(例如,存储器侧高速缓存控制器)。
39.在实例配置中,高速缓存控制器515直接耦合到高速缓存510,并且可耦合到网络通信接口525以进行输入(例如传入读取或写入请求),并经耦合以输出到裸片外存储器控制器520。
40.网络通信接口525包含包解码器530、网络输入队列535、包编码器540及网络输出队列545,以支持基于包的小芯片网络585,例如cpi。小芯片网络585可提供处理器、存储器控制器、混合线程处理器、可配置处理电路或通信接口之间及当中的包路由。在此种基于包的通信系统中,每一包通常包含目的地及源寻址,以及任何数据有效负载或指令。在实例中,取决于配置,小芯片网络585可实施为具有折叠clos配置的交叉开关集合,或提供额外连接的网状网络。
41.在各种实例中,小芯片网络585可为异步开关结构的一部分。此处,数据包可沿着各种路径中的任一个路由,使得任何所选择数据包可取决于路由而在多个不同时间中的任何时间到达寻址的目的地。此外,小芯片网络585可至少部分地实施为同步通信网络,例如同步网状通信网络。经考虑,例如根据本公开使用通信网络的两种配置。
42.存储器控制器小芯片505可接收具有例如源地址、读取请求及物理地址的包。作为响应,裸片外存储器控制器520或高速缓存控制器515将从指定的物理地址(其可在裸片外存储器575中或高速缓存510中)读取数据,且汇编含有所请求数据的针对源地址的响应包。类似地,存储器控制器小芯片505可接收具有源地址、写入请求及物理地址的包。作为响应,存储器控制器小芯片505将数据写入到指定的物理地址(其可在高速缓存510中或在裸片外存储器575或580中),且将响应包汇编成含有数据被存储到存储器的确认的源地址。
43.因此,在可能的情况下,存储器控制器小芯片505可经由小芯片网络585接收读取及写入请求,且使用与高速缓存510介接的高速缓存控制器515来处理所述请求。如果高速缓存控制器515无法处理所述请求,则裸片外存储器控制器520通过与裸片外存储器575或580、原子及合并单元550或两者通信来处理所述请求。如上所述,高速缓存的一或多个层级还可在裸片外存储器275或280中实施;且在一些此类实例中可由高速缓存控制器215直接存取。由裸片外存储器控制器520读取的数据可由高速缓存控制器515高速缓存于高速缓存510中以供后续使用。
44.原子及合并单元250经耦合以接收(作为输入)裸片外存储器控制器220的输出,且将输出提供到高速缓存210、网络通信接口225,或直接提供到小芯片网络285。存储器危险单元560、写入合并单元555及内置(例如,预定)原子单元565可各自实施为具有其它组合逻辑电路系统(例如,加法器、移位器、比较器、and门、or门、xor门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。pau 570可实施为一或多个处理器核心或控制电路系统,及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数及其它数据,或可实施为处理器。
45.写入合并单元555接收读取数据及请求数据,并且合并请求数据及读取数据以产生具有读取数据及将在响应或返回数据包)中使用的源地址的单个单元。写入合并单元555将合并的数据提供到高速缓存510的写入端口(或等效地,提供到高速缓存控制器515以写入到高速缓存510)。任选地,写入合并单元555将合并的数据提供到网络通信接口525以编码且准备响应或返回数据包以在小芯片网络585上进行传输。
46.当请求数据用于内置原子操作时,内置原子单元565从写入合并单元555或直接从裸片外存储器控制器520接收请求及读取数据。执行原子操作,且使用写入合并单元555,将所得数据写入到高速缓存510,或提供到网络通信接口525以编码且准备响应或返回数据包以在小芯片网络585上进行传输。
47.内置原子单元565处理预定义原子操作,例如提取并递增或者比较并交换。在实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。从通过小芯片网络585传输的请求包发起原子存储器操作。所述请求包具有物理地址、原子操作符类型、操作数大小,及任选地具有至多32字节的数据。原子操作对高速缓存510的高速缓存行执行读取-修改-写入,从而在必要时填充高速缓存存储器。原子运算符响应可为简单的完成响应,或具有至多32字节的数据的响应。实例原子存储器操作符包含提取并与、提取并或、提取并异或、提取并加、提取并减、提取并递增、提取并递减、提取并最小、提取并最大、提取并交换及比较并交换。在各种实例实施例中,支持32位及64位操作以及对16或32字节的数据的操作。本文所公开的方法还与支持较大或较小操作及较多或较少数据的硬件兼容。
48.内置原子操作还可涉及对关于所请求数据的“标准”原子操作的请求,例如相对简单的单周期整数原子,例如提取并递增或比较并交换,其吞吐量将与不涉及原子操作的常规存储器读取或写入操作相同。对于这些操作,高速缓存控制器515通常可通过(在硬件中)设置危险位来预留高速缓存510中的高速缓存行,使得高速缓存行在转变时无法由另一过程读取。从裸片外存储器575或高速缓存510获得数据,并将所述数据提供到内置原子操作单元565以执行所请求的原子操作。在原子操作之后,除了将所得数据提供到包编码器540以对传出数据包进行编码以在小芯片网络585上传输之外,内置原子操作单元565还将所得数据提供到写入合并单元555,所述写入合并单元还将所得数据写入到高速缓存510。在将所得数据写入到高速缓存510之后,存储器危险单元560将清除所设置的任何对应危险位。
49.pau 570实现可编程原子操作(也称为“自定义原子事务“或“自定义原子操作”)的高性能(高吞吐量及低时延),其与内置原子操作的性能相当。代替执行多个存储器存取,响应于原子操作请求指定可编程原子操作及存储器地址,存储器控制器小芯片505中的电路
系统将原子操作请求传送到pau 570,并设置存储在存储器危险寄存器中对应于原子操作中所使用的存储器行的存储器地址的危险位,以确保不对所述存储器行执行其它操作(读取、写入或原子),然后在原子操作完成后清除所述危险位。为执行可编程原子操作的pau 570提供的额外直接数据路径允许额外的写入操作,而不会受到由通信网络的带宽施加的任何限制,并且不会增加通信网络的任何拥塞。
50.pau 570包含多线程处理器,例如基于risc-v isa的多线程处理器,其具有一或多个处理器核心,并且进一步具有用于执行可编程原子操作的扩展式指令集。当具备用于执行可编程原子操作的扩展指令集时,pau 570可体现为一或多个混合线程处理器。在一些实例实施例中,pau 570提供桶式轮循瞬时线程切换以维持较高的每时钟指令速率。
51.可编程原子操作可由pau 570执行,其涉及对关于所请求数据的可编程原子操作的请求。用户可准备编程代码以提供这些可编程原子操作。举例来说,可编程原子操作可为相对简单的多循环操作,例如浮点加法,或可为相对复杂的多指令操作,例如布隆过滤器插入(bloom filter insert)。可编程原子操作可与内置原子操作相同或不同,只要它们是由用户而不是系统供应商定义的。对于这些操作,高速缓存控制器515可通过(在硬件中)设置危险位来保留高速缓存510中的高速缓存行,使得高速缓存行在转变时无法由另一过程读取。从高速缓存510或裸片外存储器575或580获得数据,且将所述数据提供到pau 570以执行请求的可编程原子操作。在原子操作之后,pau 570将所得数据提供到网络通信接口525以直接编码具有所得数据的传出数据包以在小芯片网络585上进行传输。另外,pau 570将所得数据提供到高速缓存控制器515,所述高速缓存控制器还将所得数据写入到高速缓存510。在将所得数据写入到高速缓存510之后,高速缓存控制电路515将清除所设置的任何对应危险位。
52.在选定的实例中,针对可编程原子操作所采用的方法是提供多个通用的自定义原子请求类型,其可通过小芯片网络585从例如处理器或其它系统组件等起始源发送到存储器控制器小芯片505。高速缓存控制器515或裸片外存储器控制器520将请求识别为自定义原子且将所述请求转发到pau 570。在代表性实施例中,pau 570:(1)是能够有效地执行用户定义的原子操作的可编程处理元件;(2)可对存储器、算术及逻辑操作及控制流决策执行加载及存储;并且(3)利用具有一组新的专用指令的risc-v isa来促进与此类控制器515、520的交互,从而以原子方式执行用户定义的操作。在合乎需要的实例中,risc-v isa含有支持高级语言操作符及数据类型的完整指令集。pau 570可利用risc-v isa,但通常会支持更有限的指令集及有限的寄存器文件大小,以在包含在存储器控制器小芯片505内时减小单元的裸片大小。
53.如上文所提及,在将读取数据写入到高速缓存510之前,存储器危险清除单元560将清除预留高速缓存行的所设置的危险位。因此,当写入合并单元555接收到请求及读取数据时,存储器危险清除单元560可将复位或清除信号传输到高速缓存510以复位预留高速缓存行的所设置的存储器危险位。并且,复位此危险位还将释放涉及所指定(或所保留)的高速缓存行的未决读取或写入请求,从而将未决读取或写入请求提供到入站请求多路复用器以供选择及处理。
54.合并电路系统290经配置以在存储器响应中传递(例如,经由包编码器240)之前响应于存储器请求(例如,从包解码器230接收)而合并来自高速缓存210及裸片外存储器(例
如,裸片外存储器275)的各种响应。如所说明,合并电路系统290可在高速缓存控制器215、裸片外存储器控制器220或可跟踪及完成(例如,合并)存储器请求(例如,事务)的任何其它位置中具有组件。
55.如上所述,高速缓存210及裸片外存储器275、280之间的响应时间可能极大地变化,从而对跟踪及重新组合存储器请求事务的响应产生挑战。尽管存储器控制器205中可存在各种并行管线,但是双路径并行管线的实例包含来自高速缓存210及裸片外存储器的存储器检索。三路并行管线的实例可包含对高速缓存210、快速裸片外存储器(例如,裸片外存储器275是dram)及慢速裸片外存储器(例如,裸片外存储器280是闪存)。
56.为了跟踪事务中的并行操作,日志向量用于每一路径。在每一日志向量内,位位置由索引表示。共享每个向量之间的索引位置,使得与一个向量中的给定索引相关联的事务还与其它向量中的相同索引相关联。然后,通过比较位于事务索引处的位的向量值,可直接使用每个路径的日志向量来确定给定事务是否已经完成每个并行路径中的所有操作。
57.当事务的操作完成时,在对应于事务的位置处,将完成记录在与管线相关联的日志向量中。在实施例中,与管线相关联的控制器(例如,高速缓存控制器215或裸片外存储器控制器220)记录操作的完成(例如,存储器读取完成)。在另一实施例中,合并电路系统290经配置以将完成记录在管线的日志向量中。
58.日志向量是日志向量集合中的一个,其中将日志向量集合中的每一个唯一地指派给相应的并行管线集合。因此,每个并行管线在日志向量集合中具有其自身的日志向量。此外,任何向量中的给定索引对应于事务,使得每个向量中的相同索引对应于相同事务。通常,事务0将是跨越向量集合中所有向量的索引0。因此,如果管线a完成事务0而管线b没有完成,则管线a的向量的索引0将指示事务完成,而管线b的向量的索引0将指示事务未完成。这可使用逻辑1表示完成及逻辑0表示未完成来执行。但是可以理解,在一些实施方案中逻辑可能会反转。
59.每个日志向量可为位向量,使得日志向量的每个元素保持单个位。位向量可用合并电路系统290的寄存器中的一或多个字表示。此表示可便于存储向量以及将向量相互比较以确定给定事务是否完成,如下文所描述。在实例中,为了标记位向量中的元素,合并电路系统290经配置以将位向量的位置设置为逻辑1。当使用标准的逐位比较运算(例如,逐位and运算或逐位or运算)来比较多个管线上的事务状态时,使用逻辑1来指示完成并且使用逻辑0来指示事务未完成可为方便的。
60.合并电路系统290经配置以比较来自两个或更多个日志向量的对应元素。可基于事件执行比较。事件可为当元素标记为完成时、间隔到期时、来自高速缓存控制器215或裸片外存储器控制器220的中断时、或其它触发事件。比较确定哪些事务完成。因此,合并电路系统290经配置以跨越并行管线的日志向量比较给定索引中的事务完成指示。举例来说,如果用于管线a的向量的索引1及用于管线b的向量的索引1都指示完成,则对应于索引1的事务1被视为完成。
61.在实例中,当向量是位向量时,合并电路系统290经配置以通过对整个成员(例如,对向量中的所有索引)执行逐位运算来比较位向量集合的成员中的元素。举例来说,给定三个256位向量,在所有三个向量之间执行逻辑and运算以产生单个256位结果向量。此运算通常可在单个时钟循环内实施。在实例中,逐位运算是and运算。在实例中,当对应于事务索引
的and运算的结果是逻辑1时,事务完成。其中事务完成用逻辑1标记的and运算是确定每个向量完成的方便机制,因为结果向量的给定索引中的逻辑1仅可用所有并行管线向量中的相同索引处的逻辑1来获得。
62.在一些实施方案中,如果少于全部管线完成,则事务可能完成。举例来说,如果事务涉及单个存储器数据单元,则高速缓存210或裸片外存储器满足事务。然而,可并行检查两个位置,以避免例如与在进行裸片外存储器查询之前等待高速缓存未命中相关联的时延。在这些实例中,合并电路系统290可经配置以将逐位or运算用作逐位运算。在实例中,当对应于事务索引的or运算的结果是逻辑1时,事务完成。只要任何管线向量在事务索引处具有逻辑1,事务就完成。因为逐位and及逐位or的实施可在合并电路系统290中消耗很少的硬件面积,所以这两者例如都可包含并在每个时钟循环上执行。在这种类型的实施中,合并电路系统具有两个结果向量。合并电路系统290可基于关于每个事务的元数据而查询适当的结果向量。因此,当所有管线都必须完成才能将事务视为完成时,可为事务查询and结果向量,而当仅一个管线必须完成才能将事务视为完成时,可查询or向量。
63.使用结果向量,合并电路系统290经配置以将对应事务释放到其余管线。这可包含通过片上网络(noc)创建及传递存储器响应、处理额外的相关存储器请求等。
64.合并电路系统290中的轮循仲裁器用于确保公平地处理完成的事务。当仲裁器将事务释放到其余管线时,在日志向量中清除对应位。为了将事务释放到其余管线,仲裁器可将事务数据、元数据或其它信息写入到管线缓冲器。在实例中,合并电路系统290经配置以在轮循序列中从结果向量读取完成的事务。
65.轮循仲裁器可用于提供此功能性。可使用各种轮循仲裁器设计。举例来说,掩码向量可用于在连续循环中从结果向量屏蔽完成的索引。可在转发每个事务以服务下一更高完成索引之后更新掩码向量。可更新掩码直到掩蔽整个请求向量,此时复位掩码并且可识别结果向量中的最低完成索引。因此,在实例中,合并电路系统290中的仲裁器可识别完成事务的最低索引,并且将与此索引相关联的事务转发到其余管线。此实施方案提供全面功能及公平的轮循服务。
66.图3说明根据实施例的通过电子组件的处理流。如所说明,存在处理传入事务请求的请求处理器305(例如,来自图2的包解码器230)。事务请求可为存储器请求。请求处理器305可拆分事务,并且使用快速依序存取管线310a(例如,对高速缓存210的存储器存取)起始第一请求并使用慢速随机存取管线310b(例如,对裸片外存储器280的存储器存取)起始第二请求。这些子请求独立地且异步地进行。应理解,可使用多于两个管线。
67.合并电路系统315(例如,合并电路系统290)将来自快速管线310a及慢速管线310b的结果合并并且将结果提供到响应处理器310(例如,来自图2的包编码器240)。
68.合并电路系统315存取与快速依序存取管线310a及慢速随机存取管线310b相关联的日志向量325a、325b。日志向量使用逻辑组合以产生结果向量330。轮循仲裁器335从结果向量330选择完成事务并且将事务转发到响应处理器320。
69.日志向量325a、325b用于捕获及维持相关联事务的状态。事务数据可存储在关联存储器中。存储器可实施为寄存器,并且存储事务索引标识符与有效负载数据之间的关系(例如,存储器请求由快速或慢速存储器存取管线产生)。合并电路系统315可存取关联存储器以获得对应数据并且将数据转发到响应处理器320。或者,合并电路系统315可将事务的
索引转发到响应处理器320,所述响应处理器然后可使用索引来查找事务数据。事务数据可为请求方从存储器请求的所请求字节、字或其它可寻址数据单元。然后可通过响应处理器320将事务交易返回到原始请求方。
70.图4是根据实施例的用于合并电路中的异步管线合并的方法400的实例的流程图。方法400的操作由计算机硬件,例如关于图1a到1b(例如,存储器控制器小芯片)、图2(例如,合并电路系统290)、图3或图5(例如,处理电路系统)描述的计算机硬件执行。在405处,对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量。第一日志位向量与第一管线相关联,并且第二日志位向量与第二管线相关联。在第一及第二日志位向量的相应索引位置中的位表示事务。
71.在实施例中,第一管线包括快速依序存取管线。在相关实施例中,第二管线包括慢速随机存取管线。
72.在实施例中,第一日志位向量及第二日志位向量具有相同大小。在相关实施例中,第一日志位向量及第二日志位向量各自是256个位。
73.在410处,使用轮循技术从结果向量选择完成事务。在实施例中,第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。在另一实施例中,逐位逻辑运算是and运算,并且其中对应于结果向量中的逻辑1的事务被视为完成。在另一实施例中,逐位逻辑运算是or运算,并且其中对应于结果向量中的逻辑1的事务被视为完成。
74.在实施例中,与第一管线相关联的控制器针对在第一管线中执行的事务设置第一日志位向量的位,所述位表示在第一管线中执行的事务的完成状态。
75.在实施例中,合并电路系统针对在第一管线中执行的事务设置第一日志位向量的位,所述位表示在第一管线中执行的事务的完成状态。
76.在415处,将来自完成事务集合的完成事务转发到输出管线。输出管线可包含响应处理器320。在实施例中,转发完成事务包括传输对应于完成事务的结果向量的索引。在另一实施例中,转发完成事务包含使用对应于完成事务的结果向量的索引来获得对应于完成事务的事务数据,及将事务数据传输到输出管线。在另一实施例中,事务数据包括与存储器请求有关的数据。
77.在实施例中,方法400包含清除在第一及第二日志位向量的对应于完成事务的索引处的位。
78.在实施例中,合并电路系统包含在小芯片系统(例如,小芯片系统110)中的存储器控制器小芯片(例如,存储器控制器小芯片140)中。在另一实施例中,合并电路系统安置在存储器控制器小芯片的输出路径上,所述输出路径在存储器控制器小芯片与由存储器控制器小芯片管理的存储器之间。在另一实施例中,由存储器控制器管理的存储器包含在存储器控制器小芯片上的存储器(例如,高速缓存210),及不在存储器控制器小芯片上的存储器(例如,裸片外存储器275或裸片外存储器280)。
79.图5说明实例机器500的框图,可利用所述机器、在所述机器中或通过所述机器实施本文中所论述的任何一或多种技术(例如,方法)。如本文中所描述,实例可包含机器500中的逻辑或多个组件或机构,或可由机器500中的逻辑或多个组件或机构操作。电路系统(例如,处理电路系统)是在机器500的有形实体中实施的电路集合,其包含硬件(例如,简单电路、门、逻辑等)。电路系统成员资格可随时间推移为灵活的。电路包含当操作时可单独或
以组合方式执行指定操作的部件;因此,在各种情况下,例如在如本说明书中所描述的各种控制器中,处理电路系统可包含一或多个处理器或处理器的核心或其它指令执行装置。在实例中,可以不可改变的方式设计电路系统的硬件以进行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),所述物理组件包含以物理方式修改(例如,不变集中式粒子的磁性、电气可移动放置等)以对特定操作的指令进行编码的机器可读媒体。在连接物理组件时,改变硬件组成部分的根本电性质,例如从绝缘体变为导体,或反之亦然。指令使得嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接以硬件创建电路系统的部件以在处于操作中时实行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的一部分或在装置操作时以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一个可用于多于一个电路系统中的多于一个部件中。举例来说,在操作下,执行单元可在一个时间点用于第一电路系统中的第一电路,且由第一电路系统中的第二电路重新使用,或在不同时间由第二电路系统中的第三电路重新使用。下面是关于机器500的这些组件的额外实例。
80.在替代实施例中,机器500可充当独立装置或可连接(例如,联网)到其它机器。在联网部署中,机器500可在服务器-客户端网络环境中以服务器机器、客户端机器或这两者的容量操作。在实例中,机器500可充当对等(p2p)(或其它分布式)网络环境中的对等机器。机器500可为个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、移动电话、网络器具、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”还应被视为包含单独或联合执行一组(或多组)指令以执行本文论述的方法论中的任何一或多种的任何机器集合,例如云计算、软件即服务(saas)、其它计算机集群配置。
81.机器(例如,计算机系统)500可包含硬件处理器502(例如,中央处理单元(cpu)、图形处理单元(gpu)、硬件处理器核心或其任何组合)、主存储器504、静态存储器(例如,用于固件、微码、基本输入输出(bios)、统一可扩展固件接口(uefi)等的存储器或存储装置)506,及大容量存储装置508(例如,硬盘驱动器、磁带机、快闪存储装置或其它块装置),其中的一些或全部可经由互联件(例如,总线)530彼此通信。机器500可进一步包含显示单元510、字母数字输入装置512(例如,键盘),及用户接口(ui)导航装置514(例如,鼠标)。在实例中,显示单元510、输入装置512及ui导航装置514可为触摸屏显示器。机器500可另外包含存储装置(例如,驱动单元)508、信号生成装置518(例如,扬声器)、网络接口装置520,及一或多个传感器516,例如全球定位系统(gps)传感器、罗盘、加速计或其它传感器。机器500可包含输出控制器528,例如串行(例如,通用串行总线(usb))、并行或其它有线或无线(例如,红外(ir)、近场通信(nfc)等)连接以与一或多个外围装置(例如,打印机、读卡器等)通信或控制所述一或多个外围装置。
82.处理器502、主存储器504、静态存储器506或大容量存储装置508的寄存器可为或包含其上存储有一或多组数据结构或指令524(例如,软件)的机器可读媒体522,所述一或多组数据结构或指令体现本文中所描述的技术或功能中的任何一或多种,或由本文中所描述的技术或功能中的任何一或多种利用。指令524还可在其由机器500执行期间完全或至少部分地驻存在处理器502、主存储器504、静态存储器506或大容量存储装置508的寄存器中的任何一个内。在实例中,硬件处理器502、主存储器504、静态存储器506或大容量存储装置
508中的一个或任何组合可构成机器可读媒体522。虽然机器可读媒体522被说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令524的单个媒体或多个媒体(例如,集中式或分布式数据库,或相关联高速缓存及服务器)。
83.术语“机器可读媒体”可包含能够存储、编码或载送供机器500执行且使机器500执行本公开的技术中的任何一或多者的指令的任何媒体,或能够存储、编码或载送由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体及信号(例如,射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括具有多个粒子的机器可读媒体,所述粒子具有不变(例如,静止)质量,且因此为物质组成。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom))及快闪存储器装置;磁盘,例如内部硬盘及可移式盘;磁光盘;及cd-rom及dvd-rom盘。
84.在实例中,存储或以其它方式提供在机器可读媒体522上的信息可表示指令524,例如指令524本身或可从其导出指令524的格式。可从其导出指令524的此格式可包含源码、编码指令(例如,呈压缩或加密形式)、封装指令(例如,拆分成多个封装)等。表示机器可读媒体522中的指令524的信息可由处理电路系统处理到指令中以实施本文中所论述的操作中的任一个。举例来说,从信息(例如,通过处理电路系统处理)导出指令524可包含:将信息编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态地或静态地链接)、编码、解码、加密、解密、封装、解封装或以其它方式操纵到指令524中。
85.在实例中,指令524的导出可包含(例如,通过处理电路系统)对信息的汇编、编译或解译以从由机器可读媒体522提供的一些中间或预处理格式创建指令524。当在多个部分中提供信息时,可组合、解封装及修改所述信息以创建指令524。举例来说,信息可在一或若干个远程服务器上的多个压缩源代码封装(或目标代码,或二进制可执行代码等)中。源代码封装可在通过网络传输时加密,且在必要时解密、解压缩、汇编(例如,链接),且在本地机器处编译或解译(例如,到可独立执行的库中等),且由本地机器执行。
86.指令524可进一步利用多个传送协议中的任一个(例如,帧中继、因特网协议(ip)、传输控制协议(tcp)、用户数据报协议(udp)、超文本传送协议(http)等)经由网络接口装置520使用传输媒体在通信网络526上传输或接收。实例通信网络可包含局域网(lan)、广域网(wan)、包数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、简易老式电话(pots)网络及无线数据网络(例如,称为的电气电子工程师学会(ieee)802.11系列标准、称为的ieee 802.16系列标准)、ieee 802.15.4系列标准、对等(p2p)网络等等。在实例中,网络接口装置520可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络526。在实例中,网络接口装置520可包含多个天线以使用单输入多输出(simo)、多输入多输出(mimo)或多输入单输出(miso)技术中的至少一个无线地通信。术语“传输媒体”应被视为包含能够存储、编码或载送供机器500执行的指令的任何无形媒体,且包含数字或模拟通信信号或用于促进此软件的通信的其它无形媒体。传输媒体是机器可读媒体。为了更好地说明本文中所描述的方法及设备,一组非限制性实例实施例在下文阐述为带编号的实例。
87.实例1是一种设备,其包括:存储器,其经配置为高速缓存;接口,其可耦合到裸片外存储器;及合并电路系统,其耦合到所述接口及经配置为所述高速缓存的所述存储器,所述合并电路系统经配置以:对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;使用轮循技术从所述结果向量选择完成事务;及将来自完成事务集合的所述完成事务转发到输出管线。
88.在实例2中,根据实例1所述的标的物包含,其中所述第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。
89.在实例3中,根据实例2所述的标的物包含,其中所述逐位逻辑运算是and运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
90.在实例4中,根据实例2至3所述的标的物包含,其中所述逐位逻辑运算是or运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
91.在实例5中,根据实例1至4所述的标的物包含,其中与所述第一管线相关联的控制器针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
92.在实例6中,根据实例1至5所述的标的物包含,其中所述合并电路系统针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
93.在实例7中,根据实例1至6所述的标的物包含,其中转发所述完成事务包括传输对应于所述完成事务的所述结果向量的索引。
94.在实例8中,根据实例1至7所述的标的物包含,其中转发所述完成事务包括:使用对应于所述完成事务的所述结果向量的索引来获得对应于所述完成事务的事务数据;及将所述事务数据传输到所述输出管线。
95.在实例9中,根据实例8所述的标的物包含,其中所述事务数据包括与存储器请求相关的数据。
96.在实例10中,根据实例1至9所述的标的物包含,其中所述存储器控制器将执行操作,包含:清除在所述第一及第二日志位向量的对应于所述完成事务的索引处的位。
97.在实例11中,根据实例1至10所述的标的物包含,其中所述第一管线包括快速依序存取管线。
98.在实例12中,根据实例1至11所述的标的物包含,其中所述第二管线包括慢速随机存取管线。
99.在实例13中,根据实例1至12所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量具有相同大小。
100.在实例14中,根据实例1至13所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量各自是256个位。
101.在实例15中,根据实例1至14所述的标的物包含,其中所述合并电路系统包含在小芯片系统中的存储器控制器小芯片中。
102.在实例16中,根据实例15所述的标的物包含,其中所述合并电路系统安置在所述
存储器控制器小芯片的输出路径上,所述输出路径在所述存储器控制器小芯片与由所述存储器控制器小芯片管理的存储器之间。
103.在实例17中,根据实例16所述的标的物包含,其中由所述存储器控制器管理的存储器包含在所述存储器控制器小芯片上的存储器及不在所述存储器控制器小芯片上的存储器。
104.实例18是一种方法,其包括:由具有合并电路系统的存储器控制器对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;由具有合并电路系统的所述存储器控制器使用轮循技术从所述结果向量选择完成事务;及由具有合并电路系统的所述存储器控制器将来自完成事务集合的所述完成事务转发到输出管线。
105.在实例19中,根据实例18所述的标的物包含,其中所述第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。
106.在实例20中,根据实例19所述的标的物包含,其中所述逐位逻辑运算是and运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
107.在实例21中,根据实例19至20所述的标的物包含,其中所述逐位逻辑运算是or运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
108.在实例22中,根据实例18至21所述的标的物包含,其中与所述第一管线相关联的控制器针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
109.在实例23中,根据实例18至22所述的标的物包含,其中所述合并电路系统针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
110.在实例24中,根据实例18至23所述的标的物包含,其中转发所述完成事务包括传输对应于所述完成事务的所述结果向量的索引。
111.在实例25中,根据实例18至24所述的标的物包含,其中转发所述完成事务包括:使用对应于所述完成事务的所述结果向量的索引来获得对应于所述完成事务的事务数据;及将所述事务数据传输到所述输出管线。
112.在实例26中,根据实例25所述的标的物包含,其中所述事务数据包括与存储器请求相关的数据。
113.在实例27中,根据实例18至26所述的标的物包含清除在所述第一及第二日志位向量的对应于所述完成事务的索引处的位。
114.在实例28中,根据实例18至27所述的标的物包含,其中所述第一管线包括快速依序存取管线。
115.在实例29中,根据实例18至28所述的标的物包含,其中所述第二管线包括慢速随机存取管线。
116.在实例30中,根据实例18至29所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量具有相同大小。
117.在实例31中,根据实例18至30所述的标的物包含,其中所述第一日志位向量及所
述第二日志位向量各自是256个位。
118.在实例32中,根据实例18至31所述的标的物包含,其中所述合并电路系统包含在小芯片系统中的存储器控制器小芯片中。
119.在实例33中,根据实例32所述的标的物包含,其中所述合并电路系统安置在所述存储器控制器小芯片的输出路径上,所述输出路径在所述存储器控制器小芯片与由所述存储器控制器小芯片管理的存储器之间。
120.在实例34中,根据实例33所述的标的物包含,其中由所述存储器控制器管理的存储器包含在所述存储器控制器小芯片上的存储器及不在所述存储器控制器小芯片上的存储器。
121.实例35是一种机器可读媒体,其包含在由具有合并电路系统的存储器控制器执行时使所述存储器控制器执行以下操作的指令:对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;使用轮循技术从所述结果向量选择完成事务;及将来自完成事务集合的所述完成事务转发到输出管线。
122.在实例36中,根据实例35所述的标的物包含,其中所述第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。
123.在实例37中,根据实例36所述的标的物包含,其中所述逐位逻辑运算是and运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
124.在实例38中,根据实例36至37所述的标的物包含,其中所述逐位逻辑运算是or运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
125.在实例39中,根据实例35至38所述的标的物包含,其中与所述第一管线相关联的控制器针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
126.在实例40中,根据实例35至39所述的标的物包含,其中所述合并电路系统针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
127.在实例41中,根据实例35至40所述的标的物包含,其中转发所述完成事务包括传输对应于所述完成事务的所述结果向量的索引。
128.在实例42中,根据实例35至41所述的标的物包含,其中转发所述完成事务包括:使用对应于所述完成事务的所述结果向量的索引来获得对应于所述完成事务的事务数据;及将所述事务数据传输到所述输出管线。
129.在实例43中,根据实例42所述的标的物包含,其中所述事务数据包括与存储器请求相关的数据。
130.在实例44中,根据实例35至43所述的标的物包含,其中所述存储器控制器将执行操作,包含:清除在所述第一及第二日志位向量的对应于所述完成事务的索引处的位。
131.在实例45中,根据实例35至44所述的标的物包含,其中所述第一管线包括快速依序存取管线。
132.在实例46中,根据实例35至45所述的标的物包含,其中所述第二管线包括慢速随
机存取管线。
133.在实例47中,根据实例35至46所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量具有相同大小。
134.在实例48中,根据实例35至47所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量各自是256个位。
135.在实例49中,根据实例35至48所述的标的物包含,其中所述合并电路系统包含在小芯片系统中的存储器控制器小芯片中。
136.在实例50中,根据实例49所述的标的物包含,其中所述合并电路系统安置在所述存储器控制器小芯片的输出路径上,所述输出路径在所述存储器控制器小芯片与由所述存储器控制器小芯片管理的存储器之间。
137.在实例51中,根据实例50所述的标的物包含,其中由所述存储器控制器管理的存储器包含在所述存储器控制器小芯片上的存储器及不在所述存储器控制器小芯片上的存储器。
138.实例52是一种设备,其包括:用于由具有合并电路系统的存储器控制器对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量的装置,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;用于由具有合并电路系统的所述存储器控制器使用轮循技术从所述结果向量选择完成事务的装置;及用于由具有合并电路系统的所述存储器控制器将来自完成事务集合的所述完成事务转发到输出管线的装置。
139.在实例53中,根据实例52所述的标的物包含,其中所述第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。
140.在实例54中,根据实例53所述的标的物包含,其中所述逐位逻辑运算是and运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
141.在实例55中,根据实例53至54所述的标的物包含,其中所述逐位逻辑运算是or运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。
142.在实例56中,根据实例52至55所述的标的物包含,其中与所述第一管线相关联的控制器针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
143.在实例57中,根据实例52至56所述的标的物包含,其中所述合并电路系统针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。
144.在实例58中,根据实例52至57所述的标的物包含,其中所述用于转发所述完成事务的装置包括用于传输对应于所述完成事务的所述结果向量的索引的装置。
145.在实例59中,根据实例52至58所述的标的物包含,其中所述用于转发所述完成事务的装置包括:用于使用对应于所述完成事务的所述结果向量的索引来获得对应于所述完成事务的事务数据的装置;及用于将所述事务数据传输到所述输出管线的装置。
146.在实例60中,根据实例59所述的标的物包含,其中所述事务数据包括与存储器请求相关的数据。
147.在实例61中,根据实例52至60所述的标的物包含用于清除在所述第一及第二日志
位向量的对应于所述完成事务的索引处的位的装置。
148.在实例62中,根据实例52至61所述的标的物包含,其中所述第一管线包括快速依序存取管线。
149.在实例63中,根据实例52至62所述的标的物包含,其中所述第二管线包括慢速随机存取管线。
150.在实例64中,根据实例52至63所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量具有相同大小。
151.在实例65中,根据实例52至64所述的标的物包含,其中所述第一日志位向量及所述第二日志位向量各自是256个位。
152.在实例66中,根据实例52至65所述的标的物包含,其中所述合并电路系统包含在小芯片系统中的存储器控制器小芯片中。
153.在实例67中,根据实例66所述的标的物包含,其中所述合并电路系统安置在所述存储器控制器小芯片的输出路径上,所述输出路径在所述存储器控制器小芯片与由所述存储器控制器小芯片管理的存储器之间。
154.在实例68中,根据实例67所述的标的物包含,其中由所述存储器控制器管理的存储器包含在所述存储器控制器小芯片上的存储器及不在所述存储器控制器小芯片上的存储器。
155.实例69是至少一个机器可读媒体,其包含在由处理电路系统执行时使所述处理电路系统执行操作以实施实例1至68中任一项的指令。
156.实例70是一种设备,其包括用于实施实例1至68中任一项的装置。
157.实例71是一种用于实施实例1至68中任一项的系统。
158.实例72是一种用于实施实例1至68中任一项的方法。
159.以上详细描述包含对附图的参考,所述附图形成所述详细描述的一部分。图式借助于说明展示可实践本发明的特定实施例。这些实施例在本文中也称为“实例”。此类实例可包含除了所示出或所描述的那些元件之外的元件。然而,本发明人还预期其中仅提供所示或所描述的那些元件的实例。此外,本发明人还预期使用相对于特定实例(或其一或多个方面)或相对于本文展示或描述的其它实例(或其一或多个方面)而展示或描述的那些元件的任何组合或排列的实例(或其一或多个方面)。
160.在本文档中,如专利文件中常见,使用术语“一”或“一个”以包含一个或多于一个,这与“至少一个”或“一或多个”的任何其它例子或用途无关。在本文档中,除非另外指示,否则术语“或”用于指代非排他性的或,使得“a或b”可包含“a而非b”、“b而非a”,以及“a及b”。在所附权利要求书中,术语“包含(including)”及“其中(in which)”用作相应术语“包括(comprising)”及“其中(wherein)”的简洁英文等效术语。此外,在以下权利要求书中,术语“包含”及“包括”为开放式的,即,包含除权利要求书中在此术语之后列出的那些元件之外的元件的系统、装置、物品或过程仍被视为在权利要求书的范围内。此外,在以下权利要求书中,术语“第一”、“第二”及“第三”等仅用作标签,并且并不旨在对其对象施加数字要求。
161.以上描述预期为说明性的而非限制性的。举例来说,上文所描述的实例(或其一或多个方面)可彼此组合使用。如所属领域的一般技术人员在查阅以上描述后可使用其它实施例。所述摘要在遵守以下理解的情况下提交:其将不会用于解释或限制权利要求的范围
或含义。同样,在以上详细描述中,可将各种特征分组在一起以简化本公开。此情况不应解释为期望未要求的公开特征对任何权利要求来说是必需的。实际上,本发明的主题可在于比特定公开的实施例的所有特征要少。因此,特此将所附权利要求书并入到具体实施方式中,其中每一权利要求作为一单独实施例而独立存在,且经考虑这些实施例可以各种组合或排列彼此组合。本发明的范围应该通过参考所附的权利要求书以及所述权利要求书所授予的等效物的完整范围来确定。

技术特征:
1.一种设备,其包括:存储器,其经配置为高速缓存;接口,其可耦合到裸片外存储器;及合并电路系统,其耦合到所述接口及经配置为所述高速缓存的所述存储器,所述合并电路系统经配置以:对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;使用轮循技术从所述结果向量选择完成事务;及将来自完成事务集合的所述完成事务转发到输出管线。2.根据权利要求1所述的设备,其中所述第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。3.根据权利要求2所述的设备,其中所述逐位逻辑运算是and运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。4.根据权利要求2所述的设备,其中所述逐位逻辑运算是or运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。5.根据权利要求1所述的设备,其中与所述第一管线相关联的控制器针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。6.根据权利要求1所述的设备,其中所述合并电路系统针对在所述第一管线中执行的事务设置所述第一日志位向量的位,所述位表示在所述第一管线中执行的所述事务的完成状态。7.根据权利要求1所述的设备,其中转发所述完成事务包括传输对应于所述完成事务的所述结果向量的索引。8.根据权利要求1所述的设备,其中转发所述完成事务包括:使用对应于所述完成事务的所述结果向量的索引来获得对应于所述完成事务的事务数据;及将所述事务数据传输到所述输出管线。9.根据权利要求8所述的设备,其中所述事务数据包括与存储器请求相关的数据。10.根据权利要求1所述的设备,其中所述存储器控制器将执行包括,包含:清除在所述第一及第二日志位向量的对应于所述完成事务的索引处的位。11.根据权利要求1所述的设备,其中所述第一管线包括快速依序存取管线。12.根据权利要求1所述的设备,其中所述第二管线包括慢速随机存取管线。13.根据权利要求1所述的设备,其中所述第一日志位向量及所述第二日志位向量具有相同大小。14.根据权利要求1所述的设备,其中所述第一日志位向量及所述第二日志位向量各自是256个位。15.根据权利要求1所述的设备,其中所述合并电路系统包含在小芯片系统中的存储器控制器小芯片中。
16.根据权利要求15所述的设备,其中所述合并电路系统安置在所述存储器控制器小芯片的输出路径上,所述输出路径在所述存储器控制器小芯片与由所述存储器控制器小芯片管理的存储器之间。17.根据权利要求16所述的设备,其中由所述存储器控制器管理的存储器包含在所述存储器控制器小芯片上的存储器及不在所述存储器控制器小芯片上的存储器。18.一种方法,其包括:由具有合并电路系统的存储器控制器对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;由具有合并电路系统的所述存储器控制器使用轮循技术从所述结果向量选择完成事务;及由具有合并电路系统的所述存储器控制器将来自完成事务集合的所述完成事务转发到输出管线。19.根据权利要求18所述的方法,其中所述第一及第二日志位向量存储逻辑1以指示相应第一及第二管线中的完成。20.根据权利要求19所述的方法,其中所述逐位逻辑运算是and运算,并且其中对应于所述结果向量中的逻辑1的事务被视为完成。21.一种机器可读媒体,其包含在由具有合并电路系统的存储器控制器执行使所述存储器控制器执行以下操作的指令:对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;使用轮循技术从所述结果向量选择完成事务;及将来自完成事务集合的所述完成事务转发到输出管线。22.根据权利要求21所述的机器可读媒体,其中转发所述完成事务包括:使用对应于所述完成事务的所述结果向量的索引来获得对应于所述完成事务的事务数据;及将所述事务数据传输到所述输出管线。23.根据权利要求21所述的机器可读媒体,其中所述存储器控制器将执行操作,包含:清除在所述第一及第二日志位向量的对应于所述完成事务的索引处的位。24.根据权利要求21所述的机器可读媒体,其中所述第一管线包括快速依序存取管线。25.根据权利要求21所述的机器可读媒体,其中所述第二管线包括慢速随机存取管线。

技术总结
本文中描述用于异步管线合并的装置及技术。设备包含存储器控制器,所述存储器控制器包含合并电路系统;其中存储器控制器小芯片经配置以执行操作,包含执行以下项的那些操作:对第一日志位向量及第二日志位向量执行逐位逻辑运算以获得结果向量,其中所述第一日志位向量与第一管线相关联并且所述第二日志位向量与第二管线相关联,并且其中在所述第一及第二日志位向量的相应索引位置中的位表示事务;使用轮循技术从所述结果向量选择完成事务;及将所述完成事务从完成事务集合转发到输出管线。线。线。


技术研发人员:M
受保护的技术使用者:美光科技公司
技术研发日:2021.10.08
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐