JP5099090B2 - マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ - Google Patents

マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ Download PDF

Info

Publication number
JP5099090B2
JP5099090B2 JP2009190103A JP2009190103A JP5099090B2 JP 5099090 B2 JP5099090 B2 JP 5099090B2 JP 2009190103 A JP2009190103 A JP 2009190103A JP 2009190103 A JP2009190103 A JP 2009190103A JP 5099090 B2 JP5099090 B2 JP 5099090B2
Authority
JP
Japan
Prior art keywords
standby
operating system
dma transfer
operating
timer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009190103A
Other languages
English (en)
Other versions
JP2011043892A (ja
Inventor
賢太郎 笹川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2009190103A priority Critical patent/JP5099090B2/ja
Priority to US13/386,560 priority patent/US8719628B2/en
Priority to PCT/JP2010/002455 priority patent/WO2011021318A1/ja
Priority to CN201080034219.3A priority patent/CN102473128B/zh
Priority to EP10809666.0A priority patent/EP2469415B1/en
Publication of JP2011043892A publication Critical patent/JP2011043892A/ja
Application granted granted Critical
Publication of JP5099090B2 publication Critical patent/JP5099090B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2043Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share a common memory address space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサに関する。
複数のCPU(Central Processing Unit)コアを内蔵したマルチコアで構成され、組み込み用途向けのプロセッサ(MPU:Micro Processing Unit)が開発されている。これらのプロセッサは、周辺デバイスも含めてワンチップ化されている。
マルチコアCPU上において、異なる複数のOS(Operating System)を動作させる技術が知られている。また、MPUの機能として、単一の割り込み要求(IRQ:Interrupt ReQuest)を、複数のCPUコアへと通知する手段が知られている。さらに、MPUは、レジスタ設定に基づいて、どの割り込み要求をどのCPUコアに対して割り当てるかを設定することができる。
また、例えば図9に示すように、MPU50内部のCPUからADAC(Audio DAC)51に対して、I2S(Inter-IC Sound)バスを経由して、音声データ(例えば、PCM(Pulse Code Modulation)音声)を転送する技術が知られている。尚、I2Sは、音声データのインターフェイスデバイスを構成する、PHILIPS(登録商標)社製のシリアル通信フォーマットである。I2S規格では、PCM音声や圧縮音声(μ−lawやADPCMなど)を、I2Sバスを経由してADAC51に送信することができる。また、図において、I2C(Inter-Integrated Circuit)バスは、PHILIPS(登録商標)社で開発されたデバイス制御用のシリアルバスである。ADAC51は、音声データをステレオ音声に変換する。DACは、D/Aコンバータである。ADAC51から出力されるアナログ音声(ステレオ)が、スピーカーにおいて再生される。
また、例えば図10に示すように、複数のOSからの音声データをネットワークを介して受信し、受信した複数の音声データと同一のクライアントPC内で受信した音声データとをミックスして、単一のステレオ音声へと変換するサウンドサーバ56が知られている。図に示す例では、UNIX(登録商標)サーバ52のアプリケーションプログラム[A]及び[B](図においては、略してアプリ[A]53、アプリ[B]54として示す)から出力された音声データが、TCP/IPを用いてクライアントPC55へと送信される。クライアントPC55のサウンドサーバ56は、UNIXサーバ52から送信された音声データと、アプリケーションプログラム[C](図においては、略してアプリ[C]57として示す)から出力された音声データとをミキシングして、サウンドドライバ58へと出力する。尚、サウンドサーバ56としては、例えば、UNIX(登録商標)では、EsoundやPulse Audioがよく知られている。
尚、本発明に関連する他の技術として、特許文献1乃至3に開示される技術がある。例えば、特許文献1に開示されるマルチシステム制御プロセッサによるホスト監視制御方式は、ホストごとに設置した監視タイマーのタイムアウト検出に応じてホストの障害発生を判断し、リカバリが必要と判断した場合には、第1リカバリ順位に指定されているホストがリカバリを開始する。これにより、ホストの障害を人手の介入無しに迅速に検出し、後始末処理を行うリカバリホストを一意に決定する。
特開平4−219860号公報 特開2005−115751号公報 特開平2−289020号公報
しかしながら、単一のマルチコアCPU上で複数のOSを動作させて、MPUに内蔵した単一のI2Sデバイスをそれら複数のOS間で共有させる構成において、片方のOSに例外(カーネルパニック)が発生した場合や、OSがフリーズした場合(OSが停止又は正常動作しなくなり、入力装置からの入力を受け付けない状態となった場合)には、もう片方のOS側からの音声再生が停止してしまうという問題があった。以下にその理由を説明する。
I2Sデバイスを複数のOS間で共有する場合には、それら複数のOSのうちでオーナーとなる一のOSのみしかデバイスを制御することができない。このため、片方のOSのパニックやフリーズのために、音声データのDMA(Direct Memory Access)転送が停止してしまう。
また、(音声再生に使用する)I2Sデバイスでは、音声データの前回のDMA転送が完了した後に、これに続く音声データの受信が一定の時間(数100μs〜数ms)途絶えた場合(すなわち、DMA転送が停止した場合)にはアンダーランエラーとなり、音切れが発生する。このため、DMA転送完了時の割り込み発生から、一定の時間内に、次のDMA転送を開始する必要がある。
さらに、OSの例外発生やフリーズのために、サウンドドライバやサウンドサーバの動作が停止してしまう。
ところで、OSの例外発生やフリーズに起因して音声再生が停止するという課題に対して、例えば図11に示すような技術が知られている。図に例示する技術では、組み込み用MPU60に搭載したOS毎に専用のI2Sデバイスを割り当てた上で、DSP(Digital Signal Processor)61等を用いた外部のミキシング機構を追加する構成とすることで、上述した課題に対応を図っている。すなわち、図において、OS[1]63に対してI2S_1を割り当て、OS[2]64に対してI2S_2を割り当てる。サウンドドライバ65は、OS[1]のアプリケーションプログラム[1](図においては、略してアプリ[1]66として示す)から出力された音声データを、I2S_1を経由してDSP61へと出力する。また、サウンドドライバ67は、OS[2]64のアプリケーションプログラム[2](図においては、略してアプリ[2]68として示す)から出力された音声データを、I2S_2を経由してDSP61へと出力する。そして、DSP61は、I2S_1及びI2S_2を経由して受信した音声データの音声ミキシング処理を行い、アナログ音声をAUDIO AMP62へと出力する。
しかし、図11に例示したように、複数のI2SデバイスがMPU内に必ずしも搭載されているわけではない。さらに、外部ミキシング機構の追加は部品点数の増加を招くため、コストアップや回路小型化への弊害となる。このため、図11に示した技術では、組込技術領域における課題を解決するものとはならなかった。
従って、本発明の目的は、簡易な構成で音切れの発生を防止することができるマルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサを提供することである。
本発明に係るマルチコアシステムは、複数のプロセッサと、当該複数のプロセッサ上でそれぞれ動作する複数のオペレーティングシステムと、前記複数のオペレーティングシステムが共有する共有メモリと、前記複数のオペレーティングシステムが共有し、かつ、前記共有メモリに格納された音声データがDMA転送される周辺デバイスと、を備え、前記複数のオペレーティングシステムがサウンド再生機能に係る主系及び予備系に設定されるマルチコアシステムであって、前記主系のオペレーティングシステムに含まれるか又は当該主系のオペレーティングシステム上で動作する主系のデバイスドライバと、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するドライバ管理部と、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するデバイドライバであって、前記ドライバ管理部が管理する予備系のデバイスドライバと、を備え、前記ドライバ管理部が、DMA転送完了割り込み要求に応じてタイマーを設定して、当該タイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、前記主系のオペレーティングシステムの障害を検出した場合には、前記予備系のオペレーティングシステムを主系のオペレーティングシステムとして切り替え、前記予備系のデバイスドライバを動作させることで、音声データの音声ミキシング処理及びDMA転送要求処理を継続して実行するものである。
また、本発明に係るマルチコアシステムの制御方法は、複数のプロセッサと、当該複数のプロセッサ上でそれぞれ動作する複数のオペレーティングシステムと、前記複数のオペレーティングシステムが共有する共有メモリと、前記複数のオペレーティングシステムが共有し、かつ、前記共有メモリに格納された音声データがDMA転送される周辺デバイスと、を備え、前記複数のオペレーティングシステムがサウンド再生機能に係る主系及び予備系に設定されるマルチコアシステムの制御方法であって、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するドライバ管理部が、DMA転送完了割り込み要求に応じてタイマーを設定して、当該タイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、前記主系のオペレーティングシステムの障害を検出した場合には、前記予備系のオペレーティングシステムを主系のオペレーティングシステムとして切り替え、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するデバイスドライバであって、前記ドライバ管理部が管理する予備系のデバイスドライバを動作させることで、音声データの音声ミキシング処理及びDMA転送要求処理を継続して実行するものである。
また、本発明に係るマルチプロセッサは、複数のプロセッサと、当該複数のプロセッサ上でそれぞれ動作する複数のオペレーティングシステムと、前記複数のオペレーティングシステムが共有する外部共有メモリから周辺デバイスに対しての、当該外部共有メモリ格納された音声データのDMA転送を制御するDMAコントローラと、を備え、前記複数のオペレーティングシステムがサウンド再生機能に係る主系及び予備系に設定されるマルチコアプロセッサであって、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するドライバ管理部と、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するデバイドライバであって、前記ドライバ管理部が管理する予備系のデバイスドライバと、を備え、前記ドライバ管理部が、DMA転送完了割り込み要求に応じてタイマーを設定して、当該タイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、前記主系のオペレーティングシステムの障害を検出した場合には、前記予備系のオペレーティングシステムを主系のオペレーティングシステムとして切り替え、前記予備系のデバイスドライバを動作させることで、音声データの音声ミキシング処理及びDMA転送要求処理を継続して実行するものである。
本発明によれば、簡易な構成で音切れの発生を防止することができるマルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサを提供することができる。
本発明の実施の形態1に係るマルチコアシステムのハードウェア構成を示すブロック図である。 本発明の実施の形態1に係るマルチコアシステムの機能構成を示すブロック図である。 本発明の実施の形態1に係る課題解決手段の概略を説明するための図である。 本発明の実施の形態1に係るDMA転送完了割り込みスレッド内での音声データ及び処理の流れを説明するための図である。 本発明の実施の形態1に係る主系側のOSが正常動作している場合の、DMA転送完了割り込み受信後の処理を示すシーケンス図である。 本発明の実施の形態1に係る主系側のOSに障害発生した場合の、DMA転送完了割り込み受信後の処理を示すシーケンス図である。 本発明の実施の形態1に係るサウンドキューに関する追加パラメータを説明するための図である。 本発明の実施の形態1に係る切り替え前の主系側のOSによるレジスタアクセスの禁止を説明するための図である。 本発明に関連する技術を説明するための図である。 本発明に関連する技術を説明するための図である。 本発明に関連する技術を説明するための図である。
本発明に係るマルチコアシステムは、単一のマルチコアCPU上において複数のOSを動作させ、これら複数のOS間で単一のI2Sデバイスを共有するシステムである。そして、マルチコアシステムは、片方のOSに障害が発生してフリーズした場合においても、他の正常に動作しているOS側からの出力音声に対して、音切れの発生を防止することができる。
本発明に係るマルチコアシステムは、以下に説明するように、音声ミキシング処理の最中にOSがフリーズしたような場合においても、I2Sデバイスへの音声データ送信タイミングのデッドラインを死守して、DMA転送に基づく音切れやノイズの発生を防止することを特徴とする。尚、ここでは、音声ミキシング処理とは、各OS上で動作する複数のアプリケーションプログラムからの音声データをミキシングして単一の音声とする処理を指す。
実施の形態1.
以下、図面を参照して本発明の実施の形態1について説明する。まず、図1及び図2を参照して、本実施の形態1に係るマルチコアシステムの構成について説明する。図1は、本実施の形態1に係るマルチコアシステムのハードウェア構成を示すブロック図である。
図1に示すように、マルチコアシステム1は、組み込み用のMPU10と、音声出力装置20と、外部共有メモリとしてのSDRAM(Synchronous Dynamic Random Access Memory)30と、を備えている。
MPU10は、マルチコアCPUと、周辺デバイス(I2Sデバイス13、I2Cデバイス14、DMAC15)とがワンチップ化されたICである。図に示す例では、MPU10は、複数のCPU(CPU[1]11、CPU[2]〜[4]12)を備えている。
MPU10は、マルチコアCPU上において、複数のOSを動作させる。OS[1]110がCPU[1]11上において動作する。OS[2]120がCPU[2]〜[4]12上において動作する。尚、OS[1]110とOS[2]120は異なる種類のOSである。例えば、OS[1]110をμITRON等のリアルタイムOSとし、OS[2]120は高機能組み込みOS(組み込みLinux(登録商標)やWindows CE(登録商標)等)とする組み合わせが考えられる。
OS[1]110上において、アプリケーションプログラム[1]111(図においては、略してアプリ[1]として示す)、及びデバイスドライバであるサウンドドライバ112が動作する。アプリケーションプログラム[1]111から出力された音声データが、サウンドドライバ112へと入力される。また、OS[2]120上において、アプリケーションプログラム[2]121、アプリケーションプログラム[3]122、アプリケーションプログラム[4]123(図においては、略してアプリ[2]、アプリ[3]、アプリ[4]としてそれぞれ示す)、サウンドサーバ124、及びデバイスドライバであるサウンドドライバ125が動作する。アプリケーションプログラム[2]121及びアプリケーションプログラム[3]122から出力された音声データは、サウンドサーバ124へと入力される。サウンドサーバ124から出力される音声データと、アプリケーションプログラム[4]123から出力された音声データとが、サウンドドライバ125へと入力される。
I2Sデバイス13は、I2Sバス(I2S bus)を経由して音声データをADAC&AMP20へと送信する、1系統のデバイスである。I2Sデバイス13はFIFO130を備えており、FIFO130に音声データを格納する。ここでは、I2Sデバイス13は、音声データとして、ステレオPCMを扱う。
I2Cデバイス14は、デバイス制御用のシリアルバスである。I2Cデバイス14は、ADACが備えるレジスタへの読み書きを行うために使用される。
DMAC(DMA contoroller)15は、MPU10の外部に接続されたSDARM30と、他のデバイス間のDMA転送を制御する。ここでは、SDRAM30上のOS間共有メモリ40から、I2Sデバイス13のFIFO130への音声データの転送を、DMAC15の1チャンネルを用いて行う。
尚、本実施の形態では、通常、OS[2]120側のサウンドドライバ125が、音声ミキシング処理及び周辺デバイス(I2Sデバイス13、I2Cデバイス14、DMAC15)の制御を行うものとして説明する。
音声出力装置20は、スピーカー21と、ADAC&AMP22とを備えている。ADAC&AMP22は、音声出力装置20の外部インタフェースを構成する。ADAC&AMP22は、I2Sバスを経由して送信される音声データをアナログ信号に変換・増幅して、スピーカー21を用いて再生する。
SDRAM30は、MPU10の外部にバスを介して接続される、揮発性のメモリ(RAM)である。SDRAM30には、OS間共有メモリ40として、MPU10のOSが共有するメモリ空間が確保される。
OS間共有メモリ40内には、サウンドキュー(サウンドキュー41、サウンドキュー42、サウンドキュー43)及びDMA転送用バッファ44が設定される。サウンドキューは、アプリケーションプログラムが出力した音声データを格納するリングバッファである。サウンドキューとして、音声データを出力するアプリケーションプログラムの数に相当する数のキューが作成される。ここでは、OS[1]110のアプリケーションプログラム[1]111と、OS[2]120のサウンドサーバ124と、OS[2]120のアプリケーションプログラム[4]123とに相当する、3個のサウンドキュー(サウンドキュー41、サウンドキュー42、サウンドキュー43)が作成される。サウンドキュー(サウンドキュー41、サウンドキュー42、サウンドキュー43)の音声データが音声ミキシング処理された後に、DMA転送用バッファ44に格納される。尚、サウンドキューは、リングバッファ以外のキューイング手段を用いて構成するものとしてもよい。
図2は、本実施の形態1に係るマルチコアシステムの機能構成を示すブロック図である。図2では、図1において示したサウンドドライバ112を、上位アプリI/F部113とドライバコア部114に分割する。また、サウンドドライバ125を、上位アプリI/F部126とドライバコア部127に分割して示している。
上位アプリI/F部113は、アプリケーションプログラム[1]111から受け取った音声データに対して、サンプリングレートの変換や量子化ビット数の変換(例えば、48kHz 23bitの音声を、44.1kHz 16bitの音声へと変換)を必要に応じて行い、その出力結果を、OS間共有メモリ40内のサウンドキュー41へと格納する。
また、上位アプリI/F部126は、サウンドサーバ124とアプリケーションプログラム[4]123とから受け取った音声データに対して、サンプリングレートの変換や量子化ビット数の変換を必要に応じて行い、その出力結果を、OS間共有メモリ40内のサウンドキュー42、43へと格納する。
ドライバコア部114、127は、OS間共有メモリ40の各サウンドキューに格納された音声データをミキシングし、音声ミキシング処理後の音声データを、DMA転送を用いてI2Sデバイス13のFIFO130へと転送する。尚、本実施の形態では、サウンドドライバ112、125の一部であって、音声ミキシング処理及びI2Sデバイス13、I2Cデバイス14の制御を行う機能部分を、ドライバコア部114、125として定義する。また、音声ミキシング処理とは、各OS上で動作する複数のアプリケーションプログラムからの音声データをミキシングして、単一の音声データとしてDMA転送用の領域(DMA転送用バッファ44)にコピーする処理を指す。
本実施の形態では、システム動作時に、複数のOSのうち、1つのOS(主系)のドライバコア部のみが動作する。その他のOS(予備系)のドライバコア部は、通常は待機状態となっており、主系側のOSがフリーズ等した場合にのみ動作する。尚、主系とは、正常時に動作するドライバコア部を有するシステムを指す。予備系とは、主系側の動作がダウンした時に動作するドライバコア部を有するシステムを指す。ここで、主系及び予備系とは、あくまでもサウンド再生機能(サウンドドライバの一部機能)についての主系及び予備系であり、主系OS及び予備系OSのことではない。すなわち、予備系側のOSとは、サウンド再生機能に関する予備系としての機能を備えているOSのことを指す。
ソフトウェアミキサ128は、ドライバコア部127が呼び出す関数である。ソフトウェアミキサ128は、各サウンドキューに格納された音声データをミキシングし、DMA転送用バッファ44に格納する。
DMA転送完了割込みスレッド129は、音声データのDMA転送完了割り込みスレッドである。DMA転送完了割込みスレッド129は、ドライバコア部127内に存在し、音声データのDMA転送完了割り込みをトリガーとして動作する。DMA転送完了割込みスレッド129内において、音声ミキシング処理及び音声データのDMA転送要求処理が行われる。
共通割り込み制御部16は、各CPUコアに対して、割り込み要求(IRQ)の割り振りを行う。共通割り込み制御部16は、基本的には、MPU10内にハードウェアの機能として備えらえる。尚、共通割り込み制御部16がMPU10内にハードウェアの機能として搭載されていない場合には、ソフトウエアの機能として実装することも可能である。
共通割込み制御部16に入力される割り込み要求は、音声データのDMA転送が完了した場合に、DMAC15が発行するDMA転送完了割り込みである。DMA転送完了割り込みの発生から一定の時間内にDMA転送要求が無い場合には、I2Sデバイス13のFIFO130のバッファが空となり、I2Sアンダーランエラーが発生する。
ドライバ管理部115は、予備系側のOSの割り込みハンドラが呼び出す関数である。ドライバ管理部115は、HW(Hard Ware)タイマー17の設定や、主系のドライバコア部を用いた動作を予備系のドライバコア部を用いた動作へと切り替える切り替処理を行う。尚、ここでは、HWタイマー17は、MPU10が備えるハードウェアタイマーを指す。
次に、図3を参照して、本実施の形態1に係るマルチコアシステムを用いた課題解決手段について、その動作を概略的に説明する。マルチコアシステム1は、解決手段[1]201及び解決手段[2]202を備えており、これら手段における構成及び動作に基づいて、課題を解決することができる。以下、解決手段[1]201及び解決手段[2]202について説明する。
解決手段[1]201においては、共通割込み制御部16を用いることで、単一のDMA転送完了割り込みを、複数のOS(OS[1]110、OS[2]120)がそれぞれ受信する。そして、予備系側のOS(OS[1]110)が備える割り込みハンドラが、複数のHWタイマー17(HWタイマー1、HWタイマー2)を設定する。さらに、主系側のOS(OS[2]120)のDMA転送完了割り込みスレッド129が、設定したHWタイマー17を解除する。尚、HWタイマー17を用いた主系側のOS(OS[2]120)の監視処理と、主系側のOS(OS[2]120)から予備系側のOS(OS[1]110)への切り替え処理の詳細については後述する。また、以下では、HWタイマー17として複数のHWタイマー(HWタイマー1及びHWタイマー2)を用いるものとして説明するが、単一のHWタイマーを使用して、擬似的に複数のタイマーを実現するものとしてもよい。
仮に、主系側のOS(OS[2]120)の割り込みハンドラ内においてHWタイマー17の設定を行うものとしては、主系側のOS(OS[2]120)に割り当てられたCPUコアのレジスタの内容が壊れていた場合や、OSフリーズ時の多重割り込みが発生した場合などには、HWタイマー17を適切に設定することができない可能性がある。従って、予備系側のOS(OS[1]110)がHWタイマー17の設定を行う構成とすることで、主系側のOS(OS[2]120)に例外が発生した場合やフリーズした場合などに対しても対応することができる。尚、OSフリーズ時での多重割り込みとは、DMA転送完了割り込みを処理している際に他の割り込みが発生して、割り込みハンドラ内でOSのシステムコールを呼び出すことを指す。
図4乃至6を参照して、上述した解決手段[1]201における処理についてより詳細に説明する。まず、図4を参照して、DMA転送完了割り込みスレッド129内での音声データ及び処理の流れについて説明する。
図4の左図は、音声データ及び処理の流れを示している。すなわち、SDRAM30からFIFO130に対してDMA転送が行われた後に、複数のOS(OS[1]110、OS[2]120)がDMA転送完了割り込みを受信する。主系側のOS(OS[2]120)が正常に動作している場合には、受信したDMA転送完了割り込みが、DMA転送完了割り込みスレッド129に到達する。そして、DMA転送完了割り込みスレッド129は、音声データのDMA転送完了割り込みをトリガーとして動作し、DMA転送完了割り込みスレッド129内において音声データの音声ミキシング処理及びDMA転送要求処理が行われる。そして、DMA転送用バッファ44に格納された音声ミキシング処理後の音声データが、SDRAM30からFIFO130に対してDMA転送される。
図4の右図は、DMA転送完了割り込みスレッド129内での音声ミキシング処理及びDMA転送開始要求処理の処理方法を説明するための図である。ここでは、音声ミキシング処理及びDMA転送開始要求処理の処理順序に関して、主系側のOS(OS[2]120)における音声ミキシング処理時間とI2Sアンダーランエラーの関係に基づいて、パターンA又はパターンBのいずれかのパターンを選択する。
上述したように、主系側のOS(OS[2]120)がフリーズした場合には、DMA転送完了割り込みが、DMA転送完了割り込みスレッド129にまで到達しない。このため、DMA転送完了割り込みの発生から一定の時間内にDMA転送要求処理が行われないことになり、I2Sアンダーランエラーが発生する。すなわち、DMA転送間隔(DMA転送完了割り込みの発生からI2Sアンダーランエラーが発生するまでの時間を示す。)が一定時間を超えた場合にはアンダーランエラーとなり、音切れが発生する。
音声ミキシング処理時間とDMA転送間隔(≒I2Sアンダーランエラー発生時間)は、実装環境のスペックに基づいて決定される。従って、音声ミキシング処理時間とDMA転送間隔の大小関係を用いて規定される選択条件に応じて、DMA転送完了割り込みスレッド129内での処理方法として、以下で説明するパターンA又パターンはBのいずれかのパターンを選択する。尚、音声ミキシング処理時間及びDMA転送間隔は、I2Sデバイス13のFIFO130の段数、音声サンプリング周波数、DMA転送サイズ、CPUクロック等から算出することができる。
選択条件「DMA転送間隔>(音声ミキシング処理時間×2)」を満たす場合には、パターンAを選択する。そして、パターンAでは、音声ミキシング処理に続いて、DMA転送開始要求処理を行うという順序で処理が行われる。すなわち、この場合には、DMA転送開始要求処理に先立ち、音声ミキシング処理を行う。尚、図4の右図に示すパターンAが選択された場合に、主系側のOS(OS[2]120)での音声ミキシング処理中にOSがフリーズした場合には、主系側のOS(OS[2]120)から予備系側のOS(OS[1]110)へと切り替えて、音声ミキシング処理などが継続される。OSのフリーズ監視方法や、予備系への切り替方法の詳細については後述する。
選択条件「DMA転送間隔≦(音声ミキシング処理時間×2)」を満たす場合には、パターンBを選択する。そして、パターンBでは、DMA転送開始要求処理に続いて、音声ミキシング処理を行うという順序で処理が行われる。すなわち、この場合には、音声ミキシング処理に先立ち、DMA転送開始要求処理を行う。また、DMA転送を行う音声データについて、1パケット(=DMA転送サイズ)分の先読みを行うために、音声データのダブルバッファリング処理が必要となる。
尚、以下の説明では、主系側のOS(OS[2]120)におけるサウンドドライバのDMA転送完了割り込みスレッド129内での処理方法として、パターンAを選択した場合(音声ミキシング処理に続いてDMA転送開始要求処理を行う場合)について説明する。また、パターンBを選択した場合についても基本的な処理の流れは同一であるため、以下ではパターンAを代表して説明する。
次に、HWタイマー17を用いた主系側のOS(OS[2]120)の監視機能について説明する。以下では、2系統のHWタイマー17(HWタイマー1、HWタイマー2)を使用した場合を例に説明する。
上述したように、DMA転送完了割込みを受信した場合に、予備系側のOS(OS[1]110)が備える割り込みハンドラが、HWタイマー17を設定する。そして、DMA転送完了割り込みが、主系側のOS(OS[2]120)のDMA転送完了割り込みスレッド129に到達した場合には、DMA転送完了割り込みスレッド129が、設定したHWタイマー17を解除する。これにより、DMA転送完了割り込みが、主系側のOS(OS[2]120)のDMA転送完了割り込みスレッド129にまで到達しなかった場合には、設定したHWタイマー17は解除されずにタイムアウトとなる。従って、HWタイマー17のタイムアウトの有無に基づいて、主系側のOS(OS[2]120)のフリーズを監視することが可能となる。
具体的には、主系側のOS(OS[2]120)のフリーズを監視するため、HWタイマー17として、HWタイマー1及びHWタイマー2を設定する。HWタイマー1は、音声ミキシング処理終了時間を監視するために使用する。HWタイマー2は、DMA転送開始時間を監視するために使用する。尚、HWタイマー17としてそれぞれ独立した2系統のHWタイマー1、HWタイマー2を設定してもよいし、単一のHWタイマー17を設定することで、擬似的に2系統のタイマーを実現することもできる。
主系側のOS(OS[2]120)がフリーズした場合には、主系側のOS(OS[2]120)から予備系側のOS(OS[1]110)へと切り替えて、音声ミキシング処理などを継続する。従って、予備系側のOS(OS[1]110)へと切替えた後に、I2Sデバイス13におけるアンダーランエラーの発生時間までに、予備系側のOS(OS[1]110)での音声ミキシング処理を完了させる必要がある。このため、HWタイマー1を用いて監視する主系側のOS(OS[2]120)における音声ミキシング処理終了時間は、I2Sデバイス13におけるアンダーランエラーの発生時間と、予備系側のOS(OS[1]110)における音声ミキシング処理に要する音声ミキシング処理時間とを用いて、「I2Sアンダーランエラー発生時間−(予備系での)音声ミキシング処理時間」として表すことができる。これにより、HWタイマー1を用いることで、音声ミキシング処理中における主系側のOS(OS[2]120)のフリーズを検出することが可能となる。
また、予備系側のOS(OS[1]110)へと切替えた後に、I2Sデバイス13におけるアンダーランエラーの発生時間までに、予備系側のOS(OS[1]110)でDMA転送要求処理を完了させる必要がある。このため、HWタイマー2を用いて監視するDMA転送開始時間は、I2Sデバイス13におけるアンダーランエラーの発生時間と、DMA転送完了割込みスレッド129においてDMA転送要求処理に要するDMA転送要求処理時間とを用いて、「I2Sアンダーラン発生時間−DMA転送要求処理時間」として表すことができる。HWタイマー2を用いることで、複数のDMA転送完了割り込みスレッド129を処理する場合についても監視することができる。このため、主系側のOS(OS[2]120)における音声ミキシング処理時間がI2Sアンダーランエラー発生時間を超えるような場合についても監視することができる。
次に、図5及び図6を参照して、HWタイマー17を用いて主系側のOS(OS[2]120)のフリーズを検出した場合における、ドライバコア部の切り替動作について説明する。まず、図5を参照して、主系側のOS(OS[2]120)が正常に動作している場合において、DMA転送完了割り込みを受信した後の処理について説明する。
図5は、主系側のOSが正常に動作している状態での、音声ミキシング処理及びDMA転送処理を説明するシーケンス図である。まず、DMA転送完了割り込みをMPU10が受信した場合には、共通割り込み制御部16が、複数のCPUコアに対して、割り込み要求(IRQ)を送信する(S101)。
次いで、予備系側のOS(OS[1]110)上において動作するドライバ管理部115は、共通割込み制御部16から割り込み要求(IRQ)を受信した場合には、2系統のHWタイマー17を同時にスタートさせる(S102)。尚、設定するHWタイマー1のタイムアウト時間としては、例えば、数100μsから数ms程度に設定すればよい。
次いで、主系側のOS(OS[2]120)が正常に動作しているために、DMA転送完了割り込みが、DMA転送完了割り込みスレッド129に到達する。このため、DMA転送完了割込みスレッド129内では、DMA転送完了割り込みをトリガーとして、音声ミキシング処理及び音声データのDMA転送要求処理が行われる。そして、主系側のドライバコア部127のDMA転送完了割り込みスレッド129は、HWタイマー1及びHWタイマー2を停止する(S103)。HWタイマー1は音声ミキシング処理の完了時に解除され、HWタイマー2はDMA転送要求処理の終了時に解除される。
図6は、主系側のOSがダウンした場合(予期せず動作停止状態にった場合、又は、OSが異常終了した場合。)に、予備系側のOSを用いて、音声ミキシング処理及びDMA転送処理を継続して行う処理を説明するシーケンス図である。尚、図において示すS201及びS202での処理は図5で示したS101及びS101での処理と同一であるため、ここではその説明を省略する。
図6において、主系側のOS(OS[2]120)がフリーズしている場合には、S201で送信したDMA転送完了割り込みが、DMA転送完了割り込みスレッド129まで到達しない。このため、S202においてHWタイマー17を設定した後に、DMA転送完了割込みスレッド129内では、音声ミキシング処理及び音声データのDMA転送要求処理が行われないことになる。従って、予備系側のOS(OS[1]110)のドライバ管理部115に対して、HWタイマー1のタイムアウトが通知される(S203)。HWタイマー1がタイムアウトした場合には、ドライバ管理部115は、予備系側のドライバコア部114に対して音声ミキシング処理の開始を要求する。これにより、予備系側のドライバコア部114が、音声ミキシング処理を開始する。
次いで、予備系側のOS(OS[1]110)のドライバ管理部115に対して、HWタイマー2のタイムアウトが通知される(S204)。HWタイマー2がタイムアウトした場合には、ドライバ管理部115は、共通割込み制御部16に対して、フリーズしている主系側のOS(OS[2]120)に対するDMA転送割込みの通知を停止するよう指示する。そして、ドライバ管理部115は、予備系側のドライバコア部114に対してDMA転送要求処理の開始を要求する。これにより、予備系側のドライバコア部114が、DMA転送要求処理を開始する。
再び図3に戻って、解決手段[2]202について説明する。上述したように、主系側のOS(OS[2]120)のフリーズのために、設定したHWタイマー17がタイムアウトした場合に、サウンドドライバの一部の機能を主系側のOS(OS[2]120)から予備系側のOS(OS[1]110)へと切り替えが行われる。そして、解決手段[2]202においては、音声ミキシング処理を行っている途中に主系側のOS(OS[2]120)がフリーズした後に、予備系側のOS(OS[1]110)が音声ミキシング処理を開始した場合において、フリーズの前後にわたってストリームデータ(音声データ等)の整合性を保証する処理が行われる。
ストリームデータの整合性を保つ処理は、新たに設けたパラメータ用いて行う処理と、主系側であったOS(OS[2]120)が参照していた周辺デバイスのベースアドレスを無効化する処理とから構成される。以下、図7及び図8を参照して、各処理について詳細に説明する。
まず、ストリームデータの整合性を保つ処理の一つである、新たに設けたパラメータを用いて行う処理について説明する。本実施の形態では、サウンドキューのパラメータに関して、一般的なキューのパラメータに加えて、予備系側のOS(OS[1]110)が用いるデキュー専用パラメータを新たに設ける。このパラメータの追加は、主系側のOS(OS[2]120)からのデキュー処理(音声ミキシング処理等)中に、主系側のOS(OS[2]120)がフリーズした場合等において有効となる。
図7を参照してより具体的に説明する。図に示すように、本実施の形態では、各サウンドキュー(リングバッファ)に対して、一般的なリングバッファのパラメータ(front、rear)に加えて、パラメータfront2を追加する。ここで、frontは、主系側のドライバコア部127が使用する、デキュー用のパラメータである。また、rearは、各OSの上位アプリI/F部126、113が使用する、エンキュー用のパラメータである。また、front2は、予備系側のドライバコア部114が使用する、デキュー用のパラメータである。
パラメータfront2は、音声ミキシング処理中に主系側のOS(OS[2]120)がフリーズしてしまった場合に、音声データの整合性を保つために使用する。例えば、予備系側のOS(OS[1]110)が待機している時に、主系側のドライバコア部127が、DMA転送開始要求後に、I2Sデバイス13のFIFO130における最初のフル割り込みの発生をトリガーとして、DMA転送の転送回数分、front2をカウントする。尚、front2のカウント方法としてはこれに限定されず、より簡易的な方法を用いてもよい。例えば、主系側のDMA転送完了割り込みスレッドが、スレッドの出口においてfront2をカウントする構成としてもよい。
主系側のOS(OS[2]120)が正常に動作している場合には、DMA転送完了割り込みスレッド129内において、frontを用いて示す位置からの音声データ(図7において斜線を用いて示す部分)がデキューされる(このデキュー処理は、frontを用いてカウントされる)。次いで、主系側のドライバコア部127が、呼び出したソフトウェアミキサ関数を用いて、サウンドキューから出力された複数の音声データのミキシング処理を行う。次いで、DMA転送用バッファ44に格納された音声ミキシング処理後の音声データが、SDRAM30からI2Sデバイス13のFIFO130へとDMA転送される(ここでは、このDMA転送回数が、front2を用いてカウントされる)。
従って、主系側のOS(OS[2]120)が正常に動作している場合には、frontとfront2を同じ位置から開始させた後に、front2はfrontに追従して変化する。これに対して、主系側のOS(OS[2]120)がフリーズした場合には、音声データのデキューが途中で停止し、frontのカウントが停止する。また、主系側のOS(OS[2]120)がフリーズすることでDMA転送が行われないために、front2についてもカウントが停止し、front2の位置は更新されない。
ここで、図7に示すように、主系側のOS(OS[2]120)がフリーズして、front及びfront2が停止した場合に、切り替えた予備系側のドライバコア部114が、呼び出したソフトウェアミキサ関数を用いて、frontを用いて示す位置から音声データのデキューを開始した状況を想定する。この状況において、frontを用いて示す位置から音声データのデキューを開始しては、欠損している可能性のある音声データをデキューすることになり、音声データの整合性を保証することができない。このため、主系側のOS(OS[2]120)がフリーズして、front及びfront2が停止した場合に、切り替えた予備系側のドライバコア部114が、呼び出したソフトウェアミキサ関数を用いて、front2を用いて示す位置から音声データのデキューを開始することで、主系側のOS(OS[2]120)がフリーズするよりも前の音声データからデキューを開始することができるため、フリーズの前後での音声データの整合性を保証することができる。
次に、ストリームデータの整合性を保つ処理の一つである、主系側であったOS(OS[2]120)が参照していた周辺デバイスのベースアドレスを無効化する処理について説明する。予備系側のOS(OS[1]110)へと切り替えた場合に、切り替えた予備系側のドライバコア部114(新しく主系側となったドライバコア部)が音声ミキシング処理を行っている最中には、主系側であったドライバコア部127(以下、単に(旧)主系側のドライバコア部127と称する場合がある。)からのDMAレジスタアクセスを禁止することで、音声データの整合性を保証する。
ここでは、図8に示すように、主系側のOS(OS[2]120)が参照していた共有メモリ(SDRAM30)上の周辺デバイス(I2Sデバイス13、DMAC15)のベースアドレスを、予備系側のドライバ管理部110が一時的に無効アドレスにする(SDRAM30上において未使用領域などにする)。これによって、切り替え前に主系であった(旧)主系側のOS(OS[2]120)がレジスタへとアクセスすることを禁止することができる。
以上説明した解決手段1及び解決手段2を用いることで、以下の効果を実現することができる。
まず、複数のOS間で音声出力のI2Sバスを共有する構成において、片方のOSの動作が停止した場合においても、もう片方のOS側からの音声出力が途切れることを防止することができる。また、主系側のサウンドドライバについて、サウンドドライバのDMA転送完了割り込みスレッド内での処理中に発生するフリーズに対しても対応することができる。
また、複数のI2Sデバイスや外部サウンドミキサ(DSP等)を搭載する必要が無いため、コストダウンを実現することができる。
また、サウンドサーバを必ずしも搭載する必要がないために、TCP/IPプロトコルスタックを全てのOSに対して搭載する必要がなくなる。このため、TCP/IPを搭載することでもたらされる、メモリ使用量及びCPU負荷の増加や、システム起動時間の遅延などを防止する効果がある。
その他の実施の形態.
上述した実施の形態においては、MPU10が2つのOS(OS[1]110、OS[2]120)を備えている場合を例に説明したが、本発明はこれに限定されない。すなわち、
MPU10が3つ以上のOSを備えるものとしてもよい。かかる場合には、予備系側のOSが複数存在することになる。
尚、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
1 マルチコアシステム、
10 MPU、
11 CPU[1]、
110 OS[1]、
111 アプリ[1]、
112 サウンドドライバ、
113 上位アプリI/F部、
114 ドライバコア部、
115 ドライバ管理部、
12 CPU[2]〜[4]、
120 OS[2]、
121 アプリ[2]、
122 アプリ[3]、
123 アプリ[4]
124 サウンドサーバ、
125 サウンドドライバ、
126 上位アプリI/F部、
117 ドライバコア部、
128 ソフトウェアミキサ、
129 DMA転送完了割り込みスレッド、
13 I2Sデバイス(I2S device)、
130 FIFO、
14 I2Cデバイス(I2C device)、
15 DMAC(DMA controller)、
16 共通割り込み制御部、
17 HWタイマー、
20 音声出力装置、
21 AUDIO DAC&AMP、
22 スピーカー、
30 SDRAM、
40 OS間共有メモリ、
41、42、43 サウンドキュー、
44 DMA転送用バッファ、
50 MPU、
51 AUDIO DAC、
52 UNIX(登録商標)サーバ、
53 アプリ[A]、
54 アプリ[B]、
55 クライアントPC、
56 サウンドサーバ、
57 アプリ[C]、
58 サウンドドライバ、
60 MPU、
61 DSP、
62 AUDIO AMP、
63 OS[1]、
64 OS[2]、
65 サウンドドライバ、
66 アプリ[1]、
67 サウンドドライバ、
68 アプリ[2]、

Claims (10)

  1. 複数のプロセッサと、当該複数のプロセッサ上でそれぞれ動作する複数のオペレーティングシステムと、前記複数のオペレーティングシステムが共有する共有メモリと、前記複数のオペレーティングシステムが共有し、かつ、前記共有メモリに格納された音声データがDMA転送される周辺デバイスと、を備え、前記複数のオペレーティングシステムがサウンド再生機能に係る主系及び予備系に設定されるマルチコアシステムであって、
    前記主系のオペレーティングシステムに含まれるか又は当該主系のオペレーティングシステム上で動作する主系のデバイスドライバと、
    前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するドライバ管理部と、
    前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するデバイドライバであって、前記ドライバ管理部が管理する予備系のデバイスドライバと、を備え、
    前記ドライバ管理部が、
    DMA転送完了割り込み要求に応じてタイマーを設定して、当該タイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、
    前記主系のオペレーティングシステムの障害を検出した場合には、前記予備系のオペレーティングシステムを主系のオペレーティングシステムとして切り替え、前記予備系のデバイスドライバを動作させることで、音声データの音声ミキシング処理及びDMA転送要求処理を継続して実行する
    ことを特徴とするマルチコアシステム。
  2. 単一のDMA転送完了割り込みを受信し、前記複数のオペレーティングシステムのそれぞれに対して、前記DMA転送完了割込みを通知する共通割込み制御部を更に備える
    ことを特徴とする請求項1に記載のマルチコアシステム。
  3. 前記ドライバ管理部は、
    DMA転送完了割り込み要求を受信した場合に、音声ミキシング処理終了時間を監視するための第1のタイマーを設定して、当該第1のタイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、
    前記主系のデバイスドライバは、
    前記DMA転送完了割り込み要求に応じて動作することで、音声ミキシング処理を完了した場合には、前記第1のタイマーを解除する
    ことを特徴とする請求項1又は2に記載のマルチコアシステム。
  4. 前記ドライバ管理部は、
    DMA転送完了割り込み要求を受信した場合に、前記音声データのDMA転送開始時間を監視するための第2のタイマーを設定して、当該第2のタイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、
    前記主系のデバイスドライバは、
    前記DMA転送完了割り込み要求に応じて動作することで、DMA転送要求処理を終了した場合には、前記第2のタイマーを解除する
    ことを特徴とする請求項1乃至3いずれか1項に記載のマルチコアシステム。
  5. 前記主系のオペレーティングシステムの障害が検出された場合には、
    前記予備系のデバイスドライバは、前記音声ミキシング処理に関して、前記障害検出の前後での音声データのストリームデータの整合性を保証する処理を行う
    ことを特徴とする請求項1乃至4いずれか1項に記載のマルチコアシステム。
  6. 前記主系のオペレーティングシステムの障害が検出された場合には、
    前記予備系のデバイスドライバは、
    前記共有メモリから前記周辺デバイスへと音声データをDMA転送した転送回数をカウントするためのパラメータを用いて、前記障害を検出するよりも前の前記パラメータの値に基づいて、前記共有メモリに格納された音声データの出力処理を開始し、当該出力処理された音声データのミキシング処理を行う
    ことを特徴とする請求項5に記載のマルチコアシステム。
  7. 前記主系のオペレーティングシステムの障害が検出された場合には、
    前記予備系のデバイスドライバは、
    当該障害が検出されたオペレーティングシステムが参照していた前記共有メモリ上の前記周辺デバイスのベースアドレスを、一時的に無効アドレスとする
    ことを特徴とする請求項5又は6に記載のマルチコアシステム。
  8. 複数のプロセッサと、当該複数のプロセッサ上でそれぞれ動作する複数のオペレーティングシステムと、前記複数のオペレーティングシステムが共有する共有メモリと、前記複数のオペレーティングシステムが共有し、かつ、前記共有メモリに格納された音声データがDMA転送される周辺デバイスと、を備え、前記複数のオペレーティングシステムがサウンド再生機能に係る主系及び予備系に設定されるマルチコアシステムの制御方法であって、
    前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するドライバ管理部が、DMA転送完了割り込み要求に応じてタイマーを設定して、当該タイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、前記主系のオペレーティングシステムの障害を検出した場合には、前記予備系のオペレーティングシステムを主系のオペレーティングシステムとして切り替え、前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するデバイスドライバであって、前記ドライバ管理部が管理する予備系のデバイスドライバを動作させることで、音声データの音声ミキシング処理及びDMA転送要求処理を継続して実行する
    ことを特徴とするマルチコアシステムの制御方法。
  9. 前記主系のオペレーティングシステムの障害が検出された場合には、
    前記予備系のデバイスドライバは、
    前記音声ミキシング処理に関して、前記障害検出の前後での音声データのストリームデータの整合性を保証する処理を行う
    ことを特徴とする請求項8に記載のマルチコアシステムの制御方法。
  10. 複数のプロセッサと、当該複数のプロセッサ上でそれぞれ動作する複数のオペレーティングシステムと、前記複数のオペレーティングシステムが共有する外部共有メモリから周辺デバイスに対しての、当該外部共有メモリ格納された音声データのDMA転送を制御するDMAコントローラと、を備え、前記複数のオペレーティングシステムがサウンド再生機能に係る主系及び予備系に設定されるマルチコアプロセッサであって、
    前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するドライバ管理部と、
    前記予備系のオペレーティングシステムに含まれるか又は当該予備系のオペレーティングシステム上で動作するデバイドライバであって、前記ドライバ管理部が管理する予備系のデバイスドライバと、を備え、
    前記ドライバ管理部が、
    DMA転送完了割り込み要求に応じてタイマーを設定して、当該タイマーのタイムアウトの検出に応じて前記主系のオペレーティングシステムの障害を検出し、
    前記主系のオペレーティングシステムの障害を検出した場合には、前記予備系のオペレーティングシステムを主系のオペレーティングシステムとして切り替え、前記予備系のデバイスドライバを動作させることで、音声データの音声ミキシング処理及びDMA転送要求処理を継続して実行する
    ことを特徴とするマルチプロセッサ。
JP2009190103A 2009-08-19 2009-08-19 マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ Expired - Fee Related JP5099090B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2009190103A JP5099090B2 (ja) 2009-08-19 2009-08-19 マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ
US13/386,560 US8719628B2 (en) 2009-08-19 2010-04-02 Multi-core system, method of controlling multi-core system, and multiprocessor
PCT/JP2010/002455 WO2011021318A1 (ja) 2009-08-19 2010-04-02 マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ
CN201080034219.3A CN102473128B (zh) 2009-08-19 2010-04-02 多核系统、多核系统的控制方法以及多处理器
EP10809666.0A EP2469415B1 (en) 2009-08-19 2010-04-02 Multi-core system, control method of multi-core system, and multiprocessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009190103A JP5099090B2 (ja) 2009-08-19 2009-08-19 マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ

Publications (2)

Publication Number Publication Date
JP2011043892A JP2011043892A (ja) 2011-03-03
JP5099090B2 true JP5099090B2 (ja) 2012-12-12

Family

ID=43606780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009190103A Expired - Fee Related JP5099090B2 (ja) 2009-08-19 2009-08-19 マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ

Country Status (5)

Country Link
US (1) US8719628B2 (ja)
EP (1) EP2469415B1 (ja)
JP (1) JP5099090B2 (ja)
CN (1) CN102473128B (ja)
WO (1) WO2011021318A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892230B2 (en) 2009-11-18 2014-11-18 Nec Corporation Multicore system, control method of multicore system, and non-transitory readable medium storing program
US9720874B2 (en) * 2010-11-01 2017-08-01 Invensense, Inc. Auto-detection and mode switching for digital interface
CN102508738B (zh) * 2011-10-14 2014-02-19 北京华为数字技术有限公司 一种多核处理器业务信息的备份方法、内核和备份内核
CN203733117U (zh) * 2011-12-14 2014-07-23 通用电气公司 接口连接主处理器与从处理器的系统
TWM439848U (en) * 2012-06-08 2012-10-21 Abbahome Inc Input device and Bluetooth converter thereof
WO2014125606A1 (ja) * 2013-02-15 2014-08-21 三菱電機株式会社 制御装置
TWI509428B (zh) * 2013-05-01 2015-11-21 Ibase Technology Inc 防制系統失效之備援方法
DE112013007143T5 (de) * 2013-06-07 2016-02-18 Mitsubishi Electric Corporation Computersystem und Steuerungsverfahren
JP6623996B2 (ja) * 2016-09-26 2019-12-25 横河電機株式会社 処理装置、ネットワーク装置、処理装置の制御方法、ネットワーク装置の制御方法、処理装置の制御プログラム、ネットワーク装置の制御プログラム及び記録媒体
CN106776389B (zh) * 2016-11-29 2020-10-16 广州视源电子科技股份有限公司 存储器的访问方法及多系统终端
CN110990330B (zh) * 2019-12-02 2023-07-18 中国科学院光电技术研究所 一种基于通用平台的多层共轭自适应光学的实时控制器
CN114064233A (zh) * 2021-10-15 2022-02-18 交控科技股份有限公司 一种车载控制器控制方法和计算机可读存储介质
CN116705069B (zh) * 2023-07-31 2023-11-10 北京芯驰半导体科技有限公司 音频检测方法、芯片、交通设备上的部件及交通设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02289020A (ja) 1989-03-17 1990-11-29 Fujitsu Ltd 情報処理装置のタイムアウト処理方式
JPH04219860A (ja) 1990-12-20 1992-08-10 Nec Corp マルチシステム制御プロセッサによるホスト監視制御方式
US5383192A (en) 1992-12-23 1995-01-17 Intel Corporation Minimizing the likelihood of slip between the instant a candidate for a break event is generated and the instant a microprocessor is instructed to perform a break, without missing breakpoints
DE4418231C2 (de) 1994-05-25 1997-02-27 Siemens Ag Modular strukturierter Service-Personalcomputer
JPH09233466A (ja) * 1996-02-20 1997-09-05 Hitachi Ltd 多重符号化映像/音声信号の分離復号装置
JP4046825B2 (ja) * 1997-12-26 2008-02-13 キヤノン株式会社 データ転送装置
JP2004062589A (ja) * 2002-07-30 2004-02-26 Nec Corp 情報処理装置
JP2005115751A (ja) * 2003-10-09 2005-04-28 Hitachi Ltd 計算機システム及び計算機システムの障害兆候の検知方法
US20050240806A1 (en) * 2004-03-30 2005-10-27 Hewlett-Packard Development Company, L.P. Diagnostic memory dump method in a redundant processor
US7673174B2 (en) * 2005-04-06 2010-03-02 University Of Washington Recovering device drivers
JP4585463B2 (ja) * 2006-02-15 2010-11-24 富士通株式会社 仮想計算機システムを機能させるためのプログラム
JP4928903B2 (ja) 2006-10-26 2012-05-09 株式会社東芝 熱分解炉装置
JP2008186173A (ja) * 2007-01-29 2008-08-14 Toyota Motor Corp 障害監視システム
JP2008117517A (ja) * 2007-11-05 2008-05-22 Sony Corp 記録装置および方法、再生装置および方法、記録媒体、並びにプログラム
JP2009190103A (ja) 2008-02-13 2009-08-27 Hitachi High-Tech Control Systems Corp 半導体搬送装置

Also Published As

Publication number Publication date
JP2011043892A (ja) 2011-03-03
US20120137163A1 (en) 2012-05-31
CN102473128A (zh) 2012-05-23
CN102473128B (zh) 2014-12-03
EP2469415A4 (en) 2017-06-14
WO2011021318A1 (ja) 2011-02-24
EP2469415A1 (en) 2012-06-27
US8719628B2 (en) 2014-05-06
EP2469415B1 (en) 2018-07-11

Similar Documents

Publication Publication Date Title
JP5099090B2 (ja) マルチコアシステム、マルチコアシステムの制御方法、及びマルチプロセッサ
JP5382133B2 (ja) マルチコアシステム、マルチコアシステムの制御方法及びプログラム
JP4580845B2 (ja) タスク実行装置
JP5405320B2 (ja) 仮想計算機制御装置、仮想計算機制御方法及び仮想計算機制御プログラム
US9164823B2 (en) Resetting a peripheral driver and prohibiting writing into a register retaining data to be written into a peripheral on exceeding a predetermined time period
JP2007079789A (ja) 計算機システム及びイベント処理方法
KR20150067332A (ko) 코어 간 통신 장치 및 방법
JP2006099331A (ja) 情報処理装置、割り込み処理制御方法、並びにコンピュータ・プログラム
JPWO2009060530A1 (ja) ネットワーク処理制御装置,プログラムおよび方法
WO2013152584A1 (zh) 嵌入式系统喂狗的方法、装置及单板
JP4523910B2 (ja) 並列処理装置及び並列処理方法及び並列処理プログラム
WO2022095862A1 (zh) 调整线程优先级的方法、终端及计算机可读存储介质
JP5277961B2 (ja) 情報処理装置及びその故障隠蔽方法
CN114328350A (zh) 一种基于axi总线的通讯方法、装置以及介质
JP5375650B2 (ja) マルチコアシステム、マルチコアシステムの制御方法及びプログラム
GB2271206A (en) Handling frame overruns in a digital signal processing system
JP2000222376A (ja) 計算機システムとその運用方法
JP4567586B2 (ja) 処理装置
JP2007323256A (ja) 割込制御方法および情報処理装置
JP2019176366A (ja) 情報処理装置、情報処理方法、及びプログラム
TW201344416A (zh) 節省系統資源之方法及運用其方法之作業系統
JP2010146065A (ja) 情報処理装置、割り込み制御方法
JP3266184B2 (ja) 入出力制御方法とその装置
JPH07244607A (ja) キューメモリシステムおよびその方法
JP2007128396A (ja) 割込制御方法および情報処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120710

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120828

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120910

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5099090

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees