当前位置: 首页 > 专利查询>复旦大学专利>正文

采用双指令集的32位嵌入式微处理器制造技术

技术编号:2875644 阅读:251 留言:0更新日期:2012-04-11 18:40
本发明专利技术为一种采用新体系结构的32位嵌入式微处理器,能够处理本地RISC指令和Java卡虚拟机两套指令集。它由取指单元、指令cache、指令译码电路、指令折叠电路、通用寄存器组、数据运算单元、内存单元、前推电路、异常处理单元等部分构成。其中,指令cache和指令折叠电路仅在执行Java卡虚拟机指令时有效,与此同时,通用寄存器组映射为堆栈cache。本发明专利技术中的微处理器可以同时支持两套指令集,并且之间能够方便的进行无缝切换,而电路面积与传统不支持Java卡虚拟机的处理器相比,增加不到20%。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种32位嵌入式微处理器,它支持本地RISC指令和Java卡虚拟机两套指令集。信息家电飞速发展,同时,家庭网络也迅速崛起。Java处理芯片将在这两方面扮演重要角色。一方面Sun公司正致力于与消费电子设备制造商携手合作,推出基于Java技术的新型信息家电产品;另一方面,由于Java语言的跨平台和网络特性,绝大多数信息家电厂商正努力增强对Java的支持。直接将Java技术利用硬件实现,作为信息家电设备的核心将是大势所趋。Java智能卡技术是Java技术在智能卡领域的扩展,给传统的智能卡技术和应用领域带来变革,提高了发卡商或服务提供商选择智能卡的自主性,能动态的调整卡的应用程序,在具有灵活性的同时也保证了安全性。Java智能卡产品已经在全世界范围得到了广泛的应用,领域包括无线通信、医疗保健、金融银行、军队、身份认证、电子商务等方面。一般的32位嵌入式微处理器只支持一套指令集,即本地RISC指令系统;而Java处理器则只支持Java虚拟机JVM(Java Card Virtual Machine)或Java卡虚拟机JCVM(Java Card VirtualMachine),不支持传统的RISC指令。如果要在嵌入式微处理器的基础上增加Java处理功能,需要额外利用软件编写的解释器或编译器。传统的32位嵌入式微处理器设计技术比较成熟,但对Java功能的支持较弱。当前的Java实现方案中,主要有三种方法解释执行(Interpreter),及时编译JIT(Just In Time)和硬件直接执行,即Java处理器(Java in Silicon)。解释执行的方式执行速度慢;及时编译JIT与解释执行相比,虽然能够提高处理速度,但是占用的内存资源会增加两到三个数量级,对于内存资源有严格限制的嵌入式应用来说,也是不现实的;硬件直接执行有三种常用的方法(1)纯粹的Java处理器完全为执行Java bytecode而设计。如Sun公司提供的picoJava;(2)Java协处理器主处理器执行其本地RISC指令,当遇到待执行的指令是java bytecode时,激活协处理器,同时移交总线控制权,当Java协处理器执行结束后,重新将控制权交还给主处理器。如Nazomi公司提供的JSTAR;(3)通用处理器带Java扩展功能,如ARM公司提供的Jazelle处理器。本专利技术提出的32位嵌入式微处理,由指令存储器1、取指单元2、指令cache3、指令译码电路4、指令折叠电路5、通用寄存器组6、数据运算单元7、内存单元8、前推电路9、异常处理单元10、程序计数器PC11、状态寄存器PSR12、指令陷阱13、多路选择器14经电路连接构成,其中,指令存储器1、取指单元2、指令译码电路4、通用寄存器组6、数据运算单元7依次电路连接,前推电路9和异常处理单元11分别与取指单元2、指令译码电路4、数据运算单元7连接,状态寄存器12与数据运算单元7、内存单元8、寄存器组6连接,组成支持本地RISC指令集的电路系统,见图8所示;指令存储器1、指令cache、指令折叠电路5、指令译码电路4、堆栈cache6、数据运算单元7、多路选择器14、内存单元8依次电路连接,指令陷阱单元13与指令折叠电路5和指令译码电路4连接,组成支持Java卡虚拟机指令集的电路系统,见图9所示;并通过设置跳转指令,实现本地RISC状态和Java状态的无缝切换。本专利技术中,微处理器采用哈佛结构,五/六级流水线切换,由指令存储器1、指令译码电路4、通用寄存器组6、数据运算单元7、内存单元8和写回电路构成数据通路,指令cache3、指令折叠电路5、前推电路9和指令陷阱13用于提高执行效率,分离总线和分离的算术逻辑运算单元降低功耗。本专利技术中,在RISC状态下,有一条特殊的“跳转到Java”指令,当该指令执行条件满足时,处理器切换到Java状态,同时对RISC状态下通用寄存器组、程序计数器以及当前程序状态寄存器进行备份;在Java状态下,如果有异常或中断,处理器切换回RISC状态,同时恢复备份的寄存器和计数器。本专利技术中,整个微处理器在RISC状态下,采用五级流水线结构;在Java状态下,采用特殊的六级流水线结构。具体来说,执行本地指令时,为五级流水线结构,依次是取指令(IF)、译码(ID)、执行(EXE)、访存(DM)、写回(WB)五部分;在执行Java卡虚拟机指令集时,自动切换为六级流水线结构,依次是取指令(IF)、折叠译码(ID)、取操作数(OF)、执行(EXE)、访存(DM)、写回(WB)六部分。这是由于原有的五级流水线的指令译码(ID)阶段在Java状态下承担了过多的任务,如指令折叠、指令cache管理、堆栈cache管理、取操作数,为了避免该级成为处理器设计的瓶颈,限制处理器性能的提高,本专利技术中将它划分成独立的两级折叠译码(ID)和取操作数(OF)。流水线之间的连接通过各级锁存器实现。本专利技术中,根据程序计数器PC的值取指令。在RISC状态下,所有指令都为定长的32位字,而在Java状态下,为非定长指令,指令长度从一个字节(8位)到数个字节不等。因此,本专利技术中,RISC状态下用一个32位的指令控制器控制指令的正常读取;Java状态下用一个12字节(96位)的指令cache控制指令流动。指令控制器和指令cache均位于流水线取指令(IF)和译码(ID)两个阶段之间。本专利技术中,寄存器组6采用32×32的寄存器组织形式,在执行本地指令时,为通用寄存器组;在执行Java卡虚拟机指令集时,映射为操作数堆栈cache。这是由于,微处理器在RISC状态下是面向寄存器组的组织形式,指令的绝大部分操作数处于寄存器中。32个32位的寄存器构成一个大的通用寄存器组;在Java状态下,则是面向堆栈的组织形式,指令的操作数大部分都隐藏在堆栈中。而传统的Java堆栈建于处理器内存中,因此使取操作数和写回运算结果成为运行时的瓶颈。所以,本专利技术在处理器中内建堆栈的cache来提高运行速度。考虑到Java状态下,原RISC状态下的32个通用寄存器组完全空闲,因此将这32个寄存器连成环形作为堆栈cache,即通用寄存器组和堆栈cache是物理上完全相同的单元,但在处理器的不同模式下有不同的功能。原来处理器RISC状态下5级流水中的DM阶段进行内存访问,Java状态下则可以在该阶段空闲(无流水线冲突)时候对新建的堆栈cache进行溢出(spill)和填充(fill)操作。由于堆栈cache由原来的通用寄存器组实现,可以进行三读两写操作,即在Java状态下取两个操作数时还剩余一读一写口以便进行填充和溢出。而且使用堆栈cache后也能进一步实现指令折叠以提高运行速度。操作数从通用寄存器组/堆栈cache取出后进行流水线冲突判断。本专利技术中,执行Java卡虚拟机指令集时,采用了指令折叠技术,将多条指令合并折叠为一条指令执行。使用指令折叠技术可加速Java指令的执行效率。指令折叠模块位于指令译码单元前,用于对Java bytecode长度截取和折叠操作,折叠后的指令送译码模块译码。本专利技术采用了前推(forwarding)技术来解决流水冲突情况,前推电路与数据通路相连,构成数据的快速通道,将操作结本文档来自技高网...

【技术保护点】
一种32位嵌入式微处理器,由指令存储器(1)、取指单元(2)、指令cache(3)、指令译码电路(4)、指令折叠电路(5)、通用寄存器组(6)、数据运算单元(7)、内存单元(8)、前推电路(9)、异常处理单元(10)、程序计数器PC(11)、状态寄存器PSR(12)、指令陷阱(13)、多路选择器(14)经电路连接构成,其特征在于指令存储器(1)、取指单元(2)、指令译码电路(4)、通用寄存器组(6)、数据运算单元(7)依次电路连接,前推电路(9)和异常处理单元(11)分别与取指单元(2)、指令译码电路(4)、数据运算单元(7)连接,状态寄存器(12)与数据运算单元(7)、内存单元(8)、寄存器组(6)连接,组成支持本地RISC指令集的电路系统;指令存储器(1)、指令cache、指令折叠电路(5)、指令译码电路(4)、堆栈cache(6)、数据运算单元(7)、多路选择器(14)、内存单元(8)依次电路连接,指令陷阱单元(13)与指令折叠电路(5)和指令译码电路(4)连接,组成支持Java卡虚拟机指令集的电路系统;并通过设置跳转指令,实现本地RISC状态和Java状态的无缝切换。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐科王文婷忻凌闵昊周晓方顾沧海
申请(专利权)人:复旦大学
类型:发明
国别省市:31[中国|上海]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术