如何看Cortex-M系列处理器差异与共性?技术老司机Joseph带你飞
ARM處理器家族如何區(qū)分?
多年來, ARM已經(jīng)研發(fā)了相當(dāng)多的不同的處理器產(chǎn)品,不同的ARM 處理器有不同的指令集,系統(tǒng)功能和性能。對很多初學(xué)者,甚至某些芯片設(shè)計(jì)經(jīng)驗(yàn)豐富但是不熟悉ARM系列處理器的設(shè)計(jì)者來說,也是很容易混淆這些產(chǎn)品。?如下圖中:ARM 處理器產(chǎn)品分為經(jīng)典ARM處理器系列和最新的Cortex處理器系列。并且根據(jù)應(yīng)用范圍的不同,ARM處理器可以分類成3個(gè)系列。
ARM處理器家族
??Application Processors(應(yīng)用處理器)面向移動(dòng)計(jì)算,智能手機(jī),服務(wù)器等市場的的高端處理器。這類處理器運(yùn)行在很高的時(shí)鐘頻率(超過1GHz),支持像Linux,Android,MS Windows和移動(dòng)操作系統(tǒng)等完整操作系統(tǒng)需要的內(nèi)存管理單元(MMU)。 如果規(guī)劃開發(fā)的產(chǎn)品需要運(yùn)行上述其中的一個(gè)操作系統(tǒng),你需要選擇ARM 應(yīng)用處理器。
??Real-time Processors (實(shí)時(shí)處理器)
面向?qū)崟r(shí)應(yīng)用的高性能處理器系列,例如硬盤控制器,汽車傳動(dòng)系統(tǒng)和無線通訊的基帶控制。多數(shù)實(shí)時(shí)處理器不支持MMU,不過通常具有MPU,Cache和其他針對工業(yè)應(yīng)用設(shè)計(jì)的存儲(chǔ)器功能。實(shí)時(shí)處理器運(yùn)行在比較高的時(shí)鐘頻率(例如200MHz 到 >1GHz ),響應(yīng)延遲非常低。雖然實(shí)時(shí)處理器不能運(yùn)行完整版本的Linux和Windows, 但是支持大量的實(shí)時(shí)操作系統(tǒng)(RTOS)。
??Microcontroller Processors(微控制器處理器)
微控制器處理器通常設(shè)計(jì)成面積很小和能效比很高。通常這些處理器的流水線很短,最高時(shí)鐘頻率很低(雖然市場上有此類的處理器可以運(yùn)行在200Mhz之上)。 并且,新的Cortex-M處理器家族設(shè)計(jì)的非常容易使用。因此,ARM 微控制器處理器在單片機(jī)和深度嵌入式系統(tǒng)市場非常成功和受歡迎。
ARM處理器特性總結(jié)
Cortex-M 處理器家族一覽
Cortex-M處理器家族更多的集中在低性能端,但是這些處理器相比于許多微控制器使用的傳統(tǒng)處理器性能仍然很強(qiáng)大。例如,Cortex-M4和Cortex-M7處理器應(yīng)用在許多高性能的微控制器產(chǎn)品中,最大的時(shí)鐘頻率可以達(dá)到400Mhz。
當(dāng)然,性能不是選擇處理器的唯一指標(biāo)。在許多應(yīng)用中,低功耗和成本是關(guān)鍵的選擇指標(biāo)。因此,Cortex-M處理器家族包含各種產(chǎn)品來滿足不同的需求:
面向低成本,超低功耗的微控制器和深度嵌入應(yīng)用的非常小的處理器(最小12K門電路)。
針對小型嵌入式系統(tǒng)的最高能效的處理器,與Cortex-M0處理器接近的尺寸大小和編程模式,但是具有擴(kuò)展功能,如單周期I/O接口和向量表重定位功能。
針對FPGA設(shè)計(jì)優(yōu)化的小處理器,利用FPGA上的存儲(chǔ)器塊實(shí)現(xiàn)了緊耦合內(nèi)存(TCM),和Cortex-M0有相同的指令集。
針對低功耗微控制器設(shè)計(jì)的處理器,面積小但是性能強(qiáng)勁,支持可以處理器快速處理復(fù)雜任務(wù)的豐富指令集,具有硬件除法器和乘加指令(MAC)。并且,M3支持全面的調(diào)試和跟蹤功能,使軟件開發(fā)者可以快速的開發(fā)他們的應(yīng)用。
不但具備Cortex-M3的所有功能,并且擴(kuò)展了面向數(shù)字信號(hào)處理(DSP)的指令集,像單指令多數(shù)據(jù)指令(SMID)和更快的單周期MAC操作。此外,它還有一個(gè)可選的支持IEEE754浮點(diǎn)標(biāo)準(zhǔn)的單精度浮點(diǎn)運(yùn)算單元。
針對高端微控制器和數(shù)據(jù)處理密集的應(yīng)用開發(fā)的高性能處理器。具備Cortex-M4支持的所有指令功能,擴(kuò)展支持雙精度浮點(diǎn)運(yùn)算,并且具備擴(kuò)展的存儲(chǔ)器功能,例如Cache和緊耦合存儲(chǔ)器(TCM)。
面向超低功耗,低成本應(yīng)用設(shè)計(jì)的小尺寸處理器,和Cortex-M0相似,但是支持各種增強(qiáng)的指令集和系統(tǒng)層面的功能特性。M23還支持Trustzone安全擴(kuò)展。
主流的處理器設(shè)計(jì),與之前的Cortex-M3和Cortex-M4處理器類似,但系統(tǒng)設(shè)計(jì)更靈活,能耗比更高效,性能更高。M33還支持Trustzone安全擴(kuò)展。
不同于老的經(jīng)典ARM處理器(例如,ARM7TDMI, ARM9),Cortex-M處理器有一個(gè)非常不同的架構(gòu)。例如:
??僅支持ARM Thumb指令,已擴(kuò)展到同時(shí)支持16位和32位指令Thumb-2版本。
??內(nèi)置的嵌套向量中斷控制負(fù)責(zé)中斷處理,自動(dòng)處理中斷優(yōu)先級(jí),中斷屏蔽,中斷嵌套和系統(tǒng)異常處理。
??中斷處理函數(shù)可以使用標(biāo)準(zhǔn)的C語言編程,嵌套中斷處理機(jī)制避免了使用軟件判斷哪一個(gè)中斷需要響應(yīng)處理。同時(shí),中斷響應(yīng)速度是確定性的,延遲低。
??向量表從跳轉(zhuǎn)指令變?yōu)橹袛嗪拖到y(tǒng)異常處理函數(shù)的起始地址。
??寄存器組和某些編程模式也做了改變。
這些變化意味著許多為經(jīng)典ARM處理器編寫的匯編代碼需要修改,老的項(xiàng)目需要修改和重新編譯才能遷移到Cortex-M的產(chǎn)品上。軟件移植具體的細(xì)節(jié)點(diǎn)擊“閱讀原文”查看ARM文檔:ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers
Cortex-M0, M0+, M3, M4 and M7之間有很多的相似之處,例如:
?基本編程模型?
?嵌套向量中斷控制器(NVIC)的中斷響應(yīng)管理
?架構(gòu)設(shè)計(jì)的休眠模式:睡眠模式和深度睡眠模式
?操作系統(tǒng)支持特性
?調(diào)試功能
?易用性
Cortex-M處理器的嵌套向量中斷控制器
例如,嵌套向量中斷控制器是內(nèi)置的中斷控制器,支持許多外圍設(shè)備的中斷輸入,一個(gè)不可屏蔽的中斷請求,一個(gè)來自被稱作內(nèi)置時(shí)鐘(SysTick)的中斷請求和一定數(shù)量的系統(tǒng)異常請求。NVIC處理這些中斷和異常的優(yōu)先級(jí)和屏蔽管理。
ARM處理器家族如何區(qū)分?多年來, ARM已經(jīng)研發(fā)了相當(dāng)多的不同的處理器產(chǎn)品,不同的ARM 處理器有不同的指令集,系統(tǒng)功能和性能。對很多初學(xué)者,甚至某些芯片設(shè)計(jì)經(jīng)驗(yàn)豐富但是不熟悉ARM系列處理器的設(shè)計(jì)者來說,也是很容易混淆這些產(chǎn)品。?如下圖中:ARM 處理器產(chǎn)品分為經(jīng)典ARM處理器系列和最新的Cortex處理器系列。并且根據(jù)應(yīng)用范圍的不同,ARM處理器可以分類成3個(gè)系列。
ARM處理器家族
??Application Processors(應(yīng)用處理器)面向移動(dòng)計(jì)算,智能手機(jī),服務(wù)器等市場的的高端處理器。這類處理器運(yùn)行在很高的時(shí)鐘頻率(超過1GHz),支持像Linux,Android,MS Windows和移動(dòng)操作系統(tǒng)等完整操作系統(tǒng)需要的內(nèi)存管理單元(MMU)。 如果規(guī)劃開發(fā)的產(chǎn)品需要運(yùn)行上述其中的一個(gè)操作系統(tǒng),你需要選擇ARM 應(yīng)用處理器。
??Real-time Processors (實(shí)時(shí)處理器)
面向?qū)崟r(shí)應(yīng)用的高性能處理器系列,例如硬盤控制器,汽車傳動(dòng)系統(tǒng)和無線通訊的基帶控制。多數(shù)實(shí)時(shí)處理器不支持MMU,不過通常具有MPU,Cache和其他針對工業(yè)應(yīng)用設(shè)計(jì)的存儲(chǔ)器功能。實(shí)時(shí)處理器運(yùn)行在比較高的時(shí)鐘頻率(例如200MHz 到 >1GHz ),響應(yīng)延遲非常低。雖然實(shí)時(shí)處理器不能運(yùn)行完整版本的Linux和Windows, 但是支持大量的實(shí)時(shí)操作系統(tǒng)(RTOS)。
??Microcontroller Processors(微控制器處理器)
微控制器處理器通常設(shè)計(jì)成面積很小和能效比很高。通常這些處理器的流水線很短,最高時(shí)鐘頻率很低(雖然市場上有此類的處理器可以運(yùn)行在200Mhz之上)。 并且,新的Cortex-M處理器家族設(shè)計(jì)的非常容易使用。因此,ARM 微控制器處理器在單片機(jī)和深度嵌入式系統(tǒng)市場非常成功和受歡迎。
ARM處理器特性總結(jié)
Cortex-M 處理器家族一覽
Cortex-M處理器家族更多的集中在低性能端,但是這些處理器相比于許多微控制器使用的傳統(tǒng)處理器性能仍然很強(qiáng)大。例如,Cortex-M4和Cortex-M7處理器應(yīng)用在許多高性能的微控制器產(chǎn)品中,最大的時(shí)鐘頻率可以達(dá)到400Mhz。
當(dāng)然,性能不是選擇處理器的唯一指標(biāo)。在許多應(yīng)用中,低功耗和成本是關(guān)鍵的選擇指標(biāo)。因此,Cortex-M處理器家族包含各種產(chǎn)品來滿足不同的需求:
面向低成本,超低功耗的微控制器和深度嵌入應(yīng)用的非常小的處理器(最小12K門電路)。
針對小型嵌入式系統(tǒng)的最高能效的處理器,與Cortex-M0處理器接近的尺寸大小和編程模式,但是具有擴(kuò)展功能,如單周期I/O接口和向量表重定位功能。
針對FPGA設(shè)計(jì)優(yōu)化的小處理器,利用FPGA上的存儲(chǔ)器塊實(shí)現(xiàn)了緊耦合內(nèi)存(TCM),和Cortex-M0有相同的指令集。
針對低功耗微控制器設(shè)計(jì)的處理器,面積小但是性能強(qiáng)勁,支持可以處理器快速處理復(fù)雜任務(wù)的豐富指令集,具有硬件除法器和乘加指令(MAC)。并且,M3支持全面的調(diào)試和跟蹤功能,使軟件開發(fā)者可以快速的開發(fā)他們的應(yīng)用。
不但具備Cortex-M3的所有功能,并且擴(kuò)展了面向數(shù)字信號(hào)處理(DSP)的指令集,像單指令多數(shù)據(jù)指令(SMID)和更快的單周期MAC操作。此外,它還有一個(gè)可選的支持IEEE754浮點(diǎn)標(biāo)準(zhǔn)的單精度浮點(diǎn)運(yùn)算單元。
針對高端微控制器和數(shù)據(jù)處理密集的應(yīng)用開發(fā)的高性能處理器。具備Cortex-M4支持的所有指令功能,擴(kuò)展支持雙精度浮點(diǎn)運(yùn)算,并且具備擴(kuò)展的存儲(chǔ)器功能,例如Cache和緊耦合存儲(chǔ)器(TCM)。
面向超低功耗,低成本應(yīng)用設(shè)計(jì)的小尺寸處理器,和Cortex-M0相似,但是支持各種增強(qiáng)的指令集和系統(tǒng)層面的功能特性。M23還支持Trustzone安全擴(kuò)展。
主流的處理器設(shè)計(jì),與之前的Cortex-M3和Cortex-M4處理器類似,但系統(tǒng)設(shè)計(jì)更靈活,能耗比更高效,性能更高。M33還支持Trustzone安全擴(kuò)展。
不同于老的經(jīng)典ARM處理器(例如,ARM7TDMI, ARM9),Cortex-M處理器有一個(gè)非常不同的架構(gòu)。例如:
??僅支持ARM Thumb指令,已擴(kuò)展到同時(shí)支持16位和32位指令Thumb-2版本。
??內(nèi)置的嵌套向量中斷控制負(fù)責(zé)中斷處理,自動(dòng)處理中斷優(yōu)先級(jí),中斷屏蔽,中斷嵌套和系統(tǒng)異常處理。
??中斷處理函數(shù)可以使用標(biāo)準(zhǔn)的C語言編程,嵌套中斷處理機(jī)制避免了使用軟件判斷哪一個(gè)中斷需要響應(yīng)處理。同時(shí),中斷響應(yīng)速度是確定性的,延遲低。
??向量表從跳轉(zhuǎn)指令變?yōu)橹袛嗪拖到y(tǒng)異常處理函數(shù)的起始地址。
??寄存器組和某些編程模式也做了改變。
這些變化意味著許多為經(jīng)典ARM處理器編寫的匯編代碼需要修改,老的項(xiàng)目需要修改和重新編譯才能遷移到Cortex-M的產(chǎn)品上。軟件移植具體的細(xì)節(jié)點(diǎn)擊“閱讀原文”查看ARM文檔:ARM Cortex-M3 Processor Software Development for ARM7TDMI Processor Programmers
Cortex-M0, M0+, M3, M4 and M7之間有很多的相似之處,例如:
?基本編程模型?
?嵌套向量中斷控制器(NVIC)的中斷響應(yīng)管理
?架構(gòu)設(shè)計(jì)的休眠模式:睡眠模式和深度睡眠模式
?操作系統(tǒng)支持特性
?調(diào)試功能
?易用性
Cortex-M處理器的嵌套向量中斷控制器
例如,嵌套向量中斷控制器是內(nèi)置的中斷控制器,支持許多外圍設(shè)備的中斷輸入,一個(gè)不可屏蔽的中斷請求,一個(gè)來自被稱作內(nèi)置時(shí)鐘(SysTick)的中斷請求和一定數(shù)量的系統(tǒng)異常請求。NVIC處理這些中斷和異常的優(yōu)先級(jí)和屏蔽管理。
總結(jié)
以上是生活随笔為你收集整理的如何看Cortex-M系列处理器差异与共性?技术老司机Joseph带你飞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AliSQL开源Sequence Eng
- 下一篇: 贾扬清撰文详解Caffe2:从强大的新能