首页> 中国专利> 高功率机器学习ASIC中使用指令速率限制的功率节流机制

高功率机器学习ASIC中使用指令速率限制的功率节流机制

摘要

本公开涉及高功率机器学习ASIC中使用指令速率限制的功率节流机制。一种系统包含机器学习ASIC和电源单元。所述电源单元和ASIC被配置为通过在ASIC和电源单元上的专用引脚进行数据通信。所述电源单元检测ASIC的当前功耗。在确定已经满足阈值状态时,所述电源单元响应于该状态向ASIC发送数字信号。所述ASIC包含同步器,该同步器将数字信号同步为与ASIC的内部时钟频率一致。芯片管理器对所述同步信号和其它信号进行处理,以生成节流掩码。所述节流掩码被发送到ASIC的定序器,然后该定序器基于所述掩码限制到ASIC的处理单元中的指令流。这转而限制了由ASIC消耗的功率。

著录项

说明书

技术领域

本公开涉及高功率机器学习ASIC中使用指令速率限制的功率节流机制。

背景技术

随着机器学习(machine learning,ML)应用的使用增加,对被配置成处理这些应用的ASIC的需求也在增加。然而,由于ASIC被设计来处理的应用不断演进,为特定应用进行设计、测试和制造ASIC的时间周期很短,因为太长的延迟可能导致所述ASIC过时。而且,ASIC被设计来用于其中的系统通常是在所述ASIC的设计和制作之前被设计和制造的。虽然所述系统的设计和制造可以考虑关于所述ASIC的操作参数的估计(诸如所述ASIC所需的功率量),但是这些估计可能与所述ASIC的实际操作参数显著不同。

在ASIC的功率需求超出系统的供应能力的情况下,所述ASIC的持续操作可能会产生所述ASIC或电源将过热的风险,从而潜在地损坏所述系统和/或ASIC。为了避免这些风险,当由所述ASIC抽取的功率超过所述电源可以安全处理的水平时,所述电源可以停止向ASIC供应功率。关断ASIC可能会导致正在由ML-ASIC执行的作业丢失、系统计算能力的可用性降低以及计算时间的浪费,这限制了所述ASIC的可用性。

发明内容

本技术的一方面提供了一种系统,所述系统包括:集成电路(IC)管芯;电压调节器;所述电压调节器通过感测线路连接到所述IC管芯,所述电压调节器被配置成测量所述感测线路上的电流负载、确定所述电流负载是否满足指示过电流状态的阈值水平、以及在确定存在过电流状态时向所述IC管芯提供指示过电流状态的信号;所述IC管芯被配置为响应于接收到指示过电流状态的信号,根据节流掩码来限制所述IC管芯的处理速率,其中所述节流掩码限制要由所述IC管芯中的一个或多个处理器处理的数据的速率。

本技术的另一方面提供了一种系统,该系统包括以下的任意组合:集成电路(IC)管芯;电压调节器;所述电压调节器通过感测线路连接到所述IC管芯,所述电压调节器被配置为测量所述感测线路上的电流负载、确定所述电流负载是否满足指示过电流状态的阈值水平、以及在确定存在过电流状态时向所述IC管芯提供指示过电流状态的信号;所述IC管芯被配置为响应于接收到指示过电流状态的信号,根据节流掩码来限制所述IC管芯的处理速率,其中所述节流掩码限制要由所述IC管芯中的一个或多个处理器处理的数据的速率;专用通信线路,该专用通信线路用于通信传送指示过电流状态的信号;定序器,该定序器被配置成接收指示过电流状态的信号;所述定序器被配置为将接收的指示过电流状态的信号与IC管芯的内部时钟同步;芯片管理器,该芯片管理器被配置成生成节流掩码;所述节流掩码基于指示过电流状态的信号;该定序器被配置成根据所述节流掩码来限制一个或多个处理器的处理速率;所述电压调节器被配置成测量所述IC管芯处的电流负载;所述电压调节器被配置成测量所述处理速率的电流负载是否是被限制;所述电压调节器被配置成在电压调节器确定所述过电流状态不再满足所述阈值水平时提供第二信号。

本技术的另一方面提供了一种调节集成电路(IC)的功率使用的方法,该方法包括:通过电压调节器测量电流负载;由所述电压调节器确定所述电流负载满足指示过电流状态的阈值水平;由所述电压调节器向所述IC管芯提供指示过电流状态的信号;响应于所接收的信号,根据节流掩码限制所述IC管芯的处理速率,所述节流掩码限制要由所述IC管芯中的一个或多个处理器处理的数据的速率。

本技术的另一方面提供了一种调节集成电路(IC)的功率使用的方法,该方法包括以下的任意组合:由电压调节器测量电流负载;由所述电压调节器确定所述电流负载满足指示过电流状态的阈值水平;由所述电压调节器向所述IC提供指示过电流状态的信号;响应于所接收的信号,根据节流掩码限制所述IC管芯的处理速率,所述节流掩码限制要由所述IC管芯中的一个或多个处理器处理的数据的速率;所述指示过电流状态的信号通过专用通信线路被提供给所述IC;所述电压调节器向所述IC的定序器提供指示过电流状态的信号;所述定序器被配置为将指示过电流状态的信号与所述IC的内部时钟同步;所述节流掩码基于指示过电流状态的信号;所述IC的定序器根据所述节流掩码限制所述一个或多个处理器的处理速率;所述电压调节器测量所述IC处的电流负载;通过所述电压调节器测量所述处理速率的电流负载被限制;在确定所述过电流状态不再满足所述阈值水平时,向所述电压调节器提供第二信号。

附图说明

附图不旨在按比例绘制。各附图中相同的附图标记和名称表示相同的元件。为了清楚起见,并非每个组件都在每个附图中标记。在附图中:

图1A是根据本公开的各方面的示例机器学习系统的框图;

图1B是根据本公开的各方面的示例机器学习系统的框图;

图2是示出了ML-ASIC的动态节流的流程图200;

图3是进一步示出根据本公开的各方面的由ML-ASIC执行的动态节流的流程图;

图4是示出了根据本公开的各方面的ML-ASIC返回到正常操作状态的流程图;

图5是根据本公开的各方面的示例机器学习系统集群的框图;

图6是根据本公开的各方面的在控制信号和电流之间的关系图。

具体实施方式

本公开一般涉及动态节流机器学习专用集成电路(machine learningapplication specific integrated circuit,ML-ASIC)。ML-ASIC从电源抽取其功率,该电源可以监控ML-ASIC所要求的功率量。ML-ASIC还可以包含定序器,该定序器控制要由ML-ASIC处理的指令流。在高工作负载时段期间,ML-ASIC可以从电源抽取更多功率。由ML-ASIC抽取的功率方面的增加可能导致热量的增加,这会损坏ML-ASIC。为了限制由所述ML-ASIC生成的热量的量,定序器可以节流由所述ML-ASIC处理的指令的速率。通过对所述ML-ASIC进行节流,可以减少所述ML-ASIC的操作所需的功率量,从而减少由ML-ASIC生成的热量和由过热导致的对ML-ASIC损坏的风险。如下文更详细描述的那样,可以响应于所述电源感测到ML-ASIC已经越过阈值水平来进行节流。

典型的专用集成电路(ASIC)可以从所述电源抽取功率,所述电源可以具有过电流保护(Over Current Protection,OCP)阈值。所述OCP阈值可以对应于由ASIC请求的功率量。在这方面,在ASIC抽取的电流超过OCP阈值时,所述电源可以停止向所述ASIC的功率递送。在没有功率可用的情况下,所述ASIC关断。这个事件被称为OCP事件。OCP事件用于防止由于消耗过多功率而导致的对ASIC的损坏。虽然有利于防止对ASIC的永久性损坏,但OCP事件导致由ASIC所做的所有工作的损失。

如本文所述,通过使用调节器信号和同步这些调节器信号,以及通过附加的硬件,所述ML-ASIC也可以安全地运行工作负载,而没有触发OCP事件的风险,即使是在处理否则会导致ML-ASIC消耗比所述ML-ASIC针对其设计的功率量更高的功率量的指令集或工作负载时。

示例系统

图1A和图1B示出了示例系统100的各方面和组件。参考图1A,所述系统100包括ML-ASIC 110以及功率和控制系统190。所述功率和控制系统190和所述ML-ASIC 110可以通过各种数据线路和电源线路连接,诸如线路195至199。尽管图1A和图1B示出了ML-ASIC,但是可以使用任何类型的处理器、集成电路或专用集成电路。

功率和控制系统190可以向ML-ASIC 110提供功率和控制信号。例如,功率可以经由电源线路197递送到ML-ASIC 110,并且控制信号(诸如本文描述的控制信号192)可以经由数据线路199递送。所述功率和控制系统190还可以被配置成监控ML-ASIC的操作。例如,所述功率和控制系统190可以监控由在感测线路195上的感测信号194提供的ML-ASIC 110的功率使用。所述感测信号194可以包括由ML-ASIC 110抽取的电流、电压和/或瓦特数。尽管图1A将线路195至199示为三条分立的线路,但是这些线路可以组合成线路和/或多条线路的任意组合。例如,感测线路195和数据线路199可以是相同的线路,而功率线路197保持分离。在该示例中,控制信号192和感测信号194可以通过相同的线路传输。在另一示例中,功率可以经由两条分立的线路递送。每条线路可以是专用的物理线、迹线或经由专用的物理引脚、焊点或其它这样的连接器附接的其它这样的互连件。

功率和控制系统190可以包括电压调节器191和去毛刺电路193。所述电压调节器191可以被配置成控制或者限制通过功率线路197提供给ML-ASIC 110的功率量。如本文所述,电压调节器可以监控经由感测线路195接收的感测信号194,以获得由ML-ASIC 110抽取的功率量。例如,所述感测信号194可以包括连续或接近连续的模拟或数字信号,该信号指示由ML-ASIC 110从电压调节器191抽取的电流、电压和/或瓦特数。

所述电压调节器可以响应于被监控的感测信号194发送控制信号192。在这方面,所述控制信号192可以基于监控从所述电压调节器191传递到ML-ASIC 110的电压、电流或功率的量而生成。如本文所述,所述控制信号192可以响应于由所述电压调节器191在感测线路195上检测到的某些状态,诸如阈值状态。

例如,所述电压调节器191可以响应于如在感测线路195上所提供的由ML-ASIC超过的预定电流电平而生成标志。响应于所述预定电流被超过,诸如过电流保护标志“OCP_标志”(OCP_FLAG)的标志可以生成、设置或者被标记在所述电压调节器中。在生成OCP_标志时,所述电压调节器191可以向ML-ASIC 110发送信号,诸如控制信号192。所述控制信号192可以使ML-ASIC 110节流,或者限制它执行的处理量,从而使ML-ASIC 110抽取更少的功率,最终逆转导致所述OCP状态的状态,如本文进一步描述的那样。可以由所述电压调节器191和/或所述功率和控制系统190向ML-ASIC 110发送多于一个或一系列的控制信号。在其它示例中,当标志被设置时,所述电压调节器可以减少提供给ML-ASIC的功率量。

OCP_标志可以针对至少预定的时间量(诸如10、20或50纳秒(ns))进行设置。在检查到导致标志被设置的状态没有在预定时间量(例如固定数量的纳秒(ns)或微秒(μs))内发生之后,所述标志可以被重置或取消标记。一旦所述标志被移除,电压调节器可以停止向ML-ASIC 110发送控制信号192,从而允许ML-ASIC 110逐渐恢复功率。在其它示例中,所述电压调节器191可以发送新的控制信号,该新的控制信号被配置为向ML-ASIC 110指示不再超过预定电流,并且ML-ASIC可以逐渐恢复功率。

在某些情况下,OCP_标志可能有不同的设置和取消设置的标准。例如,三个标志——OCP_标志_1、OCP_标志_2和OCP_标志_3——可以各自在所述ML-ASIC 110满足不同或相同的过电流或过电压状态之后被设置。这些标志可以具有不同的数据结构,诸如不同的位长度,或者不同的编码,以在所述标志的每个级别中包括不同类型或量的信息,并且从而以不同的方式控制ML-ASIC的操作。

所述电压调节器191还可以包含去毛刺电路193,用于对可能从模拟信号(诸如通过感测线路195到达的模拟信号)生成毛刺的状态变化进行去毛刺处理。毛刺可能发生在模数电路中,其中不旨在被检测到的模拟信号在模数转换器中产生误报(false positive)。被监控的感测信号可能是有噪声的,并且包含可能错误地触发OCP_标志的短持续时间的脉冲。在所述去毛刺电路193中还可以包括可以对检测到毛刺的检测器的输出生成响应以抑制所述毛刺的发生器,以及包括可以消除所述毛刺的附加电路。例如,所述去毛刺电路193可以通过使用滤波器或迟滞电路来滤除所述噪声或能够错误触发OCP_标志的其它这种脉冲。在一些情况下,所述去毛刺电路193可以使用定时电路,该定时电路要求信号在预定时间量内在阈值之上以便被记录并触发OCP_标志。可以由所述去毛刺电路193使用滤波器和电路的组合。尽管被示出为分离的部件,但是电压调节器191和去毛刺电路193可以封装在一个单元中。

