JP3739556B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP3739556B2
JP3739556B2 JP00380698A JP380698A JP3739556B2 JP 3739556 B2 JP3739556 B2 JP 3739556B2 JP 00380698 A JP00380698 A JP 00380698A JP 380698 A JP380698 A JP 380698A JP 3739556 B2 JP3739556 B2 JP 3739556B2
Authority
JP
Japan
Prior art keywords
data
instruction
read
memory device
information processing
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
Application number
JP00380698A
Other languages
English (en)
Other versions
JPH11203136A (ja
Inventor
二郎 三宅
正人 鈴木
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP00380698A priority Critical patent/JP3739556B2/ja
Publication of JPH11203136A publication Critical patent/JPH11203136A/ja
Application granted granted Critical
Publication of JP3739556B2 publication Critical patent/JP3739556B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、命令に従ってパイプライン的にデータをメモリ装置より読み出し演算を行う情報処理装置に関するものである。
【0002】
【従来の技術】
近年の電子技術の発展により、マイクロコンピュータをはじめ情報処理装置が普及し、あらゆる分野で用いられている。
従来、情報処理装置では、処理性能を向上させるために、パイプライン処理を行うことが多い。パイプライン処理とは、1つの命令の処理を複数のステージに分け、ステージをずらして複数の命令を並列に実行するものである。
【0003】
図8は従来の情報処理装置の構成を示すブロック図である。
図8において、101はメモリ装置140から読み出した命令120を解読するデコーダであり、解読結果113、114、および命令内に含まれる即値121を出力する。102は演算に用いるデータを格納するレジスタを複数有するレジスタファイルであり、103はデータ117とレジスタファイル102から読み出されたデータ110、111およびデコーダ101が出力する即値121を用いて演算を行う演算装置であり、104はデコーダ101で命令を解読したデコード結果113に応じて、データをメモリ装置140から読み出したり、データをメモリ装置140へ書き込んだりするための制御を行うメモリ制御回路である。105はデコーダ101で命令を解読したデコード結果114に応じて、演算装置103やレジスタファイル102などを制御する実行制御回路である。
例えば、1つの命令を5つのステージに分けてパイプライン処理する場合を説明する。
【0004】
5つのステージは、命令フェッチステージ(以下、IFステージ)、命令デコードステージ(以下、DECステージ)、演算ステージ(以下、EXステージ)、メモリステージ(以下、MEMステージ)、書き込みステージ(以下、WBステージ)からなる。IFステージでメモリ装置140から命令を読み出し、読み出した命令120をDECステージでデコーダ101が解読する。解読した命令が演算命令の場合は、EXステージでレジスタファイル102から読み出したデータ110、111またはデコーダ101が出力する即値121を用いて命令で指定された演算を行う。演算した結果はWBステージでレジスタファイル102の中の、命令で指定されたレジスタへ格納される。
【0005】
解読された命令がデータ読み出し命令あるいはデータ書き込み命令である場合は、EXステージで演算装置103はレジスタファイル102から読み出したデータ110、111、または命令によって与えられる即値121を用いて、メモリ装置140内の場所を示すアドレス115を生成してメモリ制御回路104へ出力する。解読された命令がデータ読み出し命令の場合は、メモリ制御回路104はMEMステージで演算装置103が出力するアドレス115をアドレス116として出力し、メモリ装置140よりデータを読み出し、読み出されたデータ117はレジスタファイル102へ与えられ、WBステージでレジスタファイル102内の指定されたレジスタへ格納される。さらに、後続の命令がデータ読み出し命令の結果のデータを用いる場合は、レジスタファイル102は、WBステージでデータをレジスタへ格納するのと同時にデータ110または111として直接、演算装置103へ出力する。データ書き込み命令の場合は、レジスタファイル102から読み出されたデータ118がMEMステージでメモリ装置140へ与えられ、同時にメモリ制御回路104は演算装置103が出力するアドレス115をアドレス116としてメモリ装置140へ与え、WBステージでアドレス116で指定される場所へデータ118が格納される。
【0006】
図9に従来の情報処理装置のパイプライン動作の例を示す。
図9では、4つの命令を実行している様子を示している。この図で、a0,d0,d1,d2はレジスタファイル102の中のレジスタの名前である。また、(a0)はレジスタa0の値をアドレスとして指定されるメモリ装置内のデータを示す。第1命令および第3命令はデータ読み出し命令movであり、第2命令および第4命令は加算命令addである。第1命令movは、レジスタa0の値をアドレスとして、メモリ装置140からデータを読み出し、レジスタd0へ格納する。第2命令addは、レジスタd2の値と1を加算し、加算結果をレジスタd2に格納する。第3命令movは、レジスタa0の値に4を加算し、その結果をアドレスとしてメモリ装置140からデータを読み出し、レジスタd1に格納する。第4命令addは、レジスタd2の値と1を加算し、加算結果をレジスタd2に格納する。
【0007】
各命令は、IF、DEC、EX、MEM、WBの5つのステージに分割され、各ステージが1クロックサイクルの期間に実行される。4つの命令は1ステージずつずらして並列に実行される。従って、1つ1つの命令の処理には5クロックサイクルが必要であるが、このようなパイプライン処理を行うことによって、命令の結果を毎サイクル得ることができ、高い処理性能を実現することができる。
【0008】
【発明が解決しようとする課題】
ところが、データ読み出し命令で読み出したデータを次の命令が演算に用いる場合やメモリ装置の読み出しが遅い場合、処理性能の低下を生じる。
図10にmov命令で読み出したデータを直後の命令が演算に用いる場合を示す。
【0009】
図10において、第1命令movはレジスタa0の値をアドレスとしてメモリ装置140からデータを読み出し、レジスタd0に格納する。このデータをAとする。第2命令addは、第1命令movによってd0に格納されたデータAとレジスタd1の値を加算して、結果のデータをレジスタd1に格納する。第3命令movはレジスタa0の値に4を加算した値をアドレスとしてメモリ装置140からデータを読み出し、レジスタd0に格納する。このデータをBとする。第4命令addは、第3命令movによってd0に格納されたデータBとレジスタd1の値を加算して、結果のデータをレジスタd1に格納する。この場合、第2および第4命令addは、直前の命令movによってメモリ装置140から読み出されるデータを演算に用いるため、add命令のEXステージがmov命令のWBステージの後でないとレジスタファイル102から読出したデータは正しくない。このときレジスタファイル102がデータ117をデータ110として直接、演算装置103にも供給することで、add命令のEXステージをmov命令のWBステージと並列にすることができる。しかしそれでも、mov命令で読み出されるデータは、mov命令のWBステージになるまで使用できないため、add命令のEXステージがmov命令のWBステージまで待たされてしまう。このようにデータ読み出し命令で読み出したデータを次の命令が演算に用いる場合に命令の実行が待たされ、処理性能の低下をもたらす。
【0010】
図11に、メモリ装置の読み出し速度が遅い場合を示す。この例では、実行される命令は図9の場合と同じであるが、メモリ装置の読み出しに図9の場合よりさらに2クロックサイクル余分に必要である。第2命令および第4命令addは直前の命令movが読み出したデータを用いないが、mov命令のWBステージが完了するまでadd命令のWBステージは待たされる。このように、add命令も処理が中断され処理性能の低下をもたらす。
【0011】
この発明はかかる課題に鑑み、メモリからのデータ読み出し命令による後続の命令の処理の中断を減らし、処理性能の高い情報処理装置を提供することを目的とする。
【0012】
【課題を解決するための手段】
請求項1記載の情報処理装置は、少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出したデータを格納するためのデータ保持手段と、
命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第1のデータを読み出すべくアクセスを開始し、データ保持手段から第2のデータを取り出してレジスタへ格納する実行手段とを備え、
第2のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とするものである。
【0013】
請求項1記載の情報処理装置によれば、以前に解読手段が解読した特定の命令の実行に基づいてメモリ装置から読み出されたデータをデータ保持手段から読み出した後に、新たにメモリ装置からデータの読み出しを実行することができ、メモリ装置からのデータの読み出しの完了を待たずに、次の命令の処理が可能で、処理時間の短縮を図って、処理性能の向上を実現することができ、極めて有用である。
【0014】
請求項2記載の情報処理装置は、請求項1において、実行手段が、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに行われ、読み出された第1のデータをデータ保持手段に格納する動作を、特定の命令に後続する命令の実行と並列に行うものである。
請求項2記載の情報処理装置によれば、請求項1と同様な効果がある。
【0015】
請求項3記載の情報処理装置は、請求項1または請求項2において、情報処理装置が、命令の読出しを行う第1のステージと、命令の解読を行う第2のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第3のステージと、メモリ装置をアクセスする第4のステージと、命令によって指定される操作の結果をレジスタに格納する第5のステージとの5つのステージを含むパイプライン構造をとるものであって、
命令読出し手段は第1のステージにおいて作用し、解読手段は第2のステージにおいて作用し、実行手段は第3から第5のステージにおいて作用し、特にデータ保持手段からの第2のデータの取り出しを第4のステージで行うものである。
【0016】
請求項3記載の情報処理装置によれば、請求項1または請求項2と同様な効果がある。
請求項4記載の情報処理装置は、少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出した2個以上のn個のデータを格納するための第1から第nのデータ保持手段と、
命令読み出し手段により読み出された命令を解読する解読手段と、
この解読手段により特定の命令が置かれていると解読されるごとに1ずつ増分され、1からnの間を巡回する計数手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第1のデータを読み出すべくアクセスを開始し、計数手段が示す値kで定まる第kのデータ保持手段から第2のデータを取り出してレジスタへ格納する実行手段とを備え、第2のデータは、解読された特定の命令からnだけ前の特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とするものである。
【0017】
請求項4記載の情報処理装置によれば、請求項1と同様な効果に加えて、n個までのメモリ装置からのデータの読み出しの完了を待たずに次の命令の処理が可能で、処理時間の一層の短縮が図れる。
請求項5記載の情報処理装置は、請求項4において、実行手段が、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに行われ、読み出された第1のデータを第kのデータ保持手段に格納する動作を、特定の命令に後続する命令の実行と並列に行うものである。
【0018】
請求項5記載の情報処理装置によれば、請求項4と同様な効果かある。
請求項6記載の情報処理装置は、少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出したデータを格納するためのデータ保持手段と、
このデータ保持手段が格納するデータが有効か無効かを示すデータ有効フラグと、
命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第1のデータを読み出すべくアクセスを開始し、
データ有効フラグが有効を示す場合は、データ保持手段から第2のデータを取り出してレジスタへ格納し、
データ有効フラグが無効を示す場合は、データ有効フラグが有効を示すのを待って、データ保持手段から第2のデータを取り出してレジスタへ格納する実行手段とを備え、
第2のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とするものである。
【0019】
請求項6記載の情報処理装置によれば、請求項1と同様な効果のほか、データの読み出しが完了する前にデータ保持手段から間違った値を読み出すことを防ぐことができ、極めて有用である。
請求項7記載の情報処理装置は、請求項6において、実行手段が、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに、読み出された第1のデータをデータ保持手段に格納するとともに、データ有効フラグを有効にする動作を、特定の命令に後続する命令の実行と並列に行うものである。
【0020】
請求項7記載の情報処理装置によれば、請求項6と同様な効果がある。
請求項8記載の情報処理装置は、請求項6または請求項7において、解読手段がさらに、外部から割込み要求を受けたとき、データ有効フラグが有効を示す場合は、割込み要求を受理し、データ有効フラグが無効を示す場合は、データ有効フラグが有効を示すのを待って、割込み要求を受理するものである。
【0021】
請求項8記載の情報処理装置によれば、請求項6または請求項7と同様な効果のほか、特定の命令の後に発生する割込み要求についても矛盾なく対応することができる。
請求項9記載の情報処理装置は、請求項8において、解読手段が、割込み要求を受理したとき、データ保持手段に保持されているデータをメモリ装置または他のメモリ装置の所定の領域に退避するものである。
【0022】
請求項9記載の情報処理装置によれば、請求項8と同様な効果がある。
請求項10記載の情報処理装置は、少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
メモリ装置から読み出したデータを格納するためのデータ保持手段と、
命令読み出し手段により読み出された命令を解読する解読手段と、
レジスタを含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置から第1のデータを読み出すべくアクセスを開始し、データ保持手段から第2のデータを取り出して命令によって指示された演算を行った後にレジスタへ格納する実行手段とを備え、
第2のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とするものである。
【0023】
請求項10記載の情報処理装置によれば、請求項1と同様な効果に加えて、データ保持手段に格納されたデータ、すなわち以前に解読手段が解読した特定の命令でメモリ装置より読み出されたデータを用いて演算を行うことにより、メモリ装置の読み出しに要する時間を削減して演算ができ、処理性能の向上を実現することができ、極めて有用である。
【0024】
請求項11記載の情報処理装置は、請求項10において、実行手段が、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに行われ、読み出された第1のデータをデータ保持手段に格納する動作を、特定の命令に後続する命令の実行と並列に行うものである。
請求項11記載の情報処理装置によれば、請求項10と同様な効果がある。
【0025】
請求項12記載の情報処理装置は、請求項10または請求項11において、命令の読出しを行う第1のステージと、命令の解読を行う第2のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第3のステージと、メモリ装置をアクセスする第4のステージと、命令によって指定される操作の結果をレジスタに格納する第5のステージとの5つのステージを含むパイプライン構造をとる情報処理装置であって、
命令読出し手段は第1のステージにおいて作用し、解読手段は第2のステージにおいて作用し、実行手段は第3から第5のステージにおいて作用し、特にデータ保持手段からの第2のデータの取り出しと演算とを第3のステージで行うものである。
【0026】
請求項12記載の情報処理装置によれば、請求項10または請求項11と同様な効果がある。
【0041】
【発明の実施の形態】
以下、この発明の実施の形態について、図1から図6を用いて説明する。
(第1の実施の形態)
この発明の第1の実施の形態を図1から図3により説明する。図1は、この発明の第1の実施の形態における情報処理装置の構成を示すブロック図である。
【0042】
図1において、1はメモリ装置40から読み出した命令20を解読するデコーダであり、解読したデコード結果13、14、命令内に含まれる即値21およびデータ先読み信号22を出力する。2は演算に用いるデータを格納するレジスタを複数有するレジスタファイルであり、3はレジスタファイル2から読み出されたデータ10、11、またはデコーダ1が出力する即値21を用いて演算を行う演算装置であり、4はデコーダ1のデコード結果13に応じて、データをメモリ装置40から読み出したり、データをメモリ装置40へ書き込んだりするための制御を行うメモリ制御回路である。5はデコーダ1のデコード結果14に応じて、演算装置3、レジスタファイル2などを制御する実行制御回路である。
【0043】
6は読み出しデータ保持回路であり、メモリ装置40から読み出したデータを一時的に保持する。8はデータ先読み回路であり、メモリ装置40からデータを読み出す前に、以前に読み出しデータ保持回路6に格納されたデータを読み出してレジスタファイル2へ出力する。
そして、この情報処理装置は、少なくともメモリ装置40からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段を主に構成する命令読出し制御回路25と、メモリ装置40から読み出したデータを格納するためのデータ保持手段を構成する読み出しデータ保持回路6と、命令読み出し手段により読み出された命令を解読する解読手段であるデコーダ1と、レジスタファイル2を含んで成り、解読手段により特定の命令が置かれていると解読された場合に、第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいてメモリ装置40から第1のデータを読み出すべくアクセスを開始し、データ保持手段から第2のデータを取り出してレジスタファイル2へ格納する実行手段を主に構成する実行部26とを備え、第2のデータは、特定の命令が解読される以前に解読手段が解読した特定の命令に基づく第1のデータとして読み出されたデータとしているものである。
【0044】
この第1の実施の形態においても、図11で示す従来の情報処理装置と同様に、IFステージ、DECステージ、EXステージ、MEMステージ、および、WBステージの5つのステージに分けて命令を処理する。データ読み出し、データ書き込み、および演算命令の処理は、従来と同様に処理される。ただし、データ読み出しの場合、メモリ装置40から読み出されたデータ17はデータ24としてレジスタファイル2へ与えられる。
【0045】
データ先読み命令の処理について説明する。データ先読み命令は、指定したアドレスを用いてメモリ装置40から読み出したデータを読み出しデータ保持回路6に格納する前に、読み出しデータ保持回路6に格納されているデータを読み出して、レジスタファイル2の指定したレジスタに格納する命令である。つまり、前回実行したデータ先読み命令でメモリ装置40から読み出したデータをレジスタファイル2に格納すると同時に、メモリ装置40からの新たな読み出しを実行する命令である。
【0046】
図1を用いて、データ先読み命令の動作を説明する。デコーダ1は命令読出し制御回路25によってメモリ装置40から読み出された命令20を解読する。デコード結果13、14はメモリ制御回路4および実行制御回路5へ出力される。さらに、解読した命令がデータ先読み命令である場合、デコーダ1はデータ先読み信号22をデータ先読み回路8へ出力する。演算装置3は実行制御回路5の制御に従って、EXステージでレジスタファイル2から読み出したデータ10、11、または、デコーダ1が出力する即値21を用いてアドレスを計算し、メモリ制御回路4へ出力する。メモリ制御回路4はMEMステージで、演算装置3から出力されたアドレス15をアドレス16として出力し、メモリ装置40へデータの読み出しを要求する。データ先読み回路8は、データ先読み信号22が与えられると、MEMステージでデータ読み出し信号23を出力し、読み出しデータ保持回路6に格納されているデータ、すなわち、前回のデータ先読み命令でメモリ装置40から読み出され格納されたデータを読み出してレジスタファイル2へデータ24として与え、レジスタファイル2はWBステージで、命令で指定されたレジスタでデータ24を格納する。さらに、後続の命令がデータ先読み命令の結果のデータを用いる場合は、レジスタファイル2は、WBステージでデータをレジスタへ格納するのと同時にデータ10または11として直接演算装置3へ出力する。
【0047】
データ先読み命令は、演算に必要になる場合に先だって実行しておく。そして、演算に必要になった時に、再びデータ先読み命令を実行する。この2回目のデータ先読み命令によって、1回目のデータ先読み命令でメモリ装置40から読みだされたデータが得られ、演算に用いられる。さらに2回目のデータ先読み命令によって、メモリ装置40からデータの読みだしが行われ、読み出されたデータは3回目のデータ先読み命令によって得られ、演算に用いられる。この動作を図2と図3とを用いて説明する。
【0048】
図2および図3はいずれも、第1の実施の形態における情報処理装置のパイプライン動作の例を示した図である。
図2において、第1、第3、および第5の命令はデータ先読み命令movpである。第1命令movpは、EXステージでアドレス計算が行われ、得られたアドレスa0を用いて、MEMステージにメモリ装置40よりデータの読み出しを行うと同時に読み出しデータ保持回路6にすでに格納されているデータを読み出して、レジスタファイル2へ出力する。レジスタファイル2は読み出しデータ保持回路6より読み出されたデータを第1命令movpのWBステージに指定されたレジスタへ格納する。次のデータ先読み命令、すなわち、第3命令movpでは、EXステージでアドレス計算を行い、得られたアドレスa0+4を用いて、MEMステージにメモリ装置40よりデータの読み出しを行うと同時に読み出しデータ保持回路6にすでに格納されているデータを読み出し、レジスタファイル2へ与えられる。この時、読み出しデータ保持回路6には、以前のデータ先読み命令、すなわち、第1命令movpでアドレスa0を用いてメモリ装置40より読み出されたデータAが格納されており、このデータAがレジスタファイル2へ与えられ、第3命令movpのWBステージで指定されたレジスタd0へ格納される。
【0049】
第4命令addは第3命令でd0に格納されるデータAを用いて加算を行う。第4命令addのEXステージは、第3命令movpのMEMステージと並列であり、レジスタd0にはまだデータAは格納されていない。そこで、レジスタファイル2は第3命令movpのMEMステージに読み出しデータ保持回路6から読み出されたデータAをデータ10またはデータ11として直ちに演算装置3へ与える。これによって、第4命令addのEXステージは待たされることなく加算を実行する。
【0050】
同様に第5命令movpは、MEMステージに、読み出しデータ保持回路6から、第3命令movpがメモリ装置40から読み出したデータBを読み出してレジスタファイル2へ出力し、第6命令addは、読み出しデータ保持回路6からレジスタファイル2へ出力されたデータBを用いて、EXステージに加算を行う。
【0051】
このようにして、データ先読み命令は、メモリ装置40からのデータの読み出しを実行するのと同時に、前回のデータ先読み命令でメモリ装置40から読み出されデータ保持回路6へ格納されたデータを直ちに読み出すことにより、直後の命令がデータ先読み命令の結果を用いる場合でも、待たされることなく処理を行うことができる。
【0052】
図3に、メモリ装置40の読み出し速度が遅い場合のデータ先読み命令の動作を説明する。図3において、第1、第4、および第7の命令はデータ先読み命令movpである。ここでは、図2の場合と比べて、メモリ装置40のデータ読み出しの時間が2クロックサイクルだけ長く、movp命令のWBステージの2クロックサイクル後のLと記されたところ(以降、疑似的にLステージと書く)で読み出されたデータ17が読み出しデータ保持回路6に格納される。しかし、movp命令は読み出しデータ保持回路6にすでに格納されているデータを読み出してレジスタファイル2に格納するので、movp命令のメモリ装置40からのデータ読み出しの完了を待たずに、後続の命令は処理を行うことができる。第1命令movpのLステージは第4命令movpのMEMステージと並列であるので、第4命令movpではMEMステージに、読み出しデータ保持回路6に格納されているデータ、すなわち、第1命令movpによってメモリ装置40より読み出されたデータAが読み出され、WBステージにレジスタd0へ格納される。同様に、第7命令movpのMEMステージで、読み出しデータ保持回路6に格納されているデータ、すなわち、第4命令movpによってメモリ装置40より読み出されたデータBが読み出され、WBステージにレジスタd1へ格納される。このように、メモリ装置40の読み出し速度が遅い場合でも、命令の処理を止めずに実行することができる。なお、ここでは、2つのデータ先読み命令の間に、適当な命令を挿入して、先行するデータ先読み命令movpのメモリ読み出しが完了した後に、後続のデータ先読み命令movpが読み出しデータ保持回路6からデータを読み出すようにタイミングの調整を行っている。
【0053】
以上のように、この発明の第1の実施の形態によれば、メモリ装置40から事前に読み出したデータを必要な時にデータ先読み回路8によって、読み出しデータ保持回路6から読み出すことができ、したがってデータ待ちのために停止する時間を削減することができ、処理性能が向上する。
また、メモリ装置40の読み出し速度が遅い場合でも、メモリ装置40からのデータの読み出しが完了するのを待たずに、後続の命令を実行することができ処理性能が向上する。
【0054】
なお、読み出しデータ保持回路6に複数のデータを保持できるようにして、複数回前のデータ先読み命令によってメモリ装置40より読み出され、格納されたデータを読み出しデータ保持回路6から読み出すとしてもよい。この場合は、読み出しデータ保持回路6に1番目からn番目のn個のサブデータ保持回路を設け、さらにデータ先読み命令がデコーダ1によって解読されるたびに1ずつ増分され、1からnの間を巡回するn進カウンタを設けて、カウンタが示す値kで定まるk番目のサブデータ保持回路からデータを読み出し、メモリ装置40より読み出されたデータをk番目のサブデータ保持回路に格納することで実現できる。
(第2の実施の形態)
この発明の第2の実施の形態を図4により説明する。図4は、この発明の第2の実施の形態における情報処理装置の構成を表すブロック図である。
【0055】
図4において、図1に示した第1の実施の形態における情報処理装置と同じ構成要素は同じ番号を付して説明を省略し、異なる点を中心に説明する。
図4において、30はデータ有効フラグであり、読み出しデータ保持回路6に、前回のデータ先読み命令によってメモリ装置40より読み出されたデータが格納されているか、まだ格納されていないかをデータ有効信号31によって示す。データ有効信号31が“1”の場合は前回のデータ先読み命令によるメモリ装置40からのデータ読み出しが完了し、データがすでに読み出しデータ保持回路6に格納されていることを示し、“0”の場合は前回のデータ先読み命令によるデータがまだ読み出しデータ保持回路6に格納されていないことを示す。なお、データ有効信号31の初期値は“1”である。
【0056】
デコーダ1に与えられた命令20がデータ先読み命令である場合、デコーダ1はデコード結果13、14をメモリ制御回路4および実行制御回路5へ出力し、データ先読み信号22をデータ先読み回路8へ出力する。演算装置3は実行制御回路5の制御に従って、EXステージでレジスタファイル2から読み出したデータ10、11またはデコーダ1が出力する即値21を用いてアドレス15を計算し、メモリ制御回路4へ出力する。データ先読み回路8はデータ先読み信号22が与えられると、データ有効フラグ30が出力するデータ有効信号31を調べ、データ有効信号31が“0”である場合、すなわち、前回のデータ先読み命令によるメモリ装置40からの読み出しが完了していないことがわかった場合は、実行制御回路5およびメモリ制御回路4に実行停止要求信号33を出力し、これによって実行制御回路5およびメモリ制御回路4は命令の処理を停止する。前回のデータ先読み命令によるメモリ装置40からのデータ読み出しが完了し、読み出したデータ17が読み出しデータ保持回路6に格納されると、同時に、メモリ装置40は読み出し完了信号32をデータ有効フラグ30へ出力し、これによって、データ有効信号31が“1”にセットされる。データ有効信号31が“1”にセットされると、データ先読み回路8は実行停止要求信号33を解除し、実行制御回路5およびメモリ制御回路4は処理を再開する。データ先読み回路8はデータ読み出し信号23を出力してデータ保持回路6からデータ24を読み出す。読み出されたデータ24はレジスタファイル2へ与えられ、WBステージに命令で指定されたレジスタへ格納される。さらに、データ読み出し信号23が出力されると、データ有効フラグ30のデータ有効信号31は“0”にリセットされ、同時に、メモリ制御回路4は演算装置3から与えられたアドレス15を用いてメモリ装置40にデータの読み出しを要求する。要求されたデータの読み出しが完了すると、メモリ装置40はデータ17を出力し、読み出されたデータ17は読み出しデータ保持回路6へ格納される。データが読み出しデータ保持回路6へ格納され、読み出し完了信号32が与えられると、データ有効フラグ30はデータ有効信号31に“1”を出力する。
【0057】
データ先読み命令のMEMステージにすでにデータ有効信号31が“1”で、前回のデータ先読み命令によりメモリ装置40から読み出されたデータがすでに読み出しデータ保持回路6に格納されていることが示されると、データ先読み回路8は実行停止要求信号33を出力することなく、処理が続けられる。
このようにして、データ先読み命令を実行する場合に、前回のデータ先読み命令によるメモリ装置40のデータ読み出しが完了していなければ、データ読み出しが完了するまで、命令の実行を停止することができ、データを格納する前の値を誤って読み出しデータ保持回路6から読み出すことを防ぐことができる。
【0058】
従って、2つのデータ先読み命令の間に、データ読み出しのサイクル数分、有効な命令を挿入できなくても、無動作を指示するNOP命令を挿入する必要がなく、プログラムのサイズを小さくすることができる。また、メモリ装置40にキャッシュメモリを用いた場合のように、キャッシュメモリがヒットするかヒットしないかによってデータの読み出し時間が変わるような場合に、データの読み出しが速い場合に合わせて2つのデータ先読み命令間に命令を挿入しておいて、データ読み出しが遅くなった場合でも、命令の実行を停止することができ、間違った値を読み出しデータ保持回路から読み出すことを防ぎ、プログラムのサイズを小さくすることができ、プログラムの作成も容易である。
【0059】
なお、上記の構成に加えて、デコーダ1に、データ有効信号31の値により外部より印加された割込み要求を受理するか否かを決め、割込みを受理する時に読み出しデータ保持回路6に格納されているデータを然る可き領域に退避する機能を付加してもよい。即ち、所定の信号線により伝えられた割込み要求は、データ有効信号31が“0”の間はペンディングされ、データ有効信号31が“1”になった時に受け付けられる。読み出しデータ保持回路6のデータの退避は、割込み処理から復帰した時にデータを元に戻すためである。こうすることにより、データ先読み命令の後に発生する割込み要求についても矛盾なく対応することができる。
(第3の実施の形態)
この発明の第3の実施の形態を図5および図6により説明する。図5は、この発明の第3の実施の形態における情報処理装置の構成を表すブロック図である。
【0060】
図5において、図1に示した第一の実施の形態における情報処理装置と同じ構成要素は同じ番号を付して説明を省略し、異なる点を中心に説明する。
図5の情報処理装置では、読み出しデータ保持回路6から読み出したデータ24を演算装置3へ与え、演算に用いることができる。
データ先読み演算命令を実行する場合について説明する。データ先読み演算命令とは、前回実行されたデータ先読み演算命令によってメモリ装置40から読み出されたデータを用いて演算を行う命令である。
【0061】
デコーダ1に与えられた命令20がデータ先読み演算命令であることをデコーダ1が解読すると、データ先読み信号22をデータ先読み回路8に出力する。データ先読み回路8はデータ先読み信号22を受け取ると、読み出しデータ保持回路6より、前回のデータ先読み演算命令によってメモリ装置40から読み出されたデータを読み出して演算装置3に出力する。演算装置3は、EXステージで、実行制御回路5の制御に従って、レジスタファイル2から読み出されたデータ10、11、またはデコーダ1から出力される即値21を用いてアドレスを計算するのと同時に、読み出しデータ保持回路6から読み出されたデータ24とレジスタファイル2から読み出されたデータ10、11、またはデコーダ1から出力される即値21を用いて、命令で指示された演算を実行する。演算結果12は、レジスタファイル2へ出力され、WBステージに、命令で指定されたレジスタへ格納される。また、メモリ制御回路4は、MEMステージに、演算装置3が出力するアドレス15を用いて、メモリ装置40よりデータの読み出しを行い、読み出されたデータを読み出しデータ保持回路6へ格納する。この動作を図6を用いて説明する。
【0062】
図6は、第3の実施の形態における情報処理装置により、データ先読み演算命令を実行する場合のパイプライン動作を示した図である。
図6において、第1命令はデータ先読み命令movpであり、第3および第5命令はデータ先読み演算命令の1つであるデータ先読み加算命令addpである。第3命令addpは第1命令movpによってメモリ装置40より読み出されたデータAとレジスタd0の値を加算して結果をレジスタd0に格納する。さらに、a0+4を計算してアドレスとし、メモリ装置40よりデータBを読み出す。第5命令addpは第3命令addpがメモリ装置40より読み出したデータBとレジスタd0の値を加算して結果をレジスタd0に格納する。さらに、a0+8を計算してアドレスとし、メモリ装置40よりデータCを読み出す。
【0063】
以上のように、この発明の第3の実施の形態によれば、データ先読み演算命令は、前回のデータ先読み演算命令で読み出したデータを用いて演算を行うと同時に、次回のデータ先読み演算命令で用いるデータの読み出し開始するので、メモリ装置40からのデータの読み出しを待たずに演算ができ、データ待ちのサイクルを削減でき、処理性能の向上を図ることができる。
【0064】
なお、ここでは、データ先読み加算命令addpにおいて、アドレス計算と演算はEXステージに同時に行われるとしたが、アドレス計算と演算を別のクロックサイクルでシーケンシャルに行うとしてもよい。
また、この例ではデータ先読み演算命令の演算として加算を行う場合を示したが、加算以外にも、減算、論理積、論理和などさまざまな演算に適用することができる。
(第4の実施の形態)
この発明の第4の実施の形態を図7により説明する。この情報処理装置は、高級言語プログラムから、パイプライン処理を行うプロセッサを対象とする機械命令プログラムを生成する情報処理装置であり、高級言語プログラム中にメモリ装置に割り付けられた変数の読み出しを行うコードを検出する読み出しコード検出手段と、機械命令生成手段とを備え、この機械命令生成手段はコードが検出された場合に、変数に割り付けられたメモリ装置のアドレスを計算し、計算されたアドレスに基づいてメモリ装置の読み出しアクセスを開始させる第1の機械命令と、アクセスが終了したときに読み出されたデータを所定のレジスタに格納する第2の機械命令とを生成する。
【0065】
図7は、この発明の第4の実施の形態における情報処理装置の構成を示すブロック図である。
情報処理装置702は、ユーザが記述したC言語プログラム701を翻訳し、機械命令プログラム710を出力するコンパイラとして機能する。
情報処理装置702は、C言語プログラム701を読込用バッファ704に読み込むファイル読込部703と、読込用バッファ704に読み込まれたC言語プログラムの構文や意味を解析して中間コードを生成し中間コード用バッファ706に書き込む構文解析部705と、中間コード用バッファ706に格納された中間コードを入力して機械命令プログラムを生成し出力用バッファ708に書き込む機械命令生成部707と、出力用バッファ708に格納された機械命令プログラムをファイルに出力するファイル出力部709とから構成される。
【0066】
表1は、C言語プログラムの例を示すプログラムリストである。
【0067】
【表1】
Figure 0003739556
【0068】
表2は、図8に示すC言語プログラムを入力として与えた場合に、情報処理装置702の中間コード用バッファ706に格納された中間コードプログラムを示したリストである。
【0069】
【表2】
Figure 0003739556
【0070】
表3は、表1に示すC言語プログラムを入力として与えた場合に、情報処理装置702により生成された機械命令プログラム710を示したリストである。なお、機械命令プログラムは本来0と1のビット列であるが、意味を表すために図10ではニモニック表記してある。
【0071】
【表3】
Figure 0003739556
【0072】
以下に、表1のプログラムリストを入力とした場合における上記構成をもつ情報処理装置の動作について表1〜表3を用いて説明する。
ファイル読込部703は、ユーザが記述したC言語プログラム701を読み込み、読込用バッファ704に格納する。
構文解析部705は、読込用バッファ704に格納されたC言語プログラムを取り出す。表1に示すプログラムの「integer A,B;」および「register r;」については、以下の各行を中間コードに展開する場合に、変数Aと変数Bとはメモリに割り付け、変数rはレジスタに割り付けるとして処理を進める。
【0073】
次に構文解析部705は、読込用バッファ704に格納されたC言語プログラムを取り出す。表1に示すプログラムの「r=r+A;」については、変数Aが格納されたメモリからデータを読み出してレジスタd0に格納する意味の中間コード1「d0←mem(A)」と、レジスタd0と変数rが格納されたレジスタd1とを加算しd1に格納する意味の中間コード2「d1←d1+d0」とを中間コード用バッファ706に出力する。
【0074】
さらに構文解析部705は、読込用バッファ704に格納されたC言語プログラムを取り出す。表1に示すプログラムの「r=r+B;」については、変数Bが格納されたメモリからデータを読み出してレジスタd0に格納する意味の中間コード3「d0←mem(B)」と、レジスタd0と変数rが格納されたレジスタd1とを加算しd1に格納する意味の中間コード4「d1←d1+d0」とを中間コード用バッファ706に出力する。
【0075】
C言語プログラムには以下同様の記述がなされているとする。
機械命令生成部707は、中間コード用バッファ706に格納された中間コード1を取り出し、対応する命令1を生成する。変数Aはメモリのレジスタa0で指示される番地に割り付けられているとする。
次に機械命令生成部707は、中間コード用バッファ706に格納された中間コード2を取り出すが、ここでレジスタd0は命令1の結果に依存するため、この時点ではいかなる命令も生成しない。
【0076】
次に機械命令生成部707は、中間コード用バッファ706に格納された中間コード3を取り出す。この時、メモリを読み出す中間コードなので、中間コード2の加算に対応する命令を生成する前に、命令3を生成し、続いて中間コード2の加算に対応する命令4を生成する。但し、命令1と命令4との間は2つの命令を挿入することが求められるので、無動作命令のnop命令2を命令3の前に挿入する。変数Bはメモリのレジスタa0で指示される番地から4番地だけ離れた位置に割り付けられているとする。
【0077】
次に機械命令生成部707は、中間コード用バッファ706に格納された中間コード4を取り出すが、ここでレジスタd0は命令3の結果に依存するため、この時点ではいかなる命令も生成しない。
次に機械命令生成部707は、中間コード用バッファ706に格納された中間コード(図示せず)を取り出す。この時、メモリを読み出す中間コードなので、中間コード4の加算に対応する命令を生成する前に、命令5を生成し、続いて中間コード4の加算に対応する命令6を生成する。このとき命令3と命令6との間には既に2つの命令が挿入されているので、nop命令を新たに挿入する必要はない。
【0078】
ファイル出力部709は、出力用バッファ708に格納された機械命令を、ファイルに出力する。
このファイルに出力された機械命令プログラムは、表3のリストに示すようになる。表3に示す命令列は、第1の実施の形態における情報処理装置の図2のパイプライン動作の例に示した命令列と命令2を除いて同じであるため説明を省略する。命令2は無動作命令である。
【0079】
以上のように、この発明の第4の実施の形態によれば、C言語プログラムからデータ先読み命令を含む機械命令プログラムを生成することができる。
なお、ここではデータ先読み命令と先読みされたデータを使用する命令との間の命令数を一定に保つようにしているが、機械命令プログラムを実行する機械にデータ先読み命令によるメモリ装置40からのデータの読み出しが完了したかどうかを示すデータ有効フラグを備えられていれば、データ先読み命令と先読みされたデータを使用する命令との間の命令数を一定に保つために挿入された上記のnop命令2は生成する必要がなくなる。
【0080】
また、機械命令生成部707は、機械命令プログラムを生成する際に、そのプログラムのひとかたまりに対して、最初のデータ先読み命令の前に割込み受付を禁止する命令を配置し、最後のデータ先読み命令の後に割込み受付を許可する命令を配置するようにしてもよい。機械命令プログラムのひとかたまりとは、サブルーチンやモジュールなど意味的な区切りでも、データ先読み命令の出現が他と比べて高い箇所の区切りでもよい。但し、割込み受付を許可する命令の直前のデータ先読み命令は次のデータ先読み命令へつながらないものとする。こうすることにより、データ先読み命令の間に発生する割込み要求によって読み出しデータに矛盾が伴うことを防止できる。
(第5の実施の形態)
この発明の記録媒体の実施の形態として、図7の機械命令プログラム710を記録した磁気ディスク(フロッピーディスクやハードディスクなど)、光ディスク(CD−ROMやPDなど)、光磁気ディスク、半導体メモリ(ROMやフラッシュメモリなど)がある。
【0081】
【発明の効果】
請求項1記載の情報処理装置によれば、以前に解読手段が解読した特定の命令の実行に基づいてメモリ装置から読み出されたデータをデータ保持手段から読み出した後に、新たにメモリ装置からデータの読み出しを実行することができ、メモリ装置からのデータの読み出しの完了を待たずに、次の命令の処理が可能で、処理時間の短縮を図って、処理性能の向上を実現することができ、極めて有用である。
【0082】
請求項2記載の情報処理装置によれば、請求項1と同様な効果がある。
請求項3記載の情報処理装置によれば、請求項1または請求項2と同様な効果がある。
請求項4記載の情報処理装置によれば、請求項1と同様な効果に加えて、n個までのメモリ装置からのデータの読み出しの完了を待たずに次の命令の処理が可能で、処理時間の一層の短縮が図れる。
【0083】
請求項5記載の情報処理装置によれば、請求項4と同様な効果かある。
請求項6記載の情報処理装置によれば、請求項1と同様な効果のほか、データの読み出しが完了する前にデータ保持手段から間違った値を読み出すことを防ぐことができ、極めて有用である。
請求項7記載の情報処理装置によれば、請求項6と同様な効果がある。
【0084】
請求項8記載の情報処理装置によれば、請求項6または請求項7と同様な効果のほか、特定の命令の後に発生する割込み要求についても矛盾なく対応することができる。
請求項9記載の情報処理装置によれば、請求項8と同様な効果がある。
請求項10記載の情報処理装置によれば、請求項1と同様な効果に加えて、データ保持手段に格納されたデータ、すなわち以前に解読手段が解読した特定の命令でメモリ装置より読み出されたデータを用いて演算を行うことにより、メモリ装置の読み出しに要する時間を削減して演算ができ、処理性能の向上を実現することができ、極めて有用である。
【0085】
請求項11記載の情報処理装置によれば、請求項10と同様な効果がある。
請求項12記載の情報処理装置によれば、請求項10または請求項11と同様な効果がある。
【図面の簡単な説明】
【図1】この発明の第1の実施の形態における情報処理装置の構成を示すブロック図である。
【図2】第1の実施の形態による情報処理装置のパイプライン動作の例を示した説明図である。
【図3】メモリ装置の読出し速度が遅い場合の第1の実施の形態による情報処理装置のパイプライン動作の例を示した説明図である。
【図4】第2の実施の形態における情報処理装置の構成を示すブロック図である。
【図5】第3の実施の形態における情報処理装置の構成を示すブロック図である。
【図6】その情報処理装置のパイプライン動作の例を示した説明図である。
【図7】第4の実施の形態における情報処理装置の構成を示すブロック図である。
【図8】従来の情報処理装置の構成を示すブロック図である。
【図9】従来のデータ処理装置のパイプライン動作を示す説明図である。
【図10】MOV命令で読み出したデータを直後の命令が演算に用いる場合の従来のデータ処理装置のパイプライン動作を示す説明図である。
【図11】メモリ装置の読出し速度が遅い場合の従来のデータ処理装置のパイプライン動作を示す説明図である。
【符号の説明】
1、101 デコーダ
2、102 レジスタファイル
3、103 演算装置
4、104 メモリ制御装置
5、105 実行制御回路
6 読み出しデータ保持回路
8 データ先読み回路
10、11、12、17、18、24、110、111、112、117、118 データ
15、16、115、116 アドレス
25 命令読出し制御回路
26 実行部
40、140 メモリ装置
21、121 即値
22 データ先読み信号
23 データ読み出し信号
30 データ有効フラグ
31 データ有効信号
32 読み出し完了信号
33 実行停止要求信号
701 C言語プログラム
702 コンパイラ
703 ファイル読込部
704 読込用バッファ
705 構文解析部
706 中間コード用バッファ
707 機械命令生成部
708 出力用バッファ
709 ファイル出力部
710 機械命令プログラム

Claims (12)

  1. 少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
    前記メモリ装置から読み出したデータを格納するためのデータ保持手段と、
    前記命令読み出し手段により読み出された命令を解読する解読手段と、
    レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第1のデータを読み出すべくアクセスを開始し、前記データ保持手段から前記第2のデータを取り出して前記レジスタへ格納する実行手段とを備え、
    前記第2のデータは、前記特定の命令が解読される以前に前記解読手段が解読した前記特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とする情報処理装置。
  2. 実行手段は、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに行われ、読み出された前記第1のデータをデータ保持手段に格納する動作を、前記特定の命令に後続する命令の実行と並列に行う請求項1記載の情報処理装置。
  3. 情報処理装置は、命令の読出しを行う第1のステージと、命令の解読を行う第2のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第3のステージと、メモリ装置をアクセスする第4のステージと、命令によって指定される操作の結果をレジスタに格納する第5のステージとの5つのステージを含むパイプライン構造をとるものであって、
    命令読出し手段は前記第1のステージにおいて作用し、解読手段は前記第2のステージにおいて作用し、実行手段は前記第3から第5のステージにおいて作用し、特にデータ保持手段からの第2のデータの取り出しを前記第4のステージで行う請求項1または請求項2記載の情報処理装置。
  4. 少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
    前記メモリ装置から読み出した2個以上のn個のデータを格納するための第1から第nのデータ保持手段と、
    前記命令読み出し手段により読み出された命令を解読する解読手段と、
    この解読手段により前記特定の命令が置かれていると解読されるごとに1ずつ増分され、1からnの間を巡回する計数手段と、
    レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第1のデータを読み出すべくアクセスを開始し、前記計数手段が示す値kで定まる第kのデータ保持手段から前記第2のデータを取り出して前記レジスタへ格納する実行手段とを備え、前記第2のデータは、解読された前記特定の命令からnだけ前の前記特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とする情報処理装置。
  5. 実行手段は、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに行われ、読み出された前記第1のデータを第kのデータ保持手段に格納する動作を、前記特定の命令に後続する命令の実行と並列に行う請求項4記載の情報処理装置。
  6. 少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
    前記メモリ装置から読み出したデータを格納するためのデータ保持手段と、
    このデータ保持手段が格納するデータが有効か無効かを示すデータ有効フラグと、
    前記命令読み出し手段により読み出された命令を解読する解読手段と、
    レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第1のデータを読み出すべくアクセスを開始し、
    前記データ有効フラグが有効を示す場合は、前記データ保持手段から前記第2のデータを取り出して前記レジスタへ格納し、
    前記データ有効フラグが無効を示す場合は、前記データ有効フラグが有効を示すのを待って、前記データ保持手段から前記第2のデータを取り出して前記レジスタへ格納する実行手段とを備え、
    前記第2のデータは、前記特定の命令が解読される以前に前記解読手段が解読した前記特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とする情報処理装置。
  7. 実行手段は、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに、読み出された前記第1のデータをデータ保持手段に格納するとともに、データ有効フラグを有効にする動作を、前記特定の命令に後続する命令の実行と並列に行う請求項6記載の情報処理装置。
  8. 解読手段はさらに、外部から割込み要求を受けたとき、データ有効フラグが有効を示す場合は、割込み要求を受理し、前記データ有効フラグが無効を示す場合は、前記データ有効フラグが有効を示すのを待って、前記割込み要求を受理する請求項6または7記載の情報処理装置。
  9. 解読手段は、割込み要求を受理したとき、データ保持手段に保持されているデータを前記メモリ装置または他のメモリ装置の所定の領域に退避する請求項8記載の情報処理装置。
  10. 少なくともメモリ装置からの第1のデータの読み出しと第2のデータの操作とを指示する特定の命令を含む命令列から命令を取り出す命令読出し手段と、
    前記メモリ装置から読み出したデータを格納するためのデータ保持手段と、
    前記命令読み出し手段により読み出された命令を解読する解読手段と、
    レジスタを含んで成り、前記解読手段により前記特定の命令が置かれていると解読された場合に、前記第1のデータの読み出しアドレスを計算し、計算されたアドレスに基づいて前記メモリ装置から前記第1のデータを読み出すべくアクセスを開始し、前記データ保持手段から前記第2のデータを取り出して前記命令によって指示された演算を行った後に前記レジスタへ格納する実行手段とを備え、
    前記第2のデータは、前記特定の命令が解読される以前に前記解読手段が解読した前記特定の命令に基づく第1のデータとして読み出されたデータであることを特徴とする情報処理装置。
  11. 実行手段は、特定の命令によって開始された第1のデータの読み出しのアクセスが終了したときに行われ、読み出された前記第1のデータをデータ保持手段に格納する動作を、前記特定の命令に後続する命令の実行と並列に行う請求項10記載の情報処理装置。
  12. 命令の読出しを行う第1のステージと、命令の解読を行う第2のステージと、命令によって指定される演算またはメモリ装置をアクセスするアドレス計算を行う第3のステージと、前記メモリ装置をアクセスする第4のステージと、命令によって指定される操作の結果をレジスタに格納する第5のステージとの5つのステージを含むパイプライン構造をとる情報処理装置であって、
    命令読出し手段は前記第1のステージにおいて作用し、解読手段は前記第2のステージにおいて作用し、実行手段は前記第3から第5のステージにおいて作用し、特にデータ保持手段からの第2のデータの取り出しと演算とを前記第3のステージで行う請求項10または11記載の情報処理装置。
JP00380698A 1998-01-12 1998-01-12 情報処理装置 Expired - Fee Related JP3739556B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP00380698A JP3739556B2 (ja) 1998-01-12 1998-01-12 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP00380698A JP3739556B2 (ja) 1998-01-12 1998-01-12 情報処理装置

Publications (2)

Publication Number Publication Date
JPH11203136A JPH11203136A (ja) 1999-07-30
JP3739556B2 true JP3739556B2 (ja) 2006-01-25

Family

ID=11567446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP00380698A Expired - Fee Related JP3739556B2 (ja) 1998-01-12 1998-01-12 情報処理装置

Country Status (1)

Country Link
JP (1) JP3739556B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002101562A1 (fr) * 2001-06-12 2002-12-19 Tops Systems Corporation Systeme multiprocesseur et processeur de signaux

Also Published As

Publication number Publication date
JPH11203136A (ja) 1999-07-30

Similar Documents

Publication Publication Date Title
US5911057A (en) Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods
US8171266B2 (en) Look-ahead load pre-fetch in a processor
TWI505192B (zh) 在執行時間擷取資料平行處理的平行執行單元
JPS62245442A (ja) 情報処理装置
US20020029333A1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
JPH0527143B2 (ja)
JP3130446B2 (ja) プログラム変換装置及びプロセッサ
CN111159062A (zh) 一种缓存数据的调度方法、装置、cpu芯片及服务器
EP1770507A2 (en) Pipeline processing based on RISC architecture
US6748523B1 (en) Hardware loops
JP3739556B2 (ja) 情報処理装置
US20050114632A1 (en) Method and apparatus for data speculation in an out-of-order processor
JP2008299729A (ja) プロセッサ
US6016544A (en) Apparatus and method for tracking changes in address size and for different size retranslate second instruction with an indicator from address size
JPH10124312A (ja) 中央処理装置
US5895497A (en) Microprocessor with pipelining, memory size evaluation, micro-op code and tags
JP3915019B2 (ja) Vliwプロセッサ、プログラム生成装置、および記録媒体
KR100300875B1 (ko) 캐쉬 미스 시 처리 방법
JP5185478B2 (ja) パイプライン処理方法並びにその方法を利用するパイプライン処理装置
JP2532560B2 (ja) 高機能な例外処理を行うデ―タ処理装置
JP2835179B2 (ja) 並列処理計算機
KR100635111B1 (ko) 지정 가능한 지연 슬롯과 스쿼싱 조건을 가지는 분기 처리프로세서
US6289439B1 (en) Method, device and microprocessor for performing an XOR clear without executing an XOR instruction
JPH07182165A (ja) コミット条件付き命令の処理方法およびその装置
JP2856703B2 (ja) プロセッサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041006

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051006

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: 20051101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051102

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111111

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121111

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees