MAXQ RISC架構(gòu)將高性能和低功耗與各種復雜的模擬功能相結(jié)合。
MAXQ?架構(gòu)簡介
如今,微控制器系統(tǒng)設(shè)計人員在為項目選擇微控制器時有無數(shù)種選擇——8位、16位、RISC、CISC或介于兩者之間。通常,在選擇過程中會考慮許多標準。這些可能包括價格、性能、功耗、代碼密度、開發(fā)時間,甚至是未來的遷移路徑替代方案。使選擇過程復雜化,對一個標準的嚴格要求通常會影響其他領(lǐng)域的選擇。一個應(yīng)用中的關(guān)鍵因素在另一個應(yīng)用中可能并不重要。因此,沒有一種微控制器適用于所有項目。但要取得成功,現(xiàn)代微控制器必須在所考慮的許多領(lǐng)域表現(xiàn)出色。
當世界知名的模擬芯片制造商Maxim Integrated與業(yè)界領(lǐng)先的高性能微控制器供應(yīng)商Dallas Semiconductor聯(lián)手時,創(chuàng)造了將卓越的模擬功能與領(lǐng)先的微控制器集成的機會。這種合作關(guān)系的一個成果是MAXQ RISC架構(gòu),這是一種新的微控制器內(nèi)核,結(jié)合了高性能和低功耗以及各種復雜的模擬功能。
將復雜的模擬電路與高性能數(shù)字模塊集成時,工作環(huán)境應(yīng)盡可能保持安靜和無噪聲。然而,微控制器內(nèi)核數(shù)字電路中發(fā)生的時鐘和開關(guān)會將噪聲注入敏感的模擬部分。這就是混合信號設(shè)計人員面臨的困難:實現(xiàn)高微控制器性能,同時將可能影響敏感模擬電路的時鐘噪聲降至最低。
MAXQ架構(gòu)通過智能時鐘管理和利用來降低噪聲。這意味著MAXQ內(nèi)核只支持那些需要隨時時鐘的電路,從而降低了功耗,為模擬集成提供了最佳的安靜環(huán)境。此外,MAXQ架構(gòu)在每個時鐘上執(zhí)行許多功能,以最大限度地提高其性能。本文概述了MAXQ架構(gòu),并重點介紹了其競爭優(yōu)勢。
不浪費周期時鐘
MAXQ架構(gòu)旨在實現(xiàn)高性能功率比。生成高效機器的第一個必要條件是最大限度地利用時鐘周期來執(zhí)行用戶代碼。
MAXQ實現(xiàn)高利用率的最基本途徑是單周期指令執(zhí)行。單周期指令執(zhí)行通過增加指令帶寬從而提高性能和/或通過降低時鐘頻率的能力降低功耗,使最終用戶受益。所有MAXQ指令在單個時鐘周期內(nèi)執(zhí)行,但跳遠/長調(diào)用和某些擴展寄存器訪問除外。雖然許多RISC微控制器聲稱支持單周期執(zhí)行,但這通常適用于一小部分指令或?qū)ぶ纺J?。使用MAXQ,單周期執(zhí)行是常態(tài)。
其次,MAXQ架構(gòu)提高了時鐘周期利用率,因為它不需要指令流水線(許多RISC微控制器通用)來實現(xiàn)單周期工作。MAXQ指令解碼和執(zhí)行硬件非常簡單(時序也非??欤@些操作與程序獲取本身進入相同的時鐘周期,對最大工作頻率的影響最小。為了說明消除指令流水線的好處,請考慮從流水線執(zhí)行的通用RISC CPU。當程序分支發(fā)生時,CPU 使用一個或多個時鐘周期(取決于管道深度)將程序提取轉(zhuǎn)移到目標分支地址,并丟棄已獲取的指令。顯然,使用時鐘周期丟棄指令而不是執(zhí)行指令是浪費和不可取的,因為它會降低性能并增加功耗。雖然該操作對用戶來說是不希望的,但 CPU 為重新加載管道而竊取的時鐘是體系結(jié)構(gòu)的產(chǎn)物,并且是不可避免的。MAXQ架構(gòu)區(qū)別于其他8位和16位RISC微控制器,提供單周期執(zhí)行,無需指令流水線(以及隨之而來的浪費時鐘周期)。
MAXQ指令字
MAXQ指令字是獨一無二的,因為只有一條經(jīng)典意義上的指令,即“MOVE”指令?!癕OVE”指令的源操作數(shù)和目標操作數(shù)是創(chuàng)建指令和內(nèi)存訪問以及觸發(fā)硬件操作的基礎(chǔ)。剖析16位MAXQ指令字只能顯示兩個元件:7位目標字段和8位源字段以及源格式位。源格式位在編碼為 0 時允許將任何即時或文本字節(jié)值(即 #00h-#FFh)作為源操作數(shù)提供。在寄存器初始化例程和執(zhí)行ALU操作期間,對單個指令字內(nèi)任何直接字節(jié)源的無限制支持可能非常有價值。非文字源和目標可能性細分為較小的組或模塊。圖1所示為16位MAXQ指令字。
圖1.MAXQ指令字很簡單,但功能非常強大。
所有機器指令都簡化為傳輸操作的源操作數(shù)和目標操作數(shù)。這些操作數(shù)可用于選擇物理MAXQ器件寄存器。這種類型的轉(zhuǎn)移是最基本且很容易想象的。然而,在MAXQ機器中,源操作數(shù)和目的操作數(shù)與物理寄存器并不嚴格關(guān)聯(lián)。
MAXQ架構(gòu)在執(zhí)行間接存儲器訪問時使用相同的源到目標傳輸結(jié)構(gòu)。某些目標和/或源編碼被標識為物理存儲器(如堆棧、累加器陣列和數(shù)據(jù)存儲器)的間接訪問門戶。這些間接內(nèi)存訪問入口使用物理指針寄存器來定義用于訪問的相應(yīng)內(nèi)存地址位置。例如,間接訪問數(shù)據(jù)存儲器的一種方法是使用“@DP[0]”操作數(shù)。當分別用作源或目標時,此操作數(shù)觸發(fā)對數(shù)據(jù)指針 0 (DP[0]) 寄存器尋址的數(shù)據(jù)存儲器位置的間接讀取或?qū)懭朐L問。
MAXQ架構(gòu)還使用特殊的目的和/或源編碼來觸發(fā)底層硬件操作。這種觸發(fā)機制是創(chuàng)建隱式鏈接到某些資源的MAXQ指令的基礎(chǔ)。例如,數(shù)學運算(ADD、SUB、ADDC 和 SUBB)作為特殊的目標編碼實現(xiàn),這些編碼隱式針對其中一個工作累加器,僅由用戶提供源操作數(shù)。條件跳轉(zhuǎn)隱式以指令指針 (IP) 為目標進行修改,并作為可評估的每個狀態(tài)條件的單獨目標編碼實現(xiàn)。
間接內(nèi)存訪問和底層硬件操作觸發(fā)器盡可能組合在一起,以創(chuàng)建新的源/目標操作數(shù),這提供了雙重優(yōu)勢。數(shù)據(jù)指針的自動遞增/遞減間接訪問助記符演示了這種組合。當使用 DP[0] 從數(shù)據(jù)存儲器讀取時,用戶可以分別使用“@DP[0]++”或“@DP[0]--”源操作數(shù)在讀取操作之后選擇遞增或遞減指針。
MAXQ指令字具有許多優(yōu)點。指令字包含模塊化分組的源和目標操作數(shù),允許簡單快速的指令解碼硬件,并限制那些不參與傳輸?shù)哪K的信號切換,從而降低動態(tài)功耗和噪聲。指令字使用其完整的 16 位來指定源和目標操作數(shù),從而為物理寄存器、間接內(nèi)存訪問和硬件觸發(fā)的操作產(chǎn)生豐富的地址空間。最終,將豐富的源/目標地址空間與對源目標組合的最小限制耦合,從而產(chǎn)生高度正交的計算機。
MAXQ系統(tǒng)亮點
MAXQ系統(tǒng)不僅提供了當今微控制器用戶所期望的基本硬件資源和能力,而且還增強了這些資源并增加了新的功能,以擴展器件的功能和實用性。雖然記錄所有MAXQ系統(tǒng)資源是不可行的,但這里將討論一些資源。
工作蓄能器
到目前為止,MAXQ架構(gòu)已作為一個整體進行處理。然而,MAXQ10和MAXQ20這兩個略有不同的版本將在最初的MAXQ產(chǎn)品系列中實現(xiàn)。MAXQ10和MAXQ20選項的主要區(qū)別在于工作累加器的標準寬度和支持算術(shù)單元(ALU)。MAXQ10支持8位(字節(jié)寬)累加器和ALU操作,MAXQ20支持16位(字寬)累加器和ALU操作。MAXQ器件至少配備16個蓄能器,根據(jù)應(yīng)用的不同,可有多達16個蓄能器。在源/目標傳輸映射中,這些累加器位于系統(tǒng)寄存器模塊中,每個累加器都可以作為 A[n] 直接訪問,其中 n 對應(yīng)于它們各自的索引。因此,配備0個累加器的MAXQ器件將包含累加器A[1],A[14]...A[15]和A[16]。任何一個累加器都可以被指定為活動累加器,并通過 Acc 助記符間接訪問,方法是將累加器指針寄存器 AP 設(shè)置為其特定索引(即 Acc = A[AP])。AP寄存器僅實現(xiàn)向累加器陣列提供二進制解碼所需的位數(shù),因此在具有<>個累加器的MAXQ器件中需要<>位。所有 ALU 操作都隱式指定活動累加器作為正在執(zhí)行的操作的目標。以“ADDC src”指令為例。此指令始終在活動累加器、進位標志和指定的源 (src) 操作數(shù)之間執(zhí)行加法操作。豐富的位操作和移位/旋轉(zhuǎn)指令圍繞著有源累加器。
附加硬件附加到累加器指針,以加快對累加器文件的有序和可預測訪問。累加器-指針控制 (APC) 寄存器提供用于復位 AP 以及簡化累加器指針寄存器上的遞增、遞減和模運算的位。
處理器狀態(tài)標志 (PSF) 寄存器包含五個狀態(tài)標志,這些標志與活動累加器狀態(tài)和 ALU 操作具有特殊含義。這些是 (C)arry、(Z)ero、(S)ign、(E)qual 和 (OV)erflow status 標志。可以評估其中一些標志以執(zhí)行條件跳轉(zhuǎn)和返回。PSF 寄存器還提供兩個額外的通用標志(GF1 和 GF0),以滿足用戶軟件需求。
專用硬件堆棧
MAXQ架構(gòu)包含一個專用的硬件堆棧。任何MAXQ器件的堆棧深度都取決于產(chǎn)品。專用硬件堆棧具有兩個明顯的優(yōu)勢。首先,它允許保留數(shù)據(jù)存儲器以供其他應(yīng)用程序使用,而不是被堆棧消耗,其次,它支持快速PUSH/POP操作,因為存在專用的讀/寫端口,不需要與數(shù)據(jù)存儲器共享。如果硬件堆棧深度不足以滿足所需的上下文存儲,則數(shù)據(jù)指針的類似堆棧的操作(寫入的前遞增/遞減,讀取的后遞增/遞減)非常適合在數(shù)據(jù)存儲器中創(chuàng)建軟件堆棧。
靈活的中斷架構(gòu)
MAXQ10和MAXQ20支持單個用戶可配置的中斷矢量地址寄存器。該方案允許根據(jù)用戶偏好放置中斷標識和服務(wù)例程。任何中斷源都沒有自然優(yōu)先級。除了正常的單個和全局中斷使能和標志外,在模塊級別還提供屏蔽和識別標志。單個源啟用、模塊到全局級別的屏蔽和中斷源的優(yōu)先級由用戶代碼控制。所述中斷支撐結(jié)構(gòu)可以是有利的。首先,沒有未使用的代碼空間。對于每個源具有專用中斷向量地址的微控制器,通常不能這樣說,因為與未使用的中斷向量相關(guān)的代碼空間通常未使用。其次,用戶加強了對啟用哪些中斷和中斷優(yōu)先級的控制。
硬件環(huán)路計數(shù)器可減少開銷
MAXQ架構(gòu)實現(xiàn)DJNZ指令,可與兩個16位環(huán)路計數(shù)器(LC[0]或LC[1])寄存器中的任何一個配合使用。在單時鐘周期中,“DJNZ LC[n],src”指令遞減環(huán)路計數(shù)器寄存器,如果計數(shù)器未達到0,則有條件地將程序執(zhí)行分支到指定地址。對于競爭RISC微控制器,更新計數(shù)器寄存器和測試環(huán)路終止條件通常是兩個獨立的操作。在MAXQ中合并這兩個動作意味著微控制器應(yīng)用代碼中常見的軟件環(huán)路需要更少的代碼和周期開銷來管理環(huán)路計數(shù)器。單周期、DJNZ 觸發(fā)的環(huán)路計數(shù)器遞減和條件分支操作完全遵循我們最大化時鐘周期利用率的目標。
增強的數(shù)據(jù)指針
MAXQ配備三個16位數(shù)據(jù)指針(DP[0]、DP[1]和BP[Offs])。所有三個數(shù)據(jù)指針均可通過數(shù)據(jù)指針控制(DPC)寄存器中的字/字節(jié)選擇(WBSn)寄存器位單獨配置為字或字節(jié)訪問模式。所有三個數(shù)據(jù)存儲器指針都支持單周期間接內(nèi)存訪問,寫入操作具有前遞增/遞減,讀取操作的遞增/遞減后。其中一個數(shù)據(jù)指針,幀指針 (FP=BP[Offs]),由 16 位基指針 (BP) 寄存器和 8 位偏移 (Offs) 寄存器的無符號加法組合生成。這種類型的指針對于 C 編譯器開發(fā)工具尤其重要,更具體地說,在處理堆棧幀時。
具有馮·諾依曼優(yōu)勢的哈佛記憶架構(gòu)
MAXQ架構(gòu)采用哈佛存儲器結(jié)構(gòu),其中程序和數(shù)據(jù)存儲器總線是分開的,因此可以在同一時鐘周期內(nèi)同時訪問指令字和數(shù)據(jù)字。這種存儲器組織方式對于實現(xiàn)最大性能并支持訪問數(shù)據(jù)存儲器的指令的單周期執(zhí)行是必要的。使用馮諾依曼存儲器接口的微控制器會遇到與在訪問程序存儲器、數(shù)據(jù)存儲器、I/O和外設(shè)之間共享總線帶寬相關(guān)的性能瓶頸。
馮·諾依曼存儲器架構(gòu)的擁護者認為,無法訪問程序空間作為數(shù)據(jù)存儲器,反之亦然是一個弱點。具有可訪問性可以簡化常量存儲、查找表以及系統(tǒng)內(nèi)或應(yīng)用程序內(nèi)編程替代方案。針對這一弱點的MAXQ架構(gòu)解決方案是插入存儲器管理單元(MMU)和固定實用程序ROM,提供邏輯存儲器映射和固定實用程序代碼例程,以支持在系統(tǒng)編程和所需的訪問模式。
集中訪問資源
MAXQ架構(gòu)的另一個重要特性是存在一個傳輸映射,其中包含所有資源的接入點。將其稱為傳輸映射而不是簡單的寄存器映射的原因是MAXQ架構(gòu)所基于的傳遞觸發(fā)概念。
傳輸映射分為 16 個模塊。每個模塊中有 32 個索引或單獨的接入點。應(yīng)該再次強調(diào)的是,這些接入點可用于對寄存器的直接讀/寫訪問,但它們也可用于間接訪問存儲器或觸發(fā)硬件操作。在 16 個模塊中,前 0 個模塊 (M5–M6) 分配給特定于設(shè)備的外設(shè)功能。這在傳輸映射中為外設(shè)寄存器和訪問提供了大量空間(32 x 192 = 10 個位置)。這些模塊基于特定的MAXQ器件選項,填充寄存器以實現(xiàn)數(shù)字I/O、定時器、串行端口、硬件乘法器、LCD驅(qū)動器、ADC和在線調(diào)試器等功能。最后6個模塊(M15-M2)保留用于MAXQ系統(tǒng)功能。系統(tǒng)模塊包含對MAXQ系統(tǒng)工作至關(guān)重要的寄存器,例如用于看門狗、系統(tǒng)時鐘和中斷控制的寄存器。系統(tǒng)模塊還包含工作累加器文件、數(shù)據(jù)指針和源/目標編碼,用于觸發(fā)間接內(nèi)存訪問和/或特殊機器操作?;鞠到y(tǒng)寄存器空間在MAXQ器件選項中盡可能通用。圖<>給出了MAXQ源和目的傳輸圖示例。
圖2.所有MAXQ資源都可以通過中央傳輸圖訪問。
前綴寄存器模塊是MAXQ架構(gòu)的一個特性,值得特別提及。存在單個前綴寄存器,其中數(shù)據(jù)(默認值 = 00h)用于需要它的傳輸操作。此前綴寄存器在加載時將數(shù)據(jù)保存一個時鐘周期,然后返回到 00h 狀態(tài)。索引 (n) 必須伴隨前綴寄存器 (PFX[n]) 選擇。由于傳輸映射中有 16 個模塊和每個模塊 32 個索引,因此無法使用單指令字中可用的源/目標編碼位直接訪問某些位置。模塊中的后 16 個源索引和后 24 個目標索引都是如此。前綴寄存器通過打開對這些位置的訪問窗口來解決此問題,該窗口持續(xù)一個周期。加載 PFX[n] 寄存器時,其索引 “n” 為緊隨其后的指令提供高階源位和目標位,其中 n = dds。在這方面,前綴寄存器模塊是一種手段,通過它可以提供額外的解碼位來訪問擴展(和/或受保護)寄存器。需要加載前綴寄存器的操作和訪問由匯編程序自動生成,不需要由用戶手動編碼。前綴寄存器模塊還可用于在寫入 16 位目標時連接源字節(jié)。盡管前綴寄存器對用戶是透明的,但前綴寄存器正好以這種方式用于跳轉(zhuǎn)和調(diào)用 16 位絕對地址。對于那些對MAXQ架構(gòu)未來增強感興趣的人,前綴寄存器模塊為MAXQ指令集擴展或擴展到當前未使用的系統(tǒng)模塊空間提供了一種無縫機制。
總之,任何MAXQ器件上的完整傳輸映射都包含為該器件定義的所有系統(tǒng)和外設(shè)寄存器。同一映射提供數(shù)據(jù)存儲器、堆棧存儲器和累加器陣列的間接訪問點。該圖包含觸發(fā)MAXQ機器指令和底層操作的接入點,以及在未來MAXQ系列中簡單擴展指令集的機制。將所有資源的訪問點聚合到一個中央傳輸映射中,源到目標傳輸機會的數(shù)量非常大。集中式訪問還簡化了時鐘分配,僅對那些需要時鐘的資源。這促進了非常安靜的環(huán)境(因此MAXQ中的“Q”),這在集成模擬外設(shè)時是有利的。MAXQ架構(gòu)允許外設(shè)功能的最大模塊化和便攜性。此策略有意采用,以配合快速的產(chǎn)品開發(fā)周期和最終用戶不斷變化的外圍設(shè)備要求,從而提高靈活性和重用性。外設(shè)功能的模塊化使得在為某些市場或應(yīng)用創(chuàng)建新的MAXQ器件時,最大限度地減少了復制、添加或刪除標準MAXQ外設(shè)模塊所需的設(shè)計時間。
結(jié)論
MAXQ架構(gòu)是當今微控制器行業(yè)的真正創(chuàng)新。MAXQ利用傳輸觸發(fā)架構(gòu)實現(xiàn)高帶寬、高效率和高正交性的目標。此外,MAXQ系統(tǒng)和外設(shè)資源的模塊化組織有助于優(yōu)化編譯器,并允許模塊的可移植性,以快速創(chuàng)建新的MAXQ導數(shù)。展望未來,MAXQ架構(gòu)內(nèi)置指令集擴展機制,適用于下一代產(chǎn)品。這些令人信服的優(yōu)勢使MAXQ架構(gòu)成為現(xiàn)有和未來項目的理想解決方案,因為無論項目的選擇標準如何,它都不可避免地排名靠前。
-
微控制器
+關(guān)注
關(guān)注
48文章
7454瀏覽量
150853 -
芯片
+關(guān)注
關(guān)注
452文章
50206瀏覽量
420913 -
RISC
+關(guān)注
關(guān)注
6文章
461瀏覽量
83637
發(fā)布評論請先 登錄
相關(guān)推薦
評論