参考图1B,ML-ASIC 110包括电源单元120、能够接收信号(诸如外部信号196)的同步器130、芯片管理器140、处理器161、存储器162、指令163、数据164、数据端口170和定序器180。

所述电源120可以经由功率线路197从功率和控制系统190接收电功率。电源120可以向ML-ASIC 110的其它组件(诸如处理器161和同步器130)提供功率。

同步器130能够从电压调节器191接收信号(诸如控制信号192),并且将该信号与ML-ASIC 110的内部时钟同步。

ASIC通常使用线性计算技术。ASIC通常具有时钟速度或时钟速率,这基于其处理器的频率。ASIC通常也具有时钟周期,时钟周期是时钟速度的倒数。时钟周期是处理一组指令和下一组指令之间的时间间隔。增加时钟速度会增加在一段时间内(由时钟速度定义)可以由所述ASIC完成的工作量或处理量,并且进而减少时钟周期。不同的ASIC可能具有不同的时钟速度,并且因此具有不同的时钟周期。其它ASIC可能具有可变的时钟速度,这可以改变该ASIC的时钟周期。由于时钟周期是其中ASIC可能响应于指令的基本周期或最小时间间隔,因此异步到达的信号将不会得到适当处理。

可能有必要将ASIC外部的信号与ASIC内部的信号同步,以使两个信号同相,使得它们由ASIC的处理器按预期一起处理。

因此,来自ML-ASIC的外部的信号(诸如控制信号192)会与ML-ASIC 110内部的信号“异相”或在不同的时钟上。因此,有必要使用同步器130来同步这些外部信号。同步器130还可以在同步信号之后,将(由所述同步器产生的)同步值发送到ML-ASIC内的其它地方。所述同步器还可以接收源自在功率和控制系统190以及ML-ASIC110两者外部的源的其它外部信号,诸如外部信号196。所述外部信号可以由软件生成,或者可以是响应于ML-ASIC 110存在于其中的环境状态而生成的信号。如下文进一步解释的那样,可能有必要将控制信号192与所述ASIC内部的信号集成或编译在一起。因此,所述同步器130可以确保所述控制信号和所述ASIC内部的信号是“同相的”。

进一步,ASIC还可以具有内部“触发器”电路、S-R电路或D锁存电路,它们仅在数据输入被激活或允许的时间窗口期间响应数据输入。太接近该窗口结束时到达的信号会使所述输入信号朝向所述输入时间窗口的结束而变化,并且导致此类电路运转不正确。这转而会导致这种电路停止以数字的方式运转,替代地导致它们具有未定义的输出。因此,可能有必要同步到达所述ML-ASIC处的单个信号,以确保所述信号不会在输入时间窗口中的不正确的点处被采样。同步确保了所述信号被正确地解释,并且所述输入信号不会导致意外或未定义的行为(这可能会导致所述ML-ASIC的稳定性问题)。外部信号(诸如控制信号192)可以被同步以避免这些问题。在一些示例中,还可能有必要同步所述信号,以避免由于在相对于输入时间窗口的不正确的点对输入信号进行采样而导致的未定义的输出。在其它示例中,所述同步器130可以发送在ML-ASIC 110的其它地方由其产生的同步值。

ML-ASIC 110还包含芯片管理器140,该芯片管理器可以作为ML-ASIC 110的中央控制单元工作。在这方面,所述芯片管理器140控制ML-ASIC 110的各个方面,例如其指令速率。如图1中以虚线所示出的那样,所述芯片管理器140与ASIC的各种组件(诸如同步器130)处于数据通信。

由ML-ASIC执行的这个指令可以由定序器180控制。在这方面且如本文详细描述的那样,所述定序器180可以减少或节流到所述处理器161的指令流,如本文所述。在一些情况下,所述定序器180可以是根据本文描述的节流掩码控制所述指令流的ML-ASIC和/或处理器161的一部分。

一个或多个处理器161可以是任何常规处理器,诸如商业上可获得的微处理器或专门适配的集成电路。处理器161可以被配置成基于从所述定序器180接收的指令流来处理指令。

存储器162可以存储可由处理器161访问的信息,包括可以由处理器161执行的指令163以及数据164。所述存储器162可以是可操作来存储可由所述处理器161访问的信息的存储器类型,包括非暂时性计算机可读介质、或者存储可以借助于电子设备读取的数据的其它介质,诸如硬盘驱动器、存储卡、只读存储器(ROM)、随机存取存储器(RAM)以及其它可写和只读存储器。本文公开的主题可以包括前述内容的不同组合,由此所述指令163和数据164的不同部分被存储在不同类型的介质上。

