JP5379223B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5379223B2
JP5379223B2 JP2011510180A JP2011510180A JP5379223B2 JP 5379223 B2 JP5379223 B2 JP 5379223B2 JP 2011510180 A JP2011510180 A JP 2011510180A JP 2011510180 A JP2011510180 A JP 2011510180A JP 5379223 B2 JP5379223 B2 JP 5379223B2
Authority
JP
Japan
Prior art keywords
program
instruction
instruction memory
memory
information processing
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
JP2011510180A
Other languages
English (en)
Other versions
JPWO2010122746A1 (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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2011510180A priority Critical patent/JP5379223B2/ja
Publication of JPWO2010122746A1 publication Critical patent/JPWO2010122746A1/ja
Application granted granted Critical
Publication of JP5379223B2 publication Critical patent/JP5379223B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/3802Instruction prefetching
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)

Description

本発明は、並列に実行する複数のプロセッサエレメントそれぞれが実行すべきプログラムに対するアクセス制御の技術に関する。
TVやレコーダ、デジタルビデオカメラ、デジタルカメラ、携帯電話などに使用するLSIでは、動作周波数低減の為、ビデオコーデックや画像処理に含まれるデータ並列処理に、SIMD型(Single Instruction Multi Data)並列プロセッサが使用される。一般的にSIMD型並列プロセッサでは、命令流が1つで複数のデータに対して同時に同じ処理を実行する為、SIMD型並列プロセッサを構成する各要素プロセッサに1画素を割り当て、複数画素を同時に処理させる。要素プロセッサの数を増加させることにより、同時処理可能な画素数が増え、動作周波数を低減可能である。
しかしながら、ビデオコーデックの技術分野では、圧縮率を向上させる為、データの処理単位が小さくなる傾向にある。例えば、MPEG−2では動き補償の輝度情報の最小参照単位は16×8画素であったが、H.264では4×4画素である。従って、SIMD型並列プロセッサにおいては、要素プロセッサの数を増やしても、処理単位以上は簡単に並列度を上げることはできない。
SIMD型の処理体系だけで処理するには、事前に複雑なデータの並び替えが発生し、同時にプログラム構造も複雑となる。そこで、SIMD型の処理体系とMIMD型(Multi Instruction Multi Data)の処理体系を動的に切り替える手法が提案されている(例えば、特許文献1、特許文献2参照)。
特許文献1及び特許文献2では、SIMD型の処理を実行するプログラム(以下、SIMD型プログラムという。)を格納している命令メモリ及びMIMD型の処理を実行するプログラム(以下、MIMD型プログラムという。)を格納している命令メモリと、複数のプロセッサエレメントとの間をスイッチで接続し、このスイッチを用いることでSIMD型の処理とMIMD型の処理を動的に切り替えている。
特開平3−211656号公報 特許第3199205号公報
従来、複数のプロセッサエレメントがMIMD型の処理体系では、各プロセッサエレメントが個別に処理を実行するのでプロセッサエレメント毎に実行すべきプログラムを格納する命令メモリ(個別メモリ)が対応付けられている。
また、SIMD型の処理体系とMIMD型の処理体系とを混在させて並列に処理を実行したいという要望、つまり複数のプロセッサエレメントのうち一部のプロセッサエレメントに共通の処理を同時に実行させたいという要望がある。この場合、上記の技術を用いると、共通の処理命令(SIMD型の処理命令)を格納した別の命令メモリ(専用メモリ)を別途用意して、スイッチにより共通の処理を実行する一部のプロセッサエレメントに対して個別メモリから専用メモリへと接続先を変更することで実現できる。
しかしながら、IMD型の処理体系とMIMD型の処理体系とを混在させて並列に処理を実行させるために、SIMD型の処理命令を格納した専用のメモリを設けることは、コスト高となるという問題がある。
そこで、本発明は、共通の処理命令を格納した専用のメモリを設けることなく、異なる処理体系を混在させて並列に処理を実行することのできる情報処理装置及び集積回路を提供することを目的とする。
上記にて示す目的を達成するために、本発明は、情報処理装置であって、複数のプロセッサエレメントと、第1プログラム及び第2プログラムを記憶している命令メモリと、前記複数のプロセッサエレメントと前記命令メモリとの間に介在し、各プロセッサエレメントからの前記第1プログラムの命令及び前記第2プログラムの命令の要求を受け付け、各プロセッサエレメントのアクセス制御を行うアービターとを備え、前記アービターは、プロセッサエレメントそれぞれから同時に同一プログラム内の異なる命令に対する要求、及び異なるプログラム内の命令に対する要求がある場合には調停を行い、2つ以上のプロセッサエレメントから同時に同一プログラム内の同一の命令に対する要求があると、当該命令メモリの利用が可能な場合には要求元である各プロセッサへ当該命令を同時に出力することを特徴とする。
この構成によると、情報処理装置は、第1プログラムと第2プログラムを1つの命令メモリに記憶し、アービターにより複数のプロセッサエレメントによるアクセスの制御を行うので、従来のように第1プログラム及び第2プログラムそれぞれについて個別の命令メモリを用意する必要することなく、複数のプロセッサエレメントそれぞれが実行すべきプログラムへのアクセスが可能となる。
情報処理装置100の構成を示すブロック図である。 第1命令メモリ101〜第3命令メモリ103で記憶されているプログラムの一例を示す図である。 通信ネットワーク104及びアービター105の構成を示す図である。 全PE共通動作の処理の動作を示すタイミングチャートである。 全PE共通動作から一部PE共通動作への遷移を示すタイミングチャートである。 一部PE共通動作から全PE共通動作への遷移を示すタイミングチャートである。 情報処理装置100を適用したシステムLSI500の構成を示すブロック図である。 情報処理装置100を適用したテレビ600の構成を示すブロック図である。 情報処理装置100を適用したレコーダ700の構成を示すブロック図である。 情報処理装置100を適用したデジタルカメラ800の構成を示すブロック図である。 情報処理装置100を適用した携帯電話機900の構成を示すブロック図である。
1.第1の実施の形態
図面を参照しながら、本実施の形態に係る情報処理装置について説明する。
1.1 情報処理装置100の構成
ここでは、情報処理装置100の概要と構成について説明する。
情報処理装置100は、図1に示すように、第1命令メモリ101、第2命令メモリ102、第3命令メモリ103、通信ネットワーク104、 アービター105、第1プロセッサエレメント(PE)111、第2PE112、第3PE113、第4PE114及びデータメモリ115、116、117、118を備えている。情報処理装置100は、例えば、これらの構成要素を備える並列プロセッサである。
(1)第1命令メモリ101、第2命令メモリ102、第3命令メモリ103
第1命令メモリ101には、図2に示すように、SIMDプログラム200、及びMIMDプログラム201が格納されている。
また、図2に示すように、第2命令メモリ102にはMIMDプログラム202が、第3命令メモリ103にはMIMDプログラム203が格納されている。
SIMDプログラム200には、第1PE111〜第4PE114が共通して実行する命令が含まれている。また、MIMDプログラム201〜203には、それぞれ異なる処理を実行する命令が含まれている。各PEは、同時に何れかのMIMDプログラムを実行することで、複数の異なるデータを並行処理することができる。
例えば、当該情報処理装置が画像処理を行う際において、処理すべきマクロブロックのタイプが異なる場合には、処理単位が小さい為、SIMD型で処理を行っても並列度が上がらない。その為マクロブロック単位に異なる処理毎にMIMDプログラム201〜203を割り当てることで、異なるマクロブロックタイプのプログラムを同時実行可能にする。
(2)データメモリ115〜118
データメモリ115〜118それぞれは、第1PE111〜第4PE114それぞれに割り当てられている。例えば、データメモリ115は第1PE111に、データメモリ116は第2PE112に、それぞれ割り当てられている。
データメモリ115〜118には、割り当てられたPEが処理すべきデータが格納される。
(3)第1PE111〜第4PE114
第1PE111〜第4PE114それぞれは、割り当てられたデータメモリに格納されたデータに対する処理を行うものである。
第1PE111〜第4PE114それぞれは、プログラムカウンタ(PC)106〜109を有しており、プログラムカウンタが示す値に応じて、命令メモリ101〜103の何れかに格納されているプログラムの命令を読み出し、実行することで、割り当てられたデータメモリに格納されたデータに対する処理を行う。
(4)アービター105
アービター105は、PE111〜114からの命令メモリ101〜103への命令の要求を受け付け、アクセスの競合が発生する場合には調停を行うものである。
具体的には、アービター105は、図3に示すように、アドレス生成部160a〜160c、アドレス不一致判定部161a〜161c、アクセス判定部162a〜162c、ウエイト信号生成部163a〜163d、セレクト信号生成部164及びバス165〜168を有している。
アクセス判定部162aは、第1命令メモリ101へのアクセスを要求するPEを判定するものである。
アドレス不一致判定部161aは、第1命令メモリ101へのアクセスを要求する2以上のPEに対してアクセスを要求するアドレスが一致するか否かを判定するものである。
アドレス生成部160aは、第1命令メモリ101へのアクセスに対して競合を判定する機能と、第1命令メモリ101へのアクセスするアドレスを生成する機能を有している。具体的には、アドレス不一致判定部161aにおいて第1命令メモリ101へのアクセスを要求する2以上のPEに対してアクセスを要求するアドレスが不一致であると判定する場合には、アドレス生成部160aの競合判定の機能は、アクセスを要求する異なるアドレスのうち最も小さいアドレス値を優先して、アドレス生成するようアドレス生成機能を制御する。そして、アドレス生成部160aのアドレス生成の機能は、第1命令メモリ101へのアクセスに対するアドレスを生成する。このとき、アドレス生成の機能は、異なるアドレスが要求されている場合には競合判定の機能の制御により最も小さいアドレス値を生成し、同一のアドレスが要求されている場合にはそのアドレス値を生成する。
また、アクセス判定部162bは第2命令メモリ102に、アクセス判定部162cは第3命令メモリ103に対するものであり、その機能はアクセス判定部162aと同様であるので、ここでの説明は省略する。
アドレス不一致判定部161bは第2命令メモリ102へのアクセスに、アドレス不一致判定部161cは第3命令メモリ103にそれぞれ対するものであり、その機能はアドレス不一致判定部161aと同様であるので、ここでの説明は省略する。
アドレス生成部160bは第2命令メモリ102へのアクセスに、アドレス生成部160cは第3命令メモリ103にそれぞれ対するものであり、その機能はアドレス生成部160aと同様であるので、ここでの説明は省略する。
ウエイト信号生成部163aは、アドレス生成部160a〜160cの競合判定の機能による判定結果に応じて、第1PE111に対してウエイト信号を生成し、発行するものである。
ウエイト信号生成部163bは、アドレス生成部160a〜160cの競合判定の機能による判定結果に応じて、第2PE112に対してウエイト信号を生成し、発行するものである。
ウエイト信号生成部163cは、アドレス生成部160a〜160cの競合判定の機能による判定結果に応じて、第3PE113に対してウエイト信号を生成し、発行するものである。
ウエイト信号生成部163dは、アドレス生成部160a〜160cの競合判定の機能による判定結果に応じて、第4PE114に対してウエイト信号を生成し、発行するものである。
セレクト信号生成部164は、PE111〜114が命令を要求する命令メモリを示す信号を生成するものである。
バス168は第1PE111のPC106の値を受け付けるものであり、バス167は第2PE112のPC107の値を受け付けるものである。また、バス166は第3PE113のPC108の値を受け付けるものであり、バス165は第4PE114のPC109の値を受け付けるものである。バス165〜168それぞれは、アクセス判定部162a〜162cへ出力する。
(5)通信ネットワーク104
通信ネットワーク104は、図3に示すように、バス151〜153及び出力部154〜157を有している。
バス151は、アドレス生成部160aで生成された第1命令メモリ101に対するアドレスが示す命令を受け付けるものである。
バス152は、アドレス生成部160bで生成された第2命令メモリ102に対するアドレスが示す命令を受け付けるものである。
バス153は、アドレス生成部160cで生成された第3命令メモリ103に対するアドレスが示す命令を受け付けるものである。
出力部154〜157それぞれは、第1PE111〜第4PE114に1対1に割り当てられており、セレクト信号生成部164で生成された信号に基づいて、第1命令メモリ101〜第3命令メモリ103から取得した命令を割り当てられたPEへ出力する。例えば、出力部154は、セレクト信号生成部164で生成された信号を基に、第1PE111が要求した命令メモリの命令をバス151を介して受け取り、当該第1PE111へ出力する。
1.2 動作
ここでは、情報処理装置100の動作について、図を用いて説明する。
(1)全PE共通動作
先ず、全PEが共通の動作を行う場合について、図4に示すタイミングチャートを用いて説明する。
第1PE111〜第4PE114は、プログラムカウンタの値に基づいて、第1命令メモリ101のSIMDプログラム200のある同一の命令を要求する(t1)。ここで、プログラムカウンタの値は3桁の数値からなり、最上位の桁には0、1、2が設定される。値0は第1命令メモリ101を、値1は第2命令メモリ102を、値2は第3命令メモリ103をそれぞれ示す。他の桁は最上位の桁で示される命令メモリに存在する命令を識別するものであり、例えばアドレスである。例えば、プログラムカウンタの値が“000”である場合には、第1命令メモリ101の命令の番号が“00”である命令を要求することになる。図4のt1時点では、全てのPEが第1命令メモリ101の命令の番号が“00”である命令を要求している。
アクセス判定部162a〜162c及びセレクト信号生成部164は、各PEからのプログラムカウンタの値を受け付ける(t2)。アクセス判定部162a〜162cは、受け取ったプログラムカウンタの値に基づいて、当該アクセス判定部が割り当てられている命令メモリに対してどのPEがアクセスを要求しているかを判定する。そして、アクセス判定部162a〜162cは、その結果(以下、アクセス判定結果という。)を対応するアドレス不一致判定部161a〜161cへ出力する。ここで、アクセス判定結果は、4桁の数値からなり、各桁について左から順に、第1PE111、第2PE112、第3PE113及び第4PE114が対応付けられており、各桁には値0又は1が設定される。値0は当該アクセス判定部に割り当てられた命令メモリへのアクセスを要求しない旨(non−access)を、値1は割り当てられた命令メモリへのアクセスを要求する旨を示す。図4のt2時点でプログラムカウンタ(値“000”)を受け取った場合には、アクセス判定部162aは、全てのPEが第1命令メモリ101へのアクセスを要求していることを示す4桁の値“1111”を生成する。また、アクセス判定部162b、162cは、全てのPEが第1命令メモリ101へのアクセスを要求していないことを示す4桁の値“0000”を生成する。
アドレス不一致判定部161a〜161cは、対応するアクセス判定部162a〜162cからアクセス判定結果を受け取る(t3)。そして、アドレス不一致判定部161a〜161cは、受け取ったアクセス判定結果により、アクセスが要求された命令メモリに対して異なるPEから異なるアドレスへのアクセスが要求されているか否かを判定する。そして、アドレス不一致判定部161a〜161cは、その結果(以下、アドレス判定結果という。)を対応するアドレス生成部160a〜160cへ出力する。ここで、アドレス不一致判定部161a〜161cによるアドレス判定結果は、4桁の数値からなり、各桁について左から順に、第1PE111、第2PE112、第3PE113及び第4PE114が対応付けられており、各桁には値0又は1が設定される。値0は割り当てられた命令メモリにおいて、他のPEとの競合が起きていないことを示し、値1は割り当てられた命令メモリにおいて、他のPEとの競合が起きていることを示す。図4のt3時点でアクセス判定部162a〜162cからアクセス判定結果を受け取った場合には、アドレス不一致判定部161aは、各PEに対して、他のPEと競合が起きていないことを示す4桁の値“0000”を生成する。なぜなら、第1PE111から第4PE114は、第1命令メモリ101の同じ命令を要求しているので、アクセス先は同一のアドレスとなるからである。また、アドレス不一致判定部161b、161cは、アクセスの要求自体なされていないため他のPEとの競合は起きないので、アドレス判定結果として値“0000”を生成する。
アドレス生成部160a〜160cは、対応するアドレス不一致判定部161a〜161cからのアドレス判定結果を受け取る(t4)。そして、アドレス生成部160a〜160cは、対応するアドレス不一致判定部161a〜161cから受け取ったアドレス判定結果により、割り当てられた命令メモリに対して要求された命令のアドレスを生成する。具体的には、アドレス生成部160a〜160cは、競合判定の機能により、対応するアドレス不一致判定部161a〜161cのアドレス判定結果が示す競合の有無に基づいて要求を受け付けるか否かを判定する。その判定結果(以下、要求受付結果)は、4桁の数値からなり、各桁について左から順に、第1PE111、第2PE112、第3PE113及び第4PE114が対応付けられており、各桁には値0又は1が設定される。値0は要求を受け付ける旨を、値1は要求を受け付けない旨を示す。競合が起きている場合には、4桁の値からなる要求受付結果をウエイト信号生成部163a〜163dへ出力する。ここでは、競合は起きていないので、要求受付結果はウエイト信号生成部163a〜163dへ出力されない。そして、アドレス生成部160a〜160cは、アドレス生成の機能により、アクセスが許可されたPEが要求する命令のアドレスを生成し、生成したアドレスを割り当てられた命令メモリへ通知する。ここでは、アドレス生成部160aのみが、第1命令メモリ101に対して、第1PE111〜第4PEの全てが要求する同一の命令のアドレス(000)を生成して第1命令メモリ101へ通知する。
また、セレクト信号生成部は、t2時点でプログラムカウンタ106〜109から当該プログラムカウンタの値を受け付けると、第1PE111から第4PE114のそれぞれが選択する命令メモリを特定し、特定結果を通信ネットワーク104へ出力する。ここで、特定結果は4桁の数値からなり、各桁について左から順に、第1PE111、第2PE112、第3PE113及び第4PE114が対応付けられており、各桁には値0〜2の何れかが設定される。値0は第1命令メモリ101を選択することを示し、値1は第2命令メモリ102を選択することを示し、値2は第3命令メモリ103を選択することを示す。
第1命令メモリ101はアドレス生成部160aで生成されたアドレスを受け取り、通信ネットワーク104はセレクト信号生成部164で生成された特定結果を受け取る(t5)。そして、第1命令メモリ101は受け取ったアドレスが示す命令(a0)を通信ネットワーク104へ出力する。通信ネットワーク104は、第1命令メモリ101から命令(a0)を受け取ると、先に受け取った特定結果に基づいて、出力すべき、つまり当該命令(a0)を要求したPEへ出力する。ここでは、第1PE111〜第4PE114の全てに、命令(a0)が出力される。
第1PE111〜第4PE114は、命令(a0)を受け取ると(t6)、受け取った命令(a0)を実行する。
(2)一部PE共通動作について
ここでは、全PE共通動作から一部PE共通動作への遷移について、図5に示すタイミングチャートを用いて説明する。
先ず第1PE111〜第4PE114は、プログラムカウンタの値000に基づいて、第1命令メモリ101のSIMDプログラム200のある同一の命令を要求する。なお、この場合の動作は、図4を用いて説明しているので、ここでの説明は省略する。
次に、第1PE111〜第4PE114は、プログラムカウンタの値に基づいて、第1命令メモリ101の異なる命令を要求する(t10)。図5では、第1PE111は第1命令メモリ101内において値05で示される命令(a5)を要求し、第2PE112及び第3PE114は第1命令メモリ101内において値03で示される命令(a3)を要求し、第4PE114は第1命令メモリ101内において値01で示される命令(a1)を要求している。
アクセス判定部162a〜162c及びセレクト信号生成部164は、各PEからのプログラムカウンタの値を受け付ける(t11)。アクセス判定部162a〜162cは、受け取ったプログラムカウンタの値に基づいて、当該アクセス判定部が割り当てられている命令メモリに対してどのPEがアクセスを要求しているかを判定する。そして、アクセス判定部162a〜162cは、その結果であるアクセス判定結果を対応するアドレス不一致判定部161a〜161cへ出力する。図5では、第1PE111〜第4PE114は、第1命令メモリへのアクセスを要求しているので、アクセス判定部162aは、アクセス判定結果として値“1111”を生成する。また、アクセス判定部162b、162cは、アクセス判定結果として値“0000”を生成する。
アドレス不一致判定部161a〜161cは、対応するアクセス判定部162a〜162cからアクセス判定結果を受け取る(t12)。そして、アドレス不一致判定部161a〜161cは、受け取ったアクセス判定結果により、アクセスが要求された命令メモリに対して異なるPEから異なるアドレスへのアクセスが要求されているか否かを判定する。そして、アドレス不一致判定部161a〜161cは、その結果であるアドレス判定結果を対応するアドレス生成部160a〜160cへ出力する。
図5では、第1命令メモリ101に割り当てられたアドレス不一致判定部161aは、第1PE111〜第4PE114それぞれ対して少なくとも他のPEと競合が起きているので、アドレス判定結果として値“1111”を生成する。また、他のアドレス不一致判定部161a、161bは、アクセスの要求自体なされていないので、アドレス判定結果として値“0000”を生成する。
アドレス生成部160a〜160cは、対応するアドレス不一致判定部161a〜161cからのアドレス判定結果を受け取る(t13)。そして、アドレス生成部160a〜160cは、対応するアドレス不一致判定部161a〜161cから受け取ったアドレス判定結果により、割り当てられた命令メモリに対して要求された命令のアドレスを生成する。先ず、アドレス生成部160a〜160cは、競合判定の機能により、対応するアドレス不一致判定部161a〜161cのアドレス判定結果が示す競合の有無に基づいて要求を受け付けるか否かを判定する。その判定結果である要求受付結果をウエイト信号生成部163a〜163dへ出力する。
図5では、第1命令メモリ101について競合が起きているので、アドレス生成部160aは、一の要求、例えば要求された命令のアドレスの値が最小のもの(ここでは、値01)を選択し、他の要求は選択しない、受け付けないものとし、その結果である要求受付結果“1110”を生成する。そして、その結果をウエイト信号生成部163a〜163dへ出力する。なお、他のアドレス生成部160b、160cでは競合は起きていないので、要求受付結果は出力されない。そして、アドレス生成部160a〜160cは、アドレス生成の機能により、アクセスが許可されたPEが要求する命令のアドレスを生成し、生成したアドレスを割り当てられた命令メモリへ通知する。図5では、アドレス生成部160aのみが、第1命令メモリ101に対して、第4PE114が要求する同一の命令のアドレス(001)を生成して第1命令メモリ101へ通知する。
また、セレクト信号生成部164は、t11時点でプログラムカウンタ106〜109から当該プログラムカウンタの値を受け付けると、第1PE111から第4PE114のそれぞれが選択する命令メモリを特定し、特定結果を通信ネットワーク104へ出力する。図5では、特定結果として値“0000”が生成される。
また、ウエイト信号生成部163a〜163dは、値が“0000”以外の要求受付結果を生成したアドレス生成部から当該要求受付結果を受け取る(t14)。ウエイト信号生成部163a〜163dは、受け取った要求受付結果の内容に基づいて、対応するPEに対してウエイト信号を発行する(t15)。図5では、ウエイト信号生成部163a〜163dは、アドレス生成部160aから要求受付結果として値“1110”を受け取る。そして、値1である桁に対応するPE(ここでは、第1PE111〜第3PE113)に対してウエイト信号を発行する。
第1命令メモリ101はアドレス生成部160aで生成されたアドレスを受け取り、通信ネットワーク104はセレクト信号生成部164で生成された特定結果を受け取る(t16)。そして、第1命令メモリ101は受け取ったアドレスが示す命令(a1)を通信ネットワーク104へ出力する。通信ネットワーク104は、第1命令メモリ101から命令(a1)を受け取ると、先に受け取った特定結果に基づいて、出力すべき、つまり当該命令(a1)を要求したPEへ出力する。ここでは、第4PE114に命令(a1)が出力される。
第4PE114は、命令(a1)を受け取ると(t17)、受け取った命令(a1)を実行する。
その後、第4PE114のプログラムカウンタ109は他の命令メモリ(ここでは、第3命令メモリ103)の命令を要求しているので、ウエイト信号が発行された第1PE111〜第3PE113のうち要求する命令のアドレス値が最小である命令a3が実行され、第1PE111には、再度ウエイト信号が発行される。
以上の説明によると、ウエイト信号の発行のタイミング、一部のPEの共通動作が分かる。
また、図5では、全PEが先ず命令“a0”を実行し、その後一部PEが共通の動作を行っているので、全PE共通動作から一部のPEの共通動作への遷移についてもその流れが分かる。
(3)一部PE共通動作から全PE共通動作への遷移
ここでは、一部PE共通動作から全PE共通動作への遷移について、図6に示すタイミングチャートを用いて説明する。
一部PE共通動作時における各構成要素間でのデータの受け渡し、及び全PE共通動作時における各構成要素間でのデータの受け渡しについては、既に図4、5を用いて説明しているので、以下において、遷移動作について簡単に説明する。
先ず、t20においては、第1PE111から第4PE114それぞれは、プログラムカウンタの値に基づいて、命令を要求する。例えば、第1PE111のプログラムカウンタ106の値は“006”であるので、第1PE111は第1命令メモリ101の命令“a6”を要求する。また、第2PE112及び第3PE113双方とも、第2命令メモリ102の命令“b1”を要求する。第4PE114は、第3命令メモリ103の命令“c2”を要求する。この場合、各PEにおいて、他のPEとは競合は発生しないので、第1PE111から第4PE114それぞれは、自身が要求した命令を実行することとなる。
t21においては、第1PE111は第1命令メモリ101の命令“a10”を要求する。また、第2PE112及び第3PE113双方とも、第2命令メモリ102の命令“b2”を要求する。第4PE114は、第3命令メモリ103の命令“c3”を要求する。この場合も、t20と同様に、第1PE111から第4PE114それぞれは、自身が要求した命令を実行することとなる。
t22においては、第1PE111は第1命令メモリ101の命令“a11”を要求する。また、第2PE112及び第3PE113双方とも、第2命令メモリ102の命令“b3”を要求する。第4PE114は、第1命令メモリ101の命令“a2”を要求する。この場合、第1PE111と第4PE114とは、同一命令メモリ(ここでは、第1命令メモリ101)上の異なる命令、つまり異なるアドレスを要求しているので、競合が発生する。そこで、アービター105は調停を行い、アドレスの値が最小である命令a2の要求を受け付ける。そのため、第1PE111には、ウエイト信号が発行される。したがって、t22で要求された各命令のうち、第2PE112及び第3PE113が要求した命令“b3”と、第4PE114が要求した命令“a2”とが実行されることとなる。
t23においては、第1PE111及び第4PE114の双方は、第1命令メモリ101の命令“a11”を要求する。また、第2PE112及び第3PE113の双方は、第1命令メモリ101の命令“a4”を要求する。この場合、t22の場合と同様に、競合が発生しているので、アービター105は調停を行い、アドレスの値が最小である命令a4の要求を受け付ける。そのため、第1PE111及び第4PE114には、ウエイト信号が発行される。したがって、t23で要求された各命令のうち、第2PE112及び第3PE113が要求した命令“a4”が実行されることとなる。
t24においては、第1PE111から第4PE114の全てが、第1命令メモリ101の命令“a11”を要求しているので、アービター105は調停を行うことなく、全てのPEに対する命令の要求を受け付ける。その結果、第1PE111から第4PE114の全てが、命令“a11”を実行する。
以上の説明により、一部PE共通動作から全PE共通動作への遷移が確実に行われたことが分かる。
1.3 動作の補足
ここでは、情報処理装置100の動作について、補足的な説明を行う。
なお、以下の説明において、情報処理装置100は、例えば、MPEG等のビデオデコードを行うものとする。
第1PE111〜第4PEそれぞれは、自身が有するプログラムカウンタ106〜109に従い、第1命令メモリ101〜第3命令メモリ103の何れかへアクセスする為、命令供給の為のリクエストをアクセス先のメモリアドレスと共にアービター105に発行する。アービター105では、複数の要素プロセッサからのリクエストからアクセス先のアドレスを解釈する。異なるメモリに対するアクセスや、同一メモリに対する同一アドレスへのアクセスであれば、競合が発生しない。そこで、通信ネットワーク104に対して、第1命令メモリ101〜第3命令メモリ103と第1PE111〜第4PE114を接続するようにリクエストする。これにより第1命令メモリ101〜第3命令メモリ103からの命令が第1PE111〜第4PE114に供給され、命令に従い各PEは動作を始める。
第1PE111〜第4PE114それぞれのプログラムカウンタ106〜109が同じ値で、同一命令メモリの同一メモリアドレスをさす場合には、同じ命令が第1PE111〜第4PE114に供給され、各PEは、SIMD型動作を行う。例えば、情報処理装置100は、図2のSIMDプログラム200を実行する。
また、情報処理装置100が、マクロブロックのデコードを行う際、例えば4個のマクロブロックのうち、2個が同じタイプのマクロブロックの場合には、以下の通り動作する。2個のPE(ここでは、第2PE112と第3PE113)のプログラムカウンタが同じ値で、同一命令メモリの同一メモリアドレスを指し、その他のPE(第1PE111と第4PE114)は、アドレスが競合を発生しない異なるメモリへのアクセスを要求する。この場合には、例えば、第2命令メモリ102から第2PE112及び第3PE113に同じ命令が供給され、第1PE111、第4PE114にはそれぞれ第1命令メモリ101、第3命令メモリ103から供給される。これによりMIMD型動作(部分SIMD型動作)を行うことが可能である。供給された命令に従い、例えばメモリアクセス命令の場合には、第1PE111〜第4PE114は、データメモリ115〜118にアクセスしてデータを取り込み、後続の演算命令で演算を行う。これにより異なるタイプのマクロブロックに対して、異なるプログラムで同時に実行することが可能となる。
一方、アービター105で、第1PE111〜第4PE114からのリクエストからアクセス先のアドレスを解釈し、同一メモリに対する異なるアドレスのアクセスが競合する場合には、アドレスの値が最小である命令のみを受け付け、他の命令は受け付けない。つまり、一のPEのみの要求を受け付け、残りのPEを待たせる。これにより、同一メモリ上、ここでは、第1命令メモリ101上にSIMDプログラム200とMIMDプログラム201を同時に配置できる。
図2では、先ず全てのPEは、SIMDプログラムを実行し、図中に記載しているswitch文により、処理を分岐して、各PEがMIMDプログラム201〜203を実行し、終了後SIMDプログラム200に戻り同期待ちを行い、再度SIMDプログラム200を実行する。ここで、第1命令メモリ101にはMIMDプログラム201〜203の中で最も短いプログラムであるMIMDプログラム201が配置されているので、各PEが、MIMDプログラム201〜203の何れかを実行した後、再度SIMDプログラム200に戻る際の競合回数を抑制することができる。なぜなら、MIMDプログラム201の実行の終了が他のMIMDプログラムの実行の終了より早いので、他のMIMDプログラムの実行が終了したときには第1命令メモリ101が利用されていない可能性が高いからである。
以上のように、例えばマクロブロックタイプに関係なく共通の処理をSIMDプログラム200で実行し、マクロブロックタイプごとに異なる処理は、MIMDプログラム201〜203で実行することで、並列度を上げ効率的に処理することが可能となる。
また、上述の記載から分かるように、アービター105の制御により、複数のPEのうち一部のPEが同一のMIMDプログラムを実行することができる。つまり、MIMDプログラムについても、SIMDプログラムと同様に、一部のPEにおいて共通処理を行う場合に用いることができる。
さらに、SIMDプログラムについてもMIMDプログラムと同様に、アービター105の制御により複数のPEのうち一部のPEで実行される。つまり、SIMDプログラムは、従来のように全てのPEに対してのみだけでなく、一部のPEにおいて共通処理を行う場合に用いられる。
2.適用例
ここでは、情報処理装置100の適用例について説明する。
2.1 システムLSI500
図7は、情報処理装置100を用いたシステムLSI500の構成を示す。
システムLSI500は、放送波などのストリームを受信して、受信したストリームから画像を生成して出力する機能を備えたものである。システムLSI500は、上述した情報処理装置100、マスタープロセッサ501、アクセラレータ502、ストリーム入出力部503、メモリ制御部504、AV入出力部505及び広帯域バス506から構成されている。
情報処理装置100は、受信したストリームに含まれるエンコードされた画像データをデコードするものである。ここで、デコードはマクロブロック単位に行われ、同じタイプのマクロブロックについては、SIMDプログラム200で実行し、マクロブロックタイプごとに異なる処理は、MIMDプログラム201〜203で実行することで、エンコードされた画像データをデコードする。
他の構成要素については、既知のものであるが、以下において簡単に説明する。
ストリーム入出力部503は、ストリームを受信し、受信したストリームを外部にある外部メモリ507へ広帯域バス506及びメモリ制御部504を介して出力する機能を有している。
AV入出力部505は、外部メモリ507に保持されているデコードされた画像を広帯域バス506及びメモリ制御部504を介して取得し、取得した画像を外部へ出力する機能を有している。
メモリ制御部504は、外部メモリ507へデータの書き込み、及び外部メモリからデータを読み出す機能を有している。具体的には、メモリ制御部504は、ストリーム入出力部503で受信されたストリームのデータ(エンコードされた画像データ)を外部メモリ507へ書き込む。メモリ制御部504は、デコード対象である画像データのマクロブロックを外部メモリ507から読み出して、広帯域バス506を介して情報処理装置100へ出力する。また、メモリ制御部504は、情報処理装置100でデコードされたマクロブロックを広帯域バス506を介して情報処理装置100から受け取ると、外部メモリ507へ書き込む。さらには、デコードされた画像を外部メモリ507から読み出して、AV入出力部505へ出力する。
マスタープロセッサ501は、システムLSI500の全体の動作の制御を行うものである。具体的には、ストリーム入出力部503、メモリ制御部504及びAV入出力部505の動作の制御を行う。
アクセラレータ502は、画像処理に対する処理能力高めるためのものであり、マスタープロセッサ501の画像処理に対する処理負担を軽減させる。
広帯域バス506は、各構成要素間において、データの入力を行うものである。
このように、情報処理装置100を画像処理を行うシステムLSI500に適用することで、マクロブロックタイプに関係なく共通の処理をSIMDプログラム200で実行し、マクロブロックタイプごとに異なる処理は、MIMDプログラム201〜203で実行することで、並列度を上げ効率的に処理することが可能となる。
2.2 テレビ600
図8は、上述したシステムLSI500を用いたテレビ600の構成を示すものである。
テレビ600は、システムLSI500、外部メモリ507、復調部601及びディスプレイパネル611を有している。
システムLSI500は既に説明しているので、ここでの説明は省略する。
外部メモリ507は、上述したようにエンコードされた画像データ及びデコードされた画像データを格納する領域を有している。
復調部601は、外部のアンテナ610を介してデジタル放送波(ストリーム)を受信し、受信したストリームの信号を復調する機能を有している。復調部601は、復調したストリームの信号をシステムLSI500のストリーム入出力部503へ出力する。
ディスプレイパネル611は、システムLSI500のAV入出力部505から受け取った画像を表示するものである。
このように、上述したシステムLSI500をテレビ600に適用することで、画像処理の並列度を上げ効率的に処理することが可能となる。
2.3 レコーダ700
図9は、上述したシステムLSI500を用いたレコーダ700の構成を示すものである。
レコーダ700は、システムLSI500、外部メモリ507、復調部601及び記憶部701を有している。
システムLSI500、外部メモリ507、及び復調部601は、既に説明しているので、ここでの説明は省略する。
記憶部701は、受信したストリームを記憶するための領域を有しており、受信したストリームは、ストリーム入出力部503を介して記録される。なお、記録された時点では、ストリームに含まれるデータがデコードされていない。
システムLSI500は、記憶部701に記録されたストリーム(番組)を再生する際には、ストリーム入出力部503により記録されているストリームを読み出し、上述した処理によりエンコードされた画像をデコードして、外部に接続されたテレビ702へ出力する。
このように、上述したシステムLSI500をレコーダ700に適用することで、記録した画像を再生する際の処理の並列度を上げ効率的に処理することが可能となる。
2.4 デジタルカメラ800
図10は、上述したシステムLSI500を用いたデジタルカメラ800の構成を示すものである。
デジタルカメラ800は、システムLSI500、外部メモリ507、カメラ機構801及び液晶ディスプレイ803を有している。また、デジタルカメラ800は、メモリカード802と脱着可能である。
システムLSI500及び外部メモリ507は、既に説明しているので、ここでの説明は省略する。
カメラ機構801は、レンズ、シャッター等を備えており、レンズに映し出された被写体の静止画像を撮影する機能を有している。
液晶ディスプレイ803は、撮像された画像データを表示するものである。
システムLSI500は、被写体の撮影時には、カメラ機構801で撮像された画像データをAV入出力部505で受け取ると、情報処理装置100で画像データのエンコードに係る処理を行う。その後、ストリーム入出力部503を介してメモリカード802へ書き込む。
システムLSI500は、撮影された画像データを表示する際には、メモリカード802に記憶されている画像データをストリーム入出力部503で読み出すと、情報処理装置100で画像データのデコードに係る処理を行う。その後、AV入出力部505を介して液晶ディスプレイ803へ出力する。
なお、ここでは、適用例としてデジタルカメラとしたが、これに限定されない。システムLSI500をデジタルビデオカメラに適用してもよい。この場合、カメラ機構が異なる。上記では、カメラ機構は、静止画像を撮影する機能を有するとしたが、デジタルビデオカメラでは、動画像を撮影する機能となる。この場合においても、上記と同様に、情報処理装置100は、撮影時には画像データのエンコードに係る処理を行い、再生時には画像データのデコードに係る処理を行う。
なお、デジタルカメラ及びデジタルビデオカメラにおいて、カメラ機構は、静止画像及び動画像を撮影する双方の機能を有していてもよい。
このように、上述したシステムLSI500をデジタルカメラ800に適用することで、画像の撮影時及び再生時における画像処理の並列度を上げ効率的に処理することが可能となる。
2.5 携帯電話機900
図11は、上述したシステムLSI500を用いた携帯電話機900の構成を示すものである。
携帯電話機900は、システムLSI500、外部メモリ507、カメラ機構801、液晶ディスプレイ803、変復調部901及びアンテナ910を有している。また、携帯電話機900は、メモリカード802と脱着可能である。
システムLSI500、外部メモリ507、カメラ機構801及び液晶ディスプレイ803は、既に説明しているので、ここでの説明は省略する。
アンテナ910は、データの送受信を行うものである。
変復調部901は、アンテナ910で受信したデータ(信号)を復調する機能と、システムLSI500から受け取ったデータ(信号)を変調する機能を有している。例えば、変復調部901は、アンテナ910を介して画像データ(ストリーム)を外部から受け取ると、ストリームの信号を復調してシステムLSI500のストリーム入出力部503へ出力する。また、変復調部901は、ストリーム入出力部503から画像データ(ストリーム)を受け取ると、データを変調してアンテナ910を介して外部へ出力する。
このように、上述したシステムLSI500を携帯電話機900に適用することで、当該携帯電話機900のカメラ機構801での画像の撮影時、及び撮影された画像の再生時における画像処理の並列度を上げ効率的に処理することが可能となる。また、外部から画像データを受信した場合も同様に、受信した画像データにおける画像処理についても並列度を上げ効率的に処理することが可能となる。
以上、説明したように、情報処理装置100は、TVや携帯電話などに必要なビデオコーデックや画像処理を行うシステムLSIに適用可能である。
3.変形例
以上、各実施の形態に基づいて説明したが、本発明は上記の各実施の形態に限られない。例えば、以下のような変形例が考えられる。
(1)上記実施の形態では、命令メモリの個数を3個、プロセッサエレメントの個数を4個としたが、これに限定されない。
命令メモリの個数をn個とした場合、プロセッサエレメントの個数は少なくともn+1個とすればよい。
複数のプロセッサエレメントに対して、命令メモリの個数は1つである場合には、SIMDプログラム及び複数のMIMDプログラムは全て当該命令メモリに含まれることとなる。
(2)上記各実施の形態、及び各変形例で説明した各装置が備える各ブロックは、典型的には、集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部または全てを含むように1チップ化されてもよい。ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィグラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩または派生する別技術により、LSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてあり得る。
(3)これらの実施の形態および変形例の組合せであってもよい。
4.補足
(1)本発明の一実施態様である、情報処理装置は、複数のプロセッサエレメントと、第1プログラム及び第2プログラムを記憶している命令メモリと、前記複数のプロセッサエレメントと前記命令メモリとの間に介在し、各プロセッサエレメントからの前記第1プログラムの命令及び前記第2プログラムの命令の要求を受け付け、各プロセッサエレメントのアクセス制御を行うアービターとを備え、前記アービターは、プロセッサエレメントそれぞれから同時に同一プログラム内の異なる命令に対する要求、及び異なるプログラム内の命令に対する要求がある場合には調停を行い、2つ以上のプロセッサエレメントから同時に同一プログラム内の同一の命令に対する要求があると、当該命令メモリの利用が可能な場合には要求元である各プロセッサへ当該命令を同時に出力することを特徴とする。
この構成によると、情報処理装置は、第1プログラムと第2プログラムを1つの命令メモリに記憶し、アービターにより複数のプロセッサエレメントによるアクセスの制御を行うので、従来のように第1プログラム及び第2プログラムそれぞれについて個別の命令メモリを用意する必要することなく、複数のプロセッサエレメントそれぞれが実行すべきプログラムへのアクセスが可能となる。
(2)ここで、前記第1プログラムは、2つ以上のプロセッサエレメントで実行される共通の処理命令を含むSIMD型プログラムであり、前記第2プログラムは、プロセッサエレメント毎に実行されるMIMD型プログラムであるとしてもよい。
この構成によると、情報処理装置は、1つの命令メモリに記憶されたSIMD型のプログラムと、MIMD型のプログラムとを、アービターの制御により実行するので、従来のようにスイッチにより、SIMD型のプログラムとMIMD型のプログラムとを切り替える必要がなくなる。つまり、情報処理装置は、1つの命令メモリにSIMD型のプログラムと、MIMD型のプログラムとを共存させて、各々のプログラムを実行するので、個別に命令メモリを用意する場合と比較して、命令メモリの占有面積を小さくすることができる。
(3)ここで、前記情報処理装置は、さらに、前記命令メモリとは別の命令メモリを備え、前記別の命令メモリは、前記MIMD型プログラムとは別のMIMD型プログラムを記憶しており、前記アービターは、少なくとも1つのプロセッサエレメントから前記別のMIMD型プログラムへのアクセス要求を受け付けると、当該少なくとも1つのプロセッサエレメントに対して、前記別のMIMD型プログラムの命令を出力するとしてもよい。
この構成によると、情報処理装置は別の命令メモリに別のMIMD型プログラムを記憶しているので、アービターの制御によりこれら2つのMIMD型プログラムを並列に実行することができる。これにより、1つの命令メモリにSIMD型のプログラムと、MIMD型のプログラムとを共存させた場合でも、アービターの制御により従来と同様に複数のMIMD型プログラムを並列に実行させることができる。
(4)ここで、前記複数のプロセッサエレメントは、前記SIMD型プログラムへのアクセス要求を同時に行い、前記SIMD型プログラムに含まれる前記複数のプロセッサエレメントの全てに共通の命令を同時に実行し、共通の命令を実行した後、前記複数のプロセッサエレメントのそれぞれは、当該プロセッサエレメントの処理態様に応じて、前記MIMD型プログラム、前記別のMIMD型プログラム及び前記SIMD型プログラムの何れかへのアクセス要求を行うとしてもよい。
この構成によると、情報処理装置は、全てのプロセッサエレメントに対してSIMD型プログラムにより共通の処理を実行させた後、個別の処理を実行させることができる。これにより、1つの命令メモリにSIMD型のプログラムと、MIMD型のプログラムとを共存させた場合でも、アービターの制御により従来と同様に共通の処理の実行から個別処理の実行へと切り替えることができる。
(5)ここで、前記MIMD型プログラムのサイズは、前記別のMIMD型プログラムのサイズより小さいものであるとしてもよい。
この構成によると、情報処理装置は、命令メモリには2つのMIMD型プログラムにうちプログラムサイズが小さいMIMD型プログラムを記憶しているので、大きい方のMIMD型プログラムを記憶する場合と比較して、競合が発生する確率を低くすることができる。
(6)ここで、前記情報処理装置は、画像処理を行う装置であり、前記SIMD型プログラムには、処理すべき画像全てに共通の処理命令が含まれ、前記MIMD型プログラム及び前記別のMIMD型プログラムには、処理すべき画像の種別に応じた、異なる処理命令が含まれているとしてもよい。
この構成によると、情報処理装置は、画像処理に有効である。
(7)ここで、前記情報処理装置は、デジタルテレビに備えられるとしてもよい。
この構成によると、情報処理装置は、デジタルテレビにおける映像を処理する際に有効である。
本発明の情報処理装置によれば、SIMDプログラムとMIMDプログラムとを同一の命令メモリ上に記憶することで回路規模の削減を実現することができる。またデジタルビデオカメラ及びデジタルカメラ、光ディスクレコーダ、TV、携帯電話等の用途にも応用できる。
100 情報処理装置
101〜103 第1命令メモリ〜第3命令メモリ
104 通信ネットワーク
105 アービター
106〜109 プログラムカウンタ(PC)
111〜114 第1プロセッサエレメント(第1PE)〜第4プロセッサエレメント(第4PE)
115〜118 データメモリ
131 バス
151〜153 バス
154〜157 出力部
160a〜160c アドレス生成部
161a〜161c アドレス不一致判定部
162a〜162c アクセス判定部
163a〜163d ウエイト信号生成部
164 セレクト信号生成部
165〜168 バス

Claims (8)

  1. 複数のプロセッサエレメントと、
    第1プログラム及び第2プログラムを記憶している命令メモリと、
    前記複数のプロセッサエレメントと前記命令メモリとの間に介在し、各プロセッサエレメントからの前記第1プログラムの命令及び前記第2プログラムの命令のアクセス要求を受け付け、各プロセッサエレメントのアクセス制御を行うアービターとを備え、
    前記アービターは、
    プロセッサエレメントそれぞれから同時に前記命令メモリ上の異なるアドレスに置かれた命令に対するアクセス要求がある場合には調停を行い、
    2つ以上のプロセッサエレメントから同時に前記命令メモリ上の同一アドレスに置かれた命令に対するアクセス要求があると、要求元である各プロセッサへ当該命令を同時に出力する
    ことを特徴とする情報処理装置。
  2. 前記第1プログラムは、2つ以上のプロセッサエレメントで実行される共通の処理命令を含むSIMD型プログラムであり、
    前記第2プログラムは、プロセッサエレメント毎に実行されるMIMD型プログラムである
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記情報処理装置は、さらに、
    前記命令メモリとは別の命令メモリを備え、
    前記別の命令メモリは、前記MIMD型プログラムとは別のMIMD型プログラムを記憶しており、
    前記アービターは、
    少なくとも1つのプロセッサエレメントから前記別のMIMD型プログラムへのアクセス要求を受け付けると、当該少なくとも1つのプロセッサエレメントに対して、前記別のMIMD型プログラムの命令を出力する
    ことを特徴とする請求項2に記載の情報処理装置。
  4. 前記複数のプロセッサエレメントは、前記SIMD型プログラムへのアクセス要求を同時に行い、当該アクセス要求が前記命令メモリ上の同一アドレスに置かれた命令に対するものである場合には、前記SIMD型プログラムに含まれる前記複数のプロセッサエレメントの全てに共通の命令を同時に実行し、
    共通の命令を実行した後、前記複数のプロセッサエレメントのそれぞれは、前記SIMD型プログラム内の条件文により処理を分岐し、前記MIMD型プログラム、前記別のMIMD型プログラム及び前記SIMD型プログラムの何れかへのアクセス要求を行う
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記MIMD型プログラムのサイズは、前記別のMIMD型プログラムのサイズより小さいものである
    ことを特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置は、画像処理を行う装置であり、
    前記SIMD型プログラムには、処理すべき画像全てに共通の処理命令が含まれ、
    前記MIMD型プログラム及び前記別のMIMD型プログラムには、処理すべき画像の種別に応じた、異なる処理命令が含まれている
    ことを特徴とする請求項4に記載の情報処理装置。
  7. 前記情報処理装置は、デジタルテレビに備えられる
    ことを特徴とする請求項6に記載の情報処理装置。
  8. 複数のプロセッサエレメントと、
    第1プログラム及び第2プログラムを記憶している命令メモリと、
    前記複数のプロセッサエレメントと前記命令メモリとの間に介在し、各プロセッサエレメントからの前記第1プログラムの命令及び前記第2プログラムの命令のアクセス要求を受け付け、各プロセッサエレメントのアクセス制御を行うアービターとを備え、
    前記アービターは、
    プロセッサエレメントそれぞれから同時に前記命令メモリ上の異なるアドレスに置かれた命令に対するアクセス要求がある場合には調停を行い、
    2つ以上のプロセッサエレメントから同時に前記命令メモリ上の同一アドレスに置かれた命令に対するアクセス要求があると、要求元である各プロセッサへ当該命令を同時に出力する
    ことを特徴とする集積回路。
JP2011510180A 2009-04-22 2010-04-15 情報処理装置 Expired - Fee Related JP5379223B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011510180A JP5379223B2 (ja) 2009-04-22 2010-04-15 情報処理装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2009103567 2009-04-22
JP2009103567 2009-04-22
PCT/JP2010/002734 WO2010122746A1 (ja) 2009-04-22 2010-04-15 情報処理装置
JP2011510180A JP5379223B2 (ja) 2009-04-22 2010-04-15 情報処理装置

Publications (2)

Publication Number Publication Date
JPWO2010122746A1 JPWO2010122746A1 (ja) 2012-10-25
JP5379223B2 true JP5379223B2 (ja) 2013-12-25

Family

ID=43010874

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011510180A Expired - Fee Related JP5379223B2 (ja) 2009-04-22 2010-04-15 情報処理装置

Country Status (3)

Country Link
US (1) US8719551B2 (ja)
JP (1) JP5379223B2 (ja)
WO (1) WO2010122746A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6259361B2 (ja) * 2014-06-23 2018-01-10 日本電信電話株式会社 プログラマブルデバイスおよびその制御方法
JP6396715B2 (ja) * 2014-08-07 2018-09-26 ルネサスエレクトロニクス株式会社 データ処理装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668053A (ja) * 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
JPH07141304A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd メモリアレーを用いた並列演算装置
JP2004171530A (ja) * 2002-10-16 2004-06-17 Matsushita Electric Ind Co Ltd 並列実行プロセッサ、命令割当方法
WO2008023576A1 (fr) * 2006-08-23 2008-02-28 Nec Corporation Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte
JP2008077151A (ja) * 2006-09-19 2008-04-03 Sony Corp 共有メモリ装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3229260A (en) * 1962-03-02 1966-01-11 Ibm Multiprocessing computer system
EP0429733B1 (en) 1989-11-17 1999-04-28 Texas Instruments Incorporated Multiprocessor with crossbar between processors and memories
JP2836875B2 (ja) 1989-12-27 1998-12-14 株式会社クラレ イミド化アクリル樹脂の製造方法
JP2000132529A (ja) * 1998-10-23 2000-05-12 Sony Corp 並列処理装置、並列処理方法および記録媒体
US7237071B2 (en) * 2001-12-20 2007-06-26 Texas Instruments Incorporated Embedded symmetric multiprocessor system with arbitration control of access to shared resources
US7395408B2 (en) 2002-10-16 2008-07-01 Matsushita Electric Industrial Co., Ltd. Parallel execution processor and instruction assigning making use of group number in processing elements

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668053A (ja) * 1992-08-20 1994-03-11 Toshiba Corp 並列計算機
JPH07141304A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd メモリアレーを用いた並列演算装置
JP2004171530A (ja) * 2002-10-16 2004-06-17 Matsushita Electric Ind Co Ltd 並列実行プロセッサ、命令割当方法
WO2008023576A1 (fr) * 2006-08-23 2008-02-28 Nec Corporation Élément de traitement, système de processeur parallèle en mode mixte, procédé pour élément de traitement, procédé pour processeur parallèle en mode mixte, programme pour élément de traitement, et programme pour processeur parallèle en mode mixte
JP2008077151A (ja) * 2006-09-19 2008-04-03 Sony Corp 共有メモリ装置

Also Published As

Publication number Publication date
US8719551B2 (en) 2014-05-06
WO2010122746A1 (ja) 2010-10-28
JPWO2010122746A1 (ja) 2012-10-25
US20120036336A1 (en) 2012-02-09

Similar Documents

Publication Publication Date Title
KR100418437B1 (ko) 멀티미디어 신호처리를 위한 영상복원 프로세서
US7430621B2 (en) Multiple channel data bus control for video processing
JP4426099B2 (ja) 共有メモリを有するマルチプロセッサ装置
US5448310A (en) Motion estimation coprocessor
WO2009130871A1 (ja) 復号化装置
US8601192B2 (en) Arbitration device, arbitration system, arbitration method, semiconductor integrated circuit, and image processing device
US20110249744A1 (en) Method and System for Video Processing Utilizing N Scalar Cores and a Single Vector Core
US20110317763A1 (en) Information processing apparatus and information processing method
US20060212612A1 (en) I/O controller, signal processing system, and method of transferring data
JP5309700B2 (ja) 動画像復号装置および符号化装置
KR19980032141A (ko) 비디오 인터페이스와 오버레이 시스템 및 그의 프로세스
KR100864834B1 (ko) 메모리 재할당을 이용한 다중 프로세서 간의 데이터 전송장치 및 방법
US10877811B1 (en) Scheduler for vector processing operator allocation
US7302503B2 (en) Memory access engine having multi-level command structure
JP5379223B2 (ja) 情報処理装置
KR100663380B1 (ko) 촬상 장치 및 영상 신호 생성 방법
JP2008172410A (ja) 撮像装置、画像処理装置、画像処理方法、画像処理方法のプログラム及び画像処理方法のプログラムを記録した記録媒体
US9176891B2 (en) Processor, processing system, data sharing processing method, and integrated circuit for data sharing processing
US9547330B2 (en) Processor and control method for processor
US11216307B1 (en) Scheduler for vector processing operator readiness
US20060098730A1 (en) Video codec
US20020166015A1 (en) Device for processing data by means of a plurality of processors
Wang et al. Design and implementation of a flexible DMA controller in video codec system
US8788793B2 (en) Instruction issue to plural computing units from plural stream buffers based on priority in instruction order table
JP2001084215A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130724

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130926

R150 Certificate of patent or registration of utility model

Ref document number: 5379223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees