(57)【要約】【課題】マルチプロセッサシステムにおいてタスク及び割込み処理の並列処理を可能にし、また、並列処理の処理効率が高いマルチプロセッサシステム【解決手段】複数の単位プロセッサを備えたマルチプロセッサシステムにおいて、リソースに対応する複数のセマフォを識別可能に設定するＨＷセマフォ部１３、単位プロセッサＰ０がＨＷセマフォ部１３に対してセマフォの取得要求をした場合、この要求が単位プロセッサＰ１によって取得されているセマフォである取得中セマフォを要求するものであるか否か判断し、この要求が取得中セマフォを要求するものであると判断された場合に単位プロセッサＰ０の要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合、プログラム制御部１０５が要求されたセマフォの取得を許可する。【選択図】図３
2007188397.tif 000002
【特許請求の範囲】
【請求項１】
複数の単位プロセッサを備えたマルチプロセッサシステムであって、
リソースに対応する複数のセマフォを識別可能に設定するセマフォ設定手段と、
前記単位プロセッサのうちの第１単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断手段と、
前記セマフォ要求判断手段により、前記要求が取得中セマフォを要求するものであると判断された場合に第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御手段と、
を備えることを特徴とするマルチプロセッサシステム。
【請求項２】
セマフォの取得が許可された第１単位プロセッサに対するディスパッチによるタスクスイッチ、外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の少なくとも１つを禁止する割込み禁止手段を備えることを特徴とする請求項１に記載のマルチプロセッサシステム。
【請求項３】
単位プロセッサが、マルチプロセッサの内部で発生したタスク及び外部で発生したハンドラを処理するためにセマフォの取得を要求し、前記排他制御手段は、タスク処理のためのセマフォ取得要求同士、タスク処理のためのセマフォ取得要求とハンドラ処理のためのセマフォ取得要求、ハンドラ処理のためのセマフォ取得要求同士の間でセマフォの取得を待機させる、または許可することを特徴とする請求項１または２に記載のマルチプロセッサシステム。
【請求項４】
前記排他制御手段が前記第１単位プロセッサによって要求されたセマフォの取得を許可した場合、前記第１単位プロセッサをスピンロックすることを特徴とする請求項１から３のいずれか１項に記載のマルチプロセッサシステム。
【請求項５】
前記セマフォ設定手段は、複数のセマフォの各々に識別情報を付すことによって識別可能に設定すると共に複数のセマフォの少なくとも一部のセマフォに共通の識別情報を付して共通の該識別情報が付された複数のセマフォの各々に管理エリアを設定し、
前記セマフォ要求判断手段は、識別情報に応じて第１単位プロセッサが取得要求をしたセマフォが第２単位プロセッサによって取得されている取得中セマフォであるか否かを管理エリアごとに判断することを特徴とする請求項１から４のいずれか１項に記載のマルチプロセッサシステム。
【請求項６】
複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムであって、
前記単位プロセッサのうちの第１単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断ステップと、
前記セマフォ要求判断ステップにおいて前記要求が取得中セマフォを要求するものであると判断された場合には第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御ステップと、
前記排他制御ステップにおいてセマフォの取得が許可された単位プロセッサを割込み禁止に設定する割込み禁止ステップと、
を含むことを特徴とするマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムに係り、特に外部の機器からの割込み処理を受付けながら並列にプログラムの処理を実行するマルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
特定の装置に用いられるプロセッサは、組込みシステムと呼ばれている。近年では、組込みシステムにマルチプロセッサやマルチスレッドプロセッサが採用されることも多い。マルチプロセッサの採用は、装置の低クロック化や応答性の向上に有利である。また、特に携帯型の装置では、消費電力を低減することにも有利であるためマルチプロセッサを採用することが望まれている。
【０００３】
ところで、新たに開発したプロセッサが正常に動作するか否かの判断に時間及びコストがかかる。このため、ソフトウェアの分野では、使用した結果実績のあるプロセッサが流用可能であるならば、これを流用することが望ましいとされている。したがって、組込みシステムをマルチプロセッサ化する場合、先に使用されていたシングルプロセッサのソフトウェアを流用する要求がある。
【０００４】
シングルプロセッサをマルチプロセッサに流用する従来技術として、例えば、特許文献１がある。特許文献１の発明は、μＩＴＲＯＮ（登録商標）をベースにしたシングルプロセッサ用のオペレーティングシステム（ＯＳ：Operating System）をマルチプロセッサに移植するものである。
【特許文献１】特開平８−２９７５８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、シングルプロセッサでは、プロセッサがプログラムを所定の単位（タスク）で実行する間、タスク側でプロセッサを割込み禁止に設定する。また、シングルプロセッサでは、割込みレベルが比較的低い割込み処理において、処理の実行中の割込みが禁止されることがある。さらに、シングルプロセッサでは、ＯＳを呼び出すサービスコールを発行する場合、サービスコールの発行からＯＳの解放までの全期間割込み処理が禁止する必要があった。
【０００６】
上記した仕様をマルチプロセッサに流用した場合、マルチプロセッサが複数のプロセッサ部を持つにも関わらず、割込み処理とタスク処理とを並列に実行することができない。また、優先度に関わらず割込み処理が待機状態になる期間が発生するため、プログラムの処理効率が低下するという欠点がある。
図１１は、割込み処理が待機状態になる従来技術を説明するための図である。低優先度のタスクの実行中、このタスクは、より優先度の高いタスクや割込み処理によって中断することを防ぐため、プロセッサを割込み禁止状態に設定する。この結果、後のタスクや割込み処理は低優先度のタスクが終了するまで起動することなく待機させられる。
【０００７】
本発明は、このような点に鑑みてなされたものであって、マルチプロセッサシステムにおいてタスク及び割込み処理の並列処理を可能にし、また、タスク等の待機時間を短縮できて並列処理の処理効率が高いマルチプロセッサシステム、及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するため、本発明のマルチプロセッサシステムは、複数の単位プロセッサを備えたマルチプロセッサシステムであって、リソースに対応する複数のセマフォを識別可能に設定するセマフォ設定手段と、前記単位プロセッサのうちの第１単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断手段と、前記セマフォ要求判断手段により、前記要求が取得中セマフォを要求するものであると判断された場合に第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御手段と、を備えることを特徴とする。
【０００９】
このような発明によれば、リソースに対応する複数のセマフォを識別可能に設定することができる。そして、単位プロセッサのうちの第１単位プロセッサがセマフォ設定手段に設定されているセマフォの取得要求をした場合、セマフォを識別して要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断する。要求が取得中セマフォを要求するものであると判断された場合、第１単位プロセッサの要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可することができる。
【００１０】
このため、要求されたセマフォが既に取得中である場合を除いて第１単位プロセッサが待機状態になることがなく、第２単位プロセッサと並行に動作することができる。
本発明は、単位プロセッサが待機状態になる時間を短縮し、並列動作可能な期間を増やすことができる。このような本発明は、並列処理の処理効率が高いマルチプロセッサシステムを提供することができる。
【００１１】
また、本発明のマルチプロセッサシステムは、セマフォの取得が許可された第１単位プロセッサに対するディスパッチによるタスクスイッチ、外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の少なくとも１つを禁止する割込み禁止手段を備えることを特徴とする。
このような発明によれば、第１単位プロセッサに処理終了まで割込み処理が発生することがなく、デッドロック等が発生する可能性を低減することができる。
【００１２】
また、本発明のマルチプロセッサシステムは、単位プロセッサが、マルチプロセッサの内部で発生したタスク及び外部で発生したハンドラを処理するためにセマフォの取得を要求し、前記排他制御手段は、タスク処理のためのセマフォ取得要求同士、タスク処理のためのセマフォ取得要求とハンドラ処理のためのセマフォ取得要求との間、ハンドラ処理のためのセマフォ取得要求同士でセマフォの取得を待機または許可することを特徴とする。
このような発明によれば、タスク処理、タスク処理とハンドラ処理、ハンドラ処理同士を並列処理することができる。
【００１３】
また、本発明のマルチプロセッサシステムは、前記排他制御手段が前記第１単位プロセッサによって要求されたセマフォの取得を許可した場合、前記第１単位プロセッサをスピンロックすることを特徴とする。
このような発明によれば、待機状態の他の単位プロセッサが第１単位プロセッサによるセマフォの解放を周期的に検出することができる。このため、第１単位プロセッサのセマフォ解放を直ちに検出して解放されたセマフォを取得し、待機状態から脱することができる。
【００１４】
また、本発明のマルチプロセッサシステムは、前記セマフォ設定手段が、複数のセマフォの各々に識別情報を付すことによって識別可能に設定すると共に複数のセマフォの少なくとも一部のセマフォに共通の識別情報を付して共通の該識別情報が付された複数のセマフォの各々に管理エリアを設定し、前記セマフォ要求判断手段が、識別情報に応じて第１単位プロセッサが取得要求をしたセマフォが第２単位プロセッサによって取得されている取得中セマフォであるか否かを管理エリアごとに判断することを特徴とする。
このような発明によれば、ハードウェア資源が少ない場合にも多くのセマフォを制御することが可能になる。
【００１５】
また、本発明のマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムは、複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムであって、前記単位プロセッサのうちの第１単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断ステップと、前記セマフォ要求判断ステップにおいて前記要求が取得中セマフォを要求するものであると判断された場合には第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御ステップと、前記排他制御ステップにおいてセマフォの取得が許可された単位プロセッサを割込み禁止に設定する割込み禁止ステップと、を含むことを特徴とする。
【００１６】
このような発明によれば、リソースに対応する複数のセマフォを識別可能に設定することができる。そして、単位プロセッサのうちの第１単位プロセッサがセマフォ設定手段に設定されているセマフォの取得要求をした場合、セマフォを識別して要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断する。要求が取得中セマフォを要求するものであると判断された場合、第１単位プロセッサの要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可することができる。
【００１７】
このため、要求されたセマフォが既に取得中である場合を除いて第１単位プロセッサが待機状態になることがなく、第２単位プロセッサと並行に動作することができる。
本発明は、単位プロセッサが待機状態になる時間を短縮し、並列動作可能な期間を増やすことができる。このような本発明は、並列処理の処理効率が高いマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図を参照して本発明に係るマルチプロセッサシステム、及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムの一実施の形態を説明する。
本実施形態は、本実施形態のマルチプロセッサシステムを、携帯電話に適用される組込みシステムとして構成したものとする。マルチプロセッサシステムは、複数のプロセッサ（単位プロセッサ）を結合して構成される。一般的なマルチプロセッサシステムにおける単位プロセッサの結合の例を図１に示す。
【００１９】
図１（ａ）、（ｂ）に示したマルチプロセッサは、いずれも対称型マルチプロセッサ（ＳＭＰ：symmetric multi-processor）と呼ばれる構成であって、複数の単位プロセッサＰｕを、メモリを共有するように結合して構成されている。（ａ）に示した構成は、マルチプロセッサと呼ばれている。また、（ｂ）に示した構成は、マルチスレッドプロセッサと呼ばれている。マルチスレッドプロセッサは、マルチプロセッサよりも演算器を共有している点で単位プロセッサＰｕは密に結合しているという。
本実施形態では、マルチプロセッサシステムをマルチプロセッサとして構成した例を挙げて説明するものとする。なお、本実施形態は、マルチプロセッサ、マルチスレッドプロセッサのいずれとしても構成可能である。
【００２０】
図２は、本発明の一実施形態のマルチプロセッサシステムが適用される携帯電話１の機能構成を示すブロック図である。図２において、携帯電話１は、ＣＰＵ（Central Processing Unit）１０と、フラッシュＲＯＭ２０と、メモリ３０と、バッファ４０と、無線部５０と、ＩｒＤＡ（Infrared Data Association）部６０と、オーディオ（Audio）部７０と、タイマ（Timer）８０と、ＵＳＢ（Universal Serial Bus）インターフェース部９０と、キー（KEY）操作部１００と、ＬＣＤ（Liquid Crystal Display）１１０と、カメラ（Camera）部１２０を含んで構成され、ＣＰＵ１０、フラッシュＲＯＭ２０、メモリ３０及びバッファ４０は、バスによって接続されている。また、無線部５０、ＩｒＤＡ部６０、オーディオ部７０、タイマ８０、ＵＳＢインターフェース部９０、キー操作部１００、ＬＣＤ１１０及びカメラ部１２０は、ＣＰＵ１０と直接接続されている。
【００２１】
ＣＰＵ１０は、複数のタスクを並列的に処理しながら携帯電話１全体を制御するもので、キー操作部１００から入力される各種の指示信号に応じて、メモリ３０に記憶されたオペレーティングシステムプログラム（ＯＳ：Operating System）や各種アプリケーションプログラムを読み出して実行し、無線部５０、オーディオ部７０あるいはカメラ部１２０等の周辺チップから入力される割込み信号に応じて割込みハンドラを実行する。なお、ＯＳは、マルチプロセッサに対応するＯＳである。
また、ＣＰＵ１０は、各種処理結果をフラッシュＲＯＭ２０あるいはメモリ３０に格納する。
【００２２】
図３は、図２中にＣＰＵ１０として示した本実施形態のマルチプロセッサを説明するための図である。本実施形態のマルチプロセッサは、複数の単位プロセッサＰ０、Ｐ１、Ｐ２、Ｐ３を組み合わせ、複数の前記単位プロセッサを複数のオペレーティングシステムで動作させるマルチプロセッサである。図３に示したように、マルチプロセッサは、複数の単位プロセッサＰ０〜Ｐ３と、割込み制御部１１と、メモリ制御部１２と、ハードウェアセマフォ（以下ＨＷセマフォ）部１３とを含んで構成される。
【００２３】
ＨＷセマフォ部１３は、競合する処理（本実施形態ではハードウェアリソースを占有する処理）をいずれかの単位プロセッサが優先的に実行する権利であるＨＷセマフォを設定する構成である。本実施形態では、ＨＷセマフォ部１３にハードウェアリソースに応じた複数のＨＷセマフォを識別可能に設定している。識別のため、複数のＨＷセマフォの各々には識別情報（ＩＤ）が付されている。ＨＷセマフォを要求するサービスコールは、ＨＷセマフォのＩＤを指定して行われる。
【００２４】
このサービスコールによってＨＷセマフォが取得できた単位プロセッサだけがこのＨＷセマフォに対応するハードウェアリソースを使用して処理を実行できる。また、本実施形態では、ＨＷセマフォを取得できた単位プロセッサに対する割込みを必要な期間禁止する。
ＨＷセマフォ部１３は、後述するプログラム制御部１０５と協働し、単位プロセッサのうちの第１単位プロセッサ（例えば単位プロセッサＰ０）がＨＷセマフォ部１３に設定されているセマフォの取得要求をした場合、この要求が第２単位プロセッサ（例えば単位プロセッサＰ１）によって取得されているセマフォ（取得中セマフォ）を要求するものであるか否か判断する。
【００２５】
また、プログラム制御部１０５は、ＨＷセマフォ部１３によってセマフォ取得の要求が取得中セマフォを要求するものであると判断された場合、単位プロセッサＰ０の要求を待機させる。一方、この要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する。さらに、セマフォの取得が許可された単位プロセッサＰ０単位プロセッサを割込み禁止に設定する。
【００２６】
以上の構成において、ＨＷセマフォ部１３はセマフォ設定手段、ＨＷセマフォ部１３及びプログラム制御部１０５は、セマフォ要求判断手段、排他制御手段、割込み制御手段に相当する。
プログラム管理部１０５は、ＩＤに応じ、要求されたＨＷセマフォが既に他の単位プロセッサによって使用されているか否かを管理エリアごとに判断する。このようにすれば、１つのＨＷセマフォを使用して複数の単位プロセッサを排他制御することができる。
【００２７】
また、本実施形態では、ＩＤの付与にあたり、ＨＷセマフォ部１３が複数のＨＷセマフォの少なくとも一部のセマフォに共通のＩＤを付す。また、共通のＩＤが付された複数のＨＷセマフォの各々に管理エリアを設定する。そして、プログラム管理部１０５が、前記したように、要求されたＨＷセマフォが既に他の単位プロセッサによって使用されているか否かを管理エリアごとに判断するので、ハードウェア資源が少ない場合にも多くのセマフォを制御し、単位プロセッサを排他制御することが可能になる。
【００２８】
すなわち、本実施形態では、ＨＷセマフォ０〜ＨＷセマフォ７の合計８個のＨＷセマフォを定義し、ＩＤを２５５個設定可能にした。このため、ＨＷセマフォ０〜６には各々１対１にＩＤが対応付けられ、ＨＷセマフォ７には８〜２５５のＩＤが対応付けられる。そして、例えばメモリ３０において８〜２５５のＩＤに対応した管理エリアを設けるものとする。
【００２９】
また、単位プロセッサＰ０〜Ｐ３は、マルチプロセッサの内部で発生したタスク及び外部で発生したハンドラを処理するためにセマフォの取得を要求する。割込み制御部１１及びプログラム制御部１０５は、タスク処理のためのセマフォ取得要求同士、また、タスク処理のためのセマフォ取得要求とハンドラ処理のためのセマフォ取得要求との間で、さらにハンドラ処理のためのセマフォ取得要求同士でセマフォの取得を待機または許可している。
このような構成によれば、本実施形態のマルチプロセッサは、タスク処理同士、タスク処理と外部割込みによる処理、外部割込みによる処理同士を並列に処理し、必要に応じて排他制御することができる。
【００３０】
すなわち、ＨＷセマフォ部１３は、単位プロセッサＰ０〜Ｐ３からセマフォ取得要求があったとき、単位プロセッサＰ０〜Ｐ３が指定したＨＷセマフォが既に獲得されている状態であれば、新たな要求に対して指定されたＨＷセマフォの獲得失敗を通知する。一方、それ以前にＨＷセマフォが獲得された状態でなければ、指定されたＨＷセマフォ取得成功の通知を単位プロセッサに返答する機能を有している。
【００３１】
このようなＨＷセマフォは、複数の単位プロセッサが同時に同一のハードウェアリソースを使用することを防ぐことができる。このため、ＯＳによって使用されるメモリ３０の所定の領域が同時にアクセスされたために処理が中断する等の不具合を防ぐことができる。
また、本実施形態のプロセッサは、単位プロセッサＰ０〜Ｐ３の共有エリアとなるメモリ３０と、メモリ３０を制御するメモリ制御部１２とを備えている。本実施形態では、ハードウェアリソースとＨＷセマフォのＩＤとを対応付ける情報をメモリ３０に保存する。
【００３２】
次に、各単位プロセッサＰ０〜Ｐ３の内部構成について説明する。なお、単位プロセッサＰ０〜Ｐ３は、同様に構成されているため、単位プロセッサＰ０の内部構成についてのみ説明し、他の単位プロセッサの説明に代えるものとする。
単位プロセッサＰ０は、フェッチ部１０１と、デコード部１０２と、ＡＬＵ（Arithmetic and Logical Unit）１０３と、レジスタファイル１０４と、プログラム制御部１０５とを含んで構成される。フェッチ部１０１は、後述するプログラム制御部１０５のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部１０２に出力する。
【００３３】
デコード部１０２は、フェッチ部１０１によって入力された命令コードをデコードし、デコード結果（命令内容及びソースレジスタ、デスティネーションレジスタのアドレス等）をＡＬＵ１０３に出力する。
ＡＬＵ１０３は、デコード部１０２によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタファイル１０４に書き込む、あるいは分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部１０５に出力する。
【００３４】
レジスタファイル１０４は、ロード命令によってメモリ３０から読み出されたデータや、ＡＬＵ１０３の演算結果であるデータを記憶するレジスタ群である。後述するように、レジスタファイル１０３は、汎用レジスタ群と特殊レジスタ群とを含んでいて、特殊レジスタ群は、本実施形態のブート処理のためのアドレスが書き込まれる領域である。
プログラム制御部１０５は、単位プロセッサＰ０全体を制御するものであり、単位プロセッサＰ０のステータス（例えば、割込みの可否状態、単位プロセッサＰ０におけるオーバーフローの発生状態等）を記憶するステータスレジスタ（ＰＳＲ）３０５と、単位プロセッサＰ０が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタおい（ＰＣ）２３０とを含んで構成される。そして、プログラム制御部１０５は、単位プロセッサＰ０が割込み処理に移行する時点で、ＰＳＲ３０５の値を割込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
【００３５】
また、プログラム制御部１０５は、実行中のタスクによってＨＷセマフォの取得要求が出力された場合、先ず、ＨＷセマフォの取得結果を受け取り、ステータスレジスタにおけるＨＷセマフォの取得結果を示す領域において、ＨＷセマフォの取得に成功したことを示すフラグを更新する。一方、セマフォ取得に失敗した場合、ＨＷセマフォの取得に失敗したことを示すフラグを更新し、ＨＷセマフォの取得を一旦停止して待機状態から離脱する。
【００３６】
さらに、プログラム制御部１０５は、追出し禁止フラグ１０６を備えている。追出し禁止フラグ１０６は、自単位プロセッサにおいてタスクの切替えや外部割込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。追出し禁止フラグ１０６を１にすることによって現在単位プロセッサにあるタスクや割込み処理が他のタスクや割込み処理に切替えられることが禁止される。
【００３７】
単位プロセッサにおけるタスクの追出しが禁止された状態をロック状態といい、本実施形態では、スピンロックによってロック状態を実現する。
スピンロックとは、単位プロセッサ間で同じ資源（本実施形態ではハードウェアリソース）を使用する場合、その資源の解放を待ってビジーウェイトする方法である。単位プロセッサ間の通信を利用した排他制御に比べ、単位プロセッサ同士の同期のためのオーバーヘッドが少ない点で有利である。スピンロックは、資源を利用している排他区間が短い場合に適した方式である。
【００３８】
割込み制御部１１は、無線部５０等の周辺チップから外部割込みの割込み信号が入力された場合に、割込み信号を調停した上で、所定の割込み信号を単位プロセッサＰ０〜Ｐ３のうち指定された単位プロセッサに出力する。メモリ制御部１２は、ＣＰＵ１０とメモリ３０との間に備えられ、ＣＰＵ１０からメモリ３０に対するデータの読み出し及び書込みが行われる場合に、メモリ３０を制御してデータの入出力を行っている。
【００３９】
次に、以上述べたマルチプロセッサの動作を説明する。
図４は、本実施形態のマルチプロセッサシステムの割込み制御方法を説明するためのフローチャートであって、プログラム制御部１０５及びハードウェア構成であるＨＷセマフォ部１３によって実行される処理を説明するための図である。
排他すべき処理が発生すると、ＨＷセマフォ部１３は、単位プロセッサ側のソフトウェアの要求によってＨＷセマフォ取得の要求を受付ける（Ｓ４０１）。ＨＷセマフォの取得は、ＴＥＳＴ＆ＳＥＴ方式で行われる。ＴＥＳＴ＆ＳＥＴ方式は、１つの機械語命令で行われるから、処理の途中で他のタスク等に割込まれて競合状態になることがない。
【００４０】
また、ＨＷセマフォ部１３は、ＨＷセマフォの取得が成功したか否か判断する（Ｓ４０２）。この判断の結果、ＨＷセマフォの取得が成功した場合（Ｓ４０２：Ｙｅｓ）、プログラム制御部１０５が、ＨＷセマフォを取得した単位プロセッサ（要求元プロセッサ）に対する割込みを禁止する（Ｓ４０３）。この割込み禁止は、要求元プロセッサに対して外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の他、ディスパッチによるタスクスイッチを禁止するものである。
【００４１】
また、プログラム制御部１０５は、ＨＷセマフォが取得できたことを、要求元プロセッサのステータスレジスタに設定することによって要求元プロセッサに通知する（Ｓ４０４）。また、本実施形態では、ＨＷセマフォの取得が成功した場合は、要求元プロセッサの追出し禁止フラグ１０６をも同時に設定してスピンロックするものとした。一方、ステップＳ４０２においてＨＷセマフォが取得できなかったと判断された場合（Ｓ４０２：Ｎｏ）、要求元プロセッサのステータスレジスタにＨＷセマフォが取得できなかったことを設定する（Ｓ４０４）。
【００４２】
図５（ａ）、（ｂ）は、ＨＷセマフォ取得の成否について説明するための図である。図５（ａ）、（ｂ）に示したように、要求元プロセッサとなる単位プロセッサは、ＨＷセマフォを制御するＨＷ（ＨＷセマフォ部１３）に対し、ＨＷセマフォを取得するためＴＥＳＴ＆ＳＥＴを実行する。なお、ＴＥＳＴ＆ＳＥＴの実行からＰＳＲへ結果を書き込むまでの処理は、１サイクル分で完了する。
【００４３】
ＨＷセマフォが取得できた場合、ＨＷセマフォ部１３は、要求元プロセッサのＰＳＲ３０５にＨＷセマフォが取得できたことを書き込む。ＨＷセマフォ取得の通知を受けた要求元プロセッサは、スピンロック状態を確保する。また、ＨＷセマフォが取得できなかった場合、ＨＷセマフォ部１３は、要求元プロセッサのＰＳＲ３０５にＨＷセマフォが取得できなかったことを書き込む。ＨＷセマフォが取得できなかった場合、要求元プロセッサは、ＨＷセマフォが取得できるまでＨＷセマフォ取得の処理を繰り返す。
【００４４】
図６は、要求元プロセッサのプログラム制御部１０５によってなされるＨＷセマフォ取得の処理を説明するためのフローチャートである。要求元プロセッサは、先ず、メモリ３０に保存されているＨＷセマフォとＩＤとの対応情報を参照し、取得したいＨＷセマフォのＩＤを識別する（Ｓ６０１）。そして、ＩＤが８以下であった場合、ＩＤとＨＷセマフォとは１対１に対応付けられていることから、ＩＤに対応するＨＷセマフォの取得をＨＷセマフォ部１３に要求する（Ｓ６１３）。そして、この結果が書き込まれたＰＳＲの値をリターン値に反映してプログラムに結果を返す（Ｓ６１４）。
【００４５】
また、ステップＳ６０１において、ＩＤが８以上であると判断された場合（Ｓ６０１：Ｙｅｓ）、ＨＷセマフォ７にＨＷセマフォ部の取得を要求する（Ｓ６０２）。そして、ＰＳＲに書き込まれた値が、ＨＷセマフォが獲得できたことを示す場合（Ｓ６０３：Ｙｅｓ）、ＩＤに対応するＨＷセマフォの管理エリアをＴＥＳＴ＆ＳＥＴする（Ｓ６０４）。
このように、１つのＨＷセマフォ７に複数のＩＤを付した場合、本実施形態は、１つのＨＷを複数の単位プロセッサが同時に、かつ互いに影響することなく使用して処理を実行することができる。
【００４６】
また、プログラム制御部１０５は、ＴＥＳＴ＆ＳＥＴによってセマフォが獲得できたか否か判断し（Ｓ６０５）、ＨＷセマフォ７にＨＷセマフォの解放を要求する（Ｓ６０６）。さらに、要求元プロセッサに割込み禁止を設定し（Ｓ６０７）、自プロセッサに対するタスク割込み、外部割込み、さらにはタスクスイッチを禁止する。以上の処理の後、ＨＷセマフォ取得の結果が書き込まれたＰＳＲの値をリターン値に反映してプログラムに結果を返す（Ｓ６０８）。
【００４７】
なお、プログラム制御部１０５は、ＨＷセマフォを取得できなかった場合（Ｓ６１２：Ｎｏ）、ＨＷセマフォ取得失敗を表すＰＳＲの値をリターン値に反映してプログラムに結果を返す（Ｓ６１４）。また、ＴＥＳＴ＆ＳＥＴによってセマフォが獲得できなかった場合にも（Ｓ６０５：Ｎｏ）、ＨＷセマフォ７にＨＷセマフォの解放を要求した後、ＰＳＲの値をリターン値に反映してプログラムに結果を返す（Ｓ６１１）。
【００４８】
以上の処理をするため、本実施形態では、以下の４つのサービスコールを設定した。
・ｌｏｃ＿ｓｐｎ
タスク側からＨＷセマフォの取得を行うサービスコールである。単位プロセッサは、ＨＷセマフォが取得できるまでサービスコールからは復帰しない。タスクを処理する単位プロセッサがｌｏｃ＿ｓｐｎ状態の場合、ｕｎｌ＿ｓｐｎ以外のサービスコールは禁止すると共に、この単位プロセッサへの割込み及びタスクスイッチも禁止される。
【００４９】
・ｉｌｏｃ＿ｓｐｎ
割込みハンドラ側からＨＷセマフォの取得を行うサービスコールである。単位プロセッサは、ＨＷセマフォが取得できるまでサービスコールからは復帰しない。割込みハンドラを実行する単位プロセッサがｉｌｏｃ＿ｓｐｎ状態の場合は、ｉｕｎｌ＿ｓｐｎ以外のサービスコールは禁止すると共に、この単位プロセッサへの割込み及びタスクスイッチが禁止される。
【００５０】
・ｕｎｌ＿ｓｐｎ
タスク側からＨＷセマフォの解放を行うサービスコールである。ＨＷセマフォ獲得待ちの単位プロセッサがある場合、この単位プロセッサはｕｎｌ＿ｓｐｎのタイミングでスピンロックが取得できる。
【００５１】
・ｉｕｎｌ＿ｓｐｎ
割込みハンドラ側からＨＷセマフォの解放を行うサービスコールである。ＨＷセマフォ獲得待ちの単位プロセッサがある場合、この単位プロセッサはｉｕｎｌ＿ｓｐｎのタイミングでスピンロックが取得できる。
【００５２】
図７は、図６に示したフローチャートによって実現される並列動作を説明するための図である。図７（ａ）に示したように、本実施形態は、優先度の比較的低いタスクの実行中、このタスクを実行する単位プロセッサがタスクの終了までＯＳによってスピンロックされる。この間、本実施形態のマルチプロセッサは割込み禁止に設定されることなく、実行中のタスクが取得したＨＷセマフォとは無関係に実行されるタスクや割込み処理は他の単位プロセッサにおいて並列に動作することができる。
また、図７（ｂ）に示したように、並列動作中の単位プロセッサにおいて、並列処理されているタスクや割込み処理が既に取得されているＨＷセマフォの取得を要求した場合、要求したＨＷセマフォが解放されるまでタスク等が待機することになる。
【００５３】
図８は、プログラム制御部１０５がＨＷセマフォを解放する処理を説明するためのフローチャートである。プログラム制御部１０５は、解放すべきＨＷセマフォのＩＤが８以上であるか否かを判定する（Ｓ８０１）。判断の結果、ＩＤが８以下である場合（Ｓ８０１：Ｎｏ）、ＩＤに対応するＨＷセマフォの解放をＨＷセマフォ部１３に要求する（Ｓ８０３）。
一方、ＩＤが８以上である場合（Ｓ８０１：Ｙｅｓ）、ＯＳ内のＩＤに対応するセマフォ管理エリアに書き込まれた情報を消去し（Ｓ８０２）、処理を終了する。
【００５４】
図９は、ＨＷセマフォ部１３がＨＷセマフォを解放する処理を説明するためのフローチャートである。ＨＷセマフォ部１３は、解放すべきＩＤのＨＷセマフォに対して解放要求（ＣＬＥＡＲ）をする（Ｓ９０１）。
そして、要求元プロセッサの割込み禁止を解除し（Ｓ９０２）、要求元プロセッサのＰＳＲ３０５にＨＷセマフォを解放したことを示す値を設定して通知する（Ｓ９０３）。
【００５５】
図１０は、ＨＷセマフォ解放を説明するための図である。ＨＷセマフォ解放の要求元プロセッサとなる単位プロセッサは、ＨＷセマフォ解放の通知を受け取った後にスピンロック状態から解放される。
なお、図４、図６、図８、図９で述べた本実施形態のマルチプロセッサシステムの割込み制御方法（発明の名称に対応）をコンピュータに実行させるためのプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態のマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
【００５６】
さらに、以上述べた本実施形態のマルチプロセッサシステムの割込み制御方法（発明の名称に対応）をコンピュータに実行させるためのプログラムは、コンピュータで読み取り可能なＲＯＭ、フラッシュメモリ、メモリカード、ＵＳＢ接続型フラッシュメモリ等のメモリデバイスに記録されて提供してもよい。
以上述べた本実施形態によれば、８個のＨＷセマフォを識別可能に設定し、タスク処理や割込みハンドラが使用するＨＷリソースに応じたＨＷセマフォを指定して取得を要求する。このため、競合することがないタスクや割込み処理については並列に動作させることができる。
【００５７】
また、先に取得されているＨＷセマフォの取得が要求された場合、要求した単位プロセッサは処理を待たされる。このため、並列処理中に同一のＨＷリソースが使用されることがなく、処理の競合によるデッドロック等が発生することを防ぐことができる。
このような本実施形態のマルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法（発明の名称に対応）は、先に図１１で示した従来例の構成に比べてタスク等が待機する期間が短いことが明らかである。待機時間が短く、並列処理の処理効率を高めることができる。
【図面の簡単な説明】
【００５８】
【図１】一般的なマルチプロセッサシステムにおける単位プロセッサの結合の例を示した図である。
【図２】本発明の一実施形態のマルチプロセッサが適用される携帯電話の機能構成を示すブロック図である。
【図３】本発明の一実施形態のマルチプロセッサを説明するための図である。
【図４】本実施形態のマルチプロセッサシステムの割込み制御方法（発明の名称に対応）を説明するためのフローチャートである。
【図５】図４のフローチャートに示したＨＷセマフォ取得の成否について説明するための図である。
【図６】本発明の一実施形態のプログラム制御部によってなされるＨＷセマフォ取得の処理を説明するためのフローチャートである。
【図７】図６に示したフローチャートによって実現される並列動作を説明するための図である。
【図８】本発明の一実施形態のプログラム制御部がＨＷセマフォを解放する処理を説明するためのフローチャートである。
【図９】本発明の一実施形態の割込み制御部がＨＷセマフォを解放する処理を説明するためのフローチャートである。
【図１０】本発明の一実施形態のＨＷセマフォ解放を説明するための図である。
【図１１】割込み処理が待機状態になる従来技術を説明するための図である。
【符号の説明】
【００５９】
１１  割込み制御部、１２  メモリ制御部、１３  ハードウェアセマフォ部、３０  メモリ、１０５  プログラム制御部、１０６  追出し禁止フラグ、２３０  ＰＣ、３０５  ＰＳＲ、Ｐ０，Ｐ１，Ｐ２，Ｐ３  単位プロセッサ
【図１】
2007188397.tif 000003
【図２】
2007188397.tif 000004
【図３】
2007188397.tif 000005
【図４】
2007188397.tif 000006
【図５】
2007188397.tif 000007
【図６】
2007188397.tif 000008
【図７】
2007188397.tif 000009
【図８】
2007188397.tif 000010
【図９】
2007188397.tif 000011
【図１０】
2007188397.tif 000012
【図１１】
2007188397.tif 000013
【手続補正書】
【提出日】平成19年4月9日(2007.4.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の単位プロセッサを備えたマルチプロセッサシステムであって、
リソースに対応する複数のセマフォを識別可能に設定するセマフォ設定手段と、
前記単位プロセッサのうちの第１単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断手段と、
前記セマフォ要求判断手段により、前記要求が取得中セマフォを要求するものであると判断された場合に第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御手段と、を備え、
前記セマフォ設定手段は、複数のセマフォの各々に識別情報を付すことによって識別可能に設定すると共に複数のセマフォの少なくとも一部のセマフォに複数の識別情報を付して前記単位プロセッサの共有メモリを管理し、
前記セマフォ要求判断手段は、識別情報に応じて第１単位プロセッサが取得要求をしたセマフォが第２単位プロセッサによって取得されている取得中セマフォであるか否かを、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断することを特徴とするマルチプロセッサシステム。
【請求項２】
セマフォの取得が許可された第１単位プロセッサに対するディスパッチによるタスクスイッチ、外部から要求される割込み処理、他の単位プロセッサによって要求される割込み処理の少なくとも１つを禁止する割込み禁止手段を備えることを特徴とする請求項１に記載のマルチプロセッサシステム。 
【請求項３】
単位プロセッサが、マルチプロセッサの内部で発生したタスク及び外部で発生したハンドラを処理するためにセマフォの取得を要求し、前記排他制御手段は、タスク処理のためのセマフォ取得要求同士、タスク処理のためのセマフォ取得要求とハンドラ処理のためのセマフォ取得要求、ハンドラ処理のためのセマフォ取得要求同士の間でセマフォの取得を待機させる、または許可することを特徴とする請求項１または２に記載のマルチプロセッサシステム。
【請求項４】
前記排他制御手段が前記第１単位プロセッサによって要求されたセマフォの取得を許可した場合、前記第１単位プロセッサは、前記セマフォの解放を待ってビジーウェイトする処理であるスピンロックによって第１単位プロセッサにおけるタスクの追出し禁止を実現することを特徴とする請求項１から３のいずれか１項に記載のマルチプロセッサシステム。 
【請求項５】
複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムであって、 
前記単位プロセッサのうちの第１単位プロセッサがセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断ステップと、
前記セマフォ要求判断ステップにおいて前記要求が取得中セマフォを要求するものであると判断された場合には第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御ステップと、 
前記排他制御ステップにおいてセマフォの取得が許可された単位プロセッサを割込み禁止に設定する割込み禁止ステップと、を含み、
複数のセマフォの少なくとも一部のセマフォに複数の識別情報が付されて前記単位プロセッサの共有メモリを管理し、
前記セマフォ要求判断ステップにおいて、識別情報に応じて第１単位プロセッサが取得要求をしたセマフォが第２単位プロセッサによって取得されている取得中セマフォであるか否かが、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断されることを特徴とするマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
以上の課題を解決するため、本発明のマルチプロセッサシステムは、複数の単位プロセッサを備えたマルチプロセッサシステムであって、リソースに対応する複数のセマフォを識別可能に設定するセマフォ設定手段と、前記単位プロセッサのうちの第１単位プロセッサが前記セマフォ設定手段に設定されているセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断手段と、前記セマフォ要求判断手段により、前記要求が取得中セマフォを要求するものであると判断された場合に第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御手段と、を備え、前記セマフォ設定手段は、複数のセマフォの各々に識別情報を付すことによって識別可能に設定すると共に複数のセマフォの少なくとも一部のセマフォに複数の識別情報を付して前記単位プロセッサの共有メモリを管理し、前記セマフォ要求判断手段は、識別情報に応じて第１単位プロセッサが取得要求をしたセマフォが第２単位プロセッサによって取得されている取得中セマフォであるか否かを、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
このような発明によれば、リソースに対応する複数のセマフォを識別可能に設定することができる。そして、単位プロセッサのうちの第１単位プロセッサがセマフォ設定手段に設定されているセマフォの取得要求をした場合、セマフォを識別して要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断する。要求が取得中セマフォを要求するものであると判断された場合、第１単位プロセッサの要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可することができる。また、このような発明によれば、ハードウェア資源が少ない場合にも多くのセマフォを制御することが可能になる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
また、本発明のマルチプロセッサシステムは、前記排他制御手段が前記第１単位プロセッサによって要求されたセマフォの取得を許可した場合、前記第１単位プロセッサは、前記セマフォの解放を待ってビジーウェイトする処理であるスピンロックによって第１単位プロセッサにおけるタスクの追出し禁止を実現することを特徴とする。このような発明によれば、待機状態の他の単位プロセッサが第１単位プロセッサによるセマフォの解放を周期的に検出することができる。このため、第１単位プロセッサのセマフォ解放を直ちに検出して解放されたセマフォを取得し、待機状態から脱することができる。 
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】削除
【補正の内容】
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
また、本発明のマルチプロセッサシステムの割込み制御方法をコンピュータに実行させ
るためのプログラムは、複数の単位プロセッサを備えたマルチプロセッサシステムに適用されるマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラムであって、前記単位プロセッサのうちの第１単位プロセッサがセマフォの取得要求をした場合、当該要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断するセマフォ要求判断ステップと、前記セマフォ要求判断ステップにおいて前記要求が取得中セマフォを要求するものであると判断された場合には第１単位プロセッサの要求を待機させる一方、前記要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可する排他制御ステップと、前記排他制御ステップにおいてセマフォの取得が許可された単位プロセッサを割込み禁止に設定する割込み禁止ステップと、を含み、複数のセマフォの少なくとも一部のセマフォに複数の識別情報が付されて前記単位プロセッサの共有メモリを管理し、前記セマフォ要求判断ステップにおいて、識別情報に応じて第１単位プロセッサが取得要求をしたセマフォが第２単位プロセッサによって取得されている取得中セマフォであるか否かが、セマフォに付された複数の識別情報に対応する前記共有メモリのエリアごとに判断されることを特徴とする。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
このような発明によれば、リソースに対応する複数のセマフォを識別可能に設定することができる。そして、単位プロセッサのうちの第１単位プロセッサがセマフォ設定手段に設定されているセマフォの取得要求をした場合、セマフォを識別して要求が第２単位プロセッサによって取得されているセマフォである取得中セマフォを要求するものであるか否か判断する。要求が取得中セマフォを要求するものであると判断された場合、第１単位プロセッサの要求を待機させる一方、要求が取得中セマフォ以外のセマフォを要求するものであると判断された場合には要求されたセマフォの取得を許可することができる。また、このような発明によれば、ハードウェア資源が少ない場合にも多くのセマフォを制御することが可能になる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
また、本実施形態では、ＩＤの付与にあたり、ＨＷセマフォ部１３が複数のＨＷセマフ
ォの少なくとも一部のセマフォに複数のＩＤを付す。また、複数のＩＤに対応した管理エリアを設定する。そして、プログラム管理部１０５が、前記したように、要求されたＨＷセマフォが既に他の単位プロセッサによって使用されているか否かを管理エリアごとに判断するので、ハードウェア資源が少ない場合にも多くのセマフォを制御し、単位プロセッサを排他制御することが可能になる。