精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MAXQ指令集架構與RISC競爭對手的基準比較

星星科技指導員 ? 來源:ADI ? 作者:ADI ? 2023-03-01 18:00 ? 次閱讀

本文將MAXQ指令集與競爭微控制器進行比較,包括PIC16CXXX(中端器件)、AVR和MSP430。下表詳細介紹了每個指令集和體系結構的優(yōu)缺點。我們將使用選定的代碼算法和操作來判斷代碼密度和代碼性能。最后一節(jié)介紹并重點介紹了每個代碼示例的MIPS(每秒數(shù)百萬條指令)/mA比率。

MAXQ指令集概述

MAXQ指令集建立在傳遞-觸發(fā)概念之上。指令字僅由源操作數(shù)和目標操作數(shù)組成。雖然這些源和目標操作數(shù)可能表示物理寄存器,但編碼也可以表示數(shù)據(jù)存儲器、堆棧存儲器和工作累加器的間接訪問點,和/或可能隱式觸發(fā)硬件操作。特定MAXQ器件的源和目的編碼在與MAXQ器件相關的MAXQ用戶指南中定義。雖然有些源和目的編碼可能是特定于器件的,例如指定用于外設硬件功能的編碼,但某些固定編碼用于構建MAXQ基本指令集。圖1給出了MAXQ指令字和指令集助記符。

poYBAGP_Ii6AHAKNAAASv67vG9o431.gif

記憶 描述 記憶 描述
位操作 邏輯
MOVE C, #0/#1 清除/設置進位 AND 邏輯和
CPL C 補體進位 OR 邏輯或
AND Acc. 邏輯和帶累加器位的進位 XOR 邏輯異或
OR Acc. 邏輯或帶累加器位的進位 CPL, NEG One's, Two's Complement
XOR Acc. 帶累加器位的邏輯異或進位 SLA, SLA2, SLA4 算術左移 1,2,4
MOVE C, Acc. 移動累加器鉆頭進行攜帶 SRA, SRA2, SRA4 算術右移 1,2,4
MOVE Acc.,C 將進位移至累加器鉆頭 SR 邏輯右移
MOVE C, src. 移動寄存器位進行攜帶 RR, RRC 旋轉右進位(防/進)獨占
MOVE dst., #0/#1 清除/設置寄存器位 RL, RLC 旋轉左攜帶(防/入)獨占
數(shù)學 數(shù)據(jù)傳輸
ADD, ADDC 添加進位(防/入)獨占 XCHN 交換累加器數(shù)據(jù)半字節(jié)
DJNZ LC[n], src 減去進位(前/內)排除 XCH(MAXQ20) 交換累加器數(shù)據(jù)字節(jié)
流量控制和分支 MOVE dst, src 將源移動到目標
JUMP {C/NC/Z/NZ/E/NE/S} 跳躍 - 無條件或有條件,相對或絕對 PUSH/POP 推/彈出堆棧
DJNZ LC[n], src 遞減計數(shù)器,跳躍不為零 POPI 彈出堆棧并啟用中斷 (INS<0)
CALL 調用 - 相對或絕對 其他
RET {C/NC/Z/NZ/S} 返回 - 無條件或有條件 NOP 無操作
RETI {C/NC/Z/NZ/S} 從中斷返回 - 無條件或有條件 CMP 與蓄能器比較

圖1.MAXQ指令字所示的源到目的地傳輸產(chǎn)生一個小但非常強大的指令集。

國際海底管理局 強度 弱點
AVR 32個通用工作寄存器(累加器)
數(shù)據(jù)指針是直接可尋址工作寄存器的一部分;允許對高/低指針字節(jié)進行輕松屏蔽和位操作。
從指針讀取 + 位移(0 到 63 字節(jié)位移)
堆棧僅受內部 RAM 限制(沒有 RAM 的 90S1200 除外,則堆棧深度 = 3)
單周期操作
相對跳躍 ±2k(雙周期)
所有AVR都有數(shù)據(jù)EEPROM
設置/清除每個狀態(tài)寄存器標志的明確說明;大量位操作指令
分離的間向量
流水線指令提取
超過 32 個注冊,負載 (LD)/存儲 (ST) 開銷成為 LD/ST 的一個因素 @X,Y,Z = 兩個周期,LPM = 3 個周期
減少了對文字操作的支持/范圍(沒有ADDC,EORI;只有CPI,ORI,ANDI,SUBI,SBCI,LDI在R16-R31上的工作)
無旋轉指令,不包括攜帶
條件跳躍范圍僅 +63/-64(雙周期)
呼叫/重新/重新輸入 = 四個周期
圖16CXXX 源,編碼為 ALU 操作的目標位
直接數(shù)據(jù)訪問(符號尋址模式)可以產(chǎn)生密集的代碼,有利于數(shù)據(jù)疊加
時鐘內核導致執(zhí)行速度差
流水線指令提取
訪問上層數(shù)據(jù)存儲器組需要分頁 (RP1:0銀行選擇)
需要間接數(shù)據(jù)訪問 INDF、FSR 寄存器
無法直接加載W(累加器)
無 ADDC, SUBB
堆棧深度 = 8
沒有相對跳轉/分支 - 只有絕對跳躍(CALL,GOTO)或條件跳躍(BTFSx)
用于代碼存儲器讀取的 RETLW = 浪費的代碼空間,并且不允許代碼空間的 CRC
CALL/GOTO/RET/RETFIE/RETW 都需要八個時鐘周期(兩個指令周期)
單中斷向量

MAXQ與其他指令集架構的比較

可以嘗試將MAXQ指令助記符與其他架構的指令助記符進行比較,但這種分析既困難又不合理,因為每個指令集都是圍繞特定的器件資源和尋址模式構建的。因此,指令集和器件架構(指令周期、存儲器模型、寄存器集、尋址模式等)是不可分割的,必須一起考慮。表1總結了所比較的指令集架構的優(yōu)缺點。

代碼示例

比較指令集架構的最佳方法是定義一組任務并編寫代碼來執(zhí)行這些任務。以下各節(jié)描述了要執(zhí)行的某些任務,并總結了每個指令集體系結構的代碼密度和性能結果。第一個例程的示例代碼包含在文檔中,而隨后的例程將僅用圖形和文本進行匯總。Maxim可根據(jù)要求提供與每組統(tǒng)計數(shù)據(jù)對應的代碼例程。

國際海底管理局 強度 弱點
MSP430 廣泛的源,目標尋址模式在操作碼中編碼 - 可以產(chǎn)生密集代碼
16 位內部路徑
內部存儲器可作為字或字節(jié)訪問
常量發(fā)電機 (CG) 用于 -1, 0, 1, 2, 4, 8
單周期操作
堆棧僅受內部 RAM 限制
條件/相對跳轉目標范圍 = ±512(雙周期)
單獨的中斷向量,自動清除單源標志
馮·諾依曼記憶圖+精心設計的尋址模式=多個周期。唯一的單周期指令是那些專門處理Rn的指令。 外設寄存器訪問 = 三到六個周期
CG不支持的文字需要額外的單詞
目標操作數(shù)不能注冊間接或注冊間接自動增量
寄存器間接不支持自動遞減
符號尋址限制了重用代碼例程的能力
MAXQ 系統(tǒng)和外設寄存器可作為同一邏輯存儲器空間中的源或目標進行訪問,從而實現(xiàn)最快的數(shù)據(jù)傳輸
單循環(huán)運行,無流水線
單周期條件跳轉(+127/-128)或雙周期絕對跳轉(0-65,535)
單周期呼叫/重新/重新輸入
自動遞減環(huán)路計數(shù)器寄存器消除了維護計數(shù)器時通常浪費的開銷
累加器(工作寄存器)文件的自動遞增/遞減/模控制
每個數(shù)據(jù)指針的可選字或字節(jié)訪問模式
可前綴的操作代碼允許簡單的指令集擴展或增強方法
主動累加器始終是 ALU 操作的隱式目標
單端口、同步、SRAM 數(shù)據(jù)存儲器要求在使用前激活(選擇)數(shù)據(jù)指針
默認堆棧深度 = 16,但是,數(shù)據(jù)指針硬件非常適合在數(shù)據(jù)存儲器中實現(xiàn)軟堆棧

內存副本 (MemCpy64)

存儲器復制示例演示了微控制器間接操作數(shù)據(jù)存儲器塊的能力。任務是將 64 個字節(jié)從數(shù)據(jù)存儲器源位置復制到不重疊的數(shù)據(jù)存儲器目標。以下頁面提供了每個微控制器的代碼例程,以及匯總復制操作的周期計數(shù)和字節(jié)計數(shù)的圖表。這些例程假定在復制操作之前已經(jīng)定義了指針和字節(jié)計數(shù),并且要復制的字節(jié)在存儲器中是字對齊的,因此可以使用MSP430和MAXQ20的字訪問模式。

;======================================AVR======================================
; ramsize=r16       ;size of block to be copied
; Z-pointer=r30:r31     ;src pointer
; Y-pointer=r28:r29     ;dst pointer
; USES:
; ramtemp=r1      ;temporary storage register
loop:           ; cycles
  ld ramtemp,Z+       ; 2 @src => temp
  st Y+,ramtemp       ; 2 temp => @dst
  dec ramsize       ; 1
  brne loop       ; 2/1
  ret         ; 4/5
          ;---------
          ;(7*bytecount) + return - 1(last brne isn't taken).
; WORD COUNT = 5 ; CYCLE COUNT = 451>

;=====================================MAXQ10====================================
; DP[0] ; src pointer (default WBS0=0)
; DP[1] ; (dst-1) pointer (default WBS1=0)
; LC[0] ; byte count (Loop Counter)
loop:         ;words & cycles
  move DP[0], DP[0]     ; 1 implicit DP[0] pointer selection
  move @++DP[1],@DP[0]++  ; 1
  djnz LC[0], loop    ; 1
  ret       ; 1
        ;----------
        ; 4 / (3*bytecount) +1
; WORD COUNT = 4 ; CYCLE COUNT = 193

;====================================MAXQ20=====================================
; Assuming bytes are word aligned (like MSP430 code) for comparison
; DP[0] ; src pointer (default WBS0=1)
; DP[1] ; (dst-1) pointer (default WBS1=1)
; LC[0] ; byte count / 2 (Loop Counter)
loop:       ;words/cycles
  move DP[0], DP[0]     ; 1 implicit DP[0] pointer selection
  move @++DP[1],@DP[0]++  ; 1
  djnz LC[0], loop    ; 1
  ret       ; 1
        ;----------
        ; 4 / (3*bytecount/2) +1
; WORD COUNT = 4 ; CYCLE COUNT = 97

;====================================MSP430=====================================
; MSP430 has a 16-bit data bus
; assuming bytes are word aligned, only requires (blocksize/2 transfers).
; R4  ;src pointer
; R5  ;dst pointer
; R6  ;size of block to copy
loop:         ;words/cycles
  mov @R4+, 0(R5)     ;2 / 5 @src++ => dst
  add #2, R5    ;1 / 1 const generator makes this 1/1
  decd.b R6     ;1 / 1 really sub #2, R6
  jz loop       ;1 / 2
  ret       ;1 / 3
        ;----------
        ;6 / (9*(bytecount/2)) + return
; WORD COUNT = 6 ; CYCLE COUNT = 291

;===================================PIC16CXXX===================================
; a   ; src pointer base
; b   ; dst pointer base
; i   ; byte count held in reg file
; USES:
; temp  ; temp data storage
loop:         ; cycles
  decf i, W     ; 1 i-- => W
  addlw a       ; 1 (a+i--) => W starting at end
  movwf FSR     ; 1 W => FSR
  movfw INDF    ; 1 W <= @FSR get data
  movwf temp    ; 1 W => temp
  movlw (b-a)     ; 1 diff in dest-src
  addwf FSR, F    ; 1 (b+i--) => W
  movfw temp    ; 1 temp => W
  movwf INDF    ; 1 W => @FSR store data
  decfsz i, F     ; 2/1 i--
  goto loop     ; 2
  return      ; 2
        ;----------
        ;11 / (12*bytecount) +1 (ret instead of goto, +1 on decfsz)
; WORD COUNT = 12 ; CYCLE COUNT = 769 (*4clks/inst cycle = 3076)

pYYBAGP_Ii-AEsnhAABH8hNvuoA157.gif

MAXQ器件提供最佳的代碼密度,在執(zhí)行速度方面是明顯的贏家。MAXQ10執(zhí)行復制操作的速度比MAXQ20慢,因為它對數(shù)據(jù)指針使用默認的字節(jié)訪問模式。對于MAXQ10應用,如果認為執(zhí)行速度比代碼密度更重要,并且要復制的數(shù)據(jù)存儲器是字對齊的(MSP430和MAXQ20示例已經(jīng)假設),則可以對源和目標數(shù)據(jù)指針使用字訪問模式。啟用字模式允許將MAXQ10復制環(huán)路切成兩半,但需要額外的指令來啟用/禁用字訪問模式。MAXQ器件相對于競爭產(chǎn)品所表現(xiàn)出的壓倒性性能優(yōu)勢可歸因于以下架構優(yōu)勢:

1. 無流水線 - 分支不會像其他設備那樣產(chǎn)生刷新指令預取的開銷。
2. 自動遞減循環(huán)計數(shù)器 - 減輕了手動執(zhí)行此操作的需要。
3. 哈佛內存映射 - 程序和數(shù)據(jù)不共享相同的物理空間,允許同時獲取程序和數(shù)據(jù)訪問。
4. 預遞增/遞減間接目標指針 - 簡化并加快目標指針的前進速度。這是 MSP430 的一個弱點,它使用 0(R5) 表示@R5,然后必須使用另一條指令推進該目標指針。

存儲器復制示例中所示的MAXQ優(yōu)勢轉化為類似的增益,適用于需要在數(shù)據(jù)存儲器中進行頻繁輸入/輸出緩沖的應用。在性能方面,最接近的競爭對手是 MSP430。例如,可能需要數(shù)據(jù)存儲器緩沖,假設我們有一個MSP430器件,該器件配備了具有16位輸出寄存器的ADC外設。將數(shù)據(jù)從外設輸出寄存器傳輸?shù)綌?shù)據(jù)存儲器并遞增指針以準備下一個ADC輸出樣本,可以使用如下代碼進行處理:

                                                ; words/cycles
      mov.w       &ADAT,0(R14)                  ; 3 / 6              Store output word
                    incd.w R14                  ; 1 / 1              Increment pointer
                                                ; 4 / 7

在MAXQ20上,相同的傳遞操作如下所示:

    move        @++DP[0], ADCOUT              ; 1 / 1

氣泡排序(氣泡排序))

冒泡排序例程不僅展示了有效訪問數(shù)據(jù)存儲器的能力,而且還在數(shù)據(jù)字節(jié)之間執(zhí)行算術和/或比較運算,并有條件地對字節(jié)進行重新排序。代碼例程對 32 個數(shù)據(jù)存儲器字節(jié)進行排序,以便它們按升序或降序排列。周期計數(shù)假定字節(jié)重新排序大約有一半時間是相鄰字節(jié)比較的結果。下圖總結了每個微控制器上排序操作的周期計數(shù)和字節(jié)計數(shù)。

poYBAGP_IjCAL9JMAABEFdv4L-0154.gif

MAXQ器件再次產(chǎn)生最佳的碼密度,是以下領域的明顯贏家。 執(zhí)行速度。MAXQ的優(yōu)勢可以歸因于存儲器復制示例中討論的相同架構優(yōu)勢。

十六進制到 ASCII 轉換 (十六進制2Asc)

此轉換例程測試微控制器的算術和邏輯運算范圍。它還在轉換和擴展單個字節(jié)中包含的數(shù)據(jù)時測試它們對文本字節(jié)數(shù)據(jù)的支持。周期計數(shù)表示一個平均值,假設每個半字節(jié)可以是 16 個十六進制值之一 - 0 到 9,Ato F。下圖總結了每個微控制器上轉換操作的周期計數(shù)和字節(jié)計數(shù)。

poYBAGP_IjCACgZfAABJr8IFY_Y676.gif

對于這個測試例程,AVR需要的字更少,因為它的工作寄存器可以直接訪問,而MAXQ最有效的方法需要手動更新累加器指針。MSP 代碼密度受到影響,因為它缺少操作半字節(jié)的操作,并且常量生成器不支持的文本 (#nnnnh) 必須用單獨的單詞進行編碼。MAXQ器件和Atmel AVR在性能方面取得了類似的結果,而其他器件則落后。MSP430 的性能受到執(zhí)行操作的額外碼字的影響。

算術右移 2 個位置(向右)

此例程演示了微控制器支持 16 位字數(shù)據(jù)存儲器訪問和 ALU 操作的能力。所需的操作是以算術方式移位(即保留最高有效位)駐留在數(shù)據(jù)存儲器中的 16 位字。假設字駐留在數(shù)據(jù)存儲器的前 256 個字節(jié)中,并在存儲器中對齊,以便由具有該功能的微控制器進行字尋址。下圖總結了每個微控制器上移位操作的周期計數(shù)和字節(jié)計數(shù)。

支持16位ALU操作的微控制器MAXQ20和MSP430提供 代碼密度明顯提高。除PIC外,所有8位計算機都需要至少兩倍的代碼字數(shù)才能完成相同的算術移位。MAXQ20提供最佳性能,MAXQ10雖然僅支持8位ALU操作,但性能接近16位MSP430。

pYYBAGP_IjGADEUkAABGo7O4zfU063.gif

MAXQ20和MSP430表現(xiàn)出更高的ODE密度,因為它們能夠比16位機器更有效地處理8位數(shù)據(jù)。但是,每種方法都以略有不同的方式這樣做。MAXQ20將要移位的16位字傳輸?shù)焦ぷ骷拇嫫鳎ɡ奂悠鳎谀抢锟梢允褂枚辔凰阈g移位。MSP430 使用寄存器間接尋址模式 (RRA @R5) 執(zhí)行單位算術移位運算,并且不會從其存儲器位置顯式傳輸字。在提供更高性能的同時,當20位字的算術移位可以使用多位算術移位操作碼(SRA430、SRA16、SLA2、SLA4)時,MAXQ2可以提供與MSP4相同或更好的碼密度。

位爆炸端口引腳(位爆炸)

此示例測試指令集體系結構通過直接位操作或通過移位/旋轉分解字節(jié)并將各個位發(fā)送到端口引腳(“位敲擊”)的能力。端口引腳輸出分別表示時鐘和數(shù)據(jù),要求數(shù)據(jù)在時鐘的上升沿必須有效。由于代碼直接操作端口引腳,因此此測試還演示了訪問I/O端口寄存器的難易程度。下圖總結了每個微控制器上端口位爆炸操作的周期計數(shù)和字節(jié)計數(shù)。

pYYBAGP_IjKAREeVAABO3OQOPZc149.gif

MAXQ器件顯然是性能最好的器件。由于底層 4 周期內核架構,PIC 性能在這里受到限制(與其他示例一樣)。MSP430的性能較差,可歸因于其馮諾依曼存儲器架構和需要使用絕對尋址來訪問端口輸出寄存器。

