Simd向量的同步化的制作方法

文档序号:9371899阅读:177来源:国知局
Simd向量的同步化的制作方法
【技术领域】
[0001] 本公开涉及微处理器及其它处理装置,更具体来说,涉及SHffi向量的同步化。
【背景技术】
[0002] 在例如包括多线程化处理器、多个处理装置和/或多核处理器的系统中的多个线 程和/或处理单元(下文称为代理)常常需要共享资源以及存储在该系统中的数据。注意要 确保代理访问最近更新的数据,并确保代理不会访问和修改当前与另一个代理相关联的数 据。使这种数据和资源共享进一步复杂化的是,大多数现代处理装置包括一个或多个专用 高速缓存存储器。在多处理器和多核系统内,这些芯片上高速缓存将通常并且实际上一般 的确包含某个数据项的多个副本。因此,当代理访问某个数据项的副本时,要确保读取经过 更新的或有效的数据值。
[0003] 因此,在这些系统中保持"高速缓存一致性"。高速缓存一致性是指从高速缓存存 储器写入或读取到高速缓存存储器的数据的同步化,以使得线程或处理器所访问的存储在 高速缓存中的任何数据项是该数据项的最新副本。此外,从高速缓存写回到主存储器的任 何数据值应当是最当前的数据。
[0004] 一种保持高速缓存一致性并确保当代理需要数据项时访问的是该数据项的最新 值的方法是实现信号量(semaphore)(例如,标志或锁)。例如,锁包括响应代理(例如,在加 载操作中)对来自存储器的特定数据项的请求而执行以确保处理器和/或线程之间的同步 的过程。一般来说,锁与包括读/加载指令、修改数据项的指令和写/存储指令的指令集相 关联。锁在本文中又称为"锁序列"或"锁操作",它可包括例如:获取存储数据的存储器位 置的所有权;对数据执行原子操作,同时防止其它进程对该数据进行操作;以及在执行原 子操作之后释放该存储器位置的所有权。原子操作是以非中断方式按顺序执行并且此外还 确保其完成或根本不完成的操作(即,该操作不可分割)。

【发明内容】

