專利名稱:芯片及其驗證方法和系統、處理器端的制作方法
技術領域:
本發明涉及芯片驗證技術領域,尤其是一種帶有硬件加速器的芯片及其驗證方法和系統以及處理器端。
背景技術:
隨著半導體技術的飛速發展,單個硅片上的集成度越來越高,如何更快、更有效的完成基于SoC (System on Chip,片上系統,也稱為系統級芯片)的檢驗逐漸成為人們關注的隹占。
ν 、、/、、人 °芯片的驗證(也稱為芯片的檢驗)一直是芯片制造的重要步驟,芯片的檢驗占據了芯片制造的大半過程。尤其是對集成有硬件加速器的芯片,例如集成有音頻加速器的芯片、集成有視頻加速器的芯片等的檢驗,其檢驗效率和檢驗質量一直不高。這是由于芯片本身的性能有限,集成硬件加速器后,檢驗程序和硬件加速器同時在芯片上工作,加重了芯片的負擔,致使芯片的檢驗時間和檢驗質量愈發下降。下面以視頻算法加速器的軟硬件協同驗證為例,具體說明。多媒體設備中,通常會將視頻編解碼算法集成在其主控芯片(即SoC芯片)上。但是一方面由于多媒體設備的主控芯片計算能力較弱,另一方面由于視頻編解碼算法的計算復雜度非常高,因此很容易降低多媒體設備的工作效率,影響視頻的播放效果。為了解決這一矛盾,在主控芯片設計時,通常會增加一個視頻算法加速器硬件模塊(Video Signal ftOcessor,簡稱VSP), VSP 實際包括 ASIC(Application Specific Integrated Circuit,專用集成電路)以及 Firmware(也稱固件,設備內部保存的設備的驅動程序)兩個部分。具體的加速視頻編碼的技術可以參考公開號為US2007204318A1的美國專利申請。為了保證主控芯片的工作效率及工作質量,需要確保VSP能正確的編解碼,因此對VSP的一致性驗證是必要的。所述一致性驗證是指驗證經過VSP處理后的視頻碼流與原始的視頻碼流是否一致。由于VSP所支持的視頻標準的種類眾多,每個視頻標準需要驗證的視頻碼流也數量龐大。在驗證主控芯片時,主控芯片上需要執行兩套程序,一個是Firmware,另一個是驗證VSP的驗證程序。由于主控芯片上的存儲空間有限,并且主控芯片的性能也不高,因此在驗證環境下,主控芯片執行兩套程序,再加上視頻碼流需要一幀編碼/解碼完后再比對,導致檢驗主控芯片的過程復雜而且漫長,對主控芯片的VSP的一致性驗證效率很低,并且龐大的視頻碼流的運行,還會降低對主控芯片的驗證質量。鑒于上述情況如何提高對集成有硬件加速器的芯片的驗證效率和質量,成為目前亟待解決的問題之一。
發明內容
本發明解決的問題是如何提高對集成有硬件加速器的芯片的驗證效率和質量。為解決上述問題,本發明的技術方案提供了一種芯片的驗證方法,包括
所述芯片向處理器端發送驗證開始請求;所述處理器端接收到所述驗證開始請求,將驗證碼流發送至所述芯片;所述芯片與所述處理器端處理所述驗證碼流,所述處理所述驗證碼流包括編碼或解碼所述驗證碼流;所述芯片將其處理所述驗證碼流的結果數據發送至所述處理器端;所述處理器端匹配其處理所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據。本發明的技術方案還提供了一種芯片,包括硬件加速器;消息發送單元,用以向處理器端發送驗證開始請求;芯片驗證碼流處理單元,用以在所述消息發送單元向所述處理器端發送驗證開始請求后,接收并處理所述處理器端發送的驗證碼流;所述處理所述處理器端發送的驗證碼流包括解碼或編碼所述驗證碼流;數據發送單元,用以將所述芯片驗證碼流處理單元處理所述驗證碼流的結果數據發送至所述處理器端。本發明的技術方案還提供了一種處理器端,包括消息接收單元,用于接收如上所述的芯片發送的驗證開始請求;驗證碼流發送單元,用以在所述消息接收單元接收所述驗證開始請求后,將驗證碼流發送至所述芯片;處理器驗證碼流處理單元,用以處理所述驗證碼流,所述處理所述驗證碼流包括解碼或編碼所述驗證碼流;數據接收單元,用以接收所述芯片處理所述驗證碼流的結果數據;匹配單元,用以匹配所述處理器驗證碼流處理單元處理所述驗證碼流的結果數據與所述數據接收單元接收的所述芯片處理所述驗證碼流的結果數據。本發明的技術方案還提供了一種芯片檢驗系統,包括如上所述的芯片;如上所述的處理器端。與現有技術相比,本發明的技術方案具有以下優點在進行芯片的驗證時,在處理器端模擬芯片上執行的硬件加速器的工作過程并將其處理驗證碼流的結果數據作為匹配標準,芯片僅運行硬件加速器。利用處理器端較強的運算能力模擬硬件加速器的工作過程并進行兩者的結果數據的匹配,這不僅減輕了芯片的負擔,而且處理器端較強的運算能力還可以提高編解碼的速度,提高驗證的工作效率。驗證碼流存儲在處理器端,當處理器端獲取芯片發送的驗證開始請求后,將驗證碼流發送至芯片,并在接收到芯片反饋的幀處理開始請求時,進行后續的驗證。這不僅降低了對芯片的存儲空間的要求,而且保證處理器端和芯片驗證的是同一驗證碼流,提高了驗證質量。芯片將其處理所述驗證碼流的結果數據發送至處理器端,由處理器端匹配兩者的結果數據。由于處理器端的運算能力強,這不僅可以提高驗證速度,提高驗證質量,而且減少結果數據對芯片的存儲空間的占用,進一步的提高芯片的處理速度。
結果數據的比對是一幀一幀進行的,這可以保證驗證的質量。在整個驗證過程中, 處理器端與芯片通過消息或指令通信確定對方的進度,不僅可以有效的平衡雙方處理速度的差異,而且確認一幀處理完成之后進行下一幀的處理,提高了驗證精度。由于龐大的數據傳輸不僅會影響驗證速度,而且在傳輸過程中容易丟失數據,因此芯片將其處理所述驗證碼流的結果數據壓縮后發送至處理器端。這不僅可以縮短傳輸時間,減少對傳輸資源的利用,而且減少數據丟失,增強了整個系統的魯棒性。
圖1是本發明實施例提供的芯片的驗證方法的流程圖;圖2為本發明實施例提供的一種數據的傳輸格式示意圖;圖3為本發明實施例提供的另一種數據的傳輸格式示意圖;圖4是本發明實施例提供的芯片的結構示意圖;圖5是本發明實施例提供的處理器端的結構示意圖;圖6是本發明實施例提供的芯片檢驗系統的工作流程圖。
具體實施例方式為使本發明的上述目的、特征和優點能夠更為明顯易懂,下面結合附圖對本發明的具體實施方式
做詳細的說明。在以下描述中闡述了具體細節以便于充分理解本發明。但是本發明能夠以多種不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本發明內涵的情況下做類似推廣。因此本發明不受下面公開的具體實施方式
的限制。圖1是本發明實施例提供的芯片的驗證方法的流程圖,下面結合圖1詳細說明。所述芯片帶有硬件加速器,所述芯片的驗證方法包括步驟Si,芯片向處理器端發送驗證開始請求;步驟S2,所述處理器端接收到所述驗證開始請求,將驗證碼流發送至所述芯片;步驟S3,所述芯片與所述處理器端處理所述驗證碼流,所述處理所述驗證碼流包括編碼或解碼所述驗證碼流;步驟S4,所述芯片將其處理所述驗證碼流的結果數據發送至所述處理器端;步驟S5,所述處理器端匹配其處理所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據。所述步驟Sl中,帶有硬件加速器的芯片(以下簡稱芯片)和處理器端雙方上電初始化后,由芯片向處理器端發送驗證開始請求,處理器端接收到所述驗證開始請求后,進行后續的工作,若未收到則等待直至收到。在其他實施例中,也可以由處理器端向芯片發送開始請求,并在接收到芯片的反饋之后進行后續的工作。所述步驟S2中,所述處理器端接收到所述驗證開始請求,將驗證碼流發送至所述芯片。由于處理器端的性能較強,因此可以將驗證碼流儲存在處理器端,在驗證所述驗證碼流時,再由處理器端將所述驗證碼流發送至芯片。這可以節省芯片的存儲空間,提高芯片的運行速度。另外,也可以將所述驗證碼流儲存在第三方介質中,在進行驗證時,處理器端和芯片分別去第三方介質中讀取或者由第三方介質分別向處理器端和芯片發送。
具體實施中,所述處理器端將未檢驗的驗證碼流發送至所述芯片,處理器端在將驗證碼流發送至芯片之前,檢驗所有的驗證碼流是否都已經過驗證,僅將未檢驗的驗證碼流發送至芯片,若全部都已驗證,則結束對芯片的檢驗。具體地,所述處理器端將驗證碼流發送至所述芯片前,所述處理器端建立驗證碼流列表;所述處理器端檢驗所述驗證碼流列表中的驗證碼流是否都已檢驗完成,若是則結束對芯片的驗證,否則所述處理器端依次發送所述驗證碼流列表中的未檢驗的驗證碼流至所述芯片。所述步驟S3中,所述芯片與所述處理器端處理所述驗證碼流指的是所述芯片與所述處理器端同步處理所述驗證碼流。進一步講,所述芯片與所述處理器端同步處理同一個驗證碼流。所述處理驗證碼流包括編碼或解碼所述驗證碼流,所述處理器端和所述芯片以幀為單位處理所述驗證碼流,具體來講是一幀一幀處理所述驗證碼流的,處理完一幀之后再處理下一幀。所述硬件加速器包括視頻加速器或者音頻加速器,或者兩者都有,所述驗證碼流為視頻驗證碼流或者音頻驗證碼流。對帶有硬件加速器的芯片進行驗證時,在芯片上既要執行硬件加速器的驗證程序(模擬芯片上執行的硬件加速器的工作過程),還要運行硬件加速器,對于性能較低的芯片來講,效率是十分低下的。以帶有視頻加速器的芯片為例說明,帶有音頻加速器的芯片原理與其相同,此處不再贅述。傳統的驗證帶有視頻加速器的芯片(簡稱視頻加速芯片)的方法是在視頻加速芯片上運行兩套程序,一個是Firmware,另一個是驗證VSP的驗證程序。由于視頻加速芯片上的存儲空間有限,并且視頻加速芯片的性能也不高,而在驗證環境下,視頻加速芯片需要同步執行兩套程序,再加上視頻驗證碼流需要一幀一幀的處理,因此導致檢驗視頻加速芯片的過程復雜且漫長,對視頻加速芯片的VSP的一致性驗證效率很低,并且龐大的視頻碼流的運行,還會降低對視頻加速芯片的驗證質量。本實施例中,在處理器端模擬芯片上執行的硬件加速器的工作過程并將其處理驗證碼流的結果數據作為匹配標準,芯片僅運行硬件加速器,借助處理器端的高性能提高驗證效率,減輕視頻加速芯片的負擔。為保證驗證質量,在驗證過程中,要求視頻加速芯片和處理器端同步處理同一個視頻驗證碼流,這才能夠保證雙方處理的視頻驗證碼流一致,所得的結果數據是同一個視頻驗證碼流的結果數據,處理器端才能正確的協助檢驗所述視頻加速芯片的一致性。也就是說,在處理器端模擬視頻加速芯片的工作過程,相當于執行驗證VSP的驗證程序,并得到處理所述視頻驗證碼流的結果數據。視頻加速芯片和處理器端同步檢驗同一個視頻驗證碼流,然后由處理器端以其處理視頻驗證碼流的結果數據作為標準比對雙方的結果數據,判斷視頻加速芯片是否合格。為保證比對結果數據的準確性,處理器端進行的驗證VSP的驗證程序是經過反復試驗和調試的,保證其準確無誤,這才能將其處理視頻驗證碼流的結果數據作為檢驗視頻加速芯片一致性的標準。在具體實施中,為保證芯片與處理器端處理的是同一驗證碼流,需要對雙方的工作進行同步控制,主要是依靠雙方進行指令交互來確保同步,具體的同步方式如下所述芯片獲取到所述驗證碼流后,向所述處理器端發送幀處理開始請求;驗證碼流由處理器端發送至芯片,為保證雙方同步開始處理所述發送的驗證碼流,芯片在接收到所述驗證碼流后,向所述處理器端發送幀處理開始請求,請求所述處理器端開始處理所述驗證碼流;所述處理器端接收到所述幀處理開始請求后,檢驗當前幀是否為當前的驗證碼流的最后一幀;處理器端和芯片都是以幀為單位,一幀一幀處理所述驗證碼流的,處理器端檢驗當前幀是否為當前的驗證碼流的最后一幀,開始進行驗證碼流的處理;若所述當前幀不是所述當前的驗證碼流的最后一幀,則所述處理器端向所述芯片發送幀處理開始指令,并處理所述當前的驗證碼流的當前幀;處理器端向所述芯片發送幀處理開始指令,通知芯片開始處理當前的驗證碼流的當前幀,且所述處理器端也開始處理所述當前的驗證碼流的當前幀;所述芯片接收到所述幀處理開始指令后,處理所述當前的驗證碼流的當前幀。本實施例中,若所述當前幀為所述當前的驗證碼流的最后一幀,則所述處理器端向所述芯片發送下一個驗證碼流處理指令;所述芯片接收到所述下一個驗證碼流處理指令后,重新向處理器端發送驗證開始請求;此時當前的驗證碼流的檢驗結束,進入下一驗證碼流的檢驗。在其他實施例中,若所述當前幀為所述當前的驗證碼流的最后一幀,則所述處理器端在向所述芯片發送下一個驗證碼流處理指令前還發送幀處理停止指令;所述芯片接收到所述幀處理停止指令后,停止對所述當前幀的處理;此時無論當前幀是否已經進行了編碼或解碼的處理,都會停止,芯片停止對所述當前幀的處理后,等待處理器端后續發送的下一個驗證碼流處理指令,進入下一驗證碼流的處理。另外,若當前幀為當前的驗證碼流的最后一幀,所述處理器端向所述芯片發送下一個驗證碼流處理指令之前,還會檢驗是否所有的驗證碼流都已進行檢驗,若還存在沒有檢驗的驗證碼流,則向所述芯片發送下一個驗證碼流處理指令;若所有的驗證碼流都已完成檢驗,則結束對芯片的檢驗。所述步驟S4中,所述芯片將其處理所述驗證碼流的結果數據發送至所述處理器端,具體實施過程為所述處理器端處理完所述當前幀后,向所述芯片發出當前幀結束指令,所述芯片在處理完所述當前幀且接收到所述當前幀結束指令后,將其處理所述當前幀的結果數據發送至所述處理器端。若所述芯片還未處理完所述當前幀,則延遲發送當前幀的結果數據,直至處理完所述當前幀,再發送當前幀的結果數據。本實施例中,若所述芯片未接收到所述當前幀結束指令,則即使完成了當前幀的處理,也不會將當前幀的結果數據發送至所述處理器端,只有接收到所述當前幀結束指令后,才將當前幀的結果數據發送至所述處理器端。在其他實施例中,若所述芯片未接收到所述當前幀結束指令,在完成了當前幀的處理后,所述芯片可以向所述處理器端發送結果數據發送請求,在得到處理器端的反饋后,將結果數據發送至處理器端。所述芯片每處理完一幀,將該幀的結果數據發送至所述處理器端,因此所述芯片以幀為單位將其處理所述驗證碼流的結果數據發送至所述處理器端。所述步驟S5中,所述芯片以幀為單位將其處理所述驗證碼流的結果數據發送至所述處理器端,所述處理器端以幀為單位匹配每一幀的結果數據。所述處理器端匹配其處理所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據包括匹配雙方對當前幀處理的結果數據,若一致,則記錄正確,表示驗證無誤,若不一致,則記錄錯誤及錯誤原因,表示芯片有誤。將上述匹配結果記錄或保存在所述處理器端,完成對芯片的檢驗之后可以查詢匹配結果。當前幀的結果數據匹配完成之后,所述處理器端將下一幀設置為當前幀,并繼續檢驗新的當前幀是否為當前的驗證碼流的最后一幀,進入新的當前幀的處理。在上述步驟Sl至S5中,為縮短發送請求或指令所需的時間,可以將所述請求或指令以固定的傳輸格式發送。這一方面縮短傳輸時間,提高傳輸速率,另一方面減少傳輸的數據量,防止數據在傳輸過程中的遺失。為節省數據的傳輸時間,所述芯片將其處理所述驗證碼流的結果數據壓縮后發送至所述處理器端。所述芯片采用 MD5、DES、IDEA、AES、RSA、ECC、Elgamal、DSS、SHA, RC4 中的至少一種算法壓縮其處理所述驗證碼流的結果數據。請求,指令可以采用固定長度的通信包格式。但對于編碼或解碼之后的結果數據的傳輸,都是經過壓縮的,這是為了提高傳輸速度,節省傳輸時間。具體的操作方式如下圖2為本發明實施例提供的一種數據的傳輸格式示意圖,請求、指令類型的數據以圖2所示的格式傳輸,即十六字節的格式,包括四字節起始碼+四字節數據長度+四字節消息內容+四字節結束碼。其中起始碼表示指令或請求的起始標記,數據長度表示整條指令或請求的長度,消息內容表示指令或請求的內容,結束碼表示指令或請求的結束標記。以驗證開始請求為例說明0xFF00FF00+0x00000004+0xAAAAAAAA+0xFE01FE01上述示例表示驗證開始請求,該請求從“OxFFOOFFOO”開始,長度為4,消息內容” OxAAAAAAAA”為驗證開始,以“OxFEOlFEOl ”結束。圖3為本發明實施例提供的另一種數據的傳輸格式示意圖,圖3為處理驗證碼流的結果數據的壓縮后傳輸格式示意圖,顯示了處理驗證碼流的結果數據的壓縮格式和傳輸格式。處理驗證碼流的結果數據的壓縮可以采用等價但不可逆的算法。作為一個示例,可以采用MD5算法。該壓縮格式為MD5算法的格式,即十六字節的格式壓縮,壓縮之后以圖3 所述的格式傳輸,包括四字節起始碼+四字節數據長度+十六字節數據內容+四字節結束碼。其中起始碼表示驗證碼流(用以表示當前的結果數據是處理哪個驗證碼流的結果數據)及處理所述驗證碼流的結果數據的起始標記,數據長度表示壓縮之后的驗證碼流的結果數據的長度,數據內容表示驗證碼流的結果數據的內容,結束碼表示驗證碼流及處理所述驗證碼流的結果數據的結束標記。對于驗證碼流的傳輸,也可以采取先壓縮再傳輸的方式以提高傳輸速度和傳輸質量。驗證碼流的壓縮可以采用可逆并等價的壓縮算法進行壓縮后傳輸。作為一個示例,可以采用7zip算法。壓縮之后也采取圖3所示的格式傳輸。驗證碼流及處理所述驗證碼流的結果數據經過壓縮后傳輸的格式與指令或請求的傳輸格式相同,僅是指令或請求的數據長度固定為4,驗證碼流及處理所述驗證碼流的結果數據的數據長度為經過壓縮后的數據的長度。目前常用的壓縮算法還有DES、IDEA、AES、 RSA、ECC、Elgamal、DSS、SHA、RC4等,此處僅是以MD5和7zip為例說明,在具體實施過程中,也可以采用其他算法或壓縮格式。根據實際實驗的數據所得,對于解碼分辨率為720X576的視頻驗證碼流來說,解碼后需要傳輸和比對的數據量是720X576X 1. 5 = 622080字節的結果數據,經過壓縮之后,變換成數據長度只有16字節長的MD5數據,壓縮后的數據為原始數據的1/38880。由于數據傳輸過程中,數據量越大,出錯的可能性越大,因此高效的數據壓縮,不僅可以縮短傳輸時間,而且極大的縮小了通信傳輸的數據量,提高了驗證系統的魯棒性。圖4是本發明實施例提供的芯片的結構示意圖,下面結合圖4詳細說明。所述芯片帶有硬件加速器(圖中未顯示),所述芯片包括消息發送單元1,用以向處理器端發送驗證開始請求;芯片驗證碼流處理單元3,用以在所述消息發送單元向所述處理器端發送驗證開始請求后,接收并處理所述處理器端發送的驗證碼流;所述處理所述處理器端發送的驗證碼流包括解碼或編碼所述驗證碼流;芯片驗證碼流處理單元3與消息發送單元1相連,從消息發送單元1獲知消息發送單元1向處理器端發送驗證開始請求的時間;數據發送單元5,用以將所述芯片驗證碼流處理單元處理所述驗證碼流的結果數據發送至所述處理器端;數據發送單元5與芯片驗證碼流處理單元3相連,從芯片驗證碼流處理單元3獲取芯片驗證碼流處理單元3處理所述驗證碼流的結果數據;壓縮單元7,用以壓縮芯片驗證碼流處理單元3處理所述驗證碼流的結果數據;數據發送單元5將壓縮后的芯片驗證碼流處理單元3處理所述驗證碼流的結果數據發送至所述處理器端;壓縮單元7與數據發送單元5相連,從數據發送單元5獲取處理所述驗證碼流的結果數據,壓縮后發送至數據發送單元5,由數據發送單元5發送至所述處理器端;壓縮單元7與數據發送單元5可以集成在一起;在其他實施例中,壓縮單元與芯片驗證碼流處理單元相連,從芯片驗證碼流處理單元獲取處理所述驗證碼流的結果數據并壓縮;數據發送單元僅與壓縮單元相連,壓縮單元將壓縮后的結果數據發送至數據發送單元,由數據發送單元發送至所述處理器端。芯片驗證碼流處理單元3以幀為單位處理所述驗證碼流,數據發送單元5以幀為單位將所述芯片驗證碼流處理單元3處理所述驗證碼流的結果數據發送至所述處理器端。具體的,芯片驗證碼流處理單元3包括驗證碼流接收單元(圖中未顯示),用以接收所述處理器端發送的驗證碼流;指令接收單元(圖中未顯示),用以接收所述處理器端發送的指令;操作單元(圖中未顯示),用以在所述驗證碼流接收單元接收到所述處理器端發送的驗證碼流后向所述處理器端發送幀處理開始請求,在所述指令接收單元接收到的指令為幀處理開始指令時,處理當前的驗證碼流的當前幀;在所述指令接收單元接收到的指令為下一個驗證碼流處理指令時,控制所述消息發送單元向所述處理器端發送驗證開始請求。所述操作單元還在所述指令接收單元接收到的指令為幀處理停止指令時,停止對所述當前幀的處理。數據發送單元5在所述操作單元處理完所述當前幀且所述指令接收單元接收到的指令為當前幀結束指令時,將處理所述當前幀的結果數據發送至所述處理器端。圖5是本發明實施例提供的處理器端的結構示意圖,下面結合圖5詳細說明。
所述處理器端包括消息接收單元2,用于接收如上所述的芯片發送的驗證開始請求;驗證碼流發送單元4,用以在消息接收單元2接收所述驗證開始請求后,將驗證碼流發送至所述芯片;驗證碼流發送單元4與消息接收單元2相連,監控消息接收單元2接收所述驗證開始請求的時間,在消息接收單元2接收所述驗證開始請求后,將驗證碼流發送至所述芯片;驗證碼流發送單元4可以集成壓縮單元,將驗證碼流壓縮后發送至所述芯片;處理器驗證碼流處理單元6,用以處理所述驗證碼流,所述處理所述驗證碼流包括解碼或編碼所述驗證碼流;處理器驗證碼流處理單元6與驗證碼流發送單元4相連,從驗證碼流發送單元4獲取需要進行處理的驗證碼流;數據接收單元8,用以接收所述芯片處理所述驗證碼流的結果數據;匹配單元10,用以匹配處理器驗證碼流處理單元6處理所述驗證碼流的結果數據與數據接收單元8接收的所述芯片處理所述驗證碼流的結果數據;匹配單元10與處理器驗證碼流處理單元6和數據接收單元8相連,從處理器驗證碼流處理單元6獲取其處理驗證碼流的結果數據,從數據接收單元8獲取所述芯片處理所述驗證碼流的結果數據。處理器驗證碼流處理單元6以幀為單位處理所述驗證碼流,數據接收單元8以幀為單位接收所述芯片處理所述驗證碼流的結果數據;匹配單元10以幀為單位匹配每一幀的結果數據。匹配單元10還在匹配處理器驗證碼流處理單元6處理所述當前幀的結果數據與所述芯片處理所述當前幀的結果數據后,將下一幀設置為當前幀。所述處理器端還可以包括存儲單元(圖中未顯示),與匹配單元10相連,用以記錄匹配單元10匹配所述處理器驗證碼流處理單元6處理的所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據的匹配結果。具體實施中,驗證碼流發送單元4包括檢驗單元(圖中未顯示),用以檢驗所有的驗證碼流是否都已檢驗完成;發送單元(圖中未顯示),用以在所述檢驗單元檢驗到存在未檢驗的驗證碼流時, 將所述未檢驗的驗證碼流發送至所述芯片。所述處理器端還可以包括列表建立單元(圖中未顯示),用以在驗證碼流發送單元4將所述驗證碼流發送至所述芯片前,建立所述驗證碼流的列表。驗證碼流發送單元4與所述列表建立單元相連,所述檢驗單元檢驗所述驗證碼流列表中的驗證碼流是否都已檢驗完成,若是則結束芯片的驗證,否則所述發送單元依次發送所述驗證碼流列表中的未檢驗的驗證碼流至所述芯片。具體實施中,處理器驗證碼流處理單元6包括驗證單元(圖中未顯示),用以在接收到所述芯片的操作單元發送的幀處理開始請求后,檢驗當前幀是否為當前的驗證碼流的最后一幀;指令發送單元(圖中未顯示),用以在所述驗證單元檢驗到所述當前幀不是所述當前的驗證碼流的最后一幀時,向所述芯片發送幀處理開始指令;在所述驗證單元檢驗到所述當前幀為所述當前的驗證碼流的最后一幀時,向所述芯片發送下一個驗證碼流處理指令;
13
處理單元(圖中未顯示),用以在所述驗證單元檢驗到所述當前幀不是所述當前的驗證碼流的最后一幀時,處理所述當前的驗證碼流的當前幀。在所述驗證單元檢驗到所述當前幀為所述當前的驗證碼流的最后一幀時,所述指令發送單元在發送下一個驗證碼流處理指令前還向所述芯片發送幀處理停止指令。所述指令發送單元在所述驗證單元在檢驗到所有的驗證碼流都未完成檢驗時,向所述芯片發送下一個驗證碼流處理指令。所述處理單元處理完所述當前幀后,所述指令發送單元向所述芯片發出當前幀結束指令。所述處理器端可以為計算機或計算機群,也可以是處理器或處理器群。本發明實施例還提供了一種芯片驗證系統,包括如上所述的芯片和如上所述的處理器端,所述芯片帶有硬件加速器。具體的,所述芯片驗證系統可以是視頻加速芯片檢驗系統或者音頻加速芯片檢驗系統。圖4所示的芯片和圖5所示的處理器端可以組成所述芯片驗證系統,實現圖1所示的芯片的驗證方法。圖6是本發明實施例提供的芯片檢驗系統的工作流程圖,具體的是一種視頻加速芯片檢驗系統的工作流程圖,下面結合圖4至圖6詳細說明。圖6中所示的視頻加速芯片100是一種帶有視頻加速器的芯片,該芯片一般為SoC 芯片,處理器端200為圖5所示的處理器端。視頻加速芯片100與處理器端200同步處理視頻驗證碼流,并通過處理器端200匹配雙方的結果數據。雙方上電初始化之后,處于圖6中所示的開始狀態,視頻加速芯片100進行步驟 S101,消息發送單元1向處理器端200發送驗證開始請求;處理器端200在上電初始化之后,等待視頻加速芯片100發送驗證開始請求的過程中建立視頻驗證碼流列表,并進行步驟S102判斷是否獲得驗證開始請求,在消息接收單元2接收到所述驗證開始請求后,進行步驟S103,驗證碼流發送單元4檢驗視頻驗證碼流列表中的視頻驗證碼流是否都已完成檢驗,若都已完成檢驗,則結束芯片100的檢驗,若還存在未檢驗的視頻驗證碼流,進行步驟S104,驗證碼流發送單元4將未檢驗的視頻驗證碼流壓縮后,發送至視頻加速芯片100 ;視頻加速芯片100在完成步驟SlOl后,進行步驟S105,檢驗是否獲得視頻驗證碼流,若芯片驗證碼流處理單元3接收到視頻驗證碼流,在接收到視頻驗證碼流后,進行解壓縮,然后進行步驟S106向處理器端200發送消息包,也就是芯片驗證碼流處理單元3向處理器端200發送幀處理開始請求;若視頻加速芯片100未接收到視頻驗證碼流,則持續等待至接收到視頻驗證碼流后,芯片驗證碼流處理單元3向處理器端200發送幀處理開始請求;處理器端200完成步驟S104后,進入步驟S107檢驗是否獲得幀處理請求,若接收到幀處理開始請求后,進入步驟S108,處理器驗證碼流處理單元6檢驗當前幀是否為當前的視頻驗證碼流的最后一幀,并進行步驟S110,處理器驗證碼流處理單元6向視頻加速芯片100發送消息包,所述消息包的內容包括幀處理開始指令或幀處理停止指令;若所述當前幀不是所述當前的視頻驗證碼流的最后一幀,則處理器端200的處理器驗證碼流處理單元6向視頻加速芯片100發送幀處理開始指令,并進行步驟Slll編碼或解碼當前幀,即處理所述當前的視頻驗證碼流的當前幀,若所述當前幀為所述當前的視頻驗證碼流的最后一幀,則向視頻加速芯片100發送幀處理停止指令,并進行步驟S117,驗證碼流發送單元4再次檢驗視頻驗證碼流列表中的視頻驗證碼流是否都已完成檢驗,若都已完成檢驗,則結束對芯片100的檢驗,若還存在未檢驗的視頻驗證碼流,則進行步驟S118, 處理器驗證碼流處理單元6向視頻加速芯片100發送下一個視頻驗證碼流處理指令;視頻加速芯片100在完成步驟S106后,進入步驟S120,判斷是否接收到處理器端 200的指令,若接收到處理器端200的指令,根據指令,進行下一步操作,若未接收到,則持續等待;視頻加速芯片100的芯片驗證碼流處理單元3接收到處理器端200發送的指令后,進行步驟S109判斷是何種消息(指令)若是幀處理開始指令,則芯片驗證碼流處理單元3同步處理所述當前幀,進行步驟Slll'編碼或解碼當前幀,即處理所述當前的視頻驗證碼流的當前幀;若是幀處理停止指令,則芯片驗證碼流處理單元3停止對所述當前幀的處理,進入步驟Sl 19判斷是否接收到獲得下一個視頻驗證碼流處理指令,若未接收到則持續等待處理器端200發送下一個視頻驗證碼流處理指令;視頻加速芯片100接收到處理器端200發送的下一個視頻驗證碼流處理指令后, 返回步驟SlOl,消息發送單元1重新向處理器端200發送檢驗開始請求,進入下一視頻驗證碼流的檢驗;處理器端200處理完所述當前幀后,進行步驟Sl 12,處理器驗證碼流處理單元6向視頻加速芯片100發送消息包,也就是向視頻加速芯片100發出當前幀結束指令;視頻加速芯片100在完成步驟Slll'之后,或者在進行步驟Sill'的過程中,進行步驟S113,判斷是否接收到當前幀結束指令;視頻加速芯片100在處理完所述當前幀接收到所述當前幀結束指令后,壓縮單元 7將處理所述當前幀的結果數據壓縮為MD5格式的數據,由數據發送單元5發送至處理器端200,若未處理完所述當前幀,則在完成當前幀的處理之后,壓縮單元7將處理所述當前幀的結果數據壓縮為MD5格式的數據,由數據發送單元5發送處理所述當前幀的結果數據, 若未接收到所述當前幀結束指令,則接收到所述當前幀結束指令且處理完所述當前幀后, 壓縮單元7將處理所述當前幀的結果數據壓縮為MD5格式的數據,由數據發送單元5發送至處理器端200 ;視頻加速芯片100將處理所述當前幀的結果數據壓縮為MD5格式的數據,發送至處理器端200后(步驟S114),芯片驗證碼流處理單元3將下一幀設置為新的當前幀,返回步驟S106,進入新的當前幀的處理;處理器端200進行步驟S115接收視頻加速芯片100發送的處理當前幀的結果數據,數據接收單元8接收到所述當前幀的結果數據后,進行步驟S116,匹配單元10將其與處理器驗證碼流處理單元6處理視頻驗證碼流的結果數據進行匹配和比對,并記錄匹配結果;若一致,則記錄正確,表示驗證無誤,若不一致,則記錄錯誤及錯誤原因,表示視頻加速芯片有誤;處理器端200匹配其處理所述當前幀的結果數據與視頻加速芯片100處理所述當前幀的結果數據之后,匹配單元10將下一幀設置為當前幀,重新進入步驟S107,處理器驗證碼流處理單元6繼續檢驗當前幀是否為當前的視頻驗證碼流的最后一幀,直至該視頻驗證碼流檢驗結束,進行下一視頻驗證碼流的檢驗至視頻驗證碼流列表中所有的視頻驗證碼流驗證結束。
本實施例中,處理器端的工作過程相當于對視頻加速芯片的視頻加速器(VSP)的驗證過程,處理器端模擬視頻加速芯片上執行的視頻加速器的工作過程,并將其處理視頻驗證碼流的結果數據作為匹配標準。視頻加速芯片僅運行視頻加速器,將處理所述視頻驗證碼流的結果數據發送至處理器端,由處理器端進行兩者結果數據的匹配,以匹配的結果來驗證視頻加速芯片的質量。在其他實施例中,若視頻加速芯片100或處理器端200持續未接收到對方發送的請求、指令或數據,可以在經過預定時間之后向對方發送取指請求,例如,若視頻加速芯片 100和處理器端200上電初始化后,經過預定時間五分鐘之后,處理器端200未接收到視頻加速芯片100發送的驗證開始請求,則處理器端200可以向視頻加速芯片100發送取指請求,詢問是否可以開始驗證視頻驗證碼流。本發明的技術方案還適用于集成有音頻加速器的芯片的驗證,其驗證方法與集成有視頻加速器的芯片的方法相同,此處不再贅述。在具體實施中,所述芯片還可以集成有圖像處理加速器、Flash播放加速器等硬件加速器,上述芯片的檢驗都可以采取本發明的技術方案。本發明的技術方案至少具有以下優勢在進行芯片的驗證時,在處理器端模擬芯片上執行的硬件加速器的工作過程并將其處理驗證碼流的結果數據作為匹配標準,芯片僅運行硬件加速器。利用處理器端較強的運算能力模擬硬件加速器的工作過程并進行兩者的結果數據的匹配,這不僅減輕了芯片的負擔,而且處理器端較強的運算能力還可以提高編解碼的速度,提高驗證的工作效率。驗證碼流存儲在處理器端,當處理器端獲取芯片發送的驗證開始請求后,將驗證碼流發送至芯片,并在接收到芯片反饋的幀處理開始請求時,進行后續的驗證。這不僅降低了對芯片的存儲空間的要求,而且保證處理器端和芯片驗證的是同一驗證碼流,提高了驗證質量。芯片將其處理所述驗證碼流的結果數據發送至處理器端,由處理器端匹配兩者的結果數據。由于處理器端的運算能力強,這不僅可以提高驗證速度,提高驗證質量,而且減少結果數據對芯片的存儲空間的占用,進一步的提高芯片的處理速度。結果數據的比對是一幀一幀進行的,這可以保證驗證的質量。在整個驗證過程中, 處理器端與芯片通過消息或指令通信確定對方的進度,不僅可以有效的平衡雙方處理速度的差異,而且確認一幀處理完成之后進行下一幀的處理,提高了驗證精度。由于龐大的數據傳輸不僅會影響驗證速度,而且在傳輸過程中容易丟失數據,因此芯片將其處理所述驗證碼流的結果數據壓縮后發送至處理器端。這不僅可以縮短傳輸時間,減少對傳輸資源的利用,而且減少數據丟失,增強了整個系統的魯棒性。本發明雖然已以較佳實施例公開如上,但其并不是用來限定本發明,任何本領域技術人員在不脫離本發明的精神和范圍內,都可以利用上述揭示的方法和技術內容對本發明技術方案做出可能的變動和修改,因此,凡是未脫離本發明技術方案的內容,依據本發明的技術實質對以上實施例所作的任何簡單修改、等同變化及修飾,均屬于本發明技術方案的保護范圍。
權利要求
1.一種芯片的驗證方法,所述芯片帶有硬件加速器,其特征在于,包括 所述芯片向處理器端發送驗證開始請求;所述處理器端接收到所述驗證開始請求,將驗證碼流發送至所述芯片; 所述芯片與所述處理器端處理所述驗證碼流,所述處理所述驗證碼流包括編碼或解碼所述驗證碼流;所述芯片將其處理所述驗證碼流的結果數據發送至所述處理器端; 所述處理器端匹配其處理所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據。
2.如權利要求1所述的芯片的驗證方法,其特征在于,所述芯片將其處理所述驗證碼流的結果數據壓縮后發送至所述處理器端。
3.如權利要求2所述的芯片的驗證方法,其特征在于,所述芯片采用MD5、DES、IDEA、 AES、RSA、ECC、Elgamal, DSS, SHA, RC4中的至少一種算法壓縮其處理所述驗證碼流的結果數據。
4.如權利要求1所述的芯片的驗證方法,其特征在于,所述處理器端和所述芯片以幀為單位處理所述驗證碼流。
5.如權利要求4所述的芯片的驗證方法,其特征在于,所述芯片以幀為單位將其處理所述驗證碼流的結果數據發送至所述處理器端;所述處理器端以幀為單位匹配每一幀的結果數據。
6.如權利要求4所述的芯片的驗證方法,其特征在于,所述芯片與所述處理器端處理所述驗證碼流包括所述芯片獲取到所述驗證碼流后,向所述處理器端發送幀處理開始請求; 所述處理器端接收到所述幀處理開始請求后,檢驗當前幀是否為當前的驗證碼流的最后一幀;若所述當前幀不是所述當前的驗證碼流的最后一幀,則所述處理器端向所述芯片發送幀處理開始指令,并處理所述當前的驗證碼流的當前幀;所述芯片接收到所述幀處理開始指令后,處理所述當前的驗證碼流的當前幀; 若所述當前幀為所述當前的驗證碼流的最后一幀,則所述處理器端向所述芯片發送下一個驗證碼流處理指令;所述芯片接收到所述下一個驗證碼流處理指令后,向處理器端發送驗證開始請求。
7.如權利要求6所述的芯片的驗證方法,其特征在于,所述芯片與所述處理器端處理所述驗證碼流還包括若所述當前幀為所述當前的驗證碼流的最后一幀,則所述處理器端在向所述芯片發送下一個驗證碼流處理指令前還發送幀處理停止指令;所述芯片接收到所述幀處理停止指令后,停止對所述當前幀的處理。
8.如權利要求6所述的芯片的驗證方法,其特征在于,所述處理器端在檢驗到所有的驗證碼流都未完成檢驗,向所述芯片發送下一個驗證碼流處理指令。
9.如權利要求6所述的芯片的驗證方法,其特征在于,所述芯片與所述處理器端處理所述驗證碼流還包括所述處理器端處理完所述當前幀后,向所述芯片發出當前幀結束指令;所述芯片將其處理所述驗證碼流的結果數據發送至所述處理器端包括所述芯片在處理完所述當前幀且接收到所述當前幀結束指令后,將處理所述當前幀的結果數據發送至所述處理器端。
10.如權利要求1所述的芯片的驗證方法,其特征在于,所述處理器端將驗證碼流發送至所述芯片包括所述處理器端將未檢驗的驗證碼流發送至所述芯片。
11.如權利要求10所述的芯片的驗證方法,其特征在于,還包括所述處理器端建立驗證碼流列表;所述處理器端將未檢驗的驗證碼流發送至所述芯片包括所述處理器端檢驗所述驗證碼流列表中的驗證碼流是否都已檢驗完成,若是則結束驗證,否則所述處理器端依次發送所述驗證碼流列表中的未檢驗的驗證碼流至所述芯片。
12.如權利要求6所述的芯片的驗證方法,其特征在于,還包括所述處理器端匹配其處理所述當前幀的結果數據與所述芯片處理所述當前幀的結果數據之后,將下一幀設置為當前幀。
13.如權利要求1所述的芯片的驗證方法,其特征在于,還包括所述處理器端記錄匹配所述處理器端的處理所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據的匹配結果。
14.如權利要求1所述的芯片的驗證方法,其特征在于,所述硬件加速器包括視頻加速器和/或音頻加速器,所述驗證碼流為視頻驗證碼流或音頻驗證碼流。
15.一種芯片,包括硬件加速器,其特征在于,還包括消息發送單元,用以向處理器端發送驗證開始請求;芯片驗證碼流處理單元,用以在所述消息發送單元向所述處理器端發送驗證開始請求后,接收并處理所述處理器端發送的驗證碼流;所述處理所述處理器端發送的驗證碼流包括解碼或編碼所述驗證碼流;數據發送單元,用以將所述芯片驗證碼流處理單元處理所述驗證碼流的結果數據發送至所述處理器端。
16.如權利要求15所述的芯片,其特征在于,還包括壓縮單元,用以壓縮所述芯片驗證碼流處理單元處理所述驗證碼流的結果數據;所述數據發送單元將壓縮后的所述芯片驗證碼流處理單元處理所述驗證碼流的結果數據發送至所述處理器端。
17.如權利要求15所述的芯片,其特征在于,所述芯片驗證碼流處理單元以幀為單位處理所述驗證碼流。
18.如權利要求17所述的芯片,其特征在于,所述數據發送單元以幀為單位將所述芯片驗證碼流處理單元處理所述驗證碼流的結果數據發送至所述處理器端。
19.如權利要求17所述的芯片,其特征在于,所述芯片驗證碼流處理單元包括驗證碼流接收單元,用以接收所述處理器端發送的驗證碼流;指令接收單元,用以接收所述處理器端發送的指令;操作單元,用以在所述驗證碼流接收單元接收到所述處理器端發送的驗證碼流后向所述處理器端發送幀處理開始請求,在所述指令接收單元接收到的指令為幀處理開始指令時,處理當前的驗證碼流的當前幀;在所述指令接收單元接收到的指令為下一個驗證碼流處理指令時,控制所述消息發送單元向所述處理器端發送驗證開始請求。
20.如權利要求19所述的芯片,其特征在于,所述操作單元還在所述指令接收單元接收到的指令為幀處理停止指令時,停止對所述當前幀的處理。
21.如權利要求19所述的芯片,其特征在于,所述數據發送單元在所述操作單元處理完所述當前幀且所述指令接收單元接收到的指令為當前幀結束指令時,將處理所述當前幀的結果數據發送至所述處理器端。
22.如權利要求15所述的芯片,其特征在于,所述硬件加速器包括視頻加速器和/或音頻加速器,所述驗證碼流為視頻驗證碼流或音頻驗證碼流。
23.一種處理器端,其特征在于,包括消息接收單元,用于接收如權利要求15至22任一項所述的芯片發送的驗證開始請求;驗證碼流發送單元,用以在所述消息接收單元接收到所述驗證開始請求后,將驗證碼流發送至所述芯片;處理器驗證碼流處理單元,用以處理所述驗證碼流,所述處理所述驗證碼流包括解碼或編碼所述驗證碼流;數據接收單元,用以接收所述芯片處理所述驗證碼流的結果數據; 匹配單元,用以匹配所述處理器驗證碼流處理單元處理所述驗證碼流的結果數據與所述數據接收單元接收的所述芯片處理所述驗證碼流的結果數據。
24.如權利要求23所述的處理器端,其特征在于,所述處理器驗證碼流處理單元以幀為單位處理所述驗證碼流。
25.如權利要求M所述的處理器端,其特征在于,所述數據接收單元以幀為單位接收所述芯片處理所述驗證碼流的結果數據;所述匹配單元以幀為單位匹配每一幀的結果數據。
26.如權利要求23所述的處理器端,其特征在于,所述處理器驗證碼流處理單元包括 驗證單元,用以在接收到所述芯片的操作單元發送的幀處理開始請求后,檢驗當前幀是否為當前的驗證碼流的最后一幀;指令發送單元,用以在所述驗證單元檢驗到所述當前幀不是所述當前的驗證碼流的最后一幀時,向所述芯片發送幀處理開始指令;在所述驗證單元檢驗到所述當前幀為所述當前的驗證碼流的最后一幀時,向所述芯片發送下一個驗證碼流處理指令;處理單元,用以在所述驗證單元檢驗到所述當前幀不是所述當前的驗證碼流的最后一幀時,處理所述當前的驗證碼流的當前幀。
27.如權利要求沈所述的處理器端,其特征在于,在所述驗證單元檢驗到所述當前幀為所述當前的驗證碼流的最后一幀時,所述指令發送單元在發送下一個驗證碼流處理指令前還向所述芯片發送幀處理停止指令。
28.如權利要求沈所述的處理器端,其特征在于,所述指令發送單元在所述驗證單元在檢驗到所有的驗證碼流都未完成檢驗時,向所述芯片發送下一個驗證碼流處理指令。
29.如權利要求沈所述的處理器端,其特征在于,所述處理單元處理完所述當前幀后, 所述指令發送單元向所述芯片發出當前幀結束指令。
30.如權利要求23所述的處理器端,其特征在于,所述驗證碼流發送單元包括檢驗單元,用以檢驗所有的驗證碼流是否都已檢驗完成;發送單元,用以在所述檢驗單元檢驗到存在未檢驗的驗證碼流時,將所述未檢驗的驗證碼流發送至所述芯片。
31.如權利要求30所述的處理器端,其特征在于,還包括,列表建立單元,用以建立所述驗證碼流的列表;所述檢驗單元檢驗所述驗證碼流列表中的驗證碼流是否都已檢驗完成,若是則所述處理器端結束對所述驗證碼流的驗證,否則所述發送單元依次發送所述驗證碼流列表中的未檢驗的驗證碼流至所述芯片。
32.如權利要求沈所述的處理器端,其特征在于,所述匹配單元還在匹配所述處理器驗證碼流處理單元處理所述當前幀的結果數據與所述芯片處理所述當前幀的結果數據后, 將下一幀設置為當前幀。
33.如權利要求23所述的處理器端,其特征在于,還包括存儲單元,用以記錄所述匹配單元匹配所述處理器驗證碼流處理單元處理的所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據的匹配結果。
34.一種芯片驗證系統,其特征在于,包括如權利要求15-22任一項所述的芯片;如權利要求23-33任一項所述的處理器端。
全文摘要
一種芯片的驗證方法,芯片、處理器端和芯片檢驗系統,所述芯片的驗證方法包括所述芯片向處理器端發送驗證開始請求;所述處理器端接收到所述驗證開始請求,將驗證碼流發送至所述芯片;所述芯片與所述處理器端處理所述驗證碼流;所述芯片將其處理所述驗證碼流的結果數據發送至所述處理器端;所述處理器端匹配其處理所述驗證碼流的結果數據與所述芯片處理所述驗證碼流的結果數據。本發明的技術方案提高了對集成有硬件加速器的芯片的一致性驗證的效率和質量。
文檔編號H04N7/26GK102420982SQ201110338800
公開日2012年4月18日 申請日期2011年10月31日 優先權日2011年10月31日
發明者林福輝, 羅小偉 申請人:展訊通信(上海)有限公司