JP4756599B2 - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP4756599B2
JP4756599B2 JP2006183973A JP2006183973A JP4756599B2 JP 4756599 B2 JP4756599 B2 JP 4756599B2 JP 2006183973 A JP2006183973 A JP 2006183973A JP 2006183973 A JP2006183973 A JP 2006183973A JP 4756599 B2 JP4756599 B2 JP 4756599B2
Authority
JP
Japan
Prior art keywords
cpu core
register
register file
contents
core
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
JP2006183973A
Other languages
English (en)
Other versions
JP2008015638A5 (ja
JP2008015638A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006183973A priority Critical patent/JP4756599B2/ja
Publication of JP2008015638A publication Critical patent/JP2008015638A/ja
Publication of JP2008015638A5 publication Critical patent/JP2008015638A5/ja
Application granted granted Critical
Publication of JP4756599B2 publication Critical patent/JP4756599B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Description

本発明は、複数のCPUコアを有するデータ処理装置に関し、特にマルチCPUコアのタスクのスケジューリングを容易とするのに有益な技術に関する。
マイクロコンピュータのようなデータ処理装置においては、割込み例外処理や、マルチタスクでのタスク切換え時には、元の状態に復帰するために汎用レジスタもしくはレジスタファイルのステータスレジスタ等のレジスタファイルのデータ退避が行なわれる。退避先としては、外部のメインメモリ等のスタック領域を利用することも可能であるが、レジスタバンクと呼ばれる専用レジスタバンクを用いることでレジスタファイルの退避及び復帰を高速化することができ、リアルタイムな応答を実現できるようになる。
下記特許文献1にはレジスタバンク方式のシングルチップでオーバーフローフラグを設けることにより、レジスタバンクがすべて使用状態であってもスタック領域に退避することが出来るようにすることで、効率的に割込み応答が可能なレジスタバンク方式を実現している。
一方、下記非特許文献1には、デュアルCPUコアをチップ上に搭載したプロセッサが記載されている。
特開2004−157636号公報 Samuel Naffziger et al,"The Implementation of a 2−Core, Multi−Threaded Itanium Family Processor", IEEE JOURNAL OF SOLID−STATE CIRCUITS, VOL. 41, N.1 JANUARY 2006, PP.197−209.
マルチタスク環境での近年の処理要求の増大に対応するために、CPU(中央処理ユニット)を複数備えたマルチCPUコアのデータ処理装置が検討されている。
本発明に先立って本発明者等は、メモリを共有するマルチコアCPUにおいて、割込み等の高速切り換え処理するデータ退避のための前記レジスタバンクを複数のCPUで共有する共有レジスタバンクを採用することを検討した。しかしながら、マルチコアCPUで各CPUコアに任意にタスクを実行させていくと、条件によってタスクのスケジューリングの問題が発生することが判明した。
具体的には例えば、共有レジスタバンクを有するマルチコアCPUにおいて、2つのCPUコアの一方のCPUコアが優先度の高い処理を行なっている間に、他方のCPUコアに一方のCPUコアよりも優先度の低い複数の処理要求が連続して発生したとする。スーパースカラー・アーキテクチャー等によるマルチコアCPUにおいては、一方のCPUコアでの優先度の高い処理と他方のCPUコアでの優先度の低い処理とがそれぞれのCPUコアのレジスタファイルを使用することで実行可能であり、2つの処理の実行のために内蔵RAM、外部のメインメモリ、入出力装置、周辺装置のハードウェアリソースの使用の競合が発生せずに、優先度の高い処理の結果と優先度の低い処理の結果とが独立であれば、2つの処理は並列に実行可能である。
しかし、2つの処理並列の実行条件が満足されなければ、他方のCPUコアでの優先度の低い処理は実行されることができず、中断されることとなる。この中断に際して、最初は他方のCPUコアのレジスタファイルの内容は、共有レジスタバンクに退避される。しかし、処理要求の連続発生によって、退避先の共有レジスタバンクがオーバーフローする。すると、他方のCPUコアのレジスタバンクに中断された処理が、内蔵RAMや外部のメインメモリの複数のスタック領域に退避されることになる。しかる後に一方のCPUコアが優先度の高い処理が終了した時点で、新たな処理要求が無い場合には、処理のストールが生じてタスクのスケジューリングが不可能となる。これは新たな処理要求が与えられていない一方のCPUコアが、他方のCPUコアに関して処理待ちの優先度の低い複数の処理要求が外部のメインメモリの複数のスタック領域に退避されていることを認識できないことに起因している。
その結果、他方のCPUコアに関しては処理待ちの優先度の低い複数の処理要求が外部のメインメモリの複数のスタック領域に退避されているにもかかわらず、新たな処理要求が与えられていない一方のCPUコアはアイドル状態(ストール状態)となってしまうことが判明した。
本発明は本発明に先立って本発明者等によって行われた上記のような検討の結果を基にしてなされたものであり、その目的とするところは、マルチCPUコアのデータ処理装置においてタスクのスケジューリングを容易とすることにある。
また本発明のその他の目的とするところは、マルチCPUコアのデータ処理装置において優先度の高い処理を行なっていた一方のCPUコアが優先度の高い処理が終了した時点で、一方のCPUコアに新たな処理要求が与えられていない場合の一方のCPUコアでのアイドル状態(ストール状態)を回避することにある。
本発明の前記並びにその他の目的と新規な特徴とは、本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。
すなわち、本発明のひとつの形態によるデータ処理装置(1)は、第1CPUコア(2)と、第2CPUコア(3)とを具備する。前記第1CPUコア(2)は第1レジスタファイル(21)と第1命令デコーダ・演算器(22)とを含み、前記第2CPUコア(3)は第2レジスタファイル(31)と第2命令デコーダ・演算器(32)とを含んでいる。前記データ処理装置(1)は、前記第1CPUコア(2)の前記第1レジスタファイル(21)の内容と前記第2CPUコア(3)は前記第2レジスタファイル(31)の内容とを格納する共有メモリ(5)を更に具備する。
前記第1CPUコア(2)は前記第2CPUコア(3)の前記第2レジスタファイル(31)内部のスタックポインタ(SP、R15)の値をあたかも前記第1CPUコア(2)のスタックポインタの値として処理するための第1記憶回路((Vtl_SP)23)を含み、前記第2CPUコア(3)は前記第1CPUコア(2)の前記第1レジスタファイル(21)内部のスタックポインタ(SP、R15)の値をあたかも前記第2CPUコア(3)のスタックポインタの値として処理するための第2記憶回路((Vtl_SP)33)を含んでいる。
前記第1CPUコア(2)と前記第2CPUコア(3)との一方のCPUコア(第2CPUコア(3))が優先度の高い処理を実行している間に、前記第1CPUコア(2)と前記第2CPUコア(3)との他方のCPUコア(第1CPUコア(2))に前記一方のCPUコア(第2CPUコア(3))が実行している前記処理よりも優先度の低い要求が発生することによって、優先度の低い前記要求は前記他方のCPUコア(第1CPUコア(2))によって実行されることなく中断され、前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))のプログラムカウンタ(PC)の内容とステータスレジスタ(SR)の内容とがスタック領域に退避される一方、前記他方のCPUコア(第1CPUコア(2))のレジスタファイル(第1レジスタファイル(21))のその他の内容が前記共有メモリ(5)に退避される。
前記一方のCPUコア(第2CPUコア(3))が優先度の高い前記処理を完了すると、前記一方のCPUコア(第2CPUコア(3))は前記共有メモリ(5)に退避された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記その他の内容を前記一方のCPUコア(第2CPUコア(3))のレジスタファイル(第2レジスタファイル(31))に格納して、前記一方のCPUコア(第2CPUコア(3))は、前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))のスタックポインタ(SP)の内容を前記第1記憶回路((Vtl_SP)23)と前記第2記憶回路((Vtl_SP)33)の一方の記憶回路(第2記憶回路(33))に転送する。次に、前記他方のCPUコア(第1CPUコア(2))によって中断された前記処理を前記一方のCPUコア(第2CPUコア(3))が再開して実行する(図1参照)。
本発明の前記ひとつの形態による手段によれば、マルチCPUコアのデータ処理装置において優先度の高い処理を行なっていた一方のCPUコア(第2CPUコア(3))が優先度の高い処理が終了した時点で、一方のCPUコア(第2CPUコア(3))に新たな処理要求が与えられていない場合に、他方のCPUコア(第1CPUコア(2))によって中断された処理を一方のCPUコア(第2CPUコア(3))が再開して実行するものである。その結果、一方のCPUコア(第2CPUコア(3))でのアイドル状態(ストール状態)を回避することが可能となる。
本発明の1つの好適な形態によるデータ処理装置(1)は、前記第1CPUコア(2)と前記第2CPUコア(3)とに接続されたシステムコントローラ(4)を更に具備する。前記システムコントローラ(4)は、第1フラグ情報(BL0)と第2フラグ情報(BL1)とを格納する。
前記一方のCPUコア(第2CPUコア(3))が優先度の高い前記処理を完了すると、前記一方のCPUコア(第2CPUコア(3))は前記第1フラグ情報(BL0)と前記第2フラグ情報(BL1)との一方のフラグ情報(BL1)を所定の状態(”1”)にセットする。前記一方のフラグ情報(BL1)が前記所定の状態(”1”)にセットされることに応答して、前記他方のCPUコア(第1CPUコア(2))によって中断された前記処理を前記他方のCPUコア(第1CPUコア(2))が再開して実行することが禁止され、前記他方のCPUコア(第1CPUコア(2))によって中断された前記処理を前記一方のCPUコア(第2CPUコア(3))が再開して実行することが許可される。
本発明の他の1つの更に好適な形態によるデータ処理装置(1)では、前記システムコントローラ(4)は前記第1CPUコア(2)の前記第1レジスタファイル(21)の内容を前記共有メモリ(5)の第1領域(Regbank0、2、4…)に格納する一方、前記第2CPUコア(3)の前記第2レジスタファイル(31)の内容を前記共有メモリ(5)の前記第1領域(Regbank0、2、4…)と異なる第2領域(Regbank1、3、5…)に格納するアドレス管理ユニット(41、42…48、49)を含む。
格納する共有バンクメモリ(5)を更に具備する(図1参照)。
本発明の前記他の1つの好適な形態による手段によれば、相手側のCPUコアからの前記共有メモリ(5)退避データの上書きによるデータ破壊を回避することが可能である。
本発明の最も具体的な形態によるデータ処理装置(1)は、前記第1CPUコア(2)と前記第2CPUコア(3)とに接続された内部メモリ(RAM8)を更に具備する一方、メインメモリと接続可能である。
前記内部メモリ(RAM8)と前記メインメモリとの少なくともいずれか一方に、前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容とが退避される前記スタック領域が形成される。
また、本発明の他のひとつの形態によるデータ処理装置(1)は、第1CPUコア(2)と、第2CPUコア(3)とを具備する。前記第1CPUコア(2)は第1レジスタファイル(21)と第1命令デコーダ・演算器(22)とを含み、前記第2CPUコア(3)は第2レジスタファイル(31)と第2命令デコーダ・演算器(32)とを含んでいる。前記データ処理装置(1)は、前記第1CPUコア(2)の前記第1レジスタファイル(21)の内容と前記第2CPUコア(3)は前記第2レジスタファイル(31)の内容とを格納する共有メモリ(5)を更に具備する。
前記第1CPUコア(2)は前記第2CPUコア(3)の前記第2レジスタファイル(31)内部のスタックポインタ(SP、R15)の値を格納するための第1記憶回路((Vtl_SP)23)を含み、前記第2CPUコア(3)は前記第1CPUコア(2)の前記第1レジスタファイル(21)内部のスタックポインタ(SP、R15)の値を格納するための第2記憶回路((Vtl_SP)33)を含んでいる。
前記第1CPUコア(2)と前記第2CPUコア(3)との一方のCPUコア(第2CPUコア(3))が優先度の高い処理を実行している間に、前記第1CPUコア(2)と前記第2CPUコア(3)との他方のCPUコア(第1CPUコア(2))に前記一方のCPUコア(第2CPUコア(3))が実行している前記処理よりも優先度の低い要求が発生することによって、優先度の低い前記要求は前記他方のCPUコア(第1CPUコア(2))によって実行されることなく中断され、前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))のプログラムカウンタ(PC)の内容とステータスレジスタ(SR)の内容とがスタック領域に退避される一方、前記他方のCPUコア(第1CPUコア(2))のレジスタファイル(第1レジスタファイル(21))のその他の内容が前記共有メモリ(5)に退避される。
前記一方のCPUコア(第2CPUコア(3))が優先度の高い前記処理を完了すると、前記一方のCPUコア(第2CPUコア(3))は前記共有メモリ(5)に退避された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記その他の内容を読み出して、読み出された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記その他の内容を前記一方のCPUコア(第2CPUコア(3))のレジスタファイル(第2レジスタファイル(31))に格納する処理と、前記一方のCPUコア(第2CPUコア(3))は、前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))のスタックポインタ(SP)の内容を前記第1記憶回路((Vtl_SP)23)と前記第2記憶回路((Vtl_SP)33)の一方の記憶回路(第2記憶回路(33))に転送する処理と、前記一方のCPUコア(第2CPUコア(3))は、前記一方の記憶回路(第2記憶回路(33))に転送された前記スタックポインタ(SP)の前記内容で指示される前記スタック領域から前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容とを読み出して、読み出された前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容とを前記一方のCPUコア(第2CPUコア(3))の前記レジスタファイル(第2レジスタファイル(31))のプログラムカウンタ(PC)とステータスレジスタ(SR)とにそれぞれ格納する処理とを実行する。
その後、前記一方のCPUコア(第2CPUコア(3))は、前記一方のCPUコア(第2CPUコア(3))の前記レジスタファイル(第2レジスタファイル(31))に格納された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記その他の内容と前記一方のCPUコア(第2CPUコア(3))の前記レジスタファイル(第2レジスタファイル(31))の前記プログラムカウンタ(PC)と前記ステータスレジスタ(SR)とにそれぞれ格納された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容とを使用することによって、前記他方のCPUコア(第1CPUコア(2))によって中断された前記処理を前記一方のCPUコア(第2CPUコア(3))が再開して実行する(図1参照)。
本発明の前記他のひとつの形態による手段によれば、マルチCPUコアのデータ処理装置において優先度の高い処理を行なっていた一方のCPUコア(第2CPUコア(3))が優先度の高い処理が終了した時点で、一方のCPUコア(第2CPUコア(3))に新たな処理要求が与えられていない場合に、他方のCPUコア(第1CPUコア(2))によって中断された処理を一方のCPUコア(第2CPUコア(3))が再開して実行するものである。その結果、一方のCPUコア(第2CPUコア(3))でのアイドル状態(ストール状態)を回避することが可能となる。
本発明の他の1つの好適な形態によるデータ処理装置(1)は、前記第1CPUコア(2)と前記第2CPUコア(3)とに接続されたシステムコントローラ(4)を更に具備する。前記システムコントローラ(4)は、第1フラグ情報(BL0)と第2フラグ情報(BL1)とを格納する。
前記一方のCPUコア(第2CPUコア(3))が優先度の高い前記処理を完了すると、前記一方のCPUコア(第2CPUコア(3))は前記第1フラグ情報(BL0)と前記第2フラグ情報(BL1)との一方のフラグ情報(BL1)を所定の状態(”1”)にセットする。
前記一方のフラグ情報(BL1)が前記所定の状態(”1”)にセットされることに応答して、前記他方のCPUコア(第1CPUコア(2))による前記共有メモリ(5)に退避された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記その他の内容の読み出しが禁止される一方、前記一方のCPUコア(第2CPUコア(3))による前記共有メモリ(5)に退避された前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記その他の内容の読み出しが許可され、前記他方のCPUコア(第1CPUコア(2))による前記スタック領域から前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容とを読み出しが禁止されて、前記一方のCPUコア(第2CPUコア(3))による前記スタック領域から前記他方のCPUコア(第1CPUコア(2))の前記レジスタファイル(第1レジスタファイル(21))の前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容との読み出しが許可され、読み出された前記プログラムカウンタ(PC)の前記内容と前記ステータスレジスタ(SR)の前記内容とを前記一方のCPUコア(第2CPUコア(3))の前記レジスタファイル(第2レジスタファイル(31))のプログラムカウンタ(PC)とステータスレジスタ(SR)とにそれぞれ格納する(図1参照)。
本発明の前記他の1つの好適な形態による手段によれば、マルチタスクのスケジューリングが容易となる。
本発明の他の1つの更に好適な形態によるデータ処理装置(1)では、前記一方のフラグ情報(BL1)が前記所定の状態(”1”)にセットされることに応答して、前記他方のCPUコア(第1CPUコア(2))によって中断された前記処理を前記他方のCPUコア(第1CPUコア(2))が再開して実行することが禁止され、前記他方のCPUコア(第1CPUコア(2))によって中断された前記処理を前記一方のCPUコア(第2CPUコア(3))が再開して実行することが許可される。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。
すなわち、本発明によれば、マルチCPUコアのデータ処理装置においてタスクのスケジューリングを容易とすることができる。
また、本発明によれば、マルチCPUコアのデータ処理装置において優先度の高い処理を行なっていた一方のCPUコアが優先度の高い処理が終了した時点で、一方のCPUコアに新たな処理要求が与えられていない場合の一方のCPUコアでのアイドル状態(ストール状態)を回避することも可能である。
≪マルチCPUコアのデータ処理装置の構成≫
図1は、本発明の1つの実施形態によるマルチCPUコアのデータ処理装置を示す図である。
同図に示すように、マイクロコンピュータ1は、第1CPUコア2と第2CPUコア3との2つのCPUコアからなるデュアルコアプロセッサである。第1CPUコア2と第2CPUコア3には、割り込みやリセットによるCPUの動作制御を行うシステムコントローラ4が接続されている。
第1CPUコア2は第1レジスタファイル21と第1命令デコーダ・演算器22とを含み、第2CPUコア3は第2レジスタファイル31と第2命令デコーダ・演算器32とを含んでいる。
第1CPUコア2は専用の第1CPUバス12に接続されて、第2CPUコア3は専用の第2CPUバス13に接続され、第1CPUコア2と第2CPUコア3とは共有のレジスタバンクバス11を介してバンクメモリ5に接続されている。このバンクメモリ5は、第1CPUコア2の第1レジスタファイル21と第2CPUコア3の第2レジスタファイル31の退避及び復帰を高速化するレジスタバンクReg_Bkを含んでいる。
また、特に本発明の1つの実施形態では、第1CPUコア2は第2CPUコア3の第2レジスタファイル31内部のスタックポインタSPの値をあたかも自己のスタックポインタの値として処理するための第1仮想スタックポインタ(Vtl_SP)23を含み、同様に第2CPUコア3は第1CPUコア2の第1レジスタファイル21内部のスタックポインタSPの値をあたかも自己のスタックポインタの値として処理するための第2仮想スタックポインタ(Vtl_SP)33を含んでいる。良く知られているように、スタックポインタは、サブルーチン実行時や割り込み処理時にレジスタファイルや汎用レジスタの内容を退避するメモリのスタック領域の最上位のアドレスを示すものである。
第1CPUバス12と第2CPUバス13には、デュアルポートの不揮発性フラッシュメモリ等のリードオンリーメモリ(ROM)7と、デュアルポートのスタティックランダムアクセスメモリ等のランダムアクセスメモリ(RAM)8と、バスステートコントローラ9とが接続されている。バスステートコントローラ9はシステムバス14にも接続され、システムバス14には割り込みコントローラ6と入出力ポート10とが接続されている。従って、第1CPUコア2は第1CPUバス12を介してROM7、RAM8をアクセスして、更にバスステートコントローラ9を経由してシステムバス14に接続された割り込みコントローラ6と入出力ポート10とをアクセスすることができる。同様に、第2CPUコア3は第2CPUバス13を介してROM7、RAM8をアクセスして、更にバスステートコントローラ9を経由してシステムバス14に接続された割り込みコントローラ6と入出力ポート10とをアクセスすることができる。
割り込みコントローラ6は、外部からの割り込み要因を整理して、システムコントローラ4に通知する。RAM8は、第1CPUコア2及び第2CPUコア3の一時的記憶領域もしくはワーク領域となる。ROM7には、第1CPUコア2及び第2CPUコア3の動作プログラムが格納される。
図1の左上と右上とに第1CPUコア2の第1レジスタファイル21と第2CPUコア3の第2レジスタファイル31がそれぞれ示されている。2つの第1レジスタファイル21、31は、同一のレジスタの構成となっており、現在実行中のプログラムのメモリアドレスを指定するプログラムカウンタPCと、サブルーチンプロシージャからの戻りアドレスを格納するプロシージャレジスタPRと、グローバルベースレジスタ間接アドレッシングモードのベースアドレスを示すグローバルベースレジスタGBRと、CPUコアの状態を示すステータスレジスタSRと、乗算と積和演算の結果を格納する2つの積和レジスタMACH、MACLと、データ処理やアドレス計算に使用される16本の汎用レジスタR0…R15とを含んでいる。
16本目の汎用レジスタR15は、ハードウェアスタックポインタSPとして使用される。割り込み処理時や例外処理時でのステータスレジスタSRとプログラムカウンタPCの退避、復帰は16本目の汎用レジスタR15(SP)を用いてRAM8や入出力ポート10に接続される外部のメインメモリのスタック領域を参照して実行される。
一方、第1レジスタファイル21、31内部で、破線Sv_Reg_BKで囲まれたレジスタの内容は、オーバーフローしない限りはバンクメモリ5のレジスタバンクReg_Bkに退避され、バンクメモリ5のレジスタバンクReg_BkがオーバーフローするとRAM8や入出力ポート10に接続される外部のメインメモリのスタック領域に退避される。
図1の左下にバンクメモリ5のレジスタバンクReg_Bkの詳細が、示されている。
レジスタ退避用のレジスタバンクReg_Bkとして、メモリバンク5のメモリセルアレイに割り当てられたレジスタバンクRegbank0〜Regbankiが使用される。バンクメモリ5のレジスタバンクReg_Bkに退避されるのは、上述したように2つの第1レジスタファイル21、31の汎用レジスタR0〜R14と、グローバルベースレジスタGBRと、2つの乗算レジスタMACH、MACLと、プロシージャレジスタPR以外に、デバッグ情報としての割り込みに対するベクタ番号(IVN)とされている。
また、本実施形態では、システムコントローラ4による論理制御によって、バンクメモリ5のレジスタバンクReg_Bkの複数のレジスタバンクRegbank0〜Regbankiの内部で第1CPUコア2で割り込み発生時にレジスタ退避するためのレジスタバンクと第2CPUコア3で割り込み発生時にレジスタ退避するためのレジスタバンクとが区別される。
図1の上中央には、システムコントローラ4の詳細な構成が示されている。システムコントローラ4は、第1CPUコア2のための加減算器41、レジスタバンクレジスタ(BN0)43、演算器45、バンクロックビットレジスタ(BL0)47と、第2CPUコア3のための加減算器42、レジスタバンクレジスタ(BN1)44、演算器46、バンクロックビットレジスタ(BL1)48と、セレクタ49とから構成されている。第1CPUコア2の割り込み退避時のバンクメモリ5のレジスタバンクReg_Bkのレジスタバンクを指定するのがレジスタバンクレジスタBN0であり、第2CPUコア3の割り込み退避時のバンクメモリ5のレジスタバンクReg_Bkのレジスタバンクを指定するのがレジスタバンクレジスタBN1である。マイクロコンピュータ1のパワーオン時やパワーオンリセット時のシステム初期化時に、レジスタバンクレジスタBN0、BN1は共に“0”にリセットされる。
≪マルチCPUコアのデータ処理装置の動作≫
割り込み例外処理が発生して、第1CPUコア2からバンクメモリ5のレジスタバンクReg_Bkへの第1レジスタファィル21の所定のレジスタセットPR、GBR、MACH、MACL、R0…R14の内容のレジスタ退避要求が発生したと想定する。すると、レジスタバンクレジスタBN0の値が、演算器45によって2倍される。その演算結果がセレクタ49で選択され、レジスタバンクレジスタBN0の2倍の値が指示するバンクメモリ5のレジスタバンクRegbank0に所定のレジスタセットの内容が退避させられる。その後、レジスタバンクレジスタBN0の値は加減算器41で+1インクリメントされてレジスタバンクレジスタBN0に格納される。
第1CPUコア2からレジスタ復帰命令(RESBANK命令)が発行された場合には、レジスタバンクレジスタBN0の値はまず加減算器41で−1ディクリメントされてレジスタバンクレジスタBN0に格納される。続いてレジスタバンクレジスタBN0の値を2倍した値がセレクタ49で選択されて、バンクメモリ5のレジスタバンクRegbank0から第1レジスタファィル21の所定のレジスタセットPR、GBR、MACH、MACL、R0…R14へのレジスタ復帰データの転送が行なわれる。
同様に、第2CPUコア3で割り込み例外処理が発生して、バンクメモリ5のレジスタバンクReg_Bkへの第2レジスタファィル31の所定のレジスタセットPR、GBR、MACH、MACL、R0…R14の内容の退避要求が発生したと想定する。すると、レジスタバンクレジスタBN1の値が、演算器44によって2倍された後+1インクリメントされる。その演算結果がセレクタ49で選択され、レジスタバンクレジスタBN1の2倍に1を足した値が指示するバンクメモリ5のレジスタバンクRegbank1に所定のレジスタセットの内容が退避させられる。その後、レジスタバンクレジスタBN1の値は加減算器42で+1インクリメントされてレジスタバンクレジスタBN1に格納される。
第2CPUコア3からレジスタ復帰命令(RESBANK命令)が発行された場合に、レジスタバンクレジスタBN1の値はまず加減算器43で−1ディクリメントされてレジスタバンクレジスタBN1に格納される。続いてレジスタバンクレジスタBN1の値を2倍して1足した値の指示するバンクメモリ5のレジスタバンクRegbank1から第2レジスタファィル31の所定のレジスタセットPR、GBR、MACH、MACL、R0…R14へのレジスタ復帰データの転送が行なわれる。このように、バンクメモリ5では、偶数番号のレジスタバンクRegbank0、2、4・・・で第1CPUコア2の第1レジスタファィル21のレジスタセットの退避・復帰処理が行なわれ、奇数番号のレジスタバンクRegbank1、3、5・・・で第2CPUコア3の第2レジスタファィル31レジスタセットの退避・復帰処理が行なわれることになる。尚、レジスタバンクレジスタBN0、BN1は、次にレジスタセットの退避・復帰処理に使用されるバンクメモリ5のレジスタバンクの値を指示することになる。このように本実施形態では、第1CPUコア2の使用するレジスタバンクと第2CPUコア3の使用するレジスタバンクとをレジスタバンクレジスタBN0、BN1により指示している。このように、第1CPUコア2に偶数番号のレジスタバンク、第2CPUコア3の奇数番号のレジスタバンクを割り当てることで、相手側のコアからのレジスタバンクの上書きによる破壊を回避している。
更に、本実施形態では、第2CPUコア3が多重割り込み状態にある一方、第1CPUコア2に実行すべき処理が無い場合に、第2CPUコア3からバンクメモリ5のレジスタバンクReg_Bkに退避されている処理を第1CPUコア2が引き継ぐための第1仮想スタックポインタ(Vtl_SP)23を第1CPUコア2が含んでいる。同様に、第1CPUコア2が多重割り込み状態にある一方、第2CPUコア3に実行すべき処理が無い場合に、第1CPUコア2からバンクメモリ5のレジスタバンクReg_Bkに退避されている処理を第2CPUコア3が引き継ぐための第2仮想スタックポインタ(Vtl_SP)33を第2CPUコア3が含んでいる。
また更に、本実施形態では、この第1仮想スタックポインタ(Vtl_SP)23と第2仮想スタックポインタ(Vtl_SP)33とに関係してシステムコンローラ4は、バンクロックビットレジスタ(BL0)47、バンクロックビットレジスタ(BL1)48を含んでいる。
次に図2の処理フローを参照して、バンクロックビットレジスタ(BL0)47、バンクロックビットレジスタ(BL1)48により制御される第1仮想スタックポインタ(Vtl_SP)23と第2仮想スタックポインタ(Vtl_SP)33の機能を説明する。尚、システムコンローラ4のバンクロックビットレジスタ(BL0)47のバンクロックビットBL0とバンクロックビットレジスタ(BL1)48のバンクロックビットBL1とは、最初はともに”0”にリセットされている。
まず、第2CPUコア3が優先度の高い処理を行なっている間に、第1CPUコア2に第2CPUコア3よりも優先度の低い複数の処理要求が連続して発生したとする。優先度の高い処理の実行と優先度の低い処理の実行とが並列に実行できない条件では、優先度の低い処理は第1CPUコア2により処理されることができず中断される。従って、最初は第1CPUコア2の第1レジスタファイル21の内容は、バンクメモリ5のレジスタバンクReg_Bkに退避される。しかし、処理要求の連続発生によって、退避先のバンクメモリ5のレジスタバンクReg_Bkがオーバーフローする。すると、第1CPUコア2の第1レジスタファイル21の内容は、内蔵RAM8や外部のメインメモリの複数のスタック領域に退避されることになる。
その後、ステップ201で第2CPUコア3が優先度の高い処理が終了した時点で、第2CPUコア3に新たな処理要求が与えられていないと、第2CPUコア3はシステムコンローラ4のバンクロックビットレジスタ(BL1)48のバンクロックビットBL1を”0”から”1”にセットしようとする。この時に第1CPUコア2の第1レジスタファイル21のレジスタセットのデータがバンクメモリ5のレジスタバンクReg_Bkに退避されていなれば、レジスタバンクレジスタBN0の値は“0”なので、バンクロックビットBL1はセットされず“0”のままである。しかし、第1CPUコア2の第1レジスタファイル21のレジスタセットのデータが退避されていればレジスタバンクレジスタBN0の値は“1”以上なので、バンクロックビットレジスタ(BL1)48のバンクロックビットBL1は“1”にセットされる。それにより、第1CPUコア2の新たな割り込みは禁止されて、また第1CPUコア2によるレジスタ復帰命令(RESBANK命令)の実行もストールされる。
続くステップ202で第2CPUコア3はシステムコンローラ4のバンクロックビットレジスタ(BL1)48のバンクロックビットBL1が“1”であるか否か確認する。“0”の場合はステップ203のアイドルルーチンの処理へ分岐して、“1”である場合にはステップ204へ分岐する。
ステップ203のアイドルルーチンの処理では、第2CPU3には第1CPUコア2から引き継ぐ処理は無いのでこのフローを終了し、アイドル時に実行すべき処理へ移行する。
ステップ204では、第2CPU3は退避先のバンクメモリ5のレジスタバンクReg_Bkや内蔵RAM8や外部のメインメモリに退避されていたデータを復帰するレジスタ復帰命令(RESBANK命令)を実行する。このレジスタ復帰命令(RESBANK命令)の実行は、バンクロックビットレジスタ(BL1)48のバンクロックビットBL1の“1”へのセットと、第1CPUコア2の第1レジスタファイル21内部のスタックポインタSPの値をあたかも第2CPUコア3の第2レジスタファイル31内部のスタックポインタSPの値であるかのように処理する第2仮想スタックポインタ(Vtl_SP)33の引き継ぎ機能とにより実現されることができる。
すなわち、システムコンローラ4のバンクロックビットレジスタ(BL1)48のバンクロックビットBL1は、”1”にセットされている。従って、第2CPU3によるレジスタ復帰命令(RESBANK命令)の実行においては第2CPU3のためのレジスタバンクレジスタBN1の指示するレジスタバンクからではなく、第1CPUコア2のためのレジスタバンクレジスタBN0の指示するバンクメモリ5のレジスタバンクReg_Bkから、第1CPU1の第1レジスタファイル21のレジスタセットではなく、第2CPU3の第2レジスタファイル21のレジスタセットPR、GBR、MACH、MACL、R0…R14へ、復帰データが格納される。また、1つのレジスタ復帰命令(RESBANK命令)が実行されると、第2CPU3はシステムコントローラ4の第1CPUコア2のためのレジスタバンクレジスタBN0の値を−1デクリメントする。
次のステップ205では、バンクメモリ5のレジスタバンクReg_BkではなくRAM8や入出力ポート10に接続される外部のメインメモリのスタック領域に退避されていた第1CPUコア2の第1レジスタファイル21のステータスレジスタSRの値とプログラムカウンタPCの値とを回復する割り込み復帰命令(RTE命令)が、第2CPUコア3によって実行される。既に説明したように、ステータスレジスタSRとプログラムカウンタPCの退避、復帰は16本目の汎用レジスタR15(SP)を用いてRAM8や入出力ポート10に接続される外部のメインメモリのスタック領域を参照して実行される。また、第2CPUコア3による割り込み復帰命令(RTE命令)の実行も、第1CPUコア2の第1レジスタファイル21内部のスタックポインタSPの値をあたかも第2CPUコア3の第2レジスタファイル31内部のスタックポインタSPの値であるかのように処理する第2仮想スタックポインタ(Vtl_SP)33の引き継ぎ機能により実現されることができる。まず、第2CPUコア3は、第2仮想スタックポインタ(Vtl_SP)33によって指示される内蔵RAM8や入出力ポート10に接続される外部のメインメモリのスタック領域から第1CPUコア2の第1レジスタファイル21のステータスレジスタSRの値とプログラムカウンタPCの値とを読み出す。次に、第2CPUコア3は、読み出された第1CPUコア2の第1レジスタファイル21のステータスレジスタSRの値とプログラムカウンタPCの値とを第1CPU1の第1レジスタファイル21のステータスレジスタSRとプログラムカウンタPCとではなく第2CPU3の第2レジスタファイル31のステータスレジスタSRとプログラムカウンタPCとに格納する。次に、第2仮想スタックポインタ(Vtl_SP)33の値はステータスレジスタSRの値とプログラムカウンタPCの値のサイズにより減算された後、演算結果は第1CPUコア2の第1レジスタファイル21の16本目の汎用レジスタR15(SP)に格納される。その後、第2仮想スタックポインタ(Vtl_SP)33はクリアされ、システムコンローラ4のバンクロックビットレジスタ(BL1)48のバンクロックビットBL1は”0”にリセットされる。
従って、第2CPU3によるレジスタ復帰命令(RESBANK命令)と割り込み復帰命令(RTE命令)の実行の後には、第1CPUコア2のためのレジスタバンクレジスタBN0の指示するバンクメモリ5のレジスタバンクReg_Bkから第2CPU3の第2レジスタファイル21のレジスタセットPR、GBR、MACH、MACL、R0…R14へ復帰データが格納され、第2仮想スタックポインタ(Vtl_SP)33によって指示される内蔵RAM8や入出力ポート10に接続される外部のメインメモリのスタック領域から読み出された第1CPUコア2の第1レジスタファイル21のステータスレジスタSRの値とプログラムカウンタPCの値とが第2CPU3の第2レジスタファイル31のステータスレジスタSRとプログラムカウンタPCとに格納されている。
次のステップ206では、第2CPU3の第2レジスタファイル21のレジスタセットPR、GBR、MACH、MACL、R0…R14とステータスレジスタSRとプログラムカウンタPCとへそれぞれ格納された復帰データとステータス情報とプログラムカウンタ値とを使用して、第2CPUコア3は第1CPUコア2によって中断された処理を再開して実行することが可能となる。
以上の説明では、第2CPUコア3が優先度の高い処理を行なっている間に、第1CPUコア2に第2CPUコア3よりも優先度の低い複数の処理要求が連続して発生して、優先度の低い処理が第1CPUコア2にによって実行されずに中断され、その後、第2CPUコア3が優先度の高い処理が終了した時点で、第2CPUコア3は第1CPUコア2によって中断された処理を再開して実行するものである。
一方、本実施形態のマイクロプロセッサは対照型アーキテクチャーを採用しているので、上記と反対に、第1CPUコア2が優先度の高い処理を行なっている間に、第2CPUコア3に第1CPUコア2よりも優先度の低い複数の処理要求が連続して発生して、優先度の低い処理が第2CPUコア3によって実行されずに中断され、その後、第1CPUコア2が優先度の高い処理が終了した時点で、第1CPUコア2は第2CPUコア3によって中断された処理を再開して実行することは言うまでもないであろう。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、図1において、第1CPUコア2にレベル1の第1のキャッシュメモリを接続して、第2CPUコア3にレベル1の第1のキャッシュメモリを接続して、バンクメモリ5のいくつかのレジスタバンクをレベル2の共有キャッシュメモリとして使用することも可能である。
更に、マイクロプロセッサ1内部のCPUコアは2個以外の例えば4個としたマルチCPUコアとすることも可能であり、更に極めて多数のCPUコアを接続した超並列アーキテクチャーにも適用することも可能である。
また本発明は、マイクロコントローラやマイクロプロセッサ以外に各種の用途に使用されるシステムLSIやディジタル・アナログ・ミックスド・シグナルLSIのように、マルチメディア画像データの高速処理のために複数のCPUコアを含むLSI全般に適用可能であることは言うまでもないであろう。
本発明は、複数のCPUコアを含むマルチCPUコアアーキテクチャーに広く実施することができる。
本発明の1つの実施形態によるマルチCPUコアのデータ処理装置を示す図である。 図2は、図1に示したマルチCPUコアのデータ処理装置の動作を説明するための処理フローである。
符号の説明
1 データプロセッサ
2、3 CPUコア
4 システムコントローラ
5 バンクメモリ
21、31 レジスタファィル
22、32 命令デコーダ&演算回路部
23 第1仮想スタックポインタ(Vtl_SP)
33 第2仮想スタックポインタ(Vtl_SP)
6 割込みコントローラ
7 ROM
8 RAM
9 バスステートコントローラ(BSC)
10 IOポート
11 レジスタバンクバス
12、13 CPUバス
14 システムバス
21、31 レジスタセット
R0〜R15 汎用レジスタ
SP スタックポインタ
MACH、MACL 積和レジスタ
PR プロシージャレジスタ
GBR グローバルベースレジスタ
SR ステータスレジスタ
41、42 加減算器
43、44 レジスタバンクレジスタ
45、46 演算器
47、48 バンクロックビットレジスタ
49 セレクタ

Claims (9)

  1. 第1CPUコアと、第2CPUコアとを具備して、
    前記第1CPUコアは第1レジスタファイルと第1命令デコーダ・演算器とを含み、前記第2CPUコアは第2レジスタファイルと第2命令デコーダ・演算器とを含み、
    前記第1CPUコアの前記第1レジスタファイルの内容と前記第2CPUコアは前記第2レジスタファイルの内容とを格納する共有メモリを更に具備して、
    前記第1CPUコアは前記第2CPUコアの前記第2レジスタファイル内部のスタックポインタの値を前記第1CPUコアのスタックポインタの値として処理するための第1記憶回路を含み、前記第2CPUコアは前記第1CPUコアの前記第1レジスタファイル内部のスタックポインタの値を前記第2CPUコアのスタックポインタの値として処理するための第2記憶回路を含み、
    前記第1CPUコアと前記第2CPUコアとの一方のCPUコアが処理を実行している間に、前記第1CPUコアと前記第2CPUコアとの他方のCPUコアに前記一方のCPUコアが実行している前記処理よりも優先度の低い処理の要求が発生することによって、優先度の低い前記処理は前記他方のCPUコアによって実行されることなく中断され、前記他方のCPUコアの前記レジスタファイルのプログラムカウンタの内容とステータスレジスタの内容とがスタック領域に退避される一方、前記他方のCPUコアのレジスタファイルのその他の内容が前記共有メモリに退避され、
    前記一方のCPUコアが前記処理を完了すると、前記一方のCPUコアは前記共有メモリに退避された前記他方のCPUコアの前記レジスタファイルの前記その他の内容を前記一方のCPUコアのレジスタファイルに格納して、前記一方のCPUコアは、前記他方のCPUコアの前記レジスタファイルのスタックポインタの内容を前記一方のCPUコアの記憶回路に転送して、前記他方のCPUコアによって中断された前記処理を前記一方のCPUコアが再開して実行するデータ処理装置。
  2. 前記第1CPUコアと前記第2CPUコアとに接続されたシステムコントローラを更に具備して、
    前記システムコントローラは、前記第1のCPUコアの中断した処理の復帰を抑制する第1フラグ情報と、前記第2のCPUコアの中断した処理の復帰を抑制する第2フラグ情報とを格納して、
    前記一方のCPUコアが前記処理を完了すると、前記一方のCPUコアは前記他方のCPUコアの中断した処理の復帰を抑制するようにフラグ情報を所定の状態にセットして、
    前記一方のフラグ情報が前記所定の状態にセットされることに応答して、前記他方のCPUコアによって中断された前記処理を前記他方のCPUコアが再開して実行することが禁止され、前記他方のCPUコアによって中断された前記処理を前記一方のCPUコアが再開して実行することが許可される請求項1に記載のデータ処理装置。
  3. 前記システムコントローラは前記第1CPUコアの前記第1レジスタファイルの内容を前記共有メモリの第1領域に格納する一方、前記第2CPUコアの前記第2レジスタファイルの内容を前記共有メモリの前記第1領域と異なる第2領域に格納するアドレス管理ユニットを含む請求項1と請求項2のいずれかに記載のデータ処理装置。
  4. 前記データ処理装置は、前記第1CPUコアと前記第2CPUコアとに接続された内部メモリを更に具備する一方、メインメモリと接続可能であり、
    前記内部メモリと前記メインメモリとの少なくともいずれか一方に、前記他方のCPUコの前記レジスタファイルの前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とが退避される前記スタック領域が形成される請求項1から請求項3のいずれかに記載のデータ処理装置。
  5. 第1CPUコアと、第2CPUコアとを具備して、
    前記第1CPUコアは第1レジスタファイルと第1命令デコーダ・演算器とを含み、前記第2CPUコアは第2レジスタファイルと第2命令デコーダ・演算器とを含み、
    前記第1CPUコアの前記第1レジスタファイルの内容と前記第2CPUコアは前記第2レジスタファイルの内容とを格納する共有メモリを更に具備して、
    前記第1CPUコアは前記第2CPUコアの前記第2レジスタファイル内部のスタックポインタの値を格納するための第1記憶回路を含み、前記第2CPUコアは前記第1CPUコアの前記第1レジスタファイル内部のスタックポインタの値を格納するための第2記憶回路を含み、
    前記第1CPUコアと前記第2CPUコアとの一方のCPUコアが処理を実行している間に、前記第1CPUコアと前記第2CPUコアとの他方のCPUコアに前記一方のCPUコアが実行している前記処理よりも優先度の低い処理の要求が発生することによって、優先度の低い前記処理は前記他方のCPUコアによって実行されることなく中断され、前記他方のCPUコアの前記レジスタファイルのプログラムカウンタの内容とステータスレジスタの内容とがスタック領域に退避される一方、前記他方のCPUコアのレジスタファイルのその他の内容が前記共有メモリに退避され、
    前記一方のCPUコアが前記処理を完了すると、前記一方のCPUコアは前記共有メモリに退避された前記他方のCPUコアの前記レジスタファイルの前記その他の内容を読み出して、読み出された前記他方のCPUコアの前記レジスタファイルの前記その他の内容を前記一方のCPUコアの前記レジスタファイルに格納する処理と、前記一方のCPUコアは、前記他方のCPUコアの前記レジスタファイルのスタックポインタの内容を前記一方のCPUコアの記憶回路に転送する処理と、前記一方のCPUコアは、前記一方の記憶回路に転送された前記スタックポインタの前記内容で指示される前記スタック領域から前記他方のCPUコアの前記レジスタファイルの前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とを読み出して、読み出された前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とを前記一方のCPUコアの前記レジスタファイルのプログラムカウンタとステータスレジスタとにそれぞれ格納する処理とを実行して、
    その後、前記一方のCPUコアは、前記一方のCPUコアの前記レジスタファイルに格納された前記他方のCPUコアの前記レジスタファイルの前記その他の内容と前記一方のCPUコアの前記レジスタファイルの前記プログラムカウンタと前記ステータスレジスタとにそれぞれ格納された前記他方のCPUコアの前記レジスタファイルの前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とを使用することによって、前記他方のCPUコアによって中断された前記処理を前記一方のCPUコアが再開して実行するデータ処理装置。
  6. 前記第1CPUコアと前記第2CPUコアとに接続されたシステムコントローラを更に具備して、
    前記システムコントローラは、前記第1のCPUコアの中断した処理の復帰を抑制する第1フラグ情報と、前記第2のCPUコアの中断した処理の復帰を抑制する第2フラグ情報とを格納して、
    前記一方のCPUコアが前記処理を完了すると、前記一方のCPUコアは前記他方のCPUコアの中断した処理の復帰を抑制するようにフラグ情報を所定の状態にセットして、
    前記一方のフラグ情報が前記所定の状態にセットされることに応答して、前記他方のCPUコアによる前記共有メモリに退避された前記他方のCPUコアの前記レジスタファイルの前記その他の内容の読み出しが禁止される一方、前記一方のCPUコアによる前記共有メモリに退避された前記他方のCPUコアの前記レジスタファイルの前記その他の内容の読み出しが許可され、前記他方のCPUコアによる前記スタック領域から前記他方のCPUコアの前記レジスタファイルの前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とを読み出しが禁止されて、前記一方のCPUコアによる前記スタック領域から前記他方のCPUコアの前記レジスタファイルの前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容との読み出しが許可され、読み出された前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とを前記一方のCPUコアの前記レジスタファイルのプログラムカウンタとステータスレジスタとにそれぞれ格納する請求項5に記載のデータ処理装置。
  7. 前記一方のフラグ情報が前記所定の状態にセットされることに応答して、前記他方のCPUコアによって中断された前記処理を前記他方のCPUコアが再開して実行することが禁止され、前記他方のCPUコアによって中断された前記処理を前記一方のCPUコアが再開して実行することが許可される請求項6に記載のデータ処理装置。
  8. 前記システムコントローラは前記第1CPUコアの前記第1レジスタファイルの内容を前記共有メモリの第1領域に格納する一方、前記第2CPUコアの前記第2レジスタファイルの内容を前記共有メモリの前記第1領域と異なる第2領域に格納するアドレス管理ユニットを含む請求項5から請求項7のいずれかに記載のデータ処理装置。
  9. 前記データ処理装置は、前記第1CPUコアと前記第2CPUコアとに接続された内部メモリを更に具備する一方、メインメモリと接続可能であり、
    前記内部メモリと前記メインメモリとの少なくともいずれか一方に、前記他方のCPUコの前記レジスタファイルの前記プログラムカウンタの前記内容と前記ステータスレジスタの前記内容とが退避される前記スタック領域が形成される請求項5から請求項7のいずれかに記載のデータ処理装置。
