CN117882056A - 信息处理设备和信息处理方法 - Google Patents

信息处理设备和信息处理方法 Download PDF

Info

Publication number
CN117882056A
CN117882056A CN202280059026.6A CN202280059026A CN117882056A CN 117882056 A CN117882056 A CN 117882056A CN 202280059026 A CN202280059026 A CN 202280059026A CN 117882056 A CN117882056 A CN 117882056A
Authority
CN
China
Prior art keywords
lock
cpu
data
cache
information processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280059026.6A
Other languages
English (en)
Inventor
中村祐一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Group Corp
Original Assignee
Sony Group Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Group Corp filed Critical Sony Group Corp
Publication of CN117882056A publication Critical patent/CN117882056A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明的信息处理设备(100)包括多个CPU(1)、对应于多个CPU(1)的多个高速缓存存储器(2)和主存储器(3)。多个CPU(1)中的每一个获取用于排他地存取主存储器(3)中的数据的锁,并且随后存取数据。与对应的CPU(1)的存取相关的数据和用于标识与所述存取相关的锁的锁ID被彼此关联地写入在多个高速缓存存储器(2)的对应高速缓存线中。当所述对应的CPU(1)之外的CPU(1)获取由被写入到相关高速缓存线的锁ID所标识的锁时,多个高速缓存存储器(2)中的对应高速缓存线被刷新。

Description

