JP2013512511A - 複数メモリ特定用途向けデジタル信号プロセッサ - Google Patents

複数メモリ特定用途向けデジタル信号プロセッサ Download PDF

Info

Publication number
JP2013512511A
JP2013512511A JP2012541208A JP2012541208A JP2013512511A JP 2013512511 A JP2013512511 A JP 2013512511A JP 2012541208 A JP2012541208 A JP 2012541208A JP 2012541208 A JP2012541208 A JP 2012541208A JP 2013512511 A JP2013512511 A JP 2013512511A
Authority
JP
Japan
Prior art keywords
digital signal
data unit
signal processors
memory
instruction
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
JP2012541208A
Other languages
English (en)
Other versions
JP2013512511A5 (ja
Inventor
ジュニア クレイ エス グロスター
ワンダ ディー ゲイ
マイケラ イー アモー
Original Assignee
ハワード ユニバーシティ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ハワード ユニバーシティ filed Critical ハワード ユニバーシティ
Publication of JP2013512511A publication Critical patent/JP2013512511A/ja
Publication of JP2013512511A5 publication Critical patent/JP2013512511A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7885Runtime interface, e.g. data exchange, runtime control

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Complex Calculations (AREA)

Abstract

回路基板(210)と、この回路基板上に実装された1又はそれ以上のデジタル信号プロセッサ(100)とを含む集積回路装置(200)を提供する。デジタル信号プロセッサ(100)は、データユニット(120)及び制御ユニット(110)を含み、データユニットは、特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コア(124)と、特定のアプリケーションを実行するためのコマンドを制御ユニット及びデータユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリ(122)とを含み、制御ユニットは、複数のメモリバンク(130、140)と関数コアの間の、特定のアプリケーションを実行するためのデータの流れを制御するように構成され、複数のメモリバンクは、1又はそれ以上のデジタル信号プロセッサの各々に結合されるとともに、回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンク(130)を含む。
【選択図】図1

Description

〔関連出願との相互参照〕
本出願は、2009年11月25日に出願された「複数メモリ特定用途向けデジタル信号プロセッサ」という名称の米国仮特許出願第61/264,334号の利益を主張するものであり、この特許出願の内容及び開示は、その全体が引用により本明細書に組み入れられる。
本発明は、一般にデジタル信号プロセッサに関し、より詳細には、特定用途向けデジタル信号プロセッサに関する。
この10年間で、高容量の消費者製品に組み込みアプリケーションを実装するためのデジタル信号プロセッサ(DSP)の人気がますます高まってきた。これらのDSPは、組み込みアプリケーションに必要な高性能を低価格で提供するが、既存のプロセッサにより提供される正確さ及び精密さを維持しながら性能及び速度をより高めることができるDSPが依然として必要とされている。これらの新たなプロセッサは、高性能計算用途のための、スーパーコンピュータに代わる低価格の選択肢を提供することができる。
Gloster他、「2D離散コサイン変換を高速実行するための構成可能なデジタル信号プロセッサ設計の最適化(Optimizing the Design of a Configurable Digital Signal Processor for Accelerated Execution of the 2−D Discrete Cosine Transform)」2006年、第39回システム科学に関するハワイ会議、IEEE0−7695−2507−5/06 Gay、Wanda、「構成可能なデジタル信号プロセッサ合成のための最適化ツール及び技術(Optimization Tools and Techniques for Configurable Digital Signal Processor Synthesis)」ハワード大学、UMI第3331459号、プロクエスト出版、2009年1月27日
本発明のいくつかの実施形態は、特定のデジタル信号処理アルゴリズムを実行するデジタル信号プロセッサ(ASDSP)を含む集積回路装置を提供することにより、上記の及びその他の必要性に有利に対処する。
1つの実施形態では、集積回路装置が、回路基板と、この回路基板上に実装された1又はそれ以上のデジタル信号プロセッサとを備え、各デジタル信号プロセッサは、データユニット及び制御ユニットを含み、データユニットは、特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コアと、特定のアプリケーションを実行するためのコマンドを制御ユニット及びデータユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリとを含み、制御ユニットは、複数のメモリバンクと関数コアの間の、特定のアプリケーションを実行するためのデータの流れを制御するように構成され、複数のメモリバンクは、1又はそれ以上のデジタル信号プロセッサの各々に結合されるとともに、回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクを含む。
別の実施形態では、方法が、1又はそれ以上のデジタル信号プロセッサを生成するステップを含み、この1又はそれ以上のデジタル信号プロセッサの各々を生成するステップが、データユニットを生成するステップと、制御ユニットを生成するステップとを含み、データユニットを生成するステップは、特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コアを生成するステップと、特定のアプリケーションを実行するためのコマンドを制御ユニット及びデータユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリを生成するステップとを含み、制御ユニットは、複数のメモリバンクと関数コアの間の、特定のアプリケーションを実行するためのデータの流れを制御するように構成され、前記方法は、1又はそれ以上のデジタル信号プロセッサを回路基板上に搭載するステップと、1又はそれ以上のデジタル信号プロセッサの各々を、回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクに結合するステップを含む、1又はそれ以上のデジタル信号プロセッサの各々を複数のメモリバンクに結合するステップとをさらに含む。
さらに別の実施形態では、方法を実行するためのコンピュータ可読命令を有する有形コンピュータ可読記憶媒体が、1又はそれ以上のデジタル信号プロセッサを生成するステップを含み、この1又はそれ以上のデジタル信号プロセッサの各々を生成するステップが、データユニットを生成するステップと、制御ユニットを生成するステップとを含み、データユニットを生成するステップは、特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コアを生成するステップと、特定のアプリケーションを実行するためのコマンドを制御ユニット及びデータユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリを生成するステップとを含み、制御ユニットは、複数のメモリバンクと関数コアの間の、特定のアプリケーションを実行するためのデータの流れを制御するように構成され、前記方法は、1又はそれ以上のデジタル信号プロセッサを回路基板上に搭載するステップと、1又はそれ以上のデジタル信号プロセッサの各々のデータユニットを、回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクに結合するステップを含む、1又はそれ以上のデジタル信号プロセッサの各々を複数のメモリバンクに結合するステップとをさらに含む。
以下の図面とともに示す以下のより詳細な説明から、本発明のいくつかの実施形態の態様、特徴及び利点がより明らかになるであろう。
本発明のいくつかの実施形態による例示的な複数メモリ特定用途向けデジタル信号プロセッサ(ASDSP)を示す図である。 本発明のいくつかの実施形態による非対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による非対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による非対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による対話型ASDSPの考えられる構成を示す図である。 本発明のいくつかの実施形態による、複数のASDSPを有するフィールドプログラマブルゲートアレイ(FPGA)の例示的な実施形態を示す図である。 本発明のいくつかの実施形態による、複数のASDSPを有するFPFAの第2の例示的な実施形態を示す図である。 本発明のいくつかの実施形態による、複数のASDSPを有するFPGAの第3の例示的な実施形態を示す図である。 本発明のいくつかの実施形態による、複数のASDSPを有するFPGAの第4の例示的な実施形態を示す図である。 本発明のいくつかの実施形態による例示的な関数コアを示す図である。 本発明のいくつかの実施形態による別の例示的な関数コアを示す図である。 本発明のいくつかの実施形態による、集積回路装置を作成する方法を示すフロー図である。
図面のいくつかの図を通じて、対応する参照文字は対応する構成要素を示す。当業者であれば、図中の要素は単純さ及び明確さを目的として示されるものであり、必ずしも縮尺通りではないと理解するであろう。例えば、本発明の様々な実施形態をより良く理解できるように、図中の要素の中には、他の要素に対して寸法を誇張しているものもある。また、本発明のこれらの様々な実施形態をより分かり易く示すために、商業的に実現可能な実施形態において有用又は必要な、一般的ではあるが良く理解されている要素については示していないことが多い。
以下の説明は、限定的な意味で捉えるべきではなく、例示的な実施形態の一般的原理を説明するためのものにすぎない。本発明の範囲は、特許請求の範囲に関連して決定すべきものである。
本明細書を通じて、「1つの実施形態」、「ある実施形態」、又は同様の表現に言及する場合、これらは、実施形態に関連して説明する特定の特徴、構造、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味する。従って、本明細書を通じて「1つの実施形態では」、「ある実施形態では」という表現、及び同様の表現が出現した場合、これらは、必ずというわけではないが、全て同じ実施形態を指すことができる。
いくつかの実施形態では、回路基板と、この回路基板上に実装された1又はそれ以上のデジタル信号プロセッサとを含む集積回路装置を提供する。いくつかの実施形態では、このデジタル信号プロセッサが、データユニットと、データユニットに結合された複数のメモリバンクと、制御ユニットとを含み、データユニットは、特定の数式を実行するように構成された関数コアと、特定のアプリケーションを実行するためのコマンドを制御ユニット及びデータユニットに送信する命令を記憶するように構成された命令メモリとを含み、複数のメモリバンクは、回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクを含み、制御ユニットは、複数のメモリバンクと関数コアの間の、特定のアプリケーションを実行するためのデータの流れを制御するように構成される。
特定用途向けデジタル信号プロセッサ(ASDSP)は、特定のデジタル信号処理アルゴリズムを実行する高性能の浮動小数点又は固定少数点ベクトルプロセッサである。ASDSPは、アプリケーションの計算的に集中した部分をカスタムハードウェアに置き換えることによってアプリケーションソフトウェアの障害を軽減するために使用される。1つの実施形態では、再構成可能コンピュータ編集(RCC)システムが、この手順を実行する遠隔及び再構成可能環境(RARE)ツールである。
以下で説明するように、1又はそれ以上の実施形態では、デジタル信号プロセッサが、制御ユニット及びデータユニットという2つの主な構成要素に分割される。いくつかの実施形態では、DSPアルゴリズムの原始的な数学的計算を行う完全関数コア、及びプロセッサの命令を格納する命令メモリの両方がデータユニットの構成要素である。
1又はそれ以上の実施形態では、ASDSPが中央プロセッサのライブラリに記憶される。各ASDSPは、FPGAのビットストリームとして記憶される。1又はそれ以上の実施形態では、システムがプロセッサを利用できるように、ASDSPの機能及びその他の属性を記述するモジュール定義ファイルを維持することができる。これらの実施形態では、FPGAボード上でASDSPを使用するために、ASDSP定義ファイル及びFPGA構成ファイルがいずれも必要となり得る。
図1に、1つの実施形態による複数メモリ特定用途向けデジタル信号プロセッサ(ASDSP)100を示す。ASDSP100の複数メモリプロセッサアーキテクチャは、制御ユニット110及びデータユニット120で構成される。いくつかの実施形態では、データユニット120が、命令メモリ122及び関数コア124を含む。ASDSP100は、1又はそれ以上のローカルメモリバンク130(例えば、メモリML 0〜ML l-1)及び/又は外部メモリバンク140(例えば、メモリME 0〜ME e-1)を含む複数のメモリバンクに直接接続される。1つの実施形態では、ASDSP100が、回路基板210を含む集積回路装置200上に実装される。図1に示すように、いくつかの実施形態では、例えば、このアーキテクチャがフィールドプログラマブルゲートアレイ(FPGA)200上に実装される。他の実施形態では、このASDSPを、マスクプログラマブルゲートアレイ又はカスタム集積回路(図示せず)上に実装することができる。図1に示すように、1つの例示的な実施形態では、ASDSP100がFPGA200内に搭載される。
1つの実施形態では、ASDSPが、中央プロセッサのライブラリに記憶される。各ASDSPは、FPGAビットストリームとして記憶される。いくつかの実施形態では、ASDSPをFPGAボード上で使用するために、ASDSPの機能及びその他の属性を記述するモジュール定義ファイルを維持することができる。
1つの実施形態では、制御ユニット110が、1又はそれ以上のタスクを実行する1又はそれ以上の有限状態機械である。例えば、1つの実施形態では、制御ユニット110が、メモリの読み出し及び書き込みを管理し、命令を復号し、データが利用可能になると関数コアを開始できるようにし、ホストに完了を信号送信し、及び/又は制御をホストプロセッサに戻す。1つの実施形態では、制御ユニット110が、ASDSP100内のデータの流れを制御し、複数のメモリバンク130及び/又は140の同時読み出し及び書き込みのスケジューリングを管理する。1つの実施形態では、制御ユニット110が、一定の入力データストリームを関数コア124に提供する一方で、複数のメモリバンク130及び/又は140への出力データの待ち行列を管理する。他の実施形態では、制御ユニット110が、上記に加えて又は上記とは別に、関数コア124がいつアクティブ/アイドルであるかを管理する。1つの実施形態では、制御ユニット110が、同じ数の入力及び出力を含む関数コアを備えたASDSPに非常に類似する単純な有限状態機械である。
いくつかの実施形態によれば、データユニット120が情報を処理し、レジスタ、プログラムカウンタ、命令レジスタ、メモリアドレスレジスタ、カウンタ及び/又は関数コアなどの標準的なプロセッサ要素を含む。1つの実施形態では、データユニット110が、1又はそれ以上の関数コア124を含む。1つの例示的な実施形態では、図1に示すように、データユニット120が命令メモリ122及び関数コア124を含む。1つの実施形態では、命令メモリ122が、命令セットからの1又はそれ以上の命令を含む。1又はそれ以上の実施形態によれば、命令メモリ122に含まれる各命令がフェッチされ、復号されて実行される。1つの実施形態では、命令セットが少なくとも2つの命令を含み、最小ビット数を使用して符号化される。このような実施形態では、一方の命令が特定のアプリケーションのためのものであり、他方の命令がプロセッサを停止させるためのものである。この停止命令は、プログラム実行の制御をオペレーティングシステム又はホストプロセッサに戻すものである。いくつかの実施形態では、命令セットが、データを内部レジスタ及びその他にロードして記憶するための命令をさらに含むことができる。
1つの実施形態では、各アプリケーションが固有のASDSPを定義し、従って異なる命令に同じ演算コードを再使用することができる。例えば、高速フーリエ変換(FFT)を実施するためのASDSPと離散コサイン変換(DCT)を実施するためのASDSPは、いずれも演算コードが全く同じ2つの命令を含むことができる。すなわち、いくつかの実施形態では、異なる関数コア124を有する2つのASDSPが、同じ演算コードを2つの全く異なる数式に再使用することができる。1又はそれ以上の実施形態では、ASDSP上の命令セットの演算コードを、別のASDSPに対して全体的に又は部分的に再使用することができる。
いくつかの実施形態では、小さな命令セットが、システムクロック速度の最大化に寄与する。命令数が少ないことにより、命令復号論理が最小化され、設計のクリティカルパスにおける遅延の一因となることがない。いくつかの実施形態では、特定用途向け関数コア124を使用することにより、縮小命令セットの機能が実現される。
さらに、図1に示すように、いくつかの実施形態では、命令メモリ122がデータユニット120の一部として構成され、データメモリバンク130及び140から分離される。この例示的な構成は、命令メモリからのより高速な読み出しを可能にし、従ってASDSPの速度に寄与する。
いくつかの実施形態では、関数コア124が、データユニット120の計算要素を含む。1つの実施形態では、関数コア124が、算術論理演算ユニット(ALU)に類似するが、所与のアプリケーションに必要な固定又は浮動小数点演算しか実行しない。いくつかの実施形態では、関数コア124が高度にパイプライン化され、複数の入力及び出力を有し、各サイクル中にパイプラインが満たされると、より低水準の原始関数を含む複雑な数式を効果的に計算する。
いくつかの実施形態では、関数コアを使用して、固定又は浮動小数点ベクトル演算を実行する。1つの実施形態では、関数コア124の構造が、n個の入力及び単一の出力を含むことができる。図5に、いくつかの実施形態による例示的な関数コア124を示しており、ここでは関数コア124が、レジスタR0〜R7により供給される8個の入力及び単一の出力Yを含む。1つの実施形態では、関数コア124をパイプライン化して、図5に示す関数コアと同様の2又はそれ以上の関数コアで構成することができる。1つの実施形態では、関数コア124が、実行する特定の関数に応じて最大n個の入力及びm個の出力を有することができる。1つの実施形態では、n及びmが1以上の整数である。1つの実施形態では、関数コアの入力及び出力が、各々32ビットである。
図6に、関数コア124のさらに別の例示的な実施形態を示す。図6に示す実施形態では、関数コア124が、基本関数コア(FFC)510と呼ばれる1又はそれ以上の基本構築ブロックを含み、図6にはこれらの各々を八角形で示している。1つの実施形態では、FFC510が、加算、減算、乗算又は除算などの特定の算術的原始関数を実行するパイプライン化された32ビット浮動小数点ベクトルデータ処理ユニットである。1つの実施形態によれば、FFC510が、2つの入力及び単一の出力を有する単一の基本演算を実行する。各FFC510は、そのイネーブルピン及びdoneピンを介して制御することができる。イネーブルピンは、FFC510の入力上に有効な入力データが存在するかどうかを示す。イネーブルピンは、原始的演算が開始されることも示す。doneピンは、有効な出力データが存在するかどうかを示す。FFCは、基礎関数コア(BFC)のアーキテクチャの平衡を保つための実行遅延をさらに行うことができる。1つの実施形態では、FFC510を、平衡のとれたFFCとすることにより、単一の入力から開始して単一の出力で終了するFFCを通じた全ての経路上に同じ数のパイプライン段が存在するようにすることができる。また、このような実施形態では、任意の入力から任意の出力への全ての経路が、同じ数のパイプライン段を含む。
いくつかの実施形態による、図6に長方形のユニットとして示すBFC520は、より複雑な算術演算を実行するために互いに論理的に接続された2又はそれ以上のFFCを含む。いくつかの実施形態では、BFC520の構造が、オリジナルアルゴリズムの主計算ループ内の計算に基づくことができる。従って、いくつかの実施形態では、FFC520が、ドット積、さらには信号処理変換などのより複雑な関数を計算するためにツリー状に接続される。
関数コア階層の最上位の又は最も複雑なレベルが完全関数コア(CFC)530である。完全関数コアは、指定されたASDSPのためのオリジナルDSPアルゴリズムの計算全体を実行する。1つの実施形態では、図6に示すように、CFC530が、図1に示す関数コア124である。図示のように、CFC530は、レジスタR0〜R7により供給される8つの入力と、2つの出力X及びYを含む。1つの実施形態では、各完全関数コアがn個の入力及びm個の出力を含むことができ、n及びmは1以上の整数である。いくつかの実施形態では、CFC530が、1又はそれ以上のBSC520で構成される。1つの実施形態では、CFC内のBFCの数をFPGA領域とデータメモリサイズの関数として、データの幅に焦点を合わせることができる。すなわち、FPGAが単一のBFCしかサポートできない1つの実施形態では、CFCをBFCと同等にすることができる。一方、FPGAが複数のBFCをサポートできる実施形態では、CFCをBFCの集まりとすることができる。
1つの実施形態では、関数コア124が、浮動小数点処理ユニットである。いくつかの実施形態では、浮動小数点演算を使用することにより、デジタル信号処理アルゴリズムにおける処理の結果として得られる精度が増すとともに、ハードウェアシステムのデバッグがさらに可能になる。例えば、1つの実施形態では、デバッグを目的として、ハードウェアシステム内のノードを、同じアルゴリズムの浮動小数点ソフトウェアの実施構成におけるこれらのノードの対応する行に照らしてチェックすることができる。ソフトウェアにより生成された浮動小数点値を、ハードウェア版のアルゴリズムにより生成された浮動小数点値に照らしてチェックすることにより、ハードウェアの機能を容易に検証することができる。2つの値が等しければ、ハードウェアの実施構成にエラーはない。別の実施形態では、関数コア124を固定小数点関数コアとすることができる。上述したように、いくつかの実施形態では、各ASDSP内に複数の関数コアが存在することができる。従って、パイプラインが満たされると、ハードウェアがクロックサイクルごとに結果を生じるので、複雑な演算計算を完了するために必要な総サイクル数を大幅に減少させることができる。
1つの実施形態では、ASDSPに接続されるメモリバンク130及び140の数を、2個〜数百個のメモリバンクとすることができる。1つの実施形態では、メモリバンクの数が少なくとも2個より多い。別の実施形態では、メモリバンクの数を少なくとも10個より多くすることができ、さらに別の実施形態では、メモリバンクの数を少なくとも100個より多くすることができる。1つの実施形態では、提案するASDSP100が、通常、数十個〜数百個のメモリバンク130及び140に対応する。複数メモリのアーキテクチャは、この提案するアーキテクチャを、通常はたったの1個又は2個しか付属メモリバンクを有していない従来のDSPと区別する。すなわち、従来のプロセッサは、基板上のピンの数に限界があり、従って各ASDSPに接続できるメモリバンクの数に限界がある。ローカルなオンボードメモリを利用することにより、現在の例示的な実施形態では、1サイクル当たりの読み出しが多くなり、従って従来のプロセッサに比べてASDSPの性能を高めることができる。図1に示すように、ASDSPをオンボードの又はローカルなメモリバンク130に接続することができる。1つの実施形態では、図1に示すように、ASDSPが外部メモリバンク140にさらに接続される。別の実施形態では、ASDSPをローカルメモリバンク130又は外部メモリバンク140のみに接続することができる。
いくつかの実施形態では、外部メモリバンク140の数を、例えばFPGAボード上のピンの数及び/又はその他の構造的制限によって制限することができる。しかしながら、ローカルメモリバンク130を使用することで、大量のメモリバンクを収容することができる。いくつかの実施形態では、大量のメモリバンクを収容することで、各メモリバンク130及び/又は140からの/への同時読み出し/同時書き込みが可能になる。従って、1又はそれ以上の実施形態では、メモリアクセスを含む、計算に必要な総サイクル数を大幅に減少させることができる。
1つの実施形態では、例えば、外部メモリバンク140とローカルメモリバンク130をいずれも使用する場合、外部メモリバンクを、初期化用及びローカルメモリバンク130へのデータ提供用に使用することができる。1つの実施形態では、ASDSPに接続されるローカルメモリバンクの数を、関数コアの入力及び出力の数と同じにすることができる。いくつかの実施形態では、l個のローカルメモリバンク130を利用して、同時に実行できる全ての読み出し及び/又は書き込みのために、ASDSP100にデータを提供するためのメモリバンク130が存在するようにすることができる。このような実施形態では、外部メモリバンク140からローカルメモリバンク130にデータを供給し、このローカルメモリバンク130が、ASDSPの特定のアプリケーションを実行するために必要なデータをさらにプロセッサに供給することができる。
1つの実施形態では、提案する複数メモリASDSP100を実現するためにFPGA200を使用する。1つの実施形態では、FPGA200が、ブロックRAMと呼ばれる何百もの小さなメモリバンクを含む。従来のプロセッサのように単一のメインメモリに接続されるのではなく、ASDSP100は、外部メモリバンク140の他にも多くのローカルメモリバンク130に接続して、その入力/出力データ帯域幅を大幅に増加させる。1つの実施形態では、n個のメモリバンクを有するASDSPが、単一のクロックサイクルでn回の同時読み出し/書き込みを行うことができる。1又はそれ以上の実施形態では、メモリバンクの各々が、単一のクロックサイクルで32又は64ビットのデータを転送することができる。FPGAの最大クロック速度は、通常のマイクロプロセッサのそれよりも桁違いに遅いので、いくつかの実施形態においてFPGAを使用することにより、ASDSPが必要とする電力が通常のプロセッサよりも少なくて済むようになる。
1又はそれ以上の実施形態では、図示のように、FPGA上で実現される制御ユニット110とデータユニット120の組み合わせがデジタル信号プロセッサを構成する。計算は、データユニット120が制御ユニット110と連動することによって行われる。
従って、いくつかの実施形態に関しては、各ASDSP100が、複数のメモリバンク130及び140と通信するのに必要なハードウェア、及び各特定のアプリケーションの特徴である数式を計算する関数コアハードウェアを含む。いくつかの実施形態では、ASDSP100が、小さな命令セットを有し、特定用途向け関数コアを含み、複数のメモリバンクへの同時読み出し/書き込み動作を行うことができる。
図1のASDSP100は、ローカルメモリバンク及び外部メモリバンクのいずれとも通信する非対話型ASDSPとして示しているが、いくつかの異なる実施形態では、各ASDSP100を、ローカルメモリバンク及び/又は外部メモリバンクに接続された非対話型又は対話型ASDSPのいずれの形で構成してもよいと理解されたい。図2A〜図2Cに、非対話型ASDSP100の3つの考えられる構成を示す。1つの実施形態では、非対話型ASDSP100、すなわち他のASDSPとメモリバンクを共有しないASDSPを、複数のローカルメモリバンクML 0〜ML l-1に接続された図2Aに示すASDSP−Lのようにローカルメモリのみに接続される(ASDSP−L)ように、複数のローカルメモリML 0〜ML l-1及び外部メモリME 0〜ME e-1に接続された図2Bに示すASDSP−LEのようにローカルメモリと外部メモリの両方に接続される(ASDSP−LE)ように、或いは複数の外部メモリME 0〜ME e-1に接続された図2Cに示すASDSP−Eのように外部メモリのみに接続される(ASDSP−E)ように構成することができる。
別の実施形態では、ASDSPを対話型DSPとして構成して、メモリバンクの1又はそれ以上を別のASDSPと共有するようにすることができる。図3A〜図3Dに、1又はそれ以上の実施形態による対話型ASDSP100の考えられる構成を示す。これらの対話型ASDSP100は、各ASDSP100が、複数の共有ローカルメモリMS0〜MS s-1に接続された図3Aに示すASDSP−Sのように共有ローカルメモリのみに接続される(ASDSP−S)ように、複数の共有ローカルメモリMS 0〜MS s-1及び非共有ローカルメモリML 0〜ML l-1に接続された図3Bに示すASDSP−LSのように共有ローカルメモリ及び共有されていないローカルメモリに接続される(ASDSP−LS)ように、複数の共有ローカルメモリMS 0〜MS s-1及び外部メモリME 0〜ME e-1に接続された図3CのASDSP−SEのように共有ローカルメモリ及び外部メモリに接続される(ASDSP−SE)ように、或いは複数の共有ローカルメモリMS 0〜MS s-1と、非共有ローカルメモリML 0〜ML l-1と、外部メモリME 0〜ME e-1とに接続された図3Dに示すASDSP−LSEのようにローカルメモリ、共有ローカルメモリ、及び外部メモリに接続される(ASDSP−LSE)ように構成することができる。
1つの実施形態では、同じFPGA200内に複数の対話型ASDSP100を統合することができる。図4A、図4B、図4C及び図4Dに、2又はそれ以上のASDSP100が配置されたFPGA200の例示的な実施形態を示す。図4Aは、第1のASDSP100a及び第2のASDSP100bが配置されたFPGA200を示す図である。この例示的な実施形態では、ASDSP100aを、非共有ローカルメモリバンク130a及び共有ローカルメモリバンク130bの両方を有するASDSP−LSとして示している。さらに、ASDSP100bを、共有ローカルメモリバンク130b及び外部メモリバンク140と通信するASDSP−SEとして示している。従って、図4Aの例示的な実施形態では、ASDSP100a及び100bは、ローカルメモリバンク130bを共有する対話型ASDSPである。
図4Bには、3つのASDSP100c、100d及び100eが配置されるように構成された、別の例示的な実施形態によるFPGA200を示している。図示のように、ASDSP100cは、共有ローカルメモリ130a及び外部メモリ140aに接続される。さらに、ASDSP100dは、共有ローカルメモリバンク130aに接続されるとともに、共有ローカルメモリバンク130bにさらに接続される。さらに図4Bに示すように、ASDSP100eは、共有ローカルメモリバンク130b、ローカルメモリバンク130c、及び外部メモリバンク140bと通信する。
図4Cは、2つのASDSP100を有するFPGA200の別の実施形態を示す図である。ASDSP100fを、共有ローカルメモリバンク130に接続された形で示しており、ASDSP100gも、同じ共有ローカルメモリバンク130、及び外部メモリバンク140に接続される。さらに、図4Dは、2つのASDSP100h及び100iが配置されたFPGA200のさらに別の例示的な実施形態を示す図である。図示のように、ASDSP100hは、共有ローカルメモリバンク130及び外部メモリバンク140aと通信し、ASDSP100iも、共有ローカルメモリバンク130に接続されるとともに、外部メモリバンク140bにさらに接続される。なお、上記の図は、FPGAの例示的な実施形態を示すものであり、いくつかの実施形態では、1又はそれ以上のASDSPを有するFPGA200の異なる変形例を使用することができる。
1つの実施形態では、各々が特定のDSPアルゴリズムを実行する高性能デジタル信号プロセッサのライブラリが提供される。各プロセッサは、小さな命令セットを含んで特定のアルゴリズムを実施する。1又はそれ以上の実施形態では、これらの特定アルゴリズム向けデジタル信号プロセッサ(ASDSP)を使用して、高水準DSPアプリケーションの計算的に集中した部分をカスタムハードウェアに置き換えることにより、ソフトウェアの障害を軽減する。
1つの実施形態では、各ASDSPが、実行のために市販の構成可能な演算器に個別に搭載される。このシステムの魅力的な特徴は、FPGAなどの演算器を、理論的に無限数のDSPアルゴリズムに合わせて再プログラムできる点である。
合成されたプロセッサの各々は、サイズを減少させて命令復号論理の速度を高める小さな命令セットを有する。1つの実施形態では、バックエンド編集システムを使用して、ビットストリーム合成の過程を自動化する。ライブラリ内の各ビットストリームを使用して、FPGAを、特定アルゴリズム向けのデジタル信号プロセッサとして機能するようにプログラムする。
1つの実施形態では、C/C++などの高水準プログラミング言語で記述されたDSPアルゴリズムがシステムに入力される。1又はそれ以上の実施形態では、システムが、この高水準の記述を、生成/合成できる個別化された高性能プロセッサのVHDLモデルに変換する。この生成され個別化されたプロセッサは、オリジナルアルゴリズムを、典型的な市販の合成ツールを使用するマイクロプロセッサよりも大幅に速く実行する。
1つの実施形態では、システムが、まずDSPアルゴリズムの高水準動作記述をプロセッサレベルの記述に変換する。1つの実施形態では、システムが、DSPアルゴリズムを、アルゴリズムに合わせた命令を含むプロセッサ記述に変換する。1又はそれ以上の実施形態では、このプロセッサ記述が、同じプロセッサの構造的な/レジスタ転送レベル(RTL)の記述に変換される。1つの実施形態では、プロセッサの構造的な/RTLモデルが生成されると、市販のツールを使用して、論理合成、及び配置及びルーティングを行うことができる。1又はそれ以上の実施形態では、この処理の結果が、FPGA内にロードされる準備ができたFPGAビットストリームとなる。
1又はそれ以上の実施形態では、システムにDSPアルゴリズムが入力され、このアルゴリズムを使用してデジタル信号プロセッサのプロセッサレベルの記述を生成又は作成する。この中間疑似VHDL記述が、VHDL内でも指定される同じデジタル信号プロセッサの合成可能な構造的な/レジスタ転送レベルの記述に変換される。システムの最終段階は、論理合成及び配置及びルーティングに関与する。この段階で、FPGAをプログラムするためのハードウェア構成ファイル又はFPGAビットストリームが生成される。
このシステムの目標は、利用可能なFPGAリソース及びメモリを最大に利用する特定アルゴリズム向けのDSPを作り出すことである。これは、アルゴリズムを実行するのに必要な総クロックサイクル数を最小化するために実施される効果的なリソース割り当て(RA)及びスケジューリングを通じて達成される。利用可能なFPGAリソースを効率的かつ高度に利用することにより、プロセッサのスループットが増し、システムの性能が向上する。RAは、利用可能なFPGA領域及び利用可能なメモリ数を所与として、FPGA領域の利用度を最大化する完全な関数コアを定義するという課題を解決する。最後に、DSPアルゴリズムの計算部分を、各関数コアを使用できる利用可能なタイムスロットにマッピングすることにより、スケジューリングが実行される。
図7は、1又はそれ以上の実施形態による、複数メモリ特定用途向けデジタル信号プロセッサ(ASDSP)を含む集積回路装置を実現する方法のフロー図である。
まず、ステップ710においてデータユニットを生成する。いくつかの実施形態によれば、このデータユニットは情報を処理し、レジスタ、プログラムカウンタ、命令レジスタ、メモリアドレスレジスタ、カウンタ及び/又は関数コアなどの標準的なプロセッサ構成要素を含む。いくつかの実施形態では、データユニットが、命令メモリ及び関数コアを含む。
1つの実施形態では、ステップ710において、ASDSPにより実行されるアプリケーションを定義する1又はそれ以上の関数コアを生成する。1つの実施形態では、上述したように、関数コアがデータユニットの計算要素を含む。1つの実施形態では、関数コアを実現するステップが、特定のDSPアルゴリズムを受け取るステップと、このアルゴリズムを実行するための演算の組を生成するステップとを含む。1つの実施形態では、この演算の組が、利用可能なFPGAリソース及びメモリを最大に利用するように生成される。1つの実施形態では、次にこれらの演算の1又はそれ以上が、データユニットの関数コアとして実施される。1つの実施形態では、関数コアが演算論理ユニット(ALU)に類似するが、所与のアプリケーションに必要な固定又は浮動小数点演算しか実行しない。いくつかの実施形態では、関数コア124が高度にパイプライン化され、複数の入力及び出力を有し、各サイクル中にパイプラインが満たされると、より低水準の原始関数を含む複雑な数式を効果的に計算する。
1つの実施形態では、上述したように、この関数コアを、1又はそれ以上の基本関数コア、基礎関数コア及び/又は完全関数コアの組み合わせとすることができる。1つの実施形態では、関数コアの階層構造が、回路装置のリソース及び材料を最大に利用するようにされる。上述したように、図5には、いくつかの実施形態による、ステップ710で生成された例示的な関数コアを示しており、ここでは関数コア124が、レジスタR0〜R7により供給される8個の入力及び単一の出力Yを含む。1つの実施形態では、関数コア124をパイプライン化して、図5に示す関数コアと同様の2又はそれ以上の関数コアで構成することができる。1つの実施形態では、関数コア124が、実行する特定の関数に応じて最大n個の入力及びm個の出力を有することができる。1つの実施形態では、関数コアの入力及び出力が、各々32ビットである。
さらに、ステップ710において、データユニットの一部として命令メモリを生成する。1つの実施形態では、この命令メモリが、命令セットからの1又はそれ以上の命令を含む。1又はそれ以上の実施形態によれば、命令メモリ122に含まれる各命令がフェッチされ、復号されて実行される。1つの実施形態では、命令セットが少なくとも2つの命令を含み、最小ビット数を使用して符号化される。このような実施形態では、一方の命令が特定のアプリケーションのためのものであり、他方の命令がプロセッサを停止させるためのものである。この停止命令は、プログラム実行の制御をオペレーティングシステム又はホストプロセッサに戻すものである。いくつかの実施形態では、命令セットが、ロード及び記憶のための命令、並びに様々な他のコマンド及び/又は関数を実行するためのその他の命令を含むことができる。
1つの実施形態では、各アプリケーションが固有のASDSPを定義し、従って異なる命令に同じ演算コードを再使用することができる。例えば、高速フーリエ変換(FFT)を実施するためのASDSPと離散コサイン変換(DCT)を実施するためのASDSPは、いずれも演算コードが全く同じ2つの命令を含むことができる。すなわち、いくつかの実施形態では、異なる関数コアを有する2つのASDSPが、同じ演算コードを2つの全く異なる数式に再使用することができる。1又はそれ以上の実施形態では、ASDSP上の命令セットの演算コードを、別のASDSPに対して全体的に又は部分的に再使用することができる。
いくつかの実施形態では、小さな命令セットが、システムクロック速度の最大化に寄与する。命令数が少ないことにより、命令復号論理が最小化され、設計のクリティカルパスにおける遅延の一因となることがない。いくつかの実施形態では、特定用途向け関数コアを使用することにより、縮小命令セットの機能が実現される。
いくつかの実施形態では、命令メモリがデータユニットの一部として構成され、データメモリバンクから分離される。この例示的な構成は、命令メモリからのより高速な読み出しを可能にし、従ってASDSPの速度に寄与する。
次に、ステップ720において、制御ユニットを生成する。1つの実施形態では、制御ユニットが、1又はそれ以上のタスクを実行する1又はそれ以上の有限状態機械である。例えば、1つの実施形態では、制御ユニットが、メモリの読み出し及び書き込みを管理し、命令を復号し、データが利用可能になると関数コアを開始できるようにし、ホストに完了を信号送信し、及び/又は制御をホストプロセッサ及び/又はオペレーティングシステムに戻す。1つの実施形態では、制御ユニットが、ASDSP100内のデータの流れを制御し、複数のメモリバンクの同時読み出し及び書き込みのスケジューリングを管理する。1つの実施形態では、制御ユニットが、一定の入力データストリームを関数コアに提供する一方で、複数のメモリバンクへの出力データの待ち行列を管理する。他の実施形態では、制御ユニットが、上記に加えて又は上記とは別に、関数コアがいつアクティブ/アイドルであるかを管理する。1つの実施形態では、制御ユニットが、同じ数の入力及び出力を含む関数コアを備えたASDSPに非常に類似する1又はそれ以上の単純な有限状態機械である。
1つの実施形態では、ステップ710及び720が完了すると、ASDSPが中央プロセッサのライブラリに記憶される。各ASDSPは、FPGAビットストリームとして記憶される。いくつかの実施形態では、ASDSPをFPGAボード上で使用するために、ASDSPの機能及びその他の属性を記述するモジュール定義ファイルを維持することができる。
ステップ730において、例えばFPGAなどの集積回路装置の回路基板上にデータユニット及び制御ユニットを搭載する。1つの実施形態では、データユニット及び制御ユニットの一方又は両方が、FPGA上にロードされるように構成されたビットストリームを含む。なお、上述した例示的な実施形態では、このアーキテクチャがフィールドプログラマブルゲートアレイ(FPGA)上に実装される。他の実施形態では、マスクプログラマブルゲートアレイ又はカスタム集積回路(図示せず)上にASDSPを実装することができる。
1又はそれ以上の実施形態では、FPGAなどの回路装置が複数のローカルメモリブロックを含むとともに、外部メモリバンクに結合されたピンをさらに含むことができる。ステップ740において、制御ユニット及びデータユニットを、1又はそれ以上のローカルメモリバンク(例えば、図1のメモリML 0〜ML l-1)及び/又は外部メモリバンク(例えば、図1のメモリME 0〜ME e-1)を含むいくつかのメモリバンクに直接結合する。1つの実施形態では、ASDSPが、回路基板を含む集積回路装置上に実装される。
このようにして、上記の方法は、利用可能なFPGAリソース及びメモリを最大に利用する特定アルゴリズム/用途向けDSPを生成する。これは、アルゴリズムを実行するのに必要な総クロックサイクル数を最小化するために実施される効果的なリソース割り当て(RA)及びスケジューリングを通じて達成される。利用可能なFPGAリソースを効率的かつ高度に利用することにより、プロセッサのスループットが増し、システムの性能が向上する。RAは、利用可能なFPGA領域及び利用可能なメモリ数を所与として、FPGA領域の利用度を最大化する完全な関数コアを定義するという課題を解決する。最後に、DSPアルゴリズムの計算部分を、各関数コアを使用できる利用可能なタイムスロットにマッピングすることにより、スケジューリングが実行される。
1つの実施形態では、上記の方法を、コンピュータ可読命令を記憶する有形コンピュータ可読記憶媒体を通じて実施することができる。いくつかの実施形態では、このコンピュータ可読記憶媒体が、1又はそれ以上のプロセッサによって実行されたときに上述した方法のステップ710〜740の1又はそれ以上を実行するように構成された命令を記憶する。
本明細書で説明した機能ユニットの1又はそれ以上は、様々な種類のプロセッサが実行できるように、少なくとも部分的にソフトウェアの形で実現することができる。実行可能コードの識別されたモジュールは、例えばオブジェクト、手順、又は機能として体系化できる、例えばコンピュータ命令の1又はそれ以上の物理的又は論理的ブロックを含むことができる。これにも関わらず、識別されたモジュールの実行ファイルを物理的にともに位置付ける必要はないが、これらは、論理的に結合された場合、モジュールを含むとともにモジュールのための定められた目的を達成する、様々な場所に記憶された異なる命令を含むことができる。
1又はそれ以上の実施形態に含めることができる1又はそれ以上の構成要素の様々な追加の詳細は、(1)Gloster他、「2D離散コサイン変換を高速実行するための構成可能なデジタル信号プロセッサ設計の最適化(Optimizing the Design of a Configurable Digital Signal Processor for Accelerated Execution of the 2−D Discrete Cosine Transform)」2006年、第39回システム科学に関するハワイ会議、IEEE0−7695−2507−5/06、及び(2)Gay、Wanda、「構成可能なデジタル信号プロセッサ合成のための最適化ツール及び技術(Optimization Tools and Techniques for Configurable Digital Signal Processor Synthesis)」ハワード大学、UMI第3331459号、プロクエスト出版、2009年1月27日に記載されており、これらの文献は全て引用により本明細書に組み入れられる。
本明細書で開示した発明については、特定の実施形態、実施例及びその用途を用いて説明したが、当業者であれば、特許請求の範囲に示す本発明の範囲から逸脱することなく、本発明に数多くの修正及び変更を行うことができる。
100 ASDSP
110 制御ユニット
120 データユニット
122 命令メモリ
124 関数コア
130 ローカルメモリバンク
140 外部メモリバンク
200 FPGA/ASIC
210 回路基板

Claims (20)

  1. 回路基板と、
    前記回路基板上に実装された1又はそれ以上のデジタル信号プロセッサと、
    を備えた集積回路装置であって、各デジタル信号プロセッサが、
    データユニットと、
    制御ユニットと、
    を含み、前記データユニットが、
    特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コアと、
    前記特定のアプリケーションを実行するためのコマンドを前記制御ユニット及び前記データユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリと、
    を含み、前記制御ユニットが、複数のメモリバンクと前記関数コアの間の、前記特定のアプリケーションを実行するためのデータの流れを制御するように構成され、
    前記複数のメモリバンクが、前記1又はそれ以上のデジタル信号プロセッサの各々に結合されるとともに、前記回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクを含む、
    ことを特徴とする集積回路装置。
  2. 前記複数のメモリバンクが、前記1又はそれ以上のデジタル信号プロセッサの少なくとも1つに結合された1又はそれ以上の外部メモリバンクをさらに含む、
    ことを特徴とする請求項1に記載の集積回路装置。
  3. 前記データユニットが、命令レジスタ及びメモリアドレスレジスタなどの1又はそれ以上のレジスタ、及びプログラムカウンタなどの1又はそれ以上のカウンタのうちの少なくとも1つをさらに含む、
    ことを特徴とする請求項1に記載の集積回路装置。
  4. 前記命令メモリが、少なくとも2つの命令を含む、
    ことを特徴とする請求項1に記載の集積回路装置。
  5. 前記少なくとも2つの命令が、前記特定のアプリケーションのための第1の命令、及び前記デジタル信号プロセッサを停止するための第2の命令を含む、
    ことを特徴とする請求項4に記載の集積回路装置。
  6. 前記命令メモリが、前記特定の数式を実行するための入力データをロードするための命令、及び前記関数コアの出力データを記憶するための命令をさらに含む、
    ことを特徴とする請求項5に記載の集積回路装置。
  7. 前記命令メモリが前記データユニットの一部であり、前記データユニットに結合された前記複数のメモリバンクから分離される、
    ことを特徴とする請求項1に記載の集積回路装置。
  8. 前記関数コアが、固定小数点演算及び浮動小数点演算の一方又は両方を実行する、
    ことを特徴とする請求項1に記載の集積回路装置。
  9. 前記関数コアが、前記特定の数式を実行するための入力データを受け取るための1又はそれ以上の入力を含み、前記実行された特定の数式の結果を含む1又はそれ以上の出力をさらに含む、
    ことを特徴とする請求項1に記載の集積回路装置。
  10. 前記関数コアが、前記特定の数式の一部を各々が実行する複数の関数コアを含む、
    ことを特徴とする請求項1に記載の集積回路装置。
  11. 前記関数コアが、前記特定の数式に対してクロックサイクルごとに出力が提供されるように構成される、
    ことを特徴とする請求項1に記載の集積回路装置。
  12. 少なくとも2つのデジタル信号プロセッサを含み、該少なくとも2つのデジタル信号プロセッサが少なくとも1つの共有メモリバンクを含み、前記少なくとも2つのデジタル信号プロセッサが前記少なくとも1つの共有メモリバンクを共有する、
    ことを特徴とする請求項1に記載の集積回路装置。
  13. 前記少なくとも1つの共有メモリバンクが、前記回路基板上に統合されたローカルメモリバンクを含む、
    ことを特徴とする請求項12に記載の集積回路装置。
  14. 前記少なくとも1つの共有メモリバンクが、前記回路基板に結合された外部メモリを含む、
    ことを特徴とする請求項12に記載の集積回路装置。
  15. 1又はそれ以上のデジタル信号プロセッサを生成するステップを含む方法であって、前記1又はそれ以上のデジタル信号プロセッサの各々を生成するステップが、
    データユニットを生成するステップと、
    制御ユニットを生成するステップと、
    を含み、前記データユニットを生成するステップが、
    特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コアを生成するステップと、
    前記特定のアプリケーションを実行するためのコマンドを前記制御ユニット及び前記データユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリを生成するステップと、
    を含み、前記制御ユニットが、複数のメモリバンクと前記関数コアの間の、前記特定のアプリケーションを実行するためのデータの流れを制御するように構成され、前記方法が、
    前記1又はそれ以上のデジタル信号プロセッサを回路基板上に搭載するステップと、
    前記1又はそれ以上のデジタル信号プロセッサの各々を前記回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクに結合するステップを含む、前記1又はそれ以上のデジタル信号プロセッサの各々を前記複数のメモリバンクに結合するステップと、
    をさらに含むことを特徴とする方法。
  16. 前記データユニットを前記複数のメモリバンクに結合するステップが、前記1又はそれ以上のデジタル信号プロセッサの各々を少なくとも1又はそれ以上の外部メモリバンクに結合するステップをさらに含む、
    ことを特徴とする請求項15に記載の方法。
  17. 前記命令メモリが前記データユニットの一部であり、前記データユニットに結合された前記複数のメモリバンクから分離される、
    ことを特徴とする請求項15に記載の方法。
  18. 前記関数コアが、前記特定の数式の一部を各々が実行する1又はそれ以上の関数コアを含む、
    ことを特徴とする請求項15に記載の方法。
  19. 前記1又はそれ以上のデジタル信号プロセッサの各々が、前記回路基板上にロードされるように構成されたビットストリームを含む、
    ことを特徴とする請求項15に記載の方法。
  20. プロセッサにより実行されたときに方法を実行するように構成されたコンピュータ可読命令を有する有形コンピュータ可読記憶媒体であって、前記方法が、
    1又はそれ以上のデジタル信号プロセッサを生成するステップを含み、前記1又はそれ以上のデジタル信号プロセッサの各々を生成するステップが、
    データユニットを生成するステップと、
    制御ユニットを生成するステップと、
    を含み、前記データユニットを生成するステップが、
    特定のアプリケーションの少なくとも一部を実行するために特定の数式を実行するように構成された関数コアを生成するステップと、
    前記特定のアプリケーションを実行するためのコマンドを前記制御ユニット及び前記データユニットに送信するように構成された1又はそれ以上の命令を記憶する命令メモリを生成するステップと、
    を含み、前記制御ユニットが、複数のメモリバンクと前記関数コアの間の、前記特定のアプリケーションを実行するためのデータの流れを制御するように構成され、前記方法が、
    前記1又はそれ以上のデジタル信号プロセッサを回路基板上に搭載するステップと、
    前記1又はそれ以上のデジタル信号プロセッサの各々の前記データユニットを前記回路基板上に統合された少なくとも2又はそれ以上のローカルメモリバンクに結合するステップを含む、前記1又はそれ以上のデジタル信号プロセッサの各々を前記複数のメモリバンクに結合するステップと、
    をさらに含むことを特徴とする有形コンピュータ可読記憶媒体。
JP2012541208A 2009-11-25 2010-11-24 複数メモリ特定用途向けデジタル信号プロセッサ Pending JP2013512511A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26433409P 2009-11-25 2009-11-25
US61/264,334 2009-11-25
PCT/US2010/058100 WO2011066459A2 (en) 2009-11-25 2010-11-24 Multiple-memory application-specific digital signal processor

Publications (2)

Publication Number Publication Date
JP2013512511A true JP2013512511A (ja) 2013-04-11
JP2013512511A5 JP2013512511A5 (ja) 2014-01-16

Family

ID=44067246

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012541208A Pending JP2013512511A (ja) 2009-11-25 2010-11-24 複数メモリ特定用途向けデジタル信号プロセッサ

Country Status (4)

Country Link
US (1) US9111068B2 (ja)
EP (1) EP2504767A4 (ja)
JP (1) JP2013512511A (ja)
WO (1) WO2011066459A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017506406A (ja) * 2014-02-20 2017-03-02 スティルウォーター スーパーコンピューティング,インク. アフィン従属による単一割当プログラムを実行するための実行エンジン

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013512511A (ja) 2009-11-25 2013-04-11 ハワード ユニバーシティ 複数メモリ特定用途向けデジタル信号プロセッサ
US9703538B2 (en) * 2011-06-08 2017-07-11 Hyperion Core, Inc. Tool-level and hardware-level code optimization and respective hardware modification
CN103186501A (zh) * 2011-12-29 2013-07-03 中兴通讯股份有限公司 一种多处理器共享存储方法及系统
CN103577266B (zh) 2012-07-31 2017-06-23 国际商业机器公司 用于对现场可编程门阵列资源进行分配的方法及系统
CN104424128B (zh) * 2013-08-19 2019-12-13 上海芯豪微电子有限公司 变长指令字处理器系统和方法
EP2843616A1 (de) * 2013-08-29 2015-03-04 Sick Ag Optoelektronische Vorrichtung und Verfahren zur Aufnahme entzerrter Bilder
US10320390B1 (en) 2016-11-17 2019-06-11 X Development Llc Field programmable gate array including coupled lookup tables
US20190050263A1 (en) * 2018-03-05 2019-02-14 Intel Corporation Technologies for scheduling acceleration of functions in a pool of accelerator devices

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001500682A (ja) * 1996-09-03 2001-01-16 ザイリンクス・インコーポレイテッド プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ
JP2004533672A (ja) * 2001-03-03 2004-11-04 マルコニ ユーケイ インテレクチュアル プロパティー リミテッド コンフィギュラブルロジックデバイス上の進化プログラミング
US20060004997A1 (en) * 2001-05-04 2006-01-05 Robert Keith Mykland Method and apparatus for computing
JP4188233B2 (ja) * 2001-07-12 2008-11-26 アイピーフレックス株式会社 集積回路装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550839A (en) * 1993-03-12 1996-08-27 Xilinx, Inc. Mask-programmed integrated circuits having timing and logic compatibility to user-configured logic arrays
US6047115A (en) * 1997-05-29 2000-04-04 Xilinx, Inc. Method for configuring FPGA memory planes for virtual hardware computation
US5991908A (en) * 1997-09-29 1999-11-23 Xilinx, Inc. Boundary scan chain with dedicated programmable routing
US6120551A (en) * 1997-09-29 2000-09-19 Xilinx, Inc. Hardwire logic device emulating an FPGA
US7373440B2 (en) * 1997-12-17 2008-05-13 Src Computers, Inc. Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format
US7133822B1 (en) * 2001-03-29 2006-11-07 Xilinx, Inc. Network based diagnostic system and method for programmable hardware
US7072824B2 (en) * 2001-05-09 2006-07-04 Lucent Technologies Inc. Method and apparatus for emulating a processor
EP1271783B1 (en) * 2001-06-29 2013-07-31 Sicronic Remote KG, LLC FPGA with a simplified interface between the program memory and the programmable logic blocks
US7302667B1 (en) * 2004-04-15 2007-11-27 Altera Corporation Methods and apparatus for generating programmable device layout information
US7546572B1 (en) * 2005-09-20 2009-06-09 Xilinx, Inc. Shared memory interface in a programmable logic device using partial reconfiguration
JP2013512511A (ja) 2009-11-25 2013-04-11 ハワード ユニバーシティ 複数メモリ特定用途向けデジタル信号プロセッサ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001500682A (ja) * 1996-09-03 2001-01-16 ザイリンクス・インコーポレイテッド プログラム可能なワード長および幅を有するramブロックと専用アドレスおよびデータラインとを有するfpgaアーキテクチャ
JP2004533672A (ja) * 2001-03-03 2004-11-04 マルコニ ユーケイ インテレクチュアル プロパティー リミテッド コンフィギュラブルロジックデバイス上の進化プログラミング
US20060004997A1 (en) * 2001-05-04 2006-01-05 Robert Keith Mykland Method and apparatus for computing
JP4188233B2 (ja) * 2001-07-12 2008-11-26 アイピーフレックス株式会社 集積回路装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
JPN6014042520; Clay GLOSTER, Jr.: '"Floating Point Functional Cores for Reconfigurable Computing Systems"' The third annual Earth Science Technology Conference (ESTC),2003 , 20030625, pages:1-5, NASA Earth Science Technology Office *
JPN6014042525; Clay GLOSTER, Jr. et al.: '"Optimizing the Design of a Configurable Digital Signal Processor for Accelerated Execution of the 2' HICSS '06. Proceedings of the 39th Annual Hawaii International Conference on System Sciences, 2006. , 20060107, pages:1-8, IEEE *
JPN6016024450; '"Benefits of Embedded RAM in FLEX 10K Devices"' Product Information Bulletin 20 (PIB 20) , 199601, 1頁〜8頁, Altera Corporation *
JPN6016024451; 山口 耕作: '[FPGAの非論理機能を使いこなす  乗算器,メモリ・ブロック,クロック・マネージャの活用 第2章 デ' Design  Wave  MAGAZINE 第10巻 第4号, 20050401, 97頁〜104頁, CQ出版株式会社 *
JPN6016024452; '「ブロックRAMの使い方」' [online] , 20021012, 1頁〜8頁 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017506406A (ja) * 2014-02-20 2017-03-02 スティルウォーター スーパーコンピューティング,インク. アフィン従属による単一割当プログラムを実行するための実行エンジン

Also Published As

Publication number Publication date
EP2504767A4 (en) 2015-05-20
WO2011066459A3 (en) 2011-09-22
WO2011066459A2 (en) 2011-06-03
US9111068B2 (en) 2015-08-18
US20110167225A1 (en) 2011-07-07
EP2504767A2 (en) 2012-10-03

Similar Documents

Publication Publication Date Title
JP7264955B2 (ja) プログラム可能な最適化を有するメモリネットワークプロセッサ
JP2013512511A (ja) 複数メモリ特定用途向けデジタル信号プロセッサ
US11307873B2 (en) Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US10515046B2 (en) Processors, methods, and systems with a configurable spatial accelerator
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10387319B2 (en) Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
EP3005139B1 (en) Incorporating a spatial array into one or more programmable processor cores
US20190101952A1 (en) Processors and methods for configurable clock gating in a spatial array
US7305649B2 (en) Automatic generation of a streaming processor circuit
US20080250227A1 (en) General Purpose Multiprocessor Programming Apparatus And Method
JP2009533785A (ja) Vliwプロセッサのための分岐および行動分割
Kobayashi et al. GPU-FPGA heterogeneous computing with OpenCL-enabled direct memory access
Javaid et al. Optimal synthesis of latency and throughput constrained pipelined MPSoCs targeting streaming applications
Shen et al. Dataflow-based design and implementation of image processing applications
US20210200540A1 (en) Apparatuses, methods, and systems for fused operations in a configurable spatial accelerator
Minhas et al. Nanostreams: A microserver architecture for real-time analytics on fast data streams
Contini et al. Enabling Reconfigurable HPC through MPI-based Inter-FPGA Communication
US20240069511A1 (en) Instruction generation and programming model for a data processing array and microcontroller
Chouliaras et al. VThreads: A novel VLIW chip multiprocessor with hardware-assisted PThreads
Milutinovic et al. Discrepancy reduction between the topology of dataflow graph and the topology of FPGA structure
Bordoloi et al. Customizing instruction set extensible reconfigurable processors using GPUs
Nazar Shahsavani et al. Efficient Compilation and Mapping of Fixed Function Combinational Logic onto Digital Signal Processors Targeting Neural Network Inference and Utilizing High-level Synthesis
Vanderbauwhede et al. MORA: High-Level FPGA Programming Using a Many-Core Framework
Zhou et al. Chao Wang, Peng Chen, Xi Li, Xuda Zhou

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131125

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150706

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160627