JP4052878B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP4052878B2 JP4052878B2 JP2002153271A JP2002153271A JP4052878B2 JP 4052878 B2 JP4052878 B2 JP 4052878B2 JP 2002153271 A JP2002153271 A JP 2002153271A JP 2002153271 A JP2002153271 A JP 2002153271A JP 4052878 B2 JP4052878 B2 JP 4052878B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- address
- byte
- instruction
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
Description
【発明の属する技術分野】
本発明は情報処理装置に関し、特に一般のプロセッサにおいてメモリ等の記憶装置に対するアクセスを行う情報処理装置に関する。
【0002】
【従来の技術】
まず、説明の簡略化のため、以下特に断りがない限りデータの幅N=16ビットとし説明する。また、8ビットデータは「バイトデータ」と表現する。また、バイトデータのアクセス方法は一般に言うビッグエンディアン式とする。
【0003】
16ビットのマイクロコンピュータでは上記のようにN=16ビットであるが、例えば画像処理においては画像データ群をバイト(N=8)単位で処理することが多い。しかしながら従来の情報処理装置においては、記憶装置から16ビット単位でしかデータを読み出せないため、読み出した16ビットデータの上位8ビット、下位8ビットのどちらをリードするのかを判断し、シフト処理や論理演算によってデータを加工することで8ビットデータを作成しなければならない。
【0004】
情報処理装置において、プロセッサにより16ビットの主記憶装置から8ビットデータを読み出すには、プロセッサのプログラム側で読み出しの制御を行う。これを、図4と図5を用いて以下に説明する。
【0005】
図4は従来の情報処理装置の構成例を示したものである。図中、401はプロセッサ側の命令で制御される命令制御装置、402は記憶装置用のアドレスを生成するアドレス生成装置、403は記憶装置、404は記憶装置403からロードしたデータを転送バス405へ出力するバス制御装置である。406は、アドレス生成装置402にて生成されたアドレス値である。404A、404Bはバス制御装置404内のセレクタで、それぞれ、二つの入力のうちの一方を選択して出力する。
【0006】
図5は命令制御装置401での命令制御フローである。ここで、バイトアクセスのためのアドレス値は本発明の主旨とする改善点ではないため、既にアドレス生成装置402に設定されているものとする。バイトデータのアクセスを行うためには、命令制御装置401によって下記の命令を実行する。
【0007】
STEP1:アドレス値比較命令501を発行し、アドレスの最下位ビットが0であるか1であるかを確認する。
STEP2:アドレスの最下位ビットの0か1かに合わせた分岐命令502を実行する。
【0008】
STEP3:アドレスの最下位ビットが1の場合には、16ビットの上位8ビットのバイトデータを読み出す上位バイトデータ読み出し命令503を発行し、またアドレスの最下位ビットが0の場合には16ビットの下位8ビットのバイトデータを読み出す下位バイトデータ読み出し命令504を発行して、バイトデータを読み出す。
【0009】
このSTEP3の上位(または下位)バイトデータ読み出し命令503(または504)により、図4の記憶装置403における、アドレス生成装置402の出力するアドレス値ADR[m−1:0](mは記憶装置のアドレス空間に依存して変わる)のアドレスに存在するデータDATA[15:0]を、この記憶装置403から読み出す。読み出されたデータDATA[15:0]は、バス制御装置404が受け取る。バス制御装置404では、セレクタ404Aが、読み出されたデータDATA[15:0]について、命令制御装置401からの下位バイト指示信号407を元に、この下位バイト指示信号が0ならば上位DATA[15:8]を選択し、また下位バイト指示信号が1ならば下位DATA[7:0]を選択して出力(出力をBYTE[7:0]とする)する。
【0010】
バス制御装置404におけるセレクタ404Bは、命令制御装置401からのバイトアクセス信号408を元に、記憶装置403から読み出したデータを、上記のように8ビットのバイトデータに分けて出力するか、あるいは16ビットのデータのまま出力するかを選択する。すなわち、命令制御装置401からのバイトアクセス信号408が1なら出力BYTE[7:0]を選択し、バイトアクセス信号408が0なら通常アクセスとしてDATA[15:0]を選択して、転送バス405へ出力する。
【0011】
従来の情報処理装置では、上記のようにしてバイトアクセスを実現する。
【0012】
【発明が解決しようとする課題】
しかしながら、上記従来の技術では、バイトアクセスを行うためには、命令制御装置401の命令で図5に示すようにアドレス値判定、分岐を制御する必要があり、命令制御装置401のオーバーヘッドが大きくなっていた。
【0013】
また、バイトアクセスでは一般にビッグエンディアン、リトルエンディアンという2種類のアクセス方法があるが、ビッグエンディアンとリトルエンディアンでデータの配置が変わった場合に、命令制御装置401の分岐命令502の0と1の分岐先を入れ換える変更をしなければならないため、命令の修正が必要となる。
【0014】
そこで本発明は、このような課題を解決して、Nビットのデータを扱う情報処理装置において、プロセッサの命令制御のオーバーヘッドを無くした状態でN/2幅のデータのアクセスを行うことができるようにすることを目的とする。また本発明は、バイトアクセスで一般に用いられるビッグエンディアンとリトルエンディアンの両方のアクセス手法を容易に切り換えることができるようにすることを目的とする。
【0015】
【課題を解決するための手段】
本発明の情報処理装置は、前記記憶装置をアクセスするためのアドレスを生成するアドレス生成装置と、前記記憶装置からロードしたデータをデータ転送バスへ供給するバス制御装置とを具備し、前記アドレス生成装置は、Nビット幅のアドレス値以外にN/2ビット幅のアドレス値も生成可能に構成され、前記バス制御装置は、アクセス命令がN/2ビット幅データアクセス命令でないと判別した場合は前記記憶装置からロードしたNビット幅のデータを転送バスへ供給し、アクセス命令がN/2ビット幅データアクセス命令あると判別した場合は前記アドレス生成装置にて生成されたN/2ビット幅のアドレス値にもとづき、前記Nビット幅のデータのうち、上位のN/2ビット幅と下位のN/2ビット幅とのいずれかを選択的に転送バスへ供給するように構成されているようにしたものである。
【0016】
これによれば、Nビットのデータを扱うメモリ等の記憶装置において、プロセッサの命令制御のオーバーヘッドを無くした状態で、N/2ビット幅のデータのアクセスを行うことが可能である。すなわち本発明の情報処理装置は、命令制御装置の制御ではなくアドレス値にもとづきN/2ビット幅のデータの選択を行うことで、アドレス値の判定、分岐を不要とし、命令制御装置のオーバーヘッドを無くすものである。
【0017】
また本発明の情報処理装置は、アドレス生成装置にて生成されたアドレス値の最下位ビットを反転させる反転装置を具備しているようにしたものである。
これによれば、アドレス値の最下位ビットに対して排他的論理和という非常に簡単な反転制御装置を追加することで、ビッグエンディアンとリトルエンディアンの切り替えを容易に実現可能となる。
【0018】
【発明の実施の形態】
(第一の実施の形態)
以下に、本発明の第一の実施の形態について、図1、図2を用いて説明する。
【0019】
図1は本発明の第一の実施の形態の情報処理装置の構成例を示したものである。図中、101はNビットすなわち16ビットのプロセッサ側の命令で制御される命令制御装置、102は記憶装置用のアドレスを生成するアドレス生成装置である。アドレス生成装置102は、Nビット(16ビット)のみならずN/2ビットすなわち8ビットのアドレスをも生成可能に構成されるとともに、バイトアドレスの変換を行うためのセレクタ102Aを有する。102Bは、アドレス生成装置102にて生成されたバイトアドレス値である。103は記憶装置、104は記憶装置103からロードしたデータを転送バス105へ出力するバス制御装置である。104A、104Bはバス制御装置104内のセレクタで、それぞれ、二つの入力のうちの一方を選択して出力する。
【0020】
図2は命令制御装置101での命令制御フローである。ここで、バイトアクセスのためのアドレス値は本発明の主旨とする改善点ではないため、既にアドレス生成装置102に設定されているものとする。バイトデータのアクセスを行うためには、命令制御装置101によって下記の命令を実行する。
【0021】
STEP1:バイトデータ読み出し命令201を発行し、バイトデータを読み出す。
このSTEP1のバイトデータ読み出し命令により、アドレス生成装置102において、セレクタ102Aによってバイトアドレス値102Bを選択する。詳細には、命令制御装置102からのバイトアクセス信号106を元に、このバイトアクセス信号106が0ならアドレス値ADR[m−1:0](mは記憶装置のアドレス空間に依存して変わる)を選択し、バイトアクセス信号が1ならADR[m−1:1]を選択する。ここではバイトアクセスであるのでバイトアクセス信号は1でありADR[m−1:1]が選択される。
【0022】
すると、選択されたアドレス値ADR[m−1:1]が示すデータDATA[15:0]を、記憶装置103から読み出してバス制御装置104が受け取る。バス制御装置104では、アドレス生成装置102からのアドレス最下位値ADR[0]を元に、セレクタ104Aにおいて、ADR[0]が0ならば上位DATA[15:8]を、ADR[0]が1ならば下位DATA[7:0]を選択し出力(出力をBYTE[7:0]とする)する。これによって、16ビットのデータDATA[15:0]から、上位8ビットと下位8ビットとのいずれか一方のみを直ちに読み出すことができ、オーバーヘッドを無くすことができる。
【0023】
セレクタ104Bは、命令制御装置101からのバイトアクセス信号が1ならセレクタ104Aの出力である8ビットデータすなわちBYTE[7:0]を選択し、また前記バイトアクセス信号が0なら通常アクセスとして16ビットデータDATA[15:0]を選択し転送バス105へ出力する。
【0024】
本発明による情報処理装置では、上記のようにしてバイトアクセスを実現する。
なお、上記はN=16ビットに限定した説明であるが、Nが任意の偶数値である場合に適応可能である事は言うまでもない。
【0025】
(第二の実施の形態)
以下に本発明の第二の実施の形態について、図2、図3を用いて説明する。
図3は本発明の第二の実施の形態の情報処理装置の構成例を示したものである。図中、反転装置206以外は、第一の実施の形態として示した図1の構成と同様であるので、その詳細な説明を割愛する。反転装置206は、アドレスの最下位ビットを反転させるように機能する。
【0026】
第一の実施の形態と異なるのは、次の点である。すなわち、反転装置206からバス制御装置104への出力をLOWSELとすると、反転動作を有効にしている場合は、アドレス生成装置102からバス制御装置104へ送られるADR[0]の値を、この反転装置206において、ADR[0]が0の場合はLOWSELが1、ADR[0]が1の場合はLOWSELが0となるようにする。また、反転動作を無効にしている場合は、LOWSELへADR[0]をそのまま代入する。
【0027】
反転動作の有効無効は様々な方法で実現可能である。例えば、
その1:命令制御装置101の命令で反転有効バイトアクセス命令、反転無効バイトアクセス命令を用意し、有効無効の制御を命令制御装置101で行う
その2:反転装置206に有効無効制御ビットを設け、この有効無効制御ビットの値を適宜に設定することで有効無効の切り替えを行う
等が考えられる。
【0028】
上記の「その1」では、命令にビッグエンディアンであるかリトルエンディアンであるかが明記されるため、両方式が切り替わった場合の命令修正が発生する。「その2」では、ビッグエンディアンであるかリトルエンディアンであるかが変わった場合でも制御ビットの設定値を変更するだけで良く、命令を修正する必要がない。
【0029】
なお、本発明においては反転装置206の有効無効の設定方法をこれらに限定するものでは無い。また参考までに、反転動作をC言語的に記述すると以下のようになる。
if(ADR[0]==0){
LOWSEL=1;
}
else{
LOWSEL=0;
}
なお、図3において、その他の動作は第一の実施の形態のものとまったく同様であるため、その説明を割愛する。
【0030】
上記のようにして、本発明では、ビッグエンディアンとリトルエンディアンの切り替えを含めたバイトアクセス動作を実現することができる。
なお、上記はN=16ビットに限定した説明であるが、Nが任意の偶数値である場合に適応可能である事は言うまでもない。
【0031】
【発明の効果】
本発明によれば、Nビット幅のデータを扱うメモリ等の記憶装置においてプロセッサの命令制御のオーバーヘッドを無くした状態でN/2ビット幅のデータのアクセスを行うことが可能である。
【0032】
また、バイトアクセスで一般に用いられるビッグエンディアンとリトルエンディアンの両アクセス手法とを、制御ビットまたは命令にもとづき容易に切り替え可能である。
【図面の簡単な説明】
【図1】本発明の第一の実施の形態の情報処理装置のブロック図
【図2】図1の情報処理装置における命令制御フロー
【図3】本発明の第二の実施の形態の情報処理装置のブロック図
【図4】従来の情報処理装置のブロック図
【図5】図4の情報処理装置における命令制御フロー
【符号の説明】
101、401 命令制御装置
102、402 アドレス生成装置
103、403 記憶装置
104、404 バス制御装置
102A、104A、104B、404A、404B セレクタ
206 反転装置
Claims (2)
- Nを偶数としてNビット幅のデータを複数保持する記憶装置に対してロードを行う情報処理装置であって、前記記憶装置をアクセスするためのアドレスを生成するアドレス生成装置と、前記記憶装置からロードしたデータをデータ転送バスへ供給するバス制御装置とを具備し、前記アドレス生成装置は、Nビット幅のアドレス値以外にN/2ビット幅のアドレス値も生成可能に構成され、前記バス制御装置は、アクセス命令がN/2ビット幅データアクセス命令でないと判別した場合は前記記憶装置からロードしたNビット幅のデータを転送バスへ供給し、アクセス命令がN/2ビット幅データアクセス命令あると判別した場合は前記アドレス生成装置にて生成されたN/2ビット幅のアドレス値にもとづき、前記Nビット幅のデータのうち、上位のN/2ビット幅と下位のN/2ビット幅とのいずれかを選択的に転送バスへ供給するように構成されていることを特徴とする情報処理装置。
- アドレス生成装置にて生成されたアドレス値の最下位ビットを反転させる反転装置を具備していることを特徴とする請求項1記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002153271A JP4052878B2 (ja) | 2002-05-28 | 2002-05-28 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002153271A JP4052878B2 (ja) | 2002-05-28 | 2002-05-28 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003345651A JP2003345651A (ja) | 2003-12-05 |
JP4052878B2 true JP4052878B2 (ja) | 2008-02-27 |
Family
ID=29770342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002153271A Expired - Fee Related JP4052878B2 (ja) | 2002-05-28 | 2002-05-28 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4052878B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5597120B2 (ja) * | 2010-12-13 | 2014-10-01 | 株式会社ザクティ | メモリアクセス装置 |
-
2002
- 2002-05-28 JP JP2002153271A patent/JP4052878B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003345651A (ja) | 2003-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7725899B2 (en) | Method and apparatus for communicating information between lock stepped processors | |
JP2646854B2 (ja) | マイクロプロセッサ | |
US5809274A (en) | Purge control for ON-chip cache memory | |
KR100275437B1 (ko) | 로드 데이터 포맷팅을 위한 방법 및 시스템 | |
KR930005766B1 (ko) | 가변장 명령열을 해독하고 실행하는 데이타 처리장치 | |
KR19990008025A (ko) | 단정밀도 또는 배정밀도를 갖는 산술 연산 수행 시스템 | |
JP3698754B2 (ja) | データ駆動型情報処理装置 | |
JP4052878B2 (ja) | 情報処理装置 | |
JPH0290349A (ja) | 仮想記憶システムのアドレス空間制御装置 | |
JPH09282221A (ja) | 主記憶制御装置 | |
JP2621763B2 (ja) | 情報処理装置 | |
KR970008189B1 (ko) | 메모리 공간 제어방법 및 메모리 장치 | |
JPH01273132A (ja) | マイクロプロセッサ | |
JPH0520183A (ja) | メモリアクセス制御方式 | |
JP2928566B2 (ja) | オペランド読み出し装置 | |
JPH09114733A (ja) | キャッシュ記憶装置における非整列データ転送機構 | |
JPS60142766A (ja) | 記憶制御方式 | |
JPH03127126A (ja) | 情報処理装置 | |
JP2003296105A (ja) | データ処理装置 | |
JPH0333951A (ja) | マイクロコンピュータシステム | |
JPH04191945A (ja) | キャッシュメモリ制御方式 | |
JPH04137059A (ja) | データ転送制御回路 | |
JPH011044A (ja) | メモリアクセス制御装置 | |
JPS60189043A (ja) | プロセツサ | |
JP2000207227A (ja) | 演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050525 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070720 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070724 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070925 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071204 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111214 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |