CN106416085A - 运算电路、编码电路以及解码电路 - Google Patents

运算电路、编码电路以及解码电路 Download PDF

Info

Publication number
CN106416085A
CN106416085A CN201480079084.0A CN201480079084A CN106416085A CN 106416085 A CN106416085 A CN 106416085A CN 201480079084 A CN201480079084 A CN 201480079084A CN 106416085 A CN106416085 A CN 106416085A
Authority
CN
China
Prior art keywords
circuit
xor
data
data block
selection
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.)
Pending
Application number
CN201480079084.0A
Other languages
English (en)
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN106416085A publication Critical patent/CN106416085A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/07Arithmetic codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6563Implementations using multi-port memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6572Implementations using a tree structure, e.g. implementations in which the complexity is reduced by a tree structure from O(n) to O (log(n))
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明涉及运算电路、编码电路以及解码电路。使运算处理高速化。存储器(M0~M15)对成为进行异或运算的单位的数据块进行保持,选择电路(2a~2p)接受选择信号,并基于选择信号来选择从存储器(M0~M15)读出的多个数据块中的、使用于异或运算的2个以上的数据块,XOR电路(3a~3o)(异或运算电路)进行基于由选择电路(2a~2p)选择出的2个以上的数据块的异或运算。

Description

运算电路、编码电路以及解码电路
技术领域
本发明涉及运算电路、编码电路以及解码电路。
背景技术
XOR(异或)运算例如在生成附加于发送数据的奇偶校验位时等进行。
近年来,为了避免因在使用了TCP(Transmission Control Protocol:传输控制协议)/IP(Internet Protocol:因特网互联协议)的通信时所产生的数据包丢失所造成的通信速度的降低,提出了RPS(Random Packet Stream:自动恢复接受放丢失的数据包的功能)技术。RPS技术是自动生成数据转送时消失的数据包的技术。在RPS技术中,为了生成使用于数据包恢复的编码数据(冗余数据),利用发送装置多次进行固定的数据量的数据块间的XOR运算。
专利文献1:日本特开平11-237997号公报
专利文献2:日本特开2001-147827号公报
专利文献3:特开平11-102301号公报
然而,如基于RPS技术的编码处理那样,利用多个数据块的组合多次反复XOR运算的处理若利用软件进行则花费处理时间,被认为不能够应对通信速度的高速化发展的状况。
鉴于此,可以考虑利用硬件进行XOR运算。然而,仅使软件硬件化,有可能不会带来运算的高速化。例如若反复将某个数据块间的XOR运算结果暂时储存于存储器,并在该结果与其它的数据块间进行XOR运算这样的处理,则在存储器的数据转送速度慢的情况下,导致处理时间变长。
发明内容
根据发明的一观点,提供一种运算电路,该运算电路具有:多个存储器,保持成为进行异或运算的单位的数据块;多个选择电路,接受选择信号,并基于上述选择信号来选择从上述多个存储器读出的多个上述数据块中的使用于异或运算的2个以上的数据块;以及1个或者多个异或运算电路,进行基于由上述多个选择电路选择出的上述2个以上的数据块的异或运算。
另外,根据发明的一观点,提供一种编码电路,该编码电路具有:多个存储器,保持成为进行异或运算的单位的数据块;多个选择电路,接受选择信号,并基于上述选择信号来选择从上述多个存储器读出的多个上述数据块中的使用于异或运算的2个以上的数据块;以及1个或者多个异或运算电路,进行基于由上述多个选择电路选择出的上述2个以上的数据块的异或运算,生成编码数据。
另外,根据发明的一观点,提供一种解码电路,该解码电路具有:多个存储器,保持成为进行异或运算的单位的编码数据即数据块;多个选择电路,接受选择信号,并基于上述选择信号来选择从上述多个存储器读出的多个上述数据块中的使用于异或运算的2个以上的数据块;1个或者多个异或运算电路,进行基于由上述多个选择电路选择出的上述2个以上的数据块的异或运算,生成解码数据。
根据公开的运算电路、编码电路以及解码电路,能够使运算处理高速化。
本发明的上述以及其它的目的、特征以及优点根据与表示作为本发明的例子而优选的实施方式的添加的附图相关的以下的说明变得更清楚。
附图说明
图1是表示根据第一实施方式的运算电路的一个例子的图。
图2是对RPS编码处理的一个例子进行说明的图。
图3是表示信息处理装置的一个例子的图。
图4是对进行RPS编码处理的FPGA的一个例子进行说明的图。
图5是表示根据第二实施方式的编码电路的一个例子的图。
图6是表示控制电路的一个例子的图。
图7是表示RPS编码矩阵的一个例子的图。
图8是表示RPS编码处理的一个例子的流程的流程图。
图9是说明针对通过RPS编码处理所得到的编码数据的解码处理的一个例子的图。
图10是表示根据第二实施方式的解码电路的一个例子的图。
图11是对接收编码矩阵的生成例进行说明的图。
图12是表示生成的接收编码矩阵的一个例子的图。
图13是表示解码向量的生成处理的一个例子的流程的流程图。
图14是表示更新后的接收编码矩阵的一个例子的图。
图15是表示矩阵ops的一个例子的图。
图16是表示矩阵ops的列向量(解码向量)与通过该列向量所解码的数据块的关系的一个例子的图。
图17是表示根据第二实施方式的编码电路的变形例的图(其1)。
图18是表示根据第二实施方式的编码电路的变形例的图(其2)。
图19是表示根据第二实施方式的编码电路的变形例的图(其3)。
图20是对编码处理的一个例子的流程进行说明的图。
具体实施方式
以下,参照附图,对用于实施发明的方式进行说明。
(第一实施方式)
图1是表示根据第一实施方式的运算电路的一个例子的图。
运算电路1例如是进行编码处理的编码电路或者进行解码处理的解码电路等。
运算电路1具有存储器M0~M15、选择电路2a~2p、XOR电路3a~3o、被输入选择信号的输入端子P1、输出XOR运算结果的输出端子P2。此外,将电路元件间连接起来的信号线例如可以捆绑64位宽度等多个位。
存储器M0~M15例如是RAM(Random Access Memory:随机存取存储器),对成为进行XOR运算的单位的多个数据块进行保持。数据块例如是按照一定的数据尺寸分割编码对象数据而得的块。在图1的例子中,16个数据块分别被保持在存储器M01~M15的任意一个中。另外,存储器M0~M15分别将保持的数据块输出给选择电路2a~2p。
选择电路2a~2p接受从输入端子P1输入的选择信号,并基于该选择信号来选择是否将保持在存储器M0~M15中的数据块使用于XOR运算。作为选择电路2a~2p,能够使用AND电路(逻辑和运算电路)。选择电路2a~2p并不限于AND电路,但通过使用AND电路,能够成为简单的电路。
以下,对选择电路2a~2p为AND电路的情况进行说明。
选择电路2a~2p进行存储器M0~M15输出的数据块和16位的选择信号的AND运算,并将其运算结果输出给XOR电路3a~3h。此时,根据从输入端子P1输入的16位的选择信号的成为“1”的位,从选择电路2a~2p输出保持在存储器M0~M15中的多个数据块的一个或者多个。
在图1的上侧,假定运算电路1进行基于RPS技术的编码处理(以下称为RPS编码处理)的情况,示出RPS编码矩阵的一个例子。RPS编码矩阵被存储在未图示的存储部中,作为选择信号,16位的列向量按顺序被输入至输入端子P1。图1的RPS编码矩阵是16行30列的矩阵。列向量中的行与存储器M0~M15对应。换句话说,在列向量中的某行的值为“1”时,保持在与该行对应的存储器中的数据块被使用于XOR运算。
例如列编号为17的列向量从输入端子P1被输入的情况下,存储在与第1、第3、第5~第13、第15行对应的存储器M0、M2、M4、…、M12、M14中的数据块从选择电路2a、2c、2e、…、2m、2o输出。
另外,在列编号为25的列向量从输入端子P1被输入的情况下,保持在与第2、第4、…、第12、第14、第16行对应的存储器M1、M3、…、M11、M13、M15中的数据块从选择电路2b、2d、…、2l、2n、2p输出。
XOR电路3a~3o进行基于由选择电路2a~2p选择出的数据块的XOR运算。XOR运算结果从输出端子P2输出。
XOR电路3a的2个输入端子与选择电路2a、2b的输出端子连接,XOR电路3b的2个输入端子与选择电路2c、2d的输出端子连接。另外,XOR电路3c的2个输入端子与选择电路2e、2f的输出端子连接,XOR电路3d的2个输入端子与选择电路2g、2h的输出端子连接。另外,XOR电路3e的2个输入端子与选择电路2i、2j的输出端子连接,XOR电路3f的2个输入端子与选择电路2k、2l的输出端子连接。另外,XOR电路3g的2个输入端子与选择电路2m、2n的输出端子连接,XOR电路3h的2个输入端子与选择电路2o、2p的输出端子连接。
XOR电路3i的2个输入端子与XOR电路3a、3b的输出端子连接,XOR电路3j的2个输入端子与XOR电路3c、3d的输出端子连接。另外,XOR电路3k的2个输入端子与XOR电路3e、3f的输出端子连接,XOR电路3l的2个输入端子与XOR电路3g、3h的输出端子连接。XOR电路3m的2个输入端子与XOR电路3i、3j的输出端子连接,XOR电路3n的2个输入端子与XOR电路3k、3l的输出端子连接。XOR电路3o的2个输入端子与XOR电路3m、3n的输出端子连接,XOR电路3o的输出端子与输出端子P2连接。
在图1的例子中,如上述那样XOR电路3a~3o连接成树状(二叉树状)。此外,XOR电路并不限于2个输入,也可以为3个输入以上,例如可以利用一个XOR电路进行从选择电路2a~2p输出的数据块的XOR运算。
(运算电路1的动作例)
以下,对运算电路1的动作的一个例子进行说明。此外,在以下作为图1所示那样的RPS编码矩阵的列向量是输入给选择电路2a~2p的选择信号的情况进行说明。
对输入端子P1按顺序输入列编号为0~29的列向量作为选择信号。
在列编号为0~15的各列向量中,某一行的值为1,其它的行的值为0。在作为选择信号而将这样的列向量输入到输入端子P1时,保持在与值为1的行对应的存储器中的数据块从选择电路2a~2p的任意一个输出。从其它的选择电路输出0。
由此,从具有上述那样的连接关系的XOR电路3a~3o的最后级的XOR电路3o输出保持在存储器M0~M15的任意一个中的数据块本身。
在列编号为16~29的各列向量中,多个行的值为1。在作为选择信号而将这样的列向量输入到输入端子P1时,保持在与值为1的行对应的存储器中的多个数据块从选择电路2a~2p的任意2个以上输出。从其它的选择电路输出0。
由此,从具有如上述那样的连接关系的XOR电路3a~3o的最后级的XOR电路3o输出从选择电路2a~2p的任意2个以上输出的多个数据块的XOR运算结果。
如以上那样,根据本实施方式的运算电路1暂时利用多个存储器M0~M15保持各数据块,从自存储器M0~M15读出的多个数据块通过选择电路2a~2p选择使用于运算的数据块,并转交给XOR电路3a~3o。通过这样的并列化处理,如RPS编码处理那样在利用多个数据块间的组合进行很多的XOR运算时,提高运算处理的效率,实现高速的运算。
(第二实施方式)
以下,作为进行XOR运算的运算电路的例子,对包含于发送电路,进行RPS编码处理的编码电路、以及包含于接收电路,对通过RPS编码处理所编码的编码数据进行解码的解码电路进行说明。
首先,对RPS编码处理的一个例子进行说明。
图2是说明RPS编码处理的一个例子的图。
首先,在基于RPS编码的处理中,数据被分割为固定尺寸的数据块。此处,为了说明,16KB的数据被分割为每个1KB的16个数据块,将分割成的端子块设为块b0~b15。
接下来,编码电路从通过数据的分割而得到的块b0~b15选择一个或者多个,并通过选择出的块进行XOR运算,从而生成编码数据d0~d15以及冗余编码数据e0~e13。
之后,对编码数据等,作为数据包而在数据包报头追加组合信息(在后述的例子中,图7的RPS编码矩阵的列向量),再赋予通信数据包报头后,通过UDP(User DatagramProtocol:用户数据报协议)通信进行发送。此时,即使在传送路径上产生数据包的消失、替换,接收侧通过对接收到的编码数据等和接收到的组合信息(在后述的例子中,图12的接收编码矩阵)应用高斯消元法等,能够对原始的发送数据进行解码。
接下来,对使用于数据通信的信息处理装置的一个例子进行说明。
图3是表示信息处理装置的一个例子的图。
信息处理装置4具有计算机5、和安装在计算机5的功能扩展板6。计算机5具有CPU(Central Processing Unit:中央处理器)5A、主存储部5B、PCIe(PCI express:总线接口)总线5C。在功能扩展板6上搭载存储器芯片6A、FPGA(Field-Programmable Gate Array:现场可编程门阵列)6B、LAN(Local Area Network:局域网)连接器6C。另外,CPU5A和FPGA6B经由PCIe总线5C连接。
CPU5A从未图示的HDD(Hard Disk Drive:硬盘驱动器)等读出发送数据,并使主存储部5B储存。另外,对FPGA6B指示RPS编码处理的执行等。
主存储部5B储存有发送数据、CPU5A的处理所需的各种数据。主存储部5B例如使用RAM。
存储器芯片6A通过FPGA6B具有的DMA(Direct Memory Access:直接内存存取)控制器储存从主存储部5B转送来的数据。存储器芯片6A例如使用RAM。
FPGA6B进行数据的RPS编码处理等,生成通信用的数据包,并输出给LAN连接器6C。
LAN连接器6C经由网络将FPGA6B输出的数据包转送给未图示的接收装置等。
(FPGA6B的一个例子)
图4是对进行RPS编码处理的FPGA的一个例子进行说明的图。
此外,在图4中,执行发送数据的RPS编码处理以外的控制以及功能的部分省略图示。
FPGA6B具有PCIe接口6B1、存储控制器6B2、通信处理电路6B3、控制电路7、编码电路8。
PCIe接口6B1是I/O设备等构成的PCIe端点,针对经由PCIe总线5C转送来的数据等进行物理层、数据链路层中的处理等。
存储控制器6B2是将储存在存储器芯片6A中的数据分割为固定尺寸的数据块,并转送给BRAM(Block RAM:块随机存储器)m0~m15的存储器接口。存储控制器6B2例如图2所示,将16KB的数据分割为固定尺寸1KB的16个块b0~b15,并转送给BRAMm0~m15。
通信处理电路6B3针对编码电路8输出的编码数据等进行网络层、数据链路层、物理层中的处理等,生成通信用的数据包并输出给LAN连接器6C。
控制电路7是进行编码电路8生成编码数据时的控制等的电路。控制电路7的电路构成后述。
编码电路8是通过进行多个数据块间的XOR运算来生成编码数据的电路。在图2的例子中,编码电路8进行块b0~b15间的XOR运算,并生成编码数据d0~d15以及冗余编码数据e0~e13。
(编码电路8的一个例子)
图5是表示根据第二实施方式的编码电路的一个例子的图。
编码电路8具有BRAMm0~m15、寄存器9a~9p、AND电路10a~10p、XOR电路11a~11o、寄存器12a~12o、输入端子P3、P4、P5、输出端子P6。
从控制电路7对输入端子P3输入使得能够向BRAMm0~m15写入数据块的WE(WriteEnable:允许写入)信号。
从控制电路7对输入端子P4输入BRAMm0~m15写入数据块时的写入地址信号、BRAMm0~m15读出数据块来输出给AND电路10a~10p时的读出地址信号。
从控制电路7对输入端子P5为AND电路10a~10p输入后述的RPS编码矩阵的列向量的各要素。
从存储器芯片6A经由存储控制器6B2对编码电路8供给被分割成固定尺寸的16个数据块。
BRAMm0~m15若经由输入端子P3、P4从控制电路7输入写入地址信号以及WE信号,则将供给的16个数据块例如图2的块b0~b15分别1块1块地进行写入储存。另外,BRAMm0~m15若经由输入端子P3从控制电路7输入读出地址信号,则分别读出储存的数据块例如各64位,并输出给寄存器9a~9p。
寄存器9a~9p连接在BRAMm0~m15的各个与AND电路10a~10b的各个之间。寄存器9a~9p对BRAMm0~m15输出的数据块进行保持,并调整保持的数据块的AND电路输出时机。例如寄存器9a~9b按照与未图示的时钟信号同步的时机,对从BRAMm0~m15供给的数据块进行保持并输出。在从BRAMm0~m15到AND电路10a~10p的距离有偏差的情况下,通过在AND电路10a~10p的输入侧设置这样的寄存器9a~9p,能够使向AND电路10a~10p的输入时机一致。
AND电路10a~10p作为选择电路发挥作用。AND电路10a~10p分别进行BRAMm0~m15输出的数据块和从输入端子P5输入的RPS编码矩阵的各值(相当于选择信号)的AND运算,并将其运算结果输出给XOR电路11a~11h。此时,AND电路10a~10p分别选择保持在与经由输入端子P5输入的列向量的值成为“1”的行对应的BRAMm0~m15中的数据块并输出。RPS编码矩阵的列向量后述。
XOR电路11a~11o进行AND电路10a~10p选择并输出的数据块间的XOR运算,且将其运算结果输出给输出端子P6。
XOR电路11a的2个输入端子与AND电路10a、10b的输出端子连接,XOR电路11b的2个输入端子与AND电路10c、10d的输出端子连接。另外,XOR电路11c的2个输入端子与AND电路10e、10f的输出端子连接,XOR电路11d的2个输入端子与AND电路10g、10h的输出端子连接。另外,XOR电路11e的2个输入端子与AND电路10i、10j的输出端子连接,XOR电路11f的2个输入端子与AND电路10k、10l的输出端子连接。另外,XOR电路11g的2个输入端子与AND电路10m、10n的输出端子连接,XOR电路11h的2个输入端子与AND电路10o、10p的输出端子连接。
XOR电路11i的2个输入端子经由寄存器12a、12b与XOR电路11a、11b的输出端子连接。XOR电路11j的2个输入端子经由寄存器12c、12d与XOR电路11c、11d的输出端子连接。另外,XOR电路11k的2个输入端子经由寄存器12e、12f与XOR电路11e、11f的输出端子连接。另外,XOR电路11l的2个输入端子经由寄存器12g、12h与XOR电路11g、11h的输出端子连接。XOR电路11m的2个输入端子经由寄存器12i、12j与XOR电路11i、11j的输出端子连接。XOR电路11n的2个输入端子经由寄存器12k、12l与XOR电路11k、11l的输出端子连接。XOR电路11o的2个输入端子经由寄存器12m、12n与XOR电路11m、11n的输出端子连接,XOR电路11o的输出端子经由寄存器12o与输出端子P6连接。输出端子P6将XOR电路11a~11o进行的数据块间的XOR运算结果作为编码数据(包括前述的编码数据和冗余编码数据)输出给通信处理电路6B3(图4)。
寄存器12a~12p具有与寄存器9a~9p同样的功能,进行XOR电路11a~11o间的数据输入输出的时机调整。
在图5的例子中,如上述那样,XOR电路11a~11o遍及多级而连接成树状(二叉树状)。此外,XOR电路并不限于2个输入,可以为3个输入以上,例如也可以通过一个XOR电路进行从AND电路10a~10p输出的数据块的XOR运算。
(控制电路7的一个例子)
图6是表示控制电路的一个例子的图。
为了说明控制电路7与前述的编码电路8的连接,对编码电路8的一部分也进行图示。
此外,在图6中,对于进行编码处理的控制的部分以外省略图示。
控制电路7具有主控制电路13。主控制电路13具有加法器14、寄存器15、编码矩阵保持部16、比较电路17、寄存器18、加法器19。并且,控制电路7具有寄存器20、21。
加法器14例如具有保持1的触发器,使保持在寄存器15中的地址自加1(+1)。
寄存器15对BRAMm0~m15的写入地址或读出地址进行保持,另外,将保持的写入地址或读出地址经由输入端子P3并输出给BRAMm0~m15。寄存器15与未图示的时钟信号同步地对在保持的地址上通过加法器14进行+1加法所得的地址进行保持。
编码矩阵保持部16例如具有多个寄存器,储存RPS编码矩阵。
图7是表示RPS编码矩阵的一个例子的图。
图7所示的RPS编码矩阵是16行30列的矩阵。
基于RPS编码处理的编码数据按照RPS编码矩阵的每个列向量而生成。RPS编码矩阵的列编号为0~15的列向量在图2的例子中,是生成编码数据d0~d15时所使用的列向量。另外,RPS编码矩阵的列编号为16~29的列向量在图2的例子中,是生成冗余编码数据e16~e29时所使用的列向量。
列向量中的行与BRAMm0~m15对应。换句话说,在列向量中的某一行的值为“1”时,保持在与该行对应的BRAM中的数据块被使用于XOR运算。
图6的编码矩阵保持部16根据从寄存器18输出的列编号而将RPS编码矩阵的列向量输出给寄存器21。在初始状态的情况下,保持在寄存器18中的值为0,所以编码矩阵保持部16将列编号为0(j=0)的列向量输出给寄存器21。
比较电路17基于加法器14中的自加1次数来判定BRAMm0~m15中1数据块量(例如1KB)的写入是否结束,若1数据块量的写入终结束,则向寄存器18输出设置信号。
寄存器18对RPS编码矩阵的列编号进行保持。另外,寄存器18若接受比较电路17输出的设置信号,则与未图示的时钟信号同步地对在保持的列编号上通过加法器19进行+1加法所得的列编号的值。
加法器19例如具有保持1的触发器,使保持在寄存器18中的列编号自加1。
寄存器20若能够进行向BRAMm0~m15的写入,则对由主控制电路13内的未图示的WE信号生成部生成的WE信号进行保持。另外,寄存器20将保持的WE信号经由输入端子P4输出给BRAMm0~15。
寄存器21将保持的RPS编码矩阵的列向量的各值经由输入端子P5输出给AND电路10a~10p。例如列向量的第一行的值向AND电路10a输入,第二行的值向AND电路10b输入。
此外,根据本实施方式的编码电路8包含在FPGA6B内,但也可以通过ASIC(Application Specific Integrated Circuit:专用集成电路)等来实现。
(RPS编码处理的一个例子)
以下,对由编码电路8进行的RPS编码处理的一个例子进行说明。
图8是表示RPS编码处理的一个例子的流程的流程图。
首先,进行向BRAMm0~m15的数据块的写入(步骤S1)。在步骤S1的处理中,控制电路7断言WE信号,向BRAMm0~15供给写入地址。而且,BRAMm0~m15从存储器芯片6A经由存储控制器6B2写入被分割成固定尺寸的16个数据块。
另外,主控制电路13将列编号j设定为0(步骤S2)。在步骤S2的处理中,主控制电路13的寄存器18的初始值被设定为0。
接下来,控制电路7将RPS编码矩阵的列编号j的列向量的各值输入给AND电路10a~10p(步骤S3)。在步骤S3的处理中,图6所示那样的寄存器21经由输入端子P5将保持的RPS编码的列编号j的列向量的各值输入给AND电路10a~10p。
例如列编号j的列向量的第一行的值依次向AND电路10a输入,第二行的值依次向AND电路10b输入。此时,AND电路10a~10p进行列编号j的列向量的各值和BRAMm0~15的数据块的AND运算,并将其运算结果输出给XOR电路11a~11h。由此,AND电路10a~10p根据列向量的成为“1”的行的值来选择保持在BRAMm0~15中的数据块,并输出给XOR电路11a~11h。例如在图7所示的RPS编码矩阵的列编号为0的列向量(j=0)被输入到AND电路10a~10p的情况下,由于仅第一行的值为“1”,所以输入第一行的值的AND电路10a选择BRAMm0的数据块并输出。
之后,编码电路8进行XOR运算(步骤S4)。在步骤S4的处理中,通过XOR电路11a~11h进行使用了保持在BRAMm0~m15中的数据块的XOR运算。
对于列编号j为0~15的各列向量,某一行的值为1,其它的行的值为0。在这样的列向量被输入到输入端子P5时,从具有上述那样的连接关系的XOR电路11a~11o的最后级的XOR电路11o输出保持在与值为1的行对应的BRAM中的数据块本身。
对于列编号为16~29的各列向量,多个行的值为1。在这样的列向量被输入到输入端子P5时,从具有上述那样的连接关系的XOR电路11a~11o的最后级的XOR电路11o输出从AND电路10a~10p的任意2个以上输出的多个数据块的XOR运算结果。
接下来,主控制电路13判定列编号j是否达到最大值的29(步骤S5),在列编号j小于29的期间,通过加法器19使列编号j进行+1(步骤S6)。步骤S6之后,重复从步骤S3的处理。
另外,在列编号j达到29的情况下,与1数据块有关的RPS编码处理完成。在编码电路8进行与下一个数据块有关的RPS编码处理时,重复从步骤S1的处理。
之后,从编码电路8输出的编码数据以及冗余编码数据经过通信处理电路6B3的处理等而作为数据包被转送。另外,此时,使用于编码的列向量被追加至该数据包报头,并与编码数据以及冗余编码数据一起被转送。
如以上那样,根据本实施方式的编码电路8暂时由BRAMm0~m15中保持各数据块,并基于列向量的值由AND电路10a~10p选择使用于运算的数据块并由XOR电路11a~11o进行XOR运算。通过这样的并列化处理,在进行很多的XOR运算的RPS编码处理等中,提高运算处理的效率,实现高速的运算(编码处理)。
此外,在编码电路8中,在使用64位×512字节的BRAMm0~m15的情况下,如果是1KB的数据块,则BRAMm0~m15能够分别保持四个量的数据块。由此,BRAMm0~m15能够连续地向寄存器9a~9p输入四个量的数据块,所以编码处理的处理能力进一步提高。而且,通过将BRAMm0~m15选为写入和读出能够同时执行的双端口存储器,能够隐瞒向BRAM写入新的数据块的时间,所以能够进一步提高处理能力。
接下来,对解码处理的一个例子进行说明。
(解码处理的一个例子)
图9是说明针对通过RPS编码处理所得到的编码数据的解码处理的一个例子的图。
在图9中示出对从前述的编码电路8经由网络发送到解码电路(参照图10)的数据包所包含的编码数据d0~d15以及冗余编码数据e0~e13进行解码的样子。
在解码电路(参照图10)中,参照接收到的数据包的报头,从报头提取编码所使用的数据块的组合信息(RPS编码矩阵的列向量)。
由于编码数据d0、d1、d3~d15相当于作为数据块的块b0、b1、b3~b15,所以保持原样被输出。
在图9的例子中示出包括编码数据d2的数据包消失的例子。解码电路从能够接收到的编码数据以及冗余编码数据、和提取出的组合信息生成(解码)消失的数据包的块b2。例如块b2如图9所示,通过编码数据d0、d1、d3、…、d15、冗余编码数据e0的XOR运算而生成。
这样,即使解码电路进行XOR运算,电路结构也与编码电路8同样。
接下来,使用图10,对进行解码处理时使用的解码电路进行说明。此外,解码电路例如与编码电路8一起包含在图3所示的FPGA6B内。控制解码电路的控制电路能够通过与图6所示那样的控制电路7同样的电路来实现。
(解码电路的一个例子)
图10是表示根据第二实施方式的解码电路的一个例子的图。
解码电路8a具有BRAMn0、n1、n2、n3、…、n26、n27、n28、n29、寄存器ra0、ra1、ra2、ra3、…、ra26、ra27、ra28、ra29。解码电路8a还具有AND电路a0、a1、a2、a3、…、a26、a27、a28、a29、XOR电路部22、输入端子P13~P15、和输出端子P16。
对输入端子P13输入能够使得写入BRAMn0~n29的编码数据等的WE信号。
对输入端子P14输入BRAMn0~n29写入编码数据等时的写入地址、BRAMn0~n29读出编码数据等并输出给AND电路a0~a29时的读出地址。
对输入端子P15输入向AND电路a0~a29供给的后述的解码向量的各值。
BRAMn0~n29若经由输入端子P13、P14输入写入地址、WE信号,则将接收到的编码数据等分别1块1块地写入并保持。另外,BRAMn0~n29若经由输入端子P13输入读出地址,则分别将保持的编码数据等例如各64位地输出给寄存器ra0~ra29。
BRAMn0~n29与编码电路8输出的30个数据块(编码数据)即,编码数据d0~d15和冗余编码数据e0~e13对应,有30个。寄存器ra0~ra29、AND电路a0~a29也同样。
寄存器ra0~ra29具有与图5所示的寄存器9a~9p同样的功能。
AND电路a0~a29与图5所示的AND电路10a~10p同样地作为选择电路发挥作用。AND电路a0~a29分别进行BRAMn0~n29输出的编码数据或者冗余编码数据和从输入端子P5输入的解码向量(作为选择信号发挥作用)的各值的AND运算。而且,AND电路a0~a29将其运算结果输出给XOR电路部22。此时,AND电路a0~a29分别根据经由输入端子P15输入的解码向量(列向量)成为“1”的行来选择BRAMn0~n29的编码数据或者冗余编码数据并输出。
XOR电路部22省略图示,但例如和图5所示的编码电路8同样地成为多个XOR电路和寄存器连接成树状的电路。
XOR电路部22进行通过AND电路a0~a29所选择并被输入的编码数据或者冗余编码数据的XOR运算,对原始的数据块进行解码。
输出端子P16输出解码出的原始的数据块。
以下,在说明解码电路8a的动作前,先对使用于解码处理的解码向量的生成处理进行说明。
(解码向量的生成处理例)
解码向量例如由控制解码电路8a的未图示的控制电路生成。
每当生成解码向量时,首先,生成以下那样的接收编码矩阵。
图11是对接收编码矩阵的生成例进行说明的图。
另外,图12是表示生成的接收编码矩阵的一个例子的图。
在包括通过RPS编码处理编码所得的数据(编码数据或者冗余编码数据)的数据包的报头包含RPS编码矩阵的列向量。
例如接收侧的控制电路每当接收上述那样的数据包时,从报头提取上述列向量,并从列编号=0起按接收顺序排列,从而生成图12所示那样的接收编码矩阵。
图12所示的接收编码矩阵(16行16列)是在接收到16个数据包的时刻生成的。以下,将接收编码矩阵的列向量例如使用列编号c表现为列向量D(c),将列向量D(c)的第u行的值表现为要素[u]。
此外,图12所示的“基向量”和“基向量候补”后述。
从上述那样的接收编码矩阵生成解码向量。
解码处理例如与作为1次的联立方程式的解法而已知的高斯消元法相似。例如在1次的联立方程式中的、作为解的系数的矩阵为A、作为解的列向量为X、作为常量的列向量为C时,1次的联立方程式表现为AX=C。而且,对于AX=C,以矩阵A成为单位矩阵E的方式应用高斯消元法,求出EX=C1,即,X=C1。
在根据本实施方式的解码处理中,接收编码矩阵用矩阵A表示,原始的数据块用列向量X表示,编码数据或者冗余编码数据用列向量C表示。
此处,作为输入给解码电路8a的AND电路a0~a29的选择信号发挥作用的解码向量基于接收编码矩阵,例如在控制解码电路8a的未图示的控制电路中例如以下那样生成。
图13是表示解码向量的生成处理的一个例子的流程的流程图。
首先,进行代入多个解码向量的值的矩阵ops的初始化(步骤S10)。
矩阵ops的初始化通过计算矩阵ops的对角要素成为1、其它的要素成为0的单位矩阵来进行。另外,矩阵ops具有与接收编码矩阵的列数数目相同的行数以及列数。
接下来,接收编码矩阵的列编号c被设定为0(步骤S11)。列编号c是在后述的步骤S13的处理中,代入基向量或者基向量候补的列编号的变量。
之后,对接收编码矩阵所包含的列向量,进行基向量、基向量候补的决定(步骤S12)。
基向量仅具有一个成为1的要素,还是相互正交的向量。另外,以下,将要素[u](行编号为u的值)成为1的基向量称为要素[u]的基向量。在图12所示的接收编码矩阵的例子中,若将列编号c的列向量设为D[c],则列编号c为0~12的列向量D(0)~D(12)分别被决定为要素[3]~[12]的基向量。
基向量候补是在接收编码矩阵中不存在要素[u]的基向量的情况下,要素[u]成为1的列向量。例如在图12所示的接收编码矩阵中不存在要素[0]~[2]的基向量。因此,要素[0]成为1的列向量D(13)被决定为要素[0]的基向量候补,要素[2]成为1的列向量D(14)被决定为要素[2]的基向量候补。另外,要素[1]成为1的列向量D(15)被决定为要素[1]的基向量候补。
接下来,进行将接收编码矩阵的列向量向基向量变换的处理(步骤S13)。
在步骤S13的处理中,首先,在接收编码矩阵中,在与基向量(或者基向量候补)的成为1的要素相同的行编号检测要素成为1的列向量。而且,利用该要素和基向量的该要素的XOR运算结果更新检测出的列向量的该要素。由于1和1的XOR运算结果为0,所以检测出的列向量的该要素成为0。通过在接收编码矩阵的各基向量(或者基向量候补)中重复这样的处理,从而将接收编码矩阵的基向量候补变换为基向量。
图14是表示被更新的接收编码矩阵的一个例子的图。
通过步骤S13的处理,作为图12所示的基向量候补的列向量D(13)~(15)如图14所示那样成为要素[0]~[1]的基向量。
另外,在上述的步骤S13的处理中,在将接收编码矩阵的基向量候补变换为基向量时的XOR运算处理结果被代入到矩阵ops的各要素时,例如生成以下那样的矩阵ops。
图15是表示矩阵ops的一个例子的图。
在矩阵ops的各要素中代入将接收编码矩阵的基向量候补向基向量变换时的、XOR运算结果。以下,将矩阵ops的列编号i的列向量记载为列向量op(i)。
在图12所示的接收编码矩阵中,为了将列向量D(13)~D(15)变换为基向量,而进行上述那样的基于XOR运算的更新处理。通过该XOR运算结果,矩阵ops的列向量op(13)~(15)在矩阵的对角要素以外具有成为1的要素。
该矩阵ops的列向量用作解码向量。
图16是表示矩阵ops的列向量(解码向量)与通过该列向量解码的数据块的关系的一个例子的图。
此外,在图16中,为了便于说明,图15所示的矩阵ops的列向量op(0)~op(15)的各个用32位的2进制表现。
列向量op(0)~op(15)的右端的要素是位0,与列向量op(0)~op(15)的第一行的要素对应。
如上述那样,矩阵ops的列向量op(0)~op(15)的值成为将对应的列编号的接收编码矩阵的列向量向基向量变更时的XOR运算结果的值。
通过将这样的矩阵ops的列向量用作解码向量,在解码电路8a中,在编码数据或者冗余编码数据间,进行与将接收编码矩阵向基向量变换时的XOR运算同样的处理。
通过矩阵ops的列向量op(0)~op(15)能够解码的数据块同与该列向量op(0)~op(15)相同的列编号的更新后的接收编码矩阵的基向量的成为1的要素的行编号对应。
另外,此处,由此接收编码矩阵从编码矩阵(图7)的列向量生成,所以接收编码矩阵的第一~第十六行的各要素与编码矩阵同样地同储存有数据块的BRAMm0~m15对应。即,通过矩阵ops的列向量解码出的数据块成为保持在与该列向量相同的列编号的、更新后的接收编码矩阵的基向量的成为1的要素的行编号对应的BRAM中的数据块。
例如在使用列向量op(2)对数据块进行解码对情况下,在更新后的接收编码矩阵(图14)中,成为与矩阵ops的列向量op(2)相同的列编号的列向量是列向量D(2)。另外,由于列向量D(2)是要素[5]为1的基向量,所以储存在与接收编码矩阵的行编号5对应的BRAMm5中的块b5被解码。
在使用列向量op(15)对数据块进行解码的情况下,在更新后的接收编码矩阵(图14)中,成为与矩阵ops的列向量op(15)相同的列编号的列向量是列向量D(15)。另外,由于列向量D(15)是要素[2]为1的基向量,所以储存在与接收编码矩阵的行编号2对应的BRAMm2中的块b2被解码。
此外,在数据包通信中,在传送路径上消失的编码数据少的情况下,也能够预先计算解码向量,并储存在控制解码电路8a的未图示的控制电路内的存储部中。
(解码电路8a的动作)
图10所示那样的解码电路8a在多个BRAMn0~n29保持各数据块(编码数据(也包括冗余编码数据)),并基于上述那样的解码向量的值由AND电路a0~a29选择使用于运算的数据块。而且,选出的数据块间的XOR运算由XOR电路部22进行。通过这样的并列化处理,在进行很多的XOR运算的解码处理中,提高运算处理的效率,实现高速的运算。
此外,在通过解码电路8a使原始的数据块全部再现(解码)的情况下,包括解码电路8a的接收侧的装置可以对发送侧的装置发送解码完成信号。例如没有数据包的丢失的情况下,若包括编码数据d0~d15的多个数据包的接收完成,则接收侧的装置将解码完成信号发送给发送侧的装置。在发送侧的装置中,在接收到解码完成信号的时刻,使图8所示那样的编码电路8中的编码处理停止。由此,关于图7所示的那样的RPS编码矩阵的全部列向量,可以不进行XOR运算。
(变形例)
图17、18是表示根据第二实施方式的编码电路的变形例的图。此外,图17、18与图5所示的编码电路8的一部分对应。与编码电路8同样的要素附加与图5相同的符号,省略其说明。
在图17中,在XOR电路11a的输出侧连接有BRAM30。另外,在寄存器12a和BRAM30的输出侧连接有选择器31。
BRAM30对XOR电路11a的XOR运算结果,即BRAMm0~m1的数据块间的XOR运算结果进行保持。另外,选择器31基于输入的选择信号来选择寄存器12a和BRAM30中的任意一个并输出。选择信号例如从图4所示的控制电路7供给。
在图18中,在XOR电路11i的输出侧连接有BRAM32。另外,在寄存器12i和BRAM32的输出侧连接有选择器33。
BRAM32对XOR电路11i的XOR运算结果,即BRAMm0~m3的数据块间的XOR运算结果进行保持。另外,选择器33基于输入的选择信号来选择寄存器12i和BRAM32中的任意一个并输出。选择信号例如从图4所示的控制电路7供给。
在图17、18中,对在XOR电路11a、11i的输出侧设置BRAM30、32、选择器31、33的例子进行了说明,但同样地也能够设置于其它的XOR电路11b~11h、11j~n的输出侧。
图19是表示根据第二实施方式的编码电路的变形例的图。此外,图19所示的编码电路8b是在图5所示的编码电路8的一部分设置BRAM以及选择器的电路。另外,与编码电路8同样的要素标注与图5所示的要素相同的符号,省略其说明。
在图19的编码电路8b的XOR电路11a的输出侧连接有BRAM30。另外,在寄存器12a和BRAM30的输出侧连接有选择器31。
BRAM30对XOR电路11a的XOR运算结果进行保持,另外,选择器31基于输入的信号选择寄存器12a和BRAM30中的任意一个并输出。由此,由于保持在BRAMm0和BRAMm1中的数据块间的XOR运算结果被保持于BRAM30,所以能够再次利用该XOR运算结果。
以下对使用了图19所示的编码电路8b的编码处理的流程进行说明。
图20是说明编码处理的一个例子的流程的图。
例如在列编号为0的列向量经由输入端子P5输入到编码电路8b时,保持在BRAMm0和BRAMm1中的数据块间的XOR运算结果被保持于BRAM30。在图20所示的RPS编码矩阵中,与基于列编号为0的列向量的保持在BRAMm0和BRAMm1中的数据块间的XOR运算同样的运算也在列编号为28的列向量中进行。
因此,也能够在列编号为28的列向量的编码数据生成时利用在列编号为0的列向量中保持在BRAM30中的XOR运算结果。此时,由于在列编号为27的列向量以下不使用BRAMm0~m2的数据,所以在列编号为27的列向量以下,能够向BRAMm0~m2写入下一个数据块。由此,能够提高编码处理的处理能力。
此外,上述那样的变形也同样地能够应用于图10所示的解码电路8a。
以上,作为进行XOR运算的运算电路的例子,说明了编码电路、解码电路,但并不限于这些。例如也能够应用于如RAID(Redundant Arrays of Inexpensive Disks:独立冗余磁盘阵列)6等那样进行多次的XOR运算(用于奇偶数据的计算)。
上述仅表示本发明的原理。并且,对本领域技术人员来说能够进行大多的变形、变更,本发明并不限于上述所示、说明的正确的结构以及应用例,对应的全部的变形例以及等同物视为基于付上的权利要求以及其等同物的本发明的范围。
符号说明
1…运算电路;2a~2p…选择电路;3a~3o…XOR电路;M0~M15…存储器;P1…输入端子;P2…输出端子。

Claims (6)

1.一种运算电路,其特征在于,具有:
多个存储器,保持成为进行异或运算的单位的数据块;
多个选择电路,接受选择信号,并基于所述选择信号来选择从所述多个存储器读出的多个所述数据块中的使用于异或运算的2个以上的数据块;以及
1个或者多个异或运算电路,进行基于由所述多个选择电路选择出的所述2个以上的数据块的异或运算。
2.根据权利要求1所述的运算电路,其特征在于,
所述多个选择电路的每一个选择电路是逻辑和运算电路,所述逻辑和运算电路的第一输入端子被输入保持在所述多个存储器中的多个所述数据块的任意一个,所述逻辑和运算电路的第二输入端子被输入所述选择信号,所述逻辑和运算电路基于所述选择信号的值来选择是否输出被输入至所述第一输入端子的数据块。
3.根据权利要求1或者2所述的运算电路,其特征在于,
在所述多个存储器的每一个存储器与所述多个选择电路的每一个选择电路之间连接有寄存器,所述寄存器保持所述数据块,并对所保持的所述数据块的输出时机进行调整。
4.根据权利要求1~3中的任意一项所述的运算电路,其特征在于,
所述多个异或运算电路遍及多级而连接,在所述多个异或运算电路的一部分输出端子连接有对异或运算的结果进行储存的存储器。
5.一种编码电路,其特征在于,具有:
多个存储器,保持成为进行异或运算的单位的数据块;
多个选择电路,接受选择信号,并基于所述选择信号来选择从所述多个存储器读出的多个所述数据块中的使用于异或运算的2个以上的数据块;以及
1个或者多个异或运算电路,进行基于由所述多个选择电路选择出的所述2个以上的数据块的异或运算,生成编码数据。
6.一种解码电路,其特征在于,具有:
多个存储器,保持成为进行异或运算的单位的编码数据亦即数据块;
多个选择电路,接受选择信号,并基于所述选择信号来选择从所述多个存储器读出的多个所述数据块中的使用于异或运算的2个以上的数据块;
1个或者多个异或运算电路,进行基于由所述多个选择电路选择出的所述2个以上的数据块的异或运算,生成解码数据。
CN201480079084.0A 2014-05-23 2014-05-23 运算电路、编码电路以及解码电路 Pending CN106416085A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/063659 WO2015177917A1 (ja) 2014-05-23 2014-05-23 演算回路、符号化回路及び復号回路

Publications (1)

Publication Number Publication Date
CN106416085A true CN106416085A (zh) 2017-02-15

Family

ID=54553610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480079084.0A Pending CN106416085A (zh) 2014-05-23 2014-05-23 运算电路、编码电路以及解码电路

Country Status (5)

Country Link
US (1) US20170077951A1 (zh)
EP (1) EP3148092A4 (zh)
JP (1) JPWO2015177917A1 (zh)
CN (1) CN106416085A (zh)
WO (1) WO2015177917A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108964670A (zh) * 2018-07-25 2018-12-07 张家口浩扬科技有限公司 一种基本编解码单元以及编解码器
CN109086537A (zh) * 2018-08-13 2018-12-25 吉林大学 基于fpga的粒子群算法加速方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463105B2 (en) 2020-06-30 2022-10-04 Ciena Corporation Forward error correction coding using a tree structure

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0529958A (ja) * 1991-07-19 1993-02-05 Anritsu Corp 符号誤り検出装置
US5825808A (en) * 1996-04-04 1998-10-20 General Electric Company Random parity coding system
JP2001274691A (ja) * 2000-03-28 2001-10-05 Matsushita Electric Ind Co Ltd 排他的論理和演算装置
US20070177687A1 (en) * 2004-04-07 2007-08-02 Yukio Arima Path memory circuit
US20070220404A1 (en) * 2006-03-20 2007-09-20 Fujitsu Limited IP-data transmitting apparatus and IP-data transmitting method
US8347169B1 (en) * 2010-03-01 2013-01-01 Applied Micro Circuits Corporation System and method for encoding using common partial parity products
CN103444087A (zh) * 2011-02-11 2013-12-11 高通股份有限公司 使用弹性代码与柔性源块映射进行编码和解码

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2458179A1 (fr) * 1979-05-31 1980-12-26 Thomson Csf Dispositif de decodage binaire et systemes de transmission comportant un tel dispositif
US5237615A (en) * 1982-05-20 1993-08-17 The United States Of America As Represented By The National Security Agency Multiple independent binary bit stream generator
JPH08202505A (ja) * 1995-01-30 1996-08-09 Fuji Xerox Co Ltd アレイ型記憶装置
US5878061A (en) * 1996-03-14 1999-03-02 Intel Corporation Providing serial data clock signal transitions with parity bits
JPH10215187A (ja) * 1997-01-29 1998-08-11 Nec Corp 誤り検出符号化復号装置および方法
US7058876B1 (en) * 2002-02-21 2006-06-06 Ciena Corporation Method and apparatus for use in a decoder of a forward error correction (FEC) system for locating bit errors in a error locator polynomial
US20060195774A1 (en) * 2005-02-17 2006-08-31 Stephen Bowyer Error correction circuit and method
US7373583B2 (en) * 2005-05-19 2008-05-13 Infineon Technologies North America Corp. ECC flag for testing on-chip error correction circuit
US7596743B2 (en) * 2005-09-28 2009-09-29 Ati Technologies Inc. Method and apparatus for error management
US8271850B2 (en) * 2005-12-29 2012-09-18 Intel Corporation Fast low-density parity-check code encoder
WO2015136611A1 (ja) * 2014-03-11 2015-09-17 富士通株式会社 設計支援方法、設計支援プログラム、設計支援装置、および記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0529958A (ja) * 1991-07-19 1993-02-05 Anritsu Corp 符号誤り検出装置
US5825808A (en) * 1996-04-04 1998-10-20 General Electric Company Random parity coding system
JP2001274691A (ja) * 2000-03-28 2001-10-05 Matsushita Electric Ind Co Ltd 排他的論理和演算装置
US20070177687A1 (en) * 2004-04-07 2007-08-02 Yukio Arima Path memory circuit
US20070220404A1 (en) * 2006-03-20 2007-09-20 Fujitsu Limited IP-data transmitting apparatus and IP-data transmitting method
US8347169B1 (en) * 2010-03-01 2013-01-01 Applied Micro Circuits Corporation System and method for encoding using common partial parity products
CN103444087A (zh) * 2011-02-11 2013-12-11 高通股份有限公司 使用弹性代码与柔性源块映射进行编码和解码

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108964670A (zh) * 2018-07-25 2018-12-07 张家口浩扬科技有限公司 一种基本编解码单元以及编解码器
CN108964670B (zh) * 2018-07-25 2020-07-24 北京翼鸥教育科技有限公司 一种基本编解码单元以及编解码器
CN109086537A (zh) * 2018-08-13 2018-12-25 吉林大学 基于fpga的粒子群算法加速方法
CN109086537B (zh) * 2018-08-13 2023-05-05 吉林大学 基于fpga的粒子群算法加速方法

Also Published As

Publication number Publication date
US20170077951A1 (en) 2017-03-16
EP3148092A1 (en) 2017-03-29
EP3148092A4 (en) 2017-05-31
WO2015177917A1 (ja) 2015-11-26
JPWO2015177917A1 (ja) 2017-04-20

Similar Documents

Publication Publication Date Title
CN104704491B (zh) 用于集群内通信的硬件消息队列
JP5107880B2 (ja) データ転送処理装置及び方法
CN109643257B (zh) 用于存储器系统中的链路纠错的方法和设备
CN100586097C (zh) 存储和转发交换机设备、系统及方法
TWI357000B (en) Low-latency data decryption interface
CN101763895A (zh) 具有随机化器/去随机化器的数据存储系统和设备
CN100445975C (zh) 数据传输控制装置、图像处理装置和数据传输控制方法
US5130991A (en) Method and apparatus for crc computation
JP2006004079A (ja) 記憶装置
WO2004021168A2 (en) Apparatus for calculating and encryption
CN106416085A (zh) 运算电路、编码电路以及解码电路
CN106533652A (zh) 一种基于xts-sm4的存储加解密方法及装置
CN111352765A (zh) 控制器及存储器系统
CN111698271B (zh) 一种hdlc协议ip核
EP2342872A1 (en) Reliable reception of messages written via rdma using hashing
US20140164647A1 (en) Management Data Input/Output (MDIO) Protocol Including Checksum Mode
CN101266656B (zh) 电子标签数据写入方法以及读写装置
KR101086599B1 (ko) 데이터 통신의 갭을 처리하는 방법
CN108121496A (zh) 数据的存储方法、装置和系统
CN103164912B (zh) 一种pos系统以及基于该pos系统的信息处理方法
CN106940684A (zh) 一种按比特写数据的方法及装置
CN108809320B (zh) 一种基于lz77的数据压缩方法、设备及终端
US20160371414A1 (en) Circuit design support method, circuit design support apparatus, and recording medium
CN109412610B (zh) 一种编码方法、译码方法、编码装置及译码装置
CN102388360B (zh) 一种统计方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170215

WD01 Invention patent application deemed withdrawn after publication