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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 不對稱內(nèi)核的引導固件體系結(jié)構(gòu)

          不對稱內(nèi)核的引導固件體系結(jié)構(gòu)

          作者: 時間:2018-08-23 來源:網(wǎng)絡(luò) 收藏

          摘要

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

          過去,支持不同計算(對稱/不對稱架構(gòu))的處理器通常從一個特定的(一般為主或內(nèi)核0)引導。由于經(jīng)濟增長放緩,半導體公司力求創(chuàng)新,尋求不同的方式和方法提高經(jīng)濟效益,增加其毛利率。片上系統(tǒng)(SoC)解決方案旨在滿足多個領(lǐng)域的要求。如支持不對稱引導,各個公司可使用相同的光刻掩模將SoC的目標范圍擴展到各個不同的市場。

          概述

          人們對互連世界的渴望催生了獨特的系統(tǒng)架構(gòu)設(shè)計,包括使用同構(gòu)或異構(gòu)計算架構(gòu)的單核系統(tǒng)及多核架構(gòu)。

          目前設(shè)計的復雜應用需要支持在系統(tǒng)中執(zhí)行特定功能的特殊硬件。這些以ASIC(特定用途集成電路)、FPGA(現(xiàn)場可編程門陣列)、GPU(圖形處理單元)等形式實現(xiàn)。這些不同的功能單元大多采用不同的指令集架構(gòu)(ISA)。

          背景

          過去,支持不同計算內(nèi)核(對稱/不對稱架構(gòu))的處理器通常從一個特定的內(nèi)核(一般指定為主內(nèi)核或內(nèi)核0)引導。由于經(jīng)濟增長放緩,半導體公司力求創(chuàng)新,尋求不同的方式和方法來提高經(jīng)濟效益,增加其毛利率。片上系統(tǒng)(SoC)解決方案旨在滿足多個領(lǐng)域的要求。如支持不對稱引導,各個公司可使用相同的光刻掩模將SoC的目標范圍擴展到各個不同的市場。例如,如果一個SoC有一個應用處理器(AP)和一個實時控制器內(nèi)核,SoC可從AP或?qū)崟r控制器引導,同一個SoC不僅可用于高性能(采用AP引導方式)應用,還可用于關(guān)鍵任務(低延遲、關(guān)鍵時間應用)應用。

          什么是不對稱內(nèi)核?

          不對稱內(nèi)核是指一個系統(tǒng)的兩個及以上的處理元件或單元擁有不同的指令集架構(gòu)(ISA)。這些內(nèi)核為整個系統(tǒng)提供特定的功能,如改善系統(tǒng)的處理能力或加快系統(tǒng)的反應速度等。

          因此不對稱內(nèi)核系統(tǒng)軟件設(shè)計就成了一個難題。如果SoC支持從多個內(nèi)核引導,問題則變得更加復雜。第一個問題是引導體系結(jié)構(gòu)。本文闡述采用不對稱內(nèi)核架構(gòu)的引導固件設(shè)計。

          引導體系結(jié)構(gòu)的設(shè)計標準

          在定義此類系統(tǒng)的引導體系結(jié)構(gòu)時會遇到各種問題,不是每個問題都有通用的解決方案。有時一個解決方案還需要硬件支持。以下是設(shè)計人員遇到的一些設(shè)計問題:

          ● 指令集架構(gòu)(ISA)兼容性

          ● 上電復位向量位置

          指令集架構(gòu)兼容性

          第一個也是最重要的設(shè)計挑戰(zhàn)是不同內(nèi)核的指令集架構(gòu)(ISA)兼容性問題。ISA是指硬件和軟件之間的邊界。ISA用于將助記符轉(zhuǎn)換成機器語言(能夠被處理器理解)。

          根據(jù)ISA,引導體系結(jié)構(gòu)可分為兩個部分:

          a.ISA不兼容

          這意味著為一個內(nèi)核編寫的軟件無法被其它內(nèi)核理解。在此類系統(tǒng)中,引導代碼對不同的內(nèi)核是完全不同的。

          b.ISA部分兼容

          這意味著不同的內(nèi)核支持一個共同的ISA版本,例如,包含ARM Cortex-A和Cortex-M內(nèi)核的系統(tǒng)。對于此類系統(tǒng),引導代碼分為兩部分。

          ● 第一部分是特定內(nèi)核的引導代碼,實現(xiàn)單個內(nèi)核的特定軟件功能。

          ● 第二部分是采用通用ISA實現(xiàn)的公共引導代碼,實現(xiàn)批量引導功能。該軟件調(diào)用第一部分實現(xiàn)的特定內(nèi)核的軟件。

          許多處理器架構(gòu)采用處理器ID或CPU ID等寄存器。SoC設(shè)計人員針對不同的內(nèi)核對該寄存器賦予不同的值。通過讀取該處理器ID寄存器來識別內(nèi)核類型。根據(jù)該寄存器,引導代碼可決定實現(xiàn)特定內(nèi)核的功能。要點是公共引導代碼可在不同內(nèi)核上執(zhí)行相同的指令,再根據(jù)執(zhí)行內(nèi)核產(chǎn)生不同的結(jié)果。

          ● 公共寄存器:

          如果該寄存器是內(nèi)存映射的,那么訪問該寄存器的地址對于所有內(nèi)核都必須相同。例如,在對接ARM Cortex-Ax和Cortex-Mx時,處理器ID寄存器通過不同的助記符訪問。因此,在此類SOC設(shè)計中需要采用內(nèi)存映射寄存器,識別執(zhí)行內(nèi)核的機制也與硬件相關(guān)。

          ● 使用相同的指令讀取處理器ID/CPU ID:

          在某些情況下,將寄存器作為某種特殊目的寄存器(Special Purpose Register)(如在PowerPC的情況下)。應注意,相同的指令可用于通過不同的內(nèi)核訪問該寄存器。例如,當在SoC中集成Z2和Z4 PowerPC內(nèi)核時,用SPR 286寄存器訪問處理器ID。

          上電復位向量位置

          上電復位向量位置表示加載到內(nèi)核程序計數(shù)器的地址,當內(nèi)核復位后從該地址提取第一個指令,這對不對稱內(nèi)核SoC引導體系結(jié)構(gòu)提出了一個重大的設(shè)計挑戰(zhàn)。包含多個內(nèi)核的SoC可設(shè)計為從任何可用內(nèi)核進行引導。大多數(shù)情況下,從哪個內(nèi)核引導是可配置的,但是,由于引導軟件駐留到微處理器的ROM區(qū)域,因此引導軟件應能夠在選定的引導內(nèi)核上運行。

          那么復位向量位置為引導軟件帶來了什么挑戰(zhàn)呢?對稱內(nèi)核是絕對沒有問題的。這是因為對于對稱內(nèi)核來說,引導向量位置解析是相同的。但是,對于不對稱內(nèi)核來說,則會產(chǎn)生問題,這有兩個主要原因:

          ● 復位向量對于所有可引導的內(nèi)核都不同。

          ● 兩個或以上可引導的不對稱內(nèi)核有一個公共的復位向量位置。

          復位向量對于所有可引導的內(nèi)核都不同

          如果復位向量對于所有可引導的內(nèi)核都不同,那么這個問題的解決方案可在引導軟件中實現(xiàn),如下圖所示。引導軟件將位于ROM內(nèi)存區(qū)的不同位置,內(nèi)核在上電復位后將從該位置跳轉(zhuǎn)。

          兩個或以上可引導的不對稱內(nèi)核有一個公共的復位向量位置

          當各種不對稱可引導內(nèi)核共享復位向量時,問題會變復雜。

          ● 復位向量位置解析

          即使復位向量位置對于兩個或以上不對稱內(nèi)核是相同的,然而,復位向量位置可用的數(shù)據(jù)的解析對于不同的內(nèi)核可能會不同。例如,如果一個SoC有兩個不對稱內(nèi)核Cortex-Ax和Cortex-Mx,那么復位向量位置對于這兩個內(nèi)核均為0x0000_0000。該地址可用的數(shù)據(jù)被這兩個內(nèi)核以不同的方式解析。Cortex-Ax將該數(shù)據(jù)解析為一個指令,導致跳轉(zhuǎn)到引導固件代碼將駐留的位置。但同樣的數(shù)據(jù)被Cortex-Mx內(nèi)核解析為堆棧指針。

          ● 指令集架構(gòu)不兼容

          復位向量位置呈現(xiàn)的代碼可被一個內(nèi)核理解,但無法被另一個內(nèi)核理解。這可能會產(chǎn)生異常,或者使不能理解代碼的內(nèi)核進入不可預知的狀態(tài)。

          在這種情況下,人們可能想把失敗內(nèi)核的復位向量位置轉(zhuǎn)到不同的地址位置,即映射到閃存或任何非易失性存儲器位置。不能僅在軟件設(shè)計中解決此類問題,還需要硬件支持。該解決方案需要SoC硬件的地址轉(zhuǎn)換邏輯,將所有可引導不對稱內(nèi)核總線上的復位向量地址轉(zhuǎn)換為復位向量表駐留的ROM存儲器區(qū)的不同位置。

          結(jié)束語

          本文展示了為不對稱內(nèi)核系統(tǒng)設(shè)計引導體系結(jié)構(gòu)的不同設(shè)計方法。此類系統(tǒng)的設(shè)計方法不限于本文所述內(nèi)容,但主要受SOC設(shè)計的限制。設(shè)計人員甚至可以根據(jù)硬件架構(gòu)結(jié)合使用所述不同方法。



          關(guān)鍵詞: 內(nèi)核 引導固體 加速器

          評論


          相關(guān)推薦

          技術(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); })();