JP2006260377A - 並列処理装置および情報処理方法 - Google Patents

並列処理装置および情報処理方法 Download PDF

Info

Publication number
JP2006260377A
JP2006260377A JP2005079314A JP2005079314A JP2006260377A JP 2006260377 A JP2006260377 A JP 2006260377A JP 2005079314 A JP2005079314 A JP 2005079314A JP 2005079314 A JP2005079314 A JP 2005079314A JP 2006260377 A JP2006260377 A JP 2006260377A
Authority
JP
Japan
Prior art keywords
processing
task
processor
unit
peripheral 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.)
Pending
Application number
JP2005079314A
Other languages
English (en)
Inventor
Mitsunari Todoroki
晃成 轟
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 JP2005079314A priority Critical patent/JP2006260377A/ja
Publication of JP2006260377A publication Critical patent/JP2006260377A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Advance Control (AREA)

Abstract

【課題】 マルチプロセッサと、それに接続された周辺ハードウェアとを効率的に協調動作させること。
【解決手段】 携帯電話1においては、CPU10の単位プロセッサP0〜P3それぞれから、周辺装置40a〜40dおよびコプロセッサ130a,130bといった周辺ハードウェアに処理を依頼することができる。したがって、周辺ハードウェアに処理を依頼するタスクをいずれの単位プロセッサP0〜P3においても実行することが可能となり、マルチプロセッサであるCPU10と周辺ハードウェアとを効率的に協調動作させることが可能となる。
【選択図】 図2

Description

