软核与硬核的优缺点比较
效能
由于软核并未完成建置(Implement),故比硬核在功能与建置方面拥有更高的弹性。另一方面,因为这些核心会被应用在许多设计方案中,所以硬核研发业者能花更多的时间针对其建置作业进行最佳化。因此一般人都有硬核能提供较高效能的成见。
事实上,针对大多数先进制程所设计的完全客制化高阶硬核,的确提供比软核更优越的效能。由运用latch(拴锁)型开关电路、动态逻辑、三相讯号、客制化内存等组件,完全客制化可达到超越完全静态合成设计方案的效能。对于需要超越现有制程与研发技术效能极限的SoC而言,完全客制化的硬核较能满足其需求。
但若效能目标落在软核的支持范围内,则硬核的优势就无关紧要。SoC研发团队可利用软核先天俱有的弹性满足其效能目标(随着制程技术持续改进,软核的最高频率亦会随之提高,让它们成为更多SoC设计方案的理想选择。)
即使在较低的频率频率下,硬核亦能提供硅组件空间上的优势。但这种优势并非永远存在。通常硬核运用ASIC型态的设计技术进行硬型化(hardened),这种流程无法在速度上产生优势。在其它方面,完全客制化的核心无法针对每个制程世代重新进行最佳化调校,因而消弭在频率与尺寸上的优势。
制程技术独立性与移植弹性
软核的其中一项优点就是制程技术独立性。高阶的Verilog或VHDL程序不需要运用某一特定的制程技术或标准的单元库(cell library)。这意谓同一套IP核心可重复应用在多种设计,或是未来新世代的设计方案中。(部份软核IP供货商开发出针对特定制程的方案,让其核心不具制程技术的独立性,但这种模式的优点尚不明确)。
另一方面,硬核则具有相当高的制程技术特定性。事实上,若晶圆厂商变更其制程参数或单元库变量(cell library factor),硬核有可能就无法正常运作。因为IP供货商在制程参数改变后,须重新检验硬核,所以这种特性即衍生出运用上的风险。
硬核可移植到新的制程技术,但须投入相当可观的心力与成本来重新进行最佳化调校。对于某些先进的微处理器核心而言,须耗费两年甚至更长的时间。因此,硬核的尺寸通常会针对新制程等比例缩小。这种方法虽简单且迅速,但可能减低研发团队针对最初制程进行的最佳客制化效益。
此外,光学等比例缩小的作法会衍生额外的风险,因为它仅保证新设计能符合设计规则,但不保证正确的时序或功能。由于光学比例缩小是超快捷方式式的设计模式,故业者在重新检验这类IP核心时会面临很大的困难。
事实上,软核可能是针对单一制程技术与单元库为设计依据,设计本身与此一技术无关。针对制程技术与单元库提供最佳的效能,类似的技术可能达到接近最佳化的成效,但是差异性较大的技术(例如搭配速度较慢的RAM)可能就无法达到相同的结果。此种现象并非绝对重要,所以软核在最佳化的弹性方面优于等比例光学缩小的硬核。
速度╱尺寸╱功耗最佳化调校
硬核在IP供货商进行建置时已做了一次最佳化。因核心仅进行一次最佳化,故IP供货商可投入较多的资源。因此,硬核的速度通常高于采用相同建置技术的软核。即使运用单一技术,硬核仅是锁定一个最佳化目标。若希望在合理的效能下降低芯片使用面积,则进行大幅效能最佳化的硬核,其面积可能过大。
相反的,软核能进行「应用最佳化」的调校。时序、尺寸以及功耗率目标可机动的调整,以配合特定的嵌入式SoC设计方案。例如,若SoC运用200MHz的频率,则原本为250MHz的IP软核应将运作频率调整为200MHz。这种作法能减少使用面积与功耗,同时也符合相关的设计要求。
低层级的I/O时序部份也可针对应用做
最佳化的调整。软核的I/O速度可配合核心所处的环境进行调整。反之,若硬核的输出讯号较为迟缓,SoC研发人员就没有太多可以改善这类时序问题的方法。 若SoC的速度、尺寸以及功耗率即为最初硬核的目标,则这套硬核就能具备竞争力。但是对大多数的设计而言,软核较能针对特殊SoC进行最佳化调校。
客制化弹性
软核另一项超越硬核的优势就是:编译当时才做客制化,在建置之前,可自行选择许多设计选项。
高速缓存大小是编译时常见的一种客制化项目。软核处理器让使用者选择其特定嵌入式系统所需的快取记忆容量。而硬核则无法进行这种客制化设定。
许多软核具有的另一种客制化设计就是自行定义指令集,也就是自行支持特定指令的功能。例如若SoC有特殊需要,可使用外部协同处理器,有些系统或许需要运用具有压缩功能的指令码,但若系统不需要这些功能时,这些多余硬件就可从软核中移除,以节省芯片面积与功耗。
软核同时也有一些建置组态参数,这些特殊的客制化参数能使软核进一步融入SoC团队所进行的设计环境。例如,微处理器核心通常运用逻辑闸频率电路进行建置,但这种频率可能无法搭配部份频率路由工具。若处理器核心有提供编译时的设定功能,能将所有逻辑闸频率变更成等效的再流通MUX(多任务)组件,就能减少SoC团队建置过程中所遇到的困难。
整合的难易度
除非硬核由内部研发小组所建置,否则软核通常比较容易整合至作业流程。其原因是SoC研发团队将在获得授权的IP核心周围加入各种RTL模块。此时核心就如同SoC中的其它模块,亦能采用相同的建置处理方式。
硬核比较像一个黑箱RAM组件(black-box RAM),尤其是采用全客制化技术所建置的核心。这代表硬核供货商须提供更多的黑箱式核心模型,让SoC研发业者能针对这些处理器设计其模块。这种流程应用难度原本就高于软核。例如,一套全客制化的硬核可能没有逻辑闸层级的电路清单(netlist)。这是因为设计工作是在晶体管层级中进行,并未涉及逻辑闸。但设计团队可能需要做含有回馈(back-annotated)时序机制的逻辑闸层级功能仿真测试,此时若缺乏逻辑闸层级的电路图就很难进行这种模拟。
本帖最后由 白丁 于 2016-6-29 23:23 编辑