CN102156629A - 32位指令扩展的方法 - Google Patents
32位指令扩展的方法 Download PDFInfo
- Publication number
- CN102156629A CN102156629A CN2011101138316A CN201110113831A CN102156629A CN 102156629 A CN102156629 A CN 102156629A CN 2011101138316 A CN2011101138316 A CN 2011101138316A CN 201110113831 A CN201110113831 A CN 201110113831A CN 102156629 A CN102156629 A CN 102156629A
- Authority
- CN
- China
- Prior art keywords
- instruction
- decoding
- bit
- instructions
- buffer memory
- 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.)
- Pending
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种32位指令扩展的方法,包括以下步骤:1)32位指令缓存:当缓存不满时自动向内存读取指令,即缓存中当前16位用做指令解码时,缓存中后16位自动移动到前16位,从内存中读取的16位指令自动填充至缓存中的后16位;2)指令解码前的判断:设定缓存中指令的前n位为保留字段,4≦n≦16,如果保留字段为预设定值,则跳转到步骤4),否则,跳转到步骤3);3)进行16位指令解码,解码完成后,跳转到步骤5)进行指令发射或执行;4)进行32位指令解码,解码结束后跳转到步骤5);5)进行指令发射或执行。本发明可将CCore指令集扩展成16位/32位混合指令集。
Description
技术领域
本发明涉及一种微处理器内部的数据处理方法,具体涉及一种32位指令扩展的方法,属于微处理器技术领域。
背景技术
CCore( China Core,即国芯)第一代指令集是固定字长16位指令集。16位指令集具有代码密度高,节省存储空间,运行功耗低的优点。但16位指令集也有其先天的劣势,主要有扩展性差,对于复杂运算指令数目过多,在高带宽的系统中性能低下。
指令集是微处理器架构的基础,可以说指令的强弱极大影响着微处理器的性能和效率。指令集可分为复杂指令集(CISC)和精简指令集(RISC)。CISC体系代表性的指令集有Intel的80x86和Motorola的68K等。 RISC体系代表性的指令集有ARM和PowerPC等。RISC架构相对于CISC架构具有以下特点:指令长度固定,指令格式种类少,寻址方式种类少,大多数是简单指令且都能在一个时钟周期内完成。这些特点有利于指令译码的简化,以及流水线/超标量设计。
20世纪90年代摩托罗拉开发的MCore指令集完全遵循了精简指令集的设计思想,采用固定的16位指令编码技术,绝大部分指令在一个周期内完成。CCore第一代指令集与摩托罗拉MCore指令集完全兼容。基于CCore第一代指令集的C300系列CPU已经在移动存储和通信,数字电视/机顶盒,打印机,安全芯片,汽车电子等嵌入式领域得到了广泛应用。但是当今的嵌入式系统开发面对的挑战越来越复杂,必须在代码性能和系统成本之间进行平衡。原16位CCore指令集虽然具有功耗和成本的优势,但已经无法满足当今复杂嵌入式系统对性能的要求。这是由于16位指令集相对于32位指令集来讲,由于字长的限制,扩展性差,无法集成高效率的指令。
指令由操作码和操作数组成,操作码用来区分不同的指令。操作数用来传递操作需要的参数。原CCore16位指令集代码空间余地很小,无法再扩展效率更高的复杂指令。假设要实现下面一条MAC指令,语法为MAC <Rd>,<Rm>,<Rs>,<Rn>, 基本操作为Rd=Rm*Rs+Rn。当中有4个基本的操作数Rd,Rm,Rs,Rn各为4个比特,可表示16个通用寄存器。而CCore16位指令集固定长度为16比特,很显然无法集成类似MAC的指令。
发明内容
本发明所要解决的技术问题是应对现代复杂嵌入式应用的需求,提供一种方法,可以将CCore指令集扩展为16位/32位混合指令集,支持CCore指令集中集成DSP等较复杂指令,扩展CCore指令集的应用范围。
为解决上述技术问题,本发明提供一种32位指令扩展的方法,其特征在于,包括以下步骤:
1)32位指令缓存:当缓存不满时自动向内存读取指令,即缓存中当前16位用做指令解码时,缓存中后16位自动移动到前16位,从内存中读取的16位指令自动填充至缓存中的后16位,所述缓存不满的情况为缓存为空或者只有16位bit未参与解码时;
2)指令解码前的判断: 设定缓存中指令的前n位为保留字段,4≦n≦16,如果保留字段为预设定值,则跳转到步骤4),否则,跳转到步骤3);
3)进行16位指令解码,解码完成后,控制信号传输给发射模块,跳转到步骤5)进行指令发射或执行;
4)进行32位指令解码,解码结束后跳转到步骤5)的指令发射或执行;
5) 进行指令发射或执行。
前述的32位指令扩展的方法,其特征在于:在所述步骤2)中,保留字段为指令前4位,预设定值为4’b0101。
本发明将原指令集中保留的字段0101xxxx_xxxxxxxx扩展为APP指令,APP指令和下一条16位指令组合成一条32位指令,从而满足复杂指令对代码空间的要求,同时又不与原16位指令冲突。在100%兼容原CCore16位指令集的基础上,将CCore指令集扩展成16位/32位混合指令集的方法,从而满足应用对于成本和性能的综合要求。
附图说明
图1为本发明的一种实施例的流程图。
具体实施方式
本发明的实现可以由状态机表示。步骤1表示32位指令缓存,当缓存不满时会自动向内存读取指令。当前16位用做指令解码时,后16位自动移动到前16位,内存中读取的16位指令自动填充后16位。步骤2是指令解码前的预判,如指令前4位为4’b0101,则跳转到步骤4,否则,跳转到步骤3。步骤3是16位指令解码,解码完成后,控制信号传输给发射模块,跳转到步骤5-指令发射或执行。步骤4是32位指令解码,同样,解码结束后跳转到指令发射或执行。
本发明利用CCore原16位指令集保留字段16’b0101XXXXXXXXXXXX扩展CCore指令集,利用指令开头4Bit作为保留字段区别16位指令和32位指令,采用保留字段扩展16位指令集,避免了于原16位指令的冲突,又实现了32位指令集的扩展。
以上显示和描述了本发明的基本原理、主要特征,和本方面的优点。本行业的技术人员应该有所知晓,本发明不受上述实施的限制,上述实施列和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都要落入要去保护的本发明范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
Claims (2)
1.一种32位指令扩展的方法,其特征在于,包括以下步骤:
1)32位指令缓存:当缓存不满时自动向内存读取指令,即缓存中当前16位用做指令解码时,缓存中后16位自动移动到前16位,从内存中读取的16位指令自动填充至缓存中的后16位,所述缓存不满的情况为缓存为空或者只有16位bit未参与解码时;
2)指令解码前的判断: 设定缓存中指令的前n位为保留字段,4≦n≦16,如果保留字段为预设定值,则跳转到步骤4),否则,跳转到步骤3);
3)进行16位指令解码,解码完成后,控制信号传输给发射模块,跳转到步骤5)进行指令发射或执行;
4)进行32位指令解码,解码结束后跳转到步骤5)的指令发射或执行;
5) 进行指令发射或执行。
2.根据权利要求1所述的 32位指令扩展的方法,其特征在于:在所述步骤2)中,保留字段为指令前4位,预设定值为4’b0101。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101138316A CN102156629A (zh) | 2011-05-04 | 2011-05-04 | 32位指令扩展的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101138316A CN102156629A (zh) | 2011-05-04 | 2011-05-04 | 32位指令扩展的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102156629A true CN102156629A (zh) | 2011-08-17 |
Family
ID=44438138
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101138316A Pending CN102156629A (zh) | 2011-05-04 | 2011-05-04 | 32位指令扩展的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102156629A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425498A (zh) * | 2013-08-20 | 2013-12-04 | 复旦大学 | 一种低功耗的长指令字指令存储器及其优化功耗的方法 |
CN104615443A (zh) * | 2015-02-27 | 2015-05-13 | 珠海市杰理科技有限公司 | 单片机指令扩展方法与系统 |
CN108470007A (zh) * | 2012-01-26 | 2018-08-31 | 内存技术有限责任公司 | 借助非易失性大容量存储器系统提供高速缓冲存储器移动的设备和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784585A (en) * | 1994-04-05 | 1998-07-21 | Motorola, Inc. | Computer system for executing instruction stream containing mixed compressed and uncompressed instructions by automatically detecting and expanding compressed instructions |
CN1335561A (zh) * | 2000-06-30 | 2002-02-13 | 先进数字芯片股份有限公司 | 扩展指令字折叠设备 |
US6651160B1 (en) * | 2000-09-01 | 2003-11-18 | Mips Technologies, Inc. | Register set extension for compressed instruction set |
-
2011
- 2011-05-04 CN CN2011101138316A patent/CN102156629A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784585A (en) * | 1994-04-05 | 1998-07-21 | Motorola, Inc. | Computer system for executing instruction stream containing mixed compressed and uncompressed instructions by automatically detecting and expanding compressed instructions |
CN1335561A (zh) * | 2000-06-30 | 2002-02-13 | 先进数字芯片股份有限公司 | 扩展指令字折叠设备 |
US6651160B1 (en) * | 2000-09-01 | 2003-11-18 | Mips Technologies, Inc. | Register set extension for compressed instruction set |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108470007A (zh) * | 2012-01-26 | 2018-08-31 | 内存技术有限责任公司 | 借助非易失性大容量存储器系统提供高速缓冲存储器移动的设备和方法 |
CN108470007B (zh) * | 2012-01-26 | 2022-06-17 | 内存技术有限责任公司 | 借助非易失性大容量存储器系统提供高速缓冲存储器移动的设备和方法 |
CN103425498A (zh) * | 2013-08-20 | 2013-12-04 | 复旦大学 | 一种低功耗的长指令字指令存储器及其优化功耗的方法 |
CN103425498B (zh) * | 2013-08-20 | 2018-07-24 | 复旦大学 | 一种低功耗的长指令字指令存储器及其优化功耗的方法 |
CN104615443A (zh) * | 2015-02-27 | 2015-05-13 | 珠海市杰理科技有限公司 | 单片机指令扩展方法与系统 |
CN104615443B (zh) * | 2015-02-27 | 2018-04-24 | 珠海市杰理科技股份有限公司 | 单片机指令扩展方法与系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101916180B (zh) | Risc处理器中执行寄存器类型指令的方法和其系统 | |
CN101377736B (zh) | 乱序执行微处理器以及宏指令处理方法 | |
CN101344840B (zh) | 一种微处理器及在微处理器中执行指令的方法 | |
EP1904922B1 (en) | Power saving methods and apparatus for variable length instructions | |
CN102169420A (zh) | 缓冲区循环读写方法及装置 | |
CN102508635A (zh) | 一种处理器装置及其循环处理方法 | |
CN101882119A (zh) | 与非型闪存控制器及其数据传输方法 | |
CN102156629A (zh) | 32位指令扩展的方法 | |
JP5221153B2 (ja) | 正確なプレデコードを保証する方法及び装置 | |
JP2008535043A5 (zh) | ||
US20070233963A1 (en) | Data processing system and method for processing data | |
CN116627502B (zh) | 跳转指令的优化方法、指令的跳转方法、装置、电子设备 | |
CN102893260B (zh) | 用以作为指令评估数据值的系统和方法 | |
CN101866281B (zh) | 一种多周期指令执行方法和装置 | |
CN101164035A (zh) | 基于已知的处理器状态而选择性地启用内容可寻址存储器重命名寄存器文件中的比较器的功率节约方法和设备 | |
CN108920188B (zh) | 一种扩展寄存器堆的方法及装置 | |
CN104159142A (zh) | 一种设备的视频软解码方法和装置 | |
CN102231180B (zh) | 处理器指令编码可重定义的方法 | |
CN102789428B (zh) | 一种指令高速缓冲存储器装置及其控制方法 | |
CN101699391A (zh) | 用于提高Java处理器取指令带宽的字节码缓冲装置及其使用方法 | |
CN101340191B (zh) | 一种解码器和解码方法 | |
CN101436140B (zh) | 计算机系统及其开机方法 | |
CN103327316A (zh) | 视频宏块的上下文信息存取方法和系统 | |
CN203057363U (zh) | 视频宏块的上下文信息存取系统 | |
CN114174985A (zh) | 在基于块的指令集架构中高扇出通信的高效编码 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110817 |