一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用影子锁存器配置的寄存器文件的位宽重配置的制作方法

2022-05-11 19:59:34 来源:中国专利 TAG:

使用影子锁存器配置的寄存器文件的位宽重配置


背景技术:

1.处理器采用各种结构来存储数据以供在处理活动期间使用。一种类型的数据结构是寄存器文件。典型的寄存器文件将数据存储在与可并行写入或从中读取的条目相关联的功能锁存器中。为了访问存储在功能锁存器中的数据,典型的处理器利用拆分重命名来将寄存器“拆分”为高位寄存器和低位寄存器。拆分重命名允许处理器实现比处理器的原始宽度宽的寄存器。特别地,寄存器的高位部分和寄存器的低位部分由微处理器分配不同的标识符或名称,使得寄存器在逻辑上被看作两个不同的寄存器。例如,若干当前可用的微处理器将256位寄存器拆分重命名为高128位寄存器和低128位寄存器。将寄存器拆分重命名为高寄存器和低寄存器导致执行计算操作所需的寄存器空间量增加。例如,将以上所述256位寄存器拆分重命名为高128位寄存器和低128位寄存器需要物理寄存器文件中的条目数和区域的两倍。拆分重命名所需的物理寄存器文件大小的增加导致制造成本增加,因为执行拆分重命名操作需要更多的微处理器空间。
附图说明
2.通过参考附图,可更好地理解本公开,并且本公开的许多特征和优点对于本领域技术人员来说变得显而易见。在不同附图中使用相同附图标记来指示相似或相同的项。
3.图1是根据一些实施方案的支持使用影子锁存器进行寄存器的位宽重配置的处理器核心的框图。
4.图2是根据一些实施方案的图1的处理器核心中的影子锁存器配置的浮点寄存器文件的位单元布局。
5.图3是根据一些实施方案的在图1的处理器核心中采用使用影子锁存器的位宽重配置的方法的流程图。
6.图4是根据一些实施方案的图1的处理器核心中的影子锁存器配置的浮点寄存器文件的框图。
7.图5是根据一些实施方案的图4的处理器核心中的影子锁存器配置的浮点寄存器文件中所利用的时序图。
具体实施方式
8.图1至图5示出根据一些实施方案的支持在处理器的处理器核心中进行寄存器的位宽重配置的系统和技术。处理器中的浮点单元包括影子锁存器配置的浮点寄存器文件,所述影子锁存器配置的浮点寄存器文件基于影子锁存器配置的浮点寄存器文件中影子锁存器的可用性将位宽从第一位宽(例如,256位宽)重配置为第二位宽(例如,512位宽),使得以第一位宽操作的浮点单元能够在以第二位宽操作的处理器中使用。影子锁存器配置的浮点寄存器文件包括在例如利用浮点单元的读取和写入数据操作期间用于位宽重配置的影子锁存器、常规锁存器和影子选择多路复用器(mux)。
9.为了执行位宽重配置,在第一和第二时钟周期操作期间,将512位操作的前256位
存储在常规锁存器中,并且将后256位存储在同一单个条目的影子锁存器配置的浮点寄存器文件内的影子锁存器中。在例如512位读取或写入操作期间,在第一时钟周期期间从影子锁存器配置的浮点寄存器文件访问前256位,并且在第二时钟周期期间访问后256位,其中两个访问在同一条目中发生。因为前256位和后256位两者都存储在影子锁存器配置的浮点寄存器文件中的单个条目中,所以不需要进行拆分重命名来重配置512位操作的位宽。也就是说,通过利用影子锁存器配置的浮点寄存器文件,不需要通常将512位指令拆分为两个单独寄存器(即,高位寄存器和低位寄存器)的拆分重命名来使浮点单元对512位指令集进行操作。
10.图1示出根据一些实施方案的具有支持位宽重配置的执行管线105的处理器的处理器核心100。在一些实施方案中,所示处理器核心100包括例如基于x86指令集架构(isa)、arm isa等的中央处理单元(cpu)核心。处理器实现多个此类处理器核心,并且处理器在多种电子设备中的一种中实现,诸如笔记本电脑、台式电脑、平板电脑、服务器、支持计算的蜂窝电话、个人数字助理(pda)、机顶盒、游戏控制台等。
11.在一些实施方案中,用于处理器核心100的处理器支持x86架构,所述x86架构支持两种类型的向量算术指令的执行:单指令多数据(simd)流扩展(sse)指令和高级向量扩展(avx)指令。avx指令操纵256位操作数,并且sse指令操纵128位操作数。avx-512指令是到x86指令集架构(isa)的256位avxsimd指令的512位扩展。因此,采用具有512位寄存器的寄存器文件的处理器支持avx指令和sse指令两者的执行。在一些实施方案中,利用本文所述的影子锁存器配置的浮点寄存器文件,采用具有256位寄存器的寄存器文件的处理器或处理单元(诸如浮点单元120)也支持512位操作。
12.在所描绘的示例中,执行管线105包括指令高速缓存110(“icache”)、前端115、浮点单元120和定点单元125(通常也称为“整数执行单元”)。处理器核心100还包括耦接到存储器层次结构(未示出)的加载存储单元(lsu)130,所述存储器层次结构包括一级或多级高速缓存(例如,l1高速缓存、l2高速缓存等)、系统存储器诸如系统ram以及一个或多个大容量存储设备诸如固态驱动器(ssd)或光驱。
13.指令高速缓存110存储由前端115的提取单元(未示出)响应于命令提取操作(例如,对请求由程序计数器标识的指令流中的下一指令的提取)或响应于推测性预取操作而提取的指令集数据。前端115将提取单元所提取的指令解码为要由浮点单元120或定点单元125执行(perform/execute)的一个或多个操作。涉及浮点计算的那些操作被分发到浮点单元120以供执行,而涉及定点计算的操作被分发到定点单元125。
14.如本文所用,指令类型是指由指令操纵的操作数的大小。因此,不同类型的指令操纵不同大小的操作数。例如,在一些实施方案中,浮点单元120执行从操纵128位操作数的指令(称为128位指令)解码的操作并且还执行从操纵256位操作数的指令(称为256位指令)解码的操作。此外,浮点单元120利用本文所述的位宽重配置技术来执行从操纵512位操作数的指令(称为512位指令)解码的操作。
15.在一些实施方案中,浮点单元(fpu)120包括映射单元135、调度器单元140、影子锁存器配置的浮点寄存器文件(sc-fprf)145和一个或多个执行(ex)单元150。在一些实施方案中,fpu 120实施关于浮点数的操作并且执行包括加法、减法、乘法、除法、平方根和位移位或广播的操作以及诸如指数函数、三角函数等的超越函数。在各种实施方案中,fpu 120
支持各种图形处理单元(gpu)和中央处理单元(cpu)的操作。例如,如果cpu遇到需要执行浮点操作的指令,则cpu向fpu 120传输请求,fpu 120实施操作并将结果返回给cpu。尽管图1所示的fpu 120在处理器核心100内部实现,但在其他实施方案中,fpu 120在gpu和cpu外部实现。
16.sc-fprf 145利用另外的影子锁存器147和影子选择mux 148来存储指令、指令所使用的操作数和执行指令的结果。sc-fprf 145中的条目由物理寄存器编号指示。在一些实施方案中,物理寄存器编号使用映射单元135映射(或重命名)为由指令集架构定义的架构寄存器编号。通常,由调度器单元140维护的队列条目包括用于存储操作有效载荷或操作标识符(例如,操作的操作码)的字段、用于包含操作的一个或多个源操作数的物理寄存器的地址或其他标识符的字段、用于存储要与操作一起使用的任何立即值或位移值的字段、标识要在其中存储对应操作的执行结果的物理寄存器的目的地字段以及用于存储指令相关性信息的至少一个字段。例如,加载指令包括指示加载指令的目标的地址信息以及指示sc-fprf 145中接收来自目标地址的数据的prn的架构寄存器操作数。
17.除了对以第一位宽(256位宽)操作的指令进行操作之外,fpu 120还对以包括相对大量位的第二位宽操作的指令(例如,对512位指令)进行操作。也就是说,在一些实施方案中,即使fpu 120的数据路径被限制为256位指令,fpu 120也能够利用sc-fprf 145通过将指令操作或事务从单个时钟周期扩展为两个时钟周期(例如,第一时钟周期和第二时钟周期)来将256位数据路径重配置为对512位指令进行操作。因此,在一些实施方案中,当sc-fprf 145是512位寄存器文件(即,将较低256位存储在常规锁存器146中,并且将较高256位存储在影子锁存器147中)时,对512位的访问发生在两个256位周期而不是一个512位周期内。
18.在一些实施方案中,例如,在读取操作期间,当执行单元150从sc-fprf 145读取数据时,在事务的第一周期中从常规锁存器146中读取较低256位并且在事务的第二个周期中从影子锁存器147读取较高256位。使用提供给影子选择mux 148的读取地址,影子选择mux 148利用读取功能来选择要在读取操作的第二周期期间读取影子锁存器147中的哪个影子锁存器。在一些实施方案中,为了执行读取操作,向sc-fprf 145添加读取功能,所述读取功能用于确定是读取存储在影子锁存器中的影子数据还是存储在常规锁存器中的正常数据。因此,读取功能允许执行单元150使用影子选择mux 148来选择要读取的数据。
19.类似地,在写入操作期间,当调度单元140或执行单元150对sc-fprf 145执行写入操作时,在事务的第一周期期间将较低256位写入常规锁存器146并且在事务的第二周期期间将较高256位写入影子锁存器147。在写入操作期间,与传统寄存器文件相比,不需要另外的写入逻辑,因为正在写入的另外256位不是作为单独条目写入的,即,另外的256位是与同一条目中的常规锁存器相关联的一段影子数据。
20.在一些实施方案中,在到sc-fprf 145的接口的输入端处,从sc-fprf控制器127提供写入控制信号和读取控制信号,所述信号指定在第二周期期间将发生读取操作还是写入操作。在写入操作期间,如果从sc-fprf控制器127提供的写入控制信号(例如,is512写入控制输入信号)在事务开始时被设置为高逻辑值,则在第二周期期间激活用于影子写入的时钟。也就是说,is512写入控制输入信号致使影子写入时钟在两个周期中的第二周期触发。对于读取操作,当从sc-fprf控制器127提供的读取控制信号(例如,is512读取控制输入信
号)在事务开始时被设置为高逻辑值时,影子选择mux 148在第二周期期间基于提供给影子选择mux 148的读取地址来选择要读取的影子锁存器。也就是说,is512读取控制输入信号致使影子选择mux 148选择与所请求地址相对应的影子锁存器147来在第二周期中读取。换句话讲,在事务的第二周期中,由影子选择mux 148选择来自影子锁存器147的数据。作为使用sc-fprf 145的结果,在各种实施方案中,读取解码器和写入解码器在第二周期内不被钟控,从而在处理器核心100中执行指令时保持经解码值稳定并节省电力。
21.在一些实施方案中,由于用于影子选择mux 148的控制信号提前(即,在事务的第一周期内)到达,因此由例如触发器提供的提供给影子选择mux的信号(即,影子选择mux信号)隐藏与添加另外的影子选择mux 148相关联的时序,从而基本上消除必须切换已添加到寄存器文件的另外影子选择mux 148的影响。
22.在一些实施方案中,fpu 120针对512位操作或256位操作的激活取决于sc-fprf控制器127的配置。当要执行的微操作是512位指令时,则sc-fprf控制器127启用fpu 120进行512位操作。当要执行的微操作是256位指令时,则sc-fprf控制器127启用fpu 120进行512位操作。也就是说,为了使fpu 120确定将发生512位操作还是256位操作,sc-fprf控制器127将fpu 120激活为512位操作符或256位操作符。当fpu 120并非启用进行512位读取或写入操作时,激活256位读取或写入操作并且使其在单个周期中发生。当fpu 120启用进行512位读取或写入操作时,512位读取或写入操作被激活,并且在给定端口上花费两个时钟周期进行512操作。
23.在一些实施方案中,由于fpu 120是256位宽的fpu,其中使用两个256位周期来执行512位操作,因此fpu 120中的调度器单元140阻止在第二周期期间接受第二微操作,以便允许第一微操作在第一周期和第二周期期间完成。也就是说,由于fpu 120执行512位操作花费两个周期,因此fpu 120中的调度器单元140被sc-fprf控制器127标记为512位微操作花费两个周期,并且阻止另一个微操作或另一个事务在第二周期期间开始。
24.类似地,加载存储单元130以512位操作和256位操作两者进行操作。sc-fprf控制器127将加载存储单元130标记为fpu 120正在执行512位微操作。由于加载存储单元130利用内部256位数据路径来处理512位加载和存储,因此512位操作的较低256位在第一周期期间执行,并且较高256位在第二周期期间执行,从而与sc-fprf 145和执行管道相匹配。因此,在一些实施方案中,加载存储单元130接口和fpu 120接口两者都是256位宽的。
25.在一些实施方案中,在fpu 120中执行512位微操作允许512位指令使用回退队列(未示出)中的单个条目和处理器核心100中的许多其他结构,诸如例如加载队列以及ex 150中的调度器。相比例如将512位指令拆分为两个256位微操作的拆分重命名,使用单个条目可提高性能。在一些实施方案中,本文所述的影子锁存器配置的浮点寄存器文件方案被扩展为多个锁存器和周期(诸如四个锁存器和四个周期)以利用128位数据路径执行512位操作。
26.为了使用sc-fprf 145利用256位数据路径实现512位重命名和512位微操作,除了通常用于将数据存储在寄存器文件中的常规锁存器之外,还向寄存器文件中的每个条目添加一组另外的影子锁存器(参考图2详细描绘)。另外,向浮点单元120添加第二写入时钟以允许写入影子锁存器。
27.调度器单元140调度指令以供在fpu 120中执行。此外,因为sc-fprf 145使用两个
周期来执行单个周期操作,所以调度器单元140适于适应执行两个周期操作所需的另外的周期。因此,浮点单元120中的调度器单元140阻止或延迟接受另外的周期的另一个微操作,直到两个周期操作已经完成为止。也就是说,在一个实施方案中,调度器单元140理解512位微操作花费两个周期,并且阻止在所述第二周期中采取另一个微操作或另一个事务。在一些实施方案中,浮点单元120还要求调度器(调度器单元140)辨别出512位微操作在寄存器文件和执行管线中花费两个周期。
28.加载存储单元130在两个周期而不是单个周期内执行加载和存储操作,以便针对为影子锁存操作添加的另外周期进行调整。因此,例如,对于512位操作,加载存储单元130在两个周期而不是单个周期内利用256位数据路径执行512位加载和存储。
29.在各种实施方案中,虽然fpu 120使用256位数据路径执行其全部操作,但解码器(未示出)使用512位数据路径而不是256位来解码512位操作。换句话讲,解码器不知道fpu 120使用256位数据路径进行操作,而是像解码器通常针对512位操作所做的那样执行。
30.在一些实施方案中,影子选择多路复用器信号由本地触发器输出,因为影子选择多路复用器信号与第一周期事务一起出现。在一些实施方案中,从本地触发器输出影子选择多路复用器信号相比读取解码允许处理器更快,并且通过额外或另外的影子选择多路复用器隐藏时序。
31.尽管以下描述与在浮点单元120中实现的影子锁存器配置的浮点寄存器文件145相关,但它适用于例如针对定点单元125或完全不同类型的处理单元(诸如数字信号处理器、图形处理器、专用集成电路(asic)等)实现的任何类型的寄存器文件或影子锁存器配置的寄存器文件。sc-fprf 145包括功能锁存器、影子锁存器和影子选择多路复用器,所述影子选择多路复用器允许将数据读取到功能锁存器和影子锁存器以及从功能锁存器和影子锁存器写入数据(下面参考图2进一步讨论)。
32.图2是根据一些实施方案的采用使用影子锁存器的位宽重配置的图1的sc-fprf 145的位单元布局。sc-fprf 145包括影子锁存器147、影子选择mux 148、功能或常规锁存器146、读取逻辑单元(读取逻辑)265和写入逻辑单元(写入逻辑)270。在所示示例中,影子锁存器147包括多个影子锁存器,影子选择mux 148包括多个影子选择多路复用器,常规锁存器146包括多个常规锁存器,读取逻辑单元265包括多个读取逻辑单元,写入逻辑单元270包括多个写入逻辑单元。在一些实施方案中,每个影子锁存器147和常规锁存器146执行存储要在位宽重配置操作期间写入和读取到sc-fprf 145的数据的锁存操作。每个影子选择mux 148用于选择在位宽重配置操作期间从sc-fprf 145读取的数据。在一些实施方案中,读取逻辑单元265和写入逻辑单元270包括用于执行本领域公知的读取和写入操作的逻辑。
33.如图2所描绘,对于512位操作的位宽重配置,fpu 120(具有256数据路径)在两个时钟周期期间将前256位存储在常规锁存器146中并且将后256位存储在影子锁存器147中。也就是说,在写入操作期间,在第一周期中,常规锁存器146存储与512位操作相关联的较低256位。在第二周期中,影子锁存器147存储512位操作的较高256位。在读取操作期间,在第一周期中,从常规锁存器146读取数据。在第二周期中,从ex 150读取已经由影子选择mux 148选择的影子锁存器147并将其提供给ex 150(如图1和3所示)。
34.图3是根据一些实施方案的使用图1的处理器核心采用影子锁存的方法300。在框310处,由处理器核心100向浮点单元120发起具有数据操作(例如,读取操作或写入操作)的
指令集。在框330处,浮点单元120对以第二位宽设置的指令集进行操作。在框340处,基于对指令集的位宽操作评估,浮点单元120采用sc-fprf 145来执行位宽重配置。例如,在一些实施方案中,对指令集的位宽操作评估包括:确定指令集的位宽是512位操作还是256位操作,以及确定要由浮点单元120执行的数据操作是读取操作、写入操作还是读取操作和写入操作两者。在一些实施方案中,确定指令集的位宽是512位还是256位指定浮点单元120是将在浮点操作期间执行位宽重配置还是仅以规定的256位(浮点单元120的数据路径的位宽)执行浮点操作。在一些实施方案中,确定要由浮点单元120执行的数据操作是读取操作还是写入操作将激活写入控制信号或读取控制信号,所述信号针对浮点单元120中的读取和写入操作指定访问影子锁存器的时序和要使用影子选择mux 148访问的影子锁存器。
35.图4是根据一些实施方案的图1的处理器核心100的sc-fprf 145的框图。sc-fprf 145包括写入mux 470、常规锁存器446、影子锁存器447、影子选择mux 448。在各种实施方案中,两个锁存器(例如,常规锁存器446和影子锁存器447)共享单个写入mux 470,但在写入过程期间利用不同的写入时钟(例如,写入时钟信号410和影子写入时钟信号420)。
36.在写入操作期间,在sc-fprf 145的写入端口处,写入mux 470接收要写入常规锁存器446和影子锁存器447的写入数据(例如,512位数据)。基于写入mux信号440,当写入时钟信号410逻辑值为高时,写入mux 470引导写入数据491写入常规锁存器446。当影子写入时钟信号420逻辑值为高时,写入mux 470将写入数据492引导到影子锁存器447。常规锁存器446和影子锁存器447分别存储所接收的写入数据491和写入数据492。在读取操作期间,常规锁存器446和影子锁存器447基于例如控制影子选择mux 448的影子选择mux信号430的逻辑值来释放锁存器数据461和影子锁存器数据471。在一些实施方案中,当例如影子选择mux信号430的逻辑值为低时,从锁存器446读取锁存器数据461作为读取数据499。当影子选择mux信号430为高时,从影子锁存器447读取影子锁存器数据471作为读取数据499。然后将读取数据499作为sc-fprf 145的输出经由读取端口mux提供给执行单元150。
37.图5是根据一些实施方案的利用图4的sc-fprf 145的读取和写入操作的时序图500。时序图500描绘时钟信号510、影子选择mux信号430、读取数据499、写入时钟信号410、锁存器数据461、影子写入时钟信号420和影子锁存器数据471。在所示实施方案中,时序图500示出四个时钟周期,然而,在替代实施方案中利用不同数量的时钟周期。
38.对于写入操作,在第一时钟周期期间,写入时钟信号410和影子写入时钟信号420为低,并且没有数据被写入常规锁存器446或影子锁存器447。在第一时钟周期结束时,写入时钟信号410从低转变为高,并且因此,写入数据491被写入常规锁存器446。影子写入时钟信号420在转变期间保持为低,并且在第二周期期间,数据不被写入影子锁存器447。在第二时钟周期结束时,在第二时钟周期中间转变为低的写入时钟信号410保持为低,并且在第三周期期间,没有数据被写入常规锁存器446。在第二时钟周期结束时,影子写入时钟信号420从低转变为高,并且写入数据492被写入影子锁存器447。在第三时钟周期结束时,写入时钟信号410和影子写入时钟信号420保持为低,并且在第四时钟周期期间没有数据被分别写入常规锁存器446和影子锁存器447。对于读取操作,在第一时钟周期期间,影子选择mux信号430为低,并且不从影子锁存器447读取数据,而从常规锁存器446读取锁存器数据461。在第一周期结束时,当影子选择mux信号430从低转变为高时,从影子锁存器447读取影子锁存器数据471。锁存器数据461和影子锁存器数据471一起组合以在图1的sc-fprf 145的输出端
处提供期望的位宽配置。
39.计算机可读存储介质可包括在使用期间可由计算机系统访问以向计算机系统提供指令和/或数据的任何非暂时性存储介质或非暂时性存储介质的组合。此类存储介质包括但不限于光学介质(例如,压缩盘(cd)、数字多功能盘(dvd)、蓝光光盘)、磁性介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(ram)或高速缓存)、非易失性存储器(例如,只读存储器(rom)或快闪存储器)或基于微机电系统(mems)的存储介质。计算机可读存储介质可嵌入计算系统中(例如,系统ram或rom),固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(usb)的快闪存储器)或者经由有线或无线网络耦接到计算机系统(例如,网络可访问存储装置(nas))。
40.在一些实施方案中,以上所述技术的某些方面可由执行软件的处理系统的一个或多个处理器实现。软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。软件可包括指令和某些数据,所述指令和某些数据在由一个或多个处理器执行时操纵一个或多个处理器来执行以上所述技术的一个或多个方面。非暂时性计算机可读存储介质可包括例如磁盘或光盘存储设备、固态存储设备诸如快闪存储器、高速缓存、随机存取存储器(ram)或者其他一个或多个非易失性存储器设备等。存储在非暂时性计算机可读存储介质上的可执行指令可呈源代码、汇编语言代码、对象代码或由一个或多个处理器解译或以其他方式可执行的其他指令格式的形式。
41.应注意,并非以上在一般描述中所述的所有活动或元件都需要,特定活动或设备的一部分可能不需要,并且可执行一个或多个其他活动,或者可包括除所述那些元件之外的元件。再者,列出的活动次序不一定是执行活动的次序。另外,已经参考具体实施方案描述了概念。然而,本领域普通技术人员应了解,在不脱离如以下权利要求中所阐述的本公开范围的情况下,可作出各种修改和改变。因此,应在说明性而非限制性意义上看待本说明书和附图,并且所有此类修改都意图被包括在本公开的范围内。
42.上文已经参照具体实施方案描述了益处、其他优点和问题解决方案。然而,所述益处、优点、问题解决方案以及可致使任何益处、优点或解决方案出现或变得更突出的任何特征都不应被解释为是任何或所有权利要求的关键、必需或必要特征。此外,以上所公开的特定实施方案仅是说明性的,因为所公开的主题可以受益于本文教导的本领域技术人员显而易见的不同但等效的方式来修改和实践。除了如以下权利要求中所述的之外,并不意图限于本文所示的构造或设计的细节。因此,显然可更改或修改以上所公开的特定实施方案,并且所有此类变化都被认为在所公开的主题的范围内。因此,本文所寻求的保护如以下权利要求中所阐述。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献