CN104714903B - 存储系统 - Google Patents

存储系统 Download PDF

Info

Publication number
CN104714903B
CN104714903B CN201410106497.5A CN201410106497A CN104714903B CN 104714903 B CN104714903 B CN 104714903B CN 201410106497 A CN201410106497 A CN 201410106497A CN 104714903 B CN104714903 B CN 104714903B
Authority
CN
China
Prior art keywords
data storage
mark
address
data
linear dimension
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
CN201410106497.5A
Other languages
English (en)
Other versions
CN104714903A (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.)
MediaTek Singapore Pte Ltd
Original Assignee
MediaTek Singapore Pte 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 MediaTek Singapore Pte Ltd filed Critical MediaTek Singapore Pte Ltd
Publication of CN104714903A publication Critical patent/CN104714903A/zh
Application granted granted Critical
Publication of CN104714903B publication Critical patent/CN104714903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/455Image or video data
    • 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/601Reconfiguration 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/6032Way prediction in set-associative cache

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)
  • Image Generation (AREA)
  • Communication Control (AREA)

Abstract

本发明提供一种存储系统。其中该存储系统包括:数据存储器,具有多个数据存储线;标记存储器,具有多个地址标记,该多个地址标记中的每一个与分配于该数据存储器中的该多个数据存储线中的一个数据存储线相关联;以及控制器,耦接于该数据存储器和该标记存储器之间,该控制器设置第一数目的多个地址标记,并配置第一数目的多个数据存储线作为具有第一数据存储线尺寸的第一数据存储线;以及该控制器设置第二数目的多个地址标记,并配置第二数目的多个数据存储线作为具有第二数据存储线尺寸的第二数据存储线,其中该第二数据存储线尺寸不同于该第一数据存储线尺寸。本发明所提供的存储系统,可以提高主存储器的存储效率。

Description

存储系统
技术领域
本发明有关于存取缓冲数据(例如,高速缓存数据),特别是有关于具有不同数据存储线尺寸(例如,不同的高速缓存线尺寸)的数据存储线(例如,高速缓存线)的存储系统。
背景技术
高速缓存器(cache memory)是用于暂时保存容量较大和速度较慢的存储器(例如,主存储器)的部分内容以用于重复存取的高速缓冲器。大多数现有的高速缓存(cache)由一组条目(entry)组成。每一个条目由数据块(或数据线)和地址标记(address tag)组成;地址标记与容量较大的主存储器中的数据的位置相关联。高速缓存器是存取相关联的--对于高速缓存器的关键不是高速缓存器中的位置,而是主存储器中的位置。为加速存储,高速缓存器可能不是全相联,而可能是组相联、直接映射或哈希的(hashed)。大多数的高速缓存器包括多个高速缓存线,每一个高速缓存线具有固定的高速缓存线尺寸。在稍复杂的设计中,使用扇区高速缓存(sector cache)。扇区高速缓存由一组扇区组成,并且有一个地址标记与每一个扇区相关联。扇区本身被分为多个子扇区(subsectors)。每一个子扇区具有有效位(valid bit),因此仅需要呈现扇区的一部分子扇区。当对于一个扇区高速缓存缺失(cache miss)时,常驻(resident)扇区被移出(evict),将地址标记设置为新扇区的地址,并抓取一个子扇区。当对于子扇区存在高速缓存缺失,但包括该子扇区的扇区已经出现在高速缓存中,仅抓取需要的子扇区。
使用扇区高速缓存的最初原因是利用非连续(discrete)的晶体管在不同时间运作的逻辑使得扇区设计比具有数据传输(transfer)和寻址的单元作为“块”或“线”的现有的普通的非扇区(non-sectored)设计更加容易构建。通常情况下,对于非扇区高速缓存,用相对少数目的标记位而具有较强的高速缓存容量的唯一方法是使得高速缓存块(高速缓存线)较大。然而,这种情况下的问题是,每一个高速缓存缺失需要完全地抓取一个较大块。利用扇区高速缓存,有可能仅抓取块(或扇区)的一部分,并因此处理高速缓存缺失的时间和总线流量均可以显著的降低。因此,与其他高速缓存相比,尽管扇区高速缓存具有较高的高速缓存缺失率(cache miss ratios),但是当考虑时间因素的时候,有可能扇区缓存具有更优的性能。然而,扇区设计的问题是,在一个扇区的所有的子扇区被载入数据之前,该扇区通常会从高速缓存中移出,因此,高速缓存容量的很大一部分没有被使用。具体地,扇区高速缓存具有的特征是,大量的字节可以利用相对较小的数目的标记位来标记,而当缺失发生时,仍然仅传输较小的块。然而,一个标记会对应于许多字节。当高速缓存线被频繁替代时,剩余的字节可能仍然为空。这可能消耗高速缓存器的宝贵空间。
发明内容
有鉴于此,本发明提出一种存储系统。
依据本发明第一实施方式,提供一种存储系统。该存储系统包括:数据存储器,具有多个数据存储线;标记存储器,具有多个地址标记,该多个地址标记中的每一个与分配于该数据存储器中的该多个数据存储线中的一个数据存储线相关联;以及控制器,耦接于该数据存储器和该标记存储器之间,该控制器设置第一数目的多个地址标记,并配置第一数目的多个数据存储线作为具有第一数据存储线尺寸的第一数据存储线;以及该控制器设置第二数目的多个地址标记,并配置第二数目的多个数据存储线作为具有第二数据存储线尺寸的第二数据存储线,其中该第二数据存储线尺寸不同于该第一数据存储线尺寸。
依据本发明第二实施方式,提供一种存储系统。该存储系统包括:数据存储器;标记存储器;以及控制器,耦接于该数据存储器和该标记存储器之间,该控制器设置该标记存储器并配置该数据存储器以分配具有第一数据存储线尺寸的第一数据存储线而用于存储渲染目标纹理,以及控制器设置该标记存储器并配置该数据存储器以分配具有第二数据存储线尺寸的第二数据存储线而用于存储非渲染目标纹理,其中该第二数据存储线尺寸不同于该第一数据存储线尺寸。
本发明所提出的存储系统,可以提高主存储器的存储效率。
附图说明
图1为根据本发明实施方式的存储系统的示意图。
图2为主存储器的存储效率与请求的数据尺寸之间关系的示意图。
图3为图1所示的数据存储器的存储布置的示意图。
图4为根据本发明实施方式的不同高速缓存线尺寸的动态分配的流程图。
图5为根据本发明一实施方式的在高速缓存器中使用提出的动态高速缓存线尺寸设计的示意图。
图6为根据本发明另一实施方式的在高速缓存器中使用提出的动态高速缓存线尺寸设计的示意图。
具体实施方式
在说明书及权利要求书当中使用了某些词汇来指称特定的元件。本领域技术人员应当理解,电子设备制造商可能会用不同的名词来称呼同样的元件。本说明书及权利要求书并不以名称的差异作为区分元件的方式,而是以元件在功能上的差异作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”为开放式的用语,故应解释成“包含但不限定于”。另外,“耦接”一词在此为包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表所述第一装置可直接电气连接于所述第二装置,或通过其他装置或连接手段间接地电气连接至所述第二装置。
本发明的概念是提出具有混合高速缓存线尺寸的高速缓存器(即,具有不同高速缓存线尺寸的高速缓存线的高速缓存器),该高速缓存器可以有效利用高速缓存器的宝贵空间,降低高速缓存缺失率,并提高主存储器(例如,动态随机存取存储器(DRAM))的存储效率。具体细节将详述如下。
请参考图1,图1为根据本发明实施方式的存储系统的示意图。存储系统100为高速缓存器(例如,具有较快数据存取速度的存储器),该高速缓存器实现于在处理器和存储器(例如,具有较慢数据存取速度的存储器)之间的请求快速信息处理的任意应用中。在此实施方式中,存储系统100作为图形系统的高速缓存器。因此,除了存储系统100,图形系统包括存储系统100外部的压缩器(compressor)101、纹理单元102、解压缩器(decompressor)103、长度高速缓存(length cache)104、以及数据存储器(例如,主存储器)105。存储系统100包括数据存储器112、标记存储器114和控制器117。数据存储器112包括多个数据存储线113。举例来说,数据存储器112利用用于储存高速缓存数据的静态随机存取存储器(staticrandom access memory,SRAM)来实现,以及每一个数据存储线113为具有基本/默认的高速缓存线尺寸(例如,512比特)的高速缓存线。标记存储器114为标记随机存取存储器(RAM),并且该标记随机存取存储器具有多个第一地址标记115和多个第二地址标记116存储于其中。请注意,除地址标记之外,每一个标记条目包括额外的控制信息,例如有效位、修改标志位(dirty bit)等。具体地,第一地址标记115可以为奇地址标记(即,奇标记),以及第二地址标记116为偶地址标记(即,偶标记),其中一个奇标记和一个偶标记来自标记存储器114中的一对相邻地址标记。数据存储器112和标记存储器114可分配于同一存储器的不同存储空间中。根据本发明的另一实施方式,数据存储器112和标记存储器114可分配于不同存储器中。
为简单和简洁起见,高速缓存器仅为存储系统100的一个实施方式,以描述本发明的本质特征。因此,在下文中,术语“数据存储线”与“高速缓存线”是可互换的,以及术语“存储系统”和“高速缓存系统”是可互换的。然而,提出的自适应高速缓存线尺寸设计并非仅限于高速缓存应用。使用提出的设计概念的任意数据存储器/缓冲器均落入本发明的保护范围。
在此实施方式中,第一地址标记115和第二地址标记116中的每一个与分配于数据存储器112中的一个数据存储线113(例如,高速缓存线)相关联,以及第一地址标记115和第二地址标记116中的每一个用于存储与该地址标记相关联的数据对应的一部分地址。其中,与该地址标记相关联的数据存储于数据存储线113(例如,高速缓存线)中。
控制器117耦接于数据存储器112和标记存储器114之间,以及控制器117控制存储系统100的操作。举例来说,控制器117为探听(snoop)处理器(例如,本发明实施方式中的纹理单元102)总线活动的高速缓存控制器,并且控制器117确定请求的数据DATAR的地址ADDR是否引起高速缓存命中或高速缓存缺失。为简洁起见,数据传输路径用实线来说明,地址传输路径用虚线来说明。当通过控制器117确定高速缓存命中时,控制器117从一个数据存储线113(例如,高速缓存线)中抓取请求的数据DATAR并返回请求的数据DATAR至纹理单元102。当通过控制器117确定高速缓存缺失时,控制器117遵循替换规则而更新一个数据存储线113(例如,高速缓存线)和相关联的地址标记,并返回从数据存储器105中抓取的请求的数据DATAR至纹理单元102。关于基于请求的数据DATAR的数据类型来处理高速缓存缺失的事件的细节将参照附图在下文中进一步说明。
在图形处理单元(graphics processing unit,GPU)中,采用多种方案来降低存储带宽。一种方案是利用压缩单元以在数据被存入存储器之前压缩数据,因此降低存储带宽。若压缩大块(big chunk)数据,则压缩大块数据的压缩率(compression rate)高于压缩小块数据的压缩率。然而,从存储器中读出的已压缩的数据应为整块数据。否则,解压缩单元由于缺乏用于数据解压缩的足够信息而不能识别已压缩的数据。在此实施方式中,压缩器101位于纹理单元102和数据存储器105之间,并且压缩器101压缩渲染目标(rendertarget,RT)纹理以产生渲染目标的已压缩纹理;以及解压缩器103位于纹理单元102和数据存储器105之间,并且解压缩器103解压缩从数据存储器105中读取的渲染目标的已压缩纹理以重建(reconstruct)渲染目标纹理。请注意,标准的非渲染目标(non-RT)纹理不由压缩器101处理。因此,存储于数据存储器105中的纹理数据可包括渲染目标的已压缩纹理数据和非渲染目标的已压缩纹理数据。
当纹理单元102通过压缩器101存储渲染目标纹理数据至数据存储器105中,可旁通存储系统100(例如,高速缓存系统),以及存储系统100(例如,高速缓存系统)可高速缓存通过数据存储器105和解压缩器103获得的渲染目标纹理数据。此仅作为本发明的举例,而并非用于限制本发明。进一步地,当纹理单元102存储非渲染目标纹理数据至数据存储器105时,可旁通存储系统100(例如,高速缓存系统)和压缩器101;以及当纹理单元102通过存储系统100(例如,高速缓存系统)从数据存储器105读取非渲染目标纹理数据时,可旁通解压缩器103。
在表1中说明请求的数据尺寸与压缩率和存储利用率之间的关系。根据本发明的较佳实施方式,压缩器101使用1k比特作为压缩数据块以用于获得更佳的压缩率和更高的存储效率。如表1所示,使用1k比特作为压缩数据块时,压缩率为60%,存储利用率为95%。若压缩器101被配置为使用512比特作为压缩数据块,压缩率将减少10%。比方说,若压缩器使用512比特作为原始数据,并且压缩率为50%,则压缩器压缩512比特为256比特。请参考图2,图2为主存储器的存储效率与请求的数据尺寸之间关系的示意图。主存储器的存储效率为主存储器实际存取数据使用的存储周期的百分比。当写数据为512比特(64字节)时,存储利用率(即,存储效率)为92%。然而,当写数据为256比特(32字节)时,存储利用率不是很好。如图2所示,存储利用率降到54%。甚至压缩率为50%,因此,节省较少存储周期。然而,当写入数据为1K比特(128字节)。存储利用率为95%。若压缩器压缩1k比特(128字节),压缩率为60%。主存储器的利用率稍微从95%(128字节)降至92%(64字节)。可获得多于50%的总存储周期。
请求的数据尺寸 1k比特 512比特 256比特 128比特
压缩率 60% 50% 38% 22%
存储利用率 95% 92% 54% 29%
表1
如上所述,本发明的压缩器101使用1K比特(128字节)作为压缩数据块以用于压缩被存储至数据存储器105的渲染目标纹理,然后存储渲染目标的已压缩纹理至数据存储器105。举例来说,压缩器101采用轻量级时域压缩(lightweight temporal compression,LTC)算法。与使用较小压缩单元尺寸的压缩设计相比,提出的使用较大压缩单元尺寸(例如,1K比特或128字节)的设计可使数据存储器(例如,主存储)具有提高的存储效率。
在本发明较佳的实施方式中,由于压缩数据块的长度为1k比特,因此,数据存储器105具有1k比特的存储空间,该1k比特的存储空间被分配以用于存储自压缩一个1K比特的原始数据而产生的已压缩数据。更具体地,考虑纹理单元102请求存储1K比特的渲染目标纹理至数据存储器105中的1K比特存储空间的实施方式,在纹理单元102和数据存储器105之间的压缩器101产生M比特的渲染目标的已压缩纹理(M<1K),并且存储M比特渲染目标的已压缩纹理至原先指定用于缓冲1k比特渲染目标纹理的1K比特的存储空间。如此一来,纹理单元102仍认为1K比特的渲染目标纹理被存储至数据存储器105的1K比特的存储空间中,并因此纹理单元102发出存储地址以从数据存储器105检索(retrieve)请求的数据,该存储地址对应于属于1K比特的渲染目标纹理。然而,存储于由1K比特的渲染目标纹理的存储地址定义的1K比特的存储空间中的实际的数据为M比特的渲染目标的已压缩纹理,而不是1K比特的渲染目标纹理。
请参考图3,图3为图1所示的数据存储器105的存储布置的示意图。数据存储器105被配置为具有第一存储空间Texture_0和第二存储空间Texture_1,其中第一存储空间Texture_0用于缓冲非渲染目标的已压缩纹理(即,原始的非渲染目标纹理数据),以及第二存储空间Texture_1用于缓冲渲染目标的已压缩纹理(即,渲染目标纹理的已压缩数据)。当已压缩的数据自压缩一个1K比特的原始渲染目标纹理数据而产生时,压缩率高于50%。因此,在最初被配置为用于存储1K比特的原始渲染目标纹理数据的1K比特的存储空间中,具有空区域(empty area)。即,部分分配的存储空间没有数据存储于其中。通过举例的方式,已压缩的数据可产生于128比特的单元中。如图3所述,第一1K比特的存储空间仅存储由三个128比特的已压缩数据块组成的渲染目标的已压缩数据;第二1K比特的存储空间仅存储由两个128比特的已压缩数据块组成的另一个渲染目标的已压缩数据;以及第三1K比特的存储空间也仅存储有四个128比特的已压缩数据块组成的另一个渲染目标的已压缩数据。对于每一个1K比特的原始渲染目标纹理数据,压缩器101在压缩完成后能识别出已压缩数据的长度(即,128比特*N)。换句话说,在对1K比特的原始渲染目标纹理数据应用数据压缩之后,压缩器101能识别有多少128比特的已压缩数据块被存储于最初被分配为缓冲1K比特的原始渲染目标纹理数据的1K比特存储空间中。解压缩器103可参考此长度信息以检索来自1K比特的存储空间的所有的已压缩数据,而不在存取空区域上浪费存储周期。
关于非渲染目标的已压缩纹理(即,标准的渲染目标纹理),非渲染目标的已压缩纹理以512比特为单位(即,本发明的基本高速缓存线尺寸)被存储于数据存储器105中。也就是说,非渲染目标的已压缩纹理(即,标准的非渲染目标纹理)被分割为512比特的数据块,然后非渲染目标的已压缩纹理被存储至第一存储空间Texture_0,而不需要进行任何数据压缩。
如上所述,自存储器读取的已压缩数据应为整块数据,否则解压缩单元不能识别。举例来说,当纹理单元102请求512比特渲染目标纹理数据时,由于压缩器101使用1K比特(128字节)作为压缩数据块,解压缩器103不能通过仅仅从数据存储器105读取512比特的渲染目标纹理数据的渲染目标的已压缩数据来重建请求的512比特的渲染目标纹理数据。此外,由于压缩器101使用1K比特(128字节)作为压缩数据块,解压缩器103不能识别数据存储器105中的部分渲染目标的已压缩数据的位置。换句话说,解压缩器103需要使用1K比特的渲染目标纹理数据的整个渲染目标的已压缩数据作为解压缩数据块。由于基于不同的存储空间尺寸(例如,512比特和1K比特)非渲染目标的已压缩纹理和渲染目标的已压缩纹理被存储于数据存储器105中,存储系统100的数据存储器112被配置为具有不同的数据存储线尺寸(即,高速缓存线尺寸)以用于缓冲512比特的纹理数据和1K比特的纹理数据。
在此实施方式中,控制器117设置第一数目的第一地址标记115、第二地址标记116,并配置第一数目的多个数据存储线113以作为具有第一数据存储线尺寸的第一数据存储线;以及控制器117设置第二数目的第一地址标记115、第二地址标记116,并配置第二数目的多个数据存储线113以作为具有第二数据存储线尺寸的第二数据存储线。其中,第二数据存储线尺寸不同于第一数据存储线尺寸。假设每一个数据存储线113为具有512比特的基本高速缓存线尺寸的高速缓存线以及压缩器101使用1K比特(128字节)作为压缩数据块,第一数目可等于一,以及第二数目可等于二。因此,根据本发明的一个实施方式,当请求的数据为渲染目标纹理(例如,存储于数据存储器105中的渲染目标的已压缩纹理)时,第二数目大于一,两个512比特的高速缓存线被结合以作为一个1K比特的高速缓存线,以及与该两个512比特的高速缓存线相关联的两个地址标记在标记存储器中相邻;以及当请求的数据为非渲染目标纹理(例如,储存于数据存储器105中的非渲染目标的已压缩纹理)时,直接使用一个512比特的高速缓存线。由于请求的纹理数据自数据存储器105中的渲染目标的已压缩纹理或自数据存储器105中的非渲染目标的已压缩纹理取得,每一个第一数据存储线具有第一数据存储线尺寸(例如,512比特),每一个第二数据存储线具有第二数据存储线尺寸(例如,1K比特),以及第一数据存储线和第二数据存储线可在存储系统100中共存以分别用于缓冲自数据存储器105读取的非渲染的纹理数据和由解压缩器103重建的渲染目标纹理数据。
更具体地,根据本发明的另一实施方式,由于请求的纹理数据(渲染目标纹理或非渲染目标纹理)是纹理单元102所动态请求的,控制器117控制数据存储器112和标记存储器114以动态地设置数据存储线尺寸(即,高速缓存线尺寸)。简而言之,控制器117设置标记存储器114并配置数据存储器112以分配具有第一高速缓存线尺寸的第一高速缓存线而用于存储渲染目标纹理,以及控制器117设置标记存储器114并配置数据存储器112以分配具有第二高速缓存线尺寸的第二高速缓存线而用于存储非渲染目标纹理。其中,第二高速缓存线尺寸(例如,512比特)不同于第一高速缓存线尺寸(例如,1K比特)。
请参考图4,图4为根据本发明实施方式的不同高速缓存线尺寸的动态分配的流程图。若结果实质上相同,则步骤顺序不需要以图4所示的步骤顺序来严格执行。动态设置高速缓存线尺寸的方法可由存储系统100采用。
在步骤402中,控制器117接收自纹理单元102产生的控制比特CS。纹理单元102可发出地址ADDR以获得请求的数据DATAR。在此实施方式中,数据存储器112采用的基本高速缓存线尺寸为512比特。因此,纹理单元102可通过发出适当的地址ADDR请求读出每一个数据中的一个512比特纹理数据(即,请求的数据DATAR),由于纹理单元102可以识别请求的数据DATAR是渲染目标纹理还是非渲染目标纹理,纹理单元102设置控制比特CS以指示控制器117请求的数据DATAR的纹理类型。
在步骤404中,控制器117参考控制比特CS以确定是否使用512比特的高速缓存线。举例来说,当控制比特CS指示请求的数据DATAR为非渲染目标纹理时,应该使用512比特的高速缓存线尺寸。流程转至步骤406。在步骤406中,当发生高速缓存缺失时,控制器117采用组/路相关联的方案以替换关联的512比特的高速缓存线的一个地址标记以使得抓取存储于数据存储器105中的非渲染目标的已压缩纹理的512比特的数据块,并将该非渲染目标的已压缩纹理的512比特数据块存储于关联的512比特高速缓存线。接下来,控制器117自数据存储器112中关联的512比特高速缓存线抓取请求的数据DATAR,并返回请求的数据DATAR至纹理单元102。由于采用较小的高速缓存线尺寸以用于缓冲非渲染目标纹理,与现有的扇区高速缓存设计相比,本发明有效地利用了高速缓存器中的宝贵空间。
当控制比特CS指示请求的数据DATAR为渲染目标纹理以及当发生高速缓存缺失时,应使用1K比特的高速缓存线尺寸。因此,流程转至步骤408。在步骤408中,控制器117检查标记存储器114是否具有可替换的两个地址标记(例如,两个相邻的地址标记)。如上所述,尽管请求的数据DATAR为512比特的渲染目标纹理数据,解压缩器103将产生1K比特的渲染目标纹理数据。因此,若标记存储器114具有可替换的两个地址标记(例如,两个相邻的地址标记),所有由解压缩器103重建的1K比特的渲染目标纹理数据被允许存储至数据存储器112中的关联的存储空间(例如,两个相邻的高速缓存线),由此降低高速缓存缺失率。更具体地,在获得1k比特的渲染目标纹理数据请求的先前一半(即,一个512比特的渲染目标纹理数据)之后,当纹理单元102读取1K比特的渲染目标纹理数据的后面一半(即,其他的512比特的渲染目标纹理数据)时,由于1K比特的渲染目标纹理数据的后面一半被预先载入数据存储器112以响应1K比特的渲染目标纹理数据的先前一半的先前数据请求,请求的数据可在数据存储器112中直接获得。因此,当检查结果指示标记存储器114具有可替换的两个地址标记时,流程转至步骤410。在步骤410中,控制器117采用组/路相关联的方案来替换关联的512比特高速缓存线的两个地址标记,以使得通过数据储存器105和解压缩器103得到的渲染目标纹理的1K比特的数据块被存储至结合的两个512比特高速缓存线,其中该结合的两个512比特的高速缓存线作为一个1K比特的高速缓存线。由于本发明实施方式中的基本高速缓存线尺寸为64字节(512比特),1K比特的数据块的上半部分的地址(Bit[1023]-Bit[512])的地址位Addr[6]不同于同一1K比特的数据块的下半部分的地址(Bit[511]-Bit[0])的地址位Addr[6]。因此,被结合以作为一个1K比特高速缓存线的关联512比特高速缓存线的两个相邻的地址标记可通过具有不同的最低有效位(Least Significant bit,LSB)被替换为彼此不同的标记值。这样,这两个相邻的地址标记指示关联的512比特高速缓存线中的哪一个存储1K比特数据块的上半部分(Bit[1023]-Bit[512]),以及指示关联的512比特高速缓存线中的哪一个存储1K比特数据块的下半部分(Bit[511]-Bit[0])。接下来,控制器117从关联的1K比特高速缓存线抓取请求的数据DATAR(512比特),并返回请求的数据DATAR至纹理单元102。
如上所示,在完成压缩之后,压缩器101能够识别已压缩数据的长度(即,128比特*N)。对应的已压缩数据的长度通过压缩器101也存储于长度高速缓存104中。因此,已压缩数据的长度会指示应从一个1K比特存储空间抓取多少个128比特数据块以用于获得需要的已压缩数据,其中,基于地址ADDR,一个1K比特存储空间可在数据存储器105中找到。如图3所示,解压缩器103参考在长度高速缓存104中的已压缩数据的长度以仅从1K比特存储空间抓取已压缩数据,然后基于已压缩数据执行数据解压缩以产生渲染目标纹理的1K比特数据块。换句话说,由于1K比特存储空间没有全部载入已压缩数据,解压缩器103不需要读取由地址ADDR寻址的所有的1K比特存储空间。
如图2所示,当压缩1K比特(128字节)时,数据存储器105的存储效率仍然很高。此外,与采用较小高速缓存线尺寸(即,本发明的基本高速缓存线尺寸)以仅缓冲请求的渲染目标纹理数据的情况相比,使用较大的高速缓存线尺寸以用于缓冲请求的渲染目标纹理和它的相邻渲染目标纹理数据会使得高速缓存系统具有较低的高速缓存缺失率。若渲染目标纹理的百分比较高,则提出的自适应高速缓存线尺寸设计会具有较高的缺失减少率(missreduction rate)。
标记存储器114可能不具有可替换的两个地址标记(例如,两个相邻的地址标记)。因此,控制器117仅允许存储由解压缩器103重建的部分1K比特渲染目标纹理数据(即,纹理单元102请求的512比特数据块)至数据存储器112。具体地,当检查结果指示标记存储器114不具有可替换的两个地址标记时,流程转至步骤412。这样,基于组/路相关联的方案,仅替换一个512比特的高速缓存线的对应的地址标记。在1K比特数据块的下半部分(Bit[511]-Bit[0])包括请求的512比特纹理数据的情况下,控制器117仅替换关联的512比特高速缓存线的一个地址标记,并放弃1K比特数据块的上半部分(Bit[1023]-Bit[512]),以使得通过数据存储器105和解压缩器103得到的1K比特数据块的下半部分(Bit[511]-Bit[0])被存储于关联的512比特高速缓存线中。在1K比特数据块的上半部分(Bit[1023]-Bit[512])包括请求的512比特纹理数据的情况下,控制器117仅替换关联的512比特高速缓存线的一个地址标记,并放弃1K比特数据块的下半部分(Bit[511]-Bit[0]),以使得通过数据存储器105和解压缩器103得到1K比特数据块的上半部分(Bit[1023]-Bit[512])被存储于关联的512比特高速缓存线中。接下来,控制器117从关联的512比特高速缓存线抓取请求的数据DATAR(512比特),并返回请求的数据DATAR至纹理单元102。
根据本发明的一个实施方式,第一地址标记115可为奇地址标记(即,奇标记),以及第二地址标记116可为偶地址标记(即,偶标记),其中一个奇数标记和一个偶数标记来自标记存储器114中的一对相邻地址标记。当请求的数据DATAR的地址ADDR的特定的地址比特(512比特)具有第一逻辑值(例如,“1”)时,选择并存取奇地址标记(例如,第一地址标记115)中的一个;以及当请求的数据DATAR的地址ADDR的特定的地址比特(512比特)具有第二逻辑值(例如,“0”)时,选择并存取偶地址标记(例如,第二地址标记116)中的一个。在上述实施方式中,基本的高速缓存线尺寸为64字节(512比特),以及请求的数据DATAR的地址ADDR的地址位Addr[6]可用于确定是使用奇数标记还是偶数标记。
图5为根据本发明一实施方式的在高速缓存器中使用提出的动态高速缓存线尺寸设计的示意图。在此实施方式中,在步骤410中的替换的两个地址标记被要求为在标记存储器114中的相邻的地址标记,因此,简化设计的复杂性。如图5所示,由于地址位Addr[6]==0,标记值TAGA、标记值TAGC、标记值TAGL中的每一个被储存至一个偶数标记116中(步骤406);以及由于地址位Addr[6]==1,标记值TAGB、标记值TAGD、标记值TAGK中的每一个被存储至一个奇数标记115中(步骤406)。此外,与存储标记值TAGA、标记值TAGB、标记值TAGC、标记值TAGD、标记值TAGL、标记值TAGK的标记相关联的512比特高速缓存线分别用于缓冲非渲染目标纹理的512比特数据块(例如,地址A的数据、地址B的数据、地址C的数据、地址D的数据、地址L的数据、地址K的数据)。
如图5所示,两个相邻的地址标记,包括一个奇标记和一个偶标记,用于分别存储标记值TAGE和标记值TAGE’(步骤410);与存储标记值TAGE的偶标记相关联的512比特高速缓存线用于缓冲渲染目标纹理的1K比特数据块的下半部分(Bit[511]-Bit[0])(即地址E的数据的下半部分);以及与存储标记值TAGE’的奇标记相关联的512比特高速缓存线用于缓冲同一1K比特数据块的上半部分(Bit[1023]-Bit[512])(即地址E的数据的上半部分)。因此,两个相邻的512比特高速缓存线被结合以形成较大的高速缓存线(即,1K比特高速缓存线)。相似地,两个相邻的地址标记,包括一个奇标记和一个偶标记,用于分别存储标记值TAGM和标记值TAGM’(步骤410);与存储标记值TAGM的偶标记相关联的512比特高速缓存线用于缓冲渲染目标纹理的1K比特数据块的下半部分(Bit[511]-Bit[0])(即地址M的数据的下半部分);以及与存储标记值TAGM’的奇标记相关联的512比特高速缓存线用于缓冲同一1K比特数据块的上半部分(Bit[1023]-Bit[512])(即地址M的数据的上半部分)。两个相邻的地址标记,包括一个奇标记和一个偶标记,用于分别存储标记值TAGN和标记值TAGN’(步骤410);与存储标记值TAGN的偶标记相关联的512比特高速缓存线用于缓冲渲染目标纹理的1K比特数据块的下半部分(Bit[511]-Bit[0])(即地址N的数据的下半部分);以及与存储标记值TAGN’的奇标记相关联的512比特高速缓存线用于缓冲同一1K比特数据块的上半部分(Bit[1023]-Bit[512])(即地址N的数据的上半部分)。
图6为根据本发明另一实施方式的在高速缓存器中使用提出的动态高速缓存线尺寸设计的示意图。图5和图6所示的实施方式的主要不同是,在步骤410中替换的两个地址标记不需要为在标记存储器114中相邻的地址标记。在阅读上述描述之后,本领域技术人员可以理解图6所示的实施方式的细节。为求简洁,省略进一步描述。
虽然本发明已以较佳实施例揭露如上,然而必须了解其并非用以限定本发明。相反,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应当以权利要求书所界定的保护范围为准。

Claims (14)

1.一种存储系统,其特征在于,包括:
数据存储器,具有多个数据存储线;
标记存储器,具有多个地址标记,该多个地址标记中的每一个与分配于该数据存储器中的该多个数据存储线中的一个数据存储线相关联;以及
控制器,耦接于该数据存储器和该标记存储器之间,该控制器设置第一数目的多个地址标记,并配置第一数目的多个数据存储线作为具有第一数据存储线尺寸的第一数据存储线;以及该控制器设置第二数目的多个地址标记,并配置第二数目的多个数据存储线作为具有第二数据存储线尺寸的第二数据存储线,其中该第二数据存储线尺寸不同于该第一数据存储线尺寸;其中,该第一数据存储线以及该第二数据存储线共存于该数据存储器中。
2.根据权利要求1所述的存储系统,其特征在于,
该第一数目等于一,以及该第二数目等于二。
3.根据权利要求1所述的存储系统,其特征在于,
配置于该数据存储器中的该第二数据存储线存储渲染目标纹理,以及配置于该数据存储器中的该第一数据存储线存储非渲染目标纹理。
4.根据权利要求3所述的存储系统,其特征在于,
该第二数据存储线尺寸大于该第一数据存储线尺寸。
5.根据权利要求1所述的存储系统,其特征在于,
该控制器控制该数据存储器和该标记存储器以动态地设置数据存储线尺寸。
6.根据权利要求1所述的存储系统,其特征在于,
该第二数目大于一,该多个地址标记与结合以作为该第二数据存储线的该多个数据存储线相关联,以及该多个地址标记为在该标记存储器中相邻的多个地址标记。
7.根据权利要求1所述的存储系统,其特征在于,
该多个地址标记包括多个奇地址标记和多个偶地址标记;该多个偶地址标记中的一个偶地址标记和该多个奇地址标记中的一个奇地址标记来自该标记存储器中的一对相邻的地址标记;当请求的数据的地址的特定地址比特具有第一逻辑值时,选择并存取该多个奇地址标记中的一个奇地址标记;以及当该请求的数据的地址的该特定地址比特具有第二逻辑值时,选择并存取该多个偶地址标记中的一个偶地址标记。
8.根据权利要求1所述的存储系统,其特征在于,
该第二数目大于一,以及该控制器进一步检查该标记存储器是否具有可替换的该第二数目的多个地址标记;当检查结果指示该标记存储器具有可替换的该第二数目的多个地址标记时,该控制器替换该第二数目的多个地址标记;当该检查结果指示该标记存储器不具有可替换的该第二数目的多个地址标记时,该控制器替换该第一数目的多个地址标记。
9.一种存储系统,其特征在于,包括:
数据存储器;
标记存储器;以及
控制器,耦接于该数据存储器和该标记存储器之间,该控制器设置该标记存储器并配置该数据存储器以分配具有第一数据存储线尺寸的第一数据存储线而用于存储渲染目标纹理,以及控制器设置该标记存储器并配置该数据存储器以分配具有第二数据存储线尺寸的第二数据存储线而用于存储非渲染目标纹理,其中该第二数据存储线尺寸不同于该第一数据存储线尺寸;其中,该第一数据存储线以及该第二数据存储线共存于该数据存储器中。
10.根据权利要求9所述的存储系统,其特征在于,
该第一数据存储线尺寸大于该第二数据存储线尺寸。
11.根据权利要求9所述的存储系统,其特征在于,
该控制器控制该数据存储器和该标记存储器以动态地设置数据存储线尺寸。
12.根据权利要求9所述的存储系统,其特征在于,
该数据存储器,具有多个数据存储线;
该标记存储器,具有多个地址标记,该多个地址标记中的每一个与分配于该数据存储器中的该多个数据存储线中的一个数据存储线相关联;
在该数据存储器中的该多个数据存储线被结合以作为该第一数据存储线;以及与该多个数据存储线关联的地址标记为在该标记存储器中的相邻地址标记。
13.根据权利要求9所述的存储系统,其特征在于,
该标记存储器包括多个奇地址标记和多个偶地址标记;该多个偶地址标记中的一个偶地址标记和该多个奇地址标记中的一个奇地址标记来自该标记存储器中的一对相邻的地址标记;当请求的数据的地址的特定地址比特具有第一逻辑值时,选择并存取该多个奇地址标记中的一个奇地址标记;以及当该请求的数据的地址的该特定地址比特具有第二逻辑值时,选择并存取该多个偶地址标记中的一个偶地址标记。
14.根据权利要求9所述的存储系统,其特征在于,
当该渲染目标纹理要被存储至该数据存储器中时,该控制器进一步检查该标记存储器是否具有可替换的多个地址标记;当检查结果指示该标记存储器具有可替换的该多个地址标记时,该控制器分配具有该第一数据存储线尺寸的该第一数据存储线以用于存储该渲染目标纹理;以及当该检查结果指示该标记存储器不具有可替换的该多个地址标记时,该控制器分配具有该第二数据存储线尺寸的第三数据存储线以用于存储该渲染目标纹理。
CN201410106497.5A 2013-12-12 2014-03-20 存储系统 Active CN104714903B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/103,865 2013-12-12
US14/103,865 US9430394B2 (en) 2013-12-12 2013-12-12 Storage system having data storage lines with different data storage line sizes

Publications (2)

Publication Number Publication Date
CN104714903A CN104714903A (zh) 2015-06-17
CN104714903B true CN104714903B (zh) 2018-03-27

Family

ID=49958309

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410106497.5A Active CN104714903B (zh) 2013-12-12 2014-03-20 存储系统

Country Status (3)

Country Link
US (1) US9430394B2 (zh)
EP (1) EP2884395A3 (zh)
CN (1) CN104714903B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104809076B (zh) * 2014-01-23 2018-02-06 华为技术有限公司 Cache的管理方法及装置
US9612833B2 (en) * 2014-02-28 2017-04-04 Intel Corporation Handling compressed data over distributed cache fabric
GB2564466B (en) 2017-07-13 2020-01-08 Advanced Risc Mach Ltd Storing YUV texture data in a cache in a graphics processing system
US10726519B2 (en) * 2017-09-25 2020-07-28 Arm Limited Cache arrangement for graphics processing systems
CN111488116B (zh) * 2019-01-29 2022-11-22 中科寒武纪科技股份有限公司 运算方法、装置及相关产品
US11625332B2 (en) 2020-01-14 2023-04-11 Arm Limited Cache miss handling for read operations in data processing systems
US11789867B2 (en) 2020-01-14 2023-10-17 Arm Limited Cache arrangement for data processing systems
US11205243B2 (en) 2020-01-14 2021-12-21 Arm Limited Data processing systems
US11379380B2 (en) * 2020-05-07 2022-07-05 Nxp Usa, Inc. Systems and methods for managing cache replacement

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1459058A (zh) * 2001-03-13 2003-11-26 皇家菲利浦电子有限公司 基于指令基址寄存器的高速缓存路线预测
CN1816796A (zh) * 2003-07-02 2006-08-09 皇家飞利浦电子股份有限公司 具有多个移位寄存器功能性的单个存储器

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6825848B1 (en) * 1999-09-17 2004-11-30 S3 Graphics Co., Ltd. Synchronized two-level graphics processing cache
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US20020188805A1 (en) * 2001-06-05 2002-12-12 Sailesh Kottapalli Mechanism for implementing cache line fills
US20030001857A1 (en) * 2001-06-29 2003-01-02 Doyle Peter L. Method and apparatus for determining logical texture coordinate bindings
US7206889B2 (en) 2005-03-22 2007-04-17 Hewlett-Packard Development Company, L.P. Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes
US7356650B1 (en) * 2005-06-17 2008-04-08 Unisys Corporation Cache apparatus and method for accesses lacking locality
US7822926B2 (en) 2007-04-16 2010-10-26 Arm Limited Cache memory
US8514237B2 (en) * 2007-05-22 2013-08-20 International Business Machines Corporation Two dimensional memory caching apparatus for high definition video
US7999819B2 (en) * 2007-11-20 2011-08-16 Via Technologies, Inc. Systems and methods for managing texture descriptors in a shared texture engine
US9214007B2 (en) * 2008-01-25 2015-12-15 Via Technologies, Inc. Graphics processor having unified cache system
JP2010102623A (ja) * 2008-10-27 2010-05-06 Nec Electronics Corp キャッシュメモリ及びその制御方法
US8266409B2 (en) 2009-03-03 2012-09-11 Qualcomm Incorporated Configurable cache and method to configure same
US8185693B2 (en) * 2009-03-17 2012-05-22 Microsoft Corporation Cache-line aware collection for runtime environments
CN103380417B (zh) 2011-02-18 2016-08-17 英特尔公司(特拉华州公司) 用于从存储器请求所存储的数据的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1459058A (zh) * 2001-03-13 2003-11-26 皇家菲利浦电子有限公司 基于指令基址寄存器的高速缓存路线预测
CN1816796A (zh) * 2003-07-02 2006-08-09 皇家飞利浦电子股份有限公司 具有多个移位寄存器功能性的单个存储器

Also Published As

Publication number Publication date
EP2884395A3 (en) 2015-10-07
US20150169459A1 (en) 2015-06-18
EP2884395A2 (en) 2015-06-17
CN104714903A (zh) 2015-06-17
US9430394B2 (en) 2016-08-30

Similar Documents

Publication Publication Date Title
CN104714903B (zh) 存储系统
CN104461393B (zh) 一种闪存存储器的混合映射方法
TWI238935B (en) Reconfigurable cache controller for nonuniform memory access computer systems
KR102584018B1 (ko) 압축된 데이터 백그라운드를 캐싱하는 장치, 시스템 및 방법
US10915475B2 (en) Methods and apparatus for variable size logical page management based on hot and cold data
US9760492B2 (en) Method for controlling access of cache through using programmable hashing address and related cache controller
CN104794070B (zh) 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN103608782B (zh) Lsb页面和msb页面中的选择性数据存储
US20170364446A1 (en) Compression and caching for logical-to-physical storage address mapping tables
US11537531B2 (en) Cache memory that supports tagless addressing
CN102760101B (zh) 一种基于ssd 的缓存管理方法及系统
CN107220187B (zh) 一种缓存管理方法、装置及现场可编程门阵列
US20110231598A1 (en) Memory system and controller
US20150378948A1 (en) Auxiliary Interface for Non-Volatile Memory System
US9507705B2 (en) Write cache sorting
US20100064095A1 (en) Flash memory system and operation method
CN107423229B (zh) 一种面向页级ftl的缓冲区改进方法
CN104169892A (zh) 并发访问的组相联溢出缓存
US20140331024A1 (en) Method of Dynamically Adjusting Mapping Manner in Non-Volatile Memory and Non-Volatile Storage Device Using the Same
CN110334035A (zh) 数据储存系统的控制单元以及逻辑至物理映射表更新方法
CN107589908A (zh) 一种基于固态盘缓存系统中非对齐更新数据的合并方法
CN108121670A (zh) 一种减少固态硬盘元数据回刷频率的映射方法
US20210056030A1 (en) Multi-level system memory with near memory capable of storing compressed cache lines
US10970208B2 (en) Memory system and operating method thereof
JP2021043837A (ja) メモリシステム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant