図面 (/)

技術 プロセッサシステム

出願人 株式会社日立製作所
発明者 亀谷雅嗣
出願日 1994年9月16日 (26年2ヶ月経過) 出願番号 1994-221398
公開日 1995年7月28日 (25年3ヶ月経過) 公開番号 1995-191945
状態 特許登録済
技術分野 先行制御 メモリシステム 情報転送方式
主要キーワード アドレッシングユニット リアルタイム処理能力 回路接続構成 クロック生成ユニット 内部状態信号 アドレス出力バッファ アクティブ遷移 最小システム
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(1995年7月28日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

目的

処理に対するリアルタイム性能をさらに高めることができるプロセッサシステムを提供する。

構成

外部リソ−スと、アドレスバスと、制御信号を出力し外部リソ−スをアクセスしてデ−タバスにより必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部とを備えるプロセッサシステムにおいて、前記外部リソ−スは複数の外部リソ−ス3,4に構成し、前記メインCPU部1からのアドレスストロ−ブ信号を入力して前記外部リソ−ス3,4をアクセスする制御信号およびアドレス信号を前記外部リソ−ス3,4に出力するコントロ−ラ6,7を、前記外部リソ−ス3,4にそれぞれ対応して設け、前記外部リソ−ス3,4は、前記コントロ−ラ6,7からの前記信号により、デ−タバス12を介して前記メインCPU部1との間でデータの入出力を行うことを特徴とする。

概要

背景

従来、コンピュ−タシステムマシンサイクルまたはバスサイクルを短縮し、よりシステムの高速化を図る方策として、特開平2−168340号公報に記載されたプロセッサシステムがある。

このプロセッサシステムは、複数に分割した外部リソ−スのグル−プに、外部リソ−スへのアクセス制御信号を生成するマシンステ−トコントロ−ラを分散して配置し、最も先行した位相を有し、複数の同位相に調整されたシステム基本クロックに同期させて、前述したマシンステ−トコントロ−ラを並列に動作させている。これらのマシンステ−トコントロ−ラは、CPU部の内部状態信号を先行して解読することにより、CPU部がアクセスを開始する前に、ロ−カルにバスサイクルを生成し、リソ−スへの先行アクセスを実行することにより、マシンステ−トコントロ−ラの入出バッファ遅れを無くすように、制御するものである。

概要

処理に対するリアルタイム性能をさらに高めることができるプロセッサシステムを提供する。

外部リソ−スと、アドレスバスと、制御信号を出力し外部リソ−スをアクセスしてデ−タバスにより必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部とを備えるプロセッサシステムにおいて、前記外部リソ−スは複数の外部リソ−ス3,4に構成し、前記メインCPU部1からのアドレスストロ−ブ信号を入力して前記外部リソ−ス3,4をアクセスする制御信号およびアドレス信号を前記外部リソ−ス3,4に出力するコントロ−ラ6,7を、前記外部リソ−ス3,4にそれぞれ対応して設け、前記外部リソ−ス3,4は、前記コントロ−ラ6,7からの前記信号により、デ−タバス12を介して前記メインCPU部1との間でデータの入出力を行うことを特徴とする。

目的

本発明の目的は、リアルタイム性能をさらに高めることができるバスシステムを提供することにある。

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

外部リソ−スと、アドレスバス制御信号を出力し,前記外部リソ−スをアクセスしてデ−タバスにより必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部とを備えるプロセッサシステムにおいて、前記外部リソ−スを複数の外部リソ−スに構成し、前記メインCPU部からのアドレスストロ−ブ信号を入力して前記外部リソ−スをアクセスする制御信号およびアドレス信号を前記外部リソ−スに出力するコントロ−ラを、前記外部リソ−スにそれぞれ対応して設け、前記外部リソ−スは、前記コントロ−ラからの前記信号により、デ−タバスを介して前記メインCPU部との間でデ−タの入出力を行うことを特徴とするプロセッサシステム。

請求項2

外部リソ−スと、アドレスバスと制御信号を出力し,前記外部リソ−スをアクセスしてデ−タバスにより必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部とを備えるプロセッサシステムにおいて、前記アドレスバスを上位アドレス下位アドレスを生成する2つのアドレスバスに分けたアドレスバスと、前記下位アドレスで表現されるアドレス値のうち、いくつかの特定のアドレス値のグループを複数割り付けた外部リソ−スと、前記グループに属する前記下位アドレスで表現されるアドレス値を有したアドレス信号が前記アドレスバスを介してそのグループに属する外部リソ−スに出力されるタイミングにあわせて、前記メインCPU部からの指令にもとづいて、前記外部リソ−スに、そのグループに対応する前記アドレスストロ−ブ信号を出力する手段とを備えたことを特徴とするプロセッサシステム。

請求項3

前記メインCPU部は、CPUの動作を指示する命令コ−ドに対し処理する順に番号付けをする命令番号生成手段と、外部リソ−スをアクセスするためのアドレッシング処理を司るアドレッシング手段と、外部リソ−スとのデ−タのやりとりを伴った演算処理又はデ−タ操作処理を行う実行手段と、前記アドレッシング手段によって外部へのアクセスを伴う命令に必要なオペランドデ−タの存在するアドレス値を生成して、それに基づき、外部リソ−スへのアクセスを、実行手段の動作と独立して並列に実行するロ−ド/ストア手段とを備え、さらに、前記アドレッシング手段及びロ−ド/ストア手段とから成るバス制御手段と前記実行手段とを並列に動作させる並列制御手段と、各命令が有する命令番号を、前記アドレッシング手段と前記実行手段とに命令処理情報と共に送っておく命令番号転送手段と、前記命令番号転送手段によって送られてきた前記実行手段における命令番号と前記アドレッシング手段における命令番号とを比較する命令番号比較手段とを備え、前記実行手段により、前記命令に対応する処理が行われる時に、その命令番号のアドレッシング処理が完了しているかどうかを前記命令番号比較手段によって調べることにより、完了していれば、前記バス制御手段によって既に得られているかまたはその時点のバスサイクルで得られる前記命令に対応するオペランドデ−タに対する処理を前記実行手段にて行い、完了していなければ完了するまで前記実行手段を待たせるインターロック機能を、前記並列制御手段に設けたことを特徴とする請求項2記載のプロセッサシステム。

請求項4

前記メインCPU部は、前記各グル−プに対応するアドレスストロ−ブ信号を生成するマシンステ−トコントロ−ラを前記バスサイクル制御手段内に備え、前記マシンステ−トコントロ−ラは、前記アドレッシング手段が生成した物理アドレスをデコ−ドしてそのアドレス値が属するグル−プを認識し、1つ前に生成したアドレスストロ−ブ信号に対応するグル−プが、今回のグル−プと異なるときは、直ちに今回のグル−プに対応するアドレスストロ−ブをアクティブにし、今回のグル−プと同じ時は、前回のアドレスストロ−ブ信号が非アクティブになってから、今回のアドレスストロ−ブをアクティブにする手段を備えたことを特徴とする請求項3記載のプロセッサシステム。

請求項5

メインCPU部が扱う最大ビット数のデ−タを1ワ−ドとした場合、下位アドレスはワ−ド境界を規定する最下位の1ビットのみとし、外部リソ−スとして偶数ソ−スと奇数ソ−スを設けて、下位アドレス=0のグル−プに対し偶数ソ−スを、下位アドレス=1のグル−プに対し奇数ソ−スを割り付けたことを特徴とする請求項2記載のプロセッサシステム。

請求項6

処理プログラムを構成する命令を表現する命令コ−ドを解析するデコ−ドユニットと、外部と前記命令によって指定されたオペランドデ−タをやりとりするため、オペランドデ−タの存在するアドレス値を生成するためのアドレッシング手段と、前記オペランドデ−タを処理するための実行手段とを備える中央演算処理ユニット(CPU)を備えるプロセッサシステムにおいて、中央演算処理ユニット(CPU)は、前記命令コ−ドを、外部へのアクセスを伴う命令とその他の命令とに分類する手段と、前記外部へのアクセスを伴う命令を、デ−タ処理命令と外部デ−タアクセス命令とに分類する手段と、前記外部デ−タアクセス命令を実行するロ−ド/ストア手段と、前記ロ−ド/ストア手段と前記実行手段とを並列に実行させる並列制御手段とを備えたことを特徴とするプロセッサシステム。

請求項7

複数のアドレスストロ−ブ信号を出力するメインCPU部と、前記それぞれのアドレスストロ−ブ信号がアクティブな時にそれぞれ同期して出力されるアドレス値に呼応して入出力が可能となるように前記複数のアドレスストロ−ブ信号に対応して複数のグル−プに分割されている複数の外部リソ−スと、前記複数にグル−プ化された外部リソ−スへの前記メインCPU部による入出力処理を制御するための信号コントロ−ラ(MSC)とを有することを特徴とするプロセッサシステム。

請求項8

前記複数のアドレスストロ−ブ信号は、互いにアクティブレベル遷移する時刻が異なり、アクティブレベルに遷移してから少なくとも1バスクロック周期分(1バスステ−ト分)そのアドレスストロ−ブ信号に対応したアドレス値を前記メインCPU部が出力することを特徴とする請求項7記載のプロセッサシステム。

請求項9

あるアドレスストロ−ブ信号がアクティブレベルに遷移したとき、先行してアクティブレベルに遷移したアドレスストロ−ブ信号に対応するバスサイクルが終了していなければ、前記あるアドレスストロ−ブ信号を、先行して起動されている前記バスサイクルが終了するまでアクティブレベルに保ち続けることを特徴とする請求項8記載のプロセッサシステム。

請求項10

前記あるアドレスストロ−ブ信号に対応するバスサイクルが終了する前にそのアドレスストロ−ブ信号が一度非アクティブレベルに遷移しその後再びアクティブレベルに遷移した場合、前記対応するバスサイクルが終了するまでそのアクティブレベルを保持することを特徴とする請求項8記載のプロセッサシステム。

請求項11

前記複数のアドレスストロ−ブ信号それぞれに対応する複数のレディ信号生成機能を前記信号コントロ−ラに設け、前記メインCPU部が前記対応するレディ信号を受信したバスステ−トの最後で、前記あるアドレスストロ−ブ信号に対応するバスサイクルを終了することを特徴とする請求項9記載のプロセッサシステム。

請求項12

前記複数のアドレスストロ−ブ信号それぞれに対応する複数のレディ信号の生成機能を前記信号コントロ−ラに設け、前記メインCPU部が前記対応するレディ信号を受信したバスステ−トの最後で、前記あるアドレスストロ−ブ信号に対応するバスサイクルを終了することを特徴とする請求項10記載のプロセッサシステム。

請求項13

下位アドレス信号で分類される複数の異なるアドレス群に対応して、1プロセッサクロックサイクル当たり1回のアクセスのため、複数のアドレスストロ−ブ信号を与えるCPUと、前記CPUにそれぞれ接続され、前記複数のアドレスストロ−ブ信号を前記対応するアドレス値と共にそれぞれ受け取り、互いに1プロセッササイクルづつずれ、1クロックサイクルより長いストロ−ブ信号と共に、対応する前記アドレス群のアドレス値を出力する複数のステ−トコントロ−ラと、前記複数のステ−トコントロ−ラ及び前記CPUにそれぞれ接続され、前記ステ−トコントロ−ラから受け取った前記互いに1プロセッササイクルづつずれた前記ストロ−ブ信号に応じて、デ−タを前記CPUとの間で通信する複数のリソ−スとから構成され、前記複数のリソ−スは前記下位アドレス信号で分類される前記複数のアドレス群によりそれぞれアクセスできることを特徴とするプロセッサシステム。

請求項14

外部リソ−スと、アドレスバスと制御信号を出力し,前記外部リソ−スをアクセスしてデ−タバスを介して必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部と、前記外部リソ−スは複数の外部リソ−スに構成され、前記複数外部リソ−スのそれぞれに対応して設けられ、前記メインCPU部からのアドレスストロ−ブ信号を入力して前記外部リソ−スをアクセスする制御信号およびアドレス信号を前記外部リソ−スに出力するコントロ−ラを有し、前記外部リソ−スは、前記コントロ−ラからの前記制御信号と前記アドレス信号により、デ−タバスを介して前記メインCPU部との間でデ−タの入出力を行うプロセッサシステム。

請求項15

外部リソ−スと、アドレスバスと制御信号を出力し,前記外部リソ−スをアクセスしてデ−タバスを介して必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部と、前記アドレスバスは、コンプリ−ドアドレスを構成する上位アドレスと下位アドレスを生成する2つのアドレスバスを有し、前記リソ−スは、前記下位アドレスで表現されるアドレス値のうち、いくつかを用いて割り付けられた複数の外部リソ−スエレメントと、前記いくつかのアドレス値を有したアドレス信号が前記アドレスバスを介して対応する外部リソ−スエレメントに出力されるタイミングにあわせて、前記メインCPU部からの指令にもとづいて、前記外部リソ−スに、対応する前記アドレスストロ−ブ信号を出力する手段とを備えたプロセッサシステム。

請求項16

前記メインCPU部は、CPUの動作を指示する命令コ−ドに対し処理する順に番号付けをする命令番号生成手段と、外部リソ−スをアクセスするためのアドレッシング処理を司るアドレッシング手段と、外部リソ−スとのデ−タのやりとりを伴った演算処理又はデ−タ操作処理を行う実行手段と、前記アドレッシング手段によって外部へのアクセスを伴う命令に必要なオペランドデ−タの存在するアドレス値を生成して、それに基づき、外部リソ−スへのアクセスを、実行手段の動作と独立して並列に実行するロ−ド/ストア手段とを備え、さらに、前記アドレッシング手段及びロ−ド/ストア手段とから成るバス制御手段と前記実行手段とを並列に動作させる並列制御手段と、各命令が有する命令番号を、前記アドレッシング手段と前記実行手段とに命令処理情報と共に送っておく命令番号転送手段と、前記命令番号転送手段によって送られてきた前記実行手段における命令番号と前記アドレッシング手段における命令番号とを比較する命令番号比較手段とを備え、前記実行手段により、前記命令に対応する処理が行われる時に、その命令番号のアドレッシング処理が完了しているかどうかを前記命令番号比較手段によって調べることにより、完了していれば、前記バス制御手段によって既に得られているかまたはその時点のバスサイクルで得られる前記命令に対応するオペランドデ−タに対する処理を前記実行手段にて行い、完了していなければ完了するまで前記実行手段を待たせることを特徴とする請求項15記載のプロセッサシステム。

請求項17

前記メインCPU部は、前記各グル−プに対応するアドレスストロ−ブ信号を生成するマシンステ−トコントロ−ラを前記バスサイクル制御手段内に備え、前記マシンステ−トコントロ−ラは、前記アドレッシング手段が生成した物理アドレスをデコ−ドしてそのアドレス値が属するグル−プを認識し、1つ前に生成したアドレスストロ−ブ信号に対応するグル−プが、今回のグル−プと異なるときは、直ちに今回のグル−プに対応するアドレスストロ−ブをアクティブにし、今回のグル−プと同じ時は、前回のアドレスストロ−ブ信号を非アクティブにしてから、今回のアドレスストロ−ブをアクティブにする手段を備えたことを特徴とする請求項16記載のプロセッサシステム。

請求項18

メインCPU部が扱う最大ビット数のデ−タを1ワ−ドとした場合、下位アドレスはワ−ド境界を規定する最下位の1ビットのみとし、外部リソ−スとして偶数ソ−スと奇数ソ−スを設けて、下位アドレス=0のグル−プに対し偶数ソ−スを、下位アドレス=1のグル−プに対し奇数ソ−スを割り付けたことを特徴とする請求項15記載のプロセッサシステム。

請求項19

処理プログラムを構成する命令を表現する命令コ−ドを解析するデコ−ドユニットと、前記命令によって指定されたオペランドデ−タを入出力するためオペランドデ−タの存在するアドレスを示すアドレス値を生成するためのアドレッシング手段を備える中央演算処理ユニット(CPU)を備えるプロセッサシステムにおいて、 中央演算処理ユニット(CPU)は、前記命令コ−ドを、外部へのアクセスを伴う命令とその他の命令とに分類し、前記外部へのアクセスを伴う命令を、デ−タ処理命令と外部デ−タアクセス命令とに分類する手段と、前記外部デ−タアクセス命令を実行するロ−ド/ストア手段と、前記その他の命令及び前記デ−タ処理命令を処理するための実行手段と前記ロ−ド/ストア手段と前記実行手段とを並列に実行させる並列制御手段とを備えたことを特徴とするプロセッサシステム。

請求項20

請求項19のプロセッサシステムにおいて、前記アドレッシング手段はストア命令に対応するアドレス値の出力よりも、そのストア命令よりも後に指令されたロ−ド命令のアドレス値の出力の方を優先する機能を有するプロセッサシステム。

請求項21

請求項20のプロセッサシステムにおいて、前記ロ−ド命令に対応するアドレス値と前記ストア命令に対応するアドレス値とが異なる場合、前記ストア命令に対応するアドレス値の出力よりも、前記ロ−ド命令に対応するアドレス値の出力の方を優先するプロセッサシステム。

技術分野

0001

本発明は、制御用計算機等の高いリアルタイム処理能力が要求される処理装置に好適な、外部ソ−スと処理装置内部との間のデ−タ授受を高効率に実行できるバスシステム及びプロセッサシステムに関する。

背景技術

0002

従来、コンピュ−タシステムマシンサイクルまたはバスサイクルを短縮し、よりシステムの高速化を図る方策として、特開平2−168340号公報に記載されたプロセッサシステムがある。

0003

このプロセッサシステムは、複数に分割した外部リソ−スのグル−プに、外部リソ−スへのアクセス制御信号を生成するマシンステ−トコントロ−ラを分散して配置し、最も先行した位相を有し、複数の同位相に調整されたシステム基本クロックに同期させて、前述したマシンステ−トコントロ−ラを並列に動作させている。これらのマシンステ−トコントロ−ラは、CPU部の内部状態信号を先行して解読することにより、CPU部がアクセスを開始する前に、ロ−カルにバスサイクルを生成し、リソ−スへの先行アクセスを実行することにより、マシンステ−トコントロ−ラの入出バッファ遅れを無くすように、制御するものである。

発明が解決しようとする課題

0004

上述した従来の技術においては、CPU部がアクセスを開始する前に、ロ−カルにバスサイクルを生成し、リソ−スへの先行アクセスを実行することにより、高速化およびアクセス時間の確保を行っているものである。しかし、種々のデ−タ処理を必要とする制御対象や、ダイナミックに処理の内容や扱うデ−タが変わる制御対象に対しては扱うデ−タの存在するアドレスランダムに変化するので、処理装置内の実行ユニットが必要なデ−タを各マシンサイクル(又はバスサイクル)毎には得られない。

0005

従って、実行ユニットは待ち状態になってしまい著しく性能が低下するという問題がある。

0006

上述した問題は、スタティックな環境でベクトル型の数値処理を扱うことが多い通常の計算機利用環境ではそれ程深刻ではないが、ダイナミックな問題をリアルタイムで実行する必要のある制御用計算機等の利用環境では特に深刻である。また、処理アルゴリズムが複雑化し、かつ外部環境とのリンケ−ジが密な処理システム、例えば大規模CADシステムでは、ランダムなデ−タ処理と外部リソ−スへのアクセス頻度が大幅に増加し、ダイナミックな処理系と同様なリアルタイム性能が要求されることになる。今後、このようなシステムは増加すると考えられ、一般的な利用環境でも前述した問題は深刻になりつつある。

0007

さらに、制御アプリケ−ションの場合には、デ−タがリソ−スと処理系との間でフィ−ドバック(例えば、リソ−スのデ−タに基づき処理系による処理が実行され処理結果をリソ−スに戻し、その結果を用いてリソ−スに内蔵されている別の処理系は、制御対象の動作を制御してその動作結果動作状態をリソ−スのデ−タとしてフィ−ドバックする)が頻繁に発生するため、そのフィ−ドバックル−プに依る遅延レイテンシ)を十分小さく保たないと、リアルタイム性能を低下させるという問題がある。

