CN115168249A - 地址转换方法、存储器系统、电子设备及存储介质 - Google Patents
地址转换方法、存储器系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115168249A CN115168249A CN202210707632.6A CN202210707632A CN115168249A CN 115168249 A CN115168249 A CN 115168249A CN 202210707632 A CN202210707632 A CN 202210707632A CN 115168249 A CN115168249 A CN 115168249A
- Authority
- CN
- China
- Prior art keywords
- storage
- processor
- memory
- address
- logical address
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1072—Decentralised address translation, e.g. in distributed shared memory systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本说明书一个或多个实施例提供一种地址转换方法、存储器系统、电子设备及存储介质。所述方法应用于存储控制器,所述存储控制器通过一个或多个物理通道与存储器连接,所述存储器包括有一个或多个存储模块,所述存储模块与所述物理通道一一对应,所述存储模块包括有若干存储页;所述方法包括:接收处理器发送的读/写请求,该读/写请求携带有逻辑地址;按照预置的转换运算模式和物理通道数量对逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页;根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。实现无需映射表即可进行地址转换。
Description
技术领域
本说明书一个或多个实施例涉及存储器技术领域,尤其涉及一种地址转换方法、存储器系统、电子设备及存储介质。
背景技术
相关技术中为实现逻辑地址与物理地址的转换,通常会在设备中维护一个逻辑地址与物理地址的映射表,通过该映射表可直线实现两种类型的地址的直接转换过程。但是,随着存储器容量的增大以及寻址粒度的逐渐细化,映射表也逐渐扩大,增加了存储损耗和维护难度。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种地址转换方法、存储器系统、电子设备及存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种地址转换方法,应用于存储控制器,所述存储控制器通过一个或多个物理通道与存储器连接,所述存储器包括有一个或多个存储模块,所述存储模块与所述物理通道一一对应,所述存储模块包括有若干存储页;所述方法包括:
接收处理器发送的读/写请求,所述读/写请求携带有逻辑地址;
按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页;其中,基于不同的逻辑地址转换运算得到的所述目标存储页不同;
根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。
可选地,所述存储控制器包括转换组件,并且所述存储控制器预置有多种转换运算模式的配置文件;
在所述接收处理器发送的读/写请求之前,还包括:
接收所述处理器发送的配置请求,所述配置请求指示有所述处理器即将执行的第一应用程序所适用的第一转换运算模式;
根据所述第一转换运算模式的配置文件配置所述转换组件;其中,若所述读/写请求来自所述第一应用程序,配置后的转换组件用于按照所述第一转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
可选地,还包括:
接收所述处理器发送的配置切换请求,所述配置切换请求指示执行完所述第一应用程序的所述处理器即将执行的第二应用程序所适用的第二转换运算模式;
根据所述配置切换请求对所述转换组件进行复位处理,并基于所述第二转换运算模式的配置文件配置所述转换组件;所述复位处理包括将所述转换组件恢复成初始状态;
其中,若所述读/写请求来自所述第二应用程序,配置后的转换组件用于按照所述第二转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
可选地,所述存储控制器预置有多种转换运算模式以及模式对应关系,所述模式对应关系指示不同应用程序所适用的转换运算模式;
所述读/写请求还携带有程序标识,所述程序标识指示所述处理器当前执行的应用程序;
所述按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,包括:
根据所述程序标识和所述模式对应关系,确定目标转换运算模式;
按照所述目标转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
可选地,在所述转换运算模式中设置有取余运算和除法取整运算;
所述按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,包括:
至少根据所述逻辑地址和所述物理通道数量进行取余运算,得到相对于起始物理地址的目标存储模块;以及,至少根据所述逻辑地址和所述物理通道数量进行除法取整运算,得到在该目标存储模块中的目标存储页;其中,在取余运算和除法取整运算中,所述逻辑地址作为被除数或者被除数中的一部分,所述物理通道数量作为除数或者除数中的一部分。
可选地,所述转换运算模式包括有顺序运算模式和至少一种随机运算模式;
所述顺序运算模式指示:通过所述逻辑地址取余所述物理通道数量得到相对于起始物理地址的目标存储模块,以及通过所述逻辑地址除以所述物理通道数量并取整得到在该目标存储模块中的目标存储页;
所述随机运算模式指示:对所述逻辑地址和所述物理通道数量中的至少一者进行调整,使用调整后的逻辑地址和/或调整后的物理通道数量参与取余运算和除法取整运算。
可选地,每个所述存储页对应有标记位,所述标记位指示该存储页中是否存储有数据;
在所述确定所述逻辑地址对应的物理地址之后,还包括:
获取所述物理地址指示的目标存储页的标记位;
在接收到所述处理器的读请求、且所述标记位指示该目标存储页存储有数据的情况下,读取所述目标存储页中的数据并返回给所述处理器;否则,向所述处理器报错;
在接收到所述处理器的写请求、且所述标记位指示该目标存储页未存储有数据的情况下,将所述写请求携带的数据写入所述目标存储页;否则,向所述处理器发送确认指令,所述确认指令用于向所述处理器确认是否进行覆盖写入操作。
根据本说明书一个或多个实施例的第二方面,提出了一种存储器系统,包括存储器和存储控制器;
所述存储器包括有一个或多个存储模块,所述存储模块包括有若干存储页;
所述存储控制器通过一个或多个物理通道与存储器连接,所述存储模块与所述物理通道一一对应;所述存储控制器用于执行第一方面任意一项所述的方法。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括第二方面所述的存储器系统和处理器;
所述处理器至少用于向所述存储器系统中的存储控制器发送读/写请求。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面任一项所述方法的步骤。
本说明书实施例提供了一种无需存储映射表的地址转换方法,存储控制器在接收到处理器发送的读/写请求,可以通过预置的转换运算模式和物理通道数量对所述读/写请求携带的逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页,进而得到所述逻辑地址对应的物理地址,无需存储映射表,从而有利于减少存储损耗,并且基于不同的逻辑地址转换运算得到的所述目标存储页不同,从而有利于保证逻辑地址转换到物理地址的准确性。
附图说明
图1是一示例性实施例提供的一种存储器系统的结构示意图。
图2是一示例性实施例提供的一种地址转换方法的流程示意图。
图3是一示例性实施例提供的在顺序运算模式下进行逻辑地址和物理地址转换的示意图。
图4和图5是一示例性实施例提供的在两种不同的随机运算模式下进行逻辑地址和物理地址转换的示意图。
图6是一示例性实施例提供的另一种存储器系统的结构示意图。
图7是一示例性实施例提供的一种电子设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
相关技术中,通过在设备中维护逻辑地址与物理地址的映射表来管理读/写请求的地址索引。示例性的,在存储器中的最小读写单元为存储页,存储器的最小寻址粒度的大小取决于一个存储页的大小,比如一个存储页为32bit,则最小寻址粒度可以是32bit。存储控制器以最小寻址粒度每写入一个存储页,就会产生一个新的映射关系,这个映射关系会加入(第一次写)或者更改(覆盖写)所述映射表;当需要读取某一个存储页时,存储控制器会根据给定的逻辑地址从映射表中查找出对应的物理地址,然后访问存储器以读取该物理地址指向的存储页。绝大多数存储器系统包括有板载DRAM,板载DRAM用来存储上述的映射表。对于其他不包括板载DRAM的存储器系统,当该类存储器工作时,映射表中的大部分存储在存储器中,以及映射表的剩余小部分存储在片上RAM上。
在一个例子,假设一个存储器的存储容量为256G,一个存储页为4KB,那么一共有64M(256G/4KB)个存储页,在所有的存储页均存储有数据的情况下,也就意味着需要64M大小的映射表。可见,随着存储器存储容量的逐渐增大或者寻址粒度进一步细化,存储页的数量进一步增大,也就意味着映射表需要存储更多的映射关系,存储映射表所需的存储空间也进一步增大,可能会超过板载极限,增加了存储损耗和维护难度。
基于相关技术中的问题,本说明书实施例提供了一种无需存储映射表的地址转换方法,存储控制器在接收到处理器发送的读/写请求,可以通过预置的转换运算模式和物理通道数量对所述读/写请求携带的逻辑地址进行转换运算,从而得到所述逻辑地址对应的物理地址,无需存储映射表,从而有利于减少存储损耗,并且基于不同的逻辑地址转换运算得到的所述目标存储页不同,从而有利于保证逻辑地址转换到物理地址的准确性。
在一些实施例中,请参阅图1,图1示出了一种存储器系统的结构图,所述存储器系统包括存储控制器10和存储器20。所述存储控制器10通过一个或多个物理通道30与存储器20连接,所述存储器20包括有一个或多个存储模块21,所述存储模块21与所述物理通道30一一对应,多物理通道可实现高并发地读取与写入,提高读写效率。所述存储模块21包括有若干存储页,所述存储页进一步可被划分为一个或多个存储单元,其中,存储单元是存储器中的最小存储单元,存储页是存储器中的最小读写单元,即假设需要读取某一个存储页中的某个存储单元的数据,需要将整个页的内容都读取出来。在一些应用场景中,比如在相变存储器中,一个存储单元可存储1bit数据,一个存储页的读写单位可以是32bit。
可以理解的是,从存储模块到存储页中间可能还有其他的划分层级,本实施例对此不做任何限制。在一个例子中,比如在nand存储器中,存储模块可被划分成一个或多个die(核心),一个die(核心)包括有一个或多个plane(平面),一个plane(平面)包括有一个或多个block(块),一个block(块)包括有一个或多个page(存储页)。在另一个例子中,比如在DDR存储器中,存储模块可被划分成一个或多个rank,一个rank包括一个或多个存储颗粒(chip/die),一个存储颗粒包括有一个或多个bank,一个bank包括有一个或多个page(存储页)。
在一些实施例中,请参阅图2,图2为本说明书实施例提供的一种地址转换方法的流程图,所述方法应用于如图1所示的存储器系统中的存储控制器。所述方法包括:
在步骤S101中,接收处理器发送的读/写请求,所述读/写请求携带有逻辑地址。
在步骤S102中,按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页;其中,基于不同的逻辑地址转换运算得到的所述目标存储页不同。
在步骤S103中,根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。
在一些实施例中,存储器系统与处理器通信连接,处理器可以根据实际需要向存储器系统发送读/写请求,以便通过存储控制器从存储器中读/写数据,其中,所述读/写请求携带有逻辑地址。所述存储控制器预置有转换运算模式,通过执行所述转换运算模式可实现将逻辑地址转换为物理地址,所述转换运算模式指示根据所述物理通道数量和所述逻辑地址进行转换处理,例如采用预设的运算逻辑(如加减乘除、取余运算、取整运算等)至少对所述物理通道数量和所述逻辑地址进行运算,从而得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页,进而可以根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址,实现无需存储映射表即可实现逻辑地址和物理地址之间的转换,从而有利于减少存储损耗。
其中,同一所述转换运算模式针对于不同的逻辑地址具有相同的转换运算逻辑,则基于同一逻辑地址转换运算得到的所述目标存储模块和所述目标存储页相同,进而得到唯一的物理地址,而基于不同的逻辑地址转换运算得到的所述目标存储页不同,即每个逻辑地址均有唯一对应的物理地址,不同的逻辑地址对应不同的物理地址,从而有利于保证逻辑地址转换到物理地址的准确性。
可以理解的是,逻辑地址和物理地址之间的转换过程可以通过软件方式实现,也可以通过硬件方式实现,两者的实现逻辑相同,可依据实际应用场景进行具体选择,本实施例对此不做任何限制。
在一种可能的实施方式中,所述存储控制器包括转换组件,可以使用所述转换运算模式的配置文件对所述转换组件进行配置,从而可以通过所述转换组件来实现逻辑地址和物理地址之间的转换过程,比如所述存储控制器在接收到处理器发送的读/写请求之后,可以将所述读/写请求携带的逻辑地址输入所述转换组件,以便由所述转换组件按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页,进而根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址,从而存储控制器可以基于转换组件运算得到的物理地址对存储器进行读/写操作。
在一些实施例中,不同的应用程序用于提供不同的服务;考虑到单种转换运算模式可能无法适用于所有的服务场景,比如有些服务场景适用于顺序写入,而有些服务场景可能适用于随机写入,因此为了适用于不同的服务场景,可以在所述存储控制器中内置多种转换运算模式,并根据所述处理器当前进行的应用程序,采用适用于该应用程序的转换运算模式来进行逻辑地址和物理地址之间的转换。
在一种可能的实施方式中,所述存储控制器包括转换组件,并且所述存储控制器预置有多种转换运算模式的配置文件;处理器向存储控制器发送读/写请求之前,可以根据自身即将执行的应用程序指定所述存储控制器所应用的转换运算模式。示例性的,在初始化阶段,所述存储控制器可以接收所述处理器发送的配置请求,所述配置请求指示有所述处理器即将执行的第一应用程序所适用的第一转换运算模式;然后根据所述第一转换运算模式读取对应的配置文件来配置所述转换组件。在配置完成之后,所述存储控制器可以向处理器发送配置完成指令,从而告知处理器已配置完成。处理器在执行第一应用程序的过程中,可以基于自身需要向存储控制器发送读/写请求,而配置后的转换组件用于按照所述第一转换运算模式和物理通道数量对所述读/写请求携带的逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页,进而根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。本实施例中,实现基于应用程序需要配置适用的转换运算模式。
所述处理器在执行完第一应用程序之后,即将执行第二应用程序,而第二应用程序所适用的转换运算模式与第一应用程序所适用的转换运算模式不同,则所述处理器可以向存储控制器发送配置切换请求,所述配置切换请求指示执行完所述第一应用程序的所述处理器即将执行的第二应用程序所适用的第二转换运算模式。所述存储控制器可以根据所述配置切换请求对所述转换组件进行复位处理,所述复位处理包括将所述转换组件恢复成初始状态,然后基于所述第二转换运算模式读取对应的配置文件以配置所述转换组件。处理器在执行第二应用程序的过程中,可以基于自身需要向存储控制器发送读/写请求,而配置后的转换组件用于按照所述第二转换运算模式和物理通道数量对所述读/写请求携带的逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页,进而根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。本实施例实现基于应用程序需要配置适用的转换运算模式。
同理,所述处理器在执行完第二应用程序之后,即将执行第三应用程序,而第三应用程序所适用的转换运算模式与第二应用程序所适用的转换运算模式不同,则所述处理器可以向存储控制器发送配置切换请求,以便存储控制器对转换组件进行复位并重新配置。
在另一种可能的实现方式中,所述存储控制器可以预置有多种转换运算模式以及模式对应关系,所述模式对应关系指示不同应用程序所适用的转换运算模式;所述处理器发送的读/写请求还携带有程序标识,所述程序标识指示所述处理器当前执行的应用程序;所述存储控制器可以根据所述程序标识和所述模式对应关系,确定目标转换运算模式;然后按照所述目标转换运算模式和物理通道数量对所述逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页,进而根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。本实施例针对于不同应用程序,能够采用适用的转换运算模式进行逻辑地址和物理地址之间的换算,从而提供适用于不同应用程序的读写物理地址,有利于提高读写效率。
示例性的,所述存储控制器包括转换组件,所述多种转换运算模式以及模式对应关系可以预置在所述转换组件中。
在一些实施例中,所述转换运算模式中的运算逻辑至少包括有取余运算和除法取整运算。在按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算的过程中,所述存储控制器至少根据所述逻辑地址和所述物理通道数量进行取余运算,得到相对于起始物理地址的目标存储模块,其中,在取余运算中,所述逻辑地址作为被除数或者被除数中的一部分,物理通道数量作为除数或者除数中的一部分。并且,所述存储控制器至少根据所述逻辑地址和所述物理通道数量进行除法取整运算,得到在该目标存储模块中的目标存储页,其中,在除法取整运算中,逻辑地址作为被除数或者被除数中的一部分,物理通道数量作为除数或者除数中的一部分。并且所述转换运算模式中的运算逻辑还包括加法运算,所述存储控制器可以根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址进行加法运算,得到所述逻辑地址对应的物理地址。本实施例中,通过取余运算、除法取整运算和加法运算过程实现逻辑地址和物理地址之间的转换,无需存储映射表,从而有利于减少存储损耗。
在一些实施例中,所述转换运算模式包括有顺序运算模式。所述顺序运算模式指示:通过所述逻辑地址取余所述物理通道数量得到相对于起始物理地址的目标存储模块,以及通过所述逻辑地址除以所述物理通道数量并取整得到在该目标存储模块中的目标存储页。在所述顺序运算模式中,针对于连续的多个逻辑地址,换算得到的物理地址也是连续的,即多个连续的逻辑地址对应的多个待写入数据是顺序写入的。
示例性的,假设使用顺序运算模式进行物理地址和逻辑地址的换算,顺序运算模式的运算逻辑为pba=base addr+lba%channel number+lba/channel number,其中,baseaddr表示初始物理地址,lba表示逻辑地址,pba表示物理地址,channel number表示物理通道数量,“%”表示取余运算,“/”表示除法取整运算。
在一个例子中,请参阅图3,假设channel number=3,即有3个存储模块21,baseaddr=0;逻辑地址以逻辑编号表示,从0开始编号;最小寻址粒度为一个存储页22,即一个物理地址(逻辑地址)指向一个存储页22,图3中的一个格子表示一个存储页22,以一个存储模块21包括16个存储页22进行示例性说明。对于逻辑编号为0的存储地址,按照顺序运算模式的运算逻辑,则物理地址pba=0+0+0,指向第1个存储模块中的第1个存储页;对于逻辑编号为1的存储地址,物理地址pba=0+1+0,指向第2个存储模块中的第1个存储页;对于逻辑编号为2的存储地址,物理地址pba=0+2+0,指向第3个存储模块中的第1个存储页;逻辑编号为3的存储地址,物理地址pba=0+0+1,指向第1个存储模块中的第2个存储页;逻辑编号为4的存储地址,物理地址pba=0+1+1,指向第2个存储模块中的第2个存储页,依次类推。通过顺序运算模式将连续的逻辑地址转换为连续的物理地址,实现顺序写入。
在另一些实施例中,所述转换运算模式还包括有至少一种随机运算模式。所述随机运算模式指示:对所述逻辑地址和所述物理通道数量中的至少一者进行调整,使用调整后的逻辑地址和/或调整后的物理通道数量参与取余运算和除法取整运算。在所述随机运算模式中,针对于连续的多个逻辑地址,换算得到的物理地址可能是随机分布的。
为方便理解,以下将调整前的逻辑地址称为原逻辑地址,将调整前的物理通道数量称为原物理通道数量。示例性的,比如取余运算和除法取整运算可以是以下四者中的任意两者:(1)被除数可以是原逻辑地址且除数也是原物理通道数量、(2)被除数可以是调整后的逻辑地址且除数是原物理通道数量、(3)被除数可以是原逻辑地址且除数是调整后的物理通道数量、或者(4)被除数可以是调整后的逻辑地址且除数也是调整后的物理通道数量。其中,当被除数是调整后的逻辑地址时,调整后的逻辑地址由原逻辑地址和预设调整系数运算得到,即原逻辑地址作为被除数中的一部分。当除数是调整后的物理通道数量时,调整后的物理通道数量包括由原物理通道数量和预设调整系数运算得到,即原物理通道数量作为除数中的一部分。
示例性的,可以使用调整系数和预设调整方式对所述逻辑地址和所述物理通道数量中的至少一者进行调整,取余运算和除法取整运算中的调整系数和预设调整方式可以相同,也可以不同。可以理解的是,本实施例对于所述调整系数和调整方式不做任何限制,可依据实际应用场景进行具体设置。比如可以在逻辑地址指示的逻辑编号加上预设值或者乘以预设系数,也可以将物理通道数量减去预设值或者除以预设系数。
示例性的,假设随机运算模式的运算逻辑为pba=base addr+(lba+2)%channelnumber+lba/channel number。在一个例子中,请参阅图4,假设channel number=3,即有3个存储模块21,base addr=0;逻辑地址以逻辑编号表示,从0开始编号;最小寻址粒度为一个存储页22,即一个物理地址(逻辑地址)指向一个存储页22,图4中的一个格子表示一个存储页22,以一个存储模块21包括16个存储页22进行示例性说明。对于逻辑编号为0的存储地址,按照随机运算模式的运算逻辑,则物理地址pba=0+2+0,指向第3个存储模块中的第1个存储页;对于逻辑编号为1的存储地址,物理地址pba=0+0+1,指向第1个存储模块中的第2个存储页;对于逻辑编号为2的存储地址,物理地址pba=0+1+1,指向第2个存储模块中的第2个存储页;对于逻辑编号为3的存储地址,物理地址pba=0+2+1,指向第3个存储模块中的第2个存储页;依次类推。
示例性的,假设随机运算模式的运算逻辑为pba=base addr+lba%(channelnumber-1)+lba/(channel number-1)。在一个例子中,请参阅图5,假设channel number=3,即有3个存储模块,base addr=0;逻辑地址以逻辑编号表示,从0开始编号;最小寻址粒度为一个存储页,即一个物理地址(逻辑地址)指向一个存储页。对于逻辑编号为0的存储地址,按照随机运算模式的运算逻辑,则物理地址pba=0+0+0,指向第1个存储模块中的第1个存储页;对于逻辑编号为1的存储地址,物理地址pba=0+1+0,指向第2个存储模块中的第1个存储页;对于逻辑编号为2的存储地址,物理地址pba=0+0+1,指向第1个存储模块中的第2个存储页;对于逻辑编号为3的存储地址,物理地址pba=0+1+1,指向第2个存储模块中的第2个存储页;对于逻辑编号为4的存储地址,物理地址pba=0+0+2,指向第1个存储模块中的第3个存储页;依次类推。
在一些实施例中,如果确定的目标存储模块和/或目标存储页不在所述存储器所包含的存储模块和存储页的范围内,在一个例子中,即可能存在所述存储模块仅包括有4个存储模块,而运算得到的目标存储模块指示第5个存储模块;一个存储模块仅包括128个存储页,而运算得到的目标存储页指示第130页存储页,显然是处理器给出的逻辑地址超出了物理容量,可以向所述处理器报错,从而有助于处理器排查错误,提高排查效率。示例性的,所述存储控制器可以根据所述存储器的存储向量确定逻辑地址的取值范围并反馈给所述处理器,以便处理器根据该逻辑地址的取值范围进行逻辑地址分配,从而减少上述错误情况的发生,提高读写效率。
在一些实施例中,确定所述逻辑地址对应的物理地址之后,所述存储控制可以根据读请求从所述存储器的该物理地址指示的存储页中读取数据,以及将写请求携带的数据写入所述存储器的该物理地址指示的存储页中读取数据。
在一种可能的实施方式中,为了读写准确性,每个所述存储页对应有标记位,所述标记位指示该存储页中是否存储有数据。示例性的,所述标记位为第一预设值,表示该存储页中存储有数据;所述标记位为第二预设值,表示该存储页中未存储数据;比如第一预设值和第二预设值的其中一者可以是0,另一者为1。
在确定所述逻辑地址对应的物理地址之后,所述存储控制器获取所述物理地址指示的目标存储页的标记位;在接收到所述处理器的读请求、且所述标记位指示该目标存储页存储有数据的情况下,读取所述目标存储页中的数据并返回给所述处理器;如果接收到所述处理器的读请求、所述标记位指示该目标存储页未存储有数据,可能是处理器指定的该逻辑地址有误,可以向所述处理器报错,从而有助于处理器排查错误,提高排查效率。
在接收到所述处理器的写请求、且所述标记位指示该目标存储页未存储有数据的情况下,所述存储控制器可以将所述写请求携带的数据写入所述目标存储页;如果接收到所述处理器的写请求、且所述标记位指示该目标存储页存储有数据,可以向所述处理器发送确认指令,所述确认指令用于向所述处理器确认是否进行覆盖写入操作,在确定到处理器的确定指令的情况下,对该目标存储页进行覆盖写入操作,从而避免对目标存储页原本存储的数据的误删。
在一些实施例,请参阅图1,本说明书实施例还提供了一种存储器系统,包括存储器20和存储控制器10;
所述存储器20包括有一个或多个存储模块21,所述存储模块21包括有若干存储页;
所述存储控制器10通过一个或多个物理通道与存储器20连接,所述存储模块21与所述物理通道一一对应;所述存储控制器10用于:
接收处理器发送的读/写请求,所述读/写请求携带有逻辑地址;
按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页;其中,基于不同的逻辑地址转换运算得到的所述目标存储页不同;
根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。
在一些实施例中,请参阅图6,所述存储控制器10包括转换组件11,并且所述存储控制器10预置有多种转换运算模式的配置文件。所述存储控制器10还用于:接收所述处理器发送的配置请求,所述配置请求指示有所述处理器即将执行的第一应用程序所适用的第一转换运算模式;根据所述第一转换运算模式的配置文件配置所述转换组件11;其中,若所述读/写请求来自所述第一应用程序,配置后的转换组件11用于按照所述第一转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
在一些实施例中,所述存储控制器10还用于:接收所述处理器发送的配置切换请求,所述配置切换请求指示执行完所述第一应用程序的所述处理器即将执行的第二应用程序所适用的第二转换运算模式;根据所述配置切换请求对所述转换组件11进行复位处理,并基于所述第二转换运算模式的配置文件配置所述转换组件11;所述复位处理包括将所述转换组件11恢复成初始状态;其中,若所述读/写请求来自所述第二应用程序,配置后的转换组件11用于按照所述第二转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
在一些实施例中,所述存储控制器10预置有多种转换运算模式以及模式对应关系,所述模式对应关系指示不同应用程序所适用的转换运算模式;所述读/写请求还携带有程序标识,所述程序标识指示所述处理器当前执行的应用程序。所述存储控制器10还用于:根据所述程序标识和所述模式对应关系,确定目标转换运算模式;按照所述目标转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
在一些实施例中,在所述转换运算模式中设置有取余运算和除法取整运算;所述存储控制器10还用于:至少根据所述逻辑地址和所述物理通道数量进行取余运算,得到相对于起始物理地址的目标存储模块21;以及,至少根据所述逻辑地址和所述物理通道数量进行除法取整运算,得到在该目标存储模块中的目标存储页;其中,在取余运算和除法取整运算中,所述逻辑地址作为被除数或者被除数中的一部分,所述物理通道数量作为除数或者除数中的一部分。
在一些实施例中,所述转换运算模式包括有顺序运算模式和至少一种随机运算模式;所述顺序运算模式指示:通过所述逻辑地址取余所述物理通道数量得到相对于起始物理地址的目标存储模块,以及通过所述逻辑地址除以所述物理通道数量并取整得到在该目标存储模块中的目标存储页;所述随机运算模式指示:对所述逻辑地址和所述物理通道数量中的至少一者进行调整,使用调整后的逻辑地址和/或调整后的物理通道数量参与取余运算和除法取整运算。
在一些实施例中,每个所述存储页对应有标记位,所述标记位指示该存储页中是否存储有数据;在所述确定所述逻辑地址对应的物理地址之后,所述存储控制器10还用于:获取所述物理地址指示的目标存储页的标记位;在接收到所述处理器的读请求、且所述标记位指示该目标存储页存储有数据的情况下,读取所述目标存储页中的数据并返回给所述处理器;否则,向所述处理器报错;在接收到所述处理器的写请求、且所述标记位指示该目标存储页未存储有数据的情况下,将所述写请求携带的数据写入所述目标存储页;否则,向所述处理器发送确认指令,所述确认指令用于向所述处理器确认是否进行覆盖写入操作。
请参阅图7,本说明书实施例还提供了一种电子设备,包括有上述存储器系统100和处理器200;
所述处理器200用于向所述存储器系统100中的存储控制器10发送读/写请求。
在一些实施例中,所述处理器200还用于向所述存储器系统100中的存储控制器10发送配置请求,所述配置请求用于指示存储控制器10根据所述处理器即将执行的第一应用程序所适用的第一转换运算模式的配置文件配置转换组件11。
在一些实施例,所述处理器还用于向所述存储器系统100中的存储控制器10发送配置切换请求,所述配置切换请求用于指示存储控制器10根据所述处理器即将执行的第二应用程序所适用的第二转换运算模式复位转换组件11并进行重新配置。
所述处理器200可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
电子设备可以是智能电话/手机、平板计算机、个人数字助理(PDA)、膝上计算机、台式计算机、媒体内容播放器、视频游戏站/系统、虚拟现实系统、增强现实系统、可穿戴式装置(例如,手表、眼镜、手套、头饰(例如,帽子、头盔、虚拟现实头戴耳机、增强现实头戴耳机、头装式装置(HMD)、头带)、挂件、臂章、腿环、鞋子、马甲)、遥控器、或者任何其他类型的设备。设备可包括,但不仅限于,处理器200、存储器系统100。本领域技术人员可以理解,图7仅仅是电子设备的示例,并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如设备还可以包括输入输出设备、网络接入设备、总线等。
上述设备中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当存储介质中的指令由终端的处理器执行时,使得终端能够执行上述方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (10)
1.一种地址转换方法,应用于存储控制器,所述存储控制器通过一个或多个物理通道与存储器连接,所述存储器包括有一个或多个存储模块,所述存储模块与所述物理通道一一对应,所述存储模块包括有若干存储页;所述方法包括:
接收处理器发送的读/写请求,所述读/写请求携带有逻辑地址;
按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,得到相对于起始物理地址的目标存储模块以及在该目标存储模块中的目标存储页;其中,基于不同的逻辑地址转换运算得到的所述目标存储页不同;
根据所述相对于起始物理地址的目标存储模块、所述目标存储页和所述起始物理地址,确定所述逻辑地址对应的物理地址。
2.根据权利要求1所述的方法,所述存储控制器包括转换组件,并且所述存储控制器预置有多种转换运算模式的配置文件;
在所述接收处理器发送的读/写请求之前,还包括:
接收所述处理器发送的配置请求,所述配置请求指示有所述处理器即将执行的第一应用程序所适用的第一转换运算模式;
根据所述第一转换运算模式的配置文件配置所述转换组件;其中,若所述读/写请求来自所述第一应用程序,配置后的转换组件用于按照所述第一转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
3.根据权利要求2所述的方法,还包括:
接收所述处理器发送的配置切换请求,所述配置切换请求指示执行完所述第一应用程序的所述处理器即将执行的第二应用程序所适用的第二转换运算模式;
根据所述配置切换请求对所述转换组件进行复位处理,并基于所述第二转换运算模式的配置文件配置所述转换组件;所述复位处理包括将所述转换组件恢复成初始状态;
其中,若所述读/写请求来自所述第二应用程序,配置后的转换组件用于按照所述第二转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
4.根据权利要求1所述的方法,所述存储控制器预置有多种转换运算模式以及模式对应关系,所述模式对应关系指示不同应用程序所适用的转换运算模式;
所述读/写请求还携带有程序标识,所述程序标识指示所述处理器当前执行的应用程序;
所述按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,包括:
根据所述程序标识和所述模式对应关系,确定目标转换运算模式;
按照所述目标转换运算模式和物理通道数量对所述逻辑地址进行转换运算。
5.根据权利要求1至4任意一项所述的方法,在所述转换运算模式中设置有取余运算和除法取整运算;
所述按照预置的转换运算模式和物理通道数量对所述逻辑地址进行转换运算,包括:
至少根据所述逻辑地址和所述物理通道数量进行取余运算,得到相对于起始物理地址的目标存储模块;以及,至少根据所述逻辑地址和所述物理通道数量进行除法取整运算,得到在该目标存储模块中的目标存储页;其中,在取余运算和除法取整运算中,所述逻辑地址作为被除数或者被除数中的一部分,所述物理通道数量作为除数或者除数中的一部分。
6.根据权利要求5所述的方法,所述转换运算模式包括有顺序运算模式和至少一种随机运算模式;
所述顺序运算模式指示:通过所述逻辑地址取余所述物理通道数量得到相对于起始物理地址的目标存储模块,以及通过所述逻辑地址除以所述物理通道数量并取整得到在该目标存储模块中的目标存储页;
所述随机运算模式指示:对所述逻辑地址和所述物理通道数量中的至少一者进行调整,使用调整后的逻辑地址和/或调整后的物理通道数量参与取余运算和除法取整运算。
7.根据权利要求1所述的方法,每个所述存储页对应有标记位,所述标记位指示该存储页中是否存储有数据;
在所述确定所述逻辑地址对应的物理地址之后,还包括:
获取所述物理地址指示的目标存储页的标记位;
在接收到所述处理器的读请求、且所述标记位指示该目标存储页存储有数据的情况下,读取所述目标存储页中的数据并返回给所述处理器;否则,向所述处理器报错;
在接收到所述处理器的写请求、且所述标记位指示该目标存储页未存储有数据的情况下,将所述写请求携带的数据写入所述目标存储页;否则,向所述处理器发送确认指令,所述确认指令用于向所述处理器确认是否进行覆盖写入操作。
8.一种存储器系统,包括存储器和存储控制器;
所述存储器包括有一个或多个存储模块,所述存储模块包括有若干存储页;
所述存储控制器通过一个或多个物理通道与存储器连接,所述存储模块与所述物理通道一一对应;所述存储控制器用于执行权利要求1至7任意一项所述的方法。
9.一种电子设备,包括如权利要求8所述的存储器系统和处理器;
所述处理器至少用于向所述存储器系统中的存储控制器发送读/写请求。
10.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210707632.6A CN115168249A (zh) | 2022-06-21 | 2022-06-21 | 地址转换方法、存储器系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210707632.6A CN115168249A (zh) | 2022-06-21 | 2022-06-21 | 地址转换方法、存储器系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168249A true CN115168249A (zh) | 2022-10-11 |
Family
ID=83487101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210707632.6A Pending CN115168249A (zh) | 2022-06-21 | 2022-06-21 | 地址转换方法、存储器系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168249A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719484A (zh) * | 2023-08-09 | 2023-09-08 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列的写数据处理方法、装置、设备和介质 |
-
2022
- 2022-06-21 CN CN202210707632.6A patent/CN115168249A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116719484A (zh) * | 2023-08-09 | 2023-09-08 | 苏州浪潮智能科技有限公司 | 一种磁盘阵列的写数据处理方法、装置、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725902B2 (en) | Methods for scheduling read commands and apparatuses using the same | |
US9367478B2 (en) | Controlling direct memory access page mappings | |
US10083120B2 (en) | Memory system, and address mapping method and access method thereof | |
JP2016207195A (ja) | メモリ装置及び制御プログラム | |
CN114942831A (zh) | 处理器、芯片、电子设备及数据处理方法 | |
CN115168249A (zh) | 地址转换方法、存储器系统、电子设备及存储介质 | |
US9772776B2 (en) | Per-memory group swap device | |
US8726101B2 (en) | Apparatus and method for tracing memory access information | |
CN112286838A (zh) | 存储设备可配置的映射粒度系统 | |
US10019160B2 (en) | Controller and data storage device including the same | |
US20110231627A1 (en) | Memory managing apparatus and method | |
CN113805792A (zh) | 存储器系统及其操作方法 | |
US20150199230A1 (en) | Memory system capable of re-mapping address | |
US20210117114A1 (en) | Memory system for flexibly allocating memory for multiple processors and operating method thereof | |
CN114385552A (zh) | 一种内存中文件页的页整合方法及装置 | |
US20150212759A1 (en) | Storage device with multiple processing units and data processing method | |
US11429518B2 (en) | Paging in thin-provisioned disaggregated memory | |
US9836239B2 (en) | Recording device and information processing device | |
US10394707B2 (en) | Memory controller with memory resource memory management | |
CN110096355B (zh) | 一种共享资源分配方法、装置和设备 | |
CN110286995B (zh) | 一种数据读写方法和装置 | |
US20160266974A1 (en) | Memory controller, data storage device and data write method | |
CN107870736B (zh) | 支持大于4gb非线性闪存的方法及装置 | |
CN115344506B (zh) | 内存地址的映射方法、内存访问方法和装置、芯片、设备 | |
US11835992B2 (en) | Hybrid memory system interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |