JP2005267209A - プロセッサ中で未アライメントデータを読み取る装置及び方法 - Google Patents

プロセッサ中で未アライメントデータを読み取る装置及び方法 Download PDF

Info

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
Application number
JP2004078215A
Other languages
English (en)
Inventor
Bor-Sung Liang
伯嵩 梁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sunplus Technology Co Ltd
Original Assignee
Sunplus Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sunplus Technology Co Ltd filed Critical Sunplus Technology Co Ltd
Priority to JP2004078215A priority Critical patent/JP2005267209A/ja
Publication of JP2005267209A publication Critical patent/JP2005267209A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

【課題】 プロセッサ中で未アライメントデータを読み取る装置及び方法の提供。
【解決手段】 未アライメントデータは記憶装置に保存され、ロードコンバインレジスタが記憶装置に結合され、読み取ったデータを暫時保存し、移動装置がロードコンバインレジスタ及び記憶装置に結合されて保存アドレスにより、ロードコンバインレジスタと記憶装置に対して移動を行ない、制御装置が第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中にロードする。
米国特許第4,814,976号明細書
以上の説明から分かるように、特許文献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ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置としている。
もし読み取りが必要な未アライメントデータが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)となる。
未アライメントデータのメモリ中での配列の表示図である。 周知の技術において一組の未アライメントデータをロードするプログラムコード表示図である。 別の周知の技術において、一組の未アライメントデータをロードするプログラムコード及びレジスタの表示図である。 本発明のプロセッサ中で未アライメントデータを読み取るブロック図である。 本発明の技術の命令形式表示図である。 本発明の技術のLCB命令の表示図である。 本発明の技術のLCW命令の表示図である。 本発明の技術のLCE命令の表示図である。 本発明の技術のLCB、LCW、LCE命令の実行状況表示図である。 本発明の応用例表示図である。 本発明の別の応用例表示図である。
符号の説明
100 記憶装置 110 第1部分
120 第2部分 130 第3部分
200 ロードコンバインレジスタ 300 移動装置
400 制御装置

Claims (28)

  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ビット移動させることを特徴とする、プロセッサ中で未アライメントデータを読み取る装置。
JP2004078215A 2004-03-18 2004-03-18 プロセッサ中で未アライメントデータを読み取る装置及び方法 Pending JP2005267209A (ja)

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)

* Cited by examiner, † Cited by third party
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系统的验证方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
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