全局架構
全局架構如圖 1 所示,其組成包括:
* 一系列非專用(通用)處理器 (GPP)。GPP 負責支持軟件線程的執行,以及包括線程調度在內的一系列操作系統服務。GPP 在指令集架構和提供的服務數量方面不必同構。
* 一系列動態可重配置分區(也稱可重配置區域 (RR))。動態可重配置分區負責并行或串行執行一系列硬件線程。與 GPP 相似,由于采用硬件操作系統 (HwOS),RR 也支持操作系統服務的執行。這些區域對應著精粒度 (FPGA) 或粗粒度(可重配置處理器)架構。
* 共享著一條或多條物理通信通道的虛擬通信通道,用于控制、數據和配置。控制通道負責把操作系統服務之間的通信分配給執行單元(GPP 和 RR)。數據通道負責傳輸與環境(器件、傳感器)有關的信息和線程之間的信息交換。配置通道負責在配置存儲器和執行單元之間傳輸軟件線程(二進制代碼)和硬件線程(部分比特流)的配置。
每個處理器都有自己的本地存儲器。該存儲器負責存儲本地數據,在適用的情況下,也可存儲軟件代碼。連接到數據通道的共享存儲器可以實現不同處理器上線程間的數據共享。每個執行單元都可以訪問共享存儲器上存儲的數據和軟件執行資源程序。每個資源還可以訪問配置存儲器,以保存和恢復其執行上下文。采用這種結構,可以在任何執行資源上實現任何線程或服務。
在 RR 內部,只有硬件任務需要動態重配置。負責托管任務的動態區域 (DR) 被包含操作系統服務硬件實現的靜態區域 (SR) 所包圍,同時在 RR 內外部提供通信介質。內部數據流通信依靠專用的片上網絡。DR 和 SR 之間的接口采用總線宏并且有固定的位置。為實現該約束以及通信介質異構性的抽象,我們采用中間件方案來提供到可重配置分區的虛擬訪問。RR 根據圖 2 中定義的模型構建。FOSFOR 原型平臺由能夠直接支持這種架構模型的動態可重配置 FPGA 器件構成。我們選用了 Virtex-5? 器件,因為其能夠重配置矩形區域。
我們根據預先測算的應用線程資源需求定義了調度/布局算法,以確保每個 RR 中 FPGA 元件(LUT、寄存器、分布式存儲器、I/O)的高效利用。
?
圖 2 — 可重配置區域結構
圖中文字:
控制??上下文(比特流)??靜態區域??可重配置區域??靜態區域??數據??硬件操作系統??控制 動態區域??線程??數據??片上網絡??硬件分區
操作系統、片上網絡及中間件
為具備靈活性,FOSFOR 架構使用了至少兩個操作系統實例:一個為運行在每個處理器上且負責處理軟件線程的軟件操作系統;另一個為能夠管理硬件線程的硬件操作系統。為了在性能、開發時間以及標準化之間實現最佳平衡,我們使用了現有的軟件操作系統和全新的硬件操作系統。
該硬件操作系統利用賽靈思 FPGA 的動態部分重配置功能,在調度硬件線程方面與傳統操作系統調度軟件線程一樣靈活。
對軟件操作系統的要求是實時行為、能夠處理多個處理器并提供基本的進程間通信服務。我們選用了一個免費的開源操作系統 RTEMS。出于兼容性原因,我們選用了 LEON Sparc 軟核處理器,同軟件節點一樣,其也是免費和開源的。
該硬件操作系統(HwOS)利用賽靈思 FPGA 的動態部分重配置功能,在調度硬件線程方面與傳統操作系統調度軟件線程一樣靈活。硬件線程由動態和靜態兩大部分組成。動態部分內含一個用來執行線程功能的 IP 模塊和一個用來使服務調用次序與硬件操作系統同步的有限狀態機。靜態部分則內含一個與硬件操作系統相連的控制接口和一個用于與其它軟硬件任務進行交換數據的網絡接口。
為支持多種線程間數據傳輸需要,我們開發出了一種靈活的片上網絡 DRAFT。傳統操作系統的通信服務足以支持軟件線程間的通信。但在我們的設計中,操作系統還需要支持硬件線程間的通信。為此,我們專門設計了 DRAFT 網絡。我們針對一個或者多個 DR 逐一綜合硬件線程,同時靜態地定義每個 DR 接口。
通信接口的靜態定義讓我們可以定義靜態的片上網絡。一般來說,硬件線程要求高帶寬和低時延,故片上網絡必須提供高性能。我們為 DRAFT 選擇的拓撲是一種胖樹拓撲的擴展。我們設計的主要目的是為了限制資源開銷,同時實現高性能的線程間通信。
硬件平臺的異構性是設計人員部署應用時面臨的主要的復雜性障礙。在 FOSFOR 項目中,這種異構性不僅來自軟件域中的不同嵌入式處理器,還來自在單個平臺上同時集成軟件和硬件計算模型的做法。
采用中間件在硬件和軟件間建立抽象層,并提供同構編程模型,可以很好地解決這一問題。中間件實現了一組虛擬通道,可以在不必理會線程的實現區域的情況下進行線程間通信。這些服務跨平臺分布,提供了一個靈活的可擴展抽象層,讓 FOSFOR 構想臻于完善。
全局架構如圖 1 所示,其組成包括:
* 一系列非專用(通用)處理器 (GPP)。GPP 負責支持軟件線程的執行,以及包括線程調度在內的一系列操作系統服務。GPP 在指令集架構和提供的服務數量方面不必同構。
* 一系列動態可重配置分區(也稱可重配置區域 (RR))。動態可重配置分區負責并行或串行執行一系列硬件線程。與 GPP 相似,由于采用硬件操作系統 (HwOS),RR 也支持操作系統服務的執行。這些區域對應著精粒度 (FPGA) 或粗粒度(可重配置處理器)架構。
* 共享著一條或多條物理通信通道的虛擬通信通道,用于控制、數據和配置。控制通道負責把操作系統服務之間的通信分配給執行單元(GPP 和 RR)。數據通道負責傳輸與環境(器件、傳感器)有關的信息和線程之間的信息交換。配置通道負責在配置存儲器和執行單元之間傳輸軟件線程(二進制代碼)和硬件線程(部分比特流)的配置。
每個處理器都有自己的本地存儲器。該存儲器負責存儲本地數據,在適用的情況下,也可存儲軟件代碼。連接到數據通道的共享存儲器可以實現不同處理器上線程間的數據共享。每個執行單元都可以訪問共享存儲器上存儲的數據和軟件執行資源程序。每個資源還可以訪問配置存儲器,以保存和恢復其執行上下文。采用這種結構,可以在任何執行資源上實現任何線程或服務。
在 RR 內部,只有硬件任務需要動態重配置。負責托管任務的動態區域 (DR) 被包含操作系統服務硬件實現的靜態區域 (SR) 所包圍,同時在 RR 內外部提供通信介質。內部數據流通信依靠專用的片上網絡。DR 和 SR 之間的接口采用總線宏并且有固定的位置。為實現該約束以及通信介質異構性的抽象,我們采用中間件方案來提供到可重配置分區的虛擬訪問。RR 根據圖 2 中定義的模型構建。FOSFOR 原型平臺由能夠直接支持這種架構模型的動態可重配置 FPGA 器件構成。我們選用了 Virtex-5? 器件,因為其能夠重配置矩形區域。
我們根據預先測算的應用線程資源需求定義了調度/布局算法,以確保每個 RR 中 FPGA 元件(LUT、寄存器、分布式存儲器、I/O)的高效利用。
?
圖 2 — 可重配置區域結構
圖中文字:
控制??上下文(比特流)??靜態區域??可重配置區域??靜態區域??數據??硬件操作系統??控制 動態區域??線程??數據??片上網絡??硬件分區
操作系統、片上網絡及中間件
為具備靈活性,FOSFOR 架構使用了至少兩個操作系統實例:一個為運行在每個處理器上且負責處理軟件線程的軟件操作系統;另一個為能夠管理硬件線程的硬件操作系統。為了在性能、開發時間以及標準化之間實現最佳平衡,我們使用了現有的軟件操作系統和全新的硬件操作系統。
該硬件操作系統利用賽靈思 FPGA 的動態部分重配置功能,在調度硬件線程方面與傳統操作系統調度軟件線程一樣靈活。
對軟件操作系統的要求是實時行為、能夠處理多個處理器并提供基本的進程間通信服務。我們選用了一個免費的開源操作系統 RTEMS。出于兼容性原因,我們選用了 LEON Sparc 軟核處理器,同軟件節點一樣,其也是免費和開源的。
該硬件操作系統(HwOS)利用賽靈思 FPGA 的動態部分重配置功能,在調度硬件線程方面與傳統操作系統調度軟件線程一樣靈活。硬件線程由動態和靜態兩大部分組成。動態部分內含一個用來執行線程功能的 IP 模塊和一個用來使服務調用次序與硬件操作系統同步的有限狀態機。靜態部分則內含一個與硬件操作系統相連的控制接口和一個用于與其它軟硬件任務進行交換數據的網絡接口。
為支持多種線程間數據傳輸需要,我們開發出了一種靈活的片上網絡 DRAFT。傳統操作系統的通信服務足以支持軟件線程間的通信。但在我們的設計中,操作系統還需要支持硬件線程間的通信。為此,我們專門設計了 DRAFT 網絡。我們針對一個或者多個 DR 逐一綜合硬件線程,同時靜態地定義每個 DR 接口。
通信接口的靜態定義讓我們可以定義靜態的片上網絡。一般來說,硬件線程要求高帶寬和低時延,故片上網絡必須提供高性能。我們為 DRAFT 選擇的拓撲是一種胖樹拓撲的擴展。我們設計的主要目的是為了限制資源開銷,同時實現高性能的線程間通信。
硬件平臺的異構性是設計人員部署應用時面臨的主要的復雜性障礙。在 FOSFOR 項目中,這種異構性不僅來自軟件域中的不同嵌入式處理器,還來自在單個平臺上同時集成軟件和硬件計算模型的做法。
采用中間件在硬件和軟件間建立抽象層,并提供同構編程模型,可以很好地解決這一問題。中間件實現了一組虛擬通道,可以在不必理會線程的實現區域的情況下進行線程間通信。這些服務跨平臺分布,提供了一個靈活的可擴展抽象層,讓 FOSFOR 構想臻于完善。
評論
查看更多