本発明は、入出力のデータ幅圧縮機能を有する半導体記憶装置に関する。特に、高速なシリアル入出力を有する半導体記憶装置に適用される。
近年の微細加工技術の進展に伴って、半導体記憶装置はますます大容量化、高速化する傾向にあり、また、ユーザからの製品に対する機能要求も多様化してきている。例えば、大容量化に対しては、アドレスのビット幅を少なくし入出力データ幅を広くしたいわゆる多ビット品の要求があり、高速化に対しては、高周波クロックに同期したシリアル入出力機能、すなわち、バーストモードの要求がある。
バーストモードは、並列−直列変換回路を用いることで、入出力データのバンド幅(単位時間当たりの入出力ビット数)を大幅に向上させることができる。特に、DRAMのように、メモリセルからの読み出し、書き込みに比較的時間がかかる場合には、入出力データのバンド幅を高める方法として非常に有効である。
一方、多ビット品については、製造する立場からは、1つのアーキテクチャで複数のビット構成に対応できることが望ましい。製造の最終段階でビット構成を決定できれば、特定のビット構成を受注してから納品するまでの納期を大幅に短縮できるからである。さらに、複数のビット構成選択を製品仕様として実現できれば、ビット構成ごとの製造計画が不要になるばかりでなく、ユーザにとってもより使いやすい製品となる。
このため、入出力のビット構成を可変にするデータ幅圧縮機能を実装した半導体記憶装置が開発されている。
ところで、広い入出力データ幅と高速なシリアル入出力機能を持つ従来の半導体記憶装置(例えば、「参考文献1」を参照。)においては、データ幅圧縮機能を付加するとチップサイズが増加し、入出力バンド幅が低下するという問題があった。
一例として、入出力データ幅を16ビット/8ビット/4ビットで切り替えることのできるデータ幅圧縮機能を従来の半導体記憶装置に実装した場合を説明する。
図12はデータ幅圧縮機能を付加した従来の半導体記憶装置を示す回路ブロック図である。ここでは、説明のために、入出力データ幅16ビットのうち4ビット分のデータ幅圧縮機能にかかわる部分を示した。すなわち、図12では、入出力データ幅を4ビット/2ビット/1ビットで切り替える。残りの12ビット分は、4ビットを1セットにして、図12と同様の繰り返しである。
データ幅圧縮機能を有する従来の半導体記憶装置は、データを記憶しておくメモリコア部201、データバスをマルチプレクスするマルチプレクサ回路202(以下、「MUX回路202」という。)、並列−直列変換を行うシフトレジスタ203a〜203d、および外部とのデータ入出力を行う入出力回路204a〜204dを備えている。
メモリコア部201は、データを記憶するメモリセルを行および列方向に繰り返し配置したセルアレイ205a〜205d、およびデータの信号レベルを増幅するIOバッファ206a〜206dを有している。
MUX回路202は、IOバッファ206a〜206dから受信した複数組のデータのうち1組を選択して出力する選択回路207a、207b(以下、「MX207a、MX207b」という。)、およびシフトレジスタ203a〜203dから受信した複数組のデータのうち1組を選択して出力する選択回路208a〜208c(以下、「MX208a〜208c」という。)から構成されている。
MX207aは、4ビットの入力と1ビットの出力を持つ4つのセレクタで構成され、IOバッファ206a〜206dから受信した4ビットからなる4組の入力データのうち1組を選択してシフトレジスタ203aへ出力する。
MX207bは、2ビットの入力と1ビットの出力を持つ4つのセレクタで構成され、IOバッファ206cおよび206dから受信した4ビットからなる2組の入力データのうち1組を選択してシフトレジスタ203cへ出力する。
MX208aは、3ビットの入力と1ビットの出力を持つ4つのセレクタで構成され、シフトレジスタ203a、203c、および203dから受信した4ビットからなる3組の入力データのうち1組を選択してIOバッファ206dへ出力する。
MX208bは、2ビットの入力と1ビットの出力を持つ4つのセレクタで構成され、シフトレジスタ203aおよび203cから受信した4ビットからなる2組の入力データのうち1組を選択してIOバッファ206cへ出力する。
MX208cは、2ビットの入力と1ビットの出力を持つ4つのセレクタで構成され、シフトレジスタ203aおよび203bから受信した4ビットからなる2組の入力データのうち1組を選択してIOバッファ206bへ出力する。
シフトレジスタ203a〜203dは、それぞれ、4ビットの並列入力と4ビットの並列出力、および2ビットのシリアル出力と2ビットのシリアル入力を持ち、4ビットの並列入力データを2ビットx2のシリアル出力データに変換し、2ビットx2のシリアル入力データを4ビットの並列出力データに変換する。
入出力データ幅が16ビットの場合(以下、「16ビットモード」という。)には、IOバッファ206a〜206dからの出力データは、それぞれ、対応するシフトレジスタ203a〜203dに入力され、シフトレジスタ203a〜203dからの並列出力データは、それぞれ、対応するIOバッファ206a〜206dに入力される。
すなわち、16ビットモードでは、セルアレイ205a〜205dから読み出されたデータは、それぞれ、対応する外部入出力端子DQ_0〜DQ_3(図示していない。)へ出力され、DQ_0〜DQ_3から入力されたデータは、それぞれ、対応するセルアレイ205a〜205dに書き込まれる。
図中それぞれの回路ブロックに付した(DQ_0)〜(DQ_3)は、この16ビットモードにおける対応関係を示している。
入出力データ幅が8ビットの場合(以下、「8ビットモード」という。)には、DQ_0およびDQ_1に対応するIOバッファ206aおよび206bからの出力データが、MX207aを介してシフトレジスタ203aに入力され、DQ_2およびDQ_3に対応するIOバッファ206cおよび206dからの出力データが、MX207bを介してシフトレジスタ203cに入力される。
また、シフトレジスタ203aからの並列出力データは、IOバッファ206aに入力されるとともに、MX208cを介してIOバッファ206bに入力され、シフトレジスタ203cからの並列出力データは、MX208bを介してIOバッファ206cに入力されるとともに、MX208aを介してIOバッファ206dに入力される。
すなわち、8ビットモードでは、外部との入出力に使用されるのは、DQ_0およびDQ_2の2ビットであり、セルアレイ205aまたは205bから読み出されたデータはDQ_0へ出力され、セルアレイ205cまたは205dから読み出されたデータはDQ_2へ出力される。
また、DQ_0から入力されたデータは、カラムアドレスに基づいてセルアレイ205aまたは205bに書き込まれ、DQ_2から入力されたデータは、カラムアドレスに基づいてセルアレイ205cまたは205dに書き込まれる。
入出力データ幅が4ビットの場合(以下、「4ビットモード」という。)には、IOバッファ206a〜206dからの出力データが、MX207aを介してシフトレジスタ203aに入力され、シフトレジスタ203aからの並列出力データが、MX208a〜208cを介してIOバッファ206a〜206dに入力される。
すなわち、4ビットモードでは、外部との入出力に使用されるのは、DQ_0の1ビットであり、セルアレイ205a〜205dから読み出されたデータはDQ_0へ出力され、DQ_0から入力されたデータは、カラムアドレスに基づいてセルアレイ205a〜205dに書き込まれる。
ところで、図12のような構成には、MUX回路202を実装するために多くのデータバス線を引き回さなければならないという本質的な問題があった。例えば、図12では、RD_1<0:3>、RD_2<0:3>、RD_3<0:3>、WD_0<0:3>、およびSWD_2<0:3>の5セット、20本のデータバス線を横方向に引き回している。
高速に入出力を行う製品では、クリティカルパスの配線は、配線遅延を極小化するため、上層配線層を用いてかつ太い配線とする必要がある。このため、上述のようなデータバス線の引き回しが、無視できないチップサイズの増加を引き起こしていた。
さらに、GHzを超える高い周波数でデータを入出力する製品では、そのバンド幅を低下させないために、データバス線のレイアウト上の配慮が特に重要である。
図13は、図12のデータ幅圧縮機能を実装した場合の従来の半導体記憶装置の全体レイアウト図である。
従来の半導体記憶装置では、図13に示すように、セルアレイ領域211の下部長辺に隣接してIOバッファ領域212、MUX回路領域213、およびシフトレジスタ領域214が、この順序で配置されている。また、チップ下部長辺に沿って、入出力回路領域215a、215bが、クロック生成回路領域216を挟んで左右対称となるよう配置されている。
このようなレイアウトは、GHzを超える高速な入出力を実現するために、IOバッファ領域212から入出力回路領域215a、215bまでのデータバス線が最短でかつほぼ等長となるよう考慮されたものである。
しかしながら、図13からもわかるように、上述したMUX回路202内のデータバス線の引き回しは、長いものではチップ長辺の1/4近くにおよび、数mmに達している。この値は、IOバッファ領域212から入出力回路領域215a、215bまでの数倍にもなり、これらに起因する配線遅延のアンバランスは、入出力データのバンド幅を著しく低下させる原因となっていた。
特開2000−188381号公報
上述のごとく、入出力のデータ幅圧縮機能を有する従来の半導体記憶装置には、無視できないチップサイズの増加と入出力バンド幅の著しい低下という本質的な問題があった。
本発明は、上記問題点を解決するためになされたもので、チップサイズの増加を抑制しつつ高速なシリアル入出力が可能なデータ幅圧縮機能を有する半導体記憶装置を提供することを目的とする。
本発明の一態様によれば、データを記憶するメモリセルが行および列方向に繰り返し配置され、複数の領域に分割されたセルアレイと、前記セルアレイの1つの領域から複数のデータを読み出して増幅し、IOデータとして出力データバス線へ出力するアクセス手段と、前記アクセス手段からの前記IOデータを受信し、少なくとも2つのデータをマルチプレクスして1つのシリアルデータとして出力する複数の並列−直列変換手段と、互いに異なる前記並列−直列変換手段からの出力が接続された2つの入力を有し、出力データ幅および読み出しアドレスに基づいて、前記2つの入力のうち一方を選択して前記シリアルデータを出力する複数の選択手段と、前記並列−直列変換手段の出力または前記選択手段の出力が入力に接続され、受信したデータを保持するとともにそれぞれに出力タイミングを調整する複数の出力調整手段と、前記複数の前記並列−直列変換手段、前記複数の前記選択手段、および前記複数の前記出力調整手段から構成され、入力に前記出力データバス線が接続され、出力に前記出力調整手段からのデータを出力するシリアル出力データバス線が接続されている転送手段を備え、前記転送手段は、読み出しデータの並列−直列変換機能および出力データ幅の変更機能を有することを特徴とする半導体記憶装置が提供される。
また、本発明の別の一態様によれば、シリアル入力データバス線からのシリアルデータを受信し、これらを保持するとともにそれぞれにタイミングを調整して出力する複数の入力調整手段と、前記入力調整手段の出力が入力に接続され、入力データ幅および書き込みアドレスに基づいて、2つの出力のうち一方を選択して前記入力調整手段から受信した前記シリアルデータを出力する複数の選択手段と、前記入力調整手段の出力または前記選択手段の1つの出力が入力に接続され、受信した前記シリアルデータを少なくとも2つのパラレルデータに変換して出力する複数の直列−並列変換手段と、前記複数の前記入力調整手段、前記複数の前記選択手段、および前記複数の前記直列−並列変換手段から構成され、入力に前記シリアル入力データバス線が接続され、出力に前記直列−並列変換手段からの前記パラレルデータをIOデータとして出力する入力データバス線が接続されている転送手段と、データを記憶するメモリセルが行および列方向に繰り返し配置され、複数の領域に分割されたセルアレイと、前記入力データバス線からの前記IOデータを増幅し、前記セルアレイへ書き込むアクセス手段を備え、前記転送手段は、書き込みデータの直列−並列変換機能および入力データ幅の変更機能を有することを特徴とする半導体記憶装置が提供される。
本発明によれば、データバス線を引き回さずに入出力のデータ幅圧縮機能を実装できるので、チップサイズの増加を抑制しつつ、高速なシリアル入出力が可能な半導体記憶装置を実現することができる。
以下、図面を参照しながら本発明に係わる半導体記憶装置を実現するための実施例を説明する。
図1は、本発明の実施例1に係わる半導体記憶装置を示す回路ブロック図である。ここでは、一例として、入出力データ幅を16ビット/8ビット/4ビットで切り替えるデータ幅圧縮機能を有する半導体記憶装置を示した。
また、上位バイト(DQ_8〜DQ_15)に対応する部分は、下位バイト(DQ_0〜DQ_7)に対応する部分と同様の構成、動作なので、詳しい説明は省略する。
本発明の実施例1に係わる半導体記憶装置は、データを記憶しておくメモリコア部11、入出力データ幅の圧縮と並列−直列変換を行う圧縮機能付RWレジスタ12a、12b(以下、「RWレジスタ12a、12b」という)、外部とのデータ入出力を行う入出力回路13a、13b、各回路ブロックの同期に使用されるクロック信号(tclk/rclk)を生成するクロック生成回路14、およびこれらの回路動作に必要な制御信号を生成する制御回路15を備えている。
メモリコア部11は、メモリセルを行および列方向に繰り返し配置したセルアレイ16a〜16d、およびデータの信号レベルを増幅するIOバッファ17a〜17dを有している。
セルアレイ16a〜16dおよびIOバッファ17a〜17dは、外部入出力端子DQ_0〜DQ_7(図示していないが、それぞれには、対応するデータバスDQ<0:7>が接続されている。)に対応する領域に分割されている。
すなわち、入出力データ幅が16ビットの場合(以下、「16ビットモード」という。同様に、8ビットの場合を「8ビットモード」、4ビットの場合を「4ビットモード」という。)に、セルアレイ16aから読み出されたデータは、IOバッファ17aを介してDQ_0およびDQ_1へ出力され、DQ_0およびDQ_1に入力されたデータは、IOバッファ17aを介してセルアレイ16aに書き込まれる。
また、セルアレイ16bから読み出されたデータは、IOバッファ17bを介してDQ_2およびDQ_3へ出力され、DQ_2およびDQ_3に入力されたデータは、IOバッファ17bを介してセルアレイ16bに書き込まれる。
さらに、セルアレイ16cから読み出されたデータは、IOバッファ17cを介してDQ_4およびDQ_5へ出力され、DQ_4およびDQ_5に入力されたデータは、IOバッファ17cを介してセルアレイ16cに書き込まれる。
さらに、セルアレイ16dから読み出されたデータは、IOバッファ17dを介してDQ_6およびDQ_7へ出力され、DQ_6およびDQ_7に入力されたデータは、IOバッファ17dを介してセルアレイ16dに書き込まれる。
図中の各回路ブロックに付した(DQ_0)〜(DQ_15)は、この16ビットモードでの対応関係を示している。
RWレジスタ12aの第1のデータ入力には、IOバッファ17aからのデータバス線RD_0<0:3>(以下、バス線は<0:3>のように表す。)およびRD_1<0:3>が接続され、第2のデータ入力には、IOバッファ17bからのデータバス線RD_2<0:3>およびRD_3<0:3>が接続され、シリアルデータ入力には、入出力回路13aからのシリアルデータバス線eWrite<0:3>およびoWrite<0:3>が接続されている。
また、RWレジスタ12aの第1のデータ出力には、IOバッファ17aへのデータバス線WD_0<0:3>およびWD_1<0:3>が接続され、第2のデータ出力には、IOバッファ17bへのデータバス線WD_2<0:3>およびWD_3<0:3>が接続され、シリアルデータ出力には、入出力回路13aへのシリアルデータバス線eRead<0:3>およびoRead<0:3>が接続されている。
RWレジスタ12bの第1のデータ入力には、IOバッファ17cからのデータバス線RD_4<0:3>およびRD_5<0:3>が接続され、第2のデータ入力には、IOバッファ17dからのデータバス線RD_6<0:3>およびRD_7<0:3>が接続され、シリアルデータ入力には、入出力回路13bからのシリアルデータバス線eWrite<4:7>およびoWrite<4:7>が接続されている。
また、RWレジスタ12bの第1のデータ出力には、IOバッファ17cへのデータバス線WD_4<0:3>およびWD_5<0:3>が接続され、第2のデータ出力には、IOバッファ17dへのデータバス線WD_6<0:3>およびWD_7<0:3>が接続され、シリアルデータ出力には、入出力回路13bへのシリアルデータバス線eRead<4:7>およびoRead<4:7>が接続されている。
入出力回路13aの外部入出力端子DQ_0〜DQ_3には、外部データバスDQ<0:3>がそれぞれ接続され、入出力回路13bの外部入出力端子DQ_4〜DQ_7には、外部データバスDQ<4:7>がそれぞれ接続されている。
クロック生成回路14は、外部バスからシステムクロック(TCLK/RCLK)を受信し、クロック信号(tclk/rclk)を生成し、これをRWレジスタ12a、12b、入出力回路13a、13b、および制御回路15へ供給する。
制御回路15は、外部コマンドバスからアドレスデータを含むコマンド(COMMAND)を受信し、これに基づいて内部動作に必要な制御信号を生成し、これをRWレジスタ12a、12b、入出力回路13a、13b、およびメモリコア部11へ供給する。
上位バイト(DQ_8〜DQ_15)に対応する部分は上述した構成と同様であり、外部入出力端子DQ_8〜DQ_15には、外部データバスDQ<8:15>が接続されている。
IOバッファ17a〜17dは、それぞれ、対応するセルアレイ16a〜16dから4ビットx2セットのデータを読み出し、信号レベルを増幅してRWレジスタ12a、12bへ供給する。
また、IOバッファ17a〜17dは、それぞれ、4ビットx2セットのデータをRWレジスタ12aまたは12bから受信し、信号レベルを増幅して対応するセルアレイ16a〜16dへ書き込む。
入出力回路13a、13bは、それぞれ、RWレジスタ12a、12bから2ビットシリアルx4ビットのシリアルデータを2セット受信し、並列−直列変換によって、4ビットシリアルx4ビットの出力データを生成し、これらをクロック信号tclkに同期して外部データバスへ出力する。
また、入出力回路13a、13bは、それぞれ、4ビットシリアルx4ビットの入力データをクロック信号rclkに同期して外部データバスから受信し、直列−並列変換によって、2ビットシリアルx4ビットのシリアルデータを2セットずつ生成し、これらをRWレジスタ12a、12bへ供給する。
RWレジスタ12a、12bは、データ読み出し時に出力データ幅圧縮と並列−直列変換を行うRレジスタ、および、データ書き込み時に入力データ幅圧縮と直列−並列変換を行うWレジスタから構成される。
入出力のデータ幅圧縮は、論理的には、外部入出力のビット数とセルアレイ16a〜16dへアクセスするカラムアドレスのビット数を交換することで実装されている。すなわち、16ビットモードに比べ、8ビットモードでは、カラムアドレスが1ビット多く、4ビットモードでは、カラムアドレスが2ビット多くなっている。
図2は、本発明の実施例1に係わる半導体記憶装置のRレジスタを示す回路ブロック図である。
本発明の実施例1に係わる半導体記憶装置のRレジスタは、8つの2入力−1出力選択回路21a〜21h(以下、「MX21a〜21h」という。)からなるマルチプレクサ回路22(以下、「MUX回路22」という。)、16個のマスタースレーブ型フリップフロップ23a〜23s(以下、「FF23a〜23s」という。)からなるシフトレジスタ24、MX25aと25bからなるMUX回路26、および4つのラッチ回路27a〜27d(以下、Lat27a〜27dという。)と4つのFF28a〜28dからなる出力レジスタ29を備えている。
MUX回路22を構成するMX21a〜21hの入力には、それぞれ、隣り合うデータバス線が接続され、出力は、シフトレジスタ24へ供給されている。
すなわち、MX21aの入力には、RD_0<3>およびRD_1<3>が接続され、MX21bの入力には、RD_0<2>およびRD_1<2>が接続され、MX21cの入力には、RD_0<1>およびRD_1<1>が接続され、MX21dの入力には、RD_0<0>およびRD_1<0>が接続され、MX21eの入力には、RD_3<0>およびRD_2<0>が接続され、MX21fの入力には、RD_3<1>およびRD_2<1>が接続され、MX21gの入力には、RD_3<2>およびRD_2<2>が接続され、MX21hの入力には、RD_3<3>およびRD_2<3>が接続されている。
MUX回路22は、IOバッファ17aおよび17bから受信した読み出しデータを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードでは、読み出しアドレスにかかわりなく常に、MX21aは、RD_0<3>を選択して出力し、MX21bは、RD_0<2>を選択して出力し、MX21cは、RD_0<1>を選択して出力し、MX21dは、RD_0<0>を選択して出力し、MX21eは、RD_2<0>を選択して出力し、MX21fは、RD_2<1>を選択して出力し、MX21gは、RD_2<2>を選択して出力し、MX21hは、RD_2<3>を選択して出力する。
また、8ビットモードおよび4ビットモードでは、MX21a〜21hは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表1は、それぞれのモードで、上位アドレスにしたがって、MX21a〜21hが選択するデータバス線を示している。
例えば、MX21aは、8ビットモードおよび4ビットモードでは、上位アドレスが“0”の場合にRD_0<3>を選択して出力し、上位アドレスが“1”の場合にRD_1<3>を選択して出力する。
4ビットモードでは、16ビットモードに比べ読み出しアドレスが2ビット多くなるが、表1では、2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットは後述するMUX回路26で使用される。
シフトレジスタ24を構成するFF23a〜23sは、2個が対になって8組の2ビット並列−直列変換回路を構成しており、それぞれのパラレル入力には、MUX回路22からの出力、またはIOバッファ17a、17bからの出力が接続され、それぞれのシリアル出力は、MUX回路26または出力レジスタ29へ供給されている。
すなわち、FF23aのパラレル入力には、MX21bの出力が接続され、FF23bのパラレル入力には、MX21dの出力が接続され、FF23bのシリアル入力には、FF23aのシリアル出力が接続されている。FF23bのシリアル出力eR0は、MUX回路26へ供給されている。
また、FF23cのパラレル入力には、RD_1<2>が接続され、FF23dのパラレル入力には、RD_1<0>が接続され、FF23dのシリアル入力には、FF23cのシリアル出力が接続されている。FF23dのシリアル出力eR1は、出力レジスタ29へ供給されている。
さらに、FF23eのパラレル入力には、MX21aの出力が接続され、FF23fのパラレル入力には、MX21cの出力が接続され、FF23fのシリアル入力には、FF23eのシリアル出力が接続されている。FF23fのシリアル出力oR0は、MUX回路26へ供給されている。
さらに、FF23gのパラレル入力には、RD_1<3>が接続され、FF23hのパラレル入力には、RD_1<1>が接続され、FF23hのシリアル入力には、FF23gのシリアル出力が接続されている。FF23hのシリアル出力oR1は、出力レジスタ29へ供給されている。
さらに、FF23kのパラレル入力には、MX21gの出力が接続され、FF23jのパラレル入力には、MX21eの出力が接続され、FF23jのシリアル入力には、FF23kのシリアル出力が接続されている。FF23jのシリアル出力eR2は、MUX回路26および出力レジスタ29へ供給されている。
さらに、FF23nのパラレル入力には、RD_3<2>が接続され、FF23mのパラレル入力には、RD_3<0>が接続され、FF23mのシリアル入力には、FF23nのシリアル出力が接続されている。FF23mのシリアル出力eR3は、出力レジスタ29へ供給されている。
さらに、FF23qのパラレル入力には、MX21hの出力が接続され、FF23pのパラレル入力には、MX21fの出力が接続され、FF23pのシリアル入力には、FF23qのシリアル出力が接続されている。FF23pのシリアル出力oR2は、MUX回路26および出力レジスタ29へ供給されている。
さらに、FF23sのパラレル入力には、RD_3<3>が接続され、FF23rのパラレル入力には、RD_3<1>が接続され、FF23rのシリアル入力には、FF23sのシリアル出力が接続されている。FF23rのシリアル出力oR3は、出力レジスタ29へ供給されている。
シフトレジスタ24は、16ビットモードでは、IOバッファ17aおよび17bから受信した16ビットの読み出しデータを8組の2ビットシリアルデータeR0、eR1、oR0、oR1、eR2、eR3、oR2、およびoR3に並列−直列変換する。
MUX回路26を構成するMX25aおよび25bの入力には、シフトレジスタ24からのシリアル出力が接続されており、MX25aおよび25bの出力は出力レジスタ29へ供給されている。
すなわち、MX25aの入力には、eR0およびeR2が接続され、MX25bの入力には、oR0およびoR2が接続されている。
MUX回路26は、シフトレジスタ24から受信したシリアル出力データを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードおよび8ビットモードでは、読み出しアドレスにかかわりなく常に、MX25aは、eR0を選択して出力し、MX25bは、oR0を選択して出力する。
また、4ビットモードでは、MX25aおよび25bは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表2は、4ビットモードで、上位アドレスにしたがって、MX25aおよび25bが選択する信号を示している。
例えば、MX25aは、4ビットモードでは、上位アドレスが“0”の場合にeR0を選択して出力し、上位アドレスが“1”の場合にeR2を選択して出力する。
出力レジスタ29は、シフトレジスタ24およびMUX回路26からのシリアル出力データを受信し、クロック信号tclkに同期してこれらをシリアルデータバス線eRead<0:3>およびoRead<0:3>へ出力する。
すなわち、FF28aの入力にはoR1が接続され、出力にはoRead<1>が接続されている。また、FF28bの入力にはMX25bの出力が接続され、出力にはoRead<0>が接続されている。
さらに、Lat27aの入力にはeR1が接続され、出力にはeRead<1>が接続されている。さらに、Lat27bの入力にはMX25aの出力が接続され、出力にはeRead<0>が接続されている。
さらに、Lat27cの入力にはeR2が接続され、出力にはeRead<2>が接続されている。さらに、Lat27dの入力にはeR3が接続され、出力にはeRead<3>が接続されている。
さらに、FF28cの入力にはoR2が接続され、出力にはoRead<2>が接続されている。さらに、FF28dの入力にはoR3が接続され、出力にはoRead<3>が接続されている。
出力レジスタ29において、eRead<0:3>にLat27a〜27dを使用し、oRead<0:3>にFF28a〜28dを使用しているのは、oRead<0:3>をeRead<0:3>からクロック信号tclkの半周期分遅らせるためである。
次に、上述した構成を持つ半導体記憶装置のデータ読み出し動作について説明する。
図3は、本発明の実施例1に係わる半導体記憶装置の読み出し動作を示す波形図である。ここでは、一例として、セルアレイ16aのデータを読み出してDQ<0>へ出力する場合の動作波形を示した。
まず、制御回路15はクロック信号rclkに同期してコマンドバスからRead Commandを受信し、必要な制御信号を生成して各回路へ供給する。Read Commandにはセルアレイ16a〜16dにアクセスするためのアドレスも含まれている。
セルアレイ16aから読み出されたデータは、IOバッファ17aによって増幅され、クロック信号tclkに同期してデータバス線RD_0<0:3>へ出力される。
これら4ビットのデータは、Rレジスタによって、2ビットシリアルのeR0およびoR0に変換され、tclkに同期してeRead<0>およびoRead<0>へ出力される。この時、上述したように、oRead<0>はeRead<0>に対してtclkの半周期分だけ遅れて出力される。
最後に、入出力回路13aで、eRead<0>とoRead<0>がマルチプレクスされ、4ビットシリアルのRead DataとしてDQ<0>へ出力される。
メモリコア部11からデータバスまでの信号伝搬と各回路ブロックでの処理時間を最適化するために、IOバッファ17a、RWレジスタ12a、および入出力回路13aの出力タイミングは、それぞれ、tclkの半周期分ずらして設定されている。
16ビット/8ビット/4ビットの各モードは、上述したように、MUX回路22およびMUX回路26での入力の選択によって実現され、この選択は、IOバッファ17aがRD_0<0:3>を出力する前に決定されている。
したがって、図3に示した動作波形は、入出力データ幅には影響されない。
図3は、DQ<0>への出力動作波形であるが、DQ<1>〜DQ<3>への出力動作も同様である。
次に、データ書き込み時に動作するWレジスタについて説明する。
図4は、本発明の実施例1に係わる半導体記憶装置のWレジスタを示す回路ブロック図である。
本発明の実施例1に係わる半導体記憶装置のWレジスタは、8つの1入力−2出力選択回路41a〜41h(以下、「MX41a〜41h」という。)からなるマルチプレクサ回路42(以下、「MUX回路42」という。)、16個のLat43a〜43sからなるライトレジスタ44、MX45aと45bからなるMUX回路46、および4つのFF47a〜47dと4つのLat48a〜48dからなる入力レジスタ49を備えている。
MUX回路42を構成するMX41a〜41hの出力には、それぞれ、隣り合うデータバス線が接続され、入力は、ライトレジスタ44から供給されている。
すなわち、MX41aの出力には、WD_0<3>およびWD_1<3>が接続され、MX41bの出力には、WD_0<2>およびWD_1<2>が接続され、MX41cの出力には、WD_0<1>およびWD_1<1>が接続され、MX41dの出力には、WD_0<0>およびWD_1<0>が接続され、MX41eの出力には、WD_3<0>およびWD_2<0>が接続され、MX41fの出力には、WD_3<1>およびWD_2<1>が接続され、MX41gの出力には、WD_3<2>およびWD_2<2>が接続され、MX41hの出力には、WD_3<3>およびWD_2<3>が接続されている。
MUX回路42は、IOバッファ17aおよび17bへの書き込みデータを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモードでは、書き込みアドレスにかかわりなく常に、MX41aはWD_0<3>へ出力し、MX41bはWD_0<2>へ出力し、MX41cはWD_0<1>へ出力し、MX41dはWD_0<0>へ出力し、MX41eはWD_2<0>へ出力し、MX41fはWD_2<1>へ出力し、MX41gはWD_2<2>へ出力し、MX41hはWD_2<3>へ出力する。
また、8ビットモードおよび4ビットモードでは、MX41a〜41hは、書き込みアドレスの上位ビットにしたがって、どちらかの出力を選択して入力データを出力する。表3は、それぞれのモードで、MX41a〜41hが上位アドレスにしたがって入力データを出力するデータバス線を示している。
例えば、MX41aは、8ビットモードおよび4ビットモードでは、上位アドレスが“0”の場合にWD_0<3>へ入力データを出力し、上位アドレスが“1”の場合にWD_1<3>へ入力データを出力する。
Rレジスタと同様に、表3の4ビットモードでは、増えた2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットは後述するMUX回路46で使用される。
ライトレジスタ44を構成するLat43a〜43sは、2個が対になって8組の2ビット直列−並列変換回路を構成しており、それぞれの入力には、入力レジスタ49からの出力、またはMUX回路46からの出力が接続されている。また、それぞれの出力は、MUX回路46またはIOバッファ17a、17bへ供給されている。
すなわち、Lat43aおよび43bの入力には、MUX回路46からの出力eW0が接続され、Lat43aの出力は、MX41bの入力へ接続され、Lat43bの出力は、MX41dの入力へ接続されている。
また、Lat43cおよび43dの入力には、入力レジスタ49からの出力eW1が接続され、Lat43cの出力には、WD_1<2>が接続され、Lat43dの出力には、WD_1<0>が接続されている。
さらに、Lat43eおよび43fの入力には、MUX回路46からの出力oW0が接続され、Lat43eの出力は、MX41aの入力へ接続され、Lat43fの出力は、MX41cの入力へ接続されている。
さらに、Lat43gおよび43hの入力には、入力レジスタ49からの出力oW1が接続され、Lat43gの出力には、WD_1<3>が接続され、Lat43hの出力には、WD_1<1>が接続されている。
さらに、Lat43jおよび43kの入力には、入力レジスタ49からの出力eW2が接続され、Lat43jの出力は、MX41eの入力へ接続され、Lat43kの出力は、MX41gの入力へ接続されている。
さらに、Lat43mおよび43nの入力には、入力レジスタ49からの出力eW3が接続され、Lat43mの出力には、WD_3<0>が接続され、Lat43nの出力には、WD_3<2>が接続されている。
さらに、Lat43pおよび43qの入力には、入力レジスタ49からの出力oW2が接続され、Lat43pの出力は、MX41fの入力へ接続され、Lat43qの出力は、MX41hの入力へ接続されている。
さらに、Lat43rおよび43sの入力には、入力レジスタ49からの出力oW3が接続され、Lat43rの出力には、WD_3<1>が接続され、Lat43sの出力には、WD_3<3>が接続されている。
ここで、WD_1<3>には、MX41aの出力およびLat43eの出力が両方とも接続されているが、これらが同時にデータを出力することはないので問題はない。以下、複数の出力が接続されているノードはすべて同様である。
ライトレジスタ44は、16ビットモードでは、MUX回路46および入力レジスタ49から受信した8組の2ビットシリアルデータeW0、eW1、oW0、oW1、eW2、eW3、oW2、およびoW3を16ビットの書き込みデータに直列−並列変換する。
MUX回路46を構成するMX45aおよび45bの入力には、入力レジスタ49からの出力が接続され、出力にはeW0、eW2、oW0、およびoW2が接続されている。
すなわち、MX45aの入力には、入力レジスタ49のFF47bの出力が接続され、MX45bの入力には、入力レジスタ49のLat48bの出力が接続されている。
また、MX45aの一方の出力にはeW0が接続され、他方の出力にはeW2が接続されている。さらに、MX45bの一方の出力にはoW0が接続され、他方の出力にはoW2が接続されている。
MUX回路46は、入力レジスタ49から受信した入力データを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモードおよび8ビットモードでは、書き込みアドレスにかかわりなく常に、MX45aはeW0へ出力し、MX45bはoW0へ出力する。
また、4ビットモードでは、MX45aおよび45bは、書き込みアドレスの上位ビットにしたがって、どちらかの出力を選択して入力データを出力する。表4は、4ビットモードで、上位アドレスにしたがって、MX45aおよび45bが選択する出力先を示している。
例えば、MX45aは、4ビットモードでは、上位アドレスが“0”の場合にeW0へ出力し、上位アドレスが“1”の場合にeW2へ出力する。
入力レジスタ49は、シリアルデータバス線eWrite<0:3>およびoWrite<0:3>からシリアル入力データを受信し、クロック信号rclkに同期してこれらをライトレジスタ44およびMUX回路46へ出力する。
すなわち、Lat48aの入力にはoWrite<1>が接続され、出力にはoW1が接続されている。また、Lat48bの入力にはoWrite<0>が接続され、出力はMX45bの入力へ接続されている。
さらに、FF47aの入力にはeWrite<1>が接続され、出力にはeW1が接続されている。さらに、FF47bの入力にはeWrite<0>が接続され、出力はMX45aの入力へ接続されている。
さらに、FF47cの入力にはeWrite<2>が接続され、出力にはeW2が接続されている。さらに、FF47dの入力にはeWrite<3>が接続され、出力にはeW3が接続されている。
さらに、Lat48cの入力にはoWrite<2>が接続され、出力にはoW2が接続されている。さらに、Lat48dの入力にはoWrite<3>が接続され、出力にはoW3が接続されている。
入力レジスタ49において、eWrite<0:3>にFF47a〜47dを使用し、oWrite<0:3>にLat48a〜48dを使用しているのは、互いにクロック信号rclkの半周期分ずれているeWrite<0:3>とoWrite<0:3>を受信し、同じタイミングで8組の2ビットシリアルデータeW0、eW1、oW0、oW1、eW2、eW3、oW2、およびoW3を出力するためである。
次に、上述した構成を持つ半導体記憶装置のデータ書き込み動作について説明する。
図5は、本発明の実施例1に係わる半導体記憶装置の書き込み動作を示す波形図である。ここでは、一例として、DQ<0>から入力したデータをセルアレイ16aへ書き込む場合の動作波形を示した。
まず、制御回路15はクロック信号rclkに同期してコマンドバスからWrite Commandを受信し、必要な制御信号を生成して各回路へ供給する。Write Commandにはセルアレイ16a〜16dにアクセスするためのアドレスも含まれている。
データバスDQ<0>から入力された4ビットシリアルのWrite Dataは、入出力回路13aで、互いにrclkの半周期分ずれた2組の2ビットシリアルデータに変換され、それぞれがシリアルデータバス線eWrite<0>およびoWrite<0>へ出力される。
次に、これらが入力レジスタ49でタイミング調整され、rclkに同期してeW0およびoW0に出力される。この2ビットシリアルデータのうち最初のデータは、rclkに同期したラッチ信号WG101によってLat43bおよび43fに取り込まれ、データバス線WD_0<0>およびWD_0<1>へ出力される。
また、2ビットシリアルデータのうち2番目のデータは、WG101からrclkの1周期分遅れたラッチ信号WG123によってLat43aおよび43eに取り込まれ、データバス線WD_0<2>およびWD_0<3>へ出力される。
最後に、WD_0<0:3>のテータが、IOバッファ17aによってセルアレイ16aへ書き込まれる。
図5のデータ書き込み動作においても、読み出し動作と同様に、内部データバスの信号伝搬と各回路ブロックでの処理時間が最適化されている。
また、16ビット/8ビット/4ビットの各モードは、上述したように、MUX回路42およびMUX回路46での出力信号の振り分けによって実現され、この振り分けは、入出力回路13aがeWrite<0:3>およびoWrite<0:3>を出力する前に決定されている。
したがって、図5に示した動作波形は、入出力データ幅には影響されない。
図5は、DQ<0>からの入力動作波形であるが、DQ<1>〜DQ<3>からの入力動作も同様である。
以上説明した実施例1で重要なことは、MUX回路22および26が2入力−1出力の選択回路で構成され、MUX回路42および46が1入力−2出力の選択回路で構成されていることと、MUX回路26がシフトレジスタ24と出力レジスタ29の間に配置され、MUX回路46がライトレジスタ44と入力レジスタ49の間に配置されていることである。
このようにMUX回路22、26、42、および46を分散配置することにより、データバス線RD_0<0:3>〜RD_3<0:3>およびWD_0<0:3>〜WD_3<0:3>を引き回すことなく、入出力のデータ幅圧縮機能を実装することができる。
上記実施例1によれば、データ幅圧縮機能の実装に際して、チップサイズの増加を抑制できるばかりでなく、データバス線およびRWレジスタ12a、12bでのオーバーヘッドを最小限に抑えることができ、高速なシリアル入出力が可能となる。
図6は、本発明の実施例2に係わる半導体記憶装置のRレジスタを示す回路ブロック図である。
なお、本実施例に係わる半導体記憶装置の全体回路ブロック図は、図1と同じである。
本発明の実施例2に係わる半導体記憶装置のRレジスタは、16個のマスタースレーブ型フリップフロップ61a〜61s(以下、「FF61a〜61s」という。)からなるシフトレジスタ62、4つの2入力−1出力選択回路63a〜63d(以下、「MX63a〜63d」という。)からなるマルチプレクサ回路64(以下、「MUX回路64」という。)、4つのラッチ回路65a〜65d(以下、Lat65a〜65dという。)と4つのFF66a〜66dからなる出力レジスタ67、およびMX68aと68bからなるMUX回路69を備えている。
シフトレジスタ62を構成するFF61a〜61sは、2個が対になって8組の2ビット並列−直列変換回路を構成しており、それぞれのパラレル入力には、IOバッファ17a、17bからの出力であるデータバス線RD_0<0:3>〜RD_3<0:3>が接続され、それぞれのシリアル出力は、MUX回路64および出力レジスタ67へ供給されている。
すなわち、FF61aのパラレル入力には、RD_0<2>が接続され、FF61bのパラレル入力には、RD_0<0>が接続され、FF61bのシリアル入力には、FF61aのシリアル出力が接続されている。FF61bのシリアル出力eR0は、MUX回路64へ供給されている。
また、FF61cのパラレル入力には、RD_1<2>が接続され、FF61dのパラレル入力には、RD_1<0>が接続され、FF61dのシリアル入力には、FF61cのシリアル出力が接続されている。FF61dのシリアル出力eR1は、MUX回路64および出力レジスタ67へ供給されている。
さらに、FF61eのパラレル入力には、RD_0<3>が接続され、FF61fのパラレル入力には、RD_0<1>が接続され、FF61fのシリアル入力には、FF61eのシリアル出力が接続されている。FF61fのシリアル出力oR0は、MUX回路64へ供給されている。
さらに、FF61gのパラレル入力には、RD_1<3>が接続され、FF61hのパラレル入力には、RD_1<1>が接続され、FF61hのシリアル入力には、FF61gのシリアル出力が接続されている。FF61hのシリアル出力oR1は、MUX回路64および出力レジスタ67へ供給されている。
さらに、FF61kのパラレル入力には、RD_2<2>が接続され、FF61jのパラレル入力には、RD_2<0>が接続され、FF61jのシリアル入力には、FF61kのシリアル出力が接続されている。FF61jのシリアル出力eR2は、MUX回路64へ供給されている。
さらに、FF61nのパラレル入力には、RD_3<2>が接続され、FF61mのパラレル入力には、RD_3<0>が接続され、FF61mのシリアル入力には、FF61nのシリアル出力が接続されている。FF61mのシリアル出力eR3は、MUX回路64および出力レジスタ67へ供給されている。
さらに、FF61qのパラレル入力には、RD_2<3>が接続され、FF61pのパラレル入力には、RD_2<1>が接続され、FF61pのシリアル入力には、FF61qのシリアル出力が接続されている。FF61pのシリアル出力oR2は、MUX回路64へ供給されている。
さらに、FF61sのパラレル入力には、RD_3<3>が接続され、FF61rのパラレル入力には、RD_3<1>が接続され、FF61rのシリアル入力には、FF61sのシリアル出力が接続されている。FF61rのシリアル出力oR3は、MUX回路64および出力レジスタ67へ供給されている。
シフトレジスタ62は、16ビットモードでは、IOバッファ17aおよび17bから受信した16ビットの読み出しデータを8組の2ビットシリアルデータeR0、eR1、oR0、oR1、eR2、eR3、oR2、およびoR3に並列−直列変換する。
MUX回路64を構成するMX63a〜63dの入力には、シフトレジスタ62からのシリアル出力が接続されており、MX63a〜63dの出力は出力レジスタ67へ供給されている。
すなわち、MX63aの入力には、eR0およびeR1が接続され、MX63bの入力には、oR0およびoR1が接続され、MX63cの入力には、eR2およびeR3が接続され、MX63dの入力には、oR2およびoR3が接続されている。
MUX回路64は、シフトレジスタ62から受信したシリアル出力データを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードでは、読み出しアドレスにかかわりなく常に、MX63aは、eR0を選択して出力し、MX63bは、oR0を選択して出力し、MX63cは、eR2を選択して出力し、MX63dは、oR2を選択して出力する。
また、8ビットモードおよび4ビットモードでは、MX63a〜63dは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表5は、それぞれのモードで、上位アドレスにしたがって、MX63a〜63dが選択する信号を示している。
例えば、MX63aは、8ビットモードおよび4ビットモードでは、上位アドレスが“0”の場合にeR0を選択して出力し、上位アドレスが“1”の場合にeR1を選択して出力する。
4ビットモードでは、16ビットモードに比べ読み出しアドレスが2ビット多くなるが、表5では、2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットは後述するMUX回路69で使用される。
出力レジスタ67は、シフトレジスタ62およびMUX回路64からのシリアル出力データを受信し、クロック信号tclkに同期してこれらをMUX回路69、または、シリアルデータバス線eRead<0:3>およびoRead<0:3>へ出力する。
すなわち、FF66aの入力にはoR1が接続され、出力にはoRead<1>が接続されている。また、FF66bの入力にはMX63bの出力が接続されており、出力はMUX回路69へ供給されている。
さらに、Lat65aの入力にはeR1が接続され、出力にはeRead<1>が接続されている。さらに、Lat65bの入力にはMX63aの出力が接続されており、出力はMUX回路69へ供給されている。
さらに、Lat65cの入力にはMX63cの出力が接続され、出力にはeRead<2>が接続されている。さらに、Lat65dの入力にはeR3が接続され、出力にはeRead<3>が接続されている。
さらに、FF66cの入力にはMX63dの出力が接続され、出力にはoRead<2>が接続されている。さらに、FF66dの入力にはoR3が接続され、出力にはoRead<3>が接続されている。
出力レジスタ67において、eRead<0:3>にLat65a〜65dを使用し、oRead<0:3>にFF66a〜66dを使用しているのは、oRead<0:3>をeRead<0:3>からクロック信号tclkの半周期分遅らせるためである。
MUX回路69を構成するMX68aおよび68bの入力には、出力レジスタ67からのシリアル出力が接続され、出力には、シリアルデータバス線eRead<0>およびoRead<0>が接続されている。
すなわち、MX68aの入力には、Lat65bの出力およびeRead<2>が接続され、MX68bの入力には、FF66bの出力およびoRead<2>が接続されている。また、MX68aの出力には、eRead<0>が接続され、MX68bの出力には、oRead<0>が接続されている。
MUX回路69は、出力レジスタ67から受信したデータを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードおよび8ビットモードでは、読み出しアドレスにかかわりなく常に、MX68aは、Lat65bからの出力を選択し、MX68bは、FF66bからの出力を選択する。
また、4ビットモードでは、MX68aおよび68bは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表6は、4ビットモードで、上位アドレスにしたがって、MX68aおよび68bが選択する信号を示している。
例えば、MX68aは、4ビットモードでは、上位アドレスが“0”の場合にLat65bの出力を選択し、上位アドレスが“1”の場合にeRead<2>を選択する。
上述したような構成を持つ半導体記憶装置のデータ読み出し動作は、実施例1と同様なので説明は省略する。
16ビット/8ビット/4ビットの各モードは、実施例1と同様に、MUX回路64およびMUX回路69での入力の選択によって実現され、この選択は、IOバッファ17aおよび17bがRD_0<0:3>〜RD_3<0:3>を出力する前に決定されている。
次に、データ書き込み時に動作するWレジスタについて説明する。
図7は、本発明の実施例2に係わる半導体記憶装置のWレジスタを示す回路ブロック図である。
本発明の実施例2に係わる半導体記憶装置のWレジスタは、16個のLat71a〜71sからなるライトレジスタ72、4つの1入力−2出力選択回路73a〜73d(以下、「MX73a〜73d」という。)からなるマルチプレクサ回路74(以下、「MUX回路74」という。)、4つのFF75a〜75dと4つのLat76a〜76dからなる入力レジスタ77、およびMX78aと78bからなるMUX回路79を備えている。
ライトレジスタ72を構成するLat71a〜71sは、2個が対になって8組の2ビット直列−並列変換回路を構成しており、それぞれの入力には、入力レジスタ77からの出力、またはMUX回路74からの出力が接続されている。また、それぞれの出力は、IOバッファ17a、17bへ供給されている。
すなわち、Lat71aおよび71bの入力には、MUX回路74からの出力eW0が接続され、Lat71aの出力には、WD_0<2>が接続され、Lat71bの出力には、WD_0<0>が接続されている。
また、Lat71cおよび71dの入力には、入力レジスタ77からの出力eW1が接続され、Lat71cの出力には、WD_1<2>が接続され、Lat71dの出力には、WD_1<0>が接続されている。
さらに、Lat71eおよび71fの入力には、MUX回路74からの出力oW0が接続され、Lat71eの出力には、WD_0<3>が接続され、Lat71fの出力には、WD_0<1>が接続されている。
さらに、Lat71gおよび71hの入力には、入力レジスタ77からの出力oW1が接続され、Lat71gの出力には、WD_1<3>が接続され、Lat71hの出力には、WD_1<1>が接続されている。
さらに、Lat71jおよび71kの入力には、MUX回路74からの出力eW2が接続され、Lat71jの出力には、WD_2<0>が接続され、Lat71kの出力には、WD_2<2>が接続されている。
さらに、Lat71mおよび71nの入力には、入力レジスタ77からの出力eW3が接続され、Lat71mの出力には、WD_3<0>が接続され、Lat71nの出力には、WD_3<2>が接続されている。
さらに、Lat71pおよび71qの入力には、MUX回路74からの出力oW2が接続され、Lat71pの出力には、WD_2<1>が接続され、Lat71qの出力には、WD_2<3>が接続されている。
さらに、Lat71rおよび71sの入力には、入力レジスタ77からの出力oW3が接続され、Lat71rの出力には、WD_3<1>が接続され、Lat71sの出力には、WD_3<3>が接続されている。
ライトレジスタ72は、16ビットモードでは、MUX回路74および入力レジスタ77から受信した8組の2ビットシリアルデータeW0、eW1、oW0、oW1、eW2、eW3、oW2、およびoW3を16ビットの書き込みデータに直列−並列変換する。
MUX回路74を構成するMX73a〜73dの入力には、入力レジスタ77からの出力が接続され、出力にはeW0、eW1、oW0、oW1、eW2、eW3、oW2、およびoW3が接続されている。
すなわち、MX73aの入力には、入力レジスタ77のFF75bの出力が接続され、MX73bの入力には、入力レジスタ77のLat76bの出力が接続され、MX73cの入力には、入力レジスタ77のFF75cの出力が接続され、MX73dの入力には、入力レジスタ77のLat76cの出力が接続されている。
また、MX73aの一方の出力にはeW0が接続され、他方の出力にはeW1が接続され、MX73bの一方の出力にはoW0が接続され、他方の出力にはoW1が接続されている。
さらに、MX73cの一方の出力にはeW2が接続され、他方の出力にはeW3が接続され、MX73dの一方の出力にはoW2が接続され、他方の出力にはoW3が接続されている。
MUX回路74は、入力レジスタ77から受信した入力データを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモードでは、書き込みアドレスにかかわりなく常に、MX73aはeW0へ出力し、MX73bはoW0へ出力し、MX73cはeW2へ出力し、MX73dはoW2へ出力する。
また、8ビットモードおよび4ビットモードでは、MX73a〜73dは、書き込みアドレスの上位ビットにしたがって、どちらかを選択して入力データを出力する。表7は、それぞれのモードで、MX73a〜73dが上位アドレスにしたがって選択する出力先を示している。
例えば、MX73aは、8ビットモードおよび4ビットモードでは、上位アドレスが“0”の場合にeW0を選択して出力し、上位アドレスが“1”の場合にeW1を選択して出力する。
Rレジスタと同様に、表7の4ビットモードでは、増えた2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットは後述するMUX回路79で使用される。
入力レジスタ77は、MUX回路79、または、シリアルデータバス線eWrite<0:3>およびoWrite<0:3>からシリアル入力データを受信し、クロック信号rclkに同期してこれらをライトレジスタ72およびMUX回路74へ出力する。
すなわち、Lat76aの入力にはoWrite<1>が接続され、出力にはoW1が接続されている。また、Lat76bの入力にはMX78bからの出力が接続され、出力はMX73bの入力へ接続されている。
さらに、FF75aの入力にはeWrite<1>が接続され、出力にはeW1が接続されている。さらに、FF75bの入力にはMX78aからの出力が接続され、出力はMX73aの入力へ接続されている。
さらに、FF75cの入力にはeWrite<2>が接続され、出力はMX73cの入力へ接続されている。さらに、FF75dの入力にはeWrite<3>が接続され、出力にはeW3が接続されている。
さらに、Lat76cの入力にはoWrite<2>が接続され、出力はMX73dの入力へ接続されている。さらに、Lat76dの入力にはoWrite<3>が接続され、出力にはoW3が接続されている。
ここで、oW1には、MX73bの出力およびLat76aの出力が両方とも接続されているが、これらが同時にデータを出力することはないので問題はない。以下、複数の出力が接続されているノードはすべて同様である。
入力レジスタ77において、eWrite<0:3>にFF75a〜75dを使用し、oWrite<0:3>にLat76a〜76dを使用しているのは、互いにクロック信号rclkの半周期分ずれているeWrite<0:3>とoWrite<0:3>を受信し、同じタイミングで8組の2ビットシリアルデータeW0、eW1、oW0、oW1、eW2、eW3、oW2、およびoW3を出力するためである。
MUX回路79を構成するMX78aおよび78bの出力には、シリアルデータバス線eWrite<0>およびoWrite<0>が接続され、入力は、入力レジスタ77から供給されている。
すなわち、MX78aの出力には、FF75bの入力およびeWrite<2>が接続され、入力には、eWrite<0>が接続されている。
また、MX78bの出力には、Lat76bの入力およびoWrite<2>が接続され、入力には、oWrite<0>が接続されている。
MUX回路79は、シリアルデータバス線eWrite<0>およびoWrite<0>から受信したデータを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモードおよび8ビットモードでは、書き込みアドレスにかかわりなく常に、MX78aはFF75bの入力へ出力し、MX78bはLat76bの入力へ出力する。
また、4ビットモードでは、MX78aおよび78bは、書き込みアドレスの上位ビットにしたがって、どちらかの出力を選択して入力データを出力する。表8は、4ビットモードで、上位アドレスにしたがって、MX78aおよび78bが選択する出力先を示している。
例えば、MX78aは、4ビットモードでは、上位アドレスが“0”の場合にFF75bの入力へ出力し、上位アドレスが“1”の場合にFF75cの入力、つまり、eWrite<2>へ出力する。
上述したような構成を持つ半導体記憶装置のデータ書き込み動作は、実施例1と同様なので説明は省略する。
16ビット/8ビット/4ビットの各モードは、実施例1と同様に、MUX回路74およびMUX回路79での出力の選択によって実現され、この選択は、入出力回路13aがeWrite<0:3>およびoWrite<0:3>を出力する前に決定されている。
以上説明した実施例2で重要なことは、MUX回路64および69が2入力−1出力の選択回路で構成され、MUX回路74および79が1入力−2出力の選択回路で構成されていることと、MUX回路64がシフトレジスタ62と出力レジスタ67の間に配置され、MUX回路74がライトレジスタ72と入力レジスタ77の間に配置されていることである。
これにより、実施例1と同様に、データバス線RD_0<0:3>〜RD_3<0:3>およびWD_0<0:3>〜WD_3<0:3>を引き回さずに、入出力のデータ幅圧縮機能を実装できる。
実施例1との違いは、IOバッファ17a、17bとの間にMUX回路22および42を入れる代わりに、MUX回路64および74によって隣り合うデータバス線に相当するデータのマルチプレクスを行うことと、MUX回路69および79をシリアルデータバス線に入れていることである。
こうすることで、データバス線RD_0<0:3>〜RD_3<0:3>およびWD_0<0:3>〜WD_3<0:3>での配線容量およびMUX回路22および42での入力容量による配線負荷を実施例1に比べさらに抑制することができる。
したがって、上記実施例2は、データバス線での配線遅延がボトルネックとなるような半導体記憶装置で非常に有効である。
次に、入出力のデータ幅を16ビット/8ビット/4ビット/2ビットで切り替えることのできるデータ幅圧縮機能を持った半導体記憶装置について説明する。
図8は、本発明の実施例3に係わる半導体記憶装置のRレジスタを示す回路ブロック図である。ここでは、主に、eRead<0>〜eRead<7>に係わる部分を示した。oRead<0>〜oRead<7>については、図8と同様なので説明は省略する。
なお、本実施例に係わる半導体記憶装置の全体回路ブロック図は、図1と同様である。実施例1との違いは、RWレジスタ12aおよび12bが、以下に説明するように、1つの回路ブロックとして実装されていることである。
本発明の実施例3に係わる半導体記憶装置のRレジスタは、8つの2入力−1出力選択回路81a〜81h(以下、「MX81a〜81h」という。)からなるマルチプレクサ回路82(以下、「MUX回路82」という。)、16個のマスタースレーブ型フリップフロップ83a〜83s(以下、「FF83a〜83s」という。)からなるシフトレジスタ84、2つのMX85a、85bからなるMUX回路86、8つのラッチ回路87a〜87h(以下、Lat87a〜87hという。)からなる出力レジスタ88、およびMX89を備えている。
MUX回路82およびシフトレジスタ84の構成は、実施例1のMUX回路22およびシフトレジスタ24と同様である。実施例1との違いは、MUX回路82およびシフトレジスタ84に入力されるデータバス線の組み合わせ方と、それに伴う、シフトレジスタ84の出力信号である。
言葉を換えていえば、データ読み出しにおけるカラムアドレスのアドレススクランブルが、実施例1と異なっている。
すなわち、MX81aの入力には、RD_2<2>およびRD_3<2>が接続され、MX81bの入力には、RD_0<2>およびRD_1<2>が接続され、MX81cの入力には、RD_2<0>およびRD_3<0>が接続され、MX81dの入力には、RD_0<0>およびRD_1<0>が接続され、MX81eの入力には、RD_4<0>およびRD_5<0>が接続され、MX81fの入力には、RD_6<0>およびRD_7<0>が接続され、MX81gの入力には、RD_4<2>およびRD_5<2>が接続され、MX81hの入力には、RD_6<2>およびRD_7<2>が接続されている。
MUX回路82は、IOバッファ17a〜17dから受信した読み出しデータを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードでは、読み出しアドレスにかかわりなく常に、MX81aは、RD_2<2>を選択して出力し、MX81bは、RD_0<2>を選択して出力し、MX81cは、RD_2<0>を選択して出力し、MX81dは、RD_0<0>を選択して出力し、MX81eは、RD_4<0>を選択して出力し、MX81fは、RD_6<0>を選択して出力し、MX81gは、RD_4<2>を選択して出力し、MX81hは、RD_6<2>を選択して出力する。
また、8ビットモード、4ビットモード、および2ビットモードでは、MX81a〜81hは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表9は、それぞれのモードで、上位アドレスにしたがって、MX81a〜81hが選択するデータバス線を示している。
例えば、MX81aは、8ビットモード、4ビットモード、および2ビットモードでは、上位アドレスが“0”の場合にRD_2<2>を選択して出力し、上位アドレスが“1”の場合にRD_3<2>を選択して出力する。
4ビットモードでは、16ビットモードに比べ読み出しアドレスが2ビット多くなるが、表9では、2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットは後述するMUX回路86で使用される。
また、2ビットモードでは、16ビットモードに比べ読み出しアドレスが3ビット多くなるが、表9では、3ビットのうち最下位1ビットが上位アドレスとして示されている。残りの2ビットは後述するMUX回路86およびMX89でそれぞれ使用される。
シフトレジスタ84の接続も、実施例1と異なっている。
すなわち、FF83aのパラレル入力には、MX81bの出力が接続され、FF83bのパラレル入力には、MX81dの出力が接続され、FF83bのシリアル入力には、FF83aのシリアル出力が接続されている。FF83bのシリアル出力eR0は、MUX回路86へ供給されている。
また、FF83cのパラレル入力には、RD_1<2>が接続され、FF83dのパラレル入力には、RD_1<0>が接続され、FF83dのシリアル入力には、FF83cのシリアル出力が接続されている。FF83dのシリアル出力eR1は、出力レジスタ88へ供給されている。
さらに、FF83eのパラレル入力には、MX81aの出力が接続され、FF83fのパラレル入力には、MX81cの出力が接続され、FF83fのシリアル入力には、FF83eのシリアル出力が接続されている。FF83fのシリアル出力eR2は、MUX回路86および出力レジスタ88へ供給されている。
さらに、FF83gのパラレル入力には、RD_3<2>が接続され、FF83hのパラレル入力には、RD_3<0>が接続され、FF83hのシリアル入力には、FF83gのシリアル出力が接続されている。FF83hのシリアル出力eR3は、出力レジスタ88へ供給されている。
さらに、FF83kのパラレル入力には、MX81gの出力が接続され、FF83jのパラレル入力には、MX81eの出力が接続され、FF83jのシリアル入力には、FF83kのシリアル出力が接続されている。FF83jのシリアル出力eR4は、MUX回路86へ供給されている。
さらに、FF83nのパラレル入力には、RD_5<2>が接続され、FF83mのパラレル入力には、RD_5<0>が接続され、FF83mのシリアル入力には、FF83nのシリアル出力が接続されている。FF83mのシリアル出力eR5は、MUX回路86へ供給されている。
さらに、FF83qのパラレル入力には、MX81hの出力が接続され、FF83pのパラレル入力には、MX81fの出力が接続され、FF83pのシリアル入力には、FF83qのシリアル出力が接続されている。FF83pのシリアル出力eR6は、MUX回路86および出力レジスタ88へ供給されている。
さらに、FF83sのパラレル入力には、RD_7<2>が接続され、FF83rのパラレル入力には、RD_7<0>が接続され、FF83rのシリアル入力には、FF83sのシリアル出力が接続されている。FF83rのシリアル出力eR7は、出力レジスタ88へ供給されている。
シフトレジスタ84は、16ビットモードでは、IOバッファ17a〜17dから受信した16ビットの読み出しデータを8組の2ビットシリアルデータeR0〜eR7に並列−直列変換する。
MUX回路86を構成するMX85aおよび85bの入力には、シフトレジスタ84からのシリアル出力が接続されており、MX85aおよび85bの出力は出力レジスタ88へ供給されている。
すなわち、MX85aの入力には、eR0およびeR2が接続され、MX85bの入力には、eR44およびeR6が接続されている。
MUX回路86は、シフトレジスタ84から受信したシリアル出力データを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードおよび8ビットモードでは、読み出しアドレスにかかわりなく常に、MX85aは、eR0を選択して出力し、MX85bはeR4を選択して出力する。
また、4ビットモードおよび2ビットモードでは、MX85aおよび85bは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表10は、それぞれのモードで、上位アドレスにしたがって、MX85aおよび85dが選択する信号を示している。
例えば、MX85aは、4ビットモードおよび2ビットモードでは、上位アドレスが“0”の場合にeR0を選択して出力し、上位アドレスが“1”の場合にeR2を選択して出力する。
4ビットモードでは、16ビットモードに比べ読み出しアドレスが2ビット多くなるが、表10では、2ビットのうち上位1ビットが上位アドレスとして示されている。
また、2ビットモードでは、16ビットモードに比べ読み出しアドレスが3ビット多くなるが、表10では、3ビットのうち2ビット目が上位アドレスとして示されている。残りの上位1ビットは、後述するMX89で使用される。
出力レジスタ88は、シフトレジスタ84およびMUX回路86からのシリアル出力データを受信し、クロック信号tclkに同期してこれらをMUX回路89、または、シリアルデータバス線eRead<0:7>へ出力する。
すなわち、Lat87aの入力にはeR3が接続され、出力にはeRead<3>が接続されている。また、Lat87bの入力にはeR2が接続され、出力にはeRead<1>が接続されている。
さらに、Lat87cの入力にはeR1が接続され、出力にはeRead<2>が接続されている。さらに、Lat87dの入力にはMX85aの出力が接続され、出力にはMX89の一方の入力が接続されている。
さらに、Lat87eの入力にはMX85bの出力が接続され、出力にはeRead<4>が接続されている。さらに、Lat87fの入力にはeR5が接続され、出力にはeRead<6>が接続されている。
さらに、Lat87gの入力にはeR6が接続され、出力にはeRead<5>が接続されている。さらに、Lat87hの入力にはeR7が接続され、出力にはeRead<7>が接続されている。
MX89の入力には、Lat87dの出力およびeRead<4>が接続され、出力には、eRead<0>が接続されている。
MX89は、出力レジスタ88から受信したデータを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモード、8ビットモード、および4ビットモードでは、読み出しアドレスにかかわりなく常に、MX89は、Lat87dからの出力を選択する。
また、2ビットモードでは、MX89は、上位アドレスが“0”の場合にLat87dの出力を選択し、上位アドレスが“1”の場合にLat87eの出力、つまり、eRead<4>を選択する。
上述したような構成を持つ半導体記憶装置のデータ読み出し動作は、実施例1と同様なので説明は省略する。
16ビット/8ビット/4ビット/2ビットの各モードは、実施例1と同様に、MUX回路82、MUX回路86、およびMX89での入力の選択によって実現され、この選択は、IOバッファ17a〜17dがRD_0<0:3>〜RD_7<0:3>を出力する前に決定されている。
次に、データ書き込み時に動作するWレジスタについて説明する。
図9は、本発明の実施例3に係わる半導体記憶装置のWレジスタを示す回路ブロック図である。図8と同様に、ここでは、主に、eWrite<0>〜eWrite<7>に係わる部分を示した。
本発明の実施例3に係わる半導体記憶装置のWレジスタは、8つの1入力−2出力選択回路91a〜91h(以下、「MX91a〜91h」という。)からなるマルチプレクサ回路92(以下、「MUX回路92」という。)、16個のLat93a〜93sからなるライトレジスタ94、2つのMX95aおよび95bからなるMUX回路96、8つのLat97a〜97hからなる入力レジスタ98、およびMX99を備えている。
MUX回路92およびライトレジスタ94の構成は、実施例1のMUX回路42およびライトレジスタ44と同様である。実施例1との違いは、MUX回路92およびライトレジスタ94から出力されるデータバス線の組み合わせ方と、ライトレジスタ94への入力信号である。
言葉を換えていえば、データ書き込みにおけるカラムアドレスのアドレススクランブルが、実施例1と異なっている。
すなわち、MX91aの出力には、WD_3<2>およびWD_2<2>が接続され、MX91bの出力には、WD_1<2>およびWD_0<2>が接続され、MX91cの出力には、WD_3<0>およびWD_2<0>が接続され、MX91dの出力には、WD_1<0>およびWD_0<0>が接続され、MX91eの出力には、WD_4<0>およびWD_5<0>が接続され、MX91fの出力には、WD_6<0>およびWD_7<0>が接続され、MX91gの出力には、WD_4<2>およびWD_5<2>が接続され、MX91hの出力には、WD_6<2>およびWD_7<2>が接続されている。
MUX回路92は、IOバッファ17a〜17dへの書き込みデータを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモードでは、書き込みアドレスにかかわりなく常に、MX91aはWD_2<2>へ出力し、MX91bはWD_0<2>へ出力し、MX91cはWD_2<0>へ出力し、MX91dはWD_0<0>へ出力し、MX91eはWD_4<0>へ出力し、MX91fはWD_6<0>へ出力し、MX91gはWD_4<2>へ出力し、MX91hはWD_6<2>へ出力する。
また、8ビットモード、4ビットモード、および2ビットモードでは、MX91a〜91hは、書き込みアドレスの上位ビットにしたがって、どちらかの出力を選択して入力データを出力する。表11は、それぞれのモードで、MX91a〜91hが上位アドレスにしたがって入力データを出力するデータバス線を示している。
例えば、MX91aは、8ビットモード、4ビットモード、および2ビットモードでは、上位アドレスが“0”の場合にWD_2<2>へ入力データを出力し、上位アドレスが“1”の場合にWD_3<2>へ入力データを出力する。
Rレジスタと同様に、表11の4ビットモードでは、増えた2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットは後述するMUX回路96で使用される。
同様に、表11の2ビットモードでは、増えた3ビットのうち最下位1ビットが上位アドレスとして示されている。残りの2ビットは後述するMUX回路96およびMX99でそれぞれ使用される。
ライトレジスタ94の接続も、実施例1と異なっている。
すなわち、Lat93aおよび93bの入力には、MUX回路96からの出力eW0が接続され、Lat93aの出力には、MX91bの入力が接続され、Lat93bの出力には、MX91dの入力が接続されている。
また、Lat93cおよび93dの入力には、入力レジスタ98からの出力eW1が接続され、Lat93cの出力には、WD_1<2>が接続され、Lat93dの出力には、WD_1<0>が接続されている。
さらに、Lat93eおよび93fの入力には、MUX回路96からの出力eW2が接続され、Lat93eの出力には、MX91aの入力が接続され、Lat93fの出力には、MX91cの入力が接続されている。
さらに、Lat93gおよび93hの入力には、入力レジスタ98からの出力eW3が接続され、Lat93gの出力には、WD_3<2>が接続され、Lat93hの出力には、WD_3<0>が接続されている。
さらに、Lat93jおよび93kの入力には、MUX回路96からの出力eW4が接続され、Lat93jの出力には、MX91eの入力が接続され、Lat93kの出力には、MX91gの入力が接続されている。
さらに、Lat93mおよび93nの入力には、入力レジスタ98からの出力eW5が接続され、Lat93mの出力には、WD_5<0>が接続され、Lat93nの出力には、WD_5<2>が接続されている。
さらに、Lat93pおよび93qの入力には、MUX回路96からの出力eW6が接続され、Lat93pの出力には、MX91fの入力が接続され、Lat93qの出力には、MX91hの入力が接続されている。
さらに、Lat93rおよび93sの入力には、入力レジスタ98からの出力eW7が接続され、Lat93rの出力には、WD_7<0>が接続され、Lat93sの出力には、WD_7<2>が接続されている。
ライトレジスタ94は、16ビットモードでは、MUX回路96および入力レジスタ98から受信した8組の2ビットシリアルデータeW0〜eW7を16ビットの書き込みデータに直列−並列変換する。
MUX回路96を構成するMX95aおよび95bの入力には、入力レジスタ98からの出力が接続され、出力にはeW0、eW2、eW4、およびeW6が接続されている。
すなわち、MX95aの入力には、入力レジスタ98のFF97dの出力が接続され、MX95bの入力には、入力レジスタ98のFF97eの出力が接続されている。
また、MX95aの一方の出力にはeW0が接続され、他方の出力にはeW2が接続され、MX95bの一方の出力にはeW4が接続され、他方の出力にはeW6が接続されている。
MUX回路96は、入力レジスタ98から受信した入力データを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモードおよび8ビットモードでは、書き込みアドレスにかかわりなく常に、MX95aはeW0へ出力し、MX95bはeW4へ出力する。
また、4ビットモードおよび2ビットモードでは、MX95aおよび95bは、書き込みアドレスの上位ビットにしたがって、どちらかを選択して入力データを出力する。表12は、それぞれのモードで、MX95aおよび95bが上位アドレスにしたがって選択する出力先を示している。
例えば、MX95aは、4ビットモードおよび2ビットモードでは、上位アドレスが“0”の場合にeW0を選択して出力し、上位アドレスが“1”の場合にeW2を選択して出力する。
Rレジスタと同様に、表12の4ビットモードでは、増えた2ビットのうち上位1ビットが上位アドレスとして示されている。
同様に、表12の2ビットモードでは、増えた3ビットのうち2ビット目が上位アドレスとして示されている。残りの上位1ビットは、後述するMX89で使用される。
入力レジスタ98は、MX99、または、シリアルデータバス線eWrite<0:7>からシリアル入力データを受信し、クロック信号rclkに同期してこれらをライトレジスタ94およびMUX回路96へ出力する。
すなわち、FF97aの入力にはeWrite<3>が接続され、出力にはeW3が接続されている。また、FF97bの入力にはeWrite<1>が接続され、出力にはeW2接続されている。
さらに、FF97cの入力にはeWrite<2>が接続され、出力にはeW1が接続されている。さらに、FF97dの入力にはMX99からの一方の出力が接続され、出力はMX95aの入力へ接続されている。
さらに、FF97eの入力にはeWrite<4>が接続され、出力はMX95bの入力へ接続されている。さらに、FF97fの入力にはeWrite<6>が接続され、出力にはeW5が接続されている。
さらに、FF97gの入力にはeWrite<5>が接続され、出力にはeW5が接続されている。さらに、FF97hの入力にはeWrite<7>が接続され、出力にはeW7が接続されている。
ここで、eW2には、MX95aの出力およびFF97bの出力が両方とも接続されているが、これらが同時にデータを出力することはないので問題はない。以下、複数の出力が接続されているノードはすべて同様である。
MX99の入力には、シリアルデータバス線eWrite<0>が接続され、一方の出力には、FF97dの入力が接続され、他方の出力には、FF97eの入力、つまり、eWrite<4>が接続されている。
MX99は、シリアルデータバス線eWrite<0>から受信したデータを入出力データ幅と書き込みアドレスに基づいて振り分ける。
すなわち、16ビットモード、8ビットモード、および4ビットモードでは、書き込みアドレスにかかわりなく常に、MX99はFF97dへ出力する。
また、2ビットモードでは、書き込みの上位アドレスが“0”の場合にFF97dへ出力し、上位アドレスが“1”の場合にFF97eの入力、つまり、eWrite<4>へ出力する。
上述したような構成を持つ半導体記憶装置のデータ書き込み動作は、実施例1と同様なので説明は省略する。
16ビット/8ビット/4ビット/2ビットの各モードは、実施例1と同様に、MUX回路92、MUX回路96、およびMX99での出力の選択によって実現され、この選択は、入出力回路13a、13bがeWrite<0:7>を出力する前に決定されている。
以上説明した実施例3で重要なことは、2入力−1出力の選択回路がシフトレジスタ84と出力レジスタ88の前後に分散して配置され、1入力−2出力の選択回路がライトレジスタ94と入力レジスタ98の前後に分散して配置されていることである。
これにより、実施例1と同様に、データバス線RD_0<0:3>〜RD_7<0:3>およびWD_0<0:3>〜WD_7<0:3>を引き回さずに、4段階の入出力データ幅圧縮機能を実装できる。
図10は、本発明の実施例4に係わる半導体記憶装置のRレジスタを示す回路ブロック図である。
なお、本実施例に係わる半導体記憶装置の全体回路ブロック図は、図1と同じである。
本発明の実施例4に係わる半導体記憶装置のRレジスタは、8つのマスタースレーブ型フリップフロップ101a〜101h(以下、「FF101a〜101h」という。)と8つの選択機能付きフリップフロップ102a〜102h(以下、「MF102a〜102h」という。)からなるシフトレジスタ103、MX104aと104bからなるMUX回路105、および4つのラッチ回路106a〜106d(以下、Lat106a〜106dという。)と4つのFF107a〜107dからなる出力レジスタ108を備えている。
シフトレジスタ103を構成するFF101a〜101hおよびMF102a〜102hは、それぞれ2個が対になって8組の2ビット並列−直列変換回路を構成しており、それぞれのパラレル入力には、IOバッファ17a、17bからの出力が接続され、それぞれのシリアル出力は、MUX回路105または出力レジスタ108へ供給されている。
また、MF102a〜102hの選択入力には、それぞれ対応するFF101a〜101hからの中間出力が接続されている。
すなわち、MF102aのパラレル入力には、RD_0<2>が接続され、MF102bのパラレル入力には、RD_0<0>が接続され、MF102bのシリアル入力には、MF102aのシリアル出力が接続されている。MF102bのシリアル出力eR0は、MUX回路105へ供給されている。
また、FF101aのパラレル入力には、RD_1<2>が接続され、FF101bのパラレル入力には、RD_1<0>が接続され、FF101bのシリアル入力には、FF101aのシリアル出力が接続されている。FF101bのシリアル出力eR1は、出力レジスタ108へ供給されている。
さらに、MF102aの選択入力には、FF101aの中間出力が接続され、MF102bの選択入力には、FF101bの中間出力が接続されている。
さらに、MF102cのパラレル入力には、RD_0<3>が接続され、MF102dのパラレル入力には、RD_0<1>が接続され、MF102dのシリアル入力には、MF102cのシリアル出力が接続されている。MF102dのシリアル出力oR0は、MUX回路105へ供給されている。
さらに、FF101cのパラレル入力には、RD_1<3>が接続され、FF101dのパラレル入力には、RD_1<1>が接続され、FF101dのシリアル入力には、FF101cのシリアル出力が接続されている。FF101dのシリアル出力oR1は、出力レジスタ108へ供給されている。
さらに、MF102cの選択入力には、FF101cの中間出力が接続され、MF102dの選択入力には、FF101dの中間出力が接続されている。
さらに、MF102fのパラレル入力には、RD_2<2>が接続され、MF102eのパラレル入力には、RD_2<0>が接続され、MF102eのシリアル入力には、MF102fのシリアル出力が接続されている。MF102eのシリアル出力eR2は、MUX回路105および出力レジスタ108へ供給されている。
さらに、FF101fのパラレル入力には、RD_3<2>が接続され、FF101eのパラレル入力には、RD_3<0>が接続され、FF101eのシリアル入力には、FF101fのシリアル出力が接続されている。FF101eのシリアル出力eR3は、出力レジスタ108へ供給されている。
さらに、MF102eの選択入力には、FF101eの中間出力が接続され、MF102fの選択入力には、FF101fの中間出力が接続されている。
さらに、MF102hのパラレル入力には、RD_2<3>が接続され、MF102gのパラレル入力には、RD_2<1>が接続され、MF102gのシリアル入力には、MF102hのシリアル出力が接続されている。MF102gのシリアル出力oR2は、MUX回路105および出力レジスタ108へ供給されている。
さらに、FF101hのパラレル入力には、RD_3<3>が接続され、FF101gのパラレル入力には、RD_3<1>が接続され、FF101gのシリアル入力には、FF101hのシリアル出力が接続されている。FF101gのシリアル出力oR3は、出力レジスタ108へ供給されている。
さらに、MF102gの選択入力には、FF101gの中間出力が接続され、MF102hの選択入力には、FF101hの中間出力が接続されている。
シフトレジスタ103は、16ビットモードでは、IOバッファ17aおよび17bから受信した16ビットの読み出しデータを8組の2ビットシリアルデータeR0、eR1、oR0、oR1、eR2、eR3、oR2、およびoR3に並列−直列変換する。
図11は、本発明の実施例4に係わる半導体記憶装置のシフトレジスタ103を示す詳細回路図である。ここでは、主に、eR0およびeR1に対応する部分を示した。eR2、eR3、およびoR0〜oR3に対応する部分も同様である。
MF102aは、load信号に同期してパラレル入力からRD_0<1>を取り込むパラレル入力スイッチ回路111a、インバータ112a、112bからなるマスターラッチ回路113a(以下、「ML113a」という。)、入出力のデータ幅を切り替えるためのMX114a、clkに同期してマスター段からスレーブ段へデータ転送を行うシフトスイッチ回路115a、および2つのインバータ112c、112dからなるスレーブラッチ回路116a(以下、「SL116a」という。)を備えている。
また、MF102bは、/clk(以下、“/”は信号の反転を意味する。)に同期してMF102aからのデータをシリアル入力から取り込むシリアル入力スイッチ回路117a、load信号に同期してパラレル入力からRD_0<0>を取り込むパラレル入力スイッチ回路111b、インバータ112e、112fからなるML113b、入出力のデータ幅を切り替えるためのMX114b、clkに同期してマスター段からスレーブ段へデータ転送を行うシフトスイッチ回路115b、および2つのインバータ112g、112hからなるSL116bを備えている。
さらに、FF101aは、load信号に同期してパラレル入力からRD_1<1>を取り込むパラレル入力スイッチ回路111c、インバータ112j、112kからなるML113c、clkに同期してマスター段からスレーブ段へデータ転送を行うシフトスイッチ回路115c、および2つのインバータ112m、112nからなるSL116cを備えている。
また、FF101bは、/clkに同期してFF101aからのデータをシリアル入力から取り込むシリアル入力スイッチ回路117b、load信号に同期してパラレル入力からRD_1<0>を取り込むパラレル入力スイッチ回路111d、インバータ112p、112qからなるML113d、clkに同期してマスター段からスレーブ段へデータ転送を行うシフトスイッチ回路115d、および2つのインバータ112r、112sからなるSL116dを備えている。
MF102aおよびMF102bは、マスター段とスレーブ段の間に2入力−1出力の選択回路、MX114aおよびMX114bが挿入されており、マスター段からのデータとFF101aおよびFF101bからのデータを選択して出力する。
すなわち、MX114aの一方の入力には、ML113aの出力が接続され、他方の入呂には、FF101aのML113cからの中間出力eR1aが接続されており、MX114aの出力は、シフトスイッチ回路115aを介してSL116aへ供給されている。
また、MX114bの一方の入力には、ML113bの出力が接続され、他方の入呂には、FF101bのML113dからの中間出力eR1bが接続されており、MX114bの出力は、シフトスイッチ回路115bを介してSL116bへ供給されている。
MX114aおよびMX114bは、IOバッファ17aから受信した読み出しデータを入出力データ幅と読み出しアドレスに基づいてマルチプレクスする。
すなわち、16ビットモードでは、読み出しアドレスにかかわりなく常に、MX114aは、ML113aの出力を選択し、MX114bは、MX113bの出力を選択する。
また、8ビットモードおよび4ビットモードでは、MX114aおよび114bは、読み出しアドレスの上位ビットにしたがって、どちらかの入力を選択して出力する。表13は、それぞれのモードで、上位アドレスにしたがって、MX114aおよび114bが選択する信号を示している。
例えば、MX114aは、8ビットモードおよび4ビットモードでは、上位アドレスが“0”の場合にML113aの出力を選択して出力し、上位アドレスが“1”の場合にeR1aを選択して出力する。
4ビットモードでは、16ビットモードに比べ読み出しアドレスが2ビット多くなるが、表13では、2ビットのうち下位1ビットが上位アドレスとして示されている。残りの1ビットはMUX回路105で使用される。
MUX回路105および出力レジスタ108は、構成、動作ともに実施例1と同様なので、説明は省略する。
上述したような構成を持つ半導体記憶装置のデータ読み出し動作は、実施例1と同様なので説明は省略する。
16ビット/8ビット/4ビットの各モードは、実施例1と同様に、MF102a〜102hおよびMUX回路105での入力の選択によって実現され、この選択は、IOバッファ17aおよび17bがRD_0<0:3>〜RD_3<0:3>を出力する前に決定されている。
以上説明した実施例4で重要なことは、2入力−1出力の選択回路がMF102a〜102hに組み込まれていることである。
これにより、実施例1と同様に、データバス線RD_0<0:3>〜RD_3<0:3>を引き回すことなく、入出力のデータ幅圧縮機能を実装することができる。さらに、実施例2と同様に、データバス線RD_0<0:3>〜RD_3<0:3>での配線遅延のばらつきを実施例1に比べさらに抑制することができる。
実施例2との違いは、入出力データ幅の切替えを行うMXがすべて出力レジスタ108の内側に配置されていることである。
したがって、上記実施例4は、Rレジスタでの処理時間のオーバーヘッドが、データバス線RD_0<0:3>〜RD_3<0:3>およびシリアルデータバス線eRead<0:3>、oRead<0:3>での配線遅延に比べ少なく、かつ、回路素子のレイアウト面積がバス配線のレイアウト面積に比べ相対的に少ない場合に、非常に有効である。
半導体プロセスの微細化が進み、半導体記憶装置が大容量化するにつれて、上記条件が満たされる場合が徐々に増加している。
上述の実施例1〜4の説明では、Rレジスタにはシフトレジスタによる並列−直列変換を用い、Wレジスタにはラッチ回路による直列−並列変換を用いているが、本発明はこれに限られるものではなく、例えば、Rレジスタにラッチ回路を用い、Wレジスタにシフトレジスタを用いることもできる。
また、上述の実施例1〜4の説明では、半導体記憶装置は、2相同期クロックを用いたコマンド入力方式の同期型DRAMであるとしたが、本発明はこれに限られるものではなく、例えば、単相同期クロックを用い、アドレスバスからアドレスを入力する通常の同期型DRAMに適用することもできる。
さらに、本発明は、同期型DRAMへの適用に限られるものではなく、入出力データの直並列変換を高速に行う半導体記憶装置にデータ幅圧縮機能を実装する場合に広く適用することができる。
本発明の実施例1に係わる半導体記憶装置を示す回路ブロック図。
本発明の実施例1に係わる半導体記憶装置のRレジスタを示す回路ブロック図。
本発明の実施例1に係わる半導体記憶装置の読み出し動作を示す波形図。
本発明の実施例1に係わる半導体記憶装置のWレジスタを示す回路ブロック図。
本発明の実施例1に係わる半導体記憶装置の書き込み動作を示す波形図。
本発明の実施例2に係わる半導体記憶装置のRレジスタを示す回路ブロック図。
本発明の実施例2に係わる半導体記憶装置のWレジスタを示す回路ブロック図。
本発明の実施例3に係わる半導体記憶装置のRレジスタを示す回路ブロック図。
本発明の実施例3に係わる半導体記憶装置のWレジスタを示す回路ブロック図。
本発明の実施例4に係わる半導体記憶装置のRレジスタを示す回路ブロック図。
本発明の実施例4に係わる半導体記憶装置のシフトレジスタを示す詳細回路図。
従来の半導体記憶装置の問題点を示す回路ブロック図。
従来の半導体記憶装置の問題点を示す全体レイアウト図。
符号の説明
11 メモリコア部
12a、12b RWレジスタ
13a、13b 入出力回路
14 クロック生成回路
15 制御回路
16a〜16d セルアレイ
17a〜17d IOバッファ
21a〜21h、25a、25b、41a〜41h、45a、45b、63a〜63d、68a、68b、73a〜73d、78a、78b、81a〜81h、85a〜85d、89、91a〜91h、95a〜95d、99、104a、104b、114a、114b 選択回路(MX)
22、26、42、46、64、69、74、79、82、86、92、96、105 マルチプレクサ回路(MUX回路)
23a〜23s、28a〜28d、47a〜47d、61a〜61s、66a〜66d、75a〜75d、83a〜83s、97a〜97h、101a〜101h、107a〜107h マスタースレーブ型フリップフロップ(FF)
24、62、84、103 シフトレジスタ
27a〜27d、43a〜43s、48a〜48d、71a〜71s、76a〜76d、65a〜65d、93a〜93s、87a〜87h、106a〜106d ラッチ回路(Lat)
29、67、88、108 出力レジスタ
44、72、94 ライトレジスタ
49、77、98 入力レジスタ
102a〜102h 選択機能付きFF(MF)
111a〜111d パラレル入力スイッチ回路
112a〜112s インバータ
113a〜113d マスターラッチ回路(ML)
115a〜115d シフトスイッチ回路
116a〜116d スレーブラッチ回路(SL)
117a、117b シリアル入力スイッチ回路