版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)字信號(hào)處理和DSP系統(tǒng)
實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)的發(fā)展
數(shù)字信號(hào)處理器的特點(diǎn)
德州儀器公司的DSP產(chǎn)品
DSP芯片的選擇
DSP應(yīng)用系統(tǒng)設(shè)計(jì)流程
典型實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)的基本部件
抗混疊濾波器(Anti-aliasing
filter)
模數(shù)轉(zhuǎn)換器(Analog-to-Digital
Converter,ADC)
數(shù)字信號(hào)處理
數(shù)模轉(zhuǎn)換器(Digital-to-Analog
Converter,DAC)
抗鏡像濾波器(Anti-image
filter)典型實(shí)時(shí)數(shù)字信號(hào)處理系統(tǒng)框圖
利用X86處理器完成實(shí)時(shí)數(shù)字信號(hào)處理
選擇范圍較寬
主板及外設(shè)資源豐富
多種操作系統(tǒng)可供選擇
開發(fā)、調(diào)試較為方便
數(shù)字信號(hào)處理能力不強(qiáng)
硬件組成較為復(fù)雜
系統(tǒng)體積、重量較大,功耗較高
抗環(huán)境影響能力較弱實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)的發(fā)展優(yōu)點(diǎn)缺點(diǎn)
利用通用微處理器完成實(shí)時(shí)數(shù)字信號(hào)處理
可選范圍廣
硬件組成簡單系統(tǒng)
功耗低,適應(yīng)環(huán)境能力強(qiáng)
信號(hào)處理的效率較低
內(nèi)部DMA通道較少
利用可編程邏輯陣列(FPGA)進(jìn)行實(shí)時(shí)數(shù)字信號(hào)處理
適合高速信號(hào)處理
具有專用數(shù)字信號(hào)處理結(jié)構(gòu)
開發(fā)需要較深的硬件基礎(chǔ)
調(diào)試?yán)щy
利用數(shù)字信號(hào)處理器實(shí)時(shí)實(shí)現(xiàn)數(shù)字信號(hào)處理優(yōu)點(diǎn)缺點(diǎn)優(yōu)點(diǎn)缺點(diǎn)數(shù)字信號(hào)處理器的特點(diǎn)
目前DSP系統(tǒng)的主要應(yīng)用
基本信號(hào)處理—濾波器、FFT、窗函數(shù)等
通信—調(diào)制解調(diào)、數(shù)據(jù)加密、多路復(fù)用等
語音—語音編碼、合成、識(shí)別、增強(qiáng)等
圖形圖像—圖像壓縮、機(jī)器人視覺等
軍事—雷達(dá)信號(hào)處理、導(dǎo)彈制導(dǎo)等
儀器儀表—頻譜分析、鎖相環(huán)等
控制—自動(dòng)駕駛、磁盤控制等
醫(yī)療—助聽、超聲設(shè)備、患者監(jiān)護(hù)等
家用電器—智能玩具、數(shù)字電話、數(shù)字電視等存儲(chǔ)器結(jié)構(gòu)
結(jié)構(gòu)分為兩大類:
馮▲諾依曼結(jié)構(gòu)
哈佛結(jié)構(gòu)
DSP采用了程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空間分開的哈佛結(jié)構(gòu)和多套地址、數(shù)據(jù)總線雙總線存儲(chǔ)器結(jié)構(gòu)流水線
流水線結(jié)構(gòu)將指令的執(zhí)行分解為取指、譯碼、取操作數(shù)和執(zhí)行等幾個(gè)階段
TMS320C54xx
DSP采用6級(jí)流水線
TMS320C66xx
DSP采用16級(jí)流水線
TMS320C55xx
DSP的流水線分為
指令流水線
執(zhí)行流水線
硬件乘法累加單元
零開銷循環(huán)
指循環(huán)計(jì)數(shù)、條件轉(zhuǎn)移等循環(huán)機(jī)制由專門硬件控制,而處理器不用花費(fèi)任何時(shí)間
特殊的尋址方式
DSP支持循環(huán)尋址和位倒序?qū)ぶ?/p>
高效的特殊指令
FIRSADD指令——對(duì)稱結(jié)構(gòu)FIR濾波算法
和LMS指令——LMS算法
豐富的片內(nèi)外設(shè)德州儀器公司的DSP產(chǎn)品
DSP器件可以分為三類
工業(yè)控制領(lǐng)域
低成本嵌入式應(yīng)用系統(tǒng)
需要用復(fù)雜算法對(duì)大量數(shù)據(jù)進(jìn)行處理的應(yīng)用
德州儀器公司的三代DSP產(chǎn)品
TMS320C1x
TMS320C2x、3x、4x
TMS320C5x
德州儀器公司的現(xiàn)在DSP產(chǎn)品
C24x系列和C28x系列
主要用于電機(jī)控制領(lǐng)域
C62x系列和C64x系列
采用了增強(qiáng)型超長指令字結(jié)構(gòu),改進(jìn)了流水線結(jié)構(gòu),支持32位或64位寬度存儲(chǔ)器訪問,最高處理能力已經(jīng)達(dá)到9600MIPS
C67x系列和C33
浮點(diǎn)數(shù)字信號(hào)處理器系列
C54x系列和C55x系列
低功耗16位定點(diǎn)數(shù)字信號(hào)處理器
C66x系列DSP
定點(diǎn)與浮點(diǎn)結(jié)合的多核數(shù)字信號(hào)處理器DSP芯片的選擇
運(yùn)算速度
指令周期、MIPS、MOPS、MFLOPS、BOPS、MAC時(shí)間、FFT執(zhí)行時(shí)間
算法格式和數(shù)據(jù)寬度
浮點(diǎn)DSP的數(shù)據(jù)寬度一般為32位
定點(diǎn)DSP的數(shù)據(jù)寬度可以為16位、20位、24位或32位
存儲(chǔ)器
Flash存儲(chǔ)器、RAM存儲(chǔ)器
功耗
低工作電壓、“休眠”或“空閑”模式、可編程時(shí)鐘分頻器、外圍控制
開發(fā)工具DSP應(yīng)用系統(tǒng)設(shè)計(jì)流程
確定系統(tǒng)性能指標(biāo)
核心算法模擬和驗(yàn)證
選擇DSP芯片及其它系統(tǒng)組件
硬件設(shè)計(jì)和調(diào)試
軟件設(shè)計(jì)和測試
系統(tǒng)測試、集成TMS320C55x的硬件結(jié)構(gòu)
TMS320C55x
DSP的基本結(jié)構(gòu)
TMS320VC5509A的主要特性
TMS320C55x存儲(chǔ)空間結(jié)構(gòu)C55x與C54x的比較內(nèi)容C54xC55x乘法累加器(MAC)12累加器(ACC)24讀總線23寫總線12地址總線46指令字長16位8/16/24/32/40/48位數(shù)據(jù)字長16位16位算術(shù)邏輯單元(ALU)1(40位)1(40位)1(16位)輔助寄存器字長2字節(jié)(16位)3字節(jié)(24位)輔助寄存器88存儲(chǔ)空間獨(dú)立的程序/數(shù)據(jù)空間統(tǒng)一的程序/數(shù)據(jù)空間數(shù)據(jù)寄存器04C55x的特征及優(yōu)點(diǎn)特征優(yōu)點(diǎn)一個(gè)32位x
16位指令緩沖隊(duì)列緩沖變長指令并完成有效的塊重復(fù)操作兩個(gè)17位x17位的乘法累加器在一個(gè)單周期執(zhí)行雙乘法累加操作一個(gè)40位算術(shù)邏輯單元(AL
U)實(shí)現(xiàn)高精度算術(shù)和邏輯操作一個(gè)40位桶形移位寄存器能夠?qū)⒁粋€(gè)40位的計(jì)算結(jié)果最高向左移31位或向右移32位一個(gè)16位算術(shù)邏輯單元(AL
U)對(duì)主AL
U并行完成簡單的算術(shù)操作4個(gè)40位的累加器保留計(jì)算結(jié)果,減少對(duì)存儲(chǔ)單元的訪問12條獨(dú)立總線,其中包括3條讀數(shù)據(jù)總線2條寫數(shù)據(jù)總線5條數(shù)據(jù)地址總線1條讀程序總線1條程序地址總線為各種計(jì)算單元并行地提供將要處理的指令和操作數(shù)——利用C55x的并行機(jī)制的優(yōu)點(diǎn)用戶可配置IDL
E域改進(jìn)了低功耗電源管理的靈活性C55x的CPU體系結(jié)構(gòu)TMS320C55x
CPU結(jié)構(gòu)圖指令緩沖單元(I)指令緩沖單元結(jié)構(gòu)圖程序流程單元(P)
P單元中使用的寄存器分為5種類型
程序流寄存器
塊重復(fù)寄存器
單重復(fù)寄存器
中斷寄存器
狀態(tài)寄存器地址流程單元(A)
地址流程單元包括
數(shù)據(jù)地址產(chǎn)生電路
能夠接收來自I單元的立即數(shù)和來自A單元的寄存器產(chǎn)生讀取數(shù)據(jù)空間的地址
算術(shù)邏輯電路
寄存器組構(gòu)成
A單元包括的寄存器類型
數(shù)據(jù)頁寄存器
指針
循環(huán)緩沖寄存器
臨時(shí)寄存器數(shù)據(jù)計(jì)算單元(D)
由移位器、算術(shù)邏輯電路、乘法累加器和寄存器組構(gòu)成指令流水線
C55x的指令流水線包括兩個(gè)階段:
取流水線
指執(zhí)行流水線流水線節(jié)拍內(nèi)容D從指令緩沖隊(duì)列中讀6個(gè)字節(jié)的指令對(duì)一個(gè)指令對(duì)或一個(gè)單指令進(jìn)行解碼給對(duì)應(yīng)的CPU功能單元分配指令讀取STx_55種與數(shù)據(jù)地址產(chǎn)生相關(guān)的位ST1_55(CPL)
ST2_55(ARnLC)ST2_55(ARMS)
ST2_55(CDPLC)AD讀/修改與數(shù)據(jù)地址產(chǎn)生有關(guān)的寄存器例如:藝*
ARx+(T0)中的ARx和T0藝B
K03(如果AR2LC=1)
藝S
P
(pushes和pops過程中)藝S
SP,在32位棧模式中與對(duì)SP的操作一致在A單元的ALU中完成操作,例如:藝使用AADD指令進(jìn)行算術(shù)運(yùn)算藝用S
WAP指令交換A單元中的寄存器藝向A單元的寄存器寫入常量(B
Kxx,BSAxx,BRCx,CSR,等)在條件分支指令中ARx如果不等于0,ARx-1AC1在存儲(chǔ)器讀操作中,在相應(yīng)的CPU地址總線上傳送地址AC2允許存儲(chǔ)器對(duì)請(qǐng)求的響應(yīng)是一個(gè)周期R從存儲(chǔ)器和通過映射方式尋址的寄存器中讀數(shù)據(jù)在R節(jié)拍執(zhí)行D單元的預(yù)取A單元寄存器指令時(shí),讀A單元的寄存器在R節(jié)拍判斷條件指令的條件X讀/修改不通過映射方式尋址的寄存器讀/修改寄存器中的單個(gè)位設(shè)置條件如果指令不是向存儲(chǔ)器中寫,就判斷XCCPART的條件判斷RPTCC指令的條件W向存儲(chǔ)器映射方式尋址的寄存器或I/O空間寫數(shù)據(jù)向存儲(chǔ)器寫數(shù)據(jù),從CPU來看,寫操作在該節(jié)拍完成W+向存儲(chǔ)器寫數(shù)據(jù),從存儲(chǔ)器來看,寫操作在該節(jié)拍完成流水線的工作方式:舉例
AMOV#k23,XARx:在AD節(jié)拍用一個(gè)立即數(shù)對(duì)XARx初始化;
MOV#k,ARx:ARx不是通過存儲(chǔ)器映射方式尋址的,在X節(jié)拍用一個(gè)立即數(shù)初始化ARx;
MOV#k,mmap(ARx):ARx是通過存儲(chǔ)器映射方式尋址的,在
W節(jié)拍用一個(gè)立即數(shù)初始化ARx;
AADD#k,ARx:對(duì)于這個(gè)特殊指令,在AD節(jié)拍用一個(gè)立即數(shù)對(duì)ARx初始化;
MOV#k,*ARx+:在W+節(jié)拍對(duì)存儲(chǔ)器進(jìn)行寫操作;
MOV
*ARx+,AC0:在AD節(jié)拍對(duì)ARx進(jìn)行讀和更新操作,在X節(jié)拍載入AC0;
ADD#k,ARx:在X節(jié)拍的開始時(shí)刻讀ARx,在X節(jié)拍的結(jié)束時(shí)刻修改ARx;
ADD
ACy,ACx:在X節(jié)拍讀/寫ACx和ACy;
MOV
mmap(ARx),ACx:ARx是通過存儲(chǔ)器映射方式尋址的,在R節(jié)拍讀取ARx,在X節(jié)拍修改ACx;
MOV
ARx,ACx:ARx不是通過存儲(chǔ)器映射方式尋址的,在X節(jié)拍讀取ARx,在X節(jié)拍修改ACx;
BSET
CPL:在X節(jié)拍設(shè)置CPL位;
PUSH,
POP,
RET
或AADD#K8,SP:在AD節(jié)拍讀取和修改SP,如果選擇32位棧模式,SSP會(huì)發(fā)生變化;
XCCPART
overflow(ACx):在X節(jié)拍判斷條件,但是不管條件是否滿足,AR1都會(huì)加1;
||
MOV
*AR1+,
AC1
XCCPART
overflow(ACx):在R節(jié)拍判斷條件,滿足條件向存儲(chǔ)器完成寫操作,但是不管條|
|
MOV
AC1,*AR1+
件是否滿足,AR1都會(huì)加1
XCC
overflow(ACx):在AD節(jié)拍判斷條件,只有滿足條件時(shí),AR1加1
||
MOV
*AR1+,
AC1TMS320VC5509A的主要特性
CPU
兩個(gè)乘法累加單元(MAC)
40位的算術(shù)邏輯單元(ALU)和一個(gè)16位的算術(shù)邏輯單元
采用先進(jìn)的多總線結(jié)構(gòu)
存儲(chǔ)器
128K
x
16位的片上RAM【64KB的DARAM和192KB的SARAM】
8M
x
16位的最大可訪問外部尋址空間(同步DRAM)
外部存儲(chǔ)器接口(EMIF)與通用輸入/輸出(GPIO)共用引腳
片上外設(shè)
兩個(gè)20位的定時(shí)器
一個(gè)看門狗定時(shí)器
6通道直接存儲(chǔ)器存取控制器(DMA)
EMIF提供與異步存儲(chǔ)器如EPROM、SRAM及同步DRAM的無縫連接
三個(gè)串口支持最多三個(gè)多通道緩沖串口(McBSP)
增強(qiáng)型主機(jī)接口(EHPI)
可編程鎖相環(huán)(DPLL)時(shí)鐘發(fā)生器
USB全速(12Mbps)從端口
I2C主從接口
一個(gè)實(shí)時(shí)時(shí)鐘TMS320VC5509A的引腳功能
并行總線引腳
并行總線A13~A0直接與外部引腳相連,這14個(gè)引腳完成以下功能:
HPI地址總線(HPI.HA[13:0])
EMIF地址總線(EMIF.A[13:0])
通用輸入/輸出(GPIO.A[13:0])
并行雙向數(shù)據(jù)總線D15~D0可以完成兩個(gè)功能
EMIF數(shù)據(jù)總線(EMIF.D[15:0])
HPI數(shù)據(jù)總線(HPI.HD[15:0])
C0引腳完成兩個(gè)功能:
EMIF異步存儲(chǔ)器讀使能(EMIF.ARE)
通用IO8(GPIO8)
C1引腳完成兩個(gè)功能:
EMIF異步存儲(chǔ)器輸出使能(EMIF.AOE)
HPI中斷輸出(HPI.HINT)
C2引腳完成兩個(gè)功能:
EMIF異步存儲(chǔ)器寫使能(EMIF.AWE
)
HPI讀/寫(HPI.HR/W)
C3引腳完成兩個(gè)功能:
EMIF數(shù)據(jù)準(zhǔn)備輸入(EMIF.ARDY)
HPI準(zhǔn)備輸出(HPI.HRDY)
C4引腳完成兩個(gè)功能:
EMIF對(duì)存儲(chǔ)器空間CE
0的片選(EMIF.CE
0)
通用IO9(GPIO9)
C5引腳完成兩個(gè)功能:
EMIF對(duì)存儲(chǔ)器空間CE
1的片選(EMIF.CE
1)
通用IO10(GPIO10)
C6引腳完成兩個(gè)功能:
EMIF對(duì)存儲(chǔ)器空間CE
2的片選(EMIF.CE
2)
HPI的控制輸入0(HPI.HCNTL0)
C7引腳完成兩個(gè)功能:
EMIF對(duì)存儲(chǔ)器空間CE
3的片選(EMIF.CE
3)
通用IO11(GPIO11)
C8引腳完成兩個(gè)功能:
EMIF字節(jié)使能0控制(EMIF.BE
0)
HPI字節(jié)標(biāo)識(shí)信號(hào)(HPI.HBE
0)
C9引腳完成兩個(gè)功能:
EMIF字節(jié)使能1控制(EMIF.BE
1)
HPI字節(jié)表示信號(hào)(HPI.HBE
1)
C10引腳完成三個(gè)功能:
EMIF選通SDRAM的行(EMIF.SDRAS)
選通HPI地址(HPI.HAS)
通用IO12(GPIO12)
C11引腳完成兩個(gè)功能:
EMIF選通SDRAM的列(EMIF.SDCAS)
HPI片選輸入(HPI.HCS)
C12引腳完成兩個(gè)功能:
E
MIF對(duì)SDRAM的寫使能(E
MIF.SDWE
)
HPI數(shù)據(jù)選通信號(hào)1(HPI.HDS1)
C13引腳完成兩個(gè)功能:
作為SDRAM的A10地址線(E
MIF.SDA10)
通用IO13(GPIO13)
C14引腳完成兩個(gè)功能:
為SDRAM提供存儲(chǔ)器時(shí)鐘(E
MIF.CLKME
M)
HPI數(shù)據(jù)選通信號(hào)2(HPI.HDS2)
中斷引腳和復(fù)位引腳
中斷引腳INT[4:0]作為低電平有效的外部中斷輸入引腳,由中斷使能寄存器(IER)和中斷模式位來屏蔽和區(qū)分優(yōu)先次序
RESET引腳低電平有效。有效時(shí),DSP將終止任務(wù)的執(zhí)行并使程序指針指向FF8000h;變?yōu)楦唠娖綗o效時(shí),DSP從程序存儲(chǔ)器FF8000h的位置開始執(zhí)行
位輸入/輸出信號(hào)引腳
GPIO[7:0]共8個(gè)輸入/輸出線可以單獨(dú)配置成輸入或輸出引腳
XF引腳—外部標(biāo)志
時(shí)鐘信號(hào)引腳
CLKOUT0—時(shí)鐘輸出信號(hào)引腳。
X2/CLKIN—晶振連接到內(nèi)部振蕩器的輸入引腳
X1—內(nèi)部振蕩器連接到外部晶振的輸出引腳
TIN/TOUT0—定時(shí)器0輸入/輸出引腳
RTCINX1—實(shí)時(shí)時(shí)鐘振蕩器的輸入引腳
RTCINX2—實(shí)時(shí)時(shí)鐘振蕩器的輸出引腳
I2C引腳
SDA—I2C(雙向)數(shù)據(jù)線。復(fù)位后,該引腳呈高阻狀態(tài)。
SCL—I2C(雙向)時(shí)鐘引腳。復(fù)位后,該引腳呈高阻狀態(tài)
USB引腳
DP引腳是差分(正)接收/發(fā)送引腳
DN引腳是差分(負(fù))接收/發(fā)送引腳
PU引腳是上拉引腳,用于上拉檢測電阻
A/D引腳
一個(gè)10位的A/D轉(zhuǎn)換器
測試引腳
TCK引腳是IEEE標(biāo)準(zhǔn)1149.1測試時(shí)鐘輸入引腳
TDI引腳是IEEE標(biāo)準(zhǔn)1149.1測試數(shù)據(jù)輸入引腳
TDO引腳是IEEE標(biāo)準(zhǔn)1149.1測試數(shù)據(jù)輸出引腳
TMS引腳是IEEE標(biāo)準(zhǔn)1149.1測試方式選擇引腳
TRST引腳是IEEE標(biāo)準(zhǔn)1149.1測試復(fù)位引腳
EMU0引腳是仿真器中斷0引腳
EMU1/OFF引腳是仿真器中斷1引腳/關(guān)斷所有輸出引腳引腳名稱功能說明CLKR0McBSP0接收時(shí)鐘引腳。該引腳作為串口接收器的串行移位時(shí)鐘引腳DR0McBSP0接收數(shù)據(jù)引腳FSR0McBSP0接收幀同步引腳。FSR0發(fā)出的脈沖初始化在DR0上接收的數(shù)據(jù)CLKX0McBSP0發(fā)送時(shí)鐘引腳。該引腳作為串口發(fā)送器的串行移位時(shí)鐘引腳DX0McBSP0發(fā)送數(shù)據(jù)引腳。在不發(fā)送數(shù)據(jù)、插入RESET信號(hào)和當(dāng)OFF是低電平時(shí),該引腳呈高阻狀態(tài)FSX0McBSP0發(fā)送幀同步引腳。FSX0發(fā)出的脈沖初始化在DR0上發(fā)送的數(shù)據(jù)S
10McBSP1接收時(shí)鐘引腳McBSP1.CLKR或MMC1/SD1命令/響應(yīng)引腳MMC1.CMD/SD1.CMDS
11McBSP1串行數(shù)據(jù)接收引腳McBSP1.DR或SD1數(shù)據(jù)1引腳SD1.DAT1S
12McBSP1接收幀同步引腳McBSP1.FSR或SD1數(shù)據(jù)2引腳SD1.DAT2S
13McBSP1串行數(shù)據(jù)發(fā)送引腳McBSP1.DX或MMC1/SD1串行時(shí)鐘引腳MMC1.CLK/SD1.CLKS
14McBSP1發(fā)送時(shí)鐘引腳McBSP1.CLKX或MMC1/SD1數(shù)據(jù)0引腳MMC1.DAT/SD1.DAT0S
15McBSP1發(fā)送幀同步引腳McBSP1.FSX或SD1數(shù)據(jù)3引腳SD1.DAT3S
20McBSP2接收時(shí)鐘引腳McBSP2.CLKR或MMC1/SD2命令/響應(yīng)引腳MMC2.CMD/SD2.CMDS
21McBSP2串行數(shù)據(jù)接收引腳McBSP2.DR或SD2數(shù)據(jù)1引腳SD2.DAT1S
22McBSP2接收幀同步引腳McBSP2.FSR或SD2數(shù)據(jù)2引腳SD2.DAT2S
23McBSP2串行數(shù)據(jù)發(fā)送引腳McBSP2.DX或MMC1/SD2串行時(shí)鐘引腳MMC2.CLK/SD2.CLKS
24McBSP2發(fā)送時(shí)鐘引腳McBSP2.CLKX或MMC2/SD2數(shù)據(jù)0引腳MMC2.DAT/SD2.DAT0S
25McBSP2發(fā)送幀同步引腳McBSP2.FSX或SD2數(shù)據(jù)3引腳SD2.DAT3
Mc
B
S
P信號(hào)引腳
電源引腳
CVDD是數(shù)字電源,為CPU內(nèi)核提供專用電源。
DVDD是數(shù)字電源,為I/O引腳提供專用電源。
USBVDD是數(shù)字電源,為USB模塊的I/O引腳提供專用電源。
RDVDD是數(shù)字電源,為RTC模塊的I/O引腳提供專用電源。
RCVDD是數(shù)字電源,為RTC模塊提供專用電源。
AVDD是模擬電源,為10位的A/D提供專用電源。
ADVDD,為10位A/D數(shù)字部分提供專用電源。
VSS是數(shù)字地,為I/O和內(nèi)核引腳接地。
AVSS是模擬地,為10位A/D接地。
ADVSS為10位A/D的數(shù)字部分接地。
USBPLLVSS是數(shù)字地,為USB的PLL接地
USBPLLVDD是數(shù)字電源,為USB的PLL提供專用電源。TMS320C55x存儲(chǔ)空間結(jié)構(gòu)
存儲(chǔ)映射
程序空間
當(dāng)CPU讀取指令時(shí),程序空間才被訪問
字節(jié)尋址(24位)
當(dāng)CPU從程序空間讀取指令時(shí),采用字節(jié)尋址,即按字節(jié)分配地址,且地址為24位
程序空間的指令結(jié)構(gòu)
程序空間的邊界對(duì)齊指令長度及地址分配存儲(chǔ)器中的指令
數(shù)據(jù)空間
字尋址(23位)
當(dāng)CPU訪問數(shù)據(jù)空間時(shí),采用字尋址,即為每個(gè)16位的字分配一個(gè)23位寬的地址
數(shù)據(jù)類型
數(shù)據(jù)空間的數(shù)據(jù)結(jié)構(gòu)字節(jié)裝載和字節(jié)存儲(chǔ)指令
I/O空間
55x
DSP的I/O空間與數(shù)據(jù)/程序空間是分開的,采用16位寬的字尋址,即為每個(gè)字分配一個(gè)16位地址,其尋址范圍為64K字TMS320C55x的指令系統(tǒng)
尋址方式
TMS320C55x的指令系統(tǒng)尋址方式
尋址方式是指如何指定指令和操作數(shù)所在存儲(chǔ)空間的地址
C55x
DSP支持三種尋址模式
絕對(duì)尋址模式
直接尋址模式
間接尋址模式絕對(duì)尋址模式
k16絕對(duì)尋址
其操作數(shù)為*abs16(#k16),【k16:16位的無符號(hào)常數(shù)】
將7位的寄存器DPH和k16級(jí)聯(lián)形成一個(gè)23位的地址,用于對(duì)數(shù)據(jù)空間的訪問k16絕對(duì)尋址模式
k23絕對(duì)尋址
操作數(shù)為*(#k23),【k23:23位的無符號(hào)常數(shù)】
I/O絕對(duì)尋址
操作數(shù)是*port(#k16),【k16:16位無符號(hào)常數(shù)】
使用助記符指令,其操作數(shù)是port(#k16)(操作數(shù)前沒有*)k23絕對(duì)尋址模式I/O絕對(duì)尋址直接尋址模式
DP直接尋址
高7位由DPH提供,用來確定主數(shù)據(jù)頁
低16位由兩部分組成:
DP
7位偏移量(Doffset)DP直接尋址模式
SP直接尋址
SPH確定高7位地址
16位地址由SP和7位偏移量決定,偏移量范圍是0~127
由SPH和SP構(gòu)成了擴(kuò)展數(shù)據(jù)堆棧指針XSP
寄存器位尋址
操作數(shù)是@
bitoffset
只有寄存器的位測試、置位、清零、取反指令支持這種尋址模式
PDP直接尋址PDP直接尋址模式間接尋址模式
AR間接尋址模式
通過一個(gè)輔助寄存器ARn(n=0,1,2,3,4,5,6,7)訪問數(shù)據(jù)空間
ST2-55的ARMS位決定AR間接尋址的操作類型
ARMS=0,DSP模式:CPU提供DSP增強(qiáng)應(yīng)用的高效執(zhí)行功能
ARMS=1,控制模式:CPU能夠優(yōu)化代碼的長度ARDSP間接尋址模式
雙AR間接尋址模式AR
通過8個(gè)輔助寄存器(AR0~AR7)同時(shí)訪問兩個(gè)數(shù)據(jù)存儲(chǔ)單元
實(shí)現(xiàn)功能:
執(zhí)行一條可完成兩個(gè)16位數(shù)據(jù)空間訪問的指令
并行執(zhí)行兩條指令雙間接尋址操作數(shù)
CDP間接尋址模式
使用系數(shù)數(shù)據(jù)指針(CDP)對(duì)數(shù)據(jù)空間、寄存器位和
I/O空間進(jìn)行訪問
系數(shù)間接尋址模式
支持以下算術(shù)指令:
FIR濾波
乘法
乘加
乘減
雙乘加或雙乘減系數(shù)間接尋址操作數(shù)C55x指令的并行執(zhí)行
指令并行的特征
單指令中內(nèi)置并行方式—隱含并行方式
例如:MPY
*AR0,
*CDP,
AC0::
MPY
*AR1,
*CDP,
AC1
用戶自定義的兩條指令間的并行方式
例如:MPYM
*AR1–,
*CDP,
AC1|
|
XOR
AR2,
T1
內(nèi)置與用戶自定義混合的并行方式
例如:MPYM
T3=*AR3+,
AC1,
AC2||
MOV
#
5,
AR1
指令并行的規(guī)則
兩條指令的總長度不能超過6個(gè)字節(jié)
在指令的執(zhí)行過程中不存在操作器、地址產(chǎn)生單元、總線等資源沖突
其中一條指令必須有并行使能位或兩條指令符合軟-雙并行條件
不能使用并行方式的情況
使用立即數(shù)尋址方式
例如:
*abs16(#
k16);*(#
k23);port(#
k16);*ARn(K16);*+ARn(K16);*CDP(K16);*+CDP(K16)
條件跳轉(zhuǎn)、條件調(diào)用、中斷、復(fù)位等程序控制指令
例如:
BCC
P24,
cond;CALLCC
P24,
cond;IDLE;INTR
k5;RESET;TRAP
k5
使用下列指令或者操作修飾符
例如:
mmap(
);port(
);<instruction>.CR;<instruction>.LR
資源沖突
C55x的資源
運(yùn)算器
使用的操作器有:D單元的ALU、D單元的移位器、D單元的交換器、A單元的交換器、A單元的ALU和P單元
地址產(chǎn)生單元
兩個(gè)數(shù)據(jù)地址(DA)產(chǎn)生單元、一個(gè)系數(shù)地址(CA)產(chǎn)生單元和一個(gè)堆棧地址(SA)產(chǎn)生單元
只能使用給定數(shù)量的數(shù)據(jù)地址產(chǎn)生單元
總線
兩個(gè)數(shù)據(jù)讀(DR)總線、一個(gè)系數(shù)讀(CA)總線、兩個(gè)數(shù)據(jù)寫(DW)總線、1個(gè)ACB總線(將D單元寄存器的內(nèi)容傳送給A單元和P單元的操作器)、一個(gè)KAB總線(立即數(shù)總線)和一個(gè)KDB總線(立即數(shù)總線)
只能使用給定數(shù)量的總線
軟-雙并行條件
兩個(gè)存儲(chǔ)器操作數(shù)必須是雙AR間接尋址模式
指令不能包含high_byte(Smem)和low_byte(Smem)
指令不能讀、寫同一個(gè)存儲(chǔ)器單元
如果指令中的k4的值是0~8,就會(huì)改變XDP的值,所以,不能與加載DP的指令組成并行指令
讀重復(fù)計(jì)數(shù)寄存器(RPTC)指令不能和如下的任何一個(gè)單重復(fù)指令組成并行指令TMS320C55X
DSP的匯編指令指令集中使用的術(shù)語、符號(hào)和縮寫TMS320C55X
DSP的匯編指令指令集中使用的術(shù)語、符號(hào)和縮寫指令集中使用的運(yùn)算符TMS320C55x指令集按操作類型
算術(shù)運(yùn)算指令
位操作指令
擴(kuò)展輔助寄存器操作指令
邏輯運(yùn)算指令
移動(dòng)指令
程序控制指令注:一條指令的屬性包括:指令,執(zhí)行的操作,是否有并行使能位,長度,周期,在流水線上的執(zhí)行階段以及執(zhí)行的功能單元等。
算術(shù)運(yùn)算指令
加法指令
加法指令有幾點(diǎn)說明:
如果目的操作數(shù)是累加器ACx,在D單元的ALU中進(jìn)行運(yùn)算操作;
如果目的操作數(shù)是輔助或臨時(shí)寄存器TAx,在A單元的ALU中進(jìn)行運(yùn)算操作;
如果目的操作數(shù)是存儲(chǔ)器(Smem),在D單元的ALU中進(jìn)行運(yùn)算操作;
如果是移位指令(16位立即數(shù)移位除外),在D單元移位器中進(jìn)行運(yùn)算操作
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:CARRY,C54CM,M40,SATA,SATD,SXMD
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY加法指令
舉例:ADD
*AR3+,T0,T1;AR3間接尋址得到的內(nèi)容與T0的內(nèi)容相加,結(jié)果裝入T1,并將
AR3增1
舉例:ADD
*AR1<<T0,AC1,AC0;將由AR1尋址得到的內(nèi)容左移T0位與AC1相加,結(jié)果裝入AC0
減法指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:CARRY,C54CM,M40,SATA,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY
指令減法指令
舉例:SUB
uns(*AR1),BORROW,AC0,AC1將CARRY位求反,AC0減去由AR1尋址得到的內(nèi)容及CARRY的內(nèi)容,并將結(jié)果裝入AC1
條件減法
指令
SUBC
Smem,
[ACx,]
ACyif
((ACx
–(Smem
<<
#
15))
>=
0)ACy
=
(ACx
–(Smem
<<
#
15))
<<
#
1
+
1elseACy
=
ACx
<<
#
1
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVy,CARRY
舉例:SUBC
*AR1,AC0,AC1如果(AC0–(*AR1)<<#15)>=0,則AC1=(AC0–(*AR1)<<
#15)<<#1+1,否則AC1=AC0<<#1
條件加減法
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,SATD,SXMD,TC1,TC2。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVy,CARRY
舉例:ADDSUBCC
*AR1,AC0,TC2,AC1如果TC2=1,則AC1=AC0+(*AR1<<#16,否則AC1=AC0-(*AR1)<<#16
乘法指令
指令—在D單元的MAC中完成操作
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,M40,RDM,SATD
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy乘法指令
舉例:MPY
AC0,AC1;AC1=AC0*AC1
乘加指令
指令—在D單元的MAC中完成操作
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,M40,RDM,SATD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy乘加指令
舉例1:MACMR
*AR1,*CDP,AC2AC2=rnd
(AC2+(*AR1)*(*CDP))
舉例2:MACMR
uns(*AR2+),uns(*AR3+),AC3AC3=(*AR2)+(*AR3)+AC3
,AR2=AR2+1,AR3=AR3+1
乘減指令
指令—在D單元的MAC中完成操作
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,M40,RDM,SATD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy乘減指令
舉例:MASR
T1,AC0,AC1AC1=rnd(AC1-AC0*T1)
雙乘加/減指令
指令—利用D單元的兩個(gè)MAC在一個(gè)周期內(nèi)同時(shí)執(zhí)行兩個(gè)乘法或乘加/減運(yùn)算
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,M40,RDM,SATD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy
舉例:MASR40
uns(*AR0),
uns(*CDP),
AC0::
MACR40
uns(*AR1),
uns(*CDP),
AC1;AC0=rnd(AC0-uns(*AR0)*uns(*CDP));AC1=rnd(AC1+uns(*AR1)*uns(*CDP))
雙16位算術(shù)指令
指令—利用D單元中的ALU在一個(gè)周期內(nèi)完成兩個(gè)并行的算術(shù)運(yùn)算,包括一加一減、一減一加、兩個(gè)加法或兩個(gè)減法
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY16雙位算術(shù)指令
舉例:ADDSUB
T1,*AR1,AC1;AC1(39-16)=(*AR1)+T1;
|
|
AC1(15-0)=(*AR1)-T1
比較和選擇極值指令
指令—在D單元的ALU中完成兩個(gè)并行16位極值選擇操作和一個(gè)40位極值選擇操作
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,SATD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVw,CARRY比較和選擇極值指令比較和選擇極值指令
舉例:MAXDIFF
AC0,AC1,AC2,AC1
最大/最小值指令
指令
MAX
[src,]
dst;dst
=
max(src,dst)
MIN
[src,]
dst;dst
=
min(src,dst)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:CARRY
舉例1:MAX
AC2,AC1;由于(AC2)<(AC1),所以AC1保持不變且CARRY狀態(tài)位置1
舉例2:MIN
AC1,T1;由于T1<AC1(15-0),所以T1的內(nèi)容保持不變且將CARRY狀態(tài)位置1
存儲(chǔ)器比較指令
指令
CMP
Smem
=
=K16,
TCx;If
Smem
=
=
K16
then
TCx=1
else
TCx=0
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例
CMP
*AR1+
=
=
#
400h,
TC1
寄存器比較指令
指令—在D單元和A單元的ALU中完成兩個(gè)累加器、輔助寄存器或臨時(shí)寄存器的比較,若累加器與輔助寄存器或臨時(shí)寄存器比較,在A單元將ACx(15-0)與TAx進(jìn)行比較
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,TCy。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例1:CMP
AC1==T1,TC1;由于AC1(15-0)=T1,所以將TC1置1
條件移位指令
指令
SFTCC
ACx,
TCx;If
ACx(39–0)
=
0
then
TCx
=
1;If
ACx(31–0)
has
two
signbits
then;ACx
=ACx(31–0)<<#
1
and
TCx=0;else
TCx=1
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例
SFTCC
AC0,
TC1
帶符號(hào)移位指令
指令—移位指令中的移位值由立即數(shù)、SHIFTW或Tx內(nèi)容確定
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,SATA,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY
舉例1:SFTS
T2,#1;T2=T2<<#1
舉例2:SFTSC
AC0,#–5,AC1;AC1=AC0>>5,移出的位裝入CARRY
修改輔助寄存器(MAR)指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:ST2-55
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例
AADD
#
255,
T0;T0=T0+255
AMOV
#
255,
AR0
;AR0=255
AMAR
*AR3+
;AR3=AR3+1
修改堆棧指針指令
指令A(yù)ADD
K8,SP
;SP
=
SP
+
K8
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無。
舉例AADD
#
127,
SP
;SP=SP+127
隱含并行指令
指令
加-存儲(chǔ)、乘加/減-存儲(chǔ)、加/減-存儲(chǔ)、裝載-存儲(chǔ)和乘加/減-裝載
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,C54CM,M40,RDM,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY隱含并行指令
舉例:MPYMR
*AR0+,T0,AC1::
MOV
HI(AC0
<<
T2),
*AR1+;AC1=(*AR0)*T0,因?yàn)镕RCT=1,AC1=rnd(AC1*2),;
AC0=AC0<<T2,(*AR1)=AC0(31-16),AR1=AR1+1,;AR0=AR0+1
絕對(duì)距離指令
指令
以并行方式完成兩個(gè)操作,一個(gè)在D單元的MAC中,另一個(gè)在D單元的ALU中
ABDST
Xmem,Ymem,ACx,ACy
;ACy
=
ACy
+
|
HI(ACx)|
;ACx
=
(Xmem
<<
#
16)
–(Ymem
<<
#
16)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,C54CM,M40,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY
舉例:ABDST
*AR0+,*AR1,AC0,AC1;AC1
=
AC1
+
|
HI(AC0)|;AC0
=((*AR0)
<<
#
16)
–((*AR1)
<<
#
16);AR0=AR0+1
絕對(duì)值指令
指令
ABS
[src,]
dst
;dst
=
|
src|
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,SATA,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,CARRY
舉例
ABS
AR1,
AC1
;AC1=|
AR1|
FIR濾波指令
指令
FIRSADD
Xmem,
Ymem,
Cmem,
ACx,
ACy
;ACy
=
ACy
+(ACx(32-16)
*
Cmem);ACx
=
(Xmem
<<
#
16)
+
(Ymem
<<
#
16)
FIRSSUB
Xmem,
Ymem,
Cmem,
ACx,
ACy
;ACy
=
ACy
+(ACx
(32-16)*
Cmem);ACx
=
(Xmem
<<
#
16)
–(Ymem
<<
#
16)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,C54CM,M40,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY
舉例:FIRSADD
*AR0,*AR1,*CDP,AC0,AC1;AC1
=
AC1
+
AC0(32-16)
*
(*CDP);AC0
=(
(*AR0)
<<
#
16)
+
((*AR1)
<<
#
16)
最小均方(LMS)指令
指令
LMS
Xmem,
Ymem,
ACx,
ACy;ACy
=
ACy
+
(Xmem
*
Ymem);::
ACx
=
rnd(ACx
+
(Xmem
<<
#
16))
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,C54CM,M40,RDM,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY
舉例:LMS
*AR0,*AR1,AC0,AC1;AC1
=
AC1
+
(*AR0)
*(*AR1);::
AC0
=
rnd(AC0
+
((*AR0)<<
#
16))
補(bǔ)碼指令
指令
NEG
[src,]
dst
;dst
=
–src
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:M40,SATA,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,CARRY
舉例
NEG
AC1,
AC0
;AC0=
-AC1
歸一化指令
指令
MANT
ACx,
ACy
;ACy
=
mant(ACx),
::
NEXP
ACx,
Tx
;Tx
=
–exp(ACx)
EXP
ACx,
Tx
;Tx
=
exp(ACx)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例
MANT
AC0,AC1;AC1等于AC0的尾數(shù),即將AC0右移與32位帶符號(hào)數(shù)對(duì)齊后的值;
::NEXP
AC0,T1;T1等于將AC0的MSB左移與32位帶符號(hào)數(shù)對(duì)齊所移位的次數(shù)值
飽和和舍入指令
指令
SAT[R]
[ACx,]
ACy
;ACy
=
saturate(rnd(ACx))
ROUND
[ACx,]
ACy
;ACy=rnd(ACx)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,RDM,SATD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVy
舉例1:ROUND
AC0,AC1;AC1=AC0+8000h,且16個(gè)最低有效位清0
舉例2:SAT
AC0,AC1;將32位的AC0飽和,將飽和后的值FF
8000
0000裝入AC1
平方差指令
指令
SQDST
Xmem,
Ymem,
ACx,
ACy;ACy
=
ACy
+
(ACx(32-16)
*
ACx(32-16));ACx
=
(Xmem
<<
#
16)
–(Ymem
<<
#
16)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:FRCT,SMUL,C54CM,M40,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,ACOVy,CARRY
舉例:SQDST
*AR0,*AR1,AC0,AC1;AC1=AC1+(AC0(32-16))*(AC0(32-16));AC0=((*AR0)<<16)-((*AR1<<16)
位操作指令
位域比較指令
指令
BAND
Smem,
k16,
TCx;If(
((Smem)
AND
k16
)
==
0),TCx
=
0;else
TCx
=
1
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例:
BAND
*AR3,
#
00A0h,
TC2;由于(*AR3)AND
k16==0,TC2=0
位計(jì)數(shù)
指令
BCNT
ACx,ACy,TCx,Tx;Tx=(ACx
AND
ACy)中1的個(gè)數(shù);若Tx為奇數(shù),則TCx=1,反之TCx=0
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例:
BCNT
AC1,
AC2,
TC1,
T1;T1=(AC1與AC2)中1的個(gè)數(shù),個(gè)數(shù)是奇數(shù),TC1=1
位域擴(kuò)展和抽取指令
指令
位域抽取:
BFXTR
k16,ACx,dst;從LSB到MSB將k16中非零位對(duì)應(yīng)的ACx中的位抽取出來,依次放到dst的LSB中
位域擴(kuò)展:
BFXPA
k16,ACx,dst;將ACx的LSB放到k16中非零位對(duì)應(yīng)的dst中的位置上,;ACx的LSB個(gè)數(shù)等于k16中1的個(gè)數(shù)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例1:BFXTR#8024h,AC0,T2;從最低位到最高位將(8024h)中非零位對(duì)應(yīng)的AC0中的位抽取出來依次放到T2的LSB中
舉例2:BFXPA#8024h,AC0,T2;將AC0的LSB放到#8024h中非零位對(duì)應(yīng)的T2中的位置上,AC0的LSB個(gè)數(shù)等于#8024h中1的個(gè)數(shù)
存儲(chǔ)器位操作指令
指令
測試、清零、置位和取反
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例1:BTST
AC0,*AR0,TC1;位地址AC0(3-0)=8,測試(*AR0)的位8,結(jié)果存入TC1
舉例2:BTSTNOT#12,*AR0,TC1;測試(*AR0)的位12,結(jié)果存入TC1,并將(*AR0)的位12取反
寄存器位操作指令
指令
測試、置位、清零和取反操作
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:TCx
舉例1:BTST
@#12,T0,TC1;測試T0的位12,將結(jié)果存入TC1
舉例2:BNOT
AR1,T0;將T0中由AR1確定的位12取反
舉例3:BTSTP
AR1(T0),AC0;由基地址(AR1)和偏移地址T0確定的位地址為39,測試AC0中的第39位并存入TC1;測試AC0中的第40位并存入TC2
狀態(tài)位設(shè)置指令
指令
置位和清零
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:已經(jīng)選擇的狀態(tài)位
舉例1:BCLR
AR1LC,ST2_55;由標(biāo)號(hào)AR1LC確定位地址為1,將ST2-55的位2清零
舉例2:BSET
CARRY,ST0_55;由標(biāo)號(hào)CARRY確定位地址為11,將ST0-55的位11置位
舉例3:BSET
CARRY;將ST0-55的CARRY(位11)置位
擴(kuò)展輔助寄存器操作指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:ST2-55。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例1:
AMAR
*AR1+,XAR0;將(*AR1)的內(nèi)容裝入XAR0,且AR1增1
AMOV#7FFFFFh;將23位的值(7FFFFFh)裝入XAR0
MOV
dbl(*AR3),XAR1;將(*AR3)低7位和(*(AR3+1))的16位裝入XAR1
邏輯運(yùn)算指令
按位與/或/異或/取反指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例1:NOT
AC0,AC1
;將AC0的內(nèi)容取反,結(jié)果存入AC1
舉例2:AND
AC0,AC1;AC1=AC1
AND
AC0
舉例3:AC0<<#4,AC1;將AC0邏輯左移4位后與AC1相或,結(jié)果存入AC1
舉例4:XOR
AC0,AC1;AC1=AC1
XOR
AC0
邏輯移位
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:CARRY
舉例1:SFTL
AC1,#1
;AC1=AC1<<#1,由于M40=0,CARRY=位31,且位(39-32)清零
舉例2:SFTL
AC0,T0,AC1;AC1=AC0<<-6,由于M40=0,所以(39-32)清零
循環(huán)移位
指令
ROL
BitOut,src,BitIn,dst;將BitIn移進(jìn)src的LSB,src被移出的位存放于BitOut,此時(shí)的結(jié)果放到dst中ROR
BitIn,src,BitOut,dst;將BitIn移進(jìn)src的MSB,src被移出的位存放于
BitOut,此時(shí)的結(jié)果放到dst中
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:CARRY,M40,TC2。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:CARRY,TC2
舉例:
ROL
CARRY,AC1,TC2,AC1;將TC2移入AC1的LSB,將AC1中位31移出放入CARRY,由于M40=0,將AC0(39-32)清零
移動(dòng)指令
累加器、輔助寄存器或臨時(shí)寄存器裝載、存儲(chǔ)、移動(dòng)和交換
存儲(chǔ)單元間的移動(dòng)及初始化
入棧和出棧
CPU寄存器裝載令、存儲(chǔ)和移動(dòng)
累加器、輔助寄存器或臨時(shí)寄存器裝載、存儲(chǔ)、移動(dòng)和交換指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:C54CM,M40,RDM,SATD,SXMD。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx
舉例1:
MOV
AC0,*(#0E
10h);將AC0(15-0)存入E
10h單元
舉例2:MOV
AC0,AC1;AC1=AC0,由于M40=0,在31位檢測到溢出,將ACOV1置位
舉例3:MOV#248,AC1;AC1=#248
舉例4:SWAP
AR4,T0,將AR4的內(nèi)容和T0的內(nèi)容互換
存儲(chǔ)單元間的移動(dòng)及初始化
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例1:DELAY
*AR1+;*(AR3+1)=*(AR3),AR3=AR3+1
舉例2:MOV
*CDP,*(#0500h);將(*CDP)存入0500h處
入棧和出棧指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例1:POP
AC0,AC1;AC0(15-0)=(SP),AC1(15-0)=(SP+1)
(39-16)不變,SP=SP+2
舉例2:PSH
AR0,AC1;SP=SP-2,(SP)=AR0,(SP+1)=AC1(15-0)
CPU寄存器裝載、存儲(chǔ)和移動(dòng)指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:無
舉例1:
MOV
T1,
BRC1
;BRC1=BRS1=T1
MOV
SP,
*AR1+
;(*AR1)=(SP),AR1=AR1+1
程序控制指令
跳轉(zhuǎn)指令
調(diào)用與返回指令
中斷與返回指令
重復(fù)指令
跳轉(zhuǎn)指令
指令—包括條件跳轉(zhuǎn)、無條件跳轉(zhuǎn)
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:ACOVx,CARRY,C54CM,M40,TCx。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx跳轉(zhuǎn)指令
舉例1:BCC
branch,TC1
;TC1=1,程序跳轉(zhuǎn)到標(biāo)號(hào)branch處執(zhí)行
舉例2:B
AC0
;PC=AC0(23-0)
調(diào)用與返回指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:ACOVx,CARRY,C54CM,M40,TCx。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx
舉例
CALLCC(subroutine),AC1>=#2000h;AC1>=#2000h,PC=子程序地址
RETCC
ACOV0=#0;ACOV0=0,PC=調(diào)用子程序的返回地址
中斷與返回指令
指令
INTR
k5;程序執(zhí)行中斷服務(wù)子程序,中斷向量地址由中斷向量指針(IVPD)和5比
TRAP
k5;特?zé)o符號(hào)數(shù)確定
RETI;PC=中斷任務(wù)的返回地址
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:無。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:INTM
重復(fù)指令
指令
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:ACOVx,CARRY,C54CM,M40,TCx。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx
舉例1:RPT
CSR;下一條指令執(zhí)行CSR+1次MACM
*AR3+,
*AR4+,
AC1
其他程序控制指令
指令
XCC[label,]cond;當(dāng)條件滿足時(shí),執(zhí)行下面一條指令
XCCPART[label,]cond;當(dāng)條件滿足時(shí),執(zhí)行下面兩條并行指令
IDLE;空閑
NOP;空操作,PC=PC+1
NOP_16;空操作,PC=PC+2
RESET;軟件復(fù)位
狀態(tài)位
影響指令執(zhí)行的狀態(tài)位有:ACOVx,CARRY,C54CM,M40,TCx,INTM。
執(zhí)行指令后會(huì)受影響的狀態(tài)位:ACOVx,IFR0,IFR1,ST0-55,ST1-55,ST2-55
舉例1:
XCC
branch,
*AR0
!=
#
0
;AR0不等于0,執(zhí)行下一條指令(ADD)ADD
*AR2+,
AC0
;AC0=AC0+(*AR2),AR2=AR2+1C55x處理器的軟件設(shè)計(jì)
C55x處理器程序基本結(jié)構(gòu)
C語言程序開發(fā)及優(yōu)化
C語言與匯編語言的混合編程
通用目標(biāo)文件格式
C55x處理器的數(shù)字信號(hào)處理庫和圖像、視頻處理庫C55x處理器軟件開發(fā)流程C55x處理器程序基本結(jié)構(gòu)
根據(jù)任務(wù)調(diào)度的方式不同分為兩類
由程序自己完成任務(wù)調(diào)度
運(yùn)行效率高,對(duì)硬件中斷響應(yīng)快
程序運(yùn)行穩(wěn)定,適合于任務(wù)較為單一
實(shí)時(shí)性較強(qiáng)的應(yīng)用
由嵌入式操作系統(tǒng)完成任務(wù)調(diào)度
利用處理器同時(shí)完成多個(gè)任務(wù)
簡化了應(yīng)用系統(tǒng)軟件設(shè)計(jì)
良好的多任務(wù)設(shè)計(jì)有助于提高系統(tǒng)的穩(wěn)定性和可靠性自我調(diào)度程序的基本結(jié)構(gòu)
自我調(diào)度程序組成
中斷程序部分
通過設(shè)置判斷標(biāo)志來影響主循環(huán)部分的運(yùn)行
初始化部分
DSP軟、硬件的初始化設(shè)置
啟動(dòng)系統(tǒng)硬件
使能DSP中斷
啟動(dòng)DMA傳送等
主循環(huán)部分
數(shù)據(jù)輸入、處理和輸出等中斷程序1//DS
P初始化//主循環(huán)//判斷條件1//條件滿足運(yùn)行處理模塊1//判斷條件n//條件滿足運(yùn)行處理模塊n??中斷程序m;Ma
in(){DS
P
_INT(
){??};for(;;){if(條件1){處理模塊1;};??if(條件n){處理模塊n;};}}應(yīng)用嵌入式操作系統(tǒng)
硬實(shí)時(shí)方式
按照固定時(shí)鐘節(jié)拍切換任務(wù)
不僅要執(zhí)行無誤,而且要準(zhǔn)時(shí)
軟實(shí)時(shí)方式
由軟件來進(jìn)行任務(wù)的切換
使各個(gè)任務(wù)盡快運(yùn)行,而不要求限定某個(gè)任務(wù)在多長時(shí)間內(nèi)完成
嵌入式操作系統(tǒng)的核心是操作系統(tǒng)內(nèi)核
優(yōu)先級(jí)的內(nèi)核可以分成兩種類型
不可剝奪型內(nèi)核—合作型多任務(wù)
要求每個(gè)任務(wù)主動(dòng)放棄CPU使用權(quán)
每個(gè)任務(wù)相互合作,共享一個(gè)CPU
異步事件由中斷服務(wù)來處理
允許任務(wù)使用不可重入函數(shù)
優(yōu)點(diǎn)是響應(yīng)中斷快
可剝奪型內(nèi)核
具有最高優(yōu)先級(jí)的任務(wù)就緒,得到CPU的使用權(quán)
不應(yīng)直接使用不可重入函數(shù)
主要工作是完成任務(wù)(進(jìn)程)的調(diào)度任務(wù)管理
是一個(gè)無限循環(huán)
5個(gè)狀態(tài)
休眠狀態(tài)
任務(wù)駐留在內(nèi)存之中,但并沒有被系統(tǒng)內(nèi)核所調(diào)用
就緒狀態(tài)
任務(wù)已經(jīng)準(zhǔn)備好,但由于該任務(wù)的優(yōu)先級(jí)比正在運(yùn)行的任務(wù)的優(yōu)先級(jí)低,還暫時(shí)不能運(yùn)行
運(yùn)行狀態(tài)
任務(wù)擁有CPU的使用權(quán),正在運(yùn)行
掛起狀態(tài)
任務(wù)正在等待某一個(gè)事件的發(fā)生以結(jié)束目前的等待
被中斷狀態(tài)
發(fā)生中斷,CPU進(jìn)入中斷服務(wù)程序,而暫時(shí)不能運(yùn)行當(dāng)前的任務(wù)任務(wù)狀態(tài)轉(zhuǎn)換
兩種類型
二進(jìn)制型—看做一個(gè)只有一位的計(jì)數(shù)器型信號(hào)量
計(jì)數(shù)器型
兩個(gè)任務(wù)之間利用信號(hào)量來取得同步
單向同步
任務(wù)用一個(gè)信號(hào)量觸發(fā)另一個(gè)任務(wù)
雙向同步信號(hào)量C語言程序開發(fā)及優(yōu)化C語言中的數(shù)據(jù)類型
對(duì)I/O空間進(jìn)行尋址
關(guān)鍵字ioport
ioport類型只能用來聲明全局或靜態(tài)變量
在本地變量中使用ioport類型,則變量必須用指針聲明指針聲明ioport類型舉例:void
foo
(void){ioport
int
i;/*無效的聲明*/ioport
int
*j;/*有效聲明*/}注意:聲明ioport類型的指針只有16位在printf()中引用ioport指針的舉例:ioport
int
*p;printf(”%
p
\n
”,
(void*)p);注意:則必須進(jìn)行強(qiáng)制類型轉(zhuǎn)換“void
*”在本地變量中使用ioport類型的舉例:int
*
ioport
ioport_pointe
r;/*
ioport指針*/int
i;int
j;void
foo
(void){ioport_pointe
r
=
&i;j
=
*ioport_pointe
r;}指向I/O空間數(shù)據(jù)指針的舉例:/*指向ioport數(shù)據(jù):*/ioport
int
*
ptr_to_ioport;ioport
int
i;void
foo
(void){int
j;i
=
10
;ptr_to_ioport
=
&i;j
=
*ptr_to_ioport;}編譯結(jié)果:_foo:MOV#_i,*a
bs
16(#_ptr_to_ioport);存儲(chǔ)_i的地址MOV
*a
bs
16
(#
_ptr_to_ioport),AR
3AADD
#
–1
,
S
P;向_i中存入10MOV
#
10
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國生物脫敏霜行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國打草機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2030年中國高粘性雙面膠帶數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國舌頭片數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國有機(jī)小白蕓豆數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年中國雙宮繡花方巾數(shù)據(jù)監(jiān)測研究報(bào)告
- 建筑材批發(fā)商市場營銷能力提升考核試卷
- 2025-2030年可植入人工腎臟系統(tǒng)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025-2030年按摩眼罩企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025-2030年地道小吃市集行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 2025江蘇鹽城市交通投資建設(shè)控股集團(tuán)限公司招聘19人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 新人教版一年級(jí)下冊(cè)數(shù)學(xué)教案集體備課
- 2024托管班二人合伙的協(xié)議書
- 《輸電線路金具識(shí)別》課件
- 2023-2024學(xué)年浙江省金華市武義縣七年級(jí)(上)期末英語試卷
- 任務(wù)型閱讀 -2024年浙江中考英語試題專項(xiàng)復(fù)習(xí)(解析版)
- 繪本 課件教學(xué)課件
- 大型央國企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實(shí)施方案
- DB3209T 1171-2019 響水西蘭花規(guī)范
- 世界職業(yè)院校技能大賽中職組“嬰幼兒保育組”賽項(xiàng)考試題及答案
- 教育網(wǎng)絡(luò)設(shè)施搭建:機(jī)房施工合同
評(píng)論
0/150
提交評(píng)論