專利名稱:片上系統(soc)測試接口安全性的制作方法
技術領域:
本發(fā)明一般地涉及集成電路。更具體地,本發(fā)明設計片上系統 (SoC)測試接口安全性。
背景技術:
集成電路技術的近期發(fā)展引起了所謂的片上系統(SoC)集成電路的 激增,其中處理器與存儲器和諸如專用電路之類的其他硬件模塊被嵌入在 單個集成電路芯片上。圖1示出了現有技術的SoC 100,其包括處理器 102、非易失性存儲器104、易失性存儲器06、只讀存儲器(ROM) 108、 測試接口 110和專用電路112。
SoC 100通常包括用于調試和測試SoC 100的測試接口 110,例如聯合 測試行動組(JTAG)接口。測試接口 110—般連接到處理器102和專用電 路112,并且也可以連接到SoC 100中的其他電路。例如,測試接口 100 可用于跟蹤處理器102對存儲在非易失性存儲器104中的固件的執(zhí)行。
然而,盡管在開發(fā)期間是有用的,但是一旦在現場配置了測試接口 110,測試接口 110就為攻擊者提供了洞察SoC IOO的開口。例如,攻擊者 可以使用測試接口 110來復制或修改固件,從而破壞配置有SoC 100的系 統的安全性。SoC 100可以采用諸如私密密鑰(secret key)之類的秘密來 防止對某些資源的未經授權的訪問。例如,數字視頻盤(DVD)播放器/刻錄機中所配置的SoC 100可以采用私密密鑰來防止用戶制作拷貝受保護 的DVD的拷貝。攻擊者可以使用測試接口 110來獲得私密密鑰,然后使 用DVD播放器/刻錄機來制作拷貝受保護的DVD的拷貝。
發(fā)明內容
一般而言,在一個方面中,本發(fā)明提供了一種裝置,包括處理器; 僅在被使能時與處理器通信的測試接口;為處理器存儲固件的第一存儲 器;以及為所述處理器存儲啟動碼的第二存儲器,其中當處理器被啟動 時,啟動碼使得處理器從第一存儲器的預定位置讀取固件的一部分;其 中,測試接口僅在固件的該部分具有預定值時被使能。
在一些實施例中,測試接口包括聯合測試行動組(JTAG)接口。在 一些實施例中,處理器確定固件的該部分是否具有預定值;并且處理器在 固件的該部分具有預定值時使能測試接口。 一些實施例包括專用電路,該 專用電路包括寄存器、存儲預定值的第三存儲器以及基于寄存器和第三存 儲器之間的比較來使能測試接口的邏輯,其中啟動碼使得處理器將固件的 該部分寫入寄存器。在一些實施例中,測試接口僅在被使能時與專用電路 通信。在一些實施例中,存儲在第一存儲器的預定位置處的固件的該部分 被加擾,并且裝置還包括當處理器從第一存儲器的預定位置讀取固件的 該部分時,對固件的該部分解擾的解擾器。在一些實施例中,解擾是根據 以下各項中的至少之一執(zhí)行的高級加密標準(AES)處理;數據加密標 準(DES)處理;和共享密鑰處理。在一些實施例中,第一存儲器包括 固件存儲器。在一些實施例中,第二存儲器包括只讀存儲器。 一些實施 例包括具有該裝置的集成電路。 一些實施例包括具有該集成電路的盤播放 器。
一般而言,在一個方面中,本發(fā)明提供了一種裝置,包括處理裝 置;僅在被使能時與處理裝置通信的測試接口裝置;為處理裝置存儲固件 的第一存儲器裝置;以及為處理裝置存儲啟動碼的第二存儲器裝置,其中 當處理裝置被啟動時,啟動碼使得處理裝置從第一存儲器裝置的預定位置 讀取固件的一部分;其中,測試接口裝置僅在固件的該部分具有預定值時被使能。
在一些實施例中,測試接口包括聯合測試行動組(JTAG)接口。在
一些實施例中,處理裝置確定固件的該部分是否具有預定值;并且其中,
處理裝置在固件的該部分具有預定值時使能測試接口 。 一些實施例包括用 于存儲數據的第三存儲器裝置、用于存儲預定值的第四存儲器裝置以及基 于第三和第四存儲器裝置之間的比較來使能測試接口的邏輯裝置,其中啟 動碼使得處理裝置將固件的該部分寫入第三存儲器裝置。在一些實施例 中,測試接口裝置僅在測試接口被使能時與邏輯裝置通信。在一些實施例 中,存儲在第一存儲器裝置的預定位置處的固件的該部分被加擾,并且裝
置還包括當處理裝置從第一存儲器的預定位置讀取固件的該部分時,對 固件的該部分解擾的解擾裝置。在一些實施例中,解擾是根據以下各項中 的至少之一執(zhí)行的高級加密標準(AES)處理;數據加密標準(DES) 處理;和共享密鑰處理。 一些實施例包括具有該裝置的集成電路。 一些實
施例包括具有該集成電路的盤播放器。
一般而言,在一個方面中,本發(fā)明提供了一種用于操作裝置的方法, 該裝置包括處理器、測試接口、為處理器存儲固件的第一存儲器和為處理
器存儲啟動碼的第二存儲器,該方法包括當處理器被啟動時,響應于啟 動碼而從第一存儲器的預定位置讀取固件的一部分;確定固件的該部分是 否具有預定值;以及僅在固件的該部分具有預定值時使能測試接口;其 中,測試接口僅在被使能時與處理器通信。
在一些實施例中,該裝置還包括寄存器和存儲預定值的第三存儲器, 該方法還包括響應于啟動碼而將固件的該部分寫入寄存器中;以及基于 寄存器和第三存儲器之間的比較來使能測試接口。在一些實施例中,所述 裝置還包括專用電路,該專用電路包括寄存器和第三存儲器;并且其中, 測試接口僅在被使能時與專用電路通信。在一些實施例中,存儲在第一存 儲器的預定位置處的固件的該部分被加擾,所述方法還包括當從第一存
儲器的預定位置讀取固件的該部分時,對固件的該部分解擾。在一些實施
例中,解擾是根據以下各項中的至少之一執(zhí)行的高級加密標準(AES) 處理;數據加密標準(DES)處理;和共享密鑰處理。一般而言,在一個方面中,本發(fā)明提供了一種可在處理器上執(zhí)行以操 作裝置的計算機程序,該裝置包括處理器、測試接口、為處理器存儲固件 的第一存儲器和為處理器存儲啟動碼的第二存儲器,所述計算機程序包 括用于當處理器被啟動時,響應于啟動碼而從第一存儲器的預定位置讀
取固件的一部分的指令;用于確定固件的該部分是否具有預定值的指令; 以及用于僅在固件的該部分具有預定值時使能測試接口的指令;其中,測 試接口僅在被使能時與處理器通信。在一些實施例中,該裝置還包括寄存 器和存儲預定值的第三存儲器,該計算機程序還包括用于響應于啟動碼
而將固件的該部分寫入寄存器中的指令;以及用于基于寄存器和第三存儲
器之間的比較來使能測試接口的指令。在一些實施例中,所述裝置還包括
專用電路,該專用電路包括寄存器和第三存儲器;并且其中,測試接口僅 在被使能時與專用電路通信。在一些實施例中,存儲在第一存儲器的預定
位置處的固件的該部分被加擾,所述計算機程序還包括用于當從第一存
儲器的預定位置讀取固件的該部分時對固件的該部分解擾的指令。在一些
實施例中,解擾是根據以下各項中的至少之一執(zhí)行的高級加密標準 (AES)處理;數據加密標準(DES)處理;和共享密鑰處理。
在附圖和以下的描述中給出了一種或多種實現方式的細節(jié)。其他特征 將從描述和附圖以及權利要求中變得清楚。
圖l示出了現有技術的片上系統(SoC)。
圖2示出了根據本發(fā)明一些實施例的其中處理器檢査授權碼的SoC。
圖3示出了根據本發(fā)明一些實施例的用于圖3的SoC的處理。
圖4示出了根據本發(fā)明一些實施例的其中專用電路檢查授權碼的
SoC。
圖5示出了根據本發(fā)明一些實施例的用于圖5的SoC的處理。 圖6A-6G示出了本發(fā)明的各種示例性實現方式。本說明書中使用的每 個標號的(一個或多個)開始位表示該標號首先出現于的圖號。
具體實施例方式
本發(fā)明的實施例為片上系統(SoC)集成電路的測試接口提供了安全 性。SoC包括測試接口、處理器、為處理器存儲固件的固件存儲器和為處 理器存儲啟動碼的只讀存儲器。測試接口僅在被使能時與處理器通信,并
且可被實現為聯合測試行動組(JTAG)接口。當處理器被啟動時,啟動 碼使得處理器從固件存儲器的預定位置讀取固件的一部分。測試接口僅在 由處理器所讀取的一部分固件包括預定授權碼時被使能。
在根據本發(fā)明的實施例所實現的SoC中,授權碼可在SoC的開發(fā)階段 期間被存儲在固件存儲器中,從而使得測試接口能夠用于調試和測試 SoC。然后,對于生產,授權碼可被從固件中去除,從而禁止測試接口。
在一些實施例中,處理器確定這一部分固件是否包括授權碼,并且當 這部分固件包括授權碼時使能測試接口。在其他實施例中,專用電路確定 這部分固件是否包括授權碼。專用電路可以是設備控制器等,例如用于控 制數字視頻盤(DVD)播放器/刻錄機等。專用電路包括寄存器、存儲授 權碼的存儲器和比較器。啟動碼使得處理器將這一部分固件寫入寄存器。 比較器基于寄存器和另外的存儲器之間的比較來使能測試接口。
在專用電路檢查授權碼的實施例中,SoC的制造商不需要知道授權 碼,因此免除了為其制造的SoC來維護和確保授權碼的責任。在這些實施 例中,客戶(例如,包括SoC的電子設備的制造商)可以購買不包含授權 碼的SoC,然后客戶可以將授權碼輸入到SoC中以使能測試接口用于測試 和調試。例如,專用電路中的存儲器可被實現為一次可編程存儲器??蛻?將授權碼刻錄到存儲器中,并且還將授權碼存儲在固件中。當客戶準備運 載SoC時,客戶簡單地從固件中去除授權碼,從而禁止測試接口。
在一些實施例中,存儲在固件存儲器中的固件的一部分或全部根據加 擾(scramble)處理而被加擾。這些實施例包括解擾器,該解擾器在處理 器從固件存儲器中讀取固件時根據解擾處理來對固件解擾。加擾和解擾處 理可以包括高級加密標準(AES)處理、數據加密標準(DES)處理、共 享密鑰處理等等。在這些實施例中,即使攻擊者以某種方式能夠通過測試 接口來訪問SoC,攻擊者仍然將面對將固件解擾的問題。圖2示出了根據本發(fā)明實施例的SoC 200,其中SoC 200中的處理器 202檢査授權碼。SoC 200包括處理器202、僅在被使能時與處理器202通 信的測試接口 204、為處理器202存儲固件208的固件存儲器206和為處 理器202存儲啟動碼212的只讀存儲器(ROM) 210。如以下詳細所述, 當測試接口 204被使能時,測試接口 204可連接到處理器202和專用電路 216以及SoC 200中的其他電路。測試接口 204可被實現為JTAG接口 等。固件存儲器206可被實現為非易失性存儲器等。
SoC 200 —般還包括隨機存取存儲器(RAM) 214和專用電路216。 例如,當SoC 200意圖控制諸如DVD播放器之類的盤播放器時,專用電 路216可以包括盤控制器和讀取通道。當然,其他實現方式可以包括其他 種類的專用電路。
在一些實施例中,固件208被加擾,并且SoC 200包括解擾器218, 解擾器218在固件208被從固件存儲器206讀取時對固件208的全部或一 部分進行解擾,例如如上所述。盡管在所述實施例中,SoC 200的元件被 以一種布置方式呈現,但是其他實施例可以提供其他的布置方式,相關領 域技術人員基于這里提供的公開內容和教導將會清楚這些布置方式。例 如,SoC200的元件可用硬件、軟件或者其組合來實現。
圖3示出了根據本發(fā)明實施例的用于圖3的SoC 200的處理。盡管在 所述實施例中,處理300的要素被以一種布置方式呈現,但是其他實施例 可以提供其他布置方式,相關領域技術人員基于這里提供的公開內容和教 導將會清楚這些布置方式。
例如通過向SoC 200循環(huán)提供(cycle)電力、向處理器202施加復位 信號等,處理器202被啟動(步驟302),這是相關領域中公知的。當被 啟動時,處理器202開始執(zhí)行存儲在ROM 210中的啟動碼212 (步驟 304)。啟動碼212使得處理器202從固件存儲器206的預定位置讀取固件 208的一部分(步驟306),并使得處理器202確定固件208的這部分是否 包含適當的授權碼(步驟308)。例如,授權碼可被存儲在ROM 210中, 并且處理器202將該授權碼與從固件存儲器206的預定位置讀取的一部分 固件208相比較。如果固件208包含適當的授權碼(步驟310),則處理器202例如通 過斷言(assert)使能信號220來使能測試接口 204 (步驟312)。否則, 處理器202例如通過否定使能信號220來禁止測試接口 204 (步驟 314)。當被使能時,測試接口 204允許諸如測試設備之類的外部設備與 處理器202之間的通信,以及在一些實施例中與SoC 200中諸如專用電路 216之類的其他電路之間的通信。
圖4示出了根據本發(fā)明實施例的SoC 400,其中SoC 400中的專用電 路416檢查授權碼。SoC 400包括處理器402、僅在被使能時與處理器402 通信的測試接口 404、為處理器402存儲固件408的固件存儲器406和為 處理器存儲啟動碼412的只讀存儲器(ROM) 410。如以下詳細所述,當 測試接口 404被使能時,測試接口 404可連接到處理器402和專用電路 416以及SoC 400中的其他電路。測試接口 404可被實現為JTAG接口 等。固件存儲器406可被實現為非易失性存儲器等。SoC 400 —般還包括 隨機存取存儲器(RAM) 414。
SoC 400還包括專用電路416。例如,當SoC 400意圖控制諸如DVD 播放器之類的盤播放器時,專用電路416可以包括盤控制器和讀取通道。 當然,其他實現方式可以包括其他種類的專用電路。專用電路416包括寄 存器422、存儲器424和比較器426。存儲器424可被實現為一次可編程 存儲器。
在一些實施例中,固件408被加擾,并且SoC 400包括解擾器418, 解擾器418在固件408被從固件存儲器406讀取時對固件408的全部或一 部分進行解擾,例如如上所述。盡管在所述實施例中,SoC 400的元件被 以一種布置方式呈現,但是其他實施例可以提供其他的布置方式,相關領 域技術人員基于這里提供的公開內容和教導將會清楚這些布置方式。例 如,SoC400的元件可用硬件、軟件或者其組合來實現。
圖5示出了根據本發(fā)明實施例的用于圖5的SoC 400的處理。盡管在 所述實施例中,處理500的要素被以一種布置方式呈現,但是其他實施例 可以提供其他布置方式,相關領域技術人員基于這里提供的公開內容和教 導將會清楚這些布置方式。例如通過向SoC 400循環(huán)提供(cycle)電力、向處理器402施加復位 信號等,處理器402被啟動(步驟502),這是相關領域中公知的。當被 啟動時,處理器402開始執(zhí)行存儲在ROM 410中的啟動碼412 (步驟 504)。啟動碼412使得處理器402從固件存儲器406的預定位置讀取固件 408的一部分(步驟506),并使得處理器402將固件408的這部分寫入專 用電路416的寄存器422中(步驟508)。
在這些實施例中,授權碼被存儲在存儲器424中。比較器426基于寄 存器422和存儲器424之間的比較來使能測試接口 404。具體地,如果存 儲器424包含適當的授權碼(步驟510),則比較器426例如通過斷言使 能信號420來使能測試接口 404 (步驟512)。否則,比較器426例如通 過否定使能信號420來禁止測試接口 404 (步驟514)。當被使能時,測 試接口 404允許諸如測試設備之類的外部設備與處理器202之間的通信, 以及在一些實施例中與SoC 400中諸如專用電路416之類的其他電路之間 的通信。
圖6A-6G示出了本發(fā)明的各種示例性實施例?,F在參考圖6A,本發(fā) 明可被實現在硬盤驅動器601中。本發(fā)明可以實現信號處理和/或控制電路 的任一者或兩者,這總地在圖6A的602處標識出。在一些實現方式中, HDD 601中的信號處理和/或控制電路602和/或其他電路(未示出)可以 處理數據、執(zhí)行編碼和/或加密、執(zhí)行計算和/或對輸出到/接收自磁存儲介 質603的數據進行格式化。
HDD 601可以經由一個或多個有線或無線通信鏈路604來與諸如計算 機之類的主機設備(未示出)、諸如個人數字助理、蜂窩電話、媒體或 MP3播放器等的移動計算設備和/或其他設備通信。HDD 601可以連接到 存儲器605,存儲器605例如是隨機存取存儲器(RAM)、諸如閃存之類 的低等待時間非易失性存儲器、只讀存儲器(ROM)和/或其他合適的電 子數據存儲裝置。
現在參考圖6B,本發(fā)明可被實現在數字通用盤(DVD)驅動器606 中。本發(fā)明可以實現DVD驅動器606的信號處理和/或控制電路的任一者 或兩者(總地在圖6B的607處標識出)和/或海量數據存儲裝置。DVD606中的信號處理和/或控制電路607和/或其他電路(未示出)可以處理數 據、執(zhí)行編碼和/或加密、執(zhí)行計算和/或對讀取自/寫入到光存儲介質608 的數據進行格式化。在一些實現方式中,DVD606中的信號處理和/或控制 電路607和/或其他電路(未示出)也可以執(zhí)行其他功能,例如編碼和/或 解碼和/或任何其他與DVD驅動器相關的信號處理功能。
DVD驅動器606可以經由一個或多個有線或無線通信鏈路609來與諸 如計算機、電視或其他設備之類的輸出設備(未示出)通信。DVD 606可 以與以非易失性方式存儲數據的海量數據存儲裝置610通信。海量數據存 儲裝置610可以包括硬盤驅動器(HDD) 。 HDD可以具有圖6A所示的配 置。HDD可以是包括一個或多個直徑小于大約1.8"的盤片的小型HDD。 DVD 606可以連接到存儲器611,存儲器611例如是RAM、 ROM、諸如 閃存之類的低等待時間非易失性存儲器和/或其他合適的電子數據存儲裝 置。
現在參考圖6C,本發(fā)明可被實現在高清晰度電視(HDTV) 612中。 本發(fā)明可以實現HDTV 612的信號處理和/或控制電路的任一者或兩者(總 地在圖6C的613處標識出)、WLAN接口和/或海量數據存儲裝置。 HDTV 612接收有線或無線格式的HDTV輸入信號,并生成用于顯示裝置 614的HDTV輸出信號。在一些實現方式中,HDTV 612的信號處理和/或 控制電路613和/或其他電路(未示出)可以處理數據、執(zhí)行編碼和/或加 密、執(zhí)行計算、格式化數據和/或執(zhí)行可能需要的任何其他類型的HDTV 處理。
HDTV 612可以與以非易失性方式存儲數據的海量數據存儲裝置615 (例如光和/或磁存儲設備)通信。至少一個HDD可以具有圖6A所示的 配置,并且/或者至少一個DVD可以具有圖6B所示的配置。HDD可以是 包括一個或多個直徑小于大約1.8"的盤片的小型HDD。 HDTV 612可以連 接到存儲器616,存儲器616例如是RAM、 ROM、諸如閃存之類的低等 待時間非易失性存儲器和/或其他合適的電子數據存儲裝置。HDTV 612還 可以支持經由WLAN網絡接口 617而與WLAN的連接。
現在參考圖6D,本發(fā)明實現車輛618的控制系統、車輛控制系統的WLAN接口和/或海量數據存儲裝置。在一些實現方式中,本發(fā)明實現動
力系控制系統619,動力系控制系統619從諸如溫度傳感器、壓力傳感 器、旋轉傳感器、氣流傳感器或者任何其他合適的傳感器之類的一個或多 個傳感器接收輸入,并且/或者生成諸如引擎操作參數、傳送操作參數和/ 或其他控制信號之類的一個或多個輸出控制信號。
本發(fā)明也可被實現在車輛618的其他控制系統622中??刂葡到y622 可以類似地從輸入傳感器623接收信號并且/或者向一個或多個輸出設備 624輸出控制信號。在一些實現方式中,控制系統622可以是防抱死致動 系統(ABS)、導航系統、遠程信息系統、車輛遠程信息系統、航道偏離 系統、自適應巡航控制系統、車輛娛樂系統(例如立體聲、DVD、光盤) 等的一部分。仍然考慮其他實現方式。
動力系控制系統619可以與以非易失性方式存儲數據的海量數據存儲 裝置625通信。辨量數據存儲裝置625可以包括光和/或磁存儲設備,例如 硬盤驅動器(HDD)和/或DVD驅動器。至少一個HDD可以具有圖6A所 示的配置,并且/或者至少一個DVD可以具有圖6B所示的配置。HDD可 以是包括一個或多個直徑小于大約1.8"的盤片的小型HDD。動力系控制系 統619可以連接到存儲器626,存儲器626例如是RAM、 ROM、諸如閃 存之類的低等待時間非易失性存儲器和/或其他合適的電子數據存儲裝置。 動力系控制系統619還可以支持經由WLAN網絡接口 627而與WLAN的 連接??刂葡到y622也可以包括海量數據存儲裝置、存儲器和/或WLAN 接口 (都未示出)。
現在參考圖6E,本發(fā)明可被實現在蜂窩電話628中,蜂窩電話628可 以包括蜂窩天線629。本發(fā)明可以實現蜂窩電話628的信號處理和/或控制 電路的任一者或兩者(總地在圖6E的630處標識出)、WLAN接口和/或 海量數據存儲裝置。在一些實現方式中,蜂窩電話628包括麥克風631、 音頻輸出632 (例如揚聲器和/或音頻輸出插口)、顯示裝置633和/或輸入 設備634 (例如小鍵盤、點選設備、語音致動和/或其他輸入設備)。蜂窩 電話628中的信號處理和/或控制電路630和/或其他電路(未示出)可以 處理數據、執(zhí)行編碼和/或加密、執(zhí)行計算、格式化數據和/或執(zhí)行其他蜂窩電話功能。
蜂窩電話628可以與以非易失性方式存儲數據的海量數據存儲裝置
635通信,海量數據存儲裝置635例如是光和/或磁存儲設備,例如硬盤驅 動器(HDD)禾tV或DVD驅動器。至少一個HDD可以具有圖6A所示的配 置,并且/或者至少一個DVD可以具有圖6B所示的配置。HDD可以是包 括一個或多個直徑小于大約1.8"的盤片的小型HDD。蜂窩電話628可以連 接到存儲器636,存儲器636例如是RAM、 ROM、諸如閃存之類的低等 待時間非易失性存儲器和/或其他合適的電子數據存儲裝置。蜂窩電話628 還可以支持經由WLAN網絡接口 637而與WLAN的連接。
現在參考圖6F,本發(fā)明可被實現在機頂盒638中。本發(fā)明可以實現機 頂盒638信號處理和/或控制電路的任一者或兩者(總地在圖6F的639處 標識出)、WLAN接口和/或海量數據存儲裝置。機頂盒638從諸如寬帶 源之類的源接收信號,并輸出適合于顯示裝置640的標準和/或高清晰度音 頻/視頻信號,顯示裝置640例如是電視和/或監(jiān)視器和/或其他視頻和/或音 頻輸出設備。機頂盒638的信號處理和/或控制電路639和/或其他電路 (未示出)可以處理數據、執(zhí)行編碼和/或加密、執(zhí)行計算、格式化數據和 /或執(zhí)行其他機頂盒功能。
機頂盒638可以與以非易失性方式存儲數據的海量數據存儲裝置643 通信。海量數據存儲裝置643可以包括光和/或磁存儲設備,例如硬盤驅動 器(HDD)和/或DVD驅動器。至少一個HDD可以具有圖6A所示的配 置,并且/或者至少一個DVD可以具有圖6B所示的配置。HDD可以是包 括一個或多個直徑小于大約1.8"的盤片的小型HDD。機頂盒638可以連接 到存儲器642,存儲器642例如是RAM、 ROM、諸如閃存之類的低等待 時間非易失性存儲器和/或其他合適的電子數據存儲裝置。機頂盒638還可 以支持經由WLAN網絡接口 643而與WLAN的連接。
現在參考圖6G,本發(fā)明可被實現在媒體播放器644中。本發(fā)明可以 實現媒體播放器644信號處理和/或控制電路的任一者或兩者(總地在圖 6G的645處標識出)、WLAN接口和/或海量數據存儲裝置。在一些實現 方式中,媒體播放器644包括顯示裝置646和/或諸如小鍵盤、觸摸板等的用戶輸入647。在一些實現方式中,媒體播放器644可以經由顯示裝置 646和/或用戶輸入647來采用圖形用戶界面(GUI),圖形用戶界面通常 采用菜單、下拉菜單、圖標和/或點擊接口。媒體播放器644還包括諸如揚 聲器和/或音頻輸出插口之類的音頻輸出648。媒體播放器644的信號處理 和/或控制電路645和/或其他電路(未示出)可以處理數據、執(zhí)行編碼和/ 或加密、執(zhí)行計算、格式化數據和/或執(zhí)行其他媒體播放器功能。
媒體播放器644可以與以非易失性方式存儲諸如壓縮的音頻和/或視頻 內容之類的數據的海量數據存儲裝置649通信。在一些實現方式中,壓縮 的視頻文件包括遵從MP3格式或者其他合適的壓縮音頻和/或視頻格式的 文件。海量數據存儲裝置可以包括光和/或磁存儲設備,例如硬盤驅動器
(HDD)和/或DVD驅動器。至少一個HDD可以具有圖6A所示的配置, 并且/或者至少一個DVD可以具有圖6B所示的配置。HDD可以是包括一 個或多個直徑小于大約1.8"的盤片的小型HDD。媒體播放器644可以連接 到存儲器650,存儲器650例如是RAM、 ROM、諸如閃存之類的低等待 時間非易失性存儲器和/或其他合適的電子數據存儲裝置。媒體播放器644 還可以支持經由WLAN網絡接口 651而與WLAN的連接。除了上述實現 方式之外仍然考慮其他實現方式。
本發(fā)明的實施例可以用數字電子電路或者計算機硬件、固件、軟件或 者其組合來實現。本發(fā)明的裝置可以體現為供可編程處理器執(zhí)行的機器可 讀存儲設備的計算機程序產品來實現;并且本發(fā)明的方法步驟可由可編程 處理器來執(zhí)行,可編程處理器執(zhí)行指令程序以通過對輸入數據進行操作并 生成輸出來執(zhí)行本發(fā)明的功能。本發(fā)明可有利地實現在可在可編程系統上 執(zhí)行的一個或多個計算機程序,該可編程系統包括被耦合為從數據存儲系 統接收數據和指令并向數據存儲系統發(fā)送數據和指令的至少一個可編程處 理器、至少一個輸入設備和至少一個輸出設備。根據需要,每個計算機程 序可以用高級過程或面向對象的編程語言或者用匯編或機器語言來實現; 并且在任何情況下,語言可以是經編譯和解釋的語言。合適的處理器例如 包括通用和專用微處理器。 一般而言,處理器將從只讀存儲器和/或隨機存 取存儲器接收指令和數據。 一般而言,計算機將包括用于存儲數據文件的一個或多個海量存儲設備;這種設備包括磁盤,例如內部硬盤和可移動 盤;磁光盤;和光盤。適合于有形地體現計算機程序指令和數據的存儲設
備包括所有形式的非易失性存儲器,例如包括半導體存儲器設備,例如
EPROM、 EEPROM和閃存設備;磁盤,例如內部硬盤和可移動盤;磁光 盤;以及CD-ROM盤。前述任何一種都可由ASIC (專用集成電路)來補 充或者并入在ASIC中。
描述了本發(fā)明的許多實現方式。然而,將會了解,可以作出各種修改 而不脫離本發(fā)明的精神和范圍。因此,其他實現方式在所附權利要求的范 圍內。
權利要求
1.一種裝置,包括處理器; 測試接口,該測試接口僅在被使能時與所述處理器通信;第一存儲器,為所述處理器存儲固件;以及第二存儲器,為所述處理器存儲啟動碼,其中當所述處理器被啟動時,所述啟動碼使得所述處理器從所述第一存儲器的預定位置讀取所述固件的一部分;其中,所述測試接口僅在所述固件的所述一部分具有預定值時被使能。
2. 如權利要求1所述的裝置,其中,所述測試接口包括聯合測試行動組(JTAG)接口。
3. 如權利要求1所述的裝置其中,所述處理器確定所述固件的所述一部分是否具有所述預定值;并且其中,所述處理器在所述固件的所述一部分具有所述預定值時使能所 述測試接口。
4. 如權利要求1所述的裝置,還包括專用電路,該專用電路包括寄存器,其中所述啟動碼使得所述處理器將所述固件的所述一部分寫 入所述寄存器,第三存儲器,存儲所述預定值,以及基于所述寄存器和所述第三存儲器之間的比較來使能所述測試接口的 邏輯。
5. 如權利要求4所述的裝置其中,所述測試接口僅在被使能時與所述專用電路通信。
6. 如權利要求1所述的裝置,其中,存儲在所述第一存儲器的所述預定位置處的所述固件的所述一部分被加擾,所述裝置還包括解擾器,當所述處理器從所述第一存儲器的所述預定位置讀取所述固 件的所述一部分時,所述解擾器對所述固件的所述一部分解擾。
7. 如權利要求6所述的裝置,其中,所述解擾是根據以下各項中的至 少一種來執(zhí)行的高級加密標準(AES)處理 數據加密標準(DES)處理 共享密鑰處理。
8. 如權利要求1所述的裝置 固件存儲器。
9. 如權利要求1所述的裝置 只讀存儲器。
10. —種包括如權利要求1所述的裝置的集成電路。
11. 一種包括如權利要求IO所述的集成電路的盤播放器。
12. —種用于操作裝置的方法,該裝置包括處理器、測試接口、為所 述處理器存儲固件的第一存儲器和為所述處理器存儲啟動碼的第二存儲 器,所述方法包括當所述處理器被啟動時,響應于所述啟動碼而從所述第一存儲器的預 定位置讀取所述固件的一部分;確定所述固件的所述一部分是否具有預定值;以及 僅在所述固件的所述一部分具有所述預定值時使能所述測試接口; 其中,所述測試接口僅在被使能時與所述處理器通信。
13. 如權利要求12所述的方法,其中,所述裝置還包括寄存器和存儲 所述預定值的第三存儲器,所述方法還包括響應于所述啟動碼而將所述固件的所述一部分寫入所述寄存器中;以及基于所述寄存器和所述第三存儲器之間的比較來使能所述測試接口。
14. 如權利要求13所述的方法其中,所述裝置還包括專用電路,該專用電路包括所述寄存器和所述 第三存儲器;并且;和,其中,所述第一存儲器包括: ,其中,所述第二存儲器包括:其中,所述測試接口僅在被使能時與所述專用電路通信。
15. 如權利要求12所述的方法,其中,存儲在所述第一存儲器的所述 預定位置處的所述固件的所述一部分被加擾,所述方法還包括當從所述第一存儲器的所述預定位置讀取所述固件的所述一部分時, 對所述固件的所述一部分解擾。
16. 如權利要求15所述的方法,其中,所述解擾是根據以下各項中的 至少一種來執(zhí)行的高級加密標準(AES)處理; 數據加密標準(DES)處理;和 共享密鑰處理。
17. —種可在處理器上執(zhí)行以操作裝置的計算機程序,該裝置包括處理器、測試接口、為所述處理器存儲固件的第一存儲器和為所述處理器存儲啟動碼的第二存儲器,所述計算機程序包括用于當所述處理器被啟動時,響應于所述啟動碼而從所述第一存儲器的預定位置讀取所述固件的一部分的指令;用于確定所述固件的所述一部分是否具有預定值的指令;以及 用于僅在所述固件的所述一部分具有所述預定值時使能所述測試接口的指令;其中,所述測試接口僅在被使能時與所述處理器通信。
18. 如權利要求17所述的計算機程序,其中,所述裝置還包括寄存器 和存儲所述預定值的第三存儲器,所述計算機程序還包括用于響應于所述啟動碼而將所述固件的所述一部分寫入所述寄存器中 的指令;以及用于基于所述寄存器和所述第三存儲器之間的比較來使能所述測試接 口的指令。
19. 如權利要求18所述的計算機程序其中,所述裝置還包括專用電路,該專用電路包括所述寄存器和所述 第三存儲器;并且其中,所述測試接口僅在被使能時與所述專用電路通信。
20. 如權利要求17所述的計算機程序,其中,存儲在所述第一存儲器 的所述預定位置處的所述固件的所述一部分被加擾,所述計算機程序還包括用于當從所述第一存儲器的所述預定位置讀取所述固件的所述一部分 時對所述固件的所述一部分解擾的指令。
21. 如權利要求20所述的計算機程序,其中,所述解擾是根據以下各項中的至少一種來執(zhí)行的高級加密標準(AES)處理;數據加密標準(DES)處理;和共享密鑰處理。
全文摘要
具有相應方法和計算機程序的裝置包括處理器;僅在被使能時與處理器通信的測試接口;為處理器存儲固件的第一存儲器;以及為處理器存儲啟動碼的第二存儲器,其中當處理器被啟動時,啟動碼使得處理器從第一存儲器的預定位置讀取固件的一部分;其中,測試接口僅在部件的該部分具有預定值時被使能。
文檔編號G01R31/317GK101517588SQ200780034350
公開日2009年8月26日 申請日期2007年7月11日 優(yōu)先權日2006年7月14日
發(fā)明者馮偉施 申請人:馬維爾國際貿易有限公司