收藏 分享(赏)

第3章 Nios II体系结构.ppt

上传人:kpmy5893 文档编号:7248816 上传时间:2019-05-10 格式:PPT 页数:47 大小:1.71MB
下载 相关 举报
第3章 Nios II体系结构.ppt_第1页
第1页 / 共47页
第3章 Nios II体系结构.ppt_第2页
第2页 / 共47页
第3章 Nios II体系结构.ppt_第3页
第3页 / 共47页
第3章 Nios II体系结构.ppt_第4页
第4页 / 共47页
第3章 Nios II体系结构.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

1、第3章 Nios II体系结构,3.1 Nios II处理器结构,Nios II是一种软核(Soft-Core)处理器。 所谓软核,是指未被固化在硅片上,使用时需要借助EDA软件对其进行配置并下载到可编程芯片(比如FPGA)中的IP核。软核最大的特点就是可由用户按需要进行配置。,3.1 Nios II处理器结构,Nios II软核处理器简介 Nios II 处理器系列包括三种内核,Nios II,32位软核处理器,Nios II/f (快速),Nios II/e (经济),Nios II/s (标准),性能最高,但占用的逻辑资源最多。,占用的逻辑资源最少,但性能最低。,平衡的性能和尺寸。Nio

2、sII/s内核比第一代的Nios CPU更快,占用的资源更少。,Nios II 处理器结构框图,Nios II采用哈佛结构,数据总线和指令总线分开。 为了调试方便,Nios II处理器集成了一个JTAG调试模块。 为了提高系统的整体性能,Nios II内核不仅可以集成数据Cache和指令Cache,还带有紧耦合存储器TCM接口。TCM可以使Nios II处理器既能提高性能,又能获得可预测的实时响应。,Nios II把外部硬件的中断事件交由中断控制器管理,内核异常事件交由异常控制器管理。 Nios II的寄存器文件包括32个通用寄存器和6个控制寄存器,Nios II结构允许将来添加浮点寄存器。,

3、3.2 Nios II的寄存器文件,Nios II的通用寄存器 Nios II有32个32位的通用寄存器:r0-r31。,通用寄存器一览,r0或zero: 总是存放0值,对它读写无效。Nios II没有专门的清零指令,所以常用它来对寄存器清零。,r1或at: 这个寄存器在汇编程序中常用作临时变量。,r2,r3: 用来传递4个非浮点参数给一个子程序。r3存放返回值的高32位。如果这两个寄存器不够存放需要返回的值,编译器将通过堆栈来传递。,r4r7: 用来传递4个非浮点参数给一个子程序。r4传递第一个参数,r5传递第二个参数,以此类推。如果这四个寄存器不够传递参数,编译器将通过堆栈来传递。,r8r

4、15: 习惯上,子程序可以使用其中的值而不用保存它们。但使用者必须记住,这些寄存器里面的值可能被一次子程序调用改变,所以调用者有责任保护它们。,通用寄存器一览,r16r23: 习惯上,子程序必须保证这些寄存器中的值在调用前后保持不变,即要么在子程序执行时不使用它们,要么使用前把它们保存在堆栈中并在退出时恢复。,r24或et: 在异常处理时使用。使用时,可以不恢复原来的值。该寄存器很少作用其它用途。,r25或bt: 在程序断点处理时使用。使用时,可以不恢复原来的值。该寄存器很少作其它用途。,r26或gp: 它指向静态数据区中的一个运行时临时决定的地址。这意味着在存取位于gp值上下32KB范围内的

5、数据时,只需要一条以gp作为基指针的指令即可完成。,r27或sp: 堆栈指针。Nios II没有专门的出栈(POP)入栈(PUSH)指令,在子程序入口处,sp被调整指向栈底部,然后以sp为基址,用寄存器基址偏移地址的方式来访问栈中的数据。,r28或fp: 帧指针,习惯上用于跟踪栈的变化和维护运行时环境。,r29或ea: 保存异常返回地址。,r30或ba: 保存断点返回地址。,r31或ra: 保存函数返回地址。,3.2 Nios II的寄存器文件,Nios II的控制寄存器Nios II的控制寄存器共有6个,它们的读/写访问只能在超级用户模式(Supervisor Model)下由专用的控制寄存

6、器读/写指令(rdctl和wrctl)实现。通过控制寄存器一览表,来了解控制寄存器各位的意义,控制寄存器一览,status状态寄存器: 只有第1位和第0位有意义。,第1位U反映计算机当前状态:1表示处于用户态(User-mode);0表示处于超级用户态(Supervisor Mode)。,第0位PIE外设中断允许位:1表示允许外设中断;0表示禁止外设中断。,控制寄存器一览,estatus、bstatus都是status寄存器的影子寄存器: 发生断点或者异常时:保存status寄存器的值; 断点或异常处理返回时:恢复status寄存器的值。,控制寄存器一览,ienable中断允许寄存器: 每一位

7、控制一个中断通道。例如: 第0位为1:表示允许第0号中断发生; 第0位为0:表示禁止第0号中断发生;,ipending中断发生标志位: 每一位反映一个中断发生。例如: 第0位为1:表示第0号中断发生; 第0位为0:表示第0号中断未发生;,cpuid此寄存器中装载着处理器的id号: 该id号在生成Nios II系统时产生。Id号在多处理器系统中可以作为分辨CPU的标识。,3.3 算术逻辑单元(ALU),Nios II ALU支持的操作,3.3 算术逻辑单元(ALU),未实现的指令用户指令浮点指令,3.4 复位信号,Nios II处理器支持两个复位信号:reset和cpu_resetrequest

8、 reset:是一个强制处理器核立即进入复位状态的全局硬件复位信号。 cpu_resetrequest:是一个可以让CPU复位但不影响Nios II系统其它外设的局部复位信号。,Nios II 处理器结构框图,3.4 复位信号,CPU复位后,Nios II处理器将执行下列操作: 清除状态寄存器status,使之为0x0; 指令Cache与程序存储器的关联被置为无效,处理器从固态程序存储器(比如Flash)中的reset地址处取得第一条指令; 从复位地址处开始执行程序。,清除status: 是为了使处理器进入超级用户模式并禁止硬件中断。,使当前Cache队列无效: 是为了保证取指是从复位地址所在

9、的非Cache存储区,而不是当前指令Cache。,复位地址在系统生成时指定。,3.4 复位信号,以下部件的状态在复位后是不确定的: 通用寄存器(除zero(r0):总是存放0值); 控制寄存器(除status(ct10),被置为0x0); 指令和数据存储器。 Cache(除与复位地址关联的指令Cache); 与CPU相连的各外设,各外设复位后的状态要具体参考各外设的手册; 用户指令逻辑在复位后的状态要参看用户指令逻辑的手册或说明。,3.5 Nios II处理器运行模式,Nios II处理器有3种运行模式: 用户模式(User Mode); 超级用户模式(Supervisor Mode) ; 调

10、试模式(Debug Mode) 。 通常系统程序代码运行在超级用户模式。在V6.0版本以前的Nios II 处理器都不支持用户模式,永远都运行在超级用户模式。,调试模式: 拥有最大的访问权限,可以无限制地访问所有的功能模块;,超级用户模式: 除了不能访问与调试有关的寄存器(bt、ba和bstatus)外,无其它访问限制;,用户模式: 是超级用户模式功能访问的一个子集,它不能访问控制寄存器和一些通用寄存器。,3.5 Nios II处理器运行模式,Nios II 处理器3种运行模式切换,Nios II处理器3种运行模式,3.6 异常和中断控制器,异常控制器 Nios II体系结构提供一个简单的非向

11、量异常控制器来处理所有类型的异常。 中断控制器 Nios II体系结构支持32个外部硬件中断,即irq0irq31。每个中断对应一个独立的中断通道。,3.7 Nios II的异常处理,异常类型,硬件中断,软件异常,软件陷阱异常,未定义指令异常,其它异常,一个外设能通过处理器32个中断输入之一,请求产生一个硬件中断。,当程序遇到软件陷阱指令时,将产生软件陷阱异常,这在程序需要操作系统服务时常用到。操作系统的异常处理程序判断产生软件陷阱的原因,然后执行相应任务。,Nios II 异 常 包 括,3.7 Nios II的异常处理,硬件中断,软件异常,软件陷阱异常,未定义指令异常,其它异常,当处理器执

12、行未定义指令时产生未定义指令异常。异常处理可以判断哪个指令产生异常,如果指令不能通过硬件执行,可以在一个异常服务程序中通过软件方式仿真执行。,其它异常类型是未将来准备的。,Nios II 异 常 包 括,3.7 Nios II的异常处理,异常硬件处理流程 当异常发生后,处理器会依次完成以下工作:,把status寄存器内容复制到estatus寄存器中,保存当前处理器状态;,清除status寄存器的U位为0,强制处理器进入超级用户状态;,清除status寄存器的PIE位为0,禁止所有的硬件中断;,把异常返回地址写入ea寄存器(r29);,跳转到异常处理地址。,1,2,3,4,5,3.7 Nios

13、II的异常处理,异常判别及优先级,(EPIE=1)&(ipending!=0)?,指令是在(ea-4)trap处吗?,指令是在(ea-4)div、mul、mulxuu、等处吗?,进入异常处理,处理硬件中断,处理软件陷阱,处理未定义指令,其它异常,No,No,No,Yes,Yes,Yes,异常类型判别,3.7 Nios II的异常处理,异常的嵌套 异常返回 异常响应时间,实现异常嵌套,需在用户ISR中打开外部中断允许(PIE=1)。 在处理异常事件的过程中,可以响应由trap指令引起的软件陷阱异常和未实现指令异常。 在异常嵌套之前,为了确保异常能正确返回,必须保存estatus寄存器(ctl1)

14、的ea寄存器(r29)。,3.7 Nios II的异常处理,异常的嵌套 异常返回 异常响应时间,当执行异常返回指令(eret)后,处理器会把estatus寄存器(ctl1)内容复制到status寄存器(ctl0)中,恢复异常前的处理器状态,然后把异常返回地址从ea寄存器(r29)写入程序计数器。 异常发生时,ea寄存器(r29)保存了异常发生处下一条指令所在的地址。当异常从软件陷阱异常 或未定义指令异常返回时,程序必须从软件陷阱指令trap或未定义指令后继续执行,因此ea寄存器(r29)就是正确的异常返回地址。,3.7 Nios II的异常处理,异常的嵌套 异常返回 异常响应时间,如果是硬件中

15、断异常,程序必须从硬件中断异常发生处继续执行,因此必须将ea寄存器(r29)中的地址减去(ea-4)作为异常返回地址。,3.7 Nios II的异常处理,异常的嵌套 异常返回 异常响应时间,Nios II的非向量仲裁策略,导致了Nios II的异常处理延时会比较大,它是靠提高Nios II处理器的执行速度来弥补这一缺点的。见下表:,Nios II 异常处理性能,3.8 存储器及I/O结构,Nios II 存储器和I/O结构,程序计,数器,通用寄,存器文,件,指令,总线,选择,逻辑,数据,总线,选择,逻辑,指令,高速,缓存,数据,高速,缓存,紧耦合指令,存储器,1,紧耦合数据,存储器,1,紧耦合

16、指令,存储器,N,存,储,器,从,外,设,紧耦合数据,存储器,N,S,M,S,M,Avalon,转换结构,NiosII,处理器,内核,S,M,Avalon,主端口,Avalon,从端口,NiosII内核访问存储器和I/O的方式,1.指令主端口 2.指令高速缓存 3.数据主端口 4.数据高速缓存 5.紧耦合指令或数据存储器端口,3.8 存储器及I/O结构,Nios II 存储器和I/O结构,程序计,数器,通用寄,存器文,件,指令,总线,选择,逻辑,数据,总线,选择,逻辑,指令,高速,缓存,数据,高速,缓存,紧耦合指令,存储器,1,紧耦合数据,存储器,1,紧耦合指令,存储器,N,存,储,器,从,外

17、,设,紧耦合数据,存储器,N,S,M,S,M,Avalon,转换结构,NiosII,处理器,内核,S,M,Avalon,主端口,Avalon,从端口,1.指令主端口 2.指令高速缓存 3.数据主端口 4.数据高速缓存 5.紧耦合指令或数据存储器端口,指令与数据总线,3.8 存储器及I/O结构,指令与数据总线 存储器与外设访问 Nios II结构提供映射为存储器的I/O访问。数据存储器和外设都被映射到数据主端口的地址空间。存储器系统中处理器数据总线低8位分别连接存储器数据线70。,字(小端模式),高地址,低地址,3.8 存储器及I/O结构,指令与数据总线 指令主端口 Nios II指令总线作为3

18、2位Avalon主端口来实现。指令主端口只执行一个功能:对处理器将要执行的指令进行取指。 指令主端口是具有流水线属性的Avalon主端口。 指令主端口依赖Avalon交换结构中的动态总线对齐逻辑始终能接收32位数据。 Nios II结构支持片内高速缓存。 Nios II结构还支持紧耦合存储器,对紧耦合存储器的访问能实现低延迟。,说明: 指令主端口不执行任何写操作。 动态总线对齐逻辑不管目标存储器的宽度如何,每次取指都会返回一个完整的指令字,因而程序不需要 知道Nios II处理器系统中的存储器宽度。 片内高速缓存,用于改善访问较慢存储器时的平均指令取指性能。,3.8 存储器及I/O结构,指令与

19、数据总线 数据主端口 Nios II数据总线作为32位Avalon主端口来实现。数据主端口执行两个功能: 1当处理器执行装载指令时,从存储器或外设中读数据。 2当处理器执行存储指令时,将数据写入存储器或外设。 数据主端口不支持Avalon流水线传输。 同指令主端口一样Nios II结构支持片内高速缓存,改善平均数据传输性能。 Nios II结构也支持紧耦合存储器以实现低延迟。,3.8 存储器及I/O结构,指令与数据总线 指令和数据共享的存储器 通常,指令和数据主端口共享含有指令和数据的存储器。虽然处理器内核使用独立的指令总线和数据总线,整个Nios II处理器系统对外呈现单一的、共用的指令/数

20、据总线。,说明: 数据和指令主端口从来不会出现一个端口使另一个端口处于等待状态的停滞状况。为获得最高性能,对于指令和数据主端口共享的任何存储器,数据主端口被指定为更高的优先级。,3.8 存储器及I/O结构,高速缓存(Cache) Nios II结构的指令主端口和数据主端口都支持高速缓存。 作为Nios II处理器组成部分的高速缓存在SOPC Builder中是可选的,这取决于用户对系统存储性能以及FPGA资源的使用要求。包含高速缓存不会影响程序的功能,但会影响处理器取指和读/写数据时的速度。 高速缓存改善性能的功效是基于以下前提的: 1常规存储器位于片外,访问时间比片内存储器要长。 2循环执行

21、的、最大的,关键性能的指令序列长度小于指令高速缓存。 3关键性能数据的最大块小于数据高速缓存。,3.8 存储器及I/O结构,高速缓存(Cache) 例如在以下的情况下高速缓存将无法改善执行速度: Nios II处理器系统只含有快速的片内存储器(即从不访问较慢的片外存储器)。 程序的关键循环是2KB,而指令高速缓存的大小为1KB。 由于性能上的原因,应用程序始终要求某些数据或部分代码存放在高速缓存中,那么紧耦合存储器可能会提供一个更合适的解决方案。,注意:Cache虽然改善了系统的整体性能,但使程序的执行时间变得不可预测。对于实时系统来说这一点至关重要。,3.8 存储器及I/O结构,紧耦合存储器

22、(TCM):紧耦合存储器是一种紧挨着内核的快速SRAM,它不仅能改善系统性能,而且保证了装载和存储指令或数据的时间是确定的。紧耦合存储器可向对性能要求严格的应用提供低延迟访问。,Nios II 存储器和I/O结构,紧耦合指令存储器,紧耦合指令存储器,3.8 存储器及I/O结构,与高速缓存相比具有的优点: 1性能类似于高速缓存; 2软件能够保证将关键性能的代码或数据存放在紧耦合存储器中; 3代码执行的确定性装载和存储指令或数据的时间是可预测的。,Nios II 存储器和I/O结构,紧耦合指令存储器,紧耦合指令存储器,紧耦合存储器(TCM),3.8 存储器及I/O结构,紧耦合存储器介绍实际上,紧耦

23、合存储器是Nios II处理器内核上的一个独立的主端口,与指令或数据主端口类似。Nios II结构指令和数据访问都支持紧耦合存储器。Nios II内核可以不包含紧耦合存储器,也可以包含一个或多个紧耦合存储器。每个紧耦合存储器端口直接与具有固定的低延迟的存储器相连,该存储器在Nios II内核的外部,通常使用FPGA片内存储器。紧耦合存储器与其它通过Avalon交换结构连接的存储器件一样,占据标准的地址空间。它的地址范围在生成系统时确定。系统在访问指定的代码或数据时,能够使用紧耦合存储器来获得最高性能。例如,中断频繁的应用能够将异常处理代码放在紧耦合存储器中来降低中断延迟。类似的,计算密集型的数

24、字信号处理(DSP)应用能够将紧耦合存储器指定为数据缓存区,实现最快的数据访问。,3.8 存储器及I/O结构,地址映射在Nios II处理器系统中,存储器和外设的地址映射是与设计相关的,由设计人员在系统生成时指定。这里要特别提到的是3个CPU相关的地址:复位地址、异常地址以及断点处理(break handler)程序的地址。程序员通过使用宏和驱动程序来访问存储器和外设,灵活的地址映射并不会影响应用程序开发人员。,3.9 存储器和外设访问,Nios II地址是32位的,允许对4GB地址空间进行访问,但现有的Nios II内核都将地址限制在31位,即2GB地址空间。处理器的数据总线为32位宽度。指

25、令集提供字节,半字(16bit)或字(32位)的读写指令。Nios II结构采用小端模式,对于保存在存储器中的大于8位的数据,最高有效位在高地址。,外设,数据 存储器,程序 存储器,地址空间,未映射,4GB 地址空间,32位宽度,映射,映射,映射,映射到的具体位置在生成系统时确定,对此地址空间的读写将产生一个不确定的值,3.9 存储器和外设访问,寻址方式 Nios II结构支持以下寻址方式有: 立即数寻址:指令直接给出操作数。 寄存器寻址:所有的操作数都是寄存器,结果保存在寄存器中 移位寻址:寄存器和带符号的16位立即数相加的结果作为地址 寄存器间接寻址:使用了移位寻址,只是移位值是常量0 绝

26、对寻址:范围有限制的绝对寻址使用带有寄存器r0(它的值始终是0x00)的移位寻址来实现。,3.9 存储器和外设访问,高速缓存访问Nios II结构和指令集可以管理数据高速缓存和指令高速缓存。高速缓存管理使用高速缓存指令在软件中实现。指令集可对高速缓存实现初始化、刷新及旁路数据高速缓存的指令操作。有些Nios II处理器内核支持一种称作31位高速缓存旁路的机制,它根据地址的最高有效位的值来旁路高速缓存。处理器实现的地址空间为2GB,地址的高位控制数据存储器访问的缓存操作。,3.10 Nios II处理器性能,Nios II,32位软核处理器,Nios II/f (快速),Nios II/e (经济),Nios II/s (标准),Nios II 处理器内核性能表,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报