CN117632778A - 电子装置和操作电子装置的方法 - Google Patents
电子装置和操作电子装置的方法 Download PDFInfo
- Publication number
- CN117632778A CN117632778A CN202311079814.4A CN202311079814A CN117632778A CN 117632778 A CN117632778 A CN 117632778A CN 202311079814 A CN202311079814 A CN 202311079814A CN 117632778 A CN117632778 A CN 117632778A
- Authority
- CN
- China
- Prior art keywords
- memory
- address
- pim
- request
- physical
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 230000015654 memory Effects 0.000 claims abstract description 784
- 238000012545 processing Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 9
- 238000013507 mapping Methods 0.000 description 13
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013316 polymer of intrinsic microporosity Substances 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Abstract
电子装置和操作电子装置的方法被公开。所述电子装置包括:主机处理器,被配置为生成存储器请求和存储器地址,存储器地址被映射到目标存储器模式并且被映射到存储器请求将被施加到的物理存储器地址,目标存储器模式是可用存储器模式中的任何一个;存储器控制器,被配置为基于从主机处理器接收到的存储器请求和存储器地址根据被映射到存储器地址的目标存储器模式来生成物理存储器地址和命令;以及存储器,被配置为在物理存储器地址执行从存储器控制器接收到的命令。
Description
本申请要求于2022年8月26日提交到韩国知识产权局的第10-2022-0107826号韩国专利申请和于2023年4月3日提交到韩国知识产权局的第10-2023-0043495号韩国专利申请的权益,所述韩国专利申请的全部公开出于所有目的通过引用包含于此。
技术领域
以下描述涉及具有使用存储器地址空间的扩展的存储器请求处理的装置和方法。
背景技术
典型的半导体存储器装置与被配置为执行操作的处理器分离。执行应用(诸如,神经网络、大数据、物联网(IoT)等)的系统可处理对大量数据进行的操作,并且由于大量数据在系统中的半导体存储器装置与处理器之间被发送和接收,因此当这样做时可经历瓶颈。为了解决这样的问题,在将存储器功能与执行操作的处理器的功能组合的存储器中处理(processing in memory,PIM)半导体存储装置方面进行了努力。
发明内容
提供本发明内容来以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确认要求保护的主题的关键特征或必要特征,也不意在用于帮助确定要求保护的主题的范围。
在一个总体方面中,电子装置包括:主机处理器,被配置为生成存储器请求和存储器地址,存储器地址被映射到目标存储器模式并且被映射到存储器请求将被施加到的物理存储器地址,目标存储器模式是可用存储器模式中的任何一个;存储器控制器,被配置为基于从主机处理器接收到的存储器请求和存储器地址根据被映射到存储器地址的目标存储器模式来生成物理存储器地址和命令;以及存储器,被配置为在物理存储器地址执行从存储器控制器接收到的命令。
存储器模式中的一个可以是正常存储器,并且存储器模式中的另一个可以是存储器中处理(PIM)。
主机处理器可被配置为:根据在物理存储器地址通过存储器请求执行的命令的存储器模式来生成不同的存储器地址。
主机处理器还可被配置为:响应于目标存储器模式指示存储器中处理(PIM)来生成映射到目标存储器模式和物理存储器地址的扩展物理存储器地址。
主机处理器可被配置为:使用包括在关于存储器的物理地址中的未使用的位来表示扩展物理存储器地址。
存储器地址可基于目标存储器模式与对应于存储器的物理地址空间的对应或者与适用于存储器模式之中的指示存储器中处理(PIM)的存储器模式的存储器请求的模式的数量的扩展地址空间的对应,而被确定。
物理地址空间可被映射到作为正常存储器操作存储器模式,并且扩展物理地址空间可被映射到作为PIM操作的存储器模式。
主机处理器可被配置为:响应于目标存储器模式指示存储器中处理(PIM),将存储器请求和存储器地址发送到存储器控制器,使得存储器请求不能用对高速缓存的访问来实现。
主机处理器可被配置为:响应于目标存储器模式指示存储器模式之中的正常存储器,将存储器地址确定为与物理存储器地址相同。
主机处理器可被配置为:响应于目标存储器模式指示正常存储器,根据应用的请求来检查数据是否可在高速缓存中,并且当数据可不在高速缓存中时,将存储器请求和存储器地址发送到存储器控制器。
主机处理器可被配置为:响应于目标存储器模式指示正常存储器并且存储器中处理(PIM)操作结果被存储在物理存储器地址,根据应用的请求来检查PIM操作结果是否在高速缓存中,并且当PIM操作结果可不在所述高速缓存中时,将存储器请求和存储器地址发送到存储器控制器。
存储器可被配置为:根据命令在物理存储器地址执行正常存储器操作或存储器中处理(PIM)操作。
在一个总体方面,操作电子装置的方法包括:通过包括在电子装置中的主机处理器来生成存储器请求和对应的存储器地址,对应的存储器地址被映射到包括在电子装置中的存储器模式之中的目标存储器模式并且被映射到存储器请求将被施加到的物理存储器地址;基于从主机处理器接收到的存储器请求和存储器地址,根据目标存储器模式通过包括在电子装置中的存储器控制器来生成物理存储器地址和命令;以及通过包括在电子装置中的存储器在物理存储器地址执行从存储器控制器接收到的命令。
存储器模式中的每个可指示正常存储器或存储器中处理(PIM)中的任何一个。
生成存储器请求和存储器地址的步骤可包括根据通过存储器请求在物理存储器地址执行的命令的来生成不同的存储器地址。
生成存储器请求和存储器地址的步骤可包括:响应于目标存储器模式指示存储器中处理(PIM),使用为扩展物理存储器地址保留的位来生成扩展物理存储器地址。
在一个总体方面,计算装置执行方法,计算装置包括存储器,存储器包括存储器中处理(PIM)存储器和非PIM存储器,所述方法包括:接收访问存储器的相应地址的存储器访问请求,每个地址包括相应位,其中,每个地址的位的第一部分可被保留用于访问PIM存储器的PIM请求,并且其中,每个地址的位的第二部分可被用作访问请求的存储器地址;针对每个存储器访问请求,基于对应地址的位的所述第一部分来确定访问PIM存储器中的还是非PIM存储器中的对应地址。
PIM存储器可被配置为:对存储在PIM存储器中的数据执行乘法和累加(MAC)运算,并且其中,存储器访问请求中的一些调用MAC运算。
所述方法还可包括:针对每个存储器访问请求,确定存储器访问请求是否可以是PIM存储器访问请求;针对确定为PIM存储器访问请求的存储器访问请求,将对应地址的位的所述第一部分设置为指示地址可被用于PIM存储器访问请求。
相同的地址可由不同的存储器访问请求使用以访问PIM存储器并且访问非PIM存储器,其中,针对对PIM存储器的访问,存储器高速缓存可被禁止,并且其中,针对对非PIM存储器的访问,存储器高速缓存可不被禁止。
在一个总体方面,一种电子装置包括:存储器,包括数据存储空间和用于执行逻辑运算和/或算术运算的内部处理器;主机处理器,被配置为生成指示对存储器中处理(PIM)操作和正常存储器操作中的任何一个的请求的第一存储器地址,其中,PIM操作使用内部处理器和存储器中的数据存储空间,而正常存储器操作也使用所述数据存储空间但不使用内部处理器;存储器控制器,被配置为生成命令和将由命令访问的数据存储空间的第二存储器地址,并且将生成的命令和第二存储器地址发送到存储器,其中,命令执行存储器中的PIM操作或正常存储器操作中的哪一个取决于从主机处理器接收到的第一存储器地址。第一存储器地址通过使用除了表示数据存储空间的第二存储器地址所必需的位之外的一个或多个位来指示PIM操作和正常存储器操作中的任何一个。
第一存储器地址可在所述一个或多个位被使用时指示PIM操作,并且在所述一个或多个位不被使用时指示正常存储器操作。
主机处理器可被配置为响应于第一存储器地址指示对PIM操作的请求,将第一存储器地址发送到存储器控制器而不访问高速缓存。
当第一存储器地址指示对正常存储器操作的请求时,第一存储器地址可与第二存储器地址相同。
从下面的具体实施方式、附图以及权利要求,其他特征和方面将是清楚的。
附图说明
图1示出根据一个或多个实施例的电子装置的示例。
图2示出根据一个或多个实施例的存储器地址映射关系的示例。
图3示出根据一个或多个实施例的基于存储器地址根据存储器请求执行命令操作的示例。
图4示出根据一个或多个实施例的物理存储器地址的示例。
图5示出根据一个或多个实施例的虚拟存储器地址的示例。
图6示出根据一个或多个实施例的操作电子装置的示例。
图7示出根据一个或多个实施例的操作电子装置的示例。
图8示出根据一个或多个实施例的对同一存储器区域的各种访问的示例。
图9示出根据一个或多个实施例的操作电子装置的方法的示例。
贯穿附图和具体实施方式,除非另外描述或提供,否则相同或类似的附图参考标号将被理解为表示相同或类似的元件、特征和结构。附图可不按比例,并且为了清楚、说明和方便,附图中的元件的相对尺寸、比例和描绘可被夸大。
具体实施方式
提供下面的具体实施方式以帮助读者获得对在此描述的方法、设备和/或系统的全面理解。然而,在理解本申请的公开之后,在此描述的方法、设备和/或系统的各种改变、修改和等同物将是清楚的。例如,在此描述的操作的顺序仅是示例,并且不限于在此阐述的那些顺序,而是除了必须以特定的顺序发生的操作之外,可如在理解本申请的公开之后将是清楚的那样被改变。此外,为了增加的清楚和简明,可省略在本申请的公开的理解之后已知的特征的描述。
在此描述的特征可以以不同的形式来实现,而不被解释为限于在此描述的示例。相反,在此描述的示例已仅被提供,以示出在理解本申请的公开之后将是清楚的实现在此描述的方法、设备和/或系统的许多可行方式中的一些可行方式。
在此使用的术语仅用于描述各种示例,并不用于限制公开。除非上下文另外清楚地指示,否则单数形式的冠词也意在包括复数形式。如在此使用的,术语“和/或”包括相关联的所列项中的任何一个和任何两个或更多个的任何组合。作为非限制性示例,术语“包含”、“包括”和“具有”说明存在陈述的特征、数量、操作、构件、元件和/或它们的组合,但不排除存在或添加一个或多个其他特征、数量、操作、构件、元件和/或它们的组合。
贯穿说明书,当组件或元件被描述为“连接到”、“结合到”或“接合到”另一组件或元件时,该组件或元件可直接“连接到”、“结合到”或“接合到”该另一组件或元件,或者可合理地存在介于其间的一个或多个其他组件或元件。当组件或元件被描述为“直接连接到”、“直接结合到”或“直接接合到”另一组件或元件时,可不存在介于其间的其他元件。同样地,例如“在……之间”和“紧接在……之间”以及“与……邻近”和“与……紧邻”的表述也可如前所述来解释。
尽管在此可使用诸如“第一”、“第二”和“第三”、或A、B、(a)、(b)等的术语来描述各种构件、组件、区、层或部分,但是这些构件、组件、区、层或部分不应被这些术语限制。这些术语中的每个不用于定义例如相应的构件、组件、区、层或部分的本质、次序或序列,而仅用于将相应的构件、组件、区、层或部分与其他构件、组件、区、层或部分区分开。因此,在不脱离示例的教导的情况下,在此描述的示例中所称的第一构件、第一组件、第一区、第一层或第一部分也可被称为第二构件、第二组件、第二区、第二层或第二部分。
除非另有定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与由本公开所属领域的普通技术人员通常理解以及基于对本申请的公开的理解的含义相同的含义。除非在此明确地如此定义,否则术语(诸如,在通用词典中定义的术语)应被解释为具有与它们在相关领域和本申请的公开的上下文中的含义一致的含义,并且不应被理想化或过于形式化地解释。在此关于示例或实施例的术语“可”的使用(例如,关于示例或实施例可包括或实现什么)表示存在包括或实现这样的特征的至少一个示例或实施例,然而全部示例不限于此。
在下文中,参照附图详细地描述示例。当参照附图描述示例时,相同的参考标号表示相同的构成元件,并且与相同的构成元件相关的重复描述被省略。
图1示出根据一个或多个实施例的电子装置的示例。
参照图1,电子装置100可包括主机处理器110、存储器控制器120和存储器130。例如,电子装置100还可包括加速器(诸如,图形处理器(GPU))。电子装置100可以是或可包括例如各种计算装置(诸如,移动电话、智能电话、平板个人计算机(PC)、电子书装置、膝上型计算机、PC、台式计算机、工作站和服务器),各种可穿戴装置(诸如,智能手表、智能眼镜、头戴式显示器(HMD)或智能衣服),各种家用电器(诸如,智能扬声器、智能电视(TV)和智能冰箱),和其他装置(诸如,智能车辆、智能信息站、物联网(IoT)装置、步行辅助装置(WAD)、无人机、机器人等)中的任何一者。
主机处理器110可控制电子装置100的整体操作,并且可包括各种处理器,例如,中央处理器(CPU)、图形处理器(GPU)、神经处理器(NPU)或张量处理器(TPU)、数字信号处理器(DSP)等。主机处理器110可通过主机程序来生成对电子装置100中的资源或组件(例如,存储器130)的请求。例如,主机处理器110可执行具有用于处理存储器请求的存储器管理功能(例如,存储器管理单元(MMU))的操作系统内核。
由主机处理器110生成的对存储器130的请求可与正常存储器操作或存储器中处理(PIM)操作相关。在生成的请求是正常存储器操作的情况下,请求可以是存储器130的正常操作(例如,读取、写入、复制、擦除等)并且可被称为非PIM操作。在生成的请求是PIM操作的情况下,PIM操作可包括存储器130中的PIM操作(例如,加法、乘法以及乘法和累加(MAC))和逻辑运算(例如,AND、OR、XOR等)中的至少一个。PIM操作可不一定这样直接识别请求的PIM操作(例如,以PIM特定或PIM识别指令的形式)。用于PIM操作的操作可不需要主机处理器110和/或加速器从存储器130读取大量操作数数据,而是存储器130可直接执行用于PIM操作的操作,然后主机处理器110和/或加速器可仅读取对应的操作结果,从而最小化存储器带宽的使用并减少功耗和数据移动的距离。由存储器130执行的操作可根据由主机处理器100生成的请求是对应于正常存储器操作还是PIM操作而变化。存储器130可根据由主机处理器110生成的请求在与正常存储器和PIM中的任何一个对应的存储器模式中操作。例如,当存储器模式对应于正常存储器时,存储器130可执行正常存储器操作(诸如,读取、写入、复制、擦除等)。相比之下,当存储器模式对应于PIM时,存储器130可执行PIM操作(诸如,逻辑运算、算数运算等)。
加速器可在主机处理器110的控制下执行操作。考虑到操作(例如,用于执行神经网络的操作、对大量操作数的操作等)的特性,针对一些操作,具有专用处理器的加速器可比在操作的任务由主机处理器110(其可以是主/通用处理器)处理的情况下更有效地处理操作的任务。例如,加速器可包括GPU、NPU、TPU、DSP等。
主机处理器110可连同存储器请求一起生成存储器地址。由主机处理器110生成的存储器地址可映射到在其根据存储器请求的操作将被实际执行的存储器地址。生成的存储器地址可用于指示存储器请求用于正常(或非PIM)存储器操作还是PIM操作。例如,主机处理器110可生成具有(例如)指示正常存储器操作的格式的存储器地址,并且可生成具有(例如)指示PIM操作的格式的存储器地址。由于被格式化以指示正常存储器操作的存储器地址和被格式化以指示PIM操作的存储器地址两者由主机处理器(例如,由存储器管理单元)映射到在其根据请求的操作将被实际执行的相同存储器地址,因此正常存储器操作和PIM操作可针对最初接收到的存储器请求的相同存储器地址而被选择性地执行;正常存储器请求和PIM请求中的任何一个可针对相同存储器地址而被选择。
在此,请求正常存储器操作的存储器地址可被称为物理存储器地址,并且请求PIM操作的存储器地址可被称为扩展物理存储器地址。物理存储器地址可指示:在其中根据请求的操作被实际执行的实际存储器的区域。扩展物理存储器地址可通过在物理存储器地址中附加地包括位值,来指示:针对与物理存储器地址对应的存储器区域,做出对PIM操作的请求。物理存储器地址可以是包括有由主机处理器110接收到的初始存储器请求的存储器地址。物理存储器地址与扩展物理存储器地址之间的映射关系参照图2被描述。
根据示例,在主机处理器110中包括(或执行)的扩展地址生成器111可以是生成(和例如格式化)请求PIM操作的扩展物理存储器地址的处理器可执行指令的硬件组件或模块。由于扩展存储器地址包括指示物理存储器地址的位值并且在未被另外地用于物理存储器地址的未使用位中包括附加位值,因此扩展物理存储器地址可被称为扩展存储器地址。下面参照图4和图5对扩展物理存储器地址进行详细描述。
也就是说,例如,主机处理器110可基于从应用接收或者由应用生成(例如,传递到内核/OS、MMU等中)的存储器请求(包括原始地址)来生成存储器请求和存储器请求的存储器地址。生成的存储器地址可以是映射到:(i)作为可用可映射存储器模式中的任何一个的目标存储器模式,并且映射到(ii)物理存储器请求被施加到的物理地址的物理地址。存储器模式中的每个可以是指示正常存储器或PIM的存储器130的操作模式。
例如,当发起对存储器130的PIM操作的请求时,主机控制器110可生成存储器请求和扩展物理存储器地址,并将生成的存储器请求和扩展物理存储器地址发送到存储器控制器120。可选地,当发起对存储器130的正常存储器操作的请求时,主机处理器110可生成存储器请求和物理存储器地址,并将生成的存储器请求和物理存储器地址发送到存储器控制器120。虽然由所述请求生成的存储器请求可在两种情况下相同,但是在对PIM操作的请求被做出时生成的存储器地址可不同于在对正常存储器操作的请求被做出时生成的存储器地址。也就是说,将由存储器130执行的操作可基于由主机处理器110生成的存储器地址而被确定。
换言之,生成的存储器地址可由扩展地址生成器111生成/格式化,以指示其存储器请求施加到的存储器的模式(例如,在下面讨论的,使用未使用的位),并且同时仍可识别物理存储器地址。例如,生成的存储器地址可包括物理存储器地址加上指示原始/生成的存储器请求施加到的存储器的模式的附加位。
存储器控制器120可管理输入到存储器130(其包括各种模式,例如,主存储器和PIM存储器)和从存储器130输出的数据流。存储器控制器120可根据从主机处理器110接收到的存储器请求和存储器地址来生成命令,并将命令发送到存储器130。生成的命令可使用从主机处理器110接收到的存储器地址(例如,扩展存储器地址)。
存储器控制器120可根据目标存储器模式来生成命令和对应的物理存储器地址,并且可基于从主机处理器110接收到的存储器请求和存储器地址来这样做。生成的命令可涉及将在存储器130中的生成的物理存储器地址被执行的操作。生成的物理存储器地址可指示在其中命令在存储器130中被执行的存储器区域。
存储器控制器120可基于从主机处理器110接收到的存储器地址(该地址可已经被扩展地址生成器111扩展)来确定存储器请求是与正常存储器操作相关还是与PIM存储器操作相关,并且可根据该操作来生成命令。根据示例,将被发送到存储器130的命令可由存储器控制器120的扩展存储器命令生成器121来生成,然而,实施方式不限于此。例如,当存储器请求与正常存储器操作相关时,存储器控制器120可在存储器130中生成命令正常存储器操作的正常存储器命令,并且将生成的命令发送到存储器130。当存储器请求与PIM操作相关时,存储器控制器可在存储器130中生成命令PIM操作的PIM命令,并且将生成的PIM命令发送到存储器130。
在示例实施例中,关于术语“存储器请求”和“存储器命令”,存储器请求被表示在编程者级并且存储器命令表示需要实际执行装置中的请求的一系列操作,但不限于此。例如,一系列操作可包括激活存储器空间以加载数据,将数据加载到激活的空间中,以及在数据处理完成时使激活的空间去激活。请求可预先映射到与请求对应的命令。例如,这样的映射符合电子器件工程联合会(JEDEC)标准。
存储器130可存储数据并且还通过内部处理器(或集成在存储器中(在同一芯片中)但不一定作为其中的不同处理器单元的处理电路系统)来执行PIM操作,并且可包括例如动态随机存取存储器(DRAM)、高带宽存储器(HBM)、图形双倍数据速率(GDDR)、低功率双倍数据速率(LPDDR)等;存储器130的示例不限于此。存储器130可以是不仅能够执行正常存储器操作(例如,读取和写入数据)而且能够执行PIM操作的硬件装置。例如,存储器130可以是可编程的(或被配置)以执行各种操作。存储器130可包括用于存储数据的数据存储空间和用于执行上述逻辑和/或算数运算的内部处理器(或内部处理电路系统)。PIM操作可以是使用数据存储空间和内部处理器的操作,然而正常存储器操作可以是使用数据存储空间而不使用内部处理器的操作。存储器130可在命令的物理存储器地址执行从存储器控制器120接收到的命令。如提及的,存储器130可执行正常存储器操作或者各种PIM操作中的任一者,并且可在命令的相同物理存储器地址执行正常存储器操作和PIM操作中的任一者。由于存储器130可根据从存储器控制器120接收到的命令来执行正常存储器操作或者PIM操作,因此存储器130的全部或一些可不被指定为正常存储器或PIM。对存储器130的全部或一些的可高速缓存访问或不可高速缓存访问可以是可用的。例如,不可高速缓存访问可在存储器130的一部分上被执行,同时可高速缓存访问在存储器130的另一部分上被执行。可高速缓存访问和不可高速缓存访问参照图2被描述。
主机处理器110可通过使用在物理存储器地址未利用的另外地未使用的位来生成扩展物理存储器地址,使得各种PIM命令可与非PIM命令(即,正常存储器命令)区分开,而不需要添加新指令集架构(ISA)或者扩展现有ISA(扩展地址部分可用作“迷你操作码”的形式)。主机处理器110因此可针对相同物理存储器地址动态地控制PIM命令和非PIM命令(即,将被调用的)。
图2示出根据一个或多个实施例的存储器地址映射关系的示例。
图2从左到右示出物理地址空间、扩展物理地址空间、内核虚拟地址空间和用户(非特权)虚拟地址空间。
图2示出可用于通过由主机处理器生成的存储器地址来识别正常存储器操作和PIM操作中的哪一个被请求的存储器地址映射关系。为了便于解释,存储器地址映射关系被示出以识别正常存储器操作和PIM操作中的哪一个被请求,然而,示例不限于此。在存储器地址映射关系(用于区分正常存储器操作与数量n的PIM操作)中,扩展物理地址空间230、扩展内核虚拟地址空间250和扩展用户虚拟地址空间270可分别在数量上与n(这里,n可以是正整数)一样多。
物理地址空间210可指示在其中存储器命令被实际执行的存储器。物理存储器地址211可指示存储器请求将被施加到的物理地址空间210的部分或区域。
扩展物理地址空间可以是允许物理存储器地址识别正常存储器操作和PIM操作中的哪一个被请求的物理地址空间。扩展物理地址空间包括各自映射到物理地址空间210的物理地址空间220和扩展物理地址空间230。物理地址空间220可指示对正常(例如,非PIM)存储器操作的请求,并且可与上述物理地址空间210相同。物理地址空间220中的物理存储器地址221可指示对在物理存储器地址211执行的正常存储器操作的请求(与PIM操作相反)(在一些实施例中,扩展地址部分的内容可用于指示正常存储器操作,例如全零的扩展地址部分)。例如,物理存储器地址221可具有相同于物理存储器地址211的位。扩展物理地址空间230可指示对PIM操作的请求,并且扩展物理地址空间230中的扩展物理存储器地址231可指示对针对物理存储器地址211执行的PIM操作(与正常存储器操作相反)的请求。例如,扩展物理存储器地址231可通过包括与物理存储器地址221相同的位值并且在未在物理存储器地址221利用的未使用的位中包括附加或预定位值,来指示:相关联的请求是对将在物理存储器地址211被执行的PIM操作的请求。在一些实施例中,扩展存储器地址的扩展部分中的不同值可用于表示不同的相应PIM操作和/或不同的PIM存储器。
由于请求的命令需要被传送到存储器(特别是存储器210的PIM存储器部分)以被执行,因此用扩展物理存储器地址231表示(或由扩展物理存储器地址231指示)的对PIM操作的请求可以是用于执行存储器210中的操作(例如,PIM操作)的请求,并且PIM请求可具有不可高速缓存的特性。也就是说,通常,PIM请求不能被传送到可不能够执行PIM请求的高速缓存存储器。另一方面,根据请求(例如,主机程序的请求),表示为物理存储器地址221的存储器请求可以能够具有可高速缓存或不可高速缓存的特性。
可高速缓存的特性可以是高速缓存访问可用(或可行)的存储器请求的特性,也就是说,它可以是存储器高速缓存被允许的存储器请求的特性。可高速缓存特性可对应于如下操作:检查从主机程序请求的数据是否例如在高速缓存(例如,有相对低的访问开销的高速缓存)中,并且当数据不在高速缓存中时,之后在另一高速缓存(例如,有相对高的访问开销的高速缓存)中或在主存储器中寻找数据。当请求的数据被高速缓存时,数据可在不从存储器读取数据的情况下从高速缓存被快速地读取,这可有助于性能提高。因此,即使在存在基于PIM的存储器请求的情况下,在可能时继续允许基于高速缓存的存储器请求可以是有益的。另一方面,不可高速缓存的特性可以是高速缓存访问不可用(或不可行)的存储器请求(例如,读取请求)的特性,并且可对应于例如在不检查高速缓存的情况下从存储器读取由主机程序请求的数据。由于PIM操作通常可仅在PIM命令被发送到存储器时被执行,因此对PIM操作的请求可具有不可高速缓存的特性。另外,根据主机程序的请求,对正常操作的请求可潜在地但不限于具有可高速缓存的特性或不可高速缓存的特性。
内核虚拟地址空间可以是由在电子装置中运行的操作系统(OS)管理的区域(地址空间),并且可具有各自被OS(例如,由MMU)映射到物理地址空间210的扩展内核虚拟地址空间250和内核虚拟地址空间240。内核虚拟地址空间240可指示对正常操作的请求。内核虚拟地址空间240中的第一虚拟存储器地址241可指示对将在物理存储器地址211执行的正常存储器操作的请求(这里,“第一”仅指示内核虚拟地址空间中的任何地址)。由于物理地址空间和内核虚拟地址空间具有不同的地址系统,因此第一虚拟存储器地址241可具有与物理存储器地址211的位值不同的位值。扩展内核虚拟地址空间250可指示相关联的存储器请求是对PIM操作的请求。扩展内核虚拟地址空间250中的第一扩展虚拟存储器地址251可指示相关联的存储器请求是对将在物理存储器地址211执行的PIM操作的请求。第一扩展虚拟存储器地址251可通过包括与第一虚拟存储器地址241相同的位值并且在未使用的位(未在第一虚拟存储器地址241利用的位)中包括附加或预定位值,来指示:相关联的请求是对将在物理存储器地址211执行的PIM操作的请求。在一个示例实施例中,第一扩展虚拟存储器地址251的未使用的位中的不同的附加或预定值可用于表示不同类型的PIM操作和/或不同的PIM存储器。由于对应的命令将被传送到存储器而不是高速缓存,因此表示为第一扩展虚拟存储器地址251的对PIM操作的请求可用于在存储器中执行操作,并且可具有不可高速缓存的特性(这里,“第一”仅指示内核虚拟地址空间中的任何地址)。然而,根据主机程序的请求,表示为虚拟存储器地址241的对正常存储器操作的请求可潜在地具有可高速缓存的特性或不可高速缓存的特性。
用户虚拟地址空间可以是由在电子装置中运行的每个处理管理的区域(地址空间),并且可具有各自被OS映射到物理地址空间210的用户虚拟地址空间260和扩展用户虚拟地址空间270。用户虚拟地址空间260可指示相关联的请求是对正常操作的请求。用户虚拟地址空间中的第二虚拟存储器地址261可指示相关联的存储器请求是对将在物理存储器地址211执行的正常(非PIM)操作的请求(这里,“第二”仅指示用户虚拟地址空间中的任何地址)。由于内核虚拟地址空间和用户虚拟地址空间具有不同的地址系统,因此第二虚拟存储器地址261可具有与第一虚拟存储器地址241的位值不同的位值。扩展用户虚拟地址空间270可指示相关联的请求是对PIM操作的请求,并且扩展用户虚拟地址空间270中的第二扩展虚拟存储器地址271可指示相关联的存储器请求是对将在物理存储器地址211执行的PIM操作的请求(这里,“第二”仅指示用户虚拟存储器地址空间中的任何地址)。第二扩展虚拟存储器地址271可通过包括与第二虚拟存储器地址261相同的位值并且包括未使用的位(未在第二虚拟存储器地址261利用的位)中的附加或预定位值,来指示:相关联的存储器请求是对将在物理存储器地址211执行的PIM操作的请求。在一个示例实施例中,第二扩展虚拟存储器地址271的未使用的位中的不同的附加或预定值可用于表示不同类型的PIM操作和/或不同的PIM存储器。由于命令将被传送到存储器(即,命令不能被缺乏PIM能力的高速缓存存储器处理),因此表示为第二扩展虚拟存储器地址271的/由第二扩展虚拟存储器地址271表示的对PIM操作的请求可用于在存储器中执行操作,并且可具有不可高速缓存的特性。另一方面,根据主机程序的请求,表示为第二虚拟存储器地址261的对正常存储器操作的请求可能具有可高速缓存的特性或不可高速缓存的特性。
第一虚拟存储器地址241、第一扩展虚拟存储器地址251、第二虚拟存储器地址261和第二扩展虚拟存储器地址271中的任何一个可被映射到相同的物理存储器地址211(最初请求的存储器地址),然而,由于这些虚拟存储器地址指示不同的存储器模式;因此对正常存储器操作的请求可与对PIM操作的请求区分开(通过其虚拟地址),并且可在不必添加ISA或者扩展现有ISA的情况下这样做。另外,针对相同的存储器区域,主机处理器可针对对PIM操作的请求来分配有不可高速缓存的特性的存储器的全部或一些,或者可针对对正常存储器操作的请求来分配具有可高速缓存或不可高速缓存的特性(可高速缓存或不可高速缓存的特性中的任何一个都是可能的)的存储器210。
图2中示出的存储器地址映射关系可由主机处理器110(例如,由在主机处理器110上执行的内核或特权模块)利用,主机处理器110使用存储器地址映射关系将存储器请求及其相关联的存储器地址发送到存储器控制器120。存储器控制器120可利用存储器地址映射关系,来基于存储器请求并且基于从主机处理器接收到的存储器请求的相关联的存储器地址(根据其内容,存储器地址可指示PIM请求)生成命令。
即使当物理存储器地址221和扩展物理存储器地址231(物理地址)被映射到相同的物理存储器地址211时,存储器也可通过使用根据所请求的存储器模式具有不同存储器地址的特性而被更有效地使用,并且没有对PIM存储器的不可高速缓存访问的约束。其描述参照图3被做出。
图3示出根据一个或多个实施例的基于存储器地址根据存储器请求来执行命令的操作的示例。
在以下示例中,可顺序地执行操作,但不限于此。例如,操作的顺序可改变,并且操作中的至少两个操作可并行执行。操作310至操作370可由电子装置的一个或多个组件(例如,主机处理器、存储器控制器、存储器等)执行。
在操作310中,主机程序可向主机处理器请求存储器分配。
在操作320中,主机处理器可根据存储器分配请求基于两种类型的地址映射来分配正常存储器或PIM存储器。也就是说,可根据请求做出两种类型的潜在地址映射中的任何一个。在这种情况下,可将两种类型的潜在的存储器地址中的任何一个映射到相同的存储器区域。根据示例,在可用PIM的数量是n的情况下,可使用n+1个地址映射(这里,n可以是正整数)。
在操作330中,当用于存储器分配的请求是对正常(例如,非PIM)操作的请求时,主机处理器可向存储器控制器请求具有物理存储器地址的存储器命令。进一步基于该请求是正常存储器请求,在操作340中,存储器控制器可基于来自主机处理器的存储器分配请求来生成正常存储器命令。
在操作350中,当用于存储器分配的请求是对PIM操作的请求时,主机处理器可向存储器控制器请求具有扩展物理存储器地址的存储器命令。进一步基于该请求是PIM请求,在操作360中,存储器控制器可生成PIM命令。
在操作370中,存储器可执行从存储器控制器接收到的存储器命令。
当初始请求是读取或访问存储器的请求时,可使用与图3的操作类似的操作。
图4示出根据一个或多个实施例的物理地址的示例。
参照图4,物理存储器地址400可被表示为包括在正常物理地址区域410和扩展物理地址区域420中的位。图4示出物理存储器地址400以64位表示的示例,然而,其描述可应用于物理存储器地址400以各种位(例如,32位等)表示的示例。
正常物理地址区域410可以是已经用作正常物理存储器地址的区域或部分,并且可包括关于存储体和通道映射的信息(例如,特定位)。图2中所示出的物理地址空间220中的物理存储器地址221可通过包括在物理地址区域410中的位而被表示。扩展物理地址区域420可包括无意义的预定值(例如,“0”)。在一些实施例中,扩展物理地址区域420中的预定值可用于区别PIM请求与非PIM存储器请求(即,扩展物理地址区域420中的特殊值(例如,全零)可指示非PIM请求)。在图4中示出的示例中,正常物理地址区域410可包括位0至34。
扩展物理地址区域420可包括未使用的位(表示不被用于正常物理存储器地址的位)并且可表示扩展物理地址。正常物理地质区域410可包括表示数据存储空间的存储器地址所必须的位,并且扩展物理地址区域420可包括除了表示数据存储空间的存储器地址所必须的位之外的位。图2中所示出的扩展物理地址空间230中的扩展物理存储器地址231可通过使用扩展物理地址区域420中的未使用的位以及通过使用正常物理地址区域410中的位而被表示。扩展物理存储器地址231可通过在正常物理地址区域410中包括与图2的物理存储器地址221的有效位值相同的有效位值并且在扩展物理地址区域420中包括预定值(例如,1),来指示:相关联的请求是针对映射到物理存储器地址221的存储器区域对PIM操作的请求。在一个示例实施例中,扩展物理地址区域420中的不同的预定值可用于表示不同类型的PIM操作和/或不同的PIM存储器。
通过使用扩展物理地址区域420中的未使用的(针对正常地址/请求)位来区分对正常存储器操作的请求与对PIM操作的请求,即使通过当前/正常使用的物理地址400,也可有效地将对正常存储器操作的请求与对PIM操作的请求区分开。
图5示出根据一个或多个实施例的虚拟存储器地址的示例。
参照图5,在内核/特权存储器的情况下,虚拟地址500可以以包括在正常虚拟地址区域510和扩展虚拟地址区域520中的位来表示。虚拟地址500的位可包括(i)虚拟地址500是图2中所示出的内核虚拟地址空间240中的第一虚拟存储器地址241或者指示(ii)虚拟地址500是扩展内核虚拟地址空间250中的第一扩展虚拟存储器地址251的位。类似地,在用户/非特权存储器的情况下,虚拟地址500的位可指示(i)地址是用户虚拟地址空间260中的第二虚拟存储器地址261,或者可指示(ii)虚拟地址500是扩展用户虚拟地址空间270中的第二扩展虚拟存储器地址271。为此,虚拟存储器地址500的位可被划分为正常虚拟地址区域510和扩展虚拟地址区域520(用于内核虚拟地址和用户虚拟地址两者)。尽管图5中示出的示例以64位表示,但是其描述同样适用于虚拟存储器地址500以各种其他量的位(例如,32位等)表示的其他示例。
正常虚拟地址区域510可以是已经用于正常虚拟存储器地址(例如,被映射到页表地址)的区域。图2中所示出的第一虚拟存储器地址241和第二虚拟存储器地址261可通过包括在正常虚拟地址区域510中的位而被表示。扩展虚拟地址区域520可包括无意义的预定值(例如,“0”)。在一些实施例中,预定值可用作指示虚拟地址是正常虚拟地址的标志。在图5中示出的示例中,正常虚拟地址区域510可包括位0至46,但是其他位数量也可被使用。
扩展虚拟地址区域520可包括未使用的位,例如,指示未被正常虚拟存储器地址使用的位。正常虚拟地址区域510可包括表示数据存储空间的存储器地址所必须的位,并且扩展虚拟地址区域520可包括除了表示数据存储空间的存储器地址所必须的位之外的位。图2中所示出的第一扩展虚拟存储器地址251和第二扩展虚拟存储器地址271可通过使用扩展虚拟地址区域520中的未使用的位以及通过使用正常虚拟地址区域510而被表示。第一虚拟存储器地址251可通过在正常虚拟地址区域510中包括与图2的第一虚拟存储器地址241的有效位值相同的有效位值并且在扩展虚拟地址区域520中包括的预定值(例如,1)的有效位值,来指示:相关联的请求是针对映射到物理存储器地址221的存储器区域对PIM操作的请求。在一个示例实施例中,扩展虚拟地址区域520中的不同的预定值可用于表示不同类型的PIM操作和/或不同的PIM存储器。
通过使用扩展虚拟地址区域520中的未使用的位来区分对正常存储器操作的请求与对PIM操作的请求,即使通过当前使用的虚拟地址500,也可有效地将对正常存储器操作的请求与对PIM操作的请求区分开。
图6和图7示出根据一个或多个实施例的操作电子装置的示例。
参照图6,请求从应用610传送到主机处理器620而不需要定义新的ISA的示例被示出。无论哪种情况,当对正常存储器操作的请求将与对PIM操作的请求区分开并且不必在主机处理器620中单独定义ISA时,请求的存储器模式可通过物理存储器地址或扩展物理存储器地址而被识别。应用610可根据应用610需要的存储器模式,将存储器地址(例如,物理存储器地址或扩展物理存储器地址)发送到主机处理器620。主机处理器620可将从应用610接收到的存储器请求和存储器地址传送到存储器控制器630。存储器控制器630可基于从主机处理器620接收到的存储器地址,根据存储器请求来生成命令和物理存储器地址,并且可将生成的命令发送到存储器640。例如,命令可由扩展存储器命令生成器631生成。存储器640可在物理存储器地址执行接收到的命令。
参照图7,基于具有指定PIM请求的一个或多个指令的ISA的定义将请求从应用710传送到主机处理器720的示例被示出。因为ISA可避免对区分PIM操作是通过物理存储器地址还是扩展物理存储器地址被请求(由应用710到主机处理器720)的任何需要。在对PIM操作的请求的情况下,应用710可将PIM专用指令(在ISA中)与物理虚拟存储器地址一起发送到主机处理器720。在接收到PIM指令时,主机处理器720可对PIM指令进行解码并通过至少部分地生成扩展物理存储器地址以指示PIM指令/操作来执行PIM指令,并且可将扩展物理存储器地址与存储器请求一起发送到存储器控制器730。例如,扩展物理存储器地址可由扩展地址生成器721生成。以上存储器和存储器控制器的描述适用于存储器控制器730和存储器740。
即使在新的或PIM专用的ISA被定义用于提供PIM识别指令(例如,操作码)的情况下,主机处理器720也可将基于ISA的扩展物理存储器地址与存储器请求一起发送到存储器控制器730。因此,即使当PIM专用的ISA指令可用时,基于物理存储器地址或扩展物理存储器地址来区分对正常存储器操作的请求与对PIM操作的请求的以上描述也可被应用。
图8示出根据一个或多个实施例的对相同存储器区域的各种访问的示例。
参照图8,执行包括在神经网络中的层的操作的示例被示出。电子装置可使用加速器(例如,GPU等)和PIM存储器来处理人工智能(AI)应用的AI操作。AI应用可构成有节点层、节点层之间的连接和其他典型神经网络元素(诸如,激活函数)的神经网络。在此情况下,在应用上述技术中的一个或多个时,以下条件中的一些可有助于在执行AI应用时优化性能。
1.可避免PIM操作与加速器操作之间的附加存储器复制。
2.针对最佳PIM操作,可在不可高速缓存的存储器中执行PIM操作。
3.针对最佳加速器操作,可在可高速缓存的存储器中执行加速器操作。
作为示例,可假设神经网络的一个层(层1)820可通过PIM操作(通过非高速缓存的PIM存储器)比通过加速器操作(在非PIM硬件加速器上)被更有效地处理,而使用层820的操作结果的层(层2至6)840可通过加速器操作比通过PIM操作被更有效地处理。如接下来参照此示例所描述的,可高速缓存/不可高速缓存的特性可用于将任何层的执行引导到具有针对该层的最佳性能的资源(PIM存储器或硬件加速器)。
输入-输出缓冲器830可对应于层820的输入缓冲器810,并且可对应于层820的输出缓冲器。也就是说,输入-输出缓冲器830可以是(或包括)存储层820(例如,层1)的权重或输入(例如,特征图)的PIM存储器,并且输入-输出缓冲器830可直接存储层820的输出。换言之,输入-输出缓冲器830可以是在其中PIM操作被执行并且在其中对应的操作结果被存储的存储器,因此,输入-输出缓冲器830可具有不可高速缓存的特性。PIM操作可以是由输入-输出缓冲器830(并且在其内)对仍然存储在输入-输出缓冲器830的存储器中的数据执行的例如乘法和累加(MAC)运算,并且PIM操作的结果可在其累加时直接存储在输入-输出缓冲器830中,而不必将层820的输出传送到输入-输出缓冲器830的外部。
继续讨论示例神经网络,例如由于不必要的存储器访问开销,层1之后的层840可具有降低的操作效率(针对输入-输出缓冲器830),其中,层840对输入-输出缓冲器830进行不可高速缓存的访问,层820的操作结果被存储在输入-输出缓冲器830中以用于加速器操作的处理。即使层820的操作结果可能已经基于不可高速缓存的特性(例如,根据指示不可高速缓存的指令和/或存储器地址生成的)存储在输入-输出缓冲器830中,加速器也可利用能够对相同存储器地址进行不可高速缓存访问和可高速缓存访问两者的高速缓存特性,从而执行对输入-输出缓冲器830的可高速缓存访问(即,不必首先进行到主存储器的传送)。也就是说,在高速缓存中未找到层820的第一操作结果(例如,由层820生成的中间特征图)的情况下,加速器仍然可访问输入-输出缓冲器830以将操作结果传送到高速缓存,之后直接从高速缓存调用操作结果,而没有对输入-输出缓冲器830的访问。针对相同的区域,PIM可执行不可高速缓存的访问,并且加速器可执行可高速缓存的访问,从而有效地提高操作电子装置的效率。
图9示出根据一个或多个实施例的电子装置的操作方法的示例。
在以下示例中,可顺序地执行操作,但不限于此。例如,操作的顺序可改变,并且至少两个操作可并行执行。操作910至操作930可由电子装置的至少一个组件(例如,主机处理器、存储器控制器、存储器等)执行。在操作910中,电子装置可生成存储器请求和存储器地址,该存储器地址被映射(例如,通过存储器虚拟化)到作为可用存储器模式中的一个的目标存储器模式和存储器请求被施加到的物理存储器地址。每个存储器模式可指示正常存储器或PIM存储器。
电子装置可根据通过存储器请求在物理存储器地址执行的命令的(或与该命令相关联的)存储器模式来生成不同存储器地址。
另外,响应于指示PIM的目标存储器模式,电子装置可生成映射到目标存储器模式并且映射到物理存储器地址两者的扩展物理存储器地址。电子装置可使用包括在与存储器相关的物理存储器地址中的未使用(通过非PIM请求)的位来表示扩展物理存储器地址。
存储器地址可基于(i)物理地址空间(对应于存储器)或(ii)适用于存储器模式之中的指示PIM的存储器模式的存储器请求的数量的扩展物理地址空间被确定。物理地址空间可被映射到作为正常存储器操作的存储器模式,并且一个或多个扩展物理地址空间可各自被映射到作为PIM存储器操作的相应存储器模式。
另外,响应于指示PIM的目标存储器模式,电子装置可将存储器请求和存储器地址发送到具有不可高速缓存的特性的存储器控制器(即,在不访问高速缓存的情况下实现请求)。
另外,响应于多个存储器模式之中的指示/是正常存储器的目标存储器模式,电子装置可将存储器地址确定为与物理存储器地址相同。
另外,响应于指示/是正常存储器的目标存储器模式,电子装置可根据应用的请求来检查数据是否在高速缓存中。在数据不在高速缓存中的情况下,电子装置可将存储器请求和存储器地址发送到存储器控制器。
另外,响应于指示正常存储器的目标存储器模式和存储在物理存储器地址的PIM操作结果,电子装置可根据应用的请求来检查PIM操作结果是否在高速缓存中,并且在PIM操作结果不在高速缓存中的情况下,之后电子装置可将存储器请求和存储器地址发送到存储器控制器。
在操作920中,电子装置可基于从主机处理器接收到的存储器请求和存储器地址,根据目标存储器模式来生成命令和物理存储器地址。
在操作930中,电子装置可在物理存储器地址执行从存储器控制器接收到的命令。电子装置可根据命令在物理存储器地址执行正常存储器操作或者PIM操作。
示例可扩展物理地址空间以有效地区分即使对同一存储器区域(或地址空间)的PIM存储器访问与非PIM存储器访问,并且可向主机系统请求各种PIM命令并支持对同一存储器区域的可高速缓存存储器访问和不可高速缓存存储器访问两者。
在此关于图1至图9描述的计算设备、电子装置、处理器、存储器、显示器、信息输出系统和硬件、存储装置、以及其他设备、装置、单元、模块和组件通过硬件组件来实现或代表硬件组件。可用于执行在本申请中描述的操作的硬件组件的示例在适当的情况下包括:控制器、传感器、生成器、驱动器、存储器、比较器、算术逻辑模块、加法器、减法器、乘法器、除法器、积分器和被配置为执行在本申请中描述的操作的任何其他电子组件。在其他示例中,执行在本申请中描述的操作的硬件组件中的一个或多个通过计算硬件(例如,通过一个或多个处理器或计算机)来实现。可通过一个或多个处理元件(诸如,逻辑门阵列、控制器和算术逻辑单元、数字信号处理器、微型计算机、可编程逻辑控制器、现场可编程门阵列、可编程逻辑阵列、微处理器或被配置为以限定的方式响应并执行指令以实现期望的结果的任何其他装置或装置的组合)来实现处理器或计算机。在一个示例中,处理器或计算机包括或连接到存储由处理器或计算机执行的指令或软件的一个或多个存储器。由处理器或计算机实现的硬件组件可执行用于执行在本申请中描述的操作的指令或软件(诸如,操作系统(OS)和在OS上运行的一个或多个软件应用)。硬件组件还可响应于指令或软件的执行来访问、操控、处理、创建和存储数据。为了简单起见,单数术语“处理器”或“计算机”可在本申请中描述的示例的描述中被使用,但是在其他示例中,多个处理器或计算机可被使用,或者处理器或计算机可包括多个处理元件或多种类型的处理元件或二者。例如,单个硬件组件或者两个或更多个硬件组件可通过单个处理器、或者两个或更多个处理器、或者处理器和控制器来实现。一个或多个硬件组件可通过一个或多个处理器、或者处理器和控制器来实现,并且一个或多个其他硬件组件可通过一个或多个其他处理器,或者另外的处理器和另外的控制器来实现。一个或多个处理器、或者处理器和控制器可实现单个硬件组件或者两个或更多个硬件组件。硬件组件可具有不同的处理配置中的任意一个或任意多个,不同的处理配置的示例包括:单个处理器、独立处理器、并行处理器、单指令单数据(SISD)多处理、单指令多数据(SIMD)多处理、多指令单数据(MISD)多处理以及多指令多数据(MIMD)多处理。
图1至图9中示出的执行在本申请中描述的操作的方法通过计算硬件(例如,通过一个或多个处理器或计算机)来执行,计算硬件被实现为如上所述地实现指令或软件,以执行在本申请中描述的由所述方法执行的操作。例如,单个操作或者两个或更多个操作可通过单个处理器或者两个或更多个处理器、或者处理器和控制器来执行。一个或多个操作可通过一个或多个处理器、或者处理器和控制器来执行,并且一个或多个其他操作可通过一个或多个其他处理器、或者另外的处理器和另外的控制器来执行。一个或多个处理器、或者处理器和控制器可执行单个操作或者两个或更多个操作。
用于控制计算硬件(例如,一个或多个处理器或计算机)来实现硬件组件并执行如上所述的方法的指令或软件可被编写为计算机程序、代码段、指令或它们的任意组合,以单独地或共同地指示或配置一个或多个处理器或计算机如机器或专用计算机那样进行操作,以执行由如上所述的硬件组件和方法执行的操作。在一个示例中,指令或软件包括由一个或多个处理器或计算机直接执行的机器代码(诸如,由编译器产生的机器代码)。在另一示例中,指令或软件包括由一个或多个处理器或计算机使用解释器执行的高级代码。可基于附图中示出的框图和流程图以及在此使用的相应描述,使用任何编程语言编写指令或软件,其中,附图中示出的框图和流程图以及在此的对应描述公开了用于执行由如上所述的硬件组件和方法执行的操作的算法。
用于控制计算硬件(例如,一个或多个处理器或计算机)来实现硬件组件并执行如上所述的方法的指令或软件以及任何相关联的数据、数据文件和数据结构可被记录、存储或固定在一个或多个非暂时性计算机可读存储介质中或一个或多个非暂时性计算机可读存储介质上。非暂时性计算机可读存储介质的示例包括:只读存储器(ROM)、随机存取可编程只读存储器(PROM)、电可擦除可编程只读存储器(EEPROM)、随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、非易失性存储器、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-RLTH、BD-RE、蓝光或光盘存储装置、硬盘驱动器(HDD)、固态驱动器(SSD)、卡式存储器(诸如,多媒体卡或微型卡(例如,安全数字(SD)或极速数字(XD)))、磁带、软盘、磁光数据存储装置、光学数据存储装置、硬盘、固态盘、以及任何其他装置,其中,所述任何其他装置被配置为以非暂时性方式存储指令或软件以及任何相关联的数据、数据文件和数据结构并将指令或软件以及任何相关联的数据、数据文件和数据结构提供给一个或多个处理器或计算机,使得一个或多个处理器和计算机能够执行指令。在一个示例中,指令或软件以及任何相关联的数据、数据文件和数据结构分布在联网的计算机系统上,使得指令和软件以及任何相关联的数据、数据文件和数据结构通过一个或多个处理器或计算机以分布式的方式被存储、访问和执行。
虽然本公开包括特定的示例,但是在理解本申请的公开之后将清楚,在不脱离权利要求和它们的等同物的精神和范围的情况下,可在这些示例中做出形式和细节的各种改变。在此描述的示例仅被认为是描述性的,而不是出于限制的目的。每个示例中的特征或方面的描述将被认为可适用于其他示例中的类似特征或方面。如果描述的技术以不同的顺序被执行,和/或如果描述的系统、架构、装置或电路中的组件以不同的方式被组合,和/或由其他组件或它们的等同物替换或补充,则可实现合适的结果。
因此,除了上面的公开之外,公开的范围还可由权利要求及它们的等同物限定,并且在权利要求及它们的等同物的范围内的所有变化应被解释为被包括在公开中。
Claims (20)
1.一种电子装置,包括:
主机处理器,被配置为生成存储器请求和存储器地址,存储器地址被映射到目标存储器模式并且被映射到存储器请求将被施加到的物理存储器地址,目标存储器模式是可用存储器模式中的任何一个;
存储器控制器,被配置为基于从主机处理器接收到的存储器请求和存储器地址根据被映射到存储器地址的目标存储器模式来生成物理存储器地址和命令;以及
存储器,被配置为在物理存储器地址执行从存储器控制器接收到的命令。
2.根据权利要求1所述的电子装置,其中,存储器模式中的一个是正常存储器,并且存储器模式中的另一个是存储器中处理PIM。
3.根据权利要求1所述的电子装置,其中,主机处理器被配置为:根据在物理存储器地址通过存储器请求执行的命令的存储器模式来生成不同的存储器地址。
4.根据权利要求1所述的电子装置,其中,主机处理器还被配置为:响应于目标存储器模式指示存储器中处理PIM,生成映射到目标存储器模式和物理存储器地址的扩展物理存储器地址。
5.根据权利要求4所述的电子装置,其中,主机处理器被配置为:
使用包括在关于存储器的物理地址中的未使用的位来表示扩展物理存储器地址。
6.根据权利要求1所述的电子装置,其中,存储器地址基于目标存储器模式与对应于存储器的物理地址空间的对应、或者与适用于存储器模式之中的指示存储器中处理PIM的存储器模式的存储器请求的模式的数量的扩展物理地址空间的对应,而被确定。
7.根据权利要求6所述的电子装置,其中,物理地址空间被映射到作为正常存储器操作的存储器模式,并且扩展地址空间被映射到作为PIM存储器操作的存储器模式。
8.根据权利要求1所述的电子装置,其中,主机处理器被配置为:响应于目标存储器模式指示PIM,将存储器请求和存储器地址发送到存储器控制器,使得存储器请求不能用对高速缓存的访问来实现。
9.根据权利要求1所述的电子装置,其中,主机处理器被配置为:响应于目标存储器模式指示存储器模式之中的正常存储器,将存储器地址确定为与物理存储器地址相同。
10.根据权利要求1至9中的任何一项所述的电子装置,其中,主机处理器被配置为:响应于目标存储器模式指示正常存储器,根据应用的请求来检查数据是否在高速缓存中,并且当数据不在高速缓存中时,将存储器请求和存储器地址发送到存储器控制器。
11.根据权利要求1至9中的任何一项所述的电子装置,其中,主机处理器被配置为:响应于目标存储器模式指示正常存储器并且存储器中处理PIM操作结果被存储在物理存储器地址处,根据应用的请求来检查PIM操作结果是否在高速缓存中,并且当PIM操作结果不在所述高速缓存中时,将存储器请求和存储器地址发送到存储器控制器。
12.根据权利要求1所述的电子装置,其中,存储器被配置为:根据命令在物理存储器地址执行正常存储器操作或存储器中处理PIM操作。
13.一种操作电子装置的方法,所述方法包括:
通过包括在电子装置中的主机处理器来生成存储器请求和对应的存储器地址,对应的存储器地址被映射到包括在电子装置中的存储器模式之中的目标存储器模式并且被映射到存储器请求将被施加到的物理存储器地址;
基于从主机处理器接收到的存储器请求和存储器地址,根据目标存储器模式通过包括在电子装置中的存储器控制器来生成物理存储器地址和命令;以及
通过包括在电子装置中的存储器在物理存储器地址执行从存储器控制器接收到的命令。
14.根据权利要求13所述的方法,其中,存储器模式中的每个指示正常存储器和存储器中处理PIM中的任何一个。
15.根据权利要求13所述的方法,其中,生成存储器请求和存储器地址的步骤包括:根据通过存储器请求在物理存储器地址执行的命令的存储器模式来生成不同的存储器地址。
16.根据权利要求13所述的方法,其中,生成存储器请求和存储器地址的步骤包括:响应于目标存储器模式指示存储器中处理PIM,使用为扩展物理存储器地址保留的位来生成扩展物理存储器地址。
17.一种电子装置,包括:
存储器,包括数据存储空间和用于执行逻辑运算和/或算术运算的内部处理器;
主机处理器,被配置为生成指示对存储器中处理PIM操作和正常存储器操作中的任何一个的请求的第一存储器地址,其中,PIM操作使用内部处理器和存储器中的数据存储空间,而正常存储器操作也使用所述数据存储空间但不使用内部处理器;
存储器控制器,被配置为生成命令和将由命令访问的数据存储空间的第二存储器地址,并且将生成的命令和第二存储器地址发送到存储器,其中,存储器中的PIM操作和正常存储器操作中的哪一个被命令执行取决于从主机处理器接收到的第一存储器地址;
其中,第一存储器地址通过使用除了表示数据存储空间的第二存储器地址所必需的位之外的一个或多个位来指示PIM操作和正常存储器操作中的任何一个。
18.根据权利要求17所述的电子装置,其中,第一存储器地址在所述一个或多个位被使用时指示PIM操作,并且在所述一个或多个位不被使用时指示正常存储器操作。
19.根据权利要求17所述的电子装置,其中,主机处理器被配置为响应于第一存储器地址指示对PIM操作的请求,将第一存储器地址发送到存储器控制器而不访问高速缓存。
20.根据权利要求17所述的电子装置,其中,当第一存储器地址指示对正常存储器操作的请求时,第一存储器地址与第二存储器地址相同。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0107826 | 2022-08-26 | ||
KR10-2023-0043495 | 2023-04-03 | ||
KR1020230043495A KR20240029502A (ko) | 2022-08-26 | 2023-04-03 | 메모리 어드레스 공간 확장을 이용한 메모리 요청을 처리하는 전자 장치 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632778A true CN117632778A (zh) | 2024-03-01 |
Family
ID=90017098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311079814.4A Pending CN117632778A (zh) | 2022-08-26 | 2023-08-25 | 电子装置和操作电子装置的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117632778A (zh) |
-
2023
- 2023-08-25 CN CN202311079814.4A patent/CN117632778A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10963398B2 (en) | Virtual register file | |
US10199088B2 (en) | Apparatuses and methods for cache invalidate | |
US9836409B2 (en) | Seamless application access to hybrid main memory | |
US7953588B2 (en) | Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host | |
US20230196502A1 (en) | Dynamic kernel memory space allocation | |
KR102434170B1 (ko) | 하이브리드 메모리 시스템 | |
JP2022548642A (ja) | タイプ付けされていないメモリアクセスのタイプ付けされているメモリアクセスに対するマッピング | |
KR20220041937A (ko) | 메모리 유형에 대한 페이지 테이블 후크 | |
JP2022548886A (ja) | メモリ名前空間へデータをバインドするためのメモリシステム | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
CN113312171A (zh) | 加速器、加速器的操作方法和加速器系统 | |
TWI785320B (zh) | 裝置內標記資料移動系統、資訊處置系統及用於提供裝置內標記資料移動之方法 | |
KR102443593B1 (ko) | 하이브리드 메모리 시스템 | |
US11868306B2 (en) | Processing-in-memory concurrent processing system and method | |
CN110447019B (zh) | 存储器分配管理器及由其执行的用于管理存储器分配的方法 | |
CN117632778A (zh) | 电子装置和操作电子装置的方法 | |
US20240070068A1 (en) | Device and method with memory request processing using memory address space extension | |
KR20240029502A (ko) | 메모리 어드레스 공간 확장을 이용한 메모리 요청을 처리하는 전자 장치 및 그 동작 방법 | |
US20210373790A1 (en) | Inference in memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |