一种支持多读多写的寄存器组电路装置的制作方法

文档序号:25817246发布日期:2021-07-09 14:11阅读:126来源:国知局
一种支持多读多写的寄存器组电路装置的制作方法

1.本发明属于计算机硬件、超标量顺序处理器设计领域,数字集成电路设计领域,具体涉及一种处理器核心微架构及寄存器组文件装置。


背景技术:

2.专利us6370623b1从数字集成电路单元的基础上设计了一种支持不同数据宽度的多读写端口的寄存器组文件。这种设计方法需要与模拟电路设计技术、高精度的生产工艺库以及集成电路后端流程配合。
3.专利cn1501292a给出了比较完整的多端口寄存器组文件及其设计方法。但是该发明对多个寄存器bank的控制没有给出说明,另外该发明对于写选择生成器的设计过于简单,不能处理多个写端口同时命中同一个一般寄存器地址时的冲突问题。
4.专利wo2010025074a1(pct/us2009/054421)发明了一种用于多线程处理器的基于锁存器的寄存器组文件装置,并给出了一个优化例,采用锁存器来优化寄存器组文件的设计。该发明没有对实现方法做进一步说明,实际上实现当中的时钟同步问题将非常复杂。


技术实现要素:

5.本发明提供一种支持多读多写的寄存器组电路装置的实现方法,主要针对解决这些问题:多端口同时写同一个寄存器地址;对于多寄存器窗的寄存器组文件装置的控制装置的设计问题;相应的数字电路低功耗设计问题。
6.为处理上述多端口写冲突,本发明结合处理器流水线微架构设计,提供了一种多端口写选择控制器装置,该多端口写选择控制装置包括若干相互耦合的写优先级比较器,将低优先级的写使能关闭,从而令高优先级的数据写入寄存器。
7.为实现多寄存器窗的读写控制目的,本发明设计了窗数据写选择器和窗数据读选择器,其特征为,以第一级若干与门,得到输入数据和输入控制之间的逻辑积,再以第二级多端口或门,得到逻辑积后的逻辑和。
8.为实现相应数字电路设计中的低功耗问题,采取了所述上述组合逻辑电路的设计形式,还采取了门控时钟的设计,时钟门控信号来自多端口写选择信号生成器。
9.本发明的效果在于:1、简化了超标量处理器多写回的控制复杂度2、多端口寄存器组文件提高了超标量处理器性能3、降低电路功耗,更适合在低成本嵌入式asic芯片上实现。
附图说明
10.图1为本发明一种具有同步多端口的寄存器组文件的结构图;
图2为本发明所述超标量处理器流水线的结构及设计方法图;图3为本发明所述多端口写选择生成器中的一个写优先级比较器结构图;图4为本发明所述多端口数据选择器结构图图5为本发明所述多端口写选择阵列结构图图6左侧为窗数据写选择器结构图,中为寄存器结构图,右为本发明为寄存器的时钟门控单元优选的一个实施例;图7为本发明所述读选择装置总体结构图;附图标记说明
具体实施方式
11.下面通过附图和实施例,对本发明进一步详细描述。
12.图1为本发明一种具有同步多端口的寄存器组文件的结构图。所述硬件装置包括:多个写端口,每个用于接收写入数据;多端口写选择控制器,用于处理多个写端口的优先级别;多端口写选择阵列,受控于写选择信号,以一种与或门的设计形式,输出写数据;多个寄存器窗构成的寄存器组文件的存储主体,其中每个寄存器窗包括多个具有一定数据宽度的寄存器,用于存储写入的数据;多端口读选择器,每个对应一个读端口,根据每个读端口的读地址以及寄存器窗的控制选择信号,将对应窗中对应地址的寄存器数据输出,也包括多个与或门的设计形式。
13.图2为本发明所述超标量处理器流水线的结构及设计方法图。定义该超标量处理器的指令同时发射数为i,则相应的,需要i个指令译码器和m个执行单元,其中m>=i;读端口的数目是与执行单元对应的,因此也是m个读端口。写端口数目n的设计选择有两种:当m=n时,执行单元的输出不需要判断优先级来排队,也不需要聚合,可以直接进行寄存器组文件的写回操作;而当m>n时,执行单元的输出有可能不得不排队,则写回逻辑会判断产生暂停控制信号,并向流水线上游的步骤发出,以便执行排队,延缓上游指令的发射。m>n的设计选择主要考虑写选择控制器的设计复杂度来折中优选。
14.对于所述超标量处理器流水线的设计,其特征还在于,在设计上尽量避免执行阶
段的乱序可能:当同时发射的i条指令,有任何一条还没有写回或交付结束的时候,后续的指令只要与这条指令存在数据依赖性,则暂停该后续指令的发射,从而保证总体上、被成批发射的指令之间的顺序性;发射的i条指令与m个执行单元之间的映射,总是遵循特定的对应顺序,例如指令0对应m个执行单元中可对应该指令执行功能的、标识最小的可分配单元,而指令1对应可执行单元中的下一个可分配单元,以此同理类推,保证标识较小的数据通路总是比标识较大的数据通路的优先级低,这种对应分发执行规律的设计是专门针对“写后写”的问题所设计的。
15.经过图2中的写回电路,m个执行输出数据被聚合到n个写端口,这n个写端口的写控制信号输入到多端口写选择生成器,以产生各个端口的写使能,同时处理多端口写同一个寄存器地址的问题;其n个写端口的写数据输入到多端口写选择阵列,再经过图4中的多端口写选择器,该选择器根据写选择生成器得到的写使能来得到几个端口发生冲突时最终被选出的写数据。
16.图3为本发明所述多端口写选择生成器中的一个写优先级比较器结构图,所示实施例为写端口0和写端口1之间的写耦合电路,该电路在发现两个端口写向同一个地址时,则判断低优先的0口写使能为无效。根据所述流水线微架构设计,标识为低的端口为较靠前的数据,而表示为高的端口为更新的数据。多个这样的写优先级比较器相互耦合,解决所有写端口之间的“写后写”问题。
17.当前较为优选的实施例,其标识的生成策略可以根据程序流的先后次序决定标识的大小,例如优先执行的指令,其标识所代表的优先权高于后续执行的指令优先权。
18.定义处理器寄存器的宽度为l,寄存器组文件的深度为x。多端口写选择器的输入为写端口数n,输出为x个l bit的数据。图4为本发明所述多端口数据选择器结构图。每个端口的写使能作为数据门控信号,经过第一级与逻辑,与各自端口的数据形成逻辑积,写使能无效的端口经过这一级电路后只能输出低电平,然后再经过第二级多端口或门形成逻辑和,最终通过的为唯一写使能有效的端口的数据电平。
19.图5为本发明所述多端口写选择阵列结构图。通过所述多端口选择器,各个端口写数据被选择出来,链接为x份备选数据,对应x份寄存器,同时进行写入。在写入之前,x份地址比较器同时进行比较,对当前被访问的寄存器进行写入操作,所使用电路与所属多端口写选择器的与或设计形式相同。
20.寄存器窗控制信息由流水线中的其他电路给出,控制对寄存器窗的切换。定义寄存器窗数目为w。通过译码电路,所述控制信息被转化为w*x个窗使能信号,通过与逻辑,使能相应寄存器的写操作。如图6所示,图6左侧为窗数据写选择器结构图,中为寄存器结构图,右为本发明为寄存器的时钟门控单元优选的一个实施例。来自图5中地址比较器得到的x个写使能与窗使能进行逻辑与,再控制门控时钟,解决寄存器写操作的低功耗设计问题。
21.图7为本发明所述读选择装置总体结构图。寄存器窗控制信息译码后从w份寄存器窗中选择出要读的窗口,得到x个输出数据,都连接在m个读取地址选择器上,每个读取地址选择器链接着x个数据,根据各个读端口的地址选择其中一个数据输出。
22.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含
在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1