0008

本発明の目的は、リアルタイム性能をさらに高めることができるバスシステムを提供することにある。

課題を解決するための手段

0009

上記の目的を達成するために、本発明によるプロセッサシステムは、リソ−スと、アドレスバス制御信号を出力しデ−タバスを介して必要なデ−タを入出力するため前記リソ−スをアクセスする機能を有するバス制御機構を内蔵するメインCPU部とを備え、前記リソ−スを複数の外部リソ−スに構成し、前記プロセッサシステムは、前記メインCPU部からのアドレスストロ−ブ信号を入力して前記リソ−スをアクセスする制御信号およびアドレス信号を前記リソ−スに出力するコントロ−ラを、前記外部リソ−スにそれぞれ対応して備え、前記リソ−スは、前記コントロ−ラからの前記制御信号およびアドレス信号により、デ−タバスを介して前記メインCPU部との間でデ−タの入出力を行う。

0010

また、メインCPU部の内部処理において、フェッチした命令処理順命令番号を付し、命令をフェッチした後なるべく早い時期(例えばデコ−ド処理のフェ−ズ以後)にメインCPU部の外部へのアクセス処理と、その他の処理(例えば演算処理)に分離してそれぞれの処理に関連する前記命令番号を付しておいて並行に処理を進めるように構成する。すなわち、外部へのアクセス処理とはロ−ド/ストア処理であり、アドレッシングユニットでの実効アドレス計算を伴い、その他の処理とは実行ユニットでの演算処理が主体となっており、これらを並行に処理して、外部へのアクセス処理をなるべく先行して進めていくことを特徴としている。これら並行して実行される2つの処理の間の関係を矛盾なく管理するため、前記命令番号によって関連する処理間の前後関係を制御する。

0011

また、上記の目的を達成するために、本発明は、外部リソ−スと、アドレスバスと制御信号を出力し,前記外部リソ−スをアクセスしてデ−タバスにより必要なデ−タを入出力する機能を有するバス制御機構を内蔵するメインCPU部とを備えるプロセッサシステムにおいて、前記外部リソ−スを複数の外部リソ−スに構成し、前記メインCPU部からのアドレスストロ−ブ信号を入力して前記外部リソ−スをアクセスする制御信号およびアドレス信号を前記外部リソ−スに出力するコントロ−ラを、前記外部リソ−スにそれぞれ対応して設け、前記外部リソ−スは、前記コントロ−ラからの前記信号により、デ−タバスを介して前記メインCPU部との間でデ−タの入出力を行うことを特徴とするものである。

0012

各外部リソ−スに対しては、十分なアクセス時間を確保した(2つのプロセッササイクル分のアクセス時間)バスサイクルでアクセスでき、CPU側から見ると、それより短い(1プロセッササイクル)バスサイクルで連続的にかつランダムにアクセスしていくことが可能となる。これにより、CPU側から見たバスの転送スル−プットを低下させずに、外部リソ−ス側から見たアクセス時間をより長く確保できる。また、外部リソ−スへのランダムアクセス時にも、最高プロセッサクロック(バスサイクルの最小値を決めるクロック)の周期でデ−タを転送できる。また、外部リソ−スとのランダムアクセスがダイレクトにかつ高効率に実現できるようにCPU内部を構築できるので、CPUが外部リソ−スへアクセス要求を出力してから、必要なデ−タを入手するまでのアクセス遅延を小さく保てる。

0013

さらに、CPU内部で外部へのアクセス処理を命令をフェッチした直後から演算処理と分離し、なるべく先行して処理を進めていくことができるため、従来のCPUより早い時刻に外部へのアクセス要求を生成でき、リソ−スへのアクセスタイムを稼げるばかりか、外部リソ−スからの必要なデ−タが遅延することによりCPU内部の演算処理系が待たされることに起因する処理効率の低下を小さく抑えるように作用する。

0014

以下本発明の実施例を図面を用いて説明する。

0015

図1は本発明のプロセッサシステムの一実施例を示すブロック図で、リソ−ス2はメインCPU部1から見て偶数アドレスで指定される第1のリソ−ス(EVSRC)3と、メインCPU部1から見て奇数アドレスで指定される第2のリソ−ス(ODSRC)4とで構成されている。

0016

リソ−ス2へのマシンステート送出を制御するマシンステートコントローラMSC)5は、第1のリソ−ス(EVSRC)3へのアクセス制御機能を内蔵している第1のマシンステートコントローラ(MSC−A)6と、第2のリソ−ス(ODSRC)4へのアクセス制御機能を内蔵している第2のマシンステートコントローラ(MSC−B)7とで構成されている。

0017

また、メインCPU部1は、バスサイクルを管理し、MSC−A,MSC−Bを介してのリソ−スへの必要なアクセス制御信号を生成する第3のマシンステートコントローラ(MSC)8を備えている。第1のマシンステートコントローラ(MSC−A)6、第2のマシンステートコントローラ(MSC−B)7および第3のマシンステートコントローラ(MSC)8は、この実施例では信号線9からの同レベルのシステム基本クロック(SCLK)を基準に動作している。

0018

上述したように、マシンステートコントローラ(MSC)5は、その内部が2つのリソース3,4に対応するように分離されている。前述したマシンステートコントローラ(MSC)5を構成する第1のマシンステートコントローラ(MSC−A)6および第2のマシンステートコントローラ(MSC−B)7は、それぞれマシンステートコントローラ(MSC)5からの基準信号を得てリソース3,4を制御するよう作動するローカルアクセスコントローラ(LCA,LCB)10,11を備えている。

0019

12はメインCPU部1と第1のリソ−ス(EVSRC)3および第2のリソ−ス(ODSRC)4とを接続するバスである。

0020

メインCPU部1はアドレスストローブ信号(/AS)をリソース3,4に出力するが、このアドレスストローブ信号(/AS)は偶数アドレス生成時に出力される信号(/ASEV)と、奇数アドレス生成時に出力される信号(/ASOD)とに分離されて、信号(/ASEV)は信号線100により第1のマシンステートコントローラ(MSC−A)6のアドレスストローブ入力(/ASS)に入力され、また信号(/ASOD)は信号線101により第2のマシンステートコントローラ(MSC−B)7のアドレスストローブ入力(/ASS)に入力されている。

0021

ここで、第1のマシンステートコントローラ(MSC−A)6および第2のマシンステートコントローラ(MSC−B)7のローカルコントローラ(LCA,LCB)10,11は、各マシンステートコントローラ(MSC−A,MSC−B)6,7からの基準信号を用いて、それぞれリソース3,4をアクセスするのに必要なアクセスコントロール信号Cとアドレス信号OAを信号線102,103,104,105に出力する。それに対応して、第1のリソ−ス(EVSRC)3と第2のリソ−ス(ODSRC)4は、データバス12を介してデータの入出力をメインCPU部1との間で行う。

0022

なお、メインCPU部1からのアドレス信号(ADDR)を、信号線106により第1のマシンステートコントローラ(MSC−A)6および第2のマシンステートコントローラ(MSC−B)7が得た後で、アドレス信号OAは、ローカルコントローラ(LCA,LCB)10,11の内部でそれぞれアドレスラッチイネーブル信号ALE及びOALEにより所定のバスサイクル期間ラッチされ、各リソース3,4に対して出力される。

0023

図2は本発明の実施例によるランダムオルタネーティブバスサイクルの例を示すもので、アドレス(ADDR)信号上に生成される偶数アドレスAEと奇数アドレスAOに対して、それぞれアドレスストローブ信号(/ASEV、/ASEO)がバスサイクルの開始を示し、かつアドレスのアクティブ状態を示す信号として生成される。メインCPU部1は、偶数アドレスAEと奇数アドレスAOが交互に出力可能な場合、バスサイクルの基本クロックであるプロセッサクロックPCLKごとに連続して奇数アドレスAO、偶数アドレスAEとアドレスストローブ信号(/ASEV、/ASEO)を出力していく機能を有し、結果的にアドレスストローブ信号(/ASEV)とアドレスストローブ信号(/ASOD)とが交互に出力されることになる。

0024

同一リソ−スへ連続してアクセスが発生する場合、すなわち、偶数アドレスAEが連続するか又は奇数アドレスAOが連続する場合には、後述のMSCはプロセッサクロックPCLKの2サイクル分のバスサイクルを確保した後、1つ前と同じアドレスストローブを生成する(図2中の連続アドレスAO2とAO3との出力がそれに当たる)。有効なアドレスが出力されない側のアドレスストロ−ブは非アクティブ状態を保つ(図2中でアドレスAO2とAO3が連続する場合;偶数アドレスAE側のアドレスストロ−ブ(/ASEV)はhighのままである)。ADDR上のアドレス情報は、前述したアドレスラッチイネーブル信号(EALE)と(OALE)によってローカルコントローラ(LCA、LCB)10,11でそれぞれラッチされる。

0025

なお、アドレスラッチイネーブル信号(EALE)は、アドレスストローブ信号(/ASEV)より、またアドレスラッチイネーブル信号(OALE)は、アドレスストローブ信号(/ASOD)より図2に示すタイミングで生成される。第1のリソース(EVSRC)3および第2のリソース(ODSRC)4側から見ると、図中に示した偶数バスサイクルEBS及び奇数バスサイクルOBSとして観測される。偶数バスサイクルEBS及び奇数バスサイクルOBSの各バスサイクル期間において、それぞれ第1のリソース(EVSRC)3および第2のリソース(ODSRC)4に対する第1のマシンステートコントローラ(MSC−A)6および第2のマシンステートコントローラ(MSC−B)7からの2つのアドレス出力AOはそれぞれ固定されており(前述したADDR上のアドレス情報をアドレスラッチイネーブル信号EALEおよびアドレスラッチイネーブル信号OALEによってラッチしたアドレス値)、それによってリソース3,4内のターゲットデータ存在場所を指定する。

0026

本発明によれば、図2から明らかなように、各リソース3,4に対する偶数バスサイクルEBSおよび奇数バスサイクルOBSは、常に2プロセッサクロック分(PCLK×2)の期間を確保しているので、リソースをアクセスするアクセス期間を長く確保することが可能である。

0027

また、バスの転送スループットは、従来方式において1プロセッサクロック単位でバスサイクルを生成した場合と等価のレベルにあり、しかも、アドレス指定もバスサイクル単位で任意に行うことができる。図2のアドレスADDR及びデ−タDATAの上の情報量がスループットを示していると言える。

0028

本発明において、メインCPU部1側から見たときに連続して生成される1プロセッサクロック単位のランダムバスサイクルを、オルターネイティブバスステ−トABS又はサイクルと呼び、偶数アドレスAE又は奇数アドレスAOが連続して2つ以上続くときの2プロセッサクロック単位のバスサイクルを、ノーマルバスステ−ト(NBS)と呼んでいる。メインCPU部1に直接に接続されたリソースは、通常2プロセッサクロック以上のアクセス期間を必要とするため、従来の直接接続では、常にノーマルバスステ−ト(NBS)でしかリソースをアクセスできないことになる。すなわち、リソースに対するアクセス期間を従来と同じ2プロセッサクロック分確保したとしても、本発明では従来方式に比べて2倍近いスループットが得られることが分かる。

0029

また、本発明によれば、メインCPU部1は内部でアドレッシング処理が終了した時点で、メインCPU部1がアドレスストロ−ブ信号(/ASEV,/ASOD)と共に、外部に対してタ−ゲットとなるアドレス信号ADDRを出力するため、外部でアドレスをデコ−ドしてオルターネイティブバスステ−トABSを生成する場合より早いタイミングでリソ−スへのアクセスを実行できる。すなわちアクセスタイムをより長く確保することができる。

0030

さらに、外部でオルターネイティブバスステ−トABSを生成する場合は、連続して同一リソ−スへのアクセスが生じた場合メインCPU部1を待たせる制御が必要となるが、そのCPU制御情報を生成しCPU部1に伝える処理を外部で行うことはタイミング的に非常に困難を伴うが、本発明によれば、メインCPU部1が内部でアドレッシング処理を終了した時点で、連続して同一リソ−スへアクセスすることになるか否かを判別できるため、容易にかつ早いタイミングでオルターネイティブバスステ−トABSを生成することが可能である。

0031

この実施例では、リソ−ス2を2つのリソ−ス(EVSRC、ODSRC)3,4に分離して構成する場合を示したが、より多く(3つ以上)のリソ−スに分離し、それらに対応するアクセス制御用のマシンステ−トコントロ−ラMSCを設け、メインCPU側には、それらのリソ−ス及びマシンステ−トコントロ−ラMSCに対応するアドレスストロ−ブ信号を設けて、上述と同様にアクセス制御を実行すれば、より高い確率で、1プロセッサクロック単位でのオルターネイティブバスステ−トABSを実現することが可能である。ランダムアクセス環境を考えると、上述の実施例のように、リソ−スを2つのリソ−スに分離し、これらを2つのアドレスストロ−ブで制御した場合、オルターネイティブバスステ−トABSが実行できる確率は、50%である。また、リソ−スを3つに分離し、3の剰余に対応するアドレスにリソ−スを割り付けた場合、66%の確率でオルターネイティブバスステ−トABSを実行することができる。一般に、n個のリソ−スと対応するアドレスストロ−ブ信号を設けると、(1−1/n)×100%の確率でオルターネイティブバスステ−トABSを実行することができるため、アドレスストロ−ブ信号数とそれに応じたリソ−スの分割数を増やす程、バス効率が向上する。コストと性能のバランスを考えて、分割するリソ−ス数を決定すると良い。

0032

なお、本発明によれば、バスシステムとしては、CPU側から見たとき1つのデ−タバスと1つのアドレスバスがCPUとの間で入出力されていれば良く、従来と同等レベルのピン数でメインCPU部1を構成できるので、コストパフォ−マンスを向上させることができる。

0033

また、本発明は、従来の分散マシンステートコントロール技術を用いなくとも、バス転送プロトコルとして高い効率が得られることは明白である。しかし、従来の分散マシンステートコントロールと本発明とを組み合わせると、さらにアクセスタイムを長く確保できるため、アクセスタイムの遅い安価なリソ−スが利用できたり、さらにマシンサイクルを向上させることができる等、より効果的である。図3ないし図6は本発明のプロセッサシステムのさらに他の実施例を示すもので、この実施例はより高度なシステムの処理を可能にしたものであり、一般的なバスサイクル(ノ−マルバスステ−トNBS、パイプラインバスステ−トPBS,バス−トバスステ−トBBS等)が混在する場合についても可能である。

0034

この実施例は、後で詳しく説明する図3に示す様なメインCPU部1(中央数値演算処理部)を中心とし、リソ−ス2へのアクセス制御機構を含む複数のマシンステ−トコントロ−ラ5及びバスサイクルのタイプによってグル−プ化された複数のリソ−ス群から成る。メインCPU部1は、常に主記憶又は外部リソ−スのデ−タを直接扱うことを前提にしたリアルタイム性能の高い高性能なランダムアクセスバスシステムを有する。

0035

図4はその基本動作タイミングを示す。このバスシステムを単にリアルタイムバスシステムと呼ぶことにする。以下に図4を用いてその機能と性能及び動作タイミングについて説明する。

0036

メインCPU部1は、メモリを参照する命令を処理する際、バスサイクルを起動して外部のメモリを参照することを前提として、アドレッシングユニットでアクセスすべきメモリのアドレスが確定したら、そのアドレス(ADDR)をアドレスストロ−ブ(/AS)と共に先出しすることにより、バスサイクルを実行ユニットの動作に先行して開始する。これにより、実行ユニットでその命令処理を開始するときにはすでにバスサイクルが起動されているので、実行ユニットのデ−タ供給待ちによるアイドル状態を少なくすることができる。

0037

図4に示したように、偶数アドレス(AE)と奇数アドレス(AO)が交互にアドレッシングされた場合、その期間は実質1プロセッササイクルでバスサイクルを終了することができ、そのバスサイクルをオルタ−ナティブバスステ−ト(ABS)において、偶数アドレス(AE)によるバスサイクルと奇数アドレス(AO)によるバスサイクルはそれぞれアドレスストロ−ブ(/ASEV)及び(/ASOD)で分離され、偶数ソ−ス(EVSRC)と奇数ソ−ス(ODSRC)の2つのリソ−スに分配される。このようにして展開された2つのバスステ−トはそれぞれ2プロセッサクロックで構成される。オルタ−ナティブバスステ−ト(ABS)は、リソ−スからのオルタ−ナティブバスステ−ト(ABS)要求(ABSREQ)によって起動される。オルタ−ナティブバスステ−ト(ABS)を終了する場合には、偶数ソ−ス(EVSRC)又は奇数ソ−ス(ODSRC)からそれぞれレディ信号(/RDYEV)とレディ信号(/RDYOD)をメインCPU部1に返送しなければならない(レディ信号が返送されない場合は返送されるまでウェイトステ−トが挿入され続ける)。

0038

オルタ−ナティブバスステ−ト(ABS)で、偶数同志又は奇数同志のアドレスが連続した場合、自動的にオルタ−ナティブバスステ−ト(ABS)に1ウェイトステ−ト(1プロセッササイクル)挿入され、ノ−マルバスステ−ト(NBS)相当の2プロセッササイクルバスアクセスが実行される。

0039

通常のバスサイクルは、ノ−マルバスステ−ト(NBS)とパイプラインバスステ−ト(PBS)とで構成され、バスサイクルの終了はレディ信号(READY)を返送することによって行なう。パイプラインバスステ−ト(PBS)は、アドレスを実際のバスサイクルが開始される1プロセッサクロック以上前に先出しするアドレスパイプライニングにより、バスサイクル期間を100%利用してデ−タをアクセスすることができるバスステ−トである。これにより、リソ−スへのアクセス期間をより長く確保できる。パイプラインバスステ−ト(PBS)への移行は、レディ信号の返送を1プロセッサクロック以上遅らせれば良い。その時、アドレスストロ−ブ(/AS)は、パイプラインバスステ−ト(PBS)へ移行するまでアクティブに保たれ、アクティブなレディ信号が返送されると、非アクティブに戻る。ノ−マルバスステ−ト(NBS)では、バスサイクル先頭のステ−トでアドレス(ADDR)を出力して、アドレスストロ−ブ(/AS)をアクティブにしてバスサイクルを開始する。従って、アドレスアクセスタイムはパイプラインバスステ−ト(PBS)ほど確保できないが、オペランドデ−タリドアクセス時のメインCPU部1に対するアクセス遅延(アドレッシングユニットがデ−タアクセスを開始してからデ−タがCPU内にフェッチされるまでの時間)をパイプラインバスステ−ト(PBS)より小さく抑えられる可能性が高い。ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)共、2プロセッサクロックで構成される。

0040

その他、バ−ストバスステ−ト(BBS)による実質1プロセッササイクルによる連続デ−タ転送をサポ−トする。バ−ストバスステ−ト(BBS)は、オルタ−ナティブバスステ−ト(ABS)の機能縮小型バスステ−トとみなすことができ、単に連続したアドレスに対して、偶数アドレスのワ−ドデ−タと奇数アドレスのワ−ドデ−タを交互にアクセスする。ベクトルタイプのデ−タや命令デ−タをフェッチするのに適している。一般の高速汎用CPUをIU(整数演算操作用処理装置)として用いる場合、高速バスサイクルモ−ドとしてバ−スト転送モ−ドを備えていることが多いので、その機能を本発明のア−キテクチャ上で利用することができる。

0041

図4において、レディ信号(/READY)は、ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)時のバスサイクル終了を示す信号(Loアクティブ)である。ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)モ−ドでアクセスされるリソ−ス側からメインCPUへ返送されるバスサイクル終了可能信号(/RDY)と、メインCPU部の内部状態(バスサイクルの終了が可能な状態かどうか)から判断して、メインCPU部1はバスサイクルの終了が最終的に可能ならば、信号(/CPURDY)をアクティブ(Loレベル)にする。信号(/CPURDY)は、各リソ−ス側のマシンステ−トコントロ−ラ(MSC)の(/READY)入力に与えられ、バスステ−トやバスコマンドの開始、終了制御に利用される。

0042

前述したように、ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)の基本バスステ−トは、ウェイトステ−トが挿入されない限り2プロセッササイクルで終了する。ノ−マルバスステ−ト(NBS)が約1.5プロセッサクロック相当、パイプラインバスステ−ト(PBS)が約2プロセッサクロック相当の実質的なアクセスタイムをリソ−スに対して提供する。又、オルタ−ナティブバスステ−ト(ABS)についても、例えば偶数ソ−ス(EVSRC)から見ると、信号(/ASEV)がアクティブ(Lo)に遷移するステ−トまでは、NBS相当の2プロセッサクロックのバスステ−ト(偶数バスステ−トEBS)として観測される。奇数ソ−ス(ODSRC)から見ても同様にノ−マルバスステ−ト(NBS)相当のバスステ−ト(奇数バスステ−トOBS)として観測される。バ−ストバスステ−ト(BBS)についてもオルタ−ナティブバスステ−ト(ABS)の場合と全く同様であり、リソ−ス(EVSRC)及びリソ−ス(ODSRC)から見た場合それぞれノ−マルバスステ−ト(NBS)相当のバスステ−ト(EBS)及びバスステ−ト(OBS)として観測される。

0043

以上のように、リソ−ス側から観測した場合すべてのバスステ−トで最低2プロセッササイクル確保できることになり、1プロセッサクロックバスサイクルに対してより長いアクセスタイムを実現している。

0044

本発明では、リアルタイムバスシステムのリソ−スの大半をオルタ−ナティブバスステ−ト(ABS)モ−ドでアクセスできるように設計している。オルタ−ナティブバスステ−ト(ABS)によるアクセスは、バ−ストバスステ−ト(BBS)や従来の転送タイプのバスサイクルによるアクセスと異なり、次の様な特性及び利点を有する。

0045

(a)オルタ−ナティブバスステ−ト(ABS)モ−ドでは、偶数ソ−スと奇数ソ−スを交互にアクセスさえできれば、上位アドレス値は偶数ソ−スと奇数ソ−スで全く異なるものを指定しても、偶数ソ−スと奇数ソ−スに対応してそれぞれ上位アドレス指定用のアドレスバスが用意されているため、アクセスオ−バ−ヘッドを生ずることは無い。プロセッサ(本発明ではメインCPU部)が連続的なアドレス値に対してアクセスを実行できない場合(ランダム性の高いアクセス)でも、バスサイクルにウェイトステ−トが挿入されて、アクセスオ−バ−ヘッドが発生する確率を50%以下に抑えることができる。このことは、特にリアルタイム処理環境で要求されるランダムアクセス性能を非常に高く保てることを意味する。

0046

(b)従来の転送バスでは、転送デ−タの数が固定されているか、事前に指定する必要があるが、オルタ−ナティブバスステ−ト(ABS)によるアクセスではその様な制約が無い。

0047

(c)リソ−ス側から見ると、他の一般的な基本バスサイクル(NBS,PBS)と同様のアクセスタイミングシステム設計を行うことができる。また、これによりアクセスタイムを従来のバスサイクルよりも長く確保できる。

0048

本実施例においては、前記オルタ−ナティブバスステ−ト(ABS)モ−ドのように、ワ−ド境界を決めるアドレスの最下位ビットが偶数(0)か奇数(1)かでアクセスするリソ−スを、リソ−ス(EVSRC)とリソ−ス(ODSRC)の2つに分けてアドレスマップ上に割り付けているが、より多くのアドレス下位ビット(AL)を用いて構成することも可能である。すなわち、アドレスバスを上位アドレス(AH)と下位アドレス(AL)を生成する2つのアドレスバスに分け、前記外部リソ−スを2つ以上設けて、前記下位アドレス(AL)で表現されるアドレス値のうちいくつかの特定のアドレス値のグル−プを複数用意して前記外部リソ−ス各々をそれらのグル−プに対応して割り付け、前記特定のアドレス値のグル−プに対応した複数のアドレスストロ−ブ信号を設けて、それらの各アドレスストロ−ブ信号に対応するグル−プの前記下位アドレス(AL)を前記下位アドレスバスを介して対応する外部リソ−スに出力するタイミングにあわせて、メインCPU部から外部に対応する前記アドレスストロ−ブ信号を出力する手段を設ければ良い。

0049

次に、以上の観点に基づき、本実施例におけるリアルタイムプロセッサシステムの実効バスバンドについて検討する。

0050

オルタ−ナティブバスステ−ト(ABS)(バ−ストバスステ−ト(BBS)も含む)の比率をABSR、バスバンド利用率をBBURとすると、オルタ−ナティブバスステ−ト(ABS)以外のバスステ−トは2プロセッサクロック要し、バス利用率では0.5に相当するため、一般的に、バスバンド利用率はBBUR=ABSR+0.5・(1−ABSR)となる。命令デ−タアクセス時のバスバンド利用率BBURをBBURi、オペランドデ−タアクセス時のバスバンド利用率BBURをBBURdとし、命令デ−タフェッチバスサイクルの比率をIDBR、オペランドデ−タバスサイクルの比率をODBRとすると、プロセッサの実効バスバンドPDbbと最大バスバンドPDMbbとの比率、すなわち、バスバンド利用率PDbb/PDMbbは次のようになる。

0051

PDbb/PDMbb=BBURi・IDBR+BBURd・ODBR
ここで、1−IDBR−ODBRの値はアイドルバスステ−ト(無効バスステ−トでありバスサイクルとして機能しないステ−ト)の比率に相当し、メインCPU部の内部状態やアプリケ−ションに依存する。

0052

本発明における平均的なリアルタイム処理アプリケ−ションでは、メインCPU部が十分な容量の命令バッファまたは命令キャシュを有する(アプリケ−ションの命令コ−ド容量の5%程度)と仮定した場合、BBURi=0.975、BBURd=0.9、IDBR=0.065、ODBR=0.765程度と考えられ、その時、バスバンド利用率PDbb/PDMbb=0.752となる。

0053

命令デ−タをすべて主記憶システムからフェッチすると仮定した最もダイナミックなリアルタイム処理環境を想定すると、IDBR=0.58、ODBR=0.37程度となり、その時、バスバンド利用率PDbb/PDMbb=0.9となる。この時、メインCPU部1の部の命令実行速度よりも、外部リソ−スへのアクセス動作効率の方がメインCPU部1の処理能力を決定してしまい、リアルタイムバスシステムに要求されるバスバンド(デ−タ入出力スル−プット)はほぼ最大となる。

0054

バスバンド利用率PDbb/PDMbbの値は、バスシステムの性能がどれだけ理想値である1プロセッササイクルに近いかを示す値と考えることもできる。バスが頻繁に使用される環境ではアイドルバスステ−トが減少し、理想値である1に近い値を示す。上記の検討から、本実施例におけるプロセッサシステムの限界バスバンド利用率(実効バスバンド利用率の最大値)は約0.9程度であると推定できる。

0055

図3は本発明のプロセッサシステムの他の実施例における構成を示すもので、32bitリアルタイムバス/システムで構成している。この図3において、図1同符号のものは同一部分または相当する部分である。この実施例においては、メインCPU部1を中心に、マシンステ−トコントロ−ラ(MSC、MSC−A〜D)30〜34を複数有し、各リソ−スへのアクセスタイムの確保とクロックや制御信号にかかる負荷分数及びクロックスキュ−やクロックディレイの管理を行い、大規模な同期型高速デジタル回路を実現している。

0056

メインCPU部1からアクセスされるリソ−スは、大きく分けて3つのブロックに分かれている。すなわち、オルタ−ネイティブバスステ−ト(ABS)でアクセスされる偶数ソ−ス(EVSRC)40及び奇数ソ−ス(ODSRC)41、ノ−マルバスステ−ト(NBS)またはパイプラインバスステ−ト(PBS)でアクセスされる標準的なソ−ス(SRC)42、そしてバ−ストバスステ−ト(BBS)でアクセスされる偶数ソ−ス(EVSRC)43及び奇数ソ−ス(ODSRC)44である。

0057

オルタ−ネイティブバスステ−ト(ABS)でアクセスされる偶数ソ−ス(EVSRC)40及び奇数ソ−ス(ODSRC)41には、それぞれ独立にマシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31が接続されている。これらのマシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31は、メインCPU部1から生成される信号(/ASEV)1252,信号(/ASOD)1254をそれぞれ受けて動作する。

0058

したがって、これらのオルタ−ネイティブバスステ−ト(ABS)用のマシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31側から観測すると、メインCPU部1はノ−マルバスサイクル(NBS)又はパイプラインバスステ−ト(PBS)42で動作しているかの様に見える。

0059

各マシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31は、対応する各ソ−ス(EVSRC)40,ソ−ス(ODSRC)41に対し、それぞれアドレス信号出力(OA)1286,1292、読み出しコマンド(/RD)1284,1290、書き込みコマンド(/WT)1283,1289、リソ−スイネ−ブル(/EN)1285,1291、そのリソ−スをアクセスしていることを示す信号等のアドレッシングや制御のためにリソ−スに対して必要な信号群を出力する。

0060

図3及び図4に示したように、各マシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31の内部では、アドレス信号(OA)1286,1292を生成するためのアドレスラッチイネ−ブル(EALE,OALE)を、対応するアドレスストロ−ブ信号(/ASEV)1252およびアドレスストロ−ブ信号(/ASOD)1254から生成している。図4及び図5に示したアドレスラッチイネ−ブル(ALE)のうち、アドレスラッチイネ−ブル(EALE)と(OALE)を図4において同じタイムチャ−ト上に記載しており、同一信号線上の信号の様に見えるが、実際にはアドレスラッチイネ−ブル(EALE)がソ−ス(EVSRC)40側のマシンステ−トコントロ−ラ(MSC−A)30で、アドレスラッチイネ−ブル(OALE)がソ−ス(ODSRC)41側のマシンステ−トコントロ−ラ(MSC−B)31で生成される。ソ−ス(EVSRC)40側のマシンステ−トコントロ−ラ(MSC−A)30では、アドレスラッチイネ−ブル(EALE)によりメインCPU部1側からの偶数アドレス(AE)をラッチし、次のアドレスラッチイネ−ブル(EALE)が生成されるまで2プロセッサクロック(PCLK)の期間アドレス信号(OA)1286にそのアドレス値を固定して出力する。また、ソ−ス(ODSRC)41側のマシンステ−トコントロ−ラ(MSC−B)31でも同様に、アドレスラッチイネ−ブル(OALE)により奇数アドレス(AO)をラッチして、奇数アドレス(OA)1292にそのアドレス値を2プロセッサクロック期間固定して出力する。リソ−スからは、アクセスタイムが満足され、デ−タの入出力動作を終了しても良いことを示すレディ信号(RDY)1282,1288を、対応するマシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31に返送する。マシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31は、その入力(ERDY)1282,1288がアクティブになると、その情報を利用して、メインCPU部1側のバスサイクルを終了させるため、レディ信号(/RDY信号)1253,1255をアクティブにする。

0061

図3及び図4に示すように、オルタ−ネイティブバスステ−ト(ABS)動作には、オルタ−ネイティブバスステ−ト(ABS)用のマシンステ−トコントロ−ラ(MSC−A,MSC−B)30,31からオルタ−ネイティブバスステ−ト(ABS)動作のためのアクティブなリクエスト信号(REQ)1251をメインCPU部1の端子(ABSREQ)に入力に送る。メインCPU部1は、端子(ABSREQ)が非アクティブに戻るまでオルタ−ネイティブバスステ−ト(ABS)モ−ドで動作する。この方式を採れば、リソ−ス側のマシンステ−トコントロ−ラ(MSC)がオルタ−ネイティブバスステ−ト(ABS)モ−ドで動作可能か否かの情報をリアルタイムでメインCPU部1側に知らせることができるので、様々なアクセスモ−ドで動作するリソ−スが混在してもメインCPU部1はダイナミックにアクセスモ−ドを変更し、対応することができる。同様に、本発明の実施例では、後述するバ−ストバスステ−ト(BBS)についても対応するリクエスト(BBSREQ)1261を、リソ−ス側のマシンステ−トコントロ−ラ(MSC−C)32がメインCPU部1側に返送する方式を採っている。

0062

本システムにおいて、オルタ−ネイティブバスステ−ト(ABS)モ−ドで動作するリソ−スは、主記憶、共有システム等でありリソ−ス全体の約90%(バ−ストバスステ−ト(BBS)で動作するものも含める)を占める。

0063

バ−ストバスステ−ト(BBS)によるアクセスは、マシンステ−トコントロ−ラ(MSC)が1つでも実現できる。これは、オルタ−ネイティブバスステ−ト(ABS)と異なり、バ−ストバスステ−ト(BBS)では連続したアドレス値に対してアクセスしていくため(ランダムアクセスではないため)、偶数ソ−ス(EVSRC)43の選択か、奇数ソ−ス(ODSRC)44の選択かを示すイネ−ブル信号(/AEV)1267,イネ−ブル信号(/AOD)1270、読み出しコマンド(/REV)1266,読み出しコマンド(/ROD)1269や書き込みコマンド(/WEV)1265,書き込みコマンド(/WOD)1268を用いて偶数ソ−ス(EVSRC)43か奇数ソ−ス(ODSRC)44かの選択を行いさえすれば良く、その他のアドレス出力情報は一本化できるからである。すなわち、上位のアドレス情報としては、偶数ソ−ス(EVSRC)43,奇数ソ−ス(ODSRC)44とも同一のアドレス出力(OA)1271を用いることができる。

0064

バ−ストバスステ−ト(BBS)は、オルタ−ネイティブバスステ−ト(ABS)と同様に、メインCPU部1からのアクセスに対応してマシンステ−トコントロ−ラ(MSC−C)32がバ−ストバスステ−ト(BBS)モ−ドで動作することをメインCPU部1に知らせるリクエスト信号(REQ)1261を出力する。メインCPU部1は、そのREQ信号1261を端子入力(BBSREQ)で受けて、バ−ストバスステ−ト(BBS)に対応するバスサイクルタイミングを生成し、リソ−スをアクセスする。

0065

バスサイクルの終了は、マシンステ−トコントロ−ラ(MSC−C)32からのレディ信号(/RDY)1262(図中メインCPU部1の端子(/RDY0)に入力)の返送により行う。

0066

一般的な2プロセッササイクルバスであるノ−マルバスステート(NBS),パイプラインバスステ−ト(PBS)は、汎用I/Oシステムや汎用メモリストレジシステム、システム共有I/Oバス等へのアクセスに用いる。バスバンドはオルタ−ネイティブバスステ−ト(ABS)やバ−ストバスステ−ト(BBS)に比べると、最大値で約半分(本システムでは例えばプロセッサクロック(PCLK)の周波数が32MHzのとき64Mbytes/s)となるが、アクセス期間をより長く確保できる点(特にパイプラインバスステ−ト(PBS))では有利である。また、ランダム性が非常に高いリソ−スをアクセスする場合には、実効バスバンド幅でオルタ−ネイティブバスステ−ト(ABS)に対して相対的に67%程度を確保できたことになり、ABSによるバスバンド幅の最大値と比較した場合の50%よりも実質的にはかなりよい値を示す。

0067

ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)でアクセスされるリソ−ス(SRC)42に対し、マシンステ−トコントロ−ラ(MSC−D)33が出力する一般的な制御信号/選択信号として、デ−タの読み出しや書き込みを指令する各種コマンド(PCMND1275,PACMND1276,CMND1277),SRC内(42)のアクセスすべきアドレスを指定するアドレス信号及びソ−ス(SRC)42の選択信号(A,EN,PAA,PAEN,PA,PEN)等がある。また、マシンステ−トコントロ−ラ(MSC−D)33は、アドレス信号やアドレス信号からデコ−ダ(DEC)45によってデコ−ドされた選択信号(EN)1274をゲ−トラッチ(GL)46,47,48により,ラッチ処理(ゲ−トラッチタイプのクリップフロップ(GL)等によりノ−マルバスステ−ト(NBS)やパイプラインバスステ−ト(PBS)に合ったタイミングに入力された信号を調整して出力する処理)するためのアドレスラッチイネ−ブル信号(PALE1281,PAALE1280,ALE1279)を出力する。ラッチ処理用のゲ−トラッチ(GL)46,47,48は、アドレスラッチイネ−ブル信号でゲ−トされた後の前記アドレス信号や選択信号を、ソ−ス(SRC)42に出力する。

0068

ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)用のマシンステ−トコントロ−ラ(MSC−D)33は、メインCPU部1からノ−マルなアドレスストロ−ブ信号(/AS)1259を受け、図4に示したノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)に対応するバスサイクルタイミングを生成する。パイプラインバスステ−ト(PBS)とノ−マルバスステート(NBS)の違いは、図4に示したように、バスステ−トの先頭で既にアドレスストロ−ブ信号(/AS)がアクティブになっている(PBS)か否か(NBS)で決まる。

0069

バスステ−トの終了は、まずリソ−ス(SRC)42からのRDY信号1278をマシンステ−トコントロ−ラ(MSC−D)33が受け、バスステ−ト及びプロセッサクロック(PCLK)に同期させて適切なタイミングでマシンステ−トコントロ−ラ(MSC−D)33がレディ信号(/RDY)1260をメインCPU部1の入力端子(/RDY1)に返送することによって行う。

0070

レディ信号(/RDY)(/RDY01262,/RDY11260,/RDYEV1253,/RDYOD1255)がアクティブになると、それらの情報からメインCPU部1は最終的な/CPURDY信号1256は各マシンステ−トコントロ−ラ(MSC−A〜D)31〜34の端子(/READY)に入力され、端子(/READY)がアクティブになると、マシンステ−トコントロ−ラ(MSC)は内部のバスステ−トを終了する。その時点でアドレスストロ−ブ信号(/AS)がアクティブになっていれば、自動的にパイプラインバスステ−ト(PBS)モ−ドで、アドレスストロ−ブ信号(/AS)が非アクティブであれば、ノ−マルバスステ−ト(NBS)モ−ドで次のバスサイクルを開始する。

0071

マシンステ−トコントロ−ラ(MSC−D)33からのALE信号1279は、ノ−マルバスステ−ト(NBS)時のアドレスラッチイネ−ブル信号であり、ノ−マルバスステ−ト(NBS)に入ってからアドレスストロ−ブ信号(/AS)の立上りエッヂを使って直接生成する。

0072

従って、ALE信号はアドレスストロ−ブ信号(/AS)に対して僅かに遅延したタイミングでアクティブになる。PALE信号1281はパイプラインバスステ−ト(PBS)時のアドレスラッチイネ−ブル信号であり、先行して出力されているアドレスストロ−ブ信号(/AS)のアクティブレベルと、プロセッサクロック(PCLK)の立上りタイミングを用いてパイプラインバスステ−ト(PBS)の開始タイミングから1/4プロセッサクロック(PCLK)遅延してアクティブになる。PALE信号1281は、1つ前のバスサイクルにおけるソ−ス(SRC)42に対するアドレス、選択信号(A,PA,PAA,EN,PEN,PAEN)1293,1294,1295やデ−タ入出力(D)1272のホ−ルドタイムを保つ必要がある場合に用いる。

0073

PAALE信号1280もパイプラインバスステ−ト(PBS)におけるアドレスラッチイネ−ブル信号であり、先行して出力されるアドレスストロ−ブ信号(/AS)1259のアクティブレベルと、プロセッサクロック(PCLK)1250の立上りタイミングを用いてパイプラインバスステ−ト(PBS)の開始タイミングとほぼ同時にアクティブになる。ソ−ス(SRC)42に対するアドレス、選択信号やデ−タ入出力のホ−ルドタイムがそれ程厳しくない場合には、PAALE信号1280を用いることにより、バスサイクル期間(2プロセッサクロック(PCLK)期間)を最大限に利用してソ−ス(SRC)42にアクセスすることができる。ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)におけるアドレスラッチイネ−ブル信号の出力タイミングは、図4に示したとおりである。

0074

オルタ−ネイティブバスステ−ト(ABS)やバ−ストバスステ−ト(BBS)では、ソ−ス(EVSRC)40及びソ−ス(ODSRC)41とのデ−タのやりとりのためにそれぞれ32bitずつのデ−タバス入出力バスを用意して等価的に64bitバスに相当するバスバンド幅を実現しているが、ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)では単純な32bitデ−タバスでソ−ス(SRC)42にアクセスすることができる。このため、バスシステムの低コスト化及び標準化が行い易く、汎用デバイスの接続も容易である。

0075

図3に示すシステムでは、各マシンステ−トコントロ−ラ(MSC−A〜D)30〜33がクロック生成ユニット(CLKGT)49より基準となるシステムクロック(SCLK0)1263,システムクロック(SCLK1)1273,システムクロック(SCLK2)1287を直接受けて動作する。クロック生成ユニット(CLKGT)49はシステムのリセット機能とプロセッサクロック(PCLK)のSCLKに対する位相を決定するタイミングを与える機能とを有するシステムセット信号(SRES)1264も出力する。このシステムセット信号(SRES)1264はシステムクロック(SCLK)に同期化して出力され、メインCPU部1内のマシンステ−トコントロ−ラ(MSC)34に入力される。

0076

メインCPU部1内のマシンステ−トコントロ−ラ(MSC)34では、クロック生成ユニット(CLKGT)49からのシステムクロック(SCLK)とシステムセット信号(SRES)の立上りタイミング(アクティブ遷移タイミング)とを用いてプロセッサクロック(PCLK)の位相を決定し、端子(PCLKOUT)1250に出力する。この端子(PCLKOUT)1250は、他の各マシンステ−トコントロ−ラ(MSC−A〜D)30〜33のプロセッサクロック(PCLK)入力に送られる。そこで、システムクロック(SCLK)とマシンステ−トコントロ−ラ(MSC)内部のプロセッサクロック(PCLK)との位相関係を決定するのに使用される。

0077

このような同期化方法により、各マシンステ−トコントロ−ラ(MSC−A〜D)30〜33は、同一の位相を有したプロセッサクロック(PCLK)を内部的に生成でき、クロック生成ユニット(CLKGT)49からのシステムクロック(SCLK)と組み合わせることによって、1/2システムクロック(SCLK)単位のきめ細かな多相クロック制御が可能となる。

0078

上述したように、本実施例では、オルタ−ネイティブバスステ−ト(ABS)、バ−ストバスステ−ト(BBS)、ノ−マルバスステ−ト(NBS)、パイプラインバスステ−ト(PBS)等のバスサイクルが混在して動作することができる。 ここでは、通常のバスサイクルまたはバスステ−ト(NBS、PBS、BBS)は通常のアドレスストロ−ブ(/AS)1259で生成し、レディ信号(/READY)1256で終了する。

0079

一方、ノ−マルバスステ−ト(NBS),パイプラインバスステ−ト(PBS)と区別するため、オルタ−ネイティブバスステ−ト(ABS)とバ−ストバスステ−ト(BBS)はリソ−スからメインCPU部1へバスサイクルリクエスト(ABSREQ1251、BBSREQ1261)を送ることによって、メインCPU部1が生成すべきバスサイクルを判断し、適切なバスサイクルを生成する。

0080

しかし、システム構成(リソ−スの物理アドレス空間への割付け等)が明確になれば、どのアドレス空間をどのバスサイクルでアクセスすれば良いかが決まるため、メインCPU部1内に予めリソ−スの割り付け情報プログラムしておけば、バスサイクル識別情報をリソ−スからメインCPU部1へ送る必要が無くなる。

0081

また、外部でバスサイクル識別情報を生成する場合には、外部にメインCPU部1からアドレス情報が生成されてからそれをリソ−ス側でデコ−ドする必要が生じ、メインCPU部1に識別情報を返送するまでの遅れ時間が大きく、タイミング的に不利である。一方、メインCPU部1側でリソ−スの割り付け情報を持てば、メインCPU部1内のアドレス生成ステ−ジ(アドレッシング処理時)で平行してアドレス値をデコ−ドすることが可能となるため、生成すべき適切なバスサイクルまたはバスステ−トをその時点で先行的に判断することができる。従って、より効率の良いバスサイクル生成制御が可能となる。

0082

クロック生成ユニット(CLKGT)49は、システム全体の動作の基準となる基準システムクロック(SSCLK)1296と基準リセット信号(/SRESET)1297を受けて、それらの基準信号からシステムセット信号(SRES)1264,システムクロック(SCLK0〜2)1263,1273,1287を生成する。

0083

複数のメインCPU部1又はベ−スプロセッサ(BP)が存在する場合は、中央に基準システムクロック(SSCLK),基準リセット信号(/SRESET)を生成するシステムクロック生成ユニット(CLKGT)を設け、そこで、基準リセット信号(/SRESET)を基準システムクロック(SSCLK)で同期化して各プロセッサのシステムクロック生成ユニット(CLKGT)へ送る。

0084

これにより、さらに基準リセット信号(/SRESET)をシステムクロック(SCLK)(基準システムクロック(SSCLK)より生成)によって同期化して、各プロセッサ間で同じ位相を有したシステムセット信号(SRES)を生成する事が出来るため、すべてのプロセッサを同位相のプロセッサクロック(PCLK)により運転できる。

0085

その他、メインCPU部1から出力され、各マシンステ−トコントロ−ラ(MSC)に入力されている信号C1258は、コントロ−ル情報を伝達する信号(コントロ−ル信号)である。具体的には、メインCPU部1の動作状態やバスサイクルのステ−タス情報をメインCPU部1の外部に知らせる役割を果たす。例えば、現在動作しているバスサイクルまたは次に生成しようとしているバスサイクルやバスステ−トが、リ−ドサイクルか、命令フェッチサイクルかデ−タフェッチサイクルか、さらには、インタラプトサイクルやホ−ルトサイクル等のスペシャルバスサイクルか、等の情報をコントロ−ル信号C1258は外部に知らせる。

0086

メインCPU部1は内部パイプラインのアドレッシング処理ステ−ジでアドレス(ADDR)1257,アドレスストロ−ブ(/AS)1259等を外部に出力する。従って、次に続くメインCPU部1の演算実行ステ−ジと並行して各マシンステ−トコントロ−ラ(MSC−A〜D)30〜33はバスステ−トを生成することが可能となる。すなわち、メインCPU部1からみると、パイプラインステ−ジが内部(演算実行)と外部(バスステ−トによる外部リソ−スアクセス)に分散して並列に進行していく(並列パイプライン動作)様に観測される。メインCPU部1の内部動作は後で詳細に述べる。

0087

このように、リアルタイムバスシステムではバスサイクルによる外部リソ−スアクセス動作を、完全にメインCPU部1内のパイプライン動作と一体化(パイプラインに組み込んだのと同等)してアクセス動作のレイテンシを短縮し、リアルタイム性能の向上を図っている。

0088

本実施例では、前述したように、リソ−ス側のマシンステ−トコントロ−ラ(MSC)が、どのアクセスモ−ド(ABS,BBS,NBS,PBS等のモ−ド)で管理下のリソ−スをアクセス可能なのかという情報(本例では、バスサイクルリクエストABSREQ、BBSREQ等がそれに当たる)をメインCPU側に返送する。

0089

これにより、異なったアクセスモ−ドに対応するリソ−スが混在しても、メインCPU部1がダイナミックに適切なアクセスモ−ドでバスサイクルを生成することによって、システム全体のデ−タ処理スル−プットを向上させることができる。ここでは、アクセスモ−ドをメインCPU部1に対して知らせる機能をリソ−ス側に持たせる方式を示したが、メインCPU部1が外部に対して生成する物理アドレスに対応して、外部ソ−スの割り付けが決まってしまえば、その物理アドレスをメインCPU部1内でデコ−ドすることにより、割り付けられているリソ−スを予め判定しておく機能をメインCPU側に設けることができる。すなわち、予め、物理アドレスの特定のエリアに割り付けられたリソ−スがどのアクセスモ−ド(例えばオルタ−ネイティブバスステ−ト(ABS)モ−ド)に応答するのかを、予めプログラムしておける様なメモリ手段をメインCPU部1内に設け、メインCPU部1内でのアドレッシング処理時に、そのプログラムされた割り付け情報と生成しようとしている物理アドレス値とを比較する手段を用意しておけばよい。そして、バスサイクル実行時において、アドレスを出力する時までにアクセスモ−ドを判定しておけば良い。

0090

これにより、メインCPU部1内のバスサイクルの管理及び生成用のマシンステ−トコントロ−ラ(MSC)は、直接必要なアクセスモ−ドを判定し、対応するバスサイクルを生成することが可能となる。この方法を採れば、リソ−ス側で物理アドレスをデコ−ドする時間及びアクセスモ−ドを指定するリクエスト信号(本例ではABSREQ、BBSREQ)をメインCPU部1に返送するまでの遅延時間や、それらの同期化や獲得にかかるメインCPU部1側のオ−バ−ヘッドを除去できるので、より早いタイミングで目的とするアクセスモ−ドに移行でき、非常に効果的である。

0091

なお、以上で述べた各バスステ−ト(NBS,PBS,BBS,ABS)は、リアルタイムバスシステムでサポ−トしているバスサイクルと等価であると考えて良い。今後リアルタイムバスシステムにおいて単にバスサイクルと記した場合は、NBS,PBS,BBS,ABSのいずれかに基づく外部リソ−スへのアクセスバスサイクルを指し、単にバスステ−トと記した場合は、バスサイクルの基本単位、すなわち本例ではプロセッササイクル(1PCLK期間)を指すものとする。

0092

次に、メインCPU部1内の処理系の構造を図5に示す。

0093

メインCPU部1の処理系は、リアルタイムバスア−キテクチャ及びリアルタイムバスプロトコルをサポ−トするために必要な手段を全て含んでいる。

0094

図5に示したメインCPU部1内の処理系の一例は、命令(インストラクション)デ−タリソ−ス1301がオペランドデ−タのリソ−ス(これを外部リソ−スと呼んでいる)と別々のパスから処理系に入力されてくるとし、その前提のもとで簡略化して表現している。実際に命令デ−タが存在する場所には、処理系内のプログラムメモリキャシュメモリも含む)、別に設けられた命令デ−タ入出力パスを介して結合した外部の命令デ−タメモリ、等が考えられる。いずれにしても、処理系に対して命令デ−タとオペランドデ−タとを並列に入出力できる手段を有し、並列に処理できることを前提としている。

0095

メインCPU部内の処理系は、大きく分けて、命令デ−タリソ−ス1301から命令をフェッチする命令フェッチユニット1302と、フェッチした命令に命令番号(INST.no.)を付ける命令番号生成ロジック1303と、命令をデコ−ドする命令デコ−ドユニット1304と、オペランドをデコ−ドするオペランドデコ−ドユニット1305と、デコ−ドされた命令を実行可能な形式に直し、処理対象となるソ−スレスタ及び処理結果を蓄えるデスティネ−ションレジスタの番号と共に時系列的に蓄えていくデコ−デッド命令キュ−1308と、オペランド情報をアドレッシング処理が可能な形式に直して時系列的に蓄えておくオペランドインフォメ−ションキュ−1306と、デコ−デッド命令キュ−1308から命令を読み出しその命令を実行していく実行ユニット1310と、オペランドインフォメ−ションキュ−1306からオペランド情報を読み出しそれに基づいてアドレッシング処理を実行していくアドレッシングユニット1312と、実行ユニット1310が処理対象として指示されているソ−スまたはデスティネ−ションレジスタ群を格納しているレジスタファイル1311と、及びアドレッシングユニット1312からのアドレッシング情報に基づいて外部に存在するリソ−スとのオペランドデ−タとの入出力を制御する(リアルタイムバスシステムを実際に駆動し、内部処理系との間のオペランドデ−タの入出力を行う)バス制御ユニット(LD/STRユニット1315、アドレス出力バッファ1316、偶数アドレスMSC1317、奇数アドレスMSC1318、デ−タ入出力バッファ1319、オペランドデ−タキュ−1320)とを有している。

0096

従来の処理系(CPU)と大きく異なるのは、命令フェッチユニット1302がプリデコ−ド機能を持ち、命令の切れ目を認識して各命令が処理されるべき順に命令番号生成ロジック1303が命令番号(INST.no.)を付していく点と、プリデコ−ドされ命令番号を付された命令列を命令デコ−ドユニット1304、及びオペランドデコ−ドユニット1305の2つのデコ−ドユニットで手分けして並列にデコ−ドしていく点である。

0097

付された命令番号は、後述するように処理系内の各ユニットを並列に動作させたとき、全体として、処理シ−ケンスに矛盾が生じないように制御するための情報として利用される。命令デコ−ドユニット1304では、実行ユニット1310で実行する命令だけを選別して解析し、実行可能な命令コ−ドに直し、デコ−デッド命令キュ−1308に送る。デコ−デッド命令キュ−1308に送られる解析済みの命令コ−ドには命令番号(INST.no.)も含まれており、主としてレジスタを対象とした命令を中心に、単純なロ−ド/ストア命令(外部とメインCPU部内との間でデ−タの移動処理を行う命令)を除く、演算命令及びデ−タ操作命令が選別され蓄えられる。

0098

一方、オペランドデコ−ドユニット1305では外部リソ−スに対しバスシステムを介してアクセスする必要がある命令だけがロ−ド命令、ストア命令として選別され、ロ−ドかストアかの属性と対象となるオペランドデ−タの存在するアドレス生成情報及び命令番号(INST.no.)とを、オペランド情報として、オペランドインフォメ−ションキュ−1306に送る。ここで選別され、デコ−ドされるロ−ド/ストア命令には、前述したもともと単純なもの(外部とメインCPU部内との間で単にデ−タの移動のみを行う命令)と、外部のデ−タに対して演算処理又はデ−タ操作を伴う命令からロ−ド/ストア処理のみを抜き出したもの(他の演算処理又はデ−タ操作処理部分は前述した命令デコ−ドユニットで解析され、実行ユニットで処理される)とがある。

0099

いずれにしても、外部とメインCPU部間でのデ−タの移動処理というレベルで同等に扱える単位にここで直されることになる。オペランドインフォメ−ションキュ−1306の情報は、アドレッシングユニット1312が受け取り、オペランドデ−タに関するアドレス情報からオペランドデ−タの存在する物理アドレスを計算するアドレッシング処理と、ロ−ド/ストア命令を実行するためのロ−ド/ストア制御信号を生成する。すなわち、従来の処理系では実行ユニットで行っていたロ−ド/ストア命令を、本発明ではアドレッシングユニット1312と、ロ−ド/ストアユニットを含むバス制御ユニット1315〜1320とが連携して、実行ユニット1310と並列に行うことにより全体の処理効率を向上させている。

0100

次に、上述した実行ユニット1310とアドレッシングユニット1312、バス制御ユニット1315〜1320との並列動作制御について詳しく述べる。

0101

オペランドインフォメ−ションキュ−1306からアドレッシングユニット1312に送られてくるロ−ド/ストア命令に関する情報には、前でも述べたように、元来の命令そのものが単なるロ−ド/ストア命令であるものと、実行ユニット1310で処理する1つのソ−スデ−タまたは処理した1つのデスティネ−ションデ−タをハンドリングするためのロ−ド/ストア処理との2種類がある。

0102

ロ−ド/ストア処理は、アドレッシングユニット1312とロ−ドストア処理ユニット(LD/STRユニット)1315及びバス制御ユニット1316〜1320が協調して実行し、上述した2種類のロ−ド/ストア処理の処理内容に関して区別する必要性は、ほとんどない。しかし、実際には後者のロ−ド/ストア命令の場合、実行ユニット1310とアドレッシングユニット1312で、元来1つの命令、すなわち、外部リソ−スへのデ−タアクセスを伴う命令が、手分けされて実行されることになる。

0103

したがって、外部リソ−スからのデ−タを実行ユニット側1310で使用する命令(外部リソ−スからメインCPU部内へのデ−タのロ−ド処理を伴う命令)では、アドレッシングユニット1312及びロ−ド/ストアユニット1315でのロ−ド処理が、実行ユニット1310側での対応する命令処理より遅れている場合には、そのロ−ド処理が終了して、リソ−スからのデ−タを実行ユニット1310が使用できる状態になるまで、必然的に実行ユニット1310はそのタ−ゲットデ−タに処理を加えることができない。

0104

一方、実行ユニット1310での命令処理が、アドレッシングユニット1312でのロ−ド処理より遅れている場合には、実行ユニットが命令を実行する時その命令に伴うロ−ド処理はすでに終了しており、デ−タバッファ1319やオペランドデ−タキュ−1320を介して、外部デ−タメモリ(M)1309に目的のデ−タが入力されている。

0105

従って、そのデ−タMを用いて、実行ユニットは目的の処理を実行すれば良く、待たされることはない。このようなインタロック処理は、アドレッシングユニット1312と実行ユニット1310との間にシ−ケンス比較ロジック1314を設け、2つのユニット間での命令処理の進行状況を管理することにより実現する。

0106

命令番号生成ロジック1303で生成された命令番号は、各ユニットを命令処理情報と共に転送され、最終的に実行ユニット1310とアドレッシングユニット1312に至り、シ−ケンス比較ロジック1314は、この2つのユニットで実行中の命令番号を比較することによって、命令処理の先行関係をチェックする。

0107

また、一方、アドレッシングユニット1312が外部リソ−スに対してストア処理(本例では、メインCPU部内のレジスタファイル外部リソ−スへのデ−タの移動処理のことをストア処理と定義しておく)を行う場合、ストア処理の対象となるレジスタファイル1311上のデ−タ(ソ−スデ−タ)が処理シ−ケンスに対して矛盾なく確定している必要がある。そのための条件は、対象となるストア処理の命令番号aが、その時点で実行ユニット1310にて実行されている命令の命令番号eより小さな値である(a<e;実行ユニット1310の処理がアドレッシングユニットでの処理より先に進んでいる)か、または、a≧eの場合、デコ−ド命令キュ−1308に蓄えられている命令番号e〜a(無い命令は除く)に対応する命令の対象とするデスティネ−ションレジスタがすべて前記アドレッシングユニット1312で実行されるストア処理が対象としているソ−スレジスタと同一のものでないことである。

0108

すなわち、e〜aの命令を実行ユニットが処理する際、ストア処理の対象となるソ−スレジスタを書き替える可能性が無い場合、ストア処理ユニット1315はレジスタファイルから任意にデ−タを読み出して、外部リソ−スにデ−タ入出力バッファ1319を介して出力することができる。

0109

上記の条件が満たされている限り、実行ユニット1310の動作と並列に、アドレッシングユニット1312及びロ−ド、ストアユニット1315を含むバス制御ユニット1316〜1320を動作させることができることになる。これについても、前述したシ−ケンス比較ロジック1314により、命令番号の比較を行うことによって、必要なインタ−ロック処理を実現することができる。

0110

また、前述した、デスティネ−ションレジスタとソ−スレジスタの間のチェックは、デコ−ド命令キュ−1308内のデスティネ−ションレジスタキュ−の内容(このキュ−内には、実行ユニットの処理結果を格納するレジスタの番号が、命令キュ−内の各命令に対応する形で格納されている)と、アドレッシングユニット内で用いられるソ−スレジスタ番号(ストア処理でもこのレジスタがソ−スレジスタとして用いられる)とを比較するレジスタ番号比較ロジック1313を設けて実現している。

0111

バス制御ユニット内のアドレス出力バッファ1316は、アドレッシングユニットからの物理アドレス値を蓄えておき、偶数アドレスマシンステ−トコントロ−ラ(MSC)1317と奇数アドレスマシンステ−トコントロ−ラ(MSC)1318とで生成されたアドレスストロ−ブ信号(/ASEV、/ASOD)等のバス制御信号と同期しながら、時系列的に蓄えられているアドレス信号及びコントロ−ル信号を外部に対して出力していく機能を有する。アドレス値等の出力タイミングはすでに述べたように、図2及び図4に示したバスサイクルプロトコルに従う。

0112

アドレッシングユニット1312は、MSC1317、MSC1318及びアドレス出力バッファ1316に物理アドレス情報(P-Address)を与え、それが受け取られると、MSC1317及び1318からアクティブなアドレスレディ信号(ARDY)を受信して、次のアドレス情報の出力処理を開始する。もし、次に出力すべき有効なアドレス情報の計算処理がアドレッシングユニット1312内で終了していなければ、その処理が終了されると直ちにアドレス情報の出力処理を行う。アドレッシングユニット1312から出力されるアドレス情報が有効/無効に関しては、アドレスイネ−ブル信号AENEV(偶数アドレス用)、及びAENOD(奇数アドレス用)のアクティブレベルをMSC1317、1318内で検知して、そのアドレス情報が有効であることを判断する。MSC1317、1318が外部に対してアドレスストロ−ブ信号(/ASOD,/ASEN)を出力してバスサイクルを開始した後、そのバスサイクルを外部リソ−ス側に対して適切な時刻に終了するためには、一般的に外部リソ−ス側からバス終了許可信号に相当するアクティブなレディ信号(/RDYOD,/RDYEV)を受け取る必要がある(バスサイクルの期間が常に一定であればレディ信号は必要ない)。アドレスストロ−ブ信号(/AS)を生成して、バスサイクルを開始したMSCは、レディ信号(/RDY)がアクティブになったバスステ−トの最後でそのバスサイクルを終了し、次のバスステ−トの先頭から次のバスサイクルを開始することが許される。図5に示すように、偶数及び奇数の2種類のアドレス値に対してバスサイクルを振り分ける場合、通常物理アドレス値の最下位ビットが1(奇数)か0(偶数)かで判別すればよい。最下位ビットに限らず、目的に応じてアドレス値中の任意の1ビットを判断ビットとして用いることにより、本例のような2つのアドレスストロ−ブ信号を用いる方式では最も容易にかつ高速に(前記判断処理におけるオ−バ−ヘッドが最小である)オルタネ−ティブバスサイクル(ABS)を実現できることがわかる。

0113

より多くのアドレスストロ−ブ信号を生成することにより、より多くのバスサイクルに振り分けられたオルタネ−ティブバスステ−ト(ABS)の実現例については、あとで詳しく述べることにする。

0114

デ−タ入出力バッファ1319も、マシンステ−トコントロ−ラ1317、1318からの同期信号やバスコマンド信号(バスサイクルがアクティブな期間や、デ−タを入力するタイミング、デ−タを出力するタイミングを規程する信号)を用いて、図2及び図4に示したバスサイクルプロトコルに従い、外部とのデ−タの入出力処理を行う。

0115

入力されたデ−タは、オペランドデ−タキュ−1320に蓄えられ、ロ−ド/ストアユニット1315が適切なタイミングで、レジスタファイル1311の対象となるレジスタ又は実行ユニット1310内のオペランドメモリ(M)1309に書き込む(デ−タロ−ド動作)。レジスタファイル又はMにデ−タを書き込み終えると、オペランドデ−タキュ−1320は、ロ−ド/ストアユニット1315からの指令で、蓄えられている次のデ−タを出力するか又は、蓄えられているデ−タが存在しない場合は空情報(Empty)をロ−ド/ストアユニット1315に返送する。また、デ−タ入出力バッファ1319がデ−タを外部からフェッチしたとき、すでにロ−ド/ストアユニット1315がレジスタファイルへのデ−タの書き込み処理を開始していた場合、フェッチされた入力デ−タはオペランドデ−タキュ−1320を透過(パス)して、直接レジスタファイル1311又はオペランドメモリ1309に至り、ロ−ド/ストアユニット1315によってそれらに書き込まれる。これをパスモ−ドと呼ぶ。ロ−ド/ストアユニット1315がオペランドデ−タキュ−1320からデ−タをフェッチ使用としたとき、オペランドデ−タキュ−1320が空状態(オペランドデ−タキュ−1320からの空情報によって知ることができる)であれば、ロ−ド/ストアユニット1315はデ−タ入出力バッファ1319から入力デ−タがパスされてくるまで待つ。

0116

外部へデ−タを出力する場合は、ロ−ド/ストアユニット1315がレジスタファイル1311の対象とするレジスタからデ−タを読み出し、デ−タ出力バッファ1319に引き渡し、出力デ−タがアクティブであることも同時に知らせる。

0117

レジスタファイル1311とデ−タ入出力バッファ1319の間にライトバッファ1312を設けて、一度そこにレジスタファイル1311から読み出したデ−タを蓄えておき、デ−タ入出力バッファ1319が、外部へのデ−タを出力できる条件が揃った時点で、ライトバッファ1312からデ−タを読み出して外部へ出力するように構成することも可能である。この場合も、オペランドデ−タキュ−1320の場合と同様、パスモ−ドを設けておくと、デ−タ出力時のレイテンシを小さくすることができる。

0118

ロ−ド/ストアユニット1315は、アドレッシングユニット1312からの指令に基づいて動作する。すなわち、アドレッシングユニット1312は、外部への入出力処理が発生すると、アドレス値の計算及びバスサイクルの生成処理を実行すると共に、レジスタ番号比較ロジック1313とシ−ケンス比較ロジック1314の情報を基にして、レジスタファイル1311とのデ−タの入出力が可能となった時点で、ロ−ド/ストアユニット1315に対し、入出力対象となるレジスタ番号(DSEL1:デスティネ−ションレジスタ番号、SSEL1:ソ−スレジスタ番号)又はオペランドメモリ1319を指示する。それを受けて、ロ−ド/ストアユニット1315は、必要なデ−タ入出力シ−ケンスを生成する。

0119

レジスタファイル1311は、3つのユニットすなわち、アドレッシングユニット1312、実行ユニット1310及びロ−ド/ストアユニット1315から並列にアクセスすることが可能である。アドレッシングユニット1312は、自身のアドレッシング処理に使用するベ−スレジスタやインデックスレジスタを、ソ−スレジスタとしてレジスタ番号(ASEL)で指定し、そのレジスタから読み出した値をAOUT出力より得る。

0120

実行ユニット1310は、処理対象となるレジスタをソ−スレジスタとして、レジスタ番号(SSEL0)で指定し、結果デ−タを格納するレジスタをデスティネ−ションレジスタとして、レジスタ番号(DSEL0)で指定する。実行ユニット1310は、レジスタ番号(SSEL0)に対応してDOUT0出力からソ−スデ−タを読み出し、必要な処理を実行した後、DIN0入力を介して処理結果をDSEL0で指定したレジスタにデスティネ−ションデ−タを格納する。ロ−ド/ストアユニット1315は、レジスタ番号(SSEL1)によってストア処理の対象となるソ−スデ−タの内容をDOUT1出力より読み出し、DSEL1によって選択されたロ−ド処理の対象となるデスティネ−ションレジスタへ、ロ−ドすべきデ−タをDIN1を介して書き込む。

0121

図6に、図5に示したメインCPU部内部の動作シ−ケンスを示す。

0122

基準クロックとして、システム基本クロックであるSCLK(同期ts)と、その倍の周期(tp)でシステム基本クロック(SCLK)に同期して規定されるプロセッサクロック(PCLK)を設けている。命令フェッチ&プリデコ−ダ1302、1303、命令デコ−ダ1304、オペランド情報デコ−ダ1305、命令キュ−1308、オペランド情報キュ−1306、実行ユニット1310、アドレッシングユニット1312等は、全てシステム基本クロック(SCLK)の周期(ts)単位で動作する。実行ユニット1310は、単純な命令(加算、減算、論理演算等)を1システム基本クロック(SCLK)単位で実行し、その他の複雑な命令をシステム基本クロック(SCLK)のn倍の周期で実行する。

0123

アドレッシングユニット1312は、基本的にシステム基本クロック(SCLK)の単位でアドレスを生成するが、単純なアドレッシング処理(例えば、アドレッシングに加算または減算が1回〜2回程度)の場合、1システム基本クロック(SCLK)で実行可能であるが、複雑なアドレッシング処理の場合(例えば、加減算が3回以上含まれたり、乗算処理が含まれる場合)は11システム基本クロック(SCLK)分の処理時間がかかるとしている。バスサイクルの基本単位は、PCLKであることはすでに述べた。

0124

アドレッシング処理は、大半が加減算1〜2回程度で終了するため、システム基本クロック(SCLK)単位で動作している上述した他のユニット(直接にはオペランド情報キュ−)とリンケ−ジしてそこから得られた情報を基にアドレッシング処理を行い、バスサイクルに対し確定したアドレス値を出力するまでの処理をより早いタイミングで実行できる。

0125

従って、外部リソ−スからデ−タが得られる時刻も早くなり、実行ユニットが必要なデ−タを得られなくて待たされる確率を小さくできる。

0126

図6からも分かるように、本発明によれば、命令デコ−ダとオペランド情報デコ−ダのレベルで、2つの処理ストリ−ム(レジスタファイル1311又はオペランドメモリ1309を対象とした実行ユニット1310で処理されるべき演算処理又は操作処理のストリ−ムと、アドレッシングユニット1312とロ−ド/ストアユニット1315とによる外部へのアクセス処理のストリ−ム)に分離され、それ以後の処理を並列に実行できる。アドレッシング処理に関しては、上述したようなタイミングで先行処理され、2つのアドレスストロ−ブ(/ASE、/ASO)に合わせて、最高プロセッサクロック(PCLK)の周期で偶数アドレスマシンステ−トコントロ−ラ1317、奇数アドレスマシンステ−トコントロ−ラ1318により、外部リソ−スとのデ−タアクセス動作(オルタネ−ティブバスサイクル(ABS)モ−ドによるバスサイクル動作)を実現する。

0127

一方、実行ユニット1310での処理は、最小システム基本クロック(SCLK)周期(ts)、すなわち、1/2システム基本クロック(PCLK)の周期で行われるが、一般に、外部アクセスを伴う命令は前命令の1/2〜1/3であるため、外部デ−タのアクセス処理と実行ユニットでの処理の速度はほぼ最適な状態(2つの処理ストリ−ムの処理速度がほぼ等しいか又は外部デ−タアクセス処理の方がやや先行するぐらいが理想的)を保てることがわかる。

0128

次に、バス制御システムにおけるリ−ドサイクル(LD処理)とライトサイクル(STR処理)の競合制御とその高効率化について図5図6を基に検討する。処理効率低下の原因の代表例として、必要なデ−タの入力処理(LD)とそのデ−タを利用した実行ユニット1310での演算処理(E1)との間のインタ−ロック動作に伴う実行ユニット側のデ−タ待ちオ−バ−ヘッドが挙げられる。これは、図6のData1のロ−ド(LD)処理部分でも発生している。すなわち、必要なデ−タが外部から入力されないために、実行ユニット1310が待たされることによるメインCPU部の処理効率低下であり、図6の例では、実行ユニット1310でE1が開始されてから、3システムクロック(3×SCLK周期=1。5×PCLK周期)後に対応するData1が実行ユニット1310で利用可能となるため、その時点まで実行ユニット1310がData1に対する必要な処理を行えずに待たされてしまっている。

0129

さらに良く解析すると、Data1のロ−ド(LD)処理の前に2回のストア処理が実行されており、これを後回しにできれば、実行ユニット1310の動作を妨げないで処理を進められることがわかる。このような、リ−ドサイクル(LD処理)とライトサイクル(STR処理)の競合により、リ−ドサイクルが待たされ、それによって実行ユニット1310の効率が低下するのを防ぐため、アドレッシングユニット1312内に、ロ−ド(LD)処理に用いる物理アドレスを出力する順番とストア(STR)処理に用いる物理アドレスを出力する順番とを入れ替えて、ロ−ド処理に用いる物理アドレスをなるべく先行して出力していく機能を内蔵すると効果的である。

0130

先行するストア処理によってロ−ド処理が大幅に遅れてしまう場合を詳細に分析すると以下のとおりである。

0131

(1)プログラムを記述したユ−ザによる命令コ−ドの並び順の指定が、必要以上にストア命令を先行して指令していくシ−ケンスを生成してしまい、それが原因でロ−ド処理が後回しにされてしまう。

0132

(2) 結果デ−タが実行ユニット1310により所望のレジスタに返送される前に、そのレジスタから外部へ結果デ−タをストアするストア命令が実行が開始されてしまい、目的とする結果デ−タがレジスタに返送されるまでバスサイクルが凍結されてストア処理が終了できないことにより、次に実行すべきロ−ド命令が遅れ、さらにそれに伴い、そのロ−ド処理による外部デ−タを利用して実行する実行ユニット1310での処理が待たされてしまう。

0133

(1)に関しては、コンパイラのレベルで、オブジェクトコ−ドに矛盾が生じない範囲でロ−ド命令とストア命令を入れ替えていき、どうしても外部リソ−ス上に結果デ−タを格納(ストア)しておく必要が生じる位置までストア命令を後回しにするようにオブジェクトコ−ドファイル編集し直す方法も考えられる。

0134

これと同レベルの効果を得る機能を、図5に示したメインCPU部内にハ−ドウェアとして持たせる場合は、以下に示す機構のいくつかまたは全部をアドレッシングユニット1312やLD/STRユニット1315に設ける必要が生じる。

0135

a)ストア命令処理に対応する物理アドレス計算をアドレッシングユニット1312が開始した時点で、次に実行すべきロ−ド命令処理(次にロ−ド命令が存在すれば)に対応する物理アドレス値と前記ストア命令処理に対応する物理アドレス値とが異なっていれば、そのロ−ド命令処理に対応する物理アドレス値の出力を優先し、さもなくば、命令番号順に物理アドレス値の出力を実行していく。

0136

さらに、実行ユニット1310で処理中の命令番号(Inst.no.)と、アドレッシングユニット1312内のそのストア命令に対応する命令番号(Inst.no.)とをシ−ケンス比較ロジック1314にて比較した結果、実行ユニット1310の動作が、アドレッシングユニット1312の動作に比べて一定以内の遅れであるか、または実行ユニットの方が進んでいる場合に、次に実行すべきロ−ド命令処理に対応する物理アドレス値の出力を先行するように制御した方が、ストア処理が必要以上に後回しにされないので、より効果的であろう。

0137

アドレッシングユニット1312内に物理アドレスを計算する演算回路を複数用意して2つ分のアドレス計算処理を並列に実行させたり、図6に示したようなアドレッシング処理の空き時間(例えばADDR1とADDR3との間の1SCLK周期分)を使用して次の物理アドレス値の計算を実行しておけば、次のロ−ド命令に対応するアドレス値を早い時期に特定することが可能となる。

0138

図6の例ではADDR6やADDR9に代表されるような複雑なアドレス計算を行わない限り1SCLK周期でアドレス計算処理が実行できる(実行ユニット1310の基本演算処理時間と同等)ので、大半は並列に次のアドレス値の計算処理を進められることになる。また、並列にアドレス計算を進めるためには、基となるオペランド情報のデコ−ド処理もより高速に進めておく必要がある。

0139

従ってデコ−ド処理部分の処理サイクルも短縮しておき(例えば1/2SCLK周期にする)、先行してオペランド情報を生成できるように構成しておく方が望ましい。

0140

b)ストア命令処理を実行する際、その対象となるレジスタに所定の結果デ−タが実行ユニット1310からまだ返送されておらず、ストア処理が凍結されてしまった場合、そのストア処理に対応する物理アドレス値と、次に実行されるべきロ−ド命令処理またはストア命令処理に対応する物理アドレス値が異なれば、次に実行すべきロ−ド命令処理またはストア命令処理を先行して実行し、前記所定の結果デ−タが返送された後に前記凍結されているストア処理を実行する様に制御する機構を、アドレッシングユニット1312及びLD/STRユニット1315内に設ける。

0141

アドレス計算処理の並列化や次のアドレス計算の先行処理については、a)と同様である。

0142

c) a),b)とは別の方法で、アドレッシングユニット1310内に先行して計算された複数の物理アドレス値を蓄えておく物理アドレスキュ−を設け、そのキュ−の内容をチェックしてその中に含まれるストア命令に対応する物理アドレス値とロ−ド命令に対応する物理アドレス値とを比較して、それらが互いに異なるアドレス値を有していればロ−ド命令に対応する物理アドレス値を先行して出力するようにキュ−の内容を入れ替える機能をアドレッシングユニット1310内に設ける。この場合も、アドレス計算処理やデコ−ド処理をなるべく高速に先行処理しておく必要がある。

0143

以上のように、ロ−ド処理とストア処理の処理順を変更すると、メインCPU部全体の処理効率は向上するが、外部リソ−スに対するバスサイクルの生成順序にも変更が生じ、それが問題となる場合がある。例えば、I/O処理にはバスサイクルをスイッチング動作コマンド生成動作として用いている場合がかなりあり、これらは、手続き処理なので、スイッチングする順序やコマンドを生成する順序等が問題となる。この様な手続き処理には上述したバスサイクルの生成順序を入れ替える手法は用いることが出来ない。

0144

また、共有メモリ等、他のプロセッサが情報を読み出す可能性のある外部リソ−スでは、情報を早く外部リソ−ス上に格納(ストア)する方が優先され、必ずしもロ−ド処理をストア処理より優先して処理し、ストア処理を後回しにする方法は得策ではないといえる。従って、本手法によるメインCPU部の高効率化は、一般にロ−カルメモリに対してのみ用いるようにした方が良いであろう。

0145

そして、アドレッシングユニット1312内にも対象となるアドレス空間(例えばロ−カルメモリの割り付けられている空間)へのアクセスが発生したら、上述したロ−ド命令処理を優先するようにバスサイクルを入れ替える手法にて高効率化動作が実行できるように、対象アドレス空間を規定するレジスタと、対象空間内へのアクセスが生じたことをそのレジスタと(生成しようとしている物理アドレス値とを)比較することによって検出する回路を設けておくと良いであろう。

0146

次に、図7図8を用いて、オルタネ−ティブバスステ−ト(ABS)におけるバスサイクル間のインタ−ロック制御について詳細に述べる。

0147

バスサイクル間でインタ−ロック制御が必要となるのは、a)ABS時にはバスサイクルがオ−バ−ラップして生成されるため、1つしかないデ−タバス上で有効なデ−タの読み書きを実行する際にその読み書き期間のタイミングが重ならないように制御する必要がある、b)バスサイクルが生成される順番に対応して、メインCPUに入出力されるデ−タの順番に矛盾が生じないように制御する必要がある、等の理由からである。

0148

図7タイミング制御例は、バスサイクルのインタ−ロック制御を行う手法として、先行するバスサイクルが終了していない場合、アドレスストロ−ブ信号(/ASEV,/ASOD)のアクティブレベルの期間を引き延ばすことにより、そのことを外部リソ−ス制御用のMSC30、31に知らせる方式を採った場合である。基本的に、メインCPU部がインタ−ロック制御を行うことになり、その情報がアドレスストロ−ブ信号(/AS)だけを用いて外部に伝達されるため、信号のやりとりの本数が少なくなる。また、MSC30、31間での信号のやりとりも必要なく、MSCの独立性が高いことが特徴である。

0149

図3に示した例(MSC−A30,MSC−B31,EVSRC40,ODSRC41等で構成される部分)は、本方式を前提としたものである。以下に図7を用いて、そのタイミング制御の詳細を説明する。

0150

オルタネ−ティブバスステ−ト(ABS)は、既に述べたようにノ−ウェィトで運転されている場合、ABSを構成する各バスサイクルは2バスステ−ト(2×PCLKの周期)で構成され、ウェイトステ−トが挿入されない限りバスサイクル間のオ−バ−ラップ制御を複数のアドレスストロ−ブ信号を用いて行ないさえすれば、特別なインタ−ロック制御を必要としないサイクルステ−ル的な管理が可能であり、実質1バスステ−ト(1×PCLK)のアクセスサイクルを実現できる。

0151

しかし、外部リソ−スが2バスステ−トでアクセス不可能な場合、メインCPU部へのレディ信号(/RDY)を必要なバスステ−ト数分遅らせてアクティブにすることにより、バスサイクルにウェイトステ−トを挿入する。

0152

従って、ウェイトステ−トの挿入された現在のバスサイクルにオ−バ−ラップして実行される次のバスサイクルは、現在のバスサイクルが終了するまで必要なデ−タの入出力処理を実行することができないため、少なくとも現在のバスサイクルによるデ−タの入出力処理が終了したバスステ−トから1バスステ−ト分(1PCLK周期分に相当し、この期間に次のバスサイクルにおけるデ−タの入出力処理を実行する)先までバスサイクルの終了を遅らせる必要がある。

0153

図7の例では、ABS中の各バスサイクルはノンパイプラインバスサイクル(NPと表示している)で実行されている。これは、前述したノ−マルバスステ−ト(NBS)とタイミング的に等価のバスサイクルが各アドレスストロ−ブに対応して交互(オルタネ−ティブ)に実行されていると考えてよい。

0154

図中、バスステ−トS0〜S12において、偶数アドレス側のバスサイクルに対応するアドレスストロ−ブは、S0,S3,S6,S10,S12で生成され、奇数アドレス側のバスサイクルは、S1,S5,S9,S11で生成されている。ここで、S0及びS5で開始するバスサイクルが3サイクル(3バスステ−ト=3×PCLK周期)必要とされ、S1で開始するバスサイクルが4サイクル(4バスステ−ト=4×PCLK周期)必要とされると仮定している。

0155

図中、実際に実行されているバスサイクルを、BCEV(偶数バスサイクル)、BCOD(奇数バスサイクル)で示した。S1で開始している奇数バスサイクルが4プロセッササイクル分のバスステ−トを必要とするため、S3で開始している2プロセッササイクルで終了すべき偶数バスサイクルが影響を受け、1プロセッササイクル分/RDYEV信号が遅れてアクティブになりバスサイクルが引き延ばされている。

0156

本例では、先行するバスサイクルが終了しないことに起因して、現行のバスサイクルが影響を受けていることを示すために、メインCPU部は先行するバスサイクルが終了するまで現行のバスサイクルのアドレスストロ−ブ信号がアクティブ(Loレベル)に保たれている。ここでは、S3でアクティブになっているアドレスストロ−ブ信号/ASEVが、S1で開始された奇数バスサイクルが終了するまで(/RDYODが返送されるS4ステ−トの終わりまで)アクティブに保たれているのがわかる。

0157

この条件を各マシンステ−トコントロ−ラ(30,31)が判断して、RD(出力イネ−ブル)信号やWT(書き込み)信号を制御すればよい。すなわち、外部リソ−スからデ−タバスに有効なデ−タを出力するタイミングは、対応するリ−ドバスサイクル期間内でかつ対応するアドレスストロ−ブ信号が非アクティブの期間(本例ではバスステ−トS5の期間)ということになる。

0158

同様に、S6で開始している偶数バスサイクルもS5で開始している奇数バスサイクルの影響により/ASEVが引き延ばされており、/ASEVが非アクティブになったS8の先頭から、/RDYEVがアクティブになってバスサイクルの終了するS9の先頭、すなわち、バスステ−トS8の期間、有効なデ−タの入出力が実行されている。

0159

なお、外部リソ−スへのアドレス信号は、図7中に示したアドレスラッチタイミングでMSCによってラッチされ、バスサイクルの先頭から少なくともバスサイクルが終了するまでの期間、外部リソ−スに対して有効に保たれる。

0160

図7の例では、ノンパイプライン(NP)アドレッシングモ−ドで、バスサイクルを実行する。すなわち、1つ前のバスサイクルが終了してから次のバスサイクルに移行し、結果的にアドレスストロ−ブ信号(/ASEV,/ASOD)がアクティブになると同時にバスサイクルを開始し、対応するレディ信号(/RDYEV,/RDYOD)がアクティブになるとバスサイクルを終了する。従って、図中矢印で示したように、アドレスストロ−ブ信号とバスサイクルが直接対応した形のタイミングで動作する。

0161

図8は、図7のようなアドレスストロ−ブを用いたメインCPU部によるバスサイクル間のインタ−ロック制御ではなく、図9に示したような外部リソ−スを制御する各マシンステ−トコントロ−ラ(MSC)それぞれに全ての制御信号(/ASEV,/ASOD,/RDYEV,/RDYOD等)を入出力して、各MSCそれぞれが独自にインタ−ロック制御を行う方式の一例を示している。

0162

また、本例では、バスサイクルに先行して対応するアドレスを生成するパイプライン(P)アドレッシングモ−ドを用い、先行的にアクセス制御を行ってアクセス時間を稼いでいる。

0163

NPアドレッシングモ−ドでは、アドレス及びアドレスストロ−ブ信号が出力されてからアドレスのデコ−ド等の処理が開始されるため、アドレスストロ−ブ信号自体の遅れ時間やデコ−ド時間等のオ−バ−ヘッドのためにバスステ−トの先頭から実質的なアクセス動作に入ることが出来なかった。

0164

それに対して、Pアドレッシングモ−ドではバスサイクルよりも1つ以上前のバスステ−トでアドレス及びアドレスストロ−ブ信号が生成されているため、先行してデコ−ド処理が行え、そのオ−バ−ヘッドが除去できると共にバスステ−トの先頭から実質的なバスサイクルを開始することが可能となり、アクセス時間を大幅に稼ぐことが可能となっている。

0165

図8では、メインCPU部により図7の例と同等の処理が実行されていると仮定している。Pアドレッシングモ−ドを許しているために、図7では、S3,S5,S6の各バスステ−トで開始されていたアドレス及びアドレスストロ−ブ信号の出力が、図8では、それぞれS2,S3,S4のバスステ−トで先行して開始されており、Pアドレッシングモ−ドで実行されていることがわかる。

0166

なお、Pアドレッシングモ−ドで動作すると、NPアドレッシングモ−ドを用いた場合に比べて1バスステ−ト(1PCLK周期分)バスサイクルを短縮できるものとする。

0167

図8の方式では、図9に示したように、各マシンステ−トコントロ−ラ(MSC−A30,MSC−B31)が/ASEV,/ASOD,,/RDYEV,/RDYODの各信号の状態を感知しているため、各MSCの内部でバスサイクル間のインタ−ロック制御を行うことが可能となる。

0168

すなわち、例えば各MSCの内部で現在のバスサイクルと1つ前のバスサイクルに対するコマンド信号(/CMNDEV,/CMNDOD:バスサイクルが開始されてから1バスステ−ト分後にアクティブになり、/RDY信号によってバスサイクルが終了する時点で同時に非アクティブに戻る信号)を生成し、コマンド信号がアクティブになったバスステ−トで1つ前のバスサイクルがすでに終了していれば、そのタイミングに直接同期してデ−タバスに対する入出力制御信号/RD又は/WTを出力し、終了していなければオ−バ−ラップしている1つ前のバスサイクルのコマンド信号(/CMNDEV or /CMNDOD)が非アクティブになってから、直ちに現在のバスサイクルの/RD又は/WT信号を生成するように制御している。

0169

図8において、S2で開始されたPモ−ドのアクセス動作(バスサイクルはS3で開始される)において、S1で先行して開始されたNPモ−ドのバスサイクルがS4の終わりまで終了していないため、S2で開始されたコマンド信号(/CMNDOD)が終了するまで/RDEV or /WTEV信号をアクティブにしないように制御されている。

0170

結果的に、S1で開始されたバスサイクルが4バスステ−トかかるため、S2で開始されたPモ−ドアクセスには1ウェ−トステ−トが挿入されて、図7と同様、3バスステ−トかかってしまっている。しかし、S3で開始されたPモ−ドアクセス及びS4で開始されたPモ−ドアクセスは、前のバスサイクルと干渉しないため2バスステ−トでバスサイクルを完了し、図7の例と比べて1バスステ−ト分Pアドレッシングモ−ドによりバスサイクルが短縮されていることがわかる。

0171

これに伴い、図7の例ではステ−トS9,S11からそれぞれ開始されていたバスサイクルが、図8の例では1バスステ−ト分前倒しになり、S8,S9,S10の各ステ−トから開始されており、その分バスシステム全体の効率が向上していることがわかる。

0172

なお、図8の例でも、メインCPU部からのアドレスをMSC内に取り込むタイミングとしては図7と同様アドレスストロ−ブ信号が出力されたバスステ−トの終わりのポイントとなっている。

0173

図9は、前述したように、図3における1,30,31,40,41の部分を、図8に示した様なバスサイクルのタイミング制御が可能なように直した回路接続構成を示している。メインCPU部1で生成された/ASEV,/ASOD信号が共に両方のMSC(MSC−A30,MSC−B31)に供給されている点と、MSC−A30からの/RDYEV信号がMSC−B31に、MSC−B31からの/RDYOD信号がMSC−A30にも供給されている点が図3の例とは異なっている。

0174

これにより、各MSCは、他方のMSCの内部状態(他方のMSCの担当するバスサイクルの状態)をモニタしているのと等価の機能を独自に持つことができる。すなわち、相手のMSCのコマンド信号等をMSC内部で独自に生成することが可能となる。もちろん、お互いのMSCがコマンド信号等の必要な内部信号外部接続によりやり取りする方法も考えられる。

0175

しかし、外部接続により、コマンド信号等にディレイが発生してしまうため、それによって/RD,/WT信号等の生成が遅れる可能性があるため、図9の方式の方が優れているといえよう。

0176

この信号ディレイの問題は、図7及び図3に示したメインCPU部からのアドレスストロ−ブ信号を用いたバスサイクル間のインタ−ロック制御方式でも発生する(アドレスストロ−ブ信号自体が既にSCLK信号に対して遅れているから)。従って、この点において図7及び図3の例に対しても図8及び図9の例は優れているといえる。

0177

次に、より多くのアドレスストロ−ブ信号を用いた例として、図10及び図11に、アドレスストロ−ブ信号を4つ(/AS0,/AS1,/AS2,/AS3)用いた場合のオルタネ−ティブバスステ−ト(ABS)のバスタイミング制御例を示す。

0178

図中、/AS0〜/AS1に対応するバスサイクルをそれぞれBC0〜BC3と表現し、対応するデ−タバスの入出力占有期間(BC0〜BC3の中でメインCPU部とリソ−スとの間でデ−タの入出力が可能な期間)をDT0〜DT3と表現している。また、図10、図11の例ではいずれも図3図7に示した様に、アドレスストロ−ブ信号を用いてバスサイクル間のインタ−ロックをとる方式を用いている。/AS0〜/AS3に対応したバスサイクルの終了を指示するレディ信号は、それぞれ/RDY0〜/RDY3を表記している。

0179

図10の例では、各バスサイクルは基本的に2バスステ−ト(2×PCLK周期)で終了するものとし、ステ−トS4で開始するBC2のみにウェ−トステ−トが1バスステ−ト分挿入され、結果的に3バスステ−ト(3×PCLK周期)でバスサイクルが終了するものと仮定している。

0180

その影響を受けて、S5で開始するBC3の/AS3が1バスステ−ト分引き延ばされて、そのバスサイクルも結果的に3バスステ−ト(すなわち、MSCからメインCPU部への/RDY3信号を1バスステ−ト遅らせてバスサイクルに1ウェ−トステ−ト挿入する)要している。

0181

さらにその影響を受けて、S6で開始するBC0も同様の状況が発生し、/AS0が1バスステ−ト分引き延ばされて結果的に3バスステ−ト要している。

0182

図10では、ステ−トS0及びS5を除き(S0,S5はアイドルステ−トということになる)、全てのバスステ−トで有効なデ−タがメインCPU部との間でやり取りされている。

0183

2つのアドレスストロ−ブ信号を用いたこれまでの例と異なるのは、あるバスサイクルの生成がメインCPU部からランダムに指令されたとき(バスサイクル単位で異なったアドレス値を出力する可能性のあるランダムアクセス環境下で)、それが4つのうち任意のアドレスストロ−ブ信号をアクティブにする確率が、2つのアドレスストロ−ブ信号を用いた場合は1/2、4つのアドレスストロ−ブ信号を用いた場合は1/4になるということである。

0184

これは、同一のアドレスストロ−ブ信号が連続してアクティブになる確率も同様の値になることを意味しており、オルタネ−ティブバスステ−ト(ABS)動作が一時的に通常のバスサイクルと等価の効率に低下してしまう確率と言い換えても良い。すなわち、n個のアドレスストロ−ブ信号を用いたABSでは、1/nの確率で上記と同様のバスサイクルの効率低下を生じる可能性があることを示しており、これは、アドレスストロ−ブ信号の数が多いほど実質的なバスサイクルの効率が高いことを意味している。

0185

図11では、基本バスサイクルが4バスステ−トで構成された場合を示している。

0186

これは、図10の様な基本バスサイクルが2バスステ−トで構成された場合と比較すると、バスシステムから見た効率はそれ程低下しないが、メインCPU部が物理アドレスを生成してから必要なデ−タを外部リソ−スとの間でやり取りするまでの遅れ時間(レイテンシ)は非常に長くなり、メインCPU部側のアドレッシングユニット1312及び実行ユニット1310の動作効率が低下してしまう可能性が大きい。

0187

別の見方をすれば、図10に示したような基本バスサイクルが2バスステ−トで構成されているバスシステムにおいて、全てのバスサイクルに2ウェ−トステ−ト(2×PCLK周期)分のバスステ−トを挿入したものが図11に示した基本バスサイクルが4バスステ−トで構成されるバスシステムであると言え、ウェ−トステ−トに対応する分だけメインCPU部側の効率が低下するのは必然であろう。

0188

ただ、メインCPU部側の周波数(PCLKの周波数)が大幅に向上し、一方外部リソ−ス側の必要とするアクセス時間がそれほど短縮されない場合には、図11に示したバスシステムの方が外部リソ−スに対するアクセス時間を稼げるため有効であるといえる。

0189

図10及び図11の例からもわかるように、アドレスストロ−ブ信号を3本以上備えたオルタネ−ティブバスステ−ト(ABS)によるバスシステムにおいても、図7図8に示した2本のアドレスストロ−ブ信号を備えたオルタネ−ティブバスステ−ト(ABS)によるバスシステムと全く同様のル−ルに基づくバス制御及びインタ−ロック制御によって実現できていることがわかる。

0190

図12に、4つのアドレスストロ−ブ信号を制御するメインCPU部のバス制御回路部を示す。

0191

図12は、図5に示した1312、1316、1317、1318に相当する部分を拡大して示したものであり、図5では2つのアドレスストロ−ブ信号によるオルタネ−ティブバスステ−ト(ABS)を制御できるように構成していたマシンステ−トコントロ−ラMSC(1317,1318)を図12では4つ設けて、図10、図11で既に示した4つのアドレスストロ−ブ信号によるオルタネ−ティブバスステ−ト(ABS)を実現できるように構成している。

0192

それ以外に図5と機能的に異なるのは、アドレッシングユニット1312からMSC0〜MSC3(1400〜1430)への制御信号として、物理アドレス(Physical Address)とアドレスイネ−ブル信号(AEN)のみが供給され、それらの信号によってMSC0〜MSC3(1400〜1430)側で自身が選択されたことをデコ−ドし、そのMSCの担当するバスサイクル制御を実行するか否かの判定を行っている点である。

0193

各MSCからの応答信号もARDY信号に統合して、1信号だけアドレッシングユニット1312へ返すようにしている。

0194

一方、図5の例では、アドレッシングユニット1312が、偶数アドレスバスサイクルを起動すべきか奇数アドレスバスサイクルを起動すべきかの判定を行い、アドレッシングユニット1312からのAENEV及びAENOD信号によって直接偶数アドレスMSC1317及び奇数アドレスMSC1318に伝達している。

0195

また、図5では、AENEV及びAENOD信号に応答して、MSC1317及び1318がアドレッシングユニット1312から指示されたバスサイクルの起動処理受け付けたことをアドレッシングユニット1312に伝えるレディ信号として、ARDYEN,ARDYOD信号をそれぞれ設けている。

0196

それに対して図12の例では、4種類のバスサイクルをより柔軟に制御し、最適にそれらを生成するために、MSC0〜MSC3側にバスサイクルの生成条件を判断するデコ−ド機能とバスサイクル生成機能とを一体化して組み込んでいる。

0197

図12中に示したMSCの内部構造を説明する。アドレッシングユニット1312からの物理アドレス(Physical Address)の中から必要な部分アドレス(PartialAddress)を部分アドレスラッチ1406に得て、モ−ドデ−タラッチ1401に保持されたモ−ドデ−タと部分アドレスとを、アドレッシングユニット1312からのアドレスイネ−ブル信号(AEN)がアクティブのときに比較回路1402によって比較して、一致したらアクティブな一致信号を生成する。

0198

なお、AEN信号は、アクティブな時に、アドレッシングユニット1312から出力される前記部分アドレスが有効であることを示す信号である。

0199

アドレスストロ−ブ生成回路1403は、前記一致信号とステ−トコントロ−ルユニット1404からの制御信号を得て、アドレスストロ−ブ信号(/AS)を生成する。アドレスストロ−ブ信号を利用してバスサイクル間のインタ−ロック制御情報を外部に伝えるため、このMSCが/AS信号をアクティブにして生成した現在のバスサイクルよりも先行して、別のMSCによって開始されているバスサイクルが全て終了するまで、既に述べたように、アドレスストロ−ブ信号(/AS)をアクティブに保ち続ける。

0200

そのために、他のMSCとお互いのバスサイクルの状態をやり取りするためのインタ−フェ−ス回路1405をステ−トコントロ−ルユニット1404と他のMSCとの間に設けている。インタ−フェ−ス回路1405により、他のMSCと状態(ステ−タス)情報(IST,OST)のやり取りを行うと共に、アドレッシングユニット1312からの必要な物理アドレスのフェッチが終了して次のアドレスを出力しても良いことをアドレッシングユニット1312に知らせる信号としてARDYを返送する。

0201

また、ステ−トコントロ−ルユニット1404は、/AS信号が生成されるタイミングに同期してアドレスラッチ信号(AL)をアクティブにし、アドレッシングユニット1312からの対応する外部出力すべき物理アドレス値をアドレスバッファ1316内にラッチすると共に、アドレスバッファを開いて外部システムへ必要な物理アドレスを供給する。

0202

すなわち、規定に基づいて1バスステ−ト以上(他のMSCからのアドレスストロ−ブ信号がアクティブになるまでの1バスステ−ト以上の期間)アドレスバッファを開くようにアドレスバッファ1316に指示した後、その指示を介助して、次のバスサイクルのためのアドレス出力に備える。

0203

本例では、モ−ドデ−タラッチ1401に、そのMSCが応答すべき部分アドレスに相当する情報を予め自由に設定できるように構成している。

0204

実際には、プロセッサシステムが目的とする動作を開始する前の初期化処理時に、各MSC(1400〜1430)のモ−ドデ−タラッチに対して、オルタネ−ティブバスステ−ト(ABS)で外部バスシステムを動作させる際の各アドレスストロ−ブ信号(/AS0〜/AS3)とグル−プ化された外部リソ−ス(SRC0〜SRC3)との関係を設定しておけば良い。

0205

すなわち、どのような物理アドレス空間でエリア又はアドレスビット構成に対応してグル−プ化された外部リソ−スが割り付けられているかを、そのMSCが応答してアドレスストロ−ブ信号を生成すべき部分アドレス値のビットパタ−ンとしてモ−ドデ−タラッチ1401に登録しておくことになる。

0206

また、より高効率にバスサイクル生成する機能として、図12を例にとれば、アドレッシングユニット1312の中に複数のアドレス値の組を時系列的に保持していくことが可能な物理アドレスキュ−を設けて、先行して生成された物理アドレスを一時的に蓄えていく機能を用意する方法が考えられる。

0207

これにより、MSC及びアドレスバッファ1316による外部バスサイクルの生成及び制御処理に遅延が生じても、それによりアドレッシングユニット1312が停止してしまって効率が低下する(アドレッシングユニットが次のアドレス値を送り出せずにいる状態)確率を小さくすることができる。

0208

アドレスイネ−ブル信号(AEN)は、その物理アドレスキュ−に有効なアドレス値が存在するときアクティブになる様にすれば良い。

0209

なお、外部バスサイクルに遅延が生じる場合の例としては、既に述べたように、オルタネ−ティブバスステ−ト(ABS)が順調に実行できない場合(すなわち、同じアドレスストロ−ブ信号が連続してアクティブになった場合)や、ウェ−トステ−トがバスサイクルに挿入され、バスシステム自体の効率が低下してしまった場合等が考えられる。

0210

物理アドレスキュ−をアドレッシングユニット1312内に設ける方式以外に同様の効果を得る手段として、MSC0〜3(1400〜1430)内の部分アドレスラッチ1406とアドレスバッファ1316に複数のデ−タを時系列的に蓄えることができるキュ−システムを設け、先行してアドレッシングユニット1312から供給されてくる部分アドレス値と物理アドレス値をそれぞれ保持していく方法も考えられる。

0211

図12の例の様に、多くのアドレスストロ−ブ信号を設ける場合には、前述したモ−ドデ−タと部分アドレスとを比較して出力すべきアドレスストロ−ブ信号を柔軟に特定していく方法以外に、単純には、アドレスストロ−ブ信号の出力方式(モ−ド)を一通りに固定しておく方法がまず第一番に考えられる。

0212

例えば、4本のアドレスストロ−ブ信号の出力/AS0〜3に対応して、アドレスの最下位2bit分を数値(0〜3)とみなして割り付ける方法がこれに対応する。このように単純化しておけば、アドレッシング処理と並行もしくは先行して、アドレッシング計算の基となる情報から直接その2bit分のみを容易に計算できるため、より早い時刻にアドレスストロ−ブ信号の生成が可能となる。

0213

これによりリソ−スに対するアクセス時間をさらに長く確保できる可能性が生まれる。

0214

すなわち、アドレッシングユニットで実効アドレスが計算され、アドレス値の結果が確定する時刻よりもかなり早い時刻に、外部へ出力すべきアドレスストロ−ブ信号を確定することができるので、外部のMSCで先行してバスサイクルの生成が可能となり、バスサイクルの生成に必要な処理(従来はオ−バ−ヘッドとなっていた)とアドレッシングユニット1312での実効アドレス計算処理とを並行して進めることによって、バスサイクルのさらなる高効率化を図ることができる。

0215

先行してアドレスストロ−ブを生成するためのアドレス計算の基となる情報は、アドレッシングユニット1312でのアドレス計算処理のフェ−ズよりも1つ前のシステムクロック(SCLK)のフェ−ズ、又は、オペランド情報デコ−ダ1305によってアドレス情報が生成されるフェ−ズかその1つ前のシステムクロック(SCLK)のフェ−ズで得られる場合が大半であると考えられ、本方式によって外部へのアクセスを伴う命令をフェッチしてからそれに対応するバスサイクル生成までのレイテンシ(遅れ時間)を大幅に短縮できる可能性が高い。

0216

図13に4つのアドレスストロ−ブ信号を用いたオルタネ−ティブバスステ−ト(ABS)によるプロセッサシステムの構成を示す。このシステムは、バスサイクル間のインタ−ロック制御にアドレスストロ−ブ(/AS0〜/AS3)を利用する方式(図10、図11に示した方式)を用いることを前提としている。メインCPU部としては、図12に示したバス制御システムを有するものを用いれば良い。 図13からわかるように、図1図3に示した2つのアドレスストロ−ブ信号を用いた構成と比較するとその接続ル−ルは全く同様であり、単にマシンステ−トコントロ−ラ(MSC0〜MSC3)を4つ用意し、それに対応してグル−プ化した外部リソ−ス(SRC0〜SRC3)を接続すれば良く、任意のアドレスストロ−ブ信号の本数に対応して完全にスケラブルな拡張構造となっていることがわかる。

0217

図9に対応したn個のアドレスストロ−ブ信号を有するシステム構成も全く同様のスケ−ラビリテイを有しており、n個のアドレスストロ−ブ信号を全てのMSC(MSC0,MSC1---)に与え、かつレディ信号(/RDY0,/RDY1---)を全てのMSCの間でやり取りするように構成すれば良い。

0218

最後に、図13を用いて本プロセッサシステムのLSI化について検討を加える。LSI化のバリエ−ションとして大きくは以下に上げる4つが考えられる。

0219

a)メインCPU部1、MSC0〜MSC3(300〜303)及びSRC0〜SRC3(400〜403)を全て1チップLSIかMCMマルチチップモジュ−ル)又はウエハスケ−ルLSIに集積する。

0220

b)メインCPU部1とMSC0〜MSC3(300〜303)を1チップLSIかMCM(マルチチップモジュ−ル)又はウエハスケ−ルLSIに集積する。

0221

c)MSCと対応するSRCを1チップLSIかMCM(マルチチップモジュ−ル)又はウエハスケ−ルLSIに集積する。

0222

d)MSC0〜MSC3(300〜303)とSRC0〜SRC3(400〜403)を全て又はいくつかのペアを1チップLSIかMCM(マルチチップモジュ−ル)又はウエハスケ−ルLSIに集積する。

0223

ここで、MCM(マルチチップモジュ−ル)とは、小型電子基板材質セラミックグラス等を使用)の上に、複数のLSIチップに集積された機能モジュ−ル((a)の例ではメインCPU部1、MSC0〜MSC3(300〜303)及びSRC0〜SRC3(400〜403)に相当)を、それらLSIのベアチップのレベルで配置し、直接電子基板上にボンディングして1つのLSIのごとくパッケ−ジングしたものである。

0224

機能モジュ−ルを外部システムと接続するための外部入出力機能信号ピンの構造には、PGAピングリッドアレイ)のようなMCMの裏側に配置した針状のピン構造フラットパッケ−ジのようなMCM側面に配置する構造、または、MCM裏面全体を用いて格子上に密に配置したハンダバンプ等が考えられる。

0225

本発明の実施例によれば、リアルタイム性能をさらに高めることができ、また、バスの転送スル−プットを低下させずに、リソ−ス側から見たアクセス時間を長く確保できる。また、リソ−スへのランダムアクセス時にも、最高スピ−ドのプロセッサクロック(バスサイクルの最小値を決めるクロック)の周期でデ−タを転送でき、さらに、CPUがリソ−スへアクセス要求を出してから、必要なデ−タを入手するまでのアクセス遅延を小さく保てるデ−タオペレ−ションをリアルタイム制御アプリケ−ションに代表される様なリアルタイム環境で高効率に実行することができる。

発明の効果

0226

本発明によれば、リソ−スから供給されるデ−タに対し、処理装置内部の処理系が直接、そのデ−タを扱え処理できると共に、処理結果を直接リソ−スに戻すことができ、処理に対するリアルタイム性能をさらに高めることができる。

図面の簡単な説明

0227

図1本発明のプロセッサシステムの一実施例の構成を示す図である。
図2図1に示す本発明のプロセッサシステムの一実施例におけるランダムオルタネーティブバスサイクル(ABS)のタイムチャ−ト図である。
図3本発明のプロセッサシステムの他の実施例の構成を示す図である。
図4図3に示す本発明のプロセッサシステムの他の実施例の動作タイミングのタイムチャ−トである。
図5本発明のプロセッサシステムを構成するメインCPU部内部の構成を図である。
図6図5に示すメインCPU部内部の動作タイミングのタイムチャ−ト図である。
図7オルタネ−ティブバスステ−ト(ABS)におけるバスサイクル間のインタ−ロック制御を説明するタイムチャ−トである。
図8オルタネ−ティブバスステ−ト(ABS)におけるバスサイクル間のインタ−ロック制御を説明するタイムチャ−トである。
図9図8に示すバスサイクルのタイミング制御のための回路を示す図である。
図104つのアドレスストロ−ブ信号によるオルタネ−ティブバスステ−ト(ABS)を示すタイミングチャ−トである。
図114つのアドレスストロ−ブ信号によるオルタネ−ティブバスステ−ト(ABS)を示すタイミングチャ−トである。
図124つのアドレスストロ−ブ信号を制御するためのバス制御回路である。
図134つのアドレスストロ−ブ信号を用いたオルタネ−ティブステ−ト(ABS)によるプロセッサシステムを示す図である。

--

0228

1…メインCPU部、2…リソ−ス、3…偶数リソ−ス、4…奇数リソ−ス、5…マシンステ−トコントロ−ラ、6…偶数リソ−スアクセス制御用のマシンステ−トコントロ−ラ、7…奇数リソ−スアクセス制御用のマシンステ−トコントロ−ラ、8…マシンステ−トコントロ−ラ、9…システム基本クロック、10,11…ロ−カルコントロ−ラ、12…デ−タバス。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 東芝メモリ株式会社の「 メモリシステムおよび制御方法」が 公開されました。( 2020/09/24)

    【課題】書き込み効率を改善可能なメモリシステムを実現する。【解決手段】実施形態によれば、メモリシステムは、不揮発性メモリと、コントローラとを具備する。前記コントローラは、外部から受信したライトコマンド... 詳細

  • 日立オートモティブシステムズ株式会社の「 電子制御装置及び制御データの設定方法」が 公開されました。( 2020/09/24)

    【課題】電子制御装置のバリエーションを管理する労力を軽減する。【解決手段】電子制御装置では、電子的にデータを書き換え可能なコードフラッシュメモリ120に、アクティブ状態とインアクティブ状態とに排他的に... 詳細

  • 東芝メモリ株式会社の「 メモリシステム」が 公開されました。( 2020/09/24)

    【課題】メモリチップに品質の差がある場合においても、性能を低減することなく不揮発化処理を実行する。【解決手段】メモリシステム100は、不揮発性の複数のメモリチップ208と各メモリチップの動作を制御する... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