本文由半導體產業縱橫(ID:ICVIEWS)編譯自pc.watch
隨著時代的流逝,8/16位MCU可能會從市場上消失。
前陣子連MCU界都在說“32位時代來了”,看來8位MCU市場真的進入了黃昏時代,它似乎正在加速。
8位MCU的定義是什么?
一個產品是MCU還是MPU(Micro Processor Unit),簡單來說就是看它是否可以在沒有外部存儲器或其他外圍電路的情況下運行,而MCU除了CPU內核本身之外,一般都是SRAM(用于程序操作/數據存儲)和閃存(大多數用于程序存儲,但有時用于數據存儲),外圍電路。它配備了時鐘,外圍I / O,甚至PMIC,只要外部提供電源,它將自行運行。MPU基本上具有外部存儲器,并將其用作程序存儲區域。
但是,有了這個定義,例如,ScratchPad區域中的SRAM呢(這很麻煩,因為有時有些東西可以在這里放置代碼),或者Xeon MAX MCU是否具有64GB HBM2e封裝并且在沒有外部DRAM的情況下運行?
另一個定義是MMU(內存管理單元)在MPU上運行,而MPU(內存保護單元)運行或(盡管現在數量不多)還有一個分類,即MCU首先沒有內存管理單元。簡而言之,它是虛擬內存是否有效。
這在目前的32位到64位全盛時期是一個相當有說服力的標準,但是在4/8/16位的情況下,MPU沒有配備MMU的情況很多,所以不是一個完美的標準。很難說事實上,有MPU和MCU都準備在同一個核心的相同外設配置中的例子。
那么,就趨勢而言,市場上不再有8/16位MPU,可以將它假設為一個擁有內存的MCU,即:它是32位MCU和MPU的混合。64位MCU仍然很少(但不是沒有),大多數是MPU。下一個問題是,8位是什么意思?
首先,8 位 CPU(或 16 位或 32 位)的定義是什么?以前說地址總線和數據總線的大小是由地址總線的大小決定的,Intel 8088是8位嗎?還有說MC68000是32位還是16位,SuperH系列是32位還是16位。
在我看來,如果所有指令可以處理的最大數據類型大小是8位,那么它就是一個8位 CPU。即使是歷史上被視為8位CPU的Z80,也有16位的Load/Store指令和算術運算指令,但也僅限于地址處理所必需的。其中,AND/OR/等邏輯運算XOR 只有 8 位。
即使是歷史上被視為8位CPU的Z80,也有16位的Load/Store指令和算術運算指令,但也僅限于地址處理所必需的。其中,AND/OR/等邏輯運算XOR 只有 8 位。
順便說一下,瑞薩電子的產品線中還有一款名為RL78的 8/16 位 MCU 。目前的產品,有的被當成8位(RL78G10/G1M/G1N:S1核心),有的被當成16位(其他:S2/S3核心)。
新的8位MCU
這就是為什么我要談論與僅執行 8 位操作的 MCU 相關的數據。說實話,8位的MCU本身還在出貨,甚至有新品出貨。
例如,上月(2023 年 2 月),中國臺灣 Holtek 半導體宣布了具有自己的 8 位 RISC 內核的“ BH66F2560 ”和“ BH67F2476 ”。不過搭載Holtek的8位MCU的產品比通用產品更接近于ASSP,所以可以說是有所不同,但在通用產品方面,去年4月Microchip推出了“AVR DD”和“ PIC16”發布了一款新產品。所以,在產品層面,還是有小幅上漲的,很多之前公布的產品還在出貨中,不代表產品馬上就會從市場上消失。
BH67F2476框圖
不過,8位CPU內核本身也有一段時間沒有新出來了。如果不是一定要商用的話,去年8月推出的Open Source Silicon Initiative就有類似“NoobsASIC ”之類的東西,但是沒有什么可以商用的。
Silicon Labs在2015年宣布了一個名為“EFM8”的8位MCU系列,但實際上核心本身是一個8051兼容的核心,其流水線結構稱為CIP-51。
據我所知,最新的新核心是波蘭的DCD(數字核心設計)于2014年發布的PIC16兼容“ DRPIC1655X ”和MC68HC11K兼容“ D68HC11K ”,以紀念他們的15周年,以及8051-兼容“ DT8051 ”。
雖然兩者都是IP形式,指令集兼容PIC16/MC68HC11/8051,但內部流水線結構獨特,據說DRPIC1655X等0.35μm工藝可以運行800MHz。
順便說一句,在8051核心方面,2012年2月(當時是IXYS公司的子公司)Zilog突然公布了一款名為“Z8051 ”的核心。該公告的新聞稿稱,“Zilog 供應 Z80/Z8/Z16 等內核已超過 35 年,但 8051 內核的歷史也一樣長。因此 Zilog 宣布推出 Z8051。這是一件很自然的事情去做。”我猜我拿到了核心IP。順便說一句,這款 Z8051 已經完全停產。
看產品規格,主要的指令可以在1~2個周期左右處理,所以屬于高速范疇。
Zilog 也有來自前三星半導體的 4/8 位 MCU 產品線,但這是母公司IXYSCorporation 在 2013 年收購三星的整個 4/8 位 MCU 業務是被迫的。尤其是S3家族是Z80兼容核心,現在感覺來不及了。
順便說一句,CAST在2015年2月的Embedded World上發布了“S8051XC80251”,這是一款與s3兼容的超高速IP核,但這是一款與8051二進制兼容的16位80251兼容CPU,所以我覺得它有點超出這個框架。
8位 MCU出不來的原因
言歸正傳,8位MCU產品還在發布,但架構上,2010年代上半年就已經完成改造,此后出新架構的可能性極低。事實上,只要一兩個人愿意,就可以構建一個架構。Atmel的“AVR8”內核,廣泛應用于Arduino Uno(及其前身Arduino Duemilanove、Arduino Diecimila等),最初稱為μRISC,由挪威理工學院的Alf-Egil Bogen和Vegard Wollan開發。它被發展成為他的兩篇畢業論文的主題。把這個帶到Atmel的結果是因為“Alf and Vegard's RISC”而被命名為AVR。
AVR8 核心框圖(來自收購 Atmel 的 Microchip 發布的數據表)
然而,雖然創建一個處理器很容易,但創建一個編寫在其上運行的程序的環境需要付出巨大的努力和人力。僅僅準備一個匯編器和一個鏈接器是不夠的,如果你試圖準備所有的東西,比如C或者諸如移植、調試環境、集成開發環境、庫、中間件、OS等等,那將花費很多(沒有依據)這是一個粗略的估計,但我認為 10 倍以上的 CPU 內核開發不會奏效)。即使我們花那個成本把新架構推向世界,它的銷量是否足以收回成本?答案肯定是否定的。
另一個是MCU造成的限制。即使你說,“好吧,讓我們使用 8051 架構并添加超標量和亂序來創建一個運行在幾個 GHz 的內核”,現有的 8051 應用程序假定一個有序/單發流水線結構,原本超標量處理的余地不大,即使亂序也很難期待性能的提升,而且無法準確計算到處理完成的處理周期。
首先,在 MCU 的情況下,將程序代碼放在 NOR 閃存中是很常見的,即使以 800 MHz 驅動的 Cortex-M7 內核也跟不上從閃存中讀取的速度,所以如果不使用cache在一起,就會出現Wait。Cortex-M7和Cortex-R52做dual issues沒有意義,但是dual issues對于8位MCU是完全沒用的。
此外,由于使用了NOR flash,因此很難使用高級工藝。三星在2019年宣布與Arm合作,在28nm FD-SOI上采用MRAM和MCU核心的Musca-A1,但尚未量產。從這個意義上說,無論你怎么努力,臺積電的Around N16都是極限小型化。至于工作頻率,運行在N16上的NOR flash的工作速度成為限速階段,實際工作頻率的上限在幾百MHz量級。那樣的話,現有的8051 IP就足夠了。
市場需求與實施成本的困境
然而,市場需求正朝著更高性能和更高功能的方向發展。在過去,MCU只是用于設備內部的封閉控制,基本不需要考慮與外界的通信。然而,最近連接的設備數量開始迅速增加,但使用 USART 的串行通信顯然是不夠的,而且在很多情況下某種網絡是必需的。
或者MCU本身對安全的需求越來越大,更不用說Secure Enclave、固件保護功能、安全密鑰存儲和TRNG(真隨機數生成器)進行加密通信了,至少需要一個PRNG(偽隨機數生成器)。
對于做一些更復雜的事情的設備,為了以防萬一,對 OTA 固件更新功能的需求越來越大。這是因為即使在產品發布后發現漏洞,也必須在沒有 OTA 更新的情況下進行物理收集或替換。
各種功能這樣增加,代碼量自然會增加,另外為了支持更新,flash容量也會增加。為了承載網絡棧,對SRAM的容量也有相應的要求。因此,CPU 核心與 MCU 芯片尺寸的比例變得相當小。
以 DCD 的“DRPIC1655X”為例,MCU 所需的電路規模約為 4800 個門。另一方面,Arm 的“Cortex-M0”有大約 12000 到 25000 個門(取決于電路配置)。中國臺灣晶心科技的“N22”內核(RV32)也可以實現約15800個門。也就是說,只要在8位內核上增加10000個門左右,就可以變成32位內核。此外,嘗試僅使用 8 位算術來執行這些功能是非常低效的。發生這種情況時,8 位 MCU 變得低效。
當初為什么8位MCU應用如此廣泛呢?優點是電路規模小,所以即使滿負荷工作也能保持低功耗。但是近年由于需要的內存容量增加,所以電路規模并沒有太大變化,可以說是8位或32位,節省成本的優點也沒有以前那么顯著了。
當網絡和安全等所有處理都由公司負責時,內核的滿負荷驅動時間比32位MCU更長,因此,省電的優勢很小(或者更糟糕的是,8位消耗更多的功率)。目前,市場上新的8位MCU僅限于與這些限制沒有太大關系的產品。
比如開頭提到的Holtek的BH66F25609(脈搏血氧儀MCU)只有1KB SRAM/32KB閃存/EEPROM 1KB的數據,當然也不支持網絡。它之所以有效,是因為它沒有安全功能,并且適用于真正低成本的脈搏血氧儀。
順便說一句,除了8位之外,16位 MCU的情況幾乎一樣。本來16位的MCU是介于8位和32位之間的中間產品,但是隨著32位低端替代8位的快速增長,不僅8位連16位都失去了位置。盡管如此,Renesas Electronics 的 RL78 系列和 TI 的 MSP430 等供應商正在盡力而為,但 Microchip 的 PIC24 系列非常艱難。
MCU遷移到32位的速度比預期的要快
這就是 8 位(和 16 位)MCU 市場緩慢萎縮的原因,越來越多的人傾向于在新設計中使用 32 位而不是 8/16 位。
嵌入式行業的特點是“漸強”??傊绻庐a品所需要的功能是全新的,不能通過擴展現有設計來實現,如果可以通過對現有設計進行返工來完成,那么最好遵循設計并可靠地開發它。
至于可靠性,如果我們能在一定程度上掌握現有產品的特殊性和故障率,當然,即使最后做適當的驗證,使用現有產品的衍生模型更可靠。所以筆者認為,距離8/16位MCU不再用于新產品的那一天還有10到20年的時間。
由于新冠疫情導致半導體短缺,這種前景被打破了。簡而言之,8位 MCU 已經沒有了。就Sourcengine去年11月發布的Q4 2022 Lead Time Report來看,8/16位 MCU的采購暫時需要相當長的lead time,解決這個問題的可能性不大。換句話說,只要你使用的是8/16位的MCU,產品制造就需要這么多的交貨時間。簡而言之,產品無法發貨。在這種情況下,別無選擇,只能使用任何可用的東西進行制造,即使它是分銷庫存。
報告的嵌入式處理頁面,8/16位價格有進一步上漲趨勢
在這種情況下,8/16位 MCU就很吃虧了。由于內存量本來就很小,所以代碼是以針對每個體系結構優化的形式編寫的。將這樣的軟件移植到其他MCU上是非常困難的,或者更確切地說,它比移植更接近于新開發。而且,你現在能拿到的MCU,以后不一定都能拿到。
最近Arm和RISC-V MCU的快速崛起,是因為多家廠商發布了基于相同架構的產品,所以廠商之間切換(外圍電路,內存映射等)相對容易,即使改變了, CPU 內核的架構很常見。為了吸收外圍電路、內存映射等硬件的差異,最簡單的方法是在兩者之間用HAL(Hardware Abstraction Layer)進行抽象。為此,RVM-CSI提供了 8/16 位中不存在此類措施。
因此,由現有 8/16 位 MCU 擴展支持的新產品開發正迅速轉向 32 位 MCU。于是,原以為要提前10年到20年的“8/16位MCU不再用于新產品的那一天”,似乎比預想的要早很多。
Arduino 項目當然提供基于 8 位 AVR 的套件,例如現有的 Arduino Uno,但最近該項目專注于配備 32 位 SAMD21 的 MKR 系列。從 8 位到 32 位的轉變逐漸變得明顯。
隨著時代的流逝,本以為8/16位終究會從市場上消失,沒想到這種趨勢竟然加速到現在。
審核編輯:湯梓紅
評論
查看更多