本文介紹了達(dá)拉斯半導(dǎo)體如何改進(jìn)傳統(tǒng)的8051微控制器,創(chuàng)建可執(zhí)行高達(dá)33MIP的高性能直接替代品。多個數(shù)據(jù)指針、擴(kuò)展內(nèi)存尋址(高達(dá) 16MB)和閃存等附加功能提高了設(shè)備的速度和實(shí)用性。
系統(tǒng)設(shè)計(jì)人員知道,微控制器是任何嵌入式系統(tǒng)的核心,而這正是行動發(fā)生的地方。ADI公司的全資子公司達(dá)拉斯半導(dǎo)體一直在重新定義無處不在的8051微控制器。也許過去10年中最大的改進(jìn)是在指令執(zhí)行速度方面。我們的 1 個機(jī)器周期時(shí)鐘處理器達(dá)到了一個非凡的性能目標(biāo) — 每個機(jī)器周期 1 個時(shí)鐘,目前為每秒 33 萬條指令 (MIPS)。利用這一內(nèi)核,我們的安全、聯(lián)網(wǎng)和混合信號 8051 微控制器系列繼續(xù)為功能集成和創(chuàng)新設(shè)定標(biāo)準(zhǔn)。
為什么基于古老的 8051 指令集構(gòu)建一系列創(chuàng)新微控制器?因?yàn)椋芎唵危鞘澜缟献钍軞g迎的8位微控制器架構(gòu)之一。該指令集易于理解,使其成為嵌入式系統(tǒng)設(shè)計(jì)人員的最愛。許多指令直接針對I/O引腳,允許快速操作(位敲擊)外部外設(shè)。片上外設(shè)種類繁多,組合數(shù)量幾乎不受限制。此外,8051微控制器系列的開發(fā)工具廣泛可用,因此開始開發(fā)應(yīng)用既簡單又便宜。
安全可靠
1987年,達(dá)拉斯半導(dǎo)體/模擬公司推出了DS5000T,這是一款基于8051指令和功能集的獨(dú)立開發(fā)的微控制器。為了提供新的功能和優(yōu)勢,我們的工程師基于NV SRAM技術(shù)而不是EPROM進(jìn)行設(shè)計(jì)。憑借其在低功耗技術(shù)方面的領(lǐng)先地位,存儲器分區(qū)和電池備份電路直接集成到微控制器芯片上。該系統(tǒng)的主要優(yōu)點(diǎn)是速度。寫入大多數(shù)非易失性存儲器的速度很慢,但NV SRAM可以在單個周期內(nèi)高速讀取或?qū)懭搿_@使其成為必須實(shí)時(shí)捕獲數(shù)據(jù)的高速、非易失性數(shù)據(jù)記錄應(yīng)用的理想選擇。當(dāng)與外部SRAM和電池結(jié)合使用時(shí),結(jié)果是一個完整的微控制器系統(tǒng),具有高達(dá)64kB的非易失性程序和數(shù)據(jù)存儲器。
NV SRAM技術(shù)使數(shù)據(jù)和程序存儲器能夠在系統(tǒng)內(nèi)逐字節(jié)動態(tài)重新編程。在標(biāo)準(zhǔn)微控制器系統(tǒng)中,程序存儲器需要從系統(tǒng)中物理移除(EPROM)或塊擦除,從而禁止在擦除(閃存)期間訪問存儲器。基于NV SRAM的微控制器可以通過其串行端口從PC或設(shè)備編程器快速輕松地進(jìn)行編程。駐留在ROM中的自舉加載程序?qū)⒊绦蚝蛿?shù)據(jù)直接下載到微控制器,從而實(shí)現(xiàn)快速調(diào)試或現(xiàn)場升級。
NV SRAM的獨(dú)特優(yōu)勢為固件安全提供了新的視角。由于引導(dǎo)加載程序完全控制程序加載到 NV SRAM 中,因此我們使用 40 位或 80 位加密密鑰對地址和數(shù)據(jù)總線進(jìn)行了加密。加載到微控制器中的任何程序或數(shù)據(jù)在存儲在SRAM中之前都會自動加密。這種加密可以阻止黑客竊取微控制器中的程序或數(shù)據(jù)。在執(zhí)行指令期間,微控制器獲取加密的操作碼,在單個機(jī)器周期內(nèi)解密并執(zhí)行它。使用NV SRAM允許全速讀/寫訪問,指令解碼沒有延遲。
這些安全特性最終形成了DS5250,這是一款用于全球金融終端和支付系統(tǒng)的安全8051微控制器。這些防篡改響應(yīng)微控制器集成了每機(jī)器周期 4 個時(shí)鐘的 8051 內(nèi)核,并對其程序存儲器進(jìn)行了增強(qiáng)的三重 DES 加密。通過添加入侵檢測輸入和片上篡改傳感器,可自動擦除存儲器作為篡改響應(yīng),進(jìn)一步增強(qiáng)了安全性。一體式微探頭屏蔽層可防止芯片篡改。同樣,NV SRAM最適合高安全性應(yīng)用。其高速寫入時(shí)序允許微處理器比任何其他類型的存儲器更快地擦除機(jī)密或敏感數(shù)據(jù)。
DS5250是唯一能夠提供最高安全性同時(shí)全速執(zhí)行每條指令的微控制器。
更快的速度,更低的功率
盡管 8051 處理內(nèi)核從 1970 年代后期到 1980 年代的概念一直保持靜止,但嵌入式系統(tǒng)卻沒有。系統(tǒng)設(shè)計(jì)人員通過添加新的軟件功能和外設(shè),繼續(xù)改進(jìn)和升級其基于 8051 的應(yīng)用程序。這種“功能蠕變”突破了可用 8051 性能的極限。不幸的是,8051內(nèi)核的改進(jìn)未能跟上步伐,系統(tǒng)設(shè)計(jì)人員似乎不得不切換到另一個處理器并執(zhí)行昂貴的重新設(shè)計(jì)來升級他們的系統(tǒng)。
性能瓶頸是 1970 年代 8051 微控制器的老式處理內(nèi)核。盡管外部晶體速度接近40MHz,但傳統(tǒng)的8051仍然需要12個時(shí)鐘來執(zhí)行單個機(jī)器周期。每條指令需要 1 到 4 個機(jī)器周期,這意味著一條指令可能需要少至 12 個或多達(dá) 48 個振蕩器時(shí)鐘。因此,吞吐量被限制在略高于 3 MIPS,即使在執(zhí)行一串 1 周期 NOP 指令這樣基本的東西時(shí)也是如此(圖 1)。
圖1.減少每個機(jī)器周期的時(shí)鐘數(shù)量可以在相同的指令集下實(shí)現(xiàn) 3 倍的性能(每個機(jī)器周期 12 對 4 對 1 個時(shí)鐘)。
1991 年,我們著手重新設(shè)計(jì) 8051 微控制器以提高性能。工程團(tuán)隊(duì)首先分析了傳統(tǒng)的 8051 設(shè)計(jì)。最初的每臺機(jī)器周期 12 個時(shí)鐘架構(gòu)非常浪費(fèi);大多數(shù)指令被迫執(zhí)行虛擬循環(huán)。工程師從頭開始重建 CPU,使其每個機(jī)器周期只需要 4 個時(shí)鐘,而不是 12 個。第二條內(nèi)部數(shù)據(jù)總線消除了可能影響性能的架構(gòu)瓶頸。高功率 I/O 驅(qū)動器提高了外部存儲器操作期間的開關(guān)速度。所有內(nèi)部外圍設(shè)備(如定時(shí)器和串行端口)都以更快的時(shí)鐘速度運(yùn)行。但每一步都有一個絕對必要性——指令集必須與 8051 指令集保持操作碼兼容。
結(jié)果呢?基于 8051 的新型微控制器的效率是原始 8051 內(nèi)核的三倍,在相同的振蕩器頻率下,大多數(shù)指令的運(yùn)行速度提高了三倍。除了內(nèi)核效率的提高外,大多數(shù)器件的最大外部振蕩器頻率增加到33MHz或40MHz。系統(tǒng)設(shè)計(jì)人員以前受到較舊、速度慢得多的 8051 的阻礙,無需更改軟件即可將系統(tǒng)升級到 10 MIPS 的最高速度。
除了速度改進(jìn)之外,內(nèi)核重新設(shè)計(jì)還帶來了另一個好處:降低功耗。物理定律規(guī)定,數(shù)字電路消耗的功率與開關(guān)晶體管的數(shù)量和開關(guān)速率(頻率)成正比。由于新內(nèi)核每個機(jī)器周期使用的振蕩器時(shí)鐘更少,因此與傳統(tǒng)的 8051 相比,它每秒每條指令消耗的功率要少得多。
電源管理模式通過使用軟件可配置的內(nèi)部時(shí)鐘分頻器暫時(shí)降低了微控制器的功耗。通過將機(jī)器循環(huán)速率從每個機(jī)器循環(huán) 4 個時(shí)鐘降低到每個機(jī)器周期 64 或 256 個時(shí)鐘,進(jìn)一步降低了功耗。回切功能允許器件在收到外部中斷或檢測到串行端口起始位時(shí)返回到4分頻模式。這使得器件能夠保持低功耗狀態(tài),但在需要時(shí)可以快速恢復(fù)全速運(yùn)行。圖2顯示了不同模式下的相對功耗。
圖2.在活動減少期間,我們的電源管理模式消耗的電流比空閑模式少,但仍允許 CPU 運(yùn)行。
33 MIPS 及以上
1997年,達(dá)拉斯半導(dǎo)體/模擬公司開始設(shè)計(jì)終極性能的內(nèi)核。基于 8051 的應(yīng)用程序不斷發(fā)展,客戶要求更高的性能。工程團(tuán)隊(duì)將目光投向了性能峰值:一個執(zhí)行 8051 指令集但每臺機(jī)器周期僅使用 1 個時(shí)鐘的微控制器。使用高度并行的架構(gòu)和新的制造工藝,設(shè)計(jì)了一種引腳對引腳的直接替代品 8051。
其結(jié)果是新型DS89C430/DS89C450,超高性能每機(jī)器周期1時(shí)鐘微控制器,能夠執(zhí)行高達(dá)33 MIPS(圖3)。這些器件打破了以前的性能障礙,以 16 位價(jià)格提供 8 位微控制器性能。各種總線尋址模式允許用戶根據(jù)特定應(yīng)用設(shè)計(jì)的需要微調(diào)處理器操作。但最重要的是,它們?nèi)匀慌c 100 指令集 8051% 兼容,并且仍然比任何其他基于 8051 的微控制器更快地執(zhí)行現(xiàn)有的 8051 應(yīng)用。
圖3.DS89C430的時(shí)鐘頻率為33 MIPS,超越了競爭對手。
除了閃電般的內(nèi)核外,DS89C430/DS89C450還集成了高達(dá)64kB的系統(tǒng)內(nèi)可編程閃存。基于ROM的自舉加載器允許在最終組裝之前、期間或之后修改微控制器代碼,從而提供最大的靈活性。與其他使用專有或非標(biāo)準(zhǔn)接口的微控制器不同,DS89C430自舉加載程序可通過其串行端口從標(biāo)準(zhǔn)PC訪問,使用任何終端仿真器軟件。
快速執(zhí)行時(shí)間乞求更大的程序規(guī)模
如果程序員沒有足夠的內(nèi)存地址空間來存儲他們的表達(dá)式,那么速度的優(yōu)勢就會喪失。傳統(tǒng)的8051使用16位內(nèi)存總線,將內(nèi)存范圍限制為64kB。對于某些應(yīng)用程序,這種有限的內(nèi)存范圍就足夠了。但隨著應(yīng)用程序代碼大小和復(fù)雜性的增加,我們意識到應(yīng)用程序需要一種盡可能保持 8051 兼容性的解決方案。
一些設(shè)計(jì)人員發(fā)現(xiàn),通過使用組交換技術(shù)可以擴(kuò)展尋址范圍。I/O 線兼作地址線,以犧牲外設(shè) I/O 為代價(jià)擴(kuò)展內(nèi)存。但這有兩個主要缺點(diǎn)。首先,必須將代碼分割成 64kB 或更小的塊,這是一項(xiàng)耗時(shí)的任務(wù),每次修改代碼時(shí)都必須重做。其次,必須編寫軟件例程,以便在每次代碼在段之間轉(zhuǎn)換時(shí)手動將 I/O 行切換到適當(dāng)?shù)臓顟B(tài)。與這些工作相關(guān)的軟件開銷會降低性能。
更好的解決方案是實(shí)現(xiàn)具有更大地址總線的設(shè)備,該總線可尋址更多內(nèi)存。DS80C400具有24位地址總線,可直接尋址16MB程序存儲器和16MB數(shù)據(jù)存儲器。這不需要在 8051 指令集中使用任何新的操作碼即可完成。提供兩種模式。第一種是分頁尋址模式,它結(jié)合了先進(jìn)的自動庫切換,大大加快了擴(kuò)展內(nèi)存訪問的速度,同時(shí)保持與傳統(tǒng) 8051 編譯器的二進(jìn)制兼容。第二種連續(xù)模式允許對整個 16MB 內(nèi)存映射進(jìn)行透明尋址,并且需要一個編譯器來提供 24 位地址所需的額外操作數(shù)。更大的地址空間允許更快地訪問更大的程序,開辟了新的可能性,如大型數(shù)學(xué)函數(shù)庫、查找表,甚至Java?虛擬機(jī),由網(wǎng)絡(luò)微控制器支持,包括執(zhí)行模擬微型網(wǎng)絡(luò)接口(MxTNI?)運(yùn)行時(shí)環(huán)境的DS80C390和DS80C400。
每一步都有一個絕對必要性——指令集必須與 8051 指令集保持操作碼兼容。
數(shù)據(jù)指針性能翻倍
有必要對芯片的各個方面進(jìn)行深遠(yuǎn)的改進(jìn),以避免產(chǎn)生性能瓶頸。最重要的改進(jìn)涉及訪問MOVX數(shù)據(jù)存儲器。在原始8051上操縱數(shù)據(jù)存儲器是一件繁瑣的事情。在讀取或?qū)懭肽繕?biāo)地址之前,訪問MOVX存儲器的單個字節(jié)需要多個周期來加載單個16位數(shù)據(jù)指針。
DS89C430保持100%8051指令集兼容性,因此它執(zhí)行現(xiàn)有8051應(yīng)用的速度仍然比任何其他基于8051的微控制器快。
如果軟件需要執(zhí)行塊復(fù)制操作,則效率低下會成倍增加,這涉及將數(shù)據(jù)從一個MOVX內(nèi)存位置移動到另一個MOVX內(nèi)存位置。單個數(shù)據(jù)指針限制迫使它在塊復(fù)制操作中兼作源地址和目標(biāo)地址。傳統(tǒng) 8051 微控制器上的操作是一個復(fù)雜的多步驟過程:
將源地址加載到數(shù)據(jù)指針中。
遞增或修改指向下一個基準(zhǔn)的數(shù)據(jù)指針。
將數(shù)據(jù)從MOVX存儲器獲取到累加器中。
將修改后的源地址保存到存儲寄存器。
將目標(biāo)地址加載到數(shù)據(jù)指針中。
遞增或修改指向下一個基準(zhǔn)的數(shù)據(jù)指針。
將數(shù)據(jù)從累加器寫入 MOVX 內(nèi)存。
將修改后的目標(biāo)地址保存到存儲寄存器。
較大的地址空間允許更快地訪問更大的程序,例如網(wǎng)絡(luò)微控制器支持的 Java 虛擬機(jī)。
人們很快注意到,上述過程中幾乎一半的步驟專門用于在單個數(shù)據(jù)指針中處理源地址和目標(biāo)地址,這會影響整體性能。該解決方案添加了第二個數(shù)據(jù)指針,為源和目標(biāo)創(chuàng)建專用寄存器。使用第二個數(shù)據(jù)指針,大部分?jǐn)?shù)據(jù)操作可以在硬件中處理,從而減少軟件開銷。雙數(shù)據(jù)指針可單獨(dú)尋址,專用數(shù)據(jù)指針選擇位指示MOVX指令期間哪個數(shù)據(jù)指針是活動數(shù)據(jù)指針。使用雙數(shù)據(jù)指針執(zhí)行相同的塊復(fù)制操作所需的步驟要少得多。
僅執(zhí)行一次初始化:
將源地址初始化為第一個數(shù)據(jù)指針。
將目標(biāo)地址初始化為第二個數(shù)據(jù)指針。
主循環(huán):
將數(shù)據(jù)提取到累加器中。
遞增或修改指向下一個源基準(zhǔn)的第一個數(shù)據(jù)指針。
將數(shù)據(jù)指針選擇器切換到第二個數(shù)據(jù)指針。
將數(shù)據(jù)從累加器寫入 MOVX 內(nèi)存。
遞增或修改指向下一個基準(zhǔn)的數(shù)據(jù)指針。
圖4所示為1000MHz DS33C89上的430字節(jié)塊復(fù)制例程,當(dāng)雙數(shù)據(jù)指針消除了處理單個數(shù)據(jù)指針的相關(guān)開銷時(shí),執(zhí)行時(shí)間減少了33%。高速和超高速微控制器系列的一些成員還具有額外的可選數(shù)據(jù)指針增強(qiáng)功能。自動遞增/遞減功能(在圖4中表示為AID)根據(jù)MOVX相關(guān)指令自動遞增或遞減數(shù)據(jù)指針,無需INC DPTR指令。自動切換功能(在圖4中表示為TSL)在MOVX相關(guān)指令之后自動切換活動數(shù)據(jù)指針,消除了在數(shù)據(jù)指針之間切換的指令。圖 4 顯示了將所有這些功能一起考慮時(shí)的相對執(zhí)行時(shí)間。請注意,啟用所有功能后,DS89C430執(zhí)行1000字節(jié)塊復(fù)制程序的速度比原來的103微處理器快8051%。
圖4.雙數(shù)據(jù)指針增強(qiáng)功能可提高塊復(fù)制操作的速度。
展望未來
隨著應(yīng)用對速度的要求越來越高,模擬越來越努力地超越以前的性能設(shè)計(jì)。無論是更快的堆棧訪問、擴(kuò)展尋址,還是原始處理速度,我們的微控制器設(shè)計(jì)都能繼續(xù)滿足嵌入式系統(tǒng)設(shè)計(jì)人員的需求。
但有競爭力的設(shè)計(jì)需要的不僅僅是速度。更復(fù)雜的應(yīng)用需要更大的程序,因此我們正在擴(kuò)展我們的嵌入式 8051 微控制器產(chǎn)品線,以包括 64kB 閃存。我們的新產(chǎn)品管線在設(shè)計(jì)上具有外設(shè),以提高其嵌入式系統(tǒng)的功能,同時(shí)減少電路板空間。聯(lián)網(wǎng)微控制器具有先進(jìn)的功能,包括CAN、以太網(wǎng)和用于多層網(wǎng)絡(luò)的1-Wire?網(wǎng)絡(luò)連接。安全微控制器具有用于公鑰加密的基于硬件的數(shù)學(xué)加速器,并支持密鑰的快速歸零作為篡改響應(yīng)。混合信號微控制器執(zhí)行實(shí)際信號處理,以制造更好的終端設(shè)備。
我們對微控制器性能的承諾不僅限于 8051 內(nèi)核。我們新的MAXQ? 16位RISC微控制器系列實(shí)現(xiàn)了高性能功率比。實(shí)現(xiàn)此目的的基本方法是通過單周期指令執(zhí)行。單周期指令執(zhí)行通過增加指令帶寬從而提高性能和/或通過降低時(shí)鐘頻率的能力降低功耗,使最終用戶受益。所有MAXQ指令在單個時(shí)鐘周期內(nèi)執(zhí)行,但跳遠(yuǎn)/長調(diào)用和某些擴(kuò)展寄存器訪問除外。雖然許多RISC微控制器聲稱支持單周期執(zhí)行,但這通常適用于一小部分指令或?qū)ぶ纺J健J褂肕AXQ,單周期執(zhí)行是常態(tài)。
此外,MAXQ架構(gòu)不需要指令流水線(許多RISC微控制器通用)來實(shí)現(xiàn)單周期工作,因此提高了時(shí)鐘周期利用率。MAXQ指令解碼和執(zhí)行硬件非常簡單(時(shí)序也非常快),這些操作與程序獲取本身進(jìn)入相同的時(shí)鐘周期,對最大工作頻率的影響最小。為了說明消除指令流水線的好處,請考慮從流水線執(zhí)行的通用RISC CPU。當(dāng)程序分支發(fā)生時(shí),CPU 使用一個或多個時(shí)鐘周期(取決于管道深度)將程序提取轉(zhuǎn)移到目標(biāo)分支地址,并丟棄已獲取的指令。顯然,使用時(shí)鐘周期丟棄指令而不是執(zhí)行指令是浪費(fèi)和不可取的,因?yàn)樗鼤档托阅懿⒃黾庸摹km然該操作對用戶來說是不希望的,但 CPU 為重新加載管道而竊取的時(shí)鐘是體系結(jié)構(gòu)的產(chǎn)物,并且是不可避免的。MAXQ架構(gòu)區(qū)別于其他8位和16位RISC微控制器,提供單周期執(zhí)行,無需指令流水線(以及隨之而來的浪費(fèi)時(shí)鐘周期)。
審核編輯:郭婷
-
微控制器
+關(guān)注
關(guān)注
48文章
7491瀏覽量
151074 -
嵌入式
+關(guān)注
關(guān)注
5069文章
19023瀏覽量
303430 -
cpu
+關(guān)注
關(guān)注
68文章
10827瀏覽量
211171
發(fā)布評論請先 登錄
相關(guān)推薦
評論