JP2007156824A - プロセッサシステム、タスク制御方法 - Google Patents

プロセッサシステム、タスク制御方法 Download PDF

Info

Publication number
JP2007156824A
JP2007156824A JP2005351012A JP2005351012A JP2007156824A JP 2007156824 A JP2007156824 A JP 2007156824A JP 2005351012 A JP2005351012 A JP 2005351012A JP 2005351012 A JP2005351012 A JP 2005351012A JP 2007156824 A JP2007156824 A JP 2007156824A
Authority
JP
Japan
Prior art keywords
processor
general
processing
task
dedicated signal
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
JP2005351012A
Other languages
English (en)
Other versions
JP2007156824A5 (ja
Inventor
Tetsuya Minagami
徹也 皆上
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.)
NEC Electronics Corp
Original Assignee
NEC 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 NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005351012A priority Critical patent/JP2007156824A/ja
Priority to US11/607,888 priority patent/US20070130446A1/en
Priority to KR1020060122423A priority patent/KR20070058995A/ko
Priority to GB0624331A priority patent/GB2432937B/en
Publication of JP2007156824A publication Critical patent/JP2007156824A/ja
Publication of JP2007156824A5 publication Critical patent/JP2007156824A5/ja
Priority to KR1020090024095A priority patent/KR20090046761A/ko
Pending legal-status Critical Current

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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Memory System (AREA)

Abstract

【課題】1つ又は複数の汎用プロセッサ側における複数の処理のからの、動的な呼び出しにより、1つ又は複数の専用信号処理プロセッサ側における対応処理を適切に実行し、またその結果を適切に呼び出し元へ返却し、且つ、処理性能の変動を出来るだけ最小とするプロセッサシステムを提供する。
【解決手段】本発明のプロセッサシステムは、これに含まれる専用信号処理プロセッサ(130)に、その内部において実行されるプログラム中の命令及びデータの双方について、その十分な量をキャッシングする手段と、1つ又は複数の汎用プロセッサ(110)における複数の処理からの動的な呼び出しを、割り込み信号の発行及び共有メモリ(151,161)を用いたコマンドデータの受け渡しなどにより、1つ又は複数の専用信号処理プロセッサ(130)へ伝える手段と、上記専用信号処理プロセッサ(130)において、汎用プロセッサ(110)から要求を受けて、タスクのロード及び実行、又は終了を、随時動的に行う手段を備える。
【選択図】図1

Description

本発明は、プロセッサシステムに関し、特に、携帯電話に用いられるアプリケーションプロセッサにおける信号処理を実行するためのプロセッサ構成形態、プロセッサ間通信方法、及び各プロセッサ内で動作するタスク制御方法に関する。
近年の携帯電話等に用いられるプロセッサシステムの形態は、1つ又は複数の汎用プロセッサと、1つ又は複数の専用信号処理用プロセッサ、又は専用信号処理用ロジックハードウエア、更に他のインターフェースロジック等の各部品を1つのLSIとして構成したものであり、その上で、データ圧縮、伸張、電話、音声生成、などのマルチメディア処理が実行されている。
上記の構成において、MPEG4などの信号処理を実行する際は、予期せぬ処理負荷増大を避けるため、通常、想定される全ての処理のメモリ配置を予め決めておき、汎用プロセッサからその処理全体を受け持つ専用信号処理用プロセッサ側へこれを事前にダウンロードしておき、要求があったときに実行する。このため、その実行中に、登録されていない処理タスクを、前記1つ又は複数の汎用プロセッサ側からの要求により、新たに追加し実行することは出来なかった。
関連する技術として、特開平7−287702号公報(特許文献1)にディジタル信号プロセッサに関するタスク管理システム及び方法が開示されている。
この従来技術は、各機能が少なくとも1つのタスクから構成される、データ処理システム内の複数のディジタル信号プロセッサによる機能の実行を管理するためのデータ処理システムに関する。
このデータ処理システムは、データ処理動作用の中央処理装置と、前記中央処理装置に接続され、通信チャネルによって互いに接続された、複数のディジタル信号プロセッサと、ディジタル信号プロセッサ・マネージャとを含む。前記ディジタル信号プロセッサ・マネージャは、第1識別手段と、第2識別手段と、第3識別手段と、選択手段と、ロード手段と、除去手段とを含む。
第1識別手段は、ディジタル信号プロセッサのために存在するプロセッサ資源を識別する。第2識別手段は、機能がディジタル信号プロセッサにロードされることの表示に応答して、前記機能の一部を構成する、ディジタル信号プロセッサにロードされるタスクを識別する。第3識別手段は、機能が除去されることの表示に応答して、前記機能の一部を構成する、ディジタル信号プロセッサ上の、ディジタル信号プロセッサから除去されるタスクを識別する。選択手段は、第1識別手段と、追加されるタスクを識別する第2識別手段とに応答して、識別されたタスクの実行をサポートするのに十分な資源を有するディジタル信号プロセッサを選択する。ロード手段は、選択手段によるディジタル信号プロセッサの選択に応答して、ディジタル信号プロセッサ上で実行中の別の機能を構成するタスクのいずれの実行にも割り込まずに、追加すべきタスクを選択されたディジタル信号プロセッサにロードする。除去手段は、除去すべきタスクを識別する第3識別手段に応答して、ディジタル信号プロセッサ上で実行中の別の機能を構成するタスクのいずれの実行にも割り込まずに、識別されたタスクをディジタル信号プロセッサから除去する。
特開平5−204828号公報(特許文献2)にマルチ−メディア信号プロセッサ・コンピュータ・システムが開示されている。
このマルチ−メディア信号プロセッサ・コンピュータ・システムは、ユーザ・タスク・プログラムを実行するデジタル・プロセッサを含む。前記プログラムは信号処理要求を前記システムに出力し、要求される前記ユーザ・タスクの実行を支援し、その組み合わされる信号処理リソース要求が前記システムの使用可能な信号処理リソース能力を超過しないユーザ・タスク・プログラム要求だけを請け負うように、前記デジタル・プロセッサを適応させる手段を含むことを特徴とする。
特開平7−287702号公報 特開平5−204828号公報
背景技術にて示されるようなプロセッサシステム構成において、MPEG4などのメディア信号処理を、1つ又は複数の専用信号処理用プロセッサ実行するには、予期せぬ処理負荷増大を避け、一定の性能値を得るために、通常、想定される全ての処理のメモリ配置を予め決めておき、上記、汎用プロセッサからその処理全体を受け持つ専用信号処理用プロセッサ側へこれを全て事前にダウンロードしておき、要求があったときに実行する方式が取られており、その実行中に、登録されていない処理タスクを、前記1つ又は複数の汎用プロセッサ側からの要求により、新たに追加し実行することは出来なかった。また、特許文献1に開示されたプロセッサシステム構成では、同時動作するDSP(Digital Signal Processor) HW(HardWare)を複数搭載するのは、ロジック規模の増大、ハードウエアコストの増加、ひいては消費電力の増大といった問題がある。
以下に、[発明を実施するための最良の形態]で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]との対応関係を明らかにするために付加されたものである。但し、それらの番号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
実行を要求された新規処理タスクの実行用オブジェクトを、使用されていないメモリ領域(151,161)へ配置する、少なくとも1つの汎用処理装置(110,210,310)と、
前記少なくとも1つの汎用処理装置側からの要求によりタスクの動的な生成及び消滅の管理を行い、前記新規処理タスクについて、スケジューラへの登録、及び動作中の他のタスクを含めた動作スケジューリングを行い、前記メモリ領域(151,161)から前記実行用オブジェクトを取得して前記新規処理タスクを実行する、少なくとも1つの専用信号処理装置(130)と
を具備する
プロセッサシステム。
1つ又は複数の汎用プロセッサ側における複数の処理のからの、動的な呼び出しにより、1つ又は複数の専用信号処理プロセッサ側における対応処理を適切に実行し、またその結果を適切に呼び出し元へ返却し、且つ、処理性能の変動を出来るだけ最小とする。
以下に本発明の第1の実施形態について添付図面を参照して説明する。
図1は、本発明のアプリケーションプロセッサの全体構成を簡易的に示したブロック図である。
本発明のアプリケーションプロセッサは、アプリケーションプロセッサ本体100、汎用CPUコア110、バス部分120、専用信号処理プロセッサコア130、割り込みコントローラ140、内部メモリ領域150を備える。また、本発明のアプリケーションプロセッサは、外部メモリ領域160と接続されている。
アプリケーションプロセッサ本体100は、複数の汎用CPUコア110(110−i、i=1〜n:nはCPUコアの数)を持つ。汎用CPUコア110は、CPUと、PE(Processor Element)と、キャッシュメモリとを有する。バス部分120は、汎用CPUコア110、専用信号処理プロセッサコア130、割り込みコントローラ140、内部メモリ領域150を接続する。専用信号処理プロセッサコア130は、DSP(Digital Signal Processor)である。割り込みコントローラ140は、割り込み処理を行うための回路である。内部メモリ領域150は、アプリケーションプロセッサ本体100に搭載されたオンチップメモリである。外部メモリ領域160は、アプリケーションプロセッサ本体100の外部にあり、バス部分120を介して通信を行う。
専用信号処理プロセッサコア130は、演算器コア部分131と、キャッシュ部分132とを内部に有する。演算器コア部分131は、DSPコア内ロジックであり、信号処理エンジンとなる。キャッシュ部分132は、DSPコア内キャッシュ領域であり、ここで実行される命令及びテーブルデータ等をキャッシュする役割を持つ。
CPU(汎用CPUコア110)とDSP(専用信号処理プロセッサコア130)の通信で使用される共有メモリ領域は、内部メモリ領域150の内部にある共有メモリ領域151、あるいは外部メモリ領域160の内部にある共有メモリ領域161、あるいはその双方に配置される。
携帯電話のアプリケーションチップのような、心臓部となるCPUを含む複合LSIは、通常CPUとDSP、また、他の様々なハードウェアロジックを含む構成となる。CPUでは、メール表示やJava(登録商標)といったメインの様々な処理を行う。DSPでは、カメラ画像の圧縮(JPEGenc/MPEG4enc)や通信相手から受信したTV画像の伸張(MPEG4dec)を行う。ここでは、CPU側が、JPEGやMPEGなどのDSPで行われるコーデックの実行オブジェクトを、DSPから実行できるようにするため、所定のRAM領域にロードする。例えば、FlashメモリからSDRAM領域へロードする。
フルキャッシュ型のDSPでは、通常のCPUのOSのようにタスク又はプロセスを増やしていくことが可能であり、これを行うためのスケジューラの機能を有している。携帯機器/小型機器用DSPに搭載するSW(SoftWare)環境は、予め実行するタスクを全て決めておき、Boot(起動)時にこれら全てを所定のメモリ上にロードする。
DSP側OSのスケジューラは、動的に新規ディスパッチ(dispatch)されたタスクを含めてスケジューリングが可能である。なお、ディスパッチとは、実行可能なプロセスやタスクなどに対してマイクロプロセッサの計算能力を割り当てることである。
CPUとDSPとの間の通信により、CPU側からの命令をDSPへ伝え、更に、DSP側におけるCPU−DSP間の通信管理機構の働きによりDSP中で動作している各タスクに対し、CPU側からの命令を適切に配信する。
次に、本発明の他の実施形態について図面を参照して詳細に説明する。
図2は、本発明の第2の実施形態におけるアプリケーションプロセッサの全体構成を示す図である。
本実施形態におけるアプリケーションプロセッサは、アプリケーションプロセッサ本体100、汎用CPUコア210、バス部分120、専用信号処理プロセッサコア130、割り込みコントローラ140、内部メモリ領域150を備える。また、本発明のアプリケーションプロセッサは、外部メモリ領域160と接続されている。
図1と図2の違いは、汎用CPUコアである。
汎用CPUコア210は、SMP(対称型マルチプロセッサ)であり、複数のPE211(211−i、i=1〜n)と、スヌープキャッシュ212とを有する。図2では、例として、PE0(211−1),PE1(211−2),PE2(211−3)、及びスヌープキャッシュ(212)を含む構成を示している。
スヌープキャッシュでは、キャッシュ間のデータの一致制御の目的で、共有バス上のメモリアクセスを監視し、必要に応じて自キャッシュブロックに対する一貫性制御を分散的手法で行う。各プロセッサがキャッシュを持つ場合、各プロセッサがデータを取得する基本的な手順は、まず、キャッシュを検索し、キャッシュにデータが存在しない場合にはじめて共有メモリにアクセスする。
図3は、本発明の第3の実施形態におけるアプリケーションプロセッサの全体構成を示す図である。
本実施形態におけるアプリケーションプロセッサは、アプリケーションプロセッサ本体100、汎用CPUコア310、バス部分120、専用信号処理プロセッサコア130、割り込みコントローラ140、内部メモリ領域150を備える。また、本発明のアプリケーションプロセッサは、外部メモリ領域160と接続されている。
図1と図3の違いは、汎用CPUコアである。
汎用CPUコア310は、単一CPUであり、CPUと、キャッシュメモリ311とを有する。
次に、図4のタイミング図、及び図5のフローチャートを用いて、本プロセッサシステムの動作について説明する。
図4のP101、P102、P103は、複数の汎用プロセッサ側の各CPUコアにおいて処理プロセスが動作する様子を示している。プロセスP101、P102、P103より、DSPにおける処理T101、T102、T103が呼び出される様子を示す。PE0におけるプロセスA(P101)より、対応する処理T101が呼び出され実行されるが、暫くしてPE1におけるプロセスB(P102)より、対応する処理T102を並行して呼び出し、処理T101と処理が並存する形となる。その後、処理T101は実行を終了し、これをCPU側のプロセスC(P103)へ伝え、使用していたメモリ領域は開放される。このとき、本発明の構成は図1に示すように、DSPにおいて実行されるプログラムの命令及びデータに関するキャッシュを配置しているため、このように処理内容が動的に増加しても、各処理タスクT101及びT102単体の所要性能値をそれぞれ足し合わせた値が、本DSPにて許容できる限界性能値以下であるならば、この場合における性能変動は僅かである。同様に、PE2において処理P103が実行され、これに伴い、DSP側にて対応する処理T103が呼び出され、このときDSPにおいて処理T102と処理が同時実行されるが、このときも、各処理タスクT102及びT103単体の所要性能値をそれぞれ足し合わせた値が、本DSPにて許容できる限界性能値以下であるならば、この場合における性能変動は僅かとなる。
また、図5では、上記、個々のDSP処理(タスク)がCPUより呼び出され、終了するまでの流れをフローチャートで示している。
本発明における方式では、DSPにおける個々のタスクを、CPU側からの依頼に応じて個別にロードし、更に、CPU側からの処理開始コマンドを受けて、その実行を開始する。あるいは、CPU側からの処理開始コマンドを受けず、CPU側からの依頼に基づくDSP側対応実行オブジェクトのダウンロードを実行したのち、即座に処理動作を開始する形態も考えられる。また、各タスクの処理終了時は、個別にそれぞれのタスクを終了し、領域開放などの後処理を実行し、次に要求される処理に備える。
(1)ステップS101
CPU側からDSPへの処理要求を検出する。処理要求が無ければ、処理要求があるまで待機する。
(2)ステップS102
CPU側の各プロセス(プロセスA,プロセスB,プロセスC)に対応する個々のタスクを個別にロードする。
(3)ステップS103
CPU側からコマンドを受信する。
(4)ステップS104
受信したコマンドが、CPU側の各プロセスのいずれかの処理開始コマンドである場合、ステップS105に移行する。CPU側の各プロセスのいずれかの処理開始コマンドでない場合、ステップS106に移行する。
(5)ステップS105
処理開始コマンドに対応するプロセスの実行を開始する。なお、ステップS103において、CPU側からの処理開始コマンドを受けず、CPU側からの依頼に基づくDSP側対応実行オブジェクトのダウンロードを実行したのち、即座に処理動作を開始するようにしても良い。
(6)ステップS106
受信したコマンドが、CPU側の各プロセスのいずれかの処理終了コマンドである場合、ステップS107に移行する。受信したコマンドが、CPU側の各プロセスのいずれかの処理終了コマンドでない場合、ステップS108に移行する。
(7)ステップS107
処理終了コマンドに対応するプロセスの実行を終了する。
(8)ステップS108
CPU側の各プロセスのいずれかの処理終了コマンドではない場合、受信したコマンドに対する処理を行い、ステップS102に戻る。
なお、図2及び図3は、それぞれ、汎用プロセッサ側がSMP(対称型マルチプロセッサ)である場合、及び単一CPUだった場合の、本発明における構成を示している。この場合、それぞれ図1及び図4の場合と同じく、汎用CPUコアは、DSP側に命令及びデータ双方に関してキャッシュ機構を持つ。また、CPU側からの要求に応じて、DSP側にてタスクの個別実行を行う機構を備えている。このとき、図2に示されるSMPアーキテクチャの場合では、SMPにおいて実行されるPE番号に依存しない個々のプロセス又はスレッドよりDSPに対して処理依頼が発行され、対応されるタスクがそれぞれ独立に実行される仕組みを持つ。図3に示される単一プロセッサの場合では、CPU内にて実行される1つ又は複数のプロセス又はスレッドよりDSPに対して処理依頼が発行され、対応されるタスクがそれぞれ独立に実行される仕組みを持つ。
以上のように、本発明は、1つ又は複数の汎用プロセッサと、1つ又は複数の専用信号処理用プロセッサ、又は専用信号処理用ロジックハードウエア等の各部品を1つのLSIとして構成した、携帯電話等の用途に好適なプロセッサシステムの構成に関するものである。
このプロセッサシステムは、以下の特徴を有する。
(1)汎用プロセッサ側にて、実行を要求された新規処理タスクの実行用オブジェクトを、使用されていないメモリ領域へ新たに配置する。
(2)専用信号処理プロセッサでは、予期せぬ処理負荷の大幅な増大が起こり得ない、十分な大きさの命令キャッシュ、及びデータキャッシュを備えているものを用い、実行を要求された新規処理タスクを実行する。
(3)更に、専用信号処理プロセッサ上で稼動するOSが、汎用プロセッサ側からの要求により、タスクの動的な生成及び消滅の管理を行い、新たに追加されたタスクへのスケジューラへの登録、それまで動作していた他のタスクを含めた動作スケジューリングを行う。
(4)更に、1つ又は複数の汎用プロセッサから受領した命令を、専用信号処理プロセッサ上で動作する各タスクに配分する。この命令のフォーマットには、要求する処理内容、コマンドの送信元、結果データの送付先、及び要求内容の優先度を記録するフィールドを設けている。
本発明のプロセッサシステムでは、1つ又は複数の汎用プロセッサ側における複数の処理のからの、動的な呼び出しにより、1つ又は複数の専用信号処理プロセッサ側における対応処理を適切に実行し、またその結果を適切に呼び出し元へ返却し、且つ、処理性能の変動を出来るだけ最小とする。
すなわち、プロセッサシステムにおいて、汎用プロセッサ側にて、実行を要求された新規処理タスクの実行用オブジェクトを、使用されていないメモリ領域へ新たに配置する機構を持つと共に、専用信号処理プロセッサは、予期せぬ処理負荷の大幅な増大が起こり得ない、十分な大きさの命令キャッシュ、及びデータキャッシュを備えているものを用い、実行を要求された新規処理タスクを実行する。更に、専用信号処理プロセッサ上で稼動するOSは、汎用プロセッサ側からの要求により、タスクの動的な生成及び消滅の管理を行い、新たに追加されたタスクへのスケジューラへの登録、それまで動作していた他のタスクを含めた動作スケジューリングの実行を行う。また、1つ又は複数の汎用プロセッサから受領した命令を、専用信号処理プロセッサ上で動作する各タスクに配分する機構を持つ。これにより、汎用プロセッサ側における複数の処理からの、専用信号処理プロセッサ側における対応処理を、動的な呼び出しにより実行する仕組みを提供する。
このため、本発明のプロセッサシステムは、これに含まれる専用信号処理プロセッサに、その内部において実行されるプログラム中の命令及びデータの双方について、その十分な量をキャッシングする手段(図1の132、図2の207、図3の305)と、1つ又は複数の汎用プロセッサにおける複数の処理のからの動的な呼び出しを、割り込み信号の発行及び共有メモリを用いたコマンドデータの受け渡しなどにより、1つ又は複数の専用信号処理プロセッサへ伝える手段(図1の151,111,140、図2の210、212、213、図3の307,312,313)と、上記専用信号処理プロセッサにおいて、汎用プロセッサから要求を受けて、タスクのロード及び実行、又は終了を、随時動的に行う手段を備える。
更に、複数の汎用プロセッサから、専用信号処理プロセッサに送られるコマンドデータ中において、要求する処理内容、及びコマンドの送信元、結果データの送付先、及び要求内容の優先度を記載するフィールドを設けている。
本発明の第1の効果は、ある時点における同時動作タスクの数が増大しても、従来構成の場合に発生する、処理性能の低下を防ぐ作用を持つというものである。これは、本プロセッサシステムにおけるキャッシング手段により、同時実行されているタスクのコード又はデータが、プロセッサからのアクセスにサイクル数を1サイクル程度しか要しないキャッシュ上に大半の場合配置されるので、キャッシュヒットミスの割合が十分小さく、なおかつキャッシュヒットミス発生時に生じる外部メモリ等へのアクセスに要するサイクル数が十分小さければ、ある時点における同時動作タスクの数が増大しても、処理性能の低下を防ぐことが出来る。
本発明の第2の効果は、タスクのロード及び実行、又は終了を、随時動的に行う手段を備えることにより、従来の、処理を予定しているタスクをロードしておく手法では対応できなかった、予期しないタスクの処理要求に対して、これを実行し、更に結果を要求元に返却することが可能となり、無駄なメモリの消費を防ぎ、ひいては消費電力削減につなげることが出来る、というものである。
本発明の第3の効果は、専用信号処理プロセッサに送られるコマンドデータ中に、要求する処理内容、及びコマンドの送信元、結果データの送付先、及び要求内容の優先度を記述することにより、特に複数の汎用プロセッサと専用信号処理プロセッサ間において、適切なデータの送受信を可能とすることが出来る。
このように、本発明のプロセッサシステムにおけるキャッシング手段により、専用信号処理プロセッサにおいて、ある時点における同時動作タスクの数が増大しても、処理性能の低下を防ぐ作用を持つ。また、汎用プロセッサから要求を受けて、タスクのロード及び実行、又は終了を、随時動的に行う手段を備えることにより、従来の、処理を予定しているタスクをロードしておく手法では対応できなかった、予期しないタスクの処理要求に対して、これを実行し、結果を要求元に返却することが可能となる。更に、専用信号処理プロセッサに送られるコマンドデータ中に、前項において述べた内容を記述することにより、特に複数の汎用プロセッサと専用信号処理プロセッサ間において、適切なデータの送受信が可能となる。
図1は、本発明の第1の実施形態の構成を示すブロック図である。 図2は、本発明の第2の実施形態の構成を示すブロック図である。 図3は、本発明の第3の実施形態の構成を示すブロック図である。 図4は、本発明の第1の実施形態における、各タスク実行スケジュールの例を示すタイミング図である。 図5は、本発明の第1の実施形態におけるプロセッサシステムにおける、各タスクの呼び出し、処理実行の流れを示すフローチャート図である。
符号の説明
100 アプリケーションプロセッサ
110(−i、i=1〜n) CPUコア
120 バス
130 DSP(Digital Signal Processor)コア
131 DSPコア内ロジック
132 DSPコア内キャッシュ領域
140 割り込みコントローラ
150 アプリケーションプロセッサ内メモリ(オンチップメモリ)
151 オンチップメモリ内の共有メモリ領域
160 外部メモリ
161 外部メモリ内共有メモリ領域
210 対称型マルチプロセッサコア
211(−i、i=1〜n) 対称型マルチプロセッサ内CPUコア
212 対称型マルチプロセッサ内スヌープキャッシュ
310(−i、i=1〜n) CPUコア
311 CPUコア内キャッシュメモリ
P101,P102,P103 各CPU(PE:プロセッサエレメント)にて起動されるプロセス
T101,T102,T103 CPU側の各プロセスから呼び出されるDSP側対応処理(タスク)

Claims (12)

  1. 実行を要求された新規処理タスクの実行用オブジェクトを、使用されていないメモリ領域へ配置する、少なくとも1つの汎用処理装置と、
    前記少なくとも1つの汎用処理装置側からの要求によりタスクの動的な生成及び消滅の管理を行い、前記新規処理タスクについて、スケジューラへの登録、及び動作中の他のタスクを含めた動作スケジューリングを行い、前記メモリ領域から前記実行用オブジェクトを取得して前記新規処理タスクを実行する、少なくとも1つの専用信号処理装置と
    を具備する
    プロセッサシステム。
  2. 請求項1に記載のプロセッサシステムにおいて、
    前記命令のフォーマットは、要求する処理内容、コマンドの送信元、結果データの送付先、及び要求内容の優先度を記録するフィールドを有する
    プロセッサシステム。
  3. 請求項1に記載のプロセッサシステムにおいて、
    前記少なくとも1つの専用信号処理装置は、前記少なくとも1つの汎用処理装置から受領した命令に応じて前記新規処理タスクを実行する
    プロセッサシステム。
  4. 請求項1に記載のプロセッサシステムにおいて、
    前記少なくとも1つの汎用処理装置は、複数のプロセッサコアであり、
    前記各プロセッサコアは、
    CPUと、
    プロセッサエレメントと、
    キャッシュメモリと
    を具備する
    プロセッサシステム。
  5. 請求項1に記載のプロセッサシステムにおいて、
    前記少なくとも1つの汎用処理装置は、SMP(対称型マルチプロセッサ)であり、
    前記SMPは、
    複数のプロセッサエレメントと、
    スヌープキャッシュと
    を具備する
    プロセッサシステム。
  6. 請求項1に記載のプロセッサシステムにおいて、
    前記少なくとも1つの汎用処理装置は、単一のプロセッサコアであり、
    該プロセッサコアは、
    CPUと、
    キャッシュメモリと
    を具備する
    プロセッサシステム。
  7. 請求項1に記載のプロセッサシステムにおいて、
    前記少なくとも1つの専用信号処理装置は、
    予期せぬ処理負荷の大幅な増大が起こり得ない程度の大きさのキャッシュ領域を具備する
    プロセッサシステム。
  8. 請求項1に記載のプロセッサシステムにおいて、
    前記メモリ領域は、プロセッサ本体の内部に存在する
    プロセッサシステム。
  9. 請求項1に記載のプロセッサシステムにおいて、
    前記メモリ領域は、プロセッサ本体と接続された外部メモリの内部に存在する
    プロセッサシステム。
  10. (a)汎用プロセッサ側の各プロセスに対応する個々のタスクを専用信号処理プロセッサ側に個別にロードするステップと、
    (b)前記汎用プロセッサ側からコマンドを受信するステップと、
    (c)前記受信したコマンドが、前記汎用プロセッサ側の各プロセスのいずれかの処理開始コマンドである場合、処理開始コマンドに対応するプロセスの実行を開始するステップと、
    (d)前記受信したコマンドが、前記汎用プロセッサ側の各プロセスのいずれかの処理終了コマンドである場合、処理終了コマンドに対応するプロセスの実行を終了するステップと、
    (e)前記受信したコマンドが、前記汎用プロセッサ側の各プロセスの処理開始コマンド及び処理終了コマンドのいずれでもない場合、前記受信したコマンドに対する処理を行うステップと
    を具備する
    タスク制御方法。
  11. (a)汎用プロセッサ側の各プロセスに対応する個々のタスクを専用信号処理プロセッサ側に個別にロードするステップと、
    (f)前記汎用プロセッサ側からの処理開始コマンドを受けず、前記汎用プロセッサ側からの依頼に基づき前記専用信号処理プロセッサ側で対応実行オブジェクトのダウンロードを実行した後、即座に処理動作を開始するステップと
    を具備する
    タスク制御方法。
  12. 汎用プロセッサ側の各PE(プロセッサエレメント)の処理プロセスの動作において、
    (A)PE0におけるプロセスAより、専用信号処理プロセッサにおける処理タスクAが呼び出され実行されるステップと、
    (B)暫くしてPE1におけるプロセスBより、前記専用信号処理プロセッサにおける処理タスクBを並行して呼び出し、前記処理タスクAと処理が並存するステップと、
    (C)前記処理タスクAの実行を終了し、前記実行終了をPE2におけるプロセスCへ伝え、使用していたメモリ領域を開放するステップと
    を具備する
    タスク制御方法。
JP2005351012A 2005-12-05 2005-12-05 プロセッサシステム、タスク制御方法 Pending JP2007156824A (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2005351012A JP2007156824A (ja) 2005-12-05 2005-12-05 プロセッサシステム、タスク制御方法
US11/607,888 US20070130446A1 (en) 2005-12-05 2006-12-04 Processor apparatus including specific signal processor core capable of dynamically scheduling tasks and its task control method
KR1020060122423A KR20070058995A (ko) 2005-12-05 2006-12-05 태스크를 동적으로 스케줄링할 수 있는 전용 신호 프로세서코어를 포함하는 프로세서 장치 및 그 태스크 제어 방법
GB0624331A GB2432937B (en) 2005-12-05 2006-12-05 Processor Apparatus, Including Specific Signal Processor Core Capable of Dynamically Scheduling Tasks, and Task Control Method Therefor
KR1020090024095A KR20090046761A (ko) 2005-12-05 2009-03-20 태스크를 동적으로 스케줄링할 수 있는 전용 신호 프로세서코어를 포함하는 프로세서 장치 및 그 태스크 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005351012A JP2007156824A (ja) 2005-12-05 2005-12-05 プロセッサシステム、タスク制御方法

Publications (2)

Publication Number Publication Date
JP2007156824A true JP2007156824A (ja) 2007-06-21
JP2007156824A5 JP2007156824A5 (ja) 2008-04-17

Family

ID=37711615

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005351012A Pending JP2007156824A (ja) 2005-12-05 2005-12-05 プロセッサシステム、タスク制御方法

Country Status (4)

Country Link
US (1) US20070130446A1 (ja)
JP (1) JP2007156824A (ja)
KR (2) KR20070058995A (ja)
GB (1) GB2432937B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8074248B2 (en) 2005-07-26 2011-12-06 Activevideo Networks, Inc. System and method for providing video content associated with a source image to a television in a communication network
US9826197B2 (en) 2007-01-12 2017-11-21 Activevideo Networks, Inc. Providing television broadcasts over a managed network and interactive content over an unmanaged network to a client device
EP2632164A3 (en) 2007-01-12 2014-02-26 ActiveVideo Networks, Inc. Interactive encoded content system including object models for viewing on a remote device
US9772853B1 (en) * 2007-09-17 2017-09-26 Rocket Software, Inc Dispatching a unit of work to a specialty engine or a general processor and exception handling including continuing execution until reaching a defined exit point or restarting execution at a predefined retry point using a different engine or processor
AU2008304105B2 (en) * 2007-09-27 2013-08-29 Hilton, Ronald N Apparatus, system, and method for cross-system proxy-based task offloading
US20090133022A1 (en) * 2007-11-15 2009-05-21 Karim Faraydon O Multiprocessing apparatus, system and method
CN101471810B (zh) * 2007-12-28 2011-09-14 华为技术有限公司 一种在集群环境下实现任务的方法、装置及***
JP5675765B2 (ja) * 2009-03-17 2015-02-25 アクティブビデオ ネットワークス, インコーポレイテッド オンデマンドビデオのシンジケートのための装置および方法
JP5578811B2 (ja) * 2009-06-30 2014-08-27 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びプログラム
US7959061B2 (en) * 2009-09-25 2011-06-14 Multi Packaging Solutions, Inc. Folded pot cover
US9676511B2 (en) 2009-09-25 2017-06-13 Multi Packaging Solutions, Inc. Foldable packaging container
KR101126177B1 (ko) * 2009-11-06 2012-03-22 서강대학교산학협력단 사용기록 기반의 동적 스케줄링 방법, 장치 및 그 기록 매체
KR101653204B1 (ko) * 2010-03-16 2016-09-01 삼성전자주식회사 멀티 코어 시스템에서 데이터 병렬 처리를 위한 동적 태스크 관리 시스템 및 방법
EP2628306B1 (en) 2010-10-14 2017-11-22 ActiveVideo Networks, Inc. Streaming digital video between video devices using a cable television system
US9204203B2 (en) 2011-04-07 2015-12-01 Activevideo Networks, Inc. Reduction of latency in video distribution networks using adaptive bit rates
US10409445B2 (en) 2012-01-09 2019-09-10 Activevideo Networks, Inc. Rendering of an interactive lean-backward user interface on a television
US9800945B2 (en) 2012-04-03 2017-10-24 Activevideo Networks, Inc. Class-based intelligent multiplexing over unmanaged networks
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects
WO2014145921A1 (en) 2013-03-15 2014-09-18 Activevideo Networks, Inc. A multiple-mode system and method for providing user selectable video content
US9294785B2 (en) 2013-06-06 2016-03-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
US9219922B2 (en) 2013-06-06 2015-12-22 Activevideo Networks, Inc. System and method for exploiting scene graph information in construction of an encoded video sequence
EP3005712A1 (en) 2013-06-06 2016-04-13 ActiveVideo Networks, Inc. Overlay rendering of user interface onto source video
CN103336756B (zh) * 2013-07-19 2016-01-27 中国人民解放军信息工程大学 一种数据计算节点的生成装置
US9788029B2 (en) 2014-04-25 2017-10-10 Activevideo Networks, Inc. Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119300A (ja) * 1990-08-31 1994-04-28 Texas Instr Inc <Ti> マルチプロセッサシステム用のスケジューリング方法と装置
JPH11259318A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式
JP2002183750A (ja) * 2000-10-04 2002-06-28 Terarikon Inc レンダリングシステム及びレンダリング方法
JP2002202893A (ja) * 2000-10-24 2002-07-19 Texas Instruments Inc 多重タスクの実行を制御する方法と処理回路

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63143660A (ja) * 1986-12-08 1988-06-15 Fanuc Ltd コ・プロセツサを有する演算処理装置
JPS63158657A (ja) * 1986-12-23 1988-07-01 Fanuc Ltd コ・プロセツサ制御方式
US4862407A (en) * 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
GB2232514B (en) * 1989-04-24 1993-09-01 Yokogawa Electric Corp Programmable controller
US6230255B1 (en) * 1990-07-06 2001-05-08 Advanced Micro Devices, Inc. Communications processor for voice band telecommunications
CA2069711C (en) * 1991-09-18 1999-11-30 Donald Edward Carmon Multi-media signal processor computer system
JP2516317B2 (ja) * 1992-10-13 1996-07-24 インターナショナル・ビジネス・マシーンズ・コーポレイション デ―タ処理システムとディジタル信号プロセッサへのロ―ディング方法
US5748468A (en) * 1995-05-04 1998-05-05 Microsoft Corporation Prioritized co-processor resource manager and method
US6546442B1 (en) * 1995-10-30 2003-04-08 International Business Machines Corporation Communications adapter having analog and digital interfaces for communications with remote systems
US5721945A (en) * 1996-05-06 1998-02-24 Advanced Micro Devices Microprocessor configured to detect a DSP call instruction and to direct a DSP to execute a routine corresponding to the DSP call instruction
JP4067063B2 (ja) * 1997-11-14 2008-03-26 松下電器産業株式会社 マイクロプロセッサ
US6047367A (en) * 1998-01-20 2000-04-04 International Business Machines Corporation Microprocessor with improved out of order support
US6088785A (en) * 1998-04-15 2000-07-11 Diamond Multimedia Systems, Inc. Method of configuring a functionally redefinable signal processing system
US20020010817A1 (en) * 1999-01-29 2002-01-24 Han-Chung Yeh Host signal processing modem with a signal processing accelerator
GB2348306B (en) * 1999-03-25 2003-07-30 Ibm Data processing systems and method for processing tasks in such systems
FR2792087B1 (fr) * 1999-04-07 2001-06-15 Bull Sa Procede d'amelioration des performances d'un systeme multiprocesseur comprenant une file d'attente de travaux et architecture de systeme pour la mise en oeuvre du procede
US7110417B1 (en) * 2000-07-13 2006-09-19 Nortel Networks Limited Instance memory handoff in multi-processor systems
US6848110B2 (en) * 2000-12-22 2005-01-25 International Business Machines Corporation Automatic feature augmentation for component based application programming interfaces
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US7386326B2 (en) * 2001-09-04 2008-06-10 Texas Instruments Incorporated Programmable task-based co-processor
DE10243856B4 (de) * 2002-09-20 2004-09-30 Siemens Ag Regler und Verfahren zum Betreiben eines Reglers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06119300A (ja) * 1990-08-31 1994-04-28 Texas Instr Inc <Ti> マルチプロセッサシステム用のスケジューリング方法と装置
JPH11259318A (ja) * 1998-03-13 1999-09-24 Hitachi Ltd ディスパッチ方式
JP2002183750A (ja) * 2000-10-04 2002-06-28 Terarikon Inc レンダリングシステム及びレンダリング方法
JP2002202893A (ja) * 2000-10-24 2002-07-19 Texas Instruments Inc 多重タスクの実行を制御する方法と処理回路

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015532990A (ja) * 2012-09-27 2015-11-16 インテル・コーポレーション 複数のコアを有するプロセッサ、共有コア拡張ロジック及び複数の共有コア拡張使用命令
US9582287B2 (en) 2012-09-27 2017-02-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2017224342A (ja) * 2012-09-27 2017-12-21 インテル・コーポレーション プロセッサ及び装置
US10061593B2 (en) 2012-09-27 2018-08-28 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10901748B2 (en) 2012-09-27 2021-01-26 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US10963263B2 (en) 2012-09-27 2021-03-30 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
US11494194B2 (en) 2012-09-27 2022-11-08 Intel Corporation Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions

Also Published As

Publication number Publication date
GB2432937B (en) 2010-03-24
KR20090046761A (ko) 2009-05-11
GB2432937A (en) 2007-06-06
US20070130446A1 (en) 2007-06-07
GB0624331D0 (en) 2007-01-17
KR20070058995A (ko) 2007-06-11

Similar Documents

Publication Publication Date Title
JP2007156824A (ja) プロセッサシステム、タスク制御方法
KR101798369B1 (ko) 휴대용 디바이스에서 동기적 태스크 디스패치를 위한 시스템 및 방법
JP5538442B2 (ja) リアルタイムマルチスレッドスケジューラおよびスケジューリング方法
US9779042B2 (en) Resource management in a multicore architecture
US8972699B2 (en) Multicore interface with dynamic task management capability and task loading and offloading method thereof
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
JP4148223B2 (ja) プロセッサおよび情報処理方法
US7822885B2 (en) Channel-less multithreaded DMA controller
US20120173847A1 (en) Parallel processor and method for thread processing thereof
CN112465129A (zh) 片内异构人工智能处理器
EP1698972A2 (en) Processor and information processing method
JP5673672B2 (ja) マルチコアプロセッサシステム、制御プログラム、および制御方法
US20140022263A1 (en) Method for urgency-based preemption of a process
CN112463709A (zh) 可配置的异构人工智能处理器
JP2015097106A (ja) マルチスレッドシステムの中でイベントを設定するための技術
JP2009515246A (ja) 集中特化したマルチタスク及びマルチフロー処理をリアルタイム実行する手法及びシステム
US20130298136A1 (en) Multiprocessor system
JP2006243864A (ja) プロセッサおよび情報処理方法
Govindarajan et al. Design and performance evaluation of a multithreaded architecture
KR20140004654A (ko) 처리 디바이스의 동기 동작을 위한 방법 및 시스템
CN103823712A (zh) 一种多cpu虚拟机***的数据流处理方法和装置
JP2008523491A (ja) アクティブオブジェクトへのアクセスを提供する方法及びシステム
US20120066415A1 (en) Methods and systems for direct memory access (dma) in-flight status
JP2005327007A (ja) 組込みコンピュータ制御プログラム、そのプログラムを記録した記録媒体、及び組込みシステム
US20150363227A1 (en) Data processing unit and method for operating a data processing unit

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080229

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100326

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100524

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101025

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110628