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

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

Info

Publication number
CN101916235B
CN101916235B CN 201010244709 CN201010244709A CN101916235B CN 101916235 B CN101916235 B CN 101916235B CN 201010244709 CN201010244709 CN 201010244709 CN 201010244709 A CN201010244709 A CN 201010244709A CN 101916235 B CN101916235 B CN 101916235B
Authority
CN
China
Prior art keywords
endian
data
access
cpu
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 201010244709
Other languages
English (en)
Other versions
CN101916235A (zh
Inventor
陈立勤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING SUNPLUS-EHUE TECHNOLOGY CO., LTD.
Sunplus Technology Co Ltd
Original Assignee
BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Sunplus Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd, Sunplus Technology Co Ltd filed Critical BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Priority to CN 201010244709 priority Critical patent/CN101916235B/zh
Publication of CN101916235A publication Critical patent/CN101916235A/zh
Application granted granted Critical
Publication of CN101916235B publication Critical patent/CN101916235B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种中央处理单元及其存取数据的方法,涉及CPU技术。本发明公开的中央处理单元包括指令存储器、指令译码器、寄存器和执行单元,以及与执行单元相连的具有endian转换功能的数据存储器,其中:指令译码器,识别所输入的指令,当识别所输入的指令为endian转换存/取指令时,发起多个用于实现数据存/取的控制信号,多个用于实现数据存/取的控制信号中包括endian转换控制信号;具有endian转换功能的数据存储器,根据endian转换控制信号将所要存取的数据格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。采用本发明技术方案可提高CPU执行程序的效率。

Description

一种中央处理单元及其存取数据的方法
技术领域
本发明涉及CPU(中央处理单元)技术,特别涉及一种中央处理单元及其存取数据的方法。
背景技术
CPU通常采用一种endian(大端或小端)格式存取指令和数据。endian格式具体包括Little-Endian(小端)格式和Big-Endian(大端)格式,其中,Little-Endian指数据的低位字节排放在内存的低地址端,高位字节排放在内存的高地址端;Big-Endian指数据的高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
目前,x86/mips/score CPU通常以小端方式执行,即以小端格式存取指令和数据。但是当CPU对周边采用大端方式存取指令和数据的设备(进行读取,或从大端格式的网络数据流中截取数据时,需要对数据进行格式转换。
通常格式转换的做法是,CPU先将数据以小端格式读入,对需要转换的数据,通过CPU调用的子程序进行变换。或者,一些CPU支持大小端变换指令,但是也需要将数据先读入CPU寄存器后再进行变换。
例如,现有技术用代码采用如下方式实现大小端转换时,需要将数据读入寄存器才能进行格式转换:
lw r1 L,将数据导入到寄存器;
Swap r1 r2,用swap指令在寄存器中进行颠倒,实现大小端转换;
Sw r2 r1,存储。
发明内容
本发明所要解决的技术问题是,提供一种中央处理单元及其存取数据的方法,以改进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=memory【rb】
其中Lw是load word的缩写,表示将数据从数据存储器复制到寄存器的数据传送指令。
endian转换取指令:
Sw.e/Sh.e ra,[rb](4字节/2字节)
语义:memory【rb】=ra
Sw是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转换的方案,本发明可以明显提高程序的运行效率,缩短程序运行时间。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种中央处理单元,包括指令存储器、指令译码器、寄存器和执行单元,其特征在于,还包括与所述执行单元相连的具有大端或小端(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转换功能的数据存储器进一步包括数据存储模块和endian转换模块,所述数据存储模块接收到所述endian转换控制信号后,根据所述endian转换控制信号将所要存取的数据发送给所述endian转换模块,所述endian转换模块将所接收到的数据的格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。
7.如权利要求6所述的方法,其特征在于,
所述数据存储模块未接收到所述endian转换控制信号时,将所要存取的数据直接进行存取。
8.如权利要求6所述的方法,其特征在于,所述中央处理单元根据所述endian转换控制信号将所要存取的数据格式转换为与本中央处理单元默认的endian模式相反的数据格式后进行存取指:
所述中央处理单元利用具有endian转换功能的数据存储器实现数据存取,其中,该endian转换功能的数据存储器进一步包括数据存储模块和endian转换模块,所述数据存储模块将所要存取的数据发送给所述endian转换模块,若所述endian转换模块接收到所述endian转换控制信号,则将所述数据存储模块发送的数据的格式转换为与所述中央处理单元默认的endian模式相反的数据格式后进行存取。
9.如权利要求8所述的方法,其特征在于,
若所述endian转换模块未接收到所述endian转换控制信号,则将所述数据存储模块发送的数据直接进行存取。
CN 201010244709 2010-08-02 2010-08-02 一种中央处理单元及其存取数据的方法 Expired - Fee Related CN101916235B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010244709 CN101916235B (zh) 2010-08-02 2010-08-02 一种中央处理单元及其存取数据的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010244709 CN101916235B (zh) 2010-08-02 2010-08-02 一种中央处理单元及其存取数据的方法

Publications (2)

Publication Number Publication Date
CN101916235A CN101916235A (zh) 2010-12-15
CN101916235B true CN101916235B (zh) 2013-09-11

Family

ID=43323751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010244709 Expired - Fee Related CN101916235B (zh) 2010-08-02 2010-08-02 一种中央处理单元及其存取数据的方法

Country Status (1)

Country Link
CN (1) CN101916235B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578193B1 (en) * 1998-03-24 2003-06-10 Novell, Inc. Endian-neutral loader for interpretive environment
CN1532722A (zh) * 2003-03-19 2004-09-29 ���µ�����ҵ��ʽ���� 字节序不同的处理器间共享数据的数据共享装置和处理器
CN1632743A (zh) * 2003-12-23 2005-06-29 凌阳科技股份有限公司 在处理器中写出资料的方法与装置
CN1873633A (zh) * 2005-06-01 2006-12-06 株式会社瑞萨科技 半导体器件和数据处理系统
CN1889031A (zh) * 2005-06-30 2007-01-03 华为技术有限公司 一种支持外部存储器接口模式转换的装置和方法
CN101160564A (zh) * 2004-12-13 2008-04-09 英特尔公司 用于实现有双端序能力的编译器的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040059848A1 (en) * 2002-09-23 2004-03-25 Institute For Information Industry Device for automatically switching endian order

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578193B1 (en) * 1998-03-24 2003-06-10 Novell, Inc. Endian-neutral loader for interpretive environment
CN1532722A (zh) * 2003-03-19 2004-09-29 ���µ�����ҵ��ʽ���� 字节序不同的处理器间共享数据的数据共享装置和处理器
CN1632743A (zh) * 2003-12-23 2005-06-29 凌阳科技股份有限公司 在处理器中写出资料的方法与装置
CN101160564A (zh) * 2004-12-13 2008-04-09 英特尔公司 用于实现有双端序能力的编译器的方法和装置
CN1873633A (zh) * 2005-06-01 2006-12-06 株式会社瑞萨科技 半导体器件和数据处理系统
CN1889031A (zh) * 2005-06-30 2007-01-03 华为技术有限公司 一种支持外部存储器接口模式转换的装置和方法

Also Published As

Publication number Publication date
CN101916235A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
KR101817397B1 (ko) 하나의 아키텍처의 코드 모듈이 다른 아키텍처의 라이브러리 모듈을 사용할 수 있게 하는 아키텍처 간 호환성 모듈
US7996581B2 (en) DMA engine
US6526462B1 (en) Programmable multi-tasking memory management system
AU682959B2 (en) Efficient addressing of large memories
US7694084B2 (en) Ultra low power ASIP architecture
CN105868128B (zh) 用于高速缓冲存储器线替代的系统和方法
CN107548488B (zh) 具有dsp引擎及增强上下文切换能力的中央处理单元
CN102144225A (zh) 实时数据处理方法和装置
KR20050051672A (ko) 스케일러블 멀티채널 메모리 액세스를 위한 방법 및 메모리제어기
CN115098412B (zh) 外设访问控制器、数据访问装置及对应方法、介质和芯片
CN102262611B (zh) 一种16位的risc cpu系统结构
CN103714026A (zh) 一种支持原址数据交换的存储器访问方法及装置
CN108337286A (zh) 一种切包方法及装置
US8909892B2 (en) Method, apparatus, and computer program product for fast context switching of application specific processors
CN105242904B (zh) 用于处理器指令缓冲与循环缓冲的装置及其操作方法
CN108762810A (zh) 一种基于并行微引擎的网络报文头处理器
CN101916235B (zh) 一种中央处理单元及其存取数据的方法
CN101504613B (zh) 用于受限系统的分布式动态二进制翻译方法
CN106445879B (zh) 一种SoC装置
CN107807888B (zh) 一种用于soc架构的数据预取系统及其方法
CN112565474B (zh) 面向分布式共享spm的批量数据传输方法
CN206178816U (zh) 一种高性价比的SoC架构
US11550572B2 (en) Splitting vector instructions into microinstructions for parallel execution based on index comparisons of completed microinstructions
CN103500107A (zh) 一种cpu的硬件优化方法
CN116450570B (zh) 基于fpga的32位risc-v处理器及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING SUNPLUS EHUE TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING BEIYANG ELECTRONIC TECHNOLOGY CO., LTD.

Effective date: 20140404

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140404

Address after: Science and Industry Park, Taiwan, Hsinchu, China, No. 19

Patentee after: Lingyang Science and Technology Co., Ltd.

Patentee after: BEIJING SUNPLUS-EHUE TECHNOLOGY CO., LTD.

Address before: Science and Industry Park, Taiwan, Hsinchu, China, No. 19

Patentee before: Lingyang Science and Technology Co., Ltd.

Patentee before: Beijing Beiyang Electronic Technology Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130911

Termination date: 20170802