用于安全数据存储的半导体存储器 【技术领域】
本发明涉及半导体存储器尤其是在这些存储器中所使用的读出放大器,这些读出放大器中具有安全特性。
背景技术
智能卡(也叫做IC卡)是在外表上类似于信用卡的钱包大小的塑料卡,但它装有能比所熟悉的磁条存储明显更多的信息的嵌入的微型芯片。由于增大了数据存储容量,所以智能卡为信息存储和传输提供了不能通过其它技术获得的许多新的可能,从而成为信息处理世界的一个重要部分。
智能卡的轻便性使得人们可在其钱包中携带诸如其全部病史等大量重要的数据。智能卡的其它应用包括它们在金融交易中的使用;例如,在法国和德国的公用付费电话中使用了智能卡。在新加坡,引入智能卡来替换日常购物用的硬币和纸币。
从表面上看,智能卡有无限可能地用途,从而引起对安全地访问存储在这些卡中的信息的关注,尤其是在存储有诸如社会保险号码和敏感的金融信息等私人信息的情况下。如果给典型的智能卡提供正确的密码时,它们将允许访问信息。密码的最常见形式是PIN(个人识别码),通常是经由数字键盘输入的六到八位的数字。理论上,只有输入了正确的PIN时才能访问智能卡,从而如果卡被遗失或偷走,未授权的用户不能访问信息。
国际标准协会(ISO)已产生了ISO7816标准,该标准定义了在智能卡中所使用的电气触点(contact),它将很可能是被智能卡工业所采用的标准。图6示出,ISO7816的智能卡包括对智能卡内形成的IC提供访问的电气触点。C1端子给内部IC提供电能(Vcc)。C3端子是外部所提供的时钟信号(CLK)的输入端。通过C7端子读取和写入数据。因此,ISO7816定义了如何访问信息并存储在卡上。然而,该标准没有提及智能卡的安全性。
包含在智能卡中的微型芯片通常使用E2PROM来存储数据。例如,由Microchip Technology公司所生产的24C0xSC系列芯片包括用于数据存储的1K比特或2K比特的E2PROM阵列。在设计这些非易失性存储器时必须非常小心,以确保不会意外地破坏存储在其中的敏感数据。同样重要的是数据的安全性,即防止对这些数据的未授权的访问,这是24C0xSC芯片没有提及的。
为此目的,智能卡微型芯片的一些集成电路供应者在其设计中结合了安全性逻辑。例如,本发明的受让人Atmel股份有限公司制造了一种智能卡ICAT88SC10x,其特征是对其数据进行安全性代码访问。在输入有效代码的一定次数的尝试失败后,该器件就永远阻止了访问。诸如Siemens股份有限公司所制造的SLE4436M1等其它芯片通过存储公共密钥提供附加的鉴别。然而,已发现,无论这些安全特征如何都可检测到智能卡数据的内容。
图7示出诸如E2PROM或快擦写存储器等存储单元,它由被字选择线选中的存储单元浮栅晶体管10构成。读出放大器20通过由位选择线选通的位读出晶体管12耦合到存储单元,用于读取存储单元。通常,读出放大器20由许多存储单元中的一个来驱动。空(dummy)单元14及其相关电路40用作计及因工艺变化而在存储单元中引起差别的补偿电路。
存储单元10的操作是众所周知的。具体来说,在晶体管10的浮栅中不存储(清除)或存储(不清除)一个电荷分别表示逻辑“0”或逻辑“1”。在浮栅上所存储的电荷提高了栅极的阈值电压,从而在选中该单元(通过确认字选择线)时,晶体管将利用增大的栅极阈值而保持不导通。相反,被清除的单元不存在任何电荷,从而选中该单元将引起晶体管导通。
读出放大器20包括由晶体管31、33和35构成的偏置电路22。电流驱动电路24由晶体管30和反馈电路32、34构成。在DATAOUT出提供读出放大器的输出。
在存储单元10被清除和选中时,存储单元变为导通,这将使节点21接地。结果,晶体管30高度接通(经由晶体管31),而晶体管32通过反馈电路32、34接通。产生通过晶体管30、32、12和10到地的电流路径,于是使节点23接地而导致低的DATAOUT。
在存储单元10不被清除且被选中时,该单元将不导通。反馈电路32、34把节点21保持在足以使晶体管31稍稍接通的电势。这开始接通晶体管30,从而节点23接近Vcc而导致高的DATAOUT。
从以上对图7的说明可看出,在存储单元10处于清除状态时,对存储单元的读取将导致电流流过读出放大器20的晶体管30、32以及晶体管10到地。相反,在存储单元处于不清除状态时,该单元在被选中时不导通,从而没有电流流过晶体管30、32。因此,在读取存储单元期间,读出放大器20的功耗随存储单元10的数据内容而变化。于是,可简单地通过存储阵列进行定时,同时监测从电源引出的电流并把时钟与从电源电流中取得的测量值相关,来确定一和零的格式,它包括存储在存储阵列中的数据。
再参考图6,可看出,智能卡恰恰易于受到对其中所存储数据的安全性的侵害。通过监测和记录提供给Vcc端子(在ISO7816卡的情况下为C1)的电流变化,同时把时钟信号提供给CLK端子C3,可破坏智能卡的安全性。所获得的电源电流波形直接对应于存储在智能卡中的数据,让人可以绕过智能卡中所建立的任何安全措施而“读取”被保护的数据。
需要这样一种存储器件,它可在目前可获得的用于保护智能卡的方法以外提供附加的安全性,从而使这些卡不受未获授权的人的影响。想要这样一种受到保护的存储电路,不会因监测电源电流而被未授权地访问,因而具有高度的安全性。
【发明内容】
依据本发明,一种存储器件包括具有存储单元和用于读出包含在存储单元中的数据的读出放大器。该存储器件还包括耦合到读出放大器的输出的电流补偿(offset)电路(平衡电路)。此补偿电路响应于从存储单元读出的数据而进行操作,从而通过补偿存储电路所消耗的功率的变化来增大或减小其功耗。尤其是,在读出存储在存储单元中的逻辑“1”时,第一电流流过存储电路,在读出存储在存储单元中的逻辑“0”时有第二电路流过。补偿电路与存储电路以相反关系进行操作,即在读出逻辑“1”时引出基本上等于第二电流的电流,并在读出逻辑“0”时引出基本上等于第一电流的电流。这样,存储器件所引出的总的电源电流基本上保持恒定,从而通过监测电源电流也不能确认读出的是“1”还是“0”。
在本发明的另一个实施例中,补偿电路包括用于调节从补偿电路引出的电流的微调电路。这使得可对补偿电路的电流进行微调,以解决因工艺变化而在晶体管元件中所引起的差别问题。
在本发明的再一个实施例中,存储阵列包括以行和列网格排列的多个存储单元。每行存储单元具有相关的字选择线。每列存储单元具有相应的读出放大器。与每个读出放大器相连的是与读出放大器以相反关系操作的补偿电路,从而由存储器件引出的电源电流与读出存储在存储单元中的数据基本上无关。
附图概述
图1是本发明的存储器件的总体方框图。
图2示出依据本发明的特殊存储电路。
图3示出图2所示存储电路的另一个实施例。
图4示出微调电路。
图5示出依据本发明的存储阵列。
图6示出典型的ISO7816智能卡。
图7示出典型的已有技术的存储单元。
本发明的较佳实施方式
参考图1,依据本发明的存储器件包括用于读出存储在存储单元102中的数据的读出放大器100。通过确认位选择线即接通位选择晶体管106a并确认字选择线来使存储单元对读出放大器100选通。空(dummy)单元104经由位选择晶体管106b耦合到读出放大器,以补偿由读出放大器读取的多个存储单元中的工艺变化。存储器件包括平衡电路,该电路由通过位选择晶体管206a耦合到平衡放大器200的平衡单元构成。空单元204还经由位选择晶体管206b耦合到平衡放大器200。位选择晶体管106a、106b、206a和206b由同一位选择线来驱动。读出放大器100的输出被耦合到平衡单元202的字选择。
注意,对于诸如E2PROM和快擦写存储器等单端串行存储器件存在各种设计。本发明的优点在于可使用任何一种这样的装置。因此,有多少单端的存储器电路设计就有多少本发明的实施例。于是,以下将就图7所示的电路来进行讨论。然而,应理解,该电路只是示意性的,本发明可适用于任何存储器设计。
图2示出使用图7所揭示的电路的图1中概述的本发明的特殊实施例。在图2中可看出,平衡电路是包括存储器件的电路的副本。由带撇号的标号来示出包括平衡电路的元件,例如平衡单元10′和平衡放大器20′、40′。字选择线耦合到存储单元10和空单元14。平衡单元10′和空单元14’耦合到读出放大器20的输出。此外,平衡单元10′被预先编程而处于清除状态。
现在将描述图2的电路的操作。首先,考虑读出放大器20在读取导通的存储单元的情况;即,浮栅晶体管10处于清除状态(通常为逻辑“0”)。由于晶体管被清除,所以它在被选中时接通从而吸收电流。这使得读出放大器的输出DATAOUT接地。由于DATAOUT为低,所以平衡单元10′保持断开继而不导通。在此情况下该器件的源极电流I零为:
I零=I读出零+I平衡静止+I存储单元
这里
I读出零是在读取导通的存储单元10时从读出电路20和40引出的电流,
I平衡静止是在读取不导通的平衡单元10′时从平衡电路20′和40′引出的电流,以及
I存储单元是由导通的存储单元10引出的电流。
接着,考虑读出放大器20在读取不导通的存储单元的情况;即,浮栅晶体管10处于不清除状态(通常为逻辑“1”)。在此情况下,晶体管的栅极阈值被升高因而它在被选中时保持不导通。这使得读出放大器的输出DATAOUT变高。平衡单元10′恢复清除状态,DATAOUT变高接通平衡单元,从而使它导通。在此情况下的总电流消耗I_为:
I_=I读出静止+I平衡零+I平衡单元
这里
I读出静止是在读取不导通的存储单元10时从读出电路10-16、20和40引出的电流,
I平衡零是在读取导通的平衡单元10′时从平衡电路10′-16′、20′和40′引出的电流,以及
I平衡单元是由导通的平衡单元10′引出的电流。
由于存储电路10-40与平衡电路10′-40′相同,以下也是准确的:
I读出零=I平衡零;
I读出静止=I平衡静止;以及
I存储单元=I平衡单元
因此,I零=I_,即,由本发明的存储器件所消耗的电源电流与存储在存储单元10中的数据无关。此外,如以上和参考图1的总体示意图所述,本发明适用于以本领域中所公知的任何单端存储电路设计进行工作。
还应注意,某些存储设计允许共享诸如图7的存储电路等某些元件,而关系式I零=I_总是真的。图3示出利用图7的电路的这种存储器件的一个实施例。读出放大器20的晶体管30-35被复制为平衡放大器20″中的30′-35′。在这两个放大器之间共享补偿电路42。如图2所示,平衡单元10′被预先编程而处于清除状态,并由读出放大器的输出DATAOUT来驱动。
在读出放大器20在读取导通的存储单元(逻辑“0”)的情况下,电流公式为:
I零=I读出零+I平衡静止+I存储单元+Ic
这里
I读出零是在读取导通的存储单元10时从读出电路20引出的电流,
I平衡静止是在读取不导通的平衡单元10′时从平衡电路20′引出的电流,
I存储单元是由导通的存储单元10引出的电流,以及
Ic是在存储单元10导通且平衡单元10′不导通时由补偿电路42和晶体管16和14引出的电流。
在读出放大器20读取不导通的存储单元(逻辑“1”)的情况下,电流公式为:
I_=I读出静止+I平衡零+I平衡单元+Ic′
这里
I读出静止是在读取不导通的存储单元10时从读出电路20引出的电流,
I平衡零是在读取导通的平衡单元10′时从平衡电路20′引出的电流,
1平衡单元是由导通的平衡单元10′引出的电流,以及
Ic′,是在存储单元10不导通且平衡单元10′导通时由补偿电流42和晶体管16和14引出的电流。
由于存储器读出放大器20以及位和字选择晶体管12和10与平衡放大器20′以及位和字选择晶体管12′和10′相同,所以以下公式是真的:
I读出零=I平衡零;
I读出静止=I平衡静止;以及
I存储单元=I平衡单元
Ic=Ic′
这样,与图2的实施例相同,关系I零=I_对图3的实施例总是真的。
图4示出图1所示微调电路208的典型电路示例。微调电路208用于调节平衡单元202的栅极电流以在测试期间提供电流匹配能力,还可进行微调来补偿制造工艺的变化。参考图4,从图3的实施例中得到结合了微调电路208的本发明存储器件的一个实施例。存储单元10耦合到读出放大器20。平衡单元10′经由选择晶体管12′和通路(pass)晶体管11耦合到平衡放大器20″。平衡单元10′耦合到微凋电路208。读出放大器20的输出驱动晶体管11。
微调电路208由串联的电阻器R1-R5组成。一系列可熔连线F1-F5与此电阻器链并联。此电阻器链用作驱动平衡单元10′的栅极的可编程分压器。可简单地通过烧断一根或多根适当的熔丝来对分压器进行编程。于是,通过调节分压器,平衡电压10′可部分接通。这使得可在制造期间对从平衡单元引出的电流进行微调,以补偿工艺变化。虽然图4示出提供了使平衡单元10′预偏置的可变分压器的电阻器链,但对于微调电路可使用提供可编程电压值的许多类似电路中的任一种,且它们被认为在本领域普通技术人员的能力范围内。
现在再转到图5,可看出本发明可适用于一存储阵列。虽然串行存储器件利用了一个读出放大器,但存储阵列可利用不只一个读出放大器,每个读出放大器用于每列存储单元。图5示出把本发明应用于这种存储单元阵列的一列存储单元10A。在存储器件中重复每列读出放大器。
经由位选择线BITn选中一列,而字选择线选中行WORD0…WORDn-1。当选中一列中的特定存储单元时,把选中的单元与未选中的单元有效地隔离。对于给定的选中存储单元,获得的电路以与结合图1~3和以上电流公式所述的相同方式进行操作。于是,通过对每个读出放大器提供相应的平衡电路,将使通过存储器件引出的总电流保持基本上恒定,而与所读取的零和一的格式无关。
根据条约第19条修改时的声明
对权利要求17进行了修改以对“平衡电路”作适当地引用,继而使权利要求书的范围更清楚。于读出流过所述平衡存储单元的电流;
所述平衡存储单元包括耦合到所述有关读出放大器的输出线的字选择线;以及
所述平衡存储单元处于导通状态。
17.如权利要求15所述的存储器件,其特征在于每个所述存储单元是第一浮栅晶体管,具有用于其选择的栅极和耦合到有关读出放大器的漏极,所述平衡电路包括第二浮栅晶体管和与所述有关读出放大器基本上相同的平衡读出放大器,所述第二浮栅晶体管包括耦合到所述平衡读出放大器的漏极和耦合到所述有关读出放大器的控制栅极,所述第二浮栅晶体管处于清除状态。
18.如权利要求17所述的存储器件,其特征在于还包括微调电路用于对所述第二浮栅晶体管进行部分编程以改变被选中的所述第二浮栅晶体管的电导率。