硬/軟體介面:走向何方
硬體/軟體介面(簡稱為"HSI")是一個術語,用來描述 SoC 外圍裝置的配置和功能,以及它們如何與CPU互動。
從暫存器位到訪問型別、屬性和功能的各種因素的數量,在現代SoC中可能是絕對令人吃驚的。 例如,如果有一個32位地址匯流排,可以訪問2 ^ 32記憶體對映暫存器。如果每個暫存器本身都有32位寬,那麼暫存器位的總數就會變成(32 * 2 ^ 32)或2 ^ 37,或137,438,953,472!但是如果地址匯流排是64位呢? 如果 SoC 中有多 cpu 核心怎麼辦? 很明顯,典型的 SoC 體系結構是複雜的。
不可否認的是,目前的行業趨勢只會導致更先進的 SoC,其外圍裝置的數量將比以往任何時候都多。 為了理解這一切,更不用說管理它,它將要求我們完全重新思考HSI。 無論已經走了多遠,還是要去向何方地方,都是如此。
HSI的今天
在任何特定的時刻,都會遇到各種各樣的因素。 多個處理器,包括周圍有大量可程式設計的外設。所有的東西都通過片上網路連線在一起。 這個列表還在繼續。
在現代 CPU 的背景下,HSI 和指令集架構(ISA)基本上是一樣的。 這是軟體對硬體進行"會話"的層。 中央處理器可以是 ARM,RISC-V ——這並不重要,因為這個過程保持不變。 為想要的目標編寫一個C或 C++ 程式,編譯它,然後放到 CPU 上。 這就是如何與暫存器和外部匯流排進行互動的方式,以及I/O。
在實際的 SoC 方面,還必須處理相互連線的fabric,這是連線CPU 和各種可程式設計從裝置的紐帶。 這些從裝置可能有他們自己的儲存,或者甚至可以是一個低速匯流排,這取決於具體的情況對嵌入式暫存器的讀寫來程式設計。 當從這種型別的巨集觀視角來看事物時,暫存器和中斷是IP的HSI。
圖1 CPU/IP HSI
雖然迄今為止,這種做法一直運作良好,但也很難說它給任何專案帶來了一些重大的挑戰。在最近的一項研究中,仔細研究了晶片功能缺陷的根源,設計錯誤是主要原因。 規格的變化和規格的不正確或不完整也是其中的一個方面。 所有這些問題的嚴重程度和它們的普遍性一樣,而且它們都有相同的共同點: 超過50%的問題屬於這三個類別中的任何一個,直接回到了 HSI 層面。
舉個例子,以收銀機為例, 總是要記住面對的是各種各樣的不同型別。 UART、鎖、中斷、 FIFO 和分頁都只是眾多例子中的一小部分。 像間接暫存器和觸發緩衝暫存器這樣的複雜暫存器都有其潛在的併發症,暫存器組或記憶體陣列也是顯然不同的。
僅僅基於這一點,就很容易看出為什麼所有問題中有一半以上可以直接與硬體/軟體介面聯絡起來。 同樣複雜的是,許多公司都有自己獨特的針對 SoC 的挑戰和要求。
人們很容易對這個訊息採取悲觀的態度,並把它看作是可怕的事情。 但這也是值得慶祝的事情,這意味著如果花時間修復 HSI 層,也可以修復晶片功能缺陷。
需要靈活而創新的未來
當想到各種各樣的 HSI 資訊消費者時,這個列表可能比人們意識到的要長得多。 除了裝置驅動程式、韌體和硬體驗證等因素外,還需要考慮技術文件、診斷、應用軟體、硬體設計等等。 對基礎規範的一個改變需要在所有這些領域進行重大轉變,這就是為什麼找到一個解決方案,讓這些變化自動滲透到所有相關的檢視中。
IDesignSpec (IDS)只是眾多例子之一,在解決所有這些問題方面取得了重大進展。 這些型別的解決方案通常與各種不同的輸出相相容,這取決於您的需求,包括但不限於像 Verilog/VHDL,c Model,UVM 等等。它們通常可以從批處理(想象: 命令列)到 Word 和 Excel,到開源的選項,比如 Open Office。
現在可以生成一個單一的基於 uvm 的暫存器模型,該模型涵蓋所有的核查元素,以及更多地騰出寶貴的時間,讓實際員工專注於更重要的事情。
最後,可以使用一個單一的工具來建立測試序列和環境,建立正式屬性和斷言,從規範中建立 UVM 序列和韌體例程,並幫助實現跨平臺的 HSI 層規範,該規範以一種一直存在的方式平等地為所有各方服務。
這一切都超越了簡單的自動化。 它代表了硬體和軟體作為概念朝著下一個進化方向邁出的重要一步。下一代的HSI解決方案已經取得了很大進展,它們不僅有助於解決"老派"做事方式中存在的絕大多數挑戰,而且對於能想到的幾乎每一個強大到不容忽視的行業都存在一些重大影響。
功能安全
國際標準化組織發揮重要作用的許多領域之一與功能安全和 ISO 26262標準有關。 例如,汽車工程師需要確保他們的設計沒有單一的故障點,他們堅持這個標準的 ECC-CRC 和奇偶校驗,或者其他技術,如三模冗餘(或 TMR)。
對於某些用於安全目的的應用程式來說,HSI 也具有重要的歷史意義。 你可以看到很多情況下,記憶體對映是用一個關鍵序列鎖定的,在這個序列中,必須用特定的值將一系列寫入某個地址,以使狀態機能夠通過解鎖整個記憶體對映所需的程序。
最後,醫療是一個硬體/軟體介面非常重要的領域,因為遵守某些要求對於任務至關重要。 此外,他們也都把他們自己獨特的要求放在 HSI 層本身上,影響了如何實現某些因素以及未來的情況。
不幸的是,正如 HSI 在理論上一樣重要,在執行過程中,它在很大程度上處於最糟糕的停滯狀態。 這就像以前一樣重要,但是有些挑戰是絕對阻礙創新的,而不是推動創新向前發展。
在最後
毫無疑問,在處理複雜的硬體 / 軟體介面時,存在著許多挑戰。 然而,通常情況下,也存在著大量的機會。這一領域的進步,IDesignSpec 只是眾多例子中的一個,使得人們有可能改變他們對於 HSI 的看法變得更好
硬體 / 軟體介面背後的想法確實有很長的路要走,而且他們還有很長的路要走。 但與此同時,好東西是值得為之奮鬥的,因為"正確的方法"幾乎保證了整體生產力的顯著提高。 "錯誤的方法"保證丟失大量的週期除錯等問題,這意味著它根本不是一個真正的選擇。
參考資料:
https://www.agnisys.com/products/idesignspec-uvm-register-generator/
https://www.agnisys.com/hardware-software-interface-hsi-specification-and-productivity-improvement/
http://www.embedded-computing.com/guest-blogs/the-hardware-software-interface-where-weve-been-and-where-were-going