CN103098058A - 根据算法和规格的自动最佳集成电路生成器 - Google Patents
根据算法和规格的自动最佳集成电路生成器 Download PDFInfo
- Publication number
- CN103098058A CN103098058A CN2011800440792A CN201180044079A CN103098058A CN 103098058 A CN103098058 A CN 103098058A CN 2011800440792 A CN2011800440792 A CN 2011800440792A CN 201180044079 A CN201180044079 A CN 201180044079A CN 103098058 A CN103098058 A CN 103098058A
- Authority
- CN
- China
- Prior art keywords
- framework
- readable code
- code
- computer
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
公开了一种用于自动设计定制集成电路的方法和系统,包括:接收定制集成电路的规格,其中所述规格包括计算机可读代码以及针对所述定制集成电路的一个或多个制约;自动设计处理器架构并且生成针对所述计算机可读代码独特定制的满足所述制约的处理器芯片规格;以及将芯片规格综合为所述定制集成电路的布局。
Description
相关申请的交叉引用
本申请涉及共同拥有且同时提交的标题为“AUTOMATICOPTIMAL INTEGRATED CIRCUIT GENERATOR FROMALGORITHMS AND SPECIFICATION”的申请号为12/835,603的申请、标题为“AUTOMATIC OPTIMAL INTEGRATEDCIRCUIT GENERATOR FROM ALGORITHMS ANDSPECIFICATION”的申请号为12/835,621的申请、标题为“APPLICATION DRIVEN POWER GATING”的申请号为12/835,628的申请、标题为“SYSTEM,ARCHITECTURE ANDMICRO-ARCHITECTURE(SAMA)REPRESENTATION OF ANINTEGRATED CIRCUIT”的申请号为12/835,631的申请和标题为“ARCHITECTURAL LEVEL POWER-AWAREOPTIMIZATION AND RISK MITIGATION”的申请号为12/835,640的申请,这些申请的内容通过引用包含于此。
技术领域
本发明涉及一种用于设计定制集成电路或专用集成电路(ASIC)的方法。
背景技术
现代电子设备和工业产品依赖于诸如标准和定制的集成电路(IC)等的电子装置。将针对特定用途所设计和制造的IC称为ASIC。这些IC各自中所包括的转换为晶体管数量的功能模块的数量由于半导体技术的进步而逐年快速增长。响应于这些趋势,设计IC的方法不断改变。过去,IC被设计成仅是多个通用IC的组合。然而,近来,设计者需要创建他或她独创的IC,以使得该IC可以根据需要执行任何功能。通常,在设计功能的不断增加的同时,单位成本和大小不断缩小。
通常,芯片设计过程是以算法设计者指定芯片必须进行的所有功能作为开始的。这通常以如C或Matlab等语言来实现。然后,需要芯片专家、工具工程师、验证工程师和固件工程师的整个团队耗费许多人年(man-year)来将该算法映射到硬件芯片和相关固件。这是非常昂贵的过程并且还伴随着大量风险。
如今的设计日益复杂,并且要求优良的功能与不断缩减的大小、成本和功率相结合。功耗、信号交互作用、不断提高的复杂性和不断恶化的寄生现象,这些全部造成芯片设计方法更加复杂。设计趋势朝向甚至更高的集成水平,其中对于数字设计,晶体管的数量超过数百万个晶体管。利用当前技术,高级仿真工具和重复使用数据的能力逐渐落后于这种复杂设计。
发展尖端定制IC设计已提出了需要解决的若干问题。较高的处理速度已将本来是纯数字的情况引入到模拟域,这些情况诸如多重时钟区域、日益复杂的时钟乘法和同步技术、噪声控制以及高速I/O等。在设计和验证周期方面出现了障碍,这是因为设计复杂度持续增加而设计者将他们的产品推向市场可用的时间缩短,这导致设计成本的摊销降低。设计复杂度增加的另一影响是实现成功设计可能需要的更多数量的生产周转。又一问题是熟练工人的可用性。ASIC电路设计的快速增长与熟练的IC工程师的短缺并存。
发明内容
在一个方面中,一种用于自动设计定制集成电路的方法,包括:接收所述定制集成电路的规格,其中所述规格包括计算机可读代码以及针对所述定制集成电路的一个或多个制约;自动设计处理器架构并且针对所述计算机可读代码生成独特定制的满足所述制约的处理器芯片规格;以及将芯片规格综合为所述定制集成电路的布局。该方法基于作为输入的算法过程或代码并且使用几乎不需要人为参与的高度自动化工具来自动设计和生成定制集成电路。
上述方面的实现可以包括以下中的一个或多个。该系统包括进行计算机可读代码的静态评测(profiling)和/或计算机可读代码的动态评测。基于计算机可读代码的评测数据(profile)来设计系统芯片规格。可以基于计算机可读代码的静态评测和动态评测来进一步递增地优化该芯片规格。计算机可读代码可被编译成最佳汇编代码,其中链接该最佳汇编代码以生成针对所选择的架构的固件。仿真器可以进行固件的循环精确仿真。该系统可以进行固件的动态评测。该方法包括基于评测后的固件或基于汇编代码来进一步优化芯片规格。该系统可以针对所设计的芯片规格自动生成寄存器传输级(RTL)代码。该系统还可以进行RTL代码的综合以制造硅。
该系统的优选实施例的优点可以包括以下中的一个或多个。该系统减轻了芯片设计的问题并使芯片设计成为简单过程。这些实施例使产品开发过程的关注点从硬件实现过程转变回至产品规格和计算机可读代码或算法设计。代替束缚于特定硬件选择,可以在专门针对该应用而优化的处理器上实现计算机可读代码或算法。该优选实施例将优化处理器连同所有相关联的软件工具和固件应用程序一起自动生成。该过程可以在数日内完成而非如传统那样需要数年来完成。该系统是设计硬件芯片解决方案的方式的彻底的模式转变。
本系统消除了芯片设计的风险并使芯片设计成为自动过程,由此算法设计师本身无需具有任何芯片设计知识就可以直接制作硬件芯片。针对该系统的主要输入是采用如C或Matlab那样的高级语言的计算机可读代码或算法规格。
使用该系统的多个优点可以包括:
1)时程(schedule):在芯片设计周期变为以周为单位而不是以年为单位来计量的情况下,用户可以通过使其产品快速地推向市场来打入迅速变化的市场。
2)成本:为了实现芯片而通常需要雇佣的大量工程师变得多余。这样给使用本系统的公司带来巨额的成本节省。
3)最优性:使用本系统所设计的芯片的产品在性能、面积和功耗方面均优良。
本系统是设计具有数字芯片组件的系统时所使用的方法的彻底的模式转变。该系统是根据以C/Matlab描述的算法来生成数字硬件的全自动化软件产品。该系统对于采用诸如C或Matlab等的高级语言来实现硬件芯片的过程,使用了独特方法。简言之,本系统使芯片设计成为全自动化软件过程。
附图说明
图1示出自动生成定制IC的示例系统。
图2示出自动生成定制IC的示例工作流程。
图3示出自动生成定制IC的示例过程。
图4示出示例的C代码评测数据。
图5示出基本层级芯片规格。
图6示出根据图5的芯片规格的第一架构。
图7示出根据图5的芯片规格的第二架构。
具体实施方式
图1示出自动生成定制IC的示例系统。图1的系统支持针对所选择的目标应用程序的最佳定制集成电路解决方案的自动生成。该目标应用程序的规格通常通过采用如C、Matlab、SystemC、Fortran、Ada或任何其它语言等的高级语言表示为计算机可读代码的算法来实现。该规格包括目标应用程序的描述,并且还包括诸如期望成本、面积、功率、速度、性能和硬件解决方案的其它属性等的一个或多个制约。
在图1中,定制IC生成产品规格102。通常,存在获得了期望产品的所有主要功能的初始产品规格。根据该产品,算法专家识别针对该产品所需的计算机可读代码或算法。这些算法中的一部分算法可以作为IP从第三方或标准开发委员会来获得。该算法中的一部分必须作为产品开发的一部分来开发。以这种方式,产品规格102可以进一步细化为可表示为诸如C程序等的程序或诸如Matlab模型等的数学模型的计算机可读代码或算法104。此外,产品规格102还包含诸如成本、面积、功率、工艺类型、库和存储器类型等的要求106。
将计算机可读代码或算法104和要求106提供至自动IC生成器110。仅基于该代码或算法104以及施加于芯片设计的制约,IC生成器110使用图2的处理来在无需人为参与的情况下自动生成如下输出,其中该输出包括GDS文件112、用以运行IC的固件114、软件开发工具包(SDK)116和/或测试套件118。GDS文件112用于制造定制芯片120。然后,在所制造的该芯片上运行固件114以实现定制产品规格102。
本系统减轻了芯片设计的问题并使芯片设计成为简单过程。该系统使产品开发过程的关注点从硬件实现过程转变回至产品规格和算法设计。代替束缚于特定硬件选择,可以总是在专门针对该应用而优化的数字芯片处理器上实现算法。该系统将该优化处理器连同所有相关联的软件工具和固件应用程序一起自动生成。该整个过程可以在数日内完成而非如今需要数年来完成。简言之,该系统使产品开发的数字芯片设计部分成为黑盒子。
在一个实施例中,本系统产品可以采用以下作为输入。
以C/Matlab定义的计算机可读代码或算法
所需的外设
IO规格
面积目标
功率目标
余量目标(内置有多少开销以用于未来的固件更新和复杂度的增加)
过程选择
标准单元库选择
存储器编译器选择
测试能力(扫描、TAP(测试访问端口)控制器、内置自测试(BIST)等)
该系统的输出可以是数字硬宏以及所有相关联的固件。针对该数字硬宏而优化的软件开发工具包(SDK)也是自动生成的,由此在不必改变处理器的情况下实现未来针对固件的升级。
图2示出自动生成定制IC的示例工作流程。该系统针对任何所选择的目标应用程序自动生成完整且最佳的硬件解决方案。尽管常见的目标应用程序存在于嵌入式应用程序范畴内,但这些目标应用程序并非必须局限于此。
参考图2,ASIC定制生成产品规格202。产品规格202进一步细化为可表示为诸如C程序等的程序或者诸如Matlab模型等的数学模型的计算机可读代码或算法204。此外,产品规格202还包含诸如成本、面积、功率、工艺类型、库和存储器类型等的产品参数和要求206。将计算机可读代码或算法204和产品参数206提供至包括自动最佳指令集架构生成器(AOISAG)(210)的自动IC生成器110。该生成器210控制自动最佳RTL生成器(AORTLG)242,其中该AORTLG242对自动最佳芯片生成器(AOCHIPG)244进行驱动。AOCHIPG244和AORTLG242的输出通过反馈循环被提供至AOISAG210。AOISAG210还控制自动最佳固件工具生成器(AOFTG)246,其中该AOFTG246的输出被提供至自动最佳固件生成器(AOFG)248。该AOFG248的输出也通过反馈循环被提供至AOISAG。
IC生成器110生成GDS文件212、用以运行IC的固件214和软件开发工具包(SDK)216作为输出。将GDS文件212和固件214提供至诸如TSMC或UMC等的IC制造方230以制造定制芯片220。
在一个实施例中,该系统为全自动化。无需人工干预或引导。该系统为最优化的。工具将自动生成最佳解决方案。在其它实施例中,用户可以在需要的情况下进行干预以提供人为引导。
AOISAG210可以自动生成最佳指令集架构(被称为ISA)。将该ISA定义为实现可编程的硬件解决方案所需的涵盖整个数字芯片规格的每一单项细节。这些细节可以包括以下示例因素中的一个或多个。
1)指令集功能、编码和压缩
2)协处理器/多处理器架构
3)定标性(scalarity)
4)寄存器文件大小和宽度、访问延迟和端口
5)固定点大小
6)静态和动态分支预测
7)控制寄存器
8)堆栈操作
9)循环
10)循环缓冲器
11)数据寻址
12)流水线深度和功能
13)循环缓冲器
14)外设
15)存储器访问/延迟/宽度/端口
16)扫描/TAP控制器
17)专用加速器模块
18)时钟规格
19)数据存储器和高速缓存系统
20)数据预取机制
21)程序存储器和高速缓存系统
22)程序预取机制
AORTLG242是根据最佳ISA以寄存器传输语言(RTL)自动生成硬件解决方案的自动最佳RTL生成器。AORTLG242为全自动化。无需人工干预或引导。该工具将自动生成最佳解决方案。所生成的RTL是可综合且可编译的。
AOCHIPG244是根据最佳RTL自动生成GDSII硬件解决方案的自动最佳芯片生成器。该工具244为全自动化。无需人工干预或引导。该工具将自动生成最佳解决方案。所生成的芯片为全功能化,并且可以在无需修改的情况下利用标准FAB(标准晶圆制造厂)来制造。
AOFTG246是用于自动生成基于硬件解决方案来开发固件代码所需的软件工具的自动最佳固件工具生成器。AOFTG246为全自动化。无需人工干预或引导。该工具将自动生成最佳解决方案。可以基于数字芯片规格来自动生成诸如编译器、汇编编译器、链接编译器、功能仿真器、循环精确仿真器等的标准工具。AOFG248是自动最佳固件生成器,其中该AOFG248自动生成需要由如此得到的芯片120来执行的固件。该工具为全自动化。无需人工干预或引导。另外,该工具将自动生成最佳解决方案。还可以自动生成优化实时操作系统(RTOS)。
芯片规格定义了执行定制应用程序所需的具体的功能单元。还具体地定义了固有的并行性,由此确定了并行使用的单元的数量。从评测信息提取微观和宏观层级的并行性的所有复杂度,因而利用该知识来设计芯片规格。因此,最佳地设计了芯片规格,并且芯片设计不会如在不具有这种评测信息而设计芯片规格的情况那样被过度设计或设计不足。
在动态评测期间,收集分支统计数据,并且基于该信息来最佳地设计分支预测机制。此外,根据该评测可以得到连续指令之间的所有相依性检查,因而对芯片规格的流水线和所有指令调度方面进行了最佳设计。
芯片规格可以提供诸如以下等的选项:
*硬件模块寻址,允许在不必持续地测试外包的情况下实现循环缓冲器。
*针对数据串流化所设计的存储器架构,大量地使用DMA并且期望将代码写成知晓高速缓存分层结构和相关联的延迟。
*驱动多个算术单元可能需要存储器架构支持每个指令周期的若干访问。
*将程序存储器和数据存储器分开(哈佛(Harvard)架构),并且有时对多个数据总线进行并行访问。
*特殊SIMD(单指令、多数据)运算。
*一些处理器使用VLIW技术,因而各指令并行驱动多个算术单元。
*诸如快速乘法-累加(MAC)等的特殊算术运算。
*作为用于计算FFT的特殊寻址模式的位反转寻址。
*诸如用于在无需针对指令提取或退出测试的开销的情况下、在非常紧凑的循环内执行少量指令字的架构支持等的特殊循环控制。
*特殊预取指令与数据预取机制相关,以使得执行单元不会因数据不足而停止。因而,针对给定的执行单元和使用这些执行单元的指令调度来最佳地设计存储器带宽。
*最佳可变/多离散长度指令编码,以获得最佳性能并且同时针对给定应用程序实现非常紧凑的指令占用空间。
图3示出用于自动生成图1的定制芯片120的示例处理流程。现在转向参考图3,生成定制产品规格(302)。此外,定制产品规格302被进一步细化为可表示为诸如C程序等的程序或者诸如Matlab模型等的数学模型的计算机可读代码或算法304。
以静态方式316和动态方式318对定制算法304进行评测。在架构优化器单元320中使用通过该评测收集到的统计数据。该单元还接收定制规格302。基本功能生成器314确定实现定制算法304所需要的基本运算或执行单元。基本功能生成器314的输出还被馈给至架构优化器320。架构优化器320配备有来自基本功能生成器的面积、定时和功率信息,从而随着内部实现分析来使面积、定时和功率最小化。
基于架构优化器320的输出,将初始芯片规格定义为架构322。然后,将该架构322馈送至工具生成器332单元以自动生成编译器306、汇编编译器308、链接编译器310、循环精确仿真器338。然后,使用这一系列工具将定制算法304转换成可以在架构322上运行的固件312。
以静态方式334对汇编编译器308的输出进行评测,并且以动态方式340对循环精确仿真器338的输出进行评测。然后,架构优化器342使用这些评测信息来完善和改进架构322。
重复执行322→332→306→308→310→312→338→340→342→322的反馈循环和322→332→306→308→334→342→322的反馈循环,直到满足定制规格为止。这些反馈循环在无人为干预的情况下自动发生,因而自动达到最佳解决方案。
架构优化器342还基于架构平面设计器336以及综合和P&R328的反馈。不仅参考应用程序评测信息还参考物理布局和布线信息来进行架构决策。架构优化是精确的,并且在进行所设计的架构的后端设计的情况下不会发生意外情况。例如,在架构优化器选择使用乘法器单元的情况下,该架构优化器采用两个16位操作数作为输入并且生成32位结果。架构优化器342获知操作数的应用与来自平面设计器336和综合328的可用性结果之间的确切时间延迟。架构优化器342还获知在该乘法器布局和布线在实际芯片内的情况下的确切面积。因而,用于使用该乘法器的架构决策不仅基于来自评测数据的该乘法器的需求,还基于在面积、时间延迟(还称为性能)和功率方面的与该乘法器相关联的成本。
在另一示例中,为了在性能对定制芯片造成制约的情况下加速该性能,编译器306处理在串行处理器上需要长时间来运行的程序、代码或算法,并且给出包含可以同时运行的多个处理单元的新架构,目的是通过将该程序分成多个处理单元能够并行或以重叠方式处理的多个段来缩短该程序的运行时间。前端的附加任务是寻找并行性计算,并且后端的附加任务是对该程序进行调度以使得获得正确结果和改进的性能。该系统确定该程序应被分成哪种段以及可以如何重排这些段。这涉及以下内容。
●粒度、层级和并行性
●针对并行执行的候选之间的相依性的分析
在另一示例中,在空间或功率对定制芯片造成制约的情况下,编译器例如将生成顺次执行代码以节省功率和芯片面积需求的单一低功率处理器/数字信号处理器(DSP)。
根据架构块322,该过程可以使用RTL生成器(324)来生成RTL。生成RTL代码(326),并且可以将该RTL代码提供至综合布局和布线块(328)。还可以考虑来自架构平面设计器的信息(336)。可以生成布局(330)。该布局例如可以是GDSII文件格式。
本发明的另一个方面是创建统一的架构322表达方式,以使得软件工具生成器332和硬件RTL生成器324这两者都可以使用该表达方式。该表达方式被称为SAMA(系统、架构和微架构)。
架构设计操作是基于针对定制芯片要执行的程序、代码或算法的分析。在一个实现中,针对需要长时间在单标量处理器上运行的程序,该系统可以通过将处理需求分成多个处理单元内能够并行或以重叠方式处理的各段来改善性能。前端的附加任务是寻找并行性,并且后端的附加任务是对该程序进行调度以使得获得正确的结果和改进的性能。该系统可以确定程序应分成哪种段以及可以如何重排这些段。这涉及粒度、并行性以及针对并行执行的候选之间的相依性的分析。由于程序段和多个处理单元在某个大小的范围内,因此可能存在相当数量的组合,从而需要不同的编译方法。
针对这些组合来完成芯片规格,以使得正确设计支持计算单元所需的数据带宽,而不存在过度设计或设计不足。架构优化器342首先识别程序内的潜在并列单元,然后对这些并列单元进行相依性分析以找出彼此独立并且可以同时执行的这些段。
架构优化器342识别机器指令的粒度层级的并行性。例如,在普通的标量处理器上添加两个N-元素向量将一次执行一个指令。但在向量处理器上,可以在N个单独处理器上执行所有N个指令,从而将总时间缩短成略大于执行一次添加所需时间的N倍。架构优化器采用与向量语句等同的顺序语句并且转译成向量机器指令。允许向量化的条件是源操作数的元素必须独立于结果操作数。例如,存在如下代码。
DO 100 J=l,N
DO 100 I=1,N
DO 100 K=1,N
C(I,J)=C(I,J)十A(I,K)*B(K,J)
100 CONTMUE
在该矩阵乘法示例中,在各次迭代中,使用先前迭代中计算出的C(I,J)的先前值来计算C(I,J),因而无法进行向量化。在期望性能的情况下,该系统将代码变换成如下代码。
DO 100 J=1,N
DO 100 K=1,N
DO 100 I=l,N
C(I,J)=C(I,K)十A(O,K)*B(K,J)
100 CONTINUE
在这种情况下,可以进行向量化,这是因为连续指令用于计算彼此独立并可以在不同处理器上同时执行的C(I-1,J)和C(I,J)。因而,指令层级的相依性分析可协助识别操作数层级相依性并且应用适当优化以允许向量化。
图4~6示出用于针对表示为C代码的以下算法进行定制芯片规格设计的示例过程。
for(i=0;i<ilimit;i十+){
a[i]=b[i]十2*c[i];
t=t十a[i];
}
图4示出使用吉波(gimple)静态评测的示例静态评测。在评测中,(与静态代码分析相对的)动态程序分析的形式使用随着程序执行所收集到的信息来调查程序的表现。该分析的通常目的是确定要优化程序的哪些段,即提高其整体速度、减少其内存需求或者有时为这两者。(代码)评测器是最常见的仅测量函数调用的频率和持续时间的性能分析工具,但除了更加综合的评测器以外,还存在能够收集广泛性能数据的其它特定类型的评测器(例如,内存评测器)。
在图4的示例中,C代码被缩减成一系列的两次操作数运算。因而,前四项运算进行a[i]=b[i]+2*c[i]+t,并且并行地后四项运算针对i的下一值进行a[i]=b[i]+2*c[i]+t,并且在最后运算中对这两组的结果求和。
图5示出用以实现上述应用的简单基本层级芯片规格。各变量i、a[i]、b[i]、c[i]、t和tmp具有被读取或写入的特征。因而,在时间502处,读取i并且针对预定极限进行检查。在504中,i递增并且被写入,同时提取c[i]。在506中,读取b[i],同时写入tmp变量以存储2*c[i]的结果并且从tmp变量读取该结果以准备进行下一运算。在508中,写入a[i]以存储tmp与b[i]相加的结果,并且得到t。在510中,写入t以存储508中的相加结果,并且读取i。在512~520中,对下一i重复502~510的序列。
图6示出根据图5的基线架构的第一架构。在604中,读取变量i和c[i]。在606中,i递增并且存储新的值。读取b[i],同时tmp存储2*c[i]的结果,然后读取该结果以进行下一运算。在608中,将b[i]与tmp相加并存储在a[i]中,并且读取新的a[i]和t以进行下一运算。在610中,将t与a[i]相加,并且将结果存储在t中。在612~618中,针对下一i值重复相同的序列。
图7示出根据图5的基线架构的第二架构。在该架构中,架构优化器检测到可以利用适当硬件来将运算702和704组合成一次运算。该硬件还可以在一次运算中处理运算706~708。结果,使用该第二架构,检查i以得知其是否超过极限,并且i在一次运算中自动递增。接着,将运算706~708组合成一次运算以进行2*c[i]+b[i]并将该结果存储为a[i]。在第三次运算中,将t与a[i]相加。针对下一i值进行类似的三次运算。
第二架构充分利用自动递增运算和相乘-累加运算的硬件功能以在一个步骤中进行几次交互。因而,该系统可以使架构性能优化。
由于程序段和多个处理单元在某个大小的范围内,因此可能存在相当大量的组合,从而需要不同的优化方法。架构优化器首先识别程序中的潜在并行单元,然后对这些并行单元进行相依性分析以找出彼此独立并且可以同时执行的这些段。
这种系统所允许的并行优化的另一实施例是减轻电压下降/IR热点。该处理将每个机器指令与作为片上逻辑和互连结构的集合的相关硬件执行路径相关联。该执行路径可被视为指令的硬件“占用空间”。数据模型维持所有可能的执行路径及其相关指令的记录。数据模型接收各种机器指令的统计评测数据,并且从该统计评测数据提取在任何给定周期内执行指令的稳态概率。数据模型可以针对各指令执行路径来创建估计拓朴布局。基于预先确定的协议使用多种物理设计模型来进行布局估计,以选择物理设计建模所需的适当抽象层级。数据模型将指令的执行稳态概率与其执行路径的拓扑相关联。数据模型创建了该布局的子区域,并且针对各子区域,存在交叉的执行路径的集合,从而产生用于计算子区域权重的执行路径概率的集合。使用(整个区域内的)子区域权重分布来估计功率热点位置。数据模型识别执行路径与功率热点相交叉的受影响指令。然后,将功率热点区域建模成虚拟受限容量资源。数据模型针对调度器进行配置,以将受影响指令视为依赖于受限容量资源。受限容量转而限制子区域内应当容许紧邻顺次激活的执行路径的数量。这种资源相依性可以容易地添加至调度器的资源分配表。然后,调度器优化考虑将以上所创建的虚拟资源与其它性能成本函数相结合。因而,功率和性能同时被优化。该系统可以根据评测数据来生成功能块使用情况统计数据。该系统可以按照时间来追踪不同处理块的使用情况。该系统可以推测地切断一个或多个处理块的电源并且在需要时自动接通已关闭的处理块的电源。指令译码器可以确定何时向各功率域施加电力。可以自动生成定制IC运行应用程序代码所用的软件工具。这些工具包括编译器、汇编编译器、链接编译器、基于循环的仿真器中的一个或多个。该工具自动生成固件。这些工具可以评测固件并且提供固件评测数据作为反馈以优化架构。编译器的指令调度器可以在配备有该功率优化方案的情况下排列指令的顺序以使效益最大化。
关键构想是通过仅利用架构抽象块估计和虚拟构建物理设计来预期物理制约和效应。在一个示例中,可以基于估计面积的一组黑盒子来构建平面设计。具有这种架构层级的结构使得系统能够在实现RTL之前考虑任何拥塞、定时和面积等。在另一示例中,黑盒子的特定形状或配置可以产生较好的平面设计,因此产生较好的定时和拥塞等。因而,提供了在架构层级本身减轻这些问题的机会。类似于物理世界,建筑师可以通过考虑不同房间的配置来考虑房子如何发挥功能,而无需知晓长宽比的确切尺寸或房间的内容物。
该系统减轻了芯片设计的问题并使芯片设计成为简单过程。这些实施例使产品开发过程的关注点从硬件实现过程转变回至产品规格和计算机可读代码或算法设计。代替束缚于特定硬件选择,可以总是在专门针对该应用而优化的处理器上实现计算机可读代码或算法。该优选实施例将优化处理器连同所有相关联的软件工具和固件应用程序一起自动生成。该过程可以在数日内完成而非如传统那样需要数年来完成。该系统是设计硬件芯片解决方案的方式的彻底的模式转变。使用本系统的优选实施例的多个优点中的三个优点包括以下:
1)时程:在芯片设计周期变为以周为单位而不是以年为单位来计量的情况下,用户可以通过使产品快速地推向市场来打入迅速变化的市场;以及
2)成本:为了实现芯片而通常需要雇佣的大量工程师变得多余。这样给使用本系统的公司带来巨额的成本节省;以及
3)最优性:使用本系统所设计的芯片的产品在性能、面积和功耗方面均优良。
例如,接着将论述支持自动芯片设计系统的计算机。该计算机优选包括通过CPU总线所连接的处理器、随机存取存储器(RAM)、程序存储器(优选为诸如闪速ROM等的可写式只读存储器(ROM))和输入/输出(I/O)控制器。该计算机可以可选地包括连接至硬盘和CPU总线的硬盘驱动器控制器。硬盘可用于存储诸如本发明等的应用程序以及数据。可选地,应用程序可以存储在RAM或ROM中。I/O控制器经由I/O总线连接至I/O接口。I/O接口经由诸如串行链路、局域网、无线链路和并行链路等的通信链路来接收和发送模拟或数字形式的数据。可选地,显示器、键盘和指示装置(鼠标)也可以连接至I/O总线。可选地,对于I/O接口、显示器、键盘和指示装置,可以使用单独的连接(单独的总线)。可以对可编程的处理系统进行预编程,或者可以通过从其它源(例如,软盘、CD-ROM或其它计算机)下载程序来对该可编程的处理系统进行编程(和重新编程)。
各计算机程序有形地存储在通用或专用的可编程计算机能够读取的机器可读存储介质或装置(例如,程序存储器或磁盘)中,用于在计算机读取该存储介质或装置以进行这里所述的过程的情况下配置和控制该计算机的操作。本发明的系统还被视为嵌入配置有计算机程序的计算机可读存储介质,其中如此配置成的存储介质使得计算机以特定和预定方式操作以进行这里所述的功能。
这里已经相当详细地说明了本发明,从而符合专利法规并且向本领域技术人员提供应用新颖原理并根据需要构造和使用这些专用组件所需的信息。然而,应当理解,可以利用具体不同的设备和装置来执行本发明,并且可以在没有背离本发明本身的范围的情况下实现针对设备细节和操作过程这两者的各种修改。
Claims (20)
1.一种用于自动设计定制集成电路的方法,包括:
a.接收所述定制集成电路的规格,其中所述规格包括计算机可读代码以及针对所述定制集成电路的一个或多个制约;
b.自动设计处理器架构并且生成针对所述计算机可读代码独特定制的满足所述制约的处理器芯片规格;以及
c.将所生成的处理器芯片规格综合为半导体制造所用的所述定制集成电路的计算机可读描述。
2.根据权利要求1所述的方法,其中,还包括:进行所述计算机可读代码的静态评测或动态评测。
3.根据权利要求1所述的方法,其中,还包括:自动生成所述定制集成电路运行所述计算机可读代码所用的固件或软件开发工具包即SDK。
4.根据权利要求1所述的方法,其中,还包括:基于所述计算机可读代码来选择架构。
5.根据权利要求1所述的方法,其中,还包括:基于所述计算机可读代码的静态评测和动态评测来优化架构。
6.根据权利要求1所述的方法,其中,还包括:在可编程架构中将所述计算机可读代码编译成汇编代码。
7.根据权利要求7所述的方法,其中,还包括:链接所述汇编代码以生成针对所选择的可编程架构的固件。
8.根据权利要求7所述的方法,其中,还包括:进行所述固件的循环精确仿真。
9.根据权利要求7所述的方法,其中,还包括:进行所述固件的动态评测。
10.根据权利要求9所述的方法,其中,还包括:基于评测后的固件来优化所述可编程架构。
11.根据权利要求7所述的方法,其中,还包括:基于所述汇编代码来优化所述可编程架构。
12.根据权利要求1所述的方法,其中,还包括:针对所选择的架构来生成寄存器传输级代码即RTL代码。
13.根据权利要求12所述的方法,其中,还包括:进行所述RTL代码的综合。
14.一种用于自动设计定制集成电路的系统,包括:
a.用于接收所述定制集成电路的规格的部件,其中所述规格包括计算机可读代码以及针对所述定制集成电路的一个或多个制约;
b.用于自动设计处理器架构并且生成针对所述计算机可读代码独特定制的满足所述制约的处理器芯片规格的部件;以及
c.用于将所生成的架构综合为半导体制造所用的所述定制集成电路的计算机可读描述的部件。
15.根据权利要求14所述的系统,其中,还包括:用于进行所述计算机可读代码的静态评测和动态评测的部件。
16.根据权利要求14所述的系统,其中,还包括:用于基于所述计算机可读代码来选择架构的部件。
17.根据权利要求14所述的系统,其中,还包括:用于基于所述计算机可读代码的评测来优化架构的部件。
18.根据权利要求14所述的系统,其中,还包括编译器,所述编译器用于将所述计算机可读代码转换成汇编代码。
19.根据权利要求14所述的系统,其中,还包括循环精确仿真器,所述循环精确仿真器用于测试固件。
20.根据权利要求14所述的系统,其中,还包括针对所选择的架构的寄存器传输级代码生成器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/835,603 | 2010-07-13 | ||
US12/835,603 US8225247B2 (en) | 2010-07-13 | 2010-07-13 | Automatic optimal integrated circuit generator from algorithms and specification |
PCT/US2011/043603 WO2012009291A1 (en) | 2010-07-13 | 2011-07-11 | Automatic optimal integrated circuit generator from algorithms and specification |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103098058A true CN103098058A (zh) | 2013-05-08 |
Family
ID=45467871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011800440792A Pending CN103098058A (zh) | 2010-07-13 | 2011-07-11 | 根据算法和规格的自动最佳集成电路生成器 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8225247B2 (zh) |
EP (1) | EP2593887A1 (zh) |
JP (1) | JP5681280B2 (zh) |
KR (1) | KR101448409B1 (zh) |
CN (1) | CN103098058A (zh) |
TW (1) | TW201214180A (zh) |
WO (1) | WO2012009291A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8225247B2 (en) * | 2010-07-13 | 2012-07-17 | Satish Padmanabhan | Automatic optimal integrated circuit generator from algorithms and specification |
US8584062B2 (en) | 2011-10-27 | 2013-11-12 | Apple Inc. | Tool suite for RTL-level reconfiguration and repartitioning |
FI20135946L (fi) * | 2013-09-23 | 2015-03-24 | Procomp Solutions Oy | Rinnakkainen ratkaisun muodostaminen |
US20150212152A1 (en) | 2014-01-24 | 2015-07-30 | Texas Instruments Incorporated | Testing of integrated circuits during at-speed mode of operation |
CN104239050B (zh) * | 2014-09-10 | 2018-04-10 | 中国科学技术大学 | 一种在线程序评测系统中用户排名的方法及系统 |
CN104268084A (zh) * | 2014-10-23 | 2015-01-07 | 中国科学技术大学 | 一种在线程序评测系统中用户排名的实现方法及系统 |
US10180829B2 (en) * | 2015-12-15 | 2019-01-15 | Nxp Usa, Inc. | System and method for modulo addressing vectorization with invariant code motion |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493507A (en) * | 1993-04-19 | 1996-02-20 | Pfu Limited | Digital circuit design assist system for designing hardware units and software units in a desired digital circuit, and method thereof |
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
US20070250800A1 (en) * | 2006-04-25 | 2007-10-25 | Cypress Semiconductor Corporation | Automated integrated circuit development |
CN101228527A (zh) * | 2005-05-20 | 2008-07-23 | 凯登斯设计系统有限公司 | 有制造意识的设计和有设计意识的制造 |
US20090119480A1 (en) * | 2002-11-07 | 2009-05-07 | Qst Holdings, Llc | Method, System and Program for Developing and Scheduling Adaptive Integrated Circuitry and Corresponding Control or Configuration Information |
US20100138811A1 (en) * | 2008-12-02 | 2010-06-03 | Qualcomm Incorporated | Dynamic Performance Profiling |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2869379B2 (ja) * | 1996-03-15 | 1999-03-10 | 三菱電機株式会社 | プロセッサ合成システム及びプロセッサ合成方法 |
US5883814A (en) * | 1997-03-13 | 1999-03-16 | International Business Machines Corporation | System-on-chip layout compilation |
US6134704A (en) * | 1998-04-03 | 2000-10-17 | International Business Machines Corporation | Integrated circuit macro apparatus |
US6408428B1 (en) * | 1999-08-20 | 2002-06-18 | Hewlett-Packard Company | Automated design of processor systems using feedback from internal measurements of candidate systems |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6754881B2 (en) * | 2001-12-10 | 2004-06-22 | International Business Machines Corporation | Field programmable network processor and method for customizing a network processor |
AU2003263987A1 (en) * | 2002-08-05 | 2004-02-23 | John Campbell | System of finite state machines |
US20040109430A1 (en) * | 2002-10-28 | 2004-06-10 | Dacosta Francis | Low cost implementation for high performance embedded systems |
US7100144B2 (en) * | 2003-12-09 | 2006-08-29 | International Business Machines Corporation | System and method for topology selection to minimize leakage power during synthesis |
JP2005293448A (ja) * | 2004-04-05 | 2005-10-20 | Renesas Technology Corp | データ処理装置の開発方法、データプロセッサの開発支援プログラム、設計データの提供方法、及びデータ処理システムの開発方法 |
US7278122B2 (en) * | 2004-06-24 | 2007-10-02 | Ftl Systems, Inc. | Hardware/software design tool and language specification mechanism enabling efficient technology retargeting and optimization |
JP2006155448A (ja) * | 2004-12-01 | 2006-06-15 | Matsushita Electric Ind Co Ltd | データ処理装置およびデータ処理装置の設計方法 |
US20070245280A1 (en) * | 2006-04-14 | 2007-10-18 | Magma Design Automation, Inc. | System and method for placement of soft macros |
CN101517576B (zh) * | 2006-05-22 | 2011-10-05 | 相干逻辑公司 | 基于软件程序在处理系统上的运行而设计asic |
KR100813662B1 (ko) * | 2006-11-17 | 2008-03-14 | 삼성전자주식회사 | 프로세서 구조 및 응용의 최적화를 위한 프로파일러 |
US7886255B2 (en) * | 2007-01-22 | 2011-02-08 | Texas Instruments Incorporated | Method for design of programmable data processors |
US7930653B2 (en) * | 2007-04-17 | 2011-04-19 | Micronic Laser Systems Ab | Triangulating design data and encoding design intent for microlithographic printing |
JP2008311361A (ja) * | 2007-06-13 | 2008-12-25 | Nec Electronics Corp | 半導体集積回路、半導体集積回路のレイアウト設計方法、及び半導体集積回路の自動レイアウトプログラム |
JP5049804B2 (ja) * | 2008-01-23 | 2012-10-17 | エイシップ・ソリューションズ株式会社 | Vliwプロセッサ自動生成方法及び自動生成プログラム |
US8037437B2 (en) * | 2009-01-13 | 2011-10-11 | Microsoft Corporation | Optimizing systems-on-a-chip using the dynamic critical path |
US8185862B2 (en) * | 2010-07-13 | 2012-05-22 | Algotochip Corporation | Architectural level power-aware optimization and risk mitigation |
US8370784B2 (en) * | 2010-07-13 | 2013-02-05 | Algotochip Corporation | Automatic optimal integrated circuit generator from algorithms and specification |
US8225247B2 (en) * | 2010-07-13 | 2012-07-17 | Satish Padmanabhan | Automatic optimal integrated circuit generator from algorithms and specification |
US8589854B2 (en) * | 2010-07-13 | 2013-11-19 | Algotochip Corp. | Application driven power gating |
-
2010
- 2010-07-13 US US12/835,603 patent/US8225247B2/en not_active Expired - Fee Related
-
2011
- 2011-07-11 WO PCT/US2011/043603 patent/WO2012009291A1/en active Application Filing
- 2011-07-11 JP JP2013519750A patent/JP5681280B2/ja not_active Expired - Fee Related
- 2011-07-11 EP EP11807359.2A patent/EP2593887A1/en not_active Withdrawn
- 2011-07-11 CN CN2011800440792A patent/CN103098058A/zh active Pending
- 2011-07-11 KR KR1020137003697A patent/KR101448409B1/ko not_active IP Right Cessation
- 2011-07-12 TW TW100124576A patent/TW201214180A/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5493507A (en) * | 1993-04-19 | 1996-02-20 | Pfu Limited | Digital circuit design assist system for designing hardware units and software units in a desired digital circuit, and method thereof |
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
US20090119480A1 (en) * | 2002-11-07 | 2009-05-07 | Qst Holdings, Llc | Method, System and Program for Developing and Scheduling Adaptive Integrated Circuitry and Corresponding Control or Configuration Information |
CN101228527A (zh) * | 2005-05-20 | 2008-07-23 | 凯登斯设计系统有限公司 | 有制造意识的设计和有设计意识的制造 |
US20070250800A1 (en) * | 2006-04-25 | 2007-10-25 | Cypress Semiconductor Corporation | Automated integrated circuit development |
US20100138811A1 (en) * | 2008-12-02 | 2010-06-03 | Qualcomm Incorporated | Dynamic Performance Profiling |
Also Published As
Publication number | Publication date |
---|---|
KR20130034048A (ko) | 2013-04-04 |
EP2593887A1 (en) | 2013-05-22 |
TW201214180A (en) | 2012-04-01 |
US20120017185A1 (en) | 2012-01-19 |
JP5681280B2 (ja) | 2015-03-04 |
KR101448409B1 (ko) | 2014-10-07 |
JP2013532856A (ja) | 2013-08-19 |
WO2012009291A1 (en) | 2012-01-19 |
US8225247B2 (en) | 2012-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103098059A (zh) | 根据算法和规格的自动最佳集成电路生成器 | |
CN103282886A (zh) | 架构层级功率监控优化和风险减轻技术 | |
O'Neal et al. | Predictive modeling for CPU, GPU, and FPGA performance and power consumption: A survey | |
CN103098058A (zh) | 根据算法和规格的自动最佳集成电路生成器 | |
CN103329132A (zh) | 架构优化器 | |
CN116126333A (zh) | 自动化编译的系统和方法 | |
CN103262081A (zh) | 用于驱动从架构优化到物理设计闭合的设计收敛的基于集成数据模型的框架 | |
KR20130107344A (ko) | 툴 생성기 | |
Zuo et al. | A polyhedral-based systemc modeling and generation framework for effective low-power design space exploration | |
US20130346926A1 (en) | Automatic optimal integrated circuit generator from algorithms and specification | |
Molina et al. | High-level synthesis hardware design for fpga-based accelerators: Models, methodologies, and frameworks | |
Klinefelter | How Software Can" Chip In" to the IC Design Process: A Multidisciplinary Approach May Attract New Talent and Accelerate Innovation | |
Shah et al. | A lightweight-system-level power and area estimation methodology for application specific instruction set processors | |
Cordes et al. | Automatic extraction of multi-objective aware parallelism for heterogeneous MPSoCs | |
Marantos | Design Methodologies and Tools for Energy-aware IoT-based Applications | |
Siqi | Synergistic Computing on Heterogeneous Multiprocessors | |
Schulz et al. | Rotated parallel mapping: A novel approach for mapping data parallel applications on cgras | |
Raju et al. | Reconfigurable Computing Systems Design: Issues at System-Level Architectures | |
Holsmark et al. | Processor Evaluation Cube: A classification and survey of processor evaluation techniques | |
Zhong et al. | Accelerating Data Analytics Kernels with Heterogeneous Computing | |
Ditzel et al. | Architecting with uncertainties | |
Ramani et al. | CoGenE: A Design Automation Framework for Embedded Domain Specific Architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130508 |