niosiicpu的结构与编程模型

niosiicpu的结构与编程模型

ID:34724740

大小:130.68 KB

页数:4页

时间:2019-03-10

niosiicpu的结构与编程模型_第1页
niosiicpu的结构与编程模型_第2页
niosiicpu的结构与编程模型_第3页
niosiicpu的结构与编程模型_第4页
资源描述:

《niosiicpu的结构与编程模型》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、NiosIICPU的结构与编程模型NiosIICPU属于典型的RISCCPU,其特点是:结构简洁、指令集简练、指令等长、具有大量的通用寄存器。下图为NiosII的结构框图。 NiosIICPU由若干基本模块和一系列可选模块构成。基本模块包括:ALU、程序控制器、地址发生器、中断控制器、寄存器组等;可选模块有:Jtag调试器、用户指令逻辑、指令Cache、数据Cache等。NiosII共有39个工作寄存器,包括32个通用寄存器,5个控制器存器,1个CPUID寄存器、1个PC指针寄存器,每个寄存器都是32位的寄存器,都可以做

2、32位的操作。NiosII的32个通用寄存器,除R0外都可做为累加器进行各种算术、逻辑运算。R0为0值寄存器,对其进行读操作返回值是0,写操作对其没有影响,这一寄存器在指令集中有特殊的应用。R24是中断处理程序专用寄存器,它是给中断处理程序专用的,虽然在用户程序中许访问,但不要用来保存数据,因为其中数据有可能被中断处理程序覆盖掉。同样,R25是调试代理专用寄存器,也不要在用户程序中使用。R29是PC指针的中断堆栈寄存器,当有中断发生时,这一寄存器用来保留一个返回地址,以便从中断处理程序返回到被中断的程序。R30是PC指针

3、的断点堆栈寄存器,用于系统调试。当程序运行过程中遇到断点,这一寄存器中保留一个返回地址,以便从调试代理程序返回。R31是PC指针的调用堆栈,用于子程序调用。执行子程序调用指令时,这一寄存器中保留返回地址,以便从子程序返回。R26、R27、R28在C开发系统中付予了一些特殊的应用,其中R27被作堆栈指针。NiosII有5个控制寄存器和一个CPUID寄存器。Ctl0是程序状态字,目前只有BIT0、BIT1两位是有效的,高30位保留。BIT0是全局中断控制位,用于中断的全局管理,1为允许,0为禁止。BIT1是工作模式控制位。当

4、这一位为1时,系统工作于用户模式,当其为0时,系统工作于管理模式。Ctl1又叫estatus寄存器,是Ctl0的一个堆栈寄存器。当系统发生中断时,其中保留一个Ctl0的副本,以便从中断处理程序返回时恢复现场。Ctl2也叫bstatus,是Ctl0的另一堆栈寄存器。当有断点发生时,该寄存器中保留Ctl0的副本,用于从调方式代理返回时恢复现场。Ctl3是中断控制寄存器,用于控制外部中断申请的输入。每一位对应一个外部中断源,1表示允许,0表示禁止,共计32位。Ctl4是中断请求寄存器,代表外部中断源和中断请求,1为有中断请求,

5、0为没有中断请求,共计32位。Ctl5也称为CPUID,是CPU的一个标识,在多CPU系统作为CPU的代号。NiosIICPU有三种工作模式:1、 SupervisorMode2、 UserMode3、 DebugMode SupervisorMode也叫特权模式。在这种模式下,所有的系统资源都是可以访问的,不受任何的限制。一般来说,这种工作模式是给操作系统内核准备的。在有操作系统的应用中,往往是操作系的内核工作在特权模式,而应用程序工作在用户模式。对于比较简单的应用来说,也可以直接让应用程序工作在特权模式。在特权模式下

6、,通用寄器组中的R25和R30是允许访问的,然而在实际应用中不要使用这两个寄存器,因为这两个寄存器是系统留给Debug模式专用的,其中的数据有可能会被调试代理程序覆盖掉。同样,Ctl2也是不能使用的。 UserMode是用户模式。这种模式相当于特权模式的一个子集,在这种模式下某些资源的访问上是受限的,如果试图访问这些资源,将会产生一个中断。在用户模式下,CPU的控制寄存器是不允许访问的,另外,通用寄存器组中的R24、R25、R29、R30虽然是可以访问,但其中的数据有可能被特权模式或调试模式所修改,因此是不能用的。 De

7、bugMode是给调试器准备的工作模式,一般的系统程序或应用程序无法在这一模式下运行。系统在遇到断点指令或接到来自JtagDebugModule的打断信号时会进入这一工作模式。在这种工作模式下,所有的系统资源都是可以访问的。NiosII的总线结构为哈佛结构,但指令空间与数据空间统一编址,总计4GB的地址空间,总线宽度为32bit,信号及时序遵循Avalon总线规范。NiosII支持32个外部中断请求。这32个外部中断请求分为32个优先级,请求号越小,优先级越高。外部中断请求由两个专用寄存器管理,Ctl3为控寄存器,Ctl

8、4为请求寄存器。NiosII的所有中断都从同一地址进入中断处理程序。在中断处理程序中,用软件的方式区分中断源,并用软件的方式维护一个中断向量表,所以,在这一点上NiosII的处理效率不如复杂指令集CPU,对于实时性要求特高的处理,应充份发挥硬件逻辑的优势。在NiosII的架构中,有一个叫做CustomInstruct

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。