TigerSHARC系列DSP應(yīng)用教程-for2012秋季_第1頁
TigerSHARC系列DSP應(yīng)用教程-for2012秋季_第2頁
TigerSHARC系列DSP應(yīng)用教程-for2012秋季_第3頁
TigerSHARC系列DSP應(yīng)用教程-for2012秋季_第4頁
TigerSHARC系列DSP應(yīng)用教程-for2012秋季_第5頁
已閱讀5頁,還剩135頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

PAGE140PAGETigerSHARC系列DSP應(yīng)用教程蘇濤崔向陽西安電子科技大學(xué)雷達(dá)信號(hào)處理國家重點(diǎn)實(shí)驗(yàn)室2012年10月

目錄TigerSHARC系列DSP應(yīng)用教程 1第1章DSP技術(shù)綜述 31.1數(shù)字信號(hào)處理器的發(fā)展和特點(diǎn) 31.2數(shù)字信號(hào)處理器的應(yīng)用領(lǐng)域 3第2章ADSP-TS201S處理器結(jié)構(gòu)與功能 32.1ADSP-TS201S處理器概述 32.2ADSP-TS201S的計(jì)算塊 32.2.1寄存器組 32.2.3CLU 32.2.4乘法器 32.2.5移位器 32.3IALU 32.3.1IALU寄存器 32.3.2IALU算術(shù)、邏輯和函數(shù)操作 32.3.3IALU執(zhí)行狀態(tài)與執(zhí)行條件 32.3.4IALU執(zhí)行條件 32.3.5IALU數(shù)據(jù)尋址和傳送操作 32.4程序控制器 32.5存儲(chǔ)器組織 32.5.1主機(jī)尋址空間 32.5.2處理器內(nèi)部存儲(chǔ)空間 32.5.3外部存儲(chǔ)器尋址空間 32.5.4多處理器尋址空間 32.6鏈路口 32.6.1鏈路口寄存器 32.6.2鏈路口模式設(shè)置 32.6.3鏈路口DMA 32.6.4鏈路口連接與通信 32.6.5鏈路口服務(wù)請(qǐng)求中斷 32.7SDRAM接口 32.7.1概述 32.7.2SDRAM控制寄存器(SDRCON) 32.8DMA 32.8.1概述 32.8.2DMA狀態(tài)和控制寄存器組 32.8.3鏈?zhǔn)紻MA 32.8.4DMA中斷 32.9中斷 32.9.1中斷的處理過程 32.10ADSP-TS201S引腳說明 3第三章TigerSHARC指令系統(tǒng) 33.1TIGERSHARC指令系統(tǒng)特點(diǎn) 33.1.1TigerSHARC結(jié)構(gòu)與指令特點(diǎn) 33.1.2指令行結(jié)構(gòu) 33.2指令集 33.2.1ALU指令 33.2.2乘法指令 33.2.3移位器指令 33.2.4IALU指令 33.2.5程序流控制指令 3第4章ADSP的軟件開發(fā) 34.1DSP的軟件開發(fā)流程 34.2開發(fā)工具VisualDSP++概述 34.3集成開發(fā)環(huán)境 34.3.1創(chuàng)建一個(gè)新的工程文件 34.3.2設(shè)置工程選項(xiàng) 34.3.3添加或編輯工程源文件 34.3.4生成一個(gè)調(diào)試版的工程 34.3.5調(diào)試一個(gè)工程 34.3.6生成一個(gè)正式版的工程 34.4選擇合適的調(diào)試平臺(tái) 34.4.1安裝仿真器驅(qū)動(dòng)軟件 34.4.2選擇調(diào)試平臺(tái) 34.5Debugger工具 34.5.1程序調(diào)試(Debug)操作 34.5.2程序性能分析操作 34.5.3設(shè)置觀察點(diǎn)和斷點(diǎn) 34.5.4模仿硬件環(huán)境 34.5.5寄存器窗口操作 34.5.6存儲(chǔ)器窗口操作 34.5.7其它窗口操作 34.6編寫鏈接描述文件 34.7編程練習(xí) 34.7.1DFT匯編例子 34.7.2DFTC程序例子 34.7.3FIR匯編的例子 34.7.4SDRAM和內(nèi)部存儲(chǔ)器的DMA通信(利用EZ-KIT) 34.7.5編寫C程序,建立磁盤文件,練習(xí)讀寫數(shù)據(jù) 34.7.6調(diào)試器和EZ-KIT板的性能比較 34.7.7用ADSP_TS201EZ-KIT板實(shí)現(xiàn)定時(shí)器 34.7.8用鏈路口實(shí)現(xiàn)數(shù)據(jù)傳輸 34.7.9DSP實(shí)驗(yàn)課大作業(yè)設(shè)計(jì) 3

第1章DSP技術(shù)綜述數(shù)字信號(hào)處理相對(duì)于模擬信號(hào)處理有很大的優(yōu)越性,表現(xiàn)在精度高、靈活性大、可靠性好、易于大規(guī)模集成等方面。隨著人們對(duì)實(shí)時(shí)信號(hào)處理要求的不斷提高和大規(guī)模集成電路技術(shù)的迅速發(fā)展,數(shù)字信號(hào)處理技術(shù)也發(fā)生著日新月異的變革。1.1數(shù)字信號(hào)處理器的發(fā)展和特點(diǎn)實(shí)時(shí)數(shù)字信號(hào)處理技術(shù)的核心和標(biāo)志是數(shù)字信號(hào)處理器(DSP)。數(shù)字信號(hào)處理有別于普通的科學(xué)計(jì)算與分析,它強(qiáng)調(diào)運(yùn)算處理的實(shí)時(shí)性,因此DSP除了具備普通微處理器所強(qiáng)調(diào)的高速運(yùn)算和控制功能外,針對(duì)實(shí)時(shí)數(shù)字信號(hào)處理,在處理器結(jié)構(gòu)、指令系統(tǒng)、指令流程上做了很大的改動(dòng),其結(jié)構(gòu)特點(diǎn)如下:DSP普遍采用了數(shù)據(jù)總線和程序總線分離的哈佛結(jié)構(gòu)及改進(jìn)的哈佛結(jié)構(gòu),比傳統(tǒng)處理器的馮·諾依曼結(jié)構(gòu)有更高的指令執(zhí)行速度;DSP大多采用流水技術(shù),即每條指令都由片內(nèi)多個(gè)功能單元分別完成取指、譯碼、取數(shù)、執(zhí)行等多個(gè)步驟,從而在不提高時(shí)鐘頻率的條件下減少了每條指令的執(zhí)行時(shí)間;片內(nèi)有多條總線可以同時(shí)進(jìn)行取指和多個(gè)數(shù)據(jù)存取操作,并且有輔助寄存器用于尋址,它們可以在尋址訪問前或訪問后自動(dòng)修改內(nèi)容,以指向下一個(gè)要訪問的地址;針對(duì)濾波、相關(guān)、矩陣運(yùn)算等需要大量乘法累加運(yùn)算的特點(diǎn),DSP配有獨(dú)立的乘法器和加法器,使得同一時(shí)鐘周期內(nèi)可以完成相乘、累加運(yùn)算,最新出現(xiàn)的如ADSP-TS101、ADSP-TS201系列的DSP可以同時(shí)完成乘、加、減各2次運(yùn)算,大大加快了FFT的蝶形運(yùn)算速度;許多DSP帶有DMA通道控制器,以及串口通信等,配合片內(nèi)多總線結(jié)構(gòu),數(shù)據(jù)塊傳送速度大大提高;配有中斷處理器和定時(shí)控制器,可以很方便地構(gòu)成一個(gè)小規(guī)模系統(tǒng);具有軟、硬件等待功能,能與各種存儲(chǔ)器連接。數(shù)字信號(hào)處理器(DSP)、通用微處理器(MPU)、微控制器(MCU)三者的區(qū)別在于:DSP面向高性能、重復(fù)性、數(shù)值運(yùn)算密集型的實(shí)時(shí)處理;MPU大量用于計(jì)算機(jī);MCU則用于以控制為主的處理過程。而DSP本身具有以下功能,提高了實(shí)時(shí)數(shù)字信號(hào)處理的性能:單指令周期的乘、加操作;特殊的高速尋址方式,可以在其他操作進(jìn)行的同時(shí)完成地址寄存器指針的修改,并具有循環(huán)尋址、位反序?qū)ぶ饭δ?。循環(huán)尋址用于FIR濾波器,可以省去相當(dāng)于遲延線功能的大量數(shù)據(jù)移動(dòng),用于FFT則可以緊湊地存放旋轉(zhuǎn)因子表;位反序有利于FFT的快速完成;針對(duì)實(shí)時(shí)處理所設(shè)計(jì)的存儲(chǔ)器接口,能在單指令周期時(shí)間內(nèi)完成多次存儲(chǔ)器或I/O設(shè)備訪問;專門的指令集和較長的指令字,一個(gè)指令字同時(shí)控制片內(nèi)多個(gè)功能單元的操作;單片系統(tǒng),易于小型化設(shè)計(jì);低功耗,一般為0.5—4W,采用低功耗技術(shù)的DSP只有0.1W,可用電池供電,對(duì)嵌入式系統(tǒng)很適合,而新型MPU,如Pentium、PowerPC等功耗達(dá)20-50W。因此,DSP的運(yùn)算速度要高得多。以FFT、相關(guān)為例,高性能DSP不僅處理速度是MPU的4~10倍,而且可以流水無間斷地完成數(shù)據(jù)的實(shí)時(shí)輸入和輸出。DSP結(jié)構(gòu)相對(duì)單一,普遍采用匯編語言編程,其任務(wù)完成時(shí)間的可預(yù)測(cè)性相對(duì)于結(jié)構(gòu)和指令復(fù)雜(超標(biāo)量指令)、嚴(yán)重依賴于編譯系統(tǒng)的MPU要強(qiáng)得多。以一個(gè)FIR濾波器為例,每輸入一個(gè)數(shù)據(jù),對(duì)應(yīng)每階濾波器系統(tǒng)需要一次乘、一次加、一次取指、兩次取數(shù),有時(shí)還需要專門的數(shù)據(jù)移動(dòng)操作,DSP可以單周期完成乘加并行操作以及3~4次數(shù)據(jù)存取操作,而普通MPU至少需要4個(gè)指令周期,因此在相同的指令周期和片內(nèi)緩存條件下,DSP是MPU運(yùn)算速度的4倍以上。正是基于DSP的這些優(yōu)勢(shì),在高性能通用微處理器片內(nèi)已經(jīng)融入了DSP的功能,從而使計(jì)算機(jī)在網(wǎng)絡(luò)通信、語音圖像處理、實(shí)時(shí)數(shù)據(jù)分析等方面的效率大大提高。自1985年第一片數(shù)字信號(hào)處理器TMS320C10產(chǎn)生以來,DSP發(fā)展大致經(jīng)歷了多個(gè)階段,形成了目前DSP產(chǎn)品的三類檔次:第一類是低成本、低功耗、高性價(jià)比的16bit定點(diǎn)DSP,應(yīng)用最廣泛,代表產(chǎn)品是TMS320C2000、TMS320C5000、Blackfin等型號(hào);第二類是32bit浮點(diǎn)DSP,目前代表產(chǎn)品有TMS320C3x、ADSP2106x等型號(hào);第三類是性能更高的DSP,如定點(diǎn)的TMS320C62xx、TMS320C64xx,浮點(diǎn)的TMS320C67xx、ADSP-TS10x、ADSP-TS20x等型號(hào)。不同類型的DSP適用于不同的場(chǎng)合。定點(diǎn)DSP可以勝任大多數(shù)數(shù)字信號(hào)處理應(yīng)用,速度比浮點(diǎn)DSP快,成本、功耗比浮點(diǎn)DSP低;但在某些場(chǎng)合,當(dāng)信號(hào)處理方式復(fù)雜、數(shù)據(jù)的動(dòng)態(tài)范圍很大時(shí),按定點(diǎn)處理就會(huì)發(fā)生數(shù)據(jù)上溢出或下溢出,使信號(hào)處理無法進(jìn)行。如果仍用定點(diǎn)DSP,以移位定標(biāo)或模擬浮點(diǎn)運(yùn)算的方式,將使程序執(zhí)行速度大大降低。若采用浮點(diǎn)DSP,就解決了這些問題。常見的16bit定點(diǎn)DSP動(dòng)態(tài)范圍僅96dB,每增加1bit,動(dòng)態(tài)范圍增加6dB;而32bit浮點(diǎn)數(shù)據(jù)的動(dòng)態(tài)范圍為1536dB。因此,浮點(diǎn)DSP的處理性能在許多情況下要比定點(diǎn)DSP高得多。32位浮點(diǎn)DSP也可以完成32位定點(diǎn)運(yùn)算(與定點(diǎn)DSP用法一致),目前的浮點(diǎn)DSP還具備更大的存儲(chǔ)訪問空間。更重要的是,浮點(diǎn)DSP的匯編程序比定點(diǎn)DSP的匯編程序簡單:、易讀、易編程、易調(diào)試,產(chǎn)生的代碼也短,與常用的C編程方法相近,因此目前高級(jí)語言(如C語言)編譯器更適合于浮點(diǎn)DSP,這使得普通計(jì)算機(jī)上的源代碼無需大的修改,就可以較方便地移植到DSP設(shè)計(jì)中。雖然目前已經(jīng)有了峰值運(yùn)算能力超過每秒10億次的DSP,但相對(duì)于人們要求的每秒幾百億次、上千億次運(yùn)算來說仍遠(yuǎn)遠(yuǎn)不夠。受到開關(guān)速度極限的限制,進(jìn)一步提高主頻所遇到的難度和付出的成本越來越大,單處理器性能的提高受到制約。為此,引入了并行處理技術(shù)。其實(shí)在DSP內(nèi)部的多級(jí)流水處理、同時(shí)相乘/累加進(jìn)行等功能中已經(jīng)融入了片內(nèi)并行技術(shù)。TMS320C6x采用超長指令字(VLIW)和多級(jí)流水線技術(shù),在每條256bit的指令字中指定了多條流水線、多個(gè)處理單元的并行操作。在DSP外部也采用并行技術(shù)。以TMS320C4x、SHARC、ADSP-TS10x和ADSP-TS20x等并行DSP為用戶提供了設(shè)計(jì)大規(guī)模并行系統(tǒng)的硬件基礎(chǔ),它們都提供了多通信(鏈路)口、多DSP共享總線的控制邏輯。利用通信(鏈路)口可以組成松耦合的分布式并行系統(tǒng),利用共享總線控制邏輯,可方便地直接構(gòu)成共享總線/存儲(chǔ)器的多DSP系統(tǒng),即緊耦合的總線共享式并行系統(tǒng)。1.2數(shù)字信號(hào)處理器的應(yīng)用領(lǐng)域隨著DSP性能的迅速提高和成本價(jià)格的大幅度下降,DSP的應(yīng)用范圍不斷擴(kuò)大,幾乎遍及整個(gè)電子領(lǐng)域,常見的典型應(yīng)用有:1.通用數(shù)字信號(hào)處理數(shù)字濾波、卷積、相關(guān)、FFT、希爾伯特變換、自適應(yīng)濾波、窗函數(shù)、波形發(fā)生等。2.通信高速調(diào)制解調(diào)器、編/譯碼器、自適應(yīng)均衡器、傳真、程控交換機(jī)、蜂房移動(dòng)電話、數(shù)字基站、手機(jī)、回音消除、噪聲抑制、電視會(huì)議、保密通信、衛(wèi)星通信、TDMA/PDMA/CDMA等各種通信制式。隨著互聯(lián)網(wǎng)絡(luò)的迅猛發(fā)展,DSP又在網(wǎng)絡(luò)管理/服務(wù)、信息轉(zhuǎn)發(fā)、IP電話等新領(lǐng)域扮演著重要角色,而軟件無線電的提出和發(fā)展進(jìn)一步增強(qiáng)了DSP在無線電通信系統(tǒng)的作用。3.語音識(shí)別語音識(shí)別、語音合成、矢量編碼、語音信箱。4.圖形/圖像處理三維圖像變換、模式識(shí)別、圖像增強(qiáng)、動(dòng)畫、電子出版、電子地圖等。5.自動(dòng)控制磁盤、光盤、打印機(jī)伺服控制、發(fā)動(dòng)機(jī)控制。6.儀器儀表測(cè)量數(shù)據(jù)譜分析、自動(dòng)監(jiān)測(cè)及分析、靜態(tài)分析、勘探、模擬試驗(yàn)。7.醫(yī)學(xué)電子助聽器、CT掃描、超聲波、心腦電圖、核磁共振、醫(yī)療監(jiān)護(hù)等。8.軍事與尖端科技雷達(dá)和聲納信號(hào)處理、雷達(dá)成像、自適應(yīng)波束合成、陣列天線信號(hào)處理、導(dǎo)彈制導(dǎo)、火控系統(tǒng)、戰(zhàn)場(chǎng)C3I系統(tǒng)、導(dǎo)航、全球定位GPS、目標(biāo)搜索跟蹤、尖端武器試驗(yàn)、航空航天試驗(yàn)、宇宙飛船、偵察工具。9.計(jì)算機(jī)與工作站陣列處理機(jī)、計(jì)算加速卡、圖形加速卡、多媒體計(jì)算機(jī)。10.消費(fèi)電子數(shù)字電視、高清晰度電視、圖像/聲音壓縮解壓器、DVD/CD播放機(jī)、游戲機(jī)、數(shù)字留言/應(yīng)答機(jī)、汽車電子裝置、音響合成、電子安全系統(tǒng)、家電電腦控制裝置。

