JP2855936B2 - データ入れ替え方式 - Google Patents

データ入れ替え方式

Info

Publication number
JP2855936B2
JP2855936B2 JP3146892A JP3146892A JP2855936B2 JP 2855936 B2 JP2855936 B2 JP 2855936B2 JP 3146892 A JP3146892 A JP 3146892A JP 3146892 A JP3146892 A JP 3146892A JP 2855936 B2 JP2855936 B2 JP 2855936B2
Authority
JP
Japan
Prior art keywords
data
memory
address
stored
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.)
Expired - Fee Related
Application number
JP3146892A
Other languages
English (en)
Other versions
JPH05197611A (ja
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.)
NEC Corp
Original Assignee
Nippon Electric 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
Application filed by Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP3146892A priority Critical patent/JP2855936B2/ja
Publication of JPH05197611A publication Critical patent/JPH05197611A/ja
Application granted granted Critical
Publication of JP2855936B2 publication Critical patent/JP2855936B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はディジタル信号処理に関
し、特にデータのビットの順序を入れ替えるデータ入れ
替え方式に関する。
【0002】
【従来の技術】ディジタル信号処理においては、複数の
ビットで構成されるデータのビットの順序を入れ替える
ことがしばしば行われる。例えばディジタル音声符号化
処理においては、求めた音声符号データのデータ位置を
入れ替えて出力するために、データの入れ替えを行って
いる。
【0003】図3は、このようなデータの入れ替えを行
う従来の方式のブロック図であり、1は総ビット数DL
の入れ替え対象データ、2は入れ替え対象データ1を格
納する第1のメモリ、3はデータの入れ替え処理を行う
データ入れ替え演算部、4はこのデータ入れ替え演算部
3が参照する制御データを保持する制御テーブル、5は
データ入れ替え演算部3で得られたデータを格納する第
2のメモリ、6は入れ替え後のデータを最終的に保持す
る第3のメモリ、7は第2のメモリ5に格納されたデー
タを入力して1ワード当たりのデータ長の変換を行い、
第3のメモリ6に格納するデータ長変換演算部、REG
はワーキングレジスタである。なお、第1,第2,第3
のメモリ2,5,6はデータを入れ替える演算器のメモ
リであって、何れも1アドレスでアクセスされる領域
(1ワード)のビット数はWLである。
【0004】図3を参照すると、先ず、入れ替え対象デ
ータ1は、第1のメモリ2に格納される。ここで、第1
のメモリ2のアドレスを先頭から順にA1[0],A1
[1],…,A1[N]とし、先頭のアドレスから順に
1ワード当たりm1ビットずつ入れ替え対象データ1の
ビットを格納していくとすると、 n1=DL/m1 …(1) の演算式に示すように、DLをm1で割り、演算結果が
小数の場合は小数点を切り上げて求めた商n1が第1の
メモリ2に入れ替え対象データ1を格納するのに必要な
アドレス数(ワード数)となる。即ち、入れ替え対象デ
ータ1は第1のメモリ2のアドレスA1[0]からアド
レスA1[n1−1]までに格納される。
【0005】入れ替え対象データ1が第1のメモリ2に
格納されると、データ入れ替え演算部3は制御テーブル
4に格納されている制御データを参照して第1のメモリ
2に格納されているデータを読み出し、第2のメモリ5
の該当するアドレスに格納する。具体的には以下のよう
な動作を行う。
【0006】今、第2のメモリ5のアドレスを先頭から
順にA2[0],A2[1],…,A2[N]とし、先
頭のアドレスから順にm2ビットずつ入れ替え後のデー
タのビットを格納していくとすると、 n2=DL/m2 …(2) の演算式に示すように、DLをm2で割り、演算結果が
小数の場合は小数点を切り上げて求めた商n2が第2の
メモリ5に入れ替え後のデータを格納するのに必要なア
ドレス数(ワード数)となる。即ち、入れ替え後のデー
タは第2のメモリ5のアドレスA2[0]からアドレス
A2[n2−1]までに格納される。
【0007】制御テーブル4には、第1のメモリ2の上
記の各アドレスA1[0],A1[1],…,A1[n
1−1]に1対1に対応する制御データF[0],F
[1],…,F[n1−1]が格納されており、各制御
データF[x]は、第1のメモリ2のアドレスA1
[x]に格納されているデータを格納すべき第2のメモ
リ5のアドレスA2[y]を指示している。
【0008】そこで、データ入れ替え演算部3は、制御
テーブル4の制御データをその先頭の制御データF
[0]から最後の制御データF[n1−1]まで順に参
照して、第1のメモリ2の各アドレスA1[0],A1
[1],…,A1[n1−1]に格納されているデータ
を格納すべき第2のメモリ5のアドレスを決定して、順
次第2のメモリ5に第1のメモリ2から読み出したデー
タを書き込んでいく。
【0009】このときのデータ入れ替え演算部3の動作
を演算式で示すと下記のようになる。 A2[F[i]]=A1[i] …(3)
【0010】次に、データ入れ替え演算部3の処理が終
了し、第2のメモリ5のアドレスA2[0]からアドレ
スA2[n2−1]までに入れ替え後のデータが格納さ
れると、データ長変換演算部7が動作を始める。
【0011】ここで、入れ替え後のデータを最終的には
第3のメモリ6の先頭のアドレスA3[0]から1アド
レス(1ワード)当たりWLビットずつ順次格納してい
くとすると、データ長変換演算部7は、第2のメモリ5
の先頭のアドレスA2[0]から最後のアドレスA2
[n2−1]までWLビットずつのデータを順次切り出
して第3のメモリ6の先頭のアドレスA3[0]から順
に格納していくものである。
【0012】従って、 n3=DL/WL …(4) の演算式に示すように、DLをWLで割り、演算結果が
小数の場合は小数点を切り上げて求めた商n3が第3の
メモリ6に入れ替え後のデータを格納するのに必要なア
ドレス数(ワード数)となる。即ち、入れ替え後のデー
タは第3のメモリ6のアドレスA3[0]からアドレス
A3[n3−1]までに格納される。
【0013】図4はデータ入れ替え演算部3およびデー
タ長変換演算部7の処理の詳細を示すフローチャートで
ある。
【0014】以下、図3,図4を参照して、m1=m2
=1、すなわち第1,第2のメモリ2,5の各アドレス
に1ビットのデータを格納し、DL=WL、すなわち入
れ替え対象データ1の総ビット数が第3のメモリ6の1
ワード当たりのビット数に等しい場合を例にして、デー
タ入れ替え演算部3およびデータ長変換演算部7の動作
を詳しく説明する。
【0015】図4において、ステップ201〜206は
データ入れ替え演算部3の動作ステップであり、第1の
メモリ2のアドレスA1[0]〜A1[DL−1]まで
に入れ替え対象データ1が格納されると、先ずデータ入
れ替え演算部3は、ループカウンタlcを0に設定する
と共に、第1のメモリ2の読み込みアドレスポインタ並
びに制御テーブル4の読み込みアドレスポインタとなる
iを0に設定する(201)。
【0016】次に、制御テーブル4から0番目の制御デ
ータF[0]を読み込み、その内容に従って第1のメモ
リ2のアドレスA1[0]に格納されているビットを格
納すべき第2のメモリ5の書き込み先アドレスを設定す
る(202)。
【0017】次に、第1のメモリ2のアドレスA1
[0]に格納されているビットを読み込み、それをステ
ップ202で設定した書き込み先アドレスに従って第2
のメモリ5に格納する(203)。
【0018】次に、アドレスポインタiを+1し(20
4)、ループカウンタlcを+1して1とする(20
5)。
【0019】そして、ループカウンタlcの値がN(今
の場合N=DL)に等しいか否かをチェックし(20
6)、等しくなければステップ202に戻って上述と同
様な処理を繰り返し、等しければ処理を終了する。
【0020】データ長変換演算部7はデータ入れ替え演
算部3の処理が終わると、図4のステップ210〜21
7に示す動作を開始する。
【0021】先ず、ループカウンタlc1,第2のメモ
リ5の読み込みアドレスポインタiおよび第3のメモリ
6の書き込みアドレスポインタjを0に設定する(21
0)。
【0022】次に、ループカウンタlc2およびワーキ
ングレジスタREGの内容を0に設定する(211)。
なお、このワーキングレジスタREGはWL以上の容量
を有するレジスタである。
【0023】次に、下記の演算式に示す演算を1回行う
(212)。 REG=((REG<<1)|A2[i]) …(5) ここで、REG<<1は、ワーキングレジスタREGの
内容を1ビット左シフトする演算を意味し、|は1ビッ
ト左シフトしたワーキングレジスタREGの内容とアド
レスA2[i]に格納されているビットとの論理和をと
る演算を意味する。
【0024】従って、最初は第2のメモリ5のアドレス
A2[0]のビットがワーキングレジスタREGの最下
位のビットに設定される。
【0025】次に、ループカウンタlc2を+1して1
とし、また第2のメモリ5の読み出しアドレスポインタ
iを+1する(213)。
【0026】そして、ループカウンタlc2とWLとを
比較し(214)、等しくなければステップ212に戻
って上述と同様の動作を繰り返し、等しければ、ワーキ
ングレジスタREGに入れ替え後のデータのWLビット
分のデータが設定されたことになるので、ステップ21
5に進む。
【0027】ステップ215では、ワーキングレジスタ
REGの内容を第3のメモリ6のアドレスA3[0]に
格納する。即ち、 A3[j]=REG …(6) とする。
【0028】次に、ループカウンタlc1を+1して1
とし、また第3のメモリ6の書き込みアドレスポインタ
jを+1する(216)。
【0029】そして、ループカウンタlc1と所定値L
(今の場合はDL)とを比較し、等しくなければステッ
プ211に戻って上述した処理を繰り返し、等しければ
処理を終える。今の例ではDL=WLとしているので、
第2のメモリ5のアドレスA3[0]にデータを書き込
んだ時点で処理を終了することになる。
【0030】
【発明が解決しようとする課題】従来は上述したように
してデータの入れ替えを行っており、任意の入れ替えを
行うことは可能であったが、以下のような問題点があっ
た。
【0031】即ち、制御テーブル4の制御データに従っ
て、第1のメモリ2の先頭アドレスから順にデータを読
み出して第2のメモリ5の該当するアドレスに書き込む
ため、第2のメモリ5上では必ずしも先頭のアドレスA
2[0]から入れ替え後のデータが格納されていく訳で
はない。従って、データ長変換演算部7では、データ入
れ替え演算部3の処理が全て完了してから演算を開始し
なければならず、最終的に第3のメモリ6に入れ替え後
のデータが設定されるまでの処理時間が長くかかる。
【0032】本発明はこのような従来の問題点を解決し
たもので、その目的は、入れ替え後のデータをその先頭
の部分から優先的に生成することを可能にすることによ
り、データの入れ替えに要する処理時間を短縮すること
にある。
【0033】
【課題を解決するための手段】本発明は上記の目的を達
成するために、複数のビットで構成されるデータのビッ
トの順序を入れ替えるデータ入れ替え方式において、入
れ替え対象データを、アドレスの連続する複数の領域に
わたって保持する第1のメモリと、入れ替え後のデータ
のどの部分が前記第1のメモリのどのアドレスに格納さ
れた内容に相当するかを、入れ替え後のデータの一端か
ら他端まで全部分について順に記述した制御データを保
持する制御テーブルと、この制御テーブルに保持された
制御データを参照して、入れ替え後のデータの一端から
他端に向かって順次その部分を構成する内容を前記第1
のメモリから読み出してワーキングレジスタに格納する
演算手段とを備えている。
【0034】また、前記演算手段は前記ワーキングレジ
スタ上に所定長のデータが格納される毎にそのデータを
別のメモリのアドレスの連続する領域に移す構成を有し
ている。
【0035】
【作用】本発明のデータ入れ替え方式においては、入れ
替え後のデータのどの部分が第1のメモリのどのアドレ
スに格納された内容に相当するかを、入れ替え後のデー
タの一端から他端までの全部分について順に記述した制
御データを制御テーブルが保持し、演算手段がこの制御
テーブルに保持された制御データを参照して、入れ替え
後のデータの一端から他端に向かって順次その部分を構
成する内容を第1のメモリから読み出してワーキングレ
ジスタに格納する。従って、入れ替え後のデータは端か
ら順に生成されることになり、入れ替え後のデータを所
定長ずつ別のメモリのアドレスの連続する領域に移す処
理が並行して行える。
【0036】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0037】図1は本発明の一実施例の構成図であり、
1は総ビット数DLの入れ替え対象データ、2は入れ替
え対象データ1を格納する第1のメモリ、9はデータの
入れ替え及びデータ長の変換処理を行う演算部、8はこ
の演算部9が参照する制御データを保持する制御テーブ
ル、6は入れ替え後のデータを最終的に保持する第3の
メモリである。なお、第1および第3のメモリ2,6は
何れも1アドレスでアクセスされる領域(1ワード)の
ビット数はWLである。
【0038】ここで、制御テーブル8に格納される制御
データは従来のものと異なり、入れ替え後のデータを基
準に作成されている。即ち、入れ替え後のデータのどの
部分が第1のメモリ2のどのアドレスに格納された内容
に相当するかを、入れ替え後のデータの一端から他端ま
での全部分について順に記述した制御データが格納され
ている。
【0039】図1を参照すると、入れ替え対象データ1
を1アドレス当たりm1ビットずつ先頭のアドレスから
順に格納するものとすると、先ず入れ替え対象データ1
は従来と同様に第1のメモリ2のアドレスA1[0]か
らアドレスA1[n1−1]までに格納される。
【0040】入れ替え対象データ1が第1のメモリ2に
格納されると、演算部9は制御テーブル8に格納されて
いる制御データを参照して第1のメモリ2の該当するア
ドレスに格納されているデータを読み出し、それをワー
キングレジスタREGに順次設定していく。
【0041】今、入れ替え後のデータをその先頭から順
にm2ビットずつ区切った個々の要素をD2[0],D
2[1],…,D2[n2−1]とすると、制御テーブ
ル8には、各要素D2[0],D2[1],…,D2
[n2−1]に1対1に対応する制御データF’
[0],F’[1],…,F’[n2−1]が格納され
ており、各制御データF’[x]は、要素D2[x]を
構成すべきデータを格納している第1のメモリ2のアド
レスA1[y]を指示している。
【0042】そこで、演算部9は、制御テーブル8の制
御データをその先頭の制御データF’[0]から最後の
制御データF’[n2−1]まで順に参照して、入れ替
え後のデータの要素を格納している第1のメモリ2のア
ドレスを、その先頭の要素D2[0]から最後の要素D
2[n2−1]まで順に求めていく。即ち、 D2[i]のアドレス=A1[F’[i]] …(7) とする。
【0043】そして、この求めたアドレスに従って第1
のメモリ2からデータを順次読み出してワーキングレジ
スタREGに書き込んでいく。
【0044】そして、ワーキングレジスタREGにWL
ビット分のデータが書き込まれると、第1のメモリ2か
らの読み出し,ワーキングレジスタREGへの書き込み
処理を一時中断して、ワーキングレジスタREGに格納
されたデータを第3のメモリ6に移し、再び読み出し,
書き込み処理に戻り、以下、入れ替え後のデータが全て
第3のメモリ6に書き込まれるまで同様の処理を繰り返
す。
【0045】図2は演算部9の処理の詳細を示すフロー
チャートである。
【0046】以下、図1,図2を参照して、m1=m2
=1、且つ、DL=WL、すなわち総ビット数が第3の
メモリ6の1ワード当たりのビット数に等しいデータを
処理の対象とし、第1のメモリ2の各アドレスに1ビッ
トずつ格納して1ビット単位でデータの入れ替えを行う
場合を例にして、演算部9の動作を詳しく説明する。
【0047】演算部9は、第1のメモリ2のアドレスA
1[0]〜A1[DL−1]までに入れ替え対象データ
1が格納されると、先ずループカウンタlc1,制御テ
ーブル8の読み込みアドレスポインタiおよび第3のメ
モリ6の書き込みアドレスポインタjを0に設定する
(101)。
【0048】次に、ループカウンタlc2およびワーキ
ングレジスタREGの内容を0に設定する(102)。
【0049】次に、制御テーブル8から0番目の制御デ
ータF’[0]を読み込み、その内容に従って第1のメ
モリ2の読み込み先アドレスを設定する(103)。
【0050】次に、次の演算式に示す演算を行う(10
4)。 REG=((REG<<1)|A1[F’[i]]) …(8) これにより、最初は、第1のメモリ2のアドレスA1
[F’[i]]に格納されているビットが入れ替え後の
データの先頭のビットとして、ワーキングレジスタRE
Gの最下位のビットに設定される。
【0051】次に、ループカウンタlc2を+1して1
とし、また制御テーブル8の読み出しアドレスポインタ
iを+1してF[1]を指示するようにする(10
5)。
【0052】そして、ループカウンタlc2とWLとを
比較し(106)、等しくなければステップ103に戻
って上述と同様の動作を繰り返し、等しければ、ワーキ
ングレジスタREGに入れ替え後のデータのWLビット
分のデータが設定されたことになるので、ステップ10
7に進む。
【0053】ステップ107では、ワーキングレジスタ
REGの内容を第3のメモリ6のアドレスA3[0]に
格納する。
【0054】そして、ループカウンタlc1の内容を+
1して1とし、また第3のメモリ6の書き込みアドレス
ポインタjを+1する(108)。
【0055】そして、ループカウンタlc1と所定値L
(今の場合はDL)とを比較し、等しくなければステッ
プ102に戻って上述した処理を繰り返し、等しければ
処理を終える。今の例ではDL=WLとしているので、
第3のメモリ6のアドレスA3[0]にデータを書き込
んだ時点で処理を終了することになる。
【0056】
【発明の効果】以上説明したように、本発明は、入れ替
え後のデータのどの部分が第1のメモリのどのアドレス
に格納された内容に相当するかを、入れ替え後のデータ
の一端から他端までの全部分について順に記述した制御
データを用意し、演算手段はこの制御データを参照し
て、入れ替え後のデータの一端から他端に向かって順次
その部分を構成する内容を第1のメモリから読み出して
ワーキングレジスタに格納していくので、入れ替え後の
データは端から順に生成されることになる。従って、こ
れらの処理と入れ替え後のデータを所定長ずつ別のメモ
リのアドレスの連続する領域に移す処理とが並行して行
えることになり、データの入れ替えに要する処理時間を
従来に比べ短縮することができる。
【0057】また、従来のような第2のメモリを必要と
しないので、メモリ量が削減できる。
【図面の簡単な説明】
【図1】本発明の一実施例の構成図である。
【図2】演算部9の処理の詳細を示すフローチャートで
ある。
【図3】従来方式の構成図である。
【図4】データ入れ替え演算部3およびデータ長変換演
算部7の処理の詳細を示すフローチャートである。
【符号の説明】
1…入れ替え対象データ 2…第1のメモリ 3…データ入れ替え演算部 4,8…制御テーブル 5…第2のメモリ 6…第3のメモリ 7…データ長変換演算部 9…演算部 REG…ワーキングレジスタ
フロントページの続き (58)調査した分野(Int.Cl.6,DB名) G06F 12/02 550 G06F 7/36 G06F 15/66

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のビットで構成されるデータのビッ
    トの順序を入れ替えるデータ入れ替え方式において、 入れ替え対象データを、アドレスの連続する複数の領域
    にわたって保持する第1のメモリと、 入れ替え後のデータのどの部分が前記第1のメモリのど
    のアドレスに格納された内容に相当するかを、入れ替え
    後のデータの一端から他端まで全部分について順に記述
    した制御データを保持する制御テーブルと、 該制御テーブルに保持された制御データを参照して、入
    れ替え後のデータの一端から他端に向かって順次その部
    分を構成する内容を前記第1のメモリから読み出してワ
    ーキングレジスタに格納する演算手段とを具備したこと
    を特徴とするデータ入れ替え方式。
  2. 【請求項2】 前記演算手段は前記ワーキングレジスタ
    上に所定長のデータが格納される毎にそのデータを別の
    メモリのアドレスの連続する領域に移す構成を有する請
    求項1記載のデータ入れ替え方式。
