字节可寻址存储器的提取索引寻址的制作方法

文档序号:6567632阅读:185来源:国知局
专利名称:字节可寻址存储器的提取索引寻址的制作方法
技术领域
本发明大体上涉及微处理器结构中的存储器存取,所述微处理器结构包含加载一存 储(RISC机器)结构和存储器导向(CISC机器)结构两者。本发明更确切地说涉及允 许微处理器更高效地存取存储器结构(特别是字节可寻址存储器)的索引寻址方案。
背景技术
涉及两个操作数(一个操作数是字节值,另一个操作数是巳知的常数值)的操作通 常对于用査找表来进行计算是可行的,因为只存在256 (=28)个可能字节值和相应结 果,因而查找表将相当小。对于计算量大的操作(例如,除法、取幂),存取查找表往 往比相同操作的完全硬件或软件执行快速得多。如果处理器结构支持以寄存器索引偏移 进行存储器加载,那么可容易地在一个RISC指令中执行查找。
在字长度(例如,32位)是字节长度(8位)的倍数的机器上,可将若干(例如, 4个)字节压缩成单个字,因而在存储器有限的应用中节省了可能宝贵的存储器空间。 可对处理器自身的内部寄存器和处理器存取的存储器两者应用这种字节压縮方案。
但是,在将使用压缩的字节执行表的查找的情况下,提取所需的字节通常将要求执 行一系列额外指令,而这会降低效率。
在现代微处理器应用中,加密和解密操作正变得越来越重要。加密和解密算法可能 计算量相当大。此种算法通常用于计算能力有限的便携或嵌入式应用中。较常用的分块 加密算法(尤其)包含Blowfish、 Triple-DES和Rijndael。
所有这些算法均使用特殊的阵列寻址操作,其要求在当前的微处理器上执行较长的
指令序列。所述操作如下
result = pointer0 [offset0》24]
A poi血l [ (offsetl》16) & 0xff) A pointer2 [ (offset2 〉> 8) & 0xff] A pointer3 [offset3 & 0xff];
(1)
此处主要有四个涉及经压縮的查找表的存储器存取操作。这些操作中的每一者提取32位字中的四个字节中的一者、对提取的字节进行零扩展,且接着将其与基准指针相加。 这个索引操作的结果产生待存取的存储器地址。如果较快速地执行这个阵列存取,那么 可实现加密和解密过程的显著加速。
因此需要使由操作(1)表示的存储器存取效率更高,使得加密和解密应用将因而 与这些算法的目前实施方案相比运行得更快并具有更高的功率效率。

发明内容
本发明描述一种微处理器电路,其响应于用于高效地寻址存储器并将数据从所得的 存储器位置加载到寄存器文件中的指令。举例来说,简单的"以所提取的索引加载字" 指令致使电路从索引寄存器Ri提取规定字节,并建立零扩展字(其中提取的字节位于 位位置[9:2]),这对应于将提取的字节从其最右边的位置向左移位两个位的效果。在电 路的示范性实施方案中,通过使用经耦合以接收索引寄存器的每一字节并且受字节选择 值控制的多路复用器来实现这个组合式提取操作。将从多路复用器的输出中选定的字节 在所需的位位置处直接(不带有任何移位操作)加载到位移寄存器中(可选的,或直接 加载到加法器的输入中)。所得的字形成偏移值,接着将所述偏移值与基准地址寄存器 Rb的内容相加以形成存储器地址。接着获取所述地址处的存储器内容并将其加载到目 标H的地寄存器Rd中。这个指令尤其可用于对表进行索引。


图1是用于实施本发明的示范性微处理器电路(和存取的存储器)的框图,所述电 路包含与寄存器、加法器及其它区块耦合的字节提取和零扩展单元。
具体实施例方式
参看图1,寄存器Ri、 Rb和Rd中的每一者都是字长度寄存器(例如,具有32个 位)。本发明特别关注的是从索引寄存器Ri中提取规定字节。在此处展示的示范性实施 例中,索引寄存器Ri含有四个字节,标记为顶部字节t (包含位31到24)、上部字节u (包含位23到16)、下部字节1 (包含字节15到8)和底部字节b (包含位7到0)。可 在一个指令中使用两位字节编号{3,2,1,0}标识索引寄存器Ri的(t,u,l,W部分。可在一个 指令中使用寄存器编号(例如{0,1,...,15})单独标识将微处理器中的哪些硬件寄存器指 定成索引、基准和目的地寄存器Ri、 Rb和Rd。
指令可从Ri中规定一个待提取、零扩展并向左位移特定数目的位的字节。在现有 的微处理器电路中,通常使用涉及向左和向右连续位移位若干量的不同步骤的序列来执 行此零扩展位提取,所述量取决于待提取和扩展的特定字节。举例来说,为了提取顶部
字节t,可将索引寄存器Ri的整个字长度内容读取到临时寄存器中,并接着在临时寄存 器中将其向右移位24位。为了提取上部字节u,可将索引寄存器Ri的整个内容读取到 临时寄存器中、向左移位8位并接着向右移位24位。为了提取下部字节l,可将索引寄 存器Ri的整个内容读取到临时寄存器中、向左移位16位,并接着向右移位24位。为 了提取底部字节b,可将索引寄存器Ri的整个内容读取到临时寄存器中、向左移位24 位,并接着向右移位24位。 一旦被提取出来,结果被再次向左移位一定量的位(例如, 移位2位以便存取字节可寻址存储器),以便获得地址偏移或位移。因此,现有技术执 行一组循序的移位操作,以便从索引寄存器中提取所需的字节,并在其可用作加载指令 的地址偏移或位移之前对其进行字对准。
在本发明中,字节提取和零扩展单元13直接在单个步骤中获得地址偏移值。单元 13包含多路复用器15,其从索引寄存器Ri中提取正确的字节。多路复用器15具有来 自索引寄存器Ri的四个字节位置(t, u, l和b)中的每一者的字节宽输入。多路复用 器15还具有两位选择控制输入(图1中标记为〈part",其是从微处理器的指令解码器 接收的,并且致使多路复用器15选择所需的字节(t, u, l或b)并将其放置在其字节 宽输出17上。
地址位移寄存器19 (可选)可接收这个多路复用器输出17,并直接在此寄存器19 的位位置[9:2]处加载有选定字节。这些特定的位位置自动提供选定字节的两位位移,从
而不需要进行单独两位向左移位操作来获得用于存取字节可寻址存储器的正确地址偏 移。寄存器19中的偏移值的其它所有位位置[31:10]和[1:0]都含有零,因而自动提供零 扩展。來自位移寄存器19的字长度输出21形成字节提取和零扩展单元13的地址偏移 输出。
或者,地址位移寄存器19可能只对字宽偏移值21有概念,且可将来自多路复用器 17的选定字节(t, u, l或b)在一个加法器输入的所需位位置[9:2]处直接输入到加法器 25中。这个加法器输入的其它位位置[31:10]和[1:0]加载有零,以使提供给加法器25的 零扩展偏移字21完整。在任何情况下,都在规定的位位置(此处为[9:2])向偏移字提 供选定字节,而不必借助移位操作序列。
将偏移值21加到从基准地址寄存器Rb获得的基准地址23上。来自加法器25的输 出形成将从存储器27存取的存储器地址。从存储器27中获取所述地址处的内容,并将 其放置在目的地寄存器Rd中。这结束了提取索引存储器存取操作,Rd — *(Rb + (Ri[part] 2))。
这种用于支持以寄存器索引偏移进行存储器加载的电路特别可用于预期需要进行
频繁的字节大小的表査找的微处理器中,例如特别适用于实施分块加密算法的处理器。 此种算法通常在一系列的循环中对文本消息块进行操作,其中每一循环可包括某个规定 序列的置换、取代和与循环密钥的组合。此种加密操作中有几种最好使用查找表来实施。 本发明支持的提取索引存储器存取使得能够在字节压缩存储器结构中高效地执行这些 表查找,从而既节省宝贵的时间又节省宝贵的存储器空间。
虽然已根据示范性实施例描述了本发明,但熟练的技术人员将认识到其它也属于本 发明范围内的相关实施方案。举例来说,可使用除本文描述的示范性32位(即4字节) 字之外的其它字大小。选定字节被加载到的位位置(在上文实例中提供为用于适应字节 寻址存储器的[9:2])可经改变以对应于不同于2的位移值。可能实施除多路复用器之外 的其它选择装置,只要其避免多歩骤移位序列即可。
权利要求
1.一种在微处理器中的电路,所述微处理器响应于用于使用索引寻址存取存储器的指令,所述电路包括一组字长度寄存器,其包含规定为索引寄存器、基准地址寄存器和目的地寄存器的寄存器,所述索引寄存器经配置以含有待单独提取的压缩字节;多路复用器,其具有字长度输入端,所述字长度输入端耦合到所述索引寄存器并适合存取在所述索引寄存器内压缩的每一字节;字节长度输出端;和控制输入,所述控制输入用于接收字节选择信息,所述多路复用器适合提取在其输入端处接收到的所述字节中的选定一者,并只将所述选定字节传递到其输出端;以及加法器,其经耦合以从所述基准地址寄存器接收字长度内容,并且还接收偏移字,所述偏移字在所述偏移字的特定位位置处含有来自所述多路复用器的输出端的所述选定字节,所述加法器适合将所述接收到的内容的输出总和供应为待存取的存储器地址,所述存储器地址处存取的存储器内容可加载到所述目的地寄存器中。
2. 根据权利要求1所述的电路,其中所述字长度是四字节长度,且所述多路复用器的 所述控制输入是规定四个字节中待提取的一者的两位输入。
3. 根据权利要求1所述的电路,其中所述偏移字的含有来自所述多路复用器的输出端 的所述选定字节的所述特定位位置是位位置[9:2],其对应于适合存取字节可寻址存储器的向左移位两位的偏移。
4. 根据权利要求1所述的电路,其进一步包括字长度位移寄存器,所述字长度位移寄 存器耦合到所述多路复用器的所述字节长度输出端,并适合在所述位移寄存器的特 定位位置处加载所述选定字节,从所述位移寄存器输出的内容形成提供到所述加法 器的所述偏移字。
5. 根据权利要求4所述的电路,其中所述位移寄存器适合在其除适合加载所述选定字 节的所述特定位位置之外的所有位位置处存储零。
6. 根据权利要求1所述的电路,其中所述加法器是所述微处理器中的中央处理单元的 组件,而不是专门用于索引寻址的单独组件。
7. —种由微处理器响应于使用索引寻址存取存储器的指令而执行的方法,所述方法包 括将特定字长度寄存器规定为索引寄存器、基准地址寄存器和目的地寄存器,并规 定在所述索引寄存器内压縮的待提取的字节;使用多路复用器从所述索引寄存器中提取所述规定字节,并将所述规定字节提供 为偏移字的特定位位置;将来自所述基准地址寄存器的字长度内容与所述偏移字相加以获得总和作为待 存取的存储器地址;以及存取所述存储器地址处的存储器内容,并将所述存取的存储器内容加载到所述目 的地寄存器中。
8. 根据权利要求7所述的方法,其中所述字长度是四字节长度,且所述多路复用器是 两位控制输入,其规定在所述索引寄存器内压縮的四个字节中的哪一字节由所述多 路复用器提取。
9. 根据权利要求7所述的方法,其中所述偏移字的含有所述规定字节的所述特定位位 置是位位置[9:2],其对应于适合存取字节可寻址存储器的向左移位两位的偏移。
10. 根据权利要求7所述的方法,其中所述偏移字在除了含有所述规定字节的特定位位 置之外的所有位位置中含有零。
11. 根据权利要求7所述的方法,其中所述索引寄存器、基准地址寄存器和目的地寄存 器以及所述索引寄存器的所述规定字节全部借助所述微处理器所响应的提取索引 指令由加载字来规定。
全文摘要
一种用于字节可寻址存储器的索引寻址的微处理器电路包含由指令指定的字长度索引、基准地址和目的地寄存器(Ri,Rb,Rd)。所述指令还规定在所述索引寄存器(Ri)内压缩的待提取的一个字节(t,u,l,b)。多路复用器(15)具有存取所述索引寄存器
文档编号G06F12/06GK101189585SQ200680019316
公开日2008年5月28日 申请日期2006年4月27日 优先权日2005年5月31日
发明者厄于温·斯特伦, 埃里克·K·雷诺, 龙尼·彼得森 申请人:爱特梅尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1