CN116627317A - 含存储器设备和存储器控制器的存储器系统及其操作方法 - Google Patents
含存储器设备和存储器控制器的存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN116627317A CN116627317A CN202310181431.1A CN202310181431A CN116627317A CN 116627317 A CN116627317 A CN 116627317A CN 202310181431 A CN202310181431 A CN 202310181431A CN 116627317 A CN116627317 A CN 116627317A
- Authority
- CN
- China
- Prior art keywords
- request
- requests
- read
- write
- memory
- 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 description 38
- 230000004044 response Effects 0.000 claims description 9
- 230000000694 effects Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 16
- 239000004065 semiconductor Substances 0.000 description 11
- 102100021568 B-cell scaffold protein with ankyrin repeats Human genes 0.000 description 4
- 101000971155 Homo sapiens B-cell scaffold protein with ankyrin repeats Proteins 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
一种存储器系统,包括:存储器设备,其包括被划分为多个存储器存储体的存储器单元阵列;以及存储器控制器,其出于分别向存储器单元阵列的存储器存储体输入数据或从存储器单元阵列的存储器存储体输出数据的目的向存储器设备发送读取请求或写入请求,并且发送读取请求以便基于读取‑写入切换点与写入请求分开。在第一轮次中,存储器控制器在读取‑写入切换点之前设置近切换点。存储器控制器阻止在近切换点和读取‑写入切换点之间调度第一存储体请求中的至少一个。存储器控制器调度引起存储器存储体的状态切换的第二存储体请求中的至少一个,以便在近切换点和读取‑写入切换点之间被发布。
Description
相关申请的交叉引用
本申请要求于2022年2月21日在韩国知识产权局提交的第10-2022-0021994号韩国专利申请和于2022年6月7日在韩国知识产权局提交的第10-2022-0068915号韩国专利申请的优先权,其公开内容通过引用整体并入本文。
技术领域
本文描述的本公开的示例实施例涉及存储器控制器,更具体地,涉及包括存储器设备和存储器控制器的存储器系统及其操作方法。
背景技术
半导体存储器设备被分类为易失性半导体存储器设备或非易失性半导体存储器设备。易失性半导体存储器设备的读取和写入速度快,但是当关闭电源时会丢失存储在其中的数据。相反,即使电源被关闭,非易失性半导体存储器设备也保留存储在其中的信息。因此,非易失性半导体存储器设备用于存储无论是否供电都期望保留的信息。
包括易失性半导体存储器设备的存储器系统可以通过存储器控制器控制易失性半导体存储器设备。出于向易失性半导体存储器设备输入数据/从易失性半导体存储器设备输出数据的目的,存储器控制器可以向易失性半导体存储器设备传送各种命令。存储器控制器可以预先调度发送各种命令的顺序,使得数据输入/输出。然而,存储器系统的性能可能会受到调度各种命令的方法的影响。
发明内容
本公开的示例实施例提供了存储器系统,其能够通过读取-写入切换点分开和发送读取请求和写入请求,并且从特定时间点到读取-写入切换点阻止调度本轮次的不必要的存储体(bank)请求。
本公开的示例实施例提供了存储器系统,其能够从特定时间点到本轮次的读取-写入切换点允许下一轮次的存储体请求的调度。
示例实施例公开了存储器系统,包括:存储器设备,该存储器设备包括被划分为多个存储器存储体的存储器单元阵列,以及存储器控制器,该存储器控制器被配置为出于分别向存储器单元阵列的存储器存储体输入数据或从存储器单元阵列的存储器存储体输出数据的目的,向存储器设备发送读取请求或写入请求,并且基于读取-写入切换点发送读取请求以便与写入请求分开,其中,该存储器控制器被配置为在包括读取请求或写入请求的第一轮次输入/输出(I/O)请求中,基于来自I/O请求当中的在第一轮次中处理的I/O请求的数量,在读取-写入切换点之前设置近切换点,在近切换点和读取-写入切换点之间,针对要在第一轮次中调度的至少一个第一初步I/O请求,阻止调度第一存储体请求中的至少一个,第一存储体请求中的至少一个指示存储器存储体的状态切换,以及出于要在读取-写入切换点之后的第二轮次中调度第二初步I/O请求的目的,调度第二存储体请求中的至少一个以便在近切换点和读取-写入切换点之间被发布,第二存储体请求中的至少一个指示存储器存储体的状态切换。
示例实施例公开了存储器系统,包括存储器设备,该存储器设备包括被划分为多个存储器存储体的存储器单元阵列;以及存储器控制器,该存储器控制器被配置为出于分别向存储器单元阵列的存储器存储体输入数据或从存储器单元阵列的存储器存储体输出数据的目的,向存储器设备发送读取请求或写入请求,并且基于读取-写入切换点发送读取请求以便与写入请求分开,其中,该存储器控制器被配置为在包括读取请求或写入请求的第一轮次输入/输出(I/O)请求中,基于来自I/O请求当中的在第一轮次中被处理的I/O请求的数量,在读取-写入切换点之前设置近切换点,以及在近切换点和读取-写入切换点之间,针对要在第一轮次中调度的至少一个第一初步I/O请求,阻止调度第一活动请求,第一活动请求指示将存储器存储体中的一个设置为活动状态。
示例实施例公开了存储器系统的操作方法,该方法包括:在包括从存储器控制器传送到存储器设备的读取请求或写入请求的第一轮次输入/输出(I/O)请求中,基于要在第一轮次中执行的I/O请求的最大请求数量或基于指定时间来设置读取-写入切换点;基于来自I/O请求当中的在第一轮次中处理的I/O请求的数量,在读取-写入切换点之前设置近切换点;在近切换点和读取-写入切换点之间,针对要在第一轮次中调度的至少一个第一初步I/O请求,阻止调度第一存储体请求中的至少一个,第一存储体请求中的至少一个指示存储器设备中包括的存储器存储体的状态切换,以及针对要在读取-写入切换点之后在第二轮次中调度的第二初步I/O请求,调度第二存储体请求中的至少一个以便在近切换点和读取-写入切换点之间被发布,第二存储体请求中的至少一个指示所述存储器存储体的状态切换。
附图说明
通过参考附图详细描述本公开的一些示例实施例,本公开的上述和其他目的和特征将变得清晰,其中:
图1是示出根据一些示例实施例的存储器系统的框图;
图2是示出图1的存储器控制器的命令传送操作的框图;
图3是示出图2的读取请求队列、写入请求队列、读取请求信息、写入请求信息、存储体状态信息的示例的示图;
图4是示出其中图2的存储器控制器通过使用图3的信息来执行读取-写入调度的方法的示图;
图5是示出图4的读取-写入调度方法的流程图;
图6是示出图2的读取请求队列、写入请求队列、读取请求信息、写入请求信息、存储体状态信息的另一示例的示图;
图7是示出其中图2的存储器控制器通过使用图6的信息来执行读取-写入调度的方法的示例的示图;
图8是示出图7的读取-写入调度方法的流程图;
图9是示出其中图2的存储器控制器通过使用图6的信息来执行读取-写入调度的方法的另一示例的示图;
图10是示出图9的读取-写入调度方法的流程图;
图11是示出图2的存储器控制器的读取-写入调度方法的流程图;以及
图12是示出根据一些示例实施例的移动系统的示图。
具体实施方式
在下文中,将详细和清楚地描述本公开的示例实施例,达到本领域普通技术人员容易实现本发明的程度。
此外,在下文中,动态随机存取存储器(DRAM)可以用作半导体存储器设备的示例,用于描述本发明的特征和功能。然而,基于说明书中公开的内容,本领域技术人员可以容易地理解本发明的其他优点和性能。本发明可以通过其他示例实施例来实现或应用。此外,在不脱离权利要求、范围和精神以及本发明的任何其他目的的情况下,可以基于观点和应用来改变或修改详细描述。
图1是示出根据一些示例实施例的存储器系统的框图。参考图1,一些示例实施例的存储器系统1000可以包括存储器控制器1100和存储器设备1200。
根据一些示例实施例,存储器控制器1100可以执行访问操作以将数据写入存储器设备1200中或者读取存储在存储器设备1200中的数据。例如,存储器控制器1100可以生成命令CMD和地址ADDR,以用于将数据写入存储器设备1200中或者读取存储在存储器设备1200中的数据。存储器控制器1100可以是用于控制存储器设备1200的存储器控制器、诸如应用处理器(AP)的片上系统(SoC)、中央处理单元(CPU)、数字信号处理器(DSP)和图形处理单元(GPU)中的至少一个。
根据一些示例实施例,存储器控制器1100可以通过向存储器设备1200提供各种种类的信号来控制存储器设备1200的整体操作。例如,存储器控制器1100可以控制存储器设备1200的存储器访问操作,诸如读取操作或写入操作。出于将数据“DATA(数据)”存储在存储器设备1200中或者读取存储在存储器设备1200中的数据“DATA”的目的,存储器控制器1100可以提供命令CMD和地址ADDR。此外,存储器控制器1100还可以向存储器设备1200提供时钟信号CLK。
根据一些示例实施例,存储器控制器1100可以生成用于控制存储器设备1200的各种种类的命令CMD。例如,出于读取或写入数据“DATA”的目的,存储器控制器1100可以生成对应于存储体操作的存储体请求,该存储体操作用于被包括在存储器核心1210中的存储体的状态切换。作为示例,存储体请求可以包括用于将被包括在存储器核心1210中的存储器存储体设置为活动状态的活动请求。存储器设备1200可以响应于活动请求激活被包括在存储器存储体中的行,即字线。存储体请求可以包括预充电请求,以用于在数据“DATA”被完全读取或写入之后,将存储器存储体的状态从活动状态切换到备用(standby)状态。此外,存储器控制器1100可以生成输入/输出(I/O)请求(例如,CAS请求),该请求允许存储器设备1200对数据“DATA”执行读取操作或写入操作。作为示例,I/O请求可以包括用于从激活的存储器存储体读取数据“DATA”的读取请求。I/O请求可以包括用于将数据“DATA”写入激活的存储器存储体的写入请求。此外,存储器控制器1100可以生成用于控制存储器存储体的刷新操作的刷新请求。然而,上述命令种类是作为示例提供的,并且可以实现任何其他种类的命令CMD。
根据一些示例实施例,存储器控制器1100可以确定向存储器设备1200发送命令CMD的顺序。存储器控制器1100可以包括读取-写入(RW)调度器1110。例如,读取-写入调度器1110可以确定向存储器设备1200发送存储体请求(例如,活动请求和预充电请求)和I/O请求(例如,读取请求和写入请求)的顺序。存储体请求可以包括对应于读取请求的存储体请求或者对应于写入请求的存储体请求。读取-写入调度器1110可以调度读取请求和写入请求,以便分开地传送。读取-写入调度器1110可以基于指定的单位(例如,指定的请求数量或指定的时间)来确定轮次,并且可以执行调度,使得给定量的读取请求或写入请求被传送。
根据一些示例实施例,存储器设备1200可以将由存储器控制器1100读取请求的(read-requested)数据“DATA”输出到存储器控制器1100,或者可以将由存储器控制器1100写入请求的(write-requested)数据“DATA”存储在存储器单元中。存储器设备1200可以基于命令CMD、地址ADDR和时钟信号CLK来输入/输出数据“DATA”。存储器设备1200可以包括存储器核心1210和控制逻辑1220。
这里,存储器设备1200可以是易失性存储器设备,诸如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)、双倍数据速率(DDR)DRAM、DDR SDRAM、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM、兰巴斯(Rambus)DRAM(RDRAM)或静态随机存取存储器(SRAM)。可替代地,存储器设备1200可以用非易失性存储器设备来实现,诸如电阻RAM(RRAM)、相变存储器(PRAM)、磁存储器(MRAM)、铁电存储器(FRAM)、自旋转移矩存储器(STT-RAM)。在说明书中,将基于DRAM描述本发明的优点,但是示例实施例不限于此。
根据一些示例实施例,存储器核心1210可以包括以存储体为单位划分的存储器单元阵列、行解码器、列解码器、读出放大器、写入驱动器等。存储器核心1210可以通过写入驱动器存储关于存储器设备1200写入请求的数据“DATA”,并且可以通过使用读出放大器读取被读取请求的数据。此外,还可以提供用于在存储器单元阵列或基于地址的选择电路中存储和保留数据的刷新操作的组件。然而,因为本发明不直接涉及存储器核心1210,所以将省略与存储器磁芯1210的组件相关联的描述。
根据一些示例实施例,控制逻辑1220可以从存储器控制器1100接收控制信号,诸如命令CMD和地址ADDR以及时钟信号CLK。控制逻辑1220可以通过使用控制信号和时钟信号CLK来控制存储器设备1200的写入、读取或和删除(或擦除)操作。
根据一些示例实施例,存储器设备1200可以基于从存储器控制器1100接收的存储体请求(例如,活动请求或预充电请求)和I/O请求(例如,读取请求或写入请求)来控制存储器核心1210的存储器存储体。例如,存储器设备1200可以响应于活动请求而激活选择的存储器存储体和行。存储器设备1200可以响应于读取请求输出(或读取)激活的存储器存储体和行的数据“DATA”。存储器设备1200可以响应于写入请求在激活的存储器存储体和行处输入(或存储)数据“DATA”。响应于预充电请求,存储器设备1200可以将激活的存储器存储体和行设置为备用状态(或者可以将激活的存储器存储体和行的状态从活动状态切换到备用状态)。
图2是示出图1的存储器控制器的命令传送操作的框图。参考图2,存储器控制器1100可以包括读取-写入调度器1110、读取请求队列(RD requestQ)1120、写入请求队列(WRrequestQ)1130和仲裁电路1140。存储器设备1200可以包括存储器核心1210,并且存储器核心1210可以包括多个存储器存储体。作为示例,多个存储器存储体可以包括第一存储体1211、第二存储体1212、第三存储体1213和第四存储体1214。下面,将给出存储器控制器1100发送关于第一存储体1211、第二存储体1212、第三存储体1213和第四存储体1214的存储体请求(例如,活动请求ACT或预充电请求PRE)或I/O请求(例如,读取请求RD或写入请求WR)的描述。然而,这是作为示例提供的,并且存储器设备1200可以包括至少一个存储器存储体。
根据一些示例实施例,读取-写入调度器1110可以调度要传送到存储器设备1200的存储体请求或I/O请求。例如,读取-写入调度器1110可以获得读取请求信息(RD INFO)1111、写入请求信息(WR INFO)1112和存储体状态信息(BANK状态)1113。读取请求信息1111可以包括关于读取请求RD的信息(例如,最大突发、当前突发和页面命中请求的数量)。写入请求信息1112可以包括关于写入请求WR的信息(例如,最大突发、当前突发和页面命中请求的数量)。存储体状态信息1113可以包括关于当前激活的存储体的信息。此外,读取-写入调度器1110可以获得关于当前存储在读取请求队列1120或写入请求队列1130中的请求的信息,以及关于存储在读取请求队列1120或写入请求队列1130中的请求的处理信息。
根据一些示例实施例,读取-写入调度器1110可以调度读取请求和写入请求,以便分开传送。例如,读取-写入调度器1110可以基于指定的单位(例如,指定的请求数量或指定的时间)来确定轮次,并且可以执行调度,使得给定量的读取请求或写入请求被传送。作为示例,读取-写入调度器1110可以设置读取-写入切换点,在该读取-写入切换点处,执行读取请求的轮次和执行写入请求的轮次被切换。读取-写入调度器1110可以基于在读取轮次或写入轮次中执行的请求的数量来设置读取-写入切换点。可替代地,读取-写入调度器1110可以基于在其期间执行读取轮次或写入伦次的时间来设置读取-写入切换点。
根据一些示例实施例,读取请求队列1120可以管理关于从主机(未示出)接收的读取请求的信息。例如,读取请求队列1120可以存储读取请求RD。读取请求队列1120可以存储读取请求RD的地址ADDR(例如,存储体和行地址)。读取请求队列1120可以存储读取请求RD的有效信息。读取请求队列1120可以选择性地输出读取请求RD之一。读取请求队列1120可以向读取-写入调度器1110提供关于当前能够被传送的读取请求RD的信息。读取请求队列1120可以具有指定的大小。读取请求队列1120可以在空置空间中存储新接收的读取请求RD,或者可以在被处理为无效的先前的读取请求RD上重写新接收的读取请求RD。
根据一些示例实施例,写入请求队列1130可以管理关于从主机(未示出)接收的写入请求的信息。例如,写入请求队列1130可以存储写入请求WR。写入请求队列1130可以存储写入请求WR的地址ADDR(例如,存储体和行地址)。写入请求队列1130可以存储写入请求WR的有效信息。写入请求队列1130可以选择性地输出写入请求WR之一。写入请求队列1130可以向读取-写入调度器1110提供关于当前能够被传送的写入请求WR的信息。写入请求队列1130可以具有指定的大小。写入请求队列1130可以在空置空间中存储新接收的写入请求WR,或者可以在被处理为无效的先前写入请求WR上重写新接收的写入请求WR。
根据一些示例实施例,仲裁电路1140可以在读取-写入调度器1110的控制下向存储器设备1200发送命令CMD。例如,仲裁电路1140可以发送对应于在读取轮次中选择的存储体的活动请求ACT。仲裁电路1140可以发送对应于活动请求ACT的读取请求RD。在读取请求RD被处理之后,仲裁电路1140可以发送与处理读取请求RD的存储体相对应的预充电请求PRE。此外,仲裁电路1140可以发送对应于在写入轮次中选择的存储体的活动请求ACT。仲裁电路1140可以发送对应于活动请求ACT的写入请求WR。在写入请求WR被处理之后,仲裁电路1140可以发送对应于写入请求WR被处理的存储体的预充电请求PRE。仲裁电路1140可以独立于读取-写入调度器1110实现,或者可以在读取-写入调度器1110内实现。
图3是示出图2的读取请求队列、写入请求队列、读取请求信息、写入请求信息、存储体状态信息的示例的示图。参考图3,读取请求队列1120和写入请求队列1130中的每一个可以存储9个请求。然而,这是作为示例提供的,并且读取请求队列1120和写入请求队列1130中的每一个(可替代地,其中的至少一个)可以存储至少一个请求。
根据一些示例实施例,读取请求队列1120和写入请求队列1130中的每一个(可替代地,其中的至少一个)可以按照接收请求的顺序存储请求。读取请求队列1120或写入请求队列1130可以包括关于读取请求RD或写入请求WR的信息。关于读取请求RD或写入请求WR的信息可以包括地址(例如,存储体值BANK和行值ROW)和对应于读取请求RD或写入请求WR的有效信息VALID。有效信息VALID可以指示对应的I/O请求是否被处理(或者对应的I/O请求是否被传送到存储器设备1200)。作为示例,对应于所处理的I/O请求的有效信息VALID可以被标记为“0”(例如,W1、W2、W3和W4)。尚未处理的I/O请求的有效信息VALID可以标记为“1”(例如,R1、R2、R3、R4、W5、W6、W7、W8和W9)。
根据一些示例实施例,读取请求信息1111和写入请求信息1112中的每一个(可替代地,其中的至少一个)可以包括最大突发信息和突发信息。例如,最大突发信息可以指示一个轮次中调度的I/O请求的数量。突发信息可以指示完全处理的I/O请求的数量(或者完全传送到存储器设备1200的I/O请求的数量)。
根据一些示例实施例,存储体状态信息1113可以指示存储器设备1200的存储器存储体1211、1212、1213和1214的活动状态信息。例如,存储体状态信息1113可以包括活动状态的存储体信息BANK和行信息ROW。
图4是示出其中图2的存储器控制器通过使用图3的信息来执行读取-写入调度的方法的示图。参考图2至图4,存储器控制器1100可以确定使得读取请求RD和写入请求WR被分开地调度的轮次。本轮次(或当前轮次)被设置为写入轮次而下一轮次被设置为读取轮次的示例被示出。然而,这是作为示例提供的,并且读取轮次和写入轮次可以交替重复。作为示例,当本轮次是写入轮次时,下一轮次可以是读取轮次;当本轮次是读取轮次时,下一轮次可以是写入轮次。
根据一些示例实施例,存储器控制器1100的读取-写入调度器1110可以检查本轮次(例如,写入轮次)的请求队列(例如,写入请求队列1130)。例如,在当前写入轮次的开始时间点处,第一写入请求W1至第六写入请求W6可以存在于写入请求队列1130中。这样,读取-写入调度器1110可以基于地址(或存储体值和行值)调度分别对应于第一写入请求W1至第四写入请求W4的活动请求A11、A21、A31和A41,以便被指派(或传送)到存储器存储体BANK1、BANK2、BANK3和BANK4。要被指派(或传送)到不同存储体的活动请求A11、A21、A31和A41可以在相对较短的第一指定时间间隔处被调度。
根据一些示例实施例,读取-写入调度器1110可以调度第一写入请求W1至第四写入请求W4,以便在比第一指定时间更长的第二指定时间(例如,tRCD)经过之后被指派(或传送)到存储器存储体BANK1、BANK2、BANK3和BANK4。在活动请求和I/O请求之间要求或期望与第二指定时间(tRCD)一样多的时间间隔。第一写入请求W1至第四写入请求W4可以在比第二指定时间间隔更短的第三指定时间间隔处被调度。可以在第三指定时间间隔处调度I/O请求,而不管指定的存储体。
根据一些示例实施例,第二写入请求W2和第六写入请求W6可以被指派(或分配)到同一存储体(例如,存储体2)中的不同行(例如,行1和行10),从而导致页面冲突情形。因此,读取-写入调度器1110可以调度自动预充电命令,使得在对应于第二写入请求W2的写入操作之后立即执行预充电操作。因此,在第二写入请求W2之后,可以立即调度活动请求,而无需预充电请求。
根据一些示例实施例,每当调度请求时,读取-写入调度器1110可以检查本轮次(例如,写入轮次)的请求队列(例如,写入请求队列1130)。例如,在调度第四写入请求W4之后,当读取-写入调度器1110检查写入请求队列1130时,第七写入请求W7至第九写入请求W9可以进一步存在于写入请求队列1130中。读取-写入调度器1110可以基于第五写入请求W5至第九写入请求W9的地址来执行调度。
根据一些示例实施例,读取-写入调度器1110可以基于本轮次(即,写入轮次)的请求信息(例如,读取请求信息1111或写入请求信息1112)来设置读取写入(RW)切换点。例如,因为包括在写入请求信息1112中的最大突发信息具有值“8”,所以读取-写入调度器1110可以在调度第五写入请求W5到第八写入请求W8之后调度下一轮次(例如,读取轮次)。作为示例,因为第五写入请求W5、第七写入请求W7和第八写入请求W8处于在第一写入请求W1上被页面命中的状态(例如,页面命中意味着I/O请求具有相同的存储体值和相同的行值),所以第五写入请求W5、第七写入请求W7和第八写入请求W8可以被调度为被指派(或传送)到活动状态的第一存储体BANK1,而无需另外的存储体请求。
根据一些示例实施例,读取-写入调度器1110可以调度对应于第六写入请求W6的活动请求A22,以便被指派(或传送)给第二存储体BANK2。因为第六写入请求W6的存储体值等于作为第二写入请求W2的存储体值,但是第六写入请求W6的行值不同于作为第二写入请求W2的行值,所以有必要预充电存储器存储体,然后再次激活存储器存储体。然而,因为自动预充电命令是针对第二写入请求W2传送的,所以读取-写入调度器1110可以在没有预充电请求的情况下在第二写入请求W2之后调度活动请求A22。同时,在被调度为被指派(或传送)到同一存储体的两个活动请求之间要求或期望比第二指定时间(例如,tRCD)更长的第四指定时间(例如,tRC)。读取-写入调度器1110可以在自活动请求A21起的第四指定时间(例如,tRC)之后调度活动请求A22。
根据一些示例实施例,因为与第三存储体BANK3相关联的请求从第五写入请求W5至第八写入请求W8中不存在,所以读取-写入调度器1110可以将预充电请求P31调度为被指派(或传送)给第三存储体BANK3。在写入请求和预充电请求之间可能要求或期望处理写入请求所需的时间(例如tWR)以及附加时间“a”。
根据一些示例实施例,读取-写入调度器1110可以在读取-写入切换点之后调度下一轮次(例如,读取轮次)。读取-写入调度器1110可以检查下一轮次(例如,读取轮次)的请求队列(例如,读取请求队列1120)。例如,在读取-写入切换点处,第一读取请求R1到第四读取请求R4可以存在于读取请求队列1120中。为了调度第一读取请求R1到第四读取请求R4,读取-写入调度器1110可以通过存储体状态信息1113来检查存储器存储体BANK1、BANK2、BANK3和BANK4的活动状态。此外,读取-写入调度器1110可以通过写入请求队列1130检查本轮次(例如,写入轮次)的调度状态。
根据一些示例实施例,读取-写入调度器1110可以基于每个存储器存储体的状态和请求之间所需的时间,调度第一读取请求R1到第四读取请求R4。作为示例,读取-写入调度器1110可以调度对应于第一读取请求R1、第二读取请求R2和第四读取请求R4的预充电请求P11、P21和P41。因为第三存储体BANK3在本轮次(例如,写入轮次)中已经被预充电(例如,P31),所以第三存储体BANK3在下一轮次(例如,读取轮次)中可能不要求预充电请求。读取-写入调度器1110可以考虑在调度本轮次(例如,写入轮次)之后所需的时间间隔来调度预充电请求P11、P21和P41。在预充电请求P11、P21和P41被调度之后,读取-写入调度器1110可以调度与第一读取请求R1至第四读取请求R4对应的活动请求A12、A23、A32和A42。在预充电请求和活动请求之间可能要求或期望第五指定时间tRP。在活动请求A12、A23、A32和A42被调度之后,读取-写入调度器1110可以调度第一读取请求R1到第四读取请求R4。
如上所述,存储器控制器1100可以调度读取请求和写入请求,使得指定数量的读取请求(或属于指定时间的读取请求)和指定数量的写入请求(或属于指定时间的写入请求)基于读取-写入切换点被分开,然后可以将读取请求和写入请求发送到存储器设备1200。原因是同构请求之间(例如,读取请求之间或写入请求之间)所需的时间比异构请求之间(例如,读取请求和写入请求之间)所需的时间更短。存储器控制器1100可以通过在一个轮次中分组和处理同构请求来缩短操作时间。然而,在设置读取-写入切换点并分组和处理同构请求的情况下,在本轮次的最后的I/O请求(例如,第六个写入请求W6)和下一轮次的第一个I/O请求(例如,第四个读取请求R4)之间可能存在空白时间(或时间间隙)。空白时间(或时间间隙)可以比写入操作之后的读取操作(或读取操作之后的写入操作)所需的最小要求或期望时间tWTR更长。
图5是示出图4的读取-写入调度方法的流程图。参考图2至图5,存储器控制器1100可以基于读取-写入切换点将本轮次(例如,写入轮次)和下一轮次(例如,读取轮次)分开,以调度I/O请求(例如,读取请求或写入请求)。
根据一些示例实施例,在操作S110中,存储器控制器1100可以确定是否有本轮次的可能的I/O请求(RQ)。当确定有本轮次的可能的I/O请求时,存储器控制器1100可以执行操作S120。当确定没有本轮次的可能的I/O请求时,存储器控制器1100可以执行操作S140。例如,存储器控制器1100可以通过读取请求队列1120或写入请求队列1130检查关于本轮次的I/O请求的信息。I/O请求不可能的情况可以包括对应于I/O请求的存储器存储体处于非活动状态的情况,或者存储器存储体处于活动状态但是行值不同的情况。读取请求1120队列包括对应于读取请求中的每一个的存储体信息BANK和行信息ROW,并且包括指示读取请求是否被处理的有效信息,并且写入请求队列包括对应于写入请求中的每一个的存储体信息BANK和行信息ROW。响应于读取请求或写入请求中的一个被仲裁电路传送到存储器设备,读取-写入调度器被配置为更新读取请求队列或写入请求队列的存储体信息、行信息和有效信息,并基于读取请求队列或写入请求队列的更新的行信息和更新的有效信息来确定近切换点。
根据一些示例实施例,当有本轮次的可能的I/O请求时,在操作S120中,存储器控制器1100可以在本轮次中调度选择的I/O请求。
根据一些示例实施例,在操作S130中,存储器控制器1100可以比较最大突发信息和当前突发信息。当当前突发值小于最大突发值时,存储器控制器1100可以再次执行操作S110。当当前突发值大于或等于最大突发值时,存储器控制器1100可以执行操作S160。
根据一些示例实施例,当没有本轮次的可能的I/O请求时,在操作S140中,存储器控制器1100可以确定是否有本轮次的可能的存储体请求(例如,活动请求或预充电请求)。当确定有本轮次的可能的存储体请求(BANK RQ)时,存储器控制器1100可以执行操作S150。当确定没有本轮次的可能的存储体请求时,存储器控制器1100可以再次执行操作S110。
根据一些示例实施例,当有本轮次的可能的存储体请求时,在操作S150中,存储器控制器1100可以在本轮次中调度选择的存储体请求。在调度所选择的存储体请求之后,存储器控制器1100可以再次执行操作S110。
根据一些示例实施例,当当前突发值大于或等于最大突发(MAX BST)值时,在操作S160中,存储器控制器1100可以终止本轮次,并且可以切换到下一轮次。例如,当本轮次是读取轮次时,下一轮次可以是写入轮次。当本轮次是写入轮次时,下一轮次可以是读取轮次。在操作S130中,即,在比较当前突发值和最大突发值的过程中,存储器控制器1100可以基于最大突发值设置读取-写入切换点。
图6是示出图2的读取请求队列、写入请求队列、读取请求信息、写入请求信息、存储体状态信息的另一示例的示图。参考图2、图3和图6,图6的读取请求队列1120、写入请求队列1130、读取请求信息1111、写入请求信息1112和存储体状态信息1113可以与图3的读取请求队列1120、写入请求队列1130、读取请求信息1111、写入请求信息1112和存储体状态信息1113几乎相同。将省略与参考图3的读取请求信息1111、写入请求信息1112和存储体状态信息1113给出的相同的描述。
根据一些示例实施例,读取请求信息1111和写入请求信息1112中的每一个(或者其中至少一个)可以包括页面命中信息。例如,页面命中意味着I/O请求具有相同的存储体值和相同的行值。页面命中信息可以指示尚未处理(或者未被传送到存储器设备1200)的I/O请求当中具有相同存储体值和相同行值的I/O请求的数量。作为示例,在写入请求队列1130中,当前尚未被处理的第五写入请求W5至第九写入请求W9当中具有相同存储体值(例如,bank1)和相同行值(例如,row1)的第五写入请求W5和第七写入请求W7至第九写入请求W9是页面命中I/O请求。此外,页面命中信息可以具有值“4”。
图7是示出其中图2的存储器控制器通过使用图6的信息来执行读取-写入调度的方法的示例的示图。参考图2、图6和图7,存储器控制器1100可以确定使得读取请求RD和写入请求WR被分开调度的轮次。存储器控制器1100可以基于读取-写入切换点从本轮次(例如,写入轮次)切换到下一轮次(例如,读取轮次),并且可以执行调度。此外,存储器控制器1100可以设置近切换点。
根据一些示例实施例,存储器控制器1100可以在读取-写入切换点之前设置本轮次中的近切换点。例如,存储器控制器1100可以基于本轮次中处理的I/O请求的数量来设置近切换点。存储器控制器1100可以检查本轮次(例如,写入轮次)的请求信息(例如,写入请求信息1112)。存储器控制器1100可以检查本轮次的页面命中I/O请求的数量(例如,4)。存储器控制器1100可以检查最大突发值(例如,8)和当前突发值(例如,4)的突发差值(例如,8-4=4)。存储器控制器1100可以比较突发差值和页面命中I/O请求的数量。当页面命中I/O请求的数量小于突发差值时,存储器控制器1100可以继续执行本轮次的调度。当页面命中I/O请求的数量大于或等于突发差值时,存储器控制器1100可以在到目前为止处理的I/O请求当中的最后一个请求(例如,第四个写入请求W4)之后设置近切换点。
根据一些示例实施例,在近切换点和读取-写入切换点之间,存储器控制器1100可以阻止本轮次的存储体请求(例如,活动请求A22和预充电请求P31)的调度。存储器控制器1100可以阻止对应于被阻止的存储体请求的I/O请求(例如,第六写入请求W6)的调度。存储器控制器1100可以调度在本轮次中尚未处理的页面命中I/O请求(例如,第五写入请求W5和第七写入请求W7至第九写入请求W9)。
根据一些示例实施例,存储器控制器1100可以调度下一轮次(例如,读取轮次)的存储体请求(例如,活动请求A23和预充电请求P32),该存储体请求与对应于本轮次的被阻止的存储体请求的存储器存储体(例如,第二存储体BANK2或第三存储体BANK3)相关联,使得在本轮次中不被执行(或发布)。因此,对应于下一轮次的存储体请求的I/O请求(例如,第二读取请求R2和第三读取请求R3),其被调度为在本轮次中执行(或发布),可以比基于图4的方法进行调度时更早地在下一轮次中被调度。作为示例,可以在写入操作(或读取操作之后的写入操作)经过之后,在读取操作所需的最小要求或期望时间tWTR之后,立即调度第二读取请求R2。
如上所述,存储器控制器1100可以在读取-写入切换点之前设置近切换点,并且可以阻止近切换点和读取-写入切换点之间的不必要的存储体请求的调度。因此,可以减少存储器控制器1100的不必要的功耗。此外,存储器控制器1100可以调度下一轮次的存储体请求,以便被放置在本轮次的近切换点和读取-写入切换点之间。因此,与图4的情况相比,在读取-写入切换点之前和之后的数据空白时间可以减少到接近写入操作之后的读取操作(或读取操作之后的写入操作)所需的最小要求或期望时间tWTR。因此,读取-写入切换所需的延迟可以减少。这可能意味着存储器系统1000的性能被改进。
图8是示出图7的读取-写入调度方法的流程图。参考图2和图6至图8,存储器控制器1100可以基于读取-写入切换点将本轮次(例如,写入轮次)和下一轮次(例如,读取轮次)分开,以调度I/O请求(例如,读取请求或写入请求)。此外,存储器控制器1100可以设置近切换点,并且可以有效地管理近切换点和读取-写入切换点之间的存储体请求。
根据一些示例实施例,在操作S210中,存储器控制器1100可以确定是否有本轮次的可能的I/O请求。当确定有本轮次的可能的I/O请求时,存储器控制器1100可以执行操作S220。当确定本轮次没有可能的I/O请求时,存储器控制器1100可以执行操作S240。例如,存储器控制器1100可以通过读取请求队列1120或写入请求队列1130检查关于本轮次的I/O请求的信息。I/O请求不可能的情况可以包括对应于I/O请求的存储器存储体处于非活动状态的情况,或者存储器存储体处于活动状态但是行值不同的情况。
根据一些示例实施例,当有本轮次的可能的I/O请求时,在操作S220中,存储器控制器1100可以在本轮次中调度选择的I/O请求。
根据一些示例实施例,在操作S230中,存储器控制器1100可以比较最大突发信息和当前突发信息。当当前突发值小于最大突发值时,存储器控制器1100可以再次执行操作S210。当当前突发值大于或等于最大突发值时,存储器控制器1100可以执行操作S290。
根据一些示例实施例,在操作S240中,存储器控制器1100可以检查本轮次的页面命中I/O请求的数量(例如,4)。存储器控制器1100可以检查最大突发值(例如,8)和当前突发值(例如,4)的突发差值(例如,8-4=4)。存储器控制器1100可以比较突发差值和页面命中I/O请求的数量。当页面命中I/O请求的数量小于突发差值时,存储器控制器1100可以执行操作S250。当页面命中I/O请求的数量大于或等于突发差值时,存储器控制器1100可以执行操作S270。
根据一些示例实施例,当页面命中I/O请求的数量小于突发差值时,在操作S250中,存储器控制器1100可以确定是否有本轮次的可能的存储体请求(例如,活动请求和预充电请求)。因为确定有本轮次的可能的存储体请求,所以存储器控制器1100可以执行操作S260。当确定没有本轮次的可能的存储体请求时,存储器控制器1100可以再次执行操作S210。
根据一些示例实施例,当有本轮次的可能的存储体请求时,在操作S260中,存储器控制器1100可以在本轮次中调度选择的存储体请求。在调度选择的存储体请求之后,存储器控制器1100可以再次执行操作S210。
根据一些示例实施例,当页面命中I/O请求的数量大于或等于突发差值时,在操作S270中,存储器控制器1100可以确定是否有下一轮次的可能的存储体请求(例如,活动请求A23和预充电请求P32)。例如,存储器控制器1100可以在确定页面命中I/O请求的数量大于或等于突发差值的时间处设置近切换点。存储器控制器1100可以在近切换点之后调度下一轮次的存储体请求,而无需调度本轮次的存储体请求(例如,活动请求A22和预充电请求P31)。当确定有下一轮次的可能的存储体请求时,存储器控制器1100可以执行操作S280。当确定没有下一轮次的可能的存储体请求时,存储器控制器1100可以再次执行操作S210。
根据一些示例实施例,当有下一轮次的可能的存储体请求时,在操作S280中,存储器控制器1100可以调度下一轮次的选择的存储体请求(例如,活动请求A23和预充电请求P32),以便在本轮次中被处理(或发布)。在调度下一轮次的选择的存储体请求以便在本轮次中被处理(或发布)之后,存储器控制器1100可以再次执行操作S210。
根据一些示例实施例,当当前突发值大于或等于最大突发值时,在操作S290中,存储器控制器1100可以终止本轮次,并且可以切换到下一轮次。例如,当本轮次是读取轮次时,下一轮次可以是写入轮次。当本轮次是写入轮次时,下一轮次可以是读取轮次。
如上所述,在操作S230中,即,在比较当前突发值和最大突发值的过程中,存储器控制器1100可以基于最大突发值设置读取-写入切换点。此外,在操作S240中,即,在将页面命中I/O请求的数量与突发差值进行比较的过程中,存储器控制器1100可以设置近切换点。
图9是示出其中图2的存储器控制器通过使用图6的信息来执行读取-写入调度的方法的另一示例的示图。参考图2、图6和图9,存储器控制器1100可以确定使得读取请求RD和写入请求WR被分开调度的轮次。存储器控制器1100可以基于读取-写入切换点从本轮次(例如,写入轮次)切换到下一轮次(例如,读取轮次),并且可以执行调度。此外,存储器控制器1100可以设置近切换点。
根据一些示例实施例,在近切换点和读取-写入切换点之间,存储器控制器1100可以阻止本轮次的活动请求(例如,活动请求A22)的调度。存储器控制器1100可以阻止对应于被阻止的活动请求的I/O请求(例如,第六写入请求W6)的调度。存储器控制器1100可以调度在本轮次中尚未处理的页面命中I/O请求(例如,第五写入请求W5和第七写入请求W7至第九写入请求W9)。
根据一些示例实施例,当本轮次的活动请求被阻止时,存储器控制器1100可以快速调度属于下一轮次的、并且与对应于本轮次(例如,写入轮次)的被阻止的存储体请求的存储器存储体相关联的存储体请求(例如,活动请求A23)。因此,与对应于本轮次(例如,写入轮次)的被阻止的存储体请求的存储器存储体(例如,第二存储体BANK2)相关联的下一轮次的I/O请求(例如,第二读取请求R2)可以比基于图4的方法进行调度时更早地在下一轮次中被调度。
如上所述,存储器控制器1100可以在读取-写入切换点之前设置近切换点,并且可以阻止近切换点和读取-写入切换点之间的不必要的活动请求的调度。因此,可以减少存储器控制器1100的不必要的功耗。此外,存储器控制器1100可以快速调度下一轮次的存储体请求,该存储体请求与对应于被阻止的活动请求的存储器存储体相关联。因此,与图4的情况相比,读取-写入切换点之前和之后的数据空白时间可以减少。因此,读取-写入切换所需的延迟可以减少。这可能意味着存储器系统1000的性能被改进。
图10是示出图9的读取-写入调度方法的流程图。参考图2、图6、图9和图10,存储器控制器1100可以基于读取-写入切换点将本轮次(例如,写入轮次)和下一轮次(例如,读取轮次)分开,以调度I/O请求(例如,读取请求或写入请求)。此外,存储器控制器1100可以设置近切换点,并且可以有效地管理近切换点和读取-写入切换点之间的存储体请求。操作S310至操作S360可以与图8的操作S210至操作S260相同或相似。此外,操作S390可以与图8的操作S290相同或相似。因此,将省略与操作S310至操作S360和操作S390相关联的附加描述以避免冗余。
根据一些示例实施例,当页面命中I/O请求的数量大于或等于突发差值时,在操作S370中,存储器控制器1100可以确定是否有本轮次的可能的预充电请求(例如,预充电请求P31)。例如,存储器控制器1100可以在确定页面命中I/O请求的数量大于或等于突发差值的时间处设置近切换点。存储器控制器1100可以不在近切换点之后调度本轮次的活动请求(例如,活动请求A22),并且可以仅调度属于本轮次的存储体请求的预充电请求(例如,预充电请求P31)。当确定有本轮次可能的预充电请求时,存储器控制器1100可以执行操作S380。当确定没有本轮次的可能的预充电请求时,存储器控制器1100可以再次执行操作S310。
根据一些示例实施例,当有本轮次的可能的预充电请求时,在操作S380中,存储器控制器1100可以调度预充电请求(例如,预充电请求P31)以便在本轮次中被处理(或发布)。在调度选择的预充电请求以便在本轮次中被处理(或发布)之后,存储器控制器1100可以再次执行操作S310。
如上所述,在近切换点和读取-写入切换点之间,存储器控制器1100可以阻止活动请求的调度。因此,可以减少存储器控制器1100的不必要的功耗。此外,存储器控制器1100可以快速调度下一轮次的存储体请求,该存储体请求与对应于被阻止的活动请求的存储体相关联。因此,与图4的情况相比,读取-写入切换点之前和之后的数据空白时间可以减少。同时,在性能改进方面,图8的方法可能比图10的方法更有利,但是在功率效率方面,图10的方法可能比图8的方法更有利。
图11是示出图2的存储器控制器的读取-写入调度方法的流程图。参考图2和图6至图11,存储器控制器1100可以基于读取-写入切换点来分开本轮次(例如,写入轮次)和下一轮次(例如,读取轮次),以调度I/O请求(例如,读取请求或写入请求)。此外,存储器控制器1100可以设置近切换点,并且可以有效地管理近切换点和读取-写入切换点之间的存储体请求。
根据一些示例实施例,在操作S410中,存储器控制器1100可以设置进行从本轮次到下一轮次的切换的读取-写入切换点,并且可以调度I/O请求和对应于I/O请求的存储体请求。例如,存储器控制器1100可以基于指定的单位(例如,指定的请求数量或指定的时间)来确定轮次,并且可以执行调度,使得给定量的读取请求或写入请求被传送。存储器控制器1100可以基于在读取轮次或写入轮次中执行的请求的数量来设置读取-写入切换点。可替代地,存储器控制器1100可以基于在其期间执行读取轮次或写入轮次的时间来设置读取-写入切换点。
根据一些示例实施例,在操作S420中,存储器控制器1100可以在读取-写入切换点之前设置近切换点。例如,存储器控制器1100可以基于本轮次处理的I/O请求的数量来设置近切换点。存储器控制器1100可以检查本轮次(例如,写入轮次)的请求信息(例如,写入请求信息1112)。存储器控制器1100可以检查本轮次的页面命中I/O请求的数量(例如,4)。存储器控制器1100可以检查最大突发(例如,8)和当前突发(例如,4)的突发差值(例如,8-4=4)。存储器控制器1100可以比较突发差值和页面命中I/O请求的数量。当页面命中I/O请求的数量小于突发差值时,存储器控制器1100可以继续执行本轮次的调度。当页面命中I/O请求的数量大于或等于突发差值时,存储器控制器1100可以在到目前为止处理的I/O请求当中的最后的请求(例如,第四个写入请求W4)之后设置近切换点。
根据一些示例实施例,在操作S430中,在近切换点和读取-写入切换点之间,存储器控制器1100可以阻止本轮次的存储体请求的调度。例如,参考图7,存储器控制器1100可以阻止调度本轮次的存储体请求(例如,活动请求A22和预充电请求P31)。存储器控制器1100可以阻止对应于被阻止的存储体请求的I/O请求(例如,第六写入请求W6)的调度。存储器控制器1100可以调度本轮次中尚未处理的页面命中I/O请求(例如,第五写入请求W5和第七写入请求W7至第九写入请求W9)。
根据一些示例实施例,在操作S440中,在近切换点和读取-写入切换点之间,存储器控制器1100可以允许下一轮次的存储体请求的调度。例如,参考图7,存储器控制器1100可以调度下一轮次(例如,读取轮次)的存储体请求(例如,活动请求A23和预充电请求P32),该存储体请求与对应于本轮次中被阻止的存储体请求的存储器存储体(例如,第二存储体BANK2或第三存储体BANK3)相关联,以便在本轮次中被执行(或发布)。因此,与下一轮次的存储体请求对应的I/O请求(其被调度为在本轮次中执行(或发布))可以在下一轮次中比在基于图4的方法进行调度时更早地被调度。
图12是示出根据一些示例实施例的移动系统的示图。参考图12,移动系统2000可以包括应用处理器2100和存储器设备2200。应用处理器2100可以包括存储器控制器2110。存储器设备2200可以包括控制逻辑2220和存储器核心2210。
根据一些示例实施例,存储器控制器2110可以通过向存储器设备2200提供各种种类的信号来控制存储器设备2200的整体操作。例如,存储器控制器2110可以控制存储器设备2200的存储器访问操作,诸如读取操作或写入操作。出于将数据“DATA”存储在存储器设备2200中或者读取存储在存储器设备2200中的数据“DATA”的目的,存储器控制器2110可以提供命令CMD和地址ADDR。此外,存储器控制器2110还可以向存储器设备2200提供时钟信号CLK。
根据一些示例实施例,存储器设备2200可以将由存储器控制器2110读取请求的数据“DATA”输出到存储器控制器2110,或者可以将由存储器控制器2110写入请求的数据“DATA”存储在存储器单元中。存储器设备2200可以基于命令CMD、地址ADDR和时钟信号CLK来输入/输出数据“DATA”。存储器设备2200可以包括存储器核心2210和控制逻辑2220。存储器核心2210可以包括以存储体为单位划分的存储器单元阵列。存储器单元阵列可以包括多个存储器存储体。
根据一些示例实施例,存储器控制器2110可以包括读取-写入调度器2111。例如,读取-写入调度器2111可以确定向存储器设备2200发送存储体请求(例如,活动请求和预充电请求)和I/O请求(例如,读取请求和写入请求)的顺序。存储体请求可以包括对应于读取请求的存储体请求或者对应于写入请求的存储体请求。读取-写入调度器2111可以调度读取请求和写入请求,以便分开地传送。读取-写入调度器2111可以基于指定的单位(例如,指定的请求数量或指定的时间)来确定轮次,并且可以执行调度,使得给定量的读取请求或写入请求被传送。存储器控制器2110可以基于参照图6至图11描述的方法中的至少一个来执行读取-写入调度操作。
根据一些示例实施例,存储器控制器2110(或读取-写入调度器2111)可以调度读取请求和写入请求,以便分开地传送。例如,读取-写入调度器2111可以基于指定的单位(例如,指定的请求数量或指定的时间)来确定轮次,并且可以执行调度,使得给定量的读取请求或写入请求被传送。作为示例,读取-写入调度器2111可以设置读取-写入切换点,在该读取-写入切换点处,执行读取请求的轮次和执行写入请求的轮次被切换。读取-写入调度器2111可以基于在读取轮次或写入轮次中执行的请求的数量来设置读取-写入切换点。可替代地,读取-写入调度器2111可以基于在其期间执行读取轮次或写入轮次的时间来设置读取-写入切换点。
根据一些示例实施例,存储器控制器2110(或读取-写入调度器2111)可以在读取-写入切换点之前设置近切换点。在近切换点和读取-写入切换点之间,存储器控制器2110(或读取-写入调度器2111)可以阻止不必要的存储体请求的调度。因此,可以减少存储器控制器2110(或读取-写入调度器2111)的不必要的功耗。此外,存储器控制器2110(或读取-写入调度器2111)可以调度下一轮次的存储体请求,以便被放置在本轮次的近切换点和读取-写入切换点之间。因此,与图4的情况相比,读取-写入切换点之前和之后的数据空白时间可以减少。因此,读取-写入切换所需的延迟可以减少。这可能意味着移动系统2000的性能被改进。通过上述方法,存储器控制器2110(或读取-写入调度器2111)可以使移动系统2000的存储器带宽更好。
根据一些示例实施例,可以通过阻止本轮次不必要的存储体请求来减少功耗。
此外,根据一些示例实施例,由于下一轮次的存储体请求中的一些被调度在本轮次中发布,因此根据读取-写入切换的延迟可以减少,并且带宽可以增加。
上面公开的任何元件和/或功能块可以包括或实现在处理电路中,诸如包括逻辑电路的硬件;硬件/软件组合,诸如执行软件的处理器;或它们的组合。例如,存储器控制器1100和控制逻辑1220可以被实现为处理电路。处理电路具体可以包括但不限于中央处理单元(CPU)、算术逻辑单元(ALU)、数字信号处理器、微型计算机、现场可编程门阵列(FPGA)、片上系统(SoC)、可编程逻辑单元、微处理器、专用集成电路(ASIC)等。处理电路可以包括电子组件,诸如晶体管、电阻器、电容器等中的至少一个。处理电路可以包括电子组件,诸如包括与(AND)门、或(OR)门、与非(NAND)门、非(NOT)门等中的至少一个的逻辑门。
处理器、控制器和/或处理电路可以被配置为通过被专门编程以执行那些动作或步骤(诸如利用FPGA或ASIC)来执行这些动作或步骤,或者可以被配置为通过执行从存储器接收的指令来执行这些动作或步骤,或者它们的组合。
虽然已经参考本公开的示例性实施例描述了本公开,但是对于本领域普通技术人员来将清晰的是,在不脱离如所附权利要求中阐述的示例性实施例的精神和范围的情况下,可以对其进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器设备,包括被划分为多个存储器存储体的存储器单元阵列;以及
存储器控制器,被配置为向存储器设备发送读取请求或写入请求,以用于分别向所述存储器单元阵列的存储器存储体输入数据或从所述存储器单元阵列的存储器存储体输出数据,以及基于读取-写入切换点发送读取请求以便与写入请求分开,
其中,所述存储器控制器被配置为
在包括读取请求或写入请求的第一轮次输入/输出I/O请求中,基于来自I/O请求当中的在第一轮次中处理的I/O请求的数量,在读取-写入切换点之前设置近切换点,
在近切换点和读取-写入切换点之间,针对要在第一轮次中调度的至少一个第一初步I/O请求,阻止调度第一存储体请求中的至少一个,第一存储体请求中的所述至少一个指示存储器存储体的状态切换,以及
针对要在读取-写入切换点之后的第二轮次中调度的第二初步I/O请求,调度第二存储体请求中的至少一个以便在近切换点和读取-写入切换点之间被发布,第二存储体请求中的所述至少一个指示存储器存储体的状态切换。
2.根据权利要求1所述的存储器系统,其中,第一存储体请求和第二存储体请求中的至少一个包括:
用于将存储器存储体中的一个设置为活动状态的活动请求;以及
用于将来自存储器存储体当中的处于活动状态的存储器存储体设置为备用状态的预充电请求。
3.根据权利要求1所述的存储器系统,其中,所述存储器控制器被配置为基于要在第一轮次中执行的I/O请求的最大请求数量或者基于指定时间来设置读取-写入切换点。
4.根据权利要求3所述的存储器系统,其中,所述存储器控制器被配置为:
从要在第一轮次中调度的I/O请求当中获得多个页面命中请求,所述多个页面命中请求中包括的页面命中请求中的每一个具有与当前处于活动状态的存储器存储体相同的存储体值和相同的行值;以及
响应于页面命中请求的数量小于最大请求数量和在第一轮次中处理的I/O请求的数量的差值,将时间点设置为近切换点,所述时间点与在第一轮次中处理的I/O请求被完全发布相关联。
5.根据权利要求1所述的存储器系统,其中,所述存储器控制器被配置为在近切换点和读取-写入切换点之间,不在第一轮次中调度来自在第一轮次中被调度的I/O请求当中的、具有与当前处于活动状态的存储器存储体的存储体值和行值不同的存储体值和行值的I/O请求。
6.根据权利要求5所述的存储器系统,其中,所述存储器控制器被配置为在近切换点和读取-写入切换点之间,在第一轮次中调度来自要在第一轮次中被执行的I/O请求当中的、具有与当前处于活动状态的存储器存储体的存储体值和行值相同的存储体值和行值的所有I/O请求。
7.根据权利要求1所述的存储器系统,其中,所述存储器控制器包括:
读取请求队列,被配置为存储从主机接收的读取请求,
写入请求队列,被配置为存储从主机接收的写入请求,
读取-写入调度器,被配置为基于存储器存储体的状态来调度读取请求或写入请求,以便在第一轮次或第二轮次中发布,以及
仲裁电路,被配置为基于读取-写入调度器的调度结果向存储器设备发送读取请求、写入请求和用于存储器存储体的状态切换的存储体请求。
8.根据权利要求7所述的存储器系统,其中,以下至少一项
所述读取请求队列包括对应于读取请求中的每一个的存储体信息和行信息,并且包括指示读取请求是否被处理的有效信息,或者
所述写入请求队列包括对应于写入请求中的每一个的存储体信息和行信息,并且包括指示写入请求是否被处理的有效信息。
9.根据权利要求8所述的存储器系统,其中,响应于读取请求或写入请求中的一个被仲裁电路传送到存储器设备,所述读取-写入调度器被配置为:
更新所述读取请求队列或所述写入请求队列的存储体信息、行信息和有效信息;以及
基于更新的行信息以及所述读取请求队列或所述写入请求队列的更新的有效信息来确定近切换点。
10.根据权利要求7所述的存储器系统,其中,所述仲裁电路被配置为基于读取-写入调度器的调度结果,按照I/O请求、对应于所述I/O请求的活动请求和对应于所述I/O请求的预充电请求的顺序来确定优先级。
11.根据权利要求1所述的存储器系统,其中,所述存储器控制器被配置为调度与在近切换点和读取-写入切换点之间调度的第二存储体请求中的至少一个对应的I/O请求,以便在第二轮次中首先被发布。
12.一种存储器系统,包括:
存储器设备,包括被划分为多个存储器存储体的存储器单元阵列;以及
存储器控制器,被配置为向存储器设备发送读取请求或写入请求,以用于分别向存储器单元阵列的存储器存储体输入数据或从存储器单元阵列的存储器存储体输出数据,以及基于读取-写入切换点发送读取请求以便与写入请求分开,
其中,所述存储器控制器被配置为
在包括读取请求或写入请求的第一轮次输入/输出I/O请求中,基于来自I/O请求当中的在第一轮次中被处理的I/O请求的数量,在读取-写入切换点之前设置近切换点,以及
在近切换点和读取-写入切换点之间,针对要在第一轮次中调度的至少一个第一初步I/O请求,阻止调度第一活动请求,第一活动请求指示将存储器存储体中的一个设置为活动状态。
13.根据权利要求12所述的存储器系统,其中,所述存储器控制器被配置为在近切换点和读取-写入切换点之间,针对至少一个初步I/O请求,阻止调度第一预充电请求,第一预充电请求指示将来自存储器存储体的当中的处于活动状态的存储器存储体切换到备用状态。
14.根据权利要求13所述的存储器系统,其中,所述存储器控制器被配置为,在I/O请求的第二轮次中,针对与对应于第一活动请求的存储器存储体具有相同存储体地址的I/O请求,调度第二活动请求或第二预充电请求,以便在第二轮次中首先被调度。
15.根据权利要求14所述的存储器系统,其中,所述存储器控制器被配置为,在I/O请求的第二轮次中,针对与对应于第一预充电请求的存储器存储体具有相同的存储体地址的I/O请求,调度第三活动请求,以便在第二活动请求或第二预充电请求之后立即被调度。
16.一种存储器系统的操作方法,所述方法包括:
在包括从存储器控制器传送到存储器设备的读取请求或写入请求的第一轮次输入/输出I/O请求中,基于要在第一轮次中执行的I/O请求的最大请求数量或基于指定时间来设置读取-写入切换点;
基于来自I/O请求当中的在第一轮次中处理的I/O请求的数量,在读取-写入切换点之前设置近切换点;
在近切换点和读取-写入切换点之间,针对要在第一轮次中调度的至少一个第一初步I/O请求,阻止调度第一存储体请求中的至少一个,第一存储体请求中的所述至少一个指示存储器设备中包括的存储器存储体的状态切换,以及
针对要在读取-写入切换点之后在第二轮次中调度的第二初步I/O请求,调度第二存储体请求中的至少一个以便在近切换点和读取-写入切换点之间被发布,第二存储体请求中的所述至少一个指示所述存储器存储体的状态切换。
17.根据权利要求16所述的方法,其中,所述近切换点的设置包括:
从要在第一轮次中执行的I/O请求当中获得多个页面命中请求,所述页面命中请求中包括的页面命中请求中的每一个具有与当前处于活动状态的存储器存储体相同的存储体值和相同的行值;以及
响应于页面命中请求的数量小于最大请求数量和在第一轮次中被处理的I/O请求的数量的差值,将时间点设置为近切换点,所述时间点与在第一轮次中被处理的I/O请求被完全发布相关联。
18.根据权利要求16所述的方法,还包括:
在近切换点和读取-写入切换点之间,阻止来自在第一轮次中调度的I/O请求当中的、具有与当前处于活动状态的存储器存储体的存储体值和行值不同的存储体值和行值的I/O请求在第一轮次中被调度。
19.根据权利要求18所述的方法,还包括:
在近切换点和读取-写入切换点之间,调度来自在第一轮次中调度的I/O请求当中的、具有与当前处于活动状态的存储器存储体的存储体值和行值相等的存储体值和行值的所有I/O请求,以便在第一轮次中被发布。
20.根据权利要求16所述的方法,还包括:
调度与在近切换点和读取-写入切换点之间调度的第二存储体请求中的至少一个对应的I/O请求,以便在第二轮次中首先被发布。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2022-0021994 | 2022-02-21 | ||
KR1020220068915A KR20230125706A (ko) | 2022-02-21 | 2022-06-07 | 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법 |
KR10-2022-0068915 | 2022-06-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116627317A true CN116627317A (zh) | 2023-08-22 |
Family
ID=87590831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310181431.1A Pending CN116627317A (zh) | 2022-02-21 | 2023-02-20 | 含存储器设备和存储器控制器的存储器系统及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116627317A (zh) |
-
2023
- 2023-02-20 CN CN202310181431.1A patent/CN116627317A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3403184B1 (en) | Apparatuses and methods for concurrently accessing multiple partitions of a non-volatile memory | |
KR102329673B1 (ko) | 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US8122186B2 (en) | Memory device, memory system and dual port memory device with self-copy function | |
US20080291727A1 (en) | Semiconductor memory system having volatile memory and non-volatile memory that share bus, and method of controlling operation of non-volatile memory | |
KR20170057704A (ko) | 액세스 동작과 리프레쉬 동작의 충돌을 제어하는 메모리 장치 및 이를 포함하는 메모리 시스템 | |
US7782703B2 (en) | Semiconductor memory having a bank with sub-banks | |
US11449441B2 (en) | Multi-ported nonvolatile memory device with bank allocation and related systems and methods | |
CN101398793A (zh) | 存储器控制设备和半导体处理装置 | |
KR102649213B1 (ko) | 메모리 칩을 선택하는데 사용되는 인터페이스 칩 그리고 메모리 칩과 인터페이스 칩을 포함하는 스토리지 장치 | |
US20120155200A1 (en) | Memory device, memory system including the same, and control method thereof | |
US9275692B2 (en) | Memory, memory controllers, and methods for dynamically switching a data masking/data bus inversion input | |
US6829195B2 (en) | Semiconductor memory device and information processing system | |
US10325643B2 (en) | Method of refreshing memory device and memory system based on storage capacity | |
US20020136079A1 (en) | Semiconductor memory device and information processing system | |
EP4231162A1 (en) | Memory system including memory device and memory controller, and operating method thereof | |
CN116627317A (zh) | 含存储器设备和存储器控制器的存储器系统及其操作方法 | |
CN115374030A (zh) | 具有存储器发起的命令插入的存储器以及相关联系统、装置和方法 | |
KR20170093053A (ko) | 리프레시 정보 생성기를 포함하는 휘발성 메모리 장치 및 전자 장치, 그것의 정보 제공 방법, 그리고 그것의 리프레시 제어 방법 | |
KR20230125706A (ko) | 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 그것의 동작 방법 | |
US11983411B2 (en) | Methods, devices and systems for including alternate memory access operations over memory interface | |
US20070094460A1 (en) | DRAM control circuit | |
CN117789785A (zh) | 存储器件及其操作方法 | |
CN118113625A (zh) | 地址解码方法以及存储器控制器和半导体存储系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |