(57)【要約】【課題】キャッシュメモリの前段に設けられるアライン回路の構成を簡素化する。【解決手段】演算部１１は命令に従って演算を行い、該演算の結果として得られたデータを出力する。ストアバッファ１３には演算部１１から出力されたデータが格納される。キャッシュメモリ１６にはストアバッファ１３から読み出されたデータが格納される。演算部１１から出力されてストアバッファ１３に格納されるデータの並べ替えをアライン回路１２で行わせると共に、ストアバッファ１３から読み出されてキャッシュメモリ１６に格納されるデータの並べ替えをアライン回路１５で行わせるようにして、アライン回路１５でのデータの並べ替えのための作業量を軽減させる。【選択図】　　　図１
2004038339.tif 000002
【特許請求の範囲】
【請求項１】
命令に従って演算を行い、該演算の結果として得られたデータを出力する演算手段と、
前記演算手段から出力されたデータが格納される第一の記憶手段と、
前記第一の記憶手段から読み出されたデータが格納される、キャッシュメモリとして機能する第二の記憶手段と、
前記演算手段から出力されて前記第一の記憶手段に格納されるデータの並べ替えを行う第一のデータアライン手段と、
前記第一の記憶手段から読み出されて前記第二の記憶手段に格納されるデータの並べ替えを行う第二のデータアライン手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記第二のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第一のデータアライン手段は、前記第一の記憶手段にデータを格納するときの該データの語長を示す語長情報、及び該第一の記憶手段に該データを格納するときに該データが配置される該第一の記憶手段の該データについての格納領域内での位置を示す配置情報に基づいて前記データの並べ替えを行うことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記第二のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行い、
前記第一のデータアライン手段は、前記語長情報及び前記配置情報に基づき、前記格納領域内において前記データが配置されない位置に該データと同一のデータを複写して配置する、
ことを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記第二の記憶から読み出されたデータが格納される第三の記憶手段と、
前記第二の記憶手段から読み出されて前記第三の記憶手段に格納されるデータの並べ替えを行う第三のデータアライン手段と、
前記演算手段による演算の対象として前記第三の記憶手段から読み出されるデータの並べ替えを行う第四のデータアライン手段と、
を更に有することを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
前記第三のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行うことを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
前記第四のデータアライン手段は、前記第一の記憶手段にデータを格納するときの該データの語長を示す語長情報、及び該第一の記憶手段に該データを格納するときに該データが配置される該第一の記憶手段の該データについての格納領域内での位置を示す配置情報に基づいて前記データの並べ替えを行うことを特徴とする請求項５に記載のデータ処理装置。
【請求項８】
前記第四のデータアライン手段は、前記演算手段による演算の対象として前記第一の記憶手段から読み出されるデータの並べ替えを更に行うことを特徴とする請求項５に記載のデータ処理装置。
【請求項９】
データ処理装置に設けられており命令に従った演算が行われる演算部から該演算の結果として出力されたデータであって第一の記憶部に格納される該データの並べ替えを行い、
前記第一の記憶部から読み出されたデータであって前記データ処理装置におけるキャッシュメモリとして機能する第二の記憶部に格納される該データの並べ替えを行う、
ことを特徴とする格納データのアライン方法。
【請求項１０】
前記第二の記憶部に格納されるデータの並べ替えでは、該第二の記憶部に該データを格納するときのエンディアンを特定する指示を示す情報に基づいて該並べ替えを行い、
前記第一の記憶部に格納されるデータの並べ替えでは、該第一の記憶部に該データを格納するときの該データの語長を示す語長情報、及び該第一の記憶部に該データを格納するときに該データが配置される該第一の記憶部の該データについての格納領域内での位置を示す配置情報に基づいて該並べ替えを行うと共に、該語長情報及び該配置情報に基づき、該格納領域内において該データが配置されない位置に該データと同一のデータを複写して配置する、
ことを特徴とする請求項９に記載の格納データのアライン方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置で用いられる技術に関し、特に、データを一時的に保持する記憶部に対するデータの格納の技術に関する。
【０００２】
【従来の技術】
データ処理装置における記憶部へのデータの格納の方式として、ビッグエンディアンとリトルエンディアンと呼ばれる方式がある。ビッグエンディアンは、記憶領域のアドレスの小さい順に上の位の数から格納する方式、例えば、１６進数で「１２３４５６７８」なる値をメモリに格納するときには、アドレスの小さい順に「１２」、「３４」、「５６」、「７８」と格納する方式をいう。これに対し、リトルエンディアンは、記憶領域のアドレスの小さい順に下の位の数から格納する方式、前述の例では、アドレスの小さい順に「７８」、「５６」、「３４」、「１２」と格納する方式をいう。
【０００３】
現在市場で流通しているデータ処理装置の中には、内部に設けられているキャッシュメモリへのアクセスにおいてこの両方のエンディアンをサポートしているものがある。このようなデータ処理装置でリトルエンディアンによるメモリアクセスが行なわれるのは例えば次のような場合がある。
１．プロセッサの動作状態を設定するレジスタにリトルエンディアンでのメモリアクセスの設定がなされている場合。
２．リトルエンディアンでのメモリアクセスを行う命令がデータ処理装置で実行されるプログラムに記述されていた場合。
３．上記の１．及び２．によってビッグエンディアンでのメモリアクセスを行う指示がなされているときに、キャッシュメモリのアドレスの管理のため用意されているアドレス変換バッファ（ＴＬＢ：Ｔｒａｎｓｌａｔｉｏｎ　Ｌｏｏｋａｓｉｄｅ　Ｂｕｆｆｅｒ）にエンディアン反転の指定がされていた場合。
【０００４】
上記の３．の場合を考慮しなければならないため、データをキャッシュメモリに格納するときにどちらのエンディアンを採用してデータをアラインする（並べる）かは、ＴＬＢに対する検索の結果が得られるまでは確定することができない。
【０００５】
一方、キャッシュメモリに記憶すべきデータ（ストアデータ）は演算器での演算処理が完了すると直ちに演算器から発行されるが、一般にこのストアデータはバッファメモリに格納される前にまずストアバッファメモリに一旦格納される。このストアデータのストアバッファメモリへの格納はＴＬＢに対する検索とは無関係に行われるので、この両方のエンディアンをサポートしているデータ処理装置であっても一般的にはこのストアバッファメモリへの格納においてエンディアンの選択を行うことはできない。
【０００６】
ここで図１０について説明する。同図は、従来のデータ処理装置の構成を示している。同図において、１０１は演算部、１０２はストアバッファ、１０３、１０７、及び１０８はデータセレクタ、１０４及び１０９はアライン回路、１０５はキャッシュメモリ、１０６はバッファである。なお、同図に示したデータ処理装置は、キャッシュメモリ１０５へのアクセスにおいて前述した両方のエンディアンをサポートしている。
【０００７】
データストアの要求が発行されると、演算部１０１で実行された演算の結果として得られたデータはまずストアバッファ１０２に直接格納される。ストアバッファ１０２に格納されたデータはデータセレクタ１０３によって選択されて読み出され、その後、キャッシュメモリ１０５に格納される。キャッシュメモリ１０５はこのデータ処理装置におけるキャッシュメモリであり、ストアバッファ１０２よりも記憶容量の大きなメモリである。ストアバッファ１０２から読み出されたデータをキャッシュメモリ１０５へ格納するときに、アライン回路１０４はこのデータの並べ替えを行う。
【０００８】
アライン回路１０４では、キャッシュメモリ１０５に格納されるデータの語長を示すストアレングスと、キャッシュメモリ１０５にデータの格納するときにおけるそのデータの格納領域内での配置位置を右詰めとするか左詰めとするかを示すアラインコードと、前述したエンディアンとに基づいた格納データの並べ替えがバイト単位で行われる。このデータ処理装置のデータ語長を８バイトとすれば、アライン回路１０４としてはバイト毎に８ｗａｙのデータ選択、すなわち、アライン回路１０４の出力である第０バイトから第７バイトの各バイトのデータとして、アライン回路１０４に入力された第０バイトから第７バイトの計８バイト全てからのデータの選択が行えるような回路構成を備える必要がある。
【０００９】
データストアの要求の後に発行されたフェッチ要求がキャッシュメモリ１０５に格納されているデータをフェッチするときには、キャッシュメモリ１０５に格納されていたデータが読み出されて一旦バッファ１０６に格納され、続いてこの格納されたデータがデータセレクタ１０９によって選択されて読み出され、１０４と同様のアライン回路１０９によるデータの並べ替えがバイト単位で行われた後、演算部１０１へ入力される。なお、このとき、フェッチ要求の対象であるデータがまだキャッシュメモリ１０５に格納されていないときには、その対象であるデータがデータセレクタ１０７によって選択されてストアバッファ１０２から読み出され、データセレクタ１０８及びアライン回路１０９を経て演算部１０１へ入力される。
【００１０】
以上のように、図１０に示した構成ではエンディアンの指定に基づいた格納データの並べ替えがキャッシュメモリ１０５の直前に設けられているアライン回路１０４において行われるが、この構成であれば格納データの並べ替えをＴＬＢに対する検索の結果が得られた後に行うことが可能である。
【００１１】
【発明が解決しようとする課題】
前述したように、従来、キャッシュメモリ１０５に格納するデータに対するアラインはキャッシュメモリ１０５へ直接接続されているアライン回路１０４によってデータ格納の直前に一括して行われていた。そのため、アライン回路１０４は回路構成が複雑であり、回路規模も大きなものとなっていた。その一方、キャッシュメモリ１０５は書き込みのタイミングにおいて許容される遅延時間に対する要求、及び同時に書き込まれるデータ間におけるこの遅延時間のばらつきに対する要求が一般的に厳しいが、これらの要求はキャッシュメモリ１０５へ直接接続されているアライン回路１０４へ向けられている。
【００１２】
以上の問題を鑑み、キャッシュメモリの前段に設けられるアライン回路の構成を簡素化することが本発明が解決しようとする課題である。
【００１３】
【課題を解決するための手段】
本発明の態様のひとつであるデータ処理装置は、命令に従って演算を行い、該演算の結果として得られたデータを出力する演算手段と、前記演算手段から出力されたデータが格納される第一の記憶手段と、前記第一の記憶手段から読み出されたデータが格納される、キャッシュメモリとして機能する第二の記憶手段と、前記演算手段から出力されて前記第一の記憶手段に格納されるデータの並べ替えを行う第一のデータアライン手段と、前記第一の記憶手段から読み出されて前記第二の記憶手段に格納されるデータの並べ替えを行う第二のデータアライン手段と、を有するように構成することによって前述した課題を解決する。
【００１４】
この構成によれば、第一のデータアライン手段と第二のデータアライン手段とでデータの並べ替えの作業を分担することができ、キャッシュメモリとして機能する第二の記憶手段の前段に設けられる第二のデータアライン手段で行うべきデータの並べ替えのための作業量が軽減されるのでその構成の簡素化が可能となり、その結果データの伝送遅延に関するキャッシュメモリによる要求を比較的容易に充足させることができるようになる。
【００１５】
なお、上述した本発明に係るデータ処理装置において、前記第二のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行うように構成することができる。
【００１６】
上述した構成では、エンディアンの指示を示す情報に基づいたデータの並べ替えを第一のデータアライン手段ではなく第二のデータアライン手段で行うので、このデータの並べ替えをアドレス変換バッファに対する検索の結果が得られた後に行うことができる。
【００１７】
また、前述した本発明に係るデータ処理装置において、前記第一のデータアライン手段は、前記第一の記憶手段にデータを格納するときの該データの語長を示す語長情報、及び該第一の記憶手段に該データを格納するときに該データが配置される該第一の記憶手段の該データについての格納領域内での位置を示す配置情報に基づいて前記データの並べ替えを行うように構成することができる。
【００１８】
この構成によれば、語長情報及び位置情報に基づくデータの並べ替えをキャッシュメモリとして機能する第二の記憶手段の前段に設けられる第二のデータアライン手段で行わなくて済むようになるので、第二のデータアライン手段で行うべき作業量が軽減される結果、その構成の簡素化が可能となる。
【００１９】
なお、この構成において、前記第二のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行い、前記第一のデータアライン手段は、前記語長情報及び前記配置情報に基づき、前記格納領域内において前記データが配置されない位置に該データと同一のデータを複写して配置するように構成することができる。
【００２０】
この構成によれば、第二のデータアライン手段によって行われるデータの並べ替えにおける並べ替え前後のデータの関係が良好な対称性を有するようになるので、対称性を有している回路で第二のデータアライン手段を実現することが可能となり、その結果データ間での伝送遅延のばらつきに関するキャッシュメモリによる要求を比較的容易に充足させることができるようになる。
【００２１】
また、前述した本発明に係るデータ処理装置において、前記第二の記憶から読み出されたデータが格納される第三の記憶手段と、前記第二の記憶手段から読み出されて前記第三の記憶手段に格納されるデータの並べ替えを行う第三のデータアライン手段と、前記演算手段による演算の対象として前記第三の記憶手段から読み出されるデータの並べ替えを行う第四のデータアライン手段と、を更に有するように構成することができる。
【００２２】
このとき、前記第三のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行うことができる。また、このとき、前記第四のデータアライン手段は、前記第一の記憶手段にデータを格納するときの該データの語長を示す語長情報、及び該第一の記憶手段に該データを格納するときに該データが配置される該第一の記憶手段の該データについての格納領域内での位置を示す配置情報に基づいて前記データの並べ替えを行うことができる。
【００２３】
この構成によれば、第三のデータアライン手段と第四のデータアライン手段とでデータの並べ替えの作業を分担することができるので、演算手段による演算の対象として第三の記憶手段から読み出されるデータの並べ替えを行う第四のデータアライン手段で行うべき作業量が軽減されるのでその構成の簡素化が可能となり、第三の記憶手段から演算手段へのデータの伝送遅延を減少させることができる。
【００２４】
なお、この構成において、前記第四のデータアライン手段は、前記演算手段による演算の対象として前記第一の記憶手段から読み出されるデータの並べ替えを更に行うように構成することができる。
【００２５】
この構成によれば、演算手段による演算の対象として第三の記憶手段から読み出されるデータの並べ替えと、演算手段による演算の対象として第一の記憶手段から読み出されるデータの並べ替えとを第四のデータアライン手段で兼用させることができるので、データ処理装置全体の回路規模を低減させることができる。
【００２６】
また、本発明の別の態様のひとつである格納データのアライン方法は、データ処理装置に設けられており命令に従った演算が行われる演算部から該演算の結果として出力されたデータであって第一の記憶部に格納される該データの並べ替えを行い、前記第一の記憶部から読み出されたデータであって前記データ処理装置におけるキャッシュメモリとして機能する第二の記憶部に格納される該データの並べ替えを行うようにすることによって前述した課題を解決する。
【００２７】
こうすることにより、データの並べ替えの作業が分担されてキャッシュメモリとして機能する第二の記憶部へ格納されるデータの並べ替えのための作業量が軽減されるので、このデータの並べ替えを行わせるための回路構成の簡素化が可能となり、その結果データの伝送遅延に関するキャッシュメモリによる要求を比較的容易に充足させることができるようになる。
【００２８】
なお、上述した本発明に係る格納データのアライン方法において、前記第二の記憶部に格納されるデータの並べ替えでは、該第二の記憶部に該データを格納するときのエンディアンを特定する指示を示す情報に基づいて該並べ替えを行い、前記第一の記憶部に格納されるデータの並べ替えでは、該第一の記憶部に該データを格納するときの該データの語長を示す語長情報、及び該第一の記憶部に該データを格納するときに該データが配置される該第一の記憶部の該データについての格納領域内での位置を示す配置情報に基づいて該並べ替えを行うと共に、該語長情報及び該配置情報に基づき、該格納領域内において該データが配置されない位置に該データと同一のデータを複写して配置するようにすることができる。
【００２９】
こうすることにより、第二の記憶部に格納されるデータの並べ替えにおける並べ替え前後のデータの関係が良好な対称性を有するようになるので、このデータの並べ替えを行わせるための回路構成に対称性を持たせることが可能となり、その結果データ間での伝送遅延のばらつきに関するキャッシュメモリによる要求を比較的容易に充足させることができるようになる。
【００３０】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。
まず、図１について説明する。同図は本発明を実施するデータ処理装置の構成を示している。同図において、１１は演算部、１２、１５、１７、及び２１はアライン回路、１３はストアバッファ、１４、１９、及び２０はデータセレクタ、１６はキャッシュメモリ、１８はバッファである。なお、同図に示したデータ処理装置は、キャッシュメモリ１６へのアクセスにおいて前述した両方のエンディアンをサポートしている。また、このデータ処理装置のデータ語長を８バイトとする。
【００３１】
図１に示した本発明を実施するデータ処理装置における演算部１１、ストアバッファ１３、データセレクタ１４、１９、及び２０、キャッシュメモリ１６、及びバッファ１８は、それぞれ図１０に示した従来のデータ処理装置における演算部１０１、ストアバッファ１０２、データセレクタ１０３、１０７、及び１０８、キャッシュメモリ１０５、及びバッファ１０６と同様のものである。
【００３２】
図１に示した本発明を実施するデータ処理装置と図１０に示した従来のものとは、図１０においてはアライン回路１０４及び１０９が８ｗａｙのデータ選択を行える回路であったものが図１においては２ｗａｙのデータ選択が行えるアライン回路１５及び２１へと置き換えられた点と、４ｗａｙのデータ選択が行えるアライン回路１２及び１７が演算部１１とストアバッファ１３との間、及びデータセレクタ２０と演算部１１との間に設けられた点とにおいて異なっている。
【００３３】
アライン回路１２及び１７では、データの語長を示すストアレングスと、データを格納するときに右詰めでの格納を行うか左詰めでの格納を行うかを示すアラインコードとに基づいた格納データの並べ替えがバイト単位で行われる。なお、ストアレングスとしては１バイト、２バイト、４バイト、８バイトのうちのいずれかが示されるものとする。
【００３４】
アライン回路１５及び２１では前述したエンディアンに基づいたデータの並べ替えが行われる。
図１に示す構成において特徴的である、２つのアライン回路、すなわちアライン回路１２及びアライン回路１５について更に説明する。
【００３５】
前述したように、データをキャッシュメモリに格納するときにどちらのエンディアンを採用してデータをアラインするかは、ＴＬＢに対する検索の結果が得られるまでは確定することができない。しかし、図１に示す構成では、エンディアンの設定・指示に基づいたデータの並べ替えは、アライン回路１２では行わずに、図１０に示した構成と同様、ストアバッファ１３に格納されているデータを選択して読み出すデータセレクタ１４とこの読み出されたデータを格納するキャッシュメモリ１６との間に設けられたアライン回路１５で行うので、この点については問題とならない。
【００３６】
その一方、ストアレングスとアラインコードとに基づいた格納データの並べ替えは演算部１１とストアバッファ１３との間に設けられた４ｗａｙのアライン回路１２で行うので、キャッシュメモリ１６の直前に配置されるアライン回路１５は、エンディアンの設定・指示に基づいたデータの並べ替えを可能とする２ｗａｙの並べ替え回路で済むようになる。その結果、回路構成が簡素化されるので、回路規模は小さくなるので、データがこの回路の通過のために生じる遅延量も少なくなる。
【００３７】
アライン回路１２及びアライン回路１５の動作について説明する。
まず図２について説明する。同図はアライン回路１２で行わせるデータコピーを示しており、ストアレングスが４バイトを示し且つアラインコードが左詰めを示している場合の例である。この場合には演算器１１で得られたデータは第７バイト、第６バイト、第５バイト、及び第４バイトの各バイト位置に配置されている。
【００３８】
この場合、アライン回路１２は、演算器１１で得られたストアすべきデータ（ストアデータ）のうち第７バイトから第４バイトの各バイト位置に配置されているデータについて、そのままの位置に配置するだけでなく、データのコピー（複写）を行って第７バイトのバイト位置のデータを第３バイトのバイト位置に配置され、ストアバッファ１３に格納される。同様に、第６バイト位置のデータを第２バイト位置に、第５バイト位置のデータを第１バイト位置に、そして第４バイト位置のデータを第０バイト位置に、各々コピーして配置され、ストアバッファ１３に格納される。
【００３９】
次に図３について説明する。同図はアラインコードが左詰めを示している場合にアライン回路１２で行われる並べ替えの様子を示している。
図３（ａ）はストアレングスが１バイトを示しているときの並べ替えの様子を示しており、このときには第７バイト位置のデータがコピーされて第７バイト位置から第０バイト位置までの全てのバイト位置に配置される。
【００４０】
図３（ｂ）はストアレングスが２バイトを示しているときの並べ替えの様子を示しており、このときには第７バイト位置のデータはコピーされて第７、第５、第３、第１の各バイト位置に配置され、第６バイト位置のデータはコピーされて第６、第４、第２、第０の各バイト位置に配置される。
【００４１】
図３（ｃ）はストアレングスが４バイトを示しているときの並べ替えの様子を示しており、これは図２に示した例と同一である。このときには第７バイト位置のデータはコピーされて第７及び第３の両バイト位置に配置され、第６バイト位置のデータはコピーされて第６及び第２の両バイト位置に配置され、第５バイト位置のデータはコピーされて第５及び第１の両バイト位置に配置され、第４バイト位置のデータはコピーされて第４及び第０の両バイト位置に配置される。
【００４２】
図３（ｄ）はストアレングスが８バイトを示しているときの並べ替えの様子を示しており、このときには第７から第０の各バイト位置のデータは１対１に対応する第７から第０の各バイト位置にそのまま配置される。
【００４３】
次に図４について説明する。同図はアラインコードが右詰めを示している場合にアライン回路１２で行われる並べ替えの様子を示している。
図４（ａ）はストアレングスが１バイトを示しているときの並べ替えの様子を示しており、このときには第０バイト位置のデータがコピーされて第７バイト位置から第０バイト位置までの全てのバイト位置に配置される。
【００４４】
図４（ｂ）はストアレングスが２バイトを示しているときの並べ替えの様子を示しており、このときには第１バイト位置のデータはコピーされて第７、第５、第３、第１の各バイト位置に配置され、第０バイト位置のデータはコピーされて第６、第４、第２、第０の各バイト位置に配置される。
【００４５】
図４（ｃ）はストアレングスが４バイトを示しているときの並べ替えの様子を示しており、このときには第３バイト位置のデータはコピーされて第７及び第３の両バイト位置に配置され、第２バイト位置のデータはコピーされて第６及び第２の両バイト位置に配置され、第１バイト位置のデータはコピーされて第５及び第１の両バイト位置に配置され、第０バイト位置のデータはコピーされて第４及び第０の両バイト位置に配置される。
【００４６】
図４（ｄ）はストアレングスが８バイトを示しているときの並べ替えの様子を示しており、このときには第７から第０の各バイト位置のデータは１対１に対応する第７から第０の各バイト位置にそのまま配置される。
【００４７】
次に図５について説明する。同図はアライン回路１２での並べ替えにおける入力バイト位置と出力バイト位置との対応関係を示している。
先に示した図３及び図４において、例えば並べ替えによって第７バイト位置に配置されるデータについての並べ替え前のバイト位置を調べてみると、並べ替え前のバイト位置が第０バイト位置であるもの（図４（ａ））、第１バイト位置であるもの（図４（ｂ））、第３バイト位置であるもの（図４（ｃ））、そして第７バイト位置であるもの（図４（ｄ）及び図５の全て）がある。つまり、アライン回路１２による並べ替えでは、第７バイト位置へのデータの配置においては、第０、第１、第３、及び第７の４つの各データ位置に位置しているデータのうちのいずれか１つをストアレングス及びアラインコードに基づいて選択して配置できる機能を有していればよいことが分かる。
【００４８】
図５は上述した検討を出力バイト位置毎に行った結果をまとめて示したものである。例えば左端の列では、演算器１１で得られたストアデータのうち第０、第１、第３、及び第７の各データ位置に位置しているデータのうちのいずれかを選択してストアバッファ１３の第７バイト位置に格納することができる機能を有していることを示しており、これは上述した第７バイト位置に配置されるデータについての並べ替え前のバイト位置についての検討結果に一致している。
【００４９】
図５における他の列のうちのひとつについても例として説明すると、図５の左端から２番目の列は、演算器１１で得られたストアデータのうち第０、第２、第６、及び第７の４つのデータ位置に位置しているデータのうちのいずれかを選択してストアバッファ１３の第６バイト位置に格納することができる機能を有していることを示している。図３及び図４において、並べ替えによって第６バイト位置に配置されるデータについての並べ替え前のバイト位置を調べてみると、並べ替え前のバイト位置が第０バイト位置であるもの（図４（ａ）及び図４（ｂ））、第２バイト位置であるもの（図４（ｃ））、第６バイト位置であるもの（図４（ｄ）並びに図５（ｂ）、（ｃ）及び（ｄ））、そして第７バイト位置であるもの（図５（ａ））があり、この検討結果は図５に示されているものと一致している。
【００５０】
このように、アライン回路１２として出力バイト位置毎に４つの入力バイト位置からの選択が行えるもの、すなわち４ｗａｙのものを用いれば、図５に示したアライン回路１２での並べ替えにおける入力バイト位置と出力バイト位置との対応関係を満足する機能をアライン回路１２に持たせることができ、前述したデータのコピー動作とストアレングス及びアラインコードに基づいたデータの並べ替え動作とをアライン回路１２に行わせることができる。
【００５１】
なお、アライン回路１７についても、アライン回路１２と同様の機能を有するものを用いてよい。
次にアライン回路１５について説明する。
【００５２】
図６はアライン回路１５で行わせるエンディアンの指示に応じたデータの並べ替えを示しており、同図に示した例は、アライン回路１２によって図３（ｃ）に示したデータの並べ替えが行われてストアバッファ１３に格納されていたデータ、すなわち、ストアレングスが４バイト且つアラインコードが左詰めを示していたときにアライン回路１２によってデータの並べ替えが行われてストアバッファ１３に格納されていたデータがアライン回路１５に入力されたときに行われるデータの並べ替えを示している。
【００５３】
図６（ａ）はビッグエンディアンが指示されているときのデータの並べ替えの様子を示しており、このときにはこのときには第７から第０の各バイト位置のデータは１対１に対応する第７から第０の各バイト位置にそのまま配置される。従って、演算器１１で得られたストアデータにおける各データの位置にまで遡って考えれば、ストアデータにおける第７バイト位置のデータは第７及び第３の両バイト位置に、ストアデータにおける第６バイト位置のデータは第６及び第２の両バイト位置に、ストアデータにおける第５バイト位置のデータは第５及び第１の両バイト位置に、そしてストアデータにおける第４バイト位置のデータは第４及び第０の両バイト位置に、各々配置され、図１に示すデータ処理装置におけるキャッシュメモリとして機能する、記憶容量がストアバッファ１３よりも大きいキャッシュメモリ１６に格納される。
【００５４】
図６（ｂ）はリトルエンディアンが指示されているときのデータの並べ替えの様子を示しており、このときにはこのときには第７から第０の各バイト位置のデータはその位置が反転されて第０から第７の各バイト位置に配置される。このような並べ替えは「クロスアライン」などとも称されている。従って、演算器１１で得られたストアデータにおける各データの位置にまで遡って考えれば、ストアデータにおける第７バイト位置のデータは第４及び第０の両バイト位置に、ストアデータにおける第６バイト位置のデータは第５及び第１の両バイト位置に、ストアデータにおける第５バイト位置のデータは第６及び第２の両バイト位置に、そしてストアデータにおける第４バイト位置のデータは第７及び第４の両バイト位置に、各々配置されてキャッシュメモリ１６に格納される。
【００５５】
次に図７について説明する。同図はアラインコードが左詰めを示している場合にアライン回路１２で並べ替えられたデータに対して行われるアライン回路１５による並べ替えの様子を示している。
【００５６】
図７（ａ）はストアレングスが１バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替えの様子を示しており、このときにビッグエンディアンが指示されているのであれば第７から第０の各バイト位置のデータは１対１に対応する第７から第０の各バイト位置にそのまま配置され、このときにリトルエンディアンが指示されているのであれば第７から第０の各バイト位置のデータはクロスアラインされて第０から第７の各バイト位置に配置される。
【００５７】
以下、図７（ｂ）に示しているストアレングスが２バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替え、図７（ｃ）に示しているストアレングスが４バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替え、及び図７（ｄ）に示しているストアレングスが８バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替えのいずれについても同様であり、ビッグエンディアンが指示されているのであれば第７から第０の各バイト位置のデータは１対１に対応する第７から第０の各バイト位置にそのまま配置され、リトルエンディアンが指示されているのであれば第７から第０の各バイト位置のデータはクロスアラインされて第０から第７の各バイト位置に配置される。
【００５８】
次に図８について説明する。同図はアラインコードが右詰めを示している場合にアライン回路１２で並べ替えられたデータに対して行われるアライン回路１５による並べ替えの様子を示している。
【００５９】
図８に示す各々のケースについても図７に示したものと同様であり、図８（ａ）に示しているストアレングスが１バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替え、図８（ｂ）に示しているストアレングスが２バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替え、図８（ｃ）に示しているストアレングスが４バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替え、及び図８（ｄ）に示しているストアレングスが８バイトを示しているときにアライン回路１２で並べ替えられたデータに対して行われる並べ替えのいずれにおいても、ビッグエンディアンが指示されているのであれば第７から第０の各バイト位置のデータは１対１に対応する第７から第０の各バイト位置にそのまま配置され、リトルエンディアンが指示されているのであれば第７から第０の各バイト位置のデータはクロスアラインされて第０から第７の各バイト位置に配置される。
【００６０】
このように、アライン回路１５として、ビッグエンディアンが指示されている場合には出力バイト位置毎に各入力バイト位置のデータをそのまま配置し、リトルエンディアンが指示されているときには出力バイト位置毎に各入力バイト位置のデータをクロスアラインして配置することができるもの、すなわち簡素な回路構成である２ｗａｙのものを用いることができるので、アライン回路１５内の伝達遅延を８ｗａｙのアライン回路が使用されていた従来の場合と比較して短くすることが可能となる。
【００６１】
しかもこのアライン回路１５の入出力の関係は、アライン回路１２による並べ替えがどのように行われているかには関係なく、常に良好な対称性を有しているので、出力バイト位置毎のアライン回路１５内の伝達遅延のばらつきを少なくすることは容易である。なお、アライン回路１５において良好な対称性を有する並べ替えが行えるようになっているのは、アライン回路１２において前述したようなストアレングスに基づいたデータのコピーを行うようにしたことに起因するものである。
【００６２】
以上のような動作を行うアライン回路１２及びアライン回路１５を用いることによって、キャッシュメモリ１６による書き込みのタイミングにおいて許容される遅延時間に対する要求、及び同時に書き込まれるデータ間におけるこの遅延時間のばらつきに対する要求を充足することが、８ｗａｙのアライン回路が使用されていた従来の場合と比較して容易に行えるようになるのである。
【００６３】
なお、アライン回路１７にアライン回路１２と同様の機能を有するものを用いるのであれば、アライン回路２１についてもアライン回路１５と同様の機能を有する２ｗａｙのもの、すなわち図９に示すような、ビッグエンディアンが指示されている場合には出力バイト位置毎に各入力バイト位置のデータをそのまま配置し（図９（ａ））、リトルエンディアンが指示されているときには出力バイト位置毎に各入力バイト位置のデータをクロスアラインして配置する（図９（ｂ））、といったデータの並べ替えを行わせるものを用いてよい。
【００６４】
その他、本発明は、上述した実施形態に限定されることなく、種々の改良・変更が可能である。
（付記１）　命令に従って演算を行い、該演算の結果として得られたデータを出力する演算手段と、
前記演算手段から出力されたデータが格納される第一の記憶手段と、
前記第一の記憶手段から読み出されたデータが格納される、キャッシュメモリとして機能する第二の記憶手段と、
前記演算手段から出力されて前記第一の記憶手段に格納されるデータの並べ替えを行う第一のデータアライン手段と、
前記第一の記憶手段から読み出されて前記第二の記憶手段に格納されるデータの並べ替えを行う第二のデータアライン手段と、
を有することを特徴とするデータ処理装置。
【００６５】
（付記２）　前記第二のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行うことを特徴とする付記１に記載のデータ処理装置。
【００６６】
（付記３）　前記第一のデータアライン手段は、前記第一の記憶手段にデータを格納するときの該データの語長を示す語長情報、及び該第一の記憶手段に該データを格納するときに該データが配置される該第一の記憶手段の該データについての格納領域内での位置を示す配置情報に基づいて前記データの並べ替えを行うことを特徴とする付記１に記載のデータ処理装置。
【００６７】
（付記４）　前記第二のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行い、
前記第一のデータアライン手段は、前記語長情報及び前記配置情報に基づき、前記格納領域内において前記データが配置されない位置に該データと同一のデータを複写して配置する、
ことを特徴とする付記３に記載のデータ処理装置。
【００６８】
（付記５）　前記第二の記憶から読み出されたデータが格納される第三の記憶手段と、
前記第二の記憶手段から読み出されて前記第三の記憶手段に格納されるデータの並べ替えを行う第三のデータアライン手段と、
前記演算手段による演算の対象として前記第三の記憶手段から読み出されるデータの並べ替えを行う第四のデータアライン手段と、
を更に有することを特徴とする付記１に記載のデータ処理装置。
【００６９】
（付記６）　前記第三のデータアライン手段は、前記第二の記憶手段にデータを格納するときのエンディアンを特定する指示を示す情報に基づいて前記データの並べ替えを行うことを特徴とする付記５に記載のデータ処理装置。
【００７０】
（付記７）　前記第四のデータアライン手段は、前記第一の記憶手段にデータを格納するときの該データの語長を示す語長情報、及び該第一の記憶手段に該データを格納するときに該データが配置される該第一の記憶手段の該データについての格納領域内での位置を示す配置情報に基づいて前記データの並べ替えを行うことを特徴とする付記５に記載のデータ処理装置。
【００７１】
（付記８）　前記第四のデータアライン手段は、前記演算手段による演算の対象として前記第一の記憶手段から読み出されるデータの並べ替えを更に行うことを特徴とする付記５に記載のデータ処理装置。
【００７２】
（付記９）　データ処理装置に設けられており命令に従った演算が行われる演算部から該演算の結果として出力されたデータであって第一の記憶部に格納される該データの並べ替えを行い、
前記第一の記憶部から読み出されたデータであって前記データ処理装置におけるキャッシュメモリとして機能する第二の記憶部に格納される該データの並べ替えを行う、
ことを特徴とする格納データのアライン方法。
【００７３】
（付記１０）　前記第二の記憶部に格納されるデータの並べ替えでは、該第二の記憶部に該データを格納するときのエンディアンを特定する指示を示す情報に基づいて該並べ替えを行い、
前記第一の記憶部に格納されるデータの並べ替えでは、該第一の記憶部に該データを格納するときの該データの語長を示す語長情報、及び該第一の記憶部に該データを格納するときに該データが配置される該第一の記憶部の該データについての格納領域内での位置を示す配置情報に基づいて該並べ替えを行うと共に、該語長情報及び該配置情報に基づき、該格納領域内において該データが配置されない位置に該データと同一のデータを複写して配置する、
ことを特徴とする付記９に記載の格納データのアライン方法。
【００７４】
【発明の効果】
以上詳細に説明したように、本発明は、データ処理装置に設けられており命令に従った演算が行われる演算部から該演算の結果として出力されたデータであって第一の記憶部に格納される該データの並べ替えを行い、該第一の記憶部から読み出されたデータであって該データ処理装置におけるキャッシュメモリとして機能する第二の記憶部に格納される該データの並べ替えを行うようにする。
【００７５】
こうすることにより、本発明によれば、第二の記憶部へ格納されるデータの並べ替えのための作業量が軽減されるので、このデータの並べ替えを行わせるための回路構成の簡素化が可能となり、その結果データの伝送遅延に関するキャッシュメモリによる要求を比較的容易に充足させることができるようになるという効果を奏する。
【図面の簡単な説明】
【図１】本発明を実施するデータ処理装置の構成を示す図である。
【図２】アライン回路１２に行わせるデータコピーを説明する図である。
【図３】アラインコードが左詰めを示している場合にアライン回路１２で行われるデータの並べ替えの様子を示す図である。
【図４】アラインコードが右詰めを示している場合にアライン回路１２で行われるデータの並べ替えの様子を示す図である。
【図５】アライン回路１２での並べ替えにおける入力バイト位置と出力バイト位置との対応関係を示す図である。
【図６】アライン回路１５で行わせるエンディアンの指示に応じたデータの並べ替えを説明する図である。
【図７】アラインコードが左詰めを示している場合にアライン回路１２で並べ替えられたデータに対して行われるアライン回路１５による並べ替えの様子を示す図である。
【図８】アラインコードが右詰めを示している場合にアライン回路１２で並べ替えられたデータに対して行われるアライン回路１５による並べ替えの様子を示す図である。
【図９】アライン回路２１で行わせるエンディアンの指示に応じたデータの並べ替えを説明する図である。
【図１０】従来のデータ処理装置の構成を示す図である。
【符号の説明】
１１、１０１　演算部
１２、１５、１７、２１、１０４、１０９　アライン回路
１３、１０２　ストアバッファ
１４、１９、２０、１０３、１０７、１０８　データセレクタ
１６、１０５　キャッシュメモリ
１８、１０６　バッファ
【図１】
2004038339.tif 000003
【図２】
2004038339.tif 000004
【図３】
2004038339.tif 000005
【図４】
2004038339.tif 000006
【図５】
2004038339.tif 000007
【図６】
2004038339.tif 000008
【図７】
2004038339.tif 000009
【図８】
2004038339.tif 000010
【図９】
2004038339.tif 000011
【図１０】
2004038339.tif 000012