指令处理的方法与装置技术领域
本发明是有关于存储器控制,且特别是有关于一种控制存储器装置的
指令处理方法与装置。
背景技术
存储器装置通常是由存储器控制器所控制,存储器控制器通过传送指
令至存储器装置而例如能控制存储器装置的操作,如存储器装置的读取或
写入。对于存储器装置,特别是串行周边接口(SerialPeripheralInterface,SPI)
存储器装置,所产生的指令可为一连串的二进制数,即一连串的0与1。
对于一些型式的存储器装置,可将指令编码为8个二进制数,故而可称为
8位指令。举例来说,D35H指令包含一连串的二进制数00110101,代表
读取指令。再举例来说,D75H指令包含一连串的二进制数01110101,代
表写入指令。
图1绘示应用至存储器控制器的指令的范例性讯号波形图。在图1中,
CSB代表芯片选择反相(chipselectbar),可控制某一芯片的指令在何时致
能。SIO代表串行输入/输出(serialinput/output),表示输入至存储器控制器
的指令。在图1所示的例中,输入指令为如上所述的包含串行二进制数
00110101的D35H指令。再者,在图1中,SCLK代表串行频率(serialclock)。
接收图1的讯号波形的存储器控制器为单数据速率(single-data-rate)控
制器,意思为施加至存储器控制器的指令是在频率讯号(即图1所示的
SCLK)的上升边缘接收并传送至存储器。举例来说,在SCLK的第一上升
边缘,SIO是位在低逻辑电压电平,故低逻辑电压电平(代表二进制数“0”)
是由控制器接收并传送至存储器。再者,举例来说,在SCLK的第三上升
边缘,SIO是位在高电压电平,故高逻辑电压电平(代表二进制数”1”)是由
控制器接收并传送至存储器。因此,若存储器控制器正确地操作,SIO讯
号是在对应至频率讯号的时序下接收(即被取样),并传送至存储器以作为
正确的指令,即包含一连串的二进制数00110101的D35H读取指令。
然而,在高速应用中,各讯号需要在高频率地于高及低逻辑电压电平
之间作切换。在这样的情况下,讯号可能不在该作切换的准确的时序下作
切换。举例来说,SIO讯号可能不在正确的时序下作切换,或SCLK讯号
可能不在正确的时序下作切换。如此,SIO讯号会在不正确的时间下接收
(即取样)。
举例来说,因为高速切换,SIO讯号可能比所指定切换的时间较早地
从低逻辑电压电平切换至高逻辑电压电平,如图1所示的虚线。如此,在
SCLK讯号的第二上升边缘下,当存储器控制器在取样SIO讯号的逻辑电
压电平时,高逻辑电压电平是接收并传送至存储器装置,而不是预先准备
的低逻辑电压电平。因此,存储器装置所接收的并不是代表读取指令的
D35H指令,而是代表写入指令的一连串的二进制数01110101。如此,储
存在存储器装置的数据被错误地抹除。
发明内容
依据本发明,提出一种用于在一存储器控制器之中的指令处理的方法。
此方法包括:接收一串行输入讯号,该串行输入讯号包含一连串的二进制
数(binarydigit);在该串行输入讯号的多个奇数位置或多个偶数位置的其中
一些位置撷取这些二进制数以形成一第一子串行(sub-series);在该串行输
入讯号的多个奇数位置或多个偶数位置的另一些位置撷取这些二进制数
以形成一第二子串行;比较该第一及该第二子串行;以及若该第一及该第
二子串行互补,由该存储器控制器执行该第一子串行代表的一指令。
另依据本发明,提出一种存储器控制装置,包括处理器与非瞬时
(non-transitory)计算机可读取储存媒体。当多个指令由处理器执行时,此些
指令使该处理器:接收一串行输入讯号,该串行输入讯号包含一连串的二
进制数;在该串行输入讯号的多个奇数位置或多个偶数位置的其中一些位
置撷取这些二进制数以形成一第一子串行;在该串行输入讯号的多个奇数
位置或多个偶数位置的另一些位置撷取一些二进制数以形成一第二子串
行;比较该第一及该第二子串行;以及若该第一及该第二子串行互补,执
行该第一子串行代表的一指令。
依照本发明的特征与优点将部分地被阐述在下面的说明书中,并且部
分从说明书来看是显而易见的,或可以通过本发明的实践而得知。这些特
征和优点可通过所附权利要求范围特别指明的元件与结合的方式而被实
现与取得。
应当理解的是,前述的广义描述和以下的详细描述都只是示例和说明
性的,并不限制如所请求保护的本发明。
包含在说明书中并构成本说明书的一部分的所附图示,阐示出了本发
明的几个实施例,并且与本说明书一起用于解释本发明的原理。
为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,
并配合所附图式,作详细说明如下:
附图说明
图1绘示依照传统技艺的存储器控制器所接收的讯号波形示意图。
图2绘示依照范例性实施例的方法的流程图。
图3A及图3B绘示依照范例性实施例的存储器控制器所接收的讯号
波形示意图。
图4A及图4B绘示依照其他范例性实施例的存储器控制器所接收的
讯号波形示意图。
图5A及图5B绘示依照其他范例性实施例的存储器控制器所接收的
讯号波形示意图。
图6A及图6B绘示依照其他范例性实施例的存储器控制器所接收的
讯号波形示意图。
图7绘示依照范例性实施例的存储器控制装置的示意图。
【符号说明】
200:方法
202~216:步骤
700:存储器控制装置
702:处理器
704:非瞬时计算机可读取储存媒体。
CSB:芯片选择反相讯号
SCLK:串行频率讯号
SIO、SIO0、SIO1、SIO2、SIO3、SIO4、SIO5、SIO6、SIO7:串行
输入/输出
具体实施方式
依照本发明的实施例包含方法与装置以用于控制存储器装置的指令
处理。
以下,将参照图式说明依照本发明的实施例。若可能,相同的参考数
字会在图式中用以参照至相同或相的部件。
图2绘示依照本发明实施例的用于在一存储器控制器之中的指令处理
的范例性方法200的流程图。此方法可执行于依照本发明实施例的存储器
控制器中。
如图2所示,在步骤202,存储器控制器接收一串行输入讯号,该串
行输入讯号包含一连串的二进制数(binarydigit)。此串行输入讯号被编程以
使得在串行输入讯号的奇数位置的二进制数(即此串二进制数定的奇数位
置)互补(complementary)于此串行的偶数位置的二进制数。下文中,由串行
输入讯号的奇数位置上的二进制数形成的串行也可被称为第一输入子串
行(sub-series),并代表待输出至存储器装置且待存储器装置执行的指令。
对应地,由串行输入讯号的偶数位置上的二进制数形成的串行也可被称为
第二输入子串行,并代表指令的互补,指令的互补在本发明中也可称为指
令的反相(bar)。
在本发明中,有关奇数位置的叙述与对应的偶数位置的叙述是可以相
互置换的。举例来说,如上一个段落所述,奇数位置的二进制数代表指令,
而偶数位置的二进制数代表指令的反相。在另一实施例中(此处省略叙述),
奇数位置的二进制数可代表指令的反相,而偶数位置的二进制数可以代指
令。
在步骤204,存储器控制器在串行输入讯号的多个奇数位置撷取(或取
样)二进制数。此处,此过程也可被称为是指令的译码。撷取(或取样)的结
果为一连串的二进制数,此处的二进制数也可称为是第一取样子串行。
在步骤206,根据包含多个默认指令的指令列表而检查第一取样子串
行,以决定第一取样子串行是否对应至此些默认指令的其中一个指令。若
第一取样子串行并不对应至此些默认指令的任何一个指令(步骤206:否),
存储器控制器输出一讯号以表示第一取样子串行代表一错误(illegal)指令
(图2的步骤208)。另一方面,若第一取样子串行对应至此些默认指令的
其中一个指令(步骤206:是),第一取样子串行是被存锁(latch)(图2的步骤
210)。
在步骤212,存储器控制器在串行输入讯号的多个偶数位置撷取(或取
样)二进制数。此处,此过程也可被称为是指令反相的译码。撷取(或取样)
的结果为一连串的二进制数,此处的二进制数也可称为是第二取样子串行。
在步骤214,存储器控制器比较第一取样子串行及第二取样子串行,
以决定两者是否互补。若不互补(步骤214:否),存储器控制器输出讯号表
示第一取样子串行代表错误指令(图2的步骤208)。另一方面,若第一及
第二取样子串行互补,则第一取样子串行代表正确(legal)指令,而此指令
会被执行(图2的步骤216)。
图2所示的过程为一范例。依照本发明实施例的方法并不限定于包含
图2所示的整个过程。举例来说,可直接比较第一及第二取样子串行,不
需先针对指令列表确认第一取样子串行。
依据本发明实施例,串行输入讯号的一连串的二进制数是由串行输入
讯号的一连串的高或低逻辑电压电平来表示。在一些实施例中,高逻辑电
压电平代表二进制数“1”,而低逻辑电压电平代表二进制数“0”。撷取(或取
样)二进制数的时间可由串行频率讯号来控制。在一些实施例中,二进制数
可在串行频率讯号的相同边缘撷取,如上升边缘。此一模式可被称为是单
数据速率(single-data-rate)模式,其中在每个频率周期被撷取并输出一个二
进制数。在一些实施例中,二进制数是在串行频率讯号的上升及下降边缘
撷取。此一模式可称为是双数据速率(double-data-rate)模式,其中在每个频
率周期撷取并输出两个二进制数。
图3A及图3B分别绘示单数据速率模式及双数据速率模式的范例性
讯号波形图的示意图。在图3A及图3B中,CSB、SCLK、及SIO分别参
照为「指令选择反相」、「串行频率」、及「串行输入/输出」,如前所述。如
图3A及图3B所示,待被输出至存储器装置并由存储器装置执行的指令
为D35H指令,由第一输入子串行的二进制数00110101所表示。在编程
SIO讯号时,用户散置(intersperse)由第二输入子串行的二进制数
11001010(如图3A及图3B所示的虚线曲线片段)所表示互补的指令(即指
令反相)在第一输入子串行(如图3A及图3B所示的实线曲线片段)之中。
如此,存储器控制器接收的SIO讯号变为0101101001100110。
在图3A所示的单数据速率模式之中,在存储器控制器接收SIO讯号
后,指令是通过在SCLK讯号的奇上升边缘(在图式中由实线垂直线所表
示)取样SIO讯号(即量测SIO讯号的逻辑电压电平)而译码,而指令反相是
通过在SCLK讯号的偶上升边缘(在图式中由虚线垂直线所表示)取样SIO
讯号(即量测SIO讯号的逻辑电压电平)而译码。取样结果依照本发明实施
例的方法而进一步处理,例如是图2所示的范例性方法。
在图3B所示的双数据速率模式之中,在存储器控制器接收SIO讯号
后,指令是通过在SCLK讯号的上升边缘(在图式中由实线垂直线所表示)
取样SIO讯号(即量测SIO讯号的逻辑电压电平)而译码,而指令反相是通
过在SCLK讯号的下降边缘(在图式中由虚线垂直线所表示)取样SIO讯号
(即量测SIO讯号的逻辑电压电平)而译码。取样结果依照本发明实施例的
方法而进一步被处理,例如是图2所示的范例性方法。
图3A及图3B绘示存储器控制器具有单输入/输出端的实施方案。依
照本发明实施例的方法也可应用至具有多输入/输出端口的存储器控制器。
举例来说,图4A及图4B绘示存储器控制器具有两输入/输出端的实施方
案,其中图4A对应至单数据速率模式而图4B对应至双数据速率模式。
如图4A及图4B所示,指令是被打散并通过两讯号SIO0及SIO1而传输,
其中SIO0携带指令的奇位数字,即0100,而SIO1携带指令的偶位数字,
即0111。相仿地,指令反相是被打散并由两讯号SIO0及SIO1而传输,
其中SIO0携带指令反相的奇位数字,即1011,而SIO1携带指令反相的
偶位数字,即1000。
如图4A所示,即单数据速率模式,在存储器控制器接收SIO0及SIO1
讯号后,指令是通过在SCLK讯号的奇上升边缘取样SIO0及SIO1讯号(即
量测SIO0及SIO1讯号的逻辑电压电平)而译码,而指令反相是通过在
SCLK讯号的偶上升边缘取样SIO0及SIO1讯号(即量测SIO0及SIO1讯
号的逻辑电压电平)而译码。取样结果依照本发明实施例的方法而进一步处
理,例如是图2所示的范例性方法。
如图4B所示,即双数据速率模式,在存储器控制器接收SIO0及SIO1
讯号后,指令是通过在SCLK讯号的上升边缘取样SIO0及SIO1讯号(即
量测SIO0及SIO1讯号的逻辑电压电平)而译码,而指令反相是通过在
SCLK讯号的下降边缘取样SIO0及SIO1讯号(即量测SIO0及SIO1讯号
的逻辑电压电平)而译码。取样结果依照本发明实施例的方法而进一步处理,
例如是图2所示的范例性方法。
另一范例中,图5A及图5B绘示存储器控制器具有四个输入/输出端
的实施方案,其中图5A对应至单数据速率模式而图5B对应至双数据速
率模式。如图5A及图5B所示,指令是被打散并通过四个讯号SIO0、SIO1、
SIO2、SIO3而传输,其中SIO0携带指令的每四个数字的第一个数字,即
00,SIO1携带指令的每四个数字的第二个数字,即01,SIO2携带指令的
每四个数字的第三个数字,即10,而SIO3携带指令的每四个数字的第四
个数字,即11。相仿地,指令反相是打散并由四个讯号SIO0、SIO1、SIO2、
SIO3而传输,其中SIO0携带指令反相的每四个数字的第一个数字,即11,
SIO1携带指令反相的每四个数字的第二个数字,即10,SIO2携带指令反
相的每四个数字的第三个数字,即01,而SIO3携带指令反相的每四个数
字的第四个数字,即00。
如图5A所示,即单数据速率模式,在存储器控制器接收SIO0、SIO1、
SIO2、SIO3讯号后,指令是通过在SCLK讯号的奇上升边缘取样SIO0、
SIO1、SIO2、SIO3讯号(即量测SIO0、SIO1、SIO2、SIO3讯号的逻辑电
压电平)而译码,而指令反相是通过在SCLK讯号的偶上升边缘取样SIO0、
SIO1、SIO2、SIO3讯号(即量测SIO0、SIO1、SIO2、SIO3讯号的逻辑电
压电平)而译码。取样结果依照本发明实施例的方法而进一步处理,例如是
图2所示的范例性方法。
如图5B所示,即双数据速率模式,在存储器控制器接收SIO0、SIO1、
SIO2、SIO3讯号后,指令是通过在SCLK讯号的上升边缘取样SIO0、SIO1、
SIO2、SIO3讯号(即量测SIO0、SIO1、SIO2、SIO3讯号的逻辑电压电平)
而译码,而指令反相是通过在SCLK讯号的下降边缘取样SIO0、SIO1、
SIO2、SIO3讯号(即量测SIO0、SIO1、SIO2、SIO3讯号的逻辑电压电平)
而译码。取样结果依照本发明实施例的方法而进一步处理,例如是图2所
示的范例性方法。
图6A及图6B绘示的另一例子中存储器控制器具有八个输入/输出端
的实施方案,其中图6A对应至单数据速率模式而图6B对应至双数据速
率模式。此例是相仿于图3A-图5B所述的内容,除了指令与指令反相被
打散并通过八个讯号SIO0、SIO1、SIO2、SIO3、SIO4、SIO5、SIO6、SIO7
而传输。指令与指令反相的编码与译码以及取样结果的处理方式,是相仿
于上文依照一、两、四个输入/输出端所述的实施方案,故不重述。
图7绘示依照本发明实施例的存储器控制装置700。如图7所述,存
储器控制装置700包含处理器702及非瞬时(non-transitory)计算机可读取储
存媒体704。储存媒体704储存多个命令,此些命令在由该处理器702执
行时,存储器控制装置700使得处理器702执行如上文所述的本发明实施
例的方法。
综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定
本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神
和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视随附
的权利要求范围所界定的为准。