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