亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

使用GPU/CPU體系結(jié)構(gòu)的RSA的高效實(shí)現(xiàn)的制作方法與工藝

文檔序號(hào):12557145閱讀:388來源:國知局
使用GPU/CPU體系結(jié)構(gòu)的RSA的高效實(shí)現(xiàn)的制作方法與工藝
使用GPU/CPU體系結(jié)構(gòu)的RSA的高效實(shí)現(xiàn)背景圖形處理單元上的通用計(jì)算(GPGPU)是使用通常只處理計(jì)算機(jī)圖形的計(jì)算的圖形處理單元(GPU)來為傳統(tǒng)上由CPU處理的應(yīng)用程序執(zhí)行計(jì)算的技術(shù)。GPU越來越多地用于通用計(jì)算。GPU更加適合于帶有豐富的并行性的面向吞吐量的工作負(fù)荷,諸如任務(wù)并行(粗粒的(coarsegrained))或數(shù)據(jù)并行(細(xì)粒的(finegrained))計(jì)算。相比之下,CPU更加適合于等待時(shí)間敏感的并具有隱式指令級(jí)并行性的應(yīng)用程序??梢缘靡嬗贕PGPU的一個(gè)特定示例是RSA處理。RSA是用于公鑰加密的算法??s寫詞RSA代表Rivest、Shamir,以及Adleman,他們是首先公開地描述該算法的個(gè)人。RSA加密與解密是從計(jì)算上來說昂貴的算法。更多研究工作聚焦于加速RSA解密,因?yàn)榻饷軓挠?jì)算上來說比加密昂貴得多。最近的CPU上的RSA解密的最佳CPU實(shí)現(xiàn)仍耗費(fèi)大約0.7百萬個(gè)周期。將這樣的昂貴的操作分?jǐn)偟紾PU可以提高效率并使CPU解脫,來執(zhí)行其他任務(wù)。然而,簡單地將CPURSA實(shí)現(xiàn)移植到GPU將導(dǎo)致較差的性能,而不會(huì)使用GPU的并行處理能力。相應(yīng)地,需要改善的技術(shù)來解決這些及其他問題。附圖簡述圖1示出了適用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的異構(gòu)硬件體系結(jié)構(gòu)的框圖。圖2示出了適用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的示例工具集和執(zhí)行模型的框圖。圖3示出了適用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的示例編程模型的框圖。圖4示出了邏輯流程的一個(gè)實(shí)施例。圖5示出了邏輯流程的一個(gè)實(shí)施例。圖6示出了可以適用于實(shí)現(xiàn)本發(fā)明的各實(shí)施例的系統(tǒng)的實(shí)施例。圖7示出了其中可以實(shí)現(xiàn)圖6的系統(tǒng)的小形狀因子設(shè)備的各實(shí)施例。詳細(xì)描述異構(gòu)型處理器體系結(jié)構(gòu)將GPU以及CPU集成到同一管芯上。盡管CPU更加適合于等待時(shí)間敏感的并具有隱式指令級(jí)并行性的應(yīng)用程序,但是,GPU針對(duì)帶有豐富的并行性的面向吞吐量的工作負(fù)荷。當(dāng)面向吞吐量的和面向等待時(shí)間的處理核存在于同一管芯上時(shí),可能希望利用一前一后(intandem)操作的這樣的核來解決異構(gòu)工作負(fù)荷。從性能角度來看,位于處理器管芯上的GPU可以從尖端CPU制造過程接收到增強(qiáng)以及訪問大的芯片上緩存。此外,在CPU和GPU存儲(chǔ)器之間傳輸數(shù)據(jù)的開銷可以通過共享同一個(gè)主存儲(chǔ)器來消除。然而,為了充分利用這樣的有效率的集成的體系結(jié)構(gòu),需要能夠在現(xiàn)有的開發(fā)環(huán)境內(nèi)無縫地利用GPU加速的編程平臺(tái)。C用于媒體(C-for-media:Cm)平臺(tái)就是這樣的平臺(tái)。最初開發(fā)Cm平臺(tái)是為了在集成的GPU上啟用供應(yīng)商特定的專有的視頻處理算法。傳統(tǒng)上,視頻處理階段的加速是通過嵌入在圖形驅(qū)動(dòng)器中的內(nèi)核來實(shí)現(xiàn)的。當(dāng)應(yīng)用程序作出應(yīng)用程序編程接口(API)調(diào)用時(shí),驅(qū)動(dòng)器將訪問并執(zhí)行這些內(nèi)核以提供加速服務(wù)。Cm平臺(tái)可以描述為用于利用異構(gòu)型處理器體系結(jié)構(gòu)中的CPU和GPU的協(xié)作執(zhí)行環(huán)境。Cm平臺(tái)的組件可以包括Cm語言、其實(shí)現(xiàn)(例如,編譯器)和Cm運(yùn)行時(shí)。Cm語言可以是對(duì)C/C++的簡單擴(kuò)展,該擴(kuò)展在較高的抽象級(jí)別提供表達(dá)數(shù)據(jù)并行性的直觀接口。Cm語言被設(shè)計(jì)成有效率地利用GPU的單指令多數(shù)據(jù)(SIMD)能力。Cm運(yùn)行時(shí)管理執(zhí)行環(huán)境,而同時(shí)支持允許開發(fā)人員從它們的現(xiàn)有的C/C++應(yīng)用程序調(diào)用GPU的API。Cm編譯器可以從以Cm編寫的針對(duì)GPU的源代碼生成優(yōu)化的GPU機(jī)器代碼指令,其中從下層GPU硬件中提取盡可能多的并行性。Cm編譯器也可以包括允許在GPU上運(yùn)行Cm程序的實(shí)時(shí)轉(zhuǎn)換器(Jitter)。Cm平臺(tái)的目標(biāo)是允許程序員保留他們的現(xiàn)有的為CPU并行化和/或優(yōu)化的應(yīng)用程序,但是,將應(yīng)用程序的數(shù)據(jù)-并行或“整體并行(massive-parallel)”的段委托給管芯上的GPU?,F(xiàn)代CPU對(duì)于通過各種體系結(jié)構(gòu)技術(shù)來最小化連續(xù)的程序的執(zhí)行時(shí)間以隱藏存儲(chǔ)器等待時(shí)間并提取指令級(jí)并行性是理想的。此外,多個(gè)CPU以及每個(gè)CPU的多線程功能更加適合于粗粒的任務(wù)級(jí)并行性。另一方面,GPU是主要設(shè)計(jì)用于麻煩地并行的圖形應(yīng)用程序的面向吞吐量的處理器。因此,在它們的通用并且可編程的形式下,GPU天然地適合于帶有豐富的并行性的數(shù)據(jù)并行程序段。Cm平臺(tái)提供統(tǒng)一的編程環(huán)境以利用包括CPU和GPU的異構(gòu)型處理器的全部潛力。如上文所提及的,RSA加密以及特別是解密是從計(jì)算上來說昂貴的公鑰密碼算法。將這樣的昂貴的操作分?jǐn)偟紾PU可以使CPU解脫,來執(zhí)行其他任務(wù)。Cm平臺(tái)可以通過讓CPU建立GPU環(huán)境、執(zhí)行主要RSA函數(shù),并將數(shù)據(jù)傳遞到執(zhí)行實(shí)際計(jì)算的GPU,來利用異構(gòu)型處理器體系結(jié)構(gòu)中的CPU和GPU。RSA處理RSA涉及公鑰和私鑰。公鑰已為每個(gè)人所知,并用于加密消息。利用公鑰加密的消息只能使用私鑰來解密。典型的RSA實(shí)現(xiàn)涉及三個(gè)步驟:密鑰生成,加密與解密。密鑰生成用于RSA算法的公鑰和私鑰可以按如下方式來生成。通信各方可以選擇兩個(gè)隨機(jī)質(zhì)數(shù)p和q。出于安全目的,整數(shù)p和q應(yīng)該是隨機(jī)地選擇的,并應(yīng)該是類似的比特長度。然后,通信各方可以計(jì)算乘積為n=pq。然后,可以將n用作公鑰和私鑰的模。然后,可以計(jì)算其中,是歐拉函數(shù)(Euler'stotientfunction)。整數(shù)e可以被選擇為使得e和(n)是互質(zhì),然后,可以釋放e,作為公鑰指數(shù)??梢愿鶕?jù)公式((d*e)模來確定私鑰指數(shù)d。公鑰可以由模n和公共(或加密)指數(shù)e構(gòu)成。私鑰包括模n和必須保密的私有的(或解密)指數(shù)d。加密作為示例,第一方可以將其公鑰(n,e)傳輸?shù)降诙?,并將私鑰(d)保密。假設(shè),第二方希望向第一方發(fā)送消息M。第二方可以首先通過使用被稱為“填充方案”商定的可逆協(xié)議,將M轉(zhuǎn)換為整數(shù)m,以使得0<m<n。然后,第二方根據(jù)下列公式來計(jì)算密文c:c=memodn這可以使用求冪的方法通過平方來快速地完成。然后,第二方可以將c傳輸?shù)降谝环?。解密然后,第一方可以通過使用其私鑰指數(shù)d,通過計(jì)算下列公式,從c恢復(fù)m:m=cdmodn給定m,第一方可以通過顛倒填充方案,來恢復(fù)原始消息M。在實(shí)踐中,可以有使用預(yù)先計(jì)算出的值來計(jì)算cd的更有效率的方法。例如,使用中國剩余算法(ChineseRemainderAlgorithm)以及下面的作為私鑰的一部分存儲(chǔ)的預(yù)先計(jì)算出的值來優(yōu)化:p和q,dp=d(modp-1),dq=d(modq-1)和qInv=q-1modp,接收方可以按如下方式更有效率地計(jì)算冪m=cdmodpq:h=qInv*(m1-m2)modpm=m2+(h*q)這可以比計(jì)算m=cdmodpq更有效率,盡管將要計(jì)算兩個(gè)模取冪(modularexponentiation)。原因是,這兩個(gè)模取冪兩者都使用較小的指數(shù)和較小的?!,F(xiàn)有的RSA計(jì)算機(jī)實(shí)現(xiàn)一般被設(shè)計(jì)用于CPU執(zhí)行,不會(huì)利用GPU的單指令多數(shù)據(jù)(SIMD)指令集。然而,簡單地將上面的CPU實(shí)現(xiàn)的RSA算法移植到GPU將導(dǎo)致較差的性能,而不會(huì)使用GPU的并行處理能力。呈現(xiàn)了RSA計(jì)算機(jī)實(shí)現(xiàn),該實(shí)現(xiàn)被量身訂制以針對(duì)GPU的硬件支持的SIMD大小和對(duì)準(zhǔn)要求以及使用GPU上的SIMD指令來加速RSA處理的能力。最終結(jié)果可能是RSA處理的顯著的改進(jìn)。為使用GPU的并行處理能力,可以實(shí)現(xiàn)此處可以稱為“循環(huán)剝離”的編譯器優(yōu)化技術(shù)。循環(huán)剝離可以獲得更高效矢量代碼,用于在GPU上執(zhí)行?,F(xiàn)在將參考附圖,全部附圖中相同的參考編號(hào)用于表示相同的元件。在下面的描述中,為了進(jìn)行說明,闡述了很多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的全面理解。然而,顯而易見,可以沒有這些具體細(xì)節(jié)的情況下實(shí)施各新穎實(shí)施方式。在其他情況下,以框圖形式示出了各個(gè)公知的結(jié)構(gòu)和設(shè)備以便于描述本發(fā)明。本發(fā)明將涵蓋落入所要求保護(hù)的主題的精神和范圍內(nèi)的所有修改、等效方案和替換方案。圖1示出了適用于實(shí)現(xiàn)本發(fā)明的RSA處理實(shí)施例的異構(gòu)硬件體系結(jié)構(gòu)的簡化框圖。CPU110和GPU120彼此可以進(jìn)行通信,以便CPU110可以執(zhí)行主函數(shù),諸如,例如,RSA主函數(shù)115。CPURSA主函數(shù)115可以被編碼為使得它可以對(duì)可以在GPU120上執(zhí)行的進(jìn)程(例如,GPU函數(shù)125、130、135)作出函數(shù)調(diào)用。盡管CPU110更加適合于等待時(shí)間敏感的并具有隱式指令級(jí)并行性的應(yīng)用程序,但是,GPU120針對(duì)帶有豐富的并行性的面向吞吐量的工作負(fù)荷??梢员籆PU110上的RSA主函數(shù)115調(diào)用的GPU函數(shù)125、130、135可以包括執(zhí)行模取冪操作的滑動(dòng)窗口(slidingwindow)函數(shù)125,利用蒙哥馬利空間(Montgomeryspace)中的逐字的降低來執(zhí)行模乘法操作的mulredc函數(shù)130,以及,執(zhí)行大數(shù)乘法操作的addmul函數(shù)135。GPU函數(shù)125、130、135可以負(fù)責(zé)執(zhí)行與RSA算法相關(guān)聯(lián)的大型的并且從計(jì)算上來說昂貴的數(shù)學(xué)運(yùn)算。RSA主函數(shù)115可以將中國剩余定理(ChineseRemainderTheorem)的數(shù)據(jù)參數(shù)傳遞到GPU函數(shù)125、130、135。上文所描述的參數(shù)可以重新表述為:其中,M表示經(jīng)歷RSA處理的加密消息的普通文本。可以將M的RSA解密公式轉(zhuǎn)發(fā)到GPU120,來進(jìn)行計(jì)算。首先,可以加載由CPU110傳遞的RSA參數(shù)?;瑒?dòng)窗口函數(shù)125可以使用mulredc函數(shù)130來利用一半大小計(jì)算兩個(gè)模取冪,如下所示:modpmodq然后,可以使用mulredc函數(shù)130來計(jì)算公式的其余部分,以利用蒙哥馬利空間中的逐字的降低的模乘法操作來導(dǎo)出M,并將結(jié)果返回到CPU110。在計(jì)算M時(shí),mulredc函數(shù)130可以調(diào)用addmul函數(shù)135,來執(zhí)行完成對(duì)M的計(jì)算所需的大數(shù)乘法操作。在計(jì)算M時(shí),addmul函數(shù)可以是最頻繁調(diào)用的函數(shù),并且如果它可以被優(yōu)化,則可以提供較高的RSA處理效率。圖2示出了示例Cm平臺(tái)工具集和執(zhí)行模型的框圖,而圖3示出了根據(jù)本發(fā)明的各實(shí)施例的適用于實(shí)現(xiàn)RSA處理的Cm平臺(tái)編程模型的實(shí)施例的框圖。從程序員的角度來看,使用Cm編程模型300的應(yīng)用程序(例如,RSA)包括兩個(gè)模塊:要在CPU上執(zhí)行的主應(yīng)用程序225,以及針對(duì)GPU120的GPUCm內(nèi)核205。主應(yīng)用程序225可以是可以通過C++編譯器230編譯為用于在CPU110上執(zhí)行的二進(jìn)制應(yīng)用程序235的普通C/C++程序。然而,為使用GPU120來加速代碼的某些段,開發(fā)人員可能需要通過插入到主應(yīng)用程序225中的Cm運(yùn)行時(shí)API調(diào)用來設(shè)置并調(diào)用GPU120。針對(duì)GPU的代碼可能需要被組織到GPUCm內(nèi)核205,GPUCm內(nèi)核205可以以Cm語言編寫并可以由Cm編譯器210處理,以創(chuàng)建可以在GPU260上執(zhí)行的機(jī)器代碼。GPUCm內(nèi)核205可以實(shí)例化為用戶指定數(shù)量的線程325-n。然后,可以將每一個(gè)線程325-n調(diào)度到叫做執(zhí)行單元(EU)365-n的按序SIMD處理單元上運(yùn)行。與開放計(jì)算語言(OpenCL)或計(jì)算統(tǒng)一的設(shè)備體系結(jié)構(gòu)(CUDA)不同,Cm中的單個(gè)線程325-n對(duì)數(shù)據(jù)的塊332-n進(jìn)行操作。對(duì)數(shù)據(jù)的塊332-n的SIMD計(jì)算以Cm表達(dá),并通過Cm編譯器210被高效轉(zhuǎn)換為指令集體系結(jié)構(gòu)(ISA)文件220。作為示例,在圖3中示出了要在CPU110上執(zhí)行的主機(jī)main()函數(shù)310。主機(jī)main()(主())函數(shù)310可以包括初始化并設(shè)置GPU120和GPU內(nèi)核205(行3和5),調(diào)用GPU120以執(zhí)行GPU內(nèi)核205(行6),以及讀回輸出(行7)的代碼。為清楚起見,使用宏指令來隱藏實(shí)際運(yùn)行時(shí)API。函數(shù)主機(jī)main()310下面所示出的函數(shù)testl()(測(cè)試1())320可以利用Cm關(guān)鍵字″_GPU_MAIN_″(_GPU_主_)來注釋,以指出函數(shù)testl()320可以是在GPU120上執(zhí)行的CmGPU內(nèi)核205。從GPUCm內(nèi)核205實(shí)例化的線程325-n可以對(duì)數(shù)據(jù)空間230的用戶確定的塊332-n操作,并可以由線程調(diào)度器368派遣在GPU120中的一個(gè)或多個(gè)EU365-n上運(yùn)行。在單個(gè)GPU調(diào)用中,可以有來自多個(gè)GPUCm內(nèi)核205的線程325-n。只有一個(gè)線程325-n可以在單個(gè)EU365-n上執(zhí)行,直到其完成,但是,每個(gè)EU365-n都可以具有多個(gè)同時(shí)駐留的線程325-n,它們被時(shí)間分片以提高整體執(zhí)行吞吐量。每一個(gè)EU365-n都可以包括多個(gè)SIMD通道374,這些通道374可以被用來執(zhí)行其SIMD指令,指令可以是其ISA的一部分,并由Cm編譯器210從GPUCm內(nèi)核205生成。每個(gè)EU365-n也都可以訪問大的通用寄存器文件(GRF),以降低存儲(chǔ)器訪問開銷。為取得最佳性能,將內(nèi)核的整個(gè)工作組保留在GRF372內(nèi)是合理的。通過GPU120內(nèi)的共同的GPU緩存362和可以與所有CPU共享的大的處理器級(jí)別的緩存350,可以進(jìn)一步對(duì)EU365-n隱藏存儲(chǔ)器訪問等待時(shí)間。在圖3的所示出的Cm并行處理模型300中,程序員可以標(biāo)識(shí)算法中的數(shù)據(jù)級(jí)別的并行性,并重構(gòu)現(xiàn)有的順序碼,如果需要,公開GPUCm內(nèi)核205中的細(xì)粒的并行性。在概念上,數(shù)據(jù)空間330可能需要被分成線程和EU友好的塊332-n,以及以GPUCm內(nèi)核205表達(dá)的對(duì)它們的計(jì)算。如函數(shù)testl()320GPUCm內(nèi)核205所說明的,此特定GPUCm內(nèi)核205中的典型的計(jì)算周期可以包括:(i)將數(shù)據(jù)塊從存儲(chǔ)器340讀取到GRF372(行7和8),(ii)對(duì)讀取數(shù)據(jù)的操作(行9-11),以及,(iii)將來自GRF372的計(jì)算出的輸出寫入到存儲(chǔ)器340(行12)??梢怨膭?lì)程序員盡可能多地公開數(shù)據(jù)的塊332-n內(nèi)的并行性,因?yàn)镃m編譯器210可以負(fù)責(zé)降低并行性的程度,以匹配在EU365-n中可用的資源。如圖2所示,GPUCm內(nèi)核205可以由Cm編譯器210編譯為中間語言共同的ISA文件220。公共ISA是可以被轉(zhuǎn)換以在任何當(dāng)前或未來的GPU上運(yùn)行的高級(jí)的,通用的匯編語言。在運(yùn)行時(shí),CmJIT編譯器245可以將公共ISA文件220轉(zhuǎn)換為GPU可執(zhí)行代碼。接下來,可以由C++編譯器230將主應(yīng)用程序225編譯為二進(jìn)制應(yīng)用程序235。在運(yùn)行時(shí),二進(jìn)制應(yīng)用程序235可以調(diào)用Cm-運(yùn)行時(shí)API,以設(shè)置在GPU120上并在其上執(zhí)行。Cm運(yùn)行時(shí)240可以給應(yīng)用程序提供所需的硬件抽象層。Cm運(yùn)行時(shí)240可以管理設(shè)備創(chuàng)建、建立輸入和輸出緩存、執(zhí)行內(nèi)核創(chuàng)建、建立線程自變量、以及向GPU120派遣內(nèi)核。在內(nèi)核創(chuàng)建過程中,Cm運(yùn)行時(shí)240可以調(diào)用CmJIT編譯器245,來從公共ISA文件220生成GPU二進(jìn)制。隨后,可以完全以硬件由GPU的線程調(diào)度器368來執(zhí)行線程創(chuàng)建和調(diào)度。如此,CPU110負(fù)責(zé)創(chuàng)建命令隊(duì)列,使任務(wù)排隊(duì),創(chuàng)建存儲(chǔ)器,將數(shù)據(jù)傳遞到GPU,從GPU120獲取結(jié)果,而GPU120執(zhí)行真正的RSA計(jì)算。此處所包括的是一個(gè)或多個(gè)表示用于執(zhí)行所公開的體系結(jié)構(gòu)的新穎方面的示例性方法的流程圖。盡管出于解釋簡明的目的,此處例如以流程圖形式示出的一個(gè)或多個(gè)方法被示出并且描述為一系列動(dòng)作,但是可以理解,各方法不受動(dòng)作的次序的限制,因?yàn)楦鶕?jù)本發(fā)明,某些動(dòng)作可以按與此處所示并描述的不同的次序和/或與其他動(dòng)作同時(shí)發(fā)生。例如,本領(lǐng)域的技術(shù)人員將明白并理解,方法可被替換地表示為一系列相互相關(guān)聯(lián)的狀態(tài)或事件,諸如以狀態(tài)圖的形式。此外,并非方法中所示出的所有動(dòng)作都是新穎實(shí)現(xiàn)所必需的。圖4示出了用于在異構(gòu)CPU/GPU處理體系結(jié)構(gòu)上實(shí)現(xiàn)RSA處理的各實(shí)施例的邏輯流程的一個(gè)實(shí)施例。邏輯流程400可以代表由此處所描述的一個(gè)或多個(gè)實(shí)施例執(zhí)行的某些或全部操作。在圖4所示出的實(shí)施例中,在框405,邏輯流程400可以將RSA參數(shù)從CPU110傳遞到GPU120。例如,參數(shù)Cp、Cq、p、q、dp、dq以及q-1modp可以從由CPU110執(zhí)行的RSA主函數(shù)115傳遞到由GPU120執(zhí)行的滑動(dòng)窗口函數(shù)125。各實(shí)施例不僅限于此示例。在框410,邏輯流程400可以計(jì)算模取冪。例如,滑動(dòng)窗口函數(shù)125可以接收RSA參數(shù)Cp、Cq、p、q、dp、dq,以及q-1modp,并可以開始處理它們,以求解M,加密的消息。邏輯流程400可以使用具有窗口大?。?的滑動(dòng)窗口函數(shù)125來計(jì)算一半大小的兩個(gè)模取冪,modp,以及modq。在滑動(dòng)窗口函數(shù)125內(nèi),可以對(duì)mulredc函數(shù)125作出十六(16)個(gè)調(diào)用,來預(yù)先計(jì)算參數(shù)Cp、Cq、p、q、dp、dq以及q-1modp的表。一旦預(yù)先計(jì)算出了表,就可以在內(nèi)循環(huán)的條件分支內(nèi),再次調(diào)用mulredc函數(shù)125。各實(shí)施例不僅限于此示例。邏輯流程400可以在框415計(jì)算公式的其余部分,以導(dǎo)出M。例如,滑動(dòng)窗口函數(shù)125可以調(diào)用mulredc函數(shù)130,以執(zhí)行,例如,多個(gè)模乘法操作以及sub、add、mul、mulredc、redc操作以計(jì)算公式的其余部分,以導(dǎo)出M。對(duì)于大數(shù)字模取冪操作,由滑動(dòng)窗口函數(shù)125執(zhí)行的滑動(dòng)窗口方法可以比二進(jìn)制掃描方法更高效。這是因?yàn)?,滑?dòng)窗口函數(shù)125使用較少的模乘法操作來執(zhí)行模取冪操作??梢赃x擇窗口大小(5),作為速度和存儲(chǔ)預(yù)先計(jì)算出的參數(shù)表所需的存儲(chǔ)器要求之間的合理的折衷。數(shù)學(xué)函數(shù)sub可以執(zhí)行大數(shù)減法。數(shù)學(xué)函數(shù)add可以執(zhí)行大數(shù)加法。數(shù)學(xué)函數(shù)mul可以執(zhí)行模乘法。數(shù)學(xué)函數(shù)redc可以執(zhí)行模簡化。mulredc和redc可以用于滑動(dòng)窗口函數(shù)中,sub可以被mulredc使用。sub和add也可以用于主RSA計(jì)算過程中,以導(dǎo)出M。各實(shí)施例不僅限于此示例。在框420,邏輯流程400可以調(diào)用addmul135。例如,mulredc函數(shù)130可以調(diào)用addmul函數(shù)135,以執(zhí)行大數(shù)乘法操作??梢允褂檬噶織l狀提取(stripmining)和循環(huán)剝離技術(shù)來優(yōu)化addmul函數(shù)135。各實(shí)施例不僅限于此示例。邏輯流程400可以在框425將M的解密的值返回到CPU110。例如,GPU120在完成其計(jì)算以及計(jì)算M之際可以將其結(jié)果返回到在CPU110上執(zhí)行的RSA主函數(shù)115。各實(shí)施例不僅限于此示例。循環(huán)剝離第一RSA優(yōu)化技術(shù)可以被稱為“循環(huán)剝離”。循環(huán)剝離通過使矢量操作數(shù)更好地符合特定硬件支持的SIMD大小和對(duì)準(zhǔn)要求,導(dǎo)致更好的矢量代碼。循環(huán)剝離技術(shù)可以對(duì)于addmul函數(shù)實(shí)現(xiàn),以顯著改善RSA處理效率,因?yàn)樵谟?jì)算M時(shí)addmul是調(diào)用最多的函數(shù)。將任意矢量長度的高級(jí)別指令,特別是循環(huán)內(nèi)的,最佳地簡化為硬件支持的矢量寬度的過程可以被稱為“矢量條狀提取”。循環(huán)剝離可以通過生成較高矢量寬度的較少的指令,這些指令更好地使用關(guān)鍵內(nèi)循環(huán)內(nèi)的可用的指令帶寬,來改善矢量條狀提取編譯器優(yōu)化。例如,此處所描述的循環(huán)剝離和代碼優(yōu)化示例能夠?qū)?nèi)循環(huán)中的shift(移位)操作從機(jī)器代碼的7個(gè)mov(移動(dòng))減到3個(gè)mov。此減少可以導(dǎo)致改善的RSA處理效率。RSA算法的關(guān)鍵內(nèi)循環(huán)當(dāng)前可以在表1中編碼為:表1上面的shift操作可以由,例如,Cm編譯器編譯為供GPU執(zhí)行的機(jī)器代碼,當(dāng)符合硬件支持的SIMD大小和GPU的對(duì)準(zhǔn)要求時(shí),該機(jī)器代碼包括七個(gè)mov,如表2所示。表2mov(4)r54.1<1>:udr50.0<4;4,1>:ud{Alignl}mov(2)r54.5<1>:udr50.4<2;2,1>:ud{Align1}mov(1)r54.7<1>:udr50.6<0;1,0>:ud{Alignl}mov(1)r55.0<1>:udr50.7<0;1,0>:ud{Align1}mov(4)r55.1<1>:udr51.0<4;4,1>:ud{Alignl}mov(2)r55.5<1>:udr51.4<2;2,1>:ud{Align1}mov(1)r55.7<1>:udr51.6<0;1,0>:ud{Align1}諸如Cm之類的矢量語言的關(guān)鍵編譯器優(yōu)化涉及將任意大矢量長度的高級(jí)別Cm源代碼指令簡化為較小的矢量長度的分量源代碼指令的序列,較小的矢量長度等于或小于由硬件中的指令支持的最大矢量長度。GPU編譯器優(yōu)化目標(biāo)是最大化編譯的機(jī)器代碼指令的矢量長度,以更好地使用由硬件所提供的指令帶寬,并由此最大化性能。對(duì)于GPU,實(shí)現(xiàn)八(8)或十六(16)指令寬度最佳地使用可用指令帶寬,因?yàn)橹噶盍魉€將內(nèi)部地將具有十六(16)矢量長度的指令簡化為具有八(8)矢量長度的分量指令。此優(yōu)化的目標(biāo)的的障礙是,簡化的指令操作數(shù)必須根據(jù)硬件的操作數(shù)對(duì)齊規(guī)則來對(duì)齊。在傳統(tǒng)的矢量條狀提取中,輸入源代碼指令是標(biāo)量指令。編譯器必須通過一般等于由硬件支持的最大矢量長度的因素來展開代碼的循環(huán),以使得(i)被展開的指令可以被合并成等于最大硬件支持的寬度的寬度的矢量指令,以及(ii)指令操作數(shù)尊重硬件的操作數(shù)對(duì)準(zhǔn)要求。然而,在Cm平臺(tái)中,源代碼已經(jīng)包括矢量指令。如此,不需要編譯器展開循環(huán)。源代碼已經(jīng)是矢量形式,雖然寬度大于硬件支持的寬度。問題變?yōu)閷⑹噶恐噶罘纸鉃槌煞菔噶?constituentvector)指令的問題,其中每一個(gè)成份矢量指令(i)具有等于或小于最大硬件支持的寬度的矢量寬度,以及(ii)指令操作數(shù)尊重硬件的操作數(shù)對(duì)準(zhǔn)要求。此處所描述的優(yōu)化將成份矢量指令的矢量長度最大化為可用指令帶寬。一般而言,與經(jīng)典矢量條狀提取相比,已經(jīng)處在矢量形式的條狀提取代碼應(yīng)該產(chǎn)生好得多的結(jié)果。這是因?yàn)?,傳統(tǒng)矢量條狀提取中所使用的輸入源代碼處于標(biāo)量形式,并不總是可以非常輕松地通過必需的因素展開循環(huán)。對(duì)于RSA內(nèi)核源代碼的關(guān)鍵內(nèi)循環(huán),對(duì)于類型Dword(雙字)的本地矢量指令允許的最大硬件寬度是八(8)。由于關(guān)鍵shift操作中的未對(duì)齊的目的地區(qū)域(r54.1:d),因此,不能將源代碼編譯為此寬度的簡化的指令,指令不能被高效地條狀提取。如上所示,對(duì)于關(guān)鍵shift操作,可以將源代碼編譯為寬度4、2、1、1、4、2、1的七(7)個(gè)機(jī)器代碼指令。由于所有編譯的機(jī)器代碼指令的寬度小于八(8)個(gè),因此,機(jī)器代碼指令中沒有一個(gè)最佳地使用可用指令帶寬,并且總體性能受到損失??梢愿纳茥l狀提取優(yōu)化階段,以利用兩個(gè)編譯器導(dǎo)出的觀測(cè)值來為關(guān)鍵內(nèi)循環(huán)中的shift生成更高效代碼。首先,如果操作數(shù)是較小的大小,則編譯器可以為操作獲取較高的SIMD大小。這可以使用ushort操作數(shù)代替uint操作數(shù)來實(shí)現(xiàn)。GPU中的單個(gè)未經(jīng)壓縮的指令可以對(duì)十六(16)個(gè)short或八(8)個(gè)iht操作。其次,根據(jù)源代碼的關(guān)鍵內(nèi)循環(huán)的第二迭代,移位的值是可以通過使用ushort類型來表示的0(諸個(gè))或1(諸個(gè))。這是基于構(gòu)建的定義使用鏈接確定的。在表1所示出的示例中,有兩個(gè)對(duì)于內(nèi)循環(huán)中的變量prod的使用的定義。一個(gè)定義是對(duì)于位于循環(huán)之外的prod的初始化,而另一個(gè)定義是從同一個(gè)循環(huán)內(nèi)的合并語句攜帶的循環(huán)。另外,可以判斷,雖然來自循環(huán)外面的prod的初始化定義的結(jié)果需要Dword精度,循環(huán)攜帶的定義的結(jié)果只是1(諸個(gè))和0(諸個(gè))僅要求word(字)精度。基于兩個(gè)觀測(cè)值,可以在條狀提取之前,剝離內(nèi)循環(huán)的第一迭代。然后,內(nèi)循環(huán)的其余部分的關(guān)鍵shift操作中所使用的操作數(shù)prod的類型可以從u32降低到u16。shift的類型也可以降低,因?yàn)檠h(huán)外面的其初始化定義是0,這可以在ushort中表示,并且其循環(huán)攜帶的定義是剛剛降低到內(nèi)循環(huán)的剝離的其余部分中的word類型的prod。循環(huán)剝離步驟可僅在可以預(yù)料這樣做將允許隨后的矢量條狀提取優(yōu)化生成更好的矢量代碼的情況下才執(zhí)行?;谝陨纤?,可以重新編寫內(nèi)循環(huán)的優(yōu)化的變換的代碼,如表3所示,其中,剝離的循環(huán)中所使用的類型降低的操作數(shù)被命名為wshift和wprod。表3上面的優(yōu)化的代碼可以被編譯為包括四(4)個(gè)mov的機(jī)器代碼指令,如表4所示。表4mov(8)r19.1<1>:uwr17.0<8;8,1>:tuw{Alignl}mov(4)r19.9<1>:uwr17.8<4;4,1>:uw{Alignl}mov(2)r19.13<1>:uwr17.12<2;2,1>:uw{Alignl}mov(1)r19.15<1>:uwr17.14<0;1,0>:uw{Alignl}值得注意的是,只有表4所示出的機(jī)器代碼指令序列中的第一mov最佳地使用GPU硬件的可用指令帶寬,而其他三個(gè)mov指令仍不能充分使用可用指令帶寬。盡管如此,編譯的指令吞吐量比已編譯為包括七(7)個(gè)未充分使用的mov的機(jī)器代碼的原始未優(yōu)化的代碼更好(參見表2)。此時(shí),可以對(duì)類型降低的變量的布局作出額外的優(yōu)化,以進(jìn)一步減少內(nèi)循環(huán)中的mov的數(shù)量。例如,16寬的wshift變量可以被拆分成兩個(gè)9寬的wshift1和wshift2變量。此改善的布局可以導(dǎo)致表5所示出的下列變換的優(yōu)化的代碼,其中,剝離的循環(huán)中所使用的類型降低的操作數(shù)現(xiàn)在命名為wshift1、wshift2,以及wprod。表5內(nèi)循環(huán)中的shift操作序列現(xiàn)在可以被編譯為包括3個(gè)mov的機(jī)器代碼指令,如下面的表6所示。表6mov(8)r19.1<1>:uwr17.0<8;8,1>:uw{Alignl}mov(1)r22.0<1>:uwr17.7<0;1,0>:uw{Alignl}mov(8)r22.1<1>:uwr17.8<8;8,1>:uw{Alignl}這可能是最佳機(jī)器代碼指令序列,因?yàn)橹挥衧hift操作中的一個(gè)指令未充分使用可用帶寬,這是不能避免的。雖然SIMD16merge(合并)指令被拆分成兩個(gè)SIMD8指令,但是,指令吞吐量保持不變,因?yàn)橹噶盍魉€將內(nèi)部地自動(dòng)地將SIMD16指令細(xì)分為兩個(gè)SIMD8指令。圖5示出了根據(jù)本發(fā)明的各實(shí)施例的邏輯流程500的一個(gè)實(shí)施例,其中,描述了用于優(yōu)化RSA處理的矢量條狀提取和循環(huán)剝離技術(shù)。邏輯流程500可以表示由此處所描述的一個(gè)或多個(gè)實(shí)施例執(zhí)行的某些或全部操作。從只有CPU的實(shí)現(xiàn)將RSA處理直接移植到CPU和GPU的組合將可能不會(huì)導(dǎo)致對(duì)可用資源的最高效使用。為CPU編寫的RSA代碼可以不優(yōu)化以在GPU上運(yùn)行。通過矢量條狀提取和循環(huán)剝離,RSA代碼可以被優(yōu)化,以在異構(gòu)CPU/GPU平臺(tái)上更有效率地運(yùn)行。在圖5所示出的實(shí)施例中,邏輯流程500可以在框505對(duì)源代碼的內(nèi)循環(huán)體執(zhí)行初始矢量條狀提取。矢量條狀提取是最佳地將任意矢量長度的高級(jí)別指令,特別是源代碼的循環(huán)內(nèi)的,簡化為硬件支持的矢量寬度的過程。例如,為只有CPU的實(shí)現(xiàn)編寫的矢量條狀提取的代碼的shift操作(參見,表1)可能導(dǎo)致七(7)個(gè)機(jī)器代碼指令(參見,表2)。然而,七(7)個(gè)機(jī)器代碼指令中沒有一個(gè)利用GPU的最大可用指令硬件帶寬八(8),從而導(dǎo)致總體性能受損。在框510,邏輯流程500可以判斷從內(nèi)循環(huán)編譯的機(jī)器代碼的一個(gè)以上的指令是否低于GPU指令帶寬利用閾值。由上所述,初始矢量條狀提取的代碼可能導(dǎo)致七(7)個(gè)機(jī)器代碼指令,它們中一個(gè)也沒有使用總的可用指令帶寬。如此,內(nèi)循環(huán)可以是用于優(yōu)化的候選,假設(shè)可以符合某些額外條件。如果機(jī)器代碼指令集包括不超過一個(gè)的未充分使用的指令,則沒有需要進(jìn)一步優(yōu)化。各實(shí)施例不僅限于此示例。在框515,邏輯流程500可以判斷未充分使用的機(jī)器代碼指令是否符合三(3)個(gè)額外的準(zhǔn)則。例如,第一準(zhǔn)則可以是判斷未充分使用的機(jī)器代碼指令是否與源代碼中的兩(2)個(gè)定義相關(guān)聯(lián)。第一定義是在內(nèi)循環(huán)外面發(fā)生的初始化定義,而第二定義是循環(huán)攜帶的定義。第二準(zhǔn)則可以是判斷初始化定義是否具有dword(雙字)的操作類型,而循環(huán)攜帶的定義具有word(字)或byte(字節(jié))操作類型。第三準(zhǔn)則可以是判斷初始化定義和循環(huán)攜帶的定義的目的地是否相同,以及是否是類型dword。如果所有三個(gè)上面的準(zhǔn)則都不符合,則代碼可能沒有資格用于此處所描述的優(yōu)化的類型。各實(shí)施例不僅限于此示例。在框520,邏輯流程500可以丟棄初始矢量條狀提取結(jié)果。例如,如果符合上面陳述的三個(gè)準(zhǔn)則,則內(nèi)循環(huán)源代碼可以是由編譯器可優(yōu)化的。在這樣的情況下,可以丟棄在框505獲取的初始矢量條狀提取結(jié)果。各實(shí)施例不僅限于此示例。在框525,邏輯流程500可以執(zhí)行循環(huán)剝離過程。例如,可以在條狀提取代碼之前,剝離內(nèi)循環(huán)的第一迭代。然后,邏輯流程500可以將在框515中標(biāo)識(shí)的操作數(shù)prod的類型從u32降低到在代碼的內(nèi)循環(huán)的其余部分的關(guān)鍵shift操作中所使用的u16。shift的類型也可以降低,因?yàn)檠h(huán)外面的其初始化定義是0,這可以在ushort中表示,并且它的其他循環(huán)攜帶的定義是剛剛降低到代碼的內(nèi)循環(huán)的剝離的其余部分中的word類型的prod。各實(shí)施例不僅限于此示例。在框530,邏輯流程500可以對(duì)內(nèi)循環(huán)重新執(zhí)行矢量條狀提取優(yōu)化。例如,在矢量條狀提取之后,可以重新編寫內(nèi)循環(huán)的優(yōu)化的變換的代碼,如表5所示。剝離的循環(huán)中所使用的類型降低的操作數(shù)現(xiàn)在命名為wshift和wprod。各實(shí)施例不僅限于此示例。在框535,邏輯流程500可以再次判斷從源代碼的內(nèi)循環(huán)編譯的機(jī)器代碼的一個(gè)以上的指令是否低于指令帶寬利用閾值。在上面的框530之后,重復(fù)執(zhí)行的矢量條狀提取的代碼可能導(dǎo)致四(4)個(gè)機(jī)器代碼指令,其中只有一個(gè)使用總的可用指令帶寬。如此,源代碼的內(nèi)循環(huán)可以是用于進(jìn)一步優(yōu)化的候選,因?yàn)橛幸粋€(gè)以上的未充分使用的機(jī)器代碼指令。如果有少于兩個(gè)的未充分使用可用的GPU硬件帶寬的機(jī)器代碼指令,那么,RSA代碼優(yōu)化過程完成。各實(shí)施例不僅限于此示例。在框540,邏輯流程500可以嘗試進(jìn)一步的代碼優(yōu)化,以改善可變布局以生成更好的條狀提取結(jié)果。例如,可以對(duì)類型降低的變量的布局作出額外的優(yōu)化,以進(jìn)一步減少編譯源代碼的內(nèi)循環(huán)之后的mov的數(shù)量。例如,16寬的wshift變量可以被拆分成兩個(gè)9寬的wshift1和wshift2變量。此改善的布局可以導(dǎo)致表5所示出的變換的代碼,其中,源代碼的剝離的循環(huán)中所使用的類型降低的操作數(shù)現(xiàn)在命名為wshift1、wshift2,以及wprod。各實(shí)施例不僅限于此示例。在框545,邏輯流程500可以對(duì)源代碼的內(nèi)循環(huán)重新執(zhí)行矢量條狀提取。例如,編譯在框540生成的代碼可能會(huì)產(chǎn)生三(3)個(gè)機(jī)器代碼mov指令。這可能是最佳序列,因?yàn)橹挥衧hift操作中的機(jī)器代碼指令中的一個(gè)未充分使用可用的GPU硬件帶寬,這是不能避免的。雖然SIMD16合并指令被拆分成兩個(gè)SIMD8指令,但是,指令吞吐量保持不變,因?yàn)橹噶盍魉€將內(nèi)部地自動(dòng)地將SIMD16指令細(xì)分為兩個(gè)SIMD8指令。各實(shí)施例不僅限于此示例。各實(shí)施例可以使用硬件元件、軟件元件或兩者的組合來實(shí)現(xiàn)。硬件元件的示例可包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、感應(yīng)器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片集等等。軟件的示例可包括軟件組件、程序、應(yīng)用程序、計(jì)算機(jī)程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計(jì)算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代碼段、字、值、符號(hào),或其任何組合。判斷一個(gè)實(shí)施例是否使用硬件元件或軟件元件來實(shí)現(xiàn)可以根據(jù)任意數(shù)量的因素而不同,如所希望的計(jì)算速率、功率級(jí)別、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲(chǔ)器資源、數(shù)據(jù)總線速度,及其他設(shè)計(jì)或性能約束。圖6示出了可以適用于實(shí)現(xiàn)本發(fā)明的GPGPURSA處理實(shí)施例的系統(tǒng)600的實(shí)施例。在各實(shí)施例中,系統(tǒng)600可以是實(shí)現(xiàn)RSA的媒體系統(tǒng),雖然系統(tǒng)600不僅限于此上下文。例如,系統(tǒng)600可以集成到個(gè)人計(jì)算機(jī)(PC)、膝上型計(jì)算機(jī)、超膝上型計(jì)算機(jī)、平板電腦、觸摸板、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、掌上電腦、個(gè)人數(shù)字助理(PDA)、蜂窩電話、蜂窩電話/PDA的組合、電視機(jī)、智能設(shè)備(例如,智能電話、智能平板電腦或智能電視機(jī))、移動(dòng)因特網(wǎng)設(shè)備(MID)、消息接發(fā)設(shè)備、數(shù)據(jù)通信設(shè)備等等。在各實(shí)施例中,系統(tǒng)600包括耦合到顯示器620的平臺(tái)602。平臺(tái)602可以從諸如內(nèi)容服務(wù)設(shè)備630、或內(nèi)容分發(fā)設(shè)備640之類的內(nèi)容設(shè)備或其他類似的內(nèi)容源接收內(nèi)容。包括一個(gè)或多個(gè)導(dǎo)航特征的導(dǎo)航控制器650可以被用來與例如平臺(tái)602和/或顯示器620進(jìn)行交互。在下文中更詳細(xì)地描述這些組件中的每一個(gè)。在各實(shí)施例中,平臺(tái)602可以包括芯片組605、處理器610、存儲(chǔ)器612、存儲(chǔ)614、圖形子系統(tǒng)615、應(yīng)用程序616、和/或無線電618的任何組合。芯片組605可以在處理器610、存儲(chǔ)器612、存儲(chǔ)614、圖形子系統(tǒng)615、應(yīng)用程序616和/或無線電618之間提供相互通信。例如,芯片組605可以包括能夠與存儲(chǔ)614進(jìn)行相互通信的存儲(chǔ)器適配器(未描繪)。處理器610可以實(shí)現(xiàn)為復(fù)雜指令系統(tǒng)計(jì)算機(jī)(CISC)或精簡指令集計(jì)算機(jī)(RISC)處理器、x86指令集兼容的處理器、多核,或任何其他微處理器或中央處理單元(CPU)。在各實(shí)施例中,處理器610可以包括雙核處理器、雙核移動(dòng)處理器等等。存儲(chǔ)器612可以實(shí)現(xiàn)為易失性存儲(chǔ)器設(shè)備,諸如,但不僅限于,隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM),或靜態(tài)RAM(SRAM)。存儲(chǔ)器614可以實(shí)現(xiàn)為非易失性存儲(chǔ)器設(shè)備,諸如,但不僅限于,磁盤驅(qū)動(dòng)、光盤驅(qū)動(dòng)、磁帶驅(qū)動(dòng)、內(nèi)部存儲(chǔ)設(shè)備、附連存儲(chǔ)設(shè)備、閃存、電池供電的SDRAM(同步DRAM),和/或網(wǎng)絡(luò)可訪問的存儲(chǔ)設(shè)備。在各實(shí)施例中,存儲(chǔ)器614可以包括當(dāng),例如,包括多個(gè)硬盤驅(qū)動(dòng)器時(shí),提高存儲(chǔ)器性能或?qū)τ袃r(jià)值的數(shù)字媒體的增強(qiáng)的保護(hù)的技術(shù)。圖形子系統(tǒng)615可以對(duì)諸如靜止圖像或視頻之類的圖像執(zhí)行處理,供顯示。圖形子系統(tǒng)615可以是,例如,圖形處理單元(GPU)或視覺處理單元(VPU)。模擬或數(shù)字接口可以被用來可通信地耦合圖形子系統(tǒng)615和顯示器620。例如,接口可以是高清晰度多媒體接口、顯示端口(DisplayPort)、無線HDMI,和/或遵循無線HD的技術(shù)中的任何一個(gè)。圖形子系統(tǒng)615可以被集成到處理器610或芯片組605中。圖形子系統(tǒng)615可以是可通信地耦合到芯片組605的獨(dú)立卡。此處所描述的圖形和/或視頻處理技術(shù)可以以各種硬件體系結(jié)構(gòu)來實(shí)現(xiàn)。例如,圖形和/或視頻功能可以集成在芯片組內(nèi)。替代地,可以使用單獨(dú)的圖形和/或視頻處理器。作為再一個(gè)實(shí)施例,圖形和/或視頻功能可以通過通用處理器(包括多核處理器)來實(shí)現(xiàn)。在又一實(shí)施例中,功能可以在消費(fèi)電子產(chǎn)品中實(shí)現(xiàn)。無線電618可以包括能夠使用各種合適的無線通信技術(shù)傳輸和接收信號(hào)的一個(gè)或多個(gè)無線電。這樣的技術(shù)可以涉及跨一個(gè)或多個(gè)無線網(wǎng)絡(luò)的通信。示例性無線網(wǎng)絡(luò)包括(但不僅限于)無線局域網(wǎng)(WLAN)、無線人域網(wǎng)(WPAN)、無線城域網(wǎng)(WMAN)、蜂窩網(wǎng)絡(luò),以及衛(wèi)星網(wǎng)絡(luò)。在跨這樣的網(wǎng)絡(luò)的通信中,無線電618可以根據(jù)任何版本的一個(gè)或多個(gè)適用的標(biāo)準(zhǔn)來操作。在各實(shí)施例中,顯示器620可以包括任何電視機(jī)類型監(jiān)視器或顯示器。顯示器620可以包括,例如,計(jì)算機(jī)顯示器屏幕、觸摸屏顯示器、視頻監(jiān)視器、類似于電視機(jī)的設(shè)備,和/或電視機(jī)。顯示器620可以是數(shù)字和/或模擬的。在各實(shí)施例中,顯示器620可以是全息顯示器。同樣,顯示器620還可以是可以接收視覺投影的透明表面。這樣的投影可以傳達(dá)各種形式的信息、圖像,和/或?qū)ο?。例如,這樣的投影可以是對(duì)于移動(dòng)增強(qiáng)的現(xiàn)實(shí)(MAR)應(yīng)用程序的視覺覆蓋。在一個(gè)或多個(gè)軟件應(yīng)用程序616的控制下,平臺(tái)602可以在顯示器622上顯示用戶界面620。在各實(shí)施例中,內(nèi)容服務(wù)設(shè)備630可以由任何國家的,國際的和/或獨(dú)立的服務(wù)托管,并由此可以被平臺(tái)602例如通過因特網(wǎng)來訪問。內(nèi)容服務(wù)設(shè)備630可以耦合到平臺(tái)602和/或顯示器620。平臺(tái)602和/或內(nèi)容服務(wù)設(shè)備630可以耦合到網(wǎng)絡(luò)660以往返于網(wǎng)絡(luò)660進(jìn)行通信(例如,發(fā)送和/或接收)媒體信息。內(nèi)容分發(fā)設(shè)備640還可以耦合到平臺(tái)602和/或顯示器620。在各實(shí)施例中,內(nèi)容服務(wù)設(shè)備630可以包括有線電視盒、個(gè)人計(jì)算機(jī)、網(wǎng)絡(luò)、電話、啟用因特網(wǎng)的設(shè)備或能夠分發(fā)數(shù)字信息和/或內(nèi)容的電器,以及能夠通過網(wǎng)絡(luò)660或直接在內(nèi)容提供商和平臺(tái)602和/或顯示器620之間單方向地或雙向地傳遞內(nèi)容的任何其他類似的設(shè)備??梢岳斫?,內(nèi)容可以通過網(wǎng)絡(luò)660往返于系統(tǒng)600中的組件中的任何一個(gè)和內(nèi)容提供商單向地和/或雙向地傳遞。內(nèi)容的示例可以包括任何媒體信息,包括,例如,視頻、音樂、醫(yī)學(xué)和游戲信息等等。內(nèi)容服務(wù)設(shè)備630接收內(nèi)容,諸如有線電視節(jié)目,包括媒體信息、數(shù)字信息和/或其他內(nèi)容。內(nèi)容提供商的示例可以包括任何有線或衛(wèi)星電視或電臺(tái)或因特網(wǎng)內(nèi)容提供商。所提供的示例不限制本發(fā)明的各實(shí)施例。在各實(shí)施例中,平臺(tái)602可以從具有一個(gè)或多個(gè)導(dǎo)航特征的導(dǎo)航控制器650接收控制信號(hào)??刂破?50的導(dǎo)航特征可以被用來例如與用戶界面622進(jìn)行交互。在各實(shí)施例中,導(dǎo)航控制器650可以是指示設(shè)備,該指示設(shè)備可以是計(jì)算機(jī)硬件組件(具體地,人機(jī)接口設(shè)備),可使用戶向計(jì)算機(jī)中輸入空間(例如,連續(xù)的和多維)數(shù)據(jù)。諸如圖形用戶界面(GUI)、電視機(jī)和監(jiān)視器之類的許多系統(tǒng)可使用戶使用物理手勢(shì)控制并向計(jì)算機(jī)或電視機(jī)提供數(shù)據(jù)??刂破?50的導(dǎo)航特征的移動(dòng)可以通過指針、光標(biāo)、焦點(diǎn)環(huán),或顯示在顯示器上的其他可視指示器,在顯示器上反射(例如,顯示器620)。例如,在軟件應(yīng)用616的控制下,位于導(dǎo)航控制器650上的導(dǎo)航特征可以被例如映射到用戶界面622上顯示的虛擬導(dǎo)航特征。在各實(shí)施例中,控制器650可以不是單獨(dú)的組件,而是集成到平臺(tái)602和/或顯示器620中。然而,各實(shí)施例不僅限于在所示出的或此處所描述的上下文中的元件。在各實(shí)施例中,驅(qū)動(dòng)器(未示出)可以包括允許用戶立即打開和關(guān)閉平臺(tái)602的技術(shù),類似于電視機(jī),例如,當(dāng)啟用時(shí),在初始引導(dǎo)之后,按下按鈕。程序邏輯可以允許平臺(tái)602當(dāng)平臺(tái)被“關(guān)閉”時(shí)向媒體適配器或其他內(nèi)容服務(wù)設(shè)備630或內(nèi)容分發(fā)設(shè)備640流送內(nèi)容。另外,芯片組605還可以包括,例如,對(duì)于5.1環(huán)繞聲音頻和/或高清晰度6.1環(huán)繞聲音頻的硬件和/或軟件支持。驅(qū)動(dòng)器可以包括集成的圖形平臺(tái)的圖形驅(qū)動(dòng)器。在各實(shí)施例中,圖形驅(qū)動(dòng)器可以包括外圍組件互連(PCI)Express圖形卡。在各種實(shí)施例中,可以集成系統(tǒng)600所示出的組件的任何一個(gè)或更多。例如,可以集成平臺(tái)602和內(nèi)容服務(wù)設(shè)備630,或者也可以集成平臺(tái)602和內(nèi)容分發(fā)設(shè)備640,或者,例如,也可以集成平臺(tái)602、內(nèi)容服務(wù)設(shè)備630,以及內(nèi)容分發(fā)設(shè)備640。在各種實(shí)施例中,平臺(tái)602和顯示器620可以是集成單元。例如,可以集成顯示器620和內(nèi)容服務(wù)設(shè)備630,或者也可以集成顯示器620和內(nèi)容分發(fā)設(shè)備640。這些示例不限制本發(fā)明。在各種實(shí)施例中,系統(tǒng)600可以實(shí)現(xiàn)為無線系統(tǒng)、有線系統(tǒng),或兩者的組合。當(dāng)實(shí)現(xiàn)為無線系統(tǒng)時(shí),系統(tǒng)600可以包括適用于通過無線共享介質(zhì)進(jìn)行通信的組件和接口,諸如一個(gè)或多個(gè)天線、發(fā)射器、接收器、收發(fā)器、放大器、濾波器、控制邏輯等等。無線共享介質(zhì)的示例可以包括諸如RF頻譜之類的無線范圍的某些部分等等。當(dāng)實(shí)現(xiàn)為有線系統(tǒng)時(shí),系統(tǒng)600可以包括適用于通過有線通信介質(zhì)進(jìn)行通信的組件和接口,諸如輸入/輸出(I/O)適配器、將I/O適配器與相應(yīng)的有線通信介質(zhì)連接的物理連接器、網(wǎng)絡(luò)接口卡(NIC)、光盤控制器、視頻控制器、音頻控制器等等。有線通信介質(zhì)的示例可包括,線路、電纜、金屬導(dǎo)線、印刷電路板(PCB)、后面板、交換機(jī)結(jié)構(gòu)、半導(dǎo)體材料、雙絞線、同軸電纜、光纖等等。平臺(tái)602可以建立一個(gè)或多個(gè)邏輯或物理信道以傳遞信息。信息可以包括媒體信息和控制信息。媒體信息可以是指表示給用戶的內(nèi)容的任何數(shù)據(jù)。內(nèi)容的示例可以包括,例如,來自語音談話、視頻會(huì)議、流式視頻、電子郵件消息、語音郵件消息、字母數(shù)字符號(hào)、圖形、圖像、視頻、文本等等的數(shù)據(jù)。來自語音談話的數(shù)據(jù)可以是,例如,語音信息、靜默時(shí)間長度、背景噪聲、舒適噪聲、音調(diào)等等??刂菩畔⒖梢允侵副硎居糜谧詣?dòng)化系統(tǒng)的命令、指令或控制字的任何數(shù)據(jù)。例如,控制信息可以用來通過系統(tǒng)路由媒體信息,或指示節(jié)點(diǎn)以預(yù)先確定的方式處理媒體信息。然而,各實(shí)施例不僅限于圖6中所示出的或所描述的上下文中的元件。如上文所描述的,系統(tǒng)600可以以不同的物理樣式或形狀因子來體現(xiàn)。圖7示出了其中可以實(shí)現(xiàn)系統(tǒng)600的小形狀因子設(shè)備700的各實(shí)施例。在各實(shí)施例中,例如,設(shè)備700可以實(shí)現(xiàn)為具有無線能力的移動(dòng)計(jì)算設(shè)備。移動(dòng)計(jì)算設(shè)備可以是指具有處理系統(tǒng)和移動(dòng)電源(諸如,例如,一個(gè)或多個(gè)電池)的任何設(shè)備。如上文所描述的,移動(dòng)計(jì)算設(shè)備的示例可以包括個(gè)人計(jì)算機(jī)(PC)、膝上型計(jì)算機(jī)、超膝上型計(jì)算機(jī)、平板電腦、觸摸板、便攜式計(jì)算機(jī)、手持式計(jì)算機(jī)、掌上電腦、個(gè)人數(shù)字助理(PDA)、蜂窩電話、蜂窩電話/PDA的組合、電視機(jī)、智能設(shè)備(例如,智能電話、智能平板電腦或智能電視機(jī))、移動(dòng)因特網(wǎng)設(shè)備(MID)、消息傳送設(shè)備、數(shù)據(jù)通信設(shè)備等等。移動(dòng)計(jì)算設(shè)備的示例還可以包括被配置為由人佩帶的計(jì)算機(jī),諸如腕計(jì)算機(jī)、手指計(jì)算機(jī)、戒指計(jì)算機(jī)、眼鏡計(jì)算機(jī)、皮帶計(jì)算機(jī)、臂帶計(jì)算機(jī)、鞋計(jì)算機(jī)、衣服計(jì)算機(jī),及其他可佩帶的計(jì)算機(jī)。例如,在各實(shí)施例中,移動(dòng)計(jì)算設(shè)備可以實(shí)現(xiàn)為能夠執(zhí)行計(jì)算機(jī)應(yīng)用程序以及語音通信和/或數(shù)據(jù)通信的智能電話。雖然可以利用作為示例實(shí)現(xiàn)為智能電話的移動(dòng)計(jì)算設(shè)備描述一些實(shí)施例,但是,可以理解,其他實(shí)施例也可以使用其他無線移動(dòng)計(jì)算設(shè)備來實(shí)現(xiàn)。在此上下文中,實(shí)施例不受限制。如圖7所示,設(shè)備700可以包括外殼702、顯示器704、輸入/輸出(I/O)設(shè)備706,以及天線708。設(shè)備700還可以包括導(dǎo)航特征712。顯示器704可以包括用于顯示適合于移動(dòng)計(jì)算設(shè)備的信息的任何合適的顯示單元。I/O設(shè)備706可以包括用于向移動(dòng)計(jì)算設(shè)備中輸入信息的任何合適的I/O設(shè)備。I/O設(shè)備706的示例可以包括字母數(shù)字鍵盤、數(shù)字鍵區(qū)、觸摸板、輸入鍵、按鈕、開關(guān)、往復(fù)式開關(guān)、麥克風(fēng)、揚(yáng)聲器、語音識(shí)別設(shè)備以及軟件等等。信息還可以通過麥克風(fēng)輸入到設(shè)備700中。這樣的信息可以通過語音識(shí)別設(shè)備來數(shù)字化。在此上下文中,實(shí)施例不受限制。各實(shí)施例可以使用硬件元件、軟件元件或兩者的組合來實(shí)現(xiàn)。硬件元件的示例可包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、感應(yīng)器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數(shù)字信號(hào)處理器(DSP)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、邏輯門、寄存器、半導(dǎo)體器件、芯片、微芯片、芯片組等等。軟件的示例可包括軟件組件、程序、應(yīng)用程序、計(jì)算機(jī)程序、系統(tǒng)程序、機(jī)器程序、操作系統(tǒng)軟件、中間件、固件、軟件模塊、例程、子例程、函數(shù)、方法、過程、軟件接口、應(yīng)用程序接口(API)、指令集、計(jì)算代碼、計(jì)算機(jī)代碼、代碼段、計(jì)算機(jī)代碼段、字、值、符號(hào),或其任何組合。判斷一個(gè)實(shí)施例是否使用硬件元件或軟件元件來實(shí)現(xiàn)可以根據(jù)任意數(shù)量的因素而不同,如所希望的計(jì)算速率、功率級(jí)別、耐熱性、處理周期預(yù)算、輸入數(shù)據(jù)速率、輸出數(shù)據(jù)速率、存儲(chǔ)器資源、數(shù)據(jù)總線速度,及其他設(shè)計(jì)或性能約束。至少一個(gè)實(shí)施例的一個(gè)或多個(gè)方面可以通過存儲(chǔ)在機(jī)器可讀介質(zhì)上的代表性的指令來實(shí)現(xiàn),指令表示處理器內(nèi)的各種邏輯,指令在由機(jī)器讀取時(shí)使機(jī)器制造執(zhí)行此處所描述的技術(shù)的邏輯。被稱為“IP核”的這樣的表示可以存儲(chǔ)在有形的機(jī)器可讀介質(zhì)中,并提供給各種客戶或生產(chǎn)設(shè)施,以加載到實(shí)際制造邏輯或處理器的制造機(jī)器中。至少一個(gè)實(shí)施例的一個(gè)或多個(gè)方面可以通過存儲(chǔ)在機(jī)器可讀介質(zhì)上的代表性的指令來實(shí)現(xiàn),指令表示處理器內(nèi)的各種邏輯,指令在由機(jī)器讀取時(shí)使機(jī)器制造執(zhí)行此處所描述的技術(shù)的邏輯。被稱為“IP核”的這樣的表示可以存儲(chǔ)在有形的機(jī)器可讀介質(zhì)中,并提供給各種客戶或生產(chǎn)設(shè)施,以加載到實(shí)際制造邏輯或處理器的制造機(jī)器中??梢允褂帽磉_(dá)“一個(gè)實(shí)施例”或“實(shí)施例”以及它們的派生詞來描述某些實(shí)施例。這些術(shù)語意味著,參考實(shí)施例所描述的特定功能、結(jié)構(gòu)或特征包括在至少一個(gè)實(shí)施例中。在本說明書中的不同位置出現(xiàn)短語“在一個(gè)實(shí)施例中”不一定都是指同一個(gè)實(shí)施例。進(jìn)一步地,可以使用表達(dá)“耦合”和“連接”以及它們的派生詞來描述某些實(shí)施例。這些術(shù)語不一定作為彼此的同義詞。例如,可以使用術(shù)語“連接”和/或“耦合”來描述某些實(shí)施例,以指出兩個(gè)或更多元件彼此處于直接的物理或電接觸的狀態(tài)。然而,術(shù)語″耦合″也可以意味著,兩個(gè)或更多彼此不直接接觸,但是仍彼此合作或進(jìn)行交互的元件。值得強(qiáng)調(diào)的是,提供“摘要”以使讀者快速地弄清一技術(shù)公開的本質(zhì)。但應(yīng)理解,它不能被用來解釋或限制權(quán)利要求的范圍或含義。此外,在前面的″具體實(shí)施方式″中,可以看出,各種特點(diǎn)可以組合在一個(gè)實(shí)施例中,以便簡化說明。本發(fā)明的此方法不應(yīng)被解釋為反映帶權(quán)利要求的各實(shí)施例需要比每一個(gè)權(quán)利要求中明確地列舉的特點(diǎn)更多的特點(diǎn)的意圖。相反,如下面的權(quán)利要求所反映的,本發(fā)明的主題在于少于所公開的單一實(shí)施例的所有特點(diǎn)。如此,下面的權(quán)利要求被包括到“具體實(shí)施方式”,每一個(gè)權(quán)利要求本身也作為單獨(dú)的實(shí)施例。在所附權(quán)利要求書中,術(shù)語“包括”和“其特征在于”被用作相應(yīng)的術(shù)語“包含”和“其中”的普通英語等效詞。此外,術(shù)語“第一”、“第二”、“第三”等等只用作標(biāo)記,并不旨在對(duì)它們的對(duì)象施加數(shù)值要求。上文所描述的包括所公開的體系結(jié)構(gòu)的示例。當(dāng)然,描述每一個(gè)可以想到的組件和/或方法的組合是不可能的,但本領(lǐng)域內(nèi)的普通技術(shù)人員應(yīng)該認(rèn)識(shí)到,許多其他組合和排列都是可能的。因此,該新穎體系結(jié)構(gòu)旨在涵蓋所有這些落入所附權(quán)利要求書的精神和范圍內(nèi)的更改、修改和變化。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1