JPH07295882A - 情報処理装置、及び、情報処理システム - Google Patents

情報処理装置、及び、情報処理システム

Info

Publication number
JPH07295882A
JPH07295882A JP6084321A JP8432194A JPH07295882A JP H07295882 A JPH07295882 A JP H07295882A JP 6084321 A JP6084321 A JP 6084321A JP 8432194 A JP8432194 A JP 8432194A JP H07295882 A JPH07295882 A JP H07295882A
Authority
JP
Japan
Prior art keywords
instruction
data
queue
information processing
register
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
JP6084321A
Other languages
English (en)
Inventor
Kotaro Shimamura
光太郎 島村
Takashi Hotta
多加志 堀田
Shigeya Tanaka
成弥 田中
Makoto Yamagata
良 山縣
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP6084321A priority Critical patent/JPH07295882A/ja
Publication of JPH07295882A publication Critical patent/JPH07295882A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】情報処理装置において、キャッシュメモリに入
り切らない大量のデータを処理する場合に、キャッシュ
ミスによるペナルティの発生を防止し、性能を向上する
こと。 【構成】先入れ先出し方式のレジスタ(キューレジス
タ)を設け、主記憶部からキューレジスタへデータを転
送するプリロード命令と、キューレジスタからレジスタ
へデータを転送するキュー転送命令をサポートする。デ
ータを使用する十分前にプリロード命令を実行してキュ
ーレジスタにデータを転送しておくことにより、主記憶
読み出しによるペナルティなしに高速に処理を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報処理装置、及び、
情報処理システムに係り、特に、離散アドレスアクセス
時のデータ転送効率を改善する情報処理装置、及び、情
報処理システムに関する。
【0002】
【従来の技術】従来の情報処理装置では、低速な主記憶
へのアクセスによる性能低下を防ぐために、少容量では
あるが高速なキャッシュメモリを使用して性能を高める
方法が用いられている。キャッシュメモリを使用して性
能を高める方法については、ヘネシ&パターソン著「コ
ンピュータ・アーキテクチャー設計・実現・評価の定量
的アプローチ」(日経BP社)p.403〜428に説明
されている。以下、キャッシュメモリを用いた従来の情
報処理装置の動作を説明する。命令処理ユニットは、キ
ャッシュメモリからデータを受け取り、必要な処理を行
った後、結果をキャッシュメモリに転送する。命令処理
ユニットの必要としているデータがキャッシュメモリに
存在する場合には、キャッシュメモリに格納されている
データが命令処理ユニットに転送される。命令処理ユニ
ットの必要としているデータがキャッシュメモリに存在
しない場合には、必要なデータが主記憶からキャッシュ
メモリに転送され、キャッシュメモリに書き込まれる。
それと同時に、主記憶から転送されてきたデータが命令
処理ユニットに転送される。キャッシュメモリは主記憶
に比べて高速であり、必要なデータがキャッシュメモリ
に存在する場合には、主記憶からデータを転送する場合
に比べ高速に処理を行うことが可能となる。通常の処理
を行う場合には、同じデータを何度も繰り返し使用する
ことが多く、必要なデータがキャッシュメモリに存在す
る可能性が高いため、キャッシュメモリを設けることに
より高い性能が得られる。
【0003】
【発明が解決しようとする課題】しかしながら、従来の
情報処理装置では、同じデータを繰り返し使用すること
の少ない処理を行う場合には、キャッシュメモリに必要
なデータが存在する可能性が低いため、主記憶からのデ
ータ転送が頻繁に発生し、性能が低下する。また、キャ
ッシュメモリの容量より大きいデータを一度に処理する
場合には、あるデータをキャッシュメモリに書き込む時
に別のデータをキャッシュメモリから消去する必要が生
じ、キャッシュメモリに必要なデータが存在する可能性
が低下するため、性能が低下する。
【0004】本発明の目的は、キャッシュメモリに必要
なデータが存在する可能性の低い処理を行う場合にも、
高速に処理を行うことの可能な情報処理装置、及び、情
報処理システムを提供することにある。
【0005】本発明の他の目的は、離散アドレスアクセ
ス時のデータの転送効率を改善し、高性能な情報処理装
置、及び、情報処理システムを提供することにある。
【0006】更に、本発明の他の目的は、キャッシュミ
スによる処理効率低下を改善し、高性能な情報処理装
置、及び、情報処理システムを提供することにある。
【0007】
【課題を解決するための手段】本発明の情報処理システ
ムによれば、データを格納する主記憶部と、前記主記憶
部に格納されているデータの一部を格納するキャッシュ
メモリと、前記キャッシュメモリに格納されたデータ
を、命令に従って処理する命令処理ユニットと、前記命
令処理ユニットに接続され、この命令処理ユニットの命
令の実行により前記主記憶部から読みだされるデータを
格納する先入れ先出し型のキューレジスタ手段とを有す
る。
【0008】前記命令処理ユニットは通常、データを格
納するレジスタと、このレジスタに格納されたデータに
対して、命令に従って所定の演算を行う演算器とを有す
る。本発明の実施態様によれば、前記キューレジスタ手
段に格納されたデータを、命令に従って前記レジスタに
格納する手段を有する。
【0009】本発明の他の実施態様によれば、前記キュ
ーレジスタ手段に格納されたデータを命令に従って前記
演算器に入力する手段を有し、前記キューレジスタ手段
に格納されたデータと、前記レジスタに格納されたデー
タとの間で所定演算が実行される。
【0010】本発明の他の実施態様によれば、前記キュ
ーレジスタに格納されたデータを命令に従って前記演算
器に入力する手段を有し、前記キューレジスタ手段に格
納されたデータ間で所定演算が実行される。
【0011】本発明の他の実施態様によれば、前記キュ
ーレジスタ手段は複数の先入れ先出し型のキューレジス
タを有し、それぞれのキューレジスタに格納されたデー
タ間で所定演算が実行される。
【0012】本発明の他の実施態様によれば、前記主記
憶部から前記キューレジスタ手段に書き込まれるデータ
の書き込み位置を、そのデータが前記命令処理ユニット
で処理される順序に従って制御する書き込み制御手段を
有する。
【0013】前記書き込み制御手段は前記キューレジス
タ手段に書き込まれたデータの最上位の位置、及び、最
後尾の位置を記憶する回路を有することが望ましい。
【0014】本発明の他の実施態様によれば、前記主記
憶部が複数のバンクからなり、前記複数のバンクのそれ
ぞれに格納されたデータを、命令実行の順序に従って前
記キューレジスタ手段に書き込む順序を制御する書き込
み制御手段を有する。
【0015】前記書き込み制御手段は、前記各バンクに
対応する複数のデータバッファと、前記複数のバンクか
ら前記複数のデータバッファへのデータの書き込みを制
御する書き込み制御回路と、前記キューレジスタ手段へ
転送すべきデータが格納されている前記主記憶のバンク
の番号を、命令実行の順序に従って記憶するバンク順序
記憶回路と、前記複数のデータバッファからのデータ
を、前記バンク順序記憶回路に記憶されているバンクの
番号に従って選択し、前記キューレジスタ手段に書き込
むための選択回路とを有することが望ましい。
【0016】本発明の情報処理装置によれば、主記憶に
格納されているデータ、及び、命令の一部を格納するキ
ャッシュメモリ手段と、キャッシュメモリ手段に格納さ
れた命令をデコードする命令デコード部と、データを格
納する少なくとも1つのレジスタと、前記レジスタに格
納されたデータに対して、所定の演算を行う少なくとも
1つの演算器とを有する命令処理ユニットと、前記命令
処理ユニットに接続され、この命令処理ユニットの命令
の実行により前記主記憶部から読みだされるデータを格
納する先入れ先出し型のキューレジスタ手段とを有す
る。
【0017】前記キャッシュメモリ手段に格納される命
令は、前記主記憶部から前記キューレジスタ手段へデー
タを転送するプリロード命令を含む。
【0018】本発明の実施態様によれば、前記キャッシ
ュメモリ手段に格納される命令は以下の命令を含む。
【0019】(1)キューレジスタ手段から前記レジス
タへデータを転送する命令 (2)主記憶部からキューレジスタ手段へのデータの転
送とキューレジスタ手段から前記レジスタへのデータの
転送とを行う複合命令 (3)キューレジスタ手段からデータを削除する命令 (4)キューレジスタ手段に格納されたデータを用いて
前記演算器で演算を行うキュー演算命令 (5)キューレジスタ手段に格納された複数のデータの
間の演算を行う複数データキュー演算命令 (6)演算実行後に演算に使用したデータをキューレジ
スタ手段から削除するキュー演算削除命令、又は、削除
しないキュー演算非削除命令を含むキュー演算命令 本発明の他の実施態様によれば、前記主記憶部から前記
キューレジスタ手段に書き込まれるデータの書き込み位
置を、そのデータが前記命令処理ユニットで処理される
順序に従って制御する書き込み制御手段を有する。
【0020】前記書き込み制御手段は前記キューレジス
タ手段に書き込まれたデータの最上位の位置、及び、最
後尾の位置を記憶する回路を有することが望ましい。
【0021】本発明の他の実施態様によれば、前記主記
憶部が複数のバンクからなり、前記複数のバンクのそれ
ぞれに格納されたデータを、命令実行の順序に従って前
記キューレジスタ手段に書き込む順序を制御する書き込
み制御手段を有する。
【0022】前記書き込み制御手段は、前記各バンクに
対応する複数のデータバッファと、前記複数のバンクか
ら前記複数のデータバッファへのデータの書き込みを制
御する書き込み制御回路と、前記キューレジスタ手段へ
転送すべきデータが格納されている前記主記憶のバンク
の番号を、命令実行の順序に従って記憶するバンク順序
記憶回路と、前記複数のデータバッファからのデータ
を、前記バンク順序記憶回路に記憶されているバンクの
番号に従って選択し、前記キューレジスタ手段に書き込
むための選択回路とを有することが望ましい。
【0023】本発明の他の実施態様によれば、前記キュ
ーレジスタ手段は前記命令処理ユニットに接続される先
入れ先出し型の第1のキューレジスタと、この第1のキ
ューレジスタと前記主記憶部との間に接続される先入れ
先出し型の第2のキューレジスタとから成る。
【0024】前記主記憶部から前記第2のキューレジス
タに書き込まれるデータの書き込み位置を、そのデータ
が前記命令処理ユニットで処理される順序に従って制御
する書き込み制御手段を有することが望ましい。
【0025】
【作用】本発明の情報処理装置、及び、情報処理システ
ムでは、命令処理ユニットがプリロード命令を実行する
と、指定されたデータが主記憶部からキューレジスタに
転送される。データを処理する十分前にプリロード命令
を実行し、実際にデータを処理する時にキューレジスタ
からデータを読み出して処理することにより、高速に処
理を行うことができる。
【0026】また、命令処理ユニットが実行する命令セ
ットがキューレジスタからレジスタへデータを転送する
キュー転送命令を含む場合には、命令処理ユニットがプ
リロード命令を実行すると主記憶部から転送されてきた
データはキューレジスタの最後尾に書き込まれ、命令処
理ユニットがキュー転送命令を実行するとキューレジス
タの最初のデータがレジスタに転送されキューレジスタ
から削除される。データを処理する十分前にプリロード
命令を実行し、実際にデータを処理する時にキュー転送
命令を実行して必要なデータをレジスタに転送すること
により、高速に処理を行うことができる。
【0027】また、プリロード命令の中に、主記憶から
キューレジスタへのデータの転送とキューレジスタから
レジスタへのデータの転送とを一つの命令で行う複合プ
リロード命令を含む場合には、命令処理ユニットが複合
プリロード命令を実行すると、主記憶部から転送されて
きたデータはキューレジスタの最後尾に書き込まれ、そ
れと同時にキューレジスタの最初のデータがレジスタに
転送されキューレジスタから削除される。現在処理しよ
うとしているデータのキューレジスタからレジスタへの
転送と、将来処理するデータの主記憶部からキューレジ
スタへの転送を一命令で実行することにより、プリロー
ド命令とキュー転送命令の二つの命令を実行する場合に
比べ処理に必要な命令数が減少するため、処理時間が短
縮され、性能が向上する。
【0028】また、命令処理ユニットが実行する命令セ
ットが、キューレジスタからデータを削除するキュー削
除命令を含む場合には、命令処理ユニットがキュー削除
命令を実行すると、キューレジスタに格納されているデ
ータのうち指定された数のデータが削除される。将来必
要となることを予想して予めプリロード命令でキューレ
ジスタに転送されていたデータが必要ないことが判明し
た場合には、キュー削除命令で複数のデータを同時にキ
ューレジスタから削除することにより、キュー転送命令
を複数回実行してキューレジスタからデータを削除する
場合に比べ処理に必要な命令数が減少するため、処理時
間が短縮され、性能が向上する。
【0029】また、命令処理ユニットが実行する命令セ
ットが、キューレジスタに格納されたデータを用いて演
算器で演算を行うキュー演算命令を含む場合には、命令
処理ユニットがキュー演算命令を実行すると、キューレ
ジスタの最初のデータがキューレジスタから削除され、
演算器に転送され、演算器で処理される。予めプリロー
ド命令でキューレジスタに転送されていたデータを処理
する場合にキュー演算命令を実行することにより、キュ
ー転送命令でレジスタに転送してから演算命令を実行す
る場合に比べ処理に必要な命令数が減少するため、処理
時間が短縮され、性能が向上する。
【0030】また、キュー演算命令の中に、キューレジ
スタに格納された複数のデータの間の演算を行う複数デ
ータキュー演算命令を含む場合には、命令処理ユニット
が複数データキュー演算命令を実行すると、キューレジ
スタに格納された複数のデータがキューレジスタから削
除され、演算器に転送され、演算器で処理される。予め
プリロード命令でキューレジスタに転送されていた複数
のデータの間の演算を実行する場合に、複数データキュ
ー演算命令を実行することにより、一部のデータをキュ
ー転送命令でレジスタに転送した後にキュー演算命令を
実行する場合に比べ処理に必要な命令数が減少するた
め、処理時間が短縮され、性能が向上する。
【0031】また、キュー演算命令の中に、実行後に演
算に使用したデータをキューレジスタから削除するキュ
ー演算削除命令と、削除しないキュー演算非削除命令を
含む場合には、命令処理ユニットがキュー演算非削除命
令を実行すると、キューレジスタに格納されたデータが
キューレジスタから削除されずに演算器に転送され、演
算器で処理される。キューレジスタに格納されたデータ
に複数の演算を実行する場合には、最後の演算のみにキ
ュー演算削除命令を実行しそれ以外の演算にはキュー演
算非削除命令を実行することにより、キュー転送命令を
実行してキューレジスタからレジスタにデータを転送し
た後に複数の演算命令を実行する場合に比べ処理に必要
な命令数が減少するため、処理時間が短縮され、性能が
向上する。
【0032】また、主記憶に接続された複数のキューレ
ジスタと、各キューレジスタと演算器を接続する複数の
データバスとを有する場合には、命令処理ユニットは複
数のキューレジスタに格納されたデータの間の演算を行
う複数キュー演算命令を実行する。主記憶上の複数のデ
ータの間の演算を行う場合に、各データを予めプリロー
ド命令により主記憶から別々のキューレジスタへ転送し
ておき、複数キュー演算命令を実行することにより、一
つのキューレジスタのみを使用しキュー転送命令とキュ
ー演算命令を実行する場合に比べ処理に必要な命令数が
減少するため、処理時間が短縮され、性能が向上する。
【0033】また、命令処理ユニットが複数の演算器
と、演算器それぞれに接続された複数のレジスタを有
し、各レジスタそれぞれに接続された複数のキューレジ
スタを有する場合には、命令処理ユニットは主記憶から
各キューレジスタにデータを転送するプリロード命令を
実行する。各演算器で処理を行う時には、対応するキュ
ーレジスタから対応するレジスタにデータを転送して処
理することにより、高速に処理を行うことができる。
【0034】また、命令処理ユニットが複数の演算器
と、演算器それぞれに接続された複数のレジスタを有
し、単一のキューレジスタと複数のレジスタを接続する
データバスを有する場合には、命令処理ユニットは主記
憶からキューレジスタにデータを転送するプリロード命
令を実行する。各演算器で処理を行う時には、単一のキ
ューレジスタから演算器に対応したレジスタにデータを
転送して処理することにより、高速に処理を行うことが
できる。
【0035】また、キューレジスタが複数のデータを格
納する領域を有し、主記憶部から前記キューレジスタに
転送されたデータをプリロード命令の順番に並べ変える
順序保証回路を有する場合には、主記憶から転送されて
くるデータの順番がプリロード命令の順番と異なってい
る場合でも、順序保証回路がプリロード命令の順番に並
べ変えてキューレジスタに書き込む。これによって、プ
リロード命令の順番と異なった順番で主記憶からデータ
を読み出した方が高速に処理できる場合に、最適な順番
で主記憶からデータを読み出すことが可能となり、プリ
ロード命令の順番と同じ順番で主記憶からデータを読み
出す場合に比べ高速に処理を行うことができる。
【0036】また、キューレジスタへのデータの書き込
みを制御する書き込み制御回路と、次に実行するプリロ
ード命令のデータを格納すべきキューレジスタ内の場所
を示すボトムポインタと、ボトムポインタから主記憶部
に制御情報を転送するためのデータバスと、主記憶から
書き込み制御回路に制御情報を転送するためのデータバ
スとを有する場合には、各プリロード命令を実行する時
にそのプリロード命令のデータを書き込むべき場所を示
す制御情報がボトムポインタから主記憶部に転送され
る。主記憶からキューレジスタにデータが転送される時
にはそのデータを書き込むべきキューレジスタの場所を
示す制御情報が主記憶部から書き込み制御回路に転送さ
れ、書き込み制御回路は主記憶から転送されてきた制御
情報に従ってキューレジスタにデータを書き込む。これ
によって、主記憶部から転送されてくるデータの順番が
プリロード命令の順番と異なっている場合でも、キュー
レジスタにはプリロード命令の順番にデータが書き込ま
れる。
【0037】また、主記憶が複数のバンクより構成さ
れ、主記憶部の各バンクに対応する複数のデータバッフ
ァと、複数のデータバッファからのデータを選択する選
択回路と、データバッファへのデータの書き込みを制御
する書き込み制御回路と、プリロード命令で転送すべき
データが格納されている主記憶部のバンクの番号を記憶
するバンク順序記憶回路と、主記憶から書き込み制御回
路に制御情報を転送するデータバスと、バンク順序記憶
回路から選択回路に制御情報を転送するためのデータバ
スとを有する場合には、各プリロード命令を実行する時
にそのプリロード命令のデータが格納されている主記憶
のバンクの番号がプリロード命令の実行の順番にバンク
順序記憶回路に格納される。主記憶部からデータが転送
されてくるときには、そのデータが格納されていた主記
憶のバンクの番号が書き込み制御回路に転送される。書
き込み制御回路は、主記憶部から受け取ったバンクの番
号に対応するデータバッファにデータを書き込む。選択
回路は、バンク順序記憶回路に格納されたバンク番号の
順番に従って、複数のデータバッファからのデータを選
択し、キューレジスタに転送する。これによって、主記
憶から転送されてくるデータの順番がプリロード命令の
順番と異なっている場合でも、キューレジスタにはプリ
ロード命令の順番にデータが書き込まれる。
【0038】また、キューレジスタが二つの部分よりな
り、キューレジスタの第一の部分は命令処理ユニットに
接続され、キューレジスタの第二の部分は主記憶部に接
続され、順序保証回路がキューレジスタの第二の部分に
接続されている場合には、順序保証回路は、主記憶から
転送されてきたデータをプリロード命令の実行順番に並
べ変えてキューレジスタの第二の部分に書き込む。キュ
ーレジスタの第二の部分に書き込まれたデータはプリロ
ード命令の実行の順番にキューレジスタの第一の部分に
転送される。これによって、命令処理ユニットに接続さ
れたキューレジスタの第一の部分は構成が簡単になり高
速な動作が可能である。一方、キューレジスタの第二の
部分はキューレジスタの第一の部分に比べて低速である
が、一度に複数のデータをキューレジスタの第二の部分
から第一の部分に転送することにより、命令処理ユニッ
トが必要とする速度でデータを転送することが可能とな
る。従って、キューレジスタが一つの部分よりなりかつ
順序保証回路を有する場合に比べ、高速に処理を行うこ
とが可能となる。
【0039】
【実施例】以下、本発明の実施例を図面を用いて説明す
る。
【0040】図16は、本発明の第一の実施例で実行す
る命令を示した図である。図16に示した命令のうち、
項番7のプリロード命令,項番8のキュー転送命令,項
番9の複合プリロード命令,項番10のキュー削除命
令,項番11のキューデータ数読み出し命令は、本発明
の特徴であるキューレジスタに関係する命令である。項
番9の複合プリロード命令は、項番7のプリロード命令
の処理と項番8のキュー転送命令の処理とを1命令で行
う複合命令である。
【0041】図17は、図16に示した命令のうち、キ
ューレジスタに関係のある命令を実行した時のキューレ
ジスタの状態の変化を示した図である。図17(a)は命
令列の例であり、命令1から命令8の順に実行される。
図17(b)は、図17(a)の命令列を実行した時のキ
ューレジスタの状態の変化を示した図である。キューレ
ジスタは5つの格納領域を有し、5つのデータを格納す
ることが可能である。このうち、図17(b)上で一番
上に記述された格納領域を最上部と呼ぶ。また、データ
の入っていない格納領域のうち一番上の格納領域を最後
尾と呼ぶ。図17(b)では、最後尾を記号Bで示して
ある。初期状態では全ての格納領域は空であり、最後尾
と最上部が等しい。命令1のプリロード命令を実行する
と、データ1が最後尾に書き込まれ、最後尾の位置が一
つ下に移動する。命令2のプリロード命令を実行する
と、データ2が最後尾に書き込まれ、最後尾の位置が一
つ下に移動する。命令3のプリロード命令を実行する
と、データ3が最後尾に書き込まれ、最後尾の位置が一
つ下に移動する。命令4のプリロード命令を実行する
と、データ4が最後尾に書き込まれ、最後尾の位置が一
つ下に移動する。命令5のキュー転送命令を実行する
と、最上部のデータ(データ1)がレジスタtに転送さ
れ、キューレジスタから削除される。その際、最上部以
外の格納領域のデータが一つ上の格納領域に移動し、そ
れに伴い最後尾の位置も一つ上に移動する。命令6のキ
ューデータ数読み出し命令を実行すると、キューレジス
タに格納されているデータの数(ここでは3)がレジス
タtに書き込まれる。命令7のキュー削除命令を実行す
ると、キューレジスタの最上部から順に指定された数
(ここでは2個)のデータが削除される。その際、残り
のデータは削除されたデータの分だけ上に移動し、それ
に伴い最後尾の位置も上に移動する。命令8の複合プリ
ロード命令を実行すると、データ5が最後尾に書き込ま
れ、同時に最上部のデータ(データ4)がレジスタtに
転送され、キューレジスタから削除される。その際、最
上部以外の格納領域のデータが一つ上の格納領域に移動
する。最後尾の位置は変化しない。以上の説明では、簡
単のため、1つの命令の処理が全て終了してから次の命
令の処理を開始するものとして説明した。実際の情報処
理装置では、通常パイプライン的に処理が行われる。従
って、例えば、命令4のデータがキューレジスタに書き
込まれる前に命令5の処理が行われる可能性もある。
【0042】図1は、本発明の第一の実施例のブロック
図である。102は命令処理ユニット、142は命令デ
コーダ、104は演算器、106はレジスタ、144は
キャッシュ制御ユニット、146は命令フェッチユニッ
ト、108はキャッシュメモリ、110はキューレジス
タ、148は主記憶制御ユニット、112は主記憶、1
22,124,126,128,130および132は
データバスである。キューレジスタ110は、10個の
格納領域を有する。キャッシュメモリ108は、デ−タ
及び命令を格納している。実施例では、デ−タ及び命令
を格納している場合を説明するが、デ−タ及び命令とを
それぞれを個別に格納するデ−タキャッシュ及び命令キ
ャッシュを用いても良い。
【0043】命令フェッチユニット146は、キャッシ
ュ制御ユニット144に命令コードの読み出しを要求す
る。命令フェッチユニット146の要求した命令コード
がキャッシュメモリ108に存在する時には、キャッシ
ュ制御ユニット144はデータバス128を通してキャ
ッシュメモリ108から命令デコーダ142に命令コー
ドを転送する。命令フェッチユニット146の要求した
命令コードがキャッシュメモリ108に無い時には、キ
ャッシュ制御ユニット144は、主記憶制御ユニット1
48に命令コードの読み出しを要求する。主記憶制御ユ
ニット148は、主記憶112から命令コードを読み出
し、データバス132を通してキャッシュメモリ108
に転送する。キャッシュ制御ユニット144は、主記憶
制御ユニット148から転送されてきた命令コードをキ
ャッシュメモリ108に書き込み、同時にデータバス1
28を通して命令デコーダ142に転送する。
【0044】命令デコーダ142は、キャッシュメモリ
108から転送されてきた命令コードを解読し、命令コ
ードの種類に応じた処理を行う。
【0045】命令コードが演算命令であった場合には、
命令デコーダ142は、データバス122,124を通
してレジスタ106から演算器104にデータを転送
し、演算器104で演算を行う。演算が終了すると、デ
ータバス126を通して演算器104からレジスタ10
6に演算結果を転送し、レジスタ106に書き込む。
【0046】命令コードがロード命令であった場合に
は、命令デコーダ142は、データバス122,124
を通してレジスタ106から演算器104にデータを転
送し、演算器104でアドレス計算を行う。アドレス計
算が終了すると、データバス126を通してアドレスを
キャッシュ制御ユニット144に転送し、キャッシュ制
御ユニット144にデータの読み出しを要求する。命令
デコーダ142の要求したデータがキャッシュメモリ1
08に存在する時には、キャッシュ制御ユニット144
はデータバス128を通してキャッシュメモリ108か
らレジスタ106にデータを転送する。命令デコーダ14
2の要求したデータがキャッシュメモリ108に無い時
には、キャッシュ制御ユニット144は、主記憶制御ユ
ニット148にデータの読み出しを要求する。主記憶制
御ユニット148は、主記憶112からデータを読み出
し、データバス132を通してキャッシュメモリ108に
転送する。キャッシュ制御ユニット144は、主記憶制
御ユニット148から転送されてきたデータをキャッシ
ュメモリ108に書き込み、同時にデータバス128を
通してレジスタ106に転送する。
【0047】命令コードがストア命令であった場合に
は、命令デコーダ142は、データバス122,124
を通してレジスタ106から演算器104にデータを転
送し、演算器104でアドレス計算を行う。アドレス計
算が終了すると、データバス126を通してアドレスを
キャッシュ制御ユニット144に転送し、同時にデータ
バス128を通してデータをキャッシュメモリ108に
転送して、キャッシュ制御ユニット144にデータの書
き込みを要求する。命令デコーダ142の要求したアド
レスのデータがキャッシュメモリ108に存在する時に
は、キャッシュ制御ユニット144はデータバス128
を通してレジスタ106から転送されてきたデータをキ
ャッシュメモリ108に書き込む。命令デコーダ142
の要求したアドレスのデータがキャッシュメモリ108
に無い時には、キャッシュ制御ユニット144は、主記
憶制御ユニット148にデータの読み出しを要求する。
主記憶制御ユニット148は、主記憶112からデータ
を読み出し、データバス132を通してキャッシュメモ
リ108に転送する。キャッシュ制御ユニット144
は、主記憶制御ユニット148から転送されてきたデー
タをキャッシュメモリ108に書き込み、書き込み終了
後に、データバス128を通してレジスタ106から転
送されてきたデータをキャッシュメモリ108に書き込
む。
【0048】命令コードが代入命令であった場合には、
命令デコーダ142は、命令コードに指定された定数値
をレジスタ106に書き込む。
【0049】命令コードが条件分岐命令であった場合に
は、命令デコーダ142は、データバス122,124
を通してレジスタ106から演算器104にデータを転
送し、演算器104で比較を行う。比較結果が指定され
た条件を満たした場合には、命令デコーダ142は、命
令フェッチユニット146に分岐先の命令コードの読み
出しを指示する。
【0050】命令コードがプリロード命令であった場合
には、命令デコーダ142は、キューレジスタ110に
空の格納領域があるかどうかを調べる。キューレジスタ
110に空の格納領域がある場合は、命令デコーダ142
は、データバス122,124を通してレジスタ106か
ら演算器104にデータを転送し、演算器104でアド
レス計算を行う。アドレス計算が終了すると、データバ
ス126を通してアドレスをキャッシュ制御ユニット1
44に転送し、キャッシュ制御ユニット144にデータ
の読み出しを要求する。キャッシュ制御ユニット144
は、主記憶制御ユニット148にデータの読み出しを要
求する。主記憶制御ユニット148は、主記憶112か
らデータを読み出し、データバス132を通してキュー
レジスタ110に転送し、キューレジスタ110の最後
尾に書き込む。キューレジスタ110に空の格納領域が
無い場合は、例外割り込みが発生し、命令デコーダ142
は、命令フェッチユニット146に、例外処理ルーチン
のアドレスに対応する命令コードの読み出しを指示す
る。
【0051】命令コードがキュー転送命令であった場合
には、命令デコーダ142は、キューレジスタ110の
最上部にデータが存在するかどうかを調べる。キューレ
ジスタ110の最上部にデータが存在する場合は、その
データをデータバス130を通してレジスタ106に転
送し、レジスタ106に書き込む。キューレジスタ11
0の最上部にデータが存在しない場合は、命令デコーダ
142は、主記憶制御ユニット148が先行するプリロ
ード命令の読み出し処理中であるかどうかを調べる。主
記憶制御ユニット148が先行するプリロード命令の読
み出し処理中である場合には、命令デコーダ142は、
主記憶制御ユニット148がキューレジスタ110の最
上部にデータを書き込むのを待って、そのデータをデー
タバス130を通してレジスタ106に転送し、レジス
タ106に書き込む。主記憶制御ユニット148が先行
するプリロード命令の読み出し処理中でない場合には、
例外割り込みが発生し、命令デコーダ142は、命令フ
ェッチユニット146に、例外処理ルーチンのアドレス
に対応する命令コードの読み出しを指示する。
【0052】命令コードが複合プリロード命令であった
場合には、命令デコーダ142は、プリロード命令の時
の処理と、キュー転送命令の時の処理の両方を行う。
【0053】命令コードがキュー削除命令であった場合
には、命令デコーダ142は、命令コードで指定された
数のデータがキューレジスタ110に存在するかどうか
を調べる。キューレジスタ110に指定された数のデー
タが存在する場合は、それらのデータをキューレジスタ
110から削除する。キューレジスタ110に指定され
た数のデータが存在しない場合は、命令デコーダ142
は、主記憶制御ユニット148が先行するプリロード命
令の読み出し処理中であるかどうかを調べる。主記憶制
御ユニット148が先行するプリロード命令の読み出し
処理中である場合には、命令デコーダ142は、主記憶
制御ユニット148が先行するプリロード命令の読み出
し処理を終了するのを待って、指定された数のデータを
キューレジスタ110から削除する。主記憶制御ユニッ
ト148が先行するプリロード命令の読み出し処理を全
て終了しても指定された数のデータがキューレジスタ11
0に存在しない場合には、例外割り込みが発生し、命令
デコーダ142は、命令フェッチユニット146に、例
外処理ルーチンのアドレスに対応する命令コードの読み
出しを指示する。
【0054】命令コードがキューデータ数読み出し命令
であった場合には、命令デコーダ142は、キューレジ
スタ110から読み出し可能なデータの数を調べ、レジ
スタ106に書き込む。ここで、キューレジスタ110
から読み出し可能なデータの数は、キューレジスタ11
0に存在するデータの数と、主記憶制御ユニット148
が読み出し処理中の先行プリロード命令の数の和に等し
い。
【0055】図2は、図16に示した命令のうち、キュ
ーレジスタに関係する命令の命令コードを示した図であ
る。各命令コードは、32ビットの2進数で表わされ
る。図2では、説明の都合上、命令コードの各ビットに
最上位ビットから順に0から31の番号を付けてある。
【0056】図2(a)は、プリロード命令,キュー転
送命令および複合プリロード命令の命令コードを一つの
図にまとめたものである。ビット0からビット9まで
は、命令の種類を示すフィールドであり、このフィール
ドがOP1の時、その命令コードはプリロード命令,キ
ュー転送命令または複合プリロード命令として処理され
る。pフィールド(ビット10)は、プリロードの処理
を行うかどうかを示すフィールドである。mフィールド
(ビット11)は、キュー転送の処理を行うかどうかを
示すフィールドである。pフィールドが1,mフィール
ドが0の時、この命令はプリロード命令として処理され
る。pフィールドが0,mフィールドが1の時、この命
令はキュー転送命令として処理される。pフィールドが
1,mフィールドが1の時、この命令は複合プリロード
命令として処理される。bフィールド(ビット17から
ビット21)及びxフィールド(ビット22からビット
26)は、プリロードの処理を行う時のアドレス計算に
使用するレジスタの番号を指定するフィールドである。
bフィールドで指定されたレジスタの値と、xフィール
ドで指定されたレジスタの値を加算した値が、アドレス
となる。tフィールド(ビット27からビット31)
は、キュー転送の処理を行う時にデータを書き込むレジ
スタの番号を指定するフィールドである。
【0057】図2(b)は、キュー削除命令およびキュ
ーデータ数読み出し命令の命令コードである。ビット0
からビット9までは、命令の種類を示すフィールドであ
り、このフィールドがOP2の時、その命令コードはキ
ュー削除命令またはキューデータ数読み出し命令として
処理される。kフィールド(ビット10からビット1
1)は、処理の種類を示すフィールドである。kフィー
ルドが0の時、この命令はキュー削除命令として処理さ
れる。kフィールドが1の時、この命令はキューデータ
数読み出し命令として処理される。nフィールド(ビッ
ト12からビット18)は、キュー削除命令を実行する
時にキューレジスタから削除するデータの数を指定する
ためのフィールドである。tフィールド(ビット27か
らビット31)は、キューデータ数読み出し命令を実行
する時に、キューレジスタから読み出し可能なデータの
個数を書き込むレジスタの番号を指定するフィールドで
ある。
【0058】図18は、キューデータ数読み出し命令の
使用方法の例を説明する図である。図は、複数のユーザ
プログラム、プログラム1とプログラム2を時分割で処
理する様子を示したものであり、キューデータ数読み出
し命令はキューレジスタ退避処理の際に使用される。
【0059】まず最初に、処理の流れの概略を説明す
る。時刻t1にタイマ割り込みによってプログラム1の
処理が中断され、OSの処理が開始される。時刻t1か
らt2の間にOSがプログラム1からプログラム2への
切り換え処理を行う。その際、キューレジスタに残され
たデータをメモリ空間に設けられた退避領域に保存して
おく必要がある。これがキューレジスタ退避処理であ
る。時刻t2から時刻t3の間、プログラム2の処理が
行われる。時刻t3にタイマ割り込みによってプログラ
ム2の処理が中断され、再びOSの処理が開始される。
時刻t3からt4の間にOSがプログラム2からプログ
ラム1への切り換え処理を行う。その際、メモリ空間の
退避領域に保存されていたデータをキューレジスタに戻
す必要がある。これがキューレジスタ回復処理である。
時刻t4からプログラム1の処理が再開される。
【0060】次に、キューレジスタ退避処理について説
明する。1行目のキューデータ数読み出し命令を実行す
ると、キューレジスタに入っているデータの数がレジス
タr3に書き込まれる。2行目の代入命令を実行する
と、レジスタr1に退避領域の先頭のアドレスが書き込
まれる。3行目の代入命令を実行すると、レジスタr2
に0が書き込まれる。4行目のストア命令を実行する
と、退避領域の先頭に、キューレジスタに入っているデ
ータの数が書き込まれる。5行目の条件分岐命令を実行
すると、キューレジスタに入っているデータの数が0の
時のみ11行目に分岐し、処理を終了する。キューレジ
スタに入っているデータの数が1以上の時は、6行目の
処理に進む。6行目の演算命令を実行すると、レジスタ
r2に1が加算され、レジスタr2に書き込まれる。7
行目から10行目はループになっており、キューレジス
タに入っているデータの数だけ繰り返される。7行目の
キュー転送命令と8行目のストア命令を実行すると、キ
ューレジスタの最上部のデータがレジスタr0を経由し
て退避領域に書き込まれ、キューレジスタから削除され
る。9行目の演算命令を実行すると、レジスタr2に1
が加算され、レジスタr2に書き込まれる。10行目の
条件分岐命令は、キューレジスタにデータが残っている
かどうかを調べる条件分岐命令である。キューレジスタ
にデータが残っている場合は、7行目に分岐し、処理を
続ける。キューレジスタにデータが残っていない場合
は、11行目に進み、処理を終了する。
【0061】次に、キューレジスタ回復処理について説
明する。1行目の代入命令を実行すると、レジスタr1
に退避領域の先頭のアドレスが書き込まれる。2行目の
代入命令を実行すると、レジスタr2に0が書き込まれ
る。3行目のロード命令を実行すると、退避領域の先頭
のデータが、レジスタr3に書き込まれる。退避領域の
先頭には、キューレジスタ退避処理を行った時にキュー
レジスタから退避領域に転送したデータの数が格納され
ているため、レジスタr3に書き込まれた値は、退避領
域からキューレジスタに転送すべきデータの数を示すこ
とになる。4行目の条件分岐命令を実行すると、退避領
域からキューレジスタに転送すべきデータの数が0の時
のみ9行目に分岐し、処理を終了する。退避領域からキ
ューレジスタへ転送すべきデータの数が1以上の時は、
5行目に進む。5行目の演算命令を実行すると、レジス
タr2に1が加算され、レジスタr2に書き込まれる。
6行目から8行目はループになっており、退避領域から
キューレジスタに転送すべきデータの数だけ繰り返され
る。6行目のプリロード命令を実行すると、退避領域の
データがキューレジスタの最後尾に転送される。7行目
の演算命令を実行すると、レジスタr2に1が加算さ
れ、レジスタr2に書き込まれる。8行目の条件分岐命
令は、退避領域からキューレジスタに必要な回数だけデ
ータが転送されたかどうかを調べる条件分岐命令であ
る。転送すべきデータが残っている場合は、6行目に分
岐し、処理を続ける。退避領域からキューレジスタに必
要な回数だけデータが転送された場合は、9行目に進
み、処理を終了する。以上の処理によって、時刻t4の
キューレジスタの状態は、時刻t1のキューレジスタの
状態と同じになるため、t4以降のプログラム1の処理
が正しく行われることが保証される。
【0062】図3は、キューレジスタに関係する命令を
使用したプログラムの例を示した図である。処理内容は
要素数100の配列xとyの加算を行い、要素数100
の配列zに書き込む、というものである。以下、配列x
の各要素をx(1)〜x(100)、配列yの各要素をy(1)
〜y(100)、配列zの各要素をz(1)〜z(100)と
記述することにする。1行目の代入命令を実行すると、
レジスタr5にx(1)のアドレスから1を減じた数が書
き込まれる。2行目の代入命令を実行すると、レジスタ
r6にy(1)のアドレスから1を減じた数が書き込ま
れる。3行目の代入命令を実行すると、レジスタr0に
1が書き込まれる。以下の命令において、レジスタr0
は配列x、及び配列yの添字として使用する。4行目の
代入命令を実行すると、レジスタr8に3が書き込まれ
る。5行目から8行目は、第一のループであり、3回実
行される。5行目及び6行目の命令はプリロード命令で
あり、配列x、及び配列yのデータをキューレジスタに
転送するものである。これらの命令を3回実行すると、
x(1)とy(1),x(2)とy(2),x(3)とy
(3)のデータがキューレジスタに書き込まれる。7行
目の演算命令を実行すると、レジスタr0に1が加算さ
れレジスタr0に書き込まれる。8行目の条件分岐命令
を実行すると、第一のループが3回実行されるまでは5
行目に分岐し、3回実行されると9行目に進む。9行目
の代入命令を実行すると、レジスタr7にz(1)のア
ドレスから1を減じた数が書き込まれる。10行目の代
入命令を実行すると、レジスタr1に1が書き込まれ
る。以下の命令において、レジスタr1は配列zの添字
として使用する。11行目の代入命令を実行すると、レ
ジスタr8に100が書き込まれる。12行目から18
行目は、第二のループであり、97回実行される。以下
に、このループをi(i=1〜97)回目に実行する時
の処理を説明する。12行目の複合プリロード命令を実
行すると、x(i+3)のデータがキューレジスタに書
き込まれ、同時に、x(i)のデータがキューレジスタか
らレジスタr2に転送される。13行目の複合プリロー
ド命令を実行すると、y(i+3)のデータがキューレジ
スタに書き込まれ、同時に、y(i)のデータがキューレ
ジスタからレジスタr3に転送される。14行目の演算
命令を実行すると、x(i)のデータとy(i)のデー
タが加算され、レジスタr4に書き込まれる。15行目
のストア命令を実行すると、14行目の演算命令の加算
結果が、z(i)に書き込まれる。16行目の演算命令
を実行すると、レジスタr0に1が加算されレジスタr
0に書き込まれる。17行目の演算命令を実行すると、
レジスタr1に1が加算されレジスタr1に書き込まれ
る。18行目の条件分岐命令を実行すると、第二のルー
プが97回実行されるまでは12行目に分岐する。第二
のループが97回実行されると、19行目に進む。19
行目から24行目は第三のループであり、3回実行され
る。以下、このループが1回目に実行されるときの処理
を説明する。2回目,3回目の処理も同様である。19
行目のキュー転送命令を実行すると、x(98)のデー
タがキューレジスタからレジスタr2に転送される。同
様に、20行目のキュー転送命令を実行すると、y(9
8)のデータがキューレジスタからレジスタr3に転送
される。21行目の演算命令を実行すると、x(98)
のデータとy(98)のデータが加算され、レジスタr
4に書き込まれる。22行目のストア命令を実行する
と、21行目の命令の加算結果が、z(98)に書き込
まれる。23行目の演算命令を実行すると、レジスタr
1に1が加算されレジスタr1に書き込まれる。24行
目の条件分岐命令を実行すると、第三のループが3回実
行されるまでは19行目に分岐する。第三のループが3
回実行されると、処理を終了する。
【0063】図4は、図3の命令列を図1の情報処理装
置で実行したときの処理の流れを示した図である。サイ
クル1からサイクル4では、図3の命令列の1行目から
4行目の代入命令の処理が行われる。サイクル5からサ
イクル8は、図3の命令列の5行目から8行目のループ
の一回目の処理に相当する。サイクル5では、図3の命
令列の5行目のプリロード命令の処理が行われ、主記憶
制御ユニットに対してx(1)のデータの読み出し要求
が行われる。主記憶の読み出しには10サイクル要する
ため、x(1)のデータはサイクル15にキューレジス
タに書き込まれる。サイクル6では、図3の命令列の6
行目のプリロード命令の処理が行われ、主記憶制御ユニ
ットにy(1)のデータの読み出し要求が出される。y
(1)のデータはサイクル16にキューレジスタに書き
込まれる。サイクル7では演算命令、サイクル8では条
件分岐命令の処理が行われる。サイクル9からサイクル
12は、図3の命令列の5行目から8行目のループの二
回目の処理に相当する。サイクル9及びサイクル10で
は、主記憶制御ユニットに対してx(2)及びy(2)
のデータの読み出し要求が行われ、対応するデータがサ
イクル19及びサイクル20にキューレジスタに書き込
まれる。サイクル11では演算命令、サイクル12では
条件分岐命令の処理が行われる。サイクル13からサイ
クル16についても同様であり、x(3)及びy(3)
のデータがサイクル23及びサイクル24にキューレジ
スタに書き込まれる。サイクル17からサイクル19で
は、代入命令の処理が行われる。サイクル20からサイ
クル26は、図3の命令列の12行目から18行目のル
ープの一回目の処理に相当する。サイクル20では、図
3の命令列の12行目の複合プリロード命令の処理が行
われ、主記憶制御ユニットにx(4)のデータの読み出
し要求が出される。それと同時に、x(1)のデータが
キューレジスタからレジスタr2に転送される。x
(1)のデータは、サイクル15にキューレジスタに書
き込まれているため、主記憶の読み出しを待つことな
く、次の命令の処理に移ることが可能である。x(4)
のデータはサイクル30にキューレジスタに書き込まれ
る。サイクル21では、図3の命令列の13行目の複合
プリロード命令の処理が行われ、主記憶制御ユニットに
y(4)のデータの読み出し要求が出される。それと同時
に、y(1)のデータがキューレジスタからレジスタr
3に転送される。y(1)のデータは、サイクル16に
キューレジスタに書き込まれているため、主記憶の読み
出しを待つことなく、次の命令の処理に移ることが可能
である。y(4)のデータはサイクル31にキューレジ
スタに書き込まれる。サイクル22では、サイクル20
及びサイクル21にキューレジスタからレジスタr2及
びr3に転送されたデータの加算が行われる。サイクル
23では、サイクル22の加算結果が主記憶に書き込ま
れる。サイクル24およびサイクル25では加算命令の
処理が、サイクル26では条件分岐命令の処理が行われ
る。サイクル27から33,サイクル34から40は、
図3の命令列の12行目から18行目のループの二回
目、及び三回目の実行であり、サイクル20からサイク
ル26と同様の処理が行われる。以上説明した様に、キ
ューレジスタを使用することにより、主記憶の読み出し
にかかる時間(10サイクル)に影響されず、1サイク
ルに1命令の割合で命令の処理を行うことができる。
【0064】図5(a)は、本発明の第二の実施例を示
した図である。502,504は選択回路、506は演
算器、508はレジスタ、510はキューレジスタ、5
42は命令デコーダ、544はキャッシュ制御ユニッ
ト、512はキャッシュメモリ、546は命令フェッチ
ユニット、548は主記憶制御ユニット、514は主記
憶、522,524,526,528,530および5
32はデータバスである。この実施例の特徴は、キュー
レジスタ510と演算器506を接続するデータバス5
22、およびキューレジスタ510からのデータとレジ
スタ508からのデータのどちらかを選択する選択回路
502,504を設けたことにある。演算器506はレ
ジスタ508から読み出したデータの間だけでなく、レ
ジスタ508から読み出したデータとキューレジスタ51
0から読み出したデータの間で演算を行うことが可能で
ある。図5(b)は、図5(a)の情報処理装置で実行
するキュー演算命令の命令コードの例である。ビット0
からビット9までは、命令の種類を示すフィールドであ
り、このフィールドがOP3の時その命令はキュー演算
命令として処理される。q1フィールド(ビット10)
及びq2フィールド(ビット11)は、演算器の第一の
入力、及び、第二の入力にレジスタから読み出したデー
タを用いるかキューレジスタから読み出したデータを用
いるかを指定する。q1フィールドが0の時には、s1
フィールド(ビット17からビット21)で指定された
番号のレジスタの値が演算器の第一の入力として用いら
れる。q1フィールドが1の時には、キューレジスタの
最上部のデータが演算器の第一の入力として用いられ
る。同様に、q2フィールドが0の時には、s2フィー
ルド(ビット22からビット26)で指定された番号の
レジスタの値が演算器の第二の入力として用いられ、q
2フィールドが1の時には、キューレジスタの最上部の
データが演算器の第二の入力として用いられる。dフィ
ールド(ビット12)は、演算に使用したキューレジス
タのデータを削除するかどうかを指定するフィールドで
ある。dフィールドが1の時には、演算に使用されたキ
ューレジスタのデータはキューレジスタから削除され
る。dフィールドが0の時には、演算に使用されたキュ
ーレジスタのデータはキューレジスタから削除されず、
次の演算で使用することが可能である。kフィールド
(ビット13からビット16)は、演算器で行う演算の
種類を示すフィールドである。tフィールド(ビット2
7からビット31)は、演算結果を書き込むレジスタの
番号を示すフィールドである。図5(b)のキュー演算
命令を用いれば、図3の命令列の20行目のキュー転送
命令と21行目の演算命令の二命令を一命令に置き換え
ることができるため、処理すべき命令の数が減少し、性
能が向上する。また、キューレジスタのデータを複数の
演算命令で使用する必要がある場合には、dフィールド
が0のキュー演算命令を使用すれば、キューレジスタの
データは削除されないため、次の演算で使用することが
可能である。
【0065】図6(a)は、本発明の第三の実施例を示
した図である。602,604は選択回路、642は命
令デコーダ、606は演算器、608はレジスタ、61
0はキューレジスタ、644はキャッシュ制御ユニッ
ト、646は命令フェッチユニット、612はキャッシ
ュメモリ、648は主記憶制御ユニット、614は主記
憶、622,624,626,628,630,632
および634はデータバスである。この実施例の特徴
は、キューレジスタ610と演算器606を接続する2
本のデータバス626,628を設けたことにある。デ
ータバス628はキューレジスタ610の最上部のデー
タを演算器606に転送するためのデータバスであり、
データバス626はキューレジスタ610の二番目のデ
ータを演算器606に転送するためのデータバスであ
る。図6(b)は、図6(a)の情報処理装置で実行す
る第一のキュー演算命令の命令コードの例である。この
キュー演算命令は、キューレジスタの最初のデータのみ
を使用し、キューレジスタの二番目のデータは使用しな
い。ビット0からビット9までは、命令の種類を示すフ
ィールドであり、このフィールドがOP4の時その命令
は第一のキュー演算命令として処理される。それ以外の
ビットの意味は、図5(b)のキュー演算命令と同じで
ある。図6(c)は、図6(a)の情報処理装置で実行
する第二のキュー演算命令の命令コードの例である。こ
のキュー演算命令は、キューレジスタの最上部のデータ
と二番目のデータの両方を使用する。ビット0からビッ
ト9までは、命令の種類を示すフィールドであり、この
フィールドがOP5の時その命令は第二のキュー演算命
令として処理される。ssフィールド(ビット10)
は、キューレジスタの最上部のデータを演算器の第一の
入力と第二の入力のどちらに用いるかを指定する。ss
フィールドが0の時には、キューレジスタの最上部のデ
ータが演算器の第一の入力として用いられ、キューレジ
スタの二番目のデータが演算器の第二の入力として用い
られる。ssフィールドが1の時には、キューレジスタ
の二番目のデータが演算器の第一の入力として用いら
れ、キューレジスタの最上部のデータが演算器の第二の
入力として用いられる。d1フィールド(ビット11)
及びd2フィールド(ビット12)は、演算に使用した
キューレジスタのデータを削除するかどうかを指定する
フィールドである。d1フィールドが1の時にはキュー
レジスタの最上部のデータはキューレジスタから削除さ
れ、d1フィールドが0の時にはキューレジスタの最上
部のデータはキューレジスタから削除されない。同様
に、d2フィールドが1の時にはキューレジスタの二番
目のデータはキューレジスタから削除され、d2フィー
ルドが0の時にはキューレジスタの二番目のデータはキ
ューレジスタから削除されない。kフィールド(ビット
13からビット16)は、演算の種類を示すフィールド
である。tフィールド(ビット27からビット31)
は、演算結果を書き込むレジスタの番号を示すフィール
ドである。図6(c)のキュー演算命令を用いれば、図
3の命令列の19行目、及び20行目のキュー転送命令
と21行目の演算命令の三命令を一命令に置き換えるこ
とができるため、処理すべき命令の数が減少し、性能が
向上する。また、キューレジスタのデータを複数の演算
命令で使用する必要がある場合には、d1フィールドま
たはd2フィールドが0のキュー演算命令を使用すれば
キューレジスタのデータは削除されないため、次の演算
命令で使用することが可能である。
【0066】図7は、本発明の第四の実施例を示した図
である。702,704は選択回路、742は命令デコ
ーダ、706は演算器、708はレジスタ、711は第
一のキューレジスタ、712は第二のキューレジスタ、
744はキャシュ制御ユニット、746は命令フェッチ
ユニット、714はキャッシュメモリ、748は主記憶
制御ユニット、716は主記憶、722,724,72
6,728,730,732および734はデータバス
である。この実施例の特徴は、二つのキューレジスタ7
11,712を設けたことにある。
【0067】図8(a)は、図7の情報処理装置で実行
するプリロード命令の命令コードの例である。図8
(a)のプリロード命令は、主記憶から転送してきたデ
ータを二つのキューレジスタのどちらに書き込むかを指
定するため、qビットを有する。qビットが0の時には
第一のキューレジスタにデータが書き込まれ、qビット
が1の時には第二のキューレジスタにデータが書き込ま
れる。ビット0からビット9までは、命令の種類を示す
フィールドであり、このフィールダかOP6の時その命
令はプリロード命令として処理される。この命令コード
ではキュー転送の処理は行わないため、ビット27から
ビット31は未使用ビットである。それ以外のビットの
意味は、図2(a)のプリロード命令と同じである。図
8(b)は、図7の情報処理装置で実行する第一のキュ
ー演算命令の命令コードの例である。このキュー演算命
令は、第一のキューレジスタのデータのみを使用し、第
二のキューレジスタのデータは使用しない。ビット0か
らビット9までは、命令の種類を示すフィールドであ
り、このフィールダかOP7の時その命令は第一のキュ
ー演算命令として処理される。それ以外のビットの意味
は、図5(b)のキュー演算命令と同じである。図8
(b)の命令コードと同様の命令コードを用いれば、第
二のキューレジスタのデータのみを使用し、第一のキュ
ーレジスタのデータは使用しないキュー演算命令をサポ
ートすることも可能である。図8(c)は、図7の情報
処理装置で実行する第二のキュー演算命令の命令コード
の例である。このキュー演算命令は、第一のキューレジ
スタのデータと第二のキューレジスタのデータの両方を
使用する。ビット0からビット9までは、命令の種類を
示すフィールドであり、このフィールドがOP8の時そ
の命令は第二のキュー演算命令として処理される。ss
フィールド(ビット10)は、第一のキューレジスタか
ら読み出したデータを演算器の第一の入力と第二の入力
のどちらに用いるかを指定する。ssフィールドが0の
時には、第一のキューレジスタの最上部のデータが演算
器の第一の入力として用いられ、第二のキューレジスタ
の最上部のデータが演算器の第二の入力として用いられ
る。ssフィールドが1の時には、第二のキューレジス
タの最上部のデータが演算器の第一の入力として用いら
れ、第一のキューレジスタの最上部のデータが演算器の
第二の入力として用いられる。d1フィールド(ビット
11)及びd2フィールド(ビット12)は、演算に使
用したキューレジスタのデータを削除するかどうかを指
定するフィールドである。d1フィールドが1の時には
第一のキューレジスタの最上部のデータは第一のキュー
レジスタから削除され、d1フィールドが0の時には第
一のキューレジスタの最上部のデータは第一のキューレ
ジスタから削除されない。同様に、d2フィールドが1
の時には第二のキューレジスタの最上部のデータは第二
のキューレジスタから削除され、d2フィールドが0の
時には第二のキューレジスタの最上部のデータは第二の
キューレジスタから削除されない。kフィールド(ビッ
ト13からビット16)は、演算の種類を示すフィール
ドである。tフィールド(ビット27からビット31)
は、演算結果を書き込むレジスタの番号を示すフィール
ドである。図8(c)のキュー演算命令を用いれば、図
6(c)のキュー演算命令を用いた場合と同様、図3の
命令列の19行目、及び20行目のキュー転送命令と2
1行目の演算命令の三命令を一命令に置き換えることが
できるため、処理すべき命令の数が減少し、性能が向上
する。また、第一のキューレジスタ及び第二のキューレ
ジスタは、最上部のデータの読み出し、及び削除を行え
ばよく、二番目のデータの読み出し、及び削除を行う必
要がないため、図7の情報処理装置では図6(a)の情
報処理装置に比べてキューレジスタの構成が簡単にな
る。
【0068】図9(a)は、整数データ用と浮動小数点
(FP)データ用に別々のレジスタ及び別々の演算器を
有する情報処理装置に対して、本発明を適用した例であ
る。952は命令デコーダ、902は整数演算器、90
4は整数レジスタ、906は浮動小数点演算器、908
は浮動小数点レジスタ、954はキャッシュ制御ユニッ
ト、956は命令フェッチユニット、910はキャッシ
ュメモリ、912は整数用キューレジスタ、914は浮
動少数点用キューレジスタ、958は主記憶制御ユニッ
ト、916は主記憶、922,924,926,928,9
30,932,934,936,938、および940
はデータバスである。本実施例は、整数用と浮動小数点
用の二つのキューレジスタを有することを特徴とする。
整数用キューレジスタ912は整数レジスタ904に接
続され、浮動小数点用キューレジスタ914は浮動小数
点レジスタ908に接続されている。図9(b)は、図
9(a)の情報処理装置で実行する複合プリロード命令
の命令コードの例である。図9(b)の複合プリロード
命令は、整数データを扱うか浮動小数点データを扱うか
を指定するため、pfビット(ビット12)及びmfビ
ット(ビット13)を有する。pfビットが0の時に
は、主記憶から転送されてきたデータは整数用キューレ
ジスタに書き込まれ、pfビットが1の時には、主記憶
から転送されてきたデータは浮動小数点用キューレジス
タに書き込まれる。mfビットが0の時には、整数用キ
ューレジスタから整数レジスタにデータが転送され、m
fビットが1の時には、浮動小数点用キューレジスタか
ら浮動小数点レジスタにデータが転送される。ビット0
からビット9までは、命令の種類を示すフィールドであ
り、このフィールドがOP9の時その命令は複合プリロ
ード命令として処理される。それ以外のビットの意味
は、図2(a)の複合プリロード命令と同じである。整
数データ用と浮動小数点データ用の二つのキューレジス
タを設けたことにより、整数データを処理する場合に
も、浮動小数点データを処理する場合にも高速に処理を
行うことが可能である。
【0069】図10(a)は、本発明の第六の実施例を
示した図である。1042は命令デコーダ、1002は
整数演算器、1004は整数レジスタ、1006は浮動
小数点演算器、1008は浮動小数点レジスタ、104
4はキャッシュ制御ユニット、1046は命令フェッチ
ユニット、1010はキャッシュメモリ、1012はキ
ューレジスタ、1048は主記憶制御ユニット、101
4は主記憶、1022,1024,1026,102
8,1030,1032,1034,1036および1
038はデータバスである。本実施例の特徴は、整数デ
ータと浮動小数点データで一つのキューレジスタを共用
する様にした点である。キューレジスタ1012は、整
数レジスタ1004と浮動小数点レジスタ1008の両
方に接続されている。図10(b)は、図10(a)の
情報処理装置で実行する複合プリロード命令の命令コー
ドの例である。図10(b)の複合プリロード命令は、
整数レジスタにデータを転送するか浮動小数点レジスタ
にデータを転送するかを指定するため、fビット(ビッ
ト12)を有する。fビットが0の時には、キューレジ
スタから整数レジスタにデータが転送され、fビットが
1の時には、キューレジスタから浮動小数点レジスタに
データが転送される。ビット0からビット9までは、命
令の種類を示すフィールドであり、このフィールドがO
P10の時その命令は複合プリロード命令として処理さ
れる。それ以外のビットの意味は、図2(a)の複合プ
リロード命令と同じである。整数データと浮動小数点デ
ータで一つのキューレジスタを共用することにより、図
9(a)の情報処理装置に比べてハードウェア物量を削
減することが可能である。
【0070】図11は、本発明の第七の実施例を示した
図である。1152は命令デコーダ、1102は演算
器、1104はレジスタ、1154はキャッシュ制御ユ
ニット、1156は命令フェッチユニット、1106は
キャッシュメモリ、1108は順序保証回路、1110
はキューレジスタ、1158は主記憶制御ユニット、1
120は主記憶、1132,1134,1136,113
8,1140,1142および1144はデータバスであ
る。本実施例の特徴は、キューレジスタ1110内のデータ
がプリロード命令の実行順序と一致する様にデータの書
き込みを制御する、順序保証回路1108を設けたこと
にある。主記憶1120は4つのバンクから構成されて
いる。各バンクは容量を大きくするため比較的低速なメ
モリで構成されており、読み出しに10サイクル必要で
ある。また、各バンクの読み出しはパイプライン的に処
理され、同一バンクから連続してデータを読み出す場合
は、4サイクルに一つのデータを読み出すことができ
る。更に、バンク0からバンク3の読み出しはパイプラ
イン的に処理され、バンク0からバンク3を順次に読み
出す場合には1サイクルに1つのデータを読み出すこと
ができる。キューレジスタ1110は、複数のデータを
格納する領域を有する。データバス1144はキューレ
ジスタ1110内にあるデータ格納領域全てに接続され
ている。順序保証回路1108は、主記憶1120から
転送されてきたデータがプリロードの実行順序に並ぶよ
うに、キューレジスタ1110へのデータの書き込みを
制御する。
【0071】図12は、図11の情報処理装置でプリロ
ード命令の処理を行う時の処理の流れを示した図であ
る。サイクル1からサイクル8にプリロード命令(a)
から(h)の処理が行われ、主記憶の読み出し要求が出
される。プリロード命令(a)のデータは、読み出し要求
の10サイクル後にキューレジスタに書き込まれる。プ
リロード命令(b)は、プリロード命令(a)と同一バ
ンクに対する読み出しであるため、プリロード命令
(a)の4サイクル後でなければ読み出しができず、読
み出し要求の14サイクル後にデータがキューレジスタ
に書き込まれる。一方、プリロード命令(c)は、プリ
ロード命令(a)及び(b)とは別のバンクの読み出し
であるため、プリロード命令(a)及び(b)の読み出
しと並列に処理され、プリロード命令(b)より先にデ
ータがキューレジスタに書き込まれる。この様に、プリ
ロード命令(c)の読み出しをプリロード命令(b)の
読み出しより先に行うことにより、高速に処理を行うこ
とができる。同様に、プリロード命令(e)の読み出し
はプリロード命令(b)及び(d)の読み出しより先に
行われ、プリロード命令(g)の読み出しはプリロード
命令(d)及び(f)の読み出しより先に行われる。この
様に、主記憶の読み出しはプリロード命令の実行順序と
異なるが、順序保証回路は、キューレジスタ内のデータ
がプリロード命令の実行順に並ぶ様にキューレジスタの
書き込みを制御する。
【0072】図13は、本発明の第八の実施例を示した
図である。1352は命令デコーダ、1302は演算
器、1304はレジスタ、1354はキャッシュ制御ユ
ニット、1356は命令フェッチユニット、1306は
キャシュメモリ、1308,1310はポインタ、13
12はキューレジスタの書き込み制御回路、1314は
キューレジスタ、1358は主記憶制御ユニット、13
20は主記憶、1332,1334,1336,1338,
1340,1342,1344,1346および134
8はデータバスである。トップポインタ1308はキュ
ーレジスタ1314の最上部の位置を記憶する回路である。
キューレジスタ1314の最上部のデータを読み出す
と、ポインタ1308に記憶された位置のデータが読み
出される。キューレジスタ1314の最上部のデータを
削除すると、ポインタ1308が次のデータの位置を示
す値に更新される。ボトムポインタ1310はキューレ
ジスタ1314の最後尾の位置を記憶する回路である。
プリロード命令を実行すると、主記憶1320に対する
読み出し要求に同期してポインタ1310に記憶された
値がデータバス1342を通して主記憶制御ユニット1
358に転送される。その後、ポインタ1310が次の
データの位置を示す値に更新される。主記憶制御ユニッ
ト1358は、主記憶1320から読み出したデータを
データバス1348に出力すると同時に、そのデータを書き
込むべきキューレジスタ1314の位置をデータバス1
344を通して書き込み制御回路1312に転送する。
書き込み制御回路1312は、主記憶制御ユニット13
58から受け取った情報に従って、キューレジスタ13
14の書き込みを制御する。これによって、主記憶制御
ユニット1358から転送されるデータの順番がプリロ
ード命令の実行順番と異なっていても、キューレジスタ
1314内ではプリロード命令の実行順にデータを並べ
ることが可能である。
【0073】図14は、本発明の第九の実施例を示した
図である。1462は命令デコーダ、1402は演算
器、1404はレジスタ、1464はキャッシュ制御ユ
ニット、1466は命令フェッチユニット、1406は
キャッシュメモリ、1410はバンク順序記憶回路、1
408はキューレジスタ、1414は選択回路、1420〜
1423はデータバッファ、1412はデータバッファ
の書き込み制御回路、1468は主記憶制御ユニット、
1430は主記憶、1442,1444,1446,144
8,1450,1452,1454,1456および1
458はデータバスである。主記憶1430は、図11
の情報処理装置と同様、4つのバンクから構成されてい
る。データバッファ1420〜1423は、先入れ先出
し型のデータバッファであり、それぞれ主記憶1430
のバンク0〜3に対応している。書き込み制御回路14
12は、データバス1454を通して主記憶制御ユニッ
ト1468からデータバス1452に出力されたデータ
に対応する主記憶1430のバンクの番号を受け取り、
データバッファ1420〜1423への書き込み制御信
号をデータバス1458に出力する。バンク順序記憶回
路1410は、各プリロード命令が読み出す主記憶14
30のバンクの番号をプリロード命令の実行順序に対応
付けて記憶する。選択回路1414は、データバス14
56を通してバンク順序記憶回路1410から次のプリ
ロード命令のバンクの番号を受け取り、対応するデータ
バッファ1420〜1423のデータを選択する。キュ
ーレジスタ1408は先入れ先出し型のレジスタであ
り、選択回路1414から受け取ったデータを記憶す
る。バンク順序記憶回路1410に記憶されたバンクの
番号に基づいて選択回路1414でデータを選択するこ
とにより、主記憶1430から読み出したデータの順番
がプリロード命令の順番と異なっていても、キューレジ
スタ1408にはプリロード命令の順番にデータが書き
込まれる。
【0074】図15は、本発明の第十の実施例を示した
図である。1514は命令処理ユニット、1552は命
令デコーダ、1502は演算器、1504はレジスタ、
1554はキャッシュ制御ユニット、1556は命令フェッ
チユニット、1506はキャッシュメモリ、1508,
1510はレジスタ、1512は順序保証回路、1558は
主記憶制御ユニット、1520は主記憶、1532,1
534,1536,1538,1540,1542,1
544および1546はデータバスである。本実施例の
特徴は、キューレジスタが2つのレジスタ1508,1
510に分割されていることである。レジスタ1508
は少容量の先入れ先出し型のレジスタであり、高速に読
み出すことができる。レジスタ1510は大容量のレジ
スタであり、順序保証回路1512によって制御されて
いる。レジスタ1510はレジスタ1508に比べて読
み出し速度が遅いが、一度に複数のデータを読み出すこ
とにより、レジスタ1508に必要なデータを転送す
る。キューレジスタを2つのレジスタに分割したことに
より、順序保証回路1512を設けたことによる処理速
度の低下に影響されずに、命令処理ユニット1514へ
のデータ転送要求に高速に応答することが可能となる。
また、データバス1546のデータ転送周波数を命令処
理ユニット1514の動作周波数より低くすることが可
能なため、レジスタ1510及び順序保証回路1512
を別LSIとして構成することが容易となり、それによ
ってLSIのチップサイズによる制約を気にせずレジス
タ1510の大容量化を容易に図ることができる。
【0075】
【発明の効果】以上詳述した様に、本発明によれば、デ
ータが必要となるより十分前に主記憶からキューレジス
タにデータを転送するプリロード命令を実行し、データ
を使用する時にキューレジスタからレジスタにデータを
転送するキュー転送命令を実行することにより、低速な
主記憶の読み出し時間に影響されずに高速に処理を行う
ことが可能となり、情報処理装置の性能を向上させるこ
とが可能である。
【図面の簡単な説明】
【図1】本発明の第一の実施例を示すブロック構成図で
ある。
【図2】図1の情報処理装置で実行するプリロード命
令,キュー転送命令,複合プリロード命令及びキュー削
除命令,キューデータ数読み出し命令の命令コードの例
を示す図である。
【図3】図2のプリロード命令,キュー転送命令、およ
び複合プリロード命令を使用したプログラムの例を示す
図である。
【図4】図3のプログラムを図1の情報処理装置で処理
した時の処理の流れを示す図である。
【図5】本発明の第二の実施例のブロック構成図、及
び、本実施例の情報処理装置で処理するキュー演算命令
の命令コードの例を示す図である。
【図6】本発明の第三の実施例のブロック構成図、及
び、本実施例の情報処理装置で処理するキュー演算命令
の命令コードの例を示す図である。
【図7】本発明の第四の実施例のブロック構成図であ
る。
【図8】図7の情報処理装置で実行するプリロード命令
及びキュー演算命令の命令コードの例を示す図である。
【図9】本発明の第五の実施例のブロック構成図、及
び、本実施例の情報処理装置で処理する複合プリロード
命令の命令コードの例を示す図である。
【図10】本発明の第六の実施例のブロック構成図、及
び、本実施例の情報処理装置で処理する複合プリロード
命令の命令コードの例を示す図である。
【図11】本発明の第七の実施例のブロック構成図であ
る。
【図12】図11の情報処理装置でプリロード命令を処
理した時の処理の流れを示す図である。
【図13】本発明の第八の実施例のブロック構成図であ
る。
【図14】本発明の第九の実施例のブロック構成図であ
る。
【図15】本発明の第十の実施例のブロック構成図であ
る。
【図16】図1の情報処理装置で処理する命令を説明す
る図である。
【図17】図16に示した命令を実行した時のキューレ
ジスタの状態の変化を説明する図である。
【図18】キューデータ数読み出し命令を使用したキュ
ーレジスタの退避回復処理を説明する図である。
【符号の説明】
102…命令処理ユニット、106…レジスタ、108
…キャッシュメモリ、110,510,610,71
1,712,1012,1110,1314,1408
…キューレジスタ、112,1120,1320,14
30…主記憶、506…演算器、522,626,62
8,1034,1342,1344…データバス、90
4…整数レジスタ、908…浮動小数点レジスタ、91
2…整数用キューレジスタ、914…浮動小数点用キュ
ーレジスタ、1108…順序保証回路、1308…キュ
ーレジスタの最上部の位置を記憶するポインタ、131
0…キューレジスタの最後尾の位置を記憶するポイン
タ、1312,1412…書き込み制御回路、1420
〜1423…データバッファ、1410…バンク順序記
憶回路、1414…選択回路、1508,1510…キ
ューレジスタの一部を構成するレジスタ、1512…順
序保証回路。
フロントページの続き (72)発明者 山縣 良 神奈川県秦野市堀山下1番地 株式会社日 立製作所汎用コンピュータ事業部内

