系統芯片(SOC)架構- Aviral Mittal
System on Chip Architecture-Aviral Mittal
此技術是在設計片上系統時考慮體系結構級別的因素。同樣,范圍是圍繞soc,soc將使用ARM的Cortex-M級處理器。
The first issue perhaps is Hosted Vs Hostless SoC:
第一個問題可能是托管與無主機SoC:
讓我們先了解一下什么是托管與無主機SoC
托管SoC通常是大型SoC的“伴侶”芯片。大型SoC被稱為主機SoC:托管SoC的一個例子可以是LTE智能手表的小型藍牙+顯示驅動SoC,其中LTE SoC是大型主機,而這個小型藍牙+顯示Dirver是托管SoC,即伴生SoC。小型“托管”或“伴生”SoC的功能相當依賴於大型主機SoC。通常,主機SoC將具有主應用處理器和操作系統,並且將通過芯片到芯片的鏈路(例如PCIe或SPI等)來控制小的伴生SoC,因此主機SoC在主機看來將是一種外圍設備。
無主機SoC是非常自給自足的,並且主要是電路板上的主SoC。它通常有自己的應用處理器和操作系統。例如,耳機或揚聲器的音頻+藍牙SoC。這個SoC的功能不依賴於同一塊電路板上的其他SoC,它是電路板上的主要SoC。通常微控制器soc也屬於這一類。
So why it is important to consider Hosted Vs HostLess?
那么,為什么考慮托管與無主機是很重要的呢?
對於托管SoC,設計者可以使用系統上存在的用於大型主機SoC的資源,例如,對於托管SoC,您可以使用主機SoC的NVM存儲器來存儲所有代碼,然后可以將代碼從主機SoC下載到托管SoC。這意味着托管SoC可以是沒有NVM的SoC。這意味着這個SoC的架構將會有很大的不同,因為代碼已經下載到了它的RAM中。與NVM相比,RAM的速度非常快,因此直接將代碼下載到RAM並從RAM運行可以消除對處理器高速緩存的需求。
這只是一個例子,展示了SoC的設計可能會受到托管與無主機的影響。這樣的例子不勝枚舉。
可以有一個SoC,它既可以在托管模式下工作,也可以在無主機模式下工作。然而,這些將超出本技術的范圍。
Which ARM Cortex-M processor?
在任何SoC設計中,最重要的方面可能是選擇SoC上的主應用處理器。這個應用處理器通常運行一個操作系統,但是對於非常小的應用程序,可能不需要操作系統。
如前所述,此技術的范圍將處理器類型限制為ARM Cortex-M,因此處理器選擇將是ARM Cortex-M之一。下面是一個非常簡短的選擇標准:
ARM Cortex-M0
M0是最小的處理器,最小配置約12K門:適用於低功耗應用,低性能要求。它將足以進行藍牙處理。但是,它沒有安全功能,也不支持跟蹤組件,例如ITM(Instrumentation trace Macrocell)或ETM(Embedded trace Macrocell)或MTB(Micro trace Buffer)。不要擔心這些ITM、ETM和mtb是什么,您只需要了解,沒有ITM和/或ETM和/或mtb,調試應用程序軟件代碼將變得有點困難。但是M0代碼通常比較簡單和小,因此人們首先會爭論是否需要這些組件。
總線協議:AHB Lite
門計數:12K,最小配置,這是ARM引用的數字。
Cortex-M0門計數(Nand 2等效門):約25k門。
Bus protocol: AHB-Lite
Gate Count: 12 K in Min Config, this is the ARM quoted figure.
ARM Cortex M0 Gate Count (Nand 2 equivalent gates): ~25 K Gates. This is what I obtained from synthesis by dividing reported area by design compiler by the area of 1 Nand 2 gate area of minimum strength from the tech lib.
注:此技術將始終使用Nand 2等效門計數作為面積分析和面積比較的度量。很明顯,ARM引用的門計數並不等於Nand 2門,而是門的總數。值得注意的是,如果你是在實際的Nand 2門數之后,ARM引用的M0的12K門數可能會誤導你,這是一個更好的度量。
ARM Cortex-M0+
M0+支持硬件安全。它提供一種特權和非特權操作模式,與可選的內存保護單元不同。(微處理器)。它還為增強的調試功能提供了可選的MTB(微跟蹤緩沖區)。所以,如果你擔心基本的安全性和調試代碼,但又想擁有一個非常節能的小型處理器,Cortex-M0+也許是你的正確選擇。
總線協議:AHB Lite
門數:未知
ARM Cortex-M3
與Cortex-M0或M0+相比,ARM Cortex-M3具有更多的處理能力。它默認添加MAC(multiply accumulate)指令以支持單周期乘法,這在M0、M0+中是可選的,將中斷從32增加到240,添加硬件除法單元,升級到ARMv7-M指令集體系結構,並具有ETM(嵌入式跟蹤宏單元)支持增強的跟蹤和調試功能。
顯然,它保留了特權和非特權操作模式與可選內存保護單元的區別。(微處理器)。
總線協議:AHB Lite+APB
ARM Cortex M3門數(Nand 2等效門):約105K門。
因此,選擇Cortex-M3而不是M0的價格,在面積上大約是4-4.5倍。
ARM Cortex-M4
與M3相比,ARM Cortex-M4具有更大的處理能力。它添加了“SMID”(單指令多數據)指令,與M3中的多時鍾周期執行相比,它在單時鍾周期中完成了一些指令。它適合於將DSP應用程序添加到SoC中。它提供一個單精度浮點單元作為選項。所以如果你想運行一些DSP應用程序,那么這就是你的處理器。
總線協議:AHB Lite+APB
ARM Cortex M4門數(Nand 2等效門):帶FPU的約180K門。
因此,選擇Cortex-M4而不是M3的價格,即增加數字信號處理器應用的價格,在面積上大約是2倍。
ARM Cortex-M33
ARM Cortex-M33主要用於增加硬件安全性。它增加了ARM信任區支持,中斷線增加到480,增加了可選的協處理器接口,並具有可選的FPU+DSP指令。所以這更像是一個增加了安全性的Cortex-M4。不知道為什么叫M33,我寧願叫M44。
因此,如果特權和非特權模式不符合您的安全要求,並且您必須具有ARM信任區,那么這就是您的處理器。注意,協議現在是AHB5(與AHB Lite不同)。
總線協議:AHB5+APB
ARM Cortex M33門計數(Nand 2等效門):不知道,但我會說它應該與Cortex-M4非常相似,所以讓我用FPU估計它為~200k門。
ARM Cortex-M7
ARM Cortex-M7主要用於需要更高性能的系統。它有專用的緊耦合內存接口,指令TCM(ITCM)和數據TCM(DTCM),在這里你可以放置你的關鍵代碼,這將運行得非常快。它還具有AXI接口,可以再次提高性能。您還可以獲得內置的可選指令緩存和數據緩存,這可以再次提高性能。
但是從安全角度來看,它不支持ARM信任區。
總線協議:AXI+AHB-Lite+APB。
ARM Cortex-M7門計數:未知。
ARM Cortex -M7+