在碼密度方面,MAXQ和PIC具有相同的字數(shù)。然而,PIC在RISC機器中優(yōu)于MAXQ,因為它的14位程序字與MAXQ的16位程序字相比。MSP430代碼密度受到影響,因為它必須使用至少兩個字來訪問具有絕對尋址模式(即和寄存器)的外設寄存器,或者當使用常量生成器無法減少的文字(例如,#3h)時。

MSP430訪問其外設寄存器的方法值得進一步評論。微控制器的主要職責是以某種方式與外界接口。因此,它必須控制、監(jiān)視和處理 I/O 引腳上發(fā)生的活動。如果微控制器嵌入很少的外設硬件模塊,則此活動的負擔留給軟件。要使軟件執(zhí)行任何有意義的操作,它必須讀取和寫入端口引腳。在 MSP430 上,這些端口引腳寄存器駐留在需要使用絕對訪問模式的外設寄存器空間中。現(xiàn)在考慮一個具有豐富“智能”外設的微控制器。毫無疑問,在使用片上專用硬件執(zhí)行必要功能的過程中,必須配置、控制和訪問更多的外設寄存器。在 MSP430 上,這些寄存器位于需要使用絕對訪問模式的外設寄存器空間中。因此,與 MSP430 絕對尋址模式相關的代碼密度和性能損失是無法逃避的。

“MIPS/mA”指標

功耗通常是選擇處理器或內核架構的重要因素。給定系統(tǒng)的總體功耗取決于許多因素,例如電源電壓和工作頻率,以及盡可能使用低功耗模式的能力。降低電源電壓和/或工作頻率,以及頻繁使用低功耗模式,可以大大降低系統(tǒng)總功耗。雖然給定微控制器的最小電源電壓在很大程度上取決于器件制造工藝技術,但降低工作頻率和使用低功耗模式的能力在很大程度上取決于系統(tǒng)設計人員可以確定的應用要求。MIPS/mA指標提供了一種簡單的方法來評估微控制器的代碼效率,同時考慮有功電流消耗。應選擇通用電源電壓,以便在不同器件之間創(chuàng)建有意義的MIPS/mA比較。對于即將到來的比較,假設為3V電源電壓。為了考慮所比較的指令集架構(即AVR、MSP430、PIC16、MAXQ)的差異和效率,還需要為生成的每個代碼示例生成單獨的MIPS/mA比率。

poYBAGP_IjOAAyRiAAAQpoCJA_w174.gif

圖2.這個IccActive與MHz的例子說明了靜態(tài)和動態(tài)電流增加的影響。

為了確定MIPS/mA比率的“mA”部分,我們檢查了器件的數(shù)據(jù)手冊。大多數(shù)微控制器供應商都規(guī)定了與器件最大工作頻率相關的典型和最大有功電流。假設靜態(tài)(DC)電流非常小,這些數(shù)據(jù)點允許得出典型和最大mA/MHz近似值,用于在任何時鐘頻率下外推有功電流。如果供應商提供有功電流與溫度/頻率特性數(shù)據(jù),則可以相對于特定系統(tǒng)環(huán)境條件更好地量化和定義mA/MHz比。否則,我們必須簡單地依靠離散數(shù)據(jù)點和我們對非常小的靜態(tài)電流的假設。靜態(tài)(DC)電流的增加會改變mA與MHz特性曲線的起點,從而限制系統(tǒng)設計人員在降低時鐘頻率(降低動態(tài)電流)時看到的總增益。圖2給出了一個IccActive vs. MHz圖示例。表2比較了各種內核的mA/MHz數(shù)字,并引用了信息來源。當以后的計算中需要此術語時,將使用每個架構的突出顯示的 mA/MHz 數(shù)。

pYYBAGP_IjSAcb04AAAU6RhdX8s873.gif

圖3.MAXQ架構通過每條指令在一個時鐘上執(zhí)行幾乎所有指令來實現(xiàn)高MIPS性能比。

MIPS/mA 指標的“MIPS”部分用于量化性能差異。我們將首先給出圖3中MIPS的簡單公式。

在評估給定架構的MIPS時,每條指令的時鐘數(shù)(CPI)非常重要。例如,Microchip PIC等架構要求每個指令周期有多個時鐘。此外,架構通常需要多個指令周期來執(zhí)行某些指令,或者在執(zhí)行跳轉/分支時需要周期來刷新指令管道。在比較架構時,MIPS的平均性能通常遠低于峰值性能(MIPS),并且因指令組合而異。

裝置 典型毫安/兆赫 最大毫安/兆赫
PIC16C55X 0.7 1.25 PIC16C55X 數(shù)據(jù)表:DC 表 10.1, D010 (Vcc= 3V, 2兆赫);XT 或 RC
PIC16C62X 0.7 1.25 PIC16C62X 數(shù)據(jù)表:DC 表 12.1, D010 (Vcc= 3V, 2兆赫);XT 或 RC
圖16LC71 0.35 0.625 PIC16C71X 數(shù)據(jù)表:DC 表 15.2, D010 (Vcc= 3V, 4兆赫);XT 或 RC
PIC16F62X 0.15 0.175 PIC16F62X 數(shù)據(jù)表:DC 表 17.1, D010 (Vcc= 3V, 4MHz)
PIC16LF870/1 0.15 0.5 PIC16F870/1 數(shù)據(jù)表:DC 表 14.1, D010 (Vcc= 3V, 4兆赫);XT 或 RC
AT90S1200 0.33 0.75 AT90S1200 數(shù)據(jù)手冊:EC 表 (3V, 4MHz), 圖 38, 4mA/12MHz (典型值)
AT90S2313 0.50 0.75 AT90S2313 數(shù)據(jù)手冊:EC 表 (3V, 4MHz), 圖 57, 7.5mA/15MHz (典型值)
MSP430F1101 0.30 0.35 MSP430x11x1 數(shù)據(jù)表:直流規(guī)格 IccActive (Vcc= 3V, FMCLK = 1MHz)
MPS430C11X1 0.24 0.30 MSP430x11x1 數(shù)據(jù)表:直流規(guī)格 IccActive (Vcc= 3V, FMCLK = 1MHz)
MSP430Fx12x 0.30 0.35 MSP430x12x 數(shù)據(jù)表:直流規(guī)格 (V抄送= 3V, FMCLK = 1MHz, FACLK = 32kHz)
MAXQ10 0.30 模擬
MAXQ20 0.30 模擬

為了生成一個更有用的指標并生成一個值來幫助我們達到 MIPS/mA 目標指標,我們將 MIPS 除以 MHz。MIPS/MHz比率可以解釋為在單個時鐘中執(zhí)行的平均指令數(shù)(對于給定的代碼示例)。使用MIPS/MHz數(shù)和之前計算的mA/MHz數(shù),可以生成MIPS/mA比率。下表分別顯示了每個早期代碼例程比較的MIPS/MHz和MIPS/mA數(shù)字。

核心 MIPS/MHz
MemCpy64 BubbleSort Hex2Asc ShRight BitBang Peak
MAXQ10 1.00 0.99 1.00 1.00 1.00 1
MAXQ20 1.00 0.99 1.00 1.00 1.00 1
PIC 0.23 0.20 0.23 0.25 0.21 0.25
MSP 0.44 0.39 0.64 0.33 0.61 1
AVR 0.57 0.62 0.90 0.71 0.61 1
核心 微弱/毫安
MemCpy64 BubbleSort Hex2Asc ShRight BitBang
MAXQ10 3.33 3.30 3.33 3.33 3.33
MAXQ20 3.33 3.30 3.33 3.33 3.33
PIC 1.53 1.35 1.53 1.67 1.40
MSP 1.85 1.62 2.66 1.39 1.55
AVR 1.71 1.86 2.69 2.14 1.83

為了進一步分析,我們必須通過將MIPS/mA比率除以給定代碼樣本實際執(zhí)行的指令數(shù)來考慮核心架構和指令集效率之間的差異。這種額外計算的基本原理是,執(zhí)行三個單周期指令(最高MIPS/MHz比率= 1)實際上并不比一個3周期指令(MIPS/MHz比率= 0.33)好。盡管如此,由此產(chǎn)生的MIPS/mA比率卻大不相同。事實上,如果完成相同的任務,大多數(shù)人更喜歡一條指令而不是三條指令。通過將MIPS/mA比率除以執(zhí)行的指令數(shù),我們正在根據(jù)給定微控制器用于執(zhí)行特定任務的指令組合調整MIPS/mA比率。結果值已規(guī)范化為最高性能值,如下表所示。

核心 標準化 (MIPS/mA)
MemCpy64 BubbleSort Hex2Asc ShRight BitBang
MAXQ10 0.50 1.00 1.00 0.40 1.00
MAXQ20 1.00 1.00 0.96 1.00 1.00
PIC 0.06 0.29 0.39 0.33 0.38
MSP 0.42 0.45 0.68 0.56 0.48
AVR 0.19 0.48 0.88 0.26 0.48

結論

歸一化的“MIPS/mA”指標為我們提供了 比較具有不同架構、指令集和電流消耗特性的微控制器。較高的歸一化“MIPS/mA”比通常可以產(chǎn)生以下一個或兩個好處:(1)可以降低系統(tǒng)時鐘頻率,以及(2)可以增加在低功耗或睡眠模式下花費的時間。這兩種可能性都有助于降低系統(tǒng)的整體功耗。或者,可以在保持給定電流/功率預算的同時實現(xiàn)更高的整體系統(tǒng)性能。無論優(yōu)點如何,MAXQ架構產(chǎn)生的高MIPS/mA比都是效率的可靠指標。

審核編輯:郭婷


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    7487

    瀏覽量

    151044
  • 寄存器
    +關注

    關注

    31

    文章

    5317

    瀏覽量

    120003
  • 存儲器
    +關注

    關注

    38

    文章

    7452

    瀏覽量

    163598
收藏 人收藏

    評論

    相關推薦

    淺談RISC-V指令集架構的來龍去脈

    最近和幾個行業(yè)內的朋友聊天,聊到了近兩年比較火的AI人工智能,并向我推薦了一款目前在小范圍內比較火的國產(chǎn)處理器,我查了一下該處理器是采用的開源RISC-V指令集
    的頭像 發(fā)表于 01-24 17:42 ?6273次閱讀

    現(xiàn)代處理器的主要指令集架構

    ? ?現(xiàn)代處理器的主要指令集架構(ISA)包括:x86指令集架構RISC指令集
    的頭像 發(fā)表于 12-11 09:55 ?4327次閱讀
    現(xiàn)代處理器的主要<b class='flag-5'>指令集</b><b class='flag-5'>架構</b>

    CISC(復雜指令集)與RISC(精簡指令集)的區(qū)別  

    Instruction Set Computers,復雜指令集計算)和RISC(Reduced Instruction Set Computers)是兩大類 主流的CPU指令集類型
    發(fā)表于 07-30 17:21

    RISC-V指令集的特點總結

    開源 定義:RISC-V 是完全開源的指令集架構(ISA),意味著任何人都可以查看、使用、修改以及分發(fā)其設計,而無需支付版權費用。 優(yōu)勢:這種開源特性促進了全球性的創(chuàng)新和合作。 社區(qū)化 定義
    發(fā)表于 08-30 22:05

    RISC-V和arm指令集的對比分析

    RISC-V和ARM指令集是兩種不同的計算機指令集架構,它們在多個方面存在顯著的差異。以下是對這兩種指令集的詳細對比分析: 一、設計理念
    發(fā)表于 09-28 11:05

    AMD擴展x86并行指令集

    為了減輕多核心處理器的編程工作,AMD已經(jīng)出版了擴展其x86指令集的若干計劃中的第一份計劃。通過這個行動,AMD再次把它的規(guī)則用在了跟英特爾公司的競爭上,從而在技術上推進其CPU架構領先于它的最大
    發(fā)表于 07-26 07:34

    解讀CPU的組成指令集架構

    文章目錄腦圖視頻解讀CPU的組成指令集架構: 復雜指令集 (CISC) VS 精簡指令集RISC)X86
    發(fā)表于 07-30 06:20

    RISC-V指令集架構微控制器相關知識

    本系列痞子衡給大家介紹的是RISC-V指令集架構微控制器相關知識。  RISC-V指令集最早要追溯到2010年,是加州大學伯克利分校的一個研
    發(fā)表于 12-16 06:24

    精簡指令集架構RISC與復雜指令集架構CISC有何區(qū)別

    精簡指令集架構RISC是什么?復雜指令集架構CISC又是什么?精簡指令集
    發(fā)表于 12-23 10:02

    risc指令集是什么_有哪些

     RISC指令集是高性能CPU的發(fā)展方向。它與傳統(tǒng)的CISC(復雜指令集)相對。相比而言,RISC指令格式統(tǒng)一,種類
    發(fā)表于 12-19 11:55 ?2w次閱讀
    <b class='flag-5'>risc</b><b class='flag-5'>指令集</b>是什么_有哪些

    指令集架構與開源架構

    首先所有推崇RISC-V的文章都在說RISC-V架構簡單,功耗面積低,這其實跟以前夸MIPS沒什么不同。在CPU設計里,指令集是其中最簡單最基礎的一部分,可以說,采用
    的頭像 發(fā)表于 07-16 10:05 ?7286次閱讀

    RISC-V | 關于第五代精簡指令集計算機,你了解多少?

    RISC-V指令集架構簡單、完全開源并且免費,將基準指令和擴展指令分開,可以通過擴展
    的頭像 發(fā)表于 06-05 14:55 ?6920次閱讀
    <b class='flag-5'>RISC</b>-V | 關于第五代精簡<b class='flag-5'>指令集</b>計算機,你了解多少?

    簡單講講RISC-V指令集CPU的參數(shù)

    本次CPU采用32位RISC-V指令集架構(一代是自己瞎編指令集)。指令集就是程序指令的集合,指
    的頭像 發(fā)表于 08-07 14:55 ?3588次閱讀
    簡單講講<b class='flag-5'>RISC</b>-V<b class='flag-5'>指令集</b>CPU的參數(shù)

    一個基于精簡指令集原則的開源指令集架構RISC-V

    我們可以基于x86/ARM/ RISC-V指令集,進行處理器微架構設計和實現(xiàn)形成源代碼,并通過流片最終形成芯片產(chǎn)品。
    發(fā)表于 01-30 16:28 ?2820次閱讀

    復雜指令集和精簡指令集有什么區(qū)別

    的兩種主要指令集架構,它們在多個方面存在顯著的差異。以下是對這兩種指令集架構的詳細比較,涵蓋設計理念、
    的頭像 發(fā)表于 08-22 11:00 ?2775次閱讀