<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 將大小計(jì)算引擎完美地整合在-起

          將大小計(jì)算引擎完美地整合在-起

          作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          本文介紹了ARM最新型的Cortex-A7+Cortex-A15處理器的異構(gòu)多核配置,以實(shí)現(xiàn)性能功耗的最優(yōu)。在當(dāng)今移動(dòng)世界里,特別是在超便攜移動(dòng)世界(尤以智能手機(jī)和平板電腦為主)里出現(xiàn)了一些令人抓狂的類似事件。這些手機(jī)運(yùn)行或設(shè)想運(yùn)行的應(yīng)用程序類型,像現(xiàn)實(shí)增強(qiáng)和內(nèi)容創(chuàng)建,使用更大屏幕的設(shè)備需要在極其重要的移動(dòng)熱能和電池限制條件下使處理能力的性能得到巨大的提升。由于這些設(shè)備還長期處于開機(jī)狀態(tài),并時(shí)常與 twitter feeds和facebook保持連接并推送電子郵件更新,因此它們還需要連續(xù)的低強(qiáng)度性能。最后,由于這些設(shè)備正在成為通信、消費(fèi)和計(jì)算平臺(tái)的主流設(shè)備,因此我們希望能夠延長電池壽命來維持我們終日繁忙的工作。

          汽車設(shè)計(jì)方面,即使您仍然希望將大型車的高性能與經(jīng)濟(jì)轎車的高能效合而為一,但您在組合大小引擎時(shí)會(huì)發(fā)現(xiàn)第二個(gè)引擎太重了,這種做法太不現(xiàn)實(shí)。

          本文引用地址:http://www.ex-cimer.com/article/201611/317420.htm

          而在移動(dòng)CPU世界里,我們已運(yùn)用了這種概念:手機(jī)可以在同一芯片上集成CPU、圖形處理器、視頻引擎和音頻引擎等。每一組件可以在每單位的能耗中提供最大的性能和功能。因此如果在"V8引擎"CPU 中增加其他經(jīng)濟(jì)型 CPU 引擎,那么就會(huì)產(chǎn)生芯片占用面積上的投資回報(bào)率的問題。但如果添加 ARM 的最新款 ARM Cortex-A7 CPU,即我們最小型的、最節(jié)能的應(yīng)用處理器到至高端的 ARM Cortex-A15 CPU,則可以實(shí)現(xiàn)性價(jià)比最優(yōu)的理想產(chǎn)品,這具有非常重要的意義。我們稱此概念為 big.LITTLE 處理:即將小型的、高能效的 ARM CPU 與完全兼容的高性能 ARM CPU 緊密地同步整合在一起。Cortex-A7 處理器以作為 big.LITTLE 對中的一款小型 CPU 與高端 Cortex-A15 CPU 完美地整合在一起為宗旨而設(shè)計(jì)。我將在本次簡述中與您分享我們的實(shí)現(xiàn)過程。

          我們首先要確保在引擎切換過程中不會(huì)出現(xiàn)"間歇性的運(yùn)行狀態(tài)"。

          在 big.LITTLE處理中,就意味著必須確保小型CPU和大型CPU之間具有百分之百的軟件兼容性。從用戶和操作系統(tǒng)軟件的角度而言,大小內(nèi)核必須保持外觀上的一致性。具體來說,就是在架構(gòu)上保持一致。也就是說,Cortex-A15 和 Cortex-A7 處理器必須具有完全相同的指令、數(shù)據(jù)類型和尋址模式,并且它們能夠產(chǎn)生相同的結(jié)果。在設(shè)計(jì)的其他領(lǐng)域也必須保持一致。如緩存線大小、40位物理地址空間、硬件虛擬化以及 128b AMBA 4 本地總線接口。

          第二個(gè)關(guān)鍵要素就是確保具有最優(yōu)化的引擎…即在小型引擎上實(shí)現(xiàn)每加侖燃油的最大行程,而在 V8 引擎上實(shí)現(xiàn)最高的性能,并且不卡齒輪。

          我們在 big.LITTLE 處理中使用的方法是在新一代移動(dòng)平臺(tái)的移動(dòng)剖面圖以及不同的功率剖面圖中確定關(guān)鍵的性能點(diǎn)。大 CPU (Cortex-A15) 旨在提供比當(dāng)今高端 CPU 還要高的性能,并且滿足可使用在移動(dòng)電源裝置中。它由更復(fù)雜的、并行的、15 級(jí)或更高級(jí)的亂序管線組成,具體要根據(jù)指令流來確定。我們?yōu)樾⌒?CPU (Cortex-A7) 開發(fā)了一種截然不同的由有序的 8 級(jí)管線組成的內(nèi)核微體系架構(gòu),它能夠并發(fā)執(zhí)行大部分常用的指令對。與高性能內(nèi)核的 NEON SIMD 單位相比,針對更大介質(zhì)的 NEON SIMD 單位和浮點(diǎn)性能都有所降低。較小的 CPU 僅支持執(zhí)行有序的指令,但仍支持所有相同的運(yùn)算,如 64b 雙精度浮點(diǎn)計(jì)算、針對整數(shù)和單精度浮點(diǎn)數(shù)據(jù)類型的雙字和四字 SIMD 運(yùn)算。如果較小 CPU 的功耗和使用面積接近于較大的 CPU,那么通過切換所節(jié)省的能耗并不足以證明添加另一個(gè) CPU 群集的必要性。類似地,如果較小 CPU 的性能不能與高性能內(nèi)核相對媲美,那么它們之間的處理能力差異會(huì)因性能的不穩(wěn)定而出現(xiàn)非連續(xù)性業(yè)務(wù)處理。因此,我們必須在性能和功效方面實(shí)現(xiàn)最優(yōu)化才能提供適合于 big.LITTLE 的 CPU。

          我們需要確保的第三個(gè)問題是恒定的線性加速和減速。在引擎切換之間沒有交接問題。

          arm.com/index.php?app=core&module=attach§ion=attach&attach_rel_module=blogentry&attach_id=1200" rel="nofollow" >

          ARM 實(shí)現(xiàn) big.LITTLE 處理的核心就是在較大 CPU 和較小 CPU 之間實(shí)現(xiàn)飛快的任務(wù)遷移。但是快速環(huán)境遷移所遇到的最大障礙是時(shí)間,也就是需要足夠的時(shí)間來清除出站 CPU 群集上的緩存并使其無效,同時(shí)使用有效的環(huán)境來替換無效的環(huán)境。較小 Cortex-A7 和較大 Cortex-A15 處理器均具有 AMBA 一致性擴(kuò)展 (ACE) 接口,這些處理器可跨 ARM 緩存一致性互聯(lián)結(jié)構(gòu) (CCI-400)查看,在其他 CPU 群集的一級(jí)和二級(jí)緩存中執(zhí)行查找操作。此功能的優(yōu)點(diǎn)就在于出站 CPU 群集只需要保存由寄存器文件、CP15 寄存器值以及安全狀態(tài)組成的小環(huán)境信息即可。然后在典型實(shí)現(xiàn)中,可以在總保存/恢復(fù)時(shí)間不到 20 微秒內(nèi),在入站CPU群集中恢復(fù)這一小環(huán)境信息(如較大 CPU 運(yùn)行于 1GHz 或更快)。這種快速的環(huán)境切換具有很多優(yōu)點(diǎn)。由于切換的成本開銷很低,因此電源管理框架可以確定是切換到小群集,即使很短的時(shí)間,也會(huì)節(jié)省能耗,還是切換到大 CPU 群集,以便在極短的時(shí)間里使性能瞬間達(dá)到最高。這種切換控制非常簡單,因而進(jìn)行切換控制的軟件也非常簡單。同時(shí),您可以在應(yīng)用的中途進(jìn)行環(huán)境切換,如 CPU 開始呈現(xiàn)網(wǎng)頁時(shí)可以啟用大 CPU,而在網(wǎng)頁得到呈現(xiàn)后可以切換到較小的 CPU,直至需要載入新網(wǎng)頁時(shí)才切換到大 CPU。因此無需把應(yīng)用程序跨CPU 切割,SoC 的電源管理設(shè)備可以瞬間切換到相應(yīng)大小的 CPU 元件中。

          第四個(gè)也是最后一個(gè)需要確保的是這些引擎可以在一般情況下也能工作。

          我們需要確保有一種簡單的軟件方法來控制 big.LITTLE 切換,與現(xiàn)成的電源管理機(jī)制保持一致。當(dāng)今的智能手機(jī)和平板設(shè)備將動(dòng)態(tài)電壓與頻率調(diào)節(jié) (DVFS) 技術(shù)和多個(gè)空閑模式應(yīng)用于應(yīng)用處理器 SoC內(nèi)單個(gè) CPU 內(nèi)核和 IP 模塊上。我們所實(shí)施的 big.LITTLE 修改了后端驅(qū)動(dòng)程序來控制處理器的 DVFS 運(yùn)行點(diǎn)(例如 Linux/Android 中的 cpu_freq)?,F(xiàn)在不再使用三個(gè)或四個(gè) DVFS 運(yùn)行點(diǎn),而是通過驅(qū)動(dòng)程序來感知兩個(gè) CPU 群集,每個(gè)群集都可能具有三至四個(gè)獨(dú)立的電壓和頻率運(yùn)行點(diǎn),從而擴(kuò)大了現(xiàn)有智能手機(jī)電源管理解決方案使用的性能調(diào)節(jié)的范圍。big.LITTLE CPU 群集可以在純切換模式下進(jìn)行操作,即每一時(shí)刻只有一個(gè) CPU 群集在 DVFS 驅(qū)動(dòng)程序的控制下處于活動(dòng)狀態(tài),也可以在異構(gòu)多處理模式下進(jìn)行操作,即操作系統(tǒng)可以為大型或小型 CPU 群集提供顯式線程分配控制,并因此感知不同內(nèi)核的存在。

          總而言之,ARM big.LITTLE 處理所具有的這些屬性可以為現(xiàn)代移動(dòng)設(shè)備提供最佳的兩種切換解決方案:與當(dāng)今高端的智能手機(jī)應(yīng)用處理器相比,其能耗節(jié)省了 70%,并且其最高性能比 2011款的最高端智能手機(jī)高很多。請注意這不是一個(gè)非此即彼的方案,而是在同樣的工作負(fù)載下使性能和能耗均達(dá)到最優(yōu)的解決方案。由于智能手機(jī)和平板電腦的工作負(fù)載具有高度動(dòng)態(tài)性,因此很有可能需要兩種切換模式。對于網(wǎng)絡(luò)瀏覽、視頻流、休閑游戲和 mp3 播放等重要的工作負(fù)載,應(yīng)用 CPU 在最低的 DVFS 運(yùn)行點(diǎn)中所用的運(yùn)行時(shí)間占 70% 至 90%,而在最高的 DVFS 運(yùn)行點(diǎn)中所用的運(yùn)行時(shí)間僅不到 5% 左右。即使是高端的游戲工作負(fù)載或負(fù)載過重的互動(dòng)網(wǎng)站,其最高運(yùn)行點(diǎn)也通常只占 CPU 運(yùn)行時(shí)間的 20~30%,這樣便有機(jī)會(huì)切換到或?qū)⒕€程分配至小 CPU 中,使其 CPU 運(yùn)行時(shí)間達(dá)到 70~80% 或更高。這可以很好地與 big.LITTLE 處理保持一致,其中較小 Cortex-A7 可以處理所有一般的任務(wù),但不能處理當(dāng)前發(fā)售的高端應(yīng)用處理器 CPU 的兩個(gè)最高運(yùn)行點(diǎn)。這可以確保 Cortex-A7 在 80% 以上的 CPU 運(yùn)行時(shí)間里提供所需的同一級(jí)別性能,這樣便大大地減少了能耗,然后再根據(jù)需要瞬間切換到高性能 Cortex-A15 CPU 以實(shí)現(xiàn)最大的性能。讓我們再回到汽車類比中,這就像有一個(gè)處于待機(jī)狀態(tài)的渦輪增壓 V8 引擎在需要爬坡時(shí)從停止?fàn)顟B(tài)突然加速,然后當(dāng)您稍稍松開油門時(shí),在不到一眨眼的功夫便切換到節(jié)能的引擎中。

          如今在工程業(yè)界,我已領(lǐng)略到這世界上還真沒有免費(fèi)的午餐。您不可能在既有高性能又有高能效的同時(shí),不付出一點(diǎn)代價(jià)。就本例而言我們需付出的是占用面積,相對于高性能的 CPU 本身而言,附加的 CPU 群集只占用很少的一點(diǎn)額外區(qū)域。而在 28nm 等現(xiàn)代工藝結(jié)構(gòu)中,Cortex-A7 CPU 的每個(gè)內(nèi)核所占用的面積不到一平方毫米的一半,因此片上成本的費(fèi)用很低并且整合后的系統(tǒng)完全符合專為 CPU 群集定制的芯片空間大小要求。為了使平均能耗比當(dāng)今主流智能手機(jī)更低,性能比當(dāng)今具有最高性能的智能手機(jī)還高,即使必須在 SoC 上占用很少的一點(diǎn)額外區(qū)域也是相當(dāng)劃算的。我只希望這種做法也能應(yīng)用在汽車上:經(jīng)濟(jì)高效、長行程、至高性能的夢想車!



          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();