在移位寄存器环中的数据操作的制作方法

文档序号:8516123阅读:529来源:国知局
在移位寄存器环中的数据操作的制作方法
【专利说明】
【背景技术】
[0001]在计算设备之内使用存储器来存储数据。例如,在计算设备之内存储和访问数据,所述计算设备诸如个人计算机、笔记本和膝上型计算机、智能电话、个人数字助理(“PDA”)、平板计算机和平板设备(slate device)、诸如MP3播放器和媒体播放器的个人娱乐设备、机顶盒、游戏控制台、器具、嵌入式设备、智能仪表以及在诸如随机访问存储器(“RAM”)的存储器处的其他计算设备。
[0002]通常,存储在RAM或者计算设备的其他存储器中的数据由处理器访问,并且由处理器基于数据执行某些操作。例如,加密密钥可以被存储在存储器处并且处理器可以访问加密密钥来加密或解密文档。
【附图说明】
[0003]参考在下图中示出的示例,详细描述实施例:
图1图示了计算设备;
图2图示了存储器控制模块;
图3图示了示出比特到不同位置的移位的表格;
图4图示了包括触发器(flip-flop)的存储器单元;
图5图示了控制触发器的输入的电路;
图6图示了针对在图5中示出的电路的真值表;
图7图示了连接到移位寄存器和时钟选择以及时钟使能电路的位置指示器电路;
图8图示了针对被用于写数据操作的存储器控制模块的电路;
图9图示了针对写数据操作的时序图;
图10图示了针对被用于读数据操作的存储器控制模块的电路;
图11图示了针对读数据操作的时序图;
图12图示了控制逻辑电路;并且图13示出了方法。
【具体实施方式】
[0004]为了简单和说明性的目的,通过主要参考实施例的示例来描述实施例的原理。在以下描述中,为了提供对实施例的彻底理解,记载了许多具体的细节。显然,可以实行实施例而不限于所有的具体细节。另外,可以以各种组合一起使用实施例。
[0005]有时存储在存储器中的数据针对实际上(literally)数年的操作而不改变。例如,加密密钥可以在延长的时段上被存储在相同的存储器位置中并且被多次读,但从未被删除或者改变。当数据在长的时段上被存储在相同的存储器位置中时,由于存储器的各种性质,可以出现存储器印记(imprinting)。例如,通常存储器包括在存储器之内的半导体器件,其基于存储器单元的状态(例如,电荷值、电阻值或某些其他状态)存储信息(或数据值)。由于存储器的各种性质,诸如制造工艺、掺杂剂的类型和量、温度、组成或其他性质,在延长的时段上数据(或数据值)在相同的存储器位置的存储可以改变存储器的物理特性,使得数据被印记在存储器单元中。作为该存储器印记的结果,甚至在数据被删除或盖写之后或者在易失性存储器已经被断电之后也可以确定或读取被存储在存储器单元中的数据。换言之,存储器可以易受数据的印记的影响。如果存储器在从存储器删除数据之后丢弃的计算设备中,则未授权用户仍然可能从计算设备访问数据,如果数据被印记的话。
[0006]根据实施例,被存储在存储器的各种存储器单元处的数据集合的数据值被周期性地移动到该存储器的其他存储器单元。例如通过防止存储器单元对特定数据值的延长时间的暴露,数据的周期性移动使存储器印记的可能性最小化。
[0007]用于存储数据的存储器可以包括面向比特(bit-oriented)的架构。例如,存储器可以包括由单比特触发器的存储阵列组成的移位寄存器环,每个单比特触发器存储单个比特的数据。当将数据的字移位通过存储器时,非印记的质量与在所有的值之中的汉明距离有关。例如,如果逻辑I存在于大部分数据的字的相同位置中,则该位置遭受减少的非印记有效性,如果将数据逐字节地移动到不同的存储器位置的话。然而,移位寄存器环可以将所有比特顺序地移位通过存储阵列,并且每个比特携带针对非印记的相等的有效性,如与将整个字逐字节地移位到可能遭受减小的非印记有效性的不同的存储器位置相反的那样。
[0008]微处理器可以通过数据操作控制电路访问包括移位寄存器环的存储器。可以使用锁存器来访问存储器并且可以使用两个时钟来管理在存储器中的数据移位。在静止(quiescent)条件下,可以使用例如0.01-1.0 Hz的慢时钟来对在存储器中的数据进行移位。可以使用快时钟以针对在存储器和微处理器之间的诸如读或写的数据操作对齐数据。快时钟可以与电路可以处理的一样快,使用快时钟来对齐数据以使微处理器的等待时间最小化,使得可以执行数据操作。以这种方式,避免存储器印记的、在存储器中的低功率但缓慢的数据移位两者可以与用于对齐数据以执行数据操作的、快速但较高功率的要求共存。
[0009]图1图示了包括具有存储器141的存储器控制模块140的计算设备100。存储器141可以包括诸如半导体存储器之类的物理设备,所述物理设备包括存储器单元以存储数据。在一个示例中,存储器单元包括如以下进一步描述的移位寄存器。计算设备100还包括处理器110、通信接口 120和存储设备130。处理器110是多种处理器中的任何处理器。例如,处理器110可以是被实现为硬件模块和/或托管在硬件模块处的软件模块的专用处理器或者通用处理器。硬件模块可以是例如微处理器、微控制器、专用集成电路(“ASIC”)、诸如现场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”)和/或执行操作的其他电子电路。软件模块可以是例如被存储在存储器处并在另一处理器处执行的指令、命令和/或代码。可以使用诸如Java?、C++、C、汇编语言、硬件描述语言和/或其他合适的编程语言的一种或多种的编程语言来限定这样的软件模块。例如,处理器可以是被托管在包括微处理器和存储器的计算机服务器处的虚拟机。
[0010]在某些实施中,处理器110可以包括多个处理器。例如,处理器110可以是包括多个处理引擎(例如,计算、算法或线程核心)的微处理器。作为另一示例,处理器110可以是包括多个处理器的计算设备,所述多个处理器具有共享的时钟、存储器总线、输入/输出总线和/或其他共享的资源。更进一步地,处理器110可以是分布式处理器。例如,处理器110可以包括多个计算设备,每个包括处理器,经由诸如计算机网路的通信链路彼此通信。
[0011]处理器110可操作地耦合到通信接口 120、存储设备130以及存储器控制模块140。存储设备130可以存储机器可读的指令或代码(例如,计算机代码或目标代码),其限定在计算设备100的操作期间由处理器110执行的软件模块。例如,存储设备130包括限定操作系统131、设备驱动132和应用133 (例如,软件应用程序)的指令。换言之,操作系统131、设备驱动132、应用133以及被作为指令(未示出)存储在存储设备130处并且在处理器110处执行的其他软件模块被托管在计算设备100处。应用133可以包括例如应用软件模块、管理程序(hypervisor)、虚拟机模块或者诸如运行时间环境或虚拟机实例之类的环境。作为具体示例,应用133可以包括诸如文件加密应用之类的密码服务。
[0012]存储设备130可以包括易失性存储器和/或非易失性(或非瞬时性)存储器或诸如硬盘驱动器(“HDD”)、固态驱动器(“SSD”)、闪存驱动器之类的处理器可读介质(未示出),或者存储设备130与数据存储服务通信(例如,经由通信接口 120和诸如通信网络的通信链路),在数据存储服务处软件应用(例如,当在处理器处执行时实现软件应用的计算机代码或指令)、数据或者其组合可以由处理器110存储并访问。这样的软件应用、数据或其组合可以被处理器110移动或者复制到存储设备130,并且在计算设备100的操作期间可以在存储设备130处由处理器110访问。
[0013]处理器可读介质的示例包括但不限于:诸如硬盘、软盘和/或磁带之类的磁存储介质;诸如压缩盘(“⑶”)、数字视频盘(“DVD”)、压缩盘只读存储器(“⑶-ROM”)和/或全息设备之类的光存储介质;磁光存储介质;诸如只读存储器(“R0M”)、可编程只读存储器(“PR0M”)、可擦除可编程
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1