第3章Nios II体系结构_第1页
第3章Nios II体系结构_第2页
第3章Nios II体系结构_第3页
第3章Nios II体系结构_第4页
第3章Nios II体系结构_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章 Nios II 体系结构-SOPC嵌入式系统基础教程北京航空航天大学出版社出版周立功 等编著本章的目的是让读者建立一个Nios II处理器的概念,了解一些Nios II处理器的工作细节,这对开发出高效率、健壮的程序是非常有好处的。体系结构(Architecture)主要用来描述面向程序员的CPU抽象,而不是其具体实现。本章先介绍NiosII处理器构架,接着介绍NiosII的寄存器文件(Register File),然后介绍NiosII的异常处理,最后介绍NiosII的储存器结构并分析三种NiosII处理器的性能特点。主要内容第3章 目录n3.1 Nios II处理器结构n3.2 Nio

2、s II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.1 Nios II

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

4、。NiosII/s内核比内核比第一代的第一代的Nios CPU更快,占用的资更快,占用的资源更少。源更少。3.1 Nios II处理器结构Nios II32位软核处理器Nios II处理器结构框图地址发生器&程序控制器异常控制器中断控制器通用寄存器组控制寄存器组指令Cache数据Cache算术逻辑单元( ALU)用户逻辑JTAG接口NiosII处理器核处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockreset软件调试接口中断源0.31 IO口cpu_resetrequestcpu_resettakenctl0ctl5r0r313.1 Nios

5、II处理器结构n数据处理主要由算术逻辑单元完成,在现有的Nios II内核中暂时没有协处理器。n用户逻辑接口用来连接用户定制的逻辑电路与Nios II内核。Nios II处理器结构框图nNios II采用哈佛结构,数据总线和指令总线分开。n为了调试方便,Nios II处理器集成了一个JTAG调试模块。地址发生器&程序控制器异常控制器中断控制器通用寄存器组控制寄存器组指令Cache数据Cache算术逻辑单元( ALU)用户逻辑JTAG接口NiosII处理器核处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockreset软件调试接口中断源0.31 IO

6、口cpu_resetrequestcpu_resettakenctl0ctl5r0r313.1 Nios II处理器结构n为了提高系统的整体性能,Nios II内核不仅可以集成数据 C a c h e 和 指 令Cache,还带有紧耦合存储器TCM接口 。 T C M 可 以 使Nios II处理器既能提高性能,又能获得可预测的实时响应。Nios II处理器结构框图地址发生器&程序控制器异常控制器中断控制器通用寄存器组控制寄存器组指令Cache数据Cache算术逻辑单元( ALU)用户逻辑JTAG接口NiosII处理器核处理器核紧耦合指令存储器紧耦合指令存储器紧耦合数据存储器紧耦合数据存储器指

7、令总线数据总线clockreset软件调试接口中断源0.31 IO口cpu_resetrequestcpu_resettakenctl0ctl5r0r313.1 Nios II处理器结构nNios II把外部硬件的中断事件交由中断控制器管理,内核异常事件交由异常控制器管理。nNios II的寄存器文件包括32个通用寄存器和6个控制寄存器,Nios II结构允许将来添加浮点寄存器.Nios II处理器结构框图地址发生器&程序控制器异常控制器中断控制器通用寄存器组控制寄存器组指令Cache数据Cache算术逻辑单元( ALU)用户逻辑JTAG接口NiosII处理器核处理器核紧耦合指令存储器紧耦合指

8、令存储器紧耦合数据存储器紧耦合数据存储器指令总线数据总线clockreset软件调试接口中断源0.31 IO口cpu_resetrequestcpu_resettakenctl0ctl5r0r31第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.2 Nios II的寄存器文件n Nios II的通用寄存器尽管硬件对寄存器的用

9、法几乎没有规定,但是它们在实际使用过程中还是遵循一些约定俗成的惯例。如果想使用他人的子程序,编译器或操作系统,最好还是遵守这些惯例。我们通过下面的通用寄存器一览表来了解Nios II的32个通用寄存器。通用寄存器组寄存器助记符功能寄存器助记符功能r0zero清零r16子程序要保存的寄存器r1at汇编中的临时变量r17子程序要保存的寄存器r2函数返回值(低32位)r18子程序要保存的寄存器r3函数返回值(高32位)r19子程序要保存的寄存器r4传递给函数的参数r20子程序要保存的寄存器r5传递给函数的参数r21子程序要保存的寄存器r6传递给函数的参数r22子程序要保存的寄存器r7传递给函数的参数

10、r23子程序要保存的寄存器r8调用者要保存的寄存器r24et为异常处理保留r9调用者要保存的寄存器r25bt为程序断点保留r10调用者要保存的寄存器r26gp全局指针r11调用者要保存的寄存器r27sp堆栈指针r12调用者要保存的寄存器r28fp帧指针r13调用者要保存的寄存器r29ea异常返回地址r14调用者要保存的寄存器r30ba断点返回地址r15调用者要保存的寄存器r31ra函数返回地址通用寄存器一览r0或zero: 总是存放0值,对它读写无效。Nios II没有专门的清零指令,所以常用它来对寄存器清零。r1或at: 这个寄存器在汇编程序中常用作临时变量。r2,r3: 用来存放一个函数的

11、返回值。 r2存放返回值的低32位。 r3存放返回值的高32位。如果这两个寄存器不够存放需要返回的值,编译器将通过堆栈来传递。r4r7: 用来传递4个非浮点参数给一个子程序。r4传递第一个参数,r5传递第二个参数,以此类推。如果这四个寄存器不够传递参数,编译器将通过堆栈来传递。r8r15: 习惯上,子程序可以使用其中的值而不用保存它们。但使用者必须记住,这些寄存器里面的值可能被一次子程序调用改变,所以调用着有责任保护它们。通用寄存器组寄存器助记符功能寄存器助记符功能r0zero清零r16子程序要保存的寄存器r1at汇编中的临时变量r17子程序要保存的寄存器r2函数返回值(低32位)r18子程序

12、要保存的寄存器r3函数返回值(高32位)r19子程序要保存的寄存器r4传递给函数的参数r20子程序要保存的寄存器r5传递给函数的参数r21子程序要保存的寄存器r6传递给函数的参数r22子程序要保存的寄存器r7传递给函数的参数r23子程序要保存的寄存器r8调用者要保存的寄存器r24et为异常处理保留r9调用者要保存的寄存器r25bt为程序断点保留r10调用者要保存的寄存器r26gp全局指针r11调用者要保存的寄存器r27sp堆栈指针r12调用者要保存的寄存器r28fp帧指针r13调用者要保存的寄存器r29ea异常返回地址r14调用者要保存的寄存器r30ba断点返回地址r15调用者要保存的寄存器r

13、31ra函数返回地址通用寄存器一览r16r23: 习惯上,子程序必须保证这些寄存器中的值在调用前后保持不变,即要么在子程序执行时不使用它们,要么使用前把它们保存在堆栈中并在退出时恢复。r24或et: 在异常处理时使用。使用时,可以不恢复原来的值。该寄存器很少作用其它用途。r25或bt: 在程序断点处理时使用。使用时,可以不恢复原来的值。该寄存器很少作其它用途。r26或gp: 它指向静态数据区中的一个运行时临时决定的地址。这意味着在存取位于gp值上下32KB范围内的数据时,只需要一条以gp作为基指针的指令即可完成。r27或sp: 堆栈指针。Nios II没有专门的出栈(POP)入栈(PUSH)指

14、令,在子程序入口处,sp被调整指向栈底部,然后以sp为基址,用寄存器基址偏移地址的方式来访问栈中的数据。r28或fp: 帧指针,习惯上用于跟踪栈的变化和维护运行时环境。r29或ea: 保存异常返回地址。r30或ba: 保存断点返回地址。r31或ra: 保存函数返回地址。3.2 Nios II的寄存器文件n Nios II的控制寄存器Nios II的控制寄存器共有6个,它们的读/写访问只能在超级用户态(Supervisor Model)由专用的控制寄存器读/写指令(rdctl和wrctl)实现。通过控制寄存器一览表,来了解控制寄存器各位的意义。控制寄存器一览控制寄存器组寄存器名字bit位意义:

15、31210ct10status保留UPIEct11estatus保留EUEPIEct12bstatus保留BUBPIEct13ienable中断允许位ct14ipending中断发生标志位ct15cpuid唯一的CPU序列号status状态寄存器:只有第1位和第0位有意义。第1位U反映计算机当前状态: 1表示处于用户态(User-mode); 0表示处于超级用户态(Supervisor Mode)。第0位PIE外设中断允许位: 1表示允许外设中断; 0表示禁止外设中断。控制寄存器一览控制寄存器组寄存器名字bit位意义: 31210ct10status保留UPIEct11estatus保留EUE

16、PIEct12bstatus保留BUBPIEct13ienable中断允许位ct14ipending中断发生标志位ct15cpuid唯一的CPU序列号estatus、bstatus都是status寄存器的影子寄存器:发生断点或者异常时:保存status寄存器的值;断点或异常处理返回时:恢复status寄存器的值。控制寄存器一览控制寄存器组寄存器名字bit位意义: 31210ct10status保留UPIEct11estatus保留EUEPIEct12bstatus保留BUBPIEct13ienable中断允许位ct14ipending中断发生标志位ct15cpuid唯一的CPU序列号ienab

