《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于ARM Cortex-M3核的SoC架構設計及性能分析
基于ARM Cortex-M3核的SoC架構設計及性能分析
來源:電子技術應用2012年第8期
陶友龍,趙安璞,陳海波
東南大學 國家ASIC系統工程技術研究中心(無錫),江蘇 無錫214135
摘要: 主要研究了基于ARM Cortex-M3核的SoC設計方法及不同架構對芯片整體性能的影響。首先從Cortex-M3的結構特點尤其是總線結構特點出發,分析了基于該核的SoC架構設計的要點。然后通過EEMBC的CoreMark程序,對實際流片的一款Cortex-M3核芯片進行了性能測試,并與STM32F103 MCU的測試結果進行了對比,通過實例說明了不同芯片架構對性能的影響。最后,對影響SoC芯片性能的因素,包括芯片架構、存儲器速度、工藝、主頻等進行了分析和總結。
中圖分類號: 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架構、使用高性能的Thumb-2指令集的32位嵌入式微處理器核。主要有三種款式,分別是Cortex-A、Cortex-R和Cortex-M。其中Cortex-M系列主要用于低功耗、低成本的嵌入式應用。本文用于SoC(System on Chip)設計的Cortex-M3核便屬于該系列。該處理器核憑借其高性能、低功耗、低成本和開發方便等特點,受到了各廠商的青睞。STMicroelectronics、NXP Semiconductors、ATMEL等都競相推出各自基于Cortex-M3核的SoC。由于Cortex-M3核的結構與傳統ARM核有很大區別,因此基于Cortex-M3的SoC架構設計也有與以往不同的特點。不同的架構對芯片整體性能影響很大。本文使用CoreMark對實際芯片作了性能測試,其結果證明了SoC架構對芯片性能的影響。

1 Cortex-M3核SoC架構設計
1.1 總線接口

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

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

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

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

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


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

 

 

    可見,STM32F103在片上Flash中執行代碼的性能超過了在片上SRAM中的性能。主要原因是在片上Flash中執行時,三條總線合作分工,加之Flash本身位寬較大(64 bit),且外部有2×64 bit緩沖器,因此效率很高,代碼在片上Flash中執行的性能可以與在片上SRAM中執行時相當。
    與實驗室自主設計的SoC相比,兩芯片在片上SRAM中執行代碼的性能幾乎相同。這是因為兩者均只使用System總線對SRAM進行訪問,且兩芯片的SRAM存取速度均跟得上Cortex-M3核對其訪問的速度。但如表1所示,自主設計的SoC在片上Flash中執行代碼的性能還不到STM32F103的一半,原因是所使用的Flash本身速度較低、位寬較低(2×16 bit),且沒有采用外部高位寬緩沖器等手段減少訪存頻率,再加上測試時Flash掛接在System總線上,因此Flash的性能成為了所設計SoC的性能瓶頸。
3 影響SoC性能因素
    (1)芯片架構:由以上分析可見,芯片架構對SoC性能有很大的影響。要想獲得最佳性能,關鍵是要深入了解所用處理器核的結構特點,再據其采用合適的芯片架構。
    (2)存儲器速度:存儲器速度尤其是Flash速度也是限制SoC性能的一個關鍵因素。存儲器速度越慢,CPU需要插入的等待周期就越多,效率就越低。這一點在上述自主設計的SoC中就不夠好,需要在Flash部分作大的改進。而STM32在這方面做得很好,通過加大存儲器位寬和增加緩沖器使Flash不會成為芯片性能的瓶頸。
    (3)工藝:工藝對存儲器速度及芯片整體性能的影響是顯而易見的,更先進的工藝意味著更高的性能。但提升工藝同時意味著增加流片成本,故需根據實際情況考慮。
    (4)主頻:主頻越高,意味著同一段時間內可以執行更多的指令,即測試結果CoreMark總分提升,但CoreMark/MHz沒變。此外,若Flash速度跟不上,則會將最高性能限制住,提升主頻不但不會提高整體性能,反而還會降低效率,即測試結果CoreMark總分不變,CoreMark/MHz反而降低。
    本文主要研究了基于ARM Cortex-M3核的SoC架構設計,重點分析了處理器核的總線接口對芯片架構設計的影響。采用CoreMark程序,對實驗室自主設計的一款Cortex-M3核SoC以及意法半導體的STM32F103 MCU進行了性能測試及分析,說明了芯片架構對性能的影響。最后,對影響SoC性能的因素作了總結。對高性能的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.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧洲综合另类| 亚洲国产精品va在看黑人| 国产一区二区无遮挡| 国产精品美女久久| 欧美色偷偷大香| 欧美日韩国产色视频| 欧美成人r级一区二区三区| 老司机精品久久| 久热爱精品视频线路一| 久久久久久久一区二区| 久久精品国产第一区二区三区最新章节 | 亚洲最新视频在线播放| 亚洲片在线资源| 亚洲精品国产日韩| 亚洲久久一区二区| 洋洋av久久久久久久一区| 9色精品在线| 亚洲天堂激情| 性欧美激情精品| 久久国产精品黑丝| 久久午夜精品| 欧美电影在线观看| 欧美日韩一区三区四区| 国产精品啊v在线| 国产模特精品视频久久久久| 国产日韩欧美一区| 在线观看一区欧美| 亚洲精品视频在线播放| 在线视频亚洲一区| 午夜一区二区三区在线观看| 久久精品国产v日韩v亚洲| 亚洲国产三级| 一区二区日韩| 欧美一级艳片视频免费观看| 久久乐国产精品| 欧美激情导航| 国产精品乱看| 一区二区在线视频播放| 亚洲久久成人| 午夜精品久久久久久久 | 亚洲国产网站| 99视频国产精品免费观看| 亚洲综合不卡| 久久久久久电影| 欧美成人午夜激情视频| 欧美午夜一区二区| 国产亚洲aⅴaaaaaa毛片| 亚洲电影免费观看高清| 99热这里只有精品8| 午夜久久tv| 日韩亚洲综合在线| 欧美影院精品一区| 欧美高清成人| 国产精品视频成人| 影音先锋一区| 亚洲一级在线观看| 亚洲福利视频免费观看| 亚洲午夜未删减在线观看| 久久激情综合| 欧美日韩在线播| 狠狠噜噜久久| 亚洲午夜国产成人av电影男同| 欧美在线综合| 亚洲午夜一区二区| 毛片一区二区三区| 国产精品久久婷婷六月丁香| 在线播放不卡| 亚洲影院一区| 一本色道久久综合狠狠躁篇的优点| 欧美在线视频不卡| 欧美日韩国产在线| 国产在线观看一区| 日韩午夜在线电影| 亚洲国产精品久久久久秋霞影院 | 亚洲午夜视频| 亚洲精品日日夜夜| 性做久久久久久| 欧美精品九九99久久| 国产视频在线一区二区 | 一区二区毛片| 亚洲激情视频在线播放| 午夜电影亚洲| 欧美高清你懂得| 狠狠爱成人网| 午夜精品在线看| 亚洲一区二区视频在线| 你懂的一区二区| 国内精品视频在线观看| 中文在线一区| 亚洲视频狠狠| 欧美国产精品| 在线播放不卡| 久久精品国产久精国产一老狼 | 国产啪精品视频| 亚洲天堂av图片| 一区二区三区 在线观看视| 巨胸喷奶水www久久久免费动漫| 国产精品欧美一区二区三区奶水 | 亚洲电影成人| 久久精品日韩一区二区三区| 欧美在线免费| 国产伦精品一区二区三区高清版| 日韩西西人体444www| 亚洲精品视频中文字幕| 美女黄毛**国产精品啪啪| 国产一区二区三区黄| 亚洲欧美日韩精品久久| 亚洲欧美日韩视频一区| 欧美日韩午夜剧场| 亚洲精品五月天| 日韩午夜激情| 欧美日本一区| 亚洲精品乱码久久久久久久久| 91久久中文字幕| 女仆av观看一区| 在线播放不卡| 91久久精品一区| 欧美福利小视频| 亚洲国产精品一区二区尤物区| 91久久亚洲| 欧美国产日韩一区二区在线观看 | 欧美日韩高清一区| 亚洲人成毛片在线播放女女| 亚洲人成在线观看网站高清| 免费永久网站黄欧美| 亚洲成人在线观看视频| 亚洲精品国产精品乱码不99 | 欧美综合二区| 国产在线欧美日韩| 欧美在线视频在线播放完整版免费观看 | 亚洲国产精品小视频| 久久综合成人精品亚洲另类欧美| 国内自拍亚洲| 亚洲国产三级| 欧美日本在线观看| 99re热这里只有精品视频| 亚洲一区二区三区国产| 国产精品成人av性教育| 亚洲综合首页| 久久欧美中文字幕| 亚洲国产精品视频一区| 中国女人久久久| 国产精品久久久久久久久免费 | 欧美综合二区| 欧美aa在线视频| 日韩一区二区免费高清| 亚洲夜间福利| 国产婷婷成人久久av免费高清| 久久精品一本| 欧美精品一区二区三区在线播放 | 国产精品免费网站| 欧美一区二区三区视频免费| 卡通动漫国产精品| 日韩亚洲欧美一区二区三区| 香蕉成人久久| 激情综合网激情| 一本色道久久88综合亚洲精品ⅰ| 欧美日韩综合视频| 欧美亚洲一区| 欧美国产日韩亚洲一区| 在线视频中文亚洲| 久久久99免费视频| 亚洲激情视频在线| 午夜视频一区在线观看| 国产一区深夜福利| 99在线视频精品| 国产精品萝li| 亚洲激情视频在线播放| 欧美日韩在线视频一区二区| 欧美一级成年大片在线观看| 欧美高清免费| 午夜国产精品视频| 欧美电影打屁股sp| 亚洲综合国产精品| 欧美成人一区在线| 午夜精品久久久99热福利| 欧美精品日韩一本| 欧美伊人久久| 国产精品福利影院| 91久久精品国产91久久| 国产精品视频一| 99这里有精品| 狠狠噜噜久久| 午夜一区在线| 亚洲乱码日产精品bd| 久久麻豆一区二区| 中文日韩欧美| 欧美黄色aa电影| 欧美在线视频a| 国产精品久久久久久久久久免费 | 久久久久久久国产| 夜夜精品视频一区二区| 久久综合色播五月| 亚洲综合导航| 欧美深夜影院| 亚洲人成网站色ww在线| 国产一区二区三区黄视频| 亚洲一区bb| 亚洲精品久久久久| 老司机精品福利视频|