Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4973042B2 - データ位置変換装置およびデータ位置変換方法 - Google Patents
[go: Go Back, main page]

JP4973042B2 - データ位置変換装置およびデータ位置変換方法 - Google Patents

データ位置変換装置およびデータ位置変換方法 Download PDF

Info

Publication number
JP4973042B2
JP4973042B2 JP2006193593A JP2006193593A JP4973042B2 JP 4973042 B2 JP4973042 B2 JP 4973042B2 JP 2006193593 A JP2006193593 A JP 2006193593A JP 2006193593 A JP2006193593 A JP 2006193593A JP 4973042 B2 JP4973042 B2 JP 4973042B2
Authority
JP
Japan
Prior art keywords
bit string
address
bit
data
replacement
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
JP2006193593A
Other languages
English (en)
Other versions
JP2008021200A (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.)
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
Priority to JP2006193593A priority Critical patent/JP4973042B2/ja
Publication of JP2008021200A publication Critical patent/JP2008021200A/ja
Application granted granted Critical
Publication of JP4973042B2 publication Critical patent/JP4973042B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)

Description

本発明はデータの格納位置を変換するデータ位置変換装置およびデータ位置変換方法に関し、特にメモリに格納されたデータの格納位置を変換するデータ位置変換装置およびデータ位置変換方法に関する。
現在、無線通信や画像解析等、さまざまな分野でディジタル信号処理が行われている。ディジタル信号処理では、高速フーリエ変換(FFT:Fast Fourier Transform)や逆高速フーリエ変換(IFFT:Inverse Fast Fourier Transform)等を用いたデータ解析処理が頻繁に行われる。ここで、FFT等では、入力データの順序と入力データに対応する出力データの順序とが一致しないことが知られている。
具体的には、入力データの順序と入力データに対応する出力データの順序とは、ビット反転の関係にある。ビット反転とは、2進数のビット列を逆順にすることである(例えば、特許文献1参照)。例えば、データの位置を3ビットで表現可能なデータ列の場合、すなわち、位置0(000)から位置7(111)までの8個のデータで構成されるデータ列の場合、位置1(001)の入力データは位置4(100)の出力データと対応する。このように、入力データを0,1,2,3,4,5,6,7の順に与えると、対応する出力データは0,4,2,6,1,5,3,7の順に出力される。
そこで、ディジタル信号処理の装置では、出力データが正しい順に出力されるように、FFT等の処理の前に入力データを並べ替えることが行われている。このようなデータの並べ替えは、FFT等の処理に使用する入力データをメモリに格納する際に行うのが一般的である。すなわち、FFT等の前段の処理で出力されたデータをメモリに格納する際に、例えば、位置1のデータをメモリの001番地ではなく100番地に格納する。これにより、全ての入力データがメモリに格納された時点で、適切な順序に入力データが並んでいることになり、即座にFFT等の処理を開始することができる。また、この方法では装置構成を単純化できるという利点もある。
特開昭59−033575号公報
しかし、上記の方法では、メモリに格納されたデータを他の用途に利用することが困難になるという問題がある。例えば、FFTを行う前に必要に応じて時系列データから統計情報を抽出したい場合があるが、データがメモリに格納された時点でFFTの処理用に順序が並べ替えられているため、時系列性が失われており統計処理が困難となる。このように、上記の方法を用いて装置を構成すると、データ処理を行う順序が固定されてしまい柔軟性に欠ける。
一方、上記の問題は、入力データを元の順序で一旦メモリに格納し、FFT等の処理を行う直前にメモリデータを並べ替えるようにすることで解決できる。しかしながら、従来、メモリに格納されたデータを並べ替える処理は複雑になり装置規模が増大してしまうという問題があった。その理由は以下の通りである。
メモリデータを並べ替えるには、ビット反転の関係にあるメモリアドレスの組を過不足なく計算する必要がある。ここで、メモリアドレスを最小値から最大値まで順にカウントアップし、それぞれのメモリアドレスの反転アドレスを順に求めると、組となるべきメモリアドレスが2回ずつ出現することになる。例えば、3ビットのメモリアドレスを000,001,010,011,100,101,110,111とカウントアップすると、それぞれに対応する反転アドレスは000,100,010,110,001,101,011,111と計算される。
ここで、アドレス組(001,100)とアドレス組(100,001)とが出現するが、これらは同一のアドレス組であるため、アドレス組(001,100)の発見時にメモリデータの入替処理を行うと、アドレス組(100,001)の発見時には入替処理を行ってはいけない。2回入替処理を行うと、データが元の位置に戻ってしまうからである。そして、上記の制御は単純な装置構成では実現することができず、並べ替え処理のための一時的なメモリ領域等を用意する必要がある。この問題は、ビット反転の関係にあるメモリアドレスの組を過不足なく求めることが容易でないことに起因するものである。
なお、上記の問題は、FFT等の前に入力データに対してデータの並べ替えを行う場合だけでなく、FFT等の後に出力データに対してデータの並べ替えを行う場合にも生じる問題である。
本発明はこのような点に鑑みてなされたものであり、処理の複雑さや装置規模を増大させることなく、ビット反転の関係にあるアドレス間でメモリに格納されたデータを入替えるデータ位置変換装置およびデータ位置変換方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなデータ位置変換装置が提供される。本発明に係るデータ位置変換装置は、メモリに格納されたデータを、ビット反転の関係にある2つのメモリアドレス間で入替えるものである。データ位置変換装置1は、アドレス生成手段1a、アドレス変換手段1b、アドレス調整手段1cおよびデータ入替手段1dを有する。アドレス生成手段1aは、所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成する。アドレス変換手段1bは、最下位ビットのみが異なる2つの基本アドレス毎に、基本アドレスを1ビット右シフトした第1のビット列と、第1のビット列を逆順にした第2のビット列とを生成する。アドレス調整手段1cは、第1のビット列の値が第2のビット列の値以下である場合、第1のビット列と第2のビット列との組を入替アドレスと判定し、第1のビット列の値が第2のビット列の値より大きい場合、第1のビット列と第2のビット列とをそれぞれ論理反転したビット列の組を入替アドレスと判定する。データ入替手段1dは、入替アドレスが判定される毎に、入替アドレスで特定されるメモリ2内の2つのデータの格納位置を入替える。
このようなデータ位置変換装置1によれば、アドレス生成手段1aにより、所定のビット長の基本アドレスが値が1ずつ変化しながら連続的に生成される。アドレス変換手段1bにより、最下位ビットのみが異なる2つの基本アドレス毎に、基本アドレスを1ビット右シフトした第1のビット列と、第1のビット列を逆順にした第2のビット列とが生成される。次に、アドレス調整手段1cにより、第1のビット列が第2のビット列より大きい場合には2つのビット列をそれぞれ論理反転した組が入替アドレスと判定され、それ以外の場合には2つのビット列の組が入替アドレスと判定される。そして、データ入替手段1dにより、入替アドレスで特定されるメモリ2内の2つのデータの格納位置が入替えられる。
また、上記課題を解決するために、メモリに格納されたデータの格納位置を変換するデータ位置変換方法において、アドレス生成手段が、所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成し、アドレス変換手段が、最下位ビットのみが異なる2つの前記基本アドレス毎に、前記基本アドレスを1ビット右シフトした第1のビット列と、前記第1のビット列を逆順にした第2のビット列とを生成し、アドレス調整手段が、前記第1のビット列の値が前記第2のビット列の値以下である場合、前記第1のビット列と前記第2のビット列との組を入替アドレスと判定し、前記第1のビット列の値が前記第2のビット列の値より大きい場合、前記第1のビット列と前記第2のビット列とをそれぞれ論理反転したビット列の組を前記入替アドレスと判定し、データ入替手段が、前記入替アドレスが判定される毎に、前記入替アドレスで特定される前記メモリ内の2つのデータの格納位置を入替える、ことを特徴とするデータ位置変換方法が提供される。
このようなデータ位置変換装置によれば、所定のビット長の基本アドレスが値が1ずつ変化しながら連続的に生成され、最下位ビットのみが異なる2つの基本アドレス毎に、基本アドレスを1ビット右シフトした第1のビット列と、第1のビット列を逆順にした第2のビット列とが生成される。次に、第1のビット列が第2のビット列より大きい場合には2つのビット列をそれぞれ論理反転した組が入替アドレスと判定され、それ以外の場合には2つのビット列の組が入替アドレスと判定される。そして、入替アドレスで特定されるメモリ内の2つのデータの格納位置が入替えられる。
本発明は、最下位ビットのみが異なる2つの基本アドレス毎に、基本アドレスを1ビット右シフトした第1のビット列と第1のビット列を逆順にした第2のビット列とを生成すると共に、第1のビット列が第2のビット列より大きい場合には2つのビット列をそれぞれ論理反転した組を入替アドレスと判定し、それ以外の場合には2つのビット列の組を入替アドレスと判定することとした。これにより、基本アドレスが一巡する間に、データを入替えるべきメモリアドレスの組が過不足なく1回ずつ生成される。したがって、一時的なメモリ領域等を用意する必要がなくなり、単純で小規模な装置構成でメモリデータの並べ替え処理を実現することができる。また、メモリデータの並べ替え処理をより高速に実行することができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。まず、本発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、データ位置変換装置の概要を示す図である。図1に示されるデータ位置変換装置は、メモリに格納されたデータを、ビット反転の関係にある2つのメモリアドレス間で入替えるものである。データ位置変換装置1は、アドレス生成手段1a、アドレス変換手段1b、アドレス調整手段1cおよびデータ入替手段1dを有する。
アドレス生成手段1aは、所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成する。例えば、メモリカウンタを最小値(0)から最大値(2^N−1:Nはビット長)までカウントアップするか、又は、最大値(2^N−1)から最小値(0)までカウントダウンして一巡させることで、基本アドレスを連続的に生成する。メモリアドレスが4ビットで表現可能な場合、0000から1111までの16個のアドレスが連続的に生成される。
アドレス変換手段1bは、最下位ビットのみが異なる2つの基本アドレス毎に、基本アドレスを1ビット右シフトした第1のビット列と、第1のビット列を逆順にした第2のビット列とを生成する。すなわち、アドレス変換手段1bは、アドレス生成手段1aが生成した偶数個目と奇数個目の2つの隣り合う基本アドレス毎に、2つのビット列を生成する。
例えば、2つの基本アドレス0110,0111に対して、第1のビット列0011と第2のビット列1100とが生成される。同様に、2つの基本アドレス1000,10001に対して、第1のビット列0100と第2のビット列0010とが生成される。なお、1ビットの右シフト演算は、ビット列の最下位ビット(LSB:Less Significant Bit)を削除し、最上位ビット(MSB:Most Significant Bit)に0を挿入するビット演算である。
アドレス調整手段1cは、アドレス変換手段1bが生成した第1のビット列と第2のビット列との組毎に両者を比較する。ここで、第1のビット列の値が第2のビット列の値以下である場合、第1のビット列と第2のビット列との組を入替アドレスと判定する。一方、第1のビット列の値が第2のビット列の値より大きい場合、第1のビット列と第2のビット列とをそれぞれ論理反転したビット列の組を入替アドレスと判定する。
すなわち、アドレス変換手段1bが生成した第1のビット列と第2のビット列との組が、原則として、データを入替えるメモリアドレスの組と判定される。ただし、アドレス生成手段1aがアドレスカウンタを一巡させる間に、同一のビット列の組が2つ生成される場合がある。ここで、同一のビット列の組が2回目に出現する場合は、第1のビット列の値が第2のビット列の値より大きい場合に限定される。このとき、第1のビット列と第2のビット列とをそれぞれ論理反転した(各ビットの0と1とを反転した)ビット列の組を入替アドレスとすることで、データを入替えるべきメモリアドレスの組が1回ずつ過不足なく生成されるようになる。
例えば、第1のビット列0011と第2のビット列1100との組に対して、入替アドレス(0011,1100)が生成される。一方、第1のビット列0100と第2のビット列0010との組に対して、入替アドレス(1011,1101)が生成される。これは、第1のビット列0010と第2のビット列0100との組が既に出現済みだからである。
データ入替手段1dは、入替アドレスが判定される毎に、入替アドレスで特定されるメモリ2内の2つのデータの格納位置を入替える。具体的には、データ入替手段1dは、2つのメモリアドレスを使ってデータをメモリ2からそれぞれ読み込み、その後、逆のメモリアドレスを使って読み込んだデータをメモリ2に書き戻す。
例えば、アドレス0011にデータD、アドレス1100にデータMが格納されている場合、データ入替手段1dによる処理の後は、アドレス0011にデータM、アドレス1100にデータDが格納された状態になる。同様に、アドレス1011にデータL、アドレス1101にデータNが格納されている場合、データ入替手段1dによる処理の後は、アドレス1011にデータN、アドレス1101にデータLが格納された状態になる。
これにより、基本アドレスが一巡する間に、データを入替えるべきメモリアドレスの組が過不足なく1回ずつ生成される。したがって、一時的なメモリ領域等を用意する必要がなくなり、単純で小規模な装置構成でメモリデータの並べ替え処理を実現することができる。また、メモリデータの並べ替え処理をより高速に実行することができる。
以下、本発明の実施の形態を、図面を参照して具体的に説明する。まず、本発明の第1の実施の形態について説明する。
図2は、本実施の形態のシステム構成を示す図である。本実施の形態の無線通信システムは、移動局が発信した電波を基地局が受信し、基地局がディジタル信号処理を行うものである。
本実施の形態の無線通信システムは、基地局100、受信アンテナ11および移動局20で構成される。移動局20はディジタル信号を電波に乗せて発信する。受信アンテナ11は移動局20が発信した電波を受信する。基地局100は受信アンテナ11を介してディジタル信号を取得し、その後FFT等のデータ変換処理を行う。基地局100は、制御部110、A/D変換部120、メモリ130、データ位置変換部140およびFFT部150を有する。なお、FFTにより周波数成分データが出力された後の処理に関しては、説明を省略している。
制御部110は、基地局100で実行される信号処理の全体を制御する。例えば、制御部110は、基地局100の各構成部に対して、処理のタイミングを示す信号を送信する。A/D変換部120は、受信アンテナ11から取得したアナログ信号をディジタル信号に変換する。また、必要に応じてフィルタ処理等も行う。そして、A/D変換部120は、時系列データをメモリ130に格納する。
メモリ130は、A/D変換部120が出力したデータを保持する。メモリ130はデュアルポートメモリであり、メモリアドレスを2つ指定することで同時に2箇所のデータをリード/ライトできる。データ位置変換部140は、制御部110からの指示に応じて、メモリ130に格納されたデータを並べ替える。これは、FFT部150の出力データが正しい順序になるように、入力データを予め並べ替えておく必要があるためである。FFT部150は、メモリ130に格納されたデータを順次読み込んでFFTを実行し、周波数成分データを出力する。FFT部150の出力データは、図示しない後段の処理の入力データとして利用される。
次に、データ位置変換部140のモジュール構成について説明する。
図3は、第1の実施の形態に係るデータ位置変換部の機能を示すブロック図である。データ位置変換部140は、アドレス生成部141、ビット列操作部142、ビット列選択部143、アドレス調整部144およびデータ入替部145を有する。なお、アドレス生成部141は、制御部110と接続されている。データ入替部145は、メモリ130と接続されている。
アドレス生成部141は、アドレス生成開始の信号を受け取ると、Nビットの基本アドレスを1単位時間(クロック)毎に1つずつ、最小値から最大値まで連続的に生成する。すなわち、アドレス生成部141は、メモリカウンタを0から2^N−1までカウントアップして一巡させる。例えば、メモリアドレスが4ビットの場合、0000から1111までの16個のアドレスを16クロックで生成する。
ビット列操作部142は、アドレス生成部141が生成した基本アドレス毎に、Nビットのビット列A、Nビットのビット列Bおよび1ビットのフラグCを生成する。次に、ビット列選択部143は、ビット列操作部142が生成したビット列A、ビット列BおよびフラグCから、Nビットのビット列Dおよび1ビットのフラグEを生成する。そして、アドレス調整部144は、ビット列選択部143が生成したビット列DおよびフラグEから、Nビットのメモリアドレスを1つ生成する。
このようにして、アドレス調整部144は、1クロック毎に1つのメモリアドレスを生成する。ここで、アドレス調整部144が生成するメモリアドレスは、2つの連続するメモリアドレス毎に入替アドレスとしての意味をもつ。すなわち、0001と1000のように、ビット反転の関係にあるメモリアドレスの組が、2クロック毎に生成される。
データ入替部145は、アドレス調整部144が生成した入替アドレスを用いて、メモリ130に格納されているデータの格納位置を入替える。具体的には、データ入替部145は、2つのメモリアドレスを指定して、メモリ130から2つのメモリデータをリードする。そして、データ入替部145は、互いに逆のメモリアドレスを指定して、2つのメモリデータをライトする。なお、データ入替部145は、メモリアドレス等を一時的に記憶するためのレジスタ145aを有している。
メモリ130はデュアルポートメモリであるため、2つのメモリデータのリード/ライトは、それぞれ1クロックで行える。したがって、データ入替部145は、2クロック毎に1組のメモリデータを入替えることができる。アドレス生成部141がアドレスカウンタを一巡させると、メモリ130に格納された全てのデータの並べ替え処理が完了する。
なお、本実施の形態では、アドレス変換処理は基本アドレス毎に直列的に行い、データ入替処理は2つの基本アドレス毎に行っている。これは、回路規模を小さくするためである。ただし、アドレス変換処理を2つの基本アドレスについて並列に行うようにしてもよい。この場合、データ位置変換部140の処理をより高速化できる。
次に、ビット列操作部142、ビット列選択部143およびアドレス調整部144によって実行される、基本アドレスから入替アドレスを計算する処理について説明する。
図4は、第1の実施の形態に係る入替アドレスの決定処理の手順を示すフローチャートである。以下、図4に示す処理をステップ番号に沿って説明する。
[ステップS11]ビット列操作部142は、アドレス生成部141が生成した基本アドレスを1つ取得する。
[ステップS12]ビット列操作部142は、基本アドレスを1ビット右シフトしたビット列Aを生成する。ここで、1ビットの右シフト演算とは、LSBを削除しMSBに0を挿入することである。
[ステップS13]ビット列操作部142は、ビット列Aをビット反転したものに相当するビット列Bを生成する。具体的には、基本アドレスのLSBを除いたビット列を反転させ、LSBに0を挿入したビット列Bを生成する。
[ステップS14]ビット列操作部142は、基本アドレスのLSBであるフラグCを生成する。
[ステップS15]ビット列選択部143は、ビット列操作部142が生成したビット列A、ビット列BおよびフラグCを取得する。そして、ビット列選択部143は、フラグCの0/1を判断する。フラグCが0の場合、処理がステップS16へ進められる。フラグCが1の場合、処理がステップS17へ進められる。
[ステップS16]ビット列選択部143は、ステップS15で取得したビット列Aをビット列Dとして出力する。
[ステップS17]ビット列選択部143は、ステップS15で取得したビット列Bをビット列Dとして出力する。
[ステップS18]ビット列選択部143は、ステップS15で取得したビット列Aとビット列Bとを比較し、値の大小を判断する。ビット列Aの値がビット列Bの値より大きい場合、処理がステップS19へ進められる。ビット列Aの値がビット列Bの値以下の場合、処理がステップS20へ進められる。
[ステップS19]ビット列選択部143は、フラグEとして1を出力する。
[ステップS20]ビット列選択部143は、フラグEとして0を出力する。
[ステップS21]アドレス調整部144は、ビット列選択部143が生成したビット列DとフラグEとを取得する。そして、アドレス調整部144は、フラグEの0/1を判断する。フラグEが0の場合、処理がステップS22へ進められる。フラグEが1の場合、処理がステップS23へ進められる。
[ステップS22]アドレス調整部144は、入替アドレスの一方として、ビット列Dを出力する。
[ステップS23]アドレス調整部144は、入替アドレスの一方として、ビット列Dを論理反転したビット列を出力する。ここで、論理反転とは、各ビットの0/1を反転させるビット操作である。
このようにして、ビット列操作部142は、基本アドレスを1ビット右シフトしたビット列A、ビット列Aをビット反転したビット列Bおよび基本アドレスのLSBであるフラグCを生成する。ビット列選択部143は、ビット列Dとして、フラグC=0(基本アドレスが偶数番目)の場合にはビット列Aを、フラグC=1(基本アドレスが奇数番目)の場合にはビット列Bを選択する。また、ビット列選択部143は、フラグEとして、ビット列A≦ビット列Bの場合には0を、ビット列A>ビット列Bの場合には1を出力する。そして、アドレス調整部144は、入替アドレスの一方として、フラグEが0(ビット列A≦ビット列B)の場合にはビット列Dを、フラグEが1(ビット列A>ビット列B)の場合にはビット列Dを論理反転したものを出力する。
図5は、第1の実施の形態に係るビット列操作の流れを示す図である。図5は、メモリアドレスが4ビットの場合について示した例である。データ位置変換部140により、図5のそれぞれの行毎に左側から右側へ向かってビット列の操作が進められる。
例えば、基本アドレス0110から、ビット列A=0011、ビット列B=1100、フラグC=0、ビット列D=0011、フラグE=0が順に生成される。同様に、基本アドレス0111から、ビット列A=0011、ビット列B=1100、フラグC=1、ビット列D=1100、フラグE=0が順に生成される。ここで、フラグE=0であるため、(0011,1100)が入替アドレスとなる。
また、基本アドレス1000から、ビット列A=0100、ビット列B=0010、フラグC=0、ビット列D=0100、フラグE=1が順に生成される。同様に、基本アドレス1001から、ビット列A=0100、ビット列B=0010、フラグC=1、ビット列D=0010、フラグE=1が順に生成される。ここで、フラグE=1であるため、(1011,1101)が入替アドレスとなる。
図5に示す通り、アドレス長が4ビットの場合、8組のメモリアドレスが入替アドレスとして生成される。このうち、2つのメモリアドレスの値が同一でない組は、(0001,1000)、(0010,0100)、(0011,1100)、(1011,1101),(0101,1010)、(0111,1110)の6組である。この6組が、データを入替えるべきメモリアドレスの組の全てになっている。このように、データ位置変換部140により、入替アドレスが過不足なく生成される。
なお、本実施の形態では、(0000,0000)と(0110,0110)のように、2つのメモリアドレスの値が同一である場合でも、入替処理を行っている。これは、比較演算を行うようにすると回路規模が増大するためである。ただし、入替アドレス生成後に比較演算を行い、2つのメモリアドレスが異なる場合のみ入替処理を行うようにしてもよい。これにより、メモリ130に対するリード/ライトの回数を減らすことができる。
図6は、第1の実施の形態に係る変換前後のメモリデータの状態を示す図である。図4および図5に示した流れでデータ入替処理が行われると、図6の左側に示したメモリの状態が、右側に示した状態に変化する。例えば、0011番地のデータDと1100番地のデータMとが入替えられる。同様に、1011番地のデータLと1101番地のデータNとが入替えられる。
このようなデータ位置変換装置を用いることで、基本アドレスが一巡する間に、データを入替えるべきメモリアドレスの組が過不足なく生成され、順次データ入替処理が実行される。したがって、一時的なメモリ領域等を用意する必要がなく、単純で小規模な回路構成でメモリデータの並べ替え処理を実現できる。また、メモリデータの並べ替え処理をより高速に実行することができる。
そして、FFTの直前にこのようなデータ並べ替え処理を実行すればよいため、メモリに格納された時系列データをFFTの前に他の用途に利用することもでき、柔軟なデータ処理を行える。また、FFTの後にメモリデータを並べ替える場合にも、上記と同様の利点が得られる。
次に、本発明の第2の実施の形態を図面を参照して詳細に説明する。前述の第1の実施の形態との相違点を中心に説明し、同様の事項については説明を省略する。第2の実施の形態のデータ位置変換装置は、メモリアドレス全体に対してデータ並べ替え処理を行うのではなく、メモリアドレスを所定の区間毎に区切ってデータ並べ替え処理を行うようにしたものである。
図7は、第2の実施の形態に係るデータ位置変換部の機能を示すブロック図である。データ位置変換部160は、第1の実施の形態のデータ位置変換部140に対応するものであり、図2に示したシステム構成のデータ位置変換部140と置き換えられるものである。
データ位置変換部160は、アドレス生成部161、ビット列操作部162、ビット列選択部163、アドレス調整部164、データ入替部165およびオフセット記憶部166を有する。ここで、アドレス生成部161およびデータ入替部165は、第1の実施の形態のアドレス生成部141およびデータ入替部145と、それぞれ同様の構成および機能を有している。
ビット列操作部162は、まず、アドレス生成部161が生成した基本アドレスの上位Mビットのビット列を、オフセット記憶部166に対して出力する。ここで、Mは予め設定された1以上N(メモリアドレスのビット長)未満の整数であり、オフセット部分のビット長を意味する。そして、ビット列操作部162は、基本アドレスの上位Mビットを削除したビット列を用いて、ビット列A、ビット列BおよびフラグCを生成する。ここで、ビット列Aおよびビット列BはN−Mビットである。オフセット記憶部166は、ビット列操作部162から取得したMビットのビット列を保持する。
ビット列選択部163は、ビット列操作部162が生成したビット列A、ビット列BおよびフラグCから、N−Mビットのビット列Dおよび1ビットのフラグEを生成する。アドレス調整部164は、ビット列選択部163が生成したビット列DおよびフラグEからN−Mビットのビット列を生成し、さらにオフセット記憶部166が保持するMビットのビット列を上位に挿入して、Nビットのメモリアドレスを1つ生成する。
次に、ビット列操作部162、ビット列選択部163およびアドレス調整部164によって実行される、基本アドレスから入替アドレスを計算する処理について説明する。
図8は、第2の実施の形態に係る入替アドレスの決定処理の手順を示すフローチャートである。以下、図8に示す処理をステップ番号に沿って説明する。
[ステップS31]ビット列操作部162は、アドレス生成部161が生成した基本アドレスを1つ取得する。
[ステップS32]ビット列操作部162は、基本アドレスの上位Mビットのビット列を、オフセット記憶部166へ出力する。
[ステップS33]ビット列操作部162は、基本アドレスの上位Mビットを除いたビット列を1ビット右シフトしてビット列Aを生成する。
[ステップS34]ビット列操作部162は、ビット列Aをビット反転したものに相当するビット列Bを生成する。
[ステップS35]ビット列操作部162は、基本アドレスのLSBであるフラグCを生成する。
[ステップS36]ビット列選択部163は、ビット列操作部162が生成したビット列A、ビット列BおよびフラグCを取得する。そして、ビット列選択部163は、フラグCの0/1を判断する。フラグCが0の場合、処理がステップS37へ進められる。フラグCが1の場合、処理がステップS38へ進められる。
[ステップS37]ビット列選択部163は、ステップS36で取得したビット列Aをビット列Dとして出力する。
[ステップS38]ビット列選択部163は、ステップS36で取得したビット列Bをビット列Dとして出力する。
[ステップS39]ビット列選択部163は、ステップS36で取得したビット列Aとビット列Bとを比較し、値の大小を判断する。ビット列Aの値がビット列Bの値より大きい場合、処理がステップS40へ進められる。ビット列Aの値がビット列Bの値以下の場合、処理がステップS41へ進められる。
[ステップS40]ビット列選択部163は、フラグEとして1を出力する。
[ステップS41]ビット列選択部163は、フラグEとして0を出力する。
[ステップS42]アドレス調整部164は、ビット列選択部163が生成したビット列DとフラグEとを取得する。そして、アドレス調整部164は、フラグEの0/1を判断する。フラグEが0の場合、処理がステップS43へ進められる。フラグEが1の場合、処理がステップS44へ進められる。
[ステップS43]アドレス調整部164は、ビット列Dを入替下位アドレスと判定する。
[ステップS44]アドレス調整部164は、ビット列Dを論理反転したビット列を入替下位アドレスする。
[ステップS45]アドレス調整部164は、ステップS43又はステップS44で判定した入替下位アドレスの上位に、ステップS32でオフセット記憶部166へ出力したビット列を付加したNビットのビット列を、入替アドレスの一方として出力する。
このようにして、ビット列操作部162は、基本アドレスから上位Mを削除したビット列を用いてビット列A、ビット列BおよびフラグCを生成する。ビット列選択部163は、ビット列Dとして、フラグC=0の場合にはビット列Aを、フラグC=1の場合にはビット列Bを選択する。また、ビット列選択部163は、フラグEとして、ビット列A≦ビット列Bの場合には0を、ビット列A>ビット列Bの場合には1を出力する。そして、アドレス調整部164は、入替アドレスの一方として、フラグEが0の場合にはビット列Dに基本アドレスの上位Mビットを付加したものを、フラグEが1の場合にはビット列Dを論理反転したビット列に基本アドレスの上位Mビットを付加したものを出力する。
図9は、第2の実施の形態に係るビット列操作の流れを示す図である。図9は、メモリアドレスが5ビットであり、上位1ビットをオフセット部分として用いる場合について示した例である。
図9に示す通り、基本アドレスの下位4ビットについては、第1の実施の形態と同様のビット列操作が行われる。一方、オフセット部分である上位1ビットは、ビット反転の対象とならない。すなわち、基本アドレス00010と00011とから、入替アドレス(00001,01000)が生成される。同様に、基本アドレス10010と10011とから、入替アドレス(10001,11000)が生成される。
このように、オフセット部分の固定ビット長を設定することで、メモリを複数の領域に分割し、各区分内でデータの並べ替えを行うことができる。図9の例では、メモリアドレス00000〜01111と10000〜11111との2つの区分内で、それぞれデータの並べ替えが行われる。
図10は、第2の実施の形態に係る変換前後のメモリデータの状態を示す図である。図8および図9に示した流れでデータ入替処理が行われると、図10の左側に示したメモリの状態が、右側に示した状態に変化する。例えば、00011番地のデータD1と01100番地のデータM1とが入替えられる。同様に、10011番地のデータD2と11100番地のデータM2とが入替えられる。
このようなデータ位置変換装置を用いることで、第1の実施の形態で示したデータ位置変換装置を用いた場合と同様の効果を得られる。さらに、データ位置変換装置を用いることで、メモリアドレスを複数の区間に分割し、各区間内でデータの並べ替えを行うようにできる。したがって、扱うデータや実行するデータ処理の性質に応じて、柔軟にデータの並べ替えを制御することができる。また、このような制御を回路規模を増大させることなく容易に実現できる。
以上、本発明のデータ位置変換装置およびデータ位置変換方法を図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) メモリに格納されたデータの格納位置を変換するデータ位置変換装置において、
所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成するアドレス生成手段と、
最下位ビットのみが異なる2つの前記基本アドレス毎に、前記基本アドレスを1ビット右シフトした第1のビット列と、前記第1のビット列を逆順にした第2のビット列とを生成するアドレス変換手段と、
前記第1のビット列の値が前記第2のビット列の値以下である場合、前記第1のビット列と前記第2のビット列との組を入替アドレスと判定し、前記第1のビット列の値が前記第2のビット列の値より大きい場合、前記第1のビット列と前記第2のビット列とをそれぞれ論理反転したビット列の組を前記入替アドレスと判定するアドレス調整手段と、
前記入替アドレスが判定される毎に、前記入替アドレスで特定される前記メモリ内の2つのデータの格納位置を入替えるデータ入替手段と、
を有することを特徴とするデータ位置変換装置。
(付記2) 前記アドレス変換手段は、オフセット部分を示す固定ビット長が予め指定された場合、前記基本アドレスに代えて、前記基本アドレスの上位ビットから前記固定ビット長だけ削除したビット列を用いて、前記第1のビット列と前記第2のビット列とを生成し、
前記アドレス調整手段は、前記入替アドレスと判定した1組のビット列の上位に、前記アドレス変換手段で削除した前記固定ビット長のビット列をそれぞれ付加する、
ことを特徴とする請求項1記載のデータ位置変換装置。
(付記3) メモリに格納されたデータの格納位置を変換するデータ位置変換方法において、
アドレス生成手段が、所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成し、
アドレス変換手段が、最下位ビットのみが異なる2つの前記基本アドレス毎に、前記基本アドレスを1ビット右シフトした第1のビット列と、前記第1のビット列を逆順にした第2のビット列とを生成し、
アドレス調整手段が、前記第1のビット列の値が前記第2のビット列の値以下である場合、前記第1のビット列と前記第2のビット列との組を入替アドレスと判定し、前記第1のビット列の値が前記第2のビット列の値より大きい場合、前記第1のビット列と前記第2のビット列とをそれぞれ論理反転したビット列の組を前記入替アドレスと判定し、
データ入替手段が、前記入替アドレスが判定される毎に、前記入替アドレスで特定される前記メモリ内の2つのデータの格納位置を入替える、
ことを特徴とするデータ位置変換方法。
(付記4) メモリに格納されたデータの格納位置を変換するデータ位置変換プログラムにおいて、
コンピュータを、
所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成するアドレス生成手段、
最下位ビットのみが異なる2つの前記基本アドレス毎に、前記基本アドレスを1ビット右シフトした第1のビット列と、前記第1のビット列を逆順にした第2のビット列とを生成するアドレス変換手段、
前記第1のビット列の値が前記第2のビット列の値以下である場合、前記第1のビット列と前記第2のビット列との組を入替アドレスと判定し、前記第1のビット列の値が前記第2のビット列の値より大きい場合、前記第1のビット列と前記第2のビット列とをそれぞれ論理反転したビット列の組を前記入替アドレスと判定するアドレス調整手段、
前記入替アドレスが判定される毎に、前記入替アドレスで特定される前記メモリ内の2つのデータの格納位置を入替えるデータ入替手段、
として機能させることを特徴とするデータ位置変換プログラム。
データ位置変換装置の概要を示す図である。 本実施の形態のシステム構成を示す図である。 第1の実施の形態に係るデータ位置変換部の機能を示すブロック図である。 第1の実施の形態に係る入替アドレスの決定処理の手順を示すフローチャートである。 第1の実施の形態に係るビット列操作の流れを示す図である。 第1の実施の形態に係る変換前後のメモリデータの状態を示す図である。 第2の実施の形態に係るデータ位置変換部の機能を示すブロック図である。 第2の実施の形態に係る入替アドレスの決定処理の手順を示すフローチャートである。 第2の実施の形態に係るビット列操作の流れを示す図である。 第2の実施の形態に係る変換前後のメモリデータの状態を示す図である。
符号の説明
1 データ位置変換装置
1a アドレス生成手段
1b アドレス変換手段
1c アドレス調整手段
1d データ入替手段
2 メモリ

Claims (3)

  1. メモリに格納されたデータの格納位置を変換するデータ位置変換装置において、
    所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成するアドレス生成手段と、
    最下位ビットのみが異なる2つの前記基本アドレス毎に、前記基本アドレスを1ビット右シフトした第1のビット列と、前記第1のビット列を逆順にした第2のビット列とを生成するアドレス変換手段と、
    前記第1のビット列の値が前記第2のビット列の値以下である場合、前記第1のビット列と前記第2のビット列との組を入替アドレスと判定し、前記第1のビット列の値が前記第2のビット列の値より大きい場合、前記第1のビット列と前記第2のビット列とをそれぞれ論理反転したビット列の組を前記入替アドレスと判定するアドレス調整手段と、
    前記入替アドレスが判定される毎に、前記入替アドレスで特定される前記メモリ内の2つのデータの格納位置を入替えるデータ入替手段と、
    を有することを特徴とするデータ位置変換装置。
  2. 前記アドレス変換手段は、オフセット部分を示す固定ビット長が予め設定された場合、前記基本アドレスに代えて、前記基本アドレスの上位ビットから前記固定ビット長だけ削除したビット列を用いて、前記第1のビット列と前記第2のビット列とを生成し、
    前記アドレス調整手段は、前記入替アドレスと判定した1組のビット列の上位に、前記アドレス変換手段で削除した前記固定ビット長のビット列をそれぞれ付加する、
    ことを特徴とする請求項1記載のデータ位置変換装置。
  3. メモリに格納されたデータの格納位置を変換するデータ位置変換方法において、
    アドレス生成手段が、所定のビット長で表現可能な全ての基本アドレスを、値を1ずつ変化させて連続的に生成し、
    アドレス変換手段が、最下位ビットのみが異なる2つの前記基本アドレス毎に、前記基本アドレスを1ビット右シフトした第1のビット列と、前記第1のビット列を逆順にした第2のビット列とを生成し、
    アドレス調整手段が、前記第1のビット列の値が前記第2のビット列の値以下である場合、前記第1のビット列と前記第2のビット列との組を入替アドレスと判定し、前記第1のビット列の値が前記第2のビット列の値より大きい場合、前記第1のビット列と前記第2のビット列とをそれぞれ論理反転したビット列の組を前記入替アドレスと判定し、
    データ入替手段が、前記入替アドレスが判定される毎に、前記入替アドレスで特定される前記メモリ内の2つのデータの格納位置を入替える、
    ことを特徴とするデータ位置変換方法。
JP2006193593A 2006-07-14 2006-07-14 データ位置変換装置およびデータ位置変換方法 Expired - Fee Related JP4973042B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006193593A JP4973042B2 (ja) 2006-07-14 2006-07-14 データ位置変換装置およびデータ位置変換方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006193593A JP4973042B2 (ja) 2006-07-14 2006-07-14 データ位置変換装置およびデータ位置変換方法

Publications (2)

Publication Number Publication Date
JP2008021200A JP2008021200A (ja) 2008-01-31
JP4973042B2 true JP4973042B2 (ja) 2012-07-11

Family

ID=39077072

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006193593A Expired - Fee Related JP4973042B2 (ja) 2006-07-14 2006-07-14 データ位置変換装置およびデータ位置変換方法

Country Status (1)

Country Link
JP (1) JP4973042B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01265358A (ja) * 1988-04-15 1989-10-23 Fujitsu Ltd ビットリバース回路
JPH05143633A (ja) * 1991-11-22 1993-06-11 Nec Corp イソジオメトリツク形高速フーリエ変換実現方式

Also Published As

Publication number Publication date
JP2008021200A (ja) 2008-01-31

Similar Documents

Publication Publication Date Title
US4472788A (en) Shift circuit having a plurality of cascade-connected data selectors
KR19980018349A (ko) 연산장치 및 방법
JPH05189518A (ja) 論理ネットワークを最適化する方法および装置
JP3744285B2 (ja) シフトレジスタ及びその制御方法
JPH05284362A (ja) ジグザグアドレスの発生方法及びその発生回路
JP4973042B2 (ja) データ位置変換装置およびデータ位置変換方法
JPH04241521A (ja) 畳込み符号の復号回路
US7760847B2 (en) Counting circuit and address counter using the same
JPH01291387A (ja) 画像処理装置
US20040170187A1 (en) Symbol buffer memory device of a base station modem in a mobile communication system and storage method for using the sevice
JP5072558B2 (ja) データ処理装置
JP3726971B2 (ja) 並列プロセツサ装置
JP2901169B2 (ja) π/4シフトQPSK変調用マッピング回路
JP3567309B2 (ja) カウンタ
JP4372371B2 (ja) Simd型マイクロプロセッサにおける間引き装置、及び拡大装置
JPH05161094A (ja) デジタルビデオラインを記憶するためのプログラマブル装置
KR19990033240A (ko) 디지털 통신용 채널 부호기 설계방법
JPH0644051A (ja) マイクロコンピュータ
SU1104578A1 (ru) Устройство дл формировани символов
JP4252406B2 (ja) データ変換装置
JPH1098397A (ja) インタリーバ
JPH04361325A (ja) バレルシフタ装置
JP2697679B2 (ja) ディザ画像表示装置
JPH0537402A (ja) ビタビ復号器
JPS6027420B2 (ja) 直列周期冗長チエックの並列計算装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120223

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120313

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120326

R150 Certificate of patent or registration of utility model

Ref document number: 4973042

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150420

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees