米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 インターリーブ装置及び方法
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−49779
公開日 平成7年(1995)2月21日
出願番号 特願平5−211077
出願日 平成5年(1993)8月4日
代理人 【弁理士】
【氏名又は名称】斉藤 勲
発明者 岡本 稔 / 上田 勝彦 / 浅野 延夫
要約 目的
インターリーブ処理に使用するプログラムメモリ及びデータメモリの記憶領域を小さくすることを計る。

構成
インターリーブ処理前のデータ及び処理後のデータを記憶する第1の記憶手段100と、インターリーブ処理後のデータの番地情報と処理すべきビットのビット位置情報とを記憶する第2の記憶手段120と、該ビットの状態を判別するビット判別手段130、165、167と、第1の記憶手段からのインターリーブ処理されるべきデータの上記ビット位置情報で指定したビットを上記で判別したビット状態に応じてセット又はリセットすることによりインターリーブを実行する演算手段130、150、160と、演算手段からのインターリーブ処理後のデータを第1の記憶手段に書込む書込手段100、170とから成る。
特許請求の範囲
【請求項1】インターリーブ処理前のデータの記憶域とインターリーブ処理後のデータの記憶域とを含む第1の記憶手段と、前記インターリーブ処理後のデータの記憶域の番地情報と、該データのインターリーブ処理後のビットのビット位置情報とを記憶する第2の記憶手段と、前記インターリーブ処理前のデータのインターリーブを希望するビットの状態を判別するビット判別手段と、前記番地情報に基づき前記第1の記憶手段から読出されたインターリーブ処理後のデータの、該データに対する前記ビット位置情報により指定された位置のビットを前記ビット判別手段の出力に応じセットもしくはリセットの操作を行なう演算手段と、前記演算手段の出力を前記インターリーブ処理後のデータの記憶域に書込む書込手段と、を備えたことを特徴とするインターリーブ装置。
【請求項2】前記第2の記憶手段に記憶の番地情報は相対的番地情報であり、前記インターリーブ装置は、更に、前記相対的番地情報と共同して前記番地情報を構成する基準値を含むポインタと、前記相対的番地情報と前記基準値とを加算して前記インターリーブ処理後のデータの記憶域の前記番地情報を出力する加算器と、を含むことを特徴とする請求項1記載のインターリーブ装置。
【請求項3】インターリーブ処理前のデータの記憶域とインターリーブ処理後のデータの記憶域とを設け、前記インターリーブ処理後のデータの記憶域の番地情報と、該データのインターリーブ処理後のビットのビット位置情報とを予め設定し、前記インターリーブ処理前のデータのインターリーブを希望するビットを順次取出してその状態を判別し、前記番地情報に基づき読出されたインターリーブ処理後のデータの、該データに対する前記ビット位置情報により指定された位置のビットを前記判別されたビットの状態に対応した値に設定し、前記指定された位置のビットが前記判別されたビットの状態に対応した値に設定されたデータを前記番地情報で指定した記憶域に再び記憶する、各工程を含むインターリーブ方法。
【請求項4】前記番地情報は相対的番地情報と、該相対的番地情報と共同して前記番地情報を構成する基準値とから成ることを特徴とする請求項3記載のインターリーブ方法。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明は送信データのインターリーブ処理を行なうインターリーブ装置に関するものである。
【0002】
【従来の技術】近年、ディジタル信号処理プロセッサ(以下DSPと略称する)を通信分野に適用する場合、送信データに対する処理の1つとして、インターリーブ処理を行なうようにしている。このインターリーブ処理は、順序道りに並べられたビット列をある一定の規則に基づいて並べかえる処理である。
【0003】DSPにおけるインターリーブ処理は、例えば、以下のような手順によって行なわれる。それは、インターリーブするべき順序道りに並べられたデータをメモリから読出し、そのデータを特定のビット数だけシフトし、シフトされたデータとインターリーブ処理をして格納する特定番地(例えば、A番地)のメモリデータとの論理和を計算し、その計算結果をメモリのA番地に格納して行われる。この手順を送信データのビットの数だけ繰返すことによってインターリーブ処理が完成する。
【0004】以下、上記の従来技術によるインターリーブ装置について、図3に従いその構成を説明する。図3は従来のインターリーブ装置の構成を示すブロック図である。
【0005】図3において、300は1語又は1ワード当たりNdビット(Ndは正の整数、例えば16)で構成される複数の語からなるインターリーブ処理前の又は処理するべきデータの記憶域と、インターリーブ処理後のデータ又は処理されるべきデータ(既にインターリーブしたビットを有し、更に継続してインターリーブするべきものを含む)の記憶域とを含むデータメモリ、324はデータメモリ300のアクセス番地を指定し、インターリーブ処理後のデータが格納される番地を保持するポインタ、340はデータメモリ300から読出されたインターリーブ処理後のデータを入力し、それを後述のレジスタ342で示すビット数だけシフトするシフタである。
【0006】更に、342はシフタ340がシフトするビットの数を供給するレジスタ、360は後述のレジスタ370から出力したデータとデータメモリ300から読出されシフタ340でシフトされたデータとを入力して論理演算する論理演算器、370はNdビット(Ndは正の整数、例えば16)で構成され、論理演算器360またはデータメモリ300からデータを入力するレジスタ、380はここで実行するプログラムを格納するプログラムメモリ、382はプログラムメモリ380から読出された命令を解読するデコーダ、384は論理演算器360の動作を制御する制御信号、である。
【0007】以下、図3、図4、図6、図9に従い、上記のように構成されたインターリーブ装置によってインターリーブ処理を実行するその動作について説明する。ここで、図4は従来のインターリーブ処理によりインターリーブするべき又はインターリーブ処理前のデータの格納状態を示す構成図である。図6はインターリーブ処理によりインターリーブ処理後のデータの格納状態を示す構成図である。図9はプログラムメモリに格納された従来のプログラムの例を示す図である。尚、図3については前述した。
【0008】以下で説明するインターリーブ処理は、例えば、図4に示した状態でデータメモリ300に格納されているインターリーブ処理前のデータを図6に示すように並べかえるものとし、図4に示すように、インターリーブ処理前のデータD1乃至DNtは0番地から順にその最下位ビットに格納されており、また、図6に示すデータメモリ300の領域には初期値として0が既に格納され、データメモリ300及びレジスタ370は16ビット(Nd=16)構成という条件の下で行われるものと仮定する。
【0009】一方、プログラムは、図9に示すように、プログラムメモリ380の各番地(n〜n+m)に格納されており、その処理は番地順に従って行うものとする。以下、その処理手順について番地順に説明する。
【0010】[プログラムメモリ380:n番地]データメモリ300のポインタ324(ポインタ324には予め100を格納しておく)で指定された番地から(予め0・・・・・0に初期化されている)データを読出しレジスタ370に格納する。
【0011】[プログラムメモリ380:n+1番地]レジスタ342にシフタ340でシフトするビット数を設定する。本例では、最初、図4に示すように、データメモリ300の0番地に格納されているデータD1をレジスタ370のビット15に格納するため、シフトビット数15を設定する。
【0012】[プログラムメモリ380:n+2番地]データメモリ300の0番地のデータ‘0・・・・・0D1’をシフタ340に読出し、そこでレジスタ342に保持されているシフトビット数‘15’だけ上位側にシフトし、それを論理演算器360に送る。そこで、15ビット位置にシフトされたデータ‘D10・・・・・0’とレジスタからのデータ(予め格納された‘0・・・・・・0’)との論理和(オア)を計算し、その結果のデータ‘D10・・・・・0’をレジスタ370に格納する。これにより、レジスタ370のビット15にD1を格納することができた(他のビット位置は全部0)。
【0013】それ以降のインターリーブ処理も上記同様にプログラムを進め、ビットを付加してインターリーブ処理を実行することができる。すなわち、プログラムメモリ380における次のプログラムn+3番地及びn+4番地においても、n+1番地及びn+2番地のプログラムと類似する動作を行う。しかし、ここでは、データメモリ300の16番地に格納されているビットD17をデータメモリ300の100番地のD1の次のビット位置(ビット位置14)に格納するインターリーブ処理を実行することになる。
【0014】実際には、前回の演算結果のデータ‘D10・・・・・0’はレジスタ370に格納されているので、それを取出して論理演算器360の一方の入力に挿入する。他方、データメモリ300の16番地に格納されているデータビットD17(ビット位置0に格納されている)を読出し、シフタ340において上位に14ビット位置シフトして論理演算器360の他方の入力に挿入する。論理演算器360から両入力データの論理和‘D1 D17 0・・・・・0’が出力され、それをレジスタ370に格納し、前に格納されていたデータ‘D10・・・・・0’と置き換える。このインターリーブ処理において、ビットD17が0の場合は‘D10・・・・・0’、ビットD17が1の場合は‘D11・・・・・0’となる。D1の値も勿論0か1である。
【0015】以上説明したn+3番地及びn+4番地のプログラム処理と同様な動作をNd回(本例では16回)実行して、最後にn+31番地及びn+32番地のプログラム処理を終了すると、レジスタ370の全ビットが完成する。
【0016】[プログラムメモリ380:n+m番地]レジスタ370に格納されている完成した16ビットのデータをデータメモリ300のポインタ324で指定した番地(100番地)に格納し、ポインタ324の値を1増分す(ポインタ324の増分機構は図示せず)。これにより、データメモリ300のポインタ324で指定した番地(100番地)にはインターリーブ処理が完成した後のデータ(16ビット)を格納することができたことになる。
【0017】以後、プログラムメモリのn番地からn+m番地と同様な処理をデータメモリ300の101番地以下の番地についても同様に実行することによりインターリーブ処理が完了する。(例えば、「MN1901/MN1909ユーザーズマニュアル6、99、104頁(松下電子工業刊)」に示された命令セット、及びハードウェア構成により上記処理を実行することができる)。
【0018】
【発明が解決しようとする課題】しかしながら、上記のような構成でインターリーブ処理を行なうと、プログラムメモリ380及び、データメモリ300に非常に大きな記憶領域を必要とする。すなわち、プログラムメモリ380においては、n+1番地及びn+2番地の2命令中で使用するレジスタ342に対するシフトビット数(上記の例では、最初15、次に14)、およびデータメモリ300から読みだすべき番地の指定(上記の例では、最初0番地、次に16番地)は、インターリーブすべきデータ毎に固有の値であるため、プログラムごとに行うべき番地指定をループ処理(繰り返し処理)で実行することができない。従って、プログラムをループ処理できないので、プログラムメモリ380の使用量は1回のインターリーブ処理(Nt個のデータに対し)において、n+1番地及びn+2番地の命令に相当する命令をインターリーブすべきデータの個数(Nt個)分実行しなければならないことになる。そのため、プログラムは2×Nt語(1語は下記のように、本例ではNiビット)だけ記述する必要がある。(本例では、インターリーブ処理後のデータのデータメモリ300における最初の格納番地を100番地としたが、Nt=230とした場合はそれを230番地以降としなければならないことになる。)
【0019】又、図9に示すn番地及びn+m番地に相当する2つの命令はNd回ごとに一回実行するので、Nt/Nd個記述する必要がある。従って、プログラムメモリ380の1語当りのビット数をNi(Niは正の整数)ビットとすると、使用メモリは全体として(2×Nt+2×Nt/Nd)×Niビットの領域をインターリーブ処理のために確保しなければならない。また、データメモリ300においては、Nt×Ndビットの領域(図4)をインターリーブ処理前のデータ格納領域として確保しなければならない。従って、全体として、例えば、Nt=230,Nd=16,Ni=32とすると、プログラムメモリ380において15640ビット、データメモリ300においては3680ビット、全体で19320ビット必要となる。
【0020】このように、上記のような構成でインターリーブ処理を実行する場合、プログラムメモリ380及びデータメモリ300の回路規模が非常に増大するという問題があった。
【0021】本発明は、上記の問題に鑑みてなされたもので、インターリーブ処理の実行に必要なプログラム及びデータを記憶するプログラムメモリ及びデータメモリが占有する記憶領域を大幅に縮小したインターリーブ装置を提供することを目的とする。
【0022】
【課題を解決するための手段】本発明によるインターリーブ装置は、上記の問題を解決するため、インターリーブ処理前のデータの記憶域とインターリーブ処理後のデータの記憶域とを含む第1の記憶手段と、インターリーブ処理後のデータの記憶域の番地情報と、該データのインターリーブ処理後のビットのビット位置情報とを記憶する第2の記憶手段と、インターリーブ処理前のデータのインターリーブを希望するビットの状態を判別するビット判別手段と、番地情報に基づき第1の記憶手段から読出されたインターリーブ処理後のデータの、該データに対するビット位置情報により指定された位置のビットをビット判別手段の出力に応じセットもしくはリセットの操作を行なう演算手段と、演算手段の出力をインターリーブ処理後のデータの記憶域に書込む書込手段と、を備えたことを特徴とする【0023】本発明によるインターリーブ装置は、更に、上記の問題を解決するため、第2の記憶手段に記憶されている番地情報を相対的番地情報とし、インターリーブ装置は、更に、相対的番地情報と共同して番地情報を構成する基準値を含むポインタと、第2の記憶手段からの相対的番地情報とポインタからの基準値とを加算してインターリーブ処理後のデータの記憶域の番地を指定する番地情報を出力する加算器と、を含むことを特徴とする。
【0024】本発明によるインターリーブ方法は、上記の問題を解決するため、インターリーブ処理前のデータの記憶域とインターリーブ処理後のデータの記憶域とを設け、インターリーブ処理後のデータの記憶域の番地情報と、該データのインターリーブ処理後のビットのビット位置情報とを予め設定し、インターリーブ処理前のデータのインターリーブを希望するビットを順次取出してその状態を判別し、番地情報に基づき読出されたインターリーブ処理後のデータの、該データに対するビット位置情報により指定した位置のビットを判別されたビット状態に対応した値に設定し、指定した位置のビットが判別されたビットの状態に対応した値に設定されたデータを番地情報で指定した記憶域に再び記憶する、各工程を含むことを特徴とする。
【0025】本発明によるインターリーブ方法は、更に、上記の問題を解決するため、番地情報を相対的番地情報と、該相対的番地情報と共同して番地情報を構成する基準値とにより構成するようにしたことを特徴とする。
【0026】
【作用】本発明によるインターリーブ装置及びインターリーブ方法は、インターリーブ処理後のデータの記憶域に対する番地情報とそのデータのインターリーブ処理後のビットの位置を指定するビット位置情報とを記憶する記憶手段を設け、その番地情報とビット位置情報とによりインターリーブ処理後のデータの番地とビット位置とを個々に任意指定することができるようにしたことにより、インターリーブ処理前のデータの全ビット位置にインターリーブ処理前のビットを記憶することができると共に、該インターリーブ処理前のデータを同一プログラムの反復で番地指定可能にして、インターリーブに使用するメモリ領域を大幅に削減することができる。
【0027】本発明によるインターリーブ装置及びインターリーブ方法は、インターリーブ処理後のデータの記憶域に対する番地情報を全番地に共通の基準値と各番地に固有な相対的番地とを加算して生成するようにしたことにより、相対的番地の記憶域を更に削減することができる。
【0028】
【実施例】以下、添付図面を参照して、本発明の実施例を詳細に説明する。先ず、図1、5、6、7、10に基づき、本発明の第一実施例によるインターリーブ装置について詳細に説明する。図1は、本発明の第1実施例によるインターリーブ装置の構成を示す構成図である。
【0029】図1において、100は1語あたりNdビット(Ndは正の整数、例えば16)構成で、複数語からなるデータメモリ、110はデータメモリ100からインターリーブ処理前のデータを読出すために指定する番地を保持するポインタ、120はデータメモリ100に対しインターリーブ処理後のデータを書込む際に指定する番地データ及びビット位置情報を保持するアドレスメモリ、121はアドレスメモリ120のアクセス番地を指定するポインタ、122はアドレスメモリ120から出力する番地データ、123はアドレスメモリ120から出力するビット位置情報、124は番地データ122を保持し、データメモリ100に対しインターリーブ処理後のデータの格納番地を与えるポインタである。
【0030】130はビット位置情報123と後述のラッチ167に記憶されたフラグとを入力する制御装置であって、後述のフラグ(ラッチ167の値)が0の場合は、ビット位置情報123で示したビットのみが値0で、他のビットすべてを値1にした後述のデータ132(例えば、ビット位置情報123で指定したビット位置が15であると‘01・・・・・1’となる)を後述の論理演算器160の一方の入力に出力すると同時に、フラグが0の場合には論理積(アンド)を計算させるよう論理演算器160の動作を制御する制御信号134を制御部186に出力する。
【0031】又、制御装置130は後述のフラグ(ラッチ167の値)が1の場合は、ビット位置情報123で示したビットのみが値1で、他のビットすべてを値0にした後述のデータ132(例えば、前述のように、指定したビット位置が15であると‘10・・・・・0’となる)を後述の論理演算器160の一方の入力に出力すると同時に、フラグが0の場合には、論理和(オア)を計算させるよう論理演算器160の動作を制御する制御信号134を制御部186に対して出力する。
【0032】更に、132は制御装置130から論理演算器160に出力するデータ(前述)、134は制御装置130から制御部186に出力して論理演算器160に対し論理積を実行するか又は論理和を実行するかの指示を与える制御信号188を制御部186から出力させる制御信号、150は後述のレジスタ170からのデータ及びデータメモリ100の出力データを入力し、どちらか一方を選択して論理演算器160の他方の入力に出力するマルチプレクサ、160はデータ132とマルチプレクサ150からの出力データとを入力し、制御信号188に応答して論理積か又は論理和を計算する論理演算器である。
【0033】更に、165は論理演算器160の出力データを下位側に1ビットシフトし、後述のレジスタ170にシフトした結果を出力し、及びその最下位ビットをラッチ167に出力するシフタ、167はシフタ165の出力データの最下位ビット(フラグ)を保持するラッチ、170はr0及びr1の2語からなり、1語あたりNdビット(Ndは正の整数、例えば16)で構成され、シフタ165からの出力データを入力してそれをデータメモリ100及びマルチプレクサ150に出力するレジスタである。
【0034】180はインターリーブ処理用プログラム(例えば、図10,11に示す)を格納するプログラムメモリ、182はプログラムメモリ180から読出された命令を解読するデコーダ、184はデコーダ182から制御部186に出力される制御信号、186は制御信号184及び制御信号134を入力し、論理演算器160の動作を制御する制御部、188は制御信号134の入力に応答して制御部186から論理演算器160に出力してその計算(論理積又は論理和)を制御する制御信号である。
【0035】又、図1において、ポインタ110、マルチプレクサ150、論理演算器160、シフタ165、レジスタ170、及びラッチ167によってビット判別手段を構成し、制御装置130、データ132、制御信号134、マルチプレクサ150、論理演算器160、制御部186、及び制御信号188によって演算手段を構成し、レジスタ170、及びデータメモリ100によって書込手段を構成している。
【0036】以下、上記のように構成された本第1実施例によるインターリーブ装置において、インターリーブ処理を実行する動作を図1のほか、図5乃至図7、図10を用いて説明する。図5は本発明によるインターリーブ処理前のデータの格納状態を示す構成図である。図6はインターリーブ処理後のデータの格納状態を示す構成図である。図7は本第1実施例のインターリーブ処理に使用するアドレスメモリのデータ格納状態を示す構成図である。図10はプログラムメモリに格納された本第1実施例のインターリーブ処理に使用するプログラムの例を示す図である。尚、図1については前述した。
【0037】以下で示すインターリーブ処理動作は、例えば、データメモリ100に図5に示した状態で格納されているインターリーブ処理前のデータを図6に示すように並べかえるものとし、インターリーブ処理前のデータD1乃至DNtは、図5に示すように、0番地を先頭番地として最下位ビットから最上位ビットまで順に格納されており、データメモリ100及びレジスタ170は16ビット(Nd=16)で構成されるという条件の下で行われるものと仮定する。
【0038】アドレスメモリ120には、インターリーブ処理前のデータ・ビットD1〜DNtそれぞれに対するインターリーブ処理後のデータのデータメモリ100に対する格納先番地及びそのビット位置が0番地から順に、本実施例では図7に示すような形式で格納されている。また、ポインタ121には予め0が格納されているものとする。
【0039】プログラムメモリ180には、図10に示すプログラムが格納されている。以下、そのプログラムメモリ180の番地に従い、n番地から順に処理の手順を説明する。
【0040】[プログラムメモリ180:n番地]ポインタ110によって指定されたデータメモリ100の番地(0番地)のデータをマルチプレクサ150、論理演算器160、及びシフタ165を経由してレジスタ170のr1に格納し、同時に最下位ビット(D1)をラッチ167に格納する。更に、ポインタ121で指定したアドレスメモリ120の番地(最初は0番地)のデータを読み出し、番地データ122をポインタ124に格納する。本例による番地データによると、初回はアドレスメモリ120の0番地を指定したからポインタ124の値は100となる(図7)。それと同時に、ポインタ110の値を1増分する(ポインタ110の増分機構は図に示していない)。
【0041】[プログラムメモリ180:n+1番地]n+2〜n+4番地に示すプログラムの処理を繰り返す回数は、本例では処理を1語ごとに行うから、‘Nd−1=15’を設定する。なお、処理の繰り返し実行の機構は図に示していない。
【0042】[プログラムメモリ180:n+2番地]インターリーブ格納命令を実行する。この命令はデータメモリ100のポインタ124で指定した番地(本例では100番地)のデータの指定ビット位置にラッチ167の値(本例では、下記のように、D1=0であれば0、D1=1であれば1)をセットして、レジスタ170のr0に格納し、同時にポインタ121を1増分する(101になる)というものである。すなわち、プログラムメモリ180からこの命令が読みだされると、デコーダ182で解読され、インターリーブ格納命令の実行を制御する制御信号184が出力される。
【0043】一方、制御装置130は、以下に述べるようなデータ132及び制御信号134を出力する。すなわち、ラッチ167の値(D1)が0のときは、ビット位置情報123で指定したビット位置(本例では図7に示すように、その0番地でビット位置15を指定)のビットを0とし、他のビットすべてを1に設定したデータ132を出力する。それは、x‘7FFF’で示される。(xは16進数であることを示し、7は0111、Fは1111を示す)。同時に、論理演算器160において論理積を計算させるよう制御する制御信号134を制御部186に出力する。
【0044】同様に、ラッチ167の値(D1)が1のときは、ビット位置情報123で指定したビット位置(上記と同じく15)のビットを1とし、他のビットすべてを0に設定したデータ132を出力する。従って、この場合は、x‘8000’となる。(上記同様、8は1000、0は0000を示す)。同時に、論理演算器160に対し論理和を計算させるよう制御する制御信号134を制御部186に出力する。
【0045】制御部186は、プログラムメモリ180からの制御信号184の制御に基づき、上記のように制御信号134に応答して、論理演算器160に対し論理積または論理和を計算させるよう制御する制御信号188を出力する。
【0046】論理演算器160は、ポインタ124で指定されたデータメモリ100の100番地(本例では、最初、100番地から始まる)のデータ(最初は内容不問又は不明‘xx・・・・x’)とデータ132(011・・・1、又は100・・・0)を入力し、制御信号188で制御される計算(論理積又は論理和)を実行して、その結果をr0に格納する。
【0047】すなわち、本例では、D1が0の場合は、ポインタ124で指定されたデータメモリ100の番地(100番地)のデータ‘xx・・・・x’とデータ132の内容x‘7FFF’(01・・・・1)との論理積を計算し、D1が1の場合は、ポインタ124で指定されたデータメモリ100の番地(100番地)のデータ‘xx・・・・x’とデータ132の内容x‘8000’(10・・・・0)との論理和を計算する。これにより、D1が所定のビット位置に格納できたことになる。ここで、ポインタ121を1増分してアドレスメモリ120の1番地を指定し次の処理に備える(ポインタ121の増分機構は図示していない)。
【0048】[プログラムメモリ180:n+3番地]ポインタ124で指定されたデータメモリ100の番地(100番地)にレジスタ170のr0に格納されているデータを格納する。これにより、データメモリ100の0番地に格納されているデータのビット位置0(図5)の1ビット(D1)に対するインターリーブ処理が完了したことになる。
【0049】[プログラムメモリ180:n+4番地]レジスタ170のr1に格納されているデータ(本例では、‘D16、・・・、D3、D2、D1’)をマルチプレクサ150及び論理演算器160を介してシフタ165に格納し、そこで下位側に1ビットのみシフトして、次のビットD2を最右端に配置する。その結果を再びr1に格納すると同時に、最下位ビット(D2)をラッチ167にフラグとして格納する。
【0050】そこで、前述同様、ポインタ121で指定したアドレスメモリ120の番地(上記で1番地に増分した)のデータ(図7の1番地に示すように、番地データ=102、ビット位置データ=1)を読出し、番地データ122をポインタ124に格納する。従って、ポインタ124の値は、現在では102となる。続いて、繰返し処理の先頭番地(n+2番地)に戻る。以降、n+2番地からn+4番地をNd−1(=15)回繰り返すことによって、D1〜DNd(D16)のデータに対するインターリーブ処理を実行することができる。その終了後、プログラムはプログラムメモリ180のn+5に進む。
【0051】[プログラムメモリ180:n+5番地]n番地に分岐し、そこで次にインターリーブするべきデータが格納されているデータメモリ100の番地を指定して、上記同様の回数の処理を繰返す(本例では、前回、既に1番地増分してあり、1番地を指定する)。
【0052】次に、インターリーブするべきビットD17を上記でインターリーブしたデータ‘0xx・・・x’又は‘1xx・・・x’(xは不問又は不明ビット)(図6の100番地にD1のみがインターリーブされている状態)に対し如何に加えるかについて説明する。上記のように、プログラムメモリ180のn番地に戻り、そこで、ポインタ110によりデータメモリ100の1番地を指定すると、図5の1番地に示すようなデータ‘・・・・、D18、D17’が読出され、レジスタ170のr1に格納されると同時に、その最下位ビットD17(0又は1)がラッチ167にフラグとして格納される。
【0053】次に、プログラムメモリ180をn+2番地へ進め、ポインタ121の指定によるアドレスメモリ120の、例えば、16番地を指定して、その番地情報(本例では、番地データ(100)、ビット位置データ(14))を読出し、ポインタ124を介してデータメモリ100の100番地のデータ(前回インターリーブした‘D1xx・・・・x’が格納されている)を読出し、論理演算器160において、前回同様、ビットD17が0の場合は‘1011・・・・1’と論理積され、ビットD17が1の場合は‘0100・・・・0’と論理和され、その結果がレジスタ170のr0に格納される。このようにして、レジスタ170のr0に格納されたデータは、ビットD17が0の場合は‘D1 0xx・・・x’、ビットD17が1の場合は‘D1 1xx・・・x’となる(このD1の値は、勿論0か1である)。以下、前述同様にプログラムを進め、ビットを付加してインターリーブを実行することができる。
【0054】以上の手順により、インターリーブ処理前のデータD1〜DNtに対し如何にインターリーブ処理を実行するかについて説明した。次に、その際必要とする各種メモリの記憶領域の大きさについて説明する。すなわち、プログラムメモリ180については上記6ステップの繰り返しとなるため、6×Niビット(Niはプログラムメモリ180の1語のビット数、Niは正の整数)、データメモリ100についてはNtビット、アドレスメモリ120についてはNt×Naビット(Naはアドレスメモリ120の1語のビット数、Naは正の整数)となる。
【0055】例えば、前述の従来技術の場合同様、Nt=230,Nd=16,Ni=32,Na=12とすると、プログラムメモリ180はNi×6=32×6=192ビット、データメモリ100はNt=230ビット、アドレスメモリ120はNt×Na=320×12=2760ビット必要となる。従って、全メモリでは3182ビット必要となる。このビット数からわかるように、本発明は前述の従来技術で必要とした19320ビットより相当節約することができたことは明らかとなった。
【0056】次に、本発明の第2実施例によるインターリーブ装置につき図2、5、6、8、11を参照して説明する。図2は本発明の第2実施例によるインターリーブ装置の構成を示す構成図、図8は本第2実施例のインターリーブ処理に使用するアドレスメモリのデータ格納状態を示す構成図、図11はプログラムメモリに格納された本第2実施例のインターリーブ処理に使用するプログラムの例を示す図である。尚、図5及び図6については、前述の第1実施例のものと同一である。
【0057】図2において、100〜188は図1に示したものと同じものである。220はデータメモリ100にインターリーブ処理後のデータを書込む際に使用する相対的番地情報(格納先番地の相対的に変化する部分、すなわち、後述のポインタ240からの増分値)、及びビット位置情報123を保持するアドレスメモリ、221はアドレスメモリ220にアクセス番地を与えるポインタ、222はアドレスメモリ220から出力する相対的番地情報、240はデータメモリ100にインターリーブ処理後のデータを書込む各番地に共通の部分からなる基準値又は基準番地を保持するポインタ、242は相対的番地情報222とポインタ240からの基準値とを加算し、データメモリ100にインターリーブ処理後のデータを書込む際に使用する番地情報をポインタ124に出力する加算器である。
【0058】以下、上記のように構成された本実施例のインターリーブ装置において、インターリーブを実行する場合の動作について説明する。以下で示すインターリーブ処理動作は、例えば、データメモリ100に図5に示した状態で格納されているインターリーブ処理前のデータを図6に示すように並べかえるものとし、図5に示すように、インターリーブ処理前のデータD1乃至DNtは0番地を先頭番地として最下位ビットから最上位ビットまで順に格納されており、又、データメモリ100及びレジスタ170は16ビット(Nd=16)で構成されるという条件の下で行われるものと仮定する。
【0059】アドレスメモリ220には、インターリーブ処理前のデータ・ビットD1〜DNtそれぞれに対するインターリーブ処理後のデータのデータメモリ100に対する格納先である番地の相対的に変化する部分のみ(以下、相対的番地と呼ぶ)とそのビット位置とが相対的0番地から順に格納されている。本例では、図8に示すように、番地データ(0、2、1、 ・・・)及びそれに対応するビット位置データ(15、1、7、 ・・・)がそこに示すような形式で格納されている。また、ポインタ221には、予め0が格納されており、ポインタ240には、データメモリ100にインターリーブ処理後のデータを書込む際の基準となる基準値(例えば、最初の番地、本例では100番地)が格納されている。
【0060】プログラムメモリ180には、図11に示すプログラムが格納されており、その動作が図10に示したものと異なるのは以下の点である。すなわち、図10に示す第1実施例においては、n番地及びn+4番地において、ポインタ121で指定されたアドレスメモリ120のその番地からデータを読出し、番地データ122をポインタ124に格納するようにしたが、本実施例では、それに代わる動作として、アドレスメモリ220のポインタ221で指定した番地からそのデータを読出し、その中の相対的番地情報222とポインタ240の基準値(本例では100)とを加算器242において加算し、その結果をポインタ124に格納するようにした点が異なる。
【0061】これにより、アドレスメモリ220で保持するべき番地情報をポインタ240からの基準値を差引いた相対的な値とすることができ、アドレスメモリ220の記憶領域をさらに小さくすることができる。
【0062】尚、第1及び第2の実施例において、インターリーブ処理前のデータを最下位ビットから順に並べたが、これは最上位ビットからでもよい。このとき、シフタ165は上位に1ビットシフトすることになり、ラッチ167のフラグはシフタ165の出力の最上位ビットを保持することになる。また、インターリーブ処理後のデータ格納の配列は任意でよいことはいうまでもない。
【0063】
【発明の効果】本発明は、以上説明したように構成し、特に、インターリーブ処理後のデータの記憶域に対する番地データとそのデータのインターリーブ処理後のビットの位置を指定するビット位置情報とを記憶する記憶手段を設け、その番地データとビット位置情報とによりインターリーブ処理後のデータの番地とビット位置とを個々に任意指定することができるようにしたことにより、インターリーブ処理前のデータの全域にインターリーブ処理前のビットを記憶すると共に、該インターリーブ処理前のデータを同一プログラムの反復で番地指定可能にしたことによって、小さい記憶領域(小回路規模)のプログラムメモリ、及び小さいデータメモリの使用でよいため、インターリーブに使用するべきメモリ領域を大幅に削減することができる。更に、本発明は、以上説明したように構成し、特に、インターリーブ処理後のデータの記憶域に対する番地データを全番地に共通の基準値と各番地に固有な各番地の変化分(相対的番地)とを加算して生成するよう構成し、相対的番地のみをアドレスメモリに記憶するようにしたことにより、更に相対的番地の記憶域を削減することができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013