TA的每日心情 | 开心 2019-11-20 15:00 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
转——软核与硬核的优缺点比较 : c+ ^2 [8 }0 {. t7 N, A" V1 e! F
# Q# |1 @& N+ H/ W) r* z效能
) \) x8 w9 @. f 由于软核并未完成建置(Implement),故比硬核在功能与建置方面拥有更高的弹性。另一方面,因为这些核心会被应用在许多设计方案中,所以硬核研发业者能花更多的时间针对其建置作业进行最佳化。因此一般人都有硬核能提供较高效能的成见。( i6 ~( O0 A5 z3 V$ ?$ a L
2 E' S, |4 K+ G
事实上,针对大多数先进制程所设计的完全客制化高阶硬核,的确提供比软核更优越的效能。由运用latch(拴锁)型开关电路、动态逻辑、三相讯号、客制化内存等组件,完全客制化可达到超越完全静态合成设计方案的效能。对于需要超越现有制程与研发技术效能极限的SoC而言,完全客制化的硬核较能满足其需求。# t% j& ? W4 u- a6 [" i* h+ l. [
3 a9 Z7 b" m8 }3 x$ o
但若效能目标落在软核的支持范围内,则硬核的优势就无关紧要。SoC研发团队可利用软核先天俱有的弹性满足其效能目标(随着制程技术持续改进,软核的最高频率亦会随之提高,让它们成为更多SoC设计方案的理想选择。)- N/ t7 }8 [8 C9 ^8 @9 ]
! T" M1 o; A& \! {; F7 \# A 即使在较低的频率频率下,硬核亦能提供硅组件空间上的优势。但这种优势并非永远存在。通常硬核运用ASIC型态的设计技术进行硬型化(hardened),这种流程无法在速度上产生优势。在其它方面,完全客制化的核心无法针对每个制程世代重新进行最佳化调校,因而消弭在频率与尺寸上的优势。& J3 G T) P, ^& X1 m9 q" L
8 q7 [7 W0 C9 N 制程技术独立性与移植弹性
9 A' |6 ^/ v$ I4 Y5 L8 @( x& P4 r ]/ I& y
软核的其中一项优点就是制程技术独立性。高阶的Verilog或VHDL程序不需要运用某一特定的制程技术或标准的单元库(cell library)。这意谓同一套IP核心可重复应用在多种设计,或是未来新世代的设计方案中。(部份软核IP供货商开发出针对特定制程的方案,让其核心不具制程技术的独立性,但这种模式的优点尚不明确)。
% J9 m0 g% [/ L- p8 Z( y( |# [ @+ P2 z1 |% h
另一方面,硬核则具有相当高的制程技术特定性。事实上,若晶圆厂商变更其制程参数或单元库变量(cell library factor),硬核有可能就无法正常运作。因为IP供货商在制程参数改变后,须重新检验硬核,所以这种特性即衍生出运用上的风险。
5 j4 i$ g' @3 d+ @7 a7 P- ^+ l4 h0 U) `* B% Y# c+ Y6 Q; b
硬核可移植到新的制程技术,但须投入相当可观的心力与成本来重新进行最佳化调校。对于某些先进的微处理器核心而言,须耗费两年甚至更长的时间。因此,硬核的尺寸通常会针对新制程等比例缩小。这种方法虽简单且迅速,但可能减低研发团队针对最初制程进行的最佳客制化效益。( J6 P: z: o) M/ h7 @( q: B
8 E( ]. W1 P# F7 g8 c! G, }5 e* z 此外,光学等比例缩小的作法会衍生额外的风险,因为它仅保证新设计能符合设计规则,但不保证正确的时序或功能。由于光学比例缩小是超快捷方式式的设计模式,故业者在重新检验这类IP核心时会面临很大的困难。
8 C/ u7 d. U% s+ Q' {% D( B; m0 m
事实上,软核可能是针对单一制程技术与单元库为设计依据,设计本身与此一技术无关。针对制程技术与单元库提供最佳的效能,类似的技术可能达到接近最佳化的成效,但是差异性较大的技术(例如搭配速度较慢的RAM)可能就无法达到相同的结果。此种现象并非绝对重要,所以软核在最佳化的弹性方面优于等比例光学缩小的硬核。8 ~- `0 q$ W$ @ v
5 Z% S' ] d3 H0 n b- G; |' o6 e
速度╱尺寸╱功耗最佳化调校6 P! b* o7 v) w. e s, J; [2 [
. e9 [/ J+ V; K* N6 O- S& q$ w+ @ 硬核在IP供货商进行建置时已做了一次最佳化。因核心仅进行一次最佳化,故IP供货商可投入较多的资源。因此,硬核的速度通常高于采用相同建置技术的软核。即使运用单一技术,硬核仅是锁定一个最佳化目标。若希望在合理的效能下降低芯片使用面积,则进行大幅效能最佳化的硬核,其面积可能过大。
: @$ i6 J6 E! J/ O" A# [3 r, e$ ^+ e% C1 `4 |: f" Q3 p2 ~( s
相反的,软核能进行「应用最佳化」的调校。时序、尺寸以及功耗率目标可机动的调整,以配合特定的嵌入式SoC设计方案。例如,若SoC运用200MHz的频率,则原本为250MHz的IP软核应将运作频率调整为200MHz。这种作法能减少使用面积与功耗,同时也符合相关的设计要求。
9 T& j; m- t2 m: @, i% Z
# R! }, `6 N9 v1 \8 ^/ O) a 低层级的I/O时序部份也可针对应用做
: Z% V6 u2 z# o1 ?2 v/ \% @, Q+ B- G6 H
最佳化的调整。软核的I/O速度可配合核心所处的环境进行调整。反之,若硬核的输出讯号较为迟缓,SoC研发人员就没有太多可以改善这类时序问题的方法。 若SoC的速度、尺寸以及功耗率即为最初硬核的目标,则这套硬核就能具备竞争力。但是对大多数的设计而言,软核较能针对特殊SoC进行最佳化调校。( @8 O$ _# i' ~& T0 m: b8 c# y
! O z3 x3 M; n: k 客制化弹性
% z M* j5 q- ?% s7 E2 I: r; F 软核另一项超越硬核的优势就是:编译当时才做客制化,在建置之前,可自行选择许多设计选项。
* Q" Q% }# [, [6 m, l' O. j3 {
; D; k% z" v* f3 b8 } 高速缓存大小是编译时常见的一种客制化项目。软核处理器让使用者选择其特定嵌入式系统所需的快取记忆容量。而硬核则无法进行这种客制化设定。
0 W" ~0 L7 K, d4 q @6 z: Z" h1 o) ]
( J. J' o# Q' Y. N3 _2 ~9 A9 Y 许多软核具有的另一种客制化设计就是自行定义指令集,也就是自行支持特定指令的功能。例如若SoC有特殊需要,可使用外部协同处理器,有些系统或许需要运用具有压缩功能的指令码,但若系统不需要这些功能时,这些多余硬件就可从软核中移除,以节省芯片面积与功耗。, o$ P% x; K0 p( q- Z! p
( m( W( L6 t7 F; J 软核同时也有一些建置组态参数,这些特殊的客制化参数能使软核进一步融入SoC团队所进行的设计环境。例如,微处理器核心通常运用逻辑闸频率电路进行建置,但这种频率可能无法搭配部份频率路由工具。若处理器核心有提供编译时的设定功能,能将所有逻辑闸频率变更成等效的再流通MUX(多任务)组件,就能减少SoC团队建置过程中所遇到的困难。4 d( S; O- q( l9 l( _
. O* ?) U" M7 S 整合的难易度- U z: w1 n3 G+ z1 Z4 Q/ I
除非硬核由内部研发小组所建置,否则软核通常比较容易整合至作业流程。其原因是SoC研发团队将在获得授权的IP核心周围加入各种RTL模块。此时核心就如同SoC中的其它模块,亦能采用相同的建置处理方式。8 G! p# T0 l! n. A- W
; Q9 U# y: i2 d( R( ~ 硬核比较像一个黑箱RAM组件(black-box RAM),尤其是采用全客制化技术所建置的核心。这代表硬核供货商须提供更多的黑箱式核心模型,让SoC研发业者能针对这些处理器设计其模块。这种流程应用难度原本就高于软核。例如,一套全客制化的硬核可能没有逻辑闸层级的电路清单(netlist)。这是因为设计工作是在晶体管层级中进行,并未涉及逻辑闸。但设计团队可能需要做含有回馈(back-annotated)时序机制的逻辑闸层级功能仿真测试,此时若缺乏逻辑闸层级的电路图就很难进行这种模拟。: @1 U* O- e1 L, d6 B
' Q+ T- s* h4 w6 Q 软核通常以可综合的HDL提供,因此具有较高的灵活性,并与具体的实现工艺无关,其主要缺点是缺乏对时序、面积和功耗的预见性。由于软核是以源代码的形式提供,尽管源代码可以采用加密方法,但其知识产权保护问题不容忽视。硬核则以经过完全的布局布线的网表形式提供,这种硬核既具有可预见性,同时还可以针对特定工艺或购买商进行功耗和尺寸上的优化。尽管硬核由于缺乏灵活性而可移植性差,但由于无须提供寄存器转移级(RTL)文件,因而更易于实现IP保护。 0 x8 c: m9 z& O9 Q7 d# [9 z
固核则是软核和硬核的折衷。大多数应用于FPGA的IP内核均为软核,软核有助于用户调节参数并增强可复用性。软核通常以加密形式提供,这样实际的RTL对用户是不可见的,但布局和布线灵活。在这些加密的软核中,如果对内核进行了参数化,那么用户就可通过头文件或图形用户接口(GUI)方便地对参数进行操作。对于那些对时序要求严格的内核(如PCI接口内核),可预布线特定信号或分配特定的布线资源,以满足时序要求。这些内核可归类为固核,由于内核是预先设计的代码模块,因此这有可能影响包含该内核的整体设计。由于内核的建立(setup)、保持时间和握手信号都可能是固定的,因此其它电路的设计时都必须考虑与该内核进行正确地接口。如果内核具有固定布局或部分固定的布局,那么这还将影响其它电路的布局。0 X/ n6 Z t2 f- `% E# A
|
|