TigerSHARC系列DSP應用教程-for2012秋季_第1頁
TigerSHARC系列DSP應用教程-for2012秋季_第2頁
TigerSHARC系列DSP應用教程-for2012秋季_第3頁
TigerSHARC系列DSP應用教程-for2012秋季_第4頁
TigerSHARC系列DSP應用教程-for2012秋季_第5頁
已閱讀5頁,還剩82頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

/TigerSHARC系列DSP應用教程蘇濤崔向陽西安電子科技大學雷達信號處理國家重點實驗室2012年10月

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

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

第2章ADSP-TS201S處理器結構與功能2.1ADSP-TS201S處理器概述ADSP-TS201S是ADI公司的高性能數字信號處理器TigerSHARC系列中最強大的一員,這一系列還包括有:ADSP-TS101、ADSP-TS202等。ADSP-TS201S內核工作主頻達600MHz,片內存儲器增加到24Mbit,加之其合理的結構以及高帶寬的I/O接口,使得ADSP-TS201S在無線通信、軍事、圖像等高端市場的應用更加廣泛。圖2.1給出了ADSP-TS201S的功能框圖。圖2.1ADSP-TS201S的功能框圖ADSP-TS201S的主要性能如下:高達600MHz的運行速度,1.67ns指令周期;24Mbit片內DRAM;25mm×25mm(576-Ball)PBGA封裝;雙運算核,每個計算塊包含1個ALU、1個乘法器、1個移位器、一個存放器組和1個通信邏輯運算單元;雙整數ALU,提供數據尋址和指針操作功能;集成I/O接口,包括14通道的DMA控制器,外部總線,4個鏈路口,SDRAM控制器,可編程標志引腳,2個定時器及其輸出指示;IEEE1149.1兼容的JTAG端口用于在線仿真;通過共享外部總線可無縫連接多達8個TS201。其主要優點有:提供高性能靜態超標量DSP操作,專門優化適用于通信和需要多DSP處理器的應用;優異的DSP算法和I/O性能表現;DMA控制器支持14個DMA通道,可完成片內存儲器,片外存儲器,存儲器映射外設,鏈路口,主機處理器和其他多處理器之間的低開銷的高速傳輸;非常靈活的指令集和支持高級語言的DSP結構,便于DSP編程;可擴展的多處理器系統,連接時僅需很低的通信開銷;ADSP-TS201SDSP內核的結構ADSP-TS201S系列的DSP內核主要包括運算塊、程序控制器、整型ALU、數據對齊緩沖器和中斷控制器等。雙運算模塊ADSP-TS201S的運算模塊包括兩個能通過相互獨立或一起工作,執行通用運算來實現單指令多數據(SIMD)引擎的計算單元,分別稱為運算塊X,運算塊Y。每個運算模塊又包含一個存放器組和4個獨立的運算單元:算術邏輯運算單元(ALU)、通信邏輯處理單元(CLU)、乘法器、移位器。這些模塊都能處理定點數和浮點數,可滿足各種不同的處理要求。每個運算塊包含的通用存放器組是32位寬、多端口的,用于運算單元與數據總線之間數據傳輸,存儲中間結果。這些存放器都可以單字、雙字、四字存放器方式訪問。ALU完成定點數和浮點數的算術運算、定點數的邏輯運算,大多數ALU運算的數據源和目的地均為運算塊的存放器組。CLU完成通信處理,支持通信處理的算法,如Viterbi解碼、Turbocode解碼、CDMA系統解調。乘法器主要完成定點數和浮點數的乘法運算,定點數的乘累加運算,并且支持各種定點數和浮點數的數據格式。移位器完成算術和邏輯移位,比特和比特流控制,域存儲和提取操作。雙整數ALU(IALU)ADSP-TS201S擁有兩個IALU。能提供強大的地址產生能力和執行通用的整數操作。每個IALU能夠:(1)為數據提供存儲器地址,為尋址提供指針的更新;(2)支持循環緩沖和位反序尋址;(3)實現通用的整數操作,提高了編程的靈活性;(4)包含一個由32個字構成的存放器組。作為地址產生器,IALU完成立即或間接尋址(預修改或后修改),不受限制地完成存儲器地址取模和位反序。每個IALU能夠指定單、雙、四字的內存訪問。IALU通過硬件支持來實現循環緩沖、位反序和零開銷循環。每個IALU提供了4個循環緩沖的存放器,因此程序能夠建立最多8個循環緩沖器,循環緩沖器的起始地址是任意的。程序控制器ADSP-TS201S的程序控制器支持如下功能:可靈活的使用匯編語言和C/C++,編寫能夠相應中斷的程序。以高吞吐量處理中斷并且不存在錯誤的指令周期。10個指令周期流水線——四個周期取指流水,六個周期執行流水——運算結果將會在操作數可用的兩個周期以后得到。提供指令尋址內存地址;控制器的指令對齊緩沖器(IAB)可以緩存最多5條預取來的指令行,以后續等待執行,程序控制器從IAB中提取指令行,并將指令發給內核模塊來執行。管理由CJMP,CALL,RTI,RTS指令,循環結構,條件,中斷和軟件異常決定的程序結構和程序流程。用分支預測和128入口分支目標緩沖器(BTB)來減少分支跳轉的延時,以實現條件和無條件跳轉指令的高效執行和零消耗循環;正確預測跳轉是零開銷的,能夠減少5~9個周期的開銷。中斷控制器DSP支持嵌套和非嵌套中斷。每種中斷類型在中斷向量表中擁有一個存放器,并且在中斷鎖存存放器和中斷屏蔽存放器中占一位。除了可以被設置為邊沿觸發或電平觸發以外,其他中斷被固定設置為邊沿觸發(或電平觸發)。DSP能夠區分硬件中斷和軟件異常,并分別處理。當軟件出現異常時,DSP中止流水線中的所有指令。當硬件中斷發生時,DSP將繼續執行已經在流水線中的指令。ADSP-TS201SDSP總線的結構和片內DRAM存儲器ADSP-TS201S的總線結構分為內部總線和外部總線,外部總線由外部引腳連接到處理器外。內部總線ADSP-TS201S處理器內核有3條相互獨立的128位的內部數據總線和32位的地址總線(稱為I-BUS、J-BUS、K-BUS),每條數據總線借助接口橋與所有內部存儲器塊相連。每條數據總線上,1個周期內允許傳輸多達4條指令或4個排列好的數據。片內系統單元用SOC-BUS和S-BUS總線訪問存儲器。在一個周期內,每個存儲器塊只能允許一次訪問,所以應用中如果能設法把各個訪問指向不同的存儲器塊,則這些訪問可同時進行。外部總線與接口ADSP-TS201S的片內系統總線(SOCBUS)通過SOC結構與S-BUS連接外部總線及存儲器系統,如圖2.2所示,所有外設都通過片內系統總線,SOC接口與S-BUS連接,進而與存儲器系統、處理器核內存放器交換數據。圖2.2ADSP-TS201S的SOC總線結構與接口外部總線包括32或64位數據總線、32位地址總線以及各種控制信號。其中大多數信號是雙向的,因為在共享總線的多處理器系統中,TigerSHARC可以是連接在外部總線上的主控處理器,也可以是從處理器。為了提高時鐘的速率,TigerSHARC處理器使用了流水式外部總線,其流水深度是可編程的,可完成處理器間通信、訪問同步SRAM和DRAM(即SSRAM和SDRAM)。最快速的協議是流水協議。TigerSHARC多處理器系統的處理器之間就是使用這個協議通信。此外,TigerSHARC還能通過此協議與其他主機或存儲器系統連接。流水協議的峰值吞吐率為每個外部周期傳輸一個數據,其實際的吞吐率可以保持在與峰值吞吐率非常接近的水平,其中的一個原因是此協議對連續的數據流的地址范圍沒有限制。另一快速協議是SDRAM。這個協議由工業標準的SDRAM芯片定義。TigerSHARC有一個片上SDRAM控制器,它可以提供訪問SDRAM所需的所有控制信號(/RAS,/CAS,/SDWE,SDCKE,LDQM,HDQM),而且可以初始化、刷新SDRAM。SDRAM的峰值吞吐率是每個周期傳輸一個數據。如在同一頁中連續訪問,則實際吞吐率可以保持在非常接近最大值的水平,此條件對DMA塊傳輸也同樣適用。但對SDRAM的單次訪問開銷是很大的。TigerSHARC還支持慢速設備協議。慢速設備協議適用于較慢速的設備。對于大多數系統,我們建議將這些慢速設備連接在二級總線上,因為它們會增加總線負擔,影響快速協議。當然,慢速設備仍可以直接連接到TigerSHARC外部總線上。外部總線有以下特點:總線寬度64位或32位,對存儲器、多處理器或主機接口可獨立配置此寬度;流水傳輸,且流水級數可編程;IDLE狀態可編程;通過使用ACK引腳,可插入等待周期;EPROM和FLASH接口為8位數據總線,等待周期數固定,可讀寫;主機接口;SDRAM接口不插入等待周期;支持慢速設備;基于分布式總線仲裁的多處理器無縫連接;通過握手方式,支持與外部I/O設備的DMA傳輸;支持外部存儲器與I/O設備間的DMA飛躍操作。片內DRAM存儲器ADSP-TS201S擁有24Mbit片上DRAM存儲器,該存儲器被分為6個4Mbit的塊,每個存儲塊(M0,M2,M4,M6,M8,M10)能夠存儲程序、數據或同時存儲數據和程序。所以,在應用中能夠根據具體需要配置。將程序和數據存儲在不同的塊中時,DSP就可以在取指令的同時訪問數據。每個片內存儲塊通過總線橋與處理器內部4條128位寬的內部總線相連。該連接使DSP能夠在1個周期內完成4個128位內部傳輸。DSP內部總線結構提供了33.6GB/s的存儲器帶寬,使內核和I/O可以在一個周期內訪問8個32位數據字(256位)和4個32位指令。DSP的這種靈活的存儲器結構,使其能完成如下功能:DSP內核和I/O在同一周期里訪問不同的存儲塊;DSP內核可并行訪問3個存儲塊:1個取指令,2個訪問數據;可編程的程序存儲器和數據存儲器分區;程序可以用16位、32位、64位或128位的形式訪問所有存儲器(使用DAB)。ADSP-TS201S的I/O結構ADSP-TS201S由專門的I/O處理器用于I/O訪問,I/O訪問方式可以是內核控制方式,也可以是DMA方式,此外,ADSP-TS201S還有專門的SDRAM控制器,專門產生SDRAM訪問時所需的控制信號。外部總線(片外存儲器和外設接口)ADSP-TS201S提供了外部總線用于連接外部存儲器和其他外設。4G字的尋址空間在DSP統一的尋址空間中。獨立的片內總線(4條128位數據總線,4條32位地址總線)通過復用開關連接外部系統總線,該總線提供了64位的數據總線和32位的地址總線。外部端口能提供1000MB/s的訪問速度。主機接口ADSP-TS201S在外部總線和主機處理器之間提供了方便的接口。為了能和各種主機處理器配合工作,主機接口支持流水線或慢速協議,用于從機訪問。每種協議帶有可編程的傳輸參數,例如空閑等待、流水深度、插入等待狀態等。主機接口支持主機初始化的突發傳輸模式。在主機發出開始地址后,使信號有效,DSP將會在主機繼續有效時增加地址。主機接口提供了死鎖恢復機制,使得主機能從DSP死鎖中恢復。信號提供了死鎖恢復機制。當主機有效時,DSP取消當前的傳輸,并使信號有效,放棄了外部總線。主機能夠直接讀寫ADSP-TS201S的片內存儲器,能夠訪問DSP的大多數存放器,包括DMA控制存放器。多處理器接口ADSP-TS201S通過外部總線和鏈路口為多處理器DSP系統設計集成了無縫多處理器支持功能。這種多處理器接口為處理器間通信提供了最大的帶寬,包括:共享總線支持多達8個DSP;為無縫多處理器連接提供片內仲裁;用于點對點通信的鏈路口。SDRAM控制器SDRAM控制器控制ADSP-TS201S與同步DRAM間的數據傳輸,每個SCLK周期傳送32位或64位數據。 SDRAM接口提供與標準SDRAM——16Mbit、64Mbit、128Mbit和256Mbit的無縫接口。有4個BANK,每個都支持最大達64M字×32位的SDRAM。SDRAM被映射到DSP統一的存儲空間中。EPROM接口ADSP-TS201S能夠被配置為復位后從外部8位EPROM自動引導。復位后自動從EPROM裝載程序到片內存儲器,裝載過程讀訪問時插入16個等待周期。引導時引腳用作EPROM的片選信號。EPROM引導過程使用DMA通道0,將字節型數據打包成32位的指令。應用程序也可以通過DMA隨意訪問EPROM。DMA控制器ADSP-TS201S片上DMA控制器擁有14個DMA通道,提供無處理器核干預的零開銷數據傳輸。DMA控制器獨立工作,對DSP內核是不可見的。DMA可以在以下部件之間進行。片內存儲器、外部存儲器及存儲器映射的外設共享總線上的其他DSP的片內存儲器、主機處理器或鏈路口外部存儲器、外設或鏈路口外部主處理器和片內存儲器或鏈路口鏈路口ADSP-TS201S的4個鏈路口提供額外4位的全雙向I/O能力。以雙倍速率(CCLK上升和下降沿)鎖存數據,當內核時鐘為500MHz時,即單方向速率可高達500MB/s,每個鏈路口雙向通信最高吞吐量可達1GB/s。定時器和通用I/OADSP-TS201S有一個定時器溢出引腳(TIM0E),當編程的定時器計數滿時產生高電平輸出。有4個可編程的I/O引腳(FLAG3~0),可以用作輸入或輸出。作為輸出使用時,這些引腳可以驅動外設;作為輸入時,可以用作條件分支指令的判斷條件。2.2ADSP-TS201S的計算塊 DSP有兩個計算塊——計算塊X和計算塊Y。每個塊包含一個通用存放器組和四個獨立的計算部件——ALU、CLU、乘法器和移位器。2.2.1存放器組計算塊的選擇所用的存放器在哪個計算塊里,用存放器名前綴X和Y表示:X表示只在計算塊X中,Y表示只在計算塊Y中,XY(或沒有前綴)表示在兩個塊中。計算塊前綴允許你選擇在一個還是在兩個計算塊里運行指令,該前綴提供單指令單數據(SISD)和單指令多數據(SIMD)模式之間的選擇。如果相同的算法用來處理兩個通道的數據,使用SIMD執行是最優的。值得注意的是,在SISD和SIMD的模式切換無延遲。SISD和SIMD模式總是可以通過簡單地選擇存放器名而實現。存放器寬度選擇 每個獨立的存放器堆存放器(XR31-0和YR31-0)是32位寬的。為了支持比32位字更寬的數據長度,DSP匯編語法允許存放器組合。Rn表示包含一個32位(或更少位數)的單存放器(如R1),Rnd表示包含一個64位(或更少位數)的雙存放器(最低位存放器的序號要求能被2整除,如R1:0),Rnq表示包含一個128位(或更少位數)的四存放器(最低位存放器的序號要求能被4整除,如R7:4)。操作數的長度和格式的選擇 存放器命名的匯編語法允許選擇操作數長度和定點或浮點數據格式。單、雙和四存放器(Rs,Rsd,Rsq)保存著指令的操作數(輸入和輸出)。根據操作數長度和定點或浮點格式,一個存放器里可放置多個操作數。B——表示字節(8位)數據;S——表示短字(16位)數據;無——表示標準字(32位)數據;L——表示長字(64位)數據。 為區別定點和浮點數據,用存放器名前綴F表示存放器包含浮點數據。數據格式DSP支持IEEE標準754/854的32位單精度浮點數據格式。此外,DSP支持此格式的40位擴展精度版本,該版本在其尾數中增加八位。DSP也支持8、16、32和64位定點格式——小數和整數——可以是有符號數(2的補碼)或無符號數。2.2.2ALU 這個單元執行所有的算術操作(加/減法),處理的數據是定點和浮點格式;執行邏輯操作,處理的數據是定點格式。ALU也執行數據轉換操作,如定點格式數據的擴展/壓縮。ALU也運行專用通信功能操作,主要支持解碼和CDMA擴展操作。在ALU里,這個功能塊主要是指通信邏輯單元(CLU)。不是所有的ALU操作都支持定點和浮點數據。ALU操作和相應的支持數據類型的相關性如下,在每個計算塊里的64位ALU單元支持:定點和浮點算術操作——加(+)、減(-)、最小值(MIN)、最大值(MAX)、維特比最大值(VMAX)、比較(COMP)、截取(CLIP)和絕對值(ABS)。僅對定點數的算術操作——增加(INC)、減少(DEC)、疊加(求和)、疊加的并行結果(PRx=SUM)、1的補碼(ONES)和位FIFO指針增量(BFOINC)。僅對浮點數的算術操作——浮點轉換(FLOAT)、定點轉換(FIX)、符號復制(COPYSIGN)、縮放(SCALB)、倒數或除法(RECIPS)、平方根或平方根的倒數(RSQRTS)、尾數提取(MANT)、指數提取(LOGB)、運算數擴展(EXTD)和擴展精度向標準字轉換(SNGL)。僅對定點數的邏輯操作——AND、ANDNOT、OR、XOR和PASS。僅對定點數據轉換(升高/降低)操作——擴展(EXPAND)、壓縮(COMPACT)和合并(MERGE)。僅對定點CLU操作——最大值的Viterbi解碼(VMAX),turbo解碼的雅可比對數(TMAX),CDMA解擴(DESPREAD),多項式的重新排列(PERMUTE)和格構增加/比較/選擇(ACS)。ALU操作支持定點算術操作和邏輯操作,其操作數可以是8位、16位、32位、64位寬度;也支持浮點數算術操作,其操作可以是32位標準字、40位擴展精度字。定點數據轉換操作的操作數可以是8位、16位、32位、64位、128位,當輸入操作數是128位,只能用于EXPAND和COMPACT指令。對于ALU的定點數CLU操作,其操作數可以是一個或兩個32位數,兩個或四個16位數,四個或八個8位操作數。ALU操作ALU對定點和浮點數據執行算術操作,對定點數執行邏輯操作。DSP將輸入數據和輸出結果均放在計算塊存放器中。計算塊存放器XR0~XR31和YR0~YR31。ALU用一個專用雙存放器——PR存放器——存放并行結果。DSP使用PR存放器完成不同類型的SUM、VMAX和VMIN指令。指令選項大部份ALU指令帶有選項,允許靈活的運行指令。注意,這些選項細化指令執行,不同的選項適應不同的指令群——不是所有的選項都適用所有指令。指令選項出現在指令域末端的圓括弧中。ALU指令選項包括:()有符號操作,非飽和,向最近舍入,小數模式(S)有符號操作,飽和(U)無符號操作,非飽和,向最近舍入(SU)無符號操作,飽和(X)ABS擴展操作(T)有符號操作,截斷(TU)無符號操作,截斷(Z)對MAX/MIN,有符號結果返回零操作(UZ)對MAX/MIN,無符號結果返回零操作(I)有符號操作,整數模式(IU)無符號操作,整數模式(IS)有符號操作,飽和,整數模式(ISU)無符號操作,飽和,整數模式有符號/無符號選項DSP用8、16、32或64位表示定點數據,最多用四個32位的數據存放器。在ALU中的定點可以是無符號的或是2的補碼;浮點數總是原碼表示的。飽和選項有兩種類型的飽和算法——有符號數或無符號數。對有符號數飽和,無論何時發生溢出(AV標志被置位),把最大正值或最小負值作為輸出結果。無符號數飽和,即溢出時,將把最大值或零作為輸出結果。在輸出格式中,最大值和最小值指的是輸出格式所能表示的最大值和最小值。例如,在16位的短字運算中,最大的正數、最小的負數和最大無符號數分別是0x7fff,0x8000,和0xffff。擴展(ABS)選項對于ABS指令,X選項提供一個擴展的輸出范圍。沒有X時,輸出范圍是從0到正的最大有符號數(0x0到0x7F…F)。ABS使用X選項時,擴展輸出范圍從0x0到0x80…0,并且在這個范圍內,輸出數值是無符號的。截斷選項ALU指令,支持T選項截斷,這個選項選擇結果的舍入模式。DSP支持兩種舍入模式——向零舍入和向最近值舍入。定義如下:向最近舍入(不帶T選項)。如果舍入前的結果不能確切地用目的格式表示,則舍入的結果最接近舍入前的數值;如果舍入前的結果恰好是目的格式中最接近的兩個數的中間值(相差一個最低有效位),舍入的結果是最低有效位為零的數。向零舍入(使用T選項)。如果舍入前的結果不能確切地用目的格式表示,則舍入的結果是最接近零的數值,這與截斷相同。返回零(最大/最小)選項對于MAX/MIN指令,如果第二個輸入存放器包含最大值(對于MAX)或最小值(對于MIN),則Z選項改變操作,返回零值。小數/整數的選項DSP用8、16、32或64位表示定點數,最多用四個32位的數據存放器。在ALU中,小數或整數格式可用EXPAND和COMPACT指令。默認是小數格式。I選項選擇整數模式。ALU執行狀態ALU操作更新計算塊算術狀態(XSTAT和YSTAT)存放器,用來指示操作結果的狀態,保存在(XSTAT和YSTAT)存放器。如表2-1所示表2-1.ALU狀態標志標志定義被……更新AZALU定點數為0和浮點數下溢出所有ALU操作ANALU負數所有ALU操作AVALU上溢出所有算術操作ACALU進位所有定點操作;被浮點操作清零AIALU浮點無效操作所有浮點操作;被定點操作清零ALU操作也更新算術狀態(XSTAT和YSTAT)存放器中的關聯狀態標志位。表2-2中XSTAT或YSTAT中的標志位給出了最新的ALU操作中ALU的關聯狀態。一旦置位,關聯狀態將保持高,直到被程序明確地清零。表2-2.ALU狀態相關聯的標志標志定義被……更新AUSALU浮點下溢出,關聯位所有浮點操作AVSALU浮點上溢出,關聯位所有浮點操作AOSALU定點上溢出,關聯位所有定點操作AISALU浮點無效操作,關聯位所有浮點操作標志位在每個操作結束的時候更新,以便下個指令域應用。在乘法器正在進行一個操作的同一周期中,程序不能對算術狀態存放器賦值。ALU執行條件在一個條件ALU指令中,整個指令行的執行依賴指令行開始所指定的條件,如表2-3。條件ALU指令采用以下格式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;這個語法允許一個條件控制多達三條指令。在指令之前省略DO,則相應指令是無條件的。表2-3.ALU的條件標志定義標志設置AEQALU等于零AZ=1ALTALU小于零AN和AZ=1ALEALU小于或等于零AN或AZ=1NAEQNOT(ALU等于零)AZ=0NALTNOT(ALU小于零)AN和AZ=0NALENOT(ALU小于或等于零)AN或AZ=02.2.3CLU 通信邏輯單元(CLU)指令用來完成通信應用中的多種的算法。這些指令主要為以下算法設計(雖然也可以用于許多其它算法):Viterbi解碼Turbo碼的解碼碼分多址(CDMA)系統的解擴CLU指令的引入簡化了這些算法的程序,但仍保存軟件方式的靈活性,靠這種方式,根據特殊需求調整運算法是很容易的。另外,指令能滿足各種用途的需求;例如,對低密度的奇偶校驗碼,支持turbo碼解碼的TMAX指令,是非常有用的。 TigerSHARC處理器的主要性能是有高的數據傳輸率——每個周期可以進行兩個128位的存儲器訪問。解擴指令每周期可完成16個16位復數(8位實部,8位虛部)乘-加操作。在兩個計算塊里,每兩個周期就能完成整個16位64個狀態格構的計算。2.2.4乘法器乘法器執行定點和浮點數據的所有乘法操作,執行定點數據的所有乘累加操作和定點數據的所有復數乘法操作。在定點格式中,當乘法器把數據傳送到存放器堆時,乘法器也能執行對累加結果的數據壓縮操作。乘法器支持如下數據類型的操作:定點小數和整數乘法操作和乘累加操作支持:八個16位(短字)輸入操作數,得到四個16位或32位結果。兩個32位(標準字)輸入操作數,結果是32位或64位。浮點乘法操作支持:兩個32位(標準字)輸入操作數(IEEE標準),結果為32位。兩個40位(擴展精度)輸入操作數,結果為40位。定點數據壓縮操作支持:16位(短字)輸入操作數,32位(標準字)輸入操作數,64位(長字)輸入操作數,輸出16位或32位的結果。乘法器指令選項大局部乘法器指令有可選項,不同的選項適用于不同的指令群。指令選項出現在指令域末端的圓括弧中。()有符號的操作,非飽和,向最近舍入,小數模式(U)無符號的操作,非飽和,向最近舍入(nU)有符號的/無符號的輸入(I)有符號的操作,整數模式(S)有符號的操作,非飽和的(T)有符號的操作,截斷(C)清零操作(CR)清零/舍入操作(J)復數共軛操作有符號/無符號選項所有的定點乘法器指令可以使用有符號或無符號數據類型。選項如下:()兩個輸入操作數均為有符號的(默認值)(U)兩個輸入操作數均為無符號的(nU)Rm是有符號的,Rn是無符號的;選項只對Rs=Rm*Rn或Rsd=Rm*Rn有效。小數/整數選項定點操作數整數和小數選項定義如下:()數據是小數(默認)(I)數據是整數飽和選項當結果溢出——超過結果存放器所能表示的最大值時,如果選項(S)是有效的,定點數被飽和。飽和結果是:()無飽和(默認)(S)飽和是有效的0x7F…F——如果操作是有符號的,且結果是正的0x80…0——如果操作是有符號的,且結果是負的0xFF…F——如果操作是無符號的,且結果是正的0x00…0——如果操作是無符號的,且結果是負的(只在有符號的MR-=Rm*Rn中)截斷選項乘法器指令,支持T選項截斷,這個選項選擇結果的舍入模式。舍入的選項是:()向最近舍入(默認值)(T)對浮點數向零舍入,對定點數向負無窮舍入清零/舍入選項乘法操作和用MR存放器來傳送操作數的乘累加操作都支持MR清零(C)選項。在加法操作之前,使用這個選項強制對MR存放器清零(=0)。清零和清零/舍入選項是:()在乘累加操作之前,MR存放器不變化(默認值)(C)在乘累加操作之前,把目標存放器MR清零(CR)在乘累加操作之前,把目標存放器MR清零并設置舍入位復數共軛選項對于復數的乘累加操作(**操作符),乘法器支持復數共軛(J)選項。J選項指示乘法器用Rn復數的共軛去乘Rm。乘法器執行狀態乘法器操作更新算術狀態(XSTAT和YSTAT)存放器(見表2-4)。后續指令能使用狀態標志控制條件指令的執行和觸發軟件異常中斷。表2-4.乘法器狀態標志標志定義被……更新MZ乘法器定點為零和浮點下溢出所有的定點和浮點乘法器操作MN乘法器的結果是負的所有的定點和浮點乘法器操作MV乘法器上溢出所有的定點和浮點乘法器操作MU乘法器下溢出所有的浮點乘法器操作;被定點操作清零MI乘法器浮點非法操作所有的浮點乘法器操作;被定點操作清零乘法器操作也更新算術狀態(XSTAT和YSTAT)存放器中的關聯狀態標志位(見表2-5)。一旦置位,關聯狀態將保持高,直到被程序明確地清零。表2-5.乘法器的關聯狀態標志Flag定義被……更新MUS乘法器下溢出,關聯所有的浮點乘法器操作MVS乘法器浮點上溢出,關聯所有的浮點乘法器操作MOS乘法器定點上溢出,關聯所有的定點乘法器操作MIS乘法器浮點非法操作,關聯所有的浮點乘法器操作乘法器執行條件在一個條件乘法器指令中,整個指令行的執行依賴于指令行中指定的條件。條件乘法器指令采用如下形式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;這種語法允許一個條件控制三條指令。在指令之前省略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移位器 這個單元執行位方式的操作(算術和邏輯移位)以及位域操作(域提取和放置)。移位器也執行數據轉換操作,如定點和浮點格式轉換。移位器操作包括:向左或向右移位,或循環移位位處理;包括置位,清零,取反和位測試位域處理;域提取和放置縮放因子的識別,16位塊浮點數指數提取計算高位連續1或0的個數移位器對定點數據的操作,采用以下各項作為輸入:一個長字(64位)操作數,一個或兩個標準字(32位)操作數,兩個或四個短字(16位)操作數,四個或八個字節(8位)操作數。移位器操作移位器操作在計算塊存放器堆或移位存放器BFOTMP(移位器的內部存放器)中進行,BFOTMP用于PUTBITS指令。移位器操作能從存放器堆中提取它們的Rm輸入(操作數據),從存放器堆或指令中提供的立即數提取它們的Rn輸入(移位值)。當操作包括第三個輸入時,Rm和Rn是從存放器堆中取出的,第三個輸入Rs是讀-修改-寫(RMW)存放器。移位操作的移位值來自Rn,放在Rn最右邊的位域,移位值(移位的位數)由輸出操作數的寬度決定。對長字輸出Rn是8位、標準字輸出Rn是7位、對短字和字節輸出Rn是6位,這樣,所有移動量的左右移位都能完成,Rn中移位值以外的位被忽略。移位器指令選項大局部移位器指令有和它們相關聯的可選項,允許靈活的運行指令。不同的選項適用于不同的指令群。指令選項出現在指令域末端的圓括弧中。()零填充,右對齊(SE)符號擴展;適用于FEXT、FDEP和GETBITS指令(ZF)零填充;適用于FDEP指令移位器執行狀態移位器操作更新算術狀態(XSTAT和YSTAT)存放器的狀態標志。后續指令可用狀態標志控制條件指令的執行和初始化軟件異常中斷。表2-7中存放器XSTAT或YSTAT中的標志位表示最近的移位器操作狀態。標志位在每個操作結束的時候更新,以便下個指令域應用。在移位器正在進行一個操作的同一周期中,程序不能對算術狀態存放器賦值。表2-7.移位器狀態標志標志定義被……更新SZ移位器定點零所有移位操作SN移位器負數所有移位操作BF1–0移位器塊浮點只有BKFPT指令ANALU負數用PUTBITS指令時的結果溢出移位器執行條件在條件移位器指令中,整個指令行的執行依靠指令行開始指定的條件。條件移位器指令采用如下形式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;該語法允許一個條件控制多達三個指令。指令前省略DO,則此指令是無條件的。表2-8列出了移位器的條件。表2-8.移位器條件條件描述標志設置SEQ等于零SZ=1SLT小于零SN和SZ=1NSEQ不等于零SZ=0NSLT不小于零SN和SZ=02.3IALUTigerSHARC處理器的兩個獨立IALU是J-IALU和K-IALU。IALU支持標準的ALU運算和數據尋址運算。當數據在存儲器和存放器之間傳送時,由IALU提供存儲器的地址。兩個IALU允許為多操作數讀/寫同時產生地址。IALU的數據尋址和數據移位操作包括:直接和間接存儲器尋址循環緩沖尋址位反序尋址通用存放器(Ureg)移位和加載存儲器指針產生2.3.1IALU存放器每個IALU都包含由32個存放器組成的存放器堆和8個專用的循環緩沖尋址存放器。IALU中的所有存放器都是32位寬、存儲器映射的通用存放器。有關IALU存放器堆的幾點重要提示如下:J-IALU存放器堆的存放器是J31-J0,K-IALU存放器堆的存放器是K31-K0。除了J31和K31,這些存放器都是通用的且只存整型數據。J31和K31存放器是32位狀態存放器,也可以寫作JSTAT和KSTAT。當這兩個存放器用做IALU算術、邏輯或函數運算的操作數時,就作為J31和K31存放器使用,存放器的內容看作0。如果J31用做一個運算的輸出時,它不保存指令的結果,但設置標志位。當用作IALU加載、存儲或移位操作時,這兩個存放器作為JSTAT和KSTAT,這種操作不去除存放器的內容。每個IALU中的專用循環緩沖存放器選擇循環緩沖區的基地址和長度。這些專用存放器與每個IALU的存放器堆的前四個通用存放器共同管理八個循環緩沖區。有關IALU循環緩沖尋址的專用存放器的一些要點如下:循環緩沖指針(當前地址)是通過一個通用存放器設置的,也就是設置J-IALU的J3-J0,K-IALU的K3-K0。循環緩沖區基地址(起始地址)是通過一個專用存放器設置的。也就是設置J-IALU的JB3-JB0,K-IALU的KB3-KB0。循環緩沖區長度(存儲單元的個數)是通過一個專用存放器設置的。也就是設置J-IALU的JL3-JL0和K-IALU的KL3-KL0。循環緩沖區修正值(存儲位置之間的步長)是通過一個通用IALU存放器或一個立即數值設置的。控制循環緩沖區的指針、基地址和長度存放器作為一個整體工作。(J0用JB0和JL0,J1用JB1和JL1,等等)。IALU中控制循環緩沖區的任何存放器堆存放器(除了作為指針的那個)都可用作修正值。IALU可以使用加和減指令產生帶或不帶循環緩沖或位反序的尋址指針。修正地址值存儲在一個IALU數據存放器,也可以寫到程序控制器的計算跳轉存放器(CJMP)中(可選的)。2.3.2IALU算術、邏輯和函數操作IALU執行定點數(整型)的算術邏輯操作。DSP使用IALU存放器堆的存放器作為輸入操作數和IALU操作的輸出結果。IALU存放器堆的存放器是從J30到J0和K30到K0。大局部IALU指令都有和它們相關聯的選項,允許靈活的運行指令。不同的選項適應不同的指令群,IALU指令選項包括:()有符號數運算,向無窮舍入,整數(U)無符號運算(CB)對結果的循環緩沖運算(BR)結果的位反序運算(CJMP)把結果加載到結果存放器和運算跳轉(CJMP)存放器中2.3.3IALU執行狀態與執行條件IALU運算更新IALU的狀態存放器(JSTAT和KSTAT)的狀態標志。表2-9展示了JSTAT或KSTAT中標志位。這些標志指明了IALU最近操作的狀態。表2-9.IALU狀態標志位標志定義被……更新JZJ-IALU為零所有的J-IALU算術,邏輯,函數運算JNJ-IALU為負所有的J-IALU算術,邏輯,函數運算JVJ-IALU溢出所有的算術運算JCJ-IALU進位所有的算術運算KZK-IALU為零所有的K-IALU算術,邏輯,函數運算KNK-IALU為負所有的K-IALU算術,邏輯,函數運算KVK-IALU溢出所有的算術運算KCK-IALU進位所有的算術運算標志的更新發生在每個操作的末尾,以便下一個指令域的應用。程序不能在IALU運行一個操作的同一周期內,把狀態標志寫到一個IALU狀態存放器中。2.3.4IALU執行條件在一個有條件的IALU指令中,整個指令行的執行取決于指令行開始指定的條件。有條件IALU指令采用以下形式:IFcond;D0,instr.;DO,instr.;DO,instruct.;;這個語法中允許一個條件控制三條指令。省略DO表示此對應指令是無條件的。表2-10.列出了IALU條件。表2-10.IALU條件條件描述標志位設置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數據尋址和傳送操作 ADSP-TS201S的尋址都是由IALU模塊完成的,無論對核內存儲器尋址,還是對外部存儲器,或是其他處理器共享存儲單元尋址,都是由IALU完成的。具體可參見見第3章3.2.42.4程序控制器 TigerSHARC處理器核包含一個程序控制器。這個控制器包括指令排列緩沖池(IAB),程序指針(PC),跳轉地址緩沖池(BTB),中斷管理器,取地址機制。利用這些特征和指令流水線,控制著程序的執行??刂破鲝拇鎯ζ魅≈噶?,并且執行程序流控制指令??刂破髦С值牟僮靼ǎ禾峁┫乱粋€所取指令的地址管理指令排列緩沖池(IAB),從中執行指令管理跳轉地址緩沖池(BTB),以減少跳轉延遲循環計數器減1判定條件(對條件指令)響應中斷(帶程序流變化)具體指令可參考第三章3.2.5。2.5存儲器組織ADSP-TS201S的32位地址總線提供了高達4G的尋址空間,整個尋址空間對共享總線的所有處理器都是統一的。ADSP-TS201S采用的是統一的存儲器映射空間,片內和片外存儲器都有單獨而且唯一的地址空間。整個映射空間包含4個局部:主機尋址空間、外部存儲空間、多處理器空間和片內存儲器空間。除了主機空間之外,每個空間又包含更小的存儲器區,如外部存儲器尋址空間還有SDRAM區等。另外,無論處理器內部尋址空間還是外部尋址空間,TigerSHARC處理器保存了局部空間用于未來新處理器的擴展,但就目前,這些保存空間是不能訪問的。ADSP-TS201S尋址空間組成見以下圖2.3,整個尋址空間分為以下局部:主機尋址空間。用于片外主機接口的地址映射空間,外部主機可以是上位機或者其他TS201,地址映射范圍0x80000000~0xFFFFFFFF,此空間也可以配置普通存儲器;外部存儲空間。用于與外圍設備、存儲器接口的地址映射空間,包括通用的外部存儲器設備和SDRAM存儲器,地址映射范圍是0x30000000~0x7FFFFFFF;多處理器空間。用于多處理器系統中各處理器的內部存儲空間映射,地址范圍0x0C000000~0x2FFFFFFF;片內存儲空間。定義了本處理器內部存儲空間的地址映射,地址范圍0x00000000~0x03FFFFFF,它與上述多處理器空間中的第一個在物理上是同一的(取決于ID)。圖2.3尋址空間映射2.5.1主機尋址空間 主機尋址空間高達2G。如果地址線的最高位ADDR31為1,則尋址空間為主機空間,如果為零,則尋址空間為其他空間。如果有主機,主機可以訪問此空間,TS201也可以訪問此空間的普通存儲器。對主機尋址空間的訪問,根據SYSCON系統控制存放器中的主機位定義,可以使用流水協議或著慢速傳輸協議。2.5.2處理器內部存儲空間內部存儲空間主要由內部存儲器與通用存放器組成。ADSP-TS201S處理器內部嵌入了高達24Mbit的DRAM,分成了6塊,分別是M0,M2,M4,M6,M8,M10,每個塊4Mbit,配置成128K×32bit,每個塊均可用來存指令和數據。通用存放器有如下特點:在多處理器系統中,通用存放器能夠以地址映射的方式,由其他處理器通過對應的存放器地址來訪問;通用存放器能夠從存儲區中存數據、取數據,能夠與其他存放器傳遞數據;通用存放器支持單字、雙字、四字等方式訪問。 2.5.3外部存儲器尋址空間 外部存儲器尋址空間主要包含兩個局部:SDRAM尋址空間和外部通用存儲空間,該空間的訪問由高位地址線ADDR30~26的譯碼決定,如表2-11。 SDRAM尋址空間是為了訪問SDRAM而設置的,整個SDRAM尋址空間分為4個區,每個區的尋址范圍為64M字,各區的訪問由外部引腳決定。 外部通用存儲空間是用于訪問通用外設和存儲區的,該空間分為兩個區,各區尋址范圍128M字,由決定。2.5.4多處理器尋址空間 ADSP-TS201S可以采用無縫連接的方式實現最多8個處理器組成的系統,為了方便8個處理器之間存儲區的共享和相互訪問,DSP將內部的存儲區根據處理器的ID號映射到多處理器空間中不同的地址空間中,從而實現對其他處理器內部空間的訪問。另外,多處理器尋址空間中還提供了多處理器播送空間,任何處理器對該空間的訪問只能是寫,通過對播送空間的寫,可以實現對所有處理器的播送寫。多處理器尋址空間的劃分如表2-11。表2-11外部存儲器與多處理器尋址空間的地址劃分地址位名稱說明ADDR25~0地址線訪問尋址空間的地址ADDR30~26外部存儲器尋址空間選擇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是否為主機尋址空間=0,非主機尋址空間2.6鏈路口ADSP-TS201S有4個獨立的鏈路口。與ADSP-TS101相比,鏈路口的改良最為顯著。ADSP-TS201S的鏈路口由單端連接改為LVDS的差分連接模式,由準雙向口改為完全雙向通信,鏈路口時鐘最高也可到達核內時鐘速度,因此提供了更高的工作速度和更高的可靠性。2.6.1鏈路口存放器每個鏈路口有鏈路口控制存放器LCTLx、鏈路口狀態存放器LSTATx和鏈路口狀態去除存放器LSTATCx,用于鏈路口數據傳輸操作、描述數據傳輸操作后的故障檢測狀態。每個鏈路口都帶有一個鏈路口接收緩沖存放器LBUFERXx和鏈路口發送緩沖存放器LBUFTXx,用于緩存鏈路口傳輸時接收到的數據,或是用來存放要發送的發送數據。2.6.2鏈路口模式設置鏈路口模式的設置是由鏈路口存放器組完成的。鏈路口存放器包含鏈路口發送/接收存放器組和鏈路口控制和狀態存放器組。1.鏈路口接收控制存放器(LRCTL0~3)鏈路口接收控制存放器用來設置鏈路口的接收參數。在復位后,鏈路口控制存放器的默認值由外部Strap引腳確定,當Strap引腳LINK_DWIDTH=0,該存放器默認值0x00000001,當Strap引腳LINK_DWIDTH=1,該存放器默認值0x00000011,其定義如圖2.4所示。2.鏈路口發送控制存放器(LTCTL0~3)鏈路口發送控制存放器用來設置鏈路口的發送參數。該存放器復位后默認值0x00000001。定義如圖2.5所示.圖2.4鏈路口接收控制存放器位定義(16~31位保存)圖2.5鏈路口發送控制存放器位定義(16~31位保存)3.鏈路口接收狀態存放器(LRSTAT0~3)該存放器定義了鏈路口的接收狀態,復位后,默認值0x00000000,各位定義如圖2.6所示。圖2.6鏈路口接收狀態存放器位定義(16~31位保存)4.鏈路口發送狀態存放器(LTSTAT0~3)該存放器定義了鏈路口的發送狀態,復位后,默認值0x00000000,各位定義如圖2.7所示。圖2.7鏈路口發送狀態存放器位定義(16~31位保存)2.6.3鏈路口DMAADSP-TS201S有14個DMA通道,4個通道用于外部存儲器設備,8個DMA用于鏈路口,還有兩個自動DMA操作,其中8個鏈路口DMA可用于從一個鏈路口到另一個鏈路口的點對點數據傳輸,此時接收端的TCB必須編程為鏈路口接收TCB。使用DMA時,通過請求總線啟動DMA傳輸過程,同時數據從請求DMA效勞的鏈路口發送到接收鏈路口。從鏈路口到鏈路口DMA傳輸的TCB配置詳見DMA傳輸局部。2.6.4鏈路口連接與通信鏈路口可以配置為內核時鐘的1/1、1/1.5、1/2和1/4,只需要設置LTCTLx即可。鏈路口的信號連接如圖2.8所示。圖2.8鏈路口的信號連接(上圖為4位模式,以下圖為1位模式)ADSP-TS201S鏈路口是雙向口,每個通道到達4位,用LxCLKOUTP/N,LxACKI,LxCLKINP/N和LxACKO控制,接收方用LxACKO信號用于描述接收鏈路口是否準備好了接收,當發送方得到LxACKI有效的信號時,開始發送。LxBCMPI和LxBCMPO用于描述塊傳輸已經完成。當發送方DMA把最后4個字寫到發送鏈路口的發送緩沖后,給出一個完成標志,鏈路口則使LxBCMPO有效,當接收方采集到LxBCMPI信號,TCB清零,DMA完成。2.6.5鏈路口效勞請求中斷當有數據進入鏈路口接收緩沖時:如果相應的DMA通道沒有初始化,就會產生鏈路口效勞請求中斷;如果該鏈路口相應的DMA已經被初始化,就不產生鏈路口效勞請求中斷,而是發出DMA通道請求。復位后,此中斷默認不使能。2.7SDRAM接口2.7.1概述 ADSP-TS201S系列的處理器為SDRAM提供了專門的尋址空間,這些尋址空間通過SDRAM存儲器引腳/MSSD0~3來選擇,地址尋址空間范圍為0x40000000到0x7FFFFFFF。/MSSD0~3對應的尋址空間分別為:0x40000000~0x44000000;0x50000000~0x54000000;0x60000000~0x64000000;0x70000000~0x74000000。 ADSP-TS201S與SDRAM的接口如以下圖2.9所示。圖2.9SDRAM控制器接口2.7.2SDRAM控制存放器(SDRCON)在市面上有很多廠家可以提供SDRAM,不同的廠家制造出來的SDRAM芯片對激活—預充電命令延時和預充電—激活命令延時的要求不同,為了滿足不同廠家的SDRAM的這些要求,存放器SDRCON(配置見圖2.10所示)是需要配置的。SDRCON從低位到高位的含義如下:SDRAM使能:當系統中配置了SDRAM時,應當設置此位有效。CAS延時:為了滿足不同廠商SDRAM器件的讀延時()的要求而設置,根據SDRAM不同的特性和時鐘要求,該延時應當設置成1~3個時鐘周期。流水深度:允許SDRAM的地址和控制信號采用流水線的方式,如果該位有效,那么在對SDRAM的讀和寫訪問過程中將插入一個時鐘周期的延時。頁大?。簺Q定SDRAM的頁面大小。可設置256,512,1024字。刷新率:用來設置SDRAM的刷新率,由SOC時鐘計算。由下式獲得:ADSP-TS201S提供了4種刷新周期數的選擇,分別為,1100個,1850個,2200個,3700個SOC時鐘周期數。預充電到RAS延時:定義了SDRAM器件的預充電時間,該值范圍是2~5個時鐘周期。RAS到預充電延時:定義了SDRAM器件的行激活時間(),該值的范圍2~8個時鐘周期。初始化順序:該位決定模式存放器的設置(MRS)與刷新的順序。該位置1,8個刷新周期在MRS設置之前進行。否則,在8個刷新周期后進行MRS設置。EMR使能:該位置1,允許使用擴展的模式存放器設置順序(EMR),并且在MRS之前進行。該位只有在使用低功耗SDRAM時才能置1,否則置0。圖2.10SDRAM控制存放器(位16~31保存)2.8DMA2.8.1概述 直接存儲器訪問(DMA)是不需要處理器干預的數據傳輸機制。ADSP-TS201S片內的DMA控制器允許將數據傳輸作為一個后臺任務執行,從而將處理器解放出來,進行其他數字信號處理操作。ADSP-TS201S有14個DMA通道,4個通道用于外部存儲器設備,8個DMA用于鏈路口,還有兩個自動DMA操作, 值得注意的是,ADSP-TS201S不支持單片處理器的內部存儲器間的數據傳輸,但是ADSP-TS201S仍然可以通過多處理器空間執行這種操作,但執行這種操作會對總線帶來很大的傳輸開銷,因此很少使用。 DMA0~3通道是外部DMA,DMA4~11通道是鏈路口DMA,DMA12~13是自動DMA。并且其優先級由DMA13至DMA0依次降低。2.8.2DMA狀態和控制存放器組DMA控制和狀態存放器組包括DMA控制存放器、DMA狀態存放器、去除存放器和傳輸控制塊存放器等。DMA控制存放器(DCNT)DCNT存放器是一個只讀型的存放器,各位的定義如圖2.11所示。圖2.11DCNT存放器位定義(18~31位保存)存放器DCNTST用來設置DCNT的位,對寫入DCNTST的值與DCNT原有的值或(OR)之后,寫入DCNT。存放器DCNTCL用來去除DCNT的位,對寫入DCNTCL的值與DCNT原有的值或(AND)之后,寫入DCNT。DMA狀態存放器(DSTAT)DMA狀態存放器是一個64位的存放器,只讀型,記錄當前各個DMA通道的狀態。DSTAT只能通過雙字或四字方式訪問。表2-12DSTAT存放器描述對應位對應通道對應值55~53位DMA通道13000=DMA關閉001=傳輸中010=傳輸完成011=保存100=TCB非法配置110=保存111=播送讀方式,地址錯誤52~50位DMA通道1243~41位DMA通道1140~38位DMA通道1037~35位DMA通道934~32位DMA通道823~21位DMA通道720~18位DMA通道617~15位DMA通道514~12位DMA通道411~9位DMA通道38~6位DMA通道25~3位DMA通道12~0位DMA通道0DMA傳輸控制存放器(TCB)對于DMA0~11通道,每個DMA通道都配備了TCB存放器。每個TCB存放器為128位,包含DMA索引存放器DI,DMAX維存放器DX,DMAY維存放器DY和DMA指針存放器DP,每個存放器為32位。TCB存放器只能通過四字方式進行訪問。DI:是一個32位的存放器,指向DMA的源地址(目的地址)。DX:是一個32位的存放器,在普通DMA傳輸模式中該存放器的高16位存放DMA傳輸數據的長度,單位為32字,低16位存放的是DMA傳輸時的地址修改量。DY:位的定義與DX相同,在需要進行二維DMA時,DY是Y維上的數據傳輸量和地址修改量。DP:用來設置DMA的傳輸類型的位定義為:0~14位四字地址(TCB指針,存放鏈式DMA的TCB設置);15~16位,為鏈式指針選擇存放器(即鏈式指針的存放位置);17~21位,鏈的目的通道;22位,使能鏈式DMA;23位,DMA請求使能(外部方式觸發DMA);24位,DMA中斷使能,1=使能、0=不使能;25~26,操作數據長度01=32位字、10=64位字、11=四字;27位,二維DMA使能;28位DMA優先級,1=高優先級、0=正常優先級29~31位之指定,DMA設備。2.8.3鏈式DMA鏈式DMA就是處理器在完成一次DMA之后,能自動對其他DMA參數存放器載入新的值,自動進行DMA初始化,開始下一次DMA。使用鏈式DMA必須對相應的DMA通道的TCB存放器進行裝載。DP的0~14位指定鏈指針CHPT,它就是存儲器中的一個地址,該地址指向下一個TCB的內容。裝載時,DSP從四字對齊地址開始的4個連續單元中,取出一四字數據載入DMA通道的TCB存放器。內部和外部存儲器之間進行鏈式DMA時,必須裝載兩個TCB(源TCB和目的TCB),裝載完成后,使能鏈式位,將指針指向一個有效地址,就能使能DMA。TCB的裝載,也可以通過鏈式和直接的寫操作完成。2.8.4DMA中斷如果在通道的DPx的INT置1,DMA傳輸完成會產生DMA中斷。當DMA通道計數器減到零,傳輸完成時DMA會發出中斷。當DMA的目的為內部存儲器,意味著最后一個數據都到達內部存儲器。當DMA的目的地為外部存儲器,意味著數據都已到達外設的緩沖器。產生中斷必須是計數器減到零,向計數器寫零不會產生中斷。每個DMA都有自身的中斷,DMA中斷會鎖存在ILAT中,由IMASK存放器來屏蔽或者翻開。與中斷狀態存放器不同,翻開DSTAT可以看DMA是否完成,但如果是DMA鏈則不可以,因為檢測DSTAT時下一個DMA可能已經改變了DSTAT。2.9中斷ADSP-TS201S為應用設計提供了豐富的中斷資源,從結構上分為硬件中斷和軟件中斷。硬件中斷主要包括仿真器中斷、復位中斷、外部輸入中斷、定時器中斷、鏈路效勞請求中斷、DMA控制中斷、向量中斷(VIRPT)、硬件錯誤中斷和總線鎖定中斷。軟件中斷主要指由特別的指令和軟件異常引起的中斷,具有較高的優先級。此外,中斷也能分為內部中斷和外部中斷。見表2.14。表2.14中斷向量及優先級中斷優先級中斷向量存放器名中斷名稱說明中斷觸發63(最高)DBGDebug中斷邊沿62SW軟件異常邊沿57HWERR硬件故障中斷電平53TIMER1H定時器1高優先級中斷邊沿52TIMER0H定時器0高優先級中斷邊沿50BUSLOCK總線鎖定中斷邊沿48VIRPT向量中斷邊沿44~41IRQ3~0IRQ3~0中斷邊沿或電平38~37DMA13~12DMA13~12完成中斷邊沿32~29DMA11~8DMA11~8完成中斷邊沿25~22DMA7~4DMA7~4完成中斷邊沿17~14DMA3~0DMA3~0完成中斷邊沿9~6LINK3~0LINK3~0請求中斷邊沿3TIMER1L定時器1低優先級中斷邊沿2TIMER0L定時器0低優先級中斷邊沿0KERNELKERNEL中斷邊沿其余保存2.9.1中斷的處理過程當一個中斷發生時,存放器ILAT中的相應位置為1,同時將ILAT,IMASK以及PMASK按位相與,若相與的結果為1,又在SQCTL存放器中使能了全局中斷,則ADSP-TS201S響應優先級最高且使能了的中斷。中斷嵌套允許一個中斷效勞程序正在執行的過程中,響應另一個中斷。中斷的使能設置定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論