本申请基于并要求于6月27日提交的日本专利申请No.-125270的优先权权益,该日本专利申请的公开内容通过引用全部并入本文中。
技术领域
本公开涉及半导体装置和闪存存储器控制方法。例如,本公开涉及当多个主设备执行对闪存存储器的写入/擦除处理时使用的控制技术。
背景技术:
包括多个主设备(例如,多个主处理单元)的一类半导体装置可以配置为使得所述多个主设备使用一个公共的闪存存储器。在具有这种配置的半导体装置中,例如,存储器控制器控制从每个主设备对闪存存储器的访问。
日本未经审查的专利申请公开No.-34045公开了用于中断/恢复对闪存存储器的写入/擦除处理的技术。
一般而言,当某个主设备正在对闪存存储器执行写入/擦除处理时,其它主设备不能对该闪存存储器执行读取、写入和擦除处理中的任何。应当注意的是,向闪存存储器写入/从闪存存储器擦除数据要花费时间。因此,在一些情况下,当某个主设备如上所述正在对闪存存储器执行写入/擦除处理时,其它主设备长时间不能访问闪存存储器并且需要等待长时间。
为了解决上述问题,日本未经审查的专利申请公开No.-34045公开了一种半导体装置,其中,即使当正在对闪存存储器执行写入/擦除处理时,该写入/擦除处理也可以被中断以使得可以对闪存存储器执行其它处理(例如,读取、写入或擦除处理)。
技术实现要素:
但是,本发明的发明人发现了以下问题。即,对闪存存储器的这种写入/擦除处理可以包括重要的处理。当这样重要的写入/擦除处理在处理中途被中断时,可能发生与整个系统相关的问题,从而使得半导体装置的操作不稳定。
从附图和本说明书的描述中,其它问题和新颖特征将是清楚的。
根据一个实施例,存储器控制器被配置为使得,当存储器控制器控制由第一主设备或第二主设备执行的对闪存存储器的写入/擦除处理时,存储器控制器可以在第一主设备正在执行对闪存存储器的写/擦除处理时禁止执行中的写入/擦除处理的中断,该中断是由于第二主设备对闪存存储器的访问造成的。
根据上述实施例,能够提供包括部署在其中的闪存存储器的半导体装置以及能够实现半导体装置中的稳定操作的闪存存储器控制方法。
附图说明
从以下结合附图对某些实施例的描述中,上述及其它方面、优点和特征将变得更加清楚,其中:
图1是示出根据第一实施例的半导体装置的框图;
图2是示出根据第一实施例的半导体装置中包括的存储器控制器的框图;
图3是示出根据第一实施例的半导体装置中使用的命令的示例的表格;
图4是用于说明对闪存存储器的写入/擦除处理的操作的时序图;
图5是用于说明中断/恢复对闪存存储器的写入/擦除处理的操作的时序图;
图6是用于说明对闪存存储器的写入/擦除处理的操作的时序图;
图7是示出根据第一实施例的半导体装置的另一个配置示例的框图;
图8是示出根据第二实施例的半导体装置中包括的存储控制器的框图;
图9是示出根据第二实施例的半导体装置中使用的命令的示例的表格;
图10是用于说明对闪存存储器的写入/擦除处理的操作的时序图;以及
图11是用于说明对闪存存储器的写入/擦除处理的操作的时序图。
具体实施方式
<第一实施例>
以下参考附图说明第一实施例。
图1是示出根据第一实施例的半导体装置的框图。如图1中所示,根据这个实施例的半导体装置1包括CPU(中央处理单元)10_1和10_2、存储器控制器11、闪存存储器12,RAM(随机存取存储器)13_1和13_2以及外围总线15。根据这个实施例的半导体装置1是例如微控制器。要注意的是,在本说明书中,CPU 10_1和10_2也可以分别被称为CPU 0和1。另外,CPU 10_1和10_2也可以统称为CPU。
另外,在本说明书中,“对闪存存储器的写入/擦除处理”是指“对闪存存储器的写入处理”或“对闪存存储器的擦除处理”。在本说明书中,当“对闪存存储器的写入处理”和“对闪存存储器的擦除处理”不彼此区分时,它们被描述为“对闪存存储器的写入/擦除处理”。
CPU(即,主设备)10_1和10_2中的每一个基于存储在闪存存储器12中的数据执行预定处理。即,CPU 10_1和10_2中的每一个是加载存储在闪存存储器12中的数据(程序)并且通过执行加载的程序来执行预定处理的处理器。通过执行如上所述的程序,CPU 10_1和10_2中的每一个可以用作微控制器1。要注意的是,CPU 10_1和10_2中的每一个可以在将存储在闪存存储器12中的程序加载到RAM 13_1和13_2中的相应一个中之后执行该程序。
图1中所示的半导体装置1具有包括CPU 10_1和10_2的配置,作为包括多个CPU的配置的示例。CPU 10_1和10_2中的每一个用作独立的主设备。具体而言,CPU 10_1用作第一主设备,并且CPU 10_2用作第二主设备。
提供RAM 13_1和13_2以便分别与CPU 10_1和10_2对应。具体而言,CPU 10_1连接到RAM 13_1。CPU 10_2连接到RAM 13_2。RAM 13_1和13_2是其中分别存储由CPU 10_1和10_2使用的数据的易失性存储器。存储在RAM 13_1和13_2中的数据包括例如当CPU 10_1和10_2分别执行程序时使用的数据。另外,如上所述,从闪存存储器12加载的程序可以存储在RAM中。
闪存存储器12是非易失性存储器,其中存储在CPU 10_1和10_2中使用的数据。存储在闪存存储器12中的数据的示例包括由CPU 10_1和10_2执行的程序数据、指示闪存存储器12的状态的标志数据以及安全密钥数据。
存储器控制器11控制从CPU 10_1和10_2中的每一个对闪存存储器12的访问。具体而言,存储器控制器11控制由CPU 10_1和10_2中的每一个执行的对闪存存储器12的写入/擦除处理。即,存储器控制器11实现根据这个实施例的闪存存储器控制方法。
存储器控制器11连接在CPU 10_1和10_2中的每一个与闪存存储器12之间。具体而言,CPU 10_1和10_2通过外围总线15连接到存储器控制器11。另外,存储器控制器11连接到闪存存储器12。要注意的是,闪存存储器12被配置为使得闪存存储器12可以将数据直接输出到CPU 10_1和10_2中的每一个,但是CPU 10_1和10_2中的每一个不能直接访问闪存存储器12。
即,CPU 10_1和10_2中的每一个被配置为使得它不能在没有存储器控制器11的介入的情况下将数据写入闪存存储器12或从闪存存储器12擦除数据。关于从闪存存储器12读取数据,CPU 10_1和10_2中的每一个可以被配置为使得它像在上述写入/擦除处理的情况下那样不能在没有存储器控制器11的介入的情况下从闪存存储器12读取数据,或者可以被配置为使得它可以在没有存储器控制器11的介入的情况直接从闪存存储器12读取数据。
接下来,参考图2说明存储器控制器11的配置。如图2中所示,存储器控制器11包括地址接收单元21、命令接收单元23和控制单元25。
地址接收单元21通过外围总线15接收从CPU 10_1或10_2发送的地址数据。地址数据是指示闪存存储器12中的地址的数据。如
图2中所示,地址接收单元21具有地址指定寄存器22。地址指定寄存器22是从CPU 10_1或10_2发送的地址数据所写入到的寄存器。将从CPU 10_1或10_2发送的地址数据写入到地址指定寄存器22中与地址数据的接收对应。
命令接收单元23通过外围总线15接收从CPU 10_1或10_2发送的写入数据。写入数据是由CPU 10_1或10_2写入以指示(即,通知)存储器控制器11关于存储器控制器11应当执行的控制的数据。由写入数据指明的控制的示例包括用于将数据写入到闪存存储器12中的控制和用于擦除存储在闪存存储器12中的数据的控制。具体而言,CPU 10_1或10_2通过以预定次序将一系列写入数据写入到存储器控制器11中而指明存储器控制器11应当执行的控制。这一系列写入数据与用于指定存储器控制器11应当执行的控制的命令对应。在下面的说明中,写入数据也可以被称为命令。
命令接收单元23包括命令指定寄存器24。命令指定寄存器24是从CPU 10_1或10_2发送的写入数据所写入到的寄存器。将从CPU 10_1或10_2发送的写入数据写入到命令指定寄存器24中对应于写入数据的接收。
控制单元25控制闪存存储器12。具体而言,控制单元25对于由写入地址指定寄存器22中的地址数据指示的闪存存储器12中的地址执行与写入命令指定寄存器24中的一系列写入数据(命令)对应的控制。
要注意的是,虽然图2示出了其中地址指定寄存器22和命令指定寄存器24分开设置的配置示例,但是实施例不限于这个配置示例。例如,地址指定寄存器22和命令指定寄存器24两者可以通过使用一个物理寄存器来形成。在这种情况下,例如,可以在将地址数据写入到寄存器中之后将写入数据写入到这个寄存器中。
接下来,说明由根据这个实施例的半导体装置1执行的操作。图3是示出在根据这个实施例的半导体装置中使用的命令的示例的表格。如图3中所示,准备“(A)数据写入命令”、“(B)数据擦除命令”、“(C)中断禁止+数据写入命令”和“(D)中断禁止+数据擦除命令”作为用于控制存储器控制器11的命令。
首先,说明当将数据写入到闪存存储器12中时执行的操作。在下面的说明中,说明其中作为CPU 10_1和10_2之一的CPU 10_1将数据写入到闪存存储器12中的示例。但是,相同的说明适用于CPU 10_2将数据写入到闪存存储器12中的情况。
当CPU 10_1将数据写入到闪存存储器12中时,它通过外围总线15将地址数据写入到地址指定寄存器22中(参见图2)。因此,指明了数据被写入到的闪速存储器12的地址空间中的地址。
在那之后,CPU 10_1将指示图3中所示的“(A)数据写入命令”的写入数据(即,一系列写入数据)相继写入到命令指定寄存器24中(参见图2)。具体而言,当CPU 10_1将4字节数据写入到闪存存储器12中时,它将一系列写入数据“H"E8”、“H"02”、“4字节数据(即,写入2字节数据两次:N=2)”和“H"D0”按照图3中所示的这个次序相继写入到命令指定寄存器24中。
另外,当CPU 10_1将16字节数据写入到闪存存储器12中时,它将一系列写入数据“H"E8”、“H"08”、“16字节数据(即,写入2字节数据8次:N=8)”和“H"D0”按照图3中所示的这个次序相继写入到命令指定寄存器24中。要注意的是,“H"”意味着它之后的数值以十六进制表示法来表示。
响应于此,存储器控制器11的控制单元25将写入命令指定寄存器24中的数据写入到闪存存储器12的地址空间中的由写入地址指定寄存器22中的地址数据指示的地址中。即,当在第二写入中写入“H"02”时,控制单元25将在第三和第四写入中写入的4字节数据写入到从由地址数据指示的地址开始具有等于四字节的尺寸的区域中。另外,当在第二写入中写入“H"08”时,控制单元25将在第三至第十写入中写入的16字节数据写入到从由地址数据指示的地址开始具有等于16字节的尺寸的区域中。
接下来,说明当从闪存存储器12擦除数据时执行的操作。当CPU 10_1从闪存存储器12擦除数据时,它通过外围总线15将地址数据写入到地址指定寄存器22中(参见图2)。因此,在闪存存储器12的地址空间中,指明了包含要被擦除的数据的块的地址。
之后,CPU 10_1将指示“(B)数据擦除命令”的写入数据(即,一系列写入数据)相继写入到命令指定寄存器24中。具体而言,CPU 10_1将一系列写入数据“H"20”和“H"D0”按这个次序相继写入到命令指定寄存器24中。
响应于此,存储器控制器11的控制单元25擦除在闪存存储器12的地址空间中的由写入地址指定寄存器22中的地址数据指示的地址处的块中所包含的数据。
图4是用于说明由半导体装置执行的写入/擦除处理的操作的时序图。图4中所示的时序图示出了上面说明的对于“将数据写入到闪存存储器12中”和“从闪存存储器12擦除数据”所执行的操作。要注意的是,“将数据写入到闪存存储器12中”和“从闪存存储器12擦除数据”的时序图彼此相同。因此,在图4中,写入命令和擦除命令两者都被表示为“写入/擦除命令”,并且写入处理和擦除处理两者都被表示为“写入/擦除处理”。这也适用于图5、6、10和11中所示的时序图。
当存储器控制器11没有正在对闪存存储器12执行写入/擦除处理时,其处于等待状态(命令等待状态)。在这个状态下,当CPU 10_1向外围总线15输出写入/擦除命令时(在图4中的定时t1),存储器控制器11通过外围总线15接收写入/擦除命令。在这个处理中,CPU 10_1还将地址数据输出到外围总线15。
在从外围总线15接收到地址数据时,存储器控制器11将地址数据写入到地址指定寄存器22中(参见图2)。因此,指明了数据所写入到的闪速存储器12的地址空间中的地址。
另外,在从外围总线15接收到写入/擦除命令时,存储器控制器11将写入/擦除命令(具体而言,图3中示出的“(A)数据写入命令”或“(B)数据擦除命令”)写入到命令指定寄存器24中(参见图2)(在定时t2)。以这种方式,执行写入/擦除处理。
具体而言,存储器控制器11的控制单元25对于由写入地址指定寄存器22中的地址数据所指示的地址执行与写入命令指定寄存器24的命令对应的写入/擦除处理。在这个处理中,存储器控制器11将用于指示向闪存存储器12施加写入/擦除脉冲(电压)的脉冲位升高到高电平达预定时间段。因此,闪存存储器12开始写入/擦除处理。
然后,在预定时间段过去之后,存储器控制器11将正被供给到闪存存储器12的脉冲位降低到低电平。因此,对闪存存储器12的写入/擦除处理结束。在那之后,在定时t3,存储器控制器11将具有高电平的验证位输出到闪存存储器12。因此,验证对闪存存储器12的写入/擦除处理是否已被适当地执行。在完成验证处理后,存储器控制器11再次变成等待状态(命令等待状态)(在定时t4)。
通过上述操作,执行对闪存存储器12的写入/擦除处理。
应当注意的是,在如图1中所示的具有多主设备配置的半导体装置1中,存储器控制器11控制从每个主设备(CPU 10_1和10_2)对闪存存储器12的访问。另外,存储器控制器11可以中断由主设备之一(例如,CPU 10_1)执行的对闪存存储器12的写入/擦除处理,使得另一个主设备(例如,CPU 10_2)可以在主设备之一(即,CPU 10_1)正在执行写入/擦除处理的时间段中访问闪存存储器12。
下面参考图5中所示的时序图来说明当中断/恢复对闪存存储器12的写入/擦除处理时执行的操作。要注意的是,对与图4中所示的操作相同的图5中所示的操作的部分的说明被适当地省略。
如图5中所示,当CPU 10_1向外围总线15输出写入/擦除命令时(在定时t101),存储器控制器11通过外围总线15接收写入/擦除命令。
在那之后,存储器控制器11执行与从外围总线15接收的命令对应的写入/擦除处理(在定时t102)。在这个处理中,存储器控制器11将用于指示向闪存存储器12施加写入/擦除脉冲(电压)的脉冲位升高到高电平达预定时间段。因此,闪存存储器12开始写入/擦除处理。
在那之后,在定时t103,当作为另一个主设备的CPU 10_2向外围总线15输出中断命令时,存储器控制器11通过外围总线15接收中断命令。当存储器控制器11在脉冲位处于高电平时接收到中断命令时,存储器控制器11将脉冲位维持在高电平达预定时间,然后执行诸如保存地址信息的中断处理(在定时t104)。在完成中断处理之后,存储器控制器11进入命令等待状态(在定时t105)。在中断处理正被执行的同时,CPU 10_2(即,另一个主设备)可以对闪存存储器12执行读取/写入/擦除处理(这个处理在图中被省略)。
在由CPU 10_2(即,另一个主设备)执行的处理结束之后,CPU 10_2向外围总线15输出恢复命令(在定时t106)。在通过外围总线15接收到恢复命令时,存储器控制器11执行恢复处理,诸如保存的信息的恢复(在定时t107)。在那之后,存储器控制器11恢复被中断的写入/擦除处理(在定时t108)。在这个处理中,存储器控制器11再次将用于指示向闪存存储器12施加写入/擦除脉冲(电压)的脉冲位升高到高电平达预定时间段。因此,闪存存储器12开始写入/擦除处理。
然后,在预定时间段过去之后,存储器控制器11将正被供给到闪存存储器12的脉冲位降低到低电平。因此,对闪存存储器12的写入/擦除处理结束。在那之后,在定时t109,存储器控制器11将具有高电平的验证位输出到闪存存储器12。因此,验证闪存存储器12的写入/擦除处理是否已被适当地执行。在完成验证处理时,存储器控制器11再次变成等待状态(命令等待状态)(在定时t110)。
图5示出了在主设备之一(即,CPU 10_1)正在对闪存存储器12执行写入/擦除处理时另一个主设备(即,CPU 10_2)向存储器控制器11做出中断/恢复处理的请求的情况下执行的一系列操作。在一些情况下,当另一个CPU(即,CPU 10_2)如上所述执行中断/恢复处理时,发生与整个系统相关的问题。
例如,当CPU 10_1向存储器控制器11做出对写入/擦除重要数据(诸如用于安全处理的安全密钥数据)的处理的请求并且然后CPU 10_2使用中断功能时,由CPU 10_1执行的写入/擦除处理被中断。在通常情况下,通过恢复处理来恢复被中断的由CPU 10_1执行的写入/擦除处理。但是,如果在中断期间发生某些问题,那么,即使执行恢复处理,被中断的由CPU 10_1执行的写入/擦除处理也不被恢复。在这种情况下,在安全密钥数据写入处理中发生写入错误,并且因此会发生与安全相关的问题。
另外,当如上所述执行用于中断/恢复对闪存存储器12的写入/擦除处理的处理时,写入/擦除处理所需的时间增加。具体而言,如图5中所示,当执行中断/恢复处理时,从中断处理开始(在定时t104)到恢复处理结束(在定时t108)的时间段被添加在写入/擦除处理中。因此,写入/擦除处理花费的时间增加。
考虑到这种情况,根据这个实施例的半导体装置具有禁止中断在对闪存存储器12的写入/擦除处理期间发生的附加功能。具体而言,存储器控制器11被配置为使得,当主设备之一(CPU 10_1)正在对闪存存储器12执行写入/擦除处理时,存储器控制器11可以禁止由另一个主设备(CPU 10_2)访问闪存存储器12所导致的对当前处理的写入/擦除处理的中断。
即,当从主设备之一(CPU 10_1)接收到的命令禁止写入/擦除处理的中断时,存储器控制器11禁止在该主设备(CPU 10_1)正在对闪存存储器12执行写入/擦除处理时中断当前处理的写入/擦除处理。
具体而言,根据这个实施例的半导体装置1具有用于禁止中断执行中的写入/擦除处理的(一个或多个)命令,作为用于控制存储器控制器11的(一个或多个)命令。即,如图3中所示,半导体装置1具有“(C)中断禁止+数据写入命令”和“(D)中断禁止+数据擦除命令”。
下面参考图6中所示的时序图来说明当执行图3中所示的“(C)中断禁止+数据写入命令”和“(D)中断禁止+数据擦除命令”时执行的操作。要注意的是,用于“将数据写入到闪存存储器12中”和“从闪存存储器12擦除数据”的时序图彼此相同。因此,在图6中,“(C)中断禁止+数据写入命令”和“(D)中断禁止+数据擦除命令”两者都被表示为“中断禁止+数据写入/擦除命令”。另外,“中断禁止+数据写入处理”和“中断禁止+数据擦除处理”两者都被表示为“中断禁止+数据写入/擦除处理”。
当存储器控制器11没有正在对闪存存储器12执行写入/擦除处理时,其处于等待状态(命令等待状态)。在这个状态下,当CPU 10_1向外围总线15输出“中断+写入/擦除处理命令”时(在图6中的定时t11),存储器控制器11通过外围总线15接收“中断写入/擦除处理命令”。在这个处理中,CPU 10_1还将地址数据输出到外围总线15。
在从外围总线15接收到地址数据时,存储器控制器11将地址数据写入到地址指定寄存器22中(参见图2)。因此,指明了数据所写入到的闪存存储器12的地址空间中的地址。应当注意的是,在数据擦除处理的情况下,数据在逐块的基础上被擦除。因此,在闪存存储器12的地址空间中,指明了包含要被擦除的数据的块的地址。
另外,在从外围总线15接收到“中断禁止+写入/擦除处理命令”时,存储器控制器11将“中断禁止+写入/擦除处理命令”(具体而言,图3中所示的“(C)中断禁止+数据写入命令”或“(D)中断禁止+数据擦除命令”)写入到命令指定寄存器24中(参见图2)(在定时t12)。以这种方式,执行“中断禁止+写入/擦除处理”。
具体而言,存储器控制器11的控制单元25对于由写入指定地址指定寄存器22中的地址数据所指示的地址执行与写入命令指定寄存器24中的命令对应的写入/擦除处理。在这个处理中,存储器控制器11将用于指示向闪存存储器12施加写入/擦除脉冲(电压)的脉冲位升高到高电平达预定时间段。因此,闪存存储器12开始写入/擦除处理。要注意的是,当通过使用上面提到的命令执行写入/擦除处理时执行的操作类似于当通过使用如图3中所示的“(A)数据写入命令”和“(B)数据擦除命令”执行写入和擦除处理时执行的操作。
另外,指示“中断禁止”的命令被写入存储器控制器11的命令指定寄存器24中。具体而言,在图3中所示的“(C)中断禁止+数据写入命令”的情况下,第一写入数据“H"17”意味着“中断禁止+数据写入处理”。另外,在“(D)中断禁止+数据擦除命令”中,第一写入数据“H"DF”意味着“中断禁止+数据擦除处理”。
在这种情况下,当CPU 10_1在对闪存存储器12执行写入/擦除处理时,存储器控制器11禁止中断当前处理的写入/擦除处理。即,如图6中所示,在定时t13,即使当CPU 10_2通过外围总线15向存储器控制器11提供中断命令时,存储器控制器11也忽略由CPU 10_2提供的这个中断命令并继续由CPU 10_1执行的对闪存存储器12的写入/擦除处理。
在预定时间段过去之后,存储器控制器11将正被供给到闪存存储器12的脉冲位降低到低电平。因此,对闪存存储器12的写入/擦除处理结束。在那之后,在定时t14,存储器控制器11将具有高电平的验证位输出到闪存存储器12。因此,验证对闪存存储器12的写入/擦除处理是否已被适当地执行。在完成验证处理时,存储器控制器11再次变成等待状态(命令等待状态)(在定时t15)。
通过上述操作,执行对闪存存储器12的“中断禁止+写入/擦除处理”。
如上所述,根据这个实施例的半导体装置被配置为使得,当主设备之一(CPU 10_1)正在对闪存存储器12执行写入/擦除处理时,由主设备之一(CPU 10_1)执行的这个写入/擦除处理即使在另一个主设备(CPU 10_2)请求访问闪存存储器12时也不被中断。
以这种方式,能够防止用于向闪存存储器写入/从闪存存储器擦除重要数据的处理在处理的中途被中断,并因此防止发生与整个系统相关的问题。因此,能够提供包括部署在其中的闪存存储器的半导体装置以及能够实现半导体装置中的稳定操作的闪存存储器控制方法。
另外,通过防止对闪存存储器的写入/擦除处理在处理的中途被中断,能够防止对闪存存储器的写入/擦除处理所需的时间增加。
另外,在这个实施例中,例如,当主设备(CPU 10_1或10_2)向闪存存储器写入/从闪存存储器擦除的数据包含标志数据和安全密钥数据中的至少一个时,执行中的这种写入/擦除处理的中断可以被禁止。
即,由于这种标志数据或安全密钥数据是重要数据,因此,如果正在向闪存存储器写入/从闪存存储器擦除这种重要数据时发生错误,那么会发生与整个系统相关的严重问题。因此,优选的是,当这种重要数据被写入闪存存储器/从闪存存储器擦除时,禁止执行中的这种写入/擦除处理的中断。
但是,如果完全禁止执行中的写入/擦除处理的中断,那么系统的灵活性降低。因此,在这个实施例中,当诸如标志数据或安全密钥数据的重要数据被写入闪存存储器/从闪存存储器擦除时,可以禁止执行中的这种写入/擦除处理的中断,而当其它数据(不重要的普通数据)被写入闪存存储器/从闪存存储器擦除时,可以允许执行中的这种写入/擦除处理的中断。
即,通过允许根据要处理的数据的重要性从图3中所示的命令中选择要使用的命令,能够稳定系统中执行的操作同时维持系统的灵活性。具体而言,当向闪存存储器写入/从闪存存储器擦除重要数据时,选择图3中所示的“(C)中断禁止+数据写入命令”或“(D)中断禁止+数据擦除命令”,而当向闪存存储器写入/从闪存存储器擦除其它数据(不重要的普通数据)时,选择图3中所示的“(A)数据写入命令”或“(B)数据擦除命令”。
另外,对根据这个实施例的半导体装置的仅有的要求是包括多个主设备。即,半导体装置中的主设备的数量可以任意确定。在图1中所示的半导体装置1中,示出了包括两个CPU 10_1和10_2的配置示例,其中CPU 10_1和10_2中的每一个用作独立的主设备。但是,根据这个实施例的半导体装置可以包括三个或更多个CPU。
另外,在这个实施例中,如图7中的半导体装置2所示,半导体装置可以包括一个CPU 30和一个RAM 33。在这种情况下,一个CPU 30被配置为用作多个主设备。即,虽然就硬件而言CPU 30被构造为一个CPU,但是能够通过使用虚拟化技术将CPU 30的处理能力划分为包括在CPU 30中的多个虚拟CPU。例如,当通过使用同一CPU 30(即,通过使用一个CPU 30)形成虚拟CPU_V1和虚拟CPU_V2时,虚拟CPU_V1和虚拟CPU_V2分别用作第一主设备和第二主设备。要注意的是,虚拟CPU的数量也是任意确定的。
根据上述实施例,能够提供包括部署在其中的闪存存储器的半导体装置以及能够实现半导体装置中的稳定操作的闪存存储器控制方法。
<第二实施例>
接下来,说明第二实施例。
在根据第二实施例的半导体装置中,存储控制器的配置不同于上面在第一实施例中说明的半导体装置1的配置。配置的其余部分与根据第一实施例的半导体装置的配置类似,并因此适当地省略重复的说明。
图8是示出根据这个实施例的半导体装置中包括的存储器控制器40的框图。如图8中所示,存储器控制器40包括地址接收单元41、命令接收单元43、主设备接收单元45和控制单元48。
地址接收单元41包括地址指定寄存器42。要注意的是,地址接收单元41和地址指定寄存器42的配置和操作与图2中所示的地址接收单元21和地址指定寄存器22的配置和操作类似,并因此省略对它们的重复说明。
命令接收单元43包括命令指定寄存器44。如图9中所示的命令的命令(即,“(A)数据写入命令”或“(B)数据擦除命令”)被写入到命令指定寄存器44。要注意的是,命令接收单元43和命令指定寄存器44的配置和操作类似于图2中所示的命令接收单元23和命令指定寄存器24的配置和操作,并因此省略对它们的重复说明。
主设备接收单元45包括主设备信息保持寄存器46。主设备信息保持寄存器46是保持(即,存储)关于正在访问闪存存储器12的主设备(即,正在对闪存存储器12执行写入/擦除处理的主设备(图1中所示的CPU 10_1或者10_2))的信息的寄存器。当其访问闪存存储器12时,CPU 10_1和10_2中的每一个向外围总线15输出地址数据和写入数据(命令)。在这个处理中,主设备信息保持寄存器46从外围总线15接收关于已经发出命令的主设备的信息(关于在命令发出源处的CPU的信息)(在下文中也称为主设备信息)。例如,主设备信息是通过外围总线15的信号线提供的主设备信息。
控制单元48控制闪存存储器12。具体而言,控制单元48对于闪存存储器12中由写入地址指定寄存器42的地址数据指示的地址执行与写入命令指定寄存器44中的一系列写入数据(命令)对应的控制。
另外,当控制单元48接收到用于中断执行中的写入/擦除处理的中断命令时,其基于保持在主设备信息保持寄存器46中的主设备(例如,主设备的名称)与已发送中断命令的主设备(例如,主设备的名称)之间的比较结果来确定是否禁止执行中的写入/擦除处理的中断。
具体而言,当保持在主设备信息保持寄存器46中的主设备与已发送中断命令的主设备不同时,控制单元48禁止执行中的写入/擦除处理的中断。另一方面,当保持在主设备信息保持寄存器46中的主设备与已发送中断命令的主设备相同时,控制单元48允许执行中的写入/擦除处理的中断。
接下来,参考图10和11说明由根据这个实施例的半导体装置执行的操作。图10是用于说明对闪存存储器12的写入/擦除处理的操作的时序图,并且示出了当保持在主设备信息保持寄存器46中的主设备与已发送中断命令的主设备不同时执行的操作。图11是用于说明对闪存存储器12的写入/擦除处理的操作的时序图,并且示出了当保持在主设备信息保持寄存器46中的主设备与已发送中断命令的主设备相同时执行的操作。
首先,说明图10中所示的操作。当存储器控制器40没有正在对闪存存储器12执行写入/擦除处理时,存储器控制器40处于等待状态(命令等待状态)。在这种状态下,当CPU 10_1向外围总线15输出写入/擦除处理命令(参见图9)时(在定时t21),存储器控制器40通过外围总线15接收写入/擦除处理命令。在这个处理中,CPU 10_1还将地址数据输出到外围总线15。
在从外围总线15接收到地址数据时,存储器控制器40将地址数据写入到地址指定寄存器42中(参见图8)。因此,指明了数据所写入到的闪存存储器12的地址空间中的地址。应当注意的是,在数据擦除处理的情况下,数据在逐块的基础上被擦除。因此,在闪存存储器12的地址空间中,指明了包含要被擦除的数据的块的地址。
另外,在从外围总线15接收到写入/擦除处理命令时,存储器控制器40将写入/擦除处理命令(具体而言,图9中所示的“(A)数据写入命令”或“(B)数据擦除命令”)写入到命令指定寄存器44中(参见图8)(在定时t22)。以这种方式,执行写入/擦除处理。
具体而言,存储器控制器40的控制单元48对于由写入地址指定寄存器42的地址数据指示的地址执行与写入命令指定寄存器44的命令对应的写入/擦除处理。在这个处理中,存储器控制器40将用于指示向闪存存储器12施加写入/擦除脉冲(电压)的脉冲位升高到高电平达预定时间段。因此,闪存存储器12开始写入/擦除处理。要注意的是,当通过使用上面提到的命令执行写入/擦除处理时执行的操作类似于当通过使用图3中所示的“(A)数据写入命令”和“(B)数据擦除命令”执行写入和擦除处理时执行的操作。因此,省略其重复的说明。
另外,主设备信息保持寄存器46从外围总线15接收关于已经在上述处理中(在定时t21)发出命令的主设备(CPU 10_1)的信息并保持接收到的信息。
在这种状态下,当从CPU 10_2向外围总线15输出中断命令时,存储器控制器40通过外围总线15接收从CPU 10_2输出的中断命令(在定时t23)。然后,存储器控制器40将存储在主设备信息保持寄存器46中的主设备信息(CPU 10_1)与已发送中断命令的主设备(CPU 10_2)的信息进行比较。在这种情况下,由于存储在主设备信息保持寄存器46中的主设备信息(CPU 10_1)不同于已发送中断命令的主设备(CPU 10_2)的信息,因此存储控制器40忽略从CPU 10_2发送的中断命令并因此继续由CPU 10_1执行的对闪存存储器12的写入/擦除处理。
在预定时间段过去之后,存储器控制器40将正被供给到闪存存储器12的脉冲位降低到低电平。因此,对闪存存储器12的写入/擦除处理结束。在那之后,在定时t24,存储器控制器40将具有高电平的验证位输出到闪存存储器12。因此,验证闪存存储器12的写入/擦除处理是否已经被适当地执行。在完成验证处理时,存储器控制器40再次变成等待状态(命令等待状态)(在定时t25)。
通过上述操作,执行对闪存存储器12的写入/擦除处理。在图10中所示的操作中,保持在主设备信息保持寄存器46中的主设备(CPU 10_1)不同于已发送中断命令的主设备(CPU 10_2),因此当前处理的写入/擦除处理的中断被禁止。
接下来,参考图11中所示的时序图说明当主设备信息保持寄存器46中保持的主设备与已经发送中断命令的主设备相同时执行的操作。
当存储器控制器40没有正在对闪存存储器12执行写入/擦除处理时,存储器控制器40处于等待状态(命令等待状态)。在这种状态下,当CPU 10_1向外围总线15输出写入/擦除处理命令(参见图9)时(在定时t31),存储器控制器40通过外围总线15接收写入/擦除处理命令。在这个处理中,CPU 10_1还将地址数据输出到外围总线15。
在从外围总线15接收到地址数据时,存储器控制器40将地址数据写入到地址指定寄存器42中(参见图8)。因此,指明了数据所要写入到的闪存存储器12的地址空间中的地址。应当注意的是,在数据擦除处理的情况下,数据在逐块的基础上被擦除。因此,在闪存存储器12的地址空间中,指明了包含要擦除的数据的块的地址。
另外,在从外围总线15接收到写入/擦除处理命令时,存储器控制器40将写入/擦除处理命令(具体而言,图9中所示的“(A)数据写入命令”或“(B)数据擦除命令”)写入到命令指定寄存器44中(参见图8)(在定时t32)。以这种方式,执行写入/擦除处理。
具体而言,存储器控制器40的控制单元48对于由写入地址指定寄存器42中的地址数据指示的地址执行与写入命令指定寄存器44中的命令对应的写入/擦除处理。在这个处理中,存储器控制器40将用于指示向闪存存储器12施加写入/擦除脉冲(电压)的脉冲位升高到高电平达预定时间段。因此,闪存存储器12开始写入/擦除处理。要注意的是,通过使用上面提到的命令执行写入/擦除处理时执行的操作类似于当通过使用图3中所示的“(A)数据写入命令”和“(B)数据擦除命令”执行写入和擦除处理时执行的操作。因此,省略其重复的说明。
另外,主设备信息保持寄存器46从外围总线15接收关于在上述处理中(在定时t31)已发出命令的主设备(CPU 10_1)的信息并且保持接收到的信息。
在这种状态下,当从CPU 10_1向外围总线15输出中断命令时,存储器控制器40通过外围总线15接收从CPU 10_1输出的中断命令(在定时t33)。然后,存储器控制器40将存储在主设备信息保持寄存器46中的主设备信息(CPU 10_1)与已发送中断命令的主设备(CPU 10_1)的信息进行比较。在这种情况下,由于存储在主设备信息保持寄存器46中的主设备信息(CPU 10_1)与已发送中断命令的主设备(CPU 10_1)的信息相同,因此存储器控制器40允许从CPU 10_1发送的中断请求并因此中断由CPU 10_1执行的对闪存存储器12的写入/擦除处理。
即,当存储器控制器40在脉冲位处于高电平时接收到中断命令时,存储器控制器40将脉冲位维持在高电平达预定时间,并且然后执行诸如保存地址信息的中断处理(在定时t34)。在完成中断处理之后,存储器控制器40进入命令等待状态(在定时t35)。在正在执行中断处理时,CPU 10_1可以对闪存存储器12执行读取/写入/擦除处理(这个处理在图中被省略)。
要注意的是,后续处理(诸如恢复处理)类似于在图5中的定时t107处和之后执行的处理,并因此省略其重复的说明。
通过上述操作,执行对闪存存储器12的写入/擦除处理。在图11中所示的操作中,保持在主设备信息保持寄存器46中的主设备(CPU 10_1)与已发送中断命令的主设备(CPU 10_1)相同,因此当前处理的写入/擦除处理的中断被允许。
在根据这个实施例的半导体装置中,还能够防止向闪存存储器写入/从闪存存储器擦除重要数据的处理在处理的中途被中断并因此防止与整个系统相关的问题发生。因此,能够提供包括部署在其中的闪存存储器的半导体装置以及能够实现半导体装置中的稳定操作的闪存存储器控制方法。
另外,在根据这个实施例的半导体装置中,主设备可以中断由同一主设备(即,主设备本身)正在执行的写入/擦除处理,如图11中所示。因此,当具有比当前处理的写入/擦除处理的优先级更高的优先级的处理发生并且正在执行该当前处理的写入/擦除处理的主设备具有比另一个主设备的优先级更高的优先级时,该主设备可以中断由该主设备本身执行的当前处理的写入/擦除处理。因此,能够在考虑每个处理的优先级的同时适当地控制对闪存存储器的写入/擦除处理。
要注意的是,在这个实施例中,如果期望禁止同一个主设备的中断处理,那么可以添加图3中所示的“(C)中断禁止+数据写入命令”和“(D)中断禁止+数据擦除命令”。
另外,在这个实施例中,当基于保持在主设备信息保持寄存器46中的主设备与已发送中断命令的主设备之间的比较结果确定执行中的写入/擦除处理是否应当中断时,可以使用每个主设备的优先级。
例如,关于每个主设备的优先级的信息可以预先存储在存储器控制器40中包括的控制单元48中,并且控制单元48可以基于保持在主设备信息保持寄存器46中的主设备与已发送中断命令的主设备的优先级之间的比较结果来确定是否禁止执行中的写入/擦除处理的中断。
具体而言,当保持在主设备信息保持寄存器46中的主设备的优先级高于已发送中断命令的主设备的优先级时,存储器控制器40可以禁止执行中的写入/擦除处理的中断。另外,当保持在主设备信息保持寄存器46中的主设备的优先级低于已发送中断命令的主设备的优先级时,存储器控制器40可以允许执行中的写入/擦除处理的中断。
本领域普通技术人员可以如可期望的组合第一实施例和第二实施例。
虽然已经依据若干实施例描述了本公开,但是本领域技术人员将认识到的是,可以在所附权利要求的精神和范围内以各种修改来实践本公开,并且本公开不限于上述示例。
另外,权利要求的范围不受限于上述实施例。
另外,要注意的是,申请人的意图是涵盖所有权利要求要素的等同物,即使稍后在审查进程期间被修改。
技术特征:
1.一种半导体装置,包括:
第一主设备和第二主设备,能够执行预定处理;
数据可重写闪存存储器;以及
存储器控制器,被配置为控制由所述第一主设备或所述第二主设备执行的对所述闪存存储器的写入/擦除处理,其中
所述存储器控制器被配置为使得,当所述第一主设备正在对所述闪存存储器执行写入/擦除处理时,所述存储器控制器能够禁止执行中的写入/擦除处理的中断,所述中断是由于所述第二主设备对所述闪存存储器的访问造成的。
2.如权利要求1所述的半导体装置,其中,当从所述第一主设备接收到的命令禁止写入/擦除处理的中断时,所述存储器控制器在所述第一主设备正在对所述闪存存储器执行写入/擦除处理时禁止执行中的写入/擦除处理的中断。
3.如权利要求2所述的半导体装置,其中
所述存储器控制器包括从所述第一主设备或所述第二主设备接收到的命令所写入到的命令指定寄存器,以及
当从所述第一主设备接收并写入到所述命令指定寄存器中的命令禁止写入/擦除处理的中断时,所述存储器控制器在所述第一主设备正在对所述闪存存储器执行写入/擦除处理时禁止执行中的写入/擦除处理的中断。
4.如权利要求1所述的半导体装置,其中
所述存储器控制器包括主设备信息保持寄存器,所述主设备信息保持寄存器被配置为存储关于对所述闪存存储器执行写入/擦除处理的主设备的信息,以及
当所述存储器控制器接收到用于中断执行中的写入/擦除处理的中断命令时,所述存储器控制器基于保持在所述主设备信息保持寄存器中的主设备与已发送所述中断命令的主设备之间的比较结果来确定是否中断执行中的写入/擦除处理。
5.如权利要求4所述的半导体装置,其中,当保持在所述主设备信息保持寄存器中的主设备与已发送所述中断命令的主设备不同时,所述存储器控制器禁止执行中的写入/擦除处理的中断。
6.如权利要求4所述的半导体装置,其中,当保持在所述主设备信息保持寄存器中的主设备与已发送所述中断命令的主设备相同时,所述存储器控制器允许执行中的写入/擦除处理的中断。
7.如权利要求4所述的半导体装置,其中,当保持在所述主设备信息保持寄存器中的主设备的优先级高于已发送所述中断命令的主设备的优先级时,所述存储控制器禁止执行中的写入/擦除处理的中断。
8.如权利要求4所述的半导体装置,其中,当保持在所述主设备信息保持寄存器中的主设备的优先级低于已发送所述中断命令的主设备的优先级时,所述存储控制器允许执行中的写入/擦除处理的中断。
9.如权利要求1所述的半导体装置,其中,当所述第一主设备正在向所述闪存存储器写入/从所述闪存存储器擦除的数据包含标志数据和安全密钥数据中的至少一个时,所述存储器控制器禁止执行中的写入/擦除处理的中断。
10.如权利要求1所述的半导体装置,其中
所述第一主设备通过使用第一处理器形成,以及
所述第二主设备通过使用第二处理器形成。
11.如权利要求1所述的半导体装置,其中
所述第一主设备是第一虚拟CPU,
所述第二主设备是第二虚拟CPU,以及
所述第一虚拟CPU和所述第二虚拟CPU通过使用一个处理器形成。
12.一种闪存存储器控制方法,用于控制由第一主设备或第二主设备执行的对闪存存储器的写入/擦除处理,所述方法包括:
在所述第一主设备正在对所述闪存存储器执行写入/擦除处理时,禁止执行中的写入/擦除处理的中断,所述中断是由于所述第二主设备对所述闪存存储器的访问造成的。
技术总结
本公开涉及半导体装置和闪存存储器控制方法。根据一个实施例,存储器控制器被配置为使得,当存储器控制器控制由第一主设备或第二主设备执行的对闪存存储器的写入/擦除处理时,存储器控制器能够在第一主设备正在对闪存存储器执行写入/擦除处理时禁止执行中的写入/擦除处理的中断,该中断是由于第二主设备对闪存存储器的访问造成的。
技术研发人员:仓藤崇
受保护的技术使用者:瑞萨电子株式会社
技术研发日:.06.15
技术公布日:.01.04