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

沒有算術(shù)和邏輯單元的計(jì)算機(jī)處理器和系統(tǒng)的制作方法

文檔序號:6534487閱讀:223來源:國知局
沒有算術(shù)和邏輯單元的計(jì)算機(jī)處理器和系統(tǒng)的制作方法
【專利摘要】一種計(jì)算機(jī)系統(tǒng)包括處理器和存儲器,處理器包括被配置成重復(fù)地獲得計(jì)算機(jī)程序的下一個指令的指令循環(huán)電路、被配置成對指令循環(huán)電路獲得的指令解碼并且執(zhí)行該指令的指令解碼器,該計(jì)算機(jī)系統(tǒng)支持在一個或多個所述指令的控制下的多個算術(shù)和/或邏輯操作,其中存儲器存儲多個表格,所述多個算術(shù)和/或邏輯操作中的每一個特定操作受存儲器中存儲的特定表格支持,每個特定表格包括針對一系列輸入的所述特定算術(shù)操作的結(jié)果。
【專利說明】沒有算術(shù)和邏輯單元的計(jì)算機(jī)處理器和系統(tǒng)

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種包括處理器和存儲器的計(jì)算機(jī)系統(tǒng)。

【背景技術(shù)】
[0002]人們早已知道,計(jì)算機(jī)系統(tǒng)通過所謂的邊信道泄漏一些信息。觀察計(jì)算機(jī)系統(tǒng)的輸入-輸出行為可能不提供關(guān)于諸如計(jì)算機(jī)系統(tǒng)使用的秘密密鑰之類的敏感信息的任何有用信息。但是,計(jì)算機(jī)系統(tǒng)具有可以被觀察的其他信道,例如其功耗或者電磁輻射;這些信道稱為邊信道。
[0003]通過邊信道,計(jì)算機(jī)系統(tǒng)可能在其使用期間“泄漏”秘密信息。觀察和分析邊信道可能給予攻擊者對于比可以從輸入-輸出行為獲得的信息更好的信息的訪問。
[0004]邊信道問題的當(dāng)前方法設(shè)法在計(jì)算中引入隨機(jī)性。這些方法被證明不那么令人滿意。它們使得計(jì)算復(fù)雜并且使用附加的功率。而且,經(jīng)??梢允褂媒y(tǒng)計(jì)手段對基于隨機(jī)性的對抗措施進(jìn)行反演。


【發(fā)明內(nèi)容】

[0005]本發(fā)明人的見解是,計(jì)算機(jī)系統(tǒng)的各種不同的元件并不以相同的方式對邊信道產(chǎn)生貢獻(xiàn)。特別地,ALU的能耗直接依賴于它處理的數(shù)據(jù)。特別地,如果ALU處理秘密信息,則其對于功耗的貢獻(xiàn)依賴于秘密信息。計(jì)算機(jī)的其他元件的功耗少得多地依賴于實(shí)際數(shù)據(jù)值。
[0006]有利的將是擁有一種改進(jìn)的計(jì)算機(jī)系統(tǒng),該系統(tǒng)的功耗較少依賴于秘密數(shù)據(jù)。
[0007]提供了一種計(jì)算機(jī)系統(tǒng),該系統(tǒng)包括處理器和存儲器,該處理器包括被配置成重復(fù)地獲得計(jì)算機(jī)程序的下一個指令的指令循環(huán)電路、被配置成對指令循環(huán)電路獲得的指令解碼并且執(zhí)行該指令的指令解碼器,該計(jì)算機(jī)系統(tǒng)支持一個或多個所述指令的控制下的多個算術(shù)和/或邏輯操作,其中存儲器存儲多個表格,所述多個算術(shù)和/或邏輯操作中的每一個特定操作受存儲器中存儲的表示針對一系列輸入的所述特定算術(shù)操作的結(jié)果的至少一部分的至少一個特定表格支持。
[0008]通過從該系統(tǒng)中消除ALU,也消除了其對于邊信道的所有貢獻(xiàn)。這使得系統(tǒng)更有彈性地反對邊信道攻擊。
[0009]所述計(jì)算機(jī)系統(tǒng)提供了一種促進(jìn)表格驅(qū)動的程序或虛擬機(jī)的硬件解決方案。該計(jì)算機(jī)系統(tǒng)允許任何順序的表格訪問。使用該計(jì)算機(jī)系統(tǒng),可以實(shí)現(xiàn)安全的虛擬機(jī)。應(yīng)當(dāng)指出的是,像在白盒密碼術(shù)中那樣,可以使實(shí)現(xiàn)指令的表格混淆,從而不能對表格的功能進(jìn)行反演工程;然而,不必一定應(yīng)用混淆。
[0010]所述計(jì)算機(jī)系統(tǒng)提供了更多的優(yōu)點(diǎn),下面列出了其中一些優(yōu)點(diǎn):
-簡化的處理器設(shè)計(jì):在寄存器文件與ALU之間無需復(fù)雜的連接(總線),
-指令集合的自由選擇。操作的語義在表格中??梢韵虮砀裉畛浜唵?、復(fù)雜或者加密的操作。 -可擴(kuò)展的指令集合??梢栽趫?zhí)行其他程序期間在存儲器中添加新表格。
-在電學(xué)上,所有操作都是表格訪問,因此,表格中的操作具有相似的電學(xué)行為。結(jié)果,通過采用不同操作的電學(xué)行為的差異的程序反演工程是不可行的。
-由于不存在ALU的原因,BoM減少,
-功率效率提高。
-通過高效流水線化而快速執(zhí)行,
-反對臨時功率短缺(其可能在近場通信(NFC)中出現(xiàn))的彈性增大。之所以如此,是因?yàn)橹虚g處理狀態(tài)保持在存儲器中,并且可以在能量再次可用時恢復(fù)處理,
-安全性增強(qiáng):利用ALU的性質(zhì)的密碼攻擊(已知為邊信道攻擊)不可行,因?yàn)椴淮嬖贏LU。而且,代替ALU操作的表格可以處于加密域,換言之,索引被加密和/或表值也被加密。
[0011]無ALU的表格驅(qū)動的處理器對于其中能量消耗、速度和安全性重要的應(yīng)用而言是理想的。所述計(jì)算機(jī)系統(tǒng)可以應(yīng)用于NFC。
[0012]提供了無ALU的表格驅(qū)動的處理器的各個不同的實(shí)施例,利用這些實(shí)施例,利用常規(guī)處理器在ALU中執(zhí)行的操作作為存儲器中的表格訪問而被執(zhí)行。處理器上的表格可以包含昂貴的分計(jì)算,但是它們事先經(jīng)過計(jì)算。
[0013]例如,存儲器可以存儲多個表格,使得所述多個算術(shù)和/或邏輯操作中的每個特定操作受存儲器中存儲的特定表格支持,每個特定表格包括針對一系列輸入的所述特定算術(shù)操作的結(jié)果。在存儲器中具有操作的結(jié)果具有需要更少表格查找的優(yōu)點(diǎn)。另一方面,通過將操作拆分到多個表格上,表格的尺寸更小。例如,所述算術(shù)和/或邏輯指令中的一個或多個或者全部可以受存儲器中存儲的多個表格支持,使得所述多個表格一起表不針對一系列輸入的所述特定算術(shù)操作的結(jié)果。
[0014]例如,次乘法表格可以用來減小乘法表格的查找表尺寸。
[0015]在一個實(shí)施例中,處理器包括表格轉(zhuǎn)化器,該表格轉(zhuǎn)化器被配置成接收來自指令寄存器的算術(shù)和/或邏輯指令并且產(chǎn)生相應(yīng)的表格查找操作。例如,表格轉(zhuǎn)化器可以連接到處理器的內(nèi)部總線。表格轉(zhuǎn)化器可以使用微程序執(zhí)行該指令。表格轉(zhuǎn)化器可以包含在指令解碼器中。
[0016]在一個實(shí)施例中,所述計(jì)算機(jī)系統(tǒng)具有備用設(shè)備,該設(shè)備被配置成保存包括指令指針的處理器的寄存器的內(nèi)容。依照本發(fā)明的計(jì)算機(jī)系統(tǒng)對于待機(jī)操作是特別高效的,因?yàn)闊o需保存ALU的內(nèi)容。指令指針可以實(shí)現(xiàn)為指令指針寄存器。
[0017]在一個實(shí)施例中,算術(shù)和/或邏輯操作排他地受查找表支持。在一個實(shí)施例中,所述計(jì)算機(jī)系統(tǒng)不包括從處理器的內(nèi)部總線接收第一和第二操作數(shù)并且向內(nèi)部總線產(chǎn)生根據(jù)第一和第二操作數(shù)計(jì)算的輸出的組合邏輯電路。
[0018]在一個實(shí)施例中,指令解碼器被配置用于通過在表格中的與條件值相應(yīng)的位置處從表格獲取表示地址的數(shù)據(jù)項(xiàng)并且將該地址寫到指令指針而進(jìn)行以該條件值為條件的跳轉(zhuǎn)。例如,指令解碼器可以包括用于獲取數(shù)據(jù)項(xiàng)的數(shù)據(jù)項(xiàng)獲取器以及用于將地址寫到指令指針的地址寫入器。數(shù)據(jù)項(xiàng)可以是絕對地址本身。數(shù)據(jù)項(xiàng)可以是相對于指令指針中存儲的當(dāng)前地址的偏移量。按照這種方式,可以在無需狀態(tài)寄存器的情況下實(shí)現(xiàn)條件跳轉(zhuǎn)。
[0019]在一個實(shí)施例中,指令循環(huán)電路包括微指令,其例如使用來自指令循環(huán)電路中包括的存儲器中存儲的表格的表格查找。在一個實(shí)施例中,支持指令的查找表和支持指令循環(huán)電路的查找表處于相同的存儲器中。甚至可以將微碼存儲在存儲器中。這樣的指令循環(huán)電路實(shí)現(xiàn)起來甚至更簡單。
[0020]在一個實(shí)施例中,存儲器具有結(jié)合了表格處理的存儲器架構(gòu)。這具有緩解存儲器與處理器之間的帶寬有限連接并且允許緊密的高帶寬集成的優(yōu)點(diǎn)。
[0021]在一個實(shí)施例中,所述計(jì)算機(jī)系統(tǒng)具有用于根據(jù)基地址和索引計(jì)算表格中的條目的地址的地址計(jì)算單元,其中該地址計(jì)算單元串接基地址和索引。
[0022]在一個實(shí)施例中,存儲器包括指令類型表格,該指令類型表格存儲了支持算術(shù)和邏輯函數(shù)的所有表格的基地址。
[0023]在一個實(shí)施例中,通過例如由獲取器例如從指令類型表格獲取支持所述算術(shù)和/或邏輯操作的表格的基地址、例如由加法器將從所述算術(shù)和/或邏輯操作的第一操作數(shù)獲得的索引相加到該基地址、并且根據(jù)相加的基地址獲取結(jié)果或者另外的表格地址而支持算術(shù)和/或邏輯操作。應(yīng)當(dāng)指出的是,加法器可以串接基地址和索引,而不是常規(guī)的相加。
[0024]本發(fā)明的另一方面涉及如所述計(jì)算機(jī)系統(tǒng)中那樣的計(jì)算機(jī)處理器。
[0025]本發(fā)明的另一方面涉及一種編譯器,該編譯器被配置成以用于如前面的權(quán)利要求中任何一項(xiàng)中的計(jì)算機(jī)系統(tǒng)的第一計(jì)算機(jī)語言編譯計(jì)算機(jī)程序。例如,可以使用用于具有ALU的處理器的常規(guī)編譯器,其被修改成將所有算術(shù)和邏輯操作碼轉(zhuǎn)化為表格查找操作。
[0026]該編譯器也可以通過計(jì)算針對一系列輸入值的算術(shù)或邏輯操作的結(jié)果并且將該結(jié)果存儲在表格中而編譯所需的查找表。用于具有查找表的存儲器的非易失性存儲器是優(yōu)選的。
[0027]查找表也可以存在于處理器中的ROM中。
[0028]所述計(jì)算機(jī)系統(tǒng)是一種電子設(shè)備,尤其是一種移動電子設(shè)備,例如移動電話、機(jī)頂盒、計(jì)算機(jī)等等。該計(jì)算機(jī)系統(tǒng)可以是智能卡。
[0029]一種計(jì)算機(jī)系統(tǒng)被提供,其具有處理器和存儲器。處理器包括重復(fù)地將來自存儲器的下一個指令傳輸至指令寄存器的通常的指令循環(huán)電路。該傳輸?shù)闹噶罾弥噶罱獯a器解碼和執(zhí)行。該計(jì)算機(jī)系統(tǒng)支持多個算術(shù)和邏輯操作,例如加法、乘法等等,這些操作可以在指令的控制下執(zhí)行。令人驚奇的是,存儲器存儲多個表格;所述多個操作中的每個特定操作受存儲器中存儲的所述多個表格支持。這些表格可以包含針對一系列輸入的特定操作的結(jié)果。特別地,所述多個算術(shù)操作可以排他地受多個表格支持,使得處理器無需ALU。優(yōu)點(diǎn)是不太復(fù)雜、更加安全的處理器。

【專利附圖】

【附圖說明】
[0030]本發(fā)明的這些和其他方面根據(jù)下文描述的實(shí)施例是清楚明白的,并且將參照這些實(shí)施例進(jìn)行闡述。在附圖中,
圖1示出了常規(guī)計(jì)算機(jī)處理器中的ALU,
圖2示出了具有不帶ALU的處理器的計(jì)算機(jī)系統(tǒng),
圖3a示出了第一指令循環(huán)電路,
圖3b示出了第二指令循環(huán)電路,
圖4圖示出了基于表格的算術(shù),
圖5和圖6圖不出基于表格的程序的執(zhí)行, 圖7圖示出使用表格控制寄存器的基于表格的程序的執(zhí)行,
圖8圖示出用于表格的無進(jìn)位地址計(jì)算。
[0031]應(yīng)當(dāng)指出的是,不同圖中具有相同附圖標(biāo)記的項(xiàng)目具有相同的結(jié)構(gòu)特征和相同的功能或者是相同的信號。在已經(jīng)解釋了這樣的項(xiàng)目的功能和/或結(jié)構(gòu)的情況下,在【具體實(shí)施方式】中無需對其重復(fù)解釋。

【具體實(shí)施方式】
[0032]盡管本發(fā)明容許許多不同形式的實(shí)施例,但是在附圖中示出且將在這里詳細(xì)地描述一個或多個特定實(shí)施例,同時理解,本公開應(yīng)當(dāng)被認(rèn)為例示了本發(fā)明的原理并且不意在將本發(fā)明限制為所示出和描述的特定實(shí)施例。
[0033]圖1示出了包括ALU 120的常規(guī)處理器100。例如,ALU 120為32位(bit)ALU。在計(jì)算中,ALU (算術(shù)邏輯單元)是一種執(zhí)行算術(shù)和邏輯操作的數(shù)字電路。ALU是計(jì)算機(jī)的中央處理單元的基本構(gòu)造塊,并且甚至最簡單的微處理器也包含一個或多個ALU。處理器的大多數(shù)操作由一個或多個ALU執(zhí)行。ALU加載來自輸入寄存器的數(shù)據(jù),外部控制單元接著告知ALU對該數(shù)據(jù)執(zhí)行什么操作,并且然后ALU將其結(jié)果存儲到輸出寄存器中??刂茊卧?fù)責(zé)在這些寄存器、ALU和存儲器之間移動處理的數(shù)據(jù)。例如,ALU可以使用多路復(fù)用器選擇與操作相應(yīng)的輸出。
[0034]ALU 120被實(shí)現(xiàn)為組合邏輯(有時也稱為結(jié)合邏輯),其是通過布爾電路實(shí)現(xiàn)的一種類型的數(shù)字邏輯,其中輸出是僅僅當(dāng)前輸入的純函數(shù)。組合邏輯沒有將結(jié)果從一個操作帶至下一個操作的存儲器。
[0035]圖1示出了內(nèi)部總線110和ALU 120。ALU 120從內(nèi)部總線110接收輸入122和124,并且將輸出128提供給內(nèi)部總線。ALU 120執(zhí)行的操作處于ALU控制信號126的控制之下。處理器100可以包括其他電路系統(tǒng),例如指令循環(huán)電路、地址計(jì)算單元等等,其利用計(jì)算機(jī)處理器電路系統(tǒng)130示意性地指示。處理器100可以連接到存儲器140。
[0036]圖2示出了一種計(jì)算機(jī)系統(tǒng)200。計(jì)算機(jī)系統(tǒng)200包括計(jì)算機(jī)處理器210,例如CPU。系統(tǒng)200,尤其是處理器210不包括ALU。算術(shù)和邏輯操作使用如本文所描述的查找表實(shí)現(xiàn)。
[0037]除了處理器之外,系統(tǒng)可以具有附加的部件。圖2中示出在系統(tǒng)200內(nèi)但是在處理器210外部的是存儲器250、存儲器映射I/O接口 255、數(shù)據(jù)和地址總線235以及控制總線260。存儲器映射I/O接口 255是可選的;可以使用其他方式的I/O接口。代替讓存儲器在外部的是,可以將存儲器250集成到處理器210中。處理器210可以具有包括接口 230的地址計(jì)算單元(ACT)。
[0038]處理器210包括內(nèi)部總線220、數(shù)據(jù)和地址總線接口 230、指令循環(huán)電路240、指令解碼器241和寄存器文件245。
[0039]處理器210可以經(jīng)由數(shù)據(jù)和地址總線接口 230獲取來自存儲器250的數(shù)據(jù)。典型地,數(shù)據(jù)和地址總線235作為單獨(dú)的數(shù)據(jù)總線和地址總線而執(zhí)行。使用接口 230將地址置于地址總線上,作為響應(yīng),存儲器250獲取具有該地址的存儲器位置的數(shù)據(jù)內(nèi)容。通過接口230,將獲取的數(shù)據(jù)置于內(nèi)部總線220上。可以將存儲器或I/O異?;蛘吖收系戎糜诳刂瓶偩€260上,其寫到寄存器文件245的寄存器。如果不想得到異常等或者以不同的方式傳送異常等,那么可以省略總線260。
[0040]寄存器文件245包括多個寄存器。例如,這些寄存器可以為8位寬。例如,處理器210可以在寄存器文件245中具有三個寄存器,乂、¥和2。例如,處理器210可以具有更多寄存器,例如8、12、16、32或者更多個。
[0041]指令解碼器241被示為包括在指令循環(huán)電路240中,但這不是必須的。這兩個電路可以分開實(shí)現(xiàn),并且經(jīng)由例如內(nèi)部總線220或者經(jīng)由附加的內(nèi)部總線等等通信。
[0042]指令循環(huán)電路240被配置成重復(fù)地獲得計(jì)算機(jī)程序的下一個指令。計(jì)算機(jī)程序可以存儲在存儲器250中,或者來自另一個源,例如高速緩存器、外部源等等。例如,指令循環(huán)電路240可以包括程序計(jì)數(shù)器寄存器,該指令循環(huán)電路被配置成在程序計(jì)數(shù)器寄存器的控制下獲得下一個指令。例如,指令循環(huán)電路240可以將來自存儲器250的在由程序計(jì)數(shù)器寄存器指示的存儲器地址處的指令傳輸至指令寄存器。指令解碼器241有權(quán)訪問指令寄存器。
[0043]指令循環(huán)電路可以包括程序計(jì)數(shù)器寄存器推進(jìn)器(圖2中未示出),其被配置成推進(jìn)程序計(jì)數(shù)器寄存器,使得程序計(jì)數(shù)器寄存器控制下一個指令的獲得。程序計(jì)數(shù)器寄存器推進(jìn)器可以修改程序計(jì)數(shù)器寄存器,使得它包含下一個指令在存儲器中的地址。特別地,程序計(jì)數(shù)器寄存器推進(jìn)器可以以字節(jié)單位的指令寬度增大程序計(jì)數(shù)器寄存器。
[0044]處理器210 (例如指令循環(huán)電路240)包括指令解碼器,該指令解碼器被配置成解碼和執(zhí)行指令循環(huán)電路240獲得的指令。
[0045]處理器210可以包括用于獲取來自存儲器中存儲的表格的數(shù)據(jù)的尋址單元(未示出),該尋址單元可以包括將處理器連接到數(shù)據(jù)和地址總線的數(shù)據(jù)和地址總線接口 230。尋址單元可以被配置成根據(jù)基地址和索引計(jì)算地址。尋址單元也稱為地址計(jì)算單元(ACT)。表格(例如數(shù)組、地址)的計(jì)算可以如本文所描述的通過將基地址選擇為2的冪的倍數(shù)而優(yōu)化。
[0046]例如,處理器210可以經(jīng)過多個指令循環(huán)。一個指令循環(huán)可以以找取開始,其中指令循環(huán)電路240將程序計(jì)數(shù)器的值置于地址總線上以便將它發(fā)送至存儲器。存儲器通過在數(shù)據(jù)總線上發(fā)送該存儲器位置的內(nèi)容而響應(yīng)。在找取之后,處理器210繼續(xù)執(zhí)行,基于它獲得的存儲器內(nèi)容而采取某個行動。在該循環(huán)中的某個點(diǎn)處,程序計(jì)數(shù)器將被修改,使得執(zhí)行的下一個指令是不同的指令。例如,使其遞增,使得下一個指令是下一個順序存儲器地址處的指令。像其他處理器寄存器那樣,程序計(jì)數(shù)器可以是二進(jìn)制鎖存器組,每個鎖存器表示程序計(jì)數(shù)器的值的一位。
[0047]在一個實(shí)施例中,除了尋址單元、存儲器和寄存器之外,處理器210還具有與指令指針一起的(微)程序邏輯。處理器210的指令執(zhí)行可以使用所謂的微程序。例如,指令解碼器241可以包括微編程控制單元,將以給定時間步長生成的控制信號一起存儲在控制字(即所謂的微指令)中。實(shí)現(xiàn)指令的控制字集合稱為微程序,并且微程序存儲在稱為控制倉的存儲器元件中。
[0048]然而,處理器210無需包括微程序或者甚至指令指針。相反地,可以預(yù)先確定指令并且將其存儲在硬件中。此外,也可以利用邏輯門或者在編程邏輯陣列(PLA)中直接實(shí)現(xiàn)控制信號邏輯表達(dá)式。
[0049]處理器210示出了一種用于以硬件實(shí)現(xiàn)表格驅(qū)動的處理器的方法。表格驅(qū)動的實(shí)現(xiàn)方式不包括ALU,但是可以包括ACU (地址計(jì)算單元)。表格驅(qū)動的計(jì)算機(jī)程序是查找表網(wǎng)絡(luò)。將程序轉(zhuǎn)化成被實(shí)現(xiàn)為表格訪問鏈(序列)的表格網(wǎng)絡(luò)。
[0050]圖3a和圖3b圖示出可以在處理器210中使用的指令循環(huán)電路240的兩種不同實(shí)現(xiàn)方式。
[0051 ] 圖3a示出了一種指令循環(huán)電路,其包括指令解碼器241、加法器242、指令指針243和指令寄存器244。在指令循環(huán)開始時,指令解碼器241將指令指針243中的地址置于到存儲器的地址總線上并且從存儲器接收下一個指令,該指令被置于指令寄存器244中。接著,指令解碼器241繼續(xù)以執(zhí)行存儲在指令寄存器244中的指令。在執(zhí)行指令之后或期間,力口法器242推進(jìn)指令指針243中的地址。例如,增大指令指針中的地址。
[0052]圖3b示出了指令循環(huán)電路240的一個可替換實(shí)施例,除了沒有加法器242之外,它與圖3a相同。作為替代,圖3b的指令循環(huán)電路包括加法查找表246和基于表格的加法器247。代替計(jì)算的是,下一個地址由基于表格的加法器247在表格246中查找。在一個實(shí)施例中,加法查找表246是一種R0M,其對于每個可尋址存儲器位置存儲了下一個位置。其他實(shí)現(xiàn)方式將所述加法分解成多個加法,每個加法具有表格。例如,可以將所述加法分解成四個逐字節(jié)加法以便執(zhí)行32位加法。可以將進(jìn)位處理成附加的輸入,從而獲得9位輸出、兩個8位輸入和I個進(jìn)位輸入。因此,指令循環(huán)電路被配置成通過查找程序計(jì)數(shù)器寄存器內(nèi)容中的全部或部分地址而修改程序計(jì)數(shù)器寄存器。
[0053]表格驅(qū)動的指令指針推進(jìn)的優(yōu)點(diǎn)是由于表格驅(qū)動的構(gòu)造的原因而改進(jìn)了安全性和對功率輸出的彈性。然而,缺點(diǎn)是由于引入更多的計(jì)算循環(huán)(例如找取存儲器位置、執(zhí)行查找、反饋至寄存器等等)而損失了速度。
[0054]處理器210和系統(tǒng)200 二者都不包含ALU ;然而,所述計(jì)算機(jī)系統(tǒng)確實(shí)支持多個算術(shù)操作,這些操作可以在一個或多個所述指令的控制下執(zhí)行。常規(guī)上由ALU執(zhí)行的操作現(xiàn)在通過訪問一個或多個表格而執(zhí)行。來自表格訪問的結(jié)果被存儲在寄存器中,并且然后可以用在下一個表格訪問中。表格描述的操作可能是復(fù)雜的,但是由于事先計(jì)算了表格,因而這不損害操作速度。
[0055]算術(shù)和邏輯操作可以由處理器210執(zhí)行,該處理器主要執(zhí)行以下三個操作:
Z:= X[Y],(以加載寄存器)
X[Y]:= Z (以加載存儲器)
R:=常數(shù);
Χ、Υ、Ζ和R表示寄存器。方括號表示索引的存儲器檢索。Ζ:=Χ[Υ]表示將由X索引的表格中的由Y索引的條目的值寫到寄存器Ζ,即,將存儲器位置Χ+Υ的數(shù)據(jù)內(nèi)容傳輸至寄存器Ζ。另外,處理器可以寫入存儲器并且將常數(shù)分配給寄存器。處理器包括執(zhí)行上面三個操作的指令,例如“操作碼”。
[0056]所述常數(shù)可以例如為基地址、針對基地址的索引或者操作數(shù)。特別地,該常數(shù)可以是指令類型表格(O)的基地址。指令類型表格存儲了支持算術(shù)和/或邏輯功能的多個表格的基地址。
[0057]在一個實(shí)施例中,既沒有在該處理器中由組合邏輯執(zhí)行的算術(shù)操作(B卩加法、減法、乘法、除法),也沒有在該處理器中由組合邏輯執(zhí)行的邏輯操作(即與三個條件的比較:等于、大于和小于,或者這些組合中的任何一個)。存儲器可以包含用于這些算術(shù)和比較操作的表格。對于一元操作而言,具有單索引的表格就足夠了。例如,為了在寄存器上實(shí)現(xiàn)循環(huán)移位(rotate)操作,例如8051指令RL——左循環(huán)移位累進(jìn)??梢詧?zhí)行表格查找X[Y],其中X包含循環(huán)移位表格的基地址,并且Y為要循環(huán)移動I位的寄存器。
[0058]兩個變量的函數(shù)可以在兩個步驟中求值。如果寄存器Rt包含表格的基地址,那么可以通過依次確定Rc=Rt [Ra]和Rc=Rc [Rb]而計(jì)算Ra和Rb的函數(shù)。換言之,表格Rt [Ra]的條目y等于(表格函數(shù)的基地址)f [Ra,y]。
[0059]這個過程利用存儲在存儲器中的表格O進(jìn)行簡化。表格O包含所有被支持的算術(shù)和邏輯函數(shù)(例如加、乘、除等等)的基地址。存儲在存儲器O中的不同指令類型可以具有不同數(shù)量的輸入和不同數(shù)量的輸出。出于解釋的目的,考慮O中的操作f,比如f=0[i],其具有兩個輸入和單個輸出。我們希望獲得f(a,b),其中a和6的值存儲在寄存器Ra和Rb中,并且將f(a,b)存儲在寄存器Rr中。然后,如下繼續(xù)。首先,定義Rt:=0[i]。然后,依次確定Rc=Rt [Ra]和Rc=Rc [Rb]。換言之,表格0[i] [Ra]的條目y等于(表格函數(shù)的基地址)f[Ra, y] ο
[0060]圖4對以上所述內(nèi)容可視化,其中f等于“加”操作。圖4示出了指令類型表格410,S卩“O”。表格410包含加法表420的地址。在表格420中,給出了用于函數(shù)+0 (430)、+1 (431)等等,包括+V (432)的地址。為了計(jì)算2+3,在表格410中查找“加”基地址。接下來,在加法表420中,找到用于+3的表格。在+3表格中,條目號2 (在O處開始計(jì)數(shù))是所需的和。存儲器O可以通過使用定位各個不同操作的任何地址集合(不必是連續(xù)的地址)而優(yōu)化。
[0061]依照圖2的處理器可以支持若干類型的指令。示例在下面給出:
處理器210可以支持絕對和相對跳轉(zhuǎn)。
[0062]處理器210可以支持條件跳轉(zhuǎn)。條件跳轉(zhuǎn)也可以利用表格實(shí)現(xiàn)。表格的索引是要在其上進(jìn)行條件跳轉(zhuǎn)的寄存器。表格可以給出要跳轉(zhuǎn)的絕對地址。例如,I字節(jié)寄存器可以根據(jù)該寄存器的值引起條件跳轉(zhuǎn)。條件跳轉(zhuǎn)表格也可以給出要跳轉(zhuǎn)的相對地址。后者具有表格可以容易重新用于更多跳轉(zhuǎn)的優(yōu)點(diǎn)。
[0063]例如,處理器可以通過具有這樣的表格而支持“零值跳轉(zhuǎn)”,該表格對于索引O具有跳轉(zhuǎn)地址并且對于所有非零條目具有非跳轉(zhuǎn)地址。跳轉(zhuǎn)地址可以為正值或者可能地為負(fù)值,非跳轉(zhuǎn)地址可以是指向下一個指令的+1。這些類型的跳轉(zhuǎn)可以由特殊操作碼支持,該操作碼將表格條目的內(nèi)容移到指令指針,即χ[γ]的內(nèi)容,其中Y為寄存器并且X可以為寄存器或者可選地為指令指針的直接操作數(shù)。
[0064]處理器210可以支持使用索引操作的往來存儲器的移動操作。例如,處理器210可以支持從X[Y]移動到寄存器Z或者反之亦然。
[0065]處理器210可以具有堆棧,并且可以支持例如寄存器的彈出和壓入操作。處理器210也可以支持指令寄存器的壓入和彈出以便支持子例程調(diào)用。
[0066]最后,處理器210可以支持算術(shù)和邏輯操作,例如,加、帶進(jìn)位加、逐位與、減、帶進(jìn)位減、補(bǔ)碼(取反)、除、逐位或、循環(huán)移位等等。對于這些操作而言,可以使用明確的指令,然后可以例如使用微碼將該指令轉(zhuǎn)化成表格查找。這允許易于使用。例如,處理器可以明確地支持8051指令集合,或者在執(zhí)行程序指令時類似地將指令轉(zhuǎn)化成表格查找。例如,處理器210可以包括用于將ALU操作碼轉(zhuǎn)化成表格查找的ALU-表格轉(zhuǎn)化器。
[0067]然而,在處理器210上也可以不存在諸如加法、逐位與等等之類的ALU操作碼。在這種情況下,編譯器產(chǎn)生將這些指令直接實(shí)現(xiàn)為表格查找的代碼。
[0068]該處理器可以支持任何虛擬機(jī)。在所提出的處理器支持的VM中的這樣的程序的指令僅僅操縱寄存器、存儲器,但是不使用ALU——算術(shù)邏輯單元。因此,可以構(gòu)造無需保存ALU (CPU)的狀態(tài)的處理器,并且因而可以構(gòu)造一種基于該處理器的無ALU的VM。
[0069]如上面所描述的,指令循環(huán)電路可以包括指令指針以及用于計(jì)算指令指針的推進(jìn)的查找表。使用在指令循環(huán)電路中實(shí)現(xiàn)的本地查找表和微碼指令的這種計(jì)算方法類似于存儲器中的用于實(shí)現(xiàn)加法計(jì)算的查找表和處理器指令集合??赡艿氖遣粚⒅噶钛h(huán)電路實(shí)現(xiàn)為單獨(dú)的電路,而是可以使用通用機(jī)器功能部分地或者全部地實(shí)現(xiàn)指令循環(huán)電路功能。這簡化了處理器設(shè)計(jì)并且增加了反對邊信道攻擊和反演工程攻擊的彈性。
[0070]圖5、圖6和圖7圖示出處理器210上的計(jì)算機(jī)程序的執(zhí)行。圖5、圖6和圖7為時序圖,時間從上向下流動。
[0071]用于表格驅(qū)動的處理器210的計(jì)算機(jī)程序可以基于構(gòu)成程序語義的表格網(wǎng)絡(luò)。程序包括獨(dú)立存儲器訪問鏈。用于程序的初始輸入可以是到存儲器組的地址,并且程序的最終輸出可以是存儲在存儲器組中的數(shù)據(jù)或者其組合。之間的階段是來自存儲器組的輸出和到存儲器組的輸入二者。
[0072]如圖5中所示,可以將軟件指令實(shí)現(xiàn)為一個寄存器-存儲器-寄存器層。指令的操作數(shù)(例如X和Y)存儲在存儲器組,并且可以使用存儲器中存儲的表格執(zhí)行算術(shù)或邏輯操作。
[0073]圖5示出了一種寄存器-表格-寄存器層實(shí)現(xiàn)方式,沒有使用微程序,并且每個軟件指令將使用一個寄存器-存儲器-寄存器層實(shí)現(xiàn)。
[0074]處理器210的結(jié)構(gòu)允許實(shí)現(xiàn)作為表格網(wǎng)絡(luò)呈現(xiàn)的程序。應(yīng)當(dāng)指出的是,(存儲器中的)表格可能必須填充有包含部分指令的信息。
[0075]速度改進(jìn)通過查找流水線化而成為可能。如上面所限定的簡單處理器需要相對多的表格查找以用于執(zhí)行一定功能。如果速度是重要的,那么可以采用查找的流水線化。
[0076]在一種表格驅(qū)動的實(shí)現(xiàn)方式中,表格查找的結(jié)果用作下一個查找表的輸入。因此,結(jié)果一傳遞至下一個鏈元素,每個寄存器-表格-寄存器層(與單個表格查找相應(yīng))就可以再次執(zhí)行。從寄存器中的一個值到另一個的轉(zhuǎn)變將通過存儲器訪問實(shí)現(xiàn)。處理器流水線化因此可以表征為表格和寄存器鏈,其中第一層寄存器-表格-寄存器執(zhí)行可以包含在存儲器(其保持所述表格)的訪問周期內(nèi)的活動,第二寄存器-表格-寄存器進(jìn)行下一部分,依次類推。這給出表格的自然定時和效率。
[0077]圖6示出了具有寄存器-表格-寄存器層的流水線化的有限指令的訪問鏈。圖6可以被看作實(shí)現(xiàn)有限數(shù)量的指令的寄存器-表格構(gòu)造的級聯(lián)(即具有表格的硬件的重復(fù)),其中每個表格層等效于指令將做的工作。它也解釋了可以如何鏈接(流水線化)寄存器-表格-寄存器。應(yīng)當(dāng)指出的是,寄存器是共享的。
[0078]圖7示出了圖5的另一改進(jìn),其在處理器210中使用在這里示為4位的存儲器控制寄存器,以控制其中進(jìn)行表格查找的存儲器組。按照這種方式,可以控制執(zhí)行的操作。表格可以通過選擇適當(dāng)?shù)拇鎯ζ鹘M而加以選擇。存儲器控制寄存器是這樣的寄存器,其內(nèi)容與內(nèi)部總線上的地址組合,例如前置、串接等等,或者通過尋址計(jì)算單元生成。例如,一個存儲器組可以具有加法表格,而另一個具有逐位與表格。通過使用存儲器控制寄存器選擇適當(dāng)?shù)拇鎯ζ鹘M,可以在兩個操作,即加法與逐位與之間做出選擇。圖7作為示例在附圖標(biāo)記710下示出了存儲器控制寄存器的內(nèi)容。
[0079]圖8示出了簡化A⑶(地址計(jì)算單元)的2的冪索引。諸如處理器210之類的表格驅(qū)動的實(shí)現(xiàn)方式不包括ALU,但是它很可能包括A⑶(地址計(jì)算單元)。在這樣的A⑶中,一種操作是索引地址和基地址相加。進(jìn)位通常從索引和基地址的加法操作產(chǎn)生,并且在這種情況下,位將從O翻轉(zhuǎn)至I或者反之亦然。應(yīng)當(dāng)指出的是,數(shù)組是實(shí)現(xiàn)表格的典型選擇。
[0080]可以進(jìn)一步通過消除進(jìn)位而對此優(yōu)化,從而不會存在由于進(jìn)位引起的位翻轉(zhuǎn)。這改進(jìn)了我們的處理器的能耗。此外,獲得了更恒定的行為,從而最小化了通過功耗邊信道的信息泄漏。
[0081]通過將表格的基地址選擇為2的冪的倍數(shù)而避免進(jìn)位;沒有進(jìn)位被生成,加法僅僅涉及索引和基地址的串接。為了計(jì)算M[索引]的地址,可以計(jì)算2k *基+索引。在這里,M=2k *基。加法可以通過串接基和索引而計(jì)算。要使這點(diǎn)起作用,最大的索引應(yīng)當(dāng)小于2k。
[0082]圖8中示出了包括最高有效部分820和最低有效部分830的基地址810。最低有效部分830中的所有位具有O值。同樣示出的是索引840。如果數(shù)組需要乘法,即,因?yàn)閿?shù)組包括大于單個存儲單位(例如大于I字節(jié))的元素,就假設(shè)這樣的乘法已經(jīng)在索引840中執(zhí)行了。830的尺寸被選擇成使得它至少具有與最大使用的索引840 —樣多的位。其中要進(jìn)行表格查找的地址815通過基地址810和索引840的和而給出。由于Isb 830只有零,因而該和可以通過串接msb 820和索引840而計(jì)算。
[0083]這種尋址計(jì)算操作的優(yōu)化可以直接在程序中限定。
[0084]應(yīng)當(dāng)理解的是,本發(fā)明也擴(kuò)展到計(jì)算機(jī)程序,尤其是載體上或載體內(nèi)的適于將本發(fā)明付諸實(shí)施的計(jì)算機(jī)程序。該程序可以是源代碼、目標(biāo)代碼、介于源代碼與目標(biāo)代碼之間的代碼的形式,例如部分編譯的形式,或者是適用于實(shí)現(xiàn)依照本發(fā)明的方法的任何其他形式。涉及計(jì)算機(jī)程序產(chǎn)品的實(shí)施例包含與所闡述的方法中的至少一個的每個處理步驟相應(yīng)的計(jì)算機(jī)可執(zhí)行指令。這些指令可以細(xì)分成子例程和/或存儲到可以靜態(tài)地或動態(tài)地鏈接的一個或多個文件中。涉及計(jì)算機(jī)程序產(chǎn)品的另一個實(shí)施例包含與所闡述的系統(tǒng)和/或產(chǎn)品中的至少一個的每個裝置相應(yīng)的計(jì)算機(jī)可執(zhí)行指令。
[0085]應(yīng)當(dāng)指出的是,上述實(shí)施例說明了而不是限制了本發(fā)明,并且本領(lǐng)域技術(shù)人員應(yīng)當(dāng)能夠設(shè)計(jì)出許多可替換的實(shí)施例。
[0086]在權(quán)利要求書中,置于括號之間的任何附圖標(biāo)記都不應(yīng)當(dāng)被解釋為限制了權(quán)利要求。動詞“包括”及其變體的使用并沒有排除存在與權(quán)利要求中闡明的那些不同的元件或步驟。元件之前的冠詞“一”或“一個”并沒有排除存在多個這樣的元件。本發(fā)明可以借助于包括若干不同元件的硬件以及借助于經(jīng)過適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的設(shè)備權(quán)利要求中,這些裝置中的一些可以由同一硬件項(xiàng)實(shí)施。在相互不同的從屬權(quán)利要求中記載了特定的措施這一事實(shí)并不指示這些措施的組合不可以有利地加以利用。
[0087]附圖標(biāo)記列表:
100計(jì)算機(jī)系統(tǒng)
110內(nèi)部總線120ALU
122,124 ALU 輸入
126ALU控制信號
128ALU輸出
130計(jì)算機(jī)處理器電路系統(tǒng)
140存儲器
200計(jì)算機(jī)系統(tǒng)
210計(jì)算機(jī)處理器
220內(nèi)部總線
230數(shù)據(jù)和地址總線接口
235數(shù)據(jù)和地址總線
240指令循環(huán)電路
241指令解碼器
242加法器
243指令指針
244指令寄存器
246加法查找表
247基于表格的加法器
245寄存器文件250存儲器
255存儲器映射I/O接口260 控制總線
【權(quán)利要求】
1.一種計(jì)算機(jī)系統(tǒng),包括處理器和存儲器, -該處理器包括 -指令循環(huán)電路,其被配置成重復(fù)地獲得計(jì)算機(jī)程序的下一個指令, -指令解碼器,其被配置成對指令循環(huán)電路獲得的指令解碼并且執(zhí)行該指令, -該計(jì)算機(jī)系統(tǒng)支持在一個或多個所述指令的控制下的多個算術(shù)和/或邏輯操作,其中 -存儲器存儲多個表格,所述多個算術(shù)和/或邏輯操作中的每一個特定操作受存儲器中存儲的表示針對一系列輸入的所述特定算術(shù)操作的結(jié)果的至少一部分的至少一個特定表格支持。
2.如權(quán)利要求1中的計(jì)算機(jī)系統(tǒng),其中存儲器存儲計(jì)算機(jī)程序, -指令循環(huán)電路包括程序計(jì)數(shù)器寄存器,指令循環(huán)電路被配置成在程序計(jì)數(shù)器寄存器的控制下獲得下一個指令,指令循環(huán)電路包括程序計(jì)數(shù)器寄存器推進(jìn)器,該推進(jìn)器被配置成推進(jìn)程序計(jì)數(shù)器寄存器,使得程序計(jì)數(shù)器寄存器控制下一個指令的獲得, 其中指令循環(huán)電路包括存儲器,該存儲器存儲加法表格,指令循環(huán)電路被配置成將程序計(jì)數(shù)器寄存器修改為由程序計(jì)數(shù)器寄存器內(nèi)容中的地址索引的所述加法表格的條目。
3.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中處理器包括表格轉(zhuǎn)化器,該表格轉(zhuǎn)化器被配置成接收來自指令寄存器的算術(shù)和/或邏輯指令并且產(chǎn)生相應(yīng)的表格查找操作。
4.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中該計(jì)算機(jī)系統(tǒng)具有備用設(shè)備,該備用設(shè)備被配置成保存包括指令指針寄存器的處理器的寄存器的內(nèi)容。
5.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中該計(jì)算機(jī)系統(tǒng)具有用于根據(jù)基地址和索引計(jì)算表格中的條目的地址的地址計(jì)算單元,其中該地址計(jì)算單元串接基地址和索引。
6.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中通過以下方式支持算術(shù)和/或邏輯操作 -獲取支持所述算術(shù)和/或邏輯操作的表格的基地址, -將從所述算術(shù)和/或邏輯操作的第一操作數(shù)獲得的索引相加到該基地址, -根據(jù)相加的基地址獲取結(jié)果或者另外的表格地址。
7.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中存儲器包括指令類型表格(0),該指令類型表格存儲了支持算術(shù)和邏輯函數(shù)的表格的基地址。
8.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),在這里,所述多個算術(shù)和/或邏輯操作排他地受所述多個表格支持。
9.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中計(jì)算機(jī)處理器包括至少兩個寄存器,該計(jì)算機(jī)系統(tǒng)至少支持用于將這兩個寄存器的內(nèi)容相加的加法操作以及用于對這兩個寄存器的內(nèi)容逐位與的與操作,其中存儲器包含加法表格和與表格。
10.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中該計(jì)算機(jī)系統(tǒng)不包括從處理器的內(nèi)部總線接收第一和第二操作數(shù)并且向內(nèi)部總線產(chǎn)生根據(jù)第一和第二操作數(shù)計(jì)算的輸出的組合邏輯電路。
11.如前面的權(quán)利要求中任何一項(xiàng)的計(jì)算機(jī)系統(tǒng),其中指令解碼器被配置用于通過以下方式而進(jìn)行以條件值為條件的跳轉(zhuǎn) -在表格中的與該條件值相應(yīng)的位置處從表格獲取表示地址的數(shù)據(jù)項(xiàng), -將該地址寫到指令指針。
12.—種如前面的權(quán)利要求中任何一項(xiàng)中的計(jì)算機(jī)處理器。
13.—種編譯器,被配置成以用于如前面的權(quán)利要求中任何一項(xiàng)中的計(jì)算機(jī)系統(tǒng)的第一計(jì)算機(jī)語言編譯計(jì)算機(jī)程序。
14.如權(quán)利要求13中的編譯器,被配置成以表格查找操作編譯任何算術(shù)或邏輯操作。
15.如權(quán)利要求13或14中的編譯器,被配置成編譯存儲了針對一系列輸入值的算術(shù)或邏輯操作的結(jié)果的查找表。
【文檔編號】G06F1/03GK104395876SQ201380036045
【公開日】2015年3月4日 申請日期:2013年7月6日 優(yōu)先權(quán)日:2012年7月6日
【發(fā)明者】M.鄧, P.M.H.M.A.戈里斯森, L.M.G.M.托休伊澤恩, A.J.尼伊斯森 申請人:皇家飛利浦有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
林甸县| 吴川市| 资中县| 侯马市| 泉州市| 锦屏县| 南漳县| 宁德市| 柞水县| 清新县| 茌平县| 九龙县| 视频| 吉木乃县| 樟树市| 麦盖提县| 青龙| 普定县| 龙海市| 舞阳县| 达拉特旗| 通州区| 大洼县| 犍为县| 河北省| 康定县| 汕头市| 元阳县| 新密市| 宁晋县| 昌黎县| 濉溪县| 江西省| 西和县| 黄浦区| 乳山市| 万载县| 宜兰市| 霞浦县| 峨眉山市| 精河县|