欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于修改初始化計算設備所使用的固件的系統(tǒng)和方法與流程

文檔序號:11851398閱讀:296來源:國知局
用于修改初始化計算設備所使用的固件的系統(tǒng)和方法與流程

本專利申請要求于2014年3月31日遞交的、名稱為“System and Method for Modifying Firmware Used to Initialize a Computing Device”(代理人案號No.141456P1)的美國臨時申請No.61/973,206的申請日的優(yōu)先權和權益,以引用的方式將全部內(nèi)容并入本文。



背景技術:

計算設備是無處不在的。一些計算設備是便攜式的,諸如移動電話、平板電腦和膝上型計算機。隨著這些便攜式計算設備的功能的增加,要求的計算或處理功率以及一般的支持這些功能的數(shù)據(jù)存儲容量也會增加。除了這些設備的主要功能,很多包括支持次要功能的元件。例如,蜂窩電話可以包括實現(xiàn)并支持蜂窩電話呼叫的主要功能和靜態(tài)照相機、視頻攝像機、全球定位系統(tǒng)(GPS)導航、網(wǎng)頁瀏覽、發(fā)送和接收電子郵件、發(fā)送和接收文本消息、即按即說能力等次要功能。很多這些便攜式設備都包括片上系統(tǒng)(SoC)以在特定設備上實現(xiàn)一個或多個主要和次要功能。

SoC一般包括被嵌入到集成電路或芯片中的處理器,該集成電路或芯片耦合到局部總線。該SoC一般將包括硬件組件和其它處理器。該SoC,類似于諸如桌面型和服務器計算機之類的較大型計算設備,依賴于加電時的啟動序列或啟動代碼。該啟動序列是第一次向該SoC供電時該SoC執(zhí)行的初始操作集合。該啟動代碼實現(xiàn)用于初始化該SoC的過程(即,引導程序)。

出于快速訪問、低復雜度、空間效率、低開銷和安全性原因,該啟動代碼通常被存儲在只讀存儲器(ROM)中。該ROM,或者以其它方式被稱為掩模型或啟動ROM,使其代碼是硬連線的并且因此無法在稍后被重新編程。這允許更好的安全性以防對專有代碼的逆向工程和密碼攻擊。

在典型的SoC設計過程中,在該SoC的其它部分已經(jīng)完成之前,恰當?shù)囟x啟動ROM。電路結構的復雜度、特征集合、下一代市場趨勢、性能改進、已識別出的安全性缺陷和硅前驗證限制已經(jīng)導致常規(guī)的啟動ROM設計僅有有限的適應性以實現(xiàn)該SoC的流片后的改變。在這些常規(guī)設計中,啟動ROM固件備用有一次性可編程熔斷器,該熔斷器可以使得在運行時的執(zhí)行期間能夠替換指令或語句和數(shù)據(jù)。

圖1包括示出了補丁在計算設備的示例性常規(guī)啟動處理器10中如何工作的原理示意圖。如圖所示,啟動處理器10包括啟動ROM 12、安全控制器14、一次性可編程熔斷器16和多路器邏輯18,該啟動ROM 12包括啟動代碼或代碼20。安全控制器14包括補丁區(qū)域15,其包括與相應的數(shù)據(jù)字段相關聯(lián)的固定數(shù)量的地址。在示例實施例中,該補丁區(qū)域15包括48個這樣的地址。安全控制器14還包括存儲器17。在打補丁之前,補丁區(qū)域15是空的,并且一次性可編程熔斷器16都是原封不動的。當需要補丁或改變時,一次性可編程熔斷器中的一個或多個一次性可編程熔斷器被修改以便產(chǎn)生開放電路條件。另外,一個或多個地址和相應的數(shù)據(jù)字段被修改以包括地址和數(shù)據(jù)信息。開放電路條件指導安全控制器14在原始啟動ROM數(shù)據(jù)的位置中插入打補丁后的地址和相應數(shù)據(jù)。多路器邏輯18可控地將啟動ROM數(shù)據(jù)或打補丁后的數(shù)據(jù)根據(jù)需要轉發(fā)給耦合到該啟動處理器10的處理器(未示出)。

對于指令打補丁,通常的情況是無法就地進行打補丁或修改。也就是,需要擴展分支指令以便使用先前未使用的存儲器來添加替代指令或新的指令。此后,需要分支返回指令以便返回到原始啟動代碼。圖2包括示出了如何在圖1的常規(guī)啟動處理器10中實現(xiàn)補丁的原理示意圖。代碼20包括指令或語句序列。代碼20是由地址22和語句或指令24定義的。代碼地址以0x00000000開頭并且以代碼20中的最后一個指令或語句為結尾。原始的以及未修改的代碼20包括指令或語句A到XX。擴展分支指令或補丁30被插入到語句C和語句D之間。補丁地址32以0x10000000開頭并以完成該補丁30所需的最后一個指令或語句為結尾。每個補丁地址32與相應語句或指令34相關聯(lián)。如圖2中所示,在實現(xiàn)補丁30時消耗總共五個地址。第一個地址被消耗用于將跳轉或分支指令插入到代碼20中。額外兩個地址被補丁30中的新的指令所消耗。出于解釋說明的目的,OUT指令被描述為使用一個地址,但是實際上OUT指令消耗多于一個地址。額外一個地址被用于替換或恢復語句D,該語句D被跳轉或分支指令重寫了。第五個地址用于跳轉回代碼20中的下一個后續(xù)語句或指令。因此,五個地址被消耗用于在啟動代碼20中插入兩個新的指令。

盡管有這樣的靈活性,復用地址和數(shù)據(jù)所需的總的管芯面積成本和額外的電路迫使一次性可編程熔斷器16僅有有限的量可用。此外,有限數(shù)量的可用一次性可編程熔斷器16必須與SoC中的其它一次性可編程熔斷器16需求共享。

除了修復ROM代碼20中的程序錯誤(bug)所涉及的困難之外,向ROM代碼20添加新的特征也是很復雜的。這些額外的特征可能是系統(tǒng)設計者在ROM已經(jīng)被編程并且被裝配在SoC內(nèi)之后確定是期望的。

因此,需要有改進的機制來安全地修改只讀存儲器中硬連線的啟動序列或其它代碼。



技術實現(xiàn)要素:

公開了能夠使補丁應用到只讀存儲器(ROM)中存儲的啟動序列或其它指令序列的系統(tǒng)和方法的示例性實施例。通過在所述啟動序列中可能在所述SoC在固件中具體體現(xiàn)之后期望一個補丁的位置處插入補丁指示符,來修改原始啟動序列。任何數(shù)量的補丁指示符可以被插入到原始啟動序列中以便創(chuàng)建經(jīng)修改的啟動序列。補丁實例初始是空的并且被存儲在對于控制器而言可訪問的可編程存儲器中,該控制器用于在處理器中加載指令和數(shù)據(jù)。所述ROM包括補丁處理邏輯,當由處理器執(zhí)行時動態(tài)地指向由所述補丁指示符識別的補丁實例并且此后返回到所述啟動序列中的下一個后續(xù)指令。由于期望補丁,將指令類型編碼到該補丁的第一字中并且在該補丁的第二字中提供補丁地址。對于一些指令類型,用數(shù)據(jù)來填充第三字。

用于對只讀存儲器(ROM)中存儲的指令序列打補丁的改進的系統(tǒng)的示例性實施例包括可編程只讀存儲器或PROM、ROM、隨機訪問存儲器(RAM)、控制器和處理器。該PROM提供可尋址存儲器位置集合。所述ROM中存儲有指令序列和補丁處理邏輯,該補丁處理邏輯被安排用于動態(tài)地指向所述PROM中的所述可尋址存儲器位置集合中識別出的(即,可尋址的)位置,并且返回到所述ROM中的所述指令序列。所述RAM經(jīng)由總線耦合到所述PROM和ROM。所述控制器將指令序列和補丁處理邏輯從ROM加載到RAM。所述處理器經(jīng)由總線耦合到所述RAM并且執(zhí)行所述指令序列。當在所述指令序列中遇到補丁指示符時,所述處理器執(zhí)行所述補丁處理邏輯。

用于修改只讀存儲器中指令序列的方法的示例性實施例包括的步驟有:提供耦合到處理器的可尋址存儲器位置集合;提供耦合到所述處理器的一次性可編程熔斷器集合;提供耦合到所述處理器的只讀存儲器中的指令序列,以及啟用所述只讀存儲器中的補丁過程,所述補丁過程動態(tài)地指向所述可尋址存儲器位置集合中識別出的位置并返回到所述只讀存儲器中的所述指令序列,其中,當期望修改所述指令序列時,以所述一次性可編程熔斷器集合的方式的信息指導所述處理器執(zhí)行來自補丁的至少一個指令。

其上存儲有處理器指令的非臨時性處理器可讀介質的示例性實施例,當所述指令被執(zhí)行時指導所述處理器執(zhí)行功能,所述介質的示例性實施例包括的邏輯在由所述處理器執(zhí)行時指導所述處理器執(zhí)行以下步驟:識別指令序列中何時出現(xiàn)補丁指示符;確定補丁實例何時在與所述補丁指示符相關聯(lián)的地址處可用,使得當補丁實例不可用時,所述處理器從所述指令序列加載并執(zhí)行下一個后續(xù)指令。否則,當補丁實例可用時,所述處理器執(zhí)行根據(jù)與所述補丁指示符相關聯(lián)的所述地址處存儲的信息確定補丁類型,以及執(zhí)行來自所述補丁實例的至少一個指令的步驟。

用于對指令序列打補丁的改進的系統(tǒng)的另一個示例性實施例包括用于提供可尋址存儲器位置集合的單元,其中具有存儲的至少一個補丁實例;用于存儲指令序列和補丁處理邏輯的單元,所述補丁處理邏輯當由用于執(zhí)行所述指令序列的單元執(zhí)行時動態(tài)地指向在所述可尋址存儲器位置集合中識別出的位置,并且返回到所述指令序列;用于臨時存儲所述指令序列和補丁處理邏輯的單元;用于將所述指令序列和所述補丁處理邏輯從所述用于存儲的單元加載到所述用于臨時存儲的單元的單元;以及用于執(zhí)行來自所述用于臨時存儲的單元的所述指令序列的單元,其中,當在所述指令序列中遇到補丁指示符時,所述用于執(zhí)行的單元執(zhí)行所述補丁處理邏輯。

附圖說明

在附圖中,除非另外指出否則相同的附圖標記在貫穿各個視圖中指代相同的部分。對于具有諸如“102A”或“102B”的字母字符名稱的附圖標記,該字母字符名稱可以區(qū)分同一附圖中出現(xiàn)的兩個相同部分或元件。當其意在使附圖標記涵蓋所有附圖中具有相同附圖標記的所有部分時,可以省略參考序號的字母符號名稱。

圖1是示出了補丁如何在常規(guī)啟動處理器中工作的原理示意圖。

圖2是示出了如何在圖1的常規(guī)啟動處理器中啟用補丁的原理示意圖。

圖3是示出了包括改進的ROM補丁過程的計算設備的示例性實施例的原理示意圖。

圖4是示出了實現(xiàn)改進的ROM補丁過程的系統(tǒng)的示例性實施例的原理示意圖。

圖5是示出了具有兩個補丁實例的示例性啟動ROM代碼序列的實施例的原理示意圖。

圖6是示出了定義補丁之前圖5的示例性啟動ROM代碼序列的實施例的原理示意圖。

圖7是示出了圖6的示例性啟動ROM代碼序列中的兩個定義的補丁的示例性實施例的原理示意圖。

圖8是示出了通過圖4的補丁邏輯實現(xiàn)的改進的ROM補丁過程的實施例的流程圖。

圖9A和圖9B分別示出了寫指令和具有掩碼的寫的示例性實施例。

圖10A和圖10B分別示出了等待比特空閑指令和等待比特被設置指令的示例性實施例。

圖11是示出了啟動序列和假設補丁集合的示例性實施例的原理示意圖。

圖12是用于修改只讀存儲器中的指令序列的方法的示例性實施例的流程圖。

圖13是示出了計算機可讀介質的實施例的原理示意圖。

具體實施方式

本申請中使用的詞語“示例性”意為“用作示例、實例或舉例說明”。本申請中被描述為“示例性”的任何方面不一定被解釋為比其它方面更優(yōu)選或更有優(yōu)勢。

在本說明書中,術語“應用”還可以包括具有可執(zhí)行內(nèi)容的文件,諸如:目標代碼、腳本、字節(jié)代碼、標記語言文件和補丁。另外,本申請中引用的“應用”還可以包括性質上不可執(zhí)行的文件,諸如需要被打開的文檔或者需要被訪問的其它數(shù)據(jù)文件。

術語“內(nèi)容”還可以包括具有可執(zhí)行內(nèi)容的文件,諸如:目標代碼、腳本、字節(jié)代碼、標記語言文件和補丁。另外,本申請中引用的“應用”還可以包括性質上不可執(zhí)行的文件,諸如需要被打開的文檔或者需要被訪問的其它數(shù)據(jù)文件或數(shù)據(jù)值。

如本說明書中所使用的,術語“組件”、“模塊”、“系統(tǒng)”等等意在指代計算機相關實體,硬件、固件、硬件和軟件的組合,軟件,或執(zhí)行中的軟件。例如,組件可以是但并不僅限于處理器上運行的過程、處理器、對象、可執(zhí)行程序、執(zhí)行中的線程、程序和/或計算機。舉例而言,計算設備上運行的應用和該計算設備二者都可以是組件。一個或多個組件可以駐留在執(zhí)行中的過程和/或線程中,并且組件可以位于一個計算機上和/或在兩個或更多計算機之間分布。另外,這些組件可以根據(jù)其上存儲有各種數(shù)據(jù)結構的各種計算機可讀介質來執(zhí)行。這些組件可以通過本地的和/或遠程過程的方式進行通信,諸如根據(jù)具有一個或多個數(shù)據(jù)分組(例如,來自一個組件的數(shù)據(jù),該組件與本地系統(tǒng)、分布式系統(tǒng)中的另一個組件交互和/或跨越諸如互聯(lián)網(wǎng)之類的網(wǎng)絡通過信號的方式與其它系統(tǒng)交互)的信號。

在本說明書中,術語“便攜式計算設備”(“PCD”)用于描述任何操作在有限容量的可再充電電源(諸如電池和/或電容器)上的設備。盡管具有可再充電電源的PCD已經(jīng)使用了幾十年,然而可再充電電池的技術發(fā)展加上第三代(“3G”)和第四代(“4G”)無線技術的出現(xiàn),已經(jīng)使很多PCD具有多種功能。因此,PCD可以是蜂窩電話、衛(wèi)星電話、尋呼機、PDA、智能電話、導航設備、智能本或閱讀器、媒體播放器、上述設備的組合、具有無線連接的膝上型或平板計算機以及其它。

公開了用于在硬連線的或啟動ROM中對啟動序列打補丁的系統(tǒng)和方法。原始的或未修改的啟動序列被存儲在ROM中。該原始的或未修改的啟動序列與一個或多個補丁實例被預加載。補丁實例策略上位于片上系統(tǒng)(SoC)在固件中具體體現(xiàn)之后可能需要應用補丁的位置。這些補丁實例初始是空的。補丁實例被存儲在對于耦合到隨機訪問存儲器(RAM)和處理器的控制器而言可訪問的可編程存儲器中。該ROM包括用于動態(tài)地指向該可編程存儲器中的可尋址存儲器位置集合中識別出的位置的過程。此后,該過程返回到在該補丁實例之后的下一個后續(xù)指令。因為期望改正,因此用相應的補丁來填充一個或多個補丁實例。該補丁包括指令類型、地址和返回指示符。在一些變形中,該補丁還包括數(shù)據(jù)字段。因此,以不多于4個字的方式來實現(xiàn)補丁。

所提出的用于修改用于啟動計算設備的固件的系統(tǒng)和方法定義了在啟動ROM補丁或修改中使用的公共指令集合。通過預先定義公共指令并與嵌入的或存儲的用于指向或跳轉到PROM或其它可用存儲器中的可尋址存儲器位置并且在完成補丁時返回到啟動ROM的過程同樣地使用,所提出的系統(tǒng)和方法優(yōu)化了有限的一次性可編程熔斷器的總的使用,與此同時使得能夠進行硅流片之后的啟動ROM修改。

盡管具體參考PCD中的操作進行描述,然而所描述的系統(tǒng)和方法可應用于任何在ROM中具有啟動序列的計算系統(tǒng),其中對原始啟動序列打補丁或修改以避免與整個替換ROM相關聯(lián)的成本可能是很有用的。換句話說,本文中公開的系統(tǒng)和方法可應用于桌面型計算機、服務器計算機或任何具有被存儲在ROM中的嵌入式啟動序列的電子設備。

現(xiàn)在參考示出的示例。首先參考圖3,示出了PCD 100的示例性、非限制性方面。該PCD 100包括片上系統(tǒng)或SoC 120,其包括多核CPU 210。該多核CPU 210包括第0個內(nèi)核215、第1個或第一內(nèi)核216和第N個內(nèi)核217。所述N個內(nèi)核的每一個內(nèi)核是相互獨立的并且被安排用于處理諸如相加、移動數(shù)據(jù)、分支等指令。該多核CPU 210耦合到通用輸入輸出(GPIO)總線211,并且被安排為包括至少一個可編程存儲器或PROM 212和控制器214。所述N個內(nèi)核的每一個內(nèi)核結合GPIO總線211上傳輸?shù)幕蛘邅碜噪娋幊倘劢z元件192的信號,以及從ROM 190、系統(tǒng)存儲器230接收到的指令或被存儲在實現(xiàn)USB功能的數(shù)據(jù)存儲142中的程序或文件143來一起操作。

GPIO總線211可以被配置為向片上系統(tǒng)120外部的任何外圍設備發(fā)送來自CPU 210的信號,或者相反地從片上系統(tǒng)120外部的任何設備接收信號。這些外圍設備可以包括圖1中示出的那些中的一個或多個,或者在一些情況中包括圖1中未示出的設備。如下面將要解釋說明的,GPIO總線211可以用于指導SoC 120進入并操作在期望的操作模式中,其中從耦合到該SoC 120的存儲設備下載可執(zhí)行處理器指令。另外,該GPIO總線211可以用于調(diào)整或修改PROM 212中存儲的數(shù)據(jù)和/或配置該電編程熔絲元件192。

在示出的安排中,PROM 212是能夠存儲數(shù)據(jù)的內(nèi)部(集成)存儲器元件,所述數(shù)據(jù)可以由所述N個內(nèi)核的任何一個內(nèi)核在由相應內(nèi)核所確定的期望時間獲取。PROM 212被配置為提供被指派用于相應的補丁或指令集合的存儲位置集合。

控制器214耦合到所述N個內(nèi)核的每一個內(nèi)核并且被配置為以可控制的方式訪問來自各個存儲設備(多核CPU 210內(nèi)部和外部二者的)中的任意存儲設備的指令和數(shù)據(jù)并將該指令和數(shù)據(jù)提供給所述N個內(nèi)核或SoC 120內(nèi)的其它各個處理器。在本系統(tǒng)中,控制器214被配置為作為緊密耦合的存儲器來操作,以用于處理器指令、狀態(tài)信息和指向或分支邏輯的獲取。

只讀存儲器(ROM)190是一個集成電路,包括由CPU 210在初始加電期間或者在看門狗(watchdog)重置條件時執(zhí)行的代碼。該ROM優(yōu)選地是用固件來實現(xiàn)的。

如圖3中所示,顯示控制器128和觸摸屏控制器130耦合到多核CPU 210。反過來,片上系統(tǒng)120外部的顯示器/觸摸屏132耦合到顯示控制器128和觸摸屏控制器130。

圖3還指示了視頻編碼器134(例如逐行倒相(PAL)編碼器、按順序傳送彩色與存儲(SECAM)編碼器或美國國家電視系統(tǒng)委員會(NTSC)編碼器)耦合到多核CPU 210。此外,視頻放大器136耦合到該視頻編碼器134和顯示器/觸摸屏132。并且,視頻端口138耦合到該視頻放大器136。如圖3中所描繪的,通用串行總線(USB)控制器140耦合到多核CPU 210。并且,USB存儲設備142耦合到該USB控制器140。存儲在該USB存儲設備142中的文件143可用于轉移給系統(tǒng)存儲器230。另外,用戶識別模塊(SIM)卡接口146也可以耦合到該多核CPU 210,后者具有多核CPU 210和系統(tǒng)存儲器230之間的連接219,該連接由用于在SoC 120的這些元件之間轉移數(shù)據(jù)的兩個或更多物理通道或路徑組成。此外,如圖3中所示,數(shù)字攝像機148可以耦合到多核CPU 210。在一個示例性方面,數(shù)字攝像機148是電荷耦合設備(CCD)攝像機或者互補金屬氧化物半導體攝像機。

如圖3中所示,立體聲音頻編解碼器150可以耦合到多核CPU 210。此外,音頻放大器152可以耦合到該立體聲音頻編解碼器150。在示例性方面,第一立體聲揚聲器154和第二立體聲揚聲器156耦合到該音頻放大器152。圖3示出了麥克風放大器158也可以耦合到立體聲音頻編解碼器150。另外,麥克風116可以耦合到該麥克風放大器158。在特定方面,頻率調(diào)制(FM)無線電調(diào)諧器162可以耦合到該立體聲音頻編解碼器150。并且,F(xiàn)M天線164耦合到該FM無線電調(diào)諧器162。此外,立體聲端口166可以耦合到立體聲音頻編解碼器150。

圖3還指示射頻(RF)收發(fā)機168耦合到多核CPU 210。RF開關170可以耦合到該RF收發(fā)機168和RF天線172。如圖3中所示,鍵盤174耦合到多核CPU 210。此外,具有麥克風176的單聲道耳機可以耦合到多核CPU 210。此外,振動設備178可以耦合到多核CPU 210。圖3還示出了電源180可以經(jīng)由USB控制器140耦合到片上系統(tǒng)120。在特定方面,電源180是為PCD 100的需要功率的各個組件供電的直流(DC)電源。此外,在特定方面,電源180是可再充電DC電池或從連接到AC電源的交流(AC)到DC轉換器導出的DC電源。

圖3還指示PCD 100還可以包括網(wǎng)卡188,其可以用于接入數(shù)據(jù)網(wǎng)絡,例如局域網(wǎng)、個人局域網(wǎng)或任何其它網(wǎng)絡。網(wǎng)卡188可以是藍牙網(wǎng)卡、WiFi網(wǎng)卡、個人局域網(wǎng)(PAN)卡或本領域公知的任何其它網(wǎng)卡。此外,網(wǎng)卡188可以合并到集成電路中。也就是,網(wǎng)卡188可以是在一個芯片中的完整解決方案,并且可以不是一個分別的網(wǎng)卡188。

如圖3中所描繪的,顯示器/觸摸屏132、視頻端口138、USB端口142、攝像機148、第一立體聲揚聲器154、第二立體聲揚聲器156、麥克風116、FM天線164、立體聲端口166、RF開關170、RF天線172、鍵盤174、單聲道耳機176、振動器178和電源180是在片上系統(tǒng)120外部的。

RF收發(fā)機168可以包括一個或多個調(diào)制解調(diào)器,支持以下各項中的一項或多項:全球移動通信系統(tǒng)(“GSM”)、碼分多址(“CDMA”)、寬帶碼分多址(“W-CDMA”)、時分同步碼分多址(“TDSCDMA”)、長期演進(“LTE”)和LTE的變形(諸如但并不僅限于FDB/LTE和PDD/LTE無線協(xié)議)。

在示出的實施例中,描繪了多核CPU 210的單個實例。但是,應該理解的是可以包括任何數(shù)量的類似配置的多核CPU以支持各個外圍設備和與PCD 100相關聯(lián)的功能。替代地,單處理器或每個具有單個算法邏輯單元或內(nèi)核的多處理器可以被部署在PCD 100中或其它計算設備中以便根據(jù)需要支持各個外圍設備和與PCD 100相關聯(lián)的功能。

圖4是示出了實現(xiàn)改進的ROM補丁過程的基于SoC的系統(tǒng)的示例性實施例的原理示意圖。SoC 120包括圖3的PCD 100中引入的ROM 190、PROM 212、多核處理器210、控制器214、電編程熔絲元件192和系統(tǒng)存儲器230。在圖4中示出的安排中,處理器210、控制器214、系統(tǒng)存儲器230、ROM 190和PROM 212中的每一個耦合到總線402,該總線實現(xiàn)對來自和去往多核處理器210和存儲元件(即,ROM 190、PROM 212和系統(tǒng)存儲器230)中的每一個存儲元件的數(shù)據(jù)和指令的轉送。電編程熔絲元件192包括M個分別的熔斷器,其中M是整數(shù),經(jīng)由連接404耦合到控制器。所述M個分別的熔斷器是以有限量的方式提供的并且通常必須與PCD 100上的其它機制共享。電編程熔絲元件192中的M個分別的熔斷器提供經(jīng)由連接404和總線402耦合到控制器214和多核處理器210的一次性可編程熔斷器集合。當多核處理器210在執(zhí)行經(jīng)修改的啟動代碼500中的指令時,多核處理器210通過訪問該一次性可編程熔斷器集合來獲取地址,以便認證并定義將補丁實例(諸如補丁實例610、補丁實例611或另一個補丁實例650中的一個)存儲在其中的可尋址位置。

在本實施例中,在ROM 190中提供經(jīng)修改的啟動代碼500。如簡要解釋說明的,經(jīng)修改的啟動代碼500包括當由多核處理器210執(zhí)行時初始化該PCD 100的指令和一個或多個補丁指示符的序列。該指令可以包括操作系統(tǒng)的關鍵元素向多核處理器210的各個寄存器(未示出)的轉移。替代地,原始啟動代碼在SoC 120的制造期間被存儲器在ROM 190上。原始啟動代碼可以包括或不包括一個或多個補丁指示符。

補丁實例,即共同形成打補丁命令的指令和數(shù)據(jù),優(yōu)選地存儲在PROM 212中,其中該補丁實例可以包括程序錯誤修復、新特征、新數(shù)據(jù)、硬件輸入/輸出修復或對ROM 190上存儲的原始啟動代碼或經(jīng)修改的啟動代碼500的其它替換。例如,當用指令和數(shù)據(jù)填充時,補丁實例610、611,…,650包括補丁數(shù)據(jù)。補丁實例610、611到補丁實例650可以用若干種格式和方式存儲,諸如存儲成對的地址和指令,意味著所請求的打補丁命令被寫為具有附加地址的新的命令。當存儲在PROM 212和/或系統(tǒng)存儲器230中時,補丁實例610、611,…,650被放置或位于可尋址位置處,使得控制器214和處理器210能夠根據(jù)需要重復地訪問其中的替換內(nèi)容。以此方式,根據(jù)補丁過程邏輯800,補丁實例610、611到650能夠替換原始啟動代碼或經(jīng)修改的啟動代碼500中的原始命令或指令。每個補丁實例610、611到650可以包括任何數(shù)量的指令或命令,并且僅受限于PROM 212的可尋址存儲容量和系統(tǒng)存儲器230的可尋址存儲容量。如所描述的,處理器210是用于執(zhí)行來自系統(tǒng)存儲器230的指令序列的物理元件或機制。

在替代性實施例中,PROM 212被安排在SoC 120外部。這使得PROM 212能夠在不同于生產(chǎn)該SoC 120的工廠的地方被編程,從而允許SoC設計者制造該SoC 120并且然后,在該SoC 120已經(jīng)被制造好之后對該PROM 212編程。例如,PROM 212可以在請求新的特征之后或者在ROM 190中存儲的原始啟動代碼中已經(jīng)發(fā)現(xiàn)程序錯誤之后被編程。該PROM 212可以是一次性可編程(OTP)設備或集成電路元件、可擦除可編程只讀存儲器(EPROM)、電可擦除可編程只讀存儲器(EEPROM)、電可改只讀存儲器(ERAOM)或任何其它公知的可編程存儲器,其可以被一次性地或者若干次地編程。在一些實施例中,GPIO總線211可以用作用于在PROM 212中存儲的補丁實例中的補丁實例610、補丁實例611或補丁實例650中的一個或多個補丁實例中更改數(shù)據(jù)或提供數(shù)據(jù)和地址的源的機制。如所描述的,PROM 212是用于提供在其中具有被存儲的至少一個補丁實例的可尋址存儲器位置集合的物理機制或元件。

系統(tǒng)存儲器230可以是用于在處理期間加載或卸載數(shù)據(jù)的任何易失性存儲器,諸如靜態(tài)隨機訪問存儲器(SRAM)。當SoC 120被加電時,控制器214將原始(即,未修改的)啟動代碼或經(jīng)修改的啟動代碼500經(jīng)由總線402從ROM 190轉移到系統(tǒng)存儲器230,其中啟動代碼等候由處理器210執(zhí)行。在啟動代碼被復制到系統(tǒng)存儲器230之后,補丁過程邏輯800被從ROM 190轉移到系統(tǒng)存儲器230的相應地址中。隨著由處理器210處理或執(zhí)行指令,補丁指示符指導該處理器分支到補丁過程邏輯800。如果還沒有識別出補丁,則由該補丁指示符識別出的補丁實例將會是空的并且沒有補丁可用。在這種情況下,補丁過程邏輯800指導處理器210返回經(jīng)修改的啟動代碼500中的下一個后續(xù)指令。替代地,當識別出補丁并且由該補丁指示符所識別出的補丁實例被一個或多個指令填充,執(zhí)行所述指令直到該補丁實例被用盡為止。此后,補丁過程邏輯800指導該處理器210執(zhí)行經(jīng)修改的啟動代碼500中的下一個后續(xù)指令。要注意的是,補丁實例可以分別地或共同地被轉移到系統(tǒng)存儲器230。替代地,可以由處理器214從PROM 212訪問一個或多個補丁實例610、611,…,650,并且將其讀取并拷貝到系統(tǒng)存儲器120中的、替代從ROM 190加載的來自經(jīng)修改的啟動代碼500的相應命令的相應地址。因此,當處理器210執(zhí)行來自系統(tǒng)存儲器230的經(jīng)修改的啟動代碼500時,其執(zhí)行的是打過補丁的或者糾正過的代碼。在其它實施例中,ROM 190、PROM 212、系統(tǒng)存儲器230、控制器214和SoC 120的其它部分可能不共享相同的總線,并且可能具有不同的互連總線的組合。

如所描述的,系統(tǒng)存儲器230是用于臨時存儲指令序列或補丁處理邏輯的物理元件或機制。該系統(tǒng)存儲器230臨時存儲數(shù)據(jù)和指令,因為所述數(shù)據(jù)和指令在SoC 120斷電時會丟失。

如所描述的,控制器214是用于將指令序列和補丁處理邏輯從ROM 190加載到系統(tǒng)存儲器230的物理元件或機制。

在一些實施例中,ROM 190包括實現(xiàn)可選的安全啟動過程的認證邏輯405。該安全啟動過程使用一個或多個機制來認證處理器指令的源,該處理器指令是從對于將該指令傳達或傳輸?shù)絊oC 120而言可用的源中的一個源來加載的。如所描述的,ROM 190是用于存儲諸如經(jīng)修改的啟動代碼500、補丁處理邏輯或補丁過程邏輯800以及在一些實施例中認證邏輯405之類的指令序列的物理元件或機制。

圖5是示出了啟動ROM代碼序列20和經(jīng)修改的啟動代碼500的示例性實施例的原理示意圖,經(jīng)修改的啟動代碼具有插入在語句或指令之間的策略位置處的兩個補丁實例。代碼20以偽代碼的形式描繪為一系列指令或語句28或指令或語句28的集合。設計工程師根據(jù)這些代碼序列中的經(jīng)驗位置知道哪里可能需要打補丁或糾正。在第一或未打補丁的啟動代碼20中用加粗文字指示出了示例性位置。相應地,若干個期望的補丁指示符被插入到緊挨著識別出的未修改的啟動ROM代碼20中的語句或指令之前以生成經(jīng)修改的啟動ROM代碼500。例如,具有0的標識符或索引的補丁指示符501被插入到語句B和語句C之間。舉另一個例子,具有1的標識符或索引的補丁指示符502被插入到語句D和語句E之間。經(jīng)修改的啟動代碼500包括具有至少一個補丁指示符501、502的指令或語句510的集合或序列。以粗體字示出的啟動ROM代碼序列中的策略的或期望的位置定義了在該指令序列被具體體現(xiàn)在固件中之后該指令序列中很可能需要改變或糾正的地方。也就是,在SoC 120設計被完成之后發(fā)現(xiàn)的硬件改變、硅片特性或其它問題可能需要啟動ROM代碼序列中的改變。

圖6是示出了定義補丁之前圖5的示例性啟動ROM代碼或序列500的實施例的原理示意圖。也就是,在定義或要求補丁或修改之前,可以與插入在語句B和語句C之間的補丁指示符501相關聯(lián)的補丁實例610,以及可以與插入在語句D和語句E之間的補丁指示符502相關聯(lián)的補丁實例611是空的。所述補丁實例被存儲在PROM 212中的相應可尋址存儲器位置處。

圖7是示出了圖6的示例性啟動ROM代碼序列500中的兩個定義好的補丁的示例性實施例的原理示意圖。第一補丁710包括兩個指令。第一指令712包括類型標識符或類型碼、地址和數(shù)據(jù)或值。第二指令714包括類型標識符或類型碼、地址和數(shù)據(jù)或值。包括所有零值的返回指示符716跟在第一補丁710之后。第二補丁711包括單個指令713。在示出的實施例中,每個指令由指令類型、地址和數(shù)據(jù)或值來定義。在該指令之后,空字或具有所有都是零值的字向ROM補丁過程指示處理器應該返回到啟動ROM代碼序列500中的下一個后續(xù)指令或語句。

圖8是示出了如通過圖4中介紹的補丁過程邏輯800實現(xiàn)的改進的ROM補丁過程的實施例的流程圖。如上所述,改進的ROM補丁過程動態(tài)地指向對于處理器(諸如多核處理器210)而言可通過總線訪問的可尋址存儲器位置。該改進的ROM補丁過程處理基于需求必須硅后特征化的公共類別的改變。該公共指令包括寫指令、具有掩碼的寫指令、等待比特空閑指令和等待比特被設置指令。當被執(zhí)行時,補丁過程邏輯800指導處理器從不同于指令序列的源獲取地址,確定補丁數(shù)據(jù)是否在該地址處可用。當補丁數(shù)據(jù)在該地址處不可用時,處理器210被指導返回到該指令序列中的下一個后續(xù)指令。否則,處理器210被指導執(zhí)行該補丁數(shù)據(jù)中的指令,并且一旦該補丁被用盡就返回到該指令序列中的下一個后續(xù)指令。應該理解的是,所提出的指令結構可以被擴展和/或修改,因為可能期望其能夠支持額外的指令。

補丁過程邏輯800包含方法801,該方法起始于方框802,在該方框中獲取或識別地址。如上所述,一次性可編程熔斷器集合可以用于識別啟動ROM代碼序列中應該被覆寫或打補丁的地址。在決定方框804中,確定補丁是否在識別出的地址處可用。當補丁實例被指令類型、補丁地址以及用于一些指令的數(shù)據(jù)字段填充時將該補丁視為可用的。當識別出的地址是空的或者包括所有零值時將補丁視為不可用的。該地址位置包括空內(nèi)容。在這種情況下,如由標記為“No”的流程控制箭頭所指示的,退出決定方框804,改進的ROM補丁過程被安排返回到下一個后續(xù)指令,如方框806中所示。否則,當補丁可用時(即,在由地址所識別出的位置處存在非零比特時),確定或識別補丁類型,如方框808中所指示的。如該流程圖中進一步指示的,當在方框808中識別出的補丁類型指示期望簡單的寫時,該方法801在返回以重復與方框804到808相關聯(lián)的功能之前,分支到相應的邏輯并同樣地執(zhí)行,如方框810中所指示的。當方框808中識別出的補丁類型指示期望具有掩碼的寫指令時,方法801在返回以重復與方框804到808相關聯(lián)的功能之前,分支到相應的邏輯并執(zhí)行具有掩碼的寫指令,如方框812中所指示的。當方框808中識別出的補丁類型指示期望等待比特空閑指令時,方法801在返回以重復與方框804到808相關聯(lián)的功能之前,分支到等待比特空閑邏輯并執(zhí)行等待比特空閑指令,如方框814中所指示的。類似地,當方框808中識別出的補丁類型指示期望等待比特被設置指令時,方法801在返回以重復與方框804到808相關聯(lián)的功能之前,分支到相應邏輯并執(zhí)行等待比特被設置指令,如方框816中所指示的。盡管示出并描述了四個公共指令,但是本領域的技術人員可以修改或者以其它方式適配本文中描述的指令結構以便實現(xiàn)可能期望的額外的指令。

圖9A和9B分別示出了寫指令900和具有掩碼的寫指令950的示例性實施例。如圖9A中所示,寫指令900,可以用“OUT(address,value);”的偽代碼語句的方式來表示,是由第一字910、第二字920和第三字930定義的。這三個字的每一個字包括N個比特,其中N是整數(shù)。在示出的實施例中,該字的長度是32比特。第一字910的前29個比特被預留或定義為預留區(qū)域912。第一字910的接下來三比特包括在類型區(qū)域914中定義指令類型的代碼。在示例性實施例中,寫指令由“000”識別。如圖9A中進一步指出的,在第二字920中定義地址,在第三字930中定義數(shù)據(jù)或值信息。

示例性實施例中的寫指令可以使用其它各種不同長度或位置的代碼來識別或安排。此外,第一、第二和第三字的序列可以根據(jù)需要從所示出的實施例進行修改。此外,用于表示示例性寫指令的字的長度可以變化以應用于以不同于32比特的方式來部署地址和數(shù)據(jù)的系統(tǒng)中。

如圖9B中所示,具有掩碼的寫指令950由包括預留區(qū)域962、掩碼區(qū)域964和類型區(qū)域966的第一字960表示。該掩碼區(qū)域964包括掩碼信息。類型區(qū)域966包括識別指令類型的代碼。具有掩碼的寫指令950的這三個字包括N個比特,其中N是整數(shù)。具有掩碼的寫指令可以用偽代碼的方式由“New_value=IN(address);New_value&=mask;New_value|=value;OUT(address,New_value);”來表示。第一字962的前24個比特處于預留區(qū)域962中。在示例性實施例中,具有掩碼的寫指令950由第一字960的接下來的或最后8個比特識別,其中比特25到29定義掩碼而比特30到32用代碼“001”定義指令類型。如圖9B中進一步指示的,在第二字970中定義地址,在第三字980中定義數(shù)據(jù)或值信息。

示例性實施例中的具有掩碼的寫指令可以使用其它各種不同長度或位置的代碼來識別或安排。例如,掩碼比特或掩碼信息的集合可以使用多于或少于5個比特并且可以位于沒有用于對指令類型編碼的比特的范圍上的任何位置。此外,第一字960、第二字970和第三字980的序列可以根據(jù)需要從所示出的實施例進行修改。此外,用于表示示例性具有掩碼的寫指令950的字的長度可以變化以應用于以不同于32比特的方式來部署地址和數(shù)據(jù)的系統(tǒng)中。

圖10A和10B分別示出了等待比特空閑指令1000和等待比特被設置指令1050的示例性實施例。如圖10A中所示,等待比特空閑指令1000由包括預留區(qū)域1012、掩碼區(qū)域1014和類型區(qū)域1016的第一字1010表示。該掩碼區(qū)域1014包括掩碼信息。類型區(qū)域1016包括識別指令類型的代碼。該等待比特空閑指令1000的字包括N個比特,其中N是整數(shù)。等待比特空閑指令1000可以用偽代碼的方式由“While(IN(address,mask)?。?).”來表示。該第一字1010的前24個比特是預留的。在示例性實施例中,掩碼區(qū)域1014是在第一字1010的比特25到29中定義的,而類型區(qū)域1016位于第一字1010的比特30到32中。在示出的實施例中,等待比特空閑指令1000由代碼“010”定義。如圖10A中進一步指示的,在第二字1020中定義地址。

示例性實施例中的等待比特空閑指令1000可以使用其它各種不同長度或位置的代碼來識別或安排。例如,掩碼比特或掩碼信息的集合可以使用多于或少于5個比特并且可以位于沒有用于對指令類型編碼的比特的范圍上的任何位置。此外,第一字1010和第二字1020的序列可以根據(jù)需要從所示出的實施例進行修改。此外,用于表示示例性等待比特空閑指令1000的字的長度可以變化以應用于以不同于32比特的方式部署地址和數(shù)據(jù)的系統(tǒng)中。

圖10B中示出了等待比特被設置指令1050。等待比特被設置指令1050包括第一字1060以及包括地址信息的第二字1070,第一字1060包括預留區(qū)域1062、掩碼區(qū)域1064和類型區(qū)域1066。第一字1060和第二字1070的每一個包括N個比特,其中N是整數(shù)。等待比特被設置指令1050用偽代碼的方式由表達式“While(IN(address,mask)?。?).”表示。該第一字1060的前24個比特處于預留區(qū)域1062中。掩碼區(qū)域1064位于比特25到29中,而類型區(qū)域1066在比特30到32中。在示出的實施例中,等待比特被設置指令1050由代碼“011”定義。

示例性實施例中的等待比特被設置指令1050可以使用其它各種不同長度或位置的代碼來識別或安排。例如,掩碼比特或掩碼信息的集合可以使用多于或少于5個比特并且可以位于沒有用于對指令類型編碼的比特的范圍上的任何位置。此外,第一字1060和第二字1070的序列可以根據(jù)需要從所示出的實施例進行修改。此外,用于表示示例性等待比特被設置指令1050的字的長度可以變化以便應用于以不同于32比特的方式部署地址和數(shù)據(jù)的系統(tǒng)中。

還應該理解的是,僅僅是舉例的方式給出了圖9A、圖9B、圖10A和圖10B中示出的指令。因此,所提出的系統(tǒng)和方法并不僅限于這些指令。相應地,這些示例性指令或任何數(shù)量的額外的指令,不管怎樣編碼和安排,可以根據(jù)需要來生成和部署。

圖11是示出了打補丁后的啟動代碼序列1100的示例性實施例的原理示意圖。為了解釋說明通過所提出的系統(tǒng)和方法實現(xiàn)的一次性可編程熔斷器的節(jié)省方面的顯著性,與針對相同指令的常規(guī)補丁并排示出了四個示例性補丁。例如,在打補丁后的啟動代碼1100中由補丁指示符(0)識別的補丁1110包括由代碼000指示的寫指令。如上所定義的,該寫指令以三個N比特字的方式來定義。包括所有零的返回指示符不是該補丁的一部分,并且在補丁被定義并存儲在可尋址存儲器中時不會改變。因此,相比于消耗總計九個熔斷器的常規(guī)補丁實現(xiàn),改進的指令結構和過程使得能夠節(jié)省六個熔斷器位置。

再舉另一示例,在打補丁之后的啟動代碼1100中由補丁指示符(1)識別的補丁1120包括具有掩碼的寫指令,如由掩碼比特XXXXX與代碼001所指示的。如上所定義的,以三個N比特的字的方式來定義具有掩碼的寫指令。相應地,相比于消耗總共十一個熔斷器的常規(guī)補丁實現(xiàn),改進的指令結構和過程使得能夠節(jié)省八個熔斷器位置。

在打補丁之后的啟動代碼1100中由補丁指示符(2)識別的補丁1130包括等待比特空閑指令,如由掩碼比特XXXXX與代碼010所指示的。如上所定義的,以兩個字的方式定義等待比特空閑指令。如所示出的,當相比于消耗總共十個熔斷器位置的常規(guī)補丁實現(xiàn)時,改進的指令結構和過程使得能夠節(jié)省八個熔斷器。

在打補丁之后的啟動代碼1100中由補丁指示符(3)識別的補丁1140包括等待比特被設置指令,如由掩碼比特XXXXX與第一字的比特30-32中的代碼011所指示的。如上所定義的,等待比特被設置指令在該補丁1140的第二字中提供地址。因此,相比于消耗總共十個熔斷器的常規(guī)補丁實現(xiàn),改進的指令結構和過程使得能夠節(jié)省八個熔斷器位置。

僅僅是以舉例的方式給出了原始啟動代碼20’、打補丁之后的啟動代碼1100、常規(guī)補丁(如以虛線的方式所指示的)以及改進的補丁或補丁實例(0)—(3)中的每一個。所提出的系統(tǒng)和方法并不僅限于這些指令序列或補丁指令結構。本領域的技術人員將會理解如何以與所聲明的系統(tǒng)和方法相一致的多種變形中的任意一種變形的方式來制作和使用包括上述補丁過程邏輯的改進的ROM。