第2章ADSP-TS201S處理器結(jié)構(gòu)與功能2.1ADSP-TS201S處理器概述ADSP-TS201S是ADI公司的高性能數(shù)字信號(hào)處理器TigerSHARC系列中最強(qiáng)大的一員,這一系列還包括有:ADSP-TS101、ADSP-TS202等。ADSP-TS201S內(nèi)核工作主頻達(dá)600MHz,片內(nèi)存儲(chǔ)器增加到24Mbit,加之其合理的結(jié)構(gòu)以及高帶寬的I/O接口,使得ADSP-TS201S在無線通信、軍事、圖像等高端市場(chǎng)的應(yīng)用更加廣泛。圖2.1給出了ADSP-TS201S的功能框圖。圖2.1ADSP-TS201S的功能框圖ADSP-TS201S的主要性能如下:高達(dá)600MHz的運(yùn)行速度,1.67ns指令周期;24Mbit片內(nèi)DRAM;25mm×25mm(576-Ball)PBGA封裝;雙運(yùn)算核,每個(gè)計(jì)算塊包含1個(gè)ALU、1個(gè)乘法器、1個(gè)移位器、一個(gè)寄存器組和1個(gè)通信邏輯運(yùn)算單元;雙整數(shù)ALU,提供數(shù)據(jù)尋址和指針操作功能;集成I/O接口,包括14通道的DMA控制器,外部總線,4個(gè)鏈路口,SDRAM控制器,可編程標(biāo)志引腳,2個(gè)定時(shí)器及其輸出指示;IEEE1149.1兼容的JTAG端口用于在線仿真;通過共享外部總線可無縫連接多達(dá)8個(gè)TS201。其主要優(yōu)點(diǎn)有:提供高性能靜態(tài)超標(biāo)量DSP操作,專門優(yōu)化適用于通信和需要多DSP處理器的應(yīng)用;優(yōu)異的DSP算法和I/O性能表現(xiàn);DMA控制器支持14個(gè)DMA通道,可完成片內(nèi)存儲(chǔ)器,片外存儲(chǔ)器,存儲(chǔ)器映射外設(shè),鏈路口,主機(jī)處理器和其他多處理器之間的低開銷的高速傳輸;非常靈活的指令集和支持高級(jí)語言的DSP結(jié)構(gòu),便于DSP編程;可擴(kuò)展的多處理器系統(tǒng),連接時(shí)僅需很低的通信開銷;ADSP-TS201SDSP內(nèi)核的結(jié)構(gòu)ADSP-TS201S系列的DSP內(nèi)核主要包括運(yùn)算塊、程序控制器、整型ALU、數(shù)據(jù)對(duì)齊緩沖器和中斷控制器等。雙運(yùn)算模塊ADSP-TS201S的運(yùn)算模塊包括兩個(gè)能通過相互獨(dú)立或一起工作,執(zhí)行通用運(yùn)算來實(shí)現(xiàn)單指令多數(shù)據(jù)(SIMD)引擎的計(jì)算單元,分別稱為運(yùn)算塊X,運(yùn)算塊Y。每個(gè)運(yùn)算模塊又包含一個(gè)寄存器組和4個(gè)獨(dú)立的運(yùn)算單元:算術(shù)邏輯運(yùn)算單元(ALU)、通信邏輯處理單元(CLU)、乘法器、移位器。這些模塊都能處理定點(diǎn)數(shù)和浮點(diǎn)數(shù),可滿足各種不同的處理要求。每個(gè)運(yùn)算塊包含的通用寄存器組是32位寬、多端口的,用于運(yùn)算單元與數(shù)據(jù)總線之間數(shù)據(jù)傳輸,存儲(chǔ)中間結(jié)果。這些寄存器都可以單字、雙字、四字寄存器方式訪問。ALU完成定點(diǎn)數(shù)和浮點(diǎn)數(shù)的算術(shù)運(yùn)算、定點(diǎn)數(shù)的邏輯運(yùn)算,大多數(shù)ALU運(yùn)算的數(shù)據(jù)源和目的地均為運(yùn)算塊的寄存器組。CLU完成通信處理,支持通信處理的算法,如Viterbi解碼、Turbocode解碼、CDMA系統(tǒng)解調(diào)。乘法器主要完成定點(diǎn)數(shù)和浮點(diǎn)數(shù)的乘法運(yùn)算,定點(diǎn)數(shù)的乘累加運(yùn)算,并且支持各種定點(diǎn)數(shù)和浮點(diǎn)數(shù)的數(shù)據(jù)格式。移位器完成算術(shù)和邏輯移位,比特和比特流控制,域存儲(chǔ)和提取操作。雙整數(shù)ALU(IALU)ADSP-TS201S擁有兩個(gè)IALU。能提供強(qiáng)大的地址產(chǎn)生能力和執(zhí)行通用的整數(shù)操作。每個(gè)IALU能夠:(1)為數(shù)據(jù)提供存儲(chǔ)器地址,為尋址提供指針的更新;(2)支持循環(huán)緩沖和位反序?qū)ぶ罚?3)實(shí)現(xiàn)通用的整數(shù)操作,提高了編程的靈活性;(4)包含一個(gè)由32個(gè)字構(gòu)成的寄存器組。作為地址產(chǎn)生器,IALU完成立即或間接尋址(預(yù)修改或后修改),不受限制地完成存儲(chǔ)器地址取模和位反序。每個(gè)IALU能夠指定單、雙、四字的內(nèi)存訪問。IALU通過硬件支持來實(shí)現(xiàn)循環(huán)緩沖、位反序和零開銷循環(huán)。每個(gè)IALU提供了4個(gè)循環(huán)緩沖的寄存器,因此程序能夠建立最多8個(gè)循環(huán)緩沖器,循環(huán)緩沖器的起始地址是任意的。程序控制器ADSP-TS201S的程序控制器支持如下功能:可靈活的使用匯編語言和C/C++,編寫能夠相應(yīng)中斷的程序。以高吞吐量處理中斷并且不存在錯(cuò)誤的指令周期。10個(gè)指令周期流水線——四個(gè)周期取指流水,六個(gè)周期執(zhí)行流水——運(yùn)算結(jié)果將會(huì)在操作數(shù)可用的兩個(gè)周期以后得到。提供指令尋址內(nèi)存地址;控制器的指令對(duì)齊緩沖器(IAB)可以緩存最多5條預(yù)取來的指令行,以后續(xù)等待執(zhí)行,程序控制器從IAB中提取指令行,并將指令發(fā)給內(nèi)核模塊來執(zhí)行。管理由CJMP,CALL,RTI,RTS指令,循環(huán)結(jié)構(gòu),條件,中斷和軟件異常決定的程序結(jié)構(gòu)和程序流程。用分支預(yù)測(cè)和128入口分支目標(biāo)緩沖器(BTB)來減少分支跳轉(zhuǎn)的延時(shí),以實(shí)現(xiàn)條件和無條件跳轉(zhuǎn)指令的高效執(zhí)行和零消耗循環(huán);正確預(yù)測(cè)跳轉(zhuǎn)是零開銷的,能夠減少5~9個(gè)周期的開銷。中斷控制器DSP支持嵌套和非嵌套中斷。每種中斷類型在中斷向量表中擁有一個(gè)寄存器,并且在中斷鎖存寄存器和中斷屏蔽寄存器中占一位。除了可以被設(shè)置為邊沿觸發(fā)或電平觸發(fā)以外,其他中斷被固定設(shè)置為邊沿觸發(fā)(或電平觸發(fā))。DSP能夠區(qū)分硬件中斷和軟件異常,并分別處理。當(dāng)軟件出現(xiàn)異常時(shí),DSP中止流水線中的所有指令。當(dāng)硬件中斷發(fā)生時(shí),DSP將繼續(xù)執(zhí)行已經(jīng)在流水線中的指令。ADSP-TS201SDSP總線的結(jié)構(gòu)和片內(nèi)DRAM存儲(chǔ)器ADSP-TS201S的總線結(jié)構(gòu)分為內(nèi)部總線和外部總線,外部總線由外部引腳連接到處理器外。內(nèi)部總線ADSP-TS201S處理器內(nèi)核有3條相互獨(dú)立的128位的內(nèi)部數(shù)據(jù)總線和32位的地址總線(稱為I-BUS、J-BUS、K-BUS),每條數(shù)據(jù)總線借助接口橋與所有內(nèi)部存儲(chǔ)器塊相連。每條數(shù)據(jù)總線上,1個(gè)周期內(nèi)允許傳輸多達(dá)4條指令或4個(gè)排列好的數(shù)據(jù)。片內(nèi)系統(tǒng)單元用SOC-BUS和S-BUS總線訪問存儲(chǔ)器。在一個(gè)周期內(nèi),每個(gè)存儲(chǔ)器塊只能允許一次訪問,所以應(yīng)用中如果能設(shè)法把各個(gè)訪問指向不同的存儲(chǔ)器塊,則這些訪問可同時(shí)進(jìn)行。外部總線與接口ADSP-TS201S的片內(nèi)系統(tǒng)總線(SOCBUS)通過SOC結(jié)構(gòu)與S-BUS連接外部總線及存儲(chǔ)器系統(tǒng),如圖2.2所示,所有外設(shè)都通過片內(nèi)系統(tǒng)總線,SOC接口與S-BUS連接,進(jìn)而與存儲(chǔ)器系統(tǒng)、處理器核內(nèi)寄存器交換數(shù)據(jù)。圖2.2ADSP-TS201S的SOC總線結(jié)構(gòu)與接口外部總線包括32或64位數(shù)據(jù)總線、32位地址總線以及各種控制信號(hào)。其中大多數(shù)信號(hào)是雙向的,因?yàn)樵诠蚕砜偩€的多處理器系統(tǒng)中,TigerSHARC可以是連接在外部總線上的主控處理器,也可以是從處理器。為了提高時(shí)鐘的速率,TigerSHARC處理器使用了流水式外部總線,其流水深度是可編程的,可完成處理器間通信、訪問同步SRAM和DRAM(即SSRAM和SDRAM)。最快速的協(xié)議是流水協(xié)議。TigerSHARC多處理器系統(tǒng)的處理器之間就是使用這個(gè)協(xié)議通信。此外,TigerSHARC還能通過此協(xié)議與其他主機(jī)或存儲(chǔ)器系統(tǒng)連接。流水協(xié)議的峰值吞吐率為每個(gè)外部周期傳輸一個(gè)數(shù)據(jù),其實(shí)際的吞吐率可以保持在與峰值吞吐率非常接近的水平,其中的一個(gè)原因是此協(xié)議對(duì)連續(xù)的數(shù)據(jù)流的地址范圍沒有限制。另一快速協(xié)議是SDRAM。這個(gè)協(xié)議由工業(yè)標(biāo)準(zhǔn)的SDRAM芯片定義。TigerSHARC有一個(gè)片上SDRAM控制器,它可以提供訪問SDRAM所需的所有控制信號(hào)(/RAS,/CAS,/SDWE,SDCKE,LDQM,HDQM),而且可以初始化、刷新SDRAM。SDRAM的峰值吞吐率是每個(gè)周期傳輸一個(gè)數(shù)據(jù)。如在同一頁中連續(xù)訪問,則實(shí)際吞吐率可以保持在非常接近最大值的水平,此條件對(duì)DMA塊傳輸也同樣適用。但對(duì)SDRAM的單次訪問開銷是很大的。TigerSHARC還支持慢速設(shè)備協(xié)議。慢速設(shè)備協(xié)議適用于較慢速的設(shè)備。對(duì)于大多數(shù)系統(tǒng),我們建議將這些慢速設(shè)備連接在二級(jí)總線上,因?yàn)樗鼈儠?huì)增加總線負(fù)擔(dān),影響快速協(xié)議。當(dāng)然,慢速設(shè)備仍可以直接連接到TigerSHARC外部總線上。外部總線有以下特點(diǎn):總線寬度64位或32位,對(duì)存儲(chǔ)器、多處理器或主機(jī)接口可獨(dú)立配置此寬度;流水傳輸,且流水級(jí)數(shù)可編程;IDLE狀態(tài)可編程;通過使用ACK引腳,可插入等待周期;EPROM和FLASH接口為8位數(shù)據(jù)總線,等待周期數(shù)固定,可讀寫;主機(jī)接口;SDRAM接口不插入等待周期;支持慢速設(shè)備;基于分布式總線仲裁的多處理器無縫連接;通過握手方式,支持與外部I/O設(shè)備的DMA傳輸;支持外部存儲(chǔ)器與I/O設(shè)備間的DMA飛躍操作。片內(nèi)DRAM存儲(chǔ)器ADSP-TS201S擁有24Mbit片上DRAM存儲(chǔ)器,該存儲(chǔ)器被分為6個(gè)4Mbit的塊,每個(gè)存儲(chǔ)塊(M0,M2,M4,M6,M8,M10)能夠存儲(chǔ)程序、數(shù)據(jù)或同時(shí)存儲(chǔ)數(shù)據(jù)和程序。所以,在應(yīng)用中能夠根據(jù)具體需要配置。將程序和數(shù)據(jù)存儲(chǔ)在不同的塊中時(shí),DSP就可以在取指令的同時(shí)訪問數(shù)據(jù)。每個(gè)片內(nèi)存儲(chǔ)塊通過總線橋與處理器內(nèi)部4條128位寬的內(nèi)部總線相連。該連接使DSP能夠在1個(gè)周期內(nèi)完成4個(gè)128位內(nèi)部傳輸。DSP內(nèi)部總線結(jié)構(gòu)提供了33.6GB/s的存儲(chǔ)器帶寬,使內(nèi)核和I/O可以在一個(gè)周期內(nèi)訪問8個(gè)32位數(shù)據(jù)字(256位)和4個(gè)32位指令。DSP的這種靈活的存儲(chǔ)器結(jié)構(gòu),使其能完成如下功能:DSP內(nèi)核和I/O在同一周期里訪問不同的存儲(chǔ)塊;DSP內(nèi)核可并行訪問3個(gè)存儲(chǔ)塊:1個(gè)取指令,2個(gè)訪問數(shù)據(jù);可編程的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分區(qū);程序可以用16位、32位、64位或128位的形式訪問所有存儲(chǔ)器(使用DAB)。ADSP-TS201S的I/O結(jié)構(gòu)ADSP-TS201S由專門的I/O處理器用于I/O訪問,I/O訪問方式可以是內(nèi)核控制方式,也可以是DMA方式,此外,ADSP-TS201S還有專門的SDRAM控制器,專門產(chǎn)生SDRAM訪問時(shí)所需的控制信號(hào)。外部總線(片外存儲(chǔ)器和外設(shè)接口)ADSP-TS201S提供了外部總線用于連接外部存儲(chǔ)器和其他外設(shè)。4G字的尋址空間在DSP統(tǒng)一的尋址空間中。獨(dú)立的片內(nèi)總線(4條128位數(shù)據(jù)總線,4條32位地址總線)通過復(fù)用開關(guān)連接外部系統(tǒng)總線,該總線提供了64位的數(shù)據(jù)總線和32位的地址總線。外部端口能提供1000MB/s的訪問速度。主機(jī)接口ADSP-TS201S在外部總線和主機(jī)處理器之間提供了方便的接口。為了能和各種主機(jī)處理器配合工作,主機(jī)接口支持流水線或慢速協(xié)議,用于從機(jī)訪問。每種協(xié)議帶有可編程的傳輸參數(shù),例如空閑等待、流水深度、插入等待狀態(tài)等。主機(jī)接口支持主機(jī)初始化的突發(fā)傳輸模式。在主機(jī)發(fā)出開始地址后,使信號(hào)有效,DSP將會(huì)在主機(jī)繼續(xù)有效時(shí)增加地址。主機(jī)接口提供了死鎖恢復(fù)機(jī)制,使得主機(jī)能從DSP死鎖中恢復(fù)。信號(hào)提供了死鎖恢復(fù)機(jī)制。當(dāng)主機(jī)有效時(shí),DSP取消當(dāng)前的傳輸,并使信號(hào)有效,放棄了外部總線。主機(jī)能夠直接讀寫ADSP-TS201S的片內(nèi)存儲(chǔ)器,能夠訪問DSP的大多數(shù)寄存器,包括DMA控制寄存器。多處理器接口ADSP-TS201S通過外部總線和鏈路口為多處理器DSP系統(tǒng)設(shè)計(jì)集成了無縫多處理器支持功能。這種多處理器接口為處理器間通信提供了最大的帶寬,包括:共享總線支持多達(dá)8個(gè)DSP;為無縫多處理器連接提供片內(nèi)仲裁;用于點(diǎn)對(duì)點(diǎn)通信的鏈路口。SDRAM控制器SDRAM控制器控制ADSP-TS201S與同步DRAM間的數(shù)據(jù)傳輸,每個(gè)SCLK周期傳送32位或64位數(shù)據(jù)。 SDRAM接口提供與標(biāo)準(zhǔn)SDRAM——16Mbit、64Mbit、128Mbit和256Mbit的無縫接口。有4個(gè)BANK,每個(gè)都支持最大達(dá)64M字×32位的SDRAM。SDRAM被映射到DSP統(tǒng)一的存儲(chǔ)空間中。EPROM接口ADSP-TS201S能夠被配置為復(fù)位后從外部8位EPROM自動(dòng)引導(dǎo)。復(fù)位后自動(dòng)從EPROM裝載程序到片內(nèi)存儲(chǔ)器,裝載過程讀訪問時(shí)插入16個(gè)等待周期。引導(dǎo)時(shí)引腳用作EPROM的片選信號(hào)。EPROM引導(dǎo)過程使用DMA通道0,將字節(jié)型數(shù)據(jù)打包成32位的指令。應(yīng)用程序也可以通過DMA隨意訪問EPROM。DMA控制器ADSP-TS201S片上DMA控制器擁有14個(gè)DMA通道,提供無處理器核干預(yù)的零開銷數(shù)據(jù)傳輸。DMA控制器獨(dú)立工作,對(duì)DSP內(nèi)核是不可見的。DMA可以在以下部件之間進(jìn)行。片內(nèi)存儲(chǔ)器、外部存儲(chǔ)器及存儲(chǔ)器映射的外設(shè)共享總線上的其他DSP的片內(nèi)存儲(chǔ)器、主機(jī)處理器或鏈路口外部存儲(chǔ)器、外設(shè)或鏈路口外部主處理器和片內(nèi)存儲(chǔ)器或鏈路口鏈路口ADSP-TS201S的4個(gè)鏈路口提供額外4位的全雙向I/O能力。以雙倍速率(CCLK上升和下降沿)鎖存數(shù)據(jù),當(dāng)內(nèi)核時(shí)鐘為500MHz時(shí),即單方向速率可高達(dá)500MB/s,每個(gè)鏈路口雙向通信最高吞吐量可達(dá)1GB/s。定時(shí)器和通用I/OADSP-TS201S有一個(gè)定時(shí)器溢出引腳(TIM0E),當(dāng)編程的定時(shí)器計(jì)數(shù)滿時(shí)產(chǎn)生高電平輸出。有4個(gè)可編程的I/O引腳(FLAG3~0),可以用作輸入或輸出。作為輸出使用時(shí),這些引腳可以驅(qū)動(dòng)外設(shè);作為輸入時(shí),可以用作條件分支指令的判斷條件。2.2ADSP-TS201S的計(jì)算塊 DSP有兩個(gè)計(jì)算塊——計(jì)算塊X和計(jì)算塊Y。每個(gè)塊包含一個(gè)通用寄存器組和四個(gè)獨(dú)立的計(jì)算部件——ALU、CLU、乘法器和移位器。2.2.1寄存器組計(jì)算塊的選擇所用的寄存器在哪個(gè)計(jì)算塊里,用寄存器名前綴X和Y表示:X表示只在計(jì)算塊X中,Y表示只在計(jì)算塊Y中,XY(或沒有前綴)表示在兩個(gè)塊中。計(jì)算塊前綴允許你選擇在一個(gè)還是在兩個(gè)計(jì)算塊里運(yùn)行指令,該前綴提供單指令單數(shù)據(jù)(SISD)和單指令多數(shù)據(jù)(SIMD)模式之間的選擇。如果相同的算法用來處理兩個(gè)通道的數(shù)據(jù),使用SIMD執(zhí)行是最優(yōu)的。值得注意的是,在SISD和SIMD的模式切換無延遲。SISD和SIMD模式總是可以通過簡單地選擇寄存器名而實(shí)現(xiàn)。寄存器寬度選擇 每個(gè)獨(dú)立的寄存器堆寄存器(XR31-0和YR31-0)是32位寬的。為了支持比32位字更寬的數(shù)據(jù)長度,DSP匯編語法允許寄存器組合。Rn表示包含一個(gè)32位(或更少位數(shù))的單寄存器(如R1),Rnd表示包含一個(gè)64位(或更少位數(shù))的雙寄存器(最低位寄存器的序號(hào)要求能被2整除,如R1:0),Rnq表示包含一個(gè)128位(或更少位數(shù))的四寄存器(最低位寄存器的序號(hào)要求能被4整除,如R7:4)。操作數(shù)的長度和格式的選擇 寄存器命名的匯編語法允許選擇操作數(shù)長度和定點(diǎn)或浮點(diǎn)數(shù)據(jù)格式。單、雙和四寄存器(Rs,Rsd,Rsq)保存著指令的操作數(shù)(輸入和輸出)。根據(jù)操作數(shù)長度和定點(diǎn)或浮點(diǎn)格式,一個(gè)寄存器里可放置多個(gè)操作數(shù)。B——表示字節(jié)(8位)數(shù)據(jù);S——表示短字(16位)數(shù)據(jù);無——表示標(biāo)準(zhǔn)字(32位)數(shù)據(jù);L——表示長字(64位)數(shù)據(jù)。 為區(qū)別定點(diǎn)和浮點(diǎn)數(shù)據(jù),用寄存器名前綴F表示寄存器包含浮點(diǎn)數(shù)據(jù)。數(shù)據(jù)格式DSP支持IEEE標(biāo)準(zhǔn)754/854的32位單精度浮點(diǎn)數(shù)據(jù)格式。此外,DSP支持此格式的40位擴(kuò)展精度版本,該版本在其尾數(shù)中增加八位。DSP也支持8、16、32和64位定點(diǎn)格式——小數(shù)和整數(shù)——可以是有符號(hào)數(shù)(2的補(bǔ)碼)或無符號(hào)數(shù)。2.2.2ALU 這個(gè)單元執(zhí)行所有的算術(shù)操作(加/減法),處理的數(shù)據(jù)是定點(diǎn)和浮點(diǎn)格式;執(zhí)行邏輯操作,處理的數(shù)據(jù)是定點(diǎn)格式。ALU也執(zhí)行數(shù)據(jù)轉(zhuǎn)換操作,如定點(diǎn)格式數(shù)據(jù)的擴(kuò)展/壓縮。ALU也運(yùn)行專用通信功能操作,主要支持解碼和CDMA擴(kuò)展操作。在ALU里,這個(gè)功能塊主要是指通信邏輯單元(CLU)。不是所有的ALU操作都支持定點(diǎn)和浮點(diǎn)數(shù)據(jù)。ALU操作和相應(yīng)的支持?jǐn)?shù)據(jù)類型的相關(guān)性如下,在每個(gè)計(jì)算塊里的64位ALU單元支持:定點(diǎn)和浮點(diǎn)算術(shù)操作——加(+)、減(-)、最小值(MIN)、最大值(MAX)、維特比最大值(VMAX)、比較(COMP)、截取(CLIP)和絕對(duì)值(ABS)。僅對(duì)定點(diǎn)數(shù)的算術(shù)操作——增加(INC)、減少(DEC)、疊加(求和)、疊加的并行結(jié)果(PRx=SUM)、1的補(bǔ)碼(ONES)和位FIFO指針增量(BFOINC)。僅對(duì)浮點(diǎn)數(shù)的算術(shù)操作——浮點(diǎn)轉(zhuǎn)換(FLOAT)、定點(diǎn)轉(zhuǎn)換(FIX)、符號(hào)復(fù)制(COPYSIGN)、縮放(SCALB)、倒數(shù)或除法(RECIPS)、平方根或平方根的倒數(shù)(RSQRTS)、尾數(shù)提取(MANT)、指數(shù)提取(LOGB)、運(yùn)算數(shù)擴(kuò)展(EXTD)和擴(kuò)展精度向標(biāo)準(zhǔn)字轉(zhuǎn)換(SNGL)。僅對(duì)定點(diǎn)數(shù)的邏輯操作——AND、ANDNOT、OR、XOR和PASS。僅對(duì)定點(diǎn)數(shù)據(jù)轉(zhuǎn)換(升高/降低)操作——擴(kuò)展(EXPAND)、壓縮(COMPACT)和合并(MERGE)。僅對(duì)定點(diǎn)CLU操作——最大值的Viterbi解碼(VMAX),turbo解碼的雅可比對(duì)數(shù)(TMAX),CDMA解擴(kuò)(DESPREAD),多項(xiàng)式的重新排列(PERMUTE)和格構(gòu)增加/比較/選擇(ACS)。ALU操作支持定點(diǎn)算術(shù)操作和邏輯操作,其操作數(shù)可以是8位、16位、32位、64位寬度;也支持浮點(diǎn)數(shù)算術(shù)操作,其操作可以是32位標(biāo)準(zhǔn)字、40位擴(kuò)展精度字。定點(diǎn)數(shù)據(jù)轉(zhuǎn)換操作的操作數(shù)可以是8位、16位、32位、64位、128位,當(dāng)輸入操作數(shù)是128位,只能用于EXPAND和COMPACT指令。對(duì)于ALU的定點(diǎn)數(shù)CLU操作,其操作數(shù)可以是一個(gè)或兩個(gè)32位數(shù),兩個(gè)或四個(gè)16位數(shù),四個(gè)或八個(gè)8位操作數(shù)。ALU操作ALU對(duì)定點(diǎn)和浮點(diǎn)數(shù)據(jù)執(zhí)行算術(shù)操作,對(duì)定點(diǎn)數(shù)執(zhí)行邏輯操作。DSP將輸入數(shù)據(jù)和輸出結(jié)果均放在計(jì)算塊寄存器中。計(jì)算塊寄存器XR0~XR31和YR0~YR31。ALU用一個(gè)專用雙寄存器——PR寄存器——存放并行結(jié)果。DSP使用PR寄存器完成不同類型的SUM、VMAX和VMIN指令。指令選項(xiàng)大部份ALU指令帶有選項(xiàng),允許靈活的運(yùn)行指令。注意,這些選項(xiàng)細(xì)化指令執(zhí)行,不同的選項(xiàng)適應(yīng)不同的指令群——不是所有的選項(xiàng)都適用所有指令。指令選項(xiàng)出現(xiàn)在指令域末端的圓括弧中。ALU指令選項(xiàng)包括:()有符號(hào)操作,非飽和,向最近舍入,小數(shù)模式(S)有符號(hào)操作,飽和(U)無符號(hào)操作,非飽和,向最近舍入(SU)無符號(hào)操作,飽和(X)ABS擴(kuò)展操作(T)有符號(hào)操作,截?cái)?TU)無符號(hào)操作,截?cái)?Z)對(duì)MAX/MIN,有符號(hào)結(jié)果返回零操作(UZ)對(duì)MAX/MIN,無符號(hào)結(jié)果返回零操作(I)有符號(hào)操作,整數(shù)模式(IU)無符號(hào)操作,整數(shù)模式(IS)有符號(hào)操作,飽和,整數(shù)模式(ISU)無符號(hào)操作,飽和,整數(shù)模式有符號(hào)/無符號(hào)選項(xiàng)DSP用8、16、32或64位表示定點(diǎn)數(shù)據(jù),最多用四個(gè)32位的數(shù)據(jù)寄存器。在ALU中的定點(diǎn)可以是無符號(hào)的或是2的補(bǔ)碼;浮點(diǎn)數(shù)總是原碼表示的。飽和選項(xiàng)有兩種類型的飽和算法——有符號(hào)數(shù)或無符號(hào)數(shù)。對(duì)有符號(hào)數(shù)飽和,無論何時(shí)發(fā)生溢出(AV標(biāo)志被置位),把最大正值或最小負(fù)值作為輸出結(jié)果。無符號(hào)數(shù)飽和,即溢出時(shí),將把最大值或零作為輸出結(jié)果。在輸出格式中,最大值和最小值指的是輸出格式所能表示的最大值和最小值。例如,在16位的短字運(yùn)算中,最大的正數(shù)、最小的負(fù)數(shù)和最大無符號(hào)數(shù)分別是0x7fff,0x8000,和0xffff。擴(kuò)展(ABS)選項(xiàng)對(duì)于ABS指令,X選項(xiàng)提供一個(gè)擴(kuò)展的輸出范圍。沒有X時(shí),輸出范圍是從0到正的最大有符號(hào)數(shù)(0x0到0x7F…F)。ABS使用X選項(xiàng)時(shí),擴(kuò)展輸出范圍從0x0到0x80…0,并且在這個(gè)范圍內(nèi),輸出數(shù)值是無符號(hào)的。截?cái)噙x項(xiàng)ALU指令,支持T選項(xiàng)截?cái)?這個(gè)選項(xiàng)選擇結(jié)果的舍入模式。DSP支持兩種舍入模式——向零舍入和向最近值舍入。定義如下:向最近舍入(不帶T選項(xiàng))。如果舍入前的結(jié)果不能確切地用目的格式表示,則舍入的結(jié)果最接近舍入前的數(shù)值;如果舍入前的結(jié)果恰好是目的格式中最接近的兩個(gè)數(shù)的中間值(相差一個(gè)最低有效位),舍入的結(jié)果是最低有效位為零的數(shù)。向零舍入(使用T選項(xiàng))。如果舍入前的結(jié)果不能確切地用目的格式表示,則舍入的結(jié)果是最接近零的數(shù)值,這與截?cái)嘞嗤7祷亓?最大/最小)選項(xiàng)對(duì)于MAX/MIN指令,如果第二個(gè)輸入寄存器包含最大值(對(duì)于MAX)或最小值(對(duì)于MIN),則Z選項(xiàng)改變操作,返回零值。小數(shù)/整數(shù)的選項(xiàng)DSP用8、16、32或64位表示定點(diǎn)數(shù),最多用四個(gè)32位的數(shù)據(jù)寄存器。在ALU中,小數(shù)或整數(shù)格式可用EXPAND和COMPACT指令。默認(rèn)是小數(shù)格式。I選項(xiàng)選擇整數(shù)模式。ALU執(zhí)行狀態(tài)ALU操作更新計(jì)算塊算術(shù)狀態(tài)(XSTAT和YSTAT)寄存器,用來指示操作結(jié)果的狀態(tài),保存在(XSTAT和YSTAT)寄存器。如表2-1所示表2-1.ALU狀態(tài)標(biāo)志標(biāo)志定義被……更新AZALU定點(diǎn)數(shù)為0和浮點(diǎn)數(shù)下溢出所有ALU操作ANALU負(fù)數(shù)所有ALU操作AVALU上溢出所有算術(shù)操作ACALU進(jìn)位所有定點(diǎn)操作;被浮點(diǎn)操作清零AIALU浮點(diǎn)無效操作所有浮點(diǎn)操作;被定點(diǎn)操作清零ALU操作也更新算術(shù)狀態(tài)(XSTAT和YSTAT)寄存器中的關(guān)聯(lián)狀態(tài)標(biāo)志位。表2-2中XSTAT或YSTAT中的標(biāo)志位給出了最新的ALU操作中ALU的關(guān)聯(lián)狀態(tài)。一旦置位,關(guān)聯(lián)狀態(tài)將保持高,直到被程序明確地清零。表2-2.ALU狀態(tài)相關(guān)聯(lián)的標(biāo)志標(biāo)志定義被……更新AUSALU浮點(diǎn)下溢出,關(guān)聯(lián)位所有浮點(diǎn)操作AVSALU浮點(diǎn)上溢出,關(guān)聯(lián)位所有浮點(diǎn)操作AOSALU定點(diǎn)上溢出,關(guān)聯(lián)位所有定點(diǎn)操作AISALU浮點(diǎn)無效操作,關(guān)聯(lián)位所有浮點(diǎn)操作標(biāo)志位在每個(gè)操作結(jié)束的時(shí)候更新,以便下個(gè)指令域應(yīng)用。在乘法器正在進(jìn)行一個(gè)操作的同一周期中,程序不能對(duì)算術(shù)狀態(tài)寄存器賦值。ALU執(zhí)行條件在一個(gè)條件ALU指令中,整個(gè)指令行的執(zhí)行依賴指令行開始所指定的條件,如表2-3。條件ALU指令采用以下格式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;這個(gè)語法允許一個(gè)條件控制多達(dá)三條指令。在指令之前省略DO,則相應(yīng)指令是無條件的。表2-3.ALU的條件標(biāo)志定義標(biāo)志設(shè)置AEQALU等于零AZ=1ALTALU小于零AN和AZ=1ALEALU小于或等于零AN或AZ=1NAEQNOT(ALU等于零)AZ=0NALTNOT(ALU小于零)AN和AZ=0NALENOT(ALU小于或等于零)AN或AZ=02.2.3CLU 通信邏輯單元(CLU)指令用來完成通信應(yīng)用中的多種的算法。這些指令主要為下列算法設(shè)計(jì)(雖然也可以用于許多其它算法):Viterbi解碼Turbo碼的解碼碼分多址(CDMA)系統(tǒng)的解擴(kuò)CLU指令的引入簡化了這些算法的程序,但仍保留軟件方式的靈活性,靠這種方式,根據(jù)特殊需求調(diào)整運(yùn)算法是很容易的。另外,指令能滿足各種用途的需求;例如,對(duì)低密度的奇偶校驗(yàn)碼,支持turbo碼解碼的TMAX指令,是非常有用的。 TigerSHARC處理器的主要性能是有高的數(shù)據(jù)傳輸率——每個(gè)周期可以進(jìn)行兩個(gè)128位的存儲(chǔ)器訪問。解擴(kuò)指令每周期可完成16個(gè)16位復(fù)數(shù)(8位實(shí)部,8位虛部)乘-加操作。在兩個(gè)計(jì)算塊里,每兩個(gè)周期就能完成整個(gè)16位64個(gè)狀態(tài)格構(gòu)的計(jì)算。2.2.4乘法器乘法器執(zhí)行定點(diǎn)和浮點(diǎn)數(shù)據(jù)的所有乘法操作,執(zhí)行定點(diǎn)數(shù)據(jù)的所有乘累加操作和定點(diǎn)數(shù)據(jù)的所有復(fù)數(shù)乘法操作。在定點(diǎn)格式中,當(dāng)乘法器把數(shù)據(jù)傳送到寄存器堆時(shí),乘法器也能執(zhí)行對(duì)累加結(jié)果的數(shù)據(jù)壓縮操作。乘法器支持如下數(shù)據(jù)類型的操作:定點(diǎn)小數(shù)和整數(shù)乘法操作和乘累加操作支持:八個(gè)16位(短字)輸入操作數(shù),得到四個(gè)16位或32位結(jié)果。兩個(gè)32位(標(biāo)準(zhǔn)字)輸入操作數(shù),結(jié)果是32位或64位。浮點(diǎn)乘法操作支持:兩個(gè)32位(標(biāo)準(zhǔn)字)輸入操作數(shù)(IEEE標(biāo)準(zhǔn)),結(jié)果為32位。兩個(gè)40位(擴(kuò)展精度)輸入操作數(shù),結(jié)果為40位。定點(diǎn)數(shù)據(jù)壓縮操作支持:16位(短字)輸入操作數(shù),32位(標(biāo)準(zhǔn)字)輸入操作數(shù),64位(長字)輸入操作數(shù),輸出16位或32位的結(jié)果。乘法器指令選項(xiàng)大部分乘法器指令有可選項(xiàng),不同的選項(xiàng)適用于不同的指令群。指令選項(xiàng)出現(xiàn)在指令域末端的圓括弧中。()有符號(hào)的操作,非飽和,向最近舍入,小數(shù)模式(U)無符號(hào)的操作,非飽和,向最近舍入(nU)有符號(hào)的/無符號(hào)的輸入(I)有符號(hào)的操作,整數(shù)模式(S)有符號(hào)的操作,非飽和的(T)有符號(hào)的操作,截?cái)?C)清零操作(CR)清零/舍入操作(J)復(fù)數(shù)共軛操作有符號(hào)/無符號(hào)選項(xiàng)所有的定點(diǎn)乘法器指令可以使用有符號(hào)或無符號(hào)數(shù)據(jù)類型。選項(xiàng)如下:()兩個(gè)輸入操作數(shù)均為有符號(hào)的(默認(rèn)值)(U)兩個(gè)輸入操作數(shù)均為無符號(hào)的(nU)Rm是有符號(hào)的,Rn是無符號(hào)的;選項(xiàng)只對(duì)Rs=Rm*Rn或Rsd=Rm*Rn有效。小數(shù)/整數(shù)選項(xiàng)定點(diǎn)操作數(shù)整數(shù)和小數(shù)選項(xiàng)定義如下:()數(shù)據(jù)是小數(shù)(默認(rèn))(I)數(shù)據(jù)是整數(shù)飽和選項(xiàng)當(dāng)結(jié)果溢出——超過結(jié)果寄存器所能表示的最大值時(shí),如果選項(xiàng)(S)是有效的,定點(diǎn)數(shù)被飽和。飽和結(jié)果是:()無飽和(默認(rèn))(S)飽和是有效的0x7F…F——如果操作是有符號(hào)的,且結(jié)果是正的0x80…0——如果操作是有符號(hào)的,且結(jié)果是負(fù)的0xFF…F——如果操作是無符號(hào)的,且結(jié)果是正的0x00…0——如果操作是無符號(hào)的,且結(jié)果是負(fù)的(只在有符號(hào)的MR-=Rm*Rn中)截?cái)噙x項(xiàng)乘法器指令,支持T選項(xiàng)截?cái)啵@個(gè)選項(xiàng)選擇結(jié)果的舍入模式。舍入的選項(xiàng)是:()向最近舍入(默認(rèn)值)(T)對(duì)浮點(diǎn)數(shù)向零舍入,對(duì)定點(diǎn)數(shù)向負(fù)無窮舍入清零/舍入選項(xiàng)乘法操作和用MR寄存器來傳送操作數(shù)的乘累加操作都支持MR清零(C)選項(xiàng)。在加法操作之前,使用這個(gè)選項(xiàng)強(qiáng)制對(duì)MR寄存器清零(=0)。清零和清零/舍入選項(xiàng)是:()在乘累加操作之前,MR寄存器不變化(默認(rèn)值)(C)在乘累加操作之前,把目標(biāo)寄存器MR清零(CR)在乘累加操作之前,把目標(biāo)寄存器MR清零并設(shè)置舍入位復(fù)數(shù)共軛選項(xiàng)對(duì)于復(fù)數(shù)的乘累加操作(**操作符),乘法器支持復(fù)數(shù)共軛(J)選項(xiàng)。J選項(xiàng)指示乘法器用Rn復(fù)數(shù)的共軛去乘Rm。乘法器執(zhí)行狀態(tài)乘法器操作更新算術(shù)狀態(tài)(XSTAT和YSTAT)寄存器(見表2-4)。后續(xù)指令能使用狀態(tài)標(biāo)志控制條件指令的執(zhí)行和觸發(fā)軟件異常中斷。表2-4.乘法器狀態(tài)標(biāo)志標(biāo)志定義被……更新MZ乘法器定點(diǎn)為零和浮點(diǎn)下溢出所有的定點(diǎn)和浮點(diǎn)乘法器操作MN乘法器的結(jié)果是負(fù)的所有的定點(diǎn)和浮點(diǎn)乘法器操作MV乘法器上溢出所有的定點(diǎn)和浮點(diǎn)乘法器操作MU乘法器下溢出所有的浮點(diǎn)乘法器操作;被定點(diǎn)操作清零MI乘法器浮點(diǎn)非法操作所有的浮點(diǎn)乘法器操作;被定點(diǎn)操作清零乘法器操作也更新算術(shù)狀態(tài)(XSTAT和YSTAT)寄存器中的關(guān)聯(lián)狀態(tài)標(biāo)志位(見表2-5)。一旦置位,關(guān)聯(lián)狀態(tài)將保持高,直到被程序明確地清零。表2-5.乘法器的關(guān)聯(lián)狀態(tài)標(biāo)志Flag定義被……更新MUS乘法器下溢出,關(guān)聯(lián)所有的浮點(diǎn)乘法器操作MVS乘法器浮點(diǎn)上溢出,關(guān)聯(lián)所有的浮點(diǎn)乘法器操作MOS乘法器定點(diǎn)上溢出,關(guān)聯(lián)所有的定點(diǎn)乘法器操作MIS乘法器浮點(diǎn)非法操作,關(guān)聯(lián)所有的浮點(diǎn)乘法器操作乘法器執(zhí)行條件在一個(gè)條件乘法器指令中,整個(gè)指令行的執(zhí)行依賴于指令行中指定的條件。條件乘法器指令采用如下形式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;這種語法允許一個(gè)條件控制三條指令。在指令之前省略DO,則此指令是無條件的。表2-6列出了乘法器的條件。表2-6.乘法器的條件Condition定義被更新MEQ乘法器等于零MZ=1MLT乘法器小于零MN和MZ=1MLE乘法器小于或等于零MN或MZ=1NMEQNOT(乘法器不等于零)MZ=0NMLTNOT(乘法器不小于零)MN和MZ=0NMLENOT(乘法器不小于或等于零)MN或MZ=02.2.5移位器 這個(gè)單元執(zhí)行位方式的操作(算術(shù)和邏輯移位)以及位域操作(域提取和放置)。移位器也執(zhí)行數(shù)據(jù)轉(zhuǎn)換操作,如定點(diǎn)和浮點(diǎn)格式轉(zhuǎn)換。移位器操作包括:向左或向右移位,或循環(huán)移位位處理;包括置位,清零,取反和位測(cè)試位域處理;域提取和放置縮放因子的識(shí)別,16位塊浮點(diǎn)數(shù)指數(shù)提取計(jì)算高位連續(xù)1或0的個(gè)數(shù)移位器對(duì)定點(diǎn)數(shù)據(jù)的操作,采用下列各項(xiàng)作為輸入:一個(gè)長字(64位)操作數(shù),一個(gè)或兩個(gè)標(biāo)準(zhǔn)字(32位)操作數(shù),兩個(gè)或四個(gè)短字(16位)操作數(shù),四個(gè)或八個(gè)字節(jié)(8位)操作數(shù)。移位器操作移位器操作在計(jì)算塊寄存器堆或移位寄存器BFOTMP(移位器的內(nèi)部寄存器)中進(jìn)行,BFOTMP用于PUTBITS指令。移位器操作能從寄存器堆中提取它們的Rm輸入(操作數(shù)據(jù)),從寄存器堆或指令中提供的立即數(shù)提取它們的Rn輸入(移位值)。當(dāng)操作包括第三個(gè)輸入時(shí),Rm和Rn是從寄存器堆中取出的,第三個(gè)輸入Rs是讀-修改-寫(RMW)寄存器。移位操作的移位值來自Rn,放在Rn最右邊的位域,移位值(移位的位數(shù))由輸出操作數(shù)的寬度決定。對(duì)長字輸出Rn是8位、標(biāo)準(zhǔn)字輸出Rn是7位、對(duì)短字和字節(jié)輸出Rn是6位,這樣,所有移動(dòng)量的左右移位都能完成,Rn中移位值以外的位被忽略。移位器指令選項(xiàng)大部分移位器指令有和它們相關(guān)聯(lián)的可選項(xiàng),允許靈活的運(yùn)行指令。不同的選項(xiàng)適用于不同的指令群。指令選項(xiàng)出現(xiàn)在指令域末端的圓括弧中。()零填充,右對(duì)齊(SE)符號(hào)擴(kuò)展;適用于FEXT、FDEP和GETBITS指令(ZF)零填充;適用于FDEP指令移位器執(zhí)行狀態(tài)移位器操作更新算術(shù)狀態(tài)(XSTAT和YSTAT)寄存器的狀態(tài)標(biāo)志。后續(xù)指令可用狀態(tài)標(biāo)志控制條件指令的執(zhí)行和初始化軟件異常中斷。表2-7中寄存器XSTAT或YSTAT中的標(biāo)志位表示最近的移位器操作狀態(tài)。標(biāo)志位在每個(gè)操作結(jié)束的時(shí)候更新,以便下個(gè)指令域應(yīng)用。在移位器正在進(jìn)行一個(gè)操作的同一周期中,程序不能對(duì)算術(shù)狀態(tài)寄存器賦值。表2-7.移位器狀態(tài)標(biāo)志標(biāo)志定義被……更新SZ移位器定點(diǎn)零所有移位操作SN移位器負(fù)數(shù)所有移位操作BF1–0移位器塊浮點(diǎn)只有BKFPT指令A(yù)NALU負(fù)數(shù)用PUTBITS指令時(shí)的結(jié)果溢出移位器執(zhí)行條件在條件移位器指令中,整個(gè)指令行的執(zhí)行依靠指令行開始指定的條件。條件移位器指令采用如下形式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;該語法允許一個(gè)條件控制多達(dá)三個(gè)指令。指令前省略DO,則此指令是無條件的。表2-8列出了移位器的條件。表2-8.移位器條件條件描述標(biāo)志設(shè)置SEQ等于零SZ=1SLT小于零SN和SZ=1NSEQ不等于零SZ=0NSLT不小于零SN和SZ=02.3IALUTigerSHARC處理器的兩個(gè)獨(dú)立IALU是J-IALU和K-IALU。IALU支持標(biāo)準(zhǔn)的ALU運(yùn)算和數(shù)據(jù)尋址運(yùn)算。當(dāng)數(shù)據(jù)在存儲(chǔ)器和寄存器之間傳送時(shí),由IALU提供存儲(chǔ)器的地址。兩個(gè)IALU允許為多操作數(shù)讀/寫同時(shí)產(chǎn)生地址。IALU的數(shù)據(jù)尋址和數(shù)據(jù)移位操作包括:直接和間接存儲(chǔ)器尋址循環(huán)緩沖尋址位反序?qū)ぶ吠ㄓ眉拇嫫鳎║reg)移位和加載存儲(chǔ)器指針產(chǎn)生2.3.1IALU寄存器每個(gè)IALU都包含由32個(gè)寄存器組成的寄存器堆和8個(gè)專用的循環(huán)緩沖尋址寄存器。IALU中的所有寄存器都是32位寬、存儲(chǔ)器映射的通用寄存器。有關(guān)IALU寄存器堆的幾點(diǎn)重要提示如下:J-IALU寄存器堆的寄存器是J31-J0,K-IALU寄存器堆的寄存器是K31-K0。除了J31和K31,這些寄存器都是通用的且只存整型數(shù)據(jù)。J31和K31寄存器是32位狀態(tài)寄存器,也可以寫作JSTAT和KSTAT。當(dāng)這兩個(gè)寄存器用做IALU算術(shù)、邏輯或函數(shù)運(yùn)算的操作數(shù)時(shí),就作為J31和K31寄存器使用,寄存器的內(nèi)容看作0。如果J31用做一個(gè)運(yùn)算的輸出時(shí),它不保留指令的結(jié)果,但設(shè)置標(biāo)志位。當(dāng)用作IALU加載、存儲(chǔ)或移位操作時(shí),這兩個(gè)寄存器作為JSTAT和KSTAT,這種操作不清除寄存器的內(nèi)容。每個(gè)IALU中的專用循環(huán)緩沖寄存器選擇循環(huán)緩沖區(qū)的基地址和長度。這些專用寄存器與每個(gè)IALU的寄存器堆的前四個(gè)通用寄存器共同管理八個(gè)循環(huán)緩沖區(qū)。有關(guān)IALU循環(huán)緩沖尋址的專用寄存器的一些要點(diǎn)如下:循環(huán)緩沖指針(當(dāng)前地址)是通過一個(gè)通用寄存器設(shè)置的,也就是設(shè)置J-IALU的J3-J0,K-IALU的K3-K0。循環(huán)緩沖區(qū)基地址(起始地址)是通過一個(gè)專用寄存器設(shè)置的。也就是設(shè)置J-IALU的JB3-JB0,K-IALU的KB3-KB0。循環(huán)緩沖區(qū)長度(存儲(chǔ)單元的個(gè)數(shù))是通過一個(gè)專用寄存器設(shè)置的。也就是設(shè)置J-IALU的JL3-JL0和K-IALU的KL3-KL0。循環(huán)緩沖區(qū)修正值(存儲(chǔ)位置之間的步長)是通過一個(gè)通用IALU寄存器或一個(gè)立即數(shù)值設(shè)置的。控制循環(huán)緩沖區(qū)的指針、基地址和長度寄存器作為一個(gè)整體工作。(J0用JB0和JL0,J1用JB1和JL1,等等)。IALU中控制循環(huán)緩沖區(qū)的任何寄存器堆寄存器(除了作為指針的那個(gè))都可用作修正值。IALU可以使用加和減指令產(chǎn)生帶或不帶循環(huán)緩沖或位反序的尋址指針。修正地址值存儲(chǔ)在一個(gè)IALU數(shù)據(jù)寄存器,也可以寫到程序控制器的計(jì)算跳轉(zhuǎn)寄存器(CJMP)中(可選的)。2.3.2IALU算術(shù)、邏輯和函數(shù)操作IALU執(zhí)行定點(diǎn)數(shù)(整型)的算術(shù)邏輯操作。DSP使用IALU寄存器堆的寄存器作為輸入操作數(shù)和IALU操作的輸出結(jié)果。IALU寄存器堆的寄存器是從J30到J0和K30到K0。大部分IALU指令都有和它們相關(guān)聯(lián)的選項(xiàng),允許靈活的運(yùn)行指令。不同的選項(xiàng)適應(yīng)不同的指令群,IALU指令選項(xiàng)包括:()有符號(hào)數(shù)運(yùn)算,向無窮舍入,整數(shù)(U)無符號(hào)運(yùn)算(CB)對(duì)結(jié)果的循環(huán)緩沖運(yùn)算(BR)結(jié)果的位反序運(yùn)算(CJMP)把結(jié)果加載到結(jié)果寄存器和運(yùn)算跳轉(zhuǎn)(CJMP)寄存器中2.3.3IALU執(zhí)行狀態(tài)與執(zhí)行條件IALU運(yùn)算更新IALU的狀態(tài)寄存器(JSTAT和KSTAT)的狀態(tài)標(biāo)志。表2-9展示了JSTAT或KSTAT中標(biāo)志位。這些標(biāo)志指明了IALU最近操作的狀態(tài)。表2-9.IALU狀態(tài)標(biāo)志位標(biāo)志定義被……更新JZJ-IALU為零所有的J-IALU算術(shù),邏輯,函數(shù)運(yùn)算JNJ-IALU為負(fù)所有的J-IALU算術(shù),邏輯,函數(shù)運(yùn)算JVJ-IALU溢出所有的算術(shù)運(yùn)算JCJ-IALU進(jìn)位所有的算術(shù)運(yùn)算KZK-IALU為零所有的K-IALU算術(shù),邏輯,函數(shù)運(yùn)算KNK-IALU為負(fù)所有的K-IALU算術(shù),邏輯,函數(shù)運(yùn)算KVK-IALU溢出所有的算術(shù)運(yùn)算KCK-IALU進(jìn)位所有的算術(shù)運(yùn)算標(biāo)志的更新發(fā)生在每個(gè)操作的末尾,以便下一個(gè)指令域的應(yīng)用。程序不能在IALU運(yùn)行一個(gè)操作的同一周期內(nèi),把狀態(tài)標(biāo)志寫到一個(gè)IALU狀態(tài)寄存器中。2.3.4IALU執(zhí)行條件在一個(gè)有條件的IALU指令中,整個(gè)指令行的執(zhí)行取決于指令行開始指定的條件。有條件IALU指令采用以下形式:IFcond;D0,instr.;DO,instr.;DO,instruct.;;這個(gè)語法中允許一個(gè)條件控制三條指令。省略DO表示此對(duì)應(yīng)指令是無條件的。表2-10.列出了IALU條件。表2-10.IALU條件條件描述標(biāo)志位設(shè)置JEQJ-IALU等于零JZ=1JLTJ-IALU小于零JN和JZ=1JLEJ-IALU小于或等于零JN或JZ=1NJEQNOT(J-IALU不等于零)JZ=0NJLTNOT(J-IALU不小于零)JN和JZ=0NJLENOT(J-IALU不等于或小于零)JN或JZ=0KEQK-IALU等于零KZ=1KLTK-IALU小于零KN和KZ=1KLEK-IALU小于或等于零KN或KZ=1NKEQNOT(K-IALU不等于零)KZ=0NKLTNOT(K-IALU不小于零)KN和KZ=0NKLENOT(K-IALU不小于等于零)LN或KZ=02.3.5IALU數(shù)據(jù)尋址和傳送操作 ADSP-TS201S的尋址都是由IALU模塊完成的,無論對(duì)核內(nèi)存儲(chǔ)器尋址,還是對(duì)外部存儲(chǔ)器,或是其他處理器共享存儲(chǔ)單元尋址,都是由IALU完成的。具體可參見見第3章程序控制器 TigerSHARC處理器核包含一個(gè)程序控制器。這個(gè)控制器包括指令排列緩沖池(IAB),程序指針(PC),跳轉(zhuǎn)地址緩沖池(BTB),中斷管理器,取地址機(jī)制。利用這些特征和指令流水線,控制著程序的執(zhí)行??刂破鲝拇鎯?chǔ)器取指令,并且執(zhí)行程序流控制指令??刂破髦С值牟僮靼ǎ禾峁┫乱粋€(gè)所取指令的地址管理指令排列緩沖池(IAB),從中執(zhí)行指令管理跳轉(zhuǎn)地址緩沖池(BTB),以減少跳轉(zhuǎn)延遲循環(huán)計(jì)數(shù)器減1判定條件(對(duì)條件指令)響應(yīng)中斷(帶程序流變化)具體指令可參考第三章3.2.5。2.5存儲(chǔ)器組織ADSP-TS201S的32位地址總線提供了高達(dá)4G的尋址空間,整個(gè)尋址空間對(duì)共享總線的所有處理器都是統(tǒng)一的。ADSP-TS201S采用的是統(tǒng)一的存儲(chǔ)器映射空間,片內(nèi)和片外存儲(chǔ)器都有單獨(dú)而且唯一的地址空間。整個(gè)映射空間包含4個(gè)部分:主機(jī)尋址空間、外部存儲(chǔ)空間、多處理器空間和片內(nèi)存儲(chǔ)器空間。除了主機(jī)空間之外,每個(gè)空間又包含更小的存儲(chǔ)器區(qū),如外部存儲(chǔ)器尋址空間還有SDRAM區(qū)等。另外,無論處理器內(nèi)部尋址空間還是外部尋址空間,TigerSHARC處理器保留了部分空間用于未來新處理器的擴(kuò)展,但就目前,這些保留空間是不能訪問的。ADSP-TS201S尋址空間組成見下圖2.3,整個(gè)尋址空間分為以下部分:主機(jī)尋址空間。用于片外主機(jī)接口的地址映射空間,外部主機(jī)可以是上位機(jī)或者其他TS201,地址映射范圍0x80000000~0xFFFFFFFF,此空間也可以配置普通存儲(chǔ)器;外部存儲(chǔ)空間。用于與外圍設(shè)備、存儲(chǔ)器接口的地址映射空間,包括通用的外部存儲(chǔ)器設(shè)備和SDRAM存儲(chǔ)器,地址映射范圍是0x30000000~0x7FFFFFFF;多處理器空間。用于多處理器系統(tǒng)中各處理器的內(nèi)部存儲(chǔ)空間映射,地址范圍0x0C000000~0x2FFFFFFF;片內(nèi)存儲(chǔ)空間。定義了本處理器內(nèi)部存儲(chǔ)空間的地址映射,地址范圍0x00000000~0x03FFFFFF,它與上述多處理器空間中的第一個(gè)在物理上是同一的(取決于ID)。圖2.3尋址空間映射2.5.1主機(jī)尋址空間 主機(jī)尋址空間高達(dá)2G。如果地址線的最高位ADDR31為1,則尋址空間為主機(jī)空間,如果為零,則尋址空間為其他空間。如果有主機(jī),主機(jī)可以訪問此空間,TS201也可以訪問此空間的普通存儲(chǔ)器。對(duì)主機(jī)尋址空間的訪問,根據(jù)SYSCON系統(tǒng)控制寄存器中的主機(jī)位定義,可以使用流水協(xié)議或著慢速傳輸協(xié)議。2.5.2處理器內(nèi)部存儲(chǔ)空間內(nèi)部存儲(chǔ)空間主要由內(nèi)部存儲(chǔ)器與通用寄存器組成。ADSP-TS201S處理器內(nèi)部嵌入了高達(dá)24Mbit的DRAM,分成了6塊,分別是M0,M2,M4,M6,M8,M10,每個(gè)塊4Mbit,配置成128K×32bit,每個(gè)塊均可用來存指令和數(shù)據(jù)。通用寄存器有如下特點(diǎn):在多處理器系統(tǒng)中,通用寄存器能夠以地址映射的方式,由其他處理器通過對(duì)應(yīng)的寄存器地址來訪問;通用寄存器能夠從存儲(chǔ)區(qū)中存數(shù)據(jù)、取數(shù)據(jù),能夠與其他寄存器傳遞數(shù)據(jù);通用寄存器支持單字、雙字、四字等方式訪問。 2.5.3外部存儲(chǔ)器尋址空間 外部存儲(chǔ)器尋址空間主要包含兩個(gè)部分:SDRAM尋址空間和外部通用存儲(chǔ)空間,該空間的訪問由高位地址線ADDR30~26的譯碼決定,如表2-11。 SDRAM尋址空間是為了訪問SDRAM而設(shè)置的,整個(gè)SDRAM尋址空間分為4個(gè)區(qū),每個(gè)區(qū)的尋址范圍為64M字,各區(qū)的訪問由外部引腳決定。 外部通用存儲(chǔ)空間是用于訪問通用外設(shè)和存儲(chǔ)區(qū)的,該空間分為兩個(gè)區(qū),各區(qū)尋址范圍128M字,由決定。2.5.4多處理器尋址空間 ADSP-TS201S可以采用無縫連接的方式實(shí)現(xiàn)最多8個(gè)處理器組成的系統(tǒng),為了方便8個(gè)處理器之間存儲(chǔ)區(qū)的共享和相互訪問,DSP將內(nèi)部的存儲(chǔ)區(qū)根據(jù)處理器的ID號(hào)映射到多處理器空間中不同的地址空間中,從而實(shí)現(xiàn)對(duì)其他處理器內(nèi)部空間的訪問。另外,多處理器尋址空間中還提供了多處理器廣播空間,任何處理器對(duì)該空間的訪問只能是寫,通過對(duì)廣播空間的寫,可以實(shí)現(xiàn)對(duì)所有處理器的廣播寫。多處理器尋址空間的劃分如表2-11。表2-11外部存儲(chǔ)器與多處理器尋址空間的地址劃分地址位名稱說明ADDR25~0地址線訪問尋址空間的地址ADDR30~26外部存儲(chǔ)器尋址空間選擇01100–Bank0(MS0)01110–Bank1(MS1)10000–SDRAMBank0/MSSD010001–保留10100–SDRAMBank1/MSSD110101–保留11000–SDRAMBank2/MSSD211001–保留11100–SDRAMBank3/MSSD311101–保留多處理器尋址空間選擇00011–多處理器廣播空間00100–多處理器ID0空間00101–多處理器ID1空間00110–多處理器ID2空間00111–多處理器ID3空間01000–多處理器ID4空間01001–多處理器ID5空間01010–多處理器ID6空間01011–多處理器ID7空間ADDR31是否為主機(jī)尋址空間=0,非主機(jī)尋址空間2.6鏈路口ADSP-TS201S有4個(gè)獨(dú)立的鏈路口。與ADSP-TS101相比,鏈路口的改進(jìn)最為顯著。ADSP-TS201S的鏈路口由單端連接改為LVDS的差分連接模式,由準(zhǔn)雙向口改為完全雙向通信,鏈路口時(shí)鐘最高也可達(dá)到核內(nèi)時(shí)鐘速度,因此提供了更高的工作速度和更高的可靠性。2.6.1鏈路口寄存器每個(gè)鏈路口有鏈路口控制寄存器LCTLx、鏈路口狀態(tài)寄存器LSTATx和鏈路口狀態(tài)清除寄存器LSTATCx,用于鏈路口數(shù)據(jù)傳輸操作、描述數(shù)據(jù)傳輸操作后的故障檢測(cè)狀態(tài)。每個(gè)鏈路口都帶有一個(gè)鏈路口接收緩沖寄存器LBUFERXx和鏈路口發(fā)送緩沖寄存器LBUFTXx,用于緩存鏈路口傳輸時(shí)接收到的數(shù)據(jù),或是用來存放要發(fā)送的發(fā)送數(shù)據(jù)。2.6.2鏈路口模式設(shè)置鏈路口模式的設(shè)置是由鏈路口寄存器組完成的。鏈路口寄存器包含鏈路口發(fā)送/接收寄存器組和鏈路口控制和狀態(tài)寄存器組。1.鏈路口接收控制寄存器(LRCTL0~3)鏈路口接收控制寄存器用來設(shè)置鏈路口的接收參數(shù)。在復(fù)位后,鏈路口控制寄存器的默認(rèn)值由外部Strap引腳確定,當(dāng)Strap引腳LINK_DWIDTH=0,該寄存器默認(rèn)值0x00000001,當(dāng)Strap引腳LINK_DWIDTH=1,該寄存器默認(rèn)值0x00000011,其定義如圖2.4所示。2.鏈路口發(fā)送控制寄存器(LTCTL0~3)鏈路口發(fā)送控制寄存器用來設(shè)置鏈路口的發(fā)送參數(shù)。該寄存器復(fù)位后默認(rèn)值0x00000001。定義如圖2.5所示.圖2.4鏈路口接收控制寄存器位定義(16~31位保留)圖2.5鏈路口發(fā)送控制寄存器位定義(16~31位保留)3.鏈路口接收狀態(tài)寄存器(LRSTAT0~3)該寄存器定義了鏈路口的接收狀態(tài),復(fù)位后,默認(rèn)值0x00000000,各位定義如圖2.6所示。圖2.6鏈路口接收狀態(tài)寄存器位定義(16~31位保留)4.鏈路口發(fā)送狀態(tài)寄存器(LTSTAT0~3)該寄存器定義了鏈路口的發(fā)送狀態(tài),復(fù)位后,默認(rèn)值0x00000000,各位

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論