(57)【要約】【課題】  プロセッサ中で未アライメントデータを読み取る装置及び方法の提供。【解決手段】  未アライメントデータは記憶装置に保存され、ロードコンバインレジスタが記憶装置に結合され、読み取ったデータを暫時保存し、移動装置がロードコンバインレジスタ及び記憶装置に結合されて保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、制御装置が第１ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第２ワードをキャプチャし、該移動装置が第１ワードと第２ワードを直列に接続し、並びに第１位置に移動し、該制御装置が第３ワードをキャプチャし、該移動装置が該第２ワードと第３ワードを直列に接続し、並びに第１位置に移動する。【選択図】        図４
2005267209.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分及び第３部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第１移動ステップ、終了キャプチャステップ、第２移動ステップを具え、
該開始キャプチャステップでは第１命令を実行し、該第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし、
該中継キャプチャステップでは、第２命令を実行し、該第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、
該第１移動ステップでは、第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させ、
該終了キャプチャステップでは、第３命令を実行し、第３部分を具えた該記憶装置の部分より、第３ワードをキャプチャし、
該第２移動ステップでは、第２ワードと第３ワードを直列に接続し、並びに第１位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項２】
請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、
第１ワードの代わりに第２ワードを使用し、並びに第２命令を実行し、第２部分を具えた記憶装置の部分より、第２ワードをキャプチャする、連続中継キャプチャステップと、  第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させる第３移動ステップと、
を更に具えたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項３】
請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項４】
請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項５】
請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分及び第３部分がｍビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項６】
請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分がｍビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項７】
請求項２記載のプロセッサ中で未アライメントデータを読み取る方法において、ｍが３２とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項８】
請求項７記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップ、第３移動ステップではそれぞれ左向きに８ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項９】
請求項７記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップ、第３移動ステップではそれぞれ左向きに１６ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１０】
請求項７記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップ、第３移動ステップではそれぞれ左向きに２４ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１１】
プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第１移動ステップを具え、
該開始キャプチャステップでは第１命令を実行し、該第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし、
該中継キャプチャステップでは、第２命令を実行し、該第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、
該第１移動ステップでは、第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１２】
請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１３】
請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１４】
請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分及び第２部分がｍビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１５】
請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分がｍビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１６】
請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、ｍが３２とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１７】
請求項１６記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップではそれぞれ左向きに８ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１８】
請求項１６記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップではそれぞれ左向きに１６ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項１９】
請求項１６記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップではそれぞれ左向きに２４ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
【請求項２０】
プロセッサ中で未アライメントデータを読み取る装置であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分及び第３部分に分割され、この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具え、
該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、
該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、  該制御装置は第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、該移動装置で第１ワードと第２ワードを直列に接続し、並びに第１位置に移動し、該第３部分を具えた記憶装置の部分より、第３ワードをキャプチャし、該移動装置で第２ワードと第３ワードを直列に接続し、並びに第１位置に移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２１】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２２】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２３】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、第１部分及び第３部分がｍビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２４】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、第１部分がｍビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２５】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、ｍが３２とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２６】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに８ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２７】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに１６ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【請求項２８】
請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに２４ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理の技術領域に係り、特に、一種のプロセッサ中で未アライメントデータを読み取る装置及び方法に関する。
【背景技術】
【０００２】
プロセッサがデータ処理する時、データがアライメントしているか否かは多くのキー演算の機能、例えばストリング、アレイ等の演算の機能に関係する。図１に示されるように、処理を必要とするデータ（ＡＢＣＤＥＦＧＨＩＪＫＬ）は往々にしてデータ保存境界を跨ぎ、プロセッサでこのデータにストリング或いはアレイ演算を行なう時、先ず多くの余分の演算を行なって、このデータをアラインした形式に還元した後でなければ、プロセッサはこのデータに関係するアプリケーションを進行できない。
【０００３】
処理データの未アライメントの問題に対して、周知の技術によると、データをプロセッサにロードした後、さらに各種のプロセッサ命令操作を利用して必要なデータを得ている。図２に示されるように、先ず１００ｈ部分に位置するデータ（ＺＡＢＣ）をレジスタＲ１６中にロードし、レジスタＲ１６を左に８ビット移動して不必要なデータ（Ｚ）を除去し、さらに１０４ｈ部分に位置するデータ（ＤＥＦＧ）をレジスタＲ１７中にロードし、並びにＲ１７を右に２４ビット移動して不必要なデータ（ＥＦＧ）を除去し、最後にレジスタＲ１６とレジスタＲ１７にＯＲ演算を行ない並びにその結果をレジスタＲ１６中に保存し、このときレジスタＲ１６中の内容は処理を必要とするデータ（ＡＢＣＤ）となる。以上と同じステップにより、データＥＦＧＨ及びＩＪＫＬを順にレジスタＲ１７とレジスタＲ１８中にロードする。
【０００４】
以上の説明から分かるように、ロードが必要な未アライメントデータの長さがｎ個ワード（一つのワードは３２ビット）であれば、周知の方法によると、５ｎ個の命令が無ければ読み取り動作を記述できず、また少なくとも５ｎの命令周期がなければ読み取り動作を完成できない。このためプログラムコードが冗長となり、保存空間を占拠し、またプロセッサの負担を増してプロセッサの効率が明らかでなくなる。
【０００５】
周知の方法の、プロセッサ命令を使用して未アライメントデータを処理するために引き起こされるプログラムコードの冗長及び効率の問題に対して、特許文献１には、未アライメントデータをロードすると同時にアライメント動作を行ない、並びに境界を跨ぐデータを二回に分けて読み取る方法が記載されている。図３に示されるように、この方法によると、まず１０１ｈから１０３ｈ部分のデータ（ＡＢＣ）をレジスタＲ１６のバイト０、１、２中にロードし、この時、レジスタＲ１６のバイト３中のデータはＸ（ｄｏｎ’ｔ  ｃａｒｅ）とされ、さらに１０４ｈ部分に位置するデータ（Ｄ）がＲ１６のバイト３中にロードされ、このときレジスタＲ１６中の内容は処理が必要なデータ（ＡＢＣＤ）となる。これと同じステップにより、順にデータＥＦＧＨ及びＩＪＫＬをレジスタＲ１７及びレジスタＲ１８中にロードする。
【０００６】
【特許文献１】米国特許第４，８１４，９７６号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
以上の説明から分かるように、特許文献１に記載の技術によると、もしロードが必要な未アライメントデータの長さがｎ個ワードであれば、２ｎ個の命令がなければ読み取り動作を記述できず、また少なくとも２ｎ個の命令周期がなければ読み取り動作を完成できない。且つ同一メモリとレジスタの位置に対して重複して読み書きするため、プロセッサにパイプライン遅滞（ｓｔａｌｌ）を引き起こす可能性が高まる。
【０００８】
ゆえに本発明は一種のプロセッサ中で未アライメントデータを読み取る装置及び方法を提供し、周知の技術の、多くの命令を使用しなければ読み取り動作を記述できない問題を解決すると共に、命令周期を減らして読み取り動作を完成できるようにし、実行効率を高めることを目的とする。
【課題を解決するための手段】
【０００９】
請求項１の発明は、プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分及び第３部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第１移動ステップ、終了キャプチャステップ、第２移動ステップを具え、
該開始キャプチャステップでは第１命令を実行し、該第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし、
該中継キャプチャステップでは、第２命令を実行し、該第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、
該第１移動ステップでは、第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させ、
該終了キャプチャステップでは、第３命令を実行し、第３部分を具えた該記憶装置の部分より、第３ワードをキャプチャし、
該第２移動ステップでは、第２ワードと第３ワードを直列に接続し、並びに第１位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項２の発明は、請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、
第１ワードの代わりに第２ワードを使用し、並びに第２命令を実行し、第２部分を具えた記憶装置の部分より、第２ワードをキャプチャする、連続中継キャプチャステップと、  第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させる第３移動ステップと、
を更に具えたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項３の発明は、請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項４の発明は、請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項５の発明は、請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分及び第３部分がｍビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項６の発明は、請求項１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分がｍビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項７の発明は、請求項２記載のプロセッサ中で未アライメントデータを読み取る方法において、ｍが３２とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項８の発明は、請求項７記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップ、第３移動ステップではそれぞれ左向きに８ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項９の発明は、請求項７記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップ、第３移動ステップではそれぞれ左向きに１６ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１０の発明は、請求項７記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップ、第３移動ステップではそれぞれ左向きに２４ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１１の発明は、プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第１移動ステップを具え、
該開始キャプチャステップでは第１命令を実行し、該第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし、
該中継キャプチャステップでは、第２命令を実行し、該第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、
該第１移動ステップでは、第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１２の発明は、請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１３の発明は、請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１４の発明は、請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分及び第２部分がｍビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１５の発明は、請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、第１部分がｍビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１６の発明は、請求項１１記載のプロセッサ中で未アライメントデータを読み取る方法において、ｍが３２とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１７の発明は、請求項１６記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップではそれぞれ左向きに８ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１８の発明は、請求項１６記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップではそれぞれ左向きに１６ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項１９の発明は、請求項１６記載のプロセッサ中で未アライメントデータを読み取る方法において、第１移動ステップ、第２移動ステップではそれぞれ左向きに２４ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項２０の発明は、プロセッサ中で未アライメントデータを読み取る装置であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分及び第３部分に分割され、この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具え、
該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、
該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、  該制御装置は第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、該移動装置で第１ワードと第２ワードを直列に接続し、並びに第１位置に移動し、該第３部分を具えた記憶装置の部分より、第３ワードをキャプチャし、該移動装置で第２ワードと第３ワードを直列に接続し、並びに第１位置に移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２１の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２２の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２３の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、第１部分及び第３部分がｍビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２４の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、第１部分がｍビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２５の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、ｍが３２とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２６の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに８ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２７の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに１６ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項２８の発明は、請求項２０記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに２４ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
【発明の効果】
【００１０】
もし読み取りが必要な未アライメントデータがｎ個ワードであれば、本発明の技術はただ（ｎ＋１）個の命令周期があれば読み取り動作を完成でき、大幅に実行効率を高めることができる。且つ同一メモリとレジスタ位置に対して重複した読み書きを行なわず、プロセッサの遅滞（ｓｔａｌｌ）の可能性を減らし、同一メモリ位置に対して只一度の読み取りが必要であり、バス周波数幅を減らし、バスの周波数幅の使用を最適化する。
【００１１】
総合すると、本発明はその目的、手段、機能のいずれにおいても周知の技術の特徴とは異なっており、極めて実用価値を有している。
【発明を実施するための最良の形態】
【００１２】
本発明はプロセッサ中で未アライメントデータを読み取る方法を提供し、そのうち、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分及び第３部分に分割される。この方法は、開始キャプチャステップ、中継キャプチャステップ、第１移動ステップ、終了キャプチャステップ、第２移動ステップを具えている。該開始キャプチャステップでは第１命令を実行し、該第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャする。該中継キャプチャステップでは、第２命令を実行し、該第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャする。該第１移動ステップでは、第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させる。該終了キャプチャステップでは、第３命令を実行し、第３部分を具えた該記憶装置の部分より、第３ワードをキャプチャする。該第２移動ステップでは、第２ワードと第３ワードを直列に接続し、並びに第１位置に移動させる。
【００１３】
本発明はまたプロセッサ中で未アライメントデータを読み取る方法を提供し、そのうち、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分に分割される。この方法は、開始キャプチャステップ、中継キャプチャステップ、第１移動ステップを具えている。該開始キャプチャステップでは第１命令を実行し、該第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャする。該中継キャプチャステップでは、第２命令を実行し、該第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャする。該第１移動ステップでは、第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させる。
【００１４】
本発明はまた、プロセッサ中で未アライメントデータを読み取る装置を提供する。そのうち、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のｍビットのワードに分割され、未アライメントデータはワード境界により、第１部分、第２部分及び第３部分に分割される。この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具えている。該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行なう。該制御装置は第１部分を具えた該記憶装置の部分より、第１ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第２部分を具えた該記憶装置の部分より、第２ワードをキャプチャし、該移動装置で第１ワードと第２ワードを直列に接続し、並びに第１位置に移動し、該第３部分を具えた記憶装置の部分より、第３ワードをキャプチャし、該移動装置で第２ワードと第３ワードを直列に接続し、並びに第１位置に移動する。
【実施例１】
【００１５】
図４は本発明のプロセッサ中で未アライメントデータを読み取る装置及び方法のブロック図である。それは、記憶装置１００、ロードコンバインレジスタ２００（Ｌｏａｄ  Ｃｏｍｂｉｎｅ  Ｒｅｇｉｓｔｅｒ；ＬＤＣＲ）、移動装置３００及び制御装置４００を具えている。そのうち、該記憶装置１００はワード境界により複数のｍビットのワードに分割され、本実施例ではｍは３２ビットとされ、即ち該記憶装置１００は複数の３２ビットのワードで組成されている。この未アライメントデータ（ＡＢＣＤＥＦＧＨＩＪＫＬ）は記憶装置１００に保存され、並びにワード境界により第１部分１１０、第２部分１２０、第３部分１３０に分割されている。
【００１６】
該ロードコンバインレジスタ２００は該記憶装置１００に結合され、記憶装置１００より読み取ったデータを暫時保存する。該移動装置３００は該ロードコンバインレジスタ２００と記憶装置１００に結合され、未アライメントデータの保存アドレスにより、該ロードコンバインレジスタ２００及び記憶装置１００に対して移動を実行する。該移動装置３００の移動方式は、シフト（Ｓｈｉｆｔ）或いは回転（Ｒｏｔａｔｅ）方式とされうる。
【００１７】
該制御装置４００は第１部分１１０を具えた該記憶装置の部分より、第１ワードをキャプチャし並びに該ロードコンバインレジスタ２００に保存する。且つ第２部分１２０を具えた記憶装置１００の部分より第２ワードをキャプチャし、移動装置３００で該第１ワードと第２ワードを直列に接続し、並びに第１位置に移動させる。さらに第３部分１３０を具えた該記憶装置の部分より第３ワードをキャプチャし、該移動装置３００により第２ワードと第３ワードを直列に接続し、並びに第１位置に移動させる。
【００１８】
本発明のプロセッサ中、未アライメントデータを読み取る装置中、該制御装置４００に関係する制御信号を発生させる三つの命令が定義される。この三つの命令は、ロードコンバイン開始（Ｌｏａｄ  Ｃｏｍｂｉｎｅ  Ｂｅｇｉｎ；ＬＣＢ）、ロードコンバインワード（Ｌｏａｄ  Ｃｏｍｂｉｎｅ  Ｗｏｒｄ；ＬＣＷ）、ロードコンバイン終了（Ｌｏａｄ  Ｃｏｍｂｉｎｅ  Ｅｎｄ；ＬＣＥ）である。その形式は図５に示されるようである。
【００１９】
ＬＣＢ〔Ａｄｄｒ〕命令はアドレスをＡｄｄｒとするメモリ内容をロードコンバインレジスタ２００（ＬＤＣＲ）中にロードし、図６に示されるように、ＬＣＢ〔１０１〕はメモリ１０１部分の内容（ＡＢＣ）を該ロードコンバインレジスタ２００中にロードする。
【００２０】
ＬＣＷ  ｒＤ〔Ａｄｄｒ〕命令は図７に示されるように、アドレスをＡｄｄｒ部分とするメモリ内容とロードコンバインレジスタ２００（ＬＤＣＲ）中の内容を結合させ、並びに該Ａｄｄｒにより左向きに移動させた後、レジスタｒＤ中に書き込み、並びにアドレスをＡｄｄｒ部分とするメモリ内容を該ロードコンバインレジスタ２００（ＬＤＣＲ）中にロードする。そのうち、Ａｄｄｒが４Ｎである時、移動させず、Ａｄｄｒが４Ｎ＋１である時、左に８ビット移動させ、該Ａｄｄｒが４Ｎ＋２である時、左に１６ビット移動させ、該Ａｄｄｒが４Ｎ＋３である時、左に２４ビット移動させる。
【００２１】
ＬＣＥ  ｒＤ，〔Ａｄｄｒ〕命令は図８に示されるようである。そのうち、該Ａｄｄｒが４Ｎである時、ロードコンバインレジスタ２００（ＬＤＣＲ）中の内容は直接レジスタｒＤ中に書き込まれるが、アドレスがＡｄｄｒ部分であるメモリ内容は該ロードコンバインレジスタ２００（ＬＤＣＲ）中に書き込まない。Ａｄｄｒが４Ｎでない時、アドレスがＡｄｄｒ部分であるメモリ内容と該ロードコンバインレジスタ２００（ＬＤＣＲ）中の内容は結合され、並びに該Ａｄｄｒにより左向きに移動させられ、該レジスタｒＤ中に書き込まれ、並びにアドレスがＡｄｄｒ部分であるメモリ内容はロードコンバインレジスタ２００（ＬＤＣＲ）中に書き込まれる。そのうち、該Ａｄｄｒが４Ｎ＋１である時、左に８ビット移動させ、該Ａｄｄｒが４Ｎ＋２である時、左に１６ビット移動させ、該Ａｄｄｒが４Ｎ＋３である時、左に２４ビット移動させる。
【００２２】
図９はこのＬＣＢ〔Ａｄｄｒ〕、ＬＣＷ  ｒＤ、〔Ａｄｄｒ〕及びＬＣＥ  ｒＤの〔Ａｄｄｒ〕命令が二種類のデータ配列方式（ｌｉｔｔｌｅ  ｅｎｄｉａｎ、ｂｉｇ  ｅｎｄｉａｎ）にある時の各種の実行状況を示す。そのうち、該ロードコンバインレジスタ２００（ＬＤＣＲ）中のデータはａｂｃｄとされ、メモリ中のデータはＡＢＣＤとされ、ｓ＝０はアクセスメモリアドレスが４Ｎであることを代表し、ｓ＝１はアクセスメモリアドレスが４Ｎ＋１であることを代表し、ｓ＝２はアクセスメモリアドレスが４Ｎ＋２であることを代表し、ｓ＝３はアクセスメモリアドレスが４Ｎ＋３であることを代表する。図９中、４Ｎ＝１００を例としている。
【００２３】
図１０は本発明の応用例表示図である。一組の未アライメントデータ（ＡＢＣＤＥＦＧＨＩＪＫＬ）をレジスタＲ１６、Ｒ１７、Ｒ１８中にロードする時、先ずＬＣＢ〔１０１ｈ〕命令を実行し、記憶装置１００中のアドレス１０１ｈ部分に位置するデータ（ＺＡＢＣ）をロードコンバインレジスタ２００（ＬＤＣＲ）中にロードし、ＬＣＢ〔１０１ｈ〕命令の実行を終えた後、該ロードコンバインレジスタ２００の内容はＺＡＢＣ（〔ＬＤＣＲ〕＝ＺＡＢＣ）となる。さらにＬＣＷ  Ｒ１６，〔１０５ｈ〕命令を実行し、アドレス１０５ｈ部分のメモリ内容（ＤＥＦＧ）とロードコンバインレジスタ２００中の内容（ＺＡＢＣ）を結合させてＺＡＢＣＤＥＦＧとなし、並びにこのアドレス（１０５ｈ）により左に８ビット移動させた後のハイ３２ビット（ＡＢＣＤ）を、レジスタＲ１６中に書き込み、並びにアドレスが１０５ｈ部分のメモリ内容をロードコンバインレジスタ２００中にロードし、ゆえにこのＬＣＷ  Ｒ１６〔１０５ｈ〕命令を実行完了後、レジスタＲ１６の内容はＡＢＣＤとなり、このロードコンバインレジスタ２００の内容はＤＥＦＧ（〔ＬＤＣＲ〕＝ＤＥＦＧ）となる。
【００２４】
その後、さらにＬＣＷ  Ｒ１７，〔１０９ｈ〕命令を実行し、アドレスが１０９ｈである部分のメモリ内容（ＨＩＪＫ）と該ロードコンバインレジスタ２００（ＬＤＣＲ）中の内容（ＤＥＦＧ）を結合してＤＥＦＧＨＩＪＫとなし、並びにこのアドレス（１０９ｈ）により左に８ビット移動させた後のハイ３２ビット（ＥＦＧＨ）を、該レジスタＲ１７中に書き込み、並びにアドレスが１０９ｈ部分であるメモリ内容を該ロードコンバインレジスタ２００（ＬＤＣＲ）中にロードし、ゆえにＬＣＷ  Ｒ１７，〔１０９ｈ〕命令実行完了後に、レジスタＲ１７の内容はＥＦＧＨとされ、このロードコンバインレジスタ２００の内容はＨＩＪＫ（〔ＬＤＣＲ〕＝ＨＩＪＫ）となる。
【００２５】
最後に、ＬＣＥ  Ｒ１８，〔１０Ｄｈ〕命令を実行し、アドレスが１０Ｄｈ部分のメモリ内容（ＬＺＺＺ）とロードコンバインレジスタ２００（ＬＤＣＲ）中の内容（ＨＩＪＫ）を結合してＨＩＪＫＬＺＺＺとなし、並びにアドレス（１０９ｈ）により左に８ビット移動させた後のハイ３２ビット（ＩＪＫＬ）を、レジスタＲ１８中に書き込み、且つアドレスが１０Ｄｈ部分であるメモリ内容を該ロードコンバインレジスタ２００（ＬＤＣＲ）中にロードし、ゆえにＬＣＥ  Ｒ１８，〔１０Ｄｈ〕命令実行完了後に、レジスタＲ１８の内容はＩＪＫＬとされ、このロードコンバインレジスタ２００の内容はＬＺＺＺ（〔ＬＤＣＲ〕＝ＬＺＺＺ）となる。
【００２６】
図１１は本発明の別の応用例表示図である。一組の未アライメントデータ（ＡＢＣＤ）をレジスタＲ１６中にロードする時、まずＬＣＢ〔１０１ｈ〕命令を実行し、記憶装置１００中のアドレスが１０１ｈ部分のデータ（ＺＡＢＣ）をロードコンバインレジスタ２００（ＬＤＣＲ）中にロードし、ＬＣＢ〔１０１ｈ〕命令実行完了後、該ロードコンバインレジスタ２００の内容はＺＡＢＣ（〔ＬＤＣＲ〕＝ＺＡＢＣ）となる。
【００２７】
さらにＬＣＥ  Ｒ１６，〔１０５ｈ〕命令を実行し、アドレスが１０５ｈである部分に含まれるメモリ内容（Ｄ）と該ロードコンバインレジスタ２００（ＬＤＣＲ）中の内容（ＺＡＢＣ）を結合してＺＡＢＣＤＺＺＺとなし、並びに該アドレス（１０５ｈ）により左に８ビット移動させた後のハイ３２ビット（ＡＢＣＤ）を、該レジスタＲ１６に書き込み、並びにアドレスが１０５ｈである部分のメモリ内容を該ロードコンバインレジスタ２００にロードし、ＬＣＥ  Ｒ１６〔１０５ｈ〕命令の実行完了後に、レジスタＲ１６の内容はＡＢＣＤとされ、該ロードコンバインレジスタ２００の内容はＤＺＺＺ（〔ＬＤＣＲ〕＝ＤＺＺＺ）となる。
【図面の簡単な説明】
【００２８】
【図１】未アライメントデータのメモリ中での配列の表示図である。
【図２】周知の技術において一組の未アライメントデータをロードするプログラムコード表示図である。
【図３】別の周知の技術において、一組の未アライメントデータをロードするプログラムコード及びレジスタの表示図である。
【図４】本発明のプロセッサ中で未アライメントデータを読み取るブロック図である。
【図５】本発明の技術の命令形式表示図である。
【図６】本発明の技術のＬＣＢ命令の表示図である。
【図７】本発明の技術のＬＣＷ命令の表示図である。
【図８】本発明の技術のＬＣＥ命令の表示図である。
【図９】本発明の技術のＬＣＢ、ＬＣＷ、ＬＣＥ命令の実行状況表示図である。
【図１０】本発明の応用例表示図である。
【図１１】本発明の別の応用例表示図である。
【符号の説明】
【００２９】
１００  記憶装置                        １１０  第１部分
１２０  第２部分                        １３０  第３部分
２００  ロードコンバインレジスタ        ３００  移動装置
４００  制御装置
【図１】
2005267209.tif 000003
【図２】
2005267209.tif 000004
【図３】
2005267209.tif 000005
【図４】
2005267209.tif 000006
【図５】
2005267209.tif 000007
【図６】
2005267209.tif 000008
【図７】
2005267209.tif 000009
【図８】
2005267209.tif 000010
【図９】
2005267209.tif 000011
【図１０】
2005267209.tif 000012
【図１１】
2005267209.tif 000013