专利名称:基于指令双发射的高性能低功耗嵌入式处理器的制作方法
技术领域:
本发明涉及一种嵌入式处理器,尤其是一种高性能低功耗嵌入式 处理器。
背景技术:
嵌入式系统指面向特定应用领域和执行特定任务的计算机系统, 通常由嵌入式处理器、外围硬件设备、嵌入式操作系统以及用户的应 用程序等四个部分组成。嵌入式系统无所不在,并已经渗透到国名经
济的各个角落在消费类电子产品中,如数码相机、DVD播放器和打 印机等;在医疗设备中,如强心剂无节律监视器和强心剂心律调整器 等;在汽车设计中,如燃料加注系统和自动刹闸系统等。嵌入式系统 将在国家信息化战略中起到至关重要的作用。
嵌入式处理器是嵌入式系统的核心部件。嵌入式处理器负责运行 操作系统以及用户的应用程序,调度和管理外围硬件设备,是系统正 常高效运行的硬件基础。按照数据位的宽度,嵌入式处理器可分为8 位,16位和32位微处理器。目前,8位嵌入式处理器以8051为代表, 主要应用于低端嵌入式应用领域;16位和32位嵌入式处理器应用于 对性能有较高要求的高端嵌入式系统中,包括信息安全、消费类电子、 通信等领域。高端32位嵌入式处理器是未来高性能嵌入式系统发展的 必然要求,并逐渐代替8位、16位嵌入式处理器成为嵌入式领域的主 流处理器。
过去嵌入式处理器性能提高主要依赖运行频率的提升,流水线技术是处理器频率提升的核心技术。流水线技术通过将指令运行划分成 若干的步骤,并将这些步骤分别分配到不同的时钟周期,这样每个时 钟周期仅需完成总工作量的若干分支一,使得硬件电路的时钟频率有 极大的提升。流水线每个执行节拍将当前完成的指令送入下个执行节 拍,每个节拍均有指令完成,从而提升了处理器整体吞吐量。过去io 多年,嵌入式处理器的频率从几兆赫兹提升到几百兆赫兹,总体处理 能力有了突飞猛进。但是频率的提升意味着增加硬件成本和系统功耗, 这对于成本功耗敏感的嵌入式系统往往是不可接受的。因此,仅通过 提升处理器频率来提高性能无法满足高端嵌入式应用对于处理器性 能、功耗和成本等多方面的需求。
发明内容
为了克服已有的嵌入式处理器不能兼顾性能和功耗、成本高的不 足,本发明提供一种在低功耗的前提下提高性能、成本低的基于指令 双发射的高性能低功耗嵌入式处理器。
本发明解决其技术问题所采用的技术方案是
一种基于指令双发射的高性能低功耗嵌入式处理器,包括 取指单元,用于在单时钟周期内从所述片上指令存储器或片外指令存 储器中预取两条指令,并送入流水线;
双路译码单元,用于在流水线中设置两个相同的译码单元,在单时钟
周期内并行译码两条指令;
发射单元,用于将译码后的两条指令存放到流水线寄存器,单时钟周 期并行发射两条指令,如参与运算的操作数准备完毕,在下一时钟周
期将其送入执行单元开始执行;如参与运算的操作数未准备完毕,将
操作数未就绪的指令暂时保存至保留站寄存器中并释放发射窗口,下
6一个时钟周期,后续指令通过发射窗口进行正常发射; 指令分发执行控制单元,用于根据运算负荷动态调整指令分发,指令 分配逻辑实时监测各执行单元的工作情况,并根据各指令执行单元返
回的信息将当前发射的指令动态分配至空闲的执行单元中; 指令执行单元,用于进行指令的结果的运算;
载入/存储单元,用于当指令发生载入/存储操作缺失时,当前载入/ 存储指令临时释放流水线,在专用的回填缓冲区中等待结果从片外载 入,后续载入/存储指令成功占用流水线并顺利访问片上数据存储器和 片外数据存储器。
作为优选的一种方案在所述指令发射单元中,当前序指令由于
操作数未就绪而暂停执行时,后续发射的指令若操作数准备就绪,先 于前续指令迸入执行单元并开始执行。
作为优选的另一种方案所述嵌入式处理器还包括通用协处理
器接口,用于支持面向各种应用领域的扩展;所述通用协处理器器接
口连接协处理器总线。
进一步,所述片上指令存储器包括指令高速缓存器,用于实现
对指令读取的片上高速缓冲;指令高速暂存器,用于提供软件可配置
的指令缓冲区;片上数据存储器包括数据高速缓存器,用于实现对 数据读取的片上高速缓冲;数据高速暂存器,用于提供软件可配置的 片上数据临时保存空间。
更进一步,所述嵌入式处理器还包括功耗管理单元,用于实现
从正常模式到待机、关机和休眠三种低功耗模式转换。
再进一步,在所述指令执行单元中,根据处理器性能的需求的高低,增加或减少相应的执行单元个数。执行单元的接口实现标准化。 本发明的技术构思为提升处理器性能的另一个重要途径是在保
持频率不变的情况下,提升处理器并行处理能力,增加处理器每个时
钟周期能够处理指令的数目。通过对处理器流水线的改进,允许每个
时钟周期并行发射多条指令,提高指令级的并行性提升处理器的综合
处理能力。挖掘处理器并行性提升处理器性能是目前嵌入式处理器创
新的主流思想。流水线的多发射机制是提高处理器性能,同时降低处
理器功耗的重要途径,也是未来面向高性能嵌入式计算的嵌入式处理
器发展的主要方向。
本发明提出了单周期并行发射和执行两条指令的嵌入式处理器硬 件架构,创新了流水线多种工作机制,极大的提升了嵌入式处理器的 并行处理能力,实现了嵌入式处理器在性能上的跨越式发展。
本发明的有益效果主要表现在1、在低功耗的前提下提高性能 通过各种高效流水线执行机制的有机组合,基于指令双发射的高性能 低功耗嵌入式处理器与相同指令集系统的单发射处理器相比,极限性 能提升100°/。,平均性能提升60%左右,可满足高性能嵌入式计算的
基本需求。通过有效的功耗管理机制,功耗控制在0.4mW/MHz以内; 2、降低了成本。
图1是指令双发射嵌入式处理器总体结构框图。
图2是取指单元从片上或片外存储器取指逻辑框图。 图3是非阻塞的发射机制的示意图。 图4是指令动态分配策略的示意图。 图5是处理器工作模式转换的示意图。
具体实施例方式
下面结合附图对本发明作进一步描述。
参照图1 图5,一种基于指令双发射的高性能低功耗嵌入式处理 器,包括
取指单元,用于在单时钟周期内从所述片上指令存储器或片外指 令存储器中预取两条指令,并送入流水线;
双路译码单元,用于在流水线中设置两个相同的译码单元,在单
时钟周期内并行译码两条指令;
发射单元,用于将译码后的两条指令存放到流水线寄存器,单时 钟周期并行发射两条指令,如参与运算的操作数准备完毕,在下一时
钟周期将其送入执行单元开始执行;如参与运算的操作数未准备完毕, 将操作数未就绪的指令暂时保存至保留站寄存器中并释放发射窗口, 下一个时钟周期,后续指令通过发射窗口进行正常发射;
指令分发执行控制单元,用于根据运算负荷动态调整指令分发, 指令分配逻辑实时监测各执行单元的工作情况,并根据各指令执行单 元返回的信息将当前发射的指令动态分配至空闲的执行单元中;
指令执行单元,用于进行指令的结果的运算,执行单元的接口实 现标准化,可根据处理器性能的需求的高低,增加或减少相应的执行 单元个数;
载入/存储单元,用于当指令发生载入/存储操作缺失时,当前载 入/存储指令临时释放流水线,在专用的回填缓冲区中等待结果从片外 载入,后续载入/存储指令成功占用流水线并顺利访问片上数据存储器 和片外数据存储器。在所述指令发射单元中,当前序指令由于操作数未就绪而暂停执 行时,后续发射的指令若操作数准备就绪,先于前续指令进入执行单 元并开始执行。
本实施例的嵌入式处理器的总体逻辑框图如附图1所示,其具体 需实施主要包括以下步骤
1) 取指单元实现单时钟周期预取两条指令,送入流水线;
2) 采用双路译码单元,单时钟周期并行译码两条指令;
3) 采用非阻塞发射机制,单时钟周期并行发射两条指令
4) 指令动态分配机制可根据执行单元运算负荷动态调整指令分发;
5) 采用乱序执行机制,完成发射的指令只要操作数准备完毕即可进 入指令执行单元执行,其执行顺序与程序顺序无关;
6) 采用非阻塞载入/存储机制,在前续指令出现高速缓存缺失情况 下,后续指令可以继续进入载入/存储单元,并访问高速缓存器或高速 暂存器;
7) 通用协处理器接口实现嵌入式处理器面向特定应用领域的扩展;
8) 高速缓存器与高速暂存器共同构成丰富的片上存储资源;
9) 功耗管理单元实现处理器从正常模式到待机、关机和休眠三种低 功耗模式转换。
其中,取指单元实现单时钟周期预取两条指令,送入流水线。双 发射嵌入式处理器的取指单元处于流水线的最前级,其主要工作任务 是每个时钟周期取两条指令,并送入流水线。指令通常保存在片上高 速缓存器或高速暂存器,或者片外存储器中。片上存储器或者片外存 储器按照两条指令宽度组织存储结构(区块1存储指令1,区块0存 储指令0),保证每个时钟周期能够提供两条指令,如图2所示。当目标取指地址命中片上高速缓存器或高速暂存器时,每个时钟周期可以 从这些片上存储器中取到两条指令。当目标取指地址出现片上高速缓 存器或高速暂存器缺失时,需通过系统总线接口从片外存储器获得指
采用双路译码单元,单时钟周期并行译码两条指令。支持指令双 发射的高性能流水线每个时钟周期需并行处理两条指令,因此需要设 计两个功能相同的译码单元分别对两条指令进行独立译码。当前级流 水线仅送一条指令进入译码单元时,其中一个译码单元会进入休眠状 态,实现译码过程的低功耗。
在发射单元中,采用非阻塞发射机制,单时钟周期并行发射两条 指令。指令经过译码后进入发射阶段,根据译码获得的操作数相关信 息首先査找操作数是否就绪。若操作数准备就绪,指令可送入执行单
元开始执行;若操作数暂时未就绪,则当前指令暂时不能送入执行单
元,需要等待操作数就绪后方能发射。采用传统发射机制,由于当前 指令需要等待操作数就绪后方能实施反射,后续指令由于不能占用反
射窗口而被阻塞在前级流水线。本发明提出的非阻塞发射机制如图3 所示,当指令出现操作数未就绪时,将当前指令发射至专用的保留站 寄存器中,由保留站负责操作数的等待。此时发射窗口被释放,后续 指令可以继续占用发射窗口,实施发射。这种机制通过将需要进行操 作数等待的指令暂时移出主流水线,将发射窗口资源释放给后续指令 的方法,解决了发射窗口的阻塞问题,提升处理器发射效率。
指令分发执行控制单元实现指令动态分配机制,可根据执行单元 运算负荷动态调整指令分发。为了提升流水线的并行执行能力,双发 射嵌入式处理器的执行单元的资源比较丰富,相同类型的指令配备两个相同的执行单元,从而实现两条相同类型指令的并行执行。而相对 丰富的执行单元硬件资源对指令分配提出了更高了要求。固定的指令 分配策略在很大程度上不能发挥执行单元资源的优势。双发射流水线 采用动态分配策略,结合执行单元反馈的信息实施分配指令。对于同 种类型的指令通常对应两个相同的执行单元,在默认情况下,出现指 令0上的指令被发送到执行单元0,出现在指令1上的指令被发送至 执行单元1。若执行单元0正忙而执行单元1空闲,则指令0可发送 至执行单元1进行执行,如图4所示。这种可动态调整的分配策略虽 然逻辑设计相对复杂,但可有效提升执行单元的利用效率,从而提高 处理器的综合性能。
采用乱序执行机制,完成发射的指令只要操作数准备完毕即可进 入执行单元执行,其执行顺序与程序顺序无关。指令进入执行单元执 行的前提是参与运算的操作数准备完毕,若操作数由于数据相关性暂 时还没有准备就绪,此时指令需要等待操作数。若按照程序的顺序执 行指令,则后续的指令会由于当前指令的等待而无法执行,从而导致 流水线的整体停顿。在支持乱序执行的流水线中,操作数未准备完毕
的指令会被发射至保留站中临时保存,如图3所示,后续指令仍可继
续发射至执行单元中。后续指令,特别是多周期才能执行完毕的指令, 由于执行时间提前,因此其完成运算的时间也被提前,从而提高了处 理器的整体处理能力。通过保留站技术,使后续指令提前进入流水线 乱序执行的机制是提升处理器运算能力的关键技术。
在存储/载入单元中,采用非阻塞载入/存储机制,在前续存储/载 入指令出现高速缓存缺失情况下,后续存储/载入指令仍可以继续进入 载入/存储单元,访问存储器。载入/存储单元主要负责数据从片上或者片外存储器中载入。由于在流水线中设计了片上存储器和片上暂存 器,通常数据从片上获得,从而提高数据载入速度。若出现片上存储 器访问缺失时,数据需要从片外存储器中载入。传统处理器会堵塞流 水线,直到当前数据重新载入为止。本发明公布的非阻塞载入/存储机 制,在出现数据片上缓存器访问缺失时,将引起缺失的指令及其重新 载入请求保存至流水线以外的专用回填缓冲区中等待数据结果从片外 载入,释放流水线资源,这样后续指令仍然可以成功占用流水线并顺 利访问高速存储器或高速暂存器资源,提高载入/存储单元的访问效 率。由于后续指令仍可按照正常的方式提前进入载入/存储单元,所以 处理器综合性能有一定的提升。
通用协处理器接口实现嵌入式处理器面向各种应用的扩展。嵌入 式处理器通常面向特定的应用领域,不同的应用领域对于数据处理的 形式和性能需求差异较大。因此提供一个有效的处理器扩展机制,面 向不同应用设计不同的加速单元是目前解决应用复杂性的重要方法。 本发明通过在处理器流水线中,设计一个协处理器接口单元,如图1 所示,支持用户通过协处理器的方式实现功能扩展。通用协处理器接 口定义了标准的数据的读写操作协议,实现了扩展运算单元与处理器 内核的高速通信。
高速缓存器与高速暂存器共同构成丰富的片上存储资源。与处理 器运行速度相比,片外存储器的运行速度相对较慢,处理器访问外部 存储器的造成很大的性能损失。为了降低访问片外存储器而引起的性 能损失,高性能嵌入式处理器通常设置对于软件透明的高速缓存器。 本发明设计采用哈佛结构的指令高速缓存和数据高速缓存,取指单元 从指令高速缓存中预取指令,载入/存储单元从数据高速缓冲中载入数据。高速缓存对于软件完全透明,无需软件干预,硬件控制逻辑通过 重新载入机制自动从片外载入。对于一些特殊的嵌入式应用,软件往 往需要控制数据在片上的保存与替换,仅设计片上高速缓存无法满足 应用的多种需求。在这样的背景下,设计了片上高速暂存器作为片上 缓存的重要补充。片上高速暂存器分为指令片上暂存器和数据片上暂 存器,构成哈佛结构的片上存储器。片上暂存器需要软件显式的进行 管理,从而适应特定应用对于片上存储器的需求。片上高速缓存和高 速暂存作为片上一级缓存资源供用户结合具体的应用进行选择与配 置。
功耗管理单元实现处理器从正常模式到待机、关机和休眠三种低 功耗模式转换。为双发射嵌入式处理设置四种工作模式,分别为正常、 待机、关机和休眠。正常工作模式为处理器全速运行的模式,处理器 所有功能。待机、关机和休眠三种模式均为低功耗模式。在待机模式 下,处理器的工作时钟被关闭,处理器流水线处于非活跃状态,所有 寄存器信息不再更新,从而降低功耗。处理器的状态信息在待机模式 下全部保存,仅需恢复时钟便可使处理器从新开始执行。关机模式下, 处理器的电源被关闭,流水线和片上存储器信息完全丢失。休眠模式 下,处理器内核电源被关闭,流水线信息丢失,但片上存储器的电源 仍然保持。因此休眠模式下,仅有存储器的现场被保存。用户可以根 据应用的不同需求,选择不同的模式进入低功耗状态。功耗管理单元 同时负责从各个低功耗状态恢复,外设可通过中断激活处理器回到正
常工作状态。低功耗状态转换关系如图5所示。通过WAIT指令,STOP 指令和DOZE指令分别进入待机、关机和休眠三种模式;通过中断从 低功耗模式中唤醒。
权利要求
1、一种基于指令双发射的高性能低功耗嵌入式处理器,其特征在于所述嵌入式处理器包括取指单元,用于在单时钟周期内从所述片上指令存储器或片外指令存储器中预取两条指令,并送入流水线;双路译码单元,用于在流水线中设置两个相同的译码单元,在单时钟周期内并行译码两条指令;发射单元,用于将译码后的两条指令存放到流水线寄存器,单时钟周期并行发射两条指令,如参与运算的操作数准备完毕,在下一时钟周期将其送入执行单元开始执行;如参与运算的操作数未准备完毕,将操作数未就绪的指令暂时保存至保留站寄存器中并释放发射窗口,下一个时钟周期,后续指令通过发射窗口进行正常发射;指令分发执行控制单元,用于根据运算负荷动态调整指令分发,指令分配逻辑实时监测各执行单元的工作情况,并根据各指令执行单元返回的信息将当前发射的指令动态分配至空闲的执行单元中;指令执行单元,用于进行指令的结果的运算;载入/存储单元,用于当指令发生载入/存储操作缺失时,当前载入/存储指令临时释放流水线,在专用的回填缓冲区中等待结果从片外载入,后续载入/存储指令成功占用流水线并顺利访问片上数据存储器和片外数据存储器。
2、 如权利要求1所述的基于指令双发射的高性能低功耗嵌入式处理 器,其特征在于在所述指令发射单元中,当前序指令由于操作数未 就绪而暂停执行时,后续发射的指令若操作数准备就绪,先于前续指令进入执行单元并开始执行。
3、 如权利要求1或2所述的基于指令双发射的高性能低功耗嵌入式处 理器,其特征在于所述嵌入式处理器还包括 通用协处理器接口,用于支持面向各种应用领域的扩展;所述通用协处理器接口连接协处理器总线。
4、 如权利要求1或2所述的基于指令双发射的高性能低功耗嵌入式处理器,其特征在于所述片上指令存储器包括-指令高速缓存器,用于实现对指令读取的片上高速缓冲; 指令高速暂存器,用于提供软件可配置的指令缓冲区; 片上数据存储器包括数据高速缓存器,用于实现对数据读取的片上高速缓冲; 数据高速暂存器,用于提供软件可配置的片上数据临时保存空间。
5、 如权利要求3所述的基于指令双发射的高性能低功耗嵌入式处理 器,其特征在于所述片上指令存储器包括指令高速缓存器,用于实现对指令读取的片上高速缓冲; 指令高速暂存器,用于提供软件可配置的指令缓冲区; 片上数据存储器包括数据高速缓存器,用于实现对数据读取的片上高速缓冲; 数据高速暂存器,用于提供软件可配置的片上数据临时保存空间。
6、 如权利要求1或2所述的基于指令双发射的高性能低功耗嵌入式处理器,其特征在于所述嵌入式处理器还包括功耗管理单元,用于实现从正常模式到待机、关机和休眠三种低功耗 模式转换。
7、 如权利要求5所述的基于指令双发射的高性能低功耗嵌入式处理 器,其特征在于所述嵌入式处理器还包括功耗管理单元,用于实现从正常模式到待机、关机和休眠三种低功耗 模式转换。
8、 如权利要求1或2所述的基于指令双发射的高性能低功耗嵌入式处 理器,其特征在于在所述指令执行单元中,根据处理器性能的需求 的高低,增加或减少相应的执行单元个数。
9、 如权利要求5所述的基于指令双发射的高性能低功耗嵌入式处理 器,其特征在于在所述指令执行单元中,根据处理器性能的需求的 高低,增加或减少相应的执行单元个数。
全文摘要
一种基于指令双发射的高性能低功耗嵌入式处理器,包括取指单元,用于在单时钟周期内预取两条指令,并送入流水线;双路译码单元,用于在单时钟周期内并行译码两条指令;发射单元,用于单时钟周期并行发射两条指令;指令分发执行控制单元,用于根据运算负荷动态调整指令分发,依照乱序执行机制控制执行;指令执行单元,用于进行指令的结果的运算;载入/存储单元,用于在当指令发生缺失时,后续指令成功占用流水线并顺利访问片上数据存储器和片外数据存储器。本发明在低功耗的前提下提高嵌入式处理器的性能、降低成本。
文档编号G06F9/38GK101526895SQ20091009558
公开日2009年9月9日 申请日期2009年1月22日 优先权日2009年1月22日
发明者严晓浪, 孟建熠, 葛海通 申请人:杭州中天微系统有限公司