CN107526688B - 储存装置以及配置方法 - Google Patents

储存装置以及配置方法 Download PDF

Info

Publication number
CN107526688B
CN107526688B CN201710816269.0A CN201710816269A CN107526688B CN 107526688 B CN107526688 B CN 107526688B CN 201710816269 A CN201710816269 A CN 201710816269A CN 107526688 B CN107526688 B CN 107526688B
Authority
CN
China
Prior art keywords
memory
access
signal
monitoring
unit
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
Application number
CN201710816269.0A
Other languages
English (en)
Other versions
CN107526688A (zh
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.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
VIA Alliance Semiconductor 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 VIA Alliance Semiconductor Co Ltd filed Critical VIA Alliance Semiconductor Co Ltd
Priority to CN201710816269.0A priority Critical patent/CN107526688B/zh
Priority to US15/797,617 priority patent/US10310761B2/en
Publication of CN107526688A publication Critical patent/CN107526688A/zh
Application granted granted Critical
Publication of CN107526688B publication Critical patent/CN107526688B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage 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
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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/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/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
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory

Landscapes

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

Abstract

一种储存装置,包括:存储器单元、访存监控器以及存储器配置器。存储器单元包括多个存储器块。访存监控器用以监控存储器单元的存取状态为连续存取状态或随机存取状态,而产生监控信号。存储器配置器根据监控信号,将多个存储器块配置为缓存存储器模式以及静态随机存取存储器模式中的一个而产生配置信号。

Description

储存装置以及配置方法
技术领域
本发明涉及一种动态调整访存模式的储存装置以及配置方法。
背景技术
一般来说,储存装置的访问方式,通常都是配置为静态随机存取存储器或是缓存存储器之后,就不能动态改变的。即使静态随机存取存储器以及缓存存储器并存的混合架构,也是通过初始化阶段就设定好了访存模式的,并且其设定均是通过用户或者软件设定。因此对于一些不能静态确定哪种方式更适合的目标负载,动态即时配置能力就显得很重要了。因此,我们有需要一个动态调整访存方式的储存装置以及配置方法。
发明内容
有鉴于此,本发明提出一种储存装置,包括:存储器单元、访存监控器以及存储器配置器。上述存储器单元包括多个存储器块。上述访存监控器用以监控上述存储器单元的存取状态为连续存取状态或随机存取状态,而产生监控信号。上述存储器配置器根据上述监控信号,将上述多个存储器块配置为缓存存储器模式以及静态随机存取存储器模式中的一个而产生配置信号。
根据本发明的实施例,上述访存监控器监控对上述存储器单元的既定地址范围的存取状态为上述连续存取状态或上述随机存取状态,当对上述存储器单元的访存请求的地址超出上述既定地址范围时,上述访存监控器产生上述监控信号以通知上述存储器配置器进行上述配置。
根据本发明的实施例,储存装置还包括:缓存控制器、静态随机存取存储器控制器以及路由单元。当上述存储器配置器将上述存储器单元的上述多个存储器块的第一存储器块配置为上述缓存存储器模式时,上述缓存控制器根据上述配置信号,对上述第一存储器块进行操作。当上述存储器配置器将上述存储器单元的上述多个存储器块的第二存储器块配置为上述静态随机存取存储器模式时,上述静态随机存取存储器控制器根据上述配置信号,对上述第二存储器块进行操作。上述路由单元根据上述配置信号及来自于执行单元的访存请求的地址,将上述访存请求路由至上述缓存控制器以及上述静态随机存取存储器控制器中的一个,使得上述执行单元能够存取上述存储器单元。
根据本发明的实施例,上述访存监控器还包括:监控单元、连续存取计数器以及随机存取计数器。上述监控单元监控对上述存储器单元的前后两笔访存请求的地址是否为连续,其中当上述前后两笔的访存请求的地址为连续时,上述监控单元产生第一信号,其中当上述前后两笔的访存请求的地址的差值超过既定范围时,上述监控单元产生第二信号。上述连续存取计数器根据上述第一信号而计数连续存取次数。上述随机存取计数器根据上述第二信号而计数随机存取次数。
根据本发明的实施例,当上述连续存取次数超过上述随机存取次数第一差值时,上述存储器配置器将上述存储器单元中第一数量的存储器块配置为上述静态随机存取存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述缓存存储器模式,其中上述第一数量大于上述第二数量。
根据本发明的另一实施例,当上述随机存取次数超过上述连续存取次数第二差值时,上述存储器配置器将上述存储器单元中第一数量的存储器块配置为上述缓存存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述静态随机存取存储器模式,其中上述第一数量大于上述第二数量。
根据本发明的另一实施例,每当对上述存储器单元的访存请求的地址超出既定地址范围时,上述访存监控器产生上述监控信号以通知上述存储器配置器读取上述连续存取次数及上述随机存取次数。
根据本发明的另一实施例,每隔固定时间间隔,上述访存监控器产生上述监控信号以通知上述存储器配置器读取上述连续存取次数及上述随机存取次数。
根据本发明的实施例,上述存储器配置器记录配置信息,其中上述配置信息包括被配置为上述缓存存储器模式的存储器块的地址范围及被配置为上述静态随机存取存储器模式的存储器块的地址范围,上述存储器配置器根据上述配置信息产生上述配置信号。
根据本发明的实施例,上述储存装置设置于硬件加速器内部,其中上述存储器单元缓存上述硬件加速器的负载。
本发明还提出一种配置方法,适用于存储器单元,其中上述存储器单元包括多个存储器块,包括:监控上述存储器单元的存取状态为连续存取状态或随机存取状态而产生监控信号;以及根据上述监控信号,将上述多个存储器块配置为缓存存储器模式以及静态随机存取存储器模式中的一个而产生配置信号。
根据本发明的实施例,上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤还包括:监控对上述存储器单元的既定既定地址范围的存取状态为上述连续存取状态或上述随机存取状态;以及当对上述存储器单元的访存请求的地址超出上述既定地址范围时,产生上述监控信号而将上述多个存储器块配置为上述缓存存储器模式以及上述静态随机存取存储器模式中的一个。
根据本发明的实施例,配置方法还包括:当上述存储器单元的上述多个存储器块的第一存储器块配置为上述缓存存储器模式时,根据上述配置信号,利用缓存控制器对上述第一存储器块进行操作;当上述存储器单元的上述多个存储器块的第二存储器块配置为上述静态随机存取存储器模式时,根据上述配置信号,利用静态随机存取存储器控制器对上述第二存储器块进行操作;以及根据上述配置信号及来自于执行单元的访存请求的地址,将上述访存请求路由至上述缓存控制器以及上述静态随机存取存储器控制器中的一个。
根据本发明的实施例,上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:监控对上述存储器单元的前后两笔访存请求的地址是否为连续;当上述前后两笔访存请求的地址为连续时,产生第一信号;根据上述第一信号而计数连续存取次数;当上述前后两笔访存请求的地址的差值超过既定范围时,产生第二信号;以及根据上述第二信号而计数随机存取次数。
根据本发明的实施例,上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:当上述连续存取次数超过上述随机存取次数第一差值时,将上述存储器单元中第一数量的存储器块配置为上述静态随机存取存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述缓存存储器模式,其中上述第一数量大于上述第二数量。
根据本发明的另一实施例,上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:当上述随机存取次数超过上述连续存取次数第二差值时,将上述存储器单元中第一数量的存储器块配置为上述缓存存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述静态随机存取存储器模式,其中上述第一数量大于上述第二数量。
根据本发明的另一实施例,上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:每当对上述存储器单元的访存请求的地址超出既定地址范围时,产生上述监控信号;以及根据上述监控信号,读取上述连续存取次数及上述随机存取次数。
根据本发明的另一实施例,上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:每隔固定时间间隔,产生上述监控信号;以及根据上述监控信号,读取上述连续存取次数及上述随机存取次数。
根据本发明的另一实施例,配置方法还包括:记录配置信息,其中上述配置信息包括被配置为上述缓存存储器模式的存储器块的地址范围及被配置为上述静态随机存取存储器模式的存储器块的地址范围;以及根据上述配置信息产生上述配置信号。
根据本发明的实施例,上述存储器单元设置于硬件加速器内部,其中上述存储器单元缓存上述硬件加速器的负载。
本发明通过对存储器单元的存取状态的监控,例如通过访存请求的地址规律的监控来动态地配置存储器单元的存储器块为缓存存储器模式以及静态随机存取存储器模式中的一个,以为不同的存取需求提供不同的访存模式,提高访存效率。
附图说明
图1是显示根据本发明的实施例所述的执行装置的方块图;
图2是显示根据本发明的实施例所述的访存监控器的方块图;
图3A-图3C是显示根据本发明的一些实施例所述的访存方式的示意图;以及
图4是显示根据本发明的实施例所述的配置方法的流程图。
符号说明
100 执行装置
110 储存装置
111 存储器单元
112、200 访存监控器
113 存储器配置器
114 缓存控制器
115 静态随机存取存储器控制器
116 路由单元
120 执行单元
210 监控单元
220 连续存取计数器
230 随机存取计数器
SC 配置信号
SM 监控信号
SS1 第一信号
SS2 第二信号
CS 计数连续存取次数
CR 计数随机存取次数
S1~S2 步骤流程
具体实施方式
以下说明为本发明的实施例。其目的是要举例说明本发明一般性的原则,不应视为本发明的限制,本发明的范围当以权利要求所界定的为准。
值得注意的是,以下所公开的内容可提供多个用以实践本发明的不同特点的实施例或范例。以下所述的特殊的元件范例与安排仅用以简单扼要地阐述本发明的精神,并非用以限定本发明的范围。此外,以下说明书可能在多个范例中重复使用相同的元件符号或文字。然而,重复使用的目的仅为了提供简化并清楚的说明,并非用以限定多个以下所讨论的实施例以及/或配置之间的关系。此外,以下说明书所述的一个特征连接至、耦接至以及/或形成于另一特征之上等的描述,实际可包含多个不同的实施例,包括该等特征直接接触,或者包含其它额外的特征形成于该等特征之间等等,使得该等特征并非直接接触。
图1是显示根据本发明的实施例所述的执行装置的方块图。如图1所示,执行装置100包括储存装置110以及执行单元120,其中执行单元120耦接至储存装置110。根据本发明的实施例,执行装置100为硬件加速器,储存装置110为硬件加速器的内部存储器,用以缓存硬件加速器待处理的负载(payload),但本发明并不限于此。根据本发明的另一实施例,执行单元120为微处理器。
储存装置110包括存储器单元111、访存监控器112、存储器配置器113、缓存控制器114、静态随机存取存储器控制器115以及路由单元116。执行单元120将数据写入至存储器单元111,以及自存储器单元111读取数据。
存储器单元111包括多个存储器块,通过本发明所公开的技术,可将这些存储器块的访存模式动态地配置为缓存存储器模式或者静态随机存取存储器模式。
访存监控器112用以监控存储器单元111的存取状态为连续存取状态或随机存取状态,而产生监控信号SM。存储器配置器113根据监控信号SM得知存储器单元111的存取状态为连续存取状态或随机存取状态后,存储器配置器113将存储器单元111的多个存储器块配置为缓存存储器模式以及静态随机存取存储器模式中的一个,而产生配置信号SC。根据本发明实施例,存储器配置器113可动态地将存储器单元111的所有存储器块配置为缓存存储器模式或者静态随机存取存储器模式,也可以按一定比例将一部分存储器块配置为缓存存储器模式,另一部分存储器块配置为静态随机存取存储器模式。
根据本发明的实施例,访存监控器112监控对存储器单元111的既定地址范围的存取状态为连续存取状态或随机存取状态,例如该既定地址范围为一个从初始地址开始的4K地址的观察窗范围。当对存储器单元111的访存请求的地址超出该既定地址范围时,访存监控器112产生监控信号SM以通知存储器配置器113进行配置的操作。根据本发明的另一实施例,访存监控器112监控指令封包(command packet)的数据的存取状态为连续存取状态或随机存取状态,而产生监控信号SM。根据本发明的另一实施例,存储器配置器113也可以每个固定时间间隔根据访存监控器112监控的结果对存储器单元111进行一次动态配置的操作。
根据本发明的实施例,存储器配置器113根据监控信号SM得知存储器单元111的存取状态为随机存取状态时,存储器配置器113将存储器单元111中的大部分存储器块配置为缓存存储器模式,并将这些被配置为缓存存储器模式的存储器块的地址信息记录在配置信息中,该配置信息可记录于存储器配置器113内的寄存器(未示出)。当执行单元120发出的存取请求的地址对应该被配置为缓存存储器模式的存储器块,路由单元116根据配置信号SC将该存取请求路由至缓存控制器114,缓存控制器114根据配置信号SC,对存储器单元111中的该被配置为缓存存储器模式的存储器块进行操作。
根据本发明的另一实施例,当存储器配置器113根据监控信号SM得知存储器单元111的存取状态为连续存取状态时,存储器配置器113将存储器单元111中的大部分存储器块配置为静态随机存取存储器模式,并将这些被配置为静态随机存取存储器模式的存储器块的地址信息记录在配置信息中,该配置信息可记录于存储器配置器113内的寄存器(未示出)。当执行单元120发出的存取请求的地址对应该被配置为静态随机存取存储器模式的存储器块,路由单元116根据配置信号SC将该存取请求路由至静态随机存取存储器控制器115,静态随机存取存储器控制器115根据配置信号SC,对存储器单元111中的该被配置为静态随机存取存储器模式的存储器块进行操作。
被配置为缓存存储器模式的存储器块的地址范围及被配置为静态随机存取存储器模式的存储器块的地址范围均记录于存储器配置器113内的配置信息中,存储器配置器113根据该配置信息产生配置信号SC。
路由单元116根据配置信号SC以及来自于执行单元120的访存请求的地址,将该访存请求路由至缓存控制器114以及静态随机存取存储器控制器115中的一个,使得执行单元116能够通过缓存控制器114以及静态随机存取存储器控制器115中的一个,存取存储器单元111。
图2显示根据本发明的实施例所述的访存监控器的方块图。如图2所示,访存监控器200包括监控单元210、连续存取计数器220以及随机存取计数器230,其中图2的访存监控器200对应至图1的访存监控器112。
监控单元210用以监控图1的执行单元120对存储器单元111的前后两笔访存请求的地址,而发出第一信号SS1或第二信号SS2。连续存取计数器210根据第一信号SS1而计数连续存取次数CS,随机存取计数器220根据第二信号SS2而计数随机存取次数CR。
根据本发明的实施例,当监控单元210检测到前后两笔访存请求的地址为连续,则监控单元210发出第一信号SS1,使得连续存取计数器210根据第一信号SS1而计数连续存取次数CS。根据本发明的另一实施例,当监控单元210检测到前后两笔访存请求的地址的差值超过既定范围,则监控单元210发出第二信号SS2,使得随机存取计数器220根据第二信号SS2而计数随机存取次数CR。
图3A-图3C显示根据本发明的一些实施例所述的访存方式的示意图。如图3A所示,图1的执行单元120的访存请求的地址为前后地址连续地存取存储器单元111,因此图2的监控单元210判断到相邻两笔访存请求的地址连续,而发出第一信号SS1,使得图2的连续存取计数器220将连续存取次数CS加一。
如图3B所示,图1的执行单元120的前后两笔访存请求的地址为间隔固定差值,因此图2的监控单元210判断到相邻两笔访存请求的地址不连续,而发出第二信号SS2,使得图2的随机存取计数器230将随机存取次数CR加一。
如图3C所示,图1的执行单元120的访存请求的地址为间隔不固定差值,因此图2的监控单元210判断到相邻两笔访存请求的地址不连续,而发出第二信号SS2,使得图2的随机存取计数器230将随机存取次数CR加一。
如图3A-图3C所示的访存方式,仅作为说明解释本发明的目的,并非以任何形式限定于此。
现在返回图2,连续存取计数器220和随机存取计数器230统计在固定时间间隔内或者从某一个从初始地址开始的既定地址范围的观察窗内的,对存储器单元111的存取请求的存取状况,以供存储器配置器113决定将存储器单元111配置为何种模式。本发明存储器配置器113对存储器单元111的动态配置操作可以当连续存取计数器220的计数值超过随机存取计数器230第一差值或者当随机存取计数器230的计数值超过连续存取计数器220第二差值时发生。在另一些实施例中,为了避免配置操作太过频繁触发,存储器配置器113对存储器单元111的动态配置操作每个固定时间间隔触发,也可以当存取请求的地址超出既定地址范围(例如4K地址观察窗)时触发。
根据本发明实施例,存储器配置器113对存储器单元111的动态配置策略如下:
当连续存取计数器220的计数值超过随机存取计数器230第一差值时,存储器配置器113将存储器单元111中第一数量的存储器块配置为静态随机存取存储器模式,并将第二数量的存储器块配置为缓存存储器模式,其中第一数量大于第二数量,即是说,将存储器单元111中的大部分或全部存储器块配置为静态随机存取存储器模式。本发明的存储器配置器113根据访存请求的地址规律预测接下来的访存请求的地址也可能是大面积连续的,则将存储器单元111中的大部分或全部存储器块配置为静态随机存取存储器模式,静态随机存取存储器模式下一次性可存取的数据量大(例如4K),还可以通过直接存储器存取(Direct Memory Access,DMA)方式访问,以适配大量连续且可以容忍较长延迟(latency)的访问请求。值得注意的是,在硬件加速器中,大量的访存请求是这种流式(stream)的访存请求。
当随机存取计数器230的计数值超过连续存取计数器220第二差值时,存储器配置器113将存储器单元111中第一数量的存储器块配置为缓存存储器模式,并将第二数量的存储器块配置为静态随机存取存储器模式,其中第一数量大于第二数量,即是说,将存储器单元111中的大部分或全部存储器块配置为缓存存储器模式。本发明的存储器配置器113根据访存请求的地址规律预测接下来的访存请求的地址也可能是随机且不连续的,则将存储器单元111中的大部分或全部存储器块配置为缓存存储器模式,缓存存储器模式下一次存取的数据量较小(例如一个缓存线64字节),但由于缓存存储器支持预取(prefech),存取快延迟小,以适配可容忍较短延迟的访问请求。
以上对存储器单元111的动态配置策略仅为举例,本发明并不限于此,存储器配置器113可根据访存监控器112所监控的存取状态采用其它配置策略。本发明通过对存储器单元的存取状态的监控,例如通过访存请求的地址规律的监控来动态地配置存储器单元111的存储器块为缓存存储器模式以及静态随机存取存储器模式中的一个,以为不同的存取需求提供不同的访存模式,提高访存效率。
图4显示根据本发明的实施例所述的配置方法的流程图。以下针对图4的流程图的叙述,将搭配图1,以利详细说明。首先,利用访存监控器112监控存储器单元111的存取状态,而产生监控信号SM(步骤S1)。接着,根据监控信号SM,将存储器单元111的多个存储器块配置为缓存存储器模式或静态随机存取存储器模式(步骤S2)。本发明的配置方法监控对存储器单元111进行存取的访存请求,例如监测其地址规律:如果预测接下来的访存请求的地址是大面积连续的,则将存储器单元111中的大部分或全部存储器块配置为静态随机存取存储器模式,以适配大量连续且可以容忍较长延迟(latency)的访问请求;如果预测接下来的访存请求的地址可能是随机且不连续的,则将存储器单元111中的大部分或全部存储器块配置为缓存存储器模式,以适配可容忍较短延迟的访问请求。
以上所述为实施例的概述特征。所属技术领域中的普通技术人员应当可以轻而易举地利用本发明为基础设计或调整以实行相同的目的和/或达成此处介绍的实施例的相同优点。所属技术领域中的普通技术人员也应当了解相同的配置不应背离本创作的精神与范围,在不背离本创作的精神与范围下他们可做出各种改变、取代和交替。说明性的方法仅表示示范性的步骤,但这些步骤并不一定要以所表示的顺序执行。可另外加入、取代、改变顺序和/或消除步骤以视情况而作调整,并与所公开的实施例精神和范围一致。

Claims (20)

1.一种储存装置,包括:
存储器单元,包括多个存储器块;
访存监控器,用以监控上述存储器单元的存取状态为连续存取状态或随机存取状态,而产生监控信号;以及
存储器配置器,根据上述监控信号,将上述多个存储器块配置为缓存存储器模式以及静态随机存取存储器模式中的一个而产生配置信号。
2.如权利要求1所述的储存装置,其中上述访存监控器监控对上述存储器单元的既定地址范围的存取状态为上述连续存取状态或上述随机存取状态,当对上述存储器单元的访存请求的地址超出上述既定地址范围时,上述访存监控器产生上述监控信号以通知上述存储器配置器进行上述配置。
3.如权利要求1所述的储存装置,还包括:
缓存控制器,其中当上述存储器配置器将上述存储器单元的上述多个存储器块的第一存储器块配置为上述缓存存储器模式时,上述缓存控制器根据上述配置信号,对上述第一存储器块进行操作;
静态随机存取存储器控制器,其中当上述存储器配置器将上述存储器单元的上述多个存储器块的第二存储器块配置为上述静态随机存取存储器模式时,上述静态随机存取存储器控制器根据上述配置信号,对上述第二存储器块进行操作;以及
路由单元,根据上述配置信号及来自于执行单元的访存请求的地址,将上述访存请求路由至上述缓存控制器以及上述静态随机存取存储器控制器中的一个,使得上述执行单元能够存取上述存储器单元。
4.如权利要求1所述的储存装置,其中上述访存监控器还包括:
监控单元,监控对上述存储器单元的前后两笔访存请求的地址是否为连续,其中当上述前后两笔访存请求的地址为连续时,上述监控单元产生第一信号,其中当上述前后两笔访存请求的地址的差值超过既定范围时,上述监控单元产生第二信号;
连续存取计数器,根据上述第一信号而计数连续存取次数;以及
随机存取计数器,根据上述第二信号而计数随机存取次数。
5.如权利要求4所述的储存装置,其中当上述连续存取次数超过上述随机存取次数第一差值时,上述存储器配置器将上述存储器单元中第一数量的存储器块配置为上述静态随机存取存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述缓存存储器模式,其中上述第一数量大于上述第二数量。
6.如权利要求4所述的储存装置,其中当上述随机存取次数超过上述连续存取次数第二差值时,上述存储器配置器将上述存储器单元中第一数量的存储器块配置为上述缓存存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述静态随机存取存储器模式,其中上述第一数量大于上述第二数量。
7.如权利要求4所述的储存装置,其中每当对上述存储器单元的访存请求的地址超出既定地址范围时,上述访存监控器产生上述监控信号以通知上述存储器配置器读取上述连续存取次数及上述随机存取次数。
8.如权利要求4所述的储存装置,其中每隔固定时间间隔,上述访存监控器产生上述监控信号以通知上述存储器配置器读取上述连续存取次数及上述随机存取次数。
9.如权利要求1所述的储存装置,其中上述存储器配置器记录配置信息,其中上述配置信息包括被配置为上述缓存存储器模式的存储器块的地址范围及被配置为上述静态随机存取存储器模式的存储器块的地址范围,上述存储器配置器根据上述配置信息产生上述配置信号。
10.如权利要求1所述的储存装置,其中上述储存装置设置于硬件加速器内部,其中上述存储器单元缓存上述硬件加速器的负载。
11.一种配置方法,适用于存储器单元,其中上述存储器单元包括多个存储器块,包括:
监控上述存储器单元的存取状态为连续存取状态或随机存取状态而产生监控信号;以及
根据上述监控信号,将上述多个存储器块配置为缓存存储器模式以及静态随机存取存储器模式中的一个而产生配置信号。
12.如权利要求11所述的配置方法,其中上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤还包括:
监控对上述存储器单元的既定地址范围的存取状态为上述连续存取状态或上述随机存取状态;以及
当对上述存储器单元的访存请求的地址超出上述既定地址范围时,产生上述监控信号而将上述多个存储器块配置为上述缓存存储器模式以及上述静态随机存取存储器模式中的一个。
13.如权利要求11所述的配置方法,还包括:
当上述存储器单元的上述多个存储器块的第一存储器块配置为上述缓存存储器模式时,根据上述配置信号,利用缓存控制器对上述第一存储器块进行操作;
当上述存储器单元的上述多个存储器块的第二存储器块配置为上述静态随机存取存储器模式时,根据上述配置信号,利用静态随机存取存储器控制器对上述第二存储器块进行操作;以及
根据上述配置信号及来自于执行单元的访存请求的地址,将上述访存请求路由至上述缓存控制器以及上述静态随机存取存储器控制器中的一个。
14.如权利要求11所述的配置方法,其中上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:
监控对上述存储器单元的前后两笔访存请求的地址是否为连续;
当上述前后两笔访存请求的地址为连续时,产生第一信号;
根据上述第一信号而计数连续存取次数;
当上述前后两笔访存请求的地址的差值超过既定范围时,产生第二信号;以及
根据上述第二信号而计数随机存取次数。
15.如权利要求14所述的配置方法,其中上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:
当上述连续存取次数超过上述随机存取次数第一差值时,将上述存储器单元中第一数量的存储器块配置为上述静态随机存取存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述缓存存储器模式,其中上述第一数量大于上述第二数量。
16.如权利要求14所述的配置方法,其中上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:
当上述随机存取次数超过上述连续存取次数第二差值时,将上述存储器单元中第一数量的存储器块配置为上述缓存存储器模式,并将上述存储器单元中第二数量的存储器块配置为上述静态随机存取存储器模式,其中上述第一数量大于上述第二数量。
17.如权利要求14所述的配置方法,其中上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:
每当对上述存储器单元的访存请求的地址超出既定地址范围时,产生上述监控信号;以及
根据上述监控信号,读取上述连续存取次数及上述随机存取次数。
18.如权利要求14所述的配置方法,其中上述监控上述存储器单元的存取状态为上述连续存取状态或上述随机存取状态而产生上述监控信号的步骤,还包括:
每隔固定时间间隔,产生上述监控信号;以及
根据上述监控信号,读取上述连续存取次数及上述随机存取次数。
19.如权利要求11所述的配置方法,还包括:
记录配置信息,其中上述配置信息包括被配置为上述缓存存储器模式的存储器块的地址范围及被配置为上述静态随机存取存储器模式的存储器块的地址范围;以及
根据上述配置信息产生上述配置信号。
20.如权利要求11所述的配置方法,其中上述存储器单元设置于硬件加速器内部,其中上述存储器单元缓存上述硬件加速器的负载。
CN201710816269.0A 2017-09-12 2017-09-12 储存装置以及配置方法 Active CN107526688B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710816269.0A CN107526688B (zh) 2017-09-12 2017-09-12 储存装置以及配置方法
US15/797,617 US10310761B2 (en) 2017-09-12 2017-10-30 Storage device with dynamic configuration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710816269.0A CN107526688B (zh) 2017-09-12 2017-09-12 储存装置以及配置方法

Publications (2)

Publication Number Publication Date
CN107526688A CN107526688A (zh) 2017-12-29
CN107526688B true CN107526688B (zh) 2020-05-29

Family

ID=60735810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710816269.0A Active CN107526688B (zh) 2017-09-12 2017-09-12 储存装置以及配置方法

Country Status (2)

Country Link
US (1) US10310761B2 (zh)
CN (1) CN107526688B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220149220A (ko) 2021-04-30 2022-11-08 삼성전자주식회사 메모리 장치
US12013789B2 (en) * 2021-12-22 2024-06-18 Micron Technology, Inc. Flexible information compression at a memory system

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4369857B2 (ja) * 2003-12-19 2009-11-25 パナソニック株式会社 画像符号化装置および画像符号化方法
KR100546403B1 (ko) * 2004-02-19 2006-01-26 삼성전자주식회사 감소된 메모리 버스 점유 시간을 가지는 시리얼 플레쉬메모리 컨트롤러
US7924914B2 (en) * 2005-09-20 2011-04-12 Intel Corporation Dynamically configuring a video decoder cache for motion compensation
US8335122B2 (en) * 2007-11-21 2012-12-18 The Regents Of The University Of Michigan Cache memory system for a data processing apparatus
CN102087632B (zh) * 2009-12-02 2013-01-23 群联电子股份有限公司 用于闪存的数据储存方法及其控制器与储存系统
US20110153944A1 (en) * 2009-12-22 2011-06-23 Klaus Kursawe Secure Cache Memory Architecture
CN102541754A (zh) * 2010-12-27 2012-07-04 北京国睿中数科技股份有限公司 用于对存储器进行配置的系统和方法
CN103811048B (zh) * 2014-02-26 2017-01-11 上海新储集成电路有限公司 一种混合存储器结构的低功耗刷新方法
US9798668B2 (en) * 2014-12-14 2017-10-24 Via Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively select one or a plurality of its sets depending upon the mode
EP3129886B1 (en) * 2014-12-14 2019-10-02 VIA Alliance Semiconductor Co., Ltd. Dynamic cache replacement way selection based on address tag bits
EP3055774B1 (en) * 2014-12-14 2019-07-17 VIA Alliance Semiconductor Co., Ltd. Multi-mode set associative cache memory dynamically configurable to selectively allocate into all or a subset of its ways depending on the mode
US20170091111A1 (en) * 2015-09-30 2017-03-30 International Business Machines Corporation Configurable cache architecture

Also Published As

Publication number Publication date
CN107526688A (zh) 2017-12-29
US20190079687A1 (en) 2019-03-14
US10310761B2 (en) 2019-06-04

Similar Documents

Publication Publication Date Title
CN112272816B (zh) 存储器系统或子系统中的预取信令
US6981112B2 (en) Dynamic cache disable
CN107544926B (zh) 处理系统及其访存方法
JP5746136B2 (ja) メモリアクセス時間を最適化するための、メモリアクセスコントローラ、システム、および方法
US11915788B2 (en) Indication in memory system or sub-system of latency associated with performing an access command
JP2008225914A (ja) プリフェッチ制御装置、記憶装置システムおよびプリフェッチ制御方法
JP2013508813A (ja) 省電力を目的としたメモリ・オブジェクトの再配置
JP2013505488A (ja) 読み取り及び書き込みアウェア・キャッシュを制御する方法、装置、プログラム、キャッシュ・コントローラ
US9601180B2 (en) Automatic partial array self-refresh
US10908839B2 (en) Storage device throttling amount of communicated data depending on suspension frequency of operation
US20220068348A1 (en) Monitoring and mitigation of row disturbance in memory
US20190095347A1 (en) Multi-port shared cache apparatus
CN107526688B (zh) 储存装置以及配置方法
US20160342526A1 (en) Electronic device having scratchpad memory and management method for scratchpad memory
US10580110B2 (en) Hardware structure to track page reuse
CN110168644B (zh) 用于在存储体存储器单元阵列中提供行篡改保护的系统、方法和计算机程序
JP2009251713A (ja) キャッシュメモリ制御装置
CN110399219B (zh) 内存访问方法、dmc及存储介质
JP5500272B2 (ja) 中継装置、中継履歴記録方法、及びデータ処理装置
KR102474288B1 (ko) 쓰기 간섭 문제를 완화하는 상변화 메모리 모듈
CN111858256B (zh) 命令队列监控电路、数据交换方法及其设备
CN109408412B (zh) 内存预取控制方法、装置及设备
Niu et al. DLBF: A low overhead wear leveling algorithm for embedded systems with hybrid memory
JP6919277B2 (ja) ストレージシステム、ストレージ管理装置、ストレージ管理方法、及びプログラム
JP3751814B2 (ja) キャッシュメモリ制御方式

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
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

CP03 Change of name, title or address