【解決手段】冗長処理が可能な複数のマクロにおいて、不良となるビットを含むマクロのマクロ番号(10bit)、および、前記不良となるビットの位置を示す不良ビット位置情報(7bit)を含む冗長情報を圧縮する冗長情報圧縮方法であって、前記不良となるビットを含むマクロの不良ビット位置情報(7bit)を設定し、前記設定された不良ビット位置情報(7bit)と同じ不良ビット位置情報を有するマクロのマクロ番号(10bit)を纏める。
冗長処理が可能な複数のマクロにおいて、不良となるビットを含むマクロのマクロ番号、および、前記不良となるビットの位置を示す不良ビット位置情報を含む冗長情報を圧縮する冗長情報圧縮方法であって、
前記不良となるビットを含むマクロの不良ビット位置情報を設定し、
前記設定された不良ビット位置情報と同じ不良ビット位置情報を有するマクロのマクロ番号を纏める、
ことを特徴とする冗長情報圧縮方法。
【発明を実施するための形態】
【0016】
まず、冗長情報圧縮方法および半導体装置の実施例を詳述する前に、
図1および
図2を参照して、冗長情報を説明し、さらに、
図3〜
図5を参照して、冗長情報圧縮方法および半導体装置の一例、並びに、その問題点を説明する。
【0017】
図1は、冗長情報を説明するための図であり、圧縮を行わない場合の冗長情報の処理を説明するためのものである。
図1に示されるように、圧縮を行わない場合、SRAMマクロの冗長は、マクロ毎に行うため、マクロ毎に不良ビット位置(例えば、5〜16ビット程度)の情報を、1:1で対応させて記憶する。
【0018】
すなわち、冗長情報は、不良ビット位置情報をマクロ数分だけ記憶することになるため、例えば、マクロ数が増えると冗長されるマクロ数が少なくても、情報量は非常に大きなものとなる。
【0019】
ところで、前述したように、冗長情報(マクロ数分だけの不良ビット位置情報)は、例えば、電子ヒューズに記憶される。この電子ヒューズは、半導体製造技術が進歩しても、微細化するのは難しく、半導体チップにおける電子ヒューズ(冗長情報)の占有面積が問題になっている。
【0020】
すなわち、例えば、半導体チップに搭載されるSRAMマクロの数および容量の増加に伴って、冗長情報も非常に大きなものとなり、半導体チップに占める冗長情報の記憶領域が増大して、本来の回路として使用する領域を狭めてしまうことにもなって来ている。
【0021】
図2は、冗長されるマクロの個数とその割合の関係を説明するための図であり、例として、SRAMマクロ(冗長マクロ)を1024個搭載した場合における、実際に冗長されるマクロの個数(冗長されたマクロ数)とその割合(比率)の関係を示すものである。
【0022】
すなわち、
図2は、例として、SRAMマクロの容量を512キロビット(Kbit)、SRAMマクロの搭載個数を1024個とし、セルの不良率を1/千万(1/10Mbit)とした場合において、冗長されたマクロ数(横軸)と、その比率(縦軸)の関係を示している。ここで、マクロの容量は、例えば、4kw×128bit=512Kbitとされている。
【0023】
図2における参照符号PPに示されるように、例えば、マクロの搭載個数が1024個の場合であっても、冗長されるマクロ数は、ほぼ50個以下である。すなわち、マクロ数が多くなっても、実際に冗長処理が行われるマクロの数は限られており、その割合は低いことが分かる。この冗長処理を行わないマクロが多いということを利用することによって、冗長データ(冗長情報)の圧縮が可能となる。
【0024】
図3は、冗長情報圧縮方法の一例を説明するための図である。ここで、
図3(a)は、マクロ番号と不良ビット位置情報(不良ビット位置)の組を示し、
図3(b)は、冗長処理を行う(不良ビットを含む)複数のSRAMマクロに対するマクロ番号と不良ビット位置情報の組を示している。
【0025】
図3(a)および
図3(b)に示す冗長情報圧縮方法は、複数のマクロに対してマクロ番号(追番)をつけ、そのマクロ番号(例えば、10ビット)と不良ビットの位置情報(例えば、7ビット)をセット(組)として記憶することで、冗長情報の圧縮を行うものである。
【0026】
すなわち、前述したように、例えば、1024個のSRAMマクロのうち、実際に冗長処理を行うのは50個程度であるため、その冗長処理を行うSRAMマクロに対して、マクロ番号と不良ビット位置情報を組にすることで、冗長情報を圧縮することができる。
【0027】
しかしながら、
図3(a)および
図3(b)に示す冗長情報圧縮方法は、1つの冗長(1つのSRAMセルの冗長)に対してマクロ番号と不良ビット位置情報を組(17ビット)にして記憶するため、SRAMマクロの数が大きくなると、十分な圧縮を行えないこともある。
【0028】
図4は、
図3に示す冗長情報圧縮方法が適用される半導体装置の一例を示すブロック図であり、半導体装置の一例として混載SRAM(半導体記憶装置)における冗長処理を行う構成に注目して示すものである。
【0029】
図4に示されるように、半導体装置100は、電子ヒューズ(eFUSE:冗長情報記憶部)101,スキャンレジスタ102,マクロ番号デコーダ103,不良ビット位置デコーダ104,セレクタ105およびSRAMマクロ161〜164を含む。
【0030】
電子ヒューズ101は、例えば、
図3(b)に示されるような冗長処理を行うSRAMマクロの冗長情報(マクロ番号および不良ビット位置の組)を記憶し、スキャンレジスタ102は、電子ヒューズ101に記憶された冗長情報を順に読み出して格納する。
【0031】
図5は、
図4に示す半導体装置の要部を説明するための図であり、スキャンレジスタ102,マクロ番号デコーダ103および不良ビット位置デコーダ104を抜き出して示すものである。
【0032】
マクロ番号デコーダ103は、スキャンレジスタ102の出力(マクロ番号および不良ビット位置情報の組)を受け取って、マクロ番号をデコードして出力する。不良ビット位置デコーダ104は、スキャンレジスタ102の出力を受け取って、不良ビット位置情報をデコードして出力する。
【0033】
セレクタ105は、マクロ番号デコーダ103からのマクロ番号および不良ビット位置デコーダ104からの不良ビット位置情報を受け取り、それに従ってSRAMマクロ161〜164における冗長処理を順次行う。
【0034】
すなわち、セレクタ105は、例えば、SRAMマクロ161における不良ビットの位置を確認し、その不良ビットを含む入出力回路(I/O)単位で、予め用意された冗長用のRAM領域との切り替え処理(I/O冗長)を行う。
【0035】
なお、冗長処理は、I/O単位で行うものに限定されず、例えば、1本または複数本のビット線単位によるコラム冗長(I/O冗長も含まれる)、或いは、1本または複数本のワード線単位によるロウ冗長であってもよく、知られている他の冗長であってもよい。これは、
図3〜
図5だけではなく、以下に詳述する本実施例においても、様々な冗長処理を適用することができる。
【0036】
ところで、半導体製造技術の進歩に伴って、半導体チップに搭載されるSRAMマクロの数および容量の増加は著しく、例えば、28nm世代では、3000個程度になると考えられる。
【0037】
すなわち、マクロ番号は、3000個程度、或いは、将来的には、さらに多くなると考えられている。これに対して、各SRAMマクロにおける不良ビットの位置情報は、例えば、128個所(ビット)、或いは、せいぜい256ビットまでと考えられている。
【0038】
図3〜
図5を参照して説明したマクロ番号と不良ビット位置情報を組にした冗長情報を使用する場合、例えば、1000個〜3000個といった数のSRAMマクロを搭載する場合等には、満足できる冗長情報の圧縮とはいえない。
【0039】
すなわち、例えば、半導体チップに搭載されるSRAMマクロの数および容量の増加は甚だしく、それに伴って、冗長情報も非常に大きなものとなっている。そのため、単に、マクロ番号および不良ビット位置情報を組にした冗長情報の圧縮では、半導体チップに占める冗長情報の記憶領域が大きくなり、本来の回路として使用する領域を狭めてしまうことになる。
【0040】
なお、以下に詳述する本実施例は、複数のSRAMマクロで形成される混載SRAMへの適用に限定されるものではなく、例えば、DRAMを始めとする複数のメモリマクロを含む様々な半導体記憶装置に対して幅広く適用することができる。
【0041】
さらに、本実施例は、複数のメモリマクロを含む半導体記憶装置だけでなく、例えば、同じ構成の複数の回路マクロを含む様々な半導体装置に対しても適用可能である。ここで、本実施例が適用される複数の回路マクロとしては、それぞれ同じ構成を有し、冗長処理が可能とされ、その冗長処理が、マクロ番号と不良ビット位置情報を含む冗長情報により行われるものが対象となる。
【0042】
以下、本実施例の冗長情報圧縮方法および半導体装置を、添付図面を参照して詳述する。
図6は、冗長情報圧縮方法の第1実施例を説明するための図である。
【0043】
ここで、
図6(a)は、1つのSRAMマクロに対する、識別信号(1ビットの信号)と、不良ビット位置(例えば、識別信号が『1』)またはマクロ番号(例えば、識別信号が『0』)を配列する様子を示し、
図6(b)は、複数のSRAMマクロに対する例を示している。
【0044】
図6(a)および
図6(b)に示す第1実施例の冗長情報圧縮方法は、例えば、冗長情報を、1ビット(1bit)の識別信号と、7ビットの不良ビット位置(識別信号が『1』)または10ビットのマクロ番号(識別信号が『0』)を配列することで表すようになっている。
【0045】
ここで、
図2を参照して説明したのと同様に、SRAMマクロの容量は、例えば、4kw×128bit=512Kbitとされ、また、SRAMマクロの搭載個数は、例えば、1024個とされた場合を考える。なお、不良ビットの発生数(冗長されるマクロ数)は、ほぼ50個以下となる。
【0046】
このとき、例えば、各SRAMマクロに共通する不良ビット位置(SRAMセルが不良となる位置)は、128個所のうちの1つであり、これは、7ビット(2
7=128)により表される。一方、各SRAMマクロのマクロ番号は、例えば、1024個のうちの1つであり、これは、10ビット(2
10=1024)により表される。
【0047】
すなわち、
図6(b)に示されるように、第1実施例の冗長情報圧縮方法は、まず、識別信号を『1』として不良ビット位置を設定する状態とし、7ビットの不良ビット位置情報(不良ビット位置)により『不良ビット位置情報1』を設定する(FB1)。
【0048】
さらに、識別信号を『0』としてマクロ番号を設定する状態とし、『不良ビット位置情報1』と同じ個所が不良のマクロ(SRAMマクロ)を、10ビットのマクロ番号により設定する(MN11)。
【0049】
また、『不良ビット位置情報1』と同じ個所が不良となっている別のマクロが有る場合には、識別信号を『0』としてマクロ番号を設定する状態とする。そして、『不良ビット位置情報1』と同じ個所が不良のマクロ(MN11とは別のマクロ)を、10ビットのマクロ番号により設定する(MN12)。なお、『不良ビット位置情報1』と同じ個所が不良となっている別のマクロが有る場合には、識別信号を『0』としてマクロ番号を設定する状態とし、同様の処理を繰り返す。
【0050】
次に、『不良ビット位置情報1』と同じ個所が不良となっている別のマクロが無い場合には、識別信号を『1』として不良ビット位置を設定する状態とし、7ビットの不良ビット位置情報により『不良ビット位置情報2』を設定する(FB2)。
【0051】
さらに、識別信号を『0』としてマクロ番号を設定する状態とし、『不良ビット位置情報2』と同じ個所が不良のマクロを、10ビットのマクロ番号により設定する(MN21)。このような処理を順に繰り返し、例えば、128個のうちで不良ビットが存在する全ての不良ビット位置に対して行う。
【0052】
以上において、不良ビットの発生数は、ほぼ50個以下と考えられるため、最大で128個の不良ビット位置に基づいて圧縮処理を行う方が、1024個のマクロ番号に基づいて圧縮処理を行うよりも高い圧縮率が得られることになる。これは、今後、半導体チップに搭載されるSRAMマクロ数がさらに増加することを考えると、より一層高い圧縮率が期待できる。
【0053】
図7は、
図6に示す冗長情報圧縮方法が適用される半導体装置の一例を示すブロック図であり、半導体装置の一例として混載SRAM(半導体記憶装置)における冗長処理を行う構成に注目して示すものである。
【0054】
図7に示されるように、半導体装置10は、電子ヒューズ(eFUSE:冗長情報記憶部)1,スキャンレジスタ2,区切り識別回路3,不良ビット位置レジスタ4,セレクタ5およびSRAMマクロ61〜64を含む。
【0055】
ここで、電子ヒューズ1,スキャンレジスタ2,セレクタ5およびSRAMマクロ61〜64は、前述した
図4に示す半導体装置100における電子ヒューズ101,スキャンレジスタ102,セレクタ105およびSRAMマクロ161〜164に対応する。
【0056】
電子ヒューズ1は、例えば、
図6に示されるような冗長処理を行うSRAMマクロの圧縮された冗長情報を記憶し、スキャンレジスタ2は、電子ヒューズ1に記憶された圧縮された冗長情報を順に読み出して格納する。
【0057】
図8は、
図7に示す半導体装置の要部を説明するための図であり、スキャンレジスタ2,区切り識別回路3および不良ビット位置レジスタ4を抜き出して示すものである。ここで、区切り識別回路3および不良ビット位置レジスタ4は、電子ヒューズ1からスキャンレジスタ2を介して読み出された圧縮された冗長情報を解凍する冗長情報解凍部を形成する。
【0058】
区切り識別回路3は、スキャンレジスタ2の出力(圧縮された冗長情報)を受け取って、マクロ番号出力すると共に、不良ビット位置レジスタ4を介して不良ビット位置の情報を出力する。
【0059】
すなわち、区切り識別回路3は、識別情報レジスタ31,不良ビット位置・マクロ番号振り分け回路32およびマクロ番号レジスタ33を含む。識別情報レジスタ31は、例えば、1ビットの識別信号を保持する。なお、前述したように、例えば、識別信号が『1』のときは、不良ビット位置を設定する状態とされ、また、識別信号が『0』のときは、マクロ番号を設定する状態とされる。
【0060】
不良ビット位置・マクロ番号振り分け回路32は、スキャンレジスタ2の出力を受け取り、識別情報レジスタが『1』のときは、不良ビット位置レジスタ4を介して不良ビット位置(不良ビット位置情報)を出力する。また、識別情報レジスタが『0』のときは、マクロ番号レジスタ33を介してマクロ番号を出力する。
【0061】
図9は、
図7および
図8に示す半導体装置における区切り識別回路の一例を説明するための状態遷移図である。まず、状態S10でスタートすると、アドレスadrを『0』(adr←0)として、状態S11に進み、区切り識別処理を行う。
【0062】
状態S11では、例えば、最初(1ビット目)のデータが『1』(data=1)のときは、識別情報レジスタが『1』となり、状態S12に進む。状態S12では、ビットbitを『0』(bit←0),不良ビット位置fbitを『0』(fbit←0)とし、アドレスを『+1』だけインクリメント(adr←adr+1)する。
【0063】
次に、状態S13において、不良ビットの位置の取り込みを行う。すなわち、状態S13で、fbit←fbit*2+dataとして二進数で1桁シフトさせ、状態S14で、bit←bit+1,adr←adr+1の処理を行い、bit=7となるまで繰り返す。この7ビットの不良ビット位置(不良ビット位置情報)により、不良となるセル(SRAMセル)が存在する位置が設定され、状態S11に戻る。
【0064】
状態S11において、最初(1ビット目)のデータが『0』(data=0)のときは、識別情報レジスタが『0』となり、状態S15に進む。状態S15では、ビットbitを『0』(bit←0),マクロ番号macを『0』(mac←0)とし、アドレスを『+1』だけインクリメント(adr←adr+1)する。
【0065】
次に、状態S16において、マクロ番号の取り込みを行う。すなわち、状態S16で、fmac←fmac*2+dataとして二進数で1桁シフトさせ、状態S17で、bit←bit+1,adr←adr+1の処理を行い、bit=10となるまで繰り返し、bit=10になると、状態S18を経由して状態S11に戻る。
【0066】
この10ビットのマクロ番号により、状態S13(S12〜S14)により設定された不良ビット位置と同じ個所が不良となっているマクロが設定される。なお、同じ不良ビット位置が不良となっているマクロが複数個存在する場合には、1ビット目のデータが『0』(識別情報レジスタが『0』)となってマクロ番号を設定するビット列が、その複数個分だけ続くことになる。
【0067】
そして、状態S18において、例えば、アドレスが1000よりも大きくなければ(adr≦1000)、不良ビット位置およびマクロ番号の情報を、セレクタ5を介して各SRAMマクロ61〜64に出力する。また、アドレスが1000よりも大きければ(adr>1000)、処理を終了(状態S19)する。
【0068】
図10は、
図7に示す半導体装置におけるSRAMマクロの一例を示すブロック図であり、I/O冗長を行うSRAMマクロを示すものである。なお、前述した
図7に示すSRAMマクロ61〜64は、全て同じ構成を有し、ここでは、それらを代表してSRAMマクロ60を説明する。
【0069】
図10に示されるように、SRAMマクロ60は、メモリセルアレイ601,ワードドライバ602,冗長デコーダ603,コントロール回路604,冗長切り替えスイッチ605およびI/O(入出力回路)部606を含む。
【0070】
ここで、例えば、I/O部606は、7個のI/O661〜667を含み、メモリセルアレイ601は、I/Oの数よりも1つ多い8個のメモリユニット611〜618を含み、いずれか1つのメモリユニットに不良ビットが存在しても冗長できるようになっている。なお、各メモリユニット611〜618には、複数のビット線が設けられている。
【0071】
図10は、メモリユニット614に不良となるメモリセル(不良ビット)が含まれている場合を示す。このとき、冗長切り替えスイッチ605は、冗長デコーダ603の出力に従って、メモリユニット611〜613をI/O661〜663に接続し、メモリユニット611〜613をI/O661〜663に接続し、メモリユニット614を使用しないように切り替える。
【0072】
すなわち、冗長デコーダ603には、セレクタ5からの不良ビット位置情報(冗長信号RS)が入力され、その不良ビット位置に対応したメモリユニット614を使用しないように、I/O冗長を行うようになっている。
【0073】
なお、セレクタ5からのマクロ番号を示す信号(例えば、
図11における信号MN[0]およびMN[1]に相当)は、その冗長処理を行うSRAMマクロ(冗長RAM)を選択するために使用される。
【0074】
また、
図10は、I/O冗長の例を示すが、1本または複数本のビット線単位によるコラム冗長や1本または複数本のワード線単位によるロウ冗長、或いは、知られている他の冗長方法を適用してもよい。
【0075】
図11は、
図7に示す半導体装置におけるセレクタの一例を示すブロック図であり、マクロ番号を示す2ビットの信号MN[0]およびMN[1]により、4つのSRAMマクロ61〜64のうちのいずれか1つを選択するようになっている。
【0076】
具体的に、例えば、2ビットの信号MN[0],MN[1]が『0,0』のときは、SRAMマクロ61に対するクロック信号clksを活性化してSRAMマクロ61を選択し、他のSRAMマクロ62〜64に対するクロック信号clksを遮断して非選択とする。
【0077】
また、例えば、2ビットの信号MN[0],MN[1]が『0,1』のときは、SRAMマクロ62に対するクロック信号clksを活性化してSRAMマクロ62を選択し、『1,0』のときは、SRAMマクロ63に対するクロック信号clksを活性化してSRAMマクロ62を選択する。
【0078】
そして、例えば、2ビットの信号MN[0],MN[1]が『1,1』のときは、SRAMマクロ64に対するクロック信号clksを活性化してSRAMマクロ64を選択し、他のSRAMマクロ61〜63に対するクロック信号clksを遮断して非選択とする。
【0079】
なお、冗長信号RS(不良ビット位置情報)は、常に、全てのSRAMマクロ61〜64に入力されるようになっている。また、
図11に示すセレクタ5は、単なる例であり、様々な変形および変更が可能なのはいうまでもない。
【0080】
図12は、冗長情報圧縮方法の第2実施例を説明するための図であり、
図12(a)は、区切り信号(1ビットの信号)と、マクロ番号(ただし、区切り信号が『0』)を配列する様子を示し、
図12(b)は、複数のSRAMマクロに対する例を示している。
【0081】
図12(a)および
図12(b)に示す第2実施例の冗長情報圧縮方法は、例えば、冗長情報を、1ビット(1bit)の区切り信号と、10ビットのマクロ番号(識別信号が『0』)を配列することで表すようになっている。
【0082】
すなわち、前述した第1実施例の冗長情報圧縮方法は、不良ビットが発生した位置情報(不良ビット位置情報)に基づいて、同じ位置に不良ビットを有するマクロ番号を纏める(規則正しく並べる)ことで冗長情報の圧縮を行っている。
【0083】
これに対して、本第2実施例の冗長情報圧縮方法では、不良ビット位置情報を、『1』の区切り信号により区切り(インクリメントし)、その区切られたビット列の間に、同じ位置に不良ビットを有するマクロ番号を纏めるようになっている。
【0084】
ここで、例えば、区切り信号(識別信号)が『0』の場合は、前述した第1実施例と同様に、マクロ番号を設定する状態とされ、設定された『不良ビット位置情報』と同じ個所が不良のマクロが、10ビットのマクロ番号により設定される。
【0085】
すなわち、
図12(b)に示されるように、第2実施例の冗長情報圧縮方法は、まず、区切り信号(識別信号)が『0』なので、0ビット目が不良ビットとなるマクロが10ビットのマクロ番号により設定される(MN21)。さらに、同じ0ビット目が不良ビットとなるマクロが、区切り信号が『0』で、10ビットのマクロ番号により設定される(MN22)。
【0086】
次に、IC1において、区切り信号が『1』なので、不良ビットの位置情報がインクリメントされ、1ビット目が不良ビットとなる不良ビット位置情報が設定される。そして、この1ビット目が不良ビットとなるマクロが、MN23(区切り信号が『0』,10ビットのマクロ番号)により設定される。
【0087】
さらに、IC2において、区切り信号が『1』なので、不良ビットの位置情報がインクリメントされ、2ビット目が不良ビットとなる不良ビット位置情報が設定される。ここで、
図12(b)の例では、2ビット目が不良ビットとなるマクロは存在しないので、区切り信号が『1』のIC3により、不良ビットの位置情報がさらにインクリメントされ、3ビット目が不良ビットとなる不良ビット位置情報が設定される。
【0088】
そして、3ビット目が不良ビットとなるマクロが、MN24(区切り信号が『0』,10ビットのマクロ番号)およびMN25(区切り信号が『0』,10ビットのマクロ番号)により設定される。
【0089】
このように、本第2実施例の冗長情報圧縮方法によれば、例えば、不良ビット位置情報の設定に7ビットを使用することなく、不良ビットの位置情報を、1ビットの区切り信号(『1』)により順次インクリメントさせることで設定することが可能になる。
【0090】
図13は、
図12に示す冗長情報圧縮方法が適用される半導体装置の一例を示すブロック図であり、半導体装置の一例として混載SRAM(半導体記憶装置)における冗長処理を行う構成に注目して示すものである。
【0091】
図13に示されるように、半導体装置10は、電子ヒューズ1,スキャンレジスタ2,区切り識別回路7,不良ビット位置カウンタ8,セレクタ5およびSRAMマクロ61〜64を含む。ここで、電子ヒューズ1,スキャンレジスタ2,セレクタ5およびSRAMマクロ61〜64は、それぞれ前述した
図7と同様のものである。
【0092】
電子ヒューズ1は、例えば、
図12に示されるような冗長処理を行うSRAMマクロの圧縮された冗長情報を記憶し、スキャンレジスタ2は、電子ヒューズ1に記憶された圧縮された冗長情報を順に読み出して格納する。
【0093】
図14は、
図13に示す半導体装置の要部を説明するための図であり、スキャンレジスタ2,区切り識別回路7および不良ビット位置カウンタ8を抜き出して示すものである。ここで、区切り識別回路7および不良ビット位置カウンタ8は、電子ヒューズ1からスキャンレジスタ2を介して読み出された圧縮された冗長情報を解凍する冗長情報解凍部を形成する。
【0094】
区切り識別回路7は、スキャンレジスタ2の出力(圧縮された冗長情報)を受け取って、マクロ番号出力すると共に、不良ビット位置カウンタ8を介して不良ビット位置の情報を出力する。
【0095】
すなわち、区切り識別回路7は、識別情報レジスタ71,不良ビット位置・マクロ番号振り分け回路72およびマクロ番号レジスタ73を含む。識別情報レジスタ71は、例えば、1ビットの区切り信号(識別信号)を保持する。
【0096】
なお、前述したように、例えば、区切り信号が『1』のときは、不良ビット位置をインクリメント(+1)して設定する状態とされ、また、区切り信号(識別信号)が『0』のときは、マクロ番号を設定する状態とされる。
【0097】
すなわち、識別情報レジスタが『1』のときは、不良ビット位置・マクロ番号振り分け回路72からインクリメント信号(例えば、『1』の信号)が不良ビット位置カウンタ8に出力され、不良ビット位置カウンタ8は、不良ビット位置をインクリメント(+1)する。
【0098】
また、識別情報レジスタが『0』のときは、
図7を参照して説明したのと同様に、マクロ番号レジスタ73を介してマクロ番号を出力する。なお、不良ビット位置カウンタ8からの不良ビット位置(不良ビット位置情報)およびマクロ番号レジスタ73からのマクロ番号は、セレクタ5に入力される。また、
図13に示すSRAMマクロ61〜64およびセレクタ5は、例えば、前述した
図10および
図11を参照して説明したのと同様の構成を有している。
【0099】
図15は、
図13および
図14に示す半導体装置における区切り識別回路の一例を説明するための状態遷移図である。まず、状態S20でスタートすると、不良ビット位置fbitを『0』(fbit←0)として、状態S21に進み、区切り識別処理を行う。
【0100】
状態S21では、例えば、最初(1ビット目)のデータが『1』(data=1)のときは、識別情報レジスタが『1』となり、状態S22に進む。状態S22では、不良ビット位置fbitを『+1』だけインクリメント(fbit←fbit+1)し、不良ビット位置fbitが128でなければ、状態S21に戻り、fbitが128ならば、処理を終了する(状態S23)。
【0101】
なお、『128』は、前述したように、例えば、各SRAMマクロにおける不良ビットの全ての位置情報(不良となり得る個所2
7=128個所(ビット)であり、これは、仕様により適宜変更され得るのはいうまでもない。
【0102】
状態S21において、最初(1ビット目)のデータが『0』(data=0)のときは、識別情報レジスタが『0』となり、状態S24に進む。状態S24では、ビットbitを『0』(bit←0),マクロ番号macを『0』(mac←0)として、状態S25に進む。
【0103】
状態S25では、fmac←fmac*2+dataとして二進数で1桁シフトさせ、マクロ番号の取り込みを行う。そして、状態S26において、bit←bit+1の処理を行い、bit=10となるまで繰り返し、bit=10になると、状態S27を経由して状態S21に戻る。
【0104】
この10ビットのマクロ番号により、状態S22により設定された不良ビット位置と同じ個所が不良となっているマクロが設定される。なお、例えば、設定された不良ビット位置が不良となっているマクロが存在しない状態が複数続く場合には、1ビット目のデータが『1』(識別情報レジスタが『1』)となって不良ビット位置を順次インクリメントするビット列が、その複数分だけ続くことになる。
【0105】
このように、本第2実施例によれば、不良ビット位置情報を、最初のデータを『1』に設定する(1ビット)だけで、例えば、7ビットで設定する不良ビット位置を順次インクリメントして設定することが可能になる。従って、本第2実施例は、例えば、不良ビットが存在するマクロが多数の不良ビット位置に分散している場合に大きな冗長情報の圧縮効果を期待することができる。
【0106】
図16は、第2実施例の冗長情報圧縮方法の効果を説明するための図であり、
図3(b)を参照して説明した冗長情報圧縮方法と比較して説明するためのものである。
図6において、横軸は、冗長するマクロ(SRAMマクロ)の個数[個]を示し、縦軸は、電子ヒューズ(eFUSE)に記憶される圧縮された冗長情報の情報量[ビット]を示す。
【0107】
また、参照符号LL1は、上述した第2実施例の冗長情報圧縮方法による特性を示し、LL2は、
図3(b)を参照して説明した冗長情報圧縮方法による特性を示し、FCは、1つのマクロにおける電子ヒューズの容量(1024ビット)を示す。
【0108】
ここで、SRAMマクロの容量は、前述したのと同様に、例えば、4kw×128bit=512Kbitとされ、また、SRAMマクロの搭載個数は、例えば、1024個とされた場合を考える。
【0109】
図16におけるLL1とLL2の比較から明らかなように、例えば、冗長するマクロの個数が20個程度よりも多くなると、そのSRAMマクロ数の増加に従って、第2実施例の冗長情報圧縮方法による圧縮効率が大きくなることが分かる。
【0110】
具体的に、例えば、SRAMマクロ数が0個(不良ビットが存在せず、冗長しなくてもよい)の場合、電子ヒューズに格納する情報量は、第2実施例では127ビットになるのに対して、
図3(b)の例では0ビットでよい。
【0111】
しかしながら、実際の半導体製造技術では、例えば、1024個のSRAMマクロに対して、SRAMマクロ数は50個程度となり、さらなる微細化および高集積化が進むと、このSRAMマクロ数は増大するものと考えられる。
【0112】
従って、第2実施例の冗長情報圧縮方法によれば、例えば、1つのSRAMマクロにおける電子ヒューズの容量が1024ビットであっても、80個程度のSRAMマクロ数に対応することが可能なことが分かる。
【0113】
以上、詳述したように、本実施例の冗長情報圧縮方法および半導体装置によれば、冗長情報をより一層圧縮可能として、半導体チップに占める冗長情報の記憶領域(電子ヒューズの領域)を低減することが可能になる。
【0114】
すなわち、マクロ数が多い場合に冗長データの圧縮率を向上することができ、電子ヒューズの個数を削減して半導体チップのサイズを縮小し、或いは、同じ電子ヒューズの個数の場合には冗長救済数を増やすことで歩留りの向上を図ることもできる。
【0115】
なお、本実施例における冗長処理としては、I/O単位で行うI/O冗長を始めとする1本または複数本のビット線単位によるコラム冗長、1本または複数本のワード線単位によるロウ冗長、或いは、知られている様々な冗長処理を適用することができる。
【0116】
また、本実施例は、複数のSRAMマクロで形成される混載SRAMへの適用に限定されず、例えば、DRAMを始めとする複数のメモリマクロを含む様々な半導体記憶装置に対して幅広く適用することができる。さらに、本実施例は、複数のメモリマクロを含む半導体記憶装置だけでなく、例えば、同じ構成の複数の回路マクロを含む様々な半導体装置に対しても適用することが可能である。
【0117】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【0118】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
冗長処理が可能な複数のマクロにおいて、不良となるビットを含むマクロのマクロ番号、および、前記不良となるビットの位置を示す不良ビット位置情報を含む冗長情報を圧縮する冗長情報圧縮方法であって、
前記不良となるビットを含むマクロの不良ビット位置情報を設定し、
前記設定された不良ビット位置情報と同じ不良ビット位置情報を有するマクロのマクロ番号を纏める、
ことを特徴とする冗長情報圧縮方法。
【0119】
(付記2)
前記マクロ番号は、複数の前記マクロにおける1つを特定する第1ビット列で表され、
前記不良ビット位置情報は、それぞれの前記マクロにおける前記不良となるビットを特定する第2ビット列で表され、
前記第1ビット列は、前記第2ビット列よりも大きい、
ことを特徴とする付記1に記載の冗長情報圧縮方法。
【0120】
(付記3)
前記不良ビット位置情報の設定は、
前記不良となるビットを含む前記マクロから、前記第2ビット列により設定する、
ことを特徴とする付記1または付記2に記載の冗長情報圧縮方法。
【0121】
(付記4)
前記不良ビット位置情報の設定は、
複数ビット列の最初の識別信号を第1値とした後、前記第2ビット列により設定し、
前記のマクロ番号の纏めは、
複数ビット列の最初の識別信号を第2値とした後、前記第1ビット列により設定する、
ことを特徴とする付記3に記載の冗長情報圧縮方法。
【0122】
(付記5)
前記不良ビット位置情報の設定は、
前記不良ビット位置情報を順番にインクリメントして設定する、
ことを特徴とする付記1または付記2に記載の冗長情報圧縮方法。
【0123】
(付記6)
前記不良ビット位置情報の設定は、
複数ビット列の最初の識別信号を第1値としてインクリメントし、
前記のマクロ番号の纏めは、
複数ビット列の最初の識別信号を第2値とした後、前記第1ビット列により設定する、
ことを特徴とする付記5に記載の冗長情報圧縮方法。
【0124】
(付記7)
冗長処理が可能な複数の前記マクロと、
付記1乃至付記6のいずれか1項に記載の冗長情報圧縮方法により圧縮された冗長情報が記憶される冗長情報記憶部と、
前記冗長情報記憶部から、圧縮された前記冗長情報を受け取って、前記不良ビット位置情報、および、前記不良ビット位置情報に対応する前記マクロ番号を出力する冗長情報解凍部と、を有する、
ことを特徴とする半導体装置。
【0125】
(付記8)
さらに、
前記冗長情報記憶部から、圧縮された前記冗長情報を受け取って、前記冗長情報解凍部に出力するスキャンレジスタを有する、
ことを特徴とする付記7に記載の半導体装置。
【0126】
(付記9)
さらに、
前記冗長情報解凍部の出力を受け取って、冗長処理を行うマクロを選択するセレクタを有する、
ことを特徴とする付記7または付記8に記載の半導体装置。
【0127】
(付記10)
前記冗長情報解凍部は、
前記複数ビット列の最初の識別信号が第1値か第2値かを判定する識別情報レジスタと、
前記識別信号が第1値のとき、前記識別信号に続く前記第2ビット列から前記不良ビット位置情報を出力し、前記識別信号が第2値のとき、前記識別信号に続く前記第1ビット列から前記マクロ番号を出力する第1不良ビット位置・マクロ番号振り分け回路と、を含む区切り識別回路を有する、
ことを特徴とする付記7乃至付記9のいずれか1項に記載の半導体装置。
【0128】
(付記11)
前記冗長情報解凍部は、さらに、
前記識別信号が第2値のとき、前記不良ビット位置・マクロ番号振り分け回路からの前記マクロ番号を保持して出力するマクロ番号レジスタと、
前記識別信号が第1値のとき、前記不良ビット位置・マクロ番号振り分け回路からの前記不良ビット位置を保持して出力する不良ビット位置レジスタと、を有する、
ことを特徴とする付記10に記載の半導体装置。
【0129】
(付記12)
前記冗長情報解凍部は、
前記複数ビット列の最初の識別信号が第1値か第2値かを判定する識別情報レジスタと、
前記識別信号が第1値のとき、前記不良ビット位置情報を順番にインクリメントし、前記識別信号が第2値のとき、前記識別信号に続く前記第1ビット列から前記マクロ番号を出力する不良ビット位置・マクロ番号振り分け回路と、を含む区切り識別回路を有する、
ことを特徴とする付記7乃至付記9のいずれか1項に記載の半導体装置。
【0130】
(付記13)
前記冗長情報解凍部は、さらに、
前記識別信号が第2値のとき、前記不良ビット位置・マクロ番号振り分け回路からの前記マクロ番号を保持して出力するマクロ番号レジスタと、
前記識別信号が第1値のとき、前記不良ビット位置・マクロ番号振り分け回路からのインクリメント信号に従って前記不良ビット位置をインクリメントして出力する不良ビット位置カウンタと、を含む、
ことを特徴とする付記12に記載の半導体装置。
【0131】
(付記14)
前記冗長情報記憶部は、電子ヒューズであり、
前記マクロは、SRAMマクロであり、
それぞれの前記SRAMマクロは、同じ回路構成を有する、
ことを特徴とする付記7乃至付記13のいずれか1項に記載の半導体装置。
【0132】
(付記15)
前記冗長処理は、
I/O単位で冗長を行うI/O冗長である、
ことを特徴とする付記14に記載の半導体装置。