(57)【特許請求の範囲】
【請求項１】
少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
前記メモリ装置から読み出したデータを格納するためのデータ保持手段と、
前記命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第１のデータを読み出すべくアクセスを開始し、前記データ保持手段から前記第２のデータを取り出して前記レジスタへ格納する実行手段とを備え、
前記第２のデータは、前記特定の命令が解読される以前に前記解読手段が解読した前記特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とする情報処理装置。
【請求項２】
実行手段は、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに行われ、読み出された前記第１のデータをデータ保持手段に格納する動作を、前記特定の命令に後続する命令の実行と並列に行う請求項１記載の情報処理装置。
【請求項３】
情報処理装置は、命令の読出しを行う第１のステージと、命令の解読を行う第２のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第３のステージと、メモリ装置をアクセスする第４のステージと、命令によって指定される操作の結果をレジスタに格納する第５のステージとの５つのステージを含むパイプライン構造をとるものであって、
命令読出し手段は前記第１のステージにおいて作用し、解読手段は前記第２のステージにおいて作用し、実行手段は前記第３から第５のステージにおいて作用し、特にデータ保持手段からの第２のデータの取り出しを前記第４のステージで行う請求項１または請求項２記載の情報処理装置。
【請求項４】
少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
前記メモリ装置から読み出した２個以上のｎ個のデータを格納するための第１から第ｎのデータ保持手段と、
前記命令読み出し手段により読み出された命令を解読する解読手段と、
この解読手段により前記特定の命令が置かれていると解読されるごとに１ずつ増分され、１からｎの間を巡回する計数手段と、
レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第１のデータを読み出すべくアクセスを開始し、前記計数手段が示す値ｋで定まる第ｋのデータ保持手段から前記第２のデータを取り出して前記レジスタへ格納する実行手段とを備え、前記第２のデータは、解読された前記特定の命令からｎだけ前の前記特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とする情報処理装置。
【請求項５】
実行手段は、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに行われ、読み出された前記第１のデータを第ｋのデータ保持手段に格納する動作を、前記特定の命令に後続する命令の実行と並列に行う請求項４記載の情報処理装置。
【請求項６】
少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
前記メモリ装置から読み出したデータを格納するためのデータ保持手段と、
このデータ保持手段が格納するデータが有効か無効かを示すデータ有効フラグと、
前記命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第１のデータを読み出すべくアクセスを開始し、
前記データ有効フラグが有効を示す場合は、前記データ保持手段から前記第２のデータを取り出して前記レジスタへ格納し、
前記データ有効フラグが無効を示す場合は、前記データ有効フラグが有効を示すのを待って、前記データ保持手段から前記第２のデータを取り出して前記レジスタへ格納する実行手段とを備え、
前記第２のデータは、前記特定の命令が解読される以前に前記解読手段が解読した前記特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とする情報処理装置。
【請求項７】
実行手段は、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに、読み出された前記第１のデータをデータ保持手段に格納するとともに、データ有効フラグを有効にする動作を、前記特定の命令に後続する命令の実行と並列に行う請求項６記載の情報処理装置。
【請求項８】
解読手段はさらに、外部から割込み要求を受けたとき、データ有効フラグが有効を示す場合は、割込み要求を受理し、前記データ有効フラグが無効を示す場合は、前記データ有効フラグが有効を示すのを待って、前記割込み要求を受理する請求項６または７記載の情報処理装置。
【請求項９】
解読手段は、割込み要求を受理したとき、データ保持手段に保持されているデータを前記メモリ装置または他のメモリ装置の所定の領域に退避する請求項８記載の情報処理装置。
【請求項１０】
少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
前記メモリ装置から読み出したデータを格納するためのデータ保持手段と、
前記命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第１のデータを読み出すべくアクセスを開始し、前記データ保持手段から前記第２のデータを取り出して前記命令によって指示された演算を行った後に前記レジスタへ格納する実行手段とを備え、
前記第２のデータは、前記特定の命令が解読される以前に前記解読手段が解読した前記特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とする情報処理装置。
【請求項１１】
実行手段は、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに行われ、読み出された前記第１のデータをデータ保持手段に格納する動作を、前記特定の命令に後続する命令の実行と並列に行う請求項１０記載の情報処理装置。
【請求項１２】
命令の読出しを行う第１のステージと、命令の解読を行う第２のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第３のステージと、前記メモリ装置をアクセスする第４のステージと、命令によって指定される操作の結果をレジスタに格納する第５のステージとの５つのステージを含むパイプライン構造をとる情報処理装置であって、
命令読出し手段は前記第１のステージにおいて作用し、解読手段は前記第２のステージにおいて作用し、実行手段は前記第３から第５のステージにおいて作用し、特にデータ保持手段からの第２のデータの取り出しと演算とを前記第３のステージで行う請求項１０または１１記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、命令に従ってパイプライン的にデータをメモリ装置より読み出し演算を行う情報処理装置に関するものである。
【０００２】
【従来の技術】
近年の電子技術の発展により、マイクロコンピュータをはじめ情報処理装置が普及し、あらゆる分野で用いられている。
従来、情報処理装置では、処理性能を向上させるために、パイプライン処理を行うことが多い。パイプライン処理とは、１つの命令の処理を複数のステージに分け、ステージをずらして複数の命令を並列に実行するものである。
【０００３】
図８は従来の情報処理装置の構成を示すブロック図である。
図８において、１０１はメモリ装置１４０から読み出した命令１２０を解読するデコーダであり、解読結果１１３、１１４、および命令内に含まれる即値１２１を出力する。１０２は演算に用いるデータを格納するレジスタを複数有するレジスタファイルであり、１０３はデータ１１７とレジスタファイル１０２から読み出されたデータ１１０、１１１およびデコーダ１０１が出力する即値１２１を用いて演算を行う演算装置であり、１０４はデコーダ１０１で命令を解読したデコード結果１１３に応じて、データをメモリ装置１４０から読み出したり、データをメモリ装置１４０へ書き込んだりするための制御を行うメモリ制御回路である。１０５はデコーダ１０１で命令を解読したデコード結果１１４に応じて、演算装置１０３やレジスタファイル１０２などを制御する実行制御回路である。
例えば、１つの命令を５つのステージに分けてパイプライン処理する場合を説明する。
【０００４】
５つのステージは、命令フェッチステージ（以下、ＩＦステージ）、命令デコードステージ（以下、ＤＥＣステージ）、演算ステージ（以下、ＥＸステージ）、メモリステージ（以下、ＭＥＭステージ）、書き込みステージ（以下、ＷＢステージ）からなる。ＩＦステージでメモリ装置１４０から命令を読み出し、読み出した命令１２０をDECステージでデコーダ１０１が解読する。解読した命令が演算命令の場合は、ＥＸステージでレジスタファイル１０２から読み出したデータ１１０、１１１またはデコーダ１０１が出力する即値１２１を用いて命令で指定された演算を行う。演算した結果はＷＢステージでレジスタファイル１０２の中の、命令で指定されたレジスタへ格納される。
【０００５】
解読された命令がデータ読み出し命令あるいはデータ書き込み命令である場合は、ＥＸステージで演算装置１０３はレジスタファイル１０２から読み出したデータ１１０、１１１、または命令によって与えられる即値１２１を用いて、メモリ装置１４０内の場所を示すアドレス１１５を生成してメモリ制御回路１０４へ出力する。解読された命令がデータ読み出し命令の場合は、メモリ制御回路１０４はMEMステージで演算装置１０３が出力するアドレス１１５をアドレス１１６として出力し、メモリ装置１４０よりデータを読み出し、読み出されたデータ１１７はレジスタファイル１０２へ与えられ、ＷＢステージでレジスタファイル１０２内の指定されたレジスタへ格納される。さらに、後続の命令がデータ読み出し命令の結果のデータを用いる場合は、レジスタファイル１０２は、ＷＢステージでデータをレジスタへ格納するのと同時にデータ１１０または１１１として直接、演算装置１０３へ出力する。データ書き込み命令の場合は、レジスタファイル１０２から読み出されたデータ１１８がＭＥＭステージでメモリ装置１４０へ与えられ、同時にメモリ制御回路１０４は演算装置１０３が出力するアドレス１１５をアドレス１１６としてメモリ装置１４０へ与え、ＷＢステージでアドレス１１６で指定される場所へデータ１１８が格納される。
【０００６】
図９に従来の情報処理装置のパイプライン動作の例を示す。
図９では、４つの命令を実行している様子を示している。この図で、ａ０，ｄ０，ｄ１，ｄ２はレジスタファイル１０２の中のレジスタの名前である。また、（ａ０）はレジスタａ０の値をアドレスとして指定されるメモリ装置内のデータを示す。第１命令および第３命令はデータ読み出し命令ｍｏｖであり、第２命令および第４命令は加算命令ａｄｄである。第１命令ｍｏｖは、レジスタａ０の値をアドレスとして、メモリ装置１４０からデータを読み出し、レジスタｄ０へ格納する。第２命令ａｄｄは、レジスタｄ２の値と１を加算し、加算結果をレジスタｄ２に格納する。第３命令ｍｏｖは、レジスタａ０の値に４を加算し、その結果をアドレスとしてメモリ装置１４０からデータを読み出し、レジスタｄ１に格納する。第４命令ａｄｄは、レジスタｄ２の値と１を加算し、加算結果をレジスタd2に格納する。
【０００７】
各命令は、ＩＦ、ＤＥＣ、ＥＸ、ＭＥＭ、ＷＢの５つのステージに分割され、各ステージが１クロックサイクルの期間に実行される。４つの命令は１ステージずつずらして並列に実行される。従って、１つ１つの命令の処理には５クロックサイクルが必要であるが、このようなパイプライン処理を行うことによって、命令の結果を毎サイクル得ることができ、高い処理性能を実現することができる。
【０００８】
【発明が解決しようとする課題】
ところが、データ読み出し命令で読み出したデータを次の命令が演算に用いる場合やメモリ装置の読み出しが遅い場合、処理性能の低下を生じる。
図１０にｍｏｖ命令で読み出したデータを直後の命令が演算に用いる場合を示す。
【０００９】
図１０において、第１命令ｍｏｖはレジスタａ０の値をアドレスとしてメモリ装置１４０からデータを読み出し、レジスタｄ０に格納する。このデータをＡとする。第２命令ａｄｄは、第１命令ｍｏｖによってｄ０に格納されたデータＡとレジスタｄ１の値を加算して、結果のデータをレジスタｄ１に格納する。第３命令movはレジスタａ０の値に４を加算した値をアドレスとしてメモリ装置１４０からデータを読み出し、レジスタｄ０に格納する。このデータをBとする。第４命令ａｄｄは、第３命令ｍｏｖによってｄ０に格納されたデータＢとレジスタｄ１の値を加算して、結果のデータをレジスタｄ１に格納する。この場合、第２および第４命令ａｄｄは、直前の命令ｍｏｖによってメモリ装置１４０から読み出されるデータを演算に用いるため、ａｄｄ命令のＥＸステージがｍｏｖ命令のＷＢステージの後でないとレジスタファイル１０２から読出したデータは正しくない。このときレジスタファイル１０２がデータ１１７をデータ１１０として直接、演算装置１０３にも供給することで、ａｄｄ命令のＥＸステージをｍｏｖ命令のＷＢステージと並列にすることができる。しかしそれでも、ｍｏｖ命令で読み出されるデータは、ｍｏｖ命令のＷＢステージになるまで使用できないため、ａｄｄ命令のＥＸステージがｍｏｖ命令のＷＢステージまで待たされてしまう。このようにデータ読み出し命令で読み出したデータを次の命令が演算に用いる場合に命令の実行が待たされ、処理性能の低下をもたらす。
【００１０】
図１１に、メモリ装置の読み出し速度が遅い場合を示す。この例では、実行される命令は図９の場合と同じであるが、メモリ装置の読み出しに図９の場合よりさらに２クロックサイクル余分に必要である。第２命令および第４命令ａｄｄは直前の命令ｍｏｖが読み出したデータを用いないが、ｍｏｖ命令のＷＢステージが完了するまでａｄｄ命令のＷＢステージは待たされる。このように、ａｄｄ命令も処理が中断され処理性能の低下をもたらす。
【００１１】
この発明はかかる課題に鑑み、メモリからのデータ読み出し命令による後続の命令の処理の中断を減らし、処理性能の高い情報処理装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
請求項１記載の情報処理装置は、少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出したデータを格納するためのデータ保持手段と、
命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第１のデータを読み出すべくアクセスを開始し、データ保持手段から第２のデータを取り出してレジスタへ格納する実行手段とを備え、
第２のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とするものである。
【００１３】
請求項１記載の情報処理装置によれば、以前に解読手段が解読した特定の命令の実行に基づいてメモリ装置から読み出されたデータをデータ保持手段から読み出した後に、新たにメモリ装置からデータの読み出しを実行することができ、メモリ装置からのデータの読み出しの完了を待たずに、次の命令の処理が可能で、処理時間の短縮を図って、処理性能の向上を実現することができ、極めて有用である。
【００１４】
請求項２記載の情報処理装置は、請求項１において、実行手段が、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに行われ、読み出された第１のデータをデータ保持手段に格納する動作を、特定の命令に後続する命令の実行と並列に行うものである。
請求項２記載の情報処理装置によれば、請求項１と同様な効果がある。
【００１５】
請求項３記載の情報処理装置は、請求項１または請求項２において、情報処理装置が、命令の読出しを行う第１のステージと、命令の解読を行う第２のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第３のステージと、メモリ装置をアクセスする第４のステージと、命令によって指定される操作の結果をレジスタに格納する第５のステージとの５つのステージを含むパイプライン構造をとるものであって、
命令読出し手段は第１のステージにおいて作用し、解読手段は第２のステージにおいて作用し、実行手段は第３から第５のステージにおいて作用し、特にデータ保持手段からの第２のデータの取り出しを第４のステージで行うものである。
【００１６】
請求項３記載の情報処理装置によれば、請求項１または請求項２と同様な効果がある。
請求項４記載の情報処理装置は、少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出した２個以上のｎ個のデータを格納するための第１から第ｎのデータ保持手段と、
命令読み出し手段により読み出された命令を解読する解読手段と、
この解読手段により特定の命令が置かれていると解読されるごとに１ずつ増分され、１からｎの間を巡回する計数手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第１のデータを読み出すべくアクセスを開始し、計数手段が示す値ｋで定まる第ｋのデータ保持手段から第２のデータを取り出してレジスタへ格納する実行手段とを備え、第２のデータは、解読された特定の命令からｎだけ前の特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とするものである。
【００１７】
請求項４記載の情報処理装置によれば、請求項１と同様な効果に加えて、ｎ個までのメモリ装置からのデータの読み出しの完了を待たずに次の命令の処理が可能で、処理時間の一層の短縮が図れる。
請求項５記載の情報処理装置は、請求項４において、実行手段が、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに行われ、読み出された第１のデータを第ｋのデータ保持手段に格納する動作を、特定の命令に後続する命令の実行と並列に行うものである。
【００１８】
請求項５記載の情報処理装置によれば、請求項４と同様な効果かある。
請求項６記載の情報処理装置は、少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出したデータを格納するためのデータ保持手段と、
このデータ保持手段が格納するデータが有効か無効かを示すデータ有効フラグと、
命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第１のデータを読み出すべくアクセスを開始し、
データ有効フラグが有効を示す場合は、データ保持手段から第２のデータを取り出してレジスタへ格納し、
データ有効フラグが無効を示す場合は、データ有効フラグが有効を示すのを待って、データ保持手段から第２のデータを取り出してレジスタへ格納する実行手段とを備え、
第２のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とするものである。
【００１９】
請求項６記載の情報処理装置によれば、請求項１と同様な効果のほか、データの読み出しが完了する前にデータ保持手段から間違った値を読み出すことを防ぐことができ、極めて有用である。
請求項７記載の情報処理装置は、請求項６において、実行手段が、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに、読み出された第１のデータをデータ保持手段に格納するとともに、データ有効フラグを有効にする動作を、特定の命令に後続する命令の実行と並列に行うものである。
【００２０】
請求項７記載の情報処理装置によれば、請求項６と同様な効果がある。
請求項８記載の情報処理装置は、請求項６または請求項７において、解読手段がさらに、外部から割込み要求を受けたとき、データ有効フラグが有効を示す場合は、割込み要求を受理し、データ有効フラグが無効を示す場合は、データ有効フラグが有効を示すのを待って、割込み要求を受理するものである。
【００２１】
請求項８記載の情報処理装置によれば、請求項６または請求項７と同様な効果のほか、特定の命令の後に発生する割込み要求についても矛盾なく対応することができる。
請求項９記載の情報処理装置は、請求項８において、解読手段が、割込み要求を受理したとき、データ保持手段に保持されているデータをメモリ装置または他のメモリ装置の所定の領域に退避するものである。
【００２２】
請求項９記載の情報処理装置によれば、請求項８と同様な効果がある。
請求項１０記載の情報処理装置は、少なくともメモリ装置からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出したデータを格納するためのデータ保持手段と、
命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第１のデータを読み出すべくアクセスを開始し、データ保持手段から第２のデータを取り出して命令によって指示された演算を行った後にレジスタへ格納する実行手段とを備え、
第２のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第１のデータとして読み出されたデータであることを特徴とするものである。
【００２３】
請求項１０記載の情報処理装置によれば、請求項１と同様な効果に加えて、データ保持手段に格納されたデータ、すなわち以前に解読手段が解読した特定の命令でメモリ装置より読み出されたデータを用いて演算を行うことにより、メモリ装置の読み出しに要する時間を削減して演算ができ、処理性能の向上を実現することができ、極めて有用である。
【００２４】
請求項１１記載の情報処理装置は、請求項１０において、実行手段が、特定の命令によって開始された第１のデータの読み出しのアクセスが終了したときに行われ、読み出された第１のデータをデータ保持手段に格納する動作を、特定の命令に後続する命令の実行と並列に行うものである。
請求項１１記載の情報処理装置によれば、請求項１０と同様な効果がある。
【００２５】
請求項１２記載の情報処理装置は、請求項１０または請求項１１において、命令の読出しを行う第１のステージと、命令の解読を行う第２のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第３のステージと、メモリ装置をアクセスする第４のステージと、命令によって指定される操作の結果をレジスタに格納する第５のステージとの５つのステージを含むパイプライン構造をとる情報処理装置であって、
命令読出し手段は第１のステージにおいて作用し、解読手段は第２のステージにおいて作用し、実行手段は第３から第５のステージにおいて作用し、特にデータ保持手段からの第２のデータの取り出しと演算とを第３のステージで行うものである。
【００２６】
請求項１２記載の情報処理装置によれば、請求項１０または請求項１１と同様な効果がある。 
【００４１】
【発明の実施の形態】
以下、この発明の実施の形態について、図１から図６を用いて説明する。
（第１の実施の形態）
この発明の第１の実施の形態を図１から図３により説明する。図１は、この発明の第１の実施の形態における情報処理装置の構成を示すブロック図である。
【００４２】
図１において、１はメモリ装置４０から読み出した命令２０を解読するデコーダであり、解読したデコード結果１３、１４、命令内に含まれる即値２１およびデータ先読み信号２２を出力する。２は演算に用いるデータを格納するレジスタを複数有するレジスタファイルであり、３はレジスタファイル２から読み出されたデータ１０、１１、またはデコーダ１が出力する即値２１を用いて演算を行う演算装置であり、４はデコーダ１のデコード結果１３に応じて、データをメモリ装置４０から読み出したり、データをメモリ装置４０へ書き込んだりするための制御を行うメモリ制御回路である。５はデコーダ１のデコード結果１４に応じて、演算装置３、レジスタファイル２などを制御する実行制御回路である。
【００４３】
６は読み出しデータ保持回路であり、メモリ装置４０から読み出したデータを一時的に保持する。８はデータ先読み回路であり、メモリ装置４０からデータを読み出す前に、以前に読み出しデータ保持回路６に格納されたデータを読み出してレジスタファイル２へ出力する。
そして、この情報処理装置は、少なくともメモリ装置４０からの第１のデータの読み出しと第２のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段を主に構成する命令読出し制御回路２５と、メモリ装置４０から読み出したデータを格納するためのデータ保持手段を構成する読み出しデータ保持回路６と、命令読み出し手段により読み出された命令を解読する解読手段であるデコーダ１と、レジスタファイル２を含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第１のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置４０から第１のデータを読み出すべくアクセスを開始し、データ保持手段から第２のデータを取り出してレジスタファイル２へ格納する実行手段を主に構成する実行部２６とを備え、第２のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第１のデータとして読み出されたデータとしているものである。
【００４４】
この第１の実施の形態においても、図１１で示す従来の情報処理装置と同様に、ＩＦステージ、ＤＥＣステージ、ＥＸステージ、ＭＥＭステージ、および、ＷＢステージの５つのステージに分けて命令を処理する。データ読み出し、データ書き込み、および演算命令の処理は、従来と同様に処理される。ただし、データ読み出しの場合、メモリ装置４０から読み出されたデータ１７はデータ２４としてレジスタファイル２へ与えられる。
【００４５】
データ先読み命令の処理について説明する。データ先読み命令は、指定したアドレスを用いてメモリ装置４０から読み出したデータを読み出しデータ保持回路６に格納する前に、読み出しデータ保持回路６に格納されているデータを読み出して、レジスタファイル２の指定したレジスタに格納する命令である。つまり、前回実行したデータ先読み命令でメモリ装置４０から読み出したデータをレジスタファイル２に格納すると同時に、メモリ装置４０からの新たな読み出しを実行する命令である。
【００４６】
図１を用いて、データ先読み命令の動作を説明する。デコーダ１は命令読出し制御回路２５によってメモリ装置４０から読み出された命令２０を解読する。デコード結果１３、１４はメモリ制御回路４および実行制御回路５へ出力される。さらに、解読した命令がデータ先読み命令である場合、デコーダ１はデータ先読み信号２２をデータ先読み回路８へ出力する。演算装置３は実行制御回路５の制御に従って、ＥＸステージでレジスタファイル２から読み出したデータ１０、１１、または、デコーダ１が出力する即値２１を用いてアドレスを計算し、メモリ制御回路４へ出力する。メモリ制御回路４はＭＥＭステージで、演算装置３から出力されたアドレス１５をアドレス１６として出力し、メモリ装置４０へデータの読み出しを要求する。データ先読み回路８は、データ先読み信号２２が与えられると、ＭＥＭステージでデータ読み出し信号２３を出力し、読み出しデータ保持回路６に格納されているデータ、すなわち、前回のデータ先読み命令でメモリ装置４０から読み出され格納されたデータを読み出してレジスタファイル２へデータ２４として与え、レジスタファイル２はＷＢステージで、命令で指定されたレジスタでデータ２４を格納する。さらに、後続の命令がデータ先読み命令の結果のデータを用いる場合は、レジスタファイル２は、ＷＢステージでデータをレジスタへ格納するのと同時にデータ１０または１１として直接演算装置３へ出力する。
【００４７】
データ先読み命令は、演算に必要になる場合に先だって実行しておく。そして、演算に必要になった時に、再びデータ先読み命令を実行する。この２回目のデータ先読み命令によって、１回目のデータ先読み命令でメモリ装置４０から読みだされたデータが得られ、演算に用いられる。さらに２回目のデータ先読み命令によって、メモリ装置４０からデータの読みだしが行われ、読み出されたデータは３回目のデータ先読み命令によって得られ、演算に用いられる。この動作を図２と図３とを用いて説明する。
【００４８】
図２および図３はいずれも、第１の実施の形態における情報処理装置のパイプライン動作の例を示した図である。
図２において、第１、第３、および第５の命令はデータ先読み命令ｍｏｖｐである。第１命令ｍｏｖｐは、ＥＸステージでアドレス計算が行われ、得られたアドレスａ０を用いて、MEMステージにメモリ装置４０よりデータの読み出しを行うと同時に読み出しデータ保持回路６にすでに格納されているデータを読み出して、レジスタファイル２へ出力する。レジスタファイル２は読み出しデータ保持回路６より読み出されたデータを第１命令ｍｏｖｐのＷＢステージに指定されたレジスタへ格納する。次のデータ先読み命令、すなわち、第３命令ｍｏｖｐでは、ＥＸステージでアドレス計算を行い、得られたアドレスａ０＋４を用いて、ＭＥＭステージにメモリ装置４０よりデータの読み出しを行うと同時に読み出しデータ保持回路６にすでに格納されているデータを読み出し、レジスタファイル２へ与えられる。この時、読み出しデータ保持回路６には、以前のデータ先読み命令、すなわち、第１命令ｍｏｖｐでアドレスａ０を用いてメモリ装置４０より読み出されたデータＡが格納されており、このデータＡがレジスタファイル２へ与えられ、第３命令ｍｏｖｐのＷＢステージで指定されたレジスタｄ０へ格納される。
【００４９】
第４命令ａｄｄは第３命令でｄ０に格納されるデータＡを用いて加算を行う。第４命令ａｄｄのＥＸステージは、第３命令ｍｏｖｐのＭＥＭステージと並列であり、レジスタｄ０にはまだデータＡは格納されていない。そこで、レジスタファイル２は第３命令ｍｏｖｐのＭＥＭステージに読み出しデータ保持回路６から読み出されたデータＡをデータ１０またはデータ１１として直ちに演算装置３へ与える。これによって、第４命令ａｄｄのＥＸステージは待たされることなく加算を実行する。
【００５０】
同様に第５命令ｍｏｖｐは、ＭＥＭステージに、読み出しデータ保持回路６から、第３命令ｍｏｖｐがメモリ装置４０から読み出したデータＢを読み出してレジスタファイル２へ出力し、第６命令ａｄｄは、読み出しデータ保持回路６からレジスタファイル２へ出力されたデータＢを用いて、ＥＸステージに加算を行う。
【００５１】
このようにして、データ先読み命令は、メモリ装置４０からのデータの読み出しを実行するのと同時に、前回のデータ先読み命令でメモリ装置４０から読み出されデータ保持回路６へ格納されたデータを直ちに読み出すことにより、直後の命令がデータ先読み命令の結果を用いる場合でも、待たされることなく処理を行うことができる。
【００５２】
図３に、メモリ装置４０の読み出し速度が遅い場合のデータ先読み命令の動作を説明する。図３において、第１、第４、および第７の命令はデータ先読み命令ｍｏｖｐである。ここでは、図２の場合と比べて、メモリ装置４０のデータ読み出しの時間が２クロックサイクルだけ長く、ｍｏｖｐ命令のＷＢステージの２クロックサイクル後のＬと記されたところ（以降、疑似的にＬステージと書く）で読み出されたデータ１７が読み出しデータ保持回路６に格納される。しかし、ｍｏｖｐ命令は読み出しデータ保持回路６にすでに格納されているデータを読み出してレジスタファイル２に格納するので、ｍｏｖｐ命令のメモリ装置４０からのデータ読み出しの完了を待たずに、後続の命令は処理を行うことができる。第１命令ｍｏｖｐのLステージは第４命令ｍｏｖｐのＭＥＭステージと並列であるので、第４命令ｍｏｖｐではＭＥＭステージに、読み出しデータ保持回路６に格納されているデータ、すなわち、第１命令ｍｏｖｐによってメモリ装置４０より読み出されたデータＡが読み出され、ＷＢステージにレジスタｄ０へ格納される。同様に、第７命令ｍｏｖｐのＭＥＭステージで、読み出しデータ保持回路６に格納されているデータ、すなわち、第４命令ｍｏｖｐによってメモリ装置４０より読み出されたデータＢが読み出され、ＷＢステージにレジスタｄ１へ格納される。このように、メモリ装置４０の読み出し速度が遅い場合でも、命令の処理を止めずに実行することができる。なお、ここでは、２つのデータ先読み命令の間に、適当な命令を挿入して、先行するデータ先読み命令ｍｏｖｐのメモリ読み出しが完了した後に、後続のデータ先読み命令ｍｏｖｐが読み出しデータ保持回路６からデータを読み出すようにタイミングの調整を行っている。
【００５３】
以上のように、この発明の第１の実施の形態によれば、メモリ装置４０から事前に読み出したデータを必要な時にデータ先読み回路８によって、読み出しデータ保持回路６から読み出すことができ、したがってデータ待ちのために停止する時間を削減することができ、処理性能が向上する。
また、メモリ装置４０の読み出し速度が遅い場合でも、メモリ装置４０からのデータの読み出しが完了するのを待たずに、後続の命令を実行することができ処理性能が向上する。
【００５４】
なお、読み出しデータ保持回路６に複数のデータを保持できるようにして、複数回前のデータ先読み命令によってメモリ装置４０より読み出され、格納されたデータを読み出しデータ保持回路６から読み出すとしてもよい。この場合は、読み出しデータ保持回路６に１番目からｎ番目のｎ個のサブデータ保持回路を設け、さらにデータ先読み命令がデコーダ１によって解読されるたびに１ずつ増分され、１からｎの間を巡回するｎ進カウンタを設けて、カウンタが示す値ｋで定まるｋ番目のサブデータ保持回路からデータを読み出し、メモリ装置４０より読み出されたデータをｋ番目のサブデータ保持回路に格納することで実現できる。
（第２の実施の形態）
この発明の第２の実施の形態を図４により説明する。図４は、この発明の第２の実施の形態における情報処理装置の構成を表すブロック図である。
【００５５】
図４において、図１に示した第１の実施の形態における情報処理装置と同じ構成要素は同じ番号を付して説明を省略し、異なる点を中心に説明する。
図４において、３０はデータ有効フラグであり、読み出しデータ保持回路６に、前回のデータ先読み命令によってメモリ装置４０より読み出されたデータが格納されているか、まだ格納されていないかをデータ有効信号３１によって示す。データ有効信号３１が“１”の場合は前回のデータ先読み命令によるメモリ装置４０からのデータ読み出しが完了し、データがすでに読み出しデータ保持回路６に格納されていることを示し、“０”の場合は前回のデータ先読み命令によるデータがまだ読み出しデータ保持回路６に格納されていないことを示す。なお、データ有効信号３１の初期値は“１”である。
【００５６】
デコーダ１に与えられた命令２０がデータ先読み命令である場合、デコーダ１はデコード結果１３、１４をメモリ制御回路４および実行制御回路５へ出力し、データ先読み信号２２をデータ先読み回路８へ出力する。演算装置３は実行制御回路５の制御に従って、ＥＸステージでレジスタファイル２から読み出したデータ１０、１１またはデコーダ１が出力する即値２１を用いてアドレス１５を計算し、メモリ制御回路４へ出力する。データ先読み回路８はデータ先読み信号２２が与えられると、データ有効フラグ３０が出力するデータ有効信号３１を調べ、データ有効信号３１が“０”である場合、すなわち、前回のデータ先読み命令によるメモリ装置４０からの読み出しが完了していないことがわかった場合は、実行制御回路５およびメモリ制御回路４に実行停止要求信号３３を出力し、これによって実行制御回路５およびメモリ制御回路４は命令の処理を停止する。前回のデータ先読み命令によるメモリ装置４０からのデータ読み出しが完了し、読み出したデータ１７が読み出しデータ保持回路６に格納されると、同時に、メモリ装置４０は読み出し完了信号３２をデータ有効フラグ３０へ出力し、これによって、データ有効信号３１が“１”にセットされる。データ有効信号３１が“１”にセットされると、データ先読み回路８は実行停止要求信号３３を解除し、実行制御回路５およびメモリ制御回路４は処理を再開する。データ先読み回路８はデータ読み出し信号２３を出力してデータ保持回路６からデータ２４を読み出す。読み出されたデータ２４はレジスタファイル２へ与えられ、ＷＢステージに命令で指定されたレジスタへ格納される。さらに、データ読み出し信号２３が出力されると、データ有効フラグ３０のデータ有効信号３１は“０”にリセットされ、同時に、メモリ制御回路４は演算装置３から与えられたアドレス１５を用いてメモリ装置４０にデータの読み出しを要求する。要求されたデータの読み出しが完了すると、メモリ装置４０はデータ１７を出力し、読み出されたデータ１７は読み出しデータ保持回路６へ格納される。データが読み出しデータ保持回路６へ格納され、読み出し完了信号３２が与えられると、データ有効フラグ３０はデータ有効信号３１に“１”を出力する。
【００５７】
データ先読み命令のＭＥＭステージにすでにデータ有効信号３１が“１”で、前回のデータ先読み命令によりメモリ装置４０から読み出されたデータがすでに読み出しデータ保持回路６に格納されていることが示されると、データ先読み回路８は実行停止要求信号３３を出力することなく、処理が続けられる。
このようにして、データ先読み命令を実行する場合に、前回のデータ先読み命令によるメモリ装置４０のデータ読み出しが完了していなければ、データ読み出しが完了するまで、命令の実行を停止することができ、データを格納する前の値を誤って読み出しデータ保持回路６から読み出すことを防ぐことができる。
【００５８】
従って、２つのデータ先読み命令の間に、データ読み出しのサイクル数分、有効な命令を挿入できなくても、無動作を指示するＮＯＰ命令を挿入する必要がなく、プログラムのサイズを小さくすることができる。また、メモリ装置４０にキャッシュメモリを用いた場合のように、キャッシュメモリがヒットするかヒットしないかによってデータの読み出し時間が変わるような場合に、データの読み出しが速い場合に合わせて２つのデータ先読み命令間に命令を挿入しておいて、データ読み出しが遅くなった場合でも、命令の実行を停止することができ、間違った値を読み出しデータ保持回路から読み出すことを防ぎ、プログラムのサイズを小さくすることができ、プログラムの作成も容易である。
【００５９】
なお、上記の構成に加えて、デコーダ１に、データ有効信号３１の値により外部より印加された割込み要求を受理するか否かを決め、割込みを受理する時に読み出しデータ保持回路６に格納されているデータを然る可き領域に退避する機能を付加してもよい。即ち、所定の信号線により伝えられた割込み要求は、データ有効信号３１が“０”の間はペンディングされ、データ有効信号３１が“１”になった時に受け付けられる。読み出しデータ保持回路６のデータの退避は、割込み処理から復帰した時にデータを元に戻すためである。こうすることにより、データ先読み命令の後に発生する割込み要求についても矛盾なく対応することができる。
（第３の実施の形態）
この発明の第３の実施の形態を図５および図６により説明する。図５は、この発明の第３の実施の形態における情報処理装置の構成を表すブロック図である。
【００６０】
図５において、図１に示した第一の実施の形態における情報処理装置と同じ構成要素は同じ番号を付して説明を省略し、異なる点を中心に説明する。
図５の情報処理装置では、読み出しデータ保持回路６から読み出したデータ２４を演算装置３へ与え、演算に用いることができる。
データ先読み演算命令を実行する場合について説明する。データ先読み演算命令とは、前回実行されたデータ先読み演算命令によってメモリ装置４０から読み出されたデータを用いて演算を行う命令である。
【００６１】
デコーダ１に与えられた命令２０がデータ先読み演算命令であることをデコーダ１が解読すると、データ先読み信号２２をデータ先読み回路８に出力する。データ先読み回路８はデータ先読み信号２２を受け取ると、読み出しデータ保持回路６より、前回のデータ先読み演算命令によってメモリ装置４０から読み出されたデータを読み出して演算装置３に出力する。演算装置３は、ＥＸステージで、実行制御回路５の制御に従って、レジスタファイル２から読み出されたデータ１０、１１、またはデコーダ１から出力される即値２１を用いてアドレスを計算するのと同時に、読み出しデータ保持回路６から読み出されたデータ２４とレジスタファイル２から読み出されたデータ１０、１１、またはデコーダ１から出力される即値２１を用いて、命令で指示された演算を実行する。演算結果１２は、レジスタファイル２へ出力され、ＷＢステージに、命令で指定されたレジスタへ格納される。また、メモリ制御回路４は、MEMステージに、演算装置３が出力するアドレス１５を用いて、メモリ装置４０よりデータの読み出しを行い、読み出されたデータを読み出しデータ保持回路６へ格納する。この動作を図６を用いて説明する。
【００６２】
図６は、第３の実施の形態における情報処理装置により、データ先読み演算命令を実行する場合のパイプライン動作を示した図である。
図６において、第１命令はデータ先読み命令ｍｏｖｐであり、第３および第５命令はデータ先読み演算命令の１つであるデータ先読み加算命令ａｄｄｐである。第３命令ａｄｄｐは第１命令ｍｏｖｐによってメモリ装置４０より読み出されたデータＡとレジスタｄ０の値を加算して結果をレジスタｄ０に格納する。さらに、ａ０＋４を計算してアドレスとし、メモリ装置４０よりデータＢを読み出す。第５命令ａｄｄｐは第３命令ａｄｄｐがメモリ装置４０より読み出したデータＢとレジスタｄ０の値を加算して結果をレジスタｄ０に格納する。さらに、ａ０＋８を計算してアドレスとし、メモリ装置４０よりデータＣを読み出す。
【００６３】
以上のように、この発明の第３の実施の形態によれば、データ先読み演算命令は、前回のデータ先読み演算命令で読み出したデータを用いて演算を行うと同時に、次回のデータ先読み演算命令で用いるデータの読み出し開始するので、メモリ装置４０からのデータの読み出しを待たずに演算ができ、データ待ちのサイクルを削減でき、処理性能の向上を図ることができる。
【００６４】
なお、ここでは、データ先読み加算命令ａｄｄｐにおいて、アドレス計算と演算はＥＸステージに同時に行われるとしたが、アドレス計算と演算を別のクロックサイクルでシーケンシャルに行うとしてもよい。
また、この例ではデータ先読み演算命令の演算として加算を行う場合を示したが、加算以外にも、減算、論理積、論理和などさまざまな演算に適用することができる。
（第４の実施の形態）
この発明の第４の実施の形態を図７により説明する。この情報処理装置は、高級言語プログラムから、パイプライン処理を行うプロセッサを対象とする機械命令プログラムを生成する情報処理装置であり、高級言語プログラム中にメモリ装置に割り付けられた変数の読み出しを行うコードを検出する読み出しコード検出手段と、機械命令生成手段とを備え、この機械命令生成手段はコードが検出された場合に、変数に割り付けられたメモリ装置のアドレスを計算し、計算されたアドレスに基づいてメモリ装置の読み出しアクセスを開始させる第１の機械命令と、アクセスが終了したときに読み出されたデータを所定のレジスタに格納する第２の機械命令とを生成する。
【００６５】
図７は、この発明の第４の実施の形態における情報処理装置の構成を示すブロック図である。
情報処理装置７０２は、ユーザが記述したＣ言語プログラム７０１を翻訳し、機械命令プログラム７１０を出力するコンパイラとして機能する。
情報処理装置７０２は、Ｃ言語プログラム７０１を読込用バッファ７０４に読み込むファイル読込部７０３と、読込用バッファ７０４に読み込まれたＣ言語プログラムの構文や意味を解析して中間コードを生成し中間コード用バッファ７０６に書き込む構文解析部７０５と、中間コード用バッファ７０６に格納された中間コードを入力して機械命令プログラムを生成し出力用バッファ７０８に書き込む機械命令生成部７０７と、出力用バッファ７０８に格納された機械命令プログラムをファイルに出力するファイル出力部７０９とから構成される。
【００６６】
表１は、Ｃ言語プログラムの例を示すプログラムリストである。
【００６７】
【表１】
0003739556.tif 000002
【００６８】
表２は、図８に示すＣ言語プログラムを入力として与えた場合に、情報処理装置７０２の中間コード用バッファ７０６に格納された中間コードプログラムを示したリストである。
【００６９】
【表２】
0003739556.tif 000003
【００７０】
表３は、表１に示すＣ言語プログラムを入力として与えた場合に、情報処理装置７０２により生成された機械命令プログラム７１０を示したリストである。なお、機械命令プログラムは本来０と１のビット列であるが、意味を表すために図１０ではニモニック表記してある。
【００７１】
【表３】
0003739556.tif 000004
【００７２】
以下に、表１のプログラムリストを入力とした場合における上記構成をもつ情報処理装置の動作について表１〜表３を用いて説明する。
ファイル読込部７０３は、ユーザが記述したＣ言語プログラム７０１を読み込み、読込用バッファ７０４に格納する。
構文解析部７０５は、読込用バッファ７０４に格納されたＣ言語プログラムを取り出す。表１に示すプログラムの「ｉｎｔｅｇｅｒ  Ａ，Ｂ；」および「ｒｅｇｉｓｔｅｒ  ｒ；」については、以下の各行を中間コードに展開する場合に、変数Ａと変数Ｂとはメモリに割り付け、変数ｒはレジスタに割り付けるとして処理を進める。
【００７３】
次に構文解析部７０５は、読込用バッファ７０４に格納されたＣ言語プログラムを取り出す。表１に示すプログラムの「ｒ＝ｒ＋Ａ；」については、変数Ａが格納されたメモリからデータを読み出してレジスタｄ０に格納する意味の中間コード１「ｄ０←ｍｅｍ（Ａ）」と、レジスタｄ０と変数ｒが格納されたレジスタｄ１とを加算しｄ１に格納する意味の中間コード２「ｄ１←ｄ１＋ｄ０」とを中間コード用バッファ７０６に出力する。
【００７４】
さらに構文解析部７０５は、読込用バッファ７０４に格納されたＣ言語プログラムを取り出す。表１に示すプログラムの「r=r+B;」については、変数Bが格納されたメモリからデータを読み出してレジスタｄ０に格納する意味の中間コード３「ｄ０←ｍｅｍ（Ｂ）」と、レジスタｄ０と変数ｒが格納されたレジスタｄ１とを加算しｄ１に格納する意味の中間コード４「ｄ１←ｄ１＋ｄ０」とを中間コード用バッファ７０６に出力する。
【００７５】
Ｃ言語プログラムには以下同様の記述がなされているとする。
機械命令生成部７０７は、中間コード用バッファ７０６に格納された中間コード１を取り出し、対応する命令１を生成する。変数Ａはメモリのレジスタａ０で指示される番地に割り付けられているとする。
次に機械命令生成部７０７は、中間コード用バッファ７０６に格納された中間コード２を取り出すが、ここでレジスタｄ０は命令１の結果に依存するため、この時点ではいかなる命令も生成しない。
【００７６】
次に機械命令生成部７０７は、中間コード用バッファ７０６に格納された中間コード３を取り出す。この時、メモリを読み出す中間コードなので、中間コード２の加算に対応する命令を生成する前に、命令３を生成し、続いて中間コード２の加算に対応する命令４を生成する。但し、命令１と命令４との間は２つの命令を挿入することが求められるので、無動作命令のｎｏｐ命令２を命令３の前に挿入する。変数Ｂはメモリのレジスタａ０で指示される番地から４番地だけ離れた位置に割り付けられているとする。
【００７７】
次に機械命令生成部７０７は、中間コード用バッファ７０６に格納された中間コード４を取り出すが、ここでレジスタｄ０は命令３の結果に依存するため、この時点ではいかなる命令も生成しない。
次に機械命令生成部７０７は、中間コード用バッファ７０６に格納された中間コード（図示せず）を取り出す。この時、メモリを読み出す中間コードなので、中間コード４の加算に対応する命令を生成する前に、命令５を生成し、続いて中間コード４の加算に対応する命令６を生成する。このとき命令３と命令６との間には既に２つの命令が挿入されているので、ｎｏｐ命令を新たに挿入する必要はない。
【００７８】
ファイル出力部７０９は、出力用バッファ７０８に格納された機械命令を、ファイルに出力する。
このファイルに出力された機械命令プログラムは、表３のリストに示すようになる。表３に示す命令列は、第１の実施の形態における情報処理装置の図２のパイプライン動作の例に示した命令列と命令２を除いて同じであるため説明を省略する。命令２は無動作命令である。
【００７９】
以上のように、この発明の第４の実施の形態によれば、Ｃ言語プログラムからデータ先読み命令を含む機械命令プログラムを生成することができる。
なお、ここではデータ先読み命令と先読みされたデータを使用する命令との間の命令数を一定に保つようにしているが、機械命令プログラムを実行する機械にデータ先読み命令によるメモリ装置４０からのデータの読み出しが完了したかどうかを示すデータ有効フラグを備えられていれば、データ先読み命令と先読みされたデータを使用する命令との間の命令数を一定に保つために挿入された上記のｎｏｐ命令２は生成する必要がなくなる。
【００８０】
また、機械命令生成部７０７は、機械命令プログラムを生成する際に、そのプログラムのひとかたまりに対して、最初のデータ先読み命令の前に割込み受付を禁止する命令を配置し、最後のデータ先読み命令の後に割込み受付を許可する命令を配置するようにしてもよい。機械命令プログラムのひとかたまりとは、サブルーチンやモジュールなど意味的な区切りでも、データ先読み命令の出現が他と比べて高い箇所の区切りでもよい。但し、割込み受付を許可する命令の直前のデータ先読み命令は次のデータ先読み命令へつながらないものとする。こうすることにより、データ先読み命令の間に発生する割込み要求によって読み出しデータに矛盾が伴うことを防止できる。
（第５の実施の形態）
この発明の記録媒体の実施の形態として、図７の機械命令プログラム７１０を記録した磁気ディスク（フロッピーディスクやハードディスクなど）、光ディスク（ＣＤ−ＲＯＭやＰＤなど）、光磁気ディスク、半導体メモリ（ＲＯＭやフラッシュメモリなど）がある。
【００８１】
【発明の効果】
請求項１記載の情報処理装置によれば、以前に解読手段が解読した特定の命令の実行に基づいてメモリ装置から読み出されたデータをデータ保持手段から読み出した後に、新たにメモリ装置からデータの読み出しを実行することができ、メモリ装置からのデータの読み出しの完了を待たずに、次の命令の処理が可能で、処理時間の短縮を図って、処理性能の向上を実現することができ、極めて有用である。
【００８２】
請求項２記載の情報処理装置によれば、請求項１と同様な効果がある。
請求項３記載の情報処理装置によれば、請求項１または請求項２と同様な効果がある。
請求項４記載の情報処理装置によれば、請求項１と同様な効果に加えて、ｎ個までのメモリ装置からのデータの読み出しの完了を待たずに次の命令の処理が可能で、処理時間の一層の短縮が図れる。
【００８３】
請求項５記載の情報処理装置によれば、請求項４と同様な効果かある。
請求項６記載の情報処理装置によれば、請求項１と同様な効果のほか、データの読み出しが完了する前にデータ保持手段から間違った値を読み出すことを防ぐことができ、極めて有用である。
請求項７記載の情報処理装置によれば、請求項６と同様な効果がある。
【００８４】
請求項８記載の情報処理装置によれば、請求項６または請求項７と同様な効果のほか、特定の命令の後に発生する割込み要求についても矛盾なく対応することができる。
請求項９記載の情報処理装置によれば、請求項８と同様な効果がある。
請求項１０記載の情報処理装置によれば、請求項１と同様な効果に加えて、データ保持手段に格納されたデータ、すなわち以前に解読手段が解読した特定の命令でメモリ装置より読み出されたデータを用いて演算を行うことにより、メモリ装置の読み出しに要する時間を削減して演算ができ、処理性能の向上を実現することができ、極めて有用である。
【００８５】
請求項１１記載の情報処理装置によれば、請求項１０と同様な効果がある。
請求項１２記載の情報処理装置によれば、請求項１０または請求項１１と同様な効果がある。 
【図面の簡単な説明】
【図１】この発明の第１の実施の形態における情報処理装置の構成を示すブロック図である。
【図２】第１の実施の形態による情報処理装置のパイプライン動作の例を示した説明図である。
【図３】メモリ装置の読出し速度が遅い場合の第１の実施の形態による情報処理装置のパイプライン動作の例を示した説明図である。
【図４】第２の実施の形態における情報処理装置の構成を示すブロック図である。
【図５】第３の実施の形態における情報処理装置の構成を示すブロック図である。
【図６】その情報処理装置のパイプライン動作の例を示した説明図である。
【図７】第４の実施の形態における情報処理装置の構成を示すブロック図である。
【図８】従来の情報処理装置の構成を示すブロック図である。
【図９】従来のデータ処理装置のパイプライン動作を示す説明図である。
【図１０】ＭＯＶ命令で読み出したデータを直後の命令が演算に用いる場合の従来のデータ処理装置のパイプライン動作を示す説明図である。
【図１１】メモリ装置の読出し速度が遅い場合の従来のデータ処理装置のパイプライン動作を示す説明図である。
【符号の説明】
１、１０１  デコーダ
２、１０２  レジスタファイル
３、１０３  演算装置
４、１０４  メモリ制御装置
５、１０５  実行制御回路
６  読み出しデータ保持回路
８  データ先読み回路
１０、１１、１２、１７、１８、２４、１１０、１１１、１１２、１１７、１１８  データ
１５、１６、１１５、１１６  アドレス
２５  命令読出し制御回路
２６  実行部
４０、１４０  メモリ装置
２１、１２１  即値
２２  データ先読み信号
２３  データ読み出し信号
３０  データ有効フラグ
３１  データ有効信号
３２  読み出し完了信号
３３  実行停止要求信号
７０１  Ｃ言語プログラム
７０２  コンパイラ
７０３  ファイル読込部
７０４  読込用バッファ
７０５  構文解析部
７０６  中間コード用バッファ
７０７  機械命令生成部
７０８  出力用バッファ
７０９  ファイル出力部
７１０  機械命令プログラム
【図１】
0003739556.tif 000005
【図２】
0003739556.tif 000006
【図３】
0003739556.tif 000007
【図４】
0003739556.tif 000008
【図５】
0003739556.tif 000009
【図６】
0003739556.tif 000010
【図７】
0003739556.tif 000011
【図８】
0003739556.tif 000012
【図９】
0003739556.tif 000013
【図１０】
0003739556.tif 000014
【図１１】
0003739556.tif 000015