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

經(jīng)壓縮代碼的加速執(zhí)行的制作方法

文檔序號(hào):6360778閱讀:152來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):經(jīng)壓縮代碼的加速執(zhí)行的制作方法
經(jīng)壓縮代碼的加速執(zhí)行領(lǐng)域本公開(kāi)一般涉及計(jì)算領(lǐng)域。更具體地,本發(fā)明的實(shí)施例一般涉及經(jīng)壓縮代碼的加速執(zhí)行。背景許多應(yīng)用對(duì)于代碼大小尺寸(code size footprint)是敏感的。一個(gè)關(guān)鍵示例是移動(dòng)應(yīng)用,該移動(dòng)應(yīng)用可使用基于只讀存儲(chǔ)器(ROM)的系統(tǒng),其中永久性存儲(chǔ)器存儲(chǔ)是整體系統(tǒng)成本、大小、或功耗中的關(guān)鍵因素。在一些實(shí)例中,代碼壓縮可被用來(lái)減輕這些問(wèn)題中的至少一些,有時(shí)因所需的經(jīng)壓縮代碼的飛行(on-the-fly)解壓縮而帶來(lái)性能降低和/或功耗增加。附圖簡(jiǎn)述 參照附圖提供詳細(xì)描述。在附圖中,附圖標(biāo)記最左邊的數(shù)字標(biāo)識(shí)該附圖標(biāo)記首次出現(xiàn)的附圖。在不同附圖中使用相同附圖標(biāo)記來(lái)指示相似或相同的項(xiàng)目。圖I和2分別例示了在壓縮之前和之后的嵌入式編碼壓縮。圖3、5和7例示了根據(jù)一些實(shí)施例的流水線(xiàn)化解壓縮器的框圖。圖4和6例示了根據(jù)一些實(shí)施例的流入流水線(xiàn)化解壓縮器的數(shù)據(jù)。圖8是根據(jù)本發(fā)明的實(shí)施例的方法的流程圖。圖9和10例示了可用于實(shí)現(xiàn)本文中所討論的一些實(shí)施例的計(jì)算系統(tǒng)的實(shí)施例的框圖。

圖11例示是根據(jù)一些實(shí)施例的無(wú)線(xiàn)局域或蜂窩網(wǎng)通信系統(tǒng)的框圖。詳細(xì)描述在以下描述中,闡述眾多具體細(xì)節(jié)以提供對(duì)各實(shí)施例的透徹理解。然而,本發(fā)明的各個(gè)實(shí)施例在沒(méi)有這些具體細(xì)節(jié)的情況下也可實(shí)踐。在其他情形中,眾所周知的方法、過(guò)程、組件和電路并未進(jìn)行詳細(xì)描述以免混淆本發(fā)明的特定實(shí)施例。此外,本發(fā)明實(shí)施例的各方面可使用各種手段來(lái)執(zhí)行,諸如集成半導(dǎo)體電路(“硬件”)、組織成一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀指令(“軟件”)或硬件與軟件的某種組合。出于本公開(kāi)的目的,對(duì)“邏輯”的引述應(yīng)表示硬件、軟件(包括例如控制處理器的操作的微代碼)或其某種組合。一些實(shí)施例例如通過(guò)減少或消除最頻繁執(zhí)行的代碼流的性能開(kāi)銷(xiāo)、減少功耗和/或減小代碼大小來(lái)提升兩級(jí)嵌入式代碼解壓縮方案。一般而言,嵌入式代碼壓縮旨在標(biāo)識(shí)組成嵌入式碼字的一組獨(dú)特比特模式以及旨在將其存儲(chǔ)在表(也稱(chēng)為“詞典”)中。經(jīng)壓縮的嵌入式代碼存儲(chǔ)原始嵌入式碼字序列中的每個(gè)模式的(短的)獨(dú)特標(biāo)識(shí)符,如圖I和2中所示的。此外,實(shí)施例在指定代碼詞典或存儲(chǔ)器中的值的位置時(shí)利用彈性,以實(shí)現(xiàn)對(duì)初始指針值的更高效推導(dǎo)。此類(lèi)實(shí)施例可在避免解壓縮性能中的額外成本的同時(shí)達(dá)成由嵌入式代碼壓縮所提供的益處。在圖I和2中,addr(地址)指的是嵌入式代碼指令的地址。在未經(jīng)壓縮的形式下(參見(jiàn)例如圖1),addr直接訪(fǎng)問(wèn)ROM以取得嵌入式代碼指令(inst)。在經(jīng)壓縮的形式下(參見(jiàn)例如圖2),獨(dú)特嵌入式代碼指令被存儲(chǔ)在“獨(dú)特模式”表/陣列202 (或詞典)中,并且僅僅指向模式的索引(指針)被存儲(chǔ)在嵌入式代碼指令的原始空隙中(指針陣列204)。這種組織使用兩級(jí)過(guò)程來(lái)解壓嵌入式碼字在第一級(jí)中,訪(fǎng)問(wèn)指針陣列204來(lái)取得進(jìn)入獨(dú)特模式陣列202的索引(指針),進(jìn)而訪(fǎng)問(wèn)該獨(dú)特模式陣列202來(lái)提供字。假定原始ROM具有6500個(gè)嵌入式碼字,每個(gè)嵌入式碼字具有312比特,并且有總共2005個(gè)獨(dú)特嵌入式碼字。原始ROM占用(312x6500) 2,028,000比特,而經(jīng)壓縮的ROM僅占用(6500*11+312*2005)697,060比特(其中11是對(duì)獨(dú)特模式陣列202中的2005個(gè)條目進(jìn)行索引所需的比特?cái)?shù)目)。因而,壓縮率(經(jīng)壓縮的大小/原始大小)為34. 37%。因此,用于嵌入式代碼解壓縮的先前方法可能引發(fā)流改變下的性能成本。為此,一些實(shí)施例在實(shí)現(xiàn)壓縮的同時(shí)避免此性能影響。在各個(gè)實(shí)施例中,本文中討論的指針陣列和獨(dú)特模式陣列/表可在分開(kāi)的存儲(chǔ)單元(諸如參照?qǐng)D9或10討論的存儲(chǔ)器)上實(shí)現(xiàn),或者被實(shí)現(xiàn)為同一存儲(chǔ)單元(諸如參照?qǐng)D9或10討論的存儲(chǔ)器)內(nèi)的區(qū)域。圖3示出根據(jù)實(shí)施例的流水線(xiàn)化解壓縮器的框圖。在圖3、5和7中,R1、R2和R3 指的是可被用來(lái)臨時(shí)存儲(chǔ)在流水線(xiàn)級(jí)之間傳遞的數(shù)據(jù)的寄存器或先進(jìn)先出(FIFO)緩沖器。圖4例示了根據(jù)實(shí)施例的流入圖3的流水線(xiàn)化解壓縮器的數(shù)據(jù)。參看圖3,經(jīng)壓縮的組織將利用對(duì)“獨(dú)特模式”表302的間接訪(fǎng)問(wèn)。此間接增加從存儲(chǔ)代碼的存儲(chǔ)器取得指令所需的時(shí)間。注意在從獨(dú)特模式陣列302取得指令之前,從指針陣列304取得指針。如果用于從陣列302和304兩者進(jìn)行獲取的時(shí)間段并非是短至足以符合處理器周期時(shí)間(例如,小于或等于處理器的一個(gè)周期),則其會(huì)影響處理器性能。為了確保此時(shí)間段符合處理器周期時(shí)間,經(jīng)壓縮的ROM可僅使用固定大小代碼指令和/或被流水線(xiàn)化。圖3示出了被流水線(xiàn)化為兩級(jí)的解壓縮器。第一流水線(xiàn)級(jí)包括指針陣列304,而第二流水線(xiàn)級(jí)包括獨(dú)特模式表/陣列302。在執(zhí)行期間,‘a(chǎn)ddr’地址序列被呈現(xiàn)給經(jīng)壓縮的ROM。在圖3的流水線(xiàn)解壓縮器中,地址最初被呈現(xiàn)給指針陣列304。在下一級(jí)中,這產(chǎn)生訪(fǎng)問(wèn)獨(dú)特模式陣列302的指針,而同時(shí)新‘a(chǎn)ddr’被呈現(xiàn)給指針陣列304,且具有每周期一個(gè)字的吞吐量。只要開(kāi)始新‘a(chǎn)ddr’序列,此流水線(xiàn)化組織就引發(fā)一周期“氣泡(bubble)”。在重新開(kāi)始流水線(xiàn)時(shí),“氣泡”發(fā)生。這例如在嵌入式碼流的起始處或在跳躍期間發(fā)生。一般而言,“氣泡”是指示流水線(xiàn)級(jí)(包含氣泡的級(jí))沒(méi)有執(zhí)行任何有用工作的象征性表示。參看圖4,示出了流入圖3的流水線(xiàn)化解壓縮器的數(shù)據(jù)。在第一周期(周期I)中,指針陣列304的輸入包含第一指令地址(Addrl)。在第二周期(周期2)中,第二指令地址(Addr2)被提供給指針陣列304,而第一指針(指針I(yè))被提供給獨(dú)特模式陣列302。氣泡在R2處發(fā)生,因?yàn)榻鈮嚎s器在第一周期中無(wú)法向獨(dú)特模式陣列提供指針。圖5示出根據(jù)實(shí)施例的流水線(xiàn)化解壓縮器的框圖。圖5的實(shí)施例通過(guò)將第一指針(指針I(yè))直接(例如,繞開(kāi)指針陣列504)提供給獨(dú)特模式陣列502,與此同時(shí)第二地址(Addr2)被提供給指針陣列504,來(lái)避免Rl處的氣泡(參照?qǐng)D3_4所討論的)。如圖所示,多路復(fù)用器可選擇第一指針或指針陣列504的輸出來(lái)經(jīng)由R2傳送給第二流水線(xiàn)。因而,第一指令是在新流的第一周期中從獨(dú)特模式陣列502直接取得的,而第二指令的地址(‘a(chǎn)ddr’)被用來(lái)“準(zhǔn)備啟動(dòng)(prime)”流水線(xiàn)。圖6示出了例如在第一指針被直接提供給獨(dú)特模式陣列時(shí),流入圖5的流水線(xiàn)化解壓縮器的數(shù)據(jù)。注意與圖4相比,第一周期(周期I)中的氣泡已被移除。在第一周期中,指針陣列504的輸入包含第二指令地址,而獨(dú)特模式陣列502的輸入包含指向指令的指針。在第二周期(周期2)中,第三指令地址被提供給指針陣列504,而第二指針被提供給獨(dú)特模式陣列502。在此示例中,解壓縮器能在第一周期中向獨(dú)特模式陣列提供指針,從而消除氣泡。圖7示出根據(jù)實(shí)施例的流水線(xiàn)化解壓縮器的框圖。圖5中的組織在圖7中通過(guò)避免用于額外地址比特(和邏輯)的總線(xiàn)布線(xiàn)而得以增補(bǔ)。替代地,第一指針是由推導(dǎo)邏輯702從第二指令地址(‘a(chǎn)ddr’)推導(dǎo)出的。在一實(shí)施例中,“推導(dǎo)”邏輯可通過(guò)選擇‘a(chǎn)ddr’中的比特子集來(lái)生成第一指針,因此在至少一個(gè)實(shí)施例中,用于推導(dǎo)的邏輯可簡(jiǎn)單地通過(guò)將所選比特寫(xiě)入多路復(fù)用器中來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,通過(guò)重新安排模式在獨(dú)特模式陣列中的位置,可更改存儲(chǔ)在指針陣列中的值(指針的值)。出于例示起見(jiàn),假定指令“ADD R,R”是嵌入式碼流中的第一指令??稍讵?dú)特模式陣列中將此指令模式存儲(chǔ)在其中索引為第二指令地址(Addr2)的子集 的位置處,因此可容易地從第二地址導(dǎo)出第一指針。例如,如果Addr1 = 000100,而Addr2=000101,則“ADD R,R”指令可被存儲(chǔ)在獨(dú)特模式陣列里的位置0101中,因此其地址可從Addr2的低階4比特來(lái)直接推導(dǎo)出。在流的起始處,Addr2可被提供給R1,而其低階4比特
(0101)可被提供給R2,從而從獨(dú)特模式陣列直接取得第一指令。而且,這樣的一個(gè)實(shí)施例可犧牲一些壓縮(換取提升的性能),因?yàn)榭蓸?gòu)想"ADDR,R"指令可被另一流共享,這要求將其復(fù)制在獨(dú)特模式陣列中以使其指針數(shù)據(jù)獨(dú)立。然而,此復(fù)制僅對(duì)于在流的開(kāi)始處的(相對(duì)少的)不同指令才發(fā)生。另外,簡(jiǎn)檔化可被用來(lái)僅選擇和優(yōu)化最頻繁執(zhí)行的流,從而使氣泡留在最不頻繁的流中。圖8示出根據(jù)實(shí)施例的用于提升嵌入式代碼的方法800的框圖。方法800的操作可由本文中例如參照?qǐng)D1-7和/或9-11討論的一個(gè)或多個(gè)組件來(lái)執(zhí)行。參看圖8,在操作802,(如現(xiàn)前所描述地)確定經(jīng)壓縮的嵌入式代碼組織,例如,生成分別由P和U比特索引的指針陣列和獨(dú)特模式陣列。在操作804,標(biāo)識(shí)一組S個(gè)嵌入式代碼地址(addr),該組S個(gè)嵌入式代碼地址是(例如重要)流的第二指令。此外,嵌入式代碼可包含多個(gè)流。每個(gè)流包含一指令序列。這些指令中的每一個(gè)與諸如addrl、addr2、addr3、addrN之類(lèi)的地址相關(guān)聯(lián)。Addr2是流的第二指令的地址。因而,操作804標(biāo)識(shí)與每個(gè)流的第二指令相對(duì)應(yīng)的一組地址。因此,如果代碼具有10個(gè)重要流或感興趣的流,則將存在帶有10個(gè)地址的集合,其中每個(gè)地址是每個(gè)流中的第二指令的地址。在操作806,對(duì)于S的每個(gè)元素,相應(yīng)的指令模式被添加到獨(dú)特模式指令,例如以使得可從第二指令地址容易地推導(dǎo)出模式索引。在一實(shí)施例中,可將模式放在其中模式索引(包含U比特)與流中的第二地址(Addr2)的P比特子集相對(duì)應(yīng)的的位置處。因此,在一些實(shí)施例中,可通過(guò)以下操作從嵌入式壓縮碼流移除氣泡,以增大速度和/或降低成本(I)直接提供流中的第一指令的模式索引,以避免流水線(xiàn)化氣泡;(2)從指令地址推導(dǎo)出模式索引;和/或(3)重新定位獨(dú)特模式陣列中的模式以簡(jiǎn)化用于從指令地址推導(dǎo)模式索引的邏輯。在一實(shí)施例中,通過(guò)選擇性地應(yīng)用本文中(例如,參照?qǐng)D1-8)所討論的技術(shù)來(lái)用壓縮率來(lái)?yè)Q取性能是可能的。例如,這些技術(shù)限于對(duì)初始流水線(xiàn)‘氣泡’延遲更加敏感的重要的、短的嵌入式指令流。而且,對(duì)一個(gè)額外周期較不敏感的相對(duì)長(zhǎng)的、罕見(jiàn)的流可在不利用此類(lèi)技術(shù)的情況下執(zhí)行。此外,在嵌入式代碼鏈路級(jí),可重新組織嵌入式代碼來(lái)最小化流的開(kāi)始處的不同的獨(dú)特指令的數(shù)目;由此保持壓縮率。圖9示出計(jì)算系統(tǒng)900的實(shí)施例的框圖。在各個(gè)實(shí)施例中,系統(tǒng)900的一個(gè)或多個(gè)組件可設(shè)置在能執(zhí)行本文中參照本發(fā)明一些實(shí)施例所討論的一個(gè)或多個(gè)操作的各種電子器件中。例如,系統(tǒng)900的組件中的一個(gè)或多個(gè)可被用來(lái)執(zhí)行參照?qǐng)D1-8和10-11討論的操作。另外,本文(例如參照?qǐng)D9和/或10) 討論的各種存儲(chǔ)設(shè)備可用于存儲(chǔ)數(shù)據(jù)(包括指令)、運(yùn)算結(jié)果等。在一個(gè)實(shí)施例中,與圖9的方法900的操作相關(guān)聯(lián)的數(shù)據(jù)可被存儲(chǔ)在存儲(chǔ)器設(shè)備(諸如圖9的處理器902或圖10的處理器1002/1004中存在的存儲(chǔ)器912或者一個(gè)或多個(gè)高速緩存(例如,實(shí)施例中的LI、中級(jí)、或末級(jí)高速緩存))。此外,計(jì)算系統(tǒng)900可包括經(jīng)由互連網(wǎng)絡(luò)(或總線(xiàn))902通信的一個(gè)或多個(gè)中央處理單元(CPU) 904或處理器。處理器902可包括通用處理器、網(wǎng)絡(luò)處理器(處理在計(jì)算機(jī)網(wǎng)絡(luò)903上傳達(dá)的數(shù)據(jù)),或者其他類(lèi)型的處理器(包括精簡(jiǎn)指令集計(jì)算機(jī)(RISC)處理器或復(fù)雜指令集計(jì)算機(jī)(CISC))。此外,處理器902可具有單核或多核設(shè)計(jì)。具有多核設(shè)計(jì)的處理器902可將不同類(lèi)型的處理器核集成在同一集成電路(IC)管芯上。同樣,具有多核設(shè)計(jì)的處理器902可被實(shí)現(xiàn)為對(duì)稱(chēng)或不對(duì)稱(chēng)多處理器。此外,處理器902可利用SMD (單指令多數(shù)據(jù))架構(gòu)。此外,參照?qǐng)D1-8討論的操作可由系統(tǒng)900的一個(gè)或多個(gè)部件執(zhí)行。而且,如圖9中所示的,處理器902中的一個(gè)或多個(gè)可包括(嵌入式)邏輯990,其可與參照?qǐng)D
1-8討論的解壓縮器相同或類(lèi)似。然而,本發(fā)明的其它實(shí)施例可存在于圖9的系統(tǒng)900內(nèi)的其它電路、邏輯單元或設(shè)備中。芯片組906也可與互連網(wǎng)絡(luò)904通信。芯片組906可包括存儲(chǔ)器控制器中樞(MCH) 9080 MCH 908可包括與存儲(chǔ)器912通信的存儲(chǔ)器控制器910。存儲(chǔ)器912可存儲(chǔ)數(shù)據(jù),例如包括由CPU902或包含在計(jì)算系統(tǒng)900中的任何其它設(shè)備執(zhí)行的指令序列。在本發(fā)明的一個(gè)實(shí)施例中,存儲(chǔ)器912可包括一個(gè)或多個(gè)易失性存儲(chǔ)(或存儲(chǔ)器)設(shè)備,諸如隨機(jī)存取存儲(chǔ)器(RAM)、動(dòng)態(tài)RAM(DRAM)、同步DRAM (SDRAM)、靜態(tài)RAM (SRAM)、或其他類(lèi)型的存儲(chǔ)設(shè)備。還可使用諸如硬盤(pán)之類(lèi)的非易失性存儲(chǔ)器。諸如多個(gè)CPU和/或多個(gè)系統(tǒng)存儲(chǔ)器之類(lèi)的附加設(shè)備可經(jīng)由互連網(wǎng)絡(luò)904來(lái)進(jìn)行通信。MCH 908還可包括與顯示器916通信的圖形接口 914。顯示器916可用于向用戶(hù)顯示與本文中討論的布朗橋(Brownian Bridge)算法相關(guān)聯(lián)的操作的結(jié)果。在本發(fā)明的一個(gè)實(shí)施例中,圖形接口 914可與顯示器916通信。在本發(fā)明的實(shí)施例中,顯示器916可以是通過(guò)例如信號(hào)轉(zhuǎn)換器與圖形接口 914通信的平板顯示器,該信號(hào)轉(zhuǎn)換器將諸如視頻存儲(chǔ)器或系統(tǒng)存儲(chǔ)器之類(lèi)的存儲(chǔ)設(shè)備中存儲(chǔ)的圖像的數(shù)字表示轉(zhuǎn)換成由顯示器916解析和顯示的顯示信號(hào)。由接口 914產(chǎn)生的顯示器信號(hào)可經(jīng)過(guò)各種控制設(shè)備,然后由顯示器916解讀并后續(xù)在顯示器916上顯示。中樞接口 918可允許MCH 908與輸入/輸出控制中樞(ICH) 920通信。ICH920可向與計(jì)算系統(tǒng)900通信的I/O設(shè)備提供接口。ICH 920可通過(guò)諸如外圍組件互連(PCI)橋路、通用串行總線(xiàn)(USB)控制器或其他類(lèi)型的外圍橋路或控制器等外圍橋路(或控制器)924與總線(xiàn)922通信。橋924可在CPU 902和外圍設(shè)備之間提供數(shù)據(jù)路徑??墒褂闷渌?lèi)型的布局。同樣,多個(gè)總線(xiàn)可例如通過(guò)多個(gè)橋或控制器來(lái)與ICH 920通信。另外,在本發(fā)明的各實(shí)施例中,與ICH 920處于通信中的其它外圍設(shè)備可包括集成的驅(qū)動(dòng)電子(IDE)或小型計(jì)算機(jī)系統(tǒng)接口(SCSI)硬盤(pán)驅(qū)動(dòng)器、USB端口、鍵盤(pán)、鼠標(biāo)、并行端口、串行端口、軟盤(pán)驅(qū)動(dòng)器、數(shù)字輸出支持(例如,數(shù)字視頻接口(DVI))、或其他設(shè)備??偩€(xiàn)922可與音頻設(shè)備926、一個(gè)或多個(gè)盤(pán)驅(qū)動(dòng)器928以及可與計(jì)算機(jī)網(wǎng)絡(luò)903通信的網(wǎng)絡(luò)接口設(shè)備930通信。在一實(shí)施例中,設(shè)備930可以是能夠進(jìn)行無(wú)線(xiàn)通信的NIC。其他設(shè)備可經(jīng)由總線(xiàn)922通信。同樣,在本發(fā)明的一些實(shí)施例中,各組件(諸如網(wǎng)絡(luò)接口設(shè)備930)可與MCH 908通信。此外,可組合處理器902和MCH 908,以形成單個(gè)芯片。此外,在本發(fā)明的其他實(shí)施例中,圖形接口 914可被包括在MCH 908內(nèi)。此外,計(jì)算系統(tǒng)900可包括易失性和/或非易失性存儲(chǔ)器(或存儲(chǔ))。例如,非易失性存儲(chǔ)器可包括以下的一個(gè)或多個(gè)只讀存儲(chǔ)器(ROM)、可編程ROM(PROM)、可擦除PROM(EPROM)、電 RPROM(EEPROM)、盤(pán)驅(qū)動(dòng)器(例如,928)、軟盤(pán)、緊致盤(pán) ROM(CD-ROM)、數(shù)字多功能盤(pán)(DVD)、閃存、磁光盤(pán)或能夠儲(chǔ)存電子數(shù)據(jù)(例如,包括指令)的其它類(lèi)型的非易失性機(jī)器可讀介質(zhì)。在一實(shí)施例中,系統(tǒng)900的組件可安排成諸如參照?qǐng)D10討論的點(diǎn)對(duì)點(diǎn)(PtP)配置。例如,處理器、存儲(chǔ)器、和/或輸入/輸出設(shè)備可通過(guò)多個(gè)點(diǎn)對(duì)點(diǎn)接口互連。更具體地,圖10示出了根據(jù)本發(fā)明實(shí)施例的以點(diǎn)對(duì)點(diǎn)(PtP)結(jié)構(gòu)布置的計(jì)算系統(tǒng)1000。具體地,圖10示出其中處理器、存儲(chǔ)器和輸入/輸出設(shè)備通過(guò)多個(gè)點(diǎn)對(duì)點(diǎn)接口互連的系統(tǒng)。參照?qǐng)D1-9和11討論的操作可由系統(tǒng)1000的一個(gè)或多個(gè)部件執(zhí)行。如圖10所示,系統(tǒng)1000可包括若干處理器,但為了清楚起見(jiàn)僅示出了其中兩個(gè)處理器1002、1004。處理器1002和1004各自可包括本地存儲(chǔ)器控制器中樞(MCH) 1006和1008以與存儲(chǔ)器1010和1012耦合。存儲(chǔ)器1010和/或1012可存儲(chǔ)諸如參考圖9的存儲(chǔ)器912討論的數(shù)據(jù)之類(lèi)的各種數(shù)據(jù)。處理器1002和1004可以是任何合適的處理器,諸如參照?qǐng)D9的處理器902所討論的那些。處理器1002和1004可分別使用點(diǎn)對(duì)點(diǎn)(PtP)接口電路1016和1018經(jīng)由PtP接口 1014來(lái)交換數(shù)據(jù)。處理器1002和1004可各自使用點(diǎn)對(duì)點(diǎn)接口電路1026、1028、1030和1032經(jīng)由各PtP接口 1022和1024與芯片組1020交換數(shù)據(jù)。芯片組1020還可利用PtP接口電路1034經(jīng)由高性能圖形接口 1036與高性能圖形電路1037交換數(shù)據(jù)。本發(fā)明的至少一個(gè)實(shí)施例可通過(guò)利用處理器1002和1004來(lái)提供。例如,如圖10中所示的,處理器1002/1004的一個(gè)或多個(gè)可包括(嵌入式)邏輯990,其可與參照?qǐng)D1_8討論的解壓縮器相同或類(lèi)似。然而,本發(fā)明的其它實(shí)施例可存在于圖10的系統(tǒng)1000內(nèi)的其它電路、邏輯單元或設(shè)備中。而且,本發(fā)明的其它實(shí)施例可分布在圖10中所示若干電路、邏輯單元或設(shè)備中。芯片組1020可使用PtP接口電路1041耦合到總線(xiàn)1040??偩€(xiàn)1040可具有耦合至其的一個(gè)或多個(gè)設(shè)備,諸如總線(xiàn)橋1042和I/O設(shè)備1043。總線(xiàn)橋路1043可經(jīng)由總線(xiàn)1044耦合到其他設(shè)備,諸如鍵盤(pán)/鼠標(biāo)1045、參照?qǐng)D10討論的網(wǎng)絡(luò)接口設(shè)備1030(諸如調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)或者可耦合到計(jì)算機(jī)網(wǎng)絡(luò)903的類(lèi)似設(shè)備)、音頻I/O設(shè)備和/或數(shù)據(jù)存儲(chǔ)設(shè)備1048。數(shù)據(jù)存儲(chǔ)設(shè)備1048可存儲(chǔ)由處理器1002和/或1004執(zhí)行的代碼 1049。參看圖11,將討論根據(jù)一個(gè)或多個(gè)實(shí)施例的無(wú)線(xiàn)局域網(wǎng)或蜂窩網(wǎng)絡(luò)通信系統(tǒng)1100的框圖。在圖11所示的通信系統(tǒng)1100中,移動(dòng)設(shè)備1110可包括耦合到天線(xiàn)1118以及諸如處理器之類(lèi)的邏輯1114(例如,以提供基帶和媒體接入控制(MAC)處理功能)的無(wú)線(xiàn)收發(fā)機(jī)1112。在一些實(shí)施例中,本文中討論的計(jì)算系統(tǒng)中的一個(gè)或多個(gè)可包括參照無(wú)線(xiàn)設(shè)備1110討論的組件中的一個(gè)或多個(gè)。而且,計(jì)算設(shè)備1102可包括本文中參照?qǐng)D1-10討論的系統(tǒng)/設(shè)備的一個(gè)或多個(gè)組件。在一些實(shí)施例中,無(wú)線(xiàn)設(shè)備1110可以是蜂窩電話(huà)或者諸如移動(dòng)個(gè)人計(jì)算機(jī)或個(gè)人數(shù)字助理之類(lèi)的結(jié)合了蜂窩電話(huà)通信模塊的信息處理系統(tǒng)。一個(gè)實(shí)施例中的邏輯1114可包括單個(gè)處理器,或者替代地可包括基帶處理器和應(yīng)用處理器(例如,其中參照?qǐng)D11討論的每個(gè)處理器可包括一個(gè)或多個(gè)處理器核,或者可以是與參照?qǐng)Dι- ο討論的處理器相同或類(lèi)似)。邏輯1114耦合至存儲(chǔ)器1116,該存儲(chǔ)器1116可包括諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)的易失性存儲(chǔ)器、諸如閃存的非易失性存儲(chǔ)器,或者替代地可包括諸如硬盤(pán)驅(qū)動(dòng)器之類(lèi)的其他類(lèi)型的存儲(chǔ)。存儲(chǔ)器1116的某部分或全部可被包括在與邏輯1114相同的集成電路上,或者替代地,存儲(chǔ)器1116的某部分或全部可被置于集成電路或在邏輯1114的集成電路之外的其它介質(zhì)(例如硬盤(pán)驅(qū)動(dòng)器)上。無(wú)線(xiàn)設(shè)備1110可經(jīng)由無(wú)線(xiàn)通信鏈路與接入點(diǎn)1122通信,其中接入點(diǎn)1122可包括 以下各項(xiàng)中的一個(gè)或多個(gè)天線(xiàn)1120、收發(fā)機(jī)1124、處理器1126、和存儲(chǔ)器1128。如圖11中所示的,無(wú)線(xiàn)設(shè)備1110和/或接入點(diǎn)1122中的一個(gè)或多個(gè)可包括(嵌入式)邏輯990,該(嵌入式)邏輯可以是與參照?qǐng)Dι- ο討論的解壓縮器相同或類(lèi)似。在一個(gè)實(shí)施例中,接入點(diǎn)1122可以是蜂窩電話(huà)網(wǎng)絡(luò)的基站,并且在另一實(shí)施例中,接入點(diǎn)1122可以是無(wú)線(xiàn)局域網(wǎng)或個(gè)域網(wǎng)的接入點(diǎn)或無(wú)線(xiàn)路由器。在一實(shí)施例中,接入點(diǎn)1122(以及任選的無(wú)線(xiàn)設(shè)備1110)可包括兩個(gè)或更多個(gè)天線(xiàn),例如,用于提供空分多址(SDMA)系統(tǒng)或多輸入多輸出(MMO)系統(tǒng)。接入點(diǎn)1122可與網(wǎng)絡(luò)903耦合,使得無(wú)線(xiàn)設(shè)備1110可以通過(guò)經(jīng)由無(wú)線(xiàn)通信鏈路與接入點(diǎn)1122通信來(lái)與網(wǎng)絡(luò)903 (包括與網(wǎng)絡(luò)903耦合的設(shè)備)通信。網(wǎng)絡(luò)903可包括諸如電話(huà)網(wǎng)或因特網(wǎng)之類(lèi)的公共網(wǎng)絡(luò),或者替代地,網(wǎng)絡(luò)903可包括諸如內(nèi)聯(lián)網(wǎng)之類(lèi)的私有網(wǎng)絡(luò),或者公共網(wǎng)絡(luò)和私有網(wǎng)絡(luò)的組合。無(wú)線(xiàn)設(shè)備1110與接入點(diǎn)1122之間的通信可經(jīng)由無(wú)線(xiàn)局域網(wǎng)(WLAN)來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,無(wú)線(xiàn)設(shè)備1110與接入點(diǎn)1122之間的通信可至少部分地經(jīng)由遵循第三代作伙伴計(jì)劃(3GPP或3G)標(biāo)準(zhǔn)的蜂窩通信網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。在一些實(shí)施例中,天線(xiàn)1118可被用在無(wú)線(xiàn)傳感器網(wǎng)絡(luò)或網(wǎng)狀網(wǎng)絡(luò)中。在本發(fā)明的各個(gè)實(shí)施例中,本文中例如參照?qǐng)D1-11所討論的操作可實(shí)現(xiàn)為硬件(例如,邏輯電路)、軟件(包括例如控制諸如處理器之類(lèi)的處理器的操作的微代碼)、固件或其組合,它們可作為計(jì)算機(jī)程序產(chǎn)品來(lái)提供,例如包括其上存儲(chǔ)有用于編程計(jì)算機(jī)(例如,計(jì)算設(shè)備的處理器或其他邏輯)以執(zhí)行本文所討論的操作的指令(或軟件程序)的有形機(jī)器可讀或計(jì)算機(jī)可讀介質(zhì)。機(jī)器可讀介質(zhì)可包括本文所討論的存儲(chǔ)設(shè)備。此外,此類(lèi)有形計(jì)算機(jī)可讀介質(zhì)可下載為計(jì)算機(jī)程序產(chǎn)品,其中該程序可通過(guò)傳播介質(zhì)中的數(shù)據(jù)信號(hào)經(jīng)由通信鏈路(例如,總線(xiàn)、調(diào)制解調(diào)器或網(wǎng)絡(luò)連接)從遠(yuǎn)程計(jì)算機(jī)(例如,服務(wù)器)傳遞到請(qǐng)求計(jì)算機(jī)(例如,客戶(hù)機(jī))。在本說(shuō)明書(shū)中對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的參考表示結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在至少一個(gè)實(shí)現(xiàn)中。在說(shuō)明書(shū)的各位置出現(xiàn)的短語(yǔ)“在一個(gè)實(shí)施例中”不一定全指同一實(shí)施例。同樣,在說(shuō)明書(shū)和權(quán)利要求書(shū)中,可使用術(shù)語(yǔ)“耦合”和“連接“及其衍生詞。在本發(fā)明的一些實(shí)施例中,“連接”可用于指示兩個(gè)或多個(gè)元件相互直接物理或電接觸?!榜詈稀笨杀硎緝蓚€(gè)或更多元件直接物理或電接觸。然而,“耦合”還可表示兩個(gè)或多個(gè)元件沒(méi)有彼此直接接觸,但彼此仍協(xié)作或相互作用。因此,雖然用結(jié)構(gòu)特征和/或方法動(dòng)作專(zhuān)屬語(yǔ)言描述了本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)理解所保護(hù)的主題可不限于所描述的具體特征或動(dòng)作。相反,該特定特征和動(dòng)作被公開(kāi) 作為實(shí)現(xiàn)所保護(hù)主題的樣本形式。
權(quán)利要求
1.一種裝置,包括 第一存儲(chǔ)單元,用于存儲(chǔ)與嵌入式代碼指令地址相對(duì)應(yīng)的指針; 第二存儲(chǔ)單元,用于存儲(chǔ)與所述指針相對(duì)應(yīng)的獨(dú)特嵌入式代碼指令;以及 用于執(zhí)行所存儲(chǔ)的嵌入式代碼指令的處理器,其中所述第一存儲(chǔ)單元響應(yīng)于在第一存儲(chǔ)單元處對(duì)所述嵌入式代碼指令地址的接收而向所述第二存儲(chǔ)單元傳送所述指針,以及 其中所述第二存儲(chǔ)單元響應(yīng)于在所述第二存儲(chǔ)單元處對(duì)所述指針的接收而輸出所述獨(dú)特嵌入式代碼指令。
2.如權(quán)利要求I所述的裝置,其特征在于,所述第二存儲(chǔ)單元在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng)。
3.如權(quán)利要求2所述的裝置,其特征在,所述第二存儲(chǔ)單元從所述第一存儲(chǔ)單元接收第二指針,以及通過(guò)繞開(kāi)所述第一存儲(chǔ)單元接收所述第一指針。
4.如權(quán)利要求I所述的裝置,其特征在于,所述第二存儲(chǔ)單元在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng),其中所述第一指針將是從所述第二嵌入式代碼指令地址推導(dǎo)出的值。
5.如權(quán)利要求I所述的裝置,其特征在于,在每個(gè)后繼處理器周期期間,在新嵌入式代碼指令地址序列的第一周期之后,將從所述第一存儲(chǔ)單元取得至少一個(gè)指針,并且將從所述第二存儲(chǔ)單元取得至少一個(gè)獨(dú)特嵌入式代碼指令。
6.如權(quán)利要求I所述的裝置,其特征在于,用于從第一存儲(chǔ)單元取得所述指針以及從所述第二存儲(chǔ)單元取得所述獨(dú)特嵌入式代碼指令的時(shí)間段等于或小于所述處理器的一個(gè)周期。
7.如權(quán)利要求I所述的裝置,其特征在于,所述獨(dú)特嵌入式代碼指令包括存儲(chǔ)在所述第二存儲(chǔ)單元中的一組獨(dú)特比特模式,所述一組獨(dú)特比特模式組成嵌入式碼字。
8.如權(quán)利要求I所述的裝置,其特征在于,還包括只讀存儲(chǔ)器,其中所述存儲(chǔ)器包括所述第一存儲(chǔ)單元或所述第二存儲(chǔ)單元。
9.如權(quán)利要求I所述的裝置,其特征在于,還包括用于耦合所述第一存儲(chǔ)單元或所述第二存儲(chǔ)單元的至少一個(gè)緩沖器或寄存器。
10.如權(quán)利要求I所述的裝置,其特征在于,還包括用于耦合所述第一存儲(chǔ)單元或所述第二存儲(chǔ)單元的多路復(fù)用器。
11.如權(quán)利要求I所述的裝置,其特征在于,所述處理器、所述第一存儲(chǔ)單元或所述第二存儲(chǔ)單元中的一個(gè)或多個(gè)在同一集成電路管芯上。
12.如權(quán)利要求I所述的裝置,其特征在于,所述處理器包括多個(gè)處理器核。
13.—種方法,包括 將與嵌入式代碼指令地址相對(duì)應(yīng)的指針存儲(chǔ)在第一存儲(chǔ)單元中; 將與所述指針相對(duì)應(yīng)的獨(dú)特嵌入式代碼指令存儲(chǔ)在第二存儲(chǔ)單元中;以及 其中所述第一存儲(chǔ)單元響應(yīng)于在第一存儲(chǔ)單元處對(duì)所述嵌入式代碼指令地址的接收而向所述第二存儲(chǔ)單元傳送所述指針,以及 其中所述第二存儲(chǔ)單元響應(yīng)于在所述第二存儲(chǔ)單元處對(duì)所述指針的接收而輸出所述獨(dú)特嵌入式代碼指令。
14.如權(quán)利要求13所述的方法,其特征在于,還包括在新嵌入式代碼指令地址序列的第 一周期期間并且在第二指針之前在所述第二存儲(chǔ)單元處接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng)。
15.如權(quán)利要求14所述的方法,其特征在,還包括在所述第二存儲(chǔ)單元處從所述第一存儲(chǔ)單元接收第二指針,以及通過(guò)繞開(kāi)所述第一存儲(chǔ)單元接收所述第一指針。
16.如權(quán)利要求13所述的方法,其特征在于,還包括在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前在所述第二存儲(chǔ)單元處接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng),其中所述第一指針將是從所述第二嵌入式代碼指令地址推導(dǎo)出的值。
17.如權(quán)利要求13所述的方法,其特征在于,還包括在每個(gè)后繼處理器周期期間,在新嵌入式代碼指令地址序列的第一周期之后,從所述第一存儲(chǔ)單元取得至少一個(gè)指針,并且從所述第二存儲(chǔ)單元取得至少一個(gè)獨(dú)特嵌入式代碼指令。
18.一種計(jì)算系統(tǒng),包括 用于存儲(chǔ)指針陣列和獨(dú)特模式陣列的存儲(chǔ)器,其中所述指針陣列存儲(chǔ)與嵌入式代碼指令地址相對(duì)應(yīng)的指針,而所述獨(dú)特模式指針存儲(chǔ)與所述指針相對(duì)應(yīng)的獨(dú)特嵌入式代碼指令; 用于執(zhí)行所存儲(chǔ)的嵌入式代碼指令的處理器,其中所述指針陣列響應(yīng)于在所述指針陣列處對(duì)所述嵌入式代碼指令地址的接收向所述獨(dú)特模式陣列傳送所述指針,并且其中所述獨(dú)特模式陣列響應(yīng)于在所述獨(dú)特模式陣列處對(duì)所述指針的接收輸出獨(dú)特嵌入式代碼指令。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述獨(dú)特模式陣列在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng)。
20.如權(quán)利要求19所述的系統(tǒng),其特征在于,所述獨(dú)特模式陣列從所述指針陣列接收所述第二指針,以及通過(guò)繞開(kāi)所述指針陣列接收所述第一指針。
21.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述獨(dú)特模式陣列在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng),其中所述第一指針是從所述第二嵌入式代碼指令地址推導(dǎo)出的值。
22.如權(quán)利要求18所述的系統(tǒng),其特征在于,在每個(gè)后繼處理器周期期間,在新嵌入式代碼指令地址序列的第一周期之后,將從所述指針陣列取得至少一個(gè)指針,并且將從所述獨(dú)特模式陣列取得至少一個(gè)獨(dú)特嵌入式代碼指令。
23.如權(quán)利要求18所述的系統(tǒng),其特征在于,用于從指針陣列取得所述指針以及從所述獨(dú)特模式陣列取得所述獨(dú)特嵌入式代碼指令的時(shí)間段等于或小于所述處理器的一個(gè)周期。
24.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述獨(dú)特嵌入式代碼指令包括存儲(chǔ)在所述獨(dú)特模式陣列中的一組獨(dú)特比特模式,所述一組獨(dú)特比特模式組成嵌入式碼字。
25.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述存儲(chǔ)器包括只讀存儲(chǔ)器。
26.—種包括一個(gè)或多個(gè)指令的計(jì)算機(jī)可讀介質(zhì),所述指令在所述處理器上執(zhí)行時(shí)將所述處理器配置成執(zhí)行一個(gè)或多個(gè)操作以 將與嵌入式代碼指令地址相對(duì)應(yīng)的指針存儲(chǔ)在第一存儲(chǔ)器單元中; 將與所述指針相對(duì)應(yīng)的獨(dú)特嵌入式代碼指令存儲(chǔ)在第二存儲(chǔ)單元中;以及其中所述第一存儲(chǔ)單元響應(yīng)于在第一存儲(chǔ)單元處對(duì)所述嵌入式代碼指令地址的接收而向所述第二存儲(chǔ)單元傳送所述指針,以及 其中所述第二存儲(chǔ)單元響應(yīng)于在所述第二存儲(chǔ)單元處對(duì)所述指針的接收而輸出所述獨(dú)特嵌入式代碼指令。
27.如權(quán)利要求26所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括一個(gè)或多個(gè)指令,所述指令在處理器上執(zhí)行時(shí)將所述處理器配置成在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前在所述第二存儲(chǔ)單元處接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng)。
28.如權(quán)利要求27所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括一個(gè)或多個(gè)指令,所述指令在處理器上執(zhí)行時(shí)將所述處理器配置成在所述第二存儲(chǔ)單元處從所述第一存儲(chǔ)單元接收所述第二指針,以及通過(guò)繞開(kāi)所述第一存儲(chǔ)單元接收所述第一指針。
29.如權(quán)利要求26所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括一個(gè)或多個(gè)指令,所述指令在處理器上執(zhí)行時(shí)將所述處理器配置成在新嵌入式代碼指令地址序列的第一周期期間并且在第二指針之前在所述第二存儲(chǔ)單元處接收第一指針,所述第一指針與第一嵌入式代碼指令地址相對(duì)應(yīng),所述第二指針與第二嵌入式代碼指令地址相對(duì)應(yīng),其中所述第一指針是從所述第二嵌入式代碼指令地址推導(dǎo)出的值。
30.如權(quán)利要求26所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括一個(gè)或多個(gè)指令,所述指令在處理器上執(zhí)行時(shí)將所述處理器配置成在每個(gè)后繼處理器周期期間,在新嵌入式代碼指令地址序列的第一周期之后,從所述第一存儲(chǔ)單元取得至少一個(gè)指針,并且從所述第二存儲(chǔ)單元獲取至少一個(gè)獨(dú)特嵌入式代碼指令。
全文摘要
描述了涉及加速經(jīng)壓縮代碼的執(zhí)行的方法和裝置。在一個(gè)實(shí)施例中,使用兩級(jí)嵌入式代碼解壓縮方案,其消除氣泡,這可增大速度和/或降低功耗。也描述并要求保護(hù)其他的實(shí)施例。
文檔編號(hào)G06F9/06GK102934074SQ201180027382
公開(kāi)日2013年2月13日 申請(qǐng)日期2011年6月27日 優(yōu)先權(quán)日2010年6月27日
發(fā)明者E·鮑林, M·小布萊特尼茲, N·伯恩, S·阿弗尼 申請(qǐng)人:英特爾公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
米林县| 塔河县| 西贡区| 敖汉旗| 延吉市| 布拖县| 乌苏市| 康保县| 常熟市| 志丹县| 盐津县| 佛冈县| 嘉兴市| 义马市| 陇西县| 青阳县| 长宁县| 咸宁市| 余干县| 确山县| 弥勒县| 重庆市| 绥棱县| 临江市| 万全县| 尚志市| 新余市| 五大连池市| 抚州市| 屯昌县| 土默特左旗| 开江县| 札达县| 海城市| 晋城| 临潭县| 凭祥市| 六枝特区| 顺昌县| 澳门| 阿拉善右旗|