(57)【要約】メモリとレジスタファイルとの間において生じる遅延を削減して、高い動作周波数で動作可能なプロセッサを提供する。  プロセッサ１００は、複数のレジスタを有するレジスタファイル１１０と、データの属性を示すタグ値を生成するタグ値生成回路１０２とを備え、各レジスタは、データを保持するデータフィールド１１２と、タグ値を保持するタグフィールド１１１とを有し、タグ値生成回路１０２は、メモリ１４からレジスタファイル１１０のレジスタにデータをロードするロード命令の実行時に、そのロード命令に基づいてタグ値を生成してタグフィールド１１１に格納する。【特許請求の範囲】
【請求項１】
複数のレジスタを有するレジスタファイルと、
データの属性を示すタグ値を生成する生成手段と
を備え、
前記各レジスタは、データを保持するデータフィールドと、前記タグ値を保持するタグフィールドとを有し、
前記生成手段は、メモリからレジスタにロードするロード命令の実行時に、前記ロード命令に基づいて前記タグ値を生成して前記タグフィールドに格納する
ことを特徴とするプロセッサ。
【請求項２】
前記データフィールドは、前記メモリから前記レジスタにデータをロードするロード命令の実行により前記メモリから出力されたデータをそのまま保持する
ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記生成手段は、前記ロード命令で指定されたアドレスとデータサイズとデータタイプとに基づいて前記タグ値を生成し、
前記データタイプは、転送すべきデータが符号付きデータであるか符号なしデータであるかを示す
こと特徴とする請求項２に記載のプロセッサ。
【請求項４】
前記プロセッサは、さらに、
前記レジスタのデータフィールドに保持されたデータを、前記タグ値に応じて変換する変換手段を備える
ことを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記変換手段は、前記タグ値に応じて、前記レジスタのデータフィールドに保持されたデータに対してゼロ拡張又は符号拡張を行う
ことを特徴とする請求項４に記載のプロセッサ。
【請求項６】
前記変換手段は、レジスタを読み出す命令の実行時に前記変換を行う
ことを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記変換手段は、命令によるレジスタ読み書きが発生しない空きサイクルで前記変換を行い、変換結果に従ってタグフィールドおよびデータフィールドを更新する
ことを特徴とする請求項５に記載のプロセッサ。
【請求項８】
前記変換手段は、前記レジスタのデータフィールドに保持されたデータをメモリに格納するストア命令の実行時に変換を行う
ことを特徴とする請求項４に記載のプロセッサ。
【請求項９】
前記プロセッサは、さらに、
前記変換手段により変換されたデータを、前記タグ値に応じた書き込み処理によってメモリに書き込む書き込み処理部を有する
ことを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
前記プロセッサは、前記データフィールドよりも大きいサイズのデータをメモリから読み出すロード命令実行時に、メモリから読み出したデータを分割し、分割したデータを２つ以上のデータフィールドに格納する
ことを特徴とする請求項２に記載のプロセッサ。
【請求項１１】
前記生成手段は、
前記分割したデータの分割数が含まれるタグ値をタグフィールドに格納する
ことを特徴とする請求項１０に記載のプロセッサ。
【請求項１２】
前記プロセッサは、
前記レジスタのデータフィールドに格納されているデータを読み出して演算処理を行う演算命令の実行時に、前記分割数に応じて２つ以上のデータフィールドに格納されているデータを結合してデータを復元し、復元後のデータに対して演算処理を行う演算処理部を備える
こと特徴とする請求項１１に記載のプロセッサ。
【請求項１３】
前記演算処理部は、さらに
演算処理結果がデータフィールドよりも大きいサイズである場合には、演算処理結果を２つ以上のデータフィールドに跨って格納し、２つ以上のデータフィールドに跨って前記演算処理結果が格納されていることが示されるタグ値を前記演算処理結果と対応付けて前記タグフィールドに格納する
ことを特徴とする請求項１２に記載のプロセッサ。
【請求項１４】
前記プロセッサは、
前記データフィールドよりも大きいサイズのデータをメモリに書き込むストア命令実行時に、２つ以上のデータフィールドに跨って格納されているデータを復元して、復元後のデータをメモリに書き込む
ことを特徴とする請求項１１に記載のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、高い動作周波数で動作可能なプロセッサに関し、特に、動作周波数の向上可能なプロセッサに関する。
【背景技術】
【０００２】  従来、ロード命令を実行する際に、そのロード命令によって特定されるデータの属性に応じて、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリから出力されたデータに対して行った後に、レジスタファイルに格納するプロセッサがある（例えば、特許文献１参照。）。【０００３】  図１は、従来のプロセッサの構成を示す図である。
同図に示されるように、プロセッサ１０は、命令解読回路１１、メモリ読み出し制御回路１２、メモリ書き込み制御回路１３、メモリ１４、演算器１５、データ変回路２０、及びレジスタファイル３０を備える。さらに、レジスタファイル３０は、データフィールド３１のみで構成されるレジスタを複数備える。また、データフィールド３１は、レジスタ番号（Ｒｅｇ＃０〜Ｒｅｇ＃Ｎ）によって管理されている。【０００４】  命令解読回路１１は、解読した命令に応じて信号を出力する。例えば、（ａ）解読した命令がロード命令である場合には、そのロード命令によって特徴付けられる信号（以下、ロード命令解読信号と呼称する。）を生成してメモリ読み出し制御回路１２とデータ変回路２０とに出力する。（ｂ）解読した命令が演算命令である場合には、その演算命令によって特徴付けられる信号（以下、演算命令解読信号と呼称する。）を生成して演算器１５とデータ変回路２０とに出力する。（ｃ）解読した命令がストア命令である場合には、そのストア命令によって特徴付けられる信号（以下、ストア命令解読信号と呼称する。）を生成してメモリ書き込み制御回路１３に出力する。【０００５】  「ロード命令」とは、メモリからデータをロードする命令をいう。
「ストア命令」とは、メモリにデータをストアする命令をいう。【０００６】  「演算命令」とは、演算処理が行われる命令をいう。
ロード命令解読信号には、メモリ１４にアクセスしてデータを読み出す上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。【０００７】  演算命令解読信号には、演算処理の内容が特定される情報が含まれる。
ストア命令解読信号には、メモリ１４にアクセスしてデータを書き込む上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。【０００８】  メモリ読み出し制御回路１２は、命令解読回路１１から出力されたロード命令解読信号に応じて、そのロード命令解読信号によって特徴付けられる信号（以下、メモリ読み出し制御信号と呼称する。）をメモリ１４に出力する。【０００９】  メモリ書き込み制御回路１３は、命令解読回路１１から出力されたストア命令解読信号に応じて、そのストア命令解読信号によって特徴付けられる信号（以下、メモリ書き込み制御信号と呼称する。）をメモリ１４に出力する。【００１０】  メモリ１４は、メモリ読み出し制御回路１２から出力されたメモリ読み出し制御信号に応じて、そのメモリ読み出し制御信号によって特定されるデータをレジスタファイル３０に格納する。また、メモリ書き込み制御回路１３から出力されたメモリ書き込み制御信号に応じて、そのメモリ書き込み制御信号によって特定されるデータをレジスタファイル３０から読み出す。【００１１】  なお、メモリ１４から読み出されたデータは、データ変回路２０において、配置変更、符号拡張、ゼロ拡張等のデータ変換が行われた後に、レジスタファイル３０に格納される。【００１２】  演算器１５は、命令解読回路１１から出力された演算命令解読信号に応じて、その演算命令解読信号によって特定されるデータをレジスタファイル３０から読み出し、演算命令解読信号によって特定される演算処理を、そのデータに対して行う。そして、演算処理を行って得られたデータをレジスタファイル３０に格納する。【００１３】  図２は、データ変換回路の構成を示す図である。
同図に示されるように、ここでは、一例として、データ変換回路２０は、アライン部２１、ゼロ拡張部２２、符号拡張部２３、セレクタ２４等を備える。【００１４】  アライン部２１は、メモリ１４から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部２２と符号拡張部２３とに出力する。【００１５】  「アライン処理」とは、Ｍ（Ｍは自然数。）ビットのデータの部分ビット列を、最下位ビットに合わせて整列させて出力する。例えば、３２ビットのデータの８ビット目から１５ビット目までの部分ビット列が入力された場合には、０ビット目から７ビット目までに整列させたビット列が出力される。【００１６】  ゼロ拡張部２２は、アライン部２１から出力されたデータに対してゼロ拡張処理を施し、処理後のデータをセレクタ２４に出力する。【００１７】  「ゼロ拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「０」にして出力する。【００１８】  符号拡張部２３は、アライン部２１から出力されたデータに対して符号拡張処理を施し、処理後のデータをセレクタ２４に出力する。【００１９】  「符号拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「Ｍビットのデータの符号ビットの値」にして出力する。【００２０】  セレクタ２４は、メモリ１４から出力されたデータ、ゼロ拡張部２２から出力されたデータ、符号拡張部２３から出力されたデータのいずれかを、命令解読回路１１から出力されるロード命令解読信号に応じて選択してレジスタファイル３０に出力する。
【特許文献１】特開平９−２６９８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】  しかしながら、前記従来の技術においては、メモリ１４からレジスタファイル３０にデータを出力する際に、データ変換回路２０を通す必要があるために、メモリ１４とレジスタファイル３０との間において生じる遅延が増加するという問題があり、高い動作周波数で動作するプロセッサの開発を行う上で、この遅延が弊害になるという問題がある。【００２２】  そこで、本発明は、前記問題に鑑みてなされたものであり、メモリとレジスタファイルとの間において生じる遅延を削減して、高い動作周波数で動作可能なプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００２３】  前記目的を達成するために、本発明に係るプロセッサは、（ａ）複数のレジスタを有するレジスタファイルと、（ｂ）データの属性を示すタグ値を生成する生成手段とを備え、（ｃ）前記各レジスタは、データを保持するデータフィールドと、前記タグ値を保持するタグフィールドとを有し、（ｄ）前記生成手段は、メモリからレジスタにロードするロード命令の実行時に、前記ロード命令に基づいて前記タグ値を生成して前記タグフィールドに格納することとする。【００２４】  これによって、データフィールドに格納されたデータは、演算処理を行う命令、レジスタファイルからメモリにデータをストアするストア命令を実行する場合には、データの属性を示すタグ値に応じて、データ変換を行うことができ、メモリとレジスタファイルとの間において配置変更、符号拡張、ゼロ拡張等のデータ変換を行う必要がなくなる。【００２５】  なお、本発明は、プロセッサとして実現されるだけではなく、プロセッサを制御する方法（以下、制御方法と呼称する。）等として実現されるとしてもよい。また、プロセッサによって提供される機能（以下、プロセッサ機能と呼称する。）が組み込まれたＬＳＩ、プロセッサ機能をＦＰＧＡ、ＣＰＬＤ等のプログラマブル・ロジック・デバイスに形成するＩＰコア（以下、プロセッサコアと呼称する。）、及びプロセッサコアを記録した記録媒体等として実現されるとしてもよい。
【発明の効果】
【００２６】  以上、本発明に係るプロセッサによれば、メモリからレジスタファイルにデータを出力する際に、データ変換回路を通す必要がないため、メモリとレジスタファイルと間において生じる遅延を削減し、高い動作周波数で動作可能なプロセッサを提供することができる。【００２７】  また、一つのレジスタ番号に割り付けられたレジスタのサイズよりも大きいデータを、容易に取り扱えるため、データ処理能力が向上可能なプロセッサとしても提供することができる。
【図面の簡単な説明】
【００２８】
【図１】図１は、従来のプロセッサの構成を示す図である。
【図２】図２は、データ変換回路の構成を示す図である。
【図３】図３は、実施の形態１におけるプロセッサの構成を示す図である。
【図４】図４は、一例として、実施の形態１におけるレジスタファイルの構成を示す図である。
【図５】図５は、一例として、実施の形態１におけるレジスタのデータ構造を示す図である。
【図６Ａ】図６Ａは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す第１の図である。
【図６Ｂ】図６Ｂは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す第２の図である。
【図６Ｃ】図６Ｃは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す第３の図である。
【図７】図７は、実施の形態１におけるプロセッサの動作を示す第１の図である。
【図８Ａ】図８Ａは、実施の形態１におけるプロセッサの動作を示す第２の図である。
【図８Ｂ】図８Ｂは、実施の形態１におけるプロセッサの動作を示す第３の図である。
【図８Ｃ】図８Ｃは、実施の形態１におけるプロセッサの動作を示す第４の図である。
【図９】図９は、実施の形態２におけるプロセッサの構成を示す図である。
【図１０】図１０は、一例として、実施の形態２におけるレジスタファイルの構成を示す図である。
【図１１】図１１は、実施の形態２におけるプロセッサの動作を示す第１の図である。
【図１２Ａ】図１２Ａは、実施の形態２におけるプロセッサの動作を示す第２の図である。
【図１２Ｂ】図１２Ｂは、実施の形態２におけるプロセッサの動作を示す第３の図である。
【図１３】図１３は、実施の形態３におけるプロセッサの構成を示す図である。
【図１４】図１４は、一例として、実施の形態３における演算器の構成を示す図である。
【図１５Ａ】図１５Ａは、実施の形態３におけるプロセッサの動作を示す図である。
【図１５Ｂ】図１５Ｂは、実施の形態３におけるプロセッサの動作を示す図である。
【図１６】図１６は、実施の形態４におけるプロセッサの構成を示す図である。
【図１７】図１７は、一例として、実施の形態４における演算器の構成を示す図である。
【図１８】図１８は、実施の形態４におけるプロセッサの動作を示す第１の図である。
【図１９】図１９は、実施の形態４におけるプロセッサの動作を示す第２の図である。
【図２０】図２０は、実施の形態５におけるプロセッサの構成を示す図である。
【図２１】図２１は、一例として、実施の形態５における演算器の構成を示す図である。
【図２２】図２２は、一例として、実施の形態５におけるレジスタのデータ構造を示す図である。
【図２３】図２３は、実施の形態５におけるプロセッサの動作を示す第１の図である。
【図２４】図２４は、実施の形態５におけるプロセッサの動作を示す第２の図である。
【図２５】図２５は、実施の形態５におけるプロセッサの動作を示す第３の図である。
【図２６】図２６は、実施の形態６におけるプロセッサの構成を示す図である。
【図２７】図２７は、一例として、実施の形態６における演算器の構成を示す図である。
【図２８】図２８は、実施の形態６におけるプロセッサの動作を示す第１の図である。
【図２９】図２９は、実施の形態６におけるプロセッサの動作を示す第２の図である。
【符号の説明】
【００２９】１０  プロセッサ
１１  命令解読回路
１２  メモリ読み出し制御回路
１３  メモリ書き込み制御回路
１４  メモリ
１５  演算器
２０  データ変換回路
２１  アライン部
２２  ゼロ拡張部
２３  符号拡張部
２４  セレクタ
３６  レジスタファイル
３１  データフィールド
Ｒｅｇ＃０〜Ｒｅｇ＃Ｎ  レジスタ
１００，２００  プロセッサ
１０１  命令解読回路
１０２  タグ値生成回路
１１０，２１０  レジスタファイル
１１１，２１１  タグフィールド
１１２，２１２  データフィールド
１１３，２１３  データ属性判定回路
１１４，２１４  データ変換回路
１２１，２２１  アライン部
１２２，２２２  ゼロ拡張部
１２３，２２３  符号拡張部
１２４，２２４  セレクタ
３００，４００  プロセッサ
３１０，４１０  レジスタファイル
３１１，４１１  タグフィールド
３１２，４１２  データフィールド
３２０，４２０  演算器
３２１，４２１  データ属性判定回路
３２２，４２２  演算処理回路
３３０  メモリ書き込み制御回路
３３１  データ属性判定回路
３３２  データ変換回路
３４１，４４１  アライン部
３４２，４４２  ゼロ拡張部
３４３，４４３  符号拡張部
３４４，４４４  セレクタ
３４５，４４５  加算器
４０１  命令解読回路
４０２  タグ値生成回路
５００，６００  プロセッサ
５１０，６１０  レジスタファイル
５２０，６２０  演算器
５３０  メモリ書き込み制御回路
５３１  データ属性判定回路
５３２  データ変換回路
５４１，６４１  セレクタ
５４２，６４２  加算器
５４３，６４３  セレクタ
【発明を実施するための最良の形態】
【００３０】  （実施の形態１）
以下、本発明に係る実施の形態１について図面を参照しながら説明する。【００３１】  実施の形態１におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、レジスタファイルから演算器にデータを出力する直前に行うことを特徴とする。【００３２】  以上の点を踏まえて本発明に係る実施の形態１におけるプロセッサについて説明する。
図３は、実施の形態１におけるプロセッサの構成を示す図である。【００３３】  同図に示されるように、プロセッサ１００は、メモリ読み出し制御回路１２、メモリ書き込み制御回路１３、メモリ１４、演算器１５を備える。さらに、命令解読回路１０１、タグ値生成回路１０２、レジスタファイル１１０を備える。【００３４】  命令解読回路１０１は、解読した命令に応じて信号を出力する。例えば、（ａ）解読した命令がロード命令である場合には、そのロード命令によって特徴付けられる信号（以下、ロード命令解読信号と呼称する。）を生成してメモリ読み出し制御回路１２とタグ値生成回路１０２とに出力する。（ｂ）解読した命令が演算命令である場合には、その演算命令によって特徴付けられる信号（以下、演算命令解読信号と呼称する。）を生成して演算器１５とタグ値生成回路１０２とに出力する。（ｃ）解読した命令がストア命令である場合には、そのストア命令によって特徴付けられる信号（以下、ストア命令解読信号と呼称する。）を生成してメモリ書き込み制御回路１３に出力する。【００３５】  「ロード命令」とは、メモリからデータをロードする命令をいう。
「ストア命令」とは、メモリにデータをストアする命令をいう。【００３６】  「演算命令」とは、演算処理が行われる命令をいう。
ロード命令解読信号には、メモリ１４にアクセスしてデータを読み出す上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。【００３７】  演算命令解読信号には、演算処理の内容が特定される情報が含まれる。
ストア命令解読信号には、メモリ１４にアクセスしてデータを書き込む上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。【００３８】  タグ値生成回路１０２は、命令解読回路１０１から出力されたロード命令解読信号に応じて、そのロード命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を生成し、生成したタグ値を、そのデータと対応付けてレジスタファイル１１０に格納する。また、命令解読回路１０１から出力された演算命令解読信号に応じて、その演算命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を生成し、生成したタグ値を、そのデータと対応付けてレジスタファイル１１０に格納する。【００３９】  なお、タグ値には、そのタグ値と対応付けられているデータの属性が示される。また、属性には、データサイズ、データタイプ、データを構成する各ビットの有効または無効の情報が含まれる。【００４０】  レジスタファイル１１０は、タグフィールド１１１とデータフィールド１１２とから構成されるレジスタを複数備える。さらに、データ属性判定回路１１３とデータ変換回路１１４とを備える。【００４１】  タグフィールド１１１には、タグ値が格納され、データフィールド１１２には、そのタグ値と対応付けられるデータが格納される。【００４２】  また、データフィールド１１２とタグフィールド１１１とは、１対１の対応関係を有し、レジスタ番号（Ｒｅｇ＃０〜Ｒｅｇ＃Ｎ）によって管理されている。【００４３】  データ属性判定回路１１３は、データフィールド１１２からデータが読み出される際に、そのデータと対応付けられているタグ値をタグフィールド１１１から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路１１４に出力する。【００４４】  データ変換回路１１４は、データフィールド１１２からデータを読み出す際に、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータを出力する。変換しない場合には、読み出したデータを変換せずに、そのまま出力する。【００４５】  メモリ読み出し制御回路１２は、命令解読回路１０１から出力されたロード命令解読信号に応じて、そのロード命令解読信号によって特徴付けられる信号（以下、メモリ読み出し制御信号と呼称する。）をメモリ１４に出力する。【００４６】  メモリ書き込み制御回路１３は、命令解読回路１０１から出力されたストア命令解読信号に応じて、そのストア命令解読信号によって特徴付けられる信号（以下、メモリ書き込み制御信号と呼称する。）をメモリ１４に出力する。【００４７】  メモリ１４は、メモリ読み出し制御回路１２から出力されたメモリ読み出し制御信号に応じて、そのメモリ読み出し制御信号によって特定されるデータをレジスタファイル１１０に格納する。また、メモリ書き込み制御回路１３から出力されたメモリ書き込み制御信号に応じて、そのメモリ書き込み制御信号によって特定されるデータをレジスタファイル１１０から読み出す。【００４８���  なお、メモリ１４から読み出したデータは、配置変更、符号拡張、ゼロ拡張等のデータ変換が行われずに、レジスタファイル１１０に格納される。【００４９】  演算器１５は、命令解読回路１０１から出力された演算命令解読信号に応じて、その演算命令解読信号によって特定されるデータをレジスタファイル１１０から読み出し、演算命令解読信号によって特定される演算処理を、そのデータに対して行う。そして、演算処理を行って得られたデータをレジスタファイル１１０に格納する。【００５０】  続いて、一例として、実施の形態１におけるレジスタファイルの構成について説明する。【００５１】  ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対して演算処理が行われ、演算処理が行われて得られたデータ、すなわち、演算した結果がレジスタ（Ｒｅｇ＃１）に格納される場合を例に説明する。【００５２】  図４は、一例として、実施の形態１におけるレジスタファイルの構成を示す図である。
同図に示されるように、データ属性判定回路１１３は、レジスタ（Ｒｅｇ＃０）のタグフィールド１１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド１１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ１２４等に出力する。【００５３】  これに対して、アライン部１２１は、レジスタ（Ｒｅｇ＃０）のデータフィールド１１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部１２２と符号拡張部１２３とに出力する。【００５４】  「アライン処理」とは、Ｍ（Ｍは自然数。）ビットのデータの部分ビット列を、最下位ビットに合わせて整列させて出力する処理をいう。例えば、３２ビットのデータの８ビット目から１５ビット目までの部分ビット列が入力された場合には、０ビット目から７ビット目までに整列させたビット列が出力される。【００５５】  ゼロ拡張部１２２は、アライン部１２１から出力されたデータに対してゼロ拡張処理を施し、処理後のデータをセレクタ１２４に出力する。【００５６】  「ゼロ拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「０」にして出力する処理をいう。【００５７】  符号拡張部１２３は、アライン部１２１から出力されたデータに対して符号拡張処理を施し、処理後のデータをセレクタ１２４に出力する。【００５８】  「符号拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「Ｍビットのデータの符号ビットの値」にして出力する処理をいう。【００５９】  セレクタ１２４は、レジスタ（Ｒｅｇ＃０）のデータフィールド１１２から出力されたデータ、ゼロ拡張部１２２から出力されたデータ、符号拡張部１２３から出力されたデータのいずれかを、データ属性判定回路１１３から出力されるデータ属性判定信号に応じて選択して演算器１５に出力する。【００６０】  そして、演算器１５は、セレクタ１２４から出力されたデータに対して演算処理を行い、演算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）のデータフィールド１１２に格納する。【００６１】  続いて、一例として、実施の形態１におけるレジスタのデータ構造について説明する。
図５は、一例として、実施の形態１におけるレジスタのデータ構造を示す図である。【００６２】  同図に示されるように、レジスタは、８ビットのタグフィールド１５１と、３２ビットのデータフィールドとから構成されている。【００６３】  タグフィールド１５１の０ビット目から３ビット目までの下位４ビットは、有効ビット、すなわち、データがデータフィールド１５２の何処から格納されているかを示す。例えば、（ａ）「１０００」の場合には、第３ビット列（３１ビット目）から格納されていることを示す。（ｂ）「０１００」の場合には、第２ビット列（２３ビット目）から格納されていることを示す。（ｃ）「００１０」の場合には、第１ビット列（１５ビット目）から格納されていることを示す。（ｄ）「０００１」の場合には、第０ビット列（７ビット目）から格納されていることを示す。【００６４】  タグフィールド１５１の４ビット目から５ビット目までの２ビットは、データフィールド１５２に格納されるデータのサイズを示す。例えば、（ａ）「００」の場合には、３２ビット、（ｂ）「０１」の場合には、１６ビット、（ｃ）「１０」の場合には、８ビットを示す。なお、「１１」は、空きである。【００６５】  タグフィールド１５１の６ビット目は、データフィールド１５２に格納されるデータが符号付きのデータであるか否かを示す。例えば、（ａ）「０」の場合には、符号なしのデータであり、（ｂ）「１」の場合には、符号付きのデータであることを示す。【００６６】  タグフィールド１５１の７ビット目は、データフィールド１５２に格納されているデータが、配置変更、符号拡張、ゼロ拡張等のデータ変換が行われたデータであるか否かを示す。例えば、（ａ）「０」の場合には、変換完了、すなわち、変換後のデータであり、（ｂ）「１」の場合には、変換未完了、すなわち、変換前のデータであることを示す。【００６７】  続いて、実施の形態１におけるデータ変換回路においてデータ変換される例について説明する。【００６８】  図６Ａ〜図６Ｃは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す図である。【００６９】  同図に示されるように、データ変換回路１１４は、下記（１）〜（３）の場合に応じて、データ変換する内容が異なる。【００７０】  （１）命令１６１ａ（ｍｏｖ  Ｒｅｇ，Ｍｅｍ）を実行し、３２ビットのデータをメモリ１６２ｂから読み出した場合には、データ変換回路１１４は、変換しない。すなわち、３２ビットのデータが３２ビットのレジスタ１６３ｂに格納される。（図６Ａ参照。）。【００７１】  （２）命令１６１ｂ（ｍｏｖｂ  Ｒｅｇ，Ｍｅｍ）を実行し、３２ビットのうち第１ビット列から有効の８ビットのデータをメモリ１６２ｂから読み出した場合には、データ変換回路１１４は、最下位ビットに合わせて整列してゼロ拡張したデータに変換する。そして、変換後のデータが３２ビットのレジスタ１６３ｂに格納される。（図６Ｂ参照。）。【００７２】  （３）命令１６１ｃ（ｍｏｖｂｅｘ  Ｒｅｇ，Ｍｅｍ）を実行し、３２ビットのうち第１ビット列から有効の８ビットのデータをメモリ１６２ｂから読み出した場合には、データ変換回路１１４は、最下位ビットに合わせて整列して符号拡張��たデータに変換する。そして、変換後のデータが３２ビットのレジスタ１６３ｃに格納される（図６Ｃ参照。）。【００７３】  続いて、実施の形態１におけるプロセッサの動作について説明する。
図７、図８Ａ〜図８Ｃは、実施の形態１におけるプロセッサの動作を示す図である。【００７４】  図７に示されるように、命令解読回路１０１は、解読した命令に応じて下記（１）〜（３）のいずれかを実行する（ステップＳ１０１）。【００７５】  （１）命令解読回路１０１は、解読した命令がロード命令である場合には、メモリ読み出し制御回路１２とタグ値生成回路１０２とにロード命令解読信号を出力する（ステップＳ１１１）。【００７６】  これに応じて、メモリ読み出し制御回路１２は、メモリ１４にメモリ読み出し制御信号を出力する（ステップＳ１１２）。メモリ１４は、メモリ読み出し制御信号によって特定されるデータをレジスタファイル１１０に格納する（ステップＳ１１３）。一方、タグ値生成回路１０２は、ロード命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を、そのデータと対応付けてレジスタファイル１１０に格納する（ステップＳ１１４）。【００７７】  このとき、図８Ａに示されるように、レジスタファイル１１０は、ロード命令解読信号によって特定されたデータがデータフィールド１１２に格納され（ステップＳ１２１）、そのデータと対応付けられているタグ値がタグフィールド１１１に格納される（ステップＳ１２２）。【００７８】  （２）命令解読回路１０１は、解読した命令が演算命令である場合には、演算器１５とタグ値生成回路１０２とに演算命令解読信号を出力する（ステップＳ１３１）。【００７９】  これに応じて、演算器１５は、演算命令解読信号によって特定されるデータをレジスタファイル１１０から読み出し（ステップＳ１３２）、読み出したデータに対して、演算命令解読信号によって特定される演算処理を行う（ステップＳ１３３）。そして、演算処理を行って得られたデータをレジスタファイル１１０に格納する（ステップＳ１３４）。一方、タグ値生成回路１０２は、演算命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイル１１０に格納する（ステップＳ１３５）。【００８０】  このとき、図８Ｂに示されるように、レジスタファイル１１０は、データ属性判定回路１１３において、演算命令解読信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ１４１）、判定結果をデータ属性判定信号としてデータ変換回路１１４に出力する（ステップＳ１４２）。そして、データ変換回路１１４において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ１４３）。判定した結果、変換する場合には（ステップＳ１４３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ１４４）、変換後のデータを演算器１５に出力する（ステップＳ１４５）。【００８１】  なお、変換しない場合には（ステップＳ１４３：Ｎｏ）、演算命令解読信号によって特定されたデータを変換せずに、そのまま演算器１５に出力する。【００８２】  （３）命令解読回路１０１は、解読した命令がストア命令である場合には、メモリ書き込み制御回路１３にストア命令解読信号を出力する（ステップＳ１５１）。【００８３】  これに応じて、メモリ書き込み制御回路１３は、メモリ１４にメモリ書き込み制御信号を出力する（ステップＳ１５２）。メモリ１４は、メモリ書き込み制御信号によって特定されるデータをレジスタファイル１１０から読み出す（ステップＳ１５３）。【００８４】  このとき、図８Ｃに示されるように、レジスタファイル１１０は、データ属性判定回路１１３において、ストア命令解読信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ１６１）、判定結果をデータ属性判定信号としてデータ変換回路１１４に出力する（ステップＳ１６２）。そして、データ変換回路１１４において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ１６３）。判定した結果、変換する場合には（ステップＳ１６３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ１６４）、変換後のデータをメモリ１４に出力する（ステップＳ１６５）。【００８５】  なお、変換しない場合には（ステップＳ１６３：Ｎｏ）、メモリ書き込み制御信号によって特定されたデータを変換せずにメモリ１４に出力する。【００８６】  以上、説明したように実施の形態１におけるプロセッサ１００によれば、タグフィールド１１１、データフィールド１１２、データ属性判定回路１１３、及びデータ変換回路１１４をレジスタファイル１１０に備える。【００８７】  これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル１１０との間で行う代わりに、レジスタファイル１１０から演算器１５にデータを出力する直前に行うことができ、メモリ１４とレジスタファイル１１０との間において生じる遅延を削減することができる。さらに、演算器１５は、既存のものを流用できるため設計も容易である。【００８８】  （実施の形態２）
次に、本発明に係る実施の形態２について図面を参照しながら説明する。【００８９】  実施の形態２におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、レジスタファイルから演算器にデータを出力する前に、レジスタファイルの内部で行うことを特徴とする。【００９０】  以上の点を踏まえて実施の形態２におけるプロセッサについて説明する。
なお、実施の形態１と同一の構成要素については、同一の符号を付して説明を省略する。【００９１】  図９は、実施の形態２におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ２００は、実施の形態１におけるプロセッサ１００と比べて、レジスタファイル１１０の代わりにレジスタファイル２１０を備える点が異なる（図３参照。）。【００９２】  レジスタファイル２１０は、レジスタファイル１１０と比べて、タグフィールド１１１、データフィールド１１２、データ属性判定回路１１３、データ変換回路１１４の代わりに、タグフィールド２１１、データフィールド２１２、データ属性判定回路２１３、データ変換回路２１４を備える点が異なる。【００９３】  データ属性判定回路２１３は、新たに、データがデータフィールド２１２に格納されると、そのデータと対応付けられているタグ値をタグフィールド２１１から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路２１４に出力する。また、その判定結果に基づいて、そのタグ値を変換するか否かを判定する。判定した結果、変換する場合には、その判定結果に基づいて、そのタグ値を変換し、変換前のタグ値を変換後のタグ値に置き換えるようにして変換後のタグ値をレジスタファイル２１０に格納する。【００９４】  データ変換回路２１４は、新たに、データがデータフィールド２１２に格納されると、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、そのデータを変換し、変換後のデータをデータフィールド２１２に格納する。変換しない場合には、そのデータを変換しない。【００９５】  続いて、一例として、実施の形態２におけるレジスタファイルの構成について説明する。【００９６】  ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対してデータ変換が行われ、変換後のデータがレジスタ（Ｒｅｇ＃０）に格納される場合を例に説明する。【００９７】  図１０は、一例として、実施の形態２におけるレジスタファイルの構成を示す図である。【００９８】  同図に示されるように、データ属性判定回路２１３は、レジスタ（Ｒｅｇ＃０）のタグフィールド２１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ２２４等に出力する。【００９９】  これに対して、アライン部２２１は、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張郎２２２と符号拡張部２２３とに出力する。【０１００】  なお、ゼロ拡張部２２２と符号拡張部２２３とは、実施の形態１におけるゼロ拡張部１２２と符号拡張部１２３と同一の構成により説明を省略する。【０１０１】  セレクタ２２４は、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から出力されたデータ、ゼロ拡張部２２２から出力されたデータ、符号拡張部２２３から出力されたデータのいずれかを、データ属性判定回路２１３から出力されるデータ属性判定信号に応じて選択してレジスタ（Ｒｅｇ＃０）のデータフィールド１１２に格納する。【０１０２】  さらに、データ属性判定回路２１３は、読��出したタグ値を変換し、変換後のタグ値をレジスタ（Ｒｅｇ＃０）のタグフィールド２１２に格納する。【０１０３】  そして、演算器１５は、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から出力された変換後のデータに対して演算処理を行い、演算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）等のデータフィールド２１２に格納する。【０１０４】  続いて、実施の形態２におけるプロセッサ２００の動作について説明する。
図１１、図１２Ａ、図１２Ｂは、実施の形態２におけるプロセッサの動作を示す図である。【０１０５】  図１１、図１２Ａ、図１２Ｂに示されるように、プロセッサ２００は、実施の形態１におけるプロセッサ１００と比べて、下記（１）〜（３）の点が異なる。【０１０６】  （１）ロード命令実行時における動作については、実施の形態１における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と比べて、下記の点が異なる（図８Ａ、図１１参照。）。【０１０７】  レジスタファイル２１０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１２１〜Ｓ１２２）の代わりに、ロード命令が実行されて、新たに、データがデータフィールド２１２に格納されると（ステップＳ２２１）、データ属性判定回路２１３において、そのデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ２２２）、判定結果をデータ属性信号としてデータ変換回路２１３に出力する（ステップＳ２２３）。また、その判定結果に基づいて、そのタグ値を変換するか否かを判定する（ステップＳ２２４）。判定した結果、変換する場合には（ステップＳ２２４：Ｙｅｓ）、その判定結果に基づいて、そのタグ値を変換し（ステップＳ２２５）、変換前のタグ値を変換後のタグ値に置き換えるようにして変換後のタグ値をタグフィールド２１１に格納する（ステップＳ２２６）。そして、データ変換回路２１３において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ２２７）。判定した結果、変換する場合には（ステップＳ２２７：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ２２８）、変換前のデータを変換後のデータに置き換えるようにして変換後のデータをデータフィールド２１２に格納する（ステップＳ２２９）。【０１０８】  （２）演算命令実行時における動作については、実施の形態１における動作（ステップＳ１３１〜Ｓ１３５、Ｓ１４１〜Ｓ１４４）と比べて、下記の点が異なる（図８Ｂ、図１２Ａ参照。）。【０１０９】  レジスタファイル２１０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１４１〜Ｓ１４４）の代わりに、演算命令が実行されると、データがデータフィールド２１２から読み出される（ステップＳ２４１）。【０１１０】  （３）ストア命令実行時における動作については、実施の形態１における動作（ステップＳ１５１〜Ｓ１５３、Ｓ１６１〜Ｓ１６４）と比べて、下記の点が異なる（図８Ｃ、図１２Ｂ参照。）。【０１１１】  レジスタファイル２１０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１６１〜Ｓ１６４）の代わりに、ストア命令が実行されると、データフィールド２１２に格納されているデータをメモリ１４に出力する（ステップＳ２６１）。【０１１２】  以上、説明したように実施の形態２におけるプロセッサ２００によれば、タグフィールド２１１、データフィールド２１２、データ属性判定回路２１３、及びデータ変換回路２１４をレジスタファイル２１０に備える。【０１１３】  これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル２１０との間で行う代わりに、レジスタファイル２１０から演算器１５にデータを出力する前に、レジスタファイル２１０の内部で行うことができ、メモリ１４とレジスタファイル２１０との間において生じる遅延を削減することができる。また、データ変換をレジスタファイル２１０の内部で行うため、レジスタファイル２１０と演算器１５との間と、レジスタファイル２１０とメモリ１４との間とに対しても、遅延増加の影響を与えない。さらに、演算器１５は、既存のものを流用できるため設計も容易である。【０１１４】  （実施の形態３）
次に、本発明に係る実施の形態３について図面を参照しながら説明する。【０１１５】  実施の形態３におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、演算器とメモリ書き込み制御回路との夫々の内部で行うことを特徴とする。【０１１６】  以上の点を踏まえて実施の形態３におけるプロセッサについて説明する。
なお、実施の形態１と同一の構成要素については、同一の符号を付して説明を省略する。【０１１７】  図１３は、実施の形態３におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ３００は、実施の形態１におけるプロセッサ１００と比べて、下記（１）〜（３）の点が異なる（図３参照。）。【０１１８】  （１）レジスタファイル１１０の代わりにレジスタファイル３１０を備える。
レジスタファイル３１０は、レジスタファイル１１０と比べて、データ属性判定回路１１３とデータ変換回路１１４とを備えない点が異なる。【０１１９】  （２）演算器１５の代わりに演算器３２０を備える。
演算器３２０は、演算器１５と比べて、新たに、データ属性判定回路３２１と演算処理回路３２２とを備える点が異なる。【０１２０】  データ属性判定回路３２１は、演算命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル３１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路３２２に出力する。【０１２１】  演算処理回路３２２は、演算命令解読信号によって特定されたデータをレジスタファイル３１０から読み出す。データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータに対して演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイル３１０のデータフィールド３１１に格納する。【０１２２】  なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。【０１２３】  （３）メモリ書き込み制御回路１３の代わりにメモリ書き込み制御回路３３０を備える。【０１２４】  メモリ書き込み制御回路３３０は、メモリ書き込み制御回路１３と比べて、新たに、データ属性判定回路３３１とデータ変換回路３３２とを備える点が異なる。【０１２５】  データ属性判定回路３３１は、ストア命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル３１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路３３２に出力する。さらに、ストア命令解読信号とタグ値とに応じたメモリ書き込み制御信号を生成してメモリ１４に出力する。【０１２６】  データ変換回路３３２は、ストア命令解読信号によって特定されたデータをレジスタファイル３１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータをメモリ１４に出力する。【０１２７】  なお、変換しない場合には、読み出したデータを変換せずに、そのままメモリ１４に出力する。【０１２８】  続いて、一例として、実施の形態３における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対して加算処理が行われ、加算処理が行われて得られたデータ、すなわち、加算した結果をレジスタ（Ｒｅｇ＃１）に格納される場合を例に説明する。【０１２９】  図１４は、一例として、実施の形態３における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路３２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド３１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド３１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ３４４等に出力する。【０１３０】  これに対して、アライン部３４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド３１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部３４２と符号拡張部３４３とに出力する。【０１３１】  ゼロ拡張部３４２は、アライン部３４１から出力されたデータに対してゼロ拡張処理を施し、処理後のデータをセレクタ３４４に出力する。【０１３２】  符号拡張部３４３は、アライン部３４１から出力されたデータに対して符号拡張処理を施し、処理後のデータをセレクタ３４４に出力する。【０１３３】  セレクタ３４４は、レジスタ（Ｒｅｇ＃０）のデータフィールド３１２から出力されたデータ、ゼロ拡張部３４２から出力されたデータ、符号拡張部３４３から出力されたデータのいずれかを、データ属性判定回路３２１から出力されるデータ属性判定信号に応じて選択して加算器３４５に出力する。【０１３４】  加算器３４５は、セレクタ３４４から出力されたデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）のデータフィールド３１２に格納する。【０１３５】  続いて、実施の形態３におけるプロセッサ３００の動作について説明する。
図１５Ａ、図１５Ｂは、実施の形態３におけるプロセッサの動作を示す図である。【０１３６】  同図に示されるように、プロセッサ３００は、実施の形態１におけるプロセッサ１００と比べて、下記の点が異なる。【０１３７】  （１）ロード命令実行時における動作については、実施の形態１における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と同一により説明を省略する。【０１３８】  （２）演算命令実行時における動作については、実施の形態１における動作（ステップＳ１３１〜Ｓ１３５、Ｓ１４１〜Ｓ１４５）と比べて、下記の点が異なる（図８Ｂ、図１５Ａ参照。）。【０１３９】  演算器３２０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１４１〜Ｓ１４４）の代わりに、演算命令が実行されると、データ属性判定回路３２１において、演算命令解読信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ３４１）、判定結果をデータ属性判定信号として演算処理回路３２２に出力する（ステップＳ３４２）。そして、演算処理回路３２２において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ３４３）。判定した結果、変換する場合には（ステップＳ３４３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ３４４）、変換後のデータに対して演算処理を行う（ステップＳ３４５）。その演算処理を行って得られたデータをレジスタファイル３１０のデータフィールド３１２に格納する（ステップＳ３４６）。【０１４０】  なお、変換しない場合には（ステップＳ３４３：Ｎｏ）、演算命令解読信号によって特定されたデータを変換せずに、そのままで演算処理を行う。【０１４１】  （３）ストア命令実行時における動作については、実施の形態１における動作（ステップＳ１５１〜Ｓ１５３、Ｓ１６１〜Ｓ１６５）と比べて、下記の点が異なる（図８Ｃ、図１５Ｂ参照。）。【０１４２】  メモリ書き込み制御回路３３０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１６１〜Ｓ１６４）の代わりに、ストア命令が実行されると、データ属性判定回路３３１において、メモリ書き込み制御信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ３６１）、判定結果をデータ属性判定信号としてデータ変換回路３３２に出力する（ステップＳ３６２）。そして、データ変換回路３３２において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ３６３）。判定した結果、変換する場合には（ステップＳ３６３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ３６４）、変換後のデータをメモリに出力する（ステップＳ３６５）。【０１４３】  なお、変換しない場合には（ステップＳ３６３：Ｎｏ）、メモリ書き込み制御信号によって特定されたデータを変換せずに、そのままメモリ１４に出力する。【０１４４】  以上、説明したように実施の形態３におけるプロセッサ３００によれば、タグフィールド３１１とデータフィールド３１２とをレジスタファイル３１０に備え、データ属性判定回路３２１と演算処理回路３２２とを演算器３２０に備え、データ属性判定回路３３１とデータ変換回路３３２とをメモリ書き込み制御部３３０に備える。【０１４５】  これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル３１０との間で行う代わりに、演算器３２０とメモリ書き込み制御回路３３０との夫々の内部で行うことができ、メモリ１４とレジスタファイル３１０との間において生じる遅延を削減することができる。【０１４６】  （実施の形態４）
次に、本発明に係る実施の形態４について図面を参照しながら説明する。【０１４７】  実施の形態４におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、演算器とメモリ書き込み制御回路との夫々の内部で行うことを特徴とする。【０１４８】  以上の点を踏まえて実施の形態４におけるプロセッサについて説明する。
なお、実施の形態３と同一の構成要素については、同一の符号を付して説明を省略する。【０１４９】  図１６は、実施の形態４におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ４００は、実施の形態３におけるプロセッサ３００と比べて、下記（１）〜（３）の点が異なる（図５参照。）。【０１５０】  （１）命令解読回路１０１の代わりに命令解読回路４０１を備える。
命令解読回路４０１は、命令解読回路１０１と比べて、演算命令を実行する場合において、タグ値生成回路４０２に演算命令解読信号を出力しない点が異なる。【０１５１】  （２）タグ値生成回路１０２の代わりにタグ値生成回路４０２を備える。
タグ値生成回路４０２は、タグ値生成回路１０２と比べて、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成しない点が異なる。【０１５２】  （３）演算器３２０の代わりに演算器４２０を備える。
演算器４２０は、演算器３２０と比べて、データ属性判定回路３２１と演算処理回路３２２との代わりに、データ属性判定回路４２１と演算処理回路４２２とを備える点が異なる。【０１５３】  データ属性判定回路４２１は、演算命令解読信号によって特定されるデータと対応付けられているタグ値をレジスタファイル４１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路４２２に出力する。さらに、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成し、生成したタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイル４１０に格納する。【０１５４】  演算処理回路４２２は、演算命令解読信号によって特定されるデータをレジスタファイル４１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイル４１０に格納する。【０１５５】  なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。【０１５６】  続いて、一例として、実施の形態４における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対して演算処理を行い、演算処理を行って得られたデータを、すなわち、演算した結果がレジスタ（Ｒｅｇ＃１）に格納される場合を例に説明する。【０１５７】  図１７は、一例として、実施の形態４における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路４２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド４１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド４１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ４４４等に出力する。【０１５８】  これに対して、アライン部４４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド４１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部４４２と符号拡張部４４３とに出力する。【０１５９】  セレクタ４４４は、レジスタ（Ｒｅｇ＃０）のデータフィールド４１２から出力されたデータ、ゼロ拡張部４４２から出力されたデータ、符号拡張部４４３から出力されたデータのいずれかを、データ属性判定回路４２１から出力されるデータ属性判定信号に応じて選択して加算器４４５に出力する。【０１６０】  加算器４４５は、セレクタ４４４から出力されたデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）のデータフィールド４１２に格納する。【０１６１】  さらに、データ属性判定回路４２１は、加算器４４５において加算処理が行われて得られるデータ、すなわち、演算結果についてのタグ値を生成し、生成したタグ値をレジスタ（Ｒｅｇ＃１）のタグフィールド４１１に格納する。【０１６２】  なお、ゼロ拡張部４４２と符号拡張部４４３とは、実施の形態３におけるゼロ拡張部３４２と符号拡張部３４３と同一の構成により説明を省略する。【０１６３】  続いて、実施の形態４における動作について説明する。
図１８、図１９は、実施の形態４におけるプロセッサの動作を示す図である。【０１６４】  図１８、図１９に示されるように、プロセッサ４００は、実施の形態３におけるプロセッサ３００と比べて、下記（２）の点が異なる。【０１６５】  （１）ロード命令実行時における動作については、実施の形態３における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と同一により説明を省略する。【０１６６】  （２）演算命令実行時における動作については、実施の形態３における動作（Ｓ１３１〜Ｓ１３５、Ｓ３４１〜Ｓ３４６）と比べて、下記の点が異なる（図７、図１５Ａ、図１８、図１９参照。）。【０１６７】  命令解読回路４０１は、実施の形態３における命令解読回路１０１の動作（ステップＳ１３１）の代わりに、解読した命令が演算命令である場合には、演算器４２０に演算命令解読信号を出力する（ステップＳ４３１）。【０１６８】  また、演算器４２０は、実施の形態３におけるタグ値生成回路１０２の動作（ステップＳ１３５）の代わりに、データ属性判定回路４２１において、演算命令解読信号によってレジスタファイル４１０に格納されるデータの属性を示すタグ値を、そのデータと対応付けてレジスタファイル４１０のタグフィールド４１１に格納する（ステップＳ４４１）。【０１６９】  （３）ストア命令実行時における動作については、実施の形態３における動作（ステップＳ１５１〜Ｓ１５３、Ｓ３６１〜Ｓ３６５）と同一により説明を省略する。【０１７０】  以上、説明したように実施の形態４におけるプロセッサ４００によれば、タグフィールド４１１とデータフィールド４１２とをレジスタファイル４１０に備え、データ属性判定回路４２１と演算処理回路４２２とを演算器４２０に備え、データ属性判定回路４３１とデータ変換回路４３２とをメモリ書き込み制御部４３０に備える。【０１７１】  これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル４１０との間で行う代わりに、演算器４２０とメモリ書き込み制御回路３３０との夫々の内部で行うことができ、メモリ１４とレジスタファイル４１０との間において生じる遅延を削減することができる。また、演算処理を行って得られたデータに、そのデータの属性を示すタグ値が付加されるため、演算処理を行う命令に対してデータの属性を指定する必要がなく、命令数の削減、命令解読回路４０１の簡略化が実現され得る。【０１７２】  （実施の形態５）
次に、本発明に係る実施の形態５について図面を参照しながら説明する。【０１７３】  実施の形態５におけるプロセッサは、データフィールドのサイズよりも大きいデータに対しては、複数のレジスタに跨って格納される。さらに、複数のレジスタに跨って格納されているものから、データを復元し、復元後のデータに対して演算処理を行うことを特徴とする。【０１７４】  以上の点を踏まえて実施の形態５におけるプロセッサについて説明する。
なお、実施の形態３と同一の構成要素については、同一の符号を付して説明を省略する。【０１７５】  図２０は、実施の形態５におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ５００は、実施の形態３におけるプロセッサ３００と比べて、下記（１）〜（３）の点が異なる（図５参照。）。【０１７６】  （１）レジスタファイル３１０の代わりにレジスタファイル５１０を備える。
レジスタファイル５１０は、レジスタファイル３１０と比べて、データフィールド５１２のサイズよりも大きいデータが格納される場合には、そのデータを複数のレジスタに跨って格納される点が異なる。【０１７７】  （２）演算器３２０の代わりに演算器５２０を備える。
演算器５２０は、演算器３２０と比べて、データ属性判定回路３２１と演算処理回路３２２との代わりに、データ属性判定回路５２１と演算処理回路５２２とを備える点が異なる。【０１７８】  データ属性判定回路５２１は、演算命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル５１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路５２２に出力する。さらに、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成し、生成したタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイルに格納する。【０１７９】  演算処理回路５２２は、演算命令解読信号によって特定されるデータをレジスタファイル５１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換する。変換後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイルに格納する。【０１８０】  なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。【０１８１】  なお、演算処理回路５２２は、データが複数のレジスタに跨ってレジスタファイルに格納されている場合には、それ等のレジスタから読み出したものからデータを復元し、復元後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータを複数のレジスタに跨ってレジスタファイル５１０に格納する。【０１８２】  （３）メモリ書き込み制御回路３３０の代わりにメモリ書き込み制御回路５３０を備える。【０１８３】  メモリ書き込み制御回路５３０は、メモリ書き込み制御回路３３０と比べて、データ属性判定回路３３１とデータ変換回路３３２との代わりに、データ属性判定回路５３１とデータ変換回路５３２とを備える点が異なる。【０１８４】  データ属性判定回路５３１は、ストア命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル５１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路５３０に出力する。さらに、ストア命令解読信号とタグ値とに応じたメモリ書き込み制御信号をメモリに出力する。【０１８５】  データ変換回路５３２は、ストア命令解読信号によって特定されるデータをレジスタファイル５１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータをメモリに出力する。【０１８６】  なお、変換しない場合には、読み出したデータを変換せずに、そのままメモリ１４に出力する。【０１８７】  なお、データ変換回路５３２は、データが複数のレジスタに跨ってレジスタファイル５１０に格納されている場合には、それ等のレジスタから読み出したものからデータを復元���、復元後のデータをメモリ１４に出力する。【０１８８】  続いて、一例として、実施の形態５における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータに対して加算処理が行われ、加算処理が行われて得られたデータ、すなわち、加算した結果が分割されてレジスタ（Ｒｅｇ＃２）とレジスタ（Ｒｅｇ＃３）とに格納される場合を例に説明する。【０１８９】  図２１は、一例として、実施の形態５における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路５２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド５１１からタグ値を読み出し、読み出したタグ値に基づいて、読み出したタグ値と対応付けられているデータがレジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであると判定する。そして、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであることが示されるデータ属性判定信号をセレクタ５４１、加算器５４２、セレクタ５４３等に出力する。【０１９０】  これに対して、セレクタ５４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド５１２から出力されたデータと、レジスタ（Ｒｅｇ＃１）のデータフィールド５１２から出力されたデータとのうち、レジスタ（Ｒｅｇ＃１）のデータフィールド５１２から出力されたデータを選択して加算器５４２に出力する。【０１９１】  さらに、加算器５４２は、レジスタ（Ｒｅｇ＃０）のデータフィールド５１２から出力されたデータを上位部分とし、セレクタ５４１から出力されたデータ、すなわち、レジスタ（Ｒｅｇ＃１）のデータフィールド５１２から出力されたデータを下位部分として、上位部分と下位部分とを結合してデータを復元する。そして、復元後のデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、加算した結果を上位部分と下位部分とに分割して夫々をセレクタ５４３に出力する。また、下位部分をレジスタ（Ｒｅｇ＃３）のデータフィールドに格納する。【０１９２】  そして、セレクタ５４３は、加算器５４２から出力された上位部分と下位部分とのうち、上位部分を選択してレジスタ（Ｒｅｇ＃２）のデータフィールド５１２に格納する。【０１９３】  続いて、一例として、実施の形態５におけるレジスタのデータ構造について説明する。
図２２は、一例として、実施の形態５におけるレジスタのデータ構造を示す図である。【０１９４】  同図に示されるように、実施の形態５におけるレジスタは、実施の形態１におけるレジスタと下記（２）の点が異なる。【０１９５】  （１）タグフィールド５５１の０ビット目から３ビット目までの下位４ビットは、タグフィールド１５１の０ビット目から３ビット目までの下位４ビットと同一により説明を省略する。【０１９６】  （２）タグフィールド５５１の４ビット目から５ビット目までの２ビットは、タグフィールド１５１の４ビット目から５ビット目までの２ビットと比べて、（ｄ）「１１」の場合には、６４ビットである点が異なる。その場合には、データフィールドのサイズは３２ビットのまま、複数のレジスタのデータフィールド５５３が割り当てられる。【０１９７】  （３）タグフィールド５５１の６ビット目から７ビット目までの２ビットは、タグフィールド１５１の６ビット目から７ビット目までの２ビットと同一により説明を省略する。【０１９８】  続いて、実施の形態５におけるプロセッサの動作について説明する。
図２３〜図２５は、実施の形態５におけるプロセッサの動作を示す図である。【０１９９】  図２３〜図２５に示されるように、プロセッサ５００は、実施の形態３におけるプロセッサ３００と比べて、下記（１）〜（３）の点が異なる。【０２００】  （１）ロード命令実行時における動作については、実施の形態３における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と比べて、下記の点が異なる（図８Ａ、図２３参照。）。【０２０１】  レジスタファイル５１０は、メモリ読み出し制御信号によって特定されたデータがデータフィールドのサイズよりも大きい場合には（ステップＳ５２１：Ｎｏ）、そのデータが複数のレジスタに跨って格納される（ステップＳ５２２）。【０２０２】  （２）演算命令実行時における動作については、実施の形態３における動作（ステップＳ１３１〜Ｓ１３５、Ｓ３４１〜Ｓ３４６）と比べて、下記の点が異なる（図１５Ａ、図２４参照。）。【０２０３】  演算器５２０は、演算命令解読信号によって特定されるデータが複数のレジスタに跨って格納されている場合には（ステップ５４１：Ｎｏ）、それ等のレジスタから読み出したものから、そのデータを復元し（ステップＳ５４２）、復元後のデータに対して演算処理を行う（ステップＳ５４３）。演算処理を行って得られたデータを複数のレジスタに跨ってレジスタファイル５１０に格納する（ステップＳ５４４）。【０２０４】  （３）ストア命令実行時における動作については、実施の形態３における動作（ステップＳ１５１〜Ｓ１５３、Ｓ３６１〜Ｓ３６５）と比べて、下記の点が異なる（図１５Ａ、図２５参照。）。【０２０５】  メモリ書き込み制御回路５３０は、メモリ書き込み制御信号によって特定されたデータが複数のレジスタに跨って格納されている場合には（ステップ５６１：Ｎｏ）、それ等のレジスタから読み出したものから、そのデータを復元し（ステップＳ５６２）、復元後のデータをメモリ１４に出力する（ステップＳ３６５）。【０２０６】  以上、説明したように実施の形態５におけるプロセッサ５００によれば、タグフィールド５１１とデータフィールド５１２とをレジスタファイル５１０に備え、データ属性判定回路５２１と演算処理回路５２２とを演算器５２０に備え、データ属性判定回路５３１とデータ変換回路５３２とをメモリ書き込み制御部５３０に備える。【０２０７】  これにより、データフィールド５１２のサイズよりも大きいデータを、容易に取り扱うことができる。【０２０８】  （実施の形態６）
次に、本発明に係る実施の形態６について図面を参照しながら説明する。【０２０９】  実施の形態６におけるプロセッサは、データフィールドのサイズよりも大きいデータに対しては、複数のレジスタに跨って格納される。さらに、複数のレジスタに跨って格納されているものから、データを復元し、復元後のデータに対して演算処理を行うことを特徴とする。【０２１０】  以上の点を踏まえて実施の形態６におけるプロセッサについて説明する。
なお、実施の形態５と同一の構成要素については、同一の符号を付して説明を省略する。【０２１１】  図２６は、実施の形態６におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ６００は、実施の形態５におけるプロセッサ５００と比べて、下記（１）〜（３）の点が異なる（図７参照。）。【０２１２】  （１）命令解読回路１０１の代わりに命令解読回路６０１を備える。
命令解読回路６０１は、命令解読回路１０１と比べて、演算命令を実行する場合において、タグ値生成回路６０２に演算命令解読信号を出力しない点が異なる。【０２１３】  （２）タグ値生成回路１０２の代わりにタグ値生成回路６０２を備える。
タグ値生成回路６０２は、タグ値生成回路１０２と比べて、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成しない点が異なる。【０２１４】  （３）演算器５２０の代わりに演算器６２０を備える。
演算器６２０は、演算器５２０と比べて、データ属性判定回路５２１と演算処理回路５２２との代わりに、データ属性判定回路６２１と演算処理回路６２２とを備える点が異なる。【０２１５】  データ属性判定回路６２１は、演算命令解読信号によって特定されるデータと対応付けられているタグ値をレジスタファイル６１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路６２２に出力する。さらに、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成し、生成したタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイル６１０に格納する。【０２１６】  演算処理回路６２２は、演算命令解読信号によって特定されるデータをレジスタファイル６１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイル６１０に格納する。【０２１７】  なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。【０２１８】  なお、演算処理回路６２２は、データが複数のレジスタに跨ってレジスタファイル６１０に格納されている場合には、それ等のレジスタから読み出したものからデータを復元し、復元後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータを複数のレジスタに跨ってレジスタファイル６１０に格納する。【０２１９】  続いて、一例として、実施の形態６における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータに対して加算処理が行われ、加算処理が行われて得られたデータ、すなわち、加算した結果が分割されてレジスタ（Ｒｅｇ＃２）とレジスタ（Ｒｅｇ＃３）とに格納される場合を例に説明する。【０２２０】  図２７は、一例として、実施の形態６における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路６２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド６１１からタグ値を読み出し、読み出したタグ値に基づいて、読み出したタグ値と対応付けられているデータがレジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであると判定する。そして、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであることが示されるデータ属性判定信号をセレクタ６４１、加算器６４２、セレクタ６４３等に出力する。【０２２１】  これに対して、セレクタ６４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド６１２から出力されたデータと、レジスタ（Ｒｅｇ＃１）のデータフィールド６１２から出力されたデータとのうち、レジスタ（Ｒｅｇ＃１）のデータフィールド６１２から出力されたデータを選択して加算器６４２に出力する。【０２２２】  さらに、加算器６４２は、レジスタ（Ｒｅｇ＃０）のデータフィールド６１２から出力されたデータを上位部分とし、セレクタ６４１から出力されたデータ、すなわち、レジスタ（Ｒｅｇ＃１）のデータフィールド６１２から出力されたデータを下位部分として、上位部分と下位部分とを結合してデータを復元する。そして、復元後のデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、加算した結果を上位部分と下位部分とに分割して夫々をセレクタ６４３に出力する。また、下位部分をレジスタ（Ｒｅｇ＃３）のデータフィールドに格納する。【０２２３】  そして、セレクタ６４３は、加算器６４２から出力された上位部分と下位部分とのうち、上位部分を選択してレジスタ（Ｒｅｇ＃２）のデータフィールド６１２に格納する。【０２２４】  さらに、データ属性判定回路６２１は、加算器６４２において加算した結果についてのタグ値、すなわち、レジスタ（Ｒｅｇ＃２）とレジスタ（Ｒｅｇ＃３）とに跨って格納されているデータであることが示されるタグ値を生成し、生成したタグ値をレジスタ（Ｒｅｇ＃２）のタグフィールド６１１に格納する。【０２２５】  続いて、実施の形態６におけるプロセッサ６００の動作について説明する。
図２８、図２９は、実施の形態６におけるプロセッサの動作を示す図である。【０２２６】  図２８、図２９に示されるように、プロセッサ６００は、実施の形態５におけるプロセッサ５００と比べて、下記（２）の点が異なる。【０２２７】  （１）ロード命令実行時における動作については、実施の形態５における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２、Ｓ５２１〜Ｓ５２２）と同一により説明を省略する。【０２２８】  （２）演算命令実行時における動作については、実施の形態５における動作（ステップＳ１３１〜Ｓ１３５、Ｓ３４１〜Ｓ３４６、Ｓ５４１〜Ｓ５４４）と比べて、下記の点が異なる（図７、図２４、図２８、図２９参照。）。【０２２９】  命令解読回路６０１は、実施の形態５における命令解読回路１０１の動作（ステップＳ１３１）の代わりに、解読した命令が演算命令である場合には、演算器６２０に演算命令解読信号を出力する（ステップＳ６３１）。【０２３０】  また、演算器６２０は、実施の形態５におけるタグ値生成回路１０２の動作（ステップＳ１３５）の代わりに、データ属性判定回路６２１において、演算処理を行って得られるデータの属性を示すタグ値を、そのデータと対応付けてレジスタファイル６１０のタグフィールド６１１に格納する（ステップＳ６４１）。【０２３１】  （３）ストア命令実行時における動作については、実施の形態５における動作（ステップＳ１５１〜Ｓ１５３、Ｓ３６１〜Ｓ３６５、Ｓ５６１〜Ｓ５６２）と同一により説明を省略する。【０２３２】  以上、説明したように実施の形態６におけるプロセッサ６００によれば、タグフィールド６１１とデータフィールド６１２とをレジスタファイル６１０に備え、データ属性判定回路６２１と演算処理回路６２２とを演算器６２０に備え、データ属性判定回路５３１とデータ変換回路５３２とをメモリ書き込み制御部５３０に備える。【０２３３】  これにより、データフィールドのサイズよりも大きいデータを容易に取り扱うことができる。また、演算処理を行って得られたデータに、そのデータの属性を示すタグ値が付加されるため、演算処理を行う命令に対してデータの属性を指定する必要がなく、命令数の削減、命令解読回路の簡略化が実現され得る。【０２３４】  （その他）
なお、タグ値生成回路は、メモリから読み出したデータを複数のレジスタに跨って格納する場合には、そのデータが跨って格納されるレジスタの数、すなわち、データの分割数を含むタグ値を生成するとしてタグフィールドに格納するとしてもよい。【０２３５】  なお、プロセッサは、フルカスタムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）によって実現されるとしてもよい。また、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のようなセミカスタムＬＳＩによって実現されるとしてもよい。また、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等のようなプログラマブル・ロジック・デバイスによって実現されるとしてもよい。また、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスとして実現されるとしてもよい。【０２３６】  さらに、プロセッサを構成する１乃至２以上の機能を、これ等のＬＳＩに形成する設計データは、ＶＨＤＬ（Ｖｅｒｙ  ｈｉｇｈ  ｓｐｅｅｄ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＳｙｓｔｅｍＣ等のようなハードウェア記述言語によって記述されたプログラム（以下、ＨＤＬプログラムと呼称する。）としてもよい。また、ＨＤＬプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。【０２３７】  さらに、設計データは、コンピュータシステム、組み込みシステム等のようなハードウェアシステムに読み出され得るように、光学記録媒体（例えば、ＣＤ−ＲＯＭ等。）、磁気記録媒体（例えば、ハードディスク等。）、光磁気記録媒体（例えば、ＭＯ等。）、半導体メモリ（例えば、ＲＡＭ等。）等のようなコンピュータ読み取り可能な記録媒体に記録しておくとしてもよい。そして、記録媒体を介して他のハードウェアタシステムに読み取られた設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。【０２３８】  または、設計データは、ネットワーク等のような伝送路を経由して他のハードウェアシステムに取得され得るように、伝送路上のハードウェアシステムに保持しておくとしてもよい。さらに、ハードウェアシステムから伝送路を介して他のハードウェアタシステムに取得された設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。【０２３９】  または、論理合成、配置、配線された設計データは、通電時にＦＰＧＡに転送され得るように、シリアルＲＯＭに記録しておくとしてもよい。そして、シリアルＲＯＭに記録された設計データは、通電時に、直接、ＦＰＧＡにダウンロードされるとしてもよい。
【産業上の利用可能性】
【０２４０】  本発明は、データを処理するプロセッサ等として、特に、高速・膨大な演算処理を必要とする音声・画像処理等のメディア処理を行うプロセッサ等として、利用することができる。
【図１】
2006043345.tif 000002
【図２】
2006043345.tif 000003
【図３】
2006043345.tif 000004
【図４】
2006043345.tif 000005
【図５】
2006043345.tif 000006
【図６Ａ】
2006043345.tif 000007
【図６Ｂ】
2006043345.tif 000008
【図６Ｃ】
2006043345.tif 000009
【図７】
2006043345.tif 000010
【図８Ａ】
2006043345.tif 000011
【図８Ｂ】
2006043345.tif 000012
【図８Ｃ】
2006043345.tif 000013
【図９】
2006043345.tif 000014
【図１０】
2006043345.tif 000015
【図１１】
2006043345.tif 000016
【図１２Ａ】
2006043345.tif 000017
【図１２Ｂ】
2006043345.tif 000018
【図１３】
2006043345.tif 000019
【図１４】
2006043345.tif 000020
【図１５Ａ】
2006043345.tif 000021
【図１５Ｂ】
2006043345.tif 000022
【図１６】
2006043345.tif 000023
【図１７】
2006043345.tif 000024
【図１８】
2006043345.tif 000025
【図１９】
2006043345.tif 000026
【図２０】
2006043345.tif 000027
【図２１】
2006043345.tif 000028
【図２２】
2006043345.tif 000029
【図２３】
2006043345.tif 000030
【図２４】
2006043345.tif 000031
【図２５】
2006043345.tif 000032
【図２６】
2006043345.tif 000033
【図２７】
2006043345.tif 000034
【図２８】
2006043345.tif 000035
【図２９】
2006043345.tif 000036
【手続補正書】
【提出日】平成18年7月25日(2006.7.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のレジスタを有するレジスタファイルと、
データの属性を示すタグ値を生成する生成手段と
を備え、
前記各レジスタは、データを保持するデータフィールドと、前記タグ値を保持するタグフィールドとを有し、
前記生成手段は、メモリからレジスタにロードするロード命令の実行時に、前記ロード命令に基づいて前記タグ値を生成して前記タグフィールドに格納する
ことを特徴とするプロセッサ。
【請求項２】
前記データフィールドは、前記メモリから前記レジスタにデータをロードするロード命令の実行により前記メモリから出力されたデータをそのまま保持する
ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
前記生成手段は、前記ロード命令で指定されたアドレスとデータサイズとデータタイプとに基づいて前記タグ値を生成し、
前記データタイプは、転送すべきデータが符号付きデータであるか符号なしデータであるかを示す
ことを特徴とする請求項２に記載のプロセッサ。
【請求項４】
前記プロセッサは、さらに、
前記レジスタのデータフィールドに保持されたデータを、前記タグ値に応じて変換する変換手段を備える
ことを特徴とする請求項３に記載のプロセッサ。
【請求項５】
前記変換手段は、前記タグ値に応じて、前記レジスタのデータフィールドに保持されたデータに対してゼロ拡張又は符号拡張を行う
ことを特徴とする請求項４に記載のプロセッサ。
【請求項６】
前記変換手段は、レジスタを読み出す命令の実行時に前記変換を行う
ことを特徴とする請求項５に記載のプロセッサ。
【請求項７】
前記変換手段は、命令によるレジスタ読み書きが発生しない空きサイクルで前記変換を行い、変換結果に従ってタグフィールドおよびデータフィールドを更新する
ことを特徴とする請求項５に記載のプロセッサ。
【請求項８】
前記変換手段は、前記レジスタのデータフィールドに保持されたデータをメモリに格納するストア命令の実行時に変換を行う
ことを特徴とする請求項４に記載のプロセッサ。
【請求項９】
前記プロセッサは、さらに、
前記変換手段により変換されたデータを、前記タグ値に応じた書き込み処理によってメモリに書き込む書き込み処理部を有する
ことを特徴とする請求項８に記載のプロセッサ。
【請求項１０】
前記プロセッサは、前記データフィールドよりも大きいサイズのデータをメモリから読み出すロード命令実行時に、メモリから読み出したデータを分割し、分割したデータを２つ以上のデータフィールドに格納する
ことを特徴とする請求項２に記載のプロセッサ。
【請求項１１】
前記生成手段は、
前記分割したデータの分割数が含まれるタグ値をタグフィールドに格納する
ことを特徴とする請求項１０に記載のプロセッサ。
【請求項１２】
前記プロセッサは、
前記レジスタのデータフィールドに格納されているデータを読み出して演算処理を行う演算命令の実行時に、前記分割数に応じて２つ以上のデータフィールドに格納されているデータを結合してデータを復元し、復元後のデータに対して演算処理を行う演算処理部を備える
ことを特徴とする請求項１１に記載のプロセッサ。
【請求項１３】
前記演算処理部は、さらに
演算処理結果がデータフィールドよりも大きいサイズである場合には、演算処理結果を２つ以上のデータフィールドに跨って格納し、２つ以上のデータフィールドに跨って前記演算処理結果が格納されていることが示されるタグ値を前記演算処理結果と対応付けて前記タグフィールドに格納する
ことを特徴とする請求項１２に記載のプロセッサ。
【請求項１４】
前記プロセッサは、
前記データフィールドよりも大きいサイズのデータをメモリに書き込むストア命令実行時に、２つ以上のデータフィールドに跨って格納されているデータを復元して、復元後のデータをメモリに書き込む
ことを特徴とする請求項１１に記載のプロセッサ。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高い動作周波数で動作可能なプロセッサに関し、特に、動作周波数の向上可能なプロセッサに関する。
【背景技術】
【０００２】
従来、ロード命令を実行する際に、そのロード命令によって特定されるデータの属性に応じて、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリから出力されたデータに対して行った後に、レジスタファイルに格納するプロセッサがある（例えば、特許文献１参照。）。
【０００３】
図１は、従来のプロセッサの構成を示す図である。
同図に示されるように、プロセッサ１０は、命令解読回路１１、メモリ読み出し制御回路１２、メモリ書き込み制御回路１３、メモリ１４、演算器１５、データ変回路２０、及びレジスタファイル３０を備える。さらに、レジスタファイル３０は、データフィールド３１のみで構成されるレジスタを複数備える。また、データフィールド３１は、レジスタ番号（Ｒｅｇ＃０〜Ｒｅｇ＃Ｎ）によって管理されている。
【０００４】
命令解読回路１１は、解読した命令に応じて信号を出力する。例えば、（ａ）解読した命令がロード命令である場合には、そのロード命令によって特徴付けられる信号（以下、ロード命令解読信号と呼称する。）を生成してメモリ読み出し制御回路１２とデータ変回路２０とに出力する。（ｂ）解読した命令が演算命令である場合には、その演算命令によって特徴付けられる信号（以下、演算命令解読信号と呼称する。）を生成して演算器１５とデータ変回路２０とに出力する。（ｃ）解読した命令がストア命令である場合には、そのストア命令によって特徴付けられる信号（以下、ストア命令解読信号と呼称する。）を生成してメモリ書き込み制御回路１３に出力する。
【０００５】
「ロード命令」とは、メモリからデータをロードする命令をいう。
「ストア命令」とは、メモリにデータをストアする命令をいう。
【０００６】
「演算命令」とは、演算処理が行われる命令をいう。
ロード命令解読信号には、メモリ１４にアクセスしてデータを読み出す上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。
【０００７】
演算命令解読信号には、演算処理の内容が特定される情報が含まれる。
ストア命令解読信号には、メモリ１４にアクセスしてデータを書き込む上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。
【０００８】
メモリ読み出し制御回路１２は、命令解読回路１１から出力されたロード命令解読信号に応じて、そのロード命令解読信号によって特徴付けられる信号（以下、メモリ読み出し制御信号と呼称する。）をメモリ１４に出力する。
【０００９】
メモリ書き込み制御回路１３は、命令解読回路１１から出力されたストア命令解読信号に応じて、そのストア命令解読信号によって特徴付けられる信号（以下、メモリ書き込み制御信号と呼称する。）をメモリ１４に出力する。
【００１０】
メモリ１４は、メモリ読み出し制御回路１２から出力されたメモリ読み出し制御信号に応じて、そのメモリ読み出し制御信号によって特定されるデータをレジスタファイル３０に格納する。また、メモリ書き込み制御回路１３から出力されたメモリ書き込み制御信号に応じて、そのメモリ書き込み制御信号によって特定されるデータをレジスタファイル３０から読み出す。
【００１１】
なお、メモリ１４から読み出されたデータは、データ変回路２０において、配置変更、符号拡張、ゼロ拡張等のデータ変換が行われた後に、レジスタファイル３０に格納される。
【００１２】
演算器１５は、命令解読回路１１から出力された演算命令解読信号に応じて、その演算命令解読信号によって特定されるデータをレジスタファイル３０から読み出し、演算命令解読信号によって特定される演算処理を、そのデータに対して行う。そして、演算処理を行って得られたデータをレジスタファイル３０に格納する。
【００１３】
図２は、データ変換回路の構成を示す図である。
同図に示されるように、ここでは、一例として、データ変換回路２０は、アライン部２１、ゼロ拡張部２２、符号拡張部２３、セレクタ２４等を備える。
【００１４】
アライン部２１は、メモリ１４から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部２２と符号拡張部２３とに出力する。
【００１５】
「アライン処理」とは、Ｍ（Ｍは自然数。）ビットのデータの部分ビット列を、最下位ビットに合わせて整列させて出力する。例えば、３２ビットのデータの８ビット目から１５ビット目までの部分ビット列が入力された場合には、０ビット目から７ビット目までに整列させたビット列が出力される。
【００１６】
ゼロ拡張部２２は、アライン部２１から出力されたデータに対してゼロ拡張処理を施し、処理後のデータをセレクタ２４に出力する。
【００１７】
「ゼロ拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「０」にして出力する。
【００１８】
符号拡張部２３は、アライン部２１から出力されたデータに対して符号拡張処理を施し、処理後のデータをセレクタ２４に出力する。
【００１９】
「符号拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「Ｍビットのデータの符号ビットの値」にして出力する。
【００２０】
セレクタ２４は、メモリ１４から出力されたデータ、ゼロ拡張部２２から出力されたデータ、符号拡張部２３から出力されたデータのいずれかを、命令解読回路１１から出力されるロード命令解読信号に応じて選択してレジスタファイル３０に出力する。
【特許文献１】特開平９−２６９８９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、前記従来の技術においては、メモリ１４からレジスタファイル３０にデータを出力する際に、データ変換回路２０を通す必要があるために、メモリ１４とレジスタファイル３０との間において生じる遅延が増加するという問題があり、高い動作周波数で動作するプロセッサの開発を行う上で、この遅延が弊害になるという問題がある。
【００２２】
そこで、本発明は、前記問題に鑑みてなされたものであり、メモリとレジスタファイルとの間において生じる遅延を削減して、高い動作周波数で動作可能なプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００２３】
前記目的を達成するために、本発明に係るプロセッサは、（ａ）複数のレジスタを有するレジスタファイルと、（ｂ）データの属性を示すタグ値を生成する生成手段とを備え、（ｃ）前記各レジスタは、データを保持するデータフィールドと、前記タグ値を保持するタグフィールドとを有し、（ｄ）前記生成手段は、メモリからレジスタにロードするロード命令の実行時に、前記ロード命令に基づいて前記タグ値を生成して前記タグフィールドに格納することとする。
【００２４】
これによって、データフィールドに格納されたデータは、演算処理を行う命令、レジスタファイルからメモリにデータをストアするストア命令を実行する場合には、データの属性を示すタグ値に応じて、データ変換を行うことができ、メモリとレジスタファイルとの間において配置変更、符号拡張、ゼロ拡張等のデータ変換を行う必要がなくなる。
【００２５】
なお、本発明は、プロセッサとして実現されるだけではなく、プロセッサを制御する方法（以下、制御方法と呼称する。）等として実現されるとしてもよい。また、プロセッサによって提供される機能（以下、プロセッサ機能と呼称する。）が組み込まれたＬＳＩ、プロセッサ機能をＦＰＧＡ、ＣＰＬＤ等のプログラマブル・ロジック・デバイスに形成するＩＰコア（以下、プロセッサコアと呼称する。）、及びプロセッサコアを記録した記録媒体等として実現されるとしてもよい。
【発明の効果】
【００２６】
以上、本発明に係るプロセッサによれば、メモリからレジスタファイルにデータを出力する際に、データ変換回路を通す必要がないため、メモリとレジスタファイルと間において生じる遅延を削減し、高い動作周波数で動作可能なプロセッサを提供することができる。
【００２７】
また、一つのレジスタ番号に割り付けられたレジスタのサイズよりも大きいデータを、容易に取り扱えるため、データ処理能力が向上可能なプロセッサとしても提供することができる。
【発明を実施するための最良の形態】
【００２８】
（実施の形態１）
以下、本発明に係る実施の形態１について図面を参照しながら説明する。
【００２９】
実施の形態１におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、レジスタファイルから演算器にデータを出力する直前に行うことを特徴とする。
【００３０】
以上の点を踏まえて本発明に係る実施の形態１におけるプロセッサについて説明する。
図３は、実施の形態１におけるプロセッサの構成を示す図である。
【００３１】
同図に示されるように、プロセッサ１００は、メモリ読み出し制御回路１２、メモリ書き込み制御回路１３、メモリ１４、演算器１５を備える。さらに、命令解読回路１０１、タグ値生成回路１０２、レジスタファイル１１０を備える。
【００３２】
命令解読回路１０１は、解読した命令に応じて信号を出力する。例えば、（ａ）解読した命令がロード命令である場合には、そのロード命令によって特徴付けられる信号（以下、ロード命令解読信号と呼称する。）を生成してメモリ読み出し制御回路１２とタグ値生成回路１０２とに出力する。（ｂ）解読した命令が演算命令である場合には、その演算命令によって特徴付けられる信号（以下、演算命令解読信号と呼称する。）を生成して演算器１５とタグ値生成回路１０２とに出力する。（ｃ）解読した命令がストア命令である場合には、そのストア命令によって特徴付けられる信号（以下、ストア命令解読信号と呼称する。）を生成してメモリ書き込み制御回路１３に出力する。
【００３３】
「ロード命令」とは、メモリからデータをロードする命令をいう。
「ストア命令」とは、メモリにデータをストアする命令をいう。
【００３４】
「演算命令」とは、演算処理が行われる命令をいう。
ロード命令解読信号には、メモリ１４にアクセスしてデータを読み出す上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。
【００３５】
演算命令解読信号には、演算処理の内容が特定される情報が含まれる。
ストア命令解読信号には、メモリ１４にアクセスしてデータを書き込む上で必要なアドレス、データサイズ、及びデータタイプ等の情報が含まれる。
【００３６】
タグ値生成回路１０２は、命令解読回路１０１から出力されたロード命令解読信号に応じて、そのロード命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を生成し、生成したタグ値を、そのデータと対応付けてレジスタファイル１１０に格納する。また、命令解読回路１０１から出力された演算命令解読信号に応じて、その演算命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を生成し、生成したタグ値を、そのデータと対応付けてレジスタファイル１１０に格納する。
【００３７】
なお、タグ値には、そのタグ値と対応付けられているデータの属性が示される。また、属性には、データサイズ、データタイプ、データを構成する各ビットの有効または無効の情報が含まれる。
【００３８】
レジスタファイル１１０は、タグフィールド１１１とデータフィールド１１２とから構成されるレジスタを複数備える。さらに、データ属性判定回路１１３とデータ変換回路１１４とを備える。
【００３９】
タグフィールド１１１には、タグ値が格納され、データフィールド１１２には、そのタグ値と対応付けられるデータが格納される。
【００４０】
また、データフィールド１１２とタグフィールド１１１とは、１対１の対応関係を有し、レジスタ番号（Ｒｅｇ＃０〜Ｒｅｇ＃Ｎ）によって管理されている。
【００４１】
データ属性判定回路１１３は、データフィールド１１２からデータが読み出される際に、そのデータと対応付けられているタグ値をタグフィールド１１１から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路１１４に出力する。
【００４２】
データ変換回路１１４は、データフィールド１１２からデータを読み出す際に、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータを出力する。変換しない場合には、読み出したデータを変換せずに、そのまま出力する。
【００４３】
メモリ読み出し制御回路１２は、命令解読回路１０１から出力されたロード命令解読信号に応じて、そのロード命令解読信号によって特徴付けられる信号（以下、メモリ読み出し制御信号と呼称する。）をメモリ１４に出力する。
【００４４】
メモリ書き込み制御回路１３は、命令解読回路１０１から出力されたストア命令解読信号に応じて、そのストア命令解読信号によって特徴付けられる信号（以下、メモリ書き込み制御信号と呼称する。）をメモリ１４に出力する。
【００４５】
メモリ１４は、メモリ読み出し制御回路１２から出力されたメモリ読み出し制御信号に応じて、そのメモリ読み出し制御信号によって特定されるデータをレジスタファイル１１０に格納する。また、メモリ書き込み制御回路１３から出力されたメモリ書き込み制御信号に応じて、そのメモリ書き込み制御信号によって特定されるデータをレジスタファイル１１０から読み出す。
【００４６】
なお、メモリ１４から読み出したデータは、配置変更、符号拡張、ゼロ拡張等のデータ変換が行われずに、レジスタファイル１１０に格納される。
【００４７】
演算器１５は、命令解読回路１０１から出力された演算命令解読信号に応じて、その演算命令解読信号によって特定されるデータをレジスタファイル１１０から読み出し、演算命令解読信号によって特定される演算処理を、そのデータに対して行う。そして、演算処理を行って得られたデータをレジスタファイル１１０に格納する。
【００４８】
続いて、一例として、実施の形態１におけるレジスタファイルの構成について説明する。
【００４９】
ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対して演算処理が行われ、演算処理が行われて得られたデータ、すなわち、演算した結果がレジスタ（Ｒｅｇ＃１）に格納される場合を例に説明する。
【００５０】
図４は、一例として、実施の形態１におけるレジスタファイルの構成を示す図である。
同図に示されるように、データ属性判定回路１１３は、レジスタ（Ｒｅｇ＃０）のタグフィールド１１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド１１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ１２４等に出力する。
【００５１】
これに対して、アライン部１２１は、レジスタ（Ｒｅｇ＃０）のデータフィールド１１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部１２２と符号拡張部１２３とに出力する。
【００５２】
「アライン処理」とは、Ｍ（Ｍは自然数。）ビットのデータの部分ビット列を、最下位ビットに合わせて整列させて出力する処理をいう。例えば、３２ビットのデータの８ビット目から１５ビット目までの部分ビット列が入力された場合には、０ビット目から７ビット目までに整列させたビット列が出力される。
【００５３】
ゼロ拡張部１２２は、アライン部１２１から出力されたデータに対してゼロ拡張処理を施し、処理後のデータをセレクタ１２４に出力する。
【００５４】
「ゼロ拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「０」にして出力する処理をいう。
【００５５】
符号拡張部１２３は、アライン部１２１から出力されたデータに対して符号拡張処理を施し、処理後のデータをセレクタ１２４に出力する。
【００５６】
「符号拡張処理」とは、Ｍ（Ｍは自然数。）ビットのデータをＮ（ＮはＭより大きい自然数。）ビットのデータに拡張する場合において、Ｍ−１ビット目から最上位ビット目までのビットを「Ｍビットのデータの符号ビットの値」にして出力する処理をいう。
【００５７】
セレクタ１２４は、レジスタ（Ｒｅｇ＃０）のデータフィールド１１２から出力されたデータ、ゼロ拡張部１２２から出力されたデータ、符号拡張部１２３から出力されたデータのいずれかを、データ属性判定回路１１３から出力されるデータ属性判定信号に応じて選択して演算器１５に出力する。
【００５８】
そして、演算器１５は、セレクタ１２４から出力されたデータに対して演算処理を行い、演算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）のデータフィールド１１２に格納する。
【００５９】
続いて、一例として、実施の形態１におけるレジスタのデータ構造について説明する。
図５は、一例として、実施の形態１におけるレジスタのデータ構造を示す図である。
【００６０】
同図に示されるように、レジスタは、８ビットのタグフィールド１５１と、３２ビットのデータフィールドとから構成されている。
【００６１】
タグフィールド１５１の０ビット目から３ビット目までの下位４ビットは、有効ビット、すなわち、データがデータフィールド１５２の何処から格納されているかを示す。例えば、（ａ）「１０００」の場合には、第３ビット列（３１ビット目）から格納されていることを示す。（ｂ）「０１００」の場合には、第２ビット列（２３ビット目）から格納されていることを示す。（ｃ）「００１０」の場合には、第１ビット列（１５ビット目）から格納されていることを示す。（ｄ）「０００１」の場合には、第０ビット列（７ビット目）から格納されていることを示す。
【００６２】
タグフィールド１５１の４ビット目から５ビット目までの２ビットは、データフィールド１５２に格納されるデータのサイズを示す。例えば、（ａ）「００」の場合には、３２ビット、（ｂ）「０１」の場合には、１６ビット、（ｃ）「１０」の場合には、８ビットを示す。なお、「１１」は、空きである。
【００６３】
タグフィールド１５１の６ビット目は、データフィールド１５２に格納されるデータが符号付きのデータであるか否かを示す。例えば、（ａ）「０」の場合には、符号なしのデータであり、（ｂ）「１」の場合には、符号付きのデータであることを示す。
【００６４】
タグフィールド１５１の７ビット目は、データフィールド１５２に格納されているデータが、配置変更、符号拡張、ゼロ拡張等のデータ変換が行われたデータであるか否かを示す。例えば、（ａ）「０」の場合には、変換完了、すなわち、変換後のデータであり、（ｂ）「１」の場合には、変換未完了、すなわち、変換前のデータであることを示す。
【００６５】
続いて、実施の形態１におけるデータ変換回路においてデータ変換される例について説明する。
【００６６】
図６Ａ〜図６Ｃは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す図である。
【００６７】
同図に示されるように、データ変換回路１１４は、下記（１）〜（３）の場合に応じて、データ変換する内容が異なる。
【００６８】
（１）命令１６１ａ（ｍｏｖ  Ｒｅｇ，  Ｍｅｍ）を実行し、３２ビットのデータをメモリ１６２ｂから読み出した場合には、データ変換回路１１４は、変換しない。すなわち、３２ビットのデータが３２ビットのレジスタ１６３ｂに格納される。（図６Ａ参照。）。
【００６９】
（２）命令１６１ｂ（ｍｏｖｂ  Ｒｅｇ，  Ｍｅｍ）を実行し、３２ビットのうち第１ビット列から有効の８ビットのデータをメモリ１６２ｂから読み出した場合には、データ変換回路１１４は、最下位ビットに合わせて整列してゼロ拡張したデータに変換する。そして、変換後のデータが３２ビットのレジスタ１６３ｂに格納される。（図６Ｂ参照。）。
【００７０】
（３）命令１６１ｃ（ｍｏｖｂｅｘ  Ｒｅｇ，  Ｍｅｍ）を実行し、３２ビットのうち第１ビット列から有効の８ビットのデータをメモリ１６２ｂから読み出した場合には、データ変換回路１１４は、最下位ビットに合わせて整列して符号拡張したデータに変換する。そして、変換後のデータが３２ビットのレジスタ１６３ｃに格納される（図６Ｃ参照。）。
【００７１】
続いて、実施の形態１におけるプロセッサの動作について説明する。
図７、図８Ａ〜図８Ｃは、実施の形態１におけるプロセッサの動作を示す図である。
【００７２】
図７に示されるように、命令解読回路１０１は、解読した命令に応じて下記（１）〜（３）のいずれかを実行する（ステップＳ１０１）。
【００７３】
（１）命令解読回路１０１は、解読した命令がロード命令である場合には、メモリ読み出し制御回路１２とタグ値生成回路１０２とにロード命令解読信号を出力する（ステップＳ１１１）。
【００７４】
これに応じて、メモリ読み出し制御回路１２は、メモリ１４にメモリ読み出し制御信号を出力する（ステップＳ１１２）。メモリ１４は、メモリ読み出し制御信号によって特定されるデータをレジスタファイル１１０に格納する（ステップＳ１１３）。一方、タグ値生成回路１０２は、ロード命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を、そのデータと対応付けてレジスタファイル１１０に格納する（ステップＳ１１４）。
【００７５】
このとき、図８Ａに示されるように、レジスタファイル１１０は、ロード命令解読信号によって特定されたデータがデータフィールド１１２に格納され（ステップＳ１２１）、そのデータと対応付けられているタグ値がタグフィールド１１１に格納される（ステップＳ１２２）。
【００７６】
（２）命令解読回路１０１は、解読した命令が演算命令である場合には、演算器１５とタグ値生成回路１０２とに演算命令解読信号を出力する（ステップＳ１３１）。
【００７７】
これに応じて、演算器１５は、演算命令解読信号によって特定されるデータをレジスタファイル１１０から読み出し（ステップＳ１３２）、読み出したデータに対して、演算命令解読信号によって特定される演算処理を行う（ステップＳ１３３）。そして、演算処理を行って得られたデータをレジスタファイル１１０に格納する（ステップＳ１３４）。一方、タグ値生成回路１０２は、演算命令解読信号によってレジスタファイル１１０に格納されるデータの属性を示すタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイル１１０に格納する（ステップＳ１３５）。
【００７８】
このとき、図８Ｂに示されるように、レジスタファイル１１０は、データ属性判定回路１１３において、演算命令解読信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ１４１）、判定結果をデータ属性判定信号としてデータ変換回路１１４に出力する（ステップＳ１４２）。そして、データ変換回路１１４において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ１４３）。判定した結果、変換する場合には（ステップＳ１４３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ１４４）、変換後のデータを演算器１５に出力する（ステップＳ１４５）。
【００７９】
なお、変換しない場合には（ステップＳ１４３：Ｎｏ）、演算命令解読信号によって特定されたデータを変換せずに、そのまま演算器１５に出力する。
【００８０】
（３）命令解読回路１０１は、解読した命令がストア命令である場合には、メモリ書き込み制御回路１３にストア命令解読信号を出力する（ステップＳ１５１）。
【００８１】
これに応じて、メモリ書き込み制御回路１３は、メモリ１４にメモリ書き込み制御信号を出力する（ステップＳ１５２）。メモリ１４は、メモリ書き込み制御信号によって特定されるデータをレジスタファイル１１０から読み出す（ステップＳ１５３）。
【００８２】
このとき、図８Ｃに示されるように、レジスタファイル１１０は、データ属性判定回路１１３において、ストア命令解読信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ１６１）、判定結果をデータ属性判定信号としてデータ変換回路１１４に出力する（ステップＳ１６２）。そして、データ変換回路１１４において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ１６３）。判定した結果、変換する場合には（ステップＳ１６３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ１６４）、変換後のデータをメモリ１４に出力する（ステップＳ１６５）。
【００８３】
なお、変換しない場合には（ステップＳ１６３：Ｎｏ）、メモリ書き込み制御信号によって特定されたデータを変換せずにメモリ１４に出力する。
【００８４】
以上、説明したように実施の形態１におけるプロセッサ１００によれば、タグフィールド１１１、データフィールド１１２、データ属性判定回路１１３、及びデータ変換回路１１４をレジスタファイル１１０に備える。
【００８５】
これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル１１０との間で行う代わりに、レジスタファイル１１０から演算器１５にデータを出力する直前に行うことができ、メモリ１４とレジスタファイル１１０との間において生じる遅延を削減することができる。さらに、演算器１５は、既存のものを流用できるため設計も容易である。
【００８６】
（実施の形態２）
次に、本発明に係る実施の形態２について図面を参照しながら説明する。
【００８７】
実施の形態２におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、レジスタファイルから演算器にデータを出力する前に、レジスタファイルの内部で行うことを特徴とする。
【００８８】
以上の点を踏まえて実施の形態２におけるプロセッサについて説明する。
なお、実施の形態１と同一の構成要素については、同一の符号を付して説明を省略する。
【００８９】
図９は、実施の形態２におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ２００は、実施の形態１におけるプロセッサ１００と比べて、レジスタファイル１１０の代わりにレジスタファイル２１０を備える点が異なる（図３参照。）。
【００９０】
レジスタファイル２１０は、レジスタファイル１１０と比べて、タグフィールド１１１、データフィールド１１２、データ属性判定回路１１３、データ変換回路１１４の代わりに、タグフィールド２１１、データフィールド２１２、データ属性判定回路２１３、データ変換回路２１４を備える点が異なる。
【００９１】
データ属性判定回路２１３は、新たに、データがデータフィールド２１２に格納されると、そのデータと対応付けられているタグ値をタグフィールド２１１から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路２１４に出力する。また、その判定結果に基づいて、そのタグ値を変換するか否かを判定する。判定した結果、変換する場合には、その判定結果に基づいて、そのタグ値を変換し、変換前のタグ値を変換後のタグ値に置き換えるようにして変換後のタグ値をレジスタファイル２１０に格納する。
【００９２】
データ変換回路２１４は、新たに、データがデータフィールド２１２に格納されると、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、そのデータを変換し、変換後のデータをデータフィールド２１２に格納する。変換しない場合には、そのデータを変換しない。
【００９３】
続いて、一例として、実施の形態２におけるレジスタファイルの構成について説明する。
【００９４】
ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対してデータ変換が行われ、変換後のデータがレジスタ（Ｒｅｇ＃０）に格納される場合を例に説明する。
【００９５】
図１０は、一例として、実施の形態２におけるレジスタファイルの構成を示す図である。
【００９６】
同図に示されるように、データ属性判定回路２１３は、レジスタ（Ｒｅｇ＃０）のタグフィールド２１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ２２４等に出力する。
【００９７】
これに対して、アライン部２２１は、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部２２２と符号拡張部２２３とに出力する。
【００９８】
なお、ゼロ拡張部２２２と符号拡張部２２３とは、実施の形態１におけるゼロ拡張部１２２と符号拡張部１２３と同一の構成により説明を省略する。
【００９９】
セレクタ２２４は、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から出力されたデータ、ゼロ拡張部２２２から出力されたデータ、符号拡張部２２３から出力されたデータのいずれかを、データ属性判定回路２１３から出力されるデータ属性判定信号に応じて選択してレジスタ（Ｒｅｇ＃０）のデータフィールド１１２に格納する。
【０１００】
さらに、データ属性判定回路２１３は、読み出したタグ値を変換し、変換後のタグ値をレジスタ（Ｒｅｇ＃０）のタグフィールド２１２に格納する。
【０１０１】
そして、演算器１５は、レジスタ（Ｒｅｇ＃０）のデータフィールド２１２から出力された変換後のデータに対して演算処理を行い、演算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）等のデータフィールド２１２に格納する。
【０１０２】
続いて、実施の形態２におけるプロセッサ２００の動作について説明する。
図１１、図１２Ａ、図１２Ｂは、実施の形態２におけるプロセッサの動作を示す図である。
【０１０３】
図１１、図１２Ａ、図１２Ｂに示されるように、プロセッサ２００は、実施の形態１におけるプロセッサ１００と比べて、下記（１）〜（３）の点が異なる。
【０１０４】
（１）ロード命令実行時における動作については、実施の形態１における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と比べて、下記の点が異なる（図８Ａ、図１１参照。）。
【０１０５】
レジスタファイル２１０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１２１〜Ｓ１２２）の代わりに、ロード命令が実行されて、新たに、データがデータフィールド２１２に格納されると（ステップＳ２２１）、データ属性判定回路２１３において、そのデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ２２２）、判定結果をデータ属性信号としてデータ変換回路２１３に出力する（ステップＳ２２３）。また、その判定結果に基づいて、そのタグ値を変換するか否かを判定する（ステップＳ２２４）。判定した結果、変換する場合には（ステップＳ２２４：Ｙｅｓ）、その判定結果に基づいて、そのタグ値を変換し（ステップＳ２２５）、変換前のタグ値を変換後のタグ値に置き換えるようにして変換後のタグ値をタグフィールド２１１に格納する（ステップＳ２２６）。そして、データ変換回路２１３において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ２２７）。判定した結果、変換する場合には（ステップＳ２２７：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ２２８）、変換前のデータを変換後のデータに置き換えるようにして変換後のデータをデータフィールド２１２に格納する（ステップＳ２２９）。
【０１０６】
（２）演算命令実行時における動作については、実施の形態１における動作（ステップＳ１３１〜Ｓ１３５、Ｓ１４１〜Ｓ１４４）と比べて、下記の点が異なる（図８Ｂ、図１２Ａ参照。）。
【０１０７】
レジスタファイル２１０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１４１〜Ｓ１４４）の代わりに、演算命令が実行されると、データがデータフィールド２１２から読み出される（ステップＳ２４１）。
【０１０８】
（３）ストア命令実行時における動作については、実施の形態１における動作（ステップＳ１５１〜Ｓ１５３、Ｓ１６１〜Ｓ１６４）と比べて、下記の点が異なる（図８Ｃ、図１２Ｂ参照。）。
【０１０９】
レジスタファイル２１０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１６１〜Ｓ１６４）の代わりに、ストア命令が実行されると、データフィールド２１２に格納されているデータをメモリ１４に出力する（ステップＳ２６１）。
【０１１０】
以上、説明したように実施の形態２におけるプロセッサ２００によれば、タグフィールド２１１、データフィールド２１２、データ属性判定回路２１３、及びデータ変換回路２１４をレジスタファイル２１０に備える。
【０１１１】
これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル２１０との間で行う代わりに、レジスタファイル２１０から演算器１５にデータを出力する前に、レジスタファイル２１０の内部で行うことができ、メモリ１４とレジスタファイル２１０との間において生じる遅延を削減することができる。また、データ変換をレジスタファイル２１０の内部で行うため、レジスタファイル２１０と演算器１５との間と、レジスタファイル２１０とメモリ１４との間とに対しても、遅延増加の影響を与えない。さらに、演算器１５は、既存のものを流用できるため設計も容易である。
【０１１２】
（実施の形態３）
次に、本発明に係る実施の形態３について図面を参照しながら説明する。
【０１１３】
実施の形態３におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、演算器とメモリ書き込み制御回路との夫々の内部で行うことを特徴とする。
【０１１４】
以上の点を踏まえて実施の形態３におけるプロセッサについて説明する。
なお、実施の形態１と同一の構成要素については、同一の符号を付して説明を省略する。
【０１１５】
図１３は、実施の形態３におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ３００は、実施の形態１におけるプロセッサ１００と比べて、下記（１）〜（３）の点が異なる（図３参照。）。
【０１１６】
（１）レジスタファイル１１０の代わりにレジスタファイル３１０を備える。
レジスタファイル３１０は、レジスタファイル１１０と比べて、データ属性判定回路１１３とデータ変換回路１１４とを備えない点が異なる。
【０１１７】
（２）演算器１５の代わりに演算器３２０を備える。
演算器３２０は、演算器１５と比べて、新たに、データ属性判定回路３２１と演算処理回路３２２とを備える点が異なる。
【０１１８】
データ属性判定回路３２１は、演算命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル３１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路３２２に出力する。
【０１１９】
演算処理回路３２２は、演算命令解読信号によって特定されたデータをレジスタファイル３１０から読み出す。データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータに対して演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイル３１０のデータフィールド３１１に格納する。
【０１２０】
なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。
【０１２１】
（３）メモリ書き込み制御回路１３の代わりにメモリ書き込み制御回路３３０を備える。
【０１２２】
メモリ書き込み制御回路３３０は、メモリ書き込み制御回路１３と比べて、新たに、データ属性判定回路３３１とデータ変換回路３３２とを備える点が異なる。
【０１２３】
データ属性判定回路３３１は、ストア命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル３１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路３３２に出力する。さらに、ストア命令解読信号とタグ値とに応じたメモリ書き込み制御信号を生成してメモリ１４に出力する。
【０１２４】
データ変換回路３３２は、ストア命令解読信号によって特定されたデータをレジスタファイル３１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータをメモリ１４に出力する。
【０１２５】
なお、変換しない場合には、読み出したデータを変換せずに、そのままメモリ１４に出力する。
【０１２６】
続いて、一例として、実施の形態３における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対して加算処理が行われ、加算処理が行われて得られたデータ、すなわち、加算した結果をレジスタ（Ｒｅｇ＃１）に格納される場合を例に説明する。
【０１２７】
図１４は、一例として、実施の形態３における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路３２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド３１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド３１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ３４４等に出力する。
【０１２８】
これに対して、アライン部３４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド３１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部３４２と符号拡張部３４３とに出力する。
【０１２９】
ゼロ拡張部３４２は、アライン部３４１から出力されたデータに対してゼロ拡張処理を施し、処理後のデータをセレクタ３４４に出力する。
【０１３０】
符号拡張部３４３は、アライン部３４１から出力されたデータに対して符号拡張処理を施し、処理後のデータをセレクタ３４４に出力する。
【０１３１】
セレクタ３４４は、レジスタ（Ｒｅｇ＃０）のデータフィールド３１２から出力されたデータ、ゼロ拡張部３４２から出力されたデータ、符号拡張部３４３から出力されたデータのいずれかを、データ属性判定回路３２１から出力されるデータ属性判定信号に応じて選択して加算器３４５に出力する。
【０１３２】
加算器３４５は、セレクタ３４４から出力されたデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）のデータフィールド３１２に格納する。
【０１３３】
続いて、実施の形態３におけるプロセッサ３００の動作について説明する。
図１５Ａ、図１５Ｂは、実施の形態３におけるプロセッサの動作を示す図である。
【０１３４】
同図に示されるように、プロセッサ３００は、実施の形態１におけるプロセッサ１００と比べて、下記の点が異なる。
【０１３５】
（１）ロード命令実行時における動作については、実施の形態１における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と同一により説明を省略する。
【０１３６】
（２）演算命令実行時における動作については、実施の形態１における動作（ステップＳ１３１〜Ｓ１３５、Ｓ１４１〜Ｓ１４５）と比べて、下記の点が異なる（図８Ｂ、図１５Ａ参照。）。
【０１３７】
演算器３２０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１４１〜Ｓ１４４）の代わりに、演算命令が実行されると、データ属性判定回路３２１において、演算命令解読信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ３４１）、判定結果をデータ属性判定信号として演算処理回路３２２に出力する（ステップＳ３４２）。そして、演算処理回路３２２において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ３４３）。判定した結果、変換する場合には（ステップＳ３４３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ３４４）、変換後のデータに対して演算処理を行う（ステップＳ３４５）。その演算処理を行って得られたデータをレジスタファイル３１０のデータフィールド３１２に格納する（ステップＳ３４６）。
【０１３８】
なお、変換しない場合には（ステップＳ３４３：Ｎｏ）、演算命令解読信号によって特定されたデータを変換せずに、そのままで演算処理を行う。
【０１３９】
（３）ストア命令実行時における動作については、実施の形態１における動作（ステップＳ１５１〜Ｓ１５３、Ｓ１６１〜Ｓ１６５）と比べて、下記の点が異なる（図８Ｃ、図１５Ｂ参照。）。
【０１４０】
メモリ書き込み制御回路３３０は、実施の形態１におけるレジスタファイル１１０の動作（ステップＳ１６１〜Ｓ１６４）の代わりに、ストア命令が実行されると、データ属性判定回路３３１において、メモリ書き込み制御信号によって特定されたデータと対応付けられているタグ値から、そのデータの属性を判定し（ステップＳ３６１）、判定結果をデータ属性判定信号としてデータ変換回路３３２に出力する（ステップＳ３６２）。そして、データ変換回路３３２において、データ属性判定信号に基づいて、そのデータを変換するか否かを判定する（ステップＳ３６３）。判定した結果、変換する場合には（ステップＳ３６３：Ｙｅｓ）、データ属性判定信号に基づいて、そのデータを変換し（ステップＳ３６４）、変換後のデータをメモリに出力する（ステップＳ３６５）。
【０１４１】
なお、変換しない場合には（ステップＳ３６３：Ｎｏ）、メモリ書き込み制御信号によって特定されたデータを変換せずに、そのままメモリ１４に出力する。
【０１４２】
以上、説明したように実施の形態３におけるプロセッサ３００によれば、タグフィールド３１１とデータフィールド３１２とをレジスタファイル３１０に備え、データ属性判定回路３２１と演算処理回路３２２とを演算器３２０に備え、データ属性判定回路３３１とデータ変換回路３３２とをメモリ書き込み制御部３３０に備える。
【０１４３】
これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル３１０との間で行う代わりに、演算器３２０とメモリ書き込み制御回路３３０との夫々の内部で行うことができ、メモリ１４とレジスタファイル３１０との間において生じる遅延を削減することができる。
【０１４４】
（実施の形態４）
次に、本発明に係る実施の形態４について図面を参照しながら説明する。
【０１４５】
実施の形態４におけるプロセッサは、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリとレジスタファイルとの間で行う代わりに、演算器とメモリ書き込み制御回路との夫々の内部で行うことを特徴とする。
【０１４６】
以上の点を踏まえて実施の形態４におけるプロセッサについて説明する。
なお、実施の形態３と同一の構成要素については、同一の符号を付して説明を省略する。
【０１４７】
図１６は、実施の形態４におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ４００は、実施の形態３におけるプロセッサ３００と比べて、下記（１）〜（３）の点が異なる（図５参照。）。
【０１４８】
（１）命令解読回路１０１の代わりに命令解読回路４０１を備える。
命令解読回路４０１は、命令解読回路１０１と比べて、演算命令を実行する場合において、タグ値生成回路４０２に演算命令解読信号を出力しない点が異なる。
【０１４９】
（２）タグ値生成回路１０２の代わりにタグ値生成回路４０２を備える。
タグ値生成回路４０２は、タグ値生成回路１０２と比べて、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成しない点が異なる。
【０１５０】
（３）演算器３２０の代わりに演算器４２０を備える。
演算器４２０は、演算器３２０と比べて、データ属性判定回路３２１と演算処理回路３２２との代わりに、データ属性判定回路４２１と演算処理回路４２２とを備える点が異なる。
【０１５１】
データ属性判定回路４２１は、演算命令解読信号によって特定されるデータと対応付けられているタグ値をレジスタファイル４１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路４２２に出力する。さらに、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成し、生成したタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイル４１０に格納する。
【０１５２】
演算処理回路４２２は、演算命令解読信号によって特定されるデータをレジスタファイル４１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイル４１０に格納する。
【０１５３】
なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。
【０１５４】
続いて、一例として、実施の形態４における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）から読み出されたデータに対して演算処理を行い、演算処理を行って得られたデータを、すなわち、演算した結果がレジスタ（Ｒｅｇ＃１）に格納される場合を例に説明する。
【０１５５】
図１７は、一例として、実施の形態４における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路４２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド４１１からタグ値を読み出し、読み出したタグ値に基づいて、レジスタ（Ｒｅｇ＃０）のデータフィールド４１２から読み出されるデータの属性を判定する。そして、判定結果をデータ属性判定信号としてセレクタ４４４等に出力する。
【０１５６】
これに対して、アライン部４４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド４１２から出力されたデータに対してアライン処理を施し、処理後のデータをゼロ拡張部４４２と符号拡張部４４３とに出力する。
【０１５７】
セレクタ４４４は、レジスタ（Ｒｅｇ＃０）のデータフィールド４１２から出力されたデータ、ゼロ拡張部４４２から出力されたデータ、符号拡張部４４３から出力されたデータのいずれかを、データ属性判定回路４２１から出力されるデータ属性判定信号に応じて選択して加算器４４５に出力する。
【０１５８】
加算器４４５は、セレクタ４４４から出力されたデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、演算結果をレジスタ（Ｒｅｇ＃１）のデータフィールド４１２に格納する。
【０１５９】
さらに、データ属性判定回路４２１は、加算器４４５において加算処理が行われて得られるデータ、すなわち、演算結果についてのタグ値を生成し、生成したタグ値をレジスタ（Ｒｅｇ＃１）のタグフィールド４１１に格納する。
【０１６０】
なお、ゼロ拡張部４４２と符号拡張部４４３とは、実施の形態３におけるゼロ拡張部３４２と符号拡張部３４３と同一の構成により説明を省略する。
【０１６１】
続いて、実施の形態４における動作について説明する。
図１８、図１９は、実施の形態４におけるプロセッサの動作を示す図である。
【０１６２】
図１８、図１９に示されるように、プロセッサ４００は、実施の形態３におけるプロセッサ３００と比べて、下記（２）の点が異なる。
【０１６３】
（１）ロード命令実行時における動作については、実施の形態３における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と同一により説明を省略する。
【０１６４】
（２）演算命令実行時における動作については、実施の形態３における動作（Ｓ１３１〜Ｓ１３５、Ｓ３４１〜Ｓ３４６）と比べて、下記の点が異なる（図７、図１５Ａ、図１８、図１９参照。）。
【０１６５】
命令解読回路４０１は、実施の形態３における命令解読回路１０１の動作（ステップＳ１３１）の代わりに、解読した命令が演算命令である場合には、演算器４２０に演算命令解読信号を出力する（ステップＳ４３１）。
【０１６６】
また、演算器４２０は、実施の形態３におけるタグ値生成回路１０２の動作（ステップＳ１３５）の代わりに、データ属性判定回路４２１において、演算命令解読信号によってレジスタファイル４１０に格納されるデータの属性を示すタグ値を、そのデータと対応付けてレジスタファイル４１０のタグフィールド４１１に格納する（ステップＳ４４１）。
【０１６７】
（３）ストア命令実行時における動作については、実施の形態３における動作（ステップＳ１５１〜Ｓ１５３、Ｓ３６１〜Ｓ３６５）と同一により説明を省略する。
【０１６８】
以上、説明したように実施の形態４におけるプロセッサ４００によれば、タグフィールド４１１とデータフィールド４１２とをレジスタファイル４１０に備え、データ属性判定回路４２１と演算処理回路４２２とを演算器４２０に備え、データ属性判定回路４３１とデータ変換回路４３２とをメモリ書き込み制御部４３０に備える。
【０１６９】
これにより、配置変更、符号拡張、ゼロ拡張等のデータ変換を、メモリ１４とレジスタファイル４１０との間で行う代わりに、演算器４２０とメモリ書き込み制御回路３３０との夫々の内部で行うことができ、メモリ１４とレジスタファイル４１０との間において生じる遅延を削減することができる。また、演算処理を行って得られたデータに、そのデータの属性を示すタグ値が付加されるため、演算処理を行う命令に対してデータの属性を指定する必要がなく、命令数の削減、命令解読回路４０１の簡略化が実現され得る。
【０１７０】
（実施の形態５）
次に、本発明に係る実施の形態５について図面を参照しながら説明する。
【０１７１】
実施の形態５におけるプロセッサは、データフィールドのサイズよりも大きいデータに対しては、複数のレジスタに跨って格納される。さらに、複数のレジスタに跨って格納されているものから、データを復元し、復元後のデータに対して演算処理を行うことを特徴とする。
【０１７２】
以上の点を踏まえて実施の形態５におけるプロセッサについて説明する。
なお、実施の形態３と同一の構成要素については、同一の符号を付して説明を省略する。
【０１７３】
図２０は、実施の形態５におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ５００は、実施の形態３におけるプロセッサ３００と比べて、下記（１）〜（３）の点が異なる（図５参照。）。
【０１７４】
（１）レジスタファイル３１０の代わりにレジスタファイル５１０を備える。
レジスタファイル５１０は、レジスタファイル３１０と比べて、データフィールド５１２のサイズよりも大きいデータが格納される場合には、そのデータを複数のレジスタに跨って格納される点が異なる。
【０１７５】
（２）演算器３２０の代わりに演算器５２０を備える。
演算器５２０は、演算器３２０と比べて、データ属性判定回路３２１と演算処理回路３２２との代わりに、データ属性判定回路５２１と演算処理回路５２２とを備える点が異なる。
【０１７６】
データ属性判定回路５２１は、演算命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル５１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路５２２に出力する。さらに、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成し、生成したタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイルに格納する。
【０１７７】
演算処理回路５２２は、演算命令解読信号によって特定されるデータをレジスタファイル５１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換する。変換後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイルに格納する。
【０１７８】
なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。
【０１７９】
なお、演算処理回路５２２は、データが複数のレジスタに跨ってレジスタファイルに格納されている場合には、それ等のレジスタから読み出したものからデータを復元し、復元後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータを複数のレジスタに跨ってレジスタファイル５１０に格納する。
【０１８０】
（３）メモリ書き込み制御回路３３０の代わりにメモリ書き込み制御回路５３０を備える。
【０１８１】
メモリ書き込み制御回路５３０は、メモリ書き込み制御回路３３０と比べて、データ属性判定回路３３１とデータ変換回路３３２との代わりに、データ属性判定回路５３１とデータ変換回路５３２とを備える点が異なる。
【０１８２】
データ属性判定回路５３１は、ストア命令解読信号によって特定されたデータと対応付けられているタグ値をレジスタファイル５１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号としてデータ変換回路５３０に出力する。さらに、ストア命令解読信号とタグ値とに応じたメモリ書き込み制御信号をメモリに出力する。
【０１８３】
データ変換回路５３２は、ストア命令解読信号によって特定されるデータをレジスタファイル５１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータをメモリに出力する。
【０１８４】
なお、変換しない場合には、読み出したデータを変換せずに、そのままメモリ１４に出力する。
【０１８５】
なお、データ変換回路５３２は、データが複数のレジスタに跨ってレジスタファイル５１０に格納されている場合には、それ等のレジスタから読み出したものからデータを復元し、復元後のデータをメモリ１４に出力する。
【０１８６】
続いて、一例として、実施の形態５における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータに対して加算処理が行われ、加算処理が行われて得られたデータ、すなわち、加算した結果が分割されてレジスタ（Ｒｅｇ＃２）とレジスタ（Ｒｅｇ＃３）とに格納される場合を例に説明する。
【０１８７】
図２１は、一例として、実施の形態５における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路５２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド５１１からタグ値を読み出し、読み出したタグ値に基づいて、読み出したタグ値と対応付けられているデータがレジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであると判定する。そして、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであることが示されるデータ属性判定信号をセレクタ５４１、加算器５４２、セレクタ５４３等に出力する。
【０１８８】
これに対して、セレクタ５４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド５１２から出力されたデータと、レジスタ（Ｒｅｇ＃１）のデータフィールド５１２から出力されたデータとのうち、レジスタ（Ｒｅｇ＃１）のデータフィールド５１２から出力されたデータを選択して加算器５４２に出力する。
【０１８９】
さらに、加算器５４２は、レジスタ（Ｒｅｇ＃０）のデータフィールド５１２から出力されたデータを上位部分とし、セレクタ５４１から出力されたデータ、すなわち、レジスタ（Ｒｅｇ＃１）のデータフィールド５１２から出力されたデータを下位部分として、上位部分と下位部分とを結合してデータを復元する。そして、復元後のデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、加算した結果を上位部分と下位部分とに分割して夫々をセレクタ５４３に出力する。また、下位部分をレジスタ（Ｒｅｇ＃３）のデータフィールドに格納する。
【０１９０】
そして、セレクタ５４３は、加算器５４２から出力された上位部分と下位部分とのうち、上位部分を選択してレジスタ（Ｒｅｇ＃２）のデータフィールド５１２に格納する。
【０１９１】
続いて、一例として、実施の形態５におけるレジスタのデータ構造について説明する。
図２２は、一例として、実施の形態５におけるレジスタのデータ構造を示す図である。
【０１９２】
同図に示されるように、実施の形態５におけるレジスタは、実施の形態１におけるレジスタと下記（２）の点が異なる。
【０１９３】
（１）タグフィールド５５１の０ビット目から３ビット目までの下位４ビットは、タグフィールド１５１の０ビット目から３ビット目までの下位４ビットと同一により説明を省略する。
【０１９４】
（２）タグフィールド５５１の４ビット目から５ビット目までの２ビットは、タグフィールド１５１の４ビット目から５ビット目までの２ビットと比べて、（ｄ）「１１」の場合には、６４ビットである点が異なる。その場合には、データフィールドのサイズは３２ビットのまま、複数のレジスタのデータフィールド５５３が割り当てられる。
【０１９５】
（３）タグフィールド５５１の６ビット目から７ビット目までの２ビットは、タグフィールド１５１の６ビット目から７ビット目までの２ビットと同一により説明を省略する。
【０１９６】
続いて、実施の形態５におけるプロセッサの動作について説明する。
図２３〜図２５は、実施の形態５におけるプロセッサの動作を示す図である。
【０１９７】
図２３〜図２５に示されるように、プロセッサ５００は、実施の形態３におけるプロセッサ３００と比べて、下記（１）〜（３）の点が異なる。
【０１９８】
（１）ロード命令実行時における動作については、実施の形態３における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２）と比べて、下記の点が異なる（図８Ａ、図２３参照。）。
【０１９９】
レジスタファイル５１０は、メモリ読み出し制御信号によって特定されたデータがデータフィールドのサイズよりも大きい場合には（ステップＳ５２１：Ｎｏ）、そのデータが複数のレジスタに跨って格納される（ステップＳ５２２）。
【０２００】
（２）演算命令実行時における動作については、実施の形態３における動作（ステップＳ１３１〜Ｓ１３５、Ｓ３４１〜Ｓ３４６）と比べて、下記の点が異なる（図１５Ａ、図２４参照。）。
【０２０１】
演算器５２０は、演算命令解読信号によって特定されるデータが複数のレジスタに跨って格納されている場合には（ステップ５４１：Ｎｏ）、それ等のレジスタから読み出したものから、そのデータを復元し（ステップＳ５４２）、復元後のデータに対して演算処理を行う（ステップＳ５４３）。演算処理を行って得られたデータを複数のレジスタに跨ってレジスタファイル５１０に格納する（ステップＳ５４４）。
【０２０２】
（３）ストア命令実行時における動作については、実施の形態３における動作（ステップＳ１５１〜Ｓ１５３、Ｓ３６１〜Ｓ３６５）と比べて、下記の点が異なる（図１５Ａ、図２５参照。）。
【０２０３】
メモリ書き込み制御回路５３０は、メモリ書き込み制御信号によって特定されたデータが複数のレジスタに跨って格納されている場合には（ステップ５６１：Ｎｏ）、それ等のレジスタから読み出したものから、そのデータを復元し（ステップＳ５６２）、復元後のデータをメモリ１４に出力する（ステップＳ３６５）。
【０２０４】
以上、説明したように実施の形態５におけるプロセッサ５００によれば、タグフィールド５１１とデータフィールド５１２とをレジスタファイル５１０に備え、データ属性判定回路５２１と演算処理回路５２２とを演算器５２０に備え、データ属性判定回路５３１とデータ変換回路５３２とをメモリ書き込み制御部５３０に備える。
【０２０５】
これにより、データフィールド５１２のサイズよりも大きいデータを、容易に取り扱うことができる。
【０２０６】
（実施の形態６）
次に、本発明に係る実施の形態６について図面を参照しながら説明する。
【０２０７】
実施の形態６におけるプロセッサは、データフィールドのサイズよりも大きいデータに対しては、複数のレジスタに跨って格納される。さらに、複数のレジスタに跨って格納されているものから、データを復元し、復元後のデータに対して演算処理を行うことを特徴とする。
【０２０８】
以上の点を踏まえて実施の形態６におけるプロセッサについて説明する。
なお、実施の形態５と同一の構成要素については、同一の符号を付して説明を省略する。
【０２０９】
図２６は、実施の形態６におけるプロセッサの構成を示す図である。
同図に示されるように、プロセッサ６００は、実施の形態５におけるプロセッサ５００と比べて、下記（１）〜（３）の点が異なる（図７参照。）。
【０２１０】
（１）命令解読回路１０１の代わりに命令解読回路６０１を備える。
命令解読回路６０１は、命令解読回路１０１と比べて、演算命令を実行する場合において、タグ値生成回路６０２に演算命令解読信号を出力しない点が異なる。
【０２１１】
（２）タグ値生成回路１０２の代わりにタグ値生成回路６０２を備える。
タグ値生成回路６０２は、タグ値生成回路１０２と比べて、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成しない点が異なる。
【０２１２】
（３）演算器５２０の代わりに演算器６２０を備える。
演算器６２０は、演算器５２０と比べて、データ属性判定回路５２１と演算処理回路５２２との代わりに、データ属性判定回路６２１と演算処理回路６２２とを備える点が異なる。
【０２１３】
データ属性判定回路６２１は、演算命令解読信号によって特定されるデータと対応付けられているタグ値をレジスタファイル６１０から読み出し、読み出したタグ値に基づいて、そのデータの属性を判定する。そして、判定結果をデータ属性判定信号として演算処理回路６２２に出力する。さらに、演算命令解読信号によって特定される演算処理を行って得られるデータの属性を示すタグ値を生成し、生成したタグ値を、演算処理を行って得られたデータと対応付けてレジスタファイル６１０に格納する。
【０２１４】
演算処理回路６２２は、演算命令解読信号によって特定されるデータをレジスタファイル６１０から読み出し、データ属性判定信号に基づいて、読み出したデータを変換するか否かを判定する。判定した結果、変換する場合には、データ属性判定信号に基づいて、読み出したデータを変換し、変換後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータをレジスタファイル６１０に格納する。
【０２１５】
なお、変換しない場合には、読み出したデータを変換せずに、そのままで演算処理を行う。
【０２１６】
なお、演算処理回路６２２は、データが複数のレジスタに跨ってレジスタファイル６１０に格納されている場合には、それ等のレジスタから読み出したものからデータを復元し、復元後のデータに対して、演算命令解読信号によって特定される演算処理を行う。そして、演算処理を行って得られたデータを複数のレジスタに跨ってレジスタファイル６１０に格納する。
【０２１７】
続いて、一例として、実施の形態６における演算器の構成について説明する。
ここでは、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータに対して加算処理が行われ、加算処理が行われて得られたデータ、すなわち、加算した結果が分割されてレジスタ（Ｒｅｇ＃２）とレジスタ（Ｒｅｇ＃３）とに格納される場合を例に説明する。
【０２１８】
図２７は、一例として、実施の形態６における演算器の構成を示す図である。
同図に示されるように、データ属性判定回路６２１は、レジスタ（Ｒｅｇ＃０）のタグフィールド６１１からタグ値を読み出し、読み出したタグ値に基づいて、読み出したタグ値と対応付けられているデータがレジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであると判定する。そして、レジスタ（Ｒｅｇ＃０）とレジスタ（Ｒｅｇ＃１）とに跨って格納されているデータであることが示されるデータ属性判定信号をセレクタ６４１、加算器６４２、セレクタ６４３等に出力する。
【０２１９】
これに対して、セレクタ６４１は、レジスタ（Ｒｅｇ＃０）のデータフィールド６１２から出力されたデータと、レジスタ（Ｒｅｇ＃１）のデータフィールド６１２から出力されたデータとのうち、レジスタ（Ｒｅｇ＃１）のデータフィールド６１２から出力されたデータを選択して加算器６４２に出力する。
【０２２０】
さらに、加算器６４２は、レジスタ（Ｒｅｇ＃０）のデータフィールド６１２から出力されたデータを上位部分とし、セレクタ６４１から出力されたデータ、すなわち、レジスタ（Ｒｅｇ＃１）のデータフィールド６１２から出力されたデータを下位部分として、上位部分と下位部分とを結合してデータを復元する。そして、復元後のデータに対して加算処理を行い、加算処理を行って得られたデータ、すなわち、加算した結果を上位部分と下位部分とに分割して夫々をセレクタ６４３に出力する。また、下位部分をレジスタ（Ｒｅｇ＃３）のデータフィールドに格納する。
【０２２１】
そして、セレクタ６４３は、加算器６４２から出力された上位部分と下位部分とのうち、上位部分を選択してレジスタ（Ｒｅｇ＃２）のデータフィールド６１２に格納する。
【０２２２】
さらに、データ属性判定回路６２１は、加算器６４２において加算した結果についてのタグ値、すなわち、レジスタ（Ｒｅｇ＃２）とレジスタ（Ｒｅｇ＃３）とに跨って格納されているデータであることが示されるタグ値を生成し、生成したタグ値をレジスタ（Ｒｅｇ＃２）のタグフィールド６１１に格納する。
【０２２３】
続いて、実施の形態６におけるプロセッサ６００の動作について説明する。
図２８、図２９は、実施の形態６におけるプロセッサの動作を示す図である。
【０２２４】
図２８、図２９に示されるように、プロセッサ６００は、実施の形態５におけるプロセッサ５００と比べて、下記（２）の点が異なる。
【０２２５】
（１）ロード命令実行時における動作については、実施の形態５における動作（ステップＳ１１１〜Ｓ１１４、Ｓ１２１〜Ｓ１２２、Ｓ５２１〜Ｓ５２２）と同一により説明を省略する。
【０２２６】
（２）演算命令実行時における動作については、実施の形態５における動作（ステップＳ１３１〜Ｓ１３５、Ｓ３４１〜Ｓ３４６、Ｓ５４１〜Ｓ５４４）と比べて、下記の点が異なる（図７、図２４、図２８、図２９参照。）。
【０２２７】
命令解読回路６０１は、実施の形態５における命令解読回路１０１の動作（ステップＳ１３１）の代わりに、解読した命令が演算命令である場合には、演算器６２０に演算命令解読信号を出力する（ステップＳ６３１）。
【０２２８】
また、演算器６２０は、実施の形態５におけるタグ値生成回路１０２の動作（ステップＳ１３５）の代わりに、データ属性判定回路６２１において、演算処理を行って得られるデータの属性を示すタグ値を、そのデータと対応付けてレジスタファイル６１０のタグフィールド６１１に格納する（ステップＳ６４１）。
【０２２９】
（３）ストア命令実行時における動作については、実施の形態５における動作（ステップＳ１５１〜Ｓ１５３、Ｓ３６１〜Ｓ３６５、Ｓ５６１〜Ｓ５６２）と同一により説明を省略する。
【０２３０】
以上、説明したように実施の形態６におけるプロセッサ６００によれば、タグフィールド６１１とデータフィールド６１２とをレジスタファイル６１０に備え、データ属性判定回路６２１と演算処理回路６２２とを演算器６２０に備え、データ属性判定回路５３１とデータ変換回路５３２とをメモリ書き込み制御部５３０に備える。
【０２３１】
これにより、データフィールドのサイズよりも大きいデータを容易に取り扱うことができる。また、演算処理を行って得られたデータに、そのデータの属性を示すタグ値が付加されるため、演算処理を行う命令に対してデータの属性を指定する必要がなく、命令数の削減、命令解読回路の簡略化が実現され得る。
【０２３２】
（その他）
なお、タグ値生成回路は、メモリから読み出したデータを複数のレジスタに跨って格納する場合には、そのデータが跨って格納されるレジスタの数、すなわち、データの分割数を含むタグ値を生成するとしてタグフィールドに格納するとしてもよい。
【０２３３】
なお、プロセッサは、フルカスタムＬＳＩ（Large Scale Integration）によって実現されるとしてもよい。また、ＡＳＩＣ（Application Specific Integrated Circuit）等のようなセミカスタムＬＳＩによって実現されるとしてもよい。また、ＦＰＧＡ（Field Programmable Gate Array）、ＣＰＬＤ（Complex Programmable Logic Device）等のようなプログラマブル・ロジック・デバイスによって実現されるとしてもよい。また、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスとして実現されるとしてもよい。
【０２３４】
さらに、プロセッサを構成する１乃至２以上の機能を、これ等のＬＳＩに形成する設計データは、ＶＨＤＬ（Very high speed integrated circuit Hardware Description Language）、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＳｙｓｔｅｍＣ等のようなハードウェア記述言語によって記述されたプログラム（以下、ＨＤＬプログラムと呼称する。）としてもよい。また、ＨＤＬプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。
【０２３５】
さらに、設計データは、コンピュータシステム、組み込みシステム等のようなハードウェアシステムに読み出され得るように、光学記録媒体（例えば、ＣＤ−ＲＯＭ等。）、磁気記録媒体（例えば、ハードディスク等。）、光磁気記録媒体（例えば、ＭＯ等。）、半導体メモリ（例えば、ＲＡＭ等。）等のようなコンピュータ読み取り可能な記録媒体に記録しておくとしてもよい。そして、記録媒体を介して他のハードウェアタシステムに読み取られた設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。
【０２３６】
または、設計データは、ネットワーク等のような伝送路を経由して他のハードウェアシステムに取得され得るように、伝送路上のハードウェアシステムに保持しておくとしてもよい。さらに、ハードウェアシステムから伝送路を介して他のハードウェアタシステムに取得された設計データは、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。
【０２３７】
または、論理合成、配置、配線された設計データは、通電時にＦＰＧＡに転送され得るように、シリアルＲＯＭに記録しておくとしてもよい。そして、シリアルＲＯＭに記録された設計データは、通電時に、直接、ＦＰＧＡにダウンロードされるとしてもよい。
【産業上の利用可能性】
【０２３８】
本発明は、データを処理するプロセッサ等として、特に、高速・膨大な演算処理を必要とする音声・画像処理等のメディア処理を行うプロセッサ等として、利用することができる。
【図面の簡単な説明】
【０２３９】
【図１】図１は、従来のプロセッサの構成を示す図である。
【図２】図２は、データ変換回路の構成を示す図である。
【図３】図３は、実施の形態１におけるプロセッサの構成を示す図である。
【図４】図４は、一例として、実施の形態１におけるレジスタファイルの構成を示す図である。
【図５】図５は、一例として、実施の形態１におけるレジスタのデータ構造を示す図である。
【図６Ａ】図６Ａは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す第１の図である。
【図６Ｂ】図６Ｂは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す第２の図である。
【図６Ｃ】図６Ｃは、実施の形態１におけるデータ変換回路においてデータ変換される例を示す第３の図である。
【図７】図７は、実施の形態１におけるプロセッサの動作を示す第１の図である。
【図８Ａ】図８Ａは、実施の形態１におけるプロセッサの動作を示す第２の図である。
【図８Ｂ】図８Ｂは、実施の形態１におけるプロセッサの動作を示す第３の図である。
【図８Ｃ】図８Ｃは、実施の形態１におけるプロセッサの動作を示す第４の図である。
【図９】図９は、実施の形態２におけるプロセッサの構成を示す図である。
【図１０】図１０は、一例として、実施の形態２におけるレジスタファイルの構成を示す図である。
【図１１】図１１は、実施の形態２におけるプロセッサの動作を示す第１の図である。
【図１２Ａ】図１２Ａは、実施の形態２におけるプロセッサの動作を示す第２の図である。
【図１２Ｂ】図１２Ｂは、実施の形態２におけるプロセッサの動作を示す第３の図である。
【図１３】図１３は、実施の形態３におけるプロセッサの構成を示す図である。
【図１４】図１４は、一例として、実施の形態３における演算器の構成を示す図である。
【図１５Ａ】図１５Ａは、実施の形態３におけるプロセッサの動作を示す図である。
【図１５Ｂ】図１５Ｂは、実施の形態３におけるプロセッサの動作を示す図である。
【図１６】図１６は、実施の形態４におけるプロセッサの構成を示す図である。
【図１７】図１７は、一例として、実施の形態４における演算器の構成を示す図である。
【図１８】図１８は、実施の形態４におけるプロセッサの動作を示す第１の図である。
【図１９】図１９は、実施の形態４におけるプロセッサの動作を示す第２の図である。
【図２０】図２０は、実施の形態５におけるプロセッサの構成を示す図である。
【図２１】図２１は、一例として、実施の形態５における演算器の構成を示す図である。
【図２２】図２２は、一例として、実施の形態５におけるレジスタのデータ構造を示す図である。
【図２３】図２３は、実施の形態５におけるプロセッサの動作を示す第１の図である。
【図２４】図２４は、実施の形態５におけるプロセッサの動作を示す第２の図である。
【図２５】図２５は、実施の形態５におけるプロセッサの動作を示す第３の図である。
【図２６】図２６は、実施の形態６におけるプロセッサの構成を示す図である。
【図２７】図２７は、一例として、実施の形態６における演算器の構成を示す図である。
【図２８】図２８は、実施の形態６におけるプロセッサの動作を示す第１の図である。
【図２９】図２９は、実施の形態６におけるプロセッサの動作を示す第２の図である。
【符号の説明】
【０２４０】
１０  プロセッサ
１１  命令解読回路
１２  メモリ読み出し制御回路
１３  メモリ書き込み制御回路
１４  メモリ
１５  演算器
２０  データ変換回路
２１  アライン部
２２  ゼロ拡張部
２３  符号拡張部
２４  セレクタ
３０  レジスタファイル
３１  データフィールド
Ｒｅｇ＃０〜Ｒｅｇ＃Ｎ  レジスタ
１００，２００  プロセッサ
１０１  命令解読回路
１０２  タグ値生成回路
１１０，２１０  レジスタファイル
１１１，２１１  タグフィールド
１１２，２１２  データフィールド
１１３，２１３  データ属性判定回路
１１４，２１４  データ変換回路
１２１，２２１  アライン部
１２２，２２２  ゼロ拡張部
１２３，２２３  符号拡張部
１２４，２２４  セレクタ
３００，４００  プロセッサ
３１０，４１０  レジスタファイル
３１１，４１１  タグフィールド
３１２，４１２  データフィールド
３２０，４２０  演算器
３２１，４２１  データ属性判定回路
３２２，４２２  演算処理回路
３３０  メモリ書き込み制御回路
３３１  データ属性判定回路
３３２  データ変換回路
３４１，４４１  アライン部
３４２，４４２  ゼロ拡張部
３４３，４４３  符号拡張部
３４４，４４４  セレクタ
３４５，４４５  加算器
４０１  命令解読回路
４０２  タグ値生成回路
５００，６００  プロセッサ
５１０，６１０  レジスタファイル
５２０，６２０  演算器
５３０  メモリ書き込み制御回路
５３１  データ属性判定回路
５３２  データ変換回路
５４１，６４１  セレクタ
５４２，６４２  加算器
５４３，６４３  セレクタ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2006043345.tif 000037
【図２】
2006043345.tif 000038
【図３】
2006043345.tif 000039
【図４】
2006043345.tif 000040
【図５】
2006043345.tif 000041
【図６Ａ】
2006043345.tif 000042
【図６Ｂ】
2006043345.tif 000043
【図６Ｃ】
2006043345.tif 000044
【図７】
2006043345.tif 000045
【図８Ａ】
2006043345.tif 000046
【図８Ｂ】
2006043345.tif 000047
【図８Ｃ】
2006043345.tif 000048
【図９】
2006043345.tif 000049
【図１０】
2006043345.tif 000050
【図１１】
2006043345.tif 000051
【図１２Ａ】
2006043345.tif 000052
【図１２Ｂ】
2006043345.tif 000053
【図１３】
2006043345.tif 000054
【図１４】
2006043345.tif 000055
【図１５Ａ】
2006043345.tif 000056
【図１５Ｂ】
2006043345.tif 000057
【図１６】
2006043345.tif 000058
【図１７】
2006043345.tif 000059
【図１８】
2006043345.tif 000060
【図１９】
2006043345.tif 000061
【図２０】
2006043345.tif 000062
【図２１】
2006043345.tif 000063
【図２２】
2006043345.tif 000064
【図２３】
2006043345.tif 000065
【図２４】
2006043345.tif 000066
【図２５】
2006043345.tif 000067
【図２６】
2006043345.tif 000068
【図２７】
2006043345.tif 000069
【図２８】
2006043345.tif 000070
【図２９】
2006043345.tif 000071
【国際調査報告】
2006043345.tif 000072
2006043345.tif 000073
2006043345.tif 000074
2006043345.tif 000075