JP2005267209A - プロセッサ中で未アライメントデータを読み取る装置及び方法 - Google Patents
プロセッサ中で未アライメントデータを読み取る装置及び方法 Download PDFInfo
- Publication number
- JP2005267209A JP2005267209A JP2004078215A JP2004078215A JP2005267209A JP 2005267209 A JP2005267209 A JP 2005267209A JP 2004078215 A JP2004078215 A JP 2004078215A JP 2004078215 A JP2004078215 A JP 2004078215A JP 2005267209 A JP2005267209 A JP 2005267209A
- Authority
- JP
- Japan
- Prior art keywords
- unaligned data
- word
- reading
- processor
- storage device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
【課題】 プロセッサ中で未アライメントデータを読み取る装置及び方法の提供。
【解決手段】 未アライメントデータは記憶装置に保存され、ロードコンバインレジスタが記憶装置に結合され、読み取ったデータを暫時保存し、移動装置がロードコンバインレジスタ及び記憶装置に結合されて保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、制御装置が第1ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第2ワードをキャプチャし、該移動装置が第1ワードと第2ワードを直列に接続し、並びに第1位置に移動し、該制御装置が第3ワードをキャプチャし、該移動装置が該第2ワードと第3ワードを直列に接続し、並びに第1位置に移動する。
【選択図】 図4
【解決手段】 未アライメントデータは記憶装置に保存され、ロードコンバインレジスタが記憶装置に結合され、読み取ったデータを暫時保存し、移動装置がロードコンバインレジスタ及び記憶装置に結合されて保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、制御装置が第1ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第2ワードをキャプチャし、該移動装置が第1ワードと第2ワードを直列に接続し、並びに第1位置に移動し、該制御装置が第3ワードをキャプチャし、該移動装置が該第2ワードと第3ワードを直列に接続し、並びに第1位置に移動する。
【選択図】 図4
Description
本発明はデータ処理の技術領域に係り、特に、一種のプロセッサ中で未アライメントデータを読み取る装置及び方法に関する。
プロセッサがデータ処理する時、データがアライメントしているか否かは多くのキー演算の機能、例えばストリング、アレイ等の演算の機能に関係する。図1に示されるように、処理を必要とするデータ(ABCDEFGHIJKL)は往々にしてデータ保存境界を跨ぎ、プロセッサでこのデータにストリング或いはアレイ演算を行なう時、先ず多くの余分の演算を行なって、このデータをアラインした形式に還元した後でなければ、プロセッサはこのデータに関係するアプリケーションを進行できない。
処理データの未アライメントの問題に対して、周知の技術によると、データをプロセッサにロードした後、さらに各種のプロセッサ命令操作を利用して必要なデータを得ている。図2に示されるように、先ず100h部分に位置するデータ(ZABC)をレジスタR16中にロードし、レジスタR16を左に8ビット移動して不必要なデータ(Z)を除去し、さらに104h部分に位置するデータ(DEFG)をレジスタR17中にロードし、並びにR17を右に24ビット移動して不必要なデータ(EFG)を除去し、最後にレジスタR16とレジスタR17にOR演算を行ない並びにその結果をレジスタR16中に保存し、このときレジスタR16中の内容は処理を必要とするデータ(ABCD)となる。以上と同じステップにより、データEFGH及びIJKLを順にレジスタR17とレジスタR18中にロードする。
以上の説明から分かるように、ロードが必要な未アライメントデータの長さがn個ワード(一つのワードは32ビット)であれば、周知の方法によると、5n個の命令が無ければ読み取り動作を記述できず、また少なくとも5nの命令周期がなければ読み取り動作を完成できない。このためプログラムコードが冗長となり、保存空間を占拠し、またプロセッサの負担を増してプロセッサの効率が明らかでなくなる。
周知の方法の、プロセッサ命令を使用して未アライメントデータを処理するために引き起こされるプログラムコードの冗長及び効率の問題に対して、特許文献1には、未アライメントデータをロードすると同時にアライメント動作を行ない、並びに境界を跨ぐデータを二回に分けて読み取る方法が記載されている。図3に示されるように、この方法によると、まず101hから103h部分のデータ(ABC)をレジスタR16のバイト0、1、2中にロードし、この時、レジスタR16のバイト3中のデータはX(don’t care)とされ、さらに104h部分に位置するデータ(D)がR16のバイト3中にロードされ、このときレジスタR16中の内容は処理が必要なデータ(ABCD)となる。これと同じステップにより、順にデータEFGH及びIJKLをレジスタR17及びレジスタR18中にロードする。
以上の説明から分かるように、特許文献1に記載の技術によると、もしロードが必要な未アライメントデータの長さがn個ワードであれば、2n個の命令がなければ読み取り動作を記述できず、また少なくとも2n個の命令周期がなければ読み取り動作を完成できない。且つ同一メモリとレジスタの位置に対して重複して読み書きするため、プロセッサにパイプライン遅滞(stall)を引き起こす可能性が高まる。
ゆえに本発明は一種のプロセッサ中で未アライメントデータを読み取る装置及び方法を提供し、周知の技術の、多くの命令を使用しなければ読み取り動作を記述できない問題を解決すると共に、命令周期を減らして読み取り動作を完成できるようにし、実行効率を高めることを目的とする。
請求項1の発明は、プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップ、終了キャプチャステップ、第2移動ステップを具え、
該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし、
該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、
該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させ、
該終了キャプチャステップでは、第3命令を実行し、第3部分を具えた該記憶装置の部分より、第3ワードをキャプチャし、
該第2移動ステップでは、第2ワードと第3ワードを直列に接続し、並びに第1位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項2の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、
第1ワードの代わりに第2ワードを使用し、並びに第2命令を実行し、第2部分を具えた記憶装置の部分より、第2ワードをキャプチャする、連続中継キャプチャステップと、 第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる第3移動ステップと、
を更に具えたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項3の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項4の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項5の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分及び第3部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項6の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項7の発明は、請求項2記載のプロセッサ中で未アライメントデータを読み取る方法において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項8の発明は、請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに8ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項9の発明は、請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに16ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項10の発明は、請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに24ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項11の発明は、プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップを具え、
該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし、
該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、
該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項12の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項13の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項14の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分及び第2部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項15の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項16の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項17の発明は、請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに8ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項18の発明は、請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに16ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項19の発明は、請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに24ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項20の発明は、プロセッサ中で未アライメントデータを読み取る装置であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割され、この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具え、
該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、
該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、 該制御装置は第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、該移動装置で第1ワードと第2ワードを直列に接続し、並びに第1位置に移動し、該第3部分を具えた記憶装置の部分より、第3ワードをキャプチャし、該移動装置で第2ワードと第3ワードを直列に接続し、並びに第1位置に移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項21の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項22の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項23の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、第1部分及び第3部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項24の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項25の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項26の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに8ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項27の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに16ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項28の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに24ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし、
該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、
該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させ、
該終了キャプチャステップでは、第3命令を実行し、第3部分を具えた該記憶装置の部分より、第3ワードをキャプチャし、
該第2移動ステップでは、第2ワードと第3ワードを直列に接続し、並びに第1位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項2の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、
第1ワードの代わりに第2ワードを使用し、並びに第2命令を実行し、第2部分を具えた記憶装置の部分より、第2ワードをキャプチャする、連続中継キャプチャステップと、 第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる第3移動ステップと、
を更に具えたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項3の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項4の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項5の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分及び第3部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項6の発明は、請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項7の発明は、請求項2記載のプロセッサ中で未アライメントデータを読み取る方法において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項8の発明は、請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに8ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項9の発明は、請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに16ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項10の発明は、請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに24ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項11の発明は、プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップを具え、
該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし、
該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、
該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項12の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項13の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項14の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分及び第2部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項15の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項16の発明は、請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項17の発明は、請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに8ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項18の発明は、請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに16ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項19の発明は、請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに24ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法としている。
請求項20の発明は、プロセッサ中で未アライメントデータを読み取る装置であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割され、この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具え、
該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、
該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、 該制御装置は第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、該移動装置で第1ワードと第2ワードを直列に接続し、並びに第1位置に移動し、該第3部分を具えた記憶装置の部分より、第3ワードをキャプチャし、該移動装置で第2ワードと第3ワードを直列に接続し、並びに第1位置に移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項21の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項22の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項23の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、第1部分及び第3部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項24の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項25の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項26の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに8ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項27の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに16ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
請求項28の発明は、請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに24ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
もし読み取りが必要な未アライメントデータがn個ワードであれば、本発明の技術はただ(n+1)個の命令周期があれば読み取り動作を完成でき、大幅に実行効率を高めることができる。且つ同一メモリとレジスタ位置に対して重複した読み書きを行なわず、プロセッサの遅滞(stall)の可能性を減らし、同一メモリ位置に対して只一度の読み取りが必要であり、バス周波数幅を減らし、バスの周波数幅の使用を最適化する。
総合すると、本発明はその目的、手段、機能のいずれにおいても周知の技術の特徴とは異なっており、極めて実用価値を有している。
本発明はプロセッサ中で未アライメントデータを読み取る方法を提供し、そのうち、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割される。この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップ、終了キャプチャステップ、第2移動ステップを具えている。該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャする。該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャする。該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる。該終了キャプチャステップでは、第3命令を実行し、第3部分を具えた該記憶装置の部分より、第3ワードをキャプチャする。該第2移動ステップでは、第2ワードと第3ワードを直列に接続し、並びに第1位置に移動させる。
本発明はまたプロセッサ中で未アライメントデータを読み取る方法を提供し、そのうち、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分に分割される。この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップを具えている。該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャする。該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャする。該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる。
本発明はまた、プロセッサ中で未アライメントデータを読み取る装置を提供する。そのうち、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割される。この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具えている。該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行なう。該制御装置は第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、該移動装置で第1ワードと第2ワードを直列に接続し、並びに第1位置に移動し、該第3部分を具えた記憶装置の部分より、第3ワードをキャプチャし、該移動装置で第2ワードと第3ワードを直列に接続し、並びに第1位置に移動する。
図4は本発明のプロセッサ中で未アライメントデータを読み取る装置及び方法のブロック図である。それは、記憶装置100、ロードコンバインレジスタ200(Load Combine Register;LDCR)、移動装置300及び制御装置400を具えている。そのうち、該記憶装置100はワード境界により複数のmビットのワードに分割され、本実施例ではmは32ビットとされ、即ち該記憶装置100は複数の32ビットのワードで組成されている。この未アライメントデータ(ABCDEFGHIJKL)は記憶装置100に保存され、並びにワード境界により第1部分110、第2部分120、第3部分130に分割されている。
該ロードコンバインレジスタ200は該記憶装置100に結合され、記憶装置100より読み取ったデータを暫時保存する。該移動装置300は該ロードコンバインレジスタ200と記憶装置100に結合され、未アライメントデータの保存アドレスにより、該ロードコンバインレジスタ200及び記憶装置100に対して移動を実行する。該移動装置300の移動方式は、シフト(Shift)或いは回転(Rotate)方式とされうる。
該制御装置400は第1部分110を具えた該記憶装置の部分より、第1ワードをキャプチャし並びに該ロードコンバインレジスタ200に保存する。且つ第2部分120を具えた記憶装置100の部分より第2ワードをキャプチャし、移動装置300で該第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる。さらに第3部分130を具えた該記憶装置の部分より第3ワードをキャプチャし、該移動装置300により第2ワードと第3ワードを直列に接続し、並びに第1位置に移動させる。
本発明のプロセッサ中、未アライメントデータを読み取る装置中、該制御装置400に関係する制御信号を発生させる三つの命令が定義される。この三つの命令は、ロードコンバイン開始(Load Combine Begin;LCB)、ロードコンバインワード(Load Combine Word;LCW)、ロードコンバイン終了(Load Combine End;LCE)である。その形式は図5に示されるようである。
LCB〔Addr〕命令はアドレスをAddrとするメモリ内容をロードコンバインレジスタ200(LDCR)中にロードし、図6に示されるように、LCB〔101〕はメモリ101部分の内容(ABC)を該ロードコンバインレジスタ200中にロードする。
LCW rD〔Addr〕命令は図7に示されるように、アドレスをAddr部分とするメモリ内容とロードコンバインレジスタ200(LDCR)中の内容を結合させ、並びに該Addrにより左向きに移動させた後、レジスタrD中に書き込み、並びにアドレスをAddr部分とするメモリ内容を該ロードコンバインレジスタ200(LDCR)中にロードする。そのうち、Addrが4Nである時、移動させず、Addrが4N+1である時、左に8ビット移動させ、該Addrが4N+2である時、左に16ビット移動させ、該Addrが4N+3である時、左に24ビット移動させる。
LCE rD,〔Addr〕命令は図8に示されるようである。そのうち、該Addrが4Nである時、ロードコンバインレジスタ200(LDCR)中の内容は直接レジスタrD中に書き込まれるが、アドレスがAddr部分であるメモリ内容は該ロードコンバインレジスタ200(LDCR)中に書き込まない。Addrが4Nでない時、アドレスがAddr部分であるメモリ内容と該ロードコンバインレジスタ200(LDCR)中の内容は結合され、並びに該Addrにより左向きに移動させられ、該レジスタrD中に書き込まれ、並びにアドレスがAddr部分であるメモリ内容はロードコンバインレジスタ200(LDCR)中に書き込まれる。そのうち、該Addrが4N+1である時、左に8ビット移動させ、該Addrが4N+2である時、左に16ビット移動させ、該Addrが4N+3である時、左に24ビット移動させる。
図9はこのLCB〔Addr〕、LCW rD、〔Addr〕及びLCE rDの〔Addr〕命令が二種類のデータ配列方式(little endian、big endian)にある時の各種の実行状況を示す。そのうち、該ロードコンバインレジスタ200(LDCR)中のデータはabcdとされ、メモリ中のデータはABCDとされ、s=0はアクセスメモリアドレスが4Nであることを代表し、s=1はアクセスメモリアドレスが4N+1であることを代表し、s=2はアクセスメモリアドレスが4N+2であることを代表し、s=3はアクセスメモリアドレスが4N+3であることを代表する。図9中、4N=100を例としている。
図10は本発明の応用例表示図である。一組の未アライメントデータ(ABCDEFGHIJKL)をレジスタR16、R17、R18中にロードする時、先ずLCB〔101h〕命令を実行し、記憶装置100中のアドレス101h部分に位置するデータ(ZABC)をロードコンバインレジスタ200(LDCR)中にロードし、LCB〔101h〕命令の実行を終えた後、該ロードコンバインレジスタ200の内容はZABC(〔LDCR〕=ZABC)となる。さらにLCW R16,〔105h〕命令を実行し、アドレス105h部分のメモリ内容(DEFG)とロードコンバインレジスタ200中の内容(ZABC)を結合させてZABCDEFGとなし、並びにこのアドレス(105h)により左に8ビット移動させた後のハイ32ビット(ABCD)を、レジスタR16中に書き込み、並びにアドレスが105h部分のメモリ内容をロードコンバインレジスタ200中にロードし、ゆえにこのLCW R16〔105h〕命令を実行完了後、レジスタR16の内容はABCDとなり、このロードコンバインレジスタ200の内容はDEFG(〔LDCR〕=DEFG)となる。
その後、さらにLCW R17,〔109h〕命令を実行し、アドレスが109hである部分のメモリ内容(HIJK)と該ロードコンバインレジスタ200(LDCR)中の内容(DEFG)を結合してDEFGHIJKとなし、並びにこのアドレス(109h)により左に8ビット移動させた後のハイ32ビット(EFGH)を、該レジスタR17中に書き込み、並びにアドレスが109h部分であるメモリ内容を該ロードコンバインレジスタ200(LDCR)中にロードし、ゆえにLCW R17,〔109h〕命令実行完了後に、レジスタR17の内容はEFGHとされ、このロードコンバインレジスタ200の内容はHIJK(〔LDCR〕=HIJK)となる。
最後に、LCE R18,〔10Dh〕命令を実行し、アドレスが10Dh部分のメモリ内容(LZZZ)とロードコンバインレジスタ200(LDCR)中の内容(HIJK)を結合してHIJKLZZZとなし、並びにアドレス(109h)により左に8ビット移動させた後のハイ32ビット(IJKL)を、レジスタR18中に書き込み、且つアドレスが10Dh部分であるメモリ内容を該ロードコンバインレジスタ200(LDCR)中にロードし、ゆえにLCE R18,〔10Dh〕命令実行完了後に、レジスタR18の内容はIJKLとされ、このロードコンバインレジスタ200の内容はLZZZ(〔LDCR〕=LZZZ)となる。
図11は本発明の別の応用例表示図である。一組の未アライメントデータ(ABCD)をレジスタR16中にロードする時、まずLCB〔101h〕命令を実行し、記憶装置100中のアドレスが101h部分のデータ(ZABC)をロードコンバインレジスタ200(LDCR)中にロードし、LCB〔101h〕命令実行完了後、該ロードコンバインレジスタ200の内容はZABC(〔LDCR〕=ZABC)となる。
さらにLCE R16,〔105h〕命令を実行し、アドレスが105hである部分に含まれるメモリ内容(D)と該ロードコンバインレジスタ200(LDCR)中の内容(ZABC)を結合してZABCDZZZとなし、並びに該アドレス(105h)により左に8ビット移動させた後のハイ32ビット(ABCD)を、該レジスタR16に書き込み、並びにアドレスが105hである部分のメモリ内容を該ロードコンバインレジスタ200にロードし、LCE R16〔105h〕命令の実行完了後に、レジスタR16の内容はABCDとされ、該ロードコンバインレジスタ200の内容はDZZZ(〔LDCR〕=DZZZ)となる。
100 記憶装置 110 第1部分
120 第2部分 130 第3部分
200 ロードコンバインレジスタ 300 移動装置
400 制御装置
120 第2部分 130 第3部分
200 ロードコンバインレジスタ 300 移動装置
400 制御装置
Claims (28)
- プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップ、終了キャプチャステップ、第2移動ステップを具え、
該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし、
該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、
該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させ、
該終了キャプチャステップでは、第3命令を実行し、第3部分を具えた該記憶装置の部分より、第3ワードをキャプチャし、
該第2移動ステップでは、第2ワードと第3ワードを直列に接続し、並びに第1位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。 - 請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、
第1ワードの代わりに第2ワードを使用し、並びに第2命令を実行し、第2部分を具えた記憶装置の部分より、第2ワードをキャプチャする、連続中継キャプチャステップと、 第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させる第3移動ステップと、
を更に具えたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。 - 請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分及び第3部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項1記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項2記載のプロセッサ中で未アライメントデータを読み取る方法において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに8ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに16ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項7記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップ、第3移動ステップではそれぞれ左向きに24ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- プロセッサ中で未アライメントデータを読み取る方法であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分に分割され、この方法は、開始キャプチャステップ、中継キャプチャステップ、第1移動ステップを具え、
該開始キャプチャステップでは第1命令を実行し、該第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし、
該中継キャプチャステップでは、第2命令を実行し、該第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、
該第1移動ステップでは、第1ワードと第2ワードを直列に接続し、並びに第1位置に移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。 - 請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分及び第2部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項11記載のプロセッサ中で未アライメントデータを読み取る方法において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに8ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに16ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- 請求項16記載のプロセッサ中で未アライメントデータを読み取る方法において、第1移動ステップ、第2移動ステップではそれぞれ左向きに24ビット移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る方法。
- プロセッサ中で未アライメントデータを読み取る装置であり、未アライメントデータは一つの記憶装置に保存され、該記憶装置はワード境界により複数のmビットのワードに分割され、未アライメントデータはワード境界により、第1部分、第2部分及び第3部分に分割され、この装置は、ロードコンバインレジスタ、移動装置、及び制御装置を具え、
該ロードコンバインレジスタは該記憶装置に結合されて記憶装置より読み取ったデータを暫時保存し、
該移動装置はロードコンバインレジスタ及び記憶装置に結合されて未アライメントデータの保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、 該制御装置は第1部分を具えた該記憶装置の部分より、第1ワードをキャプチャし並びにロードコンバインレジスタに保存し、並びに第2部分を具えた該記憶装置の部分より、第2ワードをキャプチャし、該移動装置で第1ワードと第2ワードを直列に接続し、並びに第1位置に移動し、該第3部分を具えた記憶装置の部分より、第3ワードをキャプチャし、該移動装置で第2ワードと第3ワードを直列に接続し、並びに第1位置に移動することを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。 - 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップがシフト方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動ステップが回転方式とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、第1部分及び第3部分がmビットより小さいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、第1部分がmビットに等しいことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、mが32とされたことを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに8ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに16ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
- 請求項20記載のプロセッサ中で未アライメントデータを読み取る装置において、移動装置が左向きに24ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004078215A JP2005267209A (ja) | 2004-03-18 | 2004-03-18 | プロセッサ中で未アライメントデータを読み取る装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004078215A JP2005267209A (ja) | 2004-03-18 | 2004-03-18 | プロセッサ中で未アライメントデータを読み取る装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005267209A true JP2005267209A (ja) | 2005-09-29 |
Family
ID=35091700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004078215A Pending JP2005267209A (ja) | 2004-03-18 | 2004-03-18 | プロセッサ中で未アライメントデータを読み取る装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005267209A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037386A (ja) * | 2007-08-01 | 2009-02-19 | Nec Electronics Corp | プロセッサ及びプロセッサによるデータ読み出し方法 |
JP2010191511A (ja) * | 2009-02-16 | 2010-09-02 | Toshiba Corp | マイクロプロセッサ |
CN108509289A (zh) * | 2017-02-28 | 2018-09-07 | 龙芯中科技术有限公司 | 一种基于MIPS处理器vxWorks系统的验证方法和装置 |
-
2004
- 2004-03-18 JP JP2004078215A patent/JP2005267209A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009037386A (ja) * | 2007-08-01 | 2009-02-19 | Nec Electronics Corp | プロセッサ及びプロセッサによるデータ読み出し方法 |
JP2010191511A (ja) * | 2009-02-16 | 2010-09-02 | Toshiba Corp | マイクロプロセッサ |
CN108509289A (zh) * | 2017-02-28 | 2018-09-07 | 龙芯中科技术有限公司 | 一种基于MIPS处理器vxWorks系统的验证方法和装置 |
CN108509289B (zh) * | 2017-02-28 | 2021-06-29 | 龙芯中科技术股份有限公司 | 一种基于MIPS处理器vxWorks系统的验证方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3570188B2 (ja) | 可変長符号処理機構を有するデータ処理装置 | |
JPH0437927A (ja) | プロセッサの処理方法 | |
JP2005267209A (ja) | プロセッサ中で未アライメントデータを読み取る装置及び方法 | |
JP2009169767A (ja) | パイプライン型プロセッサ | |
JP2008090455A (ja) | マルチプロセッサ信号処理装置 | |
JPS60107141A (ja) | プランチ制御方式 | |
JP5068597B2 (ja) | プロセッサ及びプロセッサによるデータ読み出し方法 | |
JP2008158699A (ja) | プロセッサ | |
JPH11312085A (ja) | プロセッサ | |
US7308555B2 (en) | Processor-based structure and method for loading unaligned data | |
JP4933462B2 (ja) | 画像処理方法 | |
JP2007087244A (ja) | コプロセッサ及びコンピュータシステム | |
JP2006285721A (ja) | 演算処理装置および演算処理方法 | |
JP2009054032A (ja) | 並列プロセッサ | |
JP2006344238A (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP2002342076A (ja) | パイプライン制御方式 | |
JP2000235490A (ja) | マイクロプロセッサ | |
JP4413905B2 (ja) | Simd型プロセッサ | |
JP2982129B2 (ja) | マイクロプログラム制御装置 | |
JPH04289935A (ja) | コンピュータ装置 | |
JP2522564B2 (ja) | プログラマブルコントロ―ラ | |
JP2011103025A (ja) | データ入出力装置およびそれを用いたデータ処理装置 | |
JP2005267215A (ja) | プロセッサ中でデータを書き出す装置及び方法 | |
JPH0218732B2 (ja) | ||
JPH02183332A (ja) | プログラムド制御方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Effective date: 20050831 Free format text: JAPANESE INTERMEDIATE CODE: A523 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20051004 |