JP4389797B2 - プロセッサおよび情報処理方法 - Google Patents

プロセッサおよび情報処理方法 Download PDF

Info

Publication number
JP4389797B2
JP4389797B2 JP2005020831A JP2005020831A JP4389797B2 JP 4389797 B2 JP4389797 B2 JP 4389797B2 JP 2005020831 A JP2005020831 A JP 2005020831A JP 2005020831 A JP2005020831 A JP 2005020831A JP 4389797 B2 JP4389797 B2 JP 4389797B2
Authority
JP
Japan
Prior art keywords
access
processor unit
processor
unit
predetermined hardware
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
JP2005020831A
Other languages
English (en)
Other versions
JP2006209480A (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.)
Seiko Epson Corp
Original Assignee
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005020831A priority Critical patent/JP4389797B2/ja
Publication of JP2006209480A publication Critical patent/JP2006209480A/ja
Application granted granted Critical
Publication of JP4389797B2 publication Critical patent/JP4389797B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephone Function (AREA)

Description

本発明は、複数のタスクあるいはスレッドを並列的に処理するプロセッサおよびその情報処理方法に関する。
近年、組み込み機器等において、複数のタスクあるいはスレッドを並列的に処理可能なマルチタスクプロセッサあるいはマルチスレッドプロセッサと呼ばれるプロセッサ(以下、これらを総称して「マルチプロセッサ」と言う。)が利用されつつある。
従来の携帯機器では、シングルプロセッサによる処理が行われていたところ、携帯機器の高機能化に伴い処理が複雑化し、シングルプロセッサによる処理が困難となっている。
即ち、シングルプロセッサによって高機能を実現しようとした場合、高いクロック周波数で動作させる必要があり、それに伴い消費電力も増大する。また、例えば携帯電話において動画の再生中に電話の着信があった場合の処理等、リアルタイムに応答する必要がある場合の対応が困難となる。
一方、マルチプロセッサを利用することにより、装置を低クロック化することが可能となり、それにより低消費電力化を実現することができる。さらに、複数のタスク等を並列に処理できることから、リアルタイムな応答性の観点からも有効なものとなる。
ところで、シングルプロセッサにおいては、複数のタスク等が同時に1つのハードウェアにアクセスすることは考えられないことから、オペレーティングシステム(OS)内において排他制御を適切に行うことで、同一ハードウェアに対するアクセスの競合を回避することができる。
なお、マルチタスク処理における割り込み間の排他制御に関する技術が、特許文献1に記載されている。
特開2001−216170号公報
しかしながら、特許文献1に記載された技術を含め、従来の技術においては、マルチプロセッサにおける各プロセッサ間での排他制御を適切に行うことができなかった。
例えば、従来の排他制御に用いられているポーリング型の制御を行った場合、複数のプロセッサからポーリングが行われるため、バスアクセスの回数が増大することとなる。
また、従来の排他制御に用いられている同期型の制御を行った場合、他のプロセッサがアクセスしている間に同一のハードウェアに対してアクセス要求を行ったプロセッサは、先にアクセスしたプロセッサがハードウェアを解放するまで動作することができず、処理能力の低下を招くこととなる。
そのため、マルチプロセッサにおける複数のプロセッサ(タスク)がOSに移行しようとする場合に、これらを適切に排他制御したり、その他、同一のハードウェアにアクセスする可能性のあるプロセッサ(タスク)間で適切に排他制御を行ったりすることができなかった。
特に、1チップ上に複数のプロセッサコアを搭載して1つのマルチプロセッサとして機能させる、いわゆる密結合型マルチプロセッサにおいて、このような排他制御を適切に行う手段は提供されていないのが現状である。
本発明の課題は、マルチプロセッサにおいて、各プロセッサ間での排他制御を適切に行うことである。
以上の課題を解決するため、本発明は、
タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサであって、第1のプロセッサ部(例えば、図3に示す動作における単位プロセッサP0)から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を出力すると共に、第1のプロセッサ部以外の第2のプロセッサ部(例えば、図3に示す動作における単位プロセッサP1)から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を出力することにより、前記所定ハードウェアに対する排他制御を行う排他制御部(例えば、図2のハードウェアセマフォ部13)を備え、前記プロセッサ部は、前記所定のハードウェアに対してアクセスする場合に、前記排他制御部にアクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、前記排他制御部は、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を出力することを特徴としている。
このような構成により、所定ハードウェアに対するアクセス要求を行うプロセッサ部からアクセス要求が出力される回数が増大することを避けることができると共に、アクセス要求に対して待機状態となったプロセッサ部を必要に応じて動作させることが可能となる。
したがって、マルチプロセッサにおいて、各プロセッサ間での排他制御を適切に行うことが可能となる。
また、前記プロセッサ部は、前記所定ハードウェアに対するアクセスの可否を示すフラグを記憶するアクセスフラグ用レジスタ(例えば、図2のPSRに含まれるセマフォ取得結果レジスタ)と、該プロセッサ部において次に実行する命令を指示するプログラムカウンタ(例えば、図2のPC)とを備え、前記排他制御部は、前記第1のプロセッサ部から前記所定ハードウェアに対するアクセス要求が出力された場合、前記第1のプロセッサにおける前記アクセスフラグ用レジスタをアクセスを許可する状態に書き換え、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部における前記アクセスフラグ用レジスタをアクセスを拒否する状態に書き換えると共に、該第2のプロセッサ部における前記プログラムカウンタを、該他の処理から復帰した場合に前記所定ハードウェアへのアクセス要求が実行される状態に設定した後に、該他の処理を行わせることを特徴としている。
このような構成により、アクセス要求に対して待機状態となったプロセッサ部に他の処理を行わせる場合に、そのプロセッサ部が他の処理を終了して復帰したとき、再度所定ハードウェアへのアクセス要求を行うこととなり、待機状態となっているプロセッサ部の動作が必要な場合に、割り込み処理によって適切に処理を行わせることが可能となる。
また、本発明は、
タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサにおける情報処理方法であって、第1のプロセッサ部から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を入力すると共に、第1のプロセッサ部以外の第2のプロセッサ部から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を入力することにより、前記所定ハードウェアに対する排他制御を行う排他制御ステップを含み、前記プロセッサ部が、前記所定のハードウェアに対してアクセスする場合に、前記アクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を入力することを特徴としている。
また、前記プロセッサ部に、前記所定ハードウェアに対するアクセスの可否を示すフラグを記憶するアクセスフラグ用レジスタと、該プロセッサ部において次に実行する命令を指示するプログラムカウンタとを備えておき、前記第1のプロセッサ部から前記所定ハードウェアに対するアクセス要求が出力された場合、前記第1のプロセッサにおける前記アクセスフラグ用レジスタをアクセスを許可する状態に書き換え、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部における前記アクセスフラグ用レジスタをアクセスを拒否する状態に書き換えると共に、該第2のプロセッサ部における前記プログラムカウンタを、該他の処理から復帰した場合に前記所定ハードウェアへのアクセス要求が実行される状態に設定した後に、該他の処理を行わせることを特徴としている。
このように、本発明によれば、マルチプロセッサにおいて、各プロセッサ間での排他制御を適切に行うことが可能となる。
以下、図を参照して本発明に係るプロセッサの実施の形態を説明する。
本発明に係るプロセッサは、タスクあるいはスレッド等、プログラムをその実行単位で並列的に処理するものであり、本発明に係るプロセッサ内に、タスク等を実行するプロセッサ(以下、「単位プロセッサ」と言う。)が実質的に複数備えられたハードウェア構成を有している。
そして、同一のハードウェアにアクセスする可能性のあるプロセッサ(タスク)間で排他制御を行うためのハードウェアセマフォ部(排他制御部)を備え、ハードウェアセマフォ部が、複数プロセッサ間の排他制御を行うと共に、アクセス許可待ちの状態にあるプロセッサを必要に応じて動作可能な状態に戻す。
これにより、複数プロセッサ間の排他制御が実現されると共に、各プロセッサの処理能力が低下する事態を防止できる。
このように、本発明に係るプロセッサは、各プロセッサ間での排他制御を適切に行うことが可能なマルチプロセッサとなっている。
まず、構成を説明する。
ここでは、本発明に係るプロセッサを携帯電話に組み込んだ場合を例に挙げ、排他制御の対象としてオペレーティングシステム(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は、同期型のセマフォ制御によりアクセスの調停を行う。さらに、CPU10は、排他制御により待機状態となった単位プロセッサを動作させる必要が生じた場合、待機状態となっている単位プロセッサにハードウェアセマフォの取得に失敗したことを示す信号を送信することにより、その単位プロセッサに制御を戻し、動作可能な状態とする。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
ここで、CPU10の内部構成について説明する。
図2は、CPU10の内部構成を示すブロック図である。
図2において、CPU10は、複数の単位プロセッサP0〜P3と、割り込み制御部11と、メモリ制御部12と、ハードウェアセマフォ部13とを含んで構成される。
単位プロセッサP0〜P3は、それぞれが並列してタスクを処理可能なプロセッサである。
なお、単位プロセッサP0〜P3の内部構成としては同様のものとなるため、代表として、単位プロセッサP0の内部構成について説明する。
単位プロセッサ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は、実行中のタスクによってハードウェアセマフォの取得要求が出力された場合、まず、ハードウェアセマフォの取得結果を受け取るための待機状態となり、ステータスレジスタにおけるハードウェアセマフォの取得結果を示す領域(以下、「セマフォ取得結果レジスタ」と言う。)に取得に成功したことを示すフラグ(OSへの移行が許可されたことを示すフラグ)が書き込まれた場合、OSのサービスコールを呼び出してOSの処理に移行する。一方、セマフォ取得結果レジスタにセマフォの取得に失敗したことを示すフラグ(OSへの移行が拒否されたことを示すフラグ)が書き込まれた場合、ハードウェアセマフォの取得を一旦停止し、待機状態から離脱する。
割り込み制御部11は、無線部50等の周辺チップから割り込み信号が入力された場合に、割り込み信号を調停した上で、空き状態である単位プロセッサあるいは最も優先度の低いタスクを実行している単位プロセッサに所定の割り込み信号を出力する。
メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出しおよび書き込みが行われる場合に、メモリ30を制御してデータの入出力を行う。
図1に戻り、フラッシュROM20は、携帯電話1において実行されるオペレーティングシステムプログラム、および、各種アプリケーションプログラムを記憶している。
メモリ30は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)あるいはSDRAM(Synchronous DRAM)といった半導体メモリによって構成され、CPU10が処理を実行する際にワークエリアを形成すると共に、その処理結果を記憶する。
バッファ40は、外部から携帯電話1に入力されたデータあるいは携帯電話1において発生されたデータを一時的に保持するバッファである。
無線部50は、携帯電話1と携帯電話システムの基地局との間における無線通信を行うものである。例えば、無線部50は、基地局から携帯電話1に対する着信を示す信号を受信した場合、CPU10に対して割り込み信号を出力し、着信信号の受信を通知する。また、無線部50は、CPU10から発信を指示する信号が入力された場合、基地局に対して発信要求を示す信号を送信する。
IrDA部60は、IrDAに基づく通信を行うインターフェースであり、外部からIrDAに基づく無線信号を受信した場合、CPU10に対して割り込み信号を出力し、IrDA信号の受信を通知する。
オーディオ部70は、携帯電話1において入出力される音声信号を処理するものであり、通話におけるマイクおよびスピーカを用いた音声の入出力、あるいは、音楽等の再生といった処理を行う。
タイマ80は、携帯電話1のクロック信号を基に時間を計測し、例えば1ms毎等、所定時間毎にCPU10に対して割り込み信号を出力する。
USBインターフェース部90は、USBによる通信を行うためのインターフェースであり、USBケーブルが接続された場合やUSBケーブルから信号を受信した場合等に、CPU10に対して割り込み信号を出力する。
キー操作部100は、携帯電話1に対する指示入力を行うための各種キーを備えており、これらのキーが押下された場合に、CPU10に対する割り込み信号を出力する。
LCD110は、CPU10によって入力された文字あるいは画像等の描画命令に従って、所定画面を表示する表示装置である。
カメラ部120は、CCD(Charge Coupled Devices)あるいはCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子を備え、画像を撮影した場合に、CPU10に対して割り込み信号を出力する。
次に、動作を説明する。
図3は、携帯電話1のCPU10における動作シーケンスを示す図である。
なお、図3においては、ハードウェアセマフォの取得によるOSへの移行処理の動作を示すため、この動作に関わる単位プロセッサP0,P1およびハードウェアセマフォ部13の動作についてのみ示している。また、本実施の形態においてCPU10が実行するプログラムは、ハードウェアセマフォの取得要求を行った後に、セマフォ取得結果レジスタのフラグを確認する命令が実行されるように記述されている。
図3において、単位プロセッサP0がOSのサービスコール(例えばメモリ30のシステム領域に格納された制御パラメータを読み出すためのサービスコール等)を呼び出すべく、ハードウェアセマフォ部13に対してハードウェアセマフォの取得要求を出力すると(ステップS1)、単位プロセッサP0は、ハードウェアセマフォ部13からの応答を待つ待機状態となる(ステップS2)。
一方、ハードウェアセマフォ部13は、他のいずれの単位プロセッサにおいてもOSが実行されていないことから、ハードウェアセマフォの取得に成功したことを示す信号を単位プロセッサP0に出力する(ステップS3)。このとき、ハードウェアセマフォ部13は、単位プロセッサP0のセマフォ取得結果レジスタをハードウェアセマフォの取得に成功したことを示すフラグに書き換える。
そして、単位プロセッサP0が、ハードウェアセマフォ部13から出力されたハードウェアセマフォの取得に成功したことを示す信号を受け(ステップS4)、セマフォ取得結果レジスタのフラグがセマフォの取得に成功したことを示すものであることを確認すると、OSのサービスコールを呼び出し、OSとしての処理を実行する(ステップS5)。
ここで、単位プロセッサP0がハードウェアセマフォを取得した後、単位プロセッサP1がOSのサービスコール(例えばメモリ30のシステム領域に制御パラメータを書き込むためのサービスコール等)を呼び出すべく、ハードウェアセマフォ部13に対してハードウェアセマフォの取得要求を出力すると(ステップS6)、単位プロセッサP1は、ハードウェアセマフォ部13からの応答を待つ待機状態となる(ステップS7)。
一方、ハードウェアセマフォ部13は、単位プロセッサP0にハードウェアセマフォの取得を許可していることから、単位プロセッサP1に対して応答を行わない状態となる(ステップS8)。
これにより、CPU10が同期型のセマフォ制御を行うこととなり、ハードウェアセマフォの取得要求を行う単位プロセッサから取得要求が出力される回数が増大することを避けることが可能となる。
そして、単位プロセッサP1が待機状態である場合に、単位プロセッサP0において、単位プロセッサP1に実行させる優先度の高いタスクが発生したとする(ステップS9)。
このとき、単位プロセッサP0は、ハードウェアセマフォ部13に単位プロセッサP1に対するタスクスイッチの要求を出力する(ステップS10)。
すると、ハードウェアセマフォ部13は、応答の待機状態にある単位プロセッサP1に対し、ハードウェアセマフォの取得に失敗したことを示す信号を出力する(ステップS11)。このとき、ハードウェアセマフォ部13は、単位プロセッサP1のセマフォ取得結果レジスタをハードウェアセマフォの取得に失敗したことを示すフラグに書き換える。
そして、単位プロセッサP1が、ハードウェアセマフォ部13から出力されたハードウェアセマフォの取得に失敗したことを示す信号を受け(ステップS12)、セマフォ取得結果レジスタのフラグがセマフォの取得に失敗したことを示すものであることを確認すると、単位プロセッサP1は、待機状態から離脱し、動作可能な状態となる(ステップS13)。これにより、単位プロセッサP1におけるセマフォ取得要求が一旦取り消される。
次いで、ハードウェアセマフォ部13が、内部割り込み処理により、単位プロセッサP1におけるタスクスイッチを指示し(ステップS14)、単位プロセッサP1のコンテキストがスタックに退避されると共に、退避されたスタックを示すスタックポインタが、実行されていたタスクのスタックポインタの退避領域に格納される(ステップS15)。
続いて、単位プロセッサP0は、単位プロセッサP1において実行させるタスクのコンテキストを復元させる(ステップS16)。
その後、単位プロセッサP1は、単位プロセッサP0によって実行が指示されたタスクを処理する。
そして、そのタスクの処理が終了すると、ステップS15において退避されたコンテキストを復元し、退避されたタスクが再び実行される。
このタスクが実行されると、ステータスレジスタがセマフォ取得結果レジスタを確認する命令を指示していることから、セマフォ取得結果レジスタが確認され、ハードウェアセマフォの取得に失敗したことが認識される。
すると、単位プロセッサP1は、プログラムの記述に従い、再びハードウェアセマフォの取得要求を行うことにより、OSの処理への移行を試みる。
このような動作により、ハードウェアセマフォの取得に対して待機状態とされた単位プロセッサP1を必要に応じて動作させることが可能となり、CPU10を効率的に動作させることができる。即ち、排他制御における待機状態の発生に起因して、CPU10の処理能力が低下することを防止できる。
以上のように、本実施の形態に係る携帯電話1においては、CPU10において、単位プロセッサ間でOSに移行するための排他制御が行われる際に、各単位プロセッサが同期型のセマフォ取得要求をハードウェアセマフォ部13に出力する。また、ハードウェアセマフォ部13は、ハードウェアセマフォの取得に失敗したことを示す信号を出力することにより、セマフォ取得要求に対して待機状態とさせた単位プロセッサを、必要に応じて動作可能な状態とする。
そのため、ハードウェアセマフォの取得要求を行う単位プロセッサから取得要求が出力される回数が増大することを避けることができると共に、ハードウェアセマフォの取得に対して待機状態とされた単位プロセッサを必要に応じて動作させることが可能となる。
したがって、マルチプロセッサであるCPU10において、各単位プロセッサ間での排他制御を適切に行うことが可能となる。
なお、本発明は、マルチスレッドプロセッサあるいはマルチタスクプロセッサと呼ばれる各種実装形態のプロセッサに適用可能であるが、例えば、1チップ上に複数のプロセッサコアが実装され、プロセッサの構成要素の少なくとも一部をこれら複数のプロセッサコアが共用する形態のマルチプロセッサ(いわゆる密結合型のマルチタスクプロセッサ)において、特に有効となる。
図4は、本発明の適用対象となるマルチプロセッサの構成例を示す図である。

