JP4353052B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP4353052B2
JP4353052B2 JP2004290890A JP2004290890A JP4353052B2 JP 4353052 B2 JP4353052 B2 JP 4353052B2 JP 2004290890 A JP2004290890 A JP 2004290890A JP 2004290890 A JP2004290890 A JP 2004290890A JP 4353052 B2 JP4353052 B2 JP 4353052B2
Authority
JP
Japan
Prior art keywords
transmission
transition
data
state
configuration
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.)
Expired - Fee Related
Application number
JP2004290890A
Other languages
English (en)
Other versions
JP2006108953A (ja
JP2006108953A5 (ja
Inventor
博志 田中
賢伸 津野田
哲朗 本村
学 川辺
雅士 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2004290890A priority Critical patent/JP4353052B2/ja
Priority to US11/240,618 priority patent/US7756505B2/en
Publication of JP2006108953A publication Critical patent/JP2006108953A/ja
Publication of JP2006108953A5 publication Critical patent/JP2006108953A5/ja
Application granted granted Critical
Publication of JP4353052B2 publication Critical patent/JP4353052B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/0003Software-defined radio [SDR] systems, i.e. systems wherein components typically implemented in hardware, e.g. filters or modulators/demodulators, are implented using software, e.g. by involving an AD or DA conversion stage such that at least part of the signal processing is performed in the digital domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • H04B1/40Circuits
    • H04B1/403Circuits using the same oscillator for generating both the transmitter frequency and the receiver local oscillator frequency
    • H04B1/406Circuits using the same oscillator for generating both the transmitter frequency and the receiver local oscillator frequency with more than one transmission mode, e.g. analog and digital modes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Transceivers (AREA)

Description

本発明は、動的にコンフィグレーション情報が変更可能な半導体装置又はその半導体装置を用いたソフトウェア無線装置に関し、特に、二次元アレイ構成を備える半導体装置及びそれを利用したソフトウェア無線装置に適用して有用なものである。
近年、情報処理機器の普及と高性能化に伴い、さまざまな無線通信方式が登場している。これらの無線通信方式に対して、無線通信に必要な送受信の信号処理をソフトウェアで実現し、ソフトウェアを交換することで、複数の異なる無線方式に対応するソフトウェア無線機が提案されている。
ところが、最近の無線通信方式をソフトウェアで実現するには、プロセッサの汎用性と、高い処理性能が必要となり、現在パーソナルコンピュータやサーバで用いられている汎用プロセッサでは実現が困難であるといった問題がある。さらには、現在、半導体製造技術の進歩によりLSIで実現できる回路規模が拡大しており、大きな回路を有効利用したLSIが求められている。
こうした問題に対して、FPGAに代表されるような、ハードウェアをどのように構成するかを指定したコンフィグレーション情報を変更することで動作を変えるLSIを用いることで解決を図る例が、特許文献1や、特許文献2に開示されている。
かかる先行技術では、FGPAに代表されるような回路ではコンフィグレーション情報に従ってハードウェアを変更することにより専用回路に近い構成を実現することが可能であるため、要求性能を達成できることが予想される。
さらに、汎用性を保ちつつ、大きな回路を有効利用して処理能力を向上させているLSIとして、ハードウェアをどのように構成するかを指定したコンフィギュレーション情報を変更することで動作を変えるLSIのうち、リコンフィギュラブルLSIと呼ばれる技術が注目されてきている。このリコンフィギュラブルLSIの動的なコンフィギュレーション制御構造が、特許文献3に開示されている。
かかる先行技術ではスループット向上のために、他のコントローラやCPUの介在なしに自立的に動的なリコンフィギュレーションを行うための制御構造が提示されているが、以下の技術内容となっている。演算機能を持つ演算セルと、演算セル間のデータの流れを切り替える切替セルの2種類のセルを持つ二次元アレイに対する制御方法であり、動的なリコンフィギュレーションを行うため、ユーザが設定するコンフィギュレーション状態の遷移テーブルの構造が状態遷移の数に比例する構造となっている。
特開平11−22043号公報
特開2003−318802号公報 特開2001−312481号公報
特許文献1や特許文献2に示される従来の方法では、既存のFPGAやPLDを想定しているため、コンフィグレーションの切り替えに比較的長時間が必要である。そのため、一つの通信方式を行っているときにはコンフィグレーションの切り替えを実行しないで、無線方式を切り替えるときにのみ、コンフィグレーションの切り替えを行う。特許文献3には、無線方式についての記載はない。この場合、例えば送信と受信や、受信中の処理である同期と復調の回路は同時に動作することはないが、あらかじめ両方を用意しておく必要がある。そのため、回路の面積が増加してしまうという問題が発生する。
また、特許文献3に示される従来の方法では、リコンフィギュラブル回路方式に対する汎用性、ハードウェア容量、およびユーザインターフェースに対して、課題が残されている。以下でこれらの課題について、順に述べる。
一番目の課題は、演算セル内でデータの流れを切り替える構造のセルに対しては適用できないという問題である。セル構造として、演算セル内にデータの流れを切り替える機能が包含されても、特に実現性の阻害にはならないため、汎用性の点で、難点がある。
二番目の課題は、動的なリコンフィギュレーションを制御するモジュール内でのコンフィギュレーションの状態遷移を表現するテーブル構造の問題である。従来の方法では、状態遷移の数にテーブル容量が比例する構造となっており、さらに、制御論理も複雑化するため、状態遷移数が増加した時にはLSIの作り直しが起こりうるという問題である。一般に、状態遷移表現において、状態遷移の数は状態の数の2乗に比例するため、この構造を採用している限り、将来の仕様変更に対する柔軟性と適用範囲の汎用性が損なわれ、LSI製造後にコンフィギュレーションを変更してシステム機器の多様性に応えることが困難となる。
三番目の課題は、二次元アレイからのリコンフィギュレーション制御モジュールへの遷移イベント(トリガ)の発行方法は、特に開示がなく、二次元アレイ上でコンフィギュレーションを作成するユーザの使いやすさの点が未配慮という問題である。
四番目の課題は、状態遷移に伴う他の動作の指定、例えば、CPUへの割込み要求動作などは、その方法が開示されておらず、CPUとの連動した動作という点が未配慮という問題である。
本明細書に開示される発明の一つの目的は、送信と受信、あるいは、同期と復調を時分割で処理可能なハードウェアおよびソフトウェアを考案し、ソフトウェア無線処理を少ない回路面積で実現することである。
また、本明細書に開示される発明の他の一つの目的は、ソフトウェア無線処理等に代表される処理量の多いアプリケーションにおいて、自律的にコンフィグレーションを変更するために最適のコンフィグレーションの変更方法を実現することである。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記のとおりである。
無線信号処理は、動的にコンフィグレーションの変更が可能な回路(Dynamically Reconfigurable Circuit、以下、DRCと称する)と汎用プロセッサを含んだ、ソフトウェア無線チップを用いて処理する。
DRCは高速にコンフィグレーションの変更が可能な構成とし、さらにADコンバータ、DAコンバータといった外部デバイスと接続するためのインターフェースを備える。
ソフトウェア無線チップ中の汎用プロセッサでは、無線通信処理のうち、プロトコル層の処理を行い、DRCでは、物理層の処理を行うように処理を分担する。
DRCが実行する物理層の処理は、送信と受信、同期と復調など、複数の異なる処理を時分割で行うことにより回路面積を削減できる。
回路の利用効率の向上と、面積削減のため、無線信号処理の一部は専用回路を用いて行う。ここで専用回路としている処理は、複数の無線信号処理で共通に用いられる処理であるため、複数の無線通信方式において利用することが可能である。
本発明の構成および方式により、ソフトウェア無線に代表される処理量の多いアプリケーションを面積の小さいハードウェアで実現できる。
以下、本発明による代表的な実施例を図面に従って詳細に説明する。なお、以下においては、同じ参照番号、記号は同じものもしくは類似のものを表わすものとする。
図1は、車100に搭載されたテレマティクス端末104の一例を示すものであり、テレマティクス端末の一部をなすソフトウェア無線機106のシステム適用の例である。ここで、ソフトウェア無線機とは、従来、途中で切り替えることのなかった無線機の仕様を、ソフトウェアにより変更する無線機である。
ソフトウェア無線機は、将来の無線仕様の変化や、101や102の無線基地局の設置状況や電波状況により走行中に最適な無線仕様が変化したときに、この変化に柔軟に対処して無線仕様を切り替える。
切り替え対象の無線仕様としては、例えば、無線LAN、ETC(DSRC)、地上DTV通信などがある。
以下では、このソフトウェア無線機の構成と、ダイナミックリコンフィギュラブル回路を利用したDRチップの位置付け、構成、利用方法を述べる。
1.ソフトウェア無線機の構成とDRチップの位置付け
図1において、テレマティクス端末104は、カーナビゲーションシステム107の画像や音声などの情報処理をつかさどり、カーナビゲーションシステム107に情報データを通信するために、ソフトウェア無線機106を利用する。
カーナビゲーションシステム107とソフトウェア無線機106間のインターフェース108は、USBなどの標準のデータ通信インターフェースを利用する。
図2は、106の内部構成を示すブロック図である。無線データは、アナログ処理部202を通ってディジタルデータに変換され、ディジタル処理をダイナミックリコンフィギュラブル(DR)チップ203で行い、インターフェース108を通して、カーナビゲーションシステム107に転送される。データを送信する場合には、この逆の経路を通る。DRチップは、動作中にコンフィギュレーション情報を変更することにより、その回路構成を処理すべき演算を高速に行えるように変更可能なチップである。本実施例では、データを受信する第1期間とデータを送信する第2期間とで、その回路構成を変更することによりDRチップを共有し、小面積で実現できるにしたものである。
アナログ処理部202は、アンテナ200、RF・IF回路201、アナログディジタルコンバータ(ADC)・ディジタルアナログコンバータ(DAC)からなる。ADCは受信時、DACは送信時に利用する。ディジタル処理部のFLASH205は、各種のプログラムを格納しておくために利用する。
図2のアナログ処理部202の別の実施の形態として、周波数帯により、複数のアナログ処理部を利用する構成を示したのが図3である。図3において、301、302、303が、各々、周波数帯により、用意したアナログ処理部である。利用する無線仕様を決定する制御信号304により、無線信号スイッチ部305が動作し、どのアナログ処理部をディジタル処理部と接続するかを選択する。制御信号304は図2の207の一部である。ディジタル化されたデータは、同じく207の一部である306を通って、ディジタル処理部に送られる。
次に、ソフトウェア無線機106が、カーナビゲーションシステム107とどのような手順で無線データをやり取りするのかを、図4に従って以下に述べる。図4(a)は、カーナビゲーションシステム107からデータを送信する場合の手順を示し、図4(b)は、カーナビゲーションシステム107が、ソフトウェア無線機106を通してデータを受信する場合の手順を示す。
図4(a)に示す送信時には、まず、カーナビゲーションシステム107でデータをフレームという単位に分割する(400)。ここで、フレームとは無線通信時にデータを転送する単位であり、図5に示す無線データ構造においては、フレーム領域503の中でヘッダなどを除いたデータ部分である。
次に、カーナビゲーションシステム107からソフトウェア無線機106に送信要求401を行い、ソフトウェア無線機106が送信受付402を行い、送信受付信号SDR−Ack信号をカーナビゲーションシステム107に返した後、カーナビゲーションシステム107からソフトウェア無線機106にフレーム単位のデータを転送する。このデータを受けて、ソフトウェア無線機106は、1パケットの構築と送信406を行う。ここで、パケットとは無線通信データの最小単位であり、図5の504である。パケット504は、元のデータを含むフレーム領域503の他、パケットの先頭を検出するためのプリアンブル領域531と、ヘッダ領域502から構成される。
パケットを全て送信し、送信が終了したら、受信局からの受付信号Ackを、カーナビゲーションシステム107に転送し、送信終了405の処理となる。もし、この時、送信に失敗したら、ソフトウェア無線機106は再度送信を行う。
図4(b)に示す受信時には、ソフトウェア無線機106が1パケット受信とフレーム取出し408を行い、カーナビゲーションシステム107に受信データを受け付けるよう要求する受信受付要求409を行う。カーナビゲーションシステム107は、受信開始407を行うため、受信受付信号Navi−Ackをソフトウェア無線機106に転送する。これを受けて、ソフトウェア無線106は、受信データ転送410を開始し、1フレームの受信データをカーナビゲーションシステム107に転送する。カーナビゲーションシステム107では、受信受付411を開始する。ソフトウェア無線106は、全ての受信データをカーナビゲーションシステム107に転送し終えたら、終わりを示す転送終了信号ENDをカーナビゲーションシステム107に転送する。その後、カーナビゲーションシステム107は、フレームの組立412を行うと同時に、送信局に返すACK信号をソフトウェア無線機106に転送する(ACK送信動作413)。ACK送信は送信動作の一種であり、ソフトウェア無線機106は図4(a)の動作を行う。
図4の二つの動作を、ソフトウェア無線機106で切り替える方法を示したのが、図6である。図6は、同一のハードウェアの回路構成を変更することで、同一のハードウェアで受信と送信を両立させるための処理フローである。
図6で、システムリセット601、受信ウエイト602などの左半分は、ソフトウェア無線機106の受信動作を示し、送信ウエイト605、送信可否判定606などの右半分は、送信動作を示す。
まず、受信動作では、システムリセット601を行ったあと、送信が起こるとき以外は、常時動作する。1パケットのデータの先頭がアナログ処理部202から送付されるまで、DRチップ203は受信ウエイト602を行う。データが送付され始めると、データの復調などの受信動作603を開始し、データ復調が終了すると、受信終了604する。
送信動作は、受信の合間を縫って行う。受信を行っているあいだ、送信はウエイトする(605)。受信終了の後、送信動作を実施してよいかどうかの送信可否判断606を行い、OKとなったら送信開始607を実行し、1パケットデータを送信したら送信終了動作608を行う。
以上のように、受信と送信を同一のハードウェアで処理することによりソフトウェア無線機に搭載される半導体集積回路を小面積で実現できる。
本実施例では、一つのハードウェアの回路構成を変更することで受信動作及び送信動作を行う場合は、受信動作のトリガは外部の無線基地局より送信させるため、ソフトウェア無線機ではその送信タイミングを知ることはできない。従って、待機状態を受信動作を行うフローとすると都合がよい。
2.DRチップの構成、および、ソフトウェアとハードウェアのインターフェース
以下では、図7を用いて、ディジタル信号処理を行うDRチップ203の構成と、ソフトウェアとハードウェアのインターフェースについて述べる。ここで、ソフトウェアは、DRチップ203上の中央処理装置CPU700で実行する。
2.1 DRチップの全体構成
図7に示すように、DRチップは、ADC/DAC206、カーナビゲーションシステム107、および、ROMであるFLASH205とのインターフェース回路と、受信・送信データの復調・変調動作を行うダイナミックリコンフィギュラブルエンジンDRE708、および、全体処理の制御と受信・送信データ復調・変調の前処理を行うCPU700から構成する。
まず、DRチップ203の周辺インターフェースについて述べる。ADC/DAC206は、入出力信号線207を介してDRE708と接続する。カーナビゲーションシステム107は、入出力信号線108を介してUSBインターフェース704と接続する。プログラムなどを格納するFLASH205は、入出力信号線204を介してフラッシュインターフェースFL−IF705と接続する。FLASH205には、CPU700で実行するソフトの他、DRE708で実行するコンフィグレーションデータなどを格納する。ここでコンフィグレーションデータとは、DREのハードウェア構成(回路構成)を指定するためのデータである。
次に、DRE708とCPU700とのインターフェースを述べる。CPU700は、CPUバス702を介して、DRE708、内蔵メモリMEM701、および、周辺インターフェース制御回路USB704、FL−IF705や割り込み制御回路INTC706と接続する。CPUバス702とこれらの回路は、ブリッジ回路703、および、ブリッジ回路707を介してデータ転送を行う。
2.2 無線ソフトウェアのDRチップ上の動作概要
次に、図8に従い、無線ソフトウェアのDRチップ上での動作概要を述べる。DRチップ上で行う無線処理は、プロトコル処理800、無線API801、およびDRE処理802の3階層に分かれる。プロトコル処理800、無線API801はCPU700で実行され、DRE処理802はDRE708で実行される。
DRE処理802では、受信データの復調と、送信データの変調といった物理層の処理と、一部のMAC層の処理を行う。無線API801では、DREでの処理が実行できるように、DRE上のレジスタやメモリとのアクセスを処理する。820から828までが、主要な無線APIの種類である。プロトコル処理800では、エラー回避のためのデータ作成とチェックや、通信に必要なヘッダの作成などの処理を行う。プロトコル処理800とDRE802との通信は、基本的に無線APIを用いておこなう。図8で、820、821、822などの長方形は無線APIを示し、824、825などの角に丸みがある囲いは、割り込みによるDREからCPUへの状態通知を表す。
図8のDRE802のラインで、S807のラインは、送信動作のラインで、太線805や806が、データ送信中を示し、点線は送信動作を行っていないことを示す。R808のラインは、受信動作のラインで、810などの細い矢印は有効な受信データを探索する同期動作と呼ばれる処理を、太い矢印809は、有効なデータを復調して受信中を示し、点線は受信動作を行っていないことを示す。
820から822までは、初期化に当たる部分である。ハードウェア初期化820が、メモリやレジスタの初期化などハード的な初期化をDREに対して行う。ソフトウェア無線初期化821では、DREを無線処理用に初期化する。コンフィグレーションデータの格納や、無線通信に使うパラメータの格納などである。起動822では、CPUが無線通信動作の開始をDREに指示する。ここで、DREは受信の同期動作810を開始する。また、DREは、有効なデータが受信されていない状態では、送信要求823に応じて送信動作を行う。送信要求823は、CPUから発行され、要求の発行と同時にデータをDREに転送する。DREは805の時間に送信動作を行う。送信が終了したら、割り込みで送信終了824を伝える。
受信動作は、送信が実施されている区間は待機しており、送信終了と共に再び同期動作を開始する。同期が終了したら同期完了を通知し(825)、データの復調動作を実施する。復調動作は809の区間で行う。全てのデータの受信、復調を終えると、受信終了を割り込みでCPUに通知する(826)。CPUはこれを受けて、復調済みのデータを取得する受信データ取得(827)を行う。全ての受信データを取得後、ackの送信要求828を行う。DREは送信可能であれば806の区間にackを送信し、ack送信の終了後、送信終了824を通知する。
本実施例では、CPUとDREとの通信は、同期完了、受信終了、送信要求、送信終了等の割り込みとそのためのデータのみであり、DREのコンフィグレーションの変更はCPUは指示しない。したがって、CPUとDREの通信量を削減でき、図7の内部バス702の使用量を削減できる。また、CPUは、一度DREに起動指示をすることによりその後は、一連の送信動作、受信動作が終わるまでDREに指示する必要がないため並列動作が可能となり、LSI全体の高速動作が可能となる。更には、送信と受信を時分割で行うことにより、同一のハードウェアで実現し、半導体集積回路の小面積かを実現している。
3.DREの無線通信動作と構成
ここでは、図8に示されるDREの無線通信の動作と、そのための構成を述べる。
3.1 DREの無線通信の動作の概観
図9は、DREの無線通信の動作を示す。DREは受信動作900と送信動作902に示す受信と送信動作を主要機能とし、図8に示すAPIは全てこれらの動作に関連する。送信動作は、他の無線装置が送信を行っていないタイミングを見つけて行うため、また、送信と受信を時分割で行うためCCAと呼ばれる送信管理901も行う必要がある。
受信動作900は、本無線機が利用する無線周波数帯が現在利用されているかどうかを確認するため、基本的には常時動作する必要があり、優先的に扱われる。受信動作900は、送信管理901に対して、904に示す受信動作の状態通知を行う。また、送信管理901から送信が許可906され、かつ、CPUのプロトコル管理903から送信要求908を受け取った状態で、受信する信号がないことが確認できた場合は、送信動作902に対して送信開始指示909を通知する。
受信動作900が送信管理901に通知する情報は、有効なパケットを検出して1フレームデータの受信処理を開始したことを示す1フレーム開始通知と、受信終了割り込み826と同時に発行する1フレーム終了通知である。1フレーム終了は、受信が失敗したときにも発行する。
CPUのプロトコル処理903は、現在の送信管理の内部状態910と、カーナビゲーションシステム107からの送信要求401を受けて、送信管理901に対する内部状態の遷移を決めるための送信の許可または禁止の指示情報907の発行と、受信動作900への送信要求908を行う。CPU側からは、その他、リセット指示も行う。
送信動作902は、受信動作900からの送信開始指示909により、送信動作を開始する。また、送信管理901に1フレームデータの送信の開始と終了の通知を行い、次の送信動作の可否の判断材料を送信管理901に提供する。
送信管理901は、受信と送信の状況を示す904と905、および、プロトコルレベルでの次送信許可/禁止指示907から、送信可否を決定する。送信可否の判定結果をもとに、送信許可/禁止の指示906を受信動作900に発行する。
3.2 DREの受信と送信動作
ここでは、図10と図11に従って、図9の中の受信と送信動作をDREで実現する状態遷移フローを述べる。ここで、受信動作に必要な処理、送信動作に必要な処理の夫々を更に分解し、各ステートに割り当てることで、同一のハードウェアで時分割に処理を行い、DRチップの小面積化を図っている。
(1)受信動作
受信動作は、まずR1ステートのパケット検出から実施する。この時、前処理として、F1ステートによりパケット検出が可能となるデータ量をフィルタ処理する。パケット検出は、無線データ構造図11の1100のうち、プリアンブル1101中のSYNC1105をパケットの始まりとして検出することにより行う。SYNC1105は、通常ALL1などの決まったコードとなっており、パケット検出ではその一部のビットの検出を行う。パケットは、常に通信経路に存在するわけではないので、対象とするコードが検出されるまで処理を行う。パケットが検出されるとR2ステートへ遷移する。
また、R1ステートでは送信を行うS1ステートへの遷移の判定も行う。送信管理1030が送信を許可しており、かつ、CPU700からの送信要求が発行されている状態で、パケットが検出されていない場合にはS1ステートへ遷移する。
次に、シンボル検出を、R2ステートとR3ステートで行う。ここで、シンボルとは、情報データ1ビット分のデータに当たるデータ群である。また、シンボル検出とは、もっとも確からしいデータが得られるように、利用するデータの読み込みタイミングを決める動作である。シンボル検出は、SYNCの残りビットを用いて行う。このため、シンボル検出でも、R2ステートの前処理として、F1ステートにより必要なビット数分に相当するデータに対してフィルタ処理を行う。R3ステートで、シンボル検出が成功したならば、次のR4ステートに遷移する。シンボル検出が失敗したならば、データの不具合などの原因で受信は失敗したと判定し、当該受信処理は終了してR1ステートに遷移する。
第3番目に、図11におけるSFD1106以降のデータに対して、復調処理をR4ステートとR5ステートで行う。復調処理においても、必要ビット数だけのデータをF1ステートでフィルタ処理を行なってから処理する。R5ステートでは、データの保護のためのスクランブル処理や、エラー検出のためのCRC処理を無線特殊演算1031にて行いながら復調する。1ビット復調されると、1シンボル終了として、R6で実施する検出処理が実施できるまで、または、データが全て復調されるまで繰り返す。
最後に、R6ステートでは、復調結果からフレームの始まりを検出するSFD検出や、誤りデータがないことを判定するCRC判定を行う。SFD1106は、無線システムにより所定のビット列が決まっており、SFD検出は、所定ビット列と復調結果が一致するかの判定により行う。CRC判定は、無線特殊演算1031にてヘッダ1(1107)に対してCRC演算を行った結果が、パケット1104に格納されているCRC−H1108と一致するか否かを判定する。CRC−D1111は、ヘッダ2(1109)とデータ1110のCRC演算結果である。CRC−D1111の判定はCRC−H1108とは異なり、データ1110のCPU700への転送を無線特殊演算1031から直接行うために、無線特殊演算1031にて行う。したがって、CRC−Dを無線特殊演算1031へ送った時点で復調終了とする。
R6ステートの各種判定に引き続く処理を述べる。まず、SFD検出がOKであれば、引き続くデータを復調するためR4へ遷移する。SFD検出がNGなら、R1ステートへ遷移し、受信失敗として終わる。ヘッダ1(1107)のCRC判定がOKならR4ステートへ遷移するが、NGなら受信失敗としてR1ステートへ戻る。ヘッダ2(1109)とデータ1110のCRC判定がOKならば、データを無線特殊演算1031からCPU700に送付し、復調終了としてR1ステートへ遷移する。
(2)送信動作
送信動作は受信動作と異なり、無線通信データの誤り検出の結果を条件とする分岐が不要であるため、S1ステートのみで実現する。
CPU700は、データの前にヘッダなどの無線通信のための情報を付加したあと、DRE708へ転送し、送信要求を発行する。CPU700から送られたデータは、無線特殊演算1031でCRC処理やスクランブルを行なった後、S1ステートで無線通信用データへの変換を行い、さらに、F2で送信用のフィルタ処理を行う。その後、DRE708からADC/DAC206へ無線通信用データを送信する。送信処理終了後は、S1ステートからR1ステートへ遷移する。
(3)送信管理とのインターフェース
3.1で述べた送信管理901と、受信動作900と送信動作902のインターフェースの実現方法を、以下で述べる。
受信動作におけるインターフェース904のうち、1フレーム開始情報は、パケットが検出され、受信が開始された時点で行う。即ち、R1ステートからR2ステートへの遷移が確定した時に1フレーム開始を発行する。1フレーム終了または受信NGの情報は、パケット検出後、受信が失敗するか、1フレームの復調が終了した時点で行う。即ち、R3からR1への遷移が確定した時点のシンボル検出NGか、R6からR1への遷移が確定した時点の受信失敗であるSFD検出NG、または、ヘッダCRCのNGか、1フレーム復調終了で1フレーム終了を発行する。
これらの通知を受けて、送信管理1030は、送信可能なタイミングを決定する。例えば、1フレーム終了後1フレーム開始が一定期間行われないケース、受信NG後1フレーム開始が一定期間行われないケース、および1フレーム終了が一度もなく1フレーム開始が一定期間行われないケースなどを受信終了または受信なしと判断して、送信可能とする。
送信管理1030からの送信許可/禁止情報906を受け取る時期は、上記の基準からすると、R1ステートでのパケット検出の繰り返し処理の開始時が適当となる。何故なら、上記の送信許可基準では、送信許可の決定がなされるのは、1フレーム開始が行われない時であり、これはR1ステートでしか起こりえないからである。
R1ステートにおいて、送信許可906を受け取り、かつ、送信要求をCPU700から受け取った状況で、パケット検出の繰り返し処理の開始時に到達した場合にS1ステートに遷移し、送信を開始する。
次に、送信動作におけるインターフェース905について述べる。まず、送信開始情報は、送信状態S1に遷移することが確定した時に送付する。送信終了は、S1で送信が終了し、R1への遷移が確定した時に送付する。
以上のように、送信動作と受信動作の切り分けにとどまらず、送信動作、受信動作の夫々を切り分けることで、DRチップを小面積化することが可能となる。なお、本実施例で示した各ステートの切り分けは、ソフトウェア無線に適した一例であり、そのDRチップの構成等に基づいて自由に切り分けていいことは言うまでもない。
3.3 DREの構成
ここでは、3.1から3.2で述べた無線通信を実現するためのDRE708の構成を図12に従って述べる。DRE708は、ALUアレイエンジン(ALU Array Engine)ALUAE1202と無線専用回路WCE(Wreless Communication Engine)1201と、内部バス1200と外部入出力スイッチEXIOS1203から構成される。
ALUAE1202は、図10に示す送受信の状態遷移を、自律的ダイナミックリコンフィグレーションにより実現する回路モジュールである。自律的ダイナミックリコンフィグレーションとは、自身が計算した結果により、自身のコンフィグレーションを変更することを意味する。即ち、CPUからの指示を受けずに図10に示される各ステート間の遷移タイミングを検出し、次のステートの処理に対応する回路構成に自立的に変更することによって、CPUとDREの通信量を削減している。EXIOS1203は、ALUAE1202と外部とのデータアクセス先を選択する回路であり、アクセス先としてWCE1201と、LSI外部のADC/DAC206がある。図8に示される送信終了や受信終了等のCPUへの割込みは、710を介して割り込みコントローラINTC706に要求を通知することにより行う。また、ALUAE1202とWCE1201の通常のデータ転送は、内部バス1200を介して実施できる。CPU700とALUAE1202、または、WCE1201とのデータ転送は、Bridge1(707)と内部バス1200を介して行う。
WCエンジン1201は、後に詳述するがALUAE以外で処理をすることが望まれる送信管理1030と無線特殊演算1031を実現する回路モジュールである。
4.ALUAEの構成と設定レジスタについて
4.1 概要
ここでは、ALUAE1202の構成と設定レジスタについての概要を述べる。図13に構成を示す。ALUAE1202は、バスコントローラBSC1300を介して内部バス1200と接続される。BSC1300は内部バス1200からの入力を各部に振りわけることが主な機能である。アレイエンジンコントローラAECTL1301は、ALUAE1202の制御の他、割り込みコントローラINTC706に割り込み要求を出す。
各種処理をつかさどるメインブロックは、ALUアレイALUA1305である。ALUA1305はアレイ状に並べられたALUセルにより構成される。ALUアレイは、各ALUセルの演算機能や各ALUセル間の接続関係を変更することで各ステートの処理を実現する。ALUA1305とメモリや外部デバイスとのデータ転送にはロードストアアレイLSAを利用する。LSAは、右に位置するLSAR1304とALUセルを挟んだ左に位置するLSAL1306がある。ALUA1305への入出力は、LSARまたはLSALを介して行われる。
内部ローカルメモリLMEM(1312、1313)は、LSAL1306と、LSAR1304の隣に配置されており、内部にローカルメモリと、そのインターフェースを備える。LMEMに対する入出力はLSAまたはIOPより行われる。
IOP(1308、1307)はLMEMの隣に配置されており、BSC1300を介した内部バスとの通信を行う。また、配線1321、1322からEXIOSを介してWCE、および、DRチップ外部のADC/DACとの通信を行う。
上記のALUA1305、LSA(LSAR1304とLSAL1306)、LMEM(1312、1313)、IOP(1307、1308)は、機能やアクセス先の変更のため、コンフィグレーションをダイナミックに、すなわち、処理実行中に変更可能である。
また、これらのモジュールの動作を指示するのがコンフィグレーションレジスタであり、図14(b)に示す種類と機能がある。コンフィグレーションレジスタを変更するための一時格納用のバッファはCNFGCにある。
ALUA1305、LSA(LSAR1304とLSAL1306)、LMEM(1312、1313)、IOP(1307、1308)は、いずれも8行単位のクラスタに分割されており、クラスタ単位にコンフィグレーションの変更が可能となっている。
以下で述べる本実施の形態では、簡単のためクラスタは2個の場合を述べるが、クラスタの個数は限定されない。また、上記で述べたコンフィグレーションレジスタの詳細は後で述べる。CNFGCのバッファについては、一般的なバッファで構成することが可能である。
アレイエンジンコントローラAECTLは、図14(a)(c)に示すように、ALUAE1202の全体の制御とコンフィグレーション切り替えに関する制御を行う。起動終了などのハードウェア一般の制御とステータス通知のほか、ALUA1305、LSA(LSAR1304とLSAL1306)、LMEM(1312、1313)、IOP(1307、1308)のコンフィグレーションをALUAE自身で自律的に切り替える制御、現在のコンフィグレーションの状態、切り替えに伴う割り込み通知、およびエラー通知の可否指定と制御も行う。AECTL1301への入力1330はコンフィグレーションの切り替えに用いる。これらのレジスタと動作の詳細は、4.2と4.5にて述べる。
CNFGC1309は、先に述べたコンフィグレーションレジスタを持つ対象に対して、コンフィグレーションデータの書き込みの制御を行う。制御内容は図14(a)に示すとおりである。レジスタの詳細は、4.2にて述べる。4.2 AECTL、CNFGC制御・ステータスレジスタ
ここでは、AECTL1301とCNFGC1309の制御/ステータスレジスタについて述べる。
(1)AECTLの制御/ステータスレジスタ
AECTL1301には、図15に示す制御レジスタ1500と割り込み制御レジスタ1510が含まれる。制御レジスタ1500は一般の制御とステータス通知、割り込み制御レジスタ1510は割り込みに関する設定を行う。ここで、AECTL1301は状態遷移を制御するための複数の状態遷移制御レジスタ2600も持つが、このレジスタと状態遷移の動作については4.5にて説明を行う。
制御レジスタ1500中のENとSTは、ハードウェア的にALUAEを起動または終了する指示(EN)と、その結果であるステータスの通知(ST)を行う。ENを1にすると起動指示、0にすると終了指示を行う。また、STが1だと動作状態、0だと休止状態を示す。ERRは、エラー状態であることを通知する。1はエラー状態、0は正常状態を示す。INI1とINI2は、ALUAEの内部状態の初期化を指示する。INI1がクラスタ1(上方8行分)の初期化、INI0がクラスタ0(下方8行分)の初期化を指示する。初期化は、内部の記憶要素を全て0、または1に設定する。C1STとC0STは、現在のALUAEの使用中のコンフィグレーション番号を示す。C1STがクラスタ1のコンフィグレーション番号、C0STがクラスタ0のコンフィグレーション番号を示す。本実施の形態では、C0ST、S1STにそれぞれ4ビットを割り当てており、16個のコンフィグレーション切り替えを制御することが可能となっている。
次に、割り込み制御レジスタ1510について述べる。割り込み制御レジスタ1510のERRは、ALUAE内でエラーが起こったときに、割り込み要求を行うか否かを指定する。1の時は割り込みを行い、0の時は割り込みを行わないことを示す。割り込み制御レジスタ1510のSIRQFは状態遷移時に割り込みを行うか否かを指定する。SIRQは、後で説明する状態遷移制御レジスタ2600の数と同じだけのビット数を備え、それぞれの状態遷移ごとに割り込みを行うか否かを設定可能である。割り込み制御レジスタ1510のSIFは割り込み要因を示す。SIFの各ビットはSIRQの各ビットがあらわす割り込みに1対1に対応する。割り込み要因を示すSIFの0リセットは、DRE外部からの書き込み、または、DREのリセットにより行われる。
(2)CNFGCの制御/ステータスレジスタ
CNFGCのレジスタを図16の1600に示す。1600中のWREQは、コンフィグレーション対象のセルへの書き込み指示を行う場合に1にセットする。W0およびW1は、書き込み先のクラスタを示す。W1が1ならクラスタ1へ書き込み、W0が1ならクラスタ0へ書き込む。CSTは、書き込み先のコンフィグレーション番号を示す。AROWおよび、ACOLは、コンフィグレーションを変更するALUセルの選択信号であり、各クラスタ中の行と列を選択する。
4.3 ALUセルの構成とコンフィグレーションレジスタ
ここでは、ALUA1305を構成するALUセルの構成と、その利用方法を明らかにするためコンフィグレーションレジスタについて述べる。本節では、(1)でALUA1305での処理をどう実現するかの概略を述べ、次に(2)でALUセルの構成を述べる。最後に(3)でALUセルのコンフィグレーションレジスタについて述べる。
(1)ALUA1305の利用イメージ
図17は、ALUセル1700を4行4列のアレイ状に並べ、図10に示されるF1ステートの処理を簡略化したフィルタリング処理を実行するためのコンフィグレーション情報の一例を示した図である。図17を用いて4行4列のセル・アレイの動作を説明する。図17のALUセル1700内に書かれたブロック内の記号(×C0、×C1、×C2、×C3、+)は、セルの演算器ALUが実行する機能を表し、直線及び矢印はデータの流れを表す。また、セル内の直線上に示されている黒丸1701はデータ転送のみを1サイクルで行うフリップフロップを表している。
図17に示されたコンフィグレーション情報は下式で表される値を求めるためのものである。
f[t]=e[t]×C0+e[t−1]×C1+e[t−2]×C2+e[t−3]×C3
上記の式において、f[t]は時刻tにおけるフィルタの出力、e[t]は時刻tにおけるフィルタへの入力、C0からC3はフィルタ定数である。e[t]は、LSAL1306から入力し、f[t]はLSAR1304に出力する。
本コンフィグレーション情報によれば、1行目のセルでデータの右側のセルへの転送と乗算を実行し、2行目、及び3行目のセルを用いて加算を行う。このコンフィグレーション情報により設定されたALUA1305に対し1行1列目のセルより入力eを毎時刻入力することで、9クロック・サイクル以降は毎サイクル、フィルタ出力fを3行4列目のセルより得ることができる。なお、この処理での計算結果は、LSAを介して内部ローカルメモリLMEMに格納される。
本実施例では、F1ステートを簡略化したフィルタについて説明したが、例えば、F1ステートからR1ステートに遷移する場合は、コンフィグレーション情報を切り替えることによりALUセルの夫々の演算機能及びそれらの接続関係を変更し、R1ステートに対応する回路構成を得ることができる。
(2)ALUセルの構成
ここでは、ALUセル1700の構成を図18に従い、以下に述べる。
ALUセル1700のデータパス系の機能は、1800で示すALUによる演算とデータ転送の機能である。ALUは、セレクタAi0-selとAi1-selの出力を2つの入力とし、結果をフリップフロップCFF0とCFF1に出力する。データ転送を行う場合は、セレクタR0-sel、R1-selの出力を、それぞれフリップフロップRFF0、RFF1の入力とする。
セレクタAi0-selとAi1-sel、R0-selとR1-selへの入力は、1810、1811、1812、1813入力端子と、フリップフロップCFF0とCFF1、RFF0、RFF1の出力から選択される。これら信号の選択はコンフィグレーションレジスタファイル1801の内、セレクタC−selで選ばれた信号1802の値により決まる。
ALUセルの出力はフリップフロップRFF0、RFF1、CFF0、CFF1の出力を各スイッチで選択し、1814、1815、1816、1817の出力端子より出力される。
入力端子と出力端子は、上下左右の4方向にそれぞれあり、上下左右の隣接するALUセルへ直接接続する。本構成では、上方向は1810と1814、下方向は1811と1815、左方向は1812と1816、右方向は1813と1817が接続される。ただし、ALUAの左右端のALUセルの左右の配線は、内側はALUセルに、外側はLSセルに接続する。また、上下端のセルの上下の配線は、内側はALUセルに接続し、外側は基本的には接続しない。ただし、四隅のALUセルの外側向きの上下の配線はALUA1305からの入出力線1320に接続される。
端子や配線は、データ用16ビット、制御用1ビットをそれぞれ有し、制御ビットは加算におけるキャリー、または、LSセルとのインターフェースでのロードストアのイネーブルビットなどに用いる。さらに、データ信号、制御信号それぞれに、その信号が有効か否かをあらわす信号(Valid信号)が付属する。Valid信号はデータ信号、または、制御信号が有効な場合に1、無効な場合に0となる。信号が有効となるのはALUA外部から入力されたデータか、または、有効なデータに対して演算を行った結果のデータである。
ALUセルへの入力は、上下左右それぞれ、Uin−br、Din−br、Lin−br、Rin−brの入力端子に入力され、それぞれの入力を、R0−sel、R1−sel、Ai0−sel、Ai1−selのセレクタにすべて接続する。
ALUセルからの出力は、データ転送レジスタRFF0、RFF1と、ALU出力レジスタCFF0、CFF1の値を、上下左右それぞれ、Uo0−selとUo1−sel、Do0−selとDo1−sel、Lo0−selとLo1−sel、Ro0−selとRo1−selのスイッチで選択する。例えば、右方向のセレクタRo0−selは、RFF0かCFF0のいずれかを選択し、Ro1−selは、RFF1、CFF1のいずれかを選択して出力する。
セレクタR0−sel、R1−sel、Ai0−sel、Ai1−selは、4方向の入力各々2セットと、フリップフロップの出力セレクタS−brの出力と、コンフィグレーションレジスタファイル1801からC−selで選択された一つのコンフィグレーションレジスタの中の定数値1803から、1つを選択する。
図17での「×C0」と記述されたALUセルでは、定数値1803をAi0−selで選択した値C0と、左端子Lin−brからの入力信号をAi1−selで選択した値を、ALUで乗算する。結果はCFF0とCFF1に出力され、Do0−selでCFF0を選択し、Do1−selでCFF1を選択して下方の出力端子1815に出力する。また、右方向へのデータ転送は入力端子1812からR0−sel、RFF0を通過し、Ro0−selより出力端子1817に出力する。
上記で述べた、種々のセレクタでの選択と、ALUで何の演算を行うかの選択は、いずれも、C−selの出力信号1802の値により決定する。
信号1802は、現在の状態のコンフィグレーションレジスタ1900(図19)の値を示す。この信号1802は、コンフィグレーションレジスタファイル1801の中から、現在のコンフィグレーションを選択する信号1804に従い、C−selで選択された値である。
コンフィグレーションレジスタファイル1801が更新されるための制御について述べる。コンフィグレーションレジスタファイル1801は、図16で示すCNFGC1309により更新される。CNFGC1309中の制御レジスタ1600によりALUセルを指定することにより、入力端子1805がこのALUセルのコンフィグレーションレジスタファイル1801のアドレスを示す信号となる。入力端子1805の値がDECでデコードされ、指定されたレジスタへの書き込みイネーブル信号となる。入力端子1806は、当該状態のレジスタへのデータ書き込みに用いる。1805、1806の二つの信号により、コンフィグレーションレジスタファイル1801の更新を行う。1805と1806は、図13におけるCNFGC1309からの出力信号の一部の信号である。C−selの動作を決める入力端子1804の信号は、図13のAECTL1301から出力される1311の一部である。
上記のコンフィグレーションレジスタファイル1801とC−selに関する機構は、他のコンフィグレーション対象ブロック、LSセルとIOCTLについても同様な仕組みとなっている。
(3)コンフィグレーションレジスタ
(2)で述べた動作を実現するためのALUセルのコンフィグレーションレジスタ1900について以下で説明する。
レジスタ1900の中で、1901の領域はR0−sel、R1−sel、Ai0−sel、Ai1−selの選択信号であり、Lin−br、Rin−br、Uin−br、Din−brのそれぞれへの2組の入力端子、S−br、および1900中のIMIDの計10組の入力の中から一組の17ビットを選択する。R0S、R1S、AI0S、AI1Sは、それぞれ、R0−sel、R1−sel、Ai0−sel、Ai1−selの選択コードをあらわす。
1902の領域は、左方への出力セレクタLo0−sel、Lo1−sel、同じく、右方への出力セレクタRo0−sel、Ro1−sel、上方への出力セレクタUo0−sel、Uo1−sel、下方への出力セレクタDo0−sel、Do1−selの制御信号である。例えば、LOSはLo0−selおよびLo1−selの制御信号を示す。同様にして、ROS、UOS、DOSは、各方向への2つのセレクタの制御信号を表わす。
EXEは、ALUの演算を表わす。乗算、加算、減算などの算術演算や、シフト、ANDなどの論理演算を搭載する。IMIDは定数を表わし、上記に述べたように、RO−selなどのALUと転送レジスタへの入力セレクタへの入力の一組となる。
4.4 データのロードストア機構
ここでは、ALUアレイ1305から見たデータのロードストア機構について述べる。
ロードストアは、2種類に大別される。一方は、1312および1313に付随のローカルメモリへのアクセス。もう一方は、ALUAE1202の外部のハードウェアモジュールやDRチップ外部IOとのアクセスである。これらのいずれのアクセスも、LSセルというロードストア専用セルを通して行う。
以下では、LSA(1306,1304),LMEM(1312,1313),IOPA(1308,1307)について説明する。まず、(1)でLSセルとALUセルのインターフェースについて述べ、(2)LSA,LMEM,IOPAの構成概要をのべ、(3)でLMEM2200へのアクセス機構を、(4)でIOPA2100を通した外部とのアクセス機構について述べる。
(1)LSセルとALUセルのインターフェース
図20は、LSA内のLSセル2000と、ALUセル1700とのインターフェースを示す。
ALUセル1700の出力データ端子1816の上位半分でアドレスとR/Wビットを、下位半分でALUセル外部へ出力するデータを送る。また、端子1812でLSセルから入力するデータを受け取る。LSセル2000は、ALUセル1700の端子それぞれについて、端子2002、2003、2004、2005,2006と接続する。
(2)LSA,LMEM,IOPAの構成概要
図21は、LSA(1306,1304),LMEM(1312,1313),IOPA(1308,1307)の構成の概要を示した図である。LSA,LMEM,IOPAはALUAの左右で対象であるため,以下ではまとめて,LSA2300,LMEM2200,IOPA2100として説明する。
LMEM2200は、LSA2300とIOPA2100の両方からのアクセスが可能である。また,LMEM2200は、LSセル2000から通常のメモリとして利用されると共に、LSセル2000が外部とアクセスするための中間バッファの役目も果たす。
IOPA2100は、ALUAE1202と直結する外部IOや他のモジュールと通信するためのモジュールである。本実施の形態では、ADC/DAC206が外部IOであり、WCE1201が他のモジュールに当たる。また,IOPA2100は、内部バス1200のBSC1300とのインターフェースも持ち、外部IOへのアクセスか内部バス1200へのアクセスのいずれかを,各IOP2106を通して選択する。
(3)LMEMへのアクセス機構
ここでは、LSセル2000からLMEM2200へのアクセスについて述べる。LMEM2200は、LSセル2000に対応した複数のメモリセル2102から構成する。メモリセル2102は、LSセル2000,または,IOP2106よりアクセスできるメモリMEM2103と、MEM2103へのアクセスをコントロールするMctl2104で構成される。この構成により、LSセルからメモリセルへのアクセスが行ごと並列に実行可能である。
ここで、Mctl2104は、メモリセル2102が、IOP2106からもアクセスされるため、LSセル2000とのアクセスとの選択を行うことがその役割である。
LSセル2000がLMEM2200にアクセスするための命令やモードを指定するのが、図22に示すLSセル用コンフィグレーションレジスタ2200である。以下でその機能を述べる。
EN2201は、LSセルのデータアクセスが可能か否かを示す。LS/PP2202は、アドレスをALUセル1700から与えるか、LSセル内部でアドレスを自動発生するかを指定する。RW2203は、データをリードするか、ライトするかを指定する。
以下では、LSセル内部でアドレスを自動発生する場合のレジスタ設定方法を説明する。LI/D2204は、アドレスを自動的にインクリメントするか、デクリメントするかを指定する。LBAS2205は、ベースアドレスを指定する。LADD2007は,インクリメント,または,デクリメントの幅を指定する。ITER2206は、何回繰り返してアクセスするかを指定する。なお,繰り返し最大数までアクセスした後は,ベースアドレスに戻る
(4)ALUアレイ外アクセス機構
ここでは、IOPA2100を通したALUAE外部へのアクセス機構について述べる。まず、IOPA2100からLMEM2200へのアクセスを述べ、次に、IOポートアレイ2100と外部とのアクセスを述べる。
(a)LMEMへの外部からのアクセス
IOPA2100は、メモリセル2102の2個セット2110に対して、IOP2106を通してアクセスする。IOP2106は、入力ポート2113と出力ポート2112を1セットとしてもち,さらにBSC1300と配線2109を介して接続される。
IOP2106は、2つのメモリセル2102を中間バッファとして、LSセルと接続する。2つのメモリセル2102のいずれかに、入力ポート2113と出力ポート2112を接続する。また,IOP2106は入出力ポートのほかにCPUバス2109との接続も選択可能である。
上記で述べたIOP2106の各種モードを指定するのが、図23で示すIOポートコンフィグレーションレジスタ2300である。以下でその機能を述べる。
IEN2207は入力ポート2113のアクセスが可能か否かを示す。同様にOEN2301は出力ポート2112のアクセス可否を示す。これらのいずれもアクセス不可であったときには、IOP2106はCPUバス2109とのアクセスを選択する。
LSSEL2302は、入力ポート2113と出力ポート2112が、2つのメモリセル2104のセット2110の内、いずれとアクセスするかを選択する。この指定により、LSセル2000のセット2111のいずれとアクセスするかも決まる。なぜなら、LSセル2000とメモリセル2102は一対一で接続されているためである。
IOP2106は、外部からのアクセスでは、アドレス自動発生でメモリセルのセット2110とアクセスを行う。このとき、LSセルコンフィグレーションのLI/D2204,LBAS2205,LADD2207に相当して、II/D2303,IBAD2305,IADD2306を指定する。意味は、LSセルと同様であるため、説明は割愛する。LSセルと異なる点は、メモリの最大アドレスに達するまでアクセスを繰り返す点である。
(b)外部アクセス
上記で述べたIOP2106を用いて外部とアクセスする機構を、図24と図25に従い、以下で述べる。
図24に示すように,IOPA2100は、ALUアレイ外部モジュールであるWCE1201や、LSI外部IOを介してAD/DA206とのデータアクセスを行う。ここで、IOPA2100は、IOP2106を、1クラスタ分、集めたブロックである。
IOPA2100は、最上位のクラスタと最下位のクラスタの各々に対して、左右一対ある。信号線群1321は、図21のIOポートセル2106の入出力信号線2112と2113を、左の最上位クラスタと最下位クラスタ分を束ねたものを表す。同様に、信号線群1322は、左の最上位クラスタと最下位クラスタ分、入出力信号線を束ねたものを表す。
これらの信号線群1321と1322は、EXIOS1203の中のスイッチ2403で、アクセス先の信号線1206と207に選択的に接続される。スイッチ2403の接続関係を指定するのが、図25で示すEXIOSのコンフィグレーションレジスタ2500と2510である。
2500は、最下位クラスタのIOP2106からの入出力の接続先を指定し、2510は、最上位クラスタの入出力の接続先を指定する。2500で、LRP3selは、最下位クラスタの右のポート3の接続先を選択する。ここで、ポート3とは、クラスタ内の最上方のIOポートセル2106を指し、下方に向かって、ポート2,ポート1,ポート0と続く。同様にして、LLP3selは、最下位クラスタの左のポート3の接続先選択を指定する。2510も、2500と同様に、URP3selは、最上位クラスタの右のポート3の接続先選択を、ULP3selは、最上位クラスタの左のポート3の接続先選択を指定する。他のポートについても同様である。
EXIOS1203のチップ外部への端子は、図24に示す207が接続されているLSI外部端子であり、入力と出力をセットで2個備える。WCEへの配線1206が接続されているALUAE以外の外部モジュールへの端子は、入力と出力をセットで4個備える。
EXIOS1203のコンフィグレーションレジスタ2500と2510の各々のIOPに対応するビットは、LSI外部端子選択用、外部モジュール端子選択用がある。LSI外部端子選択用のビットは、LSI外部端子1、または,LSI外部端子2を選択する。外部モジュール端子選択用のビットは,ALUAE外部モジュール端子1、ALUAE外部モジュール端子2、ALUAE外部モジュール端子3、ALUAE外部モジュール端子4を選択する。
4.5 DR状態遷移と遷移テーブル
ここでは、図10に示すような、コンフィグレーションの状態遷移を実現するためのハードウェア機構と、状態遷移テーブルなどの設定レジスタについて述べる。
(1)状態遷移のためのハードウェア機構
ALUA1305で行われる処理で、次へ遷移する条件が整ったら、ALUAの4隅にあるALUセルから、トリガー信号1320を発行する。次に、EXIOS1203では、トリガイネーブルレジスタ2520の設定に従い、MSK2409で、有効なトリガー信号はそのまま、無効な信号は0にマスクする。最後に、AECTLでは、図26に示す状態遷移制御レジスタ2600の設定に従い、現在の状態およびトリガー信号の値を参照して、次の状態を決める。次の状態は、図13の状態信号でALUセル、LSセル、IOCTLに通知され、切り替えが実行される。AECTLの中身の詳細は、後述する。
(2)状態遷移の設定レジスタ
ここでは、図26に従い、AECTLの状態遷移制御レジスタ2600を説明する。AECTLは内部に複数の状態遷移制御レジスタ2600を持ち、これらをまとめて状態遷移テーブルと呼ぶ。
まず、ALUAの4隅のALUセルからトリガー信号を発行するには、上側のALUで上側にデータを出力するか、下側のALUセルで下側にデータを出力する。
次に、図25のトリガイネーブルレジスタ2520にてマスクを行う。LRTENは右下のALUセルのトリガー信号をイネーブルにするか否かのコードである。有効にするときには1、無効にするときには0を設定する。無効にしたときには、図24のMSK2409で、これに該当するビット列は全て0にマスクされる。同様に、LLTENは左下のALUセルのトリガー信号のイネーブル、URTENは右上ALUセルのトリガー信号のイネーブル、ULTENは左上のALUセルのトリガー信号のイネーブルを示す。図24のMSK2409でマスクされた信号は配線1330を介してAECTL1301へ送られる。
最後に、状態遷移制御レジスタ2600を説明する。ASTは、ALUAE1202の状態が休止または動作中であることを、切り替え条件とすることを意味する。0が休止中、1が動作中を示す。最初の休止状態から、動作状態へ移るときなどに利用する。CSTATには、現在実行中のコンフィグレーション番号を遷移の条件とする場合に、コンフィグレーション番号を指定する。CMSKは、現在のコンフィグレーション番号を遷移条件に入れるか否かを示す。1が遷移条件に入れない、0が入れる。NSTATには、遷移先のコンフィグレーション番号を指定する。EMSKは、遷移テーブルの容量削減のため、複数の状態遷移を一つの状態遷移レジスタ2600で扱うため、トリガー信号2121にマスクをかける。トリガー信号2121とEMSKの値の論理ORをとり、結果がすべて1であるときに遷移を実行する。例えば、CMSKを1にセットすることで、EMSKで設定したトリガーが発生した場合に、現在のコンフィグレーション番号によらず遷移が実行される。
5.WCEの設定レジスタ
WCE1201の動作と設定レジスタについて以下で述べる。以下、5.1で送信管理1030について、5.2で無線特殊演算1031について述べる。これらの処理は、常に動作する必要があるためALUAEで実行できなかったり、また、ALUAEの構成を変更することで処理するよりは、専用回路で行ったほうが効率的であるため専用回路を設けている。
5.1 送信管理
ここでは、送信管理1030について、図27で動作を、図28で設定レジスタについて述べる。送信管理1030は、ALUAE1202からの情報2700、2701、1020、1023と、CPU700からの情報907を元にして、送信可否に関する状態を決定する。その結果、ALUAE1202へは送信許可/禁止情報906を、CPU700へは、内部状態910をそれぞれ送信する。このように送信管理用の専用回路を設けることによりCPUの介在なしにALUAEが自立的に受信、送信の管理を行うことが可能となる。
(1)通常データの送信動作時の送信管理
通常のデータ送信時の動作を述べる。まず、CPU700が、カーナビゲーションシステム107から送信要求と共に送信データを受け取ると、CPU700は、送信管理1030に次送信許可907を発行し、ALUAE1202に送信要求を発行する。送信管理1030は、これまでの通信履歴から送信可能状態、または、送信不可能状態のどちらかにある。
ALUAE1202は、受信動作900の中の受信待機状態の時に、CPU700からの送信要求908と、送信管理1030からの送信許可906を受けると送信動作902に遷移する。
送信動作902は、送信開始時に送信管理1030中の通信開始フラグSFLGをセットする。送信管理1030はSFLGがセットされると送信不可状態2709となり、ALUAE1202に対して、送信禁止906を発行する。
送信動作902は送信が終了すると、送信管理1030中の通信終了フラグEFLGをセットし、受信動作900に遷移する。送信管理1030はEFLGがセットされ、かつ、CPU700から次送信許可907がセットされているならば、タイマ2(2708)でカウントを開始する。送信管理1030はあらかじめタイマ2(2708)に設定されたカウントが終了すると送信可状態2703に遷移し、ALUAE1202に対して、送信許可906を発行する。
(2)受信動作時とACK送信の送信管理
受信動作時の送信管理は、3種類ある。受信動作が行われている時には送信不可状態2709にするという管理、受信終了後、ACKを送信するため送信可能状態2703にするという管理、および受信失敗時(NG)、次送信可能状態2703にするという管理である。
最初の管理は、受信動作900でパケットが検出され、1フレームの受信が開始されたと判断された時、1フレーム開始情報2700がフラグとしてSFLGにセットされた時に行う。SFLGがセットされると、送信不可状態2709に遷移する。
2番目の管理は、1フレームの復調終了と判断された時に起こる。この判断は、EFLG2707がセットされ、かつ、次送信許可フラグがセットされた時に行われる。
送信管理1030はEFLGがセットされ、かつ、CPU700から次送信許可907がセットされているならば、タイマ1(2711)でカウントを開始する。送信管理1030はあらかじめタイマ1(2711)に設定されたカウントが終了すると送信可状態2703に遷移し、ALUAE1202に対して、送信許可906を発行する。
3番目の管理は、受信失敗(NG)と判断され、かつ、次送信許可フラグがセットされた時に行われる。後の動作は2番目の管理と同様である。
(3)送信管理の設定レジスタ
CPU700とALUAE1202から見た設定レジスタは、図28に示す制御/ステータスレジスタ2800である。EN2801は、送信管理をハード的にイネーブルするか否かの制御レジスタであり、CPUから設定する。
SFLGとEFLG2802は、フレーム(通信)の開始と終了を示すフラグで、ALUAE1202からセットされ、CPU700からは読み込みのみ可能である。SFLGは、送信開始1020と受信の1フレーム開始2700にセットされ、(1)、(2)で述べた状態遷移が終わるとリセットされる。EFLGは、送信終了1023と、受信1フレーム終了/受信NG2701でセットされ、(1)、(2)で述べた状態遷移が終わるとリセットされる。
STAT2803は、送信管理の内部状態910を示し読み出しのみ可能である。無線仕様によっては、図27で示すだけの状態では不十分であるが、ここでは、無線仕様の詳細に触れることが目的でないため、基本的な枠組みを示すのみであり、必要なら状態を追加することは容易に可能である。SEN2804は、次送信許可/禁止907を意味し、CPUによりセットされる。許可時1、禁止時0がセットされる。
ACNT、CNT1からなる2805は、各種タイマのカウント値を示す。ACNTが、タイマ1(2711)で利用され、CNT1がタイマ2(2708)で利用される。無線仕様によっては、他にもカウンタが必要であるが、この基本的な枠組みに、必要ならカウンタを追加することは容易に可能である。
このように、送信管理1030は、送信、受信の管理にカウンタを用いる。このカウンタは、ALUAEが実際に送信動作や受信動作を行う間もカウント動作を行う。従って、送信管理1030をALUAEで実現しようとすると常にカウンタを構成するALUセルを確保しなければならず、効率が悪くなる。そこで、本実施例では、専用回路として設けている。
5.2 無線特殊演算
ここでは、無線特殊演算1031について、送信用無線特殊演算2920と受信用無線特殊演算3120の各々について、そのハードウェア構成および動作と設定レジスタについて述べる。無線特殊演算1031は、1ビット単位で処理するため、例えば16ビット単位で処理するALUAEで処理すると効率が悪い処理等を行う。これらの1ビット単位での処理を専用回路とすることでALUAEで処理するより面積効率がよいためである。
(1)送信用無線特殊演算
ここでは、送信用無線特殊演算2920について、図29でハードウェア構成および動作を、図30で設定レジスタについて述べる。
まず、CPU700から、送信設定用レジスタ2900に初期設定する。送信用レジスタには、図30に示す制御レジスタ3000と送信データ長レジスタ3010がある。
図30の制御レジスタ3000のEN3001は、送信用無線特殊演算2920をハード的に有効にする。送信用無線特殊演算2920は、本実施の形態では、スクランブルとCRCの二つの処理を行う。図11のデータ構造1100において、CRC処理はヘッダ1(1107)と、ヘッダ2(1109)とデータ(1110)のセットについて行い、それぞれの結果をCRC−H1108、CRC−D1111として付加して1100の形式とする。スクランブルは、1100の全てのビットについて先頭より行う。
SCLEN3003は、スクランブル演算のビット長を指定する。0が初期値で7ビット長、1は10ビット長である。HCRCとDCRCの3004は、CRC演算のビット長を指定する。それぞれ、0が32ビット、1が16ビットとなる。
送信データ長レジスタ3010は、CPU700から送付されてくる元のCRC演算とスクランブル処理を実施する前のデータの長さを領域毎に指定する。1100のデータ構造に従い、PLENでプリアンブル領域1101のビット長を、HLENでヘッダ1 1107のビット長を、DELNでデータ領域1103のうち、ヘッダ2(1109)とデータ1110を足し合わせたビット長を指定する。CPU700から順にデータが送られたら、送信用無線特殊演算2920にて、CRCとスクランブルを処理し、ALUAE1202に結果を転送可能となる。
送信コンフィグレジスタ2930には、スクランブルおよびCRCの動作を指定するパラメータを入力する。初期設定が終了したら、CPU700は、入力バッファ2901に、プリアンブル領域1101、ヘッダ1 1107、ヘッダ2 1109とデータ1110の順にデータを送付し、順に所定の演算を行う。
2901以降の処理を、述べる。処理の流れとしては、CRC処理を行った後に、スクランブル処理を行う。まず、入力選択2903で入力バッファを選択する。CRC/Scramble演算2904では、プリアンブル領域1101に対しては何も演算を行わないで出力バッファ2906に出力する。ヘッダ1(1107)に対しては、送信データ長レジスタ3010のHCRCで指定したヘッダ長と、送信コンフィグレジスタ2930で指定したCRCの動作に従って、CRC/Scramble演算2904でCRC演算が実施され、CRC−Hを付加して、出力バッファ2906に出力する。ヘッダ2(1107)とデータ2(1110)に対しては、送信データ長レジスタ3010のDCRCで指定したヘッダ長と、送信コンフィグレジスタ2930で指定したCRCの動作に従って、CRC/Scramble演算2904でCRC演算が実施され、CRC−Dを付加して、出力バッファ2906に出力する。
次に転送先選択2905で入力選択2903方向が選択され、入力選択2903では転送先選択2905からの入力が選択される。出力バッファにあるCRC処理済みのデータに対して、CRC/Scramble演算2904でスクランブル処理を実施し、再び出力バッファに格納する。スクランブルの動作の指定は、送信設定用レジスタ2900と、送信コンフィグレジスタ2930によって決まる。
スクランブル処理が終了すると、転送先選択2905はビット長拡張2907方向が選択される。ビット長拡張2907では、ここまで1ビットとして扱われてきたデータを、ALUAE1202にあわせ、上位7ビットに0を挿入して8ビットに拡張する。この後EXIOS1203を介して、ALUAE1202からの要求があれば随時出力を行う。なお、上記の送信無線特殊演算2920内の処理はシーケンサ2910によって制御される。
(2)受信用無線特殊演算
ここでは、受信用無線特殊演算3120について、図31でハードウェア構成および動作を、図32で設定レジスタについて述べる。
まず、CPU700より、受信用設定レジスタ3100に初期設定する。受信用設定レジスタ3100には、図32に示す制御レジスタ3200と受信データ長3210がある。図32の制御レジスタ3200のEN3201は、受信用無線特殊演算3120を有効にする。1が有効、0が無効。その他のコードの意味は、3000と同様であるため割愛する。但し、受信の場合、プリアンブル領域中のパケット検出に用いるSYNCは、受信用無線特殊演算3120には送られない。この点が、送信の場合と異なる。受信データ長レジスタ3210の意味も、3010と同様であるため割愛する。
初期設定が終了して、ALUAE1202で受信が始まると、SYNC1105以外のデータが受信用無線特殊演算3120に送られ、CRCとスクランブル処理を実行し、結果が出力バッファ3113に格納される。ヘッダ1の結果、および、CRCの結果はEXIOSを介してALUAE1202に送られ、CRC判定を行う。そのほかのデータはCPU700からの要求に応じて出力される。
処理の流れとしては、SFD1106がALUAE1202で1ビット復調が終了するごとに、受信無線特殊演算3120に送付される。送付時はALUのビット長で送付されるので、有効な下位1ビットを有効ビット選択3101にて選択し、入力バッファ3110に蓄える。SFD1106および、ヘッダ1(1107)のデータが送られてくると、随時CRC/Scramble演算3112にてスクランブルを実行し、出力バッファ3102に蓄える。これらの結果はALUAE1202の要求に応じて、EXIOS1202へと出力される。
また、ヘッダ1(1107)は、転送先選択3113、入力選択3111を介して再びCRC/Scramble演算3112に入力され、CRC―H1108が計算される。CRCの結果も他と同様に出力バッファに蓄えられ、ALUAE1202の要求に応じて出力される。ALUAE1202は、ヘッダ1(1107)の値を解析し、得られたヘッダ2(1109)とデータのビット長を、受信設定用レジスタ3100の受信データ長レジスタ3210に入力する。その後、ヘッダ2(1109)およびデータ1110が入力され、CRC/Scramble演算3112にてスクランブルとCRCを計算して、出力バッファ3102に蓄えられる。
CRCの結果はALUAE1202からの要求で、EXIOS1202を介して返され、CRC判定を行う。ヘッダ2(1109)およびデータ1110は、CPU700の要求に応じてCPU700へと出力される。その他の部分で、送信無線特殊演算2920と同じ名前がついているものに関しては同様の動作を行う。
6.DREの利用例
6.1 無線APIによる無線通信動作の実現
DRチップを用いて無線通信動作を実現するために必要となる無線APIと、これによる無線通信動作の実現方法を述べる。無線APIは、CPUにより実行される。
6.1.1 無線APIの機能
無線通信動作を実現するために、9つの無線APIを定義する。9つの無線APIとは、
(1)ハードウェア初期化、
(2)ソフトウェア無線初期化、
(3)起動(受信動作開始)、
(4)次送信許可/禁止、
(5)送信要求、
(6)受信データ取得、
(7)ack送信要求、
(8)割り込み要因取得、
(9)送信管理状態取得、
である。以下これらのAPIについて説明する。
(1)ハードウェア初期化は、DRE708の全ての構成を、ハードウェア的に初期化する。初期化フラグがある構成物はフラグをオンにし、その他は、レジスタなどの値を初期設定する。
(2)ソフトウェア無線初期化は、実現したい無線仕様に合わせたDRE708の初期化である。ALUAE1202は、コンフィグレーションデータの設定、割込み設定、状態遷移テーブルの設定を行い、WCE1201には、無線通信処理用にパラメータやタイマ用カウンタを設定する。ALUAE1202の初期化におけるコンフィグレーションデータの設定は、CNFGC1309にあるバッファにコンフィグレーションデータを格納し、制御レジスタ1600の設定により、ALUA1305やLSAR1304やLSAL1306に必要なコンフィグレーションデータを格納することにより行う。割込みの設定は、AECTLの制御レジスタ1500の設定による。状態遷移テーブルの設定例は、後述する。
(3)起動(受信開始)は、各種ハードウェアを待機状態から動作状態にすることである。これにより、ALUAE1202は受信動作を開始し、WCE1201はCPU700やALUAE1202からの各種情報を受付可能となる。
(4)次送信許可/禁止は、送信管理1030に次の送信に対して許可や禁止を与える。これは現在の状況からの第一次許可/禁止の判定であり、送信管理1030ではタイマによる時間測定などの詳細な判定により、最終的な判定を行う。
(5)送信要求は、ALUAE1202に送信要求を発行すると共に、送信データを送信用無線特殊演算2920に送付する。送信要求では、最初に、ALUAE1202内のローカルメモリを参照し、前回の送信が終了しているかどうかを確認する。終了していないならば、APIはエラーを返し終了する。終了しているならば、送信データを送信無線特殊演算2920へ送り、送信設定用レジスタに処理の開始を設定する。さらに、ALUAE1202内のローカルメモリの所定のアドレスにフラグを立てることにより、送信要求を通知する。
(6)受信データ取得は、受信終了割込みをALUAE1202から受けた後、受信データを受信用無線特殊演算3120の出力バッファ3102から取得することにより行う。
(7)ack送信要求は、送信要求と基本的に同じ処理であるが、送信優先度が最も高いため、前回の送信が終了していない場合はこれをキャンセルし、以降は送信要求と同様に送信の手続きを行う。また、前回の送信をキャンセルした場合は、キャンセルしたことを示す値を返す。
(8)割込み要因取得はCPU700に対して発行された割り込みに対して、その要因を取得する。具体的にはAECTL1301内の割り込み要因レジスタ1512の値を参照、解析して割り込み要因に対応した値を返す。
(9)送信管理状態取得は、送信管理1030からの状態取得を行う。6.1.2 無線通信動作の実現例。
上記で述べた無線APIにより実現される無線通信動作の一例の主要動作を図33に従い述べる。図では、初期化動作は省略した。図で、実線は動作中、点線は休止中または待機中、太線は特に強調したい動作を示す。特に送信管理1030は送信可能状態の時のみ実践で示し、タイマによるカウントは図33では特に示さない。
まず、起動API822が実行されると、ALUAE1202の受信動作R808が開始される。ここでは受信処理の内、同期処理810が実行される。
次に、次送信許可/禁止API3400により、送信管理1030の制御/ステータスレジスタ2800の許可フラグSEN2804がセットされる。これにより、1030の内部状態遷移が可能な状態になる。
送信要求API823が発行されると、無線特殊演算1031へ送信データが転送され、スクランブルやCRC動作を行う。また、ALUAE1202のローカルメモリ上の送信要求フラグがセットされる。
同期処理810で同期する無線信号がなく、送信管理1030が送信可能状態で、上記の送信要求フラグがセットされると、ALUAE1202による送信動作805が開始される。送信動作は、図10に示されるS1ステートの処理とF2ステートの処理とをコンフィグレーション情報に従って回路構成を変更して実行する。
ALUAE1202は、送信開始に伴い、送信管理1030へ送信開始の通知3401をする。また、ALUAE1202は送信が終了すると、送信終了通知3402を送信管理1030へ行うとともに、送信終了割込み824を実行する。
送信終了後、ALUAE1202は再び同期動作811を実行する。同期動作中のSFD検出では、無線特殊演算1031も利用される(3403)。SFD検出が成功すると、同期完了割込み825を実行し、有効なデータの復調動作809を開始する。受信し、復調されたデータは無線特殊演算1031に送られ、CRCとスクランブルの処理を実行した後、出力バッファに格納される。ALUAE1202は、1パケットの受信が終了すると、受信終了割込み826を実行し、受信終了を送信管理1030にも通知する。
CPU700では受信終了割り込み826を受けて、受信データ取得API827を実行し、無線特殊演算1031での演算済みのデータを取得する(3404)。受信を完了し、受け取ったデータが自局宛のデータであった場合は、ack要求API828を実行する。
ack要求API828の動作は、送信要求API17823の動作と同様であるため、割愛する。送信動作806でACK送信が行われたあと、ALUAE1202は、再び受信動作を開始する。
6.2 コンフィグレーション遷移の設定例
ここでは、図34に示す状態遷移図を例にとり、コンフィグレーション遷移の制御を行うための設定レジスタと、AECTL1301の内部動作の概要を述べる。6.2.1 状態遷移に関連する設定レジスタ
図34の状態遷移図では、状態遷移以外に、遷移が決定した時点で行う二つの動作を示した。一つは状態遷移に伴う割り込み1018であり、もう一つはWCEとの通信1028である。以下では、(a)で状態遷移テーブルによる状態遷移の設定と、状態遷移に伴う割り込み発生を述べ、(b)でWCEとの通信の設定について述べ、(c)状態遷移テーブル方式の特徴的な設定例を割り込み動作がないについて述べる。
(a)状態遷移テーブルの設定
状態遷移テーブルの設定を、図34と図35に従って、以下で述べる。状態遷移テーブルとは自律的に状態遷移を行うために、現在の状態と次に遷移先を決定するための情報をあらかじめ設定したテーブルである。最も単純なのは、図34の状態遷移図に記載される各ステートをつなぐ矢印の数だけテーブルを持つことであるが、ここでは、そのテーブルを小さくするための方法を述べる。
図34に示す状態遷移図を、次に遷移する状態(遷移先状態)で区別し、さらに、割り込みの有無により、区別したのが図35である。複数の現在の状態があっても、遷移先状態が同一であれば、同一の状態遷移制御レジスタ2600で定義することが可能である。ただし、割り込みがあるか否かで区別する必要がある。上記の区別の結果、3500から3512までの13個の状態遷移制御レジスタで表現できる。ただし、一つの現在の状態から、複数の状態への遷移がある場合はトリガー信号の値により区別する。
トリガー信号の項目では、右下(LR)、左下(LL)、右上(UR)、左上(UL)の4つのALUセルのうち、どのトリガー信号からどんな値を出力するかを示している。これらを、LR、LL、UR、ULの順に、最上位ビットからつなぎ合わせ、32ビットのトリガー信号とし判定する。各々、トリガー信号に設定する数値を16進で記載している。−と記述してある場所は全て0とする。
このようにテーブルを構成すると、例えば、遷移No.3504や3505のように複数の状態遷移をまとめてテーブル管理できるため、テーブルを小さくすることができる。
図34の状態遷移に対応した図35のトリガー信号の割り当て例について以下で説明する。
まず、遷移3500は、R1が現在の状態であるため、R1を現在の状態に持つ3505と、3511とは、トリガー信号で区別する必要がある。これらは、いずれも左上セルの出力がトリガー信号となるため、1のビット位置が異なるH01、H02、H04を割り当てる。
次に、遷移3501は、F2が現在の状態である。他に現在の状態をF2に持つチャネルはないが、右上セルの出力で区別する遷移の中で、現在の状態に依存しない遷移3504、3505、3508とはトリガー信号で区別する必要がある。結果、これら4つの遷移は、H01、H02、H04、H08と、1のビット位置が異なるコードを割り当てる。
3番目に、遷移3502は、S1が現在の状態であるため、遷移3511と区別する必要があるが、トリガー信号を出力する位置が異なるため先のような問題は発生しない。そのほか、遷移3501と同様に、遷移3504、3505、3508とも区別する必要がある。そこで、遷移3502はH10を割り当てる。ここで、遷移3502は、遷移3501と同一のトリガー信号でも問題ないが、わかりやすさのため異なる設定としている。以下、同様にして、他のトリガー信号を決定することができる。図36(b)に図35に対応した状態遷移テーブルの設定を示した。図36(a)は各状態に番号を割り当てた表である。図36(b)のNSTATは遷移先状態、CSTATは現在の状態、CMSKは現在の状態を状態遷移の条件に含むか否かのマスク、INTEは遷移時に割り込みを実行するか否かの設定、^EMSKはEXIOSのMSK2409に与えるマスクをビット反転した値を示す。ここで、割り込み設定のINTEは割り込み制御レジスタ1510のSIRQに相当する部分であるが、説明の都合上、本表に加えて記述する。
上記の過程は、トリガー信号決定条件を厳密に説明したが、トリガー信号のビット数と、状態遷移テーブルに余裕がある場合には、各遷移に状態遷移制御レジスタ2600を割り当てると、容易に設定は可能である。
(b)WCEとの通信の設定
送信管理1030への1フレーム開始または終了の状況を知らせるには、ALUAE1202よりLSセルとEXIOSを介してWCE1206に書き込みを行う。具体的には、送信管理1030の制御/ステータスレジスタ2800のSFLGまたはEFLGにフラグを立てる。
LSセルより、ALUAE1202の外部へアクセスするには、LSセルのコンフィグレーションレジスタ2200のLS/PPビット2202を0にし、PPモードを選択する。次に、EXIOSのコンフィグレーションレジスタ2500、2510で、利用するポートを配線1206に接続するように指定することにより、アクセス可能となる。WCE1201内のどのレジスタにアクセスするのかは、ALUAE1202から与えるアドレスにより指定する。
(c)割り込み動作がない場合の状態遷移テーブルの設定
ここでは、図34に含まれる割り込み動作がない場合、即ち、純粋に状態遷移だけが起こる場合を取り上げ、本実施の形態が状態遷移テーブルのテーブル容量削減に、いかに効果的かを示す。結論から述べると、状態の数だけの状態遷移制御レジスタ2600だけで、状態遷移は表現できる。通常では、状態遷移の遷移数だけのレジスタ数が必要であるため、これがトリガー信号とMSK2409によるマスクの効果である。
図37に割り込みをなくした場合の状態遷移テーブルの設定を示した。
図36(b)の中で、INTEに1が設定されている3500などを0に設定した結果、例えば、3500と3501は、遷移先が同一になり、現在の状態を遷移条件からはずすことができる。これと同様にして、遷移先が同一の状態遷移は一つの状態遷移制御レジスタ2600で表現できるため、全部で9個の状態遷移制御レジスタ2600、即ち、状態の数だけの状態遷移制御レジスタ2600で表現可能である。この表現では、トリガー信号を示す^EMSKは、1が立つビット位置は全て異なる設定として、トリガー信号だけで判別できる構成としたが、現在の状態が異なる遷移ではトリガー信号を同一にできるため、トリガー信号のビット数を削減することが可能である。
6.2.2 AECTLの実現方法の概要
ここでは、AECTL1301の内部の動作を実現する論理図の一例を図38で示し、実現方法の概要を述べる。
AECTL1301は二つのブロックに分かれている。一つ目は3900であり、状態遷移制御レジスタ2600で設定した条件を判定するブロックである。3900は、状態遷移レジスタ2600の数だけ存在する。実際には、クラスタごとにブロック3900は存在するが、ここでは一つのクラスタのみを代表した図としている。二つ目は3920であり、3900の複数のブロックからの出力を入力とし、AECTL1301の外部のモジュールへ次の状態を示す信号1311と、割り込み要求信号710を出力する。以下で、それぞれのブロックについて述べる。
(a)遷移条件判定ブロック3900
3900は、EXIOS1203のMSK2409でマスクをかけた後のトリガー信号1330を入力して、遷移チャネルごとに遷移条件の判定を行なう。3900で、太線は複数ビットからなる束の信号線を示し、太線を入力する比較器3901は、複数ビット同士の比較を示し、AND論理3911は、各ビットのAND論理の集合を示す。
まず、現在の状態を判定する論理について述べる。現在の状態がCSTATによる指定と同一かどうかを判定する比較器3901と、現在の状態を条件に含めないかどうかのCMSKのOR論理3902で判定される。CMSKが1なら、無条件に条件成立となる。比較器3901の判定は、チャネルレジスタのCSTAT指定と現在の状態を示す1504が同一かどうかを判定し、結果を3904として得る。3900では、クラスタごとの詳細は割愛しているので、1504のC0STを代表して入力している。比較器は、比較結果が同一であれば1を同一でなければ0を、3903に出力する。
次に、トリガー信号が成立するか否かの条件を判定する論理を述べる。3905と3906の論理で実現する。トリガー信号判定は、EMASKでマスクされていないビットがALL1であることを判定することにより行う。そこで、3905で、全てのビットについて、EMSKが立っているか、またはトリガー信号が1かの判定を行い、3906でEMSKが立っていないビットで少なくとも一つは、トリガー信号ビットは1であるかどうかの判定を行う。3905と3906のAND論理を取れば、少なくとも一つのビットはEMSKが0でトリガー信号が有効であり、これらの有効ビットは全て1であることが信号3907として判定できる。
最後に、3904と3907とのAND論理で、このチャネルは有効か否かが判定される。全てのチャネルについてこの判定結果を信号3908として出力する。
各チャネルについて、次の状態を出力する論理は、有効判定信号3908と各チャネルのNSTATのANDとして信号3909で得られる。有効でなければ全て0、有効であればNSTATが出力される。チャネルごとの割り込み許可信号は、チャネルごとの有効判定信号3908とINTEのAND論理で、信号3910として出力する。
(b)AECTLからの出力信号生成ブロック3920
チャネルごとに、生成された3908、3909、3910の信号は、AECTLの出力信号生成ブロック3920に入力され、コンフィグレーションの次状態信号1311と割り込み要求信号710として出力する。信号1311は、ALUアレイ1305、LSアレイ<1304・1306>、IOP1308、EXIOS1203へ出力し、信号710はINTC706に出力する。以下で、1311と710を生成する論理について述べる。
まず、次状態信号1311を生成する論理を、3920の下半分で示し、以下で述べる。この論理は、一つのチャネルしか有効とはならないことを前提としている。複数のチャネルが有効となるのは、状態遷移制御レジスタ2600のユーザの設定誤りであり、エラーチェックが必要であるが、ここでは割愛する。エラーチェックは、チャネルごとの有効判定信号3908が、複数のチャネルに対して1とならないことをチェックすれば容易に実現できる。また、3920内の太線は、3900内と同様に束の信号線を示し、太線が入力するOR論理3914は、単一ビット同士のOR論理の集合体を示し、フリップフロップ群3915は、複数ビットのフリップフロップの集合体を示す。
上記の前提の下では、各チャネルの有効判定信号3908と次状態信号3910は、有効となるチャネル以外は0である。このため、次状態信号1311を出力するフリップフロップ群3915は、3908の全チャネルについてのORの結果3917をイネーブル信号とし、3918の全チャネルについてのOR論理の結果3916を次の状態信号とする。フリップフロップ群3915はクロック同期であるため、イネーブル信号3917とclkとのAND論理の結果3913を、イネーブル端子3912に入力する。次の状態信号3916は、入力端子3921に入力し、クロックclkが有効になると、結果を次状態信号1311として出力する。
次に、割り込み要求信号710を生成する論理を、3920の上半分に従い述べる。710を生成する論理も、1311と同様に、一つのチャネルしか有効とはならないことを前提としている。フリップフロップ3918は、1311と同一信号3913をイネーブル端子に入力する。入力信号も、1311と同様に、各チャネルの割込み許可信号3910の全チャネルについてのOR論理の結果3919を入力し、クロックclkが有効になると、結果を割り込み要求信号710として出力する。
以上、ソフトウェア無線の実施例で説明してきたが、本節のコンフィグレーションの設定例は、無線に限られるものではなく、種々のアプリケーションで応用可能であることは言うまでもない。
7.送信キャンセルする無線APIの利用例
無線通信動作において、送信要求がキャンセルされる場合における無線API利用の一例について、図39を用いて述べる。図では、初期化動作は省略した。各種の制御/ステータスレジスタとバッファ、およびローカルメモリ21602が、アドレスマップされておりCPU700からアクセス可能である。図で、実線は動作中、点線は休止中、太線は特に強調したい動作を示す。
まず、起動API822が発行されると、ALUAE(AAE)1202の受信動作R808が開始される(810)。
次に、次送信許可/禁止API3400により、送信管理1030の制御/ステータスレジスタ2800の許可フラグSEN2804をオンにする。これにより、1030の内部状態は送信可能状態に移る。
その後、しばらく、受信がないが、受信動作S807は、SFD検出を行い続けるとため、受信動作はハード的には行っていることになる(811)。SFD検出では、無線特殊演算1031も動作する(3403)。
受信動作810は同期が完了すると、同期完了の通知の割り込み825を要求する。また、送信管理1030に対して同期終了のフラグのセット4800を実行する。さらに、AAE1202は有効なデータの受信動作809に移る。
次に、送信要求API823が実行されるが、AAE1202は受信動作809中であるため、すぐに送信は行われず、送信データと送信フラグのセットを、それぞれ無線特殊演算1031回路とAAE1202に対して行う。
有効なデータの受信動作809が終了すると、AAEは、3402で送信終了通知を送信管理1030へ行うとともに、送信終了割込み824を要求する。
受信終了に伴い、受信データ取得API827が発行され、無線特殊演算1031での演算済みのデータを取得する(3404)。
CPUは受信したパケットを解析し、自身に対するパケットであれば、ack要求API828を起動する。この時、ackの送信を優先して行うため、前回の送信要求823はキャンセルされる。もし、受信したパケットが自身に対するものではない場合は、送信要求823のキャンセルは行われない。ack要求API828の動作は、送信要求API823の動作と同様であるため、割愛する。826でACK送信が行われたあと、AAE1202は、再び、受信動作を開始する。
以上、実施例に基づいて本発明を説明してきたが、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
本発明の一つの実施形態である車搭載のソフトウェア無線機の利用方法と位置づけを示す図である。 本発明の一つの実施形態であるソフトウェア無線機の構成図である。 本発明の一つの実施形態であるソフトウェア無線機の前処理部の第2の構成を示す図である。 本発明の一つの実施形態であるソフトウェア無線機とカーナビゲーションシステムとの無線実現手順を示すフロー図である。 本発明の一つの実施形態である無線データ構造を示す図である。 本発明の一つの実施形態である無線の送信と受信を切り替えるフローを示す図である。 本発明の一つの実施形態であるダイナミックリコンフィグレーション(DR)チップの構成図である。 本発明の一つの実施形態である無線処理をDRチップ上で実現するための動作フロー図である。 本発明の一つの実施形態であるDREで送信管理を実現する動作フロー図である。 本発明の一つの実施形態である受信・送信動作の状態遷移図である。 本発明の一つの実施形態である無線データ構造の詳細を示す図である。 本発明の一つの実施形態であるDREの構成図である。 本発明の一つの実施形態であるALUAEの構成図である。 本発明の一つの実施形態であるALUAEの設定レジスタの概要を示す図である。 本発明の一つの実施形態であるAECTLの制御/ステータスレジスタの構成図である。 本発明の一つの実施形態であるCNFGCの制御/ステータスレジスタの構成図である。 本発明の一つの実施形態であるALUセルを利用して、フィルタリング処理を実行する場合のコンフィグレーション情報を示す図である。 本発明の一つの実施形態であるALUセルの構成図である。 本発明の一つの実施形態であるALUセルのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるLSセルとALUセルのインターフェースを示す図である。 本発明の一つの実施形態であるIOブロックと、その構成要素であるIOCTLの構成図である。 本発明の一つの実施形態であるLSセルのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるIOCTLのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるALUAEが外部とデータアクセス機構と、EXIOSの位置づけを示す図である。 本発明の一つの実施形態であるEXIOSのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるAECTLの状態遷移制御レジスタの構成図である。 本発明の一つの実施形態である送信管理モジュールのインターフェースを示す図である。 本発明の一つの実施形態である送信管理モジュールの制御/ステータスレジスタの構成図である。 本発明の一つの実施形態である送信時の無線特殊演算モジュールの動作フローを示す図である。 本発明の一つの実施形態である無線特殊演算モジュールの送信用レジスタを示す図である。 本発明の一つの実施形態である受信時の無線特殊演算モジュールの動作フローを示す図である。 本発明の一つの実施形態である無線特殊演算モジュールの受信用レジスタを示す図である。 本発明の一つの実施形態である無線通信の代表的な動作で、無線APIの利用例を示す図である。 本発明の一つの実施形態である状態遷移図で、状態遷移テーブルで設定する動作を示す図である。 本発明の一つの実施形態である状態遷移図から、状態遷移を分類した結果を示す図である。 本発明の一つの実施形態である状態遷移図から、状態遷移テーブルのコード設定例を示す図である。 本発明の一つの実施形態である状態遷移図から、割り込み要求動作を削除した場合の状態遷移テーブルの設定例を示す図である。 本発明の一つの実施形態であるAECTLの内部の動作を示す図である。 本発明の一つの実施形態における無線通信の動作で、送信をキャンセルする無線APIの利用例を示す図である。
符号の説明
106…ソフトウェア無線機、107…カーナビゲーションシステム、202…ソフトウェア無線機の前処理部、203…ダイナミックリコンフィギュラブル(DR)チップ、206…ADC/DAC、205…FLASHロム、500…無線データ構造、700…CPU、706…割り込みコントローラINTC、708…DRエンジン、1202…ALUAE、1201…WCエンジン、2123…CNFGC、1305…ALUアレイ、<1304・1306>…LSアレイ、1304…LSAR、1306…LSAL、1301…AECTL、21201…IOブロック、2100…IOCTL、21602…ローカルメモリ、1203…EXIOS、1311…コンフィグレーションの次状態信号、710…割り込み要求信号、1030…送信管理、1031…無線特殊演算、906…送信許可/禁止、910…内部状態、2704…送信要求、2600…状態遷移制御レジスタ、2200…LSセルのコンフィグレーションレジスタ、2300…IOCTLのコンフィグレーションレジスタ、2500…EXIOSの最下位IOポート用コンフィグレーションレジスタ、2510…EXIOSの最上位IOポート用コンフィグレーションレジスタ、2520…EXIOSのトリガー信号用コンフィグレーションレジスタ、2001…ALUセル、2500…ALUセルのコンフィグレーションレジスタ、2000…LSセル、2800…送信管理用制御/ステータスレジスタ、3000…無線特殊演算の送信用制御/ステータスレジスタ、3010…無線特殊演算の送信用無線データ長レジスタ、2907…無線特殊演算の送信用出力ポートレジスタ、3200…無線特殊演算の受信用制御/ステータスレジスタ、3210…無線特殊演算の受信用無線データ長レジスタ、3103…無線特殊演算の受信AAE側出力ポートレジスタ。

Claims (2)

  1. 夫々が複数の演算機能を有する複数のALUセルをアレイ状に配置したセルアレイ構造と、前記ALUセルの演算機能を決定する情報と前記ALUセル間のデータの転送方向を決定する情報とを含む構成情報を切替るための切替制御部とを有するリコンフィギュラブル回路を具備する半導体集積回路であって、
    前記複数のALUセルの夫々は、前記構成情報に基づいて、前記演算機能及び前記データの転送方向が決定され、
    前記切替制御部は、複数の遷移チャネルを有する状態遷移テーブルと遷移条件判定ブロックとを有し、
    前記複数の遷移チャネルのそれぞれは、遷移先の構成情報を示す第1情報と、遷移元の構成情報を示す第2情報と、前記遷移先の構成情報に遷移するための遷移条件と、前記遷移元の構成情報を参照するか否かを示すマスク情報とを保持し、
    前記遷移条件判定ブロックは、前記マスク情報が前記第2情報を参照しないことを示す場合は、前記状態遷移テーブルが保持する第2情報に関わらず、前記セルアレイ構造から入力された遷移条件と、前記状態遷移テーブルが保持する遷移条件が一致した遷移チャネルを選択し、遷移先の構成情報を決定し、
    前記切替制御部は、前記遷移条件判定ブロックの決定に基づいて、前記複数のALUセルの構成情報を変更することを特徴とする半導体集積回路。
  2. 請求項1において、
    前記半導体集積回路は、前記リコンフィギュラブル回路を制御するCPUを更に有し、
    前記複数の遷移チャネルのそれぞれは、更に、遷移する際に前記CPUに割り込みを通知するか否かを示す第3情報を有することを特徴とする半導体集積回路。
JP2004290890A 2004-10-04 2004-10-04 半導体集積回路 Expired - Fee Related JP4353052B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004290890A JP4353052B2 (ja) 2004-10-04 2004-10-04 半導体集積回路
US11/240,618 US7756505B2 (en) 2004-10-04 2005-10-03 Semiconductor integrated circuit and a software radio device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004290890A JP4353052B2 (ja) 2004-10-04 2004-10-04 半導体集積回路

Publications (3)

Publication Number Publication Date
JP2006108953A JP2006108953A (ja) 2006-04-20
JP2006108953A5 JP2006108953A5 (ja) 2008-06-19
JP4353052B2 true JP4353052B2 (ja) 2009-10-28

Family

ID=36126182

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004290890A Expired - Fee Related JP4353052B2 (ja) 2004-10-04 2004-10-04 半導体集積回路

Country Status (2)

Country Link
US (1) US7756505B2 (ja)
JP (1) JP4353052B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007022970A1 (de) 2007-05-16 2008-11-20 Rohde & Schwarz Gmbh & Co. Kg Verfahren und Vorrichtung zur dynamischen Rekonfiguration eines Funkkommunikationssystems
US8103213B2 (en) * 2008-09-03 2012-01-24 Nokia Corporation Software-defined radio configuration
CN102034063A (zh) * 2009-09-28 2011-04-27 西门子(中国)有限公司 调整连续波传输时间的方法及读写器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1122043A (ja) 1997-07-07 1999-01-26 Doukin Kk 建物用自然換気装置
US6108529A (en) * 1998-02-01 2000-08-22 Bae Systems Aerospace Electronics Inc. Radio system including FET mixer device and square-wave drive switching circuit and method therefor
JP3674515B2 (ja) 2000-02-25 2005-07-20 日本電気株式会社 アレイ型プロセッサ
DE60027284T2 (de) * 2000-07-11 2006-08-31 Sony Deutschland Gmbh Quadraturdemodulator unter Verwendung von Leistungssensoren
US6990087B2 (en) * 2002-04-25 2006-01-24 Raytheon Company Dynamic wireless resource utilization
GB2370380B (en) * 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6937877B2 (en) * 2000-12-21 2005-08-30 General Electric Company Wireless communication with a mobile asset employing dynamic configuration of a software defined radio
US7092733B2 (en) * 2001-01-25 2006-08-15 Kabushiki Kaisha Toshiba Mobile radio communication apparatus capable to plurality of radio communication systems
US6448910B1 (en) * 2001-03-26 2002-09-10 Morpho Technologies Method and apparatus for convolution encoding and viterbi decoding of data that utilize a configurable processor to configure a plurality of re-configurable processing elements
US6801777B2 (en) * 2001-11-27 2004-10-05 Intel Corporation Device and method for intelligent wireless communication selection
JP3925632B2 (ja) 2002-04-19 2007-06-06 ソニー株式会社 通信システム、通信端末装置、サーバ装置および通信方式変更方法
JP3987783B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP3987782B2 (ja) * 2002-10-11 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
JP3987784B2 (ja) * 2002-10-30 2007-10-10 Necエレクトロニクス株式会社 アレイ型プロセッサ
ES2293066T3 (es) * 2003-12-24 2008-03-16 Telefonaktiebolaget Lm Ericsson Linea de transmision de datos de multiples secciones en estacion base de radio y metodo de uso de dicha estacion base de radio.
US7289972B2 (en) * 2004-06-25 2007-10-30 Virginia Tech Intellectual Properties, Inc. Cognitive radio engine based on genetic algorithms in a network
JP4364077B2 (ja) * 2004-06-30 2009-11-11 富士通株式会社 演算装置及び演算装置の制御方法
JP4594666B2 (ja) 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
US7248530B2 (en) * 2004-10-29 2007-07-24 Infineon Technologies, Ag Integrated semiconductor memory device

Also Published As

Publication number Publication date
US20060073804A1 (en) 2006-04-06
US7756505B2 (en) 2010-07-13
JP2006108953A (ja) 2006-04-20

Similar Documents

Publication Publication Date Title
JP6856612B2 (ja) 多層相互接続による分散型プロセッサを有する処理システム
US10162379B1 (en) System clock distribution in a distributed computing environment
EP2116938B1 (en) Operation apparatus and control method
US8386752B2 (en) Processor architecture
US9009350B2 (en) Determining a path for network traffic between nodes in a parallel computer
US9507753B2 (en) Coarse-grained reconfigurable array based on a static router
JP2004525439A (ja) プロセッサアーキテクチャ
KR20210033996A (ko) 전용 저 레이턴시 링크를 사용한 다수의 하드웨어 가속기에 대한 통합된 어드레스 공간
US20080232445A1 (en) Multi-cell data processor
US8165620B2 (en) Radio communication apparatus with a bus dedicated to data transmission
JP4353052B2 (ja) 半導体集積回路
US8194678B2 (en) Providing point to point communications among compute nodes in a global combining network of a parallel computer
US20060101232A1 (en) Semiconductor integrated circuit
CN109933553B (zh) 一种控制系统及其设计方法、一组控制系统、电子装置
EP1744252A2 (en) Reconfigurable LSI
US20080126472A1 (en) Computer communication
US9053225B2 (en) Data processing apparatus, data processing method, and storage medium
JP2012010216A (ja) 割込みシステム、ホスト装置、及び、周辺装置
CN108738035B (zh) 一种多制式基带芯片的数据处理方法及装置、处理设备
WO2008027092A1 (en) Computer communication
CN109902044B (zh) 一种控制系统、一组控制系统及其设计方法、电子装置
JP5917325B2 (ja) ブリッジ回路
TWI616754B (zh) 快捷外設互聯標準(PCIe)資料交換裝置及傳輸系統
JP2006246151A (ja) ソフトウェア無線機
CN110837484A (zh) Ssd主控中的raid多路处理装置及数据恢复方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061113

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080428

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090611

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090707

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090720

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120807

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130807

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees