用于执行点积运算的指令和逻辑的制作方法_3

文档序号:9304411阅读:来源:国知局
不限于同步动态随机存取存储器(SDRAM)控制装置(control) 146、静态随机存取 存储器(SDRAM)控制装置147、突发(burst)闪存接口 148、个人计算机存储卡国际联盟 (PCMCIA)/压缩闪存(compactflash) (CF)卡控制装置149、液晶显示器(LCD)控制装置 150、直接存储器存取(DMA)控制器151以及备选总线主接口 152。在一个实施例中,数据处 理系统140还可包括I/O桥接器154,用于经由I/O总线153与各种I/O设备进行通信。这 类I/O设备例如可包括但不限于通用异步接收器/发射器(UART)155、通用串行总线(USB) 156、蓝牙无线UART157和I/O扩展接口 158。
[0039] 数据处理系统140的一个实施例提供移动、网络和/或无线通信以及能够执行包 括点积操作在内的SB?操作的处理核心159。处理核心159可采用各种音频、视频、成像 和通信算法来编程,所述算法包括诸如沃尔什-哈达玛变换、快速傅立叶变换(FFT)、离散 余弦变换(DCT)及其各自的逆变换之类的离散变换,诸如色彩空间变换、视频编码运动估计 或视频解码运动补偿之类的压缩/解压缩技术,以及诸如脉冲编码调制(PCM)之类的调制 /解调(MODEM)功能。本发明的一些实施例还可适用于图形应用,例如三维("3D")建模、呈 现(rendering)、对象冲突检测、3D对象变换和照明等。
[0040] 图1C示出能够执行S頂D点积操作的数据处理系统的又一备选实施例。根据一个 备选实施例,数据处理系统160可包括主处理器166、sn?协处理器161、高速缓冲存储器 167和输入/输出系统168。输入/输出系统168可任选地耦合到无线接口 169。SB?协 处理器161能够执行包括点积操作在内的SB?操作。处理核心170可适合于以一种或多 种加工技术制造,并且通过在机器可读媒体上充分详细地表示,可适合于促进包括处理核 心170在内的数据处理系统160的全部或部分的制造。
[0041] 对于一个实施例,sn?协处理器161包括执行单元162和寄存器文件集合164。主 处理器165的一个实施例包括解码器165,以识别供执行单元162执行的包括S頂D点积计 算指令在内的指令集163的指令。对于备选实施例,S頂D协处理器161还包括解码器165B 的至少一部分,以对指令集163的指令进行解码。处理核心170还包括对本发明的实施例 的理解不必要的附加电路(图中未示出)。
[0042] 在操作中,主处理器166执行数据处理指令流,所述指令控制包括与高速缓冲存 储器167和输入/输出系统168进行交互在内的一般类型的数据处理操作。嵌入数据处理 指令流中的是S頂D协处理器指令。主处理器166的解码器165将这些S頂D协处理器指令 识别为属于应当由附属的SB?协处理器161来执行的类型。因此,主处理器166在协处理 器总线166上发出这些S頂D协处理器指令(或者表示S頂D协处理器指令的控制信号),它 们从所述总线上由任何附属的S頂D协处理器来接收。在这种情况下,S頂D协处理器161将 接受并执行发送给它的任何所接收的SMD协处理器指令。
[0043] 数据可经由无线接口 169来接收,以供S頂D协处理器指令进行处理。对于一个实 例,可采取数字信号的形式来接收语音通信,其可由sn?协处理器指令进行处理,以再生 (regenerate)表示语音通信的数字音频样本。对于另一个实例,可采取数字比特流的形式 来接收压缩音频和/或视频,其可由S頂D协处理器指令进行处理,以再生数字音频样本和 /或运动视频帧。对于处理核心170的一个实施例,主处理器166和SB?协处理器161集 成到包括执行单元162、寄存器文件集合164和解码器165的单个处理核心170中,以识别 包括SIMD点积指令在内的指令集163的指令。
[0044] 图2是根据本发明的一个实施例的处理器200的微体系结构的框图,所述处理器 包括执行点积指令的逻辑电路。对于点积指令的一个实施例,该指令可将第一数据元素与 第二数据元素相乘,并且将该乘积与第三和第四数据元素之积相加。在一些实施例中,点积 指令可实现成对于具有字节、字、双字、四字等大小以及诸如单和双精度整数及浮点数据类 型之类的数据类型的数据元素进行操作。在一个实施例中,有序前端201是处理器200的 组成部分,它取出待执行的宏指令,并对它们进行准备以供之后在处理器流水线中使用。前 端201可包括若干单元。在一个实施例中,指令预取器226从存储器中取出宏指令,并将 其馈送到指令解码器228,指令解码器228转而将这些宏指令解码为称作微指令或微操作 (又称作microop或yop)的机器可执行的原语。在一个实施例中,追踪高速缓存(trace Cache)230取出解码后的yop,并将其组装为yop队列234中的程序排序序列或路线 (trace)供执行。当追踪高速缓存230遇到复杂宏指令时,微码ROM232提供完成该操作所 需的yop。
[0045] 许多宏指令被转换为单个微操作,而其它的则需要若干微操作来完成整个操作。 在一个实施例中,若需要四个以上微操作来完成宏指令,则解码器228访问微码ROM232来 对宏指令进行处理。对于一个实施例,可将打包点积指令解码为少量微操作以在指令解码 器228上进行处理。在另一个实施例中,若需要多个微操作来完成该操作,则打包点积算法 的指令可存储在微码ROM232中。追踪高速缓存230参照入口点可编程逻辑阵列(PLA)来 确定用于读取微码ROM232中的点积算法的微码序列的正确微指令指针。在微码ROM232 完成当前宏指令的定序(sequencing)微操作之后,机器的前端201继续从追踪高速缓存 230中取出微操作。
[0046] 某种S頂D和其它多媒体类型的指令被看作复杂指令。大多数浮点相关的指令也 是复杂指令。因此,当指令解码器228遇到复杂宏指令时,在适当位置上对微码ROM232进 行访问,以检索那个宏指令的微码序列。将执行那个宏指令所需的各个微操作传送给无序 执行引擎203,以在适当的整数和浮点执行单元上执行。
[0047] 无序执行引擎203是在其中准备微指令供执行的单元。无序执行逻辑具有多个缓 冲器以在微指令沿流水线前进并被安排执行时对所述微指令的流程进行平滑处理及重新 排序来优化性能。分配器逻辑分配各y〇P执行所需的机器缓冲器和资源。寄存器重命名 逻辑将逻辑寄存器重命名到寄存器文件的条目上。在以下指令调度器之前,分配器还分配 两个yop队列之一中的各yop的条目,所述两个队列中的一个用于存储器操作,一个用于 非存储器操作:存储器调度器,快速调度器202,慢速/通用浮点调度器204,以及简单浮点 调度器206。yop调度器202、204、206根据它们的相关输入寄存器操作数源的预备状态以 及yop完成其操作所需的执行资源的可用性来确定何时yop准备好执行。该实施例的快 速调度器202可在主时钟周期的每一半上进行调度,而其它调度器在每个主处理器时钟周 期只可调度一次。调度器对分配端口进行仲裁,以调度yop来执行。
[0048] 寄存器文件208、210位于调度器202、204、206与执行块211中的执行单元212、 214、216、218、220、222、224之间。存在分别用于整数和浮点操作的独立寄存器文件208、 210。该实施例的各寄存器文件208、210还包括旁路网络(bypassnetwork),它可向新的相 关yop分流(bypass)或转发还未写入寄存器文件的刚完成的结果。整数寄存器文件208 和浮点寄存器文件210还能互相传送数据。对于一个实施例,整数寄存器文件208被分为 两个独立寄存器文件,一个寄存器文件用于数据的低阶32位,而第二寄存器文件用于数据 的高阶32位。一个实施例的浮点寄存器文件210具有128位宽的条目,因为浮点指令通常 具有从64到128位宽的操作数。
[0049] 执行块211包含执行单元212、214、216、218、220、222、224,指令实际上在这些执 行单元中执行。该部分包括寄存器文件208、210,它们存储微指令需要执行的整数和浮点 数据操作数值。该实施例的处理器200包括多个执行单元:地址生成单元(AGU) 212,AGU 214,快速ALU216,快速ALU218,慢速ALU220,浮点ALU222,浮点移动单元224。对于该 实施例,浮点执行块222、224执行浮点、MMX、S頂D和SSE操作。该实施例的浮点ALU222包 括64位除64位浮点除法器,以执行除法、平方根及求余(remainder)微操作。对于本发明 的实施例,涉及浮点值的任何动作采用浮点硬件进行。例如,整数格式与浮点格式之间的转 换涉及浮点寄存器文件。类似地,浮点除法操作在浮点除法器上进行。另一方面,非浮点数 值和整数类型采用整数硬件资源来处理。非常频繁的简单ALU运算转到高速ALU执行单元 216、218。该实施例的快速ALU216、218可采用半个时钟周期的有效等待时间来执行快速 运算。对于一个实施例,大多数复杂整数操作转到慢速ALU220,因为慢速ALU220包括用 于长等待时间类型的操作的整数执行硬件,所述操作例如乘数、移位、标志(flag)逻辑和分 支处理。存储器加载/存储操作由AGU212、214执行。对于该实施例,在对64位数据操作 数执行整数操作的上下文中描述整数ALU216、218、220。在备选实施例中,ALU216、218、 220可被实现为支持包括16、32、128、256等的各种数据位。类似地,浮点单元222、224可 被实现为支持具有各种宽度的位的一系列操作数。对于一个实施例,结合SIMD和多媒体指 令,浮点单元222、224可对128位宽的打包数据操作数进行操作。
[0050] 在该实施例中,yop调度器202、204、206在父加载已经完成执行之前分派 (dispatch)相关操作。由于yop在处理器200中推测地调度和执行,所以处理器200还包 括处理存储器未命中的逻辑。若数据加载在数据高速缓存中未命中,则在流水线中可能存 在为调度器留下了暂时不正确数据的执行中(inflight)相关操作。重放(replay)机构 跟踪并重新执行采用不正确数据的指令。只有相关操作才需要被重放,而允许不相关操作 完成。处理器的一个实施例的调度器和重放机构还设计成捕捉点积操作的指令序列。
[0051] 术语"寄存器"在
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1