国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      對(duì)于動(dòng)態(tài)語言的散列表的硬件支持的制作方法

      文檔序號(hào):6495186閱讀:189來源:國(guó)知局
      對(duì)于動(dòng)態(tài)語言的散列表的硬件支持的制作方法【專利摘要】各方面使計(jì)算裝置能夠在硬件中執(zhí)行傳統(tǒng)上基于軟件的操作。對(duì)每一對(duì)象進(jìn)行散列操作進(jìn)入可存儲(chǔ)在軟件中的主控散列表中。所述軟件散列表的一部分可使用專用于散列表處理的特殊指令集寄存器推送到硬件散列表。每當(dāng)軟件過程請(qǐng)求散列表操作(例如,查找)時(shí),檢查所述硬件散列表以確定值是否存在于硬件中。如果所述所請(qǐng)求的值在所述硬件散列表中,那么在單一操作步驟中存取所述所請(qǐng)求的值。如果所述所請(qǐng)求的值不在所述硬件散列表中,那么從所述軟件中的所述主控散列表提取所述所請(qǐng)求的值,且使用特殊指令集寄存器將所述主控散列表的含有所述所提取的值的一部分推送到所述硬件?!緦@f明】對(duì)于動(dòng)態(tài)語言的散列表的硬件支持[0001]相關(guān)申請(qǐng)案[0002]本申請(qǐng)案主張2011年5月27日申請(qǐng)的標(biāo)題為“對(duì)于動(dòng)態(tài)語言的散列表的硬件支持(HardwareSupportforHashtablesinDynamicLanguages)”的第61/491,075號(hào)美國(guó)臨時(shí)專利申請(qǐng)案的優(yōu)先權(quán)權(quán)益,所述臨時(shí)專利申請(qǐng)案的全部?jī)?nèi)容出于所有目的以引用的方式并入本文中?!?br>技術(shù)領(lǐng)域
      】[0003]本申請(qǐng)案大體涉及計(jì)算機(jī)軟件和硬件,且更特定來說涉及用于在加速散列表操作執(zhí)行的同時(shí)減少執(zhí)行散列表操作的能量成本的方法、系統(tǒng)和裝置?!?br>背景技術(shù)
      】[0004]動(dòng)態(tài)腳本語言是計(jì)算機(jī)編程和軟件開發(fā)中的優(yōu)選開發(fā)平臺(tái)。特定來說,JavaScript?是針對(duì)網(wǎng)頁和網(wǎng)絡(luò)應(yīng)用的流行的開發(fā)語言。隨著網(wǎng)頁和網(wǎng)絡(luò)應(yīng)用的用戶需要越來越多的特征,動(dòng)態(tài)腳本語言的復(fù)雜性和量持續(xù)增加。因此,計(jì)算裝置解析、解譯、分析和執(zhí)行腳本花費(fèi)的時(shí)間量增加,從而導(dǎo)致網(wǎng)頁加載時(shí)間變慢且使用戶體驗(yàn)降級(jí)。[0005]例如hvaScHpt?等某些動(dòng)態(tài)軟件語言可視為在其核心處實(shí)施散列表功能性。在計(jì)算機(jī)科學(xué)中,散列表或散列映射圖是使用散列函數(shù)將稱為密鑰(例如,人名)的識(shí)別值映射到其相關(guān)聯(lián)值(例如,其電話號(hào)碼)的數(shù)據(jù)結(jié)構(gòu)。因此,散列表實(shí)施關(guān)聯(lián)性陣列。散列函數(shù)用于將密鑰變換為待尋求對(duì)應(yīng)值的陣列元素(或存儲(chǔ)器位置)的索引(散列)?!?br/>發(fā)明內(nèi)容】[0006]通過將比如JavaScript?等軟件語言的操作表征為基本散列表操作,可使用專門硬件散列表處理器來輔助處理,從而改進(jìn)計(jì)算裝置的效率、速度和能量消耗。本文揭示的各個(gè)方面提供實(shí)施有效散列表的特征的JavaScript?運(yùn)行時(shí)引擎的方法、系統(tǒng)和裝置。在一方面中,編譯JavaScript?代碼以將JavaScript?散列表字符串密鑰編碼為散列表整數(shù)密鑰,且可將經(jīng)編碼散列表整數(shù)密鑰存儲(chǔ)在可由軟件存取的存儲(chǔ)器中。經(jīng)編碼散列表整數(shù)密鑰的一部分可經(jīng)由第一專門硬件指令加載到硬件處理器的專門存儲(chǔ)器中。對(duì)于需要散列表查找的JmScript?操作,可執(zhí)行處理器上的專門硬件指令以確定散列表值是否可由硬件處理器檢索。如果密鑰存儲(chǔ)在硬件處理器中,那么可執(zhí)行基于硬件的散列表查找以傳回對(duì)應(yīng)的散列表整數(shù)密鑰。如果密鑰不存儲(chǔ)在硬件處理器中,那么可執(zhí)行基于軟件的散列表查找以檢索所請(qǐng)求的散列表值,且經(jīng)編碼散列表整數(shù)密鑰的一部分可存儲(chǔ)在軟件可存取存儲(chǔ)器中。在一方面中,可通過將經(jīng)編碼散列表整數(shù)密鑰的所檢索部分經(jīng)由第二專門硬件指令加載到硬件處理器的專門存儲(chǔ)器中來更新硬件處理器的專門存儲(chǔ)器。[0007]—方面包含一種用于執(zhí)行動(dòng)態(tài)軟件語言代碼的方法,所述方法包含以下操作:編譯動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰;將經(jīng)編碼散列表整數(shù)密鑰存儲(chǔ)在可由軟件存取的存儲(chǔ)器中;以及將經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專門硬件指令加載到專門硬件散列表實(shí)施方案中。在一方面方法中,第一專門硬件指令可為將值推送到專門硬件散列表實(shí)施方案的SET指令。一方面方法可進(jìn)一步包含:通過在硬件處理器上執(zhí)行關(guān)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作的專門硬件指令來確定散列表值是否可由硬件處理器檢索;以及在密鑰存儲(chǔ)在硬件處理器中的情況下執(zhí)行基于硬件的散列表查找以傳回對(duì)應(yīng)的散列表整數(shù)密鑰。一方面方法可進(jìn)一步包含:在密鑰不在硬件處理器上的情況下執(zhí)行基于軟件的散列表查找以檢索所請(qǐng)求的散列表值和存儲(chǔ)在軟件可存取存儲(chǔ)器中的經(jīng)編碼散列表整數(shù)密鑰的一部分;以及通過將經(jīng)編碼散列表整數(shù)密鑰的所檢索部分經(jīng)由第二專門硬件指令加載到硬件處理器的專門存儲(chǔ)器中來更新專門硬件散列表實(shí)施方案。在一方面方法中,第二專門硬件指令可為從硬件處理器的專門存儲(chǔ)器檢索值的GET指令。在一方面方法中,將散列表字符串密鑰編碼為散列表整數(shù)密鑰可在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)每一動(dòng)態(tài)軟件語言操作請(qǐng)求執(zhí)行經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。在一方面方法中,動(dòng)態(tài)軟件語言代碼可為JavaScript?代碼,且編譯動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰可包含編譯JavaScript代碼以將JavaScript散列表字符串密鑰編碼為散列表整數(shù)密鑰。在一方面方法中,將JavaScript?散列表字符串密鑰編碼為散列表整數(shù)密鑰可在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)彳士ΙνΑαΜρ--操作請(qǐng)求執(zhí)行經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。在一方面方法中,第一專門硬件指令可為通過將值存儲(chǔ)在存儲(chǔ)器映射位置中而將值推送到專門硬件散列表實(shí)施方案的STORE指令。在一方面方法中,將經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專門硬件散列表實(shí)施方案中可包含在耦合到主處理器的協(xié)處理器上將經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專門硬件散列表實(shí)施方案中。在一方面方法中,編譯動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰可由計(jì)算裝置的第一處理器執(zhí)行,且將經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專門硬件指令加載到專門硬件散列表實(shí)施方案中由計(jì)算裝置的第二處理器執(zhí)行。在一方面方法中,計(jì)算裝置的第二處理器可為專門散列表協(xié)處理器,且所述方法可進(jìn)一步包含:通過在專門散列表協(xié)處理器上執(zhí)行關(guān)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作的第二專門硬件指令而確定是否可檢索散列表值;以及在確定可檢索散列表值的情況下在專門散列表協(xié)處理器上執(zhí)行基于硬件的散列表查找以接收計(jì)算裝置的第一處理器上的對(duì)應(yīng)的散列表整數(shù)密鑰。[0008]另一方面包含一種計(jì)算裝置,所述計(jì)算裝置包含耦合到存儲(chǔ)器的處理器,其中處理器配置有處理器可執(zhí)行指令以執(zhí)行上文描述的各個(gè)方面方法的操作。另一方面包含計(jì)算裝置,所述計(jì)算裝置包含用于執(zhí)行上文描述的各個(gè)方面方法的功能和操作的裝置。另一方面包含非瞬時(shí)處理器可讀媒體,所述非瞬時(shí)處理器可讀媒體上存儲(chǔ)有處理器可執(zhí)行指令,所述處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行上文描述的各個(gè)方面方法的操作?!緦@綀D】【附圖說明】[0009]并入本文且構(gòu)成本說明書的部分的【專利附圖】【附圖說明】本發(fā)明的示范性方面,且連同上文給出的一般描述和下文給出的詳細(xì)描述一起用以闡釋本發(fā)明的特征。[0010]圖1是說明實(shí)例陣列的特征的數(shù)據(jù)結(jié)構(gòu)圖。[0011]圖2是說明關(guān)聯(lián)性陣列的實(shí)例實(shí)施方案的特征的數(shù)據(jù)結(jié)構(gòu)圖。[0012]圖3是說明關(guān)聯(lián)性陣列的散列表實(shí)施方案的特征的數(shù)據(jù)結(jié)構(gòu)圖。[0013]圖4是說明實(shí)例頁表翻譯系統(tǒng)的處理器的功能組件圖。[0014]圖5A是根據(jù)各個(gè)方面用于在硬件中執(zhí)行散列表操作的計(jì)算裝置架構(gòu)的功能組件圖。[0015]圖5B-?是根據(jù)各個(gè)方面用于在硬件中執(zhí)行散列表操作的包含存儲(chǔ)器和處理器組件的替代計(jì)算裝置架構(gòu)的電路框圖。[0016]圖6是適于與各個(gè)方面一起使用的實(shí)例方法的過程流程圖。[0017]圖7是適于與各個(gè)方面一起使用的移動(dòng)計(jì)算裝置的切開透視圖。[0018]圖8是適于與各個(gè)方面一起使用的實(shí)例計(jì)算機(jī)的說明?!揪唧w實(shí)施方式】[0019]將參看附圖詳細(xì)描述各個(gè)方面。只要可能,將在整個(gè)圖式中使用相同的參考標(biāo)號(hào)來指代相同或相似的部分。對(duì)具體實(shí)例和實(shí)施方案做出的參考是出于說明性目的,且不希望限制本發(fā)明或權(quán)利要求書的范圍。[0020]本文使用詞語“示范性”來表示“充當(dāng)實(shí)例、例子或說明”。本文描述為“示范性”的任何實(shí)施方案均不一定解釋為與其它實(shí)施方案相比是優(yōu)選或有利的。[0021]術(shù)語“電子裝置”、“移動(dòng)裝置”和“計(jì)算裝置”可在本文互換使用以指代個(gè)人計(jì)算機(jī)、蜂窩式電話、個(gè)人數(shù)據(jù)助理(PDA)、掌上型計(jì)算機(jī)、平板計(jì)算機(jī)、無線電子郵件接收器(例如,Bku:kbCITy?裝置)、具有多媒體因特網(wǎng)功能的蜂窩式電話,以及包含可編程處理器的類似個(gè)人電子裝置中的任一者或全部。雖然各個(gè)方面在可具有有限處理能力的移動(dòng)裝置(例如,蜂窩式電話)中尤其有用,但所述方面通??捎糜趫?zhí)行以動(dòng)態(tài)、腳本撰寫和/或標(biāo)記語言編寫的腳本和/或應(yīng)用的任何計(jì)算裝置。[0022]術(shù)語“動(dòng)態(tài)語言”和“腳本語言”在本申請(qǐng)案中一般地且可互換地使用以指代任何動(dòng)態(tài)語言、腳本語言,或指代用于編寫在運(yùn)行時(shí)解譯和/或編譯的程序(本文為“腳本”)的任何所解譯語言。這些術(shù)語還可指代在所管理運(yùn)行時(shí)運(yùn)行的任何語言。因此,出于本申請(qǐng)案的目的,術(shù)語“動(dòng)態(tài)語言”和“腳本語言”不應(yīng)限于從源代碼或字節(jié)碼解譯的語言,也不應(yīng)限于連同傳統(tǒng)上編譯為本機(jī)代碼的程序一起執(zhí)行的語言。本申請(qǐng)案范圍內(nèi)的動(dòng)態(tài)和腳本語言的實(shí)例包含(例如)hivaScripl?、perl、Python和Ruby,以及將來可能開發(fā)的Java和其它語言。[0023]為便于參考,使用hvaSa'ipl?術(shù)語描述各個(gè)方面。然而,除非權(quán)利要求書中明確敘述,否則此術(shù)語的使用以及JavaScript?實(shí)例的使用不應(yīng)解釋為將權(quán)利要求書的范圍限于特定軟件語言或技術(shù)。[0024]圖1-3說明各個(gè)已知數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)結(jié)構(gòu)元件和基本操作。由于這些結(jié)構(gòu)是眾所周知的,所以已省略許多細(xì)節(jié)(例如,不同類型數(shù)據(jù)的存儲(chǔ)、存儲(chǔ)器大小等)以便集中于對(duì)相關(guān)特征的描述。[0025]圖1是存儲(chǔ)雇員識(shí)別符(ID)值的實(shí)例陣列100的說明。陣列通常將若干值循序存儲(chǔ)在存儲(chǔ)器中,使得每一值可為通過其在存儲(chǔ)器中的相對(duì)位置的參考(即,索引)。舉例來說,圖1說明實(shí)例陣列100循序存儲(chǔ)雇員ID值,每一值(例如,ID)與一個(gè)索引(例如,1、2、3)相關(guān)聯(lián)。陣列的循序性質(zhì)意味著基于索引從陣列檢索值的指令(例如,getArrayItem[2])通常要求系統(tǒng)存取陣列中的第一元件的存儲(chǔ)器位置(例如,存儲(chǔ)器位置“1005”),且將存儲(chǔ)器位置遞增索引值(例如,“2”)以定位所要項(xiàng)目(例如,存儲(chǔ)器位置“1007”處的值“489954”)。陣列內(nèi)的特定值的位置通常是陣列未知的。為找到特定值,可檢查陣列中的每一項(xiàng)目直到找到所述值為止,且識(shí)別與所述值相關(guān)聯(lián)的索引。[0026]圖2是關(guān)聯(lián)性陣列200的實(shí)例實(shí)施方案的說明。關(guān)聯(lián)性陣列是由唯一密鑰集合和值集合組成的抽象數(shù)據(jù)類型,其中每一密鑰與一個(gè)值或值集合相關(guān)聯(lián)。圖2說明關(guān)聯(lián)性陣列200如何含有識(shí)別可存儲(chǔ)所要值(例如,雇員ID)的其它存儲(chǔ)器位置(例如,存儲(chǔ)器位置20、105和155)的唯一密鑰值(例如,整數(shù)值20、105和155)。圖2還說明可相對(duì)于例如雇員姓名204、電話號(hào)碼206、地址208和職位210等其它相關(guān)信息存儲(chǔ)每一雇員ID202。以此方式,當(dāng)定位所要值(例如,雇員ID)時(shí),還可基于所要值在存儲(chǔ)器中相對(duì)于所要值的位置來定位與所要值相關(guān)的其它信息。舉例來說,基于值的索引檢索值的指令(例如,getArrayItem[2])可指示處理器存取陣列中的第一元件的存儲(chǔ)器位置(例如,存儲(chǔ)器位置1005),將所述存儲(chǔ)器位置遞增索引值(例如,2)以定位所要密鑰值(例如,存儲(chǔ)器位置1007處的密鑰155),存取與密鑰值相關(guān)聯(lián)的第二存儲(chǔ)器位置(例如,存儲(chǔ)器位置155),且傳回存儲(chǔ)在第二存儲(chǔ)器中的值(或到所述值的指針)(例如,存儲(chǔ)器位置155處的值489954)。因此,與所要值相關(guān)的信息(其相對(duì)于所要值存儲(chǔ))可與所要值同時(shí)檢索。[0027]雖然上文參看圖2論述的實(shí)例實(shí)施方案允許多個(gè)項(xiàng)目與單一陣列元件(即,密鑰)相關(guān)聯(lián),但存取陣列元件仍是循序過程(例如,索引值仍為偏移)。在此類型的數(shù)據(jù)結(jié)構(gòu)中,無法用高效的方式在不遍歷、搜索和/或分類陣列的情況下確定給定值的位置(例如,索引)。雖然存在用于分類和/或搜索陣列的許多技術(shù),但陣列操作仍相對(duì)昂貴且緩慢。[0028]圖3說明關(guān)聯(lián)性陣列的實(shí)例散列表實(shí)施方案。散列表使用散列函數(shù)以通過將密鑰值變換為待尋求對(duì)應(yīng)值的陣列元件的索引(例如,存儲(chǔ)器位置)而將密鑰映射到其相關(guān)聯(lián)值。圖3說明其中陣列存儲(chǔ)器位置(例如,存儲(chǔ)器位置1005、1006、1007)可含有雇員ID作為密鑰值的實(shí)例。可對(duì)密鑰值(例如,雇員id)執(zhí)行散列函數(shù)以產(chǎn)生識(shí)別對(duì)應(yīng)值的位置(例如,存儲(chǔ)器位置739、846、954)的散列值(例如,846、739、954)。散列函數(shù)可使用大量可用數(shù)學(xué)公式的任一者將密鑰值轉(zhuǎn)換為散列值。在圖3中說明的實(shí)例中,散列函數(shù)使用密鑰值的最后三位作為散列值且存儲(chǔ)相對(duì)于散列識(shí)別的位置的相關(guān)信息(例如,姓名)。以此方式,從散列表檢索值的指令(例如,getltem[489954])簡(jiǎn)單地要求對(duì)密鑰值(例如,489954)進(jìn)行散列操作,且存取散列值(954)的存儲(chǔ)器位置以定位所要項(xiàng)目(例如,存儲(chǔ)器位置954處的JohnDoe)。[0029]因?yàn)樯⒘斜矸浅?焖偾腋咝?,所以?shí)施基本散列表功能性大大改進(jìn)了效率、速度、能量消耗,以及許多其它性能因素。然而,散列表通常為軟件結(jié)構(gòu),且現(xiàn)代硬件制造商不提供提供本機(jī)散列表功能性的處理器。[0030]各個(gè)方面提供用于允許應(yīng)用在硬件中執(zhí)行散列表操作(例如,查找)的方法、系統(tǒng)和裝置。散列表操作的執(zhí)行可由微處理器上的特殊指令寄存器經(jīng)由存儲(chǔ)器映射輸入/輸出(MMIO)加速器裝置和/或通過使用一個(gè)或一個(gè)以上協(xié)處理器來輔助或控制。各個(gè)方面還將散列表功能性與局部性原理組合以大大改進(jìn)實(shí)施基本散列表功能性的軟件語言(例如,JavaScripl?)的性能。[0031]“局部性原理”是通常與設(shè)計(jì)虛擬存儲(chǔ)器和高速緩沖存儲(chǔ)器相關(guān)聯(lián)的原理。局部性原理通常陳述,如果一個(gè)過程請(qǐng)求存取存儲(chǔ)器中的項(xiàng)目,那么極有可能在不久的將來某一時(shí)間請(qǐng)求存取接近所述存儲(chǔ)器的另一項(xiàng)目。根據(jù)所述原理,獲取其中定位所述項(xiàng)目的整個(gè)存儲(chǔ)器塊(與僅檢索所請(qǐng)求項(xiàng)目相比)且將所獲取塊移動(dòng)到更快且更可評(píng)估存儲(chǔ)器中以供將來存取通常是有益的。[0032]硬件系統(tǒng)實(shí)施利用局部性原理的技術(shù)是有益的。如今的微處理器在比現(xiàn)代存儲(chǔ)器快得多的速度下操作。因此,處理過程中的主要硬件瓶頸是其存取外部存儲(chǔ)器所花費(fèi)的時(shí)間。舉例來說,歸因于存儲(chǔ)器的相對(duì)緩慢的速度以及因此實(shí)現(xiàn)存儲(chǔ)器存取所需的時(shí)間,微處理器可進(jìn)入涉及存儲(chǔ)器讀取或?qū)懭氩僮鞯奶幚砥鞑僮髦g的等待狀態(tài)(或?qū)⑻幚斫唤o不同線程)以便允許存儲(chǔ)器有足夠的時(shí)間準(zhǔn)備好進(jìn)行下一操作。為縮短此處理器等待時(shí)間,現(xiàn)代計(jì)算機(jī)架構(gòu)使用使存儲(chǔ)器存取的速度與處理器的操作速度匹配的高速緩沖存儲(chǔ)器。高速緩沖存儲(chǔ)器是處理器可比計(jì)算裝置中的其它存儲(chǔ)器(例如,硬盤、基于電容器的存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、只讀存儲(chǔ)器等)快得多地存取的小型、昂貴且快速的存儲(chǔ)器。每當(dāng)請(qǐng)求給定存儲(chǔ)器地址處的字節(jié)時(shí),處理器首先試圖從較快高速緩沖存儲(chǔ)器獲得數(shù)據(jù)。然而,如果高速緩沖存儲(chǔ)器不含有所請(qǐng)求數(shù)據(jù),那么處理器進(jìn)入等待狀態(tài),此時(shí)從其它較慢系統(tǒng)存儲(chǔ)器的一者加載所請(qǐng)求數(shù)據(jù)。因此,高速緩沖存儲(chǔ)器的效力(例如,處理速度的總體改進(jìn))與高速緩沖存儲(chǔ)器含有處理器請(qǐng)求的數(shù)據(jù)的頻率直接相關(guān)。[0033]為使性能最大化,處理器或高速緩沖存儲(chǔ)器控制器可預(yù)測(cè)處理器接下來或在將來操作中即將需要的數(shù)據(jù),且在處理器請(qǐng)求所述數(shù)據(jù)之前將所述數(shù)據(jù)加載到高速緩沖存儲(chǔ)器中。由于定位給定存儲(chǔ)器位置比從存儲(chǔ)器讀取數(shù)據(jù)慢得多,所以現(xiàn)代高速緩沖存儲(chǔ)器利用局部性原理(即,處理器趨向于在給定時(shí)間點(diǎn)僅存取地址空間的小部分)來加載整個(gè)數(shù)據(jù)塊,預(yù)期存儲(chǔ)在所參考存儲(chǔ)器附近的數(shù)據(jù)也可能在不久的將來被處理器參考。[0034]除了利用局部性原理改進(jìn)總體處理器性能外,各個(gè)操作系統(tǒng)的現(xiàn)代頁表翻譯系統(tǒng)還使用局部性原理將頁表從虛擬存儲(chǔ)器翻譯到物理存儲(chǔ)器。因此,操作系統(tǒng)可同時(shí)運(yùn)行比原本將納入物理存儲(chǔ)器中更多的過程。[0035]圖4說明實(shí)施實(shí)例頁表翻譯系統(tǒng)400的計(jì)算裝置的功能組件。如圖4中說明,在計(jì)算裝置上運(yùn)行的操作系統(tǒng)402可利用物理存儲(chǔ)器406與虛擬存儲(chǔ)器408的組合來支持大量過程410的同時(shí)執(zhí)行。物理存儲(chǔ)器406提供受實(shí)際上安裝在計(jì)算機(jī)中的存儲(chǔ)器模塊的大小和數(shù)目限制的地址空間(存儲(chǔ)器1-η)。相比之下,虛擬存儲(chǔ)器408提供允許計(jì)算裝置同時(shí)運(yùn)行比實(shí)際上納入物理存儲(chǔ)器406中多的過程的大得多的地址空間(存儲(chǔ)器Ι-m)。即,虛擬存儲(chǔ)器408的存在允許計(jì)算裝置主要從較快但較小的存儲(chǔ)器(例如,物理存儲(chǔ)器406)工作,同時(shí)能夠可以存取存儲(chǔ)在較慢但大得多的大容量存儲(chǔ)器(例如,虛擬存儲(chǔ)器408)中的信息。每當(dāng)過程請(qǐng)求存取不在物理存儲(chǔ)器406中的信息時(shí),計(jì)算裝置可從虛擬存儲(chǔ)器408獲取信息且將所請(qǐng)求信息(或含有信息的塊)移動(dòng)到物理存儲(chǔ)器406。頁表412可用于將物理存儲(chǔ)器406映射到虛擬存儲(chǔ)器408。下文更詳細(xì)論述頁表412。[0036]圖4說明操作系統(tǒng)402可包含頁表412,頁表412存儲(chǔ)用于實(shí)施虛擬存儲(chǔ)器408與物理存儲(chǔ)器406之間的地址翻譯方案(即,地址映射)的映射信息。同樣,硬件404可包含含有來自頁表412的最近使用的映射的翻譯查找緩沖器414。每當(dāng)需要虛擬到物理地址翻譯時(shí),系統(tǒng)可首先檢查翻譯查找緩沖器414以確定緩沖器414是否含有必要的映射信息。如果翻譯查找緩沖器414含有必要的映射信息(例如,找到匹配),那么將物理存儲(chǔ)器地址提供到發(fā)出請(qǐng)求的過程,且數(shù)據(jù)存取繼續(xù)進(jìn)行。然而,如果未找到匹配,那么操作系統(tǒng)402檢查頁表412以確定頁表412是否含有所請(qǐng)求的映射信息。如果在頁表412中找到映射信息,那么可將信息(或其含有信息的塊)寫入到硬件404的翻譯緩沖器414,其后數(shù)據(jù)存取繼續(xù)進(jìn)行。[0037]如上文論述,頁表412可將物理存儲(chǔ)器406映射到虛擬存儲(chǔ)器408,且翻譯查找緩沖器414可含有最近使用和/或預(yù)測(cè)的物理存儲(chǔ)器映射信息的塊。依據(jù)映射的性質(zhì),可將翻譯查找緩沖器414視為硬件散列表的原始硬件實(shí)施方案。然而,即使當(dāng)就此方面考慮時(shí),當(dāng)前解決方案(例如,頁表翻譯系統(tǒng))也在處理器的高度保護(hù)層中實(shí)施此映射,使得其僅在“超級(jí)用戶模式”中、僅對(duì)于操作系統(tǒng)過程,且僅針對(duì)一種類型的應(yīng)用(例如,頁表查找)是可存取的。[0038]各個(gè)方面提供包含專門處理器電路的系統(tǒng)、方法和裝置,所述專門處理器電路實(shí)施可供應(yīng)用使用的基于硬件的散列操作。各個(gè)方面準(zhǔn)許對(duì)硬件散列操作的用戶層級(jí)(例如,用戶模式)許可/存取。各個(gè)方面提供產(chǎn)生代碼的編譯器,所述代碼可在軟件和硬件散列表邏輯兩者中解譯和/或執(zhí)行。各個(gè)方面使應(yīng)用開發(fā)者能夠利用例如hvaScript?等各種軟件語言的基本結(jié)構(gòu),來改進(jìn)軟件程序和過程的效率和執(zhí)行/解譯。[0039]如上文提及,比如JavaScript?等某些軟件語言可視為在其核心處實(shí)施散列表功能性。JavaScript?是其中最簡(jiǎn)單結(jié)構(gòu)為“對(duì)象”數(shù)據(jù)類型的對(duì)象定向腳本語言。在JavaScript?中,對(duì)象實(shí)施為指定特性的集合,所述指定特性簡(jiǎn)單地為另一JavaScript?對(duì)象擁有的JavaScript?對(duì)象(即,其是另一對(duì)象本地的對(duì)象)。特性可使用點(diǎn)運(yùn)算符(例如,“object,property”)或括弧(例如,“object[property]”)來存取??紤]到散列表使用類似語法和邏輯定位/存取元件,每一JavaScript?對(duì)象可視為散列表實(shí)施方案。舉例來說,在JavaScript?φ,向?qū)ο蟆唉稀钡奶匦浴唉帧睂懭?例如,ο.χ=10)可視為等效于對(duì)象“ο”中的散列插入(例如,ο[X]=10),且讀取對(duì)象“O”的特性“χ”(例如,ζ=ο.χ)可視為等效于對(duì)象“O”中的散列讀取(例如,ζ=ο[χ])。當(dāng)就此方面考慮時(shí),每個(gè)JavaScript?操作可表征為從字符串值(密鑰)經(jīng)過另一字符串或數(shù)字值(值)的特殊類型的散列操作,且每個(gè)JavaScript?對(duì)象可視為關(guān)聯(lián)性陣列的散列表實(shí)施方案。[0040]通過將每一JavaScripl?操作表征為基本上是散列表操作,可使用專門散列表處理器來處理JavaScript?對(duì)象。專門散列表處理器可包含經(jīng)保留用于執(zhí)行散列表操作的電路(內(nèi)嵌在微處理器中)。處理器可配置有特殊指令寄存器,其允許應(yīng)用存取硬件散列表邏輯以執(zhí)行hvaScript?功能性。特殊指令寄存器可使用經(jīng)修改指令集架構(gòu)(ISA)存取,所述ISA允許軟件應(yīng)用以減少數(shù)目的指令存取基于硬件的散列操作。舉例來說,可將“get”機(jī)器語言指令和“set”機(jī)器語言指令添加到專門散列表處理器,使得.hwaScripl?編譯器和應(yīng)用可更容易地使用單一指令(例如,GET或SET)在硬件中執(zhí)行散列表查找。還可經(jīng)由正常ISA與特殊寄存器或存儲(chǔ)器地址的組合來存取散列表的硬件實(shí)施方案。[0041]圖5A說明用于在硬件與軟件的組合中執(zhí)行散列表操作(例如,JavaScript)的實(shí)例計(jì)算裝置架構(gòu)500。圖5A說明計(jì)算裝置架構(gòu)可包含與硬件504通信的操作系統(tǒng)502,硬件504具有專門處理器510和一個(gè)或一個(gè)以上硬件散列表518。專門處理器510可包含能夠執(zhí)行例如將值讀取和寫入到硬件散列表518等散列表操作的專門電路。處理器510可進(jìn)一步經(jīng)配置以包含“get”機(jī)器語言指令寄存器506和“set”機(jī)器語言指令寄存器508,其一起提供對(duì)專門電路和硬件散列表518的存取。[0042]圖5B說明用于在硬件與軟件的組合中執(zhí)行散列表操作的硬件504的實(shí)例實(shí)施例硬件架構(gòu)530。此實(shí)施例硬件架構(gòu)530可包含中央處理單元520,其包含用于執(zhí)行算術(shù)和邏輯運(yùn)算的算術(shù)邏輯單元(ALU)522、用于執(zhí)行浮點(diǎn)運(yùn)算(例如,加法、減法、乘法、除法、平方根等)的浮點(diǎn)單元(FPU)524,以及硬件散列表實(shí)施單元528。硬件散列表實(shí)施單元528可包含對(duì)應(yīng)于上文論述的硬件散列表518的用于存儲(chǔ)散列表值的寄存器/存儲(chǔ)器。這些寄存器和/或存儲(chǔ)器有時(shí)在本文中稱為散列表存儲(chǔ)器。[0043]圖5C說明用于在硬件與軟件的組合中執(zhí)行散列表操作的硬件504的另一實(shí)例實(shí)施例硬件架構(gòu)560。此實(shí)施例硬件架構(gòu)560可包含中央處理單元(CPU)520,其包含算術(shù)邏輯單元(ALU)522和浮點(diǎn)單元(FPU)524,類似于上文論述的架構(gòu)530。硬件架構(gòu)560還可包含與CPU520分離的硬件散列表實(shí)施單元528。舉例來說,硬件散列表實(shí)施單元528可在專門協(xié)處理器(未說明)中,所述協(xié)處理器執(zhí)行散列操作且將結(jié)果經(jīng)由并行或串行輸入/輸出端口傳送到CPU520。[0044]圖說明用于在硬件與軟件的組合中執(zhí)行散列表操作的另一實(shí)例實(shí)施例硬件架構(gòu)590。此實(shí)施例硬件架構(gòu)590可包含中央處理單元(CPU)520,其包含算術(shù)邏輯單元(ALU)522和浮點(diǎn)單元$?山524,類似于上文論述的架構(gòu)530、560。硬件架構(gòu)560還可包含與CPU520分離的硬件散列表實(shí)施方案528和存儲(chǔ)器映射輸入/輸出(MMIO)加速器裝置592。硬件架構(gòu)590可利用MMIO加速器裝置592在CPU520外部執(zhí)行散列操作且將結(jié)果經(jīng)由處理器總線傳送到CPU520。[0045]返回到圖5A,操作系統(tǒng)502可包含具有編譯器散列模塊516的編譯器512,編譯器散列模塊516在編譯時(shí)間將JavaScript?字符串映射(例如,散列操作)到整數(shù)值。在一方面中,此映射僅進(jìn)行一次。在一方面中,所述映射可用于產(chǎn)生hwaScripl?對(duì)象的軟件散列表514表示。此映射很重要,因?yàn)橛糜谔幚砩⒘斜淼膫鹘y(tǒng)方法不能用于在硬件中處理JavaScript?對(duì)象。如上文論述,JavaScript?對(duì)象可視為將字符串值(密鑰)鏈接到另一字符串或數(shù)字值(值)的特殊類型的散列表。將字符串值用作密鑰(而非整數(shù)值)使對(duì)來自散列表的值進(jìn)行散列操作、存儲(chǔ)和檢索的過程變復(fù)雜。舉例來說,字符串可含有任何數(shù)目的字符(即,其可為任何長(zhǎng)度),而整數(shù)密鑰值含有已知數(shù)目的位或字節(jié)。將字符串用作密鑰值排除使用簡(jiǎn)單的數(shù)學(xué)算法來產(chǎn)生散列值,例如使用上文參看圖3論述的密鑰的最后幾位。[0046]出于這些和其它原因,對(duì)具有字符串值作為密鑰的散列表執(zhí)行散列表操作需要執(zhí)行數(shù)千個(gè)軟件指令。當(dāng)對(duì)JavaScript?對(duì)象執(zhí)行這些散列操作時(shí)尤其如此,其中嵌套散列(JavaScript?的特征)的存在可將單一散列表查找請(qǐng)求轉(zhuǎn)變?yōu)閿?shù)千散列表查找請(qǐng)求,其每一者可能需要執(zhí)行數(shù)千個(gè)軟件指令。[0047]用于使用字符串作為散列表密鑰的當(dāng)前解決方案需要無法在硬件中有效實(shí)施的較長(zhǎng)且復(fù)雜的基于軟件的處理。為克服這些限制,編譯器散列模塊516可在編譯時(shí)間(即,與運(yùn)行時(shí)對(duì)比)以允許由硬件組件執(zhí)行散列表操作(例如,JavaScript?代碼)的方式將JavaScript?字符串映射到整數(shù)值。編譯器散列模塊516可產(chǎn)生軟件散列表514,其是多個(gè)散列表(例如,hvaScripl?對(duì)象)中的一個(gè)散列表(例如,字符串-整數(shù)映射)。此雙散列操作(或嵌套散列表)允許將軟件散列表514的一些部分存儲(chǔ)在硬件散列表518中,使得所存儲(chǔ)的信息可使用單一讀取或單一寫入操作來存取。這將執(zhí)行來自通常需要的數(shù)千個(gè)散列操作的每一散列操作所需的指令數(shù)目減少為單一指令(例如,讀取或?qū)懭?。[0048]如上文提及,每個(gè)JavaScript?對(duì)象可視為散列表,且一般化散列表處理器(實(shí)施在硬件中)可用于處理JavaScript?代碼。舉例來說,每一JavaScript?對(duì)象可在處理器510的一般化散列表電路中以比當(dāng)前解決方案明顯少的指令處理。此減少數(shù)目的所需指令大大改進(jìn)JaVaScripi?應(yīng)用的總體速度和效率。[0049]返回圖5,編譯器散列模塊516可僅執(zhí)行用于字符串-整數(shù)映射的過程一次,這允許由硬件以單一指令執(zhí)行后續(xù)散列表更新和查找。此映射還允許將傳統(tǒng)上內(nèi)嵌在實(shí)時(shí)編譯器代碼中的一些散列表支持移動(dòng)到指令集架構(gòu)(ISA)擴(kuò)展部分,例如GET指令和SET指令。[0050]在一方面中,處理器可具有用于處理GET和SET指令的三個(gè)寄存器,其可以用三個(gè)寄存器參數(shù)執(zhí)行。前兩個(gè)參數(shù)(例如,rl、r2)可用于計(jì)算密鑰,且第三參數(shù)可用于復(fù)制GET指令的所得值且用于存儲(chǔ)源自SET指令的值。以下偽碼說明三個(gè)參數(shù)的使用:[0051]getrl,r2,r3//r3=HASH[key(rl,r2)][0052]setrl,r2,r3//HASH[key(rI,r2)]=r3[0053]在以上偽碼中,前兩個(gè)寄存器(對(duì)應(yīng)于參數(shù)rl和r2)是源寄存器,且第三寄存器(對(duì)應(yīng)于參數(shù)r3)是目的地寄存器。將兩個(gè)寄存器(rl、r2)用作密鑰有助于在對(duì)象間分離條目且輔助處理嵌套散列,且因此非常適于例如JavaScript?等語言。舉例來說,在JavaScript?的情況下,密鑰的一個(gè)分量(例如,rl)可映射到JavaScript?對(duì)象,且密鑰(例如,r2)的另一分量可映射到JavaScript?對(duì)象的特性?!懊荑€”表示由rl和r2構(gòu)造散列表密鑰的數(shù)學(xué)變換?!吧⒘小笔腔谒?jì)算密鑰執(zhí)行值查找的實(shí)際散列表實(shí)施方案。[0054]在一方面中,可使指令寄存器506、508可由操作系統(tǒng)在用戶模式中存取(與頁表翻譯所需的超級(jí)用戶模式對(duì)比)。這允許在操作系統(tǒng)上執(zhí)行的任何過程或應(yīng)用在用戶模式中操作的同時(shí)發(fā)布上文提及的GET和SET指令。在一方面中,硬件散列表516可高速緩存散列表值的塊,使得基于硬件的散列功能性的組合在用戶模式中可供如下文更充分論述的每一過程使用。[0055]每當(dāng)軟件過程請(qǐng)求散列操作(例如,查找)時(shí),計(jì)算裝置處理器可首先檢查硬件(即,高速緩沖存儲(chǔ)器)以經(jīng)由GET指令查看所請(qǐng)求散列值的存在。如果所述值在硬件(SP,高速緩沖存儲(chǔ)器)中,那么指令寄存器可簡(jiǎn)單地傳回所請(qǐng)求的值,從而允許在一個(gè)指令中完成散列操作。如果GET指令指示所請(qǐng)求項(xiàng)目不在硬件散列表514中,那么可作出對(duì)軟件散列表514查找過程的調(diào)用。查找過程可在軟件中(例如,在軟件散列表514上)執(zhí)行所請(qǐng)求的散列操作,且傳回將來可能存取的所請(qǐng)求的值和周圍值兩者。這些值可推送到硬件高速緩沖存儲(chǔ)器504且存儲(chǔ)在硬件散列表516中(例如,經(jīng)由SET指令),使得其容易由處理器510使用用于將來處理。以此方式,各個(gè)方面通過將所產(chǎn)生的散列信息塊經(jīng)由SET指令(例如,在“set”寄存器508上發(fā)布)推送到處理器510高速緩沖存儲(chǔ)器而利用局部性原理。此操作使得能夠?qū)砜赡艽嫒〉闹荡鎯?chǔ)在硬件散列表514高速緩沖存儲(chǔ)器中以供后續(xù)操作中的處理器快速存取(例如,經(jīng)由單一指令)。[0056]為產(chǎn)生軟件散列表514,編譯器512可在代碼編譯期間產(chǎn)生將唯一ID指派到每個(gè)字符串字面值的全局字符串表。對(duì)于動(dòng)態(tài)對(duì)象,代替于具有高速緩沖存儲(chǔ)器,編譯器可使用保持.1avaScri[H?特性的值的陣列。為存取特性,編譯器可查找特性名稱的字符串ID且使用另一散列表,所述另一散列表映射對(duì)象ID與特性字符串ID的組合且將所述組合映射到整數(shù),所述整數(shù)表示指示特性值的對(duì)象中的字段陣列索引。以下偽碼說明此過程:[0057]//ζ=ο.χ[0058]IDl=StringtoIDHash[“χ”];//第一散列查找[0059]ID2=0.1D[0060]ID3=IdToIndexHash[IDl,ID2]//第二散列查找[0061]//使用GET指令[0062]Z=0.Fields[ID3][0063]在以上偽碼中,第一散列查找僅發(fā)生一次且在編譯時(shí)間發(fā)生。另一方面,第二散列查找可每當(dāng)執(zhí)行代碼時(shí)發(fā)生。然而,由于第二散列查找使用GET指令,所以僅執(zhí)行一個(gè)指令,條件是所請(qǐng)求的散列信息在硬件散列表中。[0064]如上文論述,可將散列密鑰經(jīng)由SET指令推送到硬件,使得將來最可能存取的值可存儲(chǔ)在硬件(即,高速緩沖存儲(chǔ)器)中。以下偽碼說明SET指令的使用:[0065]//ο.x=z[0066]IDl=StringtoIDHash[“χ”];[0067]ID2=0.1D[0068]ID3=IdToIndexHash[IDl,ID2]//使用GET指令[0069]IF(ID3==-1){[0070]ID3=0.Fields.Legth[0071]IdToIndexHash[IDl,ID2]=ID3;//使用SET指令[0072]}[0073]0.Fields[ID3]=z[0074]圖6說明用于在硬件與軟件的組合中執(zhí)行散列表操作(例如,JavaScript?操作)的方面方法600。在方法600中框602處,編譯器可通過將唯一ID指派到每個(gè)字符串字面值(例如,JavaScript?對(duì)象)而將hivaScripl?字符串密鑰映射到整數(shù),以在編譯時(shí)間產(chǎn)生主控散列表(其存儲(chǔ)在軟件中)。在框604中,可將具有散列表電路的硬件處理器的專門指令寄存器(ISA擴(kuò)展部分)初始化,使得其可在用戶模式中由軟件使用。在確定框606中,處理器可等待一個(gè)或一個(gè)以上軟件過程請(qǐng)求散列表操作(例如,查找)。如果軟件過程請(qǐng)求散列操作(即,確定框608=“是”),那么可在框608中在專門指令寄存器上向處理器發(fā)布GET指令。在框610中,可使用散列表電路來存取硬件散列表以確定對(duì)應(yīng)于所請(qǐng)求散列表操作的值是否在硬件散列表中。在確定框612中,處理器可確定硬件散列表是否含有所請(qǐng)求的值。如果所請(qǐng)求的值在硬件散列表中(即,確定框612=“是”),那么專門指令寄存器可傳回所請(qǐng)求的值,使得散列表操作由硬件在框614中執(zhí)行。此操作可僅使用一個(gè)指令執(zhí)行,且結(jié)果可提供到軟件過程。如果所請(qǐng)求的值不在硬件散列表中(即,確定框612=“否”),那么在框616中硬件可通知軟件過程所述值不可用。在框616中,軟件過程可請(qǐng)求來自主控散列表的值,使得散列表操作由軟件執(zhí)行。在框618中,軟件過程可在專門指令寄存器上發(fā)布SET指令以將含有所請(qǐng)求值的散列表值的塊推送到硬件散列表。一旦在框614或618中傳回所請(qǐng)求值,處理器就可返回到確定框606以等待一個(gè)或一個(gè)以上軟件過程請(qǐng)求散列表操作(例如,查找)。[0075]圖7是適于與各方面的任一者一起使用的計(jì)算裝置的系統(tǒng)框圖。典型的計(jì)算裝置700可包含耦合到內(nèi)部大容量存儲(chǔ)器702(例如,快閃存儲(chǔ)器)、顯示器703且耦合到揚(yáng)聲器764的處理器701。另外,計(jì)算裝置700還可包含用于發(fā)送和接收電磁輻射的天線704,其可連接到無線數(shù)據(jù)鏈路和/或耦合到處理器701的蜂窩式電話收發(fā)器705。用于執(zhí)行硬件中的散列表操作的各個(gè)方面方法可由處理器701和存儲(chǔ)器702的部分執(zhí)行?;蛘?,計(jì)算裝置700內(nèi)或耦合到計(jì)算裝置700的專門模塊可執(zhí)行所述方面方法。[0076]上文描述的方面可在多種硬件配置中實(shí)施,包含利用存儲(chǔ)器映射輸入/輸出(MMIO)加速器裝置和協(xié)處理器的配置。舉例來說,MMIO裝置可執(zhí)行對(duì)應(yīng)于上文論述的GET和SET指令的LOAD和STORE操作。在各個(gè)方面中,可使用硬件輔助的虛擬機(jī)架構(gòu)來實(shí)施各個(gè)特征。[0077]上文描述的方面還可在多種計(jì)算裝置中實(shí)施,例如圖8中說明的膝上型計(jì)算機(jī)800。膝上型計(jì)算機(jī)800將通常包含耦合到易失性存儲(chǔ)器802和大容量非易失性存儲(chǔ)器(例如,磁盤驅(qū)動(dòng)器803)的處理器801。計(jì)算機(jī)800還可包含耦合到處理器801的軟盤驅(qū)動(dòng)器804和壓縮光盤(⑶)驅(qū)動(dòng)器805。計(jì)算裝置800還可包含耦合到處理器801的若干連接器端口,其用于建立數(shù)據(jù)連接或接納外部存儲(chǔ)器裝置,例如USB或FircWin^連接器插口,或用于將處理器801耦合到網(wǎng)絡(luò)的其它網(wǎng)絡(luò)連接電路806。在筆記本配置中,計(jì)算機(jī)外殼包含觸摸板807、鍵盤808和顯示器809,其全部耦合到處理器801。計(jì)算裝置的其它配置可包含如眾所周知耦合到處理器(例如,經(jīng)由USB輸入)的計(jì)算機(jī)鼠標(biāo)或軌跡球。[0078]處理器701、801可為可由軟件指令(應(yīng)用)配置以執(zhí)行多種功能(包含下文描述的各個(gè)方面的功能)的任何可編程微處理器、微計(jì)算機(jī)或多個(gè)處理器芯片。在一些移動(dòng)接收器裝置中,可提供多個(gè)處理器701,例如一個(gè)處理器專用于無線通信功能且一個(gè)處理器專用于運(yùn)行其它應(yīng)用。通常,軟件應(yīng)用可在其被存取并加載到處理器701、801中之前存儲(chǔ)在內(nèi)部存儲(chǔ)器702、802、803中。在各個(gè)方面中,處理器701、801還包含足以存儲(chǔ)應(yīng)用軟件指令的內(nèi)部存儲(chǔ)器以及用于存儲(chǔ)散列表或散列表值的塊的高速緩沖存儲(chǔ)器。[0079]前述方法描述和過程流程圖僅作為說明性實(shí)例而提供,且不希望需要或暗示必須以所呈現(xiàn)的次序執(zhí)行各種方面的步驟。如所屬領(lǐng)域的技術(shù)人員將了解,可以任何次序執(zhí)行以上方面中的步驟的次序。例如“隨后”、“接著”、“接下來”等詞語不希望限制步驟的次序;這些詞語僅用于引導(dǎo)讀者通讀對(duì)方法的描述。此外,以單數(shù)形式(例如,使用冠詞“一”或“所述”)對(duì)權(quán)利要求元件的任何參考不應(yīng)解釋為將所述元件限于單數(shù)形式。[0080]結(jié)合本文中所揭示的方面而描述的各種說明性邏輯塊、模塊、電路和算法步驟可被實(shí)施為電子硬件、計(jì)算機(jī)軟件或兩者的組合。為清楚說明硬件與軟件的此互換性,上文已大致關(guān)于其功能性而描述了各種說明性組件、塊、模塊、電路和步驟。所述功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用及施加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。所屬領(lǐng)域的技術(shù)人員可針對(duì)每一特定應(yīng)用以各種方式實(shí)施所描述的功能性,但此類實(shí)施決策不應(yīng)被解釋為脫離權(quán)利要求書的范圍。[0081]用于實(shí)施結(jié)合本文揭示的方面描述的各種說明性邏輯、邏輯塊、模塊和電路的硬件可以用通用處理器、數(shù)字信號(hào)處理器(DSP)、多媒體廣播接收器芯片內(nèi)的DSP、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其它可編程邏輯裝置、離散門或晶體管邏輯、離散硬件組件,或經(jīng)設(shè)計(jì)以執(zhí)行本文描述的功能的其任何組合來實(shí)施或執(zhí)行。通用處理器可以是微處理器,但在替代方案中,處理器可以是任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器還可實(shí)施為計(jì)算裝置的組合,例如,DSP與微處理器的組合、多個(gè)微處理器的組合、一個(gè)或一個(gè)以上微處理器與DSP核心的聯(lián)合,或任何其它此配置?;蛘?,一些步驟或方法可由特定用于給定功能的電路執(zhí)行。[0082]在一個(gè)或一個(gè)以上示范性方面中,可以用硬件、軟件、固件或其任何組合來實(shí)施所述的功能。如果用軟件實(shí)施,則可將功能作為計(jì)算機(jī)可讀媒體上的一個(gè)或一個(gè)以上指令或代碼而加以存儲(chǔ)或傳輸。本文揭示的方法或算法的步驟可體現(xiàn)在所執(zhí)行的處理器可執(zhí)行軟件模塊中,所述處理器可執(zhí)行軟件模塊可駐留在非瞬時(shí)計(jì)算機(jī)可讀或處理器可讀媒體上。非瞬時(shí)計(jì)算機(jī)可讀媒體包含可由計(jì)算機(jī)或計(jì)算裝置的處理器存取的任何物理(即,非瞬時(shí))存儲(chǔ)媒體。借助實(shí)例而非限制,此類非瞬時(shí)計(jì)算機(jī)可讀媒體可包含RAM、ROM、EEPROM、CD-ROM,或其它光盤存儲(chǔ)裝置、磁盤存儲(chǔ)裝置或其它磁性存儲(chǔ)裝置,或可用于攜載或存儲(chǔ)指令或數(shù)據(jù)結(jié)構(gòu)的形式的所要程序代碼且可由計(jì)算機(jī)或計(jì)算裝置的處理器存取的任何其它媒體。如本文中所使用,磁盤和光盤包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟磁盤和藍(lán)光光盤,其中磁盤通常磁性地復(fù)制數(shù)據(jù),而光盤使用激光光學(xué)地復(fù)制數(shù)據(jù)。以上各項(xiàng)的組合也應(yīng)包含在非瞬時(shí)計(jì)算機(jī)可讀媒體的范圍內(nèi)。另外,方法或算法的操作可作為存儲(chǔ)在非瞬時(shí)處理器可讀媒體和/或計(jì)算機(jī)可讀媒體上的代碼和/或指令的一者或任何組合或集合而駐留,所述非瞬時(shí)處理器可讀媒體和/或計(jì)算機(jī)可讀媒體可并入到計(jì)算機(jī)程序產(chǎn)品中。[0083]提供先前對(duì)所揭示方面的描述以使得所屬領(lǐng)域的技術(shù)人員能夠制作或使用本發(fā)明。所屬領(lǐng)域的技術(shù)人員將容易明白對(duì)這些方面的各種修改,且本文中所定義的一般原理可在不偏離本發(fā)明的精神或范圍的情況下應(yīng)用于其它方面。因此,本發(fā)明不希望限于本文所示的方面,而是應(yīng)被賦予與所附權(quán)利要求書以及本文揭示的原理和新穎特征一致的最廣范圍。【權(quán)利要求】1.一種用于執(zhí)行動(dòng)態(tài)軟件語言代碼的方法,其包括:編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰;將所述經(jīng)編碼散列表整數(shù)密鑰存儲(chǔ)在可由軟件存取的存儲(chǔ)器中;以及將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中。2.根據(jù)權(quán)利要求1所述的方法,其中所述第一專用硬件指令是將值推送到所述專用硬件散列表實(shí)施方案的SET指令。3.根據(jù)權(quán)利要求2所述的方法,其進(jìn)一步包括:對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作,通過在硬件處理器上執(zhí)行專用硬件指令來確定所述散列表值是否可由所述硬件處理器檢索;以及在所述密鑰存儲(chǔ)在所述硬件處理器中的情況下執(zhí)行基于硬件的散列表查找以傳回所述對(duì)應(yīng)的散列表整數(shù)密鑰。4.根據(jù)權(quán)利要求3所述的方法,其進(jìn)一步包括:在所述密鑰不在所述硬件處理器上的情況下執(zhí)行基于軟件的散列表查找以檢索所述所請(qǐng)求的散列表值和存儲(chǔ)在所述軟件可存取存儲(chǔ)器中的所述經(jīng)編碼散列表整數(shù)密鑰的一部分;以及通過將經(jīng)編碼散列表整數(shù)密鑰的所述所檢索部分經(jīng)由第二專用硬件指令加載到所述硬件處理器的專用存儲(chǔ)器中來更新所述專用硬件散列表實(shí)施方案。5.根據(jù)權(quán)利要求4所述的方法,其中所述第二專用硬件指令為從所述硬件處理器的所述專用存儲(chǔ)器檢索值的GET指令。6.根據(jù)權(quán)利要求5所述的方法,其中將散列表字符串密鑰編碼為散列表整數(shù)密鑰在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)每一動(dòng)態(tài)軟件語言操作請(qǐng)求執(zhí)行所述經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。7.根據(jù)權(quán)利要求5所述的方法,其中:所述動(dòng)態(tài)軟件語言代碼為hvaScn’ipt?代碼;且編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰包括編譯JavaScript代碼以將JavaScript散列表字符串密鑰編碼為散列表整數(shù)密鑰。8.根據(jù)權(quán)利要求7所述的方法,其中將.lavaScdpt?^列表字符串密鑰編碼為散列表整數(shù)密鑰在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)每.JavaScripUg)操作請(qǐng)求執(zhí)行所述經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。9.根據(jù)權(quán)利要求1所述的方法,其中所述第一專用硬件指令為通過將值存儲(chǔ)在存儲(chǔ)器映射位置中而將所述值推送到所述專用硬件散列表實(shí)施方案的STORE指令。10.根據(jù)權(quán)利要求1所述的方法,其中將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中包括在耦合到主處理器的協(xié)處理器上將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中。11.根據(jù)權(quán)利要求1所述的方法,其中編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰是由計(jì)算裝置的第一處理器執(zhí)行,且將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中是由所述計(jì)算裝置的第二處理器執(zhí)行。12.根據(jù)權(quán)利要求11所述的方法,其中所述計(jì)算裝置的所述第二處理器為專門散列表協(xié)處理器。13.根據(jù)權(quán)利要求12所述的方法,其進(jìn)一步包括:對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作,通過在所述專門散列表協(xié)處理器上執(zhí)行第二專用硬件指令而確定是否可檢索所述散列表值;以及在確定可檢索所述散列表值的情況下在所述專門散列表協(xié)處理器上執(zhí)行基于硬件的散列表查找以接收所述計(jì)算裝置的所述第一處理器上的所述對(duì)應(yīng)的散列表整數(shù)密鑰。14.一種計(jì)算裝置,其包括:存儲(chǔ)器;以及耦合到所述存儲(chǔ)器的處理器,所述處理器配置有處理器可執(zhí)行指令以執(zhí)行包括以下各項(xiàng)的操作:編譯動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰;將所述經(jīng)編碼散列表整數(shù)密鑰存儲(chǔ)在所述存儲(chǔ)器中使得所述經(jīng)編碼散列表整數(shù)密鑰可由軟件存取;以及將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中。15.根據(jù)權(quán)利要求14所述`的計(jì)算裝置,其中所述存儲(chǔ)器為所述處理器內(nèi)的散列表存儲(chǔ)器。16.根據(jù)權(quán)利要求14所述的計(jì)算裝置,其中所述存儲(chǔ)器在所述處理器外部。17.根據(jù)權(quán)利要求14所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得所述第一專用硬件指令是將值推送到所述專用硬件散列表實(shí)施方案的SET指令。18.根據(jù)權(quán)利要求17所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行進(jìn)一步包括以下各項(xiàng)的操作:對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作,通過在硬件處理器上執(zhí)行專用硬件指令來確定所述散列表值是否可由所述硬件處理器檢索;以及在所述密鑰存儲(chǔ)在所述硬件處理器中的情況下執(zhí)行基于硬件的散列表查找以傳回所述對(duì)應(yīng)的散列表整數(shù)密鑰。19.根據(jù)權(quán)利要求18所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行進(jìn)一步包括以下各項(xiàng)的操作:在所述密鑰不在所述硬件處理器上的情況下執(zhí)行基于軟件的散列表查找以檢索所述所請(qǐng)求的散列表值和存儲(chǔ)在所述軟件可存取存儲(chǔ)器中的所述經(jīng)編碼散列表整數(shù)密鑰的一部分;以及通過將經(jīng)編碼散列表整數(shù)密鑰的所述所檢索部分經(jīng)由第二專用硬件指令加載到所述硬件處理器的專用存儲(chǔ)器中來更新所述專用硬件散列表實(shí)施方案。20.根據(jù)權(quán)利要求19所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得所述第二專用硬件指令為從所述硬件處理器的所述專用存儲(chǔ)器檢索值的GET指令。21.根據(jù)權(quán)利要求20所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得所述將散列表字符串密鑰編碼為散列表整數(shù)密鑰在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)每一動(dòng)態(tài)軟件語言操作請(qǐng)求執(zhí)行所述經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。22.根據(jù)權(quán)利要求20所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得:所述動(dòng)態(tài)軟件語言代碼為javaScripl?代碼;且編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰包括編譯JavaScript代碼以將JavaScript散列表字符串密鑰編碼為散列表整數(shù)密鑰。23.根據(jù)權(quán)利要求22所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得將JavaScript?妝列表字符串密鑰編碼為散列表整數(shù)密鑰在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)彳士..丨avaScript?操作請(qǐng)求執(zhí)行所述經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。24.根據(jù)權(quán)利要求14所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得所述第一專用硬件指令為通過將值存儲(chǔ)在存儲(chǔ)器映射位置中而將所述值推送到所述專用硬件散列表實(shí)施方案的STORE指令。25.根據(jù)權(quán)利要求14所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中包括在耦合到主處理器的協(xié)處理器上將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中。26.根據(jù)權(quán)利要求14所述的計(jì)算裝置,其中所述處理器包括第一處理器和第二處理器,且其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行操作使得編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰是由所述第一處理器執(zhí)行,且將所述經(jīng)編碼散列表整數(shù)密鑰的一部`分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中是由所述計(jì)算裝置的所述第二處理器執(zhí)行。27.根據(jù)權(quán)利要求26所述的計(jì)算裝置,其中所述第二處理器為專門散列表協(xié)處理器。28.根據(jù)權(quán)利要求27所述的計(jì)算裝置,其中所述處理器配置有處理器可執(zhí)行指令以執(zhí)行進(jìn)一步包括以下各項(xiàng)的操作:對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作,通過在所述專門散列表協(xié)處理器上執(zhí)行第二專用硬件指令而確定是否可檢索所述散列表值;以及在確定可檢索所述散列表值的情況下在所述專門散列表協(xié)處理器上執(zhí)行基于硬件的散列表查找以接收所述計(jì)算裝置的所述第一處理器上的所述對(duì)應(yīng)的散列表整數(shù)密鑰。29.一種計(jì)算裝置,其包括:用于編譯動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置:用于將所述經(jīng)編碼散列表整數(shù)密鑰存儲(chǔ)在可由軟件存取的存儲(chǔ)器中的裝置;以及用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置。30.根據(jù)權(quán)利要求29所述的計(jì)算裝置,其中所述存儲(chǔ)器為所述計(jì)算裝置的處理器內(nèi)的散列表存儲(chǔ)器。31.根據(jù)權(quán)利要求29所述的計(jì)算裝置,其中所述存儲(chǔ)器在所述計(jì)算裝置的處理器外部。32.根據(jù)權(quán)利要求29所述的計(jì)算裝置,其中用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置包括用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由將值推送到所述專用硬件散列表實(shí)施方案的SET指令加載到專用硬件散列表實(shí)施方案中的裝置。33.根據(jù)權(quán)利要求32所述的計(jì)算裝置,其進(jìn)一步包括:用于對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作通過在硬件處理器上執(zhí)行專用硬件指令來確定所述散列表值是否可由所述硬件處理器檢索的裝置;以及用于在所述密鑰存儲(chǔ)在所述硬件處理器中的情況下執(zhí)行基于硬件的散列表查找以傳回所述對(duì)應(yīng)的散列表整數(shù)密鑰的裝置。34.根據(jù)權(quán)利要求33所述的計(jì)算裝置,其進(jìn)一步包括:用于在所述密鑰不在所述硬件處理器上的情況下執(zhí)行基于軟件的散列表查找以檢索所述所請(qǐng)求的散列表值和存儲(chǔ)在所述軟件可存取存儲(chǔ)器中的所述經(jīng)編碼散列表整數(shù)密鑰的一部分的裝置;以及用于通過將經(jīng)編碼散列表整數(shù)密鑰的所述所檢索部分經(jīng)由第二專用硬件指令加載到所述硬件處理器的專用存儲(chǔ)器中來更新所述專用硬件散列表實(shí)施方案的裝置。35.根據(jù)權(quán)利要求34所述的計(jì)算裝置,其中用于通過將經(jīng)編碼散列表整數(shù)密鑰的所述所檢索部分經(jīng)由第二專用硬件指令加載到所述硬件處理器的專用存儲(chǔ)器中來更新所述專用硬件散列表實(shí)施方案的裝置包括用于通過將經(jīng)編碼散列表整數(shù)密鑰的所述所檢索部分經(jīng)由從所述硬件處理器的專用存儲(chǔ)器檢索值的GET指令加載到所述硬件處理器的所述專用存儲(chǔ)器中來更新所述專用硬件散列表實(shí)施方案的裝置。36.根據(jù)權(quán)利要求35所述的計(jì)算裝置,其中:用于編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置包括用于在編譯時(shí)間正好編譯所述動(dòng)態(tài)軟件語言代碼一次以將散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置;以及用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置包括用于依據(jù)每一動(dòng)態(tài)軟件語言操作請(qǐng)求將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置。37.根據(jù)權(quán)利要求35所述的計(jì)算裝置,其中:所述動(dòng)態(tài)軟件語言代碼為javaScHpt?代碼;且用于編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置包括用于編譯JavaScript代碼以將JavaScript散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置。38.根據(jù)權(quán)利要求37所述的計(jì)算裝置,其中:用于將JavaScript?散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置包括用于在編譯時(shí)間正好將JavaScript?散列表字符串密鑰編碼為散列表整數(shù)密鑰一次的裝置;且用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置包括用于依據(jù)每一hvaScripl?操作請(qǐng)求將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置。39.根據(jù)權(quán)利要求29所述的計(jì)算裝置,其中所述第一專用硬件指令為通過將值存儲(chǔ)在存儲(chǔ)器映射位置中而將所述值推送到所述專用硬件散列表實(shí)施方案的STORE指令。40.根據(jù)權(quán)利要求29所述的計(jì)算裝置,其中用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中的裝置包括用于在耦合到主處理器的協(xié)處理器上將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中的裝置。41.根據(jù)權(quán)利要求29所述的計(jì)算裝置,其中:第一處理器;第二處理器;用于編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置包括用于通過所述第一處理器編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰的裝置;以及用于將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置包括用于通過所述第二處理器將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中的裝置。42.根據(jù)權(quán)利要求41所述的計(jì)算裝置,其中所述第二處理器為專門散列表協(xié)處理器。43.根據(jù)權(quán)利要求42所述的計(jì)算裝置,其進(jìn)一步包括:用于對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作通過在所述專門散列表協(xié)處理器上執(zhí)行第二專用硬件指令而`確定是否可檢索所述散列表值的裝置;以及用于在確定可檢索所述散列表值的情況下在所述專門散列表協(xié)處理器上執(zhí)行基于硬件的散列表查找以接收所述計(jì)算裝置的所述第一處理器上的所述對(duì)應(yīng)的散列表整數(shù)密鑰的裝置。44.一種非瞬時(shí)處理器可讀媒體,所述非瞬時(shí)處理器可讀媒體上存儲(chǔ)有處理器可執(zhí)行指令,所述處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行包括以下各項(xiàng)的操作:編譯動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰;將所述經(jīng)編碼散列表整數(shù)密鑰存儲(chǔ)在可由軟件存取的存儲(chǔ)器中;以及將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中。45.根據(jù)權(quán)利要求44所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以在處理器上起作用,其中所述存儲(chǔ)器為所述處理器內(nèi)的散列表存儲(chǔ)器。46.根據(jù)權(quán)利要求44所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以在處理器上起作用,其中所述存儲(chǔ)器在所述處理器外部。47.根據(jù)權(quán)利要求44所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得所述第一專用硬件指令是將值推送到所述專用硬件散列表實(shí)施方案的SET指令。48.根據(jù)權(quán)利要求47所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行進(jìn)一步包括以下各項(xiàng)的操作:對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作,通過在硬件處理器上執(zhí)行專用硬件指令來確定所述散列表值是否可由所述硬件處理器檢索;以及在所述密鑰存儲(chǔ)在所述硬件處理器中的情況下執(zhí)行基于硬件的散列表查找以傳回所述對(duì)應(yīng)的散列表整數(shù)密鑰。49.根據(jù)權(quán)利要求48所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行進(jìn)一步包括以下各項(xiàng)的操作:在所述密鑰不在所述硬件處理器上的情況下執(zhí)行基于軟件的散列表查找以檢索所述所請(qǐng)求的散列表值和存儲(chǔ)在所述軟件可存取存儲(chǔ)器中的所述經(jīng)編碼散列表整數(shù)密鑰的一部分;以及通過將經(jīng)編碼散列表整數(shù)密鑰的所述所檢索部分經(jīng)由第二專用硬件指令加載到所述硬件處理器的專用存儲(chǔ)器中來更新所述專用硬件散列表實(shí)施方案。50.根據(jù)權(quán)利要求49所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得所述第二專用硬件指令為從所述硬件處理器的所述專用存儲(chǔ)器檢索值的GET指令。51.根據(jù)權(quán)利要求50所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得所述將散列表字符串密鑰編碼為散列表整數(shù)密鑰在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)每一動(dòng)態(tài)軟件語言操作請(qǐng)求執(zhí)行所述經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。52.根據(jù)權(quán)利要求50所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得:所述動(dòng)態(tài)軟件語言代碼為javaScripl?代碼;且編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰包括編譯JavaScript代碼以將JavaScript散列表字符串密鑰編碼為散列表整數(shù)密鑰。53.根據(jù)權(quán)利要求52所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得將hvaScript?^列表字符串密鑰編碼為散列表整數(shù)密鑰在編譯時(shí)間正好實(shí)現(xiàn)一次,且依據(jù)每.JavaScripl?操作請(qǐng)求執(zhí)行所述經(jīng)編碼散列表整數(shù)密鑰的一部分的加載。54.根據(jù)權(quán)利要求44所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得所述第一專用硬件指令為通過將值存儲(chǔ)在存儲(chǔ)器映射位置中而將所述值推送到所述專用硬件散列表實(shí)施方案的STORE指令。55.根據(jù)權(quán)利要求44所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使處理器執(zhí)行操作使得將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中包括在耦合到主處理器的協(xié)處理器上將所述經(jīng)編碼散列表整數(shù)密鑰的一部分加載到專用硬件散列表實(shí)施方案中。56.根據(jù)權(quán)利要求44所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以可由包括第一處理器和第二處理器的處理器執(zhí)行,且其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使所述處理器執(zhí)行操作使得編譯所述動(dòng)態(tài)軟件語言代碼以將散列表字符串密鑰編碼為散列表整數(shù)密鑰是由所述第一處理器執(zhí)行,且將所述經(jīng)編碼散列表整數(shù)密鑰的一部分經(jīng)由第一專用硬件指令加載到專用硬件散列表實(shí)施方案中是由所述計(jì)算裝置的所述第二處理器執(zhí)行。57.根據(jù)權(quán)利要求56所述的非瞬時(shí)處理器可讀媒體,其中所述第二處理器為專門散列表協(xié)處理器。58.根據(jù)權(quán)利要求57所述的非瞬時(shí)處理器可讀媒體,其中所述所存儲(chǔ)的處理器可執(zhí)行指令經(jīng)配置以致使所述處理器執(zhí)行進(jìn)一步包括以下各項(xiàng)的操作:對(duì)于需要散列表查找的每一動(dòng)態(tài)軟件語言操作,通過在所述專門散列表協(xié)處理器上執(zhí)行第二專用硬件指令而確定是否可檢索所述散列表值;以及在確定可檢索所述散列表值的情況下在所述專門散列表協(xié)處理器上執(zhí)行基于硬件的散列表查找以接收`所述計(jì)算裝置的所述第一處理器上的所述對(duì)應(yīng)的散列表整數(shù)密鑰?!疚臋n編號(hào)】G06F9/44GK103518190SQ201280022612【公開日】2014年1月15日申請(qǐng)日期:2012年5月21日優(yōu)先權(quán)日:2011年5月27日【發(fā)明者】路易斯·塞澤,穆罕默德·H·雷夏迪,托馬斯·薩托里烏斯申請(qǐng)人:高通股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1