JP2003521072A - Improved apparatus and method for multithreaded signal processing - Google Patents
Improved apparatus and method for multithreaded signal processingInfo
- Publication number
- JP2003521072A JP2003521072A JP2001555391A JP2001555391A JP2003521072A JP 2003521072 A JP2003521072 A JP 2003521072A JP 2001555391 A JP2001555391 A JP 2001555391A JP 2001555391 A JP2001555391 A JP 2001555391A JP 2003521072 A JP2003521072 A JP 2003521072A
- Authority
- JP
- Japan
- Prior art keywords
- thread
- processing
- kernel
- operations
- function
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
- Advance Control (AREA)
Abstract
(57)【要約】 システム及び回路設計方法及び装置は、そのマルチスレッド表現を用いて、一般的関数定義(10)を実装し、それは、一つ以上の対応するカーネル・ロジック・エレメント(18)を用いて、並行処理のためにプロファイルされてもよい。好ましくは、通信(26)、ネットワーキング、又はメディア処理関数又はアルゴリズム(12)は、一つ以上のスレッド・セグメントを識別するために、関数的に解析され、及び記号的に表現され、それらはそれぞれ、一つ以上の特定の固定された、パラメータで表された、プログラム可能な、又は再構成可能なロジック・カーネルに従って、時間的及び/又は非時間的関数を用いてプロファイルされる(14)。 Abstract: The system and circuit design method and apparatus, using its multi-thread representation, implement a general function definition (10), which comprises one or more corresponding kernel logic elements (18). May be profiled for parallel processing. Preferably, the communication (26), networking, or media processing function or algorithm (12) is functionally parsed and symbolically represented to identify one or more thread segments, each of which is Profiled using temporal and / or non-temporal functions according to one or more specific fixed, parameterized, programmable or reconfigurable logic kernels (14).
Description
【0001】
(技術分野)
本発明は、電子データ及び信号処理に関し、特定的には、高性能マルチ・スレ
ッド情報処理技術に関する。TECHNICAL FIELD The present invention relates to electronic data and signal processing, and more particularly to high performance multi-thread information processing technology.
【0002】
(背景技術)
デジタル情報処理のための計算システムにおいて、高性能を達成するための従
来の方法は、より高いレベルの並行処理を届けるアーキテクチャの設計を中心と
してきた。これは通常、ハードウェア並行処理及びソフトウェア同時実行の利用
を見込んだプロセッサ及び命令セット・アーキテクチャの設計を介して達成され
る。BACKGROUND OF THE INVENTION Conventional methods for achieving high performance in computing systems for digital information processing have centered around architectural designs that deliver higher levels of parallelism. This is typically accomplished through the design of processor and instruction set architectures that allow for hardware concurrency and software concurrency.
【0003】
高性能は通常、毎秒大変多くのオペレーションを実行する性能として定義され
る。この性能係数は、オペレーションの種類に強く依存しており、それは通常、
対称となるアプリケーションの種類に依存する。High performance is usually defined as the ability to perform very many operations per second. This figure of merit is strongly dependent on the type of operation, which is usually
Depends on the symmetric application type.
【0004】
高性能情報処理システムの従来の設計は、通常、処理システムのいくつかの重
要な属性を定義するための、コンピュータ・アーキテクチャの原理に依存する:
命令セット・アーキテクチャとは、命令の、実際のプログラマが管理するセット
を指し、及びハードウェアとソフトウェアの境界として機能する。
編成とは、メモリ・システム、バス構造、及び内部CPU設計等、コンピュータ
設計の、高レベルな様相を指す。
ハードウェアとは、特定の詳細なロジック設計、回路実装、及びパッケージン
グを指す。Conventional designs for high performance information handling systems typically rely on computer architecture principles to define some important attributes of a processing system:
Instruction set architecture refers to the actual programmer-managed set of instructions and serves as the boundary between hardware and software. Organization refers to the high-level aspects of computer design, such as memory system, bus structure, and internal CPU design. Hardware refers to a particular detailed logic design, circuit implementation, and packaging.
【0005】
通常、特定目的(すなわち、特殊なアプリケーションのために構築された)プ
ロセッサにおいて要求される属性である、高性能を達成するために、3のアプロ
ーチが取られる:
(1) 命令レベル並行処理:このアプローチは、ハードウェアでの並行処理を
利用し、大変長い、又はベクトル化命令ワードの使用を介した、処理の並行スレ
ッドに備え、前記ワードのフィールドは、同時実行処理スレッドに分解すること
ができる。この並行処理を利用するためのメカニズムは、スケジューラを介して
実現化されてもよく、それは、いくつかのデータパス処理ユニットの一つへ、オ
ペレーションをスケジュールする。この体系は、スケジューラを構築し、及び所
望のスループットを達成するための十分な並行処理を識別する困難さを含む、多
くの欠点を有する。
(2) スーパースケーラ技術:このアプローチは、高性能を達成するために、
細分性、高パイプライン、シングル・スレッド処理アーキテクチャを利用する。
この体系は、大変高い性能を達成するかもしれないが、それは小さいクラスのオ
ペレーションに対してのみである。特定のデータパス・アーキテクチャに良く適
合していないオペレーションに関して、スーパースケーラ設計の性能は、顕著に
低減する。このように、スーパースケーラ・アプローチは、高信号処理コンテン
ツを伴う幅広いアプリケーションには適していない。
(3) メモリ階層技術:より遅いメモリへのメモリ・アクセスの待ち時間を隠
すために、メモリ階層技術は、より遅いメモリの待ち時間を効果的に隠すため、
プロセッサ・ユニットとより遅いメモリとの間で、高速メモリ、すなわちキャッ
シュをインテリジェントに使用することによって、全体のシステムの性能を向上
するため、包括的に、特にマイクロプロセッサ設計において使用されてきた。Three approaches are typically taken to achieve high performance, an attribute required in special-purpose (ie, built for specialized applications) processors: (1) Instruction level parallelism Processing: This approach utilizes parallel processing in hardware to provide for parallel threads of processing through the use of very long or vectored instruction words, the fields of which are decomposed into concurrency processing threads. be able to. The mechanism for utilizing this parallel processing may be implemented via a scheduler, which schedules the operation to one of several datapath processing units. This scheme has many drawbacks, including the difficulty of building a scheduler and identifying sufficient concurrency to achieve the desired throughput. (2) Superscaler technology: This approach is designed to achieve high performance.
Take advantage of granularity, high pipeline, single-threaded processing architecture.
This scheme may achieve very high performance, but only for a small class of operations. For operations that do not fit well into a particular datapath architecture, the performance of the superscaler design is significantly reduced. As such, the superscaler approach is not suitable for a wide range of applications involving high signal processing content. (3) Memory hierarchy technology: In order to hide the latency of memory access to slower memory, memory hierarchy technology effectively hides the latency of slower memory,
It has been used comprehensively, especially in microprocessor designs, to improve overall system performance by intelligently using fast memory, or cache, between the processor unit and slower memory.
【0006】
従来、マルチ・プロセッサ・システムは、演算性能を向上させるために、マル
チ・スレッド処理を採用しているかもしれない。マルチ・スレッドは一般的に、
演算リソース・ユーティリティ、そして全体の処理性能を強化するためのアプロ
ーチとして知られている。しかしながら、普通のマルチ・スレッド処理ソリュー
ションは、複雑分散又はネットワーク・コンピュータ・ノードを用いて実装され
、それらはしばしば、より低いロジック又は回路レベルで簡単に再構成すること
ができず、多重モード遠隔通信アルゴリズム又はネットワーキング・プロトコル
等、進化したファンクショナル問題に取り組むために熟考もされない。従って、
改良されたマルチ・スレッド処理ソリューションへの必要性がある。Traditionally, multi-processor systems may employ multi-threaded processing to improve computational performance. Multi-threading is generally
Known as a computing resource utility, and an approach to enhance overall processing performance. However, common multi-threaded solutions are implemented using complex distributed or network computer nodes, which often cannot be easily reconfigured at lower logic or circuit levels, and which are multimode telecommunications. It is also not considered to address evolving functional issues such as algorithms or networking protocols. Therefore,
There is a need for improved multi-threading solutions.
【0007】
(発明の開示)
本発明は、ファンクショナル(以下、関数又は関数的と称する)性能を向上す
るための、マルチ・スレッド・デジタル情報(信号又はデータ表現)のための設
計及び実装方法論、プロセッサ・アーキテクチャ、及びシステムに存在する。好
ましくは、一般的なシステム設計又はファンクション(以下、関数と称する)定
義、アルゴリズム、電子信号又はデータ・ファイルが、一つ以上のマルチ・スレ
ッド表現を含むように、最初に供給される。そのような初期プロトタイプ設計又
は関数は、時間及び/又は非時間的関数的事項を用いて、特に一つ以上の対応す
る、固定され、パラメータで表すことができ、プログラム可能であり、又は構成
可能なロジック・ユニット又は他の同等の関数信号処理カーネル又はエレメント
において、関数的に使用され、あるいは実装されるために、並行処理又は有効な
同様の処理のためにプロファイルされ、そうでなければ特徴付けられてもよい。DISCLOSURE OF THE INVENTION The present invention is a design and implementation methodology for multi-threaded digital information (signal or data representation) to improve functional (hereinafter “function”) performance. , Processor architecture, and system. Preferably, a general system design or function (hereinafter referred to as function) definition, algorithm, electronic signal or data file is provided first to include one or more multi-threaded representations. Such an initial prototype design or function may be temporally and / or non-temporally functional, in particular one or more corresponding, fixed, parametrizable, programmable or configurable. Logic unit or other equivalent functional signal processing kernel or element to be used or implemented functionally, profiled for parallel processing or similar processing in effect, or otherwise characterized You may be asked.
【0008】
好ましくは、例えば、デジタル通信及び/又はネットワーキング及び/又はメ
ディア処理システム設計へのアプリケーションのための、相対的に複雑なシステ
ム関数は、予め特定されたシステム設計規則、数学的オペレーション、オペレー
ションのシーケンス、又はパラメータに従って解析され、それから記号的又は図
式的に、一つ以上のアルゴリズム、特定のオペレーションのシーケンス、メモリ
・アクセスのパターン、又はセグメント(すなわち、単一又はマルチの“スレッ
ド”)を識別するように表され、それらはそれぞれ一つ以上の特定の固定された
、パラメータで表された、プログラム可能な、又は構成可能なロジック・ユニッ
ト又はカーネル・エレメントを用いて、最適化されたオペレーション又は実装に
関してプロファイルされ、構築され、又は特徴付けられてもよい。そのようなエ
レメントは、プロファイリングを介して決定される構造及び構成可能性(config
urability)を有するデータパス、プロファイリングを介して決定される構造及
び適合性を有する、シーケンサ/有限状態マシン、及びメモリ・アクセスをプロ
ファイルし、ならびにローカル・メモリ・プロパティを抽出するためにローカリ
ティ(locality)を用いることによって決定される構造を有するローカル・メモ
リによって構築される。任意で、一つ以上のカーネル・エレメントは、ソフトウ
ェア又はプログラム可能ロジック、又はそれらの組み合わせにおいて、完全に実
装される。さらに、ここに記述されている通り、“プロファイリング”という用
語は、一般的に、各モジュールと関連する一つ以上の構成可能な構造を定義する
ための、一つ以上のシステム又は関数モジュールの自動及び/又は手動処理を指
す。Preferably, the relatively complex system functions are pre-specified system design rules, mathematical operations, operations, for example for applications in digital communication and / or networking and / or media processing system design. Sequence, or parameters, and then symbolically or graphically one or more algorithms, specific sequences of operations, patterns of memory access, or segments (ie, single or multiple "threads"). Identified, each of which is optimized for operation using one or more specific fixed, parameterized, programmable or configurable logic units or kernel elements. Or regarding the implementation It may be profiled, constructed, or characterized. Such elements have structure and configurability (config
locality to profile sequencer / finite state machines and memory accesses, with structure and conformity determined through profiling, and data paths with urability) and to extract local memory properties. Is built by a local memory whose structure is determined by using Optionally, one or more kernel elements are fully implemented in software or programmable logic, or a combination thereof. Further, as described herein, the term "profiling" generally refers to the automation of one or more system or function modules to define one or more configurable structures associated with each module. And / or refers to manual processing.
【0009】
(発明を実施するための最良の形態)
本発明は、自動設計又は実装が、改良された処理性能のために、デジタル・デ
ータ、信号又は関数表現のシングルあるいはマルチ・スレッド又は同等に分割さ
れた処理を、処理することを可能にする。最初に、システム設計又は関数定義、
アルゴリズム、電子信号、又はデータ・ファイルは、一定のシングル又はマルチ
・スレッド表現を供給し、その時に、一つ以上のシステム設計又は関数モジュー
ルが、並行あるいは同時実行処理のためにプロファイルされ、構築され、そうで
なければ特徴付けられる。BEST MODE FOR CARRYING OUT THE INVENTION The present invention provides an automated design or implementation for single or multi-threading or equivalent of digital data, signals or functional representations for improved processing performance. Enables processing of the divided processing. First, the system design or function definition,
An algorithm, electronic signal, or data file provides a constant single or multi-threaded representation, at which time one or more system design or function modules are profiled and constructed for parallel or concurrent processing. , Otherwise characterized.
【0010】
例えば、マルチスレッド・プロトタイプは、固定された、パラメータで表すこ
とができる、プログラム可能な、又は構成可能なロジック・ユニット又は他の信
号処理カーネル又はエレメントにおいて使用され、又はそうでなければ実装され
てもよい。このように、デジタル通信、ネットワーキング、又はマルチ・メディ
ア・アプリケーション等、複雑なシステム関数は、システム設計規則、数学的オ
ペレーション、オペレーションのシーケンス、又はパラメータに従って解析され
てもよく、それから一定のシングルあるいはマルチ・スレッド・アルゴリズム、
特定のオペレーションのシーケンス、メモリ・アクセスのパターン、又はセグメ
ントを識別するために、記号的又は図式的に表されてもよく、各スレッドは、固
定された、パラメータで表された、プログラム可能な、又は構成可能なロジック
・ユニット又はカーネル・エレメントを用いて、オペレーション又は実装を最適
化するためにプロファイルされ、又は特徴づけられる。For example, multithreaded prototypes are used in fixed, parameterizable, programmable, or configurable logic units or other signal processing kernels or elements, or otherwise May be implemented. Thus, complex system functions, such as digital communication, networking, or multimedia applications, may be analyzed according to system design rules, mathematical operations, sequences of operations, or parameters, and then fixed single or multi-valued. Thread algorithm,
It may be symbolically or graphically represented to identify a particular sequence of operations, patterns of memory access, or segments, where each thread is fixed, parameterized, programmable, Alternatively, configurable logic units or kernel elements are used to profile or characterize to optimize operation or implementation.
【0011】
任意で、データパス構造は、プロファイリングによって決定される、シングル
あるいはマルチ・スレッド・エレメント、プロファイリングによって決定される
構造及び構成可能性を有するシーケンサ及び/又は同等の有限状態マシン、及び
メモリ・プロパティを抽出するためにメモリ・アクセス及びローカリティをプロ
ファイリングすることによって決定される構造を有するローカル・メモリへと構
成される。Optionally, the datapath structure is a profiling-determined single or multi-threaded element, a sequencer and / or equivalent finite state machine with a profiling-determined structure and configurability, and a memory Configured into local memory having a structure determined by profiling memory access and locality to extract properties.
【0012】
ここで使用される通り、プロファイリングという用語は、一般的に、例えば相
互接続、信号、ロジック、回路等、一つ以上の関数エレメント又は設計オブジェ
クトを選択し、又は割り当てることによって、各モジュールと関連する一つ以上
の構成可能ストラクチャを定義し、又はカテゴライズするための、一つ以上のシ
ステム又は関数モジュールの、あらゆるコンピュータ自動化及び/又は手動処理
、翻訳又は階級化を指す。好ましくは、プロファイリングは、一つ以上の、以前
に及び/又は動的に定義された基準又は関数規則セットに従って達成される。As used herein, the term profiling generally refers to each module by selecting or assigning one or more functional elements or design objects, such as interconnects, signals, logic, circuits, etc. Refers to any computer automation and / or manual processing, translation or classification of one or more system or function modules to define or categorize one or more configurable structures associated with. Preferably, profiling is accomplished according to one or more previously and / or dynamically defined criteria or functional rule sets.
【0013】
一般的に、コンピュータ自動化及び/又は手動開発アプローチにおいて、シン
グル又はマルチ・スレッド設計は、最初に、プロトタイプ・システムを表す第一
レベル関数定義を供給し、同等の関数を記号で表す他のレベルの関数定義が生成
され、又は有効にそこからプロファイルされるようにすることによって処理され
る。この階層的設計体系において、生成された記号表現は、好ましくは一つ以上
の関数レベルで、システム設計と関連する一定のスレッドを識別してもよい。In general, in computer automation and / or manual development approaches, a single or multi-threaded design first provides a first level function definition that represents the prototype system, and other equivalent symbolic representations. Function levels are generated or processed by effectively profiling from them. In this hierarchical design scheme, the generated symbolic representation may identify certain threads associated with the system design, preferably at one or more function levels.
【0014】
各スレッドは、対応するカーネル・エレメントによって処理のためにプロファ
イルされてもよく、及びオペレーションの一つ以上の共通セットは、一定のスレ
ッド(例えば、1対1、複数対1、又は1対複数のスレッド対カーネル関係)に
関して識別される。各スレッドはさらに、演算オペレーション、制御オペレーシ
ョン、及び/又はメモリ・アクセス・オペレーションのシーケンス、又は関連す
るメモリ・ロケーション等、システム又は関数モジュールを実装するために利用
される演算子の各セットに関し、シーケンス又はスケジューリング情報を識別す
るためにマッピングされてもよい。Each thread may be profiled for processing by a corresponding kernel element, and one or more common sets of operations may be for a given thread (eg, one-to-one, multiple-to-one, or one-to-one). To multiple threads to kernel relationships). Each thread further includes a sequence of arithmetic, control, and / or memory access operations, or sequences for each set of operators utilized to implement a system or function module, such as associated memory locations. Alternatively, it may be mapped to identify scheduling information.
【0015】
このように、本システム開発方法論を用いて、マルチ・スレッド処理アーキテ
クチャは、一つのカーネル・エレメントが、対応するスレッドによって表される
一定の関数を処理し、及び同じプロトタイプ設計における別のカーネル・エレメ
ントは、他の対応するスレッドによって表される他の関数を処理するような、一
組のカーネル・エレメントを実質的に含んでもよい。この分割、又は分散処理ア
プローチにおいて、各スレッドは適切な多重レベル又は関数グループ処理のため
に、別個に、又は階層的にプロファイルされてもよい。例えば、第一レベル又は
グループ・カーネル・エレメント及び第二レベル又はグループ・カーネル・エレ
メントはそれぞれ、一定の関数又はシステム設計における、対応する第一のスレ
ッド及び第二のスレッドと関連する。Thus, using the system development methodology, a multi-threaded processing architecture allows one kernel element to process a certain function represented by the corresponding thread and another in the same prototype design. A kernel element may substantially include a set of kernel elements to handle other functions represented by other corresponding threads. In this split or distributed processing approach, each thread may be profiled separately or hierarchically for appropriate multi-level or function group processing. For example, a first level or group kernel element and a second level or group kernel element are associated with corresponding first and second threads in a function or system design, respectively.
【0016】
ワイヤレスコード分割多重アクセス(CDMA)通信アプリケーションのため
の代表的なシステム設計において、様々なカーネルが:フロント・エンド処理(
例えば、データ・スイッチ・セレクタ、サンプル補間等);チップ・レート処理
(例えば、サンプル・エポック選択(sample epoch selection)、適合したフィ
ルタ、汎用デスプレッダ(generic despreader)、汎用デチャンネライザ(gene
ric dechannelizer)、コード生成装置、統合及びダンプ、汎用サーチャ制御(g
eneric searcher control)等);記号シーケンス処理(例えば、転送フォーマ
ット・デコーダ、動的拡散因子コンピュータ(dynamic spreading factor compu
ter)、高速Hadamard変換等);チャネル・エレメント処理(例えば、
アラインメント/デスキューイング(deskewing)、コンバイナ(combiner)、
ソフト決定コンピュータ、インターパス干渉エコライザ(interpath interferen
ce equalizer)、受信アンテナ・ダイバーシティ・コンバイナ(receive antenn
a diversity combiner)等);インターリービング(例えば、デインターリーバ
・コントローラ(deinterleaver controller);及びチャネル・コーディング(
例えば、ターボ・デコーダ、畳み込みデコーダ等)、様々な関数グループを提供
するために供給されてもよいと考えられる。In a typical system design for wireless code division multiple access (CDMA) communication applications, various kernels: front end processing (
For example, data switch selector, sample interpolation, etc .; chip rate processing (eg, sample epoch selection, matched filters, generic despreader, generic dechannelizer (gene).
ric dechannelizer), code generator, integration and dump, general-purpose searcher control (g
eneric searcher control, etc.); symbol sequence processing (eg, transport format decoder, dynamic spreading factor computer)
ter), high-speed Hadamard conversion, etc.); channel element processing (eg,
Alignment / Deskewing, Combiner,
Soft-decision computer, interpath interferen
ce equalizer), receive antenna diversity combiner (receive antenn
a diversity combiner, etc.); interleaving (eg, deinterleaver controller), and channel coding (
For example, a turbo decoder, a convolutional decoder, etc.) could be provided to provide various groups of functions.
【0017】
一般的に、本アプローチによって、一つ以上の関数又はシステム設計は、好ま
しくは本マルチ・スレッド体系を介して、単一のプロセッサ・アーキテクチャに
おいて、そこから対応するスレッドが組み立てられるカーネル・エレメントを再
パラメータ化し、再プログラミングし、又は再構成することによって(すなわち
、さらに説明されるように、プロファイリング技術によって決定されるように)
、及び/又はそれとともにスレッドが実装されるオペレーションのシーケンスを
変更することによって(すなわち、マッピング及び/又はスケジューリングによ
って決定されるように)、有効に実装されることができる。好ましい実施例は、
一つ以上の異種及び再構成可能ロジック又はカーネル・エレメントにおいて(す
なわち、ここでさらに説明される通り、いわゆる“DRL”処理に従って)、関
数又はシステム設計を実行する。In general, according to the present approach, one or more functions or system designs may be kernel kernels from which the corresponding threads are assembled, preferably through the present multi-threaded architecture, in a single processor architecture. By reparameterizing, reprogramming, or reconfiguring the element (ie, as determined by profiling techniques, as further described)
, And / or with which a thread may be effectively implemented by changing the sequence of operations implemented (ie, as determined by mapping and / or scheduling). The preferred embodiment is
Performing a function or system design in one or more heterogeneous and reconfigurable logic or kernel elements (ie, in accordance with so-called "DRL" processing, as further described herein).
【0018】
図1は、好ましくは、一つ以上のスタンド・アロン又はネットワーク・コンピ
ュータ、プロセッサ、エンジニアリング・ワークステーション、又は適切なオペ
レーティング・システム、ユーザ・インターフェース、記憶装置管理、通信イン
ターフェース及び他のコンピュータ支援設計ならびにエンジニアリング・ツール
を有する他の計算設備を含む、一つ以上の電子設計自動化プラットフォームに実
装された、本設計方法論、関数モジュール、及びソフトウェア及び/又はハード
ウェア・ツール・アーキテクチャの、トップ・レベルの概観を示す一般的アーキ
テクチャ又はシステム・ブロック図である。好ましくは、本設計方法論は、ネッ
トワーク実装等、システム・アーキテクチャを可能にするために、ツール・アー
キテクチャ及びプロセッサ実装及びアーキテクチャ、又はそれを表すデータ・フ
ァイルを供給するように機能することが考えられる。FIG. 1 preferably illustrates one or more stand-alone or network computers, processors, engineering workstations, or suitable operating systems, user interfaces, storage management, communication interfaces and other computers. Top of the design methodology, function modules, and software and / or hardware tool architectures implemented in one or more electronic design automation platforms, including assisted design and other computing equipment with engineering tools. 1 is a general architecture or system block diagram showing an overview of levels. Preferably, the design methodology may serve to provide tool and processor implementations and architectures, or data files representing them, to enable system architectures such as network implementations.
【0019】
図示された通り、最初に、設計ネットリスト等、一つ以上の関数定義ファイル
10、又は一つ以上の関数モジュールあるいはアルゴリズムを定義する高レベル
記述言語(C又はHDL等)12が手動で供給され、又は自動的に計算される。
本実装の一つの特徴に従って、関数上選択的なプロファイリング及びマッピング
体系14は処理され、又は特にマルチ・スレッドで、一つ以上の制御ならびに通
信信号26及びカーネル18を生成し、又は供給するために、プリミティブ16
及び関数定義10に適用される。さらに、プロファイリング及びマッピング14
は、スケジュール・オペレーション・テーブル20のためにスケジューリング・
データを供給する。制御及び通信信号は、一つ以上の予め定義された、又は選択
された関数規則セット又は信号フラグ、例えば通信セマフォ24に従って処理さ
れる。様々なカーネル18が、例えば、ここで記述されているように、マルチス
レッド信号処理のための、再構成可能な形式で、実装22のために処理され、及
び相互接続される。As shown, first, one or more function definition files 10, such as a design netlist, or a high-level description language (C or HDL, etc.) 12 that defines one or more function modules or algorithms is manually created. Supplied or calculated automatically.
In accordance with one feature of the present implementation, the functionally selective profiling and mapping scheme 14 is processed or, particularly multi-threaded, to generate or provide one or more control and communication signals 26 and kernels 18. , Primitive 16
And function definition 10. In addition, profiling and mapping 14
Scheduling for the schedule operations table 20
Supply data. Control and communication signals are processed according to one or more pre-defined or selected sets of function rules or signal flags, such as communication semaphore 24. Various kernels 18 are processed and interconnected for implementation 22 in a reconfigurable form, eg, for multithreaded signal processing, as described herein.
【0020】
図2A乃至Bの機能的ブロック図は、カーネル18,28及びスケジュールな
らびにアロケート機能30を含む、それらの物理的実装のセットの代表的セット
を示す。好ましくは、一つ以上のカーネル18は、プロファイルされ、及びマッ
ピングされたスレッドと関連し、又はそれらに対応しており、及びシーケンサ3
2、データパス34、及びメモリ36を用いて、再構成可能に実装される。The functional block diagrams of FIGS. 2A-B show a representative set of their physical implementation sets, including kernels 18, 28 and a schedule and allocate function 30. Preferably, one or more kernels 18 are associated with or correspond to profiled and mapped threads, and sequencer 3
2, reconfigurable implementation using the data path 34 and the memory 36.
【0021】
このように、本システム及び回路設計方法論及び/又は計算装置に従って、一
般的関数定義は、そのシングル又はマルチスレッド表現を用いて実装可能であり
、それは一つ以上の対応するカーネル・ロジック・エレメント(例えば、1対マ
ルチ、1対1、マルチ対1、又はマルチ対マルチのカーネル対スレッドの関係)
を用いて、並行処理のために有効にプロファイルされてもよい。例えば、通信、
ネットワーキング、又はメディア処理関数又はアルゴリズムは、一つ以上のスレ
ッド・セグメントを識別するために関数的に解析され、及び記号的に表され、そ
れらはそれぞれ、一つ以上の特定的に設計された固定の、パラメータで表された
、プログラム可能な、又は再構成可能なロジック・カーネルを用いて、最適化さ
れたオペレーション又は実装のためにプロファイルされ、そうでなければ特徴付
けられる。Thus, according to the present system and circuit design methodology and / or computing device, a general function definition can be implemented using its single or multi-threaded representation, which can be one or more corresponding kernel logics. Elements (eg, one-to-multi, one-to-one, multi-to-one, or multi-to-multi kernel-to-thread relationships)
May be effectively profiled for parallel processing. For example, communication,
Networking or media processing functions or algorithms are functionally parsed and symbolically represented to identify one or more thread segments, each of which is one or more specifically designed fixed Profiled, or otherwise characterized, for optimized operation or implementation using a parameterized, programmable, or reconfigurable logic kernel.
【0022】
図3に記載の機能図は、代表的な異種、再構成可能、多重処理配列を示してお
り、例えば、そこではカーネル8は“小”細分性スレッド関数を実装してもよく
、及びカーネル6は、“大”細分性スレッド関数を実装してもよい。この再構成
可能配列において、好ましくは設計関数及び対応するカーネルの属性である、様
々なレベルの関数的細分性(functional granularity)が、設計要件又はプロフ
ァイル・マッピングの好みに従って、実装され、又は動的に再構成されてもよい
。The functional diagram depicted in FIG. 3 illustrates a typical heterogeneous, reconfigurable, multiprocessing array, where, for example, kernel 8 may implement a “small” granular thread function, And kernel 6 may implement a "large" granularity thread function. In this reconfigurable array, different levels of functional granularity, preferably attributes of the design function and corresponding kernels, are implemented or dynamically according to design requirements or profile mapping preferences. May be reconfigured.
【0023】
さらなる説明のために、図4の機能図は、シングル又はマルチ・スレッドを、
指定されたカーネルに実装するための本アプローチに従って採用されてもよい、
一つ以上の代表的な、又は利用可能な構成可能ロジック又は関数を示しており、
それらは、例えば、プログラム可能ロジック・エレメント及びスイッチ・マトリ
ックス(例えば、エンコーディング・ビット・レベル・オペレーション)を有す
る再構成可能ロジック又はプログラム可能関数ユニット(PFU)40、マルチ
プレクサ、レジスタ、加算器、バッファ等及び(例えば、専用データパス・フィ
ルタへと)これらのエレメントを流れる構成可能信号フローを有する再構成可能
データパス42、及び(例えば、演算畳み込みカーネルに関する)アドレス生成
装置、メモリ、メモリ・アドレス制御等を有する再構成可能演算44、及び(例
えば、リアルタイム・オペレーティング・システム処理管理に関する)データ・
メモリ、データパス、プログラム・メモリ、命令デコーダならびにコントローラ
等を有する再構成可能制御46を示す。For further explanation, the functional diagram of FIG. 4 illustrates single or multi-threading,
May be adopted according to this approach for implementation in a specified kernel,
Shows one or more representative or available configurable logics or functions,
They are, for example, reconfigurable logic or programmable function unit (PFU) 40 with programmable logic elements and switch matrices (eg encoding bit level operations), multiplexers, registers, adders, buffers etc. And a reconfigurable datapath 42 having a configurable signal flow through these elements (eg, to a dedicated datapath filter), and an address generator (eg, for an arithmetic convolution kernel), memory, memory address control, etc. Reconfigurable operations 44 and data (eg, for real-time operating system process management)
A reconfigurable control 46 having a memory, data path, program memory, instruction decoder, controller, etc. is shown.
【0024】
さらに、見本のカーネル実装の説明として、図5の機能図は、データ・シーケ
ンサ32、データ・メモリ36、及びパラメータで表すことができる、構成可能
な演算ロジック・ユニット(ALU)34を含む、カーネル18を実装するため
の、好ましい関数的エレメントを示す。Further, as an illustration of a sample kernel implementation, the functional diagram of FIG. 5 illustrates a data sequencer 32, a data memory 36, and a configurable arithmetic logic unit (ALU) 34 that can be represented by parameters. 3 illustrates preferred functional elements for implementing kernel 18, including.
【0025】
図6は、動的再構成可能ロジック(DRL)処理64とメイン・プロセッサ・
ハードウェア・モデル50の外部での処理機能のための、関連する構成データベ
ースとの間の、任意のインターフェースを示す、代表的機能図である。好ましく
は、DRL処理は、異種であり、かつ再構成可能であり、及び本発明を使用して
実装される。図示された通り、ハードウェア・インターフェース54は、Cプロ
グラム・モデル56及び入力/出力装置ドライバ58を有するプロセッサ・ソフ
トウェア・モデル57を含む、ライブラリ62及び特定された関数モジュール6
0と関連するプロセッサ・エレメント52と、外部DRL処理64とを連結する
。FIG. 6 illustrates a dynamic reconfigurable logic (DRL) process 64 and main processor
FIG. 6 is a representative functional diagram showing optional interfaces with associated configuration databases for processing functions external to hardware model 50. Preferably, the DRL process is heterogeneous and reconfigurable and implemented using the present invention. As shown, the hardware interface 54 includes a library 62 and a specified function module 6 including a processor software model 57 having a C program model 56 and an input / output device driver 58.
The processor element 52 associated with 0 and the external DRL process 64 are connected.
【0026】
この任意の実施例において、例えば、一般的システム設計又は関数定義、アル
ゴリズム、電子信号又はデータファイル等、一つ以上のシングル又はマルチ・ス
レッド・デジタル情報(例えば、信号又はデータ表現)が、一つ以上のマルチ・
スレッド表現を含むように最初に供給され、及びそのような初期プロトタイプ設
計又は関数がプロファイルされ、そうでなければ、特に、外部DRL処理64と
の機能的協動(functional cooperation)又は模倣されたリアル・タイム信号対
話のために、プロセッサ・モデル50、57において、一つ以上の対応する固定
された、パラメータで表された、プログラム可能な、又は構成可能なロジック・
ユニット又は他の同等な関数信号処理カーネル又はエレメントを関数的に使用し
、又はそれら実装されるために、並行あるいは有効に類似した処理のためにプロ
ファイルされ、そうでなければ特徴付けられる。In this optional embodiment, one or more single or multi-threaded digital information (eg, signal or data representation), eg, general system design or function definitions, algorithms, electronic signal or data files, etc., is provided. , One or more multi
Such an initial prototype design or function is initially profiled to include a thread representation, and is otherwise specifically a functional cooperation or mimicked real with an external DRL process 64. One or more corresponding fixed, parameterized, programmable or configurable logic in the processor model 50, 57 for time signal interaction;
Units or other equivalent functional signal processing kernels or elements may be functionally used, or implemented, for parallel or effectively profiled for similar processing, or otherwise characterized.
【0027】
図7のフロー・チャートは、本発明の操作ステップの他の特徴を示す。最初に
、ユーザ生成又はコンピュータ生成関数が、プロトタイプ又は他のシステム設計
に関して定義される70。それから、一つ以上の数学的解析又は設計性能最適化
体系が、初期設計定義に適用されてもよい72。次に、設計定義のための、一つ
以上の構成要素アルゴリズムが供給され74、そのようなアルゴリズムの表現は
それによって、好ましくは高レベル、レジスタ転送、又は振る舞い関数フォーマ
ット(behavioral functional format)で、コード化される76。The flow chart of FIG. 7 illustrates another feature of the operating steps of the present invention. First, a user-generated or computer-generated function is defined 70 for a prototype or other system design. Then, one or more mathematical analysis or design performance optimization schemes may be applied 72 to the initial design definition. Then, one or more component algorithms for design definition are provided 74, the representation of such algorithms is thereby provided, preferably in a high-level, register transfer, or behavioral functional format, Coded 76.
【0028】
アルゴリズムは、プロファイルされ、及びマッピングされてもよく78、そう
でなければ、対応的に定義されたカーネル80を用いて、好ましくは一つ以上の
特定された設計構築ブロック、すなわちプリミティブ86を用いて、システム設
計モジュール、関数、信号、コンポーネント、又はそれらの他のエレメントの最
適化された、又は指示されたオペレーション又は実装のために、手動で、及び/
又は自動的に、関数的に定義され、又はカテゴライズされてもよい。プロファイ
リング及びマッピング・データは、通信セマフォ84及びスケジューリングなら
びに有限状態マシン制御及びパラメータ88にも供給される。それから、カーネ
ル定義80及びFSM制御パラメータ化及びスケジューリング88は通信セマフ
ォ84と同様に、本設計のシングル又はマルチ・スレッド・エレメントを、再構
成可能カーネル・エレメント82とともに、プロセッサ・アーキテクチャへと実
装するために適用される。図8は、マルチ・スレッド・カーネル90の利用を示
す見本の設計の代表的なソフトウェア・コードを示す。The algorithm may be profiled and mapped 78, with one or more correspondingly defined kernels 80, preferably one or more identified design building blocks or primitives 86. To manually and / or for optimized or directed operation or implementation of system design modules, functions, signals, components, or other elements thereof.
Alternatively, it may be automatically, functionally defined, or categorized. Profiling and mapping data is also provided to communication semaphores 84 and scheduling and finite state machine controls and parameters 88. The kernel definition 80 and FSM control parameterization and scheduling 88 then implement the single or multi-threaded elements of the present design, along with the reconfigurable kernel element 82, into the processor architecture, as well as the communication semaphore 84. Applied to. FIG. 8 shows representative software code for a sample design showing the use of a multi-threaded kernel 90.
【0029】
本発明の一つの特徴に従って、プロファイリング処理又はそれを表す再構成可
能アルゴリズムは時間的なものであり、それによって、時間の経過に従った一定
の時間値(time value)又は変化の度合いの決定を含む。時間的アプリケーショ
ンの例は、セルラ・ワイヤレス・システムにおいて求められる受信装置アルゴリ
ズム及び、本発明のプロファイリング方法論を利用することができる、これらの
アルゴリズムのための、あらゆる関連する信号処理体系における変化を含む。こ
の例において、一つのパス(例えば、受信方向)での処理スループット要件が、
(例えば、アンテナから、最終的な検索されたデータ表現へと)処理が進むにつ
れて、増えたり減ったりするかもしれない場合、本発明のプロファイリング体系
は、ハードウェア―ソフトウェア、又はすべての設計実装の他の関数分割を決定
するように機能する。According to one feature of the invention, the profiling process or the reconfigurable algorithm representing it is temporal, whereby a constant time value or degree of change over time. Including the decision. Examples of temporal applications include the receiver algorithms required in cellular wireless systems and any associated signal processing scheme changes for these algorithms that can utilize the profiling methodology of the present invention. In this example, the processing throughput requirement for one path (eg, receive direction) is
The profiling scheme of the present invention may be implemented in hardware-software, or in any design implementation where it may increase or decrease as processing progresses (eg, from the antenna to the final retrieved data representation). It functions to determine other function partitions.
【0030】
さらに、そのようなセルラ・ワイヤレスの例において、複数の方法が、類似の
、又は同等の信号処理を実行するかもしれないが、その結果、異なるエア・イン
ターフェース要件又は有効関数を生じるかもしれないことが考えられる。特に一
定のシステムのハードウェア分割において、様々な処理フォーム又は関数エレメ
ントが、様々な速度で生じ、又は動作するかもしれない。可変的な処理速度が求
められるかもしれず、また操作制御の様々なモードが、複数の処理ストリームの
ためのサポートによって命じられるかもしれないので、いくつかの追加的非時間
的、及び時間的プロファイリング技術が、可能な操作上性能点又はそのようなハ
ードウェア・アーキテクチャのキャパシティ(例えば、リアル・タイム及び非リ
アル・タイム・プロファイリング)に関して、最適な機能的柔軟性(functional
flexibility)を供給するために適用されてもよい。ここでは一般的に、本発明
のアプリケーションの他の例は、固定ワイヤレス、無許可ワイヤレスLAN、コ
ードレス電話システム、遠隔測定法等を含む、セルラ・ワイヤレスとともに、追
加的に生じるかもしれないことが考えられる。Further, in such a cellular wireless example, multiple methods may perform similar or equivalent signal processing, but may result in different air interface requirements or effective functions. It is possible that you may not know. Different processing forms or functional elements may occur or operate at different speeds, especially in certain system hardware partitions. Since variable processing speeds may be required, and different modes of operational control may be commanded by support for multiple processing streams, some additional non-temporal and temporal profiling techniques may be used. But with respect to possible operational performance points or capacity of such hardware architectures (eg real-time and non-real-time profiling), optimal functional flexibility.
flexibility). In general, it is contemplated that other examples of applications of the present invention may additionally occur with cellular wireless, including fixed wireless, unauthorized wireless LAN, cordless telephone systems, telemetry, etc. To be
【0031】
ある一つのプロファイリング技術が、求められるオペレーション及び記憶エレ
メントの種類及び数を決めるために、複数のモードのオペレーションに対するハ
ードウェア・ベースのアルゴリズムに適用され、それによって、設計者は、各時
間的に異なる関数を、共通で使用されるリソースの識別を容易にする形式で階級
化することができる。One profiling technique is applied to a hardware-based algorithm for multiple modes of operation to determine the type and number of operations and storage elements required, thereby allowing the designer each time. Functionally different functions can be classified in a form that facilitates identification of commonly used resources.
【0032】
他のプロファイリング技術は、要求される変化の頻度に従って、複数のレベル
のハードウェア定義を制御するために適用される。ここで、ワイヤレス受信装置
の受信パスにおけるモード依存変化は、例えば、(例えば、トランザクションが
、マルチ・セカンド・トランザクション(multi-second transaction)であるよ
うな)トランザクション構成の間、及びデータのブロックに対するサブ・セカン
ド・トランザクション内(例えば、“オンザフライ(on-the-fly)”)で、グロ
ーバルな再構成の開始時に変化する必要があるかもしれない。Other profiling techniques are applied to control multiple levels of hardware definition according to the required frequency of change. Here, mode-dependent changes in the receive path of a wireless receiving device may be, for example, during transaction configuration (eg, where the transaction is a multi-second transaction) and for sub-blocks of data. • Within a second transaction (eg, “on-the-fly”), it may need to change at the start of global reconfiguration.
【0033】
プロファイリング結果によって、適切なレベルの構成可能実装が、例えば、サ
イクルごとに制御を必要とする、最高データ速度でのデータ処理のために、選択
されてもよい。しかしながら、制御には柔軟性が必要とされるかもしれず、プロ
グラム可能状態マシンは、必要な性能要件に見合う、最適な柔軟性を供給するか
もしれない。構成タイムに選択される必要があるかもしれないが、頻繁には変化
しないデータパスに関して、プログラム可能相互接続は、適切に適用されるかも
しれない。Depending on the profiling results, the appropriate level of configurable implementation may be selected, eg, for data processing at the highest data rate, which requires control on a cycle-by-cycle basis. However, control may require flexibility and the programmable state machine may provide optimal flexibility to meet the required performance requirements. For data paths that may need to be selected at configuration time but do not change often, programmable interconnects may be applied appropriately.
【0034】
さらに、データパス選択が、リアルタイムで生じる場合、データパス‐セル・
ベースの多重化構造が適用されてもよい。また、オペレーションのオーダが必要
である制御関数に関して、処理オペレーションのための、パラメータで表された
カーネルが適用されてもよい。さらに、高性能要件及び低柔軟性要件の場合、専
用データパスが、シリコン実装を最適化するために適用できる。多重標準ワイヤ
レス・レシーバ設計の場合、それは性能点に相対して最適な柔軟性をもたらし、
前述のプロファイリング技術のうちの一つ以上が適用可能である。Furthermore, if the data path selection occurs in real time, the data path-cell
A base multiplexing structure may be applied. Also, for control functions that require an order of operation, a parameterized kernel for processing operations may be applied. Furthermore, for high performance and low flexibility requirements, dedicated datapaths can be applied to optimize silicon implementation. For a multi-standard wireless receiver design, it provides optimal flexibility relative to performance points,
One or more of the profiling techniques described above are applicable.
【0035】
図9Aは、本体系に従って、例えば、ワイヤード及び/又は放送ワイヤレス・
ネットワーク・ダウンロード又は他の送信/受信を用いて、シングル又はマルチ
・スレッド再構成可能システム実装に、一つ以上の構成パラメータを供給するた
めに、ケイパビリティ、パラメータ及び値の構成テーブル92を、一つ以上の産
業又は私設の標準に従って、アプリケーション・プログラミング・インターフェ
ース(API)を通して転送するための流れを含む、本発明の適用の一般的特徴
を示す。FIG. 9A illustrates, for example, wired and / or broadcast wireless
One capability, parameter and value configuration table 92 for supplying one or more configuration parameters to a single or multi-threaded reconfigurable system implementation using network download or other send / receive. 1 illustrates the general features of the application of the present invention, including the flow for transferring through an application programming interface (API) according to the above industry or private standards.
【0036】
好ましい実装は、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、
アプリケーション特化集積回路(ASIC)、フィールド・プログラマブル・ゲ
ート・アレイ(FPGA)、DRL、又は他の関数的ブロック・モジュールを表
す、一つ以上の相互接続されたブロック・モジュール96を定義し、又は実装す
るために、API94を通して構成パラメータを受信し、それらはさらに、一つ
以上の相互接続されたカーネル・エレメント98において定義され、又は実装さ
れてもよい。本発明の一つの特徴に従って、一つ以上の構成可能パラメータ10
0は、スレッド方法で、一つ以上の特定されたカーネル・エレメントに対応する
ように、定義され、又は実装されてもよい。このように、この構成可能パラメー
タの場合、設計及び実装方法又はシステムは、改良された関数性能のために、マ
ルチ・スレッド・デジタル信号又はデータを処理するように機能する。Preferred implementations include microprocessors, digital signal processors (DSPs),
Define one or more interconnected block modules 96, which represent an application specific integrated circuit (ASIC), field programmable gate array (FPGA), DRL, or other functional block module, or To implement, it receives configuration parameters through API 94, which may also be defined or implemented in one or more interconnected kernel elements 98. According to one aspect of the invention, one or more configurable parameters 10
0 may be defined or implemented to correspond to one or more identified kernel elements in a threaded manner. Thus, with this configurable parameter, the design and implementation method or system functions to process multi-threaded digital signals or data for improved functional performance.
【0037】
一般的に、システム設計又は関数定義、アルゴリズム、電子信号、又はデータ
・ファイルは、そのようなマルチ・スレッド表現を含むように供給され、及び初
期プロトタイプ関数は、例えば、時間的に制約されるかもしれない、一定のパラ
メータで表されたカーネル・エレメントを実装するために、一つ以上のスレッド
によって、並行処理のためにプロファイルされる。Generally, system designs or function definitions, algorithms, electronic signals, or data files are provided to include such multi-threaded representations, and initial prototype functions are, for example, time-constrained. May be profiled by one or more threads for concurrency in order to implement the kernel elements represented by certain parameters.
【0038】
より特定的に、図9Bに記載の通り、デジタル・ワイヤレス通信アプリケーシ
ョンにおいて、携帯移動無線電話102は、デジタル・ネットワーク106を通
して他の電話102及び基地局104に接続されている可能性がある、基地局1
04でワイヤレスに信号を送信し、及び受信する。このネットワーク・アプリケ
ーションにおいて、特定された設計規則、オペレーション、又はパラメータは、
あらゆるその記号又は図式表現と同様に、プログラム可能カーネル又はソフトウ
ェア・モジュールにおけるプロファイリング及び実装のために、マルチスレッド
を識別し、又はそれらに対応する。More specifically, in a digital wireless communication application, portable mobile radiotelephone 102 may be connected to other telephones 102 and base stations 104 through digital network 106, as described in FIG. 9B. There is a base station 1
At 04, wirelessly transmit and receive signals. In this network application, the specified design rules, operations, or parameters are
Identifies or supports multithreading for profiling and implementation in programmable kernels or software modules, as well as any symbolic or graphical representations thereof.
【0039】
任意で、カーネル・エレメントは、基地局104及び/又は電話ユニット10
2におけるオペレーションのために構成されてもよい。特に、カーネルは、おそ
らく時間的、又は非時間的設計制約に従って、プロファイルされたデータパス、
シーケンサ/有限状態マシン、メモリ、又は他の論理的構造に関して構成されて
もよい。Optionally, the kernel element is a base station 104 and / or a telephone unit 10.
May be configured for operation in 2. In particular, the kernel may be a profiled datapath, perhaps according to temporal or non-temporal design constraints.
It may be configured with respect to a sequencer / finite state machine, memory, or other logical structure.
【0040】
本発明の前述された実施例は、例示及び説明として与えられている。それらは
、本発明を、記述された明確な形式に制約することを意図していない。The above-described embodiments of the present invention are provided by way of illustration and description. They are not intended to limit the invention to the precise form described.
【0041】
特に、本出願人は、ここに説明された本発明の関数的実装は、ハードウェア、
ソフトウェア、ファームウェア、及び/又は他の利用可能な関数的コンポーネン
ト又は構築ブロックで、同等に実装されてもよいと考える。他の変形及び実施例
は、上述の教示に照らして可能であり、本発明の範囲は、この詳細な説明ではな
く、特許請求の範囲によって制約されるものである。In particular, Applicants have found that the functional implementation of the invention described herein is based on hardware,
It is contemplated that software, firmware, and / or other available functional components or building blocks may equally be implemented. Other variations and embodiments are possible in light of the above teachings, and the scope of the invention is limited by the claims rather than the detailed description.
【図1】
図1は、本発明の好ましい実施例である、ソフトウェア及び/又はハードウェ
アにおいて実装するための一般的な方法論及びツール・アーキテクチャの図であ
る。FIG. 1 is a diagram of a general methodology and tool architecture for implementation in software and / or hardware that is a preferred embodiment of the present invention.
【図2A】 図2Aは、本発明の一つの特徴を実装するための機能的ブロック図である。[FIG. 2A] FIG. 2A is a functional block diagram for implementing one aspect of the present invention.
【図2B】 図2Bは、本発明の一つの特徴を実装するための機能的ブロック図である。FIG. 2B FIG. 2B is a functional block diagram for implementing one feature of the present invention.
【図3】 図3は、本発明の異種の特徴を示す、代表的な機能図である。[Figure 3] FIG. 3 is a representative functional diagram showing the different features of the present invention.
【図4】 図4は、本発明の再構成可能な特徴を示す、代表的な機能図である。[Figure 4] FIG. 4 is a representative functional diagram showing the reconfigurable features of the present invention.
【図5】 図5は、本発明のカーネルの特徴を示す、代表的な機能図である。[Figure 5] FIG. 5 is a representative functional diagram showing the features of the kernel of the present invention.
【図6】 図6は、本発明のインターフェースの特徴を示す、代表的な機能図である。[Figure 6] FIG. 6 is a representative functional diagram showing the features of the interface of the present invention.
【図7】
図7は、本発明の一つ以上の特徴を実装するための関数オペレーションを示す
、システム方法論フロー・チャートである。FIG. 7 is a system methodology flow chart illustrating functional operations for implementing one or more features of the present invention.
【図8】
図8は、本発明の一つ以上の特徴を実装するためのソフトウェア・コード・ス
タブを表している。FIG. 8 depicts a software code stub for implementing one or more features of the present invention.
【図9A】 図9Aは、本発明の一つ以上のアプリケーションの代表的機能図である。FIG. 9A FIG. 9A is a representative functional diagram of one or more applications of the present invention.
【図9B】 図9Bは、本発明の一つ以上のアプリケーションの代表的機能図である。FIG. 9B FIG. 9B is a representative functional diagram of one or more applications of the present invention.
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CR,CU,CZ,DE,DK ,DM,DZ,EE,ES,FI,GB,GD,GE, GH,GM,HR,HU,ID,IL,IN,IS,J P,KE,KG,KP,KR,KZ,LC,LK,LR ,LS,LT,LU,LV,MA,MD,MG,MK, MN,MW,MX,MZ,NO,NZ,PL,PT,R O,RU,SD,SE,SG,SI,SK,SL,TJ ,TM,TR,TT,TZ,UA,UG,UZ,VN, YU,ZA,ZW (72)発明者 リーケン キース アメリカ合衆国 カリフォルニア州 95014 クーパティーノ ラ プラーヤ コート 21603 Fターム(参考) 5B013 DD04 DD10 5B076 AA02 AA03 DD01 DD04 5B098 GA05 GC01 GC14 GD01 GD14─────────────────────────────────────────────────── ─── Continued front page (81) Designated countries EP (AT, BE, CH, CY, DE, DK, ES, FI, FR, GB, GR, IE, I T, LU, MC, NL, PT, SE, TR), OA (BF , BJ, CF, CG, CI, CM, GA, GN, GW, ML, MR, NE, SN, TD, TG), AP (GH, G M, KE, LS, MW, MZ, SD, SL, SZ, TZ , UG, ZW), EA (AM, AZ, BY, KG, KZ, MD, RU, TJ, TM), AE, AG, AL, AM, AT, AU, AZ, BA, BB, BG, BR, BY, B Z, CA, CH, CN, CR, CU, CZ, DE, DK , DM, DZ, EE, ES, FI, GB, GD, GE, GH, GM, HR, HU, ID, IL, IN, IS, J P, KE, KG, KP, KR, KZ, LC, LK, LR , LS, LT, LU, LV, MA, MD, MG, MK, MN, MW, MX, MZ, NO, NZ, PL, PT, R O, RU, SD, SE, SG, SI, SK, SL, TJ , TM, TR, TT, TZ, UA, UG, UZ, VN, YU, ZA, ZW (72) Inventor Leeken Keith United States California 95014 Coupatino La Playa Coat 21603 F-term (reference) 5B013 DD04 DD10 5B076 AA02 AA03 DD01 DD04 5B098 GA05 GC01 GC14 GD01 GD14
Claims (15)
システム・ファンクショナリティを処理するための自動化方法であって: システム設計を表す第一のファンクション定義を供給するステップと; 前記第一の関数定義から、前記第一の定義を記号的に表す第二のファンクショ
ン定義を生成するステップであって、前記記号表現は前記システム設計と関連す
る一つ以上のスレッドを識別するステップと;及び 特定されたカーネル・エレメント又はそのセットによって、処理のために各ス
レッドをプロファイルするステップと を具備する方法。1. A multithreaded computer-aided design system
An automated method for handling system functionality comprising: providing a first function definition representative of a system design; from the first function definition, symbolically representing the first definition. Generating a second function definition, the symbolic representation identifying one or more threads associated with the system design; and each identified by the identified kernel element or set thereof for processing. Profiling the thread.
スを識別するステップと;及び 前記オペレーションの共通のシーケンスを、一組の演算子と結びつけるステッ
プと をさらに具備することを特徴とする、請求項1に記載の方法。2. The method further comprising: identifying a common sequence of operations in a thread; and associating the common sequence of operations with a set of operators. The method according to Item 1.
結びつけるステップをさらに具備することを特徴とする、請求項2に記載の方法
。3. The method of claim 2, further comprising the step of associating the set of operators with a sequence of arithmetic operations.
結びつけるステップをさらに具備することを特徴とする、請求項2に記載の方法
。4. The method of claim 2, further comprising the step of associating the set of operators with a sequence of control operations.
又はロケーションのシーケンスと結びつけるステップをさらに具備することを特
徴とする、請求項2に記載の方法。5. The method of claim 2, further comprising the step of associating the set of operators with a sequence of memory access operations or locations.
ァイルされることを特徴とする、請求項1に記載の方法。6. The method according to claim 1, characterized in that one or more threads are profiled according to a time function.
ファンクションを処理し、前記第二のカーネル・エレメントは、第二のスレッド
によって表される第二のファンクションを処理し、前記第一のスレッド及び前記
第二のスレッドはそれぞれ、前記第一のカーネル・エレメント及び前記第二のカ
ーネル・エレメントによってそれぞれ処理するためにプロファイルされ、及び前
記第一のスレッドならびに前記第二のスレッドは、共通ファンクションと結び付
けられることを特徴とする装置。7. A device for multi-threaded processing comprising: a first kernel element; and a second kernel element; said first kernel element being by a first thread. Processing a first function represented, the second kernel element processing a second function represented by a second thread, the first thread and the second thread respectively, An apparatus profiled for processing by the first kernel element and the second kernel element, respectively, and wherein the first thread and the second thread are associated with a common function.
識別可能であり、前記オペレーションの共通シーケンスは、一組の演算子と結び
付けられることを特徴とする、請求項7に記載の装置。8. The apparatus of claim 7, wherein the common sequence of operations is identifiable as a thread and the common sequence of operations is associated with a set of operators.
・オペレーションのシーケンスと結び付けられることを特徴とする、請求項8に
記載の装置。9. The apparatus of claim 8, wherein the set of operators is associated with a sequence of arithmetic, control, or memory access operations.
ァイルされることを特徴とする、請求項7に記載の装置。10. Apparatus according to claim 7, characterized in that the first or second thread is profiled according to a time constraint.
実行可能ソフトウェア・モジュールとして実装されることを特徴とする、請求項
7に記載の装置。11. The apparatus of claim 7, wherein the first and second kernel elements are implemented as one or more executable software modules.
又は無線通信システムの移動電話における、一つ以上のファンクショナル・モジ
ュールとして実装されることを特徴とする、請求項7に記載の装置。12. The first and second kernel elements are implemented as one or more functional modules in a fixed base station or mobile telephone of a wireless communication system. The device according to.
ムであって、各携帯ユニットは、無線信号を通してワイヤレスで前記基地局と通
信してもよい通信システムにおいて: 基地局によって、システム構成を表す第一の信号を生成するステップであって
、前記第一の信号は、前記システム構成における一つ以上のスレッドと結びつい
た一つ以上のファンクション定義を記号で表しており、各スレッドは、携帯ユニ
ットにおいて、特定されたカーネル・エレメントによって処理のためにプロファ
イルされることを特徴とするステップ を具備することを特徴とする信号処理のための方法。13. A communication system comprising a base station and one or more mobile units, wherein each mobile unit may wirelessly communicate with the base station via a radio signal. A step of generating a first signal representing a system configuration, wherein the first signal symbolically represents one or more function definitions associated with one or more threads in the system configuration. A method for signal processing, comprising: in a mobile unit, profiled for processing by a specified kernel element.
ップであって、前記携帯ユニットにおける一つ以上のカーネル・エレメントは、
前記第一の信号に従って、前記システム設計において一つ以上のスレッドを処理
するように構成されていることを特徴とするステップ をさらに具備することを特徴とする、請求項13に記載の方法。14. A step of receiving the first signal by the mobile unit, wherein one or more kernel elements in the mobile unit comprises:
14. The method of claim 13, further comprising the step of being configured to process one or more threads in the system design according to the first signal.
がプロファイルされることを特徴とする、請求項13に記載の方法。15. The method of claim 13, wherein one or more threads are profiled according to a time functional constraint.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US49263400A | 2000-01-27 | 2000-01-27 | |
| US09/492,634 | 2000-01-27 | ||
| PCT/US2001/002982 WO2001055917A1 (en) | 2000-01-27 | 2001-01-29 | Improved apparatus and method for multi-threaded signal processing |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2003521072A true JP2003521072A (en) | 2003-07-08 |
Family
ID=23956997
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2001555391A Pending JP2003521072A (en) | 2000-01-27 | 2001-01-29 | Improved apparatus and method for multithreaded signal processing |
Country Status (6)
| Country | Link |
|---|---|
| JP (1) | JP2003521072A (en) |
| KR (1) | KR100784412B1 (en) |
| AU (1) | AU2001233119A1 (en) |
| DE (1) | DE10195202T1 (en) |
| GB (1) | GB2374701B (en) |
| WO (1) | WO2001055917A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100492296C (en) * | 2005-04-12 | 2009-05-27 | 松下电器产业株式会社 | Processor with a memory having a plurality of memory cells |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7266725B2 (en) | 2001-09-03 | 2007-09-04 | Pact Xpp Technologies Ag | Method for debugging reconfigurable architectures |
| DE19651075A1 (en) | 1996-12-09 | 1998-06-10 | Pact Inf Tech Gmbh | Unit for processing numerical and logical operations, for use in processors (CPU's), multi-computer systems, data flow processors (DFP's), digital signal processors (DSP's) or the like |
| US6542998B1 (en) | 1997-02-08 | 2003-04-01 | Pact Gmbh | Method of self-synchronization of configurable elements of a programmable module |
| DE19861088A1 (en) | 1997-12-22 | 2000-02-10 | Pact Inf Tech Gmbh | Repairing integrated circuits by replacing subassemblies with substitutes |
| US20010049757A1 (en) | 2000-03-01 | 2001-12-06 | Ming-Kang Liu | Programmable task scheduler for use with multiport xDSL processing system |
| US8058899B2 (en) | 2000-10-06 | 2011-11-15 | Martin Vorbach | Logic cell array and bus system |
| AU2002220600A1 (en) | 2000-10-06 | 2002-04-15 | Pact Informationstechnologie Gmbh | Cell system with segmented intermediate cell structure |
| US7444531B2 (en) | 2001-03-05 | 2008-10-28 | Pact Xpp Technologies Ag | Methods and devices for treating and processing data |
| US9037807B2 (en) | 2001-03-05 | 2015-05-19 | Pact Xpp Technologies Ag | Processor arrangement on a chip including data processing, memory, and interface elements |
| US7996827B2 (en) | 2001-08-16 | 2011-08-09 | Martin Vorbach | Method for the translation of programs for reconfigurable architectures |
| US7434191B2 (en) | 2001-09-03 | 2008-10-07 | Pact Xpp Technologies Ag | Router |
| US7577822B2 (en) | 2001-12-14 | 2009-08-18 | Pact Xpp Technologies Ag | Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization |
| US8914590B2 (en) | 2002-08-07 | 2014-12-16 | Pact Xpp Technologies Ag | Data processing method and device |
| US7394284B2 (en) | 2002-09-06 | 2008-07-01 | Pact Xpp Technologies Ag | Reconfigurable sequencer structure |
| US7657893B2 (en) * | 2003-04-23 | 2010-02-02 | International Business Machines Corporation | Accounting method and logic for determining per-thread processor resource utilization in a simultaneous multi-threaded (SMT) processor |
| US7693257B2 (en) | 2006-06-29 | 2010-04-06 | Accuray Incorporated | Treatment delivery optimization |
| CN107193539B (en) * | 2016-03-14 | 2020-11-24 | 北京京东尚科信息技术有限公司 | Multithreaded concurrent processing method and multithreaded concurrent processing system |
| US11288072B2 (en) * | 2019-09-11 | 2022-03-29 | Ceremorphic, Inc. | Multi-threaded processor with thread granularity |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4821220A (en) * | 1986-07-25 | 1989-04-11 | Tektronix, Inc. | System for animating program operation and displaying time-based relationships |
| US5519867A (en) * | 1993-07-19 | 1996-05-21 | Taligent, Inc. | Object-oriented multitasking system |
| US5537226A (en) * | 1994-11-22 | 1996-07-16 | Xerox Corporation | Method for restoring images scanned in the presence of vibration |
| US5870588A (en) * | 1995-10-23 | 1999-02-09 | Interuniversitair Micro-Elektronica Centrum(Imec Vzw) | Design environment and a design method for hardware/software co-design |
| US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
| US6112020A (en) * | 1996-10-31 | 2000-08-29 | Altera Corporation | Apparatus and method for generating configuration and test files for programmable logic devices |
-
2001
- 2001-01-29 JP JP2001555391A patent/JP2003521072A/en active Pending
- 2001-01-29 WO PCT/US2001/002982 patent/WO2001055917A1/en not_active Ceased
- 2001-01-29 KR KR1020027009711A patent/KR100784412B1/en not_active Expired - Fee Related
- 2001-01-29 AU AU2001233119A patent/AU2001233119A1/en not_active Abandoned
- 2001-01-29 DE DE10195202T patent/DE10195202T1/en not_active Ceased
- 2001-01-29 GB GB0217126A patent/GB2374701B/en not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100492296C (en) * | 2005-04-12 | 2009-05-27 | 松下电器产业株式会社 | Processor with a memory having a plurality of memory cells |
Also Published As
| Publication number | Publication date |
|---|---|
| GB2374701A (en) | 2002-10-23 |
| AU2001233119A1 (en) | 2001-08-07 |
| KR20030004327A (en) | 2003-01-14 |
| KR100784412B1 (en) | 2007-12-11 |
| DE10195202T1 (en) | 2003-04-30 |
| GB2374701B (en) | 2004-12-15 |
| GB0217126D0 (en) | 2002-09-04 |
| WO2001055917A1 (en) | 2001-08-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2003521072A (en) | Improved apparatus and method for multithreaded signal processing | |
| EP1953649B1 (en) | Reconfigurable integrated circuit | |
| Wan et al. | Design methodology of a low-energy reconfigurable single-chip DSP system | |
| US20060026578A1 (en) | Programmable processor architecture hirarchical compilation | |
| JPWO2001016711A1 (en) | Program product and data processing device | |
| US20150261723A1 (en) | Method and system for managing hardware resources to implement system functions using an adaptive computing architecture | |
| Yi et al. | An ILP formulation for task mapping and scheduling on multi-core architectures | |
| Zhong et al. | Floorplanning and topology synthesis for application-specific network-on-chips | |
| Zheng et al. | StreamNet: Memory-efficient streaming tiny deep learning inference on the microcontroller | |
| Rakhmatov et al. | Hardware-software bipartitioning for dynamically reconfigurable systems | |
| KNEIP et al. | Single chip programmable baseband ASSP for 5 GHz wireless LAN applications | |
| Liang et al. | SmartCell: A power-efficient reconfigurable architecture for data streaming applications | |
| US20240152357A1 (en) | Programmable Logic Device-Based Software-Defined Vector Engines | |
| Wildermann et al. | Symbolic design space exploration for multi-mode reconfigurable systems | |
| Jun et al. | Topology synthesis of cascaded crossbar switches | |
| Dasu et al. | Reconfigurable media processing | |
| Auras et al. | CMA: Chip multi-accelerator | |
| Holzer et al. | Efficient design methods for embedded communication systems | |
| Bossuet et al. | Targeting tiled architectures in design exploration | |
| Thepayasuwan et al. | Layout conscious approach and bus architecture synthesis for hardware/software codesign of systems on chip optimized for speed | |
| Lysecky et al. | Efficient reconfiguration methods to enable rapid deployment of runtime reconfigurable systems | |
| Friebe et al. | HiBRID-SoC: a system-on-chip architecture with two multimedia DSPs and a RISC core | |
| Krichene et al. | Master-Slave Control structure for massively parallel System on Chip | |
| Bossuet et al. | Communication costs driven design space exploration for reconfigurable architectures | |
| Vallina et al. | Distributed processing network architecture for reconfigurable computing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050128 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080111 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110901 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111201 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111208 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120301 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120329 |