可以由处理器161根据所述指令163提取、存储或修改数据164。例如,尽管本公开不限于特定的数据结构,但是所述数据164可以存储在计算机寄存器中、在关系数据库中作为具有多个不同字段和记录的表、XML文档或平面文件。所述数据164也可以以计算机可读的格式格式化,例如但不限于二进制值、ASCII或Unicode(统一码)。而且,所述数据164可以包括足以标识相关信息的信息,诸如数字、描述性文本、专有代码、指针、对存储在其它存储器(包括其它网络位置)中的数据的引用或者由函数用来计算相关数据的信息。数据164还可以包含由ML-ASIC 110接收以处理的指令或指令集。

所述指令163可以是由ML-ASIC 110选择性调用或执行的算法。例如,所述指令可以是概述某些命令如何在ML-ASIC 110上执行的算法。指令163也可以集成到ASIC的各种组件中,以执行在本公开中描述的功能。

数据端口170可以是允许从ML-ASIC 110输入和/或输出数据的物理端口。例如,数据端口170可以发送和接收命令或计算以便ML-ASIC110进行响应。

在图1B中还以虚线示出的是在ML-ASIC内的组件通过其进行通信的信息路径(诸如路径170a至170d)。例如,芯片管理器140和定序器180可以经由路径170a彼此通信,芯片管理器140和数据端口170可以经由路径170b通信,芯片管理器140和定序器180可以经由路径170c通信,并且定序器180和处理器161可以经由路径170d通信。尽管在图1B中仅示出了四条路径,但是在ML-ASIC 110中可以包括在各组件之间的其它路径。本领域技术人员将理解,这些路径可以集成到所述ASIC中,或者通过专用互连件和连接器来实现。

示例方法

除了以上描述和附图中示出的操作之外,现在将描述各种操作。应当理解的是,以下操作不必以下面描述的精确顺序来执行。相反,可以以不同的顺序或同时处理各种步骤,并且也可以添加或省略步骤。

图2是示出了ML-ASIC(诸如ML-ASIC 110)的动态节流的流程图200。在框205,电压调节器(诸如电压调节器191)可以监控感测线路195以获得指示满足阈值状态的感测信号194。例如,阈值状态可以是由ML-ASIC 110抽取的过大电流或电压。

响应于检测到阈值状态,电压调节器191可以向ML-ASIC 110发送信号(诸如控制信号192),如框210中所示。在一些情况下,在发送控制信号之前,所述电压调节器191可以生成OCP_标志,如本文所讨论的。设置OCP_标志可以触发控制信号192被发送到ML-ASIC110。所述控制信号192可以是数字信号,与模拟信号相比,该数字信号允许被发送到ML-ASIC 110的指令中的更多的粒度和精度。所述控制信号可以被预先配置为是ML-ASIC 110理解的,并且可以以固定的时间间隔重复发送或者不断地由电压调节器191使其生效。例如,被生效的信号可以是编程的信号,诸如“停止”(STOP)或“制动”(BRAKE)信号,其可以由ML-ASIC 110配置以停止进一步的处理。在一些示例中,所述电压调节器可以基于感测线路中感测到的特定状态发送不同的信号。在其它示例中,控制信号192可以基于感测到的状态从一组预定信号中选择。

响应于所述控制信号192,ML-ASIC 110可以应用节流掩码,如框215中所示。如本文所述,所述节流掩码可以是由ML-ASIC 110采取的一系列步骤以限制由处理器161执行的处理,从而限制ML-ASIC的功率抽取。

图3示出了概述在接收到控制信号192时由ML-ASIC 110执行的所述步骤的流程图300。在这方面,在接收到控制信号192时,同步器130可以将ML-ASIC 110外部的所述控制信号192与ML-ASIC 110的核心时钟域同步。外部模拟信号(诸如控制信号192)可以在两个时钟周期之间或在它们的边缘到达。所述外部模拟信号需要与内部时钟信号同步,使得它可以被转换成数字信号以便由所述ML-ASIC 110处理。还可能需要同步所述外部模拟输入信号,以避免由于在相对于输入时间窗口的不正确的点对所述外部模拟输入信号进行采样而导致的未定义的输出。通过同步所述控制信号192,所述ML-ASIC的节流可以在纳秒量级上发生,并且因此实现来自ML-ASIC的高效率,同时仍然保护所述ASIC免受过电流或过功率事件的影响。

在框310,所述同步器130可以将接收到的控制信号192或由同步器响应于接收到的控制信号192而生成的信号通信传送给芯片管理器140。

在框315,可以由芯片管理器140生成节流掩码。所述节流掩码可以节流或减少ML-ASIC的处理器161的指令流。所生成的节流掩码可以将所述ML-ASIC 110保持在预定参数内,以确保功率使用在预定阈值内。例如,所述节流掩码可以确保由ML-ASIC 110接收的电压总是在上限和下限内,并且总是由电压调节器191向ML-ASIC供应最小量的功率。

芯片管理器140可以包含各种算法以生成节流掩码。在一些示例中,所述节流掩码可以是一系列步骤,其中每个步骤定义了对处理器161在特定时段中可以执行的指令数量的限制。在一些示例中,可以针对ML-ASIC 110的特定功能单元生成截然不同的掩码(诸如浮点单元、整数单元或向量单元的掩码)或将不同的掩码应用于ML-ASIC 110的特定功能单元,使得在给定的掩码周期中,只有在ML-ASIC 110内的元件或组件中的一些被禁用或节流。在一些示例中,节流掩码可以是节流百分比,其中所述百分比对周期进行倒计数以停止所述ML-ASIC的操作,而不特别生成编码掩码。在一些示例中,节流掩码可以是二进制字符串,诸如“11110011”,其中“1”将指示芯片正常运行,而“0”指示芯片以“无操作”或空闲运行。所述节流掩码内的每个“1”或“0”可以指示相当于所述ML-ASIC的一个时钟周期的持续时间,使得,“1”将指示其中所述芯片正在运行的一个周期,而“0”指示其中所述芯片正在空闲的一个周期。在这个示例的二进制字符串中,由于其中有两个“0”和六个“1”,因此该字符串指示2/8(或25%)的总节流率。在其它示例中,所述节流掩码可以是具有更长或更短的字符串长度的二进制字符串。

芯片管理器140还可以集合ML-ASIC 110内部的其它数字信号。例如,ML-ASIC 110还可以生成数字信号或指示符标志,以指示所述ASIC正在过热地运行。在一个示例中,所述ML-ASIC 110可以生成数字信号,诸如“PROC_热”,以指示在所述ML-ASIC 110中的处理器正在热地运行。由于这个信号是在ML-ASIC 110内生成的,所述同步器130不需要将其与ML-ASIC 110的时钟同步。在一些示例中,所述同步器可以在所有信号被中继到芯片管理器140之前首先接收所有信号。

可以由多个同步器接收多个外部信号。所述同步然后可以被中继到芯片管理器140。这使得同步器130能够同步一个或多个外部信号,并允许由芯片管理器140生成更好地与ML-ASIC在其中操作的实时状态相对应的节流掩码。由所述芯片管理器140生成的节流掩码可以结合来自多个源的信息或节流请求,包括硬件和软件请求,诸如控制信号192、内部ASIC信号(例如PROC_热)、或可以通过数据端口170接收的其它软件请求。其它软件请求可以不同于外部信号196,并且可以指示与所述ML-ASIC的功率控制分开的或除ML-ASIC的功率控制以外的信息。芯片管理器可以将生成的掩码发送给定序器以应用所述掩码。

如框320处所示,可以由定序器180应用所生成的节流掩码。在这方面,定序器180可以根据所述节流掩码来调节到所述处理器161的指令流。如所讨论的那样,所生成的节流掩码可以包括用于限制处理器161的指令速率的一系列步骤。所述定序器180可以是用于处理到处理器(诸如CPU、GPU或TPU)的指令流的任何功能块或组件。

如由箭头325所示,可以重复步骤305至320。例如,如果不满足停止节流的特定状态,则所述节流可以继续或者用另一掩码重新计算。在一些示例中,所述特定状态可以是由所述ML-ASIC 110从功率和控制单元190接收的“释放”信号。在其它示例中,它可以是由所述ML-ASIC 110接收的另一外部信号。通过应用节流掩码,所述ML-ASIC 110可以在不关断的情况下继续操作,同时允许正在由所述ML-ASIC处理的工作流继续,而不会过热或损坏所述ML-ASIC 110或电压调节器191。

参考图2的框220,在全功率恢复时,所述ML-ASIC 110可以恢复到全功能。这可能在节流掩码被失效后以逐步的方式发生。例如,可以在一系列步骤中恢复一定百分比的指令速率。可以在每个步骤之后设置预定的或动态的等待时段,以确保相同的过电流状态不会被重新创建。例如,可以采取一系列8、16或32个步骤,同时在各步骤之间具有固定的等待时段。在这个时间期间,可以继续由电压调节器191监控所述感测线路,以确认由ML-ASIC110抽取的电压、电流或功率不匹配阈值状态。如果一步骤确实导致满足了阈值状态,则可以重新建立前一步骤的指令速率,直到所述功率或电流状态稳定。参考图6进一步示出了这个过程,如本文所述。

图4示出了概述了在没有应用节流掩码的情况下ML-ASIC返回到其先前的操作状态的流程图400。在框405,电压调节器191可以针对指示不再满足阈值状态的感测信号来评估感测线路。在一些示例中,框405将直到在第一步之后的预定时间段才发生。如果确定导致从电压调节器191生成和发送所述控制信号192的阈值状态不再存在,则所述电压调节器现在可以停止所述控制信号192的生成和/或发送。

在框410,如果如框405所示确定不需要控制信号,则可以由所述电压调节器使所述控制信号192失效。在这个步骤,由所述电压调节器191发送的控制信号可能不再被发送。

在框415,可以由电压调节器191向ML-ASIC 110发送恢复信号,以恢复ML-ASIC的先前操作状态。所述恢复信号可以是通过数据线路199发送的信号。所述恢复信号可以类似于控制信号192。在一些实施例中,没有接收到控制信号192可以被定序器130解释为等同于恢复信号。在其它示例中,可以发送不同的数字信号来通知所述同步器不再存在导致生成节流掩码的状态。因此,所述节流掩码可以停止被应用,或者逐渐被失效。在其它示例中,只有当电压调节器191检测到ML-ASIC 110所需的功率已经充分降低时,该信号才可以被失效。在一些示例中,在电压调节器确定导致所述信号被发送的特定标准在至少预定时间段内不再存在时,控制信号192也可以被失效或停止被所述电压调节器发送。在一些示例中,一旦电压调节器检测到所述ASIC电流需求在至少预定时间段(例如100ns)内在阈值以下,就可以停止发送控制信号192。

在框420,功率可以通过所述电压调节器191来恢复。这可以在节流掩码被失效后以逐步的方式发生。在一些示例中,在ML-ASIC 110接收到恢复信号之后,所述节流掩码被失效。在其它示例中,在预定的时间段内没有接收到控制信号192之后,所述同步器开始采取步骤来使所述节流掩码失效。在一些示例中,随着所述指令速率的百分比可以在一系列步骤中被恢复,所述节流掩码可以被失效。可以在每个步骤之后设置预定的或动态的等待时段,以确保相同的过电流状态不会被重新创建。例如,可以采取一系列8、16或32个步骤,同时在各步骤之间具有固定的等待时段。在这个时间期间,可以监控功率或电流状态。如果某个步骤确实导致电源或电流状态意外反应,则可以重新建立前一步骤的指令速率,直到所述电源或电流状态稳定。

方法200至400中描述的步骤也可以与其它电流控制技术组合或与其结合使用。例如,可以在框320实施其它技术,诸如选通时钟周期或调整锁相环(PLL)设置。尽管这些其它技术具有优势,但它们可能会在由所述ASIC处理的指令的时序中产生不匹配和/或在功率轨上产生引入噪声的下游效应。然而,这些技术可以可选地与节流掩码的应用相结合。

图5示出了系统500,该系统包括功率和控制系统集群590以及ASIC集群510。ASIC集群510由ASIC单元510A、ASIC单元510B和ASIC单元510C组成。类似地,功率和控制系统590由功率和控制系统590A、功率和控制系统590B、功率和控制系统590C组成。尽管图5中仅示出了三个ASIC单元以及三个功率和控制系统,但是可以使用任何数量的ASIC单元以及功率和控制单元。如图5所示,每个功率和控制系统可以对应于单个ASIC单元并向其提供功率,尽管功率和控制系统590可以是向多个ASIC单元提供功率的单个系统。在一些示例中,可以在一系列ASIC单元(诸如ASIC单元110)或ASIC单元的组合中使用上文描述的技术。例如,几个功率和控制系统(诸如功率和控制系统590A、功率和控制系统590B以及功率和控制系统590C)可以彼此连接,以了解它们各自的ASIC单元的指令速率和实时功耗。当一个功率和控制系统确定在其相对应的ASIC单元中发生了过功率事件时,其它功率和控制系统可以使用上述方法预先节流与其ASIC单元相对应的指令速率。在一些示例中,可以通过概率模型来实现对是否预先进行节流的确定,其中该模型使用可能由ASIC处理的指令的强度或速率的定量表示。

