CN109254867B - 数据冗余方法及装置 - Google Patents

数据冗余方法及装置 Download PDF

Info

Publication number
CN109254867B
CN109254867B CN201710578784.XA CN201710578784A CN109254867B CN 109254867 B CN109254867 B CN 109254867B CN 201710578784 A CN201710578784 A CN 201710578784A CN 109254867 B CN109254867 B CN 109254867B
Authority
CN
China
Prior art keywords
data
redundancy
bits
important
neural network
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
CN201710578784.XA
Other languages
English (en)
Other versions
CN109254867A (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 Cambricon Information Technology Co Ltd
Original Assignee
Shanghai Cambricon Information Technology 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 to CN201710578784.XA priority Critical patent/CN109254867B/zh
Application filed by Shanghai Cambricon Information Technology Co Ltd filed Critical Shanghai Cambricon Information Technology Co Ltd
Priority to EP19218378.8A priority patent/EP3660629B1/en
Priority to CN201880001841.0A priority patent/CN109478144B/zh
Priority to EP19217773.1A priority patent/EP3660739A1/en
Priority to CN202010617408.9A priority patent/CN111553473B/zh
Priority to EP18828801.3A priority patent/EP3637258A4/en
Priority to PCT/CN2018/094710 priority patent/WO2019007406A1/zh
Publication of CN109254867A publication Critical patent/CN109254867A/zh
Priority to US16/698,996 priority patent/US20200110635A1/en
Priority to US16/698,992 priority patent/US11307864B2/en
Priority to US16/698,993 priority patent/US11086634B2/en
Application granted granted Critical
Publication of CN109254867B publication Critical patent/CN109254867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/186Passive fault masking when reading multiple copies of the same data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Neurology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种数据冗余方法和装置,所述数据冗余方法包括:将数据划分为M个重要等级;提取每一重要等级中的每一数据的重要比特位;以及针对所述重要比特位进行数据冗余处理,其中M为正整数。

Description

数据冗余方法及装置
技术领域
本发明涉及数据处理领域,更具体地涉及一种数据冗余方法及装置。
背景技术
数据冗余技术采用副本冗余或者纠错编码的方式提高数据的安全性和可靠性,但是数据冗余技术带来巨大的存储容量开销和访存功耗开销,针对大规模的数据,这个问题会更加严重。因此如何结合数据的特性进行数据冗余成为一个亟待解决的问题。
发明内容
鉴于现有方案存在的问题,为了克服上述现有技术方案的不足,本发明提出了一种数据冗余方法及装置。
根据本发明的一个方面,提供了一种数据冗余方法,包括:将数据划分为M个重要等级;提取每一重要等级中的每一数据的重要比特位;以及针对所述重要比特位进行数据冗余处理,其中M为正整数。
在本发明的一些实施例中,所述数据冗余处理包括副本冗余处理和/或纠错编码处理。
在本发明的一些实施例中,所述纠错编码处理包括循环冗余校验(CRC)和/或错误检查和纠正(ECC)。
在本发明的一些实施例中,对数据进行纠错编码处理包括:对该数据采用循环冗余校验(CRC)的方式进行冗余存储,当进行读操作时,读取存储循环冗余校验码,并对原始数据进行循环冗余校验码计算,如果两个循环冗余校验码不一致,则按照存储的循环冗余校验码对该数据进行修正,进行写操作时,同时存储该数据的原始数据和循环冗余校验码。
在本发明的一些实施例中,对数据进行纠错编码处理包括:对该数据采用错误检查和纠正(ECC)内存进行冗余存储,在进行读写操作时,错误检查和纠正(ECC)内存自动进行检错和纠错处理。
在本发明的一些实施例中,所述副本冗余处理包括同时备份N份副本,其中N≥2,为正整数。
在本发明的一些实施例中,对数据的重要比特位进行副本冗余处理包括:进行读操作时,对于重要比特位同时读取原始数据和备份的N份数据,若出现数据不一致,则取相同的N份数据作为最终读取的数据,同时将第N+1份不一致数据修复,当进行写操作时,对于重要比特位同时写回到N个备份地址,同时保证原始数据中的数据和N个备份数据一致。
在本发明的一些实施例中,所述将数据划分为M个重要等级包括根据数据的大小、数据绝对值的大小、数据的类型、数据的读操作频率及数据的写操作频率中的至少一个来进行划分。
在本发明的一些实施例中,所述数据包括神经网络参数,按照神经网络参数的绝对值划分M个重要等级,按照由大到小的顺序设定M+1个阈值T0,T1,T2,...及TM,当神经网络参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=1,2……,M,T0,T1,T2,...及TM均为实数,且T0>T1>T2>...>TM≥0。
在本发明的一些实施例中,所述数据包括稀疏神经网络参数,所述稀疏神经网络参数包括非零参数和非零参数位置,所述非零参数位置设置为第1重要等级,非零参数按照参数绝对值划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,...及TM,当非零参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,...及TM均为实数,且T1>T2>...>TM≥0。
在本发明的一些实施例中,所述数据包括图计算应用数据,包括顶点数据和边数据,所述顶点数据设置为第1重要等级,边数据按照访问频率划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,...及TM,当边数据按照访问频率F满足Ti-1>F>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,...及TM-1均为实数,且T1>T2>...>TM≥0。
在本发明的一些实施例中,提取每一重要等级中的每一数据的重要比特位包括:所述数据为浮点型参数,设置符号位、指数部分以及底数部分前y位指定为重要比特位,y为正整数;和/或所述数据为定点型参数,设置符号位、数值部分前z位指定为重要比特位,z为正整数。
根据本发明的另一方面,提供一种数据冗余装置,包括:重要等级划分单元,用于将数据划分为M个重要等级;重要比特位提取单元,用于提取每一重要等级中的每一数据的重要比特位;以及数据冗余处理单元,用于针对所述重要比特位进行数据冗余处理,其中M为正整数。
在本发明的一些实施例中,所述数据冗余处理包括副本冗余处理和/或纠错编码处理,所述数据冗余处理单元包括:冗余存储单元,用于存储冗余数据;以及读写控制单元,用于读取和/或写入数据。
在本发明的一些实施例中,所述纠错编码处理包括循环冗余校验(CRC)和/或错误检查和纠正(ECC)。
在本发明的一些实施例中,对数据进行纠错编码处理包括:冗余存储单元对该数据采用循环冗余校验(CRC)的方式进行冗余存储,当读写控制单元进行读操作时,读取存储循环冗余校验码,并对原始数据进行循环冗余校验码计算,如果两个循环冗余校验码不一致,则按照存储的循环冗余校验码对该数据进行修正,当读写控制单元进行写操作时,冗余存储单元同时存储该数据的原始数据和循环冗余校验码。
在本发明的一些实施例中,对数据进行纠错编码处理包括:对该数据采用错误检查和纠正(ECC)内存进行冗余存储,在进行读写操作时,错误检查和纠正(ECC)内存自动进行检错和纠错处理。
在本发明的一些实施例中,所述副本冗余处理包括同时备份N份副本,其中N≥2,为正整数。
在本发明的一些实施例中,对数据的重要比特位进行副本冗余处理包括:当读写控制单元进行读操作时,对于重要比特位同时读取原始数据和备份的N份数据,若出现数据不一致,则取相同的N份数据作为最终读取的数据,同时将第N+1份不一致数据修复,当读写控制单元进行写操作时,对于重要比特位同时写回到N个备份地址,同时冗余存储单元保证原始数据中的数据和N个备份数据一致。
在本发明的一些实施例中,所述重要等级划分单元将数据划分为M个重要等级包括根据数据的大小、数据绝对值的大小、数据的类型、数据的读操作频率及数据的写操作频率中的至少一个来进行划分。
在本发明的一些实施例中,所述数据包括神经网络参数,按照神经网络参数的绝对值划分M个重要等级,按照由大到小的顺序设定M+1个阈值T0,T1,T2,...及TM,当神经网络参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=1,2……,M,T0,T1,T2,...及TM均为实数,且T0>T1>T2>...>TM≥0。
在本发明的一些实施例中,所述数据包括稀疏神经网络参数,所述稀疏神经网络参数包括非零参数和非零参数位置,所述非零参数位置设置为第1重要等级,非零参数按照参数绝对值划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,...及TM,当非零参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,...及TM均为实数,且T1>T2>...>TM≥0。
在本发明的一些实施例中,所述数据包括图计算应用数据,包括顶点数据和边数据,所述顶点数据设置为第1重要等级,边数据按照访问频率划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,...及TM,当边数据按照访问频率F满足Ti-1>F>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,...及TM-1均为实数,且T1>T2>...>TM≥0。
在本发明的一些实施例中,所述重要比特位提取单元提取每一重要等级中的每一数据的重要比特位包括:所述数据为浮点型参数,设置符号位、指数部分以及底数部分前y位指定为重要比特位,y为正整数;和/或所述数据为定点型参数,设置符号位、数值部分前z位指定为重要比特位,z为正整数。
从上述技术方案可以看出,本发明具有至少以下有益效果:
对数据选择性的进行冗余处理,减少存储容量开销和访存功耗开销;
区分数据的重要等级,对不同重要等级的数据进行不同的冗余处理,保证存储数据的安全性和可靠性的同时,减少存储容量占用和访存功耗。
附图说明
图1为本发明一实施例中数据冗余方法的流程图;
图2为本发明另一实施例数据冗余装置的结构框图;
具体实施方式
本发明某些实施例于后方将参照所附附图做更全面性地描述,其中一些但并非全部的实施例将被示出。实际上,本发明的各种实施例可以许多不同形式实现,而不应被解释为限于此数所阐述的实施例;相对地,提供这些实施例使得本发明满足适用的法律要求。
在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相似功能和操作。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明实施例提供了一种数据冗余方法,通过将数据划分为多个重要等级,并针对不同的重要等级的数据进行不同的数据冗余处理,在保证存储数据的安全性和可靠性的基础上,减少存储容量开销和访存功耗开销。
具体的,图1示出了数据冗余方法的流程图,如附图1所示,数据冗余方法包括以下具体步骤:
步骤S101:将数据划分为M个重要等级,M为正整数;
具体地,数据的重要等级可以综合考虑数据的大小,数据绝对值的大小,数据的类型(浮点型、定点型),数据的读操作频率,数据写操作频率等因素进行设置。
步骤S102:提取每一重要等级中的每一数据的重要比特位;
具体地,数据中的比特位分为重要比特位和非重要比特位。若数据共有x个比特位,其中y个比特位是重要比特位,(x-y)个比特位是不重要比特位,其中x,y为正整数,0≤y<x。后续仅对数据的y个重要比特位进行处理,y个重要比特位的位置可以是连续的,也可以是不连续的。
步骤S103:针对所述重要比特位进行数据冗余处理。
具体地,所述数据冗余处理包括副本冗余处理和/或纠错编码处理,可以根据不同的重要性来进行不同的处理,例如可以,当一数据中的所有比特位均为重要比特位时,对该数据的所有比特位进行纠错编码处理,当一数据中的部分比特位为重要比特位时,对该数据的重要比特位进行副本冗余处理。
副本冗余可以在同一块存储介质备份冗余,也可以在不同存储介质备份冗余。数据可以同时备份N份,其中N是大于0的正整数。纠错编码方式包括但不仅限于循环冗余校验(Cyclic Redundancy Check,CRC),错误检查和纠正(Error Correcting Code,ECC)。
以下通过几个实例具体介绍本实施例中的数据冗余方法。
实例1:对神经网络参数进行数据冗余。
首先将神经网络参数按照参数绝对值大小确定M个重要等级,第1、2……M重要等级,并将参数对应划入各重要等级。
具体地,设定M+1个阈值,按照从大到小排序后的分别记为T0,T1,T2,...及TM。当神经网络参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=1,2……,M,T0,T1,T2,...及TM均为实数,且T0>T1>T2>...>TM≥0。即神经网络参数的绝对值T0>D>T1时,划入第1重要等级,神经网络参数的绝对值T1>D>T2时,划入第2重要等级,依次类推。
对于第i重要等级参数中浮点型的一参数,共有xi个比特位,设置符号位与指数部分以及底数部分前yi位指定为重要比特位,其中xi,yi均为正整数,且0<yi≤xi
对于第i重要等级参数中的定点型的参数,共有xi个比特位,设置设符号位和数值部分前zi位是重要比特位,其中xi,zi均为正整数,且0<zi≤xi
对第i重要等级参数中重要比特位采用数据备份的方式进行数据冗余,并且备份两份,对不重要比特位不进行冗余存储。当对第i重要等级中的参数进行读操作时,对于重要比特位同时读取原始数据和备份的两份数据,若出现相应数据不一致,则取相同的两份数据作为最终读取的数据,同时将第三份不一致的数据进行修复。当对第i重要等级参数进行写操作时,对于重要比特位同时写回到两个备份地址,同时保证原始数据中的数据和两个备份数据一致。
实例2:对稀疏神经网络参数进行数据冗余。
本实例中稀疏神经网络参数分为两部分,分别是非零参数和非零参数位置。
将非零参数位置设置为第1重要等级,并且将其所有的比特位标记为重要比特性,采用CRC校验码的方式进行冗余存储。当进行读操作时,读取存储CRC校验码并对原始数据进行CRC校验码计算,如果两个CRC校验码不一致,则按照存储的CRC校验码对数据进行修正。进行写操作时,同时存储原始数据和CRC校验码。
将神经网络的非零参数按照参数绝对值大小设置重要等级,从第2重要等级开始依次设置M-1个重要等级。设定M个阈值,按照从大到小排序后的分别记为T1,T2,...及TM。当非零参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,...及TM均为实数,且T1>T2>...>TM≥0。即非零参数的绝对值满足T1>D>T2时,划入第2重要等级,非零参数的绝对值满足T2>D>T3时,划入第3重要等级依次类推。
对于第i重要等级参数中浮点型的一参数,共有xi个比特位,设置符号位与指数部分以及底数部分前yi位指定为重要比特位,其中xi,yi均为正整数,且0<yi≤xi
对于第i重要等级参数中的定点型的参数,共有xi个比特位,设置设符号位和数值部分前zi位是重要比特位,其中xi,zi均为正整数,且0<zi≤xi
对第i重要等级参数中重要比特位,采用数据备份的方式进行数据冗余,并且备份两份,对不重要比特位不进行冗余存储。当对第i重要等级中的参数进行读操作时,对于重要比特位同时读取原始数据和备份的两份数据,若出现相应数据不一致,则取相同的两份数据作为最终读取的数据,同时将第三份不一致的数据进行修复。当对第i重要等级参数进行写操作时,对于重要比特位同时写回到两个备份地址,同时保证原始数据中的数据和两个备份数据一致。
实施例3:图计算的应用中数据冗余。
本实施中图计算应用中数据分为两部分,包括顶点数据和边数据。
将图计算应用中的顶点数据设置为第1重要等级,并且将所有的数据比特位标记为重要比特性,采用CRC校验码的方式进行冗余存储。当进行读操作时,读取存储CRC校验码并对原始数据进行CRC校验码计算,如果两个CRC校验码不一致,则按照存储的CRC校验码对数据进行修正。进行写操作时,同时存储原始数据和CRC校验码。
将图计算应用中边数据按照边的访问频率设置重要等级,从第2重要等级开始依次设置M-1个重要等级。按照从大到小排序后的分别记为T1,T2,...及TM。当边数据访问频率F满足Ti-1>F>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,...及TM均为实数,且T1>T2>...>TM≥0,即边数据访问频率满足T1>F>T2时,划入第2重要等级,边数据访问频率满足T2>F>T3时,划入第3重要等级依次类推。
对于第i重要等级中浮点型的边数据,共有xi个比特位,设置符号位与指数部分以及底数部分前yi位指定为重要比特位,其中xi,yi均为正整数,且0<yi≤xi
对于第i重要等级参数中的定点型的边数据,共有xi个比特位,设置设符号位和数值部分前zi位是重要比特位,其中xi,zi均为正整数,且0<zi≤xi
第i重要等级边数据中重要比特位采用数据备份的方式进行数据冗余,并且备份两份,对不重要比特位不进行冗余存储。当对第i重要等级边数据进行读操作时,对于重要比特位同时读取原始数据和备份的两份数据,若出现数据不一致,则取相同的两份数据作为最终读取的数据,同时将第三份不一致数据修复。当对第i重要等级边数据进行写操作时,对于重要比特位同时写回到两个备份地址,同时保证原始数据中的数据和两个备份数据一致。
本发明另一实施例提供一种数据冗余装置100,图2示出了数据冗余装置的结构框图,如图2所示,数据冗余装置100包括重要等级划分单元10、重要比特位提取单元20以及数据冗余处理单元30。
其中,重要等级划分单元10用于根据重要性将数据划分为M个重要等级,M为正整数,具体地,数据的重要等级可以综合考虑数据的大小,数据绝对值的大小,数据的类型(浮点型、定点型),数据的读操作频率,数据写操作频率等因素进行设置。
重要比特位提取单元20用于提取每一重要等级中的每一数据的重要比特位。重要比特位提取单元20会识别不同重要等级的数据,并将数据比特位分为重要数据比特位和不重要数据比特位。同时对每一个重要等级的每一数据,提取重要比特位。
数据冗余处理单元30用于针对所述重要比特位进行数据冗余处理。
如图2所示,数据冗余处理单元30包括冗余存储单元31和读写控制单元32。
冗余存储单元31可以对原始数据进行存储,并且对数据中的重要比特位进行数据冗余存储。数据冗余可以是副本备份或者纠错编码。副本可以同时备份N份,其中N是大于0的正整数。纠错编码方式包括但不仅限于CRC校验,ECC校验。冗余存储单元31可以是硬盘,DRAM,SRAM,ECC-DRAM,ECC-SRAM和非易失性内存。
读写控制单元32能够对冗余的数据进行读写操作,保证读写数据的一致性。
前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被承载在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (24)

1.一种数据冗余方法,其中,包括:
将数据划分为M个重要等级,所述数据包括神经网络参数,稀疏神经网络参数或图计算应用数据;
提取每一重要等级中的每一数据的重要比特位;
以及
针对所述重要比特位进行数据冗余处理,其中M为正整数。
2.根据权利要求1所述的数据冗余方法,其中,所述数据冗余处理包括副本冗余处理和/或纠错编码处理。
3.根据权利要求2所述的数据冗余方法,其中,所述纠错编码处理包括循环冗余校验(CRC)和/或错误检查和纠正(ECC)。
4.根据权利要求3所述的数据冗余方法,其中,对数据进行纠错编码处理包括:对该数据采用循环冗余校验(CRC)的方式进行冗余存储,当进行读操作时,读取存储循环冗余校验码,并对原始数据进行循环冗余校验码计算,如果两个循环冗余校验码不一致,则按照存储的循环冗余校验码对该数据进行修正,进行写操作时,同时存储该数据的原始数据和循环冗余校验码。
5.根据权利要求3所述的数据冗余方法,其中,对数据进行纠错编码处理包括:对该数据采用错误检查和纠正(ECC)内存进行冗余存储,在进行读写操作时,错误检查和纠正(ECC)内存自动进行检错和纠错处理。
6.根据权利要求2所述的数据冗余方法,其中,所述副本冗余处理包括同时备份N份副本,其中N≥2,为正整数。
7.根据权利要求6所述的数据冗余方法,其中,对数据的重要比特位进行副本冗余处理包括:进行读操作时,对于重要比特位同时读取原始数据和备份的N份数据,若出现数据不一致,则取相同的N份数据作为最终读取的数据,同时将第N+1份不一致数据修复,当进行写操作时,对于重要比特位同时写回到N个备份地址,同时保证原始数据中的数据和N个备份数据一致。
8.根据权利要求1-7中任一所述的数据冗余方法,其中,所述将数据划分为M个重要等级包括根据数据的大小、数据绝对值的大小、数据的类型、数据的读操作频率及数据的写操作频率中的至少一个来进行划分。
9.根据权利要求8所述的数据冗余方法,其中,所述数据包括神经网络参数,按照神经网络参数的绝对值划分M个重要等级,按照由大到小的顺序设定M+1个阈值T0,T1,T2,…及TM,当神经网络参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=1,2……,M,T0,T1,T2,…及TM均为实数,且T0>T1>T2>…>TM≥0。
10.根据权利要求8所述的数据冗余方法,其中,所述数据包括稀疏神经网络参数,所述稀疏神经网络参数包括非零参数和非零参数位置,所述非零参数位置设置为第1重要等级,非零参数按照参数绝对值划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,…及TM,当非零参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,…及TM均为实数,且T1>T2>…>TM≥0。
11.根据权利要求8所述的数据冗余方法,其中,所述数据包括图计算应用数据,包括顶点数据和边数据,所述顶点数据设置为第1重要等级,边数据按照访问频率划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,…及TM,当边数据按照访问频率F满足Ti-1>F>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,…及TM-1均为实数,且T1>T2>…>TM≥0。
12.根据权利要求1-7中任一所述的数据冗余方法,其中,提取每一重要等级中的每一数据的重要比特位包括:
所述数据为浮点型参数,设置符号位、指数部分以及底数部分前y位指定为重要比特位,y为正整数;和/或
所述数据为定点型参数,设置符号位、数值部分前z位指定为重要比特位,z为正整数。
13.一种数据冗余装置,其中,包括:
重要等级划分单元,用于将数据划分为M个重要等级,所述数据包括神经网络参数,稀疏神经网络参数或图计算应用数据;
重要比特位提取单元,用于提取每一重要等级中的每一数据的重要比特位;以及
数据冗余处理单元,用于针对所述重要比特位进行数据冗余处理,其中M为正整数。
14.根据权利要求13所述的数据冗余装置,其中,所述数据冗余处理包括副本冗余处理和/或纠错编码处理,所述数据冗余处理单元包括:
冗余存储单元,用于存储冗余数据;以及
读写控制单元,用于读取和/或写入数据。
15.根据权利要求14所述的数据冗余装置,其中,所述纠错编码处理包括循环冗余校验(CRC)和/或错误检查和纠正(ECC)。
16.根据权利要求15所述数据冗余装置,其中,对数据进行纠错编码处理包括:冗余存储单元对该数据采用循环冗余校验(CRC)的方式进行冗余存储,当读写控制单元进行读操作时,读取存储循环冗余校验码,并对原始数据进行循环冗余校验码计算,如果两个循环冗余校验码不一致,则按照存储的循环冗余校验码对该数据进行修正,当读写控制单元进行写操作时,冗余存储单元同时存储该数据的原始数据和循环冗余校验码。
17.根据权利要求15所述的数据冗余装置,其中,对数据进行纠错编码处理包括:对该数据采用错误检查和纠正(ECC)内存进行冗余存储,在进行读写操作时,错误检查和纠正(ECC)内存自动进行检错和纠错处理。
18.根据权利要求14所述的数据冗余装置,其中,所述副本冗余处理包括同时备份N份副本,其中N≥2,为正整数。
19.根据权利要求18所述的数据冗余装置,其中,对数据的重要比特位进行副本冗余处理包括:当读写控制单元进行读操作时,对于重要比特位同时读取原始数据和备份的N份数据,若出现数据不一致,则取相同的N份数据作为最终读取的数据,同时将第N+1份不一致数据修复,当读写控制单元进行写操作时,对于重要比特位同时写回到N个备份地址,同时冗余存储单元保证原始数据中的数据和N个备份数据一致。
20.根据权利要求13-19中任一所述的数据冗余装置,其中,所述重要等级划分单元将数据划分为M个重要等级包括根据数据的大小、数据绝对值的大小、数据的类型、数据的读操作频率及数据的写操作频率中的至少一个来进行划分。
21.根据权利要求20所述的数据冗余装置,其中,所述数据包括神经网络参数,按照神经网络参数的绝对值划分M个重要等级,按照由大到小的顺序设定M+1个阈值T0,T1,T2,…及TM,当神经网络参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=1,2……,M,T0,T1,T2,…及TM均为实数,且T0>T1>T2>…>TM≥0。
22.根据权利要求20所述的数据冗余装置,其中,所述数据包括稀疏神经网络参数,所述稀疏神经网络参数包括非零参数和非零参数位置,所述非零参数位置设置为第1重要等级,非零参数按照参数绝对值划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,…及TM,当非零参数的绝对值D满足Ti-1>D>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,…及TM均为实数,且T1>T2>…>TM≥0。
23.根据权利要求20所述的数据冗余装置,其中,所述数据包括图计算应用数据,包括顶点数据和边数据,所述顶点数据设置为第1重要等级,边数据按照访问频率划分M-1个重要等级,按照由大到小的顺序设定M个阈值T1,T2,…及TM,当边数据按照访问频率F满足Ti-1>F>Ti时,该数据归为第i个重要等级,其中i=2,3……,M,T1,T2,…及TM-1均为实数,且T1>T2>…>TM≥0。
24.根据权利要求13-19中任一所述的数据冗余装置,其中所述重要比特位提取单元提取每一重要等级中的每一数据的重要比特位包括:
所述数据为浮点型参数,设置符号位、指数部分以及底数部分前y位指定为重要比特位,y为正整数;和/或
所述数据为定点型参数,设置符号位、数值部分前z位指定为重要比特位,z为正整数。
CN201710578784.XA 2017-07-05 2017-07-14 数据冗余方法及装置 Active CN109254867B (zh)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN201710578784.XA CN109254867B (zh) 2017-07-14 2017-07-14 数据冗余方法及装置
CN201880001841.0A CN109478144B (zh) 2017-07-05 2018-07-05 一种数据处理装置和方法
EP19217773.1A EP3660739A1 (en) 2017-07-05 2018-07-05 Data processing apparatus and method
CN202010617408.9A CN111553473B (zh) 2017-07-05 2018-07-05 数据冗余方法及执行数据冗余方法的神经网络处理器
EP18828801.3A EP3637258A4 (en) 2017-07-05 2018-07-05 DATA PROCESSING APPARATUS AND METHOD
PCT/CN2018/094710 WO2019007406A1 (zh) 2017-07-05 2018-07-05 一种数据处理装置和方法
EP19218378.8A EP3660629B1 (en) 2017-07-05 2018-07-05 Data processing apparatus and method
US16/698,996 US20200110635A1 (en) 2017-07-05 2019-11-28 Data processing apparatus and method
US16/698,992 US11307864B2 (en) 2017-07-05 2019-11-28 Data processing apparatus and method
US16/698,993 US11086634B2 (en) 2017-07-05 2019-11-28 Data processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710578784.XA CN109254867B (zh) 2017-07-14 2017-07-14 数据冗余方法及装置

Publications (2)

Publication Number Publication Date
CN109254867A CN109254867A (zh) 2019-01-22
CN109254867B true CN109254867B (zh) 2021-06-08

Family

ID=65050686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710578784.XA Active CN109254867B (zh) 2017-07-05 2017-07-14 数据冗余方法及装置

Country Status (1)

Country Link
CN (1) CN109254867B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080152B2 (en) * 2019-05-15 2021-08-03 Western Digital Technologies, Inc. Optimized neural network data organization

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547144A (zh) * 2008-12-29 2009-09-30 华为技术有限公司 一种提高数据传输质量的方法、装置和***
CN105164756A (zh) * 2013-03-11 2015-12-16 微软技术许可有限责任公司 近似多层单元存储器操作
WO2016060675A1 (en) * 2014-10-17 2016-04-21 Hitachi, Ltd. Method and apparatus for managing data recovery of distributed storage system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037762B2 (en) * 2013-07-31 2015-05-19 Dropbox, Inc. Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101547144A (zh) * 2008-12-29 2009-09-30 华为技术有限公司 一种提高数据传输质量的方法、装置和***
CN105164756A (zh) * 2013-03-11 2015-12-16 微软技术许可有限责任公司 近似多层单元存储器操作
WO2016060675A1 (en) * 2014-10-17 2016-04-21 Hitachi, Ltd. Method and apparatus for managing data recovery of distributed storage system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
《Approximate storage insoli-state memories》;Adrian等;《2013 46th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)》;20131231;全文 *
《分布式***中数据冗余的研究》;刘桂华;《电脑知识与技术》;20160630;第12卷(第18期);全文 *
《适应冷热数据存储的多编码架构的设计与实证》;魏学才等;《计算机应用于软件》;20170228;第34卷(第2期);全文 *

Also Published As

Publication number Publication date
CN109254867A (zh) 2019-01-22

Similar Documents

Publication Publication Date Title
CN111553473B (zh) 数据冗余方法及执行数据冗余方法的神经网络处理器
US9645750B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US10592410B2 (en) Backup mechanism of writing sequential data to single-level cell buffer and multi-level cell buffer
US20090319843A1 (en) Method and apparatus for error correction
US10157099B2 (en) Data storage device and data maintenance method thereof
CN103370692A (zh) 一种修复数据的方法及装置
CN108958961B (zh) 数据储存装置以及数据错误管理方法
US20190095276A1 (en) Method for Processing Data Stored in a Memory Device and a Data Storage Device Utilizing the Same
US20150309872A1 (en) Data recovery once ecc fails to correct the data
CN112632643A (zh) 防止闪存数据丢失的方法、固态硬盘控制器、固态硬盘
CN109390027A (zh) 解码方法及相关的闪存控制器与电子装置
CN107992268B (zh) 一种坏块标记的方法及相关装置
CN104375905A (zh) 一种基于数据块的增量备份的方法和***
CN112256193A (zh) 一种提高固态硬盘数据安全性的方法、装置和存储介质
US20200091937A1 (en) Generating hamming weights for data
CN109254867B (zh) 数据冗余方法及装置
CN113220221B (zh) 存储器控制器与数据处理方法
CN103279402A (zh) 基于多层单元固态硬盘的数据恢复方法及固态硬盘
US9619320B2 (en) Error correction for non-volatile memory
WO2013162598A1 (en) Local checkpointing using a multi-level cell
EP2820548B1 (en) Versioned memories using a multi-level cell
CN109542687B (zh) 一种raid级别转换方法及装置
TWI541818B (zh) 於記憶體陣列編碼資料之技術
CN109388519B (zh) 错误恢复方法及装置、处理器
TWI750811B (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