衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SoC系統中的軟件結構設計

冬至子 ? 來源:TrustZone ? 作者:Hkcoco ? 2023-09-25 15:14 ? 次閱讀

在一個SoC的系統結構設計中,除了硬件結構以外,軟件結構的設計對整個SoC的性能有很大的影響。

盡管硬件的結構設計無論對哪個公司來說都是一種挑戰,卻不能忽略系統級上的挑戰。

因為一個SoC產品不只包括硬件,而是軟件和硬件的結合。在很多的SoC中,軟件設計的復雜度和開發周期都要超過整個硬件的設計。軟件設計在很大程度上決定了SoC中硬件電路的性能發揮。

1.數據流的路徑

在很多嵌入式系統中,數據流在硬件和軟件中的路徑決定了系統的效率和性能。

數據流的路徑通常是從數據位通過物理接口流入系統開始的, 并經硬件設備輸入接口流入硬件設備輸入控制器 。軟件驅動程序將數據輸入操作系統的數據結構,然后再送入應用存儲器空間中。

應用程序間的通信直接通過 共享的全局存儲器交換數據 ,或者 通過操作系統以消息的形式傳送數據

在輸出端,應用通常通過操作系統向設備驅動程序傳送數據, 它將數據輸入一個硬件輸出控制器然后通過操作系統向設備驅動程序傳送數據經硬件設備輸出接口傳出

2.軟件環境

SoC芯片中的軟件環境包括應用軟件的運行環境和應用軟件的開發環境。開發環境包括應用軟件源代碼、編譯器、連接器、開發界面和硬件調試接口等。

其中,軟件源代碼位于開發環境的最上層,而調試接口則是環境中的底層。對于一個SoC來說,如果其中的處理器采用MIPS、ARMTensilica的處理器時, SoC上應用的開發者可以從提供商那里獲得開發環境,而不用自己去開發

這也是很多的就是解決方案,給你從芯片到帶著小系統的東西。

但即使標準的開發環境也從來都不是標準的。為了在新的系統中去實現包括更多新的功能,在每一個開發周期中,需要在開發環境中增加各種開發工具。

SoC中應用軟件的運行環境主要由

  • 應用程序、
  • 操作系統核心、
  • 各種驅動、
  • 芯片本身構成。

圖4-13所示為軟件的運行環境及開發工具。(對于一些 不太需要任務管理、資源管理及進程管理的應用 ,SoC也往往不會采用操作系統。想起了當時面試的時候面試官問我玩過一下操作系統沒,但當時都是玩的裸機。唯一一個也是基于協議棧的東西。)

在應用軟件運行環境的最上層是應用程序。應用程序實現了系統的各種特定應用,如音頻視頻解碼等。應用程序之間可以通過某種標準接口(如網絡協議)進行通信。相同類型的應用可以在這種方式下獲得好處。

在這種消息傳遞中能夠實現可靠的接口,但會帶來性能的問題 。應用程序之間的通信也可以通過操作系統核心以存儲器共享的方式通信來提高速度。比如某一應用程序將一塊數據放到緩存中,并把指針傳遞給另一個應用軟件,但以這樣的方式交換數據往往也會帶來某些問題。

在應用程序的下一層是操作系統核心,負責任務的創建、任務的調度和存儲器管理等。

在操作系統的下一層由

  • 各種I/O接口(如UARTUSB、IDE、WLAN、LCD等)驅動、
  • 硬件加速器驅動和
  • 其他實現如異常處理、
  • 中斷服務程序、
  • 初始化、
  • 復位及Bootloader等的系統軟件構成。

3.軟硬件接口

在一個真實的SoC系統結構設計中還必須考慮到軟硬件接口(Interface)。主要的軟硬件接口有:

  • ①存儲空間映射(Memory Map),包括所有設備的可配置寄存器的地址映射;
  • ②設備驅動;
  • ③初始化、復位、Bootloader程序;
  • ④中斷服務程序及中斷向量;
  • ⑤I/O引腳的復用等。

這些是在系統結構設計時必須定義好的,在硬件設計時必須按照定義做,這樣才能保障系統軟件正常工作。

1.存儲空間映射

通常情況下,SoC中的各個片上模塊及與之通信的片外設備,如Flash及Flash控制器的寄存器、RAM及存儲器控制模塊中的寄存器,以及各種外設等, 均采用統一地址空間進行編址訪問,為每一個設備分配一定數量的地址空間的過程稱為存儲空間映射 。圖4-14所示為一款IBM的SoC的存儲空間映射的例子。

圖4-14 基于IBM的PLB和OPB總線協議的SoC的存儲空間映射實例

2.設備驅動

在SoC設計中,需要大量投資來開發設備驅動(I/O接口驅動、硬件加速器驅動),這是產品成功的關鍵。

設備驅動的作用是在操作系統內核與I/O硬件設備之間建立連接。

其目的是,對于軟件設計者而言,這個接口屏蔽了各類設備的底層硬件細節,使軟件設計者可以像處理普通文件一樣對硬件設備進行打開、讀寫、關閉等操作。

設備驅動主要完成的工作包括:

  • 初始化(如設定傳輸率,定時器的周期等),
  • 中斷服務處理(如對硬件中斷的處理),
  • 輸入/輸出設備的接口服務(如啟動和停止定時器、DMA傳輸等)。

操作系統提供商通常會提供常見設備的驅動包 。這些驅動程序可以作為參考設計,而實際上應用開發者還是需要做出大量修改。參考設計畢竟只是參考,最后的產品中很少完全使用參考設計。與桌面系統不同,嵌入式系統與接口和應用密切相關,一個操作系統獲得成功很大程度上取決于各種最新驅動程序的可獲程度。

3.初始化、復位、Bootloader程序

SoC設計中的初始化程序主要負責整個SoC各個關鍵組件的初始化工作。

初始化

這些初始化工作主要包括:

  • 初始化CPU內部的一些特殊寄存器、
  • 初始化Cache參數
  • 初始化存儲器管理單元MMU(Memory Management Unit)、
  • 初始化其他SoC組件(如URAT、Timer等)、
  • 初始化設置中斷向量表等,
  • 并開始執行應用程序或操作系統。

復位主要是在上電時完成處理器、SoC芯片及整個系統的復位工作。

它使得CPU的指令指針指到某一個特定的存儲器地址,然后從這個地址取指并執行一系列的復位中斷服務程序。

例如,一款IBM公司的PowerPC 405GP處理器在上電復位時,將從地址0XFFFFFFFC開始執行相關的程序,而這段程序可能是在通過PCI連接的存儲器上。

復位

復位主要是在上電時完成處理器、SoC芯片及整個系統的復位工作。它使得CPU的指令指針指到某一個特定的存儲器地址,然后從這個地址取指并執行一系列的復位中斷服務程序。

例如,一款IBM公司的PowerPC 405GP處理器在上電復位時,將從地址0XFFFFFFFC開始執行相關的程序,而這段程序可能是在通過PCI連接的存儲器上。

Bootloader

Bootloader是在操作系統運行之前執行的一小段程序。

通過這部分程序,設計者可以初始化硬件設備、建立內存空間的映射表,從而建立適當的系統軟硬件環境,為最終調用操作系統內核做好準備。

Bootloader的主要運行任務就是將內核映象加載到RAM中,然后跳轉到內核的入口點去運行,即開始啟動操作系統。

Bootloader是基于特定硬件平臺來實現的,因此,幾乎不可能為所有的SoC建立一個通用的Bootloader。Bootloader不但依賴于處理器的體系結構,還依賴于SoC中各設備模塊的配置。

因此一般交付的時候芯片廠商會將芯片和Bootlloader一起交付,同時一些安全的啟動方案就在這個地方會出現。

4.中斷服務程序及中斷向量

當處理器正在處理內部數據時,外界發生了緊急情況,要求處理器暫停當前的工作轉去處理這個緊急事件。

處理完畢后,再回到原來被中斷的地址,繼續原來的工作,這樣的過程稱為中斷,而對于緊急事件的處理程序稱為中斷服務程序。

各類中斷服務程序的入口地址均存放在中斷向量表中。

5.I/O引腳的復用

I/O引腳的數量將影響到芯片乃至系統板的面積。 通常為了減小面積會將兩個或兩個以上不在同一個時間使用的不同功能的I/O引腳進行復用。

例如,用在測試時的掃描鏈信號引腳與正常使用時的UART模塊的引腳復用。

6.模型

為了能及時開發出目標系統所需要的軟件,在SoC芯片能夠獲得之前,需要有一種SoC模型來開發和運行軟件。

以前, SoC模型通常是基于FPGA 。隨著電子系統級設計的發展,一種虛擬的仿真模型出現了。仿真模型的速度雖然相對實際芯片要慢一些,但可以更早地展開軟件的開發,而且隨著服務器等處理速度的提高,相對來說提高了仿真模型的速度。

這里也就是原型驗證的意義所在。

隨著SoC設計中越來越多地使用多核,軟件開發環境需要為應用開發者提供新的編程模型。

比如,在每一個獨立的處理器上運行標準的操作系統,這樣可以為應用開發者提供相當的靈活性。但應用開發者要面臨著協同這些處理器中的所有任務的問題。

而更加普遍的做法或許是,為開發者提供一個多處理器多線程的開發模型,每一個線程映射到不同的獨立處理器上。

這種模型限制了對每個處理器的訪問,卻降低了在應用層可能發生的同步問題。

這些編程模型只是為處理器提供通用的開發環境,而實際的芯片是一個更大并包括復雜通信的系統,這樣的系統需要在開發環境中被建模。

軟件的復雜性正在不斷地增長,并且軟件通常能夠更好地處理復雜性的問題。軟件系統的功能和復雜性的進一步發展也使得SoC設計方法學的極限得以擴展。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    112

    文章

    16445

    瀏覽量

    179444
  • 存儲器
    +關注

    關注

    38

    文章

    7528

    瀏覽量

    164342
  • 連接器
    +關注

    關注

    98

    文章

    14656

    瀏覽量

    137232
  • 嵌入式系統
    +關注

    關注

    41

    文章

    3624

    瀏覽量

    129749
  • SoC系統
    +關注

    關注

    0

    文章

    52

    瀏覽量

    10727
收藏 人收藏

    評論

    相關推薦

    操作系統結構設計

    ,等級森嚴!這種系統學術味道較濃!實際完全按照這種結構進行設計的操作系統不多,也沒有廣泛的應用。可以這么說,現在的操作系統設計是在整體式系統
    發表于 09-13 10:10

    手機結構設計心得

    手機結構設計心得
    發表于 11-07 09:59

    淺談產品結構設計特點 

    `  產品結構設計是根據產品功能而進行的內部結構的設計,是機械設計的主要內容之一。產品結構設計內容有零件的分件、部件的固定方式、產品使用和功能的實現方式、產品使用材料和表面處理工藝等。要求產品
    發表于 02-25 17:24

    軟件結構設計

    軟件結構設計,,
    發表于 09-26 13:55

    嵌入式系統軟件結構設計

    嵌入式系統軟件結構設計
    發表于 09-26 13:57

    軟件無線電結構設計的器件選擇方法

    ASIC、FPGA和DSP的應用領域呈現相互覆蓋的趨勢,使設計人員必須在軟件無線電結構設計重新考慮器件選擇策略問題。本文從可編程性、集成度、開發周期、性能和功率五個方面論述了選擇ASIC、FPGA
    發表于 07-26 06:09

    SOC系統結構設計

    嵌入式系統SOC的基本結構所謂嵌入式系統是計算機應用的一種方式。 在嵌入式系統,計算機硬件
    發表于 10-29 17:14 ?0次下載

    結構設計的鋼筋混凝土構造

    結構設計的鋼筋混凝土構造摘要: 在長期進行設計工作, 通過使用規范和手冊, 結合工程實際經驗, 發現結構設計的鋼筋混凝土構造問題是個重
    發表于 04-26 11:17 ?20次下載

    結構設計方面資料

    結構設計方面資料
    發表于 08-09 17:02 ?0次下載

    軸系結構設計實驗

    實驗六 軸系結構設計實驗一、實驗目的: 熟悉并掌握軸系結構設計中有關軸的結構設計、滾動軸承組合設計的基本方法。 二、實
    發表于 03-13 19:04 ?5.8w次閱讀
    軸系<b class='flag-5'>結構設計</b>實驗

    基于ARM的嵌入式系統硬件結構設計

    基于ARM的嵌入式系統硬件結構設計
    發表于 12-16 21:32 ?0次下載

    面向可維護性的軟件體系結構設計

    面向可維護性的軟件體系結構設計_胡文生
    發表于 01-08 15:15 ?1次下載

    淺談產品結構設計類別及產品結構設計的重要性

    產品設計中所涉及的產品結構設計,主要是產品的外部殼體結構設計。目前殼體材料主要是金屬材料通過鈑金沖壓工藝成型和塑料通過注塑工藝成型。常見產品的結構設計主要有鈑金結構的設計、塑料產品的
    的頭像 發表于 05-26 14:21 ?1.1w次閱讀

    DSPMAC的微系統結構設計

    DSPMAC的微系統結構設計(高頻開關電源技術指標)-該文檔為DSPMAC的微系統結構設計
    發表于 09-22 13:24 ?3次下載
    DSP<b class='flag-5'>中</b>MAC的微<b class='flag-5'>系統</b><b class='flag-5'>結構設計</b>

    FPC的結構設計.zip

    FPC的結構設計
    發表于 03-01 15:37 ?1次下載
    属蛇和属马合作做生意谁吃亏 | 24山九宫飞星详解| 战神百家乐的玩法技巧和规则| 皇冠网注册送彩金| 线上百家乐官网平台| 真人百家乐娱乐好玩| 六合彩官方| 百家乐官网微乐| 金榜百家乐的玩法技巧和规则| 平博娱乐| 新西兰百家乐官网的玩法技巧和规则| 大发888卡| 百家乐官网庄闲排| 新全讯网a3322.com| 百家乐官网注册送彩金平台| 百家乐2号死机| 百家乐官网破解之法| 百家乐的赚钱原理| bet365娱乐平台| 博之道百家乐官网的玩法技巧和规则 | 博彩通百家乐概率| 博盈娱乐| 百家乐赢钱秘密| 宝马会线上娱乐| 百家乐开户送百元| 澳门赌场小姐| 伯爵百家乐娱乐城| 盈丰国际博彩网| 3U百家乐娱乐城| 扎鲁特旗| 赌场百家乐是如何| 百家乐官网网投注| 百家乐旺门打| 百家乐官网赌博在线娱乐| 大发888创建账号翻译| 百家乐官网制胜绝招| 香港六合彩开奖结果| e世博百家乐娱乐场| 百家乐官网庄闲机率| 百家乐规律和方法| 百家乐官网赌场娱乐城大全|