采用RISC结构的单片机制造技术

技术编号:2821111 阅读:545 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种支持MCS-51指令集的单片机,包括:ROM、取指令、RAM、算术逻辑单元、特殊功能寄存器和译码模块等,采用等长指令的方式,并添加3级流水线功能。ROM用来存放用户的应用程序;取指令模块提供程序计数器PC的值给ROM,从ROM中读出应用程序,完成了流水线操作的第1阶段取指令,将应用程序分解成操作码与操作数传输给译码模块;从中断模块接收到中断信号后,返回中断响应信号。译码模块从取指令模块中取出将要执行的操作码与操作数,根据操作码确定对其他模块的控制信号,并完成流水线操作的第2阶段和第3阶段。本发明专利技术在保持MCS-51系列单片机指令系统不变的情况下,能够有效地提高指令运行的速度。

【技术实现步骤摘要】

本专利技术涉及一种单片微型计算机,特别是涉及一种采用RISC (Reduced Instruction Set Computer精简指令集计算机)结构的单片 机,该单片机支持MCS-51系列单片机指令。
技术介绍
单片微型计算机简称单片机,是微型计算机的一个重要分支,也是一 种非常活跃且颇具生命力的机种。单片机特别适用于控制领域,故又称为 微控制器。MCS-51系列单片机是Intel公司推出的8位单片机,在嵌入式系统 与装备制造行业有广泛的应用。随着电子行业的高速发展,各个行业对单 片机的运行速度要求越来越高,传统的MCS-51单片机已逐渐不能满足用 户的需求。Intel—MCS51系列单片机的指令处理涉及如下时间概念,时钟周期、 机器周期、指令周期。时钟周期T又称为振荡周期,通常由内部振荡方式和外部振荡方式两 种电路形式得到。例如,某单片机使用的时钟频率为lMHz,则它的时钟 周期应为lus。机器周期定义为实现特定功能所需要的时间,通常由若干时钟周期构 成。MCS-51系列单片机的机器周期是固定的,均由12个时钟周期T组成,分为6个状态(S1 S6),每个状态又分为P1和P2两拍。因此,一 个机器周期中的12个时钟周期可以表示为S1P1, S1P2, S2P1, S2P2,…, S6P2。指令周期是时序中最大的时间单位,定义为执行一条指令所需要的时 间。由于机器执行不同指令所需要的时间不同,因此不同指令所包含的机 器周期数也不相同。通常,包含一个机器周期的指令称为单周期指令,包 含两个机器周期的指令称为双周期指令,包含四个机器周期的指令称为四 周期指令。Intel—MCS51系列单片机采用的是CISC (Complex Instruction Set Computer复杂指令集计算机),其指令的字节数不固定,分为单字节指令、 双字节指令和三字节指令。执行任何一条指令时都可以分为取指令阶段和 执行指令阶段。在取指令阶段可以把程序计数器PC中的地址送到程序储 存器,并从中取出需要执行指令的操作码和操作数。指令执行阶段可以对 指令操作码进行译码,以产生一系列控制信号完成指令的执行。附图说明图1给出 了 MCS-51系列单片机的取指令阶段/执行指令阶段时序。由图1可见,ALE (锁存允许)引脚上出现的信号是周期性的,每个机器周期内出现两次高 电平,出现时刻为S1P2和S4P2,持续时间为一个状态S。 ALE信号每出 现一次,CPU就进行一次取指令操作,但由于不同指令的字节数和机器周 期数不同,因此取指令操作也随指令不同而有小的差异。单字节单指令周期指令的执行时序这类指令的指令码只有一个字 节,存放在程序存储器ROM中,单片机从取出指令码到完成指令的执行仅 需要一个机器周期。图1中,单片机在ALE第一次有效(S1P1)时从ROM中读出指令码,把它送到指令寄存器,接着开始执行指令阶段。在执行期间,CPU —方面在ALE第二次有效(S4P2)时封锁程序计数器PC加"1", 使第二次读操作无效;另一方面在时钟周期S6P2时完成指令的执行。这 样完成一句单字节单指令周期指令所需要的时间为单片机时钟周期的12 倍。双字节单指令周期指令的执行时序MCS-51系列单片机在执行这类 指令时需要分两次从ROM中读出指令码。图1中,机器在ALE第一次有效(S1P1)时从ROM中读出指令码,CPU进行译码后便知道是双字节指令, 故使程序计数器PC加"1",并在ALE第二次有效时读出指令的第二字节(程序计数器PC加"1"),最后在时钟周期S6P2时完成指令的执行。这 样完成一句双字节单周期指令所需要的时间为单片机时钟周期的12倍。单字节双指令周期指令的执行时序MCS-51系列单片机在执行这类 指令时(参见图1), CPU在机器周期的第一状态SI期间从程序存储器ROM 中读出指令操作码,进行译码后便知道是单字节双周期指令,故控制器自 动封锁后面的连续三次读操作,并在第二机器周期的时钟周期S6P2时完 成指令的执行。这样完成一句单字节双周期指令所需要的时间为单片机时 钟周期的24倍。MCS-51系列单片机的运行速度由于取指令阶段和执行指令阶段的时 序一定,因此很难提高其运行速度,无法适应现代技术的发展,满足工控 系统对单片机运行速度提高的需求。要提高现有MCS-51系列单片机运行速度,也可以采用改变指令系统 的RISC结构实现,但是人们无法利用以前MCS-51系列单片机的程序资源,而且必须熟悉新的指令系统。因此在人们己经熟悉MCS-51系列单片机指 令系统的情况下,不利于与现有技术的兼容和推广应用。
技术实现思路
本专利技术要解决的技术问题是提供一种采用RISC结构的单片机,在保 持MCS-51系列单片机指令系统不变的情况下,有效地提高指令运行的速 度。为解决上述技术问题,本专利技术的采用RISC结构的单片机包括RAM 模块,是一个256字节的随机存取存储器;特殊功能寄存器模块,用于实 现单片机中特殊功能寄存器的功能;算术逻辑单元模块,用组合逻辑来实 现二进制数的算术运算和逻辑操作;算术逻辑单元的操作数选择模块,用 来给算术逻辑单元模块提供所要进行计算的数据;进位选择模块,用于给 算术逻辑单元模块提供进位信号;间接寻址模块,用于处理指令中含有间 接寻址的操作;比较模块,用于处理指令中有比较运算的操作;其中,采用3级流水线的处理方式处理指令系统;流水线在执行单周 期指令的时运行,执行双周期指令和四周期指令时停止;所述单片机还包括ROM模块,用于存放应用程序,能够在一个地址信号输入后,输出4个 连续的数据;取指令模块,与RAM、 R0M、特殊功能寄存器和译码模块连接,采用 等长指令的方式读取指令;确定单片机程序计数器PC的值;从ROM模块 中读出应用程序,完成流水线操作的第1阶段取指令,将应用程序分解成 操作码与操作数传输给译码模块;从中断模块接收到中断信号后,返回中断响应信号;译码模块从取指令模块中取出将要执行的操作码与操作数,根据操作码确定对其他模块的控制信号,并完成流水线操作的第2阶段执行指令和 第3阶段回写内存;译码模块中的指令执行状态信号STATE,用于控制各 条指令的执行阶段。本专利技术的有益效果是,给出了一种兼容已有MCS-51系列单片机程序 的单片机实现方式,在没有改变MCS-51系列单片机指令系统的情况下, 指令以时钟周期为运行单位,用等长指令的方式读取指令,使用RISC结 构,并添加了 3级流水线来加快单片机的运行速度。指令运行速度比现有 MCS-51系列单片机提高8倍左右,最快可使8位MCU (微控制器)的性能 提高到80 100 MIPS (兆条指令每秒)左右,减少了冗余周期,能够实 现高速大量的数据流通,使单片机达到较高的性价比。图说明下面结合附图与具体实施方式对本专利技术作进一步详细的说明图1是现有的MCS-51系列单片机取指令阶段/执行指令阶段时序图2是本专利技术的实施方式中单片机内核结构框图3、 4是图2中的R0M模块结构图5是本专利技术的实施方式中缓存器BUFFER的示意图6是本专利技术的实施方式中各种指令周期的示意图7是本专利技术的实施方式中运行单周期指令时控制流程示意图8是本专利技术的实施方式中的中断向量地址、中断使能位、中断本文档来自技高网
...

【技术保护点】
一种支持MCS-51指令集的RISC结构单片机,包括:RAM模块,是一个256字节的随机存取存储器;特殊功能寄存器模块,用于实现单片机中特殊功能寄存器的功能;算术逻辑单元模块,用组合逻辑来实现二进制数的算术运算和逻辑操作;算术逻辑单元的操作数选择模块,用来给算术逻辑单元模块提供所要进行计算的数据;进位选择模块,用于给算术逻辑单元模块提供进位信号;间接寻址模块,用于处理指令中含有间接寻址的操作; 其特征在于,采用3级流水线的处理方式处理指令系统;流水线在执行单周期指令的时候运行,执行双周期指令和四周期指令时停止; 所述单片机还包括: ROM模块,用于存放应用程序,能够在一个地址信号输入后,输出4个连续的数据; 取指令模块,与RAM、ROM、特殊功能寄存器和译码模块连接,采用等长指令的方式读取指令;确定单片机程序计数器PC的值;从ROM模块中读出应用程序,完成流水线操作的第1阶段取指令,将应用程序分解成操作码与操作数传输给译码模块;从中断模块接收到中断信号后,返回中断响应信号; 译码模块从取指令模块中取出将要执行的操作码与操作数,根据操作码确定对其他模块的控制信号,并完成流水线操作的第2阶段执行指令和第3阶段回写内存;译码模块中的指令执行状态信号STATE,用于控制各条指令的执行阶段。...

【技术特征摘要】

【专利技术属性】
技术研发人员:金乃咏韩菲倪滔雍沈铖洁
申请(专利权)人:华东师范大学
类型:发明
国别省市:31[]

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

1