17、le中断允许寄存器:每一位控制一个中断通道。例如:第0位为1:表示允许第0号中断发生;第0位为0:表示禁止第0号中断发生;ipending中断发生标志位:每一位反映一个中断发生。例如:第0位为1:表示第0号中断发生;第0位为0:表示第0号中断未发生;cpuid此寄存器中装载着处理器的id号:该id号在生成Nios II系统时产生。Id号在多处理器系统中可以作为分辨CPU的标识。第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II

18、的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.3 算术逻辑单元(ALU)Nios II ALU支持的操作种类描述算术运算ALU支持有符号和无符号数的加、减、乘和除法关系运算支持有符号和无符号数的等于、不等于、大于等于和小于(=,!=,=,)关系运算逻辑运算支持AND、OR、NOR和XOR逻辑运算移位运算支持移位和循环移位运算,在每条指令中可以将数据移位和环移0到31位。支持算术右移和算术左移,还支持左、右循环移位3.3 算术逻辑单元(ALU)n 未实现的指令n 用户指令n 浮点指令第3章 目录n3.1 Nios II处理器结构n3.2

19、Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.4 复位信号地址发生器&程序控制器异常控制器中断控制器算术逻辑单元用户逻辑JTAG接口NiosII处理器核clockreset软件调试接口中断源0 .31 IO口cpu _resetrequestcpu _resettakenn Nios II处理器支持两个复位信号:reset和cpu_resetrequestreset:是一个强

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

21、che。复位地址在系统生成时指定。3.4 复位信号n 以下部件的状态在复位后是不确定的:通用寄存器(除zero(r0):总是存放0值);控制寄存器(除status(ct10),被置为0 x0);指令和数据存储器。Cache(除与复位地址关联的指令Cache);与CPU相连的各外设,各外设复位后的状态要具体参考各外设的手册;用户指令逻辑在复位后的状态要参看用户指令逻辑的手册或说明。第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios I

22、I的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.5 Nios II处理器运行模式n Nios II处理器有3种运行模式:用户模式(User Mode);超级用户模式(Supervisor Mode) ;调试模式(Debug Mode) 。n通常系统程序代码运行在超级用户模式。在V6.0版本以前的Nios II 处理器都不支持用户模式,永远都运行在超级用户模式。调试模式:拥有最大的访问权限,可以无限制地访问所有的功能模块;超级用户模式:除了不能访问与调试有关的寄存器(bt、ba和bstatus)外,无其它访问限制;用户模式:是超级用户模式

23、功能访问的一个子集,它不能访问控制寄存器和一些通用寄存器。3.5 Nios II处理器运行模式nNios II 处理器3种运行模式切换Nios II处理器3种运行模式第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.6 异常和中断控制器n异常控制器Nios II体系结构提供一个简单的非向量异常控制器来处理所有类型的异常。n中

24、断控制器Nios II体系结构支持32个外部硬件中断,即irq0irq31。每个中断对应一个独立的中断通道。第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.7 Nios II的异常处理硬件中断软件异常软件陷阱异常未定义指令异常其它异常n异常类型 一个外设能通过处理器32个中断输入之一,请求产生一个硬件中断。 当程序遇到软件

25、陷阱指令时,将产生软件陷阱异常,这在程序需要操作系统服务时常用到。操作系统的异常处理程序判断产生软件陷阱的原因,然后执行相应任务。Nios II异常包括3.7 Nios II的异常处理硬件中断软件异常软件陷阱异常未定义指令异常其它异常当处理器执行未定义指令时产生未定义指令异常。异常处理可以判断哪个指令产生异常,如果指令不能通过硬件执行,可以在一个异常服务程序中通过软件方式仿真执行。其它异常类型是未将来准备的。Nios II异常包括n异常类型3.7 Nios II的异常处理n异常硬件处理流程当异常发生后,处理器会依次完成以下工作:把status寄存器内容复制到estatus寄存器中,保存当前处理

26、器状态;清除status寄存器的U位为0,强制处理器进入超级用户状态;清除status寄存器的PIE位为0,禁止所有的硬件中断;把异常返回地址写入ea寄存器(r29);跳转到异常处理地址。123453.7 Nios II的异常处理n异常判别及优先级(EPIE=1)&(ipending!=0)?指令是在(ea-4)处吗?指令是在(ea-4)div、mul、mulxuu、等处吗?进入异常处理处理硬件中断处理软件陷阱处理未定义指令其它异常NoNoNoYesYesYes异常类型判别3.7 Nios II的异常处理n异常的嵌套n异常返回n异常响应时间 实现异常嵌套,需在用户ISR中打开外部中断允许(PI

27、E=1)。 在处理异常事件的过程中,可以响应由trap指令引起的软件陷阱异常 和未实现指令异常。 在异常嵌套之前,为了确保异常能正确返回,必须保存estatus寄存器(ctl1)和ea寄存器(r29)。3.7 Nios II的异常处理n异常的嵌套n异常返回n异常响应时间当执行异常返回指令(eret)后,处理器会把estatus寄存器(ctl1)内容复制到status寄存器(ctl0)国,恢复异常前的处理器状态,然后把异常返回地址从ea寄存器(r29)写入程序计数器。异常发生时,ea寄存器(r29)保存了异常发生处下一条指令所在的地址。当异常从软件陷阱异常 或未定义指令异常返回时,程序必须从软件

28、陷阱指令trap或未定义指令后继续执行,因此ea寄存器(r29)就是正确的异常返回地址。3.7 Nios II的异常处理n异常的嵌套n异常返回n异常响应时间如果是硬件中断异常,程序必须从硬件中断异常发生处继续执行,因此必须将ea寄存器(r29)中的地址减去(ea-4)作为异常返回地址。3.7 Nios II的异常处理n异常的嵌套n异常返回n异常响应时间lNios II的非向量仲裁策略,导致了Nios II的异常处理延时会比较大,它是靠提高Nios II处理器的执行速度来弥补这一缺点的。见下表:NiosII类型Max. DMIPS异常反应时间进入ISR时延异常恢复时延NiosII/e311548

29、5222NiosII/s12710128130NiosII/f2181010562Nios II 异常处理性能第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.8 存储器及I/O结构Nios II 存储器和I/O结构程序计数器通用寄存器文件指令总线选择逻辑数据总线选择逻辑指令高速缓存数据高速缓存紧耦合指令存储器1紧耦合数据存

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

31、令与数据总线1.指令主端口2.指令高速缓存3.数据主端口4.数据高速缓存5.紧耦合指令或 数据存储器端口3.8 存储器及I/O结构n指令与数据总线存储器与外设访问Nios II结构提供映射为存储器的I/O访问。数据存储器和外设都被映射到数据主端口的地址空间。存储器系统中处理器数据总线低8位分别连接存储器数据线70。字(小端模式)低字节高字节高地址低地址3.8 存储器及I/O结构n指令与数据总线指令主端口nNios II指令总线作为32位Avalon主端口来实现。指令主端口只执行一个功能:对处理器将要执行的指令进行取指。n指令主端口是具有流水线属性的Avalon主端口。n指令主端口依赖Avalo

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

33、行存储指令时,将数据写入存储器或外设。n数据主端口不支持Avalon流水线传输。n同指令主端口一样Nios II结构支持片内高速缓存,改善平均数据传输性能。nNios II结构也支持紧耦合存储器以实现低延迟。说明:说明:1.数据主端口中存储器流水线延迟被看作等待周期。当数据主端口连接到零等待存储器时,装载和存储操作能够在一个时钟周期内完成。3.8 存储器及I/O结构n指令与数据总线指令和数据共享的存储器通常,指令和数据主端口共享含有指令和数据的存储器。当处理器内核使用独立的指令总线和数据总线时,整个Nios II处理器系统对外呈现单一的、共用的指令/数据总线。说明:说明:1.数据和指令主端口从

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

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

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

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

38、数据缓存区,实现最快的数据访问。3.8 存储器及I/O结构n地址映射在Nios II处理器系统中,存储器和外设的地址映射是与设计相关的,由设计人员在系统生成时指定。这里要特别提到的是3个CPU相关的地址:复位地址、异常地址以及断点处理(break handler)程序的地址。程序员通过使用宏和驱动程序来访问存储器和外设,灵活的地址映射并不会影响应用程序开发人员。第3章 目录n3.1 Nios II处理器结构n3.2 Nios II的寄存器文件n3.3 算数逻辑单元(ALU)n3.4 复位信号n3.5 Nios II处理器运行模式n3.6 异常和中断控制器n3.7 Nios II的异常处理n3.8 存储器及I/O结构n3.9 存储器和外设访问n3.10 Nios II处理器性能3.9 存储器和外设访问Nios II地址是32位的,允许对4GB地址空间进行访问,但现有的Nios II内核都将地址限制在31位,即2GB地址空间。处理器的数据总线为32位宽度。指令集提供字节,半字(16bit)或字(32位)的读写指令。Nios II结构采用小端模式,对于保存在存储器中的大于8位的数据,最高有效位在高地址。外设数据存储器程序存储器地址空间未映射4GB地址空间32位宽度映射映射映射映射到的具体位置在生成系统时确定对此地址空间的读写将产生一个不确定的值3.9 存储器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论