SoC设计方法与实现
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.1 SoC系统结构设计的总体目标与各个阶段

当前的SoC在单一芯片上集成了越来越多的处理器、存储器及各种外设等功能模块,其设计越来越复杂。SoC系统结构的设计将是后续一切硬件设计和软件开发的基础,而一个合理并优化的SoC系统结构设计方案将大幅提高设计效率,缩短相应产品的上市时间,降低设计风险。由此可见,SoC的系统结构设计至关重要。SoC系统结构设计的总体目标就是设计者针对应用的特点,选取合适的功能模块及模块之间数据的通信方式,在满足总线吞吐率、芯片面积、功耗等一系列系统约束的条件下,从众多系统结构方案中找到最优的SoC系统结构方案。

Bark Kienhuis等人针对SoC系统结构设计过程中需要解决的问题,提出了经典的基于Y-chart的SoC系统结构设计方法,如图4-1所示。可以看出,SoC系统结构设计者首先根据应用特点提出一个初始化的SoC系统结构备选方案(通常初始体系结构方案是具有较高抽象层次的虚拟化模型),然后将该应用映射到初始的系统结构方案上,并根据性能分析得到一系列性能参数指标,最后设计者参照这些性能指标来修改初始的系统结构方案以提升系统性能。由此可见,SoC的系统结构设计过程是一个复杂的、迭代优化的过程,直到找到满足应用需求的最优SoC系统结构。

图4-1 基于Y-chart的SoC系统结构设计方法

SoC的系统结构设计的过程还可分为以下3个阶段:功能设计阶段、应用驱动的系统结构设计阶段及平台导向的系统结构设计阶段。

4.1.1 功能设计阶段

功能设计阶段也称为行为级设计阶段。这一阶段的主要目标是根据应用的需要,正确地定义系统功能,并以此为基础确定初始的SoC的系统结构。因此,在该阶段的设计过程中,往往需要重点考虑以下问题:①正确定义系统的输入/输出;②确定系统中各功能组件的功能行为;③各功能组件之间的互连结构和通信方式;④确定系统的测试环境,以便能正确验证系统功能。

通过SoC系统结构的功能设计可以建立一个面向应用需求的系统功能模型,该模型可作为设计中进行功能验证的重要手段之一。

4.1.2 应用驱动的系统结构设计阶段

在确定系统的功能之后,需要进一步对系统的体系结构细节进行设计。应用驱动的系统结构设计阶段的主要目标是针对特定的应用需求,确定适合的SoC系统结构,从而在完成系统功能的同时,满足系统对性能和开销的限制。

应用驱动的系统结构设计中,一个关键阶段是根据应用需求,将设计划分为一系列硬件模块和软件任务,并确定各软硬件之间的接口规范。系统结构设计的最初阶段需要确定芯片上使用的处理器、总线及存储器类型。例如,是多处理器还是单处理器?选用什么类型的处理器?选用通用处理器还是DSP?选择什么类型的总线标准?总线的架构是什么类型?系统需要哪些存储器?在这一阶段也确定了软硬件的划分,如哪些任务用处理器完成,哪些任务用硬件加速器完成。

通过以上设计步骤,设计者可以得到一个高抽象层次的SoC系统结构平台。该平台允许软件设计人员进行软件系统移植,以验证完整的SoC系统结构功能。设计人员应根据验证结果对原有系统结构进行调整,从而发掘最优的SoC系统结构。这一过程为第三阶段基于平台的系统结构设计提供了重要基础。

4.1.3 平台导向的系统结构设计阶段

平台导向的系统结构设计的主要目标是创建一个较低抽象层次的SoC硬件平台。在该阶段需关注更多的设计细节,如处理器的型号、存储器的容量、高速缓存的命中率、总线仲裁等,并对嵌入式微处理器的利用率和SoC系统功耗进行优化。本阶段所构建的SoC平台将是面向某一应用领域的基础底层平台,针对该领域内不同的应用特点仅需对该平台进行微小的扩展或裁剪即可满足需求,大大增加了设计复用性。基于该阶段构建的SoC平台进行设计的方法称为基于平台的设计方法,将在5.8节详细介绍。