Claims (32)

    【特許請求の範囲】
  1. 【請求項1】データを格納する主記憶部と、 前記主記憶部に格納されているデータの一部を格納する
    キャッシュメモリと、 前記キャッシュメモリに格納されたデータを、命令に従
    って処理する命令処理ユニットと、 前記命令処理ユニットに接続され、この命令処理ユニッ
    トの命令の実行により前記主記憶部から読みだされるデ
    ータを格納する先入れ先出し型のキューレジスタ手段と
    を有する情報処理システム。
  2. 【請求項2】請求項1項の情報処理システムにおいて、
    前記命令処理ユニットはデータを格納するレジスタと、
    このレジスタに格納されたデータに対して、命令に従っ
    て所定の演算を行う演算器とを有することを特徴とする
    情報処理システム。
  3. 【請求項3】請求項2項の情報処理システムにおいて、
    前記キューレジスタ手段に格納されたデータを、命令に
    従って前記レジスタに格納する手段を有することを特徴
    とする情報処理システム。
  4. 【請求項4】請求項2項の情報処理システムにおいて、
    前記キューレジスタ手段に格納されたデータを命令に従
    って前記演算器に入力する手段を有し、前記キューレジ
    スタ手段に格納されたデータと、前記レジスタに格納さ
    れたデータとの間で所定演算が実行されることを特徴と
    する情報処理システム。
  5. 【請求項5】請求項2項の情報処理システムにおいて、
    前記キューレジスタ手段に格納されたデータを命令に従
    って前記演算器に入力する手段を有し、前記キューレジ
    スタ手段に格納されたデータ間で所定演算が実行される
    ことを特徴とする情報処理システム。
  6. 【請求項6】請求項5項の情報処理システムにおいて、
    前記キューレジスタ手段は複数の先入れ先出し型のキュ
    ーレジスタを有し、それぞれのキューレジスタに格納さ
    れたデータ間で所定演算が実行されることを特徴とする
    情報処理システム。
  7. 【請求項7】請求項1項の情報処理システムにおいて、
    前記命令処理ユニットは複数の演算器と、これらの演算
    器のそれぞれに対応して備えられた複数のレジスタとを
    有することを特徴とする情報処理システム。
  8. 【請求項8】請求項7項の情報処理システムにおいて、
    前記キューレジスタ手段は前記複数のレジスタのそれぞ
    れに対して備えられた複数の先入れ先出し型のキューレ
    ジスタを有することを特徴とする情報処理システム。
  9. 【請求項9】請求項8項の情報処理システムにおいて、
    前記キューレジスタのそれぞれに格納されたデータを、
    命令に従って対応する前記レジスタに格納する手段を有
    することを特徴とする情報処理システム。
  10. 【請求項10】請求項9項の情報処理システムにおい
    て、前記複数の演算器は整数演算器、及び、浮動小数点
    演算器を含むことを特徴とする情報処理システム。
  11. 【請求項11】請求項1項の情報処理システムにおい
    て、前記主記憶部から前記キューレジスタ手段に書き込
    まれるデータの書き込み位置を、そのデータが前記命令
    処理ユニットで処理される順序に従って制御する書き込
    み制御手段を有することを特徴とする情報処理システ
    ム。
  12. 【請求項12】請求項11項の情報処理システムにおい
    て、前記書き込み制御手段は前記キューレジスタ手段に
    書き込まれたデータの最上位の位置、及び、最後尾の位
    置を記憶する回路を有することを特徴とする情報処理シ
    ステム。
  13. 【請求項13】請求項1項の情報処理システムにおい
    て、前記主記憶部が複数のバンクからなり、前記複数の
    バンクのそれぞれに格納されたデータを、命令実行の順
    序に従って前記キューレジスタ手段に書き込む順序を制
    御する書き込み制御手段を有することを特徴とすると情
    報処理システム。
  14. 【請求項14】請求項13項の情報処理システムにおい
    て、前記書き込み制御手段は、前記各バンクに対応する
    複数のデータバッファと、 前記複数のバンクから前記複数のデータバッファへのデ
    ータの書き込みを制御する書き込み制御回路と、 前記キューレジスタ手段へ転送すべきデータが格納され
    ている前記主記憶のバンクの番号を、命令実行の順序に
    従って記憶するバンク順序記憶回路と、 前記複数のデータバッファからのデータを、前記バンク
    順序記憶回路に記憶されているバンクの番号に従って選
    択し、前記キューレジスタ手段に書き込むための選択回
    路とを有する情報処理システム。
  15. 【請求項15】請求項1項の情報処理システムにおい
    て、前記キューレジスタ手段は前記命令処理ユニットに
    接続される先入れ先出し型の第1のキューレジスタと、
    この第1のキューレジスタと前記主記憶部との間に接続
    される先入れ先出し型の第2のキューレジスタとから成
    ることを特徴とする情報処理システム。
  16. 【請求項16】請求項15項の情報処理システムにおい
    て、前記主記憶部から前記第2のキューレジスタに書き
    込まれるデータの書き込み位置を、そのデータが前記命
    令処理ユニットで処理される順序に従って制御する書き
    込み制御手段とを有することを特徴とする情報処理シス
    テム。
  17. 【請求項17】主記憶に格納されているデータ、及び、
    命令の一部を格納するキャッシュメモリ手段と、 前記キャッシュメモリ手段に格納された命令の実行を行
    う命令処理ユニットであって、 前記キャッシュメモリ手段に格納された命令をデコード
    する命令デコード部と、 データを格納する少なくとも1つのレジスタと、 前記レジスタに格納されたデータに対して、所定の演算
    を行う少なくとも1つの演算器と、を有する命令処理ユ
    ニットと、 前記命令処理ユニットに接続され、この命令処理ユニッ
    トの命令の実行により前記主記憶部から読みだされるデ
    ータを格納する先入れ先出し型のキューレジスタ手段と
    を有する情報処理装置。
  18. 【請求項18】請求項17項の情報処理装置において、
    前記キャッシュメモリ手段に格納される命令は、前記主
    記憶部から前記キューレジスタ手段へデータを転送する
    プリロード命令を含むことを特徴とする情報処理装置。
  19. 【請求項19】請求項17項記載の情報処理装置におい
    て、前記キャッシュメモリ手段に格納される命令は、前
    記キューレジスタ手段から前記レジスタへデータを転送
    する命令を含むことを特徴とする情報処理装置。
  20. 【請求項20】請求項18項記載の情報処理装置におい
    て、前記キャッシュメモリ手段に格納される前記プリロ
    ード命令は、前記主記憶部から前記キューレジスタ手段
    へのデータの転送と前記キューレジスタ手段から前記レ
    ジスタへのデータの転送とを行う複合命令を含むことを
    特徴とする情報処理装置。
  21. 【請求項21】請求項17項記載の情報処理装置におい
    て、前記キャッシュメモリ手段に格納される命令は、前
    記キューレジスタ手段からデータを削除する命令を含む
    ことを特徴とする情報処理装置。
  22. 【請求項22】請求項17項記載の情報処理装置におい
    て、前記キャッシュメモリ手段に格納される命令は、前
    記キューレジスタ手段に格納されたデータを用いて前記
    演算器で演算を行うキュー演算命令を含むことを特徴と
    する情報処理装置。
  23. 【請求項23】請求項22項記載の情報処理装置におい
    て、前記キャッシュメモリ手段に格納されるキュー演算
    命令は、前記キューレジスタ手段に格納された複数のデ
    ータの間の演算を行う命令を含むことを特徴とする情報
    処理装置。
  24. 【請求項24】請求項22項記載の情報処理装置におい
    て、前記キャッシュメモリ手段に格納されるキュー演算
    命令は、演算の実行後に演算に使用したデータをキュー
    レジスタから削除する命令、又は、削除しない命令を含
    むことを特徴とする情報処理装置。
  25. 【請求項25】請求項17項記載の情報処理装置におい
    て、前記キューレジスタ手段は、前記主記憶部に接続さ
    れる複数のキューレジスタと、 前記複数のキューレジスタと前記演算器を接続する手段
    とを有することを特徴とする情報処理装置。
  26. 【請求項26】請求項25項記載の情報処理装置におい
    て、前記命令処理ユニットが有する複数の演算器は整数
    演算器、及び、浮動小数点演算器を含み、これらの演算
    器のそれぞれに前記複数のキューレジスタが接続されて
    いることを特徴とする情報処理装置。
  27. 【請求項27】請求項17項の情報処理装置において、
    前記主記憶部から前記キューレジスタ手段に書き込まれ
    るデータの書き込み位置を、そのデータが前記命令処理
    ユニットで処理される順序に従って制御する書き込み制
    御手段を有することを特徴とする情報処理装置。
  28. 【請求項28】請求項27項の情報処理装置において、
    前記書き込み制御手段は前記キューレジスタ手段に書き
    込まれたデータの最上位の位置、及び、最後尾の位置を
    記憶する回路を有することを特徴とする情報処理装置。
  29. 【請求項29】請求項17項の情報処理装置において、
    前記主記憶部が複数のバンクからなり、前記複数のバン
    クのそれぞれに格納されたデータを、命令実行の順序に
    従って前記キューレジスタ手段に書き込む順序を制御す
    る書き込み制御手段を有することを特徴とする情報処理
    装置。
  30. 【請求項30】請求項29項の情報処理装置において、
    前記書き込み制御手段は、前記各バンクに対応する複数
    のデータバッファと、 前記複数のバンクから前記複数のデータバッファへのデ
    ータの書き込みを制御する書き込み制御回路と、 前記キューレジスタ手段へ転送すべきデータが格納され
    ている前記主記憶のバンクの番号を、命令実行の順序に
    従って記憶するバンク順序記憶回路と、 前記複数のデータバッファからのデータを、前記バンク
    順序記憶回路に記憶されているバンクの番号に従って選
    択し、前記キューレジスタ手段に書き込むための選択回
    路とを有する情報処理装置。
  31. 【請求項31】請求項17項の情報処理装置において、
    前記キューレジスタ手段は前記命令処理ユニットに接続
    される先入れ先出し型の第1のキューレジスタと、この
    第1のキューレジスタと前記主記憶部との間に接続され
    る先入れ先出し型の第2のキューレジスタとから成るこ
    とを特徴とする情報処理装置。
  32. 【請求項32】請求項31項の情報処理装置において、
    前記主記憶部から前記第2のキューレジスタに書き込ま
    れるデータの書き込み位置を、そのデータが前記命令処
    理ユニットで処理される順序に従って制御する書き込み
    制御手段とを有することを特徴とする情報処理装置。
JP6084321A 1994-04-22 1994-04-22 情報処理装置、及び、情報処理システム Pending JPH07295882A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6084321A JPH07295882A (ja) 1994-04-22 1994-04-22 情報処理装置、及び、情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6084321A JPH07295882A (ja) 1994-04-22 1994-04-22 情報処理装置、及び、情報処理システム

Publications (1)

Publication Number Publication Date
JPH07295882A true JPH07295882A (ja) 1995-11-10

Family

ID=13827254

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6084321A Pending JPH07295882A (ja) 1994-04-22 1994-04-22 情報処理装置、及び、情報処理システム

Country Status (1)

Country Link
JP (1) JPH07295882A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999030231A1 (fr) * 1997-12-10 1999-06-17 Hitachi, Ltd. Procede permettant d'optimiser l'acces memoire
WO2006112111A1 (ja) 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリシステム及びその制御方法
JP2014532231A (ja) * 2011-09-30 2014-12-04 クアルコム,インコーポレイテッド Fifoロード命令

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999030231A1 (fr) * 1997-12-10 1999-06-17 Hitachi, Ltd. Procede permettant d'optimiser l'acces memoire
WO2006112111A1 (ja) 2005-04-08 2006-10-26 Matsushita Electric Industrial Co., Ltd. キャッシュメモリシステム及びその制御方法
US7953935B2 (en) 2005-04-08 2011-05-31 Panasonic Corporation Cache memory system, and control method therefor
JP2014532231A (ja) * 2011-09-30 2014-12-04 クアルコム,インコーポレイテッド Fifoロード命令
JP2016192212A (ja) * 2011-09-30 2016-11-10 クアルコム,インコーポレイテッド Fifoロード命令
US9823928B2 (en) 2011-09-30 2017-11-21 Qualcomm Incorporated FIFO load instruction

