2.2 可配置性及可扩展性
2.2.1 可配置性
ARC EM系列的可配置性针对不同的应用需要有不同的功能需求。固定功能的芯片结构或许可以面面俱到,但是在将其设计投入产品之后,某些部分的功能可能完全没有使用到的机会,但即使没有使用,开发商仍需支付这些“多余”部分的成本,这就造成了浪费。与之相对应的,ARC EM可根据应用“量身剪裁”,提供更加节省资源的解决方案。ARC EM既支持对可选择功能部件进行可配置,还支持对相关功能部件的属性参数根据应用需求进行配置。ARC EM的可配置性具体如下。
处理器基本配置:地址总线宽度、程序指针PC宽度、循环计数器宽度、复位暂停、大小端、中断向量表复位基地址。
寄存器配置:寄存器数量、写口数量、寄存器组(Bank)以及备份组中寄存器数量。
总线接口协议:根据应用需求,ARC EM可进行4种总线接口的配置(BVCI和不同版本的AHB)。
中断:可对处理器内核可获取的中断个数以及外部中断管脚、中断优先级以及快速中断等进行配置。
Cache或外存访问主端:处理器可以通过Cache或者外存接口主端访问外存,并可对Cache大小、关联度等参数进行配置。
CCM:紧耦合存储器可配置大小和从端访问接口。
JTAG接口:支持2线和4线JTAG协议,能够访问所有内核资源。其中,2线JTAG是一个可选的接口组件,作为标准的4线JTAG的补充。
Debug接口:外部主机(或调试器)使用调试端口接口访问处理器资源,包括内部寄存器和整个存储器空间。在实际设计中,既可以从JTAG调试端口进行访问,也可以只是连接到仿真模型进行验证(使用-fast_rascal选项)。
定时器:Timer0、Timer1及RTC(Real-Time Counter)计数器都可以根据需要进行配置。
其他:还可以根据应用需要,配置以下特性,代码保护、堆栈保护、存储保护MPU、实时程序追踪、硬件断点和观察点、性能监视器、看门狗定时器、存储器错误保护、DSP指令支持、FPU指令支持、用户AUX接口等。
在标准指令集基础上,ARC EM还提供6组可选的指令集包给用户,用户可根据应用需求来进行配置。ARC EM处理器提供了一套完整的流程用来配置指令集,从而能够在性能、复杂性、工作频率、能耗间达到适当的平衡。ARC EM系列还包含了大量的配置检查功能以及工具链,程序库支持,能即时反馈,加快和优化处理器配置。表2-1总结了ARC EM指令集支持的可配置选项。详细的指令集介绍参见第3章。关于使用工具对ARC处理器进行配置,及配置过程对软件开发的影响等内容,参见第10章。
表2-1 ARC EM处理器指令集的可配置选项
2.2.2 用户可扩展性
ARC EM系列处理器提供了一个APEX接口支持可扩展性,针对目标应用,用户可通过APEX向导很方便地为处理器添加硬件,可极大地改善性能、功耗和面积。
用户可使用APEX接口,通过添加专用指令、通用扩展寄存器和具有特殊访问权限的辅助寄存器、状态代码和标志来扩展处理器体系结构。
支持用户添加信号用于集成外部设备,如扩展第三方知识产权IP。此功能可以使数据从外部IP直接向处理器发送数据和指令,而不需要通过总线。
APEX包含一个或多个指令、通用或辅助寄存器、条件代码或信号。APEX存储在一个扩展程序库中,可以通过拖曳的方式添加到模型中。
1.APEX的优点
APEX允许用户将自定义指令添加到现有的处理器框架中,而不用担心控制逻辑以及指令将作何处理。
使用APEX可接入第三方的IP或用户之前的设计,并且不需要构建总线或其他硬件处理器指令即可直接访问。例如,一个独立的DSP协处理器可以直接集成在处理器级别,而不需要考虑总线、相关延迟和流水线问题。
APEX很难被破解,因此可使用户的代码更安全。
2.APEX特点
1)扩展指令用以实现自定义功能。例如,自定义加法器,以缓解应用程序代码中的瓶颈。
2)扩展通用寄存器。这些扩展寄存器可用于所有的指令,通常用来处理经常变化和必须快速访问的信息。
3)扩展辅助寄存器可通过软件使用LR和SR指令访问,通常在不经常更改及不需要快速访问的情况下使用。
4)根据处理器标志的值或标志组合来决定条件代码是否用于条件执行。
5)使用APEX添加信号到处理器的内核顶层,增加内核外围端口。这些端口可定义为输入、输出或双向。
APEX的详细功能和使用参见第11章。