图6示出了控制信号(诸如控制信号192)的应用,以及由ML-ASIC110响应于接收到所述控制信号而抽取电流的行为。虽然在图6中没有示出,但是电流下降和阶跃在生成的节流掩码中被校准,以确保由电流中的变化所产生的任何电压尖峰在各个参数内,并且不会损坏ML-ASIC 110。如图6中所指示的那样,所述控制信号可以在特定时间应用。响应于该信号的应用,被抽取的电流或在ML-ASIC内被使用的电流将下降。在所述控制信号被释放后,所述电流逐步恢复,直到再次达到稳定的操作状态。本领域技术人员将认识到,尽管被示为“下降”,但是所述控制信号可以是“尖峰”或“增加”或数字信号。

通过使用定序器和同步器,可以将不是ASIC的一部分的外部信号集成到所述ASIC的内部时钟。这实现了对所述ASIC的微小和精确的控制,并允许所述ASIC被使用到其最大能力,而没有损坏所述ASIC或丢失数据的风险。此外,通过将信号与所述ASIC的内部时钟同步,可以确保正在发送的信号与所述ASIC的电流操作状态“同相”。此外,通过组合从所述ASIC内生成的信号、来自所述电压调节器的那些信号以及可选地来自所述ASIC和电压调节器两者外部的其它信号,可以在更广泛的情况下对所述ASIC进行节流,并提供所述ASIC的更稳健的操作。

根据一些示例方法,以上描述的装置、系统和方法的某些方面可以是可配置的,而其它方面可以在制造的时间期间被集成到所述ASIC中并且不被改变。例如,“恢复步骤时间”值可以是可配置的,该值是在恢复所述ASIC的全功率期间的步骤所花费的时间。在一个示例中,推荐值或默认值可以被编程到ASIC中。在其它示例中,最小值可以是硬连线的,并且在ASIC或电压调节器中是不可变的。其它参数(诸如最小和最大电流或功率、步骤的数量或处理优先级)可以被编程或不变地设置在系统中。

在一些示例中,本文描述的各种组件可以由能够执行多个功能的一个或多个组件来实施。例如,同步器130、芯片管理器140、定序器180和处理器161可以全部是单个物理组件。在另一示例中,同步器130和芯片管理器140可以使用单个组件来实施。

在其它示例中,可以在ASIC制造之后使用本文描述的方法对所述ASIC进行“应力测试”,并且基于ASIC的性能特性和要求来选择最合适的节流掩码的子集。这个信息可以被存储在例如电压调节器191中。在其它实施例中,在ASIC老化或某些处理器、电路或其它组件烧坏或磨损时,生成的掩模可能不再合适。然后,可以配置所述系统以在所述ASIC处于空闲时常规地更新或生成附加的节流掩码。

进一步,本发明可适用于各种ASIC,而ASIC的特定架构不会限制本发明的适用性。

虽然本说明书包含许多具体的实施细节,但是这些不应被解释为对所要求保护的内容的范围的限制,而是被解释为对特定于实施方式的特征的描述。本说明书中在分开的实施方式的上下文中描述的某些特征也可以在单个实施方式中以组合的方式实施。相反地,在单个实施方式的上下文中描述的各种特征也可以在多个实施方式中分开地或者以任何合适的子组合实施。而且,尽管特征可以在上文中被描述为以某些组合起作用,并且甚至最初被如此要求保护,但是在一些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中以特殊的顺序描绘了操作,但是这不应该被理解为要求以所示的特殊的顺序或按顺次的顺序来执行这些操作、或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。而且,上述实施方式中的各种系统组件的分开不应被理解为在所有实施方式中都需要这种分开,并且应当理解的是,所描述的程序组件和系统通常可以在单个软件产品中集成在一起或者被打包到多个软件产品当中。

对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示单个、多于一个以及所有描述的项中的任何一个。标签“第一”、“第二”、“第三”等不一定意味着指示排序,并且通常仅用于区分相同或相似的项或元件。

对本公开中描述的实施方式的各种修改对于本领域技术人员来说是显而易见的,并且在不脱离本公开的精神或范围的情况下,本文定义的一般原理可以应用于其它实施方式。因此,权利要求不旨在限于本文所示的实施方式,而是符合与本文公开的内容、原理和新颖特征一致的最宽范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号