首页> 中国专利> 具有数据存储扇区和代码存储扇区并同时支持对两种扇区的读/写访问的单个存储模块的微控制器

具有数据存储扇区和代码存储扇区并同时支持对两种扇区的读/写访问的单个存储模块的微控制器

摘要

一种微控制器(1),具有特殊功能寄存器,在运行中在内部存储器与外部存储器之间作出内部选择。两个数据指针(41、43)与特殊功能寄存器相结合导致四个有效快速参考位置。内部存储器(67)由一个存储器模块组成,它具有再划分为数据存储器存储(37)和代码存储器存储(35)的阵列,以及具有使代码存储器存储与数据存储器存储有选择地隔离的一排传递器件(73)。本存储器(67)能够同时进一步支持在从代码存储器存储(35)读出的同时向数据存储器存储(37)的写入。

著录项

  • 公开/公告号CN1298501A

    专利类型发明专利

  • 公开/公告日2001-06-06

    原文格式PDF

  • 申请/专利权人 爱特梅尔股份有限公司;

    申请/专利号CN99805519.0

  • 发明设计人 D·柯里;A·Y·友;莫仲棣;

    申请日1999-03-02

  • 分类号G06F9/34;G06F9/44;G06F13/16;G06F13/40;

  • 代理机构上海专利商标事务所;

  • 代理人李玲

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 13:54:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-04-29

    未缴年费专利权终止 IPC(主分类):G06F9/34 授权公告日:20071226 终止日期:20140302 申请日:19990302

    专利权的终止

  • 2008-03-19

    专利权人的姓名或者名称、地址的变更 变更前: 变更后: 申请日:19990302

    专利权人的姓名或者名称、地址的变更

  • 2007-12-26

    授权

    授权

  • 2001-06-13

    实质审查请求的生效

    实质审查请求的生效

  • 2001-06-06

    公开

    公开

说明书

技术领域

本发明涉及与单个集成电路芯片中微控制器相组合的非易失性代码和数据存储模块。

背景技术

微控制器是用于监测和控制装置对其周围响应的单个芯片装置。例如,可以用它们来解译微波炉上的按键输入,然后控制微波炉的响应。通常,微控制器被设计成对多次中断作出响应,如响应于某人打开微波炉炉门而紧急关闭微波炉。微控制器传统地专门针对单位处理,包括CPU、RAM、ROM、串行接口、并行接口、定时器和中断调度电路。

微控制器有几种类型,但是常用的一种8位微控制器是基于8051微控制器体系结构,它由Intel公司于1981年首次推出。这一体系结构传统地使用ROM来保持程序或代码存储器以控制其操作。实质上,代码存储器保持一张指令清单,它告诉微控制器如何对各种刺激作出响应。一个单独存储器,通常为RAM,保持数据项目,即中间结果以及暂时数据常数。由于程序存储器被存储在ROM中,它不能被改变,如果代码程序必须被更新的话,微控制器本身不得不被替换掉。这使得在现场中把新指令程序(即代码)引入微控制器中的前景成为高强度工作。

后来,代码ROM被EPROM替换,后者允许改变指令程序而不必放弃微控制器。通过使EPROM接受紫外光照射几分钟,可以擦除EPROM,然后通过EPROM编程装置可以对它们重新编程。这允许工程师在把最终产品微控制器送至现场之前对各种指令程序进行测试。然而,一旦进入现场,从现场中取出微控制器、使它接受紫外光照射以便擦除以及将它运送至EPROM编程器更新其指令程序所涉及的劳动成本仍然使得对微控制器程序存储器的更新成为不可能。

对基本8051微控制器体系结构的进一步改进在授予Borkar等人的美国专利4,782,439(涉及改进的存储器存取)以及授予Hayek的美国专利4,780,814(它公开一种通信接口)中作了揭示。尽管这两个专利中的任何一个都没有解决8051代码存储器的缺乏灵活性的问题,由于对微控制器的代码存储器的变化一般是稀罕的,这不认为是一个问题。然而,当微控制器应用于诸如蜂窝式电话和电缆接收器的近期各种应用中时,这种情况有所变化。

在已转让给本发明同一受让人的美国专利5,493,534中揭示了针对改进8051体系结构的灵活性的主要改进。美国专利5,493,534引入一种按块擦除存储器的使用来控制程序存储器。另外,美国专利5,493,534把增压泵引入到8051体系结构中,它允许微控制器内部产生所有擦除和编程电压,而无需EPROM或EEPROM编程器。通过与微控制器在现场所驻留的印刷电路板的通信联系,能够远程更新微控制器的程序存储器。因此,当程序存储器需要被更新时不再需要从现场上取出微控制器。

微控制器在这些更通用的应用中的近期使用还必须使用诸如登记注册号码、访问代码等的用户专用数据。这种类型的数据可能经常改变,甚至在微控制器切断电源后需要被保持住。由于传统的8051体系结构支持针对仅在RAM中数据存储器处理的指令集,这种类型的较永久数据存储通常被存储在外部EEPROM芯片中,这是为象RAM存储器一样响应而读和写来自8051微控制器的请求而配置的。由于两个原因,8051的内部程序存储器(它是ROM、EPROM或FLASH存储器)不能被用于存储这种类型的长期用户专用数据。首先,所有的微控制器是为了在它们处于有效操作模式中时仅读出对其程序存储器访问而配置的。由于微控制器的ALU是通过来自程序存储器的指令控制的,从它执行时它不能改变其程序存储,由于这一事实,这是必须的。因此,所有的微控制器首先必须被置于无效或复位模式中,由外部控制,以便改变其内部程序存储器。其次,即使是在写入数据存储器的更新的同时微控制器内的ALU总要能够从程序存储器中提取其下一个指令。这也必须使用一个第二存储器模块作数据存储器存储。

美国专利5,375,083揭示了一种装有ROM模块(存储程序存储器)、RAM模块(存储暂时数据存储器)和EEPROM模块(存储长期数据存储器)的集成电路卡微控制器。但是,如上所述,8051体系结构具有并不支持内部EEPROM数据存储器存储的处理的指令集,因此,083专利是指其体系结构和指令集与8051微控制器族的体系结构和指令集相兼容的微控制器。这限制了其应用。083专利还详细说明除了ROM程序或代码存储器模块外把一个单独EEPROM数据存储器模块装入集成电路卡中的一些困难。

如上所述,需要两个分别的代码和数据存储器模块的主要原因在于,微控制器中的CPU即使正在写入数据存储器的更新时必须总能够从代码存储器中提取新指令。因此,把非易失性数据存储器存储装入到微控制器中没有有效地利用可供使用的存储器空间,因为它不能访问现有的非易失性存储器,需要诸如EEPROM模块的附加存储器模块,增加到微控制器,使得其设计和布线图更加复杂。

微控制器的再一个限制是它们有限的可寻址的程序和数据空间量,这通常限制为16位地址寄存器。微控制器的8051族尤其如此。8051能够内部寻址的最高达216(即64K)程序存储器位置,但是,这一程序存储器通常不是位于微控制器内部。因此,外部访问(EA)管脚允许8051访问在其外部的程序存储器。例如,如果微控制器不具有内部程序存储器,那么,EA管脚外部固定在低(电压),所有的程序提取指令指向微控制器外部的程序存储器。如果8051有一些内部程序存储器,那么EA管脚固定在高(电压),处于微控制器的内部存储器中的程序提取指令被内部访问,位于可供使用内部存储器以外的提取指令自动地指向外部存储器。在两种情况中,微控制器不能够访问比16地址位可提供的(即64K)更多的存储器。

数据存储器的情况甚至更受限制。8051内部体系结构具有8位(即256)内部数据访问的地址容量,虽然通过利用间接寻址可以使这个量略微扩大。为了访问其整个64K的数据存储器空间,需要使用MOVX指令,它利用16位地址寄存器并仅访问外部数据存储器。传统地这一直不是一个问题,因为数据存储器一直限制为RAM,它仅保持暂时数据,具有相对较大的存储器单元和具有对外部存储器的快速访问时间。

需要的是一种更有效和更灵活使用存储器的8位8051型微控制器。本发明的一个目的是提供一种微控制器,它不需要两个分别且独立的代码和数据存储器模块,由此更有效地利用可供使用的芯片面积。

本发明的另一个目的是提供一种微控制器,其可寻址的空间不受其地址寄存器的尺寸限制。

本发明的再一个目的是便于构造内部和外部数据存储器空间中的查找表。

发明内容

在代码和数据存储器的构造中在将FLASH和EEPROM存储器的属性组合的微控制器中可实现上述目的。本发明的代码和数据存储器当处于串行模式中时其作用为或是FLASH或是EEPROM存储器,而在并行模式中时两个功能合在一起作为一个连接的FLASH存储器。为了实现这一点,将数据和程序存储器需要二者合并到单个存储器模块中,它具有被划分为代码空间和数据空间的单个阵列。代码空间具有第一循环额定值并指定用于存储代码存储器,数据空间阵列具有第二循环额定值(比代码空间的循环额定值大至少10倍)并指定用于存储数据存储器。尽管代码空间和数据空间二者是微控制器内单个存储器模块的一部分并共享相同地址解码器、感测放大器(sense amps)、输出驱动器等,但是它们支持同时进行代码空间的读出与对数据空间的写入。此外,由于仅采用一个存储器模块而不是两个,微控制器的存储器容量能够增大,对整个集成电路尺寸的影响有限。

同时进行代码空间的读出与数据空间的写入是通过两种任选存储器体系结构实现的,两种体系结构把存储器阵列划分为存储代码的第一存储器扇区和存储数据的第二存储器扇区。在这两种体系结构中,两个存储器扇区共享一个比特线公用组,但是一组传递器件(pass device)能够使通过代码运行的比特线与通过数据扇区运行的比特线任选地隔离。同样,在两种体系结构中,感测放大器、y解码器和驱动器以直接访问被置于代码扇区,以致于代码扇区总是访问感测放大器,但是通过这组传递器件可以使数据扇区与感测放大器任选地隔离。正在对数据扇区编程时,传递器件使代码申请读出操作与数据扇区隔离而允许y解码、感测放大器和输出驱动器仍然对代码扇区的读出访问。

两种体系结构在维持数据扇区的程序操作有效同时代码扇区继续支持读出操作的方式上是不同的。

在第一实施例中,数据扇区具有一个与它相邻的复制的第二y解码器。高的编程和擦除电压通过这个第二y解码器被传送到数据扇区,而在必要时,通过传递器件被传送到代码扇区。透明锁存器维持比特线和字线在程序操作期间在数据扇区中有效,而第一y解码器和被数据扇区采用的同一x解码器选择代码扇区中的第二对比特线和字线。然后以EEPROM方式(这是逐个字节地)对数据扇区编程。

在第二实施例中,用比特线高电压页面代替复制的y解码器。正在被编程到代码扇区或是数据扇区中的数据首先存储在高电压页面中。高电压页面具有单个标志,表示该页面中哪个字节被编程和哪个没有被编程。只有指定给程序操作的这些字节经受擦除。再有,一组传递器件在同时读出/写入操作期间使数据扇区与代码扇区隔离。因此,能够使数据扇区和代码扇区二者逐个字节地改变,如同它们是两个分别的EEPROM存储器。然而,二者在选择了数据和代两个码扇区中所有字节的y选择行的期间还支持按块擦除操作,因此两个阵列中的所有字节同时被擦除。

本发明进一步包括一种机制,通过它微控制器自身能够命令在运行中它将访问内部数据存储器还是外部数据存储器。一种新的特殊功能寄存器在其它事情当中包括存储器访问标志,它设定为访问内部存储器和复位以访问外部存储器。因此,微控制器的有效可寻址的数据存储器空间被翻倍。即,一旦达到最大可寻址的内部数据存储器,那么可以把特殊功能寄存器设定为访问等量的外部数据存储器。由于存在一个内部寄存器,程序存储器本身能够命令是否设定标志,因此从内部访问转换到外部访问。

附图简述

图1是按照本发明的微控制器的整个方框体系结构。

图2是外部串行装置、外部并行装置和内部CPU增益如何访问本发明的存储模块的方框图。

图3是按照本发明的存储体单元阵列的部分布线图。

图4是按照本发明的存储器体系结构的第一实施例的方框图。

图5是按照本发明的透明锁存器的电路实施方案。

图6是按照本发明的图4的通过存储体单元控制电路的内部结构。

图7是按照本发明的图3和4的通过装置存储体单元的内部结构。

图8是图3的阵列结构的一部分的近视图。

图9是按照本发明的存储器体系结构的第二实施例的方框图。

图10是按照本发明的列锁存器存储体单元的、部分布线图。

图11是按照本发明的图10的列锁存器存储体单元内各个锁存器的内部视图。

实现本发明的最佳方式

参考图1,图中示出按照本发明的微控制器的一般体系结构。微控制器1包括中央处理单元,CPU,由算术逻辑单元ALU 11组成,它经过第一暂时寄存器15由累加器13馈送。ALU 11还响应于第二暂时寄存器17。ALU 11的结果被传送到逻辑总线21上和程序状态字19上,它保持刚刚进行的计算的任何特定状态特征。微控制器1进一步包括256字节RAM 23(它装有所有特殊功能寄存器)、32 I/O线25-28、三个16位定时器和计数器29、一个多电平中断体系结构31、芯片上振荡器33和时钟电路。所有以上讨论的元件是微控制器领域中所公知的,在转让给本发明同一受让人的美国专利5,493,534和授予Hayek的美国专利4,780,814中作了更全面的揭示。

本发明的更主要的特征在于数据存储器37和程序或代码存储器35,尽管在图1中是分别示出的,但是实际上是单个存储器模块的部分,下面将说明。本发明进一步包括可编程的监视时钟39以及第一和第二数据指针存储体单元41和43。控制信号PSEN、ALE/PROG、EA/Vpp和RST执行各种复位和存储器关联例程,以及方便编程协议,正如美国专利5,493,534中所揭示的。

本较佳实施例装有8千字节内部代码存储器35和2千字节内部数据存储器37。现有技术的8051微控制器被局限于较小量的内部数据存储器,因为仅有8个地址位提供内部数据访问。现有技术8051的系统结构类属地使用直接或间接寻址来访问内部数据存储器的下部的128个位置以及使用间接寻址来访问上部的128个位置。上部的128个位置的直接寻址被保留用于访问微控制器内的特殊功能寄存器。为了访问更多数据存储器,现有技术8051系统结构需要通过“移动外部”命令,MOVX间接访问外部数据存储器,MOVX使用16位数据指针寻址到64K外部数据存储器。

本实施例并不未偏离8051族的标准指令集并维持256字节RAM存储器和一排特殊功能寄存器的使用。同现有技术中一样,本实施例还支持对下部128字节RAM的直接和间接访问和对上部128字节RAM的间接访问。同样,上部的128个位置的直接地址为访问特殊功能寄存器而保留。

对于本应用这出现一个问题,为了对2K附加内部数据存储器访问,需要2字节地址,但是8051体系结构仅支持内部数据存储器的1字节寻址。为了不偏离基本8051指令集以及不改变现有技术8051系统结构的基本寻址方案,本发明扩展现有MOVX指令的使用,该指令已经支持处理数据存储器的2字节寻址,以访问内部和外部数据存储器。因此,对内部数据存储器37的所有访问是通过MOVX命令以及程序地址寄存器45和区分内部与外部数据存储器访问的专用标志位的间接寻址实现的,正如以下更全面地说明的。这一专用标志位的使用使可提供使用的数据存储器的量有效地翻倍,因为能够使用MOVX命令来访问高达64K内部数据存储器,然后访问高达64K附加外部数据存储器。所有其它内部数据存储器访问被指向RAM 23和指向状态寄存器。

由于现有技术8051系统结构已经支持高达64K代码存储器35的访问,内部或外部的,对于本发明的这一特征不需要新的寻址方案。在现有技术中,64K代码存储器的部分可以在微控制器的内部,其余的可以在微控制器的外部。在这一现有技术方法中,微控制器监视其程序计数器,它指向下一个可执行的指令。如果下一个可执行的指令位于内部代码存储器的地址空间中,那么,程序计数器被施加到内部代码存储器。如果下一个指令是在内部代码存储器的地址空间之外,那么,程序计数器被施加到外部代码存储器,高达64K的最大可寻址空间。

然而,在本发明的另一个实施例中,通过类似于以上讨论的专用标志位的附加标志位来区分内部与外部数据存储器之间的访问,可以使可寻址代码存储器的量扩展到64K以上。但是控制代码存储器的这一附加标志位会引起少许不同的表现。例如,当这一附加标志位被复位时,微控制器的功能则与现有技术中一样。即,如果EA引脚被固定于高(电压),那么微控制器则访问所有可提供使用的内部代码存储器,如果内部代码存储器小于64K,那么在下一个地址处,它则自动地切换到外部代码存储器,高达64K的最大值。

在这种方法下,如果代码存储器的所有64K是在微控制器的内部,那么可能不能访问附加外部代码存储器。同样,如果代码存储器的不足64K在微控制器的内部,当外部代码存储器被自动访问时,它在下一个可供使用的地址上启动以致于不能访问多于64K的内部和外部位置。例如,如果16K内部代码存储器可以提供使用,那么仅仅48K的附加外部存储器可以被访问。

然而,在这另一个实施例中,如果设定附加标志位,那么,微控制器则在下一个地址上访问外部代码存储器,即使下一个地址也是在内部代码存储器中提供使用的。以这种方式,如果64K的代码存储器是在微控制器的内部,那么通过设定这一附加标志位,可以访问附加的64K的外部代码存储器。可寻址的代码存储器的量也被扩展,即使不足64K的代码存储器是在微控制器的内部。例如,如果,微控制器具有16K的内部代码存储器和64K外部代码存储器,那么,在初始的内部16K的内部代码存储器和随后的上部48K外部存储器已经被访问后,可设定附加标志位,由此得到对附加的下部16K的外部代码存储器的访问。

对本实施例的进一步增大是称为监视和存储器控制寄存器,或WMCON寄存器的新的特殊功能不仅用于区分内部与外部数据存储器访问,而且还用于控制监视时钟(watchdog timer)39。以下表明WMCON寄存器以及其每个控制标志位的意义。

WMCON地址=96H                                   复位值=0000 0000B PS2 PS1 PS0 EEMWE EEMEN DPS WDTRST  WDTEN    7    6    5    4    3    2    1    1    0符号功能PS1 PS2 PS3监视时钟的预换算器位。当所有三个位设定为“0”时,监视时钟具有16ms的额定周期,当所有三个位设定为“1”时具有2048ms额定周期。EEMWE EEPROM数据存储器写入使能位。在用MOVX指令启动字节写入到芯片EEPROM上之前将这个位设定为“1”。在完成EEPROM写入后用户软件应当将这个位设定为“0”。EEMEN内部EEPROM存取使能。当EEMEN=1时,具有DPTR的MOVX指令将访问芯片EEPROM而不是外部数据存储器。当EEMEN=0时,具有DPTR的MOVX指令将访问外部数据存储器。DPS数据指针寄存器选择。当DPS=0时选择第一排数据指针寄存器DP0,DPS=0时选择第二排,DP1。WDTRST监视时钟复位和EEPROM就绪/忙标志。每次由用户软件将这一RDY/BSY位设定为“1”,产生一个脉冲使监视时钟复位。然后在下一个指令循环中WDTST位自动地复位到“0”。WDTST位是只写的。在EEPROM写入期间这个位在只读模式中还起RDY/BSY标志作用。RDY/BSY=1意味着EEPROM对编程准备就绪。而正在执行编程操作时,RDY/BSY位等于“0”,当完成编程时自动地复位到“1”。
WDTEN    监视时钟使能位。WDTEN=1使得监视时钟能够,而WDTEN=0使得监视    时钟不能。

WMCON寄存器包含三个换算器位PS0-PS2,以按照下表中所示的较佳关系控制监视时钟29。监视时钟周期选择

    WDT预换算器位    周期    PS2    PS1    PS0    (额定)    0    0    0    16ms    0    0    1    32ms    0    1    0    64ms    0    1    1    128ms    1    0    0    256ms    1    0    1    512ms    1    1    0    1024ms    1    1    1    2048ms

监视时钟39从第二独立振荡器38起操作,在特殊功能寄存器WMCON中具有换算器位PS0-PS2,用于在60ms至2048ms之间设定监视时钟39的周期。监视时钟的用途是防止微控制器1意外地锁住。监视时钟在经过预选的时间周期之前通过设定特殊功能寄存器WMCON中的位WDTRST而复位。如果监视时钟的预选时间周期消逝而位WDTRST未被复位或失能,产生一个内部复位脉冲,它使微控制器1复位,因此防止任何锁住状况。

特殊功能寄存器WMCON中的位EEMWE和EEMEN指挥MOVX命令访问内部数据存储器而不是外部数据存储器。尽管内部数据存储器的功能既能够作为一个完整功能WMCON,一次写入一个存储器位置,又能够作为按块存储器,一次擦除和写入一个块的存储器位置,这两个控制位参考数据存储器的EEPROM表现,因为当通过微控制器的内部CPU访问它时它很可能在这一容量上发挥功能。位EEMWE起向内部数据存储器37读/写信号的功能。在启动向内部数据寄存器37的写顺序之前应当将位EEMWE设定为逻辑1,在结束写顺序时应当将其复位为逻辑0。位EEMWE区别内部与外部数据存储器的存取。如果位EEMWE被设定为逻辑1,那么将用MOVX命令指挥内部数据存储器37,但是如果位EEMWE复位为逻辑0,那么将用MOVX命令指挥外部数据存储器。

特殊功能寄存器WMCON中的位DPS是数据指针寄存器选择位,用于选择两个数据指针触排(data pointer bank)41或43中的一个。每个数据指针触排可以使用在数据存储器的间接寻址中,诸如使用在读出查找数据表。利用两个数据指针触排便于多个表的访问,因为在切换到另一个表之前不需要把数据指针的当前内容推到堆栈上。

数据指针选择标志位DPS可以与控制位EEMEN一起使用,后者用于区分对内部与外部数据存储器的访问。当EEMEN设定为1时,MOVX功能将在由数据指针41或43中所选一个表示的位置上访问内部数据存储器。当EEMEN设定为0时,MOVX功能将在由数据指针41或43中所选一个表示的位置上访问外部数据存储器。因此,通过适当编程以及确定两对表位于内部和外部数据存储器的相同地址上,两个数据指针41和43以及控制信号EEMEN的组合使得数据指针的数目有效地翻倍,因为能够使用数据指针访问内部数据存储器中的两个位置,然后访问在外部数据存储器中具有相同地址的两个不同位置。

本微控制器的这些特征通过其存储器体系结构得到进一步增强,所述体系结构在增大存储器容量和灵活性的同时减小存储器面积。

参考图2,针对图1所描述的CPU的组成部分被集合表示为方框51。正如以上所述,图1的数据存储器37和代码存储器35在图2中所示的单个存储器模块中实际上是一个连续阵列,表示为数据/代码存储器67。通过CPU51可以内部访问或者通过外部串行装置55或外部并行装置53外部访问数据/代码存储器67。外部串行装置55和外部并行装置53较佳地形成图1中所示的可配置的串行和并行端口25-28的一部分。

数据/代码存储器67从用户的视角看功能是不同的,这依赖于是否以并行或串行模式访问它。在并行模式中,内部数据存储器37和内部代码存储器35起一个连续存储器阵列的作用,它包括单个存储器空间,在数据或代码存储器空间之间没有不同。例如,在本较佳实施例中,数据/代码存储器67包括8K代码存储器和2K数据存储器,但是如果数据/代码存储器67是以并行模式被访问的,那么它则象一个单个10K存储器阵列,代码空间较佳地跨越地址0至8K,数据空间跨越地址8K+1至10K。此外,在并行模式中数据/代码存储器67象一个单个按块模块。即,代码和数据空间二者的整个内容同时被擦除;然后可以一次一字节地对整个阵列编程。此外,在并行模式中,微控制器需要应用高的编程和擦除电压Vpp并与现有的FLASH或EPROM编程器相兼容。

然而,在串行模式中,数据/代码存储器67的功能或是为两个分别的按块模块或是为两个分别的EEPROM模块,每个模块具有一个分别的地址空间,每个对应于分别的编程和读出命令。两个分别模块中的一个的作用为独立代码存储器,占据相邻地址空间,较佳地跨越0至8K,另一个的作用为独立数据存储器,占据相邻地址空间,较佳地跨越0至2K。在串行模式中,数据/代码存储器67内部产生编程和擦除所需的高压,从而不需要单独的按块或EPROM编程器,数据存储器空间和代码存储器空间二者可以在现场中的用户的系统内被遥控更新。在串行编程模式中,数据/代码存储器67支持自动擦除循环,建立在每个自定时字节编程操作中,因此在特性上象一个EEPROM存储器。另一方面,数据/代码存储器67还支持芯片擦除命令,它同时擦除整个存储器阵列,由此其功能象一个按块存储器。当与数据/代码存储器67通信时,外部串行装置55较佳地遵循标准串行外围接口SPI。

由于微控制器的代码存储器可以在现场被串行地更新,将安全性编程保险增加到较佳实施例中。在设置时,这一编程保险使得数据/代码存储器67的所有串行编程失能。其次,编程保险不是以串行模式访问的,只有在并行模式中可以设定或复位。由于在并行模式中程序和擦除操作需要按块或EPROM编程器,这保证在微控制器处于现场中的用户系统中时不会发生窜改

如果数据/代码存储器67或是通过串行地址总线55或并行地址总线53正在被外部访问,那么,数据/代码存储器67的特性象一个由单个存储器空间组成的连续存储器阵列,数据与代码存储器空间之间没有区别。另外,如果数据/代码存储器67通过串行装置55正在被访问,那么,数据/代码存储器67的特性象一个E2存储器具有用自动字节擦除的字节编程能力。但是如果存储器67通过并行装置53正在被访问,那么它的特性象一个连续按块存储器,其整个数据空间和代码空间内容同时地按块阵列擦除,并支持字节编程能力。另外,如果它通过CPU51内部访问,那么,它的特性象两个分别的存储器阵列,具有重叠地址。

只有当存储器67不是通过串行装置55或并行装置53被外部访问时CPU51才访问数据/代码存储器67。如果不在执行外部访问和CPU51是有效的,那么信号RSTT具有逻辑低输出,并施加到三状态传递器件触排59的有效低输入和施加到2至1多路复用器(MUX)触排57的有效高使能输入。2至1MUX触排57和三状态传递器件触排59二者的输出被耦合在一起,形成单个地址总线63,施加到数据/代码存储器67。采用信号RSTT上的逻辑低,三状态传递器件触排59通过总线61向地址总线63传送地址寄存器45的内容,而2至1MUX触排57使地址总线63与外部输入装置55和53中的任何一个隔离。然而,如果启动外部访问,那么,信号RSTT将具有逻辑高,引起三状态传递器件触排59隔离地址总线63与总线61。RSTT上的逻辑高进一步使得2至1MUX57能够将在地址总线63上传送外部串行地址装置55或外部并行地址装置53中一个,正如由外部模式信号Ext_mode确定的,被耦合至MUX触排57的控制输入。

如上文所述,数据/代码存储器67的特性,或是当以外部并行模式被访问时象一个连续可寻址单个存储器空间,或是当通过CPU51被内部访问或以串行模式被外部访问时象两个分别的存储器空间。为了容纳这两种功能,存储器67中的数据和代码存储器空间较佳地通过较高的有效位被分开。在本实施方案中,数据存储器空间位于上部存储器中,通过启动最高有效位ADDR13可存取,而代码存储器空间位于下部存储器中。因此,当通过外部并行装置53把数据/代码存储器67读作一个连续存储器阵列时,那么数据空间将不能被访问直至断定较高有效位即ADDR13为止。但是,当数据代码存储器67通过CPU51被内部访问或者通过外部串行装置55被访问以及数据和代码存储器空间的特性必须象两个独立存储器空间时,当数据空间被访问时被断定而当代码存储器被访问时不被断定数据使能控制信号DATA_EN被断定。识别数据空间的最有效位,即ADDR13或控制信号DATA_EN被施加到“或”门65,其输出被施加到数据/代码存储器67的最高有效地址位输入ADDR_13。因此当地址总线63的最高有效地址位ADDR13被断定时或者当信号DATA_EN被断定时,那么,数据/代码存储器67将通过访问其数据空间而作出响应。

参考图3,图中示出数据/代码存储器67的一个示例阵列布线图66。存储器阵列66通过一排传递器件(pass device)73分为代码存储器空间35和数据存储器空间37。如上所述,较佳实施例数据存储器37在上部或顶部存储器空间中和代码存储器35在下部或底部存储器空间中。由于代码35和数据37存储器空间二者的许多组成元件是相似的,它们用加有脚标的相似字符表示,脚标“T”或“TOP”为数据存储器37中的元件,脚标“B”或“BOT”为代码存储器空间35中的元件。当采用公用参考字符而没有脚标限定条件时,那么参考字符可应用于代码存储器空间35和数据存储器空间37二者。代码比特线(code bitline)74B和代码字节选择线(code byte select 1ine)81B通过一排传递器件73的手段被分别耦合至各个数据比特线74T和数据字节选择线81T或者与其隔离。

代码空间35遵循传统的EEPROM体系结构布局。一行存储器单元等效于可寻址空间中的一个存储器页面并被专用字线72识别,电耦合至一行中所有单元选择晶体管75的控制栅极。每个单元选择晶体管75与串联连接可变阈值晶体管77一起构成一个储存存储器单元。当字线72被驱动时,单元选择晶体管75将其串联连接可变阈值晶体管77电耦合至其相应的比特线74,它被用于读出存储在可变阈值晶体管77中的信息。

为了支持字节寻址能力,将数据组织到8位B0至B7中,包括一个字节81。感测线79(它把读出、编程和擦除电压施加到可变阈值晶体管77的控制栅极)被分为段,将8个相继可变阈值晶体管77或一个字节81的控制栅极耦合在一起。字节选择列线85和字节选择晶体管83被用于对存储器单元的每个字节81寻址,以致于通过字节选择列线85和字节选择晶体管83,其编程。读出或擦除期间只可以各自选择一个感测线段79,因而一个字节81。

阵列66的数据空间37具有类似于代码空间35的配置,不同的是数据空间37被设计成循环额定值比代码数据35的循环额定值大至少10倍。在本实施例中,数据空间37具有100000次的循环额定值,而代码空间35具有1000次的循环额定值。为了在整个单个阵列66上建立所选存储器单元的不同循环额定值,数据空间37较佳地给出100%冗余度而代码空间35给出最小或没有冗余度。即,数据空间37中的每个存储体单元87A具有对应于自己的冗余单元87B。在本实施例中,数据空间37中的每个字线89控制一个主要存储器页面PDE和一个冗余存储器页面PDE_B,PDE_A中的所有存储器单元87A复制PDE_B中A的87B。冗余存储器页面PDE_B进一步接收与主存储器页面PDE_A相同的比特线74T和字节选择线85T。以这一方式,一旦对PDE_A中的存储器单元87A读出、编程或擦除时,在PDE_B中的其相应冗余单元87B上进行相同操作。

通常,能够有选择地把电子放在浮动栅极器件77上,以升高其阈值电压和阻止电流流动,或者任选地从其浮动栅极中取出电子,以降低其阈值电压和便于电流流动。感测放大器检测通过存储器单元的电流流动或者缺乏电流流动,由此识别所存储的逻辑1或逻辑0。当存储器单元87失灵时,这通常是因为它不再能够从其浮动栅极中取出电子,引起它保持为永久高阈值电平,这阻止电流通过其流动。如果单元被损坏,不再能够任选地从浮动栅极取出电荷,那么不再能够改变电流通过存储器单元的流动,因此不再能够把新数据写入到其中。但是在本情况中,如果PDE_A中的存储器单元87A保持高的阈值电压,即,它不再传导电流那么PDE_B中的其相应冗余单元87B(它未被损坏)能够继续进行编程、擦除或读出,由此没有数据丢失。

在本实施例中,存储器阵列66被分为m行存储器页面,在每个存储器页面中有n个字节。正如上文所述,代码空间35和数据空间37被地址位的合适选择而分开。在本实施例中,字线WL20至WL2m-1对应于代码空间35。传递器件触排73将代码空间35与数据空间37分开,它从字线WL2m-1+1开始,继续到WL2m。因此,数据空间37将不会被选择直至对应于WL2m-1+1或更高的地址位被选择为止。但是正如以上说明的,当存储器阵列66通过CPU51被内部访问或者通过串行装置被外部访问时,那么数据空间37和代码空间35二者均需要象两个分别的存储器空间那样。例如,在本实施例中,数据空间37具有2K存储位置而代码空间35具有8K存储位置。如果阵列66通过并行装置正在被外部访问,那么,整个阵列66则按序被访问,具有对应于代码35的地址0-8K,和对应于数据空间37的地址8K+1至10K。但是,如果存储器阵列66通过CPU51被内部访问,那么内部MOVX命令则被指向数据空间37的地址0至2K,程序取出则被指向代码空间35的地址0至8K。为了避免地址冲突,CPU发布DATA_EN控制信号,表示它希望访问数据空间37。这一控制信号发生在驱动行WL2m-1+1至WL2m的地址位。

如果需要存储器阵列66象EEPROM那样操作,那么y地址解码器将选择所需字节地址81的特定字节选择线85。但是,如果存储器阵列象按块器那样操作,即整个阵列同时被擦除,那么,整个阵列66中的所有字节选择线85同时被选择,不管已寻址字节。

参考图4,图中示出按照本发明的数据/代码存储器67的第一实施例的体系结构方框图。图中再次示出,主阵列66由代码空间35和数据空间37构成,二者被传递器件触排73分割开。数据/代码存储器67支持在从代码空间35读出的同时向数据空间37的写入。

I/O框91控制数据流入和流出数据/代码存储器67,这依赖于数据是否写入到主阵列66还是从其读出。地址寄存器93保持在当前操作期间被寻址的字节的位置。地址寄存器93被分为x地址寄存器93x,保持所选存储器页面的位置,以及y地址寄存器93y,保持字节的所选列的位置。x地址与y地址的相交表示主阵列66中的所选字节。

没有同时写入操作的读出操作的数据流引起代码空间35和数据空间37被耦合在一起,形成一个相邻阵列共享共用比特线和字节选择线。这是通过设定传递器件触排73进行的,传递器件触排73响应于节点122的高信号将数据空间的比特线与字节选择线耦合在一起。在读出操作期间,读/写信号R/W把I/O框91的路径方向设定为输出模式。地址寄存器93保持正在读出的字节的地址并把x地址93x传送到x解码器95把y地址93y传送到第一y解码器96和到第二y解码器97。y解码器96和97二者选择由y地址所识别的相同列线。x解码器95将逻辑1置于由x地址93x确定的所选字线上。x解码器95的输出提供给开关触排99,后者通过将电压Vm置于其上而将所有其它的接地而响应于具有逻辑1的字线。在读出操作期间电压Vm通常设定为接近Vcc。同样,第一y解码器96对所选地址解码,由于开关盒101在读出操作期间是三状态的,所选比特线通过2至1MUX 109传送到感测放大器111。代码空间35和数据空间37二者共享相同感测放大器111,因为所选字线能够位于阵列66中的任何地方。

第二y解码器97将所选列线耦合至透明锁存器103。透明锁存器103响应于信号UPGM_B,它在同时读取代码空间35和在数据空间37中编程期间维持逻辑低,否则维持逻辑高。如果UPGM_B是高,那么,允许数据自由通过透明锁存器103,如果UPGM_B是低,那么,通过在第二y解码器97的输出上锁存当前内容透明锁存器103作出响应。由于本操作是单个读出操作,信号UPGM-B设定为逻辑高,透明锁存器103在开关触排105上自由传送第二y解码器97的输出。同以前情况中一样,开关触排105在读出操作期间是三状态的并不驱动任何比特线,以致于允许所选比特线由感测放大器111读出。

感测放大器111确定哪个所选比特线正在抽取电流而哪个没有。抽取电流的这些识别为逻辑0而没有抽取的这些识别为逻辑1。然后把所识别逻辑信号传送到在I/O框91上,从中排出。

没有共同读出操作的单个写入操作同样作为一个相邻存储器空间处理阵列66,写入操作可以在数据空间37和代码空间35中任何地方进行。在这种情况中,读/写信号R/W使I/O框91的功能交替改变以接收输入数据并将其直接传送到第二y解码器97以及通过2至lmux107间接地传送到第一y解码器96。地址寄存器93再次接收要编程的字节的地址并将x地址93x传送到x解码器95上。x解码器95将有效高电平置于所选字线上,开关触排99将来自2至1mux113的合适编程电压传送到所选字线上。

y地址93y被传送到第一y解码器96和第二y解码器97二者。由于不发生共同读出操作,信号UPGM_B被维持高电平,引起透明锁存器103再次把第二y解码器97的结果耦合至开关触排105。同样,第一y解码器96的结果被耦合至开关触排101。因此,两个开关触排101和105接收输入数据并将其传送到所选比特线上。开关触排105将来自高压发生器107的电压UVM置于所选比特线上,开关触排101将电压VM置于相同所选比特线上。电压UVM来自高压发生器107,它产生写入操作的合适电压,电压VM来自2至1mux113。由于信号UPGM_B是高的,2至1mux113变为对信号R/W的响应并将来自高电压发生器107的相同电压传送到信号VM上。阵列66因此同时从阵列顶部和底部被驱动。

在同时读和写操作的情况中,信息从代码空间35读出而数据同时被写入到数据空间37中。这一操作是通过启动至数据空间37的写入指令开始的,正如以上说明的它开始写入序列。然而,如果至数据空间37的写入是在从代码空间35读出的同时启动的,那么信号UPGM_B将变低,表示同时读出和写入操作并在2至1mux113上采取控制,从而电压VM是从Vcc提供的以及电压VM将不接收UVM的高编程电压。如果至代码空间35的读出是在数据空间37仍然处于写入过程中时启动的,那么,信号UPGM_B将再次变低,引起数据从第二y解码器97输出,它由透明锁存器103锁存,并在开关触排105上维持有效。信号UVM维持施加于开关触排105的适当编程电压。信号UPGM-B上的逻辑低还引起2-1MUX113把Vcc传送到信号Vm上,使得开关触排101将不经历任何高编程电压。开关盒101、第一y解码器96和第二y解码器97然后以以上说明的典型方式响应于读出操作。在代码空间35中要读出的数据的地址被置于地址寄存器93中,后者将适当x地址传送到x解码器95以及将y地址传送到y解码器96和97。

尽管来自x解码器95的输出变化,反映新的x地址,UPGM_B维持通过透明锁存器115激励的数据空间37中的合适字线。因此,开关触排99现在具有两个字线,同时是有效的,第一字线在数据空间37中,由透明锁存器115确定,第二字线在代码空间35中,由x解码器95确定。以相似的方式,开关触排101将选择由第一y解码器96确定的第一组比特线,而开关触排105维持另一组由透明锁存器103确定的比特线。

在这一时间期间,主阵列66正在接收两个分别的比特线组上的两个分别电压电平。为了防止数据空间37的编程与代码空间35的读出之间的任何干扰,在去除传递器件触排73激励的节点122上设置逻辑低。因此代码空间35中的所选字节将其数据通过第一y解码器96和2-1MUX 109传送到感测放大器111,后者读出所选字节并输出数据到I/O框91上。以这一方式,在维持至数据空间37的有效写入操作的同时能够执行从代码空间35的多次读出操作。

透明锁存器103和115具有相似的结构,每一个接收来自各自解码器97或95的解码器输入线,每一个输出一条线到其各自的开关触排105或99上。参考图5,图示出透明锁存器115和103中使用的1位锁存器的例子。正如将会理解的,透明锁存器触排115和103由多个这些1位锁存器组成,每一个锁存器对应于一条线。来自每个各自地址解码器的输入线DEC_in提供给倒相器132的输入。倒相器132的输出通过传递器件134传送到锁存器136。如图所示,传递器件134是通过信号UPGM_B控制的。如果信号UPGM_B高,那么来自倒相器132的信号将被直接传送到锁存器136。锁存器136由两个交叉耦合的倒相器140和138组成。倒相器138的输出通过第二传递器件135传送到输出线。倒相器132开始使解码器输入DEC_in的逻辑信号倒相,但是倒相器138在将信号置于输出线上之前使它换回到其初始状态。如果输出线具有逻辑低,那么高压锁存器142将其维持在地电位上,但是,如果输出线具有逻辑高,那么高压锁存器142将升高输出线上的电压,最高达到UVM或Vm的最大值,这取决于其输入电压是什么。第二传递器件135起隔离栅的作用,以阻止输出线上的高压驱动锁存器136。传递器件135栅极133被维持在接近Vcc的额定电压上,由此阻止其与锁存器136相邻的电极升至比Vcc还高。如果信号UPGM_B变低,那么传递器件134被关闭,以前存储在锁存器136中的数据将维持锁存和持续,只要信号UPGM_B保持低的。

参考图6,图中示出图4的传递控制触排114的内部结构。在图6中,信号UPGM_B被耦合到传递器件124,它发送UPGM_B的逻辑信号到节点122上。正如以前参考图4所描述的,节点122控制传递器件触排73是否隔离还是耦合数据空间37和代码空间35。如果传递器件触排73是将数据空间37耦合至代码空间35,那么它必须接收节点122上的电压,至少与置于数据空间37和代码空间35的列线上的最高电压一样高。因此,高压锁存器126能够把节点122上的电压升高到适当电平,以控制图4的传递器件触排73。通过UVXDR将传递器件124的控制栅极维持在约4伏上,以防止信号UPGM_B被高压锁存器126的任何返回驱动,当节点122的逻辑电平处于逻辑高时它将传送UVM电压值,而当节点122的逻辑电平处于逻辑低时将维持地电位。

因此,当信号UPGM_B是逻辑高时,表示没有发生同时读/写操作,那么节点122的电压值将跟随信号UVM的电压电平的电压值。如果发生读出操作,那么信号UVM将具有Vcc的电压值,节点122也是如此,但是,如果发生程序和擦除操作并且要求比特线具有17伏的高压,那么信号UVM因而和节点122将同样被升高到17伏,以肯定传递器件触排73能够把正确的电压从数据空间37传送到代码空间35,反之亦然。如果发生同时读/写操作,那么信号UPGM_B将具有逻辑低,由此引起节点122的电压下降到地电位,不管信号UVM的值。节点122的地电位去除传递器件触排73的驱动,基本上隔离数据空间37与代码空间35。

参考图7,图中示出把一字节选择线85和比特线74的一字节81从数据空间37耦合到代码空间35的传递器件触排部分布局图。以前在图3-6中所描述的所有元件以相似的参考字符给出以及如上所述。如图所示,从图6的节点122施加到传递器件触排73中所有传递器件128的控制栅极。当节点122为低时,所有的传递器件128被关闭,传递器件触排73有效地隔离数据空间37与代码空间35。当节点122为高时,它将电压从数据空间37发送到代码空间35,反之亦然,最高达到由节点122确定的最大电压电位。例如,如果数据比特线74T具有17伏的电位,那么传递器件128将要求节点122也具有17伏的类似电压,以便于数据空间37的数据比特线74T传送在代码空间35的代码比特线74B上其未衰减的电压。如图所示,传递器件触排73还将电位从数据空间37的数据字节选择线85T传送到代码空间35的代码字节选择线85B,反之亦然。

参考图8,现在将揭示各种电路操作的比特线、字线和字节选择线的所需电压电平。类似于图3的所有这些元件采用相似的参考字符表示并如上所描述。其读出操作期间,浮动栅极器件77的控制栅极接收由感测线79施加的约为0.2*Vcc的典型电压值。感测线79又经过字节选择晶体管83和字节选择线85接收所需电压。字线72接收约为Vcc的电压,表示它被选中并由此驱动字节选择晶体管83和单元选择晶体管75。浮动栅极器件77经选择晶体管75和比特线74读出,后者被耦合至图4的感测放大器111,通常接收约为2伏的额定读出电压。

如果浮动栅极晶体管77没有电荷存储在其浮动栅极中,那么它将具有低的阈值电压Vth并将通过单元选择晶体管75和比特线74传导电流而响应于其控制栅极上的电位。感测放大器111则把电流的流动解译为逻辑0。另一方面,如果浮动栅极晶体管77具有存储在其浮动栅极中的电荷,那么其Vth将高于读出电位。因此,当读出电位施加于其控制栅极时,它将不传导电流,感测放大器111将缺少电流流动解译为逻辑1。

为了改变阈值电压,由此改变存储在浮动栅极晶体管77中的数据,电荷在其浮动栅极上移进和移出。为了升高其阈值电平,字节选择线85被升高到UVM的高电压,设定为17伏的典型值。这要求字线72同样升高到17伏,以便于允许字节选择晶体管83在字节段线79上和在浮动栅极晶体管77的空间栅极上传送17伏电压。同时,将接地线Vs设定为0伏,比特线74也是如此。因此,浮动栅极晶体管77的漏极和源极二者都设定为0伏而其控制栅极设定为17伏。这引起电场,电场通过Nordheim隧道在其浮动栅极上移动电子,由此其阈值电压升高到大大高于Vcc。为了去除浮动栅极晶体管77的电荷,使字节选择线85降低到地电位而字线72升高到17伏,因此强驱动字节选择晶体管83和单元选择晶体管75。感测线79由此使晶体管77的控制栅极接地。比特线74升高到17伏而信号Vs允许浮动,通常升高到8伏。由此电荷通过Nordheim隧道效应从其控制栅极取出。这使其阈值电压比Vcc低很多,在读出操作期间允许电流通过其流动。

参考图9,图中示出存储器67的第二实施例。图9中的所有元件与图4中的元件相似,以相同参考字符给出并如上所描述。图9与图4的最大不同之处在于它使用单个y解码器96与列锁存器触排121相组合来控制在向数据空间37写入的同时从代码空间35的读出。

在没有同时读出和写入操作的情况中,图9的第二实施例以类似于参考图4所揭示的方式进行单个读出操作或者写入操作。在单个读出操作期间,信号R/W设定2至1mux109把y解码器96的输出耦合到感测放大器111。感测放大器111的输出又被耦合到I/O框91,它输出数据。当前操作的地址被存储在地址寄存器93中,x地址93X被传送到x解码器95而y地址93Y被传送到y解码器96。x解码器95经开关盒99将逻辑1置于所选字线上。由开关盒99施加的适当读出电压是通过信号VM确定的。正如在图4的以前例子中一样,在读出操作期间将开关盒101设定为高阻抗,所选的比特线经2至1mux109直接耦合至感测放大器111。

在单个程序操作期间,信号R/W设定I/O框91接收数据,2至1mux109将输入数据耦合至y解码器96。要编程的字节的地址被存储在地址寄存器93中,x地址93X被耦合到x解码器95而y地址93Y被耦合到y解码器96。输入数据通过开关盒101、通过代码空间35、通过传递器件触排73以及通过数据空间37传送,最终存储在列锁存器触排121中。所选行中的新数据的多个字节可以写入到列锁存器触排121中,以致于列锁存器触排121在启动擦除和程序顺序之前能够存储最高达一个存储器页面的新数据。在这一时间期间,x解码器95经开关触排99维持所选字线有效。

由于这是单个程序操作,信号UPGM_B维持高电平,节点122维持高电平。节点122上的电压足以在数据空间37与代码空间35之间传送任何高压,正如以上描述的。一旦要写入的所有数据已经存储在列锁存器121中,那么将适当的擦除和编程电压施加于所选字节,正如由列锁存器触排121确定的。换句话说,列锁存器触排121保持对所选存储器中哪个字节是接收新数据以及哪个字节是被单单留下的跟踪。只有被识别并安排接收新数据的这些字节经受擦除和程序循环。

在同时读出和写入操作期间,通过锁存在当前所选字线中以及经开关触排99维持它施加于数据空间37,透明锁存器115响应于信号UPGM_B,变为低电平。与此同时,x解码器95响应于在代码空间35中为当前读出操作所选的新字线。同样,通过产生低节点122,使传递触排控制114响应于UPGM_B。由此去除对传递器件触排73的驱动以及隔离数据空间37与代码空间35,列锁存器触排121维持施加于所选比特线的适当擦除和程序电压同时代码空间35通过开关盒101和y解码器96读出到感测放大器111。

列锁存器触排121的使用简化了整个体系结构。列电压控制电路123响应于清除信号CLR,芯片写入信号CHPWRT产生两个电压输出,施加在比特线上的BTLN_V和施加在字节选择线上BYTSLCT_V。将BTLN_V和BYTSLCT_V的电压值选择为对数据空间37和代码空间35的合适擦除和编程。当数据或是在单个程序操作期间或是在同时读/写操作期间时,被存储到阵列66中,最高达到整个存储器页面的所有新数据首先被存储在列锁存器触排121中。一旦所有的期待的新数据已经被写入到列锁存器触排121中时,那么它通过将其锁存器触排中的数据传送到数据空间71或是代码空间69中的适当存储器页面中而作出响应。只要接收新数据的这些字节位置经受初始擦除循环。

参考图10,图中示出对于一个字节数据的列锁存器触排121的部分方框图。每个字节选择线85具有其各自的字节选择锁存器149,一个字节中的每个比特线74同样具有各自的单独的锁存器140至147。字节选择锁存器149和比特线锁存器140至147接收三个控制信号,CLR、负载锁存和RECVR,它们一起控制电压的适当切换以及读出和擦除操作所需的定时。适当的电压电平与以上参考图8所描述的电平相同。字节选择锁存器149进一步接收BYTSLCT电压,它载有应当施加到字节选择线85的适当电压。信号BTLN_V载有根据需要可施加于比特线74的适当电压。如果新数据被写入到任何一个比特线锁存器140至147中,字节的各字节选择锁存器149将得到存储在它中的逻辑1。字节选择锁存器149中的逻辑1表示其各自字节接收新数据并由此瞄准擦除和程序循环的各自字节。当逻辑1或逻辑0被置于比特线74上时,适当的比特线锁存器140至147存储所放置的逻辑1或0,为以后编程序列作准备。字节选择锁存器149中的逻辑1表示其相关字节已经被改变。只有在它们的字节选择锁存器149上具有逻辑1的这些字节经受擦除和程序序列。当编程序列开始时,存储逻辑1的这些锁存器140至147对由字节选择线85和所选字线确定的适当字节编程。字节选择锁存器149和比特线锁存器140至147二者具有相似的结构,不同的只是在于接收的电压电平,即BTLN_V或BYTSLCT_V。

参考图11,图中示出用作为字节选择锁存器149或比特线锁存器140至147的锁存器的内部结构。正如从图11看到的,锁存器是用作字节选择线85还是比特线74将表示电压值BTLN_V或BYTSLCT_V中哪一个施加到晶体管159。否则所有的控制信号是相同的。列线162(或为字节选择线85或为比特线74)被耦合至晶体管159。晶体管159的控制栅极受晶体管156以及受锁存器155的控制,后者由交叉耦合倒相器153和151组成。倒相器153和151接收其来自信号UVM的电源电压,以致于当输出逻辑1时,逻辑高电压电平是UVM的电平,而当输出逻辑低时,逻辑电平是地。当晶体管159是有效的时,正如由晶体管156或者两个交叉耦合倒相器153和151确定的,那么或是BYTSLCT_V或是BTLN_V的适当电压电平在列线162上被传送。

在操作中,列线162开始时将具有接近地电位。同样地,锁存器155的输出开始时通过信号CLR被清除,后者驱动晶体管156并使倒相器153的输出接地同时使晶体管截止并隔离列线162与适当功率电压输入BTLN_V或BYTSLCT_V。当倒相器153的输出被接地时,信号CLR返回到低,因此晶体管156截止并允许锁存器155维持施加到晶体管159控制栅极的地电位。因此列锁存器开始时具有所存储逻辑0并通过晶体管159截止与比特线隔离。

如果数据要写入到锁存器中,列线162将接收逻辑高或是逻辑低,这取决于是写入1还是写入0。一旦所选逻辑电平已经被置于列线162中,那么促使信号负载锁存器为高,引起晶体管157把数据从列线162传送到锁存器155的输入上。如果列线162具有逻辑低,那么倒相器151通过迫使倒相器153维持晶体管159上逻辑低因此使其截止而作出响应。一个字节已经被擦除以及编程序列开始后,列线162将与晶体管159漏极158上任何编程电压基本隔离,比特将维持其逻辑电平不变。但是,如果列线162具有逻辑高,那么,晶体管157将逻辑高传送到倒相器151的输入并在倒相器153的输出处锁定在逻辑1中。倒相器153的输出处的逻辑高引起晶体管159把列线162耦合至其适当电压电平,BTLN_V或BYTSLCT_V,其晶体管159的漏极158上。当编程或擦除顺序开始时,漏极158将接收适当电压电平,它又被传送到列线162,由此到存储器阵列66的字节中的所选位。以这一方式,整个存储器页面的数据能够首先被载入到列锁存器触排121中,然后在单个写入循环中同时被编程到存储器阵列66的行中。

在编程或擦除序列结束时,启动恢复序列,以去除列线或比特线或字节选择线上的任何杂散电压。恢复序列将逻辑高置于信号RECVR,它激励晶体管161并将列线162接地。同样,信号CLR也被拉高,因此激励晶体管156并在倒相器153的输出端锁存在逻辑低中。这引起锁存器155在晶体管159的控制栅极上维持逻辑低,由此隔离列线162与在其漏极158的电压电平。然后锁存器准备接收新数据。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号