圖12是用于修改ROM中的指令序列(即,打補丁)的方法1200的示例性實施例的流程圖。該方法起始于方框1202,其中將補丁指示符插入在ROM中的指令序列中的期望位置處。方框1202以虛線的方式描繪以便示出在ROM中存儲的指令序列中插入補丁指示符可以在可選的預備步驟中進行。在方框1204中,提供可尋址存儲器位置的集合。如上所指示的,優(yōu)選地通過可編程ROM或PROM 212來實現(xiàn)可尋址存儲器位置的集合。結合在只讀存儲器中的指令序列中的期望位置處插入至少一個補丁指示符的可選擇預備步驟,至少一個補丁實例被存儲在可尋址存儲器位置的集合中。優(yōu)選地,索引或其它標識符將該補丁指示符與PROM 212中可尋址存儲器位置處的相應的補丁實例關聯(lián)起來。在要求對ROM 190中的指令序列的改變之前,PROM 212中存儲的補丁實例可以包括空內(nèi)容。在方框1206中,提供一次性可編程熔斷器集合。一次性可編程熔斷器可以通過高壓信號的可控應用、暴露給紫外線輻射或其它機制來“打開”。因此,一次性可編程熔斷器可以被可控制地修改以反映可編程存儲器位置中的一個或多個地址。在方框1208中,提供ROM中的指令序列。在方框1210中,啟用ROM中的補丁過程。該補丁過程動態(tài)地指向或跳轉到可尋址存儲器位置集合并且在遇到返回指示符時,返回到ROM中的指令序列。如方框1212中所示,當期望對ROM中期望位置中的指令序列打補丁或修改時,由一次性可編程熔斷器傳達的信息指導處理器或控制器加載并執(zhí)行被存儲在可尋址存儲器位置集合中的指令,在只讀存儲器中的指令序列中的期望位置處插入至少一個補丁指示符,其中,在識別出對只讀存儲器中的指令序列的糾正之前,如由至少一個補丁指示符所定義的可尋址存儲器位置集合中的至少一個補丁實例包含空內(nèi)容。

盡管ROM 190及其補丁過程邏輯800優(yōu)選地是用電路來實現(xiàn),但是本文中表示的邏輯可以根據(jù)需要存儲在非臨時性計算機可讀介質上并且可用于傳輸或制作副本。圖13包括計算機可讀介質1300的原理表示,該介質包括其中存儲的補丁過程邏輯800。如圖13中所指示的,補丁過程邏輯800包括指示符邏輯1310、實例邏輯1320、類型邏輯1330和返回邏輯1340。指示符邏輯1310指導處理器識別指令或語句序列中何時出現(xiàn)補丁指示符。實例邏輯1320指導處理器識別可尋址存儲器位置何時包括非零比特(即,非空內(nèi)容)。類型邏輯1330指導處理器通過解碼該補丁實例中嵌入的類型區(qū)域中的信息來識別指令。返回邏輯1340指導處理器在遇到一系列零比特時返回到該指令或語句序列中的下一個后續(xù)指令。

除了上述邏輯之外,其它數(shù)據(jù)和/或處理器指令可以被存儲在計算機可讀介質上以用于經(jīng)由操作的下載模式傳輸?shù)絊oC 120上用于存儲在PROM 212中。當存儲計算機可讀介質時,這些其它指令和相應數(shù)據(jù)也可以根據(jù)需要用于傳輸或制作副本。

如上所述,一個或多個非臨時性計算機可讀介質或媒介可以在其上存儲處理器指令,當該指令被執(zhí)行時指導處理器210配置計算設備響應于用于從除了該計算設備之外的源接收處理器可執(zhí)行邏輯和/或數(shù)據(jù)的操作的下載或編程模式之一。

如進一步描述的,響應于從GPIO總線211或可編程電熔斷器元件192接收到的一個或多個輸入信號的處理器指令可以用于識別下載模式、可選的認證模式和默認啟動模式。

本說明書中描述的過程或過程流程中的某些步驟自然地在本發(fā)明的其它步驟之前以便如所描述地工作。然而,所提出的系統(tǒng)和方法并不僅限于所描述的步驟順序,只要某順序或序列不改變上述系統(tǒng)和方法的功能即可。也就是,應該認識到的是,一些步驟可以在其它步驟之前、之后或并行(基本同時)執(zhí)行。在一些實例中,在不脫離上述系統(tǒng)和方法的前提下可以省略或不執(zhí)行某些步驟。此外,諸如“此后”、“然后”、“下一個”、“隨后”等等之類的詞語并不意在限制步驟的順序。這些詞語僅僅用于引導讀者通讀示例性方法的描述。

另外,寫啟動程序和/或電路結構的一個普通技術人員能夠基于本說明書中的流程圖和相關聯(lián)的示例寫計算機代碼或識別恰當?shù)挠布?或電路以便無困難地實現(xiàn)所公開的發(fā)明。因此,對于充分理解如何制造和使用所述系統(tǒng)和方法而言,特定程序代碼指令集合或詳細硬件設備的公開不被視為是必須的。在上面的描述中并且結合附圖更詳細地解釋了所聲明的處理器實現(xiàn)過程的創(chuàng)造性功能,所述附圖可以示出各種過理流程。

在上面指出的一個或多個示例性方面中,所描述的功能可以實現(xiàn)在硬件、軟件、固件或它們的任意結合中。如果實現(xiàn)在軟件中,所述功能可以作為計算機可讀介質(諸如非臨時性計算機可讀介質)上一個或多個指令或代碼存儲。計算機可讀介質包括數(shù)據(jù)存儲介質。

存儲介質可以是可由計算機或處理器訪問的任何可用介質。舉個例子,但是并不僅限于,該計算機可讀介質可以包括RAM、ROM、EEPROM、閃存、CD-ROM或其它光盤存儲器、磁盤存儲器或其它磁存儲設備,或可以用于以指令或數(shù)據(jù)結構的形式攜帶或存儲期望程序代碼,并可由計算機訪問的任何其它介質。本文中所用的磁盤和光盤,包括壓縮盤(“CD”)、激光盤、光盤、數(shù)字通用盤(“DVD”)、軟盤和藍光盤,其中,磁盤通常磁性地復制數(shù)據(jù),而光盤則用激光光學地復制數(shù)據(jù)。上述的組合也可以包含在非臨時性計算機可讀介質的范圍內(nèi)。

盡管已經(jīng)詳細地示出并描述了所選擇的方面,但是應該理解的是,可以在不背離由下面的權利要求所定義的所提出的系統(tǒng)和方法的前提下在此做出各種替代和改變。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
侯马市| 改则县| 兴仁县| 香河县| 华亭县| 特克斯县| 平利县| 凯里市| 都昌县| 论坛| 阳曲县| 封丘县| 普安县| 个旧市| 江阴市| 尉氏县| 襄樊市| 高清| 于都县| 宽城| 梅河口市| 肥东县| 乌拉特前旗| 铜陵市| 哈巴河县| 曲周县| 尚义县| 竹溪县| 大名县| 宜兰市| 吉林省| 吉木乃县| 手游| 杭州市| 铁岭市| 江津市| 康马县| 民勤县| 刚察县| 蒙自县| 南靖县|