(57)【要約】【課題】ＣＰＵ内でのデータの整列処理省略し、ＣＰＵにおけるデータの高速演算や、高速での並べ替え処理等を可能にする。【解決手段】データ位置変換装置は、データを並列処理可能なＣＰＵと所定データをアドレス毎に記憶するメモリとの間に配置されたデータ位置変換装置であり、ＣＰＵから入力されたアドレス信号を比較して特定のアドレスが指定されている場合に並べ替え制御信号を出力するアドレス比較器と、並べ替え制御信号が供給されたときにメモリの指定されたアドレスからそれらのアドレスに格納されている複数のデータを読み出すと共に、前記メモリの指定されたアドレスから読み出されたデータをそのアドレスと共に制御するメモリ制御部と、並べ替え制御信号に基づいてメモリ制御部を介して前記メモリの指定されたアドレスから読み出された複数のデータに対してアドレス並べ替えおよび所定演算によるデータの再整列処理を実行する並べ替え処理部と、を備える。【選択図】　図１
2004021932.tif 000002
【特許請求の範囲】
【請求項１】
所定ビット幅の単位データを所定の個数有する単位アドレスのデータを並列に配置した並列データを同時に処理可能なＣＰＵと所定データを前記単位アドレス毎に記憶するメモリとの間に配置されたデータ位置変換装置であって、
前記ＣＰＵから第１のバスを介して入力されたアドレス信号を比較して特定のアドレスが指定されているか否かを比較して特定のアドレスが指定された場合に並べ替え制御信号を出力するアドレス比較器と、
前記アドレス比較器より前記並べ替え制御信号が出力されたときに前記メモリの指定されたアドレスからそれらのアドレスに格納されている複数のデータを読み出すと共に、前記メモリの指定されたアドレスから読み出されたデータをそのアドレスと共に制御するメモリ制御部と、
前記アドレス比較器より出力された前記並べ替え制御信号に基づいて、前記メモリ制御部を介して前記メモリの指定されたアドレスから読み出された複数のデータに対してアドレス並べ替えおよび所定演算によるデータの再整列処理を実行する並べ替え処理部と、
を備えることを特徴とするデータ位置変換装置。
【請求項２】
前記メモリ制御部は、
前記アドレス比較器からの前記並べ替え制御信号を含む読出し制御信号に基づいて、前記メモリの指定されたアドレスより格納されている複数のデータを読み出す読出し制御信号を前記メモリに対して出力する読出し制御部と、
前記読出し制御信号に基づいて前記メモリの指定されたアドレスより読み出された前記複数のデータをそのアドレスと共に前記並べ替え処理部へ出力するアドレス／データ制御部と、
を備える請求項１に記載のデータ位置変換装置。
【請求項３】
前記並べ替え処理部は、
前記アドレス比較器より出力されたシーケンス開始制御信号に基づいて、特定のアドレスからの連続する複数のアドレスを指定するシーケンス読出し制御信号を生成して前記アドレス比較器に出力し、前記メモリ制御部の前記読出し制御部を介して特定アドレスから連続する一連のアドレスに対応する複数のデータを前記アドレス／データ制御部を介して読み出すと共に、前記複数のデータのうちからデータの並べ替えに必要となるデータを選択するデータ選択信号を生成するバスシーケンス制御部と、
バスシーケンス制御部により前記メモリより読み出された一連のアドレスに対応する複数のデータを記憶するデータレジスタと、
前記バスシーケンス制御部で生成された前記データ選択信号に基づいて、前記データレジスタに格納された前記複数のデータの中から並べ替えに必要なデータを選択してデータの配列を並べ替えて前記ＣＰＵに対して出力するデータ変換器と、
を備える請求項２に記載のデータ位置変換装置。
【請求項４】
前記バスシーケンス制御部は、前記特定のアドレスとしての読出し開始アドレスを記憶すると共に、前記アドレス比較器に出力する読出しアドレスを可変にして前記データレジスタに読み込まれる複数のデータの読出し開始アドレスを可変に設定することを特徴とする請求項３に記載のデータ位置変換装置。
【請求項５】
前記バスシーケンス制御部は、前記複数のデータの並べ替え方法を記憶すると共に、前記データレジスタからの出力データを所定のビット単位で並び替えるための前記データ選択信号を記憶された前記並べ替え方法に基づいて可変にし、前記データ変換器によるデータの並べ替えを任意の並べ替え方法により行なって前記ＣＰＵに出力することを特徴とする請求項３に記載のデータ位置変換装置。
【請求項６】
前記バスシーケンス制御部は、以前のデータの読み出しにより所定のアドレスが指定された後には、前記所定のアドレスへのデータの書き込みを行なわず、再度データを読み出す際に前記所定のアドレスが指定されたときに前記メモリから前記データを再度前記データレジスタに読み込むことなく、前記データ変換器は直接前記データレジスタに保持されているデータを用いてデータの並べ替えを行なって前記ＣＰＵへ変換されたデータを出力することを特徴とする請求項３に記載のデータ位置変換装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ位置変換装置に係り、特にマイクロコンピュータ、マイクロプロセッサシステム、デジタルデータ処理システム、画像データ処理システムなどに適用されるデータ位置変換装置に関する。
【０００２】
【従来の技術】
近年、デジタル演算処理において頻繁に用いられているマトリックス演算やフィルタリング処理等に有効な手段として、１つの命令により複数のデータを取扱い可能なＳＩＭＤ（Ｓｉｎｇｌｅ　Ｉｎｓｔｒｕｃｔｉｏｎ　ｓｔｒｅａｍ　Ｍｕｌｔｉｐｌｅ　Ｄａｔａ　ｓｔｒｅａｍ）アーキテクチャと呼ばれるデータ処理概念がある。このアーキテクチャは、ＳＩＭＤ型命令に対する入力を任意のビット単位のデータが複数個あるものとみなして演算を行なうものである。
【０００３】
例えば、中央処理装置（以下、ＣＰＵ―Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ　―と略記する。）に対して６４ビット幅の入力があったときに、任意のビット単位を１６ビット幅とすれば、４個のデータが入力として与えられているものとみなして演算を行なうものである。このとき、ＣＰＵへの入力として与えられるエリア内にデータを整列させておく必要がある。このように演算処理するためのデータを所定のエリア内に所定の個数だけ整列させておく処理のことを整列処理といい、通常は、この整列処理されたデータ構造は１個または２個である。
【０００４】
例えば、４回の加算処理を行なうアルゴリズムがある場合、図１２に示すように、それぞれが１６ビットずつを有する独立変数ａ０〜ａ３を備えるデータ構造Ｄａと、独立変数ｂ０〜ｂ３を備えるデータ構造Ｄｂの２つのデータ構造を用意しておけば、ＣＰＵは６４ビット幅で４並列の加算命令を１回実行するだけで、ａ０＋ｂ０，ａ１＋ｂ１，ａ２＋ｂ２，ａ３＋ｂ３の４回の加算処理を完了することができる。
【０００５】
このように、各々が独立した変数であるａ０〜ａ３およびｂ０〜ｂ３を含むデータ構造Ｄａ、Ｄｂは、上述した整列処理により用意される。従来は、この並列処理を行なう場合にも、ＣＰＵを用いていた。この従来の整列処理について、図１３を用いて説明する。図１２に示すように、データ構造Ｄａ０は独立変数ａ０に符号等が付加された、例えば「ａ０＆０ｘ００００００００００００ｆｆｆｆ」のような構成を有しており、データ構造Ｄａ１ないしＤａ３についても各々の独立変数ａ１，ａ２，ａ３を含む構成を有している。
【０００６】
この場合の整列処理は、図１３に示すように、左シフト命令に基づいて下位の１６ビットの部分エリアに独立変数ａ０を割り当て、これ以降、１６ビットずつの各部分エリアにそれぞれの要素を割り当てる。下位の１６ビット以外のビットについては、符号拡張している可能性もあるので、論理積をとってそれぞれの部分エリアに割り当てるようにしている。図１３の中段に示された欄上の数字は所定の全体エリアを４つの部分エリアに分割したときの各ビットを示している。データ構造Ｄａ１，Ｄａ２，Ｄａ３についても所定の部分エリアに独立変数ａ１，ａ２，ａ３をそれぞれ割り当てる。このとき、独立変数ａ１は１６ビットから３１ビットの部分エリアに割り当て、データ構造Ｄａ１の他の要素についてはデータ構造Ｄａ０と同様に符号拡張している可能性を考慮して論理積をとってから各部分エリアに割り当てている。
【０００７】
データ構造Ｄａ２における独立変数ａ２は、３２ビットから４７ビットの部分エリアに割り当てられ、他の要素に関してはデータ構造Ｄａ０およびＤａ１と同様に論理積をとってから他のエリアに割り当てる。データ構造Ｄａ３についても同様に、独立変数ａ３を４８ビットから６３ビットの部分エリアに割り当てて、他のエリアには論理積をとった他の要素を割り当てる。この割り当てが終了した状態が、図１３の中段の表のようになる。ここで、１つの演算実行命令によりそれぞれが４つの部分エリアに分割された各データ構造Ｄａ０ないしＤａ３の各部分エリア毎に前データの論理和をとると、図１３の下段に示すようにデータ構造Ｄａの整列結果が求められる。このデータ構造Ｄａが図１２の並列加算命令に用いられる。
【０００８】
このように、ＣＰＵにより行なう整列処理は、ＳＩＭＤ型命令の導入により加わった処理である。しかしながら、この整列処理は非常に低速であり、この処理を行なうために要する時間の増加により、従来のＳＩＭＤアーキテクチャにおいては、並列演算という合理的手法を用いたことによる演算処理の高速化の恩恵が少なくなるという問題点を有していた。
【０００９】
【発明が解決しようとする課題】
本発明は、上述したようなＳＩＭＤ型アーキテクチャを処理するデジタルデータ処理において、ＣＰＵ内での整列処理を行なうことなく、ＣＰＵへ入力されるするデータを予め整列処理してから供給するようにすることにより、従来のＳＩＭＤ命令等を実行する際に必要であったＣＰＵ内での整列処理を省略し、ＣＰＵにおけるデータの高速演算や、高速での並べ替え処理等を行なうことを可能にするデータ位置変換装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、本発明の基本構成に係るデータ位置変換装置は、所定ビット幅の単位データを所定の個数有する単位アドレスのデータを並列に配置した並列データを同時に処理可能なＣＰＵと所定データを前記単位アドレス毎に記憶するメモリとの間に配置されたデータ位置変換装置であって、前記ＣＰＵから第１のバスを介して入力されたアドレス信号を比較して特定のアドレスが指定されているか否かを比較して特定のアドレスが指定された場合に並べ替え制御信号を出力するアドレス比較器と、前記アドレス比較器より前記並べ替え制御信号が出力されたときに前記メモリの指定されたアドレスからそれらのアドレスに格納されている複数のデータを読み出すと共に、前記メモリの指定されたアドレスから読み出されたデータをそのアドレスと共に制御するメモリ制御部と、前記アドレス比較器より出力された前記並べ替え制御信号に基づいて、前記メモリ制御部を介して前記メモリの指定されたアドレスから読み出された複数のデータに対してアドレス並べ替えおよび所定演算によるデータの再整列処理を実行する並べ替え処理部と、を備えることを特徴とする。
【００１１】
上述した基本構成に係るデータ位置変換装置において、前記メモリ制御部は、前記アドレス比較器からの前記並べ替え制御信号を含む読出し制御信号に基づいて、前記メモリの指定されたアドレスより格納されている複数のデータを読み出す読出し制御信号を前記メモリに対して出力する読出し制御部と、前記読出し制御信号に基づいて前記メモリの指定されたアドレスより読み出された前記複数のデータをそのアドレスと共に前記並べ替え処理部へ出力するアドレス／データ制御部と、を備えるようにしても良い。
【００１２】
また、上記構成において、前記並べ替え処理部は、前記アドレス比較器より出力されたシーケンス開始制御信号に基づいて、特定のアドレスからの連続する複数のアドレスを指定するシーケンス読出し制御信号を生成して前記アドレス比較器に出力し、前記メモリ制御部の前記読出し制御部を介して特定アドレスから連続する一連のアドレスに対応する複数のデータを前記アドレス／データ制御部を介して読み出すと共に、前記複数のデータのうちからデータの並べ替えに必要となるデータを選択するデータ選択信号を生成するバスシーケンス制御部と、バスシーケンス制御部により前記メモリから読み出された一連のアドレスに対応する複数のデータを記憶するデータレジスタと、前記バスシーケンス制御部で生成された前記データ選択信号に基づいて、前記データレジスタに格納された前記複数のデータの中から並べ替えに必要なデータを選択してデータの配列を並べ替えて前記ＣＰＵに対して出力するデータ変換器と、を備えるようにしても良い。
【００１３】
【発明の実施の形態】
以下、添付図面を参照しながら本発明に係るデータ位置変換装置の実施形態について詳細に説明する。まず、図１のブロック図を用いて、本発明の基本構成である第１実施形態に係るデータ位置変換装置を説明する。
【００１４】
図１に示された第１実施形態に係るデータ位置変換装置１０は、所定ビット幅の単位データを所定の個数有する単位アドレスのデータを並列に配置した並列データを同時に処理可能な中央処理装置（ＣＰＵ）１と、所定データを前記単位アドレス毎に記憶するメモリ２との間に配置されている。
【００１５】
前記データ位置変換装置１０は、ＣＰＵ１から第１のバスを介して入力されたアドレス信号を比較して特定のアドレスが指定されているか否かを比較して特定のアドレスが指定された場合に並べ替え制御信号を出力するアドレス比較器１１と、アドレス比較器１１より前記並べ替え制御信号が出力されたときに前記メモリの指定されたアドレスからそれらのアドレスに格納されている複数のデータを読み出すと共に、前記メモリ２の指定されたアドレスから読み出されたデータをそのアドレスと共に制御するメモリ制御部１２と、アドレス比較器１１より出力された前記並べ替え制御信号に基づいてメモリ制御部１２を介して前記メモリ２の指定されたアドレスから読み出された複数のデータに対してアドレス並べ替えおよび所定演算によるデータの再整列処理を実行する並べ替え処理部１５と、を備えている。
【００１６】
メモリ制御部１２は、アドレス比較器１１からの並べ替え制御信号を含む読出し制御信号に基づいて、メモリ２の指定されたアドレスより格納されている複数のデータを読み出す読出し制御信号を前記メモリに対して出力する読出し制御部１３と、読出し制御信号に基づいてメモリ２の指定されたアドレスより読み出された複数のデータをそのアドレスと共に並べ替え処理部１５へ出力するアドレス／データ制御部１４と、を備えている。
【００１７】
並べ替え処理部１５は、アドレス比較器１１より出力されたシーケンス開始制御信号に基づいて、特定のアドレスからの連続する複数のアドレスを指定するシーケンス読出し制御信号を生成してアドレス比較器１１に出力し、メモリ制御部１２の読出し制御部１３を介して特定アドレスから連続する一連のアドレスに対応する複数のデータを前記アドレス／データ制御部１４を介して読み出すと共に複数のデータのうちからデータの並べ替えに必要となるデータを選択するデータ選択信号を生成するバスシーケンス制御部１６と、バスシーケンス制御部１６により前記メモリより読み出された一連のアドレスに対応する複数のデータを記憶するデータレジスタ１７と、バスシーケンス制御部１６で生成されたデータ選択信号に基づいて、データレジスタ１７に格納された前記複数のデータの中から並べ替えに必要なデータを選択してデータの配列を並べ替えて前記ＣＰＵ１に対して出力するデータ変換器１８と、を備えている。
【００１８】
データ変換器１８からＣＰＵ１へ出力される書き換えられたデータは、データ切換部１９によりメモリコントローラ１２およびデータレジスタ１７にフィードバックされている。データ切換部１９は２つの切換スイッチ１９ａおよび１９ｂを有している。
【００１９】
この第１実施形態に係るデータ位置変換装置において、バスシーケンス制御部１６は、特定のアドレスとしての読出し開始アドレスを記憶すると共に、前記アドレス比較器に出力する読出しアドレスを可変にして、前記データレジスタに読み込まれる複数のデータの読出し開始アドレスを可変に設定するようにしても良い。
【００２０】
また、バスシーケンス制御部１６は、複数のデータの並べ替え方法を記憶すると共に、前記データレジスタからの出力データを所定のビット単位で並び替えるための前記データ選択信号を記憶された前記並べ替え方法に基づいて可変にし、データ変換器１８によるデータの並べ替えを任意の並べ替え方法により行なってＣＰＵ１に出力するようにしても良い。
【００２１】
さらに、バスシーケンス制御部１６は、以前のデータの読み出しにより所定のアドレスが指定された後には、所定のアドレスへのデータの書き込みを行なわず、再度データを読み出す際に前記所定のアドレスが指定されたときにメモリ２から前記データを再度データレジスタ１７に読み込むことなく、データ変換器１８は直接前記データレジスタ１７に保持されているデータを用いてデータの並べ替えを行なってＣＰＵ１へ変換されたデータを出力するようにしても良い。
【００２２】
次に、図２ないし図８を用いて、本発明のより具体的な構成としての第２実施形態に係るデータ位置変換装置について説明する。まず、図２を用いて、第２実施形態に係るデータ位置変換装置の基本構成について説明する。図２は、第２実施形態に係るデータ位置変換装置を含むデータ処理装置の基本構成を示し、図２において図１と同一符号を付した構成要素は第１実施形態に係るデータ位置変換装置の構成要素と同一もしくは相当する構成である。図２において、ＳＩＭＤ型命令によりデータを処理するデータ処理装置は、ＣＰＵ１と、メモリ２と、このＣＰＵ１とメモリ２との間に設けられた第２実施形態に係るデータ位置変換装置１０と、を備えている。
【００２３】
データ位置変換装置１０は、ＣＰＵ１から出力されるアドレス／バス制御信号により供給されるリードアドレスを比較するアドレス比較器１１と、バスのシーケンスを制御するバスシーケンス制御回路１６と、メモリ２から受け取ったデータを格納するデータレジスタ１７と、バスシーケンス制御回路１６の制御に基づいて、データレジスタ１７との間でデータの並べ替えを行なうデータ変換器１８と、アドレス比較器１１を介して供給されたアドレス／バス制御信号とデータ変換器１８より出力されたＣＰＵデータとに基づいてメモリ２に対して制御信号を出力してメモリの所定アドレスからのデータの読出しを制御するメモリコントローラ１２と、を備えている。
【００２４】
メモリコントローラ１２は、さらに、メモリ２からデータの読出しを行なう読出し制御部１３と、メモリ２との間でアドレスの指定を行なうと共にデータ変換器１８から出力されてＣＰＵ１へと戻されるデータを受入れてバスシーケンス回路１６にアクノリッジ信号を出力するアドレス／データ制御部１４と、を備えている。なお、メモリコントローラ１２は、この第２実施形態に係るデータ位置変換装置１０においては、その構成要素の１つに含めて考えているが、メモリコントローラをデータ位置変換装置１０から切り離して、別個の構成として考えることもできる。
【００２５】
なお、メモリコントローラ１２の読み出し制御部１３は、ＣＰＵ１から供給される読出し用データのアドレスが並べ替えを指示する特定アドレスでない場合には、通常のアドレス指定によりメモり２の指定されたアドレスに格納されているデータをそのまま読み出すために用いられているので、通常の読出しの際には従来のメモリコントローラと同様の機能を果たすのみである。しかしながら、ＣＰＵ１により指定されたアドレスが特定アドレスである場合には、並べ替え処理部１５の各構成要素と共にアドレスの並べ替えと並べ替え処理されたアドレスに対応するデータを読み出すためのメモリアドレス信号をメモリ２に対して出力するので、並べ替え処理にも寄与していることになる。
【００２６】
この第２実施形態に係るデータ位置変換装置１０は、データ幅ｎビットのデータｍ個を含む複数本の並列データを同時に処理することができるＣＰＵ１と、メモリ２との間に配置され、それぞれ第１および第２のＣＰＵバス２１および２２とメモリバス２３とを介してＣＰＵ１およびメモリ２とにそれぞれ接続される装置であって、アドレス比較器１１と、メモリコントローラ１２と、データレジスタ１３と、データ変換器１４と、並べ替え処理部１５と、から構成されるものである。並べ替え処理部１５は、バスシーケンス制御回路１６と、データレジスタ１７と、データ変換器１８と、から構成されている。
【００２７】
第１のＣＰＵバス２１は、任意幅のアドレスバス、「ｎ＊ｍ」ビット幅のデータバス、バス制御信号およびアクノリッジ信号からなるバスであり、第２のＣＰＵバス２２は、第１のＣＰＵバス２１と同一の幅のアドレスバスと、データバスと、バス制御信号と、アクノリッジ信号とを含むバスである。バス制御信号は、バスアクセス開始信号、リード信号、ライト信号で構成される。
【００２８】
アドレス比較器は、ＣＰＵ１から第１のＣＰＵバス２１へのアクセスが特定の第１のアドレスからのデータリードであることを検出すると、シーケンス開始信号をバスシーケンス制御回路１６に出力し、その時点からシーケンス終了信号をバスシーケンス制御回路１６から受け取るまでの期間、シーケンス開始信号を元にバスシーケンス制御回路１６で生成される第２のアドレスおよびバス制御信号を第２のＣＰＵバス２２へ出力する機能を有し、第１のＣＰＵバス２１からのアクセスが特定の第１のアドレス以外へのアドレスへのアクセスの場合には第１のＣＰＵバス２１のアドレス及び制御信号をそのまま第２のＣＰＵバス２２へ出力する機能を有している。
【００２９】
バスシーケンス制御回路１６は、アドレス比較器１１よりシーケンス開始信号を受け取ると特定の第２のアドレスからの１回リードアクセスするため、または特定の第２のアドレスに続く複数のアドレスへ複数回リードアクセスをするためのアドレスおよび制御信号を生成してアドレス比較器１１に出力し、そのリードアクセスによりメモリ２から読み出されたデータをデータレジスタ１７に格納するためのライトイネーブル信号およびレジスタ選択信号をデータレジスタ１７に出力し、データレジスタ１７からの出力データをｎビット単位で並び替えるためのデータセレクト信号および出力イネーブル信号をデータ変換器１８に出力し、第１のＣＰＵバス２１へのアクノリッジ信号を生成する機能を有している。
【００３０】
さらに、バスシーケンス制御回路１６は、アドレス比較器１１からシーケンス開始信号を受け取ってからシーケンス終了信号を生成するまでの間はバスシーケンス制御回路１６で生成されたアクノリッジ信号を第１のＣＰＵバス２１に出力し、それ以外の期間ではメモリコントローラ１２からのアクノリッジ信号を第１のＣＰＵバス２１に出力する機能を有する。
【００３１】
データレジスタ１７は、「ｎ＊ｍ」ビット幅のｐ本のレジスタで構成され、バスシーケンス制御回路１６からの第１のレジスタ信号で選択されるレジスタにライトイネーブル信号に同期して第２のＣＰＵバス２２のデータバス上のデータを取り込んでいる。
【００３２】
データ変換器１８は、データレジスタ１７からの「ｐ＊ｎ＊ｍ」ビット分の出力データをバスシーケンス制御回路１６からのデータセレクト信号で選択される「ｎ＊ｍ」ビットのデータを出力イネーブル信号に同期させて第１のＣＰＵバス２１のデータバス上に出力する。
【００３３】
次に、図２に示す構成のデータ位置変換装置１０を用いて、メモリ２における図３（ａ）に示すようなアドレスＡ１〜Ａ４に置かれているデータをＣＰＵ１用のデータレジスタ１７における図３（ｂ）に示すレジスタｒ１〜ｒ４に並べ替えて格納する処理を行なう具体例について説明する。図３（ａ）において、アドレスＡ１からアドレスＡ４のそれぞれにおける６４ビット幅の４つのデータのそれぞれに対して、１６ビット幅ずつ４つのデータが含まれているものとみなし、合計１６個のデータに分ける。この１６個のデータを、図３（ｂ）のように並べ替えてデータレジスタ１７に格納させたい場合、このデータの並べ替えを第２実施形態に係るデータ位置変換装置１０により行ない、高速に並べ替えられたデータをレジスタ１７に格納させるものである。
【００３４】
第２実施形態の構成において、まず、アドレス比較器１１は、ＣＰＵ１から出力されたリードアドレス（ＣＰＵ＿ＡＤＤＲＥＳＳ１）信号のアドレスを比較してバスシーケンス制御回路１６に、シーケンス開始（ＳＥＱ＿ＳＴＡＲＴ）信号を出力すると共に、メモリコントローラ１２の読出し制御部１３にアドレス制御（ＣＰＵ＿ＡＤＤＲＥＳＳ２）信号を出力している。バスシーケンス制御回路１６は、アドレス比較器１１より出力されたリードアドレス信号Ｓ１バスのシーケンスを制御すると、メモリ２から受け取ったデータを格納するデータレジスタ１７と、データの配列順序の並べ替えを行なうデータ変換器１８と、から構成されている。
【００３５】
図４は、図２に示された構成を有する第２実施形態に係るデータ位置変換装置におけるメモリマップを示している。図４に示すように、まず、アドレスＡ１〜Ａ４が特定のアドレスであるもの比較判定された場合に、これらのアドレスに対応するデータＡ１〜Ａ４をメモリ２から読み出しながら、アドレスＡ１，Ａ２，Ａ３，Ａ４のそれぞれの第１番目の１６ビットずつのデータをデータＢ１へと並べ替え処理し、それぞれ第２番目の１６ビットずつのデータをデータＢ２へと並べ替え処理し、それぞれ第３番目の１６ビットずつのデータをデータＢ３へと並べ替え処理し、それぞれ第４番目の１６ビットずつのデータをデータＢ４へと並べ替え処理することにより、メモリ２から読み出されたデータの位置が変換されて、図４に示されたデータＢ１〜Ｂ４が得られる。
【００３６】
このデータＢ１〜Ｂ４は、図４の点線で示された吹き出しのように、あくまでもイメージ図であって、このように加工され再配列されたデータ群が実際に作成される必要はない。重要なことは、このような並べ替え処理が行なわれることにより再配列されたデータがＣＰＵ２に対して出力されていれば良いということである。したがって、データ位置変換装置１０内に設けられた記憶手段により並べ替えられた後の実際のデータ配列が記憶されていても、記憶されずにＣＰＵ２へ出力されていても何れであっても良い。
【００３７】
図５は、読み出されたデータの並べ替えを実行する際の第１のＣＰＵバス２１と第２のＣＰＵバス２２とのタイミングチャートをそれぞれ示している。ＣＰＵ２から第１のバス２１を介してアドレス比較器１１に出力された読み出し制御信号（ＣＰＵ＿ＡＤＤＲＥＳＳ１）が、アドレスＢ１〜Ｂ４（図５ではＢ２，Ｂ３，Ｂ４は省略されている）である場合に、第２のバス２２を介してアドレス比較器１１からメモリコントローラ１２へ出力される制御信号（ＣＰＵ＿ＡＤＤＲＥＳＳ２）は図５に示す構成を有している。
【００３８】
これにより、メモリ２から所定のアドレスＡ１〜Ａ４と共にデータが読み出されて、図５に示すようなＣＰＵ＿ＤＡＴＡ２としてデータＡ１〜Ａ４が得られ、このデータＡ１〜Ａ４に基づいて、データ位置の変換が行われて、データ変換器１８よりＣＰＵ２に対してはＣＰＵ＿ＤＡＴＡ１としてデータＢ１〜Ｂ４（図５ではアドレスと同様にＢ２，Ｂ３，Ｂ４も省略されている）が出力される。括弧書きで注釈を加えたように図５においてはアドレスＢ２〜Ｂ４およびデータＢ２〜Ｂ４についてのタイミングを省略して示しているが、アドレスＡ１に対するアドレスＡ２〜Ａ４およびデータＡ１に対するデータＡ２〜Ａ４のように、それぞれ図５に示されたアドレスＢ１およびデータＢ１に対して所定のタイミングを有して出力されている。図５に示されたこのようなタイミングにより図４のようなデータの位置の並べ替えが行なわれている。
【００３９】
図６および図７は、第２実施形態のデータ位置変換装置におけるデータレジスタ１７とデータ変換器１８の詳細な構成を示している。図６において、メモリ２からの読出し（ＲＥＡＤ）を実行する際に、ＣＰＵ＿ＡＤＤＲＥＳＳ１からリードアドレスＢ１〜Ｂ４以外のアドレスが出力された場合、アドレス比較器１１における比較の結果、第１のＣＰＵバス２１に出力されたＣＰＵ＿ＡＤＤＲＥＳＳ１に含まれるアドレスと制御信号（ＢＳＴＡＲＴ／ＲＥＡＤ／ＷＲＩＴＥ等）を第２のＣＰＵバス２２を介してそのままＣＰＵ＿ＡＤＤＲＥＳＳ２として出力し、それを受けたメモリコントローラ１２はＭＥＭ＿ＡＤＤＲＥＳＳへそのアドレスを出力する。メモリ２では、対応するメモリのアドレスを参照し、データの読出しの実行が行なわれる。次に、アドレスＢ１〜Ｂ４のいずれかがＣＰＵ＿ＡＤＤＲＥＳＳ１に出力されたときには、そのアドレスを受け取ったアドレス比較器１１は比較の結果、シーケンススタート信号をバスシーケンス制御回路１６へ出力する。
【００４０】
バスシーケンス制御回路１６からはアドレスとして「Ａ１〜Ａ４」、制御信号として読出し信号「ＲＥＡＤ」がアドレス比較器１１を介してＣＰＵ＿ＡＤＤＲＥＳＳ２へと出力される。これによりメモリコントローラ１２は、メモリへアドレスＡ１〜Ａ４と制御信号を４回送り、アドレスＡ１からＡ４までのデータをデータレジスタ１７に格納する。通常の読み出しにおいては、メモリコントローラ１２がＭＥＭ＿ＤＡＴＡから受け取ったデータは、ＣＰＵ＿ＤＡＴＡ２へそのまま出力されるが、ＣＰＵ＿ＡＤＤＲＥＳＳ１にリードアドレスＢ１〜Ｂ４が指定された際にはデータ位置変換装置１０の内部で、メモリ２よりリードしたデータをＣＰＵ＿ＤＡＴＡ１には出力せずにバスシーケンス制御回路１６より出力されたライトイネーブル（以下、ＷＥ―Ｗｒｉｔｅ　Ｅｎａｂｌｅ―）信号、Ｗ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号により、図６に示すようにデータレジスタ１７への書込みだけが行なわれることになる。
【００４１】
データレジスタ１７への４回のデータの読出しが終了した後に、データ変換器１８ではバスシーケンス制御回路より出力されるＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号（ｎ＝１〜４）によって、データレジスタ１７からの読み出しデータの並べ替えが行われ、ＯＵＴＰＵＴ＿ＥＮ信号によって並べ替え後のデータＢ１〜Ｂ４がＣＰＵ＿ＤＡＴＡ１へと出力される。
【００４２】
データ変換器１８におけるデータ並べ替えは、例えば図５に示すように、データのビット線の選択をＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号（１６ビット×４本［ｎ＝１〜４］）により制御し、マルチプレクサで選ばれたビット線のデータをＣＰＵ＿ＤＡＴＡ１にドライブさせることにより実現することができる。データ変換器１８に入力されるＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号は、データ変換器１８からＣＰＵ＿ＤＡＴＡ１に出力するビット線を４つ（［６３：４８］［４７：３２］［３１：１６］［１５：０］）に分けたとき、図６における４つのマルチプレクサ（それぞれのマルチプレクサの出力はＣＰＵ＿ＤＡＴＡ１へ出力する［６３：４８］［４７：３２］［３１：１６］［１５：０］の４つのビット線に対応している）に対してデータレジスタ１７からのどの入力データを選択するかを決定する信号である。
【００４３】
マルチプレクサに入力される信号は、データレジスタ１７における４つの出力ビット線（１６ビットで４出力）×４レジスタ分の計１６ビット×１６信号である。図７に示すように、この信号をＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号で選択する。これにより図３に示すようなデータの並べ替えを行なう場合に、リードの際にリードアドレスＢ１がＣＰＵ＿ＡＤＤＲＥＳＳ１に出力された場合、図３におけるｒ１へのデータ“１，５，９，１３”がデータ変換器１８で生成されてＣＰＵ＿ＤＡＴＡ１に出力されるが、このときデータ変換器１８に入力されるＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号は、ＭＵＸ１＿ＤＡＴＡ＿ＳＥＬＥＣＴ＝“０ｘ８０００”、ＭＵＸ２＿ＤＡＴＡ＿ＳＥＬＥＣＴ＝“０ｘ０８００”、ＭＵＸ３＿ＤＡＴＡ＿ＳＥＬＥＣＴ＝“０ｘ００８０”、ＭＵＸ４＿ＤＡＴＡ＿ＳＥＬＥＣＴ＝“０ｘ０００８”となる。
【００４４】
以上のような方法によって、図８に示すように、データの読出しの際に、ＣＰＵ＿ＡＤＤＲＥＳＳ１にアドレスＢ１〜Ｂ４が指定された場合には、データ変換器１８によって、アドレスＡ１〜Ａ４の複数データの並べ替えデータが生成され、そのデータがＣＰＵ＿ＤＡＴＡ１に送られる。これにより、ＣＰＵ１に負荷をかけずに並べ替えられたデータをＣＰＵ＿ＤＡＴＡ１に送ることができ、あたかもＡ１〜Ａ４の複数データの並べ替えを１回の読出し実行で行ない、レジスタに格納するかのような動作を実現することができる。
【００４５】
次に、本発明の第３実施形態に係るデータ位置変換装置について図９を用いて説明する。この第３実施形態に係る装置の構成は、図示説明は省略するが、第２実施形態に係るデータ位置変換装置を構成するバスシーケンス制御回路１６において、アドレスＢ１〜Ｂ４への読出しを行なう際に、メモリコントローラ１２に供給されるアドレスＡ１〜Ａ４を設定するために、バスシーケンス制御回路１６に初期値を記憶する記憶手段を付加すると共に、このような記憶手段を備えるバスシーケンス回路１６を有するデータ位置変換装置である。
【００４６】
第３実施形態に係るデータ位置変換装置によるデータ位置変換動作は、図９に示すようなイメージを有している。バスシーケンス回路１６に付加された記憶手段（媒体）は、初期値を有するものとし、データ位置変換装置１０が起動された後に、一度も記憶媒体への書換えが行なわれずに上述した第２実施形態に係るデータ位置変換装置の位置変換シーケンスがスタートした場合には、この初期値をアドレスとしてメモリコントローラ１２に渡して、記憶されたアドレスが特定のアドレスであって読み出されたデータの位置の書換えが行なわれているのならば記憶媒体に書込み済みの値を渡すように動作するものである。
【００４７】
図９に示されているように、この第３実施形態に係る装置を用いて位置変換動作を行なう場合、アドレスＡ１が可変であるため、図９のアドレスＡ１〜Ａ４で示される梨地となった領域でデータ位置の変換を行なうことができる。このように、この第３実施形態に係るデータ位置変換装置によれば、記憶手段にデータの並べ替え指令を含む特定アドレスを記憶しておくことにより、ＣＰＵ側から特定アドレスが入力されなくとも読み出したデータの並べ替え処理を行なうことができるように構成されている。
【００４８】
アドレスＡ１の設定値を格納する本記憶媒体のメモリアドレスは、ＣＰＵアドレスに割付けられてＣＰＵから書換え可能とし、アドレスＡ２〜Ａ４にはＡ１から連続するアドレスが与えられているものとする。複数データのブロックを並べ替える場合、第２実施形態に係る装置においては並べ替え動作毎に読み出したデータをアドレスＡ１〜Ａ４に並べ替えて書き込む必要があるのに対し、この第３実施形態に係るデータ位置変換装置１０を用いて並べ替えを行なう場合には並べ替えて書き込む必要がなくなるという特有の効果を有する。
【００４９】
次に、本発明の第４実施形態に係るデータ位置変換装置について図１０を用いて説明する。この第４実施形態に係る装置は、第２実施形態に係るデータ位置変換装置を構成するバスシーケンス制御回路において、アドレスＢ１〜Ｂ４への読出し時に、データ変換器１８に供給するＭＵＸｎ＿ｍ＿ＤＡＴＡ＿ＳＥＬＥＣＴ（ｎ，ｍ＝１〜４）信号を設定するために記憶手段（媒体）が付加されたバスシーケンス制御回路１６と、このようなバスシーケンス制御回路１６を有するデータ位置変換装置である。この付加される記憶手段は、メモリから読み出してきたデータの並べ替えの方法を指定するために設けられている。
【００５０】
記憶媒体の記憶容量は、図７おけるＭＵＸ（マルチプレクサ）毎に、ＣＰＵ＿ＤＡＴＡ１に出力するビット線を分ける数だけあるものとする（すなわち、第２実施形態のシステムでは、１６個を設定可能としている）。この第４実施形態における記憶媒体は、初期値を有するものとし、データ位置変換装置１０が起動後に一度も記憶媒体への書き換えが行なわれずに第２実施形態のデータ位置変換装置における位置変換シーケンスがスタートした場合は、この初期値をＭＵＸｎ＿ｍ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号としてデータ変換器１８に渡し、書換えが行われていれば記憶媒体に書込み済みの値を渡すものとする。
【００５１】
各１６本のＭＵＸｎ＿ｍ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号の設定値を格納する本記憶媒体のメモリアドレスは、ＣＰＵアドレスに割付けられて各々ＣＰＵから書換え可能とする。例えば、全１６本とも、０ｘ１１１１とした場合、図１０のように、Ｂ１〜Ｂ４全データについて、全てＡ１の２つ目のデータ“２”に書換えられる。このように、データの並べ替えの方法を指定する記憶手段を設けることにより、例えば画像処理アルゴリズムのように、ある画素点における画像データを演算する際に周囲のデータの値を必要とする場合に、第２または第３実施形態に係る装置のように線対称の変換ではなく、その画素点から同心円のデータを直線状に並べ替えるような位置変換を行なうことができ、画像処理のような特殊なデータ処理の際に有効な並列演算が可能となる。
【００５２】
このように、第４実施形態に係るデータ位置変換装置を用いることにより、特殊なデータ演算処理アルゴリズムにも記憶手段より提供されたアドレス並べ替え指令に基づいて、特殊な並べ替え処理を行なうことができ、汎用プロセッサやＣＰＵに負担を掛けることなく、高速でデータを提供することができ、迅速な演算処理を行なうことが可能となる。
【００５３】
次に、本発明の第５実施形態に係るデータ位置変換装置について、図１１を用いて説明する。この第５実施形態に係るデータ位置変換装置は、上述した第２実施形態に係るデータ位置変換装置において、アドレスＢ１〜Ｂ４へのリードを行なうときに、以前のアドレスＡ１〜Ａ４がリードされてから、アドレスＡ１〜Ａ４の値がライトされたか否かをチェックするための記憶媒体を付加されたアドレス比較器１１と、その信号を入力信号の１つとして機能するバスシーケンス制御回路１６と、を備えている。このように、第５実施形態に係るデータ位置変換装置１０は、以前に読み出されたアドレスに関してはデータを再度読み出すことなく記憶しておいた並べ替え後のデータをＣＰＵに出力することにより、データの位置並べ替え処理が可能となる。
【００５４】
この記憶媒体の記憶容量は、１ビットであり、初期時、または、データライト命令により、アドレスＡ１〜Ａ４へのデータライトが実行された場合には、強制的に“１”となり、アドレスＢ１〜Ｂ４へのリード後に“０”となるものとする。バスシーケンス制御回路１６は、アドレスＢ１〜Ｂ４へのリード時に、アドレス比較器１１における前述の記憶媒体より出力される１ビット信号（ＷＲ＿Ａ１＿Ａ４）を受け取って、その値が“１”の場合には第２実施形態の動作を行なうと共に、“０”の場合にはＳＥＱ＿ＡＤＤＲＥＳＳを出力せずに、ＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号（ｎ＝１〜４）、ＯＵＴＰＵＴ＿ＥＮ信号を出力している。
【００５５】
このバスシーケンス制御回路１６においては、ＷＲ＿Ａ１＿Ａ４信号から“０”が入力されたときに、ＣＰＵ＿ＡＤＤＲＥＳＳ２にアドレスを出力し、メモリ２からアドレスＡ１〜Ａ４のデータを読み込む処理を行なうことなく、ＭＵＸｎ＿ＤＡＴＡ＿ＳＥＬＥＣＴ信号とＯＵＴＰＵＴ＿ＥＮ信号の出力により、データアドレスに保持されている値をそのまま用いて、データ変換器１８で並び替えを行ない、ＣＰＵ＿ＤＡＴＡ１へ出力を行なう。
【００５６】
これにより、例えばアドレスＢ１、Ｂ２、Ｂ３、Ｂ４への連続したリード実行時などには、図１１に示すように、アドレスＢ２、Ｂ３、Ｂ４のデータリード時に費やされるＣＰＵ＿ＡＤＤＲＥＳＳ２にアドレスを出力する時間や、メモリ２上の値をＣＰＵ＿ＤＡＴＡ２に出力する時間や、データアドレスに格納してデータ変換器１８で変換する時間などを省略することができ、装置全体における処理時間全体の大幅な短縮を図ることができる。
【００５７】
【発明の効果】
以上詳細に説明したように、本発明に係るデータ位置変換装置によれば、ＣＰＵからの指令によりメモりから読み出されるデータの読み出しの際に特定のアドレスを検出した場合には、読み出されたデータに対してＣＰＵへ供給される前に並べ替え制御を行なうようにしたので、このようなデータ位置を変換する専用回路を設けることによりデータの配列をＣＰＵでの演算内容に対応するように特化させて処理を行なうことができ、汎用のプロセッサを用いて処理を行なうよりも高速で並べ替え処理を進めることが可能となるという効果を有する。
【００５８】
上述した効果の反射的な効果として、データ配置を変換するのに専用の本発明に係るデータ位置変換装置を提供することにより、データ位置変換装置がメモリから読み出されたデータの配置を変換している間にも、汎用のプロセッサは他の処理を行なうことができるので、システム全体としての処理効率の大幅な改善を図ることができ、処理時間の低減および見かけ上では処理時間を全くなくすこともできる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係るデータ位置変換装置の基本構成を示すブロック図である。
【図２】本発明の第２実施形態に係るデータ位置変換装置の構成を示すブロック図である。
【図３】第２実施形態のデータ位置変換装置のデータの配置変換原理を、変換前（ａ）と変換前（ｂ）とで示す説明図である。
【図４】第２実施形態のデータ位置変換装置のアドレスおよびデータの読み出しを説明する説明図である。
【図５】第２実施形態のデータ位置変換装置の各部の信号のタイミングを示すタイミングチャートである。
【図６】第２実施形態のデータ位置変換装置におけるデータレジスタ１７とデータ変換器１８の詳細な構成を示すブロック図である。
【図７】図６におけるレジスタとＭＵＸ４の信号の割り当て状態を示すブロック図である。
【図８】第２実施形態を説明する図３におけるアドレスＡ１〜Ａ４のデータをリードした際にデータレジスタに格納されたデータの位置を示す説明図である。
【図９】第３実施形態における第１のＣＰＵバス２１上のメモリマップを示す説明図である。
【図１０】第４実施形態における第１のＣＰＵバス２１上のメモリマップを示す説明図である。
【図１１】第５実施形態におけるアドレスＢ１〜Ｂ４からのデータリードの際の第１のＣＰＵバス２１および第２のＣＰＵバス２２のタイミングを示すタイミングチャートである。
【図１２】並列演算命令に必要なデータ構造を示す説明図である。
【図１３】従来のデータ位置変換装置における処理動作を示す説明図である。
【符号の説明】
１　ＣＰＵ
２　メモリ
１０　データ位置変換装置
１１　アドレス比較器
１２　メモリ制御部（メモリコントローラ）
１３　読み出し制御部
１４　アドレス／データ制御部
１５　並べ替え処理部
１６　バスシーケンス制御部（制御回路）
１７　データレジスタ
１８　データ変換器
【図１】
2004021932.tif 000003
【図２】
2004021932.tif 000004
【図３】
2004021932.tif 000005
【図４】
2004021932.tif 000006
【図５】
2004021932.tif 000007
【図６】
2004021932.tif 000008
【図７】
2004021932.tif 000009
【図８】
2004021932.tif 000010
【図９】
2004021932.tif 000011
【図１０】
2004021932.tif 000012
【図１１】
2004021932.tif 000013
【図１２】
2004021932.tif 000014
【図１３】
2004021932.tif 000015