一种基于异步单轨的流水线处理器

文档序号:7241 发布日期:2021-09-17 浏览:46次 英文

一种基于异步单轨的流水线处理器

技术领域

本申请涉及电子信息、处理器与异步电路领域,特别是涉及一种基于异步单轨的流水线处理器。

背景技术

随着物联网和人工智能的快速发展,SOC技术不断成熟,现在的芯片大部分都集成了自己的处理器,可见处理器在电子技术中扮演着重要角色,因此处理器的设计受到广泛的关注。处理器结构大致为运算逻辑部件、寄存器部件和控制部件,这些部件都是由大量的寄存器构成,数据处理指令只对寄存器进行操作。由于全局时钟的存在,虽然运算速度和执行效率很高,但是寄存器始终随时钟不停的翻转,消耗了更多能量,增加了额外的功耗。此外,由于处理器大多是同步电路设计,全局时钟偏移问题严重,存在复杂的时钟树网络,设计比较困难,而且时钟树将会严重占用芯片设计面积和功耗。同时,在同步电路中,所有路径都在同一时钟下工作,为了保证一个时钟周期能够完成所有逻辑运算,时钟频率会被电路中的关键路径延时限制,同时影响到其它路径,而且关键路径的优化很困难,因此时钟频率难以提高,限制了整个处理器的性能。因此,现有的技术存在流水线处理器功耗高、全局时钟偏移严重、时钟频率受限制速度慢的问题。

发明内容

在本实施例中提供了一种基于异步单轨的流水线处理器,以解决相关技术中流水线处理器功耗高、全局时钟偏移严重、时钟频率受限制速度慢的问题。

本申请的一种基于异步单轨的流水线处理器,包括:异步控制模块、取指模块、译码模块、执行模块、自适应选择模块、访存模块、写回模块、存储模块、控制和状态寄存器、通用寄存器,各个模块之间通过异步单轨握手完成数据通信,其中所述异步控制模块包含多个控制单元,所述多个控制单元为多个相位解耦Click单元,所述多个相位解耦Click单元通过握手相互级联,并分别与对应的流水线连接。

其中,所述相位解耦Click单元之间握手成功后产生控制本级流水线的click信号。

其中,第一级流水线包括所述取指模块,第二级流水线包括所述译码模块,第三级流水线包括所述执行模块,第四级流水线包括所述访存模块,第五级流水线包括所述写回模块。

其中,所述相位解耦Click单元产生click信号,使程序计数器根据控制信号计算指令地址,将所述指令地址传输至所述取指模块,同时向下一级相位解耦Click单元发送请求信号,其中,所述控制信号为包括跳转、异常、中断的电信号,所述请求信号为上一级相位解耦Click单元对下一级相位解耦Click单元发出的请求下一级相位解耦Click单元工作的电信号。

其中,所述取指模块根据所述指令地址从所述存储模块中读取指令,将所述指令传输至所述译码模块。

其中,所述译码模块对所述指令进行译码操作,并从所述控制和状态寄存器、所述通用寄存器中读取与所述指令相关的待处理数据,将所述待处理数据传输至所述执行模块。

其中,所述执行模块根据所述待处理数据执行相对应的运算,得到运算结果后将所述运算结果传输至所述访存模块。

其中,所述访存模块根据所述运算结果对所述存储模块进行读写操作。

其中,所述执行模块包括预测冲刷模块、跳转模块、旁路模块,所述预测冲刷模块对不正确的预测指令进行冲刷,所述跳转模块根据跳转信号和运算结果产生跳转地址返回给程序计数器,所述旁路模块根据寄存器地址提前从后置模块中获得需要的数据。

其中,所述自适应选择模块从所述执行模块获取运算结果,并根据所述控制信号将所述运算结果传输给所述访存模块和所述写回模块。所述写回模块接收所述执行模块和所述访存模块传输的运算结果,将所述运算结果写回寄存器。所述存储模块包括指令存储模块,用于存储接收到的指令;数据存储模块,用于存储接收到的数据。

与相关技术相比,在本实施例中提供的是一种基于异步单轨的流水线处理器,解决了相关技术中流水线处理器功耗高、全局时钟偏移严重、时钟频率受限制速度慢的问题,实现了流水线在低功耗下无时钟以较高速度运行。

本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请一种基于异步单轨的流水线处理器的结构示意图;

图2是本申请实施例的相位解耦Click单元的逻辑示意图;

图3是本申请实施例的控制单元C_EX2MEM的逻辑示意图;

图4是本申请实施例的控制单元C_MEM2WB的逻辑示意图;

图5是本申请实施例中异步控制模块的第一级控制单元的逻辑示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。

在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。

除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。

在本实施例中提供了一种基于异步单轨的流水线处理器。图1是本申请一种基于异步单轨的流水线处理器的结构示意图,如图1所示的一种基于异步单轨的流水线处理器,包括:异步控制模块、取指模块、译码模块、执行模块、自适应选择模块、访存模块、写回模块、存储模块、控制和状态寄存器、通用寄存器,各个模块之间通过异步单轨握手完成数据通信,其中异步控制模块包含多个控制单元,多个控制单元为多个相位解耦Click单元,多个相位解耦Click单元通过握手相互级联,并分别与对应的流水线连接。上述实施例中,取指模块对应于图中的第一级流水线20,译码模块对应第二级流水线30,执行模块对应第三级流水线40,访存模块对应第四级流水线50,写回模块对应第五级流水线60。

在本实施例中,相位解耦Click单元之间握手成功后产生控制本级流水线的click信号。相位解耦Click单元之间通过“请求”“应答”信号握手产生click信号,以click信号代替同步电路的全局时钟控制本级流水线的click信号,由事件驱动,属于无全局时钟电路。如图1中第一控制单元101与第一级流水线20之间的连接,第一控制单元101与第一级流水线20具体的工作过程为:第一控制单元101根据处理器工作的使能信号产生程序计数器的click信号,使程序计数器运算一次,根据跳转、异常、中断等控制信号计算下一条指令地址并传输给第一级流水线20。控制单元在产生本阶段的click信号的同时生成下一阶段控制单元的请求信号。其中,控制信号为包括跳转、异常、中断的电信号,请求信号为上一级相位解耦Click单元对下一级相位解耦Click单元发出的请求下一级相位解耦Click单元工作的电信号。其中的请求信号在相邻的控制单元的上下级之间传递,具体概述为:上级控制单元(如第一控制单元)向相邻的下级控制单元(如第二控制单元)发送请求信号,其中请求信号是能够使下一级控制单元控制其对应的流水线工作的电信号,当下一级控制单元接收到上一级控制单元发送的请求信号后,使其连接的流水线开始工作,同时,向上一级控制单元发送应答信号,通知上一级控制单元本级控制单元已经完成了控制任务。本实施例仅演示了一种简单的五级流水线结构,如果有实际应用需要,可以对流水线所包括的内容进行更改。相比于现有的技术,本电路通过使用异步单轨电路中的Click模块(控制单元)根据“请求”“应答”信号的状态产生的click信号来代替同步电路中的全局时钟来实现不需要外接时钟信号输入,因此没有复杂的时钟网络,避免了时钟树网络占据大量的芯片面积和增加功耗,同时具有设计简单的优点,能够提高处理器的运行速度并降低功耗。

需要注意的是,在处理器开始工作前,需要初始化信号对处理器进行初始化。初始化后,处理器内部的数据处于初始状态,异步流水线处于停滞状态。当处理器工作的使能信号电平为高时,异步单轨流水线处理器开始工作。因此在每次使用本处理器处理数据时都需要初始化信号对处理器进行初始化,保证内部各个模块和存储器、寄存器的数据处于初始状态。

在本实施例中,第一至五控制单元是指不同的相位解耦Click单元,命名规则和对应关系为:第一控制单元是相位解耦Click单元C_PC,第二控制单元是相位解耦Click单元C_IF2ID,第三控制单元是相位解耦Click单元C_ID2EX,第四控制单元是相位解耦Click单元C_EX2ME,第五控制单元是相位解耦Click单元C_MEM2WB。对应的,五个控制单元分别控制五大部分的寄存器,具体为:第一控制单元C_PC控制PC寄存器,第二控制单元C_IF2ID控制IF2ID寄存器,第三控制单元C_ID2EX控制ID2EX寄存器,第四控制单元C_EX2ME控制EX2ME寄存器,第五控制单元C_MEM2WB控制CSR状态寄存器和通用寄存器。上述对应关系仅为特定实施例的一种,不代表只能具有上述对于关系。在上述实施例中,当取指模块(第一级流水线20)接收到指令地址后,后续处理器各模块的工作内容和工作方式如下:取指模块根据指令地址从存储模块中读取指令,将指令传输至译码模块。同时,控制单元C_IF2ID接收C_PC单元产生的请求信号和C_ID2EX单元返回的应答信号,握手成功后产生控制本级流水线工作的click信号,产生给下一级流水线请求信号和返回给上一级流水线应答信号。译码模块(第二级流水线30)对指令进行译码操作,并从控制和状态寄存器、通用寄存器中读取与指令相关的待处理数据,将待处理数据传输至执行模块。同时,控制单元C_ID2EX接收C_IF2ID单元产生的请求信号和C_EX2ME单元返回的应答信号,握手成功后产生控制本级流水线工作的click信号,产生给下一级流水线请求信号和返回给上一级流水线应答信号。执行模块(第三级流水线40)根据待处理数据执行相对应的运算,得到运算结果后将运算结果传输至访存模块。同时,控制单元C_EX2MEM接收C_ID2EX单元产生的请求信号和C_MEM2WB单元返回的应答信号,握手成功后产生控制本级流水线工作的click信号,产生给下一级流水线请求信号和返回给上一级流水线应答信号。访存模块(第四级流水线50)根据运算结果对存储模块进行读写操作。自适应选择模块从执行模块获取运算结果,并根据控制信号将运算结果传输给访存模块和写回模块。写回模块(第五级流水线60)接收执行模块和访存模块传输的运算结果,将运算结果写回寄存器。控制单元C_Wreg和C_Wcsr产生对CSR状态寄存器和通用寄存器写回的click信号,属于写回控制单元。同时,控制单元C_MEM2WB接收C_EX2MEM单元产生的2个请求信号和C_Wreg、C_Wcsr单元返回的应答信号,握手成功后产生控制本级流水线工作的click信号,同时产生给下一级流水线请求信号和返回给上一级流水线应答信号。具体来说,控制单元C_Wreg和C_Wcsr是对CSR和REGISTER寄存器进行控制的控制单元,采用相位解耦Click单元。存储模块包括指令存储模块,用于存储接收到的指令;数据存储模块,用于存储接收到的数据。在上述工作方式和连接关系中,各级流水线由事件完成产生的脉冲信号驱动,每一级流水线的脉冲信号频率都不一样,频率只会受到本级流水线的最长路径限制,因此处理器的处理速度比同步电路更快。

需要补充的是,在上述执行模块包括预测冲刷模块、跳转模块、旁路模块,预测冲刷模块对不正确的预测指令进行冲刷,跳转模块根据跳转信号和运算结果产生跳转地址返回给程序计数器,旁路模块根据寄存器地址提前从后置模块中获得需要的数据,能够避免数据与数据之间的冲突。

针对本发明采用的寄存器IF2ID,相对于控制的是第二控制单元C_IF2ID,相当于一个数据传输的开关,当第二控制单元C_IF2ID产生的Click脉冲到来时,开关打开,传输上一级流水线传来的数据,其他时候处于关闭状态。这种相对封闭式的设计能够有效避免在对应控制的控制单元未发出Click脉冲信号时,寄存器内的数据受到干扰或者损坏。需要说明的是,本发明采用的其他寄存器都具有与上述寄存器IF2ID相同的效果,即当click脉冲到来时开关打开,其余时间为关闭状态。

图2是本申请实施例的相位解耦Click单元的逻辑示意图。首先,图中的命名规则是:D是相位解耦Click单元控制的模块,In_Data和Out_Data分别代表输入模块的数据和模块输出的数据,In_Req和Out_Req分别代表输入的请求信号和向外输出的请求信号,In_Ack和Out_Ack分别代表输入的应答信号和向外输出的应答信号。因此,对于第一控制单元C_PC来说,其只有Out_Req和In_Ack两种信号,因为第一控制单元前序没有连接控制单元,因此不需要向外输出应答信号和接收请求信号。如图2所示,相位解耦Click单元工作流程是:假设In_Req=1,In_Ack=0,Out_Ack=1,Out_Req=0,In_Req信号与In_Ack信号异或,Out_Req信号与Out_Ack信号同或,则输出结果都为1,再经过与门,产生Click脉冲,使Pi、Po触发,In_Ack与Out_Req翻转,值都变为1。即返回应答信号和产生请求信号的值为1,即完成了一次握手。通过上述相位解耦Click单元,能够在需要的时间产生Click脉冲信号驱动其连接的流水线,通过产生的Click信号来代替同步电路中的全局时钟,避免了时钟树网络占据大量的芯片面积和增加功耗,同时具有设计简单的优点,能够提高处理器的运行速度并降低功耗。

要详细说明的是,控制单元C_EX2MEM和控制单元C_MEM2WB是一对相互搭配使用的控制单元,二者共同组合实现握手信号的选择功能,接下来介绍二者的工作原理。

图3是本申请实施例的控制单元C_EX2MEM的逻辑示意图。如图3所示,C_EX2MEM控制单元是一个前置握手选择器,根据控制信号选择输出不同的握手请求信号。Sel信号与上一次产生的请求信号分别异或和同或,再经一个由click信号触发的寄存器得到请求信号。当Sel为1时,握手产生请求信号req2为1,而req1为0;当Sel为0时,握手产生请求信号req1为1,此时req2为0。通过上述设计,控制单元C_EX2MEM可以根据Sel值的不同输出不同的请求信号,来控制对应流水线执行相应操作。

图4是本申请实施例的控制单元C_MEM2WB的逻辑示意图。如图4所示,C_MEM2WB控制单元是一个后置握手选择器,根据控制信号选择不同的请求应答信号进行握手。Sel信号与上一级控制单元产生的应答信号分别异或和同或,再经一个由Click信号触发的寄存器得到应答信号,应答信号与上一级给的请求信号异或,经过组合逻辑得到Click信号,Click信号触发寄存器使给下一级流水线的请求信号翻转。如图4所示,C_MEM2WB控制单元可实现两对请求应答信号的握手功能。其中,Sel信号与上述C_EX2MEM单元的Sel为同一信号,两控制单元搭配使用实现握手信号的选择功能。

图5是本申请实施例中异步控制模块的第一级控制单元的逻辑示意图,如图5所示,控制单元C_PC根据处理器工作的使能信号产生程序计数器的click信号,使程序计数器运算一次,根据跳转、异常、中断等控制信号计算下一条指令地址,传输给取值模块。第一级控制单元在产生本阶段的click信号的同时生成下一阶段控制模块C_IF2ID的请求信号。C_PC单元是流水线的第一级控制单元,因此它不需要请求信号的输入和应答信号的输出。图中的D为第一级流水线,对应取指模块。第一级流水线D接收到第一控制单元产生的click信号后开始工作,并将输出数据Out_Data传输到下一级流水线。

通过上述实施例的说明可知,本发明至少具有以下有益效果:采用异步单轨电路,通过click信号来代替同步电路中的全局时钟,所以本发明不需要设计时钟树网络,而时钟树网络的消耗功耗和占用面积大,因此本发明能够大大降低处理器电路的功耗,同时节约电路中的可设计面积,为电路改造和优化提供了更大的空间,同时,采用异步电路没有全局时钟频率被电路中的关键路径延时限制的问题,各个模块的关键路径各自独立,能更好地优化关键路径。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

完整详细技术资料下载
上一篇:石墨接头机器人自动装卡簧、装栓机
下一篇:一种C64x+ DSP软件流水循环缓冲机制的模拟方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!