《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 多核系統中提升啟動速度之策略
多核系統中提升啟動速度之策略
來源:電子技術應用2014年第3期
王 江
(上海貝爾股份有限公司N&P,上海201206)
摘要: 快速啟動能力是衡量產品性能的一個重要指標。針對應用越來越廣泛的多內核處理器,從優化啟動流程、改進模塊的加載和初始化、設計內核間通信機制等方面,介紹了縮短啟動時間的一些經驗,特別是啟動任務的分配、串行執行到并行執行的轉變、內存的分階段初始化、PCIe總線的快速初始化等技巧。實際測試表明,新策略不僅有效地縮短了啟動時間,而且具有易移植、可擴展等優點。
中圖分類號: TP338.2
文獻標識碼: A
文章編號: 0258-7998(2014)03-0025-04
Strategy of accelerating booting process in multi-core systems
Wang Jiang
Alcatel-Lucent Shanghai Bell Co.,Ltd.N&P,Shanghai 201206,China
Abstract: The ability of fast boot is one of the key metrics of product performance. As multi-core microprocessors are being employed widely in more and more applications, the paper introduces some experiences to shorten the boot time, including optimizing boot process, improving the loading and initialization method of modules, designing communicating mechanism between cores, etc. It also elaborates some techniques, such as boot tasks assignment and parallelization, memory division and initialization, fast-initialization of PCIe bus. Experiments verify that the new strategy can not only shorten the boot time, but also be transplantable and scalable.
Key words : boot;PCIe;multi-core microprocessor

    快速啟動能力是衡量產品性能的一個重要指標。無論是消費類電子產品(例如手機、電腦、電視機),還是專業的通信電子設備(例如示波器、網關、服務器),啟動速度快無疑能給用戶留下美好的第一印象。雖然電子設備的“心臟”越來越多地選用了多核處理器,但是目前大部分啟動代碼還停留在單內核處理器的思維框架中,沒有能夠充分利用多內核處理器的長處,而越來越多的外部器件卻在另一方面悄悄地延長了啟動時間。
    為了彌補這一不足,突破傳統單核啟動的思維框架,本文以一個典型的嵌入式系統為例,對加快系統啟動速度進行了研究。
1 典型的系統架構和啟動過程
1.1 系統架構

    智能通信電子產品的典型架構是以CPU(中央處理器)為核心,根據產品需求輔以內存、硬盤、網卡、USB、串口等各種外設,如圖1所示。

    系統的核心是飛思卡爾(FreeScale)公司開發的32位PowerPC架構處理器MPC8572E[1],主頻最高可達1.333 GHz。芯片集成了2個完全相同的高性能e500內核,每個內核各包含32 KB一級指令緩存和32 KB一級數據緩存。芯片還集成了豐多彩富的內部功能模塊和外設接口,包括:2個內核共享的1 MB容量的二級緩存、2個64位DDR2/DDR3內存控制器、1個可編程的中斷控制器、1個安全引擎、2個I2C總線控制器、2個異步串口控制器、1個增強型本地總線控制器、4個支持10/100/1 000 MB/s的以太網接口、3個符合PCIe 1.0a標準的PCIe接口等。
    CPU、內存、閃存、串口和網口組成了一個常見的最小系統,其他模塊則是錦上添花。處理器通過PCIe接口連接SATA/SAS控制器(例如LSI公司的SAS2008芯片),再外接SATA/SAS硬盤。實時時鐘芯片(RTC)和溫度感應器通過I2C總線與處理器相連。FPGA用于輔助CPU工作。這個系統具有強大的處理能力和靈活的可擴展性,適合于路由器、網關等多種應用場合。其他智能電子設備的控制系統的架構也大致如此,只是CPU可能替換成ARM、MIPS或x86等體現結構的處理器,外圍器件有所增減,但是總體框架和啟動過程大同小異。
1.2 啟動過程
    該系統由業界常用的U-BOOT[2]引導啟動。圖2顯示了多內核處理器系統中啟動代碼的工作流程。上電或重啟后,內核0根據配置引腳的設定,選擇從閃存中讀取啟動代碼。其他內核保持Reset狀態。內核0依次初始化了e500內核、第一個串口、一級數據緩存和指令緩存、二級緩存、I2C總線設備、內存。因為初始化內存時CPU需要訪問內存條上的SPD(SPD是存儲內存條規格參數的EEPROM芯片),所以I2C總線的初始化必須在內存初始化之前完成。之所以較早地初始化串口,是為了盡早建立人機交互的環境,以方便用戶判斷系統啟動到各個階段的狀態。然后,內核從閃存中讀取FPGA配置文件并且下載到FPGA芯片中,再初始化PCIe設備、網口、SAS/SATA控制器、硬盤和文件系統。接著,內核0釋放其他內核的Reset信號。

    其他內核也從閃存中讀取啟動代碼,依次初始化e500內核、一級數據緩存和指令緩存,然后通過共享內存的方式(也可以通過內部寄存器或者內核間中斷等方式)通知內核0“我準備就緒了。”一旦內核0發現其他內核準備就緒后,就從硬盤中讀取操作系統的鏡像文件,校驗正確后加載執行。如果內核0發現其他內核啟動失敗,則重新發出Reset信號,要求其他內核重復初始化的過程。
    經過測試,整個系統的啟動時間約9 s。表1列舉了耗時超過0.1 s的模塊,其他模塊的耗時微乎其微,可以忽略不計。從啟動過程可以看出,所有的初始化任務基本上都由內核0承擔,總的啟動時間是各模塊初始化時間的總和。顯然,這種傳統的多核啟動方式沒有利用多內核的優勢,還停留在單核啟動的框架中。
2 啟動過程的改進
    在多核系統中,為了高效地利用多個核的并行工作,啟動代碼的設計需要從傳統意義上的任務串行機制轉換到任務并行機制,并且要注重多內核間的協作。改進后的啟動方案不僅充分利用了多內核的優勢,將一些模塊的初始化任務分配給了其他內核,而且優化了一些模塊的初始化方法,建立了內核間有效的通信機制。
    如何將模塊分配給其他內核初始化,分配原則之一是獨立性。如果該模塊和其他模塊沒有相互依賴關系,則可以將該模塊分配給其他內核加載。原則之二是耗時的模塊盡量分配給不同的內核加載,即每個核承擔模塊的總耗時盡量平均,盡可能減少等待時間。據此優化為圖3所示的啟動流程。

    啟動過程中,內核0仍然扮演主力隊員的角色,首先初始化e500、串口、一級緩存和二級緩存,然后只初始化一部分內存,而不是全部內存。這一部分內存姑且稱為基本內存,即啟動代碼所要用到的內存,本系統中是32 MB。因為內存的初始化比較費時,主要時耗不在內存控制器的初始化上,而在于將所有的4 GB內存清零,所以把內存劃分為一大一小兩部分初始化,將容量大的那部分內存分配給其他內核初始化,有利于提升整體的啟動速度。
    完成內核、串口1和基本內存的初始化之后,內核0先把啟動代碼從閃存復制到內存中,再釋放其他內核的Reset信號。其他內核立刻初始化e500內核和內嵌的一級緩存,然后通知內核0“我已經準備好了。”內核0得知其他內核準備就緒了,就開始分配其余的初始化任務。其他內核依次初始化剩余的大部分內存,下載FPGA的配置文件,初始化網口,最后等待操作系統。與此同時,內核0初始化PCIe設備、SAS/SATA控制器及磁盤,加載文件系統,最后從磁盤中讀入操作系統文件,計算校驗和,引導操作系統的啟動。
    除了改進啟動流程之外,充分利用硬件特性,優化一些模塊的初始化方法和工作機制,設計高效的內核間通信機制,也可以提升啟動速度。
    (1)內存初始化。內存初始化的主要耗時動作是清零。目前主流的處理器都集成了DMA(直接存儲器訪問)引擎,DMA引擎就是為了降低CPU負載而設計的。測試發現,與處理器直接清零內存操作比較,采用DMA方式,速度可以提升一倍。并且,在DMA引擎清零的同時,CPU還可以承擔其他工作,例如下載FPGA配置文件。此外,如果內存設置為交織模式,其吞吐量可以翻番,從而減少耗時,進一步提升啟動速度。
    (2)PCIe初始化。PCIe[3]總線在軟件上兼容PCI、PCI-x總線,PCI或者PCI-x器件可以通過PCIe橋設備連接到PCIe的總線拓撲中。PCIe總線的拓撲結構像一顆樹,最多允許擁有256條總線,每條總線上最多允許32個設備,每個設備上最多可集成8個功能模塊。一般采用深度遞歸算法,從根節點出發,遍歷整棵樹,找到存在的有效設備并初始化。初始化的操作就是分配總線號、設備號、中斷號和地址空間等。其中,PCIe拓撲結構的遍歷過程是比較耗時的一個操作。
    實際上,對于電子產品而言,一旦電路板裝配好了,除了PCIe插槽上的設備未定之外,其他PCIe設備都固定了,是已知數,所以對于已知設備可以省略掃描這個步驟。它的相關信息可以存儲在閃存的指定區域,啟動代碼直接從這個區域讀取。如果電路板上沒有PCIe插槽,則整個PCIe拓撲結構的信息都可以保存在閃存中,徹底省略了遍歷過程,耗時微乎其微。對于插槽上的未定設備,深度遍歷的出發點可以從根節點出發改為從各個PCIe插槽出發,大幅縮小遍歷范圍,從而節省了大量時間。
    (3)簡單高效的基于共享內存的內核間通信機制。內核之間為了緊密配合,相互間需要傳遞一些命令和數據,雖然有些處理器擁有特別的內核間的通信方式,例如博通公司XLR系統處理器的消息環機制[4](Message Ring),但是共享內存是一個比較通用的方法,不僅適合于內核之間,也適合于處理器之間以及處理器與外設之間的通信,可移植性較強?;诠蚕韮却?,設計一個簡單高效的通信機制,有助于內核0與其他內核之間命令的上行下達。
    因為啟動過程中內核0起主導作用,所以在內核0和其他每個內核之間都創建了一條通信通道,組成一個星形結構:內核0在中間,其他內核在四周,如圖4所示。每條通道由收、發2個隊列組成:內核0只能寫發送隊列,其他內核只能讀發送隊列;接收隊列的操作相反,內核0只能讀接收隊列,其他內核只能寫接收隊列。
    讀寫隊列的基本單位是數據塊,即每次從隊列中讀取一個或多個數據塊,或者往隊列中寫入一個或多個數據塊。數據塊由序列號、命令、數據長度、數據等域組成。發送隊列數據塊中的序列號是偶數,而接收隊列數據塊的序列號是奇數,每一個發送數據塊都對應一個響應的接收數據塊,它們的序列號相差1。發送隊列數據塊中的數據域是與命令相關的參數,接收隊列數據塊中的數據域是命令的執行結果。

 

 

    借助這個收發隊列通信機制,內核0可以便捷地把初始化等任務分派給其他內核并得到反饋,有利于系統的可擴展性。例如系統中增加了一個新器件,內核0可以把新器件的初始化工作分配給一個比較空閑的內核,從而最大限度地減少對整個啟動時間的影響。
    經過啟動流程的改進、模塊加載和初始化方式的優化、內核間高效通信機制的設計等工作,系統的啟動時間大約縮短了50%,達到了比較滿意的結果。目前多處理器的發展和應用如火如荼,希望本文所介紹的經驗對各種體系結構的多內核處理器的啟動代碼設計都有所幫助。
參考文獻
[1] FreeScale Semiconductor.MPC8572E PowerQUICC III  integrated processor hardware specifications,Rev.5[Z].2011.
[2] DENK W.The universal boot loader[EB/OL].[2013-07]. http://www.denx.de/wiki/DULG/WebHome.
[3] PCISIG.PCI Express base specification,revision 3.0[Z]. 2008.
[4] Broadcom Inc..XLR processor family data sheet,revision 2.00[Z].2008.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          狼人社综合社区| 亚洲国产成人不卡| 亚洲一区二区综合| 欧美亚洲午夜视频在线观看| 亚洲精品免费在线播放| 亚洲精品一区中文| 激情视频一区二区三区| 国产精品任我爽爆在线播放| 国产精品免费观看在线| 国产在线视频欧美一区二区三区| 在线观看亚洲视频啊啊啊啊| 欧美日韩在线不卡一区| 国产欧美日韩视频| 亚洲黄色有码视频| 久久久久天天天天| 久久av老司机精品网站导航| 欧美gay视频| 日韩视频精品| 亚洲最新色图| 午夜精品久久久久久久久久久| 99精品国产一区二区青青牛奶| 欧美日韩一区二区三区在线观看免| 亚洲午夜精品久久久久久app| 欧美激情成人在线| 国产亚洲激情| 亚洲欧美日韩精品综合在线观看| 日韩午夜在线观看视频| 久久久久这里只有精品| 蜜桃视频一区| 亚洲一区二区三区视频播放| 99www免费人成精品| 亚洲宅男天堂在线观看无病毒| 国产精品久久久久aaaa| ●精品国产综合乱码久久久久| 亚洲三级色网| 国产在线视频欧美一区二区三区| 99人久久精品视频最新地址| 亚洲精品网站在线播放gif| 国产一区二区观看| 免费视频最近日韩| 国产伦精品一区二区三区照片91| 亚洲经典三级| 久久三级视频| 99re热这里只有精品视频| 一区免费观看视频| 国产一区二区三区四区五区美女| 国产欧美日韩专区发布| 日韩视频永久免费| 久色成人在线| 欧美大胆a视频| 久久久久国产一区二区| 亚洲一级高清| 亚洲欧美日韩综合| 国产精品素人视频| 欧美中文字幕在线视频| 久久亚裔精品欧美| 欧美二区在线| 在线综合欧美| 99亚洲精品| 最近中文字幕mv在线一区二区三区四区| 一区二区三区视频在线观看| 久久欧美中文字幕| 亚洲精品乱码久久久久久| 久久久综合网| 亚洲美女区一区| 亚洲狼人精品一区二区三区| 国产精品乱子乱xxxx| 一区二区高清在线| 久久精品视频在线免费观看| 欧美日韩福利视频| 亚洲一区在线免费观看| 在线免费日韩片| 国产精品久久久91| 在线一区二区三区做爰视频网站| 国产精品美女久久久久久免费| 亚洲黑丝在线| 一区二区三区波多野结衣在线观看| 国产精品久久久久久久久久妞妞| 国产亚洲精品激情久久| 国产精品一区二区三区久久久| 欧美性事免费在线观看| 一区二区三区欧美视频| 国产欧美日韩一区二区三区| 欧美日韩一级黄| 亚洲综合国产| 欧美久久久久| 亚洲娇小video精品| 日韩视频一区二区三区在线播放免费观看| 亚洲电影免费在线观看| 欧美成年人网| 亚洲精品字幕| 亚洲欧美精品伊人久久| 欧美性猛交xxxx乱大交退制版| 久久精品人人做人人爽| 欧美激情一区二区三区| 国产日韩精品综合网站| 中文欧美日韩| 亚洲日本成人在线观看| 一区二区福利| 性伦欧美刺激片在线观看| 亚洲区免费影片| 欲色影视综合吧| 国产综合欧美| 亚洲人成毛片在线播放女女| 欧美国产日韩一二三区| 最新亚洲电影| 国产欧美日本一区视频| 久久精品人人| 久久久久久日产精品| 尤物yw午夜国产精品视频明星| 亚洲精品麻豆| 国产精品视频网| 欧美激情视频免费观看| 亚洲激情网站免费观看| a4yy欧美一区二区三区| 伊人成人在线| 欧美+亚洲+精品+三区| 亚洲午夜女主播在线直播| 国产欧美日韩专区发布| 久久久久久午夜| 极品日韩久久| 国产精品久久久久国产a级| 亚洲一区国产视频| 亚洲精品美女| 欧美性jizz18性欧美| 99re热这里只有精品免费视频| 欧美一区国产二区| 蜜桃av一区二区在线观看| 亚洲国产成人久久综合一区| 亚洲电影欧美电影有声小说| 欧美一级视频一区二区| 国产精品久久九九| 亚洲第一页自拍| 欧美性猛片xxxx免费看久爱| 销魂美女一区二区三区视频在线| 国产精品一二一区| 欧美一区二区三区久久精品茉莉花| 亚洲激情在线视频| 亚洲全部视频| 欧美三日本三级少妇三2023| 欧美aⅴ99久久黑人专区| 国内久久婷婷综合| 欧美日韩国产精品自在自线| 亚洲精品专区| 欧美freesex交免费视频| 国产精品v亚洲精品v日韩精品| 亚洲高清不卡在线观看| 亚洲欧美激情在线视频| 亚洲香蕉伊综合在人在线视看| 韩日欧美一区二区三区| 亚洲综合精品| 亚洲国产一区二区视频| 亚洲午夜日本在线观看| 欧美日韩亚洲免费| 亚洲在线免费视频| 老司机亚洲精品| 国产精品日韩欧美一区二区| 国产精品久久久久久久久果冻传媒| 欧美区高清在线| 国产亚洲精品综合一区91| 欧美日韩视频不卡| 香港久久久电影| 一区二区毛片| 久久视频在线视频| 久久福利影视| 欧美亚洲一区二区在线观看| 欧美日韩成人网| 一区二区三区精品国产| 久久久99免费视频| 国产一区二区剧情av在线| 亚洲国产导航| 欧美一区二区三区四区夜夜大片| 欧美日韩一视频区二区| 久久久久国产精品一区二区| 久久九九国产精品怡红院| 亚洲欧美日韩综合国产aⅴ| 久久精品国产久精国产思思| 亚洲一区二区免费看| 久久久久女教师免费一区| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美日韩一区二区精品| 91久久中文字幕| 国产原创一区二区| 午夜精品999| 午夜亚洲影视| 男男成人高潮片免费网站| 欧美综合77777色婷婷| 欧美视频导航| 欧美日韩国产电影| 欧美高清一区| 久久伊人精品天天| 亚洲自拍都市欧美小说| 一区二区av| 老司机午夜精品视频在线观看| 亚洲欧美日韩专区| 国产日韩欧美综合| 欧美日韩成人在线视频| 欧美一区二区三区精品| 免费成人网www| 亚洲精品视频在线播放| 欧美美女操人视频| 免费亚洲电影在线观看| 久久av资源网站| 亚洲第一天堂无码专区| 国产欧美日韩视频一区二区三区| 蜜桃久久av| 国产精品久久国产精品99gif| 久久国产夜色精品鲁鲁99| 欧美在线二区| 亚洲专区国产精品| 国产视频一区在线观看一区免费| 欧美日韩免费观看一区| 在线视频国产日韩| 久久免费精品视频| 欧美国产日韩a欧美在线观看| 亚洲欧美久久| 精品成人国产| 亚洲国产va精品久久久不卡综合| 欧美中文字幕在线观看| 欧美日韩久久不卡| 欧美大胆人体视频| 欧美 亚欧 日韩视频在线| 国产日韩欧美日韩大片| 国产欧美日韩专区发布| 亚洲日本中文字幕免费在线不卡| 国产精品外国| 先锋影音久久| 一区二区精品| 国产精品日韩一区| 国产一区二区欧美| 欧美精品日韩精品| 国产精品久久久久7777婷婷| 狠狠干成人综合网| 1024亚洲| 亚洲视频香蕉人妖| 亚洲欧美日韩在线综合| 亚洲第一中文字幕在线观看| 性伦欧美刺激片在线观看| 美女日韩在线中文字幕| 国产日韩视频一区二区三区| 国产精品久久久久一区二区| 亚洲电影中文字幕| 久久精品国产一区二区三区| 欧美一区午夜视频在线观看| 欧美特黄a级高清免费大片a级| 国产精品毛片a∨一区二区三区|国| 亚洲精品影视| 亚洲人成绝费网站色www| 国产精品一级久久久| 国产精品电影在线观看| 久久久久久网| 国产一区二区0| 亚洲男女自偷自拍图片另类| 欧美午夜电影在线观看| 99香蕉国产精品偷在线观看| 美女日韩在线中文字幕| 在线观看福利一区| 久久精品免视看| 国产麻豆精品theporn| 精品盗摄一区二区三区| 欧美四级在线| 亚洲免费影视| 国产欧美日韩亚洲一区二区三区| 欧美日韩视频在线观看一区二区三区| 欧美在线1区| 久久久蜜桃精品| 国产精品综合色区在线观看| 伊人成年综合电影网| 亚洲精品国产精品乱码不99按摩| 最新69国产成人精品视频免费| 欧美激情按摩在线| 欧美高清hd18日本| 99av国产精品欲麻豆| 欧美日韩国产三级| 宅男噜噜噜66一区二区66| 18成人免费观看视频| 欧美天堂亚洲电影院在线观看| 1769国内精品视频在线播放| 美女性感视频久久久| 欧美国产激情二区三区| 亚洲国产欧美久久| 欧美黄色成人网| 亚洲电影免费观看高清完整版在线观看| 国产精品日韩一区二区三区| 欧美在线电影| 欧美多人爱爱视频网站| 亚洲国产婷婷香蕉久久久久久99| 亚洲国产视频一区二区| 中文av一区二区| 国产在线不卡视频| 欧美日韩在线观看一区二区三区| 国产欧美亚洲日本| 欧美日本三级| 国产亚洲欧洲一区高清在线观看| 久久久久www| 日韩视频永久免费观看| 欧美在线欧美在线| 亚洲东热激情| 欧美精品入口| 国产网站欧美日韩免费精品在线观看| 久久久精品免费视频| 欧美伊久线香蕉线新在线| 亚洲欧美精品| 国产精品多人| 欧美日韩视频在线| 国产精品爽爽爽| 国产一二三精品| 91久久国产自产拍夜夜嗨| 麻豆九一精品爱看视频在线观看免费| 亚洲综合第一| 久久久久国色av免费看影院| 欧美日韩情趣电影| 国产精品中文字幕在线观看| 精品51国产黑色丝袜高跟鞋| 亚洲黄色在线视频| 激情91久久| 亚洲欧美日韩综合国产aⅴ| 国产乱码精品一区二区三区忘忧草| 伊大人香蕉综合8在线视| 国产精品v日韩精品v欧美精品网站| 亚洲影院免费观看| 午夜亚洲伦理| 久久综合九色综合欧美就去吻| 欧美手机在线视频| 欧美日韩国产成人在线免费| 亚洲免费成人| 国内精品久久久久国产盗摄免费观看完整版| 夜夜嗨一区二区|