freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

哈工程dsp專業(yè)課課件第三章(已修改)

2024-09-28 21:03 本頁(yè)面
 

【正文】 第三章 TMS320C2XX中央處理單元與程序控制 上一章 內(nèi)容回顧 ( 1) 明確為什么要學(xué)習(xí) DSP的硬件組成與體系結(jié)構(gòu) , 掌握C2xxDSP的硬件組成與體系結(jié)構(gòu)及其特點(diǎn) 。 ( 2) 解決在編程序時(shí)不知道哪些資源是可用的 , 怎么用 ? ( 3) 解決硬件設(shè)計(jì)時(shí) , 對(duì)引腳信號(hào)不知道怎么用 ? 怎樣發(fā)掘芯片的潛能 , 也就是說(shuō)器件的優(yōu)化設(shè)計(jì)問(wèn)題和效能最大化的問(wèn)題 。 ( 打下基礎(chǔ) ) 上一章的主要內(nèi)容: 本章教學(xué)目的 要求同學(xué)理解掌握 DSP的中央處理單元的組成和程序控制的原理 理解各狀態(tài)寄存器的狀態(tài)位及其作用 理解流水線的原理以及轉(zhuǎn)移 、 調(diào)用 、 返回指令的執(zhí)行過(guò)程 理解 DSP的 中斷和復(fù)位 操作 概述 輸入定標(biāo)部分 乘法部分 中央算術(shù)邏輯部分 輔助寄存器與狀態(tài)寄存器 程序地址生成與流水線 轉(zhuǎn)移、調(diào)用和返回 重復(fù)指令 中斷與中斷管理 本章主要內(nèi)容 概述 本章講述中央處理單元( CPU)的主要組成 CPU 的 三 個(gè) 基 本 部 分( ~ ) 輔 助 寄 存 器 算 術(shù) 單 元( ARAU) ( ) 狀態(tài)寄存器 ST0和 ST1 ( ) 包括:輸入定標(biāo)部分、乘法部分、中央算術(shù)邏輯部分 ARAU實(shí)現(xiàn)對(duì) 8個(gè)輔助寄存器的算術(shù)運(yùn)算。 狀態(tài)寄存器決定處理器工作方式、尋址指針以及顯示不同的處理器狀態(tài)和算術(shù)邏輯結(jié)果。 節(jié)能方式 ( ) C2XX器件程序控制的特點(diǎn)及其處理過(guò)程 ( ~) 涉及到對(duì)一個(gè)或多個(gè)指令塊執(zhí)行順序的控制,通常,程序流是順序的, C2XX在連續(xù)的程序存儲(chǔ)器地址執(zhí)行指令操作。然而,有時(shí)一個(gè)程序必須轉(zhuǎn)移到一個(gè)非順序的地址,最后在該新的地址單元順序地執(zhí)行指令。為此, C2XX支持轉(zhuǎn)移、調(diào)用、返回、重復(fù)和中斷等操作。 該方式暫停內(nèi)部程序流并暫時(shí)地降低C2XX的功能 C2xx的總體框圖 中央算術(shù)邏輯單元: CALU 數(shù)據(jù)地址產(chǎn)生邏輯 (ARAU以及 8個(gè) AR) 累加器: ACC 程序地址產(chǎn)生邏輯 用于 CALU的輸入輸出數(shù)據(jù)比例移位器 16bit 16bit乘法器 乘積比例移位器 CPU的輸入比例、中央算術(shù)邏輯和乘法部分框圖 輸入定標(biāo)部分 一個(gè) 32bit輸入數(shù)據(jù)定標(biāo)移位器 (輸入移位器 )使一個(gè)存儲(chǔ)器的16bit值與 32bit的 CALU對(duì)齊。 對(duì)于數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算來(lái)說(shuō),數(shù)據(jù)的校準(zhǔn)很有必要。 作為程序 (或數(shù)據(jù) )和 CALU之間的數(shù)據(jù)通道,輸入移位器操作不需要額外開(kāi)銷(xiāo)。 下面介紹輸入移位器的輸入、輸出和移位位數(shù)。 輸入 程序讀總線 (PRDB) 該輸入為一個(gè)指令操作時(shí)給定的常數(shù)。 輸入移位器的 15位到 0位接收程序存儲(chǔ)器 (PRDB)或數(shù)據(jù)存儲(chǔ)器 (DRDB)的一個(gè) 16bit輸入。 輸出 在左移期間 , 移位器中未使用的 LSB被零填充 ,而移位器中的 MSB則被零或擴(kuò)展符填充 。 數(shù)據(jù)讀總線 (DRDB) 該輸入為一個(gè)來(lái)自數(shù)據(jù)存儲(chǔ)器的數(shù)據(jù)。 接收了一個(gè) 16bit數(shù)據(jù)之后 , 輸入移位器就將該 16bit數(shù)據(jù)與 CALU的 32bit總線對(duì)齊: 輸入移位器將該 16位數(shù)據(jù)左移 0~16位,然后向 CALU送入 32位的結(jié)果。 移位位數(shù) 輸入移位器可以將一個(gè) 16bit數(shù)據(jù)左移 0~16位。移位大小 (或移位位數(shù) )可從以下方式獲得: 暫存寄存器 (TREG)的 4個(gè) LSB位 基于 TREG的移位操作允許動(dòng)態(tài)地確定數(shù)據(jù)定標(biāo)因子 , 以便它能更好地適應(yīng)系統(tǒng)性能 。 在指令字中嵌入一個(gè)常數(shù) 在指令字中設(shè)置移位位數(shù) , 允許執(zhí)行特定的數(shù)據(jù)定標(biāo)或校準(zhǔn)操作 。 對(duì)許多 (并非所有的 )指令而言 , 符號(hào)擴(kuò)展方式位(SXM), 即狀態(tài)寄存器 ST1的第 l0位 , 決定著在 CALU計(jì)算中是否采用符號(hào)擴(kuò)展: SXM=0 不采用符號(hào)擴(kuò)展 。 SXM=l 輸入移位器的輸出具有符號(hào)擴(kuò)展 。 符號(hào)擴(kuò)展方式位 (SXM) 圖 23為當(dāng) SXM=0時(shí),輸入數(shù)據(jù)被左移 8位的情況。送入CALU的數(shù)據(jù)的 MSB位被零填充 圖 24為當(dāng) SXM=l時(shí),同樣的移位情況。在移位期間,數(shù)據(jù)具有符號(hào)擴(kuò)展。 乘法部分 C2XX 使用一個(gè) 16bit*l6bit的硬件乘法器 。 它在一個(gè)機(jī)器周期內(nèi)可產(chǎn)生一個(gè)帶符號(hào)或不帶符號(hào)的 32bit乘積 。 乘法部分包括: 16bit暫存寄存器 (TREG) 乘法器 32bit乘積寄存器 (PREG) 乘積移位器 寄存其中一個(gè)被乘數(shù) 把 TREG中的值與 數(shù)據(jù)存儲(chǔ)器 (或程序 存儲(chǔ)器 )的值相乘 接收乘法器的乘積 在將 PREG的值送入 CALU之前,乘積移位 器將對(duì) PREG值進(jìn)行 定標(biāo)操作 乘法器 在一個(gè)機(jī)器周期內(nèi) , 16bit * l6bit硬件乘法器可以產(chǎn)生一個(gè)帶符號(hào)或不帶符號(hào)的 32bit乘積 。 除在無(wú)符號(hào)乘法 (MPYU指令 )周期外 , 被乘的兩個(gè)數(shù)作二進(jìn)制補(bǔ)碼處理 。 以下是對(duì)乘法器的輸入和輸出的描述。 PREG的輸出與 32bit乘積定標(biāo) 移位器相連 。 經(jīng)過(guò)移位器處理 , 乘積可以從 PREG進(jìn)入CALU(或數(shù)據(jù)存儲(chǔ)器通過(guò) SPH和 SPL指令 )。 輸入 來(lái)自 數(shù)據(jù)讀總線 (DRDB)的數(shù)據(jù)存儲(chǔ)器的值 。 輸出 乘法器接收兩個(gè) 16bit的輸入: 總是來(lái)自 16bit的 暫存寄存器 (TREG) 另一個(gè)輸入為下列數(shù)值之一: 其中一個(gè)輸入 : 在乘法之前, TREG 裝載了一個(gè)數(shù)據(jù)讀總線 (DRDB)的數(shù)值。 乘積寄存器 (PREG) 用于存儲(chǔ)兩個(gè) 16bit 輸入數(shù)據(jù)相乘之后產(chǎn)生 的 32bit乘積。 來(lái)自 程序讀總線 (PRDB)的程序存儲(chǔ)器的值。 乘積定標(biāo)移位器 乘積定標(biāo)移位器 (乘積移位器 )用于乘積寄存器(PREG)值的定標(biāo)。 輸入 PREG的輸出 輸出 CALU的輸入 移位器有一個(gè) 32bit的輸入, 它與 PREG的輸出相連 移位器完成移位操作,所 有 32位的數(shù)據(jù)被送入 CALU, 而 16位的數(shù)據(jù)則被存儲(chǔ)在數(shù) 據(jù)存儲(chǔ)器中。 移位方式 乘積定標(biāo)移位器采用 4種乘 積移位方式中的一種 (參見(jiàn)下表 )。 PM 移位 描述 00 不移位 乘積進(jìn)入 CALU或數(shù)據(jù)寫(xiě)總線 (DMEB)之前不作移位處理 01 左移 1位 移出以二進(jìn)制補(bǔ)碼方式產(chǎn)生的額外符號(hào)位以便產(chǎn)生一個(gè) Q31 10 左移 4位 當(dāng)與一個(gè) 13bit的常數(shù)相乘時(shí),移動(dòng)以一個(gè) 16bit Xl3bit的二進(jìn)制補(bǔ)碼相乘方式產(chǎn)生的 4個(gè)額外符號(hào)位以便產(chǎn)生一個(gè) Q31+乘積 11 右移 6位 對(duì)乘積進(jìn)行定標(biāo)以便進(jìn)行多達(dá) 128次的乘積累加定標(biāo),而又使累加器不致溢出。無(wú)論狀態(tài)寄存器 ST2的符號(hào)擴(kuò)展方式位 (SXM)的值如何,右移方式總是符號(hào)擴(kuò)展的。 乘積定標(biāo)移位器的乘積移位方式 注: Q31數(shù)是一個(gè)二進(jìn)制分?jǐn)?shù)。其中,二進(jìn)制小數(shù)點(diǎn)后有 31位數(shù)字。 注: 無(wú)論狀態(tài)寄存器 ST1的符號(hào)擴(kuò)展方式位 (SXM)是為 0,還是為 l,乘積移位器中進(jìn)行的右移總是為符號(hào)擴(kuò)展的。 移位方式的采用取決于狀態(tài)寄存器 ST1的乘積移位方式 (PM)值。 第一種移位方式 (PM=00) 第二、三種方式 ( PM=0 10) 最后一種方式 可引起左移位 (1位或 4位 )。 這兩種方式有利于進(jìn)行分?jǐn)?shù) 運(yùn)算或調(diào)整乘積。 在將乘積送入 CALU或數(shù)據(jù)存儲(chǔ) 器之前,移位器不對(duì)乘積進(jìn)行移 位處理。 可使乘積右移 6位。 它允許連續(xù)進(jìn)行多達(dá) 128次的 乘 /加運(yùn)算,而不至于引起累加器 的溢出。 注意,此時(shí) PREG的內(nèi)容保持不變;該值被拷貝到乘積移位器并在乘積移位器中進(jìn)行移位處理。 中央算術(shù)邏輯部分 主要組成 中央算術(shù)邏輯單元 (CALU) 32bit累加器 (ACC) 輸出移位器 執(zhí)行一系列的算術(shù)和 邏輯運(yùn)算 。 接收 CALU輸出 , 并 且可以借助于進(jìn)位位 (C)執(zhí)行累加器中數(shù) 值的移位 。 在將累加器的高位字 或低位字的一個(gè)拷貝 送入數(shù)據(jù)存儲(chǔ)器之前 , 對(duì)該拷貝進(jìn)行移位 處理 。 圖中給出了累加器的高位(ACCH)和低位字 (ACCL)。 中央算術(shù)邏輯單元 中央算術(shù)邏輯單元 (CALU) 中央算術(shù)邏輯單元 (CALU)執(zhí)行一系列的算術(shù)和邏輯運(yùn)算 , 數(shù)字運(yùn)算是在一個(gè)時(shí)鐘周期內(nèi)進(jìn)行 。 這些算術(shù)和邏輯運(yùn)算分為四類: 位測(cè)試、移位和循環(huán) 它具有獨(dú)立的算術(shù)單元和輔助寄存器算術(shù)單元。 16bit加法 16bit減法 布爾邏輯運(yùn)算 鑒于 CALU可執(zhí)行布爾運(yùn)算,因此可以進(jìn)行位處理。 CALU使用累加器進(jìn)行移位和循環(huán)。 輸入 CALU有兩個(gè)輸入 一個(gè)輸入總是由 32bit累加器 提供 另一個(gè)輸入由以下兩個(gè)移位器中的一個(gè)提供 乘積定標(biāo)移位器 輸入數(shù)據(jù)定標(biāo)移位器 輸出 CALU 輸出數(shù)據(jù) 定標(biāo)移位器 32bit 數(shù)據(jù)存儲(chǔ)器 16bit 累加器 32bit 對(duì)該運(yùn)算結(jié) 果進(jìn)行移位 處理 執(zhí)行一次 運(yùn)算 累加器的高 16位 字和低 16位字被 分別移位 輸出 符號(hào)擴(kuò)展方式位 對(duì)許多 (并非所有的 )指令而言,符號(hào)擴(kuò)展方式位 (SXM),即狀態(tài)寄存器 ST1的第 10位,決定著 CALU在運(yùn)算周期內(nèi)是否采用符號(hào)擴(kuò)展。 如果 SXM=0,則禁止符號(hào)擴(kuò)展。 如果 SXM=l,則允許符號(hào)擴(kuò)展。 累加器 下面討論與累加器相關(guān)的狀態(tài)位和轉(zhuǎn)移指令。 狀態(tài)位 進(jìn)位位 (C) 溢出方式位 (OVM) 溢出標(biāo)志位 (OV) 檢測(cè) /控制狀態(tài)位 (TC) 許多 轉(zhuǎn)移指令 可根據(jù) C、 OV和 TC等狀態(tài)位以及累加器中的數(shù)值來(lái)完成。 當(dāng)累加器加產(chǎn)生一個(gè)進(jìn)位時(shí)。 當(dāng)累加器減不產(chǎn)生一個(gè)借位時(shí)。 (例外情況:當(dāng) SUB指令使用 16bit移位且不產(chǎn)生借位時(shí),則不影響 C)。 進(jìn)位位 (C) 以下情況將影響 C(狀態(tài)寄存器 ST1的第 9位 ): 與累加器加或減 : 累加器的單位移位和循環(huán) : C=0 當(dāng)累加器減產(chǎn)生一個(gè)借位時(shí)。 當(dāng)累加器加不產(chǎn)生一個(gè)進(jìn)位時(shí) (例外:當(dāng)ADD指令使用 16bit移位且不產(chǎn)生進(jìn)位時(shí),則不影響C)。 C=l 在一次左移位或循環(huán)期間,累加器的最高有效位被送入 C; 在一次右移位或循環(huán)期,累加器的最低有效位送入 C。 溢出方式位 (OVM) OVM(狀態(tài)寄存器 ST0的第 11位 )決定著累加器算術(shù)溢出的情況。 當(dāng) OVM=0,累加器以正常方式溢出。 當(dāng)累加器處于溢出方式 (OVM=1)并且發(fā)生一次溢出時(shí),產(chǎn)生下面兩種情況: 如果溢出方向?yàn)檎? 則累加器被最大正數(shù)值填充 (7FFF FFFFh)。 如果溢出方向?yàn)樨?fù), 則累加器被最大負(fù)數(shù)值填充 (8000 0000h)。 根據(jù)一個(gè)測(cè)試位的值, TC被置為 0或 l。 對(duì)于 NORM指令,如果累加器的兩位 MSB的 異 或?yàn)檎妫瑒t TC被置為 l。 溢出標(biāo)志位 (OV) OV是狀態(tài)寄存器 ST0的第 12位。 如果未檢測(cè)到累加器溢出,則 OV為 0 當(dāng)溢出 (正方向或負(fù)方向 )發(fā)生時(shí), OV為 l并被鎖存。 檢測(cè) /控制狀態(tài)位 (TC) TC是狀態(tài)寄存器 ST1的第 11位。 輸出數(shù)據(jù)定標(biāo)位移器 輸出數(shù)據(jù)定標(biāo)移位器 (輸出移位器 )有一個(gè) 32bit的輸入和一個(gè) 16bit的輸出。它們分別是累加器的 32bit輸出和 16位的數(shù)據(jù)總線輸入。 輸出移位器拷貝累加器的 32位數(shù)據(jù),并對(duì)
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號(hào)-1