JP2006338538A - ストリームプロセッサ - Google Patents

ストリームプロセッサ Download PDF

Info

Publication number
JP2006338538A
JP2006338538A JP2005164579A JP2005164579A JP2006338538A JP 2006338538 A JP2006338538 A JP 2006338538A JP 2005164579 A JP2005164579 A JP 2005164579A JP 2005164579 A JP2005164579 A JP 2005164579A JP 2006338538 A JP2006338538 A JP 2006338538A
Authority
JP
Japan
Prior art keywords
task
processor
dma
data
command
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
JP2005164579A
Other languages
English (en)
Inventor
Katsumi Togawa
勝巳 戸川
Kenichiro Anjo
健一朗 安生
Taro Fujii
太郎 藤井
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 JP2005164579A priority Critical patent/JP2006338538A/ja
Priority to EP06011545A priority patent/EP1736890A3/en
Priority to US11/445,132 priority patent/US20060277545A1/en
Publication of JP2006338538A publication Critical patent/JP2006338538A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 secondary processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

【課題】 ホストプロセッサの処理負荷の増大による処理能力の低下やスループットの低下を抑制できるストリームプロセッサを提供する。
【解決手段】 タスクに対応付けられたタスクコマンドとタスクに対応付けられたタスクデータとを外部のメモリからロードする入力DMA回路と、タスクデータをタスクコマンドで指定されるプログラムにしたがって処理するアレイ型プロセッサと、該プログラムがアレイ型プロセッサにロードされていない場合に、アレイ型プロセッサからの転送要求によってプログラムを外部メモリからアレイ型プロセッサにロードする構成情報DMAコントローラとを備えた構成とする。アレイ型プロセッサは、プログラムのロードが完了してからタスクデータの処理を開始する。
【選択図】 図1

Description

本発明は、情報処理装置で用いられる、各種の処理を実現するアレイ型プロセッサを備えたストリームプロセッサに関する。
情報処理装置は、その利用範囲が広がり、より高度な演算処理あるいは画像や動画のように大量のデータを高速に処理する能力が要求されている。このような要求を満たすための手法として、従来、ホストプロセッサとは別に特定の演算や処理を専用に実行するDSP(Digital Signal Processor)やASIC(Application Specific Integrated Circuit)等を備え、CPU等のホストプロセッサの処理負荷を軽減することで情報処理装置としての処理能力を向上させた構成が知られている。
しかしながら、近年の情報処理装置は、これら画像、動画、音声、音楽等のマルチメディアデータに対して様々な規格の圧縮/伸長処理や演算処理等が必要になり、またインターネット等のネットワークを介して各種データを送受信するための通信処理にも様々なプロトコルが用いられるようになってきている。さらに、ネットワーク上で送受信される情報の安全性が問題となっているため、情報セキュリティのための暗号化処理やそれを解読するための復号処理等も必要となる。そのため、これらの処理に合わせて多数のDSPやASIC等を設けていたのでは、情報処理装置の回路規模やコストが膨大なものとなってしまう。
そこで、情報処理装置内にPLD(Programmable Logic Device)を備え、必要に応じてPLD内のプログラムを書き換えることにより、情報処理装置としての処理速度を向上させると共に、コストを低減しつつ様々な処理要求への対応を可能にした構成が特許文献1で提案されている。この特許文献1で提案された従来の情報処理装置の構成を図8に示す。
図8は従来の情報処理装置の構成を示すブロック図である。
図8に示すように、従来の情報処理装置は、プログラムにしたがって処理を実行するCPU100と、CPU100に代わって特定の処理を実行するPLD110と、PLD110に実行させるプログラムを書き換える変更部120と、CPU100やPLD110で実行するプログラム及び処理対象となるデータや処理後のデータ等が格納されるメモリ130と、処理後のデータや処理状況等を外部へ出力するための出力部140と、データを外部から入力するための入力部150とを有し、それらがバス160を介して接続された構成である。
CPU100は、メモリ130に格納されたOS(Operating System)プログラムやアプリケーションプログラム等にしたがって処理を実行する。PLD110は、内部にプログラムを格納するためのメモリを備え、CPU100の指示にしたがって変更部120によりメモリ130に格納されたプログラムが内部のメモリへロードされ、ロードされたプログラムにしたがって特定の処理(以下、タスクと称す)を実行する。なお、PLD110は、PLD110自身でタスクのプログラム(以下、タスク用プログラムと称す)を内部のメモリへロードすることはできないため、PLD110で実行するタスクを切り換える場合は、外部の装置(CPU100や変更部120)がPLD110の内部のメモリへタスク用プログラムをロードする必要がある。
CPU100は、PLD110にタスクを実行させる場合、対応するタスク用プログラムのPLD110へのロード(Load)要求及び該タスク用プログラムを特定する情報を変更部120に送信する。また、PLD110に対して処理対象となるデータを送信する。
変更部120は、CPU100からロード要求を受信すると、CPU100が指定するタスク用プログラムをメモリ130から読み出し、該タスク用プログラムをPLD110へ書き込む。PLD110は、タスク用プログラムにしたがって内部回路を変更し、処理対象のデータ(以下、タスクデータと称す)に対して指定されたタスクの処理を実行する。また、タスクが終了すると、割り込み信号等を用いてCPU100へ通知する。CPU100は、PLD110からタスクの終了通知を受け取ると、PLD110に次に実行させるタスクの種類を判断し、前回と同一のタスクを実行させる場合はPLD110に処理対象となる次のタスクデータを送信する。また、前回と異なるタスクを実行させる場合は、上記と同様にそのタスク用プログラムを特定する情報及びロード要求を変更部120へ送信し、PLD110のタスク用プログラムを書き換える。
このように図8に示した情報処理装置では、PLD110に実行させるタスク用プログラムを変更部120で書き換えることで、コストを低減しつつ様々な処理要求への対応を可能にしている。
しかしながら、図8に示した従来の情報処理装置は、上述したように変更部120が能動的にPLD110のタスク用プログラムを書き換えるものではなく、あくまでもCPU100がPLD110に実行させるタスクの種類を判断し、必要なタスク用プログラムのロード要求を発行している。したがって、PLD110に対するタスク用プログラムのロード処理が頻繁に発生すると、CPU100の処理負荷が増大して情報処理装置の処理能力を十分に向上させることができない問題がある。
また、図8に示すような情報処理装置の場合、通常、CPU100は、複数の処理を切り換えて実行するマルチタスク処理を行っている。したがって、CPU100は、PLD110から割り込み信号によってタスクの終了が通知されると、割り込みハンドラを起動してPLD110に次に実行させるタスクを判断し、必要に応じてPLD110に対するタスク用プログラムのロード要求を発行する。このような処理を行う割り込みハンドラを起動すると、CPU100のタスクスイッチによるオーバーヘッドが発生し、CPU100の処理のスループットが低下する問題がある。
このタスクスイッチが発生した場合のCPUの一般的な処理手順について図9を用いて説明する。なお、タスクスイッチ発生時のCPUの処理手順については、例えば特許文献2でも例示されている。
図9はタスクスイッチ発生時のCPUの処理手順を示すタイミングチャートである。
図9は、CPU100がタスク0を実行中にPLD110からタスクBの終了を示す割り込み信号を受信し、タスク0の処理を中断してタスクAのプログラムのロード要求を変更部120へ送信し、その後タスク0の処理を再び実行する場合の処理手順を示している。
図9に示すように、PLD110から割り込み信号(サイクル(1))が発行されると、CPU100は、まず自身が備える汎用レジスタ、ステータスレジスタ、プログラムカウンタ、スタックポインタ等の内部レジスタで保持しているタスク0の中間データ(処理途中のデータ)をストア(Store)命令を用いてメモリ130へ保存する(サイクル(2))。
次に、CPU100は、タスクAのプログラムのロードに必要な初期データを、ロード命令を用いてメモリ130から内部レジスタに読み込む(サイクル(3))。初期データとしては、例えば現在PLD110に書き込まれているタスク用プログラムの種類を示す情報等がある。
初期データの内部レジスタへの読み込みが終了すると、CPU100は、PLD110にタスクAのプログラムをロードさせるための処理を実行する(サイクル(4))。CPU100は、まずPLD110に実行させるタスクの種類を判断し、変更部120に対してタスク用プログラムのロード要求及びロード対象となるタスク用プログラムを特定する情報を送信する。また、併せて処理対象となるタスクデータをPLD110へ送信する。
変更部120は、CPU100からロード要求を受信すると、指定されたタスク(ここでは、タスクA)のプログラムをメモリ130から読み出し、PLD110へ転送して書き込む(サイクル(5)、(6)、(7))。PLD110は、タスクAのプログラムのロード処理が完了すると、処理対象のタスクデータに対して指定されたタスクAの処理を実行する(サイクル(8))。このとき、CPU100は、PLD110に対してタスク用プログラムのロード要求時に更新されたデータを、ストア命令を用いてメモリ130へ保存する(サイクル(5))。更新データとしては、例えばPLD110へ新たに書き込むタスク用プログラムの種類を示す情報等がある。
次に、CPU100は、PLD110から割り込み信号が発行される直前まで実行していたタスク0の中間データを、ロード命令を用いてメモリ130から内部レジスタへ読み込み(サイクル(6))、タスク0の処理を再開する(サイクル(7)、(8))。
図9に示したように、PLD110に対するタスク用プログラムのロード要求をCPU100で制御する場合、CPU100ではロード処理が必要となる毎にタスクスイッチが発生し、内部レジスタで保持している中間データのメモリ130への保存やタスク用プログラムのロードに必要な初期データをメモリ130から内部レジスタへ読み込む処理等が必要となる。その結果、CPU100によるデータの保存と読み込みのためにメモリアクセスが頻繁に発生する。したがって、CPU100のメモリアクセスによるレイテンシが増大し、情報処理装置としてのスループットが低下してしまう。
特開平11−184718号公報 特開2004−220070号公報
上述したように、図8に示した従来の情報処理装置では、PLDに、そのメモリ容量以上の複数のプログラムを実行させる場合、PLDはそれらの回路を一度に実現できないため、プログラムを入れ替えながら実行する必要がある。そのような場合、CPUによるプログラムをロードするための処理(ロード要求)が多発するため、CPUの処理負荷が増大して情報処理装置としての処理能力を十分に向上させることができない問題がある。
さらに、PLDへのプログラムのロード要求をCPUが制御することで、CPUではロード処理毎にタスクスイッチが発生し、内部レジスタに格納された中間データの退避やプログラムのロードに必要な初期データを外部のメモリから内部レジスタに書き込む処理等が必要になる。そのため、CPUによるメモリアクセスが頻繁に発生し、メモリアクセスによるレイテンシが増大して情報処理装置としてのスループットが低下してしまう問題がある。
ところで、上記PLDに代わるものとして、本出願人は演算処理を実行するデータパスの構成をプログラムにより変更可能なアレイ型プロセッサを既に提案している(例えば、特開2001−312481号公報、特開2003−196246号公報、Hideharu Amano, Akiya Jouraku, Kenichiro Anjo, "A dynamically adaptive switch fabric on a multicontext reconfigurable device", Proceeding of International Field programmable Logic and Application Conference, September 2003, p161-170.等を参照)。
上記特開2003−196246号公報では、CPUと、アレイ型プロセッサ及び該アレイ型プロセッサに対するデータの入出力を制御する入出力制御回路を備えたストリームプロセッサと、ストリームプロセッサに対して入出力されるデータを一時的に保持するメモリとを有する情報処理装置を開示している。ストリームプロセッサは、複数のアレイ型プロセッサを備えることで複数の処理を並列に実行することも可能である。
上記特開2003−196246号公報に記載のアレイ型プロセッサは、内部にタスク用プログラムを格納するための命令メモリとタスクで使用するデータ(中間データ)を格納するための内部レジスタとを備えている。このアレイ型プロセッサは、上記PLDと同様にアレイ型プロセッサ自身で外部のメモリに格納されたタスク用プログラムを命令メモリへロードすることはできない。このアレイ型プロセッサの命令メモリや内部レジスタは、CPUが管理可能なメモリ空間にマッピングされている。したがって、CPUは、ロード命令やストア命令を用いることで、アレイ型プロセッサの命令メモリや内部レジスタの任意の領域に対してタスク用プログラムや中間データの書き込みや読み出しが可能である。
このようなストリームプロセッサに、メモリ容量以上の複数のタスク用プログラムを実行させる場合、上記PLDを備える情報処理装置と同様に、ストリームプロセッサに対するタスク用プログラムの入れ替えをホストプロセッサであるCPUで制御していたのでは、CPUの処理負荷の増大による処理能力の低下やスループットの低下を招いてしまう。
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、ホストプロセッサの処理負荷の増大による処理能力の低下やスループットの低下を抑制できるストリームプロセッサを提供することを目的とする。
上記目的を達成するため本発明のストリームプロセッサは、タスクに対応付けられたタスクコマンドと前記タスクに対応付けられたタスクデータとを外部のメモリからロードする入力DMA回路と、
前記タスクデータを前記タスクコマンドで指定されるプログラムにしたがって処理することで前記タスクを実行するアレイ型プロセッサと、
前記プログラムが前記アレイ型プロセッサにロードされていない場合に、前記アレイ型プロセッサからの転送要求によって前記プログラムを前記外部メモリから前記アレイ型プロセッサにロードする構成情報DMAコントローラと、
を備え、
前記アレイ型プロセッサは、前記プログラムのロードが完了してから前記タスクデータの処理を開始する構成である。
上記のように構成されたストリームプロセッサでは、タスクコマンドで指定されたプログラムがアレイ型プロセッサにロードされていない場合に、構成情報DMAコントローラによって該プログラムを外部のメモリからアレイ型プロセッサへロードし、アレイ型プロセッサはプログラムのロードが完了してからタスクの実行を開始する。したがって、ストリームプロセッサは、ホストプロセッサの制御を必要とせずにタスク用プログラムをロードして、タスクの処理を実行できる。
本発明によれば、ホストプロセッサが、一旦、ストリームプロセッサに設定を行った後は、ホストプロセッサの制御を必要とせずに、ストリームプロセッサが必要に応じてタスク用プログラムをメモリからロードして、タスクの処理を実行できる。
したがって、本発明のストリームプロセッサを備えた情報処理装置は、ホストプロセッサの処理負荷が軽減されるために処理能力の低下が抑制される。また、ストリームプロセッサに対するタスク用プログラムのロード処理毎に、ホストプロセッサでタスクスイッチが発生することがない。よって、ホストプロセッサでメモリアクセスが頻繁に発生することによるレイテンシの増大が抑制されるため、処理のスループットの低下が抑制される。
次に本発明について図面を参照して説明する。
図1は本発明のストリームプロセッサを有する情報処理装置の一構成例を示すブロック図である。
図1に示すように、情報処理装置は、ホストプロセッサであるCPU1と、タスク用プログラムにしたがって処理を実行するアレイ型プロセッサを備えたストリームプロセッサ2と、メモリ3と、不図時の入力装置及び出力装置とのインタフェースである入出力回路4とを有し、CPU1、ストリームプロセッサ2、メモリ3及び入出力回路4がバス5を介して相互に接続された構成である。メモリ3には、CPU1で実行するプログラム、ストリームプロセッサ2で実行するタスク用プログラム、ストリームプロセッサ2で処理するタスクデータ、該タスクデータの処理で用いる各種情報から成るディスクリプタ、アレイ型プロセッサで処理されたデータである出力データ、アレイ型プロセッサで使用される中間データが格納される。本発明における中間データは、必要に応じてアレイ型プロセッサから退避される、アレイ型プロセッサの内部レジスタに格納されたデータである。なお、ホストプロセッサは、CPUである必要はなく、情報処理装置全体の処理や制御が可能であればDSPやその他の処理装置であってもよい。
ストリームプロセッサ2は、ディスクリプタ及びタスクデータをメモリ3から読み出す入力DMA回路21と、ディスクリプタを管理するためのディスクリプタ管理テーブル22と、タスク用プログラムにしたがって処理を実行するアレイ型プロセッサ23と、アレイ型プロセッサ23へ供給するタスクデータを一時的に保持する入力FIFO24と、アレイ型プロセッサ23で処理された出力データを一時的に保持する出力FIFO25と、出力データをメモリ3へ書き戻すためのメモリアクセス制御回路26と、アレイ型プロセッサ23で実行するタスク用プログラムのロード、及びアレイ型プロセッサ23の内部レジスタに対する中間データの読み出し/書き込みを可能にするための構成情報DMAコントローラ27とを有する構成である。入力DMA回路21、ディスクリプタ管理テーブル22、メモリアクセス制御回路26及び構成情報DMAコントローラ27は、例えば論理回路やメモリ等を用いてそれぞれ構成してもよく、CPU(またはDSP)と内部メモリとを備え、該内部メモリに格納されたプログラムにしたがってCPU(またはDSP)により以下に記載する処理を実現する構成であってもよい。なお、ストリームプロセッサ2は、複数のアレイ型プロセッサ23を備え、これら複数のアレイ型プロセッサ23により処理を実行するためのチャネル(処理経路)が複数形成されていてもよい。その場合、入力FIFO24及び出力FIFO25は、各チャネルに対応してそれぞれ設ければよい。
図2(a)は図1に示した入力DMA回路21がメモリ3から読み出すディスクリプタのフォーマットを示す模式図であり、図2(b)は図1に示した入力FIFO24及びアレイ型プロセッサ23へ供給するディスクリプタの構成を示す模式図である。図2(a)ではディスクリプタを128ビットで構成し、図2(b)では入力FIFO24及びアレイ型プロセッサ23に64ビットのディスクリプタを供給する例を示しているが、ディスクリプタのビット幅は、CPU1やアレイ型プロセッサ23の処理ビット幅、あるいはメモリ空間の大きさ等に応じて適宜設定すればよい。なお、図2(b)中のRESERVEDは予備として用いる空き領域である。
図2(a)に示すように、本実施形態の情報処理装置で用いるディスクリプタは、割り込みフラグ(INT)、トランザクション識別子(TID)、タスクコマンド(TASKCMD)、入力データサイズ(ISIZE)、出力データアドレス(RADR)及び入力データアドレス(IADR)の各フィールドを備えている。
割り込みフラグ(INT)は、ストリームプロセッサ2による処理の終了をCPU1等へ通知するための割り込み信号の発生に用いるビットである。
トランザクション識別子(TID)は、アレイ型プロセッサ23で処理するタスクデータを識別するための識別子が格納されるフィールドである。トランザクション識別子は、タスクデータと共にアレイ型プロセッサ23へ供給され、出力データ共にアレイ型プロセッサ23から出力される。
タスクコマンド(TASKCMD)は、ストリームプロセッサ2に実行させるタスクを指定するための指示子が格納されるフィールドである。
入力データアドレス(IADR)はアレイ型プロセッサ23で処理するタスクデータの格納元のアドレスを示すデータバッファポインタが設定されるフィールドであり、出力データアドレス(RADR)はアレイ型プロセッサ23で処理された出力データの格納先のアドレスを示すデータバッファポインタが設定されるフィールドである。
入力データサイズ(ISIZE)はタスクデータの大きさを示す情報が設定されるフィールドである。
ディスクリプタは、例えばCPU1によりメモリ3に格納されたプログラムにしたがって作成され、メモリ3に予め格納される。ストリームプロセッサ2でタスクを実行する場合、ストリームプロセッサ2は入力DMA回路21によりメモリ3からディスクリプタを読み出し、読み出したディスクリプタの各フィールドの値にしたがってタスク用プログラムをメモリ3からロードし、さらにメモリ3からタスクデータを読み出してアレイ型プロセッサ23にてタスクの処理を実行する。アレイ型プロセッサ23で処理した出力データはメモリアクセス制御回路26によってメモリ3へ書き戻される。
入力DMA回路21には、各ディスクリプタが格納されたメモリ3上の先頭アドレスを示すディスクリプタポインタを備えている。このディスクリプタポインタの値は、例えばCPU1によりメモリ3に格納されたプログラムにしたがって予め設定される。CPU1は、ストリームプロセッサ2に処理を実行させる場合、処理対象となるディスクリプタの先頭アドレスを入力DMA回路21のディスクリプタポインタにセットする。
入力DMA回路21は、CPU1によって設定されたディスクリプタポインタの値にしたがってメモリ3から対応するディスクリプタを読み出し、該ディスクリプタのIADRフィールドで指定されたアドレスからISIZEフィールドで指定された大きさのタスクデータを読み出し、該タスクデータを入力FIFO24へ供給する。また、読み出したディスクリプタからTIDフィールド、TASKCMDフィールド及びISIZEフィールドの値をそれぞれ抽出し、入力FIFO24を介してアレイ型プロセッサ23へ供給する(図2(b)参照)。図2(b)に示すように、本実施形態では128ビットのディスクリプタから抽出した64ビットの情報をアレイ型プロセッサ23へ供給している。このように入力DMA回路21で読み出したディスクリプタから必要な情報のみを取り出してアレイ型プロセッサ23へ供給することで、アレイ型プロセッサ23に対するデータ転送量が削減できるため、データ転送のスループットが向上する。
さらに、入力DMA回路21は、読み出したディスクリプタからTIDフィールド及びRADRフィールドの値をそれぞれ抽出し、出力データアドレス(RADR)の値をトランザクション識別子(TID)に関連付けてディスクリプタ管理テーブル22へ格納する。
入力FIFO24は、入力DMA回路21から受信したタスクコマンド及びトランザクション識別子及びそれに対応付けられたタスクデータを一時的に保持し、アレイ型プロセッサ23によるタスク用プログラムのロード処理または先のタスクの処理が終了した時点で、保持している次に処理すべきタスクコマンド、トランザクション識別子及びタスクデータをアレイ型プロセッサ23へ供給する。このような入力FIFO24を備えることで、アレイ型プロセッサ23に複数のタスクを実行させる場合に、アレイ型プロセッサ23の動作を停止させることなく、タスクデータをアレイ型プロセッサ23へ効率よく連続して供給することが可能になる。また、アレイ型プロセッサ23がタスク用プログラムや中間データのロード処理あるいはタスク用プログラムを実行しているためにタスクデータを受信できない場合でも、入力DMA回路21は動作を停止することなく入力FIFO24へタスクデータを供給できる。したがって、ストリームプロセッサ2の処理効率が向上する。
アレイ型プロセッサ23は、入力FIFO24から受け取ったタスクコマンドに基づき、構成情報DMAコントローラ27を用いて少なくとも一つのタスク用プログラムをメモリ3からロードし、ロード完了後、タスクデータに対してタスク用プログラムの処理を実行する。アレイ型プロセッサ23による処理後の出力データは出力FIFO25を介してメモリアクセス制御回路26へ供給される。このとき、アレイ型プロセッサ23は、出力データの先頭データと共に受信したトランザクション識別子を出力FIFO25へ供給する。
出力FIFO25は、アレイ型プロセッサ23の出力データを一時的に保持し、バス5に対するアクセスの競合等によりメモリアクセス制御回路26からメモリ3へ先の出力データが転送できない場合に、そのデータ転送ができない状態が解消された時点で保持している出力データをメモリアクセス制御回路26へ供給する。また、アレイ型プロセッサ23から受信したトランザクション識別子を出力データの先頭データと共にメモリアクセス制御回路26へ供給する。このような出力FIFO25を有することで、アレイ型プロセッサ23の動作を停止させることなく、アレイ型プロセッサ23の出力データをメモリ3へ効率よく転送できるため、ストリームプロセッサ2のスループットの低下が抑制される。
メモリアクセス制御回路26は、出力FIFO25からトランザクション識別子及び出力データを受け取ると、該トランザクション識別子をディスクリプタ管理テーブル22へ転送する。ディスクリプタ管理テーブル22は、出力FIFO25から受信したトランザクション識別子に関連付けて保存された出力データアドレス(RADR)を取り出し、メモリアクセス制御回路26へ出力する。メモリアクセス制御回路26は、ディスクリプタ管理テーブル22から受信した出力データアドレスを開始アドレスとするメモリ3の領域へ、出力FIFO25から供給された出力データを格納する。
図3は図1に示した構成情報DMAコントローラ27の一構成例を示すブロック図であり、図4は図3に示したDMAコマンドテーブル74のフォーマットを示す模式図である。
図3に示すように、構成情報DMAコントローラ27は、第1のインデックスレジスタ71、第2のインデックスレジスタ72、調停回路73、DMAコマンドテーブル74、DMA制御部75、データ送信部76、データ受信部77及びバスインタフェース部78を備えた構成である。
本実施形態の構成情報DMAコントローラ27は、アレイ型プロセッサ23及びCPU1からそれぞれインデックス(INDEX)を受信できるように2つのインデックスレジスタを備えている。第1のインデックスレジスタ71はアレイ型プロセッサ23から送信されるインデックス(INDEX)を保持するためのレジスタである。第1のインデックスレジスタ71に入力されるインデックスは、入力FIFO24から受信したタスクコマンドに基づきアレイ型プロセッサ23によって算出される。インデックスの算出処理は、アレイ型プロセッサ23がタスク用プログラムをロードするための処理(ロードタスク)に含まれ、タスクコマンド(TASKCMD)とインデックス(INDEX)とは1対1に対応した値となる。タスクコマンドの値とインデックスの値とは同一であってもよい。
第2のインデックスレジスタ72はCPU1等からバス5を介して送信されるインデックスを保持するためのレジスタある。この第2のインデックスレジスタ72は、例えばアレイ型プロセッサ23にロードタスクのプログラム(ロードタスク用プログラム)を書き込むために用いられる。
なお、本実施形態で言う「ロードタスク」とは、アレイ型プロセッサ23に、入力FIFO24から供給されたディスクリプタからタスクコマンドを抽出させる処理、該タスクコマンドを用いてアレイ型プロセッサ23に新たなタスク用プログラムのロード処理の要否を判定させる処理、該タスクコマンドからインデックスを算出させる処理、算出したインデックスを構成情報DMAコントローラ27に送信させる処理、ロード完了通知を受信する処理を含んでいる。
調停回路73は、第1のインデックスレジスタ71及び第2のインデックスレジスタ72にインデックスが格納されると、いずれか一方のインデックスを選択する。インデックスの選択方法としては、先に格納されたインデックスを選択する方法、あるいは一方のインデックスレジスタの優先度を高く設定し、優先度の高いインデックスレジスタ内のインデックスから先に選択する方法等がある。
DMA制御部75は、DMAコマンドテーブル74に格納された情報にしたがって、メモリ3からアレイ型プロセッサ23へのタスク用プログラムや中間データのロード処理、あるいはアレイ型プロセッサ23からメモリ3への中間データのセーブ処理を制御する。
データ送信部76はバスインタフェース部78によってメモリ3から読み出されたタスク用プログラムや中間データをアレイ型プロセッサ23へ送信する。また、データ受信部77は、アレイ型プロセッサ23の内部レジスタから読み出された中間データを受信し、バスインタフェース部78へ転送する。
バスインタフェース部78は、DMA制御部75からの指示にしたがってバス5を介してメモリ3へアクセスし、メモリ3から読み出したタスク用プログラムや中間データをデータ送信部76へ送信する。また、データ受信部77から転送された中間データをメモリ3へ書き込む。CPU1からDMAコマンドテーブル74に各種情報(後述するDMAコマンド)を書き込む場合、バスインタフェース部78はバス5を介してCPU1から受信した情報をDMA制御部75によって指定されたDMAコマンドテーブル74のアドレスへ書き込む。
DMAコマンドテーブル74は、図4に示すように、例えばインデックス(INDEX)の値をアドレスとする、アレイ型プロセッサ23へタスク用プログラムや中間データを書き込むための情報またはアレイ型プロセッサ23から中間データを読み出すための情報がそれぞれ格納される複数のコマンドフィールドを備えた構成である。本明細書では、一つのコマンドフィールドに格納される情報を総称してDMAコマンドと呼ぶ。
図4に示すように、DMAコマンドは、エンドフラグ(END)、リードイネーブル(RE)、割り込みフラグ(DINT)、転送データ長(LENGTH)、転送元アドレス(RDADR)及び転送先アドレス(WRADR)の各フィールドをそれぞれ備えている。DMAコマンドの各フィールドの値は、メモリ3に格納されたプログラムにしたがってCPU1により予め設定される。
エンドフラグ(END)は、インデックスで指定されるDMAコマンドが最終(タスクの切り替えを必要とする)の処理であるか否かを示すフラグである。例えば、END=0の場合、当該インデックスで指定されるDMAコマンドの処理が終了すると、そのインデックスの値をインクリメントした新たな値のインデックスで指定されるDMAコマンドが実行される。また、END=1の場合は、当該インデックスで指定されるDMAコマンドの処理が終了すると、以降、DMAコマンドによる処理を停止する。このとき、DMA制御部75は、当該インデックスで指定されるDMAコマンドの処理が終了すると、第1のインデックスレジスタ71を介してアレイ型プロセッサ23へロード完了通知を発行する。
転送元アドレス(RDADR)は、転送対象となる中間データまたはタスク用プログラムが格納されたメモリ領域の先頭アドレスを示すフィールドであり、転送先アドレス(WRADR)は転送対象となる中間データまたはタスク用プログラムを格納するメモリ領域の先頭アドレスを示すフィールドである。
転送データ長(LENGTH)は、アレイ型プロセッサ23へロードする中間データまたはタスク用プログラムのデータ長、あるいはアレイ型プロセッサ23から読み出す中間データのデータ長を示すフィールドである。
リードイネーブル(RE)は、インデックスで指定されるDMAコマンドがアレイ型プロセッサ23に対してタスク用プログラムや中間データをロードするためのものであるか、アレイ型プロセッサ23から中間データを読み出すためのものであるかを示すフラグである。例えばRE=0の場合はアレイ型プロセッサ23に対してタスク用プログラムや中間データのロード処理が実行され、RE=1の場合はアレイ型プロセッサ23からの中間データの読み出し処理が実行される。なお、RE=0の場合、転送元アドレス(RDADR)にはメモリ3に格納されたタスク用プログラムや中間データのアドレスが設定され、転送先アドレス(WRADR)にはアレイ型プロセッサ23の命令メモリや内部レジスタのアドレスが設定される。一方、RE=1の場合、転送元アドレス(RDADR)にはアレイ型プロセッサ23の内部レジスタに格納された中間データのアドレスが設定され、転送先アドレス(WRADR)にはメモリ3のアドレスが設定される。
割り込みフラグ(DINT)は、当該インデックスで指定されるDMAコマンドの処理が終了したとき、ホストプロセッサ等へ割り込み通知(割り込み信号の発行)が必要であるか否かを指定するフラグである。例えばDINT=0の場合は割り込み信号が発行されず、DINT=1の場合は割り込み信号が発行される。通常、割り込みフラグ(DINT)は、END=1に設定されたDMAコマンドで「1」に設定される。例えば、CPU1から構成情報DMAコントローラ27へインデックスを転送する場合、最終のインデックスで指定されるDMAコマンドの割り込みフラグを「1」に設定しておけば、アレイ型プロセッサ23に対するタスク用プログラムのロード終了後、CPU1は入力DMA回路21に対して直ちにディスクリプタやタスクテータの転送要求を発行できる。また、アレイ型プロセッサ23から構成情報DMAコントローラ27にインデックスを転送する場合、最終のインデックスで指定されるDMAコマンドの割り込みフラグを「1」に設定しておけば、ストリームプロセッサ2は、CPU1と協調動作する際にタスクが切り替わったことをCPU1へ通知できる。
構成情報DMAコントローラ27は、第1のインデックスレジスタ71または第2のインデックスレジスタ72にインデックス(INDEX)が格納されると、調停回路73の制御により該インデックスをDMAコマンドテーブル74へ供給する。
DMA制御部75は、DMAコマンドテーブル74にインデックスが供給されると、当該インデックスで指定されるDMAコマンドを読み出し、該DMAコマンドのリードイネーブル(RE)を確認する。そして、リードイネーブルがタスク用プログラムや中間データのロード処理を示している場合は、最初にアレイ型プロセッサ23に対してタスク用プログラムまたは中間データのロード要求を発行(アクセス要求)し、転送先アドレス(WRADR)を通知する。
次に、DMA制御部75は、バスインタフェース部78へ読み出しを要求するバスコマンドを発行し、併せて転送元アドレス(RDADR)及び転送データ長(LENGTH)をそれぞれ通知する。バスインタフェース部78はDMA制御部75からバスコマンド(読み出し要求)を受け取ると、メモリ3へアクセスして転送元アドレスで指定された領域から転送データ長で指定された大きさのタスク用プログラムまたは中間データを読み出し、データ送信部76へ転送する。
データ送信部76は、バスインタフェース部78から受信したタスク用プログラムまたは中間データをアレイ型プロセッサ23へ送信する。また、データ送信部76は、タスク用プログラムまたは中間データの送信が完了すると、DMA制御部75に送信完了通知を発行する。DMA制御部75は、データ送信部76から送信完了通知を受け取ると、対応するDMAコマンドのエンドフラグがEND=1の場合に、第1のインデックスレジスタ71に送信完了通知を発行する。第1のインデックスレジスタ71は送信完了通知を受信すると、アレイ型プロセッサ23へロード完了通知を発行する。
アレイ型プロセッサ23は、構成情報DMAコントローラ27から受信したタスク用プログラムまたは中間データを、転送先アドレスを開始位置とするアドレス領域へ格納する。このとき、アレイ型プロセッサ23は、第1のインデックスレジスタ71からロード完了通知を受け取った時点でタスク用プログラムや中間データの受信を終了している。したがって、アレイ型プロセッサ23はロード完了通知を受け取ると、直ちにタスク用プログラムの実行を開始する。
一方、DMAコマンドテーブル74から読み出したDMAコマンドのリードイネーブルが中間データの読み出しを示している場合、DMA制御部75は、アレイ型プロセッサ23に中間データの読み出し要求を発行し(アクセス要求)、併せて転送元アドレス及び転送データ長をそれぞれ通知する。アレイ型プロセッサ23は、DMA制御部75からアクセス要求(読み出し要求)を受信すると、転送元アドレスで指定された領域から転送データ長で指定されたサイズの中間データを読み出し、データ受信部77へ送信する。データ受信部77は、アレイ型プロセッサ23から中間データを受信すると、転送準備が完了したことをDMA制御部75へ通知する。
DMA制御部75は、データ受信部77から転送準備完了通知を受け取ると、バスインタフェース部78へ書き込みを要求するバスコマンドを発行し、併せて転送先アドレスを通知する。バスインタフェース部78はデータ受信部77から受信した中間データをメモリ3へ送信し、DMA制御部75から通知された転送先アドレスを開始位置とするアドレス領域へ格納する。データ受信部77は、中間データを全て転送し終わると、DMA制御部75へ転送完了通知を発行する。DMA制御部75は、データ受信部77から転送完了通知を受け取ると、当該DMAコマンドのエンドフラグがEND=1の場合に、第1のインデックスレジスタ71に送信完了通知を発行する。第1のインデックスレジスタ71は送信完了通知を受信すると、アレイ型プロセッサ23へロード完了通知を発行する。
DMA制御部75は、DMAコマンドにしたがってタスク用プログラムまたは中間データの転送処理が完了すると、当該DMAコマンドのエンドフラグ(END)を確認し、END=0の場合はインデックスの値をインクリメントした新たな値のインデックスで指定されるDMAコマンドを読み出し、上記と同様に新たな値のインデックスで指定されるDMAコマンドにしたがってアレイ型プロセッサ23に対するタスク用プログラムや中間データのロード処理、またはアレイ型プロセッサ23からの中間データの読み出し処理を実行する。END=1の場合は、DMAコマンドによる処理を終了する。
本実施形態では、このエンドフラグを用いることで構成情報DMAコントローラ27に対する一度のロード要求で複数のタスク用プログラムのロード処理を実行できるため、アレイ型プロセッサ23と構成情報DMAコントローラ27との間で発生するロード処理のための制御が簡易になる。また、アレイ型プロセッサ23で複数のタスク用プログラムのロード処理や中間データの退避及びメモリ3からの読み出し処理を必要とする場合でも、これらの処理を一度のロード要求で連続して実行できるようになる。
次に、本発明のストリームプロセッサ2が有するアレイ型プロセッサ23の動作について図面を用いて説明する。
図5は図1に示したアレイ型プロセッサ23のロードタスク用プログラムによる処理手順を示すフローチャートである。
なお、ロードタスク用プログラムは、CPU1から構成情報DMAコントローラ27の第2のインデックスレジスタ72に所定のインデックスを設定することで、予めアレイ型プロセッサ23に読み込まれているものとする。また、図5は、後述する図6に示すタイミングチャートのサイクル(5)以降のアレイ型プロセッサ23の処理を示している。
図5に示すように、アレイ型プロセッサ23は、現在保持しているタスク用プログラムに対応するタスクコマンドであるカレントタスクコマンド(CurTaskcmd)の値を設定する。初期状態では、タスク用プログラムを何も備えていないため、カレントタスクコマンドにタスク用プログラムが無いことを示す、例えば「−1」を設定する(ステップS1)。
次に、アレイ型プロセッサ23は、入力FIFO24内にディスクリプタが在るか否かを判定し(ステップS2)、ディスクリプタが在る場合はそれを受信する。但し、アレイ型プロセッサ23が受信するディスクリプタは、図2(b)に示したように、RESERVED、ISIZE、TID及びTASKCMDの各フィールドを備えた構成である。
続いて、アレイ型プロセッサ23は、受信したディスクリプタからタスクコマンド(TASKCMD)の値を抽出する(ステップS3)。そして、抽出したタスクコマンドの値とカレントタスクコマンドの値とを比較することで、必要なタスク用プログラムが既にロードされているか否かを判定する(ステップS4)。
タスクコマンドの値とカレントタスクコマンドの値とが一致しない場合、アレイ型プロセッサ23は、ロードタスク用プログラムにしたがって該タスクコマンドからインデックスを算出する。また、算出したインデックスを構成情報DMAコントローラ27の第1のインデックスレジスタ71に転送要求として送信する。さらに、カレントタスクコマンドの値をステップS3の処理で抽出したタスクコマンドの値に書き換える(ステップS5)。
このとき、構成情報DMAコントローラ27は、アレイ型プロセッサ23から送信されたインデックスで指定されるDMAコマンドにしたがってタスク用プログラムをメモリ3からロードし、タスク用プログラムのロード処理が完了すると、ロード完了通知を第1のインデックスレジスタ71を通してアレイ型プロセッサ23へ送信する。
アレイ型プロセッサ23は、構成情報DMAコントローラ27からのロード完了通知の有無を判定し(ステップS6)、ロード完了通知を受け取っていない場合は該通知を待ち受ける。
アレイ型プロセッサ23は、構成情報DMAコントローラ27からロード完了通知を受け取ると、入力FIFO24からタスクデータを受信し、ロードしたタスク用プログラムにしたがって処理を実行する(ステップS7)。アレイ型プロセッサ23がタスク用プログラムのロードを完了しタスクの処理を開始する時点で、入力FIFO24には全てのタスクデータが格納された状態にある。
ステップS4の処理の結果、タスクコマンドの値とカレントタスクコマンドの値とが一致する場合は、構成情報DMAコントローラ27によるタスク用プログラムのロード処理が不要であるため、アレイ型プロセッサ23は、ステップS7の処理に移行して入力FIFO24からタスクデータを受信し、該タスクデータに対してタスクの処理を実行する。
次に、アレイ型プロセッサ23は、入力FIFO24に処理対象のタスクデータが残っているか否かを確認し(ステップS8)、タスクデータが残っている場合はステップS7の処理に戻って該タスクデータに対するタスクの処理を引き続き実行する。
また、入力FIFO24に処理対象のタスクデータが残っていない場合は、処理を終了するか否かを判定し(ステップS9)、処理を終了しない場合はステップS2の処理に戻ってステップS2〜S9の処理を繰り返す。
なお、上述したロードタスクの処理は、必ずしもアレイ型プロセッサ23がロードタスク用プログラムにしたがって実行する必要はなく、例えば論理回路等によって構成された処理回路で実行してもよい。
次に、本実施形態のストリームプロセッサ2の動作について図6を用いて説明する。
図6は本発明のストリームプロセッサ2の動作の一例を示すタイミングチャートである。
図6は、ストリームプロセッサ2に5つのタスク(タスクA0、タスクA1、タスクB0、タスクA2、タスクB1)を順次実行させる場合のCPU1とストリームプロセッサ2の動作をそれぞれ示している。タスクA0はタスク用プログラムAによるタスクデータA0の処理であり、タスクA1、A2はタスクA0と同じタスク用プログラムAによるタスクデータA1、A2の処理である。また、タスクB0はタスク用プログラムBによるタスクデータB0の処理であり、タスクB1はタスクB0と同じタスク用プログラムBによるタスクデータB1の処理である。ディスクリプタA0は、タスク用プログラムAを指定するタスクコマンドと、タスク用プログラムAで処理するタスクデータA0の格納先である入力データアドレスとタスクデータA0の大きさを示す入力データサイズの情報とを備えている。ディスクリプタA1は、ディスクリプタA0と同じタスクコマンドと、タスクデータA1に対応した入力データアドレスと入力データサイズの情報とを備えている。ディスクリプタA2も同様である。また、ディスクリプタB0は、タスク用プログラムBを指定するタスクコマンドと、タスク用プログラムBで処理するタスクデータB0の情報とを備えている。ディスクリプタB1も同様である。
上述したように、入力FIFO24が入力DMA回路21から受信するディスクリプタは、入力DMA回路21によりメモリ3から読み出したディスクリプタから必要な情報(TID、TASKCMD及びISIZE)を抽出したものであり、入力FIFO24が受信するディスクリプタと、入力DMA回路21が読み出したディスクリプタとは異なっている。以下では、入力DMA回路21が読み出したディスクリプタを、ディスクリプタA0,A1,A2,B0,B1と表記する。また、ディスクリプタA0,A1,A2,B0,B1から必要な情報を抽出した、入力FIFO24が受信するディスクリプタを、それぞれディスクリプタA0’,A1’,A2’,B0’,B1’と表記する。
図6に示すように、CPU1は、まず構成情報DMAコントローラ27のDMAコマンドテーブル74にロードタスク、タスク用プログラムA及びタスク用プログラムBをロードするためのDMAコマンドをそれぞれ設定する(サイクル(1))。これは処理の最初に一度だけ実行すればよい。
次に、CPU1は、構成情報DMAコントローラ27の第2のインデックスレジスタ72にインデックスを送信して、アレイ型プロセッサ23に対するロードタスク用プログラムのロード処理を要求する(サイクル(2))。
構成情報DMAコントローラ27は、CPU1からインデックスを受け取ると、DMAコマンドテーブル74内の該インデックスで指定されたDMAコマンドにしたがってメモリ3に格納されたロードタスク用プログラムを読み出し、アレイ型プロセッサ23へ転送する。そして、アレイ型プロセッサ23に対するロードタスク用プログラムのロード処理が完了すると、CPU1へロード完了を通知するための割り込み信号を送信する(サイクル(3))。
CPU1は、構成情報DMAコントローラ27から割り込み信号によってロード完了通知を受け取ると、入力DMA回路21にディスクリプタポインタを設定し、ディスクリプタの読み出し処理(データDMA要求)を開始させる(サイクル(4))。
入力DMA回路21は、ディスクリプタポインタを基にメモリ3からディスクリプタを読み出し、該ディスクリプタからタスクコマンド(TASKCMD)、トランザクション識別子(TID)及び入力データサイズ(ISIZE)を抽出して入力FIFO24へ転送する。ここでは、入力DMA回路21によって最初にディスクリプタA0及びタスクデータA0が読み出され、入力FIFO24にディスクリプタA0’及びタスクデータA0が転送されるものとする。
アレイ型プロセッサ23は、入力FIFO24からディスクリプタA0'を受信し、このディスクリプタA0'のタスクコマンドと上記カレントタスクコマンドとを比較してタスクコマンドが指定するタスク用プログラムがロードされていないことを確認する。アレイ型プロセッサ23は受信したタスクコマンドからインデックスを算出し、構成情報DMAコントローラ27にそのインデックスを送信する(サイクル(5))。
構成情報DMAコントローラ27は、アレイ型プロセッサ23からインデックスを受け取ると、DMAコマンドテーブル74内の該インデックスで指定されるDMAコマンドにしたがってメモリ3からタスク用プログラムAを読み出し、アレイ型プロセッサ23へ転送する。構成情報DMAコントローラ27は、タスク用プログラムAの転送処理が完了すると、アレイ型プロセッサ23へロード完了通知を送信する。入力DMA回路21は、ディスクリプタA0及びタスクデータA0に続いてディスクリプタA1及びタスクデータA1をメモリ3から読み出し、必要な情報を抽出してディスクリプタA1’を入力FIFO24へ転送する(サイクル(6))。
アレイ型プロセッサ23は、構成情報DMAコントローラ27からロード完了通知を受信すると、入力FIFO24からタスクデータA0を受け取り、タスク用プログラムAを実行してタスクA0の処理を実行する。入力DMA回路21は、ディスクリプタA1及びタスクデータA1に続いてディスクリプタB0及びタスクデータB0をメモリ3から読み出し、必要な情報を抽出してディスクリプタB0’を後述するサイクル(8)で入力FIFO24へ転送する(サイクル(7))。
アレイ型プロセッサ23は、タスクデータA0に対するタスクA0の処理を終了すると、次のディスクリプタA1'を入力FIFO24から受信する。アレイ型プロセッサ23は、このディスクリプタA1'のタスクコマンドとカレントタスクコマンドとを比較してタスクコマンドが指定するタスク用プログラムがロードされていることを確認する(サイクル(8))。この場合、アレイ型プロセッサ23は、構成情報DMAコントローラ27へ転送要求を発行することなく、入力FIFO24からタスクデータA1を受け取り、タスク用プログラムAを実行してタスクA1の処理を実行する。入力DMA21は、ディスクリプタB0及びタスクデータB0に続いてディスクリプタA2をメモリ3から読み出し、必要な情報を抽出してディスクリプタA2'を後述するサイクル(10)で入力FIFO24へ転送する(サイクル(9))。
アレイ型プロセッサ23は、タスクデータA1に対するタスクA1の処理が終了すると、次のディスクリプタB0'を入力FIFO24から受信する。アレイ型プロセッサ23は、このディスクリプタB0'のタスクコマンドとカレントタスクコマンドとを比較してタスクコマンドが指定するタスク用プログラムがロードされていないことを確認する。アレイ型プロセッサ23は受信したタスクコマンドからインデックスを算出し、構成情報DMAコントローラ27にそのインデックスを送信する。入力DMA回路21は、ディスクリプタA2に続いてタスクデータA2をメモリ3から読み出し、入力FIFO24へ転送する(サイクル(10))。
構成情報DMAコントローラ27は、アレイ型プロセッサ23からインデックスを受け取ると、DMAコマンドテーブル74内の該インデックスで指定されるDMAコマンドにしたがってメモリ3からタスク用プログラムBを読み出し、アレイ型プロセッサ23へ転送する。構成情報DMAコントローラ27は、タスク用プログラムBの転送処理が完了すると、アレイ型プロセッサ23へロード完了通知を送信する。入力DMA回路21は、ディスクリプタA2及びタスクデータA2に続いてディスクリプタB1及びタスクデータB1をメモリ3から読み出し、必要な情報を抽出してディスクリプタB1'を入力FIFO24へ転送する(サイクル(11))。
アレイ型プロセッサ23は、構成情報DMAコントローラ27からロード完了通知を受信すると、入力FIFO24からタスクデータB0を受け取り、タスク用プログラムBを実行してタスクB0の処理を実行する(サイクル(12))。
アレイ型プロセッサ23は、タスクデータB0に対するタスクB0の処理を終了すると、次のディスクリプタA2'を入力FIFO24から受信する。アレイ型プロセッサ23は、このディスクリプタA2'のタスクコマンドとカレントタスクコマンドとを比較してタスクコマンドが指定するタスク用プログラムがロードされていないことを確認する(サイクル(13))。
ここではアレイ型プロセッサ23にタスク用プログラムAがロードされていないため、上記サイクル(10)の処理と同様に、アレイ型プロセッサ23は、受信したタスクコマンドからインデックスを算出し、構成情報DMAコントローラ27にそのインデックスを送信する。アレイ型プロセッサ23は、タスク用プログラムAのロード完了信号を待ってタスクデータA2にタスクA2の処理を実行する。以下、同様にしてタスクコマンドとタスクコマンドの比較、タスク用プログラムのロード要求の要否判定及びタスクデータに対する指定されたタスクの処理を繰り返す。
次に、図7を用いてタスク用プログラムのロード処理、中間データの退避及び中間データのロード処理について説明する。ここでは、上記と同様にタスクコマンドが指定するタスク用プログラムは1つであるものとする。タスク用プログラムのロード処理が発生した場合、アレイ型プロセッサ23では、内部レジスタに格納された中間データのメモリ3への退避、及びメモリ3から内部レジスタへの中間データの読み出し処理が必要になる場合がある。これらの処理の要否はタスクの種類に依存する。
以下では、タスクAとタスクBの処理を連続して実行し、かつタスクAに対応付けられたタスクコマンドAとタスクBに対応付けられたタスクコマンドBが異なる場合に、タスク用プログラムBをロードする前にタスクAが完了した時点での中間データ(以下中間データAと称す。)をアレイ型プロセッサ23からメモリ3へ退避させ、タスク用プログラムBをロードした後にタスクBの実行に必要な中間データ(以下中間データBと称す。)をメモリ3からアレイ型プロセッサ23へ書き込む場合を例にして説明する。図7は、このような処理を構成情報DMAコントローラ27に実行させる場合のDMAコマンドテーブル74の一例を示している。
アレイ型プロセッサ23は、タスクAの処理が完了すると、タスクコマンドBを含むディスクリプタを入力FIFO24から受信する。アレイ型プロセッサ23は、受信したディスクリプタからタスクコマンドBを抽出すると、このタスクコマンドBとカレントタスクコマンドを比較し、これらが一致しないことを確認する。その場合、アレイ型プロセッサ23は、受信したタスクコマンドからインデックスを算出し、構成情報DMAコントローラ27に算出したインデックスを送信する。ここでは、算出したインデックスの値が3とする。
構成情報DMAコントローラ27は、図7に示すDMAコマンドテーブル74にしたがって、DMA制御部75によりDMAコマンドテーブル74のインデックス=3で指定されるDMAコマンドを読み出し、該DMAコマンドにしたがってアレイ型プロセッサ23からの中間データAの読み出し処理及び該中間データAのメモリ3への書き込み処理を実行する。
DMA制御部75は、インデックス=3で指定されるDMAコマンドの処理が終了すると、当該DMAコマンドのエンドフラグ(END)を確認する。ここでは、END=0であるため、インデックスの値をインクリメントしてインデックス=4で指定されるDMAコマンドを読み出し、該DMAコマンドにしたがってタスク用プログラムBのロード処理を実行する。
DMA制御部75は、インデックス=4で指定されるDMAコマンドの処理が終了すると、当該DMAコマンドのエンドフラグ(END)を確認する。ここでは、END=0であるため、インデックスの値をインクリメントしてインデックス=5で指定されるDMAコマンドを読み出し、該DMAコマンドにしたがってメモリ3からアレイ型プロセッサ23に中間データBの書き込みを実行する。
DMA制御部75は、インデックス=5で指定されるDMAコマンドの処理が終了すると、当該DMAコマンドのエンドフラグ(END)を確認する。ここでは、END=1であるため、以降の処理を停止する。
なお、図7では、タスクコマンドが指定するタスク用プログラムが1つであるものを例に示したが、タスクコマンドが指定するタスク用プログラムは複数であってもよい。タスクが複数のタスク用プログラムによってタスクデータを処理する場合、上記DMAコマンドのエンドフラグを適切に設定することで、アレイ型プロセッサ23からの一度の転送要求により複数のタスク用プログラムを連続してロードすることが可能になる。
例えば、図7に示したDMAコマンドテーブル74のインデックス=4とインデックス=5の間にタスク用プログラムCをロードするためのDMAコマンドを追加すれば、インデックス=3で指定されるDMAコマンドの処理が終了した後に、タスク用プログラムBのロード処理及びタスク用プログラムCのロード処理を連続して実行することができる。
なお、複数のタスク用プログラムを新たに1つのタスク用プログラムとして定義し、1つのDMAコマンドを用いてロードすることも可能であるが、この場合は、新たに作成したタスク用プログラムをメモリ3に格納する必要があるためにメモリ3の使用量が増加してしまう。したがって、複数のタスク用プログラムを1つのプログラムにまとめるよりも、複数のタスク用プログラムを順番にロードする方がメモリ3の使用量を削減できる。
以上説明したように本発明のストリームプロセッサによれば、構成情報DMAコントローラ27を備えることで、ホストプロセッサであるCPU1がストリームプロセッサ2にDMAコマンドを設定すれば、以降、ストリームプロセッサ2はCPU1の制御を必要とせずに必要に応じてタスク用プログラムをメモリからロードして、タスクの処理を実行できる。
したがって、本発明のストリームプロセッサ2を備えた情報処理装置は、CPU1の処理負荷が軽減されるために処理能力の低下が抑制される。また、ストリームプロセッサ2に対するタスク用プログラムのロード処理毎に、CPU1でタスクスイッチが発生することがない。よって、CPU1でメモリアクセスが頻繁に発生することによるレイテンシの増大が抑制されるため、処理のスループットの低下が抑制される。
なお、本実施形態のストリームプロセッサ2を有する情報処理装置は、CPU1、ストリームプロセッサ2、メモリ3、入出力回路4及びバス5を1つの半導体集積回路装置に備えた構成であってもよく、これらの構成要素が持つ機能を複数の半導体集積回路装置で実現する構成であってもよい。また、入出力回路4を複数備えた構成であってもよく、バス5の代わりにクロスバススイッチ等の接続網を用いた構成であってもよい。さらに、ストリームプロセッサ2とCPU1間で割り込み信号を直接やり取りする構成であってもよく、ストリームプロセッサ2とCPU1の間に割り込みコントローラを挿入し、該割り込みコントローラを介してストリームプロセッサ2とCPU1間で割り込み信号を直接やり取りする構成であってもよい。
本発明のストリームプロセッサを有する情報処理装置の一構成例を示すブロック図である。 図1に示した入力DMA回路がメモリから読み出すディスクリプタのフォーマットを示す模式図である。 図1に示した入力FIFO及びアレイ型プロセッサへ供給するディスクリプタの構成を示す模式図である。 図1に示した構成情報DMAコントローラの一構成例を示すブロック図である。 図3に示したDMAコマンドテーブルのフォーマットを示す模式図である。 図1に示したアレイ型プロセッサのロードタスク用プログラムによる処理手順を示すフローチャートである。 本発明のストリームプロセッサの動作の一例を示すタイミングチャートである。 図3に示したDMAコマンドテーブルの一構成例を示す模式図である。 従来の情報処理装置の構成を示すブロック図である。 タスクスイッチ発生時のCPUの処理手順を示すタイミングチャートである。
符号の説明
1 CPU
2 ストリームプロセッサ
3 メモリ
4 入出力回路
5 バス
21 入力DMA回路
22 ディスクリプタ管理テーブル
23 アレイ型プロセッサ
24 入力FIFO
25 出力FIFO
26 メモリアクセス制御回路
27 構成情報DMAコントローラ
71 第1のインデックスレジスタ
72 第2のインデックスレジスタ
73 調停回路
74 DMAコマンドテーブル
75 DMA制御部
76 データ送信部
77 データ受信部
78 バスインタフェース部

Claims (14)

  1. タスクに対応付けられたタスクコマンドと前記タスクに対応付けられたタスクデータとを外部のメモリからロードする入力DMA回路と、
    前記タスクデータを前記タスクコマンドで指定されるプログラムにしたがって処理することで前記タスクを実行するアレイ型プロセッサと、
    前記プログラムが前記アレイ型プロセッサにロードされていない場合に、前記アレイ型プロセッサからの転送要求によって前記プログラムを前記外部メモリから前記アレイ型プロセッサにロードする構成情報DMAコントローラと、
    を備え、
    前記アレイ型プロセッサは、前記プログラムのロードが完了してから前記タスクデータの処理を開始するストリームプロセッサ。
  2. 第1のタスクと第2のタスクとが連続して実行され、かつ前記第1のタスクに対応付けられた第1のタスクコマンドと前記第2のタスクに対応付けられた第2のタスクコマンドとが異なる場合、
    前記アレイ型プロセッサは、
    前記第2のタスクコマンドで指定された転送要求を発行し、
    前記構成情報DMAコントローラは、
    前記転送要求に応じて、前記アレイ型プロセッサ内部のレジスタに格納された中間データを前記外部メモリにセーブする転送処理、及び外部メモリにセーブされた中間データをロードする転送処理のいずれか一方の転送処理、または、その両方の転送処理を行う請求項1記載のストリームプロセッサ。
  3. 前記アレイ型プロセッサは、前記構成情報DMAコントローラに対する前記タスクコマンドで指定された前記転送要求を前記タスクコマンドから算出されたインデックスとして発行し、
    前記構成情報DMAコントローラは、
    前記アレイ型プロセッサが発行する前記インデックスを格納する第1のインデックスレジスタと、
    前記プログラムまたは前記中間データの転送元アドレス及び転送先アドレスを含むDMAコマンドが格納されるDMAコマンドテーブルと、
    前記DMAコマンドテーブルから前記DMAコマンドが入力されるDMA制御部と、
    を備え、
    前記DMA制御部は、
    前記インデックスレジスタに格納された前記インデックスで指定される前記DMAコマンドから前記転送元アドレス及び前記転送先アドレスを抽出し、抽出された前記転送元アドレス及び前記転送先アドレスにしたがって、前記アレイ型プロセッサと前記外部メモリとの間で前記プログラム及び/または前記中間データの転送処理を行う請求項2記載のストリームプロセッサ。
  4. 前記DMAコマンドに、前記転送元アドレス、前記転送先アドレス及びエンドフラグを備え、
    前記DMA制御部は、
    前記第1のインデックスレジスタに格納された前記インデックスで指定される前記DMAコマンドのエンドフラグが前記DMAコマンドの実行終了を示すか否かを判断し、
    前記エンドフラグが実行終了を示す場合は、前記DMAコマンドテーブルから前記DMAコマンドの読み込みを終了し、
    前記エンドフラグが実行継続を示す場合は、前記インデックスの値をインクリメントした新たな値のインデックスで指定されるDMAコマンドにしたがって、前記プログラムまたは前記中間データの転送処理を行う請求項3記載のストリームプロセッサ。
  5. 前記タスクコマンドで指定されるプログラムが1つまたは複数である請求項4記載のストリームプロセッサ。
  6. 前記エンドフラグが実行終了を示す場合、前記構成情報DMAコントローラは、
    ロード完了通知を前記アレイ型プロセッサに送信する請求項4または5記載のストリームプロセッサ。
  7. 前記構成情報DMAコントローラは、さらに
    外部から入力されるインデックスを格納する第2のインデックスレジスタと、
    前記第1のインデックスレジスタに格納された第1のインデックス、または前記第2のインデックスレジスタに格納された第2のインデックスのいずれか一方のインデックスを選択する調停回路と、
    を備えた請求項3から6のいずれか1項記載のストリームプロセッサ。
  8. 前記DMAコマンドは、前記転送元アドレス、前記転送先アドレス、前記エンドフラグ及び割り込みフラグを備え、
    前記DMA制御部は、前記調停回路が選択した、インデックスで指定される前記DMAコマンドの割り込みフラグが立っているか否かを判断し、
    前記割り込みフラグが立っている場合は、外部に割り込み通知を行う請求項7記載のストリームプロセッサ。
  9. 前記入力DMA回路は、
    前記タスクデータが格納された前記外部メモリのアドレスを示す入力データアドレス情報、前記タスクデータのサイズを示す入力データサイズ情報、及び前記タスクに対応づけられたタスクコマンドを備えたディスクリプタを前記外部メモリからロードし、
    前記ディスクリプタから抽出した前記入力データアドレス情報及び前記入力データサイズ情報にしたがって前記外部メモリから前記タスクデータをロードし、
    前記ディスクリプタから前記タスクコマンドを抽出する請求項1から8のいずれか1項記載のストリームプロセッサ。
  10. 前記アレイ型プロセッサの処理結果である出力データを前記アレイ型プロセッサから受け取り、前記外部メモリに前記出力データをストアするメモリアクセス制御回路を備える請求項9記載のストリームプロセッサ。
  11. 前記ストリームプロセッサは、
    前記アレイ型プロセッサの処理結果である出力データの格納先を示す出力データアドレス情報を格納するディスクリプタ管理テーブルをさらに備え、
    前記ディスクリプタは、
    前記タスクデータが格納された前記外部メモリのアドレスを示す入力データアドレス情報、前記タスクデータのサイズを示す入力データサイズ情報、前記タスクに対応づけられたタスクコマンド、前記ディスクリプタを識別するためのトランザクション識別子及び前記出力データアドレス情報を備え、
    前記入力DMA回路は、
    前記ディスクリプタから前記トランザクション識別子を抽出し、前記トランザクション識別子を前記アレイ型プロセッサへ送信し、前記出力データアドレス情報を前記トランザクション識別子に関連付けて前記ディスクリプタ管理テーブルに格納し、
    前記メモリアクセス制御回路は、
    前記アレイ型プロセッサから前記トランザクション識別子を受け取り、該トランザクション識別子に関連する前記出力データアドレス情報を読み出し、該出力データアドレス情報にしたがって前記アレイ型プロセッサの出力データを前記外部メモリにストアする請求項10記載のストリームプロセッサ。
  12. 前記入力DMA回路と前記アレイ型プロセッサとの間にFIFOを備える請求項11記載のストリームプロセッサ。
  13. 前記アレイ型プロセッサと前記メモリアクセス制御回路との間にFIFOを備える請求項11または12記載のストリームプロセッサ。
  14. 前記タスクコマンドが指定するプログラムが1つまたは複数である請求項2記載のストリームプロセッサ
JP2005164579A 2005-06-03 2005-06-03 ストリームプロセッサ Pending JP2006338538A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005164579A JP2006338538A (ja) 2005-06-03 2005-06-03 ストリームプロセッサ
EP06011545A EP1736890A3 (en) 2005-06-03 2006-06-02 Stream processor including DMA controller used in data processing apparatus
US11/445,132 US20060277545A1 (en) 2005-06-03 2006-06-02 Stream processor including DMA controller used in data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005164579A JP2006338538A (ja) 2005-06-03 2005-06-03 ストリームプロセッサ

Publications (1)

Publication Number Publication Date
JP2006338538A true JP2006338538A (ja) 2006-12-14

Family

ID=37022984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005164579A Pending JP2006338538A (ja) 2005-06-03 2005-06-03 ストリームプロセッサ

Country Status (3)

Country Link
US (1) US20060277545A1 (ja)
EP (1) EP1736890A3 (ja)
JP (1) JP2006338538A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011512587A (ja) * 2008-02-14 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御装置との通信用に構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作に関する入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法(単一入出力操作内の双方向データ転送)
JP2015018379A (ja) * 2013-07-10 2015-01-29 国立大学法人 筑波大学 プログラム、及び情報処理装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1647894A3 (en) * 2004-10-12 2007-11-21 NEC Electronics Corporation Information processing apparatus with parallel DMA processes
US9158713B1 (en) * 2010-04-07 2015-10-13 Applied Micro Circuits Corporation Packet processing with dynamic load balancing
EP2728491A1 (en) * 2012-10-31 2014-05-07 MStar Semiconductor, Inc Stream Data Processor
DE102014207417A1 (de) * 2014-04-17 2015-10-22 Robert Bosch Gmbh Schnittstelleneinheit
US10203911B2 (en) * 2016-05-18 2019-02-12 Friday Harbor Llc Content addressable memory (CAM) implemented tuple spaces
CN108062254B (zh) * 2017-12-12 2022-11-18 腾讯科技(深圳)有限公司 作业处理方法、装置、存储介质及设备
CN109976898B (zh) * 2017-12-27 2022-11-08 上海大郡动力控制技术有限公司 分层任务系统的SPI与Eeprom异步通讯方法
CN108388527B (zh) * 2018-02-02 2021-01-26 上海兆芯集成电路有限公司 直接存储器存取引擎及其方法
US10997115B2 (en) 2018-03-28 2021-05-04 quadric.io, Inc. Systems and methods for implementing a machine perception and dense algorithm integrated circuit and enabling a flowing propagation of data within the integrated circuit
KR102882975B1 (ko) * 2025-09-05 2025-11-10 리벨리온 주식회사 커맨드 프로세서 및 이에 의해 오토 패치를 수행하기 위한 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63133269A (ja) * 1986-11-25 1988-06-06 Matsushita Electric Ind Co Ltd Dma制御装置
JPH10222456A (ja) * 1996-12-03 1998-08-21 Matsushita Electric Ind Co Ltd データ転送装置
JP2001525966A (ja) * 1997-05-23 2001-12-11 アスペックス・テクノロジー・リミテッド 命令発行速度を加速するプロセッサ・コントローラ
US20030007636A1 (en) * 2001-06-25 2003-01-09 Alves Vladimir Castro Method and apparatus for executing a cryptographic algorithm using a reconfigurable datapath array
US20030046530A1 (en) * 2001-04-30 2003-03-06 Daniel Poznanovic Interface for integrating reconfigurable processors into a general purpose computing system
US20040233994A1 (en) * 2003-05-22 2004-11-25 Lsi Logic Corporation Reconfigurable computing based multi-standard video codec
JP2006202271A (ja) * 2004-12-22 2006-08-03 Nec Electronics Corp ストリームプロセッサ及び情報処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5305446A (en) * 1990-09-28 1994-04-19 Texas Instruments Incorporated Processing devices with improved addressing capabilities, systems and methods
US5535417A (en) * 1993-09-27 1996-07-09 Hitachi America, Inc. On-chip DMA controller with host computer interface employing boot sequencing and address generation schemes
JPH10111806A (ja) * 1996-10-04 1998-04-28 Nec Corp プログラム起動方式
JP3206458B2 (ja) * 1996-10-18 2001-09-10 日本電気株式会社 Dma転送方式
US6098121A (en) * 1996-12-03 2000-08-01 Matsushita Electric Industrial Co., Ltd. Data transfer apparatus with improved throughput due to reduced processing overhead in interrupt process
JP3878307B2 (ja) 1997-12-19 2007-02-07 松下電器産業株式会社 プログラマブルなデータ処理装置
GB2348306B (en) * 1999-03-25 2003-07-30 Ibm Data processing systems and method for processing tasks in such systems
JP3674515B2 (ja) * 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
KR100403620B1 (ko) * 2001-02-28 2003-10-30 삼성전자주식회사 채널 활용율을 높이는 통신 시스템 및 그 방법
US20020144027A1 (en) * 2001-03-27 2002-10-03 Schmisseur Mark A. Multi-use data access descriptor
JP3693013B2 (ja) 2001-12-26 2005-09-07 日本電気株式会社 データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体
JP2004220070A (ja) 2003-01-09 2004-08-05 Japan Science & Technology Agency コンテキスト切り替え方法及び装置、中央演算装置、コンテキスト切り替えプログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体
US7478390B2 (en) * 2003-09-25 2009-01-13 International Business Machines Corporation Task queue management of virtual devices using a plurality of processors
DE602005016517D1 (de) * 2004-12-22 2009-10-22 Nec Electronics Corp Datenstromprozessor und Informationsverarbeitungsvorrichtung

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63133269A (ja) * 1986-11-25 1988-06-06 Matsushita Electric Ind Co Ltd Dma制御装置
JPH10222456A (ja) * 1996-12-03 1998-08-21 Matsushita Electric Ind Co Ltd データ転送装置
JP2001525966A (ja) * 1997-05-23 2001-12-11 アスペックス・テクノロジー・リミテッド 命令発行速度を加速するプロセッサ・コントローラ
US20030046530A1 (en) * 2001-04-30 2003-03-06 Daniel Poznanovic Interface for integrating reconfigurable processors into a general purpose computing system
US20030007636A1 (en) * 2001-06-25 2003-01-09 Alves Vladimir Castro Method and apparatus for executing a cryptographic algorithm using a reconfigurable datapath array
US20040233994A1 (en) * 2003-05-22 2004-11-25 Lsi Logic Corporation Reconfigurable computing based multi-standard video codec
JP2006202271A (ja) * 2004-12-22 2006-08-03 Nec Electronics Corp ストリームプロセッサ及び情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011512587A (ja) * 2008-02-14 2011-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 制御装置との通信用に構成されたホスト・コンピュータ・システムにおける入出力(i/o)操作に関する入出力処理を容易にするためのコンピュータ・プログラム、装置、および方法(単一入出力操作内の双方向データ転送)
JP2015018379A (ja) * 2013-07-10 2015-01-29 国立大学法人 筑波大学 プログラム、及び情報処理装置

Also Published As

Publication number Publication date
EP1736890A2 (en) 2006-12-27
US20060277545A1 (en) 2006-12-07
EP1736890A3 (en) 2007-11-07

Similar Documents

Publication Publication Date Title
US10778815B2 (en) Methods and systems for parsing and executing instructions to retrieve data using autonomous memory
US11386029B2 (en) Direct memory access controller
US9043806B2 (en) Information processing device and task switching method
JPWO2004057481A1 (ja) Dma制御装置、dma制御方法、dma制御プログラム
JP2009134391A (ja) ストリーム処理装置、ストリーム処理方法及びデータ処理システム
CN114662136A (zh) 一种基于pcie通道的多算法ip核的高速加解密系统及方法
JP2006195823A (ja) Dma装置
JP2006338538A (ja) ストリームプロセッサ
JP2010176442A (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
US10515036B2 (en) Bit manipulation capable direct memory access
JP4373255B2 (ja) ダイレクトメモリアクセス制御装置および方法
US9128924B2 (en) Method and apparatus for wireless broadband systems direct data transfer
CN100388254C (zh) 直接存储器存取控制方法、直接存储器存取控制器、信息处理系统
JP2007034392A (ja) 情報処理装置及びデータ処理方法
TWI766891B (zh) 半導體裝置的處理器與其操作方法
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP5360594B2 (ja) Dma転送装置及び方法
US20080209085A1 (en) Semiconductor device and dma transfer method
JP4170330B2 (ja) 情報処理装置
JP2021064166A (ja) メモリ制御装置、および制御方法
JP6416488B2 (ja) 半導体装置
JP5587530B2 (ja) エンジン・プロセッサ連携システム及び連携方法
KR20120066999A (ko) 다이렉트 메모리 액세스 컨트롤러 및 그것의 동작 방법
US20070198754A1 (en) Data transfer buffer control for performance
JPH02242337A (ja) 命令プリフェッチ装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080515

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20100705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110906