ARM CortexM 是 ARM 架構處理器核心中，低階系列的統稱，由安謀控股所授權。這組核心的特點為低成本以及高能源效率的微處理器而最佳化設計，已有上千萬個消費性裝置中有此係列的微處理器。此係列核心包括 CortexM0、CortexM0、CortexM1、CortexM3、CortexM4、CortexM7、CortexM23、CortexM33、CortexM35P 和 CortexM55。其中 CortexM4 M7 M33 M35P M55 核心有浮點運算器的選項，若有浮點運算器的選項，會在型號後面說明，例如 CortexMx with FPU 或 CortexMxF，其中 x 是核心編號。 簡介 32bit 32bit 年份 核心 2004 年 CortexM3 2007 年 CortexM1 2009 年 CortexM0 2010 年 CortexM4 2012 年 CortexM0 2014 年 CortexM7 2016 年 CortexM23 2016 年 CortexM33 2018 年 CortexM35P 2020 年 CortexM55 ARM CortexM 系列是為了微控制器、特殊應用積體電路（ASIC）、應用專門標準產品（ASSP）、現場可程式設計邏輯閘陣列（FPGA）及單片系統（SoC）設計的 ARM 微處理器核心。CortexM 核心常用在 專用微控制器晶片中，但也會藏在 SoC 晶片中，例如電源管理制器、輸入／輸出控制器、系統控制器、觸碰螢幕控制器、智慧電池控制器以及感測器控制器。 以往 8 位元的微控制器相當流行，但低階的 CortexM 晶片已經降價，佔據了一些 8 位元微控制器的市場。在取代 8 位元微控制器時，CortexM 是常出現的選項，因為有 32 位元數學運算上的優勢，也會用來替換一些較舊的 ARM 核心 ，例如 ARM7 及 ARM9。 授權 安謀控股不會以其自身的技術生產 CPU 或販售 CPU，而是其將處理器的架構授權給其他有意願開發的公司。安謀有許多不同的授權條款，差異在成本以及可交付成果。對於所有的授權，安謀都會提出一份可整合的 ARM 核心硬體描述，也包括完整的軟體開發工具組，以及販售包括 ARM CPU 在內的積體電路的權利。 矽定製 整合元件製造廠（IDM）收到的 ARM 處理器智慧財產權，是可邏輯綜合的暫存器傳輸級（用 Verilog 所寫）。以此型式，整合元件製造商可以進行架構層級的最佳化以及延伸，可以讓製造商達成其客戶的設計目的，例如高時脈速度、非常低的能耗、指令集延伸（包括浮點數）、針對大小的最佳化、除錯器的支援等。若要確認特定的 ARM CPU 晶片中已有那些功能，則需確認製造商的資料表以及相關檔案。 CortexM 核心的部份選配機能如下： SysTick 計時器：24 位元的系統計時器，延伸了處理器以及巢狀向量中斷控制器（Nested Vectored Interrupt Controller、NVIC）的機能。若有此計時器，也可以提供額外的 SysTick 中斷，可以配置其優先權。雖然 SysTick 計時器不是必備的，不過幾乎沒有不支援 SysTick 的 CortexM 微處理器。若 CortexM33 控制器有安全擴充套件（Security Extension）選項，會有二個 SysTicks，一個是安全的，另一個是一般的。 位元帶（BitBand）：位元帶區域內記憶體中的每一個位元，可以個別對映到一個字元組。例如，寫入特定的假名字元組，就代表設定或是清除位元帶區域內特定的位元。因此位元帶區域內的每一個位元都可以透過字元組對齊的位址來直接讀寫。而且，每一個位元都可以用 CC 進行設定、清除、反相等功能，不需要透過一連串畗讀取 修改 寫入的指令順序。位元帶也不是 CortexM 一定會有的功能，不過不支援位元帶的 CortexM3 或 CortexM4 微處理器較不常見。有些 CortexM0 及 CortexM0 微處理器也會有位元帶。 （MPU）：透過強制的許可權以及存取規則，可以保護特定區域的記憶體。最多可以支援八個不同的記憶體區域，每個還可以分成八個等大小的子區域。 緊密耦合記憶體（TightlyCoupled Memory、TCM）：是低延遲的 RAM，可以儲存關鍵性的程式、資料及堆疊。緊密耦合記憶體一般會是微處理器中最快的 RAM，僅次於快取記憶體。 ARM CortexM 選配元件 ARM Core CortexM0 CortexM0 CortexM1 CortexM3 CortexM4 CortexM7 CortexM23 CortexM33 CortexM35P SysTick 24 位元 選配 01 選配 01 選配 01 選配 012 單週期 IO 埠 選配 選配 位元帶記憶體 選配 選配 選配 記憶體保護單元（MPU） 選配 08 選配 08 選配 08 選配 0816 選配 0481216 選配 0481216 選配 安全屬性單元（SAU）及堆疊限制 選配 048 選配 048 選配 指令 TCM 選配 選配 資料 TCM 選配 選配 指令快取 選配 選配 資料快取 選配 位移暫存器（VTOR） 選配 01 選配 01 選配 01 選配 01 選配 01 選配 012 註：大部份 CortexM3 及 M4 的微處理器有位元帶及記憶體保護單元。M0M0 可以用 CortexM 系統開發工具加入位元帶選項 註：軟體在試圖使用特定機能時，需要先確認該機能是否有效 註：CortexM35P 的公開資料不多，一直到其技術參考手冊發行後才有改善。 額外的矽智財選項： 位元組序：小端序（Littleendian）或大端序（bigendian）。CortexM 和其他早期的 ARM 核心不同，在製作晶片時就要選用小端序或大端序。 中斷：1 至 32 個（M0M0M1）、1 至 240 個（M3M4M7M23）、1 至 480 個（M33M35P） 喚醒中斷控制器：選配 向量表位移暫存器：選配（M0 沒有此選項） 指令存取寬度：只有 16 位元，或幾乎是 32 位元 支援使用者／特取模式：選配 重置所有的暫存器：選配 單一週期的 IO 埠：選配（M0M23） 除錯存取埠（DAP）：無、SWD、JTAG 及 SWD（所有 CortexM 核心都有此選項） 支援 Halting 除錯：選配 監視點比較器數量：0 至 2 個（M0M0M1），0 至 4 個（M3M4M7M23M33M35P） 中斷點比較器數量：0 至 4 個 M0M0M1M23，0 至 8 個（M3M4M7M33M35P） 指令集 CortexM0 M0 M1 實現的是 ARMv6M 架構，CortexM3 實現的是 ARMv7M 架構，CortexM4 CortexM7 實現的是 ARMv7EM 架構。CortexM23 M33 M35P 實現的是 ARMv8M 架構，CortexM55 實現的是 ARMv81M 架構。這些架構是二進位制的指令碼，可以和 ARMv6M、 ARMv7M、ARMv7EM 向上相容。CortexM0 CortexM0 CortexM1 的指令碼不用修改就可以在 CortexM3 CortexM4 CortexM7 上執行。CortexM3 上可以執行的二進製程式碼不需修改就可以在 CortexM4 CortexM7 CortexM33 CortexM35P 上執行。CortexM 架構中支援 Thumb1 和 Thumb2 的指令集，不支援早期的 32bit ARM 指令集。 所有 CortexM 的核心都有一個共通的指令子集，包括大部份 Thumb1 指令、一些 Thumb2 指令，以及結果為 32 位元的乘法。CortexM0 CortexM0 CortexM1 CortexM23 設計目的就是希望讓矽晶面積最小，因此其指令集也是 CortexM 家族中最少的。 CortexM0 M0 M1 中有 Thumb1 指令，不過沒有 ARMv7M 架構才加入的指令（CBZ CBNZ IT）。CortexM0 M0 M1 包括一小部份的 Thumb2 指令（BL DMB DSB ISB MRS MSR）。CortexM3 M4 M7 M33 M35P 有所有基本的 Thumb1 和 Thumb2 指令。CortexM3 加上了三個 Thumb1 指令、所有的 Thumb2 指令、硬體的整體除法、以及飽和運算指令。CortexM4 加上了數位訊號處理（DSP）指令，以及可選的單精度浮點運算器（VFPv4SP）。CortexM7 加上了可選的雙精度浮點運算器（VFPv5）。CortexM23 M33 加上了 TrustZone 指令。 ARM CortexM 指令變化 Arm Core CortexM0 CortexM0 CortexM1 CortexM3 CortexM4 CortexM7 CortexM23 CortexM33 CortexM35P CortexM55 ARM 架構 ARMv6MARMv6M Architecture Reference Manual Arm Holdings ARMv6M ARMv6M ARMv7MARMv7M Architecture Reference Manual Arm Holdings ARMv7EM ARMv7EM ARMv8MBaseline ARMv8MMainline ARMv8MMainline Armv81M 計算機系統結構 Von Neumann Von Neumann Von Neumann Harvard Harvard Harvard Von Neumann Harvard Harvard Harvard 指令管線化 3 層 2 層 3 層 3 層 3 層 6 層 2 層 3 層 3 層 4 到 5 層 Thumb1 指令 大部份 大部份 大部份 大部份 Thumb2 指令 部份 部份 部份 部份 乘法指令 32x32 輸出 32bit 乘法指令 32x32 輸出 64bit 除法指令 3232，商 32bit 飽和指令 部份 DSP 指令 instructions 可選 可選 可選 單精度浮點數（SP）浮點運算指令 可選 可選 可選 可選 可選 雙精度浮點數（DP）浮點指令 可選 可選 半精度（HP） 可選 TrustZone 指令 可選 可選 可選 可選 輔助處理器指令 可選 可選 可選 Helium 技術 可選 （若用零等待狀態的 RAM） 16 cycles 15 cycles 23 for NMI26 for IRQ 12 cycles 12 cycles 12 cycles 15 no security ext27 security ext TBD TBD TBD 註：CortexM0／M0／M1 不包括以下 16 位元的 Thumb1 指令：CBZ CBNZ IT。 註：CortexM0／M0／M1 只包括以下 32 位元的 Thumb2 指令：BL DMB DSB ISB MRS MSR 註：CortexM0／M0／M1／M23 只有乘積結果為 32 位元的乘法指令（32bit 32bit lower 32bit），而 CortexM3／M4／M7／M33／M35P 有 32 位元相乘，結果為 32 位元的乘法指令（32bit 32bit 64bit）。CortexM4／M7（M33／M35P 可選）包括 DSP 乘法指令 16bit 16bit 32bit）、（32bit 16bit upper 32bi）、（32bit 32bit upper 32bit）ref nameARMv6MManual 註：要計算完乘法及除法的週期數依 ARM CortexM 的核心設計而不同。有些核心有較快速度或是較小尺寸的矽智財選項，因此核心可能用較少的矽面積，但需要的週期數較長。在執行除法指令或慢速迭代乘法指令時發生的中斷會讓處理器放棄其指令，在中斷結束後再繼續。 CortexM0M0M23 中，結果為 32 位元的乘法可以選擇是 1 個週期或是 32 個週期。CortexM1 可以選擇是 3 個週期或是 33 個週期。CortexM3M4M7M33M35P 都是一個週期。 CortexM3 中，結果為 32 位元的乘法指令，可能是 35 個週期（視數值而定）。CortexM4M7M33M35P 是一個週期。 CortexM3M4 的除法指令是 212 個週期（視數值而定）。CortexM7 是 320 個週期（視數值而定）。CortexM23 有 17 個週期或 34 個週期的選項。CortexM33 是 211 個週期（視數值而定）。CortexM35P 的資料還不確定。 註：CortexM4 M7 M33 M35P 有不含 FPU 的矽智財選項，或是單精度（SP）的 FPU，CortexM7 加上第三個矽智財選項，可以支援單精度以及雙精度（DP）的 FPU。若 CortexM4 M7 M33 M35P 有 FPU，其型號會是 CortexM4F CortexM7F CortexM33F CortexM35PF。 註：CortexM 系列包括三個新的 16 位元睡眠模式 Thumb1 指令：SEV WFE WFI。 註：中斷延遲週期計數假設 1 堆疊放在零等待狀態 RAM 2 沒有在執行其他的中斷 3 沒有安全延伸機能選項（因為會增加週期） 註：哈佛架構的 CortexM，其中斷延遲週期計數會比較短。 ARM CortexM 指令群 Group Instrbits Instructions CortexM0M0M1 CortexM3 CortexM4 CortexM7 CortexM23 CortexM33M35P CortexM55 16 ADC ADD ADR AND ASR B BIC BKPT BLX BX CMN CMP CPS EOR LDM LDR LDRB LDRH LDRSB LDRSH LSL LSR MOV MUL MVN NOP ORR POP PUSH REV REV16 REVSH ROR RSB SBC SEV STM STR STRB STRH SUB SVC SXTB SXTH TST UXTB UXTH WFE WFI YIELD 16 CBNZ CBZ 16 IT 32 BL DMB DSB ISB MRS MSR 32 SDIV UDIV 32 ADC ADD ADR AND ASR B BFC BFI BIC CDP CLREX CLZ CMN CMP DBG EOR LDC LDM LDR LDRB LDRBT LDRD LDREX LDREXB LDREXH LDRH LDRHT LDRSB LDRSBT LDRSH LDRSHT LDRT LSL LSR MCR MCRR MLA MLS MOV MOVT MRC MRRC MUL MVN NOP ORN ORR PLD PLDW PLI POP PUSH RBIT REV REV16 REVSH ROR RRX RSB SBC SBFX SEV SMLAL SMULL SSAT STC STM STR STRB STRBT STRD STREX STREXB STREXH STRH STRHT STRT SUB SXTB SXTH TBB TBH TEQ TST UBFX UMLAL UMULL USAT UXTB UXTH WFE WFI YIELD DSP 32 PKH QADD QADD16 QADD8 QASX QDADD QDSUB QSAX QSUB QSUB16 QSUB8 SADD16 SADD8 SASX SEL SHADD16 SHADD8 SHASX SHSAX SHSUB16 SHSUB8 SMLABB SMLABT SMLATB SMLATT SMLAD SMLALBB SMLALBT SMLALTB SMLALTT SMLALD SMLAWB SMLAWT SMLSD SMLSLD SMMLA SMMLS SMMUL SMUAD SMULBB SMULBT SMULTT SMULTB SMULWT SMULWB SMUSD SSAT16 SSAX SSUB16 SSUB8 SXTAB SXTAB16 SXTAH SXTB16 UADD16 UADD8 UASX UHADD16 UHADD8 UHASX UHSAX UHSUB16 UHSUB8 UMAAL UQADD16 UQADD8 UQASX UQSAX UQSUB16 UQSUB8 USAD8 USADA8 USAT16 USAX USUB16 USUB8 UXTAB UXTAB16 UXTAH UXTB16 可選 單精度浮點數 32 VABS VADD VCMP VCMPE VCVT VCVTR VDIV VLDM VLDR VMLA VMLS VMOV VMRS VMSR VMUL VNEG VNMLA VNMLS VNMUL VPOP VPUSH VSQRT VSTM VSTR VSUB 可選 可選 可選 可選 雙精度浮點數 32 VCVTA VCVTM VCVTN VCVTP VMAXNM VMINNM VRINTA VRINTM VRINTN VRINTP VRINTR VRINTX VRINTZ VSEL 可選 可選 TrustZone 16 BLXNS BXNS 可選 可選 可選 TrustZone 32 SG TT TTT TTA TTAT 可選 可選 可選 輔助處理器 16 CDP CDP2 MCR MCR2 MCRR MCRR2 MRC MRC2 MRRC MRRC2 可選 可選 註：針對 CortexM4 M7 M33 M35P，單精度（SP）浮點運算器指令只有在矽智財中有 SP FPU 選項時才有效。 註：針對 CortexM7，雙精度（DP）浮點運算器指令只有在矽智財中有 DP FPU 選項時才有效。 停用機能 ARM CortexM 系列的 ARM 架構，已停用一些早期核心的穖能： CortexM 核心中沒有 32 位的 ARM 指令集。 位元組序在矽智財實現時就需要決定。早期的核心允許依 MCU 資料位元組序模式設定而調整。 CortexM 核心不支援輔助處理器，一直到 ARM CortexM33M35P 核心的 ARMv8M Mainline 才重新支援此一選項。 32 位元 ARM 指令的能力和 Thumb1 和 Thumb2 指令集有很多地方重疊了，不過有些 ARM 的特徵找不到類似的特性。 SWP 和 SWPB（swap）ARM 架構在 CortexM 中沒有類似的架構。 16 位元 Thumb1 指令集最早是出現在早期 ARMv4T 架構的 ARM7T 核心，隨著時代而演進。在 ARMv5 ARMv6 ARMv6T2 架構問世時，Thumb1 指令集也有擴充。不過也有移除一些 Thumb1 指令。 不存在 BLX immediate 指令，此指令是用來從 Thumb1 切換到 ARM 的指令集。BLX register 指令在 CortexM 系列仍然支援。 不存在 SETEND 指令，因為不允許在執行時切換位元組序。 不支援輔助處理器指令，一直到 ARM CortexM33M35P 核心的 ARMv8M Mainline 才重新支援此些指令。 SWI 指令更名為 SVC，雖二進位碼相同。不過 SVC 的處理程式和 SWI 的處理程式在例外模式的處理上差很多。 CortexM0 CortexM0 核心是依小矽晶元面積以及最低價晶片進行最佳化的核心。 CortexM0 核心的主要特點有： ARMv6M 架構 三層管線 指令集： Thumb1（大部份），但沒有 CBZ CBNZ IT Thumb2（少部份），只有 BL DMB DSB ISB MRS MSR 32bit 硬體整數乘法，結果也是 32bit 1 到 32 個中斷，以及 矽智財選項： 硬體整數乘法速度：1 週期或 32 週期。 CortexM0 CortexM0 是以 CortexM0 再進行最佳化的版本。CortexM0 支援所有 CortexM0 的指令，因此可以用相同的編譯器以及除錯工具。CortexM0 的管線由三層變成二層，因此耗能較少。除了 CortexM0 已有的除錯功能外，CortexM0 增加了稱為微追蹤緩衝區（Micro Trace Buffer、MTB）的選項，有簡易的指令追蹤緩衝區。CortexM0 也有加入 CortexM3 和 CortexM4 的一些特點，是以矽智財選項的方式加入，例如記憶體保護單元（MPU），以及中斷向量表重新定位。 CortexM0 核心的主要特點有： ARMv6M 架構 二層管線（比 CortexM0 少一層） 指令集（和 CortexM0）相同 Thumb1（大部份），但沒有 CBZ CBNZ IT Thumb2（少部份），只有 BL DMB DSB ISB MRS MSR 32bit 硬體整數乘法，結果也是 32bit 1 到 32 個中斷，以及不可遮罩中斷 矽智財選項： 硬體整數乘法速度：1 週期或 32 週期。 八個區塊的記憶體保護單元（MPU）（和 M3、M4 相同） 中斷向量表重新定位（和 M3、M4 相同） 單一週期的 IO 埠（在 M0M23 上有此機能） 微追蹤緩衝區（Micro Trace Buffer、MTB）（在 M0M23M33M35P 上有此機能） CortexM1 The CortexM1 是特別設計可以放入 FPGA 晶片的核心。 CortexM1 內核的主要特點有： ARMv6M 架構 二層管線 指令集 Thumb1（大部份），但沒有 CBZ CBNZ IT Thumb2（少部份），只有 BL DMB DSB ISB MRS MSR 32bit 硬體整數乘法，結果也是 32bit 1 到 32 個中斷，以及不可遮罩中斷 矽智財選項： 硬體整數乘法速度：3 或 33 週期。 選配的緊密耦合記憶體（TCM）0 to 1 MB 指令 TCM，0 to 1 MB 資料 TCM，都可以選擇要不要 ECC 外部中斷：0 1 8 16 32 除錯模式：無，簡易功能，完整 位元組序：littleendian 或 BE8 bigendian 作業系統延伸：可以選擇 CortexM3 CortexM3 內核的主要特點有 ARMv7M 架構： 三層管線以及分支預測 指令集： Thumb1（完整） Thumb2（完整） 32bit 硬體整數乘法，結果可以是 32bit 或 64bit，有號或無號，在乘法後允許加法或減法。32bit 乘法是一個週期，64bit 乘法和乘積累加（MAC）需要的週期較多 32bit 硬體整數除法（212 週期） 支援飽和運算 12 個週期的中斷延遲 整合休眠模式 矽智財選項： 可選的記憶體保護單元（MPU）：0 個區或 8 個區 CortexM4 在概念上，CortexM4 是 CortexM3 加上數位訊號處理（DSP）指令、可選的浮點運算器。若有浮點運算器，會稱為 CortexM4F。 CortexM4 內核的主要特點有： ARMv7EM 架構 三層管線以及分支預測 指令集： Thumb1（完整） Thumb2（完整） 32bit 硬體整數乘法，結果可以是 32bit 或 64bit，有號或無號，在乘法後允許加法或減法。32bit 乘法及乘積累加（MAC）是一個週期 32bit 硬體整數除法（212 週期） 支援飽和運算 DSP 延伸：單一週期 1632bit MAC，單一週期雙 16bit MAC，816bit SIMD 運算 12 個週期的中斷延遲 整合休眠模式 矽智財選項： 可選的浮點運算器（FPU）：只有單精度 IEEE754 的，稱為 FPv4SP 延伸 可選的記憶體保護單元（MPU）：0 個區或 8 個區 CortexM7 CortexM7 是高效能的核心，其運算效能是 CortexM4 的二倍。其中包括六層的超純量管線有分支預測，有可選的單精度浮點運算器或雙精度浮點運算器。指令集以及資料匯流排已由 32bit 寬度增加到 64bit 寬度。若核心中有 FPU，會稱為 CortexM7F，不然會稱為 CortexM7。 CortexM7 內核的主要特點有： ARMv7EM 架構 6 階管線以及分支預測。在 ARM CortexM 核心中是最多的。 指令集： Thumb1（完整） Thumb2（完整） 32bit 硬體整數乘法，結果可以是 32bit 或 64bit，有號或無號，在乘法後允許加法或減法。32bit 乘法及乘積累加（MAC）是一個週期 32bit 硬體整數除法（212 週期） 支援飽和運算 DSP 延伸：單一週期 1632bit MAC，單一週期雙 16bit MAC，816bit SIMD 運算 1 至 240 個中斷，以及不可遮罩中斷 12 個週期的中斷延遲 整合休眠模式 矽智財選項： 可選的浮點運算器（FPU）：單精度或雙精度，都和 IEEE7542008 相容，稱為 FPv5 延伸 可選的 CPU 快取：0 至 64 KB 的指令快取，0 至 64 KB 的資料快取，都有可選的糾錯記憶體 可選的緊密耦合記憶體（TCM）：0 至 16 MB 指令 TCM，0 至 16 MB 資料 TCM，都可以選擇要不要 ECC 可選的記憶體保護單元（MPU）：8 區或 16 區。 可選的嵌入式追蹤巨集電路元（ETM）：可以只針對指令，或針對指令及資料。 可選的休眠模式保留模式（配合 Arm 功率管理元件）。 CortexM23 CortexM23 核心在 2016 年 10 月上市，以 2015 年 11 月釋出的 ARMv8M 架構為基礎。在概念上 CortexM23 類似 CortexM0，加上整數除法指令、TrustZone 安全特性、也是二層管線。 CortexM23 核心的主要特點有： ARMv8M 基線架構 二層管線（類似 CortexM0） TrustZone 安全指令（只有在 M23M33M35P） 32bit 硬體整數除法（17 或 34 週期）（M0M0M1 沒有） 堆疊邊界限制（只有在 SAU 選項開啟時才有）（M23M33M35P 才有） 矽智財選項： 硬體整數乘法速度：1 週期或 32 週期。 硬體整數除法速度：最長 17 週期或 34 週期，依除數而定，指令有可能會提早完成。 可選的記憶體保護單元（MPU）：0 4 8 12 16 個區塊 可選的安全屬性單元（SAU）：0 4 8 個區塊 單一週期的 IO 埠（在 M0M23 上有此機能） 微追蹤緩衝區（Micro Trace Buffer、MTB）（在 M0M23M33M35P 上有此機能） CortexM33 CortexM33 內核是在 2016 年 10 月釋出，是以 2015 年 11 月釋出的 ARMv8M 架構為基礎。概念上類似 CortexM4 和 CortexM23 的交集，也有三階的指令管道。 CortexM33 核心的主要特點有 ARMv8M 架構： 三階管道 TrustZone 安全指令（只有在 M23M33M35P 才有） 32bit 硬體整數除法（最長 11 個週期）（M0M0M1 無此選項） 堆疊邊界限制（只有在 SAU 選項開啟時才有）（M23M33M35P 才有） 矽智財選項： 可選的浮點運算器（FPU）：只有單精度 IEEE754 的，稱為 FPv5 延伸 可選的記憶體保護單元（MPU）：0 4 8 12 16 個區塊 可選的安全屬性單元（SAU）：0 4 8 個區塊 微追蹤緩衝區（Micro Trace Buffer、MTB）（在 M0M23M33M35P 上有此機能） CortexM35P CortexM35P 內核是在 2018 年 5 月釋出的，在概念上是 CortexM33 核心加上新的指令集，以及來自 ARM SecurCore 系列，新的防篡改硬體、可選的同位元以及 ECC 功能。 目前此晶片的公開資料不多，只有技術參考手冊。到 2020 年 2 月為止，尚未看到各廠商推出此係列的微處理器。 CortexM55 CortexM55 是在 2020 年 2 月釋出，是以 2019 年 2 月釋出的 Armv81M 架構為基礎，有四階指令管道。 CortexM55 核心的主要特點有： ARMv81M MainlineHelium 核心 四階管道 堆疊邊界限制（只有在 SAU 選項開啟時才有） 矽智財選項： Helium MProfile Vector Extension MVE 單精度和雙精度的浮點運算器 可選的 DSP 延伸 可選的 TrustZone 安全延伸 支援 RAS（Safety and reliability）功能 支援協處理器 區分安全區和非安全區的 MPU，可以分為 0 4 8 12 或 16 個區 安全屬性單元可以分為 0 4 或 8 個區 指令快取，大小可以設定為 4KB 8KB 16KB 32KB 64KB 資料快取，大小可以設定為 4KB 8KB 16KB 32KB 64KB 快取及 TCM 支援 ECC 1480 個中斷 38 個例外優先位元 內部和外部的喚醒中斷控制器（WIC）選項，可選的 CTI ITM 及 DWT ARM 客製指令（未來釋出的版本中會支援） 檔案 ARM 晶片的檔案很多。 過去八位元的微處理器只有一份檔案，不過隨著微處理器的進步，許多功能都需要支援。ARM 晶片的檔案包一般會包括 IC 製造商以及 CPU 核心供應商（Arm）的檔案。 典型的檔案結構如下： 檔案樹（從上到下） IC 製造商網頁 IC 製造商宣傳投影片 IC 製造商實際晶片的資料表 IC 製造商該晶片家族的參考手冊，其中有常用週邊以及特點 ARM 核心網站 ARM 核心通用使用手冊 ARM 核心技術參考手冊 ARM 架構參考手冊 IC 製造商可能會有其他資料，例如開發板使用手冊、應用指南、快速手冊、軟體函式庫檔案、已知問題等。 參考資料 延伸閱讀 Embedded Systems with ARM CortexM Microcontrollers in Assembly Language and C 3rd Ed Yifeng Zhu 738 pages 2017 Designers Guide to the CortexM Processor Family 2nd Ed Trevor Martin 490 pages 2016 ARM Assembly for Embedded Applications 3rd Ed Daniel Lewis 318 pages 2017 Definitive Guide to the ARM CortexM0 and CortexM0 Processors 2nd Ed Joseph Yiu 784 pages 2015 Definitive Guide to the ARM CortexM3 and CortexM4 Processors 3rd Ed Joseph Yiu 600 pages 2013 Digital Signal Processing and Applications Using the ARM CortexM4 1st Ed Donald Reay 250 pages 2014 Embedded Systems Introduction to ARM CortexM Microcontrollers 5th Ed Jonathan Valvano 506 pages 2012 Assembly Language Programming ARM CortexM3 1st Ed Vincent Mahout 256 pages 2012 外部連結 CortexM CategoryARM 核心