説明

直交変換回路

【課題】データ配列の直交変換を行なう回路において、転送バス上の有効データのビット幅が異なる場合においても効率的にデータを転送して直交変換を行う。
【解決手段】データバス(96)を直交メモリセルアレイ(110)の間に、有効転送データビット幅に応じてデータ転送経路を切換える経路設定回路(122)を設け、バスを転送されるデータのビット幅に応じて書込領域をリード/ライト回路(113a−113d)により設定する。これにより、直交メモリセルアレイ(110)においては、有効データのビット幅に応じて異なるエントリに有効データをそれぞれ格納することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、データ配列をビットシリアルかつワードパラレルなデータ列とワードシリアルかつビットパラレルなデータ列との間で変換する回路に関し、特に、メモリと演算回路とが同一半導体基板上に集積化された信号処理装置において、外部データを転送するシステムバスと該メモリとの間で効率的にデータを転送するための直交変換回路に関する。
【背景技術】
【0002】
移動体通信技術の発展に伴って、携帯電話などの携帯端末機器においては、音声および画像のような大量のデータを送受信することが可能となり、このような音声および画像のような大量のデータを高速に処理するデジタル信号処理の重要性が高くなってきている。このようなデジタル信号処理には、一般に、専用の半導体装置としてDSP(デジタル・シグナル・プロセッサ)が用いられる。音声および画像データに対するデジタル信号処理においては、フィルタ処理などのデータ処理が行なわれ、このような処理においては積和演算を繰返す演算処理が多い。したがって、一般に、DSPの構成においては、乗算回路、加算回路および累算用のレジスタが設けられる。このような専用のDSPを用いると、積和演算を1マシンサイクルで実行することが可能となり、高速演算処理が可能となる。
【0003】
このような積和演算を行なう際に、レジスタファイルを利用する構成が、特許文献1(特開平6−324862号公報)に示されている。この特許文献1においては、レジスタファイルに格納された二項のオペランドデータを読出して演算器で加算した後、書込データレジスタを介してレジスタファイルに加算結果を書込む。
【0004】
この特許文献1に示される構成においては、レジスタファイルに対して書込アドレスおよび読出アドレスを同時に与えて、データの書込およびデータの読出を並行に行なう。この書込および読出の並列実行により、データの書込サイクルおよびデータの読出サイクルを別々に設けて演算処理する構成に比べて処理時間を短縮することを図る。
【0005】
また、画像データのDCT変換(離散コサイン変換)などの処理を高速に行なうことを目的とする信号処理装置が、特許文献2(特開平10−74141号公報)に示されている。この特許文献2に示される構成においては、画像データがビットパラレルかつワードシリアルなシーケンスで、すなわちワード(画素データ)単位で入力されるため、直列/並列変換回路を用いてワードパラレルかつビットシリアルなデータ列に変換してメモリアレイに書込む。メモリアレイにおいては、画面上同一ブロックを構成するデータが列方向に整列して格納される。すなわち、各メモリアレイブロックにおいて、対応の画像ブロックを構成する画素データが、メモリアレイの行ごとにワード単位で格納される。メモリアレイブロック毎に演算器が設けられる。
【0006】
この特許文献2に示される構成においては、メモリアレイブロックと対応の演算器との間でワード(1つの画素に対応するデータ)単位でデータを転送する。各ブロック個々に、対応の演算器において転送されたワードに対して同一処理を実行することにより、DCT変換でのフィルタ処理を高速で実行することを図る。演算処理結果は、再びメモリアレイに書込まれ、再度、並列/直列変換を行なってビットシリアルかつワードパラレルデータをビットパラレルかつワードシリアルなデータに変換して、1ラインごとの画素データを順次出力する。通常の処理においては、データのビット位置の変換は行なわれず、演算器において通常の演算処理を複数のデータに対して並列に実行する。
【特許文献1】特開平6−324862号公報
【特許文献2】特開平10−74141号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
処理対象のデータ量が非常に多い場合には、専用のDSPを用いても、性能を飛躍的に向上させることは困難である。たとえば、演算対象のデータが1万組ある場合、1つ1つのデータに対する演算を1マシンサイクルで実行することができたとしても、最低でも11万サイクルが演算に必要となる。したがって、特許文献1に示されるようなレジスタファイルを用いて積和演算を行なうような構成の場合、1つ1つの処理が高速ではあるものの、データ処理が直列に行なわれるため、データ量が多くなると、それに比例して処理時間が長くなり、高速処理を実現することができない。
【0008】
また、専用のDSPを利用する場合、処理性能は動作周波数に大きく依存することになるため、高速処理を優先した場合、消費電力が増大することになる。
【0009】
また、この特許文献1に示されるようなレジスタファイルおよび演算器を利用する場合、ある用途に特化して設計されることが多く、演算ビット幅および演算回路の構成等が固定される。したがって、他の用途に転用する場合には、そのビット幅および演算回路の構成を設計しなおす必要があり、複数の演算処理用途に柔軟に対応することができなくなるという問題が生じる。
【0010】
また、特許文献2に示される構成においては、画像データのDCT変換などの処理の高速化を図り、画面1ラインの画素データを1行のメモリセルに格納して行方向に整列する複数の画像ブロックに対して並列に処理を実行する。しかしながら、この画像ブロックは、たとえば8画素×8画素のブロックであり、また、1画素が一例として8ビットデータである。画素データは、ビットパラレルかつワードシリアルに、1画素ずつ順次転送されて、8画素ずつ配列が変換されて、ワードパラレルかつビットシリアルなデータ列に変換されてメモリアレイに格納される。したがって、画像の高精細化のために画素数が増大した場合、演算対称のブロック数が増大し、一般にマクロブロックと呼ばれる演算対象ブロックのラインに含まれるマクロブロックの数が増大する。したがって、たとえマクロブロックラインごとに演算処理を行なう場合においても、その画素数が増大するため、応じて、メモリセルアレイとの間での画素データの転送に長時間を要し、高速処理を行なうことができなくなる。
【0011】
また、特許文献2においては、メモリセルアレイのブロックに対応して演算回路を配置し、積和演算処理を実行する構成が示されているものの、その演算態様は、ワードシリアルかつビットパラレルな態様で実行されており、データビット幅が変更される場合、演算器のビット幅も変更する必要が生じ、回路構成を設計する必要が生じる。従って、ある特定のフォーマットの画素データの処理のように、画素データのビット幅が固定される場合には、メモリセルアレイの画素データ格納領域および演算器の演算処理ビット幅を固定的に設定して演算処理を実行することができる。しかしながら、複数種類のフォーマットにおいて、画素データのビット幅が異なる場合、この特許文献2に示される構成では、柔軟に対応することができなくなり、その用途が固定的に設定され汎用性にかけるという問題が生じる。
【0012】
また、演算対象データを転送するバス幅が、たとえば32ビットの場合、ある用途において演算処理対象のデータが8ビットデータの場合、効率的なデータ転送には、8ビットデータワードを4つ並列に転送することが考えられる。上述の特許文献2に示されるデータ配列変換方式を適用する場合、1回のバスアクセスサイクルで転送される4ワードデータを単位として、データ配列変換が行なわれる。したがって、A0−A3、B0−B3、C0−C3およびD0−D3を各々8ビットデータとした場合、1回目の転送時に4ワードデータA0−A3が転送され、次いでデータB0−B3が転送され、次いでデータC0−C3が転送され、そして、4ワードデータD0−D3が転送されたとき、データ配列の変換が行なわれる。変換前後の1回の転送データのビット幅は同一である。したがって、この場合、4ワードデータ全体のデータ配列の変換であり、変換後のデータ列においては、データA0、B0、C0およびD0が並列にビットシリアル態様で転送され、データ列A0−A3をビットシリアル態様で並列に転送することができず、所望の演算処理を実現することができなくなる。
【0013】
それゆえ、この発明の目的は、演算対象のデータのビット幅にかかわらず、効率的に、データ配列変換を行なうことのできる直交変換回路を提供することである。
【0014】
この発明の他の目的は、データビット幅にかかわらず、データ転送がオーバーヘッドとならず、高速で演算処理を実行することのできる信号処理装置に適した直交変換回路を提供することである。
【課題を解決するための手段】
【0015】
この発明に係る直交変換回路装置は、各々が第1の方向に延在しかつ複数のメモリセルを含む複数のエントリを備えるメモリと、第1のバス上を転送されるデータのビット幅情報に従って、この第1のバスとメモリとの間のデータ転送経路を設定し、該設定された経路に従ってデータを転送する転送経路設定回路と、第2のバスとメモリの複数のエントリの第2の方向において整列するビットとの間で並列にデータを転送するデータ転送回路を備える。
【発明の効果】
【0016】
データ転送経路設定回路により、第1のバス上を転送されるデータのビット幅に応じてメモリとの間のデータ転送経路を切換え、メモリのエントリとの間でデータを転送する。したがって、第1のバスのバス幅が転送データのビット幅と同じときには、メモリのエントリとの間で順次データ転送を行ない、また、転送データのビット幅が第1のバスのバス幅よりも小さいときには、第1のバス上に複数のデータを並列に転送し、メモリの複数のエントリとの間で転送を転送する。第1のバスのバス線をフルに利用してデータ転送を行なうことができ、第1のバスのデータ転送能力を十分に利用することができ、転送データのビット幅にかかわらず、効率的なデータ転送を実現することができる。
【0017】
また、データ転送回路は、メモリの複数のエントリの同一位置のデータ転送を行なっており、第1のバスから転送されたデータは、ビット幅にかかわらず、ワードパラレルかつビットシリアルな態様で転送される。したがって、第1のバスと第2のバスをそれぞれ転送されるデータの配列をビット幅にかかわらず効率的に変換することができる。
【0018】
この直交変換回路を、メモリ(演算メモリ)と演算器が集積化された信号処理装置内に実装することにより、直交変換回路と演算用メモリとの間でエントリパラレルかつビットシリアルな態様でデータを転送することができ、信号処理装置において効率的にデータ転送を行なうことができ、データ転送が演算処理の高速化に対するボトルネックとなるのを回避することができ、高速の演算処理を実現することができる。
【発明を実施するための最良の形態】
【0019】
[実施の形態1]
図1は、この発明に従う直交変換回路が適用される信号処理システムの全体構成を概略的に示す図である。図1において、信号処理システム1は、各種処理を実行する演算機能を実現するシステムLSI2と、システムLSI2と外部システムバス3を介して接続される外部メモリとを含む。この外部メモリは、大容量メモリ4と、高速メモリ5と、システム立上げ時の命令などの固定情報を格納する読出専用メモリ(リード・オンリ・メモリ:ROM)6を含む。大容量メモリ4は、たとえばクロック同期型ダイナミック・ランダム・アクセス・メモリ(SDRAM)で構成され、高速メモリ5は、たとえばスタティック・ランダム・アクセス・メモリ(SRAM)で構成される。
【0020】
システムLSI2は、内部システムバス7に並列に結合される基本演算ブロックFB1−FBhと、内部システムバス7に結合され、これらの基本演算ブロックFB1−FBhの処理動作を制御するホストCPU8と、信号処理システム1の外部からの入力信号INを内部処理用データに変換する入力ポート9と、内部システムバス7から与えられた出力データを受けてシステム外部へ転送される出力信号OUTを生成する出力ポート10を含む。これらの入力ポート9および出力ポート10は、たとえばライブラリ化されたIP(インテレクチュアル プロパティ:Intellectual Property)ブロックで構成され、データ/信号の入出力に必要な機能を実現する。
【0021】
システムLSI2は、さらに、基本演算ブロックFB1−FBhからの割込信号を受け、ホストCPU8に対して割込を通知する割込コントローラ11と、ホストCPU8の各処理に必要な制御動作を行なうCPU周辺12と、基本演算ブロックFB1−FBhからの転送要求に従って外部メモリに対するデータ転送を行なうDMA(ダイレクト・メモリ・アクセス)コントローラ13と、ホストCPU8またはDMAコントローラ13からの指示に従って外部システムバス3に接続されるメモリ4−6に対するアクセス制御を行なう外部バスコントローラ14と、ホストCPU8のデータ処理を補助する専用ロジック15を含む。
【0022】
CPU周辺12は、タイマおよびシリアルIO(入出力)などのホストCPU8におけるプログラムおよびデバッグの用途に必要な機能を有する。専用ロジック15は、たとえばIPブロックで構成され、既存の機能ブロックを用いて必要な処理機能を実現する。これらの機能ブロック9−15は、並列に、内部システムバス7に接続される。また、DMAコントローラ13には、基本演算ブロックFB1−FBhからのDMA要求信号が与えられる。
【0023】
基本演算ブロックFB1−FBhは、同一構成を有するため、図1においては、基本演算ブロックFB1の構成を代表的に示す。
【0024】
基本演算ブロックFB1は、実際のデータの演算処理を行なう主演算回路20と、主演算回路20における演算処理を指定するマイクロ命令を格納するマイクロ命令メモリ21と、マイクロ命令メモリ21からのマイクロ命令に従って主演算回路20の演算処理を制御するコントローラ22と、コントローラ22の中間処理データまたは作業用データを格納するワークデータメモリ23と、基本演算ブロックFB1の内部と内部システムバス7との間でのデータ/信号の転送を行なうシステムバスインターフェイス(I/F)24を含む。
【0025】
主演算回路20は、複数のメモリセルが行列状に配列されかつ複数のエントリに分割されるメモリセルマット30と、メモリセルマット30の各エントリに対応して配置され、指定された演算処理を行なう演算器(ALU)31と、演算器31間のデータ転送経路を設定するALU間相互接続用スイッチ回路32を含む。
【0026】
基本的に、メモリセルマット30の各行が1エントリを構成し、1エントリに多ビットデータの各ビットが格納される。
【0027】
演算器(以下、適宜、ALUと称す)31は、対応のエントリからのデータをビットシリアルに受けて演算処理を行ない、該処理結果をメモリセルマット30の指定されたエントリ(たとえば対応のエントリ)の所定の位置に格納する。
【0028】
ALU間相互接続用スイッチ回路32により、ALU31の接続経路が切換えられ、異なるエントリのデータの演算を可能とする。各エントリに異なるデータを格納し、ALU31により並列演算処理を行なうことにより、高速にデータ処理を行なうことができる。
【0029】
コントローラ22は、マイクロ命令メモリ21に格納されるマイクロ命令に従ってマイクロプログラム方式に従った動作を行なう。マイクロプログラム動作に必要なワークデータが、ワークデータメモリ23に格納される。
【0030】
システムバスI/F24により、ホストCPU8またはDMAコントローラ13が、メモリセルマット30、コントローラ22内の専用レジスタ、マイクロ命令メモリ21およびワークデータメモリ23へアクセスすることが可能となる。
【0031】
システムバスI/F24と主演算回路20の間に、与えられたデータ列の並べ替えを行なう直交変換回路85と、システムバスI/F24および直交変換回路85の一方と主演算回路20との間を接続する切換回路(MUX)87が設けられる。
【0032】
この直交変換回路85は、システムバスI/F24からビットパラレルかつワードシリアルな態様で転送されるデータを、ワードパラレルかつビットシリアルな態様で転送して、メモリセルマット30の各エントリに異なるデータワードを同一位置のビット並列に書込む。また、この直交変換回路85は、主演算回路20のメモリセルマット30からワードパラレルかつビットシリアルに転送されるデータ列を転置して、ビットパラレルかつワードシリアルな態様で転送する。これにより、システムバスI/F24とメモリセルマット30におけるデータ転送の整合性を確立する。
【0033】
ここで、ビットシリアルは1つのデータワードを構成するビットが順次転送または処理される態様を示し、ビットパラレルは、1つのデータワードを構成するビットが並列に転送または処理される態様を示す。また、エントリ(またはワード)パラレルは、複数のエントリ(またはワード)が並列に転送または処理される態様を示し、エントリ(またはワード)シリアルは、複数のエントリ(またはワード)が順次転送または処理される態様を示す。
【0034】
ビットシリアルかつワードパラレルなデータ列とビットパラレルかつワードシリアルなデータ列の間の変換を、「直交変換」と規定する。
【0035】
切換回路87は、コントローラ22からのワークデータを選択して主演算回路20に転送するように構成されてもよい。この場合、ワークデータメモリ23は不要となる。また、演算対象データ列を直交変換により転置する必要のない場合には、切換回路87は、システムバスI/F24を選択して主演算回路20に接続する。
【0036】
信号処理システム全体の処理動作ならびに主演算回路20の構成および処理動作については、既に、同一出願人が特願2004−358719号および特願2004−282014号として出願し、これらの先願明細書中に詳細に説明されているものの、以下において、本発明に従う直交変換回路の作用効果を十分に理解するために、この主演算回路20の構成および動作について簡単に説明する。
【0037】
図2は、図1に示す主演算回路20のメモリセルマット30および演算器(ALU)31の配置を概略的に示す図である。メモリセルマット30においては、メモリセルMCが行列状に配列され、M個のエントリERYに分割される。エントリERYは、Nビットのビット幅を有する。このメモリセルマット30におていは、M個のエントリERYに共通にワード線WLが配設され、1つのエントリERYに対してビット線対BLPが配列され、このビット線対BLPのビット線BLおよび/BLがデータ転送線として利用される。
【0038】
演算器(ALU)31は、エントリERYそれぞれに対応して設けられ、演算処理ユニット35を構成する。演算器31は、加算、論理積、一致検出(EXOR)、および反転(NOT)などの演算を実行することができる。各エントリERYと対応の演算器31の間でデータのロードおよびストアを行なって演算処理を実行する。演算器31の演算内容は、図1に示すコントローラ22により設定される。
【0039】
エントリERYには、それぞれ演算処理対象のデータが格納され、演算器31は、ビットシリアル態様で演算処理を実行する。演算処理ユニット35においては、したがって、ビットシリアルかつエントリパラレルな態様でデータの演算処理が実行される。
【0040】
演算処理ユニット35においてビットシリアルな態様で演算処理を実行することにより、演算対象のデータのビット幅が用途に応じて異なる場合においても、単に演算サイクル数がデータワードのビット幅に応じて変更されるだけであり、その処理内容は変更されず、語構成の異なるデータ処理に対しても、容易に対応することができる。
【0041】
また、複数のエントリERYのデータを演算処理ユニット35において並行して処理することができ、エントリ数Mを大きくすることにより、大量のデータを一括して演算処理することができる。一例として、エントリ数Mは1024であり、1エントリERYのビット幅Nは、512ビットである。
【0042】
メモリセルMCは、SRAM(スタティック・ランダム・アクセス・メモリ)セルで構成され、高速アクセスを行なってデータの転送を行なうことができる。また、データの定期的なリフレッシュは不要であり、メモリセルマット30のデータに対する演算処理の制御を簡略化することができる。
【0043】
この主演算回路20において演算を行なう場合には、まず、エントリERYそれぞれに演算対称データが格納される。次いで、格納されたデータのある桁のビットをすべてのエントリERYについて並列に読出し、対応の演算器31へ転送する(ロードする)。すなわち、ワード線WLを選択状態へ駆動することにより、選択ワード線に接続されるメモリセルMCのデータが対応のビット線対BLP上に読出され、この読出されたデータが対応の演算器31へ転送される。
【0044】
二項演算を行なう場合には、エントリERYそれぞれにおいて、二項演算の組のデータが格納され、1つのデータワードのビットが転送された後、別のデータワードのビットに対し同様の転送動作を行なう。この後、演算器31各々が、二項演算を行ない、この演算処理結果が、演算器31から対応のエントリERY内の所定領域に再書込(ストア)される。
【0045】
図3は、図2に示す主演算回路20における演算操作の一例を示す図である。この図3においては、2ビット幅のデータワードaおよびbの加算を行なって、データワードcを生成する。エントリERYの各々には、演算対象の組をなすデータワードaおよびbがともに格納される。
【0046】
図3において、第1行目のエントリERYに対する演算器31においては、10B+01Bの加算が行なわれ、2行目のエントリERYに対する演算器31においては、00B+11Bの演算が行なわれる。ここで、“B”は、2進数を示す。3行目のエントリERYに対する演算器31においては、11B+10Bの加算が行なわれる。以下、同様に、エントリERYそれぞれに格納されたデータワードaおよびbの加算演算が実行される。
【0047】
演算は、下位側ビットから順にビットシリアル態様で行なわれる。まず、各エントリERYにおいてデータワードaの下位ビットa[0]を対応の演算器(ALU)31へ転送する。次いで、データワードbの下位ビット[0]を対応の演算器31へ転送する。演算器31においては、それぞれ、与えられた2ビットデータを用いて加算演算を行なう。この加算演算結果a[0]+b[0]は、データワードcの下位ビットc[0]の位置に書込まれる(ストアされる)。たとえば、第1行目のエントリERYにおいては、ビット“1”が、c[0]の位置に書込まれる。
【0048】
この加算処理が、次いで上位ビットa[1]およびb[1]に対しても行なわれ、その加算結果a[1]+b[1]が、ビットc[1]の位置に書込まれる。
【0049】
加算演算によっては、桁上がりが生じ可能性があり、この桁上がり(キャリー)の値が、ビットc[2]の位置に書込まれる。これにより、データワードaおよびbの加算がすべてのエントリERYにおいて完了し、その結果がデータcとしてエントリERY各々において格納される。1024個のエントリが設けられる場合、1024組のデータの加算を並列に実行することができる。
【0050】
図4は、この二項加算演算時のデータビットの流れを模式的に示す図である。図4においては、第i桁および第(i+1)桁のビットに対する演算操作時のデータビットの流れを示す。この図4に示すように、メモリセルマット30において、まずビットa[i]およびb[i]が、それぞれ第kサイクルおよび第(k+1)サイクルにおいて読出され(Read)、演算器(ALU)31へ転送される。
【0051】
次の第(k+1)サイクルにおいて、演算器31の加算操作(ADD)に移行し、次のサイクル(k+3)において演算結果c[i]を書込む(Write)。次いで、次のサイクル(k+4)から第(k+7)において、ビットa[i+1]およびb[i+1]の逐次読出、加算操作および加算結果c[i+1]の書込が実行される。
【0052】
この図4に示すように、メモリセルマット30と演算器31との間でのデータビットの転送に、それぞれ1マシンサイクル必要とされ、また、演算器31において1マシンサイクルの演算サイクルが必要とされる構成の場合、2ビットデータの加算および加算結果の格納を行なうために、4マシンサイクルが必要となる。すなわち、演算処理データの各桁当たり、4マシンサイクル必要となる。
【0053】
しかしながら、メモリセルマット30を複数のエントリERYに分割し、各エントリERYに演算対象データの組をそれぞれ格納し、対応の演算器(ALU)31においてビットシリアル態様で演算処理を行なう構成とすることにより、以下の特長が実現される。すなわち、1つ1つのデータの演算には比較的多くのマシンサイクルが必要とされるものの、処理すべきデータ量が非常に多い場合には、演算の並列度を高くすることにより、高速データ処理を実現することができる。また、ビットシリアル態様で演算処理を行なっており、処理されるデータのビット幅は固定されないため、種々のデータ構成を有するアプリケーションに容易に適応することができる。
【0054】
図5は、主演算回路20の具体的構成の一例を示す図である。主演算回路20において、メモリセルマット30に配列されるメモリセルMCは、シングルポートSRAMセルである。図の垂直方向に整列するメモリセルそれぞれに対応してワード線WLが配置され、各エントリに対応してビット線対BLPが配置される。メモリセルMCは、これらのビット線対BLPとワード線WLの交差部に対応して配置される。1つのワード線WLには、エントリERY0−ERY(M−1)の同一位置に配置されるメモリセルMCが接続される。エントリERY0−ERY(M−1)ごとに対して配置されるビット線対BLP0−BLP(M−1)においては、対応のエントリのメモリセルが接続される。
【0055】
このメモリセルマット30のワード線WLに対して、コントローラ22または直交変換回路85からのアドレス信号に従って、演算対象のデータビットが接続されるワード線WLを選択状態へ駆動するロウデコーダ74が設けられる。このロウデコーダ74により、エントリERY0−ERY(M−1)において同一位置のデータビットを並行して選択する。
【0056】
演算処理ユニット35においては、演算器(ALU)31がビット線対BLP0−BLP(M−1)に対応して配置される。
【0057】
この演算処理ユニット35とメモリセルマット30との間に、データのロード/ストアを行なうための読出/書込回路が設けられる。この読出/書込回路38は、ビット線対BLP0からBLP(M−1)各々に対応して設けられるセンスアンプおよびライトドライバをそれぞれ含むセンスアンプ部70とライトドライバ群72を含む。
【0058】
読出/書込回路38に対して、直交変換回路85と内部メモリバス77を介してデータの授受を行なう入出力回路76が設けられる。この入出力回路76により、メモリセルマット30と内部メモリバス77との間でのデータ転送が行なわれる。この入出力回路76のデータの入出力ビット幅は、システムバスI/F24が転送するデータのビット幅以上の値に設定される。
【0059】
入出力回路76におけるデータビット幅と1つのワード線WLに接続されるエントリのビット幅(M)との調整を行なうために、カラムデコーダ78が設けられる。このカラムデコーダ78からの列選択線CLにより、直交変換回路85は転送データビット幅に応じた数のビット線対(センスアンプまたはライトドライバ)が選択される。このカラムデコーダ78にはコントローラ22または直交変換回路85からのエントリアドレスが与えられる。コラムデコーダ78に与えられるアドレスのビット数は、直交変換回路85との間で転送されるデータのビット幅に応じて適切に定められる。
【0060】
列選択線CLにより選択されたエントリが入出力回路76に接続され、直交変換回路85との間で内部メモリバスを介してデータの転送が行なわれる。
【0061】
図5に示すように、ロウデコーダ74により、エントリERY0−ERY(M−1)が選択され、この選択されたエントリの所定数のエントリに対して並列にデータの書込が実行される。したがって、入出力回路76からは、異なるエントリに格納されるデータを転送する必要がある。一方、システムバスI/F24を介して転送されるデータは、データワード単位のデータであり、1つのエントリERYに含まれるデータである。したがって、このシステムバスI/F24を転送データ(内部システムバス7上の転送データ)のワードシリアルかつビットパラレルのデータを、メモリセルマット30に書込むのに適したビットシリアルかつワードパラレルなデータに変換する。この機能を、前述のように、直交変換機能と呼び、直交変換回路85によりデータ配列の変換を実行する。
【0062】
図6は、図1に示す直交変換回路85におけるデータ配列変換操作によるデータの流れを示す図である。図6においては、4ビットデータが外部の大容量メモリ(SDRAM)4から転送され、直交変換回路85から、4ビットデータが主演算回路20内のメモリセルマット30へ転送される場合の動作が一例として示される。
【0063】
SDRAM4に、4ビットデータa(ビットa0−a3)ないしi(ビットi3−i0)が格納される。このSDRAM4から内部システムバス(7)を介して、4ビットデータDTE(データi;ビットi3−i0)の各ビットが並列に転送される。このSDRAM4からのデータDTEは、メモリセルマットの同一エントリERYに格納されるエントリ単位のデータであり、直交変換回路85において、転送された4ビットデータの各ビットが、Y方向に整列して格納される。直交変換回路85のメモリ内において、X方向に順次転送データが格納される。
【0064】
直交変換回路85からメモリセルマット30へのデータ転送時においては、X方向に整列するビットが並列に読出され、Y方向に沿って順次選択ビット位置を更新してデータ転送が行なわれる。したがって、ビットe1、f1、g1およびh1で構成されるデータDTAが、メモリセルマット30の4エントリに並行して格納される。このアドレス単位のデータDTAは、メモリセルマットにおいて1アドレスの指定時に格納されるデータであり、メモリセルマット30のエントリ位置情報および書込ビット位置情報が示す位置に格納される。この操作を、順次繰返し、全転送データについて実行することにより、メモリセルマット30において複数のエントリ(4エントリ単位)に複数のデータビットが並列に書込まれ、エントリERYにおいては、それぞれ、エントリ単位のデータDTEが格納される。メモリセルマット30から、内部システムバス(7)を介して外部へ転送する場合には、この逆の方向にデータが流れ、アドレス単位のデータDTAが直交変換回路85に順次Y方向に沿って格納され、次いで、この直交変換回路85から、X方向に整列するエントリ単位のデータDTEが読出され、システムバスI/F(24)を介して転送される。メモリセルマット30からシステムバスを介してSDRAM4へデータを転送する場合には、図6に示すデータの流れが反対となるだけで、同様の変換操作が直交変換回路85において行われる。
【0065】
従って、基本的に、内部システムバスと直交変換回路85との間では、ビットパラレルかつワードシリアルにデータが転送され、直交変換回路85とメモリセルマットの間では、ビットシリアルかつワードパラレルにデータが転送される。
【0066】
図7は、図1に示す直交変換回路85の構成を概略的に示す図である。図7において、直交変換回路85は2つの直交メモリ90aおよび90bを含む。これらの直交メモリ90aおよび90bは、各々、デュアルポートSRAM(この構成については後に詳細に説明する)で構成され、各々がLビットの幅を有するエントリをK個有する。エントリは、Y方向に延在し、これらのK個のエントリ各々に、エントリ単位のデータDTEが格納される。一方、X方向に沿って整列するビット位置には、アドレス単位のデータDTAが格納される。
【0067】
直交変換回路85は、さらに、直交メモリ90aおよび90bとシステムバスI/F24の間のインターフェイスをとるシステムバス直交メモリI/F(インターフェイス)91と、直交メモリ90aおよび90bと内部メモリバス77を介して入出力回路76に結合され、メモリセルマット(30)との間でのデータ転送時に直交メモリ90aおよび90bと内部メモリバス77との間のインターフェイスをとるメモリセルマット直交メモリI/F92と、直交変換回路85の内部動作に必要な情報を記憶する制御レジスタ群94と、メモリセルマットとの間のデータ転送時のアドレス情報を格納する内部レジスタ群93と、内部レジスタ群93に格納される情報に基づいてメモリセルマット(30)に対するアクセス対象のアドレスを計算して主演算回路(20)へ与えるメモリセルマットアドレス計算ユニット95を含む。
【0068】
Lビットの内部データバス96が、システムバスI/F24とシステムバス直交メモリI/F91の間に設けられ、また、システムバス直交メモリI/Fと直交メモリ90aおよび90bとの間に、Lビット幅の内部データバス97が設けられる。また、直交メモリ90aおよび90bとメモリセルマット直交メモリI/F92の間に、Kビット幅の内部データバス98が設けられる。また、内部メモリバス77は、ビット幅がJビットであり、L≦K≦Jである。
【0069】
バス96が第1のバスに対応し、バス77が第2のバスに対応する。直交メモリ90aおよび90bが、これらのバスの間のデータ列の配列を変換する。
【0070】
内部レジスタ群93は、内部システムバス7へのアクセス回数のカウント情報を格納するシステムバスアクセス回数カウンタ93aと、メモリセルマットへのアクセス回数のカウント情報を格納するメモリセルマットアクセス回数カウンタ93bを含む。これらのカウンタ93aおよび93bは、直交メモリ90aおよび90bにより、交互に利用される。
【0071】
制御レジスタ群94は、メモリセルマット30に対するエントリ位置情報を格納するエントリ位置レジスタ94aと、メモリセルマット30のビット位置情報を格納するビット位置レジスタ94bと、この直交変換回路85の活性/非活性を決定する制御ビット(イネーブルビット)を格納するイネーブルレジスタ94cと、メモリセルマット30とシステムバス7との間のデータ転送方向を設定する情報を格納するリード/ライト方向レジスタ94bを含む。このエントリ位置レジスタ94aおよびビット位置レジスタ94bは、各々、直交メモリ90aおよび90bに対してそれぞれ設けられるAレジスタおよびBレジスタを各々含む。これらのエントリ位置レジスタ94aおよびビット位置レジスタ94bは、各々、直交メモリ90aおよび90bにより共用して交互に用いることが可能であるが、ここでは、制御の簡単化のために、直交メモリ90aおよび90b各々に対して、これらのレジスタ94aおよび94bを設ける。
【0072】
エントリ位置レジスタ94aおよびビット位置レジスタ94bにおいて、メモリセルマット30におけるエントリ位置情報およびビット位置情報が指定される。メモリセルマット30へのデータ転送時、メモリセルマット30内の指定された領域の内容を直交メモリ90aおよび90bが保持しており、直交変換回路85が、データの並べ替えを行なう機能を有するリード/ライトバッファ回路として機能する。
【0073】
また、内部レジスタ群93におけるカウンタレジスタ93aおよび93bのカウント値により、直交メモリ90aおよび90bにおけるデータの格納状況が示される。
【0074】
システムバス直交メモリI/F91は、直交変換回路85と内部システムバス7との間のデータ転送を制御する機能を有し、直交変換回路85からメモリセルマット(メモリ内部バス)77へのデータ転送時には、内部システムバス7と直交メモリ90aまたは90bとの間のデータ転送を要求するバスリクエストのウェイト制御を行なう。
【0075】
メモリセルマットアドレス計算ユニット95は、メモリセルマットへのデータ転送時、エントリ位置レジスタ94aおよびビット位置レジスタ94bに格納された情報に基づいて、データ転送対象のメモリセルマットのアドレスの計算を行なって、主演算回路に転送する(図5に示すロウデコーダ74およびカラムデコーダ78に転送する)。
【0076】
このシステムバス直交メモリI/F91は、内部システムバス7を介して転送されるデータの有効データ(エントリデータ)はLビットに限定されず、mビット幅のエントリ単位のデータが転送される。この1回のバスアクセス時に転送されるエントリデータのビット幅を有効ビット幅と称す。また、有効ビット幅のデータを単位データと以下称す。また、有効ビット幅とこれを指定する有効ビット幅情報とを共に、符号mで示す。
【0077】
内部システムバス7上を転送されるデータの有効ビット幅mが、有効ビット幅レジスタ94eに格納される。この有効ビット幅レジスタ94eに格納される有効ビット幅情報mに従って、システムバス直交メモリI/F91は、内部システムバス7を介して複数のデータが並列に転送される場合、直交メモリ90aおよび90bにおいて、各単位データを異なるエントリに格納するようにそのデータ転送経路を設定する。
【0078】
一方、メモリセルマット直交メモリI/F92は、メモリセルマット30へのデータ転送時、直交メモリ90aおよび90bから並列に読出されるK個のエントリのデータビットを内部データバス98を介して受け、内部メモリバス77を介して転送する。内部メモリバス77のビット幅Jが、直交メモリ90aおよび90bに含まれるエントリの数Kよりも多きい場合には、メモリセルマット直交メモリI/F92は、この内部メモリバス77の上の有効データが転送されるバス線を選択するとともに、非選択バス線上に拡張ビット(無効データビット)を転送する。
【0079】
システムバス直交メモリI/F91において、データ転送経路を設定し、設定された経路に従って直交メモリ90aおよび90b内において、単位データの有効ビット幅に応じてエントリ選択シーケンス(エントリの書込/読出シーケンス)を変更する。これにより、内部システムバス7を介して転送されるデータのビット幅が、たとえば32ビット、16ビット、および8ビットと異なる場合においても、各語構成に応じて、システムバス直交メモリI/F91においてデータ転送経路を設定して、単位データを設定された経路に従って転送し、また、直交メモリ内のエントリ選択態様を調整することにより、内部システムバス7の全バス線を利用してデータを転送することができ、効率的なデータ転送を実現することができる。
【0080】
図8は、図7に示す直交メモリ90aおよび90bに含まれるメモリセルの構成の一例を示す図である。直交メモリ90aおよび90bに含まれるメモリセルは、デュアルポートSRAMセルで構成される。図8において、直交メモリセルは、交差結合される負荷PチャネルMOSPQ1およびPQ2と、交差結合されるデータ記憶用のドライブNチャネルMOSトランジスタNQ1およびNQ2を含む。この直交メモリセルは、通常のSRAMセルと同様に、インバータラッチ(フリップフロップ素子)をデータ記憶素子として備え、このフリップフロップ素子において、ストレージノードSN1およびSN2に相補データを記憶する。
【0081】
直交メモリセルは、さらに、ワード線WLA上の信号電位に応答してストレージノードSN1およびSN2をそれぞれビット線BLAおよび/BLAに結合するNチャネルMOSトランジスタNQA1およびNQA2と、ワード線WLB上の信号電位に応答してストレージノードSN1およびSN2をビット線BLBおよび/BLBに結合するNチャネルMOSトランジスタNQB1およびNQB2を含む。
【0082】
ワード線WLAおよびWLBが直交して配置され、ビット線BLAおよび/BLAが、ビット線BLBおよびBLBが直交して配置される。
【0083】
ワード線WLAおよびビット線BLAおよび/BLAで構成される第1のポート(トランジスタNQA1,NQA2)とワード線WLBおよびビット線BLBおよび/BLBで構成される第2のポート(トランジスタNQB1,NQB2)をそれぞれ別々の直交メモリI/Fに結合する。たとえば、第1のポートを内部システムバスとのインターフェイス用のポートとして利用し、第2のポートをメモリバスへのアクセス用のポートとして利用する。これにより、直交メモリにおいて行および列の変換を行なって、データアクセスを行なうことができ、データ配列を変換することができる。
【0084】
図9は、図7に示す直交変換回路の、内部システムバス7からメモリセルマット30へのデータ転送時の動作を示すフロー図である。以下、図9を参照して、図7に示す直交変換回路85の動作について説明する。ただし、以下の説明においては、直交メモリ90aに先にデータが格納され、格納データの転送をメモリセルマットに対して実行し、この直交メモリ90aからメモリセルマットに対するデータ転送と並行して直交メモリ90bにデータが格納される場合のデータ転送動作について説明する。
【0085】
フェーズ1:
データ転送開始時、まずホストCPUまたはDMAコントローラから直接または主演算回路内のコントローラから、書込対象の先頭のビット位置またはエントリ位置を示す情報を、それぞれ、ビット位置レジスタ94bおよびエントリ位置レジスタ94aに設定する。このビット位置は、主演算回路のメモリセルマットのワード線アドレスに対応し、またエントリ位置は、メモリセルマット30のビット線アドレスに対応する。ビット位置レジスタ94bにおいては、直交メモリ90aの保持するデータについてのビット位置情報が格納され、また、ビット位置レジスタ94bのBレジスタには、直交メモリ90bの保持するデータのヒット位置情報が格納される。したがって、これらの直交メモリ90aおよび90bのエントリ数Kがメモリセルマット30のエントリ数Mよりも小さく、メモリセルマット30のエントリ数Mとこれらの直交メモリ90aおよび90bのエントリ数Kとの間に、M=2・K・I(Iが任意の整数)の関係を満たす場合、直交メモリ90bの転送データに対するビット位置情報は、直交メモリ90aに対するビット位置情報に対しKだけ増分された値がビット位置レジスタ94bのBレジスタに格納される。
【0086】
また、制御レジスタ群94の有効ビット幅レジスタ94aに、内部システムバス7上を転送される単位データ(メモリセルマットのエントリ単位のデータ)のビット幅(有効ビット幅)mを示す情報が格納される。この場合、内部システムバス7上を並列に転送される単位データの数を示す情報が格納されてもよい。また、リード/ライト方向レジスタ94dに、内部システムバス7からメモリセルマット30へのデータ転送、すなわち書込を示すビットを設定する。
【0087】
この後、イネーブルレジスタ94cに、イネーブルビット(制御ビット)を設定し、直交変換回路85をイネーブルする。このイネーブルレジスタ94cのイネーブルビットのアサートにより、内部レジスタ群93に含まれるカウンタ93aおよび93bのカウント値が0に初期化される(ステップST1)。
【0088】
フェーズ2:
システムバスI/F24から、システムバス直交メモリI/F91経由で、直交メモリ90aに対し、転送データが書込まれる。この直交メモリ90aへの書込データには、有効ビット幅情報mに従って、1つまたは複数のエントリ単位のデータ(単位データ)DTEが含まれており、この有効ビット幅情報mに従ってX方向に順次、直交メモリ90aのエントリに単位データが格納される。転送データに複数のエントリ単位のデータ(以下、、単位データと称す)DTEが含まれる場合、直交メモリ90aの異なるエントリに順次並列して転送された単位データが格納される。
【0089】
この直交メモリ90aにデータが書込まれるごとに(システムバス7からの転送データすべてが書込まれるごと)に、システムバスアクセス回数カウンタレジスタ93aのカウント値がインクリメントされる(ステップST2)。このシステムバスアクセス回数カウンタレジスタ93aのインクリメント単位は、有効ビット幅情報mに従って設定される。たとえば、内部システムバス7が32ビットバスであり、エントリ単位の単位データDTEが8ビットの場合、1回のシステムバスアクセスにより、4エントリのデータが直交メモリに書込まれることになり、システムバスアクセス回数カウンタ93aのカウント値は4インクリメントされる。このシステムバスアクセス回数カウンタのカウント値のインクリメント量は、一般的に、L/mで表わすことができる。
【0090】
フェーズ3:
直交メモリ90aの記憶内容がフル状態(一杯状態)となるまで、すなわち、システムバスアクセス回数カウンタレジスタ93aのカウント値が、直交メモリ90aのエントリ数Kに到達するまで、システムバス直交メモリI/F91を介してデータの書込が行なわれる(ステップST3)。この直交メモリ90aへ内部システムバス7からの転送データを書込む間、直交メモリ90bはウェイト状態にある(ステップST11)。
【0091】
フェーズ4:
直交メモリ90aに対し、K個の単位データDTEが内部システムバス7からシステムバスI/F24およびシステムバス直交メモリI/F91を介して書き込まれると、システムバスアクセス回数カウンタ93aのカウント値が初期値の0となる。このシステムバスアクセス回数カウンタ93aの初期値への復帰により、直交メモリ90bがイネーブルされ、直交メモリ90bに対するデータの書込が可能となる。また、これと並行して、直交メモリ90aが、リードモードに設定され、メモリセルマット30に対するデータ転送可能状態とされる(ステップST4)。
【0092】
フェーズ5:
直交メモリ90aおよび90bの切換により、システムバス直交メモリI/F91は、内部システムバス7からシステムバスI/F24を介して与えられたデータを、直交メモリ90bに順次格納する。システムバスアクセス回数カウンタ93aは、直交メモリ90aへのデータ書込時と同様に、そのカウント値がインクリメントされる(ステップST12)。
【0093】
この直交メモリ90bへの書込と並行して、メモリセルマット直交メモリI/F92を介して、X方向に整列するアドレス単位のデータDTAが読出され、内部メモリバス77を介して主演算回路内の入出力回路76へ転送されて、メモリセルマット30のK個のエントリに格納される。
【0094】
このメモリセルマット30へのデータ転送時において、メモリセルマットアドレス計算ユニット95は、エントリ位置レジスタ94aのAレジスタおよびビット位置レジスタ94bのAレジスタの格納値およびメモリセルマットアクセス回数カウンタレジスタ93bの格納値に基づいて、転送対象のメモリセルマット30のアドレスを計算し、このメモリセルマット直交メモリI/F92からのデータ送出に合わせてメモリセルマットの対するアドレス(ビット位置およびエントリ位置アドレス)を出力する。また、このメモリセルマット30へのデータ送出に合わせて、メモリセルマット直交メモリI/F92の制御のもとに、メモリセルマットアクセス回数カウンタ93bのカウント値が増分される。このメモリセルマットアクセス回数カウンタ93bのカウント値のインクリメント量は、有効ビット幅情報mの値にかかわらず、1ずつ増分される(ステップST5)。
【0095】
フェーズ6:
直交メモリ90aの格納内容のメモリセルマット30に対するデータ転送が行なわれ、このメモリセルマット30へのデータ転送と並行して、直交メモリ90bに、その記憶内容がフル状態となるまで、内部システムバス7からの転送データの書込が実行される(ステップST6、ST13)。
【0096】
直交メモリ90bがフル状態、(システムバスアクセス回数カウンタ93aのカウント値がKに到達したとき)および直交メモリ90aがエンプティ(空状態)となったとき(メモリセルマットアクセス回数カウンタ93bのカウント値が有効ビット幅mに到達したとき)、システムバス7から必要なデータが、すべて転送されたかの判定が行なわれる(ステップST7)。
【0097】
まだ内部システムバス7からメモリセルマットに対する書込データがすべて転送されていない場合、直交メモリ90aが書込モードに設定され、また直交メモリ90bが、データ読出を示すリードモードに設定される(カウンタ93aおよび93bのカウントアップに従って)。
【0098】
また、システムバスアクセス回数カウンタ93aおよびメモリセルマットアクセス回数カウンタ93bのカウント値が0に初期化される(ステップST8)。
【0099】
フェーズ7:
転送データが残っている場合には、エントリ位置レジスタ94aのAレジスタの格納値が2・K増分されるか、または、また、エントリ位置レジスタ94aのBレジスタの格納値に1加算した値に設定される。ビット位置レジスタ94bのAレジスタの格納値がL増分されるかまたはそのBレジスタの値に1加算した値に設定される(ステップST9)。有効ビット幅がmビットであり、Lビットよりも小さい場合においても、メモリセルマットにおいて単位データ格納領域としてLビット幅を確保する。
【0100】
直交メモリ90aにおいては、再びステップST2からの処理が実行され、内部システムバス7から転送されるデータが、直交メモリ90aの先頭位置から順次格納される。
【0101】
一方、直交メモリ90bにおいては、読出モードに設定され、その格納データがメモリセルマット30へ転送される(ステップST14)。この直交メモリ90bからのメモリセルへのデータ転送時、直交メモリ90aからメモリセルマット30へのデータ転送と同様の処理が行なわれ、直交メモリ90bの保持データが空になるまでデータが転送される(ステップST15)。この直交メモリ90bの記憶データがすべて転送され、必要なデータの転送が完了した場合、直交メモリの90bの処理は終了する。
【0102】
一方、必要な転送データが残っている場合には、再び、エントリ位置レジスタ94aのBレジスタのエントリ位置情報が2・K更新され、また、ビット位置レジスタ94bのBレジスタの格納値が、L更新される。
【0103】
この転送時の直交メモリ90aおよび90bの格納状況の判定は、メモリセルマットアクセス回数カウンタ93bのカウント値が、有効ビット幅mに等しくなると、直交メモリ90aまたは90bの格納データが全てメモリセルマット30へ転送されたと判断される。また、エントリ位置レジスタ94aの格納値が、メモリセルマットのエントリMを越えたときには、ビット位置レジスタ94bのAレジスタおよびBレジスタの格納値が、1増分され、次の位置のワード線をメモリセルマット30内において選択する状態とし、また、エントリ位置レジスタ94aのAレジスタおよびBレジスタの格納値が0およびKにそれぞれ設定される。
【0104】
直交メモリ90bにおいては、その処理がステップST17からステップST4に移行し、次の転送データを待つ。
【0105】
上述のフェーズ2からフェーズ7までの動作を繰返し実行して、直交メモリ90aおよび90bに対してインタリーブ態様でデータの書込/読出を行なって、データを転送する。すべての必要なデータの転送が完了したと判定されると(システムバスI/F24からの転送要求がデアサートされることにより反転される)、データ転送が終了し、イネーブルレジスタ94cのイネーブルビットがデアサートされる。これにより、単位データDTEをその有効ビット幅にかかわらず内部システムバス7の全バス線を利用して転送し、直交変換回路85において、ビットシリアルかつワードパラレルなデータに変換してメモリセルマット30に転送することができる。
【0106】
図10は、SDRAM4から内部システムバス7を介してメモリセルマット30へデータを転送するためのデータの流れを模式的に示す図である。図10においては、内部システムバスのビット幅Lが32ビットであり、有効ビット幅情報mが8ビットを示し、エントリ単位のデータ、すなわち単位データDTEが4つ並列に、システムバスを介して転送される場合のデータの流れを示す。
【0107】
SDRAM4においては、8ビットデータA0…A39が格納される。1回のアクセスにおいて、図10の水平方向に整列する4つのデータがSDRAM4から並列に読出される。まず、直交メモリ90aへ、SDRAM4からの転送データが格納される。直交メモリ90aにおいては、単位データDTEが、有効ビット幅情報mに従って、それぞれ異なるエントリに格納される。図10においては、直交メモリ90aにおいて、K個のエントリ(各32ビット)において、データA0−A31が格納された状態を示す。この状態において、直交メモリ90aにおいては、K個のエントリすべてに単位データが格納された状態であり、次のSDRAM4からの転送データA32−A35は、直交メモリ90bに格納される。
【0108】
この直交メモリ90Bへの転送データ(A32−A35)の格納と並行して、直交メモリ90aから、エントリパラレルかつビットシリアルにデータが順次出力される。すなわち、単位データA0−A31の同一桁のビットが並列に選択されて転送され、メモリセルマット30の対応のエントリにそれぞれ格納される。したがって、このメモリセルマット30へ、直交メモリ90aからのデータ転送時において、8回、直交メモリ90aからメモリセルマット30へデータを転送することにより、メモリセルマット30において、データA0−A31がそれぞれ異なるエントリ内に格納される。
【0109】
また、直交メモリ90bにおいて、K個の単位データDTEが格納されると、直交メモリ90bはフル状態とされ、直交メモリ90bからメモリセルマット30の対応のエントリへ、データA32−A63が、エントリパラレルかつビットシリアルな態様で転送されて格納される。この直交メモリ90bからメモリセルマット30へのデータ転送時には、SDRAM4から直交メモリ90aに対してデータが転送される(転送データが残っている場合)。
【0110】
上述のように、システムバスにおいてはバス幅L(32ビット)すべてを利用してデータを転送し、直交メモリ90aからメモリセルマット30へのデータ転送時には、直交メモリ90bへのSDRAM4からデータが転送される。単位データDTEのビット幅(有効ビット幅)mが8ビットの場合でシステムバスのバス幅が32ビットの場合、SDRAM4から直交メモリ90aまたは90bへのフル状態となるデータ転送サイクル数は8サイクルであり、また、直交メモリ90aまたは90bからメモリセルマット30へのデータ転送に要するサイクル時間は8サイクルである。したがって、内部システムバスにおけるデータ転送において、空き(アイドル)期間を生じさせることがなく、効率的なデータ転送を実現することができる。直交メモリ90aおよび90bおよびメモリセルマット30のメモリセルは高速のSRAMセルであり、SDRAM4のクロックサイクルに従って十分に時間的余裕を持って、直交変換回路85とメモリセルマット30の間でデータの転送を行なうことができる。
【0111】
なお、メモリセルマット30からシステムバス7に対してデータを転送する場合には、リード/ライト方向レジスタ49dにデータ読出を示すビットが設定され、上述の書込ビット設定時の転送動作と逆の方向にデータが流れる。直交メモリ90aおよび90bにおいては、書込/読出動作が上述の転送動作の説明と逆となるものの、アドレス制御については同様の制御が行われて、データの転送が行われる。
【0112】
図11は、図7に示す直交変換回路85のデータ転送に関連する部分の構成をより具体的に示す図である。図11において、直交変換回路85は、イネーブルレジスタ94cに格納されるイネーブルビットENとリード/ライト方向レジスタ94dに格納されるデータ転送方向指示ビット(書込/読出指示ビット)R/Wに従って転送方向制御信号TRDを生成し、システムバスアクセス回数カウンタ93aおよびメモリセルマットアクセス回数カウンタ93bの活性化シーケンスを設定するとともに、内部メモリバス77および内部データバス96のバス占有状況をモニタするアクセスシーケンス制御回路100と、システムバスアクセス回数カウンタ93aからのカウント値と有効ビット幅レジスタ94eに格納される有効ビット幅情報mとに従ってH方向のワード線WLHを選択するHアドレスHRAを発生するHアドレス発生回路102と、メモリセルマットアクセス回数カウンタ93bのカウント値に従ってメモリセルマット転送用のV方向ワード線WLVを選択するVアドレスVRAを発生するVアドレス発生回路104を含む。
【0113】
アクセスシーケンス制御回路100は、イネーブルレジスタ94cのイネーブルビットENがアサートされると、リード/ライト方向レジスタ94dに格納される転送方向指示ビットR/Wに従ってシステムバスアクセス回数カウンタ93aおよびメモリセルマットアクセス回数カウンタ93bのいずれを先に活性化するかを設定するとともに、直交メモリ90aおよび90bにおいて、いずれの方向からのデータ転送を先に実行するかを制御する転送方向制御信号TRDを生成する。
【0114】
H(水平)方向ワード線WLHが、直交メモリ90aおよび90bにおいて、各エントリに対応して配置され、V(垂直)方向ワード線WLVが、複数のエントリに共通に配置される。内部システムバス77との間でのデータ転送時には水平方向ワード線WLHが選択され、メモリセルマット30との間のデータ転送時には、垂直方向ワード線WLVが選択される。
【0115】
Hアドレス発生回路102が、システムバスアクセス回数カウンタ93aのカウント値を初期アドレスとして、有効ビット幅レジスタ94eからの有効ビット幅情報mに従ってその初期値から有効幅ビット情報mで決定される回数、すなわちL/m回、水平方向ワード線(エントリ)を指定するHアドレスをインクリメントする。選択された各エントリに対して1つの単位データが格納される。
【0116】
直交メモリ90aおよび90bは同一構成を有するため、図11においては、直交メモリ90aの構成を代表的に示す。直交メモリ90aは、直交メモリセルが行列状に配列される直交メモリセルアレイ110と、直交メモリセルアレイ110の水平方向ワード線WLHを選択するHワード線選択回路111と、直交メモリセルアレイ110の垂直方向のワード線WLVを選択するVワード線選択回路112と、有効ビット幅情報mに応じて内部データバス97と選択された水平方向ワード線WLH上の直交メモリセルとの間のデータ転送を有効ビット幅単位で実行するH入出力回路113と、内部データバス98と選択された垂直方向ワード線WLVに接続されるメモリセルとの間でデータの転送を行なうV入出力回路114と、HアドレスHRA、有効ビット幅情報mおよび転送方向制御信号TRDに従って、Hワード線選択回路111およびH入出力回路113の動作を制御するH系制御回路115と、VアドレスVRAと転送方向制御信号TRDに従って、Vワード線選択回路112およびV入出力回路114の動作を制御するV系制御回路116を含む。
【0117】
H系制御回路115は、有効ビット幅情報mに従って、H入出力回路113における有効ビット幅単位でのデータの入出力の制御を行ない、また、Hワード線選択回路111を制御して、1回のバスアクセスサイクルに含まれる単位データDTEの数に応じた回数水平方向ワード線WLHを選択状態へ駆動する。
【0118】
V系制御回路112は、Vワード線選択回路112を制御して、有効ビット幅情報mで示される回数、垂直方向ワード線を選択する。また、V入出力回路114は、V系制御回路116の制御の下に、選択された垂直ワード線WLVに接続されるメモリセルとの間でデータを転送する。
【0119】
これらのH系制御回路115およびV系制御回路116は、互いに、Hアドレス発生回路102およびVアドレス発生回路104のアドレスHRAおよびVRAの最上位ビットに従って活性化される。すなわち、これらのHアドレスHRAおよびVアドレスVRAの最上位ビットを、直交メモリ90aおよび90bの活性化信号として利用する。したがって、Hアドレス発生回路102およびVアドレス発生回路104は、それぞれ、システムバスアクセス回数カウンタ93aおよびメモリセルマットアクセス回数カウンタ93bのカウント値の最上位ビット位置に、チップ選択信号に相当する直交メモリ選択ビットを付加して、HアドレスHRAおよびVアドレスVRAを発生する。
【0120】
また、これらのH系制御回路115およびV系制御回路116は、それぞれのアドレス信号HRAおよびVRAが最終値に到達した場合、自身の動作を制御し、次の動作制御権を相手方に手渡す。すなわち、Hワード線選択回路111が、最終水平方向のワード線を選択して単位データの転送を完了すると、H系制御回路115は、自身の動作を停止して、次に、V系制御回路116をイネーブルする。これにより、直交メモリ90aおよび90bにおいて、同一位置のデータに対する書込および読出の競合が生じるのを防止する。
【0121】
直交メモリ90aおよび90bのバスの占有状態は、また、アクセスシーケンス制御回路100が、カウンタ93aおよび93bが初期化されたかどうかを示すカウントアップ信号に基づいてモニタする。アクセスシーケンス制御回路100は、これらのカウンタ93aおよび93bがともにカウントアップが完了するまで、次のカウント動作を停止する。これにより、直交メモリ90aおよび90bにおいて、一方が、システムバスとのデータ転送(水平方向データ転送)を行なっているときに、別の直交メモリが、データの水平方向転送を開始するのを防止する。
【0122】
直交メモリ90aおよび90b内においては、H系制御回路115およびV系制御回路116によるハンドシェイク態様の制御により、内部での、必要な数のワード線の選択が完了した後に、水平方向と垂直方向のワード線選択動作が切換えられる。
【0123】
システムバス直交メモリI/F91は、Hアドレス発生回路102から出力されるアドレスタイミング制御信号HRAFと有効ビット幅レジスタ94eからの有効ビット幅情報mとに従って、経路制御信号を生成する経路制御回路120と、この経路制御回路120からの経路制御信号に従って、データバス96および97の間のデータ転送経路を設定し、設定された経路に従ってデータを転送する経路設定回路122を含む。
【0124】
Hアドレス発生回路102から発生されるアドレスタイミング制御信号HRAFは、HアドレスHRAの変化よりも早いタイミングで活性化される信号である。経路制御回路120は、このアドレスタイミング制御信号HRAFに従って経路設定回路122におけるデータ転送経路を設定する。これにより、直交メモリ90aおよび90b内において、水平方向ワード線選択時、H入出力回路113とデータバス96の間の接続経路をワード線選択より早いタイミングで設定する。
【0125】
Kビットの内部データバス98は、メモリセルマット直交メモリI/F92を介して内部メモリバス77に結合される。この内部データバス98と内部メモリバス77のビット幅KおよびJが等しい場合には、メモリセルマット直交メモリI/F92は、この内部データバス98を内部メモリバス77に接続し、かつデータ転送のタイミング調整を行う回路として機能する。
【0126】
アクセスシーケンス制御回路100からの転送方向制御信号TRDに従って、H入出力回路113およびV入出力回路114において入力回路(ライト回路)および出力回路(リード回路)のいずれが活性化されるかが決定される。
【0127】
図12は、図11に示すシステムバス直交メモリI/Fに含まれる経路設定回路122と直交メモリ90aおよび90bのH入出力回路113の構成を概略的に示す図である。図12においては、直交メモリ90aおよび90bのH入出力回路113が同一構成を有するため、1つの直交メモリのH入出力回路113を代表的に示す。
【0128】
また、図12においては、システムバスが32ビット幅であり、有効ビット幅mの最小値は8ビット、転送単位データのビット幅候補は、8ビット、16ビットおよび32ビットの場合の構成を示す。有効ビット幅情報mと内部システムバスのバス幅Lの関係に応じて、この構成は、適切に変更または拡張される。
【0129】
内部データバス96は、各々が8ビット幅のサブデータバス96a−96dを含み、内部データバス97も、各々が8ビット幅のサブデータバス97a−97dを含む。この内部データバス96および97のデータバスのビット幅は、有効ビット幅情報mが指定する有効ビット幅mの最小値により決定される。
【0130】
H入出力回路113は、これらのサブデータバス97a−97dそれぞれに対して設けられるリード/ライト回路113a−113dを含む。リード/ライト回路113aは、活性化信号ENAに従って活性化され、リード/ライト回路113bは、活性化信号16/32・ENAに従って活性化される。活性化信号16/32・ENAは、有効ビット幅情報mが16ビットまたは32ビットを示すときに、活性化信号ENAと並行して活性化される。リード/ライト回路113cおよび113dは、それぞれ活性化信号32・ENAに従って活性化される。この活性化信号32・ENAは、有効ビット幅情報mが32ビットを示すときに、活性化信号ENAと並行して活性化される。これらの活性化信号は、図11に示すH系制御回路115から与えられる。
【0131】
これらのリード/ライト回路113a−113dにおいて、たとえばセンスアンプで構成されるリード回路と、例えばライトドライバで構成されるライト回路のいずれが活性化されるかは、図11に示すアクセスシーケンス制御回路100からの転送方向制御信号TRDに従って決定される。
【0132】
このH入出力回路113において、8ビット単位でリード/ライト回路113a−113dを選択的に活性化することができ、直交メモリセルアレイ110に対し、8ビットデータの入出力、16ビットデータの入出力および32ビットデータの入出力を行なうことができる。8ビットデータおよび16ビットデータの転送時、1回のバスアクセスサイクルで転送される単位データが、異なるエントリにおける同一位置に格納される。
【0133】
経路設定回路122は、32ビットデータ転送制御信号m32に従ってサブデータバス96a−96dを、サブデータバス97a−97dにそれぞれ接続する32ビットデータ転送部122aと、16ビットデータ転送制御信号m16aおよびm16bに従って、サブデータバス96aおよび96bを、それぞれサブデータ97aおよび97bに接続しかつサブデータバス96cおよび96dをサブデータバス97aおよび97bに結合する16ビットデータ転送部122bと、8ビットデータ転送制御信号m8a−m8dに従って、サブデータバス96a−96dを、サブデータバス97aに順次結合する8ビットデータ転送部122cを含む。
【0134】
32ビットデータ転送部122aは、サブデータバス96a−96dそれぞれに対して設けられ、32ビットデータ転送制御信号m32に従って選択的に導通する8ビットトランスファーゲートTX1−TX4を含む。この32ビットデータ転送制御信号m32は、1システムバスアクセスサイクルにおいて1回活性化される。
【0135】
16ビットデータ転送部122bは、16ビットデータ転送制御信号m16aに従って、サブデータバス96aおよび96bを、それぞれサブデータバス97aおよび97bに結合する8ビットトランスファーゲートTX5およびTX6と、16ビットデータ転送制御信号m16bに従って、サブデータバス96cおよび96dを、それぞれサブデータバス97aおよび97bに結合する8ビットトランスファーゲートTX7およびTX8を含む。これらの16ビット転送制御信号m16aおよびm16bは、1システムバスアクセスサイクルにおいて順次1回活性化される。
【0136】
8ビットデータ転送部122cは、サブデータバス96aを8ビットデータ転送制御信号m8aに従ってサブデータバス97aに接続する8ビットトランスファーゲートTX9と、8ビットデータ転送制御信号m8bに従ってサブデータバス96bをサブデータバス97aに結合する8ビットトランスファーゲートTX10と、8ビット転送制御信号m8cに従って、サブデータバス96cのサブデータバス97aに接続する8ビットトランスファーゲートTX11と、8ビット転送制御信号m8dに従って、サブデータバス96dをサブデータバス97aに結合する8ビットトランスファーゲートTX12を含む。これらの8ビットデータ転送制御信号m8a−m8dは、1つのシステムバスアクセスサイクルにおいて順次1回活性化される。
【0137】
これらのデータ転送制御信号m32、m16a,m16bおよびm8a−8dは、図11に示す経路制御回路120から生成される。
【0138】
したがって、有効ビット幅情報mが32ビットを示すとき、内部データバス96のサブデータバス96a−96dが、それぞれ、サブデータバス97a−97dに結合されて、それぞれに8ビットデータが伝達される。リード/ライト回路113a−113dは、すべて活性化される。したがって、直交メモリセルアレイ110において、水平方向ワード線WLHが選択された場合、この水平方向ワード線WLHに接続される1エントリの32ビットのメモリセルに対し並列にデータAの転送(書込または読出)が行われる。
【0139】
有効ビット幅情報mが16ビットを示すときには、まず、サブデータバス96aおよび96bが、サブデータバス97aおよび97bにそれぞれ接続される。リード/ライト回路113aおよび113bが並行して活性化され、一方、リード/ライト回路113cおよび113dは、非活性状態にある。したがって、データ書込モード時、サブデータバス97aおよび97bに伝達された16ビットデータが、直交メモリセルアレイ110において格納される。このデータ格納後、次いで、転送制御信号m16bが活性化され、サブデータバス96cおよび96dがサブデータバス97aおよび97bに結合される。このとき、直交メモリセルアレイ110において、別の水平方向ワード線が選択され、リード/ライト回路113aおよび113bにより、転送データが、選択水平方向ワード線に接続されるメモリセルに書込まれる。したがって、直行メモリセルアレイ10内において16ビットデータAおよびBが、順次、異なるエントリに格納される(読出モード時にはデータが読出される)。
【0140】
有効ビット幅情報mが8ビットを示すときには、まず、転送制御信号m8aにより、サブデータバス96aがサブデータ97aに結合される。このとき、リード/ライト回路113aが活性化され、リード/ライト回路113bないし113dは、非活性状態に維持される。直交メモリセルアレイ110において、水平方向ワード線が選択状態へ駆動されると、選択されたメモリセルとの間で、最初の8ビットデータAの転送が行われる。以降、転送制御信号m8b−m8dが、順次活性化されると、サブデータバス96b−96dが、それぞれ順次、サブデータバス97aに結合される。このサブデータバスの接続に応じて、直交メモリセルアレイ110において順次異なる水平方向ワード線が選択され、異なる水平方向ワード線に接続されるメモリセルとの間で8ビットデータB、CおよびDが順次転送される。
【0141】
SDRAMにおいて1回のバスアクセスで複数エントリのデータを転送し、直交変換回路85内において、単位データを順次異なるエントリに格納する。この場合、直交変換回路85において、L/m回の水平ワード線選択動作が必要となる。しかしながら、直交変換回路における直交メモリは、SRAMであり、高速で直交メモリセルの選択およびデータの内部転送(書込/読出)を行なうことができ、外部のSDRAMとの間でエントリごとに単位データを順次転送する場合に比べて高速のデータ転送を実現することができる。
【0142】
このシステムバス直交メモリI/F91において、水平方向ワード線の複数回選択におけるメモリセルデータ転送の速度と、外部のSDRAMとの間の転送速度の差を緩衝するためにバッファメモリが設けられてもよい。たとえば、システムバスが32ビットバスであり、単位データが8ビットの場合、直交変換回路において4回水平方向ワード線を選択状態へ駆動することが必要となる。最大4段のFIFO型の23ビット幅バッファメモリを設けることにより、直交メモリの1アクセスサイクル時間とシステムバスの1データ転送サイクル(バスアクセスサイクル)時間が同じ場合でも、このバッファメモリを利用することにより、システムバスの転送サイクルに影響を及ぼすことなく直交変換回路内において異なるエントリを複数回選択して、データの転送を行なうことができる。
【0143】
[変更例]
図13(A)および図13(B)は、この発明の実施の形態1の変更例の直交変換回路85の要部の構成を概略的に示す図である。図13(A)において、直交メモリ90aおよび90bと内部メモリバス77の間のインターフェイスをとるメモリセルマット直交メモリI/F92において、バス幅変換回路130が設けられる。このバス幅変換回路130は、メモリセルマットアクセス回数カウンタ93bからのカウント値CNTと有効ビット幅情報mとに従って、内部データバス98と内部メモリバス77の間の接続経路を切換える。内部データバス98はKビットであり、内部メモリバス77のビット幅はJであり、内部メモリバス77のビット幅Jは、内部データバス98のビット幅Kよりも大きい。
【0144】
図13(B)は、この図13(A)に示すバス幅変換回路130の構成をより具体的に示す図である。図13(B)において、内部メモリバス77は、各々Kビットのバス幅を有するサブバス77S0−77Skに分割される。これらのサブバス77S0−77Skそれぞれに対応して各々Kビット幅のバスドライブ回路BDK0−BDKkが設けられる。バスドライブ回路BDK0−BDKkは、共通に、内部データバス98に結合される。これらのバスドライブ回路BDK0−BDKkの活性/非活性を制御するために、接続制御回路132が設けられる。この接続制御回路132は、図13(A)に示すメモリセルマットアクセス回数カウンタ93bからのカウント値CNTと有効ビット幅情報mとに従って、バスドライバ活性化信号ACT0−ACTkおよび補のバスドライバ活性化信号ZACT0−ZACTkを生成する。
【0145】
バスドライブ回路BDK0−BDKkは、同一の構成を有し、与えられる活性化信号が異なるだけであるため、これらのバスドライブ回路BDK0−BDKkにおいて同一の参照番号をその構成要素に対して付す。
【0146】
バスドライブ回路BDK0−BDKkの各々は、対応のバスドライバ活性化信号ACT0−ACTkの活性化時活性化され、内部データバス98と対応のサブデータバス77S0−77Skの間でデータを転送するバスドライバ133と、対応のサブデータバス77S0−77Skに結合される抵抗素子134と、対応の補のバスドライバ活性化信号ZACT0−ZACTkに従って選択的に導通し、対応の抵抗素子134を接地ノードに結合するスイッチング素子135を含む。
【0147】
抵抗素子134およびスイッチング素子135の直列体は、スイッチング素子135の導通時、対応のサブバス77S0−77Skの各バス線を接地ノードに結合する。
【0148】
接続制御回路132は、メモリセルマットアクセス回数カウンタのカウント値CNTが有効ビット幅情報mに一致するごとに、活性化信号ACT0−ACTkを順次活性化する。バスドライバ133の活性化時、対応のスイッチング素子135は、非導通状態であり、内部データバス98から対応のサブデータバス77S0−77Skへのデータ転送時、有効データが転送される。非選択サブデータバスにおいては、スイッチング素子135が導通状態であり、抵抗素子134を介して接地ノードに結合される。
【0149】
図14は、図13(A)および(B)に示すバス幅変換回路130による内部メモリバス77におけるデータ転送の状態を模式的に示す図である。図14において、サブバス77Siに有効データが転送され、残りのサブバス77S0…77S(i−1)、77S(i+1)…77Skにおいては、データ“0”が転送される。これにより、直交メモリ90aおよび90bとメモリセルマットの間のデータ転送時、内部データバス98と内部メモリバス77のバス幅が異なる場合においても、バス幅を変換してKビットの有効データを転送し、メモリセルマットにおいて対応のエントリ内に格納することができる。
【0150】
なお、バスドライバ133を双方向バスドライバで構成することにより、メモリセルマットから直交メモリへのデータ転送時においても、メモリセルマットから直交メモリへデータをKビット単位で転送することができる。ただし、エントリ位置情報に従って最初に活性化されるバスドライバに対する活性化信号を設定する。
【0151】
以上のように、この発明の実施の形態1に従えば、内部システムバスとメモリセルマットとの間のデータ転送時において、メモリセルマットのエントリ単位のデータのビット幅に応じて、直交変換回路において、直交メモリの1または複数のエントリ内に格納しており、システムバス上の転送データの単位データのビット幅に係らず、直交メモリにおいて正確にエントリパラレルかつビットシリアルなデータ列に変換することができ、また、その逆の変換も行うことができる。したがって、転送データの有効ビット幅がシステムバスのバス幅よりも小さい場合においても、1回のシステムバスアクセス時に複数の単位データを並行して転送することができ、システムバスアクセス回数を低減することができる。
【0152】
また、メモリセルマットへ1回のアクセスサイクルで転送されたデータをビットシリアルに転送してメモリセルマット内で転送データの並べ替えを行なう場合に比べて、メモリセルマットとの間のデータ転送に要するサイクル数を低減することができ、データ転送サイクル時間が処理能力向上に対するボトルネックとなるのを防止することができ、高速処理を実現する事ができる。
【0153】
[実施の形態2]
図15は、この発明の実施の形態2に従う直交変換回路85の構成を概略的に示す図である。図15においても、直交メモリ90aおよび90bは同一構成を有するため、直交メモリ90aの構成を代表的に示す。
【0154】
この図15に示す直交変換回路85は以下の点で、図11に示す実施の形態1に従う直交変換回路とその構成が異なる。
【0155】
すなわち、直交メモリ90aにおいて、直交メモリセルアレイ210は、エントリの延在方向に沿って、複数のメモリブロックBKa−BKdに分割される。この分割ブロック数は、有効ビット幅情報mの最小値のビット幅に応じて決定され、メモリブロックBKa−BKdはそれぞれ、最小値の有効ビット幅に等しいビット幅をそれぞれ有する。
【0156】
H入出力回路213は、メモリブロックBK0−BK3それぞれに対応して設けられる入出力回路を含み、各メモリブロック単位で、その活性/非活性が有効ビット幅情報に応じて制御される。
【0157】
また、垂直方向ワード線VWLを選択するVワード線選択回路212は、V系制御回路216によりイネーブルされ、Vアドレス発生回路204からの垂直ワード線アドレスVRAおよび垂直ブロックアドレスVBKに従って、各メモリブロック単位で、垂直方向ワード線VWLの選択動作が選択的に活性化される。
【0158】
V入出力回路214は、垂直ブロック選択信号VDKに従って、選択ブロックBK0−BL3それぞれに対して設けられるグローバルIO線を選択的に、内部データバス198に結合する。この内部データバス198は、そのビット幅がK・K/m(min)である。ここで、m(min)は、有効ビット幅mの最小値を示す。
【0159】
Vアドレス発生回路204は、メモリセルマットアクセス回数カウンタ93bからのカウント値CNTと有効ビット幅レジスタ94eからの有効ビット幅情報mとに従って、垂直ワード線アドレスVRAおよび垂直ブロックアドレスVBKを生成する。
【0160】
システムバス直交メモリI/F222は、Hアドレス発生回路102からのアドレスタイミング制御信号HRAFと有効ビット幅情報mとに従って、経路設定回路222の接続経路を確立する制御信号を生成する。経路設定回路222は、経路制御回路220の制御の下に、内部データバス97と内部データバス96の接続経路をダイナミックに切換える。データ書込時、たとえばデータバス96のビット幅Kが32ビットであり、有効ビット幅情報mが8ビットデータを示すときには、直交メモリセルアレイ210において、メモリブロックBK0に、順次8ビット単位データを格納した後、次のメモリブロックBK1に対して転送された単位データを順次書込む。最終的にブロックBK3に対してデータの書込が完了した時点で、この直交メモリ90aがフル状態となったと判定されて、Vワード線選択回路212により、垂直方向ワード線VWLの選択が行なわれる。この場合、有効ビット幅情報mが8ビット情報を示す場合には、メモリブロックBK0−BK3から、それぞれデータビットを読出すように、各メモリブロックBK0−BK3それぞれにおいて、同一位置の垂直方向ワード線VWLが選択状態へ駆動される。
【0161】
メモリセルマット直交メモリI/F192は、有効ビット幅情報mの示すビット幅に応じて、内部データバス198の使用されるバス線の数が異なるため、この有効ビット幅情報mに応じて、内部データバス198のうちの有効データを転送するサブバスを内部メモリバス77に結合する。
【0162】
この図15に示す直交変換回路85の他の構成は、図11に示す直交変換回路の構成と同じであり、対応する部分には同一参照番号を付し、その詳細説明は省略する。
【0163】
図16は、図15に示す直交メモリ90aおよび90bとシステムバス直交メモリI/F91の構成をより具体的に示す図である。直交メモリ90aおよび90bは同一構成を有するため、図16においては、直交メモリ90aの構成を代表的に示す。
【0164】
システムバス直交メモリI/F91において、経路制御回路220は、有効ビット幅情報mとアドレスタイミング制御信号HRAFとに従って、内部データバス96のサブデータバス96a−96dと内部データバス97のサブデータバス97a−97dの接続経路を設定する制御信号を生成する。
【0165】
経路設定回路222は、スイッチマトリクスで構成され、サブデータバス96a−96dとサブデータバス97a−97dの間の接続経路を、経路制御回路220からの経路制御信号に従って設定する。
【0166】
直交メモリ90aにおいて、H入出力回路213は、メモリブロックBKa−BKdそれぞれに対応して設けられるリード/ライト回路213a−213dを含む。これらのリード/ライト回路213a−213dは、有効ビット幅情報mに従って、8ビット単位、16ビット単位、および32ビット単位で活性化される(有効ビット幅情報mが、8ビット、16ビットおよび32ビットを指定するとき)。
【0167】
メモリブロックBKa−BKdそれぞれに対応して、ローカル入出力回路LIOKa−LIOKdが設けられる。これらのローカル入出力回路LIOKa−LIOKdは、それぞれ内部グローバルデータバスVIOa−VIOdを介してV入出力回路214との間でデータの転送を行なう。これらのグローバルデータバスVIOa−VIOdは、各々、Kビット幅(例えば32ビット幅)を有し、対応のメモリブロックの全エントリとの間でデータを並列に転送する。
【0168】
V入出力回路214においては、これらのグローバルデータバスVIOa−VIOdそれぞれに対応してメイン入出力回路214a−214dが設けられ、また、メイン入出力回路214a−214dと内部データバス198のサブデータバス198a−198dの間の接続経路を設定するための経路切換回路214eが設けられる。この経路切換回路214eは、有効ビット幅情報mに従って、メイン入出力回路214a−214dとサブデータバス198a−198dの接続経路を確立する。
【0169】
メイン入出力回路214a−214dは、垂直ブロックアドレスVBKに従って選択的に活性化されて、活性化時、32ビットのデータを転送する。
【0170】
Vワード線選択回路212は、メモリブロックBKa−BKdそれぞれに対応して設けられるVデコード/ワード線ドライバ212a−212dを含む。これらのVデコード/ワード線ドライバ212a−212dは、図15に示すVアドレス発生回路204からの垂直ブロックアドレスVBKとワード線アドレスVRAに従って、垂直方向ワード線WLVを選択する。
【0171】
垂直ブロックアドレスVBKは、有効ビット幅情報mに従って選択的に縮退され、1メモリブロック単位、2メモリブロック単位および4メモリブロック単位のいずれかでの、垂直方向ワード線WLVの選択が実行される。したがって、Vデコード/ワード線ドライバ212a−212dは、垂直ブロックアドレスVBKが、対応のメモリブロックを指定しているときに活性化され、垂直ワード線アドレスVRAに従ってワード線選択動作を実行する。
【0172】
これらのメモリブロックBKa−BKdに共通に、Hワード線選択回路111が設けられ、水平ワード線アドレスHRAに従って、これらのメモリブロックBKa−BKdに共通に設けられる水平方向ワード線WLHを選択状態に駆動する。しかしながら、このHワード線選択回路111も、メモリブロックBKa−BKdそれぞれに対応して設けられるローカルHワード線選択回路に分割され、メモリブロック単位で、水平方向ワード線が選択状態へ駆動される構成が用いられてもよい。
【0173】
図17(A)−図17(C)は、図15および図16に示す直交変換回路における、内部システムバスからの8ビットデータの格納時の動作を模式的に示す図である。以下、図15、図16および図17を参照して、直交メモリ90aおよび90bのエントリ数Kが32ビットであり、有効ビット幅情報mが8ビットを示すときのシステムバスから直交メモリへのデータ転送動作について説明する。
【0174】
図16に示す経路設定回路222は、経路制御回路220からの制御信号に従って、サブデータバス96a−96dを順次サブデータバス97aに結合する。H入出力回路213においては、図15に示すH系制御回路215の制御の下に、リード/ライト回路213aが活性化され、Hワード線選択回路111が、水平方向ワード線WLHを4回選択し、異なる水平方向ワード線を選択状態へ駆動する。これにより、図17(A)に示すように、メモリブロックBKaにおいて、8ビットデータA0−A3が、順次格納される。この格納動作は、先の実施の形態1の場合と同様である。
【0175】
メモリブロックBKaに対して、32エントリの単位データDTE(A0−A31)が格納されると、経路制御回路220は、経路設定回路222を制御して、サブデータバス96a−96dを、順次、サブデータバス97bに結合する。H系制御回路215(図15参照)は、メモリブロックBKbに対して設けられるリード/ライト回路213bを各単位データに応じて活性化する。この場合においても、Hワード線選択回路111が、水平方向ワード線WLHを、先頭位置から順次選択状態へ駆動し、メモリブロックBK1において、次の32エントリの8ビットデータA32−A63が順次格納される(図17(B))。
【0176】
この動作が、次いで、リード/ライト回路213cに対しても行なわれ、メモリブロックBKcに32エントリの8ビットデータが格納されると、最後は、経路設定回路222が、これらのサブデータバス96a−96dを、順次サブデータバス97dに結合し、メモリブロックBKeに対するデータの書込が実行される。この場合においても、Hワード線選択回路111が、先頭位置から順次水平方向ワード線WLHを各バスアクセスサイクルごとに4回活性化し、次の32エントリの8ビットデータA96−A127が順次格納される。これにより、メモリブロックBKa−BKdにおいて、128個の8ビットデータA0−A127が格納される。直交メモリ90aがフル状態とされると、次いで、直交メモリ90bにおいて同様の動作が実行される。
【0177】
したがって、このデータ書込動作においては、リード/ライト回路213a−213d各々が、K回(32回)データの書込を行なった後に、順次その活性化状態がシフトされる。経路制御回路220は、したがって、Hアドレス発生回路102から発生されるアドレスが32回発生されるごとに、経路設定回路222の接続先を順次シフトさせる。
【0178】
この直交メモリ90aにおいて、転送データが格納されると、次いで、垂直方向のデータの読出が行なわれる。この場合、単位データは、8ビットデータであり、垂直ブロックアドレスVBKは縮退されて、すべてのメモリブロックBKa−BKdを選択状態に指定する。これは、たとえば、有効ビット幅情報mに従って2ビットの垂直ブロックアドレスのビットをすべて選択状態に設定することにより実現される。この状態において、Vデコード/ワード線ドライバ212a−212dが全て並行して活性化され、垂直ワード線アドレスVRAに従って垂直方向ワード線WLVの選択を行ない、ローカル入出力回路LIOKa−LIOKdも、それぞれブロックアドレスVBKに従って活性化されて、データの読出を実行し、それぞれグローバルデータバスVIOa−VIOdに32ビットのデータを転送する。
【0179】
次いで、メイン入出力回路214a−214bが、垂直ブロックアドレスVBKに従ってすべてイネーブル状態であり、グローバルデータバスVIOa−VIOdそれぞれに現われた32ビットのデータを増幅し、増幅後の内部データを経路切換回路214eへ与える。経路切換回路214eは、有効ビット幅情報mに従って、メイン入出力回路214a−214dの出力信号を、それぞれサブデータバス198a−198dに伝達する。したがって、図18に示すように、メモリブロックBK0−BK3それぞれから読出された32ビットのデータ、すなわち、合計128ビットのデータが、並列に、サブデータバス198a−198dに伝達される。
【0180】
各メモリブロックにおいて垂直方向ワード線WLVを8回選択状態へ駆動し、データの読出を行なうことにより、この直交メモリ90aの格納データが、すべてエントリパラレルかつビットシリアルな態様で内部メモリバスを介してメモリセルマットに転送される。
【0181】
なお、データの書込時、非選択メモリブロックにおいても、水平方向ワード線WLHが選択される。しかしながら、直交メモリセルはSRAMセルであり、非選択メモリブロックにおいては単にメモリセルデータの読出が行なわれるだけであり、その記憶データの破壊は生じない。
【0182】
図19(A)および(B)は、16ビットデータの直交メモリへの書込時のデータの流れを模式的に示す図である。この16ビットデータの書込時においては、図16に示す経路設定回路222は、16ビット単位で、サブデータバスの接続を切換える。すなわち、経路設定回路222は、まず、サブデータバス96aおよび96bをそれぞれ内部のサブデータバス97aおよび97bに接続する。この状態において、リード/ライト回路213aおよび213bが活性化され、また、Hワード線選択回路111により水平方向ワード線WLHが選択され、16ビットデータB0がメモリブロックBKaおよびBKbに格納される。次いで、経路設定回路222が、サブデータバス96cおよび96dを、内部のサブデータバス97aおよび97bにそれぞれ接続し、再び、リード/ライト回路213aおよび213Bを活性化し、また、Hワード線選択回路111において、次の水平方向ワード線を選択する。これにより、16ビットデータB1が、メモリブロックBKaおよびBKb内の次のエントリに格納される。
【0183】
8回目のシステムバスアクセス時においては、16ビットデータB30およびB31が並列に転送される。この場合においても、経路設定回路222が、サブデータバス96aおよび96bを内部のサブデータバス96aおよび97bにそれぞれ接続し、リード/ライト回路213aおよび213bを活性化し、メモリブロックBKaおよびBKbに16ビットデータB30を書込む。
【0184】
次いで、サブデータバス96cおよび96dを経路設定回路222を介して内部のサブデータバス97aおよび97bにそれぞれ接続し、Hワード線選択回路111により最後の水平方向ワード線を選択状態へ駆動し、16ビットデータB31を書込む。
【0185】
このシステムバスアクセスが8回行なわれると、経路制御回路220は、経路設定回路222の接続態様を切換える。この場合、図19(B)に示すように、まず、16ビットデータB32およびB33が並列に、内部データバス96を介して転送されると、まず、サブデータバス96aおよび96bが内部サブデータバス97cおよび97dにそれぞれ接続される。リード/ライト回路213cおよび213dが活性化され、メモリブロックBKcおよびBKdに、16ビットデータB31およびB33が、順次格納される(Hワード線選択回路111が、この異なるワード線を選択する)。
【0186】
システムバスアクセスが8回行なわれると、最後の16ビットデータB62およびB63が内部データバス96を介して転送され、再び、リード/ライト回路213cおよび213dを活性化して、メモリブロックBKcおよびBKdに16ビットデータB62およびB63を順次格納する。
【0187】
したがって、16ビットデータの直交メモリへの格納時においては、図15に示すH系制御回路215は、Hアドレス(水平ワード線アドレス)HRAが32回生成されると、活性化されるリード/ライト回路を切換える。この切換えは、単に、水平方向ワード線アドレスHRAの発生回数をカウントし、そのカウント値に基づいて、メモリブロックBKaおよびBKbにデータを書込むか、またはメモリブロックBKcおよびBKdにデータを書込むかを判定することにより、実現することができる。
【0188】
また、経路設定回路222における経路切換えは、アドレスタイミング制御信号HRAFが32回発生されると、スイッチマトリクスにおいてリード/ライト回路に対する接続経路を切り替え、16ビット単位でデータを順次、接続先のリード/ライト回路との間で転送することにより実現される。
【0189】
この直交メモリ90aまたは90bがフル状態となると、別の直交メモリへのデータの書込が同様のシーケンスで実行される。
【0190】
この直交メモリ90aからメモリセルマットに対してデータを転送する場合、図20および図21に示す経路切替えシーケンスが実行される。
【0191】
まず、図20に示すように、垂直ブロックアドレスVBKのたとえば下位1ビットを縮退状態として、メモリブロックBKaおよびBKcを選択状態に指定する。この状態においては、Vデコード/ワード線ドライバ212aおよび212cにより、同一位置の垂直方向ワード線WLVが選択される。ローカル入出力回路LIOKaおよびLIOKcが活性化され、グローバルデータバスVIOaおよびVIOcを介して32ビットデータをそれぞれ転送する。また、垂直ブロックアドレスVBKにより、メイン入出力回路214aおよび214cが活性化され、一方、メイン入出力回路214bおよび214dは非活性状態である。したがって、メイン入出力回路214aおよび214c各々から、32ビットデータが並列に読出される。経路切換回路214eにおいては、有効ビット幅情報mに従って、メイン入出力回路214aをサブデータバス198aに結合し、メイン入出力回路214cをサブデータバス198bに結合する。これにより、64ビットデータB0−B63が並列にサブデータバス198aおよび198b上に読出される。この動作が、メモリブロックBKaおよびBKcにおいて、8回繰返され、16ビットデータB0−B63のうちの下位側または上位側8ビットが読出されて転送される。
【0192】
次いで、上述の64ビットデータ読出動作が8回繰返されると、垂直ブロックアドレスBVKが、メモリブロックBKbおよびBKdを指定する状態に設定される。この状態において、Vデコード/ワード線ドライバ212bおよび212dが活性化され、メモリブロックBKbおよびBKdそれぞれからグローバルデータ線VIObおよびVIOd上に32ビットデータが並列に示される。
【0193】
ブロックアドレスVBKにより、メイン入出力回路214bおよび214dが活性化され、一方、メイン入出力回路214aおよび214cが非活性状態である。経路切換回路214eは、有効ビット幅情報mに従って、上述の8回のデータ転送を実行した後、メイン入出力回路214bおよび214dを、それぞれサブデータバス198aおよび198bに結合する。これにより、16ビットデータB0−B63の残りの8ビットが、順次、メモリブロックBKbおよびBKdから読出される。これにより、16ビットデータの場合、64エントリのデータをビットシリアルかつエントリパラレルに転送する。
【0194】
この後、図15に示すメモリセル直交マットI/F192により、内部メモリバス77上に、16ビットのデータB0−B63の転送経路が調整されて、メモリセルマット内のエントリに応じた位置の内部メモリバスのバス線を介して、データが転送される。
【0195】
図22は、32ビットデータC(C0−C32)転送時の直交メモリにおけるデータ格納状況を模式的に示す図である。この32ビットデータ転送時においては、図16に示す経路設定回路222は、サブデータバス96a−96dを、それぞれ、内部のサブデータバス97a−97dに接続する。リード/ライト回路213a−213dが、H系制御回路215(図15参照)の制御の下に並行して活性化され、それぞれメモリブロックBKa−BKdに対して並列にデータの書込が行なわれる。
【0196】
Hワード線選択回路211が、1バスアクセスサイクルごとに1つの水平方向ワード線WLHを選択状態へ駆動するる。これにより、32回バスアクセスを行なうことにより、32ビットデータC0−C32が、8ビット単位でメモリブロックBKa−BKdそれぞれに格納される。
【0197】
この直交メモリセルアレイに格納されたデータを垂直方向に読出してメモリセルマットへ転送する場合には、まず、ブロックアドレスBVKの全ビットが有効状態とされ、各メモリブロックBKa−BKd単位で、データの読出が行なわれる。すなわち、図23に示すように、まず、メモリブロックBKaが活性化され、対応のVデコード/ワード線ドライバ212aが、垂直方向ワード線WLVを順次選択する。ローカル入出力回路LIOKaが活性状態にあり、グローバルデータバスVIOa上に、32ビットデータが転送される。また、垂直ブロックアドレスVBKに従って、メイン入出力回路214aが活性化され、メイン入出力回路214b−214dは非活性状態にある。
【0198】
経路切換回路214eにおいては、メイン入出力回路214aを内部サブデータバス198aに結合し、メイン入出力回路214aからの32ビットデータが、サブデータバス198a上に転送される。このメモリブロックBKaにおいて8回垂直方向ワード線WLVを選択状態へ駆動してデータの読出を行なうことにより、32ビットデータC0−C31の上位または下位の8ビットデータが順次読出されて転送される。
【0199】
このメモリブロックBKaにおいてデータ読出が8回行なわれた後、次いで、垂直ブロックアドレスVBKが切換えられ、メモリブロックBKbが活性状態とされる。これにより、図16に示すVデコード/ワード線ドライバ212bおよびローカル入出力回路LIOKbが活性化され、メイン入出力回路214bにより、データの読出が行なわれる。この場合、メイン入出力回路214bは、図23において番号2で示すように、サブデータバス198aに結合されており、メイン入出力回路214bからの32ビットデータが、内部サブデータバス198a上に転送される。
【0200】
メモリブロックBKbにおいて8回垂直方向ワード線の選択が行なわれると、再び、垂直ブロックアドレスVBKが切換えられ、メモリブロックBKcが活性化され、グローバルデータバスVIOc上に、32ビットデータが読出される。この場合、メイン入出力回路214cが活性化される。
【0201】
経路切換回路214eにおいては、このメイン入出力回路214cの出力を内部サブデータバス198aに結合し(番号3で示す)、メモリブロックBKcからの32ビットデータが順次内部サブデータバス198aに転送される。
【0202】
このメモリブロックBKcからのデータ読出が8回行なわれると、次いで、図24に示すように、メモリブロックBKdが活性化され、垂直方向ワード線が選択されて、グローバルデータバスVIOd上に32ビットデータが読出される。この場合、メイン入出力回路214dが活性化され、メイン入出力回路214a−214cは非活性状態にある。経路切換回路214eは、このメイン入出力回路214dを、内部サブバス198aに結合しており、内部サブバス198a上に、これらのデータC0−C31各々の残りの8ビットデータが順次読出される。
【0203】
したがって、メモリブロックBKa−BKdを、ブロック単位で順次活性化し、メイン入出力回路214a−214dも順次ブロック単位で活性化することにより、内部サブデータバス198aを利用して、32ビットデータを、ビットシリアルかつエントリパラレルの態様で転送することができる。
【0204】
経路切換回路214eは、有効ビット幅情報mが32ビット幅を示すときには、単に8回データの転送を行なうごとに、メイン入出力回路214a−214dを内部サブデータバス198aに順次接続する。メイン入出力回路214a−214dが、非活性化時出力ハイインピーダンス状態にされる場合には、経路切換回路214eは有効ビット幅情報mに従って、これらのメイン入出力回路214a−214dを並行して、内部サブデータバス198aに結合してもよい。
【0205】
Vアドレス発生回路204(図15参照)は、有効ビット幅情報mが32ビット幅を示す場合には、垂直アドレス(垂直ワード線アドレス)VRAを32回発生し、また、垂直ブロックアドレスVBKを、各8垂直ワード線アドレス発生ごとに、その値を切換える。
【0206】
図25は、図15に示すメモリセルマット直交メモリI/F192の構成の一例を示す図である。図25において、メモリセルマット直交メモリI/F192は、有効ビット幅情報mに従って、リンク状に接続経路のシフト動作を行なう経路シフト回路192aを含む。この経路シフト回路192aは、内部サブデータバス198a−198dと内部メモリバス77のサブバス77a−77dの間の転送経路を順次切換える。すなわち、経路シフト回路192aは、有効ビット幅情報mが8ビットデータを示す場合には、サブデータバス198a−198dに有効データが転送されるため、シフト動作は行なわず、このサブバス198a−198dそれぞれと内部メモリサブバス77a−77dの間のデータ転送を実現する。
【0207】
有効ビット幅情報mが、16ビット幅を示すときには、経路シフト回路192aは、サブデータバス198aおよび198bに与えられたデータを受け、内部メモリサブバス77aおよび77b上にデータを転送した後、16回データ転送を完了すると、経路シフト回路192aは、その接続経路を64ビットシフトさせ、サブデータバス198aおよび198bを、内部メモリサブバス77cおよび77dに結合する。再び、16回データ転送が行なわれると、経路シフト回路192aは、その接続経路を、64ビットシフトさせ、サブデータバス198aおよび198bを、内部メモリサブバス77aおよび77bにそれぞれ結合する。この動作を、16回データ転送ごとに繰返し、転送経路を切換える。メモリセルマットにおいて、エントリが単位データ転送完了後シフトされるのに対応して、内部メモリバスにおいて有効データを転送するバス線をシフトさせる。メモリ内部データバスにおいて無効データが転送されるときには、実施の形態1の変更例において示したようにビット幅拡張操作が実行る。
【0208】
有効ビット幅情報mが、32ビットを示すときには、経路シフト回路192aは、サブバス198aを、32回のデータ転送ごとにその接続経路を32ビットシフトさせ、メモリサブバス77a、77b、77cおよび77dに順次結合する。この接続経路のシフト動作を、32回のデータ転送ごとに行なう。
【0209】
なお、この図25に示す構成においては、内部データバス198と内部メモリバス77のビット幅が同じである。内部メモリバス77のビット幅が、内部データバス198のビット幅よりも大きい場合には、この経路シフト回路192aは、内部メモリバス77の各サブバス(32ビット幅)に対し、有効ビット幅情報mが示すビット幅ごとにその接続をシフトする。この場合、有効データを転送しない内部メモリバス上には、ビット幅拡張のために、固定データ(たとえば“0”)が転送される(実施の形態1の変更例参照)。
【0210】
なお、メモリセルマットからシステムバスにデータを転送する場合には、データの流れが逆となるものの、同様の動作制御およびデータ転送経路切替えが実行される。
【0211】
以上のように、直交メモリのメモリセルアレイのすべてのメモリセルを利用して、データの転送を行なっており、有効データビット幅が、システムバスのバス幅よりも小さいとき、メモリセルマットとの間の転送データのエントリ数を拡大することができ、データの転送回数を低減することができ、また、直交メモリのメモリセルアレイも有効に利用することができる。
【0212】
[変更例]
図26は、この発明の実施の形態2の変更例の直交変換回路の要部の構成を概略的に示す図である。直交メモリ90aおよび90bが同一構成をするため、図26においても、直交メモリ90aの要部の構成を示す。この直交メモリ90aは、直交メモリセルアレイ300と、この直交メモリセルアレイ300の垂直方向ワード線WLVを選択するVワード線選択回路320と、Vワード線選択回路320により選択された垂直方向ワード線WLVに接続されるKビットのメモリセルに対するデータの入出力を行なうV入出力回路305と、有効ビット幅情報mに従って、これらのVワード線選択回路320およびV入出力回路305の動作を制御するV系制御回路310を含む。
【0213】
直交メモリセルアレイ300は、垂直方向ワード線については、ブロック分割はされず、垂直方向のデータ転送時においては、1つの垂直ワード線WLVの選択により、32ビット(Kビット)のデータの入出力が行なわれる。
【0214】
この直交メモリ90aおよび90bに共通に、内部データバス98が設けられる。この内部データバス98は、32ビット転送ゲートTFa−TFbそれぞれを介してレジスタRGa−RGbに結合される。レジスタRGa−RGbは、各々32ビット幅を有し、内部サブデータバス198a−198dにそれぞれ結合される。これらの内部サブデータバス198a−198dは、メモリセルマット直交メモリI/F192に結合される。
【0215】
32ビット転送ゲートTFaは、活性化信号ENXに従って導通し、32ビットデータを転送する。転送ゲートTFbは、活性化信号8/16ENXに従って導通し、32ビット転送ゲートTFcが、活性化信号・ENXAに従って選択的に導通し、32ビット転送ゲートTFbが、活性化信号8・ENXBに従って選択的に導通する。
【0216】
有効ビット幅情報mが32ビットデータを示すときには、活性化信号ENXのみが活性化される。有効ビット幅情報mが16ビットデータを示すときには、活性化信号ENXおよび8/16・ENXが順次活性化される。有効ビット幅情報mが8ビットデータを示すときには、活性化信号ENX、8/16・ENX、8・ENXA、および8・ENXBが順次活性化される。これらの活性化信号は、直交メモリ90aおよび90bのV系制御回路310により生成される。
【0217】
レジスタRGa−RGdは、各々、ラッチ回路で構成され、与えられたデータをラッチする。これらのレジスタRGa−RGdは、それぞれそのラッチ動作が、対応の32ビット転送ゲートTFa−TFbに対する活性化信号により制御されてもよい。
【0218】
この図26に示す直交変換回路において、水平方向ワード線WLHを選択して、データを書込む態様は、上述の図15および図16を参照して説明した動作と同じであり、8ビット単位、16ビット単位または32ビット単位で直交メモリセルアレイ300に対してデータの書込または読出が行なわれる。
【0219】
有効ビット幅情報mが、32ビットデータを示すときには、Vワード線選択回路320は、図示しないVアドレス発生回路からの垂直ワード線アドレス(VRA)に従って1本の垂直方向ワード線WLVを選択する。このとき、V入出力回路305がV系制御回路310により活性化され、Kビット(32ビット)の選択メモリセルのデータを読出してデータバス98上に転送する。
【0220】
活性化信号ENXが活性化され、32ビット転送ゲートTFaにより、この直交メモリ90aから読出されるデータがレジスタRGaに格納される。メモリセルマット直交メモリI/F192が、先の図15および図16および図25において示したI/Fと同様に動作して、経路設定を行なってデータを転送する。
【0221】
有効ビット幅情報mが、16ビットデータを示すときには、Vワード線選択回路320は、与えられた垂直ワード線アドレスに従って1本の垂直方向ワード線WLVを選択する。この1回目の垂直方向ワード線WLVの選択に従って、活性化信号ENXが活性化され、V入出力回路305により読出されたデータがレジスタRGaに格納される。次いで、有効ビット幅情報mに従って、図示しないVアドレス発生回路が垂直ワード線アドレスを+16増分する。Vワード線選択回路320は、V系制御回路310の制御のもとに、再び活性化され、対応の位置の垂直方向ワード線WLVを選択する。この2回目の垂直ワード線選択時には、活性化信号8/16・ENXが活性化され、V入出力回路305により読出されたデータが、32ビット転送ゲートTFbを介してレジスタRGbに格納される。レジスタRGaおよびRGbにおいて、32ビットのデータが格納されると、メモリセルマット直交メモリI/F192が、これらのレジスタRGaおよびRgbに格納された64エントリのデータビットを並列に転送する。
【0222】
この動作を16回繰返し、垂直方向ワード線を32回(L回)選択して、直交メモリのメモリセルアレイ300に格納されたデータを全てメモリセルマットへ転送する。
【0223】
次に、有効ビット幅情報mが8ビットデータを示すときには、Vワード線選択回路320は、V系制御回路310の制御のもとに、まず、垂直方向ワード線アドレスに従って、1回目の垂直方向ワード線WLVを選択する。活性化信号ENXにより32ビット転送ゲートTFaが導通し、V入出力回路305からのKビット(32ビット)のデータがレジスタRGaに転送されて格納される。
【0224】
次に、有効ビット情報mに従って、Vアドレス発生回路が垂直ワード線アドレスを+8増分し、Vワード線選択回路320は、再びV系制御回路310の制御のもとに活性化されて、垂直方向ワード線アドレスを+8増分した位置の垂直方向ワード線WLVを選択し、V入出力回路305が再び活性化されてデータを出力する。このとき、活性化信号8/16・ENXが活性化され、V入出力回路305により増幅されたデータがレジスタRGbに格納される。
【0225】
このデータ読出完了後、再び、垂直方向ワード線アドレスがさらに8増分されて、Vワード線選択回路320は、もとの位置から16ワード線アドレス位置離れた垂直方向ワード線を選択し、V入出力回路305が32ビットのデータの読出を行なう。このとき活性化信号8・ENXAが活性化され、32ビット転送ゲートTFcにより、読出された32ビットデータがレジスタRGcに格納される。
【0226】
再び、V系制御回路310は、Vワード線選択回路320を活性化し、Vアドレス発生回路により+24増分された垂直方向ワード線アドレスの位置の垂直方向ワード線Vを選択する。再び、V入出力回路35が活性化されて32ビットデータの読出を行なう。この場合、活性化信号8・ENXBが活性化され、32ビット転送ゲートTFeを介して読出された32ビットデータがレジスタRGdに格納される。
【0227】
メモリセルマット直交メモリI/F192は、これらのレジスタRGa−RGdに各々32ビットデータが格納されると、データ転送動作を行なって、内部メモリバス77を介してメモリセルマットへ128ビットデータを転送する。
【0228】
Vアドレスの発生回路は、有効ビット幅情報mに従って、垂直ワード線アドレスを順次有効ビット幅だけ増分して、垂直方向ワード線を指定する。この場合、データをメモリセルマットに対して転送した後、垂直ワード線アドレスは、初期値にリセットする必要はなく、単に、先頭垂直ワード線アドレス0から順次有効ビット幅情報mを増分し、モジュロ31の演算を行なうことにより、たとえば有効ビット幅mが8ビットの場合、24増分された垂直ワード線選択後、垂直ワード線アドレスを8増分してモジュロ31の演算を実行することにより、次いで、垂直ワード線アドレスが+1の垂直方向ワード線を選択することができる。
【0229】
V系制御回路310は、有効ビット幅情報mに応じて、1回のデータ転送あたりのVワード線選択回路320の活性化回数を決定する(L/m回活性化する)。
【0230】
なお、活性化信号ENX、8/16・ENX、8・ENXAおよび8・ENXBの活性化は、L/m回、活性化信号を転送ゲートTFaから転送ゲートTFdに向かって順次転送することにより実現される。これらの活性化信号ENX、8/16・ENX、8・ENXAおよび8・ENXBが、直交メモリ90aおよび90bに含まれるV系制御回路からの制御信号の合成に基づいて生成される(OR回路を利用する)。
【0231】
メモリセルマットからシステムバスへのデータ転送時においても、データの流れが逆になるものの、同様の垂直ワード線選択およびレジスタ選択シーケンスが実行される。
【0232】
メモリセルマットへのデータ転送時、有効ビット幅情報に応じて、複数回、垂直方向ワード線が選択される。しかしながら、その回数は、1転送サイクルあたりL/m回であり、1バスアクセスサイクルあたりの水平ワード線選択回数と同じであり、直交メモリ90aおよび90bの一方がシステムバスとの間のデータ転送を行なっている間に、他方の直交メモリが、十分に時間的余裕をもってメモリセルマットとの間でデータ転送を行なうことができる。
【0233】
この図26に示す構成の場合、直交メモリセルアレイ300においては、メモリセルマットとのデータ転送のために32ビットの内部データ線(グローバルデータ線)が配設されるだけであり、配線レイアウトが簡略化される。また、垂直ワード線アドレスを発生する部分の構成は、先の垂直ブロックアドレスと垂直ワード線アドレスを並列に配置し、ブロックアドレスに対応する部分を有効ビット幅情報に応じて更新し、また垂直ワード線アドレスをメモリセルマットとの間のデータ転送サイクルごとに1増分する構成により、モジュロ31の加算を行う構成を容易に実現することができる。
【0234】
なお、メモリセルマット直交メモリI/F192におけるデータ転送制御は、上述の図25を参照して説明した動作と同じである。
【0235】
なお、図1に示す構成において、直交変換回路85は、基本演算ブロックそれぞれに対して設けられており、基本演算ブロック個々に、データ列の直交変換を行なうことが可能である。しかしながら、この直交変換回路は、複数の基本演算ブロックに共通に設けられてもよい。
【0236】
以上のように、この発明の実施の形態2に従えば、有効ビット幅情報に応じて、直交メモリ内のメモリセルすべてに、転送データを格納した後、この有効ビット幅情報に応じたエントリ拡張を行なってデータ転送をしており、メモリセルマットとの間のデータ転送効率が改善される。また、直交メモリのメモリセルを利用効率を改善することができる。また、メモリセルマットと直交変換回路との間のデータ転送回数が低減され、主演算回路の演算処理のサイクル数を増加させることができ、システム全体の処理能力を改善することができる。また、実施の形態1と同様の効果をも奏する。
【産業上の利用可能性】
【0237】
この発明に従う直交変換回路は、演算用メモリアレイのエントリそれぞれに演算器が設けられる信号処理装置に対して適用することにより、データ転送を効率的に行なうことができ、より処理性能を改善することができる。
【0238】
また、このような半導体信号処理装置に限定されず、たとえば、行列の乗算を行なう回路装置において、行列を転置して行なう回路部分に、この発明に従う直交変換回路を利用することにより、高速でデータを転送して転置行列を生成して、行列の乗算を行なうことができる。
【0239】
またこのような行列の乗算などに限定されず、行列の転置操作が必要な回路部分に対して、本発明に従う直交変換回路を利用することにより、効率的な直交変換を行なうことができ、ベクトル乗算処理などを効率的に実行することができる回路装置を実現することができる。
【図面の簡単な説明】
【0240】
【図1】この発明に従う直交変換回路が適用される信号処理システムの構成を概略的に示す図である。
【図2】図1に示す主演算回路のメモリセルマットおよび演算処理ユニットの構成を概略的に示す図である。
【図3】図1に示す主演算回路内において実行される演算操作の一例を示す図である。
【図4】図3に示す演算処理動作を示すタイミングチャートである。
【図5】図1に示す主演算回路の構成をより具体的に示す図である。
【図6】図1に示す信号処理システムにおける外部メモリから主演算回路のメモリセルマットへのデータ転送時のデータの流れを模式的に示す図である。
【図7】この発明の実施の形態1に従う直交変換回路の構成を概略的に示す図である。
【図8】図7に示す直交メモリに含まれる直交メモリセルの構成の一例を示す図である。
【図9】図7に示す直交変換回路のデータ転送動作を示すフロー図である。
【図10】図9に示すフロー図の他のデータ転送時のデータの流れを模式的に示す図である。
【図11】発明の実施の形態1に従う直交変換回路の構成をより具体的に示す図である。
【図12】図11に示す直交変換回路の要部の構成を概略的に示す図である。
【図13】(A)は、図11に示すメモリセルマット直交メモリI/Fの構成を概略的に示し、(B)は、この図13(A)に示すバス幅変換回路の構成をより具体的に示す図である。
【図14】図13(B)に示すバス幅変換回路による転送データの配列の一例を示す図である。
【図15】この発明の実施の形態2に従う直交変換回路の構成を概略的に示す図である。
【図16】図15に示す直交メモリの構成をより具体的に示す図である。
【図17】(A)−(C)は、エントリ単位データが8ビット幅のときのデータの直交メモリへの獲得シーケンスを概略的に示す図である。
【図18】エントリデータが8ビットデータのときの直交メモリからのメモリセルマットへの転送時のデータの流れを模式的に示す図である。
【図19】(A)および(B)は、エントリデータが16ビットデータのときの直交メモリへのデータ格納シーケンスを模式的に示す図である。
【図20】エントリ単位データが16ビットデータのときの直交メモリからメモリセルマットへのデータ転送時の転送データの流れを模式的に示す図である。
【図21】エントリ単位データが16ビットデータのときの直交メモリからメモリセルマットへのデータ転送の流れを模式的に示す図である。
【図22】エントリ単位データが32ビットのときの直交メモリへのデータ格納シーケンスを模式的に示す図である。
【図23】エントリ単位データが32ビットのときの直交メモリからメモリセルマットへのデータ転送時のデータの流れを模式的に示す図である。
【図24】エントリデータが32ビット幅のときの、直交メモリからメモリセルマットへのデータ転送時の転送データの流れを模式的に示す図である。
【図25】図15に示すメモリセルマット直交メモリI/Fの構成を概略的に示す図である。
【図26】この発明の実施の形態2の変更例に従う直交変換回路の要部の構成を概略的に示す図である。
【符号の説明】
【0241】
1 信号処理システム、2 半導体信号処理装置、20 主演算回路、7 内部システムバス、24 システムバスI/F、85 直交変換回路、90a,90b 直交メモリ、93 内部レジスタ群、93a システムバスアクセス回数カウンタ、93b メモリセルマットアクセス回数カウンタ、94 制御レジスタ群、94a エントリ位置レジスタ、94b ビット位置レジスタ、94c イネーブルレジスタ、94d リード/ライト方向レジスタ、94e 有効ビット幅レジスタ、95 メモリセルマットアドレス計算ユニット、92 メモリセルマット直交メモリI/F、77 内部メモリバス、96,97,98 内部データバス、91 システムバス直交メモリI/F、21 システムバスメモリI/F、110 直交メモリセルアレイ、111 Hワード線選択回路、112 Vワード線選択回路、113 H入出力回路、114 V入出力回路、102 Hアドレス発生回路、104 Vアドレス発生回路、120 経路制御回路、122 経路設定回路、113a−113d リード/ライト回路、122a 転送経路設定ユニット、130 バス幅変換回路、133 バスドライバ、202 直交メモリセルアレイ、212 Vワード線選択回路、213 H入出力回路、214 V入出力回路、220 経路制御回路、222 経路設定回路、204 Vアドレス発生回路、192 メモリセルマット直交メモリI/F、198 内部データバス、212a−212d Vデコード/ワード線ドライバ、214a−214d メイン入出力回路、214e 経路切換回路、TFa−TFb 32ビット転送ゲート、RGa−RGb レジスタ、320 Vワード線選択回路、305 V入出力回路、310 V系制御回路。

【特許請求の範囲】
【請求項1】
各々が第1の方向に延在しかつ複数のメモリセルを有する複数のエントリを備えるメモリ、
第1のバス上を転送されるデータの単位データのビット幅を示す有効ビット幅情報に従って、前記第1のバスと前記メモリの間のデータ転送経路を設定し、該設定された経路に従ってデータを転送するデータ転送経路設定回路、および
第2のバスと前記メモリの前記複数のエントリの第2の方向において整列するビットとの間で並列にデータを転送するデータ転送回路を備える、直交変換回路。
【請求項2】
前記データ転送経路設定回路は、
前記有効ビット幅情報が、前記第1のバス上を転送される単位データのビット幅が前記第1のバスのビット幅よりも小さいことを示すとき、前記メモリの複数のエントリの同一領域との間でデータを転送するようにデータ転送経路を設定する、請求項1記載の直交変換回路。
【請求項3】
前記データ転送経路設定回路は、さらに、前記有効ビット幅情報に従って、前記同一領域において前記複数のエントリとの間で単位データの転送が完了すると、前記メモリの前記同一領域と異なる領域において各エントリとの間で単位データを転送する、請求項2記載の直交変換回路。
【請求項4】
前記データ転送回路は、
前記ビット幅情報が前記第1のバスのビット幅よりも前記第1のバスを転送されるデータのビット幅が小さいことを示すとき、前記エントリ数を拡張して前記メモリと前記第2のバスの間でデータを転送する、請求項1記載の直交変換回路。
【請求項5】
前記メモリは、前記有効ビット幅情報に従って、前記転送経路設定回路と1または複数のエントリの間で順次単位データを転送する書込/読出回路を備える、請求項1記載の直交変換回路。
【請求項6】
前記メモリは、前記有効ビット幅情報が前記第1のバス幅よりも小さいビット幅を示すとき、第2の方向に整列するメモリセル単位でのデータ転送を各エントリの単位データについて完了した後、次の単位データを各エントリから第2の方向に整列するメモリセル単位で転送して、前記メモリから前記第2の方向のエントリ数を拡張し、該拡張されたエントリ単位で前記転送回路との間でデータを転送するエントリ拡張回路を備える、請求項1記載の直交変換回路。
【請求項7】
前記メモリは、それぞれ、同一数のエントリを有する第1および第2の直交メモリを備え、
前記データ転送経路設定回路は、前記第1および第2の直交メモリにそれぞれ対応して設けられる第1および第2のデータ転送経路設定回路を備え、
前記データ転送回路は、前記第1および第2の直交メモリそれぞれに対応して設けられる第1および第2のデータ転送回路を備え、
前記第1および第2のデータ転送経路設定回路ならびに前記第1および第2のデータ転送回路、前記第1および第2の直交メモリの一方が前記第1のバスデータを転送するときには他方が第2のバスとデータを転送するようにインタリーブ態様で交互に操作する、請求項1記載の直交変換回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2007−140750(P2007−140750A)
【公開日】平成19年6月7日(2007.6.7)
【国際特許分類】
【出願番号】特願2005−331517(P2005−331517)
【出願日】平成17年11月16日(2005.11.16)
【出願人】(503121103)株式会社ルネサステクノロジ (4,790)
【Fターム(参考)】