?

無線傳感器節點SoC事務級功耗仿真器設計

2014-11-30 07:48李翔宇殷樹娟
計算機工程與設計 2014年1期
關鍵詞:仿真器功耗總線

劉 瑋,李翔宇,殷樹娟

(1.清華大學 微電子學研究所,北京100084;2.北京信息科技大學 理學院,北京100192)

0 引 言

近年來,無線傳感器越來越廣泛的利用在環境監測、軍事偵查、目標定位等領域,因此相關領域的研究也引起了廣泛關注,并且發展非常迅速[1]。隨著集成電路制造技術的發展,無線傳感器網絡節點的電子系統變得越來越復雜,人們已經提出系統芯片即SoC作為無線傳感網絡節點[2]。這樣復雜的系統對設計自動化的要求越來越高,為了提高SoC集成電路的設計效率,往往采用基于高層次的設計方法[3]。

無線傳感器網絡節點具有低功耗、低成本、使用壽命長等特點[4],其中功耗優化是無線傳感器節點設計中的重要課題。為了使節點有更長的使用壽命,采用由太陽能電池等能量采集器件配合儲能電池的電源形式[5],這是一項具有吸引力的供電方式。如何在有限和實時變化的能量供給下,通過調整系統運行狀態和調度任務,使系統的能量利用率最高,這個問題是近年來相關領域的研究熱點之一。

目前,無線傳感器節點系統仿真器多用于功能模擬[6],缺少對系統的功耗行為進行仿真的快速仿真器。而帶有功耗管理的異質多核架構使系統的功耗問題變得越來越復雜,能夠執行的任務復雜度也越來越高。針對無線傳感器網絡節點SoC設計中存在的軟硬件系統設計的功耗問題和任務調度優化問題研究,本文提出一個利用SystemC搭建的異質多核傳感器節點SoC仿真器,它面向本課題組提出的傳感器節點SoC架構,對系統任務的運行時間和功耗行為進行事務級建模,使我們能夠評估片上系統功耗情況,使系統的功耗和性能優化。

1 目標異質多核SoC平臺結構

1.1 異質多核傳感器節點SoC系統結構

本文的目標是搭建一個無線傳感器網絡節點片上系統的高層次仿真器,采用SystemC面向對象的方式,描述硬件架構和軟件行為,用于本課題提出的一種異質多核傳感節點SoC結構的任務調度和功耗管理方法研究。

目標SoC的結構如圖1所示,為了充分降低SoC的功耗,同時滿足對工作性能的要求,平臺中提供了用于實現傳感器節點功能的不同實現方式的功能單元,既有通用處理器、又有專用的協處理器、硬件加速引擎,所以是一個異質多核的系統。每個功能單元一般提供幾種工作模式——對應不同的工作頻率和電源電壓,單元在不同工作模式下具有不同的功耗和性能。除此之外,系統內還配備了運行任務調度和功耗管理程序的調度控制器,這也是目標架構中的關鍵特殊IP。功能單元之間通過普通的片上總線互連,調度控制器則通過控制總線和所有受控功能單元連接,進行命令和消息的交換。需要建模的硬件對象除了上述單元外,還有傳感器輸入、通信模塊、存儲器、總線等。

圖1 無線傳感器節點異質多核SoC仿真器整體架構

1.2 異質多核傳感節點SoC的任務調度和功耗管理

為了不讓能量問題制約無線傳感器網絡節點系統發展,本論文研究的節點能量單元普遍采用從工作環境中采集能量,工作時功耗管理的目標是適度利用實時采集到的能量,使得系統能量能夠滿足系統永久的工作 (在硬件資源能夠維持工作的條件下)[7]。

對在節點SoC運行的程序進行基于功耗管理的任務調度,這里任務是指在一個功能單元上完成的最大化的相連操作的集合,是構成應用程序的基本組件,也是調度的基本單位。與單核系統的任務調度不同,多核系統的任務調度存在任務分配、調度、仲裁及負載均衡問題[8],本論文研究的異質多核傳感節點SoC通過靜態調度和動態調度相結合的方式,靜態調度是指首次分配方案,主要用在初始化平臺。動態調度是指,根據當前系統能量消耗和實時能量采集情況,運行動態調度算法,算法調度結果是將每個任務分配到適合的執行單元,確定執行單元的功能、工作模式、工作時間,使得所有任務都滿足時間約束、硬件資源約束和功耗約束。

本文仿真器用來模擬在給定任務調度和功耗管理方法下,系統中各個任務執行過程的時間和功耗信息,從而能對設計模塊和模塊工作模式的選擇做出評估,因此需要考慮實時能量供給情況、實時任務請求情況對系統的影響——既包含能量供給模型、任務請求模型。

2 事務級建模方法

2.1 不同模塊類的劃分和實現

采用面向對象的方式首先要對系統中各類軟硬件事物進行類的定義和劃分,將系統不同模擬對象抽象成不同的類,在事務級層面上,刻畫出我們關心的特性。根據刻畫事物的不同屬性,定義仿真器基本類,主要包含3種類型:實體類、功能類和信息類。

實體類對應系統中各類硬件模塊的實體,包含處理器類、存儲器類、控制器類和互聯類4個基類。在用SystemC建模中,每個實體類可以刻畫成一個模塊,通過進程、通道、端口來模擬模塊的行為[9]。關于處理器單元的功能,由于具體功能對于系統的功耗和延時分析沒有影響,因此在本模型中不進行無關的功能描述。建立抽象通用處理器類作為各種處理器單元的父類,通用處理器類、專用處理器類、可重構處理器類都是它的子類,將繼承了父類中刻畫的處理器的基本屬性,并添加模型需要的新屬性,如可重構處理器需要添加功能屬性和重構方法。

仿真器模擬目標是對節點SoC進行功耗、延時評估,據此,我們定義處理器模塊的基本屬性參數有工作模式、功耗、功能、速度。不同工作模式代表不同工作電壓、時鐘頻率,功能標記處理器能夠執行的不同操作,速度代表性能。處理器類的成員函數刻畫處理器行為,如初始化函數initialization()、配置函數 be_config()、工作函數process()。處理器的主進程是SC_THREAD類型,當處理器上電或收到重置信號時,執行初始化,即設定處理器的工作模式和功能參數。當接收到調度器發送的配置命令時,執行配置函數,按配置信息設置處理器工作模式、功能參數。當接收到調度控制器發來的工作命令時,處理器執行工作函數。工作函數的主要用處是觸發單元間的數據讀寫操作、操作按照功能執行的時序觸發,模擬處理器的行為。處理器工作延時則是根據處理器當前功能和工作量決定的,即工作延時為功能和工作量 (任務的屬性)的乘積。雖然刻畫的仿真器沒有包含處理器功能模擬功能,但是通過重載處理器執行工作函數process(),用其描述單元的功能,即可以實現事務級的功能模擬。

存儲器類,刻畫系統中共享存儲器模塊,定義了一系列讀寫數據接口 (sc_interface)描述存儲器行為,如read(),write()等函數,可以方便實現對存儲器的讀寫操作。存儲器的屬性是起始地址、結束地址,刻畫存儲器的大小,成員函數read()執行讀取給定的地址的數據,如果當前存儲器為空,則停止讀操作。而write()函數根據給定地址寫數據,如當前存儲器為滿,則寫操作停止。

控制器類是調度控制器及其運行的軟件的功能模型,仿真器需要對調度控制器進行功能建模,使其擁有運行調度和功耗管理算法與生成對各個處理器單元、互聯控制和管理的調度信息的功能??刂破黝惸M控制器功能,主要完成以下3種功能:第一,可以描述實時能量采集、電池剩余電量模型;第二,使基于信息感知的能量動態調度算法能夠在控制器內運行;第三,能夠將算法實現的調度信息發送給指定的處理器。

對于功能一的實現,定義平臺屬性參數:實時獲得的能量,能量消耗,儲能電池的當前電量等電池參數,這些參數能夠反映一個實時能量采集的SoC系統的能量供給情況。對于功能二,定義動態調度算法函數,由主進程調用。函數的基本輸入是剛才定義的平臺屬性參數和實時的能量信息、電池電量信息、任務請求,還有預先建立的功耗預測數據,基本輸出是當前時間步的調度結果,即每個任務在指定處理器上的工作模式、運行時間。對于功能三,定義發送調度信息函數,將函數分為兩類,一類是處理器配置命令發送函數send_config(T),配置信息用一個結構體描述,其中包含了將要傳輸給處理器的工作模式、功能參數。另一類是調度命令send_process(),調度信息同樣用結構體描述,包含讀寫數據的地址、工作量參數。

仿真器還需要對通信操作進行功能模擬,因為通信操作會引起互聯部分和其它單元的動作和狀態變化,通信模擬的方法是構建總線模型,對總線進行功能描述?;ヂ擃愂浅橄罂偩€模型,對總線的功能進行描述,下節將會對總線建模做詳細介紹。

信息類,是對系統中抽象信息進行定義,其中包括模塊之間傳遞的各類數據、消息、命令,和仿真器調度的任務、程序。系統在交易級建模,因此模塊之間的信息交互是在命令層次上。定義模塊之間傳遞的命令、消息和數據結構體 (struct),便于修改和規范化設計??刂破靼l給處理器的配置命令的屬性是傳遞執行任務的優先級、工作周期和處理器的工作模式、功能。數據命令的屬性是傳遞數據量,數據地址,但不包括具體數值——只是記錄數據的通信開銷。消息的屬性是各個處理器反饋回來執行任務的功耗、時間參數。任務是調度的基本單位,程序是最大化的彼此相連的一組任務,任務也定義為結構體,屬性有任務類型標識,在每個處理器的每種工作模式下的等效工作量——可以反映任務在功能單元上的執行效率。程序信息則以任務流圖的形式存儲。

仿真器的功能類,主要是系統工作信息的跟蹤器,記錄系統工作時用戶關心的功耗、時間信息,給用戶提供系統工作報告。首先實現跟蹤器記錄系統信息的功能,定義讀取函數,只要處理器的工作模式、功能、狀態3個參數中任意一個參數發生改變,跟蹤器就記錄當前系統中每個模塊的狀態。其次,跟蹤器記錄系統總線的延時情況,總線根據傳輸數據量不同延時不同計算傳輸功耗和通信時間。最后,實現跟蹤器給用戶匯報系統功耗、時間信息的功能。當處理器返回工作模式值時,跟蹤器通過查表得到處理器當前模式下的功耗,系統的總功耗則是通過每個模塊的平均功耗相加得到。這樣跟蹤器就可以向用戶提供SoC的功耗、時間信息。

2.2 總線模型

對總線進行事務級建模,兩模塊之間的一次數據或者事件的傳輸,模塊間通信通過函數調用來進行[10]。模塊之間的通信通過分層通道 (channel),通道連接口 (interface),模塊通過端口 (port)連接到通道,如圖2所示。

圖2 接口、通道、端口的連接

整個仿真器采用兩套總線模型,一個是仿真器平臺各模塊之間聯系的功能總線,另一個是直接傳輸控制器調度結果給處理器的控制總線。從片上總線的角度來看,主要功能單元是總線主設備、總線從設備、仲裁器,如圖3所示。主設備是指能夠向總線發請求的模塊,根據本設計要求將其分成3種類型,命令型主設備、數據型主設備、直接型主設備,每一種主設備有唯一的優先級。其中,命令型主設備主要特征是傳輸數據字和操作指令,模塊處理器類為命令型設備。數據型主設備的主要特征是傳輸數據塊,對大塊數據進行數據處理,數字信號處理器、ASIC類模塊為數據型主設備。而一些調試模塊則定義成為直接型主設備。

不同主設備通過不同接口和總線進行通信,命令型接口要實現兩種操作:讀命令操作和寫命令操作,讀寫函數每次操作一個數據字。讀寫完立即返回狀態函數get status()。接口讀寫函數中包含鎖定lock信號,如果lock=true,則表示總線下一個請求鎖定在同一個主設備,如圖4所示命令型接口定義的成員函數。

圖3 基于總線整體架構

圖4 命令型接口類定義

數據型接口也定義了兩種操作:成組讀操作和成組寫操作。通過端口調動總線的成組讀寫操作,形成一次數據塊讀寫交易,在成組模式下的鎖定lock信號,主要有兩個功能:一是總線下一個請求鎖定在同一個主設備,二是總線通信不能被打斷。如圖5所示數據型接口類定義。

圖5 命令型接口類定義

直接型接口同樣定義了兩種操作:直接讀總線操作和直接寫總線操作,不用仲裁,不用遵守總線協議。主要用于軟件程序調試模塊,如圖6所示直接型接口類定義。

圖6 所示直接型接口類定義

從設備是指能夠對總線請求做出響應的模塊,典型的從設備主要指的是存儲器類模塊。從設備接口描述了總線和從設備之間的通信。根據不同的主設備的定義,對從設備收到總線請求,對應有3種不同的響應,讀寫命令操作讀取指定的數據字或命令,成組讀寫操作能夠讀寫數據塊,調試程序接口函數為調試提供接口,如圖7所示。

圖7 從設備接口類定義

平臺各模塊之間聯系的總線,是多對多的連接,所以在數據、命令傳輸過程中會產生沖突,因此單獨刻畫了仲裁器模塊??偩€通道定義一個特定的通道和接口方法arbitrate()函數,總線仲裁器能夠直接連接到總線,仲裁器類 (通道)具體實現通過繼承仲裁器接口定義的arbitrate()函數,完成判定優先級的操作。仲裁器被連接到總線通道中專門定義的一個端口,總線可以通過特定端口訪問仲裁器。仲裁規則是依據優先級和鎖住 (lock)兩個信號判斷執行優先級。

直接傳輸調度控制器的總線,直接向主設備傳輸調度結果,不會出現沖突,直接用簡單的握手協議通道類進行刻畫。

2.3 功耗建模

實際SoC系統芯片的功耗和輸入數據有依賴關系,系統程序的具體操作和實際的數據輸入有關,即實際數據輸入會影響模塊整體的功耗。因為功耗仿真不能脫離功能仿真,如果對系統進行功能仿真,仿真速度慢,設計周期長[11]。因此,本文采用了功耗仿真和功能仿真分離的架構,一方面通過單純的功能仿真器 (可按軟件實現,但是功能劃分要與硬件實現的功能劃分一致)對系統的功能仿真,記錄特定輸入數據下的操作軌跡,其中包括了數據相關分支處的分支條件判斷結果。仿真器每個涉及數據相關分支的功能單元的process()函數中都包含分支判斷語句,功耗仿真時,仿真器根據記錄的操作軌跡中的判斷結果選擇相應的分支運行,從而得到相應的延時、輸入輸出數據流,實現功耗仿真。

采用功能仿真和功耗仿真分離的架構具有以下優點:第一,實現簡單,功耗仿真器中不需要進行復雜的功能描述,而功能可以按照軟件實現的方式描述,可以快速建模;第二,仿真速度快,因為功耗仿真和功能仿真的程序都得到了簡化,因此可以提高仿真速度,而且在對前一條操作軌跡進行功耗仿真的時候,可以同時運行后面輸入數據的功能仿真;第三,提高了功耗仿真器的通用性,因為功耗仿真器與被仿真系統的功能之間的耦合降低了,因此,當系統功能改變,功耗仿真器程序僅需進行很少改動。

2.4 仿真器設計

利用仿真器基本類搭建節點SoC系統,方法如下:第一,功能單元進行實例化,每個功能單元都是多重繼承類的對象,繼承處理器或存儲器的屬性,同時根據總線系統中的角色繼承主或從設備接口,并和總線端口連接,使主設備能夠向總線發送請求;第二,根據系統設計,連接各個模塊,檢查調度器、跟蹤器的連接,使其系統能夠正常通信;第三,對任務、程序等軟件內容的實例化,對將要完成的程序生成靜態調度方案,確定每個任務分配給適合的處理器,處理器完成任務的工作模式、功能、數據量,確定系統實時能量采集和電池電量,編寫動態調度算法程序嵌入到控制器的算法函數中。

3 仿真實驗

本文采用仿真器搭建測試SoC,系統由3個主設備、兩個從設備構成,3個主設備分別是數據型、命令型、直接型主設備,兩個從設備為全局存儲器,如圖8所示。

圖8 仿真器搭建平臺

已知3種主設備運行不同任務的功耗、將要執行的任務流圖,測試任務主要是讓3種主設備完成從存儲器讀寫數據,最后平臺回到空閑狀態。調度控制器根據實時能量供給產生調度結果跟蹤器記錄系統能量——時間信息,如圖9所示。

圖9 系統功耗——時間

4 結束語

功耗分析是傳感節點芯片設計的重要內容,目前缺少適用的高層次SoC功耗仿真器,本文介紹了一種基于SystemC的傳感節點SoC的功耗行為事務級仿真器構成方法,該仿真器因為盡量減少對功能的描述,采用事務級建模,具有程序簡單、運行速度快的優點。用該仿真工具對一個異質多核傳感器節點進行了建模仿真、功耗評估,縮短系統開發的時間。

[1]YU Kai,XIE Zhijun,JIN Guang,et al.Design and implementation of low-power wireless sensor network node [J].Microelectronics & Computer,2012,29 (9):157-159 (in Chinese).[于凱,謝志軍,金光,等.低功耗無線傳感器網絡節點設計與實現 [J].微電子學與計算機,2012,29 (9):157-159.]

[2]Mark Hempstead,David Brooks,Wei Gu-Yeon.An accelerator-based wireless senor network processor in 130nm CMOS[J].IEEE Transactions on Emerging and Selected Topics in Circuits and Systems,2011,1 (2):193-202.

[3]LI Hui,CHEN Xi.SystemC electronic system level design[M].Beijing:Science Press,2010:130-131 (in Chinese).[李揮,陳曦.SystemC電子系統級設計 [M].北京:科學出版社,2010:130-131.]

[4]Sonavane S S,Kumar V,Patil B P.Designing wireless sensor network with low cost and low power[C]//Proceeding of the 16th International Conference on Networks,2008:1-5.

[5]HONG Danlong.Research of low power technology for WSN node with environmental energy replenishing [D].Changsha:Central South University College of Information Science & Engineering,2011:1-3 (in Chinese).[洪丹龍.適應環境能量補給的無線傳感器網絡節點低功耗技術研究 [D].長沙:中南大學控制科學與工程專業,2011:1-3].

[6]Lui S,Gopalakrishnan S,Liu Xue,et al.Cyber-physical systems:A new frontier[C]//IEEE International Conference on Sensor Networks,Ubiquitous,and Trustworthy Computing,2008:1-9.

[7]Amankansal,Jason Hsu,Sadaf Zahedi,et al.Power management in energy harvesting sensor network [J].ACM Transaction on Embedded Computing Systems,2007,6 (4):32-35.

[8]GAO Jinhua.Research and implementation of task scheduling based on multicore[D].Changsha:Central South University College of Computer Application,2011:10-15 (in Chinese).[高金華.基于多核的任務調度研究與實現 [D].長沙:中南大學計算機應用技術專業,2011:10-15.]

[9]Bhasker J.A SystemC primer[M].XIA Yuwen,GAN Wei,transl.Beijing,Beihang University Press,2008:203-206 (in Chinese).[Bhaskef J.SystemC入門 [M].夏宇聞,甘偉,譯.北京:北京航空航天大學出版社,2008:203-206.]

[10]Chris Rowen.Engineering the complex SOC [M].WU Wuchen,HOU Ligang,transl.Beijing:China Machine Press,2006:102-110 (in Chinese).[Chris Rowen.復雜SoC設計 [M].吳武臣,侯立剛,譯.北京:機械工業出版社,2006:102-110.]

[11]XU Hui,WANG Zhuqiang,WANG Zhaojun.Co-design and co-simulation on the system level [J].Engineering Science,2006,8 (4):86-88 (in Chinese).[徐輝,王祖強,王照君.軟硬件協同設計和系統級仿真探索 [J].中國工程科學,2006,8 (4):86-88.]

猜你喜歡
仿真器功耗總線
基于任務映射的暗硅芯片功耗預算方法
AI仿真器將大大提高科學領域的仿真模擬速度
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉以太網總線設計
一種基于CAN總線的誤碼測試方法
基于多用戶無線仿真器系統的研究
揭開GPU功耗的面紗
數字電路功耗的分析及優化
分析利用仿真器(RTDS)測試小電流接地選線裝置的可行性
一種面向星載計算機的功能級功耗估計方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合