• 沒有找到結果。

處理器模式

N/A
N/A
Protected

Academic year: 2022

Share "處理器模式"

Copied!
27
0
0

加載中.... (立即查看全文)

全文

(1)

CH-01 S+core7 的體系結構

主講者:杜勇進

(2)

S+core7 簡介

„ S+core7 微處理器是採用凌陽指令集架構

(Sunplus ISA)的32 位的RISC 處理器,該微 處理器架構支援32 位/16 位混合指令模式以及並 行條件執行(正在申請專利保護)

„ 從而提高了代碼密度、性能,使S+core7 內核得 到了廣泛的應用。在S+core7 微處理器中採用了 AMBA匯流排,為SOC 集成、擴展協同處理器和 用戶介面提供了靈活性,S+core7 使用SJTAG 技 術使程式的測試和除錯更加有效。

(3)

S+core7 微處理器特徵

„ 支援32 位與16 位混合指令模式

„ 支援並行條件執行

„ 提供軟體安全設計

„ 採用哈佛(Harvard)結構,包含I-Cache

(4K)和D-Cache(4K)

„ 採用Fixed-MMU(固定對映模式)

„ 採用AMBA 匯流排規格,可以方便的實現 Soc 集成63 個硬體中斷,2 個軟體中斷,

中斷採用中斷向量採用SJTAG 協定

(4)

資料類型

(5)

處理器模式

1. 用戶模式

‡ 用於執行應用程式或作業系統程式。通常情況下,處理 器均處於用戶模式,直到發生異常,

‡ 處理器切換到核心模式。處理器處於用戶模式時,用戶 不能存取被系統保護的資源。

2. 核心模式

‡ 該模式是作業系統專用的模式。當處理器透過異常進入 核心模式後將一直處於該模式,直到一條從異常中返回 的指令(RTE,Return From Exception)被執行。

3. 除錯模式

‡ 該模式用於用戶除錯階段。在該模式下,用戶程式可以 完全存取用戶模式和核心模式下的暫存器,以及其他一

(6)

內部暫存器

„ 32 個通用暫存器(GPR)

„ 2 個Custom Engine 暫存器(CEH、

CEL)

„ 3 個特殊功能暫存器

‡ Sr0:迴圈計數暫存器(CNT)

‡ Sr1:裝載合併暫存器(LCR)

‡ Sr2:存儲合併暫存器(SCR)

„ 19 個系統控制暫存器

„ 3 個除錯控制暫存器

(7)

S+core7 內核暫存器集

(8)

通用暫存器(GPR)

„ S+core7 處理器有32 個32 位的通用暫存 器(r0~r31)。32 位指令模式下,所有這 些通用暫存器均可以被存取。由於指令編碼 的限制,16 位指令模式下,只有r0~r15 可以被存取。在跳越/分支或鏈接指令中,

r3 暫存器被用作鏈接暫存器,用於保存下 一條指令位址。

(9)

通用暫存器

(10)

Custom Engine 暫存器(CEH/CEL)

„ Custom Engine 暫存器包括CEH 和CEL 兩個暫存器,用來存儲乘法/除法的運算結 果。乘法運算完成後,雙字的運算結果的高 字被放到CEH 暫存器中,低字被放到CEL 暫存器中。除法運算完成後,餘數放到CEH 暫存器中,商放到CEL 暫存器中。

(11)

特殊功能暫存器

„ S+core7 處理器有3 個特殊功能暫存器:

CNT(Sr0)、LCR(Sr1)、SCR(Sr2)。

CNT 暫存器是一個32 位暫存器,可用來作迴圈計 數。當執行特定的分支指令時,計數減一。例如,

執行bcnz 分支指令時,如果CNT 暫存器中的值不 為零,CNT 暫存器中的值將減1,程式跳越到目標 位址;如果CNT 暫存器中的值為零,則bcnz 指令 將被視為nop 指令,CNT 暫存器中的值保持不

變。

„ LCR 暫存器和SCR 暫存器則是用於存取不對齊的 Load 和Store 指令操作的。

(12)

控制暫存器

(13)

程式狀態暫存器(PSR)

程式狀態暫存器用於指示協同處理器是否可

用,中斷遮罩位、大小端及保存處理器的模 式等。

(14)

條件暫存器(Condition)

„ 條件暫存器指示當前程式運行是否出現溢 出、進位(借位)、零旗標、負旗標及並行 條件執行旗標(T),分支跳越指令就是根 據這些旗標位元判斷程式的流向。

(15)

異常原因暫存器

„ (ECR - Exception Cause

Register)

„ 異常原因暫存器指示了引起異常的原因。

(16)
(17)

異常向量暫存器

„ (EXCPVec - Exception Vector

Register)

„ 異常向量暫存器保存有所有異常向量位址的 基底位址,b0 位指示向量位址的偏移模式 選擇位,選擇偏移0x04 還是0x10,可以 計算出異常向量的位址。

(18)

Cache 控制暫存器

„ (CCR - Cache Control Register)

„ Cache 控制器控制Cache 的相關操作。

(19)

異常程式計數器

„ (EPC - Exception Program

Counter)

„ 異常程式計數器保存程式發生異常時的 PC 程式指標及發生異常時的指令模式。

(20)

異常

„ S+core7 內核最多可以處理80 個異常,以 S+core7 內核構成的晶片具有強大的中斷 處理能力。

(21)

異常處理流程

„ S+core7 微處理器在每執行一條程式前先判斷是否有重設 請求,如果有重設請求,會初始化程式狀態暫存器

(PSR)、條件暫存器(Condition)、異常向量暫存器

(EXCPvec)、CCR 暫存器以及程式計數暫存器PC;如果 沒有重設請求,會執行下一條指令,如果有異常請求,會將 相關暫存器進行保存後轉入異常程式處理;如果沒有異常請 求,處理器直接判斷是否有重設請求等重複這個過程。

„ 根據異常的優先順序,所有異常均在管線的M 階段

(Memory Stage)被識別處理。在執行異常處理後,執行 RTE 指令可以使程式從異常處理中返回。執行RTE 指令

後,PC 指標將指向EPC 暫存器中保存的位址,且部分PSR 暫存器或條件暫存器的內容將被右移(彈出堆疊),CPU 即從EPC 暫存器保存的位址處執行程式。

(22)

異常優先順序

(23)

緩衝簡介(Cache)

„

S+core77 處理器的主頻最高達到162MHz,而主記憶體操作 用動態記憶體(DRAM),其存儲週期僅為100ns~200ns。

這樣,如果指令和資料都存儲在主記憶體中,主記憶體的速度 將會嚴重制約整個系統的性能。高速緩衝記憶體(Cache)和 寫緩衝區(Write buffers)位於主記憶體和CPU 之間,可以 大大提高存儲系統的性能。Cache 是一塊位址可以改變的高速 的記憶體空間,目的在於加快記憶體存取的速度。將Cache 分 成若干塊,Cache-line 是使用Cache 的最小存儲單元。當 CPU 讀取資料或者指令時,如果當前cache line 中沒有保存 這些資料,cache line 會將這些資料載入。如果在cache line 載入其他位址的資料之前,CPU存取相同的資料,那麼cache 可以提供記憶體存取。S+core7 處理器支援2 種獨立的

Cache,指令Cache(I-Cache)和資料Cache(D-

Cache)。這種獨立的Cache 結構可使指令和資料同時得到處 理。而I-Cache 和D-Cache 均是使用虛擬位址來索引的

(virtual indexed),用實體位址來標識的(physically tagged)

(24)

指令Cache

„

I-Cache 特性:

‡

2 路組相聯的Cache 結構

‡

Cache 的大小是4K bytes

‡

Cache-line 的大小是4Words

‡

採用讀操作分配策略

‡

提供使一個Cache-line 無效的命令(虛擬位址模式下)

‡

提供使整個Cache 內容無效的命令(虛擬位址模式下)

‡

提供預取一個Cache-line 的命令(虛擬位址模式下)

‡

提供預取和“Lock"一個Cache-line 的命令(虛擬位址模式 下)

‡

在內核和I-Cache 控制器之間有指令預取請求匯流排和I- Cache 請求匯流排

‡

取指操作時提供精確匯流排錯誤異常(precise bus error exception)處理器內核可以拒絕I-Cache 設備的當前和前一 指令請求

(25)

資料Cache

„ 2 路組相聯的Cache 結構

„ 4K bytes 的Cache 大小

„ 4 Words 的Cache line 大小

„ 讀操作分配策略

„ 提供使Cache line 無效的命令

„ 提供預取Cache line 的命令

„ 提供預取並鎖定Cache line 的命令

„ Load 操作時提供精確的匯流排異常;若寫緩衝器 是禁用的,Store 操作時也提供精確的匯流排異常

„ 若寫緩衝器是允許的,Store 操作時則提供不精確

(26)

LIM-Local Instruction Memory

„ LIM(指令記憶體)系統包括位於I-Cache 控制器中的SRAM(Synchronous

RAM)。SRAM提供了存取存儲塊的快速介 面。用戶可以透過CCR 控制暫存器的Bit2 來使能LIM。注意,LIM 設備被允許並使用 之前,必須正確初始化。S+core7 處理器 提供了可以初始化SRAM 或向SRAM 填充 內容的Cache 指令。

(27)

LDM-Local Data Memory

„ LDM(資料記憶體)系統也包括SRAM

(Synchronous RAM)。SRAM 提供了存取存 儲塊的快速介面。用戶可以透過CCR 控制暫存器 的Bit3 來使能LDM。注意,LDM 設備被允許並使

„ 用之前,必須正確初始化。S+core7 處理器提供 了可以初始化SRAM 或向SRAM 填充內容的

Cache 指令。

„ LDM 的位址範圍可以透過Cache 指令(填充

LDM)來配置,當執行“填充LDM"指令時,D- Cache 控制器可以記錄LDM 設備的實體位址。

參考文獻

相關文件

為了避免輸入的負載效應,訊號在 進入放大器前,先加一個利用運算放大 器 uA741 接成的 buffer。訊號頻率用 100kHz,振幅調小到輸出沒有明顯的 失真(可以用三角波試試)。求出放

放大器基础  理解运算放大器的规范 Jim Karki 运算放大器电路的最坏情况设计 Ron Mancini如何选 择放大器  从众多的放大器中选择:让放大器适合您的应用

S7–200 PLC 有 64 个字节的局部存储器,其中 60 个可以用作暂时存储器或者给子程 序传递参数。如果用梯形图或功能块图编程 , STEP 7-Micro /WIN 32

 間接定址:為一種間接的指定運算,以符號V、Z表 示。一般在目的地暫存器 後附加V、Z作為間接 定址功能。可附加V、Z作為間接定址功能的目的地

陸、結論與建議 一、研究結論 圖 3 和圖 4 即為 Lorenz 方程式教學演示

第三章 系統架構 C3 電路是由一個 Shift Register、Kernel Core 以及 Output Buffer 所組成。 Shift Register 是暫存輸入影像資料的位移暫存器,Kernel Core

將從普及運算(pervasive computing)進入到游牧運算(nomadic computing,又稱為無所不在的運算)

第四章 實驗結果與數據探討 至於 DSP block 的消耗部分,由於 FCM 硬體電路需要大量的乘法運算,除了 LEs 可用來實現乘法器外,我們還可以使用 FPGA