JP3814548B2 - Information processing control device - Google Patents

Information processing control device Download PDF

Info

Publication number
JP3814548B2
JP3814548B2 JP2002062366A JP2002062366A JP3814548B2 JP 3814548 B2 JP3814548 B2 JP 3814548B2 JP 2002062366 A JP2002062366 A JP 2002062366A JP 2002062366 A JP2002062366 A JP 2002062366A JP 3814548 B2 JP3814548 B2 JP 3814548B2
Authority
JP
Japan
Prior art keywords
instruction
information processing
instructions
processing control
control device
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
Application number
JP2002062366A
Other languages
Japanese (ja)
Other versions
JP2003263312A (en
Inventor
光典 法貴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2002062366A priority Critical patent/JP3814548B2/en
Publication of JP2003263312A publication Critical patent/JP2003263312A/en
Application granted granted Critical
Publication of JP3814548B2 publication Critical patent/JP3814548B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はプログラムをデコードしながらレジスタあるいはメモリに格納されたデータ間の演算を行うプロセッサ(情報処理制御装置)に関し、特に、プログラムのコードサイズを削減し、命令メモリの面積を削減することを支援するプロセッサに関するものである。
【0002】
【従来の技術】
図8に一般的な情報処理制御装置としてのプロセッサの構成を示す。プロセッサとは、370で示される、命令解読を行う命令解読装置と、372で示される、命令供給を制御する命令供給制御装置と、374で示される、命令を格納する命令メモリと、377で示されるデータを保持するレジスタ群と、379で示される、複数の演算器とを備える情報処理制御装置のことである。
【0003】
上記プロセッサでは命令375を命令解読装置370が解読し、解読した内容に基づき、命令解読装置370が、命令供給制御装置372を制御線371を用いて制御し、レジスタ群377を制御線376を用いて制御し、さらに、演算器379を制御線378を用いて制御する。
【0004】
演算器379は信号線380からレジスタ群377のデータを取り込んで演算し、レジスタ群377は演算器379から信号線381を介して出力データを取り込む。
また、上記命令供給制御装置372は制御線373を用いて命令メモリ374を制御する。命令解読装置370は命令メモリ374から出力される命令375を解読する。
【0005】
一般的に画像処理LSIや音声処理LSIに内蔵されているプロセッサでは演算性能をあげるために、複数の命令を同時実行できる命令と、同時実行できない一命令実行命令を実行する命令を備える構成になっているものが多い。
【0006】
図9に従来使用していた命令ビットフィールドの概要図を示す。101は複数命令を同時実行するための命令ビットフィールドを示し、102は同時実行でない一命令実行命令を実行するための命令ビットフィールドを示す。各命令ビットフィールドにおいて、103は命令ビットフィールドが同時実行の複数命令を含むか、同時実行でない一命令実行命令を含むかを示すビットである。104,105は命令ビットフィールド101における同時実行可能な複数命令を示す。106は命令ビットフィールド102における同時実行でない一命令実行命令を示す。
【0007】
さらに従来のプロセッサでは、これらの命令を実現するために、図8に示した命令供給制御装置372として、図11に示すような構成を有する命令供給制御装置を備えていた。図11は命令供給制御装置372の詳細な構成の一例を示すブロック図であり、150はプログラムカウンタを保持するラッチであり、該ラッチ150から出力されるプログラムカウンタを示す信号線151をインクリメント回路152でインクリメントすることにより、クロックサイクル毎に、プログラムカウンタを保持するラッチ150をインクリメントし、さらに、命令フェッチプログラムカウンタを示す信号線153もインクリメントする。従来のプロセッサでは命令供給制御装置372から出力される前記信号線153(373)により命令メモリ374から命令解読装置370への命令供給の制御を行っていた。
【0008】
また、従来技術として、例えば、特開平9−84004号公報に示されるように、同時実行でない一命令実行命令を二命令配置した命令ビットフィールドを持つようなプロセッサも存在する。図10にこのような命令ビットフィールドの概要図を示す。111は複数命令を同時実行するための命令ビットフィールドを示し、112は同時実行でない一命令実行命令を実行するための命令ビットフィールドを示し、113は同時実行でない一命令実行命令を圧縮して得られた、同時実行でない2つの一命令実行命令を含む命令ビットフィールドを示す。各命令ビットフィールドにおいて、114,115は2ビットの組み合わせで、命令ビットフィールドが同時実行可能な複数命令を含むか、同時実行でない単一の一命令実行命令を含むか、同時実行でない2つの命令を含むかを示すビットである。
また、116,117は同時実行可能な複数命令を示し、118,119,120は同時実行でない一命令実行命令を示す。
【0009】
命令ビットフィールドを以上のように定義して、複数命令を同時実行できる命令を備えることで、図9に示した命令を備える情報処理装置に比べて命令を圧縮処理することで同時実行できない一命令実行の命令を実行する場合の命令ビットフィールドの無駄を削減することができるが、このような構成では、単位命令ビットフィールドに2つの命令しか圧縮配置できないため、効果的な命令コードの削減を行うことができず、命令メモリの効果的な面積の低減を行うことができないという問題点があった。
【0010】
さらに、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置することにより、コードの削減を図ったとしても、図11に示すような構成の命令供給制御装置では、一命令実行命令を2つのパッケージに圧縮しているために、命令がダブルカウントされてしまい、命令メモリ上のアドレスと命令フェッチプログラムカウンタ153の値とがずれてしまうため、命令供給が正しく実現されないという問題点があった。
【0011】
さらに、図9に示したような従来の構成では、命令ビットフィールド上に同時実行でない複数の命令が配置されているわけではないので、常に命令メモリへアクセスする必要があり、メモリにおける消費電力が増大するという問題点があった。
【0012】
【発明が解決しようとする課題】
従来の情報処理制御装置は以上のように構成されており、同時実行でない一命令実行の命令を実行する場合は、命令メモリの面積が増大するという問題点や、常に命令メモリへアクセスする必要から、メモリにおける消費電力が増大する、という問題点があった。
【0013】
本発明は以上のような問題点を解消するためになされたもので、命令コードの削減、ひいては命令メモリの面積削減、及び命令メモリに対する正しい命令供給制御を行うことができる情報処理制御装置を提供することを目的とする。
また、メモリにおける消費電力の低減を実現することのできる情報処理制御装置を提供することを目的としている。
【0014】
【課題を解決するための手段】
本発明の請求項1記載の情報処理制御装置は、命令解読を行う命令解読手段と、命令供給を制御する命令供給制御手段と、データを保持するレジスタ群と、命令を格納する命令メモリと、上記命令解読手段によって解読された命令に従って、上記レジスタ群からデータを読み出し、このデータを使用して演算を実行する複数の演算回路とを有し、複数命令を同時に実行する命令と、同時実行でない一命令実行命令を実行する命令とを受け付ける情報処理制御装置において、上記命令供給制御手段が、単位命令ビットフィールド中の同時実行でない複数の一命令実行命令を配置していることを示すビット及び該一命令実行命令の総数を示すビットに基づいて、上記命令メモリから上記命令解読手段への上記単位命令の供給を制御するものである。
【0015】
また、本発明の請求項2にかかる情報処理制御装置は、請求項1記載の情報処理制御装置において、上記命令供給制御手段は上記命令メモリ上のアドレスを表す第1のカウンタを有しており、命令ビットフィールド上での命令の番号を表す第2のカウンタを有し、上記第1のカウンタによるアドレス指定を、上記同時実行できない一命令実行命令の配置されている総数を示すビットに応じて制御するプログラムカウンタ制御手段を備えたものである。
【0016】
また、本発明の請求項3にかかる情報処理制御装置は、請求項2記載の情報処理制御装置において、上記命令供給制御手段は、上記第1のカウンタと、クロックサイクル毎に該第1のカウンタの値を増加させた値を出力するインクリメント回路と、上記第1のカウンタが保持する値、または上記インクリメント回路の出力する値のいずれか一方を選択して出力するセレクタとを有して構成され、上記プログラムカウンタ制御手段は、上記同時実行できない一命令実行命令の配置されている総数を示すビットの値を、上記第1のカウンタの動作と同じタイミングで計数し、該計数が終了するまでの間、上記第1のカウンタの値が上記セレクタから選択されて出力されるよう、上記セレクタを制御する信号を出力するものである。
【0017】
また、本発明の請求項4にかかる情報処理制御装置は、請求項2記載の情報処理制御装置において、分岐命令発行時の命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値と、分岐命令解読後、実際に分岐先の命令が解読されるまでの間に存在する遅延スロットにおける命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値から、上記命令供給制御手段によるアドレスを制御し、分岐アドレスを動的に設定する分岐アドレス補正手段を備えたものである。
【0018】
また、本発明の請求項5にかかる情報処理制御装置は、請求項2記載の情報処理制御装置において、割り込み発生時に上記命令メモリ上のアドレスを表すプログラムカウンタ値と、単位命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避手段を備えたものである。
【0019】
また、本発明の請求項6にかかる情報処理制御装置は、請求項2記載の情報処理制御装置において、同時実行でない一命令実行命令をビット圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示す識別子を、上記命令のコードに備えたものである。
【0020】
また、本発明の請求項7にかかる情報処理制御装置は、請求項2記載の情報処理制御装置において、上記プログラムカウンタ制御手段は、上記命令解読手段により同時実行できない複数の一命令実行命令が検出されたときに、命令メモリへのアクセスを禁止する命令メモリ制御手段を備えたものである。
【0021】
また、本発明の請求項8にかかる情報処理制御装置は、請求項2記載の情報処理制御装置において、分岐命令解読時に、分岐先の命令が同時実行でない複数の一命令実行命令かどうかを示す情報と、上記命令ビットフィールド上での処理順を示す値を一時的に保持するデータ保持手段を備え、上記プログラムカウンタ制御装置は、分岐先で上記データ保持手段に保持された命令の実行順番号を読み出してそれぞれの命令に応じた処理を行うものである。
【0022】
【発明の実施の形態】
(実施の形態1)
以下、本発明の実施の形態1にかかる情報処理制御装置について図面を参照しながら説明する。図1は本実施の形態1による情報処理制御装置の命令ビットフィールドを示す概要図である。131は複数命令を同時実行するための命令ビットフィールドを示し、132は同時実行でない一命令実行命令を実行するための命令ビットフィールドを示し、133は同時実行でない複数の一命令実行命令を含む命令ビットフィールドを示す。さらに各命令ビットフィールドにおいて、134、135は命令ビットフィールドが同時実行可能な複数命令を含むか、同時実行でない一命令実行命令を含むか、同時実行でない複数の一命令実行命令を含むかを示すビットである。
【0023】
また、上記命令ビットフィールド131において136、137は、同時実行可能な複数命令を示す。上記命令ビットフィールド132において138は、同時実行でない一命令実行命令を示す。さらに、上記命令ビットフィールド133において、139は命令ビットフィールドに含まれている同時実行でない複数の一命令実行命令の総数を示し、140、141、142は同時実行でない複数の一命令実行命令を示す。
【0024】
図2(a)は本発明の実施の形態1にかかる情報処理制御装置の構成を示すブロック図である。図において、図8と同一符号は同一、または相当部分を示し、290は命令解読装置370の解読結果に応じて命令供給制御装置400の動作を制御する命令供給制御コマンド291を出力するプログラムカウンタ(PC)制御装置である。その他の構成については、図8と同等である。
【0025】
図2(b)は上記情報処理制御装置を構成する命令供給制御装置400、及びプログラムカウンタ制御装置290の詳細な構成を示すブロック図である。図において、160は命令メモリ上のアドレスを表すプログラムカウンタを示し、170は同時実行でない複数の一命令実行命令が実行されているか否かを表すビットを示すラッチ、171は現在、命令ビットフィールド上での命令の番号を表すラッチカウンタである。177は命令解読装置370から送られてくる信号線であり、今解読している命令が同時実行でない一命令実行命令かどうかを示す信号である。178は命令解読装置370から送られてくる信号線であり、今解読している命令が、同時実行でない一命令実行命令の含まれる総数を示す。これら信号線177、178の信号は、今実行されている命令が同時実行でない複数の一命令実行命令であり、しかも、命令ビットフィールド上で最初に実行される命令である場合のみ、ラッチ170とカウンタ171に初期値として設定される。
【0026】
カウンタ値を保持するラッチカウンタ171から出力されるカウンタ値を示す信号線172を、デクリメント回路173でデクリメントすることにより、クロックサイクル毎にラッチを保持するラッチカウンタ171をデクリメントし、さらにラッチカウンタ171に入力される信号線174もデクリメントする。
【0027】
176は命令供給制御装置400を制御する制御回路であり、ラッチ170からの出力信号180とラッチカウンタ171からの出力信号179とから、命令供給制御装置400の動作を制御するための制御線信号175(291)を生成する。プログラムカウンタ値を保持するラッチ(プログラムカウンタ)160から出力されるプログラムカウンタ値を示す信号線161は、インクリメント回路162でインクリメントされ、クロックサイクル毎にプログラムカウンタ160をインクリメントするか、以前の値をそのまま保持するかが、制御する制御線175の信号がセレクタ164を制御することにより決まるように構成されている。
【0028】
例えば、信号線177に同時実行できない複数の一命令実行命令が入力されたことを意味する値が入力され、かつ、信号線178に同時実効できない一命令実行命令の総数「3」が入力された場合、このとき命令供給制御装置400のセレクタ164には、該セレクタ164がプログラムカウンタ160の値を保持するよう制御する信号が制御信号175を介して供給され、デクリメント回路173によってラッチカウンタ171の値が「0」となるまでの期間その状態を継続する。プログラムカウンタ160とラッチカウンタ171、およびデクリメント回路173は同一のクロックにて動作しているため、3クロック分の期間はプログラムカウンタ160の値は同じ値が保持されて出力されることになる。
また、命令フェッチプログラムカウンタを示す信号線163も同様に制御線175の信号によってその値が決まるようになる。
【0029】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図12を参照しつつ説明する。
まず、処理が開始されると、ステップS1200において、命令解読装置370にて命令が解読され、解読した命令が同時実行できない複数の一命令実行命令が含まれているか否かを判定する。
【0030】
上記ステップS1200において、解読した命令が同時実行できない複数の一命令実行命令が含まれていないと判定された場合、ステップS1202に進んで、命令供給制御装置400はプログラムカウンタの値を1つ増加させた値を出力する。
【0031】
一方、上記ステップS1200において、解読した命令が同時実行できない複数の一命令実行命令が含まれていると判定された場合には、ステップS1201に進んで、プログラムカウンタ制御装置290を構成するラッチカウンタ171の値が0であるか否かを調べ、この値が0となるまで処理を繰り返す。この結果、ラッチカウンタ171の値が0となるまでのクロック期間、命令供給制御装置400からは同じ値(命令フェッチ)が出力されることになる。
【0032】
そして、上記ステップS1201において、ラッチカウンタ171の値が0となったことが判定されると、ステップS1202に進んで、命令供給制御装置400から、プログラムカウンタ160の値が1つ増加させた値が出力される。
【0033】
このように本実施の形態1によれば、単位命令ビットフィールドに同時実行不可能な複数の一命令実行命令を配置するとともに、同時実行不可能な複数の一命令実行命令140〜142の総数を示すビット139を設け、命令解読装置370においてビット139を検出してプログラムカウンタ制御装置290によって命令供給制御装置400のカウント値を制御するようにしたので、命令メモリ374上のアドレスと命令フェッチプログラムカウンタ163との値が一致するようになり、同時実行できない一命令実行命令をより多くに圧縮して命令コードを削減できるとともに、命令供給を正しく実行して回路の正常動作を実現することができる。
【0034】
(実施の形態2)
次の本発明の実施の形態2にかかる情報処理制御装置について説明する。図3(a)は本実施の形態2にかかる情報処理制御装置の構成を示すブロック図であり、図2と同一符号は同一、または相当部分を示し、図において、401は分岐アドレス補正装置であり、プログラムカウンタ制御装置290の出力信号、及び命令解読装置370の出力信号(オフセット値)402を受けて、命令供給制御装置400aに補正分岐アドレス203を出力する。
【0035】
また、図3(b)は上記情報処理制御装置を構成する命令供給制御装置400aの詳細な構成を示すブロック図である。上記分岐アドレス補正回路401は、加算器200,分岐アドレス制御回路202,分岐アドレス制御回路コントロール回路218とを主な要素として構成されている。
【0036】
命令ビットフォーマット中に同時実行でない複数の一命令実行命令を含む構成にすると分岐命令に起因する遅延スロット(分岐命令が解読されて実際に分岐処理が行われるまでの期間に続けて入力された命令)にあたる命令が含まれるような場合、命令アセンブラが分岐先を正しく計算するにはアセンブラが複雑になり、分岐を実現できない可能性もある。
【0037】
上記分岐アドレス制御回路202は、分岐命令の状態と分岐における遅延スロットの命令の状態、すなわち、圧縮の有無やアドレス情報から、分岐先アドレスを動的に制御する分岐アドレス制御回路であり、この回路により正確に分岐を実現することが可能となる。
【0038】
また、分岐アドレス制御回路コントロール回路218において、210は分岐命令が同時実行でない一命令実行命令かどうかを示すラッチであり、211は分岐命令が同時実行でない一命令実行命令において命令ビットフォーマット上での何番目に処理される命令かを示すラッチである。214は分岐の遅延命令が同時実行でない一命令実行命令かどうかを示すラッチであり、215は分岐の遅延命令が同時実行でない一命令実行命令において命令ビットフォーマット上での何番目に処理される命令かを示すラッチである。
【0039】
212、213、216、217は上記ラッチ210、211、214、215から出力される信号であり、制御回路218aに入力される。制御回路218aは分岐命令の状態と分岐の遅延命令の状態とから、制御線信号220を生成し、該信号220によって分岐アドレス制御回路202を制御するように構成されている。203は分岐アドレス制御回路202から生成された分岐アドレスを示す信号線である。またラッチ160から出力されるプログラムカウンタの値を示す信号線161は、インクリメント回路162でインクリメントされ、クロックサイクル毎にプログラムカウンタ160をインクリメントするか、以前の値をそのまま保持するか、もしくは、分岐先アドレスを取り込むかが、セレクタ230、164の動作状態によって決まるように構成されている。165はプログラムカウンタを保持するラッチ160への入力信号である。上記インクリメント回路162からの出力信号163は加算器200でオフセット402と加算され、加算された出力信号201は分岐アドレス制御回路202に入力される。また、命令フェッチプログラムカウンタ値231は、分岐アドレスを表す信号線203と、インクリメント回路162の出力信号線163とをセレクタ230で切り替えることにより決まる。
【0040】
さらに命令供給制御装置400aにおいては、インクリメント回路162の出力と、分岐アドレス補正装置401の出力とのいずれか一方を選択して出力するセレクタ230が付加された点が、図2で示した命令供給制御装置400と異なる。また、セレクタ230は、命令解読装置370の出力信号371aによって制御され、その出力端には、セレクタ164の入力が接続されている。
【0041】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図13を参照しつつ説明する。
処理がスタートすると、ステップS1300において、命令解読装置370において分岐があるか否かが判定され、分岐がない場合にはステップS1200に進み、図12で説明したフロー処理を行う。
【0042】
一方、上記ステップS1300において、分岐があると判定された場合にはステップS1301に進んで、分岐アドレス補正装置401を構成する分岐アドレス制御回路コントロール回路218の出力に基づき、制御回路218aによって、分岐命令と分岐の遅延命令の関係から、分岐先アドレスの補正の必要の有無が判定され、補正の必要がない場合には、ステップS1302に進んで、分岐アドレス制御回路202は、プログラムカウンタの値にオフセット値を加算した値を出力し、セレクタ230によってこの分岐アドレス203が選択されて、最終的に命令フェッチとして出力される。
【0043】
一方、上記ステップS1301において、分岐先アドレスの補正が必要であると判定された場合には、ステップS1303に進んで、分岐アドレス制御回路202は、プログラムカウンタの値にオフセット値を加算した値に、さらに分岐命令、及び遅延スロットに応じた補正値を加算して出力し、セレクタ230によってこの分岐アドレス203が選択されて命令フェッチとして出力される。
【0044】
このように本実施の形態2にかかる情報処理制御装置によれば、分岐アドレス補正装置401を設け、分岐命令と遅延スロットとの関係から、分岐先アドレスを補正するようにしたので、命令メモリ374上のアドレスと命令フェッチプログラムカウンタ231の値とが一致するようになり、分岐命令が含まれている場合においても、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減できるとともに、命令供給を正しく実行して回路の正常動作を実現することができる。
【0045】
(実施の形態3)
次に本発明の実施の形態3にかかる情報処理制御装置について説明する。図4(a)は本実施の形態3にかかる情報処理制御装置の構成を示すブロック図であり、図において、図3と同一符号は同一、または相当部分を示し、403は、割り込み発生時に、命令メモリ374上のアドレスを表すプログラムカウンタ値と、命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避装置である。
【0046】
また、図4(b)は、上記情報処理制御装置を構成する命令供給制御装置400b、及びプログラムカウンタ制御装置290の詳細な構成を示すブロック図である。図において、割り込み発生時にはプログラムカウンタ160の値をラッチ280に退避させ、さらに、同時実行でない一命令実行命令かどうかを示すラッチ170の値をラッチ281に退避させ、命令ビットフィールド上の命令番号を表すカウンタ251をラッチ282に退避させるように構成されている。
【0047】
さらに、割り込みからの復元時には、割り込み時に退避したラッチ280の値をプログラムカウンタ160の値のメモリ上のアドレスとして設定し、また、ラッチ281の値を、分岐命令が同時実行でない一命令実行命令かどうかを示すラッチ170に設定し、さらに、ラッチ282の値を命令ビットフィールド上の命令番号を表すカウンタ251に設定する。以上のような構成によって、割り込み時および割り込みから復元時に前記設定を行うことで、命令メモリ374上のアドレスと命令フェッチプログラムカウンタ231の値とを一致させて、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減する場合に、命令供給を正しく実行して回路の正常動作を実現することができる。
【0048】
また、ラッチ160から出力されるプログラムカウンタを示す信号線161はインクリメント回路162でインクリメントされ、プログラムカウンタ160がクロックサイクル毎にプログラムカウンタ160をインクリメントした値を取り込むか、以前の値をそのまま取り込むか、割り込み発生時における割り込みコントローラ404から供給される分岐アドレス270(データ線A)を取り込むか、割り込みからの復元のために、ラッチ280で退避されている値を取り込むかは、セレクタ230a、セレクタ164を用いて選択されるように構成されている。
【0049】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図14を参照しつつ説明する。
まず、処理が開始されると、ステップS1400において、割り込みコントローラにより割り込みが検出されなかった場合には、ステップS1200に進み、図12で示した手順と同じ手順で処理が行われる。
【0050】
一方、割り込みコントローラにより割り込みが検出された場合には、ステップS1401に進み、割り込みコントローラ404は制御線Bの信号により、資源退避装置403に対して、データ線Bで示される、命令供給制御装置400bを構成するプログラムカウンタ160の値をラッチ280に退避させる指示と、データ線Dで示される、ラッチ281,282にそれぞれラッチ170の値とカウンタ251の値を退避させるべき指示を出す。
【0051】
次いで、ステップS1402において、割り込みルーチンが実行されると、続いてステップS1403において、命令解読装置370は、ステップS1401において、制御線Cで示される信号によって資源退避装置403に対して、ラッチ280〜282に退避させた値をそれぞれ、プログラムカウンタ160,ラッチ170,カウンタ251にデータ線C,Eによって復元するように指示が行われる。
【0052】
このように本実施の形態3によれば、資源退避装置403を設け、割り込みコントローラ404により割り込みが検出された場合には、命令メモリ374上のアドレスを表すプログラムカウンタ値と、命令ビットフィールド上での命令の番号を表すカウンタ値とを資源退避装置403に退避させ、割り込み処理終了後に資源退避装置403に退避させた値をそれぞれ元に戻すようにしたから、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減する場合に、割り込み処理が発生しても処理復帰を確実に行うことができる。
【0053】
(実施の形態4)
次に本発明の実施の形態4にかかる情報処理制御装置について説明する。図5は本実施の形態4にかかる情報処理制御装置において、同時実行でない一命令実行命令を圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示すdirectiveを持つ命令アセンブラを備える場合のデータの様子を示す。
【0054】
図において、300、301は圧縮させないことを指定するdirectiveを示す。命令コード内にdirective300、301で囲まれたコードを命令アセンブラが検出すると、命令アセンブラはその間の命令に対してビット圧縮を行わない。即ち、命令コードを作成する際に、directiveで囲われた部分を作ることで、その間、命令ビットフィールド上に同時実行でない複数の一命令実行命令が存在しないという設定ができる。
このように本実施の形態4によれば、圧縮に不向きな命令に対してdirectiveにてコードを囲むようにしたので、圧縮に不向きなコマンドを保護することができる。
【0055】
(実施の形態5)
次に本発明の実施の形態5にかかる情報処理制御装置について説明する。命令ビットフィールド上に同時実行でない複数の一命令実行命令を含む命令を実行している場合、実際には、命令メモリへのアクセスを一度行うことにより、複数の命令を取り込むことができ、このような場合には命令を実行するたびに命令メモリへアクセスすることは事実上不要である。本実施の形態5では、かかる場合のメモリへの不要なアクセスを低減して消費電力の低減を図ったものである。
【0056】
すなわち、図6(a)は本実施の形態5にかかる情報処理制御装置の構成を示すブロック図であり、図2と同一符号は同一、または相当部分を示し、176制御回路は、ラッチ170の出力信号180と、カウンタ171の出力信号179から、命令メモリ374へのアクセスを止める制御信号(制御線)340と、バッファ346へのデータの取り込みを止める制御信号341とを生成する。
【0057】
342はアクセス判定回路であり、命令メモリ374へのアクセスを止める制御信号340を受け取ると、命令メモリ374への制御線343を用いて、命令メモリ374へのアクセスを止める。345は命令メモリ374からの出力データを表す。
【0058】
また、バッファ346は、データの取り込みを止める制御信号341を受け取ると命令メモリ374からのデータの取り込みを止める。これにより、命令ビットフィールド上に同時実行でない複数の一命令実行命令を含む命令を一旦取り込むと、同時実行でない複数の一命令実行命令が命令解読装置370で全て解読されるまで、バッファ346からの出力データ347は保持され、命令解読が正しく行われることになる。
【0059】
次に以上のような構成を有する情報処理制御装置の命令処理動作について図15を参照しつつ説明する。
まず、処理が開始されると、ステップS1500においは通常メモリ374へのアクセスが許可されている状態となっており、プログラムカウンタ制御装置290は、メモリアクセス判定装置342にアクセスを可能にすることを示す制御信号340を送って、メモリ374へのアクセスを許可し、また、バッファ346に対してデータの取り込みを許可することを示す制御信号341を送信することで、メモリ374からのデータの取り込みを許可して通常の処理を行い、処理が終了すると、ステップS1501に進む。
【0060】
次いで、ステップS1501において命令解読装置370は、同時実行できない複数の一命令実行命令を含んでいるか否かを判定し、同時実行不可能な複数の一命令実行命令が含まれていない場合、ステップS1504に進んでプログラムカウンタ160の値を1つ増加させる。一方、ステップS1501において、命令解読装置370は、同時実行できない複数の一命令実行命令を含んでいるか否かを判定し、同時実行不可能な複数の一命令実行命令が含まれていると判定された場合には、ステップS1502に進んで、プログラムカウンタ制御装置290は、メモリアクセス判定装置342にアクセスを可能にしないことを示す制御信号340を送って、メモリ374へのアクセスを禁止し、また、バッファ346に対してデータの取り込みを許可しないことを示す制御信号341を送信することで、メモリ374からのデータの取り込みを禁止する。
【0061】
そしてステップS1503に進んで、プログラムカウンタ制御装置290を構成するカウンタ171の値が0となるまで、ステップS1502の状態を維持する。
そして、ステップS1503において、カウンタの値が0となったことが判定されると、ステップS1504に進んで、プログラムカウンタ160の値を1つ増加させる。
【0062】
このように本実施の形態5によれば、プログラムカウンタ制御装置290において、同時実行できない複数の一命令実行命令が検出された場合に、メモリアクセス判定手段342に対してメモリ374へのアクセスを禁止する制御信号340を、及びバッファ346に対して、メモリ374からのデータの取り込みを禁止する制御信号341を出力するようにしたから、すでに読み出されたデータに対する無駄なアクセスを低減でき、ひいてはメモリの消費電力を削減することができる。
【0063】
(実施の形態6)
次に本発明の実施の形態6にかかる情報処理制御装置について説明する。図7は、実施の形態6にかかる情報処理制御装置の構成を示すブロック図であり、図において、図2と同一符号は同一、または相当部分を示し、500は命令解読装置370で分岐命令が解読された場合、分岐先の命令が同時実行でない、複数の一命令実行命令かどうかという情報と、命令ビットフィールド上での処理順を示す値を一時的に保持するラッチである。
【0064】
以下、動作について説明する。
以上のような構成を有する実施の形態6の情報処理制御装置では、命令ビットフィールドとして、分岐命令の中に、分岐先のオフセットと、分岐先が命令ビットフィールド上で同時実行でない複数の一命令実行命令を含む命令に分岐するかどうかという情報と、前記命令において分岐先における命令のビットフィールド上で何番目に実行されるかという情報と、を含むことで、分岐後において、どの命令を順番に実行するかということを任意に決定することができる。
【0065】
すなわち、命令解読装置370に、分岐命令が入ってきた場合、前記情報から命令供給制御回路400(図2参照)に対し、分岐先に分岐した時点で、ラッチ500からの値(ラッチカウンタ値)を設定して命令供給を正しく制御する。
【0066】
さらに、分岐命令発行時に分岐先が命令ビットフィールド上で同時実行でない複数の一命令実行命令を含む命令に分岐するかどうかという情報と、前記命令において分岐先における命令メモリの何番目に実行されるかという情報とを、ラッチ500に退避させておいた上で、分岐命令を実行する。次いで、命令解読装置370にて分岐先の命令を解読する際に、プログラムカウンタ制御装置290は上記ラッチ500より情報を読み出して、複数の一命令実行命令を含むかどうかを示す信号と、命令ビットフィールド上での処理順番を示す値を、それぞれラッチ170,カウンタ171に設定する。
これらのことを行うことにより、同時実行できない複数の一命令実行命令のうちのいずれの命令にも任意に分岐することが可能となる。
【0067】
このように本実施の形態6によれば、同時実行できない複数の一命令実行命令がある場合に、複数の一命令実行命令を含むかどうかを示す信号と、命令ビットフィールド上での処理順番を示す値とをラッチ500に記憶させておき、分岐先でその順番に従った処理を行われるように、該命令の順番を、プログラムカウンタ制御装置290によって上記ラッチ500より読み出すようにしたので、命令の処理の、分岐の自由度の向上を図ることができる。
【0068】
なお、上記各実施の形態では、単位命令ビットフィールドに3つの命令を配置したものを例として示したが、単位命令ビットフィールドに配置される複数の命令の数は、これに限られるものではないことは言うまでもない。
【0069】
【発明の効果】
以上のように、本発明の請求項1にかかる情報処理制御装置によれば、命令解読を行う命令解読手段と、命令供給を制御する命令供給制御手段と、データを保持するレジスタ群と、命令を格納する命令メモリと、上記命令解読手段によって解読された命令に従って、上記レジスタ群からデータを読み出し、このデータを使用して演算を実行する複数の演算回路とを有し、複数命令を同時に実行する命令と、同時実行でない一命令実行命令を実行する命令とを受け付ける情報処理制御装置において、上記命令供給制御手段が、単位命令ビットフィールド中の同時実行でない複数の一命令実行命令を配置していることを示すビット及び該一命令実行命令の総数を示すビットに基づいて、上記命令メモリから上記命令解読手段への上記単位命令の供給を制御する、ものとしたので、より命令コードを圧縮することができ、ひいてはメモリ面積を削減することができるという効果がある。
【0070】
また、本発明の請求項2にかかる情報処理制御装置によれば、請求項1記載の情報処理制御装置において、上記命令供給制御手段は上記命令メモリ上のアドレスを表す第1のカウンタを有しており、命令ビットフィールド上での命令の番号を表す第2のカウンタを有し、上記第1のカウンタによるアドレス指定を、上記同時実行できない一命令実行命令の配置されている総数を示すビットに応じて制御するプログラムカウンタ制御手段を備えた、ものとしたので、複数の命令コードを圧縮しても、命令メモリ上でのアドレスと命令フェッチプログラムカウンタの値との同期をとることができるという効果が得られる。
【0071】
また、本発明の請求項3にかかる情報処理制御装置によれば、請求項2記載の情報処理制御装置において、上記命令供給制御手段は、上記第1のカウンタと、クロックサイクル毎に該第1のカウンタの値を増加させた値を出力するインクリメント回路と、上記第1のカウンタが保持する値、または、上記インクリメント回路の出力する値のいずれか一方を選択して出力するセレクタとを有して構成され、上記プログラムカウンタ制御手段は、上記同時実行できない一命令実行命令の配置されている総数を示すビットの値を、上記第1のカウンタの動作と同じタイミングで計数し、該計数が終了するまでの間、上記第1のカウンタの値が上記セレクタから選択されて出力されるよう、上記セレクタを制御する信号を出力するものとしたので、複数の命令コードを圧縮しても、命令メモリ上でのアドレスと命令フェッチプログラムカウンタの値との同期をとることができるという効果が得られる。
【0072】
また、本発明の請求項4にかかる情報処理制御装置によれば、請求項2記載の情報処理制御装置において、分岐命令発行時の命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値と、分岐命令解読後、実際に分岐先の命令が解読されるまでの間に存在する遅延スロットにおける命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値から、上記命令供給制御手段によるアドレスを制御し、分岐アドレスを動的に設定する分岐アドレス補正手段を備えたものとしたので、分岐命令が含まれている場合においても、同時実行できない一命令実行命令をより効率的に圧縮して命令コードを削減できるとともに、命令供給を正しく実行して回路の正常動作を実現することができるという効果が得られる。
【0073】
また、本発明の請求項5にかかる情報処理制御装置によれば、請求項2記載の情報処理制御装置において、割り込み発生時に上記命令メモリ上のアドレスを表すプログラムカウンタ値と、単位命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避手段を備えたものとしたので、割り込み処理が発生しても、処理復帰を確実に行うことができるという効果が得られる。
【0074】
また、本発明の請求項6にかかる情報処理制御装置によれば、請求項2記載の情報処理制御装置において、同時実行でない一命令実行命令をビット圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示す識別子を、上記命令のコードに備えたので、圧縮に不向きなコマンドを保護することができるという効果が得られる。
【0075】
また、本発明の請求項7にかかる情報処理制御装置によれば、請求項2記載の情報処理制御装置において、上記プログラムカウンタ制御手段は、上記命令解読手段により同時実行できない複数の一命令実行命令が検出されたときに、命令メモリへのアクセスを禁止する命令メモリ制御手段を備えたものとしたので、すでに読み出されたデータに対する無駄なアクセスを低減でき、ひいてはメモリの消費電力を削減することができるという効果が得られる。
【0076】
また、本発明の請求項8にかかる情報処理制御装置によれば、請求項2記載の情報処理制御装置において、分岐命令解読時に、分岐先の命令が同時実行でない複数の一命令実行命令かどうかを示す情報と、上記命令ビットフィールド上での処理順を示す値を一時的に保持するデータ保持手段を備え、上記プログラムカウンタ制御装置は、分岐先で上記データ保持手段に保持された命令の実行順番号を読み出してそれぞれの命令に応じた処理を行うようにしたので、圧縮された命令を任意の分岐先にて任意のタイミングで実行することが可能となり、処理の分岐の自由度の向上を図ることができるという効果が得られる。
【図面の簡単な説明】
【図1】本発明の情報処理制御装置であるプロセッサにおける命令ビットフィールドの概要を示す図である。
【図2】本発明の実施の形態1にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図3】本発明の実施の形態2にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図4】本発明の実施の形態3にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図5】本発明の実施の形態4にかかる情報処理制御装置であるプロセッサにおいて、directiveによる命令圧縮禁止指定を説明するためのデータフォーマットを示す図である。
【図6】本発明の実施の形態5にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する命令供給制御装置の詳細な構成を示す図である。
【図7】本発明の実施の形態6にかかる情報処理制御装置であるプロセッサの構成、及び情報処理制御装置を構成する情報処理制御装置の詳細な構成を示す図である。
【図8】一般的な従来の情報処理制御装置であるプロセッサの構成を示す図である。
【図9】従来のプロセッサにおける命令ビットフィールドの概要を示す図である。
【図10】従来の他のプロセッサにおける命令ビットフィールドの概要を示す図である。
【図11】従来のプロセッサを構成する命令供給制御装置の詳細な構成の一例を示す図である。
【図12】上記実施の形態1にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【図13】上記実施の形態2にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【図14】上記実施の形態3にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【図15】上記実施の形態5にかかる情報処理制御装置の動作を説明するためのフローを記載した図である。
【符号の説明】
131〜133 命令ビットフィールド
134,135 組み合わせで、命令ビットフィールドが同時実行可能な複数命令を含むか、同時実行でない一命令実行命令を含むか、同時実行でない複数の一命令実行命令を含むかを示すビット
136〜138 命令
139 命令ビットフィールドに含まれている同時実行でない複数の一命令実行命令の総数を示すビット
140〜142 命令(圧縮された)
160 プログラムカウンタを保持するラッチ
161 プログラムカウンタを示す信号線
162 インクリメント回路(+1)
163 命令フェッチプログラムカウンタを示す信号線
164 セレクタ
165 プログラムカウンタを保持するラッチへの入力を示す信号線
170 ラッチ
171 ラッチカウンタ
172 カウンタを示す信号線
173 デクリメント回路(-1)
174 カウンタを保持するラッチへの入力を示す信号線
175 制御線
176 制御回路(命令メモリ制御手段)
177,178 命令解読装置から入力される信号線
179 出力信号
180 ラッチ170から出力される信号線
181 プログラムカウンタ制御回路
200 加算器
201 加算器から出力される信号線
202 分岐アドレス制御回路
203 分岐アドレス制御回路から出力される信号線
210,211 ラッチ
212,213 ラッチから出力される信号線
214,215 ラッチ
216,217 ラッチから出力される信号線
218 分岐アドレス制御回路コントロール回路
218a 制御回路
220 制御線信号
230 セレクタ
231 命令フェッチプログラムカウンタを示す信号線
251 カウンタを保持するラッチ
270 割り込みでの分岐アドレス
280〜282 ラッチ
290 プログラムカウンタ(PC)制御装置
300,301 directive
340,341 制御線
342 メモリアクセス判定装置
343 制御線
345 データ線
346 バッファ
347 データ線
370 命令解読装置
374 命令メモリ
377 レジスタ群
379 演算器
400,400a,400b 命令供給制御装置
401 分岐アドレス補正装置
402 オフセット値
403 資源退避装置
404 割り込みコントローラ
500 ラッチ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a processor (information processing control device) that performs operations between data stored in a register or memory while decoding a program, and in particular, assists in reducing the code size of the program and reducing the area of the instruction memory. It is related to the processor which performs.
[0002]
[Prior art]
FIG. 8 shows a configuration of a processor as a general information processing control apparatus. The processor includes an instruction decoding device for decoding an instruction, indicated by 370, an instruction supply control device for controlling an instruction supply, indicated by 372, an instruction memory for storing instructions, indicated by 374, and indicated by 377. The information processing control device includes a register group that holds data to be stored and a plurality of arithmetic units indicated by 379.
[0003]
In the processor, the instruction decoding device 370 decodes the instruction 375, and based on the decoded contents, the instruction decoding device 370 controls the instruction supply control device 372 using the control line 371, and the register group 377 uses the control line 376. In addition, the arithmetic unit 379 is controlled using the control line 378.
[0004]
The arithmetic unit 379 takes in and operates the data of the register group 377 from the signal line 380, and the register group 377 takes in the output data from the arithmetic unit 379 through the signal line 381.
The command supply controller 372 controls the command memory 374 using the control line 373. The instruction decoding device 370 decodes the instruction 375 output from the instruction memory 374.
[0005]
In general, a processor built in an image processing LSI or a sound processing LSI is configured to include an instruction that can execute a plurality of instructions simultaneously and an instruction that executes a single instruction execution instruction that cannot be executed simultaneously in order to improve calculation performance. There are many things.
[0006]
FIG. 9 shows a schematic diagram of the instruction bit field conventionally used. Reference numeral 101 denotes an instruction bit field for executing a plurality of instructions simultaneously, and reference numeral 102 denotes an instruction bit field for executing one instruction execution instruction that is not executed simultaneously. In each instruction bit field, 103 is a bit indicating whether the instruction bit field includes a plurality of instructions that are executed simultaneously or one instruction execution instruction that is not executed simultaneously. Reference numerals 104 and 105 denote a plurality of instructions that can be executed simultaneously in the instruction bit field 101. Reference numeral 106 denotes an instruction execution instruction that is not simultaneously executed in the instruction bit field 102.
[0007]
Further, in order to realize these instructions, the conventional processor includes an instruction supply control device having a configuration as shown in FIG. 11 as the instruction supply control device 372 shown in FIG. FIG. 11 is a block diagram illustrating an example of a detailed configuration of the instruction supply control device 372. Reference numeral 150 denotes a latch that holds a program counter. A signal line 151 indicating the program counter output from the latch 150 is connected to an increment circuit 152. Is incremented at every clock cycle, and the signal line 153 indicating the instruction fetch program counter is also incremented. In the conventional processor, instruction supply from the instruction memory 374 to the instruction decoding device 370 is controlled by the signal line 153 (373) output from the instruction supply control device 372.
[0008]
Further, as a prior art, for example, there is a processor having an instruction bit field in which two instruction execution instructions that are not simultaneously executed are arranged as disclosed in JP-A-9-84004. FIG. 10 shows a schematic diagram of such an instruction bit field. 111 indicates an instruction bit field for executing a plurality of instructions at the same time, 112 indicates an instruction bit field for executing one instruction execution instruction that is not simultaneously executed, and 113 is obtained by compressing one instruction execution instruction that is not simultaneously executed. The instruction bit field including two one instruction execution instructions that are not simultaneously executed is shown. In each instruction bit field, 114 and 115 are combinations of 2 bits, and the instruction bit field includes a plurality of instructions that can be executed simultaneously, a single instruction execution instruction that is not executed simultaneously, or two instructions that are not executed simultaneously Is a bit indicating whether or not to include.
Reference numerals 116 and 117 denote a plurality of instructions that can be executed simultaneously, and reference numerals 118, 119, and 120 denote one instruction execution instructions that are not executed simultaneously.
[0009]
By defining the instruction bit field as described above and providing an instruction that can execute a plurality of instructions simultaneously, one instruction that cannot be executed simultaneously by compressing the instruction as compared with the information processing apparatus including the instruction shown in FIG. Although it is possible to reduce the waste of the instruction bit field when executing the instruction to be executed, in such a configuration, only two instructions can be compressed and arranged in the unit instruction bit field, so that an effective instruction code is reduced. There is a problem that the effective area of the instruction memory cannot be reduced.
[0010]
Furthermore, even if the code is reduced by arranging a plurality of instructions that are not simultaneously executed on the instruction bit field, the instruction supply control device configured as shown in FIG. Since it is compressed into two packages, the instruction is double-counted, and the address in the instruction memory and the value of the instruction fetch program counter 153 are misaligned. It was.
[0011]
Further, in the conventional configuration as shown in FIG. 9, since a plurality of instructions that are not simultaneously executed are not arranged on the instruction bit field, it is necessary to always access the instruction memory, and the power consumption in the memory is reduced. There was a problem of increasing.
[0012]
[Problems to be solved by the invention]
The conventional information processing control apparatus is configured as described above, and when executing a single instruction execution instruction that is not executed simultaneously, the problem is that the area of the instruction memory increases, and it is necessary to always access the instruction memory. There is a problem that power consumption in the memory increases.
[0013]
The present invention has been made to solve the above-described problems, and provides an information processing control apparatus capable of reducing instruction codes, and consequently reducing the area of the instruction memory, and performing correct instruction supply control to the instruction memory. The purpose is to do.
It is another object of the present invention to provide an information processing control apparatus that can reduce power consumption in a memory.
[0014]
[Means for Solving the Problems]
An information processing control apparatus according to claim 1 of the present invention includes an instruction decoding means for decoding an instruction, an instruction supply control means for controlling instruction supply, a register group for holding data, an instruction memory for storing instructions, According to the instruction decoded by the instruction decoding means, it has a plurality of arithmetic circuits that read data from the register group and execute an operation using this data, and do not execute simultaneously with an instruction that executes a plurality of instructions simultaneously In the information processing control device that accepts a command to execute a single command execution command, the command Supply control means Unit instruction bit field In Bit indicating that multiple instructions that are not executed simultaneously are placed as well as Bit indicating the total number of instructions executed by one instruction Based on the control, the supply of the unit instruction from the instruction memory to the instruction decoding means is controlled. To do.
[0015]
An information processing control apparatus according to claim 2 of the present invention is the information processing control apparatus according to claim 1, wherein the instruction supply control means has a first counter representing an address on the instruction memory. , Having a second counter representing an instruction number on the instruction bit field, and performing addressing by the first counter in accordance with a bit indicating the total number of one instruction execution instructions that cannot be executed simultaneously A program counter control means for controlling is provided.
[0016]
An information processing control apparatus according to claim 3 of the present invention is the information processing control apparatus according to claim 2, wherein the instruction supply control means includes the first counter and the first counter for each clock cycle. An increment circuit that outputs a value obtained by increasing the value of the first counter, and a selector that selects and outputs either the value held by the first counter or the value output by the increment circuit. The program counter control means counts the value of the bit indicating the total number of one instruction execution instructions that cannot be executed simultaneously at the same timing as the operation of the first counter, and until the counting is completed. During this period, a signal for controlling the selector is output so that the value of the first counter is selected from the selector and output.
[0017]
An information processing control apparatus according to claim 4 of the present invention is the information processing control apparatus according to claim 2, wherein a program counter value representing an address on the instruction memory at the time of issuing the branch instruction and an instruction bit field On the instruction bit field, the counter value representing the instruction number, the program counter value representing the address on the instruction memory in the delay slot that exists between the time when the branch instruction is decoded and the time when the branch destination instruction is actually decoded Branch address correction means for dynamically setting the branch address by controlling the address by the instruction supply control means based on the counter value representing the instruction number.
[0018]
An information processing control apparatus according to claim 5 of the present invention is the information processing control apparatus according to claim 2, wherein a program counter value representing an address on the instruction memory when an interrupt occurs and a unit instruction bit field Resource saving means for saving a counter value representing an instruction number is provided.
[0019]
An information processing control apparatus according to claim 6 of the present invention is the information processing control apparatus according to claim 2, wherein one instruction execution instruction that is not simultaneously executed is bit-compressed, and a plurality of non-simultaneous execution instructions are provided on the instruction bit field An identifier indicating whether or not an instruction execution instruction is arranged is provided in the code of the instruction.
[0020]
An information processing control apparatus according to claim 7 of the present invention is the information processing control apparatus according to claim 2, wherein the program counter control means detects a plurality of instruction execution instructions that cannot be executed simultaneously by the instruction decoding means. And an instruction memory control means for prohibiting access to the instruction memory.
[0021]
An information processing control apparatus according to claim 8 of the present invention is the information processing control apparatus according to claim 2, wherein when the branch instruction is decoded, it indicates whether the branch destination instruction is a plurality of one instruction execution instructions that are not simultaneously executed. Data holding means for temporarily holding information and a value indicating the processing order on the instruction bit field, and the program counter control device executes the execution order number of the instruction held in the data holding means at the branch destination Are read out and processing corresponding to each command is performed.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
(Embodiment 1)
The information processing control apparatus according to the first embodiment of the present invention will be described below with reference to the drawings. FIG. 1 is a schematic diagram showing an instruction bit field of the information processing control apparatus according to the first embodiment. 131 indicates an instruction bit field for simultaneously executing a plurality of instructions, 132 indicates an instruction bit field for executing one instruction execution instruction that is not simultaneously executed, 133 indicates an instruction including a plurality of one instruction execution instructions that are not simultaneously executed Indicates a bit field. Further, in each instruction bit field, 134 and 135 indicate whether the instruction bit field includes a plurality of instructions that can be executed simultaneously, one instruction execution instruction that is not executed simultaneously, or a plurality of instruction execution instructions that are not executed simultaneously. Is a bit.
[0023]
In the instruction bit field 131, 136 and 137 indicate a plurality of instructions that can be executed simultaneously. In the instruction bit field 132, 138 indicates one instruction execution instruction that is not simultaneously executed. Further, in the instruction bit field 133, 139 indicates the total number of instructions that are not simultaneously executed included in the instruction bit field, and 140, 141, and 142 indicate instructions that are not executed simultaneously. .
[0024]
FIG. 2A is a block diagram showing a configuration of the information processing control apparatus according to the first embodiment of the present invention. In the figure, the same reference numerals as those in FIG. 8 denote the same or corresponding parts, and reference numeral 290 denotes a program counter that outputs an instruction supply control command 291 for controlling the operation of the instruction supply control apparatus 400 according to the decoding result of the instruction decoding apparatus 370. PC) control device. Other configurations are the same as those in FIG.
[0025]
FIG. 2B is a block diagram showing a detailed configuration of the instruction supply control device 400 and the program counter control device 290 constituting the information processing control device. In the figure, 160 indicates a program counter indicating an address in the instruction memory, 170 indicates a latch indicating whether or not a plurality of instructions that are not simultaneously executed are executed, and 171 indicates an instruction bit field. This is a latch counter that represents the instruction number. Reference numeral 177 denotes a signal line sent from the instruction decoding device 370, which indicates whether or not the instruction being decoded is an instruction execution instruction that is not simultaneously executed. Reference numeral 178 denotes a signal line sent from the instruction decoding device 370, which indicates the total number of instructions that are being decoded and that are not simultaneously executed. These signals on the signal lines 177 and 178 are latched with the latch 170 only when the currently executed instruction is a plurality of one instruction execution instructions that are not simultaneously executed and is the first instruction to be executed on the instruction bit field. The counter 171 is set as an initial value.
[0026]
The signal line 172 indicating the counter value output from the latch counter 171 that holds the counter value is decremented by the decrement circuit 173, thereby decrementing the latch counter 171 that holds the latch every clock cycle. The input signal line 174 is also decremented.
[0027]
Reference numeral 176 denotes a control circuit for controlling the instruction supply controller 400, and a control line signal 175 for controlling the operation of the instruction supply controller 400 from the output signal 180 from the latch 170 and the output signal 179 from the latch counter 171. (291) is generated. The signal line 161 indicating the program counter value output from the latch (program counter) 160 that holds the program counter value is incremented by the increment circuit 162, and the program counter 160 is incremented every clock cycle, or the previous value is left as it is. Whether the signal is held is determined by controlling the selector 164 to control the signal on the control line 175 to be controlled.
[0028]
For example, a value indicating that a plurality of one instruction execution instructions that cannot be executed simultaneously is input to the signal line 177 and a total number “3” of one instruction execution instructions that cannot be executed simultaneously is input to the signal line 178. In this case, a signal for controlling the selector 164 to hold the value of the program counter 160 is supplied to the selector 164 of the instruction supply control device 400 via the control signal 175, and the value of the latch counter 171 is decremented by the decrement circuit 173. This state is continued for a period until “0” becomes “0”. Since the program counter 160, the latch counter 171 and the decrement circuit 173 operate with the same clock, the value of the program counter 160 is held and output during the period of three clocks.
Similarly, the value of the signal line 163 indicating the instruction fetch program counter is determined by the signal of the control line 175.
[0029]
Next, the command processing operation of the information processing control apparatus having the above configuration will be described with reference to FIG.
First, when processing is started, in step S1200, the instruction is decoded by the instruction decoding device 370, and it is determined whether or not a plurality of one instruction execution instructions that cannot be executed simultaneously are included.
[0030]
If it is determined in step S1200 that the decoded instruction does not include a plurality of instructions that cannot be executed simultaneously, the process proceeds to step S1202, and the instruction supply control device 400 increments the value of the program counter by one. Output the value.
[0031]
On the other hand, if it is determined in step S1200 that the decoded instruction includes a plurality of one instruction execution instructions that cannot be executed simultaneously, the process proceeds to step S1201 and the latch counter 171 constituting the program counter control device 290 is executed. It is checked whether or not the value of 0 is 0, and the process is repeated until this value becomes 0. As a result, the same value (instruction fetch) is output from the instruction supply control device 400 during the clock period until the value of the latch counter 171 becomes zero.
[0032]
If it is determined in step S1201 that the value of the latch counter 171 has become 0, the process proceeds to step S1202, and the instruction supply control device 400 determines that the value obtained by incrementing the value of the program counter 160 by one. Is output.
[0033]
As described above, according to the first embodiment, a plurality of one instruction execution instructions that cannot be executed simultaneously are arranged in the unit instruction bit field, and the total number of one instruction execution instructions 140 to 142 that cannot be executed simultaneously is calculated. Since the instruction decoding device 370 detects the bit 139 and controls the count value of the instruction supply control device 400 by the program counter control device 290, the address on the instruction memory 374 and the instruction fetch program counter are provided. Since the value of 163 coincides with that of one instruction execution instruction that cannot be executed at the same time, the instruction code can be reduced, and the instruction supply can be correctly executed to realize the normal operation of the circuit.
[0034]
(Embodiment 2)
The information processing control apparatus according to the second embodiment of the present invention will be described below. FIG. 3A is a block diagram showing the configuration of the information processing control apparatus according to the second embodiment. The same reference numerals as those in FIG. 2 denote the same or corresponding parts. In FIG. 3, 401 is a branch address correction apparatus. In response to the output signal of the program counter control device 290 and the output signal (offset value) 402 of the instruction decoding device 370, the corrected branch address 203 is output to the instruction supply control device 400a.
[0035]
FIG. 3B is a block diagram showing a detailed configuration of the command supply control device 400a constituting the information processing control device. The branch address correction circuit 401 includes an adder 200, a branch address control circuit 202, and a branch address control circuit control circuit 218 as main elements.
[0036]
When the instruction bit format includes a plurality of instructions that are not executed simultaneously, a delay slot caused by a branch instruction (an instruction input after the period from when the branch instruction is decoded until branch processing is actually performed) ), The assembler becomes complicated for the instruction assembler to correctly calculate the branch destination, and there is a possibility that the branch cannot be realized.
[0037]
The branch address control circuit 202 is a branch address control circuit that dynamically controls the branch destination address from the state of the branch instruction and the state of the instruction in the delay slot in the branch, that is, the presence or absence of compression and the address information. This makes it possible to realize branching accurately.
[0038]
In the branch address control circuit control circuit 218, 210 is a latch indicating whether or not the branch instruction is an instruction execution instruction that is not simultaneously executed, and 211 is an instruction bit format in one instruction execution instruction that is not a branch instruction. This is a latch indicating the order of the instruction to be processed. 214 is a latch indicating whether or not the branch delay instruction is a non-simultaneous execution instruction, and 215 is the instruction processed in the instruction bit format in the single instruction execution instruction where the branch delay instruction is not simultaneous execution. This is a latch indicating the above.
[0039]
212, 213, 216, and 217 are signals output from the latches 210, 211, 214, and 215, and are input to the control circuit 218a. The control circuit 218a is configured to generate a control line signal 220 from the branch instruction state and the branch delay instruction state, and to control the branch address control circuit 202 by the signal 220. Reference numeral 203 denotes a signal line indicating a branch address generated from the branch address control circuit 202. The signal line 161 indicating the value of the program counter output from the latch 160 is incremented by the increment circuit 162 and increments the program counter 160 every clock cycle, keeps the previous value as it is, or branches to Whether the address is taken in is determined by the operation state of the selectors 230 and 164. Reference numeral 165 denotes an input signal to the latch 160 that holds the program counter. The output signal 163 from the increment circuit 162 is added to the offset 402 by the adder 200, and the added output signal 201 is input to the branch address control circuit 202. The instruction fetch program counter value 231 is determined by switching the signal line 203 representing the branch address and the output signal line 163 of the increment circuit 162 with the selector 230.
[0040]
Further, in the instruction supply control device 400a, a selector 230 for selecting and outputting either the output of the increment circuit 162 or the output of the branch address correction device 401 is added. Different from the control device 400. The selector 230 is controlled by an output signal 371a of the instruction decoding device 370, and an input of the selector 164 is connected to an output terminal thereof.
[0041]
Next, the instruction processing operation of the information processing control apparatus having the above configuration will be described with reference to FIG.
When the process starts, it is determined in step S1300 whether or not there is a branch in the instruction decoding device 370. If there is no branch, the process proceeds to step S1200, and the flow process described in FIG. 12 is performed.
[0042]
On the other hand, if it is determined in step S1300 that there is a branch, the process proceeds to step S1301, and the control circuit 218a executes a branch instruction based on the output of the branch address control circuit control circuit 218 constituting the branch address correction device 401. From the relationship between the branch delay instruction and the branch delay instruction, it is determined whether or not the branch destination address needs to be corrected. If correction is not necessary, the process proceeds to step S1302, and the branch address control circuit 202 offsets the value of the program counter. A value obtained by adding the values is output, the branch address 203 is selected by the selector 230, and is finally output as an instruction fetch.
[0043]
On the other hand, if it is determined in step S1301 that the branch destination address needs to be corrected, the process proceeds to step S1303, where the branch address control circuit 202 adds the offset value to the value of the program counter. Further, a branch instruction and a correction value corresponding to the delay slot are added and outputted, and the branch address 203 is selected by the selector 230 and outputted as an instruction fetch.
[0044]
As described above, according to the information processing control apparatus according to the second embodiment, the branch address correction apparatus 401 is provided, and the branch destination address is corrected from the relationship between the branch instruction and the delay slot. The upper address matches the value of the instruction fetch program counter 231. Even when a branch instruction is included, one instruction execution instruction that cannot be executed simultaneously can be more efficiently compressed to reduce the instruction code. At the same time, the normal operation of the circuit can be realized by correctly executing the instruction supply.
[0045]
(Embodiment 3)
Next, an information processing control apparatus according to the third embodiment of the present invention will be described. FIG. 4A is a block diagram showing the configuration of the information processing control apparatus according to the third embodiment. In the figure, the same reference numerals as those in FIG. 3 denote the same or corresponding parts, and 403 indicates when an interrupt occurs. This is a resource saving device that saves a program counter value representing an address on the instruction memory 374 and a counter value representing an instruction number on the instruction bit field.
[0046]
FIG. 4B is a block diagram showing a detailed configuration of the instruction supply control device 400b and the program counter control device 290 constituting the information processing control device. In the figure, when an interrupt occurs, the value of the program counter 160 is saved in the latch 280, and further, the value of the latch 170 indicating whether the instruction is not executed simultaneously is saved in the latch 281, and the instruction number in the instruction bit field is changed. The counter 251 to be represented is configured to be retracted to the latch 282.
[0047]
Furthermore, when restoring from an interrupt, the value of the latch 280 saved at the time of the interrupt is set as an address on the memory of the value of the program counter 160, and the value of the latch 281 is set as one instruction execution instruction that is not executed simultaneously with the branch instruction. The latch 170 indicating whether or not is set, and the value of the latch 282 is set to the counter 251 indicating the instruction number on the instruction bit field. With the configuration as described above, by performing the above setting at the time of interrupt and at the time of restoration from an interrupt, the address on the instruction memory 374 and the value of the instruction fetch program counter 231 are made to coincide with each other, so When the instruction code is reduced by efficient compression, the instruction can be correctly supplied to realize normal operation of the circuit.
[0048]
The signal line 161 indicating the program counter output from the latch 160 is incremented by the increment circuit 162. Whether the program counter 160 takes in the incremented value of the program counter 160 every clock cycle, or takes in the previous value as it is, Whether the branch address 270 (data line A) supplied from the interrupt controller 404 when an interrupt occurs or whether the value saved in the latch 280 is used for restoration from the interrupt is determined by the selector 230a and the selector 164. It is comprised so that it may be selected using.
[0049]
Next, the command processing operation of the information processing control apparatus having the above configuration will be described with reference to FIG.
First, when the process is started, if no interrupt is detected by the interrupt controller in step S1400, the process proceeds to step S1200, and the process is performed in the same procedure as shown in FIG.
[0050]
On the other hand, if an interrupt is detected by the interrupt controller, the process proceeds to step S1401, and the interrupt controller 404 sends an instruction supply control device 400b indicated by the data line B to the resource saving device 403 by a signal on the control line B. And an instruction to save the value of the latch 170 and the value of the counter 251 to the latches 281 and 282 indicated by the data line D, respectively.
[0051]
Next, when an interrupt routine is executed in step S1402, then in step S1403, the instruction decoding device 370 latches 280 to 282 with respect to the resource saving device 403 by a signal indicated by the control line C in step S1401. The program counter 160, the latch 170, and the counter 251 are instructed to restore the values saved in the data lines C and E, respectively.
[0052]
As described above, according to the third embodiment, the resource saving device 403 is provided, and when an interrupt is detected by the interrupt controller 404, the program counter value indicating the address on the instruction memory 374 and the instruction bit field are displayed. The counter value indicating the instruction number of the instruction is saved in the resource saving device 403, and the value saved in the resource saving device 403 is restored to the original after completion of the interrupt processing. When the instruction code is reduced by efficient compression, the process can be reliably restored even if an interrupt process occurs.
[0053]
(Embodiment 4)
Next, an information processing control apparatus according to Embodiment 4 of the present invention will be described. FIG. 5 illustrates a directive indicating whether one instruction execution instruction that is not simultaneously executed is compressed and a plurality of instructions that are not simultaneously executed are arranged on the instruction bit field in the information processing control apparatus according to the fourth embodiment. The state of data when an instruction assembler is provided is shown.
[0054]
In the figure, reference numerals 300 and 301 denote directives that specify that compression is not performed. When the instruction assembler detects a code enclosed by the directives 300 and 301 in the instruction code, the instruction assembler does not perform bit compression on the instructions in between. That is, when creating an instruction code, by creating a portion surrounded by directives, it is possible to set that there is no plural instruction execution instructions that are not simultaneously executed on the instruction bit field.
As described above, according to the fourth embodiment, since a code is enclosed in a direct manner with respect to an instruction unsuitable for compression, a command unsuitable for compression can be protected.
[0055]
(Embodiment 5)
Next, an information processing control apparatus according to Embodiment 5 of the present invention will be described. When an instruction including multiple instruction execution instructions that are not simultaneously executed on the instruction bit field is being executed, in practice, multiple instructions can be fetched by accessing the instruction memory once. In such a case, it is virtually unnecessary to access the instruction memory every time an instruction is executed. In the fifth embodiment, unnecessary access to the memory in such a case is reduced to reduce power consumption.
[0056]
6A is a block diagram illustrating the configuration of the information processing control apparatus according to the fifth embodiment. The same reference numerals as those in FIG. 2 denote the same or corresponding parts, and the 176 control circuit includes the latch 170. From the output signal 180 and the output signal 179 of the counter 171, a control signal (control line) 340 for stopping access to the instruction memory 374 and a control signal 341 for stopping data fetching into the buffer 346 are generated.
[0057]
Reference numeral 342 denotes an access determination circuit. When a control signal 340 for stopping access to the instruction memory 374 is received, the access to the instruction memory 374 is stopped using the control line 343 to the instruction memory 374. Reference numeral 345 represents output data from the instruction memory 374.
[0058]
Further, when the buffer 346 receives the control signal 341 for stopping the data capture, the buffer 346 stops the data capture from the instruction memory 374. Thus, once an instruction including a plurality of instruction execution instructions that are not simultaneously executed is fetched onto the instruction bit field, the instruction decoding device 370 reads all the instructions that are not simultaneously executed from the buffer 346 until all instructions are decoded. The output data 347 is retained, and the instruction is decoded correctly.
[0059]
Next, an instruction processing operation of the information processing control apparatus having the above configuration will be described with reference to FIG.
First, when the process is started, access to the normal memory 374 is permitted in step S1500, and the program counter control device 290 enables access to the memory access determination device 342. The control signal 340 is sent to permit access to the memory 374, and the control signal 341 is sent to the buffer 346 to indicate that data take-in is permitted to take in data from the memory 374. If normal processing is permitted, the process proceeds to step S1501.
[0060]
Next, in step S1501, the instruction decoding device 370 determines whether or not it includes a plurality of one instruction execution instructions that cannot be executed simultaneously. If a plurality of one instruction execution instructions that cannot be executed simultaneously are not included, step S1504 The program counter 160 is incremented by one. On the other hand, in step S1501, the instruction decoding device 370 determines whether or not it includes a plurality of one instruction execution instructions that cannot be executed simultaneously, and determines that a plurality of one instruction execution instructions that cannot be executed simultaneously are included. If it is determined that the access to the memory 374 is not permitted, the program counter control device 290 transmits a control signal 340 indicating that the memory access determination device 342 is not allowed to access to prohibit access to the memory 374. By sending a control signal 341 indicating that data fetching is not permitted to the buffer 346, data fetching from the memory 374 is prohibited.
[0061]
Then, the process proceeds to step S1503, and the state of step S1502 is maintained until the value of the counter 171 constituting the program counter control device 290 becomes zero.
If it is determined in step S1503 that the counter value has become 0, the process proceeds to step S1504, and the value of the program counter 160 is incremented by one.
[0062]
As described above, according to the fifth embodiment, the program counter control device 290 prohibits the memory access determination unit 342 from accessing the memory 374 when a plurality of instructions that cannot be executed simultaneously are detected. Since the control signal 340 and the buffer 346 are output to the control signal 341 for prohibiting the fetching of data from the memory 374, useless access to data that has already been read can be reduced. Power consumption can be reduced.
[0063]
(Embodiment 6)
Next, an information processing control apparatus according to Embodiment 6 of the present invention will be described. FIG. 7 is a block diagram showing the configuration of the information processing control apparatus according to the sixth embodiment. In the figure, the same reference numerals as those in FIG. 2 denote the same or corresponding parts, and 500 denotes a branch instruction in the instruction decoding apparatus 370. When decoded, it is a latch that temporarily holds information indicating whether or not the branch destination instruction is a plurality of one instruction execution instructions that are not simultaneously executed, and a value indicating the processing order on the instruction bit field.
[0064]
The operation will be described below.
In the information processing control apparatus according to the sixth embodiment having the above-described configuration, a branch destination offset and a branch instruction whose branch destination is not simultaneously executed on the instruction bit field are included in the branch instruction as the instruction bit field. By including information on whether or not to branch to an instruction including an execution instruction and information on what order is executed on the bit field of the instruction at the branch destination in the instruction, which instruction is in turn after branching It is possible to arbitrarily decide whether to execute.
[0065]
That is, when a branch instruction is input to the instruction decoding device 370, the value (latch counter value) from the latch 500 when the information branches to the branch destination from the information to the instruction supply control circuit 400 (see FIG. 2). To control the instruction supply correctly.
[0066]
Further, when the branch instruction is issued, information indicating whether or not the branch destination branches to an instruction including a plurality of one instruction execution instructions that are not simultaneously executed on the instruction bit field, and the number of instructions in the instruction memory at the branch destination in the instruction is executed. This information is saved in the latch 500, and the branch instruction is executed. Next, when the instruction decoding unit 370 decodes the branch destination instruction, the program counter control unit 290 reads information from the latch 500 and indicates whether or not it includes a plurality of one instruction execution instructions, and an instruction bit. Values indicating the processing order on the field are set in the latch 170 and the counter 171 respectively.
By doing these things, it is possible to arbitrarily branch to any one of a plurality of one instruction execution instructions that cannot be executed simultaneously.
[0067]
As described above, according to the sixth embodiment, when there are a plurality of one instruction execution instructions that cannot be executed simultaneously, the signal indicating whether or not a plurality of one instruction execution instructions are included and the processing order on the instruction bit field are set. The instruction value is stored in the latch 500 and the order of the instructions is read from the latch 500 by the program counter controller 290 so that the processing according to the order is performed at the branch destination. In this process, the degree of freedom in branching can be improved.
[0068]
In each of the above embodiments, the example in which three instructions are arranged in the unit instruction bit field is shown as an example. However, the number of instructions arranged in the unit instruction bit field is not limited to this. Needless to say.
[0069]
【The invention's effect】
As described above, according to the information processing control apparatus of the first aspect of the present invention, the instruction decoding means for decoding the instruction, the instruction supply control means for controlling the instruction supply, the register group for holding the data, the instruction And a plurality of arithmetic circuits for reading data from the register group and executing an operation using the data according to the instruction decoded by the instruction decoding means, and simultaneously executing a plurality of instructions In the information processing control device that receives an instruction to execute and an instruction to execute one instruction execution instruction that is not simultaneously executed, the above instruction Supply control means Unit instruction bit field In Bit indicating that multiple instructions that are not executed simultaneously are placed as well as Bit indicating the total number of instructions executed by one instruction Based on the control, the supply of the unit instruction from the instruction memory to the instruction decoding means is controlled. Therefore, there is an effect that the instruction code can be further compressed and consequently the memory area can be reduced.
[0070]
According to an information processing control device of a second aspect of the present invention, in the information processing control device according to the first aspect, the instruction supply control means has a first counter representing an address on the instruction memory. A second counter representing an instruction number on the instruction bit field, and the addressing by the first counter is a bit indicating the total number of one instruction execution instructions that cannot be executed simultaneously. Since it has a program counter control means for controlling it accordingly, the effect is that the address in the instruction memory and the value of the instruction fetch program counter can be synchronized even if a plurality of instruction codes are compressed. Is obtained.
[0071]
According to an information processing control device of a third aspect of the present invention, in the information processing control device according to the second aspect, the command supply control means includes the first counter and the first counter every clock cycle. An increment circuit that outputs a value obtained by increasing the counter value, and a selector that selects and outputs either the value held by the first counter or the value output by the increment circuit. The program counter control means counts the value of the bit indicating the total number of one instruction execution instructions that cannot be executed simultaneously at the same timing as the operation of the first counter, and the counting ends. In the meantime, a signal for controlling the selector is output so that the value of the first counter is selected and output from the selector. Be compressed code, there is an advantage that it is possible to synchronize the value of the address and instruction fetch program counter on instruction memory.
[0072]
According to the information processing control apparatus of claim 4 of the present invention, in the information processing control apparatus of claim 2, the program counter value indicating the address on the instruction memory when the branch instruction is issued, and the instruction bit field A counter value representing the instruction number in the program, a program counter value representing an address on the instruction memory in a delay slot existing after the branch instruction is decoded and before the branch destination instruction is actually decoded, and an instruction bit field Since branch address correction means for controlling the address by the instruction supply control means and dynamically setting the branch address from the counter value representing the instruction number above is included, a branch instruction is included. Even in this case, it is possible to more efficiently compress instructions that cannot be executed simultaneously and reduce the instruction code. There is an advantage that it is possible to realize normal operation of the circuit to properly perform.
[0073]
According to the information processing control apparatus of claim 5 of the present invention, in the information processing control apparatus of claim 2, the program counter value indicating the address on the instruction memory when an interrupt occurs, and the unit instruction bit field Since the resource saving means for saving the counter value indicating the instruction number at the time is provided, the process can be surely restored even if interrupt processing occurs.
[0074]
According to the information processing control device of claim 6 of the present invention, in the information processing control device according to claim 2, one instruction execution instruction that is not simultaneously executed is bit-compressed, and a plurality of instructions that are not simultaneously executed on the instruction bit field are compressed. Since an identifier indicating whether or not to execute one instruction execution instruction is provided in the code of the instruction, an effect that a command unsuitable for compression can be protected is obtained.
[0075]
According to an information processing control apparatus of claim 7 of the present invention, in the information processing control apparatus of claim 2, the program counter control means is a plurality of one instruction execution instructions that cannot be executed simultaneously by the instruction decoding means. When an error is detected, instruction memory control means for prohibiting access to the instruction memory is provided, so that useless access to data that has already been read can be reduced, thereby reducing memory power consumption. The effect of being able to be obtained.
[0076]
According to the information processing control apparatus of claim 8 of the present invention, in the information processing control apparatus of claim 2, whether or not the branch destination instruction is a plurality of one instruction execution instructions that are not simultaneously executed when the branch instruction is decoded. And a data holding means for temporarily holding a value indicating the processing order on the instruction bit field, and the program counter control device executes the instruction held in the data holding means at the branch destination. Since the sequence number is read and the processing according to each instruction is performed, it is possible to execute the compressed instruction at an arbitrary branch destination at an arbitrary timing, thereby improving the degree of freedom of processing branching. The effect that it can plan is acquired.
[Brief description of the drawings]
FIG. 1 is a diagram showing an outline of an instruction bit field in a processor which is an information processing control apparatus of the present invention.
FIG. 2 is a diagram illustrating a configuration of a processor that is an information processing control device according to a first embodiment of the present invention, and a detailed configuration of an instruction supply control device that configures the information processing control device.
FIG. 3 is a diagram illustrating a configuration of a processor that is an information processing control device according to a second embodiment of the present invention, and a detailed configuration of an instruction supply control device that configures the information processing control device.
FIG. 4 is a diagram illustrating a configuration of a processor that is an information processing control apparatus according to a third embodiment of the present invention, and a detailed configuration of an instruction supply control apparatus that configures the information processing control apparatus.
FIG. 5 is a diagram showing a data format for explaining instruction compression prohibition designation by direct in a processor which is an information processing control apparatus according to a fourth embodiment of the present invention;
FIG. 6 is a diagram illustrating a configuration of a processor that is an information processing control apparatus according to a fifth embodiment of the present invention, and a detailed configuration of an instruction supply control apparatus that configures the information processing control apparatus.
FIG. 7 is a diagram illustrating a configuration of a processor that is an information processing control apparatus according to a sixth embodiment of the present invention, and a detailed configuration of the information processing control apparatus that configures the information processing control apparatus.
FIG. 8 is a diagram illustrating a configuration of a processor which is a general conventional information processing control apparatus.
FIG. 9 is a diagram showing an outline of an instruction bit field in a conventional processor.
FIG. 10 is a diagram showing an outline of an instruction bit field in another conventional processor.
FIG. 11 is a diagram showing an example of a detailed configuration of an instruction supply control device constituting a conventional processor.
FIG. 12 is a diagram describing a flow for explaining the operation of the information processing control apparatus according to the first embodiment;
FIG. 13 is a diagram describing a flow for explaining the operation of the information processing control apparatus according to the second embodiment;
FIG. 14 is a diagram describing a flow for explaining the operation of the information processing control apparatus according to the third embodiment;
FIG. 15 is a diagram describing a flow for explaining the operation of the information processing control apparatus according to the fifth embodiment;
[Explanation of symbols]
131-133 Instruction bit field
134, 135 is a bit indicating whether the instruction bit field includes a plurality of instructions that can be executed simultaneously, one instruction execution instruction that is not executed simultaneously, or a plurality of one instruction execution instructions that are not executed simultaneously
136-138 instructions
139 A bit indicating the total number of instructions that are not simultaneously executed and are included in the instruction bit field.
140-142 instructions (compressed)
160 Latch holding program counter
161 Signal line indicating program counter
162 Increment circuit (+1)
163 Signal line indicating instruction fetch program counter
164 selector
165 Signal line indicating the input to the latch holding the program counter
170 Latch
171 Latch counter
172 Signal line indicating counter
173 Decrement circuit (-1)
174 Signal line indicating the input to the latch holding the counter
175 Control line
176 Control circuit (command memory control means)
177, 178 Signal line input from instruction decoding device
179 Output signal
180 Signal line output from latch 170
181 Program counter control circuit
200 adder
201 Signal line output from adder
202 Branch address control circuit
203 Signal line output from the branch address control circuit
210, 211 latch
212, 213 Signal line output from latch
214,215 Latch
216, 217 Signal line output from latch
218 Branch address control circuit control circuit
218a control circuit
220 Control line signal
230 Selector
231 Signal line indicating instruction fetch program counter
251 Latch holding the counter
Branch address at 270 interrupt
280-282 latch
290 Program counter (PC) controller
300, 301 directive
340, 341 Control line
342 Memory access determination device
343 Control line
345 data line
346 buffer
347 data line
370 Instruction decoding device
374 instruction memory
377 registers
379 calculator
400, 400a, 400b Command supply control device
401 Branch address correction device
402 Offset value
403 Resource saving device
404 Interrupt controller
500 latches

Claims (8)

命令解読を行う命令解読手段と、命令供給を制御する命令供給制御手段と、データを保持するレジスタ群と、命令を格納する命令メモリと、上記命令解読手段によって解読された命令に従って、上記レジスタ群からデータを読み出し、このデータを使用して演算を実行する複数の演算回路とを有し、複数命令を同時に実行する命令と、同時実行でない一命令実行命令を実行する命令とを受け付ける情報処理制御装置において、
上記命令供給制御手段は、単位命令ビットフィールド中の同時実行でない複数の一命令実行命令を配置していることを示すビット及び該一命令実行命令の総数を示すビットに基づいて、上記命令メモリから上記命令解読手段への上記単位命令の供給を制御する、
ことを特徴とする情報処理制御装置。
Instruction decoding means for decoding instructions, instruction supply control means for controlling instruction supply, a register group for holding data, an instruction memory for storing instructions, and the register group according to the instructions decoded by the instruction decoding means Information processing control having a plurality of arithmetic circuits that read data from and execute operations using this data, and that accept instructions that simultaneously execute a plurality of instructions and instructions that execute a single instruction execution instruction that is not simultaneously executed In the device
The instruction supply control means, based on the bit indicating bits and the total number of said single instruction execution instructions indicate that are arranged a plurality of single instruction execution instruction not simultaneous execution in a unit instruction bit field from said instruction memory Controlling the supply of the unit instruction to the instruction decoding means ;
An information processing control device.
請求項1記載の情報処理制御装置において、
上記命令供給制御手段は上記命令メモリ上のアドレスを表す第1のカウンタを有しており、
命令ビットフィールド上での命令の番号を表す第2のカウンタを有し、上記第1のカウンタによるアドレス指定を、上記同時実行できない一命令実行命令の配置されている総数を示すビットに応じて制御するプログラムカウンタ制御手段を備えた、
ことを特徴とする情報処理制御装置。
The information processing control device according to claim 1,
The instruction supply control means has a first counter representing an address on the instruction memory,
A second counter that represents an instruction number in the instruction bit field, and controls addressing by the first counter according to a bit indicating a total number of instructions that can be executed simultaneously; Provided with a program counter control means for
An information processing control device.
請求項2記載の情報処理制御装置において、
上記命令供給制御手段は、上記第1のカウンタと、クロックサイクル毎に該第1のカウンタの値を増加させた値を出力するインクリメント回路と、上記第1のカウンタが保持する値、または上記インクリメント回路の出力する値のいずれか一方を選択して出力するセレクタとを有して構成され、
上記プログラムカウンタ制御手段は、上記同時実行できない一命令実行命令の配置されている総数を示すビットの値を、上記第1のカウンタの動作と同じタイミングで計数し、該計数が終了するまでの間、上記第1のカウンタの値が上記セレクタから選択されて出力されるよう、上記セレクタを制御する信号を出力する、
ことを特徴とする情報処理制御装置。
The information processing control device according to claim 2,
The instruction supply control means includes the first counter, an increment circuit that outputs a value obtained by increasing the value of the first counter every clock cycle, a value held by the first counter, or the increment And a selector that selects and outputs any one of the values output by the circuit,
The program counter control means counts the value of the bit indicating the total number of one instruction execution instructions that cannot be executed simultaneously, at the same timing as the operation of the first counter, and until the counting is completed. Outputting a signal for controlling the selector so that the value of the first counter is selected and output from the selector;
An information processing control device.
請求項2記載の情報処理制御装置において、
分岐命令発行時の命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値と、分岐命令解読後、実際に分岐先の命令が解読されるまでの間に存在する遅延スロットにおける命令メモリ上のアドレスを表すプログラムカウンタ値、および命令ビットフィールド上での命令の番号を表すカウンタ値から、上記命令供給制御手段によるアドレスを制御し、分岐アドレスを動的に設定する分岐アドレス補正手段を備えた、
ことを特徴とする情報処理制御装置。
The information processing control device according to claim 2,
The program counter value that represents the address in the instruction memory when the branch instruction is issued, the counter value that represents the instruction number in the instruction bit field, and the time after the branch instruction is decoded until the branch destination instruction is actually decoded The address by the instruction supply control means is controlled from the program counter value indicating the address on the instruction memory in the delay slot existing in the memory and the counter value indicating the instruction number on the instruction bit field, and the branch address is dynamically set. With branch address correction means to set,
An information processing control device.
請求項2記載の情報処理制御装置において、
割り込み発生時に上記命令メモリ上のアドレスを表すプログラムカウンタ値と、単位命令ビットフィールド上での命令の番号を表すカウンタ値とを退避させる資源退避手段を備えた、
ことを特徴とする情報処理制御装置。
The information processing control device according to claim 2,
Provided with a resource saving means for saving a program counter value representing an address on the instruction memory and a counter value representing an instruction number on a unit instruction bit field when an interrupt occurs;
An information processing control device.
請求項2記載の情報処理制御装置において、
同時実行でない一命令実行命令をビット圧縮し、命令ビットフィールド上に同時実行でない複数の一命令実行命令を配置するかどうかを示す識別子を、上記命令のコードに備えた、
ことを特徴とする情報処理制御装置。
The information processing control device according to claim 2,
An instruction indicating whether or not one instruction execution instruction that is not simultaneously executed is bit-compressed and a plurality of instructions that are not simultaneously executed are arranged on the instruction bit field is provided in the code of the instruction.
An information processing control device.
請求項2記載の情報処理制御装置において、
上記プログラムカウンタ制御手段は、上記命令解読手段により同時実行できない複数の一命令実行命令が検出されたときに、命令メモリへのアクセスを禁止する命令メモリ制御手段を備えた、
ことを特徴とする情報処理制御装置。
The information processing control device according to claim 2,
The program counter control means comprises instruction memory control means for prohibiting access to the instruction memory when a plurality of one instruction execution instructions that cannot be executed simultaneously by the instruction decoding means are detected.
An information processing control device.
請求項2記載の情報処理制御装置において、
分岐命令解読時に、分岐先の命令が同時実行でない複数の一命令実行命令かどうかを示す情報と、上記命令ビットフィールド上での処理順を示す値を一時的に保持するデータ保持手段を備え、
上記プログラムカウンタ制御装置は、分岐先で上記データ保持手段に保持された命令の実行順番号を読み出してそれぞれの命令に応じた処理を行うことを特徴とする情報処理制御装置。
The information processing control device according to claim 2,
A data holding means for temporarily holding information indicating whether or not a branch destination instruction is a plurality of instructions that are not simultaneously executed and a value indicating a processing order on the instruction bit field at the time of branch instruction decoding;
The information processing control apparatus, wherein the program counter control apparatus reads out an execution order number of instructions held in the data holding means at a branch destination and performs processing according to each instruction.
JP2002062366A 2002-03-07 2002-03-07 Information processing control device Expired - Fee Related JP3814548B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002062366A JP3814548B2 (en) 2002-03-07 2002-03-07 Information processing control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002062366A JP3814548B2 (en) 2002-03-07 2002-03-07 Information processing control device

Publications (2)

Publication Number Publication Date
JP2003263312A JP2003263312A (en) 2003-09-19
JP3814548B2 true JP3814548B2 (en) 2006-08-30

Family

ID=29196177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002062366A Expired - Fee Related JP3814548B2 (en) 2002-03-07 2002-03-07 Information processing control device

Country Status (1)

Country Link
JP (1) JP3814548B2 (en)

Also Published As

Publication number Publication date
JP2003263312A (en) 2003-09-19

Similar Documents

Publication Publication Date Title
US20020188830A1 (en) Bit replacement and extraction instructions
JP2002304291A (en) Device and method for storing instruction set information
US5095426A (en) Data processing system for effectively handling exceptions during execution of two different types of instructions
JP2513417B2 (en) Information processing device
US5499348A (en) Digital processor capable of concurrently executing external memory access and internal instructions
JP3814548B2 (en) Information processing control device
US20080215859A1 (en) Computer with high-speed context switching
US6314505B1 (en) Processor and method for accessing rectangular areas in memory
KR100188374B1 (en) Central processing unit and an arithmetic operation processing unit
JPH11110214A (en) Command control system and method for the same
JP2918019B2 (en) Test circuit for single-chip microprocessor
JP2553200B2 (en) Information processing device
JPS6049337B2 (en) Pipeline control method
US7587579B2 (en) Processor core interface for providing external hardware modules with access to registers of the core and methods thereof
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPS6242301B2 (en)
JPH0793151A (en) Instruction supplying device
JPS61245255A (en) Nonvolatile memory device
JP2814683B2 (en) Instruction processing unit
JP3716320B2 (en) Computer control circuit
US6684286B1 (en) High-speed block transfer circuit
JP3531856B2 (en) Program control method and program control device
JPH06324884A (en) Data processor
JPS6156812B2 (en)
JP2694774B2 (en) Program branch method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060307

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060502

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060605

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100609

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110609

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120609

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees