【正文】
potential unimplemented instructions, refer to the Programming Model chapter of the Nios II Processor Reference Handbook. Custom Instructions The Nios II architecture supports userdefined custom instructions. The Nios II ALU connects directly to custom instruction logic,enabling you to implement operations in hardware that are accessed and used exactly like native instructions. For more information, refer to the Nios II Custom Instruction User Guide and “ Custom Instruction Tab” in the Instantiating the Nios II Processor chapter of the Nios II Processor Reference Handbook. FloatingPoint Instructions The Nios II architecture supports single precision floatingpoint instructions as specified by the IEEE Std 7541985. The basic set of floatingpoint custom instructions includes single precision floatingpoint addition, subtraction, and multiplication. Floatingpoint division is available as an extension to the basic instruction set. These floatingpoint instructions are implemented as custom instructions. Table 2– 2lists a detailed description of the conformance to IEEE 7541985. You can add floatingpoint custom instructions to any Nios II processor design. The floatingpoint division hardware requires more resources than the other instructions. The Floating Point Hardware parameter editor allows you to omit the floatingpoint division hardware for cases in which code running on your hardware design does not make heavy use of floatingpoint division. When you omit the floatingpoint divide instruction, the Nios II piler implements floatingpoint division in software. In Qsys, the Floating Point Hardware ponent under Custom Instruction Modules on the Component Library tab contains the floatingpoint custom instructions. To add floatingpoint custom instructions to your Nios II processor core in SOPC Builder, refer to “ Custom Instruction Tab” in the Instantiating the Nios II Processor chapter of the Nios II Processor Reference Handbook. The Nios II floatingpointcustom instructions are based on the Altera174。因此,當(dāng)數(shù)據(jù)幀在實時存儲時,執(zhí)行和跟蹤數(shù)據(jù)都不能保證正好與每個同步等。此外,執(zhí)行跟蹤數(shù)據(jù)以壓縮格式被存儲,使得一個幀代表以上的一個指令。 JTAG 調(diào)試模塊可以篩選數(shù)據(jù)總線跟蹤實時捕捉以下內(nèi)容: ■負(fù)載地址 ■存儲地址 ■雙方加載和存儲地址 ■負(fù)載數(shù)據(jù) ■加載地址和數(shù)據(jù) ■存儲地址和數(shù)據(jù) ■地址和數(shù)據(jù)的加載和存儲 ■在觸發(fā)事件的數(shù)據(jù)總線單一樣本 跟蹤幀 幀是一個單位的內(nèi)存分配,收集跟蹤數(shù)據(jù)。 有關(guān)詳細(xì)信息,請搜索關(guān)于 MIPS 科技網(wǎng)站( )和勞特巴赫有限公司網(wǎng)站( )的“ Nios II”。 (此內(nèi)存是只能通過 JTAG連接。 ■啟動和停止捕獲跟蹤,實時,基于觸發(fā)器。 跟蹤捕獲 跟蹤捕獲是指能夠記錄的指令, 由指令執(zhí)行的因為它在實時執(zhí)行代碼的處理器。 目標(biāo)觸發(fā)器 JTAG 調(diào)試模塊提供了兩個級別的觸發(fā)功能,稱為目標(biāo)觸發(fā)器。 硬件斷點使用 JTAG 調(diào)試模塊的硬件實現(xiàn)觸發(fā)功能。當(dāng)處理器執(zhí)行的指令休息,控制轉(zhuǎn)移到 JTAG 調(diào)試模塊。 下載并執(zhí)行軟件 下載軟件是指為可執(zhí)行代碼和數(shù)據(jù)下載到的能力通過 JTAG 連接處理器的 內(nèi)存。 JTAG 目標(biāo)連接 該 JTAG 目標(biāo)連接提供到通過連接到處理器的能力標(biāo)準(zhǔn)的 JTAG 引腳上的 Altera 的FPGA 中。在 Nios II 軟性質(zhì)處理器可以讓你的系統(tǒng)在開發(fā)中使用一個全功能的調(diào)試調(diào)試核心,后來刪除了調(diào)試功能,以節(jié)省邏輯資源。調(diào)試模塊增益控制處理器無論是通過產(chǎn)生一個硬件中斷信號,或通過寫中斷指令到程序的內(nèi)存來執(zhí)行。在處理器方面,調(diào)試模塊連接到信號內(nèi)的處理器核心。 Nios II 的系統(tǒng)可以包括任一 MPU 或 MMU,但不能同時包含一個微控制器和 MMU 在同一個 Nios II 處理器內(nèi)核。 你可以選擇包括主控板在內(nèi)的硬件系統(tǒng),來實例化您的 Nios II 硬件系統(tǒng)。 有關(guān)用戶要了解 Nios II 的 MMU 的完整詳細(xì)信息,請參閱 Nios II 處理器參考手冊的實例篇章。存儲器管理單元 可選的 Nios II 的 MMU 提供以下特性和功能: ■虛擬地址到物理地址的映射 ■存儲器保護(hù) ■ 32 位虛擬地址和物理地址,一個 4 GB 的虛擬地址空間映射到高達(dá) 4 GB 的物理內(nèi)存 ■ 4 KB 大小的頁和幀 ■可直接訪問低 512 MB 的物理地址空間 ■硬件轉(zhuǎn)換后備緩沖器( TLB 的),加速地址轉(zhuǎn)換 ■獨立的 TLB 指令和數(shù)據(jù)訪問 ■讀,寫和執(zhí)行每頁控制權(quán)限 ■每頁默認(rèn)緩存行為控制 ■ TLB 的作為 n 路組相聯(lián)高速緩存軟件的頁表 ■ TLB 的大小和結(jié)合在 Nios II 處理器參數(shù)配置編輯 ■頁表(或等效的數(shù)據(jù)結(jié)構(gòu))格式由系統(tǒng)決定軟件 ■由系統(tǒng)軟件確定 TLB 項替換策略 ■由系統(tǒng)軟件確定 TLB 項寫入策略 有關(guān) MMU 實現(xiàn)的更多信息,請參 Nios II 處理器參考手冊編程型號的篇章。 地址地圖 地址映射為存儲器和外設(shè)的 Nios II處理器系統(tǒng)設(shè)計依賴。同樣的,計算密集的數(shù)字信號處理( DSP),應(yīng)用程序可以將數(shù)據(jù)緩沖區(qū)入緊耦合存儲器的最快可能的數(shù)據(jù)訪問。 使用常規(guī)的加載和存儲指令的軟件訪問緊耦合存儲器。每個緊密耦合存儲器端口直接連接到只有一個內(nèi)存有保障的低,固定延遲。 緊耦合存儲器 緊耦合存儲器提供保證的低延時內(nèi)存訪問性能關(guān)鍵型應(yīng)用程序。 31 位旁路緩存方法 數(shù)據(jù)主端口上的 31 位旁路緩存方法使該地址的 31 位作為標(biāo)記,指示是否處理器應(yīng)該從數(shù)據(jù)高速緩存,或旁路轉(zhuǎn)移到它。在事實上,指令高速緩沖存儲器可能在這種情況下降低性能。包含高速緩沖存儲器的,不影響程序的功能,但它確實會影響速度,該處理器取指令和讀取 /寫入數(shù)據(jù)。 可配置的高速緩存 高速緩沖存儲器是可選的。高速緩沖存儲器可以提高使用速度慢的 Nios II 處理器系統(tǒng)的平均內(nèi)存訪問時間片外存儲器,例如 SDRAM 用于程序和數(shù)據(jù)的存儲。 該數(shù)據(jù)和指令主端口不會導(dǎo)致一個僵局狀態(tài),其中一個端口抑制其他端口。請參閱第 2 頁 14 因為細(xì)節(jié)“緊耦合存儲器”。裝載和存儲操作可以在一個單一時鐘周期內(nèi)完成,數(shù)據(jù)主端口連接到內(nèi)存的零等待狀態(tài)。 數(shù)據(jù)主端口 Nios II 的數(shù)據(jù)總線支持一個 32 位的 AvalonMM主端口。 Nios II 架構(gòu)支持芯片以較慢速度訪問 內(nèi)存來提高指令端口提取指令的性能。 指令主端口始終獲取 32 位的數(shù)據(jù)。 指令主端口是一個流水線的 Avalon MM 主端口 。通常情況下, Nios II 處理器系統(tǒng)包含快速片上的混合存儲器和較慢的片外存儲器。該數(shù)據(jù)主端口連接到內(nèi)存和外圍元件,而指令主端口只連接到內(nèi)存組件。 Nios II 的核心采用以下提供的指令對內(nèi)存和 I/ O 進(jìn)行訪問: ■主端口指令, Avalon 內(nèi)存映射( AvalonMM)主端口通過系統(tǒng)互聯(lián)架構(gòu)連接到指令存儲器 ■緩存指令,將高速緩沖存儲器的內(nèi)容存儲到 Nios II 內(nèi)核 ■數(shù)據(jù)存儲器中的數(shù)據(jù)主端口, AvalonMM 主端口和系統(tǒng)互聯(lián)架構(gòu)外設(shè)連接 ■高速數(shù)據(jù)緩存存儲器內(nèi)部的數(shù)據(jù)存儲到 Nios II 的核心 ■緊耦合指令或數(shù)據(jù)存儲器端口的接口快速將 Nios II 內(nèi)核外的數(shù)據(jù)存儲到芯片內(nèi) Nios II 的架構(gòu)可處理硬件程序的細(xì)節(jié),所以程序員可以開發(fā) Nios II 的應(yīng)用程序,來實現(xiàn)具體的知識硬件。 內(nèi)存和 I / O 組織 本節(jié)介紹了 Nios II 內(nèi)存的硬件細(xì)節(jié), I / O 的組織。當(dāng)且僅當(dāng)下列所有條件為真時,硬件中斷產(chǎn)生: ■狀態(tài)寄存器的 PIE 位為 1 ■一個中斷請求輸入, IRQn,有效 ■相應(yīng)的 n 位使能寄存器的值為 1 在 SOPC 中, Nios II 處理器內(nèi)核提供中斷向量自定義指令,從而加速中斷向量調(diào)度,以減少 程序的中斷延遲。處理器核心有 32 個電平敏 感的中斷請求( IRQ)輸入, IRQ0 至 IRQ31,提供了獨特的輸入為每個中斷源。早期版本有 ERET 指令與映射寄存器不兼容的實現(xiàn)功能。 Nios II 處理器用于確定中斷程序的中斷級。 EIC 自動選擇并連接到 Nios II 處理器,與中斷處理程序的地址和寄存器組選擇信息相連接。 EIC 接口 EIC 接口可以提高硬件中斷的性能,還可以減少程序的中斷延遲。異常地址由在 Qsys 中的 Nios II 處理器參數(shù)指定的編輯器和 SOPC 構(gòu)成。該 EIC 界面,您可以通過添加自定義的中斷控制器來處理一個復(fù)雜的系統(tǒng)。 以獲得關(guān)于 Nios II 處理器的復(fù)位信號更多信息,請參閱 Nios II 處理器參考手冊的“高級功能選項”實例。在這種情況下,如果一個表達(dá)式包含一個 浮點常量,表達(dá)式中的每一項被轉(zhuǎn)換為雙精度。當(dāng) 浮點定制指令不存在,在 Nios II 編譯把浮點常量作為雙精度值。 ■ pragma no_custom_fadds— 強(qiáng)制軟件實現(xiàn)浮點加 ■ pragma no_custom_fsubs— 強(qiáng)制軟件實現(xiàn)的浮點減 ■ pragma no_custom_fmuls— 強(qiáng)制軟件實現(xiàn)的浮點乘 ■ pragma no_custom_fdivs— 強(qiáng)制軟件實現(xiàn)的浮點除 Nios II 的指令集仿真器( ISS)在 Nios II 集成開發(fā)環(huán)境( IDE)不支持自定義指令。如果資源的使用是一個問題,則考慮重新加工您算法來減少浮點運算。 在 Nios II 軟件開發(fā)工具識別的 C 代碼,它利用的優(yōu)勢浮點指令存在于處理器核心。在 Qsys 中,自定義指令的浮點根據(jù)硬件在包含自定義浮點的組件庫中說明?;靖↑c自定義指令包括單精度浮點的加法,減法,乘法和除法,并且可有基本指令集進(jìn)行相關(guān)運算。 自定義指令 Nios II 的架構(gòu)支持用戶自定義指令。沒有硬件支持的指令被稱為未實現(xiàn)的指令。 Nios II 的架構(gòu)允許增加的浮點寄存器。映射寄存器由系統(tǒng) 內(nèi)核操作,并是可見的應(yīng)用程序代碼。狀態(tài)寄存器的 CRS 字段表示該寄存器為正在使用。 寄存器文件 Nios II 的架構(gòu)支持一 個平面寄存器文件,包括 32 個 32 位通用整數(shù)寄存器,以及多達(dá) 32 個 32 位控制寄存器。 ■硬件或軟件仿真實現(xiàn),例如,在控制應(yīng)用程序很少進(jìn)行復(fù)雜的運算,可以在仿真軟件選擇適合的除法指令來實現(xiàn)。實例如下: ■更多的功能,例如,微調(diào)性能,可以增加或降低指令高速緩沖存儲器的量。所有定義的指令集的實現(xiàn)可以參考的 Nios II 處理器參考手冊的相關(guān)章節(jié)。然而,這并不表示任何單元功能都由硬件實施。 Ni