一种中央处理器及其指令处理方法
【专利摘要】本发明提供一种CPU及其指令处理方法,该CPU包括:指令缓冲选择器;两个指令缓冲单元;译码单元用于根据所译码的指令生成指令预判信号;指令预判信号用于指示下一次执行单元是否要执行跳转指令;指令缓冲选择器用于当接收到的所述指令预判信号指示下一次执行单元要执行跳转指令时,从当前选择的指令缓冲单元切换到另一个缓冲指令单元,控制切换到的缓冲指令单元从所述跳转指令所指向的程序存储器的位置开始读取指令并保存;当发生跳转时,从切换到的缓冲指令单元读取指令发送给译码单元;当跳转指令的执行结果是不跳转时,切换回切换前所选择的缓冲指令单元继续读取指令。本发明能够使原CPU在不增大面积的基础上使CPU的内核速度提升25%。
【专利说明】一种中央处理器及其指令处理方法
【技术领域】
[0001]本发明涉及集成电路领域,特别是涉及一种中央处理器及其指令处理方法。
【背景技术】
[0002]近年来,随着集成电路领域的迅速发展,传统、小型自主研发16位CPU (中央处理器)的应用范围越来越广泛,其价格也要求越来越低。但具有高运算速度、而低成本的16位CPU芯片内核则成为市场的迫切需求。特别是在低、中端集成电路的产品中,使用高端芯片内核的价格甚至会影响整个产品的利润大小。例如:美国的ARM公司的产品,它的CPU在性能和面体积这两个方面都占优势,但是其价格昂贵。尤其是对于低、中端产品,严重影响了产品的利润和销售。目前,市场低、中端集成电路的产品中,都是采用那种价格低廉、运算速度慢的16位CPU,这种CPU也制约了产品品质的提高。一种具有价格低廉、运算速度快的新型16位CPU设计是未来集成电路领域高速发展中的一种期待。
[0003]传统16位CPU内核设计如图1,图1的内核结构包括:程序总线接口单元、指令缓冲单元、译码单元、执行单元和一系列辅助单元。CPU在工作时,先从程序存储器读取需要执行的程序指令;并通过程序总线接口将这个指令存入到指令缓冲单元;指令缓冲单元再把这个当前需要执行的指令送到译码单元;译码单元再解析出一系列控制信号,并将其再发送给执行单元进行执行。
[0004]传统16位CPU的内核运算过程如图2所示,先从译码单元得到的一系列控制信号,这些控制信号包括:运算操作数A与B及运算类型;执行单元再根据不同的运算类型对运算操作数A与B进行不同的运算操作。其中的运算类型包括:数据传输类运算、算术逻辑类运算、布尔类运算和控制转移类运算。
[0005]运算操作后的结果包括:对寄存器的更新、对相关存储器的更新、指令跳转及空操作。当发生指令跳转时,执行单元会通知指令缓冲单元进行清空指令缓存操作;清空完成后,指令缓冲单元会根据指令跳转结果所指示的位置,重新请求从程序存储器再读取程序指令;在指令清空及重新请求从程序存储器读取程序指令时,CPU会至少消耗掉2个时间单元。在上述的清空、重新请求及再读取程序等工作期间,CPU不做任何操作,这就使CPU的执行效率低下,内核的运算速度较低;而成熟厂商的商业化16位CPU内核的运算速度虽然较高,但价格较昂贵。
【发明内容】
[0006]本发明要解决的技术问题是提供一种中央处理器及其指令处理方法,以实现在传统16位CPU内核的结构体积不变的前提下,较大幅度的提高传统16位CPU内核的运算速度,又能保持新型传统16位CPU具有较低的价格。
[0007]为了解决上述技术问题,本发明提供了一种中央处理器,包括:译码单元、执行单元,指令缓冲单元;其中,还包括:
[0008]指令缓冲选择器;[0009]所述指令缓冲单元为两个;
[0010]所述译码单元用于根据所译码的指令生成指令预判信号;所述指令预判信号用于指示下一次执行单元是否要执行跳转指令;
[0011]所述指令缓冲选择器用于当接收到的所述指令预判信号指示下一次执行单元要执行跳转指令时,从当前选择的指令缓冲单元切换到另一个缓冲指令单元,控制切换到的缓冲指令单元从所述跳转指令所指向的程序存储器的位置开始读取指令并保存;当发生跳转时,从切换到的缓冲指令单元读取指令发送给所述译码单元;当所述跳转指令的执行结果是不跳转时,切换回切换前所选择的缓冲指令单元继续读取指令。
[0012]进一步地,上述中央处理器还具有下面特点:还包括:
[0013]一位累加器,用于对所述执行单元执行所述跳转指令的跳转有效信号进行累加,并将累加结果发送给所述指令缓冲选择器;
[0014]所述指令缓冲选择器根据所述累加结果,在发生跳转时选中不同的指令缓冲单元,从选中的指令缓冲单元读取指令发送给所述译码单元。
[0015]进一步地,上述中央处理器还具有下面特点:
[0016]当发生跳转时,所述指令缓冲选择器还用于向所述切换前选择的指令缓冲单元发送未选中信号,
[0017]所述切换前选择的指令缓冲单元接收到所述指令缓冲选择器的未选中信号后清空所存储的指令。
[0018]进一步地,上述中央处理器还具有下面特点:
[0019]当所述跳转指令的执行结果是不跳转时,所述指令缓冲选择器还用于向所述切换到的缓冲指令单元发送跳转无效信号,
[0020]所述切换到的缓冲指令单元在接收到所述指令缓冲选择器的跳转无效信号后清空所存储的指令。
[0021]为了解决上述问题,本发明还提供了一种指令处理方法,应用在上述的中央处理器中,包括:
[0022]译码单元根据所译码的指令生成指令预判信号,所述指令预判信号用于指示下一次执行单元是否要执行跳转指令;
[0023]指令缓冲选择器当接收到的所述指令预判信号指示下一次执行单元要执行跳转指令时,从当前选择的指令缓冲单元切换到另一个缓冲指令单元,控制切换到的缓冲指令单元从所述跳转指令所指向的程序存储器的位置开始读取指令并保存;当发生跳转时,从切换到的缓冲指令单元读取指令发送给所述译码单元;当所述跳转指令的执行结果是不跳转时,切换回切换前所选择的缓冲指令单元继续读取指令。
[0024]进一步地,上述方法还具有下面特点:还包括:
[0025]一位累加器对所述执行单元执行所述跳转指令的跳转有效信号进行累加,并将累加结果发送给所述指令缓冲选择器;
[0026]所述指令缓冲选择器根据所述累加结果,在发生跳转时选中不同的指令缓冲单元,从选中的指令缓冲单元读取指令发送给所述译码单元。
[0027]进一步地,上述方法还具有下面特点:
[0028]当发生跳转时,所述指令缓冲选择器还向所述切换前选择的指令缓冲单元发送未选中信号,
[0029]所述切换前选择的指令缓冲单元接收到所述指令缓冲选择器的未选中信号后清空所存储的指令。
[0030]进一步地,上述的方法还具有下面特点:
[0031]当所述跳转指令的执行结果是不跳转时,所述指令缓冲选择器还向所述切换到的缓冲指令单元发送跳转无效信号,
[0032]所述切换到的缓冲指令单元在接收到所述指令缓冲选择器的跳转无效信号后清空所存储的指令。
[0033]综上,本发明提供一种CPU及其指令处理方法,针对传统、小型的自主研发16位CPU的内核结构特点,基于结果预判机制通过在其内核增加一个指令缓存单元,预先对其结果进行比较,使其内核转变成伪双核。由于有了这种预判机制,使原CPU在不增大面积的基础上,使CPU的内核速度能提升25%。本发明的CPU能在传统16位CPU内核的结构体积不变的前提下,较大幅度的提高传统16位CPU内核的运算速度,又能保持新型传统16位CPU具有较低的价格。
【专利附图】
【附图说明】
[0034]图1传统16位CPU内核结构图;
[0035]图2传统16位CPU的内核运算框图;
[0036]图3为本发明实施例的CPU总体结构图;
[0037]图4为本发明实施例的CPU的运算机制和运算过程框图;
[0038]图5为本发明实施例的CPU的具体控制机制和控制过程框图。
【具体实施方式】
[0039]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0040]如图3所示,本发明实施例提供的CPU包括:程序总线接口、两个指令缓冲单元(包括指令缓冲单元A和指令缓冲单元B)、指令缓冲选择器、译码单元、执行单元和一系列辅助单元。其中,
[0041]所述译码单元可用于生成指令预判信号,所述指令预判信号用于指示下一次执行单元是否要执行跳转指令;
[0042]所述指令缓冲选择器可用于当接收到的所述指令预判信号指示下一次执行单元要执行跳转指令时,从当前选择的指令缓冲单元切换到另一个缓冲指令单元,控制切换到的缓冲指令单元从所述跳转指令所指向的程序存储器的位置开始读取指令并保存;当发生跳转时,从切换到的缓冲指令单元读取指令发送给所述译码单元;当所述跳转指令的执行结果是不跳转时,切换回切换前所选择的缓冲指令单元继续读取指令。
[0043]本实施例的CPU中的各单元的具体执行情况如下:
[0044]所述指令缓冲单元,用于根据接收到的所述指令缓冲选择器的读取信号读取程序指令并存储,并在接收到所述指令缓冲选择器的选中信号后将读取到的程序指令发送给所述指令缓冲选择器或在接收到所述指令缓冲选择器的跳转无效信号后清空所存储的指令;或根据接收到的所述指令缓冲选择器的停止读取信号停止读取程序指令,并在接收到所述指令缓冲选择器的未选中信号后清空所存储的指令或在接收到所述指令缓冲选择器的跳转无效信号后继续读取程序指令;
[0045]所述指令缓冲选择器,用于将所述程序指令送给所述译码单元;接收所述译码单元发送的指令预判信号后,向当前读取程序指令的指令缓冲单元发送所述停止读取信号,向另一个指令缓冲单元发送读取信号;接收到所述执行单元的执行结果信号后,判断所述执行单元执行跳转指令是否成功,如成功则切换所述两个指令缓冲单元的选中信号,如不成功则分别向所述两个指令缓冲单元发送跳转无效信号;
[0046]所述译码单元,用于将所述程序指令解析为一系列控制信号发送给所述执行单元,同时解析所述程序指令中是否包括跳转指令,如包括则向所述指令缓冲选择器发送指令预判信号;
[0047]所述执行单元,用于接收到所述控制信号后进行执行,如执行到跳转指令,则将所述跳转指令的执行结果信号发送给所述指令缓冲选择器。
[0048]本实施例的CPU指令处理方法,运算机制和运算过程如图4所示,本实施例的CPU的伪双核先从程序存储器读取需要执行的程序指令;通过程序总线接口选择性存入指令缓冲单元A或者指令缓冲单元B,指令缓冲单元A及指令缓冲单元B把指令送给指令缓冲选择器;指令缓冲选择器选择当前需要执行的指令并送到译码单元;译码单元解析出一系列控制信号再发送给执行单元进行执行,此译码单元同时解析出指令预判信号,该信号指示下一次执行单元是否要执行一条跳转指令。当预判信号有效(即下一次执行单元将执行一条跳转指令)时,指令缓冲单元会自动切换到另一个,被切换到的指令缓冲单元会从这条跳转指令所指向的程序存储器的位置开始读取程序并存入被切换到的指令缓冲单元。
[0049]当发生指令跳转(即指令跳转有效,执行单元成功执行跳转指令)时,指令缓冲选择器会直接从被切换到的指令缓冲单元中读取指令来执行,另一个指令缓冲单元同时被清空,等待下一次发生跳转指令时,重新开始工作;若此跳转指令的执行结果是不发生跳转(即指令跳转无效,执行单元执行跳转指令失败),则指令缓冲选择器会继续从原始的指令缓冲单元读取指令,此时被切换到的指令缓冲单元会自动清空,原始的指令缓冲单元继续从程序存储器读取指令。
[0050]本实施例的伪双核16位CPU执行指令的控制机制和具体控制过程,如图5所示,从图中可以看出,指令缓冲单元A与B均可以从程序总线接口发送想要读取的程序的位置信息,并可以从程序总线接口获得该位置的程序指令存储起来。指令缓冲单元A与B可以把需要执行的指令送给指令缓冲选择器,由指令缓冲选择器选择需要送给译码单元的指令。同时,指令缓冲选择器可以给指令缓冲单元A发送指令缓冲单元A控制信号,该信号可以指示指令缓冲单元A是否需要从程序总线接口读取程序指令;指令缓冲选择器也可以给指令缓冲器B发送指令缓冲单元B控制信号,该信号可以指示指令缓冲单元B是否需要从程序总线接口读取程序指令。
[0051]指令缓冲单元A和B通过指令缓冲选择器把选中的指令作为当前指令送到译码单元中。指令缓冲选择器通过指令选中信号作为判别标准,指令选中信号由一位累加器生成。该累加器的初始值为0,也就是默认选择指令缓冲单元A的指令输入,当指令跳转信号有效(即判断执行单元成功执行跳转指令)时,一位累加器自动加一,使指令选择信号由O变为1,即选中指令缓冲单元B的指令输入,当指令跳转信号再次有效时,指令选择信号由I变回O,此时再次选中指令缓冲单元A的指令输入。
[0052]指令缓冲选择器选择通过指令预判信号控制指令缓冲单元A与B从程序总线接口读取指令,初始状态下,指令预判信号为0,即选择指令缓冲单元A从程序总线接口读取程序指令,指令缓冲单元B空闲。当指令预判信号有效时,指令缓冲单元B控制位有效,此时选择指令缓冲单元B从程序总线接口读取程序指令,指令缓冲单元A在指令跳转信号有效时清空自身并等待下次启用。
[0053]译码单元负责解析当前指令,生成一系列控制信号送给执行单元执行;译码单元包含一个指令预判器,该指令预判器根据译码单元解析出的控制信号可预判出送入执行单元的是否是一条跳转指令,如果判别为一条跳转指令,则指令预判信号有效,然后将指令预判信号发送给指令缓冲选择器。译码单元将一系列控制信号发送给执行单元,执行单元根据不同的指令类型进行不同的操作,当执行一条跳转指令时,将执行跳转指令的结果信号发送给指令缓冲选择器。指令缓冲选择器收到执行跳转指令的结果信号后,将判断执行单元是否成功执行跳转指令,如成功执行,指令跳转信号有效;如未成功执行,则指令缓冲选择器将分别向指令缓冲单元A和B发送指令跳转无效信号。
[0054]本发明实施例的16位CPU的伪双核技术最显著地特征就是,具备两个指令缓冲单元和一个物理上的运算单元,在同一时间内只执行一条指令的情况下,提高CPU的运算速度。但是,真正双核技术中两个物理上的运算单元,是在同一时间内同时执行两条不相关的指令,将原CPU内核的面积增大了一倍,并由此而提高了 CPU的价格。而本发明实施例依旧是采用了单一 16位CPU,通过增加一个指令缓存单元和结果预判机制,使其变成了“伪双核”,以此提高了传统16位CPU“原”内核的运算速度。由于有了这种预判机制,使原CPU在不增大面积的基础上,使CPU的内核速度能提升25%。这样,本发明实施例的CPU能在传统16位CPU内核的结构体积不变的前提下,较大幅度的提高传统16位CPU内核的运算速度,又能保持新型传统16位CPU具有较低的价格。
[0055]本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
[0056]以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
【权利要求】
1.一种中央处理器,包括:译码单元、执行单元,指令缓冲单元;其特征在于,还包括: 指令缓冲选择器; 所述指令缓冲单元为两个; 所述译码单元用于根据所译码的指令生成指令预判信号;所述指令预判信号用于指示下一次执行单元是否要执行跳转指令; 所述指令缓冲选择器用于当接收到的所述指令预判信号指示下一次执行单元要执行跳转指令时,从当前选择的指令缓冲单元切换到另一个缓冲指令单元,控制切换到的缓冲指令单元从所述跳转指令所指向的程序存储器的位置开始读取指令并保存;当发生跳转时,从切换到的缓冲指令单元读取指令发送给所述译码单元;当所述跳转指令的执行结果是不跳转时,切换回切换前所选择的缓冲指令单元继续读取指令。
2.如权利要求1所述的中央处理器,其特征在于:还包括: 一位累加器,用于对所述执行单元执行所述跳转指令的跳转有效信号进行累加,并将累加结果发送给所述指令缓冲选择器; 所述指令缓冲选择器根据所述累加结果,在发生跳转时选中不同的指令缓冲单元,从选中的指令缓冲单元读取指令发送给所述译码单元。
3.如权利要求1 或2所述的中央处理器,其特征在于: 当发生跳转时,所述指令缓冲选择器还用于向所述切换前选择的指令缓冲单元发送未选中信号, 所述切换前选择的指令缓冲单元接收到所述指令缓冲选择器的未选中信号后清空所存储的指令。
4.如权利要求1或2所述的中央处理器,其特征在于: 当所述跳转指令的执行结果是不跳转时,所述指令缓冲选择器还用于向所述切换到的缓冲指令单元发送跳转无效信号, 所述切换到的缓冲指令单元在接收到所述指令缓冲选择器的跳转无效信号后清空所存储的指令。
5.一种指令处理方法,应用在如权利要求1-4任一项所述的中央处理器中,包括: 译码单元根据所译码的指令生成指令预判信号,所述指令预判信号用于指示下一次执行单元是否要执行跳转指令; 指令缓冲选择器当接收到的所述指令预判信号指示下一次执行单元要执行跳转指令时,从当前选择的指令缓冲单元切换到另一个缓冲指令单元,控制切换到的缓冲指令单元从所述跳转指令所指向的程序存储器的位置开始读取指令并保存;当发生跳转时,从切换到的缓冲指令单元读取指令发送给所述译码单元;当所述跳转指令的执行结果是不跳转时,切换回切换前所选择的缓冲指令单元继续读取指令。
6.如权利要求5所述的方法,其特征在于:还包括: 一位累加器对所述执行单元执行所述跳转指令的跳转有效信号进行累加,并将累加结果发送给所述指令缓冲选择器; 所述指令缓冲选择器根据所述累加结果,在发生跳转时选中不同的指令缓冲单元,从选中的指令缓冲单元读取指令发送给所述译码单元。
7.如权利要求5或6所述的方法,其特征在于:当发生跳转时,所述指令缓冲选择器还向所述切换前选择的指令缓冲单元发送未选中信号, 所述切换前选择的指令缓冲单元接收到所述指令缓冲选择器的未选中信号后清空所存储的指令。
8.如权利要5或6所述的方法,其特征在于: 当所述跳转指令的执行结果是不跳转时,所述指令缓冲选择器还向所述切换到的缓冲指令单元发送跳转无效信号, 所述切换到的缓 冲指令单元在接收到所述指令缓冲选择器的跳转无效信号后清空所存储的指令。
【文档编号】G06F9/44GK104020981SQ201410276522
【公开日】2014年9月3日 申请日期:2014年6月19日 优先权日:2014年6月19日
【发明者】张莹, 郝晓东 申请人:大唐微电子技术有限公司