用于系统芯片集成的通用非易失性存储器控制装置.pdf

上传人:t**** 文档编号:1574109 上传时间:2018-06-25 格式:PDF 页数:20 大小:4.49MB
返回 下载 相关 举报
摘要
申请专利号:

CN201210386684.4

申请日:

2012.10.12

公开号:

CN102999453A

公开日:

2013.03.27

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 13/16申请日:20121012|||公开

IPC分类号:

G06F13/16

主分类号:

G06F13/16

申请人:

杭州中天微系统有限公司

发明人:

葛海通; 王钰博; 马德; 严晓浪

地址:

310012 浙江省杭州市西湖区华星路99号创业大厦A409

优先权:

专利代理机构:

杭州天正专利事务所有限公司 33201

代理人:

王兵;王利强

PDF下载: PDF下载
内容摘要

一种用于系统芯片集成的通用非易失性存储器控制装置,所述控制装置包括外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元,其中,外部总线接口单元,用于采集外部总线的控制信号及数据,并进行分析;寄存器控制单元,用于对所有寄存器进行读写控制,寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用;擦写单元,用于处理外部总线接口单元传来总线信号;存储控制与接口单元包含两个有限状态机;一个是写数据宽度转换状态机;另一个是主控状态机,用于对多种非易失性存储器进行读、写、擦控制。本发明提供一种兼容性良好、简化设计过程的用于系统芯片集成的通用非易失性存储器控制装置。

权利要求书

权利要求书一种用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述控制装置包括外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元,其中,
外部总线接口单元,用于采集外部总线的控制信号及数据,并进行分析:如果是访问控制寄存器,将总线信号传入寄存器控制单元;如果是对非易失性存储单元进行读操作,将总线信号传给存储控制与接口单元,实现对非易失性存储单元的读操作;如果是对非易失性存储单元进行写操作,将总线信号传给擦写单元;
寄存器控制单元,用于对所有寄存器进行读写控制,所述所有寄存器包括OTP工作模式寄存器、EFLASH工作模式寄存器、EEPROM工作模式寄存器、OTP时序控制寄存器、EFLASH时序控制寄存器、EEPROM时序控制寄存器和虚拟时序模拟寄存器,寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用;
擦写单元,用于处理外部总线接口单元传来总线信号;
存储控制与接口单元包含两个有限状态机;一个是写数据宽度转换状态机,用于当非易失性存储器的数据宽度以及虚拟非易失性存储器模拟的数据宽度为16位或8位时,根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器;
另一个是主控状态机,用于对多种类型、多种数据宽度非易失性存储器进行读、写、擦控制,所述类型为EFLASH、OTP和EEPROM,所述数据宽度为8位、16位、32位和64位,同时还通过2片支持字节访问的32位SRAM对多种类型、多种数据宽度非易失性存储器的真实读、写、擦时序进行模拟,成为虚拟非易失性存储器控制器。
如权利要求1所述的用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述擦写单元中,当进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据、数据大小信息截取出来并进行处理,产生本次总线写操作所对应的页内地址、字节有效信息以及本次页写操作的页地址,同时对本次页写或连续写操作的数据总量信息进行累加;这些信息连同每次总线写操作的写数据一起暂存入FIFO和寄存器中,当存储控制与接口单元中的有限状态机需要时输出给存储控制与接口单元。
如权利要求1或2所述的用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述寄存器控制单元中,所述所有寄存器还包括状态寄存器,用于反映当前控制存储控制与接口单元中主控状态机的工作状态。
如权利要求1或2所述的用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述虚拟时序模拟寄存器包括读时序模拟寄存器、写时序模拟寄存器、页擦时序模拟寄存器和全片擦时序模拟寄存器,当作为虚拟非易失性存储器控制器时用于模拟访问非易失性存储器的读取延时、写延时、页擦延时以及全片擦延时。

说明书

说明书用于系统芯片集成的通用非易失性存储器控制装置
技术领域
本发明涉及属于系统芯片(SoC)集成设计领域,具体涉及一种高兼容性的用于系统芯片集成的通用非易失性存储器控制装置。
背景技术
随着集成电路制造水平的不断提高,设计者可以在单芯片上集成几百万门的复杂系统,即片上系统(System‑On‑Chip)。近年来,SoC已经成为当今集成电路设计的主流方向,为了满足越来越多样化的各种实际应用的需求,作为存储数据的重要器件,多种类型的非易失性存储器(Non‑Volatile‑Memory)也在被逐步集成到SoC芯片内部。这些非易失性存储器包括OTP、EEPROM、FLASH等。
不同类型的非易失性存储器通常具有不同的控制信号和时序要求,因此,针对不同的非易失性存储器,往往需要设计不同的存储器控制器,以满足对特定类型非易失性存储器的控制。同时,为了达到对该非易失性存储器控制器真实仿真的目的,还需要额外设计非常有针对性的仿真控制器来实现仿真。
很多情况下,同一系列的SoC芯片大部分组件几乎完全相同,也许仅仅是其中的非易失性存储器的容量或类型不同,但却需要重新设计开发不同的存储器控制器以及相应的仿真控制器来满足要求。这个过程中,即花费了大量的人力、物力和时间,同时也延误了SoC芯片产品的推广和软件开发的时间。
发明内容
为了克服已有非易失性存储器的兼容性较差、设计过程复杂的不足,本发明提供一种兼容性良好、简化设计过程的用于系统芯片集成的通用非易失性存储器控制装置。
本发明解决其技术问题所采用的技术方案是:
一种用于系统芯片集成的通用非易失性存储器控制装置,所述控制装置包括外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元,其中,
外部总线接口单元,用于采集外部总线的控制信号及数据,并进行分析:如果是访问控制寄存器,将总线信号传入寄存器控制单元;如果是对非易失性存储单元进行读操作,将总线信号传给存储控制与接口单元,实现对非易失性存储单元的读操作;如果是对非易失性存储单元进行写操作,将总线信号传给擦写单元;
寄存器控制单元,用于对所有寄存器进行读写控制,所述所有寄存器包括OTP工作模式寄存器、EFLASH工作模式寄存器、EEPROM工作模式寄存器、OTP时序控制寄存器、EFLASH时序控制寄存器、EEPROM时序控制寄存器和虚拟时序模拟寄存器,寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用;
擦写单元,用于处理外部总线接口单元传来的总线信号;
存储控制与接口单元包含两个有限状态机;一个是写数据宽度转换状态机,用于当非易失性存储器的数据宽度以及虚拟非易失性存储器模拟的数据宽度为16位或8位时,根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器;
另一个是主控状态机,用于对多种类型、多种数据宽度非易失性存储器进行读、写、擦控制,所述类型为EFLASH、OTP和EEPROM,所述数据宽度为8位、16位、32位和64位,同时还通过2片支持字节访问的32位SRAM对多种类型、多种数据宽度非易失性存储器的真实读、写、擦时序进行模拟,成为虚拟非易失性存储器控制器。
进一步,所述擦写单元中,当进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据、数据大小信息截取出来并进行处理,产生本次总线写操作所对应的页内地址、字节有效信息(仅当数据宽度为16位或8位时使用)以及本次页写操作(EEPROM页写操作时,一次页写操作中可以执行多次总线写操作)的页地址,同时对本次页写或连续写操作的数据总量信息进行累加;这些信息连同每次总线写操作的写数据一起暂存入FIFO和寄存器中,当存储控制与接口单元中的有限状态机需要时输出给存储控制与接口单元。
更进一步,所述寄存器控制单元中,所述所有寄存器还包括状态寄存器,用于反映当前控制存储控制与接口单元中主控状态机的工作状态。
所述虚拟时序模拟寄存器包括读时序模拟寄存器、写时序模拟寄存器、页擦时序模拟寄存器和全片擦时序模拟寄存器,当做为虚拟非易失性存储器控制器时可用于模拟非易失性存储器的读取延时、写延时、页擦延时以及全片擦延时。
本发明的技术构思为:通过硬件配置,既可以支持对多种非易失性存储器的读、写、擦控制,也可以通过SRAM实现对多种非易失性存储器真实读、写、擦时序的模拟,成为虚拟非易失性存储器控制器,用于目标芯片的仿真以及测试芯片的评估。具体特征如下:
1)支持32位AHB总线接口,系统芯片集成时可以将多种非易失性存储器连接到AHB总线上,从而通过外部总线对多种非易失性存储器进行访问和控制。通过硬件配置,支持的非易失性存储器类型包括OTP、EFLASH以及EEPROM。
2)当控制OTP时,支持读以及连续写功能,所谓连续写是指在一次OTP的写操作中可以写入多个数据。
3)当控制EFLASH时,支持读、单数据写、页擦以及全片擦功能,所谓单数据写是指在一次EFLASH的写操作中写入一个数据,所谓页擦是指一次性将EFLASH的一页擦为全“1”,所谓全片擦是指一次性将全片EFLASH擦为全“1”。
4)当控制EEPROM时,支持读、页写以及全片擦功能。所谓页写是指在一次EEPROM的写操作中可以写入同一页内的多个数据,所谓全片擦是指一次性将全片EEPROM擦为全“1”。
5)通过硬件配置,支持多种数据宽度的非易失性存储器,包括8位、16位、32位以及64位。
6)通过硬件配置,除了支持对多种非易失性存储器的读、写、擦控制,还可以通过两片支持字节访问的32位SRAM实现对多种类型、多种数据宽度非易失性存储器真实读、写、擦时序的模拟,成为虚拟非易失性存储器控制器。当作为虚拟非易失性存储器控制器时,可以根据外部数据宽度引脚的控制,无需更换SRAM便可实现对8位、16位、32位以及64位数据宽度的非易失性存储器的模拟。 
7)当存储器数据宽度为8位时支持总线的字、半字、字节操作;当存储器数据宽度为16位时支持总线的字、半字操作;当存储器数据宽度为16位时支持总线的字操作;当存储器数据宽度为64位时支持总线的字读操作,此时总线写操作要求以一个双字为单位写入数据(由于外部总线为32位宽度,所以要求通过两次总线写操作写入双字中的两个字);
8)统一了外部总线对不同类型非易失性存储器的编程方式,便于用户软件开发。无论是作为OTP、EEPROM、EFLASH控制器,还是虚拟非易失性存储器控制器,外部总线对非易失性存储器的写操作统一简化为三步:首先对需要写入的地址进行正常的总线写操作(如果是OTP或者EEPROM,则可以在一次写操作中通过多次总线写操作写入多个数据);再配置工作模式寄存器发起写请求;最后查询寄存器控制单元中的状态寄存器直到状态空闲。
本发明的有益效果主要表现在:兼容性良好、简化设计过程。
附图说明
图1是非易失性存储器控制器架构。
图2是擦写单元结构(存储器数据宽度为64位)。
图3是擦写单元结构(存储器数据宽度为32位)。
图4是擦写单元结构(存储器数据宽度为16位或8位)。
图5是虚拟非易失性存储器控制器SRAM结构(模拟数据宽度为64位)。
图6 是虚拟非易失性存储器控制器SRAM结构(模拟数据宽度为16位或8位)。
图7是写数据宽度转换状态机。
图8是主控状态机。
图9是主控状态机状态转换(控制OTP时)。
图10是主控状态机状态转换(控制EEPROM时)。
图11是主控状态机状态转换(控制EFLASH时)。
图12是主控状态机状态转换(作为虚拟非易失性存储器控制器时)。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图1~图12,一种用于系统芯片集成的通用非易失性存储器控制装置,包含外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元。通过这些单元的协同工作,实现对多种非易失性存储器的兼容以及对多种非易失性存储器的模拟:
外部总线接口单元负责采集外部总线的控制信号及数据,并进行分析:如果是访问控制寄存器,将总线信号传入寄存器控制单元;如果是对非易失性存储单元进行读操作,将总线信号传给存储控制与接口单元,实现对非易失性存储单元的读操作;如果是对非易失性存储单元进行写操作,将总线信号传给擦写单元。
寄存器控制单元负责对该非易失性存储器控制器的所有寄存器进行读写控制,包括OTP工作模式寄存器、EFLASH工作模式寄存器、EEPROM工作模式寄存器、OTP时序控制寄存器、EFLASH时序控制寄存器、EEPROM时序控制寄存器、虚拟时序模拟寄存器(包括读时序模拟寄存器、写时序模拟寄存器、页擦时序模拟寄存器以及全片擦时序模拟寄存器,用于模拟非易失性存储器的读取延时、写延时、页擦延时、全片擦延时)等,这些寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用。此外,还包括状态寄存器,用于反映当前控制存储控制与接口单元中主控状态机的工作状态。
擦写单元负责处理外部总线接口单元传来总线信号。当进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据、数据大小信息截取出来并进行处理,产生本次总线写操作所对应的页内地址、字节有效信息(仅当数据宽度为16位或8位时使用)以及本次页写操作(EEPROM页写操作时,一次页写操作中可以执行多次总线写操作)的页地址,同时对本次页写或连续写操作的数据总量信息进行累加;这些信息连同每次总线写操作的写数据一起暂存入FIFO和寄存器中,当存储控制与接口单元中的有限状态机需要时输出给存储控制与接口单元。由于使用了FIFO,用户可在一次非易失性存储器的写操作中进行多次总线写操作,从而将多个写地址、写数据以及写字节有效信息依次存入FIFO中,以支持EEPROM的页写操作和OTP的连续写操作。
存储控制与接口单元包含两个有限状态机:
一个是写数据宽度转换状态机,其主要功能是:当非易失性存储器的数据宽度以及虚拟非易失性存储器模拟的数据宽度为16位或8位时,根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器。
另一个是主控状态机,负责对多种非易失性存储器进行读、写、擦控制,并且实现通过2片支持字节访问的32位SRAM对多种非易失性存储器的真实读、写、擦时序进行模拟。
如发明内容中所述,本非易失性存储器控制器将外部总线对非易失性存储器的写操作统一简化为三个步骤,此功能主要由擦写单元实现。如图2、图3、图4所示,擦写单元负责处理外部总线接口单元传来总线信号。其工作原理如下:
1)当执行非易失性存储器写操作步骤之1,即进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据以及数据大小信息(字节、半字或字)截取出来并进行处理,暂存入FIFO和寄存器中。
2)1)中所指的寄存器包括页地址寄存器和写数据量计数器。前者根据本次非易失性存储器写操作中第一次总线写操作的写地址记录本次非易失性存储器写操作的页地址(由于OTP没有页的概念,所以控制OTP时没有此寄存器,地址全部记录在地址FIFO中);后者记录FIFO中的数据量,计数单位为当前存储器的数据宽度或者虚拟非易失性存储器模拟的数据宽度。
3)1)中所指的FIFO包括数据FIFO、地址FIFO以及字节有效FIFO,主要功能是:在OTP的连续写、EEPROM的页写以及通过SRAM实现的相应的模拟操作中,用户可在一次非易失性存储器的写操作中进行多次总线写操作,从而将多个页内地址、写数据以及写字节有效信息(当存储器数据宽度为16位或8位时使用)依次存入FIFO中。
4)数据FIFO的宽度为32位,字节有效FIFO的宽度为4位(分别对应32位数据的4个字节)。当进行EEPROM写操作时,由于一次写操作最多可写一页,所以地址FIFO的宽度和各FIFO的深度可根据非易失性存储器的页大小配置;当进行EFLASH写操作时,由于一次只能写入一个数据,所以此时FIFO的深度为1,地址FIFO的宽度根据EFLASH页大小配置;当进行OTP连续写操作时,由于没有页的概念,所以此时各FIFO的深度不做限制,可根据用户需求定义,地址FIFO的宽度根据OTP存储器的大小配置,写地址全部记录在地址FIFO中。
5)当执行非易失性存储器写操作步骤之2,即配置工作模式寄存器发起写请求时,存储控制与接口单元中的有限状态机启动。当有限状态机执行到相应状态时,擦写单元将页内地址、写数据、字节有效信息按照总线写入时的顺序依次取出,连同页地址、数据总量等信息一起传给存储控制与接口单元。
6)当执行非易失性存储器写操作步骤之3,即查询状态寄存器,直到存储控制与接口单元中的有限状态机运行结束。
为了支持多种数据宽度的写入,包括64位、32位、16位以及8位,擦写单元的FIFO可以通过硬件配置实现不同的结构:
1)当非易失性存储器的数据宽度为64位时,如图2所示,擦写单元包含两个并联的32位数据FIFO以及一个地址FIFO,此时要求外部总线以一个双字为单位写入数据(由于外部总线为32位宽度,所以要求通过两次总线写操作写入双字中的两个字),两个并联的32位数据FIFO会分别存入这两次总线写操作中的数据,即双字中的两个字,同时地址FIFO截取这两次总线写操作中的一次,得到并存入此双字对应的页内地址(由于64位对齐,所以2到0位略去)。当存储控制与接口单元中的有限状态机需要时将64位写数据以及写地址(包括页地址与页内地址)一起按照总线写入时的顺序依次传给存储控制与接口单元。
2)当非易失性存储器的数据宽度为32位时,如图3所示,擦写单元包含一个32位数据FIFO以及一个地址FIFO,当外部总线写入数据时,会将写数据与写地址分别存入数据FIFO和地址FIFO,当存储控制与接口单元中的有限状态机需要时将32位写数据以及写地址(包括页地址与页内地址)一起按照总线写入时的顺序依次传给存储控制与接口单元。
3)当非易失性存储器的数据宽度为16位或8位时,如图4所示,擦写单元包含一个32位数据FIFO、一个地址FIFO以及一个4位字节有效FIFO,当外部总线写入数据时,会将写数据与写地址分别存入数据FIFO和地址FIFO,同时通过综合处理总线写地址的低两位和数据大小信息(AHB总线的数据大小信息为hsize,反映了当前总线写操作为字节、半字或字),得到这32位写数据所对应的字节有效信息,存入字节有效FIFO,当存储控制与接口单元中的有限状态机需要时将32位写数据、写地址(包括页地址与页内地址)以及字节有效信息一起按照总线写入时的顺序依次传给存储控制与接口单元。
4)当作为虚拟非易失性存储器控制器时,擦写单元包含两个32位数据FIFO、一个地址FIFO以及一个4位字节有效FIFO。此时根据外部数据宽度引脚的控制,可以实现1)、2)或者3)中的结构,从而实现对8位、16位、32位以及64位数据宽度的模拟。
当本非易失性存储器控制器通过硬件配置成为虚拟非易失性存储器控制器时,存储控制与接口单元不仅包含写数据宽度转换状态机和主控状态机,还包括对两片支持字节访问的32位SRAM的控制逻辑。此时由外部数据宽度引脚控制,可以实现对8位、16位、32位以及64位数据宽度的模拟,无需更换SRAM,具体方式如下,
1)当外部数据宽度引脚表示64位时,如图5,这两片SRAM的片选信号CEN0和CEN1同源,访问地址经过64位对齐处理(写地址来自擦写单元,读地址来自外部总线接口单元),此时两片SRAM成并联关系,相当于一整片64位的SRAM,从而实现对64位非易失性存储器的模拟。
2)当外部数据宽度引脚表示32位、16位或者8位时,如图6,访问地址经过32位对齐处理(写地址来自擦写单元,读地址来自外部总线接口单元),而这两片SRAM的片选信号CEN0和CEN1由访问地址的最高位控制。当访问前半部分空间,即访问地址的最高位为0时,访问SRAM1,否则访问SRAM2,此时两片SRAM成串联关系,相当于一整片32位的SRAM,从而实现对32位非易失性存储器的模拟。由于支持字节访问的32位SRAM包含4位写使能信号WEN,分别对应32位数据的4个字节,因此当模拟16位或者8位数据宽度时,虽然输入为32位数据,但通过擦写单元中字节有效FIFO输出的4位字节有效信息分别控制这4位写使能信号,如图6所示,可以使32位的SRAM以16位或者8位的方式写入,从而实现对16位或者8位非易失性存储器的模拟。
存储控制与接口单元中的写数据宽度转换状态机主要用于对写数据宽度的转换。当非易失性存储器的数据宽度为16位或8位时,该状态机根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器。(当作为虚拟非易失性存储器控制器模拟16位或8位数据宽度时,如图6,由于SRAM和数据FIFO都为32位,所以此时写数据宽度转换状态机不需要工作,用擦写单元中字节有效FIFO输出的4位字节有效信息分别控制这4位写使能信号,即可实现对16位或者8位存储器写操作的模拟)
具体状态转换如图7所示:
IDLE:无写入操作时,状态机默认为IDLE状态。当主控状态机请求写数据和写地址时,如果存储器数据宽度为16位,状态机进入16_POP1状态;如果存储器数据宽度为16位,状态机进入8_POP1状态。
16_POP1:此时从数据FIFO中弹出(POP)一个32位写数据,从地址FIFO中弹出一个写地址,从字节有效FIFO中弹出一个4位的字节有效信息。并根据字节有效信息判断此次对应的总线写操作是字还是半字写入:
如果是字写入,即四个字节都有效,那么先将前两个字节(16位)及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入16_W_POP2状态。
如果是半字写入,即只有两个字节有效,那么将这两个字节及对应的写地址传给主控状态机。当主控状态机再次请求写数据时,状态机重新进入16_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。
16_W_POP2:此时将四个有效字节中的后两个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机重新进入16_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。
8_POP1:此时从数据FIFO中弹出(POP)一个32位写数据,从地址FIFO中弹出一个写地址,从字节有效FIFO中弹出一个4位的字节有效信息。并根据字节有效信息判断此次对应的总线写操作是字、半字还是字节写入:
如果是字写入,即四个字节都有效,那么先将第一个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_W_POP2状态。
如果是半字写入,即两个字节有效,那么先将这两个字节中的第一个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_HW_POP2状态。
如果是字节写入,即只有一个字节有效,那么将这个字节及对应的写地址传给主控状态机。当主控状态机再次请求写数据时,状态机重新进入8_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。
8_W_POP2:此时将四个有效字节中的第二个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_W_POP3状态。
8_W_POP3:此时将四个有效字节中的第三个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_W_POP4状态。
8_W_POP4:此时将将四个有效字节中的第四个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机重新进入8_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。
8_HW_POP2:此时将两个有效字节中的第二个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机重新进入8_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。
由于以上写数据宽度转换状态机的存在,实现了对多种数据宽度写操作的支持,而为了支持对多种数据宽度的读操作,这部分功能主要通过存储控制与接口单元中的主控状态机以及缓冲寄存器实现:
1)如果存储器数据宽度为64位,即一次读操作读取64位数据,则将其中总线需要的32位数据回复给外部总线,并将这64位数据及其地址暂存入存储控制与接口单元中的缓冲寄存器中。当再次读取存储器时,判断读取地址与缓冲寄存器中的地址是否为同一个双字,如果是,则直接从缓冲寄存器中读取需要的32位数据,以提高访问速度。
2)如果存储器数据宽度为32位,即一次读操作读取32位数据,则READ状态结束时直接将这32位数据回复给外部总线。
3)如果存储器数据宽度为16位,即一次读操作读取16位数据,则主控状态机判断总线的数据大小信息:若为读半字,则执行一次读操作后将这16位数据补齐回复给外部总线(当为虚拟非易失性存储器时,由于SRAM实际仍为32位,所以直接将这32位数据回复给外部总线即可);若为读全字,则主控状态机对存储器连续执行两次读操作,将读取的32位数据回复给外部总线(当为虚拟非易失性存储器时,为了真实模拟读操作,也连续执行两次读操作,最后将读取的32位数据回复给外部总线)。
4)如果存储器数据宽度为8位,即一次读操作读取8位数据,则主控状态机判断总线的数据大小信息:若为读字节,则执行一次读操作后将这8位数据补齐回复给外部总线(当为虚拟非易失性存储器时,由于SRAM实际仍为32位,所以直接将这32位数据回复给外部总线);若为读半字,则连续执行两次读操作,将读取的16位数据补齐回复给外部总线(当为虚拟非易失性存储器时,为了真实模拟读操作,也连续执行两次读操作,最后将读取的32位数据回复给外部总线);若为读全字,则主控状态机对存储器连续执行四次读操作,将读取的32位数据回复给外部总线(当为虚拟非易失性存储器时,为了真实模拟读操作,也连续执行四次读操作,最后将读取的32位数据回复给外部总线)。
存储控制与接口单元中的主控状态机具有较高的兼容性,用于实现对多种非易失性存储器的控制以及通过SRAM对多种非易失性存储器的读写擦时序进行模拟。主控状态机的结构如图8所示,下面按照不同的配置进行详细说明。
1)当控制OTP时,主控状态机支持读以及连续写功能,此时状态转换如图9的所示:
IDLE:无任何操作时,状态机默认为IDLE状态。此时OTP的片选信号PCEB、写使能信号PWEB以及输出使能信号POEB无效,模式信号PTM[2:0]为等待模式。当用户通过外部总线将寄存器控制单元中的OTP工作模式寄存器配置为写模式时,对OTP的写操作开始,状态机进入WEPRE状态;当外部总线通过外部总线接口单元发起读请求时,对OTP的读操作开始,状态机进入RPRE状态。
WEPRE:此时将写地址和写数据(如果数据宽度为64位或32位,由地址FIFO和数据FIFO输出;如果为16位或8位,由写地址转换状态机输出)传给OTP,并将OTP的片选信号PCEB置为有效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“CMOD”状态。
CMOD:此时维持OTP的片选信号PCEB为有效,并将OTP的模式信号PTM[2:0]置为编程模式。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“WE”状态。
WE: 此时维持OTP的片选信号PCEB为有效,维持OTP的模式信号PTM[2:0]为编程模式,并将OTP的写使能信号PWEB置为有效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“WD”状态。
WD:此时维持OTP的片选信号PCEB为有效,维持OTP的模式信号PTM[2:0]为编程模式,并将OTP的写使能信号PWEB置为无效。同时根据擦写单元中的写数据量计数器判断此时FIFO中是否还有数据,若没有,则进入“WES”状态,否则,进入“NW”状态开始下一个数据的写入过程。
NW:此时开始下一个数据的写入过程,维持OTP的片选信号PCEB为有效,维持写使能信号PWEB为无效,维持OTP的模式信号PTM[2:0]为编程模式,并将下一个写地址和写数据(如果为64位或32位,则由地址FIFO和数据FIFO输出;如果为16位或8位,则由写地址转换状态机输出)传给OTP。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机再次进入“WE”状态。
WES:此时维持OTP的片选信号PCEB为有效,维持写使能信号PWEB为无效,维持OTP的模式信号PTM[2:0]为编程模式。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“CD”状态。
CD:此时维持OTP的模式信号PTM[2:0]为编程模式,维持OTP的写使能信号PWEB置为无效,并将OTP的片选信号PCEB置为无效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“WAIT”状态。
WAIT:维持OTP的片选信号PCEB和写使能信号PWEB为无效,并将OTP的模式信号PTM[2:0]重新置回等待模式,此时OTP进入编程修复状态(Program Recovery)。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机返回“IDLE”状态,写操作完成。
RPRE:此时将OTP的片选信号PCEB和输出使能信号POEB置为有效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“READ”状态。
READ:此时维持OTP的片选信号PCEB和输出使能信号POEB为有效,并将读地址输出传给OTP。根据寄存器控制单元中的OTP时序控制寄存器(按照OTP的时序要求配置)计算OTP的输出数据何时有效,当输出数据有效时,若数据宽度是64位或者32位,则输出数据回复给总线并返回IDLE状态;若数据宽度是16位或者8位,则根据前文所述选择将数据回复给总线或者继续执行读操作。
2)当控制EEPROM时,主控状态机支持读、页写以及全片擦功能,此时状态转换如图10的所示:
IDLE:无任何操作时,状态机默认为IDLE状态。此时EEPROM的片选信号CEN、擦写使能信号WEN、擦写开始信号WS、输出使能信号OEN无效以及全片擦使能信号CHER无效。当用户将寄存器控制单元中的EEPROM工作模式寄存器配置为页写或全擦模式时,对EEPROM的擦写操作开始,状态机进入WEPRE状态,此时若当前EEPROM工作模式为全擦,则全片擦使能信号CHER在整个擦写过程中有效;当外部总线通过外部总线接口单元发起读请求时,对EEPROM的读操作开始,状态机进入READ状态。
WEPRE:此时将EEPROM的片选信号CEN置为有效,同时判断:
若当前EEPROM工作模式为页写,则将写地址和写数据(当数据宽度为64位或32位时,由擦写单元输出;当为16位或8位时,由写地址转换状态机输出)传给EEPROM;
若当前EEPROM工作模式为全片擦,则不传递写地址与写数据。
根据寄存器控制单元中的EEPROM时序控制寄存器所规定的延时(按照EEPROM的时序要求配置),一定时间后,状态机进入“WE”状态。
WE: 此时维持EEPROM的片选信号CEN为有效,并将EEPROM的擦写使能信号WEN置为有效。根据寄存器控制单元中的EEPROM时序控制寄存器所规定的延时(按照EEPROM的时序要求配置),一定时间后,状态机进入“WD”状态。
WD:此时维持EEPROM的片选信号CEN为有效,并将EEPROM的擦写使能信号WEN置为无效。同时判断:
若当前EEPROM工作模式为全片擦,则进入“WES”状态;
若当前EEPROM工作模式为页写,则根据擦写单元中的写数据量计数器判断此时FIFO中是否还有数据,若没有,则进入“WES”状态,否则,进入“NW”状态开始下一个数据的写入过程。
NW:此时开始下一个数据的写入过程,维持EEPROM的片选信号CEN为有效,维持擦写使能信号WEN为无效,并将下一个写地址和写数据(如果为64位或32位,则由地址FIFO和数据FIFO输出;如果为16位或8位,则由写地址转换状态机输出)传给EEPROM。根据寄存器控制单元中的EEPROM时序控制寄存器所规定的延时(按照EEPROM的时序要求配置),一定时间后,状态机再次进入“WE”状态。
WES:维持EEPROM的片选信号CEN为有效,维持擦写使能信号WEN为无效,并将EEPROM的擦写开始信号WS置为有效,此时EEPROM进入自我擦写状态。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照EEPROM的时序要求配置),一定时间后,主控状态机进入“WAIT”状态。
WAIT:此时维持EEPROM的片选信号CEN为有效,维持擦写使能信号WEN为无效,并将EEPROM的擦写开始信号WS置为无效。此时等待EEPROM的擦写成功信号READY有效时,状态机返回“IDLE”状态,擦写操作完成。
READ: 此时将EEPROM的片选信号CEN和输出使能信号OEN置为有效,并将读地址输出传给EEPROM。同时根据寄存器控制单元中的EEPROM时序控制寄存器(按照EEPROM的时序要求配置)计算EEPROM的输出数据何时有效,当输出数据有效时,若数据宽度是64位或者32位,则输出数据回复给总线并返回IDLE状态;若数据宽度是16位或者8位,则根据前文所述选择将数据回复给总线或者继续执行读操作。
3)当控制EFLASH时,主控状态机支持读、单数据写、页擦以及全片擦功能,此时状态转换如图11的所示:
IDLE:无任何操作时,状态机默认为IDLE状态。此时EFLASH的片选信号IFREN、地址使能信号AE、擦写开始信号NVSTR、输出使能信号OEN、写使能信号PROG、页擦使能信号SERA以及全片擦使能信号MASE无效。当用户通过外部总线将寄存器控制单元中的EFLASH工作模式寄存器配置为单数据写、页擦或全擦模式时,对EFLASH的擦写操作开始,状态机进入WEPRE状态;当外部总线通过外部总线接口单元发起读请求时,对EFLASH的读操作开始,状态机进入RPRE状态。
WEPRE:此时将EFLASH的片选信号IFREN置为有效,同时判断:
若当前EFLASH工作模式为单数据写,则将写地址和写数据(当数据宽度为64位或32位时,由地址FIFO和数据FIFO输出;当为16位或8位时,由写地址转换状态机输出)传给EFLASH,并将EFLASH的写使能信号PROG置为有效;
若当前EFLASH工作模式为页擦,则将页地址(由擦写单元的页地址寄存器输出)传给EFLASH,并将EFLASH的页擦使能信号SERA置为有效;
若当前EFLASH工作模式为全片擦,则将EFLASH的全片擦使能信号MASE置为有效;
根据寄存器控制单元中的EEPROM时序控制寄存器所规定的延时(按照EFLASH的时序要求配置),一定时间后,状态机进入“WE”状态。
WE: 此时维持EFLASH的片选信号IFREN为有效,并按照WEPRE 状态的判断,维持EFLASH的写使能信号PROG、页擦使能信号SERA或者全片擦使能信号MASE为有效,同时将EFLASH的地址使能信号AE置为有效。根据寄存器控制单元中的EEPROM时序控制寄存器所规定的延时(按照EFLASH的时序要求配置),一定时间后,状态机进入“WAIT”状态。
WAIT:此时将EFLASH的片选信号IFREN、地址使能信号AE、写使能信号PROG、页擦使能信号SERA以及全片擦使能信号MASE置为无效,并将EFLASH的擦写开始信号NVSTR置为有效,此时EFLASH进入自我擦写状态。根据寄存器控制单元中的EFLASH时序控制寄存器所规定的延时(按照EFLASH的时序要求配置),一定时间后,状态机返回“IDLE”状态,擦写操作完成。
RPRE:此时将EFLASH的片选信号IFREN置为有效,并将读地址输出传给EFLASH。根据寄存器控制单元中的EFLASH时序控制寄存器所规定的延时(按照EFLASH的时序要求配置),一定时间后,状态机进入“READ”状态。
READ: 此时维持EFLASH的片选信号IFREN为有效,并将EFLASH的地址使能信号AE和输出使能信号OE置为有效。同时根据寄存器控制单元中的EFLASH时序控制寄存器(按照EFLASH的时序要求配置)计算EFLASH的输出数据何时有效,当输出数据有效时,若数据宽度是64位或者32位,则输出数据回复给总线并返回IDLE状态;若数据宽度是16位或者8位,则根据前文所述选择将数据回复给总线或者继续执行读操作。
4)当作为虚拟非易失性存储器控制器时,主控状态机通过SRAM模拟OTP、EEPROM或者EFLASH的读、写、擦时序,包括读、单数据写、连续写、页写、页擦以及全片擦功能。此时状态转换如图12的所示:
IDLE:无任何操作时,状态机默认为IDLE状态。当用户通过外部总线将寄存器控制单元中的OTP、EEPROM或者EFLASH工作模式寄存器配置为擦写模式时,对非易失性存储器的模拟擦写操作开始,状态机进入WEPRE状态;当外部总线通过外部总线接口单元发起读请求时,对非易失性存储器的模拟读操作开始,状态机进入RPRE状态。
WEPRE:此时判断OTP、EEPROM或者EFLASH工作模式寄存器的工作模式:
若为单数据写、连续写或页写模式,则根据擦写单元输出的写数据和写地址,将数据写入SRAM,并根据擦写单元中的写数据量计数器判断此时FIFO中是否还有数据,若仍有数据,向擦写单元的FIFO请求新的数据并写入SRAM,如此循环,直到FIFO中的所有数据都存入SRAM,便进入“WAIT”状态(当用户在一次非易失性存储器写操作中只执行了一次总线写操作,即可模拟单数据写);
若为页擦模式,则将数据1循环写入擦写单元中页地址寄存器所指定的SRAM区域,模拟页擦,随后进入“WAIT”状态;
若为全片擦模式,则将数据1循环写入SRAM的所有区域,模拟全片擦,随后进入“WAIT”状态;
WAIT:此时根据寄存器控制单元中的虚拟时序模拟寄存器(包括写时序模拟寄存器、页擦时序模拟寄存器、全片擦时序模拟寄存器)模拟一定时间的擦写延时,并返回IDLE状态。
RPRE:此时根据总线地址读取SRAM,并进入READ状态。
READ:此时根据寄存器控制单元中的虚拟时序模拟寄存器(包括读时序模拟寄存器)模拟一定时间的读取延时。若数据宽度是64位或者32位,则输出数据回复给总线并返回IDLE状态;若数据宽度是16位或者8位,则根据前文所述选择将数据回复给总线或者继续执行模拟读操作。

用于系统芯片集成的通用非易失性存储器控制装置.pdf_第1页
第1页 / 共20页
用于系统芯片集成的通用非易失性存储器控制装置.pdf_第2页
第2页 / 共20页
用于系统芯片集成的通用非易失性存储器控制装置.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《用于系统芯片集成的通用非易失性存储器控制装置.pdf》由会员分享,可在线阅读,更多相关《用于系统芯片集成的通用非易失性存储器控制装置.pdf(20页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102999453 A(43)申请公布日 2013.03.27CN102999453A*CN102999453A*(21)申请号 201210386684.4(22)申请日 2012.10.12G06F 13/16(2006.01)(71)申请人杭州中天微系统有限公司地址 310012 浙江省杭州市西湖区华星路99号创业大厦A409(72)发明人葛海通 王钰博 马德 严晓浪(74)专利代理机构杭州天正专利事务所有限公司 33201代理人王兵 王利强(54) 发明名称用于系统芯片集成的通用非易失性存储器控制装置(57) 摘要一种用于系统芯片集成的通用非易失性存储器控制装。

2、置,所述控制装置包括外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元,其中,外部总线接口单元,用于采集外部总线的控制信号及数据,并进行分析;寄存器控制单元,用于对所有寄存器进行读写控制,寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用;擦写单元,用于处理外部总线接口单元传来总线信号;存储控制与接口单元包含两个有限状态机;一个是写数据宽度转换状态机;另一个是主控状态机,用于对多种非易失性存储器进行读、写、擦控制。本发明提供一种兼容性良好、简化设计过程的用于系统芯片集成的通用非易失性存储器控制装置。(51)Int.Cl.权利要求书1页 说明书11页 附图7页。

3、(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 1 页 说明书 11 页 附图 7 页1/1页21.一种用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述控制装置包括外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元,其中,外部总线接口单元,用于采集外部总线的控制信号及数据,并进行分析:如果是访问控制寄存器,将总线信号传入寄存器控制单元;如果是对非易失性存储单元进行读操作,将总线信号传给存储控制与接口单元,实现对非易失性存储单元的读操作;如果是对非易失性存储单元进行写操作,将总线信号传给擦写单元;寄存器控制单元,用于对所有寄存器进行读写控制,所述所。

4、有寄存器包括OTP工作模式寄存器、EFLASH工作模式寄存器、EEPROM工作模式寄存器、OTP时序控制寄存器、EFLASH时序控制寄存器、EEPROM时序控制寄存器和虚拟时序模拟寄存器,寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用;擦写单元,用于处理外部总线接口单元传来总线信号;存储控制与接口单元包含两个有限状态机;一个是写数据宽度转换状态机,用于当非易失性存储器的数据宽度以及虚拟非易失性存储器模拟的数据宽度为16位或8位时,根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器;另一个是主。

5、控状态机,用于对多种类型、多种数据宽度非易失性存储器进行读、写、擦控制,所述类型为EFLASH、OTP和EEPROM,所述数据宽度为8位、16位、32位和64位,同时还通过2片支持字节访问的32位SRAM对多种类型、多种数据宽度非易失性存储器的真实读、写、擦时序进行模拟,成为虚拟非易失性存储器控制器。2.如权利要求1所述的用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述擦写单元中,当进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据、数据大小信息截取出来并进行处理,产生本次总线写操作所对应的页内地址、字节有效信息以及本次页写操作的页地址,同时对本次页写或连续写操作的数据。

6、总量信息进行累加;这些信息连同每次总线写操作的写数据一起暂存入FIFO和寄存器中,当存储控制与接口单元中的有限状态机需要时输出给存储控制与接口单元。3.如权利要求1或2所述的用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述寄存器控制单元中,所述所有寄存器还包括状态寄存器,用于反映当前控制存储控制与接口单元中主控状态机的工作状态。4.如权利要求1或2所述的用于系统芯片集成的通用非易失性存储器控制装置,其特征在于:所述虚拟时序模拟寄存器包括读时序模拟寄存器、写时序模拟寄存器、页擦时序模拟寄存器和全片擦时序模拟寄存器,当作为虚拟非易失性存储器控制器时用于模拟访问非易失性存储器的读取延时。

7、、写延时、页擦延时以及全片擦延时。权 利 要 求 书CN 102999453 A1/11页3用于系统芯片集成的通用非易失性存储器控制装置技术领域0001 本发明涉及属于系统芯片(SoC)集成设计领域,具体涉及一种高兼容性的用于系统芯片集成的通用非易失性存储器控制装置。背景技术0002 随着集成电路制造水平的不断提高,设计者可以在单芯片上集成几百万门的复杂系统,即片上系统(System-On-Chip)。近年来,SoC已经成为当今集成电路设计的主流方向,为了满足越来越多样化的各种实际应用的需求,作为存储数据的重要器件,多种类型的非易失性存储器(Non-Volatile-Memory)也在被逐步集。

8、成到SoC芯片内部。这些非易失性存储器包括OTP、EEPROM、FLASH等。0003 不同类型的非易失性存储器通常具有不同的控制信号和时序要求,因此,针对不同的非易失性存储器,往往需要设计不同的存储器控制器,以满足对特定类型非易失性存储器的控制。同时,为了达到对该非易失性存储器控制器真实仿真的目的,还需要额外设计非常有针对性的仿真控制器来实现仿真。0004 很多情况下,同一系列的SoC芯片大部分组件几乎完全相同,也许仅仅是其中的非易失性存储器的容量或类型不同,但却需要重新设计开发不同的存储器控制器以及相应的仿真控制器来满足要求。这个过程中,即花费了大量的人力、物力和时间,同时也延误了SoC芯。

9、片产品的推广和软件开发的时间。发明内容0005 为了克服已有非易失性存储器的兼容性较差、设计过程复杂的不足,本发明提供一种兼容性良好、简化设计过程的用于系统芯片集成的通用非易失性存储器控制装置。0006 本发明解决其技术问题所采用的技术方案是:0007 一种用于系统芯片集成的通用非易失性存储器控制装置,所述控制装置包括外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元,其中,0008 外部总线接口单元,用于采集外部总线的控制信号及数据,并进行分析:如果是访问控制寄存器,将总线信号传入寄存器控制单元;如果是对非易失性存储单元进行读操作,将总线信号传给存储控制与接口单元,实现对非易失。

10、性存储单元的读操作;如果是对非易失性存储单元进行写操作,将总线信号传给擦写单元;0009 寄存器控制单元,用于对所有寄存器进行读写控制,所述所有寄存器包括OTP工作模式寄存器、EFLASH工作模式寄存器、EEPROM工作模式寄存器、OTP时序控制寄存器、EFLASH时序控制寄存器、EEPROM时序控制寄存器和虚拟时序模拟寄存器,寄存器数据将传给存储控制与接口单元,供存储控制与接口单元的有限状态机使用;0010 擦写单元,用于处理外部总线接口单元传来的总线信号;0011 存储控制与接口单元包含两个有限状态机;一个是写数据宽度转换状态机,用于当非易失性存储器的数据宽度以及虚拟非易失性存储器模拟的数。

11、据宽度为16位或8位时,说 明 书CN 102999453 A2/11页4根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器;0012 另一个是主控状态机,用于对多种类型、多种数据宽度非易失性存储器进行读、写、擦控制,所述类型为EFLASH、OTP和EEPROM,所述数据宽度为8位、16位、32位和64位,同时还通过2片支持字节访问的32位SRAM对多种类型、多种数据宽度非易失性存储器的真实读、写、擦时序进行模拟,成为虚拟非易失性存储器控制器。0013 进一步,所述擦写单元中,当进行正常的总线写操作时,擦写单元将总线。

12、信号中的写地址、写数据、数据大小信息截取出来并进行处理,产生本次总线写操作所对应的页内地址、字节有效信息(仅当数据宽度为16位或8位时使用)以及本次页写操作(EEPROM页写操作时,一次页写操作中可以执行多次总线写操作)的页地址,同时对本次页写或连续写操作的数据总量信息进行累加;这些信息连同每次总线写操作的写数据一起暂存入FIFO和寄存器中,当存储控制与接口单元中的有限状态机需要时输出给存储控制与接口单元。0014 更进一步,所述寄存器控制单元中,所述所有寄存器还包括状态寄存器,用于反映当前控制存储控制与接口单元中主控状态机的工作状态。0015 所述虚拟时序模拟寄存器包括读时序模拟寄存器、写时。

13、序模拟寄存器、页擦时序模拟寄存器和全片擦时序模拟寄存器,当做为虚拟非易失性存储器控制器时可用于模拟非易失性存储器的读取延时、写延时、页擦延时以及全片擦延时。0016 本发明的技术构思为:通过硬件配置,既可以支持对多种非易失性存储器的读、写、擦控制,也可以通过SRAM实现对多种非易失性存储器真实读、写、擦时序的模拟,成为虚拟非易失性存储器控制器,用于目标芯片的仿真以及测试芯片的评估。具体特征如下:0017 1)支持32位AHB总线接口,系统芯片集成时可以将多种非易失性存储器连接到AHB总线上,从而通过外部总线对多种非易失性存储器进行访问和控制。通过硬件配置,支持的非易失性存储器类型包括OTP、E。

14、FLASH以及EEPROM。0018 2)当控制OTP时,支持读以及连续写功能,所谓连续写是指在一次OTP的写操作中可以写入多个数据。0019 3)当控制EFLASH时,支持读、单数据写、页擦以及全片擦功能,所谓单数据写是指在一次EFLASH的写操作中写入一个数据,所谓页擦是指一次性将EFLASH的一页擦为全“1”,所谓全片擦是指一次性将全片EFLASH擦为全“1”。0020 4)当控制EEPROM时,支持读、页写以及全片擦功能。所谓页写是指在一次EEPROM的写操作中可以写入同一页内的多个数据,所谓全片擦是指一次性将全片EEPROM擦为全“1”。0021 5)通过硬件配置,支持多种数据宽度的。

15、非易失性存储器,包括8位、16位、32位以及64位。0022 6)通过硬件配置,除了支持对多种非易失性存储器的读、写、擦控制,还可以通过两片支持字节访问的32位SRAM实现对多种类型、多种数据宽度非易失性存储器真实读、写、擦时序的模拟,成为虚拟非易失性存储器控制器。当作为虚拟非易失性存储器控制器时,可以根据外部数据宽度引脚的控制,无需更换SRAM便可实现对8位、16位、32位以及64位数据宽度的非易失性存储器的模拟。 0023 7)当存储器数据宽度为8位时支持总线的字、半字、字节操作;当存储器数据宽度说 明 书CN 102999453 A3/11页5为16位时支持总线的字、半字操作;当存储器数。

16、据宽度为16位时支持总线的字操作;当存储器数据宽度为64位时支持总线的字读操作,此时总线写操作要求以一个双字为单位写入数据(由于外部总线为32位宽度,所以要求通过两次总线写操作写入双字中的两个字);0024 8)统一了外部总线对不同类型非易失性存储器的编程方式,便于用户软件开发。无论是作为OTP、EEPROM、EFLASH控制器,还是虚拟非易失性存储器控制器,外部总线对非易失性存储器的写操作统一简化为三步:首先对需要写入的地址进行正常的总线写操作(如果是OTP或者EEPROM,则可以在一次写操作中通过多次总线写操作写入多个数据);再配置工作模式寄存器发起写请求;最后查询寄存器控制单元中的状态寄。

17、存器直到状态空闲。0025 本发明的有益效果主要表现在:兼容性良好、简化设计过程。附图说明0026 图1是非易失性存储器控制器架构。0027 图2是擦写单元结构(存储器数据宽度为64位)。0028 图3是擦写单元结构(存储器数据宽度为32位)。0029 图4是擦写单元结构(存储器数据宽度为16位或8位)。0030 图5是虚拟非易失性存储器控制器SRAM结构(模拟数据宽度为64位)。0031 图6 是虚拟非易失性存储器控制器SRAM结构(模拟数据宽度为16位或8位)。0032 图7是写数据宽度转换状态机。0033 图8是主控状态机。0034 图9是主控状态机状态转换(控制OTP时)。0035 图。

18、10是主控状态机状态转换(控制EEPROM时)。0036 图11是主控状态机状态转换(控制EFLASH时)。0037 图12是主控状态机状态转换(作为虚拟非易失性存储器控制器时)。具体实施方式0038 下面结合附图对本发明作进一步描述。0039 参照图1图12,一种用于系统芯片集成的通用非易失性存储器控制装置,包含外部总线接口单元、寄存器控制单元、擦写单元以及存储控制与接口单元。通过这些单元的协同工作,实现对多种非易失性存储器的兼容以及对多种非易失性存储器的模拟:0040 外部总线接口单元负责采集外部总线的控制信号及数据,并进行分析:如果是访问控制寄存器,将总线信号传入寄存器控制单元;如果是对。

19、非易失性存储单元进行读操作,将总线信号传给存储控制与接口单元,实现对非易失性存储单元的读操作;如果是对非易失性存储单元进行写操作,将总线信号传给擦写单元。0041 寄存器控制单元负责对该非易失性存储器控制器的所有寄存器进行读写控制,包括OTP工作模式寄存器、EFLASH工作模式寄存器、EEPROM工作模式寄存器、OTP时序控制寄存器、EFLASH时序控制寄存器、EEPROM时序控制寄存器、虚拟时序模拟寄存器(包括读时序模拟寄存器、写时序模拟寄存器、页擦时序模拟寄存器以及全片擦时序模拟寄存器,用于模拟非易失性存储器的读取延时、写延时、页擦延时、全片擦延时)等,这些寄存器数据将传给存储控制与接口单。

20、元,供存储控制与接口单元的有限状态机使用。此外,还包括状态寄存说 明 书CN 102999453 A4/11页6器,用于反映当前控制存储控制与接口单元中主控状态机的工作状态。0042 擦写单元负责处理外部总线接口单元传来总线信号。当进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据、数据大小信息截取出来并进行处理,产生本次总线写操作所对应的页内地址、字节有效信息(仅当数据宽度为16位或8位时使用)以及本次页写操作(EEPROM页写操作时,一次页写操作中可以执行多次总线写操作)的页地址,同时对本次页写或连续写操作的数据总量信息进行累加;这些信息连同每次总线写操作的写数据一起暂存入FIF。

21、O和寄存器中,当存储控制与接口单元中的有限状态机需要时输出给存储控制与接口单元。由于使用了FIFO,用户可在一次非易失性存储器的写操作中进行多次总线写操作,从而将多个写地址、写数据以及写字节有效信息依次存入FIFO中,以支持EEPROM的页写操作和OTP的连续写操作。0043 存储控制与接口单元包含两个有限状态机:0044 一个是写数据宽度转换状态机,其主要功能是:当非易失性存储器的数据宽度以及虚拟非易失性存储器模拟的数据宽度为16位或8位时,根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器。0045 另一个是主控。

22、状态机,负责对多种非易失性存储器进行读、写、擦控制,并且实现通过2片支持字节访问的32位SRAM对多种非易失性存储器的真实读、写、擦时序进行模拟。0046 如发明内容中所述,本非易失性存储器控制器将外部总线对非易失性存储器的写操作统一简化为三个步骤,此功能主要由擦写单元实现。如图2、图3、图4所示,擦写单元负责处理外部总线接口单元传来总线信号。其工作原理如下:0047 1)当执行非易失性存储器写操作步骤之1,即进行正常的总线写操作时,擦写单元将总线信号中的写地址、写数据以及数据大小信息(字节、半字或字)截取出来并进行处理,暂存入FIFO和寄存器中。0048 2)1)中所指的寄存器包括页地址寄存。

23、器和写数据量计数器。前者根据本次非易失性存储器写操作中第一次总线写操作的写地址记录本次非易失性存储器写操作的页地址(由于OTP没有页的概念,所以控制OTP时没有此寄存器,地址全部记录在地址FIFO中);后者记录FIFO中的数据量,计数单位为当前存储器的数据宽度或者虚拟非易失性存储器模拟的数据宽度。0049 3)1)中所指的FIFO包括数据FIFO、地址FIFO以及字节有效FIFO,主要功能是:在OTP的连续写、EEPROM的页写以及通过SRAM实现的相应的模拟操作中,用户可在一次非易失性存储器的写操作中进行多次总线写操作,从而将多个页内地址、写数据以及写字节有效信息(当存储器数据宽度为16位或。

24、8位时使用)依次存入FIFO中。0050 4)数据FIFO的宽度为32位,字节有效FIFO的宽度为4位(分别对应32位数据的4个字节)。当进行EEPROM写操作时,由于一次写操作最多可写一页,所以地址FIFO的宽度和各FIFO的深度可根据非易失性存储器的页大小配置;当进行EFLASH写操作时,由于一次只能写入一个数据,所以此时FIFO的深度为1,地址FIFO的宽度根据EFLASH页大小配置;当进行OTP连续写操作时,由于没有页的概念,所以此时各FIFO的深度不做限制,可根据用户需求定义,地址FIFO的宽度根据OTP存储器的大小配置,写地址全部记录在地址说 明 书CN 102999453 A5/。

25、11页7FIFO中。0051 5)当执行非易失性存储器写操作步骤之2,即配置工作模式寄存器发起写请求时,存储控制与接口单元中的有限状态机启动。当有限状态机执行到相应状态时,擦写单元将页内地址、写数据、字节有效信息按照总线写入时的顺序依次取出,连同页地址、数据总量等信息一起传给存储控制与接口单元。0052 6)当执行非易失性存储器写操作步骤之3,即查询状态寄存器,直到存储控制与接口单元中的有限状态机运行结束。0053 为了支持多种数据宽度的写入,包括64位、32位、16位以及8位,擦写单元的FIFO可以通过硬件配置实现不同的结构:0054 1)当非易失性存储器的数据宽度为64位时,如图2所示,擦。

26、写单元包含两个并联的32位数据FIFO以及一个地址FIFO,此时要求外部总线以一个双字为单位写入数据(由于外部总线为32位宽度,所以要求通过两次总线写操作写入双字中的两个字),两个并联的32位数据FIFO会分别存入这两次总线写操作中的数据,即双字中的两个字,同时地址FIFO截取这两次总线写操作中的一次,得到并存入此双字对应的页内地址(由于64位对齐,所以2到0位略去)。当存储控制与接口单元中的有限状态机需要时将64位写数据以及写地址(包括页地址与页内地址)一起按照总线写入时的顺序依次传给存储控制与接口单元。0055 2)当非易失性存储器的数据宽度为32位时,如图3所示,擦写单元包含一个32位数。

27、据FIFO以及一个地址FIFO,当外部总线写入数据时,会将写数据与写地址分别存入数据FIFO和地址FIFO,当存储控制与接口单元中的有限状态机需要时将32位写数据以及写地址(包括页地址与页内地址)一起按照总线写入时的顺序依次传给存储控制与接口单元。0056 3)当非易失性存储器的数据宽度为16位或8位时,如图4所示,擦写单元包含一个32位数据FIFO、一个地址FIFO以及一个4位字节有效FIFO,当外部总线写入数据时,会将写数据与写地址分别存入数据FIFO和地址FIFO,同时通过综合处理总线写地址的低两位和数据大小信息(AHB总线的数据大小信息为hsize,反映了当前总线写操作为字节、半字或字。

28、),得到这32位写数据所对应的字节有效信息,存入字节有效FIFO,当存储控制与接口单元中的有限状态机需要时将32位写数据、写地址(包括页地址与页内地址)以及字节有效信息一起按照总线写入时的顺序依次传给存储控制与接口单元。0057 4)当作为虚拟非易失性存储器控制器时,擦写单元包含两个32位数据FIFO、一个地址FIFO以及一个4位字节有效FIFO。此时根据外部数据宽度引脚的控制,可以实现1)、2)或者3)中的结构,从而实现对8位、16位、32位以及64位数据宽度的模拟。0058 当本非易失性存储器控制器通过硬件配置成为虚拟非易失性存储器控制器时,存储控制与接口单元不仅包含写数据宽度转换状态机和。

29、主控状态机,还包括对两片支持字节访问的32位SRAM的控制逻辑。此时由外部数据宽度引脚控制,可以实现对8位、16位、32位以及64位数据宽度的模拟,无需更换SRAM,具体方式如下,0059 1)当外部数据宽度引脚表示64位时,如图5,这两片SRAM的片选信号CEN0和CEN1同源,访问地址经过64位对齐处理(写地址来自擦写单元,读地址来自外部总线接口单元),此时两片SRAM成并联关系,相当于一整片64位的SRAM,从而实现对64位非易失性存储器的模拟。0060 2)当外部数据宽度引脚表示32位、16位或者8位时,如图6,访问地址经过32位说 明 书CN 102999453 A6/11页8对齐处。

30、理(写地址来自擦写单元,读地址来自外部总线接口单元),而这两片SRAM的片选信号CEN0和CEN1由访问地址的最高位控制。当访问前半部分空间,即访问地址的最高位为0时,访问SRAM1,否则访问SRAM2,此时两片SRAM成串联关系,相当于一整片32位的SRAM,从而实现对32位非易失性存储器的模拟。由于支持字节访问的32位SRAM包含4位写使能信号WEN,分别对应32位数据的4个字节,因此当模拟16位或者8位数据宽度时,虽然输入为32位数据,但通过擦写单元中字节有效FIFO输出的4位字节有效信息分别控制这4位写使能信号,如图6所示,可以使32位的SRAM以16位或者8位的方式写入,从而实现对1。

31、6位或者8位非易失性存储器的模拟。0061 存储控制与接口单元中的写数据宽度转换状态机主要用于对写数据宽度的转换。当非易失性存储器的数据宽度为16位或8位时,该状态机根据擦写单元输出的字节有效信息将擦写单元输出的32位写数据拆分为多个16位或者8位数据,并由主控状态机控制依次传给非易失性存储器。(当作为虚拟非易失性存储器控制器模拟16位或8位数据宽度时,如图6,由于SRAM和数据FIFO都为32位,所以此时写数据宽度转换状态机不需要工作,用擦写单元中字节有效FIFO输出的4位字节有效信息分别控制这4位写使能信号,即可实现对16位或者8位存储器写操作的模拟)0062 具体状态转换如图7所示:00。

32、63 IDLE:无写入操作时,状态机默认为IDLE状态。当主控状态机请求写数据和写地址时,如果存储器数据宽度为16位,状态机进入16_POP1状态;如果存储器数据宽度为16位,状态机进入8_POP1状态。0064 16_POP1:此时从数据FIFO中弹出(POP)一个32位写数据,从地址FIFO中弹出一个写地址,从字节有效FIFO中弹出一个4位的字节有效信息。并根据字节有效信息判断此次对应的总线写操作是字还是半字写入:0065 如果是字写入,即四个字节都有效,那么先将前两个字节(16位)及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入16_W_POP2状态。0066 。

33、如果是半字写入,即只有两个字节有效,那么将这两个字节及对应的写地址传给主控状态机。当主控状态机再次请求写数据时,状态机重新进入16_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。0067 16_W_POP2:此时将四个有效字节中的后两个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机重新进入16_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。0068 8_POP1:此时从数据FIFO中弹出(POP)一个32位写数据,从地址FIFO中弹出一个写地址,从字节有效FIFO中弹出一个4位的字节有效信息。并根据字节有效信息判断此次对应的总线写。

34、操作是字、半字还是字节写入:0069 如果是字写入,即四个字节都有效,那么先将第一个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_W_POP2状态。0070 如果是半字写入,即两个字节有效,那么先将这两个字节中的第一个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_HW_POP2状态。0071 如果是字节写入,即只有一个字节有效,那么将这个字节及对应的写地址传给主说 明 书CN 102999453 A7/11页9控状态机。当主控状态机再次请求写数据时,状态机重新进入8_POP1状态;若主控状态机的写操作全部结束,则返回IDL。

35、E状态。0072 8_W_POP2:此时将四个有效字节中的第二个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_W_POP3状态。0073 8_W_POP3:此时将四个有效字节中的第三个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机进入8_W_POP4状态。0074 8_W_POP4:此时将将四个有效字节中的第四个字节及对应的写地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机重新进入8_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。0075 8_HW_POP2:此时将两个有效字节中的第二个字节及对应的写。

36、地址传给主控状态机。当主控状态机再次发起写数据请求时,状态机重新进入8_POP1状态;若主控状态机的写操作全部结束,则返回IDLE状态。0076 由于以上写数据宽度转换状态机的存在,实现了对多种数据宽度写操作的支持,而为了支持对多种数据宽度的读操作,这部分功能主要通过存储控制与接口单元中的主控状态机以及缓冲寄存器实现:0077 1)如果存储器数据宽度为64位,即一次读操作读取64位数据,则将其中总线需要的32位数据回复给外部总线,并将这64位数据及其地址暂存入存储控制与接口单元中的缓冲寄存器中。当再次读取存储器时,判断读取地址与缓冲寄存器中的地址是否为同一个双字,如果是,则直接从缓冲寄存器中读。

37、取需要的32位数据,以提高访问速度。0078 2)如果存储器数据宽度为32位,即一次读操作读取32位数据,则READ状态结束时直接将这32位数据回复给外部总线。0079 3)如果存储器数据宽度为16位,即一次读操作读取16位数据,则主控状态机判断总线的数据大小信息:若为读半字,则执行一次读操作后将这16位数据补齐回复给外部总线(当为虚拟非易失性存储器时,由于SRAM实际仍为32位,所以直接将这32位数据回复给外部总线即可);若为读全字,则主控状态机对存储器连续执行两次读操作,将读取的32位数据回复给外部总线(当为虚拟非易失性存储器时,为了真实模拟读操作,也连续执行两次读操作,最后将读取的32位。

38、数据回复给外部总线)。0080 4)如果存储器数据宽度为8位,即一次读操作读取8位数据,则主控状态机判断总线的数据大小信息:若为读字节,则执行一次读操作后将这8位数据补齐回复给外部总线(当为虚拟非易失性存储器时,由于SRAM实际仍为32位,所以直接将这32位数据回复给外部总线);若为读半字,则连续执行两次读操作,将读取的16位数据补齐回复给外部总线(当为虚拟非易失性存储器时,为了真实模拟读操作,也连续执行两次读操作,最后将读取的32位数据回复给外部总线);若为读全字,则主控状态机对存储器连续执行四次读操作,将读取的32位数据回复给外部总线(当为虚拟非易失性存储器时,为了真实模拟读操作,也连续执。

39、行四次读操作,最后将读取的32位数据回复给外部总线)。0081 存储控制与接口单元中的主控状态机具有较高的兼容性,用于实现对多种非易失性存储器的控制以及通过SRAM对多种非易失性存储器的读写擦时序进行模拟。主控状态机的结构如图8所示,下面按照不同的配置进行详细说明。0082 1)当控制OTP时,主控状态机支持读以及连续写功能,此时状态转换如图9的所说 明 书CN 102999453 A8/11页10示:0083 IDLE:无任何操作时,状态机默认为IDLE状态。此时OTP的片选信号PCEB、写使能信号PWEB以及输出使能信号POEB无效,模式信号PTM2:0为等待模式。当用户通过外部总线将寄存。

40、器控制单元中的OTP工作模式寄存器配置为写模式时,对OTP的写操作开始,状态机进入WEPRE状态;当外部总线通过外部总线接口单元发起读请求时,对OTP的读操作开始,状态机进入RPRE状态。0084 WEPRE:此时将写地址和写数据(如果数据宽度为64位或32位,由地址FIFO和数据FIFO输出;如果为16位或8位,由写地址转换状态机输出)传给OTP,并将OTP的片选信号PCEB置为有效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“CMOD”状态。0085 CMOD:此时维持OTP的片选信号PCEB为有效,并将OTP的模式信号PTM。

41、2:0置为编程模式。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“WE”状态。0086 WE: 此时维持OTP的片选信号PCEB为有效,维持OTP的模式信号PTM2:0为编程模式,并将OTP的写使能信号PWEB置为有效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“WD”状态。0087 WD:此时维持OTP的片选信号PCEB为有效,维持OTP的模式信号PTM2:0为编程模式,并将OTP的写使能信号PWEB置为无效。同时根据擦写单元中的写数据量计数器判断此时FIFO中是否还。

42、有数据,若没有,则进入“WES”状态,否则,进入“NW”状态开始下一个数据的写入过程。0088 NW:此时开始下一个数据的写入过程,维持OTP的片选信号PCEB为有效,维持写使能信号PWEB为无效,维持OTP的模式信号PTM2:0为编程模式,并将下一个写地址和写数据(如果为64位或32位,则由地址FIFO和数据FIFO输出;如果为16位或8位,则由写地址转换状态机输出)传给OTP。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机再次进入“WE”状态。0089 WES:此时维持OTP的片选信号PCEB为有效,维持写使能信号PWEB为无效,维持。

43、OTP的模式信号PTM2:0为编程模式。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“CD”状态。0090 CD:此时维持OTP的模式信号PTM2:0为编程模式,维持OTP的写使能信号PWEB置为无效,并将OTP的片选信号PCEB置为无效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“WAIT”状态。0091 WAIT:维持OTP的片选信号PCEB和写使能信号PWEB为无效,并将OTP的模式信号PTM2:0重新置回等待模式,此时OTP进入编程修复状态(Program Recovery)。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机返回“IDLE”状态,写操作完成。0092 RPRE:此时将OTP的片选信号PCEB和输出使能信号POEB置为有效。根据寄存器控制单元中的OTP时序控制寄存器所规定的延时(按照OTP的时序要求配置),一定时间后,状态机进入“READ”状态。0093 READ:此时维持OTP的片选信号PCEB和输出使能信号POEB为有效,并将读地址输说 明 书CN 102999453 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1