CN107491397A - 存储设备、存储模块和存储设备的操作方法 - Google Patents

存储设备、存储模块和存储设备的操作方法 Download PDF

Info

Publication number
CN107491397A
CN107491397A CN201710328968.0A CN201710328968A CN107491397A CN 107491397 A CN107491397 A CN 107491397A CN 201710328968 A CN201710328968 A CN 201710328968A CN 107491397 A CN107491397 A CN 107491397A
Authority
CN
China
Prior art keywords
cache
storage device
cache lines
storage
policy
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.)
Withdrawn
Application number
CN201710328968.0A
Other languages
English (en)
Inventor
文盛业
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107491397A publication Critical patent/CN107491397A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0895Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6042Allocation of cache space to multiple users or processors
    • G06F2212/6046Using a specific cache allocation policy other than replacement policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

本发明提供一种存储设备、存储模块及存储设备的操作方法。该存储设备包括单元阵列、缓存策略设置电路以及缓存逻辑。单元阵列存储多条缓存线和对应于多条缓存线的多个标签,缓存策略设置电路从多个管理策略中选择至少一个管理策略,并且基于所述至少一个选择的管理策略设置缓存策略,以及缓存逻辑基于所述缓存策略管理所述多条缓存线。

Description

存储设备、存储模块和存储设备的操作方法
相关申请的交叉引用
本申请要求于2016年6月8日在韩国知识产权局提交的韩国专利申请第10-2016-0070997号的优先权的权益,其公开内容通过引用整体并入本文。
技术领域
本公开涉及一种半导体存储设备,并且更具体地,涉及一种作为缓存存储器操作的存储设备和存储模块,以及该存储设备的操作方法。
背景技术
在计算系统中,缓存存储器用于减少由于主存储器的长访问延迟而导致的性能恶化。随着主存储器的容量增加,缓存存储器的容量也增加。因此,能够被实现为具有高容量的存储器,诸如动态随机存取存储器(DRAM),可以用作缓存存储器。
发明内容
本公开提供了一种动态地改变缓存策略的存储设备和存储模块,以及存储设备的操作方法。
根据本发明构思的一个方面,提供了一种存储设备,所述存储设备包括单元阵列、缓存策略设置电路和缓存逻辑,所述单元阵列存储多条缓存线和对应于多条缓存线的多个标签,所述缓存策略设置电路从多个管理策略选择至少一个管理策略并基于至少一个选择的管理策略设置缓存策略,所述缓存逻辑基于缓存策略管理多条缓存线。
根据本发明构思的另一方面,提供了一种存储模块,所述存储模块包括多个第一存储设备和第二存储设备,所述多个第一存储设备存储多条缓存线,所述第二存储设备存储对应于多条缓存线的多个缓存标签,从多个管理策略中选择至少一个管理策略作为缓存策略,以及基于缓存策略和多个缓存标签来管理多条缓存线。
根据本发明构思的另一方面,提供了一种存储设备的操作方法,所述操作方法包括:基于预设的缓存策略来管理多条缓存线,基于从外部设备接收的命令,通过从多个管理策略中选择一个管理策略作为缓存策略来改变缓存策略,以及基于改变的缓存策略来管理多条缓存线。
根据本发明构思的另一方面,提供了一种存储设备的操作方法,所述操作方法包括:基于预设缓存策略来管理多条缓存线;从存储设备外部的存储控制器接收缓存策略设置命令;当基于所接收的缓存策略设置命令的缓存策略与预设缓存策略不同时,通过从多个管理策略中选择管理策略作为用于操作存储设备的新缓存策略来改变预设缓存策略;以及基于新的缓存策略来管理所述多条缓存线。
附图说明
从下面结合附图的详细描述中将更清楚地理解本发明构思的实施例,在附图中:
图1是根据示例性实施例的电子系统的示意性框图;
图2是根据示例性实施例的存储系统的框图;
图3是根据示例性实施例的存储设备的框图;
图4A是用于描述图1的缓存存储器和主存储器的数据映射的视图;
图4B是用于访问图1的缓存存储器的地址结构的示例的视图;
图5A和5B是根据示例性实施例的缓存策略设置电路的框图;
图6是图5B的监控电路的实施例的框图;
图7A和7B是用于描述根据示例性实施例的存储设备的操作的视图;
图8至图11是根据示例性实施例的存储设备的操作的流程图;
图12是根据示例性实施例的存储系统的操作的流程图;
图13和图14是根据示例性实施例的存储设备的电路图;
图15是根据示例性实施例的存储模块的视图;
图16和图17是根据示例性实施例的存储模块的操作的流程图;
图18是根据示例性实施例的存储模块的视图;
图19是根据示例性实施例的存储模块的视图;
图20至22是根据示例性实施例的计算系统的框图;以及
图23是根据示例性实施例的移动系统的框图。
具体实施方式
现在将在下文中参考附图更全面地描述本公开,在附图中示出了各种实施例。然而,本发明可以以许多不同的形式实施,并且不应被解释为限于本文所阐述的示例性实施例。这些示例性实施例仅仅是——示例——并且许多实现和变型是可能的,其不需要本文提供的细节。还应该强调的是,本公开提供了替代示例的细节,但是这样的替代列表不是穷尽的。此外,各种示例之间的细节的任何一致性不应被解释为需要这样的细节——列出本文所描述的每个特征的每个可能的变化是不切实际的。在确定本发明的要求时应参考权利要求的语言。
如在本发明构思的领域中传统的,根据功能块、单元和/或模块描述并且在附图中示出实施例。本领域技术人员将理解,这些块、单元和/或模块通过诸如逻辑电路、分立组件、微处理器、硬连线电路、存储元件、布线连接等的电子(或光)电路物理地实现,其可以使用基于半导体的制造技术或其他制造技术形成。在块、单元和/或模块由微处理器或类似物实现的情况下,它们可以使用软件(例如,微代码)编程以执行本文所讨论的各种功能,并且可以可选地由固件和/或软件驱动。或者,可通过专用硬件或作为执行一些功能的专用硬件和处理器(例如,一个或多个编程的微处理器和相关联的电路)的组合来实现每个块、单元和/或模块以执行其他功能。此外,在不脱离本发明构思的范围的情况下,实施例的每个块、单元和/或模块可以物理地分离成两个或更多个交互和离散的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可以物理地组合成更复杂的块、单元和/或模块。
在下文中,将参照附图描述本发明构思的各种实施例。
图1是根据示例性实施例的电子系统1000的示意性框图。
参考图1,电子系统1000可以被实现为智能电话、平板个人计算机(PC)、移动电话、视频电话、电子书阅读器、台式PC、膝上型PC、上网本计算机、个人数字助理(PDA)、便携式多媒体播放器(PMP)、MPEG音频层3(MP3)播放器、照相机、可穿戴设备、服务器、车辆电子设备、船用电子装备(例如,海洋导航设备、陀螺罗盘等)、航电设备、安全设备、工业或家用机器人、自动柜员机(ATM)、电子医疗设备、家用电器、智能家具和建筑物/建造物的部件中的至少一者。
电子系统1000可以包括主机系统1200、缓存存储器1100和主存储器1300。
主机系统1200可以控制电子系统1000的一般操作并执行逻辑操作。例如,主机系统1200可以形成为片上系统(SoC)。主机系统1200可以包括中央处理单元(CPU)1210和知识产权(以下称为IP)1220。
CPU 1210可以处理或执行存储在主存储器1300中的程序和/或数据。根据实施例,CPU 1210可以被实现为多核处理器。根据实施例,CPU 1210可以包括位于同一芯片上的缓存(例如,L1缓存,未示出)。
IP 1220是指可以集成在电子系统1000中的电路、逻辑或其组合。电路或逻辑可以存储计算代码。
IP 1220可以包括例如图形处理单元(GPU)、多格式编解码器(MFC)、视频模块(例如,照相机接口、联合图像专家组(JPEG)处理器、视频处理器、混合器等)、音频系统、驱动器、显示驱动器、易失性存储设备、非易失性存储设备、存储控制器、缓存存储器、串行端口、系统定时器、监控定时器(watch dog timer)、模拟-数字转换器等。
根据实施例,IP 1220可以在其内部包括缓存存储器。图1示出了主机系统1200包括一个IP 1220。然而,本发明构思不限于此,并且主机系统1200可以包括多个IP。
主存储器1300可以存储或读取由主机系统1200请求的数据。例如,主存储器1300可以存储可以由CPU 1210执行的命令和数据。此外,主存储器1300可以存储或读取由IP1220请求的数据。
主存储器1300可以被实现为易失性存储设备或非易失性存储设备。易失性存储设备可以被实现为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、晶闸管RAM(T-RAM)、零电容器RAM(Z-RAM)或双晶体管RAM(TTRAM)。
非易失性存储设备可以被实现为电可擦除可编程只读存储器(EEPROM)、闪存、磁性RAM(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相变RAM(PRAM)、电阻RAM(RRAM)、纳米管RRAM、聚合物RAM(PoRAM)、纳米浮动栅极存储器(NFGM)、全息存储器、分子电子存储设备或绝缘体电阻变化存储器。
缓存存储器1100是用于临时存储存储在或将要存储在主存储器1300中的数据的一部分的存储器。缓存存储器1100是用于通过在执行程序时使用基于时间或空间的缓存策略快速访问在主存储器1300或盘(未示出)中使用的数据的存储器。基于时间的缓存策略可以使用检索到资源/数据的时间来定义缓存条目的新鲜度。基于空间的缓存策略可以基于能够从中获取所请求的资源/数据的位置来定义缓存条目的新鲜度。
缓存存储器1100可以被布置在主机系统1200和主存储器1300之间。存储在主存储器1300中的数据的一部分可以被复制到缓存存储器1100,并且指示存储在主存储器1300的哪个位置的数据被复制到缓存存储器1100的标签可以进一步被存储在缓存存储器1100中。对应于一个标签的数据单元,即,在缓存存储器1100和主存储器1300之间传输的数据块,被称为缓存线。稍后将参考图4A和图4B描述其详细方面。
基于标签比较操作,确定在缓存存储器1100中是否存在由主机系统1200请求访问的数据。当在缓存存储器1100中存在请求访问的数据(即,缓存命中)时,可以将缓存存储器1100的数据提供给主机系统1200。当在缓存存储器1100中不存在请求访问的数据(即,缓存未命中)时,可以从主存储器1300读取包括所请求的数据的具有特定大小的数据,并将其复制到缓存存储器1100,并且由主机系统1200请求的数据可以从复制的数据中读取并提供给主机系统1200。
在缓存未命中的情况下,可以基于缓存存储器1100的缓存策略从存储在缓存存储器1100中的缓存线当中选择牺牲缓存线(或替换缓存线),并且从主存储器1300读取的数据可以被复制到其中存储牺牲缓存线的单元区域(称为路)。缓存存储器1100可以基于使用环境(诸如来自主机系统1200的请求模式)来动态地改变缓存策略。例如,缓存策略可以包括缓存线替换策略。当缓存存储器1100使用基于最近最少使用(LRU)的替换策略时,如果存在来自主机系统1200的许多写入请求,则缓存存储器1100可以将缓存线替换策略从基于最近最少使用(LRU)的替换策略改变为干净缓存线基于第一替换策略(clean cache linefirst-based replacement policy)。这里,干净缓存线是指存储具有与来自存储在主存储器1300中的数据相同值的数据的缓存线。例如,当缓存存储器1100使用基于最近最少使用(LRU)的替换策略时,缓存存储器1100可以首先优先选择用于牺牲缓存线的最近最少使用的缓存线。当缓存存储器1100使用干净缓存线基于第一替换策略时,缓存存储器1100优先选择用于牺牲缓存线的干净缓存线。在一些实施例中,如果存在来自主机系统1200的许多写入请求,则缓存存储器1100的缓存线替换策略可以从基于最近最少使用(LRU)的替换策略改变为干净缓存线基于第一替换策略,并且然后缓存存储器1100将优先选择用于牺牲缓存线的干净缓存线。
缓存存储器1100可以被实现为易失性存储器或非易失性存储器。在下文中,将描述缓存存储器1100被实现为DRAM的示例。然而,本发明构思不限于此,可以应用各种存储设备,诸如能够访问页单元中的存储单元阵列的存储设备和能够访问列地址和行地址单元中的存储单元阵列的存储设备。
当诸如闪存或PRAM的非易失性存储器被用作主存储器1300时,写入操作的数量受到限制,从而其寿命可能受到限制。因此,当缓存存储器1100应用基于读取延迟的缓存策略时,可以频繁地替换脏缓存线(dirty cache line)。这里,脏缓存线是指存储具有与存储在主存储器1300中的数据不同的值的数据的缓存线。因此,可以根本上减少主存储器1300的寿命。此外,当长时间维持脏缓存线以便减少主存储器1300的写入操作的次数时,可以降低缓存重用率,并且缓存存储器1100本身可能无法工作。因此,当使用单个缓存策略时,可能不能充分展现缓存存储器1100的性能。然而,如上所述,根据本实施例的缓存存储器1100可以根据使用环境动态地改变缓存策略,从而可以提高电子系统1000的性能和主存储器1300的可靠性。
图2是根据示例性实施例的存储系统1500的框图。
参考图2,存储系统1500可以包括存储设备100和存储控制器200。存储设备100可以作为缓存存储器操作。存储设备100可以用作图1的缓存存储器1100,参考图1描述的缓存存储器1100的公开内容可以应用于存储设备100。假设存储设备100包括DRAM设备。
在一些示例性实施例中,存储设备100和/或存储控制器200可以以各种形式封装,诸如封装上封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插封装(PDIP)、窝伏尔封装模具(die in waffle pack)、晶片形式模具(die inwafer form)、板上芯片(COB)、陶瓷双列直插封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄四方扁平封装(TQFP)、小外形IC(SOIC)、收缩小外形封装(SSOP)、薄小外形封装(TSOP)、系统级封装(SIP)、多芯片封装(MCP)、晶片级制造封装(WFP)或晶片级处理的堆叠封装(WSP)。
存储控制器200可以向存储设备100发送命令信号CMD、时钟CLK和地址信号ADDR,并且可以与存储设备100交换读取/写入数据DATA。存储控制器200可以基于来自外部设备(例如,主机系统(图1的1200))的访问请求生成命令信号CMD和地址信号ADDR。
命令信号CMD可以指示控制存储设备100的正常操作的操作命令CMD_OP,例如写入或读取操作。此外,命令信号CMD可以指示控制存储设备100的缓存策略的改变的缓存策略设置命令CMD_CP。根据实施例,缓存策略设置命令CMD_CP可以由存储设备100经由输入和输出引脚接收,该输入和输出引脚不同于存储设备100的输入和输出引脚当中的经由其接收操作命令CMD_OP的输入和输出引脚。根据另一实施例,经由其接收缓存策略设置命令CMD_CP的输入和输出引脚可以与经由其接收操作命令CMD_OP的输入和输出引脚相同。
地址信号ADDR可以包括索引INDEX和标签TAG。地址信号ADDR还可以包括偏移。地址信号ADDR是用于确定对应于从外部设备请求的地址(例如,主存储器(图1的1300)的地址)的数据是否存储在存储设备100中的信号,并且可以包括所请求地址的部分或所有位。
存储设备100可以包括存储单元阵列110、缓存逻辑120和缓存策略设置电路130。
存储单元阵列110可包括多个DRAM单元。存储单元阵列110可以存储多条缓存线和对应于多条缓存线的多个标签。
缓存策略设置电路130可以设置存储设备100的缓存策略。例如,缓存策略可以包括替换策略、分配策略和写入策略中的一个。根据示例性实施例,缓存策略设置电路130可以选择多个管理策略中的至少一者,并且可以基于所选择的管理策略来设置缓存策略。根据示例性实施例,缓存策略设置电路130可以响应于接收的缓存策略设置命令CMD_CP来改变缓存策略。根据示例性实施例,缓存策略设置电路130可以监控访问命令,例如操作命令CMD_OP,并且基于监控的结果改变缓存策略。
缓存逻辑120可以确定缓存命中或缓存未命中。此外,缓存逻辑120可以基于设置的缓存策略来控制存储设备100的缓存操作。缓存逻辑120可以管理存储在存储单元阵列110中的多条缓存线或多个标签。例如,当发生缓存未命中时,缓存逻辑120可以基于缓存策略选择牺牲缓存线(victim cache line),并且替换缓存线。
图3是根据示例性实施例的存储设备100的框图。
参考图3,存储设备100可以包括存储单元阵列110、缓存逻辑120、缓存策略设置电路130、行解码器140、行缓冲器150、列解码器160、输入和输出缓冲器170、命令解码器180以及地址寄存器190。
存储单元阵列110可存储多条缓存线CL和对应于多条缓存线CL的多个标签TAG。标签可以指示对应于标签的缓存线位于主存储器的哪些位置中。
存储单元阵列110可包括以包括多个行和多个列的矩阵排列的多个存储单元。存储单元阵列110可以经由字线WL和位线BL连接到行解码器140和行缓冲器150。
存储单元阵列110中的每一行可以通过索引号INDEX1至INDEXm来区分。例如,一行可以对应于一个索引号。每行可以包括多个路(单元区域)WAY1至WAYn。多个行中的每一行可以存储对应于多个路WAY1至WAYn的多条缓存线CL1至CLn和对应于多条缓存线CL1至CLn的多个标签T1至Tn。为了便于说明,缓存线CL和对应于一行中的多个路WAY1至WAYn中的每一个的标签将由相同的数字表示。在图3中示出了单独地存储多个标签TAG和多条缓存线CL。然而,本发明构思不限于此,并且多个标签TAG和多条缓存线CL可以交替地存储在一行中。
多个行可以进一步包括关于多条缓存线CL1至CLn中的每一条的状态信息(例如,脏或干净、或有效或无效)。多条缓存线CL、多个标签TAG和存储在多个行中的每一行中的状态信息可以形成一个集合。
命令解码器180可通过接收从存储控制器(图2的200)接收的命令信号(例如,芯片选择信号/CS、行地址选通信号/RAS、列地址选通信号/CAS以及写入使能信号/WE和时钟使能CKE信号)来执行解码操作。命令解码器180可以根据通过解码操作识别的命令来生成内部控制信号CTRL。命令解码器180可以将控制信号CTRL提供给行解码器140和缓存策略设置电路130,并且还可以将控制信号CTRL提供给存储设备100的其他组件。
缓存策略设置电路130可以设置存储设备100的缓存策略。缓存策略设置电路130可以包括多个管理策略MP1、MP2和MP3,并且可以通过选择多个管理策略MP1、MP2和MP3中的至少一者来设置缓存策略。图3示出了三个管理策略。然而,本发明构思不限于此,并且可以包括各种数量和类型的管理策略。例如,多个管理策略MP1至MP3可以包括替换策略、分配策略或写入策略。多个管理策略MP1至MP3可以被实现为算法、电路或用于执行算法的电路。
缓存策略设置电路130可以基于接收的控制信号CTRL来动态地改变缓存策略。
从存储控制器200接收的地址信号ADDR可以存储在地址寄存器190中。地址寄存器190可以向行解码器140提供地址信号ADDR的索引INDEX作为行地址X-ADDR,并且可以提供标签TAG到缓存逻辑120。
行解码器140可以基于控制信号CTRL和行地址X-ADDR来选择字线WL。因此,具有对应于行地址X-ADDR的索引的行可以被激活。存储在激活的行中的数据,即多条缓存线CL和多个标签TAG可以经由位线BL被加载到行缓冲器150。行缓冲器150可以被实现为感测连接到位线BL的存储单元的数据的感测放大电路。
缓存逻辑120通过将从地址寄存器190提供的标签TAG(即,接收的标签)与加载到行缓冲器150的多个标签T1至Tn进行比较来确定是否发生缓存命中。当接收的标签TAG与多个标签T1至Tn中的一个匹配时,缓存逻辑120可以确定发生缓存命中,并且当接收的标签TAG与多个标签T1至Tn不匹配时,缓存逻辑120可以确定发生缓存未命中。
当发生缓存命中时,缓存逻辑120可以基于指示对应于匹配的标签的缓存线的信息(例如,路信息等),从加载到行缓冲器150的多条缓存线CL1至CLn当中生成列地址Y-ADDR。当发生缓存未命中时,缓存逻辑120可以基于由缓存策略设置电路130设置的缓存策略来选择替换缓存线,并且基于指示缓存线的信息生成列地址Y-ADDR。
缓存逻辑120可以将列地址Y-ADDR提供给列解码器160。列解码器160可以从加载到行缓冲器150的数据当中选择对应于列地址Y-ADDR的缓存线(或缓存线的数据的一部分)的数据。行缓冲器150可以经由输入和输出缓冲器170将选择的数据DATA和对应于所选择的数据DATA的标签TAG输出到外部。数据DATA和标签TAG可以被发送到存储控制器(图2的200)或主存储器(图1的1300)。
图4A是用于描述根据示例性实施例的缓存存储器和主存储器的数据映射的视图。图4A示出了n路集合关联映射,作为映射操作的示例。
主存储器300被划分为具有某一大小的多个块301至30k,并且标签值被分配为对应于划分的块301至30k中的每一块。例如,第一块301的标签值可以是0000,第二块的标签值可以是0001。多个块301至30k中的每一块可以被划分为多个区域,并且索引值可以被分配为对应于所述多个区域中的每一个。
缓存存储器100可以包括多个路WAY1至WAYn。路WAY1至WAYn的大小可以与主存储器300的块301至30k的大小相同。
当主存储器300的数据被复制到缓存存储器100时,指示某一大小的数据的缓存线CL和缓存线CL的标签值可以被写入缓存存储器100。此外,关于缓存线CL的状态信息V和D可以被写入缓存存储器100。在多个路WAY1至WAYn中的缓存线CL、标签TAG以及具有相同索引值的状态信息V和D可以形成一个集合SET。
此后,当读取存储在缓存存储器100中的数据时,可以根据指示集合SET的索引信息来选择多个集合SET中的任一个,并且可以基于比较标签值的操作从包括在一个集合中的多条缓存线CL当中选择一条缓存线。
图4B是用于访问图1的缓存存储器1100的地址结构的示例的视图。
参考图4B,存储器地址MEM_ADDR可以包括标签TAG字段、索引INDEX字段和偏移OFFSET字段。可以通过使用索引INDEX字段的值来选择多个集合中的任何一个集合,并且可以通过使用标签TAG字段的值来选择多条缓存线中的任何一条缓存线。此外,可能通过使用偏移OFFSET字段的值来访问字节单元中的任何一条缓存线。
图5A和图5B是根据示例性实施例的缓存策略设置电路130a和130b的框图。为了便于说明,图5A和图5B一起示出了存储控制器200和缓存逻辑120。
参考图5A,当存在来自外部设备(例如,主机系统)的缓存策略改变请求REQ_PC时,存储控制器200可以生成对应于该请求的缓存策略设置命令CMD_CP,并将所生成的缓存策略设置命令CMD_CP提供给存储设备100a。根据实施例,缓存策略改变请求REQ_PC可以包括请求从存储设备100a的先前设置的缓存策略改变到另一缓存策略的信号。根据实施例,缓存策略改变请求REQ_PC可以包括指示来自主机系统的访问请求的特性的信号(例如,访问请求是以写入为中心的请求还是以读取为中心的请求等)。根据另一实施例,存储控制器200可以分析来自主机系统的访问请求(写入或读取请求),并且基于访问请求的特性生成缓存策略设置命令CMD_CP。
缓存策略设置电路130a可以包括多个管理策略131、策略寄存器133和缓存策略选择器132。
多个管理策略131可以被实现为算法、电路或用于执行算法的电路。多个管理策略131可以包括与缓存操作相关的替换策略、分配策略、写入策略等。
缓存策略选择器132可以选择多个管理策略131中的至少一者。当从存储控制器200接收到缓存策略设置命令CMD_CP时,缓存策略选择器132可以响应于缓存策略设置命令CMD_CP来选择管理策略。缓存策略选择器132可以向策略寄存器133提供指示所选择的管理策略的值。
策略寄存器133可以存储关于所选择的管理策略的信息。通过这样做,缓存策略设置电路130a可以基于策略寄存器133中存储的值,基于多个管理策略131中的至少一者来设置缓存策略。
缓存逻辑120可以基于缓存策略CP来控制存储设备100a的缓存操作。
参考图5B,缓存策略设置电路130b可以包括多个管理策略131、策略寄存器133、缓存策略选择器132和监控电路134。与图5A的缓存策略设置电路130a相比,图5B的缓存策略设置电路130b还可以包括监控电路134。图5B的缓存策略设置电路130b可以执行图5A的缓存策略设置电路130a的操作,并且可以进一步基于监控电路134的监控执行操作。
当存储控制器200从外部设备(例如,主机系统)接收访问请求REQ_ACC时,存储控制器200可以生成包括写入或读取命令的操作命令CMD_OP,并将操作命令CMD_OP提供给存储设备100b。操作命令CMD_OP可以包括例如写入命令CMD_WR或读取命令CMD_RD。
监控电路134可以分析针对存储设备100b请求的操作模式。监控电路134可以监控接收的操作命令CMD_OP或数据输入和输出。监控电路134可以基于监控的结果来分析针对存储设备100b请求的操作模式或工作负荷。监控电路134可以向缓存策略选择器132提供分析的结果。
缓存策略选择器132可以基于分析的结果确定是否改变先前设置的缓存策略。当缓存策略选择器132确定需要改变缓存策略时,缓存策略选择器132可以基于分析的结果选择多个管理策略131中的至少一者。
图6是图5B的监控电路134的示例性实施例的框图。
参考图6,监控电路134a可以包括计数器10和模式分析器20。计数器10可以对接收的操作命令CMD_OP计数。具体地,操作命令CMD_OP可以包括写入命令CMD_WR和读取命令CMD_RD,并且计数器10可以对每个写入命令CMD_WR和读取命令CMD_RD计数。
根据实施例,计数器10可以对在预设周期内接收的写入命令CMD_WR和读取命令CMD_RD中的每一个计数。根据另一实施例,计数器10可以仅顺序地计数预定数量的接收的访问请求,即,写入命令CMD_WR和读取命令CMD_RD,并且可以分离写入命令CMD_WR的数量和读取命令CMD_RD的数量。
模式分析器20可以基于对写入命令CMD_WR和读取命令CMD_RD进行计数的结果来分析操作模式。当所计数的写入命令CMD_WR的数量等于或高于预设阈值时,或者写入请求与总访问请求的比率,即,所计数的写入命令CMD_WR与所计数的写入命令CMD_WR和读取命令CMD_RD的比率等于或大于阈值时,模式分析器20可以分析写入请求是频繁的。
当基于分析的结果发生缓存未命中时,缓存策略设置电路130b可以选择用于从多条缓存线当中优先选择干净缓存线作为牺牲缓存线的管理策略,并且可以基于所选择的管理策略改变缓存策略。
如上所示,已经参考图6描述了图5B的监控电路134的实施例。然而,这仅仅是实施例,并且监控电路134的结构和操作可以在本发明构思的技术范围内以各种方式改变。
图7A和图7B是用于描述根据示例性实施例的存储设备100的操作的视图。图7A是用于描述经由存储设备100确定缓存命中的操作的视图,而图7B是用于描述当发生缓存未命中时替换缓存线的操作的视图。
参考图7A,存储设备100可以基于接收的活动命令和索引INDEX激活对应于索引INDEX的行,并将存储在对应于索引INDEX的行中的多个数据加载到行缓冲器150。多个所加载的数据可以包括所选择的行的缓存线152和对应于缓存线152的元数据151。元数据151可以包括对应于加载的缓存线152的标签TAG以及多条状态信息VB和DB。
缓存逻辑120可以通过将标签T1至Tn和元数据151的有效信息V1至Vn与接收的标签TAG进行比较来确定缓存命中。缓存逻辑120可以选择对应于标签TAG_S的缓存线,所述标签TAG_S与接收的标签TAG匹配。所选择的缓存线的数据DATA的至少一部分和匹配的标签TAG_S可以被输出到存储设备100的外部。
参考图7B,当发生缓存未命中时,缓存逻辑120可以基于由缓存策略设置电路130设置的缓存策略CP来替换缓存线。缓存逻辑120可以基于来自缓存策略CP当中的替换策略来选择牺牲缓存线。行缓冲器150可以替换缓存线。行缓冲器150可以将所选择的牺牲缓存线的数据DATA和对应于牺牲缓存线的标签TAG_S输出到存储设备100的外部,并且接收新的缓存线的数据DATA和标签TAG_S。此后,存储单元阵列110可以被预充电。由于缓存线和加载到行缓冲器150的元数据被存储在对应于索引INDEX的行中,因此可以更新存储在索引INDEX中的数据。
图8至图11是根据示例性实施例的存储设备100的操作的流程图。
具体地,图8和图9是根据实施例的经由存储设备100改变缓存策略的操作的流程图。
参考图8,在操作S110中,存储设备(图2的100)可以基于预设的缓存策略来管理多条缓存线。例如,可以在策略寄存器(图5A的133)中设置默认值,基于默认值,可以从多个管理策略当中选择管理策略,并且可以基于选择的管理策略设置缓存策略。
在操作S120中,可从存储控制器(图2的200)接收缓存策略设置命令。在操作S130中,当基于缓存策略设置命令的缓存策略不同于预设的缓存策略时,存储设备100可以改变缓存策略。例如,缓存策略选择器(图5A的132)可以选择对应于缓存策略设置命令的多个管理策略中的至少一者,并且将指示关于所选择的管理策略的信息的值提供给策略寄存器133。
在操作S140中,存储设备100可以基于改变的缓存策略来管理多条缓存线。
参考图9,在操作S210中,存储设备100可以基于预设的缓存策略来管理多条缓存线。在操作S220中,存储设备100可以监控接收的写入和读取命令并且分析操作模式。根据实施例,存储设备100可以周期性地分析操作模式。根据实施例,存储设备100可以在从存储控制器200接收到操作命令之后的某个时间段(例如,预设的时间段)期间分析操作模式。
在操作S230中,存储设备100可基于操作模式确定是否需要改变缓存策略。存储设备100可以基于操作模式来确定用于提高缓存性能的缓存策略,并且可以确定预设的缓存策略是否对应于基于操作模式确定的缓存策略。
当预设的缓存策略不对应于基于操作模式确定的缓存策略时,在操作S240中,存储设备100可以确定缓存策略需要改变,并改变缓存策略。然后,在操作S250中,存储设备100可以基于改变的缓存策略来管理多条缓存线。
图10是根据示例性实施例的存储设备100的操作的流程图。具体地,图10示出了当存储设备100接收读取命令时,经由存储设备100确定缓存命中和替换缓存线的操作。
参考图10,在操作S310中,存储设备100可以从存储控制器(图2的200)接收活动命令和索引。
在操作S320中,存储设备100可读取对应于从存储单元阵列110接收的索引的缓存线、标签和状态信息。例如,读取的数据可以被加载到行缓冲器150。
当在操作S330中从存储控制器(图2的200)接收到读取命令和标签时,在操作S340中,存储设备100可以确定缓存命中。存储设备100可以通过将加载到行缓冲器150的标签与接收的标签进行比较来搜索匹配的标签,并且当对应于匹配的标签的缓存线有效时,可以确定缓存命中。当没有匹配的标签或者对应于匹配的标签的缓存线无效时,存储设备100可以确定缓存未命中。
当发生缓存命中时,在操作S350中,存储设备100可选择对应于标签的缓存线并且输出所选择的缓存线的数据。此外,存储设备100可以输出匹配的标签。
当发生缓存未命中时,在操作S370中,存储设备100可替换缓存线。在操作S360中,存储设备100可以基于设置的缓存替换策略选择牺牲缓存线。当牺牲缓存线处于脏状态时,牺牲缓存线的数据可以存储在主存储器中。然后,存储设备100可以从主存储器读取包括请求访问的数据和对应于缓存线的标签的缓存线,并且以存储牺牲缓存线的方式存储读取的缓存线和标签。
图11是根据示例性实施例的操作方法的流程图。具体地,图11更详细地示出了选择图10的牺牲缓存线的操作的实施例。
参考图11,当发生缓存未命中时,在操作S361中,存储设备100可以基于缓存替换策略搜索牺牲缓存线。存储设备100可以从加载到行缓冲器150的缓存线当中搜索要被选择为牺牲缓存线的缓存线。例如,当基于用于优先选择干净缓存线作为替换缓存线的管理策略设置缓存替换策略时,可以从加载到行缓冲器150的缓存线当中搜索干净缓存线。
在操作S362中,存储设备100可确定是否存在对应于缓存替换策略的缓存线。当存在对应于缓存替换策略的缓存线时,在操作S363中,存储设备100可以选择缓存线作为牺牲缓存线,并且在操作S370中替换缓存线。
当不存在对应于缓存替换策略的缓存线时,在操作S364中,存储设备100可将指示未发现牺牲缓存线的失败信号发送到存储控制器200,并且在操作S365中,可改变缓存替换策略。根据实施例,存储设备100可以从存储控制器200重新接收缓存策略设置命令,并且基于接收的缓存策略设置命令来改变缓存替换策略。根据实施例,存储设备100可以基于被设置为默认的管理策略来改变缓存替换策略。此后,在操作S366中,存储设备100可以基于改变的缓存替换策略重新搜索牺牲缓存线,并且选择对应于缓存替换策略的缓存线作为牺牲缓存线。
图12是根据示例性实施例的存储系统的操作的流程图。
参考图12,在操作S410中,存储设备100可以设置默认缓存策略。例如,可以基于对应于存储在策略寄存器(图5A的133)中的默认值的管理策略来设置默认缓存策略。
在操作S420中,存储控制器200可以从存储设备100请求设置的缓存策略或关于缓存策略的信息。在操作S430中,存储设备100可以响应于存储控制器200的请求,将设置的缓存策略或关于缓存策略的信息发送到存储控制器200。当请求改变缓存策略时,在操作S440中,存储控制器200可将缓存策略设置命令发送到存储设备100。例如,当适合于从主机系统请求的操作的缓存策略不同于在存储设备100中预设的缓存策略时,存储控制器200可以发送主机系统所请求的用于设置缓存策略的缓存策略设置命令。
在操作S450中,存储设备100可以基于接收的缓存策略设置命令改变缓存策略。根据实施例,当从主机系统请求的操作是临时的时,存储控制器200可以暂时改变缓存策略,并且当完成从主机系统请求的操作时,存储控制器200可以再次将缓存策略改变为默认缓存策略。
图13是根据示例性实施例的存储设备100c的框图。
图13示出了图3的存储设备100的另一实施例。在图3的存储设备100和图13的存储设备100c中具有相同附图标记的组件具有相同的操作,因此,将省略它们的描述。
参考图13,存储设备100c可以包括第一存储单元阵列111和第二存储单元阵列112。此外,存储设备100c可以包括连接到第一存储单元阵列111的第一行解码器141、第一行缓冲器150_1和第一列解码器161,以及连接到第二存储单元阵列112的第二行解码器142、第二行缓冲器150_2和第二列解码器162。
第二存储单元阵列112可以存储多条缓存线,并且第一存储单元阵列111可以分别存储对应于多条缓存线的多个标签TAG。具有相同索引的多条缓存线CL1至CLn和多个标签T1至Tn可以包括在一个集合中。第一行解码器141和第二行解码器142可以接收相同的行地址X-ADDR,并且可以响应于接收的行地址X-ADDR而操作。
可以将具有相同索引的多条缓存线CL1至CLn和多个标签T1至Tn中的每一个加载到第一行缓冲器150_1和第二行缓冲器150_2。缓存逻辑120可以将加载到第一行缓冲器150_1的多个标签T1至Tn与接收的标签TAG进行比较,并且将指示对应于匹配的标签的缓存线的位置的第二列地址Y-ADDR2经由第二列解码器162提供给第二行缓冲器150_2。此外,缓存逻辑120可经由第一列解码器161向第一行缓冲器150_1提供指示匹配的标签的位置的第一列地址Y-ADDR1。第一行缓冲器150_1和第二行缓冲器150_2中的每一个可以输出标签TAG和数据DATA。此外,第一行缓冲器150_1和第二行缓冲器150_2可以将接收的标签TAG和数据DATA分别加载到第一行缓冲器150_1和第二行缓冲器150_2中的、由第一列地址Y-ADDR1和第二列地址Y-ADDR2分别指示的位置。
图14是根据示例性实施例的存储设备100d的框图。图14示出了图3的存储设备100的另一实施例。在图3的存储设备100和图14的存储设备100d中具有相同附图标记的组件具有相同的操作,因此将不重复它们的描述。
参考图14,存储设备100d可以包括多个存储体(bank)BANK0至BANK3。多个存储体BANK0至BANK3中的每一个可以包括存储单元阵列110、行解码器140、行缓冲器150、缓存逻辑120、缓存策略设置电路130和列解码器160。因此,多个存储体BANK0至BANK3中的每一个可以基于不同的缓存策略来执行缓存操作。同时,为了选择多个存储体BANK0至BANK3中的一个,存储设备100d可以包括存储体控制逻辑195。由存储设备100d接收的索引INDEX的某些位可以作为存储体地址B-ADDR提供给存储体控制逻辑195。存储体控制逻辑195可以基于存储体地址B-ADDR来选择多个存储体BANK0至BANK3中的至少一者。在本示例性实施例中,虽然仅示出了四个存储体BANK0至BANK3,但是本公开不限于此。
图15是根据示例性实施例的存储模块3000的视图。
参考图15,存储模块3000可以包括多个第一存储器3100、至少一个第二存储器3200、寄存器(RCD)3300和抽头(tap)3400。存储模块3000可以是注册的双列直插模块(RDIM)。图15示出九个存储器3100和3200。然而,本发明构思不限于此。存储器3100和3200的数量可以基于存储模块3000的结构和I/O配置来确定。
多个第一存储器3100可以存储多条缓存线CL。多条缓存线CL中的每一条可以以分布式方式存储在多个第一存储器3100中。换言之,一条缓存线的位可以分布并存储在多个第一存储器3100中,并且一个第一存储器3100可以存储多条缓存线的一些位。
第二存储器3200可以存储对应于多条缓存线CL的多个标签TAG。第二存储器3200可以包括缓存逻辑CLGC和缓存策略设置电路CPSC。如根据实施例所描述的,缓存策略设置电路CPSC可以设置缓存策略并改变缓存策略。缓存逻辑CLGC可以基于包括在地址ADDR中的标签来确定缓存命中,并且当发生缓存命中时,向寄存器3300提供其中存储了对应于匹配的标签的缓存线的路信息WIFO。当发生缓存未命中时,缓存逻辑CLGC可以基于缓存策略选择牺牲缓存线,并且将其中存储牺牲缓存线的路信息WIFO提供给寄存器3300。
寄存器3300可以控制存储模块3000的一般操作。寄存器3300可以接收时钟CLK、命令CMD和地址ADDR。寄存器3300可以向多个第一存储器3100和第二存储器3200提供时钟CLK、行地址X-ADDR和控制信号CTRL。此外,寄存器3300可以基于从第二存储器3200接收的路信息WIFO生成列地址Y-ADDR,并将所生成的列地址Y-ADDR提供给多个第一存储器3100和第二存储器3200。
多个第一存储器3100可以将对应于从寄存器3300提供的行地址X-ADDR的行中存储的缓存线CL加载到内部行缓冲器,并且将来自加载的缓存线CL当中的对应于列地址Y-ADDR的缓存线的数据DATA输出到行缓冲器。
第二存储器3200可以将存储在对应于行地址X-ADDR的行中的标签TAG加载到内部行缓冲器,并且将加载的标签TAG当中的对应于列地址Y-ADDR的标签TAG输出到行缓冲器。
抽头3400可以形成在存储模块3000的基板的边缘部分中。抽头3400可以包括多个也被称为抽头引脚(tap pin)的连接端子。可以将命令/地址信号输入引脚、时钟输入引脚和数据输入/输出信号引脚分配给抽头3400。
在下文中,图15的存储模块3000的操作将参考图16和图17更详细地描述。
图16和17是图15的存储模块3000的操作的流程图。
参考图16,在操作S510中,寄存器3300可以接收活动命令和索引。在操作S520中,寄存器3300可以基于索引将行地址X-ADDR发送到多个第一存储器3100和至少一个第二存储器3200。在操作S530中,多个第一存储器3100和至少一个第二存储器3200中的每一个可以将由行地址X-ADDR指示的行的数据加载到内部行缓冲器。多个第一存储器3100可以将多条缓存线加载到行缓冲器,并且第二存储器3200可以将对应于多条缓存线的标签加载到行缓冲器。
此后,在操作S540中,第二存储器3200可以接收读取命令和标签。根据实施例,第二存储器3200可以从命令/地址信号输入引脚直接接收读取命令和标签。根据另一实施例,寄存器3300可以接收读取命令和标签,并将接收的读取命令和标签提供给第二存储器3200。
在操作S550中,第二存储器3200可以通过比较加载到行缓冲器的标签和接收的标签来确定缓存命中。当发生缓存命中时,在操作S560中,第二存储器3200可以向寄存器3300提供匹配标签的路信息WIFO(或者对应于匹配标签的缓存线的路信息WIFO)。
在操作S570中,寄存器3300可以向多个第一存储器3100和第二存储器3200中的每一个提供对应于路信息WIFO的列地址Y-ADDR。
在操作S580中,多个第一存储器3100和第二存储器3200可以从加载到行缓冲器的数据当中输出对应于列地址Y-ADDR的数据。多个第一存储器3100可以输出所选择的缓存线的数据DATA,并且第二存储器3200可以输出对应于所选择的缓存线的标签TAG。
参考图17,当发生缓存未命中时,在操作S610中,第二存储器3200可以基于设置的缓存替换策略选择牺牲缓存线,并且,在操作S620中,将牺牲缓存线的路信息WIFO提供给寄存器3300。
在操作S630中,寄存器3300可以向多个第一存储器3100和第二存储器3200中的每一个提供对应于路信息WIFO的列地址Y-ADDR。当牺牲缓存线处于脏状态时,缓存线必须存储在主存储器中,从而多个第一存储器3100和第二存储器3200中的每一个可以从加载到每个行缓冲器的数据当中输出对应于列地址Y-ADDR的数据。也就是说,在操作S640中,多个第一存储器3100和第二存储器3200中的每一个可以输出牺牲缓存线的数据和标签。牺牲缓存线的输出数据或标签可以提供给存储控制器或主存储器。
此后,在操作S650中,多个第一存储器3100和第二存储器3200中的每一个可以将接收的数据或标签加载到每个行缓冲器的对应于列地址Y-ADDR的区域,并且可以存储在对应于索引的行中的每个行缓冲器的数据,以便在操作S660中替换缓存线。
图18是根据示例性实施例的存储模块3000a的视图。图18示出了图15的存储模块3000的另一实施例。
存储模块3000a的多个第一存储器3100的操作可以与图15的存储模块3000的多个第一存储器3100的操作相同,因此将不再重复它们的描述。
存储模块3000a可以包括至少一个第二存储器3200a,第二存储器3200a可以存储多个标签TAG,并且可以包括缓存逻辑CLGC、缓存策略设置电路CPSC和地址转换电路ACC。地址转换电路ACC可以执行图15的寄存器3300的一些功能。地址转换电路ACC可以接收地址信号ADDR,并且基于包括在地址信号ADDR中的索引生成行地址X-ADDR。此外,地址转换电路ACC可以基于所选择的缓存线的路信息来生成列地址Y-ADDR。第二存储器3200a可以向多个第一存储器3100提供行地址X-ADDR、列地址Y-ADDR、时钟CLK和控制信号CTRL。
图19是根据示例性实施例的存储模块4000的视图。
参考图19,存储模块4000可以包括多个存储器4100。存储模块4000可以是负载减小的双列直插模块(LRDIM)。图15示出了存储模块4000包括九个存储器4100。然而,本发明构思不限于此。存储器4100的数量可以基于存储模块4000的结构和I/O配置来确定。
存储器4100中的每一个可以存储多条缓存线CL和对应于多条缓存线CL的多个标签TAG。存储器4100中的每一个可以包括缓存逻辑CLGC和缓存策略设置电路CPSC。
根据示例性实施例,多条缓存线CL和多个标签TAG中的每一个可以以分布式方式存储在多个存储器4100中。例如,一个缓存和一个标签的位可以分布并存储在多个存储器4100中,并且一个存储器4100可以存储多条缓存线和多个标签中的一些位。多个存储器4100可以接收相同的索引和标签并且以相同的方式操作。
根据另一示例性实施例,不同的缓存线和标签TAG可以存储在多个存储器4100中。换句话说,图2的存储设备100可以应用于多个存储器4100,并且多个存储器4100中的每一个可以单独操作。
如上所示,已经参照图15至图19对根据实施例的存储模块3000、3000a和4000进行了描述。然而,存储模块3000、3000a和4000是示例性的,并且存储模块的结构和操作可以在本发明构思的技术范围内以各种方式改变。
图20至图22是根据示例性实施例的计算系统的框图。
参考图20,计算系统5100可以包括CPU 5010、第一存储系统5020、第二存储系统5030、用户接口5040、调制解调器5050和总线5060。此外,计算系统5100还可以包括各种其他组件。第一存储系统5020、第二存储系统5030、用户接口5040和调制解调器5050可以电连接到总线5060,并且可以经由总线5060彼此交换数据和信号。
CPU 5010可以执行计算系统5100的计算和数据处理以及控制。
第一存储系统5020可以包括第一存储控制器5021和缓存存储器5022。图2的存储系统1500可以应用为第一存储系统5020。第一存储控制器5021可以提供缓存存储器5022与计算系统5100的其他组件(例如,CPU 5010、用户接口5040或调制解调器5050)之间的接口。
参考图2至图19描述的存储设备或存储模块可以应用为缓存存储器5022。缓存存储器5022可以包括缓存逻辑CLGC和缓存策略设置电路CPSC。根据实施例,缓存存储器5022可以基于页读取和写入数据。根据实施例,缓存存储器5022可以包括DRAM单元。
第二存储系统5030可以包括第二存储控制器5031和主存储器5032。第二存储控制器5031可以提供主存储器5032与计算系统5100的其他组件之间的接口。主存储器5032可以包括与缓存存储器5022同构或异构的存储单元阵列。主存储器5032的操作速度可以等于或小于缓存存储器5022的操作速度。根据实施例,主存储器5032可以包括非易失性存储单元。
用户接口5040可以与计算系统5100的外部交换信号。例如,用户接口5040可以包括用户输入接口,诸如键盘、小键盘、按钮、触摸面板、触摸屏、麦克风、振动传感器等。用户接口5040可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)、有源矩阵OLED(AMOLED)、发光二极管(LED)、扬声器、电动机等。
调制解调器5050可以根据CPU 5010的控制来执行与外部设备的无线或有线通信。调制解调器5050可以基于各种通信标准,诸如Wifi、码分多址(CDMA)、全球移动通信系统(GSM)、长期演进(LTE)、蓝牙、近场通信(NFC)等中的至少一者执行通信。
参考图21,计算系统5200可以包括CPU 5010、存储系统5070、用户接口5040、调制解调器5050和总线5060。
存储系统5070可以包括存储控制器5071、缓存存储器5072和主存储器507。缓存存储器5072可以包括参考图2至图19描述的存储设备或存储模块。如图21所示,存储控制器5071可以提供关于缓存存储器5072和主存储器5073的接口,并且控制缓存存储器5072和主存储器5073。如上所示,缓存存储器5072和主存储器5073可以由相同的存储控制器控制。
参考图22,计算系统5300可以包括CPU 5010、存储系统5080、用户接口5040、调制解调器5050和总线5060。存储系统5080可以包括存储控制器5081、缓存存储器5082和主存储器5083。缓存存储器5082可以包括参考图2至图19描述的存储设备或存储模块。缓存存储器5082和主存储器5083可以由存储控制器5081控制。缓存存储器5082和主存储器5083可以连接到相同的信道,即,如图22所示的相同的数据传输线。因此,当在缓存存储器5082和主存储器5083之间交换数据时,诸如当更换缓存线时,可以在缓存存储器5082和主存储器5083之间直接发送和接收数据,而不经过存储控制器5081。
图23是根据示例性实施例的移动系统6000的框图。
参考图23,移动系统6000可以包括应用处理器6100、缓存存储器6200、主存储器6300、显示器6400和调制解调器6500。
应用处理器6100可以控制在移动系统6000中需要执行的操作。应用处理器6100可以包括CPU 6111、数字信号处理器(DSP)6112、系统存储器6113、存储控制器6114、显示控制器6115、通信接口6116和电连接CPU 6111、DSP 6112、系统存储器6113、存储控制器6114、显示控制器6115和通信接口6116的总线。根据实施例,应用处理器6100可以被实现为片上系统(SoC)。
CPU 6111可以执行应用处理器6100的计算和数据处理以及控制。DSP6112可以以高速执行数字信号处理,并且部分地执行应用处理器6100的计算和数据处理以及控制。
系统存储器6113可以加载CPU 6111的操作所需的数据。系统存储器6113可以实现为SRAM、DRAM、MRAM、FRAM、RRAM等。
存储控制器6114可以提供应用处理器6100与缓存存储器6200和主存储器630之间的接口。主存储器6300可以用作应用处理器6100的操作存储器。例如,根据应用处理器6100中的应用执行的数据可以被加载到主存储器6300。根据实施例,主存储器6300可以是非易失性存储器。
缓存存储器6200可以包括参考图2至图19描述的存储设备或存储模块。缓存存储器6200可以根据使用环境动态地改变缓存策略,并且因此可以提高移动系统6000的性能和主存储器6300的可靠性。
图23示出存储控制器6114连接到主存储器6300和缓存存储器6200。然而,本发明构思不限于此。应用处理器6100还可以包括控制缓存存储器6200的附加存储控制器。
显示控制器6115可以提供应用处理器6100和显示器6400之间的接口。显示器6400可以包括平面显示器或柔性显示器,诸如触摸屏、LCD、OLED、AMOLED、LED等。
通信接口6116可以提供应用处理器6100和调制解调器6500之间的接口。调制解调器6500可以支持使用各种通信协议诸如Wifi、LTE、蓝牙、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、Zigbee、Wi-Fi直连(WFD)、NFC等中的至少一种的通信。应用处理器6100可以经由通信接口6116和调制解调器6500与其他电子设备或其他系统通信。
虽然已经参照其实施例具体示出和描述了本发明的构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,在本文中可以在形式和细节上进行各种改变。

Claims (25)

1.一种存储设备,包括:
单元阵列,存储多条缓存线和对应于所述多条缓存线的多个标签;
缓存策略设置电路,从多个管理策略中选择至少一个管理策略,并且基于至少一个所选择的管理策略设置缓存策略;以及
缓存逻辑,基于所述缓存策略来管理所述多条缓存线。
2.根据权利要求1所述的存储设备,其中,所述缓存策略设置电路通过基于从外部设备接收的命令从所述多个管理策略中选择所述多个管理策略中的至少另一个来改变所述缓存策略。
3.根据权利要求1所述的存储设备,其中,所述缓存策略设置电路响应于从外部存储控制器接收的缓存策略设置命令来改变所述缓存策略。
4.根据权利要求3所述的存储设备,其中,经由输入输出引脚接收所述缓存策略设置命令,所述输入输出引脚与经由其接收读取命令和写入命令的输入和输出引脚不同。
5.根据权利要求1所述的存储设备,其中,所述缓存策略设置电路被配置为:
监控从外部存储控制器接收的访问命令;
基于所述访问命令的监控的结果来分析针对所述存储设备请求的操作模式或工作负荷;以及
基于对针对所述存储设备请求的操作模式或工作负载的分析结果来改变所述缓存策略。
6.根据权利要求1所述的存储设备,其中所述缓存策略设置电路包括:
策略选择器,选择所述多个管理策略中的至少一者;以及
策略寄存器,存储关于至少一个所选择的管理策略的信息。
7.根据权利要求6所述的存储设备,其中所述缓存策略设置电路还包括监控电路,所述监控电路监控由所述存储设备接收的访问命令或数据输入和输出,并分析针对所述存储设备请求的操作模式。
8.根据权利要求1所述的存储设备,其中,当在预定时间段期间相对于所述存储设备的写入请求被确定为等于或高于阈值时,所述缓存策略设置电路选择管理策略,所述管理策略用于从所述多条缓存线当中选择干净缓存线作为替换缓存线。
9.根据权利要求1所述的存储设备,其中所述多个管理策略包括多个替换策略、多个分配策略和多个写入策略中的至少一者。
10.根据权利要求1所述的存储设备,其中所述单元阵列包括多个行,且所述多个行中的每一行存储所述多条缓存线和对应于所述多条缓存线的多个标签。
11.根据权利要求10所述的存储设备,进一步包括行缓冲器,所述行缓冲器基于接收的索引来加载存储在从所述多个行当中选择的行中的多条缓存线和多个标签,
其中所述缓存逻辑基于所加载的所述多个标签和接收的标签来确定是否发生缓存命中。
12.根据权利要求11所述的存储设备,其中,当发生所述缓存命中时,所述缓存逻辑基于来自所述多个标签当中的与所接收的标签匹配的标签的方式来选择所述多条缓存线中的一条,以及
当发生缓存未命中时,所述缓存逻辑基于所述缓存策略从所述多条缓存线当中选择要替换的牺牲缓存线。
13.根据权利要求1所述的存储设备,其中,所述单元阵列包括动态随机存取存储单元。
14.一种存储模块,包括:
多个第一存储设备,存储多条缓存线;和
第二存储设备,存储对应于所述多条缓存线的多个缓存标签,从多个管理策略中选择至少一个管理策略作为缓存策略,以及基于所述缓存策略和所述多个缓存标签来管理所述多条缓存线。
15.根据权利要求14所述的存储模块,其中所述第二存储设备通过基于接收的缓存设置命令或操作命令从所述多个管理策略中选择所述多个管理策略中的另一个来改变所述缓存策略。
16.根据权利要求14所述的存储模块,其中所述多个第一存储设备和所述第二存储设备接收相同的索引并将对应于所述索引的行的多条缓存线和多个缓存标签分别加载到提供在所述多个第一存储设备和第二存储设备中的行缓冲器。
17.根据权利要求14所述的存储模块,其中所述第二存储设备包括:
存储所述多个缓存标签的单元阵列;
缓存策略设置电路,基于所述多个管理策略设置所述缓存策略;以及
缓存逻辑,确定是否发生缓存命中,并基于所述缓存策略选择所述多条缓存线中的一条。
18.根据权利要求17所述的存储模块,进一步包括寄存器,所述寄存器从所述第二存储设备接收所选择的缓存线的路信息,并且向所述多个第一存储设备提供关于所述路信息的行地址。
19.根据权利要求17所述的存储模块,其中所述第二存储设备进一步包括地址转换电路,所述地址转换电路基于从所述缓存逻辑接收的所选择的缓存线的路信息生成行地址,且将所述行地址提供到所述多个第一存储设备。
20.根据权利要求14所述的存储模块,其中所述多个第一存储设备和所述第二存储设备中的至少一个包括存储单元阵列,所述存储单元阵列包括以列和行布置的存储单元。
21.一种存储设备的操作方法,所述操作方法包括:
基于预设缓存策略管理多条缓存线;
从所述存储设备外部的存储控制器接收缓存策略设置命令;
当基于所接收的缓存策略设置命令的缓存策略与所述预设缓存策略不同时,通过从多个管理策略中选择管理策略作为用于操作所述存储设备的新缓存策略来改变所述预设缓存策略;以及
基于所述新缓存策略来管理所述多条缓存线。
22.根据权利要求21所述的操作方法,其中,所述改变所述预设缓存策略包括:
监控从所述存储控制器接收的访问命令;
基于所述访问命令的监控结果来分析针对所述存储设备请求的操作模式或工作负荷;以及
基于对针对所述存储设备请求的操作模式或工作负载的分析结果,将所述预设缓存策略改变为所述新缓存策略。
23.根据权利要求21所述的操作方法,其中,当在预定时间段期间相对于所述存储设备的写入请求被确定为等于或高于阈值时,选择管理策略,所述管理策略用于从所述多条缓存线当中选择干净缓存线作为替换缓存线。
24.根据权利要求21所述的操作方法,其中所述多个管理策略包括多个替换策略、多个分配策略和多个写入策略中的至少一者。
25.根据权利要求21所述的操作方法,其中所述存储设备是布置在所述存储控制器和主存储器之间的缓存存储器,其中存储在所述主存储器中的数据的一部分被复制到所述缓存存储器。
CN201710328968.0A 2016-06-08 2017-05-11 存储设备、存储模块和存储设备的操作方法 Withdrawn CN107491397A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160070997A KR20170138765A (ko) 2016-06-08 2016-06-08 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법
KR10-2016-0070997 2016-06-08

Publications (1)

Publication Number Publication Date
CN107491397A true CN107491397A (zh) 2017-12-19

Family

ID=60573969

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710328968.0A Withdrawn CN107491397A (zh) 2016-06-08 2017-05-11 存储设备、存储模块和存储设备的操作方法

Country Status (5)

Country Link
US (1) US20170357600A1 (zh)
JP (1) JP2017220242A (zh)
KR (1) KR20170138765A (zh)
CN (1) CN107491397A (zh)
TW (1) TW201801088A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362507A (zh) * 2018-04-11 2019-10-22 忆锐公司 存储器控制设备和包括该设备的存储器系统
CN110941569A (zh) * 2019-11-18 2020-03-31 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片
CN113641626A (zh) * 2021-10-18 2021-11-12 睿思芯科(深圳)技术有限公司 一种sram读写控制方法及行缓冲控制器
CN113994320A (zh) * 2019-07-31 2022-01-28 美光科技公司 用于推测性和普通执行的扩展标签
CN114385522A (zh) * 2020-10-19 2022-04-22 美光科技公司 具有裸片上高速缓冲存储器的存储器装置
TWI804582B (zh) * 2018-03-20 2023-06-11 英商Arm股份有限公司 用於隨機標籤設定指令的設備及方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983922B2 (en) * 2018-05-18 2021-04-20 International Business Machines Corporation Selecting one of multiple cache eviction algorithms to use to evict a track from the cache using a machine learning module
KR102532084B1 (ko) * 2018-07-17 2023-05-15 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
US10908821B2 (en) 2019-02-28 2021-02-02 Micron Technology, Inc. Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system
US10970222B2 (en) 2019-02-28 2021-04-06 Micron Technology, Inc. Eviction of a cache line based on a modification of a sector of the cache line
US11288199B2 (en) 2019-02-28 2022-03-29 Micron Technology, Inc. Separate read-only cache and write-read cache in a memory sub-system
US11106609B2 (en) 2019-02-28 2021-08-31 Micron Technology, Inc. Priority scheduling in queues to access cache data in a memory sub-system
US11599384B2 (en) 2019-10-03 2023-03-07 Micron Technology, Inc. Customized root processes for individual applications
US11436041B2 (en) 2019-10-03 2022-09-06 Micron Technology, Inc. Customized root processes for groups of applications
TWI760702B (zh) 2020-03-03 2022-04-11 瑞昱半導體股份有限公司 資料寫入系統與方法
CN113377684B (zh) * 2020-03-09 2024-03-08 瑞昱半导体股份有限公司 数据写入系统与方法
CN113392042B (zh) * 2020-03-12 2024-04-09 伊姆西Ip控股有限责任公司 用于管理缓存的方法、电子设备和计算机程序产品
US11366752B2 (en) 2020-03-19 2022-06-21 Micron Technology, Inc. Address mapping between shared memory modules and cache sets
JP2022049406A (ja) 2020-09-16 2022-03-29 キオクシア株式会社 磁気記憶装置
US11836087B2 (en) * 2020-12-23 2023-12-05 Micron Technology, Inc. Per-process re-configurable caches
KR20220135560A (ko) * 2021-03-30 2022-10-07 삼성전자주식회사 메모리를 관리하기 위한 전자 장치 및 그의 동작 방법
US11782851B2 (en) * 2021-09-01 2023-10-10 Micron Technology, Inc. Dynamic queue depth adjustment
US20230214323A1 (en) * 2021-12-30 2023-07-06 Micron Technology, Inc. Selectable cache writing policies for cache management

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI804582B (zh) * 2018-03-20 2023-06-11 英商Arm股份有限公司 用於隨機標籤設定指令的設備及方法
US11681636B2 (en) 2018-03-20 2023-06-20 Arm Limited Random tag setting instruction for a tag-guarded memory system
CN110362507A (zh) * 2018-04-11 2019-10-22 忆锐公司 存储器控制设备和包括该设备的存储器系统
CN113994320A (zh) * 2019-07-31 2022-01-28 美光科技公司 用于推测性和普通执行的扩展标签
CN110941569A (zh) * 2019-11-18 2020-03-31 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片
CN110941569B (zh) * 2019-11-18 2021-01-26 新华三半导体技术有限公司 数据处理方法、装置及处理器芯片
CN114385522A (zh) * 2020-10-19 2022-04-22 美光科技公司 具有裸片上高速缓冲存储器的存储器装置
CN113641626A (zh) * 2021-10-18 2021-11-12 睿思芯科(深圳)技术有限公司 一种sram读写控制方法及行缓冲控制器
CN113641626B (zh) * 2021-10-18 2022-02-18 睿思芯科(深圳)技术有限公司 一种sram读写控制方法及行缓冲控制器

Also Published As

Publication number Publication date
KR20170138765A (ko) 2017-12-18
US20170357600A1 (en) 2017-12-14
TW201801088A (zh) 2018-01-01
JP2017220242A (ja) 2017-12-14

Similar Documents

Publication Publication Date Title
CN107491397A (zh) 存储设备、存储模块和存储设备的操作方法
EP3506107B1 (en) Storing and retrieving training data for models in a data center
CN103946826B (zh) 用于在公共存储器通道上实现多级存储器层级的设备和方法
CN103946812B (zh) 用于实现多级别存储器分级体系的设备和方法
CN104636263B (zh) 用于异质存储器存取的方法和装置
CN103946811B (zh) 用于实现具有不同操作模式的多级存储器分级结构的设备和方法
EP3506116A1 (en) Shared memory controller in a data center
CN105493052A (zh) 用于存储器管理的高速缓存操作
US10503647B2 (en) Cache allocation based on quality-of-service information
CN103988183A (zh) 2级存储器分级结构中的存储器侧高速缓存的动态部分断电
CN103999161A (zh) 用于相变存储器漂移管理的设备和方法
US10108549B2 (en) Method and apparatus for pre-fetching data in a system having a multi-level system memory
KR20170130388A (ko) 비대칭 세트 결합된 캐시
Kargar et al. Challenges and future directions for energy, latency, and lifetime improvements in NVMs
US11055228B2 (en) Caching bypass mechanism for a multi-level memory
Mai et al. Dynamic Data Migration in Hybrid Main Memories for In‐Memory Big Data Storage
Behnam et al. R-cache: A highly set-associative in-package cache using memristive arrays
CN115729456A (zh) 存储器模块、包括存储器模块的存储器系统及其操作方法
US20230334206A1 (en) Die location based logical block formation and handling
US11119938B2 (en) Apparatus and method to synchronize memory map between a storage device and host
US11526448B2 (en) Direct mapped caching scheme for a memory side cache that exhibits associativity in response to blocking from pinning
Guo et al. Subsystem under 3D-Storage Class Memory on a chip
JP2018206377A (ja) 書き換え可能なインプレースメモリを有するデータ記憶装置
TWM524503U (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20171219

WW01 Invention patent application withdrawn after publication