第3章NiosII体系结构课件.ppt
《第3章NiosII体系结构课件.ppt》由会员分享,可在线阅读,更多相关《第3章NiosII体系结构课件.ppt(60页珍藏版)》请在三一办公上搜索。
1、第3章 Nios II 体系结构,-SOPC嵌入式系统基础教程北京航空航天大学出版社出版周立功 等编著,第3章 Nios II 体系结构-SOPC嵌,本章的目的是让读者建立一个Nios II处理器的概念,了解一些Nios II处理器的工作细节,这对开发出高效率、健壮的程序是非常有好处的。体系结构(Architecture)主要用来描述面向程序员的CPU抽象,而不是其具体实现。本章先介绍NiosII处理器构架,接着介绍NiosII的寄存器文件(Register File),然后介绍NiosII的异常处理,最后介绍NiosII的储存器结构并分析三种NiosII处理器的性能特点。NiosII的指令集
2、及如何编写NiosII的汇编程序在第9章中介绍。,主要内容,本章的目的是让读者建立一个Nios II处理器的概念,了解一,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3.5 Nios II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3
3、.5 Nios II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.1 Nios II处理器结构,Nios II是一种软核(Soft-Core)处理器。所谓软核,是指未被固化在硅片上,使用时需要借助EDA软件对其进行配置并下载到可编程芯片(比如FPGA)中的IP核。软核最大的特点就是可由用户按需要进行配置。,3.1 Nios II处理器结构Nios II是一种软核(S,3.1 Nios II处理器结构,Nios II软核处理器简介Nios
4、 II 处理器系列包括三种内核,Nios II,32位软核处理器,Nios II/f(快速),Nios II/e(经济),Nios II/s(标准),性能最高,但占用的逻辑资源最多。,占用的逻辑资源最少,但性能最低。,平衡的性能和尺寸。NiosII/s内核比第一代的Nios CPU更快,占用的资源更少。,3.1 Nios II处理器结构Nios II软核处理器简介,3.1 Nios II处理器结构,32位软核处理器,Nios II处理器结构框图,3.1 Nios II处理器结构Nios II32位软核处理,3.1 Nios II处理器结构,数据处理主要由算术逻辑单元完成,在现有的Nios II
5、内核中暂时没有协处理器。用户逻辑接口用来连接用户定制的逻辑电路与Nios II内核。,Nios II处理器结构框图,Nios II采用哈佛结构,数据总线和指令总线分开。为了调试方便,Nios II处理器集成了一个JTAG调试模块。,地址发生器,&,程序控制器,异常控制器,中断控制器,通用寄存器组,r,0,.,r,31,控制寄存器组,ctl,0,.,ctl,5,指令,Cache,指令,Cache,算术逻辑单元,(,ALU,),用户逻辑,JTAG,接口,NiosII,处理器核,紧耦合,指令存储器,紧耦合,指令存储器,紧耦合,数据存储器,紧耦合,数据存储器,指令总线,数据总线,clock,reset
6、,软件调,试接口,中断源,0,.,31,IO,口,cpu,_,resetrequest,cpu,_,resettaken,3.1 Nios II处理器结构数据处理主要由算术逻辑单元完,3.1 Nios II处理器结构,为了提高系统的整体性能,Nios II内核不仅可以集成数据Cache和指令Cache,还带有紧耦合存储器TCM接口。TCM可以使Nios II处理器既能提高性能,又能获得可预测的实时响应。,Nios II处理器结构框图,地址发生器,&,程序控制器,异常控制器,中断控制器,通用寄存器组,r,0,.,r,31,控制寄存器组,ctl,0,.,ctl,5,指令,Cache,指令,Cach
7、e,算术逻辑单元,(,ALU,),用户逻辑,JTAG,接口,NiosII,处理器核,紧耦合,指令存储器,紧耦合,指令存储器,紧耦合,数据存储器,紧耦合,数据存储器,指令总线,数据总线,clock,reset,软件调,试接口,中断源,0,.,31,IO,口,cpu,_,resetrequest,cpu,_,resettaken,3.1 Nios II处理器结构为了提高系统的整体性能,Ni,3.1 Nios II处理器结构,Nios II把外部硬件的中断事件交由中断控制器管理,内核异常事件交由异常控制器管理。,Nios II的寄存器文件包括32个通用寄存器和6个控制寄存器,Nios II结构允许将
8、来添加浮点寄存器,其具体细节在下节介绍,Nios II处理器结构框图,地址发生器,&,程序控制器,异常控制器,中断控制器,通用寄存器组,r,0,.,r,31,控制寄存器组,ctl,0,.,ctl,5,指令,Cache,指令,Cache,算术逻辑单元,(,ALU,),用户逻辑,JTAG,接口,NiosII,处理器核,紧耦合,指令存储器,紧耦合,指令存储器,紧耦合,数据存储器,紧耦合,数据存储器,指令总线,数据总线,clock,reset,软件调,试接口,中断源,0,.,31,IO,口,cpu,_,resetrequest,cpu,_,resettaken,3.1 Nios II处理器结构Nios
9、 II把外部硬件的中,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3.5 Nios II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.2 Nios II的寄存器文件,Nios II的通用寄存器尽管硬件对寄存器的用法几乎没有规定,但是它们在实际使用过程中还是遵循一些约定俗成的惯例。如果想使用他人的子程序,编译器或操作系统,最好还是遵守这些惯例。我们通过下面的
10、通用寄存器一览表来了解Nios II的32个通用寄存器。,3.2 Nios II的寄存器文件 Nios II的通用寄存,通用寄存器一览,r0或zero:总是存放0值,对它读写无效。Nios II没有专门的清零指令,所以常用它来对寄存器清零。,r1或at:这个寄存器在汇编程序中常用作临时变量。,r2,r3:用来传递4个非浮点参数给一个子程序。r3存放返回值的高32位。如果这两个寄存器不够存放需要返回的值,编译器将通过堆栈来传递。,r4r7:用来传递4个非浮点参数给一个子程序。r4传递第一个参数,r5传递第二个参数,以此类推。如果这四个寄存器不够传递参数,编译器将通过堆栈来传递。,r8r15:习惯
11、上,子程序可以使用其中的值而不用保存它们。但使用者必须记住,这些寄存器里面的值可能被一次子程序调用改变,所以调用着有责任保护它们。,通用寄存器组寄存器助记符功能寄存器助记符功能r0zero清零,通用寄存器一览,r16r23:习惯上,子程序必须保证这些寄存器中的值在调用前后保持不变,即要么在子程序执行时不使用它们,要么使用前把它们保存在堆栈中并在退出时恢复。,r24或et:在异常处理时使用。使用时,可以不恢复原来的值。该寄存器很少作用其它用途。,r25或bt:在程序断点处理时使用。使用时,可以不恢复原来的值。该寄存器很少作其它用途。,r26或gp:它指向静态数据区中的一个运行时临时决定的地址。这
12、意味着在存取位于gp值上下32KB范围内的数据时,只需要一条以gp作为基指针的指令即可完成。,r27或sp:堆栈指针。Nios II没有专门的出栈(POP)入栈(PUSH)指令,在子程序入口处,sp被调整指向栈底部,然后以sp为基址,用寄存器基址偏移地址的方式来访问栈中的数据。,r28或fp:帧指针,习惯上用于跟踪栈的变化和维护运行时环境。,r29或ea:保存异常返回地址。,r30或ba:保存断点返回地址。,r31或ra:保存函数返回地址。,通用寄存器组寄存器助记符功能寄存器助记符功能r0zero清零,3.2 Nios II的寄存器文件,Nios II的控制寄存器Nios II的控制寄存器共有
13、6个,它们的读/写访问只能在超级用户态(Supervisor Model)由专用的控制寄存器读/写指令(rdctl和wrctl)实现。通过控制寄存器一览表,来了解控制寄存器各位的意义。,3.2 Nios II的寄存器文件 Nios II的控制寄存,控制寄存器一览,status状态寄存器:只有第1位和第0位有意义。,第1位U反映计算机当前状态:1表示处于用户态(User-mode);0表示处于超级用户态(Supervisor Mode)。,第0位PIE外设中断允许位:1表示允许外设中断;0表示禁止外设中断。,控制寄存器一览控制寄存器组寄存器名字bit位意义:312,控制寄存器一览,estatus
14、、bstatus都是status寄存器的影子寄存器:发生断点或者异常时:保存status寄存器的值;断点或异常处理返回时:恢复status寄存器的值。,控制寄存器一览控制寄存器组寄存器名字bit位意义:312,控制寄存器一览,ienable中断允许寄存器:每一位控制一个中断通道。例如:第0位为1:表示允许第0号中断发生;第0位为0:表示禁止第0号中断发生;,ipending中断发生标志位:每一位反映一个中断发生。例如:第0位为1:表示第0号中断发生;第0位为0:表示第0号中断未发生;,cpuid此寄存器中装载着处理器的id号:该id号在生成Nios II系统时产生。Id号在多处理器系统中可以作
15、为分辨CPU的标识。,控制寄存器一览控制寄存器组寄存器名字bit位意义:312,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3.5 Nios II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.3 算术逻辑单元(ALU),Nios II ALU支持的操作,3.3 算术逻辑单元(ALU)Nios II ALU支持的操,3.3 算术逻辑单元(ALU),未实现的指
16、令 用户指令 浮点指令,3.3 算术逻辑单元(ALU)未实现的指令,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3.5 Nios II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.4 复位信号,Nios II处理器支持两个复位信号:reset和cpu_resetrequestreset:是一个强制处理器核立即进入复位状态的全局硬件复位信号。cpu_rese
17、trequest:是一个可以让CPU复位但不影响Nios II系统其它外设的局部复位信号。,Nios II处理器结构框图,3.4 复位信号地址发生器&程序控制器异常控制器中断控制器通,3.4 复位信号,CPU复位后,Nios II处理器将执行下列操作:清除状态寄存器status,使之为0 x0;指令Cache与程序存储器的关联被置为无效,处理器从固态程序存储器(比如Flash)中的reset地址处取得第一条指令;从复位地址处开始执行程序。,清除status:是为了使处理器进入超级用户模式并禁止硬件中断。,使当前Cache队列无效:是为了保证取指是从复位地址所在的非Cache存储区,而不是当前指
18、令Cache。,复位地址在系统生成时指定。,3.4 复位信号 CPU复位后,Nios II处理器将执行下,3.4 复位信号,以下部件的状态在复位后是不确定的:通用寄存器(除zero(r0):总是存放0值);控制寄存器(除status(ct10),被置为0 x0);指令和数据存储器。Cache(除与复位地址关联的指令Cache);与CPU相连的各外设,各外设复位后的状态要具体参考各外设的手册;用户指令逻辑在复位后的状态要参看用户指令逻辑的手册或说明。,3.4 复位信号 以下部件的状态在复位后是不确定的:,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数
19、逻辑单元(ALU)3.4 复位信号3.5 Nios II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.5 Nios II处理器运行模式,Nios II处理器有3种运行模式:用户模式(User Mode);超级用户模式(Supervisor Mode);调试模式(Debug Mode)。通常系统程序代码运行在超级用户模式。在V6.0版本以前的Nios II 处理器都不支持用户模式,永远都运行在超级用户模式。,调试模式:拥有最大的访问权限,
20、可以无限制地访问所有的功能模块;,超级用户模式:除了不能访问与调试有关的寄存器(bt、ba和bstatus)外,无其它访问限制;,用户模式:是超级用户模式功能访问的一个子集,它不能访问控制寄存器和一些通用寄存器。,3.5 Nios II处理器运行模式 Nios II处理器有,3.5 Nios II处理器运行模式,Nios II 处理器3种运行模式切换,Nios II处理器3种运行模式,3.5 Nios II处理器运行模式Nios II 处理器3,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3.5 Nios II处
21、理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.6 异常和中断控制器,异常控制器Nios II体系结构提供一个简单的非向量异常控制器来处理所有类型的异常。中断控制器Nios II体系结构支持32个外部硬件中断,即irq0irq31。每个中断对应一个独立的中断通道。,3.6 异常和中断控制器异常控制器,第3章 目录,3.1 Nios II处理器结构3.2 Nios II的寄存器文件3.3 算数逻辑单元(ALU)3.4 复位信号3.5 Nios
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NiosII 体系结构 课件

链接地址:https://www.31ppt.com/p-2109003.html