第三章NiosII體系結(jié)構(gòu)_第1頁
第三章NiosII體系結(jié)構(gòu)_第2頁
第三章NiosII體系結(jié)構(gòu)_第3頁
第三章NiosII體系結(jié)構(gòu)_第4頁
第三章NiosII體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第三章NiosII體系結(jié)構(gòu)本章的目的是讓讀者建立一個(gè)本章的目的是讓讀者建立一個(gè)Nios II處理器的處理器的概念,了解一些概念,了解一些Nios II處理器的工作細(xì)節(jié),這對(duì)開處理器的工作細(xì)節(jié),這對(duì)開發(fā)出高效率、健壯的程序是非常有好處的。發(fā)出高效率、健壯的程序是非常有好處的。體系結(jié)構(gòu)(體系結(jié)構(gòu)(Architecture)主要用來描述面向程)主要用來描述面向程序員的序員的CPU抽象,而不是其具體實(shí)現(xiàn)。本章先介紹抽象,而不是其具體實(shí)現(xiàn)。本章先介紹NiosII處理器構(gòu)架,接著介紹處理器構(gòu)架,接著介紹NiosII的寄存器文件的寄存器文件(Register File),然后介紹,然后介紹NiosII的異常

2、處理,最的異常處理,最后介紹后介紹NiosII的存儲(chǔ)器結(jié)構(gòu)并分析三種的存儲(chǔ)器結(jié)構(gòu)并分析三種NiosII處理處理器的性能特點(diǎn)。器的性能特點(diǎn)。主要內(nèi)容主要內(nèi)容3.1 Nios II處理器結(jié)構(gòu)處理器結(jié)構(gòu) Nios II是一種軟核是一種軟核(Soft-Core)處理器處理器。 所謂軟核,是指未被固化在硅片上,使用時(shí)需要所謂軟核,是指未被固化在硅片上,使用時(shí)需要借助借助EDA軟件對(duì)其進(jìn)行配置并下載到可編程芯片軟件對(duì)其進(jìn)行配置并下載到可編程芯片(比如比如FPGA)中的中的IP核。軟核最大的特點(diǎn)就是可由核。軟核最大的特點(diǎn)就是可由用戶按需要進(jìn)行配置。用戶按需要進(jìn)行配置。3.1 Nios II處理器結(jié)構(gòu) Nio

3、s II軟核處理器簡(jiǎn)介軟核處理器簡(jiǎn)介Nios II 處理器系列包括三種內(nèi)核處理器系列包括三種內(nèi)核Nios II32位軟核處理器Nios II/f (快速快速)Nios II/e (經(jīng)濟(jì)經(jīng)濟(jì))Nios II/s (標(biāo)準(zhǔn)標(biāo)準(zhǔn))性能最高,但占用的邏輯資源最多。性能最高,但占用的邏輯資源最多。占用的邏輯資源最少,但性能最低。占用的邏輯資源最少,但性能最低。平衡的性能和尺寸。平衡的性能和尺寸。NiosII/s內(nèi)核比內(nèi)核比第一代的第一代的Nios CPU更快,占用的資更快,占用的資源更少。源更少。3.1 Nios II處理器結(jié)構(gòu)Nios II32位軟核處理器位軟核處理器Nios II處理器結(jié)構(gòu)框圖處理器結(jié)

4、構(gòu)框圖地址發(fā)生器地址發(fā)生器&程序控制器程序控制器異??刂破鳟惓?刂破髦袛嗫刂破髦袛嗫刂破魍ㄓ眉拇嫫鹘M通用寄存器組r0.r31控制寄存器組控制寄存器組ctl0.ctl5指令指令Cache數(shù)據(jù)數(shù)據(jù)Cache算術(shù)邏輯單元算術(shù)邏輯單元(ALU )用戶邏輯用戶邏輯JTAG接口接口NiosII處理器核處理器核緊耦合緊耦合指令存儲(chǔ)器指令存儲(chǔ)器緊耦合緊耦合指令存儲(chǔ)器指令存儲(chǔ)器緊耦合緊耦合數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器緊耦合緊耦合數(shù)據(jù)存儲(chǔ)器數(shù)據(jù)存儲(chǔ)器指令總線指令總線數(shù)據(jù)總線數(shù)據(jù)總線clockreset軟件調(diào)軟件調(diào)試接口試接口中斷源中斷源0.31IO口口cpu _resetrequestcpu _ resettak

5、en3.1 Nios II處理器結(jié)構(gòu) 數(shù)據(jù)處理主要由算術(shù)數(shù)據(jù)處理主要由算術(shù)邏輯單元完成,在現(xiàn)邏輯單元完成,在現(xiàn)有的有的Nios II內(nèi)核中暫內(nèi)核中暫時(shí)沒有協(xié)處理器。時(shí)沒有協(xié)處理器。 用戶邏輯接口用來連用戶邏輯接口用來連接用戶定制的邏輯電接用戶定制的邏輯電路與路與Nios II內(nèi)核。內(nèi)核。Nios II處理器結(jié)構(gòu)框圖處理器結(jié)構(gòu)框圖 Nios II采用哈佛結(jié)構(gòu),數(shù)據(jù)總線和指令總線分開。采用哈佛結(jié)構(gòu),數(shù)據(jù)總線和指令總線分開。 為了調(diào)試方便,為了調(diào)試方便,Nios II處理器集成了一個(gè)處理器集成了一個(gè)JTAG調(diào)試模塊。調(diào)試模塊。地址發(fā)生器&程序控制器異??刂破髦袛嗫刂破魍ㄓ眉拇嫫鹘Mr0.r31

6、控制寄存器組ctl 0.ctl 5指令Cache指令Cache算術(shù)邏輯單元(ALU)用戶邏輯JTAG接口NiosII 處理器核緊耦合指令存儲(chǔ)器緊耦合指令存儲(chǔ)器緊耦合數(shù)據(jù)存儲(chǔ)器緊耦合數(shù)據(jù)存儲(chǔ)器指令總線數(shù)據(jù)總線clockreset軟件調(diào)試接口中斷源0.31 IO口cpu _resetrequestcpu _resettaken3.1 Nios II處理器結(jié)構(gòu) 為了提高系統(tǒng)的整體為了提高系統(tǒng)的整體性能,性能,Nios II內(nèi)核不內(nèi)核不僅可以集成數(shù)據(jù)僅可以集成數(shù)據(jù)Cache和指令和指令Cache 還帶有緊耦合存儲(chǔ)器還帶有緊耦合存儲(chǔ)器TCM接口。接口。TCM可以可以使使Nios II處理器既能處理器既能

7、提高性能,又能獲得提高性能,又能獲得可預(yù)測(cè)的實(shí)時(shí)響應(yīng)??深A(yù)測(cè)的實(shí)時(shí)響應(yīng)。Nios II處理器結(jié)構(gòu)框圖處理器結(jié)構(gòu)框圖地址發(fā)生器&程序控制器異常控制器中斷控制器通用寄存器組r0.r31控制寄存器組ctl 0.ctl 5指令Cache指令Cache算術(shù)邏輯單元(ALU)用戶邏輯JTAG接口NiosII 處理器核緊耦合指令存儲(chǔ)器緊耦合指令存儲(chǔ)器緊耦合數(shù)據(jù)存儲(chǔ)器緊耦合數(shù)據(jù)存儲(chǔ)器指令總線數(shù)據(jù)總線clockreset軟件調(diào)試接口中斷源0.31 IO口cpu _resetrequestcpu _resettaken3.1 Nios II處理器結(jié)構(gòu) Nios II把外部硬件的把外部硬件的中斷事件交由中斷

8、控中斷事件交由中斷控制器管理,內(nèi)核異常制器管理,內(nèi)核異常事件交由異??刂破魇录挥僧惓?刂破鞴芾?。管理。 Nios II的寄存器文件包括的寄存器文件包括32個(gè)通用寄存器和個(gè)通用寄存器和6個(gè)控制寄個(gè)控制寄存器,存器,Nios II結(jié)構(gòu)允許將來添加浮點(diǎn)寄存器結(jié)構(gòu)允許將來添加浮點(diǎn)寄存器Nios II處理器結(jié)構(gòu)框圖處理器結(jié)構(gòu)框圖地址發(fā)生器&程序控制器異常控制器中斷控制器通用寄存器組r0.r31控制寄存器組ctl 0.ctl 5指令Cache指令Cache算術(shù)邏輯單元(ALU)用戶邏輯JTAG接口NiosII 處理器核緊耦合指令存儲(chǔ)器緊耦合指令存儲(chǔ)器緊耦合數(shù)據(jù)存儲(chǔ)器緊耦合數(shù)據(jù)存儲(chǔ)器指令總線數(shù)據(jù)總

9、線clockreset軟件調(diào)試接口中斷源0.31 IO口cpu _resetrequestcpu _resettaken3.2 Nios II的寄存器文件 Nios II的通用寄存器的通用寄存器盡管硬件對(duì)寄存器的用法幾乎沒有規(guī)定,但是它們?cè)诒M管硬件對(duì)寄存器的用法幾乎沒有規(guī)定,但是它們?cè)趯?shí)際使用過程中還是遵循一些約定俗成的慣例。如果想實(shí)際使用過程中還是遵循一些約定俗成的慣例。如果想使用他人的子程序,編譯器或操作系統(tǒng),最好還是遵守使用他人的子程序,編譯器或操作系統(tǒng),最好還是遵守這些慣例。這些慣例。我們通過下面的通用寄存器一覽表來了解我們通過下面的通用寄存器一覽表來了解Nios II的的32個(gè)通用寄

10、存器個(gè)通用寄存器。通用寄存器組通用寄存器組寄存器寄存器助記符助記符功能功能寄存器寄存器助記符助記符功能功能r0zero清零清零r16子程序要保存的寄存器子程序要保存的寄存器r1at匯編中的臨時(shí)變量匯編中的臨時(shí)變量r17子程序要保存的寄存器子程序要保存的寄存器r2函數(shù)返回值(低函數(shù)返回值(低32位)位)r18子程序要保存的寄存器子程序要保存的寄存器r3函數(shù)返回值(高函數(shù)返回值(高32位)位)r19子程序要保存的寄存器子程序要保存的寄存器r4傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r20子程序要保存的寄存器子程序要保存的寄存器r5傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r21子程序要保存的寄存器子程序要保存的寄存

11、器r6傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r22子程序要保存的寄存器子程序要保存的寄存器r7傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r23子程序要保存的寄存器子程序要保存的寄存器r8調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r24et為異常處理保留為異常處理保留r9調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r25bt為程序斷點(diǎn)保留為程序斷點(diǎn)保留r10調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r26gp全局指針全局指針r11調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r27sp堆棧指針堆棧指針r12調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r28fp幀指針幀指針r13調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r29ea異

12、常返回地址異常返回地址r14調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r30ba斷點(diǎn)返回地址斷點(diǎn)返回地址r15調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r31ra函數(shù)返回地址函數(shù)返回地址通用寄存器一覽通用寄存器一覽r0或zero: 總是存放0值,對(duì)它讀寫無效。Nios II沒有專門的清零指令,所以常用它來對(duì)寄存器清零。r1或at: 這個(gè)寄存器在匯編程序中常用作臨時(shí)變量。r2,r3: 用來傳遞4個(gè)非浮點(diǎn)參數(shù)給一個(gè)子程序。r3存放返回值的高32位。如果這兩個(gè)寄存器不夠存放需要返回的值,編譯器將通過堆棧來傳遞。r4r7: 用來傳遞4個(gè)非浮點(diǎn)參數(shù)給一個(gè)子程序。r4傳遞第一個(gè)參數(shù),r5傳遞第二個(gè)參數(shù),以此類

13、推。如果這四個(gè)寄存器不夠傳遞參數(shù),編譯器將通過堆棧來傳遞。r8r15: 習(xí)慣上,子程序可以使用其中的值而不用保存它們。但使用者必須記住,這些寄存器里面的值可能被一次子程序調(diào)用改變,所以調(diào)用著有責(zé)任保護(hù)它們。通用寄存器組通用寄存器組寄存器寄存器助記符助記符功能功能寄存器寄存器助記符助記符功能功能r0zero清零清零r16子程序要保存的寄存器子程序要保存的寄存器r1at匯編中的臨時(shí)變量匯編中的臨時(shí)變量r17子程序要保存的寄存器子程序要保存的寄存器r2函數(shù)返回值(低函數(shù)返回值(低32位)位)r18子程序要保存的寄存器子程序要保存的寄存器r3函數(shù)返回值(高函數(shù)返回值(高32位)位)r19子程序要保存的

14、寄存器子程序要保存的寄存器r4傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r20子程序要保存的寄存器子程序要保存的寄存器r5傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r21子程序要保存的寄存器子程序要保存的寄存器r6傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r22子程序要保存的寄存器子程序要保存的寄存器r7傳遞給函數(shù)的參數(shù)傳遞給函數(shù)的參數(shù)r23子程序要保存的寄存器子程序要保存的寄存器r8調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r24et為異常處理保留為異常處理保留r9調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r25bt為程序斷點(diǎn)保留為程序斷點(diǎn)保留r10調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r26gp全局指針全局指針r11調(diào)用

15、者要保存的寄存器調(diào)用者要保存的寄存器r27sp堆棧指針堆棧指針r12調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r28fp幀指針幀指針r13調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r29ea異常返回地址異常返回地址r14調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r30ba斷點(diǎn)返回地址斷點(diǎn)返回地址r15調(diào)用者要保存的寄存器調(diào)用者要保存的寄存器r31ra函數(shù)返回地址函數(shù)返回地址通用寄存器一覽r16r23: 習(xí)慣上,子程序必須保證這些寄存器中的值在調(diào)用前后保持不變,即要么在子程序執(zhí)行時(shí)不使用它們,要么使用前把它們保存在堆棧中并在退出時(shí)恢復(fù)。r24或et: 在異常處理時(shí)使用。使用時(shí),可以不恢復(fù)原來的值。該寄

16、存器很少作用其它用途。r25或bt: 在程序斷點(diǎn)處理時(shí)使用。使用時(shí),可以不恢復(fù)原來的值。該寄存器很少作其它用途。r26或gp: 它指向靜態(tài)數(shù)據(jù)區(qū)中的一個(gè)運(yùn)行時(shí)臨時(shí)決定的地址。這意味著在存取位于gp值上下32KB范圍內(nèi)的數(shù)據(jù)時(shí),只需要一條以gp作為基指針的指令即可完成。r27或sp: 堆棧指針。Nios II沒有專門的出棧(POP)入棧(PUSH)指令,在子程序入口處,sp被調(diào)整指向棧底部,然后以sp為基址,用寄存器基址偏移地址的方式來訪問棧中的數(shù)據(jù)。r28或fp: 幀指針,習(xí)慣上用于跟蹤棧的變化和維護(hù)運(yùn)行時(shí)環(huán)境。r29或ea: 保存異常返回地址。r30或ba: 保存斷點(diǎn)返回地址。r31或ra:

17、 保存函數(shù)返回地址。3.2 Nios II的寄存器文件 Nios II的控制寄存器的控制寄存器Nios II的控制寄存器共有的控制寄存器共有6個(gè),它們的讀個(gè),它們的讀/寫訪問只能寫訪問只能在超級(jí)用戶態(tài)在超級(jí)用戶態(tài)(Supervisor Model)由專用的控制寄存器由專用的控制寄存器讀讀/寫指令寫指令(rdctl和和wrctl)實(shí)現(xiàn)。實(shí)現(xiàn)。通過控制寄存器一覽表,來了解控制寄存器各位的意通過控制寄存器一覽表,來了解控制寄存器各位的意義。義??刂萍拇嫫饕挥[控制寄存器一覽控制寄存器組控制寄存器組寄存器寄存器名字名字bit位意義:位意義: 31210ct10status保留保留UPIEct11esta

18、tus保留保留EUEPIEct12bstatus保留保留BUBPIEct13ienable中斷允許位中斷允許位ct14ipending中斷發(fā)生標(biāo)志位中斷發(fā)生標(biāo)志位ct15cpuid唯一的唯一的CPU序列號(hào)序列號(hào)status狀態(tài)寄存器:只有第1位和第0位有意義。第1位U反映計(jì)算機(jī)當(dāng)前狀態(tài): 1表示處于用戶態(tài)(User-mode); 0表示處于超級(jí)用戶態(tài)(Supervisor Mode)。第0位PIE外設(shè)中斷允許位: 1表示允許外設(shè)中斷; 0表示禁止外設(shè)中斷??刂萍拇嫫饕挥[控制寄存器一覽控制寄存器組控制寄存器組寄存器寄存器名字名字bit位意義:位意義: 31210ct10status保留保留UPI

19、Ect11estatus保留保留EUEPIEct12bstatus保留保留BUBPIEct13ienable中斷允許位中斷允許位ct14ipending中斷發(fā)生標(biāo)志位中斷發(fā)生標(biāo)志位ct15cpuid唯一的唯一的CPU序列號(hào)序列號(hào)estatus、bstatus都是status寄存器的影子寄存器:發(fā)生斷點(diǎn)或者異常時(shí):保存status寄存器的值;斷點(diǎn)或異常處理返回時(shí):恢復(fù)status寄存器的值??刂萍拇嫫饕挥[控制寄存器一覽控制寄存器組控制寄存器組寄存器寄存器名字名字bit位意義:位意義: 31210ct10status保留保留UPIEct11estatus保留保留EUEPIEct12bstatus保

20、留保留BUBPIEct13ienable中斷允許位中斷允許位ct14ipending中斷發(fā)生標(biāo)志位中斷發(fā)生標(biāo)志位ct15cpuid唯一的唯一的CPU序列號(hào)序列號(hào)ienable中斷允許寄存器:每一位控制一個(gè)中斷通道。例如:第0位為1:表示允許第0號(hào)中斷發(fā)生;第0位為0:表示禁止第0號(hào)中斷發(fā)生;ipending中斷發(fā)生標(biāo)志位:每一位反映一個(gè)中斷發(fā)生。例如:第0位為1:表示第0號(hào)中斷發(fā)生;第0位為0:表示第0號(hào)中斷未發(fā)生;cpuid此寄存器中裝載著處理器的id號(hào):該id號(hào)在生成Nios II系統(tǒng)時(shí)產(chǎn)生。Id號(hào)在多處理器系統(tǒng)中可以作為分辨CPU的標(biāo)識(shí)。3.3 算術(shù)邏輯單元算術(shù)邏輯單元(ALU)Nios

21、 II ALU支持的操作支持的操作種種類類描描述述算術(shù)運(yùn)算算術(shù)運(yùn)算ALU支持有符號(hào)和無符號(hào)數(shù)的加、減、乘和除法支持有符號(hào)和無符號(hào)數(shù)的加、減、乘和除法關(guān)系運(yùn)算關(guān)系運(yùn)算支持有符號(hào)和無符號(hào)數(shù)的等于、不等于、大于等于和支持有符號(hào)和無符號(hào)數(shù)的等于、不等于、大于等于和小于(小于(=,!=,=,)關(guān)系運(yùn)算)關(guān)系運(yùn)算邏輯運(yùn)算邏輯運(yùn)算支持支持AND、OR、NOR和和XOR邏輯運(yùn)算邏輯運(yùn)算移位運(yùn)算移位運(yùn)算支持移位和循環(huán)移位運(yùn)算,在每條指令中可以將數(shù)據(jù)支持移位和循環(huán)移位運(yùn)算,在每條指令中可以將數(shù)據(jù)移位和環(huán)移移位和環(huán)移0到到31位。支持算術(shù)右移和算術(shù)左移,還位。支持算術(shù)右移和算術(shù)左移,還支持左、右循環(huán)移位支持左、右循

22、環(huán)移位3.3 算術(shù)邏輯單元算術(shù)邏輯單元(ALU) 未實(shí)現(xiàn)的指令未實(shí)現(xiàn)的指令 Nios II/e 不支持不支持mul, muli, mulxsu, div, divu 硬件乘法器和硬件除法器硬件乘法器和硬件除法器 用戶指令用戶指令 用戶指令邏輯直接與用戶指令邏輯直接與ALU相連相連 浮點(diǎn)指令浮點(diǎn)指令 支持單精度浮點(diǎn)指令支持單精度浮點(diǎn)指令 3.3 算術(shù)邏輯單元算術(shù)邏輯單元(ALU)3.4 復(fù)位信號(hào)復(fù)位信號(hào)地址發(fā)生器&程序控制器異??刂破髦袛嗫刂破魉阈g(shù)邏輯單元用戶邏輯JTAG接口NiosII處理器核clockreset軟件調(diào)試接口中斷源0 .31 IO口cpu _resetrequestcp

23、u _resettaken Nios II處理器支持兩個(gè)復(fù)位信號(hào):處理器支持兩個(gè)復(fù)位信號(hào):reset和和cpu_resetrequestreset:是一個(gè)強(qiáng)制處理器核立即進(jìn)是一個(gè)強(qiáng)制處理器核立即進(jìn)入復(fù)位狀態(tài)的全局硬件復(fù)位信號(hào)。入復(fù)位狀態(tài)的全局硬件復(fù)位信號(hào)。cpu_resetrequest:是一個(gè)可以讓是一個(gè)可以讓CPU復(fù)位但不影響復(fù)位但不影響Nios II系統(tǒng)其它外系統(tǒng)其它外設(shè)的局部復(fù)位信號(hào)。設(shè)的局部復(fù)位信號(hào)。Nios II處理器結(jié)構(gòu)框圖處理器結(jié)構(gòu)框圖3.4 復(fù)位信號(hào)復(fù)位信號(hào) CPU復(fù)位后,復(fù)位后,Nios II處理器將執(zhí)行下列操作:處理器將執(zhí)行下列操作:清除狀態(tài)寄存器清除狀態(tài)寄存器statu

24、s,使之為,使之為0 x0;指令指令Cache與程序存儲(chǔ)器的關(guān)聯(lián)被置為無效,處理器從與程序存儲(chǔ)器的關(guān)聯(lián)被置為無效,處理器從固態(tài)程序存儲(chǔ)器固態(tài)程序存儲(chǔ)器(比如比如Flash)中的中的reset地址處取得第一條指地址處取得第一條指令;令;從復(fù)位地址處開始執(zhí)行程序。從復(fù)位地址處開始執(zhí)行程序。清除清除statusstatus:是為了使處理器進(jìn)入超級(jí)用戶模式并禁止是為了使處理器進(jìn)入超級(jí)用戶模式并禁止硬件中斷。硬件中斷。使當(dāng)前使當(dāng)前CacheCache隊(duì)列無效:隊(duì)列無效:是為了保證取指是從復(fù)位地址所在的非是為了保證取指是從復(fù)位地址所在的非CacheCache存儲(chǔ)區(qū),而不是當(dāng)前指令存儲(chǔ)區(qū),而不是當(dāng)前指令Ca

25、cheCache。復(fù)位地址在系統(tǒng)生成時(shí)指定。復(fù)位地址在系統(tǒng)生成時(shí)指定。3.4 復(fù)位信號(hào)復(fù)位信號(hào) 以下部件的狀態(tài)在復(fù)位后是不確定的:以下部件的狀態(tài)在復(fù)位后是不確定的:通用寄存器通用寄存器(除除zero(r0):總是存放:總是存放0值值);控制寄存器控制寄存器(除除status(ct10),被置為被置為0 x0);指令和數(shù)據(jù)存儲(chǔ)器。指令和數(shù)據(jù)存儲(chǔ)器。Cache(除與復(fù)位地址關(guān)聯(lián)的指令除與復(fù)位地址關(guān)聯(lián)的指令Cache);與與CPU相連的各外設(shè),各外設(shè)復(fù)位后的狀態(tài)要具體參相連的各外設(shè),各外設(shè)復(fù)位后的狀態(tài)要具體參考各外設(shè)的手冊(cè);考各外設(shè)的手冊(cè);用戶指令邏輯在復(fù)位后的狀態(tài)要參看用戶指令邏輯的手用戶指令邏輯

26、在復(fù)位后的狀態(tài)要參看用戶指令邏輯的手冊(cè)或說明。冊(cè)或說明。3.5 Nios II處理器運(yùn)行模式處理器運(yùn)行模式 Nios II處理器有處理器有3種運(yùn)行模式:種運(yùn)行模式:用戶模式用戶模式(User Mode);超級(jí)用戶模式超級(jí)用戶模式(Supervisor Mode) ;調(diào)試模式調(diào)試模式(Debug Mode) 。 通常系統(tǒng)程序代碼運(yùn)行在超級(jí)用戶模式。在版本以前的通常系統(tǒng)程序代碼運(yùn)行在超級(jí)用戶模式。在版本以前的Nios II 處理器都不支持用戶模式,永遠(yuǎn)都運(yùn)行在超級(jí)用戶模式。處理器都不支持用戶模式,永遠(yuǎn)都運(yùn)行在超級(jí)用戶模式。調(diào)試模式:擁有最大的訪問權(quán)限,可以無限制地訪問所有的功能模塊;超級(jí)用戶模式:

27、除了不能訪問與調(diào)試有關(guān)的寄存器(bt、ba和bstatus)外,無其它訪問限制;用戶模式:是超級(jí)用戶模式功能訪問的一個(gè)子集,它不能訪問控制寄存器和一些通用寄存器。3.5 Nios II處理器運(yùn)行模式 Nios II 處理器處理器3種運(yùn)行模式切換種運(yùn)行模式切換Nios II處理器處理器3種運(yùn)行模式種運(yùn)行模式3.6 異常和中斷控制器異常控制器異??刂破鱊ios II體系結(jié)構(gòu)提供一個(gè)簡(jiǎn)單的非向量異常控制體系結(jié)構(gòu)提供一個(gè)簡(jiǎn)單的非向量異??刂破鱽硖幚硭蓄愋偷漠惓!F鱽硖幚硭蓄愋偷漠惓?。中斷控制器中斷控制器Nios II體系結(jié)構(gòu)支持體系結(jié)構(gòu)支持32個(gè)外部硬件中斷,即個(gè)外部硬件中斷,即irq0irq31

28、。每個(gè)中斷對(duì)應(yīng)一個(gè)獨(dú)立的中斷通道。每個(gè)中斷對(duì)應(yīng)一個(gè)獨(dú)立的中斷通道。3.7 Nios II的異常處理硬件中斷硬件中斷軟件異常軟件異常軟件陷阱異常軟件陷阱異常未定義指令異常未定義指令異常其它異常其它異常異常類型異常類型 一個(gè)外設(shè)能通過處理器一個(gè)外設(shè)能通過處理器32個(gè)中斷輸入之一,請(qǐng)求產(chǎn)生個(gè)中斷輸入之一,請(qǐng)求產(chǎn)生一個(gè)硬件中斷。一個(gè)硬件中斷。 當(dāng)程序遇到軟件陷阱指令當(dāng)程序遇到軟件陷阱指令時(shí),將產(chǎn)生軟件陷阱異常,時(shí),將產(chǎn)生軟件陷阱異常,這在程序需要操作系統(tǒng)服務(wù)這在程序需要操作系統(tǒng)服務(wù)時(shí)常用到。操作系統(tǒng)的異常時(shí)常用到。操作系統(tǒng)的異常處理程序判斷產(chǎn)生軟件陷阱處理程序判斷產(chǎn)生軟件陷阱的原因,然后執(zhí)行相應(yīng)任務(wù)。

29、的原因,然后執(zhí)行相應(yīng)任務(wù)。Nios II異異常常包包括括3.7 Nios II的異常處理硬件中斷軟件異常軟件陷阱異常未定義指令異常其它異常當(dāng)處理器執(zhí)行未定義指令當(dāng)處理器執(zhí)行未定義指令時(shí)產(chǎn)生未定義指令異常。異時(shí)產(chǎn)生未定義指令異常。異常處理可以判斷哪個(gè)指令產(chǎn)常處理可以判斷哪個(gè)指令產(chǎn)生異常,如果指令不能通過生異常,如果指令不能通過硬件執(zhí)行,可以在一個(gè)異常硬件執(zhí)行,可以在一個(gè)異常服務(wù)程序中通過軟件方式仿服務(wù)程序中通過軟件方式仿真執(zhí)行。真執(zhí)行。其它異常類型是未將來準(zhǔn)其它異常類型是未將來準(zhǔn)備的。備的。Nios II異異常常包包括括異常類型異常類型3.7 Nios II的異常處理異常硬件處理流程異常硬件處理

30、流程當(dāng)異常發(fā)生后,處理器會(huì)依次完成以下工作:當(dāng)異常發(fā)生后,處理器會(huì)依次完成以下工作:把把status寄存器內(nèi)容復(fù)寄存器內(nèi)容復(fù)制到制到estatus寄存器中,寄存器中,保存當(dāng)前處理器狀態(tài);保存當(dāng)前處理器狀態(tài);清除清除status寄存器的寄存器的U位為位為0,強(qiáng)制處理器進(jìn),強(qiáng)制處理器進(jìn)入超級(jí)用戶狀態(tài);入超級(jí)用戶狀態(tài);清除清除status寄存器的寄存器的PIE位為位為0,禁止所有,禁止所有的硬件中斷;的硬件中斷;把異常返回地把異常返回地址寫入址寫入ea寄存寄存器器(r29);跳轉(zhuǎn)到異常跳轉(zhuǎn)到異常處理地址。處理地址。123453.7 Nios II的異常處理的異常處理異常判別及優(yōu)先級(jí)異常判別及優(yōu)先級(jí)(

31、HAL)(EPIE=1)&(ipending!=0)?指令是在指令是在(ea-4)處嗎?處嗎?指令是在指令是在(ea-4)div、mul、mulxuu、等處嗎?、等處嗎?進(jìn)入異常處理進(jìn)入異常處理處理硬件中斷處理硬件中斷處理軟件陷阱處理軟件陷阱處理未定義指令處理未定義指令其它異常其它異常NoNoNoYesYesYes異常類型判別異常類型判別3.7 Nios II的異常處理的異常處理異常優(yōu)先級(jí)異常優(yōu)先級(jí)外部硬件中斷:外部硬件中斷:0號(hào)中斷優(yōu)先級(jí)為最高號(hào)中斷優(yōu)先級(jí)為最高軟件陷阱異常軟件陷阱異常未實(shí)現(xiàn)指令異常未實(shí)現(xiàn)指令異常其他情況其他情況3.7 Nios II的異常處理的異常處理異常的嵌套異常

32、的嵌套異常返回異常返回異常響應(yīng)時(shí)間異常響應(yīng)時(shí)間 實(shí)現(xiàn)異常嵌套,需在用戶實(shí)現(xiàn)異常嵌套,需在用戶ISR中打開中打開外部中斷允許外部中斷允許(PIE=1)。 在處理異常事件的過程中,可以響應(yīng)在處理異常事件的過程中,可以響應(yīng)由由trap指令引起的軟件陷阱異常指令引起的軟件陷阱異常 和未實(shí)和未實(shí)現(xiàn)指令異常?,F(xiàn)指令異常。 在異常嵌套之前,為了確保異常能正在異常嵌套之前,為了確保異常能正確返回,必須保存確返回,必須保存estatus寄存器寄存器(ctl1)的的ea寄存器寄存器(r29)。3.7 Nios II的異常處理異常的嵌套異常的嵌套異常返回異常返回異常響應(yīng)時(shí)間異常響應(yīng)時(shí)間當(dāng)執(zhí)行異常返回指令當(dāng)執(zhí)行異常返

33、回指令(eret)后,處理后,處理器會(huì)把器會(huì)把estatus寄存器寄存器(ctl1)內(nèi)容復(fù)制內(nèi)容復(fù)制到到status寄存器寄存器(ctl0)國,恢復(fù)異常前國,恢復(fù)異常前的處理器狀態(tài),然后把異常返回地址從的處理器狀態(tài),然后把異常返回地址從ea寄存器寄存器(r29)寫入程序計(jì)數(shù)器。寫入程序計(jì)數(shù)器。異常發(fā)生時(shí),異常發(fā)生時(shí),ea寄存器寄存器(r29)保存了保存了異常發(fā)生處下一條指令所在的地址。當(dāng)異異常發(fā)生處下一條指令所在的地址。當(dāng)異常從軟件陷阱異常常從軟件陷阱異常 或未定義指令異常返或未定義指令異常返回時(shí),程序必須從軟件陷阱指令回時(shí),程序必須從軟件陷阱指令trap或或未定義指令后繼續(xù)執(zhí)行,因此未定義指

34、令后繼續(xù)執(zhí)行,因此ea寄存器寄存器(r29)就是正確的異常返回地址。就是正確的異常返回地址。3.7 Nios II的異常處理異常的嵌套異常的嵌套異常返回異常返回異常響應(yīng)時(shí)間異常響應(yīng)時(shí)間如果是硬件中斷異常,程序必須從硬如果是硬件中斷異常,程序必須從硬件中斷異常發(fā)生處繼續(xù)執(zhí)行,因此必須將件中斷異常發(fā)生處繼續(xù)執(zhí)行,因此必須將ea寄存器寄存器(r29)中的地址減去中的地址減去(ea-4)作作為異常返回地址。為異常返回地址。3.7 Nios II的異常處理異常的嵌套異常的嵌套異常返回異常返回異常響應(yīng)時(shí)間異常響應(yīng)時(shí)間lNios II的非向量仲裁策略,導(dǎo)致了的非向量仲裁策略,導(dǎo)致了Nios II的異常處理延

35、時(shí)會(huì)比較大,它是靠提高的異常處理延時(shí)會(huì)比較大,它是靠提高Nios II處理器的執(zhí)行速度來彌補(bǔ)這一缺點(diǎn)的。處理器的執(zhí)行速度來彌補(bǔ)這一缺點(diǎn)的。見下表:見下表:NiosII類型類型Max. DMIPS異常反應(yīng)時(shí)間異常反應(yīng)時(shí)間進(jìn)入進(jìn)入ISR時(shí)延時(shí)延異?;謴?fù)時(shí)延異?;謴?fù)時(shí)延NiosII/e3115485222NiosII/s12710128130NiosII/f2181010562Nios II 異常處理性能異常處理性能第3章 目錄3.1 Nios II處理器結(jié)構(gòu)3.2 Nios II的寄存器文件3.3 算數(shù)邏輯單元(ALU)3.4 復(fù)位信號(hào)3.5 Nios II處理器運(yùn)行模式3.6 異常和中斷控制器3

36、.7 Nios II的異常處理3.8 存儲(chǔ)器及I/O結(jié)構(gòu)3.9 存儲(chǔ)器和外設(shè)訪問3.10 Nios II處理器性能3.8 存儲(chǔ)器及I/O結(jié)構(gòu)Nios II 存儲(chǔ)器和存儲(chǔ)器和I/O結(jié)構(gòu)結(jié)構(gòu)程序計(jì)數(shù)器通用寄存器文件指令總線選擇邏輯數(shù)據(jù)總線選擇邏輯指令高速緩存數(shù)據(jù)高速緩存緊耦合指令存儲(chǔ)器1緊耦合數(shù)據(jù)存儲(chǔ)器1緊耦合指令存儲(chǔ)器N存儲(chǔ)器從外設(shè)緊耦合數(shù)據(jù)存儲(chǔ)器NSMSMAvalon轉(zhuǎn)換結(jié)構(gòu)NiosII處理器內(nèi)核SMAvalon主端口Avalon從端口n NiosII內(nèi)核訪問存儲(chǔ)器和I/O的方式1.指令主端口2.指令高速緩存3.數(shù)據(jù)主端口4.數(shù)據(jù)高速緩存5.緊耦合指令或 數(shù)據(jù)存儲(chǔ)器端口3.8 存儲(chǔ)器及I/O結(jié)

37、構(gòu)Nios II 存儲(chǔ)器和存儲(chǔ)器和I/O結(jié)構(gòu)結(jié)構(gòu)程序計(jì)數(shù)器通用寄存器文件指令總線選擇邏輯數(shù)據(jù)總線選擇邏輯指令高速緩存數(shù)據(jù)高速緩存緊耦合指令存儲(chǔ)器1緊耦合數(shù)據(jù)存儲(chǔ)器1緊耦合指令存儲(chǔ)器N存儲(chǔ)器從外設(shè)緊耦合數(shù)據(jù)存儲(chǔ)器NSMSMAvalon轉(zhuǎn)換結(jié)構(gòu)NiosII處理器處理器內(nèi)核內(nèi)核SMAvalon主端口Avalon從端口n 指令與數(shù)據(jù)總線1.指令主端口指令主端口2.指令高速緩存指令高速緩存3.數(shù)據(jù)主端口數(shù)據(jù)主端口4.數(shù)據(jù)高速緩存數(shù)據(jù)高速緩存5.緊耦合指令或緊耦合指令或 數(shù)據(jù)存儲(chǔ)器端口數(shù)據(jù)存儲(chǔ)器端口3.8 存儲(chǔ)器及I/O結(jié)構(gòu)指令與數(shù)據(jù)總線指令與數(shù)據(jù)總線存儲(chǔ)器與外設(shè)訪問存儲(chǔ)器與外設(shè)訪問Nios II結(jié)構(gòu)提供

38、映射為存儲(chǔ)器的結(jié)構(gòu)提供映射為存儲(chǔ)器的I/O訪問。數(shù)據(jù)存儲(chǔ)訪問。數(shù)據(jù)存儲(chǔ)器和外設(shè)都被映射到數(shù)據(jù)主端口的地址空間。存儲(chǔ)器系器和外設(shè)都被映射到數(shù)據(jù)主端口的地址空間。存儲(chǔ)器系統(tǒng)中處理器數(shù)據(jù)總線低統(tǒng)中處理器數(shù)據(jù)總線低8位分別連接存儲(chǔ)器數(shù)據(jù)線位分別連接存儲(chǔ)器數(shù)據(jù)線70。字字(小端模式小端模式)低字節(jié)低字節(jié)高字節(jié)高字節(jié)高地址高地址低地址低地址3.8 存儲(chǔ)器及I/O結(jié)構(gòu)指令與數(shù)據(jù)總線指令與數(shù)據(jù)總線指令主端口指令主端口Nios II指令總線作為指令總線作為32位位Avalon主端口來實(shí)現(xiàn)。指令主端口只執(zhí)行主端口來實(shí)現(xiàn)。指令主端口只執(zhí)行一個(gè)功能:對(duì)處理器將要執(zhí)行的指令進(jìn)行取指。一個(gè)功能:對(duì)處理器將要執(zhí)行的指令進(jìn)行

39、取指。指令主端口是具有流水線屬性的指令主端口是具有流水線屬性的Avalon主端口。主端口。指令主端口依賴指令主端口依賴Avalon交換結(jié)構(gòu)中的動(dòng)態(tài)總線對(duì)齊邏輯始終能接收交換結(jié)構(gòu)中的動(dòng)態(tài)總線對(duì)齊邏輯始終能接收32位數(shù)據(jù)。位數(shù)據(jù)。Nios II結(jié)構(gòu)支持片內(nèi)高速緩存。結(jié)構(gòu)支持片內(nèi)高速緩存。Nios II結(jié)構(gòu)還支持緊耦合存儲(chǔ)器,對(duì)緊耦合存儲(chǔ)器的訪問能實(shí)現(xiàn)低延結(jié)構(gòu)還支持緊耦合存儲(chǔ)器,對(duì)緊耦合存儲(chǔ)器的訪問能實(shí)現(xiàn)低延遲。遲。說明:說明:指令主端口不執(zhí)行任何寫操作。指令主端口不執(zhí)行任何寫操作。動(dòng)態(tài)總線對(duì)齊邏輯不管目標(biāo)存儲(chǔ)器的寬度如何,每次取指都會(huì)返回一個(gè)完整的指令字,因而程序動(dòng)態(tài)總線對(duì)齊邏輯不管目標(biāo)存儲(chǔ)器的寬

40、度如何,每次取指都會(huì)返回一個(gè)完整的指令字,因而程序不需要不需要 知道知道Nios II處理器系統(tǒng)中的存儲(chǔ)器寬度。處理器系統(tǒng)中的存儲(chǔ)器寬度。1.片內(nèi)高速緩存,用于改善訪問較慢存儲(chǔ)器時(shí)的平均指令取指性能。片內(nèi)高速緩存,用于改善訪問較慢存儲(chǔ)器時(shí)的平均指令取指性能。3.8 存儲(chǔ)器及I/O結(jié)構(gòu)指令與數(shù)據(jù)總線指令與數(shù)據(jù)總線數(shù)據(jù)主端口數(shù)據(jù)主端口Nios II數(shù)據(jù)總線作為數(shù)據(jù)總線作為32位位Avalon主端口來實(shí)現(xiàn)。數(shù)據(jù)主端口執(zhí)行兩主端口來實(shí)現(xiàn)。數(shù)據(jù)主端口執(zhí)行兩個(gè)功能:個(gè)功能:1當(dāng)處理器執(zhí)行裝載指令時(shí),從存儲(chǔ)器或外設(shè)中讀數(shù)據(jù)。當(dāng)處理器執(zhí)行裝載指令時(shí),從存儲(chǔ)器或外設(shè)中讀數(shù)據(jù)。2當(dāng)處理器執(zhí)行存儲(chǔ)指令時(shí),將數(shù)據(jù)寫入

41、存儲(chǔ)器或外設(shè)。當(dāng)處理器執(zhí)行存儲(chǔ)指令時(shí),將數(shù)據(jù)寫入存儲(chǔ)器或外設(shè)。數(shù)據(jù)主端口不支持?jǐn)?shù)據(jù)主端口不支持Avalon流水線傳輸。流水線傳輸。同指令主端口一樣同指令主端口一樣Nios II結(jié)構(gòu)支持片內(nèi)高速緩存,改善平均數(shù)據(jù)傳輸結(jié)構(gòu)支持片內(nèi)高速緩存,改善平均數(shù)據(jù)傳輸性能。性能。Nios II結(jié)構(gòu)也支持緊耦合存儲(chǔ)器以實(shí)現(xiàn)低延遲。結(jié)構(gòu)也支持緊耦合存儲(chǔ)器以實(shí)現(xiàn)低延遲。說明:說明:1.數(shù)據(jù)主端口中存儲(chǔ)器流水線延遲被看作等待周期。當(dāng)數(shù)據(jù)主端口連接到零等待存儲(chǔ)器時(shí),裝載和數(shù)據(jù)主端口中存儲(chǔ)器流水線延遲被看作等待周期。當(dāng)數(shù)據(jù)主端口連接到零等待存儲(chǔ)器時(shí),裝載和存儲(chǔ)操作能夠在一個(gè)時(shí)鐘周期內(nèi)完成。存儲(chǔ)操作能夠在一個(gè)時(shí)鐘周期內(nèi)完成

42、。3.8 存儲(chǔ)器及I/O結(jié)構(gòu)指令與數(shù)據(jù)總線指令與數(shù)據(jù)總線指令和數(shù)據(jù)共享的存儲(chǔ)器指令和數(shù)據(jù)共享的存儲(chǔ)器通常,指令和數(shù)據(jù)主端口共享含有指令和數(shù)據(jù)的存儲(chǔ)器。當(dāng)處理器通常,指令和數(shù)據(jù)主端口共享含有指令和數(shù)據(jù)的存儲(chǔ)器。當(dāng)處理器內(nèi)核使用獨(dú)立的指令總線和數(shù)據(jù)總線時(shí),整個(gè)內(nèi)核使用獨(dú)立的指令總線和數(shù)據(jù)總線時(shí),整個(gè)Nios II處理器系統(tǒng)對(duì)外呈處理器系統(tǒng)對(duì)外呈現(xiàn)單一的、共用的指令現(xiàn)單一的、共用的指令/數(shù)據(jù)總線。數(shù)據(jù)總線。說明:說明:1.數(shù)據(jù)和指令主端口從來不會(huì)出現(xiàn)一個(gè)端口使另一個(gè)端口處于等待狀態(tài)的停滯狀況。為獲得最高性數(shù)據(jù)和指令主端口從來不會(huì)出現(xiàn)一個(gè)端口使另一個(gè)端口處于等待狀態(tài)的停滯狀況。為獲得最高性能,對(duì)于指令

43、和數(shù)據(jù)主端口共享的任何存儲(chǔ)器,數(shù)據(jù)主端口被指定為更高的優(yōu)先級(jí)。能,對(duì)于指令和數(shù)據(jù)主端口共享的任何存儲(chǔ)器,數(shù)據(jù)主端口被指定為更高的優(yōu)先級(jí)。3.8 存儲(chǔ)器及I/O結(jié)構(gòu)高速緩存高速緩存(Cache)Nios II結(jié)構(gòu)的指令主端口和數(shù)據(jù)主端口都支持高速緩存。結(jié)構(gòu)的指令主端口和數(shù)據(jù)主端口都支持高速緩存。作為作為NiosII處理器組成部分的高速緩存在處理器組成部分的高速緩存在SOPC Builder中是可選中是可選的,這取決于用戶對(duì)系統(tǒng)存儲(chǔ)性能以及的,這取決于用戶對(duì)系統(tǒng)存儲(chǔ)性能以及FPGA資源的使用要求。包含高資源的使用要求。包含高速緩存不會(huì)影響程序的功能,但會(huì)影響處理器取指和讀速緩存不會(huì)影響程序的功能,

44、但會(huì)影響處理器取指和讀/寫數(shù)據(jù)時(shí)的速寫數(shù)據(jù)時(shí)的速度。度。高速緩存改善性能的功效是基于以下前提的:高速緩存改善性能的功效是基于以下前提的:1常規(guī)存儲(chǔ)器位于片外,訪問時(shí)間比片內(nèi)存儲(chǔ)器要長(zhǎng)。常規(guī)存儲(chǔ)器位于片外,訪問時(shí)間比片內(nèi)存儲(chǔ)器要長(zhǎng)。2循環(huán)執(zhí)行的、最大的,關(guān)鍵性能的指令序列長(zhǎng)度小于指令高速循環(huán)執(zhí)行的、最大的,關(guān)鍵性能的指令序列長(zhǎng)度小于指令高速緩存。緩存。3關(guān)鍵性能數(shù)據(jù)的最大模塊小于數(shù)據(jù)高速緩存。關(guān)鍵性能數(shù)據(jù)的最大模塊小于數(shù)據(jù)高速緩存。3.8 存儲(chǔ)器及I/O結(jié)構(gòu)高速緩存高速緩存(Cache)例如在以下的情況下高速緩存將無法改善執(zhí)行速度:例如在以下的情況下高速緩存將無法改善執(zhí)行速度:Nios II處理

45、器系統(tǒng)只含有快速的片內(nèi)存儲(chǔ)器處理器系統(tǒng)只含有快速的片內(nèi)存儲(chǔ)器(即從不訪問較慢的片即從不訪問較慢的片外存儲(chǔ)器外存儲(chǔ)器)。程序的關(guān)鍵循環(huán)是程序的關(guān)鍵循環(huán)是2KB,而指令高速緩存的大小為,而指令高速緩存的大小為1KB。1.由于性能上的原因,應(yīng)用程序始終要求某些數(shù)據(jù)或部分代碼存放在由于性能上的原因,應(yīng)用程序始終要求某些數(shù)據(jù)或部分代碼存放在高速緩存中,那么緊耦合存儲(chǔ)器可能會(huì)提供一個(gè)更合適的解決方案。高速緩存中,那么緊耦合存儲(chǔ)器可能會(huì)提供一個(gè)更合適的解決方案。注意:注意:Cache雖然改善了系統(tǒng)的整體性能,但使程序的執(zhí)行時(shí)間變得不可預(yù)測(cè)。對(duì)于實(shí)時(shí)系統(tǒng)來說這一點(diǎn)至關(guān)重要。3.8 存儲(chǔ)器及I/O結(jié)構(gòu)緊耦合存儲(chǔ)

46、器緊耦合存儲(chǔ)器(TCM)緊耦合存儲(chǔ)器緊耦合存儲(chǔ)器(TCM):緊耦合:緊耦合存儲(chǔ)器是一種緊挨著內(nèi)核的快速存儲(chǔ)器是一種緊挨著內(nèi)核的快速SRAM,它不僅能改善系統(tǒng)性能,它不僅能改善系統(tǒng)性能,而且保證了裝載和存儲(chǔ)指令或數(shù)而且保證了裝載和存儲(chǔ)指令或數(shù)據(jù)的時(shí)間是確定的。緊耦合存儲(chǔ)據(jù)的時(shí)間是確定的。緊耦合存儲(chǔ)器可向?qū)π阅芤髧?yán)格的應(yīng)用提器可向?qū)π阅芤髧?yán)格的應(yīng)用提供低延遲訪問。供低延遲訪問。Nios II 存儲(chǔ)器和存儲(chǔ)器和I/O結(jié)構(gòu)結(jié)構(gòu)緊耦合指令緊耦合指令存儲(chǔ)器存儲(chǔ)器緊耦合指令緊耦合指令存儲(chǔ)器存儲(chǔ)器3.8 存儲(chǔ)器及存儲(chǔ)器及I/O結(jié)構(gòu)結(jié)構(gòu)緊耦合存儲(chǔ)器緊耦合存儲(chǔ)器(TCM)與高速緩存相比具有的優(yōu)點(diǎn):與高速緩存相

47、比具有的優(yōu)點(diǎn):1性能類似于高速緩存;性能類似于高速緩存;2軟件能夠保證將關(guān)鍵性能的代軟件能夠保證將關(guān)鍵性能的代碼或數(shù)據(jù)存放在緊耦合存儲(chǔ)器中;碼或數(shù)據(jù)存放在緊耦合存儲(chǔ)器中;3代碼執(zhí)行的確定性代碼執(zhí)行的確定性裝載和裝載和存儲(chǔ)指令或數(shù)據(jù)的時(shí)間是可預(yù)測(cè)的。存儲(chǔ)指令或數(shù)據(jù)的時(shí)間是可預(yù)測(cè)的。Nios II 存儲(chǔ)器和存儲(chǔ)器和I/O結(jié)構(gòu)結(jié)構(gòu)緊耦合指令緊耦合指令存儲(chǔ)器存儲(chǔ)器緊耦合指令緊耦合指令存儲(chǔ)器存儲(chǔ)器3.8 存儲(chǔ)器及I/O結(jié)構(gòu)緊耦合存儲(chǔ)器介紹緊耦合存儲(chǔ)器介紹實(shí)際上,緊耦合存儲(chǔ)器是實(shí)際上,緊耦合存儲(chǔ)器是Nios II處理器內(nèi)核上的一個(gè)獨(dú)立的主端口,處理器內(nèi)核上的一個(gè)獨(dú)立的主端口,與指令或數(shù)據(jù)主端口類似。與指令

48、或數(shù)據(jù)主端口類似。Nios II結(jié)構(gòu)指令和數(shù)據(jù)訪問都支持緊耦合存儲(chǔ)器。結(jié)構(gòu)指令和數(shù)據(jù)訪問都支持緊耦合存儲(chǔ)器。Nios II內(nèi)核可以不包含緊耦合存儲(chǔ)器,也可以包含一個(gè)或多個(gè)緊耦內(nèi)核可以不包含緊耦合存儲(chǔ)器,也可以包含一個(gè)或多個(gè)緊耦合存儲(chǔ)器。合存儲(chǔ)器。每個(gè)緊耦合存儲(chǔ)器端口直接與具有固定的低延遲的存儲(chǔ)器相連,該每個(gè)緊耦合存儲(chǔ)器端口直接與具有固定的低延遲的存儲(chǔ)器相連,該存儲(chǔ)器在存儲(chǔ)器在Nios II內(nèi)核的外部,通常使用內(nèi)核的外部,通常使用FPGA片內(nèi)存儲(chǔ)器。片內(nèi)存儲(chǔ)器。3.8 存儲(chǔ)器及I/O結(jié)構(gòu)地址映射地址映射在在Nios II處理器系統(tǒng)中,存儲(chǔ)器和外設(shè)的地址映射是與設(shè)計(jì)相關(guān)的,處理器系統(tǒng)中,存儲(chǔ)器和外設(shè)的地址映射是與設(shè)計(jì)相關(guān)的,由設(shè)計(jì)人員在系統(tǒng)生成時(shí)指定。這里要特別提到的是由設(shè)計(jì)人員在系統(tǒng)生成時(shí)指定。這里要特別提到的是3個(gè)個(gè)CPU相關(guān)的地相關(guān)的地址:復(fù)位地址、異常地址以及斷點(diǎn)處理(址:復(fù)位地址、異常地址以及斷點(diǎn)處理(break handler)程序的地址。)程序的地址。程序員通過使用宏和驅(qū)動(dòng)程序來訪問存儲(chǔ)器和外設(shè),靈活的地址映射并程序員通過使用宏和驅(qū)動(dòng)程序來訪問存儲(chǔ)器和外設(shè),靈活的地址映射并不會(huì)影響應(yīng)用程序開發(fā)人員。不會(huì)影響應(yīng)用程序開發(fā)人員。第3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論