ARC EM处理器嵌入式系统开发与编程(txt+pdf+epub+mobi电子书下载)


发布时间:2020-10-08 02:09:45

点击下载

作者:雷鑑铭,等

出版社:机械工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

ARC EM处理器嵌入式系统开发与编程

ARC EM处理器嵌入式系统开发与编程试读:

前言

嵌入式系统(Embedded System)是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电气工程师协会(U.K.Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器,或用于工厂运作的设备。而国内普遍认同的嵌入式系统的定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。与个人计算机这样的通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。

本书以实际的嵌入式系统产品应用与开发为主线,力求透彻讲解开发中所涉及的庞大而复杂的相关知识。

本书第1~5章为基础篇,介绍了ARC嵌入式系统的基础知识和开发过程中需要的一些理论知识,具体包括ARC嵌入式系统概述、ARC EM处理器介绍、ARC EM编程模型、中断及异常处理、汇编语言程序设计等内容。第6~9章为实践篇,介绍了如何建立嵌入式开发环境、搭建嵌入式硬件开发平台等,具体包括ARC EM处理器的开发及调试环境、MQX实时操作系统、ARC EM Starter Kit FPGA开发板以及嵌入式系统应用开发实例等内容。第10~11章介绍了ARC EM处理器特有的可配置及可扩展APEX属性,以及如何在处理器设计中利用这种可配置及可扩展性实现优化设计。

本书不仅详细讲解基础理论知识,还提供了大量的开发案例供读者参考,学习性和实用性强,既可供从事嵌入式系统设计、开发的广大科技人员阅读,也可以作为大专院校电子科学与技术、集成电路与集成系统、微电子科学与工程、物联网工程、电子信息、自动控制专业及其他相关专业的教材或参考书。

本书是华中科技大学-Synopsys ARC处理器联合培训中心的力作,系统介绍应用Synopsys ARC处理器进行嵌入式系统开发与编程。为了使广大学生和研发工程师尽快掌握ARC EM处理器的使用,更好地推广Synopsys ARC处理器技术与产品,在Synopsys全球总部、Synopsys武汉公司、Synopsys ARC研发团队、华中科技大学光学与电子信息学院微电子工程系、武汉微电子学院及机械工业出版社华章公司的支持下,我们编著了此书,目的是为广大读者提供一本较为完整、系统的ARC EM嵌入式系统开发与编程参考书。本书主要以ARC EM原版数据手册的内容为基础,增加了ARC EM处理器特有的可配置及可扩展APEX属性等内容。为了方便学习和实践,我们还开发了较为完整的配套实验案例,以及一个嵌入式系统应用实例——温度自动监测模块。

本书由华中科技大学武汉国际微电子学院及华中科技大学光学与电子信息学院雷鑑铭老师负责组织并完成全书的编著工作,华中科技大学郑朝霞副教授、邹雪城教授对本书进行了审校。参与本书编写和整理、软硬件设计和案例开发验证等工作的有Synopsys公司的吴丹、程松波、程文、涂申俊、饶金理、沈金阳、陈鹏、胡振波、彭剑英以及华中科技大学武汉微电子学院的彭自强、向灯、黄之、许晟、安志浩、顾云帆、高文、钟媛、高弘扬、郑贤、符章等。在本书完成过程中,还得到了Synopsys武汉公司王喆及机械工业出版社华章公司的大力支持,在此向他们表示衷心的感谢。特别感谢文华学院外国语学院英语系肖艳梅老师的审校工作。

由于时间仓促和水平有限,同时在成书过程中Synopsys公司的官方资料还在不断更新,所以本书有些内容不尽完善,错误之处也在所难免,恳请读者批评指正,以便我们及时修正。有关此书的信息和配套资源,会及时发布在网站上(网址为http://www.embarc.org)。

第1章 ARC嵌入式系统概述

本章主要介绍嵌入式系统的定义、嵌入式系统的主要特点和嵌入式系统的各个组成部分,使读者对嵌入式系统有较为系统的认识。同时还简要地介绍ARC EM处理器系列特点,以及基于ARC EM处理器的嵌入式系统开发环境。

1.1 嵌入式系统简介

近年来,随着以计算机技术、通信技术为主的信息技术的快速发展和Internet的普及,嵌入式系统得到了越来越广泛的应用及发展。嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪(这是指嵌入式系统的大小和规格可随着具体应用需求而改变),适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。

根据英国电气工程师协会(U.K.Institution of Electrical Engineer)的定义,嵌入式系统(Embedded System)为控制、监视或辅助设备、机器,或用于工厂运作的设备。

根据中文维基百科的定义:嵌入式系统是一种完全嵌入受控器件内部,为特定应用设计的专用计算机系统。与个人计算机等通用计算机系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。由于嵌入式系统只针对一项特殊的任务,设计人员能够对其进行功能最佳化、系统最小化设计,从而达到降低成本的目的。

总之,嵌入式系统是面向用户、面向产品、面向应用的,必须与具体应用相结合才会具有生命力和优势。因此可以这样理解上述三个面向的含义,即嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的设计。

嵌入式系统主要由硬件层、中间层、系统软件层和应用软件层组成。

·硬件层包含嵌入式处理器、存储器、通用设备接口和I/O(Input/Output,输入/输出)接口。在单片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。

·硬件层与软件层之间为中间层,也称为硬件抽象层或板级支持包(Board Support Package,BSP)。它将系统上层软件与底层硬件分离,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体细节,只要根据BSP层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。

·系统软件层由实时多任务操作系统、文件系统、图形用户接口、网络系统及通用组件模块组成。RTOS(Real Time Operating System,实时操作系统)是嵌入式应用软件的基础和开发平台。

·应用软件层指用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合。

其中,嵌入式处理器是嵌入式系统的核心组成部分,它由通用计算机中的CPU(Central Processing Unit,中央处理器)演变而来,与通用CPU最大的不同在于嵌入式处理器主要工作在为特定用户群所专门设计的系统中,它将通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。

嵌入式处理器的体系结构一般采用冯·诺依曼结构或哈佛结构,指令系统采用复杂指令集(Complex Instruction Set Computer,CISC)结构或精简指令集(Reduced Instruction Set Computer,RISC)结构。据不完全统计,全球嵌入式处理器已经超过1000种,其中主流的体系有ARM、MIPS、PowerPC、ARC、X86等。

1.2 ARC处理器简介

ARC处理器是Synopsys公司推出的系列32位RISC结构微处理器产品,致力于在满足应用所需的处理性能前提下,以尽可能低的处理器功耗和尽可能小的芯片面积实现高效能、低成本。

ARC处理器具有独特的可配置和可扩展特性,给工程设计人员提供了极大的设计弹性。设计人员可以根据应用需求,选择相应的ARC处理器产品系列,配置处理器总线接口类型、数据位宽、寻址位宽、指令类型等属性。处理器内部的各功能模块也支持可配置,例如配置乘法器采用不同算法实现,配置高速缓存Cache的容量和结构,配置中断处理单元所支持的中断数目和中断级数等。此外,ARC处理器支持嵌入式系统设计工程师通过处理器的APEX扩展接口添加自己的定制指令、寄存器、硬件模块甚至是协处理器,为特定应用提供硬件加速。这种根据应用“量身裁剪”的设计方式使得工程师可以在性能、面积、功耗之间进行权衡,以实现最佳的内核PPA(Performance/Power/Area,性能/功耗/效率)。

ARC处理器采用了高效的16/32位混合指令集体系结构。其中,16位指令包含最常用的指令操作类型,有助于提高代码密度。ARC处理器的存储系统支持配置片上存储器CCM(Closely Coupled Memory,紧耦合存储器),便于以固定延迟(1~2个时钟周期)访问应用中性能关键的代码和数据,不仅有利于缓解片外总线访存压力,降低系统访存延迟,提高处理性能,还有助于提高系统集成度,降低系统成本。

ARC处理器具有强大的中断/异常处理能力,支持快速中断响应和中断处理优先级动态编程,可以精确定位异常原因和类型。同时,ARC处理器提供了丰富的调试接口和调试指令,便于程序员实时监测处理器内部的运行状态和调试应用程序,使得ARC处理器可以很好地适用于可靠性要求较高的应用场合。

ARC处理器的研发经历了ARCv1和ARCv2两种指令集体系结构,得到了充分的市场验证及系统应用。目前,全球已有超过200家厂商获得了ARC处理器的生产授权,基于ARC处理器的芯片年出货量超过17亿片。

相比ARCv1,ARCv2体系结构在以下方面进一步提高了处理器的性能和实时处理能力:

1)支持64位访存指令。

2)支持非对齐的存储器访存操作。

3)支持硬件整数除法。

4)增加了64位乘法、乘累加、向量加法和减法等指令操作。

5)支持影子寄存器以进行异常处理中的现场保护,减少异常上下文的切换时间。

6)扩展了中断处理功能,支持多达240个外部中断和16个可编程中断优先级,可自动保存上下文和返回现场。

7)优化的指令集结构使得代码密度可以获得18%的提升。

为了满足嵌入式领域不同应用的需求,ARC处理器已经开发了丰富的产品系列,如图1-1所示。图1-1 ARC处理器产品系列

1)HS产品系列(HS34、HS36、HS38)是目前性能最高的ARC处理器内核,采用了十级流水线技术,支持指令乱序执行和L2 Cache,可配置成双核或四核SMP(Symmetric Multi-Processor,对称多处理器)系统,并支持运行Linux操作系统。可提供高达1.6GHz的主频和21.9DMIPS/MHz的性能,内核功耗为60mW,面积约0.15mm。HS产品系列主要面向高端的嵌入式应用,如固态硬盘、联网设备、汽车控制器、媒体播放器、数字电视、机顶盒和家庭联网产品等。

2)EM系列产品(EM4、EM6、EM SEP、EM5D、EM7D)是功耗最低、面积最精简的ARC处理器内核,采用三级流水线技术。可提供约900MHz的主频和1.77DMIPS/MHz的性能,能耗效率可达3W/MHz,2内核面积仅为0.01mm。主要面向深嵌入式超低功耗应用领域以及数字信号处理领域,如IoT(Internet of Things,物联网)、工业微控制器、机顶盒、汽车电子等。

3)700系列产品(710D、725D、770D)采用了七级流水线技术,支持动态分支预测,可提供高达1.1GHz的主频。主要面向中、高端的嵌入式应用领域,如固态硬盘、图像处理、信号处理、联网设备等。

4)600系列产品(601、605、610D、625D)采用了五级流水线技术,可提供约900MHz的主频。主要面向通用嵌入式领域,如工业控制、带宽调制解调、VoIP、音频处理等。此外,600系列处理器具备特有的XY存储器结构,特别针对数字信号处理进行优化,可以很好地应用于嵌入式DSP(Digital Signal Processing)领域。

5)AS200系列产品(AS211SFX、AS221BD)是专门用于数字电视、数码相机、音频播放和视频播放等音频处理应用领域。

此外,为了能更有效地针对特定应用进行开发,降低设计风险,缩短产品设计周期,基于ARC处理器的软件开发工具、中间软件以及操作系统部署等也都趋于完善和成熟,建立了完整的生态系统,能够给工程技术人员提供一套完整的解决方案。

ARC处理器的主要特点可归纳如下:2

1)以功耗效率(DMIPS/mW)和面积效率(DMIPS/mm)最优化为目标,满足嵌入式市场对微处理器产品日益提高的效能要求。

2)成熟、统一的ISA指令集体系结构不仅便于开发不同产品系列,也便于开发同一系列下的不同产品,具有非常好的延展性和兼容性。

3)高度可配置性,以便“量体裁衣”,可通过增加或删除功能模块,满足不同应用需求,通过配置不同属性实现快速系统集成。

4)灵活的可扩展性,支持用户自定义指令、外围接口和硬件逻辑,进一步优化处理器性能和功耗。

5)强大的实时处理能力,中断响应快速且动态可编程。

6)优异的节能特性,支持从体系结构(SLEEP指令)、硬件设计(门控时钟)到设计实现(门级功耗优化)等不同粒度的低功耗控制。

7)丰富的调试功能,协助编程人员快速查询处理器状态。

8)成熟的开发套件和完整的生态系统,帮助工程设计人员快速完成从产品设计、实现到验证等嵌入式开发过程。

1.3 ARC EM处理器系列

ARC EM处理器产品系列自2012年推向市场以来,已经在传感器、IoT、微控制器、数字信号处理以及汽车电子等对设备功耗、体积和安全性要求高的深嵌入式应用领域得到了广泛应用。

ARC EM处理器的通用结构及其系列产品如图1-2所示。ARC EM处理器采用了三级流水线技术,包含基本的取指部件、ALU(算术逻辑单元)和寄存器组。在此基础之上,通过添加不同的功能模块(如高速缓存Cache、紧耦合存储器CCM)或扩展指令集(如向量处理DSP指令)实现不同的产品。图1-2 ARC EM处理器通用结构与系列产品

