以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態による情報処理システムの構成例を示すブロック図である。第1の実施形態による情報処理システムは、プロセッサ10、ペリフェラル装置20、及びCPUバス30を有する。プロセッサ10及びペリフェラル装置20は、CPUバス30を介して通信可能に接続されている。
プロセッサ10は、各々が独立してプログラムを実行することができる、複数のCPUコアを有する。図1には、CPUコアA11及びCPUコアB12の2つのCPUコアを有するプロセッサ10を一例として示している。CPUコアA11は、外部とパラレルインタフェースで接続され、CPUコアB12は、外部とシリアルインタフェースで接続される。CPUコアA11は、例えばプロセッサ10において動作の中心となるメインCPUとしての高速で動作可能なCPUコアである。CPUコアB12は、例えばCPUコアA11に対して低速で動作するサブCPUとしてのCPUコアである。また、プロセッサ10は、複数のCPUコア11、12によるCPUバス30へのアクセスを制御するバス・アービタ13を有する。CPUコアA11及びCPUコアB12のそれぞれによるCPUバス30へのアクセスは、バス・アービタ13を介して行われる。
CPUコアA11とバス・アービタ13とは、複数ビットのアドレス線ADA、制御信号線群CTA、及び複数ビットのデータ線DTAにより接続され、パラレル転送で通信を行う。CPUコアB12とバス・アービタ13とは、送信信号線BTx及び受信信号線BRxにより接続され、シリアル転送で通信を行う。また、バス・アービタ13とCPUバス30とは、複数ビットのアドレス線ADD、制御信号線群CTL、及び複数ビットのデータ線DATにより接続される。ここで、アドレス線ADA、ADDの信号線数(ビット数、バス幅)は同数であり、データ線DTA、DATの信号線数(ビット数、バス幅)は同数である。また、制御信号線群CTA、CTLの信号線数は同数であり、制御信号線群CTA、CTLには同じ種類の制御信号が含まれる。
ペリフェラル装置20は、CPUバス30を介して他の装置と通信可能な周辺装置である。ペリフェラル装置20は、例えばCPUバス30を介してプロセッサ10からのアクセスを受けるメモリであり、プロセッサ10と同等の転送機能を有する。ペリフェラル装置20は、図1においては図示していないが、入出力ポートを複数有する、いわゆるマルチポートのペリフェラル機能部を内部に有する。ペリフェラル装置20とCPUバス30とは、複数ビットのアドレス線ADP、制御信号線群CTP、及び複数ビットのデータ線DTPにより接続される。
また、ペリフェラル装置20は、プロセッサ10のバス・アービタ13からシリアル転送要求信号SRQが入力されるとともに、シリアル転送応答信号SRSをプロセッサ10のバス・アービタ13に出力する。シリアル転送要求信号SRQは、アドレス線ADD、ADPの一部をシリアル転送に使用していることを示す信号であり、シリアル転送の実行時にハイレベルにアサートされる。シリアル転送応答信号SRSは、シリアル転送における応答遅延を制御する信号であり、シリアル転送の有効時にハイレベルにアサートされる。
図1に示した本実施形態における情報処理システムにおいて、プロセッサ10が有するCPUコアA11及びCPUコアB12によるCPUバス30を介したペリフェラル装置20へのアクセスは、以下のように行われる。プロセッサ10のCPUコアA11によるペリフェラル装置20へのアクセスは、アドレス線ADA、ADD、ADPと、データ線DTA、DAT、DTPと、制御信号線群CTA、CTL、CTPとを使用したパラレル転送によって行われる。また、プロセッサ10のCPUコアB12によるペリフェラル装置20へのアクセスは、送信信号線BTx及び受信信号線BRxと、アドレス線ADD、ADPの一部とを使用したシリアル転送によって行われる。
図2(A)に示すように、CPUコアA11から出力されたアドレス信号がアドレス線ADA[N:0]、ADD[N:0]、及びADP[N:0]によりペリフェラル装置20に伝達され、CPUコアA11によるペリフェラル装置20へのアクセスが実行される。このとき、ペリフェラル装置20では、アドレス線ADP[N:0]により入力されたアドレス信号を、内部で参照するアドレス信号IADAとしてペリフェラル機能部23へのアクセスが行われる。なお、信号線名Xのiビット目〜jビット目の信号線を“X[i:j]”と記す(以下についても同様)。
また、図2(B)に示すように、CPUコアB12によるペリフェラル装置20へのアクセスは、送信信号線BTx及び受信信号線BRxと、アドレス線ADD[N:M]及びADP[N:M]とにより信号がシリアル転送で送受信され実行される。なお、CPUコアB12とペリフェラル装置20との間のシリアル転送は、CPUコアA11から出力されるアドレス信号の上位側[N:M]ビットが複数サイクルにおいて変化していないときに実行可能である。
このとき、ペリフェラル装置20では、アドレス線ADP[N:M]により入力された信号をシリアルインタフェース部21がシリアル・パラレル変換する。このシリアル・パラレル変換によって、内部で参照するアドレス信号IADB等が生成され、CPUコアB12に係るペリフェラル機能部23へのアクセスが行われる。アクセスの応答としてペリフェラル機能部23からCPUコアB12に送信されるデータは、シリアルインタフェース部21でパラレル・シリアル変換されアドレス線ADP[N:M]に出力される。また、このシリアル転送の実行中においては、アドレス保持部22に保持されたアドレス信号の上位側[N:M]ビットと、アドレス線ADP[M−1:0]により入力されたCPUコアA11からのアドレス信号の下位側[M−1:0]ビットとを連結して内部で参照するアドレス信号IADAを生成し、CPUコアA11に係るペリフェラル機能部23へのアクセスが行われる。
本実施形態では、変化する頻度が低い上位側ビットのアドレス線を利用したシリアル転送を可能にすることで、プロセッサ10のCPUコアA11及びCPUコアB12によるペリフェラル装置20へのアクセスを並列して実行することが可能になる。このようにプロセッサ10が有する複数のCPUコアによるペリフェラル装置20へのアクセスを並列して実行できるようにすることで、同一のCPUバス上で独立にプログラムを実行することができ、例えば処理負荷に差のある複数のタスクを並列実行することが可能になる。
図3は、第1の実施形態におけるペリフェラル装置20の構成例を示す図である。なお、図3においては、主にアドレス線及びアドレス信号に係る構成について図示しており、制御信号やデータ(書き込みデータや読み出しデータ)に係る構成については省略している。ペリフェラル装置20は、シリアルインタフェース部21、アドレス保持部22、ペリフェラル機能部23、選択器24、インバータ25、及びトライステートバッファ26を有する。
シリアルインタフェース部21は、アドレス線ADP[N:M]を利用したシリアル転送を行うためのインタフェース部である。シリアルインタフェース部21は、シリアル転送要求信号SRQに基づく制御により、アドレス線より入力される信号をシリアル・パラレル変換してアドレス信号IADB等を生成し、ペリフェラル機能部23に出力する。また、シリアルインタフェース部21は、シリアル転送要求信号SRQに基づく制御により、ペリフェラル機能部23からの信号をパラレル・シリアル変換しアドレス線に対してシリアル出力端から出力するとともに、シリアル転送応答信号SRSを出力する。
シリアルインタフェース部21のシリアル出力端とアドレス線との間には、トライステートバッファ26が設けられている。トライステートバッファ26は、シリアル転送応答信号SRSによって制御される。シリアル転送応答信号SRSがハイレベルのときには、トライステートバッファ26は、シリアルインタフェース部21のシリアル出力端からの出力に応じた信号をアドレス線に出力する。一方、シリアル転送応答信号SRSがローレベルのときには、トライステートバッファ26は、出力をハイインピーダンス(Hi−Z)状態にする。
アドレス保持部22は、アドレス線ADP[N:M]により伝送されるアドレス信号の上位側[N:M]ビットを保持し、保持しているアドレス信号を選択器24に出力する。アドレス保持部22には、インバータ25を介してシリアル転送要求信号SRQが供給されている。アドレス保持部22は、シリアル転送要求信号SRQがローレベルのときにはアドレス線ADP[N:M]により入力されるアドレス信号の上位側[N:M]ビットを取り込んで保持し、シリアル転送要求信号SRQがハイレベルのときには状態を保持する。すなわち、シリアル転送要求信号SRQがハイレベルとなる、アドレス線ADP[N:M]を利用したシリアル転送の実行時において、アドレス保持部22は、シリアル転送の実行前に保持されたアドレス信号の上位側[N:M]ビットを出力する。
選択器24は、シリアル転送要求信号SRQに応じて、アドレス線ADP[N:M]により入力されるアドレス信号又はアドレス保持部22から入力されるアドレス信号の何れかを選択して出力する。シリアル転送要求信号SRQがローレベルのときには、選択器24は、アドレス線ADP[N:M]により入力されるアドレス信号を選択して出力する。一方、シリアル転送要求信号SRQがハイレベルのときには、選択器24は、アドレス保持部22から入力されるアドレス信号を選択して出力する。
選択器24より出力されたアドレス信号の上位側[N:M]ビットと、アドレス線ADP[M−1:0]により入力されたアドレス信号の下位側[M−1:0]ビットとが連結されて内部で参照するアドレス信号IADAが生成される。つまり、アドレス線ADP[N:M]を利用したシリアル転送を実行していないとき(シリアル転送要求信号SRQはローレベル)には、アドレス線ADP[N:0]により入力されたアドレス信号がアドレス信号IADAとしてペリフェラル機能部23に供給される。一方、アドレス線ADP[N:M]を利用したシリアル転送の実行時(シリアル転送要求信号SRQはハイレベル)には、シリアル転送の実行前にアドレス線ADP[N:M]により入力されたアドレス信号と、シリアル転送の実行中にアドレス線ADP[N:0]により入力されたアドレス信号とが連結されアドレス信号IADAとしてペリフェラル機能部23に供給される。
図4は、ペリフェラル装置20が有するシリアルインタフェース部21の構成例を示す図である。なお、図4においては、説明の便宜上、ペリフェラル機能部23もあわせて図示している。シリアルインタフェース部21は、シリアル通信制御部101、受信シフトレジスタ103、送信シフトレジスタ104、アドレス値格納部105、書き込みデータ格納部106、制御情報格納部107、及び読み出しデータ格納部108を有する。
シリアル通信制御部101は、順序制御シーケンサ102を有する。順序制御シーケンサ102は、クロック信号及びシリアル転送要求信号SRQに基づいてカウント動作を行うカウンタであり、シリアル転送要求信号SRQがハイレベルである期間のクロック信号のサイクル数をカウントする。本実施形態において、順序制御シーケンサ102は、クロック信号の立ち上がり、かつシリアル転送要求信号SRQがハイレベルのときに、カウント値を1ずつインクリメントするものとする。
シリアル通信制御部101は、順序制御シーケンサ102のカウント値等に基づいて、各種制御信号を生成して出力する。例えば、シリアル通信制御部101は、順序制御シーケンサ102のカウント値をデコードして、アドレス値取り込み制御信号IADL、書き込みデータ取り込み制御信号IWDL、制御情報取り込み制御信号ICTL、及び書き込み制御信号WRBを生成する。また、例えば、シリアル通信制御部101は、順序制御シーケンサ102のカウント値をデコードして、読み出しデータ取り込み制御信号IRDL及び送信データ書き込み制御信号TxDWを生成する。また、シリアル通信制御部101は、順序制御シーケンサ102のカウント値に応じて、受信シフトレジスタ103及び送信シフトレジスタ104をそれぞれ駆動するための受信シフトイネーブル制御信号RxSE及び送信シフトイネーブル制御信号TxSEやシリアル転送応答信号SRSを生成する。
受信シフトレジスタ103は、受信シリアル信号PRxをシリアル・パラレル変換して受信パラレルデータRxDに変換するためのシフトレジスタである。送信シフトレジスタ104は、送信パラレルデータTxDをパラレル・シリアル変換して送信シリアル信号PTxに変換するためのシフトレジスタである。
アドレス値格納部105は、変換された受信パラレルデータRxDに含まれるアドレス値を、アドレス値取り込み制御信号IADLに応じて取り込む。また、アドレス値格納部105は、取り込んだアドレス値をアドレス信号IADBとしてペリフェラル機能部23に供給する。書き込みデータ格納部106は、変換された受信パラレルデータRxDに含まれる書き込みデータを、書き込みデータ取り込み制御信号IWDLに応じて取り込む。また、書き込みデータ格納部106は、取り込んだ書き込みデータを書き込みデータIWDBとしてペリフェラル機能部23に供給する。
制御情報格納部107は、変換された受信パラレルデータRxDに含まれる制御情報(コマンド)を、制御情報取り込み制御信号ICTLに応じて取り込む。また、制御情報格納部107は、取り込んだ制御情報(コマンド)に応じた制御信号ICTBをペリフェラル機能部23及びシリアル通信制御部101に供給する。読み出しデータ格納部108は、ペリフェラル機能部23から供給される読み出しデータIRDBを、読み出しデータ取り込み制御信号IRDLに応じて取り込む。また、読み出しデータ格納部108は、取り込んだ読み出しデータを送信パラレルデータTxDとして出力する。
次に、図5及び図6を参照して、シリアルインタフェース部21の動作について説明する。なお、以下の説明では、制御情報(コマンド)は8ビット、アドレス値は24ビット、データ(書き込みデータ若しくは読み出しデータ)は32ビットであるものとする。また、シリアル転送では、制御情報(コマンド)、アドレス値、データ(書き込みデータ若しくは読み出しデータ)の順に伝送されるものとする。また、シリアル転送の開始時において、シリアル通信制御部101が有する順序制御シーケンサ102のカウント値CNTは0であるとする。
図5は、シリアル転送によってペリフェラル機能部23に対してデータを書き込むときのシリアルインタフェース部21の動作例を示すタイミングチャートである。
シリアル転送の実行時にはシリアル転送要求信号SRQがハイレベルにアサートされ、シリアル転送要求信号SRQがハイレベルであるときに受信シリアル信号PRxはクロック信号に同期して順次更新される。また、シリアル転送要求信号SRQがハイレベルであり、かつクロック信号の立ち上がり時に、順序制御シーケンサ102のカウント値CNTが1ずつインクリメントされるとともに、受信シフトレジスタ103においてシフト動作が行われる。なお、クロック信号の立ち上がり時にシリアル転送要求信号SRQがローレベルである場合には、受信シリアル信号PRx及びカウント値CNTはともに保持され、受信シフトレジスタ103でのシフト動作は実行されない。
したがって、順序制御シーケンサ102のカウント値CNTが0〜7の期間において、受信シリアル信号PRxにより制御情報(コマンド)の7ビット目〜0ビット目がシリアル伝送され受信シフトレジスタ103に格納される。同様に、順序制御シーケンサ102のカウント値CNTが8〜31の期間において、受信シリアル信号PRxによりアドレス値の23ビット目〜0ビット目がシリアル伝送され受信シフトレジスタ103に格納される。また、順序制御シーケンサ102のカウント値CNTが32〜63の期間において、受信シリアル信号PRxによりアドレス値の31ビット目〜0ビット目がシリアル伝送され受信シフトレジスタ103に格納される。
受信シフトレジスタ103の出力である受信パラレルデータRxDにおいて制御情報(コマンド)が確定した、順序制御シーケンサ102のカウント値CNTが7から8に変化したサイクルで、制御情報取り込み制御信号ICTLがパルス状にハイレベルにされる。これにより、制御情報格納部107に制御情報(コマンド)が取り込まれ、ペリフェラル機能部23へのデータ書き込み動作を示す制御信号ICTBが制御情報格納部107から出力される。また、制御情報格納部107に取り込んだ制御情報(コマンド)がデータ書き込み動作を意味する場合に、書き込みフラグWFLがセットされる。
次に、受信パラレルデータRxDにおいてアドレス値が確定した、順序制御シーケンサ102のカウント値CNTが31から32に変化したサイクルで、アドレス値取り込み制御信号IADLがパルス状にハイレベルにされる。これにより、アドレス値格納部105にアドレス値が取り込まれ、アドレス信号IADBとしてアドレス値格納部105から出力される。
次に、受信パラレルデータRxDにおいて書き込みデータが確定した、順序制御シーケンサ102のカウント値CNTが63から0に変化したサイクルで、書き込みデータ取り込み制御信号IWDLがパルス状にハイレベルにされる。これにより、書き込みデータ格納部106に書き込みデータが取り込まれ、書き込みデータIWDBとして書き込みデータ格納部106から出力される。続いて、書き込みフラグWFLがセットされ、かつ書き込みデータ取り込み制御信号IWDLがハイレベルとなったことを受けて、書き込み制御信号WRBがパルス状にハイレベルにされ、ペリフェラル機能部23へのデータの書き込みが実行される。なお、図5に示したデータ書き込み動作時においては、送信データ書き込み制御信号TxDWはローレベルに保持されている。
図6は、シリアル転送によってペリフェラル機能部23からデータを読み出すときのシリアルインタフェース部21の動作例を示すタイミングチャートである。
シリアル転送の実行時にはシリアル転送要求信号SRQがハイレベルにアサートされ、シリアル転送要求信号SRQがハイレベルであるときに受信シリアル信号PRxはクロック信号に同期して順次更新される。また、シリアル転送要求信号SRQがハイレベルであり、かつクロック信号の立ち上がり時に、順序制御シーケンサ102のカウント値CNTが1ずつインクリメントされるとともに、受信シフトレジスタ103及び送信シフトレジスタ104においてシフト動作が行われる。なお、クロック信号の立ち上がり時にシリアル転送要求信号SRQがローレベルである場合には、受信シリアル信号PRx及びカウント値CNTはともに保持され、受信シフトレジスタ103及び送信シフトレジスタ104でのシフト動作は実行されない。
データ書き込み動作と同様に、受信パラレルデータRxDにおいて制御情報(コマンド)が確定した、順序制御シーケンサ102のカウント値CNTが7から8に変化したサイクルで、制御情報取り込み制御信号ICTLがパルス状にハイレベルにされる。これにより、制御情報格納部107に制御情報(コマンド)が取り込まれ、ペリフェラル機能部23からのデータ読み出し動作を示す制御信号ICTBが制御情報格納部107から出力される。次に、受信パラレルデータRxDにおいてアドレス値が確定した、順序制御シーケンサ102のカウント値CNTが31から32に変化したサイクルで、アドレス値取り込み制御信号IADLがパルス状にハイレベルにされる。これにより、アドレス値格納部105にアドレス値が取り込まれ、アドレス信号IADBとしてアドレス値格納部105から出力される。そして、順序制御シーケンサ102のカウント値CNTが33のサイクルにおいて、ペリフェラル機能部23から読み出しデータIRDBが出力される。
次に、ペリフェラル機能部23からの読み出しデータIRDBが確定した、順序制御シーケンサ102のカウント値CNTが33から34に変化したサイクルで、送信データ書き込み制御信号TxDWがパルス状にハイレベルにされる。これにより、ペリフェラル機能部23からの読み出しデータが送信シフトレジスタ104に格納され、シリアル転送要求信号SRQがハイレベルであり、かつクロック信号の立ち上がり時に順次更新され、送信シリアル信号PTxとして出力される。なお、図6に示したデータ読み出し動作時においては、書き込み制御信号WRBはローレベルに保持されている。
図7は、第1の実施形態におけるプロセッサ10のアドレス線制御を説明するための図である。図7には、一例としてシリアル転送を行う場合に、CPUバス30における31ビット目及び30ビット目のアドレス線ADD[31:30]を利用する例を示している。図7に示すように、バス・アービタ13は、フリップフロップ201、比較器202、選択器203、及びトライステートバッファ204を有する。
アドレス線ADA[31:0]により伝送されるCPUコアA11から出力されるアドレス信号のうち、31ビット目のアドレス線ADA[31]により伝送される値は、フリップフロップ201、比較器202、及び選択器203に入力される。また、30ビット目のアドレス線ADA[30]により伝送される値は、フリップフロップ201、比較器202、及びトライステートバッファ204に入力される。29ビット目〜0ビット目のアドレス線ADA[29:0]により伝送される値は、CPUバス30におけるアドレス線ADDの29ビット目〜0ビット目ADD[29:0]に出力される。
送信信号線BTxにより伝送されるCPUコアB12から出力される送信信号は、選択器203に入力される。また、CPUバス30におけるアドレス線ADDの30ビット目ADD[30]と受信信号線BRxが接続され、アドレス線ADD[30]により伝送される信号が、受信信号としてCPUコアB12に入力される。
フリップフロップ201は、CPUコアA11から出力されてアドレス線ADA[31:30]により伝送される値を、図示しないクロック信号のサイクル毎に保持して比較器202に出力する。比較器202は、アドレス線ADA[31:30]により伝送される値と、フリップフロップ201から出力される値とを、対応するビット毎に比較する。比較器202は、アドレス線ADA[31:30]により伝送される値とフリップフロップ201から出力される値とが一致する場合には出力をハイレベルにし、不一致の場合には出力をローレベルにする。
比較器202の出力は、選択器203に供給されるとともに、出力イネーブル信号OENとしてトライステートバッファ204に供給される。また、比較器202の出力は、シリアル転送イネーブル信号SENとして出力される。バス・アービタ13は、シリアル転送イネーブル信号SENがハイレベルかつCPUコアB12によるバス権要求がなされているときに、シリアル転送要求信号SRQをハイレベルにし、それ以外ではシリアル転送要求信号SRQをローレベルにする。
選択器203は、その出力端がCPUバス30におけるアドレス線ADDの31ビット目ADD[31]に接続されている。選択器203は、比較器202の出力がローレベルの場合にはアドレス線ADA[31]により伝送される値を出力し、比較器202の出力がハイレベルの場合には送信信号線BTxにより伝送される信号を出力する。つまり、アドレス線ADA[31:30]により伝送される値がサイクル間で変化した場合には、CPUコアA11から出力されたアドレス信号の31ビット目の値がCPUバス30のアドレス線ADD[31]に出力される。一方、アドレス線ADA[31:30]により伝送される値がサイクル間で変化しない場合には、CPUコアB12から出力された送信信号がCPUバス30のアドレス線ADD[31]に出力される。
トライステートバッファ204は、その出力端がCPUバス30におけるアドレス信号線ADDの30ビット目ADD[30]に接続されている。トライステートバッファ204は、出力イネーブル信号OENとして供給される比較器202の出力がローレベルの場合には入力される信号を出力し、比較器202の出力がハイレベルの場合には出力をHi−Z状態にする。つまり、アドレス線ADA[31:30]により伝送される値がサイクル間で変化した場合には、CPUコアA11から出力されたアドレス信号の30ビット目の値がCPUバス30のアドレス線ADD[30]に出力される。一方、アドレス線ADA[31:30]により伝送される値がサイクル間で変化しない場合には、トライステートバッファ204の出力はHi−Z状態とされる。
図7に示した例では、比較器202により、アドレス線ADA[31:30]により伝送される値が連続する2サイクルにおいて変化するか否かを検出するようにしているが、連続する2以上の複数サイクルにおいて変化するか否かを検出するようにしても良い。
図8は、第1の実施形態における情報処理システムの動作例を示す図である。図8には、CPUコアB12によるシリアル転送でのペリフェラル装置20に対するライト動作の例を示している。
CPUコアB12によるバス権要求信号BBREQがハイレベルにアサートされ、かつアドレス線ADA[31:30]により伝送される値が変化していない場合に、シリアル転送要求信号SRQ及び出力イネーブル信号OENがハイレベルにアサートされる。図8においては、点線301で囲んだ部分が、CPUコアB12による1回の外部アクセスに対応している。CPUコアB12は、制御情報(コマンド)、アドレス、及び書き込みデータを、シリアル転送により送信信号線BTxを介して順次出力する。
シリアル転送要求信号SRQがハイレベルのとき、CPUバス30におけるアドレス線ADDの31ビット目ADD[31]には送信信号線BTxにより伝送されるCPUコアB12からの信号が出力され、30ビット目ADD[30]はHi−Z状態となる。このようにして、CPUコアB12より出力された制御情報(コマンド)、アドレス、及び書き込みデータが、CPUバス30のアドレス線ADD[31]を介して、ペリフェラル装置20に伝送され、図5に示したようにしてデータの書き込みが行われる。
一方、シリアル転送要求信号SRQがローレベルのとき、CPUバス30におけるアドレス線ADDの31ビット目ADD[31]及び30ビット目ADD[30]には、アドレス線ADA[31:30]により伝送されるCPUコアA11からの値が出力される。ここで、シリアル転送要求信号SRQがローレベルになることでCPUコアB12によるアクセスに係る一連のシリアル転送は一時停止されるが、再びハイレベルになると再開し継続して実行される。また、ペリフェラル装置20側では、アドレス保持部22にアドレス値PADDとして、シリアル転送要求信号SRQがローレベルのときにアドレス線ADA[31:30]により伝送された値を取り込み、ハイレベルの間はその値を保持する。
図9は、第1の実施形態における情報処理システムの他の動作例を示す図である。図9には、CPUコアB12によるシリアル転送でのペリフェラル装置20に対するリード動作の例を示している。
CPUコアB12によるバス権要求信号BBREQがハイレベルにアサートされ、かつアドレス線ADA[31:30]により伝送される値が変化していない場合に、シリアル転送要求信号SRQ及び出力イネーブル信号OENがハイレベルにアサートされる。図9においては、点線401で囲んだ部分が、CPUコアB12による1回の外部アクセスに対応している。CPUコアB12は、シリアル転送により、制御情報(コマンド)及びアドレスを送信信号線BTxを介して順次出力するとともに、読み出しデータが受信信号線BRxを介して入力される。
シリアル転送要求信号SRQがハイレベルのとき、CPUバス30におけるアドレス線ADDの31ビット目ADD[31]には送信信号線BTxにより伝送されるCPUコアB12からの信号が出力される。また、CPUバス30におけるアドレス線ADDの30ビット目ADD[30]には、CPUコアB12によるアクセスに対する応答としてペリフェラル装置20からの信号が出力される。このようにして、CPUコアB12より出力された制御情報(コマンド)及びアドレスが、CPUバス30のアドレス線ADD[31]を介して、ペリフェラル装置20に伝送され、図6に示したようにしてデータの読み出しが行われる。そして、読み出されたデータが、CPUバス30のアドレス線ADD[30]を介して、CPUコアB12に伝送される。
一方、シリアル転送要求信号SRQがローレベルのとき、CPUバス30におけるアドレス線ADDの31ビット目ADD[31]及び30ビット目ADD[30]には、アドレス線ADA[31:30]により伝送されるCPUコアA11からの値が出力される。ここで、シリアル転送要求信号SRQがローレベルになることでCPUコアB12によるアクセスに係る一連のシリアル転送は一時停止されるが、再びハイレベルになると再開し継続して実行される。また、ペリフェラル装置20側では、アドレス保持部22にアドレス値PADDとして、シリアル転送要求信号SRQがローレベルのときにアドレス線ADA[31:30]により伝送された値を取り込み、ハイレベルの間はその値を保持する。
図10は、第1の実施形態における情報処理システムのアドレス線制御を説明するための図である。図10には、CPUコアA11によるペリフェラル装置20へのアクセスとCPUコアB12によるペリフェラル装置20に対するライトアクセスが並列して実行される例を示している。なお、図10に示す期間中、CPUコアB12によるバス権要求信号BBREQは常にハイレベルにアサートされているものとする。
CPUコアA11によるペリフェラル装置20へのアクセスが、アドレス線ADA[31:0]により伝送されるCPUコアA11から出力されるアドレス値を、クロック信号SCLKに同期して図10に示すように変化させ実行されるものとする。ここで、アドレス値A〜(A+20)のリソースにアクセスを行う期間T11〜T16の間において、アドレス線ADA[31:30]の値は変化しない。また、アドレス値B〜(B+12)のリソースにアクセスを行う期間T17〜T20の間、及びアドレス値C〜(C+4)のリソースにアクセスを行う期間T21〜T22の間において、アドレス線ADA[31:30]の値は変化しない。この場合、シリアル転送要求信号SRQは、図10に示すように、期間T12〜T16、T18〜T20、T22において、ハイレベルにアサートされる。
したがって、バス・アービタ13の選択器203は、期間T11、T17、T21において、アドレス線ADA[31]により伝送される値を出力し、期間T12〜T16、T18〜T20、T22において、送信信号線BTxにより伝送される信号を出力する。また、バス・アービタ13のトライステートバッファ204は、期間T11、T17、T21において、アドレス線ADA[30]により伝送される値を出力し、期間T12〜T16、T18〜T20、T22において、出力をHi−Z状態にする。
これにより、期間T11、T17、T21において、CPUバス30のアドレス線ADD[31:0]には、アドレス線ADA[31:0]により伝送される値が出力される。また、期間T12〜T16、T18〜T20、T22において、CPUバス30のアドレス線ADD[31:0]には、31ビット目に送信信号線BTxにより伝送される信号が出力され、29ビット目〜0ビット目にアドレス線ADA[29:0]により伝送される値が出力される。なお、期間T12〜T16、T18〜T20、T22において、CPUバス30のアドレス線ADD[31:0]における30ビット目はDon't careである。
また、ペリフェラル装置20のアドレス保持部22にアドレス値PADDとして保持される値は、次のようになる。期間T11においては、アドレス値Mの31ビット目及び30ビット目が保持され、期間T12〜T17においては、アドレス値Aの31ビット目及び30ビット目が保持される。また、期間T18〜T21においては、アドレス値Bの31ビット目及び30ビット目が保持され、期間T22においては、アドレス値Cの31ビット目及び30ビット目が保持される。
図11は、第1の実施形態における情報処理システムのアドレス線制御を説明するための図である。図11には、CPUコアA11によるペリフェラル装置20へのアクセスとCPUコアB12によるペリフェラル装置20に対するリードアクセスが並列して実行される例を示している。なお、図11に示す期間中、CPUコアB12によるバス権要求信号BBREQは常にハイレベルにアサートされているものとする。
CPUコアA11によるペリフェラル装置20へのアクセスが、アドレス線ADA[31:0]により伝送されるCPUコアA11から出力されるアドレス値を、クロック信号SCLKに同期して図11に示すように変化させ実行されるものとする。ここで、アドレス値D〜(D+20)のリソースにアクセスを行う期間T31〜T36の間において、アドレス線ADA[31:30]の値は変化しない。また、アドレス値E〜(E+12)のリソースにアクセスを行う期間T37〜T40の間、及びアドレス値F〜(F+4)のリソースにアクセスを行う期間T41〜T42の間において、アドレス線ADA[31:30]の値は変化しない。
この場合、シリアル転送要求信号SRQは、図11に示すように、期間T32〜T36、T38〜T40、T42において、ハイレベルにアサートされる。また、CPUコアB12によるペリフェラル装置20へのリードアクセスにおいて、期間T34で送信信号線BTxを介したアドレスの送出が完了し、期間T35〜T36は読み出し動作に係るレイテンシである。
バス・アービタ13の選択器203は、期間T31、T37、T41において、アドレス線ADA[31]により伝送される値を出力し、期間T32〜T34において、送信信号線BTxにより伝送される信号を出力する。また、バス・アービタ13のトライステートバッファ204は、期間T31、T37、T41において、アドレス線ADA[30]により伝送される値を出力し、期間T32〜T36、T38〜T40、T42において、出力をHi−Z状態にする。また、ペリフェラル装置20のトライステートバッファ26は、期間T38〜T40、T42において、ペリフェラル装置20からの読み出しデータを出力し、期間T31〜T37、T41において、出力をHi−Z状態にする。
これにより、期間T31、T37、T41において、CPUバス30のアドレス線ADD[31:0]には、アドレス線ADA[31:0]により伝送される値が出力される。また、期間T32〜T36、T38〜T40、T42において、CPUバス30のアドレス線ADD[31:0]には、31ビット目に送信信号線BTxにより伝送される信号が出力され、30ビット目にペリフェラル装置20からのシリアル出力が出力され、29ビット目〜0ビット目にアドレス線ADA[29:0]により伝送される値が出力される。
また、ペリフェラル装置20のアドレス保持部22にアドレス値PADDとして保持される値は、次のようになる。期間T31においては、アドレス値Nの31ビット目及び30ビット目が保持され、期間T32〜T37においては、アドレス値Dの31ビット目及び30ビット目が保持される。また、期間T38〜T41においては、アドレス値Eの31ビット目及び30ビット目が保持され、期間T42においては、アドレス値Fの31ビット目及び30ビット目が保持される。
図12は、第1の実施形態における情報処理システムのアドレス線制御を説明するための図である。図12には、CPUコアA11によるペリフェラル装置20へのアクセスとCPUコアB12によるペリフェラル装置20に対するリードアクセスが並列して実行される場合に、アクセスするリソースが競合した例を示している。なお、図12に示す期間中、CPUコアB12によるバス権要求信号BBREQは常にハイレベルにアサートされているものとする。
CPUコアA11によるペリフェラル装置20へのアクセスが、アドレス線ADA[31:0]により伝送されるCPUコアA11から出力されるアドレス値を、クロック信号SCLKに同期して図12に示すように変化させ実行されるものとする。ここで、アドレス値D〜(D+36)のリソースにアクセスを行う期間T51〜T60の間、及びアドレス値F〜(F+4)のリソースにアクセスを行う期間T61〜T62の間において、アドレス線ADA[31:30]の値は変化しない。
この場合、シリアル転送要求信号SRQは、図12に示すように、期間T52〜T60、T62において、ハイレベルにアサートされる。また、CPUコアB12によるペリフェラル装置20へのリードアクセスにおいて、期間T52で送信信号線BTxを介したアドレスの送出が完了し、期間T53〜T54は読み出し動作に係るレイテンシである。また、図12に示した例では、CPUコアB12によるアクセスがアドレス値D24(又はその近傍)のリソースに対して行われ、期間T57におけるCPUコアA11によるアクセスとの競合が発生し、ペリフェラル機能部23からのウェイト信号WAITによってCPUコアB12によるシリアル転送がウェイト状態とされる。
バス・アービタ13の選択器203は、期間T51、T61において、アドレス線ADA[31]により伝送される値を出力し、期間T52において、送信信号線BTxにより伝送される信号を出力する。また、バス・アービタ13のトライステートバッファ204は、期間T51、T61において、アドレス線ADA[30]により伝送される値を出力し、期間T62〜T60、T62において、出力をHi−Z状態にする。また、ペリフェラル装置20のトライステートバッファ26は、期間T55〜T60、T62において、ペリフェラル装置20からの読み出しデータを出力し、期間T51〜T54、T61において、出力をHi−Z状態にする。
これにより、期間T51、T61において、CPUバス30のアドレス線ADD[31:0]には、アドレス線ADA[31:0]により伝送される値が出力される。また、期間T52〜T60、T62において、CPUバス30のアドレス線ADD[31:0]には、31ビット目に送信信号線BTxにより伝送される信号が出力され、30ビット目にペリフェラル装置20からのシリアル出力が出力され、29ビット目〜0ビット目にアドレス線ADA[29:0]により伝送される値が出力される。ここで、リソースが競合する期間T57において、CPUコアB12によるアクセスに係るシリアル転送が1サイクル間ウェイト状態となり、期間T57においてシリアル転送応答信号SRSがローレベルとされ、期間T57及びT58において同じ信号が伝送される。
また、ペリフェラル装置20のアドレス保持部22にアドレス値PADDとして保持される値は、次のようになる。期間T51においては、アドレス値Nの31ビット目及び30ビット目が保持され、期間T52〜T61においては、アドレス値Dの31ビット目及び30ビット目が保持され、期間T62においては、アドレス値Fの31ビット目及び30ビット目が保持される。
本実施形態によれば、アドレス線の上位側ビットが変化していないとき、アドレス線の一部を利用したシリアル転送でCPUコアB11によるペリフェラル装置20へのアクセスを行う。これにより、CPUコア11、12によるペリフェラル装置20へのアクセスを並列して実行でき、CPUバス30を有効に活用することができる。例えば、同一のCPUバス30上で独立にプログラムを実行することができ、処理負荷に差のある複数のタスクを並列実行することが可能になる。また、CPUコア11、12で動作するプログラム上には、並列処理を考慮した特別な処理を記述することなしに、メモリ上への実装だけで並列実行を容易に実現することができる。
例えば、本実施形態による情報処理システムは、音声を伴う映像信号処理に有効である。このような信号を扱う際には、処理の大部分を映像信号処理が占め、音声信号処理は相対的に負荷が小さい。そのため、映像信号処理にCPUコアA11を割り当て、音声信号処理にCPUコアB12を割り当てることで、処理能力に差のある複数のCPUコアを有効に動作させることができる。また、例えば、CPUコアB12に、CPUコアA11の動作を監視するウォッチドッグ機能を持たせるようなシステムにも利用できる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
前述した第1の実施形態では、パラレルインタフェースを持つCPUコアA及びシリアルインタフェースを持つCPUコアBという異なる複数のCPUコアを有するプロセッサを含む情報処理システムを例として説明した。本発明は、これに限定されるものではなく、例えば図13に示すようなパラレルインタフェースを持つ複数のCPUコア501、502を有するプロセッサを含む情報処理システムにも適用可能である。この場合には、ペリフェラル装置に対してシリアル転送によりアクセスを行うCPUコアのバスインタフェースにパラレル・シリアル変換を行うCPUシリアルインタフェース部503を設ければ良い。
図13は、第2の実施形態におけるプロセッサの構成例を示す図である。なお、第2の実施形態における情報処理システムの全体構成は、第1の実施形態と同様である。また、図13においては、説明の便宜上、プロセッサが有するCPUコアA501、CPUコアB502、及びCPUシリアルインタフェース部503だけを図示している。しかし、第2の実施形態におけるプロセッサは、第1の実施形態と同様に複数のCPUコアによるCPUバスへのアクセスを制御するバス・アービタを有し、CPUコア501、502によるCPUバスへのアクセスは、図示しないバス・アービタを介して行われる。
図13において、CPUコア501、502は、各々が独立してプログラムを実行することができるCPUコアである。例えば、CPUコアA501は、第2の実施形態におけるプロセッサで動作の中心となるメインCPUとしてのCPUコアであり、CPUコアB502は、CPUコアA501に対して低速で動作させることが可能なようなサブCPUとしてのCPUコアである。
CPUコアA501は、バス・アービタに直接に接続され、パラレル転送で通信を行う。CPUコアA501は、複数ビットのアドレス信号ADA[31:0]、制御信号線群CTA、及び複数ビットの書き込みデータWDTA[31:0]をバス・アービタに出力する。また、CPUコアA501は、バス・アービタから複数ビットの読み出しデータRDTA[31:0]が入力される。
CPUコアB502は、CPUシリアルインタフェース部503を介してバス・アービタに接続される。CPUコアB502とCPUシリアルインタフェース部503との間はパラレル転送で通信を行い、CPUシリアルインタフェース部503とバス・アービタとの間はシリアル転送で通信を行う。CPUコアB502は、複数ビットのアドレス信号ADB[31:0]、制御信号線群CTB、及び複数ビットの書き込みデータWDTB[31:0]をCPUシリアルインタフェース部503に対して出力する。また、CPUコアB502は、CPUシリアルインタフェース部503から複数ビットの読み出しデータRDTA[31:0]が入力される。CPUシリアルインタフェース部503は、シリアルの送信信号をバス・アービタに出力し、シリアルの受信信号BRxがバス・アービタから入力される。
CPUシリアルインタフェース部503は、シリアルインタフェース制御部504、選択器505、送信シフトレジスタ506、及び受信シフトレジスタ507を有する。シリアルインタフェース制御部504は、シーケンサ(カウンタ回路)508、フェーズ制御カウンタ509、書き込みフラグ設定部510、及び選択器511を有し、CPUシリアルインタフェース部503が有する各機能部を制御する。
シーケンサ(カウンタ回路)508は、フェーズ制御のためのカウンタであり、シフトレジスタ506、507をイネーブル状態とした(有効にしている)サイクル数をカウントする。フェーズ制御カウンタ509は、シリアル転送において制御情報(コマンド)、アドレス、データを順に転送するためのフェーズ制御に係るカウンタである。書き込みフラグ設定部510は、CPUコアB502から出力される制御信号群CTBがライトアクセスを示すものである場合に書き込みフラグがセットされる。選択器511は、書き込みフラグ設定部510に書き込みフラグがセットされているときにはライトコマンドWCMDを出力し、書き込みフラグがセットされていないときにはリードコマンドRCMDを出力する。
選択器505は、シリアルインタフェース制御部504から供給されるフェーズ制御カウンタ509のカウント値PHCに応じて、CPUコアB501から入力されるアドレス信号ADB[31:0]、書き込みデータWDTB[31:0]、又はシリアルインタフェース制御部504から入力されるコマンドCMDを選択的に出力する。選択器505は、フェーズ制御カウンタ509のカウント値PHCが0の場合には、書き込みデータWDTB[31:0]を出力する。また、選択器505は、フェーズ制御カウンタ509のカウント値PHCが1の場合には、コマンドCMDとして入力されるライトコマンドWCMD又はリードコマンドRCMDを出力する。また、選択器505は、フェーズ制御カウンタ509のカウント値PHCが2の場合には、アドレス信号ADB[31:0]を出力する。
送信シフトレジスタ506は、選択器505の出力をパラレル・シリアル変換して送信信号BTxに変換するためのシフトレジスタである。送信シフトレジスタ506は、シリアルインタフェース制御部504から供給される書き込み制御信号TxPCがハイレベルにアサートされたときに選択器505の出力を取り込む。そして、送信シフトレジスタ506は、シリアルインタフェース制御部504から供給される送信シフト制御信号TxSCに応じて、取り込んだ選択器505の出力を1ビットずつ送信信号BTxとして出力する。
受信シフトレジスタ507は、受信信号BRxをシリアル・パラレル変換してパラレルの読み出しデータRDTA[31:0]に変換するためのシフトレジスタである。受信シフトレジスタ507は、シリアルインタフェース制御部504から供給される受信シフト制御信号RxSCに応じたシフト動作を行うことで、受信信号BRxにより受信される読み出しデータを1ビットずつ取り込んで、パラレルデータに変換し出力する。
次に、図14及び図15を参照して、CPUシリアルインタフェース部503の動作について説明する。なお、以下の説明では、制御情報(コマンド)は8ビット、アドレス値は24ビット、データ(書き込みデータ若しくは読み出しデータ)は32ビットであるものとする。また、制御情報(コマンド)、アドレス値、データ(書き込みデータ若しくは読み出しデータ)の順にシリアル転送されるものとする。
図14は、CPUコアB502によるデータ書き込み動作の一例を示すタイミングチャートである。シリアルインタフェース制御部504のシーケンサ(カウンタ回路)508は、シリアル転送要求信号SRQがハイレベルであるときに、クロック信号のサイクル毎にカウント値CNTを1ずつインクリメントする。ただし、データ書き込み動作時(書き込みフラグ設定部510に書き込みフラグがセットされているとき)において、カウント値CNTは、63の次が0となるように制御される。また、シリアル転送要求信号SRQがハイレベルであるときに、シリアルインタフェース制御部504から出力される送信シフト制御信号TxSCがアサートされ、送信シフトレジスタ506においてシフト動作が行われる。
シーケンサ(カウンタ回路)508のカウント値CNTが、0、8、32のとき、シリアルインタフェース制御部504から出力される書き込み制御信号TxPCがハイレベルにアサートされる。ただし、カウント値CNTが0のときには、CPUウェイト制御信号WACがクリアされている場合に、書き込み制御信号TxPCがハイレベルにアサートされる。書き込み制御信号TxPCがハイレベルになることで、選択器505の出力が送信シフトレジスタ506に取り込まれるとともに、フェーズ制御カウンタ509のカウント値PHCが変化する。ここで、フェーズ制御カウンタ509のカウント値PHCは、書き込み制御信号TxPCがハイレベルになることで、0→1→2→0→1→2→0→・・・と順に変化する。また、CPUコアB502から出力される制御信号群CTBに応じて、書き込みフラグWFLGが書き込みフラグ設定部510にセットされる。
図14に示した例では、カウント値CNTが0のときには、カウント値PHCが0であるので、書き込み制御信号TxPCがハイレベルになることで、送信シフトレジスタ506にはコマンドCMD(ライトコマンドWCMD)が取り込まれる。そして、例えばカウント値CNTが1のときに、コマンドの初期値であるコマンドの7ビット目が送信シフトレジスタ506から送信信号BTxとして出力される。また、カウント値CNTが8のときには、カウント値PHCが1であるので、書き込み制御信号TxPCがハイレベルになることで、送信シフトレジスタ506にはアドレス信号ADBが取り込まれる。そして、例えばカウント値CNTが9のときに、アドレス信号の初期値であるアドレス信号の23ビット目が送信シフトレジスタ506から送信信号BTxとして出力される。同様に、カウント値CNTが32のときには、カウント値PHCが2であるので、書き込み制御信号TxPCがハイレベルになることで、送信シフトレジスタ506には書き込みデータWDTBが取り込まれる。そして、例えばカウント値CNTが33のときに、書き込みデータの初期値である書き込みデータの31ビット目が送信シフトレジスタ506から送信信号BTxとして出力される。
また、CPUウェイト制御信号WACは、シリアル転送中に、このシリアル転送に係るCPUコアB502での動作をウェイト状態にするための信号である。CPUウェイト制御信号WACは、カウント値CNTが0であり、かつ書き込み制御信号TxPCがハイレベルであるときにセット(ローレベル)されてCPUコアB502をウェイト状態にする。また、CPUウェイト制御信号WACは、データ書き込み動作時(書き込みフラグ設定部510に書き込みフラグがセットされているとき)においては、カウント値CNTが63であるときにクリア(ハイレベル)されてCPUコアB502をウェイト解除状態にする。なお、CPUコアB502は、ウェイト状態である期間中、アドレス信号ADB、制御信号CTB、及び書き込みデータWDTBを保持している。
図15は、CPUコアB502によるデータ読み出し動作の一例を示すタイミングチャートである。シリアルインタフェース制御部504のシーケンサ(カウンタ回路)508は、シリアル転送要求信号SRQがハイレベルであるときに、クロック信号のサイクル毎にカウント値CNTを1ずつインクリメントする。ただし、データ読み出し動作時(書き込みフラグ設定部510に書き込みフラグがセットされていないとき)において、外部でのリード動作におけるウェイトサイクルが有効期間で2サイクルである場合、カウント値CNTは、65の次が0となるように制御される。また、シリアル転送要求信号SRQがハイレベルであるときに、シリアルインタフェース制御部504から出力される送信シフト制御信号TxSC及び受信シフト制御信号RxSCがアサートされ、送信シフトレジスタ506及び受信シフトレジスタ507においてシフト動作が行われる。
シーケンサ(カウンタ回路)508のカウント値CNTが、0、8、32のとき、シリアルインタフェース制御部504から出力される書き込み制御信号TxPCがハイレベルにアサートされる。ただし、カウント値CNTが0のときには、CPUウェイト制御信号WACがクリアされている場合に、書き込み制御信号TxPCがハイレベルにアサートされる。書き込み制御信号TxPCがハイレベルになることで、選択器505の出力が送信シフトレジスタ506に取り込まれるとともに、フェーズ制御カウンタ509のカウント値PHCが変化する。ここで、フェーズ制御カウンタ509のカウント値PHCは、書き込み制御信号TxPCがハイレベルになることで、0→1→2→0→1→2→0→・・・と順に変化する。なお、CPUコアB502から出力される制御信号群CTBはリードアクセスを示すものであるので、書き込みフラグ設定部510に書き込みフラグWFLGはセットされない。
図14に示した例では、カウント値CNTが0のときには、カウント値PHCが0であるので、書き込み制御信号TxPCがハイレベルになることで、送信シフトレジスタ506にはコマンドCMD(リードコマンドRCMD)が取り込まれる。そして、例えばカウント値CNTが1のときに、コマンドの初期値であるコマンドの7ビット目が送信シフトレジスタ506から送信信号BTxとして出力される。また、カウント値CNTが8のときには、カウント値PHCが1であるので、書き込み制御信号TxPCがハイレベルになることで、送信シフトレジスタ506にはアドレス信号ADBが取り込まれる。そして、例えばカウント値CNTが9のときに、アドレス信号の初期値であるアドレス信号の23ビット目が送信シフトレジスタ506から送信信号BTxとして出力される。
そして、送信信号BTxによるアドレス信号の送出が完了してから、有効期間で2サイクルが経過した後に、受信信号BRxにより受信される読み出しデータが受信シフトレジスタ507に取り込まれる。受信信号BRxにより受信されたすべての読み出しデータが受信シフトレジスタ507に取り込まれ、読み出しデータが確定すると、CPUコアB502は、読み出しデータRDTBを取り込む。ここで、データ読み出し動作において、CPUウェイト制御信号WACは、カウント値CNTが65であるときにクリア(ハイレベル)されてCPUコアB502をウェイト解除状態にする。CPUコアB502は、ウェイト状態である期間中、アドレス信号ADB及び制御信号CTBを保持している。
第2の実施形態によれば、プロセッサが有するCPUコアがパラレルインタフェースを持つCPUコアだけであっても、第1の実施形態と同様にアドレス線の一部を利用したシリアル転送を行うことができる。これにより、CPUコア501、502によるペリフェラル装置へのアクセスを並列して実行でき、CPUバスを有効に活用することができる。また、例えば、図13に示したCPUコアA501とCPUコアB502とを同じデザインで設計することで、CPUコアA501とCPUコアB502とが同じプログラムを実行することが可能となり、メモリ上の同じプログラムを共有することができる。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。
図16は、第3の実施形態におけるプロセッサの構成例を示す図である。なお、第3の実施形態における情報処理システムの全体構成は、第1の実施形態と同様である。図16に示す第3の実施形態におけるプロセッサは、その内部に、アドレス線の一部を利用してシリアル転送を行うCPUコアを複数有するものである。
図16において、CPUコア601−1〜601−Nは、各々が独立してプログラムを実行することができるCPUコアである。例えば、CPUコア601−1は、プロセッサで動作の中心となるメインCPUとしてのCPUコアであり、CPUコア601−2〜602−Nは、サブCPUとしてのCPUコアである。CPUコア601−i(iは添え字であり、i=2、3、・・・、N、以下についても同様)は、シリアルの送信信号CPUiTxを出力するとともに、シリアルの受信信号CPUiRxが入力される。図16に示す例では、CPUコア601−2が、CPUバスのアドレス線の31ビット目及び30ビット目CPUBAD[31:30]を利用してシリアル転送を行う。同様に、CPUコア601−3が、CPUバスのアドレス線の29ビット目及び28ビット目CPUBAD[29:28]を利用してシリアル転送を行い、CPUコア601−Nが、CPUバスのアドレス線の17ビット目及び16ビット目CPUBAD[17:16]を利用してシリアル転送を行う。
選択器群602の選択器602−iは、それぞれが図7に示した選択器203に相当し、制御信号CTLAにより制御される。選択器602−iは、対応するCPUバスのアドレス線に、制御信号CTLAがローレベルの場合にはCPUコア601−1から出力されるアドレス信号CPU1ADを出力し、制御信号がハイレベルの場合には送信信号CPUiTxを出力する。また、トライステートバッファ群603のトライステートバッファ603−iは、それぞれが図7に示したトライステートバッファ204に相当し、制御信号CTLBにより制御される。トライステートバッファ603−iは、制御信号CTLBがローレベルの場合には入力される信号を対応するCPUバスのアドレス線に出力し、制御信号CTLBがハイレベルの場合には出力をHi−Z状態にする。ここで、制御信号CTLA及びCTLBは、CPUコア601−2〜602−Nを使用する場合にはハイレベルに制御され、使用しない場合にはローレベルに制御される。なお、CPUコア601−1から出力されるアドレス信号CPU1AD[15:0]は、CPUバスのアドレス線CPUBAD[15:0]に出力される。
また、フリップフロップ604及び比較器605は、図7に示したフリップフロップ201及び比較器202にそれぞれ相当する。フリップフロップ604は、CPUコア601−1から出力されたアドレス信号CPU1AD[31:16]を、図示しないクロック信号のサイクル毎に保持して比較器605に出力する。比較器605は、CPUコア601−1から出力されたアドレス信号と、フリップフロップ604から出力される値とを、対応するビット毎に比較する。比較器605は、CPUコア601−1から出力されたアドレス信号とフリップフロップ604から出力される値とが一致する場合には、ウェイト制御信号WACTLをハイレベルにし、不一致の場合にはウェイト制御信号WACTLをローレベルにする。なお、ウェイト制御信号WACTLは、ハイレベルであるときにウェイトなしを示し、ローレベルであるときにウェイト中を示す。
なお、ペリフェラル装置側においては、シリアル転送に利用されるアドレス線の組毎にシリアルインタフェース部を設け、ペリフェラル機能部を少なくとも(シリアルインタフェース部の数+1)の複数のポートを有するものとすれば良い。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
(付記1)
複数のアドレス線を有するバスと、
前記バスを介したパラレル転送により他の装置と通信を行う第1の処理部と、前記バスを介したシリアル転送により他の装置と通信を行う第2の処理部と、前記第1の処理部から前記アドレス線に対して出力するアドレス信号における上位側の所定数のビットに変化があるか否かを検出する検出部とを有する情報処理装置と、
前記バスに接続され、パラレル転送及びシリアル転送の両方で前記情報処理装置と通信が可能な電子装置とを備え、
前記情報処理装置は、前記アドレス信号における上位側の所定数のビットに変化がない場合には、当該ビットに対応する前記アドレス線を前記第2の処理部が行う前記シリアル転送に使用することを特徴とする情報処理システム。
(付記2)
前記電子装置は、
前記第2の処理部が行うシリアル転送に使用される前記アドレス線により伝送される信号を保持する保持部を有し、
前記第2の処理部がシリアル転送を実行しているときには、当該シリアル転送の実行前に前記保持部に保持された信号と、前記シリアル転送に使用されていない前記アドレス線により伝送される信号とを組み合わせてパラレル転送に係るアドレス信号を生成することを特徴とする付記1記載の情報処理システム。
(付記3)
前記第2の処理部によるシリアル転送の実行を、前記情報処理装置から前記電子装置に通知する制御信号線を備えることを特徴とする付記1記載の情報処理システム。
(付記4)
前記情報処理装置は、
前記アドレス信号における上位側の所定数のビットに変化がある場合には、当該ビットに対応する前記アドレス線に前記第1の処理部のアドレス信号の出力端を接続し、
前記アドレス信号における上位側の所定数のビットに変化がない場合には、当該ビットに対応する前記アドレス線に前記第2の処理部の送信信号の出力端及び受信信号の入力端を接続することを特徴とする付記1記載の情報処理システム。
(付記5)
前記電子装置は、
前記パラレル転送に係る第1のポートと前記シリアル転送に係る第2のポートとを有する機能部を内部に有することを特徴とする付記1記載の情報処理システム。
(付記6)
前記電子装置は、メモリであることを特徴とする付記5記載の情報処理システム。
(付記7)
前記情報処理装置が有する前記第2の処理部はパラレルインタフェースを有し、
前記第2の処理部から入力された信号をパラレル・シリアル変換して前記シリアル転送に使用される前記アドレス線に出力し、前記シリアル転送に使用される前記アドレス線から入力された信号をシリアル・パラレル変換して前記第2の処理部に出力するインタフェース部を有することを特徴とする付記1記載の情報処理システム。
(付記8)
複数のアドレス線を有するバスを介したパラレル転送により他の装置と通信を行う第1の処理部と、
前記バスを介したシリアル転送により他の装置と通信を行う第2の処理部と、
前記第1の処理部から前記アドレス線に対して出力するアドレス信号における上位側の所定数のビットに変化があるか否かを検出する検出部とを有し、
前記アドレス信号における上位側の所定数のビットに変化がある場合には、当該ビットに対応する前記アドレス線に前記第1の処理部のアドレス信号の出力端を接続し、
前記アドレス信号における上位側の所定数のビットに変化がない場合には、当該ビットに対応する前記アドレス線に前記第2の処理部の送信信号の出力端及び受信信号の入力端を接続することを特徴とする情報処理装置。
(付記9)
複数のアドレス線を有するバスに接続される電子装置であって、
前記アドレス線を用いたパラレル転送に係る第1のポート及び前記アドレス線の一部を用いたシリアル転送に係る第2のポートを有する機能部と、
前記シリアル転送に使用される前記アドレス線により伝送される信号を保持する保持部とを有し、
前記シリアル転送を実行中は、当該シリアル転送の実行前に前記保持部に保持された信号と、前記シリアル転送に使用されていない前記アドレス線により伝送される信号とを組み合わせてパラレル転送に係るアドレス信号を生成することを特徴とする電子装置。