一种中央处理单元及其存取数据的方法

文档序号:6607197阅读:143来源:国知局
专利名称:一种中央处理单元及其存取数据的方法
技术领域
本发明涉及CPU (中央处理单元)技术,特别涉及一种中央处理单元及其存取数据 的方法。
背景技术
CPU通常采用一种endian (大端或小端)格式存取指令和数据。endian格式具体 包括Little-Endian (小端)格式和Big-Endian (大端)格式,其中,Little-Endian指数 据的低位字节排放在内存的低地址端,高位字节排放在内存的高地址端;Big-Endian指数 据的高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。目前,x86/mipS/SCOre CPU通常以小端方式执行,即以小端格式存取指令和数据。 但是当CPU对周边采用大端方式存取指令和数据的设备(进行读取,或从大端格式的网络 数据流中截取数据时,需要对数据进行格式转换。通常格式转换的做法是,CPU先将数据以小端格式读入,对需要转换的数据,通过 CPU调用的子程序进行变换。或者,一些CPU支持大小端变换指令,但是也需要将数据先读 入CPU寄存器后再进行变换。例如,现有技术用代码采用如下方式实现大小端转换时,需要将数据读入寄存器 才能进行格式转换Iw rl L,将数据导入到寄存器;Swap rl r2,用swap指令在寄存器中进行颠倒,实现大小端转换;Sw r2 rl,存储。

发明内容
本发明所要解决的技术问题是,提供一种中央处理单元及其存取数据的方法,以 改进CPU执行程序的效率。为了解决上述问题,本发明提出,当CPU存取与CPU执行模式(即CPU默认的 endian模式)不匹配的外部设备的数据时,可以增加一类endian转换存取指令,该类存取 指令指示CPU以与本CPU执行模式相异的endian格式来存取数据,此时,CPU在数据存取 的过程中实现endian格式转换,从而达到提高CPU执行程序效率的目的。具体地,本发明公开了一种中央处理单元,包括指令存储器、指令译码器、寄存器 和执行单元,以及与所述执行单元相连的具有大端或小端(endian)转换功能的数据存储 器,其中所述指令译码器,用于识别所输入的指令,当识别所输入的指令为endian转换存 /取指令时,发起多个用于实现数据存/取的控制信号,所述多个用于实现数据存/取的控 制信号中包括endian转换控制信号;所述具有endian转换功能的数据存储器,用于根据所述endian转换控制信号将 所要存取的数据格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。进一步地,上述中央处理单元中所述具有endian转换功能的数据存储器,包括数 据存储模块和endian转换模块所述数据存储模块,用于接收所述endian转换控制信号,并根据所述endian转换 控制信号将所要存取的数据发送给所述endian转换模块,以及用于输出所述endian转换 模块处理后的数据;所述endian转换模块,用于将所接收到的数据的格式转换为与本中央处理单元 默认的endian模式相反的数据格式。其中,所述数据存储模块,在未接收到所述endian转换控制信号时,用于直接输 出所要存取的数据。或者上述中央处理单元中所述具有endian转换功能的数据存储器,包括数据存 储模块和endian转换模块所述数据存储模块,用于将所要存取的数据发送给所述endian转换模块,并输出 所述endian转换模块返回的数据;所述endian转换模块,用于接收所述endian转换控制信号,以及根据所述endian 转换控制信号将所接收到的数据的格式转换为与本中央处理单元默认的endian模式相反 的数据格式后返回给所述数据存储模块。其中,所述endian转换模块,未接收到所述endian转换控制信号时,将所接收到 的数据直接返回给所述数据存储模块。本发明还公开了一种中央处理单元存取数据的方法,包括当中央处理单元识别出所输入的指令为大端或小端(endian)转换存/取指令时, 生成多个用于实现数据存/取的控制信号,所述多个用于实现数据存/取的控制信号中包 括endian转换控制信号;并根据所述endian转换控制信号将所要存取的数据格式转换为 与所述中央处理单元默认的endian模式相反的数据格式后进行存取。进一步地,上述方法中所述中央处理单元根据所述endian转换控制信号将所要 存取的数据格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存 取指所述中央处理单元利用具有endian转换功能的数据存储器实现数据存取,其中, 该endian转换功能的数据存储器进一步包括数据存储模块和endian转换模块,所述数据 存储模块接收到所述endian转换控制信号后,根据所述endian转换控制信号将所要存取 的数据发送给所述endian转换模块,所述endian转换模块将所接收到的数据的格式转换 为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。其中,所述数据存储模块未接收到所述endian转换控制信号时,将所要存取的数 据直接进行存取。进一步地,上述方法中所述中央处理单元根据所述endian转换控制信号将所要 存取的数据格式转换为与本中央处理单元默认的endian模式相反的数据格式后进行存取 指所述中央处理单元利用具有endian转换功能的数据存储器实现数据存取,其中, 该endian转换功能的数据存储器进一步包括数据存储模块和endian转换模块,所述数据存储模块将所要存取的数据发送给所述endian转换模块,若所述endian转换模块接收到 所述endian转换控制信号,则将所述数据存储模块发送的数据的格式转换为与所述中央 处理单元默认的endian模式相反的数据格式后进行存取。其中,若所述endian转换模块未接收到所述endian转换控制信号,则将所述数据 存储模块发送的数据直接进行存取。采用本发明技术方案,可以在CPU存取与CPU执行模式不匹配的外部设备时,提高 CPU执行程序的效率,缩短运行时间。


图1为本发明技术方案实现数据存取的控制流程图;图2为本发明技术方案中数据存储器根据M以及ED控制线对数据执行转换的示 意图。
具体实施例方式下面结合附图及具体实施例对本发明技术方案做进一步详细说明。一种CPU,包括指令存储器、指令译码器、寄存器、执行单元、具有endian转换功能 的数据存储器。指令存储器,主要用于存储各种指令,在数据存储的取指阶段,CPU从该指令存储 器中取出指令;指令译码器,主要用于在译码阶段识别所取出的指令,并根据识别出的指令,并发 出相应的控制给相应的部分;其中,当识别出现有存取指令时,指令译码器控制现有技术发起相应的控制;当识别出本申请新增的endian转换存/取指令时,指令译码器发起多个用于实现 数据存/取的控制信号,这多个用于实现数据存/取的控制信号包括EX控制信号,M控制 信号,WB控制信号和ED控制信号(即与本发明新增的endian转换存取指令对应的控制), 如图1所示;其中,EX控制信号发送给执行单元,ED (即与本发明新增的endian转换存/取指 令对应的控制)和M控制信号发送给具有endian转换功能的数据存储器,WB控制信号发 送给寄存器;寄存器,用于缓存所识别出的指令;执行单元,用于根据寄存器中的指令以及收到的EX控制执行所接收到的存取指 令操作;具有endian转换功能的数据存储器,用于接收M控制信号,并根据M控制信号进 行数据存取(即在结果回存阶段将所缓存的数据存储到寄存器或者写入memory),其中,若 接收到M控制信号的同时接收到ED控制信号,则将所要存取的数据格式转换为与本中央处 理单元默认的endian模式相反的数据格式后进行存取,当只接收到M控制信号时,则将所 要存取的数据直接进行存取;具体地,具有endian转换功能的数据存储器可进一步包括数据存储模块和 endian转换模块
其中,有一种实现方案,数据存储模块,用于接收控制信号,当同时接收到M和ED 控制信号时,根据ED控制信号将所要存取的数据发送给endian转换模块,并输出endian 转换模块处理后的数据,当只接收到M控制信号时,直接输出所要存取的数据;此时, endian转换模块,用于将所接收到的数据的格式转换为与本中央处理单元默认的endian 模式相反的数据格式。在其他场景中,数据存储模块,可以用于接收M控制信号,并将所要存取的数据发 送给endian转换模块,以及输出endian转换模块返回的数据;此时,endian转换模块,用 于接收数据存储模块发送的数据,当接收到数据的同时接收到ED控制信号,则根据该ED控 制信号将所接收到的数据的格式转换为与本中央处理单元默认的endian模式相反的数据 格式后返回给数据存储模块,当接收到数据的同时未接收到ED控制信号,则将所接收到的 数据直接返回给数据存储模块。其中,endian转换模块可由转换电路实现。下面介绍上述CPU存取数据的过程,其以带有Endian转换功能的数据存储器为基 础,新增加endian转换存/取指令来实现的,具体过程如图1所示。CPU在取指阶段从指令存储器中取出指令,在译码阶段识别所取的指令为本申请 新增的endian转换存/取指令时,缓存该endian转换存/取指令,并同时发起ED (即与本 发明新增的endian转换存/取指令对应的endian转换控制信号)、WB、M以及EX控制(图 1中粗线所示即为ED控制线),之后在执行阶段根据该存/取指令以及EX控制执行该存/ 取指令操作,在内存存取阶段,具有Endian转换功能的数据存储器根据M控制以及ED控制 信号对所要读取的memory中的数据进行endian格式转换(即将所要读取的数据的格式转 换为与本中央处理单元默认的endian模式相反的数据格式),在结果回存阶段存储到寄存 器,或者将寄存器中的数据进行endian变换后,在结果回存阶段写入memory。其中,在内存存取阶段,具有Endian转换功能的数据存储器根据M以及ED控制信 号对所获取的外部数据执行endian格式转换的过程如图2所示,数据存储器中的endian 转换模块根据ED控制完成数据endian格式的转换,即在load阶段实现了 endian格式转 换。具体地,本实施例以指令Lw. e ra, [rb]为例进行说明本发明新增的一类endian 转换存取指令,当然,本领域技术人员也可以在其它具有数据存取的指令中应用本申请和 技术方案,这些指令统称为endian转换存取指令。endian转换存指令Lw. e/Lh. e ra, [rb] (4 字节 /2 字节)语义ra = memoryrb其中Lw是load word的缩写,表示将数据从数据存储器复制到寄存器的数据传送 指令。endian转换取指令Sw. e/Sh. e ra, [rb] (4 字节 /2 字节)语义memoryrb=raSw是store word的缩写,表示将数据从寄存器传送到数据存储器的数据传送指 令。
上述指令中,Lh,Sh分别是对应2字节的指令,其中,L表示load,S表示store,h 表示half。上述指令之后的.e表示为本发明所增加的endian转换存取指令,如果没有.e, 则CPU以通常的方式(也称为缺省模式)存取数据。从上述实施例可以看出,本发明技术方案采用了带有endian转换功能的数据存 储器,并以该数据存储器为基础在CPU内新增了 endian格式存取指令,这样,当CPU存取与 CPU执行模式不匹配的外部设备的数据时,本发明技术方案通过译码阶段若译码出为本发 明中的Endian变换指令,则将控制信号ED顺序传播至带有endian转换功能的数据存储器 中,故可直接在Load/store阶段进行endian格式转换。因此,看出本发明可以在一条存取 指令周期内完成endian转换,相比于现有技术中将数据先提到CPU寄存器中再用额外的指 令(例如swap等指令)或者子程序进行endian转换的方案,本发明可以明显提高程序的 运行效率,缩短程序运行时间。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
一种中央处理单元,包括指令存储器、指令译码器、寄存器和执行单元,其特征在于,还包括与所述执行单元相连的具有大端或小端(endian)转换功能的数据存储器,其中所述指令译码器,用于识别所输入的指令,当识别所输入的指令为endian转换存/取指令时,发起多个用于实现数据存/取的控制信号,所述多个用于实现数据存/取的控制信号中包括endian转换控制信号;所述具有endian转换功能的数据存储器,用于根据所述endian转换控制信号将所要存取的数据格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。
2.如权利要求1所述的中央处理单元,其特征在于,所述具有endian转换功能的数据 存储器,包括数据存储模块和endian转换模块所述数据存储模块,用于接收所述endian转换控制信号,并根据所述endian转换控制 信号将所要存取的数据发送给所述endian转换模块,以及用于输出所述endian转换模块 处理后的数据;所述endian转换模块,用于将所接收到的数据的格式转换为与本中央处理单元默认 的endian模式相反的数据格式。
3.如权利要求2所述的中央处理单元,其特征在于,所述数据存储模块,在未接收到所述endian转换控制信号时,用于直接输出所要存取 的数据。
4.如权利要求1所述的中央处理单元,其特征在于,所述具有endian转换功能的数据 存储器,包括数据存储模块和endian转换模块所述数据存储模块,用于将所要存取的数据发送给所述endian转换模块,并输出所述 endian转换模块返回的数据;所述endian转换模块,用于接收所述endian转换控制信号,以及根据所述endian转 换控制信号将所接收到的数据的格式转换为与本中央处理单元默认的endian模式相反的 数据格式后返回给所述数据存储模块。
5.如权利要求4所述的中央处理单元,其特征在于,所述endian转换模块,未接收到所述endian转换控制信号时,将所接收到的数据直接 返回给所述数据存储模块。
6.一种中央处理单元存取数据的方法,其特征在于,该方法包括当中央处理单元识别出所输入的指令为大端或小端(endian)转换存/取指令时,生 成多个用于实现数据存/取的控制信号,所述多个用于实现数据存/取的控制信号中包括 endian转换控制信号;并根据所述endian转换控制信号将所要存取的数据格式转换为与 所述中央处理单元默认的endian模式相反的数据格式后进行存取。
7.如权利要求6所述的方法,其特征在于,所述中央处理单元根据所述endian转换控 制信号将所要存取的数据格式转换为与所述中央处理单元默认的endian模式相反的数据 格式后进行存取指所述中央处理单元利用具有endian转换功能的数据存储器实现数据存取,其中,该 endian转换功能的数据存储器进一步包括数据存储模块和endian转换模块,所述数据存 储模块接收到所述endian转换控制信号后,根据所述endian转换控制信号将所要存取的数据发送给所述endian转换模块,所述endian转换模块将所接收到的数据的格式转换为 与所述中央处理单元默认的endian模式相反的数据格式后进行存取。
8.如权利要求7所述的方法,其特征在于,所述数据存储模块未接收到所述endian转换控制信号时,将所要存取的数据直接进 行存取。
9.如权利要求6所述的方法,其特征在于,所述中央处理单元根据所述endian转换控 制信号将所要存取的数据格式转换为与本中央处理单元默认的endian模式相反的数据格 式后进行存取指所述中央处理单元利用具有endian转换功能的数据存储器实现数据存取,其中,该 endian转换功能的数据存储器进一步包括数据存储模块和endian转换模块,所述数据存 储模块将所要存取的数据发送给所述endian转换模块,若所述endian转换模块接收到所 述endian转换控制信号,则将所述数据存储模块发送的数据的格式转换为与所述中央处 理单元默认的endian模式相反的数据格式后进行存取。
10.如权利要求9所述的方法,其特征在于,若所述endian转换模块未接收到所述endian转换控制信号,则将所述数据存储模块 发送的数据直接进行存取。
全文摘要
本发明公开了一种中央处理单元及其存取数据的方法,涉及CPU技术。本发明公开的中央处理单元包括指令存储器、指令译码器、寄存器和执行单元,以及与执行单元相连的具有endian转换功能的数据存储器,其中指令译码器,识别所输入的指令,当识别所输入的指令为endian转换存/取指令时,发起多个用于实现数据存/取的控制信号,多个用于实现数据存/取的控制信号中包括endian转换控制信号;具有endian转换功能的数据存储器,根据endian转换控制信号将所要存取的数据格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。采用本发明技术方案可提高CPU执行程序的效率。
文档编号G06F13/16GK101916235SQ201010244709
公开日2010年12月15日 申请日期2010年8月2日 优先权日2010年8月2日
发明者陈立勤 申请人:凌阳科技股份有限公司;北京北阳电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1