図4に示すマルチプロセッサは、メモリ制御部およびALUを複数のプロセッサコアが共用する形態であり、それぞれのプロセッサコアにプログラムカウンタおよびステータスレジスタ等の制御用レジスタが備えられていると共に、マルチプロセッサ全体を制御するためのプログラム制御部および制御用レジスタも別途備えられている。なお、図4に示すように、各プロセッサコアで共用するコンテキストキャッシュ等を備えても良い。
このような構成のマルチプロセッサの場合、各プロセッサコアが本実施の形態における単位プロセッサの機能を実現するものとなり、マルチプロセッサ全体を制御するプログラム制御部において、ハードウェアセマフォ13の機能を実現するものとなる。
また、本実施の形態においては、メモリ30のシステム領域に対するアクセスが競合する可能性があることに鑑み、複数の単位プロセッサがOSへ移行することを排他制御する例について説明したが、同一のハードウェアにアクセスする可能性がある場合、例えば、CPUとDMA(Direct Memory Access)コントローラとの間における排他制御や、アプリケーション間における排他制御(共有メモリへのアクセスあるいは共通処理の実行)等に適用することも可能である。
本発明に係る携帯電話1の機能構成を示すブロック図である。 CPU10の内部構成を示すブロック図である。 携帯電話1のCPU10における動作シーケンスを示す図である。 本発明の適用対象となるマルチプロセッサの構成例を示す図である。
符号の説明
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 プログラム制御部

Claims (4)

  1. タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサであって、
    第1のプロセッサ部から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を出力すると共に、第1のプロセッサ部以外の第2のプロセッサ部から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を出力することにより、前記所定ハードウェアに対する排他制御を行う排他制御部を備え、
    前記プロセッサ部は、前記所定のハードウェアに対してアクセスする場合に、前記排他制御部にアクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、
    前記排他制御部は、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を出力することを特徴とするプロセッサ。
  2. 前記プロセッサ部は、前記所定ハードウェアに対するアクセスの可否を示すフラグを記憶するアクセスフラグ用レジスタと、該プロセッサ部において次に実行する命令を指示するプログラムカウンタとを備え、
    前記排他制御部は、前記第1のプロセッサ部から前記所定ハードウェアに対するアクセス要求が出力された場合、前記第1のプロセッサにおける前記アクセスフラグ用レジスタをアクセスを許可する状態に書き換え、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部における前記アクセスフラグ用レジスタをアクセスを拒否する状態に書き換えると共に、該第2のプロセッサ部における前記プログラムカウンタを、該他の処理から復帰した場合に前記所定ハードウェアへのアクセス要求が実行される状態に設定した後に、該他の処理を行わせることを特徴とする請求項1記載のプロセッサ。
  3. タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサにおける情報処理方法であって、
    第1のプロセッサ部から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を入力すると共に、第1のプロセッサ部以外の第2のプロセッサ部から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を入力することにより、前記所定ハードウェアに対する排他制御を行う排他制御ステップを含み、
    前記プロセッサ部が、前記所定のハードウェアに対してアクセスする場合に、前記アクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、
    第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を入力することを特徴とする情報処理方法。
  4. 前記プロセッサ部に、前記所定ハードウェアに対するアクセスの可否を示すフラグを記憶するアクセスフラグ用レジスタと、該プロセッサ部において次に実行する命令を指示するプログラムカウンタとを備えておき、
    前記第1のプロセッサ部から前記所定ハードウェアに対するアクセス要求が出力された場合、前記第1のプロセッサにおける前記アクセスフラグ用レジスタをアクセスを許可する状態に書き換え、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部における前記アクセスフラグ用レジスタをアクセスを拒否する状態に書き換えると共に、該第2のプロセッサ部における前記プログラムカウンタを、該他の処理から復帰した場合に前記所定ハードウェアへのアクセス要求が実行される状態に設定した後に、該他の処理を行わせることを特徴とする請求項3記載の情報処理方法。
JP2005020831A 2005-01-28 2005-01-28 プロセッサおよび情報処理方法 Expired - Fee Related JP4389797B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005020831A JP4389797B2 (ja) 2005-01-28 2005-01-28 プロセッサおよび情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005020831A JP4389797B2 (ja) 2005-01-28 2005-01-28 プロセッサおよび情報処理方法

Publications (2)

Publication Number Publication Date
JP2006209480A JP2006209480A (ja) 2006-08-10
JP4389797B2 true JP4389797B2 (ja) 2009-12-24

Family

ID=36966271

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005020831A Expired - Fee Related JP4389797B2 (ja) 2005-01-28 2005-01-28 プロセッサおよび情報処理方法

Country Status (1)

Country Link
JP (1) JP4389797B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2541406A4 (en) * 2010-02-23 2013-06-05 Fujitsu Ltd MULTIC UR PROCESSOR SYSTEM, INTERRUPT PROGRAM, AND INTERRUPTION METHOD

Also Published As

Publication number Publication date
JP2006209480A (ja) 2006-08-10

Similar Documents

Publication Publication Date Title
JP4148223B2 (ja) プロセッサおよび情報処理方法
KR100746797B1 (ko) 프로세서 및 정보처리 방법
JP5243711B2 (ja) プロセッサ
JP4609113B2 (ja) プロセッサ
JP2005202767A (ja) プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
WO2010067492A1 (ja) マルチプロセッサシステム及びその排他制御の調停方法
US9043806B2 (en) Information processing device and task switching method
JP2007188397A (ja) マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
JP2006260377A (ja) 並列処理装置および情報処理方法
JP4033215B2 (ja) マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム
WO2006059444A1 (ja) マルチプロセッサシステムとそのシステムにおけるプログラム実行方法
JP4389797B2 (ja) プロセッサおよび情報処理方法
JP4441592B2 (ja) 並列処理装置及び排他制御方法
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP4797422B2 (ja) プロセッサおよびディスパッチ制御方法
JP2010122813A (ja) 情報処理装置、集積回路装置、電子機器
JP2006023808A (ja) データ転送装置及びデータ転送方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070404

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071114

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090826

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

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

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131016

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees