用于多线程式模式中的功率降低的方法和装置制造方法及图纸

技术编号:20759117 阅读:34 留言:0更新日期:2019-04-03 13:04
描述一种用于降低多线程内容可寻址存储器中的动态功率消耗的方法和装置。所述装置包括第一输入端,所述第一输入端被配置为接收对应于第一线程的第一虚拟地址;第二输入端,所述第二输入端被配置为接收对应于第二线程的第二虚拟地址;寄存器组,所述寄存器组包括多个寄存器,每个寄存器被配置为存储映射到多个物理地址中的一者的二进制字;第一比较器组,所述第一比较器组包括第一多个比较器,每个比较器以完全关联配置联接到所述多个寄存器中的相关联寄存器;第二比较器组,所述第二比较器组包括第二多个比较器,每个比较器以完全关联配置联接到所述多个寄存器中的相关联寄存器。输入到每个比较器组的虚拟地址在对应线程未被选择时维持其前一值。

【技术实现步骤摘要】
【国外来华专利技术】用于多线程式模式中的功率降低的方法和装置相关申请的交叉引用本申请要求2016年8月17日提交的美国非临时专利申请第15/238,920号的权益,所述申请的全部内容通过引用并入文中。
技术介绍
相比计算系统受限于管理计算系统可访问的实际存储器,虚拟存储器允许计算系统更好地管理存储器。例如,作为存储器映射机制的虚拟寻址允许计算系统分配非邻接区域到特定应用程序,同时使应用程序看似被分配存储器的一个邻接区域。另外,虚拟存储器功能允许计算系统分配比计算系统中实际可用的存储器更多的存储器到应用程序。每当应用程序引用实现虚拟存储器的系统上的存储器地址(例如,虚拟地址(VA))时,将地址转换为引用实际存储器位置的物理地址(PA)。因为应用程序与存储器频繁相互作用,虚拟存储器系统内的低效和无弹性可引起性能退化。通过虚拟寻址,处理器可使用通过虚拟地址到物理地址的转换产生的物理地址来访问存储器。为了加速虚拟地址到物理地址的转换进程,处理器可使用转换后备缓冲器(TLB),所述缓冲器是高速缓存虚拟地址到物理地址的转换的内容可寻址存储器(CAM)加上随机访问存储器(RAM)结构。因此,TLB是在计算系统中用于高速缓存虚拟-到-物理地址转换和操作系统(OS)-页面-粒度元数据(例如,读取/写入许可)的硬件结构。TLB对计算系统中的性能可扩展性至关重要,因为TLB是在每次存储器访问后查找,TLB位于关键路径中,并且每个处理器核心或加速器具有自身的TLB。微处理器实现多个线程,以便削减单元数目,由此通过利用微处理器中可成为“死”周期,而导致系统看似存在多个处理器。在微处理器中的许多位置处,用线程标识符(ID)标记管道状态,并且处理器中的现有资源在线程之间共享。此资源共享削减单元数目,但可能相对于功率来说价格高昂,尤其在大量电路活动在线程之间各不相同的情况下。例如,图1示出实现CAM102的多线程系统100的框图。CAM102包括单组寄存器104,所述寄存器联接并且对应于单组比较器106以用于执行写入和查找操作。多线程系统100还包括线程0(T0)和线程1(T1),每个线程包括自身的搜索数据寄存器111和112,所述寄存器存储地址或标签以便输入到CAM102。每个线程的所存储标签被输入到多工器114,所述多工器基于“T1启用”位而选择其中一个标签以输入到CAM102。接着,输入地址116(即,所选标签)被提供到CAM102。一旦使用输入地址116执行查找操作,CAM102基于在寄存器组104中存储的CAM条目而输出匹配结果117(例如,“命中”或“未命中”)。最后,匹配结果117通过AND门118与“任何线程有效”位执行AND操作,从而确保线程(例如,线程0或1)中的一者在输出匹配结果117作为输出119之前有效。在多线程系统100的典型操作中,输入地址116在线程0与线程1之间来回循环。虽然每个线程共享同一组比较器106,在每一周期可取决于搜索数据寄存器111和112所提供的地址内容而在比较器组106的配置中发生触发。将输入触发到比较器的部件(例如,取决于具体实施,XOR、XNOR、OR或AND门)消耗功率。因此,当触发较大数量个比较器或其部件时,状态发生抖动,从而导致动态功率消耗增大。这在来自一个线程的输入地址的大量位不同于来自第二线程的输入地址的位时尤其可能发生,这归因于线程完全独立。如果触发逐周期发生,那么此类功率消耗可能成本高昂。因此,需要降低在多线程式配置实现的TLBCAM中的功率消耗。附图说明可以从结合附图以举例方式给出的以下描述中获得更详细的了解,在附图中:图1是传统的内容可寻址存储器(CAM)的多线程系统实现的框图;图2是可实现一个或多个公开实施方案的实例设备的框图;图3示出根据一个或多个实施方案的在TLBCAM中实现的多位逻辑比较器的示意图;图4是根据一个或多个实施方案的的多线程TLBCAM的框图;图5是根据一个或多个实施方案的实现图4的TLBCAM的多线程处理器的框图;以及图6是根据一个或多个实施方案的多线程式CAM方法的流程图。实施方式图2是可实现一个或多个公开实施方案的实例设备200的框图。设备200可以包括例如计算机、游戏设备、手持式设备、机顶盒、电视、移动电话或平板计算机。设备200包括处理器202、存储器204、存储设备206、一个或多个输入设备208和一个或多个输出设备210。设备200还可任选地包括输入驱动器212和输出驱动器214。应当理解,设备200可包括图2中未示出的附加部件。处理器202可包括中央处理单元(CPU)、图形处理单元(GPU)、位于同一管芯上的CPU和GPU,或一个或多个处理器核心,其中每个处理器核心可以是CPU或GPU。存储器204与处理器202可位于同一管芯上,或可与处理器202分开定位。处理器202可使用转换后备缓冲器(TLB)内容可寻址存储器(CAM)来实现多线程式进程,其中处理器202在线程之间切换执行资源,从而导致并发执行。在共享存储器多处理器环境中的相同多线程式进程中,进程中的每个线程可同时在单独处理器上运行,从而导致并行执行。存储器204可以包括易失性存储器或非易失性存储器,例如,随机访问存储器(RAM)、动态RAM或高速缓存。存储装置206可包括固定存储设备或可移动存储设备,例如硬盘驱动器、固态驱动器、光盘或闪存驱动器。输入设备208可包括键盘、小键盘、触摸屏、触摸板、检测器、麦克风、加速计、陀螺仪、生物识别扫描器或网络连接(例如,用于发射和/或接收无线IEEE802信号的无线局域网卡)。输出设备210可包括显示器、扬声器、打印机、触觉反馈设备、一个或多个灯、天线或网络连接(例如,用于发射和/或接收无线IEEE802信号的无线局域网卡)。输入驱动器212与处理器202和输入设备208通信,并且允许处理器202接收来自输入设备208的输入。输出驱动器214与处理器202和输出设备210通信,并且允许处理器202向输出设备210发送输出。应当注意,输入驱动器212和输出驱动器214是任选部件,并且在输入驱动器212和输出驱动器214不存在的情况下,设备200将以相同方式操作。应当理解,除非另有具体要求,否则术语“虚拟地址”、“输入地址”、“搜索地址”、“输入搜索数据”和“标签”可互换使用,并且在一个或多个方面中一个术语可替换另一术语或与另一术语组合。如本文所用,这些术语是指CAM所搜索的任何二进制查找字,并且可包括页面大小、线程ID(如果适用)和有效是/否位。如本文所述的系统存储器由操作系统管理并且视需要分配给不同软件应用程序。不同软件应用程序可在一个或多个分区中运行,并且一个或多个分区可运行不同操作系统(OS)。如上所述,虚拟存储器技术可用于此类计算机系统,以便在许多进程与应用程序之间共享计算系统的物理存储器。因此,软件应用程序处理虚拟存储器空间中的有效地址,这允许应用程序在需要时执行一个或多个进程(例如,读取、写入,和/或执行),而无需关注操作发生的实际物理存储器位置。应用程序依赖于将每个应用程序执行从应用程序所使用的有效地址到计算机存储器中的物理地址的映射作为基础的操作系统。地址转换是引用虚拟存储器的有效地址藉以转换到真实存储器地址的机制。地址转换的本文档来自技高网...

【技术保护点】
1.一种多线程内容可寻址存储器(CAM)设备,其包括:第一输入端,所述第一输入端被配置为接收对应于第一线程的第一虚拟地址;第二输入端,所述第二输入端被配置为接收对应于第二线程的第二虚拟地址;寄存器组,所述寄存器组包括多个寄存器,每个寄存器被配置为存储映射到多个物理地址中的一者的二进制字;第一比较器组,所述第一比较器组包括第一多个比较器,每个比较器以完全关联配置联接到所述多个寄存器中的一者,其中所述第一多个比较器中的每一个被配置为当所述第一线程启用且有效时接收所述第一虚拟地址并且当所述第一线程停用或无效时接收前一第一虚拟地址,其中所述前一第一虚拟地址是上次所述第一线程启用且有效时所述第一输入端所接收的所述第一虚拟地址;以及第二比较器组,所述第二比较器组包括第二多个比较器,每个比较器以所述完全关联配置联接到所述多个寄存器中的一者,其中所述第二多个比较器中的每一个被配置为当所述第二线程启用且有效时接收所述第二虚拟地址并且当所述第二线程停用或无效时接收前一第二虚拟地址,其中所述前一第二虚拟地址是上次所述第二线程启用且有效时所述第二输入端所接收的所述第二虚拟地址。

【技术特征摘要】
【国外来华专利技术】2016.08.17 US 15/238,9201.一种多线程内容可寻址存储器(CAM)设备,其包括:第一输入端,所述第一输入端被配置为接收对应于第一线程的第一虚拟地址;第二输入端,所述第二输入端被配置为接收对应于第二线程的第二虚拟地址;寄存器组,所述寄存器组包括多个寄存器,每个寄存器被配置为存储映射到多个物理地址中的一者的二进制字;第一比较器组,所述第一比较器组包括第一多个比较器,每个比较器以完全关联配置联接到所述多个寄存器中的一者,其中所述第一多个比较器中的每一个被配置为当所述第一线程启用且有效时接收所述第一虚拟地址并且当所述第一线程停用或无效时接收前一第一虚拟地址,其中所述前一第一虚拟地址是上次所述第一线程启用且有效时所述第一输入端所接收的所述第一虚拟地址;以及第二比较器组,所述第二比较器组包括第二多个比较器,每个比较器以所述完全关联配置联接到所述多个寄存器中的一者,其中所述第二多个比较器中的每一个被配置为当所述第二线程启用且有效时接收所述第二虚拟地址并且当所述第二线程停用或无效时接收前一第二虚拟地址,其中所述前一第二虚拟地址是上次所述第二线程启用且有效时所述第二输入端所接收的所述第二虚拟地址。2.如权利要求1所述的多线程CAM设备,其中,所述第一比较器组与所述第二比较器组分开,并且等同于所述第二比较器组。3.如权利要求1所述的多线程CAM设备,其中:所述第一多个比较器中的每一个被配置为当所述第一线程停用或无效时,维持对应于输入到所述第一比较器组的所述前一第一虚拟地址的第一输入状态,并且所述第二多个比较器中的每一个被配置为当所述第二线程停用或无效时,维持对应于输入到所述第二比较器组的所述前一第二虚拟地址的第二输入状态。4.如权利要求1所述的多线程CAM设备,其中:所述第一多个比较器中的每一个被配置为比较基于所述第一线程的启用状态的所述第一虚拟地址和所述前一第一虚拟地址中的一者跟与其相关联的寄存器中所存储的二进制字,以用于确定第一匹配是否存在,并且所述第一比较器组被配置为输出所述第一多个比较器的第一比较结果,并且所述第二多个比较器中的每一个被配置为比较基于所述第二线程的启用状态的所述第二虚拟地址和所述前一第二虚拟地址中的一者跟与其相关联的所述寄存器中所存储的所述二进制字,以用于确定第二匹配是否存在,并且所述第二比较器组被配置为输出所述第二多个比较器的第二比较结果。5.如权利要求4所述的多线程CAM设备,其还包括:第一逻辑部件,所述第一逻辑部件联接到所述第一比较器组的第一多个匹配线路;以及第二逻辑部件,所述第二逻辑部件联接到所述第二比较器组的第二多个匹配线路,其中,所述第一逻辑部件被配置为基于在所述第一多个匹配线路上接收的所述第一比较结果而输出第一总结命中指示,并且所述第二逻辑部件被配置为基于在所述第二多个匹配线路上接收的所述第二比较结果而输出第二总结命中指示。6.如权利要求5所述的多线程CAM设备,其中:所述第一总结命中指示指出在所述第一多个比较器中的至少一个将所述第一虚拟地址跟与其相关联的所述寄存器中所存储的所述二进制字匹配的情况下,所述第一匹配存在,并且所述第二总结命中指示指出在所述第二多个比较器中的至少一个使所述第二虚拟地址跟与其相关联的所述寄存器中所存储的所述二进制字匹配的情况下,所述第二匹配存在。7.如权利要求5所述的多线程CAM设备,其还包括:逻辑电路,所述逻辑电路被配置为接收所述第一总结命中指示和所述第二总结命中指示,并且输出最终结果,其中,每次所述第一线程和所述第二线程中的一者启用,并且在所述第一线程启用的情况下所述最终结果是所述第一总结命中指示,并且在所述第二线程启用的情况下所述最终结果是所述第二总结命中指示。8.如权利要求4所述的多线程CAM设备,其还包括:逻辑电路,所述逻辑电路被配置为基于所述第一多个比较器的所述第一比较结果而接收第一总结命中指示,基于所述第二多个比较器的所述第二比较结果而接收第二总结命中指示,并且输出最终结果,其中,每次所述第一线程和所述第二线程中的一者启用,并且在所述第一线程启用的情况下所述最终结果是所述第一总结命中指示,并且在所述第二线程启用的情况下所述最终结果是所述第二总结命中指示。9.如权利要求1所述的多线程CAM设备,其中,在所述第一线程启用且有效的情况下,所述第一多个比较器中的每一个从第一地址寄存器接收所述第一虚拟地址,并且在所述第二线程启用且有效的情况下,所述第二多个比较器中的每一个从第二地址寄存器接收所述第二虚拟地址。10.如权利要求1所述的多线程CAM设备,其还包括:第一地址寄存器,所述第一地址寄存器被配置为存储所述第一虚拟地址,并且所述第一比较器组被配置为在所述第一线程启用且有效的情况下从所述第一地址寄存器接收所述第一虚拟地址;以及第二地址寄存器,所述第二地址寄存器被配置为存储所述第二虚拟地址,并且所述第二比较器组被配置为在所述第二线程启用且有效的情况下从所述第二地址寄存器接收所述第二虚拟地址。11.如权利要求1所述的多线程CAM设备...

【专利技术属性】
技术研发人员:安东尼·J·比贝尔
申请(专利权)人:超威半导体公司
类型:发明
国别省市:美国,US

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

1