• 沒有找到結果。

處理器模式

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 設備的實體位址。

參考文獻

相關文件

//Structural description of design example //See block diagram

… 點選 LinkButton 控制 項的 (DataBindings) 屬性,在自訂繫結

把作法用乘法算式記下來,並把算式中

(香港會計準則第2條 ‐ 存貨) 邊際成本計算法

求出 Select Case 運算式之值,並逐一與 Case 運算式值串列比對,若符合則執行該 Case 之後的敘述區段。1. 如果所有的

[r]

本論文之目的,便是以 The Up-to-date Patterns Mining 演算法為基礎以及導 入 WDPA 演算法的平行分散技術,藉由 WDPA

經由上一步驟新增、刪除高頻項目後得到一個 DFPBT