本公开的领域
本公开大体上涉及处理器,且更特定来说,涉及处理器的功率管理。
相关技术的描述
对于具有处理器的许多电子装置(例如,通过电池供电的电子装置)来说,需要处理器在消耗尽可能少的功率的同时仍至少满足最小性能目标。因此,通常向处理器指派功率预算,通过电压或表示施加到处理器的功率的其它特性来表示所述功率预算。处理器通过以下方式在其各种模块(例如,处理器核心、存储器控制器,和类似者)之间分派其功率预算:设定施加到每个模块的电压或其它特性,使得处理器至少满足其最小性能预算。然而,每个模块可能不会在所有情形中需要其所分派的功率。举例来说,没有操作要执行的模块可能在一段短暂时期内不需要其所分派的功率,从而允许处理器将所述模块的所分派的功率中的一些功率临时地重新指派给不同的模块,从而提高了整体处理器性能。
对图式的简要描述
通过参考附图,可更好地理解本公开,且使其众多特征和优势对于本领域技术人员显而易见。在不同图式中使用相同的参考符号会指示类似或等同的项目。
图1是根据一些实施例的可以基于存储器存取等待时间将功率分派给存储器控制器的处理器的框图。
图2是说明根据一些实施例的基于程序线程的存储器等待时间容限将功率分派给图1的存储器控制器的图。
图3是说明根据一些实施例的基于程序线程的存储器等待时间容限和指令处理率将功率分派给图1的存储器控制器的图。
图4是说明根据一些实施例的基于相对于多个阈值的程序线程的存储器等待时间容限将功率分派给图1的存储器控制器的图。
图5说明根据一些实施例的基于程序线程的存储器等待时间容限将功率分派给处理器的存储器控制器的方法的流程图。
图6是说明根据一些实施例的用于设计和制造实施处理系统的组件的至少一部分的集成电路装置的方法的流程图。
具体实施方式
图1到6说明用于基于程序线程的存储器等待时间容限将功率分派给处理器的存储器控制器的技术。处理器通过监测存储器控制器对一个或多个存储器存取请求作出响应所花费的时间量而直接地或间接地监测程序线程的存储器等待时间。当超过程序线程的存储器等待时间容限时(这通过例如缓存未命中率等一个或多个性能特性来指示),处理器可将额外的功率分派给存储器控制器,进而提高存储器控制器可以处理存储器存取请求的速度。当未超过程序线程的存储器等待时间容限时,处理器可以减少分派给存储器控制器的功率的量。处理器因此提高了用于执行程序线程的性能,同时仍节省了功率。
为了说明,在一些实施例中,处理器通过监测提供给存储器控制器的存储器存取请求来检测缓存未命中。举例来说,缓存未命中可导致将提供给缓存的存储器存取请求传递到存储器控制器。当缓存的缓存未命中率(CMR)超过阈值时,这指示存储器控制器可能具有相对大量的存储器存取请求要处理,这可能会延迟对正在执行的程序线程的存储器存取的处理,并且增加了所述正在执行的程序线程的存储器等待时间,使得超过了所述线程的存储器等待时间容限。作为响应,处理器的应用功率管理(APM)模块可以增加施加到存储器控制器的功率电压。此增加的功率电压允许存储器控制器的晶体管更快速地开关,从而提高了存储器控制器可以处理其待决的存储器存取请求的总速度。因此,当有相当大量的存储器存取请求要处理时,增加供应给存储器控制器的功率会减少存储器存取等待时间。当在存储器控制器处有相对少的存储器存取请求要处理时(这通过CMR来指示),APM模块可以减小施加到存储器控制器的功率电压,进而节省功率。
如本文使用,“存储器等待时间”是指存储器存取请求完成执行所花费的时间量。在一些实施例中,用于特定存储器存取请求的存储器等待时间取决于若干因素,包括在存储器控制器处可以处理存储器存取请求的速度。此外,因为增加给存储器控制器的功率会允许存储器控制器更快速地处理存储器存取请求,所以增加给存储器控制器的功率会减少存储器等待时间。
如本文使用,“存储器等待时间容限”是指程序线程对存取存储器分级体系的指定层级(例如,连接到处理器的外部RAM)的灵敏度。可将所述灵敏度表达为执行程序线程的至少一部分所花费或预期花费的时间。在一些实施例中,处理器可通过使用计数器或其它计时机构来测量在存储器控制器处处理存储器存取请求所花费的时间量,而测量是否已经超过程序线程的存储器存取容限。在一些实施例中,处理器可使用性能指示符来间接地测量是否已经超过正在执行的程序线程的存储器等待时间容限,所述性能指示符例如为缓存未命中率、在存储器控制器处接收的存储器存取请求的数目,或其它性能指示符。
如本文所描述,处理器可基于存储器存取等待时间将功率分派给存储器控制器。出于描述的目的,本文描述的实施例采用通过改变存储器控制器的一个或多个参考电压(有时被称作VDD)的量值来分派功率的处理器。将了解,在一些实施例中,处理器可例如通过改变施加到存储器控制器的一个或多个节点的电流的量而以其它方式分派功率。
图1说明根据一些实施例的可以将功率分派给存储器控制器的处理器100。所说明的处理器100包括处理器核心102,其可为(例如)基于x86指令集架构(ISA)、ARM ISA和类似者的中央处理单元(CPU)核心。处理器100可以实施多个此类处理器核心,并且可以进一步实施被设计成或被配置成实行专用操作的处理器核心,例如,用于代表处理器100执行图形操作的一个或多个图形处理单元(GPU)核心。可以在多种电子装置中的任一者中实施处理器100,所述电子装置例如为桌上型计算机、平板计算机、服务器、具备计算功能的蜂窝电话、个人数字助理(PDA)、机顶盒,和类似者。
处理器核心102执行多组指令(被称作程序线程)来代表电子装置执行任务。在执行程序线程的过程中,处理器核心102可产生请求(被称作存储器存取请求),其表示对未存储在处理器核心102的内部寄存器处的数据的需求。存储器存取请求可包括:存储操作,每个存储操作表示存储对应数据以供随后使用的需求;以及加载操作,每个加载操作表示检索所存储的数据以供处理器核心102使用的需求。
在所描绘的实例中,处理器100包括缓存103,所述缓存包括被称作缓存线的一组条目,其中每个缓存线存储对应数据。每条线与识别其所存储的数据的存储器地址相关联。响应于存储器存取请求,缓存103识别其是否包括存储由存储器存取请求的存储器地址识别的数据的线。如果其包括那样的线,那么缓存103指示缓存命中,并且通过提供数据(在加载操作的情况下)或者通过存储与存储器存取请求相关联的数据(在存储操作的情况下)来满足所述存储器存取请求。如果缓存103不包括存储由存储器存取请求的存储器地址识别的数据的线,那么其指示缓存未命中,并且将存储器存取请求提供给存储器控制器110。如下文进一步描述,存储器控制器110通过从系统存储器(未示出)检索与存储器地址相关联的数据并且将所检索的数据提供给缓存103来满足所述存储器存取请求。作为响应,缓存103将数据存储在其线中的一者处,其中所述线是基于缓存替换策略来选择。另外,缓存103使用所检索的数据来满足存储器存取请求,如上文所描述。
虽然将缓存103描绘为单个缓存,但在一些实施例中,其表示不同缓存的分级体系。举例来说,缓存103可包括专用于处理器核心102的层级1(L1)缓存、在处理器核心102与其它处理器核心(未示出)之间共享的层级2(L2)缓存,和一个或多个额外层级的缓存。响应于存储器存取请求,缓存103可以连续地检查分级体系中的每个缓存,直到其定位了具有对应于存储器存取请求的存储器地址的线的缓存为止,从而指示每个层级处的个别缓存未命中或命中。如果没有缓存包括对应于存储器存取请求的存储器地址的线,那么缓存103将存储器存取请求提供给存储器控制器110来进行满足,如上文所描述。
存储器控制器110管理存储器存取请求到系统存储器(未示出)的传送,所述系统存储器包括一个或多个存储器装置,例如随机存取存储器(RAM)模块、快闪存储器、硬盘驱动器,和类似者,或其组合。此外,存储器控制器110被配置成使得其可以缓冲多个存储器存取请求,并且根据指定仲裁策略来处理每个请求。处理存储器存取请求可以包括:缓冲存储器存取请求;在所述存储器存取请求与存储在缓冲器处的其它待决的存储器存取请求之间进行仲裁;产生控制信令来将存储器存取请求传送到系统存储器的存储器装置中的一者或多者;响应于存储器存取请求而缓冲从系统存储器接收的数据;以及将响应数据传送到缓存103。在一些实施例中,存储器控制器110是执行额外功能的北桥,所述额外功能包括管理缓存103与其它处理器缓存(未示出)之间的存储器一致性、管理处理器核心与其它系统模块之间的通信,和类似者。
存储器控制器110包括由晶体管和未在图1个别说明的其它电子组件构成的一组模块。通过标示为“VDD”的参考电压向这些电子组件供应功率。至少一些所述电子组件的特性是使得VDD的量值越高,电子组件可以越快地对输入刺激作出响应。举例来说,存储器控制器110可以包括一个或多个晶体管,其被配置成基于导电状态与非导电状态之间的输入刺激(例如,它们的相应栅极电极处的电压)而开关。随着VDD的量值增加,一个或多个晶体管可以在导电状态与非导电状态之间开关的速度会有所提高。因此,VDD的量值上的增加的净效应是存储器控制器110能够更快速地处理存储器存取请求,从而减少存储器存取等待时间。
处理器100包括被配置成设定VDD的量值的电压调节器121。如本文进一步描述,处理器100可以响应于超过程序线程的存储器存取等待时间而控制电压调节器121来调整VDD,进而提高处理器100处的整体处理效率。
为了促进对程序线程的存储器等待时间的监测,处理器100包括性能监测器115,其基于处理器核心102、缓存103和处理器100的其它模块处的操作而监测性能信息。性能监测器115包括一组寄存器、计数器和其它模块来识别和记录指定时间量内的指定事件的发生。举例来说,在一些实施例中,性能监测器测量并记录缓存103处的缓存未命中率(CMR)。当缓存103是具有多个缓存的缓存分级体系时,性能监测器115可以测量并记录多个缓存中的一者或多者或每一者处的CMR。举例来说,在一些实施例中,性能监测器115记录在处理器核心102与一个或多个其它处理器核心之间共享的L2缓存处的CMR。性能监测器115还可以测量并记录其它性能特性,例如处理器核心102处的每循环指令(IPC)率、存储器控制器110接收存储器存取请求所用的速率、存储器控制器110响应于存储器存取请求而发送数据所用的速率,和类似者。
APM模块120是功率控制模块,其使用性能信息来调整供应给处理器100(包括存储器控制器110)的一个或多个模块的功率。具体来说,APM模块120使用在性能监测器115处记录的一个或多个性能测量(例如,CMR)来识别存储器控制器110处的存储器存取等待时间。当性能测量超过对应阈值从而指示存储器存取等待时间已经超过正在执行的程序线程的存储器存取等待时间容限时,APM模块120致使电压调节器121增加VDD的量值,从而增加供应给存储器控制器110的功率。这会提高存储器控制器110处理存储器存取请求的速度,进而将存储器存取等待时间减少到程序线程的存储器存取等待时间以下。当存储器存取等待时间下降到程序线程的容限以下时、在增加VDD的量值之后已经逝去所界定的时间量之后、在已经在存储器控制器110处处理了阈值数目的存储器存取请求之后,或者基于满足了一个或多个其它准则,APM模块120减小VDD的量值。
为了说明,在所描绘的实例中,处理器100包括预取器114,其监测存储器控制器110处的存储器存取。预取器114识别存储器存取中的模式,并且基于那些模式而将预取请求发出到存储器控制器110,以便将预期马上需要的数据加载到缓存103。因此,只要处理器核心102发出的存储器存取请求遵循预取器114所识别的模式,便将有可能在缓存103处满足存储器存取请求,从而保持CMR较低。因此,提供给存储器控制器110的存储器存取请求的数目可能会被维持较低,进而还保持存储器存取等待时间相对低。当处理器核心102发出未遵循由预取器114识别的模式的一定数目的存储器存取请求时,所述存储器存取请求更有可能在缓存103处未命中,从而增加了CMR。将在缓存103处未命中的存储器存取请求提供给存储器控制器110,进而导致存储器存取等待时间超过在处理器核心102处正在执行的程序线程的存储器存取等待时间,这是因为存储器控制器110处理更高数目的存储器存取请求要花费增加的时间。因此,当CMR增加到给定阈值以上时,存储器存取等待时间有可能超过正在执行的程序线程的存储器存取等待时间。响应于CMR超过给定阈值,APM模块120增加VDD,使得存储器控制器110可以更快速地处理更高数目的存储器存取请求,使得正在执行的线程的存储器等待时间下降到正在执行的线程的存储器存取等待时间以下。
在一些实施例中,APM模块120针对处理器100的模块强制执行功率管理策略,借此,所述功率管理策略指示相对于热限制和用于处理器100的其它物理规范的每个模块的预算功率的标称量。功率管理策略还可以针对处理器100的不同模块设定优先级,使得APM模块120基于1)每个模块的性能;和2)每个模块的优先级来指派供应给每个模块的功率。因此,举例来说,如果两个不同模块的性能特性指示对额外功率的需求,那么APM模块120可以识别所需要的功率是否将致使处理器100超过总功率预算,且如果超过总功率预算,那么指示将向所述两个模块中的哪一者指派额外功率。
为了经由实例进行说明,在一些实施例中,处理器100与功率管理策略相关联,借此,向处理器核心102的功率要求给予高于存储器控制器110的功率要求的优先级。在一些情景中,存储在性能监测器115处的性能特性可以指示处理器核心102和存储器控制器110两者都可以受益于所供应的功率上的增加。举例来说,CMR可以指示存储器控制器110可以与处理器核心102处的IPC同时地受益于VDD上的增加,从而指示处理器核心102可以受益于其供应功率上的增加。APM模块120首先识别是否可以在处理器100不超过其总功率预算的情况下增加供应给处理器核心102的功率和供应给存储器控制器110的功率两者,且如果可以,那么增加供应给每个模块的功率。如果APM模块120识别出增加供应给处理器核心102和存储器控制器110两者的功率将导致超过总功率预算,那么APM模块120会增加供应给处理器核心102的功率,这是处理器核心102的功率管理策略中的其优先级所要求的。
图2描绘说明根据一些实施例的基于正在执行的程序线程的存储器等待时间容限将功率分派给图1的存储器控制器110的图200。图200的x轴对应于时间,而y轴对应于由电压调节器121供应给存储器控制器110的VDD的量值。在所说明的实例中,在时间201处,APM模块120基于存储在性能监测器115处的信息而识别出缓存103处的CMR超过阈值,从而指示可能超过正在执行的程序线程的存储器等待时间容限达对应阈值。因此,APM模块120向电压调节器121发信号,以便将VDD从标示为“V1”的标称量值增加到标示为“V2”的增加的量值。在时间202处,VDD的量值已经增加到V2,进而允许存储器控制器110更快速地处理待决的存储器存取请求。
在时间203处,APM模块120识别出缓存103的CMR已经下降到阈值以下,从而指示不再超过正在执行的程序线程的存储器等待时间容限。作为响应,APM模块120向电压调节器121发信号以便将VDD的量值从V2减小到V1。到了时间204,VDD的量值已经减小到V1,进而减少了存储器控制器110所消耗的功率。因此,在图2的所说明的实例中,处理器100通过增加供应给存储器控制器110的功率而提高了对存储器等待时间敏感的正在执行的程序线程的性能,但通过仅在已经可能超过程序线程的存储器等待时间容限时增加所供应的功率来限制存储器控制器所消耗的功率。
图3说明图300,其示出根据一些实施例的基于缓存未命中率和指令处理率将功率分派给存储器控制器110。图300的x轴对应于时间,而y轴对应于由电压调节器121供应给存储器控制器110的VDD的量值。在所说明的实例中,在时间301处,APM模块120基于存储在性能监测器115处的信息而识别出缓存103处的CMR超过阈值。因此,APM模块120向电压调节器121发信号,以便将VDD从标示为“V1”的标称量值增加到标示为“V2”的增加的量值。在时间302处,VDD的量值已经增加到V2,进而允许存储器控制器110更快速地处理待决的存储器存取请求。
在时间303处,APM模块120识别出处理器核心102处的IPC率已经下降到阈值以下。APM模块120进一步识别出在将VDD的量值维持在V2的同时供应额外的功率将致使处理器100超过总功率预算。另外,APM模块120基于功率管理策略而识别出处理器核心102的功率需求将优先于存储器控制器110的功率需求。作为响应,APM模块120向电压调节器121发信号以便将VDD的量值从V2减小到V1。到了时间304,VDD的量值已经减小到V1,进而减少了存储器控制器110所消耗的功率。因此,APM模块120可以增加供应给处理器核心102的功率(例如,通过增加供应给处理器核心102的电压的量值)。这允许处理器核心102更快速地执行指令处理,从而在处理器100不超过其总功率预算的情况下减小其IPC。
在一些实施例中,APM模块120可基于CMR与对应阈值的关系而将VDD的量值设定为若干可能量值中的任一者。当CMR超过所述阈值中的一者时,这指示已经超过正在执行的程序线程的存储器等待时间容限达对应量。在图4处说明实例,其描绘图400,所述图示出根据一些实施例的基于相对于多个阈值的缓存未命中率将功率分派给存储器控制器110。图400的x轴对应于时间,而y轴对应于由电压调节器121供应给存储器控制器110的VDD的量值。在所说明的实例中,在时间401处,APM模块120基于存储在性能监测器115处的信息而识别出缓存103处的CMR超过阈值(标示为“阈值1”),从而指示已经超过正在执行的程序线程的存储器等待时间容限达第一量。因此,APM模块120向电压调节器121发信号,以便将VDD从标示为“V1”的标称量值增加到标示为“V2”的增加的量值。在时间402处,VDD的量值已经增加到V2,进而允许存储器控制器110更快速地处理待决的存储器存取请求。
在时间403处,APM模块120识别出缓存103处的CMR超过另一阈值(标示为“阈值2”)。阈值2大于阈值1,使得阈值2指示已经超过正在执行的程序线程的存储器等待时间容限达比对应于阈值1的第一量大的第二量。因此,APM模块120向电压调节器121发信号,以便将VDD从V2增加到标示为“V3”的增加的量值。在时间404处,VDD的量值已经增加到V3,进而允许存储器控制器110更快速地处理待决的存储器存取请求。在时间405处,APM模块120识别出缓存103的CMR已经下降到阈值2以下。作为响应,APM模块120向电压调节器121发信号以便将VDD的量值从V3减小到V2。
在一些实施例中,APM模块120还可以基于其它存储器存取特性(例如,存储器带宽)来调整VDD电压。举例来说,性能监测器115可以监测并且存储指示来自缓存103的存储器存取请求所需的存储器带宽的量的信息。响应于指示存储器存取请求所使用的存储器带宽的量超过阈值的信息,APM模块120向电压调节器121发信号,以便在时间405处将VDD从量值V2增加到V3。
另外,在一些实施例中,APM模块可以基于除了缓存103处的缓存未命中率之外或作为其补充的准则而识别出已经超过正在执行的程序线程的存储器等待时间容限。举例来说,在一些实施例中,APM模块120可以基于存储在存储器控制器110的缓冲器处的存储器存取请求的数目、基于在存储器控制器110的接口处接收的存储器存取请求的数目、基于存储器控制器110发出的对存储器存取请求的响应率和类似者来识别出已经超过正在执行的程序线程的存储器等待时间容限。
图5说明根据一些实施例的将功率分派给处理器的存储器控制器的方法500的流程图。出于描述的目的,相对于图1的处理器100处的示例性实施方案来描述所述方法。在框502处,性能监测器115监测并记录缓存103处的缓存未命中率。在框504处,APM模块识别缓存103的CMR是否超过阈值。如果未超过阈值,那么方法流移动到框506,且APM模块120不将要改变VDD的指示提供给电压调节器121。因此,电压调节器121将VDD维持在其标称量值。
如果在框504处APM模块120识别出缓存103的CMR超过量值,那么方法流移动到框508,且APM模块120识别在针对处理器100的功率管理策略下是否存在可用的功率来分派给存储器控制器110。如果不存在可用的功率(例如,因为已经将所有可用的功率分派给在功率管理策略下具有比存储器控制器110更高的优先级的处理器100的模块),那么方法流移动到框506,且电压调节器121将VDD维持在其标称量值。如果在框508处存在可用于分派的功率,那么方法流移动到框510,且APM模块120向电压调节器121发信号来增加VDD的量值。
方法流前进到框512,且性能监测器115继续监测缓存103的CMR。在框514处,APM模块120识别:1)缓存103的CMR是否已经下降到阈值以下;以及2)在功率管理策略下具有更高优先级的处理器100的模块是否需要在框510处分派给存储器控制器110的额外功率。如果这些条件都不为真,那么方法流返回到框512,且将VDD维持在于框510处设定的较高量值。如果这些条件中的任一者为真,那么方法流移动到框516,且APM模块120向电压调节器121发信号,以便将VDD减小到其标称量值。方法流返回到框502。
在一些实施例中,上文所描述的设备和技术实施于包括一个或多个集成电路(IC)装置(还被称作集成电路封装或微芯片)的系统中。可在这些IC装置的设计和制造中使用电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具。这些设计工具通常表示为一个或多个软件程序。所述一个或多个软件程序包括可由计算机系统执行以便进行以下操作的代码:操纵计算机系统对表示一个或多个IC装置的电路的代码进行操作,以便执行用于设计或调适制造系统来制造电路的过程的至少一部分。此代码可包括指令、数据或指令与数据的组合。表示设计工具或制造工具的软件指令通常存储在计算系统可存取的计算机可读存储媒体中。同样,表示IC装置的设计或制造的一个或多个阶段的代码可存储在同一计算机可读存储媒体或不同计算机可读存储媒体中且从其进行存取。
计算机可读存储媒体可包括可由计算机系统在使用期间存取以便将指令和/或数据提供给计算机系统的任何存储媒体,或存储媒体的组合。此类存储媒体可包括(但不限于)光学媒体(例如,压缩光盘(CD)、数字多功能光盘(DVD)、蓝光光盘)、磁性媒体(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓冲存储器)、非易失性存储器(例如,只读存储器(ROM)或快闪存储器),或基于微机电系统(MEMS)的存储媒体。计算机可读存储媒体可嵌入计算系统(例如,系统RAM或ROM)中、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器),或经由有线或无线网络耦合到计算机系统(例如,网络可存取存储装置(NAS))。
图6是示出用于设计和制造实施根据一些实施例的一个或多个方面的IC装置的示例性方法500的流程图。如上文所述,针对以下过程中的每一者所产生的代码存储在或以其它方式体现在非暂时性计算机可读存储媒体中以供对应的设计工具或制造工具存取和使用。
在框602处,产生IC装置的功能规格。可通过多种编程语言或建模语言(包括C、C++、SystemC、Simulink或MATLAB)中的任一者来表示所述功能规格(常常被称作微型架构规格(MAS))。
在框604处,使用所述功能规格来产生表示IC装置的硬件的硬件描述代码。在一些实施例中,使用至少一种硬件描述语言(HDL)来表示所述硬件描述代码,所述硬件描述语言包括多种计算机语言、规范语言,或用于IC装置的电路的规范化描述和设计的建模语言中的任一者。所产生的HDL代码通常表示IC装置的电路的操作、电路的设计和组织,以及用于通过模拟来验证IC装置的正确操作的测试。HDL的实例包括模拟HDL(AHDL)、Verilog HDL、SystemVerilog HDL和VHDL。对于实施同步数字电路的IC装置,硬件描述符代码可包括寄存器传递级(RTL)代码来提供对同步数字电路的操作的抽象表示。对于其它类型的电路,硬件描述符代码可包括行为级代码来提供电路操作的抽象表示。由硬件描述代码表示的HDL模型通常经受一轮或多轮的模拟和调试来通过设计验证。
在验证由硬件描述代码表示的设计之后,在框606处,使用合成工具来合成硬件描述代码以便产生表示或界定IC装置的电路的初始物理实现方式的代码。在一些实施例中,所述合成工具产生一个或多个网表,其包括电路装置例子(例如,门、晶体管、电阻器、电容器、电感器、二极管等)以及电路装置例子之间的网或连接。可选地,可在不使用合成工具的情况下手动地产生网表的全部或一部分。与硬件描述代码一样,网表可经受一个或多个测试和验证过程,之后产生最终的一组一个或多个网表。
可选地,可使用示意性编辑器工具起草IC装置的电路的示意图,且随后可使用示意性捕获工具捕获所得的电路图,且产生表示电路图的组件和连接性的一个或多个网表(存储在计算机可读媒体上)。所捕获的电路图随后可经受一轮或多轮模拟来进行测试和验证。在框608处,一个或多个EDA工具使用在框606处产生的网表来产生表示IC装置的电路的物理布局的代码。此过程可包括(例如)放置工具,其使用网表来确定或固定IC装置的电路的每个元件的位置。此外,布线工具依赖放置过程而添加并布线根据网表连接电路元件所需的电线。所得的代码表示IC装置的三维模型。可以数据库文件格式(例如,图形数据库系统II(GDSII)格式)表示所述代码。呈此格式的数据通常表示几何形状、文本标记,和关于呈分层形式的电路布局的其它信息。
在框610处,将物理布局代码(例如,GDSII代码)提供给制造设施,所述制造设施使用物理布局代码来配置或以其它方式调适制造设施的制造工具(例如,通过掩模工具)来制造IC装置。也就是说,可将物理布局代码编程到一个或多个计算机系统中,所述一个或多个计算机系统随后可以完全地或部分地控制制造设施的工具的操作,或其中执行的制造操作。
在一些实施例中,上文所描述的技术的某些方面可由执行软件的处理系统的一个或多个处理器实施。所述软件包括存储在或另外有形地体现在非暂时性计算机可读存储媒体上的一组或多组可执行命令。所述软件可包括命令和某些数据,其当由一个或多个处理器执行时会操纵所述一个或多个处理器执行上文所描述的技术的一个或多个方面。所述非暂时性计算机可读存储媒体可包括(例如)磁盘或光盘存储装置、固态存储装置,例如快闪存储器、高速缓冲存储器、随机存取存储器(RAM),或其它非易失性存储器装置,和类似者。存储在非暂时性计算机可读存储媒体上的可执行指令可呈由一个或多个处理器解译或可以其它方式执行的源代码、汇编语言代码、目标代码,或其它指令格式。
应注意,不需要上文在一般描述中所描述的所有活动或要素、可能不需要特定活动或装置的一部分,且可执行一个或多个其它活动,或包括除了所描述的要素之外的要素。此外,列举活动的次序不一定是执行活动的次序。而且,已经参考特定实施例描述了概念。然而,本领域技术人员应了解,可在不脱离所附权利要求书中所陈述的本公开的范围的情况下作出各种修改和改变。因此,可在说明性意义而不是限制性意义上对待说明书和图,且希望所有此类修改包括在本公开的范围内。
上文已关于特定实施例描述了益处、其它优势和问题的解决方案。然而,这些益处、优势、问题的解决方案以及可导致任何益处、优势或解决方案发生或变得更加突出的任何特征不应被解释为任何或所有权利要求的关键、所需或实质特征。另外,上文公开的特定实施例仅是说明性的,因为所公开的标的可以按受益于本文教导的益处的本领域技术人员显而易见的不同但等效的方式加以修改和实践。除了所附权利要求书中所描述的内容之外,不希望对本文示出的构造或设计的细节进行限制。因此显然的是,可更改或修改上文所公开的特定实施例,且所有此类变化都被视为在所公开的标的物的范围内。因此,本文寻求的保护在所附权利要求书中予以陈述。