目前,ARC EM处理器产品系列主要包括以下几种:

(1)ARC EM4处理器

ARC EM4结构图如图1-3所示。

·内核规模非常小,等效门数小于10K。

·高达1.77 DMIPS/MHz和3.41 Core-Marks/MHz的性能。

·支持多达16个中断优先级别,240个中断。

·可配置指令CCM(ICCM)容量为512B~2MB。

·可配置数据CCM(DCCM)容量为512B~2MB。

·ARM、AMBA、AHB、AHB-lite和BVCI总线接口。

·可选32×32或(和)16×16乘法器。

·支持自定义用户扩展。

主要应用包括:嵌入式和深嵌入式应用,如智能微系统(智能MEMS系统)、记忆卡、SSD控制器、8位和16位微控制器替代产品和电池供电的产品。

(2)ARC EM6处理器

ARC EM6结构图如图1-4所示。ARC EM6内核支持高达32K的指令和数据高速缓存,并专门进行了优化,以用于功耗和成本敏感型的嵌入式及深嵌入式应用。图1-3 ARC EM4结构图1-4 ARC EM6结构

·多达32KB指令高速缓存(ICache)。

·多达32KB数据高速缓存(DCache)。

·高达1.77 DMIPS/MHz和3.41 Core-Marks/MHz的性能。

·支持多达16个中断优先级别,240个中断。

·可配置指令CCM(ICCM)容量为512B~2MB。

·可配置数据CCM(DCCM)容量为512B~2MB。

·ARM、AMBA、AHB、AHB-lite和BVCI总线接口。

·可选32×32和(或)16×16乘法器。

·支持自定义用户扩展。

主要应用包括:记忆卡、SSD控制器、功耗管理产品、便携式媒体播放器和其他移动设备。

(3)ARC EM SEP处理器

ARC EM SEP将实现汽车安全完整性等级ASIL D的硬件安全特性与高效小型处理器相集成,其结构图如图1-5所示。图1-5 ARC EM SEP处理器结构

·集成满足ASIL D级要求的硬件功能,包括纠错码(Error-Correcting Code,ECC),支持校验位,用户可编程的看门狗定时器和双核心的同步接口。

·MetaWare编译器已通过ASIL D级认证。

·大量用于简化ISO 26262认证程序的安全文件。

·应用目标包括需要ISO 26262安全许可的嵌入式汽车应用,如运动与加速传感器、电动助力转向系统和先进的驾驶辅助系统(Advanced Driver Assistance System,ADAS)。

(4)ARC EM DSP处理器

物联网(IoT)市场中可穿戴式设备及器件需要其DSP高性能和低功耗,以实现最佳性能和延长系统待机时间,ARC EM DSP系列(包括EM5D和EM7D处理器)正是针对低功耗嵌入式应用进行了优化,其结构图如图1-6所示。图1-6 ARC EM5D和EM7D处理器结构

·ARCv2DSP ISA增加了超过100条DSP指令。

·定点、矢量和SIMD DSP处理支持。

·高能效的统一32×32 MUL/MAC单元。

·高度可配置的DSP和处理器功能,以实现最佳设计。

·MetaWare C/C++编译器,支持DSP编程。

·功能丰富的DSP软件库,提供便捷的算法编程。

·可选的硬件除法器。

·高达1.77 DMIPS/MHz和3.41 CoreMark/MHz的性能。

·支持APEX处理器扩展套件的加速。

·JTAG调试界面。

主要应用包括:处理声音、音频和传感器数据的超低功耗、实时在线的IoT设备。

1.4 ARC EM处理器开发环境

Synopsys公司基于ARC EM处理器提供了RTL代码实现、软件编程与调试以及硬件FPGA验证等完整的开发环境。

1.4.1 ARChitect

DesignWare ARChitect软件是Synopsys公司针对ARC处理器特有的可配置性和可扩展性开发的一款配置软件,帮助设计工程师根据应用需求快速完成处理器结构配置以及RTL代码、测试激励和后端参考流程脚本(如ASIC或FPGA的综合、布局布线、时序约束文件等)的生成。

