JPH11312084A - プロセッサおよびプログラム生成装置 - Google Patents

プロセッサおよびプログラム生成装置

Info

Publication number
JPH11312084A
JPH11312084A JP10118351A JP11835198A JPH11312084A JP H11312084 A JPH11312084 A JP H11312084A JP 10118351 A JP10118351 A JP 10118351A JP 11835198 A JP11835198 A JP 11835198A JP H11312084 A JPH11312084 A JP H11312084A
Authority
JP
Japan
Prior art keywords
instruction
unit
instructions
information
sequence
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.)
Granted
Application number
JP10118351A
Other languages
English (en)
Other versions
JP3861452B2 (ja
Inventor
Shinya Miyaji
信哉 宮地
Nobuo Higaki
信生 檜垣
Tetsuya Tanaka
哲也 田中
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP11835198A priority Critical patent/JP3861452B2/ja
Publication of JPH11312084A publication Critical patent/JPH11312084A/ja
Application granted granted Critical
Publication of JP3861452B2 publication Critical patent/JP3861452B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 プロセッサの高性能化を図るためには、命令
の解読より前の段階で何らかの先行処理を行う必要があ
るが、組み込み等でよく使われる可変長命令体系のプロ
セッサの場合には、命令の先頭位置を決定する必要があ
り、その為には前回の命令フェッチの状態を保存する命
令フェッチ状態保存器1631が必要となり、かつ、そ
の状態は分岐発生時にリセット制御する必要があるな
ど、ハードウェアが増加したりクリティカルパスが発生
するという問題があるだけでなく、制御的にも複雑でバ
グ発生の要因にも成り得るという問題がある。 【解決手段】 可変命令語長の命令列を実行するプロセ
ッサであって、前記命令列に含まれ、操作を記述する命
令語を解読する命令解読器と、前記命令語とは排他的
に、かつ一定間隔毎に前記命令列に含まれる、命令の位
置情報を取り出す命令位置取得手段とを備えることを特
徴とする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、命令の解読処理を
軽減するプロセッサ、プログラム生成装置および記録媒
体に関するものである。
【0002】
【従来の技術】近年、電子技術及び情報処理技術の発展
によりマイクロプロセッサの性能が向上し、あらゆる機
器に組み込まれ広く利用されている。その様なプロセッ
サでは、パイプライン処理により高い性能を達成してい
る。パイプライン処理とは命令の処理を複数に分割し、
それらを時間的にずらして別の命令を並列に処理するも
のである。特に組み込み用途の場合には、コードサイズ
の増加を抑制する目的で可変命令語長の命令体系を採用
する必要があるが、可変命令語長の命令は命令解読が複
雑となるために、命令解読を複数のパイプラインに分割
して行う事が多い。
【0003】図16は第1の従来技術における命令のフ
ォーマットである。従来技術の命令は、21ビットを単
位として(以下ユニットと表現する)同図(a)に示す
1ユニットで構成される命令と同図(b)に示す2ユニ
ットで構成される命令の2種類の命令を持ち、2つの命
令はそれぞれの命令の先頭の0ビット目の命令フォーマ
ット情報101の値で区別されており、0ビット目が0
の時には1ユニット命令を、0ビット目が1の時には2
ユニット命令を示す。またこれらの命令は、メモリ上で
は(c)に示すように、1回のフェッチ幅である64ビ
ットの中に3ユニット入れた形で格納されている。
【0004】図17は第1の従来技術におけるプロセッ
サのブロック図である。本プロセッサは、サイクル毎に
2命令を同時実行するプロセッサであり、分岐先は必ず
命令フェッチ単位の先頭であるとする。
【0005】メモリシステム210から供給される命令
列321は、命令供給発行部1620に入力される。
【0006】命令供給発行部1620では、固定長命令
変換器1622によって可変命令語長命令から解読の容
易な固定長命令へ変換される。変換された固定長命令は
命令バッファ223によって一時的に蓄えられ、命令解
読部230からの要求に従って2命令ずつ命令レジスタ
224に供給される。命令レジスタ224に格納された
2つの命令は、命令解読部230へ供給される。命令解
読部230では、2つの命令解読器233、234が命
令を解読する。命令実行部240では、2つの演算器2
43、244により演算が行われる。
【0007】図18は固定長命令変換器1622の詳細
図である。命令フェッチ状態保存器1631は、通常は
前回の命令フェッチと今回の命令フェッチを命令が跨い
でいるかどうかの状態を保存している。命令が跨いでい
ない場合には今回の命令フェッチの先頭と命令の先頭が
一致している事を、跨いでいる場合には今回の命令フェ
ッチの先頭は2ユニットで構成される命令の後半1ユニ
ットであることを示している。また、分岐が発生した場
合には、命令実行部21内のPC制御部242から命令
フェッチ制御部1621経由で命令フェッチに同期して
命令フェッチ状態保存器1631へ分岐が発生したこと
が伝えられる。この場合には、命令フェッチ状態保存器
1631の値は、命令が跨いでいない状態に初期化さ
れ、命令フェッチの先頭が命令の先頭となることを示
す。第2先頭検出器322bは命令フェッチ状態保存器
1631、および、先頭のユニット321aの先頭ビッ
トの情報から2つ目のユニット321bが命令の先頭か
どうかを判断する。同様に、第3先頭検出器322cは
第2先頭検出器322b、および、2つ目のユニット3
21bの先頭ビットの情報から3つ目のユニット321
cが命令の先頭かどうかを判断する。最後に次状態発生
器1622dは第3先頭検出器322c、および、3つ
目のユニット321cの先頭ビットの情報から321c
から始まる命令が今回の命令フェッチで終わるかどうか
を判断し、結果を命令フェッチ状態保存器1631に保
存すると共に、命令フェッチで終わらない場合には一時
保存レジスタ323へ3つ目のユニット321cを保存
する。
【0008】MIXa324aは、今回の命令フェッチ
が命令の途中から始まっていた場合には、一時保存レジ
スタ323に格納した命令の前半部分と命令の後半部分
である321aの値を連結したものを、321aが命令
の先頭で1ユニットで終わる命令であった場合には、図
4(a)の様に、321aの値と1ユニット分の意味の
無いデータを出力したものを、321aが命令の先頭で
2ユニットで終わる命令であった場合には、図4(b)
の様に、321aの値と321bの値を連結したものを
命令バッファ223に出力し、それ以外の場合には何も
出力しない。
【0009】同様に、MIXb324bは、321bが
命令の先頭で1ユニットで終わる命令であった場合に
は、321bの値と1ユニット分の意味の無いデータを
連結したものを、321bが命令の先頭で2ユニットで
終わる命令であった場合には、321bの値と321c
の値を連結したものを命令バッファ223に出力し、そ
れ以外の場合には何も出力しない。
【0010】同様に、MIXc324cは、321cが
命令の先頭で1ユニットで終わる命令であった場合に
は、321cの値と1ユニット分の意味の無いデータを
連結したものを命令バッファ223へ出力し、それ以外
の場合には何も出力しない。
【0011】また、次状態発生器1622dは、今回の
命令フェッチと次回の命令フェッチを命令が跨いでいる
かどうかの情報を命令フェッチ状態保存器1631に出
力するとともに、跨いでいる場合には一時保存レジスタ
323に命令の先頭を保存させる。
【0012】固定長命令変換器1622から命令バッフ
ァ223へは、最大6ユニットの命令325が供給され
る。
【0013】命令列変換器332は、命令バッファ22
3に毎回供給される最大6ユニットの命令325を、4
ユニットずつ、FIFO部333に入力する。
【0014】FIFO部333は、命令解読部230の
要求に従って4ユニットの命令を命令レジスタ224へ
出力する。
【0015】
【発明が解決しようとする課題】この様に、プロセッサ
の高性能化を図るためには、命令の解読より前の段階で
何らかの先行処理を行う必要があるが、組み込み等でよ
く使われる可変命令語長の命令体系のプロセッサの場合
には、命令の先頭位置を決定する必要があり、その為に
は前回の命令フェッチの状態を保存する命令フェッチ状
態保存器1631が必要となり、かつ、その状態は分岐
発生時にリセット制御する必要があるなど、ハードウェ
アが増加したりクリティカルパスが発生するという問題
があるだけでなく、制御的にも複雑でバグ発生の要因に
も成り得るという問題がある。
【0016】
【課題を解決するための手段】上記課題を解決するため
に、請求項1、2記載の発明は、命令中に配置された情
報を元に可変長命令を固定長命令に変換するプロセッサ
である。これにより、簡単なプロセッサの構成で可変長
命令を実行できる。
【0017】また、請求項3、4記載の発明は、命令中
に配置された情報を元に命令セットを切り換えるプロセ
ッサである。これにより、命令セットを切り換える命令
を使用しなくても済むため、コードサイズが小さくでき
る。
【0018】さらに、請求項5、6記載の発明は、命令
中に配置された情報を元にキャッシュに対するライトア
クセスがミスであった場合に主記憶装置のみを書き換え
るかまたはキャッシュメモリのみを書き換えるかを切り
換えるプロセッサである。これにより、より効率的なキ
ャッシュ制御ができる。
【0019】
【発明の実施の形態】以下、本発明に係るプロセッサ、
プログラム生成装置、及び記録媒体の実施の形態につい
て、図面を用いて詳細に説明する。
【0020】(第1の実施の形態) (命令フォーマット)図1は、本発明の第1の実施の形
態におけるプロセッサの命令フォーマットである。
【0021】本プロセッサは、21ビットを単位として
(以下ユニットと表現する)、同図(a)に示す1ユニ
ットで構成される命令と同図(b)に示す2ユニットで
構成される2種類の命令を持ち、2つの命令はそれぞれ
の命令の先頭である0ビット目にある命令フォーマット
情報ビット101の値で区別されており、0ビット目が
0の時には1ユニット命令を、0ビット目が1の時には
2ユニット命令を示す。またこれらの命令は、メモリ上
では同図(c)、(d)に示すように、1回のフェッチ
幅である64ビットの中に3ユニットの命令と、フェッ
チ単位内の最初のユニットが命令の先頭かどうかを示す
命令の先頭情報102を格納したことになっている。
【0022】同図(c)の様に命令の先頭情報102が
1の時には命令の先頭が最初のユニットに存在すること
を、同図(d)に示す様に0の時には命令の後半が最初
のユニットに存在することを示している。
【0023】(プロセッサのハードウェア構成)図2は
本発明の第1の実施の形態におけるプロセッサのブロッ
ク図である。
【0024】本プロセッサは、2命令が同時実行可能な
プロセッサであり、分岐先は必ず命令フェッチ単位の先
頭であるとする。
【0025】210は命令列を格納しているメモリシス
テム、220は命令フェッチから固定長命令への変換ま
でを担当する命令供給発行部、221は命令フェッチを
制御する命令フェッチ制御部、222は命令フェッチし
た可変長命令を固定長命令に変換する固定長命令変換
器、223は固定長命令をバッファリングする命令バッ
ファ、224は解読する命令を格納する命令レジスタ、
230は命令解読全般を行う命令解読部、231は命令
解読を制御する命令発行制御部、232は命令を解読す
る命令解読器、233は命令を解読する第1命令解読
器、234は命令を解読する第2命令解読器、240は
解読結果に従って命令を実行する命令実行部、241は
命令実行を制御する命令実行制御部、242は分岐関係
を担当するPC制御部、243は第1演算器、244は
第2演算器、245はレジスタを格納するレジスタファ
イルである。
【0026】図3は、命令供給発行部220の詳細ブロ
ック図である。321はメモリシステムから供給される
64ビットの命令フェッチデータ、321aは命令フェ
ッチデータ321中の1つ目のユニットのデータ、32
1bは命令フェッチデータ321中の2つ目のユニット
のデータ、321cは命令フェッチデータ321中の3
つ目のユニットのデータ、321dは命令フェッチデー
タ321中の命令の位置情報ビット、322bは2つ目
のユニットのデータ321bが命令の先頭かどうかを判
断する第2先頭検出器、322cは3つ目のユニットの
データ321cが命令の先頭かどうかを判断する第3先
頭検出器、322dは次の命令フェッチの1つ目のユニ
ットのデータ321aが命令の先頭かどうかを判断する
次状態発生器、323は今回の命令フェッチ内にある命
令の後半が次回の命令フェッチに存在する場合に命令の
前半を格納する一時保存レジスタ、324aは1つ目の
ユニットが末尾、あるいは、先頭の時に2ユニットの固
定長命令325aを出力するMIXa、324bは2つ
目のユニットが先頭の時に2ユニットの固定長命令32
5bを出力するMIXb、324cは3つ目のユニット
が1ユニット命令の先頭の時に2ユニットの固定長命令
325cを出力するMIXc、331は命令バッファを
制御する命令バッファ制御部、332は固定長命令変換
器222の出力する6ユニットの命令を2ユニット命令
の連続に変換する命令列変換器、333は命令をためる
FIFOである。
【0027】以上の様に構成された本発明の第1の実施
の形態のプロセッサについて、以下、その動作を説明す
る。
【0028】メモリシステム210から供給される命令
列321は、命令供給発行部220に入力される。命令
供給発行部内では、固定長命令変換器222によって可
変長命令から解読の容易な固定長命令へ変換される。変
換された固定長命令は命令バッファ223によって一時
的に蓄えられ、命令解読部230からの要求に従って2
命令ずつ命令レジスタ224に供給される。命令レジス
タ224に格納された2つの命令列は、命令解読部23
0へ供給される。命令解読部230では、2つの命令解
読器233、234が命令を解読する。命令実行部24
0では、2つの演算器243、244により演算が行わ
れる。
【0029】(固定長命令変換器の詳細な構成)以下に
固定長命令への変換器の詳細を述べる。
【0030】命令フェッチデータ321中の命令位置情
報ビット321dは、前回の命令フェッチと今回の命令
フェッチで命令が跨いでいたかどうかの状態を保存して
いる。命令が跨いでいない場合には今回の命令フェッチ
の先頭と命令の先頭が一致している事を、跨いでいる場
合には今回の命令フェッチの先頭は2ユニットで構成さ
れる命令の後半1ユニットであることを示している。
【0031】第2先頭検出器322bは命令フェッチデ
ータ321中の命令位置情報ビット321d、および、
先頭のユニット321aの先頭ビットの情報から2つ目
のユニット321bが命令の先頭かどうかを判断する。
【0032】同様に、第3先頭検出器322cは第2先
頭検出器322b、および、2つ目のユニット321b
の先頭ビットの情報から3つ目のユニット321cが命
令の先頭かどうかを判断する。最後に次状態発生器32
2dは第3先頭検出器322c、および、3つ目のユニ
ット321cの先頭ビットの情報から321cから始ま
る命令が今回の命令フェッチで終わるかどうかを判断
し、命令フェッチで終わらない場合には一時保存レジス
タ323へ3つ目のユニット321cを保存する。
【0033】MIXa324aは、今回の命令フェッチ
が命令の途中から始まっていた場合には、一時保存レジ
スタ323に格納した命令の前半部分と命令の後半部分
である321aの値を連結したものを、321aが命令
の先頭で1ユニットで終わる命令であった場合には、図
4(a)の様に、321aの値と1ユニット分の意味の
無いデータを連結したものを、321aが命令の先頭で
2ユニットで終わる命令であった場合には、図4(b)
の様に、321aの値と321bの値を連結したものを
命令バッファ223に出力し、それ以外の場合には何も
出力しない。
【0034】同様に、MIXb324bは、321bが
命令の先頭で1ユニットで終わる命令であった場合に
は、321bの値と1ユニット分の意味の無いデータを
連結したものを、321bが命令の先頭で2ユニットで
終わる命令であった場合には、321bの値と321c
の値を連結したものを命令バッファへ223に出力し、
それ以外の場合には何も出力しない。
【0035】同様に、MIXc324cは、321cが
命令の先頭で1ユニットで終わる命令であった場合に
は、321cの値と1ユニット分の意味の無いデータを
連結したものを命令バッファ223へ出力し、それ以外
の場合には何も出力しない。
【0036】(命令列変換器、FIFOの詳細な構成)
図7は命令列変換器の動作を説明する表である。
【0037】命令列変換器332内部には常時0ユニッ
ト、あるいは、2ユニットの命令列が存在している。
【0038】命令列変換器332は、固定長命令変換器
から2ユニット、あるいは4ユニット、あるいは6ユニ
ットの命令を受け取る。
【0039】命令を受け取った結果、4ユニット以上の
命令が用意された時には命令列変換器332は、FIF
O333へ4ユニットの命令を出力する。4ユニット未
満の命令が存在する時には、FIFO333へは出力せ
ずに命令列変換器332に保存する。
【0040】FIFO333は、内部に用意された命令
を、命令解読部230からの要求に従って4ユニットず
つ命令レジスタ224へ出力する。
【0041】(プロセッサの動作)次に具体的な命令を
解読実行した場合の本プロセッサの動作について説明す
る。
【0042】図5(c)は本発明の第1の実施の形態に
おけるプログラムの例である。本プログラム例では、0
x1000番地(”0x”は16進数を表す。以下同
様。)から1ユニットで構成されたadd r0,r1
命令、2ユニットで構成されたadd 0x1234,
r2命令、add 0x2345,r3命令、sub
0x3456,r4命令、1ユニットで構成されたno
p命令、cmpr1,r2命令、sub r3,r4命
令、sub r5,r6命令、subr6,r7命令が
続くとする。この命令列中で、0x1004番地の命令
フェッチは次の命令フェッチに命令が続いているので、
命令の位置情報ビット102は0に、それ以外は1にな
る(本来、バイナリの機械語命令だが、ここではニモニ
ック表記している)。
【0043】0x1000番地への分岐命令を検出する
と、命令実行制御部241はPC制御部242に分岐の
指令を出力する。PC制御部242は命令フェッチ制御
部221へ分岐命令を出力し、IAバス211へ分岐ア
ドレスを出力する。メモリシステム210はIAバス2
11に対応した命令列64ビットをIDバス212へ出
力し、命令供給発行部220内の固定長命令変換器22
2が受け取る。
【0044】固定長命令変換器222では、まず、命令
フェッチデータ中の命令の先頭情報ビット102が1で
あることから、1つ目のユニットのデータ321aが命
令の先頭であることがわかる。また、第2先頭検出器3
22bでは、321aが命令の先頭であることと、1つ
目のユニット321aの先頭ビットが0であることか
ら、2つ目のユニットも命令の先頭であることがわか
る。同じ様にして、第3先頭検出器322cでは、32
1bが命令の先頭であることと、2つ目のユニット32
1bの先頭ビットが1であることから、3つ目のユニッ
トは2つ目のユニットを先頭とする命令の後半である事
がわかる。最後に、次状態発生器322dでは、321
cが命令の末尾である事から3つ目のユニット321c
の先頭ビットを見るまでもなく、3つ目のユニットで命
令が終っている事が分かるので、一時保存レジスタ32
3には3つ目のユニットのデータ321cを保存する必
要はない事がわかる。
【0045】また、MIXa324aは、1つ目のユニ
ットのデータ321aが命令の先頭であり、かつ1ユニ
ット命令である事から、命令データ321aと意味の無
いデータ21ビットを連結したものを命令バッファ22
3に出力する。同様に、MIXb324bは、2つ目の
データ321bが命令の先頭であり、2ユニット命令の
先頭であることから、命令データ321bと321cを
連結したものを命令バッファ223へ出力する。同様に
MIXc324cは、3つ目のデータ321cが2ユニ
ット命令の後半である事から、何も出力しない。
【0046】これにより、0x1000番地の命令フェ
ッチにより命令バッファへは、図6(a1)及び図6
(b1)及び図6(c1)の様に4ユニットの命令が命
令バッファ223に出力される。
【0047】次に、0x1004番地の命令フェッチを
行う。同様の処理を行うことによって、MIXa324
aは、2ユニット命令の先頭であるので、1つ目のユニ
ットのデータ321aと2つ目のユニットのデータ32
1bを連結して命令バッファ223へ出力する。MIX
b324bは、2ユニット命令の後半であるので、何も
出力しない。MIXc324cは、2ユニット命令の前
半であるので、何も出力しない。次状態発生器322d
は、321cが次命令の前半であるので、321cのデ
ータを一時保存レジスタ323へ保存する。
【0048】これによって、0x1004番地の命令フ
ェッチにより命令バッファへは、図6(a2)及び図6
(b2)及び図6(c2)の様に2ユニットの命令が命
令バッファ223に出力される。
【0049】次に、0x1008番地の命令フェッチを
行う。同様の処理を行うことによって、MIXa324
aは、2ユニット命令の後半であるので、一時保存レジ
スタ323に保存した前半の命令と1つ目のユニットの
データ321aを連結して命令バッファ223へ出力す
る。MIXb324bは、1ユニット命令なので、2ユ
ニット目のデータ321bと21ビットの意味のないデ
ータを連結して命令バッファ223へ出力する。MIX
c324cは、3つ目のユニットが1ユニット命令であ
るので、3ユニット目のデータ321cと21ビットの
意味のないデータを連結して命令バッファ223へ出力
する。
【0050】これによって、0x1008番地の命令フ
ェッチにより命令バッファへは、図6(a3)及び図6
(b3)及び図6(c3)の様に6ユニットの命令が命
令バッファ223に出力される。
【0051】同様の処理によって、0x100c番地の
命令フェッチにより命令バッファへは、図6(a4)及
び図6(b4)及び図6(c4)の様に6ユニットの命
令が命令バッファ223に出力される。
【0052】命令解読部230では、固定長命令変換器
222によって固定長命令に変換された命令を命令バッ
ファ223や命令レジスタ224を経由して2命令ずつ
解読を行う。
【0053】(プログラム生成装置の構成)図14は本
発明の第1の実施の形態におけるプログラム生成装置の
ブロック図である。
【0054】1410は命令の位置情報を付加する前の
ソースプログラム格納手段、1420は3ユニット毎の
グループに分ける命令抽出手段、1430は命令がグル
ープを跨いでいるかどうかを判別する先頭位置情報生成
手段、1440はグループ化された命令列と先頭位置情
報を合成する命令列生成手段、1450は生成した命令
列を格納する命令列格納手段である。
【0055】以上の様に構成された本発明の第1の実施
の形態のプログラム生成装置について、以下、その動作
を説明する。
【0056】ソースプログラム格納手段1410には、
1ユニットあるいは、2ユニットで構成されるソースプ
ログラムが格納されている。命令抽出手段1420は、
ソースプログラムをソースプログラム格納手段1410
から取得し、それぞれ3ユニットで構成されるグループ
に分割する。先頭位置情報生成手段1430は、命令抽
出手段1420が出力するグループに分割された命令を
取得し、グループの先頭が命令の先頭と一致しているか
どうかを判断し、一致している場合には1を、一致して
いないときには0の値を出力する。命令列生成手段14
40は命令抽出手段1420の出力と先頭位置情報生成
手段1430の出力を合成して位置情報を付加した命令
列を出力する。
【0057】(プログラム生成装置の動作)次に具体的
な命令を解読実行した場合の本命令列生成装置の動作に
ついて説明する。
【0058】図5(a)および(b)は本発明の第1の
実施の形態におけるプログラム生成装置の入力プログラ
ムと出力されるプログラムの例である。
【0059】ソースプログラム格納手段1410には、
同図(a)に示す、1ユニットで構成されたadd r
0,r1命令、2ユニットで構成されたadd 0x1
234,r2命令、add 0x12345,r3命
令、sub 0x3456,r4命令、1ユニットで構
成されたnop命令、cmp r1,r2命令、sub
r3,r4命令と、sub r5,r6命令、sub
r6,r7命令が格納されている。
【0060】命令抽出手段1420は、ソースプログラ
ム格納手段1410に格納されたソースプログラムから
図5(b1)の様に3ユニットの命令add r0,r
1命令と2ユニットで構成されたadd 0x123
4,r2命令を抽出し、先頭位置情報生成手段1430
及び命令列生成手段1440に出力する。
【0061】先頭位置情報生成手段1430では、命令
抽出手段1420から3ユニットの命令を受け取ると、
その先頭のユニットが命令の先頭であるかどうかを判断
する。add r0,r1命令は命令の先頭であるので
1を出力する。
【0062】命令列生成手段1440は、命令抽出手段
1420が出力する3ユニットの命令及び先頭位置情報
生成手段1430が出力する1ビットの値1を合成し
て、64ビットの命令列を出力する。
【0063】次に、同様にして、命令抽出手段1420
は、図5(b2)の様にadd 0x2345,r3命
令と、sub 0x3456,r4命令の前半の3ユニ
ットを出力し、先頭のユニットはadd 0x234
5,r3命令命令の先頭であるので、先頭位置情報生成
手段1430は1を出力する。
【0064】次に、同様にして、命令抽出手段1420
は、図5(b3)の様にsub 0x3456,r4命
令の後半と、1ユニットで構成されたnop命令の3ユ
ニットを出力し、先頭のユニットはsub 0x345
6,r4命令の後半であるので、先頭位置情報生成手段
1430は0を出力する。
【0065】以上の処理を繰り返すことによって、命令
列生成手段1440は命令位置情報を付加した命令列を
出力する。
【0066】図5(c)は、図5(b)の命令列に命令
位置情報を付加した命令列である。 (第2の実施の形態) (命令フォーマット)図8は、本発明の第2の実施の形
態におけるプロセッサの命令フォーマットである。
【0067】本プロセッサは、2つの命令セットを有し
ている。同図(a)は21ビット固定長命令で構成され
る第1の命令セットであり、同図(b)は63ビット固
定長命令で構成される第2の命令セットである。
【0068】2つの命令セットは、64ビットの命令フ
ェッチ毎単位内に存在する命令セット選択情報で選択さ
れる。
【0069】同図(c)は、1ビットの命令セット選択
情報FMが0の場合の、3個の第1の命令セットで構成
される3命令列であり、同図(d)は、1ビットの命令
セット選択ビットFMが1の場合の、1個の第2の命令
セットで構成される命令列である。
【0070】図9は、本発明の第2の実施の形態におけ
るプロセッサの構成図である。910は命令列を格納し
ているメモリシステム、920は命令フェッチした命令
を命令レジスタに格納する命令供給発行部、921は命
令フェッチを制御する命令フェッチ制御部、924は解
読する命令を格納する命令レジスタ、930は命令解読
全般を行う命令解読部、931は命令解読を制御する命
令発行制御部、932は命令を解読する命令解読器、9
33aは21ビットの命令3つで構成される命令列を解
読する第1命令解読器、933bは63ビットの命令1
つで構成される命令列を解読する第2命令解読器、93
5はいずれかの命令解読器の解読結果を選択するMU
X、936は命令セットを決定する命令セット選択器、
940は解読結果に従って命令を実行する命令実行部、
941は命令実行を制御する命令実行制御部、942は
分岐関係を担当するPC制御部、943は演算器、94
5はレジスタを格納するレジスタファイルである。
【0071】以上の様に構成された本発明の第2の実施
の形態のプロセッサについて、以下、その動作を説明す
る。
【0072】メモリシステム910から供給される命令
列は、命令供給発行部920に入力される。命令供給発
行部内では、命令解読部930からの要求に従って64
ビットずつ命令レジスタ924に供給される。命令レジ
スタ924に格納された命令列は、命令解読部930へ
供給される。命令解読部930では、64ビットの命令
を2種類の命令列として、第1命令解読器933aと第
2命令解読器933bによって解読を行う。命令セット
選択器936は2つの解読結果のうちどちらかを決定
し、その情報によりMUX935は2つの解読結果のう
ちの1つを選択する。命令実行部940では、演算器9
43により演算が行われる。
【0073】(命令解読器の詳細な構成)以下に命令解
読器の詳細を述べる。
【0074】命令供給発行部920から供給された64
ビットの命令列は、第1命令解読器933a及び第2命
令解読器933bによって解読される。
【0075】第1命令解読器933aでは、64ビット
の命令列の内の最初の21ビットを解読しマイクロ命令
934aを出力する。
【0076】第2命令解読器933bでは、64ビット
の命令列の内の63ビットを解読しマイクロ命令934
bを出力する。
【0077】命令セット選択器936では、64ビット
の命令列の内の1ビットの命令セット選択情報を用いて
命令セットの選択を行う。命令セット選択情報が0の時
には、現在命令レジスタ924に格納されている命令は
第1の命令セットの命令3つで構成されていることを、
命令セット選択情報が1の時には、現在命令レジスタ9
24に格納されている命令は第2の命令セットの命令1
つで構成されていることを示す。MUX935は、命令
セット選択器936が選択した命令セット情報を用い
て、第1命令解読器933aの出力するマイクロ命令9
34aあるいは、第2命令解読器933bの出力するマ
イクロ命令934bのどちらかを選択する。これによっ
て命令解読器932は、命令レジスタ924に格納され
た命令列を正しい命令として解読し、命令実行部940
へ演算命令を発行する。
【0078】また、命令セット選択器936が第1の命
令セットを選択した場合、第1命令解読器933aは続
けて命令レジスタ924に格納されている、残りの2つ
の第1の命令セットの命令の解読を行ない、命令実行部
へマイクロ命令934aを出力する。
【0079】(プロセッサの動作)次に具体的な命令を
解読実行した場合の本プロセッサの動作について説明す
る。
【0080】図10(c1)および(c2)は本発明の
第2の実施の形態におけるプログラムの例である。
【0081】0x1000番地から第1の命令セットの
命令である、add1 r0,r0命令、sub1 r
2,r1命令、cmp1 r4,r1命令が続き、0x
1004番地から第2の命令セットの命令である、ad
d2 r5,r6命令、sub2 r7,r6命令、c
mp2 r9,r6命令、jmp2 0x2000命令
が続き、離れて0x2000番地からは第1の命令セッ
トの命令である、mul1 r0,r1命令、div1
r2,r3命令、sub1 r1,r2命令が続くと
する。この命令列中で、0x1000、及び0x200
0番地の命令フェッチは第1の命令セットの命令が格納
されているので命令セット選択情報は0に、それ以外は
第2の命令セットの命令が格納されているので1になる
(本来バイナリの機械語命令だが、ここではニモニック
で表記している。また、add1命令とsub2命令の
機械語が同じであるという様に、命令セットが異なると
同一の機械語に異なる命令が割り当てられる事もある
し、add1命令とadd2命令が同じ機械語であると
いう様に、命令セットが異なっても同一の命令は同一の
機械語に割り当てられることもある。)。
【0082】0x1000番地への分岐命令を検出する
と、命令実行制御部941はPC制御部942に分岐の
指令を出力する。PC制御部942は命令フェッチ制御
部921へ分岐命令を出力し、IAバス911へ分岐ア
ドレスを出力する。メモリシステム910はIAバス9
11に対応した0x1000番地から始まる命令列64
ビットをIDバス912へ出力し、命令供給発行部92
0内の命令レジスタ924が受け取る。
【0083】命令解読器932内の第1命令解読器93
3aは、命令レジスタ924の先頭21ビット925a
を参照してadd1 r0,r0命令を解読、第2命令
解読器933bは、命令レジスタ924の先頭63ビッ
ト925a、925b、925cを参照して解読を行
い、それぞれマイクロ命令934a及びマイクロ命令9
34bを出力する。同時に、命令セット選択器936は
命令レジスタ924を参照し、命令セット選択情報が0
である事から命令セットが第1の命令セットであること
を決定する。MUX935は、第1命令解読器933a
の出力するマイクロ命令934aを選択するので、命令
実行部940ではadd1 r0,r0命令が実行され
る。
【0084】続いて、第1の命令セットを選択している
ので、第1命令解読器933aは続けて命令レジスタ9
24に格納されている、残りの2つの第1の命令セット
の命令の解読を行ない、命令実行部940へマイクロ命
令934aを出力する。これによって、sub1 r
2,r1命令、cmp1 r4,r1命令が実行され
る。
【0085】次に、0x1004番地の命令を実行す
る。命令レジスタ924に格納される0x1004番地
の命令フェッチデータの命令セット選択情報は1である
ので、第2の命令セットとして、add2 r5,r6
命令が解読され、命令実行部940で実行される。
【0086】同様にして、0x1008番地は、第2の
命令セットであるsub2 r7,r6命令が、0x1
00c番地は第2の命令セットであるcmp2 r9,
r6命令が、0x1010番地は第2の命令セットであ
るjmp2 0x2000命令が、分岐先の0x200
0番地は、第1の命令セットであるmul1 r0,r
1命令、div1 r2,r3命令、sub1 r1,
r2命令が実行される。
【0087】(プログラム生成装置の構成)図15は本
発明の第2の実施の形態におけるプログラム生成装置の
ブロック図である。
【0088】1610は命令の位置情報を付加する前の
ソースプログラム格納手段、1620は3ユニット毎の
グループに分ける命令抽出手段、1630は命令がどち
らの命令セットに属しているかの情報を生成する命令セ
ット選択情報生成手段、1640はグループ化された命
令列と命令セット選択情報を合成する命令列生成手段、
1650は生成した命令列を格納する命令列格納手段で
ある。
【0089】以上の様に構成された本発明の第2の実施
の形態のプログラム生成装置について、以下、その動作
を説明する。
【0090】ソースプログラム格納手段1610には、
1ユニットで構成される第1の命令セットに属する命
令、及び、3ユニットで構成される第2の命令セットに
属する命令のソースプログラムが格納されている。命令
抽出手段1620は、ソースプログラムをソースプログ
ラム格納手段1610から取得し、それぞれ3ユニット
で構成されるグループに分割する。命令セット選択情報
生成手段1630は、命令抽出手段1620が出力する
グループに分割された命令を取得し、グループ内の命令
がどちらの命令セットに属しているかを判断し、第1の
命令セットに属している時には0を、第2の命令セット
に属しているときには1の値を出力する。命令列生成手
段1640は命令抽出手段1620の出力と命令セット
選択情報生成手段1630の出力を合成して命令セット
選択情報を付加した命令列を出力する。
【0091】(プログラム生成装置の動作)次に具体的
な命令を解読実行した場合の本命令列生成装置の動作に
ついて説明する。
【0092】図10(a)および(b)は本発明の第2
の実施の形態におけるプログラム生成装置の入力プログ
ラムと出力されるプログラムの例である。
【0093】ソースプログラム格納手段1610には、
同図(a)に示す、第1の命令セットの命令である、a
dd1 r0,r0命令、sub1 r2,r1命令、
cmp1 r4,r1命令が続いて、第2の命令セット
の命令である、add2 r5,r6命令、sub2
r7,r6命令、cmp2 r9,r6命令、jmp2
0x2000命令が続くとする。
【0094】命令抽出手段1620は、ソースプログラ
ム格納手段1610に格納されたソースプログラムから
図10(b1)の様に3ユニット分の命令である、第1
の命令セットの命令である、add1 r0,r0命
令、sub1 r2,r1命令、cmp1 r4,r1
命令を抽出し、命令セット選択情報生成手段1630及
び命令列生成手段1640に出力する。
【0095】命令セット選択情報生成手段1630で
は、命令抽出手段1620から3ユニットの命令を受け
取ると、命令列がどちらの命令セットに属するかを判断
する。これら3ユニットの命令は第1の命令セットであ
るので0を出力する。
【0096】命令列生成手段1640は、命令抽出手段
1620が出力する3ユニットの命令及び命令セット選
択情報生成手段1630が出力する1ビットの値0を合
成して、64ビットの命令列を出力する。
【0097】次に、同様にして、命令抽出手段1620
は、図10(b2)の様に第2の命令セットの命令であ
る、add2 r5,r6命令の3ユニットを出力し、
該当ユニットは第2の命令セットに属する命令であるの
で、命令セット選択情報生成手段1630は1を出力す
る。
【0098】以上の処理を繰り返すことによって、命令
列生成手段1640は命令セット選択情報を付加した命
令列を出力する。
【0099】図10(c1)は、図10(b)の命令列
に命令セット選択情報を付加した命令列である。
【0100】(従来の命令セット選択方式の課題)この
様に従来の命令セット選択方式では、プログラムカウン
タ1830に実装されたTビットによって命令セットの
選択を行うが、1バイト単位の命令を持つプロセッサで
はこの方式は使用できないという問題がある。また、命
令セットの選択は実行時のプログラムカウンタ1830
の値によってのみ決まり、実際に動作させないと命令セ
ットは決定できないため、例えば0x1000番地の命
令列を見た時にそれがどちらの命令セットなのかを判断
することができず、機械語レベルでのデバッグに困難が
あったり、例えば0x1001に分岐命令を記述するな
ど、プログラマの間違いで第1の命令セットで記述され
たプログラムに、最下位ビットが1の分岐アドレスで分
岐した場合に動作の保証ができないという問題がある。
【0101】また、公開特許公報特開平8−44557
号に従来例として記載されているVAX11コンピュー
ターの様に、プロセッサステータスレジスタに実装した
命令セット切り替えレジスタへの書込によって命令セッ
トを選択する方式では、プロセッサステータスレジスタ
に書き込む命令が必要となるので、プログラムが余分に
必要とされ、プログラム領域が肥大したり、書込処理に
よりプロセッサの性能が低下してしまうという問題があ
る。また通常のレジスタ書込は、例えばライトバックス
テージの様な、命令の解読よりも後のパイプラインステ
ージで行われるために、プロセッサステータスレジスタ
への書き込み命令の解読と、プロセッサステータスレジ
スタへの実際の書き込みの間に時間差が発生してしまう
ため、命令セットの切替えが高速に行えないという問題
もある。
【0102】(第3の実施の形態) (命令フォーマット)図11は、本発明の第3の実施の
形態におけるプロセッサの命令フォーマットである。
【0103】本プロセッサは、同図(a)に示すよう
に、21ビットを単位とした固定長命令形式となってい
る。64ビットの命令フェッチ単位は、21ビットの3
つの命令と1ビットの命令キャッシュ制御情報で構成さ
れる。命令キャッシュ制御情報が0の時は、その命令フ
ェッチ単位に含まれる命令をキャッシュに登録しない事
を、1の時は、その命令フェッチ単位に含まれる命令を
キャッシュに登録する制御を示す。同図(b)は、命令
キャッシュ制御情報が0の場合で、命令フェッチ単位に
含まれる3つの命令は命令キャッシュに登録しない事を
示す。同図(c)は、命令キャッシュ制御情報が1の場
合で、命令フェッチ単位に含まれる3つの命令は命令キ
ャッシュに登録する事を示す。
【0104】(プロセッサのハードウェア構成)図12
は本発明の第3の実施の形態におけるプロセッサのブロ
ック図である。
【0105】1210は命令列を格納しているメモリシ
ステム、1250は命令列に対するキャッシュを制御す
る命令キャッシュ装置、1252は命令列を命令キャッ
シュ装置1250に登録するかどうかを判断する命令キ
ャッシュ制御解読器、1253は命令キャッシュ、12
20はメモリシステム1210或いは命令キャッシュ装
置1250から命令を得る命令供給発行部、1221は
命令フェッチを制御する命令フェッチ制御部、1224
は解読する命令を格納する命令レジスタ、1230は命
令解読全般を行う命令解読部、1231は命令解読を制
御する命令発行制御部、1232は命令を解読する命令
解読器、1240は解読結果に従って命令を実行する命
令実行部、1241は命令実行を制御する命令実行制御
部、1242は分岐関係を担当するPC制御部、124
3は演算器、1245はレジスタを格納するレジスタフ
ァイルである。
【0106】以上の様に構成された本発明の第3の実施
の形態のプロセッサについて、以下、その動作を説明す
る。
【0107】命令フェッチ制御部1221から命令フェ
ッチアドレスが発行されると、命令キャッシュ装置12
50は該当する命令が命令キャッシュ1253に格納さ
れているかを確認し、命令キャッシュ1253に格納さ
れていない場合には、メモリシステム1210へIAバ
ス1211を通じて命令フェッチアドレスを出力する。
【0108】メモリシステム1210はIDバス121
2を通じて命令列を命令キャッシュ装置1250へ供給
する。
【0109】命令キャッシュ装置1250では、命令キ
ャッシュ制御解読器1252は命令列の内の命令キャッ
シュ制御情報を解読し、命令キャッシュ制御情報が1の
時には命令キャッシュ1253への登録を行い、命令キ
ャッシュ情報が0の時には命令キャッシュ1253への
登録を行わない。
【0110】命令キャッシュ装置1250はメモリシス
テム1210或いは命令キャッシュ1253のいずれか
に格納された命令列をCDバス1255を介して命令供
給発行部1220に供給する。
【0111】命令供給発行部1220では、命令解読部
1230からの要求に従って64ビットずつ命令レジス
タ1224に命令列を供給する。命令レジスタ1224
に格納された命令列は、命令解読部1230へ供給され
る。命令解読部1230では、64ビットの命令を3つ
の21ビット命令として、命令解読器1232によって
解読を行う。
【0112】命令実行部1240では、演算器1243
により演算が行われる。 (プロセッサの動作)次に具体的な命令を解読実行した
場合の本プロセッサの動作について説明する。
【0113】図13は本発明の第3の実施の形態におけ
るプログラムの例である。このプログラムは、割り込み
処理プログラムの様な通常プログラムの流れとは異な
り、本プログラムに分岐して来た時、命令キャッシュに
は本プログラムは格納されていない状況を想定してい
る。
【0114】本プログラム例では、0x1000番地か
らclr r1命令、 mov imm,r4命令、m
ov r5,r0命令、mov (r0),r3命令、
mul r3,r4命令、add r4,r1命令、s
ub imm,r0命令、cmp r1,r0命令、b
ne 0x1004命令、rti命令が配置されてお
り、この命令列中、0x1004番地及び0x1008
番地に格納されている6つの命令は内部で繰り返して実
行されるのに対して、ほかの命令は1度しか実行されな
い。この為、0x1004番地及び0x1008番地に
格納されている命令は命令キャッシュに登録した方が効
率が高いので命令キャッシュ制御情報は1に、それ以外
の命令キャッシュ情報は0に設定されている。
【0115】割り込み等の要因により、0x1000番
地への分岐命令を検出すると、命令実行制御部1241
はPC制御部1242に分岐の指令を出力する。PC制
御部1242は命令フェッチ制御部1221へ分岐命令
を出力し、CAバス1254へ分岐アドレスを出力す
る。
【0116】命令キャッシュ1253にはこれらのプロ
グラムは格納されていないので、命令キャッシュ装置1
250はIAバス1211を通じてメモリシステム12
10から命令列を要求する。メモリシステム1210は
命令列をIDバス1212を通じて命令キャッシュ装置
1250へ供給する。
【0117】命令キャッシュ装置1250は、命令列を
CDバス1255を介して命令供給発行部1220内の
命令レジスタ1224へ供給する。また、キャッシュ制
御解読器1252は命令列の内の命令キャッシュ制御情
報を解読し、命令キャッシュ制御情報が0であることか
ら、命令キャッシュ1253への登録を行わない。
【0118】命令解読器1232は、命令レジスタ12
24の命令を21ビットずつ、clr r1命令、 m
ov imm,r4命令、mov r5,r0命令とし
て解読し、命令実行部1240は演算を行う。
【0119】同様にして、0x1004番地及び0x1
008番地の6つの命令の実行を行う。これらの命令列
は命令キャッシュ制御情報が1に設定されているので、
メモリシステム1210から命令フェッチすると同時
に、命令キャッシュ装置1250では命令キャッシュ1
253への登録が行われる。これによってmov (r
0),r3命令、mul r3,r4命令、add r
4,r1命令、subimm,r0命令、cmp r
1,r0命令、bne 0x1004命令が解読、実行
されると同時に、命令キャッシュ1253への登録が行
われる。
【0120】次に、再度0x1004番地及び0x10
08番地の6つの命令を実行する場合、これらの命令列
は命令キャッシュ1253に既に格納されているので、
メモリシステム1210にアクセスすることなく、高速
に実行される。
【0121】最後に、0x100c番地のrti命令を
実行する場合には、0x1000番地の命令を実行する
場合と同じく、メモリシステム1210から命令列を獲
得して実行するが、命令キャッシュ1253への登録は
行わない。
【0122】(従来のキャッシュ制御方式の課題)公開
特許公報特開平8−44557号に従来例として記載さ
れているVAX11コンピューターの様に、プロセッサ
ステータスレジスタに実装したキャッシュ制御レジスタ
への書込によってキャッシュの登録や参照などの動作を
制御する方式では、プロセッサステータスレジスタに書
き込む命令が必要となるので、プログラムが余分に必要
とされ、プログラム領域が肥大したり、書込処理により
プロセッサの性能が低下してしまうという問題がある。
また通常のレジスタ書込は、例えばライトバックステー
ジの様な、解読ステージよりも後のパイプラインステー
ジで行われるために、プロセッサステータスレジスタへ
の書き込み命令の解読と、プロセッサステータスレジス
タへの実際の書き込みの間に時間差が発生してしまうた
め、キャッシュの制御が高速に行えないという問題もあ
る。
【0123】以上で添付図面を参照して本発明の図示し
た実施の形態について説明したが、本発明はこれら実施
の形態のみに限定されるものではなく、当業者であれば
特許請求の範囲に記載した発明の要旨から逸脱すること
なく、種々の変形及び変更が可能であると理解すべきで
ある。
【0124】第1の実施の形態に関して、本実施の形態
では命令フェッチ幅や命令長を規定したがそれらを特に
限定するものではない。
【0125】また、命令位置情報を、格納する単位を命
令フェッチ幅としたが、この単位は、一定間隔、あるい
は分岐先の命令毎であれば特に限定しない、例えば、命
令フェッチ幅や、命令フェッチ幅の整数倍や、命令フェ
ッチ幅の整数分の1であっても構わない。
【0126】また、命令位置情報は、前記単位に必ず存
在する必要は無く、例えば、分岐先を含む単位のみに存
在していたり、分岐先を含む単位の次の単位のみに存在
していたり、分岐命令を含む単位や、メモリアクセス命
令を含む単位にのみ存在していたりしても構わない。
【0127】また、命令の位置情報を、単位の中で最低
位の番地に位置する命令の位置情報としたが、この位置
情報は、単位の中で最低位の番地の命令が命令のどの部
分であるかという情報でも構わないし、また、単位内に
含まれる全ての命令の位置情報であっても構わない。
【0128】また、命令の位置情報を、可変語長命令か
ら固定長への変換に用いたが、この情報を何に利用する
かは特に限定しない。例えば、解読時の処理の負荷分散
を目的とした前解読処理であっても構わないし、分岐命
令の分岐先を予測する分岐予測や、先行投機実行の為に
使用しても構わない。
【0129】また、ソースプログラム格納手段が扱うデ
ータは、ニモニックであっても機械語であっても構わな
いし、C言語の様な高級言語であっても構わない。
【0130】また、命令抽出手段は、3ユニット毎の固
定長を抽出したが、固定長の長さは何でも構わないし、
また、分岐先の命令語の間隔に対応した長さの命令を抽
出する機能であっても構わない。
【0131】また、命令列格納手段は、具体的に何であ
るかは限定しない。例えば、フロッピーディスクやハー
ドディスクや、光ディスクなどの媒体であっても構わな
い。
【0132】第2の実施の形態に関して、本実施の形態
では命令フェッチ幅や命令長を規定したがそれらを特に
限定するものではない。
【0133】また、命令セット選択情報を、格納する単
位を命令フェッチ幅としたが、この単位は、一定間隔あ
るいは分岐先の命令毎であれば特に限定しない、例え
ば、命令フェッチ幅や、命令フェッチ幅の整数倍や、命
令フェッチ幅の整数分の1であっても構わない。
【0134】また、命令セット選択情報は、前記単位に
必ず存在する必要は無く、例えば、分岐先を含む単位の
みに存在していたり、分岐先を含む単位の次の単位のみ
に存在していたり、分岐命令を含む単位や、メモリアク
セス命令を含む単位にのみ存在していたりしても構わな
い。
【0135】また、命令セット選択情報を、解読器の出
力するマイクロ命令の無効化に用いたが、この情報を何
に利用するかは特に限定しない。例えば、解読器に入力
する命令列の無効化処理に使っても構わないし、解読器
の動作状態の制御に使用しても構わない。
【0136】また、命令セットを固定長命令としたが、
それらを限定するものではない。例えば、全て可変長命
令であっても構わないし、混在であっても構わない。ま
た、可変長命令の場合には、命令の先頭あるいは末尾が
格納されている単位の命令セット選択情報であっても構
わない。
【0137】また、ソースプログラム格納手段が扱うデ
ータは、ニモニックであっても機械語であっても構わな
いし、C言語の様な高級言語であっても構わない。
【0138】また、命令抽出手段は、3ユニット毎の固
定長の命令列を抽出したが、固定長の長さは何でも構わ
ないし、また、分岐先の命令語の間隔に対応した可変の
長さの命令列を抽出する機能であっても構わない。
【0139】また、命令列格納手段は、具体的に何であ
るかは限定しない。例えば、フロッピーディスクやハー
ドディスクや、光ディスクなどの媒体であっても構わな
い。
【0140】第3の実施の形態に関して、本実施の形態
では命令フェッチ幅や命令長を規定したがそれらを特に
限定するものではない。
【0141】また、キャッシュ制御情報を、格納する単
位を命令フェッチ幅としたが、この単位は、一定間隔あ
るいは分岐先の命令毎であれば特に限定しない、例え
ば、命令フェッチ幅や、命令フェッチ幅の整数倍や、命
令フェッチ幅の整数分の1であっても構わない。
【0142】また、キャッシュ制御情報は、前記単位に
必ず存在する必要は無く、例えば、分岐先を含む単位の
みに存在していたり、分岐先を含む単位の次の単位のみ
に存在していたり、分岐命令を含む単位や、メモリアク
セス命令を含む単位にのみ存在していたりしても構わな
い。
【0143】また、キャッシュ制御情報を、命令列の命
令キャッシュへの登録制御に用いたが、命令キャッシュ
へのアクセス制御であっても構わないし、データキャッ
シュへの登録制御やアクセス制御であっても構わない。
【0144】また、命令セットを固定長命令としたが、
それらを限定するものではない。例えば、全て可変長命
令であっても構わないし、混在であっても構わない。ま
た、可変長命令の場合には、命令の先頭あるいは末尾が
格納されている単位の命令セット選択情報であっても構
わない。
【0145】また、制御情報は、キャッシュ制御情報に
限定しない。具体的には、先行命令フェッチ制御であっ
たり、割り込み制御であったり、MMUに対する制御情
報であったりしても構わない。先行命令フェッチの場合
には、先行命令フェッチの一時禁止情報であったり、命
令フェッチした命令列を一時的に格納する命令バッファ
の格納バイト数をソフトウェア的に制御するものであっ
たり、先行命令フェッチのフェッチバス幅であったりし
ても構わない。割り込み制御情報の場合には、割り込み
禁止情報であったり、割り込み禁止レベル情報であった
りしても構わない。また、単一の制御情報ではなく、複
数の制御情報を混在させても構わない。混在するときに
は、同一単位内に混在させても構わないし、単位毎に異
なる制御情報を組み込む形式にしても構わない。
【0146】また、制御情報は、現在の単位に対する制
御情報であっても構わないし、次の単位に対する制御情
報であっても構わない。
【0147】
【発明の効果】以上の説明から明らかなように、本発明
は、命令中に付加情報を配置し、この情報に基づいて制
御することによりプロセッサの構造を簡単にするもので
ある。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態におけるプロセッサ
の命令フォーマットおよび、命令フェッチ時の命令列の
並びを示す図
【図2】本発明の第1の実施の形態におけるプロセッサ
のブロック構成図
【図3】本発明の第1の実施の形態における命令供給発
行部のブロック構成図
【図4】本発明の第1の実施の形態における固定長命令
変換器の出力フォーマットを示す図
【図5】本発明の第1の実施の形態におけるプログラム
を示す図
【図6】本発明の第1の実施の形態におけるプログラム
を変換した固定長命令を示す図
【図7】本発明の第1の実施の形態における命令列変換
器の動作の説明図
【図8】本発明の第2の実施の形態におけるプロセッサ
の命令フォーマットおよび、命令フェッチ時の命令列の
並びを示す図
【図9】本発明の第2の実施の形態におけるプロセッサ
のブロック構成図
【図10】本発明の第2の実施の形態におけるプログラ
ムを示す図
【図11】本発明の第3の実施の形態におけるプロセッ
サの命令フォーマットおよび、命令フェッチ時の命令列
の並びを示す図
【図12】本発明の第3の実施の形態におけるプロセッ
サのブロック構成図
【図13】本発明の第3の実施の形態におけるプログラ
ムを示す図
【図14】本発明の第1の実施の形態におけるプログラ
ム生成装置のブロック構成図
【図15】本発明の第2の実施の形態におけるプログラ
ム生成装置のブロック構成図
【図16】従来のプロセッサの命令フォーマットおよ
び、命令フェッチ時の命令列の並びを示す図
【図17】従来のプロセッサのブロック構成図
【図18】従来のプロセッサにおける命令供給発行部の
ブロック構成図
【図19】従来におけるプログラムを示す図
【符号の説明】
101 命令フォーマット情報 102 命令の先頭情報 210 メモリシステム 220 命令供給発行部 221 命令フェッチ制御部 222 固定長命令変換器 223 命令バッファ 224 命令レジスタ 230 命令解読部 231 命令発行制御部 232 命令解読器 233 第1命令解読器 234 第2命令解読器 240 命令実行部 241 命令実行制御部 242 PC制御部 243 第1演算器 244 第2演算器 245 レジスタファイル 910 命令列を格納しているメモリシステム 920 命令フェッチした命令を命令レジスタに格納す
る命令供給発行部 921 命令フェッチを制御する命令フェッチ制御部 924 解読する命令を格納する命令レジスタ 930 命令解読全般を行う命令解読部 931 命令解読を制御する命令発行制御部 932 命令を解読する命令解読器 933a 21ビットの命令3つで構成される命令列を
解読する第1命令解読器 933b 63ビットの命令1つで構成される命令列を
解読する第2命令解読器 935 いずれかの命令解読器の解読結果を選択するM
UX 936 命令セットを決定する命令セット選択器 940 解読結果にしたがって命令を実行する命令実行
部 941 命令実行を制御する命令実行制御部 942 分岐関係を担当するPC制御部 943 演算器 945 レジスタを格納するレジスタファイル 1210 命令列を格納しているメモリシステム 1220 メモリシステム1210或いは命令キャッシ
ュ装置1250から命令を得る命令供給発行部 1221 命令フェッチを制御する命令フェッチ制御部 1224 解読する命令を格納する命令レジスタ 1230 命令解読全般を行う命令解読部 1231 命令解読を制御する命令発行制御部 1232 命令を解読する命令解読器 1240 解読結果にしたがって命令を実行する命令実
行部 1241 命令実行を制御する命令実行制御部 1242 分岐関係を担当するPC制御部 1243 演算器 1245 レジスタを格納するレジスタファイル 1250 命令列に対するキャッシュを制御する命令キ
ャッシュ装置 1252 命令列を命令キャッシュ装置1250に登録
するかどうかを判断するキャッシュ制御解読器 1253 命令キャッシュ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 複数のユニットからなる可変長命令を並
    列実行するプロセッサであって、 前記命令中には前記最初のユニットが命令の先頭である
    か否かを示す情報が配置されており、前記情報に基づい
    て可変長命令を固定長命令に変換して実行することを特
    徴とするプロセッサ。
  2. 【請求項2】 可変命令語長の命令列を生成するプログ
    ラム生成装置であって、入力されたプログラムから一定
    の長さの命令語を抽出する命令抽出手段と、前記命令抽
    出手段により抽出された前記命令語の位置情報を生成す
    る位置情報生成手段と、前記命令抽出手段により抽出さ
    れた前記命令語と、前記位置情報生成手段により生成さ
    れた前記位置情報とを合成して前記命令列を生成する命
    令列生成手段とを備えることを特徴とするプログラム生
    成装置。
  3. 【請求項3】 複数の固定長のユニットからなる命令を
    可変長命令として並列実行するプロセッサであって、 前記命令中には前記命令がどの命令セットに属するかを
    示す命令セット選択情報が配置されており、前記情報に
    基づいて命令セットを切り換えることを特徴とするプロ
    セッサ。
  4. 【請求項4】 複数の命令セットからなる命令列を生成
    するプログラム生成装置であって、入力されたプログラ
    ムから一定の長さの命令語を抽出する命令抽出手段と、
    前記命令抽出手段により抽出された前記命令語がどの前
    記命令セットに属するかを規定する命令セット選択情報
    を生成する命令セット選択情報生成手段と、前記命令抽
    出手段により抽出された前記命令語と、前記命令セット
    選択情報生成手段により生成された前記命令セット選択
    情報とを合成して前記命令列を生成する命令列生成手段
    とを備えることを特徴とするプログラム生成装置。
  5. 【請求項5】 複数の固定長のユニットからなる命令を
    可変長命令として並列実行するプロセッサであって、 前記命令中には前記キャッシュに対するライトアクセス
    がミスであった場合に主記憶装置のみを書き換えるかま
    たはキャッシュメモリのみを書き換えるかの情報が配置
    されており、この情報に基づいてキャッシュに対するラ
    イトアクセスがミスであった場合主記憶装置のみを書き
    換えるかまたはキャッシュメモリのみを書き換えるかの
    切り換えを行うことを特徴とするプロセッサ。
  6. 【請求項6】 命令列を生成するプログラム生成装置で
    あって、入力されたプログラムから一定の長さの命令語
    を抽出する命令抽出手段と、前記命令抽出手段により抽
    出された前記命令語に対するキャッシュ制御を規定する
    キャッシュ制御情報を生成するキャッシュ制御情報生成
    手段と、前記命令抽出手段により抽出された前記命令語
    と、前記キャッシュ制御情報生成手段により生成された
    前記キャッシュ制御情報とを合成して前記命令列を生成
    する命令列生成手段とを備えることを特徴とするプログ
    ラム生成装置。
JP11835198A 1998-04-28 1998-04-28 プロセッサおよびプログラム生成装置 Expired - Lifetime JP3861452B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11835198A JP3861452B2 (ja) 1998-04-28 1998-04-28 プロセッサおよびプログラム生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11835198A JP3861452B2 (ja) 1998-04-28 1998-04-28 プロセッサおよびプログラム生成装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006216894A Division JP4349392B2 (ja) 2006-08-09 2006-08-09 プロセッサおよびプログラム生成装置

Publications (2)

Publication Number Publication Date
JPH11312084A true JPH11312084A (ja) 1999-11-09
JP3861452B2 JP3861452B2 (ja) 2006-12-20

Family

ID=14734558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11835198A Expired - Lifetime JP3861452B2 (ja) 1998-04-28 1998-04-28 プロセッサおよびプログラム生成装置

Country Status (1)

Country Link
JP (1) JP3861452B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008083873A (ja) * 2006-09-26 2008-04-10 Yamaha Corp デジタル信号処理装置
JP4862100B1 (ja) * 2011-03-25 2012-01-25 好一 北岸 中央演算処理装置及びマイクロコンピュータ
US8516225B2 (en) 2011-03-25 2013-08-20 Koichi Kitagishi Central processing unit and microcontroller
JP2013546100A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション セキュリティサンドボックス

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008083873A (ja) * 2006-09-26 2008-04-10 Yamaha Corp デジタル信号処理装置
JP2013546100A (ja) * 2010-12-16 2013-12-26 マイクロソフト コーポレーション セキュリティサンドボックス
JP4862100B1 (ja) * 2011-03-25 2012-01-25 好一 北岸 中央演算処理装置及びマイクロコンピュータ
WO2012132104A1 (ja) * 2011-03-25 2012-10-04 Kitagishi Koichi 中央演算処理装置及びマイクロコンピュータ
US8516225B2 (en) 2011-03-25 2013-08-20 Koichi Kitagishi Central processing unit and microcontroller

Also Published As

Publication number Publication date
JP3861452B2 (ja) 2006-12-20

Similar Documents

Publication Publication Date Title
US5303356A (en) System for issuing instructions for parallel execution subsequent to branch into a group of member instructions with compoundability in dictation tag
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
JP3797471B2 (ja) マルチスレッドvliwプロセッサにおける分割可能なパケットを識別するための方法および装置
US5504932A (en) System for executing scalar instructions in parallel based on control bits appended by compounding decoder
US5944841A (en) Microprocessor with built-in instruction tracing capability
US5911057A (en) Superscalar microprocessor having combined register and memory renaming circuits, systems, and methods
JP6807383B2 (ja) 転送プレフィックス命令
JP2003085000A (ja) トレース情報生成装置およびその方法
US8176478B2 (en) Process for running programs on processors and corresponding processor system
JPH0128415B2 (ja)
KR20010050792A (ko) 2개의 서로 다른 고정 길이 명령 세트를 실행하기 위한프로세서 아키텍쳐
JP2004171573A (ja) 新規な分割命令トランズアクションモデルを使用して構築したコプロセッサ拡張アーキテクチャ
US6014739A (en) Increasing general registers in X86 processors
US6687808B2 (en) Data processor using indirect register addressing
TW202314497A (zh) 用於加速串流資料變換運算之電路系統及方法
JPH0248732A (ja) 命令パイプライン方式のマイクロプロセッサ
JP2008146544A (ja) 演算処理装置
KR101497346B1 (ko) 명령으로서 데이터 값을 평가하기 위한 시스템 및 방법
US20040255095A1 (en) Data access program instruction encoding
JPH11312084A (ja) プロセッサおよびプログラム生成装置
CN108920188B (zh) 一种扩展寄存器堆的方法及装置
US20070245120A1 (en) Multiple microcontroller system, instruction, and instruction execution method for the same
JP4349392B2 (ja) プロセッサおよびプログラム生成装置
EP0545927B1 (en) System for preparing instructions for instruction parallel processor and system with mechanism for branching in the middle of a compound instruction
KR920003182B1 (ko) 마이크로프로세서

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050427

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050512

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050627

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060810

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060918

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

Free format text: PAYMENT UNTIL: 20091006

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101006

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111006

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20121006

Year of fee payment: 6