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