发明内容
然而,从适应多种SDRAM的观点来看第一方法存在缺点。命令发出序列根据SDRAM的种类而变化并且在制造商之间也略有变化。
校准序列等是复杂的,并且要采用的策略也根据将序列所汇集到的系统而变化。通过固定硬件实现的控制器是不灵活的。
在第二方法中,精确设置SDRAM命令的间隔的方法是个问题。当通过外部控制器测量从一个SDRAM命令到下一SDRAM命令的间隔时,发生以下问题。
需要考虑许多因素以保证充分的命令间隔,并且功能扩展到多个模块。因此,外部控制器的规范是复杂的,并且也很难执行验证。软件是非常复杂的,并且其造成可读性和维护上的劣化。外部控制器的处理负载也增加。因为不可预知部分较大,当保证充分余量时,设备等待时间比需要的长。
因此本发明的主要目的是提供一种存储器控制设备和半导体处理装置,其可以灵活地适应于多种半导体存储器。
本发明提供了一种存储器控制设备,用于通过发出一系列命令控制半导体存储器,并且包括寄存器和命令发出单元。由外部控制设备将待发出的命令以及从发出该命令以后直到发出下一命令的等待时间写入寄存器。命令发出单元停止发出下一命令,直到发出寄存器中写入的命令以后逝去寄存器中写入的等待时间为止。
本发明的半导体处理装置包括系统总线、CPU以及存储器控制设备。CPU连接到系统总线。存储器控制设备连接到系统总线,并从CPU接收命令信息以及时间间隔信息,该时间间隔信息指定作为直到将下一命令信息发出到外部半导体存储器为止的命令信息的等待时间的时间间隔。存储器控制设备包括寄存器,用于存储命令信息和时间间隔信息。寄存器接收输出到系统总线的命令和时间间隔,并且以成对状态存储它们。
在根据本发明的存储器控制设备和半导体处理装置中,当由例如CPU的外部控制设备将待发出的命令和从发出该命令以后直到发出下一命令的等待时间写入寄存器时,停止发出下一命令,直到发出寄存器中写入的命令以后逝去寄存器中写入的等待时间为止。因此,通过改变外部控制单元的软件,存储器控制设备和半导体处理装置可以灵活地形成以适应于多种半导体存储器。因为命令的间隔有存储器控制设备控制,可以减轻外部控制设备上的负担。
具体实施方式
图1是示出作为本发明的实施方式的存储器系统的主要组件的框图。图1中,存储器系统具有半导体处理装置4以及SDRAM 5,半导体处理装置4包括CPU(中央处理单元)1、系统总线2以及SDRAM控制器3。“SDRAM”是各种SDRAM的通称,例如SDR(单数据率)、DDR(双数据率)、LP(低功率)-DDR、DDR2和DDR3。
在SDRAM控制器3和SDRAM 5之间的信号可以分类为时钟、命令、数据以及其他信号,如图2中所示。时钟是作为SDRAM 5的操作定时的基准的信号。命令信号包括时钟使能信号CKE、芯片选择信号CS#、行地址/选通信号RAS#、列地址/选通信号CAS#、写入使能信号WE#、地址信号A以及库地址信号BA。数据信号包括数据信号DQ、指示数据信号DQ的输出定时的信号DQS以及数据掩码信号DM。其他信号包括复位信号RESET#用于在通电时初始化控制电路、信号ODT用于开启/关闭数据输出线的端接电阻器等。
SDRAM命令是到SDRAM 5的指令,由与时钟同步地输入到SDRAM的命令信号的组合来表示。又如在背景技术中描述的,在通电时或从低功率模式返回时,SDRAM控制器3必须以充分时间间隔将一系列SDRAM命令输出到SDRAM 5。作为命令间隔的限制,通常,仅指定最小值。最小间隔的具体长度从几周期到数百微秒(数万周期)而变化。
本发明的命令发出序列所需的SDRAM命令的种类包括模式寄存器设置、预充电所有库、刷新、ZQ校准、CKE操作等。CKE操作包括掉电入口、掉电出口、自刷新入口、自刷新出口等。此外,RESET#端子的操作在一些情况中也是需要的。
图3是示出SDRAM控制器3的原理的配置的示意图。图3中,SDRAM控制器3包括寄存器单元6和命令发出单元9。寄存器单元6包括:第一存储空间7,用于存储指示要发出的SDRAM命令的第一信号;以及第二存储空间8,用于存储指示最小间隔的第二信号,该最小间隔是指从发出由写入第一存储空间7的第一信号指示的SDRAM命令以后直到发出下一SDRAM为止命令寄存器单元6要等待的最小间隔。第一和第二信号每个都包括由多个比特构成的数据信号。可以通过存储设备将存储空间7和8形成为硬件或分配到指定地址的软件存储区,数据由CPU 1写入该地址/从该地址读出。
根据存储在未示出存储器中的程序,CPU 1顺序地将多组第一和第二信号写入到寄存器单元6中以使得SDRAM控制器3发出一系列SDRAM命令。在寄存器单元6的比特宽度和系统总线2相同的情况下,CPU 1将命令和“最小间隔”组以成对状态写入到寄存器单元6中。例如,当寄存器单元6的比特宽度是64比特并且系统总线2的比特宽度是32比特时,CPU 1将32比特的数据两次写入寄存器单元6以维持成对状态。在寄存器单元6中,命令和“最小间隔”保持在命令和“最小间隔”成对的状态。
因为寄存器单元6的存储容量是有限的,当存储空间7和8不具有自由空间时,寄存器单元6侧必须使得CPU 1等待。因此,CPU 1发送写请求到寄存器单元6。当存储空间7和8具有自由空间时,寄存器单元6接收CPU 1的写请求并将第一和第二信号分别写入存储空间7和8。在存储空间7和8不具有自由空间的情况下,寄存器单元6不接收CPU 1的写请求,直到空间变得可用为止,并且CPU 1等待。
命令发出单元9发出由写入第一存储空间7的第一信号指示的SDRAM命令,并且从发出该SDRAM命令以后直到发出下一SDRAM命令,仅等待由写入第二存储空间8的第二信号指示的最小间隔的时间。在命令发出单元9的等待期间,命令发出单元9不输出有效SDRAM命令。有效SDRAM命令包括空操作命令NOP以及设备取消选定命令DES,用于将芯片选择信号CS#固定在无效电平。
换言之,在处理通过第n次写入寄存器单元6输入的命令发出请求时,命令发出单元9进行检查,以查看从通过第n-1次写入寄存器单元6的SDRAM命令发出以后是否已逝去由第(n-1)次写入指定的“最小间隔”。命令发出单元9等待,直到保证了所指定间隔为止,并发出由第n次写入指定的命令。
SDRAM 5接收由命令发出单元9发出的SDRAM命令,并根据所接收的SDRAM命令执行操作。
图4(a)和4(b)是示出存储器系统的命令发出序列的时间图。假设通过第一次写入寄存器单元6,C1写入作为命令种类并且T1写入作为最小间隔。命令发出单元9输出写入寄存器单元6的命令种类C1到SDRAM 5。尽管存在从写入寄存器6直到输出到SDRAM5花去几周期时间的可能性,其不是大问题。
假设在从第一次命令输出以后逝去时间T1之前,对寄存器单元6执行第二次写入(命令种类C2和最小间隔T2)。在这种情况下,延迟第二次命令发出,直到保证了从第一次命令发出以后的间隔T1为止。
假设执行到寄存器单元6的第三次写入(命令种类C3和最小间隔T3)。在第三次写入定时迟于从第二次命令输出以后逝去时间T2之后的时间,如图4(a)和4(b)所示,则指定的命令C3立即输出。通过执行这种控制,至少可以保证等于或长于指定的最小间隔的间隔。
如图5(a)和5(b)所示,作为命令种类,也可以选择NOP命令。通过选择NOP命令,可以保证从通电或开始提供时钟以后直到输出有效命令的等待时间。在期望指定的最小间隔太长以至于不能由寄存器单元6中准备的比特宽度表示的情况下,可以增加间隔。例如,假设期望保证500000周期的等待时间而寄存器单元6中可以指定为最小间隔的值最多60000周期。在这种情况下,当执行十次将命令种类NOP和50000周期的最小间隔写入到寄存器单元6时,可以保证期望的时间。
图6是示出SDRAM控制器3的具体配置的框图。图6中,SDRAM控制器3具有总线接口11、内部总线12、内部缓冲器13、命令发出寄存器14、降值计数器15、控制单元16、多路复用器17、完成确定单元18以及操作完成等待寄存器19。总线接口11、内部总线12、内部缓冲器13、命令发出寄存器14、完成确定单元18以及操作完成等待寄存器19形成寄存器单元6。降值计数器15、控制单元16以及多路复用器17形成命令发出单元9。
CPU 1经由系统总线2将写请求发送到SDRAM控制器3。写请求经由总线接口11和内部总线12给到内部缓冲器13。内部缓冲器13在存在空间来存储命令发出请求(SDRAM命令和最小间隔)的情况下接收写请求。在没有空间的情况下,内部缓冲器13不接收写请求直到产生了空间。
当接收到写请求时,将要发出的SDRAM命令以及从发出该SDRAM命令以后直到发出下一SDRAM命令的最小间隔(备用时间)从CPU 1经由系统总线2、总线接口11以及内部总线12写入内部缓冲器13。
设置内部缓冲器13用于减少由于总线协议的握手等造成的时间损失,以及缓冲多组命令发出请求(每个由SDRAM命令和最小间隔构成)。当在命令发出寄存器14中存在空间时,将保持在内部缓冲器13中的命令发出请求传送到命令发出寄存器14。命令发出寄存器14保持命令发出请求等待发出定时。命令发出寄存器14可以是一级配置的寄存器或者具有多状态配置的寄存器,例如FIFO。以下将描述一级配置的寄存器的情况。将保持在命令发出寄存器14中的“最小间隔”和“SDRAM命令”分别提供到降值计数器15和多路复用器17。
降值计数器15保持剩余时间直到由上次命令发出指定的间隔结束。计数值每周期减少。当剩余时间变为零时,计数值不再减少。当命令发出请求提供到命令发出寄存器14并且从降值计数器15输出的剩余时间是零(或足够小)时,控制单元16输出指示命令发出定时的脉冲信号。
响应于脉冲信号,降值计数器15加载保持在命令发出寄存器14中的“最小间隔”的值,并且开始降值计数以准备发出下一命令。多路复用器17从命令发出寄存器14接收SDRAM命令,响应于脉冲信号在仅一个周期中输出来自命令发出寄存器14的SDRAM命令,并且在其他周期中输出无效SDRAM命令(例如,NOP命令)。响应于脉冲信号,擦除存储在命令发出寄存器14中的数据使得产生自由空间。
完成确定单元18确定是否加载到SDRAM控制器3的所有命令发出请求都已经处理并且输出到SDRAM 5。在内部缓冲器13和命令发出寄存器14二者都变为空以后逝去预定时间(对应于从命令发出寄存器14到SDRAM的潜伏时间)之后,完成确定单元18的输出信号变为真(例如,“H”电平)。当新命令发出请求加载到内部缓冲器13或命令发出寄存器14时,完成确定单元18的输出信号变为假(例如,“L”电平)。对于来自CPU 1的读请求,当完成确定单元18的输出信号是真时,操作完成等待寄存器19立即发送应答。然而,当输出信号是假时,操作完成等待寄存器19不发送应答。因此,也可以精确地保证不由SDRAM控制器3控制的定时(例如时钟或电源的中断)和SDRAM命令发出之间的间隔。
代替操作完成等待寄存器19,可以提供状态寄存器,用于响应于CPU 1的读请求立即发送信号,指示完成确定单元18的输出信号是真还是假。也可能不用操作完成等待寄存器19而将完成确定单元18的输出信号直接提供到CPU 1。
图7(a)至7(g)是示出图6中所示存储器系统的命令发出序列的时间图。在时刻t1,写请求从内部缓冲器13发送到命令发出寄存器14。因为命令发出寄存器14具有自由空间,要发出的SDRAM命令C1和最小间隔T1=6从内部缓冲器13写入命令发出寄存器14。因为降值计数器15的计数值为零,指示发出定时的脉冲信号输出,并且SDRAM命令C1输出到SDRAM 5。响应于指示发出定时的脉冲信号,最小间隔T1=6加载到降值计数器15。降值计数器15开始降值计数。擦除命令发出寄存器14中的数据,并且寄存器14变为空。指示寄存器14不为空的忙信号变为“L”电平,其是无效电平。
在第一命令输出以后逝去最小间隔T1=6之前的时刻t2,将写请求从内部缓冲器13发送到命令发出寄存器14,并且执行到寄存器14的第二次写入(命令种类C2和最小间隔T2=4)。在这种情况下,延迟第二次命令发出,直到保证了从第一次命令发出以后的最小间隔T1=6为止。
进一步,在第二次命令输出以后逝去最小间隔T2=4之后的时刻t3,将写请求从内部缓冲器13发送到命令发出寄存器14,并且执行第三次写入(命令种类C3和最小间隔T3=10)。在这种情况下,从第二次命令输出以后已经逝去最小间隔T2,从而指定的命令C3立即输出。通过执行这种控制,至少可以保证指定的最小间隔。
在该实施方式中,CPU 1根据程序(软件)顺序地指定一系列SDRAM命令。硬件(SDRAM控制器3)对SDRAM命令的间隔进行计数。因此,不用使硬件的规范变得如此复杂,就可以通过改变软件使得设备适应于各种种类的SDRAM 5和控制方法。在这种情况下,用于将数据连续写入寄存器单元6的简单软件是足够的。不需要通过计时器和等待循环在软件侧测量时间。因此,本发明在期望与多种SDRAM兼容的LSI中特别有效。如果不是这种情况,则存在如下效果:硬件的可复用性得到改进,并且设计和检验过程的数量得到减少。
图8是示出实施方式的变形的框图并且与图3进行比较。参照图8,在变形中,命令之间的最小间隔通过浮点法写入寄存器单元6。在浮点法中,最小间隔T由数学方程T=B×2KA表示,其中K表示常数,例如是4,“A”表示指数部分,B表示尾数部分。寄存器单元6中的第二存储空间8包括第一存储区8a和第二存储区8b,第一存储区8a中写入最小间隔T的指数部分“A”,第二存储区8b中写入最小间隔T的尾数部分B。在该变形中,可以以较小的比特宽度设置宽范围的等待时间T。
图9是示出实施方式的另一变形的框图。在图9的变形中,图6中的内部缓冲器13用内部缓冲器20代替。根据SDRAM的种类(模式寄存器设置、刷新、ZQ校准等),在发出SDRAM命令之后预定时期中SDRAM 5不接受新SDRAM命令。在该变形中,在“间隔”字段中指定的值是通过来自CPU 1写入的专门值(例如,所有比特“0”)的情况下,该值用缺省值代替,并且缺省值写入命令发出寄存器14。根据写入中指定的命令种类选择缺省值。
具体地,内部缓冲器20包括总线协议控制单元21、格式转换器22以及缓冲器23。在存在来自CPU 1的写请求的情况下,当缓冲器23具有自由空间时,总线协议控制单元21接收写请求。当缓冲器23不具有自由空间时,总线协议控制单元21不接受写请求,直到产生了自由空间。当接受写请求时,命令和最小间隔写入格式转换器22。
格式转换器22检查写入的命令和最小间隔。当最小间隔是专门值时,根据命令种类确定的缺省值作为最小间隔输出到缓冲器23。缺省值从内部缓冲器20的外部给出(例如,CPU 1)以增加电路的灵活性和可复用性。格式转换器22输出命令本身到缓冲器23。如图9中所示,保持在缓冲器23中的最小间隔给到降值计数器15,并且命令给到多路复用器17。在该变形中,电路的灵活性和可复用性可以进一步提高。命令经由格式转换器22输出。旨在在相同输入定时输出命令和最小间隔到缓冲器23。例如,定时可以通过例如触发电路的简单电路进行调节。
应该理解,公开的实施方式是示意性的并且不在任何方面进行限制。本发明的范围由权利要求限定,而不是由上述描述,并且落入权利要求的集合和界限内的所有改变或这种集合和界限的等同内容都在本发明的范围内。