本発明は、複数のタスクあるいはスレッドを並列的に処理するプロセッサを含む並列処理装置およびその情報処理方法に関する。
近年、組み込み機器等において、複数のタスクあるいはスレッドを並列的に処理可能なマルチタスクプロセッサあるいはマルチスレッドプロセッサと呼ばれるプロセッサ(以下、これらを総称して「マルチプロセッサ」と言う。)が利用されつつある。
従来の携帯機器では、シングルプロセッサによる処理が行われていたところ、携帯機器の高機能化に伴い処理が複雑化し、シングルプロセッサによる処理が困難となっている。
即ち、シングルプロセッサによって高機能を実現しようとした場合、高いクロック周波数で動作させる必要があり、それに伴い消費電力も増大する。また、例えば携帯電話において動画の再生中に電話の着信があった場合の処理等、リアルタイムに応答する必要がある場合の対応が困難となる。
一方、マルチプロセッサを利用することにより、装置を低クロック化することが可能となり、それにより低消費電力化を実現することができる。さらに、複数のタスク等を並列に処理できることから、リアルタイムな応答性の観点からも有効なものとなる。
ところで、装置における処理をより高速化する等の目的で、コプロセッサあるいは各種周辺装置といった周辺ハードウェアがプロセッサに備えられることがある。
このような場合、プロセッサにおいて実行されているアプリケーションのタスク等が、所定の周辺ハードウェアに処理を行わせる命令を発行することにより、必要な周辺ハードウェアが利用される。
プロセッサが周辺ハードウェアを利用して処理を行う技術は、例えば、特開平8−241215号公報あるいは特開2002−55813号公報に記載されている。
特開平8−241215号公報 特開2002−55813号公報
しかしながら、マルチプロセッサが周辺ハードウェアを利用する場合、タスク等のソフトウェアを実行する複数のプロセッサ部と、プロセッサ部を補助する周辺ハードウェアとを効率的に協調動作させるためには、シングルプロセッサの場合と同様の方法を採用することができない。
ここで、特許文献1に記載された技術は、マルチプロセッサにおいて周辺ハードウェアに対する同期制御を行う技術であり、マルチプロセッサと周辺ハードウェアの協調を図るものである。
しかし、本文献に記載された技術は、特定のプロセッサ部に対し、制御する周辺ハードウェアが固定的に割り当てられた構成を有するため、その周辺ハードウェアに処理が集中する場合には、処理を分散させることができず、効率的に協調動作させることが困難となる。
また、特許文献2に記載された技術は、コプロセッサを備えるプロセッサにおいて、コプロセッサを操作する所定命令を用意することにより、コプロセッサと協調して高速に処理を行う技術である。
しかし、ここで用いられているプロセッサはマルチプロセッサではないため、一部の処理をコプロセッサによって行ったとしても、プログラム全体を並列動作させることができず、マルチプロセッサと周辺ハードウェアとを協調動作させる場合に適用することはできなかった。
このように、特許文献1および特許文献2に記載された技術を含め、従来の技術においては、マルチプロセッサと周辺ハードウェアとを効率的に協調動作させることが困難であった。
本発明の課題は、マルチプロセッサと、それに接続された周辺ハードウェアとを効率的に協調動作させることである。
以上の課題を解決するため、本発明は、
タスクあるいはスレッドを実行するプロセッサ部(例えば、図2の単位プロセッサP0〜P3)を複数備え、周辺ハードウェア(例えば、図1の周辺装置40a〜40dおよびコプロセッサ130a,130b)と接続されたプロセッサ(例えば、図1のCPU10)を含む並列処理装置であって、タスクあるいはスレッドを実行している前記プロセッサ部それぞれが、実行中のタスクあるいはスレッドの実行内容に応じて周辺ハードウェアに処理依頼を行うことを特徴としている。
このような構成により、周辺ハードウェアに対し、任意のプロセッサ部から処理を依頼できることとなるため、周辺ハードウェアに処理依頼を行う際の処理効率を向上させることができる。
したがって、プロセッサ部を複数備えるプロセッサと、それに接続された周辺ハードウェアとを効率的に協調動作させることが可能となる。
また、前記周辺ハードウェアは、処理対象となるデータを格納するデータレジスタと、処理内容を示すコマンドを格納するコマンドレジスタとを備え、前記周辺ハードウェアに処理を行わせる前記プロセッサ部が、前記データレジスタに処理対象となるデータを書き込むと共に、前記コマンドレジスタにコマンドを書き込むことによって、前記処理依頼を行うことを特徴としている。
このような構成により、プロセッサ部がデータレジスタおよびコマンドレジスタに所定のデータを書き込むことで、処理の依頼を行うことが可能となる。
なお、データレジスタおよびコマンドレジスタは、レジスタによって実現する場合に加え、種々の記憶素子によって実現することが可能である。
また、命令セットにおいて、前記処理依頼を行う命令を発行させる所定命令が予め用意され、前記プロセッサ部は、該所定命令を実行することにより、前記周辺ハードウェアに対して前記処理依頼を行う命令を発行することを特徴としている。
このような構成により、プロセッサ内のALU等に処理を行わせる場合と同様の命令によって周辺ハードウェアに対する命令を行えるため、冗長性の低い命令とすることができる。
また、前記周辺ハードウェアには、メモリ領域の所定アドレス(例えば、OSのシステム領域の一部等)が割り当てられ、前記プロセッサ部は、前記周辺ハードウェアに割り当てられたメモリ領域へのストア命令を実行することにより、前記処理依頼を行うことを特徴としている。
このような構成により、プロセッサの命令セットに特別の命令を用意することなく、メモリに対する汎用のストア命令で処理の依頼を行うことが可能となる。
また、前記処理依頼を受けた前記周辺ハードウェアは、依頼された処理が終了した場合に、処理依頼を行った前記プロセッサ部に対する割り込み信号を出力し、前記処理依頼を行った前記プロセッサ部は、該割り込み信号によって、依頼した処理の結果を取得することを特徴としている。
このような構成により、処理の依頼を行ったプロセッサ部は、処理の依頼後、周辺ハードウェアから割り込み信号の入力を待つのみで、処理結果を取得することができる。
また、前記処理依頼を行った前記プロセッサ部は、依頼先である前記周辺ハードウェアに対し、ポーリングを行うことにより、依頼した処理の結果を取得することを特徴としている。
このような構成により、処理の依頼を行ったプロセッサ部は、周辺ハードウェアによる処理の終了後、直ちに処理結果を取得することが可能となる。
また、前記複数のプロセッサ部におけるいずれかのプロセッサ部に対し、タスクあるいはスレッドの優先度の決定を排他的に行うための排他制御権を与える排他制御処理部(例えば、図2の排他制御処理部13)と、発生しているタスクあるいはスレッドの実行状態を管理するタスク状態管理部(例えば、図2のタスク状態制御部15)とを備え、前記処理依頼を行ったタスクあるいはスレッドが、前記排他制御権を取得することにより自タスクの優先度を変更し、前記タスク状態管理部によって管理されている実行状態に応じて、タスクあるいはスレッドの切り替えを行うことを特徴としている。
このような構成により、周辺ハードウェアに処理の依頼を行った後、次のディスパッチタイミングで、依頼後のタスクの状態(優先度)に応じたタスクの再割り当てが行われ、複数のプロセッサ部において効率的な処理を行うことが可能となる。
また、前記処理依頼を行ったタスクあるいはスレッドは、前記排他制御権を取得した後、自タスクあるいはスレッドの優先度を下げることを特徴としている。
このような構成により、周辺ハードウェアに処理の依頼を行い、処理結果を待つ状態のタスクについて優先度が低下されるため、周辺ハードウェアによる処理中に、より優先度の高いタスクを先行して実行することが可能となる。
また、前記周辺ハードウェアは、所定処理を実行する周辺装置であることを特徴としている。
このような構成により、複数のプロセッサ部それぞれから周辺装置に対して処理の依頼を行うことが可能となる。
また、前記周辺ハードウェアは、特定の処理を担うことによりプロセッサを補助するコプロセッサであることを特徴としている。
このような構成により、複数のプロセッサ部それぞれからコプロセッサに対して処理の依頼を行うことが可能となる。
また、本発明は、
タスクあるいはスレッドを実行するプロセッサ部を複数備え、周辺ハードウェアと接続されたプロセッサを含む並列処理装置における情報処理方法であって、タスクあるいはスレッドを実行している前記プロセッサ部それぞれから、実行中のタスクあるいはスレッドの実行内容に応じて周辺ハードウェアに処理依頼を行うことを特徴としている。
このように、本発明によれば、マルチプロセッサと、それに接続された周辺ハードウェアとを効率的に協調動作させることが可能となる。
以下、図を参照して本発明に係る並列処理装置の実施の形態を説明する。
本発明に係る並列処理装置は、タスクあるいはスレッド等、プログラムをその実行単位で並列的に処理するプロセッサを含むものであり、そのプロセッサ内に、タスク等を実行するプロセッサ(以下、「単位プロセッサ」と言う。)が実質的に複数備えられたハードウェア構成を有している。
また、本発明にかかる並列処理装置において、プロセッサは、コプロセッサあるいは各種処理を行う周辺装置等、周辺ハードウェアと接続されており、タスク等を実行するいずれの単位プロセッサからも、任意の周辺ハードウェアに処理を行わせることを可能としている。
したがって、本発明に係る並列処理装置によれば、マルチプロセッサと周辺ハードウェアとを効率的に協調動作させることができる。
さらに、周辺ハードウェアに処理を行わせたタスク等は、処理結果を得るまでの待機中に自タスク等の優先度を低下させると共に、処理対象となるタスク等の状態を制御するタスク状態制御部により、各単位プロセッサに適切にタスク等を割り当てる。
したがって、周辺ハードウェアにおいて処理を実行している間も、プロセッサを効率的に動作させることが可能である。
まず、構成を説明する。
ここでは、本発明に係る並列処理装置を携帯電話として実現した場合を例に挙げて説明する。なお、以下の説明において、スレッド等、プログラムの実行単位を総称して「タスク」と言う。
図1は、本発明に係る携帯電話1の機能構成を示すブロック図である。
図1において、携帯電話1は、CPU(Central Processing Unit)10と、フラッシュROM20と、メモリ30と、周辺装置40a〜40dと、無線部50と、IrDA(Infrared Data Association)部60と、オーディオ(Audio)部70と、タイマ(Timer)80と、USB(Universal Serial Bus)インターフェース部90と、キー(KEY)操作部100と、LCD(Liquid Crystal Display)110と、カメラ(Camera)部120と、コプロセッサ130a,130bとを含んで構成され、CPU10、フラッシュROM20、メモリ30および周辺装置40a〜40dは、バスによって接続されている。また、無線部50、IrDA部60、オーディオ部70、タイマ80、USBインターフェース部90、キー操作部100、LCD110、カメラ部120およびコプロセッサ130a,130bは、CPU10と直接接続されている。
CPU10は、複数のタスクを並列的に処理しつつ携帯電話1全体を制御するもので、キー操作部100から入力される各種の指示信号に応じて、フラッシュROM20に記憶されたオペレーティングシステムプログラム(OS)や各種アプリケーションプログラムを読み出して実行したり、無線部50、オーディオ部70あるいはカメラ部120等の周辺チップから入力される割り込み信号に応じて、割り込みハンドラを実行したりする。
また、CPU10は、効率的な処理を行うため、所定処理を周辺装置40a〜40dあるいはコプロセッサ130a,130b(以下、これらを総称して「周辺ハードウェア」と言う。)に実行させる。そして、CPU10は、周辺装置40a〜40dに実行させた処理結果を周辺装置40a〜40dからの割り込み信号によって取得し、コプロセッサ130a,130bに実行させた処理結果をポーリングによって取得する。
割り込み信号によって処理結果を取得することで、CPU10(処理の依頼を行ったタスク)は、周辺装置40a〜40dからの割り込み信号の入力を待つのみで、処理結果を取得することが可能となる。
一方、ポーリングによって処理結果を取得することで、CPU10(処理の依頼を行ったタスク)は、コプロセッサ130a,130bにおいて処理が終了した後、直ちに処理結果を取得することが可能となる。
なお、周辺ハードウェアから処理結果を取得する方法としては、周辺装置40a〜40dおよびコプロセッサ130a,130bそれぞれについて、割り込みによる方法およびポーリングによる方法のいずれを用いることとしても良い。
さらに、CPU10は、各単位プロセッサにおいて実行されている各タスクがOSのサービスコールを呼び出し、タスクの状態制御といったOSの処理に移行する場合に、セマフォを取得させることにより、これらの単位プロセッサ間における排他制御を行う。
また、CPU10は、各種処理結果をフラッシュROM20あるいはメモリ30に格納する。
ここで、CPU10の内部構成について説明する。
図2は、CPU10の内部構成を示すブロック図である。
図2において、CPU10は、複数の単位プロセッサP0〜P3と、外部割り込み制御部11と、メモリ制御部12と、排他制御処理部13と、全体プログラム制御部14と、タスク状態制御部15とを含んで構成される。
単位プロセッサP0〜P3は、それぞれが並列してタスクを処理可能なプロセッサである。
なお、単位プロセッサP0〜P3の内部構成としては同様のものとなるため、代表として、単位プロセッサP0の内部構成について説明する。
単位プロセッサP0は、ハードウェアセマフォの取得結果を含む単位プロセッサP0の各種ステータス(割り込みの可否状態、動作の有無、単位プロセッサP0におけるオーバーフローの発生状態等)を記憶するステータスレジスタ(PSR)101と、単位プロセッサP0が次に実行するべき命令が格納されたメモリアドレスを記憶するプログラムカウンタ(PC)102と、割り込み処理の実行時に、プログラムカウンタ102の値を退避しておく割り込み処理用プログラムカウンタ(EPC)103と、割り込み処理の実行時に、ステータスレジスタ101の値を退避しておく割り込み処理用ステータスレジスタ(EPSR)104とを含んで構成される。そして、ステータスレジスタ101は、単位プロセッサP0が割り込み処理を実行している間、記憶している値を割り込み処理の禁止を示す値に変更されたり、プログラムカウンタ102は、分岐命令が実行された場合に、記憶している値を分岐先のアドレスに変更されたりする。
なお、ここでは図示しないが、単位プロセッサP0は、一般にプロセッサコアに備えられるフェッチ部、デコード部、ALU(Arithmetic and Logical Unit)、レジスタファイルおよびプログラム制御部等を備えている。
外部割り込み制御部11は、無線部50や周辺装置40a〜40d等から割り込み信号が入力された場合に、いずれから割り込み信号が入力されたかを全体プログラム制御部14に出力する。
また、外部割り込み制御部11には、割り込みの許可設定、その解除、割り込み信号間の優先順位等を示す信号や、外部割込み制御部11を操作するための信号が全体プログラム制御部14から入力される。そして、外部割込み制御部11は、全体プログラム制御部14によって割り込みが許可されている場合、割り込み信号間に設定されている優先順位に従って、周辺装置40a〜40dによって入力された所定の割り込み信号を全体プログラム制御部14に出力する。
メモリ制御部12は、CPU10とメモリ30との間に備えられ、CPU10からメモリ30に対するデータの読み出しおよび書き込みが行われる場合に、メモリ30を制御してデータの入出力を行う。
また、メモリ制御部12は、CPU12からコプロセッサ130a,130bに対するデータの読み出しおよび書き込みを行うためのインターフェースであるコプロセッサ制御部12aを備えている。CPU12がコプロセッサ130a,130bに処理を行わせる場合、単位プロセッサP0〜P3が実行するタスクから、コプロセッサ130a,130bに処理を依頼するための命令が発行される。すると、この命令を受けて、コプロセッサ制御部12aが、コプロセッサ130a,130bのデータレジスタに処理対象となるデータを書き込み、コマンドレジスタに命令内容を書き込むことによって、コプロセッサ130a,130bにおける処理が可能な状態となる。
排他制御処理部13は、OSのタスク状態制御権限を唯一の単位プロセッサ(タスク)に与えるためのセマフォカウンタを内部に備えており、単位プロセッサP0〜P3において実行されているタスクからセマフォの取得要求(排他制御要求)が入力された場合、セマフォカウンタの値を参照し、セマフォカウンタの値が“0”(排他制御要求を受け入れる状態)であれば、セマフォカウンタの値をインクリメントして、排他制御を許可する応答信号を返す。また、排他制御処理部13は、セマフォカウンタの値が“1”(排他制御要求を受け入れない状態)であれば、排他制御を拒絶する応答信号を返す。なお、排他制御処理部13は、排他制御が許可され、タスク状態制御権限を有していた単位プロセッサ(タスク)が排他制御を終了することにより、セマフォの解放を示す信号を出力した場合、セマフォカウンタの値をデクリメントし、排他制御を受け入れる状態となる。
全体プログラム制御部14は、CPU10全体を制御するもので、割り込みベクタ14aと、全体制御部14bと、全体ステータスレジスタ(GPSR)14cとを含んで構成される。
割り込みベクタ14aは、割り込みハンドラの一覧が格納されたテーブルのメモリアドレスを記憶している。割り込み処理が実行される場合、まず、処理を行う単位プロセッサは、割り込みベクタ14aに記憶されたメモリ30上のアドレスを参照し、テーブルに示されている、割り込みの種類に応じた割り込みハンドラの格納先へジャンプする。そして、単位プロセッサが割り込みハンドラを起動することにより、割り込み処理が行われる。
全体制御部14bは、後述するタスク状態制御部15によってディスパッチを指示する信号が入力された場合に、単位プロセッサP0〜P3に動作の開始および停止を指示するための制御信号を出力する。
全体ステータスレジスタ14cは、CPU10全体における各種ステータス(割り込みの可否等)を記憶するものであり、各単位プロセッサP0〜P3のステータスを示す信号が入力され、それらのステータスに応じたCPU10全体のステータスを設定して記憶する。また、全体ステータスレジスタ14cは、CPU10全体における状態(単位プロセッサP0〜P3に空きがあるか否か等)を示す信号をタスク状態制御部15に出力する。
タスク状態制御部15は、CPU10において発生している全タスクの状態を管理するものであり、単位プロセッサP0〜P3で処理されている状態(RUN状態)のタスクをカウントするRUNタスクカウンタを内部に備えている。CPU10において、単位プロセッサは4つ備えられていることから、同時にRUN状態とし得るタスクは4つまでであり、RUN状態のタスクが3つ以下であれば、新たに実行が指示されたタスクを直ちにRUN状態とすることができ、RUN状態のタスクが4つであるときには、新たに実行が指示されたタスクは実行待ちのREADY状態となる。READY状態とされたタスクはタスク状態制御部15が管理するREADYキューに格納されている。
なお、このタスク状態制御部15は、メモリ30に展開されたソフトウェアによって実現することや、CPU10内に形成された回路によって実現することが可能である。
図1に戻り、フラッシュROM20は、携帯電話1において実行されるオペレーティングシステムプログラム、および、各種アプリケーションプログラムを記憶している。
メモリ30は、DRAM(Dynamic Random Access Memory)、SRAM(Static Ran dom Access Memory)あるいはSDRAM(Synchronous DRAM)といった半導体メモリによって構成され、オペレーティングシステムによって使用されるシステム領域およびCPU10が各種処理を実行する際のワークエリアを形成すると共に、その処理結果を記憶する。
周辺装置40a〜40dは、CPU10からの依頼を受けて、それぞれ所定処理を行うために備えられた各種処理装置である。周辺装置40a〜40dは、CPU10によって依頼される処理の処理対象データが書き込まれるデータレジスタと、依頼される命令内容が書き込まれるコマンドレジスタと、周辺装置40a〜40dそれぞれのステータス(例えば動作中あるいは動作完了等を示すステータス)を記憶するステータスレジスタとを備えている。
そして、CPU10によってデータレジスタに処理対象データが書き込まれ、コマンドレジスタに命令内容が書き込まれると、周辺装置40a〜40dは、CPU10によって依頼された処理を実行する。また、周辺装置40a〜40dは、CPU10から依頼された処理の開始時あるいは終了時等に、ステータスレジスタの値を処理の実行状態に応じて書き換える。
周辺装置40a〜40dの形態としては、例えば、動画像の符号化処理において実行されるDCT(Discrete Cosine Transform)変換の専用回路、動きベクトル検出の専用回路等とすることができる。
なお、周辺装置40a〜40dの具体的形態は、CPU10が備えられる装置の仕様に合わせて種々変更することができ、例えば、動画像の符号化における各処理ステップを実行する専用回路のように、処理手順において区分された各ステップの処理を実行する回路としたり、動画像の符号化における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に対して割り込み信号を出力する。
コプロセッサ130a,130bは、特定の処理を担うことによりCPU10を補助するためのプロセッサであり、CPU10によって依頼される処理の処理対象データが書き込まれるデータレジスタと、依頼される命令内容が書き込まれるコマンドレジスタと、コプロセッサ130a,130bそれぞれのステータスを記憶するステータスレジスタとを備えている。CPU10によってデータレジスタに処理対象データが書き込まれ、コマンドレジスタに命令内容が書き込まれると、コプロセッサ130a,130bは、CPU10によって依頼された処理を実行する。また、コプロセッサ130a,130bは、CPU10から依頼された処理の開始時あるいは終了時等に、ステータスレジスタの値を処理の実行状態に応じて書き換える。
コプロセッサ130a,130bの形態としては、周辺装置40a〜40dと同様に、例えば、動画像の符号化処理において実行されるDCT(Discrete Cosine Transform)変換の専用回路、動きベクトル検出の専用回路等とすることができる。
なお、コプロセッサ130a,130bとして周辺ハードウェアを備える場合、コプロセッサ130a,130bに命令を発行するために、命令セットにおいて特別に命令を用意しておく必要があるが、CPU10から直接命令を入力することができるため、冗長性が軽減する。一方、周辺装置40a〜40dとして周辺ハードウェアを備える場合、メモリ空間として割り当てられた周辺装置40a〜40dに命令コードをロードすることで処理の依頼を行うことができるため、命令セットにおいて特別な命令を用意する必要がない。ただし、バスを用いて命令の発行を行うため、バストラフィックが増大する可能性がある。
次に、動作を説明する。
以下、携帯電話1におけるCPU10の動作として、OSの管理の下、単位プロセッサP0がアプリケーションのタスクを実行している際に、周辺ハードウェアに処理を依頼し、周辺ハードウェアにおいて処理が終了した場合に、その結果を受け取ってアプリケーションの処理を継続する状態を想定して説明する。
図3は、単位プロセッサP0において実行されているアプリケーションの処理を示すフローチャートである。なお、図3は、CPU10が周辺装置40aに処理を依頼し、割り込みによって処理結果が返される場合のフローチャートである。
図3において、アプリケーションが起動されると、最初のタスクが開始され、アプリケーションのプログラムにおける第1番目の実行対象部分が単位プロセッサP0において実行される(ステップS1)。
この第1番目の実行対象部分は、周辺装置40aに処理を依頼する内容を含むものとする。
すると、単位プロセッサP0は、周辺装置40aのデータレジスタにデータを書き込み、依頼する処理内容のパラメータを設定する(ステップS2)。
そして、単位プロセッサP0は、周辺装置40aに対し、コマンドレジスタにデータを書き込むことにより、依頼した処理を開始させる(ステップS3)。
その後、単位プロセッサP0は、OSに対し、タスクの切り替え要求を行い、現在実行されているタスク(ステップS1において実行が開始されたタスク)の優先度を下げるよう設定する(ステップS4)。
なお、この時点で、現在のタスクより優先度の高いタスクが発生すると、タスクの切り替えが起こる可能性があるが、ここでは、現在のタスクが継続して実行されるものとする。また、処理の依頼後、処理結果の取得を優先して行いたい場合等は、現在のタスクの優先度を維持したり、より高く設定したりすることも可能である。
続いて、単位プロセッサP0は、アプリケーションのプログラムにおける第2番目の実行対象部分を実行する(ステップS5)。
第2番目の実行対象部分の処理が終了すると、単位プロセッサP0は、OSに対し、タスクの切り替え要求を行い、現在実行されているタスク(ステップS1において実行が開始されたタスク)をwait状態(待機状態)とするよう設定する(ステップS6)。
ここで、現在のタスクがwait状態となるのは、周辺装置40aに依頼した処理の結果を待つためである。また、wait状態とされたタスクは、タスクの切り替えにより、単位プロセッサP0から退避される。
ステップS6の後、周辺装置40aから割り込みによって処理結果が返されると、ステップS6においてwait状態とされたタスクが、OSによってREADY状態(実行待ち状態)に変更される(ステップS7)。
そして、他のタスクによってタスクの切り替え要求が行われると、ステップS7においてOSによってREADY状態とされたタスクがRUN状態に変更される(ステップS8)。
すると、このタスクを実行している単位プロセッサにおいて、周辺装置40aの処理結果を用いて、アプリケーションのプログラムにおける第3番目の実行対象部分が実行される(ステップS9)。
その後、ステップS1において実行が開始されたタスクの処理が終了する。
以上は、CPU10が周辺装置40a〜40dに処理を依頼した後、割り込みによって処理結果が返される場合の処理であるが、以下に示すように、CPU10がコプロセッサ130a,130bに処理を依頼した場合、タスクを実行している単位プロセッサP0がコプロセッサ130a,130bをポーリングすることにより、処理結果を取得する。
図4は、単位プロセッサP0において実行されているアプリケーションの処理を示すフローチャートであり、ポーリングによって処理結果を取得する場合を示している。なお、図4においては、図3に示す場合と同様に、OSの管理の下、単位プロセッサP0がアプリケーションのタスクを実行している際に、周辺ハードウェア(ここではコプロセッサ130aとする。)に処理を依頼し、周辺ハードウェアにおいて処理が終了した場合に、その結果を受け取ってアプリケーションの処理を継続する状態を想定して説明する。
図4において、アプリケーションが起動されると、最初のタスクが開始され、アプリケーションのプログラムにおける第1番目の実行対象部分が単位プロセッサP0において実行される(ステップS101)。
この第1番目の実行対象部分は、コプロセッサ130aに処理を依頼する内容を含むものとする。
すると、単位プロセッサP0は、コプロセッサ130aのデータレジスタにデータを書き込み、依頼する処理内容のパラメータを設定する(ステップS102)。
そして、単位プロセッサP0は、コプロセッサ130aに対し、コマンドレジスタにデータを書き込むことにより、依頼した処理を開始させる(ステップS103)。
その後、単位プロセッサP0は、OSに対し、タスクの切り替え要求を行い、現在実行されているタスク(ステップS101において実行が開始されたタスク)の優先度を下げるよう設定する(ステップS104)。
なお、この時点で、現在のタスクより優先度の高いタスクが発生すると、タスクの切り替えが起こる可能性があるが、ここでは、現在のタスクが継続して実行されるものとする。また、処理の依頼後、処理結果の取得を優先して行いたい場合等は、現在のタスクの優先度を維持したり、より高く設定したりすることも可能である。
続いて、単位プロセッサP0は、アプリケーションのプログラムにおける第2番目の実行対象部分を実行する(ステップS105)。
第2番目の実行対象部分の処理が終了すると、単位プロセッサP0は、コプロセッサ130aのステータスレジスタを読み出し(ステップS106)、コプロセッサ130aの動作が完了し、依頼した処理が終了しているか否かの判定を行う(ステップS107)。
ステップS107において、コプロセッサ130aの動作が完了していないと判定した場合、単位プロセッサP0は、ステップS106の処理に戻り、コプロセッサ130aの動作が完了したと判定した場合、OSに対し、タスクの切り替え要求を行い、現在実行されているタスクの優先度を上げるよう設定する(ステップS108)。
そして、単位プロセッサP0は、コプロセッサ130aの処理結果を用いて、アプリケーションのプログラムにおける第3番目の実行対象部分を実行し(ステップS109)、その後、ステップS101において実行が開始されたタスクの処理が終了する。
次に、CPU10においてタスクの切り替え要求が発生した場合のOSの処理について説明する。
図5は、タスクの切り替え要求が発生した場合のOSの処理を示すフローチャートである。なお、図5に示す処理は、図3および図4に示すフローチャートにおいて共通のものであり、ここでは単位プロセッサP1がOSを実行しているものとして説明する。また、図5に示すフローチャートは、OSを実行している単位プロセッサP1がタスク状態制御部15と連携することによって実行される。
図5において、タスクの切り替え要求が発生すると、OSを実行している単位プロセッサP1は、割り込み要求が発生しているか否かの判定を行い(ステップS201)、割り込み要求が発生していると判定した場合、割り込み処理の開始手続き(コンテキストの退避、割り込みハンドラの実行等)を実行し(ステップS202)、続いて割り込み処理を実行する(ステップS203)。
割り込み処理が終了すると、単位プロセッサP1は、割り込み処理の終了手続き(コンテキストの復帰等)を実行し(ステップS204)、ステップS201の処理に移行する。
また、ステップS201において、割り込み要求が発生していないと判定した場合、単位プロセッサP1は、排他制御処理部13に対し、排他制御要求を出力する(ステップS205)。
そして、単位プロセッサP1は、排他制御要求が受け入れられたか否かの判定を行い(ステップS206)、排他制御要求が受け入れられていないと判定した場合、ステップS205の処理に移行する。
一方、ステップS206において、排他制御要求が受け入れられたと判定した場合、単位プロセッサP1は、タスク状態制御部15のREADYキューの中から実行可能状態(READY状態)のタスクを検索する(ステップS207)。
ステップS207において、単位プロセッサP1は、READY状態のタスクが存在するか否かの判定を行い(ステップS208)、READY状態のタスクが存在しないと判定した場合、タスクの切り替えを行う必要がないことから、排他制御処理部13に通知して排他制御を終了する(ステップS209)。
一方、ステップS208において、READY状態のタスクが存在すると判定した場合、単位プロセッサP1は、CPU10の単位プロセッサP0〜P3において、最低の優先度のタスクを実行している単位プロセッサを検索し(ステップS210)、単位プロセッサP0〜P3においてRUN状態にあるタスクの最低優先度と、READYキュー内のREADY状態にあるタスクの優先度とを比較する(ステップS211)。
ステップS211において、単位プロセッサP0〜P3においてRUN状態にあるタスクの最低優先度が、READY状態にある全てのタスクの優先度より高いと判定した場合、単位プロセッサP1は、ステップS209の処理に移行する。
一方、ステップS211において、単位プロセッサP0〜P3においてRUN状態にあるタスクの最低優先度が、READY状態にあるいずれかのタスクの優先度より低いと判定した場合、単位プロセッサP1は、RUN状態にある最低優先度のタスクを実行している単位プロセッサのコンテキストを退避し(ステップS212)、RUN状態にある最低優先度のタスクより優先度の高いREADY状態のタスクのコンテキストを単位プロセッサに復帰させて(ステップS213)、ステップS209の処理に移行する。
ステップS209の後、単位プロセッサP1は、単位プロセッサP0〜P3においてタスクの実行を開始させ(ステップS214)、タスクの切り替え処理を終了する。
以上のように、本実施の形態に係る携帯電話1においては、CPU10の単位プロセッサP0〜P3それぞれから、周辺装置40a〜40dおよびコプロセッサ130a,130bといった周辺ハードウェアに処理を依頼することができる。
したがって、周辺ハードウェアに処理を依頼するタスクをいずれの単位プロセッサP0〜P3においても実行することが可能となり、マルチプロセッサであるCPU10と周辺ハードウェアとを効率的に協調動作させることが可能となる。
また、周辺ハードウェアに処理の依頼を行ったタスクは、排他制御処理部13に排他制御要求を出力し、排他制御権を取得した上で、自タスクの優先度を変更する。そして、次のディスパッチが発生した場合に、タスク状態制御部15が管理する全てのタスクにおいて、より優先度の高いタスクが単位プロセッサP0〜P3に割り当てられる。
したがって、周辺ハードウェアに処理を依頼したタスクが処理結果を取得するまでの待機中に、自タスクをより適切な優先度に設定でき、CPU10において発生しているタスク全体をより効率的に処理することが可能となる。
また、本実施の形態においては、本発明の適用対象として携帯電話を例に挙げて説明したが、各種周辺装置あるいはコプロセッサを備えた装置に適用することが可能である。
図6は、本発明の適用対象の一例を示す図であり、DCT処理回路、ジグザグスキャンのためのDMA(Direct Memory Access)コントローラ、量子化・逆量子化(Q/IQ)回路、メモリを備える5つの周辺装置と、可変長符号化・復号化(VLD/VLC)回路、ビットシフト回路、メモリを備える1つのコプロセッサとがマルチプロセッサに接続された、画像処理装置を示している。
この画像処理装置では、画像のフレームメモリに記憶されたフレームデータが8画素×8画素のブロックで処理され、アプリケーションの1つの形態として、5つの周辺装置それぞれにブロック(フレームの1列分)を並列して処理させ、1つのコプロセッサが、5つの周辺装置の処理結果をまとめて処理することが可能である。この場合、5つの周辺装置に処理を依頼している5つのタスク、コプロセッサに処理を依頼しているタスク、および、フレームデータ全体の処理を管理するタスクの合計7つのタスクが並列処理されていることとなる。
また、アプリケーションの他の形態として、ブロック毎に一貫した処理を行うタスクを全ブロック分発生させ、OSが全タスクを管理しつつ、各タスクが、いずれかの周辺装置による処理とコプロセッサによる処理とをブロックに施すことが可能である。この場合、全ブロック数分のタスクが並列処理されていることとなる。
なお、本発明は、マルチスレッドプロセッサあるいはマルチタスクプロセッサと呼ばれる各種実装形態のプロセッサに適用可能であるが、例えば、1チップ上に複数のプロセッサコアが実装され、プロセッサの構成要素の少なくとも一部をこれら複数のプロセッサコアが共用する形態のマルチプロセッサ(いわゆる密結合型のマルチタスクプロセッサ)において、特に有効となる。
図7は、本発明の適用対象となるマルチプロセッサの構成例を示す図である。
図7に示すマルチプロセッサは、メモリ制御部およびALUを複数のプロセッサコアが共用する形態であり、それぞれのプロセッサコアにプログラムカウンタおよびステータスレジスタ等の制御用レジスタが備えられていると共に、マルチプロセッサ全体を制御するためのプログラム制御部および制御用レジスタも別途備えられている。なお、図4に示すように、各プロセッサコアで共用するコンテキストキャッシュ等を備えても良い。
このような構成のマルチプロセッサの場合、各プロセッサコアが本実施の形態における単位プロセッサの機能を実現するものとなり、マルチプロセッサ全体を制御するプログラム制御部において、排他制御処理部13の機能を実現するものとなる。
本発明に係る携帯電話1の機能構成を示すブロック図である。 CPU10の内部構成を示すブロック図である。 単位プロセッサP0において実行されているアプリケーションの処理を示すフローチャート(割り込みによって処理結果が返される場合)である。 単位プロセッサP0において実行されているアプリケーションの処理を示すフローチャート(ポーリングによって処理結果を取得する場合)である。 タスクの切り替え要求が発生した場合のOSの処理を示すフローチャートである。 本発明の適用対象の一例である画像処理装置を示す図である。 本発明の適用対象となるマルチプロセッサの構成例を示す図である。
符号の説明
1 携帯電話、10 CPU、11 外部割り込み制御部、12 メモリ制御部、12a、コプロセッサ制御部、13 排他制御処理部、14 全体プログラム制御部、14a 割り込みベクタ、14b 全体制御部、14c 全体ステータスレジスタ、15 タスク状態制御部、20 フラッシュROM、30 メモリ、40a〜40d 周辺装置、50 無線部、60 IrDA部、70 オーディオ、80 タイマ、90 USBインターフェース部、100 キー操作部、110 LCD、120 カメラ部、130a,130b コプロセッサ、P0〜P3 単位プロセッサ、101〜401 ステータスレジスタ、102〜402 プログラムカウンタ、103〜403 割り込み処理用プログラムカウンタ、104〜404 割り込み処理用ステータスレジスタ

Claims (11)

  1. タスクあるいはスレッドを実行するプロセッサ部を複数備え、周辺ハードウェアと接続されたプロセッサを含む並列処理装置であって、
    タスクあるいはスレッドを実行している前記プロセッサ部それぞれが、実行中のタスクあるいはスレッドの実行内容に応じて周辺ハードウェアに処理依頼を行うことを特徴とする並列処理装置。
  2. 前記周辺ハードウェアは、処理対象となるデータを格納するデータレジスタと、処理内容を示すコマンドを格納するコマンドレジスタとを備え、
    前記周辺ハードウェアに処理を行わせる前記プロセッサ部が、前記データレジスタに処理対象となるデータを書き込むと共に、前記コマンドレジスタにコマンドを書き込むことによって、前記処理依頼を行うことを特徴とする請求項1記載の並列処理装置。
  3. 命令セットにおいて、前記処理依頼を行う命令を発行させる所定命令が予め用意され、
    前記プロセッサ部は、該所定命令を実行することにより、前記周辺ハードウェアに対して前記処理依頼を行う命令を発行することを特徴とする請求項1または2記載の並列処理装置。
  4. 前記周辺ハードウェアには、メモリ領域の所定アドレスが割り当てられ、
    前記プロセッサ部は、前記周辺ハードウェアに割り当てられたメモリ領域へのストア命令を実行することにより、前記処理依頼を行うことを特徴とする請求項1または2記載の並列処理装置。
  5. 前記処理依頼を受けた前記周辺ハードウェアは、依頼された処理が終了した場合に、処理依頼を行った前記プロセッサ部に対する割り込み信号を出力し、
    前記処理依頼を行った前記プロセッサ部は、該割り込み信号によって、依頼した処理の結果を取得することを特徴とする請求項1から4のいずれか1項に記載の並列処理装置。
  6. 前記処理依頼を行った前記プロセッサ部は、依頼先である前記周辺ハードウェアに対し、ポーリングを行うことにより、依頼した処理の結果を取得することを特徴とする請求項1から4のいずれか1項に記載の並列処理装置。
  7. 前記複数のプロセッサ部におけるいずれかのプロセッサ部に対し、タスクあるいはスレッドの優先度の決定を排他的に行うための排他制御権を与える排他制御処理部と、
    発生しているタスクあるいはスレッドの実行状態を管理するタスク状態管理部とを備え、
    前記処理依頼を行ったタスクあるいはスレッドが、前記排他制御権を取得することにより自タスクの優先度を変更し、
    前記タスク状態管理部によって管理されている実行状態に応じて、タスクあるいはスレッドの切り替えを行うことを特徴とする請求項1から6のいずれか1項に記載の並列処理装置。
  8. 前記処理依頼を行ったタスクあるいはスレッドは、前記排他制御権を取得した後、自タスクあるいはスレッドの優先度を下げることを特徴とする請求項7記載の並列処理装置。
  9. 前記周辺ハードウェアは、所定処理を実行する周辺装置であることを特徴とする請求項1から8のいずれか1項に記載の並列処理装置。
  10. 前記周辺ハードウェアは、特定の処理を担うことによりプロセッサを補助するコプロセッサであることを特徴とする請求項1から8のいずれか1項に記載の並列処理装置。
  11. タスクあるいはスレッドを実行するプロセッサ部を複数備え、周辺ハードウェアと接続されたプロセッサを含む並列処理装置における情報処理方法であって、
    タスクあるいはスレッドを実行している前記プロセッサ部それぞれから、実行中のタスクあるいはスレッドの実行内容に応じて周辺ハードウェアに処理依頼を行うことを特徴とする情報処理方法。
JP2005079314A 2005-03-18 2005-03-18 並列処理装置および情報処理方法 Pending JP2006260377A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005079314A JP2006260377A (ja) 2005-03-18 2005-03-18 並列処理装置および情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005079314A JP2006260377A (ja) 2005-03-18 2005-03-18 並列処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JP2006260377A true JP2006260377A (ja) 2006-09-28

Family

ID=37099514

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005079314A Pending JP2006260377A (ja) 2005-03-18 2005-03-18 並列処理装置および情報処理方法

Country Status (1)

Country Link
JP (1) JP2006260377A (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011044722A1 (zh) * 2009-10-13 2011-04-21 Cai Guangxian 单位协同处理装置和并行协同处理装置及其信息处理方法vcxzvfdsgf
US8055882B2 (en) 2007-07-20 2011-11-08 Renesas Electronics Corporation Multiplexing commands from processors to tightly coupled coprocessor upon state based arbitration for coprocessor resources
US8307141B2 (en) 2008-12-10 2012-11-06 Fujitsu Limited Multi-core processor, control method thereof, and information processing apparatus
JP2014066165A (ja) * 2012-09-25 2014-04-17 Toyota Motor Corp エンジン制御装置
US9389923B2 (en) 2012-12-14 2016-07-12 Fujitsu Limited Information processing device and method for controlling information processing device
US10073810B2 (en) 2015-10-07 2018-09-11 Fujitsu Limited Parallel processing device and parallel processing method
US10534641B2 (en) 2016-05-30 2020-01-14 Kyocera Document Solutions Inc. Electronic device that uses hardware corresponding to priority level of processor usage
JP2020027613A (ja) * 2018-08-10 2020-02-20 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 人工知能チップ及び人工知能チップに用いられる命令実行方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61206064A (ja) * 1985-03-08 1986-09-12 Fuji Electric Co Ltd マルチコンピユ−タシステムにおける共通入出力装置制御方式
JPH09160790A (ja) * 1995-12-12 1997-06-20 Matsushita Electric Ind Co Ltd タスクスケジュール装置及びタスクスケジュール方法
JP2001249808A (ja) * 1999-12-27 2001-09-14 Fujitsu Ltd 情報処理装置
JP2003029957A (ja) * 2001-07-16 2003-01-31 Seiko Epson Corp 情報処理装置
JP2004297632A (ja) * 2003-03-28 2004-10-21 Renesas Technology Corp マイクロプロセッサ及び携帯通信端末
JP2004302837A (ja) * 2003-03-31 2004-10-28 Nec Corp シングルプロセッサ向けosによる並列処理システム、並列処理プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61206064A (ja) * 1985-03-08 1986-09-12 Fuji Electric Co Ltd マルチコンピユ−タシステムにおける共通入出力装置制御方式
JPH09160790A (ja) * 1995-12-12 1997-06-20 Matsushita Electric Ind Co Ltd タスクスケジュール装置及びタスクスケジュール方法
JP2001249808A (ja) * 1999-12-27 2001-09-14 Fujitsu Ltd 情報処理装置
JP2003029957A (ja) * 2001-07-16 2003-01-31 Seiko Epson Corp 情報処理装置
JP2004297632A (ja) * 2003-03-28 2004-10-21 Renesas Technology Corp マイクロプロセッサ及び携帯通信端末
JP2004302837A (ja) * 2003-03-31 2004-10-28 Nec Corp シングルプロセッサ向けosによる並列処理システム、並列処理プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055882B2 (en) 2007-07-20 2011-11-08 Renesas Electronics Corporation Multiplexing commands from processors to tightly coupled coprocessor upon state based arbitration for coprocessor resources
US8307141B2 (en) 2008-12-10 2012-11-06 Fujitsu Limited Multi-core processor, control method thereof, and information processing apparatus
WO2011044722A1 (zh) * 2009-10-13 2011-04-21 Cai Guangxian 单位协同处理装置和并行协同处理装置及其信息处理方法vcxzvfdsgf
JP2014066165A (ja) * 2012-09-25 2014-04-17 Toyota Motor Corp エンジン制御装置
US9389923B2 (en) 2012-12-14 2016-07-12 Fujitsu Limited Information processing device and method for controlling information processing device
US10073810B2 (en) 2015-10-07 2018-09-11 Fujitsu Limited Parallel processing device and parallel processing method
US10534641B2 (en) 2016-05-30 2020-01-14 Kyocera Document Solutions Inc. Electronic device that uses hardware corresponding to priority level of processor usage
JP2020027613A (ja) * 2018-08-10 2020-02-20 ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッド 人工知能チップ及び人工知能チップに用いられる命令実行方法
JP7011627B2 (ja) 2018-08-10 2022-01-26 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド 人工知能チップ及び人工知能チップに用いられる命令実行方法
US11372673B2 (en) 2018-08-10 2022-06-28 Beijing Baidu Netcom Science And Technology Co., Ltd. Artificial intelligence chip and instruction execution method for artificial intelligence chip

Similar Documents

Publication Publication Date Title
JP4148223B2 (ja) プロセッサおよび情報処理方法
KR100746797B1 (ko) 프로세서 및 정보처리 방법
JP2006260377A (ja) 並列処理装置および情報処理方法
US20070130446A1 (en) Processor apparatus including specific signal processor core capable of dynamically scheduling tasks and its task control method
JP2005202767A (ja) プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
JP5673672B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
US9043806B2 (en) Information processing device and task switching method
JP4609113B2 (ja) プロセッサ
JP2008123157A (ja) プロセッサ及び割込み制御方法
JP2007188397A (ja) マルチプロセッサシステム及びマルチプロセッサシステムの割込み制御方法をコンピュータに実行させるためのプログラム
KR20070117605A (ko) 멀티프로세서 시스템 및 멀티프로세서 시스템의 제어 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
US7246220B1 (en) Architecture for hardware-assisted context switching between register groups dedicated to time-critical or non-time critical tasks without saving state
JP4441592B2 (ja) 並列処理装置及び排他制御方法
JP3768516B1 (ja) マルチプロセッサシステムとそのシステムにおけるプログラム実行方法
JP4389797B2 (ja) プロセッサおよび情報処理方法
JP5017784B2 (ja) プロセッサ及びこのプロセッサ適用される割込み処理制御方法
JP4797422B2 (ja) プロセッサおよびディスパッチ制御方法
JP5376042B2 (ja) マルチコアプロセッサシステム、スレッド切り替え制御方法、およびスレッド切り替え制御プログラム
KR20220103005A (ko) 이미지 로딩 방법 및 장치
JPH03149627A (ja) マルチタスクモニタのdma制御方法
JP2006285719A (ja) 情報処理装置および情報処理方法
JP2014017013A (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JPS6146532A (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: 20080312

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091023

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091110

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100621

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100831