JP2024027962A - インタリーブ回路および通信装置 - Google Patents
インタリーブ回路および通信装置 Download PDFInfo
- Publication number
- JP2024027962A JP2024027962A JP2022131196A JP2022131196A JP2024027962A JP 2024027962 A JP2024027962 A JP 2024027962A JP 2022131196 A JP2022131196 A JP 2022131196A JP 2022131196 A JP2022131196 A JP 2022131196A JP 2024027962 A JP2024027962 A JP 2024027962A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- data
- output data
- input
- bits
- 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 39
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 238000012937 correction Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 claims description 5
- 230000008707 rearrangement Effects 0.000 abstract description 34
- 238000010586 diagram Methods 0.000 abstract description 30
- 230000015654 memory Effects 0.000 description 138
- 238000012545 processing Methods 0.000 description 27
- 238000000034 method Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 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
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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
Abstract
【課題】スループットの低下を抑制でき、かつ、実用的な回路構成で実装可能なインタリーブ回路および通信装置を提供する。【解決手段】インタリーブ回路は、並び替え回路とアドレス計算回路とを備える。並び替え回路は、1サイクルごとに、n個(nは2以上の整数)のビットを含む入力データを並列に入力し、n個のサイクルで入力されたn個の入力データを、相互に異なるサイクルで入力されたn個のビットをそれぞれ含むn個の出力データに並び替える。アドレス計算回路は、n個の出力データを第1記憶装置に書き込むための書き込みアドレス、および、n個の出力データを第1記憶装置から読み出すための読み出しアドレスを計算する。【選択図】図2
Description
本発明の実施形態は、インタリーブ回路および通信装置に関する。
光量子を用いた量子鍵配送(QKD:Quantum Key Distribution)を含む通信において、誤り訂正技術は必要不可欠である。誤り訂正技術では、情報伝送速度の向上および誤り訂正の安定化のため、Rate Adaptationと呼ばれる手法が有効である。しかし、広範囲なデータにおける誤り率の不均一性およびブロック誤りの出現によって、誤り訂正が失敗する可能性が高くなる。
誤り訂正を安定的に動作させ、情報伝送速度を向上するため、予め定められたビット数で区切ったブロック内で、ビット順序を入れ替えるブロックインタリーブ処理を行うことが有効である。
A. R. Dixon and H. Sato, "High speed and adaptable error correction for megabit/s rate quantum key distribution", Nature Scientific Reports, 2013.
しかしながら、従来技術では、スループットの低下、または、回路実装が困難になるという問題があった。本発明は、スループットの低下を抑制でき、かつ、実用的な回路構成で実装可能なインタリーブ回路および通信装置を提供することを目的とする。
実施形態のインタリーブ回路は、並び替え回路とアドレス計算回路とを備える。並び替え回路は、1サイクルごとに、n個(nは2以上の整数)のビットを含む入力データを並列に入力し、n個のサイクルで入力されたn個の入力データを、相互に異なるサイクルで入力されたn個のビットをそれぞれ含むn個の出力データに並び替える。アドレス計算回路は、n個の出力データを第1記憶装置に書き込むための書き込みアドレス、および、n個の出力データを第1記憶装置から読み出すための読み出しアドレスを計算する。
以下に添付図面を参照して、この発明にかかるインタリーブ回路および通信装置の好適な実施形態を詳細に説明する。
上記のように、従来のインタリーブ技術では、スループットの低下、または、回路実装が困難になる場合があった。例えば従来のインタリーブ回路の構成例として、多数のビットを同時に入力できず、1ビット/サイクルのような低スループットでデータを並び替える構成があった。また、ブロックのサイズ(ブロックサイズ)が大きな場合、従来技術では、膨大な数のフリップフロップを必要とするか、または、高スループットで動作させるためにメモリのワードサイズが大きくなり、回路実装が困難になる。
そこで、以下の実施形態では、例えばブロックサイズが大きな場合においても、スループットの低下を抑制でき、かつ、実用的な回路構成で実装可能なインタリーブ回路および通信装置を実現する。
(第1の実施形態)
図1は、第1の実施形態にかかる通信装置10の構成の一例を示すブロック図である。図1に示すように、通信装置10は、インタリーブ回路100と、誤り訂正部211と、通信制御部212と、記憶部220と、を備えている。
図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に書き込むための書き込みアドレス、および、n個の出力データをメモリ130から読み出すための読み出しアドレスを計算する。
次に、ブロックインタリーブ処理の例を説明する。図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)
書き込みアドレス=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個のサイクルで、n個の出力データのいずれかをメモリ130からそれぞれ出力するように、書き込みアドレスおよび読み出しアドレスを計算する方法であれば、どのような方法で各アドレスを計算してもよい。
インタリーブ回路100は、これらの一連の処理(ステップS102~ステップS106)を、パイプライン処理してもよい。これにより、各nビットのデータに対して各ステップを1サイクルで処理できる。
インタリーブ回路100は、ブロック内のすべてのデータを処理したか否かを判定する(ステップS107)。ブロック内のすべてのデータを処理していない場合(ステップS107:No)、インタリーブ回路100は、ステップS102に戻り、次のnビットの入力データに対して処理を繰り返す。
ブロック内のすべてのデータを処理した場合(ステップS107:Yes)、インタリーブ回路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)式で計算できる。
図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は、入力データの例を示す図である。図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ビットずつ出力される。例えば図11に示す入力データを並び替えたnビットの出力データは、図12の並び替え回路出力順序欄に示す順序で出力される。アドレス計算回路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)
書き込みアドレス=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により計算される読み出しアドレスに従い、nビットの入力データをメモリ130から読み出す(ステップS205)。並び替え回路110は、メモリから順次読み出したn×nビット単位の入力データを並び替え、並び替えの結果の一部であるnビットの出力データを出力する(ステップS206、ステップS207)。
デインタリーブ回路400は、ブロック内のすべてのデータを処理したか否かを判定する(ステップS208)。ブロック内のすべてのデータを処理していない場合(ステップS208:No)、デインタリーブ回路400は、ステップS202に戻り、次のnビットの入力データに対して処理を繰り返す。
ブロック内のすべてのデータを処理した場合(ステップS208:Yes)、デインタリーブ回路400は、2つのメモリ130a、130bのうち、書き込みに用いるメモリ(書き込み用メモリ)と読み出しに用いるメモリ(読み出し用メモリ)とを切り替え(ステップS209)、動作を終了する。
図16のデータに対してデインタリーブ回路400の並び替え回路110による並び替えが実行されると、例えば、図6に示すような、インタリーブ回路100による並び替えが行われる前のデータが得られる。
本実施形態によれば、nビットの並列入力および並列出力を有する並び替え回路とメモリを用いることにより、nビット/サイクルのレートで並び替え処理を行うことができる。nを調整することで、ブロックサイズが大きな場合であっても、比較的少量のフリップフロップと、実用的なワードサイズ(nビット)で高スループットのブロックインタリーブ処理を実現できる。
例えばワードサイズをn×mビット(n、mは複数ビット)とする技術が知られている。高速動作のため、n=m=512の場合、この技術では、ワードサイズは512×512=262,144ビットとなり、構成が困難となる。これに対して本実施形態では、ワードサイズはnビット=512ビットとなるため、実用的な範囲で回路を構成可能となる。
(第2の実施形態)
第2の実施形態では、相対的に小容量の記憶装置(第2記憶装置)と、相対的に大容量の記憶装置(第1記憶装置)と、を用いる例を説明する。なお、通信装置10の全体構成は、インタリーブ回路100がインタリーブ回路100-2に変更される点が異なるのみであり、図1と同様であるため詳細な説明は省略する。
第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の実施形態では、アドレス計算回路120-2、メモリ130-2a、130-2bの機能、および、記憶制御回路140-2と大容量メモリ150-2を追加したことが第1の実施形態と異なっている。その他の構成および機能は、第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は、小容量メモリから読み出したデータを、バスを介したバースト転送により、大容量メモリ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:No)、インタリーブ回路100-2は、ステップS102に戻り、次のnビットの入力データに対して処理を繰り返す。
小容量メモリの空き容量がない場合(ステップS307:Yes)、インタリーブ回路100-2は、2つのメモリ130-2a、130-2bのうち、書き込みに用いるメモリ(書き込み用メモリ)と読み出しに用いるメモリ(読み出し用メモリ)とを切り替える(ステップS308)。
インタリーブ回路100-2は、ブロック内のすべてのデータを処理したか否かを判定する(ステップS309)。ブロック内のすべてのデータを処理していない場合(ステップS309:No)、インタリーブ回路100-2は、ステップS102に戻り、次のnビットの入力データに対して処理を繰り返す。
ブロック内のすべてのデータを処理した場合(ステップS309:Yes)、インタリーブ回路100-2は、動作を終了する。
図19は、小容量メモリと大容量メモリ150-2を用いたnビットデータの並び替えの例を示す図である。本実施形態では、小容量メモリを用いて、1ブロックの一部のデータ(部分データ)が並び替えられ、部分データが大容量メモリ150-2の対応する領域に書き込まれる。この動作が繰り返され、最終的に大容量メモリ150-2に、1ブロック分の並び替えられたデータが記憶される。
次に、小容量メモリの書き込みアドレスの計算方法の例を、図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となる値とする。
また、アドレス計算回路120-2は、小容量メモリの読み出しアドレスを、2つの小容量メモリごとに、例えば0を初期値として1ずつインクリメントすることにより計算する。
このように、本実施形態では、メモリ130-2a、130-2b(小容量メモリ)をキャッシュのように扱うことで、メモリ130-2a、130-2bの記憶容量を削減しつつ、高速な動作が可能となる。例えば第1の実施形態の2つのメモリ130は合わせて2ブロック分の記憶容量を有するのに対し、本実施形態の小容量メモリは半分の記憶容量となる。このとき、大容量メモリ150-2への書き込みで律速しない限り、nビット/サイクルのレートという高スループットのブロックインタリーブ処理が実現可能となる。
以上説明したとおり、第1から第2の実施形態によれば、スループットの低下を抑制でき、かつ、実用的な回路構成でインタリーブ処理を実装可能となる。
次に、第1または第2の実施形態にかかる通信装置のハードウェア構成について図21を用いて説明する。図21は、第1または第2の実施形態にかかる通信装置のハードウェア構成例を示す説明図である。
第1または第2の実施形態にかかる通信装置は、CPU351などの制御装置と、ROM(Read Only Memory)352やRAM353などの記憶装置と、ネットワークに接続して通信を行う通信I/F354と、各部を接続するバス361を備えている。
第1または第2の実施形態にかかる通信装置で実行されるプログラムは、ROM352等に予め組み込まれて提供される。
第1または第2の実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、第1または第2の実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1または第2の実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
第1または第2の実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部として機能させうる。このコンピュータは、CPU351がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
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
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
Claims (7)
- 1サイクルごとに、n個(nは2以上の整数)のビットを含む入力データを並列に入力し、n個のサイクルで入力されたn個の前記入力データを、相互に異なるサイクルで入力されたn個のビットをそれぞれ含むn個の出力データに並び替える並び替え回路と、
n個の前記出力データを第1記憶装置に書き込むための書き込みアドレス、および、n個の前記出力データを前記第1記憶装置から読み出すための読み出しアドレスを計算するアドレス計算回路と、
を備えるインタリーブ回路。 - 前記並び替え回路は、
前記入力データのi番目(0≦i≦n-1)のビット位置それぞれについて、シフトレジスタとして機能する(n+i)段以上のレジスタを備え、
(n+i)段以上の前記レジスタのうちn個の前記レジスタに記憶されたn個のビットを含む前記出力データを出力する、
請求項1に記載のインタリーブ回路。 - 前記並び替え回路は、
1サイクルごとに、前記入力データのn個のビット位置のうちいずれかに対応する前記レジスタに記憶されたn個のビットを含む前記出力データを選択し、選択した前記出力データを出力する、
請求項2に記載のインタリーブ回路。 - 前記入力データのi番目(0≦i≦n-1)のビット位置それぞれについて、(n+i)段の前記レジスタを備え、
前記並び替え回路は、n個の選択回路を備え、
j番目(0≦j≦n-1)の前記選択回路は、
前記入力データのi番目(0≦i≦n-1)のビット位置に対応する(n+i)段の前記レジスタのうち、(n-j+i)段の前記レジスタに接続され、
連続するn個のサイクルそれぞれで、接続される前記レジスタのうち、相互に異なるいずれかの前記レジスタに記憶されたビットを選択する、
請求項3に記載のインタリーブ回路。 - 前記第1記憶装置より記憶容量が小さい第2記憶装置をさらに備え、
前記並び替え回路は、前記出力データを前記第2記憶装置に記憶し、
前記第2記憶装置に記憶された前記出力データを読み出し、読み出した前記出力データを前記第1記憶装置に記憶する記憶制御回路をさらに備える、
請求項1に記載のインタリーブ回路。 - 前記アドレス計算回路は、連続するn個のサイクルで、n個の前記出力データのいずれかを前記第1記憶装置からそれぞれ出力するように、前記書き込みアドレスおよび前記読み出しアドレスを計算する、
請求項1に記載のインタリーブ回路。 - 入力データを並び替えた出力データを出力するインタリーブ回路と、
前記出力データに対する誤り訂正を実行する誤り訂正部と、を備え、
前記インタリーブ回路は、
1サイクルごとに、n個(nは2以上の整数)のビットを含む入力データを並列に入力し、n個のサイクルで入力されたn個の前記入力データを、相互に異なるサイクルで入力されたn個のビットをそれぞれ含むn個の出力データに並び替える並び替え回路と、
n個の前記出力データを第1記憶装置に書き込むための書き込みアドレス、および、n個の前記出力データを前記第1記憶装置から読み出すための読み出しアドレスを計算するアドレス計算回路と、
を備える、
通信装置。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022131196A JP2024027962A (ja) | 2022-08-19 | 2022-08-19 | インタリーブ回路および通信装置 |
EP23158513.4A EP4325726A1 (en) | 2022-08-19 | 2023-02-24 | Interleave circuit and communication device |
US18/173,940 US20240061773A1 (en) | 2022-08-19 | 2023-02-24 | Interleave circuit and communication device |
CN202310162820.XA CN117595965A (zh) | 2022-08-19 | 2023-02-24 | 交织电路以及通信装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022131196A JP2024027962A (ja) | 2022-08-19 | 2022-08-19 | インタリーブ回路および通信装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024027962A true JP2024027962A (ja) | 2024-03-01 |
Family
ID=85384306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022131196A Pending JP2024027962A (ja) | 2022-08-19 | 2022-08-19 | インタリーブ回路および通信装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240061773A1 (ja) |
EP (1) | EP4325726A1 (ja) |
JP (1) | JP2024027962A (ja) |
CN (1) | CN117595965A (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840859B2 (en) * | 2005-02-14 | 2010-11-23 | 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 US US18/173,940 patent/US20240061773A1/en active Pending
- 2023-02-24 EP EP23158513.4A patent/EP4325726A1/en active Pending
- 2023-02-24 CN CN202310162820.XA patent/CN117595965A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240061773A1 (en) | 2024-02-22 |
CN117595965A (zh) | 2024-02-23 |
EP4325726A1 (en) | 2024-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7478181B2 (en) | Memory system and device with serialized data transfer | |
JP2005149492A (ja) | 行列ベクトル・レジスタ・アレイの二次元アドレッシング | |
JPH11213574A (ja) | データ記憶システム | |
JPS6126712B2 (ja) | ||
JP2024027962A (ja) | インタリーブ回路および通信装置 | |
JPH09198862A (ja) | 半導体メモリ | |
KR20070066920A (ko) | 메모리 제어 회로 및 메모리 제어 방법 | |
US8161445B2 (en) | Logic transformation and gate placement to avoid routing congestion | |
JP2002269162A (ja) | 動作合成方法 | |
JP2007328894A (ja) | 半導体記憶装置、および半導体記憶装置の検査方法 | |
JP6943283B2 (ja) | 高速フーリエ変換装置、データ並べ替え処理装置、高速フーリエ変換処理方法およびプログラム | |
JP2022074442A (ja) | 演算装置および演算方法 | |
KR20080039766A (ko) | 움직임 보상을 위한 더블 레지스터 어레이 버퍼 | |
JP3937418B2 (ja) | 記憶装置および記憶読み出し制御方法 | |
JP3526542B2 (ja) | データ転送装置及びその方法 | |
JP3879110B2 (ja) | 記憶装置およびデータ処理方法 | |
JPH09231347A (ja) | 画像処理装置 | |
JP2003099250A (ja) | レジスタ読み出し回路及びマイクロプロセッサ | |
JP2001331473A (ja) | メモリアドレス変換方法及び高速フーリエ変換装置 | |
JP2021051448A (ja) | 情報処理装置、疎行列格納方法及びプログラム | |
JP2005128832A (ja) | データ処理装置と剰余演算回路 | |
JP2020173609A (ja) | ベクトルプロセッサ装置、生成方法及びプログラム | |
CN117150196A (zh) | 一种基于fpga的高速紧凑流水线型矩阵转置实现方法 | |
JP3455828B2 (ja) | ビットシフト回路 | |
JP2013161325A (ja) | Simd型マイクロプロセッサ、プロセッサシステムおよびsimd型マイクロプロセッサのデータ処理方法 |