JP3965620B2 - 記憶装置および記憶方法並びにデータ処理システム - Google Patents
記憶装置および記憶方法並びにデータ処理システム Download PDFInfo
- Publication number
- JP3965620B2 JP3965620B2 JP2001500273A JP2001500273A JP3965620B2 JP 3965620 B2 JP3965620 B2 JP 3965620B2 JP 2001500273 A JP2001500273 A JP 2001500273A JP 2001500273 A JP2001500273 A JP 2001500273A JP 3965620 B2 JP3965620 B2 JP 3965620B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bit
- bits
- storage device
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1012—Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/06—Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
Description
本発明は、バイナリデータの記憶装置に関し、特にマイクロプロセッサやマイクロコンピュータ等のデータ処理装置に接続されてバイト(8ビット)単位やワード(16ビット)単位さらには8の整数倍のビット単位でデータのリードとライトが行なわれるRAM(ランダム・アクセス・メモリ)やROM(リード・オンリ・メモリ)等の半導体記憶装置に適用して有効な技術に関するものである。
背景技術
半導体記憶装置は、これをアクセスするマイクロプロセッサやマイクロコンピュータ等の動作周波数やデータ処理能力(データのビット数)の向上に伴い、より高速化が望まれている。
そこで、従来より半導体記憶装置の高速化を図るため種々の技術が提案されている。このような技術としては、特開平6−332793号又は1999年IEEE International Solid−State Circuit Conference DIGEST OF TECNICAL PAPERSの190頁から201頁に示されるようなものがある。しかしながら、従来の半導体記憶装置の高速化技術は、デバイスの微細化、あるいは回路的にメモリセルからのデータ読出しを如何に速くするかに主眼をおいてなされており、その半導体記憶装置が接続されるマイクロプロセッサ、あるいはマイクロコンピュータ等のデータ処理装置との関係を考慮したものではなかった。
通常、半導体記憶装置は、それに接続されるマイクロプロセッサ、あるいはマイクロコンピュータ等のデータ処理装置が基本的に使用するデータのビット長を単位として読み出し、書き込みを行なうことができるような構成になっている。例えば、基本データ長が32ビットであるデータ処理装置に接続される半導体記憶装置は、32ビット単位で読み出し、書き込みが効率良く行なえるようになっており、また、基本データ長が64ビットであるデータ処理装置に接続される半導体記憶装置は、64ビット単位で読み出し、書き込みが効率良く行なえるようになっているといった具合である。
ところで、一般に用いられているデータ処理装置では、1バイト(8ビット)のデータ毎に一つのアドレス番号が割り付けてあるため、それに接続される半導体記憶装置もアドレス番号毎の読み出し、書き込みが可能となるようにされている。また、読み出し長についても、基本データ長の1/2n(nは1以上の整数)倍であって、8ビット以上、すなわち、基本データ長が32にビットの場合、32×1/21である16ビット、つまり2バイト単位32×1/22である8ビット、つまり1バイト単位の読み出し、書き込み動作を行なうことができる必要がある。これを、図面を用いてもう少し詳しく説明する。
図3は基本データ長が32ビット(4バイト)であるデータ処理装置に接続される従来の半導体記憶装置内での記憶データの物理的な配列および当該記憶装置から32ビットのデータを読み出す場合の論理的動作を模式的に表わしたものである。300は半導体記憶装置内に格納されたデータ、301は半導体記憶装置から読み出されたデータを表わしている。この場合は、32ビットデータがそのまま読み出されている。すなわち、半導体記憶装置内のデータの第nビット目と、読出し先のレジスタ等の第nビット目の間の相対的な距離が最も短くなる様にレイアウトし、かつ配線されている。
図4は基本データ長が32ビット(4バイト)であるデータ処理装置に接続される従来の半導体記憶装置内での記憶データの物理的な配列および当該記憶装置から16ビット(2バイト)のデータを読み出す場合の論理的動作を模式的に表わしたものである。400は半導体記憶装置内に格納されたデータ、401、402は半導体記憶装置から読み出されたデータを表わしている。
図4(a)は、データ400中の下位16ビット(バイト1、バイト0)を読み出した様子を、図4(b)は、データ400中の上位16ビット(バイト3、バイト2)を読み出した様子を表わしている。ここで注意すべきことは、図4(b)の場合、上位16ビットから下位16ビットまで、16ビット分のビットシフト動作が必要になる点である。従来の半導体記憶装置では、データのビット順通りにメモリセルアレイのレイアウトを行なっていた。そのため、図4(b)のような動作を行なう際には物理的に16ビット分のシフトを行なう必要があった。すなわち、図4(a)では、半導体記憶装置内の第nビット(0≦n≦15)と読出し先のレジスタ等の第nビット(0≦n≦15)とが相対的に最も短くなることが出来るのに対し、図4(b)では、半導体記憶装置内の第n′ビット(16≦n′≦31)を読出し先のレジスタ等の第nビット(0≦n≦15)に格納するため、相対的な配線長が長くなってしまう。これにより、配線長が長くなって配線負荷が増大し、読み出し速度の低下、消費電力の増大を招いていた。
図5は基本データ長が32ビット(4バイト)であるデータ処理装置に接続される従来の半導体記憶装置内での記憶データの物理的な配列および当該記憶装置から8ビット(1バイト)のデータを読み出す場合の論理的動作を模式的に表わしたものである。500は半導体記憶装置内に格納されたデータ、501、502、503、504は半導体記憶装置から読み出されたデータを表わしている。
図5(a)は、データ500中のバイト0に当たる8ビットを読み出した様子を、図5(b)は、データ500中のバイト1に当たる8ビットを、図5(c)は、データ500中のバイト2に当たる8ビットを、図5(d)は、データ500中のバイト3に当たる8ビットを、読み出した様子を表わしている。ここで注意しなければならないのは、図5(b)の場合、バイト1からバイト0まで、8ビット分のビットシフト動作が、図5(c)の場合、バイト2からバイト0まで、16ビット分のビットシフト動作が、図5(d)の場合、バイト3からバイト0まで、24ビット分のビットシフト動作が、それぞれ必要になる点である。
従来の半導体記憶装置では、データのビット順通りにメモリセルアレイのレイアウトを行なっていた。そのため、図5(b)あるいは図5(c)あるいは図5(d)のような動作を行なう際には、物理的に、それぞれ8ビット、16ビット、24ビット分のシフトを行なう必要があった。すなわち、図4(b)の場合と同様に相対的な配線長が長くなってしまう。これにより、各メモリセルからセレクタまでの配線長が長くなり、配線負荷が増大して読み出し速度の低下、消費電力の増大を招いていた。また、ビットのシフトのために信号線が例えば上記の例では、図16(a)に示すように、24本並走するような部分が生じ、配線の占有面積が増大したり、信号線が密であるため信号線間のクロストークが発生し易いという問題点があった。一方、メモリアクセス時には、必ず32ビット単位にレジスタ等に読出し、その後ビットシフト等を行うことで、必要なビット数のデータのみにするという方法も考えられるが、ビットシフト等の処理を行う時間が必要となり、読出し速度の低下は否なめない。
本発明の目的は、上記の問題点を解決し、基本データ長より短いデータ長の読出し又は書込みであって、例えば、8ビットすなわちバイト単位の読み出しであっても高速に行なうことができ、かつ低消費電力で動作する記憶装置を提供することにある。
この発明の他の目的は、配線の占有面積が低減されるとともにクロストークが発生しにくい記憶装置を提供することにある。
この発明の前記ならびにそのほかの目的と新規な特徴については、本明細書の記述および添附図面から明らかになるであろう。
発明の開示
本願において開示される発明のうち代表的なものの概要を説明すれば、下記のとおりである。
すなわち、複数のメモリセルと、該複数のメモリセルの中からアドレス信号に応じたメモリセルを選択するためのワード線と、選択されたメモリセルの記憶情報を読み出すためのビット線とを含むメモリセルアレイを備え、アドレスバスおよびデータバスに接続される記憶装置において、上記メモリアレイに格納されるデータのビット配列が上記データバスのビット配列と異なるように構成したものである。
また、上記データバス上の互いに隣接するビット信号線により伝達される情報が、所定のビット数隔てたメモリセルに記憶されるように構成する。
さらに、具体的には、nビットを基本的な読み出しの単位とし、論理的なビット位置が0*8+k、1*8+k、2*8+k、3*8+k、… m*8+k(k、mは0≦k≦7;0≦m≦n/8−1なる自然数)であるビット情報がメモリセルアレイ内の互いに近接したメモリセルに記憶されるように構成する。
上記した手段によれば、データ読出し時のビットシフトのための配線長は極めて短いものとなるため、バイト単位の読み出しを高速に行なうことができるとともに、ビットシフトを行なう回路を実現するための素子や配線も非常に少量で済むため、低消費電力で動作する記憶装置を得ることができる。また、データ読出し時のビットシフトのための配線長は比較的短いため配線の占有面積を低減することができるとともに、ビットシフトのための配線が形成されている領域において並走する信号線の本数も少なくて済むため配線面積が小さくかつクロストークが発生しにくい記憶装置を得ることができる。
発明を実施するため最良の形態
以下、本発明の好適な実施例を図面に基づいて説明する。
図1は、本発明に係る記憶装置におけるメモリセルの物理的なレイアウトを示した模式図である。図中k、mは自然数であり、
0≦k≦7
0≦m≦(n/8)−1
n:基本データサイズ
を満たすものとする。ここで、基本データサイズnとは、本発明を適用した半導体記憶装置や複数のメモリチップからなるメモリモジュールに接続されるマイクロプロセッサ、あるいはマイクロコンピュータ等のデータ処理装置が基本的に処理するデータのビット長を指し、多くのデータ処理装置では16ビット、32ビット、64ビット、128ビット等のビット長が用いられている。例えば32ビット長を基本データサイズとするデータ処理装置に接続される記憶装置に本発明を適用する場合、mの値は0、1、2または3となる。
また、図1(a)において、data[0*8+k]は、基本データサイズnビットのデータ中のビット位置0*8+kの1ビットを指している。本発明を適用した半導体記憶装置では、図1(a)に示すように論理的なビット位置が0*8+k、1*8+k、2*8+k、3*8+k、…、m*8+kであるデータを格納するメモリセルを一つのグループ100として近接レイアウトする。つまり、グループ100にはn/8ビットのデータが含まれることになる。例えば、n=32のときには、各グループ100は4ビットのデータで構成される。
図1(a)において、1つのグループでは、kは0〜7のいずれか一つであり、ブロックB0のデータdata[0*8+k]におけるkが例えば0のとき他のブロックB1〜Bn/8−1のデータdata[1*8+k]〜data[m*8+k]におけるkも0であることを意味している。n=32のとき、k=0のグループ100_0には、図1(c)のようにdata[0],data[8],data[16],data[24]が含まれる。同様にして、k=1のグループ100_1には、data[1],data[9],data[17],data[24]が、k=7のグループ100_7には、data[7],data[15],data[23],data[31]が含まれる。
そして、このように構成されたkの値が同一のビットからなるグループ100_0〜100_7が、図1(b)に示すように、7個並ぶように配置されてメモリセルアレイ101に格納される。なお、図1(b)において、101をメモリセルアレイ全体とした場合、各グループ100_0〜100_7には、それぞれ他のワード(他のアドレス番地のnビットのデータ)のkの値が同一であるビットも含まれる。
本発明に係る半導体記憶装置では、図1(b)に示すように、グループ100_7、100_6、100_5、100_4、100_3、100_2、100_1、100_0を並べることにより、全体としてnビットのデータを読み書きできるようにしている。なお、従来の半導体記憶装置では、図1(a)の各ブロックB0〜B7内にそれぞれmの値が同一であり、かつkが0〜7の値をとる8個のビットが順に配置され、全体としてnビットのデータが構成されるように格納されており、各ブロックB0〜B7内にそれぞれkの値が同一であるビットが配置される本発明方法とはデータの格納の仕方が明らかに異なることが理解されるであろう。
図2は、本発明を、32ビット長を基本データサイズとするデータ処理装置に接続される記憶装置に適用した場合の実施例を示すものである。200は本発明を適用したメモリモジュールであり、201はメモリモジュール200に入出力されるデータ信号を表わしている。データ信号201のビット並び順は、メモリモジュール200のセルレイアウトに於ける物理的なビット並び順に対応している。
ここで、メモリモジュールとは、狭義には一つの半導体メモリチップ内に含まれるメモリセルアレイを、広義には複数の半導体メモリチップからなる記憶装置を意味し、本発明は、その規模を問わずどのような構成の記憶装置に対しても適用することができる。また、本発明は、記憶装置はSRAMやDRAMのような揮発性の半導体記憶装置はもちろんEEPROMのような不揮発性の半導体記憶装置にも適用することができる。
データ処理装置が32ビット(4バイト)単位でデータの読出し、書込みを行なう場合、図2のメモリモジュール200から、同時にdata[0]〜data[31]の32ビットが読み出され、また書込みも32ビット単位で行なわれる。データ処理装置が例えば16ビット(2バイト)単位でデータの読出しを行なう場合、図2のメモリモジュール200から上位16ビットのdata[16]〜data[31]を読み出す際に、図中破線で示すようなビットのシフトが行なわれる。書込みの際には逆のシフトが行なわれる。このビットシフトは、図4(b)のビットシフトに対応するものである。
データ処理装置が例えば8ビット(1バイト)単位でデータの読出し、書込みを行なう場合、図2のメモリモジュール200から、ビットdata[8]〜data[15],data[16]〜data[23],data[24]〜data[31]を読み出す際にも、それぞれ図5(b)〜(d)に対応するビットシフトが行なわれる。ただし、そのビットシフトは、互いに近接して配置されているn/8ビット(例えば32ビットデータでは4ビット)の範囲で行なわれるので、図16(b)に示すように、ビットシフトのための配線長は極めて短いものとなる。また、従来のようにビットシフトのために多数の信号線が並走することがなく、たかだかn/8本である。
なお、図2を参照すると明らかなように、読み出されたデータのビットの位置は論理ビットの位置と異なる。すなわち、論理ビットの位置はdata[0]〜data[31]の順番であるが、実施例を適用するとdata[0],data[8],data[16],data[24]……data[23],data[31]のような順番になる。そこで、メモリモジュール内部もしくは外部でビットの並び替えが行なわれる。データの書込みの場合も同様で、逆の並び替えが行なわれる。このビット並び替えはメモリモジュール側でハードウェア的に行なっても良いし、データ処理装置がソフトウェア的に行なうこともできる。
図6には、図1に示されているグループ100に対応して上記のような8ビット単位のデータの読出しを行なう際のビットシフトを可能にするビットシフト回路600の具体的な構成例を、基本データ長が32ビットの場合、つまりm=3の場合について示したものである。
図6において、601,602はそれぞれセレクタ回路で、このうち2to1セレクタ601は、data[3*8+k]またはdata[1*8+k]のいずれかを選択するためのセレクタ、4to1セレクタ602は、data[3*8+k],data[2*8+k],data[1*8+k]またはdata[0*8+k]のいずれかを選択するためのセレクタであり、制御信号C0〜C5により選択動作が制御される。例えば図4(b)に対応したビットシフト動作を行なう場合、セレクタ601はdata[3*8+k]を選択し、セレクタ602はdata[2*8+k]を選択してそれぞれ2ビット目と1ビット目に出力する。また、セレクタ602は、図5(b)に対応したビットシフト動作を行なう場合、data[1*8+k]を選択して1ビット目に出力し、図5(c)に対応したビットシフト動作を行なう場合、data[2*8+k]を選択して1ビット目に出力し、図5(d)に対応したビットシフト動作を行なう場合、data[3*8+k]を選択して1ビット目に出力する。
本実施例から明らかなように、図1(a)に示すビット配置方式を用いると、例えば論理的に24ビットシフト動作が必要な場合でも、レイアウト的には高々3ビットのシフトを行なうだけで良いことになり、従来に比べ配線長を1/8にすることが可能になる。従って、読み出し速度を向上させることができ、また配線負荷容量による消費電力も低減することができる。なお、限定されたものではないが、16ビットデータの読出しあるいは8ビットデータの読出しの際には、有効なビット以外の上位ビットには“0”が付加されて全体としてnビットのデータとして出力される。本明細書では、このnビットのうち実際に読み出された上記16ビットまたは8ビットの部分を有効ビットと称する。
図7には、図6に示すビットシフト回路600の具体的な回路例が示されている。この実施例は、基本データ長が32ビットの場合のビットシフト回路600を、Pチャネル型MOSトランジスタを用いて構成したものであり、制御信号C0、C1、C2、C3、C4、C5で制御されるように作られている。702は相補ビット線ペアであり、左からそれぞれdata[3*8+k]に対応するビット線bit[3*8+k]、/bit[3*8+k]、data[2*8+k]に対応するビット線bit[2*8+k]、/bit[2*8+k]、data[1*8+k]に対応するビット線bit[1*8+k]、/bit[1*8+k]、data[0*8+k]に対応するビット線bit[0*8+k]、/bit[0*8+k]である。
703はdata[3*8+k]、data[2*8+k]、data[1*8+k]、data[0*8+k]を保持するメモリセルアレイを模式的に表わしたものである。701はメモリセルアレイ703からビットシフト回路600を介して読み出されてきたデータを増幅するセンスアンプ回路群である。
例えば図4(b)に対応したシフト動作を行なう場合は、ビットシフト回路600における制御信号C0、C1、C2、C4を電源電圧レベル(Hレベル)にし、C3、C5を接地電圧レベル(Lレベル)にすれば良い。また、例えば図5(d)に対応したシフト動作を行なう場合は、ビットシフト回路600における制御信号C0、C2、C3、C5を電源電圧レベル(Hレベル)にし、C4を接地電圧レベル(Lレベル)にすれば良い。
次の表1に、32ビット読出し時、16ビット読出し時の図4(b)に対応したシフト動作および8ビット読出し時の図5(b)〜(d)に対応したシフト動作を行なう場合における制御信号C0、C1、C2、C3、C4、C5の組合せを示す。
本実施例によれば、data[3*8+k]をread data[0*8+k]にシフトする場合でも、配線長は従来に比べて短いため高速に動作させることができる。また、ビットシフト回路600を実現するための素子や配線も非常に少量で済むため、低消費電力である。
図8は、図6に示すビットシフト回路600の他の具体例である。この実施例は、基本データ長が32ビットの場合のビットシフト回路800を、トライステートインバータ804とインバータ802を用いて構成したものであり、制御信号C0、C1、C2、C3、C4、C5で制御されるように作られている。803はdata[3*8+k]、data[2*8+k]、data[1*8+k]、data[0*8+k]を保持するメモリセルアレイを模式的に表わしたものである。801はメモリセルアレイ803から相補ビット線ペアを通じて出力されるデータを増幅するセンスアンプ回路群である。例えば図4(b)に対応したシフト動作を行なう場合は、ビットシフト回路800における制御信号C0、C1、C3、C4を接地電圧レベル(Lレベル)にし、C2、C5を電源電圧レベル(Hレベル)にすれば良い。また、例えば図5(d)に対応したシフト動作を行なう場合は、ビットシフト回路800における制御信号C0、C1、C2、C4、C5を接地電圧レベルにし、C3を電源電圧レベル(Hレベル)にすれば良い。
次の表2に、32ビット読出し時、16ビット読出し時の図4(b)に対応したシフト動作および8ビット読出し時の図5(b)〜(d)に対応したシフト動作を行なう場合における制御信号C0、C1、C2、C3、C4、C5の組合せを示す。
本実施例によれば、data[3*8+k]をread data[0*8+k]にシフトする場合でも、トライステートインバータ一段を介して読み出せば良く、一般にセンスアンプの出力にはインバータ一段以上のバッファが挿入されることを考えると、読み出しを高速に行なうことが可能であることが分かる。また、ビットシフト回路800を実現するための素子や配線も非常に少量で済むため、低消費電力である。
図9は、図1に示されているグループ100に対応して32ビット単位、16ビット単位または8ビット単位のデータ書き込み時に、図6とは逆のビットシフトを行なうためのビットシフト回路1300を、基本データ長が32ビットの場合、つまりm=3の場合について示したものである。
図9において、1301,1302,1303はそれぞれセレクタ回路で、このうち3to1セレクタ1301は書込みデータのビットwrite data[3*8+k]、write data[1*8+k]またwrite data[0*8+k]のうちいずれか一つを選択してdata[3*8+k]が格納されるメモリセルに供給するためのセレクタ、2to1セレクタ1302はwrite data[2*8+k]またはwrite data[0*8+k]のいずれかを選択してdata[2*8+k]が格納されるメモリセルに供給するためのセレクタ、2to1セレクタ1303はwrite data[1*8+k]またはwrite data[0*8+k]のいずれかを選択してdata[1*8+k]が格納されるメモリセルに供給するためのセレクタであり、制御信号の組み合わせにより動作が制御される。
具体的には、書込みデータが32ビットの場合には、セレクタ1301はwrite data[3*8+k]を、セレクタ1302はwrite data[2*8+k]を、セレクタ1303はwrite data[1*8+k]をそれぞれ選択する。また、書込みデータが32ビットのうち上位16ビットの場合には、セレクタ1301はwrite data[1*8+k]を、セレクタ1302はwrite data[0*8+k]をそれぞれ選択し、セレクタ1303はいずれも選択しない。一方、書込みデータが32ビットのうち下位16ビットの場合には、セレクタ1301と1302はどのデータも選択せず、セレクタ1301はwrite data[1*8+k]を選択する。
さらに、書込みデータが32ビットのうち最上位のバイト3である場合にはセレクタ1301がwrite data[0*8+k]を、書込みデータが32ビットのバイト2である場合にはセレクタ1302がwrite data[0*8+k]を、書込みデータが32ビットのバイト1である場合にはセレクタ1301がwrite data[0*8+k]をそれぞれ選択し、書込みデータが32ビットのバイト0である場合にはセレクタ1301〜1303はいずれのデータも選択しない。
本実施例によれば、読み出し動作時と同様、書き込み時にも例えば論理的に24ビットシフト動作が必要な場合でも、レイアウト的には3ビットのシフトを行なうだけで良いことになり、従来に比べ配線長を1/8にすることが可能になり、高速かつ低消費電力の書込み動作を行なわせることができる。
図10は、図1(a)に示されている論理的な1ビットdata[m*8+k]を格納するメモリセルアレイのレイアウトの一例をSRAMを想定して具体的に示したものである。
図10において、1100はアドレス番地が異なる複数のnビットデータ(他のワード)の同一論理位置にある1ビットdata[m*8+k]を格納するメモリブロックであり、このようなメモリブロック1100がn個もしくはnの整数倍個集まってメモリセルアレイが構成される。1101は1ビットのデータを保持するSRAMメモリセル、1102はメモリセルを選択するためのワード線、1103はメモリセルの入出力ノードが接続された相補ビット線ペア、1104はPチャネル型MOSトランジスタで構成されたカラムスイッチ、1105は共通ビット線ペアである。
アドレス信号が与えられるとメモリセルアレイの周辺に設けられているデコーダ回路がそのアドレス信号をデコードして、各メモリブロック毎に1本のワード線1102を選択レベルにするとともに、1つのカラムスイッチ1104を導通状態にする。これによって、1つのアドレスに対応して、n個のメモリブロックから1ビットずつ計nビットのデータがそれぞれの共通ビット線ペア1105より読み出される。
図1を用いた説明では、図1(a)に示されている論理的な1ビットdata[m*8+k]を格納するメモリセルアレイは、レイアウト的に同一のカラムに配置されるイメージで説明したが、図10の具体例に示されるように、レイアウト的に複数カラムで構成されていても良い。また、図10では、論理的な1ビットdata[m*8+k]を格納するメモリセルアレイを4つのカラムで構成した例を示したが、これに限定されるものではなく、1カラムでも良いし、2カラムあるいは8カラム等任意のカラム数に構成可能である。
図11は、図1のメモリセルアレイ101と図6の読出し用ビットシフト回路600および図9の書込み用ビットシフト回路1300を組み合わせた回路のレイアウトイメージを模式的に表わしたものである。図11において、1200は双方向性のビットシフト回路であり、1201はそれぞれ前述のビットシフト回路600および1300を含んだ回路を表わしている。本実施例から明らかなように、双方向性ビットシフト回路1200は、単位ビットシフト回路1201を、各グループ100_0〜100_7のデータを記憶するメモリセル群に対応して整然と並べることができるため、無駄スペースを少なくしてレイアウト効率を良くすることができる。
図12は、図8に示すビットシフト回路を、冗長カラムを有する記憶装置に適用した場合の実施例である。1400は基本データ長が32ビットの場合のビットシフト回路であり、図8の実施例と同様に、トライステートインバータ1404とインバータ1402とで構成されており、制御信号C0、C1、C2、C3、C4、C5によって制御される。1403はビットdata[3*8+k]、data[2*8+k]、data[1*8+k]、data[0*8+k]を記憶するメモリセルアレイを模式的に表わしたものである。1405はメモリセルアレイ1403内に欠陥カラムがあった場合に用いられる予備メモリセルからなる冗長カラムである。
1401はメモリセルアレイ1403および冗長カラム1405から相補ビット線ペアを通じて出力されるデータを増幅するセンスアンプ回路群である。1406〜1409は冗長カラムの使用時と不使用時とでセンスアンプの出力をビットシフト回路1400に伝達すべき信号経路を切り換える2to1セレクタであり、冗長制御信号RCSによって制御される。各2to1セレクタ1406〜1409は図に示されているように、互いに隣接する2つのビットの増幅信号のいずかを選択してビットシフト回路1400へ伝達するように構成されている。
例えば、図12に示されているビットdata[3*8+k]を記憶するカラムに欠陥があった場合、data[3*8+k]のデータは冗長カラム1405に記憶され、セレクタ1406は冗長カラムのセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。このとき他のセレクタ1407〜1409は、本来のセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。
また、data[2*8+k]を記憶するカラムに欠陥があった場合、data[2*8+k]のデータはdata[3*8+k]カラムに記憶され、セレクタ1406は冗長カラムのセンスアンプの出力を選択してビットシフト回路1400へ、またセレクタ1407はdata[3*8+k]カラムのセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。このとき他のセレクタ1408,1409は、本来のセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。
同様にして、data[1*8+k]を記憶するカラムに欠陥があった場合、data[1*8+k]のデータはdata[2*8+k]カラムに記憶され、セレクタ1406は冗長カラムのセンスアンプの出力を選択してビットシフト回路1400へ、またセレクタ1407はdata[3*8+k]カラムのセンスアンプの出力を選択してビットシフト回路1400へ、セレクタ1408はdata[2*8+k]カラムのセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。このとき他のセレクタ1409は、本来のセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。
さらに、data[0*8+k]を記憶するカラムに欠陥があった場合、data[0*8+k]のデータはdata[1*8+k]カラムに記憶され、セレクタ1406は冗長カラムのセンスアンプの出力を選択してビットシフト回路1400へ、またセレクタ1407はdata[3*8+k]カラムのセンスアンプの出力を選択してビットシフト回路1400へ、セレクタ1408はdata[2*8+k]カラムのセンスアンプの出力を選択してビットシフト回路1400へ、セレクタ1409はdata[1*8+k]カラムのセンスアンプの出力を選択してビットシフト回路1400へ伝達するように制御される。
図12の実施例から明らかなように、冗長カラムを有する記憶装置に本発明を適用した場合でも、本発明の利点は損なわれることが無い。また、本実施例ではセンスアンプ回路群1401の後にセレクタ1406〜1409を配置した例を示したが、それに限定されるものではなく、センスアンプ回路群1401の前にセレクタ1406〜1409を配置しても何ら支障はない。
<応用例>
図13は本発明に係る半導体記憶装置をキャッシュメモリとして応用したシステムの構成例を示すものである。900は本発明を適用したSRAM(スタティック・ランダム・アクセス・メモリ)からなるキャッシュメモリ、901は中央演算処理装置(CPU)、902は浮動小数点演算処理装置(FPU)、904はキャッシュメモリ900とCPU901とFPU902との間を接続するデータバスで、これらによってマイクロコンピュータシステム903が構成される。
図示しないが、上記データバス904以外に、CPU901から出力されるアドレス信号をキャッシュメモリ900へ供給するためのアドレスバスが設けられる。なお、905、906はキャッシュメモリ900へ読出しデータ長を指示するための制御信号(いわゆるバイトコード)を供給するための配線である。CPU901が例えば32ビットのような基本データ長でデータを処理する場合、読出しはバイト単位で行なわれても書込みは32ビットのような固定長で行なわれる。
このシステムにおいてCPU901がデータバス904上に出力する32ビットのようなデータのビット配列は従来と同様にビット0、ビット1、ビット2、ビット3……ビット31のような一般的な順序である。一方、このような配列のデータが入力されるキャッシュメモリ900内には、入力されたデータのビット配列を図1(a)のような配列に並び換えるデータアライメント回路910が設けられている。このデータアライメント回路910は、キャッシュメモリ900からデータバス904上へデータを出力する際には、本発明独特の図1(a)のようなビット配列のデータを一般的な順序の配列に並び換える。
図15にデータ長が32ビットの場合のビットの並び換えを行なうデータアライメント回路910の入出力信号の配列が示されている。同図において、上側の信号bit31〜bit0がメモリアレイ側の信号、下側の信号がデータバス側の信号で、この図における符号“bit”は図1における符号“data”と同義である。なお、データ長が32ビットの場合に16ビットの読出しや8ビットの読出しがあったときもデータアライメント回路910により有効ビット部分に対して同様なビットの並び換えが行なわれる。このデータアライメント回路910によるビットの並び換えと前記ビットシフト回路600等によるビットシフトとを1つの回路もしくは回路ブロックで行なうように構成することも可能である。
また、特に限定されるものでないが、上記データアライメント回路910は、32ビット長のデータを処理するCPU901が、制御信号線905を介して8ビットや16ビットのような単位でのデータを要求する場合には、メモリセルアレイから読み出された8ビットや16ビットのデータのビットの並び換えを行なうとともに、その上位24ビットまたは16ビットに「0」を入れたデータをデータバス904上へ出力する。
図14は本発明に係る半導体記憶装置をメインメモリとして応用したシステムの一実施例を示すものである。1000は本発明を適用したDRAM(ダイナミック・ランダム・アクセス・メモリ)などからなるメインメモリ、1001はマイクロプロセッサ、1003はメインメモリ1000とマイクロプロセッサ1001間を接続するデータバス、1004はメインメモリ1000へ読み出しデータ長を指示するための制御信号線、1005はマイクロプロセッサ1001から供給される一般的な順序のビット配列、すなわち、第6ビットに隣接して第1ビットが存在し、さらに、第1ビットに隣接して第2ビットが存在するというふうに昇順に若しくは降順にビット配列を行ったデータを図1(a)のような本発明独特のビット配列に並び換えたりメモリアレイから読み出されたデータのビット配列を上記と逆に一般的な順序に並び換えるデータアライメント回路で、メインメモリ1000とマイクロプロセッサ1001とデータバス1003とデータアライメント回路1005によってマイクロコンピュータシステム1004が構成される。
メインメモリ1000とマイクロプロセッサ1001は同一チップ上に集積されていても良いし、別チップとして構成されていても良い。メインメモリ1000としては、DRAMの他、SRAM、あるいは強誘電体メモリ、フラッシュメモリ等のメモリを使用することも可能である。図示しないが、上記データバス1003以外に、マイクロプロセッサ1001から出力されるアドレス信号をメインメモリ1000へ供給するためのアドレスバスが設けられる。
なお、図14の応用例では、メインメモリ1000とデータバス1003との間にデータアライメント回路1005を設けているが、バスの切換えやバス占有権の決定等を行なうバスコントローラや、物理アドレスと論理アドレスの変換や仮想記憶制御等を行なうメモリ管理ユニットなどを有するシステムでは、上記データアライメント回路1005の機能を上記バスコントローラやメモリ管理ユニット等に持たせることも可能である。
また、図13の応用例で説明したのと同様に、このデータアライメント回路1005に、ビットの並び換えの機能と前記ビットシフト回路600等によるビットシフト機能とを持たせるように構成することも可能である。その場合においても、データアライメント回路1005の機能や前述したビットシフト機能を上記バスコントローラやメモリ管理ユニット等に持たせることが可能である。
以上本発明者によってなされた発明を実施例に基づき具体的に説明したが、本発明は上記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば上述した実施例では、理解を容易にするため、32ビットを基本データ長とするデータ処理装置に接続される記憶装置を中心として説明してきたが、基本データサイズが16ビット、64ビット、128ビット、256ビット、512ビット、1024ビットあるいは2048ビット等多ビットのデータ処理装置に接続される半導体記憶装置や複数の半導体メモリチップからなるメモリモジュールに本発明を適用しても、上記実施例と同様の効果が得られる。
また、図1(a)にはdata[0*8+k]の隣にdata[1*8+k]を配置するようにした実施例が示されているが、本発明はそのような配置に限定されるものではなく、例えばdata[0*8+k]の隣にdata[2*8+k]が配置されても良いし、data[0*8+k]の隣にdata[3*8+k]が配置されても良く、異なるグループ同士でのビットの並び方が同一であればグループ内でのビットの並び方は任意である。
さらに、図1(b)ではグループ100_7の隣にグループ100_6、その隣にグループ100_5……のように配置された実施例が示されているが、本発明はそれに限定されるものではなく、例えばグループ100_7の隣にグループ100_5が配置されても良いし、グループ100_7の隣にグループ100_0が配置されても良い。
また、前記応用システムの例では、データバス上のデータは一般的な順序のビット配列であると説明したが、データバス上のデータのビット配列そのものが、図1(a)に示されているような本発明独特の配列であっても良い。その場合、データのビット配列の変換はCPUもしくはマイクロプロセッサ側で行なっても良いが、例えばバスの信号線をスクランブルさせてCPU側では一般的な順序でもメモリ側では本発明独特の順序となるように構成してもよい。あるいは、CPUのデータ端子とバスの信号線との接続もしくはメモリのデータ端子とバスの信号線との接続を工夫することで、CPUが一般的な順序のビット配列のデータを出力してもメモリ側では本発明に従ったビット配列のデータとして入力されるように構成しても良い。
発明の効果
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、バイト単位の読み出しを高速に行なうことができるとともに、ビットシフトを行なう回路を実現するための素子や配線も非常に少量で済むため、低消費電力で動作する記憶装置を得ることができる。また、ビットシフトのための配線における並走する信号線の本数も少なくて済むため配線面積が小さくかつクロストークが発生しにくい記憶装置を得ることができる。
【図面の簡単な説明】
図1は、本発明に係るにおける記憶装置におけるメモリセルアレイに記憶されるデータの物理的なビット配列を示した模式図である。
図2は、本発明に係る記憶装置(メモリモジュール)が32ビット長を基本データサイズとするデータ処理装置に接続される場合のビット配列の一例を示す説明図である。
図3は、32ビットデータを読み出す場合の論理的動作を表わす模式図である。
図4は、16ビットデータを読み出す場合の論理的動作を表わす模式図である。
図5は、8ビットデータを読み出す場合の論理的動作を表わす模式図である。
図6は、32ビットデータ、16ビットデータおよび8ビットデータの読出しを可能にするビットシフト回路の一構成例を示すブロック図である。
図7は、ビットシフト回路の具体例を示す回路図である。
図8は、ビットシフト回路の他の例を示す回路図である。
図9は、32ビットデータ、16ビットデータおよび8ビットデータの書込みを可能にするビットシフト回路の一構成例を示すブロック図である。
図10は、図1の1ビットを記憶するローカルなメモリセルアレイの一実施例を示す回路図である。
図11は、本発明を適用した半導体記憶装置におけるメモリセルアレイとビットシフト回路のレイアウトの一例を表わす模式図である。
図12は、本発明を冗長方式の半導体記憶装置に適用した場合の一実施例を示すブロック図である。
図13は、本発明を適用した半導体記憶装置の応用システムの一例としてのマイクロコンピュータシステムの一構成例を示すブロック図である。
図14は、本発明を適用した半導体記憶装置の応用システムの一例としてのマイクロコンピュータシステムの他の構成例を示すブロック図である。
図15は、データ長が32ビットの場合のビットの並び換えを行なうデータアライメント回路の入出力信号の配列を示す機能説明図である。
図16は、従来の半導体記憶装置における32ビット単位で記憶されているメモリセルアレイから8ビットのデータを読み出す方式および本発明における同様な読出し方式を模式的に示す説明図である。
Claims (4)
- 記憶装置のアドレス信号端子に入力されるアドレス情報に基づきデータが出力される記憶装置のデータ信号端子と、データバスとの間に接続されると共に、所定の制御信号が入力されるデータ順序変換回路であって、
上記データバスに接続される上記データバスの本数と同数のデータバス接続端子と、上記データ信号端子に接続される上記データバスの本数と同数のデータ信号接続端子とを有し、
互いに隣接する上記データバス接続端子から入力された信号を隣接しない所定の間隔をもって上記データ信号接続端子から出力し、若しくは、所定の間隔をもって上記データ信号接続端子から入力された信号を互いに隣接する上記データバス接続端子から出力することを特徴とするデータ順序変換回路。 - 上記記憶装置がnビットを基本的な読み出しの単位とする場合、上記所定の制御信号に応じて、上記記憶装置から読み出されたnビットのデータをnビットより小さなビット数のデータとして、ビット位置を所定ビット数だけシフトし、上記データバス接続端子から出力するシフト回路を有することを特徴とする請求項1に記載のデータ順序変換回路。
- 請求項1に記載のデータ順序変換回路と、上記データ順序変換回路に接続された上記記憶回路とを備えるメモリモジュールであって、
上記データ信号接続端子から出力された所定の間隔をもった信号は、上記記憶装置のメモリセルアレイに配列され、その信号の論理的ビット配列は、0*8+k、1*8+k、2*8+k、3*8+k、… m*8+k(kは0≦k≦7なる自然数;mは0≦m≦n/8−1なる自然数)とすることを特徴とするメモリモジュール。 - 請求項3に記載のメモリモジュールと、上記メモリモジュールにアクセスするための上記アドレス情報を出力する中央演算処理装置と、上記メモリモジュールと上記中央演算処理装置とに接続される上記データバスとを備えるデータ処理装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP1999/002841 WO2000074058A1 (fr) | 1999-05-28 | 1999-05-28 | Stockage, procede de stockage et systeme de traitement de donnees |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3965620B2 true JP3965620B2 (ja) | 2007-08-29 |
Family
ID=14235831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001500273A Expired - Fee Related JP3965620B2 (ja) | 1999-05-28 | 1999-05-28 | 記憶装置および記憶方法並びにデータ処理システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US6671219B1 (ja) |
JP (1) | JP3965620B2 (ja) |
TW (1) | TW436684B (ja) |
WO (1) | WO2000074058A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060171233A1 (en) * | 2005-01-18 | 2006-08-03 | Khaled Fekih-Romdhane | Near pad ordering logic |
US10592367B2 (en) * | 2017-09-15 | 2020-03-17 | Apple Inc. | Redundancy implementation using bytewise shifting |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62103893A (ja) * | 1985-10-30 | 1987-05-14 | Toshiba Corp | 半導体メモリ及び半導体メモリシステム |
JPS63142592A (ja) | 1986-12-04 | 1988-06-14 | Fujitsu Ltd | 多次元アクセスメモリ |
JPS63142593A (ja) | 1986-12-04 | 1988-06-14 | Fujitsu Ltd | 多次元アクセスメモリ |
US4845664A (en) * | 1986-09-15 | 1989-07-04 | International Business Machines Corp. | On-chip bit reordering structure |
JPH0289279A (ja) | 1988-09-26 | 1990-03-29 | Nec Corp | 半導体メモリ |
JPH02181244A (ja) | 1989-01-04 | 1990-07-16 | Yokogawa Medical Syst Ltd | アドレッシング装置 |
JPH02292647A (ja) * | 1989-05-02 | 1990-12-04 | Toshiba Corp | 半導体記憶装置 |
US5185872A (en) * | 1990-02-28 | 1993-02-09 | Intel Corporation | System for executing different cycle instructions by selectively bypassing scoreboard register and canceling the execution of conditionally issued instruction if needed resources are busy |
JPH0831276B2 (ja) * | 1990-06-15 | 1996-03-27 | 松下電器産業株式会社 | 半導体メモリ |
EP0470570B1 (en) * | 1990-08-09 | 1997-01-29 | Silicon Graphics, Inc. | Method and apparatus for byte order switching in a computer |
JPH05181744A (ja) | 1992-01-06 | 1993-07-23 | Nec Eng Ltd | 記憶装置 |
JPH06332793A (ja) | 1993-05-20 | 1994-12-02 | Nec Eng Ltd | データアライメント回路 |
US5477543A (en) * | 1994-08-03 | 1995-12-19 | Chromatic Research, Inc. | Structure and method for shifting and reordering a plurality of data bytes |
JPH09231130A (ja) | 1996-02-26 | 1997-09-05 | Mitsubishi Electric Corp | マイクロコンピュータ |
JPH10228766A (ja) | 1997-02-17 | 1998-08-25 | Hitachi Ltd | マイクロコンピュータ |
US5943283A (en) * | 1997-12-05 | 1999-08-24 | Invox Technology | Address scrambling in a semiconductor memory |
-
1999
- 1999-05-28 JP JP2001500273A patent/JP3965620B2/ja not_active Expired - Fee Related
- 1999-05-28 US US09/979,951 patent/US6671219B1/en not_active Expired - Fee Related
- 1999-05-28 WO PCT/JP1999/002841 patent/WO2000074058A1/ja active Application Filing
- 1999-06-10 TW TW088109712A patent/TW436684B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US6671219B1 (en) | 2003-12-30 |
WO2000074058A1 (fr) | 2000-12-07 |
TW436684B (en) | 2001-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3386924B2 (ja) | 半導体装置 | |
CN102197436B (zh) | 用于多电平单元存储器的数据路径,用于存储的方法及用于利用存储器阵列的方法 | |
US8284602B2 (en) | Pipe latch circuit of multi-bit prefetch-type semiconductor memory device with improved structure | |
US5289428A (en) | Semiconductor memory device | |
US6521994B1 (en) | Multi-chip module having content addressable memory | |
US6718432B1 (en) | Method and apparatus for transparent cascading of multiple content addressable memory devices | |
JP2009259392A (ja) | メモリアーキテクチャ | |
US6512716B2 (en) | Memory device with support for unaligned access | |
US6847576B2 (en) | Layout structures of data input/output pads and peripheral circuits of integrated circuit memory devices | |
KR0160325B1 (ko) | 비트 단위 데이타의 입력 및 출력용 반도체 메모리 장치 | |
EP0366588A2 (en) | Memory organization with arrays having an alternate data port facility | |
US4800535A (en) | Interleaved memory addressing system and method using a parity signal | |
US6788600B2 (en) | Non-volatile semiconductor memory | |
JPS59178538A (ja) | シフタ回路のアレイ | |
JP3965620B2 (ja) | 記憶装置および記憶方法並びにデータ処理システム | |
US6118727A (en) | Semiconductor memory with interdigitated array having bit line pairs accessible from either of two sides of the array | |
JPH10289571A (ja) | 半導体記憶装置 | |
JPH0279294A (ja) | データ長変更可能メモリ | |
US20030009642A1 (en) | Data storing circuit and data processing apparatus | |
JP2000058772A (ja) | 半導体メモリ装置 | |
JP3020614B2 (ja) | 半導体記憶装置 | |
JPH06267271A (ja) | 半導体集積回路 | |
JPH1124989A (ja) | 語長可変メモリアクセス方式 | |
JPH0512883A (ja) | シーケンシヤルメモリ | |
JPH10116226A (ja) | 半導体記憶装置のアドレス整列装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050315 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070409 |
|
TRDD | Decision of grant or rejection written | ||
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070427 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070517 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070409 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20030602 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100608 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110608 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |