《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于ARM Cortex-M3核的SoC架構(gòu)設計及性能分析
基于ARM Cortex-M3核的SoC架構(gòu)設計及性能分析
來源:電子技術(shù)應用2012年第8期
陶友龍,趙安璞,陳海波
東南大學 國家ASIC系統(tǒng)工程技術(shù)研究中心(無錫),江蘇 無錫214135
摘要: 主要研究了基于ARM Cortex-M3核的SoC設計方法及不同架構(gòu)對芯片整體性能的影響。首先從Cortex-M3的結(jié)構(gòu)特點尤其是總線結(jié)構(gòu)特點出發(fā),分析了基于該核的SoC架構(gòu)設計的要點。然后通過EEMBC的CoreMark程序,對實際流片的一款Cortex-M3核芯片進行了性能測試,并與STM32F103 MCU的測試結(jié)果進行了對比,通過實例說明了不同芯片架構(gòu)對性能的影響。最后,對影響SoC芯片性能的因素,包括芯片架構(gòu)、存儲器速度、工藝、主頻等進行了分析和總結(jié)。
中圖分類號: TN403
文獻標識碼: A
文章編號: 0258-7998(2012)08-0053-03
Design and performance analysis of SoC architecture based on ARM Cortex-M3
Tao Youlong,Zhao Anpu,Chen Haibo
National ASIC System Engineering Research Center(Wuxi), Southeast University, Wuxi 214135,China
Abstract: The method of how to design SoC with ARM Cortex-M3 core is carefully studied, and the relationship between chip architecture and performance is also analyzed. Firstly, the essentials of SoC design with Cortex-M3 are presented based on the core′s structural features, especially the bus structure feature. Then, with the help of CoreMark program from EEMBC, the performance of a chip with Cortex-M3 core is tested after tape-out, and also compared with the test results of STM32F103 MCU in order to illustrate different architectures′ effects on chips′ performance. At last, the factors which affect the performance of SoC, including chip architecture, memory speed, process and frequency, are analyzed and summarized.
Key words : chip architecture;System on Chip(SoC);Cortex-M3;CoreMark

    ARM Cortex系列是ARM公司推出的基于ARMv7架構(gòu)、使用高性能的Thumb-2指令集的32位嵌入式微處理器核。主要有三種款式,分別是Cortex-A、Cortex-R和Cortex-M。其中Cortex-M系列主要用于低功耗、低成本的嵌入式應用。本文用于SoC(System on Chip)設計的Cortex-M3核便屬于該系列。該處理器核憑借其高性能、低功耗、低成本和開發(fā)方便等特點,受到了各廠商的青睞。STMicroelectronics、NXP Semiconductors、ATMEL等都競相推出各自基于Cortex-M3核的SoC。由于Cortex-M3核的結(jié)構(gòu)與傳統(tǒng)ARM核有很大區(qū)別,因此基于Cortex-M3的SoC架構(gòu)設計也有與以往不同的特點。不同的架構(gòu)對芯片整體性能影響很大。本文使用CoreMark對實際芯片作了性能測試,其結(jié)果證明了SoC架構(gòu)對芯片性能的影響。

1 Cortex-M3核SoC架構(gòu)設計
1.1 總線接口

    處理器核對SoC架構(gòu)最大的影響是其總線接口。傳統(tǒng)的ARM處理器使用單一總線接口。如ARM7處理器采用馮諾依曼結(jié)構(gòu),指令和數(shù)據(jù)共用一條總線,從而核外部為單總線接口[1];ARM9雖然使用了哈佛結(jié)構(gòu),核內(nèi)部指令總線和數(shù)據(jù)總線分開,但這兩條總線共用同一存儲空間,且在核外共用同一總線接口[2]。使用單一總線接口的弊端是取指和取數(shù)據(jù)無法并行執(zhí)行,效率相對較低。
    Cortex-M3的結(jié)構(gòu)如圖1所示。Cortex-M3采用了多總線結(jié)構(gòu),在核外有ICode、DCode、System三個總線接口[3]。其中,ICode和DCode總線接口使得在地址空間Code區(qū)中的取指和取數(shù)據(jù)分開并行執(zhí)行,而System總線使得在地址空間SRAM區(qū)中的取指和取數(shù)據(jù)使用同一總線接口,無法并行執(zhí)行。

1.2 SoC架構(gòu)設計
    由Cortex-M3的結(jié)構(gòu)特點可以看出,Cortex-M3不適合像傳統(tǒng)ARM處理器那樣將代碼由Flash搬移到RAM來提高效率,那樣反而可能會降低效率(由于SRAM區(qū)中的取指和取數(shù)據(jù)使用同一總線接口)。而Cortex-M3是將代碼和只讀數(shù)據(jù)放在Flash中,程序執(zhí)行時將可讀寫數(shù)據(jù)放在RAM中,從而獲得最高效率。
    基于以上考慮,設計Cortex-M3核的SoC時,最好將片上Flash掛接在ICode和DCode總線上,即0x00000000~0x20000000地址空間,如圖2所示,將片上SRAM掛接在System總線上,即0x20000000~0x40000000地址空間。這樣從Flash中取指和取只讀數(shù)據(jù)可以分別通過ICode和DCode總線并行執(zhí)行,提高了Flash的讀取效率。而對SRAM中的數(shù)據(jù)讀寫通過System總線進行。三條總線各自分工,使得SoC性能大大提高。

1.3 自主設計的Cortex-M3核SoC
    實驗室自主設計了一款基于Cortex-M3核的SoC,并采用0.18 ?滋m CMOS工藝流片成功。如圖3所示,芯片的片上Flash從0x20000000開始,共256 KB;片上SRAM從0x30000000開始,共96 KB。其架構(gòu)特點是片上Flash和片上SRAM均處于0x20000000~0x40000000地址空間,即掛接在System總線上,但兩者均可再映射Remap到0地址,即可掛接到ICode和DCode總線上。

    默認情況下片上SRAM可Remap到0地址,這意味著SRAM默認擁有0x00000000和0x30000000兩個起始地址。因此,將代碼放在SRAM中時,若從0x00000000地址開始執(zhí)行,則處理器通過ICode和DCode總線來訪問SRAM;若從0x30000000地址開始執(zhí)行,則處理器通過System總線來訪問SRAM。下面將利用這特一點來進行性能分析。
2 性能測試及分析
2.1 CoreMark簡介

    傳統(tǒng)的嵌入式微處理器性能測試普遍采用Dhrystone程序,WEICKER R P通過統(tǒng)計程序中常用的操作及其所占比例,構(gòu)建了一個測試基準,并經(jīng)過多次完善,才得到了Dhrystone程序[4]。但Dhrystone程序本身過于簡單,并不能準確反映處理器運行實際應用程序時的性能。
    EEMBC組織自成立之初就打算制定一種能夠代替Dhrystone并能更好地測量嵌入式微處理器性能的標準。但由于EEMBC的程序和認證一般都是收費的,所以其發(fā)布的測試程序一直沒能得到很好的普及。直到其發(fā)布了完全公開和免費的CoreMark程序,才逐漸改變這一局面,并有取代Dhrystone的趨勢。CoreMark是一個雖代碼量小但很復雜的測試程序,通過執(zhí)行應用程序中常用的數(shù)據(jù)結(jié)構(gòu)和算法來測試處理器性能,其內(nèi)容包括鏈表操作、矩陣運算和CRC校驗等,可以更好地反映處理器運行實際應用程序時的性能。本文采用CoreMark來測試SoC的性能。
2.2 自主設計SoC的性能測試
    使用Keil開發(fā)環(huán)境:將CoreMark程序放在芯片的片上SRAM中,分別設置從片上SRAM的兩個起始地址執(zhí)行,其在72 MHz主頻時的測試結(jié)果如表1所示。


    可見,對于同一片上SRAM存儲器,從0x00000000地址訪問執(zhí)行比從0x30000000地址訪問執(zhí)行時的處理器性能要高出約20%。因此,使用ICode和DCode總線取指和取只讀數(shù)據(jù)比使用System總線性能要高。在今后的設計中將取消Remap,直接將片上Flash放在從0x00000000開始的空間,將片上SRAM放在從0x30000000開始的空間,實現(xiàn)取指、取只讀數(shù)據(jù)、取可讀寫數(shù)據(jù)并行執(zhí)行,從而達到最佳性能。
2.3 STM32F103性能測試
    意法半導體的STM32系列MCU是目前市場上最常見的Cortex-M3核SoC之一,該系列中的STM32F103架構(gòu)如圖4所示[5]。該芯片的片上Flash掛接在ICode和DCode總線上,片上SRAM掛接在System總線上。其中ICode總線直通Flash,而DCode總線和System總線通過一個總線矩陣分別連接到片上Flash和片上SRAM及其余外設。此外,STM32采用了一個64 bit的Flash,并使用了一個2×64 bit的緩沖器,一次可緩存128 bit數(shù)據(jù),從而大大降低了Flash的訪問頻率,彌補了Flash速度較慢的缺陷,使得取指和取只讀數(shù)據(jù)的速度大大提高。該架構(gòu)與前述分析基本一致,故可以保證最佳性能。

 

 

    可見,STM32F103在片上Flash中執(zhí)行代碼的性能超過了在片上SRAM中的性能。主要原因是在片上Flash中執(zhí)行時,三條總線合作分工,加之Flash本身位寬較大(64 bit),且外部有2×64 bit緩沖器,因此效率很高,代碼在片上Flash中執(zhí)行的性能可以與在片上SRAM中執(zhí)行時相當。
    與實驗室自主設計的SoC相比,兩芯片在片上SRAM中執(zhí)行代碼的性能幾乎相同。這是因為兩者均只使用System總線對SRAM進行訪問,且兩芯片的SRAM存取速度均跟得上Cortex-M3核對其訪問的速度。但如表1所示,自主設計的SoC在片上Flash中執(zhí)行代碼的性能還不到STM32F103的一半,原因是所使用的Flash本身速度較低、位寬較低(2×16 bit),且沒有采用外部高位寬緩沖器等手段減少訪存頻率,再加上測試時Flash掛接在System總線上,因此Flash的性能成為了所設計SoC的性能瓶頸。
3 影響SoC性能因素
    (1)芯片架構(gòu):由以上分析可見,芯片架構(gòu)對SoC性能有很大的影響。要想獲得最佳性能,關(guān)鍵是要深入了解所用處理器核的結(jié)構(gòu)特點,再據(jù)其采用合適的芯片架構(gòu)。
    (2)存儲器速度:存儲器速度尤其是Flash速度也是限制SoC性能的一個關(guān)鍵因素。存儲器速度越慢,CPU需要插入的等待周期就越多,效率就越低。這一點在上述自主設計的SoC中就不夠好,需要在Flash部分作大的改進。而STM32在這方面做得很好,通過加大存儲器位寬和增加緩沖器使Flash不會成為芯片性能的瓶頸。
    (3)工藝:工藝對存儲器速度及芯片整體性能的影響是顯而易見的,更先進的工藝意味著更高的性能。但提升工藝同時意味著增加流片成本,故需根據(jù)實際情況考慮。
    (4)主頻:主頻越高,意味著同一段時間內(nèi)可以執(zhí)行更多的指令,即測試結(jié)果CoreMark總分提升,但CoreMark/MHz沒變。此外,若Flash速度跟不上,則會將最高性能限制住,提升主頻不但不會提高整體性能,反而還會降低效率,即測試結(jié)果CoreMark總分不變,CoreMark/MHz反而降低。
    本文主要研究了基于ARM Cortex-M3核的SoC架構(gòu)設計,重點分析了處理器核的總線接口對芯片架構(gòu)設計的影響。采用CoreMark程序,對實驗室自主設計的一款Cortex-M3核SoC以及意法半導體的STM32F103 MCU進行了性能測試及分析,說明了芯片架構(gòu)對性能的影響。最后,對影響SoC性能的因素作了總結(jié)。對高性能的Cortex-M3核SoC設計有著指導作用,對一般的SoC設計也有借鑒意義。
參考文獻
[1] ARM Ltd..ARM7TDMI Technical Reference Manual  Revision:r4p1,2004.
[2] ARM Ltd..ARM920T Technical Reference Manual Rev 1,2001.
[3] ARM Ltd..Cortex-M3 Technical Reference Manual  Revision:r2p1,2010.
[4] WEICKER R P.Dhrystone:A synthetic systems programming  benchmark[J].Communications of the ACM,1984,27(10):1013-1030.
[5] ST Microelectronics Ltd..STM32F101xx,STM32F102xx,STM32F103xx,STM32F105xx and STM32F107xx advanced  ARM-based 32-bit MCUs Reference manual Rev 11,2010.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。