摘要:近年来集成电路行业取得良好发展,IP复用技术在片上集成设计上有着广泛运用,使得SoC结构更加复杂。本文主要针对手机基带芯片SoC中断系统设计及验证进行分析,中断系统是片上结构中的重要构成部分,主要起到促进外设与CPU间信息互动的作用,为了满足系统功能多样化发展要求,需要进行中断系统改进设计。
关键词:手机基带芯片;SoC中断系统;设计与验证
前言:为了保证手机基带芯片SoC中断系统多样化功能的实现,需要从实际要求出发,加大系统设计和验证工作。在设计实践中,提出一种能协调CPU灵活管理中断请求,帮助降低功耗的设计规划,并自动生成测试平台来进行验证。本文主要突出系统控制单元中的可编程中断控制模块的设计,旨在提高处理效率,确保手机基带芯片正常使用。
一、中断系统概述
中断系统是一个复杂的系统,随着中断技术的使用一定程度增强了CPU处理功能,中断系统中包括较多中断源、控制电路和硬件检测,其中中断控制器是核心部件。目前市场上有着功能各异的和处理IP,还应从中断系统作用出发,提高SoC中断系统设计有效性[1]。计算机系统中通常会有外部请求传递至CPU,需要CPU暂停当前运行的程序而响应中断请求,根据事先编写好的服务程序执行中断指令。在执行完成后CPU自动返回原来执行的程序中,将上述中断操作中的技术称作中断技术。中断系统是移动设备中的主要构成部分,将系统硬件组成分成中断源、中断控制器和CPU,一个完整的功能系统能执行以下任务:一是故障检测及处理;二是信息的实时处理;三是并行操作;四是分时操作。
二、SCU与系统中断管理的设计
(一)SCU控制单元设计
外部中断与内部中断性质存在差异,因此SCU会将外部和内部中断分开处理,各个中断源对应特有的检测单元,能满足不同中断请求。由于外部中断与内部中断来源差异性,因此检测单元线路设计有所不同。当控制单元检测到中断指令后,将其送至寄存器来控制,为了区分中断质量,外部和内部寄存器在功能是不同的。本次终端系统设计中,运用的中断源信号是在16-32内的数字,在两个寄存器组共同作用下,得到一组64位的数据传递出去。在寄存器组设计方面,应根据中断编号来设计。
(二)系统中断管理
本项目采用的CPU是64位Base-IA,满足中断操作要求,每个中断对应一个服务程序,对于功能相似的请求质量,响应程序是一样的,中断信号在起始阶段便将多个指令整合成一个请求信号,由系统完成信号处理。中断信号来源于SCU模块和其他模块。CPU通过查表方式确定中断源,然后执行已有服务程序,因此需要在系统内存中建立一个中断向量表,方便不同中断信号的识别。系统将所有中断请求集中在一起,按照类型号来排序并传递至存储器中,将这一存储区域称为中断向量表。在响应中断请求时,CPU从接口线路获得中断向量号,将程序流转到中断服务器接口地址。进行中断级别划分时,往往由工程师提前定义好,设计人员根据定义划分中断级别,本次终端系统设计主要采取轮训调度方法,每个中断源对应向量号是确定,由此决定中断优先级是确定的。确定优先级和系统功能正常发挥有着密切联系,一般中断向量值越小,则优先级较高。除了上述过程外,还要实现中断嵌套功能,当CPU同时接收多个中断指令时,会优先处理高级别的中断请求,正在执行的中断程序会被其他更高级别的中断请求中断。从系统特点来看,只有优先级不同的服务请求才能进行中断嵌套,高级别中断可中断低级别中断程序,之后恢复被中断的程序继续执行。
期刊文章分类查询,尽在期刊图书馆
三、可编程中断延迟控制器的设计
以上主要介绍中断系统作用和中断管理,可了解到中断系统中包括一个能收集不同来源中断信号的单元模块,能控制部分信号。考虑到低能耗要求,应设计一个延迟控制器配合程序的执行。在一个手机基带芯片中,主要能耗产生来源于CPU,为了降低能耗需要在CPU暂停作业时,将其推到idle状态。系统和CPU交互功能的丰富,则CPU唤醒频率有所增加,考虑到CPU状态转换过程会产生较大能耗,因此应尽可能增加一个运行周期内的执行量。中断延迟控制组件起到延迟中断请求的作用,集中处理中断请求,能有效降低系统能耗。延迟设计主要作用在不太紧急的任务执行上,能通过软件来控制,将其作用在SoC中断系统中,所有中断请求都会通过延迟控制器传递至SPCU和APIC中,若需要延迟则在一定时间后再发送,通过编写代码完成具体操作[2]。中断延迟起到降低能耗、提高CPU工作效率的作用,利用中断延迟将多个请求集中在一起,在一个执行周期内处理,避免出现频繁中断的现象。因此设计中断延迟模块时,各个子系统应定期发送flag,按照等级顺序延迟处理不紧急的中断请求,主要运用Time-Based和Tick-Based两种机制。以Tick-Based延迟机制为例,它是基于2G、3G、LET进行设计的,通过设计比较器得到最小延迟单元配置,多个中断指令同时发出时,首先比较两个相邻中断指令的延迟时间,之后比较上述结果,经过多次比较后获得最小延迟。另外当某一中断程序被延迟后,又发出新的中断指令则需要再次进行比较。中断延迟状态检测单元会根据CPU运行情况,确定延迟条件,通过软件作设定不同中断请求延迟时间,使各个程序有序执行。另外,中断请求可作为CPU唤醒源,发挥相应的模块功能。
四、中断管理和中断延迟控制器验证
上文介绍了中断功能模块和延迟控制器单元的设计,下面将进行设计方案的验证,随着SoC集成度的提高,系统规模随之扩大,验证环节对中断系统正常运行有着重要意义,可及时解决设计漏洞,降低运行风险并加大成本控制。在大规模中断系统建设中,划分多个模块完成设计和验证,按照从大到小的顺序进行,本次项目中利用基于断言形式和动态仿真两种方式来验证。中断控制单元中大多数设计要采取仿真验证方法,利用自动化检测平台能快速完成验证工作。中断寄存器和延迟控制器设计合理与否要通过断言形式来实现,在两者配合作用下提高验证有效性。功能仿真是主要验证手段之一,是通过建设虚拟检测平台,将真实信息输入其中,之后进行模拟运作收集软件运行结果,技术人员结合验证结果输出校验。在某一手机基带芯片中断系统设计项目中,设计手段是不断改进的,加大了验证复杂程度。功能仿真是在测试平台上完成的,本项目中的测试用例是自动生成的,测试平台功能如下:将ahd文件中的代码转换成机器码;例化待测设计;时钟信号的生成;存放初始命令;输送鼓励;收集设计模块的输出信息。为了减少设计功能变化时调整测试平台花费的时间,可利用perl脚本工具实现测试平台自动生成,这时只需要改变输入端口映射和待测设计模块的例化。从仿真验证结果来看,在设计文件中,将中断寄存器配置在功能系统中,设置触发方式为下降沿,检查中断请求能否正常执行。利用下降沿采样可收集中断信号,同时可改变寄存器配置,得到不同条件下的验证波形。从中断系统运行实际情况看,全部中断请求都能够有效执行,说明本次设计方案具有较好可行性。
结论:综上所述,SoC中断系统设计与验证面临着较多挑战,在手机基带芯片开发设计方面,要重视中断系统的合理设计,尤其是IP复用技术的使用,使得中断系统重要性进一步凸显。另外,设计结束后要进行功能验证,是一个重要环节,如何做到模块高效验证是验证的关键,本次项目中设计了中断控制模块,能达到充分验证的目的。
参考文献:
[1]纪虎东. 手机基带芯片SoC中断系统的设计与验证[D].西安电子科技大学,2017.
[2]徐春燕. BLE基带芯片设计及SoC系统集成[D].华南理工大学,2017.
论文作者:楼薇, 李犁,,吴艳
论文发表刊物:《城镇建设》2019年第17期
论文发表时间:2019/10/17
标签:系统论文; 基带论文; 功能论文; 程序论文; 寄存器论文; 模块论文; 芯片论文; 《城镇建设》2019年第17期论文;