JP2006183973A 2006-07-04 2006-07-04 データ処理装置 Expired - Fee Related JP4756599B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006183973A JP4756599B2 (ja) 2006-07-04 2006-07-04 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006183973A JP4756599B2 (ja) 2006-07-04 2006-07-04 データ処理装置

Publications (3)

Publication Number Publication Date
JP2008015638A JP2008015638A (ja) 2008-01-24
JP2008015638A5 JP2008015638A5 (ja) 2009-03-05
JP4756599B2 true JP4756599B2 (ja) 2011-08-24

Family

ID=39072609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006183973A Expired - Fee Related JP4756599B2 (ja) 2006-07-04 2006-07-04 データ処理装置

Country Status (1)

Country Link
JP (1) JP4756599B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593151B2 (en) 2019-07-04 2023-02-28 Fujifilm Business Innovation Corp. Information processing apparatus and semiconductor device

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7180516B2 (ja) * 2019-04-16 2022-11-30 株式会社デンソー 車両用装置、車両用装置の制御方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01288954A (ja) * 1988-05-16 1989-11-21 Nec Corp マルチプロセッサシステムにおけるサービスプログラム実行方式
JP2003323309A (ja) * 2002-05-07 2003-11-14 Matsushita Electric Ind Co Ltd マルチタスクプロセッサおよびデータ処理システム
JP2004157636A (ja) * 2002-11-05 2004-06-03 Renesas Technology Corp データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593151B2 (en) 2019-07-04 2023-02-28 Fujifilm Business Innovation Corp. Information processing apparatus and semiconductor device

Also Published As

Publication number Publication date
JP2008015638A (ja) 2008-01-24

Similar Documents

Publication Publication Date Title
US7590774B2 (en) Method and system for efficient context swapping
US5557766A (en) High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank
US8963933B2 (en) Method for urgency-based preemption of a process
US20080046697A1 (en) Data processor
US20120200576A1 (en) Preemptive context switching of processes on ac accelerated processing device (APD) based on time quanta
US20140189713A1 (en) Apparatus and method for invocation of a multi threaded accelerator
JP2002503845A (ja) タスク切り替えによるゼロオーバヘッドコンピュータ割り込み
US10095542B2 (en) Cooperative thread array granularity context switch during trap handling
CN110659115A (zh) 具有硬件辅助任务调度的多线程处理器核
US20070157199A1 (en) Efficient task scheduling by assigning fixed registers to scheduler
US10289418B2 (en) Cooperative thread array granularity context switch during trap handling
US9122522B2 (en) Software mechanisms for managing task scheduling on an accelerated processing device (APD)
US20120198458A1 (en) Methods and Systems for Synchronous Operation of a Processing Device
US20120188259A1 (en) Mechanisms for Enabling Task Scheduling
JP4756599B2 (ja) データ処理装置
US6405300B1 (en) Combining results of selectively executed remaining sub-instructions with that of emulated sub-instruction causing exception in VLIW processor
US9329893B2 (en) Method for resuming an APD wavefront in which a subset of elements have faulted
JP4114946B2 (ja) データ処理装置
US9946665B2 (en) Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU)
WO2005106647A1 (en) Methods and apparatus for indexed register access
Gait Scheduling and process migration in partitioned multiprocessors
JP3539984B2 (ja) プロセッサ
TWI249130B (en) Semiconductor device
JPS60195646A (ja) デ−タ処理装置
US20120194528A1 (en) Method and System for Context Switching

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090121

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090121

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100913

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

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

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

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees