《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于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亚洲国产精品_日韩亚洲一区二区
久久久精品一区二区三区| 欧美了一区在线观看| 99精品欧美一区| 最新国产成人在线观看| 久久精品免费播放| 欧美伊人精品成人久久综合97| 亚洲一区二区三区精品在线观看| 亚洲看片免费| 99成人在线| 99伊人成综合| 在线亚洲电影| 亚洲天堂av图片| 亚洲欧美久久久| 午夜亚洲激情| 久久高清免费观看| 久久精品视频99| 亚洲福利在线视频| 最新国产成人在线观看| 日韩亚洲欧美成人一区| 一区二区三区高清视频在线观看 | 午夜日韩在线观看| 午夜精品视频一区| 久久不射电影网| 狂野欧美性猛交xxxx巴西| 美女精品国产| 欧美电影打屁股sp| 欧美日韩精品在线视频| 国产精品久久91| 国产伦精品一区二区三区四区免费 | 亚洲免费视频一区二区| 欧美一区不卡| 亚洲精品一区二区三区四区高清 | 欧美手机在线视频| 国产精品爽黄69| 国产综合婷婷| 亚洲黄一区二区三区| 一区二区欧美精品| 性欧美超级视频| 亚洲日本va午夜在线影院| 一本色道**综合亚洲精品蜜桃冫| 亚洲欧美日韩成人高清在线一区| 久久精品国产一区二区三| 奶水喷射视频一区| 国产精品九色蝌蚪自拍| 国内外成人免费激情在线视频| 亚洲国产精品久久久久| 亚洲图中文字幕| 久久精品国产清高在天天线| 日韩天堂av| 久久不射电影网| 欧美精品激情在线| 国产精品爽爽爽| 亚洲福利视频一区| 亚洲一级二级| 亚洲欧洲日本一区二区三区| 亚洲一区二区三区四区在线观看| 久久九九免费视频| 欧美日韩第一区日日骚| 国产裸体写真av一区二区| 亚洲第一视频| 亚洲一区免费网站| 亚洲国产婷婷| 小嫩嫩精品导航| 欧美激情视频在线免费观看 欧美视频免费一 | 久久亚洲午夜电影| 欧美日韩中文字幕日韩欧美| 国产亚洲美州欧州综合国| 亚洲看片免费| 久久国产精品亚洲77777| 亚洲五月婷婷| 久久午夜精品| 国产精品每日更新在线播放网址| 亚洲男同1069视频| 亚洲国产精品一区二区www| 亚洲一区免费| 你懂的国产精品永久在线| 国产精品私拍pans大尺度在线| 亚洲国产裸拍裸体视频在线观看乱了中文 | 欧美怡红院视频| 欧美黄色影院| 韩国成人精品a∨在线观看| 一本色道久久综合精品竹菊| 亚洲福利国产| 久久成人av少妇免费| 欧美日韩亚洲国产一区| 在线国产精品一区| 午夜亚洲性色福利视频| 亚洲字幕一区二区| 欧美伦理在线观看| 在线观看的日韩av| 性欧美1819性猛交| 亚洲免费视频观看| 欧美高清在线一区| 一区二区亚洲| 欧美一区二区三区四区在线| 亚洲欧美日韩成人| 欧美三级不卡| 亚洲精品在线免费| 亚洲欧洲在线播放| 久久伊伊香蕉| 国产一区久久久| 午夜在线观看欧美| 亚洲欧美www| 国产精品国色综合久久| 一本色道久久综合狠狠躁的推荐| 一区二区三区四区国产精品| 欧美黄色aaaa| 亚洲三级视频在线观看| 日韩亚洲精品在线| 欧美激情一区| 亚洲人成艺术| 99视频一区二区三区| 欧美精品在线观看播放| 亚洲国产三级网| 日韩午夜三级在线| 欧美紧缚bdsm在线视频| 亚洲人久久久| 99在线精品免费视频九九视| 欧美精品久久99久久在免费线| 亚洲激情另类| 一本色道精品久久一区二区三区 | 99精品国产热久久91蜜凸| 一本一本a久久| 欧美日韩另类一区| 夜色激情一区二区| 亚洲欧美激情精品一区二区| 国产精品久久久久aaaa九色| 亚洲综合色在线| 久久精品国产77777蜜臀| 国产一级久久| 91久久精品www人人做人人爽| 欧美成人一区在线| 亚洲精品一区二区网址| 亚洲一区视频| 国产精品一区二区三区久久| 欧美一区二区三区视频在线| 久久在线免费观看| 91久久国产综合久久蜜月精品| 99国内精品久久| 国产精品成人观看视频免费 | 韩国av一区二区三区| 亚洲国产一区视频| 欧美日韩国产一区二区三区| 妖精成人www高清在线观看| 欧美一区二区视频免费观看| 国产一区视频在线观看免费| 亚洲国产精品一区二区第四页av | 午夜久久福利| 久久久亚洲高清| 亚洲经典在线看| 亚洲视频每日更新| 国产精品揄拍一区二区| 亚洲第一黄网| 欧美精品日韩www.p站| 亚洲在线一区| 久久野战av| 99国产精品一区| 久久国产毛片| 亚洲成人自拍视频| 亚洲视频综合| 国产亚洲欧美激情| 日韩视频二区| 国产日韩高清一区二区三区在线| 亚洲成人直播| 欧美日韩在线不卡一区| 欧美一区激情| 欧美精品三级| 香蕉久久a毛片| 欧美激情一区二区三区成人 | 亚洲成人中文| 欧美色播在线播放| 欧美在线看片| 亚洲一区二区三区高清不卡| 国产午夜久久久久| 日韩一级黄色片| 国产日韩欧美中文| 亚洲在线成人精品| 欧美成人一区二区三区在线观看 | 中文国产成人精品| 久久天天躁夜夜躁狠狠躁2022 | 亚洲色无码播放| 久久综合色影院| 亚洲性感激情| 欧美成人精品高清在线播放| 亚洲午夜精品一区二区| 你懂的网址国产 欧美| 亚洲在线第一页| 欧美日韩123| 久久成人av少妇免费| 欧美日精品一区视频| 亚洲成色精品| 国产精品卡一卡二| 亚洲免费大片| 激情另类综合| 亚洲欧美视频在线| 亚洲人在线视频| 久久精品一区四区| 在线亚洲一区| 欧美激情国产精品| 久久国产精品99精品国产|