一种在处理器中设计寄存器的方法及装置的制作方法

文档序号:6651021阅读:235来源:国知局
专利名称:一种在处理器中设计寄存器的方法及装置的制作方法
技术领域
本发明涉及计算机技术范畴中的处理器体系结构领域,具体说是在处理器中设计寄存器(组)的方法及装置。
背景技术
一种新型的计算机体系结构已被发明,该种新型的计算机体系结构的主要特点是在不需中断处理的前提条件下,在同一个处理器中在同一时刻能够并行与并发地执行多道程序。以下称在同一个处理器中在同一时刻能够执行多道程序的体系结构的计算机为L结构计算机,采用L计算机结构的处理器称为L结构处理器。然而,在相关的专利文件中有关寄存器(组)的设计有一定的缺陷。
寄存器(组)是处理器的一个十分重要的组成部分,不仅为用户编制其应用软件系统提供了极大的便利,也为提高处理器的处理速度起到了关键性的作用。
在传统体系结构的处理器中,由于在同一时刻仅有一道程序在执行中,故只需设计一套寄存器(组)即可。然而,在同一时刻能够并行与并发地执行多道程序的处理器中、即L结构处理器中,寄存器(组)的设计就成为一个制约系统综合性能的十分重要的问题。如果仅设置一组寄存器(组)供多道程序共用,显然不能发挥多道程序在同一时刻并行与并发执行的优势。如果为每一道可并行与并发执行的程序都设置一组寄存器(组),当可并行与并发执行的程序道数较大时,则需设置的寄存器(组)的个数也将较大,显然是不可行的。再如果硬性规定一个处理器最大允许并行与并发执行的程序的道数为N(N>1)并设置N组寄存器(组),同样不能很好地发挥L结构处理器的优势。

发明内容
有鉴于此,本发明根据L结构处理器的特点,提出一种在L结构处理器中设计寄存器(组)的方法。该方法用较便宜的存储器存储单元代替较昂贵的、传统的寄存器逻辑门电路来设计寄存器(组),以使L结构处理器基本不限制最大允许并行与并发执行程序的道数的目的。
本发明的主要思想之一是用较便宜的RAM资源的存储单元代替较昂贵的寄存器资源的逻辑门电路来设计寄存器(组)。
用RAM资源来完成寄存器的功能,最主要的是如何解决同时读取多个‘寄存器’数据的问题。本发明的另一个主要思想是采用多个可并行操作的、多端口的RAM模块来保存多套寄存器(组)的内容,即生成多套‘寄存器’副本,以此达到可在同一时刻读/写多个‘寄存器’数据的目的。
根据处理器的所有指令中同时需要读取寄存器数据的最大个数来确定生成‘寄存器’副本的个数。如果每个RAM有多个读端口,则酌情减少‘寄存器’副本的个数。例如,当处理器的所有指令中同时需要读取寄存器数据的最大个数等于2时,可用一个双读端口RAM来实现。
为了保证数据的一致性,一个需写回‘寄存器’的数据将被同时写回到所有的‘寄存器’副本中。如果处理器的所有指令中同时需要写回寄存器数据的最大个数大于1,则每个RAM的写端口的个数也大于1。
在L结构处理器的各功能部件之间传递的信息/数据主要是程序驱动器PD。一个程序驱动器PD包含有驱动一道程序执行所需要的所有信息,包括当前指令的信息。指令信息包括当前指令所要求执行的操作的信息;如果该条指令需要进行读寄存器操作,则该条指令的信息亦包括读寄存器的个数、编号及读出的寄存器内容的存放处等信息;如果该指令需要进行写寄存器操作,则该条指令的信息也包括写寄存器的编号、被写数据的存放处等信息。有关程序驱动器的详细定义,请参考有关L结构处理器的专利文件。
一种在处理器中设计寄存器的装置,其硬件部分的主要构成至少是●存储器子装置该子装置由多个独立的RAM模块所组成;RAM模块的个数等于在处理器的所有指令中同时请求读寄存器的最大个数;每个RAM模块有一个读端口和一个写端口;读端口和写端口可并行操作;每个端口都由一组数据、地址等信号线所组成;每个RAM模块的深度等于处理器最大允许并行/并发执行的程序道数与每道程序允许使用的最大寄存器个数的乘积;每个RAM模块的宽度等于寄存器的最大位数;当RAM模块有多个读端口时,RAM模块的个数相应降低;当处理器的所有指令中同时请求写寄存器的最大个数大于1时,则要求每个RAM模块写端口的个数也大于1;●读管理/控制子装置主要由一个用于接收请求/发送已完成读寄存器操作的PD的输入/输出端口、N个读地址输出端口、N个读数据输入端口、以及相应的管理/控制逻辑所组成;其主要作用是a)接收请求读寄存器操作的程序驱动器PD;b)从上述PD的指定处取得n(n≤N)个待读寄存器的编号;c)从上述PD的指定处取得程序道号;d)将上述n个寄存器编号与程序道号组合成n个RAM模块的读地址;e)将上述n个RAM模块的读地址发送给n个相应的RAM模块;f)启动上述n个RAM模块的读操作;g)将读出的n个数据写回到PD中n个事先指定的单元中;h)将上述完成读寄存器操作的PD返回给某个事先指定的处理器功能部件进行下一步的处理;●写管理/控制子装置主要由一个用于接收请求/发送已完成写寄存器操作的PD的输入/输出端口、一个写地址输出端口、一个写数据输出端口、以及相应的控制逻辑所组成;其主要作用是a)接收请求写寄存器操作的程序驱动器PD;b)从上述PD的指定处取得待写寄存器的编号和待写入的数据;c)从上述PD的指定处取得程序道号;d)将上述寄存器编号与程序道号组合成一个RAM模块的写地址;e)将上述RAM模块的写地址发送给相应的RAM模块;f)启动上述RAM模块的写操作;g)将上述完成写寄存器操作的PD返回给某个事先指定的处理器功能部件进行下一步的处理。
所述的在处理器中设计寄存器的装置,该装置的读管理/控制子装置的PD输入/输出端口与L结构处理器的程序驱动器PD配送装置DU的某个端口相连,完成同时读取多个寄存器内容的操作;即当某个PD驱动的当前指令请求读取n个寄存器的内容时,L结构处理器的程序驱动器PD配送装置DU将会把该PD发送到该装置的读管理/控制子装置的PD输入/输出端口;当该装置的读管理/控制子装置完成‘寄存器’读操作、并将读出的‘寄存器’内容写入到该PD后,将会通过其PD输入/输出端口将已完成读寄存器操作的PD发送给L结构处理器的程序驱动器PD配送装置DU;之后,DU将视情况将该PD送往某个L结构处理器功能部件进行下一步的处理。
所述的在处理器中设计寄存器的装置,该装置的写管理/控制子装置的输入/输出端口与L结构处理器的程序驱动器PD配送装置DU的另一个端口相连,完成将一个操作结果写回到指定寄存器的功能;即当某个PD驱动的当前指令请求写寄存器操作时,L结构处理器的程序驱动器PD配送装置DU将会把该PD发送到该装置的写管理/控制子装置的PD输入/输出端口;当该装置的写管理/控制子装置完成‘寄存器’写操作后,将会通过其PD输入/输出端口将已完成写寄存器操作的PD发送给L结构处理器的程序驱动器PD配送装置DU;之后,DU将视情况将该PD送往某个L结构处理器功能部件进行下一步的处理。
本发明技术构思下的一些基本说明。而依据本发明的技术构想所做的任何等效变换,均应属于本发明的保护范围。


