半导体装置及存储模块的制作方法

文档序号:16236882发布日期:2018-12-11 22:41阅读:174来源:国知局
半导体装置及存储模块的制作方法

本发明涉及一种半导体装置及存储模块,其例如能够很好地应用于内置有存储器的半导体装置中。

背景技术

以往,已知有一种存储模块,其能够检测出存储器内的数据的错误并将其纠正为正确的数据。

例如,在日本特开2016-66337号公报(专利文献1)中记载了,ecc(errorcorrectioncode/错误校正码)编码部对写入于存储器的数据附加错误纠正码而生成编码数据,第一错误检测部对从存储器读取的数据进行错误检测与纠正处理。

在专利文献1所记载的装置中,能够检测出对存储模块内的数据进行处理的电路及传送数据的配线的故障。

然而,专利文献1所记载的装置无法检测对存储模块内的存储地址进行处理的电路及传送存储地址的配线的故障。

其它课题及新特征可以通过本说明书的说明及附图得以明确。



技术实现要素:

在本发明的一种实施方式中,选择译码器根据至少1位的地址位控制与多个存储模块相对应的多个选择信号的电平。故障判定部根据多个选择信号的电平判定选择译码器是否处于故障状态。

本发明的上述及其他目的、特征、局面及优点可以通过下述详细说明及附图得以明确。

附图说明

图1是表示第一实施方式的半导体装置的结构的图。

图2是表示参考例1的半导体装置的结构的图。

图3是表示参考例1的第一存储模块的结构的图。

图4是表示第二实施方式的半导体装置的结构的图。

图5是表示选择译码器正常时的输入与输出之间的关系的图。

图6是表示选择译码器(62)的故障判定顺序的流程图。

图7是表示第三实施方式的半导体装置的结构的图。

图8是表示第四实施方式的半导体装置的结构的图。

图9是表示第五实施方式的半导体装置的结构的图。

图10是表示第六实施方式的半导体装置的结构的图。

图11是表示第七实施方式的半导体装置的结构的图。

图12是表示第七实施方式的存储于存储阵列中的数据的结构的图。

图13是表示第八实施方式的半导体装置的结构的图。

图14是表示第八实施方式的存储于存储阵列中的数据的结构的图。

图15是表示参考例2的半导体装置的结构的图。

图16是表示带有地址输出功能的第一存储模块的结构的图。

图17是表示第九实施方式的半导体装置的结构的图。

图18是表示第十实施方式的半导体装置的结构的图。

图19是表示第十一实施方式的半导体装置的结构的图。

图20是表示通知有故障时的cpu的处理顺序的流程图。

图21是表示第十二实施方式的半导体装置(1600)的结构的图。

图22是表示带有地址输出功能的第一存储模块(281)的结构的图。

图23是表示带有地址输出功能的第一存储模块(281)的布局的图。

图24是表示第十三实施方式的半导体装置(1700)的结构的图。

图25是表示带有地址输出功能的第一存储模块(381)的结构的图。

图26是表示第十四实施方式的半导体装置(1800)的结构的图。

图27是表示带有地址输出功能的第一存储模块(481)的结构的图。

具体实施方式

以下,参考附图对本发明的实施方式进行说明。在附图中,相同符号表示相同的构成元件。

(第一实施方式)

图1是表示第一实施方式的半导体装置300的结构的图。

如图1所示,该半导体装置具备n个存储模块30-1~30-n、选择译码器303及故障判定部304。其中,n为2以上的自然数。

选择译码器303根据至少一个位(bit)的地址位来控制多个选择信号cen1~cenn的电平。

存储模块30-i(i=1~n)在对应的选择信号ceni为激活电平时被选择,从而能够进行数据的读取及写入。

故障判定部304根据多个选择信号cen1~cenn的电平来判定选择译码器303是否处于故障状态。

为了适于未来的自动驾驶,车载半导体期待具有用于提高安全性的功能,例如,要求基于iso26262(功能安全)标准而进行设计。根据该标准,要求在发生了硬件的老化等偶发故障时纠正该故障或检测该故障而进行危险回避处理。并且,在高可靠性产品中,容易受放射线(α线或中子线)的错误操作的影响的存储器中搭载有ecc功能的情况较多。由此,不仅能够纠正或检测出放射线对存储数据的破坏,而且还能够纠正或检测出数据的偶发故障。然而,关于对由ecc无法纠正及错误检测的非数据类信号(地址)进行处理的电路,则存在无法检测其故障的问题。根据本实施方式,能够检测出对用于指定多个存储模块中的哪一个存储模块的地址进行处理的选择译码器303的故障。

(参考例1的半导体装置)

图2是表示参考例1的半导体装置400的结构的图。

如图2所示,该半导体装置400具备第一存储模块41、第二存储模块42、闪存器350、ecc编码器21及备用控制电路31~34。而且,该半导体装置400还具备选择器51、ecc译码器22、地址分割器61、选择译码器62、备用译码器68、中断控制部201、cpu202、触发器(ff)71及触发器(ff)72。

第一存储模块41及第二存储模块42例如为在半导体装置的设计环境中作为数据库而提供的sram(staticrandomaccessmemory/静态随机存取存储器)宏(macro)。第一存储模块41及第二存储模块42有时可以用“存储器(memoryunit)”、“存储块(memoryblock)”、“存储宏(memorymacro)”等术语表示。

第一存储模块41具备:具有多个sram存储单元(memorycell)的存储阵列(memoryarray)43、sram逻辑电路。

存储阵列43包括正常块363及备用块364。正常块363由多个正常存储单元列构成。多个正常存储单元列只要未出现不良则成为数据写入部位。备用块364由一个以上的备用存储单元列构成。一个以上的备用存储单元列的设置目的在于,代替正常块363所包括的多个正常存储单元列中的具有不良存储单元的不良存储单元列。一个以上的备用存储单元列替代不良存储单元列而成为写入数据的部位。

第二存储模块42具备:具有多个sram存储单元的存储阵列44、sram逻辑电路。存储阵列44包括正常块365及备用块366。正常块365由多个正常存储单元列构成。备用块366由一个以上的备用存储单元列构成。

图3是表示参考例1的第一存储模块41的结构的图。第二存储模块42的结构也与此相同。

如图3所示,第一存储模块41具备地址输入端子ada、时钟脉冲输入端子ck、数据输出输入端子da、存储阵列mary、字线驱动电路wd、数据输出输入部io及控制部ctrl。

在地址输入端子ada输入有从地址分割器61传送过来的第二地址位add[0:n-1]。在时钟脉冲输入端子ck输入有时钟脉冲clk。数据输出输入端子da输入或输出数据信号d1[0:m]。

存储阵列mary具有基于字线wl0~wli而被选择的多个存储单元。

控制部ctrl具备:由闩锁电路1_0~1_n-1构成的暂存电路650、地址译码器adrctl。闩锁电路1_0~1_n-1与时钟脉冲clk同步地读入地址位add[0]~add[n-1],并将其作为内部地址位aq1[0]~aq1[n-1]而输出。闩锁电路1_0~1_n-1保持读入的地址位add[0]~add[n-1]直至输入有时钟脉冲clk边沿为止。地址译码器adrctl根据内部地址位aq1[0]~aq1[n-1]输出地址译码信号(x0~xi及y0~yj)。

字线驱动电路wd根据地址译码信号中的行选择信号x0~xi,选择并驱动存储阵列mary的对应的字线wl。

数据输出输入部io经由数据输出输入端子da将存储阵列mary内的基于字线wl而被选择的存储单元的数据作为数据信号d1[0:m]而进行输出。

数据输出输入部io向存储阵列mary内的基于字线wl而被选择的存储单元写入经由数据输出输入端子da输入的数据信号d1[0:m]。

再次回到图2,地址分割器61将从cpu202输出的(n+1)位的地址信号a[0:n]分割为最高有效位的第一地址位add[n](高位第二个位)和n位的第二地址位add[0:n-1](低位第一个位)。n位的第二地址位add[0:n-1]供给到第一存储模块41及第二存储模块42。地址分割器61具备为了进行定时控制而锁存(latching)第一地址位add[n]及第二地址位add[0:n-1]的闩锁电路。

ecc编码器21对写入数据(writedata)(即,数据信号data[0:m])进行错误纠正与检测编码(errordetectionandcorrectioncoding),并将错误纠正与检测编码后的数据输出给第一存储模块41及第二存储模块42。具体而言,ecc编码器21生成用于对(m+1)位的数据信号data[0:m]进行错误纠正与检测的s位的检验位,并生成附加有检验位的(m+s+1)位的数据信号edata[0:m+s]作为错误检测与纠正编码数据。

检验位为能够修正x位以下的错误且能够检测y位(y>x)以下的错误的代码(code)。例如,检验位可以作为sec-dedcode(singleerror-correctingdouble-error-detectingcode/单错校正和双错检测码),即,纠正一位错误检测二位错误的错误纠正码。

选择译码器62根据选择许可信号cen及第一地址位add[n],控制第一选择信号cen1的电平及第二选择信号cen2的电平。选择译码器62在选择许可信号cen为激活电平“1”且第一地址位add[n]为“1”时将第一选择信号cen1的电平设定为激活电平“1”,并且将第二选择信号cen2的电平设定为非激活电平“0”。选择译码器62在选择许可信号cen为激活电平“1”且第一地址位add[n]为“0”时将第一选择信号cen1的电平设定为非激活电平“0”,并且将第二选择信号cen2的电平设定为激活电平“1”。选择译码器62在选择许可信号cen为非激活电平“0”时将第一选择信号cen1的电平设定为非激活电平“0”,并且将第二选择信号cen2的电平设定为非激活电平“0”。

闪存器350存储表示存在于正常块363内的不良存储单元列的地址信号c_add1及表示存在于正常块365内的不良存储单元列的地址信号c_add2。

备用译码器68对正常块363内的多个正常存储单元列中的不良存储单元列的地址信号c_add1进行译码,并输出地址译码信号r1。备用译码器68对正常块365内的多个正常存储单元列中的不良存储单元列的地址信号c_add2进行译码,并输出地址译码信号r2。

备用控制电路31进行如下控制:在写入数据时,根据地址译码信号r1,使ecc编码器21的输出不会写入到正常块363内的不良存储单元列而是写入到备用块364内的备用存储单元列。例如,在备用块364配置在存储阵列43内的右侧且多个数据输出输入线与正常存储单元列的多个位线连接的情况下,备用控制电路31进行如下控制:在写入数据时,使与不良存储单元列的位线连接的数据输出输入线以及配置在其右侧的数据输出输入线连接于不良存储单元列的位线的右侧第一个位线。

备用控制电路32进行如下控制:在写入数据时,根据地址译码信号r2,使ecc编码器21的输出不会写入到正常块365内的不良存储单元列而是写入到备用块366内的备用存储单元列。

在第一存储模块41中,在写入数据时,当第一选择信号cen1为“1”时,错误检测与纠正编码数据edata[0:m+s]写入第二地址位add[0:n-1]所指定的部位,当第一选择信号cen1为“0”时,不写入错误检测与纠正编码数据edata[0:m+s]。在第二存储模块42中,在写入数据时,当第二选择信号cen2为“1”时,错误检测与纠正编码数据edata[0:m+s]写入第二地址位add[0:n-1]所指定的部位,当第二选择信号cen2为“0”时,不写入错误检测与纠正编码数据edata[0:m+s]。

在第一存储模块41中,在读取数据时,当第一选择信号cen1为“1”时,从第二地址位add[0:n-1]所指定的部位输出存储的数据信号q1。在第一存储模块41中,在读取数据时,当第一选择信号cen1为“0”时,不输出存储的数据信号q1。在第二存储模块42中,在读取数据时,当第二选择信号cen2为“1”时,从第二地址位add[0:n-1]所指定的部位输出存储的数据信号q2。在第二存储模块42中,在读取数据时,当第二选择信号cen2为“0”时,不输出存储的数据信号q2。

备用控制电路33进行如下控制:在读取数据时,根据地址译码信号r1,不从正常块363内的不良存储单元列而是从备用块364内的备用存储单元列读取数据。例如,在备用块364配置在存储阵列43内的右侧且多个数据输出输入线与正常存储单元列的多个位线连接的情况下,备用控制电路33进行如下控制:在读取数据时,使与不良存储单元列的位线连接的数据输出输入线以及配置在其右侧的数据输出输入线连接于不良存储单元列的位线的右侧第一个位线。

备用控制电路34进行如下控制:在读取数据时,根据地址译码信号r2,不从正常块365内的不良存储单元列而是从备用块366内的备用存储单元列读取数据。

选择器51根据第一选择信号cen1的电平及第二选择信号cen2的电平,选择从第一存储模块41输出的数据信号q1及从第二存储模块42输出的数据信号q2中的任意一个,并将其输出给ecc译码器22。

选择器51在第一选择信号cen1的电平为激活电平“1”且第二选择信号cen2的电平为非激活电平“0”时选择从第一存储模块41输出的数据信号q1,并将其输出给ecc译码器22。选择器51在第一选择信号cen1的电平为非激活电平“0”且第二选择信号cen2的电平为激活电平“1”时选择从第二存储模块42输出的数据信号q2,并将其输出给ecc译码器22。选择器51在第一选择信号cen1的电平为非激活电平“0”且第二选择信号cen2的电平也为非激活电平“0”时选择并输出从第一存储模块41输出的数据信号q1及从第二存储模块42输出的数据信号q2中的任意一个。选择器51在第一选择信号cen1的电平为激活电平“1”且第二选择信号cen2的电平也为激活电平“1”时选择并输出从第一存储模块41输出的数据信号q1及从第二存储模块42输出的数据信号q2中的任意一个。关于在cen1=“1”且cen2=“1”以及在cen1=“0”且cen2=“0”时选择哪一个,可以是如下选择的任意一个:选择预先明确规定的一方、选择上次选择的一方、或者选择通过逻辑设计而设定的逻辑门所决定的一方。

ecc译码器22对选择器51的输出进行错误检测与纠正。ecc译码器22若检测到选择器55的输出的错误则输出故障通知信号error。中断控制部201若接收到故障通知信号error则向cpu202中断通知检测到故障的情况。

cpu202控制整个半导体装置。cpu202若从中断控制部201接收到故障的中断通知则进行必要的处理。

ff71设置在从选择译码器62到选择器51的第一选择信号cen1的传送路径上。ff72设置在从选择译码器62到选择器51的第二选择信号cen2的传送路径上。供给到ff71、ff72、第一存储模块41及第二存储模块42的时钟脉冲相同。

设置ff71的目的在于,使第一选择信号cen1传输到选择器51的时间和来自第一存储模块41的输出q1传输到选择器51的时间同步。设置ff72的目的在于,使第二选择信号cen2传输到选择器51的时间和来自第二存储模块42的输出q2传输到选择器51的时间同步。之所以需要进行上述同步控制是因为,在第一存储模块41及第二存储模块42中,数据的输出需要时钟脉冲clk的一个周期的时间。

在参考例1的半导体装置400中存在如下问题:无法检测对地址信号add[n]进行处理的选择译码器62及其相关配线的故障、对地址信号c_add1及c_add2进行处理的备用译码器68及其相关配线的故障。

(第二实施方式)

图4是表示第二实施方式的半导体装置500的结构的图。

该半导体装置500具备第一存储模块45、第二存储模块46、ecc编码器21、选择器51、ecc译码器22、地址分割器61、选择译码器62、故障判定部121、中断控制部201、cpu202、ff71及ff72。

第二实施方式的ecc编码器21、地址分割器61、选择译码器62、ecc译码器22、ff71、ff72、选择器51、中断控制部201及cpu202与参考例1相同,因此省略重复说明。

与参考例1的第一存储模块41相同,第一存储模块45具备:具有多个sram存储单元的存储阵列、sram逻辑电路。第一存储模块45不具有备用列代替功能。

与参考例1的第二存储模块42相同,第二存储模块46具备:具有多个sram存储单元的存储阵列、sram逻辑电路。第二存储模块46不具有备用列代替功能。

故障判定部121根据第一选择信号cen1的电平、第二选择信号cen2的电平及选择许可信号cen的电平,判定选择译码器62是否产生故障。故障判定部121在判定选择译码器62出现故障时向中断控制部201输出故障通知信号error。

图5是表示选择译码器62正常时的输入(选择许可信号crn、地址信号的最高有效位add[n])与输出(第一选择信号cen1、第二选择信号cen2)之间的关系的图。

在选择译码器62正常时,在选择许可信号cen的电平为激活电平“1”且地址信号的最高有效位add[n]为“1”时,选择译码器62将第一选择信号cen1的电平设定为激活电平“1”且将第二选择信号cen2的电平设定为非激活电平“0”。在选择译码器62正常时,在选择许可信号cen的电平为激活电平“1”且地址信号的最高有效位add[n]为“0”时,选择译码器62将第一选择信号cen1的电平设定为非激活电平“0”且将第二选择信号cen2的电平设定为激活电平“1”。在选择译码器62正常时,在选择许可信号cen的电平为“0”时,不管地址信号的最高有效位add[n]的电平如何,将第一选择信号cen1的电平设定为非激活电平“0”且将第二选择信号cen2的电平设定为非激活电平“0”。

图6是表示选择译码器62的故障判定顺序的流程图。

如图6所示,在步骤s301中,若选择许可信号cen的电平为“1”(是),则进入步骤s302,若选择许可信号cen的电平为“0”(否),则进入步骤s303。

在步骤s302中,若第一选择信号cen1的电平及第二选择信号cen2的电平均为“1”或“0”(是),则进入步骤s305,若第一选择信号cen1的电平及第二选择信号cen2的电平中的一个为“1”且另一个为“0”(否),则进入步骤s304。

在步骤s303中,若第一选择信号cen1的电平及第二选择信号cen2的电平均为“0”(是),则进入步骤s304,若第一选择信号cen1的电平及第二选择信号cen2的电平中的至少一个为“1”(否),则进入步骤s305。

在步骤s304中,故障判定部121判定选择译码器62处于正常状态。

在步骤s305中,故障判定部121判定选择译码器62处于故障状态。故障判定部121向中断控制部201输出故障通知信号error。中断控制部201若接收到故障通知信号error则向cpu202通知故障。

另外,在上述说明中,之所以在选择许可信号cen的电平为“1”时,只有第一选择信号cen1及第二选择信号cen2中的一方反转的情况下才判定选择译码器62处于故障状态,这是为了检测出发生频率高的单一故障。

如上所述,在本实施方式中,根据第一选择信号cen1的电平、第二选择信号cen2的电平及选择许可信号cen的电平,能够判定选择译码器62是否出现故障。

(第三实施方式)

图7是表示第三实施方式的半导体装置600的结构的图。

该半导体装置600具备第一存储模块45、第二存储模块46、ecc编码器21、选择器149、ecc译码器22、地址分割器61、选择译码器62、故障判定部131、中断控制部201、cpu202、ff71及ff72。

第三实施方式的第一存储模块45、第二存储模块46、ecc编码器21、ecc译码器22、地址分割器61、选择译码器62、中断控制部201、cpu202、ff71及ff72与第二实施方式相同,因此省略重复说明。

与第二实施方式的故障判定部121相同,故障判定部131判定选择译码器62是否出现故障。故障判定部131在判定选择译码器62出现故障时向选择器149输出故障检测信号er。

选择器149若接收到故障检测信号er则使从第一存储模块45和第二存储模块46中的被选择的一方输出的数据的多个位中的x个位反转。x个位是超过在ecc译码器22中能够错误纠正的位数的上限且能够错误检测的位数的上限以下的位数。在检验位为sec-dedcode时,x=2。

根据本实施方式,无需设置新的电路,即可检测出对地址信号add[n]进行处理的选择译码器62及其相关配线的故障。

(第四实施方式)

图8是表示第四实施方式的半导体装置700的结构的图。

该半导体装置700具备第一存储模块45、第二存储模块46、ecc编码器21、选择器141、选择器142、ecc译码器122、地址分割器61、选择译码器62、中断控制部201、cpu202、ff73、ff74、ff75及ff76。

第四实施方式的第一存储模块45、第二存储模块46、ecc编码器21、地址分割器61、选择译码器62、中断控制部201及cpu202与第二实施方式相同,因此省略重复说明。

在读取数据时,构成从第一存储模块45输出的数据的多个位分类成组a(第一组)的多个位qa及组b(第二组)的多个位qb。第一存储模块45将组a的多个位qa输出给选择器141,将组b的多个位qb输出给选择器142。

在读取数据时,构成从第二存储模块46输出的数据的多个位分类成组c(第一组)的多个位qc及组d(第二组)的多个位qd。第二存储模块46将组c的多个位qc输出给选择器141,将组d的多个位qd输出给选择器142。

组a的多个位qa的位置与组c的多个位qc的位置相同。组b的多个位qb的位置与组d的多个位qd的位置相同。

例如,组a的多个位qa可以是从第一存储模块45输出的多个位中的奇数位,组b的多个位qb可以是从第一存储模块45输出的多个位中的偶数位。组c的多个位qc可以是从第二存储模块46输出的多个位中的奇数位,组d的多个位qd可以是从第二存储模块46输出的多个位中的偶数位。

或者,组a的多个位qa可以是从第一存储模块45输出的多个位中msb(mostsignificantbit/最高有效位)侧的高位一半的位,组b的多个位qb可以是从第一存储模块45输出的多个位中lsb(leastsignificantbit/最低有效位)侧的低位一半的位。组c的多个位qc可以是从第二存储模块46输出的多个位中msb侧的高位一半的位,组d的多个位qd可以是从第二存储模块46输出的多个位中lsb侧的低位一半的位。

在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“0”时,选择器141选择从第一存储模块45输出的组a的多个位qa与从第二存储模块46输出的组c的多个位qc中的组a的多个位qa,并将其输出给ecc译码器122。

在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“1”时,选择器141选择从第一存储模块45输出的组a的多个位qa与从第二存储模块46输出的组c的多个位qc中的组c的多个位qc,并将其输出给ecc译码器122。

选择器141在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“0”时输出从第一存储模块45输出的组a的多个位qa与从第二存储模块46输出的组c的多个位qc中的任意一方。

选择器141在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“1”时输出从第一存储模块45输出的组a的多个位qa与从第二存储模块46输出的组c的多个位qc中的任意一方。

在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“0”时,选择器142选择从第一存储模块45输出的组b的多个位qb与从第二存储模块46输出的组d的多个位qd中的组b的多个位qb,并将其输出给ecc译码器122。

在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“1”时,选择器142选择从第一存储模块45输出的组b的多个位qb与从第二存储模块46输出的组d的多个位qd中的组d的多个位qd,并将其输出给ecc译码器122。

选择器142在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“0”时输出从第一存储模块45输出的组b的多个位qb与从第二存储模块46输出的组d的多个位qd中的任意一方。

选择器142在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“1”时输出从第一存储模块45输出的组b的多个位qb与从第二存储模块46输出的组d的多个位qd中的任意一方。

ecc译码器122对将选择器141的输出与选择器142的输出合成之后的位进行错误检测与纠正。ecc译码器122若检测出合成后的位存在错误则输出故障通知信号error。

ff73设置在从选择译码器62到选择器141的第一选择信号cen1的传送路径上。ff74设置在从选择译码器62到选择器141的第二选择信号cen2的传送路径上。ff75设置在从选择译码器62到选择器142的第一选择信号cen1的传送路径上。ff76设置在从选择译码器62到选择器142的第二选择信号cen2的传送路径上。供给到ff73、ff74、ff75、ff76、第一存储模块45及第二存储模块46的时钟脉冲相同。

通过采用上述结构,能够检测出ff73、ff74、ff75或ff76的故障。

例如,在cen1=1且cen2=0的情况下,若ff73正常,则选择器141输出组a的多个位qa,但是,若ff73出现故障,则无法确定选择器141输出组a的多个位qa还是输出组c的多个位qc。在输出了组c的多个位qc的情况下,ecc译码器122通过对将组b的多个位qb与组c的多个位qc合成之后的位进行错误检测与纠正,从而检测出错误。由此,能够检测出ff73~ff76的任意一个出现故障的情况。

(第五实施方式)

图9是表示第五实施方式的半导体装置800的结构的图。

如图9所示,该半导体装置800具备存储模块47、ecc编码器21、备用控制电路35、备用控制电路36、ecc译码器22、备用译码器168、编码器151、比较器152、中断控制部201及cpu202。

ecc编码器21、ecc译码器22、中断控制部201及cpu202与参考例1相同,因此省略重复说明。

存储模块47具备:具有多个sram存储单元的存储阵列155、sram逻辑电路。

存储阵列155包括正常块153及备用块154。正常块153由多个正常存储单元列构成。多个正常存储单元列只要未产生不良则成为数据写入部位。备用块154由一个以上的备用存储单元列构成。一个以上的备用存储单元列的设置目的在于,代替正常块153所包括的多个正常存储单元列中的具有不良存储单元的不良存储单元列。一个以上的备用存储单元列替代不良存储单元列而成为写入数据的部位。

备用译码器168对正常块153内的多个正常存储单元列中的不良存储单元列的地址信号c_add进行译码,并输出地址译码信号r1。

备用控制电路35进行如下控制:在写入数据时,根据地址译码信号r1,使ecc编码器21的输出不会写入到正常块153内的不良存储单元列而是写入到备用块154内的备用存储单元列。

在存储模块47中,在写入数据时,错误检测与纠正编码数据edata[0:m+s]写入由地址信号add[0:n]指定的部位。在存储模块47中,在读取数据时,从由地址信号add[0:n]指定的部位输出存储的数据信号q。

备用控制电路36进行如下控制:根据地址译码信号r1,不从正常块153内的不良存储单元列而是从备用块154内的备用存储单元列读取数据。

编码器151对地址译码信号r1进行编码,输出正常块153内的多个正常存储单元列中的不良存储单元列的地址信号c_add’。该编码器进行与备用译码器168的译码(转换)相反的转换。

比较器152对从编码器151输出的地址信号c_add’与输入于备用译码器168的地址信号c_add进行比较,并在其不一致时输出故障通知信号error。

通过采用上述结构,在备用译码器168处于故障状态时,从地址信号c_add生成的地址译码信号r1成为错误信号,导致对地址译码信号r1进行编码而得到的地址信号c_add’与地址信号c_add不一致。通过检测出该不一致,能够判定备用译码器168的故障。

(第六实施方式)

图10是表示第六实施方式的半导体装置900的结构的图。

如图10所示,该半导体装置900具备存储模块47、ecc编码器21、备用控制电路35、备用控制电路36、ecc译码器22、备用译码器168、备用译码器169、中断控制部201及cpu202。

存储模块47、ecc编码器21、中断控制部201及cpu202与第五实施方式相同,因此省略重复说明。

在写入数据时,备用译码器168对正常块153内的多个正常存储单元列中的不良存储单元列的地址信号c_add进行译码,并输出地址译码信号r1。

备用控制电路35进行如下控制:在写入数据时,根据地址译码信号r1,使ecc编码器21的输出不会写入到正常块153内的不良存储单元列而是写入到备用块154内的备用存储单元列。

在读取数据时,备用译码器169对正常块153内的多个正常存储单元列中的不良存储单元列的地址信号c_add进行译码,并输出地址译码信号r2。

备用控制电路36进行如下控制:在读取数据时,根据地址译码信号r2,不从正常块153内的不良存储单元列而是从备用块154内的备用存储单元列读取数据。

ecc译码器22对来自被备用控制电路36控制读取的存储模块47的输出进行错误检测与纠正。ecc译码器22若检测到存储模块47的输出的错误则输出故障通知信号error。在备用译码器168及备用译码器169中的至少一个处于故障状态导致地址译码信号r1与地址译码信号r2不一致时,ecc译码器22检测出存储模块47的输出错误。中断控制部201若接收到故障通知信号error则向cpu202中断通知检测到故障的情况。

(第七实施方式)

图11是表示第七实施方式的半导体装置1000的结构的图。

如图11所示,该半导体装置1000具备存储模块161、ecc编码器221、ecc译码器222、比较器166、中断控制部201及cpu202。

中断控制部201及cpu202与参考例1相同,因此省略重复说明。

存储模块161具备:具有多个sram单元的存储阵列162、控制部ctrl等sram逻辑电路。

存储阵列162包括:存储数据信号data[0:m]的数据区域163、存储地址信号add[0:n]的地址区域164、存储基于数据信号data[0:m]和地址信号add[0:n]生成的检验位的检验位区域165。数据区域163由(m+1)个列构成。地址区域164由(n+1)个列构成,检验位区域165由s个列构成。

图12是表示存储于第七实施方式的存储阵列162中的数据的结构的图。

在存储阵列162的一个行里存储有由(m+1)位的数据信号data[0:m]、(n+1)位的地址信号add[0:n]及s位的检验位构成的位串。

由图3所示的暂存电路650及地址译码器adrctl构成的控制部ctrl在向存储阵列162写入数据时对写入用地址信号add[0:n]进行译码并输出第一地址译码信号wr。

在写入数据时,ecc编码器221对由数据信号data[0:m]及写入用地址信号add[0:n]构成的位串进行错误检测与纠正编码,并生成s位的检验位。

从ecc编码器221输出的由数据信号data[0:m]、写入用地址信号add[0:m]及检验位构成的位串写入存储阵列162内的被第一地址译码信号wr指定的行的位置。

控制部ctrl在从存储阵列162读取数据时对读取用地址信号add[0:n]进行译码并输出第二地址译码信号rr。

在读取数据时,存储阵列162从被第二地址译码信号rr指定的行的位置输出由数据data’[0:m]、地址add’[0:n]及检验位构成的位串。

ecc译码器222对从存储模块161输出的位串进行错误检测与纠正编码,从而输出数据data”[0:m]及地址add”[0:n]。

比较器166对从ecc译码器222输出的地址add”[0:n]和读取用地址add[0:n]进行比较。比较器166在比较结果两者不一致时输出故障通知信号error。

在控制部ctrl未出现故障时,从ecc译码器222输出的地址add”[0:n]与读取用地址add[0:n]一致。若控制部ctrl出现故障,则有时会出现对写入用地址进行译码而得出的第一地址译码信号wr和对与写入用地址相同的读取用地址进行译码而得出的第二地址译码信号rr不同的情况。此时,会导致从ecc译码器222输出的地址add”[0:n]和读取用地址add[0:n]不一致。通过检测该不一致,能够检测出控制部ctrl的故障。

(第八实施方式)

图13是表示第八实施方式的半导体装置1100的结构的图。

如图13所示,该半导体装置1100具备存储模块171、ecc编码器321、ecc译码器322、中断控制部201及cpu202。

中断控制部201及cpu202与参考例1相同,因此省略重复说明。

存储模块171具备:具有多个sram单元的存储阵列172、控制部ctrl等sram逻辑电路。

存储阵列172包括:存储数据信号data[0:m]的数据区域173、存储基于数据信号data[0:m]和地址信号add[0:n]生成的检验位的检验位区域174。数据区域173由(m+1)个列构成。检验位区域174由s个列构成。

图14是表示存储于第八实施方式的存储阵列172中的数据的结构的图。

在存储阵列172的一个行里存储有由(m+1)位的数据信号data[0:m]及s位的检验位构成的位串。

由图3所示的暂存电路650及地址译码器adrctl构成的控制部ctrl在向存储阵列172写入数据时对写入用地址add[0:n]进行译码并输出第一地址译码信号wr。

在写入数据时,ecc编码器321对由数据信号data[0:m]及写入用地址信号add[0:n]构成的位串进行错误检测与纠正编码,并生成s位的检验位。

从ecc编码器321输出的由数据信号data[0:m]及检验位构成的位串写入存储阵列172内的被第一地址译码信号wr指定的行的位置。

控制部ctrl在从存储阵列172读取数据时对读取用地址add[0:n]进行译码并输出第二地址译码信号rr。

在读取数据时,存储阵列172从被第二地址译码信号rr指定的行的位置输出由数据data’[0:m]及检验位构成的位串。

ecc译码器322对从存储模块171输出的位串附加读取用的地址add[0:n],从而生成由数据data’[0:m]、地址add[0:n]及检验位构成的位串。ecc译码器322对生成的位串进行错误检测与纠正编码,并输出数据data”[0:m]及地址add”[0:n]。ecc译码器322若检测到错误则向中断控制部201输出故障通知信号error。

在控制部ctrl未出现故障时,ecc译码器322检测不到错误。

若控制部ctrl出现故障,则有时会出现对写入用地址进行译码而得到的第一地址译码信号wr和对与写入用地址相同的读取用地址进行译码而得到的第二地址译码信号rr不同的情况。此时,会导致输入于ecc译码器322的从存储模块171读取的检验位与从输入于ecc译码器322的读取用地址add[0:n]生成的检验位不一致。因此,ecc译码器322能够根据检验位检测出错误。

(参考例2)

图15是表示参考例2的半导体装置1200的结构的图。在图15中,省略了对数据信号data[0:m]进行处理的电路及配线。

如图15所示,该半导体装置1200具备带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、error选择器283、ff77、ff78、ff79、比较器184、中断控制部201及cpu202。

地址分割器61、选择译码器62、中断控制部201及cpu202与参考例1相同,因此省略重复说明。

与第二实施方式的第一存储模块45相同,带有地址输出功能的第一存储模块181具备:具有多个sram存储单元的存储阵列、sram逻辑电路。

在带有地址输出功能的第一存储模块181及带有地址输出功能的第二存储模块182分别输入有从地址分割器61输出的n位的第二地址位add[0:n-1]。

图16是表示带有地址输出功能的第一存储模块181的结构的图。带有地址输出功能的第二存储模块182的结构也与此相同。

如图16所示,带有地址输出功能的第一存储模块181与图3所示的第一存储模块41的不同点在于,带有地址输出功能的第一存储模块181还具有用于输出内部地址位aq1[0]~aq1[n-1](以下,有时统称为aq1)的内部地址输出端子aq。带有地址输出功能的第一存储模块181从内部地址输出端子aq输出从输入的n位的第二地址位add[0:n-1]生成的内部地址位aq1[0]~aq1[n-1]。

带有地址输出功能的第二存储模块182从内部地址输出端子aq输出从输入的n位的第二地址位add[0:n-1]生成的内部地址位aq2[0]~aq2[n-1](以下,有时统称为aq2)。

在带有地址输出功能的第一存储模块181中,在写入数据时,若第一选择信号cen1为“1”,则数据信号data[0:m]写入由第二地址位add[0:n-1]指定的部位,若第一选择信号cen1为“0”,则不写入数据信号data[0:m]。在带有地址输出功能的第一存储模块181中,在读取数据时,若第一选择信号cen1为“1”,则从由第二地址位add[0:n-1]指定的部位输出存储的数据信号q1。在带有地址输出功能的第一存储模块181中,在读取数据时,若第一选择信号cen1为“0”,则不输出存储的数据信号q1。在带有地址输出功能的第一存储模块181中,不管第一选择信号cen1的电平如何,均输出内部地址位aq1[0]~aq1[n-1]。

在带有地址输出功能的第二存储模块182中,在写入数据时,若第二选择信号cen2为“1”,则数据信号data[0:m]写入由第二地址位add[0:n-1]指定的部位,若第二选择信号cen2为“0”,则不写入数据信号data[0:m]。在带有地址输出功能的第二存储模块182中,在读取数据时,若第二选择信号cen2为“1”,则从由第二地址位add[0:n-1]指定的部位输出存储的数据信号q2。在带有地址输出功能的第二存储模块182中,在读取数据时,若第二选择信号cen2为“0”,则不输出存储的数据信号q2。在带有地址输出功能的第二存储模块182中,不管第二选择信号cen2的电平如何,均输出内部地址位aq2[0]~aq2[n-1]。

再次回到图15,error选择器283根据第一选择信号cen1的电平及第二选择信号cen2的电平选择从第一存储模块181输出的内部地址位aq1和从第二存储模块182输出的内部地址位aq2中的任意一个,并将其输出给比较器184。

error选择器283在第一选择信号cen1的电平为激活电平“1”且第二选择信号cen2的电平为非激活电平“0”时选择从第一存储模块181输出的内部地址位aq1,并将其输出给比较器184。error选择器283在第一选择信号cen1的电平为非激活电平“0”且第二选择信号cen2的电平为激活电平“1”时选择从第二存储模块182输出的内部地址位aq2,并将其输出给比较器184。error选择器283在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“0”时输出从第一存储模块181输出的内部地址位aq1及从第二存储模块182输出的内部地址位aq2中的任意一个。error选择器283在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“1”时输出从第一存储模块181输出的内部地址位aq1及从第二存储模块182输出的内部地址位aq2中的任意一个。

比较器184对将从error选择器283输出的内部地址位aq1或aq2与从地址分割器61输出的第一地址位add[n]进行合成之后的位和从cpu202输出的地址信号a[0:n]进行比较。比较器184在比较结果两者不一致时输出故障通知信号error。

ff77设置在从选择译码器62到error选择器283的第一选择信号cen1的传送路径上。ff78设置在从选择译码器62到error选择器283的第二选择信号cen2的传送路径上。ff79设置在从地址分割器61到比较器184的输入端的第一地址位add[n]的传送路径上。

供给到ff77、ff78、ff79、带有地址输出功能的第一存储模块181及带有地址输出功能的第二存储模块182的时钟脉冲相同。

在参考例2的半导体装置1200中存在如下问题:无法检测对地址信号add[0:n]进行处理的选择译码器62及其相关配线的故障。

这是因为,即使在第一选择信号cen1的电平与第二选择信号cen2的电平中的至少一方出现错误的情况下,第一存储模块181的输出aq1及第二存储模块182的输出aq2中的任意一个也会经由error选择器283输入到比较器184。

(第九实施方式)

图17是表示第九实施方式的半导体装置1300的结构的图。

如图17所示,该半导体装置1300具备带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、error选择器283、ff77、ff78、ff79、编码器191、比较器194、中断控制部201及cpu202。

带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、error选择器283、ff77、ff78、ff79、中断控制部201及cpu202与参考例2相同,因此省略重复说明。

编码器191对从选择译码器62输出的第一选择信号cen1及第二选择信号cen2进行编码,并输出第一地址位add’[n]。该编码为选择许可信号cen=1时的选择译码器62的译码(转换)相反的转换。

编码器191在第一选择信号cen1为“1”且第二选择信号cen2为“0”时输出第一地址位add’[n](=“1”)。编码器191在第一选择信号cen1为“0”且第二选择信号cen2为“1”时输出第一地址位add’[n](=“0”)。

比较器194对将从error选择器283输出的内部地址位aq1或aq2和从编码器191输出到第一地址位add’[n]合成之后的位与从cpu202输出的地址信号a[0:n]进行比较。比较器194在比较结果两者不一致时输出故障通知信号error。

在由于选择译码器62的故障导致从选择译码器62输出的第一选择信号cen1的电平及第二选择信号cen2的电平均反转的情况下,从编码器191输出的第一地址位add’[n]会与地址位add[n]不一致。通过检测出该不一致,能够判定选择译码器62出现故障。

(第十实施方式)

图18是表示第十实施方式的半导体装置1400的结构的图。

如图18所示,该半导体装置1400具备带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、error选择器283。半导体装置1400还具备ff77、ff78、ff79、cgc(clockgatingcircuit/时钟门控电路)192、cgc193、比较器184、中断控制部201及cpu202。

带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、error选择器283、ff77、ff78、ff79、比较器184、中断控制部201及cpu202与参考例2相同,因此省略重复说明。

cgc192在第一选择信号cen1为激活电平“1”时向第一存储模块181输出时钟脉冲clk。cgc193在第二选择信号cen2为激活电平“1”时向第二存储模块182输出时钟脉冲clk。

第一存储模块181接收第二地址位add[0:n-1]并在时钟脉冲clk边沿的时间读取输入过来的第二地址位add[0:n-1]的最新值。第一存储模块181根据第二地址位add[0:n-1]的最新值执行向存储阵列mary的数据写入或者从存储阵列mary的数据读取,并且输出第二地址位add[0:n-1]的最新值的内部地址位aq1。因此,在第一选择信号cen1为“1”时,从第一存储模块181输出第二地址位add[0:n-1]的最新值的内部地址位。在第一选择信号cen1为“0”时,从第一存储模块181输出第二地址位add[0:n-1]的以前的值的内部地址位。

第二存储模块182接收第二地址位add[0:n-1]并在时钟脉冲clk边沿的时间读取输入过来的第二地址位add[0:n-1]的最新值。第二存储模块182根据第二地址位add[0:n-1]的最新值执行向存储阵列mary的数据写入或者从存储阵列mary的数据读取,并且输出第二地址位add[0:n-1]的最新值的内部地址位aq2。因此,在第二选择信号cen2为“1”时,从第二存储模块182输出第二地址位add[0:n-1]的最新值的内部地址位。在第二选择信号cen2为“0”时,从第二存储模块182输出第二地址位add[0:n-1]的以前的值的内部地址位。

比较器184对将从error选择器283输出的内部地址位aq1或aq2与最高有效位add[n]进行合成之后的位和从cpu202输出的地址信号a[0:n]进行比较。比较器184在比较结果两者不一致时输出故障通知信号error。

在由于选择译码器62的故障导致选择许可信号cen的电平成为了“1”、第一选择信号cen1的电平成为了“0”且第二选择信号cen2的电平成为了“0”时,进行如下动作。第一存储模块181的输出aq1成为第二地址位的以前的值(上一个周期的值)的内部地址位,第二存储模块182的输出aq2也成为第二地址位的以前的值的内部地址位。通过error选择器283,选择第一存储模块181的输出aq1及第二存储模块182的输出aq2中的任意一方并将其输出给比较器184。由此,在比较器184输入有第二地址位add[0:n-1]的以前的值的内部地址位,从而能够检测出故障。

(第十一实施方式)

图19是表示第十一实施方式的半导体装置1500的结构的图。

该半导体装置1500具备带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、ecc编码器21、error选择器283。半导体装置1500还具备选择器141、选择器142、ecc译码器122、故障判定部121、比较器184、ff73、ff74、ff75、ff76、ff77、ff78、ff79、中断控制部301及cpu302。

带有地址输出功能的第一存储模块181、带有地址输出功能的第二存储模块182、地址分割器61、选择译码器62、ecc编码器21、error选择器283与上述实施方式相同,因此省略重复说明。并且选择器141、选择器142、ecc译码器122、故障判定部121、比较器184、ff73、ff74、ff75、ff76、ff77、ff78、ff79与上述实施方式相同,因此省略重复说明。

故障判定部121在判定选择译码器62处于第一故障状态时向中断控制部301输出第一故障通知信号error1。第一故障状态是指:在将选择许可信号cen为“1”时第一选择信号cen1及第二选择信号cen2中的一方为“1”而另一方为“0”的状态设为正常状态的情况下,第一选择信号cen1及第二选择信号cen2均成为“0”或“1”的状态就是第一故障状态。并且,第一故障状态是指:在将选择许可信号cen为“1”时第一选择信号cen1及第二选择信号cen2均为“0”的状态设为正常状态的情况下,第一选择信号cen1及第二选择信号cen2中的至少一方成为“1”的状态就是第一故障状态。

比较器184在由于选择译码器62处于第二故障状态而导致输入过来的两个地址不一致时输出第二故障通知信号error2。第二故障状态是指:第一选择信号cen1的电平反转且第二选择信号cen2的电平也反转的故障。

ecc译码器122在由于ff73、ff74、ff75、ff76中的任意一个处于故障状态而检测出错误的情况下,向中断控制部301输出第三故障通知信号error3。

中断控制部301向cpu302传递第一故障通知信号error1、第二故障通知信号error2及第三故障通知信号error3。第一故障通知信号error1的优先级别最高,第二故障通知信号error2的优先级别其次,第三故障通知信号error3优先级别最低。

图20是表示有故障通知时的cpu302的处理顺序的流程图。

如图20所示,在步骤s501中,若cpu302接收到第一故障通知信号error1,则进入步骤s510,若cpu302未接收到第一故障通知信号error1,则进入步骤s502。

在步骤s502中,若cpu302接收到第二故障通知信号error2,则进入步骤s507,若cpu302未接收到第二故障通知信号error2,则进入步骤s503。

在步骤s503中,若cpu302接收到第三故障通知信号error3,则进入步骤s505,若cpu302未接收到第三故障通知信号error3,则进入步骤s504。

在步骤s505中,若cpu302接收到的第三故障通知信号error3为第二次,则进入步骤s509,若cpu302接收到的第三故障通知信号error3为第一次,则进入步骤s506。

在步骤s507中,cpu302进行测试。

在步骤s508中,若测试结果为良好,则进入步骤s503,若测试结果为不良,则进入步骤s509。

在步骤s504中,cpu302进行执行通常处理的控制。

在步骤s506中,cpu302进行执行重复进行上一次动作的重复处理的控制。

在步骤s509中,cpu302进行执行代替处理的控制。

在步骤s510中,cpu302进行执行危险回避处理的控制。

如上,在本实施方式中,在有可能出现多种故障时,可以根据所产生的故障的优先级别进行处理。

(第十二实施方式)

图21是表示第十二实施方式的半导体装置1600的结构的图。

如图21所示,该半导体装置1600具备带有地址输出功能的第一存储模块281、带有地址输出功能的第二存储模块282、地址分割器61、选择译码器62、error选择器283、比较器284、ff77、ff78、ff79、中断控制部401及cpu202。

地址分割器61、选择译码器62、ff77、ff78、ff79及cpu202与参考例2相同,因此省略重复说明。

与第二实施方式的第一存储模块45相同,带有地址输出功能的第一存储模块281及带有地址输出功能的第二存储模块282具备:具有多个sram存储单元的存储阵列、sram逻辑电路。

在带有地址输出功能的第一存储模块281及带有地址输出功能的第二存储模块282均输入有从地址分割器61输出的n位的第二地址位add[0:n-1](第一地址信号)及直接从cpu202传送过来的n位的地址位a[0:n-1](第二地址信号)。地址位a[0:n-1]作为用于调查内部地址位aq1[0:n-1]是否正常的期待值信号而发挥功能。

带有地址输出功能的第一存储模块281接收第一选择信号cen1。带有地址输出功能的第一存储模块281在第一选择信号cen1的电平为激活电平“1”时,能够读取或写入数据。带有地址输出功能的第一存储模块281在第一选择信号cen1的电平为非激活电平“0”时,无法读取或写入数据。

带有地址输出功能的第二存储模块282接收第二选择信号cen2。带有地址输出功能的第二存储模块282在第二选择信号cen2的电平为激活电平“1”时,能够读取或写入数据。带有地址输出功能的第二存储模块282在第二选择信号cen2的电平为非激活电平“0”时,无法读取或写入数据。

图22是表示带有地址输出功能的第一存储模块281的结构的图。带有地址输出功能的第二存储模块282的结构也与此相同。

如图22所示,带有地址输出功能的第一存储模块281与图3所示的第一存储模块41的不同点在于,带有地址输出功能的第一存储模块281具备比较器285、故障通知输出端子ea、地址输入端子adb、时钟脉冲供给源888及选择端子cn。

地址输入端子adb从cpu202直接接收(n+1)位的地址信号a[0:n]中n位的地址位a[0:n-1](低位第一个位)。

选择端子cn接收第一选择信号cen1并将其输出给时钟脉冲供给源888。时钟脉冲供给源888在第一选择信号cen1的电平为激活电平“1”时向带有地址输出功能的第一存储模块281供给时钟脉冲clk。时钟脉冲供给源888在第一选择信号cen1的电平为非激活电平“0”时不向带有地址输出功能的第一存储模块281供给时钟脉冲clk。

比较器285对从地址输入端子adb传送过来的n位的地址位a[0:n-1]与从暂存电路650输出的n位的内部地址位aq1[0:n-1]进行比较。比较器285在比较结果两者不一致时输出故障通知信号error1。

故障通知输出端子ea输出故障通知信号error1。

同样地,带有地址输出功能的第二存储模块282输出故障通知信号error2。

再次回到图21,error选择器283根据第一选择信号cen1的电平及第二选择信号cen2的电平选择从第一存储模块281输出的故障通知信号error1和从第二存储模块282输出的故障通知信号error2中的任意一个,并将选择的故障通知信号作为故障通知信号error3输出给中断控制部401。

error选择器283在第一选择信号cen1的电平为激活电平“1”且第二选择信号cen2的电平为非激活电平“0”时选择从第一存储模块281输出的故障通知信号error1。error选择器283在第一选择信号cen1的电平为非激活电平“0”且第二选择信号cen2的电平为激活电平“1”时选择从第二存储模块282输出的故障通知信号error2。error选择器283在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“0”时选择从第一存储模块281输出的故障通知信号error1及从第二存储模块282输出的故障通知信号error2中的任意一个。error选择器283在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“1”时选择从第一存储模块281输出的故障通知信号error1及从第二存储模块282输出的故障通知信号error2中的任意一个。

比较器284对从地址分割器61输出的第一地址位add[n]与直接从cpu202传送过来的第一地址位a[n]进行比较。比较器284在比较结果两者不一致时向中断控制部401输出故障通知信号error4。

中断控制部401若接收到故障通知信号error3或故障通知信号error4则向cpu202中断通知检测到故障的情况。

根据本实施方式,在存储模块内设置比较器,并在存储模块内对地址进行比较,从而判定故障。由此,与以往的从存储模块输出n位的信号的情况相比,在本实施方式中,只需从存储模块输出1位的信号。在此,n为地址信号的位数。

图23是表示带有地址输出功能的第一存储模块281的布局的图。带有地址输出功能的第二存储模块282的布局也与此相同。

存储模块281的输出输入端子集中配置在控制部ctrl的附近。若与输出输入端子连接的信号线的数量较多,则电流容易集中在控制部ctrl附近。在本实施方式中,通过减少输出信号的位数,能够抑制大量电流集中流过特定的部位。

(第十三实施方式)

图24是表示第十三实施方式的半导体装置1700的结构的图。

如图24所示,该半导体装置1700具备带有地址输出功能的第一存储模块381、带有地址输出功能的第二存储模块382、地址分割器61、选择译码器62、error选择器283、比较器284、ff77、ff78、ff79、中断控制部401及cpu202。

地址分割器61、选择译码器62、ff77、ff78、ff79及cpu202与参考例2相同,因此省略重复说明。error选择器283、比较器284、中断控制部401与第十二实施方式相同,因此省略重复说明。

与第二实施方式的第一存储模块45相同,带有地址输出功能的第一存储模块381及带有地址输出功能的第二存储模块382具备:具有多个sram存储单元的存储阵列、sram逻辑电路。

在带有地址输出功能的第一存储模块381及带有地址输出功能的第二存储模块382均输入有从地址分割器61输出的n位的第二地址位add[0:n-1]及测试地址。

带有地址输出功能的第一存储模块381接收第一选择信号cen1。带有地址输出功能的第一存储模块381在第一选择信号cen1的电平为激活电平“1”时,能够读取或写入数据。带有地址输出功能的第一存储模块381在第一选择信号cen1的电平为非激活电平“0”时,无法读取或写入数据。

带有地址输出功能的第二存储模块382接收第二选择信号cen2。带有地址输出功能的第二存储模块382在第二选择信号cen2的电平为激活电平“1”时,能够读取或写入数据。带有地址输出功能的第二存储模块382在第二选择信号cen2的电平为非激活电平“0”时,无法读取或写入数据。

图25是表示带有地址输出功能的第一存储模块381的结构的图。带有地址输出功能的第二存储模块382的结构也与此相同。

如图25所示,带有地址输出功能的第一存储模块381与图3所示的第一存储模块41的不同点在于,带有地址输出功能的第一存储模块381具备比较器385、故障通知输出端子ea、测试地址输入端子ta、选择器386、时钟脉冲供给源888及选择端子cn。

在测试地址输入端子ta例如输入有直接从cpu202传送过来的n位的测试地址信号tadd[0:n-1]。例如,测试地址信号tadd[0:n-1]可以是所有位为0的信号,或者也可以是所有位为1的信号。

另外,输入到测试地址输入端子ta的测试地址信号并不只限于n位的测试地址信号tadd[0:n-1]。例如,也可以是1位的测试地址信号。存储模块381在接收到1位的测试地址信号的情况下生成n位的测试地址信号,并将其供给到选择器386。

选择端子cn接收第一选择信号cen1并将其输出给时钟脉冲供给源888。时钟脉冲供给源888在第一选择信号cen1的电平为激活电平“1”时向带有地址输出功能的第一存储模块381供给时钟脉冲clk。时钟脉冲供给源888在第一选择信号cen1的电平为非激活电平“0”时不向带有地址输出功能的第一存储模块381供给时钟脉冲clk。

选择器386根据未图示的控制信号选择从地址输入端子ada传送过来的n位的第二地址位add[0:n-1]及从测试地址输入端子ta传送过来的n位的测试地址信号tadd[0:n-1]中的任意一个,并将选择的一方作为地址位b[0:n-1]输出给比较器385。在选择了第二地址位add[0:n-1]时,第二地址位add[0:n-1]作为用于调查内部地址位aq1[0:n-1]是否正常的期待值信号而发挥功能。在选择了测试地址信号tadd[0:n-1]时,测试地址信号tadd[0:n-1]作为用于调查比较器385是否正常的信号而发挥功能。

比较器385对从选择器386输出的n位的地址位b[0:n-1]与从暂存电路650输出的n位的内部地址位aq1[0:n-1]进行比较。比较器385在比较结果两者不一致时输出故障通知信号error1。

故障通知输出端子ea输出故障通知信号error1。

同样地,带有地址输出功能的第二存储模块382输出故障通知信号error2。

在本实施方式中,通过将测试地址设为小于n位,与第十二实施方式相比,能够削减存储模块的输入端子的数量。由此,能够削减在存储模块周边的配线区域,能够将空余区域开放为电源强化区域。因此,能够进一步避免电流集中。而且,在本实施方式中,还能够检测存储模块内的比较器的故障。

另外,在第十二实施方式的存储模块中也可以设置选择器,以使其选择输入测试地址的测试地址输入端子ta、测试地址tadd[0:n-1]及地址位a[0:n-1]并将其供给到比较器。

(第十四实施方式)

图26是表示第十四实施方式的半导体装置1800的结构的图。

如图26所示,该半导体装置1800具备带有地址输出功能的第一存储模块481、带有地址输出功能的第二存储模块482、地址分割器61、选择译码器62、error/aq选择器483、比较器284、ff77、ff78、ff79、中断控制部401、错误地址保持电路484及cpu202。

地址分割器61、选择译码器62、ff77、ff78、ff79及cpu202与参考例2相同,因此省略重复说明。比较器284及中断控制部401与第十二实施方式相同,因此省略重复说明。

与第二实施方式的第一存储模块45相同,带有地址输出功能的第一存储模块481及带有地址输出功能的第二存储模块482具备:具有多个sram存储单元的存储阵列、sram逻辑电路。

在带有地址输出功能的第一存储模块481及带有地址输出功能的第二存储模块482均输入有从地址分割器61输出的n位的第二地址位add[0:n-1]及直接从cpu202传送过来的n位的地址位a[0:n-1]。

带有地址输出功能的第一存储模块481接收第一选择信号cen1。带有地址输出功能的第一存储模块481在第一选择信号cen1的电平为激活电平“1”时,能够读取或写入数据。带有地址输出功能的第一存储模块481在第一选择信号cen1的电平为非激活电平“0”时,无法读取或写入数据。

带有地址输出功能的第二存储模块482接收第二选择信号cen2。带有地址输出功能的第二存储模块482在第二选择信号cen2的电平为激活电平“1”时,能够读取或写入数据。带有地址输出功能的第二存储模块482在第二选择信号cen2的电平为非激活电平“0”时,无法读取或写入数据。

图27是表示带有地址输出功能的第一存储模块481的结构的图。带有地址输出功能的第二存储模块482的结构也与此相同。

如图27所示,带有地址输出功能的第一存储模块481与图22所示的带有地址输出功能的第一存储模块281的不同点在于,带有地址输出功能的第一存储模块481具备选择器584。

选择器584选择从暂存电路650输出的n位的内部地址位aq1[0:n-1]及从数据输出输入部io输出的数据信号d1[0:m]中的一个,并将选择的信号作为存储模块输出数据adta1输出给数据输出输入端子da。选择器584在未接收到故障通知信号error1时选择数据信号d1[0:m]。选择器584在接收到故障通知信号error1时选择内部地址位aq1[0:n-1]。

带有地址输出功能的第二存储模块482输出故障通知信号error2及存储模块输出数据adta2。

error/aq选择器483根据第一选择信号cen1的电平及第二选择信号cen2的电平选择从第一存储模块481输出的故障通知信号error1及从第二存储模块482输出的故障通知信号error2中的任意一个。error/aq选择器483将选择的故障通知信号作为故障通知信号error3输出给中断控制部401及错误地址保持电路484。

error/aq选择器483根据第一选择信号cen1的电平及第二选择信号cen2的电平选择从第一存储模块481输出的存储模块输出数据adta1及从第二存储模块482输出的存储模块输出数据adta2中的任意一个。error/aq选择器483将选择的存储模块输出数据作为存储模块输出数据adta3输出给错误地址保持电路484。

error/aq选择器483在第一选择信号cen1的电平为激活电平“1”且第二选择信号cen2的电平为非激活电平“0”时选择从第一存储模块481输出的故障通知信号error1及存储模块输出数据adta1。

error/aq选择器483在第一选择信号cen1的电平为非激活电平“0”且第二选择信号cen2的电平为激活电平“1”时选择从第二存储模块482输出的故障通知信号error2及存储模块输出数据adta2。

error/aq选择器483在第一选择信号cen1的电平为“0”且第二选择信号cen2的电平为“0”时选择故障通知信号error1及故障通知信号error2中的任意一个,并且选择存储模块输出数据adta1及存储模块输出数据adta2中的任意一个。

error/aq选择器483在第一选择信号cen1的电平为“1”且第二选择信号cen2的电平为“1”时选择故障通知信号error1及故障通知信号error2中的任意一个,并且选择存储模块输出数据adta1及存储模块输出数据adta2中的任意一个。

错误地址保持电路484接收存储模块输出数据adta3。错误地址保持电路484在接收到故障通知信号error3时保持存储模块输出数据adta3。这是因为,在接收到故障通知信号error3的情况下,存储模块输出数据adta3表示内部地址位aq1[0:n-1]或aq2[0:n-1]。

而且,错误地址保持电路484接收第一地址位add[n]。错误地址保持电路484在接收到故障通知信号error4时保持第一地址位add[n]。

根据本实施方式,在有故障通知信号输出的情况下,错误地址保持电路保持与故障相关的地址。由此,在通知有故障时,能够实施存储器bist(built-inselftest/内建自测试),从而不需要进行特定与故障相关的地址的操作。

(变形例)

本发明不只限于上述实施方式,例如也可以包括下述变形例。

(1)存储模块的数量

在第二实施方式至第十一实施方式中,对半导体装置具备一个或两个存储模块的情况进行了说明,但是,本发明不只限于此。例如,半导体装置也可以具备2n个存储模块。

在具备2n个存储模块的情况下,地址分割器61可以将地址信号的从msb侧的高位n位作为用于选择存储模块的第一地址位,并将其它位作为第二地址位。选择译码器则生成供给2n个存储模块的选择信号cen1~cen2n。图4的故障判定部121及图7的故障判定部131根据选择许可信号cen及选择信号cen1~cen2n判定选择译码器62的故障。图8的选择器141根据选择信号cen1~cen2n选择从2n个存储模块输出的2n个的第一组的多个位中的任意一个。图8的选择器142根据选择信号cen1~cen2n选择从2n个存储模块输出的2n个的第二组的多个位中的任意一个。图17及图18的eeror选择器283根据选择信号cen1~cen2n选择并输出从2n个存储模块输出的2n个的内部地址位中的任意一个。

(2)第七实施方式的ecc

在第七实施方式中,还可以省略ecc编码器221、ecc译码器222而在存储阵列162中只存储数据和地址。

(3)存储模块

在第九实施方式中说明的存储模块也可以设为在选择信号被激活时进行动作。例如,在选择信号未被激活时,可以使存储模块内的时钟脉冲源停止向存储模块内的各个构成要件供给时钟脉冲。

(附记)

另外,根据上述实施方式,本发明还可以包括下述发明。

(发明a)

一种半导体装置,其具备:

存储阵列,其具有多个正常存储单元及备用存储单元;

备用译码器,其对所述多个正常存储单元中的不良存储单元的地址信号进行译码,并输出地址译码信号;

第一备用控制电路,其进行如下控制:根据所述地址译码信号,不向所述不良存储单元而向所述备用存储单元写入数据;

第二备用控制电路,其进行如下控制:根据所述地址译码信号,不从所述不良存储单元而从所述备用存储单元读取数据;

编码器,其对所述地址译码信号进行编码,并输出地址信号;

比较器,其对输入于所述备用译码器的所述地址信号与从所述编码器输出的所述地址信号进行比较。

(发明b)

一种半导体装置,其具备:

存储阵列,其具有多个正常存储单元及备用存储单元;

第一备用译码器,在写入数据时,对所述多个正常存储单元中的不良存储单元的地址信号进行译码,并输出第一地址译码信号;

第二备用译码器,在读取数据时,对所述多个正规存储单元中的不良存储单元的地址信号进行译码,并输出第二地址译码信号;

ecc编码器,其对输入于所述存储阵列的数据进行错误检测与纠正编码;

第一备用控制电路,其进行如下控制:在写入数据时,根据所述第一地址译码信号,不向所述不良存储单元而向所述备用存储单元写入ecc编码器的输出;

第二备用控制电路,其进行如下控制:在读取数据时,根据所述第二地址译码信号,不从所述不良存储单元而从所述备用存储单元读取数据;

ecc译码器,其对从所述存储阵列输出的数据进行错误检测与纠正。

(发明c)

一种半导体装置,其具备:

存储阵列,其存储由数据、地址及检验位构成的位串;

地址译码器,其在向所述存储阵列写入数据时,对写入用的地址进行译码并输出第一译码信号,并且在从所述存储阵列读取数据时,对读取用的地址进行译码并输出第二译码信号;

ecc编码器,在写入数据时,对由数据及所述写入用的地址构成的位串进行错误检测与纠正编码,从而生成检验位,

由所述数据、所述写入用的地址及所述检验位构成的位串写入所述存储阵列内的由所述第一译码信号指定的位置,

在读取数据时,所述存储阵列从由所述第二译码信号指定的位置输出由数据、地址及检验位构成的位串,

所述半导体装置还具备:

ecc译码器,其对从所述存储阵列输出的位串进行错误检测与纠正;

比较器,其对从所述ecc译码器输出的地址与所述读取用的地址进行比较。

(发明d)

一种半导体装置,其具备:

存储阵列,其存储由数据及检验位构成的位串;

地址译码器,其在向所述存储阵列写入数据时,对写入用的地址进行译码并输出第一译码信号,并且在从所述存储阵列读取数据时,对读取用的地址进行译码并输出第二译码信号;

ecc编码器,在写入数据时,对由数据及所述写入用的地址构成的位串进行错误检测与纠正编码,从而生成检验位,

由所述数据及所述检验位构成的位串写入所述存储阵列内的由所述第一译码信号指定的位置,

在读取数据时,所述存储阵列从由所述第二译码信号指定的位置输出由数据及检验位构成的位串,

所述半导体装置还具备ecc译码器,其对从所述存储阵列输出的位串附加所述读取用的地址之后进行错误检测与纠正。

(发明e)

一种半导体装置,其具备多个存储模块,地址信号表示所述多个存储模块中的数据存储位置,表示该地址信号的多个位包括第一地址位及第二地址位,所述多个存储模块均接收所述第二地址位,并输出从所述第二地址位生成的内部地址位,

所述半导体装置还具备:

选择译码器,其对所述第一地址位进行译码,控制多个选择信号的电平;

故障判定部,其根据多个选择信号的电平来判定所述选择译码器是否处于故障状态,并在故障状态时输出第一故障通知信号;

编码器,其对所述多个选择信号进行编码,并输出地址位;

第一选择器,其根据所述多个选择信号的电平,选择从所述多个存储模块输出的内部地址位中的任意一个;

比较器,其对将从所述第一选择器输出的内部地址位和从所述编码器输出的地址位合成之后的位串与表示所述地址信号的多个位进行比较,并在两者不一致时输出第二故障通知信号;

ecc编码器,其对写入数据进行错误检测与纠正编码,

所述多个存储模块在对应的选择信号为激活电平时写入所述错误检测与纠正编码后的写入数据,

从所述多个存储模块输出的输出数据的多个位分类为第一组的多个位及第二组的多个位,

所述半导体装置还具备:

第二选择器,其根据所述多个选择信号的电平,选择并输出从所述多个存储模块输出的多个第一组的多个位中的任意一个;

第三选择器,其根据所述多个选择信号的电平,选择并输出从所述多个存储模块输出的多个第二组的多个位中的任意一个;

ecc译码器,其对将所述第二选择器的输出与所述第三选择器的输出合成之后的位串进行错误检测与纠正,并在检测到错误时输出第三故障通知信号;

cpu,其执行与接收到的故障通知信号的种类相对应的处理。

(发明f)

一种半导体装置,其具备多个存储模块,地址信号表示所述多个存储模块中的数据存储位置,表示该地址信号的多个位包括第一地址位及第二地址位,所述多个存储模块均接收所述第二地址位,并输出从所述第二地址位生成的内部地址位,

所述半导体装置还具备:

选择译码器,其对所述第一地址位进行译码,控制多个选择信号的电平;

编码器,其对所述多个选择信号进行编码,并输出地址位;

选择器,其根据所述多个选择信号的电平,选择从所述多个存储模块输出的所述内部地址位中的任意一个;

比较器,其对将从所述选择器输出的所述内部地址位和从所述编码器输出的所述地址位合成之后的位串与表示所述地址信号的所述多个位进行比较。

(发明g)

一种半导体装置,其具备多个存储模块,地址信号表示所述多个存储模块中的数据存储位置,表示该地址信号的多个位包括第一地址位及第二地址位,所述多个存储模块均接收所述第二地址位,并输出从所述第二地址位生成的内部地址位,

所述半导体装置还具备:

选择译码器,对所述第一地址位进行译码,控制多个选择信号的电平;

多个时钟脉冲门,其均接收时钟脉冲,并在对应的所述选择信号为激活电平时,向对应的所述存储模块输出所述时钟脉冲,

所述多个存储模块若接收到从对应的所述时钟脉冲门输出的所述时钟脉冲则输出从所述第二地址位的最新值生成的所述内部地址位,

所述半导体装置还具备:

选择器,其根据所述多个选择信号的电平,选择从所述多个存储模块输出的所述内部地址位中的任意一个;

比较器,其对将从所述选择器输出的所述内部地址位和所述第一地址位合成之后的位与所述地址信号进行比较;

多个触发器,其分别设置在对应的所述选择信号供给到所述选择器的路径上,

在所述多个触发器及所述多个存储模块中输入有相同的时钟信号。

以上,对本发明的实施方式进行了说明,但是,上述实施方式只是例示,其并不限定本发明。本发明的权利范围记载于权利要求书中,本发明还包括与技术方案同等的内容及技术方案范围内的所有变更。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1