WO2010095182A1 - マルチスレッドプロセッサ及びデジタルテレビシステム - Google Patents

マルチスレッドプロセッサ及びデジタルテレビシステム Download PDF

Info

Publication number
WO2010095182A1
WO2010095182A1 PCT/JP2009/003566 JP2009003566W WO2010095182A1 WO 2010095182 A1 WO2010095182 A1 WO 2010095182A1 JP 2009003566 W JP2009003566 W JP 2009003566W WO 2010095182 A1 WO2010095182 A1 WO 2010095182A1
Authority
WO
WIPO (PCT)
Prior art keywords
thread
memory
belonging
processor
media
Prior art date
Application number
PCT/JP2009/003566
Other languages
English (en)
French (fr)
Inventor
山本崇夫
尾崎伸治
掛田雅英
中島雅逸
Original Assignee
パナソニック株式会社
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 パナソニック株式会社 filed Critical パナソニック株式会社
Priority to PCT/JP2010/000939 priority Critical patent/WO2010095416A1/ja
Priority to CN2010800079009A priority patent/CN102317912A/zh
Priority to JP2011500502A priority patent/JP5412504B2/ja
Publication of WO2010095182A1 publication Critical patent/WO2010095182A1/ja
Priority to US13/209,804 priority patent/US20120008674A1/en

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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Definitions

  • the present invention can provide a multi-thread processor that can improve area efficiency, and can guarantee performance and robustness.
  • the processor system 10 is a system LSI that performs various signal processing related to the video / audio stream, and executes a plurality of threads using the external memory 15.
  • the processor system 10 is mounted on a digital television system, a DVD recorder, a digital camera, a mobile phone device, and the like.
  • the processor system 10 includes a processor block 11, a stream I / O block 12, an AVIO (Audio Visual Input Output) block 13, and a memory IF block 14.
  • the memory IF block 14 requests data in parallel between the processor block 11, the stream I / O block 12, the AVIO block 13, and the memory IF block 14 and the external memory 15.
  • the circuit block is controlled as follows.
  • the memory IF block 14 secures a transfer band between the processor block 11, the stream I / O block 12, the AVIO block 13, and the memory IF block 14 and the external memory 15 in response to a request from the processor block 11. And guarantee the latency.
  • the FPU allocation unit 108 allocates a plurality of FPUs 107 to LPs.
  • the FPU allocation unit 108 includes an FPU allocation register 137.
  • the cache memory 109 is a memory that temporarily stores data used in the processor block 11. Further, the cache memory 109 uses independent and different data areas (way 168) for LPs having different TVIDs 140.
  • the cache memory 109 includes a way designation register 136.
  • 16A and 16B are diagrams illustrating an example of data stored in the way designation register 136.
  • FIG. 16A and 16B are diagrams illustrating an example of data stored in the way designation register 136.
  • FIG. 17 is a diagram schematically showing the way 168 allocation processing by the cache memory 109.
  • the monitor program divides a plurality of threads into a plurality of groups by setting TVID 140, PVID 141, and MVID 142 of the plurality of contexts 124 (S121, S122, and S123).
  • the monitor program sets the interrupt destination LP or the like in the interrupt control register 134 in correspondence with each interrupt factor (S129).
  • the monitor program can perform interrupt control independent of host processing and media processing.
  • circuits are not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.

Abstract

 本発明に係るプロセッサシステム(10)は、複数のスレッドのそれぞれが、ホスト処理に属するスレッドか、メディア処理に属するスレッドかを示すTVID(140)を保持する物理プロセッサ(121)及びコンテキストメモリ(127)と、複数の資源を、ホスト処理に属するスレッドに対応付ける第1資源と、メディア処理に属するスレッドに対応付ける第2資源とに分割する仮想モニタレベルのOSと、TVID(140)を参照して、ホスト処理に属するスレッドに第1資源を割り当て、メディア処理に属するスレッドに第2資源を割り当てるTLB(104)、キャッシュメモリ(109)及びFPU割り当て部(108)等と、割り当てられた資源を用いてスレッドを実行する実行部(101)とを備える。

Description

マルチスレッドプロセッサ及びデジタルテレビシステム
 本発明は、マルチスレッドプロセッサ及びデジタルテレビシステムに関し、特に、複数のスレッドを同時に実行するマルチスレッドプロセッサに関する。
 近年のデジタル技術、動画像及び音声の圧縮伸張技術の急速な進展に伴い、デジタルテレビ、デジタルビデオレコーダ(DVDレコーダ等)、携帯電話、及び映像音声機器(ビデオカメラ等)に搭載されるプロセッサに、さらなる高性能化が求められている。
 例えば、高性能化を実現するプロセッサとしてマルチスレッドプロセッサが知られている(例えば、特許文献1参照)。このマルチスレッドプロセッサは、複数のスレッドを同時に実行することにより、処理効率を向上できる。また、マルチスレッドプロセッサは、複数のスレッドの実行において、資源の共有が可能となるので、複数のプロセッサを独立に設ける場合に比べて、プロセッサの面積効率を向上できる。
 一方、このようなプロセッサでは、リアルタイム性が要求されない制御関連のホスト処理と、リアルタイム性が要求される動画像の圧縮及び伸張処理等のメディア処理とが行われる。
 例えば、特許文献2記載の映像音声処理用集積回路は、ホスト処理を行うマイコンブロックと、メディア処理を行うメディア処理ブロックとをそれぞれ備える。
