JP2009505486A - Multi-mode wireless broadband signal processor system and method - Google Patents
Multi-mode wireless broadband signal processor system and method Download PDFInfo
- Publication number
- JP2009505486A JP2009505486A JP2008525972A JP2008525972A JP2009505486A JP 2009505486 A JP2009505486 A JP 2009505486A JP 2008525972 A JP2008525972 A JP 2008525972A JP 2008525972 A JP2008525972 A JP 2008525972A JP 2009505486 A JP2009505486 A JP 2009505486A
- Authority
- JP
- Japan
- Prior art keywords
- address
- processor
- memory
- input
- read
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Abstract
無線広帯域信号処理システムは、プログラムメモリ、命令コントローラおよび処理装置を備える。このシステムは、サンプルバッファ、1ポートメモリおよび4ポートメモリを備えることも可能である。プログラムメモリは、命令コントローラによって用いられる、プログラムされた命令を格納する。処理装置は、復調処理などのベクトル処理を実行するように構成される。1つの処理装置は各クロックにおいて計算される畳み込み演算用に構成され、別の処理装置は各クロックにおいて基数4のバタフライが実行されるFFT機能用に構成され、さらに別の処理装置は、逆拡散、ベクトル加算、ベクトル減算、内積および成分毎の乗算など、他のベクトル演算用に構成されることが可能である。システムは診断データを収集し、複数のネットワークを通じて動作し、ベースバンド回路を削減し、マルチモード動作を最大化することが可能である。 The wireless broadband signal processing system includes a program memory, an instruction controller, and a processing device. The system can also include a sample buffer, a 1 port memory and a 4 port memory. The program memory stores programmed instructions used by the instruction controller. The processing device is configured to perform vector processing such as demodulation processing. One processing unit is configured for the convolution operation calculated at each clock, another processing unit is configured for an FFT function where a radix-4 butterfly is performed at each clock, and yet another processing unit is despread , Vector addition, vector subtraction, inner product and component-by-component multiplication can be configured for other vector operations. The system can collect diagnostic data and operate through multiple networks, reducing baseband circuitry and maximizing multi-mode operation.
Description
本発明は通信システムおよび方法に関する。より詳細には、本発明はマルチモード無線広帯域信号プロセッサシステムおよび方法に関する。 The present invention relates to communication systems and methods. More particularly, the present invention relates to multimode wireless broadband signal processor systems and methods.
無線装置は、ますます高いデータレートを取扱う性能を必要としている。マルチメディアコンテンツに適合するために、例えば、無線装置のデータレートが有線接続の装置の広帯域レートと一致することが必要な場合がある。無線装置のユーザは、複数の無線ネットワーク化技術によって異なる種類のコンテンツおよびサービスを取得するために、ますます多機能な、多技術の装置を要求している。 Wireless devices need the ability to handle increasingly higher data rates. In order to adapt to multimedia content, for example, the data rate of a wireless device may need to match the broadband rate of a wired device. Wireless device users are increasingly demanding multifunctional, multi-technology devices to acquire different types of content and services through multiple wireless networking technologies.
小型の携帯装置へ広帯域機能を実装する多くの試みがなされている。例えば、Wi−Fi802.11として一般に知られている無線データ技術では、高品質(高解像度)のストリーミングビデオおよびイメージコンテンツなどの要求用途を取扱うための高速性能が提供される。しかしながら、従来の802.11の実装では、ユーザが許容可能である、電力消費量パラメータが満たされることはない。現在利用可能である電力消費が最低の802.11の実装でも、バッテリ駆動の装置では、「通話時間」(音声、データまたはビデオが転送されている作動状態)は非常に制限される。 Many attempts have been made to implement broadband functions in small portable devices. For example, wireless data technology commonly known as Wi-Fi 802.11 provides high speed performance to handle demand applications such as high quality (high resolution) streaming video and image content. However, conventional 802.11 implementations do not satisfy the power consumption parameters that are acceptable to the user. Even with 802.11 implementations that currently have the lowest power consumption, battery-operated devices are very limited in “talk time” (the operational state in which voice, data or video is being transferred).
許容可能な電力消費の802.11の実装の考案を除き、別の課題は、802.11、Bluetooth(登録商標)、UWB(Ultra Wideband)、WiMax(802.16d、802.16e)、802.20ならびに3Gおよび4Gのセルラーシステムなど、2つ以上のネットワーク化動作モードをサポートする無線実装を確立することである。無線装置は様々な無線ネットワーク化技術を提供可能である必要がある。1つの装置において複数のネットワーク化標準および技術にしたがって動作する性能は、「マルチモード」機能と呼ばれる。 Other than the idea of 802.11 implementation of acceptable power consumption, other issues are 802.11, Bluetooth®, UWB (Ultra Wideband), WiMax (802.16d, 802.16e), 802. Establishing a wireless implementation that supports more than one networked mode of operation, such as 20 and 3G and 4G cellular systems. The wireless device needs to be able to provide various wireless networking technologies. The ability to operate according to multiple networking standards and technologies on a single device is called a “multi-mode” function.
大抵の従来の移動体装置は、デジタル信号プロセッサ(DSP)ベースであるか、特定用途向け集積回路(ASIC)ベースであるか、あるいはASIC/DSPのハイブリッドアーキテクチャである。電力効率、設計の柔軟性、および費用など、いくつかの技術的考察によれば、いずれの手法も広帯域無線に適切ではない。アーキテクチャの限界のため、従来のアプローチでは、電力消費の犠牲によってのみ高いデータレートを提供することができ、許容不能な短いバッテリ寿命が生じる。 Most conventional mobile devices are digital signal processor (DSP) based, application specific integrated circuit (ASIC) based, or ASIC / DSP hybrid architectures. According to some technical considerations such as power efficiency, design flexibility, and cost, neither approach is suitable for broadband radio. Due to architectural limitations, conventional approaches can provide high data rates only at the expense of power consumption, resulting in unacceptably short battery life.
日々新たな無線標準が導入されているので、それらの急速に発展する標準に継続的に適合するには、従来のASIC設計は充分に柔軟でない。新たな標準について集積回路設計サイクルが開始されると、必然的に発生する変更によって、再びASICチップのスクラッチまたは再スピンから開始する必要がある。1つの装置上にエンドユーザの要求する複数の無線機能を提供するために、ASICおよびDSPアプローチでは単純に追加の「処理回路」を並列にスタックすることによってマルチモード機能がサポートされており、これによって各々の新たなモードのための装置容積および製造者負担が著しく増大している。 As new wireless standards are introduced every day, traditional ASIC designs are not flexible enough to continually meet these rapidly evolving standards. When an integrated circuit design cycle is started for a new standard, the inevitably changes need to start again from scratching or re-spinning the ASIC chip. To provide multiple wireless functions required by the end user on a single device, the ASIC and DSP approaches support multi-mode functionality by simply stacking additional “processing circuits” in parallel, Greatly increases the equipment volume and manufacturer burden for each new mode.
広帯域性能および低電力消費を備えるマルチモード通信を提供する、通信システムおよびアーキテクチャの必要が存在する。また、論理アナライザによる観察および解析のために高周波数で通信装置の高等診断データを収集する性能の必要も存在する。さらに、複数のネットワークおよび複数の通信標準を通じて機能することの可能な無線通信装置を提供する必要が存在する。さらに、ベースバンド回路を削減し、ASICアルゴリズムを改良して極度に低電力/低費用であることの利点を得て、処理能力を上昇させ、電力消費、ゲート数、およびシリコン費用を削減する必要が存在する。 There is a need for a communication system and architecture that provides multi-mode communication with broadband performance and low power consumption. There is also a need for the ability to collect higher diagnostic data of communication devices at high frequencies for observation and analysis with a logic analyzer. Furthermore, there is a need to provide a wireless communication device that can function through multiple networks and multiple communication standards. In addition, the need to reduce baseband circuitry, improve ASIC algorithms to gain the benefits of extremely low power / low cost, increase throughput, reduce power consumption, gate count, and silicon costs Exists.
また、そのような通信システムにおいて入力および出力を制御する必要や、複数の通信標準を取扱うためのマルチモード無線処理システムにおいてサンプルバッファへの接続レートを動的に制御する必要も存在する。さらに、マルチモード無線処理システムにおいてプロセッサとのインタフェースを行う必要が存在する。さらに、電力消費を最小化するように、高速フーリエ変換(FFT)を実行する必要が存在する。さらに、タスクのコンテキストに基づき、タスクおよびそのタスクのコンポーネントの動作の実行に優先順位を付ける性能の必要が存在する。また、マルチモード無線広帯域システムにおいて畳み込み演算を実行する必要が存在する。 There is also a need to control input and output in such a communication system and to dynamically control the connection rate to the sample buffer in a multi-mode wireless processing system for handling multiple communication standards. Furthermore, there is a need to interface with a processor in a multimode wireless processing system. Furthermore, there is a need to perform a Fast Fourier Transform (FFT) so as to minimize power consumption. In addition, there is a need for the ability to prioritize the execution of tasks and component operations based on the task context. There is also a need to perform convolution operations in multimode wireless broadband systems.
代表的な一実施形態は、プロセッサ診断データを取得するための方法に関する。この方法は、命令を受信する工程と、診断メモリに対する出力通信ストリームの書込アクセスを可能とする工程と、第1の周波数で診断メモリへの書込を行う工程と、第2の周波数で診断メモリからの読取を行う工程とを含むことが可能である。ここで、第1の周波数は第2の周波数より大きい。 One exemplary embodiment relates to a method for obtaining processor diagnostic data. The method includes receiving an instruction, enabling write access of the output communication stream to the diagnostic memory, writing to the diagnostic memory at a first frequency, and diagnosing at a second frequency. Reading from the memory. Here, the first frequency is greater than the second frequency.
別の代表的な実施形態は、プロセッサ診断データを取得するためのシステムに関する。このシステムは、複数の命令を格納しているメモリと、複数の命令を受信して実行するコントローラと、第1の周波数で通信データを受信し、第2の周波数で通信データを出力する診断メモリとを含むことが可能である。ここで、第1の周波数は第2の周波数より大きい。 Another exemplary embodiment relates to a system for obtaining processor diagnostic data. The system includes a memory that stores a plurality of instructions, a controller that receives and executes the plurality of instructions, and a diagnostic memory that receives communication data at a first frequency and outputs communication data at a second frequency. Can be included. Here, the first frequency is greater than the second frequency.
別の代表的な実施形態は、マルチモード無線処理システムにおいて入力および出力を制御する方法に関する。この方法は、マルチモード無線処理システムにおいて通信のための命令を受信する工程と、所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを、受信された命令のフィールドから決定する工程とを含むことが可能である。 Another exemplary embodiment relates to a method for controlling input and output in a multi-mode wireless processing system. The method determines from a received command field whether to receive a command for communication in a multi-mode wireless processing system and whether a given processing device generates output data or receives input data. It is possible to include the process of carrying out.
別の代表的な実施形態は、マルチモード無線処理システムにおいて処理装置とのインタフェースを行うための入力/出力コンポーネントの構成に関する。この構成は、マルチモード無線処理システムにおいて処理装置へ入力データを供給するための複数の汎用入力と、マルチモード無線処理システムにおいて処理装置によって生成される出力データを受信するための複数の汎用出力とを含む。 Another exemplary embodiment relates to the configuration of input / output components for interfacing with a processing device in a multi-mode wireless processing system. This configuration includes a plurality of general-purpose inputs for supplying input data to a processing device in a multi-mode wireless processing system, and a plurality of general-purpose outputs for receiving output data generated by the processing device in the multi-mode wireless processing system. including.
別の代表的な実施形態は、マルチモード無線処理システムにおいて入力および出力を制御するためのシステムに関する。このシステムは、マルチモード無線プロセッサシステムにおける命令を含むメモリと、命令を受信し、命令のフィールドから、マルチモード無線処理システムにおける所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを決定するコントローラとを含むことが可能である。 Another exemplary embodiment relates to a system for controlling input and output in a multi-mode wireless processing system. The system receives memory and instructions including instructions in a multimode wireless processor system, and from a field of instructions, a predetermined processing device in the multimode wireless processing system generates output data or receives input data. And a controller for determining whether or not.
別の代表的な実施形態は、マルチモード処理システムにおいてサンプルバッファへの接続レートを動的に制御する方法に関する。この方法は、マルチモード無線処理システムにおいて通信用の命令を受信する工程と、データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次(serially)接続されるレートを決定する工程とを含むことが可能である。 Another exemplary embodiment relates to a method for dynamically controlling a connection rate to a sample buffer in a multi-mode processing system. The method includes receiving a command for communication in a multimode wireless processing system, and a rate at which a plurality of buffers are serially connected to elements external to the multimode wireless processing system for receiving or transmitting data. Can be included.
別の代表的な実施形態は、マルチモード処理システムにおいてサンプルバッファへの接続レートを動的に制御するためのシステムに関する。このシステムは、マルチモード無線処理システムにおけるマルチモード無線プロセッサ通信用の命令を含むメモリと、命令を受信し、データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次接続されるレートを決定するコントローラとを含むことが可能である。 Another exemplary embodiment relates to a system for dynamically controlling a connection rate to a sample buffer in a multi-mode processing system. The system includes a memory containing instructions for multimode wireless processor communication in a multimode wireless processing system, and a plurality of buffers to elements external to the multimode wireless processing system for receiving instructions and receiving or transmitting data. A controller for determining a rate of serial connection.
別の代表的な実施形態は、2つのプロセッサのインタフェースを行う方法に関する。この方法は、第1のプロセッサに直接的にアクセス可能でないメモリにアクセスするために第1のプロセッサにて読取/書込要求を生成する工程と、ターゲットメモリへの直接的なアクセスを有する第2のプロセッサにて読取/書込要求を受信する工程と、第2のプロセッサにて読取/書込動作を完了する工程と、読取/書込動作が完了したことの表示(indication)を第1のプロセッサにて受信する工程とを含むことが可能である。 Another exemplary embodiment relates to a method for interfacing two processors. The method includes generating a read / write request at the first processor to access memory that is not directly accessible to the first processor, and a second having direct access to the target memory. The first processor receives the read / write request, the second processor completes the read / write operation, and an indication that the read / write operation is complete. Receiving at the processor.
別の代表的な実施形態は、2つのプロセッサのインタフェースを行うためのシステムに関する。このシステムは、第1のプロセッサに直接的にアクセス可能でないメモリにアクセスするために読取/書込要求を生成する第1のプロセッサと、読取/書込要求を受信し、ターゲットメモリへの直接的なアクセスを有し、読取/書込動作を完了させる第2のプロセッサと、ターゲットメモリと、第1のプロセッサと第2のプロセッサとの間で通信を行うための手段とを含むことが可能である。 Another exemplary embodiment relates to a system for interfacing two processors. The system includes a first processor that generates a read / write request to access memory that is not directly accessible to the first processor, and receives the read / write request directly to the target memory. A second processor that has complete access and completes the read / write operation, a target memory, and means for communicating between the first processor and the second processor. is there.
別の代表的な実施形態は、2つのプロセッサの間のインタフェースに関する。このインタフェースは、第1のプロセッサにて読取/書込要求を生成するための手段と、いずれかのプロセッサによって状態ビットを設定するための手段と、両方のプロセッサによって状態ビットのポーリングを行うための手段と、2つのプロセッサの間で追加のデータの通信を行うための手段とを含むことが可能である。 Another exemplary embodiment relates to an interface between two processors. The interface includes means for generating a read / write request at the first processor, means for setting a status bit by either processor, and polling of the status bit by both processors. Means and means for communicating additional data between the two processors may be included.
別の代表的な実施形態は、マルチモード無線処理システムにおいて高速フーリエ変換(FFT)を実行する方法に関する。この方法は、入力ベクトルを入力バッファにロードする工程と、第2のカウンタおよび変数Nを初期化する工程と、FFTステージを実行する工程と、sをNと比較し、s=Nとなるまで追加のFFTステージを実行する工程とを含むことが可能である。ここで、N=log2(入力ベクトルサイズ)であり、sは第2のカウンタの値である。FFTステージは、入力バッファのデータに対しベクトル演算を実行する工程と、結果を出力バッファに送信する工程と、第2のカウンタの値を進める工程と、入力バッファおよび出力バッファの役割を切り替える工程とを含むことが可能である。FFTステージにおけるベクトル演算は、一度に4つの入力データに対し基数4(Radix−4)のFFTベクトル演算を実行する工程と、その結果得られる出力ベクトルに回転(Twiddle)因子を乗算する工程とを含むことが可能である。回転因子を生成する方法は、回転因子の制御操作のための制御語を生成する工程と、生成された回転アドレスに基づきメモリから回転因子にアクセスする必要がある否かを判定する工程とを含むことが可能である。回転因子にアクセスする必要がある場合、回転因子を生成する方法は、さらに、メモリから回転因子の読取を行う工程と、制御語に基づき回転因子を操作する工程と、操作された回転因子を処理装置に格納する工程とを含むことが可能である。 Another exemplary embodiment relates to a method for performing a Fast Fourier Transform (FFT) in a multi-mode wireless processing system. The method includes loading an input vector into an input buffer, initializing a second counter and variable N, executing an FFT stage, and comparing s with N until s = N. Performing additional FFT stages. Here, N = log 2 (input vector size), and s is the value of the second counter. The FFT stage includes a step of performing a vector operation on the data in the input buffer, a step of transmitting the result to the output buffer, a step of advancing the value of the second counter, and a step of switching the roles of the input buffer and the output buffer. Can be included. The vector operation in the FFT stage includes a step of executing a radix-4 (Radix-4) FFT vector operation on four input data at a time, and a step of multiplying an output vector obtained as a result by a twiddle factor. It is possible to include. A method of generating a twiddle factor includes generating a control word for a twiddle factor control operation and determining whether the twiddle factor needs to be accessed from memory based on the generated rotation address. It is possible. If the twiddle factor needs to be accessed, the method for generating the twiddle factor further includes reading the twiddle factor from memory, manipulating the twiddle factor based on the control word, and processing the manipulated twiddle factor. Storing in the device.
別の代表的な実施形態は、マルチモード無線処理システムにおいて高速フーリエ変換(FFT)を実行するためのシステムに関する。このシステムは、処理装置へ算術関数を提供するためのメモリと、FFTアルゴリズムを実行するための命令を格納しているプログラムメモリと、プログラムメモリから命令を受信し、実行するための命令コントローラと、FFTアルゴリズムの連続的なFFTステージにおいて入力バッファおよび出力バッファとして交互に機能する1対のバッファとを含むことが可能である。 Another exemplary embodiment relates to a system for performing a Fast Fourier Transform (FFT) in a multi-mode wireless processing system. The system includes a memory for providing arithmetic functions to a processing device, a program memory storing instructions for executing an FFT algorithm, an instruction controller for receiving and executing instructions from the program memory, It is possible to include a pair of buffers that function alternately as input and output buffers in successive FFT stages of the FFT algorithm.
この代表的な実施形態における処理装置は、4つの入力ベクトルに対し8つの複素加算を実行し、4つの出力ベクトルを生成する基数4のFFTエンジンと、入力バッファから4つの入力ベクトルを逐次受信し、4つの入力ベクトルを基数4のFFTエンジンへ並列に送信するためのシリアル−パラレル変換器と、4つの生成された出力ベクトルを並列に受信し、回転乗算器および出力バッファへ4つの出力ベクトルを逐次出力するためのパラレル−シリアル変換器と、操作された回転因子を処理装置に格納するための1組のレジスタと、制御語に基づき回転因子を操作する回転オクタント(octant)操作器と、所与のFFTステージにおけるFFTアルゴリズムの進行を監視するためのループ変数として用いられるマスターカウンタと、FFTアルゴリズムの現在のステージを追跡するためのループ変数として用いられる第2のカウンタと、入力バッファアドレスを生成する入力アドレス生成器と、最終FFTステージが実行されており、かつ、Nが奇数のときを除いて、すべてのFFTステージにおいて入力バッファアドレスが出力バッファアドレスとして用いられることと、N=log2(入力バッファのデータのサイズ)であることと、予備回転アドレスを生成するための回転アドレス生成器と、Nが奇数の場合、最終FFTステージにおいて出力バッファアドレスを生成するダイビット(DiBit)インタリーブ処理生成器と、制御語および最終回転因子アドレスを生成するための回転アドレス乗算器とを含むことが可能である。 The processor in this exemplary embodiment performs a radix-4 FFT engine that performs eight complex additions on four input vectors and generates four output vectors, and sequentially receives the four input vectors from the input buffer. A serial-to-parallel converter for transmitting four input vectors in parallel to a radix-4 FFT engine, and four generated output vectors received in parallel, and four output vectors to a rotary multiplier and output buffer A parallel-serial converter for sequential output, a set of registers for storing the manipulated twiddle factor in the processor, a rotary octant manipulator for manipulating the twiddle factor based on the control word, Master counter used as a loop variable to monitor the progress of the FFT algorithm at a given FFT stage , A second counter used as a loop variable to track the current stage of the FFT algorithm, an input address generator for generating an input buffer address, a final FFT stage is executed, and N is an odd number Except time, input buffer address is used as output buffer address in all FFT stages, N = log 2 (size of data in input buffer), rotation address for generating preliminary rotation address A generator, a dibit interleave processing generator that generates an output buffer address in the final FFT stage if N is odd, and a rotation address multiplier for generating a control word and a final twiddle factor address Is possible.
別の代表的な実施形態は、プロセッサ診断データを取得するためのシステムに関する。このシステムは、複数の命令を格納しているメモリと、複数の命令を受信して実行するコントローラと、第1の周波数で通信データを受信し、第2の周波数で通信データを出力する診断メモリとを含むことが可能である。ここで、第1の周波数は第2の周波数より大きい。 Another exemplary embodiment relates to a system for obtaining processor diagnostic data. The system includes a memory that stores a plurality of instructions, a controller that receives and executes the plurality of instructions, and a diagnostic memory that receives communication data at a first frequency and outputs communication data at a second frequency. Can be included. Here, the first frequency is greater than the second frequency.
別の代表的な実施形態は、プロセッサ診断データを取得するためのシステムに関する。このシステムは、プログラムメモリから命令を受信するコントローラと、受信される命令に基づきコントローラによってデータの受信が可能とされる診断メモリとを含むことが可能である。診断メモリは、第1の周波数で通信データを受信し、第2の周波数で通信データを出力する。ここで、第1の周波数は第2の周波数より大きい。このシステムは、さらに、データを第2のレートで通信するために、診断メモリに結合されている外部インタフェースを含むことが可能である。 Another exemplary embodiment relates to a system for obtaining processor diagnostic data. The system can include a controller that receives instructions from the program memory and a diagnostic memory that can receive data by the controller based on the received instructions. The diagnostic memory receives communication data at the first frequency and outputs communication data at the second frequency. Here, the first frequency is greater than the second frequency. The system can further include an external interface coupled to the diagnostic memory for communicating data at the second rate.
別の代表的な実施形態は、時間間隔内で命令コンテキスト間の切替を行う方法に関する。この方法は、時間間隔内に実行を完了するクリティカルタスク動作を実行する工程と、クリティカルタスクは複数のクリティカルタスク動作を含むことと、時間間隔の境界を越えることの可能な非クリティカルタスク動作を実行する工程と、非クリティカルタスクは複数の非クリティカルタスク動作を含むことと、時間間隔において開始されたクリティカルタスク動作および非クリティカルタスク動作が次の時間間隔が開始する前に完了されている場合、クリティカルタスク動作および非クリティカルタスク動作の実行されないスリープモードに入る工程と、を含むことが可能である。 Another exemplary embodiment relates to a method for switching between instruction contexts within a time interval. This method executes a critical task operation that completes execution within a time interval, the critical task includes multiple critical task operations, and performs non-critical task operations that can cross time interval boundaries. And a non-critical task contains multiple non-critical task actions and is critical if critical and non-critical task actions started in a time interval are completed before the next time interval starts. Entering a sleep mode in which task operations and non-critical task operations are not performed.
別の代表的な実施形態は、マルチモード無線処理システムにおいて畳み込み演算を実行するための方法に関する。この方法は、アドレス生成器に初期値および刻み値(stride value)をロードする工程と、初期値および刻み値に基づきアドレスを生成する工程と、生成したアドレスを一連のメモリへ供給する工程と、入力データを一連のレジスタへロードする工程と、各レジスタに関連したメモリの生成したアドレスに格納されている値に各レジスタの内容を乗算する工程と、その結果得られる乗算の積を加算する工程と、その結果得られる総和にづき出力を生成する工程とを含むことが可能である。メモリの数およびレジスタの数は等しく、各レジスタは関連するメモリを有する。 Another exemplary embodiment relates to a method for performing a convolution operation in a multi-mode wireless processing system. The method includes loading an initial value and a step value into an address generator, generating an address based on the initial value and the step value, and supplying the generated address to a series of memories; Loading input data into a series of registers, multiplying the value stored in the address generated by the memory associated with each register with the contents of each register, and adding the product of the resulting multiplications And generating an output based on the resulting sum. The number of memories and the number of registers are equal and each register has an associated memory.
別の代表的な実施形態は、マルチモード無線処理システムにおいて畳み込み演算を実行するためのシステムに関する。このシステムは、初期値および刻み値の与えられるアドレスを生成するためのアドレス生成器と、一連のメモリと、入力値を格納するための一連のレジスタと、一連の複素乗算器と、一連の複素乗算器、レジスタおよびメモリの数は等しいことと、各乗算器は1つのレジスタおよび1つのメモリに関連していることと、各乗算器は、関連するレジスタの内容と、関連するメモリの生成したアドレスに格納されている値との積を生成することと、一連の積を加算し、積の総和を生成する複素加算木とを含むことが可能である。 Another exemplary embodiment relates to a system for performing convolution operations in a multi-mode wireless processing system. The system includes an address generator for generating addresses given initial and step values, a series of memories, a series of registers for storing input values, a series of complex multipliers, and a series of complex multipliers. The number of multipliers, registers and memories is equal, each multiplier is associated with one register and one memory, each multiplier is associated with the contents of the associated register and the associated memory generated It is possible to include generating a product with the value stored at the address and adding a series of products to generate a sum of products.
図1には、無線広帯域信号処理システム10を示す。無線広帯域信号処理システム10は、プログラムメモリ12、命令コントローラ14、および処理装置16,18,20を備えることが可能である。また、このシステム10は、サンプルバッファ22,24,26と、1ポート(single−port)メモリ28,30,32と、4ポートメモリ34,36とを備えることが可能である。プログラムメモリ12は、命令コントローラ14によって用いられる、プログラムされた命令を格納する。処理装置16,18,20は、復調処理などのベクトル処理を実行するように構成される。例えば、処理装置16は、各クロックにおいて計算される畳み込み演算用に構成されることが可能であり、処理装置18は、各クロックにおいて基数4のバタフライが実行されるFFT機能用に構成されることが可能であり、処理装置20は、逆拡散、ベクトル加算、ベクトル減算、内積および成分毎の乗算など、他のベクトル演算用に構成されることが可能である。追加の処理装置、より少ない処理装置、または異なる処理装置を備えることが可能である。1つ以上の代表的な実施形態では、処理装置16,18,20へ算術関数を提供するためにメモリ38を備える。メモリ38は、リードオンリメモリ(ROM)であることが可能である。
FIG. 1 shows a wireless broadband
命令コントローラ14は、プログラムメモリ12からベクトル命令を受信する。受信されたベクトル命令に基づき、命令コントローラ14は入力および出力用のポートメモリを選択することが可能である。無線広帯域信号処理システム10の代表的な動作は、「デジタル変調・復調を実行するマルチモードの方法および装置(Multi−Mode Method and Apparatus for Performing Digital Modulation and Demodulation)」と題する米国特許出願第10/613,476号明細書に記載されている。その全体を引用によって本明細書に援用する。
The
無線広帯域信号処理システム10は、さらに診断メールボックス44を備える。診断メールボックス44はランダムアクセスメモリ(RAM)などのメモリであり、処理装置の出力へ(示すように)または無線広帯域信号処理システム10の入力へ結合されている。いずれの実装においても、診断メールボックス44は高周波数で通信データを受信し、より低い周波数で論理アナライザ46へ通信データを送信する。論理アナライザ46は診断メールボックス44の内容のログを生成する。次いで、無線広帯域信号処理システム10の動作を理解し、デバッグ動作、故障解析などを実行するために、診断メールボックス44の内容を調査、研究することが可能である。
The wireless broadband
図2には、代表的な一実施形態による診断メールボックス44の使用を示す。動作中、命令コントローラ14はプログラムメモリ12から命令を受信する。この命令は、通信されている命令の種類に関する情報を有する診断メールボックスフィールドを含む。診断メールボックス44へ出力ストリームの書込が行われる場合、診断メールボックスフィールドは論理値1(logical one)に設定される。命令コントローラ14は、ベクトル命令出力期間に診断メールボックス44の書込アクセスが可能となるように、必要な時間整列を実行する。診断メールボックス44に対する書込の発生するレートは、Fwbspである。診断メールボックス44からの読取動作は、より低い同期レートFreadで発生する。これは、チップ外(off−chip)のアクセスにおいてサポート可能なレートである。代表的な一実施形態では、同期レートFreadは40MHz以下であり、40MHz以上であるFwbspの1/5〜1/10である。Fread≧NFwbspであり、ここでNは、診断メールボックスフィールドが1に設定される命令に関連しているクロックの逆数である。
FIG. 2 illustrates the use of a
代替の一実施形態では、プログラムメモリ12から受信されるベクトル命令が変化する場合には常に、命令コントローラ14は、診断メモリに対する書込アクセスを可能とする。これによって、診断メールボックス44が出力ストリームの連続的なログを提供することが可能となる。
In an alternative embodiment, the
図3には、診断メールボックスが2ポート(dual−port)RAM 54を介して実装される、好適な一実施形態を示す。2ポートRAM 54の外部の論理部(図示せず)は、アドレスの値がRAMの物理サイズを超えるときに0に戻る(wrap)こと(例えば、アドレスシーケンスは、N−3,N−2,N−1,0,1,2,...であり、ここでNは、2ポートRAM 54においてアクセス可能な位置の数である)を除き、各アクセスの後、読取アドレスおよび書込アドレスを連続的にインクリメントする。したがって、2ポートRAM 54はFIFOのように機能する。
FIG. 3 illustrates a preferred embodiment in which the diagnostic mailbox is implemented via a dual-
診断可能化命令に関連した命令の出力が生成されるとき、2ポートRAM 54の書込ポートは使用可能となる。2ポートRAM 54の読取ポートは、書込ポートより低い周波数で動作する。書込アドレスA_writeが読取アドレスA_readより大きいとき、2ポートは、A_write=A_readとなるまで、読取ポートの外からクロック提供される有効な情報を有する。A_writeが大きくなりすぎて、読取ポートの外からクロック提供されるものを超えて情報の書込が行われる場合、エラー状態を指示するオーバフローインジケータが設定され、ラッチされる。
When the output of the instruction associated with the diagnostic enable instruction is generated, the write port of the 2-
代表的な一実施形態では、メールボックスサポート論理部53は、2ポートRAM 54が動作を実行するのを補助する命令を備える。メールボックスサポート論理部53は、書込アドレスおよび読取アドレスを受信する。この情報に応じて、メールボックスサポート論理部53は、オーバフローインジケータを通信することが可能である。オーバフローインジケータは、上述のように、2ポートRAM 54に情報の書込が行われること(診断メールボックス44は一杯であること)を示す。2ポートRAM 54がデータを受信する準備ができていること(診断メールボックス44は空であること)を示すために、エンプティインジケータを通信することが可能である。メールボックスサポート論理部53は、診断ストリームを介して論理アナライザ46へRAMデータが通信されるとき、2ポートRAM 54に読取可能信号を通信する。
In one exemplary embodiment, the
図4には、汎用入力出力(GPIO)命令フィールドを含むプログラムメモリ12から受信される命令の、命令コントローラ14による処理を示す。Nビットを有するGPIO命令フィールドは、GPI(汎用入力)もしくはGPO(汎用出力)を指示すること、またはゼロのGPIOコードによって、いずれも指示しないことが可能である。Nビットのフィールドによって、2N−1のGPIおよびGPOの組合せまで、アドレス指定を行うことが可能である。GPIOコードによって、命令コントローラ14のトリガを行い、GPI選択論理部55またはGPO選択論理部57を用いることが可能である。
FIG. 4 shows the processing by the
汎用出力(GPO)動作を用いて、無線広帯域信号処理システム10において利用される無線広帯域信号プロセッサ(WBSP)の外部の要素に対する通信を制御することが可能である。外部要素の例には、プロセッサ(英国ケンブリッジのARM社(ARM,Limited)製のARMプロセッサとして知られているプロセッサなど)またはRFトランシーバが含まれる。これに加えて、以下に記載のPIDレジスタなど、WBSPの動作に関連したレジスタにGPO動作を用いてアクセスすることが可能である。プログラムメモリ12における現在の命令に、ある要素に対してユニークなGPIOコードが存在するとき、GPO選択論理部57は、その要素に直接接続されており、かつ、その要素に対してユニークなイネーブルのパルスを与える。特定のイネーブルの意味は、要素に応じて異なってよい。通常、イネーブル信号は、要素に出力ストリームに対するデータのラッチを行わせる。あるいは、イネーブル自体が意味を有し、ラッチを行うことなく、出力ストリームが要素へ直接的に送信されることを可能とする。
A general purpose output (GPO) operation can be used to control communications to elements external to the wireless wideband signal processor (WBSP) utilized in the wireless wideband
汎用入力(GPI)動作を用いて、WBSPの外部の要素またはWBSPの動作に関連したレジスタから入力を受信することが可能である。入力動作の例には、WBSPと外部プロセッサ(ARMなど)との間のインタフェースのサポート、フレーム誤差のレートの記録が含まれる。命令のGPIOフィールドにおいてアサートされたコードがGPIに対応する場合、入力ストリームはその特定の要素に接続される。 A general purpose input (GPI) operation can be used to receive input from elements external to the WBSP or from registers associated with the operation of the WBSP. Examples of input operations include support for the interface between the WBSP and an external processor (such as an ARM), and recording the frame error rate. If the code asserted in the GPIO field of the instruction corresponds to a GPI, the input stream is connected to that particular element.
図5には、汎用入力出力(GPIO)命令フィールドを有する命令の処理を含む、無線広帯域信号処理システム10を示す。1つの入力またはGPI動作では、サンプルバッファ22が、処理装置16,18,20のうちの1つへ通信データの入力ストリームを通信する。別の入力またはGPI動作では、要素66が処理装置16,18,20のうちの1つへ通信データの入力ストリームを通信する。
FIG. 5 illustrates a wireless broadband
図6には、処理反復時間(PID)の代表的な動的構成を示す。PIDは、受信モード(A/Dからの)においてサンプルバッファ22,24,26への書込が行われる、あるいは送信モード(DACへの)においてサンプルバッファ22,24,26からの読取が行われる、サンプルの数を参照する。無線広帯域信号処理システム10において利用可能な代表的なバッファ技術は、「デジタル通信信号を処理するバッファの方法および装置(Buffering Method and Apparatus for Processing Digital Communication Signals)」と題する米国特許出願第10/613,897号明細書に記載されている。その全体を引用によって本明細書に援用する。
FIG. 6 shows a typical dynamic configuration of processing iteration time (PID). The PID is written to the sample buffers 22, 24, 26 in the reception mode (from A / D), or read from the sample buffers 22, 24, 26 in the transmission mode (to DAC). Browse the number of samples. A typical buffer technology available in the wireless broadband
PID、すなわち、サンプルバッファ22,24,26への書込の行われたサンプルの数によって、バッファスキームの進行されるレートが決定される。換言すると、PIDは、サンプルを受信するためにサンプルバッファ22,24,26が接続されるプログラムレートである。小さなPIDは、少ない時間においてサンプルが利用可能である(RX上で)または利用可能となる(TX上で)、遅延時間の少ない状況を表す。より大きなPIDによって、本質的により有効な、より長いベクトル演算が可能となる(命令のための初期の処理遅延はより多くの出力データを通じて償却される)ので、より大きな処理効率が可能となる。 The PID, ie the number of samples written to the sample buffers 22, 24, 26, determines the rate at which the buffer scheme is advanced. In other words, PID is the program rate to which the sample buffers 22, 24, 26 are connected to receive samples. A small PID represents a situation where the sample is available (on RX) or becomes available (on TX) in a small amount of time and has a low delay. Larger PIDs allow for greater processing efficiency because inherently more effective and longer vector operations are possible (the initial processing delay for instructions is amortized through more output data).
サンプルバッファ22,24,26の進行のレートを決定するパラメータには、GPIO命令を介してアクセス可能である。現在の命令のGPIOフィールドが値1を格納しているとき、出力ストリームはサンプルバッファが進行されるレートを制御するレジスタへルーティングされる。そのため、命令コントローラ14が動的にPIDを変更する能力によって、小さい遅延時間と大きい遅延時間との間のリアルタイムなトレードオフが可能となる。例えば、より長いベクトル演算が実行中であるとき、あるいは実行が予想されるとき、より長いPIDを用いることが可能である。これに加えて、特定のシンボルレートを有する標準においては、一部のPIDが本質的に優れている(例えば、802.11gには4マイクロ秒が本質的に適当である)。
Parameters that determine the rate of progression of the sample buffers 22, 24, 26 are accessible via GPIO instructions. When the GPIO field of the current instruction stores the
図7には、1つ以上の代表的な実施形態による、ARMプロセッサなどのプロセッサ、および無線広帯域信号処理システム10と共に利用される無線広帯域信号プロセッサによって実行される動作を示す。特定の実施形態または実装に応じて、追加の動作、より少ない動作、または異なる動作が実行されてよい。
FIG. 7 illustrates operations performed by a processor, such as an ARM processor, and a wireless
1つ以上の代表的な実施形態では、WBSPは信号プロセッサとして用いられ、その場合、ARMプロセッサなど、主プロセッサの制御下にある必要がある。このため、ARMプロセッサはWBSPに対し読取および書込を行う性能を有する必要がある。図7に示すインタフェースは、完全にソフトウェア定義されたものであるため、非常に柔軟である。任意のプロトコルをサポートするインタフェースを定義するように、ARMプロセッサおよびWBSPをプログラムすることが可能である。 In one or more exemplary embodiments, the WBSP is used as a signal processor, in which case it needs to be under the control of a main processor, such as an ARM processor. For this reason, the ARM processor needs to have the ability to read and write to the WBSP. The interface shown in FIG. 7 is very flexible because it is completely software defined. It is possible to program the ARM processor and WBSP to define an interface that supports any protocol.
「読取」要求は、特定のWBSPバッファ内部の特定のメモリ位置の内容をARMプロセッサに通信するための機構である。「書込」要求は、WBSPプロセッサの特定のバッファ内部の特定のメモリ位置へ配置される特定の値を、ARMプロセッサからWBSPプロセッサに通信するための機構である。 A “read” request is a mechanism for communicating the contents of a particular memory location within a particular WBSP buffer to the ARM processor. A “write” request is a mechanism for communicating from the ARM processor to the WBSP processor a specific value that is placed at a specific memory location within a specific buffer of the WBSP processor.
「読取」要求は、ARMプロセッサが、較正、ホストGUIディスプレイのPHY統計(RSSIなど)、ARM処理に対する動的アルゴリズム入力など、様々な目的でWBSPプロセッサからアクセスできる情報をサポートする。「書込」要求は、TX上のDC除去(IおよびQ)、データレートの関数としてのTX出力の更新、モデム802.11a/b/gの動作モード(2重捕捉が必要でないときに電力消費のより少ない処理を可能とする)、RSSI計算活性(やはり、電力消費の無効化を可能とする)など、ARMがWBSPへ渡す情報の通信をサポートする。 The “read” request supports information that the ARM processor can access from the WBSP processor for various purposes, such as calibration, PHY statistics of the host GUI display (such as RSSI), dynamic algorithm input for ARM processing, etc. A “write” request can include DC removal on TX (I and Q), TX output update as a function of data rate, modem 802.11a / b / g mode of operation (power when dual acquisition is not required) Supports communication of information that the ARM passes to the WBSP, such as enabling processing with less consumption), RSSI calculation activity (again enabling power consumption to be disabled).
状態A1では、ARMプロセッサは、読取または書込要求の要求を開始する。一般に、プロセッサは互いに対して非同期に動作しているので、WBSPプロセッサは何らかの一般的な処理を含む状態W1にある。定期的に、WBSPプロセッサは状態W2に遷移して、WBSP_STATUSビットを検査する。これらのビットはGPI命令のようにアクセス可能である。WBSP_STATUS=0の場合、状態W1において一般的な処理が再開する。WBSP_STATUSが0でない場合、状態W3に遷移し、ARM命令が実行される。 In state A1, the ARM processor initiates a request for a read or write request. In general, since the processors are operating asynchronously with respect to each other, the WBSP processor is in state W1, which includes some general processing. Periodically, the WBSP processor transitions to state W2 and checks the WBSP_STATUS bit. These bits are accessible like GPI instructions. If WBSP_STATUS = 0, general processing resumes in state W1. If WBSP_STATUS is not 0, the state transits to state W3 and the ARM instruction is executed.
動作が「読取」である場合、WBSPプロセッサは、WBSP_ADDRESSにより指定されるアドレスにアクセスする。この1次元アドレスは、バッファ番号およびバッファ内のアドレスを含む、2次元のWBSPアドレスへ翻訳される。この位置の内容がアクセスされ、出力ストリームはWBSP_DATAに関連したGPOへ宛てられる。 If the operation is “read”, the WBSP processor accesses the address specified by WBSP_ADDRESS. This one-dimensional address is translated into a two-dimensional WBSP address that includes the buffer number and the address in the buffer. The contents of this location are accessed and the output stream is directed to the GPO associated with WBSP_DATA.
動作が「書込」である場合、WBSPプロセッサは、WBSP_ADDRESSにより指定されるアドレスにアクセスする。この1次元アドレスは、バッファ番号およびバッファ内のアドレスを含む、2次元のWBSPアドレスへ翻訳される。WBSP_DATAの値はGPI機構を介してアクセスされる。WBSPプロセッサは、復号されたバッファ番号およびバッファ内のアドレスについて予定される出力ストリームに、この値をルーティングする。 If the operation is “write”, the WBSP processor accesses the address specified by WBSP_ADDRESS. This one-dimensional address is translated into a two-dimensional WBSP address that includes the buffer number and the address in the buffer. The value of WBSP_DATA is accessed via the GPI mechanism. The WBSP processor routes this value to the output stream scheduled for the decoded buffer number and address in the buffer.
「読取」および「書込」の両方の場合において、WBSP_STATUSの値は0にリセットされる。その間、ARMプロセッサは、状態A2における一般的な処理を再開する。定期的に、ARMプロセッサは、自身のMMIOレジスタARM_WBSP_ACCESSを介してWBSP_STATUSの値を検査する。この値が0であるとき、ARMプロセッサは「読取」または「書込」命令が完了したことを認識する。この動作が読取であった場合、ARMプロセッサはWBSP_DATAレジスタの読取値にアクセスすることが可能である。別の「読取」または「書込」命令を開始する選択肢を含め、「読取」動作による影響を受けて、継続的な動作が発生してもよい(状態A4)。同時に、「書込」動作による影響を受けて、WBSP動作が状態W3における動作を継続してもよい。 In both “read” and “write” cases, the value of WBSP_STATUS is reset to zero. Meanwhile, the ARM processor resumes general processing in state A2. Periodically, the ARM processor checks the value of WBSP_STATUS via its MMIO register ARM_WBSP_ACCESS. When this value is 0, the ARM processor recognizes that the “read” or “write” instruction is complete. If this operation is a read, the ARM processor can access the read value of the WBSP_DATA register. Continuing actions may occur (state A4), influenced by the “read” action, including the option to initiate another “read” or “write” instruction. At the same time, under the influence of the “write” operation, the WBSP operation may continue the operation in the state W3.
図8には、無線広帯域信号処理システム10において実行される代表的なFFTアルゴリズムにより実行される動作を示す。特定の実施形態または実装に応じて、アルゴリズムにおいて追加の動作、より少ない動作、または異なる動作が実行されてよい。FFTアルゴリズムをプログラムメモリ12に存在するソフトウェアプログラムへ符号化することが可能である。動作82では、FFT/IFFT変換の行われるデータがバッファにロードされる。続く演算の動作を管理する設定が初期化される。第2のカウンタは2に初期化され、Nはlog2(入力ベクトルの長さ)に設定される。動作84では、GPIO命令第23番によって、処理装置18においてマスターカウンタがリセットされる。GPIO命令第13番によって、処理装置18(図1)にFFT長さ(N)が信号で送信される。より詳細に以下に記載するように、マスターカウンタはアドレス生成を担う。
FIG. 8 shows operations executed by a typical FFT algorithm executed in the wireless wideband
動作86では、処理装置18が、FFT/IFFTアルゴリズムに関連したベクトル演算を実行する。1つ以上の実施形態では、ベクトル命令によって演算されるベクトルの長さの上限は128語である。128語より大きいデータ長については、充分な回数、FFT/IFFTアルゴリズムのループを行うことが必要である(例えば、データ長が2048語で、最大ベクトル長さが128語である場合、変換を実行するには16回のFFT/IFFTアルゴリズムの反復が必要である)。動作87では、動作86においてFFT/IFFTアルゴリズムがデータのうち1つの128語のセグメントを演算した後にのみ(GPIO命令23を介して明示的にリセットされない限り)、マスターカウンタの値がインクリメントされる。
In
動作88では、第2のカウンタが2だけ進められ、FFT/IFFT処理の次のステージへ進行する。また、入力および出力のバッファが切り替えられ、FFTステージ/IFFTステージの間の処理のカスケード化が可能となる。動作89では、FFT/IFFT処理のすべてのステージが実行された場合、FFT/IFFT変換されたデータがプロセッサによるさらなる処理について利用可能となる。
In
図1を参照すると、メモリ38は処理装置16,18,20へ算術関数を提供している。好適な実施形態では、メモリ38はリードオンリメモリ(ROM)である。ROMは比較的電力を浪費する。そのため、メモリ38に対するアクセスを最小化することによって、必要な総電力が削減される。FFTアルゴリズムでは、基数4の演算の出力に用いられる回転因子を含む、算術関数用のメモリ38にアクセスすることが必要である。
Referring to FIG. 1,
所与のステージのFFTアルゴリズムによって演算された入力ベクトルのセグメントを再配列することによって、連続的な基数4の演算の出力に同じ組の3つの回転因子を用いることが可能である。例として、log4(4096)=6ステージが必要な4096語のFFTを考える。ステージ1では、基数4の演算毎にメモリ38から3つの回転因子がアクセスされる。なお、基数4の演算の第1の出力の回転因子は常に1であるため、出力のうちの3つのみが自明でない。しかしながら、次のステージ、すなわち、FFTアルゴリズムのステージ2では、以下に記載のように最適なアドレス生成スキームが用いられる場合、同じ組の3つの回転因子は4つの連続する基数4の演算に用いられてもよい。FFTアルゴリズムのステージ3では、同じ組の3つの回転因子が16の連続する基数4の演算に用いられてもよい。ステージ4では、この数は、64の連続する基数4の演算へと幾何学的に増加し続ける。
By rearranging the segments of the input vector computed by a given stage FFT algorithm, it is possible to use the same set of three twiddle factors at the output of successive radix-4 operations. As an example, consider a 4096-word FFT that requires log 4 (4096) = 6 stages. In
他の設計の考慮によって、メモリ38に必要な回転因子空間の量を削減することが可能である。例えば、より大きな2の累乗はより小さな2の累乗のスーパーセットであるので、最大のFFTサイズに対応する回転因子しか格納する必要はない。このため、回転アドレス生成によって、すべてのFFTサイズが単一のテーブルに折り込まれることがサポートされる。また、アドレス生成スキームによって、最大のFFTサイズについての回転因子の数の軽減もサポートされる。例えば、8192語のFFTでは、隣接した回転因子は異なるexp(j×2×π/8192)の因子であり、これは10ビットの固定小数点表現により解くには小さすぎる。そのため、奇数の値すべてを破棄した、削減された回転因子の組が格納される。対称性によって、2×πラジアンの完全な単位円を、回転因子に相当するπ/4(1オクタント)の記憶域によって構成することが可能である。この単位円によって、追加の1/8に必要な記憶域要件が削減される。回転オクタント操作ブロック(図9に関して記載の処理装置18に示す)と結合された回転アドレス生成によって、この記憶域の軽減が行われる。
Other design considerations can reduce the amount of twiddle factor space required for
図9には、図1に関して記載のプロセッサ18の機能のさらに詳細な図を示す。1つ以上の実施形態では、プロセッサが1ポートRAMからデータを逐次受信するので、プロセッサ18は基数4のFFTを保証するために4つの入力(X1,X2,X3,X4)をバッファする。例外は、4の整数乗でないFFTサイズに対する最終の基数2のステージである。この場合、2つの入力のみがバッファされ、X2およびX4は0に設定される。
FIG. 9 shows a more detailed view of the functionality of the
基数4のFFTエンジンは、無線広帯域信号処理システム10の残部と比較して、減少されたクロック速度で動作する。多くの実施形態では、基数4のFFTエンジンは、4分の1に減少されたシステムクロック周波数で動作する。例外は、4の整数乗でないFFTサイズに対する最終の基数2のステージであり、この場合、システムクロック周波数は2分の1に減少される。基数4のFFTエンジンは、8つの複素数の加算を実行して4つの出力を生成することが可能であるように最適化される。基数4のFFTエンジンは、2組のカスケード化された加算器を備える。第1の組の加算器は、4つの複素数の入力に基づき、次の部分和を生成する:
P1=X1+X3
P2=X1−X3
P3=X2+X4
P4=X2−X4。
The radix-4 FFT engine operates at a reduced clock rate compared to the rest of the wireless broadband
P1 = X1 + X3
P2 = X1-X3
P3 = X2 + X4
P4 = X2-X4.
第2の組の加算器は、この部分和に基づき、次の出力を計算する:
Y1=P1+P3
Y2=P2−j×P4
Y3=P1−P3
Y4=P2+j×P4。
A second set of adders calculates the following output based on this partial sum:
Y1 = P1 + P3
Y2 = P2-j * P4
Y3 = P1-P3
Y4 = P2 + j × P4.
ここで、jによる乗算は、IおよびQを切り替え、Iの出力を反転させることによって実装される。
一般に、この演算に切捨は存在しない。
Here, multiplication by j is implemented by switching between I and Q and inverting the output of I.
In general, there is no truncation in this operation.
各スカラー回転因子乗算の出力は、11ビットまでで切り捨てられる。したがって、複素乗算器の出力は12ビットである。ビット[10:1]は処理装置18の出力に対しマッピングされる。回転因子がアクセスされるレートを減少させるために、1でない回転因子を格納するための3つの記憶レジスタ92が存在する。図10〜13に関連してさらに以下に記載するように、記憶レジスタ92は、回転アドレスが回転アドレス生成器のマッピングブロックの外へ遷移するときのみ更新を行う。この遷移は、より詳細に以下に説明するように、動作106において生成される回転アドレス遷移インジケータによって、記憶レジスタ92へ信号で送信される。乗算器94は、1である回転因子が適用されるとき、第4の乗算毎の回避機能をサポートする。図10に示し、以下に記載する乗算器110からの3ビットの制御語に基づき、アクセスされる回転因子は回転オクタント操作器90によって、次のように操作される。回転因子は3つの演算のカスケード効果を受ける:
ビット1またはビット2のいずれか一方=1の場合
回転因子のIおよびQを交換し、実数および虚数の符号を反転(negate)
ビット2=1の場合
回転因子の実数の符号を反転する
ビット3=1の場合
回転因子の実数および虚数の両方の符号を反転する。
The output of each scalar twiddle factor multiplication is truncated to 11 bits. Therefore, the output of the complex multiplier is 12 bits. Bits [10: 1] are mapped to the output of
When either
When
図10は、図9に関連して記載したFFTアルゴリズム用のアドレス生成において実行される動作を示す。特定の実施形態または実装に応じて、追加の動作、より少ない動作、または異なる動作が実行されてよい。動作104では、入力アドレスを生成するために、動作102によって供給されたマスターカウンタ情報が入力アドレス生成器によってマッピングされる。図11には、マスターカウンタ情報の代表的なマッピングを示す。示すように、入力アドレスは、FFTアルゴリズムによって変換される入力ベクトルのサイズであるNだけ占有される。図11に示した代表的なマッピングでは、入力アドレスは長さ13ビットである。高位の13−Nビットは0に設定され、N=log2(FFTのサイズ)である。次の高位ビットはマスターカウンタのsビットであり、ここで、s=2,4,...,N−2,N(Nが偶数の場合)、s=2,4,...N−1,N(Nが奇数の場合)である。また、入力アドレスの低位のビットは、マスターカウンタのN−sビットである。再び図10を参照する。動作104によって入力アドレスが生成されると、入力バッファは入力アドレスを受信する。また、以下に記載の最終ステージを除き、出力バッファも入力アドレスを受信する。
FIG. 10 illustrates operations performed in address generation for the FFT algorithm described in connection with FIG. Depending on the particular embodiment or implementation, additional operations, fewer operations, or different operations may be performed. In
動作106では、回転因子アドレスが生成される。図12は、回転アドレス用の代表的なマッピングを示す。この代表的なマッピングには、動作104において生成される入力アドレスの再シャフルが含まれる。回転アドレスは11ビットを有する。高位ビットは入力アドレスビット(N−s)〜1である。回転因子の残る低位ビット(入力アドレスサイズ11からN−sを減算することによって決定される)は、0に設定される。
In
新たな回転因子が必要であるか否かを判定するため、また、電力節約のため、遷移の決定は、メモリ38(ROMなど)に対するアクセス数を制限するように行われる。回転アドレス遷移インジケータは、回転アドレスに変更または遷移が存在することと、新たな回転因子が必要であることとを示す、動作106によって生成される。回転アドレス遷移インジケータは、処理装置18および算術関数メモリ38において、記憶レジスタ92へ送信される。メモリ38がアクセスされるとき、3つの回転因子が読み出され、上述のように操作され、記憶レジスタ92に格納される。
Transition decisions are made to limit the number of accesses to memory 38 (such as ROM) to determine whether a new twiddle factor is needed and to save power. A rotation address transition indicator is generated by
以下では、回転因子による記憶レジスタ92の占有および回転因子の使用について記載する。この処理では、乗算器110を用いて、マスターカウンタの2つの低位ビット(LSB)に回転アドレスを乗算する。この乗算の積(この代表的な実施形態では13ビット)は複数の部分に分離される。それらのビットのうちの10ビットは、総和器(summer)112およびマルチプレクサ114へ入力として提供される。総和器112は、この10ビットを512から減算し、マルチプレクサ114の入力1へ結果を提供する。マルチプレクサ114の他の入力(入力0)は、乗算器110による乗算の結果から10ビットを受信する。乗算結果の残るビットからの1ビットは、マルチプレクサ114に対する選択として用いられ、乗算結果の3つの高位ビットは、以前に参照された制御語としてプロセッサ18の回転オクタント操作器90へ提供される。マルチプレクサ114の出力は、回転因子を読み出すために算術関数メモリ38へ送信されるアドレスである。
In the following, the occupation of the
FFTの行われる入力ベクトルの長さが2の奇数乗(4の非整数倍)の長さを有する場合、出力バッファは、動作108において形成される入力アドレスがインタリーブ処理されたものを受信する。図13に示すように、インタリーブ処理された入力アドレスは、Nの値に応じて異なる。Nは上述のようにlog2(FFTのサイズ)を表す。図13に示す入力アドレスの構成にしたがって、出力バッファへ提供される13ビットのアドレスは、最初の13−Nビットに0を含む。設計によっては、図10〜13に示す実行される処理では、回転因子を格納しているメモリ38へのアクセスを制限することによって、電力を節約する。
If the length of the input vector on which the FFT is performed has an odd power of 2 (non-integer multiple of 4), the output buffer receives the interleaved input address formed in
図14には、無線広帯域信号処理システム10において実行されるコンテキスト切替処理により実行される動作を示す。実施形態または実装に応じて、追加の動作、より少ない動作、または異なる動作が実行されてよい。動作142では、クリティカルタスク1の動作が実行される。クリティカルタスクは、新たな処理反復間(PID)が開始する前に各々完了される必要のある、1つ以上の動作である。例えば、クリティカルタスク1は、処理反復時間(PID)命令が受信されるときに実行され、新たなPIDが受信される前に各々完了する、複数の802.11動作を含むことが可能である。クリティカルタスク1の動作が完了されると、動作144においてクリティカルタスク2の動作の実行が可能である。例えば、クリティカルタスク2は、中間バッファへDVBサンプルをコピーすることに伴う動作であることが可能である。非クリティカルタスク3が完了される前にクリティカルタスク2の動作が完了される場合、動作146において非クリティカルタスク動作が実行される、プログラム誘導コンテキスト切替が実行される。非クリティカル動作はPID境界を超えて延長してもよい。そのような非クリティカルタスク3は、DVB復調であることが可能である。PID命令が受信されるとき、誘導コンテキスト切替が終了される。クリティカルタスク2が完了されるときに非クリティカルタスクが完了される場合、PID終了までスリープモードに入る。
FIG. 14 shows an operation executed by the context switching process executed in the wireless broadband
コンテキストの従来の定義は、以前に終わったところからタスクを再開することができる1組の情報である。コンテキスト切替中、「現在の」タスクのコンテキストが格納され、「次の」タスクのコンテキストがロードされる。「現在の」タスクは以前に格納されたコンテキストをロードして戻すことによって、将来の何らかの時点で立ち戻られる。WBSPの状態は1組のプロセッサレジスタによって定義される。示した例では、プロセッサレジスタは命令ポインタである。しかしながら、いくつかの追加のプロセッサレジスタが存在することも可能である。WBSPは、コンテキストの完全な記述のための1組のメモリ要素(例えば、ハードウェアレジスタ)を備える。メモリ要素の組の数によって、最大の同時コンテキスト数が決定される。WBSPでは、所与のコンテキストのための1組のメモリ要素に格納された情報が1組のプロセッサレジスタとしてロードされるとき、コンテキスト切替が発生する。WBSPでは、すべての組のメモリ要素は、単一のクロックによりプロセッサレジスタへロードされる。この点において、WBSPは命令の正常な定常的な実行を継続する。 The conventional definition of a context is a set of information that can resume a task from where it ended previously. During context switching, the context of the “current” task is stored and the context of the “next” task is loaded. The “current” task can be brought back at some point in the future by loading back the previously stored context. The state of the WBSP is defined by a set of processor registers. In the example shown, the processor register is an instruction pointer. However, there can be some additional processor registers. The WBSP includes a set of memory elements (eg, hardware registers) for a complete description of the context. The maximum number of simultaneous contexts is determined by the number of sets of memory elements. In WBSP, context switching occurs when information stored in a set of memory elements for a given context is loaded as a set of processor registers. In WBSP, all sets of memory elements are loaded into processor registers with a single clock. At this point, the WBSP continues normal steady execution of the instruction.
図15には、図14に関連して記載したコンテキスト切替処理のタイミングを示す。PID1では、クリティカルタスク1の動作が開始される。クリティカルタスク1の動作はPID2の開始の前に完了され、クリティカルタスク2の動作および非クリティカルタスク3の動作が実行されることが可能となる。PID2を受信すると、非クリティカルタスク3は停止され(まだ完了していないが)、クリティカルタスク1の動作が実行される。このように、PIDの受信によってクリティカルタスク動作の実行のトリガが行われるまで、処理は継続する。クリティカルタスクの動作は順番に実行され、まだ新たなPIDが受信されない場合、非クリティカルタスク動作が実行されることが可能である。そのため、クリティカルタスク動作はPID内に完了するが、非クリティカルタスクを実行するために不活性期間が利用される。
FIG. 15 shows the timing of the context switching process described in relation to FIG. In PID1, the operation of
図16には、無線広帯域信号処理システム10における処理装置を示す。この処理装置は、畳み込み演算(FIRフィルタリング)およびタップローディング(tap loading)の実行が可能である。アドレス生成論理部202へ初期値および刻み値が提供される。アドレス生成論理部202は、ROM 1,ROM 2,ROM 3,ROM 4,ROM 5,ROM 6,ROM 7,ROM 8へ供給されるアドレスを生成する。処理装置によって、入力シフタ204にて入力データが受信される。入力シフタ204はタップローディングを実行して、受信されたデータをレジスタ206,208,212にロードする。レジスタはフリップフロップ構造であることが可能である。
FIG. 16 shows a processing device in the wireless broadband
複素乗算の演算は、アドレス生成論理部22によって生成されるアドレスへ対応する位置でROM構造にロードされたデータと、通信データとに対して実行される。これらの複素乗算の演算の積の総和が、複素加算木216によって求められる。結合ストリームを複素加算木216に供給する結合シフタ218によって、8並列の乗算を超える乗算が可能となる。このように、複数のタップを集積することによって畳み込みが構築される。このように、結合ストリーム入力を複素加算木216へ含めることによって、動的な範囲制御が可能となる。出力シフタ220は、処理装置からのデータの出力ストリームとして、複素加算木216からのデータをシフトする。
The complex multiplication operation is performed on the data loaded in the ROM structure at the position corresponding to the address generated by the address
図17には、図16の処理装置のアドレス演算論理部202をより詳細に示す。GPIO命令を介し、アドレス生成論理部202によって、初期化されたアドレスが受信される。この初期化されたアドレスが、現在のアドレスである。ROMメモリ構造(図16)へ通信されるアドレスは、現在のアドレス(A0)、現在のアドレスに刻み値を加算したもの、現在のアドレスに刻み値掛ける2を加算したものなどである。ROM構造からデータの読取が行われるにしたがって、現在のアドレスが刻み値だけインクリメントされる。そのため、アドレスのインクリメントは、「頂部」、すなわち、通信データの総和が求められる値を再びロードする必要なく、自動的に行われる。
FIG. 17 shows the address
図16のROM 1,ROM 2,ROM 3,ROM 4,ROM 5,ROM 6,ROM 7,ROM 8の内容は、次式を用いて決定可能である:
The contents of
Claims (151)
命令を受信する工程と、
診断メモリに対する出力ストリームの書込アクセスを選択的に可能とする工程と、
第1の周波数で診断メモリへの書込を行う工程と、
第2の周波数で診断メモリからの読取を行う工程と、
第1の周波数は第2の周波数より大きいことと、からなる方法。 A method for obtaining processor diagnostic data, comprising:
Receiving a command;
Selectively enabling write access of the output stream to the diagnostic memory;
Writing to diagnostic memory at a first frequency;
Reading from the diagnostic memory at a second frequency;
The first frequency is greater than the second frequency.
複数の命令を格納しているメモリと、
診断メモリに対する出力ストリームの書込アクセスを選択的に可能とする工程を含む前記複数の命令を受信して実行するコントローラと、
第1の周波数で出力ストリームを受信し、第2の周波数で内容を出力する診断メモリと、第1の周波数は第2の周波数より大きいことと、からなるシステム。 A system for obtaining processor diagnostic data,
A memory storing a plurality of instructions;
A controller for receiving and executing the plurality of instructions including selectively enabling write access of the output stream to the diagnostic memory;
A system comprising: a diagnostic memory that receives an output stream at a first frequency and outputs content at a second frequency; and the first frequency is greater than the second frequency.
マルチモード無線処理システムの外部の要素とマルチモード無線処理システムとの間のインタフェースを制御するための命令を受信する工程と、
所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを、受信された命令のフィールドから決定する工程と、からなる方法。 A method for controlling input and output in a multi-mode wireless processing system, comprising:
Receiving instructions for controlling an interface between an external element of the multi-mode wireless processing system and the multi-mode wireless processing system;
Determining whether a given processing unit generates output data or receives input data from the field of the received instruction.
マルチモード無線処理システムにおいて処理装置へ入力データを供給するための複数の汎用入力と、
マルチモード無線処理システムにおいて処理装置によって生成される出力データを受信するための複数の汎用出力と、からなる構成。 A configuration of input / output components for interfacing with a processing device in a multi-mode wireless processing system,
A plurality of general-purpose inputs for supplying input data to a processing device in a multi-mode wireless processing system;
A configuration comprising a plurality of general-purpose outputs for receiving output data generated by a processing device in a multimode wireless processing system.
マルチモード無線プロセッサシステムにおいて、マルチモード無線処理システムの外部の要素とマルチモード無線処理システムとの間のインタフェースを制御する命令を含むメモリと、
命令を受信し、命令のフィールドから、マルチモード無線処理システムにおける所定の処理装置が出力データを生成するか、あるいは入力データを受信するかを決定するコントローラと、からなるシステム。 A system for controlling input and output in a multimode wireless processor, comprising:
In a multimode wireless processor system, a memory including instructions for controlling an interface between an external element of the multimode wireless processing system and the multimode wireless processing system;
A system comprising: a controller that receives an instruction and determines from a field of the instruction whether a predetermined processing device in the multimode wireless processing system generates output data or receives input data.
マルチモード無線処理システムにおいて通信用の命令を受信する工程と、
データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次接続されるレートを決定する工程と、
受信された命令に基づき、外部要素へ複数のバッファが逐次接続されるレートを制御する複数のレジスタをプログラムする工程と、からなる方法。 A method for dynamically controlling a connection rate to a sample buffer in a multi-mode processing system, comprising:
Receiving a command for communication in a multi-mode wireless processing system;
Determining a rate at which a plurality of buffers are sequentially connected to elements external to the multi-mode wireless processing system for receiving or transmitting data;
Programming a plurality of registers for controlling a rate at which a plurality of buffers are sequentially connected to an external element based on received instructions.
マルチモード無線処理システムにおけるマルチモード無線プロセッサ通信用の命令を含むメモリと、
命令を受信し、データの受信または送信のためにマルチモード無線処理システムの外部の要素へ複数のバッファが逐次接続されるレートを決定するコントローラと、
外部要素へ複数のバッファが逐次接続されるレートを制御する複数のレジスタと、からなるシステム。 A system for dynamically controlling a connection rate to a sample buffer in a multi-mode processing system,
A memory containing instructions for multimode wireless processor communication in a multimode wireless processing system;
A controller that receives instructions and determines a rate at which a plurality of buffers are sequentially connected to elements external to the multi-mode wireless processing system for receiving or transmitting data;
A system comprising a plurality of registers for controlling a rate at which a plurality of buffers are sequentially connected to an external element.
第1のプロセッサにて読取/書込要求を生成する工程と、読取/書込要求は第1のプロセッサが直接的なアクセスを有しないターゲットメモリを対象とすることと、
第2のプロセッサにて読取/書込要求を受信する工程と、第2のプロセッサは読取/書込要求によってアクセスされるターゲットメモリへの直接的なアクセスを有することと、
第2のプロセッサにて読取/書込動作を完了する工程と、
読取/書込動作が完了したことの表示を第1のプロセッサにて受信する工程と、からなる方法。 A method for interfacing two processors,
Generating a read / write request at the first processor; the read / write request is targeted to a target memory to which the first processor does not have direct access;
Receiving a read / write request at the second processor; the second processor having direct access to the target memory accessed by the read / write request;
Completing a read / write operation in a second processor;
Receiving at the first processor an indication that the read / write operation is complete.
第2のプロセッサにて読取/書込アドレスを受信する工程と、を含む請求項58に記載の方法。 Generating a read / write address including a target buffer number and a target address in the target buffer, the target memory being a target buffer that is part of a second processor;
59. receiving a read / write address at a second processor.
第1のプロセッサが直接的なアクセスを有しないターゲットメモリを対象とする読取/書込要求を生成する第1のプロセッサと、
読取/書込要求を受信し、読取/書込動作を完了させる第2のプロセッサと、第2のプロセッサは読取/書込要求によってアクセスされるターゲットメモリへの直接的なアクセスを有することと、
ターゲットメモリと、
第1のプロセッサと第2のプロセッサとの間で通信を行うための手段と、からなるシステム。 A system for interfacing two processors,
A first processor for generating read / write requests directed to a target memory for which the first processor does not have direct access;
A second processor that receives the read / write request and completes the read / write operation; the second processor has direct access to the target memory accessed by the read / write request;
Target memory,
Means for communicating between the first processor and the second processor.
第1のプロセッサにて読取/書込要求を生成するための手段と、
第1のプロセッサまたは第2のプロセッサのいずれかによって状態ビットを設定するための手段と、
第1のプロセッサによって状態ビットのポーリングを行うための手段と、
第2のプロセッサによって状態ビットのポーリングを行うための手段と、
第1のプロセッサと第2のプロセッサとの間で追加のデータの通信を行うための手段と、からなるインタフェース。 An interface between two processors,
Means for generating a read / write request at the first processor;
Means for setting a status bit by either the first processor or the second processor;
Means for polling the status bits by the first processor;
Means for polling the status bits by the second processor;
Means for communicating additional data between the first processor and the second processor.
入力ベクトルを入力バッファにロードする工程と、
第2のカウンタおよび変数Nを初期化する工程と、N=log2(入力ベクトルサイズ)であり、sは第2のカウンタの値であることと、
FFTステージを実行する工程と、FFTステージは次の工程、すなわち、
入力バッファのデータに対しベクトル演算を実行し、結果を出力バッファに送信する工程と、入力バッファのデータは複数のセグメントを含むことと、
第2のカウンタの値を進める工程と、
入力バッファおよび出力バッファの役割を切り替える工程と、を含むことと、
sをNと比較し、s=Nとなるまで追加のFFTステージを実行する工程と、からなる方法。 A fast Fourier transform (FFT) method in a multimode wireless processing system, comprising:
Loading an input vector into an input buffer;
Initializing the second counter and variable N, N = log 2 (input vector size), s being the value of the second counter,
The process of executing the FFT stage and the FFT stage are the following processes:
Performing a vector operation on the data in the input buffer and sending the result to the output buffer; the data in the input buffer comprising a plurality of segments;
Advancing the value of the second counter;
Switching roles of the input buffer and the output buffer; and
comparing s with N and performing additional FFT stages until s = N.
入力バッファから処理装置に4つの入力データをロードする工程と、
処理装置にロードした4つの入力データに対し基数4のFFTエンジンを用いる基数4のFFTベクトル演算を実行する工程と、基数4のFFTエンジンは4つの入力ベクトルを受け取り、4つの出力ベクトルを生成することと、
4つの生成された出力ベクトルに回転因子を乗算する工程と、各出力ベクトルは関連する回転因子を有することと、回転因子は実数成分および虚数成分を有することと、
関連する回転因子が1であるとき、出力ベクトルの乗算を回避する工程と、からなる請求項93に記載の方法。 Vector operations are
Loading four input data from the input buffer to the processor;
Performing a radix-4 FFT vector operation using a radix-4 FFT engine on the four input data loaded into the processor, and the radix-4 FFT engine receives the four input vectors and generates four output vectors. And
Multiplying the four generated output vectors by a twiddle factor; each output vector has an associated twiddle factor; the twiddle factor has a real component and an imaginary component;
94. The method of claim 93, comprising avoiding output vector multiplication when the associated twiddle factor is one.
最終FFTステージが実行されており、かつ、Nが奇数の場合、処理装置は2分の1に減少されたマルチモード無線処理システムクロック周波数で動作する請求項96に記載の方法。 The processor operates at a multimode radio processing system clock frequency reduced by a factor of four, except when the final FFT stage is being performed and N is an odd number,
99. The method of claim 96, wherein when the final FFT stage is performed and N is an odd number, the processing unit operates at a multimode wireless processing system clock frequency that is reduced by a factor of two.
予備回転アドレスを生成する工程と、
回転因子の制御操作のための制御語を生成する工程と、
最終回転アドレスを生成する工程と、
予備回転アドレスに基づきメモリから回転因子にアクセスする必要がある否かを判定する工程と、
回転因子にアクセスする必要がある場合、
最終回転アドレスにてメモリから回転因子の読取を行う工程と、
制御語に基づき回転因子を操作する工程と、
操作された回転因子を処理装置に格納する工程と、によって生成される請求項96に記載の方法。 The twiddle factor is
Generating a pre-rotation address;
Generating a control word for the control operation of the twiddle factor;
Generating a final rotation address;
Determining whether it is necessary to access the twiddle factor from memory based on the preliminary rotation address;
If you need access to the twiddle factor,
Reading the twiddle factor from memory at the final rotation address;
Manipulating the twiddle factor based on the control word;
99. The method of claim 96 generated by storing the manipulated twiddle factor in a processor.
第1に、制御語のビット1と制御語のビット2の排他的論理和が1の場合、回転因子の実数成分および虚数成分が交換され、回転因子の実数成分および虚数成分の符号は反転され、
第2に、制御語のビット2が1の場合、回転因子の実数成分の符号が反転され、
第3に、制御語のビット3が1の場合、回転因子の実数成分および虚数成分の符号が反転される、請求項105に記載の方法。 The twiddle factor is manipulated according to the control word bits as follows:
First, when the exclusive OR of bit 1 of the control word and bit 2 of the control word is 1, the real and imaginary components of the twiddle factor are exchanged, and the signs of the real and imaginary components of the twiddle factor are inverted. ,
Second, when bit 2 of the control word is 1, the sign of the real component of the twiddle factor is inverted,
Thirdly, if bit 3 of the control word is 1, the sign of the real and imaginary components of the twiddle factor is inverted.
予備回転アドレスにマスターカウンタの2つの低位ビットを乗算し、積を生成する工程と、
積のビット9〜0を512から減算し、残余を生成する工程と、ビット0は積の最低位ビットであることと、
残余を2:1マルチプレクサの第1の入力へ、積のビット9〜0を2:1マルチプレクサの第2の入力へ、かつ、積のビット10を2:1マルチプレクサの選択した入力へ送信する工程と、最終回転アドレスは2:1マルチプレクサの出力であることと、によって生成される請求項105に記載の方法。 The final rotation address is
Multiplying the preliminary rotation address by the two low order bits of the master counter to produce a product;
Subtracting product bits 9-0 from 512 to produce a residue, bit 0 being the least significant bit of the product,
Sending the remainder to the first input of the 2: 1 multiplexer, the product bits 9-0 to the second input of the 2: 1 multiplexer, and the product bit 10 to the selected input of the 2: 1 multiplexer. 106. The method of claim 105, wherein the final rotation address is generated by an output of a 2: 1 multiplexer.
ベクトル演算を実行するための処理装置と、
処理装置へ算術関数を提供するためのメモリと、
FFTアルゴリズムを実行するための命令を格納しているプログラムメモリと、
プログラムメモリから命令を受信し、実行するための命令コントローラと、
FFTアルゴリズムの連続的なFFTステージにおいて入力バッファおよび出力バッファとして交互に機能する1対のバッファと、入力バッファのデータは複数のセグメントを含むことと、からなるシステム。 A system for performing a Fast Fourier Transform (FFT) in a multimode wireless processing system comprising:
A processing unit for performing vector operations;
Memory for providing arithmetic functions to the processing unit; and
A program memory storing instructions for executing the FFT algorithm;
An instruction controller for receiving and executing instructions from the program memory;
A system comprising: a pair of buffers that alternately function as input and output buffers in successive FFT stages of an FFT algorithm, and the input buffer data includes a plurality of segments.
4つの入力ベクトルに対し8つの複素加算を実行し、4つの出力ベクトルを生成する基数4のFFTエンジンと、
生成された出力ベクトルに、関連する回転因子を乗算するための回転乗算器と、回転因子は実数成分および虚数成分を有することと、
入力バッファから4つの入力ベクトルを逐次受信し、4つの入力ベクトルを基数4のFFTエンジンへ並列に送信するためのシリアル−パラレル変換器と、
4つの生成された出力ベクトルを並列に受信し、回転乗算器および出力バッファへ4つの出力ベクトルを逐次出力するためのパラレル−シリアル変換器と、
操作された回転因子を処理装置に格納するための1組のレジスタと、
制御語に基づき回転因子を操作する回転オクタント操作器と、
所与のFFTステージにおけるFFTアルゴリズムの進行を監視するためのループ変数として用いられるマスターカウンタと、
FFTアルゴリズムの現在のステージを追跡するためのループ変数として用いられる第2のカウンタと、sは第2のカウンタの値であることと、
入力バッファアドレスを生成する入力アドレス生成器と、最終FFTステージが実行されており、かつ、Nが奇数のときを除いて、すべてのFFTステージにおいて入力バッファアドレスが出力バッファアドレスとして用いられることと、N=log2(入力バッファのデータのサイズ)であることと、
予備回転アドレスを生成するための回転アドレス生成器と、
Nが奇数の場合、最終FFTステージにおいて出力バッファアドレスを生成するダイビットインタリーブ処理生成器と、
制御語を生成するための回転アドレス乗算器と、
回転アドレス乗算器によって生成される積のビット9〜0を512から減算し、残余を生成するための総和器と、
残余および回転アドレス乗算器によって生成される積から最終回転アドレスを生成するための2:1マルチプレクサと、を含む請求項112に記載のシステム。 The processing equipment
A radix-4 FFT engine that performs 8 complex additions on 4 input vectors and generates 4 output vectors;
A rotation multiplier for multiplying the generated output vector by an associated twiddle factor, the twiddle factor having a real component and an imaginary component;
A serial-to-parallel converter for sequentially receiving four input vectors from an input buffer and transmitting the four input vectors to a radix-4 FFT engine in parallel;
A parallel-to-serial converter for receiving four generated output vectors in parallel and sequentially outputting the four output vectors to a rotation multiplier and an output buffer;
A set of registers for storing the manipulated twiddle factor in the processor;
Rotating octant controller that operates twiddle factors based on control words;
A master counter used as a loop variable to monitor the progress of the FFT algorithm at a given FFT stage;
A second counter used as a loop variable to track the current stage of the FFT algorithm, and s is the value of the second counter;
An input address generator for generating an input buffer address and a final FFT stage is executed and the input buffer address is used as an output buffer address in all FFT stages except when N is an odd number; and N = log 2 (size of data in the input buffer)
A rotation address generator for generating a preliminary rotation address;
A dibit interleaving generator that generates an output buffer address in the final FFT stage if N is odd;
A rotational address multiplier for generating control words;
A summer to subtract 512 bits of the product generated by the rotating address multiplier from 512 and generate a residue;
113. The system of claim 112, comprising: a 2: 1 multiplexer for generating a final rotation address from the product generated by the residual and rotation address multiplier.
最終FFTステージが実行されており、かつ、Nが奇数の場合、処理装置は2分の1に減少されたシステムクロック周波数で動作する、請求項115に記載のシステム。 The processor operates at a multimode radio processing system clock frequency reduced by a quarter, except when the final FFT stage is being performed and N is odd,
116. The system of claim 115, wherein when the final FFT stage is being performed and N is an odd number, the processing unit operates at a system clock frequency that is reduced by a factor of two.
第1に、制御語のビット1と制御語のビット2の排他的論理和が1の場合、回転因子の実数成分および虚数成分が交換され、回転因子の実数成分および虚数成分の符号は反転され、
第2に、制御語のビット2が1の場合、回転因子の実数成分の符号が反転され、
第3に、制御語のビット3が1の場合、回転因子の実数成分および虚数成分の両方の符号が反転される、請求項115に記載のシステム。 The twiddle factor is manipulated according to the control word as follows:
First, when the exclusive OR of bit 1 of the control word and bit 2 of the control word is 1, the real and imaginary components of the twiddle factor are exchanged, and the signs of the real and imaginary components of the twiddle factor are inverted. ,
Second, when bit 2 of the control word is 1, the sign of the real component of the twiddle factor is inverted,
Third, the system of claim 115, wherein when bit 3 of the control word is 1, the sign of both the real and imaginary components of the twiddle factor are inverted.
クリティカルタスク動作を実行する工程と、各クリティカルタスク動作は時間間隔内に実行されることと、クリティカルタスクは複数のクリティカルタスク動作を含むことと、
非クリティカルタスク動作を実行する工程と、各非クリティカルタスク動作の実行は時間間隔の境界を越えることが可能であることと、非クリティカルタスクは複数の非クリティカルタスク動作を含むことと、
時間間隔において開始されたクリティカルタスク動作および非クリティカルタスク動作が次の時間間隔が開始する前に完了されている場合、クリティカルタスク動作および非クリティカルタスク動作の実行されないスリープモードに入る工程と、からなる方法。 A method for switching between instruction contexts within a time interval in a multi-mode wireless broadband processing system, comprising:
Executing critical task actions, each critical task action being executed within a time interval, a critical task containing multiple critical task actions,
Performing a non-critical task action, the execution of each non-critical task action can cross time interval boundaries, a non-critical task includes multiple non-critical task actions,
Entering a sleep mode in which the critical task action and the non-critical task action are not executed if the critical task action and the non-critical task action started in the time interval are completed before the next time interval starts. Method.
クリティカルタスク動作および非クリティカルタスク動作を含む複数の命令を格納しているメモリと、クリティカルタスクは複数のクリティカルタスク動作を含むことと、非クリティカルタスクは複数の非クリティカルタスク動作を含むことと、
命令を受信し実行するコントローラと、クリティカルタスク動作は時間間隔内で実行されることと、各非クリティカルタスク動作の実行は時間間隔の境界を越えることが可能であることと、
コントローラおよびメモリを含むマルチモード無線広帯域処理システムは、時間間隔において開始されたクリティカルタスク動作および非クリティカルタスク動作が次の時間間隔が開始する前に完了されている場合、クリティカルタスク動作および非クリティカルタスク動作の実行されないスリープモードに入ることと、からなるシステム。 A system for switching between instruction contexts within a time interval in a multi-mode wireless broadband processing system,
A memory storing a plurality of instructions including critical task operations and non-critical task operations; a critical task including a plurality of critical task operations; a non-critical task including a plurality of non-critical task operations;
A controller that receives and executes instructions, that critical task operations are executed within a time interval, and that execution of each non-critical task operation can cross time interval boundaries;
A multi-mode wireless broadband processing system that includes a controller and a memory is capable of critical task operations and non-critical tasks if critical and non-critical task operations initiated in a time interval are completed before the next time interval begins. Entering a sleep mode in which no operation is performed.
アドレス生成器に初期値および刻み値をロードする工程と、
初期値および刻み値に基づきアドレスを生成する工程と、
生成したアドレスを一連のメモリへ供給する工程と、
入力データを一連のレジスタへロードする工程と、一連のレジスタの数は一連のメモリの数と等しいことと、各レジスタは1つのメモリに関連していることと、
各レジスタに関連したメモリの生成したアドレスに格納されている値に各レジスタの内容を乗算し、一連の積を生成する工程と、
一連の積を加算し、積の総和を生成する工程と、
積の総和から出力ストリームを生成する工程と、からなる方法。 A method for performing a convolution operation in a multimode wireless processing system, comprising:
Loading initial values and ticks into the address generator;
Generating an address based on the initial value and the step value;
Supplying the generated addresses to a series of memories;
Loading input data into a series of registers, the number of series registers being equal to the number of series memories, each register being associated with one memory,
Multiplying the value stored in the generated address of the memory associated with each register by the contents of each register to generate a series of products;
Adding a series of products to generate a sum of products;
Generating an output stream from the sum of products.
続く乗算の積を加算し、続く積の総和を生成する工程と、
続く積の総和に基づき続く出力ストリームを生成する工程と、を含む請求項140に記載の方法。 Performing subsequent multiplications between the contents of each register and the value stored in the generated address of the memory associated with each register, the generated address being incremented in increments in the subsequent multiplication;
Adding the products of subsequent multiplications to generate the sum of the subsequent products;
141. generating a subsequent output stream based on a sum of subsequent products.
初期値および刻み値の与えられるアドレスを生成するためのアドレス生成器と、
一連のメモリと、
入力値を格納するための一連のレジスタと、一連の複素乗算器と、一連の複素乗算器、レジスタおよびメモリの数は等しいことと、各乗算器は1つのレジスタおよび1つのメモリに関連していることと、各乗算器は、関連するレジスタの内容と、関連するメモリの生成したアドレスに格納されている値との積を生成することと、
一連の積を加算し、積の総和を生成する複素加算木と、からなるシステム。 A system for performing a convolution operation in a multimode wireless processing system,
An address generator for generating addresses given initial values and ticks;
A series of memories,
A series of registers for storing input values, a series of complex multipliers, a series of complex multipliers, the number of registers and memories being equal, and each multiplier is associated with one register and one memory Each multiplier generates a product of the contents of the associated register and the value stored at the generated address of the associated memory;
A system consisting of a complex addition tree that adds a series of products and generates a sum of products.
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/199,560 US8140110B2 (en) | 2005-08-08 | 2005-08-08 | Controlling input and output in a multi-mode wireless processing system |
US11/199,562 US7457726B2 (en) | 2005-08-08 | 2005-08-08 | System and method for selectively obtaining processor diagnostic data |
US11/199,372 US20070033349A1 (en) | 2005-08-08 | 2005-08-08 | Multi-mode wireless processor interface |
US11/199,577 US7734674B2 (en) | 2005-08-08 | 2005-08-08 | Fast fourier transform (FFT) architecture in a multi-mode wireless processing system |
US11/199,564 US7802259B2 (en) | 2005-08-08 | 2005-08-08 | System and method for wireless broadband context switching |
US11/199,567 US20070030801A1 (en) | 2005-08-08 | 2005-08-08 | Dynamically controlling rate connections to sample buffers in a mult-mode wireless processing system |
US11/199,576 US7653675B2 (en) | 2005-08-08 | 2005-08-08 | Convolution operation in a multi-mode wireless processing system |
PCT/US2005/032177 WO2007018553A1 (en) | 2005-08-08 | 2005-09-08 | Multi-mode wireless broadband signal processor system and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009505486A true JP2009505486A (en) | 2009-02-05 |
Family
ID=37727617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008525972A Pending JP2009505486A (en) | 2005-08-08 | 2005-09-08 | Multi-mode wireless broadband signal processor system and method |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2009505486A (en) |
WO (1) | WO2007018553A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016514330A (en) * | 2013-03-13 | 2016-05-19 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Vector processing engine with programmable data path configuration and related vector processor, system, and method for providing a multi-mode radix-2 X power butterfly vector processing circuit |
JP2017514405A (en) * | 2014-05-08 | 2017-06-01 | インテル アイピー コーポレイション | System, apparatus and method for long term evolution and wireless local area interworking |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117856809A (en) * | 2024-03-07 | 2024-04-09 | 成都玖锦科技有限公司 | SoC-based high-speed scanning circuit and broadband digital receiver |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10307811A (en) * | 1997-05-02 | 1998-11-17 | Sony Corp | Arithmetic unit and its method |
JPH10334080A (en) * | 1997-06-02 | 1998-12-18 | Matsushita Electric Ind Co Ltd | Fast fourier transformation arithmetic unit |
JP2004013811A (en) * | 2002-06-11 | 2004-01-15 | Sharp Corp | Twiddle factor table for fast fourier transform, and fast fourier transformation system using the same |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4096567A (en) * | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
US5220668A (en) * | 1990-09-21 | 1993-06-15 | Stratus Computer, Inc. | Digital data processor with maintenance and diagnostic system |
US5483640A (en) * | 1993-02-26 | 1996-01-09 | 3Com Corporation | System for managing data flow among devices by storing data and structures needed by the devices and transferring configuration information from processor to the devices |
US20020116595A1 (en) * | 1996-01-11 | 2002-08-22 | Morton Steven G. | Digital signal processor integrated circuit |
US5884055A (en) * | 1996-11-27 | 1999-03-16 | Emc Corporation | Method and apparatus including a shared resource and multiple processors running a common control program accessing the shared resource |
US6397273B2 (en) * | 1998-12-18 | 2002-05-28 | Emc Corporation | System having an enhanced parity mechanism in a data assembler/disassembler for use in a pipeline of a host-storage system interface to global memory |
US6785892B1 (en) * | 2000-06-23 | 2004-08-31 | Unisys | Communications between partitioned host processors and management processor |
US6880070B2 (en) * | 2000-12-08 | 2005-04-12 | Finisar Corporation | Synchronous network traffic processor |
US6810308B2 (en) * | 2002-06-24 | 2004-10-26 | Mks Instruments, Inc. | Apparatus and method for mass flow controller with network access to diagnostics |
US7444546B2 (en) * | 2003-04-17 | 2008-10-28 | Arm Limited | On-board diagnostic circuit for an integrated circuit |
US7210059B2 (en) * | 2003-08-19 | 2007-04-24 | Micron Technology, Inc. | System and method for on-board diagnostics of memory modules |
-
2005
- 2005-09-08 JP JP2008525972A patent/JP2009505486A/en active Pending
- 2005-09-08 WO PCT/US2005/032177 patent/WO2007018553A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10307811A (en) * | 1997-05-02 | 1998-11-17 | Sony Corp | Arithmetic unit and its method |
JPH10334080A (en) * | 1997-06-02 | 1998-12-18 | Matsushita Electric Ind Co Ltd | Fast fourier transformation arithmetic unit |
JP2004013811A (en) * | 2002-06-11 | 2004-01-15 | Sharp Corp | Twiddle factor table for fast fourier transform, and fast fourier transformation system using the same |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016514330A (en) * | 2013-03-13 | 2016-05-19 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | Vector processing engine with programmable data path configuration and related vector processor, system, and method for providing a multi-mode radix-2 X power butterfly vector processing circuit |
JP2017514405A (en) * | 2014-05-08 | 2017-06-01 | インテル アイピー コーポレイション | System, apparatus and method for long term evolution and wireless local area interworking |
Also Published As
Publication number | Publication date |
---|---|
WO2007018553A1 (en) | 2007-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7734674B2 (en) | Fast fourier transform (FFT) architecture in a multi-mode wireless processing system | |
US7653675B2 (en) | Convolution operation in a multi-mode wireless processing system | |
US7802259B2 (en) | System and method for wireless broadband context switching | |
Tan et al. | Sora: high-performance software radio using general-purpose multi-core processors | |
EP3031137B1 (en) | Method and apparatus for asynchronous processor based on clock delay adjustment | |
US7373121B1 (en) | Apparatus and method for processing a deterministic data flow associated with a wireless communication signal | |
US7457726B2 (en) | System and method for selectively obtaining processor diagnostic data | |
US11874895B2 (en) | Methods and apparatus for job scheduling in a programmable mixed-radix DFT/IDFT processor | |
GB2459939A (en) | DMA engine for high bandwidth real-time critical applications | |
US20070033349A1 (en) | Multi-mode wireless processor interface | |
US20120173864A1 (en) | Flexible multi-processing system | |
US20040109381A1 (en) | Method and apparatus for accessing a memory core multiple times in a single clock cycle | |
GB2370381A (en) | A processor element array with switched matrix data buses | |
EP1368744A2 (en) | Processor architecture | |
US20070030801A1 (en) | Dynamically controlling rate connections to sample buffers in a mult-mode wireless processing system | |
JP2009505486A (en) | Multi-mode wireless broadband signal processor system and method | |
US20070106720A1 (en) | Reconfigurable signal processor architecture using multiple complex multiply-accumulate units | |
US20240036872A1 (en) | Systems and methods for synchronizing data processing in a cellular modem | |
US8140110B2 (en) | Controlling input and output in a multi-mode wireless processing system | |
US8051272B2 (en) | Method and system for generating addresses for a processor | |
Tsao et al. | Parameterized and low power DSP core for embedded systems | |
US20230205727A1 (en) | Digital pre-distortion (dpd) adaptation using a hybrid hardware accelerator and programmable array architecture | |
US11595154B1 (en) | Instruction-based multi-thread multi-mode PDCCH decoder for cellular data device | |
US7380151B1 (en) | Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors | |
Wang et al. | A Ethernet interface solution based on TCP/IP protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110406 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110712 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110809 |