图1是寄存器(组)装置的原理性结构框图。
图2是寄存器(组)装置的读操作工作流程示意图。
图3是寄存器(组)装置的写操作工作流程示意图。
图4是L结构处理器原理性结构框图。
图5是采用本发明的寄存器(组)装置的L结构处理器原理性结构框图。
具体实施例方式
图1是本文所述的寄存器(组)装置的原理性结构框图。设处理器最大允许并行/并发执行的程序道数为max_Prg_nu,每道程序允许使用的最大寄存器个数为max_reg_nu,每个寄存器的最大位数为max_reg_bit,在处理器的所有指令中同时请求读寄存器的最大个数为N、同时请求写寄存器的最大个数为1。寄存器(组)装置(以下简称RFdev)的主要构成1.存储器子装置该子装置由多个独立的RAM模块所组成(以下简称RAM模块为RFram);RFram的个数等于N;每个RFram有一个读端口和一个写端口;读端口和写端口可并行操作;每个端口都由一组数据信号线与地址信号线所组成(在本文中,其它信号线,如时钟、片选、赋能等均被省略);每个RFram的深度等于max_prg_nu*max_reg_nu;每个RFram的宽度等于max_reg_bit。
当每个RFram有多个读端口时,RFram的个数相应降低;当处理器的所有指令中同时请求写寄存器的最大个数大于1时,则要求每个RFram写端口的个数也大于1;读管理/控制子装置主要由一个用于接收请求/发送已完成读寄存器操作的PD的输入/输出端口、N个读地址输出端口、N个读数据输入端口、以及相应的管理/控制逻辑所组成;其主要功能是●接收请求读寄存器操作的程序驱动器PD;●从上述的指定处取得n(n≤N)个待读寄存器的编号;●从上述PD的指定处取得程序道号;●将上述n个寄存器编号与程序道号组合成n个RFram的读地址;●将上述n个RFram的读地址发送给n个相应的RFram;●启动上述n个RFram的读操作;●将读出的n个数据写回到PD中n个事先指定的单元中;●将上述完成读寄存器操作的PD返回给某个事先指定的处理器功能部件进行下一步的处理;3.写管理/控制子装置主要由一个用于接收请求/发送已完成写寄存器操作的PD的输入/输出端口、一个写地址输出端口、一个写数据输出端口、以及相应的控制逻辑所组成;其主要功能是●接收请求写寄存器操作的程序驱动器PD;●从上述PD的指定处取得待写寄存器的编号和待写入的数据;●从上述PD的指定处取得程序道号;
●将上述寄存器编号与程序道号组合成一个RFram的写地址;●将上述RFram的写地址发送给相应的RFram;●启动上述RFram的写操作;●将上述完成写寄存器操作的PD返回给某个事先指定的处理器功能部件进行下一步的处理。
图2是本文所述的寄存器(组)装置的读操作工作流程示意图。读操作工作流程实际上就是寄存器(组)装置的读子装置的工作流程,也是寄存器(组)装置的读子装置同时读取多个寄存器内容的操作流程。其主要流程如下步骤1若L结构处理器的寄存器读子装置的当前PD要求读寄存器操作,转步骤2;否则,在下一个新的PD到达本寄存器读子装置时转步骤1;步骤2从L结构处理器的寄存器读子装置的当前PD的某n(n≤N)个特定单元中取得该PD所需要读取的n个寄存器的编号;若PD驱动的当前指令需要读取寄存器的个数小于N,可增设控制信号以控制只读那些需要读取的寄存器;也可以同时启动读N个寄存器的操作,只是控制仅输出或仅使用那些需要读取的寄存器的内容;步骤3在每个寄存器编号的前面并置上该道程序的程序道号,形成n个RFram(RAM)的地址;步骤4依据步骤2得出的n个RFram(RAM)地址,依次分别发送给n个RFram读地址寄存器,同时启动该n个RFram的读操作,以同时读取n个数据;步骤5将由步骤3读取的n个数据写入到当前PD指定的某n个单元中;在下一个新的PD到达本寄存器读装置时转步骤1。
图3是本文所述的寄存器(组)装置的写操作工作流程示意图。写操作工作流程实际上就是寄存器(组)装置的写子装置的工作流程,也是寄存器(组)装置的写子装置将一个操作结果写回到指定寄存器的操作流程。其主要流程如下步骤1若L结构处理器的寄存器写装置的当前PD要求写寄存器操作,转步骤2;否则,在下一个新的PD到达本寄存器写子装置时转步骤1;步骤2从L结构处理器的寄存器写子装置的当前PD的某个特定单元中取得该PD所需要写回的数据;步骤3从L结构处理器的寄存器写子装置的当前PD的某个特定单元中取得该PD所需要写回的寄存器的编号;步骤4在该寄存器序号的前面并置上该道程序的程序道号,形成一个RFram(RAM)的地址;步骤5将由步骤1得到的写回数据与步骤3得到的写回地址分配给所有的RFram(RAM);同时启动N个RFram的写操作,以同时将需要写回的数据写回到所有的RFram的指定的地址单元中;在下一个新的PD到达本寄存器写装置时转步骤1。
图4是L结构处理器原理性结构框图。图中亦给出了L结构处理器在该种实施例中系统各部件的连接关系部件1到6分别通过它们各自的输入/输端口连到部件7。在图4所给的L结构处理器的实施例中,寄存器(组)没有被设计成为硬件形式的部件,而是被设计成为了程序驱动器PD的一个组成部分。这种方法的主要弊端是PD的位数过长、资源使用量过大。注,在本文中,由于引入了硬件形式的寄存器(组)部件/装置,所以,在本文中提到的程序驱动器PD可以是不包含寄存器部分。
图5是本发明的寄存器(组)装置(RFdev)与L结构处理器连接的示意图。RFdev的读管理/控制子装置的PD输入/输出端口与L结构处理器的程序驱动器PD配送装置DU的某个端口相连,完成同时读取多个寄存器内容的操作。RFdev的写管理/控制子装置的输入/输出端口与L结构处理器的程序驱动器PD配送装置DU的另一个端口相连,完成将一个操作结果写回到指定寄存器的功能。
当某个PD驱动的当前指令请求读取n个寄存器的内容时,L结构处理器的程序驱动器PD配送装置DU将会把该PD发送到RFdev的读管理/控制子装置的PD输入/输出端口。当RFdev的读管理/控制子装置完成‘寄存器’读操作、并将读出的‘寄存器’内容写入到该PD后,将会通过其PD输入/输出端口将已完成读寄存器操作的PD发送给L结构处理器的程序驱动器PD配送装置DU;之后,DU将视情况将该PD送往某个L结构处理器功能部件进行下一步的处理。
当某个PD驱动的当前指令请求写寄存器操作时,L结构处理器的程序驱动器PD配送装置DU将会把该PD发送到RFdev的写管理/控制子装置的PD输入/输出端口。当RFdev的写管理/控制子装置完成‘寄存器’写操作后,将会通过其PD输入/输出端口将已完成写寄存器操作的PD发送给L结构处理器的程序驱动器PD配送装置DU;之后,DU将视情况将该PD送往某个L结构处理器功能部件进行下一步的处理。
在本图所示的实施例中,假定PD同时请求写寄存器的最大个数为1。当PD同时请求写寄存器的最大个数大于1时,则要求每个RFram有多个可并行操作的写端口即可。
权利要求
1.一种在处理器中设计寄存器的方法,其特征在于,用RAM存储单元代替传统的寄存器逻辑门电路来设计寄存器;采用多个可并行操作的、多端口的RAM模块来保存多套寄存器的内容,即生成多套‘寄存器’副本,以此达到可在同一时刻读/写多个‘寄存器’数据的目的。
2.根据权利要求1所述的在处理器中设计寄存器的方法,其特征在于,根据处理器的所有指令中同时需要读取寄存器数据的最大个数来确定生成‘寄存器’副本的个数;如果每个RAM有多个读端口,则酌情减少‘寄存器’副本的个数;当处理器的所有指令中同时需要读取寄存器数据的最大个数等于2时,可用一个双读端口RAM来实现。
3.根据权利要求1或2所述的在处理器中设计寄存器的方法,其特征在于,为了保证数据的一致性,一个需写回‘寄存器’的数据将被同时写回到所有的‘寄存器’副本中;如果处理器的所有指令中同时需要写回寄存器数据的最大个数大于1,则每个RAM的写端口的个数也大于1。
4.根据权利要求1或2或3所述的在处理器中设计寄存器的方法,其特征在于,其读操作的主要工作流程如下步骤1若L结构处理器的寄存器读子装置的当前PD要求读寄存器操作,转步骤2;否则,在下一个新的PD到达该寄存器读子装置时转步骤1;步骤2从L结构处理器的寄存器读子装置的当前PD的某n(n≤N)个特定单元中取得该PD所需要读取的n个寄存器的编号;若PD驱动的当前指令需要读取寄存器的个数小于N,可增设控制信号以控制只读那些需要读取的寄存器;也可以同时启动读N个寄存器的操作,只是控制仅输出或仅使用那些需要读取的寄存器的内容;步骤3在每个寄存器编号的前面并置上该道程序的程序道号,形成n个RAM模块的地址;步骤4依据步骤2得出的n个RAM模块地址,依次分别发送给n个RAM模块读地址寄存器,同时启动该n个RAM模块的读操作,以同时读取n个数据;步骤5将由步骤3读取的n个数据写入到当前PD指定的某n个单元中;在下一个新的PD到达该寄存器读装置时转步骤1。
5.根据权利要求1或2或3所述的在处理器中设计寄存器的方法,其特征在于,其写操作的主要工作流程如下步骤1若L结构处理器的寄存器写装置的当前PD要求写寄存器操作,转步骤2;否则,在下一个新的PD到达该寄存器写子装置时转步骤1;步骤2从L结构处理器的寄存器写子装置的当前PD的某个特定单元中取得该PD所需要写回的数据;步骤3从L结构处理器的寄存器写子装置的当前PD的某个特定单元中取得该PD所需要写回的寄存器的编号;步骤4在该寄存器序号的前面并置上该道程序的程序道号,形成一个RAM模块的地址;步骤5将由步骤1得到的写回数据与步骤3得到的写回地址分配给所有的RAM模块;同时启动N个RAM模块的写操作,以同时将需要写回的数据写回到所有的RAM模块的指定的地址单元中;在下一个新的PD到达该寄存器写装置时转步骤1。
6.一种在处理器中设计寄存器的装置,其特征在于,其硬件部分的主要构成至少是●存储器子装置该子装置由多个独立的RAM模块所组成;RAM模块的个数等于在处理器的所有指令中同时请求读寄存器的最大个数;每个RAM模块有一个读端口和一个写端口;读端口和写端口可并行操作;每个端口都由一组数据、地址等信号线所组成;每个RAM模块的深度等于处理器最大允许并行/并发执行的程序道数与每道程序允许使用的最大寄存器个数的乘积;每个RAM模块的宽度等于寄存器的最大位数;当RAM模块有多个读端口时,RAM模块的个数相应降低;当处理器的所有指令中同时请求写寄存器的最大个数大于1时,则要求每个RAM模块写端口的个数也大于1;●读管理/控制子装置主要由一个用于接收请求/发送已完成读寄存器操作的PD的输入/输出端口、N个读地址输出端口、N个读数据输入端口、以及相应的管理/控制逻辑所组成;其主要作用是a)接收请求读寄存器操作的程序驱动器PD;b)从上述PD的指定处取得n(n≤N)个待读寄存器的编号;c)从上述PD的指定处取得程序道号;d)将上述n个寄存器编号与程序道号组合成n个RAM模块的读地址;e)将上述n个RAM模块的读地址发送给n个相应的RAM模块;f)启动上述n个RAM模块的读操作;g)将读出的n个数据写回到PD中n个事先指定的单元中;h)将上述完成读寄存器操作的PD返回给某个事先指定的处理器功能部件进行下一步的处理;●写管理/控制子装置主要由一个用于接收请求/发送已完成写寄存器操作的PD的输入/输出端口、一个写地址输出端口、一个写数据输出端口、以及相应的控制逻辑所组成;其主要作用是a)接收请求写寄存器操作的程序驱动器PD;b)从上述PD的指定处取得待写寄存器的编号和待写入的数据;c)从上述PD的指定处取得程序道号;d)将上述寄存器编号与程序道号组合成一个RAM模块的写地址;e)将上述RAM模块的写地址发送给相应的RAM模块;f)启动上述RAM模块的写操作;g)将上述完成写寄存器操作的PD返回给某个事先指定的处理器功能部件进行下一步的处理。
7.根据权利要求6所述的在处理器中设计寄存器的装置,其特征在于,该装置的读管理/控制子装置的PD输入/输出端口与L结构处理器的程序驱动器PD配送装置DU的某个端口相连,完成同时读取多个寄存器内容的操作;即当某个PD驱动的当前指令请求读取n个寄存器的内容时,L结构处理器的程序驱动器PD配送装置DU将会把该PD发送到该装置的读管理/控制子装置的PD输入/输出端口;当该装置的读管理/控制子装置完成‘寄存器’读操作、并将读出的‘寄存器’内容写入到该PD后,将会通过其PD输入/输出端口将已完成读寄存器操作的PD发送给L结构处理器的程序驱动器PD配送装置DU;之后,DU将视情况将该PD送往某个L结构处理器功能部件进行下一步的处理。
8.根据权利要求6所述的在处理器中设计寄存器的装置,其特征在于,该装置的写管理/控制子装置的输入/输出端口与L结构处理器的程序驱动器PD配送装置DU的另一个端口相连,完成将一个操作结果写回到指定寄存器的功能;即当某个PD驱动的当前指令请求写寄存器操作时,L结构处理器的程序驱动器PD配送装置DU将会把该PD发送到该装置的写管理/控制子装置的PD输入/输出端口;当该装置的写管理/控制子装置完成‘寄存器’写操作后,将会通过其PD输入/输出端口将已完成写寄存器操作的PD发送给L结构处理器的程序驱动器PD配送装置DU;之后,DU将视情况将该PD送往某个L结构处理器功能部件进行下一步的处理。
全文摘要
本发明涉及计算机技术范畴中的计算机体系结构技术领域,具体说是在处理器中实现寄存器的方法及装置。该方法,用较便宜的RAM资源存储单元代替较昂贵的传统的寄存器资源的逻辑门电路来设计寄存器;为解决在同一时刻读/写多个‘寄存器’数据的目的,采用多个可并行操作的、多端口的RAM模块来保存多套寄存器的内容,即生成多套‘寄存器’副本;根据处理器所有指令中同时需要读取寄存器数据的+最大个数来确定生成‘寄存器’副本的个数;为了保证数据的一致性,一个需写回‘寄存器’的数据将被同时写回到所有的‘寄存器’副本中。该装置包括存储器子装置及其接口、读管理/控制子装置及其接口、写管理/控制子装置及其接口。
文档编号G06F15/78GK1776663SQ20051012597
公开日2006年5月24日 申请日期2005年12月1日 优先权日2005年12月1日
发明者李晓波 申请人:李晓波
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1