特開2006-302261号公報 国際公開第2005/096168号
 しかしながら、特許文献1記載のマルチスレッドプロセッサでは、同時に複数のスレッドが資源を共用するために、競合によって性能の保証、及び堅牢性が低下するという課題がある。具体的には、メディア処理で使用されている資源、例えば、キャッシュメモリに格納されているデータが、ホスト処理により追い出されることにより、メディア処理が当該データを再度キャッシュする必要が生じる。これにより、メディア処理の性能の保証が困難となる。
 また、特許文献1のマルチスレッドプロセッサは、設計時においても、他方の処理の影響を制御する必要があるので、特許文献2記載の映像音声処理用集積回路のようにマイコンブロックとメディア処理ブロックとを備える場合に比べて、設計が複雑となる。さらに、予期しない誤動作が発生する可能性が増加することによりシステムの堅牢性が低下する。
 一方で、特許文献2記載の映像音声処理用集積回路は、ホスト処理を行うマイコンブロックと、メディア処理を行うメディア処理ブロックとを個別に設けているために、上述した性能の保証及び堅牢性の低下を低減できる。しかしながら、特許文献2記載の映像音声処理用集積回路は、ホスト処理を行うマイコンブロックと、メディア処理を行うメディア処理ブロックとを個別に設けているために、資源の共用が効率的には行われない。これにより、特許文献2映像音声処理用集積回路は、プロセッサの面積効率が悪いという課題を有する。
 そこで、本発明は、面積効率を向上できるとともに、性能の保証及び堅牢性を向上できるマルチスレッドプロセッサを提供することを目的とする。
 上記目的を達成するために、本発明に係るマルチスレッドプロセッサは、複数のスレッドを同時に実行するマルチスレッドプロセッサであって、前記複数のスレッドの実行に用いられる複数の資源と、前記複数のスレッドのそれぞれが、ホスト処理に属するスレッドか、メディア処理に属するスレッドかを示すタグ情報を保持する保持手段と、前記複数の資源を、前記ホスト処理に属するスレッドに対応付ける第1資源と、前記メディア処理に属するスレッドに対応付ける第2資源とに分割する分割手段と、前記タグ情報を参照して、前記ホスト処理に属するスレッドに前記第1資源を割り当て、前記メディア処理に属するスレッドに前記第2資源を割り当てる割り当て手段と、前記割り当て手段により割り当てられた前記第1資源を用いて前記ホスト処理に属するスレッドを実行し、前記割り当て手段により割り当てられた前記第2資源を用いて前記メディア処理に属するスレッドを実行する実行手段とを備える。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、資源をホスト処理とメディア処理とで共有することで、面積効率を向上できる。さらに、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とにそれぞれ独立した資源を割り当てることができる。これにより、ホスト処理とメディア処理との間で資源の競合が生じないので、本発明に係るマルチスレッドプロセッサは、性能の保証、及び堅牢性を向上できる。
 また、前記実行手段は、前記ホスト処理に属するスレッドを制御する第1のオペレーティングシステムと、前記メディア処理に属するスレッドを制御する第2のオペレーティングシステムと、前記第1のオペレーティングシステム及び前記第2のオペレーティングシステムを制御する第3のオペレーティングシステムとを実行し、前記分割手段による前記分割は、前記第3のオペレーティングシステムにより行われてもよい。
 また、前記資源は、複数のウェイを有するキャッシュメモリを含み、前記分割手段は、前記複数のウェイを、前記ホスト処理に属するスレッドに対応付ける第1ウェイと、前記メディア処理に属するスレッドに対応付ける第2ウェイとに分割し、前記キャッシュメモリは、前記タグ情報を参照して、前記ホスト処理に属するスレッドのデータを前記第1ウェイにキャッシュし、前記メディア処理に属するスレッドのデータを前記第2ウェイにキャッシュしてもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とでキャッシュメモリを共用するとともに、ホスト処理とメディア処理とにそれぞれ独立したキャッシュメモリの領域を割り当てることができる。
 また、前記マルチスレッドプロセッサは、メモリを用いて前記複数のスレッドを実行し、前記資源は、それぞれが前記メモリの論理アドレスと物理アドレスとの対応関係を示す複数のエントリを有するTLB(Translation Lookaside Buffer)を含み、前記分割手段は、前記複数のエントリを、前記ホスト処理に属するスレッドに対応付ける第1エントリと、前記メディア処理に属するスレッドに対応付ける第2エントリとに分割し、前記TLBは、前記タグ情報を参照して、前記ホスト処理に属するスレッドに対して前記第1エントリを用い、前記メディア処理に属するスレッドに対して前記第2エントリを用いてもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とでTLBを共用するとともに、ホスト処理とメディア処理とにそれぞれ独立したTLBのエントリを割り当てることができる。
 また、前記各エントリは、さらに、前記タグ情報を含み、前記論理アドレスと前記タグ情報との組みに対して、一つの物理アドレスが対応付けられてもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とにそれぞれ独立した論理アドレス空間を割り当てることができる。
 また、前記マルチスレッドプロセッサは、メモリを用いて前記複数のスレッドを実行し、前記資源は、前記メモリの物理アドレス空間を含み、前記分割手段は、前記メモリの物理アドレス空間を、前記ホスト処理に属するスレッドに対応付ける第1物理アドレス範囲と、前記メディア処理に属するスレッドに対応付ける第2物理アドレス範囲とに分割してもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とにそれぞれ独立した物理アドレス空間を割り当てることができる。
 また、前記マルチスレッドプロセッサは、さらに、前記第1物理アドレス範囲に前記メディア処理に属するスレッドからのアクセスがあった場合と、前記第2物理アドレス範囲に前記ホスト処理に属するスレッドからのアクセスがあった場合とに割り込みを発生する物理アドレス管理手段を備えてもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理及びメディア処理のスレッドが互いに他の処理のスレッドが用いているメモリ領域にアクセスしようとした場合には、割り込みを発生する。これにより、本発明に係るマルチスレッドプロセッサは、システムの堅牢性を向上できる。
 また、前記マルチスレッドプロセッサは、メモリを用いて前記複数のスレッドを実行し、前記マルチスレッドプロセッサは、さらに、前記ホスト処理に属するスレッド及び前記メディア処理に属するスレッドからの要求に応じて、前記メモリにアクセスするメモリインターフェース手段を備え、前記資源は、前記メモリとメモリインターフェース手段との間のバスバンド幅であり、前記分割手段は、前記バスバンド幅を、前記ホスト処理に属するスレッドに対応付ける第1バスバンド幅と、前記メディア処理に属するスレッドに対応付ける第2バスバンド幅とに分割し、前記メモリインターフェース手段は、前記タグ情報を参照して、前記ホスト処理に属するスレッドから前記メモリへのアクセスが要求された場合、前記第1バスバンド幅を用いて、前記メモリへのアクセスを行い、前記メディア処理に属するスレッドから前記メモリへのアクセスが要求された場合、前記第2バスバンド幅を用いて、前記メモリへのアクセスを行ってもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とにそれぞれ独立したバスバンド幅を割り当てることができる。これにより、本発明に係るマルチスレッドプロセッサは、ホスト処理及びメディア処理それぞれの性能保証及びリアルタイム性の保証を達成することができる。
 また、前記資源は、複数のFPU(Floating Point number processing Unit)を含み、前記分割手段は、前記複数のFPUを、前記ホスト処理に属するスレッドに対応付ける第1FPUと、前記メディア処理に属するスレッドに対応付ける第2FPUとに分割してもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とでFPUを共用するとともに、ホスト処理とメディア処理とにそれぞれ独立したFPUを割り当てることができる。
 また、前記分割手段は、割り込み要因に対応させて、前記複数のスレッドのうちいずれかを設定し、前記マルチスレッドプロセッサは、さらに、割り込み要因が発生した際に、前記分割手段により設定された、当該割り込み要因に対応するスレッドに割り込みを送る割り込み制御部を備えてもよい。
 この構成によれば、本発明に係るマルチスレッドプロセッサは、ホスト処理とメディア処理とにそれぞれ独立した割り込み制御を行える。
 また、前記ホスト処理は、システムの制御を行い、前記メディア処理は、映像の圧縮又は伸張を行ってもよい。
 なお、本発明は、このようなマルチスレッドプロセッサとして実現できるだけでなく、マルチスレッドプロセッサに含まれる特徴的な手段をステップとするマルチスレッドプロセッサの制御方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD-ROM等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
 さらに、本発明は、このようなマルチスレッドプロセッサの機能の一部又は全てを実現する半導体集積回路(LSI)として実現したり、このようなマルチスレッドプロセッサを備えるデジタルテレビシステム、DVDレコーダ、デジタルカメラ及び携帯電話機器として実現したりできる。
 以上より、本発明は、面積効率を向上できるとともに、性能の保証及び堅牢性を向上できるマルチスレッドプロセッサを提供できる。
図1は、本発明の実施の形態に係るプロセッサシステムの構成を示すブロック図である。 図2は、本発明の実施の形態に係るプロセッサブロックの構成を示すブロック図である。 図3は、本発明の実施の形態に係るコンテキストの構成を示す図である。 図4は、本発明の実施の形態に係る論理アドレス空間の管理を示す図である。 図5は、本発明の実施の形態に係るアドレス管理テーブルの構成を示す図である。 図6は、本発明の実施の形態における、論理アドレスと物理アドレスとの対応関係を示す図である。 図7は、本発明の実施の形態に係るエントリ指定レジスタの構成を示す図である。 図8は、本発明の実施の形態に係るTLBによるエントリの割り当て処理を示す図である。 図9は、本発明の実施の形態に係るTLBによる処理の流れを示すフローチャートである。 図10は、本発明の実施の形態に係る物理保護レジスタの構成を示す図である。 図11は、本発明の実施の形態において、PVIDにより保護される物理アドレス空間を示す図である。 図12は、本発明の実施の形態に係る保護違反レジスタの構成を示す図である。 図13は、本発明の実施の形態に係るエラーアドレスレジスタの構成を示す図である。 図14は、本発明の実施の形態に係るFPU割り当てレジスタの構成を示す図である。 図15は、本発明の実施の形態に係るFPU割り当て部によるFPUの割り当て処理を示す図である。 図16Aは、本発明の実施の形態に係るウェイ指定レジスタの構成を示す図である。 図16Bは、本発明の実施の形態に係るウェイ指定レジスタの構成を示す図である。 図17は、本発明の実施の形態に係るキャッシュメモリによるウェイの割り当て処理を模式的に示す図である。 図18は、本発明の実施の形態に係るキャッシュメモリによる処理の流れを示すフローチャートである。 図19は、本発明の実施の形態に係る割り込み制御レジスタの構成を示す図である。 図20は、本発明の実施の形態に係るプロセッサシステムにおける、メモリアクセス管理を示す図である。 図21は、本発明の実施の形態に係るメモリIFブロックによるバスバンド幅の割り当てを示す図である。 図22は、本発明の実施の形態に係るプロセッサシステムにおける資源分割処理の流れを示すフローチャートである。
 以下、本発明に係るプロセッサシステムの実施の形態について、図面を参照しながら詳細に説明する。
 本発明の実施の形態に係るプロセッサシステムは、資源を共用してホスト処理とメディア処理とを行う単一のプロセッサブロックを備える。さらに、本発明の実施の形態に係るプロセッサシステムは、ホスト処理のスレッドとメディア処理のスレッドとに、異なるタグ情報を与えるとともに、プロセッサシステムが有する資源を当該タグ情報に対応付けて分割する。これにより、本発明の実施の形態に係るプロセッサシステムは、面積効率を向上できるとともに、性能の保証及び堅牢性を向上できる。
 まず、本発明の実施の形態に係るプロセッサシステムの構成を説明する。
 図1は、本発明の実施の形態に係るプロセッサシステム10の基本構成を示す機能ブロック図である。
 このプロセッサシステム10は、映像音声ストリームに関する様々な信号処理を行うシステムLSIであり、外部メモリ15を用いて複数のスレッドを実行する。例えば、プロセッサシステム10は、デジタルテレビシステム、DVDレコーダ、デジタルカメラ及び携帯電話機器等に搭載される。このプロセッサシステム10は、プロセッサブロック11と、ストリームI/Oブロック12と、AVIO(Audio Visual Input Output)ブロック13と、メモリIFブロック14とを備える。
 プロセッサブロック11は、プロセッサシステム10全体を制御するプロセッサであり、制御バス16を介してストリームI/Oブロック12、AVIOブロック13、及びメモリIFブロック14を制御したり、データバス17及びメモリIFブロック14を介して外部メモリ15にアクセスしたりする。また、プロセッサブロックは、データバス17及びメモリIFブロック14を介して外部メモリ15から圧縮画像音声ストリーム等の画像音声データを読み出し、圧縮又は伸張等のメディア処理を行った後に、再び、データバス17及びメモリIFブロック14を介して、処理後の画像データや音声データを外部メモリ15に格納する回路ブロックである。
 つまり、プロセッサブロック11は、映像音声の出力サイクル(フレームレート等)に依存しない非リアルタイムな汎用(制御関連の)処理であるホスト処理と、映像音声の出力サイクルに依存するリアルタイムな汎用(メディア関連の)処理であるメディア処理とを行う。
 例えば、プロセッサシステム10をデジタルテレビシステムに搭載する場合、ホスト処理は、当該デジタルテレビシステムの制御を行い、メディア処理は、デジタル映像の伸張を行う。
 ストリームI/Oブロック12は、プロセッサブロック11による制御の下で、蓄積メディア及びネットワーク等の周辺デバイスから圧縮画像音声ストリーム等のストリームデータを読み込み、データバス18及びメモリIFブロック14を介して外部メモリ15に格納したり、その逆方向のストリーム転送をしたりする回路ブロックである。このように、ストリームI/Oブロック12は、映像音声の出力サイクルに依存しない非リアルタイムなIO処理を行う。
 AVIOブロック13は、プロセッサブロック11による制御の下で、データバス19及びメモリIFブロック14を介して外部メモリ15から画像データ及び音声データ等を読み出し、各種グラフィック処理等を施した後に、画像信号及び音声信号として外部の表示装置やスピーカ等に出力したり、その逆方向のデータ転送をしたりする回路ブロックである。このように、AVIOブロック13は、映像音声の出力サイクルに依存するリアルタイムなIO処理を行う。
 メモリIFブロック14は、プロセッサブロック11による制御の下で、プロセッサブロック11、ストリームI/Oブロック12、AVIOブロック13、及びメモリIFブロック14と外部メモリ15との間で並列にデータ要求が行われるように制御する回路ブロックである。また、メモリIFブロック14は、プロセッサブロック11からの要求に応じて、プロセッサブロック11、ストリームI/Oブロック12、AVIOブロック13、及びメモリIFブロック14と外部メモリ15との間の転送帯域を確保するとともに、レイテンシ保証を行う。
 次に、プロセッサブロック11の詳細な構成を説明する。
 図2は、プロセッサブロック11の構成を示す機能ブロック図である。
 このプロセッサブロック11は、実行部101と、VMPC(仮想マルチプロセッサ制御部)102と、TLB(Translation Lookaside Buffer)104と、物理アドレス管理部105と、FPU(Floating Point number processing Unit:浮動小数点演算装置)107と、FPU割り当て部108と、キャッシュメモリ109と、BCU110と、割り込み制御部111とを備える。
 ここで、本発明の実施の形態に係るプロセッサブロック11は、仮想マルチプロセッサ(VMP:Virtual Multi Processor)として機能する。仮想マルチプロセッサとは、一般的に、複数の論理プロセッサ(LP:Logical Processor)の機能を時分割に演じる命令並列プロセッサの一種である。ここで一つのLPは、実体的には、物理プロセッサ121(PP:Physical Processor)のレジスタ群に設定される一つのコンテキストに対応する。各LPに割り当てる時間単位(TS:Time Slot)の頻度を管理することによって、各LPによって実行されるアプリケーション間の負荷バランスを保つことができる。なお、VMPの構成及び動作については、その代表的な一例が特開2003-271399号公報(特許文献:3)に詳しく開示されているので、ここでは詳細な説明を省略する。
 また、プロセッサブロック11は、マルチスレッドパイプライン型プロセッサ(マルチスレッドプロセッサ)として機能する。マルチスレッドパイプライン型プロセッサは、同時に複数のスレッドを処理し、さらに、実行パイプラインの空きを埋めるように複数のスレッドを処理することにより、処理効率を向上できる。なお、マルチスレッドパイプライン型プロセッサの構成及び動作については、その代表的な一例が特開2008-123045号公報(特許文献:4)に詳しく開示されているので、ここでは詳細な説明を省略する。
 実行部101は、複数のスレッドを同時に実行する。この実行部101は、複数の物理プロセッサ121と、演算制御部122と、演算部123とを備える。
 複数の物理プロセッサ121は、それぞれ、レジスタを備える。このレジスタそれぞれは、1以上のコンテキスト124を保持する。ここで、コンテキスト124とは、複数のスレッド(LP)のそれぞれに対応し、対応するスレッドを実行するために必要な制御情報及びデータ情報等である。各物理プロセッサ121は、スレッド(プログラム)中の命令をフェッチ及び解読し、解読結果を演算制御部122に発行する。
 演算部123は、複数の演算器を備え、同時に複数のスレッドを実行する。
 演算制御部122は、マルチスレッドパイプライン型プロセッサにおけるパイプライン制御を行う。具体的には、演算制御部122は、実行パイプラインの空きを埋めるように複数のスレッドを、演算部123が備える演算器に割り当てたうえで実行させる。
 VMPC102は、仮想マルチスレッド処理を制御する。このVMPC102は、スケジューラ126と、コンテキストメモリ127と、コンテキスト制御部128とを備える。
 スケジューラ126は、複数のスレッドの優先度に従い、複数のスレッドの実行順序、及びスレッドを実行するPPを決定するスケジューリングを行うハードウェアスケジューラである。具体的には、スケジューラ126は、LPをPPにアサインする又はアンアサインすることにより、実行部101が実行するスレッドを切り替える。
 コンテキストメモリ127は、複数のLPにそれぞれ対応する複数のコンテキスト124を記憶する。なお、このコンテキストメモリ127又は複数の物理プロセッサ121が備えるレジスタが、本発明の保持手段に相当する。
 コンテキスト制御部128は、所謂コンテキストの復帰及び退避を行う。具体的には、コンテキスト制御部128は、実行が完了した物理プロセッサ121が保持するコンテキスト124をコンテキストメモリ127に書き込む。また、コンテキスト制御部128は、これから実行されるスレッドのコンテキスト124をコンテキストメモリ127から読み出し、読み出したコンテキスト124を当該スレッドに対応するLPがアサインされた物理プロセッサ121に転送する。
 図3は、一つのコンテキスト124の構成を示す図である。なお、図3にはスレッドを実行するために必要な通常の制御情報及び通常のデータ情報等は図示しておらず、本発明の実施の形態において新たにコンテキスト124に追加された情報のみを示している。
 図3に示すように、コンテキスト124は、TVID(TLBアクセス仮想識別子)140と、PVID(物理メモリ保護仮想識別子)141と、MVID(メモリアクセス仮想識別子)142とを含む。
 このTVID140、PVID141及びMVID142は、複数のスレッド(LP)のそれぞれが、ホスト処理に属するスレッドか、メディア処理に属するスレッドかを示すタグ情報である。
 TVID140は、複数の仮想メモリ保護グループを設定するために用いられる。例えば、ホスト処理のスレッドと、メディア処理のスレッドとにそれぞれ異なるTVID140が付与される。実行部101は、このTVID140を用いて論理アドレス空間のページ管理情報をそれぞれ独立に作成することができる。
 PVID141は、物理メモリ領域のアクセスを制限するために用いられる。
 MVID142は、メモリIFブロック14へのアクセス形態を設定するために用いられる。メモリIFブロック14は、このMVID142を用いて、レイテンシ(応答性重視)を優先するか、バンド幅(性能保証)を優先するかを決定する。
 図4は、プロセッサシステム10における論理アドレス空間の管理を模式的に示す図である。図4に示すように、プロセッサシステム10は、ユーザレベル、スーパーバイザーレベル及び仮想モニタレベルの3つの階層により制御される。
 ここでユーザレベルは、スレッド(LP)ごとの制御を行う階層である。スーパーバイザーレベルは、複数のスレッドの制御を行うオペレーティングシステム(OS)に対応する階層である。例えば、図4に示すようにスーパーバイザーレベルには、ホスト処理のOSであるLinuxカーネルと、メディア処理のOSであるSystem Managerとが含まれる。
 仮想モニタレベルは、スーパーバイザーレベルの複数のOSを制御する階層である。具体的には、仮想モニタレベルのOS(モニタプログラム)により、TVID140を用いた論理アドレス空間の保証が行われる。つまり、プロセッサシステム10は、複数のOSが用いる論理アドレス空間が互いに干渉しないように、論理アドレス空間を管理する。例えば、各コンテキストのTVID140、PVID141及びMVID142は、この仮想モニタレベルでのみ設定することが出来るようにしている。
 また、仮想モニタレベルのOSは、プロセッサシステム10が有する複数の資源を、ホスト処理に属するスレッドに対応付ける第1資源と、メディア処理に属するスレッドに対応付ける第2資源とに分割する本発明の分離手段である。ここで資源とは、具体的には、外部メモリ15のメモリ領域(論理アドレス空間及び物理アドレス空間)、キャッシュメモリ109のメモリ領域、TLB104のメモリ領域、及びFPU107である。
 このように、仮想モニタレベルで、資源を分割することにより、設計者は、ホスト処理とメディア処理とが独立したプロセッサにより実行されている場合と同様に、ホスト処理及びメディア処理のOSを設計できる。
 TLB104は、一種のキャッシュメモリであり、論理アドレスと物理アドレスとの対応関係を示すページテーブルの一部であるアドレス変換テーブル130を保持する。このTLB104は、アドレス変換テーブル130を用いて、論理アドレスと物理アドレス間の変換を行う。
 図5は、アドレス変換テーブル130の構成を示す図である。
 図5に示すように、アドレス変換テーブル130は、複数のエントリ150を含む。各エントリ150は、論理アドレスを識別するためのTLBタグ部151と、当該TLBタグ部151に対応付けられたTLBデータ部152とを含む。TLBタグ部151は、VPN153と、TVID140と、PID154とを含む。TLBデータ部152は、PPN155と、Attribute156とを含む。
 VPN153は、ユーザレベルの論理アドレスであり、具体的には、論理アドレス空間のページNoである。
 PID154は、当該データを用いるプロセスを識別するためのIDである。
 PPN155は、当該TLBタグ部151に対応付けられた物理アドレスであり、具体的には、物理アドレス空間のページNoである。
 Attribute156は、当該TLBタグ部151に対応付けられたデータの属性を示す。具体的には、Attribute156は、当該データへのアクセスの可否、当該データをキャッシュメモリ109に格納するか格納しないか、当該データが特権を有するか否か等を示す。
 また、TLB104は、複数のスレッド(LP)が用いる論理アドレス空間の管理を行う。
 図6は、プロセッサシステム10における論理アドレスと物理アドレスとの対応関係を模式的に示す図である。上述したように、TLB104は、プロセスごとの論理アドレス(VPN153)とPID154とTVID140との組に対して、一つの物理アドレス(PPN155)を対応させる。このように、同じTVID140をもつLP上のスーパーバイザーレベルでは、プロセスごとの論理アドレス(VPN153)とPID154との組に対して一つの物理アドレスを対応付けることで、各プロセスの論理アドレスを物理アドレスと対応させることができる。
 ここで、TLB104の更新時に、更新されるエントリ150のTVID140は、更新を行うLPに設定されているTVID140が設定される。
 さらに、TLB104は、プロセスごとの論理アドレス(VPN153)とPID154とにTVID140を加えた組に対して、一つの物理アドレス(PPN155)を対応させる。これにより、TLB104は、仮想モニタレベルにおいて、ホスト処理とメディア処理とにそれぞれ異なるTVID140を設定することにより、ホスト処理とメディア処理とに独立した論理アドレス空間を与えることができる。
 また、このTLB104は、エントリ指定レジスタ135を備える。エントリ指定レジスタ135は、TVID140に割り当てるエントリ150を指定する情報を保持する。
 図7は、エントリ指定レジスタ135に格納されるデータの一例を示す図である。図7に示すように、エントリ指定レジスタ135は、TVID140とエントリ150との対応関係を保持する。また、エントリ指定レジスタ135は、仮想モニタレベルのOS(モニタプログラム)により設定及び更新される。
 TLB104は、エントリ指定レジスタ135に設定された情報を用いて、TVID140ごとに、使用するエントリ150を決定する。具体的には、TLB104は、TLBミス(LPから入力された論理アドレス(TLBタグ部151)をアドレス変換テーブル130に保持していない)の場合、当該LPのTVID140に対応するエントリ150のデータをリプレースする。
 図8は、TLB104でのエントリ150の割り当て状態を模式的に示す図である。
 図8に示すように、複数のエントリ150が、複数のLPにより共有される。さらに、TLB104は、TVID140を用いて、同じTVID140を有するLP間で、エントリ150を共有させる。例えば、TVID0を有するLP0には、エントリ0~エントリ2が割り当てられ、TVID1を有するLP1及びLP2には、エントリ3~エントリ7が割り当てられる。これにより、TLB104は、ホスト処理に属するスレッドに対して、エントリ0~エントリ2を用い、メディア処理に属するスレッドに対してエントリ3~エントリ7を用いることができる。
 なお、TVID0有するLP0と、TVID1を有するLP1及びLP2との両方からから更新可能なエントリ150を設定してもよい。
 図9は、TLB104による処理の流れを示すフローチャートである。
 図9に示すように、LPからの外部メモリ15へのアクセスが発生した場合、まず、TLB104は、アクセス元のLPから入力された論理アドレス(VPN153、TVID140及びPID154)と同じ論理アドレスを格納しているか否かを判定する(S101)。
 格納していない場合、つまりTLBミスの場合(S101でYes)、TLB104は、アクセス元のLPのTVID140に割り当てられたエントリ150を更新する。言い換えると、エントリ150に既にデータが格納させている場合には、TLB104は、アクセス元のLPのTVID140と、同一のTVID140のエントリ150を更新する(S102)。具体的には、TLB104は、外部メモリ15等に格納されているページテーブルから、TLBミスした論理アドレスと物理アドレスとの対応関係を読み出し、読み出した対応関係を、アクセス元のLPのTVID140に割り当てられたエントリ150に格納する。
 次に、TLB104は、更新した対応関係を用いて、論理アドレスを物理アドレスに変換する(S103)。
 一方、ステップS101で、LPから入力された論理アドレスと同じ論理アドレスを格納している場合、つまりTLBヒットの場合(S101でNo)、TLB104は、TLBヒットした対応関係を用いて、論理アドレスを物理アドレスに変換する(S103)。
 ここで、外部メモリ15等に格納されているページテーブルは、TVID140毎又はPVID141毎に、外部メモリ15の物理アドレスが割り当てられるように、予め作成されている。このページテーブルは、例えば、スーパーバイザーレベル、又は仮想モニタレベルのOSにより作成及び更新される。
 物理アドレス管理部105は、PVID141を用いて物理アドレス空間のアクセス保護を行う。この物理アドレス管理部105は、複数の物理メモリ保護レジスタ131と、保護違反レジスタ132と、エラーアドレスレジスタ133とを備える。
 各物理メモリ保護レジスタ131は、物理アドレス範囲ごとに、当該物理アドレス範囲にアクセス可能なLPを示す情報を保持する。
 図10は、一つの物理メモリ保護レジスタ131に保持される情報の構成を示す図である。図10に示すように、物理メモリ保護レジスタ131は、BASEADDR161と、PS162と、PN163と、PVID0WE~PVID3WE164と、PVID0RE~PVID3WE165とを含む情報を保持する。
 BASEADDR161、PS162、及びPN163は、物理アドレス範囲を指定する情報である。具体的には、BASEADDR161は、指定する物理アドレス範囲の先頭のアドレスの上位16ビットである。PS162はページサイズを示す。例えば、ページサイズとして、1KB、64KB、1MB又は64MBが設定される。PN163は、PS162に設定されたページサイズでのページ数を示す。
 PVID0WE~PVID3WE164及びPVID0RE~PVID3RE165は、BASEADDR161、PS162及びPN163で指定される物理アドレス範囲に、アクセス可能なLPのPVID141を示す。
 具体的には、PVID0WE~PVID3WE164は、それぞれPVID141ごとに1ビット設けられる。また、PVID0WE~PVID3WE164は、対応するPVID141が付与されたLPが、指定された物理アドレス範囲にデータを書き込み可能であるか否かを示す。
 PVID0RE~PVID3RE165は、それぞれPVID141ごとに1ビット設けられる。また、PVID0RE~PVID3RE165は、対応するPVID141が付与されたLPが、指定された物理アドレス範囲のデータを読み出し可能であるか否かを示す。
 なお、ここでは、4種類のPVID141が複数のLPに付与されるとするが、2種類以上のPVID141が複数のLPに付与されればよい。
 図11は、PVID141により保護される物理アドレス空間の一例を示す図である。また、ここでは物理アドレス管理部105は、4つの物理メモリ保護レジスタ131(PMG0PR~PMG3PR)を備えるとする。また、PVID0は、Linux(ホスト処理)のLP群に付与され、PVID1は、メディア処理のLPのうち画像処理のLP群に付与され、PVID2は、メディア処理のLPのうち音声処理のLP群に付与され、PVID3は、System Manager(メディア処理のOS)のLP群に付与される。
 また、物理アドレス管理部105は、LPが、当該LPのPVID141で許可されていない物理アドレスにアクセスした場合に例外割り込みを発生するとともに、保護違反レジスタ132に、エラーが発生したアクセス情報を書き込み、かつ、エラーアドレスレジスタ133に、エラーの要因となったアクセスのアクセス先の物理アドレスを書き込む。
 図12は、保護違反レジスタ132に保持されるアクセス情報の構成を示す図である。図12に示すように、保護違反レジスタ132に保持されるアクセス情報は、PVERR167と、PVID141とを含む。PVERR167は、当該エラーが、物理メモリ空間保護違反(LPが、当該LPのPVID141で許可されていない物理アドレスにアクセスしたエラー)であるか否を示す。PVID141は、物理メモリ空間保護違反が発生したPVID141が設定される。
 図13は、エラーアドレスレジスタ133に保持される情報の構成を示す図である。図10に示すように、エラーアドレスレジスタ133は、エラーの要因となったアクセスのアクセス先の物理アドレス(BEA[31:0])を保持する。
 以上のように、PVID141を用いて、物理アドレスを保護することにより、システムの堅牢性を向上できる。具体的には、デバッグ時において、エラーが発生した物理アドレス及びPVID141から、設計者は、画像処理及び音声処理のうち、どちらの処理がエラーを起こしているかを容易に判別できる。また、ホスト処理のデバッグ時には、画像処理などが書き込めないアドレスで発生している誤動作について、画像処理の誤動作を疑うことなくデバッグすることが可能になる。
 FPU割り当て部108は、複数のFPU107をLPに割り当てる。このFPU割り当て部108は、FPU割り当てレジスタ137を備える。
 図14は、FPU割り当てレジスタ137に格納されるデータの一例を示す図である。図14に示すように、FPU割り当てレジスタ137に、TVID140ごとにFPU107が対応付けられる。また、FPU割り当てレジスタ137は、仮想モニタレベルのOS(モニタプログラム)により設定及び更新される。
 図15は、FPU割り当て部108によるFPU107の割り当て処理を模式的に示す図である。
 図15に示すように、複数のFPU107が、複数のLPにより共有される。さらに、FPU割り当て部108は、TVID140を用いて、同じTVID140を有するLP間で、FPU107を共有させる。例えば、FPU割り当て部108は、TVID0を有するLP0には、FPU0を割り当て、TVID1を有するLP1及びLP2には、FPU1を割り当てる。
 また、LPは、FPU割り当て部108により割り当てられたFPU107を用いて、スレッドを実行する。
 キャッシュメモリ109は、プロセッサブロック11で使用するデータを一時的に格納するメモリである。また、キャッシュメモリ109は、異なるTVID140を有するLPには、独立した異なるデータ領域(ウェイ168)を使用する。このキャッシュメモリ109は、ウェイ指定レジスタ136を備える。
 図16A及び図16Bは、ウェイ指定レジスタ136に格納されるデータの一例を示す図である。
 図16Aに示すように、ウェイ指定レジスタ136に、TVID140ごとにウェイ168が対応付けられる。また、ウェイ指定レジスタ136は、仮想モニタレベルのOS(モニタプログラム)により設定及び更新される。
 なお、図16Bに示すように、LPごとにウェイ168を対応付けてもよい。この場合、例えば、コンテキスト124内に、当該LPが使用するウェイの情報が含まれ、仮想モニタレベルのOS、又はスーパーバイザーレベルのOSは、コンテキスト124を参照し、ウェイ指定レジスタ136を設定及び更新する。
 図17は、キャッシュメモリ109によるウェイ168の割り当て処理を模式的に示す図である。
 図17に示すように、キャッシュメモリ109は、データ格納単位として、複数のウェイ168(way0~way7)を有する。このキャッシュメモリ109は、TVID140を用いて、同じTVID140を有するLP間で、ウェイ168を共有させる。例えば、TVID0を有するLP0には、way0~way1が割り当てられ、TVID1を有するLP1及びLP2には、way2~way7が割り当てられる。これにより、キャッシュメモリ109は、ホスト処理に属するスレッドのデータをway0~way1にキャッシュし、メディア処理に属するスレッドのデータをway2~way7にキャッシュする。
 このように、キャッシュメモリ109は、異なるTVID140を有するLP間で、キャッシュデータを互いに追い出しあわないようにできる。
 図18は、キャッシュメモリ109による処理の流れを示すフローチャートである。
 図18に示すように、LPからの外部メモリ15へのアクセスが発生した場合、まず、キャッシュメモリ109は、アクセス元のLPから入力されたアドレス(物理アドレス)と同じアドレスを格納しているか否かを判定する(S111)。
 格納していない場合、つまりキャッシュミスの場合(S111でYes)、キャッシュメモリ109は、ウェイ指定レジスタ136で指定されるウェイ168に、アクセス元のLPから入力されたアドレス及びデータをキャッシュする(S112)。具体的には、リードアクセスの場合、キャッシュメモリ109は、外部メモリ15等からデータを読み出し、読み出したデータを、ウェイ指定レジスタ136で指定されるウェイ168に格納する。また、ライトアクセスの場合、キャッシュメモリ109は、アクセス元のLPから入力されたデータを、ウェイ指定レジスタ136で指定されるウェイ168に格納する。
 一方、ステップS111で、アクセス元のLPから入力されたアドレスと同じアドレスを格納している場合、つまりキャッシュヒットの場合(S111でNo)、キャッシュメモリ109は、キャッシュヒットしたデータを、更新(ライトアクセス時)、又はアクセス元のLPに出力する(リードアクセス時)(S113)。
 BCU110は、プロセッサブロック11と、メモリIFブロック14との間のデータ転送を制御する。
 割り込み制御部111は、割り込みの検出、要求及び許可等を行う。この割り込み制御部111は、複数の割り込み制御レジスタ134を備える。例えば、割り込み制御部111は、128個の割り込み制御レジスタ134を備える。割り込み制御部111は、割り込み制御レジスタ134を参照し、発生した割り込みの割り込み要因に対応するスレッド(LP)に割り込みを送る。
 割り込み制御レジスタ134には、割り込み要因に対応する割り込み先のスレッドが設定される。
 図19は、一つの割り込み制御レジスタ134の構成を示す図である。図19に示す割り込み制御レジスタ134は、割り込み要因に対応付けられた、システム割り込み171(SYSINT)と、LP識別子172(LPID)と、LP割り込み173(LPINT)と、HWイベント174(HWEVT)とを含む。
 システム割り込み171は、当該割り込みがシステム割り込み(グローバル割り込み)であるか否かを示す。LP識別子172は、割り込み先のLPを示す。LP割り込み173は、当該割り込みがLP割り込み(ローカル割り込み)であるか否かを示す。HWイベント174は当該割り込み要因によりハードウェアイベントを発生させるか否かを示す。
 システム割り込みの場合、割り込み制御部111は、現在スレッドを実行中のLPに割り込みを送る。また、LP割り込みの場合、割り込み制御部111は、LP識別子172で示されるLPに対して、割り込みを送る。また、ハードウェアイベントの場合、LP識別子172で示されるLPに対してハードウェアイベントを送る。このハードウェアイベントにより、該当LPが起床する。
 また、システム割り込み171及びLP識別子172は、仮想モニタレベルのOS(モニタプログラム)のみが書き換え可能であり、LP割り込み173及びHWイベント174は、仮想モニタレベル及びスーパーバイザーレベルのOSのみが書き換え可能である。
 次に、プロセッサシステム10における、メモリアクセス管理について説明する。
 図20は、プロセッサシステム10における、メモリアクセス管理の状態を模式的に示す図である。図20に示すように、プロセッサブロック11からメモリIFブロック14にMVID142が送られる。メモリIFブロック14は、このMVID142を用いて、MVID142ごとに、バスバンド幅を割り当てたうえで、アクセス要求元のスレッドのMVID142に割り当てたバスバンド幅を用いて、外部メモリ15にアクセスを行う。
 また、メモリIFブロック14は、バスバンド幅指定レジスタ138を備える。
 図21は、メモリIFブロック14によるバスバンド幅指定レジスタ138が保持するデータの一例を示す図である。なお、図21において、ホスト処理であるLinuxと、メディア処理に含まれる音声処理(Audio)と、メディア処理に含まれる画像処理(Video)とにそれぞれ異なるMVID142が付与されている。
 図21に示すように、メモリIFブロック14は、MVID142ごとにバスバンド幅を割り当てる。また、MVID142ごとに優先順位を決定し、当該優先順位に基づき、外部メモリ15へのアクセスを行う。
 これにより、MVID142ごとに必要なバンド幅が確保されるとともに、要求したアクセスレイテンシが保証される。よって、プロセッサシステム10は、複数のアプリケーションの性能保証及びリアルタイム性の保証を達成することができる。
 また、MVID142を用いてバスバンド幅を分割することにより、メモリIFブロック14とプロセッサブロック11とが一つのデータバス17のみを介して接続されている場合でも、複数のデータバスを介してメモリIFブロック14とプロセッサブロック11とが接続されている場合と同様の制御を行うことができる。つまり、複数のブロックに対してバスを分割する場合と同様の制御を行うことができる。
 なお、複数のブロックからのアクセス要求に対して、バスバンド幅を確保しレイテンシを保証するための技術は、その代表的な一例が特開2004-246862号公報(特許文献:5)に詳しく開示されているので、ここでは詳細な説明を省略する。
 また、プロセッサシステム10では、TVID140及び従来のVMPの機能を用いて、メディア処理とホスト処理との処理時間の割合を任意に設定できる。具体的には、例えば、仮想モニタレベルのOSにより、各TVID140に対する処理時間の割合(メディア処理とホスト処理との処理時間の割合)が、VMPC102が備えるレジスタ(図示せず)に設定される。VMPC102は、この設定された処理時間の割合と、各スレッドのTVID140とを参照し、当該処理時間の割合が満たされるように、実行部101が実行するスレッドを切り替える。
 次に、仮想モニタレベルのOS(モニタプログラム)による、資源分割処理について説明する。
 図22は、モニタプログラムによる、資源分割処理の流れを示すフローチャートである。
 まず、モニタプログラムは、複数のコンテキスト124の、TVID140、PVID141及びMVID142を設定することにより、複数のスレッドを複数のグループに分割する(S121、S122及びS123)。
 次に、モニタプログラムは、エントリ指定レジスタ135にTVID140とエントリ150と対応関係を設定することにより、TLB104が有する複数のエントリ150を、ホスト処理に対応付ける第1エントリと、メディア処理に対応付ける第2エントリとに分割する(S124)。
 このエントリ指定レジスタ135に設定された対応関係と、アクセス元のスレッドのTVID140とを参照して、TLB104は、ホスト処理に属するスレッドとメディア処理に属するスレッドとにエントリ150を割り当てる。
 また、モニタプログラムは、ウェイ指定レジスタ136にTVID140(又はLP)とウェイ168との対応関係を設定することにより、キャッシュメモリ109が有する複数のウェイ168を、ホスト処理に対応付ける第1ウェイと、メディア処理に対応付ける第2ウェイとに分割する(S125)。
 このウェイ指定レジスタ136に設定された対応関係と、アクセス元のスレッドのTVID140とを参照して、TLB104は、ホスト処理に属するスレッドとメディア処理に属するスレッドとにウェイ168を割り当てる。
 また、モニタプログラムは、FPU割り当てレジスタ137にTVID140とFPU107との対応関係を設定することにより、複数のFPU107を、ホスト処理に対応付ける第1FPUと、メディア処理に対応付ける第2FPUとに分割する(S126)。
 このFPU割り当てレジスタ137に設定された対応関係と、スレッドのTVID140とを参照して、FPU割り当て部108は、ホスト処理に属するスレッドとメディア処理に属するスレッドとにFPU107を割り当てる。
 また、モニタプログラムは、バスバンド幅指定レジスタ138に、MVID142とバスバンド幅との対応関係を設定することにより、外部メモリ15とメモリIFブロック14との間のバスバンド幅を、ホスト処理に対応付ける第1バスバンド幅と、メディア処理に対応付ける第2バスバンド幅とに分割する(S127)。
 このバスバンド幅指定レジスタ138に設定された対応関係と、アクセス元のスレッドのMVID142とを参照して、メモリIFブロック14は、ホスト処理に属するスレッドとメディア処理に属するスレッドとにバスバンド幅を割り当てる。
 また、モニタプログラムは、物理アドレスと論理アドレスとの対応関係を示すページテーブルを作成する。この際、モニタプログラムは、PVID141と物理アドレスとの対応関係を設定することにより、外部メモリ15の物理アドレス空間を、ホスト処理に対応付ける第1物理アドレス範囲と、メディア処理に対応付ける第2物理アドレス範囲とに分割するとともに、第1物理アドレス範囲をホスト処理のスレッドに割り当て、第2物理アドレス範囲をメディア処理のスレッドに割り当てる(S128)。また、モニタプログラムは、PVID141と物理アドレスとの当該対応関係を物理メモリ保護レジスタ131に設定することにより、物理アドレスの保護を行う。
 また、モニタプログラムは、割り込み制御レジスタ134に、各割り込み要因に対応させて、割り込み先のLP等を設定する(S129)。これにより、モニタプログラムは、ホスト処理とメディア処理とにそれぞれ独立した割り込み制御を行える。
 この割り込み制御レジスタ134に設定された対応関係と、割り込み要因とを参照して、割り込み制御部111は、当該割り込み要因に対応するスレッドに割り込みを送る。
 なお、モニタプログラムによる、各設定の順序は、図22に示す順序に限定されるものではない。
 なお、モニタプログラムでページテーブルを作成せずに、TVID140を割り当てられたスーパーバイザーレベルの各OSが、それぞれ割り当てられた、物理アドレスに対応する論理アドレスを決めて、それぞれページテーブルを作成することも可能であり、本発明はこれを限定するものではない。
 以上より、本発明の実施の形態に係るプロセッサシステム10は、資源を共用してホスト処理とメディア処理とを行う単一のプロセッサブロック11を備えることにより、面積効率を向上できる。さらに、プロセッサシステム10は、ホスト処理のスレッドとメディア処理のスレッドとに、異なるタグ情報(TVID140、PVID141及びMVID142)を与えるとともに、プロセッサシステム10が有する資源を当該タグ情報に対応付けて分割する。これによりプロセッサシステム10は、ホスト処理とメディア処理とにそれぞれ独立した資源を割り当てることができる。よって、ホスト処理とメディア処理との間で資源の競合が生じないので、プロセッサシステム10は、性能の保証、及び堅牢性を向上できる。
 また、物理アドレス管理部105は、PVID141を用いて、各スレッドが指定された物理アドレス範囲以外にアクセスしようとした場合には、割り込みを発生する。これにより、プロセッサシステム10は、システムの堅牢性を向上できる。
 以上、本発明の実施の形態に係るプロセッサシステム10について説明したが、本発明は、この実施の形態に限定されるものではない。
 例えば、上記説明では、プロセッサブロック11がホスト処理とメディア処理との2種類の処理を行う例を述べたが、それ以外の処理を含む3種類以上の処理を行ってもよい。この場合、当該3種類以上の処理にそれぞれ対応する3種類以上のTVID140が複数のスレッドに付与される。
 同様に、PVID141及びMVID142の種類も上述した数に限定されるものではなく、複数であればよい。
 また、上記説明において、複数のスレッドをグループ分けするためのタグ情報として、TVID140、PVID141及びMVID142の3種類を述べたが、プロセッサシステム10は、一つのタグ情報(例えば、TVID140)のみを用いてもよい。つまり、プロセッサシステム10は、PVID141及びMVID142を用いず、物理アドレスの管理及びバスバンド幅の制御にも、TVID140を用いてもよい。また、プロセッサシステム10は、2種類のタグ情報を用いてもよし、4種類以上のタグ情報を用いてもよい。
 また、上記説明では、割り込み制御レジスタ134、エントリ指定レジスタ135、ウェイ指定レジスタ136、FPU割り当てレジスタ137及びページテーブルは、仮想モニタレベルのOS(モニタプログラム)により設定及び更新されるとしたが、仮想モニタレベルのOSの指示により、スーパーバイザーレベルのOSが割り込み制御レジスタ134、エントリ指定レジスタ135、ウェイ指定レジスタ136、FPU割り当てレジスタ137及びページテーブルを設定及び更新してもよい。つまり、仮想モニタレベルのOSによりスーパーバイザーレベルOSに、当該スーパーバイザーレベルのOSに割り当てられた資源が通知され、当該スーパーバイザーレベルのOSは、通知された資源を用いるように割り込み制御レジスタ134、エントリ指定レジスタ135、ウェイ指定レジスタ136、FPU割り当てレジスタ137及びページテーブルを設定及び更新してもよい。
 また、上記実施の形態に係るプロセッサシステム10に含まれる各処理部は典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又はすべてを含むように1チップ化されてもよい。
 ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて各処理部の集積化を行ってもよい。バイオ技術の適用等が可能性として考えられる。
 また、本発明の実施の形態に係るプロセッサシステム10の機能の一部又は全てを、実行部101等がプログラムを実行することにより実現してもよい。
 さらに、本発明は上記プログラムであってもよいし、上記プログラムが記録された記録媒体であってもよい。また、上記プログラムは、インターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
 また、上記実施の形態に係るプロセッサシステム10及びその変形例の機能のうち少なくとも一部を組み合わせてもよい。
 本発明は、マルチスレッドプロセッサに適用でき、特に、デジタルテレビ、DVDレコーダ、デジタルカメラ及び携帯電話機器等に搭載されるマルチスレッドプロセッサに適用できる。
 10 プロセッサシステム
 11 プロセッサブロック
 12 ストリームI/Oブロック
 13 AVIOブロック
 14 メモリIFブロック
 15 外部メモリ
 16 制御バス
 17、18、19 データバス
 101 実行部
 102 VMPC
 104 TLB
 105 物理アドレス管理部
 107 FPU
 108 FPU割り当て部
 109 キャッシュメモリ
 110 BCU
 111 割り込み制御部
 121 物理プロセッサ
 122 演算制御部
 123 演算部
 124 コンテキスト
 126 スケジューラ
 127 コンテキストメモリ
 128 コンテキスト制御部
 130 アドレス変換テーブル
 131 物理メモリ保護レジスタ
 132 保護違反レジスタ
 133 エラーアドレスレジスタ
 134 割り込み制御レジスタ
 135 エントリ指定レジスタ
 136 ウェイ指定レジスタ
 137 FPU割り当てレジスタ
 138 バスバンド幅指定レジスタ
 140 TVID
 141 PVID
 142 MVID
 150 エントリ
 151 TLBタグ部
 152 TLBデータ部
 153 VPN
 154 PID
 155 PPN
 156 Attribute
 161 BASEADDR
 162 PS
 163 PN
 164 PVID0WE~PVID3WE
 165 PVID0RE~PVID3WE
 167 PVERR
 168 ウェイ
 171 システム割り込み
 172 LP識別子
 173 LP割り込み
 174 HWイベント

Claims (12)

  1.  複数のスレッドを同時に実行するマルチスレッドプロセッサであって、
     前記複数のスレッドの実行に用いられる複数の資源と、
     前記複数のスレッドのそれぞれが、ホスト処理に属するスレッドか、メディア処理に属するスレッドかを示すタグ情報を保持する保持手段と、
     前記複数の資源を、前記ホスト処理に属するスレッドに対応付ける第1資源と、前記メディア処理に属するスレッドに対応付ける第2資源とに分割する分割手段と、
     前記タグ情報を参照して、前記ホスト処理に属するスレッドに前記第1資源を割り当て、前記メディア処理に属するスレッドに前記第2資源を割り当てる割り当て手段と、
     前記割り当て手段により割り当てられた前記第1資源を用いて前記ホスト処理に属するスレッドを実行し、前記割り当て手段により割り当てられた前記第2資源を用いて前記メディア処理に属するスレッドを実行する実行手段とを備える
     マルチスレッドプロセッサ。
  2.  前記実行手段は、前記ホスト処理に属するスレッドを制御する第1のオペレーティングシステムと、前記メディア処理に属するスレッドを制御する第2のオペレーティングシステムと、前記第1のオペレーティングシステム及び前記第2のオペレーティングシステムを制御する第3のオペレーティングシステムとを実行し、
     前記分割手段による前記分割は、前記第3のオペレーティングシステムにより行われる
     請求項1記載のマルチスレッドプロセッサ。
  3.  前記資源は、複数のウェイを有するキャッシュメモリを含み、
     前記分割手段は、前記複数のウェイを、前記ホスト処理に属するスレッドに対応付ける第1ウェイと、前記メディア処理に属するスレッドに対応付ける第2ウェイとに分割し、
     前記キャッシュメモリは、前記タグ情報を参照して、前記ホスト処理に属するスレッドのデータを前記第1ウェイにキャッシュし、前記メディア処理に属するスレッドのデータを前記第2ウェイにキャッシュする
     請求項1記載のマルチスレッドプロセッサ。
  4.  前記マルチスレッドプロセッサは、メモリを用いて前記複数のスレッドを実行し、
     前記資源は、それぞれが前記メモリの論理アドレスと物理アドレスとの対応関係を示す複数のエントリを有するTLB(Translation Lookaside Buffer)を含み、
     前記分割手段は、前記複数のエントリを、前記ホスト処理に属するスレッドに対応付ける第1エントリと、前記メディア処理に属するスレッドに対応付ける第2エントリとに分割し、
     前記TLBは、前記タグ情報を参照して、前記ホスト処理に属するスレッドに対して前記第1エントリを用い、前記メディア処理に属するスレッドに対して前記第2エントリを用いる
     請求項1記載のマルチスレッドプロセッサ。
  5.  前記各エントリは、さらに、前記タグ情報を含み、前記論理アドレスと前記タグ情報との組みに対して、一つの物理アドレスが対応付けられる
     請求項4記載のマルチスレッドプロセッサ。
  6.  前記マルチスレッドプロセッサは、メモリを用いて前記複数のスレッドを実行し、
     前記資源は、前記メモリの物理アドレス空間を含み、
     前記分割手段は、前記メモリの物理アドレス空間を、前記ホスト処理に属するスレッドに対応付ける第1物理アドレス範囲と、前記メディア処理に属するスレッドに対応付ける第2物理アドレス範囲とに分割する
     請求項1記載のマルチスレッドプロセッサ。
  7.  前記マルチスレッドプロセッサは、さらに、
     前記第1物理アドレス範囲に前記メディア処理に属するスレッドからのアクセスがあった場合と、前記第2物理アドレス範囲に前記ホスト処理に属するスレッドからのアクセスがあった場合とに割り込みを発生する物理アドレス管理手段を備える
     請求項6記載のマルチスレッドプロセッサ。
  8.  前記マルチスレッドプロセッサは、メモリを用いて前記複数のスレッドを実行し、
     前記マルチスレッドプロセッサは、さらに、前記ホスト処理に属するスレッド及び前記メディア処理に属するスレッドからの要求に応じて、前記メモリにアクセスするメモリインターフェース手段を備え、
     前記資源は、前記メモリとメモリインターフェース手段との間のバスバンド幅であり、
     前記分割手段は、前記バスバンド幅を、前記ホスト処理に属するスレッドに対応付ける第1バスバンド幅と、前記メディア処理に属するスレッドに対応付ける第2バスバンド幅とに分割し、
     前記メモリインターフェース手段は、前記タグ情報を参照して、前記ホスト処理に属するスレッドから前記メモリへのアクセスが要求された場合、前記第1バスバンド幅を用いて、前記メモリへのアクセスを行い、前記メディア処理に属するスレッドから前記メモリへのアクセスが要求された場合、前記第2バスバンド幅を用いて、前記メモリへのアクセスを行う
     請求項1記載のマルチスレッドプロセッサ。
  9.  前記資源は、複数のFPU(Floating Point number processing Unit)を含み、
     前記分割手段は、前記複数のFPUを、前記ホスト処理に属するスレッドに対応付ける第1FPUと、前記メディア処理に属するスレッドに対応付ける第2FPUとに分割する
     請求項1記載のマルチスレッドプロセッサ。
  10.  前記分割手段は、割り込み要因に対応させて、前記複数のスレッドのうちいずれかを設定し、
     前記マルチスレッドプロセッサは、さらに、
     割り込み要因が発生した際に、前記分割手段により設定された、当該割り込み要因に対応するスレッドに割り込みを送る割り込み制御部を備える
     請求項1記載のマルチスレッドプロセッサ。
  11.  前記ホスト処理は、システムの制御を行い、
     前記メディア処理は、映像の圧縮又は伸張を行う
     請求項1記載のマルチスレッドプロセッサ。
  12.  請求項1記載のマルチスレッドプロセッサを備え、
     前記ホスト処理は、システムの制御を行い、
     前記メディア処理は、映像の伸張を行う
     デジタルテレビシステム。
PCT/JP2009/003566 2009-02-17 2009-07-29 マルチスレッドプロセッサ及びデジタルテレビシステム WO2010095182A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2010/000939 WO2010095416A1 (ja) 2009-02-17 2010-02-16 マルチスレッドプロセッサ及びデジタルテレビシステム
CN2010800079009A CN102317912A (zh) 2009-02-17 2010-02-16 多线程处理器和数字电视系统
JP2011500502A JP5412504B2 (ja) 2009-02-17 2010-02-16 マルチスレッドプロセッサ及びデジタルテレビシステム
US13/209,804 US20120008674A1 (en) 2009-02-17 2011-08-15 Multithread processor and digital television system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-034471 2009-02-17
JP2009034471 2009-02-17

Publications (1)

Publication Number Publication Date
WO2010095182A1 true WO2010095182A1 (ja) 2010-08-26

Family

ID=42633485

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2009/003566 WO2010095182A1 (ja) 2009-02-17 2009-07-29 マルチスレッドプロセッサ及びデジタルテレビシステム
PCT/JP2010/000939 WO2010095416A1 (ja) 2009-02-17 2010-02-16 マルチスレッドプロセッサ及びデジタルテレビシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/000939 WO2010095416A1 (ja) 2009-02-17 2010-02-16 マルチスレッドプロセッサ及びデジタルテレビシステム

Country Status (4)

Country Link
US (1) US20120008674A1 (ja)
JP (1) JP5412504B2 (ja)
CN (1) CN102317912A (ja)
WO (2) WO2010095182A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012208662A (ja) * 2011-03-29 2012-10-25 Toyota Motor Corp マルチスレッド・プロセッサ
JP2013539892A (ja) * 2010-10-15 2013-10-28 クゥアルコム・インコーポレイテッド キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8848576B2 (en) * 2012-07-26 2014-09-30 Oracle International Corporation Dynamic node configuration in directory-based symmetric multiprocessing systems
US10037228B2 (en) 2012-10-25 2018-07-31 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US10310973B2 (en) 2012-10-25 2019-06-04 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
US10169091B2 (en) * 2012-10-25 2019-01-01 Nvidia Corporation Efficient memory virtualization in multi-threaded processing units
CN104461730B (zh) * 2013-09-22 2017-11-07 华为技术有限公司 一种虚拟资源分配方法及装置
US9495302B2 (en) 2014-08-18 2016-11-15 Xilinx, Inc. Virtualization of memory for programmable logic
US11544214B2 (en) * 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US9824015B2 (en) * 2015-05-29 2017-11-21 Qualcomm Incorporated Providing memory management unit (MMU) partitioned translation caches, and related apparatuses, methods, and computer-readable media
JP6477352B2 (ja) * 2015-08-17 2019-03-06 富士通株式会社 演算処理装置、演算処理装置の制御方法および演算処理装置の制御プログラム
CN111679795B (zh) * 2016-08-08 2024-04-05 北京忆恒创源科技股份有限公司 无锁并发io处理方法及其装置
US10853262B2 (en) 2016-11-29 2020-12-01 Arm Limited Memory address translation using stored key entries
US10664306B2 (en) * 2017-01-13 2020-05-26 Arm Limited Memory partitioning
US20180203807A1 (en) * 2017-01-13 2018-07-19 Arm Limited Partitioning tlb or cache allocation
US10649678B2 (en) * 2017-01-13 2020-05-12 Arm Limited Partitioning of memory system resources or performance monitoring
US10606762B2 (en) 2017-06-16 2020-03-31 International Business Machines Corporation Sharing virtual and real translations in a virtual cache
US10831664B2 (en) 2017-06-16 2020-11-10 International Business Machines Corporation Cache structure using a logical directory
US10698836B2 (en) * 2017-06-16 2020-06-30 International Business Machines Corporation Translation support for a virtual cache
US10831673B2 (en) 2017-11-22 2020-11-10 Arm Limited Memory address translation
US10929308B2 (en) 2017-11-22 2021-02-23 Arm Limited Performing maintenance operations
US10866904B2 (en) 2017-11-22 2020-12-15 Arm Limited Data storage for multiple data types
US10700954B2 (en) * 2017-12-20 2020-06-30 Advanced Micro Devices, Inc. Scheduling memory bandwidth based on quality of service floorbackground

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362564A (ja) * 2003-05-30 2004-12-24 Sharp Corp 統一イベント通知およびコンシューマ−プロデューサメモリ演算による仮想プロセッサ方法および装置
JP2007504536A (ja) * 2003-08-28 2007-03-01 ミップス テクノロジーズ インコーポレイテッド 仮想プロセッサリソースの動的構成のための機構体
JP2007109109A (ja) * 2005-10-14 2007-04-26 Matsushita Electric Ind Co Ltd メディア処理装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6269339A (ja) * 1985-09-20 1987-03-30 Fujitsu Ltd アドレス変換バツフア方式
JPH01229334A (ja) * 1988-03-09 1989-09-13 Hitachi Ltd 仮想計算機システム
JPH0512126A (ja) * 1991-07-05 1993-01-22 Hitachi Ltd 仮想計算機のアドレス変換装置及びアドレス変換方法
CN1842770A (zh) * 2003-08-28 2006-10-04 美普思科技有限公司 一种在处理器中挂起和释放执行过程中计算线程的整体机制
US7870553B2 (en) * 2003-08-28 2011-01-11 Mips Technologies, Inc. Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts
CN101626476B (zh) * 2004-04-01 2010-12-08 松下电器产业株式会社 通信设备
JP2006018705A (ja) * 2004-07-05 2006-01-19 Fujitsu Ltd メモリアクセストレースシステムおよびメモリアクセストレース方法
TWI326428B (en) * 2005-03-18 2010-06-21 Marvell World Trade Ltd Real-time control apparatus having a multi-thread processor
US7383374B2 (en) * 2005-03-31 2008-06-03 Intel Corporation Method and apparatus for managing virtual addresses
JP2007034514A (ja) * 2005-07-25 2007-02-08 Fuji Xerox Co Ltd 情報処理装置
US7774579B1 (en) * 2006-04-14 2010-08-10 Tilera Corporation Protection in a parallel processing environment using access information associated with each switch to prevent data from being forwarded outside a plurality of tiles
US20080077767A1 (en) * 2006-09-27 2008-03-27 Khosravi Hormuzd M Method and apparatus for secure page swapping in virtual memory systems
JP2008123045A (ja) * 2006-11-08 2008-05-29 Matsushita Electric Ind Co Ltd プロセッサ
JP2009146344A (ja) * 2007-12-18 2009-07-02 Hitachi Ltd 計算機仮想化装置のtlb仮想化方法および計算機仮想化プログラム
US8146087B2 (en) * 2008-01-10 2012-03-27 International Business Machines Corporation System and method for enabling micro-partitioning in a multi-threaded processor
US8078792B2 (en) * 2008-01-22 2011-12-13 Advanced Micro Devices, Inc. Separate page table base address for minivisor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362564A (ja) * 2003-05-30 2004-12-24 Sharp Corp 統一イベント通知およびコンシューマ−プロデューサメモリ演算による仮想プロセッサ方法および装置
JP2007504536A (ja) * 2003-08-28 2007-03-01 ミップス テクノロジーズ インコーポレイテッド 仮想プロセッサリソースの動的構成のための機構体
JP2007109109A (ja) * 2005-10-14 2007-04-26 Matsushita Electric Ind Co Ltd メディア処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013539892A (ja) * 2010-10-15 2013-10-28 クゥアルコム・インコーポレイテッド キャッシュされたイメージを用いた低電力のオーディオのデコーディングおよび再生
JP2012208662A (ja) * 2011-03-29 2012-10-25 Toyota Motor Corp マルチスレッド・プロセッサ

Also Published As

Publication number Publication date
US20120008674A1 (en) 2012-01-12
CN102317912A (zh) 2012-01-11
JPWO2010095416A1 (ja) 2012-08-23
JP5412504B2 (ja) 2014-02-12
WO2010095416A1 (ja) 2010-08-26

Similar Documents

Publication Publication Date Title
JP5412504B2 (ja) マルチスレッドプロセッサ及びデジタルテレビシステム
JP5433676B2 (ja) プロセッサ装置、マルチスレッドプロセッサ装置
US7509391B1 (en) Unified memory management system for multi processor heterogeneous architecture
JP5039029B2 (ja) 動的論理パーティショニングによるコンピューティング環境におけるコンピュータ・メモリの管理
US9594521B2 (en) Scheduling of data migration
US8453015B2 (en) Memory allocation for crash dump
JP4386373B2 (ja) ロジカルパーティショニングされた処理環境におけるリソース管理のための方法および装置
JP4322232B2 (ja) 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム
KR100591727B1 (ko) 스케줄링 방법과 이 방법을 실행하기 위한 프로그램을 기록한 기록매체 및 정보처리시스템
KR100996753B1 (ko) 시퀀서 어드레스를 관리하기 위한 방법, 맵핑 관리자 및 멀티 시퀀서 멀티스레딩 시스템
JP5914145B2 (ja) メモリ保護回路、処理装置、およびメモリ保護方法
US8386750B2 (en) Multiprocessor system having processors with different address widths and method for operating the same
US20230196502A1 (en) Dynamic kernel memory space allocation
US20080235477A1 (en) Coherent data mover
JP2013161299A (ja) 情報処理装置、インタフェースアクセス方法
JP5466768B2 (ja) メモリ・アクセスを制御する装置およびコンピュータ
EP1067461B1 (en) Unified memory management system for multi process heterogeneous architecture
JP2006209527A (ja) コンピュータシステム
US11009841B2 (en) Initialising control data for a device
TWI831564B (zh) 可配置的記憶體系統及其記憶體管理方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09840289

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09840289

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP