JP2007219800A - 並列処理装置及び排他制御方法 - Google Patents

並列処理装置及び排他制御方法 Download PDF

Info

Publication number
JP2007219800A
JP2007219800A JP2006039093A JP2006039093A JP2007219800A JP 2007219800 A JP2007219800 A JP 2007219800A JP 2006039093 A JP2006039093 A JP 2006039093A JP 2006039093 A JP2006039093 A JP 2006039093A JP 2007219800 A JP2007219800 A JP 2007219800A
Authority
JP
Japan
Prior art keywords
unit
interrupt
processor
exclusive control
task
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.)
Granted
Application number
JP2006039093A
Other languages
English (en)
Other versions
JP2007219800A5 (ja
JP4441592B2 (ja
Inventor
Mitsunari Todoroki
晃成 轟
Akihiko Tamura
明彦 田村
Katsuya Tanaka
克哉 田中
Hiroaki Takada
広章 高田
Shinya Honda
晋也 本田
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.)
Nagoya University NUC
Seiko Epson Corp
Original Assignee
Nagoya University NUC
Seiko Epson 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 Nagoya University NUC, Seiko Epson Corp filed Critical Nagoya University NUC
Priority to JP2006039093A priority Critical patent/JP4441592B2/ja
Priority to US11/886,326 priority patent/US7702836B2/en
Priority to EP07714393A priority patent/EP1986097A4/en
Priority to PCT/JP2007/052863 priority patent/WO2007094460A1/ja
Publication of JP2007219800A publication Critical patent/JP2007219800A/ja
Publication of JP2007219800A5 publication Critical patent/JP2007219800A5/ja
Application granted granted Critical
Publication of JP4441592B2 publication Critical patent/JP4441592B2/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】マルチプロセッサにあってもタスク処理と割り込み処理とを適切に排他制御して高い処理効率を得ることが可能なプロセッサを提供する。
【解決手段】複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から要求された割り込み処理の実行が可能な割込プロセッサであって、単位プロセッサP0〜P3のうちの単位プロセッサP1は、単位プロセッサP1を、タスクの追出しが禁止される状態であるロック状態にする追出し禁止フラグ106と、ロック状態になった後、単位プロセッサP1によってアクセスされるメモリの所定の領域に他の単位プロセッサがアクセスすることを禁止するハードウェアセマフォ部13と、排他制御の実行中、割込プロセッサによる割り込み処理の実行を禁止する割り込み制御部11と、を備えるようにプロセッサを構成する。
【選択図】図2

Description

本発明は、プロセッサにかかり、特に単位プロセッサを複数含んでタスク等を並列に実行可能であり、さらに割り込み要求を受け付けて処理するプロセッサ及びこのプロセッサの割り込み制御方法に関する。
近年、組込み機器等において、複数のタスクを並列的に処理可能なマルチタスクプロセッサと呼ばれるプロセッサ(以下、これらを総称して「マルチプロセッサ」と言う。)が利用されつつある。
従来の携帯機器では、シングルプロセッサによる処理が行われていたところ、携帯機器の高機能化に伴い処理が複雑化し、シングルプロセッサによる処理が困難となっている。
即ち、シングルプロセッサによって高機能を実現しようとした場合、高いクロック周波数で動作させる必要があり、それに伴い消費電力も増大する。また、例えば携帯電話において動画の再生中に電話の着信があった場合の処理等、リアルタイムに応答する必要がある場合の対応が困難となる。
一方、マルチプロセッサを利用することにより、装置を低クロック化することが可能となり、それにより低消費電力化を実現することができる。さらに、複数のタスク等を並列に処理できることから、リアルタイムな応答性の観点からも有効なものとなる。
ところで、このような組込み機器のプロセッサでは、組込み機器に接続される周辺装置から比較的頻繁に割り込み処理の要求がなされるものがある。割り込み要求がなされた場合、プロセッサによって実行されていたタスク処理を中断し、要求された処理を実行する割り込み処理がなされる。割り込み処理においては、割り込み処理とタスク処理との切替えを円滑に行うため、タスク処理と割り込み処理との間で排他制御を行っている。
従来のタスク処理と割り込み処理との間で行われる排他制御の従来技術としては、例えば、特許文献1が挙げられる。特許文献1に記載された発明は、シングルプロセッサにおける排他制御に関するものであり、シングルプロセッサにおいてOSを呼び出すシステムコールが発行される処理の間にもシステムコールを発行しない割り込み処理を受け付ける。特許文献1の発明は、このような動作により、緊急性の高い割り込み処理が待たされることを少なくしている。
特開平8−297581号公報
しかしながら、上記した従来技術は、シングルプロセッサに関するものであって、マルチプロセッサに関してなされたものではない。このような特許文献1の発明をマルチプロセッサに適用すると、マルチプロセッサに含まれる単位プロセッサが、他の単位プロセッサにおける割り込み処理と外部メモリの同じ領域にアクセスする可能性を排除することはできない。
また、特許文献1に記載された発明は、シングルプロセッサを想定しているため、割り込み処理中はタスク処理をすることはできない。このため、割り込み処理中のタスク処理を制御して処理効率を上げることは一切考えられていない。
さらに、特許文献1に記載された発明は、割り込み処理がサービスコールを発行するものか否かを示す情報を被管理割り込み格納手段に保存しておく必要がある。このような特許文献1では、プロセッサに周辺装置を新たに接続する場合、この周辺装置が要求する割り込み処理がサービスコールを伴うものか否かを示す情報を格納する必要が生じる。このため、周辺装置の増設が困難になるという不具合が発生する。
本発明は、上記した点に鑑みてなされたものであり、マルチプロセッサにあってもタスク処理と割り込み処理とを適切に排他制御して高い処理効率を得ることが可能なプロセッサ及びプロセッサにおけるタスク処理及び割り込み処理の排他制御方法を提供することを目的とする。
以上の課題を解決するため、本発明の並列処理装置は、複数のタスクを並列に実行する複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から割り込み処理を要求された場合、一のタスクと他のタスク及び外部割り込み処理との間の排他制御を実現する並列処理装置であって、タスクを実行している単位プロセッサにおいて、当該タスクの実行が中断されることを禁止する割り込み禁止手段と、前記割り込み禁止手段により単位プロセッサ割り込み禁止状態になった後、単位プロセッサ間ロックを獲得することで、当該単位プロセッサと他の単位プロセッサとの間の排他制御を行うための排他制御手段と、前記排他制御手段により他の単位プロセッサとの間で排他制御した後、外部から要求された割り込み処理の実行を禁止する外部割込禁止手段と、を含むことを特徴とする。
このような発明によれば、第1の単位プロセッサからタスクが追出されることを禁止してタスクを単位プロセッサに固定化した上で、第1単位プロセッサと他の単位プロセッサとがメモリの共通する領域にアクセスすることを禁止することができる。このため、第1単位プロセッサでは、他のタスク等の影響を受けることなく確実にこのタスクを処理することができる。さらに、排他制御の実行中、割込プロセッサによる割り込み処理の実行を禁止するので、OSとは無関係に発生する割り込み処理が第1単位プロセッサとメモリの共通する領域にアクセスする可能性をなくし、タスクを適切に排他制御して高い処理効率を得ることができる。
また、本発明の並列処理装置は、前記並列処理装置における割り込み処理の実行の有無を検出する割込検出手段をさらに備え、前記排他制御手段は、前記割込検出手段によって前記並列処理装置において割り込み処理が実行されていないことが検出された後に排他制御を開始することを特徴とする。
このような発明によれば、ロック状態から排他制御の開始までの間に割り込み処理が入って一の単位プロセッサにおける排他制御に支障がでることをなくすことができる。
また、本発明の並列処理装置は、前記排他制御手段が、OSを占有してタスクの処理を実行する権利を得ることによって他の単位プロセッサを排他制御することを特徴とする。
このような発明によれば、他の単位プロセッサ上のタスクがOSになることができず、OSによってアクセスされるメモリの領域でアクセスの競合が起こることをなくすことができる。このため、OSを排他制御して円滑に動作させることができる。
また、本発明の排他制御方法は、複数のタスクを並列に実行する複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から割り込み処理を要求された場合、一のタスクと他のタスク及び外部割り込み処理との間の排他制御を実現する並列処理方法であって、タスクを実行している単位プロセッサにおいて、当該タスクの実行が中断されることを禁止する割り込み禁止ステップと、前記割り込み禁止ステップにより単位プロセッサ割り込み禁止状態になった後、単位プロセッサ間ロックを獲得することで、当該単位プロセッサと他の単位プロセッサとの間の排他制御を行う排他制御ステップと、前記排他制御ステップにより他の単位プロセッサとの間で排他制御した後、外部から要求された割り込み処理の実行を禁止する外部割込禁止ステップと、を含むことを特徴とする。
このような発明によれば、第1の単位プロセッサからタスクが追出されることを禁止してタスクを単位プロセッサに固定化した上で、第1単位プロセッサと他の単位プロセッサとがメモリの共通する領域にアクセスすることを禁止することができる。このため、第1単位プロセッサでは、他のタスク等の影響を受けることなく確実にこのタスクを処理することができる。さらに、排他制御の実行中、割込プロセッサによる割り込み処理の実行を禁止するので、OSとは無関係に発生する割り込み処理が第1単位プロセッサとメモリの共通する領域にアクセスする可能性をなくし、タスクを適切に排他制御して高い処理効率を得ることができる。
また、本発明の排他制御方法は、さらに、外部から要求された割り込み処理の実行完了を待つステップを含むことを特徴とする。
このような発明によれば、ロック状態から排他制御の開始までの間に外部割り込み処理が入って一の単位プロセッサにおける排他制御に支障がでることをなくすことができる。
また、本発明の排他制御方法は、並列に動作する複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から要求された割り込み処理の実行が可能なプロセッサにおいてタスク処理と外部割り込み処理との間で排他制御を実現する排他制御方法であって、タスク側でのみ排他のためのシステムコール(loc_cpu)を発行することにより、システムコールの中で割り込み完了を待ち、外部割込み処理を優先させる外部割り込み優先ステップを含むことを特徴とする。
このような発明によれば、タスク処理と外部割込み処理とが互いに干渉することを回避し、既に開発済みのタスク処理用のソフトウェア、外部割込み処理用のソフトウェアを使用しながら両者を併用する並列処理装置においてOSが安定して動作することができる。
以下、図を参照して本発明に係る並列処理装置及び排他制御方法の実施の形態を説明する。なお、本明細書では、並列処理装置をプロセッサとして構成していて、本発明にかかる並列処理装置を以降プロセッサと記すものとする。
本発明に係るプロセッサは、タスク等、プログラムをその実行単位で並列的に処理するものであり、本発明に係るプロセッサ内に、タスクを実行するプロセッサ(以下、「単位プロセッサ」と言う。)が実質的に複数備えられたハードウェア構成を有している。
本実施形態では、本発明に係るプロセッサを携帯電話に組み込んだ場合を例に挙げて本発明のプロセッサを説明する。なお、以下の説明において、スレッド等、プログラムの実行単位を総称して「タスク」と言う。
図1は、本発明に係る携帯電話1の機能構成を示すブロック図である。
図1において、携帯電話1は、CPU(Central Processing Unit)10と、フラッシュROM20と、メモリ30と、バッファ40と、無線部50と、IrDA(Infrared Data Association)部60と、オーディオ(Audio)部70と、タイマ(Timer)80と、USB(Universal Serial Bus)インターフェース部90と、キー(KEY)操作部100と、LCD(Liquid Crystal Display)110と、カメラ(Camera)部120とを含んで構成され、CPU10、フラッシュROM20、メモリ30及びバッファ40は、バスによって接続されている。また、無線部50、IrDA部60、オーディオ部70、タイマ80、USBインターフェース部90、キー操作部100、LCD110及びカメラ部120は、CPU10と直接接続されている。
CPU10は、複数のタスクを並列的に処理しながら携帯電話1全体を制御するもので、キー操作部100から入力される各種の指示信号に応じて、フラッシュROM30に記憶されたオペレーティングシステムプログラム(OS)や各種アプリケーションプログラムを読み出して実行したり、無線部50、オーディオ部70あるいはカメラ部120等の周辺チップから入力される割り込み信号に応じて、割り込みハンドラを実行したりする。
例えば、CPU10は、アプリケーションにより生成されたタスクを並行して処理する。
さらに、周辺チップから割り込み信号が入力された場合、割り込みハンドラを実行することにより、割り込みに対応するプログラムを実行する。なお、アプリケーションによる処理は、OSのタスクスケジューラによって管理されるタスクとして実行されるため、OSのサービスコールを呼び出すことができ、一方、割り込み処理は、タスクスケジューラによって管理されない処理(非タスク処理)である。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
図2は、CPU10の内部構成を示すブロック図である。図2において、CPU10は、複数の単位プロセッサP0〜P3と、割り込み制御部11と、メモリ制御部12と、ハードウェアセマフォ部13とを含んで構成される。なお、ハードウェアセマフォ部13は、いずれかの単位プロセッサにOSになる権利であるセマフォ(本実施形態ではハードウェアセマフォと記す)を付与する構成である。
単位プロセッサP0〜P3は、それぞれが並列してタスクを処理可能なプロセッサである。単位プロセッサP0〜P3の内部構成としては同様のものとなるため、代表として、単位プロセッサP0の内部構成について説明する。本実施形態では、単位プロセッサP0〜P3のいずれもが割り込み処理が可能な割り込みプロセッサである。
単位プロセッサP0は、フェッチ部101と、デコード部102と、ALU(Arithmetic and Logical Unit)103と、レジスタファイル104と、プログラム制御部105とをさらに含んで構成される。
フェッチ部101は、後述するプログラム制御部105のプログラムカウンタが示すメモリアドレスから命令コードを読み出し、デコード部102に出力する。
デコード部102は、フェッチ部101によって入力された命令コードをデコードし、デコード結果(命令内容及びソースレジスタ、デスティネーションレジスタのアドレス等)をALU103に出力する。
ALU103は、デコード部102によって入力されたデコード結果に応じて、所定の演算を行い、演算結果をレジスタファイル104に書き込んだり、分岐命令等の演算結果であるブランチ先のアドレスをプログラム制御部105に出力したりする。
レジスタファイル104は、ロード命令によってメモリ30から読み出されたデータや、ALU103の演算結果であるデータを記憶するレジスタ群である。
プログラム制御部105は、単位プロセッサP0全体を制御するものであり、単位プロセッサP0のステータス(例えば、割り込みの可否状態、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶するステータスレジスタ(PSR)と、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタ(PC)とを含んで構成される。そして、プログラム制御部105は、単位プロセッサP0が割り込み処理に移行する時点で、ステータスレジスタの値を割り込み処理の禁止状態に変更したり、分岐命令が実行された場合に、プログラムカウンタの値を分岐先のアドレスに変更したりする。
また、プロセッサ制御部105は、実行中のタスクによってハードウェアセマフォの取得要求が出力された場合、先ず、ハードウェアセマフォの取得結果を受け取り、ステータスレジスタにおけるハードウェアセマフォの取得結果を示す領域(以下、「セマフォ取得結果レジスタ」と言う。)に取得に成功したことを示すフラグを更新する。一方、セマフォ取得に失敗した場合、取得に失敗したことを示す状態にフラグを更新する。
さらに、プロセッサ制御部105は、追出し禁止フラグ106を備えている。追出し禁止フラグ106は、指定された単位プロセッサにおいてタスクの切替えや外部割り込みが起こり、タスクが単位プロセッサから追出されることを禁止するための機構である。追出し禁止フラグ106を1にすることによって現在単位プロセッサにあるタスクが他のタスクに切替えられることが禁止される。単位プロセッサにおけるタスクの追出しが禁止された状態を以降ロック状態とも記す。
割り込み制御部11は、無線部50等の周辺チップから割り込み信号が入力された場合に、割り込み信号を調停した上で、所定の割り込み信号を単位プロセッサP0に出力する。
メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出し及び書き込みが行われる場合に、メモリ30を制御してデータの入出力を行う。
ハードウェアセマフォ部13は、排他制御を実現する機構を有し、単位プロセッサP0〜P3からセマフォ取得要求があったとき、既にセマフォが獲得されている状態であれば新たな要求に対して、セマフォの獲得失敗を通知する。一方、それ以前にセマフォが獲得された状態でなければ、セマフォ取得成功の通知を単位プロセッサに返答する機能を有している。
すなわち、本実施形態では、ハードウェアセマフォを取得した単位プロセッサだけがOSを占有してタスクの処理を実行する権利を得る。このため、単位プロセッサP0〜P3のうちのいずれか1つだけがOSに移行できるので、OS同士の競合を防止する排他制御を実現できる。そして、OSによって使用されるメモリ30の所定の領域が同時にアクセスされたために処理が中断する等の不具合を防ぐことができる。
また、本実施形態では、追出し禁止フラグ106によってタスクが実行中の単位プロセッサから追出されることをOSのサービスコール終了まで禁止することができる。
さらに、本実施形態では、排他制御の実行中、割り込み処理の実行を禁止する。本実施形態では、割り込み処理の実行禁止を割り込み制御部11によって行っている。すなわち、割り込み制御部11は、単位プロセッサP0〜P3のステータスが書き込まれるステータスレジスタ(図示せず)を備えている。ステータスレジスタのステータスを「割り込み否」に設定することにより、割り込み制御部11は、所望の単位プロセッサに対する割り込み処理を禁止することができる。
次に、以上述べた動作を説明する。
図3は、本実施形態の排他制御方法を実行した場合のプロセッサの動作を説明するための図であって、単位プロセッサP0、単位プロセッサP1間で行われる割り込み処理(割り込みハンドラ)とタスク処理との排他制御を示している。図示した例では、先ず、単位プロセッサP1で実行されているタスクがサービスコールloc_cpuを呼び出す。サービスコールloc_cpuを呼び出すことによって、loc_cpuが起動する。なお、サービスコールunl_cpuは、タスクが単位プロセッサP1をロック状態にするためのサービスコールである。また、後述するサービスコールunl_cpuは、ロック状態を解放するものである。このようなサービスコールは、ITRON4・0(商標)のサービスコールの仕様にしたがって定められている。
また、loc_cpuは、unl_cpuが実行されるまで、サービスコールloc_cpuを呼び出したタスクを処理する単位プロセッサを、外部割り込み禁止、ハードウェアセマフォの獲得状態保持、追出しの禁止状態保持で動作させることができる。ただし、loc_cpuの発行後であっても、loc_cpuを解除するためにunl_cpuのサービスコールだけは単位プロセッサP1で受け付けられるものとする。
なお、単位プロセッサにおける割り込み処理の実行の有無は、装置内部にある単位プロセッサが共通して利用できるRAM等に書き込まれていて、単位プロセッサが書き込まれた情報を参照することによって検知可能になる。本実施形態では割り込みプロセッサを非固定としているため、単位プロセッサP1のタスクは、単位プロセッサのいずれかにおいて割り込み処理が実行されていないことが検出された後に割り込みを禁止して排他制御を開始するものとする。
このような本実施形態によれば、loc_cpuが起動してからハードウェアセマフォが獲得されるまでの時間(数ナノ秒)にハードウェアセマフォを獲得しようとする割り込み処理が発生したために単位プロセッサP1においてデッドロックが発生することを防ぐことができる。
以下、本実施形態のプロセッサによってなされる排他制御の方法を、より具体的に説明する。
図4は、図3に示した動作をより具体的に示した図である。また、図5は、図4に示した動作のフローチャートである。以下、図4を参照しつつ図5のフローチャートについて説明する。
図4に示すように、単位プロセッサP1にあるタスクは、追出し禁止フラグ106を1に設定する。追出し禁止フラグの設定により、このタスクが単位プロセッサP1から追い出されることがなくなる。また、一時的に単位プロセッサP1に対する割り込み禁止が設定される(S401)。
次に、単位プロセッサP1にあるタスクは、ハードウェアセマフォの取得を要求する(S402)。そして、ハードウェアセマフォ部13からの通知によってハードウェアセマフォの取得に成功したか否かを判断する(S403)。判断の結果、ハードウェアセマフォの取得に失敗した場合(S403:No)、追出し禁止フラグ106を0にして自身の単位プロセッサの割り込み禁止を解除する(S406)。そして、再度追出し禁止フラグ106を1にする処理からハードウェアセマフォの取得を試みる。
また、タスクは、ハードウェアセマフォの取得に成功した場合(S403:Yes)、OSが、単位プロセッサP1以外の単位プロセッサで割り込み処理が行われているか否かを、RAMの共通領域を参照することによって検出する(S405)。この結果、いずれかの単位プロセッサで割り込みハンドラが実行中なら(S405:Yes)、外部割り込み禁止を解除する(S407)。さらに、取得したハードウェアセマフォ部13の解放を要求し(S408)、追出し禁止フラグ106を0にして自身の単位プロセッサの割り込みの禁止を解除する(S409)。
そして、OSが引き続き他の単位プロセッサでの割り込み処理を監視し、割り込み処理が全て終了するまで待つ(S410)。割り込み処理が終了すると、再び追出し禁止フラグ106を1にし、ハードウェアセマフォを取得する。
また、以上の動作において、タスクのサービスコールloc_cpuは、外部割込みを優先させる処理にも使用される。すなわち、本実施形態では、例えば単位プロセッサP1で実行されているタスクがシステムコール(loc_cpu)を発行することによってシステムコールの中で割込み完了を待ち、外部割込み処理を優先させている。
より具体的には、図4に示したように、タスクがloc_cpuを発行し、割込みハンドラの終了をポーリング監視しながら単位プロセッサP0上で実行されている割込みハンドラが終了するまで待機する。このため、先に実行されていた割込みハンドラが終了した後に単位プロセッサP0の割込み処理をマスク状態にし、割込み処理が単位プロセッサP1におけるタスクに優先して実行できることになる。
なお、本実施形態では、他の単位プロセッサで実行されている割り込み処理が終了するまで待機する処理を、割り込み禁止をする直前に実行し、割り込みハンドラの実行中にはloc_cpuをかける処理を起動しないようにしてもよい。このような処理を、図6のフローチャートに示す。
図6のフローチャートに示した処理では、単位プロセッサP0のタスクが、処理の最初に他の単位プロセッサにおける割り込みハンドラの実行終了を待つ(S601)。そして、いずれかの単位プロセッサで割り込みハンドラが実行中なら(S606:Yes)、外部割り込み許可し(S608)、ハードウェアセマフォを解放する(S609)。そして、追出し禁止フラグ16を0にし、再度割り込みハンドラの実行終了を判断する(S601)。
割り込みハンドラの終了後、追出し禁止フラグ106を1にする。追出し禁止フラグ106を1にしたことによって、自らが単位プロセッサP0から追い出されることがなくなる。
次に、タスクは、ハードウェアセマフォを取得する。ハードウェアセマフォが直ちに取得できない場合(S604:No)、追出し禁止フラグ106を0にし(S607)、再び1にする処理から再度処理を実行する(S602)。一方、ハードウェアセマフォが取得できた場合(S604:Yes)、他の単位プロセッサに対する外部割り込みを禁止する(S605)。
以上述べた処理によれば、割り込みハンドラの終了を待っている間に割り込みが要求された場合、この割り込みをloc_cpuより先に実行するので、図5のステップS405において割り込み処理の実行中でないと判断される確率が高くなる。したがって、図6に示した処理は、図5に示した処理よりも割り込みハンドラに対する高い応答性を得ることができる。
また、本実施形態のプロセッサでは、複数の単位プロセッサ間でサービスコール同士についても排他制御する。以下、各サービスコール間における排他制御について記す。
図7は、各サービスコールとloc_cpuとの間でなされる排他制御の動作を説明するための図である。また、図8は、図7に示した動作を説明するためのフローチャートである。図7、図8に示したように、例えば、単位プロセッサP1のタスクが追出し禁止フラグ106を1にし(S801)、自身を単位プロセッサP0に割り付けた場合、この続いてハードウェアセマフォの取得を要求する(S802)。そして、ハードウェアセマフォの取得に成功したか否かを判断する(S803)。
ステップS803において、ハードウェアセマフォが取得できないと判断された場合(S803:No)、タスクは、単位プロセッサP1の追出し禁止フラグ106を0にして割り込み禁止を解除する(S807)。なお、ある単位プロセッサのサービスコールloc_cpuをより安全に実行させるためには、この単位プロセッサがロック状態にある間、他の単位プロセッサで処理されているタスクが要求するサービスコールを排他の対象とする。他の単位プロセッサにおけるタスクに関しては、サービスコールを行わない限り排他の対象としない。
また、単位プロセッサP1がハードウェアセマフォの取得を繰返している間に、単位プロセッサP2は、unl_cpuを発行する。このことにより、単位プロセッサP1は、ハードウェアセマフォが取得し(S803:Yes)、必要なサービスコールを実行する(S804)。
また、単位プロセッサ2によるunl_cpuの発行によって、図9に示すように、外部割り込み禁止の解除(S901)、ハードウェアセマフォの解放(S902)、及び自身の単位プロセッサの割り込み禁止解除(S903)が行われる。
以上述べた本実施形態は、タスクを単位プロセッサに固定化した上で、この単位プロセッサと他の単位プロセッサとがメモリの共通する領域にアクセスすることを禁止する。このため、タスクが固定された単位プロセッサは、他のタスク等の影響を受けることなく確実にこのタスクを処理することができる。さらに、排他制御の実行中、割込プロセッサによる割り込み処理の実行を禁止するので、OSとは無関係に発生する割り込み処理が単位プロセッサとメモリの共通する領域にアクセスする可能性をなくすことができる。
また、追出しフラグが1になってから排他制御の開始までの間に割り込み処理が入って排他制御がデッドロック等することをなくすことができる。
さらに、本実施形態は、割り込みプロセッサを非固定とした構成について説明している。しかしながら、本発明は、このような構成に限定されるものでなく、割り込みプロセッサを固定化した構成に適用することも可能である。
なお、本発明は、マルチスレッドプロセッサあるいはマルチタスクプロセッサと呼ばれる各種実装形態のプロセッサに適用可能であるが、例えば、1チップ上に複数のプロセッサコアが実装され、プロセッサの構成要素の少なくとも一部をこれら複数のプロセッサコアが共用する形態のマルチプロセッサ(いわゆる密結合型のマルチタスクプロセッサ)において、特に有効となる。
図10は、本発明の適用対象となるマルチプロセッサの構成例を示す図である。
図10に示すマルチプロセッサは、メモリ制御部及びALUを複数のプロセッサコアが共用する形態であり、それぞれのプロセッサコアにプログラムカウンタ及びステータスレジスタ等の制御用レジスタが備えられていると共に、マルチプロセッサ全体を制御するためのプログラム制御部及び制御用レジスタも別途備えられている。なお、図10に示すように、各プロセッサコアで共用するコンテキストキャッシュ等を備えても良い。
このような構成のマルチプロセッサの場合、各プロセッサコアが本実施の形態における単位プロセッサの機能を実現するものとなり、マルチプロセッサ全体を制御するプログラム制御部において、ハードウェアセマフォ13の機能を実現するものとなる。
また、本実施の形態においては、メモリ30のシステム領域に対するアクセスが競合する可能性があることに鑑み、複数の単位プロセッサがOSへ移行することを排他制御する例について説明したが、同一のハードウェアにアクセスする可能性がある場合、例えば、CPUとDMA(Direct Memory Access)コントローラとの間における排他制御や、アプリケーション間における排他制御(共有メモリへのアクセスあるいは共通処理の実行)等に適用することも可能である。
本発明に係る携帯電話1の機能構成を示すブロック図である。 CPU10の内部構成を示すブロック図である。 携帯電話1のCPU10における動作を説明するための図である。 本発明の一実施形態の排他制御方法を説明するための図であって、図3に示した動作をより具体的に示した図である。 図4に示した携帯電話1のCPU10における動作のフローチャートである。 図5に示したフローチャートで表される処理の変形例を示したフローチャートである。 本発明の一実施形態のサービスコールとloc_cpuとの間でなされる排他制御の動作を説明するための図である。 図7に示した動作のフローチャートである。 本発明の一実施形態のunl_cpuの処理を説明するためのフローチャートである。 本発明の適用対象となるマルチプロセッサの構成例を示す図である。
符号の説明
1 携帯電話、10 CPU、11 割り込み制御部、12 メモリ制御部、13 ハードウェアセマフォ部、20 フラッシュROM、30 メモリ、40 バッファ、50 無線部、60 IrDA部、70 オーディオ、80 タイマ、90 USBインターフェース部、100 キー操作部、110 LCD、120 カメラ部、P0〜P3 単位プロセッサ、101 フェッチ部、102 デコード部、103 ALU、104 レジスタファイル、105 プログラム制御部、106 追出し禁止フラグ

Claims (6)

  1. 複数のタスクを並列に実行する複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から割り込み処理を要求された場合、一のタスクと他のタスク及び外部割り込み処理との間の排他制御を実現する並列処理装置であって、
    タスクを実行している単位プロセッサにおいて、当該タスクの実行が中断されることを禁止する割り込み禁止手段と、
    前記割り込み禁止手段により単位プロセッサ割り込み禁止状態になった後、単位プロセッサ間ロックを獲得することで、当該単位プロセッサと他の単位プロセッサとの間の排他制御を行うための排他制御手段と、
    前記排他制御手段により他の単位プロセッサとの間で排他制御した後、外部から要求された割り込み処理の実行を禁止する外部割込禁止手段と、
    を備えることを特徴とする並列処理装置。
  2. 前記並列処理装置における割り込み処理の実行の有無を検出する割込検出手段をさらに備え、
    前記排他制御手段は、前記割込検出手段によって前記並列処理装置において割り込み処理が実行されていないことが検出された後に排他制御を開始することを特徴とする請求項1に記載の並列処理装置。
  3. 前記排他制御手段は、OSを占有してタスクの処理を実行する権利を得ることによって他の単位プロセッサを排他制御することを特徴とする請求項1または2に記載の並列処理装置。
  4. 複数のタスクを並列に実行する複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から割り込み処理を要求された場合、一のタスクと他のタスク及び外部割り込み処理との間の排他制御を実現する並列処理方法であって、
    タスクを実行している単位プロセッサにおいて、当該タスクの実行が中断されることを禁止する割り込み禁止ステップと、
    前記割り込み禁止ステップにより単位プロセッサ割り込み禁止状態になった後、単位プロセッサ間ロックを獲得することで、当該単位プロセッサと他の単位プロセッサとの間の排他制御を行う排他制御ステップと、
    前記排他制御ステップにより他の単位プロセッサとの間で排他制御した後、外部から要求された割り込み処理の実行を禁止する外部割込禁止ステップと、
    を含むことを特徴とする排他制御方法。
  5. さらに、外部から要求された割り込み処理の実行完了を待つステップを含むことを特徴とする請求項4の排他制御方法。
  6. 並列に動作する複数の単位プロセッサを含み、当該複数の単位プロセッサのうちの少なくとも1つが外部から要求された割り込み処理の実行が可能なプロセッサにおいてタスク処理と外部割り込み処理との間で排他制御を実現する排他制御方法であって、
    タスク側でのみ排他のためのシステムコール(loc_cpu)を発行することにより、システムコールの中で割込み完了を待ち、外部割込み処理を優先させる外部割り込み優先ステップを含むことを特徴とする排他制御方法。
JP2006039093A 2006-02-16 2006-02-16 並列処理装置及び排他制御方法 Expired - Fee Related JP4441592B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006039093A JP4441592B2 (ja) 2006-02-16 2006-02-16 並列処理装置及び排他制御方法
US11/886,326 US7702836B2 (en) 2006-02-16 2007-02-16 Parallel processing device and exclusive control method
EP07714393A EP1986097A4 (en) 2006-02-16 2007-02-16 PARALLEL PROCESSING DEVICE AND CONTROL OF EXCLUSIVE ACCESS
PCT/JP2007/052863 WO2007094460A1 (ja) 2006-02-16 2007-02-16 並列処理装置及び排他制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006039093A JP4441592B2 (ja) 2006-02-16 2006-02-16 並列処理装置及び排他制御方法

Publications (3)

Publication Number Publication Date
JP2007219800A true JP2007219800A (ja) 2007-08-30
JP2007219800A5 JP2007219800A5 (ja) 2009-04-02
JP4441592B2 JP4441592B2 (ja) 2010-03-31

Family

ID=38371636

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006039093A Expired - Fee Related JP4441592B2 (ja) 2006-02-16 2006-02-16 並列処理装置及び排他制御方法

Country Status (4)

Country Link
US (1) US7702836B2 (ja)
EP (1) EP1986097A4 (ja)
JP (1) JP4441592B2 (ja)
WO (1) WO2007094460A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447899B2 (en) 2008-07-31 2013-05-21 Panasonic Corporation System, device, method and program for exclusively controlling resources

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080064045A1 (en) 2006-09-07 2008-03-13 Huaiqin Wu Biomarker fragments for the detection of human BNP
US10740150B2 (en) * 2018-07-11 2020-08-11 X-Drive Technology, Inc. Programmable state machine controller in a parallel processing system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5161227A (en) * 1989-11-13 1992-11-03 International Business Machines Corporation Multilevel locking system and method
US6038584A (en) * 1989-11-17 2000-03-14 Texas Instruments Incorporated Synchronized MIMD multi-processing system and method of operation
JPH04308961A (ja) * 1991-01-18 1992-10-30 Ncr Corp 占有されたプロセスの同期ロックの状態を通知するための手段及び装置
JPH04343159A (ja) * 1991-05-20 1992-11-30 Nec Corp 共有資源の排他制御方式
JPH08297581A (ja) 1995-02-28 1996-11-12 Nec Corp リアルタイム・オペレーティングシステムにおける割り込み管理方式
US6148361A (en) * 1998-12-17 2000-11-14 International Business Machines Corporation Interrupt architecture for a non-uniform memory access (NUMA) data processing system
US6430643B1 (en) * 1999-09-02 2002-08-06 International Business Machines Corporation Method and system for assigning interrupts among multiple interrupt presentation controllers
US6775730B2 (en) * 2001-04-18 2004-08-10 Sony Corporation System and method for implementing a flexible interrupt mechanism
US7117285B2 (en) * 2003-08-29 2006-10-03 Sun Microsystems, Inc. Method and system for efficiently directing interrupts
JP2006216042A (ja) * 2005-02-04 2006-08-17 Sony Computer Entertainment Inc 割り込み処理のためのシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8447899B2 (en) 2008-07-31 2013-05-21 Panasonic Corporation System, device, method and program for exclusively controlling resources

Also Published As

Publication number Publication date
US7702836B2 (en) 2010-04-20
JP4441592B2 (ja) 2010-03-31
WO2007094460A1 (ja) 2007-08-23
EP1986097A1 (en) 2008-10-29
EP1986097A4 (en) 2010-01-27
US20080288693A1 (en) 2008-11-20

Similar Documents

Publication Publication Date Title
JP4148223B2 (ja) プロセッサおよび情報処理方法
JP3976065B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
JP5243711B2 (ja) プロセッサ
KR100911796B1 (ko) 하드웨어 지원을 갖는 다중 프로세서 및 다중 스레드 안전메시지 큐
CN108920267B (zh) 任务处理装置
JP2006243865A (ja) プロセッサおよび情報処理方法
JP5673672B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
JP2010140290A (ja) マルチプロセッサシステム及びその排他制御の調停方法
JP2005284749A (ja) 並列処理コンピュータ
US9164799B2 (en) Multiprocessor system
CN116438518A (zh) 通过硬件加速内核线程进行微线程控制的处理器架构
JP4033215B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
JP4441592B2 (ja) 並列処理装置及び排他制御方法
JP4797422B2 (ja) プロセッサおよびディスパッチ制御方法
JP2009175960A (ja) 仮想マルチプロセッサシステム
US20120036337A1 (en) Processor on an Electronic Microchip Comprising a Hardware Real-Time Monitor
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
JP4389797B2 (ja) プロセッサおよび情報処理方法
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP5582241B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2009205585A (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090518

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: 20091006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091102

R150 Certificate of patent or registration of utility model

Ref document number: 4441592

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140122

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees