JP2006293538A - 演算システム - Google Patents

演算システム Download PDF

Info

Publication number
JP2006293538A
JP2006293538A JP2005111072A JP2005111072A JP2006293538A JP 2006293538 A JP2006293538 A JP 2006293538A JP 2005111072 A JP2005111072 A JP 2005111072A JP 2005111072 A JP2005111072 A JP 2005111072A JP 2006293538 A JP2006293538 A JP 2006293538A
Authority
JP
Japan
Prior art keywords
data
bank memory
arithmetic
address
bank
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
JP2005111072A
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 JP2005111072A priority Critical patent/JP2006293538A/ja
Publication of JP2006293538A publication Critical patent/JP2006293538A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 リードモディファイライト動作を高速に行なうことが可能な演算システムを提供すること。
【解決手段】 ALU1は、データを複数部分に分けて順番に演算を行なう。メモリ2は、複数部分のデータのそれぞれに対応し、バンク0のSRAM21と、バンク1のSRAM22とを含む。バンク0のSRAM21がALU1による演算結果の書込みを行なっているときに、バンク1のSRAM22がデータの読出しを行なう。したがって、リードモディファイライト動作を高速に行なうことが可能となる。
【選択図】 図3

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方式により、面積あたりの性能を上げることが可能となる。また、この方式は、処理するデータのデータ幅が固定されないため、様々な用途に用いることができる。
これに関連する技術として、特開平11−184761号公報、特開平10−214221号公報および特開平9−50398号公報に開示された発明がある。
特開平11−184761号公報に開示されたリードモディファイライト制御システムにおいては、リードモディファイライトリクエストにより、それぞれバンク0メモリ〜バンク3メモリからデータを読出してマージし、書込むまでの間対象バンク以外のバンクをビジーにせずに、他のバンクに対するリクエストを処理できるようにしたものである。
特開平10−214221号公報に開示されたメモリシステムにおいては、メモリ手段に少なくとも2つのメモリブロックを備え、メモリアクセス手段により、一方のメモリブロックで読出しを行なうときに他方のメモリブロックでは書込みを行ない、かつ各メモリブロックで書込みと読出しとを交互に行なうものである。なお、メモリアクセス手段は、外部データが入力される周期内に、少なくとも2つのデータをメモリ手段から演算手段に読出す。
特開平9−50398号公報に開示された記憶装置は、書込みポートを複数個有する記憶装置であって、アドレスごとに、最後に書込みが行なわれたメモリ回路の情報を制御回路に記憶しておく。そして、読出し時には、読出しアドレス信号が示すアドレスに対応して制御回路が記憶している情報を選択信号として出力し、最後に書込まれたデータを選択して出力するものである。
特開平11−184761号公報 特開平10−214221号公報 特開平09−050398号公報
加算をビットシリアルで行なう場合、後述するようにメモリへのリードモディファイライト動作を頻繁に行なう必要がある。以下に、このリードモディファイライト動作を実現するための従来の方法について説明する。
第1の方法として、リードモディファイライト動作を行なうSRAM(Static Random Access Memory)を新規に開発することが挙げられる。このようなSRAMを開発することによって、回路面積を小さくすることができるが、プロセスポータビリティが低くなるという問題がある。また、このようなSRAMは、各プロセスで標準的に開発されないため、プロセスが変わるたびに新規設計が必要となり、設計に時間がかかるといった問題もある。
第2の方法として、各プロセスで標準的に開発される同期SRAMを用いることが挙げられる。この同期SRAMに2倍速クロックを入力し、演算が1サイクル分実行される間に、リード動作とライト動作とを2サイクルにわたって実行する。各プロセスで標準的に開発される同期SRAMを用いるため、新規にSRAMを開発する必要がなく、開発期間を短縮することが可能となる。しかしながら、演算の速度がSRAMのアクセス速度の1/2となってしまい、処理性能が低下するといった問題がある。
第3の方法として、デュアルポートSRAMを用いてリード動作とライト動作とを行なわせる方法を挙げることができる。開発対象のプロセスでデュアルポートSRAMが用意されていれば、開発期間を短縮することができる。このようなデュアルポートSRAMはFPGA(Field Programmable Gate Array)でも標準搭載されている場合がある。しかしながら、回路面積が大きくなるといった問題がある。また、開発対象プロセスでデュアルポートSRAMが用意されていなければ新規開発が必要となり、設計に時間がかかるといった問題もある。
第4の方法として、FF(Flip Flop)回路によってリードモディファイライト動作を実現する方法が挙げられる。FF回路を用いることによって、論理合成や自動配置配線が行なえるため、開発期間を短縮することができ、性能も高く、高速動作が可能となる。ビットシリアル演算では性能、主に速度を優先して、FF回路で実現することが多い。アクセスするデータ幅が比較的小さい場合には、FF回路によって構成するのが有効であるが、データ幅が大きくなるにしたがって回路も大きくなるといった問題がある。
これらの問題は、上述した特許文献1〜3を用いてリードモディファイライト動作を実現したとしても解決することができない。
本発明は、上記問題点を解決するためになされたものであり、その目的は、リードモディファイライト動作を高速に行なうことが可能な演算システムを提供することである。
本発明のある局面に従えば、データを複数部分に分けて順番に演算を行なう演算システムであって、複数部分のデータの演算を行なう演算手段と、データの読出しと演算手段による演算結果の書込みとを同時に行なう、複数部分のデータのそれぞれに対応する記憶手段とを含み、記憶手段は、第1のデータの読出しと演算手段による第1の演算結果の書込みとを行なう第1のバンクメモリと、第1のバンクメモリが第1の演算結果の書込みを行なっているときに第2のデータの読出しを行ない、演算手段による第2の演算結果の書込みを行なう第2のバンクメモリと、第1のバンクメモリから読出された第1のデータと、第2のバンクメモリから読出された第2のデータとを演算手段に選択的に出力する選択手段とを含む。
好ましくは、第1のバンクメモリおよび第2のバンクメモリは、シングルポートスタティックランダムアクセスメモリによって構成される。
好ましくは、第1のバンクメモリおよび第2のバンクメモリは、デュアルポートスタティックランダムアクセスメモリによって構成される。
好ましくは、記憶手段はさらに、第1のバンクメモリまたは第2のバンクメモリに書込む演算結果を保持する保持手段と、第1のバンクメモリまたは第2のバンクメモリへの演算結果の書込み時におけるアドレスと、その次のデータ読出し時のアドレスとが一致するか否かを判定する判定手段とを含み、選択手段は、判定手段によってアドレスが一致すると判定された場合、保持手段に保持されるデータを演算手段に出力する。
好ましくは、記憶手段はさらに、第1のバンクメモリまたは第2のバンクメモリに書込む演算結果を保持する保持手段を含み、選択手段は、外部からアドレスが不変であることを示す信号がアサートされた場合、保持手段に保持されるデータを演算手段に出力する。
好ましくは、演算手段は、複数部分のデータのそれぞれの演算を行なう演算回路と、第1のバンクメモリまたは第2のバンクメモリに書込む演算結果を保持する保持手段と、第1のバンクメモリまたは第2のバンクメモリへの演算結果の書込み時におけるアドレスと、その次のデータ読出し時のアドレスとが一致するか否かを判定する判定手段と、判定手段による判定結果に応じて、記憶手段からの読出しデータと保持手段に保持されるデータとを演算回路に選択的に出力する選択手段とを含む。
好ましくは、演算手段は、複数部分のデータのそれぞれの演算を行なう演算回路と、第1のバンクメモリまたは第2のバンクメモリに書込む演算結果を保持する保持手段と、外部から入力されるアドレスが不変であることを示す信号に応じて、記憶手段からの読出しデータと保持手段に保持されるデータとを演算回路に選択的に出力する選択手段とを含む。
好ましくは、第1のバンクメモリおよび第2のバンクメモリは、演算手段による演算結果の書込み時におけるアドレスとして、直前のデータ読出し時のアドレスを使用する。
本発明のある局面によれば、第2のバンクメモリが、第1のバンクメモリが第1の演算結果の書込みを行なっているときに第2のデータの読出しを行なうので、リードモディファイライト動作を高速に行なうことが可能となる。
また、第1のバンクメモリおよび第2のバンクメモリが、シングルポートスタティックランダムアクセスメモリによって構成されるので、プロセスポータビリティを高くすることができ、開発時間を短縮することが可能となる。
また、第1のバンクメモリおよび第2のバンクメモリが、デュアルポートスタティックランダムアクセスメモリによって構成されるので、2チャンネルのリードモディファイライト動作を実現することが可能となる。
また、判定手段によってアドレスが一致すると判定された場合、選択手段が保持手段に保持されるデータを演算手段に出力するので、連続するアドレスに0、±1の制約がある演算回路に適用できる。
好ましくは、外部からアドレスが不変であることを示す信号がアサートされた場合、選択手段が保持手段に保持されるデータを演算手段に出力するので、連続するアドレスに0、±1の制約がある演算回路に適用できる。
また、選択手段が、判定手段による判定結果に応じて、記憶手段からの読出しデータと保持手段に保持されるデータとを演算回路に選択的に出力するので、連続するアドレスに0、±1の制約がある演算回路に適用できる。
また、選択手段が、外部から入力されるアドレスが不変であることを示す信号に応じて、記憶手段からの読出しデータと保持手段に保持されるデータとを演算回路に選択的に出力するので、連続するアドレスに0、±1の制約がある演算回路に適用できる。
また、第1のバンクメモリおよび第2のバンクメモリが、演算手段による演算結果の書込み時におけるアドレスとして、直前のデータ読出し時のアドレスを使用するので、アドレスバスを削減することが可能となる。
図1は、ビットシリアル演算を説明するための図である。ビットシリアル演算は、下位側ビットから順に行なわれる。まず、メモリマットに格納されているデータaの下位ビットa[0]がALU(Arithmetic Logic Unit)に転送される。次に、データbの下位ビットb[0]が同様にALUに転送される。ALUは、この2つの入力データを用いて加算演算を行なう。演算結果はb[1]に書込まれる。この処理がa[1]およびb[1]に対しても行われる。加算演算においては桁上がりが生じる可能性があるため、この桁上がり値がb[2]に書込まれる。これによって、データaとデータbとの加算が全てのエントリに対して完了し、演算結果がbとして得られる。
図2は、ビットシリアル演算の動作を説明するためのタイミングチャートである。ある実行サイクルkでメモリセルマットAから演算対象データa[i]を読出し、次のサイクルk+1で他方の演算対象データb[i]を読出すと共にALUによって2つのデータの加算演算を行ない、演算結果をb[i]に書戻す。このとき、桁上がりが発生すれば、上位の加算器(ADD)にキャリー(Carry)が出力される。
b[i]の操作に対して、読出しと書込みとが同じサイクルで行なわれる「リードモディファイライト動作」が可能となれば、ある1ビットの加算が2サイクルで可能となり、nビットの加算はキャリーの書込みを含めてn+2サイクルで実行可能となる。このように、ビットシリアル演算を高速に行なうためには、メモリへのリードモディファイライト動作を頻繁に行なう必要がある。
(第1の実施の形態)
図3は、本発明の第1の実施の形態における演算システムの概略構成を示すブロック図である。この演算システムは、演算単位が1ビットのビットシリアル演算を行なうシステムを示しており、図2のメモリセルマットBに相当している。演算システムは、ALU1と、メモリ2とを含む。また、メモリ2は、バンク0のSRAM21と、バンク1のSRAM22と、セレクタ23とを含む。
アドレスの下位1ビットが“0”のときに、バンク0のSRAM21はリード動作を行ない、バンク1のSRAM22はライト動作を行なう。また、アドレスの下位1ビットが“1”のときに、バンク0のSRAM21はライト動作を行ない、バンク1のSRAM22はリード動作を行なう。
セレクタ23は、アドレスの下位1ビットが“0”のときに、バンク0のSRAM21からの読出しデータを選択してALU1に出力し、アドレスの下位1ビットが“1”のときに、バンク1のSRAM22からの読出しデータを選択してALU1に出力する。
この演算システムは、ビットシリアル演算などのように、連続するアドレスに±1の制約がある演算回路に適用される。
図4は、本発明の第1の実施の形態における演算システムの動作を説明するためのタイミングチャートである。サイクルT0において、バンク0のSRAM21からの読出し動作(リード[0])が行なわれ、セレクタ23はこのバンク0のSRAM21からの読出しデータを選択してALU1に出力する。
サイクルT1において、ALU1はサイクルT0の読出しデータと、図示しないメモリ(図2に示すメモリセルマットAに対応するメモリ)から読出された他方の演算対象データとの演算(演算[0])を行なうと共に、その演算結果をバンク0のSRAM21に書込む(ライト[0])。このサイクルT1においては、バンク1のSRAM22からの読出し動作(リード[1])が行なわれ、セレクタ23はこのバンク1のSRAM22からの読出しデータを選択してALU1に出力する。
サイクルT2において、ALU1はサイクルT1の読出しデータと、他方の演算対象データとの演算(演算[1])を行なうと共に、その演算結果をバンク1のSRAM22に書込む(ライト[1])。このサイクルT2においては、バンク0のSRAM22からの読出し動作(リード[2])が行なわれ、セレクタ23はこのバンク0のSRAM21からの読出しデータを選択してALU1に出力する。
以降、同様の処理が行なわれ、一方のバンクからの読出し動作を行なっているときに、他方のバンクへの演算結果の書込み動作が行なわれる。なお、本実施の形態においては、読出し時のアドレスと書込み時のアドレスとを別々に生成してSRAMに与えているが、読出し時のアドレスを次のサイクルの書込み時のアドレスに用いるようにしてもよい。このようにすることで、アドレスバスを削減することが可能となる。
また、本実施の形態においてはシングルポートSRAMを用いる場合について説明したが、それぞれのシングルポートSRAMをデュアルポートSRAMに置換えることも可能である。このようにすることで、2チャンネルのリードモディファイライト動作を実現することが可能となる。
以上説明したように、本実施の形態における演算システムによれば、アドレスの下位1ビットに応じて、一方のバンクからの読出し動作を行なうと共に、他方のバンクへの演算結果の書込み動作を行なうようにしたので、連続するアドレスに±1の制約がある演算回路に適用できる。また、同一バンクに対して連続アクセスが起こらないため、インタリーブアクセスが行なえ、高スループットの演算が可能となった。
また、各プロセスで標準的に開発・準備されるシングルポートSRAMを用いるので、プロセスポータビリティを高くすることができ、開発時間を短縮することができると共に、回路の面積を小さくすることが可能となった。また、演算器の処理速度をSRAMの最大動作周波数まで上げることが可能となった。
(第2の実施の形態)
図5は、本発明の第2の実施の形態における演算システムの概略構成を示すブロック図である。この演算システムは、演算単位が1ビットの演算を行なうシステムを示しており、ALU1と、メモリ2とを含む。また、メモリ2は、バンク0のSRAM21と、バンク1のSRAM22と、セレクタ23と、FF24および25と、コンパレータ26とを含む。
FF24は、ALU1がSRAM21または22にデータを書込むときに、そのデータを保持する。FF25は、書込み動作時のアドレスを保持する。コンパレータ26は、FF25に保持されるアドレスと、次のサイクルのリード動作時のアドレスとを比較し、一致する場合には一致検出信号をセレクタ23に出力する。
セレクタ23は、コンパレータ26から一致検出信号が出力されている場合には、FF24からのデータを選択してALU1に出力する。
また、セレクタ23は、コンパレータ26から一致検出信号が出力されていない場合には、アドレスの下位1ビットが“0”のときに、バンク0のSRAM21からの読出しデータを選択してALU1に出力し、アドレスの下位1ビットが“1”のときに、バンク1のSRAM22からの読出しデータを選択してALU1に出力する。
この演算システムは、連続するアドレスに0、±1の制約がある演算回路に適用される。書込み動作の次の読出し動作時のアドレスが、書込み動作時のアドレスと同じ場合には、SRAMからデータを読出したのでは古いデータを読出すことになるので、最新のデータで更新されているFF24からのデータを用いている。
以上説明したように、本実施の形態における演算システムによれば、連続するアドレスが同じ場合には、FF24に保持されるデータをALU1に出力するようにしたので、実施の形態1において説明した効果に加えて、連続するアドレスに0、±1の制約がある演算回路に適用することが可能となった。
(第3の実施の形態)
図6は、本発明の第3の実施の形態における演算システムの概略構成を示すブロック図である。この演算システムは、演算単位が1ビットの演算を行なうシステムを示しており、ALU1と、メモリ2とを含む。メモリ2は、図示しない制御回路からのアドレス遷移状態線が接続される。また、メモリ2は、バンク0のSRAM21と、バンク1のSRAM22と、セレクタ23と、FF24とを含む。
FF24は、ALU1がSRAM21または22にデータを書込むときに、そのデータを保持する。
アドレス遷移状態線は、アドレスのインクリメントを示す「アドレス+1変化」信号と、アドレスのデクリメントを示す「アドレス−1変化」信号と、アドレスが変化しないことを示す「アドレス不変」信号とを含む。
セレクタ23は、「アドレス+1変化」信号がアサートされている場合、または「アドレス−1変化」信号がアサートされている場合には、第1の実施の形態において説明した動作と同様の動作を行なう。
また、セレクタ23は、「アドレス不変」信号がアサートされている場合には、FF24からのデータを選択してALU1に出力する。
この演算システムは、連続するアドレスに0、±1の制約がある演算回路に適用される。書込み動作の次の読出し動作時のアドレスが、書込み動作時のアドレスと同じ場合には、SRAMからデータを読出したのでは古いデータを読出すことになるので、最新のデータで更新されているFF24からのデータを用いている。
以上説明したように、本実施の形態における演算システムによれば、図示しない制御回路からの「アドレス不変」信号がアサートされている場合には、FF24に保持されるデータをALU1に出力するようにしたので、実施の形態1において説明した効果に加えて、連続するアドレスに0、±1の制約がある演算回路に適用することが可能となった。
(第4の実施の形態)
図7は、本発明の第4の実施の形態における演算システムの概略構成を示すブロック図である。この演算システムは、演算単位が1ビットの演算を行なうシステムを示しており、ALU1と、メモリ2とを含む。また、ALU1は、セレクタ11と、FF12および13と、コンパレータ14とを含む。なお、メモリ2は、図3に示す第1の実施の形態におけるメモリと同様である。
FF12は、ALU1がSRAM21または22にデータを書込むときに、そのデータを保持する。FF13は、書込み動作時のアドレスを保持する。コンパレータ14は、FF13に保持されるアドレスと、次のサイクルのリード動作時のアドレスとを比較し、一致する場合には一致検出信号をセレクタ11に出力する。なお、演算回路が図2に示すような加算器(ADD)の場合には、セレクタ11の出力およびFF12の入力は加算器(ADD)に接続される。
セレクタ11は、コンパレータ14から一致検出信号が出力されている場合には、FF12からのデータを選択して出力する。また、セレクタ11は、コンパレータ14から一致検出信号が出力されていない場合には、メモリ2からのデータを選択して出力する。
この演算システムは、連続するアドレスに0、±1の制約がある演算回路に適用される。書込み動作の次の読出し動作時のアドレスが、書込み動作時のアドレスと同じ場合には、SRAMからデータを読出したのでは古いデータを読出すことになるので、最新のデータで更新されているFF12からのデータを用いている。
以上説明したように、本実施の形態における演算システムによれば、連続するアドレスが同じ場合には、FF12に保持されるデータを内部の演算回路に出力するようにしたので、実施の形態1において説明した効果に加えて、連続するアドレスに0、±1の制約がある演算回路に適用することが可能となった。
(第5の実施の形態)
図8は、本発明の第5の実施の形態における演算システムの概略構成を示すブロック図である。この演算システムは、演算単位が1ビットの演算を行なうシステムを示しており、ALU1と、メモリ2とを含む。ALU1は、図示しない制御回路からのアドレス遷移状態線が接続される。また、ALU1は、セレクタ11と、FF12とを含む。なお、メモリ2は、図3に示す第1の実施の形態におけるメモリと同様である。
FF12は、ALU1がSRAM21または22にデータを書込むときに、そのデータを保持する。
アドレス遷移状態線は、アドレスのインクリメントを示す「アドレス+1変化」信号と、アドレスのデクリメントを示す「アドレス−1変化」信号と、アドレスが変化しないことを示す「アドレス不変」信号とを含む。
セレクタ11は、「アドレス+1変化」信号がアサートされている場合、または「アドレス−1変化」信号がアサートされている場合には、メモリ2からのデータを選択して出力する。
また、セレクタ11は、「アドレス不変」信号がアサートされている場合には、FF12からのデータを選択して出力する。なお、演算回路が図2に示すような加算器(ADD)の場合には、セレクタ11の出力およびFF12の入力は加算器(ADD)に接続される。
この演算システムは、連続するアドレスに0、±1の制約がある演算回路に適用される。書込み動作の次の読出し動作時のアドレスが、書込み動作時のアドレスと同じ場合には、SRAMからデータを読出したのでは古いデータを読出すことになるので、最新のデータで更新されているFF12からのデータを用いている。
以上説明したように、本実施の形態における演算システムによれば、図示しない制御回路からの「アドレス不変」信号がアサートされている場合には、FF12に保持されるデータを内部の演算回路に出力するようにしたので、実施の形態1において説明した効果に加えて、連続するアドレスに0、±1の制約がある演算回路に適用することが可能となった。
(第6の実施の形態)
図9は、本発明の第6の実施の形態における演算システムの概略構成を示すブロック図である。この演算システムは、演算単位が2ビットの演算も行なえるシステムを示しており、図2のメモリセルマットBに相当している。演算システムは、ALU1と、メモリ2とを含む。また、メモリ2は、バンク0のSRAM21と、バンク1のSRAM22と、バンク2のSRAM27と、バンク3のSRAM28と、セレクタ23とを含む。
アドレスの下位2ビットが“00”のときに、バンク0のSRAM21はリード動作を行ない、バンク3のSRAM28はライト動作を行なう。また、アドレスの下位2ビットが“01”のときに、バンク0のSRAM21はライト動作を行ない、バンク1のSRAM22はリード動作を行なう。また、アドレスの下位2ビットが“10”のときに、バンク1のSRAM22はライト動作を行ない、バンク2のSRAM27はリード動作を行なう。また、アドレスの下位2ビットが“11”のときに、バンク2のSRAM27はライト動作を行ない、バンク3のSRAM28はリード動作を行なう。
セレクタ23は、アドレスの下位2ビットが“00”のときに、バンク0のSRAM21からの読出しデータを選択してALU1に出力し、アドレスの下位2ビットが“01”のときに、バンク1のSRAM22からの読出しデータを選択してALU1に出力し、アドレスの下位2ビットが“10”のときに、バンク2のSRAM27からの読出しデータを選択してALU1に出力し、アドレスの下位2ビットが“11”のときに、バンク3のSRAM28からの読出しデータを選択してALU1に出力する。
この演算システムは、連続するアドレスに±1、±2の制約がある演算回路に適用される。
図10は、本発明の第6の実施の形態における演算システムの動作を説明するためのタイミングチャートである。サイクルT0において、バンク0のSRAM21からの読出し動作(リード[0])が行なわれ、セレクタ23はこのバンク0のSRAM21からの読出しデータを選択してALU1に出力する。
サイクルT1において、ALU1はサイクルT0の読出しデータと、図示しないメモリ(図2に示すメモリセルマットAに対応するメモリ)から読出された他方の演算対象データとの演算(演算[0])を行なうと共に、その演算結果をバンク0のSRAM21に書込む(ライト[0])。このサイクルT1においては、バンク1のSRAM22からの読出し動作(リード[1])が行なわれ、セレクタ23はこのバンク1のSRAM22からの読出しデータを選択してALU1に出力する。
サイクルT2において、ALU1はサイクルT1の読出しデータと、他方の演算対象データとの演算(演算[1])を行なうと共に、その演算結果をバンク1のSRAM22に書込む(ライト[1])。このサイクルT2においては、バンク2のSRAM27からの読出し動作(リード[2])が行なわれ、セレクタ23はこのバンク2のSRAM27からの読出しデータを選択してALU1に出力する。
サイクルT3において、ALU1はサイクルT2の読出しデータと、他方の演算対象データとの演算(演算[2])を行なうと共に、その演算結果をバンク2のSRAM27に書込む(ライト[2])。このサイクルT3においては、バンク3のSRAM28からの読出し動作(リード[3])が行なわれ、セレクタ23はこのバンク3のSRAM28からの読出しデータを選択してALU1に出力する。
以降、同様の処理が行なわれ、1つのバンクからの読出し動作を行なっているときに、他のバンクへの演算結果の書込み動作が行なわれる。
以上説明したように、本実施の形態における演算システムによれば、アドレスの下位2ビットに応じて、1つのバンクからの読出し動作を行なうと共に、他のバンクへの演算結果の書込み動作を行なうようにしたので、連続するアドレスに±1、±2の制約がある演算回路に適用できる。また、同一バンクに対して連続アクセスが起こらないため、インタリーブアクセスが行なえ、高スループットの演算が可能となった。
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
ビットシリアル演算を説明するための図である。 ビットシリアル演算の動作を説明するためのタイミングチャートである。 本発明の第1の実施の形態における演算システムの概略構成を示すブロック図である。 本発明の第1の実施の形態における演算システムの動作を説明するためのタイミングチャートである。 本発明の第2の実施の形態における演算システムの概略構成を示すブロック図である。 本発明の第3の実施の形態における演算システムの概略構成を示すブロック図である。 本発明の第4の実施の形態における演算システムの概略構成を示すブロック図である。 本発明の第5の実施の形態における演算システムの概略構成を示すブロック図である。 本発明の第6の実施の形態における演算システムの概略構成を示すブロック図である。 本発明の第6の実施の形態における演算システムの動作を説明するためのタイミングチャートである。
符号の説明
1 ALU、2 メモリ、11,23 セレクタ、12,13,24,25 FF、14,26 コンパレータ、21,22,27,28 SRAM。

Claims (8)

  1. データを複数部分に分けて順番に演算を行なう演算システムであって、
    前記複数部分のデータの演算を行なう演算手段と、
    データの読出しと前記演算手段による演算結果の書込みとを同時に行なう、前記複数部分のデータのそれぞれに対応する記憶手段とを含み、
    前記記憶手段は、第1のデータの読出しと前記演算手段による第1の演算結果の書込みとを行なう第1のバンクメモリと、
    前記第1のバンクメモリが第1の演算結果の書込みを行なっているときに第2のデータの読出しを行ない、前記演算手段による第2の演算結果の書込みを行なう第2のバンクメモリと、
    前記第1のバンクメモリから読出された第1のデータと、前記第2のバンクメモリから読出された第2のデータとを前記演算手段に選択的に出力する選択手段とを含む、演算システム。
  2. 前記第1のバンクメモリおよび前記第2のバンクメモリは、シングルポートスタティックランダムアクセスメモリによって構成される、請求項1記載の演算システム。
  3. 前記第1のバンクメモリおよび前記第2のバンクメモリは、デュアルポートスタティックランダムアクセスメモリによって構成される、請求項1記載の演算システム。
  4. 前記記憶手段はさらに、前記第1のバンクメモリまたは前記第2のバンクメモリに書込む演算結果を保持する保持手段と、
    前記第1のバンクメモリまたは前記第2のバンクメモリへの演算結果の書込み時におけるアドレスと、その次のデータ読出し時のアドレスとが一致するか否かを判定する判定手段とを含み、
    前記選択手段は、前記判定手段によってアドレスが一致すると判定された場合、前記保持手段に保持されるデータを前記演算手段に出力する、請求項1〜3のいずれかに記載の演算システム。
  5. 前記記憶手段はさらに、前記第1のバンクメモリまたは前記第2のバンクメモリに書込む演算結果を保持する保持手段を含み、
    前記選択手段は、外部からアドレスが不変であることを示す信号がアサートされた場合、前記保持手段に保持されるデータを前記演算手段に出力する、請求項1〜3のいずれかに記載の演算システム。
  6. 前記演算手段は、前記複数部分のデータのそれぞれの演算を行なう演算回路と、
    前記第1のバンクメモリまたは前記第2のバンクメモリに書込む演算結果を保持する保持手段と、
    前記第1のバンクメモリまたは前記第2のバンクメモリへの演算結果の書込み時におけるアドレスと、その次のデータ読出し時のアドレスとが一致するか否かを判定する判定手段と、
    前記判定手段による判定結果に応じて、前記記憶手段からの読出しデータと前記保持手段に保持されるデータとを前記演算回路に選択的に出力する選択手段とを含む、請求項1〜3のいずれかに記載の演算システム。
  7. 前記演算手段は、前記複数部分のデータのそれぞれの演算を行なう演算回路と、
    前記第1のバンクメモリまたは前記第2のバンクメモリに書込む演算結果を保持する保持手段と、
    外部から入力されるアドレスが不変であることを示す信号に応じて、前記記憶手段からの読出しデータと前記保持手段に保持されるデータとを前記演算回路に選択的に出力する選択手段とを含む、請求項1〜3のいずれかに記載の演算システム。
  8. 前記第1のバンクメモリおよび前記第2のバンクメモリは、前記演算手段による演算結果の書込み時におけるアドレスとして、直前のデータ読出し時のアドレスを使用する、請求項1〜7のいずれかに記載の演算システム。
JP2005111072A 2005-04-07 2005-04-07 演算システム Pending JP2006293538A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005111072A JP2006293538A (ja) 2005-04-07 2005-04-07 演算システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005111072A JP2006293538A (ja) 2005-04-07 2005-04-07 演算システム

Publications (1)

Publication Number Publication Date
JP2006293538A true JP2006293538A (ja) 2006-10-26

Family

ID=37414074

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005111072A Pending JP2006293538A (ja) 2005-04-07 2005-04-07 演算システム

Country Status (1)

Country Link
JP (1) JP2006293538A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018128963A (ja) * 2017-02-10 2018-08-16 株式会社東芝 ビデオサーバ、放送システム、及びメモリ制御方法
US11094371B2 (en) 2019-03-11 2021-08-17 Samsung Electronics Co., Ltd. Memory device for processing operation and method of operating the same

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391757A (ja) * 1986-09-25 1988-04-22 テクトロニックス・インコーポレイテッド メモリアクセス装置
JPH0497482A (ja) * 1990-08-16 1992-03-30 Fujitsu Ltd ベクトル演算装置
JPH0635788A (ja) * 1992-07-13 1994-02-10 Hitachi Ltd リードモディファイライト処理方法と演算処理装置
JPH11184761A (ja) * 1997-12-19 1999-07-09 Nec Kofu Ltd リードモディファイライト制御システム
JP2000173261A (ja) * 1998-12-03 2000-06-23 Lucent Technol Inc 修正されたピンポンモ―ドで動作するメモリ
JP2002300597A (ja) * 2001-03-29 2002-10-11 Toshiba Corp ディジタルフィルタ処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6391757A (ja) * 1986-09-25 1988-04-22 テクトロニックス・インコーポレイテッド メモリアクセス装置
JPH0497482A (ja) * 1990-08-16 1992-03-30 Fujitsu Ltd ベクトル演算装置
JPH0635788A (ja) * 1992-07-13 1994-02-10 Hitachi Ltd リードモディファイライト処理方法と演算処理装置
JPH11184761A (ja) * 1997-12-19 1999-07-09 Nec Kofu Ltd リードモディファイライト制御システム
JP2000173261A (ja) * 1998-12-03 2000-06-23 Lucent Technol Inc 修正されたピンポンモ―ドで動作するメモリ
JP2002300597A (ja) * 2001-03-29 2002-10-11 Toshiba Corp ディジタルフィルタ処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018128963A (ja) * 2017-02-10 2018-08-16 株式会社東芝 ビデオサーバ、放送システム、及びメモリ制御方法
US11094371B2 (en) 2019-03-11 2021-08-17 Samsung Electronics Co., Ltd. Memory device for processing operation and method of operating the same

Similar Documents

Publication Publication Date Title
JP5461533B2 (ja) ローカル及びグローバルのデータ共有
JP4934356B2 (ja) 映像処理エンジンおよびそれを含む映像処理システム
US8199910B2 (en) Signature generation apparatus and signature verification apparatus
US9342478B2 (en) Processor with reconfigurable architecture including a token network simulating processing of processing elements
JP2011118743A (ja) ベクトル型計算機及びベクトル型計算機の命令制御方法
JP2006018413A (ja) プロセッサおよびパイプライン再構成制御方法
CN114341802A (zh) 用于执行存储器内处理操作的方法及相关存储器装置和系统
CN112241290A (zh) 用于在并行处理单元中有效执行数据规约的技术
JP4865016B2 (ja) プロセッサ
JP5821332B2 (ja) リコンフィグ可能な集積回路装置
EP1193594A2 (en) Register renaming apparatus and processor
JP2006293538A (ja) 演算システム
CN112486907A (zh) 可重构处理器上多层循环任务的硬件实现方法
JP2010033420A (ja) キャッシュ回路及びキャッシュメモリ制御方法
CN104317554A (zh) 用于simd处理器的寄存器文件数据读写装置和方法
CN112486904A (zh) 可重构处理单元阵列的寄存器堆设计方法及装置
KR20080027175A (ko) 메모리 액세스 장치
JP2002229970A (ja) Simd積和演算方法、積和演算回路、および、半導体集積回路装置
CN112540793A (zh) 支持多访存模式的可重构处理单元阵列及控制方法、装置
JP2008102599A (ja) プロセッサ
JP5888177B2 (ja) 演算処理装置及び演算処理装置の制御方法
JPH06223166A (ja) 画像処理用汎用プロセッサ
JP2006202329A (ja) システムlsiの設計方法及びこれを記憶した記録媒体
JP3771682B2 (ja) ベクトル処理装置
JP2883465B2 (ja) 電子計算機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080311

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110614

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111108