(57)【特許請求の範囲】
【請求項１】
記憶装置のアドレス信号端子に入力されるアドレス情報に基づきデータが出力される記憶装置のデータ信号端子と、データバスとの間に接続されると共に、所定の制御信号が入力されるデータ順序変換回路であって、
上記データバスに接続される上記データバスの本数と同数のデータバス接続端子と、上記データ信号端子に接続される上記データバスの本数と同数のデータ信号接続端子とを有し、
互いに隣接する上記データバス接続端子から入力された信号を隣接しない所定の間隔をもって上記データ信号接続端子から出力し、若しくは、所定の間隔をもって上記データ信号接続端子から入力された信号を互いに隣接する上記データバス接続端子から出力することを特徴とするデータ順序変換回路。
【請求項２】
上記記憶装置がｎビットを基本的な読み出しの単位とする場合、上記所定の制御信号に応じて、上記記憶装置から読み出されたｎビットのデータをｎビットより小さなビット数のデータとして、ビット位置を所定ビット数だけシフトし、上記データバス接続端子から出力するシフト回路を有することを特徴とする請求項１に記載のデータ順序変換回路。
【請求項３】
請求項１に記載のデータ順序変換回路と、上記データ順序変換回路に接続された上記記憶回路とを備えるメモリモジュールであって、
上記データ信号接続端子から出力された所定の間隔をもった信号は、上記記憶装置のメモリセルアレイに配列され、その信号の論理的ビット配列は、０＊８＋ｋ、１＊８＋ｋ、２＊８＋ｋ、３＊８＋ｋ、… ｍ＊８＋ｋ（ｋは０≦ｋ≦７なる自然数；ｍは０≦ｍ≦ｎ／８−１なる自然数）とすることを特徴とするメモリモジュール。
【請求項４】
請求項３に記載のメモリモジュールと、上記メモリモジュールにアクセスするための上記アドレス情報を出力する中央演算処理装置と、上記メモリモジュールと上記中央演算処理装置とに接続される上記データバスとを備えるデータ処理装置。
【発明の詳細な説明】
技術分野
本発明は、バイナリデータの記憶装置に関し、特にマイクロプロセッサやマイクロコンピュータ等のデータ処理装置に接続されてバイト（８ビット）単位やワード（１６ビット）単位さらには８の整数倍のビット単位でデータのリードとライトが行なわれるＲＡＭ（ランダム・アクセス・メモリ）やＲＯＭ（リード・オンリ・メモリ）等の半導体記憶装置に適用して有効な技術に関するものである。
背景技術
半導体記憶装置は、これをアクセスするマイクロプロセッサやマイクロコンピュータ等の動作周波数やデータ処理能力（データのビット数）の向上に伴い、より高速化が望まれている。
そこで、従来より半導体記憶装置の高速化を図るため種々の技術が提案されている。このような技術としては、特開平６−３３２７９３号又は１９９９年ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔ  Ｃｏｎｆｅｒｅｎｃｅ  ＤＩＧＥＳＴ  ＯＦ  ＴＥＣＮＩＣＡＬ  ＰＡＰＥＲＳの１９０頁から２０１頁に示されるようなものがある。しかしながら、従来の半導体記憶装置の高速化技術は、デバイスの微細化、あるいは回路的にメモリセルからのデータ読出しを如何に速くするかに主眼をおいてなされており、その半導体記憶装置が接続されるマイクロプロセッサ、あるいはマイクロコンピュータ等のデータ処理装置との関係を考慮したものではなかった。
通常、半導体記憶装置は、それに接続されるマイクロプロセッサ、あるいはマイクロコンピュータ等のデータ処理装置が基本的に使用するデータのビット長を単位として読み出し、書き込みを行なうことができるような構成になっている。例えば、基本データ長が３２ビットであるデータ処理装置に接続される半導体記憶装置は、３２ビット単位で読み出し、書き込みが効率良く行なえるようになっており、また、基本データ長が６４ビットであるデータ処理装置に接続される半導体記憶装置は、６４ビット単位で読み出し、書き込みが効率良く行なえるようになっているといった具合である。
ところで、一般に用いられているデータ処理装置では、１バイト（８ビット）のデータ毎に一つのアドレス番号が割り付けてあるため、それに接続される半導体記憶装置もアドレス番号毎の読み出し、書き込みが可能となるようにされている。また、読み出し長についても、基本データ長の１／２ｎ（ｎは１以上の整数）倍であって、８ビット以上、すなわち、基本データ長が３２にビットの場合、３２×１／２１である１６ビット、つまり２バイト単位３２×１／２２である８ビット、つまり１バイト単位の読み出し、書き込み動作を行なうことができる必要がある。これを、図面を用いてもう少し詳しく説明する。
図３は基本データ長が３２ビット（４バイト）であるデータ処理装置に接続される従来の半導体記憶装置内での記憶データの物理的な配列および当該記憶装置から３２ビットのデータを読み出す場合の論理的動作を模式的に表わしたものである。３００は半導体記憶装置内に格納されたデータ、３０１は半導体記憶装置から読み出されたデータを表わしている。この場合は、３２ビットデータがそのまま読み出されている。すなわち、半導体記憶装置内のデータの第ｎビット目と、読出し先のレジスタ等の第ｎビット目の間の相対的な距離が最も短くなる様にレイアウトし、かつ配線されている。
図４は基本データ長が３２ビット（４バイト）であるデータ処理装置に接続される従来の半導体記憶装置内での記憶データの物理的な配列および当該記憶装置から１６ビット（２バイト）のデータを読み出す場合の論理的動作を模式的に表わしたものである。４００は半導体記憶装置内に格納されたデータ、４０１、４０２は半導体記憶装置から読み出されたデータを表わしている。
図４（ａ）は、データ４００中の下位１６ビット（バイト１、バイト０）を読み出した様子を、図４（ｂ）は、データ４００中の上位１６ビット（バイト３、バイト２）を読み出した様子を表わしている。ここで注意すべきことは、図４（ｂ）の場合、上位１６ビットから下位１６ビットまで、１６ビット分のビットシフト動作が必要になる点である。従来の半導体記憶装置では、データのビット順通りにメモリセルアレイのレイアウトを行なっていた。そのため、図４（ｂ）のような動作を行なう際には物理的に１６ビット分のシフトを行なう必要があった。すなわち、図４（ａ）では、半導体記憶装置内の第ｎビット（０≦ｎ≦１５）と読出し先のレジスタ等の第ｎビット（０≦ｎ≦１５）とが相対的に最も短くなることが出来るのに対し、図４（ｂ）では、半導体記憶装置内の第ｎ′ビット（１６≦ｎ′≦３１）を読出し先のレジスタ等の第ｎビット（０≦ｎ≦１５）に格納するため、相対的な配線長が長くなってしまう。これにより、配線長が長くなって配線負荷が増大し、読み出し速度の低下、消費電力の増大を招いていた。
図５は基本データ長が３２ビット（４バイト）であるデータ処理装置に接続される従来の半導体記憶装置内での記憶データの物理的な配列および当該記憶装置から８ビット（１バイト）のデータを読み出す場合の論理的動作を模式的に表わしたものである。５００は半導体記憶装置内に格納されたデータ、５０１、５０２、５０３、５０４は半導体記憶装置から読み出されたデータを表わしている。
図５（ａ）は、データ５００中のバイト０に当たる８ビットを読み出した様子を、図５（ｂ）は、データ５００中のバイト１に当たる８ビットを、図５（ｃ）は、データ５００中のバイト２に当たる８ビットを、図５（ｄ）は、データ５００中のバイト３に当たる８ビットを、読み出した様子を表わしている。ここで注意しなければならないのは、図５（ｂ）の場合、バイト１からバイト０まで、８ビット分のビットシフト動作が、図５（ｃ）の場合、バイト２からバイト０まで、１６ビット分のビットシフト動作が、図５（ｄ）の場合、バイト３からバイト０まで、２４ビット分のビットシフト動作が、それぞれ必要になる点である。
従来の半導体記憶装置では、データのビット順通りにメモリセルアレイのレイアウトを行なっていた。そのため、図５（ｂ）あるいは図５（ｃ）あるいは図５（ｄ）のような動作を行なう際には、物理的に、それぞれ８ビット、１６ビット、２４ビット分のシフトを行なう必要があった。すなわち、図４（ｂ）の場合と同様に相対的な配線長が長くなってしまう。これにより、各メモリセルからセレクタまでの配線長が長くなり、配線負荷が増大して読み出し速度の低下、消費電力の増大を招いていた。また、ビットのシフトのために信号線が例えば上記の例では、図１６（ａ）に示すように、２４本並走するような部分が生じ、配線の占有面積が増大したり、信号線が密であるため信号線間のクロストークが発生し易いという問題点があった。一方、メモリアクセス時には、必ず３２ビット単位にレジスタ等に読出し、その後ビットシフト等を行うことで、必要なビット数のデータのみにするという方法も考えられるが、ビットシフト等の処理を行う時間が必要となり、読出し速度の低下は否なめない。
本発明の目的は、上記の問題点を解決し、基本データ長より短いデータ長の読出し又は書込みであって、例えば、８ビットすなわちバイト単位の読み出しであっても高速に行なうことができ、かつ低消費電力で動作する記憶装置を提供することにある。
この発明の他の目的は、配線の占有面積が低減されるとともにクロストークが発生しにくい記憶装置を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
発明の開示
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、複数のメモリセルと、該複数のメモリセルの中からアドレス信号に応じたメモリセルを選択するためのワード線と、選択されたメモリセルの記憶情報を読み出すためのビット線とを含むメモリセルアレイを備え、アドレスバスおよびデータバスに接続される記憶装置において、上記メモリアレイに格納されるデータのビット配列が上記データバスのビット配列と異なるように構成したものである。
また、上記データバス上の互いに隣接するビット信号線により伝達される情報が、所定のビット数隔てたメモリセルに記憶されるように構成する。
さらに、具体的には、ｎビットを基本的な読み出しの単位とし、論理的なビット位置が０＊８＋ｋ、１＊８＋ｋ、２＊８＋ｋ、３＊８＋ｋ、…  ｍ＊８＋ｋ（ｋ、ｍは０≦ｋ≦７；０≦ｍ≦ｎ／８−１なる自然数）であるビット情報がメモリセルアレイ内の互いに近接したメモリセルに記憶されるように構成する。
上記した手段によれば、データ読出し時のビットシフトのための配線長は極めて短いものとなるため、バイト単位の読み出しを高速に行なうことができるとともに、ビットシフトを行なう回路を実現するための素子や配線も非常に少量で済むため、低消費電力で動作する記憶装置を得ることができる。また、データ読出し時のビットシフトのための配線長は比較的短いため配線の占有面積を低減することができるとともに、ビットシフトのための配線が形成されている領域において並走する信号線の本数も少なくて済むため配線面積が小さくかつクロストークが発生しにくい記憶装置を得ることができる。
発明を実施するため最良の形態
以下、本発明の好適な実施例を図面に基づいて説明する。
図１は、本発明に係る記憶装置におけるメモリセルの物理的なレイアウトを示した模式図である。図中ｋ、ｍは自然数であり、
０≦ｋ≦７
０≦ｍ≦（ｎ／８）−１
ｎ：基本データサイズ
を満たすものとする。ここで、基本データサイズｎとは、本発明を適用した半導体記憶装置や複数のメモリチップからなるメモリモジュールに接続されるマイクロプロセッサ、あるいはマイクロコンピュータ等のデータ処理装置が基本的に処理するデータのビット長を指し、多くのデータ処理装置では１６ビット、３２ビット、６４ビット、１２８ビット等のビット長が用いられている。例えば３２ビット長を基本データサイズとするデータ処理装置に接続される記憶装置に本発明を適用する場合、ｍの値は０、１、２または３となる。
また、図１（ａ）において、ｄａｔａ［０＊８＋ｋ］は、基本データサイズｎビットのデータ中のビット位置０＊８＋ｋの１ビットを指している。本発明を適用した半導体記憶装置では、図１（ａ）に示すように論理的なビット位置が０＊８＋ｋ、１＊８＋ｋ、２＊８＋ｋ、３＊８＋ｋ、…、ｍ＊８＋ｋであるデータを格納するメモリセルを一つのグループ１００として近接レイアウトする。つまり、グループ１００にはｎ／８ビットのデータが含まれることになる。例えば、ｎ＝３２のときには、各グループ１００は４ビットのデータで構成される。
図１（ａ）において、１つのグループでは、ｋは０〜７のいずれか一つであり、ブロックＢ０のデータｄａｔａ［０＊８＋ｋ］におけるｋが例えば０のとき他のブロックＢ１〜Ｂｎ／８−１のデータｄａｔａ［１＊８＋ｋ］〜ｄａｔａ［ｍ＊８＋ｋ］におけるｋも０であることを意味している。ｎ＝３２のとき、ｋ＝０のグループ１００＿０には、図１（ｃ）のようにｄａｔａ［０］，ｄａｔａ［８］，ｄａｔａ［１６］，ｄａｔａ［２４］が含まれる。同様にして、ｋ＝１のグループ１００＿１には、ｄａｔａ［１］，ｄａｔａ［９］，ｄａｔａ［１７］，ｄａｔａ［２４］が、ｋ＝７のグループ１００＿７には、ｄａｔａ［７］，ｄａｔａ［１５］，ｄａｔａ［２３］，ｄａｔａ［３１］が含まれる。
そして、このように構成されたｋの値が同一のビットからなるグループ１００＿０〜１００＿７が、図１（ｂ）に示すように、７個並ぶように配置されてメモリセルアレイ１０１に格納される。なお、図１（ｂ）において、１０１をメモリセルアレイ全体とした場合、各グループ１００＿０〜１００＿７には、それぞれ他のワード（他のアドレス番地のｎビットのデータ）のｋの値が同一であるビットも含まれる。
本発明に係る半導体記憶装置では、図１（ｂ）に示すように、グループ１００＿７、１００＿６、１００＿５、１００＿４、１００＿３、１００＿２、１００＿１、１００＿０を並べることにより、全体としてｎビットのデータを読み書きできるようにしている。なお、従来の半導体記憶装置では、図１（ａ）の各ブロックＢ０〜Ｂ７内にそれぞれｍの値が同一であり、かつｋが０〜７の値をとる８個のビットが順に配置され、全体としてｎビットのデータが構成されるように格納されており、各ブロックＢ０〜Ｂ７内にそれぞれｋの値が同一であるビットが配置される本発明方法とはデータの格納の仕方が明らかに異なることが理解されるであろう。
図２は、本発明を、３２ビット長を基本データサイズとするデータ処理装置に接続される記憶装置に適用した場合の実施例を示すものである。２００は本発明を適用したメモリモジュールであり、２０１はメモリモジュール２００に入出力されるデータ信号を表わしている。データ信号２０１のビット並び順は、メモリモジュール２００のセルレイアウトに於ける物理的なビット並び順に対応している。
ここで、メモリモジュールとは、狭義には一つの半導体メモリチップ内に含まれるメモリセルアレイを、広義には複数の半導体メモリチップからなる記憶装置を意味し、本発明は、その規模を問わずどのような構成の記憶装置に対しても適用することができる。また、本発明は、記憶装置はＳＲＡＭやＤＲＡＭのような揮発性の半導体記憶装置はもちろんＥＥＰＲＯＭのような不揮発性の半導体記憶装置にも適用することができる。
データ処理装置が３２ビット（４バイト）単位でデータの読出し、書込みを行なう場合、図２のメモリモジュール２００から、同時にｄａｔａ［０］〜ｄａｔａ［３１］の３２ビットが読み出され、また書込みも３２ビット単位で行なわれる。データ処理装置が例えば１６ビット（２バイト）単位でデータの読出しを行なう場合、図２のメモリモジュール２００から上位１６ビットのｄａｔａ［１６］〜ｄａｔａ［３１］を読み出す際に、図中破線で示すようなビットのシフトが行なわれる。書込みの際には逆のシフトが行なわれる。このビットシフトは、図４（ｂ）のビットシフトに対応するものである。
データ処理装置が例えば８ビット（１バイト）単位でデータの読出し、書込みを行なう場合、図２のメモリモジュール２００から、ビットｄａｔａ［８］〜ｄａｔａ［１５］，ｄａｔａ［１６］〜ｄａｔａ［２３］，ｄａｔａ［２４］〜ｄａｔａ［３１］を読み出す際にも、それぞれ図５（ｂ）〜（ｄ）に対応するビットシフトが行なわれる。ただし、そのビットシフトは、互いに近接して配置されているｎ／８ビット（例えば３２ビットデータでは４ビット）の範囲で行なわれるので、図１６（ｂ）に示すように、ビットシフトのための配線長は極めて短いものとなる。また、従来のようにビットシフトのために多数の信号線が並走することがなく、たかだかｎ／８本である。
なお、図２を参照すると明らかなように、読み出されたデータのビットの位置は論理ビットの位置と異なる。すなわち、論理ビットの位置はｄａｔａ［０］〜ｄａｔａ［３１］の順番であるが、実施例を適用するとｄａｔａ［０］，ｄａｔａ［８］，ｄａｔａ［１６］，ｄａｔａ［２４］……ｄａｔａ［２３］，ｄａｔａ［３１］のような順番になる。そこで、メモリモジュール内部もしくは外部でビットの並び替えが行なわれる。データの書込みの場合も同様で、逆の並び替えが行なわれる。このビット並び替えはメモリモジュール側でハードウェア的に行なっても良いし、データ処理装置がソフトウェア的に行なうこともできる。
図６には、図１に示されているグループ１００に対応して上記のような８ビット単位のデータの読出しを行なう際のビットシフトを可能にするビットシフト回路６００の具体的な構成例を、基本データ長が３２ビットの場合、つまりｍ＝３の場合について示したものである。
図６において、６０１，６０２はそれぞれセレクタ回路で、このうち２ｔｏ１セレクタ６０１は、ｄａｔａ［３＊８＋ｋ］またはｄａｔａ［１＊８＋ｋ］のいずれかを選択するためのセレクタ、４ｔｏ１セレクタ６０２は、ｄａｔａ［３＊８＋ｋ］，ｄａｔａ［２＊８＋ｋ］，ｄａｔａ［１＊８＋ｋ］またはｄａｔａ［０＊８＋ｋ］のいずれかを選択するためのセレクタであり、制御信号Ｃ０〜Ｃ５により選択動作が制御される。例えば図４（ｂ）に対応したビットシフト動作を行なう場合、セレクタ６０１はｄａｔａ［３＊８＋ｋ］を選択し、セレクタ６０２はｄａｔａ［２＊８＋ｋ］を選択してそれぞれ２ビット目と１ビット目に出力する。また、セレクタ６０２は、図５（ｂ）に対応したビットシフト動作を行なう場合、ｄａｔａ［１＊８＋ｋ］を選択して１ビット目に出力し、図５（ｃ）に対応したビットシフト動作を行なう場合、ｄａｔａ［２＊８＋ｋ］を選択して１ビット目に出力し、図５（ｄ）に対応したビットシフト動作を行なう場合、ｄａｔａ［３＊８＋ｋ］を選択して１ビット目に出力する。
本実施例から明らかなように、図１（ａ）に示すビット配置方式を用いると、例えば論理的に２４ビットシフト動作が必要な場合でも、レイアウト的には高々３ビットのシフトを行なうだけで良いことになり、従来に比べ配線長を１／８にすることが可能になる。従って、読み出し速度を向上させることができ、また配線負荷容量による消費電力も低減することができる。なお、限定されたものではないが、１６ビットデータの読出しあるいは８ビットデータの読出しの際には、有効なビット以外の上位ビットには“０”が付加されて全体としてｎビットのデータとして出力される。本明細書では、このｎビットのうち実際に読み出された上記１６ビットまたは８ビットの部分を有効ビットと称する。
図７には、図６に示すビットシフト回路６００の具体的な回路例が示されている。この実施例は、基本データ長が３２ビットの場合のビットシフト回路６００を、Ｐチャネル型ＭＯＳトランジスタを用いて構成したものであり、制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５で制御されるように作られている。７０２は相補ビット線ペアであり、左からそれぞれｄａｔａ［３＊８＋ｋ］に対応するビット線ｂｉｔ［３＊８＋ｋ］、／ｂｉｔ［３＊８＋ｋ］、ｄａｔａ［２＊８＋ｋ］に対応するビット線ｂｉｔ［２＊８＋ｋ］、／ｂｉｔ［２＊８＋ｋ］、ｄａｔａ［１＊８＋ｋ］に対応するビット線ｂｉｔ［１＊８＋ｋ］、／ｂｉｔ［１＊８＋ｋ］、ｄａｔａ［０＊８＋ｋ］に対応するビット線ｂｉｔ［０＊８＋ｋ］、／ｂｉｔ［０＊８＋ｋ］である。
７０３はｄａｔａ［３＊８＋ｋ］、ｄａｔａ［２＊８＋ｋ］、ｄａｔａ［１＊８＋ｋ］、ｄａｔａ［０＊８＋ｋ］を保持するメモリセルアレイを模式的に表わしたものである。７０１はメモリセルアレイ７０３からビットシフト回路６００を介して読み出されてきたデータを増幅するセンスアンプ回路群である。
例えば図４（ｂ）に対応したシフト動作を行なう場合は、ビットシフト回路６００における制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ４を電源電圧レベル（Ｈレベル）にし、Ｃ３、Ｃ５を接地電圧レベル（Ｌレベル）にすれば良い。また、例えば図５（ｄ）に対応したシフト動作を行なう場合は、ビットシフト回路６００における制御信号Ｃ０、Ｃ２、Ｃ３、Ｃ５を電源電圧レベル（Ｈレベル）にし、Ｃ４を接地電圧レベル（Ｌレベル）にすれば良い。
次の表１に、３２ビット読出し時、１６ビット読出し時の図４（ｂ）に対応したシフト動作および８ビット読出し時の図５（ｂ）〜（ｄ）に対応したシフト動作を行なう場合における制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５の組合せを示す。
0003965620.tif 000002
本実施例によれば、ｄａｔａ［３＊８＋ｋ］をｒｅａｄ  ｄａｔａ［０＊８＋ｋ］にシフトする場合でも、配線長は従来に比べて短いため高速に動作させることができる。また、ビットシフト回路６００を実現するための素子や配線も非常に少量で済むため、低消費電力である。
図８は、図６に示すビットシフト回路６００の他の具体例である。この実施例は、基本データ長が３２ビットの場合のビットシフト回路８００を、トライステートインバータ８０４とインバータ８０２を用いて構成したものであり、制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５で制御されるように作られている。８０３はｄａｔａ［３＊８＋ｋ］、ｄａｔａ［２＊８＋ｋ］、ｄａｔａ［１＊８＋ｋ］、ｄａｔａ［０＊８＋ｋ］を保持するメモリセルアレイを模式的に表わしたものである。８０１はメモリセルアレイ８０３から相補ビット線ペアを通じて出力されるデータを増幅するセンスアンプ回路群である。例えば図４（ｂ）に対応したシフト動作を行なう場合は、ビットシフト回路８００における制御信号Ｃ０、Ｃ１、Ｃ３、Ｃ４を接地電圧レベル（Ｌレベル）にし、Ｃ２、Ｃ５を電源電圧レベル（Ｈレベル）にすれば良い。また、例えば図５（ｄ）に対応したシフト動作を行なう場合は、ビットシフト回路８００における制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ４、Ｃ５を接地電圧レベルにし、Ｃ３を電源電圧レベル（Ｈレベル）にすれば良い。
次の表２に、３２ビット読出し時、１６ビット読出し時の図４（ｂ）に対応したシフト動作および８ビット読出し時の図５（ｂ）〜（ｄ）に対応したシフト動作を行なう場合における制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５の組合せを示す。
0003965620.tif 000003
本実施例によれば、ｄａｔａ［３＊８＋ｋ］をｒｅａｄ  ｄａｔａ［０＊８＋ｋ］にシフトする場合でも、トライステートインバータ一段を介して読み出せば良く、一般にセンスアンプの出力にはインバータ一段以上のバッファが挿入されることを考えると、読み出しを高速に行なうことが可能であることが分かる。また、ビットシフト回路８００を実現するための素子や配線も非常に少量で済むため、低消費電力である。
図９は、図１に示されているグループ１００に対応して３２ビット単位、１６ビット単位または８ビット単位のデータ書き込み時に、図６とは逆のビットシフトを行なうためのビットシフト回路１３００を、基本データ長が３２ビットの場合、つまりｍ＝３の場合について示したものである。
図９において、１３０１，１３０２，１３０３はそれぞれセレクタ回路で、このうち３ｔｏ１セレクタ１３０１は書込みデータのビットｗｒｉｔｅ  ｄａｔａ［３＊８＋ｋ］、ｗｒｉｔｅ  ｄａｔａ［１＊８＋ｋ］またｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］のうちいずれか一つを選択してｄａｔａ［３＊８＋ｋ］が格納されるメモリセルに供給するためのセレクタ、２ｔｏ１セレクタ１３０２はｗｒｉｔｅ  ｄａｔａ［２＊８＋ｋ］またはｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］のいずれかを選択してｄａｔａ［２＊８＋ｋ］が格納されるメモリセルに供給するためのセレクタ、２ｔｏ１セレクタ１３０３はｗｒｉｔｅ  ｄａｔａ［１＊８＋ｋ］またはｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］のいずれかを選択してｄａｔａ［１＊８＋ｋ］が格納されるメモリセルに供給するためのセレクタであり、制御信号の組み合わせにより動作が制御される。
具体的には、書込みデータが３２ビットの場合には、セレクタ１３０１はｗｒｉｔｅ  ｄａｔａ［３＊８＋ｋ］を、セレクタ１３０２はｗｒｉｔｅ  ｄａｔａ［２＊８＋ｋ］を、セレクタ１３０３はｗｒｉｔｅ  ｄａｔａ［１＊８＋ｋ］をそれぞれ選択する。また、書込みデータが３２ビットのうち上位１６ビットの場合には、セレクタ１３０１はｗｒｉｔｅ  ｄａｔａ［１＊８＋ｋ］を、セレクタ１３０２はｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］をそれぞれ選択し、セレクタ１３０３はいずれも選択しない。一方、書込みデータが３２ビットのうち下位１６ビットの場合には、セレクタ１３０１と１３０２はどのデータも選択せず、セレクタ１３０１はｗｒｉｔｅ  ｄａｔａ［１＊８＋ｋ］を選択する。
さらに、書込みデータが３２ビットのうち最上位のバイト３である場合にはセレクタ１３０１がｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］を、書込みデータが３２ビットのバイト２である場合にはセレクタ１３０２がｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］を、書込みデータが３２ビットのバイト１である場合にはセレクタ１３０１がｗｒｉｔｅ  ｄａｔａ［０＊８＋ｋ］をそれぞれ選択し、書込みデータが３２ビットのバイト０である場合にはセレクタ１３０１〜１３０３はいずれのデータも選択しない。
本実施例によれば、読み出し動作時と同様、書き込み時にも例えば論理的に２４ビットシフト動作が必要な場合でも、レイアウト的には３ビットのシフトを行なうだけで良いことになり、従来に比べ配線長を１／８にすることが可能になり、高速かつ低消費電力の書込み動作を行なわせることができる。
図１０は、図１（ａ）に示されている論理的な１ビットｄａｔａ［ｍ＊８＋ｋ］を格納するメモリセルアレイのレイアウトの一例をＳＲＡＭを想定して具体的に示したものである。
図１０において、１１００はアドレス番地が異なる複数のｎビットデータ（他のワード）の同一論理位置にある１ビットｄａｔａ［ｍ＊８＋ｋ］を格納するメモリブロックであり、このようなメモリブロック１１００がｎ個もしくはｎの整数倍個集まってメモリセルアレイが構成される。１１０１は１ビットのデータを保持するＳＲＡＭメモリセル、１１０２はメモリセルを選択するためのワード線、１１０３はメモリセルの入出力ノードが接続された相補ビット線ペア、１１０４はＰチャネル型ＭＯＳトランジスタで構成されたカラムスイッチ、１１０５は共通ビット線ペアである。
アドレス信号が与えられるとメモリセルアレイの周辺に設けられているデコーダ回路がそのアドレス信号をデコードして、各メモリブロック毎に１本のワード線１１０２を選択レベルにするとともに、１つのカラムスイッチ１１０４を導通状態にする。これによって、１つのアドレスに対応して、ｎ個のメモリブロックから１ビットずつ計ｎビットのデータがそれぞれの共通ビット線ペア１１０５より読み出される。
図１を用いた説明では、図１（ａ）に示されている論理的な１ビットｄａｔａ［ｍ＊８＋ｋ］を格納するメモリセルアレイは、レイアウト的に同一のカラムに配置されるイメージで説明したが、図１０の具体例に示されるように、レイアウト的に複数カラムで構成されていても良い。また、図１０では、論理的な１ビットｄａｔａ［ｍ＊８＋ｋ］を格納するメモリセルアレイを４つのカラムで構成した例を示したが、これに限定されるものではなく、１カラムでも良いし、２カラムあるいは８カラム等任意のカラム数に構成可能である。
図１１は、図１のメモリセルアレイ１０１と図６の読出し用ビットシフト回路６００および図９の書込み用ビットシフト回路１３００を組み合わせた回路のレイアウトイメージを模式的に表わしたものである。図１１において、１２００は双方向性のビットシフト回路であり、１２０１はそれぞれ前述のビットシフト回路６００および１３００を含んだ回路を表わしている。本実施例から明らかなように、双方向性ビットシフト回路１２００は、単位ビットシフト回路１２０１を、各グループ１００＿０〜１００＿７のデータを記憶するメモリセル群に対応して整然と並べることができるため、無駄スペースを少なくしてレイアウト効率を良くすることができる。
図１２は、図８に示すビットシフト回路を、冗長カラムを有する記憶装置に適用した場合の実施例である。１４００は基本データ長が３２ビットの場合のビットシフト回路であり、図８の実施例と同様に、トライステートインバータ１４０４とインバータ１４０２とで構成されており、制御信号Ｃ０、Ｃ１、Ｃ２、Ｃ３、Ｃ４、Ｃ５によって制御される。１４０３はビットｄａｔａ［３＊８＋ｋ］、ｄａｔａ［２＊８＋ｋ］、ｄａｔａ［１＊８＋ｋ］、ｄａｔａ［０＊８＋ｋ］を記憶するメモリセルアレイを模式的に表わしたものである。１４０５はメモリセルアレイ１４０３内に欠陥カラムがあった場合に用いられる予備メモリセルからなる冗長カラムである。
１４０１はメモリセルアレイ１４０３および冗長カラム１４０５から相補ビット線ペアを通じて出力されるデータを増幅するセンスアンプ回路群である。１４０６〜１４０９は冗長カラムの使用時と不使用時とでセンスアンプの出力をビットシフト回路１４００に伝達すべき信号経路を切り換える２ｔｏ１セレクタであり、冗長制御信号ＲＣＳによって制御される。各２ｔｏ１セレクタ１４０６〜１４０９は図に示されているように、互いに隣接する２つのビットの増幅信号のいずかを選択してビットシフト回路１４００へ伝達するように構成されている。
例えば、図１２に示されているビットｄａｔａ［３＊８＋ｋ］を記憶するカラムに欠陥があった場合、ｄａｔａ［３＊８＋ｋ］のデータは冗長カラム１４０５に記憶され、セレクタ１４０６は冗長カラムのセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。このとき他のセレクタ１４０７〜１４０９は、本来のセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。
また、ｄａｔａ［２＊８＋ｋ］を記憶するカラムに欠陥があった場合、ｄａｔａ［２＊８＋ｋ］のデータはｄａｔａ［３＊８＋ｋ］カラムに記憶され、セレクタ１４０６は冗長カラムのセンスアンプの出力を選択してビットシフト回路１４００へ、またセレクタ１４０７はｄａｔａ［３＊８＋ｋ］カラムのセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。このとき他のセレクタ１４０８，１４０９は、本来のセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。
同様にして、ｄａｔａ［１＊８＋ｋ］を記憶するカラムに欠陥があった場合、ｄａｔａ［１＊８＋ｋ］のデータはｄａｔａ［２＊８＋ｋ］カラムに記憶され、セレクタ１４０６は冗長カラムのセンスアンプの出力を選択してビットシフト回路１４００へ、またセレクタ１４０７はｄａｔａ［３＊８＋ｋ］カラムのセンスアンプの出力を選択してビットシフト回路１４００へ、セレクタ１４０８はｄａｔａ［２＊８＋ｋ］カラムのセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。このとき他のセレクタ１４０９は、本来のセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。
さらに、ｄａｔａ［０＊８＋ｋ］を記憶するカラムに欠陥があった場合、ｄａｔａ［０＊８＋ｋ］のデータはｄａｔａ［１＊８＋ｋ］カラムに記憶され、セレクタ１４０６は冗長カラムのセンスアンプの出力を選択してビットシフト回路１４００へ、またセレクタ１４０７はｄａｔａ［３＊８＋ｋ］カラムのセンスアンプの出力を選択してビットシフト回路１４００へ、セレクタ１４０８はｄａｔａ［２＊８＋ｋ］カラムのセンスアンプの出力を選択してビットシフト回路１４００へ、セレクタ１４０９はｄａｔａ［１＊８＋ｋ］カラムのセンスアンプの出力を選択してビットシフト回路１４００へ伝達するように制御される。
図１２の実施例から明らかなように、冗長カラムを有する記憶装置に本発明を適用した場合でも、本発明の利点は損なわれることが無い。また、本実施例ではセンスアンプ回路群１４０１の後にセレクタ１４０６〜１４０９を配置した例を示したが、それに限定されるものではなく、センスアンプ回路群１４０１の前にセレクタ１４０６〜１４０９を配置しても何ら支障はない。
＜応用例＞
図１３は本発明に係る半導体記憶装置をキャッシュメモリとして応用したシステムの構成例を示すものである。９００は本発明を適用したＳＲＡＭ（スタティック・ランダム・アクセス・メモリ）からなるキャッシュメモリ、９０１は中央演算処理装置（ＣＰＵ）、９０２は浮動小数点演算処理装置（ＦＰＵ）、９０４はキャッシュメモリ９００とＣＰＵ９０１とＦＰＵ９０２との間を接続するデータバスで、これらによってマイクロコンピュータシステム９０３が構成される。
図示しないが、上記データバス９０４以外に、ＣＰＵ９０１から出力されるアドレス信号をキャッシュメモリ９００へ供給するためのアドレスバスが設けられる。なお、９０５、９０６はキャッシュメモリ９００へ読出しデータ長を指示するための制御信号（いわゆるバイトコード）を供給するための配線である。ＣＰＵ９０１が例えば３２ビットのような基本データ長でデータを処理する場合、読出しはバイト単位で行なわれても書込みは３２ビットのような固定長で行なわれる。
このシステムにおいてＣＰＵ９０１がデータバス９０４上に出力する３２ビットのようなデータのビット配列は従来と同様にビット０、ビット１、ビット２、ビット３……ビット３１のような一般的な順序である。一方、このような配列のデータが入力されるキャッシュメモリ９００内には、入力されたデータのビット配列を図１（ａ）のような配列に並び換えるデータアライメント回路９１０が設けられている。このデータアライメント回路９１０は、キャッシュメモリ９００からデータバス９０４上へデータを出力する際には、本発明独特の図１（ａ）のようなビット配列のデータを一般的な順序の配列に並び換える。
図１５にデータ長が３２ビットの場合のビットの並び換えを行なうデータアライメント回路９１０の入出力信号の配列が示されている。同図において、上側の信号ｂｉｔ３１〜ｂｉｔ０がメモリアレイ側の信号、下側の信号がデータバス側の信号で、この図における符号“ｂｉｔ”は図１における符号“ｄａｔａ”と同義である。なお、データ長が３２ビットの場合に１６ビットの読出しや８ビットの読出しがあったときもデータアライメント回路９１０により有効ビット部分に対して同様なビットの並び換えが行なわれる。このデータアライメント回路９１０によるビットの並び換えと前記ビットシフト回路６００等によるビットシフトとを１つの回路もしくは回路ブロックで行なうように構成することも可能である。
また、特に限定されるものでないが、上記データアライメント回路９１０は、３２ビット長のデータを処理するＣＰＵ９０１が、制御信号線９０５を介して８ビットや１６ビットのような単位でのデータを要求する場合には、メモリセルアレイから読み出された８ビットや１６ビットのデータのビットの並び換えを行なうとともに、その上位２４ビットまたは１６ビットに「０」を入れたデータをデータバス９０４上へ出力する。
図１４は本発明に係る半導体記憶装置をメインメモリとして応用したシステムの一実施例を示すものである。１０００は本発明を適用したＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）などからなるメインメモリ、１００１はマイクロプロセッサ、１００３はメインメモリ１０００とマイクロプロセッサ１００１間を接続するデータバス、１００４はメインメモリ１０００へ読み出しデータ長を指示するための制御信号線、１００５はマイクロプロセッサ１００１から供給される一般的な順序のビット配列、すなわち、第６ビットに隣接して第１ビットが存在し、さらに、第１ビットに隣接して第２ビットが存在するというふうに昇順に若しくは降順にビット配列を行ったデータを図１（ａ）のような本発明独特のビット配列に並び換えたりメモリアレイから読み出されたデータのビット配列を上記と逆に一般的な順序に並び換えるデータアライメント回路で、メインメモリ１０００とマイクロプロセッサ１００１とデータバス１００３とデータアライメント回路１００５によってマイクロコンピュータシステム１００４が構成される。
メインメモリ１０００とマイクロプロセッサ１００１は同一チップ上に集積されていても良いし、別チップとして構成されていても良い。メインメモリ１０００としては、ＤＲＡＭの他、ＳＲＡＭ、あるいは強誘電体メモリ、フラッシュメモリ等のメモリを使用することも可能である。図示しないが、上記データバス１００３以外に、マイクロプロセッサ１００１から出力されるアドレス信号をメインメモリ１０００へ供給するためのアドレスバスが設けられる。
なお、図１４の応用例では、メインメモリ１０００とデータバス１００３との間にデータアライメント回路１００５を設けているが、バスの切換えやバス占有権の決定等を行なうバスコントローラや、物理アドレスと論理アドレスの変換や仮想記憶制御等を行なうメモリ管理ユニットなどを有するシステムでは、上記データアライメント回路１００５の機能を上記バスコントローラやメモリ管理ユニット等に持たせることも可能である。
また、図１３の応用例で説明したのと同様に、このデータアライメント回路１００５に、ビットの並び換えの機能と前記ビットシフト回路６００等によるビットシフト機能とを持たせるように構成することも可能である。その場合においても、データアライメント回路１００５の機能や前述したビットシフト機能を上記バスコントローラやメモリ管理ユニット等に持たせることが可能である。
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上述した実施例では、理解を容易にするため、３２ビットを基本データ長とするデータ処理装置に接続される記憶装置を中心として説明してきたが、基本データサイズが１６ビット、６４ビット、１２８ビット、２５６ビット、５１２ビット、１０２４ビットあるいは２０４８ビット等多ビットのデータ処理装置に接続される半導体記憶装置や複数の半導体メモリチップからなるメモリモジュールに本発明を適用しても、上記実施例と同様の効果が得られる。
また、図１（ａ）にはｄａｔａ［０＊８＋ｋ］の隣にｄａｔａ［１＊８＋ｋ］を配置するようにした実施例が示されているが、本発明はそのような配置に限定されるものではなく、例えばｄａｔａ［０＊８＋ｋ］の隣にｄａｔａ［２＊８＋ｋ］が配置されても良いし、ｄａｔａ［０＊８＋ｋ］の隣にｄａｔａ［３＊８＋ｋ］が配置されても良く、異なるグループ同士でのビットの並び方が同一であればグループ内でのビットの並び方は任意である。
さらに、図１（ｂ）ではグループ１００＿７の隣にグループ１００＿６、その隣にグループ１００＿５……のように配置された実施例が示されているが、本発明はそれに限定されるものではなく、例えばグループ１００＿７の隣にグループ１００＿５が配置されても良いし、グループ１００＿７の隣にグループ１００＿０が配置されても良い。
また、前記応用システムの例では、データバス上のデータは一般的な順序のビット配列であると説明したが、データバス上のデータのビット配列そのものが、図１（ａ）に示されているような本発明独特の配列であっても良い。その場合、データのビット配列の変換はＣＰＵもしくはマイクロプロセッサ側で行なっても良いが、例えばバスの信号線をスクランブルさせてＣＰＵ側では一般的な順序でもメモリ側では本発明独特の順序となるように構成してもよい。あるいは、ＣＰＵのデータ端子とバスの信号線との接続もしくはメモリのデータ端子とバスの信号線との接続を工夫することで、ＣＰＵが一般的な順序のビット配列のデータを出力してもメモリ側では本発明に従ったビット配列のデータとして入力されるように構成しても良い。
発明の効果
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、バイト単位の読み出しを高速に行なうことができるとともに、ビットシフトを行なう回路を実現するための素子や配線も非常に少量で済むため、低消費電力で動作する記憶装置を得ることができる。また、ビットシフトのための配線における並走する信号線の本数も少なくて済むため配線面積が小さくかつクロストークが発生しにくい記憶装置を得ることができる。
【図面の簡単な説明】
図１は、本発明に係るにおける記憶装置におけるメモリセルアレイに記憶されるデータの物理的なビット配列を示した模式図である。
図２は、本発明に係る記憶装置（メモリモジュール）が３２ビット長を基本データサイズとするデータ処理装置に接続される場合のビット配列の一例を示す説明図である。
図３は、３２ビットデータを読み出す場合の論理的動作を表わす模式図である。
図４は、１６ビットデータを読み出す場合の論理的動作を表わす模式図である。
図５は、８ビットデータを読み出す場合の論理的動作を表わす模式図である。
図６は、３２ビットデータ、１６ビットデータおよび８ビットデータの読出しを可能にするビットシフト回路の一構成例を示すブロック図である。
図７は、ビットシフト回路の具体例を示す回路図である。
図８は、ビットシフト回路の他の例を示す回路図である。
図９は、３２ビットデータ、１６ビットデータおよび８ビットデータの書込みを可能にするビットシフト回路の一構成例を示すブロック図である。
図１０は、図１の１ビットを記憶するローカルなメモリセルアレイの一実施例を示す回路図である。
図１１は、本発明を適用した半導体記憶装置におけるメモリセルアレイとビットシフト回路のレイアウトの一例を表わす模式図である。
図１２は、本発明を冗長方式の半導体記憶装置に適用した場合の一実施例を示すブロック図である。
図１３は、本発明を適用した半導体記憶装置の応用システムの一例としてのマイクロコンピュータシステムの一構成例を示すブロック図である。
図１４は、本発明を適用した半導体記憶装置の応用システムの一例としてのマイクロコンピュータシステムの他の構成例を示すブロック図である。
図１５は、データ長が３２ビットの場合のビットの並び換えを行なうデータアライメント回路の入出力信号の配列を示す機能説明図である。
図１６は、従来の半導体記憶装置における３２ビット単位で記憶されているメモリセルアレイから８ビットのデータを読み出す方式および本発明における同様な読出し方式を模式的に示す説明図である。
【図１】
0003965620.tif 000004
【図２】
0003965620.tif 000005
【図３】
0003965620.tif 000006
【図４】
0003965620.tif 000007
【図５】
0003965620.tif 000008
【図６】
0003965620.tif 000009
【図７】
0003965620.tif 000010
【図８】
0003965620.tif 000011
【図９】
0003965620.tif 000012
【図１０】
0003965620.tif 000013
【図１１】
0003965620.tif 000014
【図１２】
0003965620.tif 000015
【図１３】
0003965620.tif 000016
【図１４】
0003965620.tif 000017
【図１５】
0003965620.tif 000018
【図１６】
0003965620.tif 000019