用于卷积神经网络的权重移位机制的制作方法_3

文档序号:9564425阅读:来源:国知局
些实施例中,根据一个实施例的指令可被实现为对具有字节、字、双字、四倍 字等等的大小以及诸如单精度和双精度整数和浮点数据类型之类的数据类型的数据元素 进行操作。在一个实施例中,有序前端(in-order front end) 201可以实现可以获取要被执 行的指令并准备好指令供稍后在处理器流水线中使用的处理器200的一部分。前端201可 包括若干个单元。在一个实施例中,指令预取器226从存储器中获取指令,并将指令馈送到 指令解码器228,该指令解码器228进而解码或解释指令。例如,在一个实施例中,解码器将 接收到的指令解码为机器可以执行的一个或多个叫做"微指令"或"微操作"(也称为微操 作或uop)的操作。在其他实施例中,解码器将指令解析为可以被微架构用来执行根据一个 实施例的操作的操作码和对应的数据和控制字段。在一个实施例中,轨迹高速缓存(trace cache) 230可以将已解码的微操作组装为程序有序序列或uop队列234中的轨迹以供执行。 当轨迹高速缓存230遇到复杂指令时,微代码ROM 232提供完成操作所需的微操作。
[0056] 某些指令可以被转换为单个微操作,而其他指令需要多个微操作才能完成完全操 作。在一个实施例中,如果需要四个以上的微操作才能完成指令,则解码器228可以访问微 代码ROM 232来执行指令。在一个实施例中,指令可以被解码为少量的微操作,用于在指令 解码器228处进行处理。在另一个实施例中,指令可以存储在微代码ROM 232内,以防需要 若干个微操作才能完成该操作。轨迹缓存230引用入口点可编程逻辑阵列(PLA)来确定用 于从微代码ROM 232中读取微代码序列的正确的微指令指针,以完成根据一个实施例的一 个或多个指令。在微代码ROM 232完成对用于指令的微操作的排序之后,机器的前端201 可以恢复从轨迹高速缓存230获取微操作。
[0057] 无序执行引擎203可以准备指令以供执行。无序执行逻辑具有若干个缓冲器,以 平缓和重新排序指令的流,以在它们离开流水线并被调度供执行时优化性能。分配器逻辑 分配每一个微操作进行执行需要的机器缓冲器和资源。寄存器重命名逻辑将逻辑寄存器 重命名为寄存器组中的条目。分配器还在指令调度器(存储器调度器、快速调度器202、慢 / 一般浮点调度器204以及简单浮点调度器206)的前面,为两个微操作队列中的一个中的 每一个微操作分配条目,一个用于存储器操作而一个用于非存储器操作。uop调度器202、 204、206基于它们的依赖的输入寄存器操作数源的就绪状态以及uop完成它们的操作所需 的执行资源的可用性,来确定uop何时准备执行。一个实施例的快速调度器202可以在主 时钟周期的每一半调度,而其他调度器只能每个主处理器时钟周期调度一次。调度器仲裁 分派端口,来调度微操作以供执行。
[0058] 寄存器组208、210可以被排列在调度器202、204、206和执行块211中的执行单元 212、214、216、218、220、222、224之间。寄存器组208, 210中的每一个分别执行整数和浮点 运算。每一个寄存器组208、210还都包括旁路网络,该旁路网络可以将还没有被写入到寄 存器组中的刚刚完成的结果旁路或转发到新的依存(dependent)微操作。整数寄存器组 208和浮点寄存器组210可以与其他文件进行数据交换。在一个实施例中,整数寄存器组 208可以被拆分成两个单独的寄存器组,一个寄存器组用于低阶32比特的数据,第二寄存 器组用于高阶32比特的数据。浮点寄存器组210可包括128比特宽的条目,因为浮点指令 通常具有宽度从64到128比特的操作数。
[0059] 执行块211可以包含执行单元212、214、216、218、220、222、224。执行单元212、 214、216、218、220、222、224可以执行指令。执行块211可包括寄存器组208、210,这些寄 存器组208, 210存储微指令需要执行的整数和浮点数据操作数值。在一个实施例中,处理 器200可以包括若干个执行单元:地址生成单元(AGU) 212、AGU 214、快速算术逻辑单元 (ALU)216、快速ALU 218、慢速ALU 220、浮点ALU 222、浮点移动单元224。在另一个实施例 中,浮点执行块222、224执行浮点、MMX、SIMD以及SSE或其他操作。在再一个实施例中,浮 点ALU 222包括64比特X 64比特浮点除法器,用以执行除法、平方根,以及剩余微操作。 在各实施例中,可以利用浮点硬件来处理涉及浮点值的指令。在一个实施例中,ALU运算可 以被传递到高速ALU执行单元216、218。高速ALU 216、218可以执行快速的操作--带有 一半时钟周期的有效延迟。在一个实施例中,大多数复杂的整数操作进入慢速ALU 220,因 为慢速ALU 220可包括用于长延迟类型的操作的整数执行硬件,诸如乘法器、移位器、标记 逻辑以及分支(branch)处理。存储器加载/存储操作可以由AGU 212、214执行。在一个 实施例中,整数ALU 216、218、220可以对64比特数据操作数执行整数操作。在其他实施例 中,ALU 216、218、220可被实现为支持各种数据比特大小,包括16、32、128、256等等。类似 地,浮点单元222,224可被实现为支持具有各种宽度的比特的操作数的范围。在一个实施 例中,浮点单元222、224可以结合SHffi和多媒体指令,对128比特宽的打包数据操作数进 行操作。
[0060] 在一个实施例中,微操作调度器202, 204, 206在父加载(parent load)完成执 行之前,分派依存操作。由于微操作可以在处理器200中投机性地调度和执行,因此处理 器200也可以包括处理存储器未命中的逻辑。如果数据加载在数据高速缓存中未命中,则 在流水线中可能会有带有临时不正确的数据而离开调度器的正在执行的依存操作。重放 (replay)机制跟踪并重新执行使用不正确的数据的指令。只有依存操作可能需要被重放, 而独立的操作可以被允许完成。处理器的一个实施例的调度器和重放机制也可以被设计为 捕捉用于文本字符串比较操作的指令序列。
[0061] 术语"寄存器"可以表示可被用作标识操作数的指令的一部分的板上的处理器存 储器位置。换言之,寄存器可以是可从处理器外部可使用的那些寄存器(从编程器的角度 来看)。然而,在某些实施例中,寄存器可以不仅限于特定类型的电路。相反,寄存器可以存 储和提供数据并执行此处所描述的功能。此处所描述的寄存器可以通过处理器内的电路使 用任意数量的不同的技术来实现,诸如专用物理寄存器、使用寄存器重命名的动态地分配 的物理寄存器、专用和动态地分配的物理寄存器的组合等等。在一个实施例中,整数寄存器 存储32比特整型数据。一个实施例的寄存器组还包含用于打包数据的八个多媒体SHffi寄 存器。对于下面的讨论,寄存器可被理解为是被设计为保存打包数据的数据寄存器,诸如利 用加利福尼亚州圣克拉拉市的英特尔公司的MMX技术实现的微处理器中的64比特宽MMX tm 寄存器(在某些情况下,也简称为寄存器)。以整数和浮点形式存在的这些MMX寄存 器,可以与伴随SHffi和SSE指令的打包数据元件一起操作。类似地,涉及SSE2、SSE3、SSE4 或以外的(一般地称为"SSEx")技术的128比特宽的XMM寄存器也可以保存这样的打包数 据操作数。在一个实施例中,在存储打包数据和整型数据时,寄存器不需要区分两种数据类 型。在一个实施例中,整数和浮点可以包含在同一个寄存器组或者不同的寄存器组中。此 外,在一个实施例中,浮点和整型数据可以存储在不同的寄存器中或相同寄存器中。
[0062] 图3-5可以示出适用于包括处理器300的示例性系统,而图4可以示出可包括核 302中的一个或多个的示例性片上系统(SoC)。膝上型计算机、台式机、手持式PC、个人数字 助理、工程工作站、服务器、网络设备、网络中枢、交换机、嵌入式处理器、DSP、图形设备、视 频游戏设备、机顶盒、微控制器、手机、便推式媒体播放器、手持式设备以及各种其他电子设 备的已知的其他系统设计和实现也可以是合适的。一般而言,如此处所公开的包括处理器 和/或其他执行逻辑的各种系统或电子设备一般可以是合适的。
[0063] 图4是根据本发明的各实施例的系统400的框图。系统400可包括可以耦合到图 形存储器控制器中枢(GMCH) 420的一个或多个处理器410,415。在图4中利用虚线表示额 外的处理器415的可任选的本质。
[0064] 每一处理器410,415都可以是处理器300的某种版本。然而,应该指出的是,集成 图形逻辑和集成存储器控制单元可以不存在于处理器410,415中。图4示出了 GMCH 420 可以耦合到存储器440,该存储器440可以是,例如,动态随机存取存储器(DRAM)。对于至 少一个实施例,DRAM可以与非易失性缓存相关联。
[0065] GMCH 420可以是芯片组,或芯片组的一部分。GMCH 420可以与处理器410,415 进行通信,并控制处理器410,415和存储器440之间的交互。GMCH 420也可以充当处理器 410,415及系统400的其他元件之间的加速总线接口。在一个实施例中,GMCH 420通过诸 如前端总线(FSB)495之类的多点(multi-drop)总线与处理器410,415进行通信。
[0066] 此外,GMCH 420还可以耦合到显示器445 (诸如平板显示器)。在一个实施例中, GMCH 420可以包括集成图形加速器。GMCH 420可以进一步耦合到输入/输出(I/O)控制器 中枢(ICH) 450,该输入/输出控制器中枢450可以被用来将各种外围设备耦合到系统400。 外部图形设备460可以是与另一个外围设备470 -起耦合到ICH 450的分立图形设备。
[0067] 在其他实施例中,在系统400中也可以存在额外的或不同的处理器。例如,额外 的处理器410,415可包括可以与处理器410相同的额外的处理器,可以是与处理器410异 类的或非对称的额外的处理器,加速器(诸如,例如,图形加速器或数字信号处理(DSP)单 元)、现场可编程门阵列,或任何其他处理器。就包括架构、微架构、热、功率消耗特征等等的 一系列优点的度量而言,在物理资源410,415之间可能会有各种差异。这些差异可能将其 本身有效地表现为处理器410,415之间的不对称性和异质性。对于至少一个实施例,各种 处理器410,415可以驻留在相同管芯封装中。
[0068] 图5不出了根据本发明的各实施例的第二系统500的框图。如图5所不,多处理 器系统500可包括点对点互连系统,并可包括通过点对点互连550耦合的第一处理器570 和第二处理器580。处理器570和580中的每一个都可以是作为处理器410,615中的一个 或多个的处理器300的某种版本。
[0069] 尽管图5可以示出两个处理器570,580,但是,可以理解,本发明的范围不仅限于 此。在其他实施例中,一个或多个额外的处理器可以存在于给定处理器中。
[0070] 处理器570和580被示为分别包括集成存储器控制器单元572和582。处理器570 还可包括点对点(P-P)接口 576和578--作为其总线控制器单元的一部分;类似地,第二 处理器580可包括P-P接口 586和588。处理器570、580可以使用点对点(P-P)接口电路 578、588经由P-P接口 550来交换信息。如图5所示,頂C 572和582将各处理器耦合至相 应的存储器,即存储器532和存储器534,这些存储器在一个实施例中可以是本地附连至相 应的处理器的主存储器的部分。
[0071 ] 处理器570、580可各自经由使用点对点接口电路576、590、594、586的各个P-P接 口 552、554与芯片组598交换信息。在一个实施例中,芯片组590还可以通过高性能图形 接口 539与高性能图形电路538交换信息。
[0072] 共享缓存(未示出)可以被包括在任一处理器之内,或被包括在两个处理器外部 但仍经由P-P互连与这些处理器连接,从而如果将某处理器置于低功率模式时,可将任一 处理器或两个处理器的本地缓存信息存储在该共享缓存中。
[0073] 芯片组590可经由接口 596耦合至第一总线516。在一个实施例中,第一总线516 可以是外围组件互连(PCI)总线,或诸如PCI Express总线之类的总线,或另一第三代I/O 互连总线,虽然本公开的范围不仅限于此。
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1