用于数据处理的设备和方法与流程
未命名
08-03
阅读:75
评论:0

用于数据处理的设备和方法
1.本技术要求于2022年1月25日在韩国知识产权局提交的第10-2022-0010928号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
2.下面的描述涉及用于数据处理的设备和方法。
背景技术:
3.非统一存储器访问(non-uniform memory access,numa,又称为,非统一内存访问)系统已被采用,以缓解对称多处理(symmetric multiprocessing,smp)系统中的瓶颈。numa系统是在多处理器系统中使用的计算机存储器设计方法之一,并且在numa系统中访问存储器的时间可基于存储器与处理器之间的相对位置而变化。
4.由于针对配置numa系统的每个节点可允许存储器访问,因此该系统可具有用于并行处理的高效结构。然而,当配置该系统的节点或套接字(socket)之间的远程存储器访问被执行时,由于通过链路的访问,可能发生性能劣化。此外,在numa系统中,性能可受到远程存储器访问延迟可被最小化多少的显著影响。
5.在linux中,各种策略可被提供以高效地使用numa。用户可通过基于应用的特性修改numa策略来减少远程存储器访问。
6.使用混合内核的方法被提出以提高并行性能。可通过使用轻量级内核的无噪执行来提高性能,轻量级内核使用与linux系统隔离的存储器和内核。然而,在使用众核处理器(many-core processor)执行并行处理时,性能可能由于通过numa节点结构的远程存储器访问而劣化。
技术实现要素:
7.提供本发明内容以简要的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求保护的主题的关键特征或必要特征,也不意在用于帮助确定要求保护的主题的范围。
8.在一个总体方面,一种设备包括:存储器,被配置为存储数据;以及处理器。处理器被配置为:确定对数据的访问是否是本地存储器访问;基于确定对数据的访问是否是本地存储器访问的结果,确定是否发生所述访问的页错误;基于确定是否发生页错误的结果,确定所述访问是否是套接字外部的远程访问;以及基于确定所述访问是否是远程访问的结果,通过将数据复制到本地存储器上来执行对数据的访问。
9.存储器还可被配置为:基于页表来存储数据。
10.处理器还可被配置为:当所述访问是本地存储器访问时,执行本地存储器访问;以及当所述访问不是本地存储器访问时,确定是否发生页错误。
11.处理器还可被配置为:生成远程页表和与包括存储器的第一节点对应的页表;以及分配用于复制远程页的组块存储器。
12.处理器还可被配置为:当尚未发生页错误时,通过读取远程页表来执行本地存储器访问。
13.处理器还可被配置为:确定所述访问是包括存储器的第一节点中的本地存储器访问还是第一节点外部的远程存储器访问;以及确定所述访问是包括第一节点的第一套接字中的远程存储器访问还是对第一套接字外部的第二套接字的远程存储器访问。
14.处理器还可被配置为:当所述访问是对第二套接字的远程存储器访问时,将包括在第二套接字中的第二节点的第一页复制到第一节点中的远程存储器组块上。
15.处理器还可被配置为:响应于对第一页的附加远程访问请求,基于第一节点中的远程页表来确定第一页是否已被复制;以及基于第一页是否已被复制来执行本地存储器访问。
16.处理器还可被配置为:在读取序列中复制第二节点的第一页。
17.处理器还可被配置为:当所述访问是第一套接字外部的远程存储器访问时,用包括在第二套接字中的第二节点的物理存储器地址来更新远程页表。
18.处理器可被配置为:当所述访问是套接字中的远程存储器访问时,执行对套接字中的节点的远程存储器访问。
19.在另一总体方面,一种方法包括:确定对存储在存储器中的数据的访问是否是本地存储器访问;基于确定对所述数据的访问是否是本地存储器访问的结果,确定是否发生所述访问的页错误;基于是否发生页错误来确定所述访问是否是套接字外部的远程访问;以及基于确定所述访问是否是套接字外部的远程访问的结果,通过将所述数据复制到本地存储器上来执行对所述数据的访问。
20.数据可基于页表被存储。
21.确定是否发生页错误的步骤可包括:当所述访问是本地存储器访问时,执行本地存储器访问;以及当所述访问不是本地存储器访问时,确定是否发生页错误。
22.所述方法还可包括:生成远程页表和与包括所述存储器的第一节点对应的页表;以及分配用于复制远程页的组块存储器。
23.确定所述访问是否是远程访问的步骤可包括:当尚未发生页错误时,通过读取远程页表来执行本地存储器访问。
24.确定所述访问是否是远程访问的步骤还可包括:确定所述访问是包括所述存储器的第一节点中的本地存储器访问还是第一节点外部的远程存储器访问;以及确定所述访问是包括第一节点的第一套接字中的远程存储器访问还是对第一套接字外部的第二套接字的远程存储器访问。
25.确定所述访问是否是远程访问的步骤还可包括:当所述访问是对第二套接字的远程存储器访问时,将包括在第二套接字中的第二节点的第一页复制到第一节点中的远程存储器组块上。
26.执行对数据的访问的步骤可包括:响应于对第一页的附加远程访问请求,基于第一节点中的远程页表来确定第一页是否已被复制;以及基于第一页是否已被复制来执行本地存储器访问。
27.复制的步骤可在读取序列中被执行。
28.确定所述访问是否是远程访问的步骤还可包括:当所述访问是第一套接字外部的
远程存储器访问时,用包括在第二套接字中的第二节点的物理存储器地址来更新远程页表。
29.确定所述访问是否是远程访问的步骤还可包括:当所述访问是套接字中的远程存储器访问时,执行对套接字中的节点的远程存储器访问。
30.在另一总体方面,一种设备包括:处理器,被配置为:当请求的访问不是本地存储器访问时,确定是否发生请求的访问的页错误;当发生请求的访问的页错误时,确定请求的访问是否是套接字外部的远程存储器访问;以及当请求的访问是套接字外部的远程存储器访问时,将本地存储器分配给用于复制远程页的远程组块区域,并且执行远程存储器访问。
31.处理器还可被配置为:当请求的访问是套接字外部的远程存储器访问时,用包括在套接字外部的另一套接字中的节点的物理存储器地址来更新远程页表。
32.从下面的具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
附图说明
33.图1示出数据处理设备的示例。
34.图2示出套接字中或套接字外部的存储器访问的示例。
35.图3示出在套接字中执行远程存储器访问的操作的示例。
36.图4a和图4b示出在套接字外部执行远程存储器访问的操作的示例。
37.图5示出处理存储器访问的操作的示例。
38.图6示出图1的数据处理设备的操作的示例。
39.贯穿附图和具体实施方式,除非另外描述或提供,否则相同的附图参考标号将被理解为表示相同的元件、特征和结构。附图可不按比例绘制,并且为了清楚、说明和方便,附图中的元件的相对大小、比例和描绘可被夸大。
具体实施方式
40.提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本技术的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作顺序仅是示例,并不限于在此阐述的操作顺序,而是除了必须以特定次序发生的操作之外,可如在理解本技术的公开之后将是清楚地那样被改变。此外,为了更加清楚和简明,可省略在理解本技术的公开之后已知的特征的描述。
41.在此描述的特征可以以不同的形式被实现,而不应被解释为限于在此描述的示例。相反,在此描述的示例已被提供,以仅示出在理解本技术的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
42.贯穿说明书,当元件(诸如,层、区域或基底)被描述为“在”另一元件“上”、“连接到”或“结合到”另一元件时,它可直接“在”另一元件“上”、直接“连接到”或“结合到”另一元件,或者可存在介于它们之间的一个或多个其他元件。相反,当元件被描述为“直接在”另一元件“上”、“直接连接到”或“直接结合到”另一元件时,可不存在介于它们之间的其他元件。
43.如在此使用的,术语“和/或”包括相关所列项中的任何一个和任何两个或更多个的任何组合。
44.尽管在此可使用诸如“第一”、“第二”和“第三”的术语来描述各种构件、组件、区域、层或部分,但是这些构件、组件、区域、层或部分不受这些术语限制。相反,这些术语仅用于将一个构件、组件、区域、层或部分与另一构件、组件、区域、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区域、第一层或第一部分也可被称为第二构件、第二组件、第二区域、第二层或第二部分。
45.为了易于描述,在此可使用空间相对术语(诸如,“在
……
以上”、“上面的”、“在
……
以下”、“下面的”)来描述如在附图中示出的一个元件与另一元件的关系。这样的空间相对术语意在包含除了在附图中描绘的方位之外的使用或操作中的装置的不同方位。例如,如果附图中的装置被翻转,则被描述为另一元件“以上”或“上面”的元件其后将位于另一元件“以下”或“下面”。因此,取决于装置的空间方位,术语“在
……
以上”包含方位“在
……
以上”和“在
……
以下”两者。装置也可以以其他方式被定位(例如,旋转90度或在其他方位),并且在此使用的空间相对术语将被相应地解释。
46.在此使用的术语仅用于描述各种示例,而不用于限制公开。除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。术语“包括”、“包含”和“具有”表明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
47.由于制造技术和/或公差,可能发生在附图中示出的形状的变化。因此,在此描述的示例不限于在附图中示出的特定形状,而是包括在制造期间发生的形状的改变。
48.如在理解本技术的公开之后将是清楚的那样,在此描述的示例的特征可以以各种方式被组合。此外,尽管在此描述的示例具有各种配置,但是如在理解本技术的公开之后将是清楚的那样,其他配置是可行的。
49.除非另外定义,否则在此使用的所有术语(包括技术术语或科学术语)具有与本公开所属领域的普通技术人员通常理解的以及在理解本技术的公开之后的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的那些术语)应被解释为具有与它们在相关领域的上下文和本技术的公开中的含义一致的含义,并且将不以理想化或过于形式化的含义进行解释。
50.在下文中,将参照附图详细描述示例实施例。当参照附图描述示例实施例时,相同的参考标号表示相同的元件,并且将省略与其相关的重复描述。
51.本公开中的模块可以是可执行根据公开的功能和操作的硬件,可以是可执行预定功能和操作的计算机程序代码,或者可以是其中安装有可执行预定功能和操作的计算机程序代码的电子记录介质(例如,处理器或微处理器)。
52.换句话说,模块可以是用于执行公开的想法和技术范围的硬件、执行该硬件的软件的功能和/或结构组合。
53.图1示出数据处理设备的示例。
54.参照图1,数据处理设备10可处理数据。数据可以是以操作计算机系统的形式的符号或数字数据。数据处理设备10包括存储器100和处理器200。
55.数据处理设备10可控制针对存储在存储器100中的数据的访问方法。数据处理设备10可通过控制存储器访问方法来降低存储器访问成本。数据处理设备10可通过将与存储的数据对应的页复制到本地存储器来降低针对数据的存储器访问成本。在通过在多个块中
进行配置来操作虚拟存储器设备的方法中,页可以是具有预定大小的块。在此,注意的是,针对示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表明存在包括或实现这样的特征的至少一个示例或实施例,而所有示例和实施例不限于此。
56.存储器100可存储操作或操作结果的数据。存储器100存储可由处理器200执行的指令(或程序)。例如,指令包括用于执行处理器200的操作和/或处理器200的每个组件的操作的指令。
57.存储器100可被实现为易失性存储器装置或非易失性存储器装置。
58.易失性存储器装置可被实现为动态随机存取存储器(dram)、静态随机存取存储器(sram)、晶闸管ram(随机存取存储器)(t-ram)、零电容器ram(z-ram)或双晶体管ram(ttram)。
59.非易失性存储器装置可被实现为电可擦除可编程只读存储器(eeprom)、闪存、磁性ram(mram)、自旋转移力矩(stt)-mram、导电桥接式ram(cbram)、铁电ram(feram)、相变ram(pram)、电阻式ram(rram)、纳米管rram、聚合物ram(poram)、纳米浮栅存储器(nfgm)、全息存储器、分子电子存储器装置或绝缘体电阻变化存储器。
60.存储器100可存储数据。存储器100可基于页表来存储数据。页表可以是存储与页相关的信息的表。页表可具有页号作为索引,并且可包括分配给页的物理存储器的起始地址。
61.处理器200可处理存储在存储器100中的数据。处理器200可执行存储在存储器100中的计算机可读代码(例如,软件)和由处理器200触发的指令。
62.处理器200可以是由硬件实现的数据处理装置,该硬件包括具有用于执行期望的操作的物理结构的电路。例如,期望的操作可包括程序中的代码或指令。
63.例如,硬件实现的数据处理装置可包括微处理器、中央处理器(cpu)、处理器核、多核处理器、多处理器、专用集成电路(asic)和现场可编程门阵列(fpga)。
64.处理器200可确定对数据的访问是否是本地存储器访问。本地存储器访问可以是对节点中的存储器的访问。
65.处理器200可基于访问是否是本地存储器访问来确定是否已经发生对数据的访问的页错误。当程序试图访问可能存在于其地址空间中但不存在于系统的ram中的数据或代码时,可发生页错误。
66.当对数据的访问是本地存储器访问时,处理器200可执行本地存储器访问。当访问不是本地存储器访问时,处理器200可确定是否已经发生页错误。
67.处理器200可基于是否已经发生页错误来确定访问是否是套接字(socket)外部的远程访问。当尚未发生页错误时,处理器200可通过读取远程页表来执行本地存储器访问。
68.处理器200可基于访问是否是套接字外部的远程访问,通过将数据复制到本地存储器上来执行对数据的访问。
69.当存储器访问是套接字中的远程存储器访问时,处理器200可执行对套接字中的节点的远程存储器访问。
70.处理器200可确定访问是包括存储器100的第一节点中的本地存储器访问还是第一节点外部的远程存储器访问。处理器200可确定访问是包括第一节点的第一套接字中的远程存储器访问还是对位于第一套接字外部的第二套接字的远程存储器访问。
71.当访问是对第二套接字的远程存储器访问时,处理器200可将包括在第二套接字中的第二节点的第一页复制到第一节点中的远程存储器组块(chunk)上。
72.当对数据的访问是第一套接字外部的远程存储器访问时,处理器200可用包括在第二套接字中的第二节点的物理存储器地址来更新远程页表。
73.处理器200可生成远程页表和与包括存储器100的第一节点对应的页表。处理器200可通过分配用于复制远程页的组块存储器来执行分块(chunking)。
74.当处理器200另外接收到对第一页的远程访问请求时,处理器200可基于第一节点中的远程页表来确定第一页是否已被复制。处理器200可基于第一页是否已被复制来执行本地存储器访问。
75.复制可在读取序列中被执行。
76.图2示出套接字中或套接字外部的存储器访问的示例,图3示出在套接字中执行远程存储器访问的操作的示例,图4a和图4b示出在套接字外部执行远程存储器访问的操作的示例。
77.参照图2至图4b,在包括多个套接字的数据处理系统(例如,numa)中,处理器(例如,图1的处理器200)可通过最少化套接字之间的远程存储器访问来提高存储器性能。处理器200可通过在轻量级内核(lwk)中执行页复制来最少化远程存储器访问并提高存储器性能。
78.为了执行lwk应用程序,可使用由操作系统(例如,linux)分配的核(core)(例如,核c0至c31)和存储器(例如,图1的存储器100)。由于当在同一节点中执行本地存储器访问时存储器访问速度快,因此当接收资源时,如果可行的话,处理器200可通过从同一节点接收资源来使用资源。
79.然而,由于在多线程中多个核被使用,因此性能可能由于对套接字外部的存储器或不同节点的远程存储器访问而下降。套接字外部的远程存储器访问可能需要比套接字中的远程存储器访问高的存储器访问成本。此外,套接字中的频繁的远程页复制可劣化数据处理系统的性能。
80.当在读取数据的读取序列中发生远程存储器访问时,处理器200可确定远程访问是套接字中的访问还是套接字外部的访问。通过仅在远程访问是套接字外部的远程存储器访问的情况下将远程存储器页复制到本地存储器页上,当对与复制的页相同的页执行附加访问时,处理器200可通过从本地存储器区域读取复制的页来执行本地存储器访问。换句话说,处理器200可通过将远程存储器页复制到本地存储器页上来降低附加的存储器访问成本,从而提高数据处理系统的性能。
81.为了在lwk中执行页复制,处理器200可在通过从操作系统接收存储器100的数据来生成存储器区域的页表的同时另外生成远程页表。由于处理器200可针对每个节点接收存储器100的数据,因此处理器200可在生成每个节点的页表时生成每个节点的远程页表。在一个节点中,存储器100可以以多个组块为单位被分配。处理器200可另外接收可执行页复制的节点中的远程存储器的组块。
82.当在lwk中运行应用程序时,可发生两种类型的存储器访问。一种可以是节点中的本地存储器访问,另一种可以是节点外部的远程存储器访问。可在不修改的情况下执行使用节点中的存储器100和核的本地存储器访问,并且当执行核访问节点外部的存储器的远
215)的第一套接字(例如,套接字0 210)中的远程存储器访问还是对第一套接字外部的第二套接字(例如,套接字1 230)的远程存储器访问。
99.当访问是对第二套接字的远程存储器访问时,处理器200可将包括在第二套接字中的第二节点(例如,节点6 235)的第一页(例如,页1)复制到第一节点中的远程存储器组块上。
100.当对数据的访问是第一套接字外部的远程存储器访问时,处理器200可用包括在第二套接字中的第二节点的物理存储器地址来更新远程页表。
101.在图4a的示例中,当节点2 215的核411尝试访问不在节点2的页表(例如,lwk页表)413上的数据时,处理器200可通过节点6 235的页表(例如,lwk页表)433用节点6的物理存储器435的地址更新节点2的远程页表(例如,lwk远程页表)415,并且可将节点6的物理存储器435的数据复制到节点2的物理存储器417上,其中,页表433可例如包括第一页(例如,页1)和第二页(例如,页2),431表示节点6的核。
102.处理器200可生成远程页表和与包括存储器100的第一节点对应的页表。处理器200可分配用于复制远程页的组块存储器。
103.当处理器200另外接收到对第一页的远程访问请求时,处理器200可基于第一节点中的远程页表来确定第一页是否已被复制。处理器200可基于第一页是否已被复制来执行本地存储器访问。
104.在图4b的示例中,当接收到“对复制到节点2的物理存储器417上的复制的数据的访问”的附加请求时,处理器200可基于节点2 215的远程页表415来确定数据是否已被复制,并且可在数据是复制到节点2的物理存储器417上的数据时执行本地存储器访问。
105.图5示出处理存储器访问的操作的示例。
106.参照图5,图5的流程图可以是在套接字结构中配置的当在numa节点中的套接字之间发生远程存储器访问时的流程图。当处理器(例如,图1的处理器200)将远程存储器的页复制到本地节点中的存储器上,然后接收到对同一页的远程存储器访问请求时,处理器200可通过参考本地节点中的远程页表,以与本地存储器访问相同的方法访问存储器。
107.在操作511中,处理器200可接收对数据的访问(例如,numa存储器访问)的请求。在操作513中,处理器200可确定访问是否是本地存储器访问。在操作515中,当访问是本地存储器访问时,处理器200可执行本地存储器访问。
108.在操作517中,当访问不是本地存储器访问时,处理器200可确定是否已经发生页错误。在操作519中,当尚未发生页错误时,处理器200可读取远程页表。在操作515中,处理器200可通过读取远程页表来执行本地存储器访问。
109.在操作521中,当已经发生页错误时,处理器200可确定对数据的访问是否是套接字外部的远程存储器访问。在操作523中,当对数据的访问不是套接字外部的远程存储器访问时,处理器200可执行远程存储器访问。
110.在操作525中,当对数据的访问是套接字外部的远程存储器访问时,处理器200可将本地存储器分配给远程组块区域。在操作527中,处理器200可将远程numa页从远程存储器复制到本地存储器上。在操作529中,处理器200可更新lwk远程页表。在操作531中,处理器200可更新lwk页表。在操作523中,处理器200可基于更新的页表来执行远程存储器访问,例如,处理器200可通过基于更新的页表执行本地存储器访问,来执行远程存储器访问。
111.通过上述数据处理过程,处理器200可通过在没有修改的情况下在存储器访问成本相对低的套接字中执行远程存储器访问来防止频繁的页复制,并且可减轻由于存储器访问成本相对高的套接字之间的重复的远程存储器访问而导致的性能劣化。
112.换句话说,由于套接字外部的远程存储器访问具有高延迟,因此处理器200可通过确定访问是否是存储器访问成本高的套接字外部的远程存储器访问,通过执行远程页复制来高效地执行存储器访问。
113.图6示出图1的数据处理设备的操作的示例。
114.参照图6,在操作610中,处理器(例如,图1的处理器200)可确定对数据的访问是否是本地存储器访问。
115.在操作630中,处理器200可基于访问是否是本地存储器访问来确定是否已经发生对数据的访问的页错误。
116.当对数据的访问是本地访问时,处理器200可执行本地存储器访问。当访问不是本地访问时,处理器200可确定是否已经发生页错误。
117.在操作650中,处理器200可基于是否已经发生页错误来确定访问是否是套接字外部的远程访问。当尚未发生页错误时,处理器200可通过读取远程页表来执行本地存储器访问。
118.在操作670中,处理器200可基于访问是否是套接字外部的远程访问,通过将数据复制到本地存储器上来执行对数据的访问。
119.当存储器访问是套接字中的远程存储器访问时,处理器200可执行对套接字中的节点的远程存储器访问。
120.处理器200可确定访问是包括存储器100的第一节点中的本地存储器访问还是第一节点外部的远程存储器访问。处理器200可确定访问是包括第一节点的第一套接字中的远程存储器访问还是对第一套接字外部的第二套接字的远程存储器访问。
121.当访问是对第二套接字的远程存储器访问时,处理器200可将包括在第二套接字中的第二节点的第一页复制到第一节点中的远程存储器组块上。
122.当对数据的访问是第一套接字外部的远程存储器访问时,处理器200可用包括在第二套接字中的第二节点的物理存储器地址来更新远程页表。
123.处理器200可生成远程页表和与包括存储器100的第一节点对应的页表。处理器200可分配用于复制远程页的组块存储器。
124.当处理器200另外接收到对第一页的远程访问请求时,处理器200可基于第一节点中的远程页表来确定第一页是否已被复制。处理器200可基于第一页是否已被复制来执行本地存储器访问。
125.复制可在读段序列中被执行。
126.仅作为非穷举性示例,如在此所描述的设备、数据处理设备和数据处理系统可以是移动装置(诸如,蜂窝电话、智能电话)、可穿戴智能装置(诸如,戒指、手表、一副眼镜、手镯、脚镯、腰带、项链、耳环、头带、头盔或嵌入衣服中的装置)、便携式个人计算机(pc)(诸如,膝上型计算机、笔记本、小型笔记本、上网本、或超移动pc(umpc)、平板pc(平板电脑)、平板手机、个人数字助理(pda)、数码相机、便携式游戏机、mp3播放器、便携式/个人多媒体播放器(pmp)、手持式电子书、全球定位系统(gps)导航装置或传感器)或固定装置(诸如,台式
pc、高清电视(hdtv)、dvd播放器、蓝光播放器、机顶盒或家用电器)、或被配置为执行无线或网络通信的任何其他移动装置或固定装置。在一个示例中,可穿戴装置是被设计为可直接佩戴在用户身体上的装置(诸如,一副眼镜或手镯)。在另一示例中,可穿戴装置是使用附接装置佩戴在用户身体上的任何装置(诸如,使用臂带附接到用户的手臂或使用挂绳悬挂在用户颈部周围的智能电话或平板电脑)。
127.图1至图6中的执行在本技术中描述的操作的设备、数据处理设备和数据处理系统由硬件组件实现,硬件组件被配置为执行在本技术中描述的由硬件组件执行的操作。可用于执行在本技术中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑单元、加法器、减法器、乘法器、除法器、积分器以及被配置为执行在本技术中描述的操作的任何其他电子组件。在其他示例中,通过计算硬件(例如,通过一个或多个处理器或计算机)来实现执行在本技术中描述的操作的硬件组件中的一个或多个硬件组件。处理器或计算机可由一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本技术中描述的操作的指令或软件(诸如,操作系统(os)和在os上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简明,单数术语“处理器”或“计算机”可用于在本技术中描述的示例的描述中,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件、或多种类型的处理元件、或两者。例如,单个硬件组件、或者两个或更多个硬件组件可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可由一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可由一个或多个其他处理器、或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件、或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任何一个或多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(sisd)多处理、单指令多数据(simd)多处理、多指令单数据(misd)多处理、以及多指令多数据(mimd)多处理。
128.图1至图6中示出的执行在本技术中描述的操作的方法由计算硬件(例如,由一个或多个处理器或计算机)执行,计算硬件被实现为如上所述执行指令或软件以执行在本技术中描述的由所述方法执行的操作。例如,单个操作、或者两个或更多个操作可由单个处理器、或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可由一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可由一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作、或者两个或更多个操作。
129.用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任何组合,以单独地或共同地指示或配置一个或多个处理器或计算机作为机器或专用计算机进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或
多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及说明书中的相应描述使用任何编程语言来编写指令或软件,附图中示出的框图和流程图以及说明书中的相应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
130.用于控制计算硬件(例如,一个或多个处理器或计算机)以实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中,或者可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括只读存储器(rom)、随机存取存储器(ram)、闪存、cd-rom、cd-r、cd+r、cd-rw、cd+rw、dvd-rom、dvd-r、dvd+r、dvd-rw、dvd+rw、dvd-ram、bd-rom、bd-r、bd-r lth、bd-re、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘以及任何其他装置,任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构,并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器或计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令或软件以及任何相关联的数据、数据文件和数据结构以分布式方式被一个或多个处理器或计算机存储、访问和执行。
131.虽然本公开包括特定示例,但是在理解本技术的公开之后将清楚的是,在不脱离权利要求及其等同物的精神和范围的情况下,可在这些示例中进行形式和细节上的各种改变。在此描述的示例应仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述应被认为可适用于其他示例中的相似特征或方面。如果描述的技术以不同的顺序执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合、和/或由其他组件或其等同物替代或补充,则可实现合适的结果。因此,公开的范围不是由具体实施方式限定,而是由权利要求及其等同物限定,并且在权利要求及其等同物的范围内的所有变化应被解释为被包括在公开中。
技术特征:
1.一种用于数据处理的设备,包括:存储器,被配置为存储数据;以及处理器,被配置为:确定对数据的访问是否是本地存储器访问;基于确定对数据的访问是否是本地存储器访问的结果,确定是否发生所述访问的页错误;基于确定是否发生页错误的结果,确定所述访问是否是套接字外部的远程访问;以及基于确定所述访问是否是所述远程访问的结果,通过将数据复制到本地存储器上来执行对数据的访问。2.根据权利要求1所述的设备,其中,存储器还被配置为:基于页表来存储数据。3.根据权利要求1所述的设备,其中,处理器还被配置为:当访问是本地存储器访问时,执行本地存储器访问;以及当访问不是本地存储器访问时,确定是否发生页错误。4.根据权利要求1所述的设备,其中,处理器还被配置为:生成远程页表和与包括所述存储器的第一节点对应的页表;以及分配用于复制远程页的组块存储器。5.根据权利要求4所述的设备,其中,处理器还被配置为:当尚未发生页错误时,通过读取远程页表来执行本地存储器访问。6.根据权利要求1至5中的任一项所述的设备,其中,处理器还被配置为:确定所述访问是包括所述存储器的第一节点中的本地存储器访问还是第一节点外部的远程存储器访问;以及确定所述访问是包括第一节点的第一套接字中的远程存储器访问还是对第一套接字外部的第二套接字的远程存储器访问。7.根据权利要求6所述的设备,其中,处理器还被配置为:当访问是对第二套接字的远程存储器访问时,将包括在第二套接字中的第二节点的第一页复制到第一节点中的远程存储器组块上。8.根据权利要求7所述的设备,其中,处理器还被配置为:响应于对第一页的附加远程访问请求,基于第一节点中的远程页表来确定第一页是否已被复制;以及基于第一页是否已被复制来执行本地存储器访问。9.根据权利要求8所述的设备,其中,处理器还被配置为:在读取序列中复制第二节点的第一页。10.根据权利要求6所述的设备,其中,处理器还被配置为:当所述访问是第一套接字外部的远程存储器访问时,用包括在第二套接字中的第二节点的物理存储器地址来更新远程页表。11.根据权利要求1至5中的任一项所述的设备,其中,处理器被配置为:当所述访问是套接字中的远程存储器访问时,执行对套接字中的节点的远程存储器访问。12.一种用于数据处理的方法,包括:确定对存储在存储器中的数据的访问是否是本地存储器访问;
基于确定对所述数据的访问是否是本地存储器访问的结果,确定是否发生所述访问的页错误;基于是否发生页错误,确定所述访问是否是套接字外部的远程访问;以及基于确定所述访问是否是套接字外部的远程访问的结果,通过将所述数据复制到本地存储器上来执行对所述数据的访问。13.根据权利要求12所述的方法,其中,所述数据基于页表被存储。14.根据权利要求12所述的方法,其中,确定是否发生页错误的步骤包括:当所述访问是本地存储器访问时,执行本地存储器访问;以及当所述访问不是本地存储器访问时,确定是否发生页错误。15.根据权利要求12所述的方法,还包括:生成远程页表和与包括所述存储器的第一节点对应的页表;以及分配用于复制远程页的组块存储器。16.根据权利要求15所述的方法,其中,确定所述访问是否是远程访问的步骤包括:当尚未发生页错误时,通过读取远程页表来执行本地存储器访问。17.根据权利要求12至16中的任一项所述的方法,其中,确定所述访问是否是远程访问的步骤还包括:确定所述访问是包括所述存储器的第一节点中的本地存储器访问还是第一节点外部的远程存储器访问;以及确定所述访问是包括第一节点的第一套接字中的远程存储器访问还是对第一套接字外部的第二套接字的远程存储器访问。18.根据权利要求12至16中的任一项所述的方法,其中,确定所述访问是否是远程访问的步骤还包括:当所述访问是套接字中的远程存储器访问时,执行对套接字中的节点的远程存储器访问。19.一种用于数据处理的设备,包括:处理器,被配置为:当请求的访问不是本地存储器访问时,确定是否发生请求的访问的页错误;当发生请求的访问的页错误时,确定请求的访问是否是套接字外部的远程存储器访问;以及当请求的访问是套接字外部的远程存储器访问时,将本地存储器分配给用于复制远程页的远程组块区域,并且执行远程存储器访问。20.根据权利要求19所述的设备,其中,处理器还被配置为:当请求的访问是套接字外部的远程存储器访问时,用包括在套接字外部的另一套接字中的节点的物理存储器地址来更新远程页表。
技术总结
公开了用于数据处理的设备和方法。一种设备包括:存储器,被配置为存储数据;以及处理器。处理器被配置为:确定对数据的访问是否是本地存储器访问;基于确定对数据的访问是否是本地存储器访问的结果,确定是否发生所述访问的页错误;基于确定是否发生页错误的结果,确定所述访问是否是套接字外部的远程访问;以及基于确定所述访问是否是远程访问的结果,通过将数据复制到本地存储器上来执行对数据的访问。问。问。
技术研发人员:赵成德 金露丝 柳东旭 李在源
受保护的技术使用者:三星电子株式会社
技术研发日:2022.12.16
技术公布日:2023/8/1
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/