(57)【特許請求の範囲】
【請求項１】
Ｎを偶数としてＮビット幅のデータを複数保持する記憶装置に対してロードを行う情報処理装置であって、前記記憶装置をアクセスするためのアドレスを生成するアドレス生成装置と、前記記憶装置からロードしたデータをデータ転送バスへ供給するバス制御装置とを具備し、前記アドレス生成装置は、Ｎビット幅のアドレス値以外にＮ／２ビット幅のアドレス値も生成可能に構成され、前記バス制御装置は、アクセス命令がＮ／２ビット幅データアクセス命令でないと判別した場合は前記記憶装置からロードしたＮビット幅のデータを転送バスへ供給し、アクセス命令がＮ／２ビット幅データアクセス命令あると判別した場合は前記アドレス生成装置にて生成されたＮ／２ビット幅のアドレス値にもとづき、前記Ｎビット幅のデータのうち、上位のＮ／２ビット幅と下位のＮ／２ビット幅とのいずれかを選択的に転送バスへ供給するように構成されていることを特徴とする情報処理装置。
【請求項２】
アドレス生成装置にて生成されたアドレス値の最下位ビットを反転させる反転装置を具備していることを特徴とする請求項１記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理装置に関し、特に一般のプロセッサにおいてメモリ等の記憶装置に対するアクセスを行う情報処理装置に関する。
【０００２】
【従来の技術】
まず、説明の簡略化のため、以下特に断りがない限りデータの幅Ｎ＝１６ビットとし説明する。また、８ビットデータは「バイトデータ」と表現する。また、バイトデータのアクセス方法は一般に言うビッグエンディアン式とする。
【０００３】
１６ビットのマイクロコンピュータでは上記のようにＮ＝１６ビットであるが、例えば画像処理においては画像データ群をバイト（Ｎ＝８）単位で処理することが多い。しかしながら従来の情報処理装置においては、記憶装置から１６ビット単位でしかデータを読み出せないため、読み出した１６ビットデータの上位８ビット、下位８ビットのどちらをリードするのかを判断し、シフト処理や論理演算によってデータを加工することで８ビットデータを作成しなければならない。
【０００４】
情報処理装置において、プロセッサにより１６ビットの主記憶装置から８ビットデータを読み出すには、プロセッサのプログラム側で読み出しの制御を行う。これを、図４と図５を用いて以下に説明する。
【０００５】
図４は従来の情報処理装置の構成例を示したものである。図中、４０１はプロセッサ側の命令で制御される命令制御装置、４０２は記憶装置用のアドレスを生成するアドレス生成装置、４０３は記憶装置、４０４は記憶装置４０３からロードしたデータを転送バス４０５へ出力するバス制御装置である。４０６は、アドレス生成装置４０２にて生成されたアドレス値である。４０４Ａ、４０４Ｂはバス制御装置４０４内のセレクタで、それぞれ、二つの入力のうちの一方を選択して出力する。
【０００６】
図５は命令制御装置４０１での命令制御フローである。ここで、バイトアクセスのためのアドレス値は本発明の主旨とする改善点ではないため、既にアドレス生成装置４０２に設定されているものとする。バイトデータのアクセスを行うためには、命令制御装置４０１によって下記の命令を実行する。
【０００７】
ＳＴＥＰ１：アドレス値比較命令５０１を発行し、アドレスの最下位ビットが０であるか１であるかを確認する。
ＳＴＥＰ２：アドレスの最下位ビットの０か１かに合わせた分岐命令５０２を実行する。
【０００８】
ＳＴＥＰ３：アドレスの最下位ビットが１の場合には、１６ビットの上位８ビットのバイトデータを読み出す上位バイトデータ読み出し命令５０３を発行し、またアドレスの最下位ビットが０の場合には１６ビットの下位８ビットのバイトデータを読み出す下位バイトデータ読み出し命令５０４を発行して、バイトデータを読み出す。
【０００９】
このＳＴＥＰ３の上位（または下位）バイトデータ読み出し命令５０３（または５０４）により、図４の記憶装置４０３における、アドレス生成装置４０２の出力するアドレス値ＡＤＲ［ｍ−１：０］（ｍは記憶装置のアドレス空間に依存して変わる）のアドレスに存在するデータＤＡＴＡ［１５：０］を、この記憶装置４０３から読み出す。読み出されたデータＤＡＴＡ［１５：０］は、バス制御装置４０４が受け取る。バス制御装置４０４では、セレクタ４０４Ａが、読み出されたデータＤＡＴＡ［１５：０］について、命令制御装置４０１からの下位バイト指示信号４０７を元に、この下位バイト指示信号が０ならば上位ＤＡＴＡ［１５：８］を選択し、また下位バイト指示信号が１ならば下位ＤＡＴＡ［７：０］を選択して出力（出力をＢＹＴＥ［７：０］とする）する。
【００１０】
バス制御装置４０４におけるセレクタ４０４Ｂは、命令制御装置４０１からのバイトアクセス信号４０８を元に、記憶装置４０３から読み出したデータを、上記のように８ビットのバイトデータに分けて出力するか、あるいは１６ビットのデータのまま出力するかを選択する。すなわち、命令制御装置４０１からのバイトアクセス信号４０８が１なら出力ＢＹＴＥ［７：０］を選択し、バイトアクセス信号４０８が０なら通常アクセスとしてＤＡＴＡ［１５：０］を選択して、転送バス４０５へ出力する。
【００１１】
従来の情報処理装置では、上記のようにしてバイトアクセスを実現する。
【００１２】
【発明が解決しようとする課題】
しかしながら、上記従来の技術では、バイトアクセスを行うためには、命令制御装置４０１の命令で図５に示すようにアドレス値判定、分岐を制御する必要があり、命令制御装置４０１のオーバーヘッドが大きくなっていた。
【００１３】
また、バイトアクセスでは一般にビッグエンディアン、リトルエンディアンという２種類のアクセス方法があるが、ビッグエンディアンとリトルエンディアンでデータの配置が変わった場合に、命令制御装置４０１の分岐命令５０２の０と１の分岐先を入れ換える変更をしなければならないため、命令の修正が必要となる。
【００１４】
そこで本発明は、このような課題を解決して、Ｎビットのデータを扱う情報処理装置において、プロセッサの命令制御のオーバーヘッドを無くした状態でＮ／２幅のデータのアクセスを行うことができるようにすることを目的とする。また本発明は、バイトアクセスで一般に用いられるビッグエンディアンとリトルエンディアンの両方のアクセス手法を容易に切り換えることができるようにすることを目的とする。
【００１５】
【課題を解決するための手段】
本発明の情報処理装置は、前記記憶装置をアクセスするためのアドレスを生成するアドレス生成装置と、前記記憶装置からロードしたデータをデータ転送バスへ供給するバス制御装置とを具備し、前記アドレス生成装置は、Ｎビット幅のアドレス値以外にＮ／２ビット幅のアドレス値も生成可能に構成され、前記バス制御装置は、アクセス命令がＮ／２ビット幅データアクセス命令でないと判別した場合は前記記憶装置からロードしたＮビット幅のデータを転送バスへ供給し、アクセス命令がＮ／２ビット幅データアクセス命令あると判別した場合は前記アドレス生成装置にて生成されたＮ／２ビット幅のアドレス値にもとづき、前記Ｎビット幅のデータのうち、上位のＮ／２ビット幅と下位のＮ／２ビット幅とのいずれかを選択的に転送バスへ供給するように構成されているようにしたものである。
【００１６】
これによれば、Ｎビットのデータを扱うメモリ等の記憶装置において、プロセッサの命令制御のオーバーヘッドを無くした状態で、Ｎ／２ビット幅のデータのアクセスを行うことが可能である。すなわち本発明の情報処理装置は、命令制御装置の制御ではなくアドレス値にもとづきＮ／２ビット幅のデータの選択を行うことで、アドレス値の判定、分岐を不要とし、命令制御装置のオーバーヘッドを無くすものである。
【００１７】
また本発明の情報処理装置は、アドレス生成装置にて生成されたアドレス値の最下位ビットを反転させる反転装置を具備しているようにしたものである。
これによれば、アドレス値の最下位ビットに対して排他的論理和という非常に簡単な反転制御装置を追加することで、ビッグエンディアンとリトルエンディアンの切り替えを容易に実現可能となる。
【００１８】
【発明の実施の形態】
（第一の実施の形態）
以下に、本発明の第一の実施の形態について、図１、図２を用いて説明する。
【００１９】
図１は本発明の第一の実施の形態の情報処理装置の構成例を示したものである。図中、１０１はＮビットすなわち１６ビットのプロセッサ側の命令で制御される命令制御装置、１０２は記憶装置用のアドレスを生成するアドレス生成装置である。アドレス生成装置１０２は、Ｎビット（１６ビット）のみならずＮ／２ビットすなわち８ビットのアドレスをも生成可能に構成されるとともに、バイトアドレスの変換を行うためのセレクタ１０２Ａを有する。１０２Ｂは、アドレス生成装置１０２にて生成されたバイトアドレス値である。１０３は記憶装置、１０４は記憶装置１０３からロードしたデータを転送バス１０５へ出力するバス制御装置である。１０４Ａ、１０４Ｂはバス制御装置１０４内のセレクタで、それぞれ、二つの入力のうちの一方を選択して出力する。
【００２０】
図２は命令制御装置１０１での命令制御フローである。ここで、バイトアクセスのためのアドレス値は本発明の主旨とする改善点ではないため、既にアドレス生成装置１０２に設定されているものとする。バイトデータのアクセスを行うためには、命令制御装置１０１によって下記の命令を実行する。
【００２１】
ＳＴＥＰ１：バイトデータ読み出し命令２０１を発行し、バイトデータを読み出す。
このＳＴＥＰ１のバイトデータ読み出し命令により、アドレス生成装置１０２において、セレクタ１０２Ａによってバイトアドレス値１０２Ｂを選択する。詳細には、命令制御装置１０２からのバイトアクセス信号１０６を元に、このバイトアクセス信号１０６が０ならアドレス値ＡＤＲ［ｍ−１：０］（ｍは記憶装置のアドレス空間に依存して変わる）を選択し、バイトアクセス信号が１ならＡＤＲ［ｍ−１：１］を選択する。ここではバイトアクセスであるのでバイトアクセス信号は１でありＡＤＲ［ｍ−１：１］が選択される。
【００２２】
すると、選択されたアドレス値ＡＤＲ［ｍ−１：１］が示すデータＤＡＴＡ［１５：０］を、記憶装置１０３から読み出してバス制御装置１０４が受け取る。バス制御装置１０４では、アドレス生成装置１０２からのアドレス最下位値ＡＤＲ［０］を元に、セレクタ１０４Ａにおいて、ＡＤＲ［０］が０ならば上位ＤＡＴＡ［１５：８］を、ＡＤＲ［０］が１ならば下位ＤＡＴＡ［７：０］を選択し出力（出力をＢＹＴＥ［７：０］とする）する。これによって、１６ビットのデータＤＡＴＡ［１５：０］から、上位８ビットと下位８ビットとのいずれか一方のみを直ちに読み出すことができ、オーバーヘッドを無くすことができる。
【００２３】
セレクタ１０４Ｂは、命令制御装置１０１からのバイトアクセス信号が１ならセレクタ１０４Ａの出力である８ビットデータすなわちＢＹＴＥ［７：０］を選択し、また前記バイトアクセス信号が０なら通常アクセスとして１６ビットデータＤＡＴＡ［１５：０］を選択し転送バス１０５へ出力する。
【００２４】
本発明による情報処理装置では、上記のようにしてバイトアクセスを実現する。
なお、上記はＮ＝１６ビットに限定した説明であるが、Ｎが任意の偶数値である場合に適応可能である事は言うまでもない。
【００２５】
（第二の実施の形態）
以下に本発明の第二の実施の形態について、図２、図３を用いて説明する。
図３は本発明の第二の実施の形態の情報処理装置の構成例を示したものである。図中、反転装置２０６以外は、第一の実施の形態として示した図１の構成と同様であるので、その詳細な説明を割愛する。反転装置２０６は、アドレスの最下位ビットを反転させるように機能する。
【００２６】
第一の実施の形態と異なるのは、次の点である。すなわち、反転装置２０６からバス制御装置１０４への出力をＬＯＷＳＥＬとすると、反転動作を有効にしている場合は、アドレス生成装置１０２からバス制御装置１０４へ送られるＡＤＲ［０］の値を、この反転装置２０６において、ＡＤＲ［０］が０の場合はＬＯＷＳＥＬが１、ＡＤＲ［０］が１の場合はＬＯＷＳＥＬが０となるようにする。また、反転動作を無効にしている場合は、ＬＯＷＳＥＬへＡＤＲ［０］をそのまま代入する。
【００２７】
反転動作の有効無効は様々な方法で実現可能である。例えば、
その１：命令制御装置１０１の命令で反転有効バイトアクセス命令、反転無効バイトアクセス命令を用意し、有効無効の制御を命令制御装置１０１で行う
その２：反転装置２０６に有効無効制御ビットを設け、この有効無効制御ビットの値を適宜に設定することで有効無効の切り替えを行う
等が考えられる。
【００２８】
上記の「その１」では、命令にビッグエンディアンであるかリトルエンディアンであるかが明記されるため、両方式が切り替わった場合の命令修正が発生する。「その２」では、ビッグエンディアンであるかリトルエンディアンであるかが変わった場合でも制御ビットの設定値を変更するだけで良く、命令を修正する必要がない。
【００２９】
なお、本発明においては反転装置２０６の有効無効の設定方法をこれらに限定するものでは無い。また参考までに、反転動作をＣ言語的に記述すると以下のようになる。
ｉｆ（ＡＤＲ［０］＝＝０）｛
ＬＯＷＳＥＬ＝１；
｝
ｅｌｓｅ｛
ＬＯＷＳＥＬ＝０；
｝
なお、図３において、その他の動作は第一の実施の形態のものとまったく同様であるため、その説明を割愛する。
【００３０】
上記のようにして、本発明では、ビッグエンディアンとリトルエンディアンの切り替えを含めたバイトアクセス動作を実現することができる。
なお、上記はＮ＝１６ビットに限定した説明であるが、Ｎが任意の偶数値である場合に適応可能である事は言うまでもない。
【００３１】
【発明の効果】
本発明によれば、Ｎビット幅のデータを扱うメモリ等の記憶装置においてプロセッサの命令制御のオーバーヘッドを無くした状態でＮ／２ビット幅のデータのアクセスを行うことが可能である。
【００３２】
また、バイトアクセスで一般に用いられるビッグエンディアンとリトルエンディアンの両アクセス手法とを、制御ビットまたは命令にもとづき容易に切り替え可能である。
【図面の簡単な説明】
【図１】本発明の第一の実施の形態の情報処理装置のブロック図
【図２】図１の情報処理装置における命令制御フロー
【図３】本発明の第二の実施の形態の情報処理装置のブロック図
【図４】従来の情報処理装置のブロック図
【図５】図４の情報処理装置における命令制御フロー
【符号の説明】
１０１、４０１    命令制御装置
１０２、４０２    アドレス生成装置
１０３、４０３    記憶装置
１０４、４０４    バス制御装置
１０２Ａ、１０４Ａ、１０４Ｂ、４０４Ａ、４０４Ｂ    セレクタ
２０６    反転装置
【図１】
0004052878.tif 000002
【図２】
0004052878.tif 000003
【図３】
0004052878.tif 000004
【図４】
0004052878.tif 000005
【図５】
0004052878.tif 000006