JP2008102599A - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP2008102599A
JP2008102599A JP2006282559A JP2006282559A JP2008102599A JP 2008102599 A JP2008102599 A JP 2008102599A JP 2006282559 A JP2006282559 A JP 2006282559A JP 2006282559 A JP2006282559 A JP 2006282559A JP 2008102599 A JP2008102599 A JP 2008102599A
Authority
JP
Japan
Prior art keywords
bank
data
controller
banks
outside
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.)
Withdrawn
Application number
JP2006282559A
Other languages
English (en)
Inventor
Masami Nakajima
雅美 中島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2006282559A priority Critical patent/JP2008102599A/ja
Priority to US11/907,049 priority patent/US7953938B2/en
Publication of JP2008102599A publication Critical patent/JP2008102599A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Abstract

【課題】演算とデータ転送とを同時に行なうことが可能なプロセッサを提供すること。
【解決手段】メモリコントローラ17は、PEコントローラ19から出力されるPE11が使用しない空きバンク情報と、バスコントローラ18から出力されるデータ転送に使用される使用バンク情報とが一致する場合に、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。したがって、PE11によるデータ読み出しおよびデータ書き込みと、外部との間のデータ転送とが並行して行なわれ、PE11の処理時間を短縮することが可能となる。
【選択図】図4

Description

本発明は、演算すべきデータを複数部分に分け、複数部分に対して逐次演算を行なうプロセッサに関し、特に、演算の実行中にデータの入出力が可能なプロセッサに関する。
近年、携帯端末機器の普及に伴い、音声や画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。一般に、このようなデジタル信号処理には、専用の半導体装置としてDSP(Digital Signal Processor)が用いられることが多い。しかしながら、処理対象のデータが非常に多い場合には、専用DSPを用いたとしても性能を飛躍的に向上させることは難しい。たとえば、演算対象のデータが1万組ある場合には、1つ1つのデータに対する演算を1マシンサイクルで実行できたとしても、演算のために最低でも1万サイクルが必要になる。すなわち、1つ1つのデータに対する処理は高速であるが、データ処理が直列であるため、データ量が多くなるとそれに比例して処理時間が長くなってしまう。
処理対象のデータが多い場合には、並列演算によって処理性能を向上させることが可能である。すなわち、演算器を複数個用意し、それらを同時に動作させることで複数のデータ処理を同時に行なうことが可能である。このとき、複数のデータに対して同じ演算を行なう場合には、SIMD(Single Instruction stream-Multiple Data stream)と呼ばれる方式を採用することにより、高い並列性を保ったまま演算器の面積を削減することが可能である。すなわち、データ処理器を複数用意するが、命令を解釈して処理を制御する制御部を共通にすることで、小さい面積で高い性能を発揮させることができる。
処理するデータが多い場合、算術演算の基本である加算をビットシリアルで行なった方が面積あたりの性能が上がる。たとえば、1ビット加算器32個(以下、Aとする。)と32ビット加算器1個(以下、Bとする。)とを考える。これらAおよびBは、32個の加算を行なうサイクル数は32で同じである。しかし、1サイクル内で直列的に演算される長さは異なる。たとえば、Bを1ビット加算器の32直列で実現した場合、AとBとの面積は等しくなるが、演算時間はBの方が32倍長くなる。一方、Bをキャリールックアヘッドなどの高速演算器で実現した場合、Bの方が演算時間は短くなるが、面積はAよりも大きくなる。したがって、Aの方がBよりも面積あたりの性能は高い。
また、乗算器の場合には、2次のブースのアルゴリズムを用いて2ビット処理を行なうと、1ビット処理に比べて部分積の加算の数を半分に減らすことができる。
このように、非常に多くの加算、乗算を行なう場合には、1ビットまたは2ビットのシリアル演算に基づくSIMD方式により、面積あたりの性能を上げることが可能となる。また、この方式は、処理するデータのデータ幅が固定されないため、様々な用途に用いることができる。これに関連する技術として、下記の特許文献1および特許文献2に開示された発明がある。
特許文献1に開示されたデータ変換装置において、データ処理器は所定数のデータを同時に並行して処理が可能である。バッファメモリは、逐次的に入力されるデータを蓄えることができ、データ処理器に対しては処理に適したビット幅の単位で所定数のデータを同時に並行して入出力可能である。制御情報メモリは、データバッファ機能とは別の機能LUT(Look Up Table)を指定する情報および使用領域情報を含むバッファメモリ制御情報データを記憶する。そして、バッファコントローラは、制御情報データに基づいてバッファメモリにデータバッファ機能領域とLUT機能領域とを割付けて各機能領域がデータ処理器への並列入出力に適した形になるように、バッファメモリとデータ処理器との間のデータ転送ラインを適応的に定める。
特許文献2に開示された画像処理装置においては、画像処理プロセッサに転送制御部が設けられる。転送制御部は、プロセッサ・アレー部が画像処理を行なっていないアイドル・サイクル・タイム中に、プロセス・コントローラより追加、更新の画像処理手順および画像処理のためのデータが転送され、ホストバッファがこれらを一時記憶する。そして、ホスト・バッファからプログラムRAM、データRAMへ追加、更新の画像処理手順および画像処理のためのデータが転送される。
特開2003−203225号公報 特開2001−76125号公報
SIMD方式のプロセッサは、データメモリに格納される演算データに対して演算を実行する。したがって、演算前に演算に使用されるデータを外部からデータメモリに入力し、演算後に演算結果のデータをデータメモリから外部に出力する必要があるため、データメモリのデータの入出力中はプロセッサが演算を行なうことができない。そのため、全体の処理時間が長くなるといった問題点があった。
上述した特許文献1に開示されたデータ変換装置は、演算に使用しないバッファにデータを蓄えておき、必要なときに、演算で使用するバッファに並列に転送するものであるため、プロセッサの処理時間を短縮することはできない。
また、特許文献2に開示された画像処理装置は、処理のアイドル・サイクル中にデータの入出力を行なうものであるため、アイドル・サイクルが少ない場合には処理時間を短縮することができない。
本発明は、上記問題点を解決するためになされたものであり、その目的は、演算とデータ転送とを同時に行なうことが可能なプロセッサを提供することである。
本発明の一実施例によれば、PE(Processor Element)と、複数のバンク0〜3と、スイッチングネットワークと、メモリコントローラとを含んだプロセッサが提供される。メモリコントローラは、PEが使用しない空きバンク情報と、データ転送に使用される使用バンク情報とが一致する場合に、全ての通信が可能となるようにバンク0〜3およびスイッチングネットワークを制御する。
この実施例によれば、PEによるデータ読み出しおよびデータ書き込みと、外部との間のデータ転送とが並行して行なわれ、PEの処理時間を短縮することが可能となる。
図1は、ビットシリアル演算を説明するための図である。ビットシリアル演算は、下位側ビットから順に行なわれる。まず、メモリマット102に格納されているデータaの下位ビットa[0]がALU(Arithmetic Logic Unit)101−1〜101−mに転送される。次に、データbの下位ビットb[0]が同様にALU101−1〜101−mに転送される。ALU101−1〜101−mは、この2つの入力データを用いて加算演算を行なう。演算結果はb[0]に書込まれる。この処理がa[1]およびb[1]に対しても行なわれる。加算演算においては桁上がりが生じる可能性があるため、この桁上がり値がb[2]に書込まれる。これによって、データaとデータbとの加算が全てのエントリに対して完了し、演算結果がbとして得られる。
図2は、PEによる演算実行とデータの入出力とが同時に行なえない場合の問題点を説明するための図である。図2に示すように、データの入出力が行われているときに、PEによる演算を停止させていたため、全体の処理時間が長くなるといった問題点がある。
図3は、メモリを演算用とDMA(Direct Memory Access)転送用との2バンクに分けたプロセッサの構成例を示す図である。このプロセッサは、PE111と、バンク0のローカルメモリ(以下、LM−バンク0と呼ぶ。)112と、バンク1のローカルメモリ(以下、LM−バンク1と呼ぶ。)113と、スイッチングネットワーク114と、メモリコントローラ(MEM−cnt)115と、PEコントローラ(PE−cnt)116とを含む。
LM−バンク0(112)には、外部バス117およびスイッチングネットワーク114を介して演算用のデータがDMA転送によって書き込まれる。LM−バンク0(112)に書き込まれたデータは、PE111によって演算用データとして読み出される。PE111による演算結果は、順次LM−バンク0(112)に書き込まれる。そして、LM−バンク0(112)に書き込まれた演算結果は、スイッチングネットワーク114および外部バス117を介してDMA転送によって外部に転送される。
同様に、LM−バンク1(113)には、外部バス117およびスイッチングネットワーク114を介して演算用のデータがDMA転送によって書き込まれる。LM−バンク1(113)に書き込まれたデータは、PE111によって演算用データとして読み出される。PE111による演算結果は、順次LM−バンク1(113)に書き込まれる。そして、LM−バンク1(113)に書き込まれた演算結果は、スイッチングネットワーク114および外部バス117を介してDMA転送によって外部に転送される。
スイッチングネットワーク114は、データの転送経路を切り換え、LM−バンク0(112)およびLM−バンク1(113)のいずれか一方をPE111のための演算用メモリとし、他方をデータ入出力用(DMA転送用)メモリとする。
メモリコントローラ115は、PEコントローラ116からの指示を受け、スイッチングネットワーク114の切り換えと、LM−バンク0(112)およびLM−バンク1(113)のリード/ライト制御とを行なう。
PEコントローラ116は、フェッチした命令のデコード結果に基づいて、PE111による演算の制御と、メモリコントローラ115に対する指示とを行なう。
図3に示すプロセッサにおいては、データの転送経路を切り換えて、2つのバンクの一方を演算用メモリとし、他方をDMA転送用メモリとするため、演算に使用しないデータメモリがデータメモリ全体の1/2を占めることになり、面積あたりの演算能力が低下するといった問題点がある。
(第1の実施の形態)
図4は、本発明の第1の実施の形態におけるプロセッサの構成例を示すブロック図である。このプロセッサは、PE11と、バンク0〜3のローカルメモリ(以下、LM−バンク0〜3と呼ぶ。)12〜15と、スイッチングネットワーク16と、メモリコントローラ(MEM−cnt)17と、バスコントローラ(BUS−cnt)18と、PEコントローラ(PE−cnt)19と、バッファ20とを含む。
PE11は、1ビットまたは2ビットごとにシリアルに演算を実行する。PE11は、スイッチングネットワーク16を介してローカルメモリと3つのポートで接続されており、LM−バンク0〜3(12〜15)のいずれか2つを演算データ読み出し用メモリとして使用し、残りのいずれか一方を演算結果書き込み用のメモリとして使用する。
LM−バンク0〜3(12〜15)のいずれか1つに、スイッチングネットワーク16を介してバッファ20から演算用のデータが転送される。LM−バンク0〜3(12〜15)のいずれか2つに格納されるデータは、PE11によって演算用データとして読み出される。PE11による演算結果は、順次LM−バンク0〜3(12〜15)のいずれか1つに書き込まれる。そして、LM−バンク0〜3(12〜15)のいずれか1つに格納される演算結果が、スイッチングネットワーク16を介してバッファ20に転送される。
PE11が演算を行なう際に、LM−バンク0〜3(12〜15)のいずれか2つがデータ読み出し用のメモリとして使用され、残りのいずれか一方が演算結果書き込み用のメモリとして使用され、残りの1つがバッファ20との間のデータ転送用メモリとして使用される。メモリコントローラ17は、それぞれのバンクに対して別のアドレスを指定することが可能である。
スイッチングネットワーク16は、データの転送経路を切り換え、LM−バンク0〜3(12〜15)のいずれか2つをデータ読み出し用のメモリとし、残りのいずれか一方を演算結果書き込み用のメモリとし、残りの1つをバッファ20との間のデータ転送用メモリとする。
メモリコントローラ17は、バスコントローラ18およびPEコントローラ19からの情報を受け、スイッチングネットワーク16の切り換えと、LM−バンク0〜3(12〜15)のリード/ライト制御とを行なう。
バスコントローラ18は、バスの制御を行なうとともに、バッファ20からバンク使用要求を受け、どのバンクを使用するかを示す情報を使用バンク情報としてメモリコントローラ17に出力する。
PEコントローラ19は、フェッチした命令のデコード結果に基づいて、PE11による演算の制御と、メモリコントローラ17に対する指示とを行なう。PEコントローラ19は、PE11が使用しないバンクの情報を空きバンク情報としてメモリコントローラ17に出力する。
バッファ20は、外部バス21を介して外部との間でデータ転送を行なうときに、データを一時的に格納する。また、バッファ20は直交変換の機能を有している。PE11は、1ビットまたは2ビットごとに演算を実行するため、LM−バンク0〜3(12〜15)にも1ビットまたは2ビット単位でデータを格納する必要がある。そのため、バッファ20は、外部からワード単位で転送される複数のデータに対して直交変換を行ない、複数のデータを1ビットまたは2ビット単位のデータに変換してLM−バンク0〜3(12〜15)に転送する。
図5は、本発明の第1の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。図5においては、左上に要求バンク番号を記載し、右下に実行バンク番号を記載するものとする。
タイミングT0において、PE11がバンク0およびバンク3を読み出し用メモリとして使用し、バンク2を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク1」をメモリコントローラ17に出力する。
また、タイミングT0において、バッファ20がバンク1をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク1」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断し、PEコントローラ19およびバスコントローラ18に対して実行可能信号を出力する。そして、メモリコントローラ17は、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT1〜T3においても同様に、メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断する。そして、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
図6は、本発明の第1の実施の形態におけるプロセッサの処理の他の一例を説明するためのタイミングチャートである。
タイミングT0において、PE11がバンク0およびバンク3を読み出し用メモリとして使用し、バンク2を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク1」をメモリコントローラ17に出力する。
また、タイミングT0において、バッファ20がバンク0をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク0」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致していないので、要求を全て実行するのは不可能であると判断する。このとき、メモリコントローラ17は、バッファ20の要求を優先し、バスコントローラ18に対して実行可能信号を出力するとともに、PEコントローラ19に対しては実行不可能信号を出力する。そして、メモリコントローラ17は、バッファ20との通信のみが可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT1において、PE11がバンク0およびバンク3を読み出し用メモリとして使用し、バンク2を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク1」をメモリコントローラ17に出力する。
また、タイミングT1において、バッファ20がバンク1をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク1」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断し、PEコントローラ19およびバスコントローラ18に対して実行可能信号を出力する。そして、メモリコントローラ17は、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT2〜T3においても同様に、メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断する。そして、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
このように、PE11からの要求バンク番号と、バッファ20からの要求バンク番号とが共にローテーションする。そのため、一度バンクの競合が解消されると、それ以降はバンクの競合がなくなり全ての要求が実行可能となる。
以上説明したように、本実施の形態におけるプロセッサによれば、PE11が使用しないバンク番号を示す空きバンク情報と、バッファ20が使用するバンク番号を示す使用バンク情報とが一致する場合に、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御するようにしたので、PE11の演算を停止することなくバッファ20との間のデータ転送を行なうことが可能となった。したがって、プロセッサの処理時間を短縮することが可能となった。
また、PE11およびバッファ20の要求が競合する場合には、バッファ20の要求を優先するようにしたので、データ転送を高速に行なうことが可能となった。
(第2の実施の形態)
本発明の第2の実施の形態におけるプロセッサの構成例は、図4に示す第1の実施の形態におけるプロセッサの構成例と同様である。また、第2の実施の形態において、全ての要求が実行可能な場合の処理は、図5に示す第1の実施の形態において説明した処理と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
図7は、本発明の第2の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。
タイミングT0において、PE11がバンク0およびバンク3を読み出し用メモリとして使用し、バンク2を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク1」をメモリコントローラ17に出力する。
また、タイミングT0において、バッファ20がバンク2をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク2」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致していないので、要求を全て実行するのは不可能であると判断する。このとき、メモリコントローラ17は、PE11の要求を優先し、PEコントローラ19に対して実行可能信号を出力するとともに、バスコントローラ18に対しては実行不可能信号を出力する。そして、メモリコントローラ17は、PE11との通信のみが可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT1において、PE11がバンク1およびバンク0を読み出し用メモリとして使用し、バンク3を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク2」をメモリコントローラ17に出力する。
また、タイミングT1において、バッファ20がバンク2をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク2」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断し、PEコントローラ19およびバスコントローラ18に対して実行可能信号を出力する。そして、メモリコントローラ17は、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT2〜T3においても同様に、メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断する。そして、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
このように、PE11からの要求バンク番号と、バッファ20からの要求バンク番号とが共にローテーションする。そのため、一度バンクの競合が解消されると、それ以降はバンクの競合がなくなり全ての要求が実行可能となる。
以上説明したように、本実施の形態におけるプロセッサによれば、PE11およびバッファ20の要求が競合する場合には、PE11の要求を優先するようにしたので、第1の実施の形態において説明したバンクの競合がない場合の効果に加えて、PE11における演算を高速に行なうことが可能となった。
(第3の実施の形態)
本発明の第3の実施の形態におけるプロセッサの構成例は、図4に示す第1の実施の形態におけるプロセッサの構成例と同様である。また、第3の実施の形態において、全ての要求が実行可能な場合の処理は、図5に示す第1の実施の形態において説明した処理と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
図8は、本発明の第3の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。
タイミングT0において、PE11がバンク0およびバンク3を読み出し用メモリとして使用し、バンク2を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク1」をメモリコントローラ17に出力する。
また、タイミングT0において、バッファ20がバンク0をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク0」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致していないので、要求を全て実行するのは不可能であると判断する。このとき、メモリコントローラ17は、PE11およびバッファ20の要求が競合し、かつ、バッファ20が待たされたサイクル数が「0」であるので、PE11の要求を優先し、PEコントローラ19に対して実行可能信号を出力するとともに、バスコントローラ18に対しては実行不可能信号を出力する。
そして、メモリコントローラ17は、PE11との通信のみが可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。ここで、メモリコントローラ17は、バッファ20が待たされたサイクル数を「0」から「1」に更新する。
タイミングT1において、PE11がバンク1およびバンク0を読み出し用メモリとして使用し、バンク3を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク2」をメモリコントローラ17に出力する。
また、タイミングT1において、バッファ20がバンク0をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク0」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致していないので、要求を全て実行するのは不可能であると判断する。このとき、メモリコントローラ17は、PE11およびバッファ20の要求が競合し、かつ、バッファ20が待たされたサイクル数が「1」であるので、PE11の要求を優先し、PEコントローラ19に対して実行可能信号を出力するとともに、バスコントローラ18に対しては実行不可能信号を出力する。
そして、メモリコントローラ17は、PE11との通信のみが可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。ここで、メモリコントローラ17は、バッファ20が待たされたサイクル数を「1」から「2」に更新する。
タイミングT2において、PE11がバンク2およびバンク1を読み出し用メモリとして使用し、バンク0を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク3」をメモリコントローラ17に出力する。
また、タイミングT2において、バッファ20がバンク0をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク0」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致していないので、要求を全て実行するのは不可能であると判断する。このとき、メモリコントローラ17は、PE11およびバッファ20の要求が競合し、かつ、バッファ20が待たされたサイクル数が「2」であるので、バッファ20の要求を優先し、バスコントローラ18に対して実行可能信号を出力するとともに、PEコントローラ19に対しては実行不可能信号を出力する。
そして、メモリコントローラ17は、バッファ20との通信のみが可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。ここで、メモリコントローラ17は、バッファ20が待たされたサイクル数を「2」から「0」に更新する。
タイミングT3において、PE11がバンク2およびバンク1を読み出し用メモリとして使用し、バンク0を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ19は、空きバンク情報として「バンク3」をメモリコントローラ17に出力する。
また、タイミングT3において、バッファ20がバンク1をデータ転送用メモリとして使用することを要求している。このとき、バスコントローラ18は、使用バンク情報として「バンク1」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ19から受けた空きバンク情報と、バスコントローラ18から受けた使用バンク情報とが一致していないので、要求を全て実行するのは不可能であると判断する。このとき、メモリコントローラ17は、PE11およびバッファ20の要求が競合し、かつ、バッファ20が待たされたサイクル数が「0」であるので、PE11の要求を優先し、PEコントローラ19に対して実行可能信号を出力するとともに、バスコントローラ18に対しては実行不可能信号を出力する。
そして、メモリコントローラ17は、PE11との通信のみが可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。ここで、メモリコントローラ17は、バッファ20が待たされたサイクル数を「0」から「1」に更新する。
なお、以上の説明においては、PE11およびバッファ20の要求が競合し、かつ、バッファ20が待たされたサイクル数が「2」の場合に、バッファ20の要求を優先するようにしたが、バッファ20の要求を優先するときのサイクル数がこれ以外の値であってもよい。また、PE11が待たされたサイクル数をカウントし、PE11が待たされたサイクル数が所定値のときにのみPE11の要求を優先するようにしてもよい。
以上説明したように、本実施の形態におけるプロセッサによれば、PE11およびバッファ20の要求が競合し、かつ、バッファ20が待たされたサイクル数が所定値のときにのみバッファ20の要求を優先するようにしたので、第1の実施の形態において説明したバンクの競合がない場合の効果に加えて、バッファ20との間のデータ転送のレイテンシを保証することが可能となった。
(第4の実施の形態)
図9は、本発明の第4の実施の形態におけるプロセッサの構成例を示すブロック図である。本実施の形態におけるプロセッサは、図4に示す第1の実施の形態におけるプロセッサと比較して、PEコントローラが有する空きバンク情報がバスコントローラにも入力される点のみが異なる。したがって、重複する構成および機能の詳細な説明は繰返さない。
図10は、本発明の第4の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。
タイミングT0において、PE11がバンク0およびバンク3を読み出し用メモリとして使用し、バンク2を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ32は、空きバンク情報として「バンク1」をメモリコントローラ17およびバスコントローラ31に出力する。
また、タイミングT0において、バスコントローラ31は空きバンク情報として「バンク1」を受けているので、使用バンク情報として「バンク1」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ32から受けた空きバンク情報と、バスコントローラ31から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断し、PEコントローラ32およびバスコントローラ31に対して実行可能信号を出力する。そして、メモリコントローラ17は、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT1〜T3においても同様に、メモリコントローラ17は、PEコントローラ32から受けた空きバンク情報と、バスコントローラ31から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断する。そして、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
以上説明したように、本実施の形態におけるプロセッサによれば、バスコントローラ31がPEコントローラ32から空きバンク情報を受け、その空きバンクを使用バンクとするようにしたので、PE11およびバッファ20の要求が競合することがなくなり、PE11の演算を停止することなくバッファ20との間のデータ転送を行なうことが可能となった。したがって、プロセッサの処理時間を短縮すること可能となった。
(第5の実施の形態)
本発明の第5の実施の形態におけるプロセッサの構成例は、図9に示す第4の実施の形態におけるプロセッサの構成例と同様である。したがって、重複する構成および機能の詳細な説明は繰返さない。
図11は、本発明の第5の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。
タイミングT0において、PE11がバンク0を読み出し用メモリとして使用し、バンク3を書き込み用メモリとして使用することを要求している。このとき、PEコントローラ32は、空きバンク情報として「バンク1、バンク2」をメモリコントローラ17およびバスコントローラ31に出力する。
また、タイミングT0において、バスコントローラ31は空きバンク情報として「バンク1、バンク2」を受けているので、使用バンク情報として「バンク1、バンク2」をメモリコントローラ17に出力する。
メモリコントローラ17は、PEコントローラ32から受けた空きバンク情報と、バスコントローラ31から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断し、PEコントローラ32およびバスコントローラ31に対して実行可能信号を出力する。そして、メモリコントローラ17は、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
タイミングT1〜T3においても同様に、メモリコントローラ17は、PEコントローラ32から受けた空きバンク情報と、バスコントローラ31から受けた使用バンク情報とが一致しているので、全ての要求が実行可能であると判断する。そして、全ての通信が可能となるようにLM−バンク0〜3(12〜15)およびスイッチングネットワーク16を制御する。
以上説明したように、本実施の形態におけるプロセッサによれば、複数バンクが空きバンクの場合に、バスコントローラ31がPEコントローラ32から複数の空きバンク情報を受け、その複数の空きバンクを使用バンクとするようにしたので、第4の実施の形態において説明した効果に加えて、バッファ20との間のデータ転送をさらに高速に行なうことが可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
ビットシリアル演算を説明するための図である。 PEによる演算実行とデータの入出力とが同時に行なえない場合の問題点を説明するための図である。 メモリを演算用とDMA転送用との2バンクに分けたプロセッサの構成例を示す図である。 本発明の第1の実施の形態におけるプロセッサの構成例を示すブロック図である。 本発明の第1の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。 本発明の第1の実施の形態におけるプロセッサの処理の他の一例を説明するためのタイミングチャートである。 本発明の第2の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。 本発明の第3の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。 本発明の第4の実施の形態におけるプロセッサの構成例を示すブロック図である。 本発明の第4の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。 本発明の第5の実施の形態におけるプロセッサの処理の一例を説明するためのタイミングチャートである。
符号の説明
11,111 PE、12〜15,112,113 LM−バンク、16,114 スイッチングネットワーク、17,115 メモリコントローラ、18,31 バスコントローラ、19,32,116 PEコントローラ、20 バッファ、21,117 外部バス、101−1〜101−m ALU、102 メモリマット。

Claims (7)

  1. 複数のデータを並列に演算する演算手段と、
    複数のバンクに分けられた記憶手段と、
    外部と前記複数のバンクとの間のデータ転送の経路と、前記複数のバンクと前記演算手段との間のデータ読み出しおよびデータ書き込みの経路とを切り換える切換手段と、
    前記演算手段によって使用されない空きバンク情報に基づいて、前記切換手段による切り換えを制御する制御手段とを含む、プロセッサ。
  2. 前記制御手段は、前記空きバンク情報と前記外部との間のデータ転送に使用される使用バンク情報とが一致する場合に、前記外部との間のデータ転送と前記演算手段によるデータ読み出しおよびデータ書き込みとを可能にする、請求項1記載のプロセッサ。
  3. 前記制御手段は、前記空きバンク情報と前記外部との間のデータ転送に使用される使用バンク情報とが一致しない場合に、前記外部との間のデータ転送を優先する、請求項1または2記載のプロセッサ。
  4. 前記制御手段は、前記空きバンク情報と前記外部との間のデータ転送に使用される使用バンク情報とが一致しない場合に、前記演算手段によるデータ読み出しおよびデータ書き込みを優先する、請求項1または2記載のプロセッサ。
  5. 前記制御手段は、前記空きバンク情報と前記外部との間のデータ転送に使用される使用バンク情報とが一致しない場合、前記演算手段によるデータ読み出しおよびデータ書き込みを優先し、前記外部との間のデータ転送に使用されるバンクが所定時間空かない場合には、前記演算手段によるデータ読み出しおよびデータ書き込みを停止して、前記外部との間のデータ転送を優先する、請求項1または2記載のプロセッサ。
  6. 前記制御手段は、前記演算手段によって使用されないバンクを、前記外部との間のデータ転送で使用されるバンクとする、請求項1記載のプロセッサ。
  7. 前記制御手段は、前記演算手段によって使用されないバンクが複数ある場合には、当該複数のバンクを前記外部との間のデータ転送で使用されるバンクとする、請求項6記載のプロセッサ。
JP2006282559A 2006-10-17 2006-10-17 プロセッサ Withdrawn JP2008102599A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006282559A JP2008102599A (ja) 2006-10-17 2006-10-17 プロセッサ
US11/907,049 US7953938B2 (en) 2006-10-17 2007-10-09 Processor enabling input/output of data during execution of operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006282559A JP2008102599A (ja) 2006-10-17 2006-10-17 プロセッサ

Publications (1)

Publication Number Publication Date
JP2008102599A true JP2008102599A (ja) 2008-05-01

Family

ID=39304371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006282559A Withdrawn JP2008102599A (ja) 2006-10-17 2006-10-17 プロセッサ

Country Status (2)

Country Link
US (1) US7953938B2 (ja)
JP (1) JP2008102599A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
JP5739758B2 (ja) * 2011-07-21 2015-06-24 ルネサスエレクトロニクス株式会社 メモリコントローラ及びsimdプロセッサ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875470A (en) * 1995-09-28 1999-02-23 International Business Machines Corporation Multi-port multiple-simultaneous-access DRAM chip
JP3974730B2 (ja) 1999-09-02 2007-09-12 株式会社リコー 画像処理装置、画像処理装置における画像処理手順および画像処理のためのデータの追加、更新方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP3559021B2 (ja) 2001-10-31 2004-08-25 株式会社リコー データ変換装置,画像処理装置およびデータ変換方法
US20040059879A1 (en) * 2002-09-23 2004-03-25 Rogers Paul L. Access priority protocol for computer system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011141823A (ja) * 2010-01-08 2011-07-21 Renesas Electronics Corp データ処理装置および並列演算装置

Also Published As

Publication number Publication date
US7953938B2 (en) 2011-05-31
US20080091904A1 (en) 2008-04-17

Similar Documents

Publication Publication Date Title
US11294599B1 (en) Registers for restricted memory
JP2014505916A (ja) Simdレジスタファイルから汎用レジスタファイルへデータを移動させるための方法及び装置
JPS6131502B2 (ja)
TWI666551B (zh) 以複數個引擎作資源與互連結構的分散式分配以支援指令序列的執行
CN111183418B (zh) 可配置硬件加速器
JP2008181551A (ja) ベクトルレジスタを備えたコンピュータにおけるベクトルテールゲーティング
TW202024922A (zh) 存取張量資料的方法和裝置
JP4388005B2 (ja) コンテキスト切替え装置
JP2011141823A (ja) データ処理装置および並列演算装置
JP2024003111A (ja) データ計算システム
US8200900B2 (en) Method and apparatus for controlling cache memory
JP2008102599A (ja) プロセッサ
JP6094356B2 (ja) 演算処理装置
WO2020093968A1 (zh) 卷积处理引擎及控制方法和相应的卷积神经网络加速器
JP2008090455A (ja) マルチプロセッサ信号処理装置
WO2019141160A1 (zh) 一种数据处理的方法及装置
JP2009507292A (ja) 分離したシリアルモジュールを備えるプロセッサアレイ
JP2006164070A (ja) データバッファ回路、インターフェース回路及びその制御方法
JP7136343B2 (ja) データ処理システム、方法、およびプログラム
US10956361B2 (en) Processor core design optimized for machine learning applications
JP2011118744A (ja) 情報処理装置
JP2006515446A (ja) 関連アプリケーションを相互参照するカルテシアンコントローラを有するデータ処理システム
JP2006293538A (ja) 演算システム
JP2005267362A (ja) Simdプロセッサを用いた画像処理方法及び画像処理装置
JP6307975B2 (ja) 演算処理装置及び演算処理装置の制御方法

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20100105