CN102999453A - 用于系统芯片集成的通用非易失性存储器控制装置 - Google Patents

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

Info

Publication number
CN102999453A
CN102999453A CN2012103866844A CN201210386684A CN102999453A CN 102999453 A CN102999453 A CN 102999453A CN 2012103866844 A CN2012103866844 A CN 2012103866844A CN 201210386684 A CN201210386684 A CN 201210386684A CN 102999453 A CN102999453 A CN 102999453A
Authority
CN
China
Prior art keywords
write
register
data
control
interface unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012103866844A
Other languages
English (en)
Other versions
CN102999453B (zh
Inventor
葛海通
王钰博
马德
严晓浪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou C Sky Microsystems Co Ltd
Original Assignee
Hangzhou C Sky Microsystems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou C Sky Microsystems Co Ltd filed Critical Hangzhou C Sky Microsystems Co Ltd
Priority to CN201210386684.4A priority Critical patent/CN102999453B/zh
Publication of CN102999453A publication Critical patent/CN102999453A/zh
Application granted granted Critical
Publication of CN102999453B publication Critical patent/CN102999453B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Read Only Memory (AREA)

Abstract

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

Description

用于系统芯片集成的通用非易失性存储器控制装置
技术领域
本发明涉及属于系统芯片(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位,则根据前文所述选择将数据回复给总线或者继续执行模拟读操作。

Claims (4)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210386684.4A CN102999453B (zh) 2012-10-12 2012-10-12 用于系统芯片集成的通用非易失性存储器控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210386684.4A CN102999453B (zh) 2012-10-12 2012-10-12 用于系统芯片集成的通用非易失性存储器控制装置

Publications (2)

Publication Number Publication Date
CN102999453A true CN102999453A (zh) 2013-03-27
CN102999453B CN102999453B (zh) 2015-09-09

Family

ID=47928039

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210386684.4A Active CN102999453B (zh) 2012-10-12 2012-10-12 用于系统芯片集成的通用非易失性存储器控制装置

Country Status (1)

Country Link
CN (1) CN102999453B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487968A (zh) * 2014-10-09 2016-04-13 上海华虹集成电路有限责任公司 等效实现eeprom的仿真器
CN108563590A (zh) * 2018-06-28 2018-09-21 北京智芯微电子科技有限公司 基于片上flash存储器的otp控制器和控制方法
CN109697174A (zh) * 2018-12-14 2019-04-30 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机存储系统敏感分区防护方法
CN110473589A (zh) * 2019-07-19 2019-11-19 苏州浪潮智能科技有限公司 一种多功能存储器芯片测试系统
CN111159071A (zh) * 2019-12-31 2020-05-15 江苏科大亨芯半导体技术有限公司 eFlash存储器实现OTP的装置、方法及OTP存储器
CN111338997A (zh) * 2020-03-05 2020-06-26 苏州浪潮智能科技有限公司 一种arm服务器bios支持tcm通信的方法、装置、设备和介质
CN111464866A (zh) * 2020-04-08 2020-07-28 Tcl华星光电技术有限公司 时序控制芯片、视频格式转换系统及方法
CN113836059A (zh) * 2021-11-26 2021-12-24 广州智慧城市发展研究院 一种应用于eeprom存储器的控制系统

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106919363A (zh) * 2015-12-28 2017-07-04 北京航天测控技术有限公司 一种基于异步先进先出的sdram缓存器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054864A1 (en) * 2002-09-13 2004-03-18 Jameson Neil Andrew Memory controller
CN101114259A (zh) * 2006-07-27 2008-01-30 杭州晟元芯片技术有限公司 一种基于flash架构的处理器片内程序代码存储体及实现代码片内执行的方法
CN102110047A (zh) * 2009-12-23 2011-06-29 北京中电华大电子设计有限责任公司 一种在开发系统中读写ram的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054864A1 (en) * 2002-09-13 2004-03-18 Jameson Neil Andrew Memory controller
CN101114259A (zh) * 2006-07-27 2008-01-30 杭州晟元芯片技术有限公司 一种基于flash架构的处理器片内程序代码存储体及实现代码片内执行的方法
CN102110047A (zh) * 2009-12-23 2011-06-29 北京中电华大电子设计有限责任公司 一种在开发系统中读写ram的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
邱琳 等: "HDTV SoC平台中存储器控制及其VLSI优化", 《INFORMATION TERMINAL》, 17 November 2005 (2005-11-17), pages 41 - 44 *

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105487968A (zh) * 2014-10-09 2016-04-13 上海华虹集成电路有限责任公司 等效实现eeprom的仿真器
CN108563590A (zh) * 2018-06-28 2018-09-21 北京智芯微电子科技有限公司 基于片上flash存储器的otp控制器和控制方法
CN108563590B (zh) * 2018-06-28 2024-02-23 北京智芯微电子科技有限公司 基于片上flash存储器的otp控制器和控制方法
CN109697174A (zh) * 2018-12-14 2019-04-30 中国航空工业集团公司西安航空计算技术研究所 一种机载计算机存储系统敏感分区防护方法
CN110473589A (zh) * 2019-07-19 2019-11-19 苏州浪潮智能科技有限公司 一种多功能存储器芯片测试系统
CN111159071A (zh) * 2019-12-31 2020-05-15 江苏科大亨芯半导体技术有限公司 eFlash存储器实现OTP的装置、方法及OTP存储器
CN111159071B (zh) * 2019-12-31 2023-08-08 江苏科大亨芯半导体技术有限公司 eFlash存储器实现OTP的装置、方法及OTP存储器
CN111338997A (zh) * 2020-03-05 2020-06-26 苏州浪潮智能科技有限公司 一种arm服务器bios支持tcm通信的方法、装置、设备和介质
US11669477B2 (en) 2020-03-05 2023-06-06 Inspur Suzhou Intelligent Technology Co., Ltd. Method and apparatus for supporting TCM communication by BIOS of ARM server, device, and medium
CN111464866A (zh) * 2020-04-08 2020-07-28 Tcl华星光电技术有限公司 时序控制芯片、视频格式转换系统及方法
CN111464866B (zh) * 2020-04-08 2022-03-08 Tcl华星光电技术有限公司 时序控制芯片、视频格式转换系统及方法
CN113836059A (zh) * 2021-11-26 2021-12-24 广州智慧城市发展研究院 一种应用于eeprom存储器的控制系统

Also Published As

Publication number Publication date
CN102999453B (zh) 2015-09-09

Similar Documents

Publication Publication Date Title
CN102999453B (zh) 用于系统芯片集成的通用非易失性存储器控制装置
CN101965559B (zh) 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器
CN101908379B (zh) 基于访问时间调整对非易失性半导体存储器的访问
CN103116551B (zh) 应用于CLB总线的NorFLASH存储接口模块
CN101334708B (zh) 具有写屏障敏感命令和写屏障不敏感命令的存储设备
CN102193885B (zh) 支持虚拟信道的非挥发性存储器控制器
Cuppu et al. High-performance DRAMs in workstation environments
CN103366794B (zh) 用于减少接脚数内存总线接口的装置及方法
CN101344870B (zh) 一种复用性强的fifo控制模块及其管理内存的方法
CN103038758A (zh) 改善集成非透明桥设备的操作的方法和系统
CN103890688A (zh) 一种flash-dram混合存储器模块
CN105243033A (zh) 数据处理方法及电子设备
CN109669888A (zh) 一种可配置且高效的嵌入式Nor-Flash控制器及控制方法
CN101122783A (zh) 单片机存储系统
GB2396711A (en) Memory controller with programmable timing and control registers for data transfers which have a distinct sequence of phases.
CN100573488C (zh) 一种基于同步访问模式的多端口存储器
CN103593324A (zh) 一种具有自学习功能的快速启动低功耗计算机片上系统
CN101436171A (zh) 模块化通信控制系统
CN101133386A (zh) 用于主机控制器上的独立和并发数据传送的方法和装置
CN106250321B (zh) 2r1w存储器的数据处理方法及数据处理系统
Davis Modern DRAM architectures
CN103235760A (zh) 基于CLB总线的高利用率NorFLASH存储接口芯片
CN106802870A (zh) 一种高效的嵌入式系统芯片Nor‑Flash控制器及控制方法
CN110209357A (zh) 提高ssd大文件写性能的方法、装置、计算机设备及存储介质
CN104679670A (zh) 一种面向fft和fir的共享数据缓存结构及管理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant