JP4389797B2 - プロセッサおよび情報処理方法 - Google Patents
プロセッサおよび情報処理方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Telephone Function (AREA)
Description
従来の携帯機器では、シングルプロセッサによる処理が行われていたところ、携帯機器の高機能化に伴い処理が複雑化し、シングルプロセッサによる処理が困難となっている。
一方、マルチプロセッサを利用することにより、装置を低クロック化することが可能となり、それにより低消費電力化を実現することができる。さらに、複数のタスク等を並列に処理できることから、リアルタイムな応答性の観点からも有効なものとなる。
なお、マルチタスク処理における割り込み間の排他制御に関する技術が、特許文献1に記載されている。
例えば、従来の排他制御に用いられているポーリング型の制御を行った場合、複数のプロセッサからポーリングが行われるため、バスアクセスの回数が増大することとなる。
また、従来の排他制御に用いられている同期型の制御を行った場合、他のプロセッサがアクセスしている間に同一のハードウェアに対してアクセス要求を行ったプロセッサは、先にアクセスしたプロセッサがハードウェアを解放するまで動作することができず、処理能力の低下を招くこととなる。
特に、1チップ上に複数のプロセッサコアを搭載して1つのマルチプロセッサとして機能させる、いわゆる密結合型マルチプロセッサにおいて、このような排他制御を適切に行う手段は提供されていないのが現状である。
タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサであって、第1のプロセッサ部(例えば、図3に示す動作における単位プロセッサP0)から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を出力すると共に、第1のプロセッサ部以外の第2のプロセッサ部(例えば、図3に示す動作における単位プロセッサP1)から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を出力することにより、前記所定ハードウェアに対する排他制御を行う排他制御部(例えば、図2のハードウェアセマフォ部13)を備え、前記プロセッサ部は、前記所定のハードウェアに対してアクセスする場合に、前記排他制御部にアクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、前記排他制御部は、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を出力することを特徴としている。
したがって、マルチプロセッサにおいて、各プロセッサ間での排他制御を適切に行うことが可能となる。
また、本発明は、
タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサにおける情報処理方法であって、第1のプロセッサ部から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を入力すると共に、第1のプロセッサ部以外の第2のプロセッサ部から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を入力することにより、前記所定ハードウェアに対する排他制御を行う排他制御ステップを含み、前記プロセッサ部が、前記所定のハードウェアに対してアクセスする場合に、前記アクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を入力することを特徴としている。
本発明に係るプロセッサは、タスクあるいはスレッド等、プログラムをその実行単位で並列的に処理するものであり、本発明に係るプロセッサ内に、タスク等を実行するプロセッサ(以下、「単位プロセッサ」と言う。)が実質的に複数備えられたハードウェア構成を有している。
これにより、複数プロセッサ間の排他制御が実現されると共に、各プロセッサの処理能力が低下する事態を防止できる。
まず、構成を説明する。
ここでは、本発明に係るプロセッサを携帯電話に組み込んだ場合を例に挙げ、排他制御の対象としてオペレーティングシステム(OS)への移行を想定した場合について説明する。なお、以下の説明において、スレッド等、プログラムの実行単位を総称して「タスク」と言う。
図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の内部構成について説明する。
図2は、CPU10の内部構成を示すブロック図である。
図2において、CPU10は、複数の単位プロセッサP0〜P3と、割り込み制御部11と、メモリ制御部12と、ハードウェアセマフォ部13とを含んで構成される。
なお、単位プロセッサP0〜P3の内部構成としては同様のものとなるため、代表として、単位プロセッサP0の内部構成について説明する。
単位プロセッサP0は、フェッチ部101と、デコード部102と、ALU(Arithmetic and Logical Unit)103と、レジスタ104と、プログラム制御部105とをさらに含んで構成される。
デコード部102は、フェッチ部101によって入力された命令コードをデコードし、デコード結果(命令内容およびソースレジスタ、デスティネーションレジスタのアドレス等)をALU103に出力する。
レジスタ104は、ロード命令によってメモリ30から読み出されたデータや、ALU103の演算結果であるデータを記憶するレジスタ群である。
メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出しおよび書き込みが行われる場合に、メモリ30を制御してデータの入出力を行う。
メモリ30は、DRAM(Dynamic Random Access Memory)、SRAM(Static Random Access Memory)あるいはSDRAM(Synchronous DRAM)といった半導体メモリによって構成され、CPU10が処理を実行する際にワークエリアを形成すると共に、その処理結果を記憶する。
無線部50は、携帯電話1と携帯電話システムの基地局との間における無線通信を行うものである。例えば、無線部50は、基地局から携帯電話1に対する着信を示す信号を受信した場合、CPU10に対して割り込み信号を出力し、着信信号の受信を通知する。また、無線部50は、CPU10から発信を指示する信号が入力された場合、基地局に対して発信要求を示す信号を送信する。
オーディオ部70は、携帯電話1において入出力される音声信号を処理するものであり、通話におけるマイクおよびスピーカを用いた音声の入出力、あるいは、音楽等の再生といった処理を行う。
USBインターフェース部90は、USBによる通信を行うためのインターフェースであり、USBケーブルが接続された場合やUSBケーブルから信号を受信した場合等に、CPU10に対して割り込み信号を出力する。
LCD110は、CPU10によって入力された文字あるいは画像等の描画命令に従って、所定画面を表示する表示装置である。
カメラ部120は、CCD(Charge Coupled Devices)あるいはCMOS(Complementary Metal Oxide Semiconductor)センサ等の撮像素子を備え、画像を撮影した場合に、CPU10に対して割り込み信号を出力する。
図3は、携帯電話1のCPU10における動作シーケンスを示す図である。
なお、図3においては、ハードウェアセマフォの取得によるOSへの移行処理の動作を示すため、この動作に関わる単位プロセッサP0,P1およびハードウェアセマフォ部13の動作についてのみ示している。また、本実施の形態においてCPU10が実行するプログラムは、ハードウェアセマフォの取得要求を行った後に、セマフォ取得結果レジスタのフラグを確認する命令が実行されるように記述されている。
ここで、単位プロセッサP0がハードウェアセマフォを取得した後、単位プロセッサP1がOSのサービスコール(例えばメモリ30のシステム領域に制御パラメータを書き込むためのサービスコール等)を呼び出すべく、ハードウェアセマフォ部13に対してハードウェアセマフォの取得要求を出力すると(ステップS6)、単位プロセッサP1は、ハードウェアセマフォ部13からの応答を待つ待機状態となる(ステップS7)。
これにより、CPU10が同期型のセマフォ制御を行うこととなり、ハードウェアセマフォの取得要求を行う単位プロセッサから取得要求が出力される回数が増大することを避けることが可能となる。
このとき、単位プロセッサP0は、ハードウェアセマフォ部13に単位プロセッサP1に対するタスクスイッチの要求を出力する(ステップS10)。
そして、単位プロセッサP1が、ハードウェアセマフォ部13から出力されたハードウェアセマフォの取得に失敗したことを示す信号を受け(ステップS12)、セマフォ取得結果レジスタのフラグがセマフォの取得に失敗したことを示すものであることを確認すると、単位プロセッサP1は、待機状態から離脱し、動作可能な状態となる(ステップS13)。これにより、単位プロセッサP1におけるセマフォ取得要求が一旦取り消される。
続いて、単位プロセッサP0は、単位プロセッサP1において実行させるタスクのコンテキストを復元させる(ステップS16)。
そして、そのタスクの処理が終了すると、ステップS15において退避されたコンテキストを復元し、退避されたタスクが再び実行される。
このタスクが実行されると、ステータスレジスタがセマフォ取得結果レジスタを確認する命令を指示していることから、セマフォ取得結果レジスタが確認され、ハードウェアセマフォの取得に失敗したことが認識される。
このような動作により、ハードウェアセマフォの取得に対して待機状態とされた単位プロセッサP1を必要に応じて動作させることが可能となり、CPU10を効率的に動作させることができる。即ち、排他制御における待機状態の発生に起因して、CPU10の処理能力が低下することを防止できる。
したがって、マルチプロセッサであるCPU10において、各単位プロセッサ間での排他制御を適切に行うことが可能となる。
図4に示すマルチプロセッサは、メモリ制御部およびALUを複数のプロセッサコアが共用する形態であり、それぞれのプロセッサコアにプログラムカウンタおよびステータスレジスタ等の制御用レジスタが備えられていると共に、マルチプロセッサ全体を制御するためのプログラム制御部および制御用レジスタも別途備えられている。なお、図4に示すように、各プロセッサコアで共用するコンテキストキャッシュ等を備えても良い。
また、本実施の形態においては、メモリ30のシステム領域に対するアクセスが競合する可能性があることに鑑み、複数の単位プロセッサがOSへ移行することを排他制御する例について説明したが、同一のハードウェアにアクセスする可能性がある場合、例えば、CPUとDMA(Direct Memory Access)コントローラとの間における排他制御や、アプリケーション間における排他制御(共有メモリへのアクセスあるいは共通処理の実行)等に適用することも可能である。
Claims (4)
- タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサであって、
第1のプロセッサ部から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を出力すると共に、第1のプロセッサ部以外の第2のプロセッサ部から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を出力することにより、前記所定ハードウェアに対する排他制御を行う排他制御部を備え、
前記プロセッサ部は、前記所定のハードウェアに対してアクセスする場合に、前記排他制御部にアクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、
前記排他制御部は、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を出力することを特徴とするプロセッサ。 - 前記プロセッサ部は、前記所定ハードウェアに対するアクセスの可否を示すフラグを記憶するアクセスフラグ用レジスタと、該プロセッサ部において次に実行する命令を指示するプログラムカウンタとを備え、
前記排他制御部は、前記第1のプロセッサ部から前記所定ハードウェアに対するアクセス要求が出力された場合、前記第1のプロセッサにおける前記アクセスフラグ用レジスタをアクセスを許可する状態に書き換え、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部における前記アクセスフラグ用レジスタをアクセスを拒否する状態に書き換えると共に、該第2のプロセッサ部における前記プログラムカウンタを、該他の処理から復帰した場合に前記所定ハードウェアへのアクセス要求が実行される状態に設定した後に、該他の処理を行わせることを特徴とする請求項1記載のプロセッサ。 - タスクあるいはスレッドを処理するプロセッサ部を複数備えるプロセッサにおける情報処理方法であって、
第1のプロセッサ部から所定ハードウェアに対するアクセス要求が出力された場合に、第1のプロセッサ部にアクセスを許可する信号を入力すると共に、第1のプロセッサ部以外の第2のプロセッサ部から後に行われる前記所定ハードウェアへのアクセス要求に対して、第1のプロセッサ部による前記所定ハードウェアへのアクセスの終了を待って、第2のプロセッサ部にアクセスを許可する信号を入力することにより、前記所定ハードウェアに対する排他制御を行う排他制御ステップを含み、
前記プロセッサ部が、前記所定のハードウェアに対してアクセスする場合に、前記アクセス要求を出力した後に待機状態に移行し、アクセスを許可する信号が入力されたことに対応して、前記所定のハードウェアに対するアクセスを実行し、
第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部にアクセスの拒否を示す信号を入力することを特徴とする情報処理方法。 - 前記プロセッサ部に、前記所定ハードウェアに対するアクセスの可否を示すフラグを記憶するアクセスフラグ用レジスタと、該プロセッサ部において次に実行する命令を指示するプログラムカウンタとを備えておき、
前記第1のプロセッサ部から前記所定ハードウェアに対するアクセス要求が出力された場合、前記第1のプロセッサにおける前記アクセスフラグ用レジスタをアクセスを許可する状態に書き換え、第1のプロセッサ部による前記所定ハードウェアへのアクセス中に該所定ハードウェアへのアクセス要求を出力した前記第2のプロセッサ部に他の処理を行わせる必要が生じた場合に、該第2のプロセッサ部における前記アクセスフラグ用レジスタをアクセスを拒否する状態に書き換えると共に、該第2のプロセッサ部における前記プログラムカウンタを、該他の処理から復帰した場合に前記所定ハードウェアへのアクセス要求が実行される状態に設定した後に、該他の処理を行わせることを特徴とする請求項3記載の情報処理方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5673666B2 (ja) * | 2010-02-23 | 2015-02-18 | 富士通株式会社 | マルチコアプロセッサシステム、割込プログラム、および割込方法 |
-
2005
- 2005-01-28 JP JP2005020831A patent/JP4389797B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006209480A (ja) | 2006-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4148223B2 (ja) | プロセッサおよび情報処理方法 | |
KR100746797B1 (ko) | 프로세서 및 정보처리 방법 | |
US7853743B2 (en) | Processor and interrupt controlling method | |
JP4609113B2 (ja) | プロセッサ | |
JP2005202767A (ja) | プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路 | |
WO2010067492A1 (ja) | マルチプロセッサシステム及びその排他制御の調停方法 | |
WO2011121730A1 (ja) | マルチコアプロセッサシステム、制御プログラム、および制御方法 | |
JP2007188397A (ja) | マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム | |
US20130036426A1 (en) | Information processing device and task switching method | |
JP2006260377A (ja) | 並列処理装置および情報処理方法 | |
JP4033215B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムの制御方法をコンピュータに実行させるためのプログラム | |
WO2006059444A1 (ja) | マルチプロセッサシステムとそのシステムにおけるプログラム実行方法 | |
JP4389797B2 (ja) | プロセッサおよび情報処理方法 | |
JP4441592B2 (ja) | 並列処理装置及び排他制御方法 | |
JP5017784B2 (ja) | プロセッサ及びこのプロセッサ適用される割込み処理制御方法 | |
JP4797422B2 (ja) | プロセッサおよびディスパッチ制御方法 | |
JP2010122813A (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 |