Similar Documents

Publication Publication Date Title
US5437043A (en) Information processing apparatus having a register file used interchangeably both as scalar registers of register windows and as vector registers
US6131145A (en) Information processing unit and method for controlling a hierarchical cache utilizing indicator bits to control content of prefetching operations
US5386563A (en) Register substitution during exception processing
EP0054888B1 (en) Data-processing system with main and buffer storage control
JPH07152733A (ja) ベクトル・データを処理するコンピュータ・システムおよび方法
JPH03191461A (ja) データ処理システム
JPH06236273A (ja) スーパースカラ・プロセッサ・システムにおいて複数命令を単一サイクルでディスパッチするための方法およびシステム
US5930820A (en) Data cache and method using a stack memory for storing stack data separate from cache line storage
JPH06242954A (ja) 独立にアクセスされる中間記憶域を利用してスーパースカラ・プロセッサ・システムにおける命令ディスパッチを改善する方法およびシステム
US6078993A (en) Data supplying apparatus for independently performing hit determination and data access
JP2523814B2 (ja) ム―ブアウト・システム
JPH07295882A (ja) 情報処理装置、及び、情報処理システム
JPH01205228A (ja) 命令バツフアシステム
US4816992A (en) Method of operating a data processing system in response to an interrupt
JPH05143451A (ja) データ処理装置
JP2668987B2 (ja) データ処理装置
JPH10116191A (ja) 圧縮命令用バッファを備えたプロセッサ
KR930002324B1 (ko) 기억버퍼를 갖는 마이크로 프로세서
JP2972451B2 (ja) ハードウェア制御ソフトウェアによるキャッシュメモリ制御方式
JPH06162068A (ja) ベクトル処理装置
JPH1083347A (ja) キャッシュメモリ装置
JPH0812601B2 (ja) データ処理装置
JPS63113747A (ja) 仮想記憶管理装置
JP2001022581A (ja) データ処理装置及びコンピュータ読み取り可能な記憶媒体
JPS5891570A (ja) 情報処理システム