JP4264622B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP4264622B2 JP4264622B2 JP2002216061A JP2002216061A JP4264622B2 JP 4264622 B2 JP4264622 B2 JP 4264622B2 JP 2002216061 A JP2002216061 A JP 2002216061A JP 2002216061 A JP2002216061 A JP 2002216061A JP 4264622 B2 JP4264622 B2 JP 4264622B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- transfer
- instruction
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、読み込んだ命令に従って演算処理等の種々の処理を行うプロセッサに関し、特に、読み込む命令を単純化することで、命令デコードに要する時間を短縮し、処理が高速化されたプロセッサに関する。
【0002】
【従来の技術】
現在、コンピュータや携帯端末はもとより、あらゆる電子機器においてマイクロプロセッサが用いられている。従来、マイクロプロセッサに与えられる命令には、どんな演算等の処理を行わせるかを指定するオペコードが記載され、マイクロプロセッサはこのオペコードをデコードすることにより、各演算器等の制御を行っていた。
【0003】
ここで、図15は、従来のプロセッサの構成例を示す機能ブロック図である。
図15に示すプロセッサ100は、命令の取得と命令の発行とを行う制御部110と、命令に従って演算を実行するデータパス部120と、外部からのデータ等の読み込みや、演算結果の外部への出力を行うための外部バスI/F(インタフェース)130によって構成される。また、このプロセッサ100の外部には、外部バスI/F130からアドレスバス140およびデータバス150を介してメモリ200が接続されている。
【0004】
制御部110は、命令デコーダ111とアドレス生成器112によって構成される。命令デコーダ111は、外部バスI/F130を介して読み込んだ命令に対するデコード処理を行い、命令実行のための内部の制御信号を生成する。アドレス生成器112は、命令の読み出しアドレスを生成して、命令デコーダ111に供給する。
【0005】
また、データパス部120は、演算器121と汎用レジスタ122によって構成される。演算器121は、例えば加算や乗算等の複数の種類の演算が可能で、命令デコーダ111からの制御信号に従って、汎用レジスタ122から読み出したデータに対して各種演算を行う。汎用レジスタ122は、演算器121による演算中や終了後の演算結果を適宜格納する。
【0006】
外部バスI/F130は、プロセッサ100の内部の信号を外部のバス信号に変換し、外部(ここではメモリ200)とのデータの読み書きを行う。外部のメモリ200は、命令200aとデータ200bとを格納しており、外部バスI/F130がアドレスバス140を介して要求するアドレスの命令200aまたはデータ200bを、データバス150を介して供給する。
【0007】
以上の構成を有するプロセッサ100における命令実行の流れを説明する。図16は、従来のプロセッサ100における命令実行の流れを示すフローチャートである。
【0008】
ステップS1601において、制御部110のアドレス生成器112が、命令を取得するためのアドレスを生成する。ステップS1602において、生成されたアドレスが、外部バスI/F130を介してメモリ200に出力され、命令デコーダ111は、このアドレスに従ってメモリ200から所定の命令200aを読み込む。
【0009】
ステップS1603において、命令デコーダ111は、読み込んだ命令200aをデコードし、内部の制御信号を生成して、データパス部120の演算器121に供給する。演算器121は、供給された制御信号に基づき、ステップS1604において、汎用レジスタ122から指定された演算データを読み出し、ステップS1605において、読み出した演算データに対する各種の演算を行って、ステップS1606において、演算結果を汎用レジスタ122へ書き戻す。
【0010】
次に、図17は、上記のプロセッサ100にメモリ200から読み込まれる命令200aのプログラムコード例を示す図である。
命令200aのプログラムコードは、実行命令や実行条件を指定するオペコードと、ソースデータ(即値)やデスティネーションデータを指定するオペランドによって構成される。図17の例では、例えば第1701行において、「Load」は指定したレジスタへのデータ転送を実行させる実行命令であり、続く「r0」「pc,#12」はそれぞれ汎用レジスタ122における転送先および転送元のアドレスを示すデスティネーションデータである。
【0011】
図17のプログラムコードでは、第1701行目の実行により、汎用レジスタ122上のアドレス「r0」に対して、メモリ200上のアドレス「PC+12」のデータが読み込まれる。なお、「PC」は、制御部110内に設けられてアドレス生成器112にアドレスを生成させるための図示しないプログラムカウンタのカウント値を示す。
【0012】
また、第1702行目では、メモリ200上のアドレス「PC+16」のデータが、汎用レジスタ122上のアドレス「r1」に読み込まれる。第1703行目では、汎用レジスタ122上のアドレス「r0」「r1」の各値が乗算されて結果がアドレス「r2」に格納される。第1704行目では、アドレス「r0」と即値「10」の値との乗算が行われ、結果がアドレス「r3」に格納される。第1705行目では、アドレス「r2」「r3」の各値が加算されて、結果がアドレス「r3」に書き込まれる。
【0013】
【発明が解決しようとする課題】
上記のように、従来のプロセッサ100では、制御部110に対する命令200aにおいて、演算器121で行う処理を指定する実行命令を示すコードがオペデータ中に記載されており、命令デコーダ111でこのコードから実行させる演算の種類を判断する必要があった。このため、命令デコーダ111におけるデコード処理に要する時間が長くなってしまうことが問題となっていた。
【0014】
また、デコードされた命令に応じて、演算器121は、演算データを汎用レジスタ122から読み込み、演算結果を再び汎用レジスタ122に書き戻していたため、処理効率が悪く、実行速度が低下する原因となっていた。
【0015】
さらに、上記の演算器121は多くの種類の演算命令が実行可能となっているが、この演算器121は常に1つの命令が入力されて動作するため、ある演算の実行中には、同じ演算器121内の別の演算を行う回路は動作しておらず、無駄な構成となっていた。
【0016】
また、例えば、ソフトウェアを使用して、他の命令体系のプログラムコードを上記のプロセッサ100に対応する命令のコードに変換して実行する場合、変換されたデータを外部のメモリ200に一旦書き込み、そのデータをコードとして再びプロセッサ100に読み込んでいたため、処理が複雑で、実行速度が遅くなっていた。
【0017】
本発明はこのような課題に鑑みてなされたものであり、読み込んだ命令に対するデコード処理に要する時間を短縮して、実行速度を向上させたプロセッサを提供することを目的とする。
【0018】
【課題を解決するための手段】
本発明では上記課題を解決するために、読み込んだ命令に従って動作するプロセッサにおいて、1つ以上の演算データレジスタと、演算結果を格納する結果格納レジスタとをそれぞれ備え、すべての前記演算データレジスタにデータが入力されると、入力されたデータを用いて所定の演算処理を行い、その演算結果を前記結果格納レジスタに書き込む、それぞれ単一の演算機能を有する複数の演算手段と、前記各演算手段が備える前記演算データレジスタおよび前記結果格納レジスタを含むレジスタを互いに接続し、接続されたレジスタ間でデータを転送するレジスタ間転送手段と、データの転送先のレジスタを指定する転送先指定情報と、転送元のレジスタを指定する転送元指定情報とがオペランドにおいて記述された前記命令を読み込んでデコードすることにより、前記転送元指定情報により指定されたレジスタに格納されたデータを、前記転送先指定情報により指定されたレジスタに対して前記レジスタ間転送手段を通じて転送させる転送制御手段と、を有し、前記転送制御手段は、前記転送元指定情報の代わりに、転送すべきデータである転送データが前記オペランドにおいて記述された前記命令を読み込んだ場合には、当該命令をデコードすることにより、前記転送先指定情報により指定されたレジスタに対して前記転送データを前記レジスタ間転送手段を通じて転送させることを特徴とするプロセッサが提供される。
【0019】
このようなプロセッサでは、転送制御手段によって、演算手段が具備する1つ以上の演算データレジスタと、同一または別の演算手段が具備する結果格納レジスタとの間のデータ転送動作が制御される。各演算手段は、すべての演算データレジスタにデータが入力されることによって動作を開始するので、転送制御手段によるデータ転送制御のみにより、各演算手段の動作が制御される。従って、転送制御手段に発行される命令では、データの転送先のレジスタを指定する情報と、転送元のレジスタを指定する情報とがオペランドで指定される。さらに、命令には、転送元のレジスタを指定する情報の代わりに、転送すべきデータを記述することが可能であり、転送制御手段にこのような命令を発行すると、転送先として指定した演算データレジスタに所望のデータを格納することも可能になる。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図1は、本発明のプロセッサの全体構成例を示す機能ブロック図である。
【0021】
図1に示すプロセッサ1は、命令の取得と命令の発行とを行う命令取り出し器(図中ではFetchと表示)2と、入力された命令に従って、アドレスバス31およびデータバス32によってなる内部バスに接続された各種のデータ処理器や演算器の動作を制御するバスマスタ3と、外部から読み込まれた命令を記憶する命令キャッシュ4aと、処理結果や外部から読み込まれたデータを記憶するデータキャッシュ4bと、外部からのデータ等の読み込みや、処理結果の外部への出力を行うための外部バスI/F(インタフェース)5とを具備する。
【0022】
また、内部のアドレスバス31およびデータバス32には、例えば外部とのデータ転送処理等を行うデータ処理器や、各種の演算処理を行う演算器等が接続されている。データ処理器としては、読み出し器(図中ではLoadと表示)61、書き出し器(同Store)62、メモリ転送器(同Move)63、スタック処理器(同Stack)64、およびデータ交換器(同Swp)65が接続されている。また、演算器としては、比較器(同Cmp)66、整数加算器(同Add)67、整数減算器(同Sub)68、整数乗算器(同Mul)69、整数除算器(同Div)70、論理積演算器(同And)71、論理和演算器(同Or)72、排他的論理積演算器(同Xand)73、排他的論理和演算器(同Xor)74、ビット反転演算器(同Not)75、浮動小数加算器(同Fadd)76、浮動小数減算器(同Fsub)77、浮動小数乗算器(同Fmul)78、浮動小数除算器(同Fdiv)79、および積和演算器(同Muladd)80が接続されている。さらに、これらとともに、アドレスバス31およびデータバス32には、汎用レジスタ81が接続されている。
【0023】
また、このプロセッサ1の外部には、外部バスI/F5から外部のアドレスバス51およびデータバス52を介して、書き換え可能なメモリ10が接続されている。
【0024】
命令取り出し器2は、命令キャッシュ4aおよび外部バスI/F5を介して、外部のメモリ10から命令を読み込み、バスマスタ3に対して出力する。バスマスタ3は、入力された命令を解析し、アドレスバス31にセレクト信号を出力してレジスタのアドレス指定を行い、場合によってはデータバス32を通じて即値を送信することにより、アドレスバス31およびデータバス32に接続した各データ処理器の間のデータ転送動作を制御する。また、読み込んだ命令中に命令実行回数に情報が含まれている場合には、この命令を指定された回数分だけ繰り返して実行させる。
【0025】
命令キャッシュ4aは、外部バスI/F5を通じてメモリ10から読み込まれた命令を記憶しておき、命令取り出し器2により指定されたメモリ10上のアドレスがヒットした場合に、記憶していた命令を命令取り出し器2に対して出力する。データキャッシュ4bは、外部バスI/F5を通じてメモリ10から読み込まれたデータを記憶しておき、読み出し器61により指定されたメモリ10上のアドレスがヒットした場合に、記憶していたデータを読み出し器61に出力する。外部バスI/F5は、プロセッサ1の内部の信号を外部のバス信号に変換し、例えばメモリ10等の外部とのデータの読み書きを行う。
【0026】
アドレスバス31およびデータバス32に接続された読み出し器61、書き出し器62、メモリ転送器63、スタック処理器64、データ交換器65、比較器66、整数加算器67、整数減算器68、整数乗算器69、整数除算器70、論理積演算器71、論理和演算器72、排他的論理積演算器73、排他的論理和演算器74、ビット反転演算器75、浮動小数加算器76、浮動小数減算器77、浮動小数乗算器78、浮動小数除算器79および積和演算器80は、入力用のレジスタを具備し、バスマスタ3によりアドレスバス31を通じて指定された入力用のレジスタに、データバス32を通じてデータが入力されると、所定のデータ処理を開始する。これらのデータ処理器および演算器は、それぞれ1つの処理機能のみ有している。
【0027】
また、出力用のレジスタを具備している場合には、処理結果のデータをこのレジスタに格納する。この格納されたデータは、バスマスタ3によるアドレス指定に基づいて、他のデータ処理器や演算器等に転送される。なお、これらの各データ処理器および各演算器の動作については後述する。
【0028】
汎用レジスタ81は、各データ処理器および演算器の処理結果等を一時的に記憶し、バスマスタ3によるアドレス指定に基づいて、記憶したデータを他のデータ処理器や演算器等に転送する。
【0029】
外部に接続されたメモリ10は、命令とデータとを格納しており、外部バスI/F5がアドレスバス51を介して要求するアドレスの命令またはデータを、データバス52を介して供給する。なお、外部のアドレスバス51およびデータバス52上には、メモリ10の他に例えば、プログラムや各種のデータを記憶するROMやHDD(ハードディスクドライブ)のI/F、データ入力用のキーボードやモニタ、各種の通信ネットワーク等に接続するためのI/F等(いずれも図示せず)が接続されており、コンピュータシステムを構成している。プロセッサ1が、データバス52を通じてROMやHDD等からプログラムを読み込んで実行し、データバス52上の各部とのデータの読み書きを行うことにより、このコンピュータシステムが動作する。
【0030】
このプロセッサ1では、メモリ10から命令が読み出され、バスマスタ3に順次供給されると、バスマスタ3はこの命令に従って、アドレスバス31およびデータバス32に接続されたデータ処理器や演算器の間のデータ転送動作を制御する。各データ処理器および演算器は、データバス32からのデータ入力用のレジスタを具備し、また一部のデータ処理器とすべての演算器はデータ出力用のレジスタを具備する。
【0031】
各データ処理器および各演算器は、単一の処理機能を有しており、後述するように、所定の入力用のレジスタへのデータ入力が完了すると、自動的に所定のデータ処理を実行する。また、出力用のレジスタを具備するものは処理結果をそのレジスタに格納する。これにより、バスマスタ3によって転送元のレジスタと転送先のレジスタとが指定されるだけで、各データ処理器および演算器を動作させることが可能となる。従って、バスマスタ3は基本的に、発行された命令を基に、転送元および転送先の各レジスタを指定する情報のみ解読すればよく、命令が単純化され、バスマスタ3におけるデコード処理が高速化される。
【0032】
次に、図2、図3、図4、図5および図6を用いて、内部のアドレスバス31およびデータバス32に接続された各機能ブロックについて、さらに詳しく説明する。なお、以下の図2、図3、図4、図5および図6では、説明を簡略化するために、アドレスバス31およびデータバス32が1組のみ設けられているものとしているが、これらは複数組設けられてもよい。
【0033】
図2は、命令取り出し器2、バスマスタ3、比較器66、読み出し器61および整数加算器67の各内部構成を示すブロック図である。
図2に示すように、命令取り出し器2は、プログラムカウンタ21と、アドレス生成器22と、命令発行器23と、命令格納レジスタ24を具備している。プログラムカウンタ21は、入力される図示しないクロック信号に同期して、アドレス生成器22に対してカウント値を順次出力する。また、アドレスバス31およびデータバス32に接続しており、アドレスバス31を通じてセレクト信号により選択されると、データバス32を通じて転送されたデータによって、カウント値が書き換えられる。
【0034】
アドレス生成器22は、プログラムカウンタ21から出力されるカウント値を、メモリ10における読み出しアドレスとして、命令発行器23に対して出力する。
【0035】
命令発行器23は、アドレス生成器22から出力された読み出しアドレスを、命令キャッシュ4aおよび外部バスI/F5を通じてメモリ10に転送する。そして、メモリ10から読み込まれた命令を命令格納レジスタ24に転送する。また、出力した読み出しアドレスが命令キャッシュ4aにおいてヒットした場合には、この命令キャッシュ4aから対応する命令を読み出し、命令格納レジスタ24に転送する。さらに、後述する比較器66のステータスレジスタ66cからのステータス信号の供給を受け、このステータス信号に応じて動作させることが可能となっている。
【0036】
命令格納レジスタ24は、命令発行器23から出力された命令を保持し、所定のタイミングでバスマスタ3に転送する。また、アドレスバス31およびデータバス32に接続して、データバス32からのデータ入力用のレジスタとしても機能し、アドレスバス31を通じてセレクト信号により選択されると、データバス32を通じて転送されたデータによって、出力する命令が書き換えられる。
【0037】
また、バスマスタ3は、アドレスバス31およびデータバス32に接続したデコーダ3aを具備している。このデコーダ3aは、命令取り出し器2の命令格納レジスタ24より出力された命令を解析し、アドレスバス31に対してセレクト信号を出力して、アドレスバス31に接続された各データ処理器または各演算器等のレジスタを選択する。このとき、データ転送元のレジスタと、データ転送先のレジスタとを選択することにより、選択されたレジスタ間でのデータバス32を通じたデータ転送が行われる。
【0038】
また、デコーダ3aは、入力された命令に応じて、即値データを生成し、データ転送先のレジスタを選択してこのレジスタにデータバス32を通じて即値データを転送することも可能である。さらに、入力された命令中に実行回数を指定する情報が含まれる場合は、指定された回数分だけ同じ転送動作を繰り返すことも可能である。
【0039】
また、デコーダ3aは、セレクト信号の出力後にデータバス32を通じてWait信号を受信した場合には、Wait信号の受信が解除されるまでの間、このデータバス32および対応するアドレスバス31における制御状態を保持し、新たな命令のデコードに応じたセレクト信号および即値の出力を停止する。なお、アドレスバス31およびデータバス32が複数組設けられている場合には、Wait信号が受信されていない他のバスに対するデータ転送を継続させることが可能である。
【0040】
次に、比較器66は、データ入力用の2つのデータレジスタ66aおよび66bと、ステータスレジスタ66cを具備している。これらのデータレジスタ66aおよび66bとステータスレジスタ66cは、アドレスバス31およびデータバス32に接続されている。
【0041】
データレジスタ66aおよび66bは、データバス32を通じて転送されたデータの入力を受けるためのレジスタであり、それぞれバスマスタ3からのセレクト信号によって指定されると、データバス32より転送されたデータを格納する。データレジスタ66aおよび66bの双方へのデータ入力が完了すると、比較器66は入力された各データを比較して、比較結果をステータスレジスタ66cに格納する。
【0042】
ステータスレジスタ66cは、格納したデータをステータス信号として命令取り出し器2の命令発行器23に出力するとともに、データバス32に対するデータ出力用のレジスタとしても機能する。この場合、ステータスレジスタ66cは、アドレスバス31を通じてセレクト信号を受信すると、他のレジスタに対してデータバス32を通じて格納したデータを出力する。また、ステータスレジスタ66cは、データバス32からのデータ入力用のレジスタとしても機能し、データバス32を通じて格納データの書き換えが可能となっている。
【0043】
また、比較器66は、各データレジスタ66aおよび66bの入力データに対する比較演算処理中に、データレジスタ66aおよび66bの少なくとも一方、またはステータスレジスタ66cにおいてセレクト信号が受信された場合には、この時点から比較結果がステータスレジスタ66cに格納されるまでの間、データバス32上にWait信号を出力する。
【0044】
次に、読み出し器61は、外部のメモリ10に記憶されたデータを読み出すためのデータ処理器であり、それぞれ1つずつのアドレスレジスタ61aおよびデータレジスタ61bを具備し、これらはともにアドレスバス31およびデータバス32に接続されている。
【0045】
アドレスレジスタ61aは、データバス32からのデータ入力用のレジスタであり、セレクト信号を受信すると、データバス32を通じて転送されたデータを格納する。このデータの格納動作が完了すると、読み出し器61は、格納されたデータを読み出しアドレスとして、データキャッシュ4bおよび外部バスI/F5を通じて外部のメモリ10にアクセスする。そして、メモリ10上の対応するアドレスからデータを読み出し、データレジスタ61bに格納する。また、出力した読み出しアドレスがデータキャッシュ4bにおいてヒットした場合には、このデータキャッシュ4bから対応するデータを読み出し、データレジスタ61bに格納する。データレジスタ61bは、データバス32に対するデータ出力用のレジスタであり、セレクト信号を受信すると、格納した値をデータバス32上に出力する。
【0046】
また、読み出し器61は、アドレスレジスタ62aへのデータ入力後のデータ読み出し処理中に、アドレスレジスタ62bまたはデータレジスタ62bにおいてセレクト信号が受信された場合には、読み出したデータのデータレジスタ62bへの格納処理が完了するまでの間、データバス32上にWait信号を出力する。
【0047】
次に、整数加算器67は、2つのデータを整数加算するための演算器であり、2つの入力レジスタ67aおよび67bと、1つの出力レジスタ67cを具備しており、これらはすべてアドレスバス31およびデータバス32に接続されている。
【0048】
入力レジスタ67aおよび67bは、セレクト信号を受信すると、データバス32を通じて転送されたデータを格納する。入力レジスタ67aおよび67bには、それぞれ加算される数値と加算する数値とが入力され、これらへのデータの格納動作が完了すると、整数加算器67は各データを使用して整数加算処理を行い、加算結果を出力レジスタ67cに格納する。出力レジスタ67cは、セレクト信号を受信すると、格納したデータをデータバス32上に出力する。
【0049】
また、整数加算器67は、入力レジスタ67aおよび67bの格納データを使用した整数加算処理中に、入力レジスタ67aおよび67bの少なくとも一方、または出力レジスタ67cにおいてセレクト信号が受信された場合には、加算結果の出力レジスタ66cへの格納処理が完了するまでの間、データバス32上にWait信号を出力する。
【0050】
次に、図3は、書き出し器62、メモリ転送器63、スタック処理器64、整数減算器68、整数乗算器69および整数除算器70の各内部構成例を示すブロック図である。
【0051】
書き出し器62は、外部のメモリ10に対してデータを書き出すためのデータ処理器であり、図3に示すように、データバス32からのデータ入力用のレジスタとして、アドレスレジスタ62aおよびデータレジスタ62bを1つずつ具備している。
【0052】
アドレスバス31を通じたセレクト信号の受信により、アドレスレジスタ62aには、データバス32を通じて転送されたメモリ10上のデータ書き出し先のアドレスが格納され、データレジスタ62bには、メモリ10に書き出すデータが格納される。これらのデータの格納動作が完了すると、書き出し器62は、データキャッシュ4bおよび外部バスI/F5を通じて外部のメモリ10にアクセスし、メモリ10上の対応するアドレスにデータを書き出す。
【0053】
また、書き出し器62は、アドレスレジスタ62aおよびデータレジスタ62bの格納データを使用したメモリ10への書き出し処理中に、少なくとも一方のレジスタにおいてセレクト信号が受信された場合には、書き出し処理が完了するまでの間、データバス32上にWait信号を出力する。
【0054】
次に、メモリ転送器63は、外部のメモリ10内、あるいはこのメモリ10と外部のデータバス52上に接続された他のメモリとの間のデータ転送を指示するためのデータ処理器であり、データバス32からのデータ入力用のレジスタとして、2つのアドレスレジスタ63aおよび63bと1つの転送量レジスタ63cを具備している。
【0055】
アドレスレジスタ63aには、メモリ10あるいは他のメモリ上の転送元となるアドレスが、データバス32より入力されて格納され、アドレスレジスタ63bには転送先となるアドレスが格納される。また、転送量レジスタ63cには、アドレスレジスタ63aにおいて指定されたアドレスから読み出すデータのデータサイズが格納される。これらのデータの格納動作が完了すると、メモリ転送器63は、データキャッシュ4bおよび外部バスI/F5を通じて外部のメモリ10あるいはその他のメモリにアクセスし、対応するアドレス間のデータ転送を指示する。
【0056】
また、メモリ転送器63は、各レジスタの格納データを使用したメモリ10内のデータ転送処理中に、少なくとも1つのレジスタにおいてセレクト信号が受信された場合には、データ転送処理が完了するまでの間、データバス32上にWait信号を出力する。
【0057】
次に、スタック処理器64は、外部のメモリ10上のスタック領域に対するデータの読み出しおよび書き出しを行うためのデータ処理器であり、データバス32からのデータ入力用のレジスタであるポインタレジスタ64aと、データバス32に対するデータ入出力用のレジスタであるデータレジスタ64bとを具備している。
【0058】
ポインタレジスタ64aには、メモリ10上のアドレスを指定するためのスタックポインタが、データバス32を通じて入力されて格納される。また、データレジスタ64bには、セレクト信号が受信された場合に、データバス32を通じて、メモリ10への書き出し対象となるデータが格納される。
【0059】
スタック処理器64は、データレジスタ64bにおける読み書きによりメモリ10からの読み出しおよび書き出しの各動作を判断し、読み出し動作の場合は、ポインタレジスタ64aへのデータ格納動作が完了すると、メモリ10にアクセスして、対応するアドレスからデータを読み出し、データレジスタ64bに格納する。この場合、セレクト信号の受信によって、データレジスタ64bの格納データはデータバス32上に転送される。また、書き出し動作の場合は、ポインタレジスタ64aおよびデータレジスタ64bの双方へのデータ格納動作が完了すると、メモリ10の対応するアドレスに対してデータを書き出す。
【0060】
また、スタック処理器64は、ポインタレジスタ64aまたはこれとデータレジスタ64bの双方における格納データを使用したスタック処理中に、少なくとも一方のレジスタにおいてセレクト信号が受信された場合には、スタック処理が完了するまでの間、データバス32上にWait信号を出力する。
【0061】
次に、整数減算器68、整数乗算器69および整数除算器70は、それぞれデータバス32を通じて転送された2つのデータに対する整数減算、整数乗算および整数除算を行うための演算器である。これらは前述した整数加算器67と同様に、データバス32からのデータ入力用の2つのレジスタと、データ出力用の1つのレジスタをそれぞれ具備している。
【0062】
整数減算器68は、入力レジスタ68aおよび68bのそれぞれに、データバス32を通じて減算される数値と減算する数値の入力を受け、双方へのデータ格納動作が完了すると整数減算処理を開始し、この演算結果を出力レジスタ68cに格納する。また、演算処理中に、入力レジスタ68aおよび68bの少なくとも一方、または出力レジスタ68cにおいてセレクト信号が受信された場合には、演算結果の格納が完了するまでの間、データバス32にWait信号を出力する。
【0063】
また、整数乗算器69も同様に、データバス32から入力レジスタ69aおよび69bへのデータ格納動作が完了すると、これらの格納データを使用した整数乗算処理を開始し、演算結果を出力レジスタ69cに格納する。さらに、整数除算器70も同様に、データバス32から入力レジスタ70aおよび70bへのデータ格納動作が完了すると、これらの格納データを使用した整数除算処理を開始し、演算結果を出力レジスタ70cに格納する。なお、整数乗算器69および整数除算器70は、ともに整数減算器68と同様のWait信号の出力動作を行う。
【0064】
次に、図4は、論理積演算器71、論理和演算器72、排他的論理積演算器73、排他的論理和演算器74およびビット反転演算器75の各内部構成例を示すブロック図である。
【0065】
論理積演算器71、論理和演算器72、排他的論理積演算器73および排他的論理和演算器74は、それぞれデータバス32を通じて転送された2つのデータに対する論理積演算、論理和演算、排他的論理積演算および排他的論理和演算を行うための演算器である。これらは前述した整数加算器67等と同様に、データバス32からのデータ入力用の2つのレジスタと、データ出力用の1つのレジスタをそれぞれ具備している。
【0066】
論理積演算器71は、整数加算器67等と同様に、入力レジスタ71aおよび71bのそれぞれに、データバス32を通じて演算対象の数値の入力を受け、双方へのデータ格納動作が完了するとこれらの数値の論理積に対する演算処理を開始し、この演算結果を出力レジスタ71cに格納する。また、演算処理中に、入力レジスタ70aおよび70bの少なくとも一方、または出力レジスタ70cにおいてセレクト信号が受信された場合には、演算結果の格納が完了するまでの間、データバス32にWait信号を出力する。
【0067】
論理和演算器72も同様に、データバス32から入力レジスタ72aおよび72bへのデータ格納動作が完了すると、これらの格納データの論理和に対する演算処理を開始し、演算結果を出力レジスタ72cに格納する。また、排他的論理積演算器73も同様に、データバス32から入力レジスタ73aおよび73bへのデータ格納動作が完了すると、これらの格納データの排他的論理積に対する演算処理を開始し、演算結果を出力レジスタ73cに格納する。さらに、排他的論理和演算器74も同様に、データバス32から入力レジスタ74aおよび74bへのデータ格納動作が完了すると、これらの格納データの排他的論理和に対する演算処理を開始し、演算結果を出力レジスタ74cに格納する。
【0068】
なお、これらの論理和演算器72、排他的論理積演算器73および排他的論理和演算器74は、ともに論理積演算器71等と同様のWait信号の出力動作を行う。
【0069】
ビット反転演算器75は、データバス32に対するデータの入出力が可能な1つの入出力データレジスタ75aを具備し、データバス32からの入出力レジスタ75aへのデータ格納動作が完了すると、この格納データによるビット反転処理を開始し、演算結果を入出力レジスタ75aに書き戻す。そして、セレクト信号の受信に応じてこの演算結果をデータバス32に出力する。また、演算処理中に、入出力レジスタ75aにおいてセレクト信号が受信された場合には、演算結果の格納が完了するまでの間、データバス32にWait信号を出力する。
【0070】
なお、ビット反転演算器75は、データバス32に対する入力用および出力用として個別のレジスタを具備していてもよい。
次に、図5は、浮動小数加算器76、浮動小数減算器77、浮動小数乗算器78および浮動小数除算器79の各内部構成例を示すブロック図である。
【0071】
浮動小数加算器76、浮動小数減算器77、浮動小数乗算器78および浮動小数除算器79は、それぞれデータバス32を通じて転送された2つのデータに対する浮動小数加算、浮動小数減算、浮動小数乗算および浮動小数除算を行うための演算器である。これらは前述した整数加算器67等と同様に、データバス32からのデータ入力用の2つのレジスタと、データ出力用の1つのレジスタをそれぞれ具備している。
【0072】
浮動小数加算器76は、整数加算器67等と同様に、入力レジスタ76aおよび76bのそれぞれに、データバス32を通じて演算対象の数値の入力を受け、双方へのデータ格納動作が完了するとこれらの数値による浮動小数加算処理を開始し、この演算結果を出力レジスタ76cに格納する。また、演算処理中に、入力レジスタ76aおよび76bの少なくとも一方、または出力レジスタ76cにおいてセレクト信号が受信された場合には、演算結果の格納が完了するまでの間、データバス32にWait信号を出力する。
【0073】
また、浮動小数減算器77も同様に、データバス32から入力レジスタ77aおよび77bへのデータ格納動作が完了すると、これらの格納データによる浮動小数減算処理を開始し、演算結果を出力レジスタ77cに格納する。さらに、浮動小数乗算器78も同様に、データバス32から入力レジスタ78aおよび78bへのデータ格納動作が完了すると、これらの格納データによる浮動小数乗算処理を開始し、演算結果を出力レジスタ78cに格納する。また、浮動小数除算器79も同様に、データバス32から入力レジスタ79aおよび79bへのデータ格納動作が完了すると、これらの格納データによる浮動小数除算処理を開始し、演算結果を出力レジスタ79cに格納する。
【0074】
なお、これらの浮動小数減算器77、浮動小数乗算器78および浮動小数除算器79、ともに浮動小数加算器76等と同様のWait信号の出力動作を行う。
次に、図6は、データ交換器65および積和演算器80の各内部構成例を示すブロック図である。
【0075】
データ交換器65は、メモリ10上のデータを読み出すとともに、プロセッサ内のレジスタのデータをメモリ10に書き出してデータ交換処理を行うデータ処理器であり、図6に示すように、データバス32からのメモリアドレス入力用のアドレスレジスタ65aと、データ入力用の入力データレジスタ65bと、データバス32へのデータ出力用の出力データレジスタ65cとを具備している。
【0076】
データ交換器65は、データバス32からの入力データレジスタ65bへのデータ格納およびアドレスレジスタ65aへアドレスデータの格納が完了すると、これらの格納データにより、アドレスレジスタ65aの示すメモリ10内のアドレスに、データキャッシュ4bおよび外部バスI/F5を通じてアクセスする。そして、メモリ10上の対応するアドレスからデータを読み出し、出力データレジスタ65cに格納する。また、アドレスレジスタ65aに格納された読み出しアドレスがデータキャッシュ4bにおいてヒットした場合には、このデータキャッシュ4bから対応するデータを読み出し、出力データレジスタ65cに格納する。出力データレジスタ65cは、データが格納された後、、セレクト信号を受信すると、格納した値をデータバス32上に出力する。続いて、データキャッシュ4bおよび外部バスI/F5を通じて、先ほど読み出しを行ったメモリ10上のアドレスにアクセスし、入力データレジスタ65bに格納されているデータを書き出す。
【0077】
また、データ交換器65は、アドレスレジスタ65aおよび入力データレジスタ65bへのデータ格納後のメモリ10からのデータ読み出し処理中に、出力データレジスタ65cにおいてセレクト信号が受信された場合には、出力データレジスタ65cへのデータ格納が完了するまでの間、データバス32にWait信号を出力する。さらに、上記のデータ読み出し処理中およびその後のメモリ10へのデータ書き出し処理中に、アドレスレジスタ65aおよび入力データレジスタ65bの少なくとも一方においてセレクト信号が受信された場合には、データ書き出し処理が完了するまでの間、データバス32にWait信号を出力する。
【0078】
積和演算器80は、データバス32からの入力用として3つの入力レジスタ80a、80bおよび80cと、出力用の出力レジスタ80dとを具備する。この積和演算器80は、入力レジスタ80a〜80cのそれぞれに、データバス32を通じて演算対象の数値の入力を受け、これらのすべてに対するデータ格納動作が完了すると、入力された数値による積和演算処理を開始する。ここで、各入力レジスタ80a〜80cに格納された数値は、それぞれ被乗算値、乗算値、加算値として使用される。そして、この演算結果が出力レジスタ80dに格納される。また、演算処理中に、入力レジスタ80a〜80cの少なくとも一つ、または出力レジスタ80dにおいてセレクト信号が受信された場合には、演算結果の格納が完了するまでの間、データバス32にWait信号を出力する。
【0079】
また、以上の読み出し器61、書き出し器62、メモリ転送器63、スタック処理器64およびデータ交換器65の各データ処理器と、比較器66、整数加算器67、整数減算器68、整数乗算器69、整数除算器70、論理積演算器71、論理和演算器72、排他的論理積演算器73、排他的論理和演算器74、ビット反転演算器75、浮動小数加算器76、浮動小数減算器77、浮動小数乗算器78、浮動小数除算器79および積和演算器80の各演算器は、それぞれが具備するデータ入力用のレジスタに、各処理を開始するために必要なデータ入力が行われていない処理待機状態において、処理回路への電流供給量を抑制するパワーセーブ機能を有してもよい。
【0080】
以上のように、読み出し器61、書き出し器62、メモリ転送器63、スタック処理器64およびデータ交換器65の各データ処理器と、比較器66、整数加算器67、整数減算器68、整数乗算器69、整数除算器70、論理積演算器71、論理和演算器72、排他的論理積演算器73、排他的論理和演算器74、ビット反転演算器75、浮動小数加算器76、浮動小数減算器77、浮動小数乗算器78、浮動小数除算器79および積和演算器80の各演算器は、データバス32からのデータ入力用のレジスタへのデータ格納動作が完了すると、自動的に所定の動作を開始する。また、データ出力用のレジスタを具備するデータ処理器および演算器は、処理結果をこのレジスタに格納する。従って、各データ処理器および各演算器の動作は、バスマスタ3のデコーダ3aからのセレクト信号によってそれぞれのレジスタが選択され、データバス32を通じたデータ転送が行われることにより制御される。
【0081】
ここで、バスマスタ3によるレジスタの選択に応じた各データ処理器および各演算器の動作について、具体的に説明する。ここでは例として、図2に示したバスマスタ3のデコーダ3a、読み出し器61および整数加算器67の間のデータ転送と動作について説明する。
【0082】
図7は、デコーダ3a、読み出し器61および整数加算器67の間のシーケンス例を示す図である。
まず、整数加算器67による加算結果を読み出しアドレスとして、読み出し器61がメモリ10からのデータ読み出しを行う場合について説明する。この場合、デコーダ3aには、整数加算器67の出力レジスタ67c、および読み出し器61のアドレスレジスタ61aを指定する命令が入力される。
【0083】
タイミングT701において、整数加算器67の出力レジスタ67cに対して、デコーダ3aからアドレスバス31を通じてセレクト信号が出力される。続いて、タイミングT702において、読み出し器61のアドレスレジスタ61aに対して、デコーダ3aからセレクト信号が出力される。
【0084】
これにより、タイミングT703において、出力レジスタ67cの格納値が、データバス32を通じてアドレスレジスタ61aに転送される。また、タイミングT704において、読み出し器61は、転送された値を読み出しアドレスとして、メモリ10よりデータを読み出し、データレジスタ61bに格納する。
【0085】
次に、メモリ10より読み出された値と、デコーダ3aからの即値とが、整数加算器67において加算される場合について説明する。
この場合はまず、デコーダ3aには、読み出し器61のデータレジスタ61b、および整数加算器67の入力レジスタ67aを指定する命令が入力される。タイミングT705において、読み出し器61のデータレジスタ61bに対して、デコーダ3aからセレクト信号が出力される。なお、このとき、タイミングT704におけるデータ読み出し処理が終了せず、読み出したデータがデータレジスタ61bに格納されていない場合は、読み出し器61からはデータバス32上にWait信号が出力される。このWait信号は、データレジスタ61bへのデータ格納が完了すると、出力が停止され、この後、次のタイミングT706の処理が開始される。
【0086】
タイミングT706において、整数加算器67の入力レジスタ67aに対して、デコーダ3aからセレクト信号が出力される。これにより、タイミングT707において、データレジスタ61bの格納値が入力レジスタ67aに転送される。
【0087】
続いて、デコーダ3aには、整数加算器67の入力レジスタ67bと、即値とを指定する命令が入力される。タイミングT708において、デコーダ3aより即値データがデータバス32上に出力される。タイミングT709において、整数加算器67の入力レジスタ67bに対して、デコーダ3aからセレクト信号が出力される。これにより、入力レジスタ67bに、デコーダ3aからの即値データが格納される。そして、タイミングT710において、整数加算器67では、入力レジスタ67aおよび67bの格納値に対する整数加算が行われ、演算結果が出力レジスタ67cに格納される。
【0088】
また、他のデータ処理器、すなわち書き出し器62、メモリ転送器63、スタック処理器64およびデータ交換器65や、他の演算器、すなわち比較器66、整数減算器68、整数乗算器69、整数除算器70、論理積演算器71、論理和演算器72、排他的論理積演算器73、排他的論理和演算器74、ビット反転演算器75、浮動小数加算器76、浮動小数減算器77、浮動小数乗算器78、浮動小数除算器79および積和演算器80においても、これらが具備するレジスタ同士のデータ転送は、上記と同様に行われる。さらに、命令取り出し器2のプログラムカウンタ21および命令格納レジスタ24も、バスマスタ3からのセレクト信号によって選択されることにより、データバス32を通じたデータの読み出しおよび書き込みが行われる。
【0089】
従って、プロセッサ1の動作を制御するためには、バスマスタ3に対して発行される命令に、データバス32に接続されたレジスタを転送元および転送先として指定するための情報が最低限記述されればよい。また、これに加えて、転送される数値が命令内で指定されることにより、バスマスタ3は、指定したレジスタに対して転送するデータを自ら即値として出力することが可能となる。
【0090】
ここで、図8は、上記のプロセッサ1に供給される命令のフォーマット例を示す図である。
図8に示すように、プロセッサ1に供給される命令は、オペコード11およびオペランド12で構成される。オペコード11には、実行条件11aおよび実行回数11bの一方または双方が必要に応じて記述される。また、オペランド12では、ソースデータ12aおよびデスティネーションデータ12bの一方または双方が記述される。ソースデータ12aでは、バスマスタ3より出力される即値または転送元のレジスタが指定され、デスティネーションデータ12bでは、転送先のレジスタが指定される。
【0091】
このような命令は、メモリ10から、命令取り出し器2の命令発行器23によって取り出され、命令格納レジスタ24を介して、バスマスタ3のデコーダ3aに送出される。デコーダ3aは、命令中に記述された実行条件11a、実行回数11bおよびオペランド12をデコードし、データバス32上のレジスタ間のデータ転送動作の制御を行う。また、命令中で即値が指定されている場合は、この即値を指定されたレジスタに転送する。
【0092】
このように、デコーダ3aでは、実行条件11aの比較と実行回数の制御、転送元および転送先のレジスタのアドレスに対するデコードのみの単純な処理が行われる。従って、オペコード中に演算器等の処理を指定するための実行命令が記述された従来の命令をデコードする場合と比較して、デコード処理に要する時間が大幅に短縮される。従来の構成のプロセッサでは、処理時間中に占めるデコード処理時間の割合が大きく、本発明ではこのデコード処理時間が短縮されるため、プロセッサ1全体に対する処理時間の短縮効果が大きい。
【0093】
なお、命令中において実行回数11bの指定を可能とすることにより、例えばループ処理を実行回数11bを指定した命令として処理することができるので、命令の読み込みに要する時間を短縮することができる。
【0094】
ここで、図9は、デコーダ3aにおける処理の流れを示すフローチャートである。
ステップS901において、命令取り出し器2の命令格納レジスタ24から出力された命令を受け取る。ステップS902において、受け取った命令をデコードする。
【0095】
ステップS903において、命令のデコード結果に応じて、転送元レジスタおよび転送先レジスタに対して、それぞれアドレスバス31を通じてセレクト信号を出力する。また、命令に即値が含まれていた場合は、アドレスバス31を通じて転送先レジスタにセレクト信号を出力するとともに、即値データを生成してデータバス32に出力する。
【0096】
ステップS904において、データバス32よりWait信号を受信したか否かを判断する。Wait信号を受信した場合は、ステップS905に進み、受信していない場合はステップS906に進む。ステップS905において、現在のセレクト信号の出力状態を保持する。従って、ステップS904での判断により、Wait信号の受信が停止するまでの間、ステップS903でのセレクト信号の出力状態が保持される。
【0097】
ステップS906において、受け取った命令中で実行回数が指定されていた場合に、残りの実行回数が「0」であるか否かを判断し、「0」である場合はステップS901に進んで新たな命令を受け取る。また、「0」でない場合はステップS907に進む。ステップS907において、残りの実行回数の値を「1」だけ減じて、ステップS903に戻る。従って、指定された実行回数の分だけ、ステップS903〜S906の処理が繰り返される。
【0098】
なお、アドレスバス31およびデータバス32が複数組設けられている場合には、ステップS904の処理では、Wait信号を受信したデータバス32、およびこれに対応するアドレスバス31における制御状態を保持すればよく、他のアドレスバス31およびデータバス32を使用して転送制御動作を続行することが可能である。
【0099】
次に、アドレスバス31およびデータバス32に接続された各データ処理器および各演算器における処理の流れについて説明する。なお、ここでは例として整数加算器67について説明するが、他のデータ処理器や演算器においても基本的な処理の流れは同様である。
【0100】
図10は、整数加算器67における処理の流れを示すフローチャートである。
ステップS1001において、アドレスバス31を通じたセレクト信号の受信により、データバス32を通じて転送されたデータが入力レジスタ67aおよび67bに入力される。そして、双方へのデータ入力が完了した場合に、ステップS1002に進む。ステップS1002において、整数加算処理を行う回路部に設定されていたパワーセーブ機能を解除する。
【0101】
ステップS1003において、セレクト信号により入力レジスタ67aまたは67b、出力レジスタ67cのいずれかが選択された場合には、データバス32に対してWait信号を出力する。このステップS1003の処理は、次のステップS1004およびS1005の処理が終了するまで継続される。
【0102】
なお、ここでは、Wait信号の出力は入力レジスタ67aおよび67bの双方へのデータ入力が完了した後に行うこととしているが、例えば、アドレスバス31およびデータバス32が複数組設けられている場合には、入力レジスタ67aおよび67bについては、そのいずれかにデータが入力された時点から、その後にセレクト信号を受信した場合に、セレクト信号を受信したデータバス32に対してWait信号の出力を行ってもよい。この場合、データが未入力の入力レジスタ67aまたは67bについては、他のデータバスからデータの入力を受けることができる。
【0103】
ステップS1004において、入力されたデータを用いた整数加算処理を実行する。ステップS1005において、演算結果を出力レジスタ67cに格納する。ステップS1006において、Wait信号を出力していた場合には、この出力を停止する。ステップS1007において、パワーセーブ機能を再び設定する。
【0104】
このように、データ処理器および演算器では、デコーダ3aによるアドレスバス31およびデータバス32に対する制御に基づいた、入力用のレジスタに対するデータ入力を受けるだけで、データ処理器および演算器におけるデータ処理自体は、デコーダ3aからの制御を受けることはない。また、各データ処理器および演算器は、ただ1つの処理機能を有するため、内部の回路構成が単純で、例えば多機能の演算器等と比較して高速動作が可能となっている。
【0105】
次に、図11は、上記のプロセッサ1を動作させるためのプログラムコード例を示す図である。なお、図11では、各行におけるプログラムコードの実行によって開始されるデータ処理動作についても並記している。
【0106】
また、ここでは、プログラムコード中で指定されるレジスタ名についてそれぞれ、プログラムカウンタ21をpc、命令格納レジスタ24をr0、ステータスレジスタ66cをr1、読み出し器61のアドレスレジスタ61aをr2、データレジスタ61bをr3、メモリ転送器63のアドレスレジスタ63aおよび63bをそれぞれr4およびr5、転送量レジスタ63cをr6、整数加算器67の入力レジスタ67aおよび67bをそれぞれr7およびr8、出力レジスタ67cをr9、整数乗算器69の入力レジスタ69aおよび69bをそれぞれr10およびr11、出力レジスタ69cをr12としている。
【0107】
第1101行目では、オペランドにおいて、転送元としてプログラムカウンタ21、転送先として整数加算器67の入力レジスタ67aが指定されている。これにより、プログラムカウンタ21のカウント値が、入力レジスタ67aに転送される。第1102行目では、即値として「12」が指定され、転送先として整数加算器67の入力レジスタ67bが指定されている。これにより、バスマスタ3のデコーダ3aからは即値データとして「12」が生成され、入力レジスタ67bに対して転送される。この転送が完了すると、整数加算器67では、入力レジスタ67aおよび67bの各格納値の整数加算処理が開始され、演算結果が出力レジスタ67cに格納される。
【0108】
以下、同様にして、第1103行目では、整数加算器67の出力レジスタ67cの格納値が、読み出し器61のアドレスレジスタ61aに転送される。これにより、読み出し器61は、整数加算器67における演算結果を読み出しアドレスとして、外部のメモリ10よりデータを読み出し、データレジスタ61bに格納する。
【0109】
第1104行目では、読み出し器61によってメモリ10から読み出された値が、整数乗算器69の入力レジスタ69aに転送される。第1105行目では、プログラムカウンタ21のカウント値が、整数加算器67の入力レジスタ67aに転送される。第1106行目では、デコーダ3aからの即値データ「16」が、整数加算器67の入力レジスタ67bに転送される。これにより、整数加算器67は、プログラムカウンタ21のカウント値に「16」を加算して、加算結果を出力レジスタ67cに格納する。
【0110】
第1107行目では、整数加算器67の加算結果が、読み出し器61のアドレスレジスタ61aに転送され、この値を読み出しアドレスとしてメモリ10からデータが読み出され、データレジスタ61bに格納される。第1108行目では、第1107行目の処理によってメモリ10から読み出された値が、整数乗算器69の入力レジスタ69bに転送されて、整数乗算器69における整数乗算処理が行われ、演算結果が出力レジスタ69cに格納される。
【0111】
以上の第1101行目や第1105行目では、転送元としてプログラムカウンタ21が選択されているが、逆に転送先としてプログラムカウンタ21を選択すると、プログラムカウンタ21のカウント値が変更される。このようなプログラムコードを生成することにより、プログラムのジャンプを行うことが可能である。
【0112】
次に、第1111行目では、整数乗算器69における演算結果が、メモリ転送器63のアドレスレジスタ63aに転送される。また、第1112行目では、整数加算器67における演算結果が、メモリ転送器63のアドレスレジスタ63bに転送される。さらに、第1113行目では、デコーダ3aからの即値データ「20」が、メモリ転送器63の転送量レジスタ63cに転送される。
【0113】
これにより、メモリ転送器63は、データキャッシュ4bおよび外部バスI/F5を介して外部のメモリ10にアクセスする。そして、整数乗算器69における演算結果を読み出し元のアドレスとし、整数加算器67における演算結果を読み出し先のアドレスとして、メモリ10上の読み出し元のアドレスから20バイト分のデータを、メモリ10上の読み出し先のアドレスに対して書き出す。また、アドレスの指定により、メモリ10以外の外部バス上のメモリを指定することも可能である。
【0114】
このように、上記のプロセッサ1では、デコーダ3aに供給される命令により、外部のメモリ間の転送動作を制御することができる。従来では、このようなメモリ間転送の動作を必ずレジスタを介して行っていたため、上記のプロセッサ1では、このような動作が単純化される。
【0115】
次に、第1121行目では、読み出し器61によりメモリ10から読み出された値が、命令取り出し器2の命令格納レジスタ24に転送される。命令格納レジスタ24は、転送された値を命令として保持し、デコーダ3aに転送する。また、第1121行目のプログラムコード中の「5」は実行回数の指定であり、読み出し器61から命令格納レジスタ24に対する転送動作が5回繰り返される。
【0116】
また、第1122行目では、整数乗算器69による演算結果が、比較器66のステータスレジスタ66cに転送される。第1123行目では、プログラムコードの「Lt」はオペコードの実行条件となっており、ステータスレジスタ66cの格納値の最上位ビットが「1」のとき、整数乗算器69における演算結果が整数加算器67の入力レジスタ67aに転送される。また、第1124行目でも同様に、ステータスレジスタ66cの格納値の最上位ビットが「1」のとき、デコーダ3aからの即値データ「1」が、整数加算器67の入力レジスタ67bに転送される。これにより、整数加算器67は、整数乗算器69における演算結果に「1」を加算する処理を行い、演算結果を出力レジスタ68cに格納する。
【0117】
ここで、第1121行目のように、デコーダ3aによる内部バス制御により、データ処理器や演算器における処理結果を命令として、命令格納レジスタ24に対して指定することができる。従って、命令格納レジスタ24への命令の書き込み位置を、単純な命令によって指定することができ、例えばプログラムの分岐を減少させることができる。
【0118】
また、他の命令体系のプログラムコードを、プロセッサ1でデコード可能な命令にソフトウェアにより変換して実行する場合に、命令格納レジスタ24に書き込んで実行することにより、このようなプログラムコードを高速に変換し、実行することが可能となる。例えば、上記のプロセッサ1を用いて、命令体系の異なる他のプロセッサのエミュレーションを行う場合に、他のプロセッサの命令をデコードし、外部のメモリに一旦書き込む動作を行う必要がなくなり、高速で実行することが可能となる。
【0119】
また、第1122行目〜第1124行目のように、命令に応じてステータスレジスタ66cに対する書き込みを可能としたことにより、データ処理において特定のビットを立てて制御を変更させることができ、プログラムの柔軟性が向上する。
【0120】
なお、上記のプロセッサ1が搭載されるコンピュータシステムでは、例えば高級プログラム言語や他のプロセッサの命令体系に準じたプログラム等に対して、コンパイル等のデータ変換を行うソフトウェアが実装されることにより、図11に示すようなプログラムコードが生成されて、プロセッサ1を動作させることができる。
【0121】
ところで、上記のプロセッサ1では、単機能のデータ処理器や演算器を、レジスタの指定および即値の転送による内部バス上の転送制御によって動作させる構成のため、処理を行うための命令の数が従来より多くなっている。しかし、上記のプロセッサ1では、命令が単純化された分、デコーダ3aにおける処理速度が大幅に向上していることから、従来より高速な動作が可能となっている。
【0122】
ここで、比較のために、図11の第1行目〜第8行目までの処理に対応する従来のプログラムコードを例示する。図12は、従来のプログラムコードの一例を示す図である。
【0123】
図12では、複数の機能を有するデータ処理器が使用されて、データの読み出しおよび書き出しは、汎用レジスタ中のr20、r21およびr22の各領域が使用されるものとする。第1201行目では、実行命令「Load」により、外部のメモリからのデータ読み出しが指定されている。この命令により、プログラムカウンタのカウンタ値に「12」を加算した値を読み出しアドレスとして、メモリからデータを読み出し、r20に格納する。
【0124】
また、第1202行目では、同様に、プログラムカウンタのカウンタ値に「16」を加算した値を読み出しアドレスとして、メモリからデータを読み出し、r21に格納する。続く第1203行目では、実行命令の「Mul」により整数乗算処理が指定され、r20およびr21の各格納値を乗算して、演算結果がr22に格納される。この状態は、図10のプログラムコードにおける第1109行目の状態に相当する。
【0125】
このように、上記のプロセッサ1では、従来では図11のように3行のプログラムコードで指定可能な処理の指定に対して、図10のように8行分のプログラムコードを必要とされ、命令の数が増加する。しかし、プロセッサ1に供給される命令では、オペコード中に実行命令を記述する必要がなく、さらにオペランドに記述するデータが単純なため、1命令文のデータ長は従来より短縮化されており、全体として命令のデータ長には従来と比較して大きな変化はない。
【0126】
また、1命令文の実行時において読み出し可能なレジスタ数は、書き込み可能なレジスタ数以下となるため、命令文中において転送先を指定する情報に割り当てるデータ長より、転送元を指定する情報に割り当てるデータ長を短くすることができる。これにより、1命令あたりのデータ長を短くすることもでき、例えば1命令フォーマット中に複数の命令が記述されたVLIW(Very Long Instruction Word)を使用した場合等に特に効果的である。
【0127】
さらに、命令の数が増加しても、デコーダ3aにおける処理速度が大幅に高速化されているため、全体の処理時間は短縮化される。さらに、各データ処理器、各演算器とデコーダ3aとを接続する内部バスを複数設けることにより、各データ処理器および演算器における処理を並行して実行させることが可能となる。この場合、プロセッサ1の全体の処理速度に対しては、デコーダ3aにおけるデコード処理速度がより大きなボトルネックの要素となるため、従来と比較して処理の高速化が可能な割合は大きくなる。
【0128】
ここで、図13は、内部バスが複数設けられた場合の処理のパイプラインの例を概念的に示す図である。図13(A)は、上記のプロセッサ1における例であり、(B)では、比較のために、同じ処理に対する従来のパイプラインの例を示している。
【0129】
図13では、整数乗算、整数除算および整数加算の順で演算を行わなければならない場合のパイプラインの例を示している。図13(A)のように、上記のプロセッサ1では、まず、整数乗算を指示する命令が取り出されてデコードされた後、整数乗算処理が開始されると同時に、次の整数除算を指示する命令のデコードが開始される。そして、この命令のデコード処理が終了した後に、整数乗算処理が終了していない場合は、他の内部バスを通じて整数除算器70にデータを転送し、整数除算処理を並行して開始させる。さらに、この処理中に次の整数加算を指示する命令のデコード処理を行い、終了とともに他の内部バスを通じて、整数加算器67に動作を開始させる。
【0130】
このようなパイプラインでは、デコード処理における高速化が全体の処理速度の向上に大きく貢献することがわかる。これに対して、図13(B)に示す従来のパイプライン例では、多機能のデータ処理器が使用されているため、1回目の整数乗算処理中に次の命令のデコード処理が終了しても、整数乗算処理が終了するまでは、次の整数乗算処理を実行させることができない。従って、プロセッサ1では、同じ種類の処理が連続しない限り、内部バスの複数化により動作速度をさらに高速化することが可能となる。
【0131】
また、複数の内部バスを有する場合は、プロセッサ1に供給される命令として上述したVLIWを使用することが可能である。この場合、複数の命令を異なる内部バスを使用して並列処理することにより、高速な動作が可能である。
【0132】
ここで、複数の内部バスが設けられて、上記のような高効率のパイプライン処理が可能なプロセッサの具体例について説明する。
図14は、複数の内部バスが設けられた場合のプロセッサの内部構成例を示すブロック図である。なお、図14では、説明を簡単にするために、プロセッサの内部の一部のみ示し、演算器やデータ処理器、キャッシュ等の表示を省略している。また、図2で示したプロセッサと対応する構成要素には同じ符号を付して示しており、その説明は省略する。
【0133】
図14に示したプロセッサでは、例として、アドレスバス31aとデータバス32a、アドレスバス31bとデータバス32b、アドレスバス31cとデータバス32cの3組の内部バスが設けられており、各内部バスの組に対応してバスマスタ310、320および330が設けられている。各バスマスタ310、320および330にはデコーダ311、321および331が設けられており、各デコーダ311、321および331に対しては、命令取り出し器200からの命令が分配器9を介して供給される。
【0134】
命令取り出し器200は、図2の場合と同様に、プログラムカウンタ201、アドレス生成器202、命令発行器203および命令格納レジスタ204を具備している。これらの各部の機能は図2の対応する機能ブロックと同様であるが、プログラムカウンタ201および命令格納レジスタ204は、それぞれ3組の内部バスに接続されている。
【0135】
また、各バスマスタ310、320および330のデコーダ311、321および331は、分配器9からの命令を解析し、対応するアドレスバス31a、31bおよび31cに対してセレクト信号を出力して、図示しない演算器やデータ処理器のレジスタを選択する。これとともに、デコーダ311、321および331は、命令を受けてから、この命令の実行が完了するまでの間、分配器9に対してBusy信号を出力する。分配器9は、命令取り出し器200からの命令を受け取ると、Busy信号を出力していないバスマスタ310、320および330のいずれかに対して、命令を転送する。
【0136】
このような構成により、上述した高効率なパイプライン処理が可能となるだけでなく、例えば、ある演算に長時間を要して、特定のバスマスタがWait信号の受信により待機状態となった場合や、特定のバスマスタが実行回数付き命令の実行中の場合にも、他のバスマスタは動作することができ、処理効率がさらに高まる。また例えば、1つの内部バスを使用して、加算器の出力レジスタの値を同じ加算器の入力レジスタに転送し、別の1つの内部バスにおいて同じ加算器のもう一方の入力レジスタに値を入力することにより、積算処理を容易に行うことが可能となる。さらに、同種の演算器を複数設けることにより、同種の演算が連続しても動作速度をさらに高速にすることが可能となる。
【0137】
以上のように、本発明のプロセッサでは、デコーダに供給される命令中に実行命令を記述する必要がなく、命令が単純化されるので、デコード処理時間が大幅に短縮され、高速動作が可能となる。また、単一の処理機能を有するデータ処理器および演算器を内部バスに複数接続した構成により、内部バスの構成が単純化され、製造コストを抑制することができる。さらに、この内部バスを複数設けることによって、命令に対するデータ処理を並列に実行することが可能となり、処理が高速化される。
【0138】
なお、上記の実施の形態例では、デコーダと各データ処理器および演算器等とをアドレスバスおよびデータバスによってなる内部バスによって接続していたが、これ以外のデータ転送手段を用いた場合でも本発明を実現することが可能である。
【0139】
【発明の効果】
以上説明したように、本発明のプロセッサでは、転送制御手段によるデータ転送制御のみによって、各演算手段の動作が制御される。従って、転送制御手段に発行される命令は、データの転送先のレジスタを指定する情報と、転送元のレジスタを指定する情報または転送すべきデータとがオペランドで指定されていればよく、この命令に対するデコード処理に要する時間が短縮されて、動作を高速化することが可能となる。
【図面の簡単な説明】
【図1】本発明のプロセッサの構成例を示す機能ブロック図である。
【図2】命令取り出し器、バスマスタ、比較器、読み出し器および整数加算器の各内部構成を示すブロック図である。
【図3】書き出し器、メモリ転送器、スタック処理器、整数減算器、整数乗算器および整数除算器の各内部構成例を示すブロック図である。
【図4】論理積演算器、論理和演算器、排他的論理積演算器、排他的論理和演算器およびビット反転器の各内部構成例を示すブロック図である。
【図5】浮動小数加算器、浮動小数減算器、浮動小数乗算器および浮動小数除算器の各内部構成例を示すブロック図である。
【図6】データ交換器および積和演算器の各内部構成例を示すブロック図である。
【図7】デコーダ、読み出し器および整数加算器の間のシーケンス例を示す図である。
【図8】本発明のプロセッサに供給される命令のフォーマット例を示す図である。
【図9】デコーダにおける処理の流れを示すフローチャートである。
【図10】整数加算器における処理の流れを示すフローチャートである。
【図11】本発明のプロセッサを動作させるためのプログラムコード例を示す図である。
【図12】従来のプログラムコードの一例を示す図である。
【図13】内部バスが複数設けられた場合の処理のパイプラインの例を概念的に示す図である。
【図14】複数の内部バスが設けられた場合のプロセッサの内部構成例を示すブロック図である。
【図15】従来のプロセッサの構成例を示す機能ブロック図である。
【図16】従来のプロセッサにおける命令実行の流れを示すフローチャートである。
【図17】従来のプロセッサに読み込まれる命令のプログラムコード例を示す図である。
【符号の説明】
1……プロセッサ、2……命令取り出し器、3……バスマスタ、3a……デコーダ、4a……命令キャッシュ、4b……データキャッシュ、5……外部バスI/F、10……メモリ、21……プログラムカウンタ、22……アドレス生成器、23……命令発行器、24……命令格納レジスタ、31……アドレスバス、32……データバス、61……読み出し器、61a……アドレスレジスタ、61b……データレジスタ、62……書き出し器、63……メモリ転送器、64……スタック処理器、65……データ交換器、66……比較器、66a、66b……データレジスタ、66c……ステータスレジスタ、67……整数加算器、67a、67b……入力レジスタ、67c……出力レジスタ、68……整数減算器、69……整数乗算器、70……整数除算器、71……論理積演算器、72……論理和演算器、73……排他的論理積演算器、74……排他的論理和演算器、75……ビット反転演算器、76……浮動小数加算器、77……浮動小数減算器、78……浮動小数乗算器、79……浮動小数除算器、80……積和演算器、81……汎用レジスタ
Claims (19)
- 読み込んだ命令に従って動作するプロセッサにおいて、
1つ以上の演算データレジスタと、演算結果を格納する結果格納レジスタとをそれぞれ備え、すべての前記演算データレジスタにデータが入力されると、入力されたデータを用いて所定の演算処理を行い、その演算結果を前記結果格納レジスタに書き込む、それぞれ単一の演算機能を有する複数の演算手段と、
前記各演算手段が備える前記演算データレジスタおよび前記結果格納レジスタを含むレジスタを互いに接続し、接続されたレジスタ間でデータを転送するレジスタ間転送手段と、
データの転送先のレジスタを指定する転送先指定情報と、転送元のレジスタを指定する転送元指定情報とがオペランドにおいて記述された前記命令を読み込んでデコードすることにより、前記転送元指定情報により指定されたレジスタに格納されたデータを、前記転送先指定情報により指定されたレジスタに対して前記レジスタ間転送手段を通じて転送させる転送制御手段と、
を有し、
前記転送制御手段は、前記転送元指定情報の代わりに、転送すべきデータである転送データが前記オペランドにおいて記述された前記命令を読み込んだ場合には、当該命令をデコードすることにより、前記転送先指定情報により指定されたレジスタに対して前記転送データを前記レジスタ間転送手段を通じて転送させることを特徴とするプロセッサ。 - 前記各演算手段は、前記演算処理中において前記結果格納レジスタが前記転送制御手段によってデータの転送元アドレスとして指定された場合に、前記演算処理の結果を前記結果格納レジスタに格納するまでの間、前記結果格納レジスタからの読み出し動作を待機させるための読み出し待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項1記載のプロセッサ。
- 前記各演算手段は、前記演算処理中において少なくとも1つ以上の前記演算データレジスタが前記転送制御手段によってデータの転送先アドレスとして指定された場合に、前記演算処理の結果を前記結果格納レジスタに格納するまでの間、指定された前記演算データレジスタに対する書き込み動作を待機させるための書き込み待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項1記載のプロセッサ。
- 外部のメモリから読み込んだデータ、および前記メモリへ書き出すデータを一時記憶するデータキャッシュをさらに有することを特徴とする請求項1記載のプロセッサ。
- 前記転送制御手段の制御により前記レジスタ間転送手段を通じてデータの入力および出力がそれぞれ行われる第1のアドレスレジスタおよび第1のデータレジスタを具備し、前記第1のアドレスレジスタにデータが入力されると、入力されたデータを読み出しアドレスとして、前記データキャッシュを通じて前記メモリからデータを読み出し、前記第1のデータレジスタに格納するデータ読み出し手段がさらに設けられることを特徴とする請求項4記載のプロセッサ。
- 前記データ読み出し手段は、前記メモリからのデータ読み出し処理中において前記第1のデータレジスタが前記転送制御手段によってデータの転送元アドレスとして指定された場合に、前記データ読み出し処理の結果を前記第1のデータレジスタに格納するまでの間、前記第1のデータレジスタからの読み出し動作を待機させるための読み出し待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項5記載のプロセッサ。
- 前記データ読み出し手段は、前記メモリからのデータ読み出し処理中において前記第1のアドレスレジスタが前記転送制御手段によってデータの転送先アドレスとして指定された場合に、前記データ読み出し処理の結果を前記第1のデータレジスタに格納するまでの間、前記第1のアドレスレジスタに対する書き込み動作を待機させるための書き込み待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項5記載のプロセッサ。
- 前記転送制御手段の制御により前記レジスタ間転送手段を通じてデータの入力がそれぞれ行われる第2のアドレスレジスタおよび第2のデータレジスタを具備し、前記第2のアドレスレジスタおよび前記第2のデータレジスタの双方にデータが入力されると、前記第2のアドレスレジスタに入力されたデータを前記メモリ上の転送先アドレスとして、前記第2のデータレジスタに入力されたデータを、前記データキャッシュを通じて前記メモリに転送するデータ転送手段が設けられることを特徴とする請求項4記載のプロセッサ。
- 前記データ転送手段は、前記メモリへのデータ転送処理中において前記第2のアドレスレジスタおよび前記第2のデータレジスタの少なくとも一方が前記転送制御手段によってデータの転送先アドレスとして指定された場合に、前記データ転送処理が完了するまでの間、指定された前記第2のアドレスレジスタおよび前記第2のデータレジスタに対する書き込み動作を待機させるための書き込み待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項8記載のプロセッサ。
- 前記転送制御手段の制御により前記レジスタ間転送手段を通じてそれぞれデータが入力される第3および第4のアドレスレジスタを具備し、前記第3および第4のアドレスレジスタの双方にデータが入力されると、入力されたデータをそれぞれ転送元アドレスおよび転送先アドレスとして、これらに応じて前記データキャッシュを通じ、前記メモリ上のデータ転送を行うメモリ転送手段が設けられることを特徴とする請求項4記載のプロセッサ。
- 前記メモリ転送手段は、前記メモリ上のデータ転送処理中において前記第3および第4のアドレスレジスタのうち少なくとも一方が前記転送制御手段によってデータの転送先アドレスとして指定された場合に、前記メモリ上のデータ転送処理が完了するまでの間、指定された前記第3および第4のアドレスレジスタに対する書き込み動作を待機させるための書き込み待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項10記載のプロセッサ。
- 前記転送制御手段の制御により前記レジスタ間転送手段を通じてそれぞれデータが入力される第3および第4のデータレジスタと、前記転送制御手段の制御により前記レジスタ間転送手段を通じてデータの出力が行われるステータスレジスタとを具備し、前記第3および第4のデータレジスタの双方にデータが入力されると、入力された各データの値を比較して、比較結果を前記ステータスレジスタに書き込むデータ比較手段が設けられることを特徴とする請求項1記載のプロセッサ。
- 前記データ比較手段は、データの比較処理中において前記ステータスレジスタが前記転送制御手段によってデータの転送元アドレスとして指定された場合に、前記比較処理の結果を前記ステータスレジスタに格納するまでの間、前記ステータスレジスタからの読み出し動作を待機させるための読み出し待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項12記載のプロセッサ。
- 前記データ比較手段は、データの比較処理中において前記第3および第4のデータレジスタの少なくとも一方が前記転送制御手段によってデータの転送元アドレスとして指定された場合に、前記比較処理の結果を前記ステータスレジスタに格納するまでの間、指定された前記第3および第4のデータレジスタに対する書き込み動作を待機させるための書き込み待機信号を前記レジスタ間転送手段上に送信することを特徴とする請求項12記載のプロセッサ。
- 前記レジスタ間転送手段は複数設けられることを特徴とする請求項1記載のプロセッサ。
- 前記転送制御手段は、1命令フォーマット中に複数の命令が記述されたVLIW( Very Long Instruction Word )を読み込み、前記複数のレジスタ間転送手段において前記複数の命令を並列に処理することを特徴とする請求項15記載のプロセッサ。
- 発行された前記命令を一時格納して前記転送制御手段に対して出力し、かつ前記レジスタ間転送手段に接続された命令格納レジスタをさらに有し、前記命令 格納レジスタは、出力した前記命令に応じて前記転送制御手段から前記レジスタ間転送手段を通じて転送されたデータによって、出力する前記命令の指定を受けることが可能であることを特徴とする請求項1記載のプロセッサ。
- 前記命令格納レジスタは、出力した前記命令に応じて前記転送制御手段から前記レジスタ間転送手段を通じて転送されたデータによって、出力する前記命令の書き込みを受けることが可能であることを特徴とする請求項17記載のプロセッサ。
- 前記命令はその実行回数を指定する情報をさらに含み、前記転送制御手段は、前記実行回数を指定する情報をデコードすると、指定された前記実行回数分だけ同じ前記命令を繰り返して実行させることを特徴とする請求項1記載のプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002216061A JP4264622B2 (ja) | 2001-12-19 | 2002-07-25 | プロセッサ |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001385471 | 2001-12-19 | ||
JP2001-385471 | 2001-12-19 | ||
JP2002216061A JP4264622B2 (ja) | 2001-12-19 | 2002-07-25 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003248670A JP2003248670A (ja) | 2003-09-05 |
JP4264622B2 true JP4264622B2 (ja) | 2009-05-20 |
Family
ID=28676850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002216061A Expired - Fee Related JP4264622B2 (ja) | 2001-12-19 | 2002-07-25 | プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4264622B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5544720B2 (ja) * | 2009-01-29 | 2014-07-09 | セイコーエプソン株式会社 | 情報処理装置、演算処理方法及び電子機器 |
WO2012160794A1 (ja) * | 2011-05-20 | 2012-11-29 | 日本電気株式会社 | 演算処理装置、演算処理方法 |
-
2002
- 2002-07-25 JP JP2002216061A patent/JP4264622B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003248670A (ja) | 2003-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7366881B2 (en) | Method and apparatus for staggering execution of an instruction | |
JP4098241B2 (ja) | プロセッサをコプロセッサに接続する方法及び装置 | |
US9021236B2 (en) | Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution | |
JP2001092662A (ja) | プロセッサコア及びこれを用いたプロセッサ | |
JP3175921B2 (ja) | プログラム設計方法、これに関連する方法、命令デコーダ及びプロセッサ | |
JP2001184211A (ja) | 処理システムにおいてスタックのポップおよびプッシュ動作を行なうための装置および方法 | |
JPH1165844A (ja) | パイプラインバイパス機能を有するデータ処理装置 | |
JPH1165839A (ja) | プロセッサの命令制御機構 | |
JP3479385B2 (ja) | 情報処理装置 | |
US7143268B2 (en) | Circuit and method for instruction compression and dispersal in wide-issue processors | |
JP4264622B2 (ja) | プロセッサ | |
KR100267092B1 (ko) | 멀티미디어신호프로세서의단일명령다중데이터처리 | |
JPH0683615A (ja) | 命令セットエミュレーションを行う計算機 | |
JP5372307B2 (ja) | データ処理装置およびその制御方法 | |
JP2000353092A (ja) | 情報処理装置及びそのレジスタファイル切替方法 | |
US6922773B2 (en) | System and method for encoding constant operands in a wide issue processor | |
US6807628B2 (en) | System and method for supporting precise exceptions in a data processor having a clustered architecture | |
JP4311087B2 (ja) | プロセッサおよび例外処理方法 | |
JP3729142B2 (ja) | 並列演算処理装置 | |
JPH0524537B2 (ja) | ||
JPH07295802A (ja) | プログラムカード及びこれを用いた計算機 | |
US20100174885A1 (en) | Reconfigurable processor and operating method of the same | |
JP2003122628A (ja) | デジタル信号処理装置、プログラム変換装置、及びデジタル信号処理装置を有する通信システム | |
JPH08263290A (ja) | データ処理装置 | |
JPH08106383A (ja) | 演算処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050606 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080610 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080811 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090120 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090202 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120227 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |