新聞中心

EEPW首頁 > 手機與無線通信 > 設計應用 > 采用多內核無線虛擬系統(tǒng)原型的系統(tǒng)級調試

采用多內核無線虛擬系統(tǒng)原型的系統(tǒng)級調試

——
作者:作者:Stefano Angioni Gabe Ahn 時間:2007-01-26 來源:《電子查詢網(wǎng)》 收藏

在內核芯片制造前傳統(tǒng)的驗證與調試方法依賴于指令集仿真器(iss)模型。不幸的是,iss模型速度太慢,并且時序精度無法達到與系統(tǒng)硬件部分的rtl模型交互所需的要求。本文將提供一種采用虛擬系統(tǒng)原型實現(xiàn)系統(tǒng)級的多內核系統(tǒng)調試方法,該方法允許在pc機上實時執(zhí)行一個完整系統(tǒng)的周期精確仿真,而且執(zhí)行速度比基于iss的仿真要快得多。

開發(fā)一個復雜的多內核無線系統(tǒng)無疑是個艱巨的挑戰(zhàn),特別是當內核包含有高性能處理器和先進的數(shù)字信號處理器(dsp)時更是如此。等待硬件原型實現(xiàn)是不能令人接受的:關鍵的軟硬件折衷應該在芯片制造之前盡早地完成。在內核芯片制造前傳統(tǒng)的驗證與調試方法依賴于指令集仿真器(iss)模型。不幸的是,iss模型速度太慢,并且時序精度無法達到與系統(tǒng)硬件部分的rtl模型交互所需的要求。

本文引用地址:http://2s4d.com/article/21151.htm

在多內核環(huán)境中問題更加嚴重,因為單個獨立的模擬器工具在調試模式下通常都缺少同步機制。結果是有些軟件開發(fā)和軟硬件集成工作必須等到無線硬件原型實現(xiàn)后才能開始。在昂貴、數(shù)量又少的硬件原型基礎上進行開發(fā)和調試常常導致項目進度的延遲,并會增加芯片返工的風險。

本文將提供一種采用虛擬系統(tǒng)原型實現(xiàn)系統(tǒng)級的多內核系統(tǒng)調試方法,該方法允許在pc機上實時執(zhí)行一個完整系統(tǒng)的周期精確仿真,而且執(zhí)行速度比基于iss的仿真要快得多。該方法支持完整的系統(tǒng)級單步調試操作,其調試模式下的時序精度水平完全可以匹配實際設備指標。另外,由于虛擬系統(tǒng)原型能讓開發(fā)人員在多系統(tǒng)環(huán)境下快速精確地調試,因此給開發(fā)工作帶來了極大的便利。下文討論的包含二個arm處理器和一個starcore dsp的多內核無線系統(tǒng)實例證明了該方法的有效性。

無線soc實例

適合無線應用的一個實際多內核芯片整體架構采用了通用cpu和專用dsp內核來達到并行和專用處理的目的。另外該芯片還包含了用于片外通信的多層存儲器系統(tǒng)和多個外圍器件。

這個特殊芯片包含2個arm926e cpu內核,每個內核擁有獨立的指令和數(shù)據(jù)緩存。其中一個arm處理器運行l(wèi)inux操作系統(tǒng),并提供虛擬機、圖形化環(huán)境和消息等多個普通服務。另外一個arm926e與dsp內核聯(lián)系緊密,主要用于處理整個系統(tǒng)的通信和控制,需要時也能用于執(zhí)行特殊任務和應用進程。擁有2個cpu可以完全實時地處理各種業(yè)務,從而滿足無線設備的各項關鍵要求。

作為2個arm內核的重要補充,starcore sc1200處理器可以加速多媒體數(shù)據(jù)處理,執(zhí)行無線調制解調器的處理任務以及其它dsp任務。這塊內核內置有2個獨立的執(zhí)行單元,每個單元都可以執(zhí)行乘法累加(mac)以及其它信號處理算法中常用的算術操作。dsp設計用于提供大部分的語音數(shù)據(jù)處理以及mp3、mpeg-4和h.264等多媒體數(shù)據(jù)解碼服務。

作為無線芯片中的典型部件,層次化總線網(wǎng)絡可以提供專用的數(shù)據(jù)通道,減少業(yè)務流量,并提供通信所需的公共存儲模塊訪問。在頂層,六條系統(tǒng)總線通過各自專用的存儲器子系統(tǒng)和外圍器件與處理器建立互連。所有這些總線都使用ahb協(xié)議,該協(xié)議是arm公司定義的用于arm處理器內核的先進高速總線。

專用ahb總線允許全部三個處理器同時對存儲器進行數(shù)據(jù)和指令存取,因而能夠消除多內核設備常見的瓶頸問題。ahb系統(tǒng)級總線到更低層的總線通過橋進行鏈接。三條專用存儲器總線提供對存儲器模塊的訪問,二條低速外圍器件總線連接片外通信用的定時器、中斷控制器和串行接口。

當然,處理器之間也必須交換數(shù)據(jù)或控制信息。所有這類通信都是通過系統(tǒng)內任何地方都能訪問的共享存儲器完成的。利用旗語(semaphore)和郵箱(mailbox)等現(xiàn)成技術即可提供處理器和外圍器件之間信息的安全傳送。

傳統(tǒng)的軟件建模

在soc生產出來以后才進行驗證勢必會使最終產品存在大量缺陷。即使設計中嵌入了專門用于調試的訪問路徑,可觀察性也相當有限。而在實際應用中,為了滿足緊迫的產品上市時間要求,有用的調試功能往往會被刪除掉。因此協(xié)調與同步內含多處理器的硬件驗證測試非常困難,為了調試故障測試在處理器之間設置交叉觸發(fā)也有一定的難度。

以前芯片架構師和設計師在芯片制造之前是利用基于軟件的模型進行完整的芯片驗證和調試的。最常見的方法是使用為每個處理器設計的指令集仿真器模型。這些模型執(zhí)行的二進制代碼與芯片中的實際處理器代碼完全相同,因此這些模型可以用來在soc制造之前開發(fā)和調試軟件。

然而,典型的iss模型在仿真運行大型軟件(比如實時操作系統(tǒng)(rtos))時速度太慢。那些具有較高性能的iss模型在犧牲精度的條件下才能達到較快的速度。iss模型的主要特點僅在于精確的指令,也就是說它們能夠如實地產生與制造芯片中處理器相同的結果運行代碼。然而,處理器接口的逐個周期行為可能無法匹配實際處理器內核的行為。

在開發(fā)多內核無線設備時iss模型的缺點是一個大問題。由于對緩存和存儲器的訪問不具有周期精確性,因此無法精確測量存儲器性能,也無法進行詳細的架構折衷。此外,針對soc的剩余部分將iss和硬件設計連接起來需要周期精確性,單憑指令精確性將極大地限制可以執(zhí)行的軟硬件協(xié)同仿真的數(shù)量。而且不準確的時序將意味著處理器內核之間的交互操作有可能不匹配實際運行情況,從而導致芯片和硬件原型制造出來以后還要做進一步的軟件開發(fā)和反復調試。

使用獨立的iss模型會給調試帶來很大的限制。由于單個模型之間缺少同步機制,在試圖調試故障測試案例時很難理解處理器之間是如何交互信息的。另外,由于內核周邊環(huán)境中而不是內核本身內的時序問題會導致許多錯誤發(fā)生(如競態(tài)條件和死鎖),因此使用單步執(zhí)行調試根本無法捕獲這些錯誤。

從傳統(tǒng)角度看唯一的替代方案是針對處理器內核使用周期精確性仿真模型。這種模型犧牲速度換取精度,由于運行速度太慢,仿真中只能執(zhí)行關鍵代碼中的一小部分。然而在單內核芯片中,周期精確模型允許詳盡的測量,與硬件設計有更多的交互,可提供精確調試所需的深度可觀察性。只有這些模型被鏈接進一個公共驗證環(huán)境、而且速度不重要的條件下多內核調試才可能獲得相同的好處。

多內核無線設計師真正需要的解決方案需要具有很高的仿真速度、完全的周期精確以及支持不同處理器之間精確控制和交互調試的集成環(huán)境。而能夠滿足所有這些要求的唯一已知解決方案就是虛擬系統(tǒng)原型技術。

虛擬系統(tǒng)原型

虛擬系統(tǒng)原型是一個基于軟件仿真、時序精確的電子系統(tǒng)級(esl)模型,首先使用于架構級,然后在整個設計周期內作為可執(zhí)行的黃金參考模型。虛擬系統(tǒng)原型可以包含周期精確、所執(zhí)行的編譯鏈接目標代碼與實際硬件相同的虛擬處理器模型,因此可以準確地預測系統(tǒng)的實際行為。還可以增加總線、外圍器件和其它硬件設計部分的周期精確模型,以便虛擬系統(tǒng)原型能夠為多內核無線soc的完整行為建模。

虛擬系統(tǒng)原型通過混合和匹配硬件和軟件部分實施架構開發(fā)。針對實際行為建模的精確測量可以幫助系統(tǒng)架構師在開發(fā)過程早期進行精確的軟硬件折衷。當建立最初的系統(tǒng)架構模型后,虛擬系統(tǒng)原型就能成為可執(zhí)行的系統(tǒng)規(guī)范來進一步推進具體軟硬件實現(xiàn)的并行開發(fā)。

圖1給出了與其它基于軟件方法相比之下的虛擬系統(tǒng)原型中處理器模型的性能。由于可以同時提供高速和周期精確性,虛擬系統(tǒng)原型在soc開發(fā)中扮演著非常重要的角色。而且虛擬系統(tǒng)原型可以運行在標準pc平臺之上,因此它們能夠很容易地發(fā)布給系統(tǒng)架構師、軟件工程師和硬件設計師,甚至在地理上分散的團隊成員。

在本例中,為了實現(xiàn)虛擬系統(tǒng)原型的高效仿真,vast系統(tǒng)技術公司同時提供了模型和基礎架構。vast仿真內核能夠在包括處理器內核、總線和外圍器件在內的各個模塊間實現(xiàn)精確的同步式交互,同時還能促進與第三方調試器的透明通信。由于能夠執(zhí)行完整的系統(tǒng)級單步調試,因此能為調試提供時序精確性以匹配實際的配置。

多內核調試任何多內核soc設計都會面臨一些常見的調試挑戰(zhàn)。由于多處理器和外圍器件之間存在復雜交互,因此有許多通信鏈接需要深層次的觀察和調試才能確保生成高質量的軟件。

對于非常依賴于通過存儲器進行同步的設計來說,常見的缺陷包括不正確的存儲器訪問仲裁和不希望的數(shù)據(jù)差錯。一些其它系統(tǒng)通過專用主機端口進行直接通信,這是管理通信的一種方便有效的方式。采用這種方法的系統(tǒng)常會發(fā)生同步問題,如果沒有仔細進行設計和驗證,可能會造成系統(tǒng)中斷甚至死鎖,這對調試來說是也是一個艱巨的挑戰(zhàn)。

目前的關鍵是要能精確地評估各項系統(tǒng)性能、調試所有缺陷以便通過修改架構或實現(xiàn)糾正這些缺陷。典型問題與總線寬度以及由于大業(yè)務量引起的時延有關,這二方面問題都是語音分析和綜合類的實時應用所特有的,因為實時應用需要獲得性能的保證。

總之,在無線soc驗證期間必須調試和解決的典型問題有:

* 共享存儲器應用

。數(shù)據(jù)混亂

。竟態(tài)條件

* 直接通信鏈路

。死鎖

。中斷

。缺輸入

* 處理器性能

。緩存

。管線中斷

。缺輸入

* 系統(tǒng)總線性能

。擁塞

* 外圍器件性能

。時延

通過提供綜合的驗證環(huán)境以及能夠快速執(zhí)行實際代碼的一致性處理器模型,虛擬系統(tǒng)原型能使所有這些問題的調試變得更加容易。與其它基于軟件的方法相比,虛擬系統(tǒng)原型能夠更加容易地設置復雜的測試方案,而且由于能夠鏈接到第三方調試器,在單步執(zhí)行中能夠更加容易地全面觀察設計內部細節(jié)。利用虛擬系統(tǒng)原型調試這些問題的最關鍵點如圖2所示。

結論

設計、驗證和調試一個復雜的多內核無線soc不是一件簡單的事情。調試器只能提供較差的硬件內部可見性,再加上成本和進度的壓力都要求使用基于軟件的方法。不幸的是,傳統(tǒng)的軟件技術存在速度和精度問題,極大地限制了其測試和調試與處理器間同步、共享資源競爭以及性能有關的常見問題的能力。

利用虛擬系統(tǒng)原型能夠盡早實施軟件開發(fā)和調試,并具有更好的可觀察性能。從上述帶2個arm cpu內核和1個starcore處理器內核的設計實例可以看出,控制、測量和調試復雜多內核交互操作的能力是項目成功的關鍵。實現(xiàn)這種解決方案的回報是巨大的:高效的架構開發(fā),并行的軟硬件開發(fā),產品化芯片首次流片成功帶來的巨大商業(yè)機會等等。

未來soc測試面臨的挑戰(zhàn)

soc內部晶體管集成度的增長遠遠高于芯片引腳的增長,有限的管腳資源使得外部數(shù)據(jù)帶寬和內部數(shù)據(jù)帶寬之間的差異越來越大。這種差異不僅降低了內部模塊的可測性,還加大了間接復用方案中測試生成的難度。同時,具有一定故障覆蓋率的測試數(shù)據(jù)會隨著電路集成度和規(guī)模的增加而增加,大量的測試數(shù)據(jù)會對直接復用方案中的測試訪問的頻率和帶寬提出要求。

soc嵌入了類型豐富的ip模塊,一些公司已將模擬電路、數(shù)字電路、嵌入式dram等不同形式的模塊集成到芯片中。隨著技術的發(fā)展,將有更多的電路類型被集成到soc中,如嵌入式的fpga、flash、射頻發(fā)生器等?;旌闲盘枩y試在soc測試中占有重要地位,現(xiàn)有的復用方案還未解決該問題。

迄今為止,還沒有一個貫穿ip模塊和soc設計始終的完整的soc測試解決方案,因為這不僅需要盡快訂立相關的國際標準,還需要進行一些關于復用方法上的研究,例如,如何在進行ip模塊的測試開發(fā)中引入可復用的因素,使得模塊級的測試信息對被集成環(huán)境具有更好的適應性,能被更高層電路模塊的測試開發(fā)高效率地復用;研究基于復用的測試集成和優(yōu)化技術,利用已有模塊測試信息,集成出更高層模塊的測試并保證其可復用性等。



關鍵詞:

評論


相關推薦

技術專區(qū)

關閉