欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第3章NiosII体系结构课件.ppt

    • 资源ID:2109003       资源大小:333.36KB        全文页数:60页
    • 资源格式: PPT        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第3章NiosII体系结构课件.ppt

    第3章 Nios II 体系结构,-SOPC嵌入式系统基础教程北京航空航天大学出版社出版周立功 等编著,第3章 Nios II 体系结构-SOPC嵌,本章的目的是让读者建立一个Nios II处理器的概念,了解一些Nios II处理器的工作细节,这对开发出高效率、健壮的程序是非常有好处的。体系结构(Architecture)主要用来描述面向程序员的CPU抽象,而不是其具体实现。本章先介绍NiosII处理器构架,接着介绍NiosII的寄存器文件(Register File),然后介绍NiosII的异常处理,最后介绍NiosII的储存器结构并分析三种NiosII处理器的性能特点。NiosII的指令集及如何编写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.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 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内核中暂时没有协处理器。用户逻辑接口用来连接用户定制的逻辑电路与Nios II内核。,Nios II处理器结构框图,Nios II采用哈佛结构,数据总线和指令总线分开。为了调试方便,Nios II处理器集成了一个JTAG调试模块。,地址发生器,&,程序控制器,异常控制器,中断控制器,通用寄存器组,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处理器结构数据处理主要由算术逻辑单元完,3.1 Nios II处理器结构,为了提高系统的整体性能,Nios II内核不仅可以集成数据Cache和指令Cache,还带有紧耦合存储器TCM接口。TCM可以使Nios II处理器既能提高性能,又能获得可预测的实时响应。,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处理器结构为了提高系统的整体性能,Ni,3.1 Nios II处理器结构,Nios II把外部硬件的中断事件交由中断控制器管理,内核异常事件交由异常控制器管理。,Nios II的寄存器文件包括32个通用寄存器和6个控制寄存器,Nios II结构允许将来添加浮点寄存器,其具体细节在下节介绍,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 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的通用寄存器尽管硬件对寄存器的用法几乎没有规定,但是它们在实际使用过程中还是遵循一些约定俗成的惯例。如果想使用他人的子程序,编译器或操作系统,最好还是遵守这些惯例。我们通过下面的通用寄存器一览表来了解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:习惯上,子程序可以使用其中的值而不用保存它们。但使用者必须记住,这些寄存器里面的值可能被一次子程序调用改变,所以调用着有责任保护它们。,通用寄存器组寄存器助记符功能寄存器助记符功能r0zero清零,通用寄存器一览,r16r23:习惯上,子程序必须保证这些寄存器中的值在调用前后保持不变,即要么在子程序执行时不使用它们,要么使用前把它们保存在堆栈中并在退出时恢复。,r24或et:在异常处理时使用。使用时,可以不恢复原来的值。该寄存器很少作用其它用途。,r25或bt:在程序断点处理时使用。使用时,可以不恢复原来的值。该寄存器很少作其它用途。,r26或gp:它指向静态数据区中的一个运行时临时决定的地址。这意味着在存取位于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的控制寄存器共有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、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号在多处理器系统中可以作为分辨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),未实现的指令 用户指令 浮点指令,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_resetrequest:是一个可以让CPU复位但不影响Nios II系统其它外设的局部复位信号。,Nios II处理器结构框图,3.4 复位信号地址发生器&程序控制器异常控制器中断控制器通,3.4 复位信号,CPU复位后,Nios II处理器将执行下列操作:清除状态寄存器status,使之为0 x0;指令Cache与程序存储器的关联被置为无效,处理器从固态程序存储器(比如Flash)中的reset地址处取得第一条指令;从复位地址处开始执行程序。,清除status:是为了使处理器进入超级用户模式并禁止硬件中断。,使当前Cache队列无效:是为了保证取指是从复位地址所在的非Cache存储区,而不是当前指令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 算数逻辑单元(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 处理器都不支持用户模式,永远都运行在超级用户模式。,调试模式:拥有最大的访问权限,可以无限制地访问所有的功能模块;,超级用户模式:除了不能访问与调试有关的寄存器(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处理器运行模式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 II处理器运行模式3.6 异常和中断控制器3.7 Nios II的异常处理3.8 存储器及I/O结构3.9 存储器和外设访问3.10 Nios II处理器性能,第3章 目录3.1 Nios II处理器结构,3.7 Nios II的异常处理,硬件中断,软件异常,软件陷阱异常,未定义指令异常,其它异常,异常类型,一个外设能通过处理器32个中断输入之一,请求产生一个硬件中断。,当程序遇到软件陷阱指令时,将产生软件陷阱异常,这在程序需要操作系统服务时常用到。操作系统的异常处理程序判断产生软件陷阱的原因,然后执行相应任务。,Nios II异常包括,3.7 Nios II的异常处理硬件中断软件异常软件陷阱异常,3.7 Nios II的异常处理,硬件中断,软件异常,软件陷阱异常,未定义指令异常,其它异常,当处理器执行未定义指令时产生未定义指令异常。异常处理可以判断哪个指令产生异常,如果指令不能通过硬件执行,可以在一个异常服务程序中通过软件方式仿真执行。,其它异常类型是未将来准备的。,Nios II异常包括,异常类型,3.7 Nios II的异常处理硬件中断软件异常软件陷阱异常,3.7 Nios II的异常处理,异常硬件处理流程当异常发生后,处理器会依次完成以下工作:,把status寄存器内容复制到estatus寄存器中,保存当前处理器状态;,清除status寄存器的U位为0,强制处理器进入超级用户状态;,清除status寄存器的PIE位为0,禁止所有的硬件中断;,把异常返回地址写入ea寄存器(r29);,跳转到异常处理地址。,1,2,3,4,5,3.7 Nios II的异常处理异常硬件处理流程把statu,3.7 Nios II的异常处理,异常判别及优先级,(EPIE=1)&(ipending!=0)?,指令是在(ea-4)处的trap指令吗?,指令是在(ea-4)处的div、mul、mulxuu、等处吗?,进入异常处理,处理硬件中断,处理软件陷阱,处理未定义指令,其它异常,No,No,No,Yes,Yes,Yes,异常类型判别,3.7 Nios II的异常处理异常判别及优先级(EPIE=,3.7 Nios II的异常处理,异常的嵌套异常返回异常响应时间,实现异常嵌套,需在用户ISR中打开外部中断允许(PIE=1)。在处理异常事件的过程中,可以响应由trap指令引起的软件陷阱异常 和未实现指令异常。在异常嵌套之前,为了确保异常能正确返回,必须保存estatus寄存器(ctl1)和ea寄存器(r29)。,3.7 Nios II的异常处理异常的嵌套实现异常嵌套,需在,3.7 Nios II的异常处理,异常的嵌套异常返回异常响应时间,当执行异常返回指令(eret)后,处理器会把estatus寄存器(ctl1)内容复制到status寄存器(ctl0)中,恢复异常前的处理器状态,然后把异常返回地址从ea寄存器(r29)写入程序计数器。异常发生时,ea寄存器(r29)保存了异常发生处下一条指令所在的地址。当异常从软件陷阱异常 或未定义指令异常返回时,程序必须从软件陷阱指令trap或未定义指令后继续执行,因此ea寄存器(r29)就是正确的异常返回地址。,3.7 Nios II的异常处理异常的嵌套当执行异常返回指令,3.7 Nios II的异常处理,异常的嵌套异常返回异常响应时间,如果是硬件中断异常,程序必须从硬件中断异常发生处继续执行,因此必须将ea寄存器(r29)中的地址减去(ea-4)作为异常返回地址。,3.7 Nios II的异常处理异常的嵌套如果是硬件中断异常,3.7 Nios II的异常处理,异常的嵌套异常返回异常响应时间,Nios II的非向量仲裁策略,导致了Nios II的异常处理延时会比较大,它是靠提高Nios II处理器的执行速度来弥补这一缺点的。见下表:,Nios II 异常处理性能,3.7 Nios II的异常处理异常的嵌套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.8 存储器及I/O结构,Nios II 存储器和I/O结构,程序计,数器,通用寄,存器文,件,指令,总线,选择,逻辑,数据,总线,选择,逻辑,指令,高速,缓存,数据,高速,缓存,紧耦合指令,存储器,1,紧耦合数据,存储器,1,紧耦合指令,存储器,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结构,3.8 存储器及I/O结构,Nios II 存储器和I/O结构,程序计,数器,通用寄,存器文,件,指令,总线,选择,逻辑,数据,总线,选择,逻辑,指令,高速,缓存,数据,高速,缓存,紧耦合指令,存储器,1,紧耦合数据,存储器,1,紧耦合指令,存储器,N,存,储,器,从,外,设,紧耦合数据,存储器,N,S,M,S,M,Avalon,转换结构,NiosII,处理器,内核,S,M,Avalon,主端口,Avalon,从端口,指令与数据总线,1.指令主端口2.指令高速缓存3.数据主端口4.数据高速缓存5.紧耦合指令或 数据存储器端口,3.8 存储器及I/O结构Nios II 存储器和I/O结构,3.8 存储器及I/O结构,指令与数据总线存储器与外设访问Nios II结构提供映射为存储器的I/O访问。数据存储器和外设都被映射到数据主端口的地址空间。存储器系统中处理器数据总线低8位分别连接存储器数据线70。,字(小端模式),高地址,低地址,3.8 存储器及I/O结构指令与数据总线字(小端模式)低字节,3.8 存储器及I/O结构,指令与数据总线指令主端口Nios II指令总线作为32位Avalon主端口来实现。指令主端口只执行一个功能:对处理器将要执行的指令进行取指。指令主端口是具有流水线属性的Avalon主端口。指令主端口依赖Avalon交换结构中的动态总线对齐逻辑始终能接收32位数据。Nios II结构支持片内高速缓存。Nios II结构还支持紧耦合存储器,对紧耦合存储器的访问能实现低延迟。,说明:指令主端口不执行任何写操作。动态总线对齐逻辑不管目标存储器的宽度如何,每次取指都会返回一个完整的指令字,因而程序不需要知道Nios II处理器系统中的存储器宽度。片内高速缓存,用于改善访问较慢存储器时的平均指令取指性能。,3.8 存储器及I/O结构指令与数据总线说明:,3.8 存储器及I/O结构,指令与数据总线数据主端口Nios II数据总线作为32位Avalon主端口来实现。数据主端口执行两个功能:1当处理器执行装载指令时,从存储器或外设中读数据。2当处理器执行存储指令时,将数据写入存储器或外设。数据主端口不支持Avalon流水线传输。同指令主端口一样Nios II结构支持片内高速缓存,改善平均数据传输性能。Nios II结构也支持紧耦合存储器以实现低延迟。,说明:数据主端口中存储器流水线延迟被看作等待周期。当数据主端口连接到零等待存储器时,装载和存储操作能够在一个时钟周期内完成。,3.8 存储器及I/O结构指令与数据总线说明:,3.8 存储器及I/O结构,指令与数据总线指令和数据共享的存储器通常,指令和数据主端口共享含有指令和数据的存储器。当处理器内核使用独立的指令总线和数据总线时,整个Nios II处理器系统对外呈现单一的、共用的指令/数据总线。,说明:数据和指令主端口从来不会出现一个端口使另一个端口处于等待状态的停滞状况。为获得最高性能,对于指令和数据主端口共享的任何存储器,数据主端口被指定为更高的优先级。,3.8 存储器及I/O结构指令与数据总线说明:,3.8 存储器及I/O结构,高速缓存(Cache)Nios II结构的指令主端口和数据主端口都支持高速缓存。作为NiosII处理器组成部分的高速缓存在SOPC Builder中是可选的,这取决于用户对系统存储性能以及FPGA资源的使用要求。包含高速缓存不会影响程序的功能,但会影响处理器取指和读/写数据时的速度。高速缓存改善性能的功效是基于以下前提的:1常规存储器位于片外,访问时间比片内存储器要长。2循环执行的、最大的,关键性能的指令序列长度小于指令高速缓存。3关键性能数据的最大模块小于数据高速缓存。,3.8 存储器及I/O结构高速缓存(Cache),3.8 存储器及I/O结构,高速缓存(Cache)例如在以下的情况下高速缓存将无法改善执行速度:Nios II处理器系统只含有快速的片内存储器(即从不访问较慢的片外存储器)。程序的关键循环是2KB,而指令高速缓存的大小为1KB。由于性能上的原因,应用程序始终要求某些数据或部分代码存放在高速缓存中,那么紧耦合存储器可能会提供一个更合适的解决方案。,注意:Cache虽然改善了系统的整体性能,但使程序的执行时间变得不可预测。对于实时系统来说这一点至关重要。,3.8 存储器及I/O结构高速缓存(Cache)注意:Cac,3.8 存储器及I/O结构,紧耦合存储器(TCM),紧耦合存储器(TCM):紧耦合存储器是一种紧挨着内核的快速SRAM,它不仅能改善系统性能,而且保证了装载和存储指令或数据的时间是确定的。紧耦合存储器可向对性能要求严格的应用提供低延迟访问。,Nios II 存储器和I/O结构,紧耦合指令存储器,紧耦合指令存储器,3.8 存储器及I/O结构紧耦合存储器(TCM)紧耦合存储器,3.8 存储器及I/O结构,紧耦合存储器(TCM),与高速缓存相比具有的优点:1性能类似于高速缓存;2软件能够保证将关键性能的代码或数据存放在紧耦合存储器中;3代码执行的确定性装载和存储指令或数据的时间是可预测的。,Nios II 存储器和I/O结构,紧耦合指令存储器,紧耦合指令存储器,3.8 存储器及I/O结构紧耦合存储器(TCM)与高速缓存相,3.8 存储器及I/O结构,紧耦合存储器介绍实际上,紧耦合存储器是Nios II处理器内核上的一个独立的主端口,与指令或数据主端口类似。Nios II结构指令和数据访问都支持紧耦合存储器。Nios II内核可以不包含紧耦合存储器,也可以包含一个或多个紧耦合存储器。每个紧耦合存储器端口直接与具有固定的低延迟的存储器相连,该存储器在Nios II内核的外部,通常使用FPGA片内存储器。紧耦合存储器与其它通过Avalon交换结构连接的存储器件一样,占据标准的地址空间。它的地址范围在生成系统时确定。系统在访问指定的代码或数据时,能够使用紧耦合存储器来获得最高性能。例如,中断频繁的应用能够将异常处理代码放在紧耦合存储器中来降低中断延迟。类似的,计算密集型的数字信号处理(DSP)应用能够将紧耦合存储器指定为数据缓存区,实现最快的数据访问。,3.8 存储器及I/O结构紧耦合存储器介绍,3.8 存储器及I/O结构,地址映射在Nios II处理器系统中,存储器和外设的地址映射是与设计相关的,由设计人员在系统生成时指定。这里要特别提到的是3个CPU相关的地址:复位地址、异常地址以及断点处理(break handler)程序的地址。程序员通过使用宏和驱动程序来访问存储器和外设,灵活的地址映射并不会影响应用程序开发人员。,3.8 存储器及I/O结构地址映射,第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.9 存储器和外设访问,Nios II地址是32位的,允许对4GB地址空间进行访问,但现有的Nios II内核都将地址限制在31位,即2GB地址空间。处理器的数据总线为32位宽度。指令集提供字节,半字(16bit)或字(32位)的读写指令。Nios II结构采用小端模式,对于保存在存储器中的大于8位的数据,最高有效位在高地址。,外设,数据存储器,程序存储器,地址空间,未映射,4GB地址空间,32位宽度,映射,映射,映射,映射到的具体位置在生成系统时确定,对此地址空间的读写将产生一个不确定的值,3.9 存储器和外设访问Nios II地址是32位的,允许对,3.9 存储器和外设访问,寻址方式Nios II结构支持以下寻址方式有:寄存器寻址:所有的操作数都是寄存器,结果保存在寄存器中移位寻址:寄存器和带符号的16位立即数相加的结果作为地址立即数寻址:操作数是指令中的常量寄存器间接寻址:使用了移位寻址,只是移位值是常量0绝对寻址:范围有限制的绝对寻址使用带有寄存器r0(它的值始终是0 x00)的移位寻址来实现。,3.9 存储器和外设访问寻址方式,3.9 存储器和外设访问,高速缓存访问Nios II结构和指令集可以管理数据高速缓存和指令高速缓存。高速缓存管理使用高速缓存指令在软件中实现。指令集可对高速缓存实现初始化、刷新及旁路数据高速缓存的指令操作。有些Nios II处理器内核支持一种称作31位高速缓存旁路的机制,它根据地址的最高有效位的值来旁路高速缓存。处理器实现的地址空间为2GB,地址的高位控制数据存储器访问的缓存操作。,3.9 存储器和外设访问高速缓存访问,3.9 存储器和外设访问,高速缓存访问写入到具有高速缓存的处理器内核的代码可以在没有高速缓存存储器的处理器内核上正确地执行,反过来则不行。在没有高速缓存的系统中,高速缓存管理指令不执行任何操作。,3.9 存储器和外设访问高速缓存访问,第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.10 Nios II处理器性能,NiosII处理器有以下三种类型:,Nios II,32位软核处理器,Nios II/f(快速),Nios II/e(经济),Nios II/s(标准),注:关于各处理器的更详细内容请阅读Altera公司的Nios II Processor Reference Handbook的Nios II CoreImplementation Details部分。,3.10 Nios II处理器性能NiosII处理器有以下三,Nios II 处理器内核性能表,特性处理器内核Nios II/eNios II/sNios,

    注意事项

    本文(第3章NiosII体系结构课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开