硬件/軟件接口,簡稱“HSI”,是一個術(shù)語,用于描述 SoC 外設(shè)的配置和功能以及它們?nèi)绾闻c CPU 交互。
從寄存器位到訪問類型、屬性及其控制的功能,這里不同因素的絕對數(shù)量在現(xiàn)代 SoC 中絕對是驚人的。例如,如果您有 32 位地址總線,則可以訪問 2^32 個內(nèi)存映射寄存器。如果每個寄存器本身都是 32 位寬,則寄存器位的總數(shù)變?yōu)?(32 * 2^32) 或 2^37,或 137,438,953,472!
但是,如果地址總線是 64 位怎么辦?如果 SoC 中有多個 CPU 內(nèi)核怎么辦?顯然,說典型的SoC架構(gòu)很復(fù)雜有點輕描淡寫。
不可否認(rèn),當(dāng)前的行業(yè)趨勢只會帶來更先進(jìn)的SoC,其外設(shè)數(shù)量比以往任何時候都多,功能更多。為了理解這一切,更不用說管理它了,這將需要我們完全重新思考硬件/軟件接口。就我們已經(jīng)走了多遠(yuǎn)而言,都是如此。..。..以及我們的前進(jìn)方向。
當(dāng)今存在的硬件/軟件接口
在任何給定的時刻,您都有各種各樣的不同元素正在處理。多個處理器,包括專門設(shè)計的處理器。它們周圍是大量的可編程外設(shè)。一切都通過片上網(wǎng)絡(luò)互連匯集在一起。這樣的例子不勝枚舉。
在現(xiàn)代CPU的背景下,HSI和指令集架構(gòu)(ISA)本質(zhì)上是完全相同的東西。它是軟件與硬件“對話”的層。CPU可以是ARM,RISC-V - 實際上并不重要,因為過程保持不變。你為你想要的目標(biāo)編寫一個C或C++程序,你編譯它,然后放在CPU上。這就是您與寄存器和外部總線以及 I/O 交互的方式。
就實際的SoC而言,您還必須處理互連結(jié)構(gòu),這是將CPU連接到各種可編程從站的原因。這些奴隸可能有自己的記憶,甚至可以成為通往較慢總線的橋梁,具體取決于您所說的獨特情況。從站通過讀取和寫入嵌入式寄存器進(jìn)行編程。當(dāng)你從這種類型的宏觀角度來看事情時,寄存器和中斷是IP(或從屬)HSI。
雖然到目前為止這一直運作良好,但也很難反駁它給任何項目帶來一些重大挑戰(zhàn)的事實。在最近的一項研究中,仔細(xì)研究了芯片功能缺陷的根本原因,設(shè)計錯誤是關(guān)鍵因素。還考慮了規(guī)格的變化以及不正確或不完整的規(guī)格。所有這些問題都既嚴(yán)重又常見,而且它們都有一個共同點:屬于這三個類別中的任何一個的問題中,超過50%的問題直接與HSI層有關(guān)。
以寄存器為例。您必須始終記住,您正在處理各種不同的類型。間接、UART、影子、鎖定、中斷、FIFO 和分頁都只是眾多示例中的一小部分。間接寄存器和觸發(fā)緩沖寄存器等復(fù)雜寄存器都有其自身潛在的復(fù)雜性,寄存器組或組數(shù)組也是如此,它們顯然非常不同。
僅基于此,就很容易理解為什么超過一半的問題可以直接與硬件/軟件接口相關(guān)聯(lián)。同樣復(fù)雜的是,公司通常有自己獨特的SoC特定挑戰(zhàn)和要求。
人們很容易對這個消息采取悲觀的態(tài)度,并將其視為令人恐懼的事情。值得慶幸的是,這也是值得慶祝的事情。這意味著,如果你花時間修復(fù)HSI層,你也會修復(fù)芯片功能缺陷的大部分根本原因,這些缺陷甚至不應(yīng)該首先存在。
您需要的靈活、創(chuàng)新的未來
當(dāng)你考慮HSI信息的所有不同消費者時,這個列表可能比人們意識到的要長得多。除了設(shè)備驅(qū)動程序、固件和硬件驗證等因素外,您還需要考慮技術(shù)文檔、診斷、應(yīng)用軟件、硬件設(shè)計等。對底層規(guī)范的一次更改需要在所有這些領(lǐng)域進(jìn)行重大轉(zhuǎn)變,這就是為什么找到一種允許這些更改自動滲透到所有相關(guān)視圖中的解決方案如此重要的原因。
Agnisys自己的IDesignSpec(IDS)只是在解決所有這些問題方面取得重大進(jìn)展的眾多進(jìn)步例子之一。根據(jù)您的需求,這些類型的解決方案通常與各種不同的輸出兼容,包括但不限于Verilog/VHDL,C模型,UVM等。它們通常可用于從批處理(想想:命令行)到 Word 和 Excel,甚至是 Open Office 等開源選項。
現(xiàn)在可以生成一個基于 UVM 的寄存器模型,該模型涵蓋所有驗證元素,如封面組、封面點、封面箱、非法箱等 - 為您的實際人類員工騰出寶貴的時間專注于更大、更重要的事情。
最后,可以使用單個工具來創(chuàng)建測試序列和環(huán)境,創(chuàng)建正式的屬性和斷言,從規(guī)范創(chuàng)建UVM序列和固件例程,并幫助實現(xiàn)跨平臺HSI層規(guī)范,以應(yīng)該一直存在的方式平等地為各方服務(wù)。如果您想了解更多信息,Agnisys 有一個錄制的網(wǎng)絡(luò)研討會,介紹如何在 HSI 中工作時指定和提高生產(chǎn)力。
這一切都超越了簡單的自動化。它代表了朝著硬件和軟件概念的下一次演變邁出的重要一步。
同樣,您特別談?wù)摰氖悄姆N工具并不重要。下一代硬件/軟件接口解決方案已經(jīng)到來,它們不僅有助于解決“老派”做事方式中存在的絕大多數(shù)挑戰(zhàn),而且還對幾乎所有你能想到的行業(yè)都提出了許多重大影響,這些行業(yè)太強(qiáng)大了,不容忽視。
功能安全
HSI發(fā)揮重要作用的眾多領(lǐng)域之一與功能安全和ISO 26262標(biāo)準(zhǔn)有關(guān)。例如,汽車工程師需要確保其設(shè)計中沒有單點故障,并遵守ECC - CRC和奇偶校驗或其他技術(shù)(如三模塊冗余(或TMR))的標(biāo)準(zhǔn)。
出于安全目的,HSI對于某些應(yīng)用程序在歷史上也很重要。你會看到很多情況下,內(nèi)存映射被一個鍵序列鎖定,其中必須使用特定值向某個地址寫入一系列寫入,以使?fàn)顟B(tài)機(jī)完成解鎖整個內(nèi)存映射所需的過程。
最后,我們有醫(yī)療領(lǐng)域 - 硬件/軟件接口很重要的領(lǐng)域,因為遵守某些要求是關(guān)鍵任務(wù)。此外,他們還對HSI層本身提出了自己獨特的要求,從而影響您如何實現(xiàn)某些因素以及未來的情況。
不幸的是,盡管HSI在理論上很重要,但在執(zhí)行中,它以最糟糕的方式處于停滯狀態(tài)。它與以往一樣重要,但存在某些挑戰(zhàn),這些挑戰(zhàn)絕對阻礙了創(chuàng)新,而不是推動創(chuàng)新向前發(fā)展。
最后
毋庸置疑,在處理復(fù)雜的硬件/軟件接口時存在很多挑戰(zhàn)。然而,通常情況下,也存在大量的機(jī)會。這一領(lǐng)域的進(jìn)步,IDesignSpec只是眾多例子之一,使人們有可能更好地改變他們對HSI的看法。
硬件/軟件接口背后的想法肯定已經(jīng)走了很長一段路,而且還有很長的路要走。但與此同時,好東西值得為之奮斗,因為“正確的方法”幾乎可以保證全面顯著提高生產(chǎn)力。“錯誤的方法”保證了調(diào)試時丟失很多周期,以及其他問題,這意味著它根本不是一個真正的選擇。
審核編輯:郭婷
-
寄存器
+關(guān)注
關(guān)注
31文章
5433瀏覽量
124417 -
cpu
+關(guān)注
關(guān)注
68文章
11076瀏覽量
217001 -
soc
+關(guān)注
關(guān)注
38文章
4386瀏覽量
222684
發(fā)布評論請先 登錄
ESP32-P4—具備豐富IO連接、HMI和出色安全特性的高性能SoC
AD74413R軟件可配置的四通道輸入/輸出技術(shù)手冊

MCUGPIO接口設(shè)計
Qorvo推出車規(guī)級UWB SoC芯片QPF5100Q,憑借可配置軟件推動創(chuàng)新
GPIO模塊與其他外設(shè)的連接方法
RAID 5 硬件與軟件 RAID 的區(qū)別
主機(jī)和外設(shè)之間需要設(shè)置接口的理由
為什么外設(shè)要通過接口與CPU相連
接口芯片是cpu與外設(shè)之間的界面嗎
TI mmWave Radar sensor硬件外設(shè)設(shè)計參考

ElfBoard技術(shù)貼|ELF 1開發(fā)板外設(shè)擴(kuò)展硬件分享

飛凌嵌入式-ELFBOARD ELF 1外設(shè)擴(kuò)展硬件分享第一期
串行外設(shè)接口的菊花鏈實現(xiàn)

評論