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

半導体集積回路 Download PDF

Info

Publication number
JP4120631B2
JP4120631B2 JP2004292056A JP2004292056A JP4120631B2 JP 4120631 B2 JP4120631 B2 JP 4120631B2 JP 2004292056 A JP2004292056 A JP 2004292056A JP 2004292056 A JP2004292056 A JP 2004292056A JP 4120631 B2 JP4120631 B2 JP 4120631B2
Authority
JP
Japan
Prior art keywords
memory
cell
semiconductor integrated
signal
integrated circuit
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
JP2004292056A
Other languages
English (en)
Other versions
JP2006109025A (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 JP2004292056A priority Critical patent/JP4120631B2/ja
Priority to US11/240,549 priority patent/US20060101232A1/en
Publication of JP2006109025A publication Critical patent/JP2006109025A/ja
Application granted granted Critical
Publication of JP4120631B2 publication Critical patent/JP4120631B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Logic Circuits (AREA)
  • Microcomputers (AREA)

Description

本発明は、半導体集積回路に関し、特に動的に演算機能とデータ転送のコンフィギュレーション情報を変更することで多様な処理を実現可能なLSIおよび2次元ALUセル・アレイに関しALUセル・アレイが内蔵メモリ、周辺回路、LSI外部デバイスとデータアクセスする方法とその回路実現に関する。
半導体集積回路は、ムーアの法則に従い、チップ上に集積可能なトランジスタ数を増加させることで性能向上を実現してきた。しかしながら、トランジスタ数の増加は、マスクに作りこむ回路情報を増加させるため、年々マスク代が上昇している。また、設計する回路規模の増大により必要なマスク枚数が増加することでASIC開発費を高騰させる要因となっている。さらに、ニーズが多様化するにつれて従来の少品種大量生産から多品種少量生産へ移行し、その製品トレンドも短期間で移り変わっており開発期間の短縮が要求されている。
近年、これらの問題を解決する1手法として再構成可能なプロセッサが提案されている。再構成可能なプロセッサは特許文献1に開示されているように、多種の演算を実行できるように汎用性を持たせた演算部や演算部間の接続を柔軟に切り替え可能な配線部を多数備えており、これらの制御情報であるコンフィギュレーションデータを切り替えることで様々な回路を実装できる。このように、再構成可能なプロセッサはFPGAと同様なプログラマブルプロセッサであるためASICと比べ初期の開発費の負担の減少や開発期間の短縮が可能である。また、FPGAよりも配線の自由度を減らし、演算の粒度を大きくすることで高い処理性能を実現する。さらに、動的にコンフィギュレーションを切り替えて処理を行う動的に再構成可能なプロセッサも提案されている。動的に再構成可能なプロセッサはチップ上に多数の処理を実装できるため面積あたりの性能が向上し、FPGAで問題であるチップ単価の影響を低減できる。
一般に、再構成可能なプロセッサは演算部内に多数のALUセルを持ち、それを空間的、時間的に並列動作させることで処理性能の向上を実現するアプローチを取っており、従来のプロセッサ以上にデータの供給が性能ネックになりやすい。このため、演算部内に小規模なメモリを内蔵しALUセルからアクセスすることでデータ転送能力の性能改善を図っている。これらの例については非特許文献1に記載されている。
特開2002−76883号公報
「日経エレクトロニクス」、No.835、pp.59−66、2002.11.18
再構成可能なプロセッサは、多種の機能を持つALUセルを2次元アレイ上に配置した演算部を備えるのが一般的である。この構成はALUセルの並列度が高いため、ALUセル−ALUセル間、ALUセル−内蔵メモリ間の接続網の構成方法が処理性能に大きな影響を与える。
上記の接続網の構成方法として、複数のALUセル、内蔵メモリをバスで接続する構成やバスを持たず隣接するALUセル−ALUセル間、ALUセル−内蔵メモリ間でデータ転送を行う構成がある。バスによる構成ではバス面積が膨大になる、バスに対して接続されるALUセルや内蔵メモリの個数を制限したり、一部隣接間でデータ転送をしたりするのが通常考えられる構成である。
上記の構成は、次に示す共通の問題が存在する。一般にALUセルは内部構成を共通にすることでスケーラブルな構成となっているが、バスやメモリに隣接せず、メモリアクセスが行えないALUセルもメモリアクセス機構を備えると面積が増大する。また、バスやメモリに隣接するALUセルはメモリアクセスに利用される頻度が高く、その演算機能を有効に利用できない。
そこで、本発明では演算部の面積削減と有効利用に向けたメモリアクセス機構を提供することを目的としている。
さらに、専用IOインタフェースに接続された周辺回路やLSI外部デバイスに対しても共通化されたアクセスができるように、前述のメモリアクセス機構を構成することで、ユーザビリティの向上を図る。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記のとおりである。すなわち、アレイ状に配置されたALUセルとALUセル間のデータ転送機能を持つ演算部と前記演算部の周囲および内部に配置された内蔵メモリと前記内蔵メモリへオペランドアクセスを実行する専用セル群を備え、前記演算部と前記専用セル群はその構成情報を動的に指定するための記憶領域を持つよう半導体集積回路を構成する。
更に望ましくは、前記内蔵メモリに最も近い位置に存在する前記演算部の複数のALUセルに対応して複数存在し、前記内蔵メモリに対しオペランドアクセスを実行するように専用セル群を構成すると良い。
更に望ましくは、前記演算部の複数のALUセルに対して複数存在し、前記半導体集積回路外部からのメモリアクセスに対し1個の連続したアドレス空間を有し、前記演算部からのメモリアクセスに対しそれぞれ個別のアドレス空間を持つように内蔵メモリを構成すると良い。
更に望ましくは、前記複数の内蔵メモリに複数存在し、各内蔵メモリ一意に対応してオペランドアクセスを実行するように専用セル群を構成すると良い。
更に望ましくは、前記専用セル群は前記内蔵メモリと前記半導体集積回路に専用IOインタフェースで接続された周辺回路と前記半導体集積回路に専用IOインタフェースで接続されたLSI外部デバイスとの共通化されたデータアクセス機構を備え、前記専用IOインタフェースは、その接続先を動的に指定するための記憶領域を持つように半導体集積回路を構成すると良い。
本発明により、半導体集積回路の面積の低減を図ることが可能となる。
以下、本発明による代表的な実施例を図面に従って詳細に説明する。本実施例では、テレマティクス端末の一部をなすソフトウェア無線機に本発明を適用したものとして説明する。ソフトウェア無線機は、各種通信方式を通信目的や通信環境に応じて切り替えなければならないため、再構成可能なLSI(ダイナミックリコンフィギュラブル回路)のアプリケーションとして適している。なお、以下においては、同じ参照番号、記号は同じものもしくは類似のものを表わすものとする。
図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を通って、ディジタル処理部に送られる。
2.DRチップの構成
以下では、図4を用いて、ディジタル信号処理を行うDRチップ203の構成と、ソフトウェアとハードウェアのインタフェースについて述べる。ここで、ソフトウェアは、DRチップ203上のCPU700で実行する。
2.1 DRチップの全体構成
図4に示すように、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 DREの構成
図4に示すDRE708の構成を図5に従って述べる。DRE708は、ALUAE(ALU Array Engine)1202と無線専用回路WCE1201と、内部バス1200と外部入出力スイッチEXIOS1203から構成される。
ALUAE1202は、自律的ダイナミックリコンフィグレーションにより実現する回路モジュールである。自律的ダイナミックリコンフィグレーションとは、自身が計算した結果により、自身のコンフィグレーションを変更することを意味する。EXIOS1203は、ALUAE1202と外部とのデータアクセス先を選択する回路であり、アクセス先としてWCE1201と、LSI外部のADC/DAC206がある。割込みは、710を介してINTC706に要求を通知することにより行う。また、ALUAE1202とWCE1201の通常のデータ転送は、内部バス1200を介して実施できる。CPU700とALUAE1202、または、WCE1201とのデータ転送は、Bridge1(707)と内部バス1200を介して行う。WCE1201は、無線特殊演算を実現する回路モジュールである。この無線特殊演算には、CRC/Scramble演算等がある。これらの演算は、1ビット単位の処理を行うため複数ビットを並列に処理するALUAEで実行すると効率が悪く、専用回路としてモジュールを設けたほうが効率がよい。
3ALUAEの構成と設定レジスタについて
3.1 概要
ここでは、ALUAE1202の構成と設定レジスタについての概要を述べる。
図6に構成を示す。ALUAE1202は、BSC1300を介して内部バス1200と接続される。BSC1300は内部バス1200からの入力を各部に振りわけることが主な機能である。AECTL1301はALUAE1202の制御の他、割り込みコントローラINTC706に割り込み要求を出す。
各種処理をつかさどるメインブロックは、ALUA1305である。ALUA1305はアレイ状に並べられたALUセルにより構成される。ALUA1305とメモリや外部デバイスとのデータ転送には専用セル群であるロードストアアレイLSAを利用する。後述するが、LSAは、複数のロードストアセル(LSセル)を有している。LSAは右に位置するLSAR1304と左に位置するLSAL1306がある。即ち、LSARとLSALとの間にALUセルがマトリクス状に配置される領域を有する。ALUA1305への入出力は、LSARまたはLSALを介して行われる。従って、LSARとLSALは、ALUAとその他の外部装置との間に配置することで外部装置との距離が短くなり、データの転送時間を短くすることが可能となる。
LMEM1312、1313はLSAL1306と、LSAR1304の隣に配置されており、内部にローカルメモリと、そのインタフェースを備える。LMEMに対する入出力はLSAまたはIOPより行われる。
IOPA1308、1307はLMEMの隣に配置されており、BSC1300を介した内部バスとの通信を行う。また、配線1321、1322からEXIOSを介してWCE、および、DRチップ外部のADC/DACとの通信を行う。
上記のALUA1305、LSA(LSAR1304とLSAL1306)、LMEM(1312、1313)、IOP(IOPA1307、1308)は、機能やアクセス先の変更のため、コンフィグレーションをダイナミックに、すなわち、処理実行中に変更可能である。
また、これらのモジュールの動作を指示するのがコンフィグレーションレジスタであり、図7(b)に示す種類と機能がある。コンフィグレーションレジスタを変更するための一時格納用のバッファはCNFGCにある。
ALUA1305、LSA(LSAR1304とLSAL1306)、LMEM(1312、1313)、IOP(IOPA1307、1308)は、いずれも8行単位のクラスタに分割されており、クラスタ単位にコンフィグレーションの変更が可能となっている。
以下で述べる本実施の形態では、クラスタは2個の場合を述べる。上記で述べたコンフィグレーションレジスタの詳細は後で述べる。CNFGC1309のバッファについては、一般的なバッファを適用可能である。
AECTL1301は、図7(a)(c)に示すように、ALUAE1202の全体の制御とコンフィグレーション切り替えに関する制御を行う。起動終了などのハードウェア一般の制御とステータス通知のほか、ALUA1305、LSA(LSAR1304とLSAL1306)、LMEM(1312、1313)、IOP(IOPA1307、1308)のコンフィグレーションをALUAE自身で自律的に切り替える制御、現在のコンフィグレーションの状態、切り替えに伴う割り込み通知、およびエラー通知の可否指定と制御も行う。AECTL1301への入力1330はコンフィグレーションの切り替えに用いる。これらのレジスタと動作の詳細は後述する。
CNFGC1309は、先に述べたコンフィグレーションレジスタを持つ対象に対して、コンフィグレーションデータの書き込みの制御を行う。制御内容は図7(a)に示すとおりである。レジスタの詳細は後述する。
3.2 AECTL、CNFGC制御・ステータスレジスタ
ここでは、AECTL1301とCNFGC1309の制御/ステータスレジスタについて述べる。
(1)AECTLの制御/ステータスレジスタ
AECTL1301には、図8に示す制御レジスタ1500と割り込み制御レジスタ1510が含まれる。制御レジスタ1500は一般の制御とステータス通知、割り込み制御レジスタ1510は割り込みに関する設定を行う。
制御レジスタ1500中のENとSTは、ハードウェア的にALUAE1202を起動または終了する指示(EN)と、その結果であるステータスの通知(ST)を行う。ENを1にすると起動指示、0にすると終了指示を行う。また、STが1だと動作状態、0だと休止状態を示す。ERRは、エラー状態であることを通知する。1はエラー状態、0は正常状態を示す。INI1とINI0は、ALUAEの内部状態の初期化を指示する。INI1がクラスタ1(上方8行分)の初期化、INI0がクラスタ0(下方8行分)の初期化を指示する。初期化では、内部の記憶要素を全て0、または1に設定する。C1STとC0STは、現在のALUAEの使用中のコンフィグレーション番号を示す。C1STがクラスタ1のコンフィグレーション番号、C0STがクラスタ0のコンフィグレーション番号を示す。本実施の形態では、C0ST、S1STにそれぞれ4ビットを割り当てており、16個のコンフィグレーション切り替えを制御することが可能となっている。
次に、割り込み制御レジスタ1510について述べる。割り込み制御レジスタ1510のERRは、ALUAE1202内でエラーが起こったときに、割り込み要求を行うか否かを指定する。1の時は割り込みを行い、0の時は割り込みを行わないことを示す。割り込み制御レジスタ1510のSIRQFは状態遷移時に割り込みを行うか否かを指定する。SIRQは、後で説明する状態遷移制御レジスタ1520の数と同じだけのビット数を備え、それぞれの状態遷移ごとに割り込みを行うか否かを設定可能である。割り込み制御レジスタ1510のSIFは割り込み要因を示す。SIFの各ビットは、SIRQの各ビットがあらわす割り込みに1対1に対応する。割り込み要因を示すSIFの0リセットは、DRE外部からの書き込み、または、DREのリセットにより行われる。
(2)CNFGCの制御/ステータスレジスタ
CNFGCのレジスタを図9の1600に示す。
1600中のWREQは、コンフィグレーション対象のセルへの書き込み指示を行う場合に1にセットする。W0およびW1は、書き込み先のクラスタを示す。W1が1ならクラスタ1へ書き込み、W0が1ならクラスタ0へ書き込む。CSTは、書き込み先のコンフィグレーション番号を示す。AROWおよび、ACOLは、コンフィグレーションを変更するALUセルの選択信号であり、各クラスタ中の行と列を選択する。
(3)AECTLの制御/DR状態遷移レジスタ
図8に、状態遷移レジスタ1520を示す。AECTLは内部に複数の状態遷移レジスタ1520を持つ.
ASTは、ALUAE1202の状態が休止または動作中であることを、切り替え条件とすることを意味する。0が休止中、1が動作中を示す。最初の休止状態から、動作状態へ移るときなどに利用する。
CSTATには、現在実行中のコンフィグレーション番号を遷移の条件とする場合に,コンフィグレーション番号を指定する。CMSKは、現在のコンフィグレーション番号を遷移条件に入れるか否かを示す。1が遷移条件に入れない、0が入れる。NSTATには、遷移先のコンフィグレーション番号を指定する。EMSKは、遷移テーブルの容量削減のため、複数の状態遷移を一つの状態遷移レジスタ1520で扱うため、トリガー信号1320にマスクをかける。トリガー信号1320とEMSKの値の論理ORをとり,結果がすべて1であるときに遷移を実行する。例えば,CMSKを1にセットすることで,EMSKで設定したトリガーが発生した場合に,現在のコンフィグレーション番号によらず遷移が実行される。
3.3 ALUセルの構成とコンフィグレーションレジスタ
ここでは、ALUA1305を構成するALUセルの構成と、その利用方法を明らかにするためコンフィグレーションレジスタについて述べる。本節では、(1)でALUA1305での処理をどう実現するかの概略を述べ、次に(2)でALUセルの構成を述べる。最後に(3)でALUセルのコンフィグレーションレジスタについて述べる。
(1)ALUA1305の利用イメージ
図10は、ALUセル1700を4行4列のアレイ状に並べ、これに対して信号処理などでよく用いられるフィルタリング処理を実行するためのコンフィグレーション情報を示した図である。図10を用いて4行4列のセル・アレイの動作を説明する。図10のALUセル1700内に書かれたブロック内の記号(×C0、×C1、×C2、×C3、+)は、セルの演算器ALUが実行する機能を表し、直線及び矢印はデータの流れを表す。また、セル内の直線上に示されている黒丸1701はデータ転送のみを1サイクルで行うフリップフロップを表している。
図10に示されたコンフィグレーション情報は下式で表される値を求めるためのものである。
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列目のセルより得ることができる。なお、本実施例は、ALUAの回路構成の一例であり、コンフィグレーション情報を変更することで、回路構成を変更可能である。
(2)ALUセルの構成
ここでは、ALUセル1700の構成を図11に従い、以下に述べる。
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つを選択する。
図10での「×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(図12)の値を示す。この信号1802は、コンフィグレーションレジスタファイル1801の中から、現在のコンフィグレーションを選択する信号1804に従い、セレクタC−selで選択された値である。
コンフィグレーションレジスタファイル1801が更新されるための制御について述べる。コンフィグレーションレジスタファイル1801は、図9で示すCNFGC1309により更新される。CNFGC1309中の制御レジスタ1600によりALUセルを指定することにより、入力端子1805がこのALUセルのコンフィグレーションレジスタファイル1801のアドレスを示す信号となる。入力端子1805の値がDECでデコードされ、指定されたレジスタへの書き込みイネーブル信号となる。入力端子1806は、当該状態のレジスタへのデータ書き込みに用いる。1805、1806の二つの信号により、コンフィグレーションレジスタファイル1801の更新を行う。1805と1806は、図6におけるCNFGC1309からの出力信号の一部の信号である。
C−selの動作を決める入力端子1804の信号は、図6の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と転送レジスタへの入力セレクタへの入力の一組となる。
3.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セルのインタフェース
図13は、LSA内のロードストアセルLSセル2000と、ALUセル1700とのインタフェースを示す。
ALUセル1700の出力データ端子1816の上位半分でアドレスとR/Wビットを、下位半分でALUセル外部へ出力するデータを送る。また、端子1812でLSセルから入力するデータを受け取る。LSセル2000は、ALUセル1700の端子それぞれについて、端子2002、2003、2004、2005と接続する。なお、LSセルの数は、アレイ状に配置されたALUセルのLSARに沿って配置された1列分の数と同じ数(例えば、ALUセルが16×16で配置された場合は、16個)設けると都合がよい。なぜならば、演算結果を出力又は演算データが入力されるALUセルと、演算結果を格納すべきアドレスの発生又はALUセルに入力させるべきデータが格納されているアドレスを発生するロードストアセルが1対1で対応するため、並列してALUセルへのデータの入出力が出来るためである。
(2)LSA、LMEM、IOPAの構成概要
図14は、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にアクセスするための命令やモードを指定するのが、図15に示す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の各種モードを指定するのが、図16で示すIOポートコンフィグレーションレジスタ2300である。以下でその機能を述べる。IEN2301は入力ポート2113のアクセスが可能か否かを示す。同様にOEN2302は出力ポート2112のアクセス可否を示す。これらのいずれもアクセス不可であったときには、IOP2106はCPUバス2109とのアクセスを選択する。
LSSEL2303は、入力ポート2113と出力ポート2112が、2つのメモリセル2104のセット2110の内、いずれとアクセスするかを選択する。この指定により、LSセル2000のセット2111のいずれとアクセスするかも決まる。なぜなら、LSセル2000とメモリセル2102は一対一で接続されているためである。
IOP2106は、外部からのアクセスでは、アドレス自動発生でメモリセルのセット2110とアクセスを行う。このとき、LSセルコンフィグレーションのLI/D2204、LBAS2205、LADD2207に相当して、II/D2304、IBAD2305、IADD2306を指定する。意味は、LSセルと同様であるため、説明は割愛する。LSセルと異なる点は、メモリの最大アドレスに達するまでアクセスを繰り返す点である。
(b)外部アクセス
上記で述べたIOP2106を用いて外部とアクセスする機構を、図17と図18に従い、以下で述べる。
図17に示すように、IOPA2100は、ALUアレイ外部モジュールであるWCE1201や、LSI外部IOを介してAD/DA206とのデータアクセスを行う。ここで、IOPA2100は、IOP2106を、1クラスタ分、集めたブロックである。
IOPA2100は、最上位のクラスタと最下位のクラスタの各々に対して、左右一対ある。信号線群1321は、図14のIOポートセル2106の入出力信号線2112と2113を、左の最上位クラスタと最下位クラスタ分を束ねたものを表す。同様に、信号線群1322は、左の最上位クラスタと最下位クラスタ分、入出力信号線を束ねたものを表す。
これらの信号線群1321と1322は、EXIOS1203の中のスイッチ2403で、アクセス先の信号線1206と207に選択的に接続される。
スイッチ2403の接続関係を指定するのが、図18で示すEXIOSのコンフィグレーションレジスタ2500と2510である。
2500は、最下位クラスタのIOP2106からの入出力の接続先を指定し、2510は、最上位クラスタの入出力の接続先を指定する。2500で、LRP3selは、最下位クラスタの右のポート3の接続先を選択する。ここで、ポート3とは、クラスタ内の最上方のIOポートセル2106を指し、下方に向かって、ポート2、ポート1、ポート0と続く。同様にして、LLP3selは、最下位クラスタの左のポート3の接続先選択を指定する。2510も、2500と同様に、URP3selは、最上位クラスタの右のポート3の接続先選択を、ULP3selは、最上位クラスタの左のポート3の接続先選択を指定する。他のポートについても同様である。
EXIOS1203のチップ外部への端子は、図17に示す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 データのロードストア制御の設定例
データのロードストアは、図14に示すローカルメモリMEM2103へのアクセスの他、図17に示すALUAE1202の外部のハードウェアモジュールや、DRチップ外部IOとのアクセスを、図14に示すLSセル2000を通して実現できる。本実施例では、図17に示すように、外部のハードウェアモジュールとしてWCE1201を、DRチップ外部IOとしてADC/DAC206を、好適な例として取り上げる。また、MEM2103はALUAE1202内外からの並列アクセスが可能なように2ポート以上のマルチポートメモリで構成することが望ましい。以下では、MEM2103、WCE1201、およびADC/DAC206へアクセスするためのコンフィギュレーションレジスタ2200(図15)、2300(図16)、2500と2510(図18)の設定とその設定時の動作について説明する。
4.1 MEM2103に対するアクセス
始めに、MEM2103に対するアクセス方法を述べる。MEM2103へのアクセスはアドレス生成方法からLSセル内部アドレス生成モードとALUAアドレス供給モードに大別される。それぞれを(1)(2)にて述べる。
(1)LSセル内部アドレス生成モード
本モードはLSセル2000で生成したアドレスでメモリアクセスを行う。これは、図19のLDINC(DEC)/STINC(DEC)命令に対応する。以下、コンフィギュレーションレジタ2200、2300、2500、2510の設定やその動作例として同図のLDINC命令を用いて説明を行う。
LDINC命令はアドレスをベースアドレス+ディスプレースメントで生成し、メモリへリードアクセスする命令で、ディスプレースメントがメモリアクセス毎にインクリメントされる。
LSセルコンフィギュレーションレジスタ2200の命令フィールドにLDINC命令の設定(LS/PP=0、RW=0、LI/D=0)を行い、ベースアドレスフィールドとディスプレースメントフィールドに使用するメモリ空間の開始アドレスとディスプレースメントの範囲を指定する(LBAS=0x0000、LADD=0x0100)。また、WCE1201やADC/DAC206へのアクセスを行わないよう、IOポートコンフィギュレーションレジスタ2300の入出力マスクで、EXIOS1203との入出力データを0マスクする設定(IEN=0、OEN=0)も行う。
上記の各レジスタの設定は、ある状態のコンフィギュレーションレジスタの値として、図6のCNFGC1309から、あらかじめ書き込んでおく。ここでは、LSセルコンフィギュレーションレジスタ2200の書き込み、選択について述べる。LSセルの場合、図20に示す配線4110を通してLSセルコンフィギュレーションレジスタ2200へコンフィギュレーションデータが書き込まれる。LSセルコンフィギュレーションレジスタ2200は複数存在するが、制御信号4111により、セレクタ4100で実行されるコンフィギュレーションが選択される。制御信号4111は、コンフィギュレーションの状態を示すAECTL制御レジスタ1500内のC1ST(クラスタ1)とC0ST(クラスタ0)1504の設定に基づき、LSセルが属するクラスタ番号に該当する状態を示している。
本実施例では、上記で選択されたLSセルコンフィギュレーションレジスタ2200は、LDINC命令を実行する。まず、アドレス生成の論理について述べる。LDINC命令では、LSセルコンフィギュレーションレジスタ2200内のベースアドレスLBAS(本実施例では0x0000)の信号4112と加算器4101で生成されるディスプレースメント信号4113を加算器4102で加算して得られた内部アドレス4114をメモリアクセス用のアドレスとして用いる。ここで、ディスプレースメント信号4113は、加算器4101とレジスタ4103で1ずつ累積加算することで得られる。レジスタ4103は、キャリー関連信号4115によって制御される。ここで、キャリー関連信号4115とは、端子2002を通して入力された信号4116のうち、キャリー入力とキャリー入力に付随するイネーブル信号のことである。キャリー信号が0のときレジスタ4103の値が更新され、1のときは0クリアされる。キャリーイネーブル信号はキャリー信号が有効か否かを判定するものである。キャリー信号が有効である場合、前述のようにレジスタ4103の更新/0クリアが行われ、無効である場合、現在の値を保持する。また、ディスプレースメント信号4113は比較器4104でディスプレースメントの最大値LADD(0x0100)の信号4117と比較され、等しい場合レジスタ4103の値が0クリアされる。これにより、ローカルメモリのアドレス空間としてLBAS、LADDで定めた範囲(0x0000〜0x0100)を利用できる。セレクタ4105では、選択信号4120により、内部で生成されたアドレス4114とALUセル2001から供給されたアドレス4118(信号4116の内、アドレスイネーブル信号4119、キャリー関連信号4115を除いた信号)のいずれかが選択され、信号4121へ出力される。選択信号4120は、2200内のLS/PPの信号であり、本実施例では、LS/PPが0であるため、内部で生成されたアドレス4114が選択される。同様にセレクタ4106では、選択信号4122により、信号4114と後述するPOP命令時にMctl2104から供給されるアドレス4712のいずれかが選択され、信号4123へ出力される。選択信号4122は、2200内のFIFOの信号であり、本実施例ではFIFOは0であるため、信号4121が選択される。
次に、メモリアクセス制御信号である、リード/ライトリクエスト信号4124及びリード/ライトイネーブル信号4125の生成論理について述べる。リード/ライトリクエスト信号4124はLSセルコンフィギュレーションレジスタ2200内のRWの信号4126であり、MEMctl2104へ転送される。LDINC命令ではRWは0であり、リードリクエストを示している。リード/ライトイネーブル信号4125は、アドレスイネーブル信号4119とキャリーイネーブル信号からイネーブルコントローラ4107で生成され、配線4125を通してMEMctl2104へ転送される。これらの両イネーブル信号が有効な場合にのみ、リード/ライトリクエスト信号4124に基づきMEMctl2104を介してメモリアクセスを行う。
最後に、前述したメモリアクセス用のアドレス、制御信号により読み出されたデータについて述べる。MEM2103から読み出されたデータは信号4127として、イネーブルコントローラ4108へ入力される。イネーブルコントローラ4108では、メモリリードリクエスト時にリード/ライトイネーブル信号4125をメモリリードサイクル数分遅延させ、信号4127のイネーブル信号として信号4127と統合し、信号4128を生成する。信号4128は端子2004と2005からALUセル2001へ転送される。
本モードではアドレス生成にALUA1305を使用する必要がないため、ALUA1305を演算処理に有効活用できる。
(2)ALUAアドレス供給モード
本モードはALUセル2001から入力されたアドレスによってメモリアクセスを行う。これは、図19のLD/ST命令に対応する。以下、コンフィギュレーションレジスタ2200、2300、2500、2510の設定やその動作例として同図のST命令を用いて説明を行う。
ST命令はALUセル2001から入力されたアドレスでメモリへライトアクセスする命令で、LSセルコンフィギュレーションレジスタ2200は(LS/PP=1、RW=1)と設定される。WCE1201やADC/DAC206へアクセスを行わないためのIOポートコンフィギュレーションレジスタ2300の設定と、複数あるLSセルコンフィギュレーションレジスタ2200の中から実行されるコンフィギュレーションを4100で選択する動作は、(1)と同様である。
本モードでのST命令の動作を以下で述べる。ST命令におけるアドレス生成はセレクタ4105の動作を除き(1)と同様であるため、下記には差異のみ記す。ALUセル2001から供給されたアドレス4118が信号4123へ出力されるように、セレクタ4105、4106で信号が選択される。選択信号4120(2200内のLS/PPの信号)が1であるため、セレクタ4105においてALUセル2001から供給されたアドレス4121が選択される。
次に、メモリアクセス制御信号について述べる。リード/ライトリクエスト信号4124は(1)と同様であるので説明は割愛する。リードライトイネーブル信号4125はアドレスイネーブル信号4119とキャリーイネーブル信号に加え、端子2003を介して入力された信号4129の内、データ4131が有効か否かを示すデータイネーブル信号4130からイネーブルコントローラ4107で生成され、配線4125を通してMEMctl2104へ転送される。これらの全イネーブル信号が有効な場合にのみ、リード/ライトリクエスト信号4124に基づきMEMctl2104を介しメモリアクセスを行う。上記のアドレス、制御信号に基づき、データ4131がMEM2103へ書き込まれる。
4.2 WCEに対するアクセス
次に、WCE1201に対するアクセス方法を述べる。WCE1201はLD/ST命令でアクセス可能である。以下、コンフィギュレーションレジスタ2200、2300、2500、2510の設定やその動作例としてST命令を用いて、図21と図22に従い説明する。図21は、コンフィギュレーションレジスタの設定を示し、図22は、WCE1201へのアクセスに関連するモジュールを集めて示す。図22では、LSセル2000、図14に示したメモリセルのセット2110とIOP2106、および図17に示したEXIOS1203を示す。前述のように、上記の各レジスタの設定は、ある状態のコンフィギュレーションレジスタの値として、図6のCNFGC1309から、あらかじめ書き込んでおく。
図22に示す信号4311、4313及び図25に示す信号4610は複数あるIOポートコンフィギュレーションレジスタ2300から選択された、実行されるコンフィギュレーションの信号である。EXIOSの場合、図22の配線2109を通してコンフィギュレーションデータがEXIOSコンフィギュレーションレジスタ2500、2510へ書き込まれる。EXIOSポートコンフィギュレーションレジスタ2500、2510はLSセルコンフィギュレーションレジスタ2200、IOポートコンフィギュレーションレジスタ2300と異なり1個のみ存在する。
LSセルコンフィギュレーションレジスタ2200の設定は、ST命令の設定と同一である。IOポートコンフィギュレーションレジスタ2300とEXIOSコンフィギュレーションレジスタ2500、2510の設定は図21に示すとおりである。図19と異なる点は、IOポートコンフィギュレーションレジスタ2300のOENが1であることと、LSSELが0であること、EXIOSコンフィギュレーションレジスタ2500のULP0selが0であることである。OENはLSセル2000からALUAE外部へのデータ出力許可/禁止の設定を示す。OENは図22に示すように、信号4311としてAND4301の片方の入力となる。そのため、図21のようにOENを1と設定することでAND4301においてLSセル側からの出力4312が0マスクされずに信号2113へデータが出力される。
また、LSセル側とIOP2106間では入出力信号の配線に自由度があり、LSSELの設定により図22の上側のメモリセル4302と下側のメモリセル4303のどちらがALUAE外部と接続するかが決定する。LSSELはセレクタ4304、4306の選択信号4113として用いられる。本実施例ではLSSELを0に設定することにより、セレクタ4304で信号4314が選択され、信号4312へデータが出力される。 EXIOS1203ではULPselの設定によって、接続先としてWCE1201とADC/DAC206の選択が可能である。ULP0selはセレクタ4305、4307の制御信号4315として用いられる。図21の設定(ULP0sel=0)の場合、セレクタ4305によって配線2113が選択され、データが配線1206へ出力される。
以上により、太線で示すようにLSセル2000から上側のメモリセル4302を介してWCE1201へ書き込みアクセスが実行される。
4.3ADC/DACに対するアクセス
最後にADC/DAC206に対するアクセスを述べる。ADC/DAC206に対するアクセスは、206へのデータ出力と206からのデータ入力で別の命令を用いる。データ出力、データ入力それぞれについて、以下、コンフィギュレーションレジスタ2200、2300、2500、2510の設定やその動作を、図23から図26に従い説明する。
(1)ADC/DACへのデータ出力
データ出力は、図23に示すST命令とSTINC(DEC)命令によって行われる。LSセルコンフィギュレーションレジスタ2200の設定は、それぞれ、ALUAアドレス供給モードとLSセルアドレス生成モードと同様である。IOポートコンフィギュレーションレジスタ2300の設定(LSSEL=0、OEN=1)はWCE1201へアクセスする場合と同様である。図24における動作も、LSセル2000から信号2113へデータ出力されるまでは、図22で述べた動作と同一である。
これまで述べたことと異なる点は、EXIOSコンフィギュレーションレジスタ2500、2510を図23のように設定(ULP0sel=1)することである。この設定に従い、図24に示すEXIOS1203のセレクタ4305は、信号2113の出力先としてADC/DAC206を選択し、配線207に結果を出力する。以上により、太線で示すようにLSセル2000から上側のメモリセル4302を介してADC/DAC206へデータを出力することができる。
(2)ADC/DACからのデータ入力
データ入力は、(a)ADC/DAC206から入力されたデータをMEM2103へ書き込む、(b)図23に示すPOP命令によってMEM2103からLSセル2000へデータを読み出す、という2段階の動作によって実現する。以下で、(a)(b)それぞれの動作について説明を行う。
(a)ADC/DAC206からMEM2103への書き込み
図23のPOP命令に示すようにIOポートコンフィギュレーションレジスタ2300とEXIOSコンフィギュレーションレジスタ2500、2510の設定を行う。ULP0selを1とすることで、図25に示すセレクタ4307によって配線207が選択され、配線2112へデータが出力される。IENはALUAE外部から内部へのデータ入力許可/禁止を示しており、信号4610としてAND4600の片方の入力となる。そのため、図21のようにIENを1と設定することでAND4600においてALUAE外部からの入力2112が0マスクされずに信号4611へデータが出力される。信号4611と信号2109はセレクタ4601へ入力される。セレクタ4601では信号4611が優先して選択され、信号4612へ出力される。セレクタ4306では前述のようにLSSELの設定により上側のメモリセル4302と下側のメモリセル4303への接続が決定される。本実施例の場合(LSSEL=0)、信号4612と信号4613が接続され、上側のメモリセル4302へデータが転送される。以上により、太線で示すようにADC/DAC206から上側のメモリセル4302へデータを転送することができる。以下にメモリセル4302内のMEM2103へデータを格納する際の詳細について述べる。
ADC/DAC206からデータを入力する場合、MEM2103をFIFOとして動作させ、Mctl2104で生成されたアドレスによってメモリアクセスを行う。アドレスはベースアドレス+ディスプレースメントで生成され、ディスプレースメントはメモリアクセス毎に1ずつインクリメントされる。
上記で述べたベースアドレスとディスプレースメントの最大値は、図23のPOP命令のIOポートコンフィギュレーションレジスタ2300に設定する(本実施例では、それぞれIBAS=0x0200、IADD=0x050)。
MEM2103のアドレスを決めるMctl2104の内部論理の一例を図26に示し、以下で述べる。
図22に示す配線2109を通してコンフィギュレーションデータがIOポートコンフィギュレーションレジスタ2300へ書き込まれる。IOポートコンフィギュレーションレジスタ2300は複数存在するが、制御信号4310により、セレクタ4300で実行されるコンフィギュレーションが選択される。制御信号4310は、コンフィギュレーションの状態を示すAECTL制御レジスタ1500内のC1ST(クラスタ1)とC0ST(クラスタ0)1504の設定に基づき、IOポートが属するクラスタ番号に該当する状態を示している。
IOポートコンフィギュレーションレジスタ2300のレジスタ設定と、実行すべきレジスタの選択について述べる。レジスタの設定は、図6のCNFGC1309から図26に示すMctl2104の配線4720を通して、あらかじめ書き込んでおく。Mctl2104に内蔵されるIOポートコンフィギュレーションレジスタ2300は、複数存在するが、制御信号4721により、セレクタ4700で実行されるコンフィギュレーションが選択される。制御信号4721は、コンフィギュレーションの状態を示すAECTL制御レジスタ1500内のC1ST(クラスタ1)とC0ST(クラスタ0)1504の設定に基づき、IOポートが属するクラスタ番号に該当する状態を示している。
まず、アドレス信号4722の生成論理について述べる。POP命令では、アドレスは、2300内のベースアドレスIBAD(本実施例では0x0200)の信号4723と、加算器4701で生成されるディスプレースメントの信号4724を、加算器4702で加算して信号4722として得る。
ディスプレースメント信号4724は、加算器4701とレジスタ4703で1ずつ累積加算することで得られる。レジスタ4703はデータイネーブル信号4725によって制御される。ここでデータイネーブル信号4725とは、信号4613の内、データ信号4726に付随し、データが有効か否かを示す信号である。データイネーブル信号4725が1のとき、レジスタ4703の値が更新され、0のときは現在の値を保持する。また、ディスプレースメント信号4724は比較器4704でディスプレースメントの最大値IADD(0x0050)の信号4727と比較され、等しい場合レジスタ4703が0クリアされる。これにより、ローカルメモリのアドレス空間としてIBAS、IADDで定めた範囲(0x0200〜0x0250)を利用できる。
次に、メモリアクセス制御信号について述べる。リード/ライトリクエスト信号4728とリード/ライトイネーブル信号4729はデータイネーブル信号4725そのものであるため、データ4726が有効な場合、MEM2103に対しライトアクセスを行う。
(b)MEM2103からLSセル2000への読み出し
この動作を行うには、図23のPOP命令の項目に示すように、LSセルコンフィギュレーションレジスタ2200のFIFOを1に設定する。
この設定により、図20のPOPリクエスト信号4733が有効なものとしてMctl2104へ転送される。POPリクエスト信号4733FIFOの信号である。また、同図のセレクタ4106は、Mctl2104で生成されたPOP用アドレス4730を選択し信号4123に出力する。POP用アドレス信号4730の生成について以下に述べる。ディスプレースメント信号4731は、加算器4705とレジスタ4706で1ずつ累積加算することで得られる。レジスタ4706はリード/ライトイネーブル信号4732によって制御される。リード/ライトイネーブル信号4732については後述する。リード/ライトイネーブル信号4732が1のとき、レジスタ4706の値が更新され、0のときは現在の値を保持する。また、ディスプレースメント信号4731は比較器4708でレジディスプレースメント信号4724と比較され、その値を越さないようにレジスタ4708の値の更新/保持が行われる。これにより、リードアドレスがライトアドレスを追い越すことがなく、IBAS、IADDで定めた範囲(0x0200〜0x0250)を利用できる。
次に、メモリアクセス制御信号の生成論理について述べる。リード/ライトリクエスト信号4127は6。3。1で述べたとおりなので割愛する。リード/ライトイネーブル信号4732は、LSセル2000からのPOPリクエスト信号4733、リード/ライトイネーブル信号4125、データイネーブル信号4725、比較記4708の比較結果からイネーブルコントローラ4709で生成される。リード/ライトイネーブル信号は、LSセルからのPOPリクエスト信号4733が1で、リード/ライトリクエスト信号4125が有効で、リードアドレスがライトアドレスを追い越さない(FIFOが空でない)場合にのみ有効となる。また、イネーブルコントローラ4709においてFIFOの状態制御は本特許において本質ではないので割愛する。
最後に、前述したメモリアクセス用のアドレス、制御信号により読み出されたデータについて述べる。MEM2103から読み出されたデータは信号4127を通してLSセル2000へ転送される。同時にPOPリクエスト信号4733が正しく受理され、MEM2103から読み出されたデータが有効であることを示すPOPアクナレッジ信号4734がイネーブルコントローラ4709からLSセル2000へ転送される。POPアクナレッジ信号4734はイネーブルコントローラ4709でリード/ライトリクエスト信号4732をメモリリードサイクル数分遅延させてLSセル2000へ出力した信号である。これらの信号はLSセル2000のイネーブルコントローラ4108へ入力される。イネーブルコントローラ4108では、POPアクナレッジ信号4734を信号4127のイネーブル信号として信号4127と統合し、信号4128を生成する。信号4128は端子2004と2005からALUセル2001へ転送される。
以上(a)(b)の動作に基づきADC/DAC206から入力されたデータを読み出すことができる。
以上、実施例に基づいて説明してきたが、本発明の趣旨を逸脱しない範囲で種々の変更が可能である。
本発明の一つの実施形態である車搭載のソフトウェア無線機の利用方法と位置づけを示す図である。 本発明の一つの実施形態であるソフトウェア無線機の構成図である。 本発明の一つの実施形態であるソフトウェア無線機の前処理部の第2の構成を示す図である。 本発明の一つの実施形態であるダイナミックリコンフィグレーション(DR)チップの構成図である。 本発明の一つの実施形態であるDREの構成図である。 本発明の一つの実施形態であるALUAEの構成図である。 本発明の一つの実施形態であるALUAEの設定レジスタの概要を示す図である。 本発明の一つの実施形態であるAECTLの制御/ステータスレジスタの構成図である。 本発明の一つの実施形態であるCNFGCの制御/ステータスレジスタの構成図である。 本発明の一つの実施形態であるALUセルを利用して、フィルタリング処理を実行する場合のコンフィグレーション情報を示す図である。 本発明の一つの実施形態であるALUセルの構成図である。 本発明の一つの実施形態であるALUセルのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるLSセルとALUセルのインタフェースを示す図である。 本発明の一つの実施形態であるIOブロックと、その構成要素であるIOCTLの構成図である。 本発明の一つの実施形態であるLSセルのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるIOCTLのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるALUAEが外部とデータアクセス機構と、EXIOSの位置づけを示す図である。 本発明の一つの実施形態であるEXIOSのコンフィグレーションレジスタの構成図である。 本発明の一つの実施形態であるLSセルからローカルメモリへアクセスする場合のコンフィグレーションレジスタの設定例を示す図である。 本発明の一つの実施形態であるLSセルの構成を示す図である。 本発明の一つの実施形態であるLSセル、IOポート、EXIOSからWCEへアクセスする場合のコンフィグレーションレジスタの設定例を示す図である。 本発明の一つの実施形態であるLSセル、IOポート、EXIOSがWCEへアクセスする際の動作を示す図である。 本発明の一つの実施形態であるLSセル、IOポート、EXIOSからADC/DACへアクセスする場合のコンフィグレーションレジスタの設定例を示す図である。 本発明の一つの実施形態であるLSセル、IOポート、EXIOSがADC/DACへ書き込みアクセスする際の動作を示す図である。 本発明の一つの実施形態であるLSセル、IOポート、EXIOSがADC/DACから書き込まれたデータに対し読み出しアクセスする際の動作を示す図である。 本発明の一つの実施形態であるメモリコントローラの構成を示す図である。
符号の説明
106…ソフトウェア無線機、107…カーナビゲーションシステム、202…ソフトウェア無線機の前処理部、203…ダイナミックリコンフィギュラブル(DR)チップ、205…FLASHロム、206…ADC/DAC、700…CPU、706…割り込みコントローラINTC、708…DRエンジン、710…割り込み要求信号、1201…WCエンジン、1202…ALUAE、1203…EXIOS、1301…AECTL、1304…LSAR、1305…ALUアレイ、1306…LSAL、1309…CNFGC、1311…コンフィグレーションの次状態信号、1312、1313…LMEM、1700…ALUセル、2000…LSセル、2100…入出力回路、2200…内部ローカルメモリ、2300…ロードストアアレイ。

Claims (9)

  1. アレイ状に配置されたALUセルおよびALUセル間のデータ転送機能を持つ演算部と、
    前記演算部の周囲あるいは内部に配置された内蔵メモリと、
    前記内蔵メモリへオペランドアクセスのためのアドレス演算を実行する専用セル群を備え、
    前記演算部と前記専用セル群はその構成情報を動的に指定するための記憶領域を持つことを特徴とする半導体集積回路。
  2. 請求項1に記載の半導体集積回路において、
    前記専用セル群は、前記内蔵メモリに最も近い位置に存在する前記演算部の複数のALUセルに対応して複数存在し、前記内蔵メモリに対しオペランドアクセスを実行することを特徴とする半導体集積回路。
  3. 請求項1に記載の半導体集積回路において、
    前記内蔵メモリは、前記演算部の複数のALUセルに対して複数存在し、前記半導体集積回路外部からのメモリアクセスに対し1個の連続したアドレス空間を有し、前記演算部からのメモリアクセスに対しそれぞれ個別のアドレス空間を持つことを特徴とする
    半導体集積回路。
  4. 請求項3に記載の半導体集積回路において、
    前記専用セル群は、前記複数の内蔵メモリに対応して複数存在し、各内蔵メモリに一意に対応してオペランドアクセスを実行することを特徴とする半導体集積回路。
  5. 請求項1に記載の半導体集積回路において、
    前記専用セル群は、 前記内蔵メモリと、
    前記半導体集積回路に専用IOインタフェースで接続された周辺回路と、
    前記半導体集積回路に専用IOインタフェースで接続されたLSI外部デバイスとの共通化されたデータアクセス機構を備え、
    前記専用IOインタフェースは、その接続先を動的に指定するための記憶領域を持つことを特徴とする半導体集積回路。
  6. アレイ状に配置されたALUセルを持つ演算部と、
    前記演算部で処理されたデータを格納する内蔵メモリと、
    前記内蔵メモリへアクセスのためのアドレス演算を実行する専用セル群を備え、
    前記演算部は、四辺形を形成する第1領域に設けられ、
    前記専用セル群は、前記四辺形の第1の辺及び前記第1の辺に対向する第2の辺に沿って配置され、
    前記ALUセルは、自身の演算機能の決定及び接続先を指定するための記憶領域を有することを特徴とする半導体集積回路。
  7. 請求項6に記載される半導体集積回路において、
    前記半導体集積回路は、前記演算部、前記内蔵メモリ及び前記専用セル群を含む回路モジュールと、前記回路モジュールに接続されるバスと、前記バスに接続されるCPUとを更に具備し、
    前記内蔵メモリは、前記専用セル群及び前記CPUによりアクセスされることを特徴とする半導体集積回路。
  8. 請求項6に記載される半導体集積回路において、
    前記専用セル群は、前記第1の辺に沿って配置されたALUセルの数と同じ数の専用セルを有することを特徴とする半導体集積回路。
  9. 請求項6に記載される半導体集積回路において、
    前記専用セル群は、前記ALUセルと前記内蔵メモリの間に接続されることを特徴とする半導体集積回路。
JP2004292056A 2004-10-05 2004-10-05 半導体集積回路 Expired - Fee Related JP4120631B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004292056A JP4120631B2 (ja) 2004-10-05 2004-10-05 半導体集積回路
US11/240,549 US20060101232A1 (en) 2004-10-05 2005-10-03 Semiconductor integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004292056A JP4120631B2 (ja) 2004-10-05 2004-10-05 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2006109025A JP2006109025A (ja) 2006-04-20
JP4120631B2 true JP4120631B2 (ja) 2008-07-16

Family

ID=36317704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004292056A Expired - Fee Related JP4120631B2 (ja) 2004-10-05 2004-10-05 半導体集積回路

Country Status (2)

Country Link
US (1) US20060101232A1 (ja)
JP (1) JP4120631B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7765250B2 (en) * 2004-11-15 2010-07-27 Renesas Technology Corp. Data processor with internal memory structure for processing stream data
JP4444860B2 (ja) * 2005-03-10 2010-03-31 富士通株式会社 リコンフィギュラブル回路およびそのコンフィギュレーション方法
JP2008042546A (ja) * 2006-08-07 2008-02-21 Nec Computertechno Ltd 論理動作回路、論理切換方法及び電子機器
JP5336205B2 (ja) * 2009-01-14 2013-11-06 ローム株式会社 プログラマブルロジックデバイスを用いた信号処理回路
WO2016100142A2 (en) * 2014-12-15 2016-06-23 Hyperion Core Inc. Advanced processor architecture

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3300699C2 (de) * 1983-01-11 1985-12-19 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung zum Adressieren der jeweils ein Adreßvolumen aufweisenden Speicher mehrerer datenverarbeitender Einrichtungen in einem Mehrprozessorsystem mit Systembus
JP2628079B2 (ja) * 1988-11-25 1997-07-09 三菱電機株式会社 マルチプロセサシステムにおけるダイレクト・メモリ・アクセス制御装置
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) * 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US6469540B2 (en) * 2000-06-15 2002-10-22 Nec Corporation Reconfigurable device having programmable interconnect network suitable for implementing data paths
US6782463B2 (en) * 2001-09-14 2004-08-24 Intel Corporation Shared memory array
JP2004334429A (ja) * 2003-05-06 2004-11-25 Hitachi Ltd 論理回路及びその論理回路上で実行するプログラム

Also Published As

Publication number Publication date
US20060101232A1 (en) 2006-05-11
JP2006109025A (ja) 2006-04-20

Similar Documents

Publication Publication Date Title
US6745317B1 (en) Three level direct communication connections between neighboring multiple context processing elements
US8904148B2 (en) Processor architecture with switch matrices for transferring data along buses
US8386752B2 (en) Processor architecture
EP2116938B1 (en) Operation apparatus and control method
US7568084B2 (en) Semiconductor integrated circuit including multiple basic cells formed in arrays
US9240220B2 (en) Stacked-die multi-processor
US10963411B1 (en) Integrating rows of input/output blocks with memory controllers in a columnar programmable fabric archeture
US20060123152A1 (en) Inter-processor communication system for communication between processors
US20060101232A1 (en) Semiconductor integrated circuit
US20240176758A1 (en) Multi-use chip-to-chip interface
US8165620B2 (en) Radio communication apparatus with a bus dedicated to data transmission
JP5533330B2 (ja) データ処理装置
JP2013122764A (ja) 再構成可能プロセッサ及び再構成可能プロセッサのミニコア
US8890215B2 (en) Reconfigurable elements
US7570611B2 (en) Parallel processing data transfer arrangements
JP4353052B2 (ja) 半導体集積回路
WO2010034167A1 (zh) 一种集成电路的处理器结构
US20090019268A1 (en) Processor
JP2007004424A (ja) バスシステム

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

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071217

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: 20080401

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: 20080414

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

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110509

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120509

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees