块包括用于一个或多个功能单元的操作的指令。
[0091] 在示例5中,在示例1-4中的任一示例的处理器中,存储器是一致的存储器,一个 或多个功能单元是非一致的(NOCO)功能单元。
[0092] 在示例6中,在示例1-5中的任一示例的处理器中,存储器流模块进一步基于第一 排序和第二排序,执行与存储器相关联的多个操作和与一个或多个功能单元相关联的多个 操作。
[0093] 在示例7中,在示例1-6中的任一示例的处理器中,存储器流模块进一步从与存储 器相关联的多个操作中标识写入操作的提升,基于提升的写入操作,确定与存储器相关联 的多个操作和与一个或多个功能单元相关联的多个操作之间的第二依赖关系,并基于第二 依赖关系,修改第二排序,其中第二依赖关系指定,与一个或多个功能单元相关联的多个操 作中的至少一个将不执行,直到提升的写入操作被执行完。
[0094] 在示例8中,在示例1-7中的任一示例的处理器中,第一排序包括按先后顺序的与 存储器相关联的多个操作,第二排序包括按先后顺序的与一个或多个功能单元相关联的多 个操作。
[0095] 在示例9中,在示例1-8中的任一示例的处理器中,所述第一排序包括按顺序的与 所述存储器相关联的所述多个操作,其中与所述存储器相关联的所述多个操作中的读取操 作可以在与所述存储器相关联的所述多个操作中的在程序顺序方面比所述读取操作早的 写入操作之前执行。第二排序包括按先后顺序的与一个或多个功能单元相关联的多个操 作。
[0096] 在示例10中,方法包括,由处理器的存储器序列模块,接收与存储器相关联的多 个操作和与一个或多个功能单元相关联的多个操作。可以确定确定与所述存储器相关联的 所述多个操作和与所述一个或多个功能单元相关联的所述多个操作之间的依赖关系。可以 创建与存储器相关联的多个操作的第一排序,基于依赖关系和与存储器相关联的多个操作 的第一排序,创建与一个或多个功能单元相关联的多个操作的第二排序。
[0097] 在示例11中,在示例10的方法中,与存储器相关联的多个操作和与一个或多个功 能单元相关联的多个操作之间的依赖关系指定,与一个或多个功能单元相关联的多个操作 中的至少一个操作将不执行,直到与存储器相关联的多个操作中的一个操作被执行完。
[0098] 在示例12中,在示例10-11中的任一示例的方法中,其中与存储器相关联的多个 操作包括与存储器相关联的读取和写入操作,其中与一个或多个功能单元相关联的多个操 作包括用于执行一个或多个功能单元中的至少一个以对存储在存储器中的数据进行操作 的触发器。
[0099] 在示例13中,在示例10-12中的任一示例的方法中,与存储器相关联的写入操作 将控制块存储在存储器中,控制块包括用于一个或多个功能单元的操作的指令。
[0100] 在示例14中,在示例10-13中的任一示例的方法中,存储器是一致的存储器,一个 或多个功能单元是非一致的(NOCO)功能单元。
[0101] 在示例15中,在示例10-14中的任一示例的方法中,该方法进一步包括,由存储器 序列模块,基于第一排序和第二排序,执行与存储器相关联的多个操作,与一个或多个功能 单元相关联的多个操作。
[0102] 在示例16中,在示例10-15中的任一示例的方法中,该方法进一步包括,由存储器 序列模块,从与存储器相关联的多个操作标识写入操作的提升,由存储器序列模块,基于提 升的写入操作,确定与存储器相关联的多个操作和与一个或多个功能单元相关联的多个操 作之间的第二依赖关系。此外,该方法还可以包括,由所述存储器序列模块,基于所述第二 依赖关系,修改所述第二排序,其中所述第二依赖关系指定,与所述一个或多个功能单元相 关联的所述多个操作中的至少一个将不执行,直到所述提升的写入操作被执行完。
[0103] 在示例17中,在示例10-16中的任一示例的方法中,第一排序包括按先后顺序的 与存储器相关联的多个操作,第二排序包括按先后顺序的与一个或多个功能单元相关联的 多个操作。
[0104] 在示例18中,在示例10-17中的任一示例的方法中,所述第一排序包括按顺序的 与所述存储器相关联的所述多个操作,其中与所述存储器相关联的所述多个操作中的读取 操作可以在与所述存储器相关联的所述多个操作中的在程序顺序方面比所述读取操作早 的写入操作之前执行,第二排序包括按先后顺序排列的与一个或多个功能单元相关联的多 个操作。
[0105] 各实施例可以具有上文所描述的结构特征的不同的组合。例如,上文所描述的处 理器和方法的所有可选的特征也可以利用此处所描述的处理器来实现,示例中的细节可以 用于一个或多个实施例中的任何地方。
[0106] 示例19是包括处理器核和存储器序列模块的集成电路。存储器序列模块将接收 与存储器相关联的多个操作和与一个或多个功能单元相关联的多个操作,确定与存储器相 关联的多个操作和与一个或多个功能单元相关联的多个操作之间的依赖关系,创建与存储 器相关联的多个操作的第一排序,并且基于依赖关系和与存储器相关联的多个操作的第一 排序,创建与一个或多个功能单元相关联的多个操作的第二排序。可以基于所述第一排序 和所述第二排序,执行与所述存储器相关联的所述多个操作和与所述一个或多个功能单元 相关联的所述多个操作。
[0107] 在示例20中,在示例19的集成电路中,与存储器相关联的多个操作和与一个或 多个功能单元相关联的多个操作之间的依赖关系指定,与一个或多个功能单元相关联的多 个操作中的至少一个操作将不执行,直到与存储器相关联的多个操作中的一个操作被执行 完。
[0108] 在示例21中,在示例19-20中的任一示例的集成电路中,与存储器相关联的多个 操作包括与存储器相关联的读取和写入操作,与一个或多个功能单元相关联的多个操作包 括用于执行一个或多个功能单元中的至少一个以对存储在存储器中的数据进行操作的触 发器。
[0109] 在示例22中,在示例19-21中的任一示例的集成电路中,与存储器相关联的写入 操作将控制块存储在存储器中,且控制块包括用于一个或多个功能单元的操作的指令。
[0110] 在示例23中,在示例19-22中的任一示例的集成电路中,存储器流模块进一步从 与存储器相关联的多个操作中标识写入操作的提升,基于提升的写入操作,确定与存储器 相关联的多个操作和与一个或多个功能单元相关联的多个操作之间的第二依赖关系,并基 于第二依赖关系,修改第二排序。第二依赖关系指定,与一个或多个功能单元相关联的多个 操作中的至少一个将不执行,直到提升的写入操作被执行完。
[0111] 各实施例可以具有上文所描述的操作特征的不同的组合。例如,上文所描述的方 法的所有可选的特征也可以相对于非瞬时的计算机可读取的存储介质来实现。这些示例中 的细节可以在一个或多个实施例的任何地方被使用。
[0112] 示例24是包括指令的非瞬态计算机可读取的存储介质,所述指令在被处理器执 行时使处理器执行示例10-18的方法。
[0113] 示例25是包括片上系统(SOC)的系统,该片上系统包括多个功能单元,存储器,以 及耦合到功能单元的存储器流模块,以接收与存储器相关联的多个操作和与一个或多个功 能单元相关联的多个操作,确定与存储器相关联的多个操作和与一个或多个功能单元相关 联的多个操作之间的依赖关系,创建与存储器相关联的多个操作的第一排序,基于依赖关 系和与存储器相关联的多个操作的第一排序,创建与一个或多个功能单元相关联的多个操 作的第二排序。
[0114] 在示例26中,示例25的SOC进一步包括示例1-9的主题。
[0115] 在示例27中,在示例25的SOC中,存储器流模块进一步可操作,以执行示例10-18 的主题。
[0116] 在示例28中,示例25的SOC进一步包括示例19-23的主题。
[0117] 示例29是这样的设备:包括用于接收与存储器相关联的多个操作的装置、用于接 收与一个或多个功能单元相关联的多个操作的装置、用于确定与存储器相关联的多个操作 和与一个或多个功能单元相关联的多个操作之间的依赖关系的装置、用于创建与存储器相 关联的多个操作的第一排序的装置、以及用于基于依赖关系和与存储器相关联的多个操作 和第一排序,创建与一个或多个功能单元相关联的多个操作的第二排序的装置。
[0118] 在示例30中,示例29的设备进一步包括示例1-9和20-23中的任一示例的主题。
[0119] 示例31是包括存储器流模块的设备,其特征在于,存储器流模块被配置成执行示 例10-18中的任一示例的方法。
[0120] 在示例32中,示例31的设备进一步包括示例1-9和19-28中的任一示例的主题。
[0121] 尽管是参考数量有限的实施例来描述本公开的,但是,本领域技术人员将从其中 理解很多修改和变体。所附权利要求书涵盖所有这样的修改和变体都将在本发明的真正的 精神和范围内。
[0122] 在以下描述中,阐明了众多具体细节,如具体类型的处理器和系统配置的示例、具 体硬件结构、具体架构和微架构细节、具体寄存器配置、具体指令类型、具体系统组件、具体 测量/高度、具体处理器流水线阶段和操作等,以提供对本公开的透彻理解。然而,对本领 域普通技术人员显而易见的是,不一定要采用这些具体细节来实施本公开。在其它实例中, 未详细描述公知的组件或方法,诸如具体或替代的处理器体系结构、用于所描述算法的具 体逻辑电路/代码、具体固件代码、具体互连操作、具体逻辑配置、具体制造技术和材料、具 体编译器实现、代码中算法的具体表达、具体掉电和功率限制技术/逻辑、以及计算机系统 的其它具体操作细节,以避免不必要地模糊本发明。
[0123] 各实施例是参考特定集成电路(诸如计算平台或微处理器中的)中的缓存存储 器数据压缩和解压缩来描述的。各实施例也可以适用于其他类型的集成电路和可编程逻 辑器件。例如,所公开的各实施例不仅限于台式计算机系统或便携式计算机,诸如 Ultrabooks?计算机。并且也可用于其它设备,诸如,手持式设备、平板、其他薄笔记本、片上 系统(SOC)设备以及嵌入式应用。手持式设备的一些示例包括蜂窝电话、因特网协议设备、 数码相机、个人数字助理(PDA)、手持式PC。嵌入式应用典型地包括微控制器、数字信号处 理器(DSP)、芯片上系统、网络计算机(NetPC)、机顶盒、网络集线器、广域网(WAN)交换机、 或可执行以下教导的功能和操作的任何其他系统。描述了系统可以是任何类型的计算机或 嵌入式系统。所公开的各实施例可以特别用于低端设备,诸如可穿戴设备(例如,手表)、电 子植入物、传感和控制基础设施设备、控制器、监视控制和数据采集(SCADA)系统等等。此 外,本文描述的装置、方法和系统不限于物理计算设备,而是还可涉及用于节能和能效的软 件优化。如将在以下描述中变得显而易见的,本文描述的方法、装置和系统的实施例(无论 是关于硬件、固件、软件还是它们的组合)对于用性能考量来平衡的'绿色技术'的前景是 至关重要的。
[0124] 虽然参照处理器来描述多个实施例,但是其他实施例也适用于其他类型的集成电 路和逻辑设备。本发明的实施例的类似技术和教导可应用于可受益于更高的流水线吞吐量 和改善的性能的其他类型的电路或半导体器件。本发明的多个实施例的教导适用于执行数 据操纵的任何处理器或机器。然而,本发明不限于执行512位、256位、128位、64位、32位、 或16位数据运算的处理器或机器,并可适用于执行数据操纵或管理的任何处理器和机器。 此外,此处的描述提供了示例,并且附图出于示意性目的示出各种示例。然而,这些示例不 应该被理解为具有限制性意义,因为它们仅仅旨在提供本发明的多个实施例的示例,而并 非对本发明的多个实施例的所有可能的实现方式进行穷举。
[0125] 虽然下述的示例是在执行单元和逻辑电路情境下描述指令处理和分配,但本发明 的其他实施例也可通过存储在机器可读有形介质上的数据和/或指令来完成,这些数据和 /或指令在被机器执行时使得机器执行与本发明至少一个实施例相一致的功能。在一个实 施例中,与本发明的多个实施例相关联的功能被具体化在机器可执行指令中。这些指令可 用来使通过这些指令而被编程的通用处理器或专用处理器执行本发明的步骤。本发明的多 个实施例也可以作为计算机程序产品或软件来提供,该计算机程序产品或软件可包括其上 存储有指令的机器或计算机可读介质,这些指令可被用来对计算机(或其他电子设备)进 行编程以执行根据本发明的多个实施例的一个或多个操作。或者,本发明的多个实施例的 多个操作可由包含用于执行这些操作的固定功能逻辑的专用硬件组件来执行,或由经编程 的计算机组件以及固定功能硬件组件的任何组合来执行。
[0126] 可将用于对逻辑进行编程以执行本发明的多个实施例的指令存储在系统中的存 储器中(诸如,DRAM、高速缓存、闪存、或其他存储设备)内。此外,指令可经由网络或通过其 他计算机可读介质来分配。因此,计算机可读介质可包括用于以机器(例如,计算机)可读 的形式存储或发送信息的任何机制,但不限于:软盘、光盘、紧致盘只读存储器(CD-ROM)、 磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电 可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或在经由互联网通过电、光、声、或 其他形式的传播信号(例如,载波、红外信号、数字信号等)发送信息中所用的有形机器可 读存储器。因此,计算机可读介质包括适用于存储或发送机器(例如,计算机)可读形式的 电子指令或信息的任何类型的有形机器可读介质。
[0127] 设计会经历多个阶段,从创建到仿真到制造。表示设计的数据可用多种方式来表 示该设计。首先,像仿真中有用的那样,可使用硬件描述语言或另一功能性描述语言来表示 硬件。此外,可在设计过程的一些