[0005] 本发明涉及一种方法,包括: 通过处理装置中的解码器解码单个指令,所述单个指令对第一存储位置、第二存储位 置和第三存储位置之间的多个数据元素指定向量比较和交换操作; 发出所述单个指令以供所述处理装置中的执行单元执行;以及响应所述单个指令的执 行, 将来自所述第一存储位置的数据元素与所述第二存储位置中的对应数据元素进行比 较;以及响应确定存在匹配, 用来自所述第三存储位置的对应数据元素替换来自所述第一存储位置的所述数据元 素。
[0006] 本发明涉及一种处理器,包括: 存储位置,配置成存储多个第一数据元素、多个第二数据元素和多个第三数据元素,所 述多个第二和第三数据元素中的每个对应于所述多个第一数据元素中的一个; 解码器,配置成解码单个指令,所述单个指令对所述多个第一、第二和第三数据元素指 定向量比较和交换操作;以及 执行单元,耦合到所述解码器以接收经解码的指令,并耦合到所述存储位置以执行所 述向量比较和交换操作; 其中,响应所述向量比较和交换操作的执行,所述执行单元配置成: 比较来自所述多个第一和第二数据元素的对应数据元素;以及响应确定存在匹配, 用来自所述多个第三数据元素的对应数据元素替换来自所述多个第一数据元素的数 据元素。
[0007] 本发明涉及一种系统,包括: 存储器控制器,耦合到配置成存储多个第一数据元素的第一存储位置;以及 耦合到所述存储器控制器的处理器,所述处理器包括: 寄存器文件,配置成存储多个第二数据元素和多个第三数据元素,所述多个第二和第 三数据元素中的每个对应于所述多个第一数据元素中的一个; 解码器,配置成解码单个指令,所述单个指令对所述多个第一、第二和第三数据元素指 定向量比较和交换操作;以及 执行单元,耦合到所述解码器以接收经解码的指令,并耦合到所述第一存储位置和所 述寄存器文件以执行所述向量比较和交换操作; 其中,响应所述向量比较和交换操作的执行,所述执行单元配置成: 比较来自所述多个第一和第二数据元素的对应数据元素;以及响应确定存在匹配, 用来自所述多个第三数据元素的对应数据元素替换来自所述多个第一数据元素的数 据元素;以及响应确定不存在匹配, 用来自所述多个第一数据元素的对应数据元素替换来自所述多个第二数据元素的数 据元素。
[0008] 本发明涉及一种其上存储有指令的计算机可读介质,所述指令可进行操作以使处 理器装置: 解码单个指令,所述单个指令对多个数据元素指定向量比较和交换操作,每个数据元 素具有对应的测试元素、替换元素和掩码元素; 如果相应掩码元素激活,则将数据元素与对应的测试元素进行比较;以及响应确定所 有比较指示匹配, 设置标志,并用对应的替换元素替换所比较的数据元素;以及响应确定所有比较指示 不匹配, 将标志清零,并用对应的数据元素替换所比较的测试元素。
【附图说明】
[0009] 图1示出计算系统的框图。
[0010] 图2是如图1所示的处理装置的示意图。
[0011] 图3示出单指令多数据(SHffi)向量比较和交换指令的编码方案。
[0012] 图4是用于实现如图3所示的指令格式的第一示范性计算机系统的框图。
[0013] 图5是用于实现如图3所示的指令格式的第二示范性计算机系统的框图。
[0014] 图6是用于实现如图3所示的指令格式的第三示范性计算机系统的框图。
[0015] 图7是用于实现如图3所示的指令格式的第四示范性计算机系统的框图。
[0016] 根据描述和附图以及权利要求,其它特征和优点将显而易见。
【具体实施方式】
[0017] 在以下描述中,阐述了众多具体细节,例如特定指令、指令格式、诸如寄存器和存 储器的装置等,以便充分理解本文提供的实例。但是,本领域技术人员将明白,没有这些具 体细节也可实现本发明。
[0018] -种用于确定信号量是否加锁(和/或使它加锁)的方法是通过使用读-修改-写 序列(或操作)。但是,读-修改-写实现的一个问题是信号量机制本身的获取和释放。即, 当一个进程试图获得对共享存储器空间的控制权时,它首先读取锁值,检查和修改(如果允 许的话)该值,并将修改值写回到该锁。一般希望将读-修改-写操作作为原子操作来执行 (即,一旦开始执行便不中断地完成)以防止其它进程修改锁值。通过利用原子操作,进程可 获取(读取)信号量,修改该值(如果允许的话),并通过启动写来释放信号量以在另一进程 试图获取该锁之前完成该操作。
[0019] 现在参考图1,示出计算机系统10,计算机系统10具有通过总线13耦合到存储器 12 (例如,寄存器、高速缓存、RAM等)的多个处理单元11 (例如,处理器、核、执行单元等)。 其中一个或多个处理单元11与一个或多个线程相关联。因此,计算机系统10包括任何合 适数量的处理单元11,每个处理单元11具有任何合适数量的线程。处理单元11均可形成 独立的集成电路装置的一部分,或者所有处理单元11 (或其一部分)可形成在单个管芯上。 在该特定计算机系统中,示出作为系统10的部分的四个处理单元11 (指示为P1、P2、P3和 P4)。所有这四个处理单元11都耦合到存储器12,具体来说是耦合到存储器12内的共享存 储器空间15。
[0020] 将明白,存储器12能以各种方式进行配置。尽管示为单个存储器,但存储器12可 包括多个内部和/或外部存储器。在特定实例中,所有四个处理单元11都访问存储器12, 并且指示为共享空间15的存储器12的一部分供多于一个处理单元11访问。可能的是,存 储器12内存在其它共享区域,其中两个或两个以上处理单元11具有访问这些共享区域的 能力。存储器12的非共享区域一般降级(relegate)为只供一个处理单元11访问。
[0021] 如图1所示的计算机系统10意在是示范性计算机系统,并且可包括许多额外组 件,为清楚起见,省略了这些额外组件。举例来说,计算机系统10可包括DM (直接存储器 访问)控制器、网络接口(如网络卡)、与其中一个或多个处理单元11相关联的芯片组、以及 额外的信号线和总线。并且,应了解,计算机系统10可以不包括如图1所示的所有组件。
[0022] 在图1中,所采用的信号量是锁(或锁变量)16,指定它们以控制对一个或多个相应 共享空间15的访问(如虚线14所示)。锁16是指定包含与获得对共享空间15的访问权相 关联的值的存储器中的特定位置。因此,为了使处理单元11之一访问共享空间15,它首先 访问对应锁16,并测试存储在锁位置16中的数据的状态(值)。在最简单的格式中,可为锁 16指定两个值。第一个值指示共享空间可供访问,第二个值指示共享空间当前正在使用并 且因此不可供访问。再者,在最简单的实施例中,可对锁16的加锁和解锁状态使用位状态 1和0〇
[0023] 将明白,锁16的实际锁值和锁状态只是一种设计选择,并且可以设想许多改变。 并且,锁16的位置无需在存储器12本身内。此外,参考图1将明白,存储器12可以是各种 存储器装置之一。还可能的是,其中一个或多个处理单元11可以用同样访问存储器的一个 (或多个)存储器访问装置(诸如直接存储器访问控制器的装置)替换。在这些示例中,这些 装置将与本文描述的处理单元11类似地起作用以获得对共享空间15的访问权。最后,尽 管只示出单个总线13,但在与总线13相同或不同的层级上可以有多个总线以用于耦合这 些各种装置。
[0024] 处理单元11访问存储器12以进行数据传输通常涉及加载和存储操作的使用。加 载操作传送来自被访问的存储器位置的存储器内容,而存储操作则将数据传送到被访问的 存储器位置。因此,加载/存储操作用于访问存储器12和锁16以在处理单元11与存储器 12之间进行数据传输。加载和存储访问又分别称为读
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1