|
<!--插入廣告JS代碼--> |
II.總線結構; C5402的總線結構由8條主要的16位總線組成(4條程序/數據線,4條地址線):
· 程序總線(PB) 從程序存儲區傳輸指令代碼和立即操作數。
· 三條數據總線(CB,DB,EB) 連接內部的不同部分,諸如CPU,數據地址發生邏輯單元,程序地址發生邏輯單元,片內外圍設備。
· 四條地址線(PAB,CAB,DAB,EAB),傳送執行指令所需的地址。
利用兩個輔助寄存器算術單元(ARAU0,ARAU1),C5402能夠在一個時鐘周期內產生兩個數據存儲器地址。PB 能夠將數據操作數存儲至程序空間(例如系數表),以提供乘法器和加法器作乘法和累加運算,或者存儲至數據空間的目標寄存器,以提供作數據移位指令(例如MVPD和READA)。這種能力,結合讀雙操作數的特征,支持單周期三操作數指令(如FIRS)的執行。
C5402 DSP同時具有片內的雙向總線,以訪問片內外圍設備,該總線通過CPU界面內的總線交換器與DB和EB連接起來。通過該總線的訪問需要二至三個讀或寫的周期,具體時間取決于外設的結構。
III.中央處理單元(CPU);
40位的算術邏輯單元ALU,C54X以40位的算術邏輯單元和兩個40位的累加器(A和B)執行算術指令,ALU同時也能夠執行布爾操作。兩個40位的累加器,累加器A和B存儲ALU和乘法/加法模塊的輸出。它們可以給ALU提供第二次的輸入,累加器A可以作為乘法/加法器的輸入。
串行移位器:C5402的串行移位器具有40位的輸入,與累加器或者是數據存儲區(通過CB或DB)連接在一起,它由40位的輸出,連至ALU或數據存儲區(通過EB)。串行移位器可以對輸入數據進行0到31位的左移和0到16位的右移。
17×17位的乘法器:快速的片內乘法器允許C5402高效執行諸如卷積,相關和濾波操作。另外,乘法器和ALU一起可以在一個指令周期中執行乘法累加(MAC)運算及并行ALU運算。
比較,選擇,和存儲單元(CSSU):比較,選擇,和存儲單元(CSSU)執行比較累加器高位和低位的大小的操作,允許狀態寄存器ST0中的檢測/控制位TC和傳輸寄存器(TRN)保持它們的傳輸記錄,并且選擇累加器中較大的字存入數據存儲區。
IV.存儲器結構;
其存儲器為哈佛型,分為三個獨立的尋址空間;程序,數據,I/O口。它總共提供了
192K word的地址范圍,并可通過增強外設接口擴充。C5402的芯片上有16K的DARAM和
4K的P/D ROM。所有的存儲空間又分為多個8K大小的塊,支持分頁尋址處理,這使得在對其中一個塊操作時,可同時對另一個塊進行操作,增加了處理速度。
1. 片內存儲器;
片內ROM的結構(地址為:F800h--FFFFh):引導裝入程序、256-word的μ律擴展表,256-word的A律擴展表,256-word的sin查找表和中斷矢量表。
片內DARAM的結構(地址為:0060h—3FFFh):分為兩個8K的塊。
以下的CPU和外設存儲映射在第0頁(0000h–007Fh)。
· CPU存儲器存儲映射(0000h--000Fh)
該部分包括:中斷屏蔽寄存器,中斷標量寄存器,狀態寄存器ST0和ST1,累加器A和B,暫存器T,輔助寄存器AR0-AR7,堆棧指針SP,塊循環的地址和計數器寄存器,處理器模式寄存器PMST等有關CPU操作和狀態的寄存器,不需要等待狀態法生,就可以讀寫以上26個寄存器。
· 外設存儲器存儲映射(0060h--003Fh)
該部分控制外設的工作,通過映射表的寄存器與外設間發送和接收數據,可以設置控制寄存器的bit位能靈活的配置外設,對之進行使能,初始化等操作。
· 程序和數據存儲空間(0060h—3FFFh)
由PMST中OVLY來控制片內RAM被設置為程序或數據空間。OVLY=0時,片內RAM為數據空間。OVLY=1時,RAM可設為數據和程序空間,具體的數據和程序空間的分配由.cmd文件指定,可以在.map文件中看出。
軟件可編程等待狀態發生器:使外部總線周期延伸至7個機器周期,以便與片外的慢速存儲器或I/O設備接口。當無任何外部硬件時,等待狀態發生器不工作。對于片外存儲器的存取,軟件可編程等待狀態發生器(SWWSR)可指定0—7個等待狀態,這既適用于每個程序/數字存儲器,也適用于I/O空間。
可編程存儲器轉換邏輯:當訪問過程跨越程序或數據存儲器邊界時,可編程存儲器轉換邏輯會自動插入一個周期。當存儲過程由程序存儲器轉向數據存儲器時,也會插入一個周期。這一附加周期通過在其他器件開始驅動總線之前允許存儲器釋放總線,以避免總線競爭。轉換的存儲體的大小由存儲體轉換寄存器(BSCR)確定。
2.尋址模式
· 單操作數尋址,單操作數地址修改;
· ARAU和地址產生操作;
兩個輔助寄存器運算單元ARAU0和ARAU1對輔助寄存器的 內容(16比特無符號數)進行操作,通過預先改變輔助寄存器的值,可得到所需的地址。
C5402 DSP有七種基本的尋址方式:
1:立即數尋址:
1) 短立即數尋址 長度可以是3、5、8、9比特。
2) 16比特立即數尋址,使用哪種結構取決于使用哪種指令。
2:絕對尋址:
1) dmad(數據存儲區尋址),在數據空間定義寄存器標號,就可進行對該標號指向的存儲器進行讀寫操作。
2) pmad(程序存儲區尋址) 。
3) PA (端口尋址) 尋址 ,直接讀寫端口。
4) *(lk)尋址,是無須改變DP 或 SP ,就可以對數據空間的任何地址進行尋址,但不能用于RPT 和 RPTZ指令。
<!--mstheme-->