CN110162491B - 存储器控制器及其操作方法、应用处理器和数据处理系统 - Google Patents
存储器控制器及其操作方法、应用处理器和数据处理系统 Download PDFInfo
- Publication number
- CN110162491B CN110162491B CN201910110995.XA CN201910110995A CN110162491B CN 110162491 B CN110162491 B CN 110162491B CN 201910110995 A CN201910110995 A CN 201910110995A CN 110162491 B CN110162491 B CN 110162491B
- Authority
- CN
- China
- Prior art keywords
- address translation
- address
- memory
- resource utilization
- scheme
- 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.)
- Active
Links
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
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Debugging And Monitoring (AREA)
Abstract
提供存储器控制器及其操作方法、应用处理器和数据处理系统。所述存储器控制器包括:地址转换器,被配置为根据基于存储器资源利用率从多个地址转换方案选择的地址转换方案,将从主机处理器接收的第一地址转换为指示存储器地址的第二地址;评价模块,被配置为根据基于所述多个地址转换方案中的每一个产生的多个存储器地址来评价所述多个地址转换方案中的每一个的存储器资源利用率。
Description
本申请要求于2018年2月12日提交到韩国知识产权局的第10-2018-0017059号韩国专利申请的利益,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
本发明构思的示例实施例涉及一种存储器控制器和/或应用处理器。例如,至少一些示例实施例涉及用于控制输入/输出(I/O)装置的利用率和性能的存储器控制器、包括存储器控制器的应用处理器(AP)、数据处理系统和/或操作存储器控制器的方法。
背景技术
存储器控制器或AP可用于电子系统(诸如,数据处理系统)中,并且可与各种外围装置交换各种信号。例如,存储器控制器可控制易失性存储器装置(诸如,动态随机存取存储器(DRAM))或非易失性存储器装置(诸如,闪存或电阻存储器),并可将从请求对存储器装置的访问的主机处理器接收的系统地址转换成适于存储器装置的存储器地址。存储器控制器可利用地址转换方案将系统地址转换为存储器地址。
发明内容
本发明构思的示例实施例提供用于提高存储器装置和其他输入/输出装置的利用率和性能的存储器控制器、包括存储器控制器的应用处理器和/或操作存储器控制器的方法。
根据本发明构思的一些示例实施例,提供一种用于控制存储器装置的存储器控制器。所述存储器控制器包括:处理电路,被配置为:基于地址转换方案,将从主机处理器接收的第一地址转换为与存储器装置相关联的第二地址,所述地址转换方案基于存储器资源利用率从多个地址转换方案中被选择,基于使用所述多个地址转换方案产生的多个存储器地址来评价所述多个地址转换方案中的每一个的存储器资源利用率。
根据本发明构思的其他示例实施例,提供一种应用处理器,包括:主机处理器,被配置为提供访问请求和第一地址;存储器控制器,被配置为:基于从多个地址转换方案选择的第一地址转换方案来执行用于将第一地址转换为与存储器地址相关联的第二地址的地址转换,在第一时间段期间基于第一地址转换方案执行地址转换的同时,计算指示所述多个地址转换方案中的每一个的存储器资源利用率的资源利用率分数,在第二时间段期间基于第二地址转换方案,执行用于将第一地址转换为第二地址的地址转换,使得在第一时间段期间第二地址转换方案的存储器资源利用率在所述多个地址转换方案中最高,所述第二时间段在所述第一时间段之后。
根据本发明构思的其他示例实施例,提供一种操作存储器控制器将系统地址转换为与存储器装置相关联的存储器地址的方法。在一些示例实施例中,所述方法包括:基于从多个转换方案候选之中选择的地址转换方案,将系统地址转换为存储器地址;计算所述多个转换方案候选的资源利用率分数;基于资源利用率分数,从所述多个转换方案候选选择具有最高资源利用率的下一地址转换方案;将所述地址转换方案改变为下一转换方案;基于下一地址转换方案将系统地址转换为存储器地址。
根据本发明构思的其他示例实施例,提供一种数据处理系统,包括:至少一个知识产权(IP)块;输入/输出装置,被配置为访问所述至少一个IP块;控制器,被配置为:通过基于从所述至少一个IP块接收的系统地址执行机器学习,来按时间顺序地导出多个地址转换方案以及所述多个地址转换方案中的每一个的资源利用率分数,根据基于资源利用率分数从所述多个地址转换方案选择的地址转换方案,将从所述至少一个IP块接收的系统地址转换为用于输入/输出装置的装置地址。
附图说明
通过以下结合附图的详细描述,将更清楚地理解本发明构思的示例实施例,其中:
图1是根据本发明构思的示例实施例的包括存储器控制器的数据处理系统的框图;
图2是用于解释地址转换方案的示例的示图;
图3A和图3B是用于解释图1的存储器装置的示例的示图;
图4是根据本发明构思的示例实施例的存储器控制器的框图;
图5是图4的第一计数器块的框图;
图6是根据本发明构思的示例实施例的操作存储器控制器的方法的流程图;
图7是计算图6中的资源利用率分数的方法的流程图;
图8是用于解释在特定示例中用于资源利用率分数的计算的评价项和计算评价项的值的方法的示图;
图9A和图9B是根据示例实施例的更新资源利用率分数的方法的示图;
图10A至图10E是用于解释根据本发明构思的示例实施例的使用存储器控制器动态地改变反映使用模式的地址转换方案的方法的示图;
图11是示出针对存储器页状态的存储器延迟的曲线图;
图12是根据本发明构思的一些示例实施例的存储器控制器的框图;
图13是根据本发明构思的一些示例实施例的存储器控制器的框图;
图14是基于机器学习来设置地址转换方案的方法的示例的示图;
图15是根据本发明构思的示例实施例的应用处理器的框图。
具体实施方式
图1是根据本发明构思的示例实施例的包括存储器控制器的数据处理系统的框图。
参照图1,数据处理系统1000可被安装在各种类型的电子装置上:诸如,膝上型计算机、智能电话、平板个人计算机(PC)、无人机、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、便携式多媒体播放器(PMP)、手持式游戏机、移动互联网装置、多媒体装置、可穿戴计算机、物联网(IoT)装置、万物网(IoE)装置、电子书、智能家用电器、医疗装置和车辆驾驶装置。
数据处理系统1000可包括存储器控制器100、存储器装置200和处理器300。数据处理系统1000还可包括各种类型的输入/输出(I/O)装置和知识产权(IP)块。在一些示例实施例中,存储器控制器100和处理器300可被集成到单个半导体芯片中。例如,存储器控制器100和处理器300可形成被实现为片上系统(SoC)的应用处理器(AP)。
处理器300是请求对存储器装置200的访问的IP块。例如,处理器300可包括中央处理器(CPU)、图形处理器(GPU)和显示控制器,并且处理器300可被称为主IP块。处理器300可通过系统总线将访问请求RQ(例如,针对数据DATA的写入请求或读取请求)和系统地址SA发送到存储器控制器100。
存储器装置200可包括易失性存储器和/或非易失性存储器。当存储器装置200包括易失性存储器时,存储器装置200可包括诸如双倍数据速率(DDR)同步动态随机存取存储器(SDRAM)、低功率DDR(LPDDR)SDRAM、图形DDR(GDDR)SDRAM和Rambus DRAM(RDRAM)的存储器。然而,本发明构思的示例实施例不限于此。例如,存储器装置200可包括非易失性存储器,例如,闪存、磁RAM(MRAM)、铁电RAM(FRAM)、相变RAM(PRAM)和电阻RAM(ReRAM)。
存储器装置200可包括多个存储器M1至Mm。存储器M1至存储器Mm中的每一个表示物理上和逻辑上分类的存储器资源。存储器M1至存储器Mm中的每一个可包括存储器排(rank)、存储器存储体(bank)、存储器行(或页)和存储器列(在下文中,它们被称为排、存储体、行和列),或者可包括逻辑分类的区域。
存储器装置200可以是包括至少一个存储器芯片的半导体封装件,或者是在模块板上安装多个存储器芯片的存储器模块。存储器装置200可被嵌入在SoC中。
存储器控制器100是根据存储器装置200的类型(例如,闪存或DRAM)控制对存储器装置200的访问的接口。存储器控制器100可控制存储器装置200,使得响应于从处理器300接收的写入请求将数据DATA写入到存储器装置200,或者响应于从处理器300接收的读取请求从存储器装置200读取数据。存储器控制器100产生用于控制存储器装置200的各种信号(例如,命令CMD和存储器地址MA),并根据处理器300的访问请求RQ和系统地址SA向存储器装置200提供各种信号。
存储器控制器100可将从处理器300接收的系统地址SA转换为与存储器装置200对应的存储器地址MA。系统地址SA表示由处理器300识别的地址结构,存储器地址MA表示由存储器装置200识别的地址结构(例如,排、存储体、行或列)。存储器控制器100可基于已经设置的地址转换方案将系统地址SA转换为存储器地址MA。将参照图2描述地址转换方案。
图2是用于解释地址转换方案的示例的示图。
参照图2,系统地址SA和存储器地址MA可包括多个位。这里,MSB表示最高有效位,LSB表示最低有效位。作为非限制性示例,系统地址SA可被表示为具有八个代码值的十六进制代码(例如,0X80000000),并且系统地址SA可包括32位。系统地址SA的32位可在存储器地址MA的排信号RK、存储体信号BK、行信号R和列信号C之中被分配。可根据存储器地址MA的排信号RK、存储体信号BK、行信号R和列信号C,在存储器装置200中选择与存储器地址MA对应的排、存储体、行和列。
地址转换方案可表示将包括在系统地址SA中的多个位分配给排信号RK、存储体信号BK、行信号R和列信号C的方法。例如,如图2中所示,系统地址SA的多个位之中的一些位或一个位可被分配给排信号RK、存储体信号BK、行信号R和列信号C之中的一个信号,或者可与其他位经历运算(例如,异或运算),运算结果可被分配给排信号RK、存储体信号BK、行信号R和列信号C之中的一个信号。可使用分配给排信号RK、存储体信号BK、行信号R和列信号C之中的一个信号的位的位置以及使用该位的哈希函数来表示地址转换方案。地址转换方案可随着该位的位置和哈希函数的选择而变化。
返回参照图1,存储器控制器100可包括处理电路和存储器。
处理电路可以是,但不限于:处理器、中央处理器(CPU)、控制器、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、片上系统(SoC)、可编程逻辑单元、微处理器或能够以限定方式执行操作的任何其他装置。
处理电路可通过布局设计或存储在存储器(未示出)中的计算机可读指令的执行,被配置为专用计算机,以实现地址转换器110和评价模块120的功能。
地址转换器110可包括根据不同的地址转换方案(或地址映射方案)实现的多个地址转换模块(例如,第一地址转换模块MD1、第二地址转换模块MD2和第三地址转换模块MD3)。各个的第一地址转换模块MD1至第三地址转换模块MD3的地址转换方案可被设置(或可选地,预先确定),并且第一地址转换模块MD1至第三地址转换模块MD3可由硬件来实现。然而,本发明构思的示例实施例不限于此。在一些示例实施例中,第一地址转换模块MD1至第三地址转换模块MD3可由执行软件的处理电路来实现以将处理器转变为专用处理器,并且可在数据处理系统1000的操作期间产生(draw)地址转换方案。尽管地址转换器110包括图1中的第一地址转换模块MD1至第三地址转换模块MD3,但是本发明构思的示例实施例不限于此。地址转换器110可包括至少两个地址转换模块。
第一地址转换模块MD1至第三地址转换模块MD3中的每一个可对系统地址SA执行地址转换,并产生存储器地址MA。然而,从从第一地址转换模块MD1至第三地址转换模块MD3选择的一个地址转换模块输出的存储器地址MA可被发送到存储器装置200。换句话说,第一地址转换模块MD1至第三地址转换模块MD3可以是用于应用到存储器装置200的地址转换模块的转换模块候选,从第一地址转换模块MD1至第三地址转换模块MD3选择的一个地址转换模块可实际上执行地址转换。例如,当选择第一地址转换模块MD1时,只有从第一地址转换模块MD1输出的存储器地址MA可被发送到存储器装置200。换句话说,第二转换模块MD2和第三地址转换模块MD3的地址转换操作可以是后台操作。
评价模块120可实时评价第一地址转换模块MD1至第三地址转换模块MD3中的每一个的存储器资源利用率(memory resource utilization)。详细地讲,评价模块120可分析从第一地址转换模块MD1至第三地址转换模块MD3中的每一个输出的存储器地址MA,并评价第一地址转换模块MD1至第三地址转换模块MD3中的每一个的存储器资源利用率。例如,评价模块120可基于由从第一地址转换模块MD1输出的存储器地址MA选择的排、存储体和行之中的至少两个,来计算指示第一地址转换模块MD1的存储器资源利用率的资源利用率分数。在一些示例实施例中,评价模块120可基于排、存储体和行来计算资源利用率分数。评价模块120可以以如上所述相同的方式来计算第二地址转换模块MD2和第三地址转换模块MD3的各自的资源利用率分数,因此,评价模块120可评价第一地址转换模块MD1至第三地址转换模块MD3中的每一个的存储器资源利用率。可实时计算和更新资源利用率分数。下面将参照图8至图10E来描述计算资源利用率分数的方法。
存储器控制器100可在系统重启或空闲时间段期间,基于评价针对第一地址转换模块MD1至第三地址转换模块MD3中的每一个的存储器资源利用率的最新结果,选择第一地址转换模块MD1至第三地址转换模块MD3之中的具有最高存储器资源利用率的地址转换模块,并可使用选择的地址转换模块作为地址转换器110的地址转换模块。例如,第一地址转换模块MD1可执行地址转换,同时地,第一地址转换模块MD1至第三地址转换模块MD3的存储器资源利用率可被评价。当系统重启之前的评价结果指示第二地址转换模块MD2的存储器资源利用率为最高时,在系统重启期间,可将地址转换器110中使用的地址转换模块从第一地址转换模块MD1改变为第二地址转换模块。由于系统重启的完成,因此,第二地址转换模块MD2可执行地址转换。可重复该过程。
由于存储器装置200包括多个存储器M1至Mm,因此,存储器装置200的页冲突率(或页命中率)和存储器利用率可随着存储器控制器100中使用的地址转换方案(即,系统地址SA被映射到存储器M1到存储器Mm中的哪一个)而变化。即使在存储器控制器100的制造期间,通过许多性能测试选择了可在各种条件下使存储器利用率最大化的地址转换方案,但是标准化的地址转换方案也可能不符合各种用户的使用模式。根据用户的使用模式(即,在数据处理系统1000中的可用的应用之中,用户通常执行什么类型的应用),从处理器300接收的系统地址SA的模式(即,包括在系统地址SA中的所有位之中的频繁切换的位的位置)可被改变。
同时,评价针对存储器控制器100中的多个地址转换方案的存储器资源利用率的结果可随着系统地址SA的模式而变化。因此,在一个或多个示例实施例中,存储器控制器100可通过实时评价针对多个地址转换方案的存储器资源利用率,并基于评价结果动态地改变地址转换方案,来自适应地根据系统地址SA的模式操作地址转换方案。因此,存储器装置200的利用率和性能可被提高。
图3A和图3B是用于解释图1的存储器装置的示例的示图。
参照图3A,存储器装置200a可包括第一存储器M1至第十六存储器M16。第一存储器M1至第八存储器M8可形成第一排RK0,第九存储器M9至第十六存储器M16可形成第二排RK1。命令和地址信号C/A可从存储器控制器100发送到存储器装置200a。如上所述,包括在命令和地址信号C/A中的存储器地址MA可包括排信号、存储体信号、行信号和列信号。存储器控制器100可通过数据总线(或数据通道)20与存储器装置200a交换包括多个位的数据(例如,包括64位的Data[63:0])。在下文中,假设从存储器控制器100接收到写入命令。
可以以8位将Data[63:0]发送到第一存储器M1至第八存储器M8以及第九存储器M9至第十六存储器M16。可根据存储器地址MA的排信号来选择第一排RK0和第二排RK1中的一个,Data[63:0]可被发送到选择的排。
将参照图3B来描述图3A的第一存储器M1。第一存储器M1可包括第一存储体BK0至第八存储体BK7。可通过选择器MUX将Data[7:0]发送到选择的存储体。选择器MUX可基于存储器地址MA的存储体来操作。可根据存储器地址MA的存储体信号来选择第一存储体BK0至第八存储体BK7中的一个,Data[7:0]可被发送到选择的存储体。
第一存储体BK0至第八存储体BK7中的每一个可包括存储器单元阵列21、行解码器22、读/写电路23和列解码器24。存储单元阵列21可包括第一行R0至第八行R7,以及第一列C0至第八列C7。行解码器22和列解码器24可根据存储器地址MA的行和列,来选择在存储器单元阵列21中写入Data[7:0]的区域(例如,页)。读/写电路23可将Data[7:0]写入到选择的区域。
在存储器控制器100与存储器装置200之间发送和接收数据期间的时间以及将数据写入到由存储器地址MA选择的排、存储体和行所花费的时间可影响存储器延迟。当顺序接收的存储器地址MA选择不同的排或不同的存储体时,可在排和存储体中并行地执行写入。此外,相比于当顺序接收的存储器地址MA选择相同的排和相同的存储体但是不同的行时,当顺序接收的存储器地址MA选择相同的排、相同的存储体和相同的行时,写入时间可被减少。如上所述,当存储器地址MA选择不同的排或不同的存储体,或者相同的排、相同的存储体和相同的行时,存储器利用率可被提高,延迟可被减小。
因此,存储器控制器100可通过基于由根据地址转换方案输出的存储器地址MA选择的排、存储体和行之中的至少两个实时评价针对多个地址转换方案的存储器资源利用率,并通过动态地使用具有最高存储器资源利用率的地址转换方案,来提高存储器利用率。
图4是根据本发明构思的示例实施例的存储器控制器的框图。
参照图4,存储器控制器100a可包括地址转换器110、评价模块120和请求队列130。
可在请求队列130中设置队列索引QI。从(图1的)处理器300接收的多个访问请求可根据它们从处理器300被接收的顺序来排队。访问请求的类型QC(例如,Q_1和Q_2)以及从处理器300接收与各个访问请求对应的系统地址SA(例如,SA_1和SA_2)可被排队。例如,访问请求的类型QC和包括写入请求和读取请求中的一个。排队的访问请求可根据其队列顺序,被顺序地或非顺序地处理。如以上参照图1所述,地址转换器110可包括多个地址转换模块(例如,第一地址转换模块MD1至第三地址转换模块MD3)。第一地址转换模块MD1至第三地址转换模块MD3可基于一个系统地址SA分别产生彼此不同的第一存储器地址MA1至第三存储器地址MA3。第一存储器地址MA1至第三存储器地址MA3可被提供给评价模块120和选择器115。
选择器115可根据选择信号SEL从第一存储器地址MA1至第三存储器地址MA3选择存储器地址MA,并且可将存储器地址MA输出到(图1的)存储器装置200。此时,选择信号SEL可指示第一地址转换模块MD1至第三地址转换模块MD3中的哪一个当前已经被选择作为地址转换器110的地址转换模块。
评价模块120可将从处理器300接收的多个访问请求的数量(即,访问请求计数N(其中,N是至少为2的整数))设置为窗口大小,并且可以每N个访问请求评价第一地址转换模块MD1至第三地址转换模块MD3中的每一个的存储器资源利用率。在一些示例实施例中,评价模块120可分别计算由第一地址转换模块MD1至第三地址转换模块MD3中的每一个选择的(或使用的)排的平均值、选择的存储体的数量以及在相同的排和相同的存储体中选择的行的平均值作为第一评价值、第二评价值和第三评价值,并可基于第一评价值至第三评价值来计算资源利用率分数。
例如,当窗口大小被设置为16时,每当请求队列130中的访问请求的数量达到16时,评价模块120可对排的数量、存储器的数量和行的数量进行计数,并可基于排的数量、存储器的数量和行的数量来计算并更新资源利用率分数。这将在下面参照图8至图9B来详细描述。
评价模块120可包括多个计数器块(例如,第一计数器块CB1至第三计数器块CB3)以及逻辑电路LC。第一计数器块CB1至第三计数器块CB3可分别接收分别从第一地址转换模块MD1至第三地址转换模块MD3输出的第一存储器地址MA1至第三存储器地址MA3。将参照图5描述第一计数器块CB1作为示例。
图5是图4的第一计数器块的框图。
参照图5,第一计数器块CB1可包括排计数器121、存储体计数器122和行计数器123。排计数器121、存储体计数器122和行计数器123可以每设置的窗口大小,分别对由第一存储器地址MA1选择的排、存储体和行进行计数。例如,当窗口大小被设置为16时,每当请求队列130中的项的数量达到16时,可对由16个第一存储器地址MA1指示的排、存储体和行的数量进行计数。
排计数器121可对由多个第一存储器地址MA1的排信号RK指示的排的数量进行计数,并产生排计数值CV_RK。排计数值CV_RK可包括针对多个排(例如,第一排和第二排)中的每个排的计数值。
存储体计数器122可对由多个第一存储器地址MA1的排信号RK和存储体信号BK指示的存储体的数量进行计数,并产生存储体计数值CV_BK。例如,当存储器装置包括两个排并且每个排包括八个存储体时,存储体计数值CV_BK可包括针对从总共16个存储体(即,第一排的第一存储体至第八存储体以及第二排的第一存储体至第八存储体)选择的多个存储体中的每个存储体的计数值。
行计数器123可对由多个第一存储器地址MA1的排信号RK、存储体信号BK和行信号R指示的行的数量进行计数,并产生行计数值CV_R。例如,当在排内的存储体中包括八个行时,行计数值CV_R可包括针对从128个行(即,16个存储体中的每一个中的八个行)选择的多个行的每行的计数值。
第二计数器块CB2和第三计数器块CB3的操作与第一计数器块CB1的操作类似。因此,将省略冗余的描述。
返回参照图4,逻辑电路LC可基于从第一计数器块CB1至第三计数器块CB3接收的计数值,来计算第一地址转换模块MD1至第三地址转换模块MD3中的每一个的资源利用率分数。在一些示例实施例中,逻辑电路LC可选择第一地址转换模块MD1至第三地址转换模块MD3之中的具有最高资源利用率分数的地址转换模块。在一个示例实施例中,处理器300(或配备有存储器控制器的数据处理系统的CPU)可将第一地址转换模块MD1至第三地址转换模块MD3之中的资源利用率进行比较,并根据比较结果选择具有最高资源利用率分数的地址转换模块。
图6是根据本发明构思的示例实施例的操作存储器控制器的方法的流程图。详细地讲,图6示出使用存储器控制器来设置地址转换方案的方法。可在图1的存储器控制器100和图4的存储器控制器100a中执行图6中所示的方法。因此,参照图1和图4进行的描述可应用于在此讨论的方法。
参照图6,在操作S110中,存储器控制器100、存储器控制器100a可基于多个地址转换方案之中的默认设置的地址转换方案来执行地址转换。多个地址转换方案可被(例如,预先)选择并被存储在存储器控制器或外部储存器中。在一些示例实施例中,多个地址转换方案可通过硬件、软件或它们的组合来实现。可设置默认值,使得多个地址转换方案中的一个用于在初始系统启动时的地址转换。因此,在初始系统启动时,存储器控制器100、存储器控制器100a可基于默认设置的地址转换方案来执行地址转换。
在操作S120中,存储器控制器100、存储器控制器100a可计算针对多个地址转换方案中的每一个的资源利用率分数。可以每设置的窗口大小,计算并更新针对多个地址转换方案中的每一个的资源利用率分数。存储器控制器100、存储器控制器100a可同时执行操作S110和操作S120。此外,在一些示例实施例中,存储器控制器100、存储器控制器100a可作为后台操作执行操作S120。
将参照图7详细描述操作S120。
图7是图6中的计算资源利用率分数的方法的流程图。
参照图7,在操作S121中,存储器控制器100、存储器控制器100a可使用多个地址转换方案对从多个地址转换模块中的每一个输出的排信号、存储体信号和/或行信号进行计数。
在操作S122中,存储器控制器100、存储器控制器100a可基于计数值来计算第一评价值至第三评价值。第一评价值可以与排选择有关,第二评价值可以与存储体选择有关,第三评价值可以与行选择有关。例如,第一评价值可指示在窗口大小中的选择的排的平均值,第二评价值指示选择的存储体的数量,第三评价值指示在相同的排和相同的存储体中的选择的行的平均值。
在操作S123中,存储器控制器100、存储器控制器100a可将权重施加到第一评价值至第三评价值中的每一个。在计算资源利用率分数时,第一评价值至第三评价值的重要性的等级可能不相同。因此,更高的权重可被施加到被确定为具有更高等级重要性的评价值。
在操作S124中,存储器控制器100、存储器100a可基于加权的值来计算资源利用率分数。例如,存储器控制器可对加权的值执行算术运算,以计算资源利用率分数。将参照图8详细描述该方法。
返回参照图6,在操作S130中,存储器控制器100、存储器控制器100a可选择地址转换方案。例如,存储器控制器100、存储器控制器100a可选择多个地址转换方案之中的具有最高资源利用率分数的地址转换方案。在一些示例实施例中,除了存储器控制器100、存储器控制器100a之外,配备有存储器控制器100、存储器控制器100a的数据处理系统中的另一处理器(例如,主处理器)可选择具有最高资源利用率分数的地址转换方案。关于选择的地址转换方案的信息可被更新并被存储在存储器控制器100、存储器控制器100a内部的存储空间(例如,寄存器),或者存储器控制器100、存储器控制器100a外部的非易失性存储器(或,储存器)中。例如,当数据处理系统进入空闲时间段时,关于选择的地址转换方案的信息可被更新并被存储在非易失性存储器或者存储器控制器100、存储器控制器100a内部的存储空间中。
此后,在操作S140中,存储器控制器100、存储器控制器100a可基于选择的地址转换方案来执行地址转换。换句话说,可改变地址转换方案。
当在系统运行期间改变地址转换方案时,存储在存储器装置200中的数据可被移动到根据改变的地址转换方案确定的位置。这种数据重定位(relocation)可需要大量时间,因此,当数据处理系统进入并保持在空闲时间段所花费的估计时间大于数据重定位所花费的时间时,地址转换方案可被改变。
可选地,可在系统重启时将地址转换方案改变为选择的地址转换方案。在系统重启时,启动加载器(boot loader)应用驱动该系统时在非易失性存储器中更新的地址转换方案,因此,存储器控制器100、存储器控制器100a可基于与系统重启之前使用的地址转换方案不同的改变的地址转换方案来执行地址转换。
同时,存储器控制器100、存储器控制器100a可重复地执行操作S120至操作S140。因此,存储器控制器100、存储器控制器100a可根据基于用户的使用模式选择的地址转换方案来执行地址转换。
图8是用于解释在特定示例中的用于资源利用率分数的计算的评价项和计算评价项的值的方法的示图。
图8示出用于基于从第一地址转换模块MD1输出的第一存储器地址MA1来计算第一地址转换模块MD1的资源利用率分数的评价项的分数。假设窗口大小为16,存储器装置中的排的数量为2,每个排中的存储体的数量为8,每个存储体中的行的数量为8。如图8中所示,还假设第一地址转换模块MD1(详细地讲,从第一地址转换模块MD1输出的多个第一存储器地址中的每一个)响应于与分配给1至16的队列索引QI的访问请求一起接收的系统地址中的每一个来选择排、存储体和行。
参照图8,评价项可包括与存储器地址的排选择相关的第一评价值EV1、与存储器地址的存储体选择相关的第二评价值EV2、以及与存储器地址的行选择相关的第三评价值EV3。如上所述,第一评价值EV1指示由第一地址转换模块MD1选择的(或使用的)排的平均值,第二评价值EV2指示由第一地址转换模块MD1选择的存储体的数量,第三评价值EV3指示由第一地址转换模块MD1在相同的排和相同的存储体中选择的行的平均值。
针对第一评价值EV1,可分析排0和排1的分布,可计算在窗口大小内平均已经选择多少排。例如,当仅选择排0或排1时,可知平均选择了一个排,1可以是第一评价值EV1的最小值。相反地,当排0和排1中的每一个被选择8次时,可知平均选择了两个排,2可以是第一评价值EV1的最大值。如图8中所示,当排0被选择13次,并且排1被选择三次或反之亦然时,可计算出平均选择了1.38个排。随着第一评价值EV1更接近最大值2,存储器利用率可提高。
第一评价值EV1可被具体定义为等式1:
EV1=2×(1-(Max(PR0,PR1)-0.5)) (1)
其中,PR0是排0与总选择数(例如,16)的选择比,PR1是排1与总选择数的选择比。Max(PR0,PR1)表示PR0和PR1之中的最大值。同时,等式1仅是用于计算第一评价值EV1的示例公式,并且可被不同地改变。
针对第二评价值EV2,可基于对在排0和排1中的每一个中选择的存储体进行分析的结果来计算在窗口大小内选择的存储体的数量。例如,由于在每个排中包括八个存储体,并且窗口大小为16,因此,第二评价值EV2的最大值可以是16,并且其最小值可以是1。随着第二评价值EV2更接近最大值,存储器利用率可提高。
如图8中所示,在排0中选择存储体1、存储体3和存储体7,并且在排1中选择存储体0,因此,第二评价值EV2可以是4。
针对第三评价值EV3,可计算在相同的排和相同的存储体中选择的行的平均值。(当在相同的排和相同的存储体中一行被选择16次时)第三评价值EV3的最小值可以是1。由于窗口大小是16,所以第三评价值EV3的最大值可以是16。随着第三评价值EV3更接近最小值,存储器利用率可提高。
参照图8,在排0和存储体1中选择的行的数量是2,在排0和存储体3中选择的行的数量是5,在排0和存储体7中选择的行的数量是6,在排1和存储体0中选择的行的数量是3。因此,第三评价值EV3可以是4。
可以如上所述地计算第一评价值EV1、第二评价值EV2和第三评价值EV3。同时,就提高存储器利用率而言,第一评价值EV1可具有最高等级的重要性,第三评价值EV3可具有最低等级的重要性。因此,在基于第一评价值EV1至第三评价值EV3来计算资源利用率分数时,不同的权重可被分别施加到第一评价值EV1至第三评价EV3。此时,最高权重可被施加到第一评价值EV1,最低权重可被施加到第三评价值EV3。
如上所述,随着第一评价值EV1和第二评价值EV2更接近最大值,并且第三评价值EV3更接近最小值,存储器利用率可提高。可针对第一评价值EV1和第二评价值EV2中的每一个计算与对应的最大值的接近度,可针对第三评价值EV3计算与最小值的接近度。可将针对每个评价项不同设置的权重乘以计算的接近度中的每一个,并且可对相乘结果进行相加以计算资源利用率分数。
例如,与第一评价值EV1的最大值Max_EV1的接近度PXY1可被定义为等式2:
PXY1=1–(Max_EV1–EV1)/(Max_EV1-Min_EV1) (2)
其中,Min_EV1是第一评价值EV1的最小值。
与等式2类似地定义与第二评价值EV2的最大值Max_EV2的接近度PXY2,因此,可从等式2导出与第二评价值EV2的最大值Max_EV2的接近度PXY2。
与第三评价值EV3的最小值Min_EV3的接近度PXY3可被定义为等式3:
PXY3=(Max_EV3–EV3)/(Max_EV3-Min_EV3) (3)
例如,在图8中,第一评价值EV1的接近度PXY1可被计算为0.38,第二评价值EV2的接近度PXY2可被计算为0.2,第三评价值EV3的接近度PXY3可以被计算为0.8。
当针对第一评价值EV1的第一权重被设置为0.50,针对第二评价值EV2的第二权重被设置为0.29,针对第三评价值EV3的第三权重被设置为0.21时,第一地址转换模块MD1的资源利用率分数RUV可被计算为(0.38×0.5+0.2×0.29+0.8×0.21)×100=41.6。
已经参照图8描述了计算第一评价值EV1至第三评价值EV3的方法以及基于第一评价值EV1至第三评价值EV3来计算资源利用率分数RUV的方法,但是本发明构思的示例实施例不限于此。可不同地改变计算第一评价值EV1至第三评价值EV3的方法、计算资源利用率分数RUV的方法。例如,基于至少两个评价值计算存储器资源利用率。在一个示例中,存储器资源利用率被计算为第一值与第二值的和或加权和。
图9A和图9B是根据示例实施例的更新资源利用率分数的方法的示图。
参照图9A和图9B,第一地址转换模块MD1可在从时间点t1开始的时间段T1期间执行地址转换。可在时间点t2进入系统重启或空闲时间段。如上所述,可以每设置的窗口大小,来计算资源利用率分数。当窗口大小已经被设置为16时,每当已经接收到16个访问请求(例如,Q1_1到Q16_1、Q1_2到Q16_2、Q1_3到Q16_3、或者Q1_4到Q16_4)时,可计算资源利用率分数。例如,可计算四个资源利用率分数(即,第一资源利用率分数RUV1、第二资源利用率分数RUV2、第三资源利用率分数RUV3和第四资源利用率分数RUV4)。
参照图9A,在改变地址转换方案时考虑的最终资源利用率分数RUV可以是第一资源利用率分数RUV1至第四资源利用率分数RUV4的平均值。也就是说,RUV=AVG.(RUV,RUV2,RUV3,RUV4)。换句话说,每当产生资源利用率分数时,新的资源利用率分数与旧的资源利用率分数的平均值可被存储为资源利用率分数。因此,用户的使用模式可被累积并被反映在资源利用率分数中。
参照图9B,在一些其他示例实施例中,存储器控制器100、存储器控制器100a可利用移动平均(moving average)来确定资源利用率分数。例如,在时间段T1期间计算的多个资源利用率分数之中的期望的(或可选地,预定的)数量的最新的资源利用率分数的平均值可被存储为最终资源利用率分数RUV。在图9B中,最新的两个资源利用率分数的平均值被存储为最终资源利用率分数RUV,也就是说,RUV=AVG.(RUV3,RUV4),但是本发明构思的示例实施例不限于此。反映在最终资源利用率分数RUV中的资源利用率分数的数量可被改变。因此,有限时间段内的用户的使用模式可被反映在资源利用率分数中。
图10A至图10E是用于解释根据本发明构思的示例实施例的使用存储器控制器动态地改变反映使用模式的地址转换方案的方法的示图。
参照图10A,分配给排的位的位置和哈希函数在第一地址转换模块MD1至第三地址转换模块MD3之间是不同的。换句话说,不同的地址转换方案被分别应用于第一地址转换模块MD1至第三地址转换模块MD3。例如,指示系统地址SA的多个位中的分配给存储体的位的位置的排确定方案Rank intlv以及指示哈希函数的存储体确定方案Bank intlv可针对第一地址转换模块MD1至第三地址转换模块MD3中的每一个被设置。这里,BW表示系统地址SA的位宽(bitwidth)。
针对第一地址转换模块MD1至第三地址转换模块MD3的地址转换方案可被选择并被存储在非易失性储存器中。例如,图1的数据处理系统1000还可包括非易失性存储器(或储存器),在系统启动之前针对第一地址转换模块MD1至第三地址转换模块MD3的地址转换方案可被存储在非易失性存储器中。
参照图10B,可在初始系统启动时默认选择第一地址转换模块MD1,并且第一地址转换模块MD1可执行地址转换。此时,可基于设置的窗口大小来实时计算第一地址转换模块MD1至第三地址转换模块MD3中的每一个的资源利用率分数RUV。第二地址转换模块MD2的资源利用率分数RUV是67.13,它是最高的。因此,指示第二地址转换模块MD2的资源利用率分数RUV是最高的符号可在空闲时间段期间被更新并被存储在非易失性存储器中。此后,当系统重启时,第二地址转换模块MD2可执行地址转换。
参照图10C,当系统第二次启动时,第二地址转换模块MD2可执行地址转换。此时,可基于窗口大小来实时计算第一地址转换模块MD1至第三地址转换模块MD3中的每一个的资源利用率分数RUV。第三地址转换模块MD3的资源利用率分数RUV是64.99,它是最高的。因此,指示第三地址转换模块MD3的资源利用率分数RUV是最高的符号可在空闲时间段期间被更新并被存储在非易失性存储器中。此后,当系统重启时,第三地址转换模块MD3可执行地址转换。
参照图10D,当系统第三次启动时,第三地址转换模块MD3可执行地址转换。此时,可计算第一地址转换模块MD1至第三地址转换模块MD3中的每一个的资源利用率分数RUV。第三地址转换模块MD3的资源利用率分数RUV是81,它是最高的。因此,指示第三地址转换模块MD3的资源利用率分数RUV是最高的符号可在空闲时间段期间被更新并被存储在非易失性存储器中。因此,如图10E中所示,当系统第四次启动时,第三地址转换模块MD3可继续执行地址转换。
图11是示出针对存储器页状态的存储器延迟的曲线图。
参照图11,随着页命中率提高或页冲突率降低,存储器延迟可被改善。如图11中所示,当所有存储器流量(memory traffic)是页命中时与当所有存储器流量是页冲突时之间的延迟差可以是最大的37.5纳秒(ns)。如上所述,当根据本发明构思的示例实施例使用存储器控制器和操作存储器控制器的方法来改进(或可选地,优化)地址转换方案时,考虑到用户的使用模式,页命中率可被提高(或可选地,被最大化),使得存储器延迟可被改善。
图12是根据本发明构思的一些示例实施例的存储器控制器的框图。
参照图12,存储器控制器100b可包括地址转换器110b、只读存储器(ROM)150、评价模块120和请求队列130。评价模块120和请求队列130的操作与参照图4描述的操作相同。因此,将省略冗余的描述,而将集中于描述存储器控制器100a与存储器控制器100b之间的差异。
多个地址转换模块(即,第一地址转换模块MD1至第三地址转换模块MD3)可通过执行软件或固件的处理电路来实现并被存储在ROM 150(或非易失性存储区域)中。地址转换器110b可由用于执行第一地址转换模块MD1至第三地址转换模块MD3的专用硬件来实现。
当系统被启动时,可由地址转换器110b执行第一地址转换模块MD1至第三地址转换模块MD3,从而地址转换可被执行。如上所述,地址转换器110b可基于默认选择的默认地址转换模块(例如,第一地址转换模块MD1)来执行地址转换,并且还可作为后台操作来执行第二地址转换模块MD2和第三地址转换模块MD3。通过执行第一地址转换模块MD1产生的第一存储器地址MA1可作为存储器地址MA被输出到存储器装置。随着第二地址转换模块MD2被执行,可产生第二存储器地址MA2。随着第三地址转换模块MD3被执行,可产生第三存储器地址MA3。在一些示例实施例中,第一存储器地址MA1至第三存储器地址MA3可按时间顺序地产生。第一存储器地址MA1至第三存储器地址MA3中的每一个可被提供给第一计数器块CB1至第三计数器块CB3中的对应的计数器块。
评价模块120可针对第一地址转换模块MD1至第三地址转换模块MD3中的每一个来计算资源利用率分数。关于具有最高资源利用率分数的地址转换模块的信息可被更新并被存储在非易失性存储器中或地址转换器110b内部的寄存器中。
图13是根据本发明构思的一些示例实施例的存储器控制器的框图。图14是基于机器学习来设置地址转换方案的方法的示例的示图。
参照图13,存储器控制器100c可包括地址转换器110c、机器学习逻辑160、评价模块120c和请求队列130。评价模块120c可包括计数器块CB和逻辑电路LC。地址转换器110c可由专用硬件来实现,并可基于默认选择的地址转换方案来执行地址转换。尽管未示出,但是使用默认选择的地址转换方案的地址转换模块可通过执行存储在ROM(未示出)中的软件的处理电路来实现,或者可由硬件来实现。
系统地址SA可被提供给机器学习逻辑160以及执行地址转换的地址转换器110c。机器学习逻辑160可执行机器学习并分析系统地址SA的模式改变。此外,机器学习逻辑160可按时间顺序地导出多个其他地址转换方案。例如,机器学习逻辑160可分析包括在大量系统地址SA中的每个位的改变模式(例如,每个位的数据切换(data toggling)的模式),并且可从分析结果导出多个地址转换方案。尽管机器学习逻辑160被包括在图13中的存储器控制器100c中,但是本发明构思的示例实施例不限于此。机器学习逻辑160可被实现为与存储器控制器100c分开的组件,并可被包括在数据处理系统(例如,图1的数据处理系统1000)中。
参照图14,地址转换器110c可基于默认地址转换方案DTS来执行地址转换。评价模块120c可评价针对默认地址转换方案DTS的存储器资源利用率。例如,评价模块120c可计算如上所述的资源利用率分数。
同时,机器学习逻辑160可分析系统地址SA的模式,并在后台操作中基于分析结果来导出地址转换方案(例如,第一地址转换方案TS1)。在通过基于默认地址转换方案DTS执行地址转换来产生存储器地址MA的同时,地址转换器110c还可在后台操作中基于第一地址转换方案TS1产生另一个存储器地址。评价模块120c可基于根据第一地址转换方案TS1产生的存储器地址来计算针对第一地址转换方案TS1的资源利用率分数。
机器学习逻辑160可基于用于训练的累积的数据(例如,系统地址SA)来按时间顺序地导出多个地址转换方案。可针对多个地址转换方案中的每一个来计算资源利用率分数。此时,机器学习逻辑160可不仅基于系统地址SA而且基于计算的资源利用率分数,来导出地址转换方案。换句话说,机器学习逻辑160可基于输入数据(例如,系统地址SA)和输出数据(例如,针对系统地址SA计算的资源利用率分数),来导出可提高存储器利用率的新的地址转换方案。
当新导出的地址转换方案的资源利用率分数高于之前导出的地址转换方案或默认地址转换方案DTS的资源利用率分数时,关于新导出的地址转换方案和资源利用率分数的信息可被存储。该信息可被存储在非易失性存储器装置中。例如,当由机器学习逻辑160导出的多个地址转换方案之中的第二地址转换方案TS2的资源利用率分数高于默认地址转换方案DTS和第一地址转换方案TS1的资源利用率分数时,关于第二地址转换方案TS2和第二地址转换方案TS2的资源利用率分数的信息可被存储。此后,当由机器学习逻辑160导出的第四地址转换方案TS4的资源利用率分数高于默认地址转换方案DTS和之前导出的地址转换方案(例如,第一地址转换方案TS1至第三地址转换方案TS3)的资源利用率分数时,关于第四地址转换方案TS4和第四地址转换方案TS4的资源利用率分数的信息可被存储。此后,当在时间点t2系统重启或进入空闲时间段时,地址转换方案可被改变。在时间段T1期间评价的针对第一地址转换方案TS1至第五地址转换方案TS5的资源利用率分数(即,存储器资源利用率)之中,第四地址转换方案TS4的资源利用率分数最高。因此,在时间点t2之后(即,在时间段T2期间),地址转换器110c可基于第四地址转换方案TS4来执行地址转换。在时间段T2期间,机器学习逻辑160还可通过训练导出新的地址转换方案。
尽管在一些示例实施例中由评价模块120c执行资源利用率分数的计算,但是本发明构思的示例实施例不限于此,并且机器学习逻辑160可计算资源利用率分数。例如,机器学习逻辑160可以包括评价模块120c。
图15是根据本发明构思的示例实施例的AP的框图。
参照图15,AP 2000可包括至少一个IP块。例如,AP 2000可包括处理器210、ROM220、神经处理单元(NPU)230、嵌入式存储器240、存储器控制器250、存储接口(I/F)260和显示I/F 270,它们通过系统总线280彼此连接。AP 2000还可包括其他元件(例如,I/O装置),并且图15中所示的一些元件可不包括在AP 2000中。
高级RISC机器(ARM)高级微控制器总线架构(AMBA)协议可用作用于AP 2000的系统总线280的标准规范。AMBA协议的总线类型可包括高级高性能总线(AHB)、高级外围总线(APB)、高级可扩展接口(AXI)、AXI4和AXI一致性扩展(ACE)。此外,可使用针对系统优化的其他类型的协议(例如,uNetwork、CoreConnect或开放核心协议(Open Core Protocol))。
处理器210可控制AP 2000的所有操作。例如,用于管理AP 2000中的各个IP块的操作的软件可被加载到设置在AP 2000外部的存储器装置251和/或嵌入式存储器240,处理器210可通过执行加载的软件来执行各种管理操作。
启动加载器可被存储在ROM 220中。此外,与AP 2000相关的各种设置值可被存储在ROM 220中。
NPU 230是执行用于深度学习(或神经网络)的操作的操作单元。当在AP 2000中执行基于深度学习的应用时,NPU 230可执行用于深度学习的操作,从而确保性能。例如,如上所述,当存储器控制器250通过机器学习导出地址转换方案时,NPU 230可执行操作。
存储I/F 260可提供AP 2000与AP 2000外部的储存器261之间的连接。储存器261可包括非易失性存储器。储存器261可包括当电力中断时保留其数据的单元(诸如,NAND或NOR闪存单元),或者各种类型的非易失性存储器(诸如,MRAM、ReRAM、FRAM或相变存储器(PCM))。
显示I/F 270可在处理器210或GPU(未示出)的控制下,向显示模块271提供图像数据或更新的图像数据。
存储器装置251可由易失性存储器实现。在一些示例实施例中,存储器装置251可包括易失性存储器(诸如,DRAM和/或静态RAM(SRAM))。
如在上面的各种示例实施例中所述,存储器控制器250可控制存储器装置251并将与另一IP块(例如,处理器210)的访问请求一起接收的地址(例如,系统地址)转换为与存储器装置251对应的存储器地址。存储器控制器250可在存储器资源利用率方面,对分别根据多个地址转换方案已经经历地址转换的存储器地址中的每一个进行实时评价和评分,并在系统运行期间连续地更新分数。当系统进入空闲时间段或重启时,存储器控制器250可改变地址转换方案(例如,改变为具有最高分数的地址转换方案),从而适于用户模式的地址转换方案可被使用。
存储器控制器250可包括机器学习逻辑,并基于针对输入的系统地址和地址转换方案对存储器利用率进行评价的结果,通过机器学习来导出提高(或可选地,最大化)存储器利用率的地址转换方案。在一些示例实施例中,机器学习逻辑可与存储器控制器250分开实现。
同时,为了访问储存器261和显示模块271,存储I/F 260和/或显示I/F 270还可将接收的地址转换为适于将要访问的装置的地址结构。如上面参照存储器控制器250所述,存储I/F 260和/或显示I/F 270可根据装置利用率对已经预先选择的多个地址转换方案(或装置映射方案)进行实时评价和评分,并可基于分数来改变地址转换方案。因此,针对个人用户的使用模式改进的(或可选地,优化的)地址转换方案可被使用。将地址转换方案选择为如上所述的选择地址转换方案的方法也可应用于其他I/O装置。
根据本发明构思的示例实施例,可对基于多个地址转换方案产生的多个装置地址进行实时评价和评分,多个地址转换方案中的每一个的资源利用率可被计算,可使用具有期望的资源利用率(或可选地,最高资源利用率)的地址转换方案来执行地址转换,从而针对用户的使用模式改进的(或可选地,优化的)地址转换方案可被使用。因此,存储器装置和其他I/O装置的利用率和性能可被提高。
根据一个或多个示例实施例,包括存储器控制器100的元件(诸如,地址转换器110、评价模块120和它们的子元件(诸如,地址转换模块MD1至地址转换模块MD3、计数器块CB1至计数器块CB3和逻辑电路LC)以及选择器115)的上述的单元和/或装置可使用硬件、硬件与软件的组合、或者存储用于执行其功能的可执行的软件的非暂时性存储介质来实现。
可使用处理电路(诸如,但不限于:一个或多个处理器、一个或多个中央处理器(CPU)、一个或多个控制器、一个或多个算术逻辑单元(ALU)、一个或多个数字信号处理器(DSP)、一个或多个微型计算机、一个或多个现场可编程门阵列(FPGA)、一个或多个片上系统(SoC)、一个或多个可编程逻辑单元(PLU)、一个或多个微处理器、一个或多个专用集成电路(ASIC)、或者能够以限定的方式响应并执行指令的任何其他一个装置或多个装置)来实现硬件。
软件可包括计算机程序、程序代码、指令或它们的一些组合,以独立地或共同地指示或配置硬件装置如期望地进行操作。计算机程序和/或程序代码可包括能够由一个或多个硬件装置(诸如,上述的一个或多个硬件装置)实现的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。程序代码的示例包括由编译器产生的机器代码和使用解释器执行的高级程序代码二者。
例如,当硬件装置是计算机处理装置(例如,一个或多个处理器、CPU、控制器、ALU、DSP、微型计算机、微处理器等)时,计算机处理装置可被配置为通过执行算术、逻辑和输入/输出操作来执行程序代码。一旦程序代码被加载到计算机处理装置中,计算机处理装置可被编程以执行程序代码,从而将计算机处理装置转变为专用计算机处理装置。在更具体的示例中,当程序代码被加载到处理器中时,处理器被编程以执行与其对应的程序代码和操作,从而将处理器转变为专用处理器。在另一示例中,硬件装置可以是被定制为专用处理电路(例如,ASIC)的集成电路。
硬件装置(诸如,计算机处理装置)可运行操作系统(OS)以及在OS上运行的一个或多个软件应用。计算机装置还可响应于软件的执行来访问、存储、操控、处理和创建数据。为了简明起见,一个或多个示例实施例可以以一个计算机处理装置为例,然而,本领域技术人员将理解,硬件装置可包括多个处理元件和多种类型的处理元件。例如,硬件装置可包括多个处理器或者一个处理器和一个控制器。此外,其他处理配置是可行的,诸如,并行处理器。
可以以任何类型的存储介质永久地或暂时地实现软件和/或数据,任何类型的存储介质包括,但不限于:能够将指令或数据提供给硬件装置或由硬件装置解释的任何机器、组件、物理或虚拟装备、或者计算机存储介质或装置。所述软件也可被分布在联网的计算机系统上,使得所述软件以分布方式存储并执行。特别地,例如,可通过包括如在此讨论的有形或非暂时性计算机可读存储介质的一个或多个计算机可读记录介质,来存储软件和数据。
根据一个或多个示例实施例,存储介质还可在单元和/或装置包括一个或多个存储装置。一个或多个存储装置可以是有形或非暂时性计算机可读存储介质(诸如,随机存取存储器(RAM)、只读存储器(ROM)、永久大容量存储装置(诸如,磁盘驱动器)、和/或能够存储和记录数据的任何其他类似的数据存储机制)。一个或多个存储装置可被配置为存储用于一个或多个操作系统和/或用于实现在此描述的示例实施例的计算机程序、程序代码、指令或它们的一些组合。还可使用驱动机制将计算机程序、程序代码、指令或它们的一些组合从单独的计算机可读存储介质加载到一个或多个存储装置和/或一个或多个计算机处理装置中。这种单独的计算机可读存储介质可包括:通用串行总线(USB)闪存驱动器、记忆棒、蓝光/DVD/CD-ROM驱动器、存储卡和/或其他类似的计算机可读存储介质。计算机程序、程序代码、指令或它们的一些组合可经由网络接口而不是经由计算机可读存储介质从远程数据存储装置加载到一个或多个存储装置和/或一个或多个计算机处理装置中。此外,计算机程序、程序代码、指令或它们的一些组合可从远程计算系统加载到一个或多个存储装置和/或一个或多个处理器中,该远程计算系统被配置为通过网络传输和/或分布计算机程序、程序代码、指令或它们的一些组合。远程计算系统可经由有线接口、空中接口和/或任何其他类似介质,来传输和/或分布计算机程序、程序代码、指令或它们的一些组合。
为了示例实施例的目的,一个或多个硬件装置、存储介质、计算机程序、程序代码、指令或它们的一些组合可被专门设计和构造,或者它们可以是为了示例实施例的目的而改变和/或修改的已知装置。
尽管已经参照本发明构思的示例实施例具体地示出并描述了本发明构思的示例实施例,但是将理解的,在不脱离权利要求的精神和范围的情况下,可在其中作出形式和细节上的各种改变。
Claims (25)
1.一种被配置为控制存储器装置的存储器控制器,所述存储器控制器包括:
处理电路,被配置为:
基于第一地址转换方案,将从主机处理器接收的第一地址转换为与存储器装置相关联的第二地址,所述第一地址转换方案基于存储器资源利用率从多个地址转换方案中被选择,
基于使用所述多个地址转换方案产生的多个存储器地址来评价所述多个地址转换方案中的每一个的存储器资源利用率,使得处理电路在基于第一地址转换方案将第一地址转换为第二地址的同时评价多个地址转换方案中的每一个的存储器资源利用率。
2.根据权利要求1所述的存储器控制器,其中,处理电路被配置为:基于第一评价值、第二评价值和第三评价值中的至少两个来计算存储器资源利用率,其中,
在所述多个地址转换方案中的每一个中,基于多个地址转换方案中的每个地址转换方案的多个存储器地址的排选择、存储体选择和行选择来分别计算第一评价值、第二评价值和第三评价值。
3.根据权利要求2所述的存储器控制器,其中,处理电路被配置为:基于第一值与第二值之和来计算存储器资源利用率,其中,
通过将第一权重施加到第一评价值来获得所述第一值,并通过将第二权重施加到第二评价值来获得所述第二值,所述第一权重大于所述第二权重。
4.根据权利要求1所述的存储器控制器,其中,处理电路被配置为:
在与第一地址转换方案相关联的第一时间段期间,评价所述多个地址转换方案中的每一个的存储器资源利用率,
在第二时间段期间,基于第二地址转换方案执行地址转换,所述第二地址转换方案基于在第一时间段期间评价的所述多个地址转换方案中的每一个的存储器资源利用率的结果被选择。
5.根据权利要求4所述的存储器控制器,其中,所述处理电路被配置为:响应于在第一时间段之后重启所述存储器控制器,将所述地址转换方案从第一地址转换方案改变为第二地址转换方案。
6.根据权利要求4所述的存储器控制器,其中,所述处理电路被配置为:响应于在所述第一时间段之后进入空闲时间段,将所述地址转换方案从第一地址转换方案改变为第二地址转换方案。
7.根据权利要求1所述的存储器控制器,其中,所述处理电路被配置为:
使用与所述多个地址转换方案不同的地址转换方案来执行地址转换,以产生与所述不同的地址转换方案对应的多个存储器地址,
通过对与所述不同的地址转换方案对应的多个存储器地址相关联的排、存储体和行进行计数来产生计数值,所述排、所述存储体和所述行通过与所述不同的地址转换方案对应的多个存储器地址被选择,
基于计数值来计算指示存储器资源利用率的资源利用率分数。
8.根据权利要求7所述的存储器控制器,其中,所述处理电路被配置为:针对N个存储器地址对所述排、所述存储体和所述行进行计数,其中N是至少为2的整数。
9.根据权利要求1所述的存储器控制器,其中,所述处理电路被配置为:基于多个第一地址来执行机器学习以按时间顺序地导出所述多个地址转换方案,其中,所述多个第一地址从主机处理器被接收。
10.根据权利要求9所述的存储器控制器,其中,所述处理电路被配置:基于包括在所述多个第一地址中的位的改变模式来导出所述多个地址转换方案。
11.一种应用处理器,包括:
主机处理器,被配置为:提供访问请求和第一地址;
存储器控制器,被配置为:
基于从多个地址转换方案选择的第一地址转换方案来执行用于将第一地址转换为与存储器装置相关联的第二地址的地址转换,
在第一时间段期间基于第一地址转换方案执行地址转换的同时,计算指示所述多个地址转换方案中的每一个的存储器资源利用率的资源利用率分数,
在第二时间段期间基于第二地址转换方案,执行用于将第一地址转换为第二地址的地址转换,其中,在第一时间段期间第二地址转换方案的存储器资源利用率在所述多个地址转换方案中最高,所述第二时间段在所述第一时间段之后。
12.根据权利要求11所述的应用处理器,其中,存储器控制器被配置为:
在第二时间段期间,重新计算所述多个地址转换方案中的每一个的资源利用率分数,
在第二时间段之后的第三时间段期间,基于第三地址转换方案执行地址转换,其中,在第二时间段期间第三地址转换方案的存储器资源利用率在所述多个地址转换方案中最高。
13.根据权利要求11所述的应用处理器,其中,所述存储器控制器被配置为:基于根据所述多个地址转换方案中的每个地址转换方案产生的多个存储器地址,来计算所述多个地址转换方案中的每个地址转换方案的资源利用率分数。
14.根据权利要求11所述的应用处理器,其中,所述存储器控制器被配置为:基于根据排选择计算的第一评价值、根据存储体选择计算的第二评价值以及根据行选择计算的第三评价值,来计算资源利用率分数。
15.根据权利要求11所述的应用处理器,其中,所述存储器控制器被配置为:
使用与第一地址转换方案不同的地址转换方案来执行地址转换,以产生与所述不同的地址转换方案对应的多个存储器地址;
基于与所述不同的地址转换方案对应的多个存储器地址来计算所述不同的地址转换方案的资源利用率分数。
16.根据权利要求15所述的应用处理器,其中,所述存储器控制器被配置为:
通过对基于与所述不同的地址转换方案对应的多个存储器地址选择的排、存储体和行进行计数来产生计数值;
基于计数值来计算资源利用率分数。
17.根据权利要求11所述的应用处理器,其中,所述存储器控制器被配置为:
将针对所述多个地址转换方案计算的资源利用率分数进行比较,
基于资源利用率分数选择第二地址转换方案,其中,第二地址转换方案的存储器资源利用率在所述多个地址转换方案中最高。
18.根据权利要求11所述的应用处理器,其中,指示所述多个地址转换方案之中的第二地址转换方案的存储器资源利用率最高的信息被存储在储存装置中,
存储器控制器被配置为:基于在第一时间段之后在重启时从储存装置加载的信息,将第一地址转换方案改变为第二地址转换方案。
19.一种操作存储器控制器将系统地址转换为与存储器装置相关联的存储器地址的方法,所述方法包括:
基于从多个转换方案候选中选择的第一地址转换方案,将系统地址转换为存储器地址;
在基于第一地址转换方案将系统地址转换为存储器地址的同时,计算所述多个转换方案候选中的每一个的资源利用率分数;
基于在基于第一地址转换方案将系统地址转换为存储器地址的同时计算的资源利用率分数,从所述多个转换方案候选选择具有最高资源利用率的下一地址转换方案;
将所述地址转换方案改变为下一地址转换方案;
基于下一地址转换方案将系统地址转换为存储器地址。
20.根据权利要求19所述的方法,其中,所述计算的步骤在后台操作中计算资源利用率分数,从而在将系统地址转换为存储器地址的同时计算资源利用率分数。
21.根据权利要求19所述的方法,其中,计算资源利用率分数的步骤包括:
基于所述多个转换方案候选中的每一个,产生与多个系统地址对应的多个存储器地址候选;
通过监视与所述多个存储器地址候选中的不同的存储器地址候选相关联的存储器资源的改变来产生监视结果;
基于监测结果来计算资源利用率。
22.根据权利要求21所述的方法,其中,存储器资源包括:存储器装置的排、存储体和行中的至少一个。
23.根据权利要求19所述的方法,其中,改变地址转换方案的步骤在存储器控制器的空闲时段期间或在存储器控制器的重启时改变所述地址转换方案。
24.一种数据处理系统,包括:
至少一个知识产权块;
输入/输出装置,被配置为,访问所述至少一个知识产权块;
控制器,被配置为:
通过基于从所述至少一个知识产权块接收的系统地址执行机器学习,来按时间顺序地导出多个地址转换方案以及所述多个地址转换方案中的每一个的资源利用率分数,
根据基于资源利用率分数从所述多个地址转换方案选择的地址转换方案,将从所述至少一个知识产权块接收的系统地址转换为用于输入/输出装置的装置地址。
25.根据权利要求24所述的数据处理系统,其中,输入/输出装置包括动态随机存取存储器装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180017059A KR102540964B1 (ko) | 2018-02-12 | 2018-02-12 | 입출력 장치의 활용도 및 성능을 조절하는 메모리 컨트롤러, 애플리케이션 프로세서 및 메모리 컨트롤러의 동작 |
KR10-2018-0017059 | 2018-02-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162491A CN110162491A (zh) | 2019-08-23 |
CN110162491B true CN110162491B (zh) | 2023-08-04 |
Family
ID=67399862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910110995.XA Active CN110162491B (zh) | 2018-02-12 | 2019-02-12 | 存储器控制器及其操作方法、应用处理器和数据处理系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10846233B2 (zh) |
KR (1) | KR102540964B1 (zh) |
CN (1) | CN110162491B (zh) |
DE (1) | DE102019103114A1 (zh) |
SG (1) | SG10201901162PA (zh) |
TW (1) | TWI791765B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11042490B2 (en) * | 2018-11-15 | 2021-06-22 | Micron Technology, Inc. | Address obfuscation for memory |
US11036434B2 (en) * | 2019-08-22 | 2021-06-15 | Micron Technology, Inc. | Hierarchical memory systems |
US11017842B2 (en) | 2019-08-29 | 2021-05-25 | Micron Technology, Inc. | Copy data in a memory system with artificial intelligence mode |
US11442631B2 (en) * | 2019-12-26 | 2022-09-13 | Micron Technology, Inc. | Memory operations with consideration for wear leveling |
WO2022018466A1 (en) * | 2020-07-22 | 2022-01-27 | Citrix Systems, Inc. | Determining server utilization using upper bound values |
KR20220032808A (ko) | 2020-09-08 | 2022-03-15 | 삼성전자주식회사 | 프로세싱-인-메모리, 메모리 액세스 방법 및 메모리 액세스 장치 |
TWI768731B (zh) * | 2021-02-25 | 2022-06-21 | 威盛電子股份有限公司 | 電腦系統 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000029955A1 (en) * | 1998-11-16 | 2000-05-25 | Infineon Technologies Ag | Universal resource access controller |
CN103426468A (zh) * | 2012-05-17 | 2013-12-04 | 三星电子株式会社 | 半导体存储器件及其操作方法、存储器系统 |
CN104750614A (zh) * | 2013-12-26 | 2015-07-01 | 伊姆西公司 | 用于管理存储器的方法和装置 |
CN107402889A (zh) * | 2016-05-20 | 2017-11-28 | 三星电子株式会社 | 检索数据方法、存储数据方法和重复数据删除模块 |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356988B1 (en) | 1999-01-07 | 2002-03-12 | Nec Corporation | Memory access system, address converter, and address conversion method capable of reducing a memory access time |
US6381669B1 (en) | 1999-12-27 | 2002-04-30 | Gregory V. Chudnovsky | Multi-bank, fault-tolerant, high-performance memory addressing system and method |
ATE491307T1 (de) | 2001-01-12 | 2010-12-15 | Nxp Bv | Einheit und verfahren zur speicheradressenübersetzung und bildverarbeitungsvorrichtung mit einer solchen einheit |
KR100437609B1 (ko) | 2001-09-20 | 2004-06-30 | 주식회사 하이닉스반도체 | 반도체 메모리 장치의 어드레스 변환 방법 및 그 장치 |
US7562271B2 (en) * | 2005-09-26 | 2009-07-14 | Rambus Inc. | Memory system topologies including a buffer device and an integrated circuit memory device |
US8135936B2 (en) | 2009-12-23 | 2012-03-13 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
JP2008112292A (ja) | 2006-10-30 | 2008-05-15 | Hitachi Ltd | ストレージシステム及びストレージシステムの電源供給制御方法 |
JP2008242999A (ja) | 2007-03-28 | 2008-10-09 | Hitachi Ltd | 情報処理装置およびメモリダンプ方法 |
US7870363B2 (en) | 2007-12-28 | 2011-01-11 | Intel Corporation | Methods and arrangements to remap non-volatile storage |
US8386747B2 (en) | 2009-06-11 | 2013-02-26 | Freescale Semiconductor, Inc. | Processor and method for dynamic and selective alteration of address translation |
US9026767B2 (en) * | 2009-12-23 | 2015-05-05 | Intel Corporation | Adaptive address mapping with dynamic runtime memory mapping selection |
US8799553B2 (en) | 2010-04-13 | 2014-08-05 | Apple Inc. | Memory controller mapping on-the-fly |
KR101766833B1 (ko) | 2010-08-16 | 2017-08-09 | 에스프린팅솔루션 주식회사 | 화상형성장치 및 가상 메모리 주소를 물리 메모리 주소로 변환하는 방법 |
US8464023B2 (en) * | 2010-08-27 | 2013-06-11 | International Business Machines Corporation | Application run-time memory optimizer |
WO2012033662A2 (en) | 2010-09-10 | 2012-03-15 | Rambus Inc. | Memory controller and method for tuned address mapping |
KR101242195B1 (ko) | 2011-02-25 | 2013-03-11 | 서울대학교산학협력단 | 페이지의 물리적 저장 위치의 변경이 가능한 스토리지 시스템 및 상기 스토리지 시스템의 동작 방법 |
WO2013043503A1 (en) * | 2011-09-19 | 2013-03-28 | Marvell World Trade Ltd. | Systems and methods for monitoring and managing memory blocks to improve power savings |
US9405681B2 (en) | 2011-12-28 | 2016-08-02 | Intel Corporation | Workload adaptive address mapping |
US9256550B2 (en) | 2012-03-28 | 2016-02-09 | International Business Machines Corporation | Hybrid address translation |
US9218285B2 (en) * | 2012-11-26 | 2015-12-22 | Arm Limited | Variable mapping of memory accesses to regions within a memory |
KR102002900B1 (ko) | 2013-01-07 | 2019-07-23 | 삼성전자 주식회사 | 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 |
JP6102632B2 (ja) | 2013-08-14 | 2017-03-29 | ソニー株式会社 | 記憶制御装置、ホストコンピュータ、情報処理システムおよび記憶制御装置の制御方法 |
US10210096B2 (en) | 2013-10-01 | 2019-02-19 | Ampere Computing Llc | Multi-stage address translation for a computing device |
US9653184B2 (en) | 2014-06-16 | 2017-05-16 | Sandisk Technologies Llc | Non-volatile memory module with physical-to-physical address remapping |
US20160062911A1 (en) | 2014-08-27 | 2016-03-03 | Advanced Micro Devices, Inc. | Routing direct memory access requests in a virtualized computing environment |
WO2016085461A1 (en) * | 2014-11-25 | 2016-06-02 | Hewlett Packard Enterprise Development Lp | Computing resource with memory resource memory management |
KR102190125B1 (ko) | 2014-12-05 | 2020-12-11 | 삼성전자주식회사 | 어드레스 리매핑을 위한 적층형 메모리 장치, 이를 포함하는 메모리 시스템 및 어드레스 리매핑 방법 |
US10372618B2 (en) * | 2016-10-14 | 2019-08-06 | Arm Limited | Apparatus and method for maintaining address translation data within an address translation cache |
US10552338B2 (en) * | 2017-02-21 | 2020-02-04 | Arm Limited | Technique for efficient utilisation of an address translation cache |
-
2018
- 2018-02-12 KR KR1020180017059A patent/KR102540964B1/ko active IP Right Grant
-
2019
- 2019-02-08 DE DE102019103114.1A patent/DE102019103114A1/de active Pending
- 2019-02-11 US US16/272,248 patent/US10846233B2/en active Active
- 2019-02-11 SG SG10201901162PA patent/SG10201901162PA/en unknown
- 2019-02-12 CN CN201910110995.XA patent/CN110162491B/zh active Active
- 2019-02-12 TW TW108104639A patent/TWI791765B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000029955A1 (en) * | 1998-11-16 | 2000-05-25 | Infineon Technologies Ag | Universal resource access controller |
CN103426468A (zh) * | 2012-05-17 | 2013-12-04 | 三星电子株式会社 | 半导体存储器件及其操作方法、存储器系统 |
CN104750614A (zh) * | 2013-12-26 | 2015-07-01 | 伊姆西公司 | 用于管理存储器的方法和装置 |
CN107402889A (zh) * | 2016-05-20 | 2017-11-28 | 三星电子株式会社 | 检索数据方法、存储数据方法和重复数据删除模块 |
Also Published As
Publication number | Publication date |
---|---|
TWI791765B (zh) | 2023-02-11 |
KR20190097528A (ko) | 2019-08-21 |
US20190251038A1 (en) | 2019-08-15 |
US10846233B2 (en) | 2020-11-24 |
CN110162491A (zh) | 2019-08-23 |
SG10201901162PA (en) | 2019-09-27 |
DE102019103114A1 (de) | 2019-08-14 |
TW201937374A (zh) | 2019-09-16 |
KR102540964B1 (ko) | 2023-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110162491B (zh) | 存储器控制器及其操作方法、应用处理器和数据处理系统 | |
TWI752620B (zh) | 與記憶體類型相關的頁表 | |
TWI781439B (zh) | 映射未經分類之記憶體存取至經分類之記憶體存取 | |
TWI764265B (zh) | 用於將資料連結至記憶體命名空間的記憶體系統 | |
TWI752619B (zh) | 存取儲存的元資料以識別儲存資料的記憶體裝置 | |
US10943183B2 (en) | Electronics device performing software training on memory channel and memory channel training method thereof | |
US11663133B2 (en) | Memory tiering using PCIe connected far memory | |
CN115495389B (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US11675724B2 (en) | Memory sub-system with multiple ports having single root virtualization | |
US11461256B2 (en) | Quality of service levels for a direct memory access engine in a memory sub-system | |
WO2018113030A1 (en) | Technology to implement bifurcated non-volatile memory express driver | |
CN113302582A (zh) | 每光标逻辑单元号定序 | |
CN116483254A (zh) | 空间证明区块链系统中的冷存储分区管理 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |