CN112083875B - 用于在存储系统中减少读取端口并加速解压缩的方法 - Google Patents

用于在存储系统中减少读取端口并加速解压缩的方法 Download PDF

Info

Publication number
CN112083875B
CN112083875B CN202010347008.0A CN202010347008A CN112083875B CN 112083875 B CN112083875 B CN 112083875B CN 202010347008 A CN202010347008 A CN 202010347008A CN 112083875 B CN112083875 B CN 112083875B
Authority
CN
China
Prior art keywords
memory
data
decompressor
receiver
read request
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
CN202010347008.0A
Other languages
English (en)
Other versions
CN112083875A (zh
Inventor
胡扎伊法·S·金瓦拉
拉姆达斯·P·卡沙尔
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
Priority claimed from US16/539,842 external-priority patent/US11048413B2/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN112083875A publication Critical patent/CN112083875A/zh
Application granted granted Critical
Publication of CN112083875B publication Critical patent/CN112083875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Memory System (AREA)

Abstract

一种解压缩系统包括:第一存储器,该第一存储器包括被配置为从解压缩器接收解压缩的数据的第一写入端口和被配置为接收反向引用读取请求的第一读取端口,该第一存储器被配置为:响应于在第一读取端口处接收到反向引用读取请求,将解压缩的数据输出到解压缩器;以及第二存储器,该第二存储器包括电耦接至第一写入端口并被配置为接收解压缩的数据的第二写入端口,该第二存储器被配置为缓存解压缩的数据以由接收机取回。

Description

用于在存储系统中减少读取端口并加速解压缩的方法
技术领域
本公开的实施例的方面大体上涉及存储器解压缩系统。
背景技术
当前,计算领域似乎总体上正在经历数据的增长。例如,在诸如视频处理之类的某些应用中,所生成的数据似乎正以指数速率增长。在一些情况下,这种数据增长速率已经超过了存储系统容量的增长。因此,许多计算系统以压缩形式存储数据。由于可能需要以未压缩形式消费存储的数据,所以在可以对存储的数据进行进一步处理之前需要对存储的数据进行解压缩。
发明内容
本公开大体上涉及解压缩系统,所述解压缩系统能够通过与具有一个读取端口和一个写入端口的双端口存储器(即,字典存储器)并行地维护单独的存储器(即,解压缩写入缓存器),在解压缩操作期间提供全性能(full-performance)读取。
根据本公开的一些实施例,提供了一种解压缩系统,所述解压缩系统包括:第一存储器,所述第一存储器包括被配置为从解压缩器接收解压缩的数据的第一写入端口以及被配置为接收反向引用读取请求的第一读取端口,所述第一存储器被配置为:响应于在所述第一读取端口处接收到所述反向引用读取请求,将所述解压缩的数据输出到所述解压缩器;以及第二存储器,所述第二存储器包括电耦接至第一写入端口并被配置为接收解压缩的数据的第二写入端口,所述第二存储器被配置为缓存所述解压缩的数据以由接收机取回。
在一些实施例中,第二存储器还包括:第二读取端口,所述第二读取端口被配置为接收未压缩数据读出请求,并且第二存储器被配置为:响应于所述未压缩数据读出请求,将所述解压缩的数据提供给所述接收机。
在一些实施例中,解压缩系统还包括:控制器,所述制器被配置为生成所述反向引用读取请求和所述未压缩数据读出请求。
在一些实施例中,所述第一存储器的输出端耦接至所述解压缩器,并且所述第二存储器的输出端耦接至所述接收机。
在一些实施例中,所述第一存储器被配置为独立于所述第二存储器进行操作。
在一些实施例中,所述第一存储器包括字典存储器,所述字典存储器被配置为:存储来自对由所述解压缩器所解压缩的存储数据执行的压缩过程的字典值,并且所述第二存储器包括未压缩镜像写入缓存器。
在一些实施例中,所述第二存储器的存储容量小于所述第一存储器的存储容量。
在一些实施例中,所述第二存储器的存储容量基于所述接收机的输入数据速率与所述解压缩器的输出数据速率之间的数据速率失配。
根据本公开的一些实施例,提供了一种存储系统,所述存储系统包括:接收机;压缩数据存储器,所述压缩数据存储器被配置为存储压缩的数据;解压缩器,所述解压缩器被配置为从所述压缩数据存储器取回所述压缩的数据并且响应于来自所述接收机的请求,生成解压缩的数据;第一存储器,所述第一存储器包括被配置为从解压缩器接收解压缩的数据的第一写入端口以及被配置为接收反向引用读取请求的第一读取端口,所述第一存储器被配置为:响应于在第一读取端口处接收到反向引用读取请求,将解压缩的数据输出到解压缩器;以及第二存储器,所述第二存储器包括电耦接至第一写入端口并被配置为接收解压缩的数据的第二写入端口,所述第二存储器被配置为缓存解压缩的数据以由接收机取回。
在一些实施例中,第二存储器还包括:第二读取端口,所述第二读取端口被配置为接收未压缩数据读出请求,并且第二存储器被配置为:响应于所述未压缩数据读出请求,将所述解压缩的数据提供给所述接收机。
在一些实施例中,所述存储系统还包括:控制器,所述控制器被配置为生成所述反向引用读取请求和所述未压缩数据读出请求,所述控制器包括可重配置处理器。
在一些实施例中,所述第一存储器的输出端耦接至所述解压缩器,并且所述第二存储器的输出端耦接至所述接收机。
在一些实施例中,所述第一存储器被配置为独立于所述第二存储器进行操作。
在一些实施例中,第一存储器包括字典存储器,所述字典存储器被配置为存储来自对存储在所述压缩数据存储器处的所述压缩的数据执行的压缩过程的字典值,并且所述第二存储器包括未压缩镜像写入缓存器。
在一些实施例中,所述第二存储器的存储容量小于所述第一存储器的存储容量。
在一些实施例中,所述第二存储器的存储容量基于所述接收机的输入数据速率与所述解压缩器的输出数据速率之间的数据速率失配。
在一些实施例中,所述解压缩器被配置为基于存储在所述第一存储器处的解压缩的数据来解压缩来自所述压缩数据存储器的后续的压缩的数据。
根据本公开的一些实施例,提供了一种在存储系统中对存储的数据进行解压缩的方法,所述方法包括:指示解压缩器对压缩数据存储器处的存储的数据进行解压缩,以生成解压缩的数据,所述存储的数据具有压缩的形式;将解压缩的数据写入第一存储器和第二存储器;向所述第一存储器发送反向引用读取请求,所述第一存储器被配置为:响应于所述反向引用读取请求,将所述解压缩的数据输出到所述解压缩器;以及向第二存储器发送未压缩数据读出请求,所述第二存储器被配置为:响应于所述未压缩数据读出请求,将所述解压缩的数据输出到接收机。
在一些实施例中,所述第一存储器的输出端耦接至所述解压缩器,并且所述第二存储器的输出端耦接至所述接收机。
在一些实施例中,所述第一存储器被配置为独立于所述第二存储器进行操作。
附图说明
附图不一定按比例绘制,并且在附图中出于说明性的目的,相似结构或功能的要素通常由相似的附图标记表示。附图仅旨在促进本文描述的各种实施例的描述。附图没有描述本文公开的教导的每个方面,并且不限制权利要求的范围。附图与说明书一起示出本公开的示例实施例,并且与说明书一起用于解释本公开的原理。
图1示出了说明根据本公开的一些示例实施例的存储系统的框图。
图2示出了说明根据本公开的一些示例实施例的存储器解压缩系统的框图。
图3示出了说明根据本公开的一些示例实施例的对比解压缩系统的框图。
图4示出了说明根据本公开的一些示例实施例的用于在存储系统中对存储的数据进行解压缩的示例操作的流程图。
具体实施方式
下文阐述的详细描述旨在作为根据本公开提供的用于解压缩的系统和方法的示例实施例的描述,并且并非旨在代表可以构造或利用本公开的唯一形式。该描述结合所示出的实施例阐述了本公开的特征。然而,应当理解,相同或等同的功能和结构可以通过不同的实施例来实现,这些不同的实施例也旨在被包含在本公开的范围之内。如本文其他地方所指示的,相似的附图标记旨在指示相似的要素或特征。
由于数据量的持续增长,希望存储系统以压缩的形式存储数据。然而,由于数据生成方和数据消费方以未压缩的形式产生和消费数据,所以存储解决方案越来越依赖于压缩和解压缩技术。然而,压缩和解压缩可能对依赖于这种存储形式的系统提出更多的计算要求,并且可能会增加功耗并引入延迟(例如,数据取回延迟)。
本公开大体上涉及解压缩系统和存储系统,所述解压缩系统和存储系统在存储器解压缩期间提供相对高吞吐量和低延迟的读取能力以及更低的功耗。
图1示出了说明根据本公开的一些示例实施例的存储系统10的框图。
参考图1,存储系统10包括发射机20、压缩系统30、存储器(例如,压缩数据存储器)40、解压缩系统50和接收机60。发射机20和接收机60可以以未压缩的形式处理数据。然而,在一些示例中,可能在发射机20和接收机60之间传输大量数据。因此,由于用于存储这些数据的存储器40的有限容量,因此存储系统10可以在将数据存储在存储器40处之前压缩数据。之后,当接收机60发出针对存储的信息的读取请求时,存储系统10可以对存储的数据进行解压缩。
在一些示例中,存储系统10可以是图形处理系统,发射机20可以包括图像帧缓存器,来自发射机20的数据可以包括图形处理系统正在处理的图像数据,存储器40可以包括图形处理单元的片上L2高速缓存,并且接收机60可以包括诸如纹理单元之类的另一处理单元。然而,本公开的实施例不限于此。例如,在存储设备中,发射机20和接收机60可以表示主机进程(例如,主机计算机的用户进程或系统进程),并且存储器40可以是非易失性存储设备,例如,固态驱动器(SSD)、硬盘驱动器(HDD)等。在一些示例中,接收机60可以包括外部存储设备。
压缩系统30可以对从发射机20接收的数据块(例如,纹理块)执行压缩(例如,固定或可变速率压缩)。压缩系统30可以通过以下操作来执行压缩:分析数据块;针对每个单独的数据块,独立地确定相关联的数据类型(例如,扁平数据(flat data)类型、平面数据(planar data)类型、小波数据类型、样条数据类型等)和相关联的压缩类型;以及根据相关联的压缩类型对每个数据块进行压缩。然后,将该压缩的数据存储在存储器40中。当接收机60请求与所存储的压缩的数据相对应的未压缩的数据时,解压缩系统50使用在压缩期间由压缩系统30生成的元数据和字典值来对所存储的压缩的数据进行解压缩,并将未压缩的数据提供给接收机60。
图2示出了根据本公开的一些示例实施例的说明解压缩系统50的框图。图3示出了根据本公开的一些示例实施例的说明对比解压缩系统50-1的框图。
参考图2,解压缩系统50可以包括解压缩器100、控制器(例如,解压缩控制器)110、第一存储器(例如,字典存储器)120和第二存储器(例如,未压缩镜像写入缓存器)130。第一存储器120可以与第二存储器130分离(例如,作为独立的存储器管芯),并且可以被配置为独立于第二存储器130进行操作(例如,处理读取请求和写入请求)。第一存储器120和第二存储器130中的每一个可以具有单个写入端口和单个读取端口,通过该单个读取端口来(例如,从解压缩器100)接收数据和请求。第一存储器120的输出端可以耦接至解压缩器100,并且可以不耦接至接收机60。此外,第二存储器130的输出端可以耦接至接收机60,并且可以不耦接至解压缩器100。第一存储器120和第二存储器130的读取操作和写入操作可以由控制器110控制。控制器110可以包括可重配置处理器,例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等。
在一些实施例中,第一存储器120可以包括字典存储器,该字典存储器存储来自由压缩系统30执行的压缩过程的字典值。字典值可以表示压缩的数据中的压缩模式(pattem),该压缩模式可以由解压缩器用于对存储的数据进行解压缩。换言之,压缩过程定位在输入数据集中重复的模式或数值串。检测到的这些重复模式在压缩的输出中被编码,以具有检测到的模式的一个引用副本,然后针对输入数据集中所有后续出现的该模式都引用该副本。根据一些示例,字典值可以包括:用于重复的数据块的压缩的数据的单个实例、表示像素数据块的一个或多个值(例如,表示扁平像素块的单个值)、它们的组合等。例如,当在文本输入数据集中出现字符串“大狗”5次时,针对该输入的压缩的输出可以包含针对第一个实例所原样复制的“大狗”,并且其余四个实例可以被编码为对所复制的“大狗”的引用。因此,在输入数据集中出现的五次“大狗”模式将被减少为一个“大狗”模式和四个引用指针,因此实现了压缩的输出大小相对于输入数据集大小的大幅减小。换言之,通过根据反向引用指针对输入数据集中的重复模式进行编码,压缩器可以实现大的压缩率。第一存储器120还可以存储由解压缩器100生成的解压缩的数据,解压缩器100可以依赖所述解压缩的数据来生成后续的解压缩的数据。因此,在一些实施例中,第一存储器120的输出端可以通过反馈线126耦接至解压缩器100。
根据一些实施例,第二存储器130可以用作中转缓存器,该中转缓存器可以暂时存储由解压缩器100生成的解压缩的数据,以便以后由接收机60取回。第二存储器130的存储容量可以小于第一存储器120的存储容量,因为第二存储器130可以不存储任何字典值,并且可以被配置为存储(例如,仅存储)最近解压缩的数据。因此,第二存储器130的容量可以等于被传输到接收机60的数据量。在一些示例中,第二存储器的容量可以由接收机60的输入数据速率与解压缩器100的输出数据速率之间的数据速率失配来确定。第二存储器130的容量可以取决于与特定设计实现相关联的突发缓存的量。例如,接收机60可以以比解压缩器100的吞吐量更慢的速率来处理数据。在这样的示例中,解压缩系统50可以产生数据输出并将其缓存在第二存储器130中,直到接收机60准备读取该数据为止。因此,解压缩系统50可以以第二存储器130的形式实现一定量的突发缓存,其中即使数据的消费方(即,接收机)可能以更慢的速度进行操作,第二存储器130也允许解压缩系统50继续其操作。在此,第二存储器130的固定大小可以使其独立于与压缩方案相关联的块大小。块大小可以帮助减少针对解压缩系统的整体内存资源使用率。通过将第一存储器120形式的字典储存设备与解压缩系统50的输出端解耦,第二存储器130还改善了发送给该数据的消费方(即,接收机60)的未压缩的输出数据的延迟。
响应于来自接收机60的数据请求,解压缩器100对存储在存储器40中的压缩的数据进行解压缩。因此,解压缩器100可以将解压缩的数据发送到第一存储器120和第二存储器130两者。通过这样做,控制器110可以通过对包括在压缩的数据中的元数据进行解码来解释存储在存储器40处的压缩的数据。压缩的数据的元数据可以指示如何生成或产生后续的解压缩的输出数据。在一些示例中,这可能涉及将模式直接从压缩的数据复制到解压缩的数据或从以前的解压缩的数据输出复制某个模式。在第一个示例中,元数据可以指示将输入数据集中的当前的8个字节照原样复制到未压缩的输出。在第二个示例中,元数据可以指示从先前未压缩的数据中的特定位置复制16个字节。在第一个示例中,控制器110可以针对第一存储器120和第二存储器130执行直接写入。在第二个示例中,控制器110可以首先读取先前解压缩的数据中的适当位置(例如,通过反向引用操作),然后将该数据写入第一存储器120和第二存储器130两者中的适当位置。可以通过存储器120和存储器130各自的写入端口122和写入端口132并发接收(例如,同时接收)该解压缩的数据,存储器120和存储器130各自的写入端口122和写入端口132电耦接(例如,连接)在一起。根据一些实施例,控制器110控制并发起将未压缩的数据写入存储器120和存储器130两者。
在一些示例中,当对存储在存储器40上的数据进行解压缩时,解压缩器100可以使用先前解压缩的数据作为引用。根据一些实施例,控制器110可以向第一存储器120的读取端口122发送反向引用读取信号(也被称为反向引用读取请求),其发信号通知第一存储器120将最新的解压缩的数据反向输出到解压缩器100以进行反向引用。此外,控制器110可以维护第二存储器130,并且可以将未压缩数据读出请求发送到读取端口134,以指示第二存储器130将所缓存的解压缩的数据释放(例如,输出)到接收机60。此外,第二存储器130的数据取回操作可以与第一存储器120的反向引用操作解耦合,并且在对存储的数据进行解压缩时,可以使解压缩的数据可以由请求该解压缩的数据的接收机60得到。
在一些示例中,用于取回未压缩的数据并发送到接收机60的过程可以不访问第一存储器120;因此读取端口124的带宽可以专用于从反向引用数据(例如,存储在第一存储器120处的未压缩的数据)读取的解压缩过程。
通过将反向引用读取请求和未压缩数据读出请求发送到两个独立存储器的两个单独的读取端口,可以以相对低的确定的延迟来并发(例如,同时)执行反向引用操作和未压缩数据读出操作两者,这可以改善(例如,增加)解压缩系统50的整体解压缩速率。
该技术可以与对比示例(参见图3)进行对比,在对比示例中,两个请求都发送到一个字典存储器120-1的单个读取端口124。在这样的对比示例中,两个请求可以在读取端口处经过仲裁器(例如,复用器)140的仲裁(例如,使用时分复用、循环优先级、严格优先级等),这可能会增加解压缩系统的复杂度。此外,这种仲裁可能引入额外的不确定的延迟,因为一个操作必须在发起另一个操作之前完成。这可能会增加设备的计算量并降低整体系统性能。此外,通过利用可以包括双端口存储器(与多端口存储器相对)的第一存储器120和第二存储器130,可以以相对较低的成本实现解压缩系统。另外,使存储器120和存储器130中的每一个执行一项任务(与两项任务相对)可以减少对设备的访问次数、减小功耗、并且提高系统的整体鲁棒性和可靠性。
图4示出了根据本公开的一些示例实施例的说明用于在存储系统中对存储的数据进行解压缩的过程200的示例性操作的流程图。
参考图3,根据一些实施例,当接收机60请求以压缩的形式存储在存储器40中的数据时,控制器110可以指示解压缩器100对存储的数据进行解压缩,以生成解压缩的数据(S202)。然后,控制器110可以经由解压缩器100并发地将解压缩的数据写入第一存储器120和第二存储器130(S204)。在对后续的存储的数据进行解压缩之前,控制器110可以将反向引用读取请求发送到第一存储器120,该反向引用读取请求可以提示第一存储器120将解压缩的数据输出到解压缩器100(S206)。另外,控制器110可以将未压缩数据读出请求发送到第二存储器130,该未压缩数据读出请求可以提示第二存储器130将缓存的解压缩的数据输出到接收机60(S208)。
因此,如上所述,解压缩系统可以减少(例如,最小化)具有未压缩的数据的存储器所需的端口数量。可以不需要从片上字典存储器中读取即可将数据发送到接收机或数据消费方。这减少了读取存储器所需的媒介物的数量,这可以导致更少的读取端口、无需仲裁、以及更低的复杂度。媒介物的减少可以提高整体解压缩速率,减小未压缩的数据的延迟、并且提供确定的延迟。
本文所使用的术语是出于描述特定实施例的目的,并且不旨在限制本发明构思。如本文所使用的,单数形式“一”和“一个”也旨在包括复数形式,除非上下文另外明确指出。还要理解的是,当在本说明书中使用时,术语“包括”、“包含”、“具有”和/或“带有”规定所述特征、整数、步骤、操作、元件和/或组件的存在,但不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组合。如本文中所使用的,术语“和/或”包括相关联的列出项中的一项或多项的任意和所有组合。此外,当描述本发明构思的实施例时,“可以”的使用是指“本发明构思的一个或多个实施例”。此外,术语“示例性”旨在表示示例或说明。
将理解的是,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受到这些术语的限制。这些术语用于将一个元件、组件、区域、层或部分与另一个元件、组件、区域、层或部分区分开。因此,在不脱离本发明构思的精神和范围的情况下,下文讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分。
将理解的是,当元件或层被称为在另一个元件或层“之上”、“与之连接”、“与之耦接”或“与之相邻”时,其可以直接在另一个元件或层之上、与之连接、与之耦接或与之相邻,或者可以存在一个或多个中间元件或中间层。当元件或层被称为“直接在”另一个元件或层“之上”、“直接与之连接”、“直接与之耦接”或“与之相邻”时,不存在中间元件或中间层。
如本文所使用的,术语“使用”和“已使用”可以分别被认为与术语“利用”、“运用”和“已利用”同义。
可以通过利用任何合适的硬件、固件(例如,专用集成电路)、软件或软件、固件和硬件的合适组合来实现根据本文描述的本公开的实施例的解压缩系统和/或任何其他相关设备或组件。例如,独立的多源显示设备的各个组件可以形成在一个集成电路(IC)芯片上或在分离的IC芯片上。此外,压缩系统的各个组件可以实现在柔性印刷电路膜、带载封装(TCP)、印刷电路板(PCB)上,或者形成在同一基板上。此外,压缩系统的各个组件可以是在一个或多个计算设备中的一个或多个处理器上运行的进程或线程,其执行计算机程序指令并与其他系统组件交互以执行本文所述的各种功能。计算机程序指令存储在存储器中,该存储器可以使用诸如随机存取存储器(RAM)之类的标准存储设备实现在计算设备中。计算机程序指令也可以存储在其他非瞬时性计算机可读介质中,例如,CD-ROM、闪存驱动器等。此外,本领域技术人员应该认识到,可以将各种计算设备的功能组合或集成到单个计算设备中,或者可以将特定计算设备的功能分布在一个或多个其他计算设备上,而不背离本公开的示例性实施例的范围。
尽管已经具体参考本公开的说明性实施例详细地描述了本公开,但是本文描述的实施例并不旨在是穷举性的或将本公开的范围限制为所公开的确切形式。本公开所属领域的技术人员将了解,可以在不有意背离在所附权利要求及其等同物中所阐述的本公开的原理和范围的情况下对所描述的装配的结构和操作的方法进行改变和修改。

Claims (20)

1.一种解压缩系统,包括:
第一存储器,所述第一存储器包括:
第一写入端口,被配置为从解压缩器接收解压缩的数据,以及
第一读取端口,被配置为接收反向引用读取请求,
所述第一存储器被配置为:响应于在所述第一读取端口处接收到所述反向引用读取请求,将所述解压缩的数据输出到所述解压缩器;以及
第二存储器,所述第二存储器包括:
第二写入端口,电耦接至所述第一写入端口并被配置为接收所述解压缩的数据,
所述第二存储器被配置为:缓存所述解压缩的数据以由接收机取回。
2.根据权利要求1所述的解压缩系统,其中,所述第二存储器还包括:第二读取端口,被配置为接收未压缩数据读出请求,并且
被配置为:响应于所述未压缩数据读出请求,将所述解压缩的数据提供给所述接收机。
3.根据权利要求2所述的解压缩系统,还包括:
控制器,被配置为生成所述反向引用读取请求和所述未压缩数据读出请求。
4.根据权利要求1所述的解压缩系统,其中,所述第一存储器的输出端耦接至所述解压缩器,并且
其中,所述第二存储器的输出端耦接至所述接收机。
5.根据权利要求1所述的解压缩系统,其中,所述第一存储器被配置为独立于所述第二存储器进行操作。
6.根据权利要求1所述的解压缩系统,其中,所述第一存储器包括字典存储器,所述字典存储器被配置为存储来自对由所述解压缩器所解压缩的存储数据执行的压缩过程的字典值,并且所述第二存储器包括未压缩镜像写入缓存器。
7.根据权利要求1所述的解压缩系统,其中,所述第二存储器的存储容量小于所述第一存储器的存储容量。
8.根据权利要求7所述的解压缩系统,其中,所述第二存储器的存储容量基于所述接收机的输入数据速率与所述解压缩器的输出数据速率之间的数据速率失配。
9.一种存储系统,包括:
接收机;
压缩数据存储器,被配置为存储压缩的数据;
解压缩器,被配置为从所述压缩数据存储器取回所述压缩的数据并且响应于来自所述接收机的请求,生成解压缩的数据;
第一存储器,所述第一存储器包括:
第一写入端口,被配置为从所述解压缩器接收所述解压缩的数据;以及
第一读取端口,被配置为接收反向引用读取请求,
所述第一存储器被配置为:响应于在所述第一读取端口处接收到所述反向引用读取请求,将所述解压缩的数据输出到所述解压缩器;以及
第二存储器,所述第二存储器包括:
第二写入端口,电耦接至所述第一写入端口并被配置为接收所述解压缩的数据,
所述第二存储器被配置为缓存所述解压缩的数据以由所述接收机取回。
10.根据权利要求9所述的存储系统,其中,所述第二存储器还包括:第二读取端口,被配置为接收未压缩数据读出请求,并且
被配置为:响应于所述未压缩数据读出请求,将所述解压缩的数据提供给所述接收机。
11.根据权利要求10所述的存储系统,还包括:
控制器,被配置为生成所述反向引用读取请求和所述未压缩数据读出请求,
所述控制器包括可重配置处理器。
12.根据权利要求10所述的存储系统,其中,所述第一存储器的输出端耦接至所述解压缩器,并且
其中,所述第二存储器的输出端耦接至所述接收机。
13.根据权利要求10所述的存储系统,其中,所述第一存储器被配置为独立于所述第二存储器进行操作。
14.根据权利要求10所述的存储系统,其中,所述第一存储器包括字典存储器,所述字典存储器被配置为存储来自对存储在所述压缩数据存储器处的所述压缩的数据执行的压缩过程的字典值,并且所述第二存储器包括未压缩镜像写入缓存器。
15.根据权利要求10所述的存储系统,其中,所述第二存储器的存储容量小于所述第一存储器的存储容量。
16.根据权利要求15所述的存储系统,其中,所述第二存储器的存储容量基于所述接收机的输入数据速率与所述解压缩器的输出数据速率之间的数据速率失配。
17.根据权利要求10所述的存储系统,其中,所述解压缩器被配置为基于存储在所述第一存储器处的所述解压缩的数据对来自所述压缩数据存储器的后续的压缩的数据进行解压缩。
18.一种在存储系统中对存储的数据进行解压缩的方法,所述方法包括:
指示解压缩器对压缩数据存储器处的存储的数据进行解压缩,以生成解压缩的数据,
所述存储的数据具有压缩的形式;
将所述解压缩的数据写入第一存储器和第二存储器;
向所述第一存储器发送反向引用读取请求,
所述第一存储器被配置为:响应于所述反向引用读取请求,将所述解压缩的数据输出到所述解压缩器;以及
向所述第二存储器发送未压缩数据读出请求,
所述第二存储器被配置为:响应于所述未压缩数据读出请求,将所述解压缩的数据输出到接收机。
19.根据权利要求18所述的方法,其中,所述第一存储器的输出端耦接至所述解压缩器,并且
其中,所述第二存储器的输出端耦接至所述接收机。
20.根据权利要求18所述的方法,其中,所述第一存储器被配置为独立于所述第二存储器进行操作。
CN202010347008.0A 2019-06-12 2020-04-27 用于在存储系统中减少读取端口并加速解压缩的方法 Active CN112083875B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962860619P 2019-06-12 2019-06-12
US62/860,619 2019-06-12
US16/539,842 US11048413B2 (en) 2019-06-12 2019-08-13 Method for reducing read ports and accelerating decompression in memory systems
US16/539,842 2019-08-13

Publications (2)

Publication Number Publication Date
CN112083875A CN112083875A (zh) 2020-12-15
CN112083875B true CN112083875B (zh) 2022-09-30

Family

ID=73735931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010347008.0A Active CN112083875B (zh) 2019-06-12 2020-04-27 用于在存储系统中减少读取端口并加速解压缩的方法

Country Status (2)

Country Link
JP (1) JP7481167B2 (zh)
CN (1) CN112083875B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888777A (zh) * 2012-12-20 2014-06-25 株式会社日立信息通信工程 运动图像压缩解压缩装置
CN104579356A (zh) * 2013-10-21 2015-04-29 国际商业机器公司 在存在重现的霍夫曼树的情况下加速解压缩的方法和系统
CN107027036A (zh) * 2017-05-12 2017-08-08 郑州云海信息技术有限公司 一种fpga异构加速平台的解压缩方法、装置及系统
CN107250991A (zh) * 2015-02-13 2017-10-13 谷歌公司 透明硬件辅助存储器解压缩
CN108122189A (zh) * 2016-11-29 2018-06-05 三星电子株式会社 硬件中的顶点属性压缩和解压缩
TW201919399A (zh) * 2017-10-31 2019-05-16 美商谷歌有限責任公司 視頻訊框編解碼器架構

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000278139A (ja) 1999-03-19 2000-10-06 Asahi Kasei Microsystems Kk 圧縮データストリーム復元装置
WO2003102788A1 (en) * 2002-05-13 2003-12-11 Trek 2000 International Ltd. System and apparatus for compressing and decompressing data stored to a portable data storage device
JP4629592B2 (ja) 2006-02-14 2011-02-09 株式会社日立製作所 多重伝送システム
JP5196239B2 (ja) 2008-03-05 2013-05-15 日本電気株式会社 情報処理装置及び方法
JP2016129307A (ja) 2015-01-09 2016-07-14 株式会社日立製作所 通信システム、制御サーバおよび制御方法
US9792044B2 (en) 2016-02-12 2017-10-17 Oracle International Corporation Decompression history buffer read/write pipelines
US9823854B2 (en) * 2016-03-18 2017-11-21 Qualcomm Incorporated Priority-based access of compressed memory lines in memory in a processor-based system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888777A (zh) * 2012-12-20 2014-06-25 株式会社日立信息通信工程 运动图像压缩解压缩装置
CN104579356A (zh) * 2013-10-21 2015-04-29 国际商业机器公司 在存在重现的霍夫曼树的情况下加速解压缩的方法和系统
CN107250991A (zh) * 2015-02-13 2017-10-13 谷歌公司 透明硬件辅助存储器解压缩
CN108122189A (zh) * 2016-11-29 2018-06-05 三星电子株式会社 硬件中的顶点属性压缩和解压缩
CN107027036A (zh) * 2017-05-12 2017-08-08 郑州云海信息技术有限公司 一种fpga异构加速平台的解压缩方法、装置及系统
TW201919399A (zh) * 2017-10-31 2019-05-16 美商谷歌有限責任公司 視頻訊框編解碼器架構

Also Published As

Publication number Publication date
CN112083875A (zh) 2020-12-15
JP2020201948A (ja) 2020-12-17
JP7481167B2 (ja) 2024-05-10

Similar Documents

Publication Publication Date Title
JP7421036B2 (ja) ロスレスデータ圧縮
US9720841B2 (en) Hardware managed compressed cache
KR101687081B1 (ko) 단채널 컨볼루션 레이어를 위한 처리 방법 및 장치, 및 다채널 컨볼루션 레이어를 위한 처리 방법 및 장치
US6883079B1 (en) Method and apparatus for using data compression as a means of increasing buffer bandwidth
US7924183B2 (en) Method and system for reducing required storage during decompression of a compressed file
US9430344B2 (en) Memory system for mirroring data
CN1598876A (zh) 输出多位元影像数据的控制装置、系统与方法
CN108604211B (zh) 用于片上系统中的多区块数据事务的系统和方法
EP3859509A1 (en) Latency and throughput centric reconfigurable storage device
CN112083875B (zh) 用于在存储系统中减少读取端口并加速解压缩的方法
US20090282064A1 (en) On the fly compression and storage device, system and method
KR102531613B1 (ko) 메모리 시스템에서 읽기 포트들을 줄이고 압축 해제를 가속하는 방법
US6829691B2 (en) System for compressing/decompressing data
TWI553552B (zh) 硬體負載調整方法及相關的電子裝置
US11418361B2 (en) Master device, system and method of controlling the same
US8631183B2 (en) Integrated circuit system, and data readout method
US7861073B2 (en) On-chip decompression engine
CN104102594A (zh) 实现图像数据缓存读写控制的系统及方法
US11704271B2 (en) Scalable system-in-package architectures
US20240036817A1 (en) System-on-a-chip including soft float function circuit
US11354038B2 (en) Providing random access to variable-length data
US20220318604A1 (en) Sparse machine learning acceleration
US10965944B2 (en) Dynamic bandwidth voting
US11544196B2 (en) Resource-aware compression
CN109886862B (zh) 一种数据处理的方法及装置

Legal Events

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