JP2000222208A - 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 - Google Patents
情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体Info
- Publication number
- JP2000222208A JP2000222208A JP11023151A JP2315199A JP2000222208A JP 2000222208 A JP2000222208 A JP 2000222208A JP 11023151 A JP11023151 A JP 11023151A JP 2315199 A JP2315199 A JP 2315199A JP 2000222208 A JP2000222208 A JP 2000222208A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- program
- mode
- register
- instructions
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】
【課題】 VLIW方式が適用される情報処理において
スループット向上とプログラムサイズ削減を可能とす
る。 【解決手段】 同一プロセッサ1内の複数の演算ユニッ
ト(メモリユニット3と整数演算ユニット4)でプログ
ラム中の複数命令が並列実行される時、各命令はどの演
算ユニットで実行されるかはプログラムの生成時に決め
られるVLIW方式の情報処理において、命令の並列実
行時に同時にPSW(プログラム状態語)格納レジスタ
10中のPSWがアクセスされようとする場合には、複
数の演算ユニット間でPSWのアクセスに関する優先順
位が予め決められる。これにより、PSWのアクセス競
合を回避しながらの並列実行が可能となる。
スループット向上とプログラムサイズ削減を可能とす
る。 【解決手段】 同一プロセッサ1内の複数の演算ユニッ
ト(メモリユニット3と整数演算ユニット4)でプログ
ラム中の複数命令が並列実行される時、各命令はどの演
算ユニットで実行されるかはプログラムの生成時に決め
られるVLIW方式の情報処理において、命令の並列実
行時に同時にPSW(プログラム状態語)格納レジスタ
10中のPSWがアクセスされようとする場合には、複
数の演算ユニット間でPSWのアクセスに関する優先順
位が予め決められる。これにより、PSWのアクセス競
合を回避しながらの並列実行が可能となる。
Description
【0001】
【発明の属する技術分野】この発明は複数演算ユニット
を用いた情報処理のための情報処理装置、命令割当て制
御方法、命令割当て制御装置および命令割当て制御プロ
グラムを記録したコンピュータで読取り可能な記録媒体
に関し、特に、複数の演算ユニットを用いて同時に複数
の命令を並列実行することができるVLIW(Very-Lon
g-Instruction-Word)方式が適用される情報処理装置、
命令割当て制御方法、命令割当て制御装置および命令割
当て制御プログラムを記録したコンピュータで読取り可
能な記録媒体に関する。
を用いた情報処理のための情報処理装置、命令割当て制
御方法、命令割当て制御装置および命令割当て制御プロ
グラムを記録したコンピュータで読取り可能な記録媒体
に関し、特に、複数の演算ユニットを用いて同時に複数
の命令を並列実行することができるVLIW(Very-Lon
g-Instruction-Word)方式が適用される情報処理装置、
命令割当て制御方法、命令割当て制御装置および命令割
当て制御プログラムを記録したコンピュータで読取り可
能な記録媒体に関する。
【0002】
【背景となる技術および解決しようとする課題】マイク
ロプロセッサにおいて、単一の命令が実行される際には
演算結果の格納先となるレジスタが指定されるととも
に、フラグレジスタと呼ばれる特殊なレジスタの内容も
必要に応じて変更される。近年開発された、CPUアー
キテクチャの1種であるVLIWおよびスーパスケーラ
は命令を並列実行するためのものである。スーパスケー
ラでは複数の命令を同時に実行する際に各命令をどの演
算器に割り当てるかをその都度ハードウェアで割り振
る。これに対して、VLIWはプログラムが生成される
段階で、各命令が複数の演算器のうちいずれの演算器を
用いて実行されるかが予め指定されるものであるから、
VLIWが適用されるマイクロプロセッサではスーパス
ケーラが適用されるそれに比較してハードウェア量を削
減できるという特徴がある。
ロプロセッサにおいて、単一の命令が実行される際には
演算結果の格納先となるレジスタが指定されるととも
に、フラグレジスタと呼ばれる特殊なレジスタの内容も
必要に応じて変更される。近年開発された、CPUアー
キテクチャの1種であるVLIWおよびスーパスケーラ
は命令を並列実行するためのものである。スーパスケー
ラでは複数の命令を同時に実行する際に各命令をどの演
算器に割り当てるかをその都度ハードウェアで割り振
る。これに対して、VLIWはプログラムが生成される
段階で、各命令が複数の演算器のうちいずれの演算器を
用いて実行されるかが予め指定されるものであるから、
VLIWが適用されるマイクロプロセッサではスーパス
ケーラが適用されるそれに比較してハードウェア量を削
減できるという特徴がある。
【0003】VLIWが適用されるマイクロプロセッサ
では、複数の演算器を備えることによって同時に複数の
命令を実行できるが、同時に実行される複数の命令によ
りフラグレジスタの内容が同時に更新されようとする。
これを競合という。このような競合が発生すると、プロ
グラムの実行が見かけ上停止することになり好ましくな
い。したがって、このような競合状態を避けるため、フ
ラグレジスタの内容を更新するような複数の命令は同時
に実行されないように予め命令の実行順序をスケジュー
リングする必要がある。その結果、実質的に並列実行で
きる命令数が少なくなってスループットが低下するとと
もに、プログラムサイズも増大するという課題があっ
た。
では、複数の演算器を備えることによって同時に複数の
命令を実行できるが、同時に実行される複数の命令によ
りフラグレジスタの内容が同時に更新されようとする。
これを競合という。このような競合が発生すると、プロ
グラムの実行が見かけ上停止することになり好ましくな
い。したがって、このような競合状態を避けるため、フ
ラグレジスタの内容を更新するような複数の命令は同時
に実行されないように予め命令の実行順序をスケジュー
リングする必要がある。その結果、実質的に並列実行で
きる命令数が少なくなってスループットが低下するとと
もに、プログラムサイズも増大するという課題があっ
た。
【0004】それゆえにこの発明の目的は、スループッ
トの向上ならびにプログラムサイズを縮小できる情報処
理装置、命令割当て制御方法、命令割当て制御装置およ
び命令割当て制御プログラムを記録したコンピュータで
読取り可能な記録媒体を提供することである。
トの向上ならびにプログラムサイズを縮小できる情報処
理装置、命令割当て制御方法、命令割当て制御装置およ
び命令割当て制御プログラムを記録したコンピュータで
読取り可能な記録媒体を提供することである。
【0005】
【課題を解決するための手段】請求項1に記載の発明
は、複数の演算ユニットを有し、プログラム中の複数命
令が複数演算ユニットを用いて並列に実行される際に、
複数命令のそれぞれが複数演算ユニットのいずれを用い
て実行されるかが予め決定される情報処理装置であって
以下の特徴を有する。
は、複数の演算ユニットを有し、プログラム中の複数命
令が複数演算ユニットを用いて並列に実行される際に、
複数命令のそれぞれが複数演算ユニットのいずれを用い
て実行されるかが予め決定される情報処理装置であって
以下の特徴を有する。
【0006】つまり、プログラムの実行制御に関して複
数演算ユニットにより共用される制御情報が格納され
て、複数演算ユニットにより共用してアクセスされるレ
ジスタをさらに有する。そして、複数命令が並列に実行
されるときに複数演算ユニットによりレジスタ内容が同
時にアクセスされようとする場合には、複数演算ユニッ
ト間で共用される制御情報のアクセスに関する優先順位
が定められる。
数演算ユニットにより共用される制御情報が格納され
て、複数演算ユニットにより共用してアクセスされるレ
ジスタをさらに有する。そして、複数命令が並列に実行
されるときに複数演算ユニットによりレジスタ内容が同
時にアクセスされようとする場合には、複数演算ユニッ
ト間で共用される制御情報のアクセスに関する優先順位
が定められる。
【0007】請求項1によれば、情報処理装置において
プログラム実行時に複数の演算ユニットによりレジスタ
中の制御情報が同時にアクセスされようとする場合に
は、複数演算ユニット間で制御情報のアクセスに関する
優先順位が予め定められているので、1つの演算ユニッ
トからのアクセスのみが有効となって、レジスタ中の制
御情報に関する複数演算ユニット間での競合が回避され
る。
プログラム実行時に複数の演算ユニットによりレジスタ
中の制御情報が同時にアクセスされようとする場合に
は、複数演算ユニット間で制御情報のアクセスに関する
優先順位が予め定められているので、1つの演算ユニッ
トからのアクセスのみが有効となって、レジスタ中の制
御情報に関する複数演算ユニット間での競合が回避され
る。
【0008】これにより、複数演算ユニット間で制御情
報のアクセスに関する競合を回避するために命令の実行
順序をスケジューリング調整することが不要となるか
ら、従来に比較して実質的に同時に実行できる命令数が
増加、つまり実質的なスループットが高くなって、プロ
グラムのサイズも削減する。
報のアクセスに関する競合を回避するために命令の実行
順序をスケジューリング調整することが不要となるか
ら、従来に比較して実質的に同時に実行できる命令数が
増加、つまり実質的なスループットが高くなって、プロ
グラムのサイズも削減する。
【0009】請求項2に記載の発明は、請求項1に記載
の情報処理装置においてレジスタには複数演算ユニット
のそれぞれについて個別に設けられたプログラムの実行
制御に関する制御情報がさらに格納される。
の情報処理装置においてレジスタには複数演算ユニット
のそれぞれについて個別に設けられたプログラムの実行
制御に関する制御情報がさらに格納される。
【0010】そして、複数命令が並列に実行されるとき
に複数演算ユニットによりレジスタの内容が同時にアク
セスされようとする場合には、複数演算ユニット間で予
め定められた優先順位に従い共用される制御情報がアク
セスされる共用モードと、個別の制御情報のそれぞれが
対応する複演算ユニットにより個別にアクセスされる個
別モードとのいずれか一方が選択的に設定される。
に複数演算ユニットによりレジスタの内容が同時にアク
セスされようとする場合には、複数演算ユニット間で予
め定められた優先順位に従い共用される制御情報がアク
セスされる共用モードと、個別の制御情報のそれぞれが
対応する複演算ユニットにより個別にアクセスされる個
別モードとのいずれか一方が選択的に設定される。
【0011】請求項2によれば、複数の命令を並列に実
行する時、複数の演算ユニットが同時にレジスタの内容
をアクセスしようとする場合には、共用モードが設定さ
れていれば複数演算ユニット間で予め定められた優先順
位に従いレジスタ中の共用される制御情報がアクセスさ
れるので、1つの演算ユニットからのアクセスのみが有
効となって、共用される制御情報のアクセスに関して複
数演算ユニット間で競合が回避される。
行する時、複数の演算ユニットが同時にレジスタの内容
をアクセスしようとする場合には、共用モードが設定さ
れていれば複数演算ユニット間で予め定められた優先順
位に従いレジスタ中の共用される制御情報がアクセスさ
れるので、1つの演算ユニットからのアクセスのみが有
効となって、共用される制御情報のアクセスに関して複
数演算ユニット間で競合が回避される。
【0012】また、個別モードが設定されている場合に
は、複数演算ユニットのそれぞれがレジスタ中の対応す
る個別の制御情報を個別にアクセスするので、複数演算
ユニット間でレジスタの内容を同時にアクセスする場合
の競合が回避される。
は、複数演算ユニットのそれぞれがレジスタ中の対応す
る個別の制御情報を個別にアクセスするので、複数演算
ユニット間でレジスタの内容を同時にアクセスする場合
の競合が回避される。
【0013】したがって、このような競合を避けるため
に命令の実行順序をスケジューリング調整する必要がな
くなり、その結果、実質的に同時に実行できる命令数が
増加する、言い換えれば実質的なスループットが高くな
るとともに、プログラムのサイズも削減される。
に命令の実行順序をスケジューリング調整する必要がな
くなり、その結果、実質的に同時に実行できる命令数が
増加する、言い換えれば実質的なスループットが高くな
るとともに、プログラムのサイズも削減される。
【0014】請求項3に記載の発明は請求項2に記載の
情報処理装置において、プログラムの特徴に従って共用
モードと個別モードとのいずれか一方が選択される。
情報処理装置において、プログラムの特徴に従って共用
モードと個別モードとのいずれか一方が選択される。
【0015】請求項3に従えば共用モードと個別モード
を情報処理装置において実行されるプログラムの特徴に
従って選択的に設定できるから、プログラムの特徴に従
うモードで演算性能を向上させることができるととも
に、プログラムの仕様に多様性を持たせることができ
る。
を情報処理装置において実行されるプログラムの特徴に
従って選択的に設定できるから、プログラムの特徴に従
うモードで演算性能を向上させることができるととも
に、プログラムの仕様に多様性を持たせることができ
る。
【0016】請求項4に記載の情報処理装置は、請求項
1ないし3のいずれかに記載の情報処理装置において、
複数の命令には上位ハーフワードに対する所定演算およ
び下位ハーフワードに対する所定演算を同時に指示する
命令が含まれる。そして、制御情報には上位および下位
ハーフワードに対する所定演算のそれぞれについて、該
所定演算の状態を示すための1つ以上のフラグ情報が含
まれる。
1ないし3のいずれかに記載の情報処理装置において、
複数の命令には上位ハーフワードに対する所定演算およ
び下位ハーフワードに対する所定演算を同時に指示する
命令が含まれる。そして、制御情報には上位および下位
ハーフワードに対する所定演算のそれぞれについて、該
所定演算の状態を示すための1つ以上のフラグ情報が含
まれる。
【0017】請求項4によれば、1個の命令で個々のハ
ーフワードに対する所定演算が実行された場合の各所定
演算の状態を示すためのフラグ情報をレジスタに保持で
きる。それゆえに、該情報処理装置においては上位ハー
フワードに対する所定演算および下位ハーフワードに対
する所定演算を同時に指示する命令が複数演算ユニット
のいずれで実行される場合にも前述した複数演算ユニッ
ト間の競合は回避されて、より広い用途で、このような
命令が利用できて、ソフトウェアの開発ツールに多様性
を持たせることが可能となる。
ーフワードに対する所定演算が実行された場合の各所定
演算の状態を示すためのフラグ情報をレジスタに保持で
きる。それゆえに、該情報処理装置においては上位ハー
フワードに対する所定演算および下位ハーフワードに対
する所定演算を同時に指示する命令が複数演算ユニット
のいずれで実行される場合にも前述した複数演算ユニッ
ト間の競合は回避されて、より広い用途で、このような
命令が利用できて、ソフトウェアの開発ツールに多様性
を持たせることが可能となる。
【0018】請求項5に記載の情報処理装置は、請求項
1ないし4に記載の情報処理装置において複数命令のそ
れぞれが複数演算ユニットのいずれを用いて実行される
かはプログラムのアセンブル時に決定されるものであ
る。
1ないし4に記載の情報処理装置において複数命令のそ
れぞれが複数演算ユニットのいずれを用いて実行される
かはプログラムのアセンブル時に決定されるものであ
る。
【0019】請求項6に記載の発明は、請求項1ないし
5のいずれかに記載の情報処理装置において複数演算ユ
ニットとは異なる特定演算ユニットがさらに含まれる。
この特定演算ユニットは制御情報を所定演算処理して、
その結果値を制御情報としてレジスタに書込むものであ
る。
5のいずれかに記載の情報処理装置において複数演算ユ
ニットとは異なる特定演算ユニットがさらに含まれる。
この特定演算ユニットは制御情報を所定演算処理して、
その結果値を制御情報としてレジスタに書込むものであ
る。
【0020】請求項6によれば、特定演算ユニットが複
数の演算ユニットによりアクセスされる制御情報を所定
演算処理して、その結果値を制御情報としてレジスタに
書込む。それゆえに、該情報処理装置における演算の包
括的な状況を、レジスタ内容を参照するだけで特別な後
処理をすることなく知ることができ、プログラムのサイ
ズが削減されるとともに、プログラムが簡単化される。
数の演算ユニットによりアクセスされる制御情報を所定
演算処理して、その結果値を制御情報としてレジスタに
書込む。それゆえに、該情報処理装置における演算の包
括的な状況を、レジスタ内容を参照するだけで特別な後
処理をすることなく知ることができ、プログラムのサイ
ズが削減されるとともに、プログラムが簡単化される。
【0021】請求項7に記載の情報処理装置は、複数の
演算ユニットを有し、プログラム中の複数命令が複数演
算ユニットを用いて並列に実行される際に、複数命令の
それぞれは複数演算ユニットのいずれを用いて実行され
るかが予め決定される情報処理装置であり、以下の特徴
を有する。
演算ユニットを有し、プログラム中の複数命令が複数演
算ユニットを用いて並列に実行される際に、複数命令の
それぞれは複数演算ユニットのいずれを用いて実行され
るかが予め決定される情報処理装置であり、以下の特徴
を有する。
【0022】つまり、複数演算ユニットごとに設けられ
たプログラムの実行制御に関する個別制御情報が格納さ
れて複数演算ユニットのそれぞれについて共用してアク
セスされるレジスタをさらに有する。
たプログラムの実行制御に関する個別制御情報が格納さ
れて複数演算ユニットのそれぞれについて共用してアク
セスされるレジスタをさらに有する。
【0023】そして、複数命令が並列に実行されるとき
には複数演算ユニットによりレジスタの内容が同時にア
クセスされようとする場合には、個別制御情報のそれぞ
れが対応する演算ユニットにより個別にアクセスされ
る。
には複数演算ユニットによりレジスタの内容が同時にア
クセスされようとする場合には、個別制御情報のそれぞ
れが対応する演算ユニットにより個別にアクセスされ
る。
【0024】したがって請求項7によれば、各演算ユニ
ットごとにプログラムの実行制御に関する個別制御情報
がレジスタに格納されているので、複数の演算ユニット
が同時にレジスタの内容をアクセスしようとする場合に
は、各演算ユニットについて対応の個別制御情報が個々
にアクセスされて、従来のように複数の演算ユニット間
でレジスタ中のプログラムの実行制御情報のアクセスに
関する競合が回避される。
ットごとにプログラムの実行制御に関する個別制御情報
がレジスタに格納されているので、複数の演算ユニット
が同時にレジスタの内容をアクセスしようとする場合に
は、各演算ユニットについて対応の個別制御情報が個々
にアクセスされて、従来のように複数の演算ユニット間
でレジスタ中のプログラムの実行制御情報のアクセスに
関する競合が回避される。
【0025】これにより、レジスタ中のプログラムの実
行制御に関する情報をアクセスするような命令を同時に
実行しないように命令の実行順序をスケジューリング調
整することが不要となって、その結果従来に比較し実質
的に同時に実行できる命令数が増加、つまり実質的なス
ループットが高くなって、同時にプログラムサイズも削
減される。
行制御に関する情報をアクセスするような命令を同時に
実行しないように命令の実行順序をスケジューリング調
整することが不要となって、その結果従来に比較し実質
的に同時に実行できる命令数が増加、つまり実質的なス
ループットが高くなって、同時にプログラムサイズも削
減される。
【0026】請求項8に記載の情報処理装置は、請求項
7に記載の情報処理装置において、複数の命令には上位
ハーフワードに対する所定演算および下位ハーフワード
に対する所定演算を同時に指示する命令が含まれる。そ
して、制御情報には上位および下位ハーフワードに対す
る所定演算のそれぞれについて、該所定演算の状態を示
すための1つ以上のフラグ情報が含まれる。
7に記載の情報処理装置において、複数の命令には上位
ハーフワードに対する所定演算および下位ハーフワード
に対する所定演算を同時に指示する命令が含まれる。そ
して、制御情報には上位および下位ハーフワードに対す
る所定演算のそれぞれについて、該所定演算の状態を示
すための1つ以上のフラグ情報が含まれる。
【0027】請求項8によれば、1個の命令で個々のハ
ーフワードに対する所定演算が実行された場合の各所定
演算の状態を示すためのフラグ情報をレジスタに保持で
きる。それゆえに、該情報処理装置においては上位ハー
フワードに対する所定演算および下位ハーフワードに対
する所定演算を同時に指示する命令が複数演算ユニット
のいずれで実行される場合にも前述した複数演算ユニッ
ト間の競合は回避されて、より広い用途で、このような
命令が利用できて、ソフトウェアの開発ツールに多様性
を持たせることが可能となる。
ーフワードに対する所定演算が実行された場合の各所定
演算の状態を示すためのフラグ情報をレジスタに保持で
きる。それゆえに、該情報処理装置においては上位ハー
フワードに対する所定演算および下位ハーフワードに対
する所定演算を同時に指示する命令が複数演算ユニット
のいずれで実行される場合にも前述した複数演算ユニッ
ト間の競合は回避されて、より広い用途で、このような
命令が利用できて、ソフトウェアの開発ツールに多様性
を持たせることが可能となる。
【0028】請求項9に記載の情報処理装置は、請求項
7または8に記載の情報処理装置において複数命令のそ
れぞれが複数演算ユニットのいずれを用いて実行される
かはプログラムのアセンブル時に決定されるものであ
る。
7または8に記載の情報処理装置において複数命令のそ
れぞれが複数演算ユニットのいずれを用いて実行される
かはプログラムのアセンブル時に決定されるものであ
る。
【0029】請求項10に記載の発明は、請求項7ない
し9のいずれかに記載の情報処理装置において複数演算
ユニットとは異なる特定演算ユニットがさらに含まれ
る。この特定演算ユニットは個別制御情報を所定演算処
理して、その結果値を個別制御情報としてレジスタに書
込むものである。
し9のいずれかに記載の情報処理装置において複数演算
ユニットとは異なる特定演算ユニットがさらに含まれ
る。この特定演算ユニットは個別制御情報を所定演算処
理して、その結果値を個別制御情報としてレジスタに書
込むものである。
【0030】請求項10によれば、特定演算ユニットが
複数の演算ユニットによりアクセスされる個別制御情報
を所定演算処理して、その結果値を個別制御情報として
レジスタに書込む。それゆえに、該情報処理装置におけ
る演算の包括的な状況を、レジスタ内容を参照するだけ
で特別な後処理をすることなく知ることができ、プログ
ラムのサイズが削減されるとともに、プログラムが簡単
化される。
複数の演算ユニットによりアクセスされる個別制御情報
を所定演算処理して、その結果値を個別制御情報として
レジスタに書込む。それゆえに、該情報処理装置におけ
る演算の包括的な状況を、レジスタ内容を参照するだけ
で特別な後処理をすることなく知ることができ、プログ
ラムのサイズが削減されるとともに、プログラムが簡単
化される。
【0031】請求項11に記載の発明は、複数の演算ユ
ニットを有して、複数演算ユニットを用いてプログラム
中の複数命令が格納された複数演算ユニットに対応する
複数フィールドを有するパケットを処理することによ
り、プログラムを実行する情報処理装置のために、複数
命令のそれぞれが複数演算ユニットのいずれを用いて実
行されるかを予め決定するための命令割当て制御方法で
あり、以下の特徴を有する。
ニットを有して、複数演算ユニットを用いてプログラム
中の複数命令が格納された複数演算ユニットに対応する
複数フィールドを有するパケットを処理することによ
り、プログラムを実行する情報処理装置のために、複数
命令のそれぞれが複数演算ユニットのいずれを用いて実
行されるかを予め決定するための命令割当て制御方法で
あり、以下の特徴を有する。
【0032】つまり、情報処理装置は、プログラムの実
行制御に関して複数演算ユニットにより共用される制御
情報が格納されて複数演算ユニットにより共用してアク
セスされるレジスタをさらに有する。
行制御に関して複数演算ユニットにより共用される制御
情報が格納されて複数演算ユニットにより共用してアク
セスされるレジスタをさらに有する。
【0033】そして、命令割当て制御方法は、プログラ
ムから命令を順に読込む読込ステップと、読込ステップ
により読込まれた命令をパケットのいずれかのフィール
ドに割当てて格納する格納ステップとを有する。
ムから命令を順に読込む読込ステップと、読込ステップ
により読込まれた命令をパケットのいずれかのフィール
ドに割当てて格納する格納ステップとを有する。
【0034】そして格納ステップは、読込ステップによ
り読込まれる次位の命令と、パケットに既に格納された
先行する命令とが並列に実行された場合に、レジスタ内
容が複数演算ユニットにより同時にアクセスされるか否
か判定する同時アクセス判定ステップと、同時アクセス
されると判定されたことに応じて、先行命令と次位命令
とを所定優先順位に従う同一パケットにおけるフィール
ドの割当が可能か否か判定する割当判定ステップと、割
当判定ステップの割当可の判定に応じて、先行命令およ
び次位命令をパラレル実行されるように同一パケット中
の複数フィールドにそれぞれ割当てて、割当不可の判定
に応じて先行命令および次位命令をシリアル実行される
ように同一パケットの複数フィールドにそれぞれ割当て
る割当ステップとを含む。
り読込まれる次位の命令と、パケットに既に格納された
先行する命令とが並列に実行された場合に、レジスタ内
容が複数演算ユニットにより同時にアクセスされるか否
か判定する同時アクセス判定ステップと、同時アクセス
されると判定されたことに応じて、先行命令と次位命令
とを所定優先順位に従う同一パケットにおけるフィール
ドの割当が可能か否か判定する割当判定ステップと、割
当判定ステップの割当可の判定に応じて、先行命令およ
び次位命令をパラレル実行されるように同一パケット中
の複数フィールドにそれぞれ割当てて、割当不可の判定
に応じて先行命令および次位命令をシリアル実行される
ように同一パケットの複数フィールドにそれぞれ割当て
る割当ステップとを含む。
【0035】そして所定優先順位は、制御情報のアクセ
スに関する複数演算ユニット間における優先順位であ
る。
スに関する複数演算ユニット間における優先順位であ
る。
【0036】請求項11によれば、複数演算ユニットに
おいて複数命令が並列に実行された時にレジスタ中の制
御情報が複数演算ユニットにより同時にアクセスされる
場合には、並列に実行されようとする複数命令のそれぞ
れは複数演算ユニット間で定められた制御情報のアクセ
スに関する優先順位に従ってシリアル実行されるように
同一パケットの各フィールドに割当てられるか、パラレ
ルに実行されるように同一パケットの各フィールドに割
当てられる。それゆえに、プログラム実行時に情報処理
装置において制御情報のアクセスに関する複数演算ユニ
ット間での競合が回避される。
おいて複数命令が並列に実行された時にレジスタ中の制
御情報が複数演算ユニットにより同時にアクセスされる
場合には、並列に実行されようとする複数命令のそれぞ
れは複数演算ユニット間で定められた制御情報のアクセ
スに関する優先順位に従ってシリアル実行されるように
同一パケットの各フィールドに割当てられるか、パラレ
ルに実行されるように同一パケットの各フィールドに割
当てられる。それゆえに、プログラム実行時に情報処理
装置において制御情報のアクセスに関する複数演算ユニ
ット間での競合が回避される。
【0037】これにより、命令実行時に制御情報を同時
アクセスする命令同士を同一パケットに格納して情報処
理装置に与えることができるから、情報処理装置におい
て同時に実行できる命令数が増加して実質的なスループ
ットが高くなり、同時にプログラムのサイズも削減され
る。
アクセスする命令同士を同一パケットに格納して情報処
理装置に与えることができるから、情報処理装置におい
て同時に実行できる命令数が増加して実質的なスループ
ットが高くなり、同時にプログラムのサイズも削減され
る。
【0038】請求項12に記載の命令割当制御方法は、
請求項11に係る命令割当制御方法がさらに次の特徴を
有する。
請求項11に係る命令割当制御方法がさらに次の特徴を
有する。
【0039】つまり、レジスタは共有モードおよび個別
モードのいずれか一方の動作モードに設定されて、共有
モード時は複数演算ユニットに共用される制御情報が格
納され、個別モード時は複数演算ユニットのそれぞれに
ついて個別に設けられた制御情報が格納される。そし
て、命令割当制御方法は、読込ステップにより読込まれ
た命令がレジスタの動作モードの変更を指定するモード
変更命令であるときは、該命令に従いレジスタの動作モ
ードを設定するモード設定ステップと、モード設定ステ
ップにより個別モードに設定された場合には、読込ステ
ップにより読込まれた命令について所定処理を実行する
所定処理ステップと、モード設定ステップにより共有モ
ードに設定された場合には、読込ステップにより読込ま
れた命令について前述の格納ステップを実行するステッ
プとをさらに備える。
モードのいずれか一方の動作モードに設定されて、共有
モード時は複数演算ユニットに共用される制御情報が格
納され、個別モード時は複数演算ユニットのそれぞれに
ついて個別に設けられた制御情報が格納される。そし
て、命令割当制御方法は、読込ステップにより読込まれ
た命令がレジスタの動作モードの変更を指定するモード
変更命令であるときは、該命令に従いレジスタの動作モ
ードを設定するモード設定ステップと、モード設定ステ
ップにより個別モードに設定された場合には、読込ステ
ップにより読込まれた命令について所定処理を実行する
所定処理ステップと、モード設定ステップにより共有モ
ードに設定された場合には、読込ステップにより読込ま
れた命令について前述の格納ステップを実行するステッ
プとをさらに備える。
【0040】したがって、請求項12によればレジスタ
の動作モードを実行されるプログラム中で任意に可変設
定できるから、プログラムの特徴に従ってレジスタの動
作モードをユーザ側で所望するように変更して演算性能
をより向上させることができる。
の動作モードを実行されるプログラム中で任意に可変設
定できるから、プログラムの特徴に従ってレジスタの動
作モードをユーザ側で所望するように変更して演算性能
をより向上させることができる。
【0041】請求項13に記載の命令割当て制御方法
は、請求項11または12に係る命令割当て制御方法が
プログラムの実行前のアセンブル時に適用されることを
特徴とする。
は、請求項11または12に係る命令割当て制御方法が
プログラムの実行前のアセンブル時に適用されることを
特徴とする。
【0042】請求項14に記載の発明は、複数の演算ユ
ニットを有して、複数演算ユニットを用いてプログラム
中の複数命令が格納された複数演算ユニットに対応する
複数フィールドを有するパケットを処理することによ
り、プログラムを実行する情報処理装置のために、複数
命令のそれぞれが複数演算ユニットのいずれを用いて実
行されるかを予め決定するための命令割当て制御装置で
あり、以下の特徴を有する。
ニットを有して、複数演算ユニットを用いてプログラム
中の複数命令が格納された複数演算ユニットに対応する
複数フィールドを有するパケットを処理することによ
り、プログラムを実行する情報処理装置のために、複数
命令のそれぞれが複数演算ユニットのいずれを用いて実
行されるかを予め決定するための命令割当て制御装置で
あり、以下の特徴を有する。
【0043】つまり、情報処理装置は、プログラムの実
行制御に関して複数演算ユニットにより共用される制御
情報が格納されて複数演算ユニットにより共用してアク
セスされるレジスタをさらに有する。
行制御に関して複数演算ユニットにより共用される制御
情報が格納されて複数演算ユニットにより共用してアク
セスされるレジスタをさらに有する。
【0044】そして、命令割当て制御装置は、プログラ
ムから命令を順に読込む読込手段と、読込手段により読
込まれた命令をパケットのいずれかのフィールドに割当
てて格納する格納手段とを有する。
ムから命令を順に読込む読込手段と、読込手段により読
込まれた命令をパケットのいずれかのフィールドに割当
てて格納する格納手段とを有する。
【0045】そして格納手段は、読込手段により読込ま
れる次位の命令と、パケットに既に格納された先行する
命令とが並列に実行された場合に、レジスタ内容が複数
ユニットにより同時にアクセスされるか否か判定する同
時アクセス判定手段と、同時アクセスされると判定され
たことに応じて、先行命令と次位命令とを所定優先順位
に従い同一パケット中のフィールドの割当が可能か否か
判定する割当判定手段と、割当判定手段の割当可の判定
に応じて、先行命令および次位命令をパラレル実行され
るように同一パケット中の複数フィールドにそれぞれ割
当てて、割当不可の判定に応じて先行命令および次位命
令をシリアル実行されるように同一パケットの複数フィ
ールドにそれぞれ割当てる割当手段とを含む。
れる次位の命令と、パケットに既に格納された先行する
命令とが並列に実行された場合に、レジスタ内容が複数
ユニットにより同時にアクセスされるか否か判定する同
時アクセス判定手段と、同時アクセスされると判定され
たことに応じて、先行命令と次位命令とを所定優先順位
に従い同一パケット中のフィールドの割当が可能か否か
判定する割当判定手段と、割当判定手段の割当可の判定
に応じて、先行命令および次位命令をパラレル実行され
るように同一パケット中の複数フィールドにそれぞれ割
当てて、割当不可の判定に応じて先行命令および次位命
令をシリアル実行されるように同一パケットの複数フィ
ールドにそれぞれ割当てる割当手段とを含む。
【0046】そして所定優先順位は、制御情報のアクセ
スに関する複数演算ユニット間における優先順位であ
る。
スに関する複数演算ユニット間における優先順位であ
る。
【0047】請求項14によれば、複数演算ユニットに
おいて複数命令が並列に実行された時にレジスタ中の制
御情報が複数演算ユニットにより同時にアクセスされる
場合には、並列に実行されようとする各命令は複数演算
ユニット間で定められた制御情報のアクセスに関する優
先順位に従ってシリアル実行されるように同一パケット
の各フィールドに割当てられるか、パラレルに実行され
るように同一パケットの各フィールドに割当てられる。
それゆえに、プログラム実行時に情報処理装置において
制御情報のアクセスに関する複数演算ユニット間での競
合が回避される。
おいて複数命令が並列に実行された時にレジスタ中の制
御情報が複数演算ユニットにより同時にアクセスされる
場合には、並列に実行されようとする各命令は複数演算
ユニット間で定められた制御情報のアクセスに関する優
先順位に従ってシリアル実行されるように同一パケット
の各フィールドに割当てられるか、パラレルに実行され
るように同一パケットの各フィールドに割当てられる。
それゆえに、プログラム実行時に情報処理装置において
制御情報のアクセスに関する複数演算ユニット間での競
合が回避される。
【0048】これにより、命令実行時に制御情報を同時
アクセスする命令同士を同一パケットに格納して情報処
理装置に与えることができるから、情報処理装置におい
て同時に実行できる命令数が増加して実質的なスループ
ットが高くなり、同時にプログラムのサイズも削減され
る。
アクセスする命令同士を同一パケットに格納して情報処
理装置に与えることができるから、情報処理装置におい
て同時に実行できる命令数が増加して実質的なスループ
ットが高くなり、同時にプログラムのサイズも削減され
る。
【0049】請求項15に記載の命令割当て制御装置は
請求項14に記載の命令割当て制御装置がさらに次の特
徴を有する。
請求項14に記載の命令割当て制御装置がさらに次の特
徴を有する。
【0050】つまりレジスタは共有モードおよび個別モ
ードのいずれか一方の動作モードに設定されて、共有モ
ード時は複数演算ユニットに共用される制御情報が格納
され、個別モード時は複数演算ユニットのそれぞれにつ
いて個別に設けられた制御情報が格納される。そして命
令割当制御装置は、読込手段により読込まれた命令が動
作モードの変更を指示するモード変更命令であるとき
は、該命令に従いレジスタの動作モードを設定するモー
ド設定手段と、モード設定手段により個別モードに設定
された場合には、読込まれた命令について所定処理を実
行する所定処理手段と、モード設定手段により共有モー
ドに設定された場合には、読込まれた命令について前述
の格納手段を実行するための手段をさらに備える。
ードのいずれか一方の動作モードに設定されて、共有モ
ード時は複数演算ユニットに共用される制御情報が格納
され、個別モード時は複数演算ユニットのそれぞれにつ
いて個別に設けられた制御情報が格納される。そして命
令割当制御装置は、読込手段により読込まれた命令が動
作モードの変更を指示するモード変更命令であるとき
は、該命令に従いレジスタの動作モードを設定するモー
ド設定手段と、モード設定手段により個別モードに設定
された場合には、読込まれた命令について所定処理を実
行する所定処理手段と、モード設定手段により共有モー
ドに設定された場合には、読込まれた命令について前述
の格納手段を実行するための手段をさらに備える。
【0051】したがって請求項15によれば、レジスタ
の動作モードを実行されるプログラム中で任意に可変設
定できるから、プログラムの特徴に従ってレジスタの動
作モードをユーザ側で所望するように変更して、演算性
能をより向上させることができる。
の動作モードを実行されるプログラム中で任意に可変設
定できるから、プログラムの特徴に従ってレジスタの動
作モードをユーザ側で所望するように変更して、演算性
能をより向上させることができる。
【0052】請求項16に記載の命令割当て制御装置は
請求項14または15に記載の命令割当て制御装置がプ
ログラムを実行形式にするためのアセンブラに適用され
ることを特徴とする。
請求項14または15に記載の命令割当て制御装置がプ
ログラムを実行形式にするためのアセンブラに適用され
ることを特徴とする。
【0053】請求項17に記載の発明は、命令割当て制
御方法をコンピュータに実行させるための命令割当て制
御プログラムを記録したコンピュータで読取り可能な記
録媒体である。前述の命令割当て制御方法は、複数の演
算ユニットを有して、複数演算ユニットを用いて所定プ
ログラム中の複数命令が格納される複数演算ユニットに
対応した複数フィールドを有するパケットを処理するこ
とにより、所定プログラムを実行する情報処理装置のた
めに、複数命令のそれぞれが複数演算ユニットのいずれ
を用いて実行されるかを予め決定するための方法であ
り、以下の特徴を有する。
御方法をコンピュータに実行させるための命令割当て制
御プログラムを記録したコンピュータで読取り可能な記
録媒体である。前述の命令割当て制御方法は、複数の演
算ユニットを有して、複数演算ユニットを用いて所定プ
ログラム中の複数命令が格納される複数演算ユニットに
対応した複数フィールドを有するパケットを処理するこ
とにより、所定プログラムを実行する情報処理装置のた
めに、複数命令のそれぞれが複数演算ユニットのいずれ
を用いて実行されるかを予め決定するための方法であ
り、以下の特徴を有する。
【0054】つまり、情報処理装置は、所定プログラム
の実行制御に関して複数演算ユニットにより共用され制
御情報が格納されて複数演算ユニットにより共用してア
クセスされるレジスタをさらに有する。
の実行制御に関して複数演算ユニットにより共用され制
御情報が格納されて複数演算ユニットにより共用してア
クセスされるレジスタをさらに有する。
【0055】そして、命令割当て制御方法は、所定プロ
グラムから命令を順に読込む読込ステップと、読込ステ
ップにより読込まれた命令をパケットのいずれかのフィ
ールドに割当てて格納する格納ステップとを含む。
グラムから命令を順に読込む読込ステップと、読込ステ
ップにより読込まれた命令をパケットのいずれかのフィ
ールドに割当てて格納する格納ステップとを含む。
【0056】格納ステップは、読込ステップにより読込
まれる次位の命令と、パケットに既に格納された先行す
る命令とが並列に実行された場合に、レジスタの内容が
同時にアクセスされるか否か判定する同時アクセス判定
ステップと、同時アクセス判定ステップにより同時アク
セスされると判定されたことに応じて、先行命令と次位
命令とを所定優先順位に従い同一パケット中の複数フィ
ールドに割当ることが可能か否か判定する割当判定ステ
ップと、割当判定ステップの割当可の判定に応じて、先
行命令および次位命令をパラレル実行されるように同一
パケット中の複数フィールドにそれぞれ割当てて、割当
不可の判定に応じて、先行命令および次位命令をシリア
ルに実行されるように同一パケット中の複数フィールド
にそれぞれ割当てる割当ステップとを含む。そして、所
定優先順位は、制御情報のアクセスに関して複数演算ユ
ニット間で定められた優先順位である。
まれる次位の命令と、パケットに既に格納された先行す
る命令とが並列に実行された場合に、レジスタの内容が
同時にアクセスされるか否か判定する同時アクセス判定
ステップと、同時アクセス判定ステップにより同時アク
セスされると判定されたことに応じて、先行命令と次位
命令とを所定優先順位に従い同一パケット中の複数フィ
ールドに割当ることが可能か否か判定する割当判定ステ
ップと、割当判定ステップの割当可の判定に応じて、先
行命令および次位命令をパラレル実行されるように同一
パケット中の複数フィールドにそれぞれ割当てて、割当
不可の判定に応じて、先行命令および次位命令をシリア
ルに実行されるように同一パケット中の複数フィールド
にそれぞれ割当てる割当ステップとを含む。そして、所
定優先順位は、制御情報のアクセスに関して複数演算ユ
ニット間で定められた優先順位である。
【0057】請求項17によれば、実行時に制御情報を
アクセスする命令を複数演算ユニットに同時に割当てる
ことができるから、従来のように制御情報をアクセスす
る複数命令が同時に複数演算ユニットに割当てられない
ようにスケジューリング調整することは不要となる。
アクセスする命令を複数演算ユニットに同時に割当てる
ことができるから、従来のように制御情報をアクセスす
る複数命令が同時に複数演算ユニットに割当てられない
ようにスケジューリング調整することは不要となる。
【0058】これにより、命令実行時に制御情報を同時
アクセスする命令同士を同一パケットに格納して情報処
理装置に与えることができるから、情報処理装置におい
て同時に実行できる命令数が増加して実質的なスループ
ットが高くなり、同時にプログラムのサイズも削減され
る。
アクセスする命令同士を同一パケットに格納して情報処
理装置に与えることができるから、情報処理装置におい
て同時に実行できる命令数が増加して実質的なスループ
ットが高くなり、同時にプログラムのサイズも削減され
る。
【0059】請求項18に記載の命令割当て制御プログ
ラムを記録したコンピュータで読取り可能な記録媒体
は、請求項17に記載の記録媒体においてさらに次の特
徴を有する。
ラムを記録したコンピュータで読取り可能な記録媒体
は、請求項17に記載の記録媒体においてさらに次の特
徴を有する。
【0060】つまり、上述のレジスタは共有モードおよ
び個別モードのいずれか一方の動作モードに設定され
て、共有モード時は複数演算ユニットに共用される制御
情報が格納され、個別モード時は複数演算ユニットのそ
れぞれについて個別に設けられた制御情報が格納され
る。そして上述の命令割当て制御方法はさらに、読込ス
テップにより読込まれた命令がレジスタの動作モードの
変更を指示するモード変更命令であるときは、該命令に
従いレジスタの動作モードを設定するモード設定ステッ
プと、モード設定ステップにより個別モードに設定され
た場合には、読込まれた命令について所定処理を実行す
る所定処理ステップと、モード設定ステップにより共有
モードに設定された場合には、読込まれた命令について
前述の格納ステップを実行するステップとをさらに備え
る。
び個別モードのいずれか一方の動作モードに設定され
て、共有モード時は複数演算ユニットに共用される制御
情報が格納され、個別モード時は複数演算ユニットのそ
れぞれについて個別に設けられた制御情報が格納され
る。そして上述の命令割当て制御方法はさらに、読込ス
テップにより読込まれた命令がレジスタの動作モードの
変更を指示するモード変更命令であるときは、該命令に
従いレジスタの動作モードを設定するモード設定ステッ
プと、モード設定ステップにより個別モードに設定され
た場合には、読込まれた命令について所定処理を実行す
る所定処理ステップと、モード設定ステップにより共有
モードに設定された場合には、読込まれた命令について
前述の格納ステップを実行するステップとをさらに備え
る。
【0061】したがって、請求項18によれば、レジス
タの動作モードを実行される所定プログラム中で任意に
可変設定できるから、所定プログラムの特徴に従ってレ
ジスタの動作モードをユーザ側で所望するように変更で
きて、より演算性能を向上させることができる。
タの動作モードを実行される所定プログラム中で任意に
可変設定できるから、所定プログラムの特徴に従ってレ
ジスタの動作モードをユーザ側で所望するように変更で
きて、より演算性能を向上させることができる。
【0062】請求項19に記載の命令割当て制御プログ
ラムを記録したコンピュータで読取り可能な記録媒体
は、請求項17または18に記載の記録媒体において次
の特徴を有する。すなわち、請求項17または18に記
載の命令割当て制御方法が、所定プログラムの実行前の
アセンブル時に適用される。
ラムを記録したコンピュータで読取り可能な記録媒体
は、請求項17または18に記載の記録媒体において次
の特徴を有する。すなわち、請求項17または18に記
載の命令割当て制御方法が、所定プログラムの実行前の
アセンブル時に適用される。
【0063】
【発明の実施の形態】以下、この発明の実施の形態につ
いて説明する。
いて説明する。
【0064】(実施の形態1)図1は、この発明の実施
の形態1によるマイクロプロセッサの構成を示すブロッ
ク図である。このマイクロプロセッサ1は、32ビット
幅の内部データバスを有して、VLIW方式が適用され
るプロセッサである。なお、図中()付きの数値は対応
するデータバスのビット幅を示す。図において、マイク
ロプロセッサ1は、命令デコードユニット2、メモリユ
ニット3、整数演算ユニット4、汎用レジスタ群5、予
め複数の命令コードを格納した命令RAM(ランダムア
クセスメモリ)6、予め複数のデータを格納したデータ
RAM7、32ビット幅のバスS1〜S6、バスD1〜
D3およびバスDAおよびIA、ならびに64ビット幅
のバスDDおよびIDを含む。
の形態1によるマイクロプロセッサの構成を示すブロッ
ク図である。このマイクロプロセッサ1は、32ビット
幅の内部データバスを有して、VLIW方式が適用され
るプロセッサである。なお、図中()付きの数値は対応
するデータバスのビット幅を示す。図において、マイク
ロプロセッサ1は、命令デコードユニット2、メモリユ
ニット3、整数演算ユニット4、汎用レジスタ群5、予
め複数の命令コードを格納した命令RAM(ランダムア
クセスメモリ)6、予め複数のデータを格納したデータ
RAM7、32ビット幅のバスS1〜S6、バスD1〜
D3およびバスDAおよびIA、ならびに64ビット幅
のバスDDおよびIDを含む。
【0065】命令デコードユニット2は命令RAM6か
らバスIDを介して入力した命令コードをデコードして
出力する。メモリユニット3は後述するように1種の命
令実行部であってアドレス計算を行なう。整数演算ユニ
ット4もまた後述するように1種の命令実行部であって
論理演算やシフト演算などを行なう。汎用レジスタ群5
は複数の汎用レジスタからなり、32ビット×64ワー
ドの容量を有する。
らバスIDを介して入力した命令コードをデコードして
出力する。メモリユニット3は後述するように1種の命
令実行部であってアドレス計算を行なう。整数演算ユニ
ット4もまた後述するように1種の命令実行部であって
論理演算やシフト演算などを行なう。汎用レジスタ群5
は複数の汎用レジスタからなり、32ビット×64ワー
ドの容量を有する。
【0066】命令デコードユニット2はバスIDを介し
て与えられる命令コードをデコードするデコーダ8およ
び9、ならびにプロセッサの状態を示すPSW(Proces
sorStatus Word の略)を格納するためのPSW格納レ
ジスタ10を含む。命令デコードユニット2は、デコー
ダ8の命令デコード結果とPSW格納レジスタ10の内
容とに基づいて制御信号11を作成してメモリユニット
3に与え、デコーダ9の命令デコード結果とPSW格納
レジスタ10の内容とに基づいて制御信号12を作成し
整数演算ユニット4に与える。
て与えられる命令コードをデコードするデコーダ8およ
び9、ならびにプロセッサの状態を示すPSW(Proces
sorStatus Word の略)を格納するためのPSW格納レ
ジスタ10を含む。命令デコードユニット2は、デコー
ダ8の命令デコード結果とPSW格納レジスタ10の内
容とに基づいて制御信号11を作成してメモリユニット
3に与え、デコーダ9の命令デコード結果とPSW格納
レジスタ10の内容とに基づいて制御信号12を作成し
整数演算ユニット4に与える。
【0067】メモリユニット3はプログラムカウント値
PCVを格納した1種のレジスタであるプログラムカウ
ンタ151を有するPC制御部13、メモリ制御部1
4、ALU(Arithmetic and Logical Unit)15およ
びシフタ16を含む。PC制御部13はジャンプや分岐
を含まない命令を実行するとプログラムカウント値PC
Vに8を加えて、次に実行する命令に対するプログラム
カウント値PCVを算出するとともに、ジャンプや分岐
を含む命令の実行時には分岐先に対応の変位をプログラ
ムカウント値PCVに加算したり、演算で指定されたア
ドレッシングモードに応じた計算を行なってジャンプ先
の命令に対応のプログラムカウント値PCVを形成す
る。
PCVを格納した1種のレジスタであるプログラムカウ
ンタ151を有するPC制御部13、メモリ制御部1
4、ALU(Arithmetic and Logical Unit)15およ
びシフタ16を含む。PC制御部13はジャンプや分岐
を含まない命令を実行するとプログラムカウント値PC
Vに8を加えて、次に実行する命令に対するプログラム
カウント値PCVを算出するとともに、ジャンプや分岐
を含む命令の実行時には分岐先に対応の変位をプログラ
ムカウント値PCVに加算したり、演算で指定されたア
ドレッシングモードに応じた計算を行なってジャンプ先
の命令に対応のプログラムカウント値PCVを形成す
る。
【0068】メモリ制御部14はPC制御部13が計算
したプログラムカウント値PCVをバスIAを介して命
令RAM6に与えて、命令RAM6から与えたプログラ
ムカウント値PCVに対応の命令コードを出力させる。
またメモリ制御部14は、バスDAを介してアドレスデ
ータをデータRAM7に与えて命令実行に必要なデータ
をバスDDを介してアクセスする。
したプログラムカウント値PCVをバスIAを介して命
令RAM6に与えて、命令RAM6から与えたプログラ
ムカウント値PCVに対応の命令コードを出力させる。
またメモリ制御部14は、バスDAを介してアドレスデ
ータをデータRAM7に与えて命令実行に必要なデータ
をバスDDを介してアクセスする。
【0069】ALU15は汎用レジスタ群5からバスS
1〜S3を介して転送された最大3ワードのデータを用
いて算術論理演算を行ない、その演算結果をバスD1を
介して汎用レジスタ群5に転送する。シフタ16は汎用
レジスタ群5からバスS1〜S3を介して転送されたデ
ータを用いてシフト演算を行ない、その演算結果をバス
D1を介して汎用レジスタ群5に転送する。
1〜S3を介して転送された最大3ワードのデータを用
いて算術論理演算を行ない、その演算結果をバスD1を
介して汎用レジスタ群5に転送する。シフタ16は汎用
レジスタ群5からバスS1〜S3を介して転送されたデ
ータを用いてシフト演算を行ない、その演算結果をバス
D1を介して汎用レジスタ群5に転送する。
【0070】メモリユニット3に対しては、バスS1〜
S4を介して、32ビット長のデータを一時に最大4ワ
ード転送することが可能である。したがって、たとえ
ば、第1のレジスタの内容と第2のレジスタの内容との
和でアドレッシングされるメモリの領域に第3のレジス
タの内容をストアするとともに、第3のレジスタの内容
をストアしたアドレスに所定値を加算して得られる値に
基づいてアドレッシングされるメモリの領域に第4のレ
ジスタの内容をストアするような2ワードストア命令を
実行することが可能である。また、メモリユニット3
は、バスD1およびD2を介して、メモリユニット3内
での2ワードの演算結果またはデータRAM7から転送
された2ワードのデータを汎用レジスタ群5に転送する
ことができる。
S4を介して、32ビット長のデータを一時に最大4ワ
ード転送することが可能である。したがって、たとえ
ば、第1のレジスタの内容と第2のレジスタの内容との
和でアドレッシングされるメモリの領域に第3のレジス
タの内容をストアするとともに、第3のレジスタの内容
をストアしたアドレスに所定値を加算して得られる値に
基づいてアドレッシングされるメモリの領域に第4のレ
ジスタの内容をストアするような2ワードストア命令を
実行することが可能である。また、メモリユニット3
は、バスD1およびD2を介して、メモリユニット3内
での2ワードの演算結果またはデータRAM7から転送
された2ワードのデータを汎用レジスタ群5に転送する
ことができる。
【0071】整数演算ユニット4は乗算器17、2×6
4ビット容量のアキュムレータ群18、ALU19およ
びシフタ20を含む。乗算器17は汎用レジスタ群5か
らバスS4〜S6を介して転送された最大3ワードのデ
ータを用いて乗算を行ない結果をバスD2およびD3を
介して汎用レジスタ群5に転送する。アキュムレータ群
18は64ビット容量の2つのアキュムレータを含み、
乗算の結果を累積加算または累積減算してその結果値を
保持する。ALU19は、汎用レジスタ群5からバスS
4〜S6を介して転送された最大3ワードのデータを用
いて算術論理演算を行ない、演算結果をバスD2および
D3を介して汎用レジスタ群5に転送する。シフタ20
は汎用レジスタ群5からバスS4〜S6を介して転送さ
れたデータを用いてシフト演算を行ない、演算結果をバ
スD2およびD3を介して汎用レジスタ群5に転送す
る。
4ビット容量のアキュムレータ群18、ALU19およ
びシフタ20を含む。乗算器17は汎用レジスタ群5か
らバスS4〜S6を介して転送された最大3ワードのデ
ータを用いて乗算を行ない結果をバスD2およびD3を
介して汎用レジスタ群5に転送する。アキュムレータ群
18は64ビット容量の2つのアキュムレータを含み、
乗算の結果を累積加算または累積減算してその結果値を
保持する。ALU19は、汎用レジスタ群5からバスS
4〜S6を介して転送された最大3ワードのデータを用
いて算術論理演算を行ない、演算結果をバスD2および
D3を介して汎用レジスタ群5に転送する。シフタ20
は汎用レジスタ群5からバスS4〜S6を介して転送さ
れたデータを用いてシフト演算を行ない、演算結果をバ
スD2およびD3を介して汎用レジスタ群5に転送す
る。
【0072】マイクロプロセッサ1では、汎用レジスタ
群5から最大6種類のレジスタ値を同時に読出すことが
可能であって、読出されたデータはバスS1〜S6のそ
れぞれに出力される。また、汎用レジスタ群5にはバス
D1〜D3を介して最大3種類のレジスタ値を同時に書
込むことが可能である。
群5から最大6種類のレジスタ値を同時に読出すことが
可能であって、読出されたデータはバスS1〜S6のそ
れぞれに出力される。また、汎用レジスタ群5にはバス
D1〜D3を介して最大3種類のレジスタ値を同時に書
込むことが可能である。
【0073】図2(A)と(B)は、図1のマイクロプ
ロセッサ1に適用される命令フォーマットを示す図であ
る。図2(A)には、1つの命令コードで2つの演算
(operation)を指示する2演算命令のフォーマット1
01が示される。図2(B)には、1つの命令コードで
1つの演算を指示する1演算命令のフォーマット102
が示される。2演算命令のフォーマット101には、フ
ィールド103および104からなるフォーマットフィ
ールドと、演算フィールド106および107と、演算
フィールド106および107のそれぞれに付属する実
行条件フィールド105が含まれる。1演算命令のフォ
ーマット102には、フィールド103および104か
らなるフォーマットフィールドと、フィールド108〜
110からなる演算フィールドと、演算フィールドに付
属する実行条件フィールド105が含まれる。
ロセッサ1に適用される命令フォーマットを示す図であ
る。図2(A)には、1つの命令コードで2つの演算
(operation)を指示する2演算命令のフォーマット1
01が示される。図2(B)には、1つの命令コードで
1つの演算を指示する1演算命令のフォーマット102
が示される。2演算命令のフォーマット101には、フ
ィールド103および104からなるフォーマットフィ
ールドと、演算フィールド106および107と、演算
フィールド106および107のそれぞれに付属する実
行条件フィールド105が含まれる。1演算命令のフォ
ーマット102には、フィールド103および104か
らなるフォーマットフィールドと、フィールド108〜
110からなる演算フィールドと、演算フィールドに付
属する実行条件フィールド105が含まれる。
【0074】フォーマットフィールド中のコードFM
は、以下のような意味を示す。 コード:フォーマット 実行の順番 operation_0 operation_1 FM=00:2命令 第1 第1 01:2命令 第1 第2 10:2命令 第2 第1 11:1命令 第1 …… ここで、コードFMは、フィールド103およびフィー
ルド104からなる2ビットの値である。
は、以下のような意味を示す。 コード:フォーマット 実行の順番 operation_0 operation_1 FM=00:2命令 第1 第1 01:2命令 第1 第2 10:2命令 第2 第1 11:1命令 第1 …… ここで、コードFMは、フィールド103およびフィー
ルド104からなる2ビットの値である。
【0075】コードFM=00の場合、対応の命令は2
演算命令であることを示す。そして、演算フィールド1
06で指示されたoperation_0の演算と演算フィール
ド107で指示される operation_1の演算とが、デコ
ード直後のクロックサイクルで並列に実行される。oper
ation_0の演算はメモリユニット3で実行され、opera
tion_1の演算は整数演算ユニット4で実行される。コ
ードFM=01の場合、この命令は2演算命令であるこ
とを示す。そして、operation_0の演算が、デコード
直後のクロックサイクルで実行され、 operation_1の
演算が、operation_0の演算に対して、1クロックサ
イクル遅れて実行される。コードFM=10の場合、こ
の命令は2演算命令であることを示す。そして、operat
ion_1の演算が、デコード直後のクロックサイクルで
実行され、 operation_0の演算が、operation_1の
演算に対して、1クロックサイクル遅れて実行される。
コードFM=11の場合、この命令は1演算命令である
ことを示す。そして、フィールド108〜110からな
る演算フィールドで指示された1つの演算が整数演算ユ
ニット4およびメモリユニット3のいずれか一方でデコ
ード直後のクロックサイクルで実行される。
演算命令であることを示す。そして、演算フィールド1
06で指示されたoperation_0の演算と演算フィール
ド107で指示される operation_1の演算とが、デコ
ード直後のクロックサイクルで並列に実行される。oper
ation_0の演算はメモリユニット3で実行され、opera
tion_1の演算は整数演算ユニット4で実行される。コ
ードFM=01の場合、この命令は2演算命令であるこ
とを示す。そして、operation_0の演算が、デコード
直後のクロックサイクルで実行され、 operation_1の
演算が、operation_0の演算に対して、1クロックサ
イクル遅れて実行される。コードFM=10の場合、こ
の命令は2演算命令であることを示す。そして、operat
ion_1の演算が、デコード直後のクロックサイクルで
実行され、 operation_0の演算が、operation_1の
演算に対して、1クロックサイクル遅れて実行される。
コードFM=11の場合、この命令は1演算命令である
ことを示す。そして、フィールド108〜110からな
る演算フィールドで指示された1つの演算が整数演算ユ
ニット4およびメモリユニット3のいずれか一方でデコ
ード直後のクロックサイクルで実行される。
【0076】実行条件フィールド105中のコードCC
は、以下のような意味を持つ。 実行条件フィールド105中のコードCCの値と、後述
される実行コントロールフラグF0とF1との値に従
い、演算フィールド106および107のoperation_
0およびoperation_1で示される演算、ならびに演算
フィールド108〜110の内容で示される演算が有効
であるか無効であるかが決定される。演算が有効である
とは、演算結果を用いてレジスタおよびメモリの内容が
更新されるとともにフラグの値が更新され、その演算に
よる動作の結果がマイクロプロセッサ1内に残ることを
意味する。演算が無効であるとは、演算を用いたレジス
タおよびメモリの内容ならびにフラグの値の更新が行な
われず、あたかも無効演算(NOP)が実行されたかの
ような動作の結果がマイクロプロセッサ1に残ることを
意味する。
は、以下のような意味を持つ。 実行条件フィールド105中のコードCCの値と、後述
される実行コントロールフラグF0とF1との値に従
い、演算フィールド106および107のoperation_
0およびoperation_1で示される演算、ならびに演算
フィールド108〜110の内容で示される演算が有効
であるか無効であるかが決定される。演算が有効である
とは、演算結果を用いてレジスタおよびメモリの内容が
更新されるとともにフラグの値が更新され、その演算に
よる動作の結果がマイクロプロセッサ1内に残ることを
意味する。演算が無効であるとは、演算を用いたレジス
タおよびメモリの内容ならびにフラグの値の更新が行な
われず、あたかも無効演算(NOP)が実行されたかの
ような動作の結果がマイクロプロセッサ1に残ることを
意味する。
【0077】実行条件フィールド105のコードCC=
000のときには、実行コントロールフラグF0とF1
の値にかかわらず常に演算は有効である。コードCC=
001のときには、実行コントロールフラグF0=真の
ときにのみ演算は有効である。実行コントロールフラグ
F1の状態はいずれでもよい。コードCC=010のと
きには、実行コントロールフラグF0=偽のときにのみ
演算は有効である。実行コントロールフラグF1の状態
はいずれでもよい。コードCC=011のときには、実
行コントロールフラグF1=真のときにのみ演算は有効
である。実行コントロールフラグF0の状態はいずれで
もよい。コードCC=100のときには、実行コントロ
ールフラグF1=偽のときにのみ演算は有効である。実
行コントロールフラグF0の状態はいずれでもよい。コ
ードCC=101のときには、実行コントロールフラグ
F0=真かつF1=真のときにのみ演算は有効である。
コードCC=110のときには、実行コントロールフラ
グF0=真かつF1=偽のときにのみ演算は有効であ
る。コードCC=111のときの動作は未定義であり、
ユーザはコードCC=111となるような命令を用いる
ことはできない。
000のときには、実行コントロールフラグF0とF1
の値にかかわらず常に演算は有効である。コードCC=
001のときには、実行コントロールフラグF0=真の
ときにのみ演算は有効である。実行コントロールフラグ
F1の状態はいずれでもよい。コードCC=010のと
きには、実行コントロールフラグF0=偽のときにのみ
演算は有効である。実行コントロールフラグF1の状態
はいずれでもよい。コードCC=011のときには、実
行コントロールフラグF1=真のときにのみ演算は有効
である。実行コントロールフラグF0の状態はいずれで
もよい。コードCC=100のときには、実行コントロ
ールフラグF1=偽のときにのみ演算は有効である。実
行コントロールフラグF0の状態はいずれでもよい。コ
ードCC=101のときには、実行コントロールフラグ
F0=真かつF1=真のときにのみ演算は有効である。
コードCC=110のときには、実行コントロールフラ
グF0=真かつF1=偽のときにのみ演算は有効であ
る。コードCC=111のときの動作は未定義であり、
ユーザはコードCC=111となるような命令を用いる
ことはできない。
【0078】図3(A)〜(I)は、図2(A)と
(B)の演算フィールド106〜110の詳細な内容を
示す図である。図3(A)のフォーマット111〜図3
(G)のフォーマット117は、それぞれ28ビット長
で表現される短型の演算フィールド106または107
に適用される。図3(H)および(I)のフォーマット
118および119は、フィールド108〜110を含
んで構成される長型の演算フィールドに適用される。
(B)の演算フィールド106〜110の詳細な内容を
示す図である。図3(A)のフォーマット111〜図3
(G)のフォーマット117は、それぞれ28ビット長
で表現される短型の演算フィールド106または107
に適用される。図3(H)および(I)のフォーマット
118および119は、フィールド108〜110を含
んで構成される長型の演算フィールドに適用される。
【0079】図3(A)のフォーマット111(Sho
rt_M)は、演算内容を指定するオペコード(オペレ
ーションコードの略)を格納するフィールド120、レ
ジスタ番号RaおよびRbを格納するフィールド121
および122、レジスタ番号および6ビット長の即値の
いずれか一方(ソース)が格納されるフィールド123
およびフィールド123の内容がレジスタ番号および即
値のいずれであるかを指定するコードXが格納されるフ
ィールド124を含む。フィールド124中のコードX
が「00」、「01」および「11」のいずれかである
ときにはフィールド123の内容はレジスタ番号である
ことを示し、「10」であるときには即値であることを
示す。フォーマット111は、メモリユニット3におけ
るレジスタ間接アドレッシングのメモリアクセス演算に
適用される。
rt_M)は、演算内容を指定するオペコード(オペレ
ーションコードの略)を格納するフィールド120、レ
ジスタ番号RaおよびRbを格納するフィールド121
および122、レジスタ番号および6ビット長の即値の
いずれか一方(ソース)が格納されるフィールド123
およびフィールド123の内容がレジスタ番号および即
値のいずれであるかを指定するコードXが格納されるフ
ィールド124を含む。フィールド124中のコードX
が「00」、「01」および「11」のいずれかである
ときにはフィールド123の内容はレジスタ番号である
ことを示し、「10」であるときには即値であることを
示す。フォーマット111は、メモリユニット3におけ
るレジスタ間接アドレッシングのメモリアクセス演算に
適用される。
【0080】図3(B)のフォーマット112(Sho
rt_A)は、図3(A)のフォーマット111のフィ
ールド120〜123を含むとともに、フィールド12
3の内容がレジスタ番号を示すのか即値を示すのかを指
定するコードX1を格納するフィールド125を含む。
フィールド125のコードX1「0」であるときにはフ
ィールド123の内容はレジスタ番号であることを示
し、「1」であるときには即値であることを示す。フォ
ーマット112はメモリユニット3および整数演算ユニ
ット4のそれぞれにおける算術演算、論理演算、シフト
演算およびビット演算に適用される。
rt_A)は、図3(A)のフォーマット111のフィ
ールド120〜123を含むとともに、フィールド12
3の内容がレジスタ番号を示すのか即値を示すのかを指
定するコードX1を格納するフィールド125を含む。
フィールド125のコードX1「0」であるときにはフ
ィールド123の内容はレジスタ番号であることを示
し、「1」であるときには即値であることを示す。フォ
ーマット112はメモリユニット3および整数演算ユニ
ット4のそれぞれにおける算術演算、論理演算、シフト
演算およびビット演算に適用される。
【0081】図3(C)のフォーマット113(Sho
rt_B1)は演算内容を指定するオペコードを格納す
るフィールド120およびレジスタ番号Rcを格納する
フィールド126を含む。フォーマット113は、メモ
リユニット3側におけるレジスタの内容で指定されるア
ドレスにジャンプする命令および分岐する命令に適用さ
れる。
rt_B1)は演算内容を指定するオペコードを格納す
るフィールド120およびレジスタ番号Rcを格納する
フィールド126を含む。フォーマット113は、メモ
リユニット3側におけるレジスタの内容で指定されるア
ドレスにジャンプする命令および分岐する命令に適用さ
れる。
【0082】図3(D)のフォーマット114(Sho
rt_B2)は、オペコード120を格納するフィール
ド120および18ビット長のディスプレイスメントが
格納されるフィールド127を含む。フォーマット11
4はメモリユニット3側において実行されるジャンプ命
令および分岐命令に適用される。
rt_B2)は、オペコード120を格納するフィール
ド120および18ビット長のディスプレイスメントが
格納されるフィールド127を含む。フォーマット11
4はメモリユニット3側において実行されるジャンプ命
令および分岐命令に適用される。
【0083】図3(E)のフォーマット115(Sho
rt_B3)は、オペコードを格納するフィールド12
0、レジスタ番号Raを格納するフィールド121、レ
ジスタ番号および12ビット長の即値のいずれか一方
(ソース)が格納されるフィールド128、フィールド
128の内容がレジスタ番号および即値のいずれである
かを指定するコードYが格納されるフィールド129お
よびゼロ判定に従ってフィールド121の内容で示され
るアドレスにジャンプするか分岐するかを指定するコー
ドZを格納するフィールド130を含む。フォーマット
115はメモリユニット3側における所定条件に従うジ
ャンプ命令および所定条件に従う分岐命令に適用され
る。
rt_B3)は、オペコードを格納するフィールド12
0、レジスタ番号Raを格納するフィールド121、レ
ジスタ番号および12ビット長の即値のいずれか一方
(ソース)が格納されるフィールド128、フィールド
128の内容がレジスタ番号および即値のいずれである
かを指定するコードYが格納されるフィールド129お
よびゼロ判定に従ってフィールド121の内容で示され
るアドレスにジャンプするか分岐するかを指定するコー
ドZを格納するフィールド130を含む。フォーマット
115はメモリユニット3側における所定条件に従うジ
ャンプ命令および所定条件に従う分岐命令に適用され
る。
【0084】図3(F)のフォーマット116(Sho
rt_D1)は、オペコードを格納するフィールド12
0、レジスタ番号Raを格納するフィールド121、レ
ジスタ番号および12ビット長の即値のいずれか一方
(ソース)が格納されるフィールド128、およびフィ
ールド128の内容がレジスタ番号および即値のいずれ
であるかを指定するコードYが格納されるフィールド1
29を含む。フォーマット116は所定条件に従うジャ
ンプ命令、所定条件に従う分岐命令およびリピート命令
に適用される。
rt_D1)は、オペコードを格納するフィールド12
0、レジスタ番号Raを格納するフィールド121、レ
ジスタ番号および12ビット長の即値のいずれか一方
(ソース)が格納されるフィールド128、およびフィ
ールド128の内容がレジスタ番号および即値のいずれ
であるかを指定するコードYが格納されるフィールド1
29を含む。フォーマット116は所定条件に従うジャ
ンプ命令、所定条件に従う分岐命令およびリピート命令
に適用される。
【0085】図3(G)のフォーマット117(Sho
rt_D2)は、オペコードを格納するフィールド12
0、レジスタ番号および12ビット長の即値のいずれか
一方(ソース)を格納するフィールド128、フィール
ド128の内容がレジスタ番号および即値のいずれであ
るかを指定するコードYを格納するフィールド129、
および遅延命令(ディレイド命令)に関する情報を格納
するフィールド131を含む。フォーマット117は、
ディレイドジャンプ命令、ディレイド分岐命令およびリ
ピート命令に適用される。
rt_D2)は、オペコードを格納するフィールド12
0、レジスタ番号および12ビット長の即値のいずれか
一方(ソース)を格納するフィールド128、フィール
ド128の内容がレジスタ番号および即値のいずれであ
るかを指定するコードYを格納するフィールド129、
および遅延命令(ディレイド命令)に関する情報を格納
するフィールド131を含む。フォーマット117は、
ディレイドジャンプ命令、ディレイド分岐命令およびリ
ピート命令に適用される。
【0086】図3(H)のフォーマット118(Lon
g1)は、オペコードを格納するフィールド120、レ
ジスタ番号RaおよびRbを格納するフィールド121
および122、ならびに32ビット長の即値が格納され
るフィールド132を含む。フォーマット118は、複
雑な算術演算、大きな即値を用いる算術演算、大きなデ
ィスプレイスメント付きレジスタ間接アドレッシングの
メモリアクセス演算、大きな変位を用いた分岐演算およ
び絶対番地へのジャンプ命令などに適用される。
g1)は、オペコードを格納するフィールド120、レ
ジスタ番号RaおよびRbを格納するフィールド121
および122、ならびに32ビット長の即値が格納され
るフィールド132を含む。フォーマット118は、複
雑な算術演算、大きな即値を用いる算術演算、大きなデ
ィスプレイスメント付きレジスタ間接アドレッシングの
メモリアクセス演算、大きな変位を用いた分岐演算およ
び絶対番地へのジャンプ命令などに適用される。
【0087】図3(I)のフォーマット119(Lon
g2)は、オペコードを格納するフィールド120、レ
ジスタ番号RaおよびRbを格納するフィールド121
および122、32ビット長の即値が格納されるフィー
ルド132、およびゼロ判定結果に基づいてフィールド
132の内容に従うアドレスへジャンプまたは分岐(条
件ジャンプまたはジャンプ分岐という)を行なうか否か
を指定するコードZを格納するフィールド133を含
む。フォーマット119は、大きな変位で示されるアド
レスへの条件ジャンプや条件分岐の命令に適用される。
g2)は、オペコードを格納するフィールド120、レ
ジスタ番号RaおよびRbを格納するフィールド121
および122、32ビット長の即値が格納されるフィー
ルド132、およびゼロ判定結果に基づいてフィールド
132の内容に従うアドレスへジャンプまたは分岐(条
件ジャンプまたはジャンプ分岐という)を行なうか否か
を指定するコードZを格納するフィールド133を含
む。フォーマット119は、大きな変位で示されるアド
レスへの条件ジャンプや条件分岐の命令に適用される。
【0088】図4(A)〜(C)は、図1のマイクロプ
ロセッサ1の各種のレジスタ群の構成を示す図である。
図1のマイクロプロセッサ1は、図3(A)に示される
32ビット長の64個の汎用レジスタからなる汎用レジ
スタ群5、図4(B)に示される12個の制御レジスタ
からなる制御レジスタ群150(図1では示され
ず。)、および図4(C)に示されるような2個のアキ
ュムレータからなるアキュムレータ群18を含む。
ロセッサ1の各種のレジスタ群の構成を示す図である。
図1のマイクロプロセッサ1は、図3(A)に示される
32ビット長の64個の汎用レジスタからなる汎用レジ
スタ群5、図4(B)に示される12個の制御レジスタ
からなる制御レジスタ群150(図1では示され
ず。)、および図4(C)に示されるような2個のアキ
ュムレータからなるアキュムレータ群18を含む。
【0089】図4(A)において汎用レジスタ140の
内容は常に0であり、該レジスタ内への書込動作は無視
される。汎用レジスタ143は、サブルーチンからの戻
り先を示すアドレスが設定されるリンクレジスタであ
る。汎用レジスタ141はスタックポインタであり、P
SWの後述するSMフィールド中の値に応じてユーザ向
けのスタックポインタ(SPU)または割込処理のため
のスタックポインタ(SPI)として用いられる。
内容は常に0であり、該レジスタ内への書込動作は無視
される。汎用レジスタ143は、サブルーチンからの戻
り先を示すアドレスが設定されるリンクレジスタであ
る。汎用レジスタ141はスタックポインタであり、P
SWの後述するSMフィールド中の値に応じてユーザ向
けのスタックポインタ(SPU)または割込処理のため
のスタックポインタ(SPI)として用いられる。
【0090】図4(B)の制御レジスタ群150には、
図1のプログラムカウンタ151、PSW格納レジスタ
10および各種の専用レジスタが含まれる。図4(B)
においてPSW格納レジスタ10およびバックアップ・
プロセッサ状態フラグBPSWを格納するレジスタは図
1の命令デコードユニット2に設けられる。プログラム
カウンタ151およびバックアップ・プログラムカウン
ト値BPCVが格納されるレジスタはメモリユニット3
に設けられる。図4(B)の制御レジスタ群150中の
その他のレジスタはメモリユニット3側に設けられる。
図1のプログラムカウンタ151、PSW格納レジスタ
10および各種の専用レジスタが含まれる。図4(B)
においてPSW格納レジスタ10およびバックアップ・
プロセッサ状態フラグBPSWを格納するレジスタは図
1の命令デコードユニット2に設けられる。プログラム
カウンタ151およびバックアップ・プログラムカウン
ト値BPCVが格納されるレジスタはメモリユニット3
に設けられる。図4(B)の制御レジスタ群150中の
その他のレジスタはメモリユニット3側に設けられる。
【0091】図3(B)のフォーマット112が適用さ
れる命令に従う演算では、汎用レジスタ群5の64個の
レジスタのそれぞれの上位16ビットと下位16ビット
とを個別にアクセスできる。また、図4(C)の2つの
アキュムレータのそれぞれについて上位32ビットと下
位32ビットとを個別にアクセスできる。
れる命令に従う演算では、汎用レジスタ群5の64個の
レジスタのそれぞれの上位16ビットと下位16ビット
とを個別にアクセスできる。また、図4(C)の2つの
アキュムレータのそれぞれについて上位32ビットと下
位32ビットとを個別にアクセスできる。
【0092】図5は、本実施の形態1に適用されるPS
Wの詳細内容を示す図である。図示されるようにPSW
10は上位16ビットである上位ワード170と下位1
6ビットである下位ワード180とを含む。
Wの詳細内容を示す図である。図示されるようにPSW
10は上位16ビットである上位ワード170と下位1
6ビットである下位ワード180とを含む。
【0093】上位ワード170には図4(A)のスタッ
クポインタ141と142をユーザスタックポインタま
たは割込スタックポインタに切換えるためのフラグSM
が格納されるフィールド171、ソフトウェアデバッガ
トラップ(SDBT)の検出結果を示すフラグEAが格
納されるフィールド172、SDBTの許可/不許可を
指定するフラグDBが格納されるフィールド173、割
込を許可するか否かを指定するフラグIEに格納される
フィールド174、リピート動作に関連のリピートブロ
ックが有効であるか無効であるかを指定するフラグRP
が格納されるフィールド175およびモジュロアドレッ
シングが有効であるか無効であるかを指定するフラグM
Dが格納されるフィールド176を含む。
クポインタ141と142をユーザスタックポインタま
たは割込スタックポインタに切換えるためのフラグSM
が格納されるフィールド171、ソフトウェアデバッガ
トラップ(SDBT)の検出結果を示すフラグEAが格
納されるフィールド172、SDBTの許可/不許可を
指定するフラグDBが格納されるフィールド173、割
込を許可するか否かを指定するフラグIEに格納される
フィールド174、リピート動作に関連のリピートブロ
ックが有効であるか無効であるかを指定するフラグRP
が格納されるフィールド175およびモジュロアドレッ
シングが有効であるか無効であるかを指定するフラグM
Dが格納されるフィールド176を含む。
【0094】下位ワード180はメモリユニット3およ
び整数演算ユニット4の両者によりその内容が更新され
る各種のフラグが格納されるフィールドである。以下、
下位ワード180をフラグフィールドと呼ぶ。フラグフ
ィールド180は前述したような実行コントロールフラ
グF0およびF1を格納するフィールド181および1
82、汎用フラグF2およびF3を格納するフィールド
183および184、演算結果値が飽和状態であるよう
な飽和演算を示すフラグF4が格納されるフィールド1
85、演算においてオーバーフローが生じたことを示す
フラグF5が格納されるフィールド186、演算におい
て累積値に関しオーバーフローが生じたことを示すフラ
グF6が格納されるフィールド187および演算に関し
キャリー/ボローが発生したことを示すフラグF7が格
納されるフィールド188を含む。
び整数演算ユニット4の両者によりその内容が更新され
る各種のフラグが格納されるフィールドである。以下、
下位ワード180をフラグフィールドと呼ぶ。フラグフ
ィールド180は前述したような実行コントロールフラ
グF0およびF1を格納するフィールド181および1
82、汎用フラグF2およびF3を格納するフィールド
183および184、演算結果値が飽和状態であるよう
な飽和演算を示すフラグF4が格納されるフィールド1
85、演算においてオーバーフローが生じたことを示す
フラグF5が格納されるフィールド186、演算におい
て累積値に関しオーバーフローが生じたことを示すフラ
グF6が格納されるフィールド187および演算に関し
キャリー/ボローが発生したことを示すフラグF7が格
納されるフィールド188を含む。
【0095】フラグフィールド180中の各フラグの値
は比較演算または算術演算の結果に従って更新される。
また、フラグ初期化演算で初期化されたり、フラグ値書
込演算により任意の値を用いて更新される。フラグフィ
ールド180の内容は、フラグ値読出演算によって読出
される。
は比較演算または算術演算の結果に従って更新される。
また、フラグ初期化演算で初期化されたり、フラグ値書
込演算により任意の値を用いて更新される。フラグフィ
ールド180の内容は、フラグ値読出演算によって読出
される。
【0096】各フラグは、以下のような意味を有する。 SM=0 :スタックモード0→SPUを使用 SM=1 :スタックモード1→SPIを使用 EA=0 :SDBTを未検出 EA=1 :SDBTを検出 DB=0 :SDBTを非許可 DB=1 :SDBTを許可 IE=0 :割り込み非許可 IE=1 :割り込み許可 RP=0 :リピートブロック無効 RP=1 :リピートブロック有効 MD=0 :モジュロアドレッシング無効 MD=1 :モジュロアドレッシング有効 F0 :汎用フラグ(実行コントロールフラグ) F1 :汎用フラグ(実行コントロールフラグ) F2 :汎用フラグ F3 :汎用フラグ F4(S) :飽和演算フラグ F5(V) :オーバーフローフラグ F6(VA):累積オーバーフローフラグ F7(C) :キャリー/ボローフラグ 以下、このマイクロプロセッサの命令一覧を示す。
【0097】 A.マイクロプロセッサ機能に関する命令 A−1.ロード/ストア命令 LDB :Load one byte to a register with sign extension [1バイトロード(符号拡張あり)] LDBU :Load one byte to a register with zero extension [1バイトロード(ゼロ拡張あり)] LDH :Load one half-word to a register with sign extension [1ハーフワードロード(符号拡張あり)] LDHH :Load one half-word to a register high with sign extension [1ハーフワードロード(レジスタ上位へ,符号拡張あり)] LDHU :Load one half-word to a register with zero extension [1ハーフワードロード(ゼロ拡張あり)] LDW :Load one word to a register [1ワードロード] LD2W :Load tow words to a registers [2ワードロード] LD4BH :Load four bytes to four half-words in two registers with sign extension [4バイトロード(2レジスタ上位下位へ,符号拡張あり)] LD4WHU :Load four bytes to four half-words in two registers with zero extension [4 バイトロード(2レジスタ上位下位へ,ゼロ拡張あり)] LD2H :Load two half-words to two words in two registers with sign extension [2ハーフワードロード(2レジスタへ,符号拡張あり)] STB :Store one byte from a register [1バイトストア] STH :Store one half-word from a register [1ハーフワードストア] STHH :Store one half-word from a register high [1ハーフワードストア(レジスタ上位から)] STW :Store one word from a register [1ワードストア] ST2W :Store two words from registers [2ワードストア] ST4HB :Store four bytes from four half-words from two registers [4バイトストア(2レジスタの4ハーフワードから)] ST2H :Store two half-words from two registers [2ハーフワードストア(2レジスタから)] MODDEC :Decrement a register value by a 5-bits immediate value [即値5ビットのデクリメント] MODINC :Increment a register value by a 5-bits immediate value [即値5ビットのインクリメント] A−2.転送命令 MVFSYS :Move a control register to a general purpose register [制御レジスタから汎用レジスタへ] MVTSYS :Move a general purpose register to a control register [汎用レジスタから制御レジスタへ] MVFACC :Move a word from an accumulator [アキュムレータからの1ワード転送] MVTACC :Move two general purpose registers to an accumulator [2汎用レジスタ内容のアキュムレータへの転送] A−3.比較命令 CMPcc :Compare [比較] cc=EQ(等しい),NE(不等),GT(より大), GE(以上),LT(未満),LE(以下), PS(ともに正),NG(ともに負) CMPUcc :Compare unsigned[比較(符号なし)] cc=GT,GE,LT,LE A−4.最大値/最小値命令 reserved[予約済] A−5.算術演算命令 ABS :Absolute[絶対値をとる] ADD :Add [加算] ADDC :Add with carry[加算(キャリー付き)] ADDHppp:Add half-word [ハーフワード加算] ppp=LLL(レジスタ下位,レジスタ下位,レジスタ 下位),LLH(レジスタ下位,レジスタ下位, レジスタ上位),LHL,LHH,HLL,HL H,HHL,HHH ADDS :Add register Rb with the sign the third operand [レジスタRbに符号を付ける] ADDS2H :Add sign to two half-words [2ハーフワードに符号を付ける] ADD2H :Add two pairs of half-words [2ハーフワード同士の加算] AVG :Average with rounding towards positive infinity [平均をとる] AVG2H :Average two pairs of half-words rounding towards positive infinity [2ハーフワードそれぞれの平均をとる] JOINpp :Join two half-words [2ハーフワードの結合] pp=LL,LH,HL,HH SUB :Subtract[減算] SUBB :Subtract with borrow[ボロー付き減算] SUBHppp:Subtract half-word[ハーフワードの減算] ppp=LLL,LLH,LHL,LHH,HLL, HLH,HHL,HHH SUB2H :Subtract two pairs of half-words [2つのハーフワードの減算] A−6.論理演算命令 AND :logical AND [論理積] OR :logical OR [論理和] NOT :logical NOT [反転] XOR :logical exclusive OR[排他的論理和] ANDFG :logical AND flags [フラグの論理積] ORFG :logical OR flags[フラグの論理和] NOTFG :logical NOT a flag[フラグの反転] XORFG :logical exclusive OR flags[フラグの排他的論理和] A−7.シフト演算命令 SRA :Shift right arithmetic[算術右シフト] SRA2H :Shift right arithmetic two half-words [2つのハーフワードの算術右シフト] SRC :Shift right concatenated registers [レジスタ連鎖右シフト] SRL :Shift right logical [論理右シフト] SRL2H :Shift right logical two half-words [2つのハーフワードの論理右シフト] ROT :Rotate right[右回転] ROT2H :Rotate right two half-words [2つのハーフワードの右回転] A−8.ビット操作命令 BCLR :Clear a bit [ビットクリア] BNOT :Invert a bit[ビット反転] BSET :Set a bit [ビットセット] BTST :Test a bit[ビットテスト] A−9.分岐命令 BRA :Branch[分岐] BRATZR :Branch if zero[ゼロなら分岐] BRATNZ :Branch if not zero[ゼロでないなら分岐] BSR :Branch to subroutine[サブルーチンへ分岐] BSRTZR :Branch to subroutine if zero [ゼロならサブルーチンへ分岐] BSRTNZ :Branch to subroutine if not zero [ゼロでないならサブルーチンへ分岐] JMP :Jump[無条件ジャンプ] JMPTZR :Jump if zero[ゼロならジャンプ] JMPTNZ :Jump if not zero[ゼロでないならジャンプ] JSR :Jump to subroutine[サブルーチンへジャンプ] JSRTZR :Jump to subroutine if zero [ゼロならサブルーチンへジャンプ] JSRTNZ :Jump to subroutine if not zero [ゼロでないならサブルーチンへジャンプ] NOP :No Operation[無操作] [ディレイド分岐,ジャンプ命令に関する命令] DBRA DBRAI DBSR DBSRI DJMP DJMPI DJSR DJSRI A−10.OS関連命令 TRAP :Trap[トラップ] REIT :Return from exception, interrupts and traps [例外、割り込み、トラップからのリターン] B.DSP機能に関する命令 B−1.算術操作命令 MUL :Multiply[乗算] MULX :Multiply with extended precision[倍精度乗算] MULXS :Multiply and shift to the right by one with extended precision [倍精度乗算および1ビット右シフト] MULX2H :Multiply two pairs of half-words with extended precision [2ハーフワードずつの倍精度乗算] MULHXpp:Multiply two half-words with extended precision pp=LL,LH,HL,HH [2ハーフワードの倍精度乗算] MUL2H :Multiply two pairs of half-words [2ハーフワードずつの乗算] MACa :Multiply and add[積和演算] a(アキュムレータ指定)=0,1 MACSa :Multiply, shift to the right by one and add a=0,1 [1ビット右シフト付き積和演算] MSUBa :Multiply and subtract [積和(減算)演算] a=0,1 MSUBSa :Multiply, shift to the right by one and subtract a=0,1 [1ビット右シフト付き積和(減算)演算] [飽和演算に関する命令] SAT SATHH SATHL SATZ SATZ2H SAT2H B−2.リピート命令 REPEAT :Repeat a block of instructions [命令ブロックの繰り返し] REPEATI:Repeat a block of instructions immediate [命令ブロックの繰り返し(即値指定)] 本実施の形態1によるマイクロプロセッサ1では、メモ
リユニット3および整数演算ユニット4において、図5
のフラグF0〜フラグF7を変更する命令が実行され
る。したがって、フラグF0〜F7に関してメモリユニ
ット3および整数演算ユニット4の間でこれらフラグ値
の更新に関し競合が生じる。実行時にこのような競合を
伴う命令として、メモリユニット3側で実行される転送
命令MVTSYS、整数演算ユニット4において実行さ
れる算術演算命令SATHLおよびSATHH、ならび
にメモリユニット3および整数演算ユニット4の両者に
おいて実行される比較命令CMPccおよびCMPUc
c、論理演算命令ANDFG、ORFG、NOTFGお
よびXORFG、算術演算命令ADD、ADDC、AD
DS、ADDHppp、SUB、SUBB、およびSU
BHppp、ならびにビット操作命令BSET、BCL
R、およびBNOTが挙げられる。
リユニット3および整数演算ユニット4において、図5
のフラグF0〜フラグF7を変更する命令が実行され
る。したがって、フラグF0〜F7に関してメモリユニ
ット3および整数演算ユニット4の間でこれらフラグ値
の更新に関し競合が生じる。実行時にこのような競合を
伴う命令として、メモリユニット3側で実行される転送
命令MVTSYS、整数演算ユニット4において実行さ
れる算術演算命令SATHLおよびSATHH、ならび
にメモリユニット3および整数演算ユニット4の両者に
おいて実行される比較命令CMPccおよびCMPUc
c、論理演算命令ANDFG、ORFG、NOTFGお
よびXORFG、算術演算命令ADD、ADDC、AD
DS、ADDHppp、SUB、SUBB、およびSU
BHppp、ならびにビット操作命令BSET、BCL
R、およびBNOTが挙げられる。
【0098】図6は本実施の形態1のマイクロプロセッ
サ1における演算命令の実行例を示す図である。図6に
おいては命令ADDとADDCを例にしてその表記とそ
れに従う動作が示される。図においてレジスタRa、R
bおよびRcのそれぞれは汎用レジスタ群5中の任意の
レジスタに相当する。図6に示された命令ADDおよび
ADDCが実行される場合には、汎用レジスタRaに最
終的な演算結果が格納され、また演算結果に応じて図5
に示されたフラグフィールド180のオーバーフローフ
ラグF5、累積オーバーフラグF6およびキャリー/ボ
ローフラグF7が更新される。
サ1における演算命令の実行例を示す図である。図6に
おいては命令ADDとADDCを例にしてその表記とそ
れに従う動作が示される。図においてレジスタRa、R
bおよびRcのそれぞれは汎用レジスタ群5中の任意の
レジスタに相当する。図6に示された命令ADDおよび
ADDCが実行される場合には、汎用レジスタRaに最
終的な演算結果が格納され、また演算結果に応じて図5
に示されたフラグフィールド180のオーバーフローフ
ラグF5、累積オーバーフラグF6およびキャリー/ボ
ローフラグF7が更新される。
【0099】また、図6においては即値Immを用いた
演算が示される。即値Immが6ビットで表現可能な場
合、および汎用レジスタRcが指定された場合、図6の
命令ADDおよびADDCはそれぞれ図3(B)のフォ
ーマット112に従ってエンコードされて図2(A)の
2演算命令101の演算フィールド106および107
のそれぞれに格納される。一方、即値Immが6ビット
で表現できない大きな値の場合は、図3(H)のフォー
マット118に従ってエンコードされ、図2(B)の1
演算命令102中の演算フィールド108〜110に格
納される。
演算が示される。即値Immが6ビットで表現可能な場
合、および汎用レジスタRcが指定された場合、図6の
命令ADDおよびADDCはそれぞれ図3(B)のフォ
ーマット112に従ってエンコードされて図2(A)の
2演算命令101の演算フィールド106および107
のそれぞれに格納される。一方、即値Immが6ビット
で表現できない大きな値の場合は、図3(H)のフォー
マット118に従ってエンコードされ、図2(B)の1
演算命令102中の演算フィールド108〜110に格
納される。
【0100】2演算命令101のフォーマットフィール
ド103と104の内容であるコードFMの値は演算フ
ィールド106および107に対応する2つの演算命令
の表記の間に記号を用いて示される。具体的には、コー
ドFM=00の場合‖、FM=01の場合−>、FM=
10の場合<−およびFM=11の場合空(指定不要)
というような記号を用いて指定される。1演算命令10
2ではフォーマットフィールド103と104のコード
FMの値はFM=11と固定なので指定する必要もない
から、対応の記号は空となる。なお、フォーマットフィ
ールド103と104の内容はマイクロプロセッサ1に
おけるプログラム実行中に変更されることはない。
ド103と104の内容であるコードFMの値は演算フ
ィールド106および107に対応する2つの演算命令
の表記の間に記号を用いて示される。具体的には、コー
ドFM=00の場合‖、FM=01の場合−>、FM=
10の場合<−およびFM=11の場合空(指定不要)
というような記号を用いて指定される。1演算命令10
2ではフォーマットフィールド103と104のコード
FMの値はFM=11と固定なので指定する必要もない
から、対応の記号は空となる。なお、フォーマットフィ
ールド103と104の内容はマイクロプロセッサ1に
おけるプログラム実行中に変更されることはない。
【0101】コードFM=00の場合、2演算命令の演
算フィールド106に格納された operation_1と演算
フィールド107に格納されたoperation_2はメモリ
ユニット3と整数演算ユニット4とでそれぞれ並列に実
行される。この場合、メモリユニット3と整数演算ユニ
ット4とで命令が並列に実行されるときに両命令の実行
に関してフラグフィールド180の中のフラグの更新を
伴う場合、同一フラグの更新に関して競合が起こり得
る。マイクロプロセッサ1では、この競合を回避するた
めに、整数演算ユニット4によるフラグの更新が優先さ
れる。なお、フラグ更新の優先順位は、これに特定され
ない。例えば、メモリユニット3および整数演算ユニッ
ト4で実行可能な命令の数に従い両ユニット間で優先順
位を決定するようにしてもよい。つまり、実行可能な命
令の数が両ユニット間で同等である場合は、両ユニット
のうちいずれの優先順位を高くてしてもよく、同等でな
い場合は実行可能な命令の数が多い方の優先順位を高く
するようにしてもよい。
算フィールド106に格納された operation_1と演算
フィールド107に格納されたoperation_2はメモリ
ユニット3と整数演算ユニット4とでそれぞれ並列に実
行される。この場合、メモリユニット3と整数演算ユニ
ット4とで命令が並列に実行されるときに両命令の実行
に関してフラグフィールド180の中のフラグの更新を
伴う場合、同一フラグの更新に関して競合が起こり得
る。マイクロプロセッサ1では、この競合を回避するた
めに、整数演算ユニット4によるフラグの更新が優先さ
れる。なお、フラグ更新の優先順位は、これに特定され
ない。例えば、メモリユニット3および整数演算ユニッ
ト4で実行可能な命令の数に従い両ユニット間で優先順
位を決定するようにしてもよい。つまり、実行可能な命
令の数が両ユニット間で同等である場合は、両ユニット
のうちいずれの優先順位を高くてしてもよく、同等でな
い場合は実行可能な命令の数が多い方の優先順位を高く
するようにしてもよい。
【0102】また、フラグ更新の優先順位とは次のこと
を言う。つまり、整数演算ユニット4がメモリユニット
3よりも優先順位が高ければフラグアクセスの競合時に
は、整数演算ユニット4側の命令によりフラグ更新され
て、その後にメモリユニット3側の命令によりフラグ更
新されようとしても、先の更新内容が有効とされて後の
更新によるフラグの書換えは行なわれない(後の更新内
容は無効とされる)ことを言う。
を言う。つまり、整数演算ユニット4がメモリユニット
3よりも優先順位が高ければフラグアクセスの競合時に
は、整数演算ユニット4側の命令によりフラグ更新され
て、その後にメモリユニット3側の命令によりフラグ更
新されようとしても、先の更新内容が有効とされて後の
更新によるフラグの書換えは行なわれない(後の更新内
容は無効とされる)ことを言う。
【0103】図7は、本実施の形態1のマイクロプロセ
ッサ1による命令表記を用いて表現されたあるアルゴリ
ズムの一部を示す図である。あるアルゴリズムの一部を
示す高級言語がコンパイラにより図7に示されるような
命令列となる。次にアセンブラが図7に示されるような
2演算命令を意識せずに表記された命令列をもとに2演
算命令を活用するようにメモリユニット3および整数演
算ユニット4間における命令の実行順序を組合わせる。
このようなアセンブラによる処理は、高級言語で記述さ
れたプログラム(アルゴリズム)を入力してコンパイラ
が生成した図7に示されるような命令列や十分に最適化
されていない、すなわち2演算命令をフラグの更新に関
する競合を回避するよう配慮されていないアセンブラプ
ログラムを最適化する際に必要となる。
ッサ1による命令表記を用いて表現されたあるアルゴリ
ズムの一部を示す図である。あるアルゴリズムの一部を
示す高級言語がコンパイラにより図7に示されるような
命令列となる。次にアセンブラが図7に示されるような
2演算命令を意識せずに表記された命令列をもとに2演
算命令を活用するようにメモリユニット3および整数演
算ユニット4間における命令の実行順序を組合わせる。
このようなアセンブラによる処理は、高級言語で記述さ
れたプログラム(アルゴリズム)を入力してコンパイラ
が生成した図7に示されるような命令列や十分に最適化
されていない、すなわち2演算命令をフラグの更新に関
する競合を回避するよう配慮されていないアセンブラプ
ログラムを最適化する際に必要となる。
【0104】上述したような最適化機能をパッキングと
呼ぶ。本実施の形態のハードウェア構成に対応したアセ
ンブラでは、機能の一部としてパッキングが実現され
る。あるいは、プログラマーがこのようなハードウェア
構成の違いを考慮しながらマニュアルでパッキングする
こともできる。
呼ぶ。本実施の形態のハードウェア構成に対応したアセ
ンブラでは、機能の一部としてパッキングが実現され
る。あるいは、プログラマーがこのようなハードウェア
構成の違いを考慮しながらマニュアルでパッキングする
こともできる。
【0105】図8は、この発明の実施の形態1において
マイクロプロセッサ1にロードされるプログラムを作成
するハードウェア環境を示す図である。このハードウェ
ア環境はたとえば簡単なワークステーションにより提供
されて、このワークステーションはCPU90、ROM
91、RAM92、キーボードなどの入力部93、プリ
ンタおよび表示部などの出力部94、図1のマイクロプ
ロセッサ1などを含む外部装置と通信するための通信I
/F(インタフェースの略)95およびHD(ハードデ
ィスクの略)96を含んで構成される。
マイクロプロセッサ1にロードされるプログラムを作成
するハードウェア環境を示す図である。このハードウェ
ア環境はたとえば簡単なワークステーションにより提供
されて、このワークステーションはCPU90、ROM
91、RAM92、キーボードなどの入力部93、プリ
ンタおよび表示部などの出力部94、図1のマイクロプ
ロセッサ1などを含む外部装置と通信するための通信I
/F(インタフェースの略)95およびHD(ハードデ
ィスクの略)96を含んで構成される。
【0106】HD96には、ファイルシステムが登録さ
れて、このファイルシステムとはマイクロプロセッサ1
にロードされるプログラムを作成するためにコンパイラ
CM、アセンブラASまたはアセンブラASが拡張され
た拡張アセンブラAS1、ローダLD、ならびに後述す
る属性情報INFおよび優先順位情報PRIが格納され
る。
れて、このファイルシステムとはマイクロプロセッサ1
にロードされるプログラムを作成するためにコンパイラ
CM、アセンブラASまたはアセンブラASが拡張され
た拡張アセンブラAS1、ローダLD、ならびに後述す
る属性情報INFおよび優先順位情報PRIが格納され
る。
【0107】図9は、この発明の実施の形態1において
マイクロプロセッサ1にロードされるプログラムを作成
する手順を示す図である。図において高級言語で記述さ
れた原始プログラムPR1が図8の入力部93を介して
入力されると、コンパイラCMによりコンパイルされて
アセンブラ言語で命令が実行順に並べられた第1中間プ
ログラムPR2に変換される(ステップST1)。次
に、アセンブラASまたは拡張アセンブラAS1により
第1中間プログラムPR2がアセンブルされる(ステッ
プST2)。詳細には、アセンブラASまたは拡張アセ
ンブラAS1は前処理として上述したパッキングの処理
(ステップST3)を行ない、後処理として変換(ステ
ップST4)を実行する。パッキングの処理において、
競合を回避しながら命令の並列実行を可能とするように
第1中間プログラムPR2は第2中間プログラムPR3
に変換される。そして変換の処理において第2中間プロ
グラムPR3は図1の命令RAM6に格納されてマイク
ロプロセッサ1により実行可能な機械語レベルで記述さ
れた目的プログラムPR4に変換される。目的プログラ
ムPR4はローダLDにより通信I/F95を介してマ
イクロプロセッサ1中の命令RAM6にロードされる
(ステップST5)。なお、拡張アセンブラAS1は後
の実施の形態5にて述べられる。
マイクロプロセッサ1にロードされるプログラムを作成
する手順を示す図である。図において高級言語で記述さ
れた原始プログラムPR1が図8の入力部93を介して
入力されると、コンパイラCMによりコンパイルされて
アセンブラ言語で命令が実行順に並べられた第1中間プ
ログラムPR2に変換される(ステップST1)。次
に、アセンブラASまたは拡張アセンブラAS1により
第1中間プログラムPR2がアセンブルされる(ステッ
プST2)。詳細には、アセンブラASまたは拡張アセ
ンブラAS1は前処理として上述したパッキングの処理
(ステップST3)を行ない、後処理として変換(ステ
ップST4)を実行する。パッキングの処理において、
競合を回避しながら命令の並列実行を可能とするように
第1中間プログラムPR2は第2中間プログラムPR3
に変換される。そして変換の処理において第2中間プロ
グラムPR3は図1の命令RAM6に格納されてマイク
ロプロセッサ1により実行可能な機械語レベルで記述さ
れた目的プログラムPR4に変換される。目的プログラ
ムPR4はローダLDにより通信I/F95を介してマ
イクロプロセッサ1中の命令RAM6にロードされる
(ステップST5)。なお、拡張アセンブラAS1は後
の実施の形態5にて述べられる。
【0108】なお、プログラムPR1〜PR4は図8に
示されるRAM92に格納される。優先順位情報PRI
は、ユニット3および4における命令の並列実行時に競
合が生じる場合、ユニット3および4のうちいずれ側に
優先的にPSW格納レジスタ中のフラグのアクセスを許
可するかを指定する情報でありマイクロプロセッサ1の
構成に従い予めファイルに保存されて参照される。優先
順位情報PRIはアセンブラの実行時引数(オプショ
ン)として図8の入力部93から入力されるようにして
もよく、アセンブラのプログラム内に設定しておいても
よい。
示されるRAM92に格納される。優先順位情報PRI
は、ユニット3および4における命令の並列実行時に競
合が生じる場合、ユニット3および4のうちいずれ側に
優先的にPSW格納レジスタ中のフラグのアクセスを許
可するかを指定する情報でありマイクロプロセッサ1の
構成に従い予めファイルに保存されて参照される。優先
順位情報PRIはアセンブラの実行時引数(オプショ
ン)として図8の入力部93から入力されるようにして
もよく、アセンブラのプログラム内に設定しておいても
よい。
【0109】図10および図11はこの発明の実施の形
態1によるアセンブラASの図1のハードウェア構成に
対応したパッキングのフローチャートである。フローチ
ャート中、メモリユニット3はMUと、整数演算ユニッ
ト4はIUと略されている。
態1によるアセンブラASの図1のハードウェア構成に
対応したパッキングのフローチャートである。フローチ
ャート中、メモリユニット3はMUと、整数演算ユニッ
ト4はIUと略されている。
【0110】図12は、図7の第1中間プログラムPR
2を入力データとして図10および図11のフローチャ
ートに従いパッキングされた結果である第2中間プログ
ラムPR3を示す図である。
2を入力データとして図10および図11のフローチャ
ートに従いパッキングされた結果である第2中間プログ
ラムPR3を示す図である。
【0111】ここで、図7の第1中間プログラムPR2
を入力して、これを図12に示される第2中間プログラ
ムPR3に変換するようパッキングの手順について図1
0と図11のフローチャートに従い説明する。
を入力して、これを図12に示される第2中間プログラ
ムPR3に変換するようパッキングの手順について図1
0と図11のフローチャートに従い説明する。
【0112】図10と図11のフローチャートでは、第
1中間プログラムPR2から読込んだ命令列を図12に
示されるようにコードFMの記号を挟んで左側および右
側のいずれか一方に配置する。この場合、デフォルトと
して命令列は左側に配置されるように処理される。左側
の命令はMU側で実行される命令を示し、右側の命令は
IU側で実行される命令を示す。
1中間プログラムPR2から読込んだ命令列を図12に
示されるようにコードFMの記号を挟んで左側および右
側のいずれか一方に配置する。この場合、デフォルトと
して命令列は左側に配置されるように処理される。左側
の命令はMU側で実行される命令を示し、右側の命令は
IU側で実行される命令を示す。
【0113】まず、図7の第1中間プログラムPR2の
ある行に示される内容が読込まれる(ステップST1
0。以下、ステップは略する)。このとき、読込むべき
内容がなく読込みできなければパッキングは終了する
(ST11)。
ある行に示される内容が読込まれる(ステップST1
0。以下、ステップは略する)。このとき、読込むべき
内容がなく読込みできなければパッキングは終了する
(ST11)。
【0114】一方、命令コードが読込まれると、読込ま
れた命令コードは図3(H)または(I)の長型式の命
令か否かが判別される(ST12)。ここでは、該命令
コードに対応の3番目のオペランドが即値であり、かつ
短形式で表現できない可能性がある場合に長型式の命令
コードと判別され、該命令コードとオペランドはMU
側、すなわち図12中のコードFMの記号に対して左側
に配置される(ST13)。
れた命令コードは図3(H)または(I)の長型式の命
令か否かが判別される(ST12)。ここでは、該命令
コードに対応の3番目のオペランドが即値であり、かつ
短形式で表現できない可能性がある場合に長型式の命令
コードと判別され、該命令コードとオペランドはMU
側、すなわち図12中のコードFMの記号に対して左側
に配置される(ST13)。
【0115】一方、3つ目のオペランドが即値でも短形
式で表現可能であったり、オペランドがレジスタであれ
ば短形式の命令コードと判別される(ST12でN
O)。そして、パッキングが指定されていれば(ST1
4でYES)、次の処理(ST16)に移行するが、パ
ッキング指定されていなければ(ST12AでNO)、
そのまま命令コードは出力されて(ST15)、ST1
0の処理に戻る。ここでパッキングが指定されるとは、
第2中間プログラムPR3の行が指定されることをい
う。
式で表現可能であったり、オペランドがレジスタであれ
ば短形式の命令コードと判別される(ST12でN
O)。そして、パッキングが指定されていれば(ST1
4でYES)、次の処理(ST16)に移行するが、パ
ッキング指定されていなければ(ST12AでNO)、
そのまま命令コードは出力されて(ST15)、ST1
0の処理に戻る。ここでパッキングが指定されるとは、
第2中間プログラムPR3の行が指定されることをい
う。
【0116】さて、マイクロプロセッサ1にて実行され
る命令コードの多くはMU側とIU側とのいずれにも配
置可能であるが、MU側のみあるいはIU側のみに限定
して配置可能なものもある。そこで、マイクロプロセッ
サ1において実行対象となる各命令コードにはMU側の
みに配置可能、IU側のみに配置可能ならびにMU側お
よびIU側のいずれにも配置可能という情報を示す属性
が予め付加されており、図9に示されるようにアセンブ
ラASは、この属性が各命令コード対応で記録された属
性情報INFを参照しながら、読込んだ各命令コードを
MU側およびIU側のいずれに配置するかを決定する。
る命令コードの多くはMU側とIU側とのいずれにも配
置可能であるが、MU側のみあるいはIU側のみに限定
して配置可能なものもある。そこで、マイクロプロセッ
サ1において実行対象となる各命令コードにはMU側の
みに配置可能、IU側のみに配置可能ならびにMU側お
よびIU側のいずれにも配置可能という情報を示す属性
が予め付加されており、図9に示されるようにアセンブ
ラASは、この属性が各命令コード対応で記録された属
性情報INFを参照しながら、読込んだ各命令コードを
MU側およびIU側のいずれに配置するかを決定する。
【0117】読込んだ命令コードがMU側にのみ配置可
能と判別されると(ST16でYES)、該命令コード
と対応のオペランドはMU側に配置され(ST18)、
IU側にのみ配置可能と判別されると(ST17でYE
S)、同様にしてIU側に配置され(ST20)、両側
に配置可能と判別されると(ST16およびST17で
NO)、第1中間プログラムPR2中の次に位置する命
令コードの属性が参照されて、該属性が命令コードはM
U側にのみ配置可能を示している場合には(ST19で
YES)、先に読込まれた命令コードと対応のオペラン
ドはIU側に配置され(ST20)、そうでない場合に
は(ST19でNO)、先に読込まれた命令コードとオ
ペランドはデフォルトであるMU側に配置される(ST
18)。
能と判別されると(ST16でYES)、該命令コード
と対応のオペランドはMU側に配置され(ST18)、
IU側にのみ配置可能と判別されると(ST17でYE
S)、同様にしてIU側に配置され(ST20)、両側
に配置可能と判別されると(ST16およびST17で
NO)、第1中間プログラムPR2中の次に位置する命
令コードの属性が参照されて、該属性が命令コードはM
U側にのみ配置可能を示している場合には(ST19で
YES)、先に読込まれた命令コードと対応のオペラン
ドはIU側に配置され(ST20)、そうでない場合に
は(ST19でNO)、先に読込まれた命令コードとオ
ペランドはデフォルトであるMU側に配置される(ST
18)。
【0118】そして、第1中間プログラムPR2から次
の内容が読込まれて、サブルーチン名などのラベルを示
すシンボルであれば(ST21でYES)、MU側およ
びIU側のいずれか空いている方にNOP命令が配置さ
れて、2つの命令が並列実行されるように配置される
(ST24)。
の内容が読込まれて、サブルーチン名などのラベルを示
すシンボルであれば(ST21でYES)、MU側およ
びIU側のいずれか空いている方にNOP命令が配置さ
れて、2つの命令が並列実行されるように配置される
(ST24)。
【0119】一方、次に読込まれる内容がシンボルでな
ければ(ST21でNO)、命令コードが読込可能かが
判別される。
ければ(ST21でNO)、命令コードが読込可能かが
判別される。
【0120】命令コードが読込可能と判別されなければ
(ST22でNO)、ST24の処理に移行した後、S
T10の処理に戻り、以下同様に処理が繰返される。
(ST22でNO)、ST24の処理に移行した後、S
T10の処理に戻り、以下同様に処理が繰返される。
【0121】一方、次に命令コードを読込可能と判別さ
れると(ST22でYES)、次の命令コードが長形式
であるかまたはパッキングが指定されている場合には
(ST23でYES)、前述のST24の処理を行なっ
た後に、ST10の処理に戻り以下同様に処理が繰返さ
れる。一方、次の命令コードが長形式ではなく、かつパ
ッキングが指定されていない場合には(ST23でN
O)、読込可能と判別された次の命令コードが先に読込
まれた命令コードの演算結果を用いて実行されるもので
あるかが判別される(ST25)。ここでは、次に読込
まれる命令コードに対応の第2または第3のオペランド
が先に読込まれた命令コードに対応の第1のオペランド
(演算結果を格納すべきオペランド)を用いるものであ
れば、並列実行は不可能と判別され、用いなければ並列
実行可能と判別される。
れると(ST22でYES)、次の命令コードが長形式
であるかまたはパッキングが指定されている場合には
(ST23でYES)、前述のST24の処理を行なっ
た後に、ST10の処理に戻り以下同様に処理が繰返さ
れる。一方、次の命令コードが長形式ではなく、かつパ
ッキングが指定されていない場合には(ST23でN
O)、読込可能と判別された次の命令コードが先に読込
まれた命令コードの演算結果を用いて実行されるもので
あるかが判別される(ST25)。ここでは、次に読込
まれる命令コードに対応の第2または第3のオペランド
が先に読込まれた命令コードに対応の第1のオペランド
(演算結果を格納すべきオペランド)を用いるものであ
れば、並列実行は不可能と判別され、用いなければ並列
実行可能と判別される。
【0122】ここで、並列実行不可能と判別されると
(ST25でYES)、次の命令コードと対応のオペラ
ンドが先に読込まれた命令コードの実行後にシリアルに
実行されるように、両命令コードは同一パケットの各フ
ィールドに配置される(ST29)。並列実行可能と判
別されると(ST25でNO)、先に読込まれた命令コ
ードと次の命令コードとが並列実行された場合にフラグ
更新に関して競合するか否かが判別される(ST2
6)。競合しないと判別されると(ST26でNO)、
次の命令コードは先に読込まれた命令コードと並列実行
されるように、両命令コードは同一パケットの各フィー
ルドに配置され(ST28)、その後ST10の処理に
戻り以下同様に処理は繰返される。
(ST25でYES)、次の命令コードと対応のオペラ
ンドが先に読込まれた命令コードの実行後にシリアルに
実行されるように、両命令コードは同一パケットの各フ
ィールドに配置される(ST29)。並列実行可能と判
別されると(ST25でNO)、先に読込まれた命令コ
ードと次の命令コードとが並列実行された場合にフラグ
更新に関して競合するか否かが判別される(ST2
6)。競合しないと判別されると(ST26でNO)、
次の命令コードは先に読込まれた命令コードと並列実行
されるように、両命令コードは同一パケットの各フィー
ルドに配置され(ST28)、その後ST10の処理に
戻り以下同様に処理は繰返される。
【0123】一方、競合すると判別されると(ST26
でYES)、競合回避のためのフラグ書込みの優先順位
情報PRIに従い先の命令コードと次の命令コードとが
配置可能か否か判定される(ST27)。配置可能と判
定されると(ST27でYES)、次の命令コードは先
の命令コードと並列実行されるように、両命令コードは
同一パケットの各フィールドに配置され(ST28)、
配置不可能と判定されると(ST27でNO)次の命令
コードは先の命令コードの実行後にシリアルに実行され
て演算の論理性が保たれるように、両命令コードは同一
パケットの各フィールドに優先順位情報PRIに従い配
置される(ST29)。以下、同様に処理が繰返され
る。
でYES)、競合回避のためのフラグ書込みの優先順位
情報PRIに従い先の命令コードと次の命令コードとが
配置可能か否か判定される(ST27)。配置可能と判
定されると(ST27でYES)、次の命令コードは先
の命令コードと並列実行されるように、両命令コードは
同一パケットの各フィールドに配置され(ST28)、
配置不可能と判定されると(ST27でNO)次の命令
コードは先の命令コードの実行後にシリアルに実行され
て演算の論理性が保たれるように、両命令コードは同一
パケットの各フィールドに優先順位情報PRIに従い配
置される(ST29)。以下、同様に処理が繰返され
る。
【0124】上述のようにして、アセンブラASによる
パッキングが行なわれることにより、たとえば図7に示
されるような第1中間プログラムPR2は図12に示さ
れるような第2中間プログラムPR3に変換される。
パッキングが行なわれることにより、たとえば図7に示
されるような第1中間プログラムPR2は図12に示さ
れるような第2中間プログラムPR3に変換される。
【0125】第2中間プログラムPR3がプロセッサ1
の命令RAM6にロードされる場合には、アセンブラA
Sの後処理である変換により0,1のパターンからなる
機械語レベルで示された目的プログラムPR4に変換さ
れた後、図8の通信I/F95を介してローダLDによ
り命令RAM6にロードされる。
の命令RAM6にロードされる場合には、アセンブラA
Sの後処理である変換により0,1のパターンからなる
機械語レベルで示された目的プログラムPR4に変換さ
れた後、図8の通信I/F95を介してローダLDによ
り命令RAM6にロードされる。
【0126】図13と図14は、フラグの書込優先が設
定されなかった場合のハードウェア構成に対応するパッ
キングのフローチャートである。図15は図7の第1中
間プログラムPR2を図13と図14のフローチャート
に従いパッキングした結果を示す図である。
定されなかった場合のハードウェア構成に対応するパッ
キングのフローチャートである。図15は図7の第1中
間プログラムPR2を図13と図14のフローチャート
に従いパッキングした結果を示す図である。
【0127】図13と図14のフローチャートを図10
と図11のフローチャートと比較した場合異なる点は、
図11のステップST25〜ST29に代替してステッ
プST30〜ST33が設けられた点にある。図13の
処理は図10のそれと同じなので説明は省略する。図1
4の処理では、ステップST31の処理において単にフ
ラグ更新に関して競合を起こすような命令同士は並列に
実行されないように命令実行順序を調整しているにすぎ
ない。これに対して図11ではフラグ更新の優先順位が
MUおよびIU間で設定されて、その設定に基づいて命
令が配置されるから、競合回避のための実行順序調整は
不要となり、プログラムステップ数を削減できる。
と図11のフローチャートと比較した場合異なる点は、
図11のステップST25〜ST29に代替してステッ
プST30〜ST33が設けられた点にある。図13の
処理は図10のそれと同じなので説明は省略する。図1
4の処理では、ステップST31の処理において単にフ
ラグ更新に関して競合を起こすような命令同士は並列に
実行されないように命令実行順序を調整しているにすぎ
ない。これに対して図11ではフラグ更新の優先順位が
MUおよびIU間で設定されて、その設定に基づいて命
令が配置されるから、競合回避のための実行順序調整は
不要となり、プログラムステップ数を削減できる。
【0128】図13と図14のフローチャートに従え
ば、フラグの書込に関し競合を回避するようにプログラ
ムを実行する必要が生じるから、結果として図15に示
されるように命令を同時実行する回数が図12の場合に
比較して1回減少し、同一プログラムPR2の実行時間
に関して、図15の場合は図12のそれよりも1単位時
間長くなる。
ば、フラグの書込に関し競合を回避するようにプログラ
ムを実行する必要が生じるから、結果として図15に示
されるように命令を同時実行する回数が図12の場合に
比較して1回減少し、同一プログラムPR2の実行時間
に関して、図15の場合は図12のそれよりも1単位時
間長くなる。
【0129】図12と図15との違いからもわかるよう
に、フラグの書込に関しMUおよびIU間で優先順位が
設定されたハードウェア構成と、それに対応したアセン
ブラASのパッキングが採用されることで、同一プログ
ラムを実行する場合であっても本実施の形態によれば従
来に比較して演算性能が高まることがわかる。
に、フラグの書込に関しMUおよびIU間で優先順位が
設定されたハードウェア構成と、それに対応したアセン
ブラASのパッキングが採用されることで、同一プログ
ラムを実行する場合であっても本実施の形態によれば従
来に比較して演算性能が高まることがわかる。
【0130】なお、フラグ更新に関してメモリユニット
3と整数演算ユニット4間に設定される優先順位を示す
情報はマイクロプロセッサ1のハードウェア実装レベル
で設定されており、アセンブラは図9に示されるように
パッキング時にこの優先順位に関する情報PRIを予め
データとして参照するよう構成される。
3と整数演算ユニット4間に設定される優先順位を示す
情報はマイクロプロセッサ1のハードウェア実装レベル
で設定されており、アセンブラは図9に示されるように
パッキング時にこの優先順位に関する情報PRIを予め
データとして参照するよう構成される。
【0131】(実施の形態2)図16は、この発明の実
施の形態2によるマイクロプロセッサの構成を示すブロ
ック図である。図16においてマイクロプロセッサ1A
と図1のマイクロプロセッサ1を比較して異なる点は、
命令デコードユニット2に代替して命令デコードユニッ
ト2Aを備える点にある。命令デコードユニット2Aは
図1のPSWを格納したPSW格納レジスタ10に代替
してPSW1を格納したPSW格納レジスタ10Aを備
える。マイクロプロセッサ1Aのその他の構成はマイク
ロプロセッサ1のそれと同じであり、詳細説明は省略す
る。
施の形態2によるマイクロプロセッサの構成を示すブロ
ック図である。図16においてマイクロプロセッサ1A
と図1のマイクロプロセッサ1を比較して異なる点は、
命令デコードユニット2に代替して命令デコードユニッ
ト2Aを備える点にある。命令デコードユニット2Aは
図1のPSWを格納したPSW格納レジスタ10に代替
してPSW1を格納したPSW格納レジスタ10Aを備
える。マイクロプロセッサ1Aのその他の構成はマイク
ロプロセッサ1のそれと同じであり、詳細説明は省略す
る。
【0132】図17は、本実施の形態2に適用されるP
SW1の詳細内容を示す図である。PSW1の上位16
ビットのフィールド190には、図5のPSWのフィー
ルド170の内容に追加して4ビット目のフィールド1
91にコードIFが格納される。また、下位16ビット
の下位フィールド200は実行コントロールフラグF0
およびF1をそれぞれ格納するフィールド201および
202、汎用フラグF2およびF3をそれぞれ格納する
フィールド203および204、および各種のフラグを
格納するフィールド205〜208を含む、いわゆるフ
ラグフィールドである。以下、下位フィールド200を
フラグフィールド200と呼ぶ。
SW1の詳細内容を示す図である。PSW1の上位16
ビットのフィールド190には、図5のPSWのフィー
ルド170の内容に追加して4ビット目のフィールド1
91にコードIFが格納される。また、下位16ビット
の下位フィールド200は実行コントロールフラグF0
およびF1をそれぞれ格納するフィールド201および
202、汎用フラグF2およびF3をそれぞれ格納する
フィールド203および204、および各種のフラグを
格納するフィールド205〜208を含む、いわゆるフ
ラグフィールドである。以下、下位フィールド200を
フラグフィールド200と呼ぶ。
【0133】フラグフィールド200のフィールド20
5には整数演算ユニット4およびメモリユニット3のそ
れぞれに対応して飽和演算フラグF4aおよびF4bが
格納される。フィールド206には、整数演算ユニット
4およびメモリユニット3のそれぞれに対応してオーバ
ーフローフラグF5aおよびF5bが格納される。フィ
ールド207には整数演算ユニット4およびメモリユニ
ット3のそれぞれに対応して累積オーバーフラグF6a
およびF6bのそれぞれが格納される。フィールド20
8には整数演算ユニット4およびメモリユニット3のそ
れぞれに対応してキャリー/ボローフラグF7aおよび
F7bのそれぞれが格納される。これらフラグは対応す
るユニットで実行された命令で個別にアクセスされて、
その命令の実行結果を保持するためのものである。
5には整数演算ユニット4およびメモリユニット3のそ
れぞれに対応して飽和演算フラグF4aおよびF4bが
格納される。フィールド206には、整数演算ユニット
4およびメモリユニット3のそれぞれに対応してオーバ
ーフローフラグF5aおよびF5bが格納される。フィ
ールド207には整数演算ユニット4およびメモリユニ
ット3のそれぞれに対応して累積オーバーフラグF6a
およびF6bのそれぞれが格納される。フィールド20
8には整数演算ユニット4およびメモリユニット3のそ
れぞれに対応してキャリー/ボローフラグF7aおよび
F7bのそれぞれが格納される。これらフラグは対応す
るユニットで実行された命令で個別にアクセスされて、
その命令の実行結果を保持するためのものである。
【0134】フィールド191のフラグIFは以下のよ
うに定義される。 IF=0:フラグを整数演算ユニット4およびメモリユ
ニット3で共有する。
うに定義される。 IF=0:フラグを整数演算ユニット4およびメモリユ
ニット3で共有する。
【0135】つまり図17のPSW1の下位8ビット
は、図5のPSWのフラグフィールド180の下位8ビ
ットと同じ構成をとるように動作する。つまり、図17
のフラグF4b、F5b、F6bおよびF7bは無効と
なる。
は、図5のPSWのフラグフィールド180の下位8ビ
ットと同じ構成をとるように動作する。つまり、図17
のフラグF4b、F5b、F6bおよびF7bは無効と
なる。
【0136】IF=1:フラグを整数演算ユニット4お
よびメモリユニット3それぞれについて専用のものを用
いる。
よびメモリユニット3それぞれについて専用のものを用
いる。
【0137】つまり、図10のフラグF4b、F5b、
F6bおよびF7bは有効となって、フィールド200
〜208のすべての内容が有効となる。
F6bおよびF7bは有効となって、フィールド200
〜208のすべての内容が有効となる。
【0138】このように、フラグIF=1の場合は、整
数演算ユニット4およびメモリユニット3のそれぞれに
専用のフラグが利用されることでメモリユニット3と整
数演算ユニット4とでフラグを変更する命令が同時に実
行された場合の、フラグ更新に関する競合が回避され
る。一方、IF=0の場合は前述した実施の形態1の構
成と等価になる。したがって、実施の形態1と同様に、
整数演算ユニット4によるフラグの更新が優先されてフ
ラグの更新に関する競合が回避される。
数演算ユニット4およびメモリユニット3のそれぞれに
専用のフラグが利用されることでメモリユニット3と整
数演算ユニット4とでフラグを変更する命令が同時に実
行された場合の、フラグ更新に関する競合が回避され
る。一方、IF=0の場合は前述した実施の形態1の構
成と等価になる。したがって、実施の形態1と同様に、
整数演算ユニット4によるフラグの更新が優先されてフ
ラグの更新に関する競合が回避される。
【0139】なお、フィールド191のフラグIFの値
はPSW1の他のフィールド同様、ソフトウェア的に変
更が可能であるから、実行されるプログラムの特徴に適
したモードを選択できる。
はPSW1の他のフィールド同様、ソフトウェア的に変
更が可能であるから、実行されるプログラムの特徴に適
したモードを選択できる。
【0140】図18は、本実施の形態2のマイクロプロ
セッサ1Aの命令表記を用いてあるアルゴリズムの一部
を表現した例を示す図である。このアルゴリズムをもと
にアセンブラは2演算命令を活用するように整数演算ユ
ニット4およびメモリユニット3における命令の実行順
序を組合わせる。
セッサ1Aの命令表記を用いてあるアルゴリズムの一部
を表現した例を示す図である。このアルゴリズムをもと
にアセンブラは2演算命令を活用するように整数演算ユ
ニット4およびメモリユニット3における命令の実行順
序を組合わせる。
【0141】図19は、図18の命令列が最短の時間で
実行される場合のメモリユニット3と整数演算ユニット
4で実行される命令列を示す図である。図19ではフラ
グIF=1の場合の、メモリユニット3と整数演算ユニ
ット4で実行される命令が時刻Tに従う時系列で示され
る。図においてNOP命令は、簡略化のために便宜的に
加えられているものであり、実際は、図18の命令列の
直後、あるいは直前に配置される命令(図示せず)が適
宜実行される。
実行される場合のメモリユニット3と整数演算ユニット
4で実行される命令列を示す図である。図19ではフラ
グIF=1の場合の、メモリユニット3と整数演算ユニ
ット4で実行される命令が時刻Tに従う時系列で示され
る。図においてNOP命令は、簡略化のために便宜的に
加えられているものであり、実際は、図18の命令列の
直後、あるいは直前に配置される命令(図示せず)が適
宜実行される。
【0142】図20は、図18の命令列が最短の時間で
実行される場合の、メモリユニット3と整数演算ユニッ
ト4で実行される命令列を示す図である。図20ではフ
ラグIF=0の場合に実行時間が最短となるような命令
列が示される。フラグIF=0の場合には、前述したよ
うにフラグの更新に関し競合が生じないようプログラム
する必要があるから実行時間が図19の場合に比較し、
1単位時間長くなる。
実行される場合の、メモリユニット3と整数演算ユニッ
ト4で実行される命令列を示す図である。図20ではフ
ラグIF=0の場合に実行時間が最短となるような命令
列が示される。フラグIF=0の場合には、前述したよ
うにフラグの更新に関し競合が生じないようプログラム
する必要があるから実行時間が図19の場合に比較し、
1単位時間長くなる。
【0143】したがって、図19と図20を参照しても
わかるように、図18で示されるプログラムの例に対し
ては、メモリユニット3と整数演算ユニット4のそれぞ
れについてPSW1におけるフラグを専用に保持するこ
とで、演算性能が高まる。
わかるように、図18で示されるプログラムの例に対し
ては、メモリユニット3と整数演算ユニット4のそれぞ
れについてPSW1におけるフラグを専用に保持するこ
とで、演算性能が高まる。
【0144】図21は本実施の形態2のマイクロプロセ
ッサ1Aの命令表記を用いて他のアルゴリズムの一部を
実現した例を示す図である。
ッサ1Aの命令表記を用いて他のアルゴリズムの一部を
実現した例を示す図である。
【0145】図22と図23は、図21で示された命令
列が最短時間で実行される場合の、メモリユニット3と
整数演算ユニット4で実行される命令を時系列で示した
図である。図22はIF=1の場合であって、メモリユ
ニット3および整数演算ユニット4のそれぞれについて
PSW1におけるフラグが専用で保持されるので、”A
DD R1,R2,R3”命令を両方のユニットで実行
するようにプログラマが命令を補う必要がある。
列が最短時間で実行される場合の、メモリユニット3と
整数演算ユニット4で実行される命令を時系列で示した
図である。図22はIF=1の場合であって、メモリユ
ニット3および整数演算ユニット4のそれぞれについて
PSW1におけるフラグが専用で保持されるので、”A
DD R1,R2,R3”命令を両方のユニットで実行
するようにプログラマが命令を補う必要がある。
【0146】一方、図23はフラグIF=0の場合が示
される。命令の実行サイクルは図22と同じであるが、
命令NOPで示された時刻Tにおいて図21の命令列の
直前に位置する命令(図示せず)を実行することが可能
である。したがって、図23の場合はプログラムのコー
ドサイズが図22のそれよりも小さく、かつプログラム
全体としての実行時間が短縮される可能がある。
される。命令の実行サイクルは図22と同じであるが、
命令NOPで示された時刻Tにおいて図21の命令列の
直前に位置する命令(図示せず)を実行することが可能
である。したがって、図23の場合はプログラムのコー
ドサイズが図22のそれよりも小さく、かつプログラム
全体としての実行時間が短縮される可能がある。
【0147】上述したように、図18で示されるプログ
ラムに対しては、フラグIF=1の動作モードが有効で
あり、図21のプログラムに対してはフラグIF=0の
動作モードが有効といえる。
ラムに対しては、フラグIF=1の動作モードが有効で
あり、図21のプログラムに対してはフラグIF=0の
動作モードが有効といえる。
【0148】このように、フラグIFを用いてメモリユ
ニット3と整数演算ユニット4でPSW1中のフラグを
共有させるモードおよび個別に割り当てるモードのいず
れかに切換える方式は、マイクロプロセッサ1Aにおい
て実行されるプログラムの内容に応じて任意に選択でき
るので、演算性能が向上する。
ニット3と整数演算ユニット4でPSW1中のフラグを
共有させるモードおよび個別に割り当てるモードのいず
れかに切換える方式は、マイクロプロセッサ1Aにおい
て実行されるプログラムの内容に応じて任意に選択でき
るので、演算性能が向上する。
【0149】なお、モード切換を行わずに固定的に、各
ユニットについて専用フラグを割り当てるようなプロセ
ッサの構成としても、同様の効果を得ることができる。
ユニットについて専用フラグを割り当てるようなプロセ
ッサの構成としても、同様の効果を得ることができる。
【0150】(実施の形態3)図24はこの発明の実施
の形態3によるマイクロプロセッサの構成を示すブロッ
ク図である。マイクロプロセッサ1Bは図1のマイクロ
プロセッサ1の命令デコードユニット2に代替して命令
デコードユニット2Bを有し、その他の構成はマイクロ
プロセッサ1のそれと同じである。命令デコードユニッ
ト2Bはデコーダ8、プロセッサの状態を示すPSW
(Processor Status Word の略)2を格納するためのP
SW格納レジスタ10B、およびデコーダ9を含む。
の形態3によるマイクロプロセッサの構成を示すブロッ
ク図である。マイクロプロセッサ1Bは図1のマイクロ
プロセッサ1の命令デコードユニット2に代替して命令
デコードユニット2Bを有し、その他の構成はマイクロ
プロセッサ1のそれと同じである。命令デコードユニッ
ト2Bはデコーダ8、プロセッサの状態を示すPSW
(Processor Status Word の略)2を格納するためのP
SW格納レジスタ10B、およびデコーダ9を含む。
【0151】図25は、この発明の実施の形態3に適用
されるPSW2の詳細内容を示す図である。
されるPSW2の詳細内容を示す図である。
【0152】実施の形態3ではマイクロプロセッサ1B
において実行される命令群にSIMD(Single Instruc
toin Multiple Dataの略)命令が含まれる場合の動作が
示される。
において実行される命令群にSIMD(Single Instruc
toin Multiple Dataの略)命令が含まれる場合の動作が
示される。
【0153】SIMD命令は1回の命令実行で複数の入
力データに対して同じ処理を施す方式である。
力データに対して同じ処理を施す方式である。
【0154】SIMD命令が適用されるマルチメディア
処理においては、計算結果がデータの所定最大値を超え
ると、すなわちオーバーフローが生じるとマイクロプロ
セッサ1Bでは処理できる範囲で一番大きな値に自動的
に変換される。
処理においては、計算結果がデータの所定最大値を超え
ると、すなわちオーバーフローが生じるとマイクロプロ
セッサ1Bでは処理できる範囲で一番大きな値に自動的
に変換される。
【0155】図24のPSW2は上位16ビットのフィ
ールド210と下位16ビットのフィールド220を含
む。PSW2と図17のPSW1とを比較し異なる点
は、PSW2のフィールド210の8〜15ビット目に
おいてフラグを格納したフィールド211〜214を含
む点にある。その他の構成はPSW1のそれと同じであ
る。
ールド210と下位16ビットのフィールド220を含
む。PSW2と図17のPSW1とを比較し異なる点
は、PSW2のフィールド210の8〜15ビット目に
おいてフラグを格納したフィールド211〜214を含
む点にある。その他の構成はPSW1のそれと同じであ
る。
【0156】フィールド211〜214は、2−Way
のSIMD命令(上位および下位ハーフワード命令)が
実行された場合に、補助的に用いられる。
のSIMD命令(上位および下位ハーフワード命令)が
実行された場合に、補助的に用いられる。
【0157】図25においてフィールド211のフラグ
F4cおよびF4dは、それぞれ整数演算ユニット4お
よびメモリユニット3でSIMD命令が実行されたと
き、上位ハーフワードに対する演算専用の飽和演算フラ
グである。その際、実施の形態2に示されたフラグF4
aおよびF4bは下位ハーフワードに対する演算の結果
を保持する。
F4cおよびF4dは、それぞれ整数演算ユニット4お
よびメモリユニット3でSIMD命令が実行されたと
き、上位ハーフワードに対する演算専用の飽和演算フラ
グである。その際、実施の形態2に示されたフラグF4
aおよびF4bは下位ハーフワードに対する演算の結果
を保持する。
【0158】フィールド211のフラグF5cとF5
d、フィールド213のフラグF6cとF6dおよびフ
ィールド214のフラグF7cとF7dも、同様にハー
フワード演算における上位ハーフワードの演算制御のオ
ーバーフローフラグ、および累積オーバーフローフラ
グ、キャリ/ボローフラグである。フィールド206の
フラグF5aとF5b、フィールド207のフラグF6
aとF6bおよびフィールド208のフラグF7aとF
7bはSIMD命令の実行において、下位ハーフワード
演算の結果を保持する。なお、フラグF5b、F5c、
F5d、F6b、F6c、F6d、F7b、F7cおよ
びF7dは、フィールド191のフラグIFが“1”の
場合のみ有効である。
d、フィールド213のフラグF6cとF6dおよびフ
ィールド214のフラグF7cとF7dも、同様にハー
フワード演算における上位ハーフワードの演算制御のオ
ーバーフローフラグ、および累積オーバーフローフラ
グ、キャリ/ボローフラグである。フィールド206の
フラグF5aとF5b、フィールド207のフラグF6
aとF6bおよびフィールド208のフラグF7aとF
7bはSIMD命令の実行において、下位ハーフワード
演算の結果を保持する。なお、フラグF5b、F5c、
F5d、F6b、F6c、F6d、F7b、F7cおよ
びF7dは、フィールド191のフラグIFが“1”の
場合のみ有効である。
【0159】従来および実施の形態2に示されるハード
ウェア構成では、演算ユニットのそれぞれに対して、た
とえばオーバーフローフラグがたかだか1つだけ割当て
られていた。その結果、SIMD命令が実行された場合
のオーバーフローが発生したことを示す結果を保持でき
ないため、SIMD命令が実行される際には、フラグの
変更がないようなプログラム処理とせざるを得ず、プロ
グラムの仕様に多様性を持たせることができなかった。
ウェア構成では、演算ユニットのそれぞれに対して、た
とえばオーバーフローフラグがたかだか1つだけ割当て
られていた。その結果、SIMD命令が実行された場合
のオーバーフローが発生したことを示す結果を保持でき
ないため、SIMD命令が実行される際には、フラグの
変更がないようなプログラム処理とせざるを得ず、プロ
グラムの仕様に多様性を持たせることができなかった。
【0160】一方、本実施の形態3のような構成を用い
ると、SIMD命令の個々のハーフワード演算に対応し
てオーバーフローが発生したことを示す結果をフラグで
保持できるようになり、SIMD命令を用いたプログラ
ムの仕様にも多様性を持たせることが容易に可能とな
る。したがって、より広い用途でSIMD命令が利用で
きるようになり、該マイクロプロセッサ1Bを用いれば
ソフトウェアを開発するためのツールを豊富に提供する
ことができる。
ると、SIMD命令の個々のハーフワード演算に対応し
てオーバーフローが発生したことを示す結果をフラグで
保持できるようになり、SIMD命令を用いたプログラ
ムの仕様にも多様性を持たせることが容易に可能とな
る。したがって、より広い用途でSIMD命令が利用で
きるようになり、該マイクロプロセッサ1Bを用いれば
ソフトウェアを開発するためのツールを豊富に提供する
ことができる。
【0161】図26は、この発明の実施の形態3に適用
されるADD2H命令の動作仕様を示す図である。
されるADD2H命令の動作仕様を示す図である。
【0162】(実施の形態4)図27は、この発明の実
施の形態4によるマイクロプロセッサの構成を示すブロ
ック図である。図27のマイクロプロセッサ1Cと図1
のマイクロプロセッサ1と比較し異なる点は、マイクロ
プロセッサ1Cがマイクロプロセッサ1の命令デコード
ユニット2に代替して命令デコードユニット2Cを備え
る点にある。マイクロプロセッサ1Cのその他の構成は
マイクロプロセッサ1のそれと同じであり説明は省略す
る。
施の形態4によるマイクロプロセッサの構成を示すブロ
ック図である。図27のマイクロプロセッサ1Cと図1
のマイクロプロセッサ1と比較し異なる点は、マイクロ
プロセッサ1Cがマイクロプロセッサ1の命令デコード
ユニット2に代替して命令デコードユニット2Cを備え
る点にある。マイクロプロセッサ1Cのその他の構成は
マイクロプロセッサ1のそれと同じであり説明は省略す
る。
【0163】命令デコードユニット2Cはデコーダ8お
よび9、該プロセッサの状態を示すPSW(Processor
Status Word の略)3を格納するPSW格納レジスタ1
0Cおよび演算部40を含む。演算部40は、後述する
ようにPSW3中の1つ以上フラグに関して所定の演算
処理を行なう。
よび9、該プロセッサの状態を示すPSW(Processor
Status Word の略)3を格納するPSW格納レジスタ1
0Cおよび演算部40を含む。演算部40は、後述する
ようにPSW3中の1つ以上フラグに関して所定の演算
処理を行なう。
【0164】実施の形態4では、メモリユニット3およ
び整数演算ユニット4のそれぞれが命令実行時に更新す
るPSW3の1つ以上フラグが演算部40により論理演
算されて、その論理演算結果を保持するフラグがPSW
3に設けられる。
び整数演算ユニット4のそれぞれが命令実行時に更新す
るPSW3の1つ以上フラグが演算部40により論理演
算されて、その論理演算結果を保持するフラグがPSW
3に設けられる。
【0165】図28は、この発明の実施の形態4に適用
されるPSW3の詳細内容を示す図である。
されるPSW3の詳細内容を示す図である。
【0166】PSW3は上位16ビットのフィールド2
30と下位16ビットのフィールド240を含む。PS
W3と図25のPSW2と比較し異なる点は、フィール
ド240の16〜23ビット目においてフィールド20
1〜204とフィールド241〜243が設けられた点
にある。その他の内容はPSW2と同じである。
30と下位16ビットのフィールド240を含む。PS
W3と図25のPSW2と比較し異なる点は、フィール
ド240の16〜23ビット目においてフィールド20
1〜204とフィールド241〜243が設けられた点
にある。その他の内容はPSW2と同じである。
【0167】図28に示されるようにフィールド240
にはフラグF4e、F5eおよびF6eを格納するフィ
ールド241〜243が新たに設けられ、フラグF0〜
F3を格納するフィールド201〜204が16ビット
〜19ビットへ移動される。
にはフラグF4e、F5eおよびF6eを格納するフィ
ールド241〜243が新たに設けられ、フラグF0〜
F3を格納するフィールド201〜204が16ビット
〜19ビットへ移動される。
【0168】フラグF4e、F5eおよびF6eは、前
述したフラグF5b、F5c、F5d、F6b、F6
c、F6d、F7b、F7cおよびF7dと同様に、フ
ラグIF=1のときのみ有効である。
述したフラグF5b、F5c、F5d、F6b、F6
c、F6d、F7b、F7cおよびF7dと同様に、フ
ラグIF=1のときのみ有効である。
【0169】フラグF4eは、飽和演算フラグF4aか
らF4dの値のXOR(排他的論理和)値が演算部40
により算出されて、この算出結果値を保持する。したが
って、フラグF4eの値を参照することで、直前に実行
された飽和演算命令で実際に飽和演算が行なわれた回数
が偶数回であるか奇数回であるかを容易に判定して、判
定結果に従う処理を行うことができる。
らF4dの値のXOR(排他的論理和)値が演算部40
により算出されて、この算出結果値を保持する。したが
って、フラグF4eの値を参照することで、直前に実行
された飽和演算命令で実際に飽和演算が行なわれた回数
が偶数回であるか奇数回であるかを容易に判定して、判
定結果に従う処理を行うことができる。
【0170】フラグF5eは、オーバーフローフラグF
5aからF5dとの演算部40によるOR(論理和)値
を保持する。したがってフラグF5eの値を参照するこ
とにより、直前に実行された1つ以上の演算のうちいず
れかでオーバーフローが発生したことを容易に知ること
ができる。
5aからF5dとの演算部40によるOR(論理和)値
を保持する。したがってフラグF5eの値を参照するこ
とにより、直前に実行された1つ以上の演算のうちいず
れかでオーバーフローが発生したことを容易に知ること
ができる。
【0171】フラグF6eは、累積オーバーフローフラ
グF6aからF6dの演算部40によるOR(論理和)
の値を保持する。したがってフラグF6eの値を参照す
ることにより、前回累積オーバーフローフラグF6aお
よびF6dがクリアされてから直前の命令実行までのい
ずれかのタイミングでオーバーフローが発生したことを
容易に知ることができる。
グF6aからF6dの演算部40によるOR(論理和)
の値を保持する。したがってフラグF6eの値を参照す
ることにより、前回累積オーバーフローフラグF6aお
よびF6dがクリアされてから直前の命令実行までのい
ずれかのタイミングでオーバーフローが発生したことを
容易に知ることができる。
【0172】上述したように、フラグF4e、F5eお
よびF6eを設けることにより、メモリユニット3およ
び整数演算ユニット4などの複数の演算ユニットを備え
たマイクロプロセッサ1Cにおいて実行される演算の包
括的な実行状況を特別な後処理をすることなく検知する
ことができるから、その分プログラムサイズを削減で
き、プログラム内容が簡単化されるという特徴がある。
よびF6eを設けることにより、メモリユニット3およ
び整数演算ユニット4などの複数の演算ユニットを備え
たマイクロプロセッサ1Cにおいて実行される演算の包
括的な実行状況を特別な後処理をすることなく検知する
ことができるから、その分プログラムサイズを削減で
き、プログラム内容が簡単化されるという特徴がある。
【0173】図29(A)と(B)はこの発明の実施の
形態4に適用される第2目的プログラムPR3を示す図
である。図示される第2目的プログラムPR3はマイク
ロプロセッサ1Cの演算においてオーバーフローを検出
した際にエラー処理用のルーチンに分岐するという処理
内容を示す。図29(A)はフラグF5eが採用される
場合であり、図29(B)はフラグF5eが採用されな
い場合を示す。図示されるように、演算におけるオーバ
ーフローの検出を行なう処理プログラムにおいては、フ
ラグF5eが採用される方が処理時間を短くすることが
できる。
形態4に適用される第2目的プログラムPR3を示す図
である。図示される第2目的プログラムPR3はマイク
ロプロセッサ1Cの演算においてオーバーフローを検出
した際にエラー処理用のルーチンに分岐するという処理
内容を示す。図29(A)はフラグF5eが採用される
場合であり、図29(B)はフラグF5eが採用されな
い場合を示す。図示されるように、演算におけるオーバ
ーフローの検出を行なう処理プログラムにおいては、フ
ラグF5eが採用される方が処理時間を短くすることが
できる。
【0174】なお、図29(A)および(B)において
フィールド105のコードCCの指定方法は以下のよう
に表記される。
フィールド105のコードCCの指定方法は以下のよう
に表記される。
【0175】 CC=000(無表記) 001/tx 010/fx 011/xt 100/xf 101/tt 110/xf (実施の形態5)実施の形態5では、実施の形態2のよ
うなマイクロプロセッサ1Aに適用されて、擬似命令を
マイクロプロセッサ1Aで実行され原始プログラムPR
1中で指定することでマイクロプロセッサ1Aの動作モ
ードを変更するような命令列を生成すると同時に、共有
フラグモード用のパッキングと個別フラグモード用のパ
ッキングを切換えることのできるアセンブラAS1が示
される。なお、ここでフラグ動作モードには共有フラグ
モードと個別フラグモードがあり、共有フラグモードと
はPSW1のフラグをメモリユニット3と整数演算ユニ
ット4間で共有するモードであり、個別モードとはPS
W1のフラグをメモリユニット3と整数演算ユニット4
とで個別に有するモードである。
うなマイクロプロセッサ1Aに適用されて、擬似命令を
マイクロプロセッサ1Aで実行され原始プログラムPR
1中で指定することでマイクロプロセッサ1Aの動作モ
ードを変更するような命令列を生成すると同時に、共有
フラグモード用のパッキングと個別フラグモード用のパ
ッキングを切換えることのできるアセンブラAS1が示
される。なお、ここでフラグ動作モードには共有フラグ
モードと個別フラグモードがあり、共有フラグモードと
はPSW1のフラグをメモリユニット3と整数演算ユニ
ット4間で共有するモードであり、個別モードとはPS
W1のフラグをメモリユニット3と整数演算ユニット4
とで個別に有するモードである。
【0176】実施の形態2に示されたハードウェア構成
を有するマイクロプロセッサ1Aでは、指定されている
フラグ動作モードとアセンブラによるパッキング方法と
の間で整合が取れている必要がある。そこで、本実施の
形態ではアセンブラASを拡張し、「フラグ動作モード
を変更する命令群を生成し、かつ、前述したパッキング
のための動作モードを同時に変更する」ようなマクロ命
令(擬似命令)が指定可能とされる。このように拡張さ
れたアセンブラを、以下拡張アセンブラAS1と呼ぶ。
を有するマイクロプロセッサ1Aでは、指定されている
フラグ動作モードとアセンブラによるパッキング方法と
の間で整合が取れている必要がある。そこで、本実施の
形態ではアセンブラASを拡張し、「フラグ動作モード
を変更する命令群を生成し、かつ、前述したパッキング
のための動作モードを同時に変更する」ようなマクロ命
令(擬似命令)が指定可能とされる。このように拡張さ
れたアセンブラを、以下拡張アセンブラAS1と呼ぶ。
【0177】このマクロ命令は、共有フラグモードに変
更する場合は“.mode shared_flag”
と、個別フラグモードに変更する場合は“.mode
dedicated_flag”と指定されて、拡張ア
センブラAS1によりそれぞれ、図17のPSW1中の
コードIFをクリア(0)またはセット(1)するため
の命令列に展開される。
更する場合は“.mode shared_flag”
と、個別フラグモードに変更する場合は“.mode
dedicated_flag”と指定されて、拡張ア
センブラAS1によりそれぞれ、図17のPSW1中の
コードIFをクリア(0)またはセット(1)するため
の命令列に展開される。
【0178】図30(A)と(B)は、この発明の実施
の形態5によるフラグ動作モード指定のためのマクロ命
令と、これを展開して得られる命令列を示す図である。
図30(A)には、共有フラグモード指定のためのマク
ロ命令と、これを展開して生成される命令列が示され、
図30(B)には個別フラグモード指定のためのマクロ
命令と、これを展開して生成される命令列が示される。
の形態5によるフラグ動作モード指定のためのマクロ命
令と、これを展開して得られる命令列を示す図である。
図30(A)には、共有フラグモード指定のためのマク
ロ命令と、これを展開して生成される命令列が示され、
図30(B)には個別フラグモード指定のためのマクロ
命令と、これを展開して生成される命令列が示される。
【0179】図30(A)、(B)を参照してもわかる
ように、これらマクロ命令が実行されることで汎用レジ
スタR1の内容が変更される。レジスタR1はアセンブ
ラの実行時オプションとして指定可能である。マイクロ
プロセッサ1Aで実行されるプログラムを作成する者
は、これらのマクロ命令を原始プログラムPR1にて使
用するにあたり、所定レジスタの内容が該マクロ命令で
書換えられることを承知しておく必要がある。
ように、これらマクロ命令が実行されることで汎用レジ
スタR1の内容が変更される。レジスタR1はアセンブ
ラの実行時オプションとして指定可能である。マイクロ
プロセッサ1Aで実行されるプログラムを作成する者
は、これらのマクロ命令を原始プログラムPR1にて使
用するにあたり、所定レジスタの内容が該マクロ命令で
書換えられることを承知しておく必要がある。
【0180】拡張アセンブラAS1は、これらのマクロ
命令を読込むと図30(A)と(B)に示された命令列
に展開すると同時に、パッキングのための動作モード
を、指定されたフラグ動作モードに適合したように変更
する。
命令を読込むと図30(A)と(B)に示された命令列
に展開すると同時に、パッキングのための動作モード
を、指定されたフラグ動作モードに適合したように変更
する。
【0181】図31〜図33は、この発明の実施の形態
5による拡張アセンブラAS1のパッキングのフローチ
ャートである。図31〜33のフローチャートにおいて
は、前述した図10〜図11の処理に、図30(A)と
(B)に示されたマクロ命令を読込み、命令列に展開し
て、フラグ動作モードを変更する処理(ST9、ST1
4A、ST15A、ST12A、ST13AおよびST
21A)が追加されている。その他の処理は図10〜図
11に示されたものと同じであるから説明は省略する。
5による拡張アセンブラAS1のパッキングのフローチ
ャートである。図31〜33のフローチャートにおいて
は、前述した図10〜図11の処理に、図30(A)と
(B)に示されたマクロ命令を読込み、命令列に展開し
て、フラグ動作モードを変更する処理(ST9、ST1
4A、ST15A、ST12A、ST13AおよびST
21A)が追加されている。その他の処理は図10〜図
11に示されたものと同じであるから説明は省略する。
【0182】図34はこの発明の実施の形態5に適用さ
れるマイクロプロセッサの命令表記と拡張アセンブラに
適用されるマクロ命令を用いてあるアルゴリズムの一部
を表現した例を示す図である。図35は図31〜図33
のフローチャートに従い図34の命令列をパッキングし
た例を示す図である。
れるマイクロプロセッサの命令表記と拡張アセンブラに
適用されるマクロ命令を用いてあるアルゴリズムの一部
を表現した例を示す図である。図35は図31〜図33
のフローチャートに従い図34の命令列をパッキングし
た例を示す図である。
【0183】図31のST15Aの処理では、フラグ動
作モード変更のマクロ命令が読込まれたことに応じて、
これが拡張アセンブラAS1により命令列に展開され
て、前述したようにPSW1中のコードIFが書換えら
れる。このとき、個別フラグモードが設定された場合は
(ST12AでNO)、アセンブラで効率よくパッキン
グするのは困難なので、本実施の形態では、パッキング
が指定されたコード、すなわち第2中間プログラムPR
3のコード(行)が読込まれなければエラーとして処理
し、一連の処理を終了している(ST13A)。共有モ
ードが設定された場合には、読込まれる命令について前
述した図10と図11と同様なパッキング処理が行なわ
れる。
作モード変更のマクロ命令が読込まれたことに応じて、
これが拡張アセンブラAS1により命令列に展開され
て、前述したようにPSW1中のコードIFが書換えら
れる。このとき、個別フラグモードが設定された場合は
(ST12AでNO)、アセンブラで効率よくパッキン
グするのは困難なので、本実施の形態では、パッキング
が指定されたコード、すなわち第2中間プログラムPR
3のコード(行)が読込まれなければエラーとして処理
し、一連の処理を終了している(ST13A)。共有モ
ードが設定された場合には、読込まれる命令について前
述した図10と図11と同様なパッキング処理が行なわ
れる。
【0184】前述した実施の形態2ではフラグ動作モー
ドがアセンブル時に確定しないのでプログラムのすべて
の命令コードを人手でパッキングすることが必要であ
る。これに対し、本実施の形態のように拡張アセンブラ
AS1を用いることで、プログラムの一部を自動的にパ
ッキングすることが可能となってプログラミングが簡便
になるという特徴が得られる。
ドがアセンブル時に確定しないのでプログラムのすべて
の命令コードを人手でパッキングすることが必要であ
る。これに対し、本実施の形態のように拡張アセンブラ
AS1を用いることで、プログラムの一部を自動的にパ
ッキングすることが可能となってプログラミングが簡便
になるという特徴が得られる。
【0185】本実施の形態では、フラグ動作モードを変
更するためのマクロ命令を展開して生成された命令列に
よるオーバヘッドのため、同一のフラグ動作モード(フ
ラグ動作モード変更なし)でプログラム実行した場合に
比較して実行命令数が多くなる。しかし、実際のプログ
ラムでは通常、フラグ動作モードをいずれか一方のモー
ドに固定したままで実行される命令数がマクロ命令を展
開して生成される命令列の命令数よりもはるかに多いで
あろうから、本実施の形態によるフラグ動作モードの切
換に起因するオーバヘッドは相対的に小さくなる。した
がって、本実施の形態5によれば前述した実施の形態2
と同様に、マイクロプロセッサ1Aで実行されるプログ
ラムの特徴に応じてフラグ動作モードを切換えることで
演算性能を向上させることが可能となる。
更するためのマクロ命令を展開して生成された命令列に
よるオーバヘッドのため、同一のフラグ動作モード(フ
ラグ動作モード変更なし)でプログラム実行した場合に
比較して実行命令数が多くなる。しかし、実際のプログ
ラムでは通常、フラグ動作モードをいずれか一方のモー
ドに固定したままで実行される命令数がマクロ命令を展
開して生成される命令列の命令数よりもはるかに多いで
あろうから、本実施の形態によるフラグ動作モードの切
換に起因するオーバヘッドは相対的に小さくなる。した
がって、本実施の形態5によれば前述した実施の形態2
と同様に、マイクロプロセッサ1Aで実行されるプログ
ラムの特徴に応じてフラグ動作モードを切換えることで
演算性能を向上させることが可能となる。
【0186】なお、今回開示された実施の形態は全ての
点で例示であって、制限的なものではないと考えられる
べきである。本発明の範囲は上記した説明ではなくて特
許請求の範囲によって示され、特許請求の範囲と均等の
意味および範囲内でのすべての変更が含まれることが意
図される。
点で例示であって、制限的なものではないと考えられる
べきである。本発明の範囲は上記した説明ではなくて特
許請求の範囲によって示され、特許請求の範囲と均等の
意味および範囲内でのすべての変更が含まれることが意
図される。
【0187】
【発明の効果】請求項1,2,7および11〜19に記
載の発明によれば、複数演算ユニット間で制御情報のア
クセスに関する競合を回避するために命令の実行順序を
スケジューリング調整することが不要となるから、従来
に比較して実質的に同時に実行できる命令数が増加、つ
まり実質的なスループットが高くなって、プログラムの
サイズも削減する。
載の発明によれば、複数演算ユニット間で制御情報のア
クセスに関する競合を回避するために命令の実行順序を
スケジューリング調整することが不要となるから、従来
に比較して実質的に同時に実行できる命令数が増加、つ
まり実質的なスループットが高くなって、プログラムの
サイズも削減する。
【0188】請求項3に記載の発明によれば、レジスタ
中の制御情報に関して複数の演算ユニットで共用してア
クセスされる共用モードと複数演算ユニット毎に制御情
報を有して個別にアクセスする個別モードを情報処理装
置において実行されるプログラムの特徴に従って選択的
に設定できるから、プログラムの特徴に従うモードで演
算性能を向上させることができるとともに、プログラム
の仕様に多様性を持たせることができる。
中の制御情報に関して複数の演算ユニットで共用してア
クセスされる共用モードと複数演算ユニット毎に制御情
報を有して個別にアクセスする個別モードを情報処理装
置において実行されるプログラムの特徴に従って選択的
に設定できるから、プログラムの特徴に従うモードで演
算性能を向上させることができるとともに、プログラム
の仕様に多様性を持たせることができる。
【0189】請求項4および8に記載の発明によれば、
情報処理装置においては上位ハーフワードに対する所定
演算および下位ハーフワードに対する所定演算を同時に
指示する命令が複数演算ユニットのいずれで実行される
場合にも、レジスタ中の制御情報アクセスに関する複数
演算ユニット間の競合は回避されて、より広い用途で、
このような命令が利用できるからソフトウェアの開発ツ
ールに多様性を持たせることが可能となる。
情報処理装置においては上位ハーフワードに対する所定
演算および下位ハーフワードに対する所定演算を同時に
指示する命令が複数演算ユニットのいずれで実行される
場合にも、レジスタ中の制御情報アクセスに関する複数
演算ユニット間の競合は回避されて、より広い用途で、
このような命令が利用できるからソフトウェアの開発ツ
ールに多様性を持たせることが可能となる。
【0190】請求項5および9に記載の発明によれば、
情報処理装置においてプログラムの複数命令のそれぞれ
が複数演算ユニットのいずれを用いて実行されるかを、
該プログラムのアセンブル時に決定することができる。
情報処理装置においてプログラムの複数命令のそれぞれ
が複数演算ユニットのいずれを用いて実行されるかを、
該プログラムのアセンブル時に決定することができる。
【0191】請求項6および10に記載の発明によれ
ば、情報処理装置において特定演算ユニットが複数の演
算ユニットによりアクセスされる制御情報を所定演算処
理して、その結果値を制御情報としてレジスタに書込
む。それゆえに、該情報処理装置における演算の包括的
な状況を、レジスタ内容を参照するだけで特別な後処理
をすることなく知ることができ、プログラムのサイズが
削減されるとともに、プログラムが簡単化される。
ば、情報処理装置において特定演算ユニットが複数の演
算ユニットによりアクセスされる制御情報を所定演算処
理して、その結果値を制御情報としてレジスタに書込
む。それゆえに、該情報処理装置における演算の包括的
な状況を、レジスタ内容を参照するだけで特別な後処理
をすることなく知ることができ、プログラムのサイズが
削減されるとともに、プログラムが簡単化される。
【図1】 この発明の実施の形態1によるマイクロプロ
セッサの構成を示すブロック図である。
セッサの構成を示すブロック図である。
【図2】 (A)と(B)は、図1のマイクロプロセッ
サに適用される命令フォーマットを示す図である。
サに適用される命令フォーマットを示す図である。
【図3】 (A)〜(I)は、図2(A)と(B)の演
算フィールド106〜110の詳細な内容を示す図であ
る。
算フィールド106〜110の詳細な内容を示す図であ
る。
【図4】 (A)〜(C)は、図1のマイクロプロセッ
サの各種レジスタ群の構成を示す図である。
サの各種レジスタ群の構成を示す図である。
【図5】 この発明の実施の形態1に適用されるPSW
の詳細内容を示す図である。
の詳細内容を示す図である。
【図6】 この発明の実施の形態1のマイクロプロセッ
サにおける演算命令の実行例を示す図である。
サにおける演算命令の実行例を示す図である。
【図7】 この発明の実施の形態1のマイクロプロセッ
サの命令表記を用いて表現されたあるアルゴリズムの一
部を示す図である。
サの命令表記を用いて表現されたあるアルゴリズムの一
部を示す図である。
【図8】 この発明の実施の形態1においてマイクロプ
ロセッサ1にロードされるプログラムを作成するハード
ウェア環境を示す図である。
ロセッサ1にロードされるプログラムを作成するハード
ウェア環境を示す図である。
【図9】 この発明の実施の形態1においてマイクロプ
ロセッサ1にロードされるプログラムを作成する手順を
示す図である。
ロセッサ1にロードされるプログラムを作成する手順を
示す図である。
【図10】 この発明の実施の形態1によるアセンブラ
ASの図1のハードウェア構成に対応したパッキングの
フローチャートである。
ASの図1のハードウェア構成に対応したパッキングの
フローチャートである。
【図11】 この発明の実施の形態1によるアセンブラ
ASの図1のハードウェア構成に対応したパッキングの
フローチャートである。
ASの図1のハードウェア構成に対応したパッキングの
フローチャートである。
【図12】 図7の第1中間プログラムPR2を入力デ
ータとして図10および図11のフローチャートに従い
パッキングされた結果である第2中間プログラムPR3
を示す図である。
ータとして図10および図11のフローチャートに従い
パッキングされた結果である第2中間プログラムPR3
を示す図である。
【図13】 フラグの書込優先が設定されなかった場合
のハードウェア構成に対応するパッキングのフローチャ
ートである。
のハードウェア構成に対応するパッキングのフローチャ
ートである。
【図14】 フラグの書込優先が設定されなかった場合
のハードウェア構成に対応するパッキングのフローチャ
ートである。
のハードウェア構成に対応するパッキングのフローチャ
ートである。
【図15】 図7の第1中間プログラムPR2を図13
と図14のフローチャートに従いパッキングした結果を
示す図である。
と図14のフローチャートに従いパッキングした結果を
示す図である。
【図16】 この発明の実施の形態2によるマイクロプ
ロセッサの構成を示すブロック図である。
ロセッサの構成を示すブロック図である。
【図17】 本発明の実施の形態2に適用されるPSW
1の詳細内容を示す図である。
1の詳細内容を示す図である。
【図18】 本実施の形態2のマイクロプロセッサ1A
の命令表記を用いてあるアルゴリズムの一部を表現した
例を示す図である。
の命令表記を用いてあるアルゴリズムの一部を表現した
例を示す図である。
【図19】 図18の命令列が最短の時間で実行される
場合のメモリユニット3と整数演算ユニット4で実行さ
れる命令列を示す図である。
場合のメモリユニット3と整数演算ユニット4で実行さ
れる命令列を示す図である。
【図20】 図18の命令列が最短の時間で実行される
場合の、メモリユニット3と整数演算ユニット4で実行
される命令列を示す図である。
場合の、メモリユニット3と整数演算ユニット4で実行
される命令列を示す図である。
【図21】 本実施の形態2のマイクロプロセッサ1A
の命令表記を用いて他のアルゴリズムの一部を実現した
例を示す図である。
の命令表記を用いて他のアルゴリズムの一部を実現した
例を示す図である。
【図22】 図21で示された命令列が最短時間で実行
される場合のメモリユニット3と整数演算ユニット4で
実行される命令を時系列で示した図である。
される場合のメモリユニット3と整数演算ユニット4で
実行される命令を時系列で示した図である。
【図23】 図21で示された命令列が最短時間で実行
される場合のメモリユニット3と整数演算ユニット4で
実行される命令を時系列で示した図である。
される場合のメモリユニット3と整数演算ユニット4で
実行される命令を時系列で示した図である。
【図24】 この発明の実施の形態3によるマイクロプ
ロセッサの構成を示すブロック図である。
ロセッサの構成を示すブロック図である。
【図25】 この発明の実施の形態3に適用されるPS
W2の詳細内容を示す図である。
W2の詳細内容を示す図である。
【図26】 この発明の実施の形態3に適用されるAD
D2H命令の動作仕様を示す図である。
D2H命令の動作仕様を示す図である。
【図27】 この発明の実施の形態4によるマイクロプ
ロセッサの構成を示すブロック図である。
ロセッサの構成を示すブロック図である。
【図28】 この発明の実施の形態4に適用されるPS
W3の詳細内容を示す図である。
W3の詳細内容を示す図である。
【図29】 (A)と(B)はこの発明の実施の形態4
に適用される第2目的プログラムPR3を示す図であ
る。
に適用される第2目的プログラムPR3を示す図であ
る。
【図30】 (A)と(B)はこの発明の実施の形態5
によるフラグ動作モード指定のためのマクロ命令と、こ
れを展開して得られる命令列を示す図である。
によるフラグ動作モード指定のためのマクロ命令と、こ
れを展開して得られる命令列を示す図である。
【図31】 この発明の実施の形態5による拡張アセン
ブラのパッキングのフローチャートである。
ブラのパッキングのフローチャートである。
【図32】 この発明の実施の形態5による拡張アセン
ブラのパッキングのフローチャートである。
ブラのパッキングのフローチャートである。
【図33】 この発明の実施の形態5による拡張アセン
ブラのパッキングのフローチャートである。
ブラのパッキングのフローチャートである。
【図34】 この発明の実施の形態5に適用されるマイ
クロプロセッサの命令表記と拡張アセンブラに適用され
るマクロ命令を用いてあるアルゴリズムの一部を表現し
た例を示す図である。
クロプロセッサの命令表記と拡張アセンブラに適用され
るマクロ命令を用いてあるアルゴリズムの一部を表現し
た例を示す図である。
【図35】 図31〜図33のフローチャートに従い図
34の命令列をパッキングした例を示す図である。
34の命令列をパッキングした例を示す図である。
1、1A、1Bおよび1C マイクロプロセッサ、2、
2A、2Bおよび2C命令デコードユニット、3 メモ
リユニット、4 整数演算ユニット、10、10A、1
0Bおよび10C PSW格納レジスタ、15および1
9 ALU、16および20 シフタ、17 乗算器、
ASおよびAS1 アセンブラ。なお各図中同一符号は
同一または相当部分を示す。
2A、2Bおよび2C命令デコードユニット、3 メモ
リユニット、4 整数演算ユニット、10、10A、1
0Bおよび10C PSW格納レジスタ、15および1
9 ALU、16および20 シフタ、17 乗算器、
ASおよびAS1 アセンブラ。なお各図中同一符号は
同一または相当部分を示す。
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B013 DD02 DD04 5B033 AA01 AA14 BD01 BE05 DD05 5B045 EE13 GG15 5B081 AA07 CC25 CC41
Claims (19)
- 【請求項1】 複数の演算ユニットを有し、プログラム
中の複数命令が前記複数演算ユニットを用いて並列に実
行される際に、前記複数命令のそれぞれは前記複数演算
ユニットのいずれを用いて実行されるかが予め決定され
る情報処理装置であって、 前記プログラムの実行制御に関して前記複数演算ユニッ
トに共用される制御情報が格納されて、前記複数演算ユ
ニットにより共用してアクセスされるレジスタをさらに
有し、 前記複数命令が並列に実行されるときに前記複数演算ユ
ニットにより前記レジスタの内容が同時にアクセスされ
ようとする場合には、前記複数演算ユニット間で前記制
御情報のアクセスに関する優先順位が定められることを
特徴とする、情報処理装置。 - 【請求項2】 前記レジスタには前記複数演算ユニット
のそれぞれについて個別に設けられた前記プログラムの
実行制御に関する前記制御情報がさらに格納され、 前記複数命令が並列に実行されるときに前記複数演算ユ
ニットにより前記レジスタの内容が同時にアクセスされ
ようとする場合には、 前記複数演算ユニット間で予め定められた優先順位に従
い共用される前記制御情報がアクセスされる共用モード
と、個別に設けられた前記制御情報のそれぞれが対応す
る前記演算ユニットによりアクセスされる個別モードと
のいずれか一方が選択的に設定されることを特徴とす
る、請求項1に記載の情報処理装置。 - 【請求項3】 前記プログラムの特徴に従って、前記共
用モードと前記個別モードとのいずれか一方が選択され
ることを特徴とする、請求項2に記載の情報処理装置。 - 【請求項4】 前記複数の命令には、上位ハーフワード
に対する所定演算および下位ハーフワードに対する前記
所定演算を同時に指示する命令が含まれ、 前記制御情報には、前記上位および下位ハーフワードに
対する前記所定演算のそれぞれについて、該所定演算の
状態を示すための1つ以上のフラグ情報が含まれること
を特徴とする、請求項1ないし3のいずれかに記載の情
報処理装置。 - 【請求項5】 前記複数命令のそれぞれが前記複数演算
ユニットのいずれを用いて実行されるかは前記プログラ
ムのアセンブル時に決定されることを特徴とする、請求
項1ないし4に記載の情報処理装置。 - 【請求項6】 前記情報処理装置は、前記複数演算ユニ
ットとは異なる特定演算ユニットをさらに含み、 前記特定演算ユニットは、前記制御情報を所定演算処理
して、その結果値を前記制御情報として前記レジスタに
書込むことを特徴とする、請求項1ないし5のいずれか
に記載の情報処理装置。 - 【請求項7】 複数の演算ユニットを有し、プログラム
中の複数命令が前記複数演算ユニットを用いて並列に実
行される際に、前記複数命令のそれぞれは前記複数演算
ユニットのいずれを用いて実行されるかが予め決定され
る情報処理装置であって、 前記演算ユニットごとに設けられた前記プログラムの実
行制御に関する個別制御情報が格納されて、前記複数演
算ユニットにより共用してアクセスされるレジスタをさ
らに有し、 前記複数命令が並列に実行されるときに前記複数演算ユ
ニットにより前記レジスタの内容が同時にアクセスされ
ようとする場合には、前記個別制御情報のそれぞれが対
応する前記演算ユニットにより個別にアクセスされるこ
とを特徴とする、情報処理装置。 - 【請求項8】 前記複数の命令には、上位ハーフワード
に対する所定演算および下位ハーフワードに対する前記
所定演算を同時に指示する命令が含まれ、 前記個別制御情報には、前記上位および下位ハーフワー
ドに対する前記所定演算のそれぞれについて、該所定演
算の状態を示すための1つ以上のフラグ情報が含まれる
ことを特徴とする、請求項7に記載の情報処理装置。 - 【請求項9】 前記複数命令のそれぞれが前記複数演算
ユニットのいずれを用いて実行されるかは前記プログラ
ムのアセンブル時に決定されることを特徴とする、請求
項7または8に記載の情報処理装置。 - 【請求項10】 前記情報処理装置は、前記複数演算ユ
ニットとは異なる特定演算ユニットをさらに含み、 前記特定演算ユニットは、前記個別制御情報を所定演算
処理して、その結果値を前記個別制御情報として書込む
ことを特徴とする、請求項7ないし9のいずれかに記載
の情報処理装置。 - 【請求項11】 複数の演算ユニットを有して、プログ
ラム中の複数命令が格納される前記複数演算ユニットに
対応した複数フィールドを有するパケットを前記複数演
算ユニットを用いて処理することにより、前記プログラ
ムを実行する情報処理装置のために、前記複数命令のそ
れぞれが前記複数演算ユニットのいずれを用いて実行さ
れるかを予め決定するための命令割当て制御方法であっ
て、 前記情報処理装置は、前記プログラムの実行制御に関す
る制御情報が格納されて前記複数演算ユニットにより共
用してアクセスされるレジスタをさらに有し、 前記命令割当て制御方法は、 前記プログラムから前記命令を順に読込む読込ステップ
と、 前記読込ステップにより読込まれた前記命令を、前記パ
ケットのいずれかのフィールドに割当てて格納する格納
ステップとを有し、 前記格納ステップは、 前記読込ステップにより読込まれる次位の前記命令と、
前記パケットに既に格納された先行する前記命令とが並
列に実行された場合に、前記レジスタの内容が同時にア
クセスされるか否か判定する同時アクセス判定ステップ
と、 前記同時アクセス判定ステップにより同時アクセスされ
ると判定されたことに応じて、前記先行命令と前記次位
命令とを所定優先順位に従って同一の前記パケット中の
前記複数フィールドに割当てることが可能か否か判定す
る割当判定ステップと、 前記割当判定ステップの割当可の判定に応じて、前記先
行命令および前記次位命令をパラレルに実行されるよう
に同一の前記パケット中の前記複数フィールドにそれぞ
れ割当て、割当不可の判定に応じて、前記先行命令およ
び前記次位命令をシリアルに実行されるように同一の前
記パケット中の前記複数フィールドにそれぞれに割当て
る割当ステップとを含み、 前記所定優先順位は、前記制御情報のアクセスに関する
前記複数演算ユニット間における優先順位であることを
特徴とする、命令割当て制御方法。 - 【請求項12】 前記レジスタは共有モードおよび個別
モードのいずれか一方の動作モードに設定されて、共有
モード時は前記プログラムの実行制御に関して前記複数
演算ユニットに共用される前記制御情報が格納され、個
別モード時は前記複数演算ユニットのそれぞれについて
個別に設けられた前記制御情報が格納され、 前記命令割当て制御方法は、 前記読込ステップにより読込まれた前記命令が前記動作
モードの変更を指示するモード変更命令であるときは、
該命令に従い前記レジスタの動作モードを設定するモー
ド設定ステップと、 前記モード設定ステップにより前記個別モードに設定さ
れた場合は、前記読込ステップにより読込まれた前記命
令について所定処理を実行する所定処理ステップと、 前記モード設定ステップにより前記共有モードに設定さ
れた場合には、前記読込ステップにより読込まれた前記
命令について前記格納ステップを実行するステップとを
さらに備える、請求項11に記載の命令割当て制御方
法。 - 【請求項13】 前記命令割当て制御方法は、前記プロ
グラムの実行前のアセンブル時に適用されることを特徴
とする、請求項11または12に記載の命令割当て制御
方法。 - 【請求項14】 複数の演算ユニットを有して、プログ
ラム中の複数命令が格納される前記複数演算ユニットに
対応した複数フィールドを有するパケットを前記複数演
算ユニットを用いて処理することにより、前記プログラ
ムを実行する情報処理装置のために、前記複数命令のそ
れぞれが前記複数演算ユニットのいずれを用いて実行さ
れるかを予め決定するための命令割当て制御装置であっ
て、 前記情報処理装置は、前記プログラムの実行制御に関す
る制御情報が格納され前記複数演算ユニットにより共用
してアクセスされるレジスタをさらに有し、 前記命令割当て制御装置は、 前記プログラムから前記命令を順に読込む読込手段と、 前記読込手段により読込まれた前記命令を、前記パケッ
トのいずれかのフィールドに割当てて格納する格納手段
とを有し、 前記格納手段は、 前記読込手段により読込まれる次位の前記命令と、前記
パケットに既に格納された先行する前記命令とが並列に
実行された場合に、前記レジスタの内容が同時にアクセ
スされるか否か判定する同時アクセス判定手段と、 前記同時アクセス判定手段により同時アクセスされると
判定されたことに応じて、前記先行命令と前記次位命令
とを所定優先順位に従って同一の前記パケット中の前記
複数フィールドに割当てることが可能か否か判定する割
当判定手段と、 前記割当判定手段の割当可の判定に応じて、前記先行命
令および前記次位命令をパラレルに実行されるように同
一の前記パケット中の前記複数フィールドにそれぞれ割
当て、割当不可の判定に応じて、前記先行命令および前
記次位命令をシリアルに実行されるように同一の前記パ
ケット中の前記複数フィールドにそれぞれ割当てる割当
手段とを含み、 前記所定優先順位は、前記制御情報のアクセスに関する
前記複数演算ユニット間における優先順位であることを
特徴とする、命令割当て制御装置。 - 【請求項15】 前記レジスタは共有モードおよび個別
モードのいずれか一方の動作モードに設定されて、共有
モード時は前記複数演算ユニットに共用される前記制御
情報が格納され、個別モード時は前記複数演算ユニット
のそれぞれについて個別に設けられた前記制御情報が格
納され、 前記命令割当て制御装置は、 前記読込手段により読込まれた前記命令が前記動作モー
ドの変更を指示するモード変更命令であるときは、該命
令に従い前記レジスタの動作モードを設定するモード設
定手段と、 前記モード設定手段により前記個別モードに設定された
場合には、前記読込手段により読込まれた前記命令につ
いて所定処理を実行する所定処理手段と、 前記モード設定手段により前記共有モードに設定された
場合には、前記読込手段により読込まれた前記命令につ
いて前記格納手段を実行する手段をさらに備える、請求
項14に記載の命令割当て制御装置。 - 【請求項16】 前記命令割当て制御装置は前記プログ
ラムを実行形式にするためのアセンブラに適用されるこ
とを特徴とする、請求項14または15に記載の命令割
当て制御装置。 - 【請求項17】 複数の演算ユニットを有して、所定プ
ログラム中の複数命令が格納される前記複数演算ユニッ
トに対応した複数フィールドを有するパケットを前記複
数演算ユニットを用いてを処理することにより、前記複
数命令を並列に実行する情報処理装置のために、前記複
数命令のそれぞれが前記複数演算ユニットのいずれを用
いて実行されるかを予め決定するための命令割当て制御
方法をコンピュータに実行させるための命令割当て制御
プログラムを記録したコンピュータで読取り可能な記録
媒体であって、 前記情報処理装置は、前記所定プログラムの実行制御に
関する制御情報が格納されて前記複数演算ユニットによ
り共用してアクセスされるレジスタをさらに有し、 前記命令割当て制御方法は 前記所定プログラムから前記命令を順に読込む読込ステ
ップと、 前記読込ステップにより読込まれた前記命令を前記パケ
ットのいずれかのフィールドに割当てて格納する格納ス
テップとを有し、 前記格納ステップは、 前記読込ステップにより読込まれる次位の前記命令と、
前記パケットに既に格納された先行する前記命令とが並
列に実行された場合に、前記レジスタの内容がが同時に
アクセスされるか否か判定する同時アクセス判定ステッ
プと、 前記同時アクセス判定ステップにより同時アクセスされ
ると判定されたことに応じて、前記先行命令と前記次位
命令とを所定優先順位に従って同一の前記パケット中の
前記複数フィールドにそれぞれ割当てることが可能か否
か判定する割当判定ステップと、 前記割当判定ステップの割当可の判定に応じて、前記先
行命令および前記次位命令をパラレル実行されるように
同一の前記パケット中の前記複数フィールドにそれぞれ
割り当てて、割当不可の判定に応じて、前記先行命令お
よび前記次位命令をシリアルに実行されるように同一の
前記パケット中の前記複数フィールドにそれぞれ割当て
る割当ステップとを含み、 前記所定優先順位は、前記制御情報のアクセスに関する
前記複数演算ユニット間における優先順位であることを
特徴とする、命令割当て制御プログラムを記録したコン
ピュータで読取り可能な記録媒体。 - 【請求項18】 前記レジスタは共有モードおよび個別
モードのいずれか一方の動作モードに設定されて、前記
共有モード時は前記複数演算ユニットに共用される前記
制御情報が格納され、前記個別モード時は前記複数演算
ユニットのそれぞれについて個別に設けられた前記制御
情報が格納され、 前記命令割当て制御方法は、 前記読込ステップにより読込まれた前記命令が前記動作
モードの変更を指定するモード変更命令であるときは、
該命令に従い前記レジスタの動作モードを設定するモー
ド設定ステップと、 前記モード設定ステップにより前記個別モードに設定さ
れた場合には、前記読込ステップにより読込まれた前記
命令について所定処理を実行する所定処理ステップと、 前記モード設定ステップにより前記共有モードに設定さ
れた場合には、前記読込ステップにより読込まれた前記
命令について前記格納ステップを実行するステップとを
さらに備える、請求項17に記載の命令割当て制御プロ
グラムを記録したコンピュータで読取り可能な記録媒
体。 - 【請求項19】 前記命令割当て制御方法は、前記所定
プログラムの実行前のアセンブル時に適用されることを
特徴とする、請求項17または18に記載の命令割当て
制御プログラムを記録したコンピュータで読取り可能な
記録媒体。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11023151A JP2000222208A (ja) | 1999-01-29 | 1999-01-29 | 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 |
| US09/362,564 US6550000B1 (en) | 1999-01-29 | 1999-07-28 | Processor to execute in parallel plurality of instructions using plurality of functional units, and instruction allocation controller |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11023151A JP2000222208A (ja) | 1999-01-29 | 1999-01-29 | 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000222208A true JP2000222208A (ja) | 2000-08-11 |
Family
ID=12102592
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP11023151A Withdrawn JP2000222208A (ja) | 1999-01-29 | 1999-01-29 | 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6550000B1 (ja) |
| JP (1) | JP2000222208A (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007172400A (ja) * | 2005-12-22 | 2007-07-05 | Sanyo Electric Co Ltd | 処理装置 |
| JP2010231321A (ja) * | 2009-03-26 | 2010-10-14 | Seiko Epson Corp | 情報処理装置、演算処理方法及び電子機器 |
| JP2011517493A (ja) * | 2008-03-11 | 2011-06-09 | クゥアルコム・インコーポレイテッド | 実行された命令の結果を選択的にコミットするためのシステムおよび方法 |
| US8745359B2 (en) | 2008-02-26 | 2014-06-03 | Nec Corporation | Processor for concurrently executing plural instruction streams |
| JP2018532200A (ja) * | 2015-12-04 | 2018-11-01 | グーグル エルエルシー | 画像プロセッサ用多機能実行レーン |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7107471B2 (en) * | 2001-03-21 | 2006-09-12 | Apple Computer, Inc. | Method and apparatus for saving power in pipelined processors |
| US7392368B2 (en) * | 2002-08-09 | 2008-06-24 | Marvell International Ltd. | Cross multiply and add instruction and multiply and subtract instruction SIMD execution on real and imaginary components of a plurality of complex data elements |
| WO2004015563A1 (en) * | 2002-08-09 | 2004-02-19 | Intel Corporation | Multimedia coprocessor control mechanism including alignment or broadcast instructions |
| US6986023B2 (en) * | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
| US7490118B1 (en) * | 2003-11-07 | 2009-02-10 | Liontech Trains Llc | Expanding instruction set using alternate error byte |
| US7398347B1 (en) * | 2004-07-14 | 2008-07-08 | Altera Corporation | Methods and apparatus for dynamic instruction controlled reconfigurable register file |
| US7326342B2 (en) | 2004-09-13 | 2008-02-05 | Baldwin Filters, Inc. | Fuel filter cartridge and keyed end cap |
| US8863105B2 (en) * | 2008-11-28 | 2014-10-14 | Siemens Aktiengesellschaft | Automatic control system and method for executing control program in parallel |
| US8230410B2 (en) * | 2009-10-26 | 2012-07-24 | International Business Machines Corporation | Utilizing a bidding model in a microparallel processor architecture to allocate additional registers and execution units for short to intermediate stretches of code identified as opportunities for microparallelization |
| CN104035898B (zh) * | 2014-06-04 | 2018-01-05 | 同济大学 | 一种基于vliw类型处理器的访存系统 |
| US10180829B2 (en) * | 2015-12-15 | 2019-01-15 | Nxp Usa, Inc. | System and method for modulo addressing vectorization with invariant code motion |
| US10990389B2 (en) * | 2019-04-29 | 2021-04-27 | Micron Technology, Inc. | Bit string operations using a computing tile |
Family Cites Families (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH0740221B2 (ja) | 1986-10-22 | 1995-05-01 | 株式会社東芝 | 浮動小数点表現数値の符号判定装置 |
| JPS6426222A (en) | 1987-07-22 | 1989-01-27 | Mitsubishi Electric Corp | Arithmetic circuit with flag detecting function |
| JPH0212426A (ja) | 1988-06-30 | 1990-01-17 | Nec Corp | 中央演算処理装置 |
| JP2507638B2 (ja) | 1989-12-01 | 1996-06-12 | 三菱電機株式会社 | デ―タ処理装置 |
| US5345567A (en) * | 1991-06-10 | 1994-09-06 | International Business Machines Corporation | System and method for modifying program status word system mask, system access key, and address space code with overlap enabled |
| US5392397A (en) * | 1992-03-30 | 1995-02-21 | International Business Machines Corporation | Command execution system for using first and second commands to reserve and store second command related status information in memory portion respectively |
| JPH0784758A (ja) | 1994-07-15 | 1995-03-31 | Hitachi Ltd | 演算処理装置 |
| US5664156A (en) * | 1994-09-16 | 1997-09-02 | Philips Electronics North America Corporation | Microcontroller with a reconfigurable program status word |
| US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
-
1999
- 1999-01-29 JP JP11023151A patent/JP2000222208A/ja not_active Withdrawn
- 1999-07-28 US US09/362,564 patent/US6550000B1/en not_active Expired - Fee Related
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007172400A (ja) * | 2005-12-22 | 2007-07-05 | Sanyo Electric Co Ltd | 処理装置 |
| US8745359B2 (en) | 2008-02-26 | 2014-06-03 | Nec Corporation | Processor for concurrently executing plural instruction streams |
| JP2011517493A (ja) * | 2008-03-11 | 2011-06-09 | クゥアルコム・インコーポレイテッド | 実行された命令の結果を選択的にコミットするためのシステムおよび方法 |
| JP2010231321A (ja) * | 2009-03-26 | 2010-10-14 | Seiko Epson Corp | 情報処理装置、演算処理方法及び電子機器 |
| US8843542B2 (en) | 2009-03-26 | 2014-09-23 | Seiko Epson Corporation | Information processing device, arithmetic processing method, and electronic apparatus |
| JP2018532200A (ja) * | 2015-12-04 | 2018-11-01 | グーグル エルエルシー | 画像プロセッサ用多機能実行レーン |
Also Published As
| Publication number | Publication date |
|---|---|
| US6550000B1 (en) | 2003-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7487338B2 (en) | Data processor for modifying and executing operation of instruction code according to the indication of other instruction code | |
| JP3745039B2 (ja) | 遅延命令を有するマイクロプロセッサ | |
| KR100325658B1 (ko) | 프로세서 | |
| JP2000222208A (ja) | 情報処理装置、命令割当て制御方法、命令割当て制御装置および命令割当て制御プログラムを記録したコンピュータで読取り可能な記録媒体 | |
| US8601239B2 (en) | Extended register addressing using prefix instruction | |
| TWI578231B (zh) | 用以提供原子範圍運算的指令及邏輯 | |
| EP1267256A2 (en) | Conditional execution of instructions with multiple destinations | |
| JP2902402B2 (ja) | データ処理装置 | |
| JPWO1996029646A1 (ja) | プロセッサ | |
| JPH11224194A (ja) | データ処理装置 | |
| JP2006004042A (ja) | データ処理装置 | |
| JP5209609B2 (ja) | ハードウェアエンドループ情報の命令へのコード化 | |
| KR20050010800A (ko) | 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치 | |
| JPH0766324B2 (ja) | データ処理装置 | |
| JPH1049368A (ja) | 条件実行命令を有するマイクロプロセッサ | |
| CN110073332B (zh) | 数据处理装置和方法 | |
| JPH10105402A (ja) | パイプライン方式のプロセッサ | |
| US6195740B1 (en) | Constant reconstructing processor that execute an instruction using an operand divided between instructions | |
| JP3789583B2 (ja) | データ処理装置 | |
| US6253305B1 (en) | Microprocessor for supporting reduction of program codes in size | |
| US6209080B1 (en) | Constant reconstruction processor that supports reductions in code size and processing time | |
| JP3727395B2 (ja) | マイクロコンピュータ | |
| JP2000207210A (ja) | マイクロプロセッサ | |
| GB2380283A (en) | A processing arrangement comprising a special purpose and a general purpose processing unit and means for supplying an instruction to cooperate to these units | |
| JP7383390B2 (ja) | 情報処理ユニット、情報処理装置、情報処理方法及びプログラム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060404 |