從指令系統對MAXQ和其它RISC微控制器作出比較與評測
發布時間:2007/8/28 0:00:00 訪問次數:560
魯維德
本文從指令系統上對MAXQ與其它RISC(精簡指令集電腦運算)競爭微控制器(包括PICl6CXXX、AVR和MSP430)作出比較與評測。
前言
由于將高級模擬功能與前沿微控制器整合在一起,因而MAXQ架構成為當今微控制器業界中的一個真正創新。MAXQ開拓性地采用了一種傳送-觸發架構,實現了高帶寬、高效率和高正交性的設計。而MAXQ系統和外設資源的模塊化組織結構也導致了編譯器的最優化,模塊的可移植性加速了新的MAXQ衍生產品的誕生。這些MAXQ架構的內部特性為新一代產品的指令集擴展創造了條件。這些引人矚目的優點使MAXQ架構成為當前和未來項目的理想方案,無論以何種標準來衡量,它將都是—個名列前茅的選擇。
為了更好的、方便的、靈活的應用好該全新的微控制器-MAXQ RISC架構,值此很有必要從指令系統上對MAXQ與其它RISC(精簡指令集電腦運算)競爭微控制器(包括PICl6CXXX、AVR和MSP430)作出比較與評測,并以表格的方式列出了各種指令系統和架構的優勢和弱點。將利用選定的算法和操作代碼來判斷不同系統的代碼密度和代碼性能,并在最后重點介紹各實例代碼的MIPS(每秒百萬指令)/mA比率。
MAXQ指令系統概覽
MAXQ指令系統建立在傳送-觸發概念之上。指令字簡單地由源和目的操作數構成。這些源和目的操作數能夠表示物理寄存器,通過編碼還可以間接訪問數據存儲器、堆棧存儲器和工作累加器或用于隱含地觸發硬件操作。有關MAXQ的傳送-觸發架構早己有過介紹。特定MAXQ器件的源和目的編碼在該器件相關的MAXQ用戶指南中有詳細說明。盡管有些源和目的編碼只適用于特定器件,例如用于外圍硬件功能的編碼,還是有一些固定的編碼為不同器件所共有,它們構成了基本的MAXQ指令系統。表1給出了MAXQ指令字和指令系統助記符。
表1.為MAXQ指令字和指令系統助記符
而MAXQ指令字所表達的源-目的傳送概念產生了一個小巧且強有力的指令集。見圖1的MAXQ指令字格式。
圖1:獨特的MAXQ指令字
從MAXQ指令字非常獨特,因為只有一條傳統意義上的指令,即“MOVE” 指令。將16位MAXQ指令分解后,得到的只有兩部分:7位(ddddddd)目的域,以及帶有1位源格式位的8位(ssssssss)源域。當源格式位編碼為0時,表示以立即數或文本字節(即#00h-#FFh)作為源操作數。在單個指令字中對于立即數源的無限支持則對寄存器的初始化例程和ALU操作非常有價值。當源格式位編碼為1時,非文本源和目的操作數又細分為更小的組或模塊。從而可看出MAXQ指令字很簡單,但功能卻很強大。
MAXQ對比其它指令系統
有人可能會試圖拿MAXQ的指令助記符來和其他系統作對比,但應該強調,這種分析會十分困難且不公平,因為每種指令系統都是基于特定的器件資源和尋址模式而建止的。基于這個原岡,指令系統和器件架構(指令周期、存儲器模型,寄存器組、尋址模式等等)是密不可分的,必須統一考慮。表2歸納了幾種指令系統在強項和弱項上的比較。
代碼實例
比較不同指令系統的最佳方法是定義一系列任務,并在不同指令體系下編寫代碼來執行這些任務。隨后介紹這些用于執行的任務,并歸納各指令系統的代碼密度和性能表現。第—個例程的實例代碼包含在下文程序中,但后面的例程(從第4節存儲器拷貝開始到第9節)僅用圖表和正文中對其性能加以歸納。
;===========================AVR ==================================
; ramsize=r16 ;Size of block to be copied
; Z-pointer=r30:r3l ;Src pointer
; Y-pointer=r28:r29 ;dst pointer
; USES:
; ramtemp=r1 ;temporary
魯維德
本文從指令系統上對MAXQ與其它RISC(精簡指令集電腦運算)競爭微控制器(包括PICl6CXXX、AVR和MSP430)作出比較與評測。
前言
由于將高級模擬功能與前沿微控制器整合在一起,因而MAXQ架構成為當今微控制器業界中的一個真正創新。MAXQ開拓性地采用了一種傳送-觸發架構,實現了高帶寬、高效率和高正交性的設計。而MAXQ系統和外設資源的模塊化組織結構也導致了編譯器的最優化,模塊的可移植性加速了新的MAXQ衍生產品的誕生。這些MAXQ架構的內部特性為新一代產品的指令集擴展創造了條件。這些引人矚目的優點使MAXQ架構成為當前和未來項目的理想方案,無論以何種標準來衡量,它將都是—個名列前茅的選擇。
為了更好的、方便的、靈活的應用好該全新的微控制器-MAXQ RISC架構,值此很有必要從指令系統上對MAXQ與其它RISC(精簡指令集電腦運算)競爭微控制器(包括PICl6CXXX、AVR和MSP430)作出比較與評測,并以表格的方式列出了各種指令系統和架構的優勢和弱點。將利用選定的算法和操作代碼來判斷不同系統的代碼密度和代碼性能,并在最后重點介紹各實例代碼的MIPS(每秒百萬指令)/mA比率。
MAXQ指令系統概覽
MAXQ指令系統建立在傳送-觸發概念之上。指令字簡單地由源和目的操作數構成。這些源和目的操作數能夠表示物理寄存器,通過編碼還可以間接訪問數據存儲器、堆棧存儲器和工作累加器或用于隱含地觸發硬件操作。有關MAXQ的傳送-觸發架構早己有過介紹。特定MAXQ器件的源和目的編碼在該器件相關的MAXQ用戶指南中有詳細說明。盡管有些源和目的編碼只適用于特定器件,例如用于外圍硬件功能的編碼,還是有一些固定的編碼為不同器件所共有,它們構成了基本的MAXQ指令系統。表1給出了MAXQ指令字和指令系統助記符。
表1.為MAXQ指令字和指令系統助記符
而MAXQ指令字所表達的源-目的傳送概念產生了一個小巧且強有力的指令集。見圖1的MAXQ指令字格式。
圖1:獨特的MAXQ指令字
從MAXQ指令字非常獨特,因為只有一條傳統意義上的指令,即“MOVE” 指令。將16位MAXQ指令分解后,得到的只有兩部分:7位(ddddddd)目的域,以及帶有1位源格式位的8位(ssssssss)源域。當源格式位編碼為0時,表示以立即數或文本字節(即#00h-#FFh)作為源操作數。在單個指令字中對于立即數源的無限支持則對寄存器的初始化例程和ALU操作非常有價值。當源格式位編碼為1時,非文本源和目的操作數又細分為更小的組或模塊。從而可看出MAXQ指令字很簡單,但功能卻很強大。
MAXQ對比其它指令系統
有人可能會試圖拿MAXQ的指令助記符來和其他系統作對比,但應該強調,這種分析會十分困難且不公平,因為每種指令系統都是基于特定的器件資源和尋址模式而建止的。基于這個原岡,指令系統和器件架構(指令周期、存儲器模型,寄存器組、尋址模式等等)是密不可分的,必須統一考慮。表2歸納了幾種指令系統在強項和弱項上的比較。
代碼實例
比較不同指令系統的最佳方法是定義一系列任務,并在不同指令體系下編寫代碼來執行這些任務。隨后介紹這些用于執行的任務,并歸納各指令系統的代碼密度和性能表現。第—個例程的實例代碼包含在下文程序中,但后面的例程(從第4節存儲器拷貝開始到第9節)僅用圖表和正文中對其性能加以歸納。
;===========================AVR ==================================
; ramsize=r16 ;Size of block to be copied
; Z-pointer=r30:r3l ;Src pointer
; Y-pointer=r28:r29 ;dst pointer
; USES:
; ramtemp=r1 ;temporary