CN112445772A - 用于数据压缩和解压缩的装置和方法 - Google Patents
用于数据压缩和解压缩的装置和方法 Download PDFInfo
- Publication number
- CN112445772A CN112445772A CN201910819935.5A CN201910819935A CN112445772A CN 112445772 A CN112445772 A CN 112445772A CN 201910819935 A CN201910819935 A CN 201910819935A CN 112445772 A CN112445772 A CN 112445772A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- position index
- buffer
- index
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 93
- 238000013144 data compression Methods 0.000 title claims abstract description 76
- 230000006837 decompression Effects 0.000 title claims abstract description 44
- 230000015654 memory Effects 0.000 claims abstract description 36
- 238000007906 compression Methods 0.000 claims description 41
- 230000006835 compression Effects 0.000 claims description 40
- 239000000872 buffer Substances 0.000 claims description 37
- 238000013473 artificial intelligence Methods 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 abstract description 22
- 238000013528 artificial neural network Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种数据压缩和解压缩装置以及方法,所述装置和方法用于对神经网络中的传输的数据进行压缩和解压缩。该数据压缩装置包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据发送器包括数据压缩模块。本申请提供的技术方案具有减少数据传输量,降低对传输带宽的需求,提高传输效率的优点。
Description
技术领域
本申请涉及信息处理技术领域,具体涉及用于数据压缩和解压缩的装置和方法。
背景技术
目前,人工神经网络是所有智能方法中最常见的计算模型之一。在进行神经网络各个网络层的运算过程中以及神经网络训练的过程中,存在大量数据的传递交换,需要传递的数据量越大,所需的通信时间往往更多。
然而,现有技术中还没有有效减少传递的数据量,减少通信时间的方案。为了改进性能,有必要采用各种手段来改进神经网络中的数据传输的过程。
发明内容
本申请实施例提供了一种用于数据压缩和解压缩的装置,减少数据传输量,降低对传输带宽的需求,提高传输效率。
第一方面,提供一种数据压缩装置,包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据发送器包括数据压缩模块,其中,所述数据压缩模块被配置用于:
在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据;
确定所述第二数据的第一位置索引;
发送所述第二数据和所述第一位置索引。
第二方面,提供一种数据解压缩装置,包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据接收器包括数据解压缩模块,其中,所述数据解压缩模块被配置用于:
接收第六数据和第三位置索引;以及
按照预定的规则根据所述第三位置索引恢复数据,形成第七数据。
第三方面,提供一种数据压缩方法,包括:在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据;确定所述第二数据的第一位置索引;发送所述第二数据和所述第一位置索引。
第四方面,提供一种数据解压缩方法,包括:接收第三数据和第二位置索引;以及按照预定的规则根据所述第二位置索引恢复数据,形成第四数据。
第五方面,提供一种电子装置,所述电子设备包括根据第一方面所述的数据压缩装置。
第六方面,提供一种电子装置,所述电子设备包括根据第二方面所述的数据解压缩装置。
在芯片间或处理器间传递数据的过程中,片间带宽要小于片内带宽,在本申请的方案中,发射端和接收端分别增加了压缩和解压缩模块,在将数据进行压缩后,减少了数据传输量,降低了对传输带宽的需求,再进行传输,提高传输效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种神经网络构架的结构示意图。
图2提供了根据本申请一个实施例的数据压缩和解压缩的装置的示意图。
图3提供了根据本申请一个实施例的数据发送器的示意图。
图4提供了根据本申请一个实施例的数据接收器的示意图。
图5提供了根据本申请一个实施例的数据压缩方法的示意图。
图6提供了根据本申请一个实施例的数据解压缩方法的示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
参阅图1,图1提供了一种神经网络构架示意图,如图1所示,神经网络构架可以包括多层结构,该多层结构如图1所示,可以包括:输入层、卷积层1、batchnorm层、卷积层2、中间层(依据不同功能的神经网络构架具有不同的中间层,该中间层可以为至少一层)、卷积层n、全连接层1、激活(例如激活函数:softmax)层。对于神经网络构架,对于计算量较大的层可以称为计算层,例如卷积层、全连接层等等,当然在实际应用中,上述计算层还可以包含其他类型的层,另外,本申请提供的图1中的神经网络构架仅仅是为了举例说明,本申请中的神经网络并不局限如图1所示的构架。
图2提供了根据本申请一个实施例的数据压缩和解压缩的装置的示意图。该数据压缩和解压缩的装置可以为人工智能芯片或人工智能处理器。该数据压缩和解压缩的装置包括运算处理单元、存储器、数据接收器和数据发送器,运算处理单元、数据接收器和数据发送器通过一个环状的数据总线与存储器相连。需要注意的是,该数据压缩和解压缩的装置的运算处理单元可以为人工智能芯片或人工智能处理器中的计算核,包括人工智能处理单元、神经网络处理器或神经网络处理单元,存储器的类型可以是任意类型的存储器,例如,动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)等。所述数据总线包括NOC。
需要注意的,图2所示的人工智能芯片包括神经网络芯片,人工智能处理器包括神经网络处理器,运算处理单元包括人工智能处理单元或神经网络处理单元。数据接收器、数据发送器和运算处理单元通过数据总线相互传输数据以及访问存储器。
根据图2所示的示例,人工智能芯片或人工智能处理器包括2个运算处理单元、2个数据发送器、2个数据接收器以及1个存储器。然而,可以理解的是,该人工智能芯片或人工智能处理器可以包括任意数量的运算处理单元、数据发送器、数据接收器以及存储器,这些都属于本申请覆盖的范围。并且,运算处理单元与数据发送器以及数据接收器的数量可以是一一对应的,也可以不是一一对应的。
在图2所示的实施例中,数据发送器和数据接收器中分别包括数据压缩模块和数据解压缩模块,用于对数据的压缩和解压缩。下面通过图3和图4分别对数据发送器和数据接收器的结构和功能进行描述。
图3提供了根据本申请一个实施例的数据发送器的示意图。如图3所示,数据发送器包括发送解码器、数据重排序缓冲器、数据压缩模块、算术逻辑单元、发送缓冲器和串行接口。
如图3所示,发送解码器用于根据任务信息向数据重排序缓冲器发送数据读取请求信息。在一个实施例中,任务信息可以是协同卷积运算中,计算节点(例如,包括人工智能处理器、人工智能芯片或人工智能芯片计算核)将计算得到的重叠的数据块发射给对应的计算节点。
数据重排序缓冲器用于根据数据读取请求信息通过数据总线获取并发送数据至数据压缩模块。
数据压缩模块对接收的数据进行压缩,将压缩后的数据以及表示压缩数据位置的位置索引发送出去。
在图3所示的实施例中,数据压缩模块将压缩后的数据以及位置索引发送给算术逻辑单元,算术逻辑单元对压缩后的数据进行运算,并基于运算后的数据形成新的位置索引,并将所得到的运算结果和新的位置索引发送给发送缓冲器。
发送缓冲器配置为接收并缓存来自算术逻辑单元的运算结果和新的位置索引,然后按照所述串行接口的格式发送基于运算结果和新的位置索引的数据。
串行接口配置为接收并发送所述数据。
在一个可选的实施例中,算术逻辑单元也可以位于数据重排序缓冲器和数据压缩模块之间,在这种情形下,数据重排序缓冲器可将数据发送给算术逻辑单元。算术逻辑单元对数据重排序缓冲器输出数据进行运算后,将运算结果发送给数据压缩模块,数据压缩模块再对运算结果进行压缩。
在另一个可选的实施例中,发送解码器可以不包含算术逻辑单元。那么,数据压缩模块将压缩后的数据以及位置索引发送给发送缓冲器。发送缓冲器接收并缓存压缩后的数据以及位置索引,然后按照所述串行接口的格式发送基于压缩后的数据以及位置索引的数据。
串行接口配置为接收并发送所述数据。
接下来,对数据压缩模块的功能进行详细描述。
在对数据进行压缩之前,需要判断数据是否满足数据压缩条件,如果满足压缩条件,则将数据压缩为压缩后的数据,并确定压缩后的数据的索引。
在一个实施例中,数据压缩条件包括一组数据存在等于设定的数值。在一个具体的实施例中,可以将该设定的数值设定为0,如果一组数据中存在等于0的数据,则将不发送等于0的数据。
在另一个实施中,数据压缩条件包括一组数据存在小于设定的数值。在一个具体的实施例中,可以将该设定的数值设定为0,如果一组数据中存在小于0的数据,则将不发送小于0的数据。
在又一个实施中,数据压缩条件包括一组数据存在小于等于设定的数值。在一个具体的实施例中,可以将该设定的数值设定为0,如果一组数据中存在小于等于0的数据,则将不发送小于0的数据。
需要注意的是,该设定的数值可以为任意数字,根据实际需要和具体应用,本领域技术人员能够采用任意合适的数字,这都属于本申请覆盖的范围。并且,数据压缩条件不限于上述条件,本领域技术人员在上述实施例的启发下想到的其他数据压缩条件,都属于本申请覆盖的范围。
下面举一个例子表示数据压缩过程。在数据压缩条件为“一组数据存在小于等于0”的情形下,存在一组数据:1、2、0、-0.2、3、-0.1、-1、-0.5、4、-0.3、5,那么压缩后的数据为1、2、3、4、5。
为了便于压缩后数据的解压缩,需要针对压缩后的数据确定位置索引。在一个实施例中,位置索引可以采用直接索引法而确定,对于上面一组数据,采用直接索引法,位置索引为1、1、0、0、1、0、0、0、1、0、1,其中,“1”表示有效,“0”表示无效;也可互换表示,即“0”表示有效,“1”表示无效。
位置索引可以采用步长索引方式,对于上面一组数据,采用步长索引的方式,位置索引为:1、1、3、4、2,其中第一“1”表示第一数字有效,其他数字表示两个有效数字之间步长,例如数字“1”和数字“2”之间的步长为1,数字“2”和数字“3”之间的步长为3。除了直接索引法和步长索引法的确定位置索引的方式,本领域技术人员还可以采用其他位置索引的方式,例如行压缩法(Compressed sparse row)和列压缩法(Compressed sparse column),等等。
以上举出了对一组数据压缩的方式,以及对压缩数据采用的位置索引。然而,根据实际需要和具体应用,本领域技术人员可以采用其他任何可用的压缩方式以及与压缩方式匹配的位置索引,这些都属于本申请覆盖的范围。
在一个可选的实施例中,在一组数据不满足数据压缩条件的情况下,例如,数据压缩条件为一组数据存在等于0的数,一组数据中的任何一个数值都不为0,那么无需对这组数据进行压缩,也就不会产生位置索引。数据压缩模块直接将这组数据发送出去。
数据接收器在收到经数据压缩模块压缩后的数据后,需要对压缩后的数据进行解压缩。图4提供了根据本申请一个实施例的数据接收器的示意图。如图4所示,数据接收器包括数据缓冲器、解码器、数据解压缩模块和直接存储访问单元。
在图4所示的实施例中,数据缓冲器配置为接收来自数据接收器外部的数据、位置索引以及包信息。解码器配置为接收并将所述数据和所述位置索引发送给所述数据解压缩模块,接收所述包信息并从所述包信息解析存放地址。数据解压缩模块根据位置索引对数据进行解压缩。直接存储访问单元配置为接收来自数据解压缩模块的解压缩后的数据,并根据所述存放地址将所述解压缩后的数据通过数据总线写入到存储器的对应区域。
接下来,对数据解压缩模块的功能进行详细描述。
首先,数据解压缩模块接收到待解压缩的数据和与待解压缩的数据相关的位置索引。
接下来,数据解压缩模块按照预定的规则根据所述位置索引恢复数据,形成解压缩后的数据。
如上所述,位置索引是数据压缩模块在压缩过程中产生的,根据不同的压缩方式,确定位置索引有不同的方式,包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。可以理解的是,根据实际需要和具体应用,本领域技术人员可以采用其他任何可用的压缩方式以及与压缩方式匹配的位置索引,这些都属于本申请覆盖的范围。
根据一个实施例,预定的规则可以是根据位置索引填充设定的值。在一个具体的实施例中,设定的值为0。在上述压缩实施例中,对于压缩后的数据1、2、3、4、5,根据位置索引填充0,解压缩后的数据为1、2、0、0、3、0、0、0、4、0、5。可以理解的是,根据实际需要和具体应用,设定的值可以为任意合适的数值。
根据另一个实施例,预定的规则可以是根据所述位置索引填充随机生成的数值。在上述压缩实施例中,对于压缩后的数据1、2、3、4、5,根据位置索引填充随机生成的数值0.1、-0.3;0.5、-0.1、1.2;-0.6解压缩后的数据为1、2、0.1、-0.3、3、0.5、-0.1、1.2、4、-0.6、5。
以上预定的规则的具体实现方式只是为了便于说明本发明的技术方案,并不用于对预定的规则进行限制。本领域技术人员在上述实现方式的启示下想到的其他实现方式,都属于本申请覆盖的范围。
在本申请的上述方案中,发射端和接收端分别增加了压缩和解压缩模块,在将数据进行压缩后,减少了数据传输量,降低了对传输带宽的需求,再进行传输,提高传输效率。
基于上述实施例,本申请提供一种数据压缩的方法。如图5所示,所述方法包括:
步骤S501,在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据。
在对数据进行压缩之前,需要判断数据是否满足数据压缩条件,如果满足压缩条件,则将数据压缩为压缩后的数据,并确定压缩后的数据的索引。
在一个实施例中,数据压缩条件包括一组数据存在等于设定的数值。在一个具体的实施例中,可以将该设定的数值设定为0,如果一组数据中存在等于0的数据,则将不发送等于0的数据。
在另一个实施中,数据压缩条件包括一组数据存在小于设定的数值。在一个具体的实施例中,可以将该设定的数值设定为0,如果一组数据中存在小于0的数据,则将不发送小于0的数据。
在又一个实施中,数据压缩条件包括一组数据存在小于等于设定的数值。在一个具体的实施例中,可以将该设定的数值设定为0,如果一组数据中存在小于等于0的数据,则将不发送小于0的数据。
需要注意的是,该设定的数值可以为任意数字,根据实际需要和具体应用,本领域技术人员能够采用任意合适的数字,这都属于本申请覆盖的范围。并且,数据压缩条件不限于上述条件,本领域技术人员在上述实施例的启发下想到的其他数据压缩条件,都属于本申请覆盖的范围。
步骤S502,确定所述第二数据的第一位置索引;
如上述实施例所描述的,所述位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。然而,需要注意的是,根据实际需要和具体应用,本领域技术人员可以采用其他任何可用的压缩方式以及与压缩方式匹配的位置索引,这些都属于本申请覆盖的范围。
步骤S503,发送所述第二数据和所述第一位置索引。
在获得压缩后的数据以及与压缩后的数据相关的位置索引后,将该压缩后的数据以及位置索引发送出。
基于上述实施例,本申请提供一种数据解压缩的方法。如图6所示,所述方法包括:
步骤S601,接收第三数据和第二位置索引。
在数据接收端接收压缩后的数据以及与压缩后的数据相关的位置索引。所述第二位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。然而,需要注意的是,根据实际需要和具体应用,本领域技术人员可以采用其他任何可用的压缩方式以及与压缩方式匹配的位置索引,这些都属于本申请覆盖的范围。
步骤S602,按照预定的规则根据所述位置索引恢复数据,形成第四数据。
根据一个实施例,预定的规则可以是根据位置索引填充设定的值。在一个具体的实施例中,设定的值为0。在上述压缩实施例中,对于压缩后的数据1、2、3、4、5,根据位置索引填充0,解压缩后的数据为1、2、0、0、3、0、0、0、4、0、5。可以理解的是,根据实际需要和具体应用,设定的值可以为任意合适的数值。
根据另一个实施例,预定的规则可以是根据所述位置索引填充随机生成的数值。在上述压缩实施例中,对于压缩后的数据1、2、3、4、5,根据位置索引填充随机生成的数值0.1、-0.3;0.5、-0.1、1.2;-0.6解压缩后的数据为1、2、0.1、-0.3、3、0.5、-0.1、1.2、4、-0.6、5。
以上预定的规则的具体实现方式只是为了便于说明本发明的技术方案,并不用于对预定的规则进行限制。本领域技术人员在上述实现方式的启示下想到的其他实现方式,都属于本申请覆盖的范围。
通过本申请的上述压缩方法和解压缩方法,将数据进行压缩后再进行发送,减少了数据传输量,降低了对传输带宽的需求,再进行传输,提高传输效率。
根据另一个实施例,本申请提供一种电子设备,包括图2所示的数据压缩装置。
根据又一个实施例,本申请提供一种电子设备,包括图2所示的数据解压缩装置。
应该理解,上述的装置实施例仅是示意性的,本披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本披露各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述处理器或芯片可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述片上缓存、片外内存、存储器可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-AccessMemory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本披露的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。上述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
依据以下条款可更好地理解前述内容:
条款1,一种数据压缩装置,包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据发送器包括数据压缩模块,其中,所述数据压缩模块被配置用于:
在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据;
确定所述第二数据的第一位置索引;
发送所述第二数据和所述第一位置索引。
条款2,如条款1所述的装置,其中,所述数据压缩条件包括所述第一数据中存在小于等于设定值的数值。
条款3,如条款1或2所述的装置,其中,所述第一位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
条款4,如条款1所述的装置,其中,所述数据压缩模块还被配置用于:
在无需对所述第一数据进行压缩的情况下,发送所述第一数据。
条款5,如条款1至4中任一者所述的装置,所述数据发送器还包括发送解码器和数据重排序缓冲器,其中:
所述发送解码器配置为根据任务信息向所述数据重排序缓冲器发送数据读取请求信息;
所述数据重排序缓冲器配置为根据所述数据读取请求信息通过所述数据总线获取并发送所述第一数据至所述数据压缩模块。
条款6,如条款1至4中任一者所述的装置,其中所述数据发送器还包括发送缓冲器和串行接口,其中,
发送缓冲器配置为接收并缓存所述第二数据和所述第一位置索引,然后按照所述串行接口的格式发送基于所述第二数据和所述第一位置索引的第三数据;
串行接口配置为接收并发送所述第三数据。
条款7,如条款1至4中任一者所述的装置,其中所述数据发送器还包括算术逻辑单元、发送缓冲器和串行接口,其中,
所述算术逻辑单元配置为对至少部分所述第二数据进行运算,并将所得到的运算结果作为第四数据以及第二位置索引发送给所述发送缓冲器;
所述发送缓冲器配置为接收并缓存来自所述算术逻辑单元的所述第四数据和所述第二位置索引,然后按照所述串行接口的格式发送基于所述第四数据和所述位置索引的第五数据;
串行接口配置为接收并发送所述第五数据。
条款8,如条款1至7中任一者所述的装置,其中,所述数据总线包括NOC。
条款9,如条款1至8中任一者所述的装置,其中,所述装置包括人工智能芯片或人工智能处理器,所述运算处理单元包括人工智能处理单元。
条款10,如条款1至9中任一者所述的装置,其中,所述数据接收器、所述数据发送器和所述运算处理单元通过所述数据总线相互传输数据以及访问所述存储器。
条款11,一种数据解压缩装置,包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据接收器包括数据解压缩模块,其中,所述数据解压缩模块被配置用于:
接收第六数据和第三位置索引;以及
按照预定的规则根据所述第三位置索引恢复数据,形成第七数据。
条款12,如条款11所述的装置,其中,所述第三位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
条款13,如条款11或12所述的装置,其中,所述预定的规则包括根据所述第三位置索引填充设定的值。
条款14,如条款11或12所述的装置,其中,所述预定的规则包括根据所述第三位置索引填充随机生成的数值。
条款15,如条款11或12所述的装置,其中,所述数据接收器包括:
数据缓冲器,配置为接收来自所述数据接收器外部的所述第六数据、所述第三位置索引以及包信息;
解码器,配置为接收并将所述第六数据和所述第三位置索引发送给所述数据解压缩模块,接收所述包信息并从所述包信息解析存放地址。
条款16,如条款11或12所述的装置,其中,所述数据接收器包括:
直接存储访问单元,配置为接收来自所述数据解压缩模块的所述第七数据,并根据所述存放地址将所述第七数据通过所述数据总线写入到所述存储器的对应区域。
条款17,如条款11至16中任一者所述的装置,其中,所述数据总线包括NOC。
条款18,如条款11至17中任一者所述的装置,其中,所述装置包括人工智能芯片或人工智能处理器,所述运算处理单元包括人工智能处理单元。
条款19,如条款11至18中任一者所述的装置,其中,所述数据接收器、所述数据发送器和所述运算处理单元通过所述数据总线相互传输数据以及访问所述存储器。
条款20,一种数据压缩方法,包括:
在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据;
确定所述第二数据的第一位置索引;
发送所述第二数据和所述第一位置索引。
条款21,如条款20所述的方法,其中,所述数据压缩条件包括所述第一数据中存在小于等于设定值的数值。
条款22,如条款20或21所述的方法,其中,所述第一位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
条款23,一种数据解压缩方法,包括:
接收第三数据和第二位置索引;以及
按照预定的规则根据所述第二位置索引恢复数据,形成第四数据。
条款24,如条款23所述的方法,其中,所述第二位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
条款25,如条款23或24所述的方法,其中,所述预定的规则包括根据所述第二位置索引填充设定的值。
条款26,如条款23或24所述的方法,其中,所述预定的规则包括根据所述第二位置索引填充随机生成的数值。
条款27,一种电子装置,其包括根据条款1至10任一者所述的数据压缩装置。
条款28,一种电子装置,其包括根据条款11至19任一者所述的数据解压缩装置。
以上对本披露实施例进行了详细介绍,本文中应用了具体个例对本披露的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本披露的方法及其核心思想。同时,本领域技术人员依据本披露的思想,基于本披露的具体实施方式及应用范围上做出的改变或变形之处,都属于本披露保护的范围。综上所述,本说明书内容不应理解为对本披露的限制。
Claims (28)
1.一种数据压缩装置,包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据发送器包括数据压缩模块,其中,所述数据压缩模块被配置用于:
在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据;
确定所述第二数据的第一位置索引;
发送所述第二数据和所述第一位置索引。
2.如权利要求1所述的装置,其中,所述数据压缩条件包括所述第一数据中存在小于等于设定值的数值。
3.如权利要求1或2所述的装置,其中,所述第一位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
4.如权利要求1所述的装置,其中,所述数据压缩模块还被配置用于:
在无需对所述第一数据进行压缩的情况下,发送所述第一数据。
5.如权利要求1至4中任一者所述的装置,所述数据发送器还包括发送解码器和数据重排序缓冲器,其中:
所述发送解码器配置为根据任务信息向所述数据重排序缓冲器发送数据读取请求信息;
所述数据重排序缓冲器配置为根据所述数据读取请求信息通过所述数据总线获取并发送所述第一数据至所述数据压缩模块。
6.如权利要求1至4中任一者所述的装置,其中所述数据发送器还包括发送缓冲器和串行接口,其中,
发送缓冲器配置为接收并缓存所述第二数据和所述第一位置索引,然后按照所述串行接口的格式发送基于所述第二数据和所述第一位置索引的第三数据;
串行接口配置为接收并发送所述第三数据。
7.如权利要求1至4中任一者所述的装置,其中所述数据发送器还包括算术逻辑单元、发送缓冲器和串行接口,其中,
所述算术逻辑单元配置为对至少部分所述第二数据进行运算,并将所得到的运算结果作为第四数据以及第二位置索引发送给所述发送缓冲器;
所述发送缓冲器配置为接收并缓存来自所述算术逻辑单元的所述第四数据和所述第二位置索引,然后按照所述串行接口的格式发送基于所述第四数据和所述位置索引的第五数据;
串行接口配置为接收并发送所述第五数据。
8.如权利要求1至7中任一者所述的装置,其中,所述数据总线包括NOC。
9.如权利要求1至8中任一者所述的装置,其中,所述装置包括人工智能芯片或人工智能处理器,所述运算处理单元包括人工智能处理单元。
10.如权利要求1至9中任一者所述的装置,其中,所述数据接收器、所述数据发送器和所述运算处理单元通过所述数据总线相互传输数据以及访问所述存储器。
11.一种数据解压缩装置,包括数据总线以及与所述数据总线连接的存储器、数据接收器、运算处理单元和数据发送器,所述数据接收器包括数据解压缩模块,其中,所述数据解压缩模块被配置用于:
接收第六数据和第三位置索引;以及
按照预定的规则根据所述第三位置索引恢复数据,形成第七数据。
12.如权利要求11所述的装置,其中,所述第三位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
13.如权利要求11或12所述的装置,其中,所述预定的规则包括根据所述第三位置索引填充设定的值。
14.如权利要求11或12所述的装置,其中,所述预定的规则包括根据所述第三位置索引填充随机生成的数值。
15.如权利要求11或12所述的装置,其中,所述数据接收器包括:
数据缓冲器,配置为接收来自所述数据接收器外部的所述第六数据、所述第三位置索引以及包信息;
解码器,配置为接收并将所述第六数据和所述第三位置索引发送给所述数据解压缩模块,接收所述包信息并从所述包信息解析存放地址。
16.如权利要求11或12所述的装置,其中,所述数据接收器包括:
直接存储访问单元,配置为接收来自所述数据解压缩模块的所述第七数据,并根据所述存放地址将所述第七数据通过所述数据总线写入到所述存储器的对应区域。
17.如权利要求11至16中任一者所述的装置,其中,所述数据总线包括NOC。
18.如权利要求11至17中任一者所述的装置,其中,所述装置包括人工智能芯片或人工智能处理器,所述运算处理单元包括人工智能处理单元。
19.如权利要求11至18中任一者所述的装置,其中,所述数据接收器、所述数据发送器和所述运算处理单元通过所述数据总线相互传输数据以及访问所述存储器。
20.一种数据压缩方法,包括:
在第一数据满足数据压缩条件的情况下,压缩所述第一数据形成第二数据;
确定所述第二数据的第一位置索引;
发送所述第二数据和所述第一位置索引。
21.如权利要求20所述的方法,其中,所述数据压缩条件包括所述第一数据中存在小于等于设定值的数值。
22.如权利要求20或21所述的方法,其中,所述第一位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
23.一种数据解压缩方法,包括:
接收第三数据和第二位置索引;以及
按照预定的规则根据所述第二位置索引恢复数据,形成第四数据。
24.如权利要求23所述的方法,其中,所述第二位置索引的确定方式包括直接索引法、步长索引法、行压缩法和列压缩法中的任意一种。
25.如权利要求23或24所述的方法,其中,所述预定的规则包括根据所述第二位置索引填充设定的值。
26.如权利要求23或24所述的方法,其中,所述预定的规则包括根据所述第二位置索引填充随机生成的数值。
27.一种电子装置,其包括根据权利要求1至10任一者所述的数据压缩装置。
28.一种电子装置,其包括根据权利要求11至19任一者所述的数据解压缩装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910819935.5A CN112445772B (zh) | 2019-08-31 | 2019-08-31 | 用于数据压缩和解压缩的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910819935.5A CN112445772B (zh) | 2019-08-31 | 2019-08-31 | 用于数据压缩和解压缩的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112445772A true CN112445772A (zh) | 2021-03-05 |
CN112445772B CN112445772B (zh) | 2024-08-23 |
Family
ID=74734631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910819935.5A Active CN112445772B (zh) | 2019-08-31 | 2019-08-31 | 用于数据压缩和解压缩的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112445772B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781128A (en) * | 1997-02-18 | 1998-07-14 | Rockwell International Corporation | Data compression system and method |
CN101068352A (zh) * | 2007-06-08 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络图像的压缩方法和系统 |
CN104468044A (zh) * | 2014-12-05 | 2015-03-25 | 北京国双科技有限公司 | 应用于网络传输中的数据压缩的方法及装置 |
US9413386B1 (en) * | 2015-02-19 | 2016-08-09 | Qualcomm Incorporated | System, apparatus, and method for decompressing data |
CN106788449A (zh) * | 2017-01-13 | 2017-05-31 | 重庆邮电大学 | 一种实时电能质量数据参数化压缩方法 |
WO2018102972A1 (zh) * | 2016-12-05 | 2018-06-14 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN108271026A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和系统、芯片、电子装置 |
CN108615074A (zh) * | 2018-04-28 | 2018-10-02 | 中国科学院计算技术研究所 | 基于压缩感知的神经网络处理系统及方法 |
US20190190538A1 (en) * | 2017-12-18 | 2019-06-20 | Facebook, Inc. | Accelerator hardware for compression and decompression |
-
2019
- 2019-08-31 CN CN201910819935.5A patent/CN112445772B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5781128A (en) * | 1997-02-18 | 1998-07-14 | Rockwell International Corporation | Data compression system and method |
CN101068352A (zh) * | 2007-06-08 | 2007-11-07 | 中兴通讯股份有限公司 | 一种网络图像的压缩方法和系统 |
CN104468044A (zh) * | 2014-12-05 | 2015-03-25 | 北京国双科技有限公司 | 应用于网络传输中的数据压缩的方法及装置 |
US9413386B1 (en) * | 2015-02-19 | 2016-08-09 | Qualcomm Incorporated | System, apparatus, and method for decompressing data |
WO2018102972A1 (zh) * | 2016-12-05 | 2018-06-14 | 华为技术有限公司 | 一种数据传输方法、装置及系统 |
CN108271026A (zh) * | 2016-12-30 | 2018-07-10 | 上海寒武纪信息科技有限公司 | 压缩/解压缩的装置和系统、芯片、电子装置 |
CN106788449A (zh) * | 2017-01-13 | 2017-05-31 | 重庆邮电大学 | 一种实时电能质量数据参数化压缩方法 |
US20190190538A1 (en) * | 2017-12-18 | 2019-06-20 | Facebook, Inc. | Accelerator hardware for compression and decompression |
CN108615074A (zh) * | 2018-04-28 | 2018-10-02 | 中国科学院计算技术研究所 | 基于压缩感知的神经网络处理系统及方法 |
Non-Patent Citations (1)
Title |
---|
任秀江;王磊;周建毅;谢向辉;: "面向网络通信的高实时压缩引擎设计", 计算机工程与科学, no. 04, 15 April 2018 (2018-04-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN112445772B (zh) | 2024-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107590533B (zh) | 一种用于深度神经网络的压缩装置 | |
CN101930418B (zh) | 用于分组信息的多种压缩技术 | |
US11522673B2 (en) | Method and device for blockchain full sharding based on a P2P storage network and a multi-layer architecture | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN110569970B (zh) | 一种应用于卷积神经网络中硬件加速器的数据传输方法 | |
US10489350B2 (en) | Data compression with inline compression metadata | |
CN111930510B (zh) | 电子设备和数据处理方法 | |
CN112445772B (zh) | 用于数据压缩和解压缩的装置和方法 | |
CN113497627A (zh) | 一种数据压缩和解压缩方法、装置及系统 | |
US11636061B2 (en) | On-demand packetization for a chip-to-chip interface | |
WO2013075329A1 (en) | Method and apparatus for generating a bitstream of repetitive structure discovery based 3d model compression | |
CN115185865A (zh) | 基于芯片的数据传输方法、设备及存储介质 | |
WO2021237513A1 (zh) | 数据压缩存储的系统、方法、处理器及计算机存储介质 | |
CN109062856B (zh) | 计算处理装置和方法、电子设备 | |
CN116415100A (zh) | 业务处理方法、装置、处理器及计算设备 | |
CN115516771A (zh) | 内联解压缩 | |
CN112446473A (zh) | 数据处理装置和方法 | |
US10263638B2 (en) | Lossless compression method for graph traversal | |
US12072806B2 (en) | Compression and decompression module in a cache controller for reducing off-chip data traffic | |
WO2023237121A1 (zh) | 一种数据处理方法、装置及相关设备 | |
CN115567121B (zh) | 数据传输方法、系统、介质及超声波传感器 | |
US12056044B2 (en) | Mechanism to represent data structures for a datatype engine and provide inline compaction | |
WO2021237518A1 (zh) | 数据存储的方法、装置、处理器及计算机存储介质 | |
CN212873459U (zh) | 一种用于数据压缩存储的系统 | |
US20160291678A1 (en) | Power reduction in bus interconnects |
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 |