ARChitect基于IP库生成特定的设计。所有的系统组成,包括处理器内核、系统总线、外设、外部存储器等,均以模块化的方式封装到各自的IP库中,由用户在ARChitect图形界面中以拖曳的方式选择设计所需的各个功能部件,并配置其具体属性。

ARChitect图形界面提供了ARC处理器系列产品典型应用模板(Template),用于帮助用户快速完成设计和系统搭建。

此外,支持用户自定义的APEX向导(APEX Wizard)也集成在ARChitect中,用户可以根据向导提示一步步完成自定义组件的添加和集成。

关于ARChitect软件的更多内容参见第10章及第11章。

1.4.2 MetaWare开发套件

DesignWare ARC MetaWare开发套件(MetaWare Development Toolkit,MWDT)是在具有25年行业领先的编译器和调试器产品的基础上开发和不断完善的,支持全系列ARC处理器,包含对ARC处理器开发、仿真、调试和嵌入式应用程序优化的所有组件。

MetaWare开发套件如图1-7所示。具体包括:

·MetaWare C/C++编译器

·MetaWare汇编器

·MetaWare链接器

·MetaWare调试器

·MetaWare仿真器

·集成的图形化界面MetaWare IDE

关于MetaWare开发套件的更多内容介绍参见第6章。图1-7 MetaWare开发套件结构图

1.4.3 embARC软件平台

embARC是为ARC处理器,特别是ARC EM系列处理器的开发而提供的一个开源软件平台,包含大量的软件资源和说明文档,以帮助用户基于ARC处理器快速开发丰富的上层应用程序。例如,在embARC上可以下载针对ARC处理器在IoT应用领域开发的开源软件包,包括底层驱动、操作系统和中间件等。

embARC不仅提供了与FreeRTOS和Contiki OS等操作系统的接口,在embARC上开发的上层应用程序也可以很好地在GNU工具链或MetaWare工具链中编译和调试。

关于embARC的详细介绍可参考网页https://www.embarc.org/。

1.4.4 操作系统支持

在ARC EM处理器上支持运行的操作系统为MQX。MQX(Message Queue eXecutive,消息队列执行)是Precise Software Technologies公司于1989年开发的一款嵌入式实时操作系统。该公司在2000年3月被Synopsys公司收购,并在新的处理器体系中(主要包含Freescale的ColdFire系列、IBM/Freescale的PowerPC、ARM、ARC和i.MX等)持续开发。自从2009年,MQX推出第一个版本RTOS 3.0.1后,其版本不断进行升级和更新,功能不断加强,目前推出的最新版本是3.7.0。最新版MQX可以配置最小占用12K Flash和2.5K RAM,包括两个任务、一个轻量级信号、中断、队列和内存管理。

关于MQX操作系统的更多内容参见第7章。

1.4.5 ARC EM Starter Kit开发板

ARC EM Starter Kit FPGA开发板为用户提供了一个低成本、多用途的解决方案,用户可以使用开发板进行快速的软件开发、代码移植和软件调试,并可以对ARC EM4和ARC EM6处理器内核硬件进行评估与分析。

ARC EM Starter Kit套件包括硬件平台和软件包。硬件平台中预安装了不同配置ARC EM处理器的FPGA映像,软件包包含二进制格式的MQX实时操作系统、外设驱动程序和应用程序的代码示例。

关于ARC EM Starter Kit的更多内容参见第8章。

1.5 小结

本章首先介绍了嵌入式系统的基本概念、主要结构和特点,使读者对嵌入式系统有一个全面的了解。随后,针对嵌入式系统中的核心硬件组成——微处理器,详尽介绍了Synopsys ARC处理器的主要特点、产品系列及其相应的应用领域。最后,介绍了ARC EM处理器系列的开发环境。

下一章将详细讲述ARC EM处理器的特点、优势及其内核结构,读者可在了解处理器结构特点的基础上,进一步熟悉该处理器的使用。

第2章 ARC EM处理器介绍

本章首先详细介绍ARC EM处理器的特点及优势。其次,进一步深入处理器内核内部,介绍ARC EM处理器的接口信号、微架构和流水线、存储系统,以及存储保护机制和调试技术等结构方面的知识。

2.1 ARC EM处理器特点

ARC EM是一个32位处理器内核,采用三级流水线结构,使功耗2效率(DMIPS/mW)及面积效率(DMIPS/mm)都达到最佳化。这一系列处理器是ARC中功耗最低的,同时其可配置性能够针对性能和功耗进行优化,定制指令能够整合专有硬件以及广泛的生态系统支持。

ARC EM微处理器有以下主要特点:

·支持ARCv2指令集,能混合执行16/32位指令,能最优化程序代码密度。

·支持用户模式和内核模式。

·支持最多64个寄存器,有效提升执行速度和优化程序大小。

·存储器寻址方式灵活简单,执行效率高。

·支持最多240个外部中断和16个优先级,支持快速中断和寄存器文件组自动切换。

·支持指令和数据高速缓存。

·支持指令和数据紧密耦合存储器(CCM)。

·丰富的可配置性。

·强大的用户扩展性。

·高效的低功耗机制,①结构级的门控时钟:在正常运行时,EM处理器会自动关闭没有使用的模块时钟;②多种低功耗模式:SLEEP指令可使处理器进入不同等级的低功耗模式,包括多种关闭时钟和关闭电源的模式;③支持动态的电压频率调整。

如图2-1所示为ARC EM系列处理器与同类型某系列处理器的功能对比。

从图2-1可以看出,ARC EM在同样的三级流水线内核下,其处理性能能够达到1.77DMIPS/MHz。ARC EM能够通过灵活的可配置性,覆盖某处理器整个系列的功能,并提供了某处理器系列中不具备的快速的上下文切换、I/D高速缓存和紧密耦合的寄存器组件。这种丰富、灵活的架构使得ARC EM系列处理器能够针对不同的应用需求有不同的功能表现。ARC EM处理器在与竞争对手的性能、功耗和面积(Performance,Power&Area)比较中也处于领先地位。图2-1 ARC EM处理器与同类某处理器功能对比图2-2 ARC EM处理器与其他处理器的能耗对比图

从图2-2中可以看出,ARC EM的同等配置的EM4内核在面积和功耗上和处理器C近似。由于EM更加合理的流水线设计,使得其最高频率更高,此外指令集和体系结构的优势使得EM的最高性能远远高于处理器C以及其他竞争产品。EM5D包含丰富的DSP指令,适合物联网设备中的传感器算法和音频算法应用。

下面针对ARC EM处理器独特的可配置性和用户扩展性做简单介绍,在第10章及第11章将详细介绍。

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章。

2.3 ARC EM处理器结构

ARC EM的设计采取了在保证面积小的前提下最大可能地提高性能的结构,其处理器结构非常精简,使得ARC EM的内核非常小,器件的功耗也随之降低。

本节主要介绍ARC EM微处理器的接口信号、内核结构、存储系统、存储保护机制以及调试。

2.3.1 接口信号

ARC EM处理器的接口信号主要有:时钟与复位信号、总线接口、中断接口、测试和调试接口、Halt&Run控制接口、代码保护Code Protect以及Actionpoint接口信号。

下面主要介绍总线接口、中断接口和测试/调试接口,其他接口以及相关接口的具体信号描述可参考文献9。

1.总线接口

ARC EM系列微处理器使用标准协议的总线接口,具体如图2-3所示。图2-3 ARC EM的总线接口信号示意图

图2-3表明了ARC EM的总线接口信号,主要包括DMP存储器接口单元、IFQ/Instr Cache指令总线接口单元、DATACache数据总线接口单元以及APEX扩展总线接口单元、ICCM和DCCM直接存储器接口(Direct Memory Interface,DMI)。对于这些接口信号,ARC EM提供了基于AHB/AHB-Lite和BVCI总线接口信号。

对于主端接口,具体可配置的类型如下。

1)AHB总线接口:ARC EM处理器支持配置两个AHB主端接口,一个用于处理指令访存,另一个用于处理数据访存(Load/Store)。

2)AHB_Lite single接口:处理器可配置成单一的AHB_Lite主端接口,用于处理指令和数据访存操作。

3)AHB_Lite dual接口:处理器可配置成两个独立的AHB_Lite主端接口,一个用于处理指令访存,一个用于处理数据访存。

4)BVCI接口:处理器可配置成两个独立的BVCI主端接口,一个用于处理指令访存,一个用于处理数据访存。

对于从端接口,即ICCM和DCCM的DMI接口,支持可配置成AHB_Lite或者BVCI总线类型。

2.中断接口

ARC EM处理器内核可以配置多达240个外部中断。外部中断的引脚名称反映了每个中断的向量号,范围从16到255。当配置了内部计时器后,中断16和17会保留为内部计时器。在这种情况下,对应的中断信号不显示为外部中断输入。

3.测试和调试接口

ARC EM提供的测试接口符合IEEE 1149.1-2001 JTAG规范。此接口也可以使用2线JTAG IEEE 1149.7系统测试逻辑(STL)规范。4线JTAG接口可以通过使用IEEE 1149.7分接控制器转换成双线JTAG。4线JTAG接口信号如表2-2所示。除了可以通过JTAG串行接口进行调试,还支持通过BVCI调试接口进行高速调试。表2-2 JTAG接口

2.3.2 内核结构

ARC EM采用三级流水线,可以有效地减少每个指令花费的平均周期数。从结构图2-4可以看出,EM的三级流水线结构依次为:取指级FA、执行级XA、完成级CA。其每一级的功能描述如下。

1.FA:Fetch,Decode 1取指

Fetch(FA)阶段的作用是获取并对齐最多32位的指令,并送往执行(XA)级。指令的来源主要有以下几种:

(1)ICCM

包含单周期访问的ICCM0和双周期访问的ICCM1。

(2)IFQ/ICACHE

两者都可从外存获取指令。IFQ是一个取指队列,可以配置队列深度和总线突发访问长度。

(3)Debug unit

用来注入debugger指令,支持debugger访问处理器资源。

(4)Micro-Code Sequencer(Code Density option)

用来发射需要由多条微指令完成的复杂指令和操作。图2-4 ARC EM内核结构框图

此外,FA级还负责执行分支并选取下一个时钟的取指PC地址。为了支持可变长度指令执行,FA级需要预解码出当前取出的指令长度,并缓冲最多16位的当前取出的数据。如果寄存器文件是由后端工具Memory Compiler生成的宏单元,FA还需要解码出寄存器的读地址编号。

2.XA:Decode 2,Execute译码和执行

这一部分的主要功能如下:

·执行指令解码操作的其余部分。

·读取寄存器组并获取操作数。

·对可用功能单元发射指令。

·计算每条指令的结果。

这一级用以确定指令是否可以派遣到功能单元并开始执行。需要等待功能单元的可用性(结构冒险)和所需的数据是否可用(数据冒险RAW,WAW)。如果当前指令存在冒险,指令将会被延迟并在下个时钟继续调度。

一旦分支指令的结果已知,则分支单元可以决定是否重新启动该流水线。“延迟槽”用以在指令转移到目标分支的位置之前,指示成功执行分支或跳转指令。

3.CA:Memory,Writeback存储器访问和回写寄存器

1)用来更新机器状态。

2)用来捕获从所有流水线返回的数据并将其写入寄存器文件。

3)用以访问辅助地址空间状态并处理异常事件(异常和中断)。

4)访问CCM、Dcache和外部数据/外设总线。

ARC EM处理器还采用了动态流水线发射技术。主流水线与其他流水线可同时运行不同的指令,处理器能动态管理流水线资源。

如图2-5所示为ARC EM的不同流水线结构。可以看出,处理器中除主流水线(Core pipeline)以外还存在访存流水线(DMP)、可配置的变长乘法流水线、APEX流水线以及除法流水线等。图2-5 ARC EM流水线结构

如果一条指令经过CA级,则称为指令完成。完成的指令必将立即或者在后续某个时间点更新处理器状态。如果指令完成但仍需要继续执行,则只将PC等必要的处理器状态更新,其他处理器状态暂时不更新。指令在相应的流水线继续运行,直到执行结果回写寄存器文件和标志寄存器等处理器状态,称之为指令结束。如果已经完成但未结束的指令与当前XA待发射的指令存在读或写等数据相关性,指令调度就会暂停。

动态指令执行在一定程度上允许乱序,并能确保流水线进程的正确运行,从而提升了处理器性能。

2.3.3 存储系统

存储系统由多种存储器组件组合而成,其中每个组件均可根据动态存储器映射的需求进行配置。ARC EM处理器的存储器空间被分为16个相等的部分,如图2-6所示。存储器地址的高4位用来编码(区分)每个区域。存储器区域主要用于映射不同类型的存储器。

ARC EM处理器包含以下可用存储组件:

·CCMs紧耦合存储器、ICCM指令紧耦合存储器(ICCM0、ICCM1)、DCCM数据紧耦合存储器

·IFQ指令预取缓冲

·DMI数据存储启动器

·外设数据总线

·Cache高速缓存:指令缓存(IC)、数据缓存DC

如图2-7所示为对存储组件的取址访问。通过BVCI/AHB总线访问IFQ、IC和ICCM内部的指令。

如图2-8所示为对存储组件内部的数据操作。通过BVCI/AHB/AHB-lite总线对DC和DCCM内部的数据进行读、写操作。

下面详细介绍CCM紧耦合存储器、IFQ指令预取缓冲以及DMI数据存储器等主要存储组件。图2-6 ARC EM存储器空间划分

1.CCM紧耦合存储器

ARC EM处理器支持两种类型的CCM:指令紧耦合存储器(ICCM0,ICCM1)及数据紧耦合存储器(数据通路DCCM)。ICCM和DCCM是根据应用可选择进行配置的,CCM可以与其他的存储器组件(如取指队列和DMI)共存。图2-7 指令访问通道图2-8 数据访问通道

EM处理器和其他功能模块均可直接访问CCM模块。作为处理器内核私有的局部存储器,处理器对CCM访问不产生任何总线通信,其访问时间是确定的,可大大提高性能并保证实时性;并且,对CCM进行操作,比操作外部总线上的存储器或高速缓存的功耗低。CCM可用于锁定对性能较关键的代码或数据。这非常合适于关键的系统级程序(如中断处理和其他对时间敏感的任务)。

与高速缓存不同,ICCM和DCCM需要启动代码,以编程方式进行初始化。每种类型CCM都分配有与之对应的4位基地址辅助寄存器,CCM映射的存储器空间区域由基地址辅助寄存器指定。其中ICCM只能被分配在0~7区域,DCCM只能被分配在8~15区域。一个CCM将占据整个存储区域空间,在32位地址的情况下,区域大小为256MB。当CCM的容量小于区域大小时,CCM的内容将重复并填充整个256MB区域。

ARC EM处理器允许系统中的其他主端设备通过一个标准的目标接口(BVCI或AHB-Lite)访问其CCMs,如图2-9所示。

·ICCM和DCCM都支持。

·所有CCM提供单个端目标总线接口,处理外部访问具有最高优先级。

接下来具体介绍ICCMs和DCCM。

(1)ICCM特性

ARC EM处理器有ICCM0和ICCM1,如图2-10所示。ICCM具有以下特点:

1)ICCM可以用于指令访问以及加载/存储数据。

2)ICCM0的工作频率与处理器内核频率一致,在发出请求的下个时钟周期返回数据。

3)ICCM1的工作频率为处理器内核时钟的二分频,在发出请求的两个时钟周期之后返回数据。ICCM1可以利用双组(Bank)存储器来弥补缓慢的访问时间。

4)ICCM1可以与IFQ指令预取缓冲配合使用。此时,从ICCM1中读取的指令将缓存到IFQ中。图2-9 CCMs目标端口图2-10 ICCM

5)ICCM支持通过指令LD/ST访问。

ICCM允许自修改代码,但是过多使用这种方式将导致系统性能下降。

(2)DCCM特性

ARC EM处理器可通过加载/存储访问DCCM存储器。DCCM的工作频率与处理器内核频率一致,在一个时钟发出请求之后可返回数据。DCCM可以单独使用,也可与一个数据缓存或数据存储器主端接口同时使用。

2.IFQ指令预取缓冲

IFQ是一个可选组件,可通过外部总线的突发模式预取即将执行的指令。IFQ可作为一个低成本的替代指令缓存。IFQ支持的配置选项包括队列大小选项(1、2、4、8或16个32位)和突发长度大小(1、2、4或8个32位)。突发长度大小不能超过队列大小。IFQ的结构如图2-11所示。

3.DMI数据存储启动器

DMI(Data Memory Initiator)主端接口是一个可选组件,在没有数据高速缓存的配置下,可以容许处理非突发式外部总线请求。

4.外设数据总线

外设数据总线是一个可选组件,允许处理器内核使用专用的总线连接外设。运行期间可通过AUX_DMP_PER辅助寄存器更改映射的地址范围。

5.Cache高速缓存

ARC EM处理器支持可选择配置数据和指令高速缓存。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载