硬件/軟件接口(簡(jiǎn)稱為"HSI")是一個(gè)術(shù)語,用來描述SoC外圍設(shè)備的配置和功能,以及它們?nèi)绾闻cCPU交互。
從寄存器位到訪問類型、屬性和功能的各種因素的數(shù)量,在現(xiàn)代SoC中可能是絕對(duì)令人吃驚的。 例如,如果有一個(gè)32位地址總線,可以訪問2 ^ 32內(nèi)存映射寄存器。如果每個(gè)寄存器本身都有32位寬,那么寄存器位的總數(shù)就會(huì)變成(32 * 2 ^ 32)或2 ^ 37,或137,438,953,472!但是如果地址總線是64位呢? 如果 SoC 中有多 cpu 核心怎么辦? 很明顯,典型的 SoC 體系結(jié)構(gòu)是復(fù)雜的。
不可否認(rèn)的是,目前的行業(yè)趨勢(shì)只會(huì)導(dǎo)致更先進(jìn)的SoC,其外圍設(shè)備的數(shù)量將比以往任何時(shí)候都多。 為了理解這一切,更不用說管理它,它將要求我們完全重新思考HSI。 無論已經(jīng)走了多遠(yuǎn),還是要去向何方地方,都是如此。
HSI的今天
在任何特定的時(shí)刻,都會(huì)遇到各種各樣的因素。 多個(gè)處理器,包括周圍有大量可編程的外設(shè)。所有的東西都通過片上網(wǎng)絡(luò)連接在一起。 這個(gè)列表還在繼續(xù)。
在現(xiàn)代 CPU 的背景下,HSI 和指令集架構(gòu)(ISA)基本上是一樣的。 這是軟件對(duì)硬件進(jìn)行"會(huì)話"的層。 中央處理器可以是 ARM,RISC-V ——這并不重要,因?yàn)檫@個(gè)過程保持不變。 為想要的目標(biāo)編寫一個(gè)C或 C++ 程序,編譯它,然后放到 CPU 上。 這就是如何與寄存器和外部總線進(jìn)行交互的方式,以及I/O。
在實(shí)際的 SoC 方面,還必須處理相互連接的fabric,這是連接CPU和各種可編程從設(shè)備的紐帶。 這些從設(shè)備可能有他們自己的存儲(chǔ),或者甚至可以是一個(gè)低速總線,這取決于具體的情況對(duì)嵌入式寄存器的讀寫來編程。 當(dāng)從這種類型的宏觀視角來看事物時(shí),寄存器和中斷是IP的HSI。
圖1 CPU/IP HSI
雖然迄今為止,這種做法一直運(yùn)作良好,但也很難說它給任何項(xiàng)目帶來了一些重大的挑戰(zhàn)。在最近的一項(xiàng)研究中,仔細(xì)研究了芯片功能缺陷的根源,設(shè)計(jì)錯(cuò)誤是主要原因。 規(guī)格的變化和規(guī)格的不正確或不完整也是其中的一個(gè)方面。 所有這些問題的嚴(yán)重程度和它們的普遍性一樣,而且它們都有相同的共同點(diǎn): 超過50%的問題屬于這三個(gè)類別中的任何一個(gè),直接回到了 HSI 層面。
舉個(gè)例子,以收銀機(jī)為例, 總是要記住面對(duì)的是各種各樣的不同類型。 UART、鎖、中斷、 FIFO 和分頁都只是眾多例子中的一小部分。 像間接寄存器和觸發(fā)緩沖寄存器這樣的復(fù)雜寄存器都有其潛在的并發(fā)癥,寄存器組或內(nèi)存數(shù)組也是顯然不同的。
僅僅基于這一點(diǎn),就很容易看出為什么所有問題中有一半以上可以直接與硬件/軟件接口聯(lián)系起來。 同樣復(fù)雜的是,許多公司都有自己獨(dú)特的針對(duì) SoC 的挑戰(zhàn)和要求。
人們很容易對(duì)這個(gè)消息采取悲觀的態(tài)度,并把它看作是可怕的事情。 但這也是值得慶祝的事情,這意味著如果花時(shí)間修復(fù) HSI 層,也可以修復(fù)芯片功能缺陷。
需要靈活而創(chuàng)新的未來
當(dāng)想到各種各樣的 HSI 信息消費(fèi)者時(shí),這個(gè)列表可能比人們意識(shí)到的要長(zhǎng)得多。 除了設(shè)備驅(qū)動(dòng)程序、固件和硬件驗(yàn)證等因素外,還需要考慮技術(shù)文檔、診斷、應(yīng)用軟件、硬件設(shè)計(jì)等等。 對(duì)基礎(chǔ)規(guī)范的一個(gè)改變需要在所有這些領(lǐng)域進(jìn)行重大轉(zhuǎn)變,這就是為什么找到一個(gè)解決方案,讓這些變化自動(dòng)滲透到所有相關(guān)的視圖中。
IDesignSpec (IDS)只是眾多例子之一,在解決所有這些問題方面取得了重大進(jìn)展。 這些類型的解決方案通常與各種不同的輸出相兼容,這取決于您的需求,包括但不限于像 Verilog/VHDL,c Model,UVM 等等。它們通??梢詮呐幚恚ㄏ胂螅?命令行)到 Word 和 Excel,到開源的選項(xiàng),比如 Open Office。
現(xiàn)在可以生成一個(gè)單一的基于 uvm 的寄存器模型,該模型涵蓋所有的核查元素,以及更多地騰出寶貴的時(shí)間,讓實(shí)際員工專注于更重要的事情。
最后,可以使用一個(gè)單一的工具來創(chuàng)建測(cè)試序列和環(huán)境,創(chuàng)建正式屬性和斷言,從規(guī)范中創(chuàng)建 UVM 序列和固件例程,并幫助實(shí)現(xiàn)跨平臺(tái)的 HSI 層規(guī)范,該規(guī)范以一種一直存在的方式平等地為所有各方服務(wù)。
這一切都超越了簡(jiǎn)單的自動(dòng)化。 它代表了硬件和軟件作為概念朝著下一個(gè)進(jìn)化方向邁出的重要一步。下一代的HSI解決方案已經(jīng)取得了很大進(jìn)展,它們不僅有助于解決"老派"做事方式中存在的絕大多數(shù)挑戰(zhàn),而且對(duì)于能想到的幾乎每一個(gè)強(qiáng)大到不容忽視的行業(yè)都存在一些重大影響。
功能安全
國際標(biāo)準(zhǔn)化組織發(fā)揮重要作用的許多領(lǐng)域之一與功能安全和 ISO 26262標(biāo)準(zhǔn)有關(guān)。 例如,汽車工程師需要確保他們的設(shè)計(jì)沒有單一的故障點(diǎn),他們堅(jiān)持這個(gè)標(biāo)準(zhǔn)的 ECC-CRC 和奇偶校驗(yàn),或者其他技術(shù),如三模冗余(或 TMR)。
對(duì)于某些用于安全目的的應(yīng)用程序來說,HSI 也具有重要的歷史意義。 你可以看到很多情況下,內(nèi)存映射是用一個(gè)關(guān)鍵序列鎖定的,在這個(gè)序列中,必須用特定的值將一系列寫入某個(gè)地址,以使?fàn)顟B(tài)機(jī)能夠通過解鎖整個(gè)內(nèi)存映射所需的進(jìn)程。
最后,醫(yī)療是一個(gè)硬件/軟件接口非常重要的領(lǐng)域,因?yàn)樽袷啬承┮髮?duì)于任務(wù)至關(guān)重要。 此外,他們也都把他們自己獨(dú)特的要求放在 HSI 層本身上,影響了如何實(shí)現(xiàn)某些因素以及未來的情況。
不幸的是,正如 HSI 在理論上一樣重要,在執(zhí)行過程中,它在很大程度上處于最糟糕的停滯狀態(tài)。 這就像以前一樣重要,但是有些挑戰(zhàn)是絕對(duì)阻礙創(chuàng)新的,而不是推動(dòng)創(chuàng)新向前發(fā)展。
在最后
毫無疑問,在處理復(fù)雜的硬件 / 軟件界面時(shí),存在著許多挑戰(zhàn)。 然而,通常情況下,也存在著大量的機(jī)會(huì)。這一領(lǐng)域的進(jìn)步,IDesignSpec 只是眾多例子中的一個(gè),使得人們有可能改變他們對(duì)于 HSI 的看法變得更好
硬件 / 軟件接口背后的想法確實(shí)有很長(zhǎng)的路要走,而且他們還有很長(zhǎng)的路要走。 但與此同時(shí),好東西是值得為之奮斗的,因?yàn)椋⒄_的方法"幾乎保證了整體生產(chǎn)力的顯著提高。 "錯(cuò)誤的方法"保證丟失大量的周期調(diào)試等問題,這意味著它根本不是一個(gè)真正的選擇。
評(píng)論
查看更多