JP2011138401A - プロセッサシステム、プロセッサシステムの制御方法、及び制御回路 - Google Patents

プロセッサシステム、プロセッサシステムの制御方法、及び制御回路 Download PDF

Info

Publication number
JP2011138401A
JP2011138401A JP2009298863A JP2009298863A JP2011138401A JP 2011138401 A JP2011138401 A JP 2011138401A JP 2009298863 A JP2009298863 A JP 2009298863A JP 2009298863 A JP2009298863 A JP 2009298863A JP 2011138401 A JP2011138401 A JP 2011138401A
Authority
JP
Japan
Prior art keywords
control
peripheral circuit
peripheral
processing
bus
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.)
Pending
Application number
JP2009298863A
Other languages
English (en)
Inventor
Tetsuo Hiraki
哲夫 平木
Koichiro Yamashita
浩一郎 山下
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009298863A priority Critical patent/JP2011138401A/ja
Publication of JP2011138401A publication Critical patent/JP2011138401A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】複数のマスタが1つのペリフェラル回路にアクセス可能なプロセッサシステムにて、CPUの負荷を低減する。
【解決手段】CPUが接続されたメインバスと、マスタからの制御命令に従って処理を実行するペリフェラル回路との間に、仮想化ペリフェラルコントローラを設け、仮想化ペリフェラルコントローラが、制御命令に係る調停処理を行い、その結果に応じて制御命令を周辺回路に発行するか又は命令バッファに保持するかを制御するようにして、ソフトウェア制御によるペリフェラル回路の制御を仮想化ペリフェラルコントローラによって代行し、CPUの負荷を低減する。
【選択図】図1

Description

本発明は、複数のマスタがアクセス可能なペリフェラル回路を有するプロセッサシステム、プロセッサシステムの制御方法、及び制御回路に関する。
図8にプロセッサシステムの一例を示す。図8において、110はCPU(Central Processing Unit:中央処理装置)であり、120はメインメモリであり、130、140はペリフェラル回路(周辺回路)である。CPU110は、ソフトウェア150に応じた処理を実行する。ソフトウェア150には、オペレーティングシステム(OS:Operating System)151、及びOS上で動作するアプリケーションソフト152やドライバ153等を含む。また、ソフトウェア150は、リソースに対する要求等が競合する場合にその調停を行うソフト調停機能154を有する。ソフト調停機能154は、例えばバーチャルマシン(VM:Virtual Machine)により実現される。ペリフェラル回路130、140は、CPU110が汎用的な処理を行うのに対して、新たに機能を加えるために実装された周辺回路である。ペリフェラル回路130、140は、例えばアクセラレータである。
図8に示すプロセッサシステムでは、OS151、アプリケーションソフト152、ドライバ153、CPU110等がマスタとなり、これら複数のマスタが1つのペリフェラル回路に対してアクセス可能である。このようなシステムにおいては、ペリフェラル回路130、140を制御するドライバのリソース管理(排他処理、調停処理、例外処理等)に複雑な機構が必要となってくる。その対応として、システムの規模が小さい場合にはハードウェアによる制御回路(例えばアービタ)が有効であったが、システムの規模が大きくなるにつれて制御が複雑になるために、近年ではソフトウェアによる制御が行われている。ソフトウェアによる制御としては、例えばSMP/AMP(Symmetric Multiprocessing/Asymmetric Multiprocessing)やバーチャルマシンなどがある。しかし、制御が更に複雑になるとソフトウェア処理に係るCPUの負荷が増大してしまう。
このようなCPUの負荷を軽減する方法として、ソフトウェアで実現しているドライバのハードウェア化が考えられる。例えば、プロセッサが複数接続されたサーバシステムにおいて、ハードウェア化したドライバを用いて、複数のプロセッサが1つのI/Oスロットを利用できるようにする調停技術が提案されている(例えば、特許文献1参照。)。また、複数のOSを並行動作させてフォアグラウンドとバックグラウンドとで切り替えて利用するコンピュータシステムにおいて、切り替えの際にOSに対するペリフェラルの割り当てを制御する技術が提案されている(例えば、特許文献2参照。)。
特開2005−122640号公報 特開2008−52713号公報
前述の特許文献1、2等に記載のような機能を、制御対象の装置に内蔵される組み込みシステムに実装する場合、バスやペリフェラル回路等の各IP(Intellectual Property)のRTL(Register Transfer Level)での変更等を行わなければならない。そのため、組み込みシステムにおいて、前述の特許文献1、2等に記載のような手法でCPUの負荷を軽減しようとすると開発コストが増大してしまうという問題があった。
本発明の一観点によれば、第1のバスに接続されたCPUと、マスタからの制御命令に従って処理を実行する周辺回路と、第1のバスと周辺回路との間に設けられ、第1のバス及び周辺回路に異なるインターフェースで接続された制御回路とがチップ上に搭載されたプロセッサシステムが提供される。制御回路は、制御命令を保持するための命令バッファと、制御命令に係る調停処理を行い、その結果に応じて制御命令を周辺回路に発行するか又は命令バッファに保持するかを制御する制御部とを有する。
開示のプロセッサシステムは、ソフトウェアで実現していた調停機能をハードウェアである制御回路により実現することで、ソフトウェア制御による周辺回路の制御を制御回路によって代行することができ、CPUの負荷を低減する効果を奏する。
第1の実施形態におけるプロセッサシステムの構成例を示す図である。 第1の実施形態におけるプロセッサシステムの基本動作の一例を示すフローチャートである。 第1の実施形態におけるプロセッサシステムのタイムアウト検出動作を示すフローチャートである。 第1の実施形態におけるプロセッサシステムの優先順位制御動作を示すフローチャートである。 プロセッサシステムでの複数のペリフェラル回路による協調動作の流れを説明するための図である。 第2の実施形態におけるプロセッサシステムの構成例を示す図である。 第2の実施形態におけるプロセッサシステムでの複数のペリフェラル回路による協調動作の流れを説明するための図である。 プロセッサシステムの一例を示す図である。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
本発明の第1の実施形態について説明する。
図1は、第1の実施形態におけるプロセッサシステムの構成例を示すブロック図である。第1の実施形態におけるプロセッサシステムは、例えば制御対象の装置に内蔵される組み込みシステムとして実装される。第1の実施形態におけるプロセッサシステムは、CPU(Central Processing Unit:中央処理装置)10、メインメモリ20、ペリフェラル回路(周辺回路)30、50、及び仮想化ペリフェラルコントローラ40、60を有する。CPU10、メインメモリ20、及び仮想化ペリフェラルコントローラ40、60は、メインバスMBUSを介して互いに通信可能に接続されている。第1の実施形態におけるプロセッサシステムは、例えばCPU10、メインメモリ20、ペリフェラル回路30、50、及び仮想化ペリフェラルコントローラ40、60が1つのチップ上又は複数のチップに搭載されているものである。
CPU10は、ソフトウェア70に応じた処理を実行する。図1においては、CPU10が、2つのCPU(0)11及びCPU(1)12からなる例を示しているが、これに限定されるものではなく、CPU10は1つ若しくは複数のCPUからなる。ソフトウェア70には、オペレーティングシステム(OS:Operating System)71、アプリケーションソフト72、及びドライバ73等を含む。例えば、アプリケーションソフト72が、OS71上で動作することで具体的な処理が実行される。また、例えばドライバ73は、OS71上で動作してペリフェラル回路30、50の動作等を制御するために用いられる。
メインメモリ20は、プログラムやデータが記憶されるメモリである。メインメモリ20は、例えばソフトウェア70に応じた処理を実行する際に用いられるデータや処理結果として得られたデータを記憶する。
ペリフェラル回路30、50は、CPU10が汎用的な処理を行うのに対して新たに機能を加えたり、処理能力を向上させたりするために実装された周辺回路(例えばアクセラレータ)である。ペリフェラル回路30、50は、供給される制御命令に応じて所定の処理を行う。ペリフェラル回路30、50の各々は、設定情報や処理に係る情報を保持するための実レジスタ(内部レジスタ)31、51を有する。
仮想化ペリフェラルコントローラ40、60は、対応するペリフェラル回路30、50とメインバスMBUSとの間に設けられ、対応するペリフェラル回路30、50とメインバスMBUSとのそれぞれに異なるインターフェースで接続されている。仮想化ペリフェラルコントローラ40、60は、対応するペリフェラル回路30、50の動作制御に係る処理を行う。仮想化ペリフェラルコントローラ40、60は、例えばペリフェラル回路30、50に対して発行された制御命令を受信するとともにその調停処理を行い、調停処理の結果に応じて制御命令をペリフェラル回路30、50に発行する。なお、メインバスMBUSは同一のバスに接続されている必要はなく、通信可能であれば階層状になっているバスなどでも可能である。
仮想化ペリフェラルコントローラ40は、制御部41、命令バッファ42、タイマ43、ミラーレジスタ44、及び制御レジスタ45を有する。制御部41は、仮想化ペリフェラルコントローラ40内の各機能部を制御する。制御部41は、命令バッファ42に保持されている制御命令を含むマスタからの制御命令に係る調停処理を行うアービタ部を有し、その調停結果に応じてペリフェラル回路30に制御命令を発行する。命令バッファ42は、マスタからペリフェラル回路30に対して発行された制御命令を蓄積する。
タイマ43は、ペリフェラル回路30に制御命令を発行してからの経過時間を計測する。例えば、タイマ43での計測結果に基づいて、ペリフェラル回路30についてのタイムアウト検出が行われ、ストール検出やリセット命令の発行が行われる。タイマ43は、例えばカウンタを用いて構成される。ミラーレジスタ44は、対応するペリフェラル回路30の実レジスタ31に保持されている情報をコピーするレジスタであり、実レジスタ31に対応するように構成されている。このミラーレジスタ44を用いて、実レジスタ31に保持されている設定情報や処理に係る情報の退避、復元が行われる。制御レジスタ45は、仮想化ペリフェラルコントローラ40の各種制御を行うためのレジスタである。制御レジスタ45の例としては、タイムアウト時間を設定するタイムアウト時間設定レジスタや、制御命令の優先順位を設定する優先順位設定レジスタや、初期化命令を設定する初期化命令設定レジスタがある。
なお、仮想化ペリフェラルコントローラ60の内部構成は、図1においては図示を省略しているが、仮想化ペリフェラルコントローラ40と同様に構成される。
本実施形態におけるプロセッサシステムでは、複数のマスタが1つのペリフェラル回路に対してアクセス可能、すなわちペリフェラル回路に対する制御命令を発行可能である。例えば、マスタは、OS71、アプリケーションソフト72、ドライバ73、CPU10等である。
第1の実施形態におけるプロセッサシステムの基本動作は、以下の通りである。
図2は、第1の実施形態におけるプロセッサシステムの基本動作の一例を示すフローチャートである。なお、図2に示す基本動作は、仮想化ペリフェラルコントローラが制御部及び命令バッファを少なくとも有していれば実行可能である。以下、一例として処理要求がなされるペリフェラル回路を、ペリフェラル回路30として説明する。
アプリケーション72に基づく処理の実行中に(S101)、ペリフェラル回路30で実行させる処理が発生すると、例えばドライバ73から仮想化ペリフェラルコントローラ40へ制御命令が発行される(S102)。仮想化ペリフェラルコントローラ40がドライバ73からの制御命令を受けると、制御部41は、ペリフェラル回路30が動作中であるか否か、すなわち他の制御命令に従って処理を実行中であるか否かを確認する(S103)。
確認の結果、ペリフェラル回路30が動作中である場合には、制御部41は、今回発行されたドライバ73からの制御命令をペンディングし、その制御命令を命令バッファ42に蓄積する(S108)。そして、ステップS101に戻る。一方、ペリフェラル回路30が動作中でない場合には、制御部41は、今回発行されたドライバ73からの制御命令を、ペリフェラル回路30へ発行する(S104)。そして、ペリフェラル回路30は、発行された制御命令に従って処理を実行する。
ペリフェラル回路30への制御命令の発行後、制御部41は、ペリフェラル回路30からの終了割込み待ち状態となる(S105)。制御部41は、終了割込み待ち状態においてペリフェラル回路30からの終了割込みが通知されると、ペリフェラル回路30での処理が完了したことを示す処理完了信号を、その処理に係る制御命令を発行したドライバ73に通知する(S106)。
続いて、制御部41は、ペンディングされている制御命令が命令バッファ42にあるか否かを確認する(S107)。確認の結果、ペンディングされている制御命令がない場合には、ステップS101に戻る。一方、ペンディングされている制御命令がある場合には、ステップS104に戻り、制御部41は、命令バッファ42に保持されたペンディングされている制御命令をペリフェラル回路30へ発行してステップS104〜S107の処理を再び行う。
第1の実施形態によれば、メインバスMBUSとペリフェラル回路30、50との間に仮想化ペリフェラルコントローラ40、60を設け、仮想化ペリフェラルコントローラ40、60が、複数のマスタからのペリフェラル回路30、50へのアクセスを調停する。すなわち、バーチャルマシンなどのソフトウェアで実現していた調停機能を、ハードウェアである仮想化ペリフェラルコントローラ40、60により実現する。このように仮想化ペリフェラルコントローラ40、60によって、ソフトウェア制御によるペリフェラル回路の制御を代行することができ、CPUの負荷を低減することができる。
また、ペリフェラル回路30、50そのものを仮想化することで、マスタが、ペリフェラル回路30、50を制御するのではなく、仮想化ペリフェラルコントローラ40、60を操作する。そして、その仮想化ペリフェラルコントローラ40、60がペリフェラル回路30、50を制御する。すなわち、アクセスするマスタは、ペリフェラル回路30、50と直接通信せずに、仮想化ペリフェラルコントローラ40、60と通信を行うことで処理を実行させることができる。したがって、マスタからは直接ペリフェラル回路30、50を扱うようにして制御を行うことができる。
また、本実施形態における仮想化ペリフェラルコントローラ40、60においては、ペリフェラル回路30、50のアドレスを仮想化する必要もなく、元のアドレスをそのまま用いることも可能である。これにより、既存のソフトウェアドライバの流用時にアクセスするアドレスの変更を行う必要もなくなり、ドライバの移植性が高くなる。また、アドレス設定に制限がないため、従来必要であったアドレスデコードのための回路を設ける必要がなく、回路構成の簡略化を図ることができる。
また、マスタが接続されたバスとペリフェラル回路とを接続するために通信プロトコルの変換を行うバスブリッジをバスとペリフェラル回路との間に設けている場合がある。その場合には、バスブリッジ内に仮想化ペリフェラルコントローラの機能を実装することで、低コスト及び小面積で前述した機能を実現することができる。
ここで、図8に示したプロセッサシステムにおいて、OS(0)151がペリフェラル回路130に対して制御命令を発行する際、ドライバ153のバグなどにより不正な処理を実行させる制御命令をペリフェラル回路130に対して発行したとする。このとき、その制御命令に従って処理の実行を開始したペリフェラル回路30が異常状態になり、ハングアップ状態となる状況が発生し得る。そのような状況の下で、OS(1)151がペリフェラル回路130に対して制御命令を発行しようとした場合、ハングアップ状態により待ち状態となる。しかし、OS(1)151側ではハングアップ状態による待ちであることを検出することができず、最終的にはOS(0)151に加え、OS(1)151もストールを起こしてしまう。このような問題が発生した場合には、特許文献1に記載のようなサーバシステムであればシステムを停止してデバッグや再起動を行い問題の解決を図ることができるが、リアルタイム処理や無停止運転が要求される組み込みシステムでは問題の解決を図ることは困難である。
そこで、本実施形態におけるプロセッサシステムでは、ペリフェラル回路についてのタイムアウト検出を行い、タイムアウトとなった場合には、システム全体の停止を行うことなく、タイムアウトとなったペリフェラル回路のみの再起動を実行可能にしている。これにより、例えばペリフェラル回路が異常状態となっても(異常動作を行っていても)、システム全体を停止させるのではなく、異常状態となったペリフェラル回路のみを停止して再起動することで正常状態への復帰を図ることができる。
図3は、第1の実施形態におけるプロセッサシステムのタイムアウト検出動作を示すフローチャートである。以下では、一例として処理要求がなされるペリフェラル回路を、ペリフェラル回路30として説明する。
本実施形態におけるプロセッサシステムにおいては、仮想化ペリフェラルコントローラ40の制御レジスタ45としてタイムアウト時間設定レジスタが設けられる。タイムアウト時間設定レジスタには、図3に示す動作の開始前にタイムアウト時間が予め設定される。そして、ペリフェラル回路30への制御命令の発行後、設定されたタイムアウト時間を過ぎてもペリフェラル回路30からの応答がない場合には、仮想化ペリフェラルコントローラ40はタイムアウトであると判断する。
図3に示すように、アプリケーション72に基づく処理の実行中に(S201)、ペリフェラル回路30で実行させる処理が発生すると、例えばドライバ73から仮想化ペリフェラルコントローラ40へ制御命令が発行される(S202)。仮想化ペリフェラルコントローラ40がドライバ73からの制御命令を受けると、制御部41は、ペリフェラル回路30が動作中であるか否かを確認する(S203)。
確認の結果、ペリフェラル回路30が動作中でない場合には、制御部41は、タイマ43による時間の計測(タイムカウント)を開始させるとともに(S204)、今回発行された制御命令をペリフェラル回路30へ発行する(S205)。そして、ペリフェラル回路30は、発行された制御命令に従って処理を実行する。
ペリフェラル回路30への制御命令の発行後、制御部41は、ペリフェラル回路30からの終了割込み待ち状態となる(S206)。また、制御部41は、終了割込み待ち状態において、タイマ43で計測されている制御命令発行からの経過時間が、レジスタに予め設定されたタイムアウト時間を越えたか否か、すなわちタイムアウトであるか否かの判定を随時行っている(S207)。
そして、制御部41は、終了割込み待ち状態において制御命令発行からの経過時間がタイムアウト時間を越える前に、ペリフェラル回路30からの終了割込みが通知されると、処理に係る制御命令を発行したドライバ73に処理完了信号を通知する(S208)。続いて、制御部41は、ペンディングされている制御命令が命令バッファ42にあるか否かを確認する(S209)。確認の結果、ペンディングされている制御命令がない場合には、ステップS201に戻る。一方、ペンディングされている制御命令がある場合には、ステップS204に戻り、制御部41は、命令バッファ42内のペンディングされている制御命令についてステップS204以降の処理を行う。
また、制御部41は、終了割込み待ち状態において終了割込みが通知されることなく制御命令発行からの経過時間がタイムアウト時間を越えると、タイムアウトであると判定してペリフェラル回路30の再起動動作を開始する。まず、制御部41は、ペリフェラル回路30の実レジスタ31に保持されている情報を、ミラーレジスタ44にコピーして退避させる(S210)。次に、制御部41は、ペリフェラル回路30に対してリセット命令を発行し、ペリフェラル回路30の再起動を行う(S211)。
ステップS211においてペリフェラル回路30の再起動を行った後、制御部41は、ステップS204に戻り、ステップS204以降の処理を行う。ここで、他のペンディングされている制御命令が命令バッファ42内にある場合には、制御部41は、ペンディングされている制御命令についてステップS204以降の処理を行う。また、タイムアウトとなって中断された制御命令に係る処理の続きを行う場合には、制御部41は、ミラーレジスタ44に保持されている情報を、ペリフェラル回路30の実レジスタ31にコピーして復元し処理を開始させる。
また、ステップS203での確認の結果、ペリフェラル回路30が動作中である場合には、仮想化ペリフェラルコントローラ40の動作は、優先順位制御動作に移行する(S212)。なお、優先順位制御動作の詳細については後述する。そして、優先順位制御動作での処理結果に応じて、制御部41は、ペンディングする制御命令を命令バッファ42に蓄積して(S213)、ステップS201に戻る。
なお、前述した例では、ステップS210において、仮想化ペリフェラルコントローラの制御部は、ミラーレジスタにペリフェラル回路の実レジスタの内容をコピーし退避させるようにしている。しかしながら、タイムアウトになったときにはペリフェラル回路30が異常状態であるとみなす場合には、ステップS210において、仮想化ペリフェラルコントローラの制御部が、レジスタの内容のコピーを行わなくとも良い。この場合には、例えばステップS210において制御部41が、処理に係る制御命令を発行したドライバ73に、単なるエラー通知を行うようにしても良い。
また、制御命令を発行したマスタの切替の際には、ステップS204あるいはステップS205の処理を実行する前に、仮想化ペリフェラルコントローラから初期化命令を発行してペリフェラル回路の初期化を行うようにしても良い。このように仮想化ペリフェラルコントローラからの初期化命令に従ってペリフェラル回路の初期化を行わせることでCPUの負荷を軽減することができる。ペリフェラル回路の初期化を行う場合には、初期化動作後に、仮想化ペリフェラルコントローラのミラーレジスタに保持されている内容をペリフェラル回路の実レジスタに書き戻すようにすれば良い。なお、仮想化ペリフェラルコントローラの制御レジスタとして初期化命令設定レジスタを設け、そのレジスタに各マスタにて必要な初期化命令を格納することで、マスタに応じたペリフェラル回路の初期化を行うことができる。
また、タイムアウトとなってペリフェラル回路が再起動された回数をカウントしておき、ある回数を越えた場合には、仮想化ペリフェラルコントローラから制御命令を発行するマスタ(OS71やアプリケーションソフト72等)へ通知を行うようにしても良い。この通知を行う場合には、ペリフェラル回路が再起動された回数を保持する再起動回数レジスタ及び許容する再起動回数の上限値を設定する再起動回数上限レジスタが、仮想化ペリフェラルコントローラの制御レジスタとして設けられる。再起動回数上限レジスタに予め上限値を設定しておくとともに、仮想化ペリフェラルコントローラの制御部は、ペリフェラル回路の再起動を行う度に、再起動を行った回数の累積値を再起動回数レジスタに書き込む。そして、仮想化ペリフェラルコントローラの制御部は、再起動回数レジスタの値が再起動回数上限レジスタの値を越えたか否かを判定し、越えた場合にはマスタに対して通知を行う。
以上説明したタイムアウト検出動作によれば、仮想化ペリフェラルコントローラが対応するペリフェラル回路のタイムアウトの検出を行い、タイムアウトとなった場合には仮想化ペリフェラルコントローラがペリフェラル回路の再起動動作を行う。これにより、ソフトウェアにより行っていたタイムアウトの検出、及びペリフェラル回路の再起動動作を、仮想化ペリフェラルコントローラが実施することができ、CPUの負荷を軽減することができる。
図4は、第1の実施形態におけるプロセッサシステムの優先順位制御動作を示すフローチャートである。なお、図4に示す優先順位制御動作は、仮想化ペリフェラルコントローラが制御部、命令バッファ、及び制御レジスタを少なくとも有していれば実行可能である。以下では、一例として処理要求がなされるペリフェラル回路を、ペリフェラル回路30として説明する。なお、図4におけるステップS304、S305、及びS310での処理が、図3におけるステップS212での処理に対応する。
本実施形態におけるプロセッサシステムにおいては、仮想化ペリフェラルコントローラ40の制御レジスタ45として制御命令の優先度を設定する優先順位設定レジスタが設けられる。優先順位設定レジスタには、図4に示す動作の開始前に各マスタの優先順位が予め設定される。仮想化ペリフェラルコントローラ40は、優先順位設定レジスタに設定された優先度を基にマスタ間の優先順位を判断して、制御命令をペリフェラル回路30へ発行する。
図4に示すように、アプリケーション72に基づく処理の実行中に(S301)、ペリフェラル回路30で実行させる処理が発生すると、例えばドライバ73から仮想化ペリフェラルコントローラ40へ制御命令が発行される(S302)。仮想化ペリフェラルコントローラ40がドライバ73からの制御命令を受けると、制御部41は、ペリフェラル回路30が動作中であるか否か、すなわち他の制御命令に従って処理を実行中であるか否かを確認する(S303)。
確認の結果、ペリフェラル回路30が動作中である場合には、制御部41は、処理中の制御命令を発行したマスタの優先度と、今回発行された制御命令を発行したマスタの優先度とを比較する。その結果、今回発行された制御命令を発行したマスタの優先度が、処理中の制御命令を発行したマスタの優先度より高い場合には、制御部41は、ペリフェラル回路30の実レジスタ31に保持されている情報を、ミラーレジスタ44にコピーして退避させる(S305)。
ペリフェラル回路30が動作中でない場合、若しくはステップS305において実レジスタ31の内容をミラーレジスタ44にコピーして退避させた後、制御部41は、今回発行された制御命令をペリフェラル回路30へ発行する(S306)。そして、ペリフェラル回路30は、発行された制御命令に従って処理を実行する。
ペリフェラル回路30への制御命令の発行後、制御部41は、ペリフェラル回路30からの終了割込み待ち状態となる(S307)。制御部41は、終了割込み待ち状態においてペリフェラル回路30からの終了割込みが通知されると、処理に係る制御命令を発行したドライバ73に処理完了信号を通知する(S308)。続いて、制御部41は、ペンディングされている制御命令が命令バッファ42にあるか否かを確認する(S309)。確認の結果、ペンディングされている制御命令がない場合には、ステップS301に戻る。一方、ペンディングされている制御命令がある場合には、ステップS306に戻り、制御部41は、命令バッファ内のペンディングされている制御命令についてステップS306以降の処理を行う。
ステップS304における比較の結果、処理中の制御命令を発行したマスタの優先度が、今回発行された制御命令を発行したマスタの優先度より高い場合には、制御部41は、今回発行された制御命令を発行したドライバ73に受領通知を返す(S310)。この受領通知は、今回発行された制御命令を受け取ったことを示すものである。そして、制御部41は、今回発行された制御命令をペンディングし、その制御命令を命令バッファ42に蓄積する(S311)。そして、ステップS301に戻る。
なお、前述した例では、優先順位設定レジスタに設定されたマスタの優先順位に基づいて優先順位制御を行うようにしているが、制御命令自体に優先度情報を付加して、その優先度情報に基づいて優先順位制御を行うようにしても良い。制御命令に優先度情報を付加する場合には、制御命令を発行するマスタに制御命令に優先度情報を組み込む機構を付加するとともに、仮想化ペリフェラルコントローラの制御部に制御命令の優先度判定機能を付加すれば良い。また、優先順位設定レジスタに設定されたマスタの優先順位に基づく優先順位制御とともに、制御命令に付加された優先度情報に基づく優先順位制御を合わせて用いるようにしても良い。
以上説明した優先順位制御動作によれば、1つのペリフェラルに対して複数の制御命令が発行された場合において、ソフトウェアにより行っていたスケジューリング機能を仮想化ペリフェラルコントローラが行うことで、CPUの負荷を軽減することができる。さらに、優先度に従って適切な順序で、ペリフェラル回路に制御命令に係る処理を実行させることができる。また、発行された制御命令をペンディングする場合に、その制御命令を発行したマスタに受領通知を返すことで、マスタ側からは制御命令を受けとった後に処理を行っている長レイテンシのデバイスのように見せることができ、ソフトウェア割込みのタイムアウトを回避することができる。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。
ここで、図8に示したプロセッサシステムにおいて、複数のペリフェラル回路による処理を逐次的に実行する協調動作を行う場合について、プロセッサシステムにおける動作を、図5を参照して説明する。図5において、図8に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
図5においては、まずペリフェラル回路130で第1の処理を行い、その処理結果に対してペリフェラル回路140で第2の処理を行う場合を一例として示している。このようなペリフェラル回路130、140による逐次処理を実行する場合、まずペリフェラル回路130に第1の処理を実行させるための第1の制御命令がドライバ153からペリフェラル回路130へ発行される(P101)。ドライバ153からの第1の制御命令を受けたペリフェラル回路130は、第1の制御命令に従って実行する処理で用いる処理前データをメインメモリ120から読み込む(P102)。そして、ペリフェラル回路130は、第1の制御命令に従って処理を実行して処理済データをメインメモリ120に格納し(P103)、第1の制御命令に係る処理が終了したことをドライバ153に通知する(P104)。
ドライバ153は、ペリフェラル回路130から第1の制御命令に係る処理が終了した旨の通知を受けると、続いてペリフェラル回路140に第2の処理を実行させるための第2の制御命令をペリフェラル回路140へ発行する(P105)。ドライバ153からの第2の制御命令を受けたペリフェラル回路140は、メインメモリ120に格納されている第1の制御命令に係る処理済データを、第2の制御命令に従って実行する処理の処理前データとしてメインメモリ120から読み込む(P106)。そして、ペリフェラル回路140は、第2の制御命令に従って処理を実行して処理済データをメインメモリ120に格納する(P107)。
しかし、前述のように複数のペリフェラル回路による逐次処理を実行する場合には、1つのペリフェラル回路での処理が終了する毎に、次に処理を行うペリフェラル回路に対して制御命令を発行しなくてはならず、CPUの負荷が増大する。また、各ペリフェラル回路で処理を実行するに際して、メインメモリからの処理前データの読み込み、及びメインメモリへの処理済データの格納が発生するため、メインメモリへのアクセス頻度が高くなる。
以下に説明する第2の実施形態におけるプロセッサシステムは、複数のペリフェラル回路による処理を逐次的に実行する協調動作において、CPUの負荷及びメインメモリへのアクセス頻度が増大することを抑制するものである。図6は、第2の実施形態におけるプロセッサシステムの構成例を示すブロック図である。第2の実施形態におけるプロセッサシステムは、例えば制御対象の装置に内蔵される組み込みシステムとして実装される。なお、図6において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
図6に示すように、第2の実施形態におけるプロセッサシステムは、CPU10、メインメモリ20、ペリフェラル回路30、50、及び仮想化ペリフェラルコントローラ40、60に加え、データメモリ80を有する。第2の実施形態におけるプロセッサシステムは、例えばCPU10、メインメモリ20、ペリフェラル回路30、50、仮想化ペリフェラルコントローラ40、60、及びデータメモリ80が1つのチップ上又は複数のチップに搭載されているものである。
データメモリ80は、複数のペリフェラル回路30、50による逐次処理を実行する場合に、逐次処理における最終的な結果を除く各ペリフェラル回路の処理結果(処理終了後のデータ)を格納するメモリである。すなわち、データメモリ80は、ペリフェラル回路30、50間で授受されることとなるデータが格納される。データメモリ80は、メインバスMBUSとは異なる内部バスIBUSを介して、協調動作にかかわるペリフェラル回路30、50に対応する仮想化ペリフェラルコントローラ40、60と互いに通信可能に接続される。データメモリ80へのデータの書き込み、及びデータメモリ80からのデータの読み出しは、仮想化ペリフェラルコントローラ40、60のリーダ/ライタ46、61により内部バスIBUSを介して行う。
なお、仮想化ペリフェラルコントローラ40、60に第1の実施形態と同様の各機能部を設けることで、プロセッサシステムは、以下に説明する複数のペリフェラル回路による協調動作だけでなく、第1の実施形態において示した各動作を行うことが可能である。
次に、第2の実施形態におけるプロセッサシステムでの複数のペリフェラル回路による逐次処理を実行する協調動作について説明する。図7は、第2の実施形態におけるプロセッサシステムでの複数のペリフェラル回路による逐次処理の流れを説明するための図である。図7において、図1及び図6に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。
以下では、一例としてペリフェラル回路30、50による逐次処理を実行する場合について説明する。ペリフェラル回路30、50による逐次処理としては、例えばペリフェラル回路30が画像のコーデック処理を行い、ペリフェラル回路50がそのデータのフィルタ処理を行うような場合があげられる。
アプリケーション72に基づく処理の実行中に、ペリフェラル回路30、50を用いて逐次的に実行する処理が発生すると、例えばドライバ73から仮想化ペリフェラルコントローラ40、60へ制御命令が発行される(P11)。このとき、発行される制御命令は、ペリフェラル回路30、50による逐次処理を実行する協調動作用の制御命令である。
ペリフェラル回路30、50による協調動作用の制御命令をドライバ73から受けた仮想化ペリフェラルコントローラ40、60は、逐次処理を行う前段のペリフェラル回路30及び後段のペリフェラル回路50が動作可能になるまで待機する。例えば、仮想化ペリフェラルコントローラ40、60内のリーダ/ライタ46、61等が互いに通信するなどしてペリフェラル回路30、50の状態を相互に確認する。ペリフェラル回路30、50が動作可能であると確認されるまで、仮想化ペリフェラルコントローラ40、60内の制御部は、ペリフェラル回路30、50に対して逐次処理に係る制御命令を発行しないようにする。
そして、動作可能になると、仮想化ペリフェラルコントローラ40内の制御部は、ペリフェラル回路30へ逐次処理に係る制御命令を発行する。このとき、仮想化ペリフェラルコントローラ40は、ペリフェラル回路30が実行する処理で用いる処理前データをメインバスMBUSを介してメインメモリ20から読み込み、ペリフェラル回路30に供給する(P12)。そして、発行された制御命令に従ってペリフェラル回路30により処理が実行された後、仮想化ペリフェラルコントローラ40は、ペリフェラル回路30から処理済データを受けて、内部バスIBUSを介してデータメモリ80に格納する(P13)。
また、仮想化ペリフェラルコントローラ60内の制御部は、ペリフェラル回路50へ逐次処理に係る制御命令を発行する。このとき、仮想化ペリフェラルコントローラ60は、ペリフェラル回路50での処理前データとなるペリフェラル回路30での処理済データを内部バスIBUSを介してデータメモリ80から読み込み、ペリフェラル回路50に供給する(P14)。なお、ペリフェラル回路50への逐次処理に係る制御命令の発行は、ペリフェラル回路30への逐次処理に係る制御命令の発行後であれば、ペリフェラル回路30による処理が完了する前(処理中)であっても良い。
そして、発行された制御命令に従ってペリフェラル回路50により処理が実行された後、仮想化ペリフェラルコントローラ60は、ペリフェラル回路50から処理済データを受けて、メインバスMBUSを介してメインメモリ20に格納する(P15)。このようにして逐次的に処理を実行することでペリフェラル回路30、50による協調動作が終了すると、この協調動作用の制御命令を発行したドライバ73へ動作完了通知を行う。ドライバ73への動作完了通知は、すくなくとも逐次処理において最終段の処理を行うペリフェラル回路に対応する仮想化ペリフェラルコントローラが行えば良い。
第2の実施形態によれば、複数のペリフェラル回路による逐次処理を実行する協調動作を行う場合において、マスタは複数のペリフェラル回路に対する協調動作用の制御命令を発行するだけで、複数のペリフェラル回路による逐次処理を実行させることができる。これにより、マスタ側では、各ペリフェラル回路での処理の終了を検知したり、処理順序に従って各ペリフェラル回路に制御命令を順次発行したりする必要がなくなり、CPUの負荷を軽減することができる。また、ペリフェラル回路間でのデータの授受は、メインバスMBUSとは異なる内部バスIBUSを介して接続されたデータメモリ80を用いて行うので、メインメモリ20へのアクセス頻度が増大することを抑制することができる。本実施形態によれば、例えばn個のペリフェラル回路で逐次処理を行う場合には、図5に示した動作と比較してメインメモリへのアクセスをn分の1に削減することができる。
なお、仮想化ペリフェラルコントローラ40、60のリーダ/ライタ46、61が、データメモリ80への書き込み速度及びデータメモリ80からの読み出し速度を制御できるようにしても良い。例えば、仮想化ペリフェラルコントローラ40、60のリーダ/ライタ46、61が、書き込み速度や読み出し速度が所望の速度となるように、ペリフェラル回路30、50に対して処理を一時停止させたり、制御命令の発行制御を指示したりするようにしても良い。これにより、次段のペリフェラル回路に係るデータメモリからのデータ読み込み速度が遅い場合には前段のペリフェラル回路に係るデータメモリへのデータ書き込み速度を遅くすることを可能にし、データメモリがオーバーフローすることを防止することができる。また、前段のペリフェラル回路に係るデータメモリへのデータ書き込み速度が遅い場合には次段のペリフェラル回路に係るデータメモリからのデータ読み出し速度を遅くすることも可能となる。
また、前述した例では、2つのペリフェラル回路による逐次処理を実行する場合について説明したが、3つ以上のペリフェラル回路による逐次処理も実行可能である。この場合には、逐次処理における各処理を行うペリフェラル回路のうち、逐次処理における最後の処理を行うペリフェラル回路を除く各ペリフェラル回路の処理結果をデータメモリ80に格納する。また、逐次処理における最後の処理を行うペリフェラル回路の処理結果をメインメモリ20に格納する。
なお、前述した第1及び第2の実施形態では、優先順位制御動作にて発行された制御命令をペンディングする場合にマスタに受領通知を返すようにしている。しかし、これに限らず、任意の動作において、ペンディングするか否かにかかわらず、マスタからの制御命令を受ける度に、その制御命令を発行したマスタに受領通知を返すようにしても良い。このようにすることで、マスタ側からは制御命令を受けとった後に処理を行っている長レイテンシのデバイスのように見せることができ、ソフトウェア割込みのタイムアウトを回避することができる。また、制御レジスタとしてレスポンス制御レジスタを設け、その設定に応じて制御命令を発行したマスタに受領通知を返すか否かを切り替えるようにしても良い。
また、前述した第1及び第2の実施形態におけるプロセッサシステムでは、ペリフェラル回路と仮想化ペリフェラルコントローラとの組を2組有するプロセッサシステムを示しているが、これに限定されるものではない。プロセッサシステムが有するペリフェラル回路と仮想化ペリフェラルコントローラとの組の数は任意である。
また、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の諸態様を付記として以下に示す。
(付記1)
第1のバスに接続されたCPUと、
前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する周辺回路と、
前記第1のバスと前記周辺回路との間に設けられ、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された制御回路とを備え、
前記制御回路は、
前記マスタから発行された制御命令を保持するための命令バッファと、
前記制御命令に係る調停処理を行い、処理結果に応じて前記制御命令を前記周辺回路に発行するか又は前記命令バッファに保持するかを制御する制御部とを有することを特徴とするプロセッサシステム。
(付記2)
前記制御回路は、
前記周辺回路に制御命令を発行してからの経過時間を計測するタイマ部と、
タイムアウト時間を設定するレジスタとを有し、
前記タイマ部により計測された制御命令発行からの経過時間が、前記レジスタに設定された前記タイムアウト時間を越えた場合に、前記周辺回路のタイムアウトを検出することを特徴とする付記1記載のプロセッサシステム。
(付記3)
前記制御回路は、
前記周辺回路の内部レジスタに対応するミラーレジスタを有し、
前記周辺回路のタイムアウトを検出した場合には、前記周辺回路の内部レジスタが保持している情報を前記ミラーレジスタに退避し、前記周辺回路の再起動を行うことを特徴とする付記2記載のプロセッサシステム。
(付記4)
前記制御回路は、
許容する前記周辺回路の再起動の回数の上限値を設定するレジスタを有し、
前記周辺回路を再起動した回数が、前記レジスタに設定された上限値を越えた場合には、前記マスタに通知を行うことを特徴とする付記3記載のプロセッサシステム。
(付記5)
前記制御回路は、前記制御命令を受けたことの応答として当該制御命令を発行したマスタに受領通知を返すことを特徴とする付記1〜4の何れか1項に記載のプロセッサシステム。
(付記6)
前記制御回路は、
前記周辺回路の内部レジスタに対応するミラーレジスタと、
前記制御命令の優先度を設定するレジスタとを有し、
前記周辺回路が制御命令に従って処理を実行しているときに新たに発行された制御命令を受けた場合には、実行している処理の制御命令の優先度と新たに発行された制御命令の優先度とを比較し、新たに発行された制御命令の優先度が実行している処理の制御命令の優先度より高ければ、前記周辺回路の内部レジスタが保持している情報を前記ミラーレジスタに退避し、新たに発行された制御命令を前記周辺回路に発行することを特徴とする付記1〜5の何れか1項に記載のプロセッサシステム。
(付記7)
前記制御回路は、
各マスタに対応して前記周辺回路を初期化する初期化命令を格納するレジスタを有し、
前記周辺回路に発行する制御命令のマスタが変更される毎に、前記レジスタに格納された前記マスタに対応する初期化命令を、前記周辺回路への前記制御命令の発行前に、前記周辺回路に発行することを特徴とする付記1〜6の何れか1項に記載のプロセッサシステム。
(付記8)
複数の前記周辺回路と複数の前記制御回路とが搭載されているとともに、前記第1のバスに接続された第1のメモリと、前記第1のバスとは異なる第2のバスを介して複数の前記制御回路と接続された第2のメモリとをさらに備え、
複数の前記周辺回路による逐次処理を実行させる制御命令が前記マスタから発行されると、前記逐次処理における各処理を行う前記周辺回路のうち、前記逐次処理における最後の処理を行う前記周辺回路を除く各周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を次の処理を行う前記周辺回路に提供するために前記第2のバスを介して前記第2のメモリに格納し、前記逐次処理における最後の処理を行う前記周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を前記第1のバスを介して前記第1のメモリに格納することを特徴とする付記1〜7の何れか1項に記載のプロセッサシステム。
(付記9)
第1のバスに接続されたCPUと、
前記第1のバスに接続された第1のメモリと、
前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する複数の周辺回路と、
前記第1のバスと前記周辺回路との間に設けられ、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された複数の制御回路と、
前記第1のバスとは異なる第2のバスを介して複数の前記制御回路と接続された第2のメモリとを備えることを特徴とするプロセッサシステム。
(付記10)
複数の前記周辺回路による逐次処理を実行させる制御命令が前記マスタから発行されると、前記逐次処理における各処理を行う前記周辺回路のうち、前記逐次処理における最後の処理を行う前記周辺回路を除く各周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を次の処理を行う前記周辺回路に提供するために前記第2のバスを介して前記第2のメモリに格納し、前記逐次処理における最後の処理を行う前記周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を前記第1のバスを介して前記第1のメモリに格納することを特徴とする付記9記載のプロセッサシステム。
(付記11)
前記制御回路は、前記第2のメモリへの書き込み速度及び前記第2のメモリからの読み出し速度が制御可能であることを特徴とする付記9又は10記載のプロセッサシステム。
(付記12)
第1のバスに接続されたCPUと、前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する周辺回路と、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された制御回路とを備えるプロセッサシステムの制御方法であって、
前記制御回路が、前記マスタから発行された制御命令に係る調停処理を行い、処理結果に応じて前記制御命令を前記周辺回路に発行するか又は前記制御命令を保持するための命令バッファに保持するかを制御することを特徴とするプロセッサシステムの制御方法。
(付記13)
第1のバスに接続されたCPUと、前記第1のバスに接続された第1のメモリと、前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する複数の周辺回路と、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された複数の制御回路と、前記第1のバスとは異なる第2のバスを介して複数の前記制御回路と接続された第2のメモリとを備えるプロセッサシステムの制御方法であって、
複数の前記周辺回路による逐次処理を実行させる制御命令が前記マスタから発行されると、前記逐次処理における各処理を行う前記周辺回路のうち、前記逐次処理における最後の処理を行う前記周辺回路を除く各周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を次の処理を行う前記周辺回路に提供するために前記第2のバスを介して前記第2のメモリに格納し、前記逐次処理における最後の処理を行う前記周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を前記第1のバスを介して前記第1のメモリに格納することを特徴とするプロセッサシステムの制御方法。
(付記14)
CPUが接続された第1のバス及び制御命令に従って処理を実行する周辺回路に異なるインターフェースで接続された制御回路であって、
前記CPUを含む複数のマスタから発行された前記制御命令を保持するための命令バッファと、
前記制御命令に係る調停処理を行い、処理結果に応じて前記制御命令を前記周辺回路に発行するか又は前記命令バッファに保持するかを制御する制御部とを備えることを特徴とする制御回路。
10 CPU
20 メインメモリ
30、50 ペリフェラル回路
31、51 実レジスタ
40、60 仮想化ペリフェラルコントローラ
41 制御部
42 命令バッファ
43 タイマ
44 ミラーレジスタ
45 制御レジスタ
46、61 リーダ/ライタ
70 ソフトウェア
80 データメモリ
MBUS メインバス
IBUS 内部バス

Claims (7)

  1. 第1のバスに接続されたCPUと、
    前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する周辺回路と、
    前記第1のバスと前記周辺回路との間に設けられ、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された制御回路とを備え、
    前記制御回路は、
    前記マスタから発行された制御命令を保持するための命令バッファと、
    前記制御命令に係る調停処理を行い、処理結果に応じて前記制御命令を前記周辺回路に発行するか又は前記命令バッファに保持するかを制御する制御部とを有することを特徴とするプロセッサシステム。
  2. 前記制御回路は、
    前記周辺回路に制御命令を発行してからの経過時間を計測するタイマ部と、
    タイムアウト時間を設定するレジスタとを有し、
    前記タイマ部により計測された制御命令発行からの経過時間が、前記レジスタに設定された前記タイムアウト時間を越えた場合に、前記周辺回路のタイムアウトを検出することを特徴とする請求項1記載のプロセッサシステム。
  3. 前記制御回路は、
    前記周辺回路の内部レジスタに対応するミラーレジスタと、
    前記制御命令の優先度を設定するレジスタとを有し、
    前記周辺回路が制御命令に従って処理を実行しているときに新たに発行された制御命令を受けた場合には、実行している処理の制御命令の優先度と新たに発行された制御命令の優先度とを比較し、新たに発行された制御命令の優先度が実行している処理の制御命令の優先度より高ければ、前記周辺回路の内部レジスタが保持している情報を前記ミラーレジスタに退避し、新たに発行された制御命令を前記周辺回路に発行することを特徴とする請求項1又は2記載のプロセッサシステム。
  4. 複数の前記周辺回路と複数の前記制御回路とが搭載されているとともに、前記第1のバスに接続された第1のメモリと、前記第1のバスとは異なる第2のバスを介して複数の前記制御回路と接続された第2のメモリとをさらに備え、
    複数の前記周辺回路による逐次処理を実行させる制御命令が前記マスタから発行されると、前記逐次処理における各処理を行う前記周辺回路のうち、前記逐次処理における最後の処理を行う前記周辺回路を除く各周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を次の処理を行う前記周辺回路に提供するために前記第2のバスを介して前記第2のメモリに格納し、前記逐次処理における最後の処理を行う前記周辺回路に対応する前記制御回路は、当該周辺回路の処理結果を前記第1のバスを介して前記第1のメモリに格納することを特徴とする請求項1〜3の何れか1項に記載のプロセッサシステム。
  5. 第1のバスに接続されたCPUと、
    前記第1のバスに接続された第1のメモリと、
    前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する複数の周辺回路と、
    前記第1のバスと前記周辺回路との間に設けられ、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された複数の制御回路と、
    前記第1のバスとは異なる第2のバスを介して複数の前記制御回路と接続された第2のメモリとを備えることを特徴とするプロセッサシステム。
  6. 第1のバスに接続されたCPUと、前記CPUを含む複数のマスタから発行された制御命令に従って処理を実行する周辺回路と、前記第1のバス及び前記周辺回路に異なるインターフェースで接続された制御回路とを備えるプロセッサシステムの制御方法であって、
    前記制御回路が、前記マスタから発行された制御命令に係る調停処理を行い、処理結果に応じて前記制御命令を前記周辺回路に発行するか又は前記制御命令を保持するための命令バッファに保持するかを制御することを特徴とするプロセッサシステムの制御方法。
  7. CPUが接続された第1のバス及び制御命令に従って処理を実行する周辺回路に異なるインターフェースで接続された制御回路であって、
    前記CPUを含む複数のマスタから発行された前記制御命令を保持するための命令バッファと、
    前記制御命令に係る調停処理を行い、処理結果に応じて前記制御命令を前記周辺回路に発行するか又は前記命令バッファに保持するかを制御する制御部とを備えることを特徴とする制御回路。
JP2009298863A 2009-12-28 2009-12-28 プロセッサシステム、プロセッサシステムの制御方法、及び制御回路 Pending JP2011138401A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009298863A JP2011138401A (ja) 2009-12-28 2009-12-28 プロセッサシステム、プロセッサシステムの制御方法、及び制御回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009298863A JP2011138401A (ja) 2009-12-28 2009-12-28 プロセッサシステム、プロセッサシステムの制御方法、及び制御回路

Publications (1)

Publication Number Publication Date
JP2011138401A true JP2011138401A (ja) 2011-07-14

Family

ID=44349748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009298863A Pending JP2011138401A (ja) 2009-12-28 2009-12-28 プロセッサシステム、プロセッサシステムの制御方法、及び制御回路

Country Status (1)

Country Link
JP (1) JP2011138401A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069097A (ja) * 2011-09-22 2013-04-18 Nec Computertechno Ltd 送信権調停装置、送信権調停制御方法、及びそのためのプログラム
CN107833452A (zh) * 2017-11-15 2018-03-23 安徽南瑞中天电力电子有限公司 一种mbus总线强带载能力ⅲ型、ⅳ型采集器
DE112021005326T5 (de) 2020-12-23 2023-09-07 Hitachi Astemo, Ltd. Elektronische steuervorrichtung

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6380334A (ja) * 1986-09-24 1988-04-11 Mitsubishi Electric Corp マイクロプロセツサ
JPS63127352A (ja) * 1986-11-17 1988-05-31 Fujitsu Ltd 共通バス転送制御方式
JPH01162966A (ja) * 1987-12-18 1989-06-27 Fujitsu Ltd チャネル処理装置
JPH0844652A (ja) * 1994-07-26 1996-02-16 Hitachi Ltd 計算機システムおよび入出力命令の発行方法
JPH09258907A (ja) * 1996-03-25 1997-10-03 Mitsubishi Electric Corp 複数の記憶ディスク部を有した高可用性の外部記憶装置
JPH09319693A (ja) * 1996-05-28 1997-12-12 Hitachi Ltd データ転送装置および並列コンピュータシステム
JP2001318907A (ja) * 2000-05-12 2001-11-16 Nec Corp フラッシュメモリ内蔵マイクロコンピュータ
JP2004220093A (ja) * 2003-01-09 2004-08-05 Toshiba Corp プロセッサ、実行タスク決定装置及び演算処理方法
WO2005003980A1 (ja) * 2003-07-01 2005-01-13 T & D Corporation 多目的半導体集積回路装置
JP2005122640A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。
JP2006065850A (ja) * 2004-07-28 2006-03-09 Renesas Technology Corp マイクロコンピュータ

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6380334A (ja) * 1986-09-24 1988-04-11 Mitsubishi Electric Corp マイクロプロセツサ
JPS63127352A (ja) * 1986-11-17 1988-05-31 Fujitsu Ltd 共通バス転送制御方式
JPH01162966A (ja) * 1987-12-18 1989-06-27 Fujitsu Ltd チャネル処理装置
JPH0844652A (ja) * 1994-07-26 1996-02-16 Hitachi Ltd 計算機システムおよび入出力命令の発行方法
JPH09258907A (ja) * 1996-03-25 1997-10-03 Mitsubishi Electric Corp 複数の記憶ディスク部を有した高可用性の外部記憶装置
JPH09319693A (ja) * 1996-05-28 1997-12-12 Hitachi Ltd データ転送装置および並列コンピュータシステム
JP2001318907A (ja) * 2000-05-12 2001-11-16 Nec Corp フラッシュメモリ内蔵マイクロコンピュータ
JP2004220093A (ja) * 2003-01-09 2004-08-05 Toshiba Corp プロセッサ、実行タスク決定装置及び演算処理方法
WO2005003980A1 (ja) * 2003-07-01 2005-01-13 T & D Corporation 多目的半導体集積回路装置
JP2005122640A (ja) * 2003-10-20 2005-05-12 Hitachi Ltd サーバシステム及びi/oスロット共有方法。
JP2006065850A (ja) * 2004-07-28 2006-03-09 Renesas Technology Corp マイクロコンピュータ

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013069097A (ja) * 2011-09-22 2013-04-18 Nec Computertechno Ltd 送信権調停装置、送信権調停制御方法、及びそのためのプログラム
CN107833452A (zh) * 2017-11-15 2018-03-23 安徽南瑞中天电力电子有限公司 一种mbus总线强带载能力ⅲ型、ⅳ型采集器
DE112021005326T5 (de) 2020-12-23 2023-09-07 Hitachi Astemo, Ltd. Elektronische steuervorrichtung
US12117943B2 (en) 2020-12-23 2024-10-15 Hitachi Astemo, Ltd. Electronic control device

Similar Documents

Publication Publication Date Title
CN109117391B (zh) 用于存储器系统的控制器
CN100592271C (zh) 使用集成dma引擎进行高性能易失性磁盘驱动器存储器访问的装置和方法
CN100573456C (zh) 一种并行多处理器虚拟机系统
US9658877B2 (en) Context switching using a context controller and on-chip context cache
US6282601B1 (en) Multiprocessor data processing system and method of interrupt handling that facilitate identification of a processor requesting a system management interrupt
TW445416B (en) Upgrade card for a computer system and method of operating the same
US9454397B2 (en) Data processing systems
EP0794492A2 (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
JP4855451B2 (ja) 記憶装置のアクセス方法及び装置
US10459771B2 (en) Lightweight thread synchronization using shared memory state
US9372702B2 (en) Non-disruptive code update of a single processor in a multi-processor computing system
EP4336359A1 (en) Method for processing page faults and corresponding apparatus
TW200525365A (en) Optimization of SMI handling and initialization
JP2009080563A (ja) 仮想マシンモニタをモニタするコンピュータとその方法、および仮想マシンモニタモニタプログラム
EP3770759A1 (en) Wake-up and scheduling of functions with context hints
JP2010191818A (ja) 情報処理装置及びその制御方法
JPH1021094A (ja) リアルタイム制御方式
JP2011138401A (ja) プロセッサシステム、プロセッサシステムの制御方法、及び制御回路
US6658510B1 (en) Software method to retry access to peripherals that can cause bus timeouts during momentary busy periods
JP2009175960A (ja) 仮想マルチプロセッサシステム
US20220318053A1 (en) Method of supporting persistence and computing device
CN115576734A (zh) 一种多核异构日志存储方法和系统
JP3661478B2 (ja) 割り込み処理装置および割り込み通知方法
US20060053413A1 (en) Debug system for debugging multi-task system
JP2003131893A (ja) 演算処理システム、コンピュータ・システム上でのタスク制御方法、並びに記憶媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140501

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140630

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141202