(57)【要約】【課題】処理を高速に実施できる情報演算装置を提供する。【解決手段】ＣＰＵは、ＩＦステージで所定の処理信号にて構成されたプログラムの命令情報を主記憶手段１２０から命令レジスタ１５３Ｂに読み込む。そして、ＡＬＵ１５５は、命令レジスタ１５３Ｂの命令情報を直接演算処理して、演算結果をメモリデータレジスタ１５３Ｃに返す。このため、ＣＰＵは、プログラムの命令情報を直接処理できるため、プログラムをデコードする処理が省略でき、１つの命令情報を処理するための実施時間が短縮されるので、ＣＰＵの処理能力を向上させることができる。【選択図】  図２
2007004702.tif 000002
【特許請求の範囲】
【請求項１】
情報記憶手段に記録されるとともに所定の処理言語にて構築される情報を読み込む情報読込手段と、
前記情報読込手段にて前記情報を読み込む読込処理の実施直後に、前記情報を前記所定の処理言語の状態で演算処理する処理手段と、
を具備したことを特徴とした情報演算装置。
【請求項２】
請求項１に記載の情報演算装置であって、
前記情報読込手段は、複数の前記情報を所定の期間で１つずつ順次読み込み、
前記処理手段は、前記情報読込手段にて読み込まれた前記情報を所定の期間で順次演算処理する
ことを特徴とする情報演算装置。
【請求項３】
請求項２に記載の情報演算装置であって、
前記情報読込手段の読込処理および前記処理手段の演算処理を実施させる前記所定の期間を設定する期間設定手段を備え、
前記情報読込手段および前記処理手段は、前記期間設定手段にて設定される所定の期間内で前記読込処理および前記演算処理を同期に実施する
ことを特徴とする情報演算装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の情報演算装置であって、
前記情報読込手段は、所定数の前記情報を同期で読み込み、
前記処理手段は、前記読み込まれた前記所定数の情報を同期で演算処理する
ことを特徴とする情報演算装置。
【請求項５】
請求項１ないし請求項４のいずれかに記載の情報演算装置であって、
前記情報は、前記処理手段にて演算処理される対象となる情報に関する処理対象情報、および前記処理対象情報に実施する演算処理の内容に関する処理内容情報を有する処理命令情報を複数有したデータ構造に構築され、
前記情報読込手段は、前記処理対象情報が前段処理命令情報の演算処理の演算結果である処理命令情報があると、前記処理手段にて前記前段処理命令情報の演算処理を実施させると同時に、前記前段処理命令情報の演算処理の演算結果を利用する前記処理命令情報を読み込む読込処理を実施する
ことを特徴とする情報演算装置。
【請求項６】
請求項５に記載の情報演算装置であって、
前記情報は、所定の信号を出力する旨のオン情報および前記信号を出力しない旨のオフ情報を演算処理させる内容に応じた組み合わせで羅列して構成される機械語が前記処理手段にて直接演算処理が実施可能な状態にデコードされた処理言語にて構築される
ことを特徴とする情報演算装置。
【請求項７】
請求項１ないし請求項６のいずれかに記載の情報演算装置と、
前記情報を記録する情報記憶手段と、
を具備したことを特徴とする情報処理装置。
【請求項８】
請求項７に記載の情報処理装置であって、
前記情報記憶手段は、所定の信号を出力する旨のオン情報および前記信号を出力しない旨のオフ情報を前記演算処理の内容に応じた組み合わせで羅列して構成された前記情報を記録する
ことを特徴とする情報処理装置。
【請求項９】
請求項８に記載の情報処理装置であって、
前記情報は、前記処理手段にて演算処理される対象となる情報に関する処理対象情報、および前記処理対象情報に実施する演算処理の内容に関する処理内容情報を有する処理内容情報を複数有したデータ構造に構築され、
前記処理内容情報は、前記オン情報および前記オフ情報の羅列により構成される機械語のオン情報およびオフ情報の羅列の一部をデコードして所定長さの羅列に簡略化した処理言語にて構成される
ことを特徴とする情報処理装置。
【請求項１０】
請求項８に記載の情報処理装置であって、
前記情報は、前記オン情報および前記オフ情報の羅列により構成される機械語で同一の羅列状態が複数個繰り返し連続される連続部を、１つの所定の羅列状態にデコードして簡略化される処理言語にて構築される
ことを特徴とする情報処理装置。
【請求項１１】
情報記憶手段に記録された所定の処理言語にて記述された情報を読み込み、
前記情報を読み込む読込処理の実施直後に前記情報を前記所定処理言語の状態で直接演算処理する
ことを特徴とする情報演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を処理する情報演算装置、情報処理装置、および情報演算方法に関する。
【背景技術】
【０００２】
従来、ＣＰＵ（Central Processing Unit：中央処理装置）にて所定の演算処理を実施させる際に、１つの命令を複数のステージに分割して、一定のタイミングで分割した複数のステージを順次実行するとともに、同一のタイミングにおいて互いに異なる処理を実施して、複数の命令を並列して実施させるパイプライン処理が知られている(例えば、非特許文献１)。
【０００３】
非特許文献１に記載のものは、メモリから命令の読み出しを実施する命令フェッチ（ＩＦ）、ＩＦステージで読み出された命令をデコードする命令デコード（ＤＥＣ）、ＤＥＣステージで解読された命令の内容に応じて、算術、論理などの演算や、ＩＦステージで読み込むべき命令のアドレスやメモリへアクセスする際のアドレスなどの演算を実施する演算実行（ＥＸＥ）、ＥＸＥステージでの演算結果をアドレスとしてメモリへのアクセスするデータメモリアクセス（ＭＥＭ）、ＭＥＭステージでメモリから読み出されたデータの内部レジスタへの格納を実施するライトバック（ＷＢ）の５つのステージに各処理を分割し、５段パイプライン処理を実施する。そして、これらの５つのステージが一定の処理タイミング毎に順次実行され、同一の処理タイミングでは互いに異なるステージの処理を同時に実行することで複数の命令を並列処理する構成が採られている。
【０００４】
【非特許文献１】David A.Paterson、John L.Hennessy著、「コンピュータの構成と設計」第２版（日経ＢＰ社、１９９９年、発行）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、非特許文献１に記載のような構成では、ＩＦステージにてプログラムを読み込み、ＤＥＣステージでプログラムをデコードした後、ＥＸＥステージにて演算処理を実施させている。このため、ＤＥＣステージでのプログラムを解読するための処理が必要となり、演算処理を実施させるＥＸＥステージまでの段数が深くなる。このため、例えば先に実施される命令の演算結果に応じて、演算に用いる情報が変化する、いわゆる条件分岐命令などのパイプライン処理においてストールなどが発生するような命令では、先の命令のＥＸＥステージの演算処理が終了するまで、ＩＦステージの処理が実施できない。したがって、先の命令と条件分岐命令との間には、１クロック分の空きを埋めるための待ち命令、いわゆるＮＯＰ（No Operation）などの不要な命令が導入される。したがって、先の命令のＩＦステージにてプログラムを読み込んでから、条件分岐命令が読み込まれるまでの時間が長くなり、処理時間が長くなるという問題が一例として挙げられる。
本発明は、処理を高速に実施できる情報演算装置、情報処理装置および情報演算方法を提供することを１つの目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明の情報演算装置は、情報記憶手段に記録されるとともに所定の処理言語にて構築される情報を読み込む情報読込手段と、前記情報読込手段にて前記情報を読み込む読込処理の実施直後に、前記情報を前記所定の処理言語の状態で演算処理する処理手段と、を具備したことを特徴とする。
【０００７】
請求項７に記載の発明の情報処理装置は、請求項１ないし請求項６のいずれかに記載の情報演算装置と、前記情報を記録する情報記憶手段と、を具備したことを特徴とする。
【０００８】
請求項１１に記載の発明の情報演算方法は、情報記憶手段に記録された所定の処理言語にて記述された情報を読み込み、前記情報を読み込む読込処理の実施直後に前記情報を前記所定処理言語の状態で直接演算処理することを特徴とする。
【発明を実施するための最良の形態】
【０００９】
以下、本発明における一実施の形態の情報処理装置を図面に基づいて説明する。図１は、本実施の形態の情報処理装置の概要を模式的に示す全体ブロック図である。図２は、ＣＰＵにおけるパイプライン処理の情報の流れの概略をステージ毎に分割して示した模式図である。図３は、ＣＰＵの構成の概略を示す模式図である。
【００１０】
〔情報処理装置の構成〕
図１において、１００は情報処理装置であり、この情報処理装置１００は、例えば入力された情報に所定の処理を実施して出力する装置である。この情報処理装置１００としては、例えばパーソナルコンピュータ、カーナビゲーション、自動車などの制御コンピュータなど、あらゆる用途に利用できる。なお、本実施の形態では、情報処理装置１００の一例として、パーソナルコンピュータを用いて以下説明する。
【００１１】
情報処理装置１００は、図１に示すように、入力手段１１０と、記憶手段としての主記憶手段１２０と、補助記憶手段１３０と、出力手段１４０と、情報読込手段を備えた情報演算装置としても機能するＣＰＵ（Central Processing Unit：中央処理装置)１５０と、などを備えている。これらの入力手段１１０、主記憶手段１２０、補助記憶手段１３０、出力手段１４０、およびＣＰＵ１５０は、外部バスにより互いに電気的に接続された状態で情報処理装置１００に格納されている。
【００１２】
入力手段１１０は、外部バスによってＣＰＵ１５０などに接続されている。この入力手段１１０には、例えばキーボードやマウスなどが接続される。そして、利用者の入力操作により入力された所定の情報を、ＣＰＵ１５０の命令信号に基づいて、主記憶手段１２０やＣＰＵ１５０などに出力する。なお、入力手段１１０としては、キーボードやマウスの他に、バーコードリーダやカードリーダや専用コントローラ、情報処理装置１００の表面に設けられるツマミやボタンなどが例示できる。さらに、リモートコントローラより赤外線を介して送信される各種情報を受信して、この各種情報を操作信号としてＣＰＵ１５０へ出力するリモコン受光部を備えた構成などとしてもよい。また、この入力手段１１０は、図示しない入力レジスタを備えている。この入力レジスタには、例えば利用者による入力手段１１０の操作にて入力信号が入力されると、この入力に応じた入力信号が記録される。
【００１３】
主記憶手段（メインメモリ）１２０は、ＣＰＵ１５０の命令信号に基づいて、入力手段１１０や補助記憶手段１３０から入力された情報を一時記憶する。この主記憶手段１２０は、半導体素子を利用して情報を記憶領域に高速で記憶する。具体的には、主記憶手段１２０は、プログラムを記憶する記憶領域であるプログラムメモリと、各種情報を記録する記憶領域であるデータメモリ１２１（図２参照）と、を備えている。なお、本実施の形態において、主記憶手段１２０は、プログラムメモリおよびデータメモリ１２１を備える例を示すが、これに限らず、例えばプログラムと各種情報が混在して記録される構成としてもよい。
【００１４】
また、主記憶手段１２０は、図示しない主記憶レジスタを備えている。そして、主記憶手段１２０は、この主記憶レジスタに所定の命令信号、例えば所定のアドレス位置に対応する記憶領域に記憶されるプログラムなどの情報をＣＰＵ１５０に入力させる旨の命令信号が入力されると、この命令信号に対応する記憶領域に記憶された情報、例えばプログラムやプログラムに利用する各種情報をＣＰＵ１５０に出力する。また、主記憶レジスタに、例えば所定の情報を所定のアドレス位置に対応する記憶領域に記憶する旨の命令信号が入力されると、所定の情報を主記憶手段１２０の所定のデータメモリ１２１に記憶する。さらに、主記憶手段１２０は、ＣＰＵ１５０から入力される命令信号に基づいて、所定の記憶領域に記憶される情報を補助記憶手段１３０に出力したり、補助記憶手段１３０の所定に記録される所定の情報を読み込み、所定の記憶領域に記憶したりする。このような主記憶手段１２０としては、例えばＤＲＡＭ（Dynamic RAM）、ＳＤＲＡＭ（Synchronous DRAM）などの半導体素子を利用したメモリチップが利用できる。
【００１５】
補助記憶手段１３０は、ＣＰＵ１５０に処理させるプログラム、およびこのプログラムを処理するために利用される各種情報、すなわちプログラムで用いられるデータやその他のデータなどが記録されている。また、補助記憶手段１３０は、図示しない補助記憶レジスタを備えている。そして、ＣＰＵ１５０から入力される命令信号が補助記憶レジスタに入力されると、この入力された命令信号に応じて、例えば所定のプログラムやその他の各種情報を主記憶手段１２０に出力したり、主記憶手段１２０から入力される情報を所定の記録領域に記録したりする。この補助記憶手段１３０としては、例えば、ハードディスクなどの磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）などの光ディスクなど、大容量の記録領域を備えた記録媒体を利用することが好ましい。なお、補助記憶手段１３０としては、メモリカードなどや半導体メモリなどを適用した構成としてもよい。
【００１６】
ここで、主記憶手段１２０や補助記憶手段１３０に記録される各種情報について説明する。補助記憶手段１３０に記録されるプログラムや各種情報は、所定桁数で区切られたオフ情報としての０またはオン情報としての１の数字の羅列で構成される、所定の処理言語としての処理信号にて記録されている。具体的には、これらの情報は、例えばプログラム製作段階において、例えばＣ言語やＢＡＳＩＣ言語などのプログラム言語にて記述された情報が、ＣＰＵ１５０にて直接演算処理可能な命令を有する処理信号にコンパイルされ、この処理信号の状態で記録される。すなわち、この処理信号にて記録されるプログラムや各種情報は、ＣＰＵ１５０でのデコードやコンパイルなどの処理を不要として、直接演算実行が可能に構成されている。
【００１７】
例えば、この処理信号にて記録される各種情報は、０および１の数字の羅列により構成されるいわゆる機械語において、例えばＣＰＵ１５０に演算処理させる命令の内容に関する命令部を簡略化した簡略化コードを備えている。この簡略化コードは、従来の機械語により構築される０および１の羅列のうち、所定の一部をまとめて簡略化されたコードである。例えば、従来の機械語が１０桁の命令部と、命令部により命令されるデータに関する１０桁のデータ部とにより構成されているとする。このような機械語は、本実施の形態では、簡略化コードを用いて、例えば４桁の命令部と、１０桁のデータ部とにより構成される処理信号に構築される。なお、簡略化コードが適用される箇所は、命令部を構築する部分の他、例えば従来の機械語で所定のパターンの数字の羅列が複数回繰り返して連続される場合に、繰り返し連続される数字の羅列のパターンを簡略化してもよい。そして、このような処理信号にて構築される各種情報は、オブジェクトコードの状態のまま補助記憶手段１３０、もしくは主記憶手段１２０に記録される。
【００１８】
出力手段１４０は、ＣＰＵ１５０からの命令信号に基づいて、所定の情報を出力する。出力手段としては、例えばパーソナルコンピュータに接続されるディスプレイや液晶パネルといった所定の情報を表示画面に表示させる表示装置が例示できる。なお、出力手段１４０は、表示装置以外に限られず、例えば情報を印刷する印刷装置であってもよく、音声を出力する例えばスピーカなどであってもよい。この出力手段１４０は、ＣＰＵ１５０から入力される命令信号を格納する図示しない出力レジスタを備えている。そして、出力手段１４０は、この出力レジスタに所定の命令信号が格納されると、格納された命令信号に応じて情報を出力する。
【００１９】
ＣＰＵ１５０は、主記憶手段１２０に記憶されたプログラムを実行する装置である。このＣＰＵ１５０は、例えば１つのＬＳＩ（Large Scale Integrated circuit：大規模集積回路）チップに組み込まれて情報処理装置１００に格納される。そして、ＣＰＵ１５０は、図２に示すように、ＰＣ（Program Counter:プログラムカウンタ）１５１と、命令メモリ１５２と、ＭＵＸ（Multiplexor：マルチプレクサ）１５３と、レジスタ群１５４と、ＡＬＵ（Arithmetic and Logical Unit：演算装置）１５５と、割り込みコントローラ１５６（図３参照）と、バスコントローラ１５７（図３参照）と、などを備えている。これらのＰＣ１５１、命令メモリ１５２と、ＭＵＸ１５３、レジスタ群１５４と、ＡＬＵ１５５、割り込みコントローラ１５６、およびバスコントローラ１５７などは例えばフリップフロップ回路などの処理回路１５０Ａにて互いに接続されている。なお、割り込みコントローラ１５６およびバスコントローラ１５７がＣＰＵ１５０の外部に設けられる構成としてもよい。
【００２０】
ＰＣ１５１は、ＡＬＵ１５５に実行させるプログラムのアドレス値が記録されるレジスタである。具体的には、ＰＣ１５１は、現在実行されているプログラムのアドレス値を保持する。また、所定のプログラムが読み込まれてＡＬＵ１５５にて演算されると、プログラムカウンタ１５１は、記録されたアドレス値の数値に例えば１が加算されるアドレス値を保持する。そして、このＰＣ１５１の加算された数値に応じて次のプログラムが読み込まれる。
【００２１】
命令メモリ１５２は、ＡＬＵ１５５で演算されるプログラムの処理命令情報としての命令情報が格納されるレジスタであり、ＰＣ１５１にて指定されるアドレス値にて基づいて、主記憶手段１２０に記憶された所定のプログラムの命令情報を読み込み記憶する（ＩＦステージ：Instruction Fetch stage）。なお、命令メモリ１５２は、プログラムの命令情報のうち、ＡＬＵ１５５にて演算させる演算内容に関する処理内容情報としての命令部を記録する構成としてもよい。
【００２２】
ＭＵＸ１５３は、命令メモリ１５２に格納された命令プログラムやレジスタ群１５４に格納された各種情報をＡＬＵ１５５に入力する処理回路である。このＭＵＸ１５３は、入力される複数の命令信号から例えばいずれか１つを選択してＡＬＵ１５５に入力する。
【００２３】
レジスタ群１５４は、一般に汎用レジスタとも言われるレジスタを含み、このレジスタ群１５４には、ＡＬＵ１５５にて処理されるプログラムや各種情報、これらのプログラムや情報が格納される格納場所に関するアドレス情報などが一時的に記憶される。このレジスタ群１５４は、ＣＰＵ１５０の構成要素の１つである図示しないクロックジェネレータのクロック周波数に合わせて高速演算処理を実施するＡＬＵ１５５に直接接続され、動作が極めて高速となる記憶素子にて構成される。また、レジスタ群１５４は、命令メモリ１５２に読み込まれたプログラムに基づいて、所定のレジスタアドレスに格納された情報をＡＬＵ１５５に出力する。さらに、レジスタ群１５４は、命令メモリ１５２に読み込まれたプログラムに基づいて、ＡＬＵ１５５にて演算された演算結果を所定のアドレス位置に記憶する。この所定のアドレス位置としては、例えばプログラムにて指定されるアドレス位置やＡＬＵ１５５にて演算されるアドレス位置などに対応するレジスタアドレスが挙げられる。
【００２４】
ＡＬＵ１５５は、ＰＣ１５１にて指定されて命令メモリ１５２に読み込まれたプログラムの命令情報や各種情報を用いて、命令情報に応じた演算処理を実施する（ＥＸステージ：EXecutive stage）。具体的には、ＡＬＵ１５５は、読み込まれたプログラムに応じて、プログラムのデータ部の情報、例えばレジスタ群１５４の所定のアドレス位置に記憶された情報を読込む。そして、プログラムの命令部に記録された命令信号に応じてデータ部のデータに所定の演算を実施する。また、ＡＬＵ１５５は、各種情報を構築する処理信号の簡略化コードを直接的に理解、すなわち解読処理を実施せずに演算処理する。例えば、ＡＬＵ１５５は、所定の簡略化コードが入力されると、簡略化コードを機械語などの言語に解読することなくそのまま読み込んで処理する。
【００２５】
割り込みコントローラ１５６は、ＰＣ１５１にカウントされるアドレスを他のプログラムに対応するアドレスに置き替える処理をする。例えば、割り込みコントローラ１５６は、入力手段１１０が操作されて入力信号が入力されたことを認識すると、この入力信号に応じたアドレスをＰＣ１５１に書き込む。
【００２６】
バスコントローラ１５７は、ＣＰＵ１５０と、入力手段１１０、主記憶手段１２０、補助記憶手段１３０、および出力手段１４０などを接続する外部バスを制御する。すなわち、バスコントローラ１５７は、例えば入力手段１１０にて所定の入力信号が入力され入力レジスタに記憶されると、この入力レジスタの所定のアドレスに記憶された入力信号を認識する。また、ＰＣ１５１にて指定されるプログラムに応じて、所定のデータ、例えばＡＬＵ１５５にて演算された情報を出力信号として出力手段１４０に出力し、出力レジスタに記憶させる。
【００２７】
また、利用的には、ＣＰＵ１５０は、図示しないクロックジェネレータが出力するクロック周波数に合わせて、上記したＩＦステージ、ＥＸステージ、ＥＸステージでの演算結果をアドレスとしてデータメモリ１２１へアクセスするＭＥＭステージ、およびＭＥＭステージでアクセスしたデータメモリ１２１またはレジスタ群１５５の所定のアドレス位置にデータを書き込むＷＢステージ（Write Back stage）の処理をそれぞれ１クロックの間隔で実施する。
【００２８】
〔情報処理装置の動作〕
次に、上記情報処理装置１００の動作として、ＣＰＵ１５０のプログラムの演算処理について、図に基づいて説明する。図４は、本実施の形態の情報処理装置のＣＰＵのパイプライン処理におけるタイミングを示す模式図である。
【００２９】
（ＣＰＵのパイプライン処理）
情報処理装置１００のＣＰＵ１５０は、例えば入力手段１１０にて所定の設定入力が入力された旨を認識すると、入力内容に応じて入力手段１１０、主記憶手段１２０、補助記憶手段１３０、ＣＰＵ１５０、および出力手段１４０を制御し、情報処理装置１００に所定の処理を実施させる。例えば、ＣＰＵ１５０は、例えば入力手段１１０の入力内容に応じて、例えば補助記憶手段１３０に記録されたプログラムや各種情報を読み込んで、主記憶手段１２０に記憶させたり、ＣＰＵ１５０のＡＬＵ１５５にて演算した演算結果を出力手段１４０にて出力させたりする制御をする。
【００３０】
この時、ＣＰＵ１５０は、図２および図３に示すように、ＰＣ１５１に記憶された数値に応じたプログラムを読み込んで、ＩＦステージ、ＥＸステージ、ＭＥＭステージ、ＷＢステージからなる一連のパイプライン処理を実施する。
【００３１】
まず、利用者による入力手段１１０の入力操作により所定の入力信号が入力レジスタに記憶されると、入力手段１１０にあるデバイスが割り込み信号を発信する。そして、ＣＰＵ１５０の割り込みコントローラ１５６はこの割り込み信号を感知して割り込み信号に対応した所定の割り込みプログラムが記憶されるアドレス値をＰＣ１５１に書き込む処理（割り込み処理）をする。この時、ＣＰＵ１５０は、ＰＣ１５１に記憶されていたアドレス値を一時的に例えばレジスタ群１５４の所定のプログラム退避アドレスに退避させる。
【００３２】
この後、ＣＰＵ１５０は、ＩＦステージの処理を実施する。すなわち、ＣＰＵ１５０は、ＰＣ１５１にて指定されるアドレス値に基づいて、主記憶手段１２０の所定の記憶領域から所定のプログラムの命令情報を読み込む。そして、ＣＰＵ１５０は、このプログラムの命令情報を命令メモリ１５２の所定のアドレス位置となる記憶領域に記憶する。また、ＣＰＵ１５０は、命令情報を読み出した後、プログラム退避アドレスを読み込み、元のプログラムのアドレス値をＰＣ１５１のアドレス値に書き込む。なお、ＣＰＵ１５０は、割り込み処理などが実施されない場合においては、ＰＣ１５１のアドレス値に所定数、例えば１を加算してＰＣ１５１を書き替える処理をしてもよい。
【００３３】
この後、ＣＰＵ１５０は、ＥＸステージの処理を実施する。具体的には、命令メモリ１５２およびレジスタ群１５４に記録された命令情報および命令の演算に必要なデータをＡＬＵ１５５に出力する。ＡＬＵ１５５は、入力された命令部に基づいて、入力されたデータ部に所定の演算処理を実施する。
【００３４】
そして、ＣＰＵ１５０は、ＭＥＭステージの処理を実施する。すなわち、ＣＰＵ１５０は、ＡＬＵ１５５にて演算された演算結果に基づいて、演算結果であるデータやアドレスに対応する主記憶手段１２０のデータメモリ１２１にアクセスする。さらに、ＣＰＵ１５０は、ＷＢステージの処理を実施して、ＥＸステージにて演算した演算結果をレジスタ群１５５や主記憶手段１２０のデータメモリ１２１に記憶させる。
【００３５】
また、ＣＰＵ１５０は、命令情報に基づいて、バスコントローラ１５７を制御し、演算結果などを所定のレジスタ、例えば出力レジスタに出力して記憶させる。そして、出力手段１４０は、出力レジスタに記憶された出力信号に応じて、所定の出力方法にて情報を出力、例えばモニタなどの表示手段に演算結果を表示させる制御をする。
【００３６】
また、ＣＰＵ１５０は、ＰＣ１５１に基づいて、主記憶手段１２０の記憶された命令情報を順次読み込み、上記のパイプライン処理を順次実施させる。ここで、ＣＰＵ１５０は、クロックジェネレータにて出力されるクロック周波数に合わせて、１つのステージの処理が１クロックとなるタイミングで、各命令情報のパイプライン処理を順次実施する。例えば図４に示すように、処理Ｓ１のＩＦステージの処理を時間ｔ０に開始する。そして、時間ｔ１において、処理Ｓ１のＥＸステージの実施と同時に処理Ｓ２のＩＦステージを実施する。同様に、時間ｔ２において、処理Ｓ１のＭＥＭステージの処理、処理Ｓ２のＥＸステージの処理、処理Ｓ３のＩＦステージの処理を同時に実施する。
【００３７】
（データハザード時の処理）
次に、本実施の形態の情報処理装置１００のＣＰＵ１５０におけるデータハザード、特に、ＡＬＵ１５５にて演算された演算結果をレジスタ１５３に記憶させる前に、この演算結果を読み込む、いわゆるＲＡＷ（Read After Write）ハザードにおける処理を図面に基づいて説明する。図５は、従来のＣＰＵのＲＡＷハザードにおけるパイプライン処理のタイミングを示す模式図である。
【００３８】
図５において、従来のＣＰＵで、例えば、「Ｒ０に格納された値にＲ１に格納された値を加えてＲ２の値とする」という処理Ｓ１と、「Ｒ０に格納された値にＲ２に格納された値を加えて新たにＲ２の値とする」という処理Ｓ２とを連続して処理させる。また、従来のＣＰＵでは、主記憶手段からレジスタに入力される各種情報をＣＰＵのＡＬＵが処理可能な処理信号に解読するＩＤステージ（Instruction Decode stage）が必要となる。このＩＤステージでは、命令情報の命令部および、命令部の処理対象となるデータ部を明確にするために、命令部およびデータ部を同時にデコードする必要がある。これにより、図５に示すように、従来のＣＰＵでは、処理Ｓ１のＥＸステージの終了後（時間ｔ３）に、処理Ｓ２のＩＤステージを実施する必要がある。よって、最低でも１クロック分のストール処理が実施される、すなわち、待ち処理であるＮＯＰ（No OPeration）などが導入される。
【００３９】
これに対して、本実施の形態の情報処理装置１００では、プログラムがＣＰＵ１５０にて直接処理可能な処理信号にて記録されている。これにより、図４に示すように、ＣＰＵ１５０は、処理Ｓ１のＩＦステージの後、ＩＤステージを設ける必要がなく、即座にＥＸステージの処理を実施可能となる。また、処理Ｓ１のＥＸステージでの演算処理が時間ｔ２では終了しているので、処理Ｓ２のＩＦステージを処理Ｓ１のＥＸステージと同期とすることで、処理Ｓ２の命令情報の命令部、処理Ｓ２のＲ２の他のデータ部、および処理Ｓ１のＥＸステージにて演算されるＲ２の値を次の演算に用いる情報として設定できる。すなわち、処理Ｓ１のＥＸステージと処理Ｓ２のＩＦステージとを同期にすることが可能となるので、処理Ｓ１および処理Ｓ２の間にストール処理の実施が不用で、例えばＮＯＰなどの処理が不要となる。
【００４０】
（条件分岐処理）
次に、本実施の形態のＣＰＵ１５０における条件分岐処理を図面に基づいて説明する。図６（Ａ）は、従来のＣＰＵにおいて条件分岐命令を実施した際のパイプライン処理のタイミングを示す模式図である。図６（Ｂ）は、本実施の形態のＣＰＵにおいて条件分岐命令を実施した際のパイプライン処理のタイミングを示す模式図である。
【００４１】
図６（Ａ）において、従来のＣＰＵにて、演算結果により条件分岐する処理１と、処理１の条件分岐により分岐された分岐先の処理２とを連続して処理させる。この場合、処理１の条件分岐先は、処理１のＥＸステージの終了後（時間ｔ３）の演算結果により判明する。また、前述したように、従来のＣＰＵは命令情報を解読するＩＤステージが必要であり、処理Ｓ１で演算された演算結果は、処理２の命令情報を解読する処理に必要となる。このため、従来のＣＰＵでは、処理Ｓ１のＥＸステージの後に処理Ｓ２のＩＤステージが設定される必要がある。このため、図６（Ａ）に示すように、従来のＣＰＵでは、処理Ｓ１のＥＸステージの終了後（時間ｔ３）に、処理Ｓ２のＩＤステージを実施する必要があり、最低でも１クロック分のストール処理が実施され、例えば待ち処理であるＮＯＰなどが導入される。
【００４２】
一方、本実施の形態の情報処理装置１００では、ＣＰＵ１５０は、処理Ｓ１のＥＸステージでの演算結果が時間ｔ２で求められる。また、プログラムがＣＰＵ１５０にて直接処理可能な処理信号にて記録されているため、ＩＤステージを設けることなく、即座にＥＸステージを実施することが可能となる。したがって、図６（Ｂ）に示すように、処理Ｓ１のＥＸステージの直後に、この演算結果を用いて処理Ｓ２のＥＸステージを実施させることで、すなわち、処理Ｓ１のＥＸステージと処理Ｓ２のＩＦステージとを同期にすることで、処理Ｓ１および処理Ｓ２の間にストール処理の実施が不用となる。
【００４３】
〔情報処理装置の作用効果〕
上述したように、上記一実施の形態の情報処理装置１００では、ＣＰＵ１５０は、ＩＦステージで、ＡＬＵ１５５が直接的に演算処理可能な処理信号にて構成されたプログラムの命令情報を主記憶手段１２０から命令レジスタ１５３Ｂに読み込む。そして、ＡＬＵ１５５は、命令レジスタ１５３Ｂの命令情報をそのまま演算処理して、演算結果をメモリデータレジスタ１５３Ｃに返す。このため、この情報処理装置１００では、プログラムが処理信号の状態で記録されているので、ＣＰＵ１５０は、このプログラムをデコードする必要がなく、そのままプログラムの命令情報を処理できる。したがって、ＩＦステージの直後にＥＸステージを続けることができ、パイプライン処理の段数を従来のＣＰＵより少なくすることができる。よって、１つの命令情報を処理するための実施時間が短縮されるので、ＣＰＵ１５０の処理能力を向上させることができる。また、従来のＣＰＵにおけるデコード処理を実施する回路部を減らすことができるため、ＣＰＵ１５０の回路規模を削減することができる。
【００４４】
また、ＩＦステージの処理の直後にＥＸステージの処理を実施する。このため、従来のＣＰＵに比べて、演算処理の演算結果が１クロック分早く出力される。したがって、条件分岐処理や、データハザードなどのような演算結果を用いた命令情報がある場合、これらの命令情報の処理も早く実施することができる。
【００４５】
さらに、パイプライン処理にて複数の命令情報を並列して実施させ、複数の命令情報を順次処理している。このため、複数の命令を効率よく演算処理することができる。したがって、ＣＰＵ１５０の処理効率を向上させることができる。
【００４６】
そして、処理Ｓ２のＩＦステージの処理および処理Ｓ１のＥＸステージの処理を同期に実施している。すなわち、データハザードや条件分岐処理が起こる場合でも、ＥＸステージで演算した演算結果をそのまま新たな命令情報のデータ部として利用でき、ＮＯＰなどのストール処理を導入することなく、処理Ｓ１および処理Ｓ２を演算処理することができる。このため、ＮＯＰなどの待ち時間がなくなるので、各命令情報の演算処理を順次実施することができる。したがって、データハザードや条件分岐処理などの処理においても、ＣＰＵ１５０の処理能力が低下せず、ＣＰＵ１５０の高速処理を維持できる。
【００４７】
また、パイプライン処理により、所定のクロック周期でＣＰＵ１５０の各処理を実施する。このため、ＣＰＵ１５０の各処理の時間差が生じず、データハザードや条件分岐処理などの処理を円滑に実施することができる。
【００４８】
そして、補助記憶手段１３０に記録されるプログラムや各種情報は、ＣＰＵ１５０のＡＬＵ１５５が直接処理可能な処理信号にて記述されている。このため、従来のＣＰＵのようなデコード処理が不要となり、ＣＰＵ１５０の処理の高速化を図れる。したがって、パイプライン処理構造の段数を減少させることができ、ＣＰＵ１５０の処理を高速化させることができる。
【００４９】
〔実施形態の変形〕
なお、本発明は、上述した一実施の形態に限定されるものではなく、本発明の目的を達成できる範囲で以下に示される変形をも含むものである。
すなわち、上記実施の形態では、情報処理装置１００として、パーソナルコンピュータを例示して説明したが、上記したようにこれに限定されない。例えば、情報処理装置として、カーナビゲーション、オーディオ機器、テレビジョン、記録再生装置、自動車の制御コンピュータなど、情報を演算処理するＣＰＵなどの演算装置を備えたあらゆる電気機器に用いることができる。
【００５０】
さらに、ＣＰＵに限られず、例えばＤＳＰ（Digital Signal Processor）などのデジタル信号処理専用のマイクロプロセッサにおいて、本発明を適用してもよい。すなわち、ＤＳＰを備えた電気機器において、プログラムや各種情報を、ＤＳＰが直接処理して演算可能な処理信号で記述して例えばメモリなどの記憶手段に記憶させる。そして、ＤＳＰは、これらのプログラムや各種情報をＩＦステージの処理で読み込み、その後即座にＥＸステージの処理で演算処理を実施する。このような構成であってもＤＳＰのパイプライン処理の段数を削減でき、処理能力の高速化を図れる。
【００５１】
また、上記実施の形態において、パイプライン処理の構造は、ＩＦステージ、ＥＸステージ、ＭＥＭステージ、およびＷＢステージから成り立つ構成としたが、これに限定されない。例えば、パイプライン処理の構造は、ＩＦステージに続いてＥＸステージが設定されれば、ＥＸステージの後の処理がさらに多くの処理に分割されていてもよい。このような構成でも、ＩＦステージの次にＥＸステージが設定されるので、ＥＸステージの処理による演算結果を即座に求めることができ、この演算結果を他の命令情報にパイプラインストール処置なしに利用することができる。
【００５２】
また、パイプライン処理に限らず、２つ以上の命令情報を同期に、例えば処理Ｓ１と処理Ｓ２のＩＦステージ、ＥＸステージ、ＭＥＭステージ、およびＷＢステージのそれぞれの処理を同期に実施する、いわゆるスーパースカラ処理の構成を採用してもよい。このような構成でも、ＩＦステージの次にＥＸステージが設定されれば、演算結果を即座に求めることができる。さらに、スーパースカラ処理とパイプライン処理とのを組み合わせたスーパーパイプライン処理の構成を採用してもよい。
【００５３】
さらに、プログラムや各種情報を構築する処理信号は、上述したように、０および１の数字の羅列のうちで、所定の羅列状態が繰り返して連続される部分を簡略化した簡略化コードを備えてもよい。例えば従来のＣＰＵにて処理可能な処理信号において命令部やデータ部に「０１０１０１０１」というコードが記述される情報は、例えば「１１０１」というコードで記述可能な処理信号を用いた情報にて簡略化されて補助記憶手段１３０に記録される。このような構成でも、プログラムや各種情報の構成を簡略化でき、プログラムや各種情報を記憶するための容量を減少させることができる。その他、０および１の数字の羅列の一部を簡略化してプログラムおよび各種情報の全体容量を小さくできる処理信号であって、ＣＰＵ１５０のＡＬＵ１５５で直接処理可能な処理信号であればよく、簡略化または省略化する位置や方法は限定されない。
【００５４】
また、補助記憶手段１３０にＣＰＵ１５０が直接処理可能な簡略化コードを用いない処理信号が記録されている構成であってもよい。このような構成でも、ＣＰＵ１５０のＡＬＵ１５５はこの処理信号を直接演算処理することが可能であるので、パイプライン処理構造の段数を減少させることができ、ＣＰＵ１５０の処理を高速化できる。
【００５５】
その他、本発明の実施の際の具体的な構造および手順は、本発明の目的を達成できる範囲で他の構造などに適宜変更できる。
〔実施の形態の効果〕
上述したように、上記一実施の形態の情報処理装置１００では、ＣＰＵ１５０は、ＩＦステージで処理信号にて構成されたプログラムの命令情報を主記憶手段１２０から命令レジスタ１５３Ｂに読み込む。そして、ＡＬＵ１５５は、命令レジスタ１５３Ｂの命令情報をそのまま演算処理して、演算結果をメモリデータレジスタ１５３Ｃに返す。このため、ＣＰＵ１５０は、プログラムの命令情報を直接処理できるため、プログラムをデコードする処理が省略でき、１つの命令情報を処理するための実施時間が短縮されるので、ＣＰＵ１５０の処理能力を向上させることができる。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施の形態に係る情報処理装置の概要を模式的に示す全体ブロック図である。
【図２】ＣＰＵにおけるパイプライン処理の情報の流れの概略をステージ毎に分割して示した模式図である。
【図３】ＣＰＵの構成の概略を示す模式図である。
【図４】本実施の形態の情報処理装置のＣＰＵのパイプライン処理におけるタイミングを示す模式図である。
【図５】従来のＣＰＵのＲＡＷハザードにおけるパイプライン処理のタイミングを示す模式図である。
【図６】（Ａ）は、従来のＣＰＵにおいて条件分岐命令を実施した際のパイプライン処理のタイミングを示す模式図である。（Ｂ）は、本実施の形態のＣＰＵにおいて条件分岐命令を実施した際のパイプライン処理のタイミングを示す模式図である。
【符号の説明】
【００５７】
１００        情報処理装置
１３０        情報記憶手段としての補助記憶手段
１５０        情報読込手段を備えた情報演算手段としても機能するＣＰＵ
１５５        処理手段としてのＡＬＵ
【図１】
2007004702.tif 000003
【図２】
2007004702.tif 000004
【図３】
2007004702.tif 000005
【図４】
2007004702.tif 000006
【図５】
2007004702.tif 000007
【図６】
2007004702.tif 000008