JP3146892A 1992-01-22 1992-01-22 データ入れ替え方式 Expired - Fee Related JP2855936B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3146892A JP2855936B2 (ja) 1992-01-22 1992-01-22 データ入れ替え方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3146892A JP2855936B2 (ja) 1992-01-22 1992-01-22 データ入れ替え方式

Publications (2)

Publication Number Publication Date
JPH05197611A JPH05197611A (ja) 1993-08-06
JP2855936B2 true JP2855936B2 (ja) 1999-02-10

Family

ID=12332096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3146892A Expired - Fee Related JP2855936B2 (ja) 1992-01-22 1992-01-22 データ入れ替え方式

Country Status (1)

Country Link
JP (1) JP2855936B2 (ja)

Also Published As

Publication number Publication date
JPH05197611A (ja) 1993-08-06

Similar Documents

Publication Publication Date Title
JP4122972B2 (ja) データ記録装置及びフラッシュメモリに対するデータ書き込み方法
JP3307579B2 (ja) データ記憶システム
JPS5855528B2 (ja) アドレス発生装置
JP3786993B2 (ja) データ記憶ユニット及び該ユニットを用いたデータ記憶装置
US6684267B2 (en) Direct memory access controller, and direct memory access control method
JP2855936B2 (ja) データ入れ替え方式
JPH07311708A (ja) メモリカード
KR20160057296A (ko) 링크드 리스트 어레이 하드웨어를 포함하는 장치와 이를 포함하는 시스템
JP4696500B2 (ja) メモリ管理方法および装置
JP2969645B2 (ja) タイムスロット入替回路
JPH04350731A (ja) 開発支援システム
JP3071717B2 (ja) パリティビット書き込み方式
KR100258933B1 (ko) 메모리 관리장치 및 방법
JPS61246848A (ja) 動作履歴記憶回路
JPS59167734A (ja) ダイレクト・メモリ・アクセス制御方式
JPH07219843A (ja) メモリバンク切換え装置
JPH05120211A (ja) データバス幅制御装置
JPH09106341A (ja) バッファメモリ管理方法及びその装置
JPS62242239A (ja) デ−タ転送方式
JPH0475545B2 (ja)
JPH08335190A (ja) メモリカード制御装置
JPS63231546A (ja) データベース装置
JPH023143A (ja) 半導体メモリ
JPH02309397A (ja) グラフデータのプレーンパツク変換回路
JPS60254477A (ja) メモリシステム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees