CN117595965A - 交织电路以及通信装置 - Google Patents
交织电路以及通信装置 Download PDFInfo
- Publication number
- CN117595965A CN117595965A CN202310162820.XA CN202310162820A CN117595965A CN 117595965 A CN117595965 A CN 117595965A CN 202310162820 A CN202310162820 A CN 202310162820A CN 117595965 A CN117595965 A CN 117595965A
- Authority
- CN
- China
- Prior art keywords
- circuit
- data
- output data
- memory
- interleaving
- 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
Links
- 238000004891 communication Methods 0.000 title claims abstract description 43
- 230000008707 rearrangement Effects 0.000 claims abstract description 70
- 238000004364 calculation method Methods 0.000 claims abstract description 50
- 230000015654 memory Effects 0.000 claims description 149
- 238000012937 correction Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 34
- 238000000034 method Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0071—Use of interleaving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2778—Interleaver using block-wise interleaving, e.g. the interleaving matrix is sub-divided into sub-matrices and the permutation is performed in blocks of sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2703—Coding, 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 using interleaving techniques the interleaver involving at least two directions
- H03M13/271—Row-column interleaver with permutations, e.g. block interleaving with inter-row, inter-column, intra-row or intra-column permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2732—Convolutional interleaver; Interleavers using shift-registers or delay lines like, e.g. Ramsey type interleaver
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/276—Interleaving address generation
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/276—Interleaving address generation
- H03M13/2764—Circuits therefore
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/27—Coding, 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 using interleaving techniques
- H03M13/2782—Interleaver implementations, which reduce the amount of required interleaving memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
提供一种交织电路以及通信装置。本发明的实施方式涉及交织电路以及通信装置。提供能够抑制吞吐量的降低并且能够以实用的电路结构来安装的交织电路以及通信装置。交织电路具备重排电路和地址计算电路。重排电路针对每1个循环,并行地输入包括n个比特的输入数据,将在n个循环中输入的n个输入数据重排为分别包括在相互不同的循环中输入的n个比特的n个输出数据,其中n为2以上的整数。地址计算电路计算用于将n个输出数据写入到第1存储装置的写入地址以及用于从第1存储装置读出n个输出数据的读出地址。
Description
技术领域
本发明的实施方式涉及交织电路以及通信装置。
背景技术
在包括使用了光量子的量子密钥分发(QKD:Quantum Key Distribution)的通信中,纠错技术是必要不可缺少的。在纠错技术中,为了实现信息传送速度的提高以及纠错的稳定化,有效的是被称为Rate Adaptation(速率适配)的方法。但是,由于宽范围的数据中的错误率的不均匀性以及数据块错误的出现,纠错失败的可能性变高。
为了使纠错稳定地动作并提高信息传送速度,有效的是在按照预先决定的比特数来划分得到的块内,进行将比特顺序进行调换的块交织处理。
发明内容
然而,在现有技术中,存在吞吐量降低或者电路安装变困难这样的问题。本发明的目的在于,提供一种能够抑制吞吐量的降低并且能够以实用的电路结构来安装的交织电路以及通信装置。
实施方式的交织电路具备重排电路和地址计算电路。重排电路针对每1个循环,并行地输入包括n个(n为2以上的整数)比特的输入数据,将在n个循环中输入的n个输入数据重排为分别包括在相互不同的循环中输入的n个比特的n个输出数据。地址计算电路计算用于将n个输出数据写入到第1存储装置的写入地址以及用于从第1存储装置读出n个输出数据的读出地址。
附图说明
图1是第1实施方式的通信装置的框图。
图2是第1实施方式的交织电路的框图。
图3是示出块交织处理的例子的图。
图4是第1实施方式的交织电路的流程图。
图5是示出重排电路的结构例的图。
图6是示出输入数据的例子的图。
图7是示出从处理开始起经过了4个循环的状态的图。
图8是示出从处理开始起经过了5个循环的状态的图。
图9是示出从处理开始起经过了6个循环的状态的图。
图10是示出从处理开始起经过了7个循环的状态的图。
图11是示出输入数据以及重排后的输出数据的例子的图。
图12是示出输出顺序、地址以及数据的关系的图。
图13是解交织电路的框图。
图14是解交织电路的流程图。
图15是示出输入到解交织电路的输入数据的例子的图。
图16是示出写入到存储器的数据的例子的图。
图17是第2实施方式的交织电路的框图。
图18是第2实施方式的交织电路的流程图。
图19是示出n比特数据的重排的例子的图。
图20是示出输出顺序、地址、存储器的类别以及数据的关系的图。
图21是第1或者第2实施方式的通信装置的硬件结构图。
(符号说明)
10:通信装置;100、100-2:交织电路;110:重排电路;120:地址计算电路;130a、130b、130-2a、130-2b:存储器;140-2:存储控制电路;150-2:大容量存储器;211:纠错部;212:通信控制部;220:存储部;400:解交织电路;501~522:触发器;530-0~530-3:n比特MUX。
具体实施方式
以下,参照附图,详细说明本发明的交织电路以及通信装置的优选的实施方式。
如上所述,在以往的交织技术中,有时吞吐量降低或者电路安装变困难。例如,作为以往的交织电路的结构例,有如下结构:无法同时输入大量的比特,以如1比特/循环那样的低吞吐量将数据进行重排。另外,在块的大小(块大小(block size))大的情况下,在现有技术中需要庞大的数量的触发器或者为了以高吞吐量进行动作而使存储器的字长(wordsize)变大,电路安装变困难。
因此,在以下的实施方式中,实现一种即使在例如块大小大的情况下也能够抑制吞吐量降低并且能够以实用的电路结构来安装的交织电路以及通信装置。
(第1实施方式)
图1是示出第1实施方式的通信装置10的结构的一个例子的框图。如图1所示,通信装置10具备交织电路100、纠错部211、通信控制部212以及存储部220。
交织电路100输入用于通信的数据,输出将所输入的数据(输入数据)进行重排得到的输出数据。例如,交织电路100针对每个预先决定的块大小的块,执行将块内的数据进行重排的块交织处理。
纠错部211针对由交织电路100重排的输出数据执行纠错。在本实施方式中,在纠错之前由交织电路100执行块交织处理,所以能够抑制错误率变得不均匀,降低纠错失败的可能性。
通信控制部212控制使用了输出数据的通信。例如,通信控制部212将输出数据发送到成为通信对方的外部的通信装置。此外,在外部的通信装置中,有时需要实施将输出数据按照原来的顺序进行重排的处理(解交织)。关于进行解交织的解交织电路的结构例,在后面叙述。
存储部220存储通信装置10所使用的各种数据。例如,存储部220存储输入数据以及输出数据。存储部220可以由闪存存储器、存储卡、RAM(Random Access Memory,随机存取存储器)、HDD(Hard Disk Drive,硬盘驱动器)以及光盘等通常所利用的任意的存储介质构成。
上述各部(纠错部211、通信控制部212)例如通过1个或者多个处理器来实现。例如,上述各部也可以通过使CPU(Central Processing Unit,中央处理单元)等处理器执行程序、即通过软件来实现。上述各部也可以通过专用的IC(Integrated Circuit,集成电路)等处理器即硬件来实现。上述各部也可以同时使用软件以及硬件来实现。在使用多个处理器的情况下,各处理器既可以实现各部之中的1个,也可以实现各部之中的2个以上。
接下来,说明交织电路100的结构例。图2是示出交织电路100的结构例的框图。交织电路100具备重排电路110、地址计算电路120以及存储器130a、130b。
重排电路110针对每n×n比特的输入数据,输出将输入数据按照与所输入的比特顺序不同的顺序进行重排得到的输出数据。例如,重排电路110针对每1个循环,并行地输入包含n个(n为2以上的整数)比特的输入数据,将在n个循环中输入的n个输入数据重排为分别包含有在相互不同的循环中输入的n个比特的n个输出数据并输出。
存储器130a、130b是存储由重排电路110重排的输出数据的存储装置(第1存储装置的一个例子)。本实施方式的交织电路100构成为具备能够将1个块量的数据进行存储的大小的2个存储器130a、130b。存储器130a、130b例如以n比特为单位(1个字)而存储数据。换言之,存储器130a、130b的字长是n比特。
交织电路100执行将2个存储器130a、130b之中的用于写入的存储器(写入用存储器)和用于读出的存储器(读出用存储器)针对每个块进行切换的双缓冲动作。以下,在无需区分存储器130a、130b的情况下简称为存储器130。
地址计算电路120计算用于将n个输出数据写入到存储器130的写入地址、以及用于从存储器130读出n个输出数据的读出地址。
接下来,说明块交织处理的例子。图3是示出块交织处理的例子的图。D0~D63的数据分别表示1比特的数据。这些数据作为1个块而被重排。即,在这个例子中,块大小是64比特。此外,块大小不限于此,既可以大于64比特,也可以小于64比特。
将进行重排的间隔设为交织间隔,用比特数n来表示。图3是交织间隔n为4的例子。在将块内的n比特(在n=4的情况下是4比特)的输入数据的个数设为d时,块大小还能够表示为n×d。此外,交织间隔n不限于4,可以是任意的值。例如,为了实用地实现错误率的均匀化,有时将交织间隔n设为512程度。
输入数据以D0、D1、D2、D3、D4、……这样的顺序来输入。重排后的输出数据以D0、D4、D8、D12、D16、……、D60、D1、D5、……那样的顺序来输出。这样,在本实施方式中,以在块内按照与输入顺序不同的顺序来输出的方式,进行数据的重排。
在本实施方式中,以n×n比特为单位来重排输入数据。在图3中,在输入了例如D0~D15这16比特(4×4比特)的输入数据时,重排该16比特的输入数据。以下,将块内的n×n比特单位的数据的个数设为N。在图3的例子中,N=4(=64/16)。
接下来,说明第1实施方式的交织电路100的动作。图4是示出第1实施方式的交织电路100的动作例的流程图。图4示出对1个块进行处理时的动作的例子。
在动作开始时,交织电路100对内部信号、写入地址以及读出地址进行初始化(步骤S101)。之后,依次输入n比特的输入数据的同时重排数据(步骤S102~步骤S106)。
此外,在本实施方式中,以n比特/循环的吞吐量来输入输入数据。另外,在初始化(步骤S101)后从1循环至(n-1)循环为止,由于n个量的循环的输入数据未齐全,所以不输出重排的输出数据。在至少输入了n个循环量的输入数据之后,输出重排的n比特量的输出数据。以下,说明输入n个循环量的输入数据之后(n个循环以后)的处理的例子。
首先,重排电路110输入n比特的输入数据(步骤S102)。重排电路110使用在步骤S102中输入的输入数据和过去已经输入的输入数据来重排n×n比特单位的输入数据,输出重排的结果的一部分即n比特的输出数据(步骤S103)。
重排电路110依照由地址计算电路120计算的写入地址,将n比特的输出数据写入到写入用存储器(步骤S104)。
交织电路100从存储有重排完毕的输出数据的读出用存储器,依照由地址计算电路120计算的读出地址来读出n比特的数据并输出(步骤S105)。
从重排电路110输出的输出数据的顺序与块整体的数据顺序不同。因此,地址计算电路120使用以下的地址计算式来计算输出数据的写入地址并更新(步骤S106)。
写入地址=j×N+k
j:输出数据内的n比特的比特位置(0≤j≤n-1)
N:n×n比特的数据的个数
k:块内的n×n比特的数据的位置(0≤k≤N-1)
另外,地址计算电路120例如通过将0设为初始值并逐次递增1,从而计算输出数据的读出地址。此外,也可以调换写入地址以及读出地址的计算方法。例如,地址计算电路120也可以利用上述地址计算式来计算读出地址,并利用从初始值起的递增来计算写入地址。这样,在地址计算电路120中,只要是以在连续的n个循环中从存储器130分别输出n个输出数据中的任意输出数据的方式计算写入地址以及读出地址的方法,则可以用任意的方法来计算各地址。
交织电路100也可以对这些一连串的处理(步骤S102~步骤S106)进行流水线处理。由此,针对各n比特的数据,能够以1个循环来处理各步骤。
交织电路100判定是否处理了块内的所有数据(步骤S107)。在未处理块内的所有数据的情况下(步骤S107:“否”),交织电路100返回到步骤S102,针对接下来的n比特的输入数据反复进行处理。
在处理了块内的所有数据的情况下(步骤S107:“是”),交织电路100切换2个存储器130a、130b之中的用于写入的存储器(写入用存储器)和用于读出的存储器(读出用存储器)(步骤S108),并结束动作。
这样,在本实施方式中,通过在重排1个块量的数据的同时输出重排完毕的数据,从而能够以n比特/循环的速率进行重排处理。
接下来,说明重排电路110的结构例。图5是示出重排电路110的结构例的图。图5是如在图3中说明那样将交织间隔n设为4比特时的用于进行块交织处理的电路结构的例子。
如图5所示,重排电路110被输入n比特(在图5的例子中是4比特)的输入数据(例如D0~D3),输出n比特的输出数据(例如D’0~D’3)。此外,在图5的例子中,输入数据的最低位比特(LSB:Least Significant Byte,最低有效字节)是D0,输入数据的最高位比特(MSB:Most Significant Bit,最高有效位)是D3。另外,输出数据的最低位比特是D’0,输出数据的最高位比特是D’3。
重排电路110具备触发器501~522(寄存器的一个例子)和n个(在图5的例子中是4个)n比特MUX(多路复用器)530-0~530-3(选择电路的一个例子)。
n比特MUX530-0~530-3是选择n比特的数据之中的任意数据并输出的n比特数据的选择电路。包含n比特MUX530-0~530-3各自的输出的数据成为n比特的输出数据。
在输出数据是4比特(n=4)的情况下,n比特MUX530-0~530-3分别选择输出数据的第j个比特位置的比特。以下,有时将选择第j个比特位置的比特的n比特MUX称为n比特MUX530-j。
触发器501~522构成为关于输入数据的第i个(0≤i≤n-1)比特位置,分别作为(n+i)级以上的移位寄存器发挥功能。
以下,说明以关于输入数据的第i个比特位置分别成为(n+i)级的移位寄存器的方式构成的例子。此外,寄存器(触发器)的个数优选为少,但也可以考虑电路配置的高效化等,以成为比(n+i)级大的级数的移位寄存器的方式构成。最小的触发器数Nff能够用以下的(1)式来计算。
[数学式1]
在图5的例子中,关于输入数据的第0个比特位置,构成4个触发器501~504这4级的移位寄存器。在第1循环中,输入D0,并存储到触发器501。之后,在第2循环~第4循环中,D0分别依次移位而存储到触发器502~504。
n比特MUX530-j的输入与输入数据的第i个比特的第(n-j+i)级的触发器的输出分别连接。n比特MUX530-j例如根据所指示的选择信号,在连续的n个循环各自中,选择并输出所连接的n个触发器之中的相互不同的任意的触发器所存储的比特。
例如,重排电路110每当被输入n比特的输入数据时,切换对各n比特MUX530-j所选择的比特进行指示的选择信号。由此,能够实现n×n比特的输入数据的重排动作。
例如,n比特MUX530-2与输入D0(i=0)的第2级的触发器502、输入D1(i=1)的第3级的触发器507、输入D2(i=2)的第4级的触发器513、输入D3(i=3)的第5级的触发器520的输出分别连接。重排电路110例如将从触发器502、507、513、520输入的对比特的选择进行指示的信号分别设为选择信号0、1、2、3。n比特MUX530-2根据在连续的4个循环中指示的选择信号0、1、2、3,选择并输出存储于触发器502、507、513、520的比特。
使用图6~图11,说明重排电路110的重排的动作的例子。
图6是示出输入数据的例子的图。图7~图10分别是示出从处理开始起经过了4个循环、5个循环、6个循环、7个循环的状态的图。图11是示出输入数据以及重排后的输出数据的例子的图。
在依次输入图6所示的输入数据时,在经过4个循环之后,将n×n比特的数据50(D0~D15)分别如图7所示存储到移位寄存器。重排电路110通过将n比特MUX530-j的选择信号设为0,输出D0、D4、D8、D12的数据。
重排电路110能够在相同的循环中,从接下来的n×n比特的数据51输入n比特的数据(D16~D19)。这样,不用空出间隔而能够继续进行n×n比特的数据的重排处理。
同样地,重排电路110通过在使数据移位的同时切换选择信号,从而能够在n×n比特的数据单位内将数据进行重排(图8~图10)。例如,在图8中,输出依照选择信号1来选择的D1、D5、D9、D13的数据。在图9中,输出依照选择信号2来选择的D2、D6、D10、D14的数据。在图10中,输出依照选择信号3来选择的D3、D7、D11、D15的数据。
图11包括将图6所示的输入数据进行重排后的输出数据60的例子。输出数据60与将图6的数据50进行重排得到的数据相当。
之后,重排电路110再次将选择信号设为0,针对接下来的n×n比特的数据(在图6中是数据51)反复进行同样的处理。由此,连续地执行n×n比特单位的重排。
按照与块整体的数据顺序(输入顺序)不同的顺序,输出从重排电路110输出的输出数据。图12是示出输出数据的输出顺序、存储器130的地址以及交织处理后的数据的关系的图。
将重排得到的输出数据从重排电路110每次输出n比特。例如,按照在图12的重排电路输出顺序栏中示出的顺序,输出将图11所示的输入数据重排得到的n比特的输出数据。地址计算电路120计算输出数据的写入地址以使得成为图12的地址栏所示的值。例如,地址计算电路120通过上述地址计算式来计算写入地址。
由此,能够将输出数据以成为图3所示的输出顺序的方式存储到存储器130。此外,图12所示的地址以存储器130的字长是n比特为前提。
例如,重排电路输出顺序为4的数据是将与图11的k=0相当的n×n比特单位的数据进行重排而得到的数据。重排后的输出数据60(图11)内的、与重排电路输出顺序为4的数据对应的数据的比特位置j是3。另外,如图11所示,n×n比特单位的数据的个数N是4。因此,地址计算电路120通过上述地址计算式,能够如j×N+k=3×4+0=12那样计算写入地址。
此外,在n×n比特单位的数据的个数是2的幂数的情况下,地址计算电路120也可以代替乘法运算,而是利用将高位比特侧设为n×n比特单位的数据内的位置并将低位比特侧设为n×n比特单位的数据的位置的比特连接来计算地址。由此,能够削减电路的规模。
接下来,说明解交织电路的结构例。解交织电路既可以设置于与通信装置10通信的外部的通信装置,也可以设置于通信装置10内。图13是示出解交织电路400的结构例的框图。解交织电路400具备重排电路110、地址计算电路420以及存储器130a、130b。与交织电路100相比,解交织电路400构成为将重排电路110、地址计算电路420以及存储器130a、130b的配置进行了替换。
重排电路110以及存储器130a、130b的结构与交织电路100相同,所以附加同一符号,省略说明。
地址计算电路420计算例如用于将由交织电路100重排的数据(输入数据)写入到存储器130的写入地址、以及用于从存储器130读出输入数据的读出地址。地址计算电路420使用以下的地址计算式,计算数据的写入地址。
写入地址=k×N+j
j:数据内的、n比特的比特位置(0≤j≤n-1)
N:n×n比特的数据的个数
k:块内的、n×n比特的数据的位置(0≤k≤N-1)
该地址计算式在与交织电路100的地址计算电路120的地址计算式相比时,成为将k和j进行了调换的式子。
接下来,说明解交织电路400的动作。图14是示出解交织电路400的动作例的流程图。图14示出处理1个块时的动作的例子。
在动作开始时,解交织电路400对内部信号、写入地址以及读出地址进行初始化(步骤S201)。之后,在依次输入n比特的输入数据的同时将数据进行重排(步骤S202~步骤S207)。
解交织电路400输入n比特的输入数据(步骤S202)。
地址计算电路420使用上述地址计算式,计算输入数据的写入地址并更新(步骤S203)。另外,地址计算电路420例如通过将0设为初始值并逐次递增1,从而计算输入数据的读出地址。解交织电路400依照计算出的写入地址,将输入数据写入到存储器130(步骤S204)。
图15是示出输入到解交织电路400的输入数据的例子的图。输入数据是由交织电路100重排的数据,所以例如成为按照与图12的交织处理后数据相同的顺序排列的数据。
图16是示出针对图15所示的输入数据而计算出的写入地址以及依照写入地址写入到存储器130的数据(存储器写入数据)的例子的图。
返回到图14,重排电路110依照由地址计算电路420计算的读出地址,从存储器130读出n比特的输入数据(步骤S205)。重排电路110将从存储器依次读出的n×n比特单位的输入数据进行重排,输出作为重排的结果的一部分的n比特的输出数据(步骤S206、步骤S207)。
解交织电路400判定是否处理了块内的所有数据(步骤S208)。在未处理块内的所有数据的情况下(步骤S208:“否”),解交织电路400返回到步骤S202,针对接下来的n比特的输入数据反复进行处理。
在处理了块内的所有数据的情况下(步骤S208:“是”),解交织电路400切换2个存储器130a、130b之中的用于写入的存储器(写入用存储器)和用于读出的存储器(读出用存储器)(步骤S209),结束动作。
在针对图16的数据执行解交织电路400的重排电路110的重排时,例如得到如图6所示的由交织电路100进行重排前的数据。
根据本实施方式,通过使用具有n比特的并行输入以及并行输出的重排电路和存储器,能够按照n比特/循环的速率进行重排处理。通过调整n,即使在块大小大的情况下,也能够以比较少量的触发器和实用的字长(n比特)来实现高吞吐量的块交织处理。
例如,已知将字长设为n×m比特(n、m为多个比特)的技术。在为了高速动作而设为n=m=512的情况下,在这个技术中,字长成为512×512=262144比特,难以构成。与此相对,在本实施方式中,字长成为n比特=512比特,所以能够在实用的范围中构成电路。
(第2实施方式)
在第2实施方式中,说明使用相对小容量的存储装置(第2存储装置)和相对大容量的存储装置(第1存储装置)的例子。此外,关于通信装置10的整体结构,仅仅是交织电路100被变更为交织电路100-2这点不同,由于与图1相同所以省略详细的说明。
图17是示出第2实施方式的交织电路100-2的结构的一个例子的框图。如图17所示,交织电路100-2具备重排电路110、地址计算电路120-2、存储器130-2a、130-2b、存储控制电路140-2以及大容量存储器150-2。
在第2实施方式中,与第1实施方式的不同之处在于追加有地址计算电路120-2、存储器130-2a、130-2b的功能、以及存储控制电路140-2和大容量存储器150-2。其它的结构以及功能与作为第1实施方式的交织电路100的框图的图2相同,所以附加同一符号,省略此处的说明。
存储器130-2a、130-2b是存储由重排电路110重排的输出数据的存储装置。例如,存储器130-2a、130-2b构成为存储1个块的一半的数据。存储器130-2a、130-2b的存储容量不限于1个块的一半,例如也可以是1个块的1/m(m为3以上的整数)。
交织电路100-2进行如下的双缓冲动作:针对每个块,切换2个存储器130-2a、130-2b之中的用于写入的存储器(写入用存储器)和用于读出的存储器(读出用存储器)。
大容量存储器150-2是相比于存储器130-2a、130-2b而言存储容量相对大的存储装置(第1存储装置)。大容量存储器150-2例如是能够存储1个块量的数据的大小的存储装置。
存储器130-2a、130-2b与相比于大容量存储器150-2而言存储容量相对小的存储装置(第2存储装置)相当。以下,有时将存储器130-2a、130-2b称为小容量存储器。
小容量存储器通过例如SRAM(Static Random Access Memory,静态随机存取存储器)来实现。大容量存储器150-2通过例如DRAM(Dynamic Random Access Memory,动态随机存取存储器)来实现。SRAM一般而言能够比DRAM高速地读写数据,但比DRAM昂贵。
地址计算电路120-2计算用于将输出数据写入到存储器130-2的写入地址、以及用于从存储器130-2读出输出数据的读出地址。另外,地址计算电路120-2计算用于将从存储器130-2读出的数据写入到大容量存储器150-2的写入地址、以及用于从大容量存储器150-2读出数据的读出地址。大容量存储器150-2的写入地址以及读出地址的计算方法与第1实施方式的地址计算电路120相同。
存储控制电路140-2控制如下处理:读出存储于小容量存储器的输出数据,将读出的输出数据存储到大容量存储器150-2。例如,存储控制电路140-2将从小容量存储器读出的数据,通过经由总线的突发(burst)传输而写入到大容量存储器150-2。
这样,本实施方式的交织电路100-2将数据按照某种程度的大小(例如1个块的一半的大小)进行重排并存储到小容量存储器,将从小容量存储器读出的数据写入到大容量存储器150-2。以连续的方式重排的数据被存储到小容量存储器,所以能够将数据通过突发传输而高速地写入到大容量存储器150-2。
接下来,说明第2实施方式的交织电路100-2的动作。图18是示出第2实施方式的交织电路100-2的动作例的流程图。图18示出处理1个块时的动作的例子。
步骤S301至步骤S303的处理与第1实施方式的交织电路100中的步骤S101至步骤S103相同,所以省略其说明。
重排电路110将n比特的输出数据依照由地址计算电路120-2计算的写入地址,写入到小容量存储器之中的写入用存储器(步骤S304)。
存储控制电路140-2从小容量存储器之中的存储有将1个块的一半的数据(部分数据)重排完毕的输出数据的读出用存储器,依照由地址计算电路120-2计算的读出地址来读出n比特的数据,并将读出的数据写入到大容量存储器150-2(步骤S305)。此时,存储控制电路140-2也可以将数据通过突发传输而写入到大容量存储器150-2。
地址计算电路120-2计算小容量存储器的接下来的数据的写入地址及读出地址和大容量存储器150-2的写入地址并更新(步骤S306)。
交织电路100-2也可以对这些一连串的处理(步骤S302~步骤S306)进行流水线处理。由此,针对各n比特的数据,能够在1个循环中处理各步骤。
交织电路100-2判定是否无小容量存储器的空闲容量、换言之是否存储有与小容量存储器的存储容量相应量的数据(步骤S307)。在有小容量存储器的空闲容量的情况下(步骤S307:“否”),交织电路100-2返回到步骤S102,针对接下来的n比特的输入数据反复进行处理。
在无小容量存储器的空闲容量的情况下(步骤S307:“是”),交织电路100-2切换2个存储器130-2a、130-2b之中的用于写入的存储器(写入用存储器)和用于读出的存储器(读出用存储器)(步骤S308)。
交织电路100-2判定是否处理了块内的所有数据(步骤S309)。在未处理块内的所有数据的情况下(步骤S309:“否”),交织电路100-2返回到步骤S102,针对接下来的n比特的输入数据反复进行处理。
在处理了块内的所有数据的情况下(步骤S309:“是”),交织电路100-2结束动作。
图19是示出使用小容量存储器和大容量存储器150-2的n比特数据的重排的例子的图。在本实施方式中,使用小容量存储器,1个块的一部分的数据(部分数据)被重排,部分数据被写入到大容量存储器150-2的对应的区域。重复这个动作,1个块量的重排的数据最终被存储到大容量存储器150-2。
接下来,使用图20,说明小容量存储器的写入地址的计算方法的例子。图20是示出重排电路110的输出数据的输出顺序、大容量存储器150-2的地址、小容量存储器的地址、存储器的类别以及交织处理后的数据的关系的图。
存储器的类别是表示被用作写入用存储器的小容量存储器为2个存储器130-2a、130-2b中的哪个存储器的信息。以下,设为存储器的类别“MA”意味着存储器130-2a,存储器的类别“MB”意味着存储器130-2b。
在这个例子中,将1个块的数据之中的一半的部分数据用小容量存储器重排后写入到大容量存储器150-2。能够使用上述地址计算式来计算分别针对重排电路输出顺序的大容量存储器150-2的地址。
将重排电路输出顺序为1~8的数据写入到存储器130-2a、并将重排电路输出顺序为9~16的数据写入到存储器130-2b时的写入地址成为在图20的小容量存储器地址栏中记载的值。
地址计算电路120-2通过例如以下的(2)式来计算小容量存储器地址的值。tempAddr是大容量存储器150-2的写入地址。校正值b设为如下的值:在存储器的类别为MA时成为0,在存储器的类别为MB时成为1。
[数学式2]
例如,关于图20的重排电路输出顺序为15的数据,如以下的(3)式那样计算地址。该值与图20的小容量存储器地址栏的对应的值5一致。
[数学式3]
另外,地址计算电路120-2通过针对2个小容量存储器的每一个例如将0设为初始值并逐次递增1,从而计算小容量存储器的读出地址。
这样,在本实施方式中,通过如高速缓存那样处置存储器130-2a、130-2b(小容量存储器),能够在削减存储器130-2a、130-2b的存储容量的同时实现高速的动作。例如,第1实施方式的2个存储器130合在一起具有2个块量的存储容量,相对于此,本实施方式的小容量存储器成为一半的存储容量。此时,只要在向大容量存储器150-2的写入中不限速,则能够实现n比特/循环的速率这样的高吞吐量的块交织处理。
如以上说明那样,根据第1和第2实施方式,能够抑制吞吐量降低,并且能够以实用的电路结构来安装交织处理。
接下来,使用图21,说明第1或者第2实施方式的通信装置的硬件结构。图21是示出第1或者第2实施方式的通信装置的硬件结构例的说明图。
第1或者第2实施方式的通信装置具备CPU351等控制装置、ROM(Read OnlyMemory,只读存储器)352和RAM353等存储装置、连接到网络而进行通信的通信I/F354、以及将各部进行连接的总线361。
将由第1或者第2实施方式的通信装置执行的程序预先编入到ROM352等来提供。
由第1或者第2实施方式的通信装置执行的程序也可以构成为以可安装的形式或者可执行的形式的文件而记录到CD-ROM(Compact Disk Read Only Memory,高密度盘只读存储器)、软盘(FD)、CD-R(Compact Disk Recordable,可记录高密度盘)、DVD(DigitalVersatile Disk,数字多功能盘)等由计算机可读取的记录介质并作为计算机程序产品来提供。
而且,也可以构成为通过将由第1或者第2实施方式的通信装置执行的程序储存到与因特网等网络连接的计算机上,并经由网络下载来提供。另外,也可以构成为经由因特网等网络来提供或者分发由第1或者第2实施方式的通信装置执行的程序。
由第1或者第2实施方式的通信装置执行的程序能够使计算机作为上述通信装置的各部而发挥功能。在该计算机中,CPU351能够从计算机可读取的存储介质将程序读出到主存储装置上并执行。
虽然说明了本发明的几个实施方式,但这些实施方式只是作为例子来呈现的,并非意图限定发明的范围。这些新的实施方式能够以其它各种方式来实施,能够在不脱离发明的宗旨的范围中进行各种省略、置换、变更。这些实施方式及其变形包含于发明的范围、宗旨,并且包含于权利要求书记载的发明及其均等的范围。
此外,能够将上述实施方式总结为以下的技术方案。
技术方案1
一种交织电路,具备:
重排电路,针对每1个循环,并行地输入包括n个(n为2以上的整数)比特的输入数据,将在n个循环中输入的n个所述输入数据重排为分别包括在相互不同的循环中输入的n个比特的n个输出数据;以及
地址计算电路,计算用于将n个所述输出数据写入到第1存储装置的写入地址以及用于从所述第1存储装置读出n个所述输出数据的读出地址。
技术方案2
根据技术方案1记载的交织电路,其中,
在所述重排电路中,
关于所述输入数据的第i个(0≤i≤n-1)比特位置分别具备作为移位寄存器发挥功能的(n+i)级以上的寄存器,
输出包括(n+i)级以上的所述寄存器之中的n个所述寄存器所存储的n个比特的所述输出数据。
技术方案3
根据技术方案2记载的交织电路,其中,
在所述重排电路中,针对每1个循环,选择包括与所述输入数据的n个比特位置之中的任意比特位置对应的所述寄存器所存储的n个比特的所述输出数据,并输出所选择的所述输出数据。
技术方案4
根据技术方案3记载的交织电路,其中,
关于所述输入数据的第i个(0≤i≤n-1)比特位置分别具备(n+i)级的所述寄存器,
所述重排电路具备n个选择电路,
第j个(0≤j≤n-1)所述选择电路连接于与所述输入数据的第i个(0≤i≤n-1)比特位置对应的(n+i)级的所述寄存器之中的(n-j+i)级的所述寄存器,在连续的n个循环各自中选择所连接的所述寄存器之中的相互不同的任意的所述寄存器所存储的比特。
技术方案5
根据技术方案1记载的交织电路,其中,
所述交织电路还具备存储容量比所述第1存储装置小的第2存储装置,
所述重排电路将所述输出数据存储到所述第2存储装置,
所述交织电路还具备存储控制电路,该存储控制电路读出存储于所述第2存储装置的所述输出数据,并将读出的所述输出数据存储到所述第1存储装置。
技术方案6
根据技术方案1记载的交织电路,其中,
所述地址计算电路以在连续的n个循环中从所述第1存储装置分别输出n个所述输出数据中的任意输出数据的方式,计算所述写入地址以及所述读出地址。
技术方案7
一种通信装置,具备:
交织电路,输出将输入数据重排得到的输出数据;以及
纠错部,执行针对所述输出数据的纠错,
所述交织电路具备:
重排电路,针对每1个循环,并行地输入包括n个(n为2以上的整数)比特的输入数据,将在n个循环中输入的n个所述输入数据重排为分别包括在相互不同的循环中输入的n个比特的n个输出数据;以及
地址计算电路,计算用于将n个所述输出数据写入到第1存储装置的写入地址以及用于从所述第1存储装置读出n个所述输出数据的读出地址。
Claims (7)
1.一种交织电路,具备:
重排电路,针对每1个循环,并行地输入包括n个比特的输入数据,将在n个循环中输入的n个所述输入数据重排为分别包括在相互不同的循环中输入的n个比特的n个输出数据,其中,n为2以上的整数;以及
地址计算电路,计算用于将n个所述输出数据写入到第1存储装置的写入地址以及用于从所述第1存储装置读出n个所述输出数据的读出地址。
2.根据权利要求1所述的交织电路,其中,
在所述重排电路中,
关于所述输入数据的第i个比特位置分别具备作为移位寄存器发挥功能的(n+i)级以上的寄存器,其中,0≤i≤n-1,
输出包括(n+i)级以上的所述寄存器之中的n个所述寄存器所存储的n个比特的所述输出数据。
3.根据权利要求2所述的交织电路,其中,
在所述重排电路中,针对每1个循环,选择包括与所述输入数据的n个比特位置之中的任意比特位置对应的所述寄存器所存储的n个比特的所述输出数据,并输出所选择的所述输出数据。
4.根据权利要求3所述的交织电路,其中,
关于所述输入数据的第i个比特位置分别具备(n+i)级的所述寄存器,其中,0≤i≤n-1,
所述重排电路具备n个选择电路,
第j个所述选择电路连接于与所述输入数据的第i个比特位置对应的(n+i)级的所述寄存器之中的(n-j+i)级的所述寄存器,在连续的n个循环各自中选择所连接的所述寄存器之中的相互不同的任意的所述寄存器所存储的比特,其中,0≤j≤n-1,0≤i≤n-1。
5.根据权利要求1所述的交织电路,其中,
所述交织电路还具备存储容量比所述第1存储装置小的第2存储装置,
所述重排电路将所述输出数据存储到所述第2存储装置,
所述交织电路还具备存储控制电路,该存储控制电路读出存储于所述第2存储装置的所述输出数据,并将读出的所述输出数据存储到所述第1存储装置。
6.根据权利要求1所述的交织电路,其中,
所述地址计算电路以在连续的n个循环中从所述第1存储装置分别输出n个所述输出数据中的任意输出数据的方式,计算所述写入地址以及所述读出地址。
7.一种通信装置,具备:
交织电路,输出将输入数据重排得到的输出数据;以及
纠错部,执行针对所述输出数据的纠错,
所述交织电路具备:
重排电路,针对每1个循环,并行地输入包括n个比特的输入数据,将在n个循环中输入的n个所述输入数据重排为分别包括在相互不同的循环中输入的n个比特的n个输出数据,其中,n为2以上的整数;以及
地址计算电路,计算用于将n个所述输出数据写入到第1存储装置的写入地址以及用于从所述第1存储装置读出n个所述输出数据的读出地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022-131196 | 2022-08-19 | ||
JP2022131196A JP2024027962A (ja) | 2022-08-19 | 2022-08-19 | インタリーブ回路および通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117595965A true CN117595965A (zh) | 2024-02-23 |
Family
ID=85384306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310162820.XA Pending CN117595965A (zh) | 2022-08-19 | 2023-02-24 | 交织电路以及通信装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240061773A1 (zh) |
EP (1) | EP4325726A1 (zh) |
JP (1) | JP2024027962A (zh) |
CN (1) | CN117595965A (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1851861A2 (en) * | 2005-02-14 | 2007-11-07 | Koninklijke Philips Electronics N.V. | Block interleaving with memory table of reduced size |
EP2688211A4 (en) * | 2011-07-29 | 2014-08-06 | Huawei Tech Co Ltd | NESTING AND NESTING METHODS, NESTING AND DECORATING |
JP2013062736A (ja) * | 2011-09-14 | 2013-04-04 | Nec Corp | 信号送受信回路 |
JP6427461B2 (ja) * | 2015-04-22 | 2018-11-21 | 株式会社日立国際電気 | 受信装置、無線通信システム、及び無線通信方法 |
-
2022
- 2022-08-19 JP JP2022131196A patent/JP2024027962A/ja active Pending
-
2023
- 2023-02-24 CN CN202310162820.XA patent/CN117595965A/zh active Pending
- 2023-02-24 EP EP23158513.4A patent/EP4325726A1/en active Pending
- 2023-02-24 US US18/173,940 patent/US20240061773A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JP2024027962A (ja) | 2024-03-01 |
US20240061773A1 (en) | 2024-02-22 |
EP4325726A1 (en) | 2024-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7430701B2 (en) | Methods and systems for generating error correction codes | |
US20230315567A1 (en) | Method of performing a multiplication and accumulation (mac) operation in a processing-in-memory (pim) device | |
US5668976A (en) | Error correction method and apparatus for disk drive emulator | |
JP4247262B2 (ja) | 集積回路装置 | |
CN1350369A (zh) | 存储装置、访问存储装置的方法和里德索罗门解码器 | |
JPH11213574A (ja) | データ記憶システム | |
US5276827A (en) | Data buffer for the duration of cyclically recurrent buffer periods | |
CN109347486B (zh) | 低复杂度高吞吐率的5g ldpc编码器和编码方法 | |
JP4042841B2 (ja) | 行列演算処理装置 | |
US7363552B2 (en) | Method and apparatus for convolutional interleaving/de-interleaving technique | |
CN117595965A (zh) | 交织电路以及通信装置 | |
US8139428B2 (en) | Method for reading and writing a block interleaver and the reading circuit thereof | |
US7774676B2 (en) | Methods and apparatuses for generating error correction codes | |
JP2917853B2 (ja) | コンボリューショナル・インターリーブ回路 | |
US20070067702A1 (en) | Method and apparatus for syndrome generation | |
US6195781B1 (en) | Error correction code calculator | |
CN107959502B (zh) | 一种ldpc编码方法 | |
US6373778B1 (en) | Burst operations in memories | |
JP2827978B2 (ja) | インターリーブ装置 | |
CN117828247B (zh) | 快速傅里叶变换的处理方法、集成电路及电子设备 | |
CN107959501B (zh) | 一种ldpc编码器 | |
JP3526542B2 (ja) | データ転送装置及びその方法 | |
JP2622383B2 (ja) | ロングディスタンスコードの誤り訂正装置 | |
KR0164727B1 (ko) | 에러 정정 회로 | |
CN118193889A (zh) | Ntt电路、ntt方法、电子设备 |
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 |