基於Nios II軟核的多核處理器系統的設計與實現

2020-12-24 電子產品世界

        摘要:本文設計了一個基於FPGA解決方案的多核處理器系統,整體上提高了系統性能,解決了單核處理能力提升受到的制約。通過對多核系統體系結構和核間通信技術的研究,最終實現了一個利用互斥核實現資源共享的雙Nios II軟核處理器系統,並在Altera公司的FPGA開發板DE2上進行測試,測試結果表明所設計的雙核系統能穩定運行。

  引言

本文引用地址:http://www.eepw.com.cn/article/245929.htm

  多核處理器技術的研究源於工程師們認識到,在提高單核晶片速度的同時,會產生過多熱量卻無法帶來相應的性能改善,傳統的以提高主頻提升性能的方法,會使處理器散發出巨大的熱量,其性價比也令人難以接受,速度稍快的處理器價格更高。因此多核晶片應運而生,2001年IBM公司推出第一個商用的雙核RISC(精簡指令集計算機)處理器Power4。

  目前關於多核技術的研究主要包括核結構研究(同構還是異構)、程序執行模型、Cache設計(多級Cache設計與一致性問題)、核間通信技術、總線設計、作業系統設計(任務調度、中斷處理、同步互斥)、低功耗設計、存儲器牆、可靠性及安全性設計。本文利用互斥核和共享存儲器等技術實現多核系統共享資源的訪問,使用Quartus II的Sopc Builder構建一個雙NiosII軟核處理器系統,最終在Altera的FPGA開發板DE2上驗證了該系統的正確性。

  1 系統總體設計方案

  與單核處理器系統的設計所不同,在設計雙核系統時有若干問題需要重新考慮:如何實現多處理器核之間的數據共享;在實現數據共享之後,雙核系統必須提供有效的機制,以防止共享數據被破壞;為了提升整個系統的效率,必須仔細考慮系統任務的分配和調度如何進行,以免出現進程衝突或進程閒置,從而影響系統的整體性能。

  圖1顯示了雙Nios II 嵌入式處理器核系統的體系結構。本系統中有兩個Nios II處理器核,CPU1作為主要CPU用來負責控制和調度整個系統,CPU2作為從處理器用來負責具體任務的執行。其次,每個處理器都有獨立的定時器作為看門狗使用,以防止處理器進入異常或死循環。此外,連接到CPU1的JTAG-UART接口,用於系統的各項測試。片上RAM作為共享存儲器連接到兩個處理器,提供處理數據的共享。而與CPU2相連的UART負責將處理結果傳遞到PC主機上顯示。

  2 系統軟硬體設計

  2.1 硬體設計

  在雙核系統中,為了實現並行處理應用程式的任務,系統必須為雙核提供有效的數據處理和信息進程的共享機制。為此,本設計為系統配置了兩種存儲器的共享:一種處理器用來實現處理器之間狀態的溝通,另一種用來實現處理數據的共享。此外由於兩個處理器都會對共享數據存儲器進行讀寫操作,這樣就會產生一個問題:在不破壞存儲器中數據的同時,如何確保系統正確地進行讀寫操作。因此硬體互斥核Mutex被嵌入雙核處理器系統中。Mutex可以確保雙核系統中只能有一個處理器來訪問共享數據存儲器。

  Mutex核實質上是一種共享資源,提供「測試和設置」操作。當處理器測試到Mutex核可用時,就會在一個具體操作中暫時佔有Mutex核,之後當處理器完成對存儲器的讀寫操作時就會釋放Mutex核,具體過程如圖2所示。對共享存儲器的互斥訪問是通過Mutex核的API函數來實現的:

  Altera_avalon_mutex_open()

  功能:聲明一個Mutex句柄,允許所有其他函數訪問Mutex核。

  Altera_avalon_mutex_trylock()

  功能:試圖鎖定Mutex核,若失敗則立刻返回。

  Altera_avalon_mutex_lock()

  功能:鎖定Mutex核,直到成功聲明Mutex核才返回。

  Altera_avalon_mutex_unlock()

  功能:解鎖Mutex核

  Altera_avalon_mutex_is_mine()

  功能:判斷CPU是否擁有Mutex核

  Altera_avalon_mutex_first_lock()

  功能:測試復位後Mutex核是否被釋放。

存儲器相關文章:存儲器原理


相關焦點

  • 基於NiosⅡ軟核處理器的七段數碼管動態顯示
    SOPC是基於FPGA解決方案的SOC(System On Chip),構成SOPC的方案也有多種。第一種是基於FPGA嵌入IP硬核的SOPC系統,即在FPGA中事先植入嵌入式系統處理器,目前最常用的嵌入式處理器大多採用了含有ARM的32位智慧財產權處理器核的器件。
  • LEON3開源軟核處理器動態圖像邊緣檢測SoC設計
    實現了多路數據並行處理和DSP模塊加速處理,配合CPU軟核的協調參數配置功能,可以充分發揮硬體設計的高速性和靈活性。此外,由於動態圖像邊緣檢測是圖像處理應用中必不可少的一部分,因此文中設計的動態圖像邊緣檢測SoC可以方便的移植到其他圖像處理應用中,具有廣泛的應用前景。
  • 基於LEON3處理器動態圖像邊緣檢測的SoC設計
    文中採用局部熵邊緣檢測算法,將圖像採集,邊緣檢測和圖像顯示三個部分封裝設計為IP核,通過APB總線嵌入到LEON3的經典SoC架構中。與利用微控制器或DSP實現的動態圖像邊緣檢測系統相比.基於LEON3的動態圖像邊緣檢測SoC能夠充分發揮硬體設計的高速性和靈活性,並且系統具有很好的可移植性與可配置性,佔用資源少,速度快,具有良好的應用前景。
  • 基於NIOS II多處理機技術的的網絡數據處理研究
    該系統內部既然可以採用並行技術,如指令流水線、多個ALU單元和專用的協處理器等,但這些並行技術只能提升次序程序的指令執行速度,它無法提供進程級、作業級的並行性。採用多處理器、多指令多數據流(MIMD)系統,可以提供高級並行性,它經過並行處理實現最大的效率與功能,高級並行不但可以是多個處理器並且操縱,並且並且還能夠是多個程序(進程)在同一時間片內執行。
  • 多核處理器下智能車載平臺的設計與實現
    本文分析了目前市場上主流的嵌入式虛擬化產品及相關的技術,提出了一種基於分區機制的高效智能車載平臺的實現方法,在多核處理器的硬體環境下,實現了汽車控制與信息系統的融合,並在OMAP4430硬體平臺上對其功能進行了驗證。
  • SoC設計中的IP軟核與硬核的對比及方案選擇
    IP核可以兩種形式提供給客戶:軟核和硬核。兩種方式都可使客戶獲得在功能上經過驗證的設計。軟核也被稱為可綜合內核,需要由客戶進行綜合併在其SoC上實現。而硬核已完全實現(完成了版圖設計),可直接用於製造。(從技術上說,一種設計只有生產後才能實現。但是在此情況下,實現的意思是指安排布局並可直接投入生產)。
  • 基於SOPC技術的醫用呼吸機主控系統設計
    摘要: 以Altera公司FPGA晶片為平臺,利用SOPC技術和Nios II處理器設計並實現了醫用呼吸機關鍵詞: 呼吸機;SOPC;Nios II軟核處理器;壓力補償  呼吸機是可以代替人的呼吸功能或輔助人的呼吸功能的儀器。它適用於呼吸衰竭、甚至停止呼吸的病人做人工呼吸之用。它能幫助病人糾正缺氧和排出二氧化碳,是挽救某些危重病人生命的重要工具。
  • Quartus II和Nios II使用時遇到的錯誤及解決方法總結
    通過修改bsp的配置即可,Bsp右擊-nios ii –bspeditor 取消選中所有選項即可。問題8:nios ii SEVERE System ID mismatch -connected 0x1001703a, expected 0x0.原因一:nios ide/sdk使用的sopcinfo或者ptf文件和你對fpga配置的文件不是同一個工程建立的。原因二:system id不正確。
  • 基於FPGA的GPS和GSM雙重車載定位系統設計
    而車在行進過程中進行導航時,尤其是在路口以及立交橋等特殊地點的導航時,系統往往需要更為精確的定位。為此,本設計充分利用了FPGA強大的邏輯控制功能和NiosⅡ處理器的多可配置標準外設接口功能,結合GPS和GSM功能模塊,設計了一款雙重定位系統。
  • Esperanto公司實現1000多核RISC-V處理器
    打開APP Esperanto公司實現1000多核RISC-V處理器 憲瑞 發表於 2020-12-10 09:23:12 對x86處理器來說,開源的RISC-V處理器威脅越來越大,它不僅能實現5GHz的超高頻率,現在多核並行上也甩開了x86,Esperanto公司已經實現了1000多核RISC-V處理器。
  • 基於FPGA的汽車ECU設計充分符合AUTOSAR和ISO 26262標準(二)
    位於 RTE 層以上的是軟體組件,它們用於實現應用並通過 AUTOSAR 接口與 RTE 進行通信。  由於 AUTOSAR 架構內在的複雜性,需要功能強大的嵌入式計算平臺才能進行部署。如今,典型的 ECU 設計基於運行在 MCU 平臺上的 32 位單核處理器。但是單核越來越難以提供所需的全部計算能力。
  • 基於VHDL的直流電機控制功能模塊設計
    本文利用ALTERA公司最新開發的SOPC解決方案,提出了基於NiosII軟核處理器的直流電機功能模塊的設計方案,給出了VHDL代碼生成功能模塊IP核。IP核的生成,不僅方便設計者靈活使用,節省資源,也大大縮短了設計周期。設計者可以根據需要直接調用IP核來組成NiosII系統,然後將此系統下載到FPGA中實現。
  • 超越x86 開源的RISC-V處理器實現1000多核並行
    對x86處理器來說,開源的RISC-V處理器威脅越來越大,它不僅能實現5GHz的超高頻率,現在多核並行上也甩開了x86,Esperanto公司已經實現了1000多核RISC-V處理器。RISC-V峰會將在12月8到10日舉行,這幾天有不少公司都公布了自己基於RISC-V指令集的新產品,比如希捷發布的硬碟主控晶片。
  • 基於硬體輔助虛擬化的多核確定性重演系統研究
    確定性重演技術運用到區塊鏈協議中有助於實現高性能公鏈。針對單核處理器的確定性重演技術已經相當成熟,並且已經出現了眾多成熟穩定的商用系統。然而多核處理器環境的出現給確定性重演技術帶來了極大的挑戰。在多核處理器環境下,多個處理器核對共享內存的交織訪問也是導致程序執行結果不確定的重要原因之一。
  • Mentor Graphics憑業界領先能力推出適用於微控制器和多核應用的...
    新版本增加了一個多核框架,可管理進程間通信(IPC)和複雜異構片上系統(SoC)的處理器生命周期,並增加了利用Imagination和Vivante GPU 的支持的加強型Nucleus RTOS圖形功能。
  • 如何使用大小核設計架構實現強效省電的多核處理器
    大小核(big.LITTLE)晶片設計架構正快速崛起。在安謀國際(ARM)全力推廣下,已有不少行動處理器開發商推出採用big.LITTLE架構的新方案,期透過讓大小核心分別處理最適合的運算任務,達到兼顧最佳效能與節能效果的目的,以獲得更多行動裝置製造商青睞。
  • 基於FPGA的移位寄存器流水線結構FFT處理器設計與實現
    近年來現場可編程門陣列(FPGA)的飛速發展,與DSP技術相比,由於其並行信號處理結構,使得FPGA能夠很好地適用於高速信號處理系統。由於Altera等公司研製的FFT IP核,價錢昂貴,不適合大規模應用,在特定領域中,設計適合於自己領域需要的FFT處理器是較為實際的選擇。
  • 基於PGL22G的物聯網Sensor HUB設計
    軟核的移植,使之成為MCU,在軟核中通過Wishbone總線進行互聯。隨後,基於OpenMIPS架構進行μC/OS系統的移植,在μC/OS系統下通過GPIO口進行數據採集,並將採集到的存儲至EEPROM中,可通過電腦查詢EEPROM存儲的數據。通過相應的通信模塊進行傳感器數據的發送。發送的數據可以在相應微信公眾號中實時查看。
  • 基於FPGA的可擴展高速FFT處理器的設計與實現
    摘 要:本文提出了基於FPGA實現傅立葉變換點數可靈活擴展的流水線FFT處理器的結構設計以及各功能模塊的算法實現特別是多級流水線處理的FFT結構使得基於FPGA器件的FFT處理器完成不同點數的FFT計算時可以通過增減模塊級數很容易地實現。
  • 掌握關鍵技術,令多核設計事半功倍
    每一代新工藝幾何尺寸和新興微架構的進步,在相應性能上所能帶來的增益正在逐漸減少──顯然,藉助更快速度以實現摩爾定律的方法不再靈驗!功耗和微架構改良的限制,使單一處理器的發展前景受挫,業界的關注焦點已轉向多處理器或多核晶片架構的開發潛力。