ARM7TMDI

ARM7TMDI

ARM7TDMI主要由三部分構成:調試部分、匯流排分割和ARM7TDMI的處理器核。 CLAMP0101在TDI和TDO之間連接旁路寄存器,輸出信號的值是當前裝入掃描鏈的值 ARM7TDMI的處理器核的框圖如圖2.8所示。

基本信息


是從最早實現了32位地址空間編程模式的ARM6核發展而來的,可穩定地在低於5V的電源電壓下可靠地工作。增加了64位乘法指令(帶M後綴)、支持片上調試(帶D後綴)、Thumb指令集(帶T後綴)和EmbeddedICE片上斷點和觀察點(帶I後綴)。ARM7TDMI是ARM公司最早為業界普遍認可且得到了廣泛應用的核,特別是在手機和PDA應用中。隨著ARM技術的發展,它已是目前最低端的ARM核。
ARM7TDMI處理器區別於其他ARM7處理器的一個重要特徵是其獨有的稱之為Thumb的架構策略。該策略為基本ARM架構的擴展,由36種基於標準32位ARM指令集、但重新採用16位寬度優化編碼的指令格式構成。由於Thumb指令的寬度只為ARM指令的一半,因此能獲得非常高的代碼密度。當Thumb指令被執行時,其16位的操作碼被處理器解碼為等效的32位標準ARM指令,然後ARM處理器核就如同執行32位的標準ARM指令一樣執行16位的Thumb指令。也即是Thumb架構為16位的系統提供了一條獲得32位性能的途徑。 ARM7TDMI內核既能執行32位的ARM指令集,又能執行16位的Thumb指令集,因此允許用戶以子程序段為單位,在同一個地址空間使用Thumb指令集和ARM指令集混合編程,採用這種方式,用戶可以在代碼大小和系統性能上進行權衡,從而為特定的應用系統找到一個最佳的編程解決方案。

其他信息


指令集分為四大類:
1)4類分支指令用於控制程序的執行流程、指令的特權等級可在ARM代碼與Thumb代碼之間進行切換。
2)3類數據處理指令用於操作片上的ALU、桶型移位器和乘法器,以完成在31個32位的通用寄存器之間的高速數據處理。
3)3類載入/存儲指令用於控制在存儲器和寄存器之間的數據傳輸。一類為方便定址進行了優化,另一類用於快速的上下文切換,第三類用於數據交換。
4)3類協處理器指令用於控制外部的協處理器,這些指令以開放統一的方式擴展用於片外功能指令集。
幾乎所有的32位ARM指令都可以條件執行。
ARM7TDMI主要由三部分構成:調試部分、匯流排分割和ARM7TDMI的處理器核。
1.調試部分
調試部分這裡主要說明幾個信號的功能。
SCREG(scan chain register)[3:0]:確定當前掃描鏈的ID編號,即當前使用的是哪一條掃描鏈。
IR(TAP controller instruction register)[3:0]:表明載入到TAP控制器指令寄存器的當前指令。指令寄存器共有4位,在Capture-IR時裝入指令、在Shift-IR時作為TI和TO之間的串列通路、在Update-IR時指令寄存器的值成為當前指令。用於載入到TAP指令寄存器中的指令共10條,如表2.5所示。
表2.5 TAP指令
指 令二進位代碼功 能
EXTEST0000使被選中的掃描鏈進入測試模式,用於內部部件測試
SCAN_N0010在TDI和TDO之間連接掃描鏈路徑選擇寄存器
INTEST1100使被選中的掃描鏈進入測試模式,用於核測試
IDCODE1110在TDI和TDO之間連接設備標識寄存器
BYPASS1111在TDI和TDO之間連接旁路寄存器,掃描鏈進入系統操作模式
CLAMP0101在TDI和TDO之間連接旁路寄存器,輸出信號的值是當前裝入掃描鏈的值
HIGHZ0111在TDI和TDO之間連接旁路寄存器,使相應的信號進入高阻狀態
CLAMPZ1001在TDI和TDO之間連接旁路寄存器,確保測試時非0、1的信號無效
SAMPLE/PRELOAD0011AMR7TDMI中僅可用於產品測試,掃描鏈上未用。在AMR9TDMI中選中的掃描鏈進入正常操作模式
RESTART0100在TDI和TDO之間連接旁路寄存器,從調試狀態重新啟動處理器
TAPSM(TAP controller state machine)[3:0]:表明TAP控制器狀態機的當前狀態。
2. 匯流排分割
ARM7TDMI和存儲器之間的兩種數據匯流排形式——單向匯流排輸入DIN[31:0]、單向匯流排輸出DOUT[31:0]和雙向匯流排D[31:0]。匯流排分割在調試情況下經常用來進行狀態的切換。
3. ARM7TDMI的處理器核
ARM7TDMI的處理器核的框圖如圖2.8所示。我們首先看看它完成的功能和工作過程。對於ARM7的3級流水線工作模式,它實際完成取指、解碼和執行的整個過程。左上部分實際主要完成指令執行,指令執行主要是由算術邏輯單元ALU完成,其上部的通道主要完成數據的供給,並能根據執行指令的不同進行適當的調整,如進行移位等操作。右上部分主要是完成指令解碼和整個處理器邏輯的控制。下邊的兩部分主要分別完成指令和數據的讀取、數據存儲操作。從圖2.8中可以看出指令解碼和控制邏輯同數據通道是分離的,這樣有利於流水線的實現。