信息处理设备和信息处理方法
技术领域
本公开内容涉及信息处理设备和信息处理方法。
背景技术
如在专利文献1和专利文献2中所描述的那样,已经知道由多个CPU对相同的存储器进行存取并且实施数据处理以提高处理速度的技术。
引用列表
专利文献
专利文献1:JP 2007-11580A
专利文献2:WO 2008/155844 A
发明内容
技术问题
在各个CPU的高速缓存存储器之间需要保持一致性(高速缓存一致性)。虽然例如也有由嗅探单元监测每一个CPU的数据存取的技术,但是在与此相伴的监测负荷、功率消耗等方面仍然存在问题。因此仍然需要用于保持高速缓存一致性的技术。
本公开内容的一个方面使得有可能保持高速缓存一致性。
针对问题的解决方案
根据本公开内容的一个方面的信息处理设备包括:多个CPU;与所述多个CPU相关联的多个高速缓存存储器;以及主存储器,其中多个CPU中的每一个获取用于排他地存取主存储器中的数据的锁,并且随后存取数据,与对应的CPU的存取相关的数据和用于指定与所述存取相关的锁的锁ID被关联并且被写入在多个高速缓存存储器中的每一个的高速缓存线中,并且当所述对应的CPU之外的CPU获取基于写入在高速缓存线中的锁ID所指定的锁时,多个高速缓存存储器中的每一个的高速缓存线被刷新。
根据本公开内容的一个方面的信息处理方法包括:在多个CPU中的每一个处,获取用于排他地存取主存储器中的数据的锁,并且随后存取数据;将与对应的CPU的存取相关的数据和用于指定与所述存取相关的锁的锁ID相关联,并且写入在与所述多个CPU相关联的多个高速缓存存储器中的每一个的高速缓存线中;以及当所述对应的CPU之外的CPU获取基于写入在高速缓存线中的锁ID所指定的锁时,刷新多个高速缓存存储器中的每一个的高速缓存线。
附图说明
图1是示出根据某个实施例的信息处理设备的示意性配置示例的视图。
图2是示出信息处理设备的操作示例的视图。
图3是示出信息处理设备的操作示例的视图。
图4是示出信息处理设备的操作示例的视图。
图5是示出信息处理设备的操作示例的视图。
图6是示出信息处理设备的操作示例的视图。
图7是示出信息处理设备的操作示例的视图。
图8是示出信息处理设备的操作示例的视图。
图9是示出信息处理设备的操作示例的视图。
图10是示出由信息处理设备执行的处理(信息处理方法)的示例的流程图。
图11是示出信息处理设备的操作示例的视图。
图12是示出信息处理设备的操作示例的视图。
图13是示出信息处理设备的操作示例的视图。
图14是示出信息处理设备的操作示例的视图。
图15是示出由信息处理设备执行的处理(信息处理方法)的示例的流程图。
图16是示出用于指定多个锁的锁ID的示例的视图。
具体实施方式
后文中将参照附图详细描述本公开内容的实施例。应当注意的是,相同的组件将被指派相同的附图标记,并且在下面的每一个实施例中将省略重复描述。
此外,将按照下面描述的项目顺序来描述本公开内容。
1、实施例
2、修改示例
2.1、第一修改示例
2.2、第二修改示例
2.3、其他
3、效果的示例
1、实施例
图1是示出根据某个实施例的信息处理设备的示意性配置示例的视图。信息处理设备100包括多个CPU 1、与多个CPU 1相关联的多个高速缓存存储器2、主存储器3和信号量(semaphore)寄存器4。
多个CPU 1分别在主存储器3中存储数据。还可以说多个CPU 1共享(共同使用)主存储器3。CPU 1通过根据程序(软件)操作来执行数据处理等等。多个CPU 1并行处理相同的数据以提高处理速度。数据还可以被理解为意味着数据结构,并且数据可以作为没有矛盾的范围内的数据结构被适当地读取。图1示出两个CPU 1作为所述多个CPU 1。为了允许区分每一个CPU 1,CPU 1也被称作CPU 1-1和CPU 1-2。
多个高速缓存存储器2中的每一个与多个CPU 1中的每一个相关联。与CPU 1-1相关联并且由CPU 1-1进行数据存取的高速缓存存储器2被称作并且示出为高速缓存存储器2-1。与CPU 1-2相关联并且由CPU 1-2进行数据存取的高速缓存存储器2被称作并且示出为高速缓存存储器2-2。还可以说CPU 1包括(使用)对应的高速缓存存储器2。CPU 1对高速缓存存储器2的数据存取速度快于CPU 1对主存储器3的数据存取速度。
应当注意的是,其中多个CPU 1中的每一个如前面所描述的那样包括高速缓存存储器2并且共享主存储器3并且并行地处理主存储器3中的数据的信息处理设备100也被称作对称多处理(SMP)系统等等。
高速缓存存储器2保持与对应的CPU 1对主存储器3的存取相关的数据。与存取相关的数据包括作为存取的结果从主存储器3读取的数据。与存取相关的数据还可以被理解为意味着在被读取之后由CPU 1处理(例如重写)的数据。在图1所示的示例中,高速缓存存储器2包括指令高速缓存21和数据高速缓存22。
指令高速缓存21在内部保持用于CPU 1的指令。所述指令有时从主存储器3被读取,但是不在主存储器3中被重写或覆写。
指令高速缓存21中的数据被称作并且示出为高速缓存数据21a。响应于对应的CPU1对主存储器3的数据存取,与存取相关的标签和与存取相关的指令数据被关联并且被写入在高速缓存数据21a的高速缓存线中。与存取相关的标签包括被存取的主存储器3中的地址等信息(例如地址值)。
数据高速缓存22在内部保持可以是CPU 1的处理目标的数据。所述数据不仅从主存储器3被读取,而且还在主存储器3中被重写或覆写。
数据高速缓存22中的数据被称作并且示出为高速缓存数据22a。响应于对应的CPU1对主存储器3的数据存取,与存取相关的标签、与存取相关的数据和用于指定与存取相关的锁的锁ID被关联并且被写入在高速缓存数据22a的高速缓存线中。与存取相关的锁是为了进行存取所获取的锁。锁和锁ID的细节将在后面描述。
数据高速缓存22包括ID设定寄存器22b。锁ID被设定到ID设定寄存器22b(值被写入在其中)。设定到ID设定寄存器22b的锁ID连同与存取相关的标签和数据一起被写入在相同的高速缓存存储器2(包括该ID设定寄存器22b的高速缓存存储器2)得高速缓存数据22a的高速缓存线中。
主存储器3是为多个CPU 1提供的随机存取存储器(RAM)。应当注意的是,图1将数据datA和数据datB示出为存储在主存储器3中的数据当中的可以是CPU 1的处理目标的数据。
信号量寄存器4通过信号量实施排他控制。信号量寄存器4为CPU 1提供用以在主存储器3中排他地存取数据的锁。为每一次存取提供锁以便锁定目标数据,比如对于数据datA的存取和对于数据datB的存取。前面描述的锁ID是用于指定锁的标识信息。基于连同锁一起提供的锁编号(例如信号量编号)来确定锁ID。锁编号例如是锁存在的存储器地址值。锁ID可以与锁编号相同或不同。
信号量寄存器4是排他控制机制的示例。可以使用信号量寄存器4之外的各种其他排他控制机制。排他控制机制的另一个示例是被配置为通过自旋锁实施排他控制、通过互斥锁的排他控制等等的排他控制机制。
CPU 1从信号量寄存器4获取锁,随后存取主存储器3中的数据。用于指定存取的锁的锁ID被设定到与进行了数据存取的CPU 1相关联的高速缓存存储器2的ID设定寄存器22b。只有已获取锁的CPU 1才能存取锁目标数据。
在完成数据存取之后,CPU 1释放所获取的锁。被设定到与CPU 1相关联的高速缓存存储器2的ID设定寄存器22b的锁ID被擦除(值被清空)。任意的CPU 1可以获取被释放的锁,并且存取该锁目标数据。
多个CPU 1中的每一个包括高速缓存存储器2并且共享主存储器3,因此存在缺少高速缓存一致性的问题。举例来说,当CPU 1-1存取主存储器3中的数据datA时,数据datA被写入在高速缓存存储器2-1的高速缓存线中。CPU 1-1对数据datA的后续存取不是对主存储器3中的数据datA进行,而是对写入在高速缓存存储器2-1的高速缓存线中的数据datA进行。
即使当CPU 1-2重写主存储器3中的数据datA时,写入在高速缓存存储器2-1的高速缓存线中的数据datA也不被重写。CPU 1-1仍然对写入在高速缓存存储器2-1的高速缓存线中的数据datA(重写之前的数据datA)进行存取。
为了避免这样的高速缓存一致性的缺少并且保持高速缓存一致性,必须刷新写入在高速缓存线中的数据。刷新也可以被理解为意味着擦除写入在高速缓存线中的数据并且覆写(写回)主存储器3中的该数据。
在根据所述实施例的信息处理设备100中,如前面所描述的那样,锁ID被写入在高速缓存存储器2的数据高速缓存22的高速缓存线中。使用所写入的锁ID来刷新高速缓存线。更具体来说,当对应的CPU 1之外的CPU 1获取基于写入在高速缓存线中的锁ID所指定的锁时,多个高速缓存存储器2中的每一个的数据高速缓存22的高速缓存线被刷新。
举例来说,刷新指令被发送到已获取锁的CPU 1之外的CPU 1,以便给出关于刷新在其中写入了与所述CPU 1所获取的锁的锁ID相关联的锁ID的高速缓存线的指令。对应的锁ID的示例是相同的锁ID。对应的锁ID的另一个示例是多个指定的锁当中的至少一部分的锁的重叠锁ID,并且将在后面参照图16进行描述。接收到刷新指令的CPU 1刷新对应的高速缓存存储器2的数据高速缓存22的各个高速缓存线当中的写入了对应的锁ID的高速缓存线。将参照图2到9对此进行更加具体的描述。
图2到9是示出信息处理设备的操作示例的视图。图2示意性地示出CPU 1-1获取锁并且设定锁ID。CPU 1-1获取用于排他地存取主存储器3中的数据datA的锁。如白色箭头所示,CPU 1-1从信号量寄存器4获取锁。锁编号也被获取。基于该锁编号确定的锁ID被称作锁ID“idA”。如黑色箭头所示,已获取锁的CPU 1-1将锁ID“idA”设定到高速缓存存储器2-1的ID设定寄存器22b。主存储器3中的数据datA被锁定,从而只允许CPU 1-1存取数据datA。
图3示意性地示出CPU 1-1发出刷新指令。已获取锁的CPU 1-1指示自身CPU之外的CPU 1(也就是该例中的CPU 1-2)实施刷新。用于给出关于刷新的指令的刷新指令被从CPU1-1发送到CPU 1-2。在该例中,刷新目标是写入了与被设定到高速缓存存储器2-1的ID设定寄存器22b的锁ID“idA”相同的锁ID的高速缓存线。在图3中的时间点,没有其中锁ID“idA”已被写入在与CPU 1-2相关联的高速缓存存储器2-2的数据高速缓存22中的高速缓存线。因此,不实施刷新。
图4示意性地示出CPU 1-1进行数据存取。如白色箭头所示,CPU 1-1存取主存储器3中的数据datA。与数据datA的存取相关的标签“tagA”、数据datA和锁ID“idA”被关联,并且被写入在高速缓存存储器2-1的数据高速缓存22的高速缓存线中。
图5示意性地示出CPU 1-1释放锁。如黑色箭头所示,CPU 1-1擦除被设定到高速缓存存储器2-1的ID设定寄存器22b的锁ID(清空值)。主存储器3中的数据datA被释放,以允许任意的CPU 1获取锁并且对数据datA进行存取。
图6示意性地示出CPU 1-2获取锁并且设定锁ID。CPU 1-2获取用于排他地存取主存储器3中所存储的数据datA的锁。如白色箭头所示,CPU 1-2从信号量寄存器4获取锁。锁编号也被获取。锁ID是类似于前面的锁ID“idA”。如黑色箭头所示,已获取锁的CPU 1-2将锁ID“idA”设定到高速缓存存储器2-2的ID设定寄存器22b。主存储器3中的数据datA被锁定,从而只允许CPU 1-2存取数据datA。
图7示意性地示出CPU 1-2发出刷新指令。已获取锁的CPU 1-2指示自身CPU之外的CPU 1(也就是该例中的CPU 1-1)实施刷新。刷新指令被从CPU 1-2发送到CPU 1-1。在该例中,刷新目标是写入了与被设定到高速缓存存储器2-2的ID设定寄存器22b的锁ID“idA”相同的锁ID的高速缓存线。如黑色箭头所示,接收到刷新指令的CPU 1-1刷新其中写入了锁ID“idA”的高速缓存存储器2-1的数据高速缓存22的高速缓存线。
图8示意性地示出CPU 1-2进行数据存取。如白色箭头所示,CPU1-2存取主存储器3中的数据datA。与数据datA的存取相关的标签“tagA”、数据datA和锁ID“idA”被关联,并且被写入在高速缓存存储器2-2的数据高速缓存22的高速缓存线中。
图9示意性地示出CPU 1-2释放锁。如黑色箭头所示,CPU 1-2擦除被设定到高速缓存存储器2-2的ID设定寄存器22b的锁ID。主存储器3中的数据datA被释放,以允许任意的CPU 1获取锁并且对数据datA进行存取。
举例来说,高速缓存线如前面所描述的那样被刷新。即使主存储器3中的数据datA被CPU 1-2的先前数据存取重写,仍然预先实施刷新,从而使得重写之前的数据datA不会留在与CPU 1-1相关联的高速缓存存储器2-1中。随后,当CPU 1-1对数据datA进行存取时,CPU1-1对主存储器3而不是高速缓存存储器2-1进行数据存取,也就是说对重写后的数据datA进行存取。因此,高速缓存一致性得以保持。
在信息处理设备100中,在数据存取之前获取锁的定时,只有其中写入了用于指定锁的锁ID的高速缓存线被刷新。例如与使用不断地监测数据存取的嗅探单元的情况相比,有可能减少监测负荷和与监测负荷相伴的功率消耗的可能性更高。信息处理设备100例如适合于安装在要求低功率消耗的物联网(IOT)设备等等上。
此外,当连续地存取相同的数据时,相同的CPU 1对对应的高速缓存存储器2进行数据存取,从而仍然有可能加速使用高速缓存存储器2的数据存取。
图10是示出由信息处理设备执行的处理(信息处理方法)的示例的流程图。图10示出从一个CPU 1的数据存取的起始到数据存取的结束所执行的一些处理。与前面的描述中重叠的内容的描述将被适当地省略。
在步骤S1中,CPU 1从信号量寄存器4获取用于排他地存取主存储器3中的数据的锁。
在步骤S2中,CPU 1将用于指定锁的锁ID设定到对应的高速缓存存储器2的ID设定寄存器22b。
在步骤S3中,CPU 1指示CPU 1自身(自身的CPU)之外的CPU 1实施刷新。刷新目标是其中例如写入了与先前的步骤S2中设定的锁ID相同的锁ID的高速缓存线。举例来说,刷新指令被发送。接收到刷新指令的CPU 1刷新对应的高速缓存存储器2的数据高速缓存22的各个高速缓存线当中的写入了相同的锁ID的高速缓存线。
在步骤S4中,CPU 1存取主存储器3中的数据。响应于数据存取,与存取相关的标签、数据和锁ID被关联,并且被写入在数据高速缓存22的高速缓存线中。
在步骤S5中,CPU 1擦除被设定到对应的高速缓存存储器2的ID设定寄存器22b的锁ID,并且释放锁。
2、修改示例
前面描述了所公开的技术的一个实施例。所公开的技术不限于前面的实施例。接下来将描述一些修改示例。
2.1、第一修改示例
一些处理可以由信号量寄存器4而不是CPU 1执行。所述处理的一部分由硬件(信号量寄存器4)执行,从而使得有可能减少软件(CPU 1)的处理负荷。举例来说,有可能加速处理的可能性更高。
可以由信号量寄存器4而不是CPU 1将锁ID设定到ID设定寄存器22b以及将刷新指令设定到CPU 1。将参照图11到图15对此进行描述。
图11到14是示出信息处理设备的操作示例的视图。图11示意性地示出CPU 1-1获取锁和信号量寄存器4设定锁ID。类似于前面描述的图2,CPU 1-1获取用于排他地存取主存储器3中所存储的数据datA的锁。锁编号也被获取。另一方面,在图11所示的示例中,如白色箭头所示,信号量寄存器4而不是CPU 1-1将锁ID“idA”设定到与已获取锁的CPU 1-1相关联的高速缓存存储器2-1的ID设定寄存器22b。
图12示意性地示出信号量寄存器4发出刷新指令。不同于前面描述的图3,在图12所示的示例中,信号量寄存器4(而不是已获取锁的CPU 1-1)指示已获取锁的CPU 1-1之外的CPU 1(也就是该例中的CPU 1-2)实施刷新。刷新指令被从信号量寄存器4发送到CPU 1-2。在该例中,刷新目标是其中写入了与被设定到高速缓存存储器2-1的ID设定寄存器22b的锁ID“idA”相同的锁ID的高速缓存线。在图12中的时间点,没有其中锁ID“idA”已被写入在与CPU 1-2相关联的高速缓存存储器2-2的数据高速缓存22中的高速缓存线。因此,不实施刷新。
图13示意性地示出CPU 1-2获取锁和信号量寄存器4设定锁ID。类似于前面描述的图6,CPU 1-2获取用于排他地存取主存储器3中所存储的数据datA的锁。另一方面,在图13所示的示例中,如白色箭头所示,信号量寄存器4而不是CPU 1-2将锁ID“idA”设定到与CPU1-2相关联的高速缓存存储器2-2的ID设定寄存器22b。
图14示意性地示出信号量寄存器4发出刷新指令。不同于前面描述的图7,在图14所示的示例中,信号量寄存器4(而不是已获取锁的CPU 1-2)指示已获取锁的CPU 1-2之外的CPU 1(也就是该例中的CPU 1-1)实施刷新。刷新指令被从信号量寄存器4发送到CPU 1-1。在该例中,刷新目标是其中写入了与被设定到高速缓存存储器2-2的ID设定寄存器22b的锁ID“idA”相同的锁ID的高速缓存线。如黑色箭头所示,接收到刷新指令的CPU 1-1刷新其中写入了锁ID“idA”的高速缓存存储器2-1的数据高速缓存22的高速缓存线。
图15是示出由信息处理设备执行的处理(信息处理方法)的示例的流程图。图15示出从一个CPU 1的数据存取的起始到数据存取的结束由CPU 1所执行的一些处理。
步骤S11中的处理与前面描述的图10中的步骤S1相同。CPU 1从信号量寄存器4获取用于排他地存取主存储器3中的数据的锁。
虽然在图15中未示出,由信号量寄存器4执行与前面描述的图10中的步骤S2和S3中的处理相同的处理。信号量寄存器4将用于指定锁的锁ID设定到与已获取锁的CPU 1相关联的高速缓存存储器2的ID设定寄存器22b。信号量寄存器4指示该CPU 1之外的CPU 1实施刷新。
步骤S12中的处理与前面描述的图10中的步骤S4中的处理相同。CPU 1存取主存储器中的数据。响应于数据存取,与存取相关的标签、数据和锁ID被关联,并且被写入在数据高速缓存22的高速缓存线中。
在步骤S13中,CPU 1释放锁。虽然在图15中未示出,信号量寄存器4擦除被设定到与该CPU 1相关联的高速缓存存储器2的ID设定寄存器22b的锁ID。
2.2、修改示例
为了存取主存储器3中的多个数据项目,可以获取多个锁。锁ID例如被指示为用以指定多个锁的比特字段。将参照图16对此进行更加具体的描述。
图16是示出用于指定多个锁的锁ID的示例的视图。以包括多个比特的比特字段来表示锁ID。应当注意的是,图16中所示的示例中的比特数是八个,但是可以根据锁的数量等等适当地设定比特数。
所述多个比特中的每一个指示对应的锁是否已被获取。在该例中,比特“1”指示对应的锁已被获取。比特“0”指示对应的锁未被获取。这样的比特字段也可以被称作比特标志。
多个锁基于每一个锁编号的散列值分别与多个比特中的一个比特相关联。举例来说,锁与基于该锁编号的散列值确定的比特编号的比特相关联的锁。
在图16所示的示例中,获取用于排他地存取数据datA的锁和用于排他地存取数据datB的锁。每一个锁的锁编号由信号量寄存器4提供。与数据datA相关联的锁编号被示意性地示出为锁编号“xxx”。与数据datB相关联的锁编号被示意性地示出为锁编号“yyy”。
通过对锁编号进行散列,散列单元5将比特字段中的一个比特设定到“1”(开启标志)。在该例中,散列单元5通过对锁编号“xxx”进行散列将第二比特设定到“1”。散列单元5通过对锁编号“yyy”进行散列将第六比特设定到“1”。通过这种方式获得的比特字段(也就是锁ID“01000100”)指定两个锁,即与数据datA相关联的锁和与数据datB相关联的锁。根据相同的原理,还可以指定三个或更多锁。
如前面所描述的那样,用于指定多个锁的锁ID被设定到高速缓存存储器2的ID设定寄存器22b。做出所述设定的主体可以是前面描述的CPU 1或信号量寄存器4,或者可以是散列单元5。
当然,散列单元5也可以是信息处理设备100的组件。散列单元5可以与CPU 1和信号量寄存器4分开提供,或者散列单元5的功能可以被合并在CPU 1和信号量寄存器4中。
如前面所描述的那样,给出针对其中写入了与CPU 1所获取的锁的锁ID相关联的锁ID的高速缓存线的刷新指令。如前面所描述的那样,在锁ID指定多个锁的情况下,对应的锁ID是将被指定的多个锁当中的至少一部分锁的重叠锁ID。当对应的CPU 1之外的CPU 1获取基于写入在高速缓存线中的锁ID所指定的多个锁当中的至少一个锁时,多个高速缓存存储器2中的每一个的高速缓存线被刷新。因此,即使当获取用于存取主存储器3中的多个数据项目的多个锁时,仍有可能保持高速缓存一致性。
2.3、其他
在前面的实施例中,作为多个CPU 1的示例描述了两个CPU 1,即CPU 1-1和CPU 1-2。但是CPU 1的数量可以是三个或更多。这对于高速缓存存储器2的数量同样适用。
如前面所描述的那样,作为排他控制机制,可以使用信号量寄存器4之外的其他各种已知的排他控制机制。
信息处理设备100例如被安装在电子设备等等上并且被使用。所述电子设备的示例是例如要求低功率消耗的IOT设备之类的设备。信息处理设备100被安装在其上的电子设备也是其中一个实施例。
3、效果的示例
例如如下规定前面描述的实施例。其中一种所公开的技术是信息处理设备100。如参照图1到16所描述的那样,信息处理设备100包括多个CPU 1、与多个CPU 1相关联的多个高速缓存存储器2和主存储器3。多个CPU 1中的每一个获取用于在主存储器3中排他地存取数据(例如数据datA和数据datB)的锁,并且随后存取数据。在多个高速缓存存储器2中的每一个的(数据高速缓存22的)高速缓存线中,与对应的CPU 1的存取相关的数据和用于指定与所述存取相关的锁的锁ID被关联和写入。当所述对应的CPU 1之外的CPU 1获取基于写入在高速缓存线中的锁ID所指定的锁时,多个高速缓存存储器2中的每一个的(数据高速缓存22的)高速缓存线被刷新。
在前面的信息处理设备100中,与对应的CPU 1的存取相关的数据和用于指定与存取相关的锁的锁ID被关联和写入在高速缓存线中。当对应的CPU 1之外的CPU 1获取基于写入在高速缓存线中的锁ID所指定的锁时,高速缓存线被刷新。通过以这种方式基于锁ID刷新高速缓存线,有可能保持高速缓存一致性。
根据前面的信息处理设备100,在数据存取之前获取锁的定时,只有其中写入了用于指定锁的锁ID的高速缓存线被刷新。例如与使用不断地监测数据存取的嗅探单元的情况相比,有可能减少功率消耗的可能性更高。信息处理设备100例如可以被安装在比如要求低功率消耗的IOT设备之类的电子设备上。有可能减少电子设备的功率消耗的可能性更高。
如参照图3、7、12和14等等所描述的那样,可以向已获取锁的CPU 1之外的CPU 1发送刷新指令,以便给出关于刷新其中写入了与所述CPU 1所获取的锁的锁ID相关联的锁ID的高速缓存线的指令。举例来说,通过这种方式有可能给出关于刷新的指令。
如参照图1、2、4、6、8、11和13等等所描述的那样,多个高速缓存存储器2中的每一个可以包括对其设定锁ID的ID设定寄存器22b,并且被设定到ID设定寄存器22b的锁ID可以被写入在相同的高速缓存存储器2的(数据高速缓存22的)高速缓存线中。例如通过使用该ID设定寄存器22b,有可能将锁ID写入在高速缓存线中。
如参照图2和6等等所描述的那样,获取了锁的CPU 1可以将锁ID设定到对应的高速缓存存储器2得ID设定寄存器22b。此外,如参照图3和7等等所描述的那样,获取了锁的CPU 1可以指示自身CPU之外的CPU 1实施刷新。因此,有可能通过软件处理设定锁ID和发出刷新指令。
如参照图1、11和13等等所描述的那样,信息处理设备100可以包括提供锁的排他控制机制(例如信号量寄存器4),所述排他控制机制可以将锁ID设定到与已获取锁的CPU 1相关联的高速缓存存储器2的ID设定寄存器22b。此外,如参照图12和14等等所描述的那样,所述排他控制机制可以指示已获取锁的CPU 1之外的CPU 1实施刷新。因此,有可能通过硬件处理设定锁ID和发出刷新指令。
如参照图16等等所描述的那样,以包括多个比特的比特字段来表示锁ID以指定多个锁,所述多个比特中的每一个可以指示所述多个锁当中的对应的锁是否已被获取。在这种情况下,多个锁可以基于每一个锁编号的散列值与多个比特当中的一个比特相关联。因此,即使当获取用于存取主存储器3中的多个数据项目的多个锁时,仍有可能保持高速缓存一致性。
参照图10和15所描述的信息处理方法也是所公开的技术的其中之一。所述信息处理方法包括:在多个CPU 1中的每一个处,获取用于在主存储器3中排他地存取数据(例如数据datA和数据datB)的锁,并且随后存取数据(例如在步骤S1、S4、S11和S12中);将与对应的CPU 1的存取相关的数据和用于指定与所述存取相关的锁的锁ID相关联,并且写入在与所述多个CPU 1相关联的多个高速缓存存储器2中的每一个的高速缓存线中(例如步骤S4和S12);以及当所述对应的CPU 1之外的CPU 1获取基于写入在高速缓存线中的锁ID所指定的锁时,刷新多个高速缓存存储器2中的每一个的高速缓存线(例如步骤S3)。如前面所描述的那样,这种信息处理方法也可以保持高速缓存一致性。
应当注意的是,本公开内容中所描述的效果仅仅是示例,并且不限于所公开的内容。可以有其他效果。
虽然前面描述了本公开内容的实施例,但是本公开内容的技术范围不限于前面所描述的实施例,在不背离本公开内容的主旨的情况下可以做出各种修改。此外,根据不同的实施例和修改示例的组件可以被适当地组合。
应当注意的是,根据本公开内容的技术还可以采用以下配置:
(1)一种信息处理设备,包括:
多个CPU;
与所述多个CPU相关联的多个高速缓存存储器;以及
主存储器,其中
多个CPU中的每一个获取用于排他地存取主存储器中的数据的锁,并且随后存取数据;
与对应的CPU的存取相关的数据和用于指定与所述存取相关的锁的锁ID被关联并且被写入在多个高速缓存存储器中的每一个的高速缓存线中;并且
当所述对应的CPU之外的CPU获取基于写入在高速缓存线中的锁ID所指定的锁时,多个高速缓存存储器中的每一个的高速缓存线被刷新。
(2)根据(1)的信息处理设备,其中,向已获取锁的CPU之外的CPU发送用于给出关于刷新在其中写入了与所述CPU所获取的锁的锁ID相关联的锁ID的高速缓存线的指令的刷新指令。
(3)根据(1)或(2)的信息处理设备,其中
所述多个高速缓存存储器中的每一个包括对其设定锁ID的ID设定寄存器;并且
被设定到ID设定寄存器的锁ID被写入在相同的高速缓存存储器的高速缓存线中。
(4)根据(3)的信息处理设备,其中
已获取锁的CPU将锁ID设定到对应的高速缓存存储器的ID设定寄存器。
(5)根据(1)到(4)中的任一项的信息处理设备,其中
已获取锁的CPU指示自身CPU之外的CPU实施刷新。
(6)根据(3)或引用(3)的(5)的信息处理设备,还包括:
提供锁的排他控制机制,其中
所述排他控制机制将锁ID设定到与已获取锁的CPU相关联的高速缓存存储器的ID设定寄存器。
(7)根据(1)到(4)和(6)中的任一项的信息处理设备,还包括:
提供锁的排他控制机制,其中
所述排他控制机制指示已获取锁的CPU之外的CPU实施刷新。
(8)根据(1)到(7)中的任一项的信息处理设备,其中
以包括多个比特的比特字段来表示锁ID,从而指定多个锁;并且
所述多个比特中的每一个指示是否已获取所述多个锁中的对应的锁。
(9)根据(8)中的任一项的信息处理设备,其中
所述多个锁基于每一个锁编号的散列值与所述多个比特中的一个比特相关联。
(10)根据(1)到(9)中的任一项的信息处理设备,其中,所述信息处理设备被安装在电子设备上。
(11)一种信息处理方法,包括:
在多个CPU中的每一个处,获取用于排他地存取主存储器中的数据的锁,并且随后存取数据;
将与对应的CPU的存取相关的数据和用于指定与所述存取相关的锁的锁ID相关联,并且写入在与所述多个CPU相关联的多个高速缓存存储器中的每一个的高速缓存线中;以及
当所述对应的CPU之外的CPU获取基于写入在高速缓存线中的锁ID所指定的锁时,刷新多个高速缓存存储器中的每一个的高速缓存线。
附图标记列表
1——CPU
2——高速缓存存储器
21——指令高速缓存
21a——高速缓存数据
22——数据高速缓存
22a——高速缓存数据
22b——ID设定寄存器
3——主存储器
4——信号量寄存器(排他控制机制)
5——散列单元
100——信息处理设备

Claims (11)

1.一种信息处理设备,包括:
多个CPU;
与所述多个CPU相关联的多个高速缓存存储器;以及
主存储器,其中
多个CPU中的每一个获取用于排他地存取主存储器中的数据的锁,并且随后存取数据;
与对应的CPU的存取相关的数据和用于指定与所述存取相关的锁的锁ID被关联并且被写入在多个高速缓存存储器中的每一个的高速缓存线中;并且
当所述对应的CPU之外的CPU获取基于写入在高速缓存线中的锁ID所指定的锁时,多个高速缓存存储器中的每一个的高速缓存线被刷新。
2.根据权利要求1所述的信息处理设备,其中,向已获取锁的CPU之外的CPU发送用于给出关于刷新在其中写入了与所述CPU所获取的锁的锁ID相关联的锁ID的高速缓存线的指令的刷新指令。
3.根据权利要求1所述的信息处理设备,其中
所述多个高速缓存存储器中的每一个包括对其设定锁ID的ID设定寄存器;并且
被设定到ID设定寄存器的锁ID被写入在相同的高速缓存存储器的高速缓存线中。
4.根据权利要求3所述的信息处理设备,其中
已获取锁的CPU将锁ID设定到对应的高速缓存存储器的ID设定寄存器。
5.根据权利要求1所述的信息处理设备,其中
已获取锁的CPU指示自身CPU之外的CPU实施刷新。
6.根据权利要求3所述的信息处理设备,还包括:
提供锁的排他控制机制,其中
所述排他控制机制将锁ID设定到与已获取锁的CPU相关联的高速缓存存储器的ID设定寄存器。
7.根据权利要求1所述的信息处理设备,还包括:
提供锁的排他控制机制,其中
所述排他控制机制指示已获取锁的CPU之外的CPU实施刷新。
8.根据权利要求1所述的信息处理设备,其中
以包括多个比特的比特字段来表示锁ID,从而指定多个锁,并且
所述多个比特中的每一个指示是否已获取所述多个锁中的对应的锁。
9.根据权利要求8所述的信息处理设备,其中
所述多个锁基于每一个锁编号的散列值与所述多个比特中的一个比特相关联。
10.根据权利要求1所述的信息处理设备,其中,所述信息处理设备被安装在电子设备上。
11.一种信息处理方法,包括:
在多个CPU中的每一个处,获取用于排他地存取主存储器中的数据的锁,并且随后存取数据;
将与对应的CPU的存取相关的数据和用于指定与所述存取相关的锁的锁ID相关联,并且写入在与所述多个CPU相关联的多个高速缓存存储器中的每一个的高速缓存线中;以及
当所述对应的CPU之外的CPU获取基于写入在高速缓存线中的锁ID所指定的锁时,刷新多个高速缓存存储器中的每一个的高速缓存线。
CN202280059026.6A 2021-09-07 2022-03-04 信息处理设备和信息处理方法 Pending CN117882056A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2021145665 2021-09-07
JP2021-145665 2021-09-07
PCT/JP2022/009370 WO2023037595A1 (ja) 2021-09-07 2022-03-04 情報処理装置及び情報処理方法

Publications (1)

Publication Number Publication Date
CN117882056A true CN117882056A (zh) 2024-04-12

Family

ID=85507329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280059026.6A Pending CN117882056A (zh) 2021-09-07 2022-03-04 信息处理设备和信息处理方法

Country Status (3)

Country Link
JP (1) JPWO2023037595A1 (zh)
CN (1) CN117882056A (zh)
WO (1) WO2023037595A1 (zh)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07262089A (ja) * 1994-03-17 1995-10-13 Fujitsu Ltd ロックアクセス制御方法および情報処理装置
JP2006276901A (ja) * 2005-03-25 2006-10-12 Nec Corp マルチプロセッサ計算機、そのキャッシュコヒーレンシ保証方法及びキャッシュコヒーレンシ保証プログラム

Also Published As

Publication number Publication date
JPWO2023037595A1 (zh) 2023-03-16
WO2023037595A1 (ja) 2023-03-16

Similar Documents

Publication Publication Date Title
US11119923B2 (en) Locality-aware and sharing-aware cache coherence for collections of processors
KR100954623B1 (ko) 무한 트랜잭션 메모리 시스템
US7376800B1 (en) Speculative multiaddress atomicity
US5043886A (en) Load/store with write-intent for write-back caches
US5228136A (en) Method and apparatus to maintain cache coherency in a multiprocessor system with each processor's private cache updating or invalidating its contents based upon set activity
US9690737B2 (en) Systems and methods for controlling access to a shared data structure with reader-writer locks using multiple sub-locks
JP3700787B2 (ja) セマフォ・バイパス法
EP2979189B1 (en) Storing data from cache lines to main memory based on memory addresses
US6564301B1 (en) Management of caches in a data processing apparatus
CN107408079B (zh) 带有一致单元的多级别系统存储器的存储器控制器
JP2010507160A (ja) データ処理装置の共有メモリへの書込みアクセス要求の処理
US9645931B2 (en) Filtering snoop traffic in a multiprocessor computing system
US7948498B1 (en) Efficient texture state cache
US7103720B1 (en) Shader cache using a coherency protocol
US20190026228A1 (en) Private caching for thread local storage data access
US9298628B2 (en) Shared op-symmetric update-sensitive variables
JP5129023B2 (ja) キャッシュメモリ装置
EP3295314A1 (en) Prefetch tag for eviction promotion
US20150100737A1 (en) Method And Apparatus For Conditional Storing Of Data Using A Compare-And-Swap Based Approach
CN117882056A (zh) 信息处理设备和信息处理方法
CN111078620A (zh) 具有软件-硬件共同管理的高速缓存系统的多核处理器
US10430343B2 (en) Acceleration of cache-to-cache data transfers for producer-consumer communication
US20050289300A1 (en) Disable write back on atomic reserved line in a small cache system
US10565121B2 (en) Method and apparatus for reducing read/write contention to a cache
US11409659B2 (en) Tags and data for caches

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication