CN104838445A - 在移位寄存器环中的数据操作 - Google Patents
在移位寄存器环中的数据操作 Download PDFInfo
- Publication number
- CN104838445A CN104838445A CN201280077618.7A CN201280077618A CN104838445A CN 104838445 A CN104838445 A CN 104838445A CN 201280077618 A CN201280077618 A CN 201280077618A CN 104838445 A CN104838445 A CN 104838445A
- Authority
- CN
- China
- Prior art keywords
- shift register
- clock
- bit
- data
- loop
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
- G11C19/287—Organisation of a multiplicity of shift registers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C21/00—Digital stores in which the information circulates continuously
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K23/00—Pulse counters comprising counting chains; Frequency dividers comprising counting chains
- H03K23/40—Gating or clocking signals applied to all stages, i.e. synchronous counters
Landscapes
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
- Static Random-Access Memory (AREA)
Abstract
移位寄存器环存储比特。如果移位寄存器环中的比特处于起始位置,则可以在移位寄存器环中执行数据操作。
Description
背景技术
在计算设备之内使用存储器来存储数据。例如,在计算设备之内存储和访问数据,所述计算设备诸如个人计算机、笔记本和膝上型计算机、智能电话、个人数字助理(“PDA”)、平板计算机和平板设备(slate device)、诸如MP3播放器和媒体播放器的个人娱乐设备、机顶盒、游戏控制台、器具、嵌入式设备、智能仪表以及在诸如随机访问存储器(“RAM”)的存储器处的其他计算设备。
通常,存储在RAM或者计算设备的其他存储器中的数据由处理器访问,并且由处理器基于数据执行某些操作。例如,加密密钥可以被存储在存储器处并且处理器可以访问加密密钥来加密或解密文档。
附图说明
参考在下图中示出的示例,详细描述实施例:
图1图示了计算设备;
图2图示了存储器控制模块;
图3图示了示出比特到不同位置的移位的表格;
图4图示了包括触发器(flip-flop)的存储器单元;
图5图示了控制触发器的输入的电路;
图6图示了针对在图5中示出的电路的真值表;
图7图示了连接到移位寄存器和时钟选择以及时钟使能电路的位置指示器电路;
图8图示了针对被用于写数据操作的存储器控制模块的电路;
图9图示了针对写数据操作的时序图;
图10图示了针对被用于读数据操作的存储器控制模块的电路;
图11图示了针对读数据操作的时序图;
图12图示了控制逻辑电路;并且
图13示出了方法。
具体实施方式
为了简单和说明性的目的,通过主要参考实施例的示例来描述实施例的原理。在以下描述中,为了提供对实施例的彻底理解,记载了许多具体的细节。显然,可以实行实施例而不限于所有的具体细节。另外,可以以各种组合一起使用实施例。
有时存储在存储器中的数据针对实际上(literally)数年的操作而不改变。例如,加密密钥可以在延长的时段上被存储在相同的存储器位置中并且被多次读,但从未被删除或者改变。当数据在长的时段上被存储在相同的存储器位置中时,由于存储器的各种性质,可以出现存储器印记(imprinting)。例如,通常存储器包括在存储器之内的半导体器件,其基于存储器单元的状态(例如,电荷值、电阻值或某些其他状态)存储信息(或数据值)。由于存储器的各种性质,诸如制造工艺、掺杂剂的类型和量、温度、组成或其他性质,在延长的时段上数据(或数据值)在相同的存储器位置的存储可以改变存储器的物理特性,使得数据被印记在存储器单元中。作为该存储器印记的结果,甚至在数据被删除或盖写之后或者在易失性存储器已经被断电之后也可以确定或读取被存储在存储器单元中的数据。换言之,存储器可以易受数据的印记的影响。如果存储器在从存储器删除数据之后丢弃的计算设备中,则未授权用户仍然可能从计算设备访问数据,如果数据被印记的话。
根据实施例,被存储在存储器的各种存储器单元处的数据集合的数据值被周期性地移动到该存储器的其他存储器单元。例如通过防止存储器单元对特定数据值的延长时间的暴露,数据的周期性移动使存储器印记的可能性最小化。
用于存储数据的存储器可以包括面向比特(bit-oriented)的架构。例如,存储器可以包括由单比特触发器的存储阵列组成的移位寄存器环,每个单比特触发器存储单个比特的数据。当将数据的字移位通过存储器时,非印记的质量与在所有的值之中的汉明距离有关。例如,如果逻辑1存在于大部分数据的字的相同位置中,则该位置遭受减少的非印记有效性,如果将数据逐字节地移动到不同的存储器位置的话。然而,移位寄存器环可以将所有比特顺序地移位通过存储阵列,并且每个比特携带针对非印记的相等的有效性,如与将整个字逐字节地移位到可能遭受减小的非印记有效性的不同的存储器位置相反的那样。
微处理器可以通过数据操作控制电路访问包括移位寄存器环的存储器。可以使用锁存器来访问存储器并且可以使用两个时钟来管理在存储器中的数据移位。在静止(quiescent)条件下,可以使用例如0.01-1.0 Hz的慢时钟来对在存储器中的数据进行移位。可以使用快时钟以针对在存储器和微处理器之间的诸如读或写的数据操作对齐数据。快时钟可以与电路可以处理的一样快,使用快时钟来对齐数据以使微处理器的等待时间最小化,使得可以执行数据操作。以这种方式,避免存储器印记的、在存储器中的低功率但缓慢的数据移位两者可以与用于对齐数据以执行数据操作的、快速但较高功率的要求共存。
图1图示了包括具有存储器141的存储器控制模块140的计算设备100。存储器141可以包括诸如半导体存储器之类的物理设备,所述物理设备包括存储器单元以存储数据。在一个示例中,存储器单元包括如以下进一步描述的移位寄存器。计算设备100还包括处理器110、通信接口120和存储设备130。处理器110是多种处理器中的任何处理器。例如,处理器110可以是被实现为硬件模块和/或托管在硬件模块处的软件模块的专用处理器或者通用处理器。硬件模块可以是例如微处理器、微控制器、专用集成电路(“ASIC”)、诸如现场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”)和/或执行操作的其他电子电路。软件模块可以是例如被存储在存储器处并在另一处理器处执行的指令、命令和/或代码。可以使用诸如JavaTM、C++、C、汇编语言、硬件描述语言和/或其他合适的编程语言的一种或多种的编程语言来限定这样的软件模块。例如,处理器可以是被托管在包括微处理器和存储器的计算机服务器处的虚拟机。
在某些实施中,处理器110可以包括多个处理器。例如,处理器110可以是包括多个处理引擎(例如,计算、算法或线程核心)的微处理器。作为另一示例,处理器110可以是包括多个处理器的计算设备,所述多个处理器具有共享的时钟、存储器总线、输入/输出总线和/或其他共享的资源。更进一步地,处理器110可以是分布式处理器。例如,处理器110可以包括多个计算设备,每个包括处理器,经由诸如计算机网路的通信链路彼此通信。
处理器110可操作地耦合到通信接口120、存储设备130以及存储器控制模块140。存储设备130可以存储机器可读的指令或代码(例如,计算机代码或目标代码),其限定在计算设备100的操作期间由处理器110执行的软件模块。例如,存储设备130包括限定操作***131、设备驱动132和应用133(例如,软件应用程序)的指令。换言之,操作***131、设备驱动132、应用133以及被作为指令(未示出)存储在存储设备130处并且在处理器110处执行的其他软件模块被托管在计算设备100处。应用133可以包括例如应用软件模块、管理程序(hypervisor)、虚拟机模块或者诸如运行时间环境或虚拟机实例之类的环境。作为具体示例,应用133可以包括诸如文件加密应用之类的密码服务。
存储设备130可以包括易失性存储器和/或非易失性(或非瞬时性)存储器或诸如硬盘驱动器(“HDD”)、固态驱动器(“SSD”)、闪存驱动器之类的处理器可读介质(未示出),或者存储设备130与数据存储服务通信(例如,经由通信接口120和诸如通信网络的通信链路),在数据存储服务处软件应用(例如,当在处理器处执行时实现软件应用的计算机代码或指令)、数据或者其组合可以由处理器110存储并访问。这样的软件应用、数据或其组合可以被处理器110移动或者复制到存储设备130,并且在计算设备100的操作期间可以在存储设备130处由处理器110访问。
处理器可读介质的示例包括但不限于:诸如硬盘、软盘和/或磁带之类的磁存储介质;诸如压缩盘(“CD”)、数字视频盘(“DVD”)、压缩盘只读存储器(“CD-ROM”)和/或全息设备之类的光存储介质;磁光存储介质;诸如只读存储器(“ROM”)、可编程只读存储器(“PROM”)、可擦除可编程只读存储器(“EPROM”)、电可擦除只读存储器(“EEROM”)和/或闪式存储器之类的非易失性存储器;以及随机访问存储器(“RAM”)。计算机代码的示例包括但不限于:微码或微指令、诸如由编译器产生的机器指令,以及包含由计算机使用解释器(interpreter)执行的较高级的指令的文件。例如,可以使用JavaTM、C++或其他面向对象的编程语言和开发工具来实现实施。计算机代码的附加示例包括但不限于控制信号、加密的代码和压缩的代码。
通信接口120包括处理器110可访问的一个或多个接口以经由通信链路与其他处理器或计算设备通信(即,向其传输表示数据的符号以及从其接收这样的符号)。换言之,通信接口120可以经由通信链路从处理器110接收数据并且传输表示数据的符号。而且,通信接口120可以经由通信链路从其他通信接口接收符号并且向处理器110发送由那些符号表示的数据。例如,通信接口120可以是电话网络接口、双绞线网络接口、同轴网络接口、光纤网络接口、诸如无线局域网(“WLAN”)或者蜂窝网络的无线网络接口、通用串行总线和/或某些其他网络或通信接口。
存储器控制模块140包括数据移位电路144、存储器141和数据操作控制电路146。加密密钥145被示出为被存储在存储器141中作为可以被存储在存储器141中的数据的示例。然而,在存储器141中可以存储任何数据。数据移位电路144包括防止在存储器141处的存储器印记的电路。数据移位电路144在存储器141之内周期性地移动密钥145(即,密钥145的比特)以防止在存储器141中的密钥145的存储器印记。数据操作控制电路146促进在处理器110和存储器141之间的数据操作。数据操作控制电路146对齐数据用于读或写。另外,数据操作控制操作146使能和禁用快和慢时钟来执行数据操作。
可以在与处理器110相同的集成电路上提供存储器控制模块140,或者可以在独立的集成电路上提供存储控制模块140。存储器控制模块140可以是计算设备100的一部分,或者可以处于可以经由诸如通用串行总线端口、网络接口等等之类的通信接口120连接到计算设备100的独立的设备上。另外,存储器141还可以指存储器电路。例如,存储器141包括在集成电路上的半导体器件。
图2示出了包括移位寄存器SR0-SRn的存储器141,其中n是大于或等于1的整数。移位寄存器可以包括存储单个比特的单比特寄存器并且是存储器单元的示例。移位寄存器可以被连接为移位寄存器环,其中一个的输出连接到另一个的输入,因此每个比特可以被周期性地从一个移位寄存器移位到其他移位寄存器。
数据移位电路144可以包括时钟200a-b和位置指示器201。例如,时钟200a是快时钟,并且时钟200b是慢时钟。快时钟200a可以比处理器时钟快,并且慢时钟200b可以比快时钟200a慢多个级别(order)。在另一示例中,可以使用一个时钟并且改变时钟频率以提供快和慢时钟。随着比特被周期性地移位,位置指示器201指示比特在移位寄存器中的位置。在一个示例中,位置指示器201包括如下进一步描述的计数器。
可以对由时钟200a-b中的一个或多个生成的时钟脉冲执行移位,并且在图3中示出的表格300中表示了移位的示例。例如,按照慢时钟200b对被存储在存储器141的移位寄存器中的数据进行移位以避免印记。然而,当数据操作将被执行时,使用快时钟200a将数据移位到起始位置(home position)以使处理器110的等待时间最小化,使得可以执行数据操作。例如,被存储在移位寄存器环中的移位寄存器中的数据包括比特D0-D3,并且假设比特被写到存储器141并在时间T0处处于起始位置。起始位置可以是比特集合(其可以是预定长度的字)在它们全部被写到存储器141之后但在移位比特之前的位置。例如,起始位置是当比特D0-D3被分别存储在移位寄存器SR0-SRn中时。在被示出为T1的在TO之后的第一时钟脉冲处,将比特向右移位一位。因此在T1处,D0被移位到SR1中;D1被移位到SR2中;D2被移位到SR3中;并且D3被移位到SR0中。在T2处的第二时钟脉冲处,再次将比特移位。因此,在T2处,D0被移位到SR2中;D1被移位到SR3中;D2被移位到SR0中;并且D3被移位到SR1中。在T3处的第三时钟脉冲处,再次将比特移位。因此,在T3处,D0被移位到SR3中;D1被移位到SR0中;D2被移位到SR1中;并且D3被移位到SR2中。在T4处,比特被移位回到起始位置。可以根据慢时钟200b执行上文描述的移位,除非接收到将执行数据操作的信号并且然后根据快时钟200a执行移位。
图2还示出了数据操作控制电路146可以包括控制逻辑电路210和相等电路(equality circuit)211。控制逻辑电路使能慢时钟200b或者快时钟200a能够控制比特在移位寄存器SR0-SRn中的移位。另外,控制逻辑电路210可以禁用时钟200a和200b以执行针对处理器110的数据操作,诸如在移位寄存器SR0-SRn中的读或写。控制逻辑电路210还生成读或写使能信号来控制在移位寄存器SR0-SRn中的读和写。
相等电路211确定在移位寄存器SR0-SRn中的数据是否处于起始位置,使得可以执行数据操作。例如,起始位置是在被寻址的移位寄存器中的具体字的起始位置,并且相等电路211确定该字是否处于其起始位置。例如,存储器控制模块140从处理器110接收诸如读地址或写地址之类的地址用于数据操作。相等电路211将来自地址(例如,标识将被写或读的字的地址的最低有效位中的某些)的比特与标识在移位寄存器SR0-SRn中的字的位置的、来自位置指示器201的比特(例如,最高有效位中的某些)进行比较。地址的最低有效位中的某些可以包括至少两个比特但不是地址的所有比特,并且来自位置指示器201的最高有效位中的某些可以包括至少两个比特但不是来自位置指示器201的所有比特输出。如果来自地址和位置指示器201的比特的值匹配,则在移位寄存器SR0-SRn中的字处于起始位置中,并且数据可以被同时写到移位寄存器SR0-SRn中或者同时可以从移位寄存器SR0-SRn读数据。以下进一步详细描述电路的操作。
图4图示了在存储器141中的移位寄存器的示例。移位寄存器可以包括共享相同的时钟并被连接以形成移位寄存器环的D触发器401a-401n的阵列。每个触发器具有被连接到另一触发器的D输入的Q数据输出。触发器的Q输出是针对每个比特位置的数据输出。
每个触发器具有预设置(PReset)和清除(Clear)输入,并且这些输入可以是低电平有效的(active low)。图5示出了用于控制PR和CL输入以及对触发器写数据的电路500的示例。电路500可以被包括在图1中示出的存储器控制模块140中。为了向D触发器写‘1’比特,PR被设置为0(例如,低电平有效)并且CL被设置为1(例如,也是低电平有效)。跟随写周期,PR和CL两者被设置为1(空闲状态)。除了PR被设置为1并且CL被设置为0之外,写0是相同的。另外,补零(zeroize)操作可以被执行以将触发器数据重置为0,并且补零输入可以被立刻连接到所有触发器以将所有触发器同时重置为0。图6示出了表格600,其是重申(reiterate)针对图5的上述描述的、用于控制PR和CL以及写操作的真值表。
图7示出了时钟200a-b和计数器701,其可以作为来自图2的位置指示器201操作。计数器701注意(keep track)在移位寄存器中的比特的实际数据位置,诸如在图3中示出的数据位置。例如,计数器值0意味着比特处于起始位置;在移位之后,计数器701递增并且计数器值1意味着比特处于与在图3中示出的T1相关联的位置,以此类推。在移位寄存器中的比特的数量应该具有计数2x,其中x是在计数器701中的比特的数量。可以使用时钟选择电路703来选择慢或快时钟,并且可以使用时钟禁用电路702来使能或者禁用时钟200a-b。可以从控制逻辑电路210向电路702和703提供选择信号来选择时钟以及使能/禁用。
图8示出了用于在图1中示出的存储器控制模块140的电路800的示例。在图8中示出了包括时钟200a-b的、图1-2的数据移位电路144以及包括计数器701的位置指示器201。还示出了控制逻辑电路210和相等电路211。在该示例中,相等电路211包括数据操作控制电路146的、在图8中示出的与(AND)门和异或非(XNOR)门。还示出了来自图7的时钟选择电路703和时钟禁用电路702。可以使用读数据锁存器来使能或禁用时钟200a-b。可以从控制逻辑电路210向电路702和703提供选择信号来选择时钟以及使能/禁用。例如当正在执行写时,时钟禁用电路702抑制由时钟200a-b中的任何一个生成的时钟信号的传播以防止移位。时钟选择电路703选择快时钟200a(例如,以将在移位寄存器中的比特移位到起始位置,用于处理器110的数据操作)或者慢时钟200b(例如,以如果移位寄存器中没有正在执行用于处理器的数据操作,则对在移位寄存器中的比特进行移位)。写数据锁存器接收将被写到移位寄存器的、来自***总线的数据。写地址锁存器从处理器110接收地址用于写数据。
在图1中示出的存储器141可以包括存储器单元,所述存储器单元包括如上文描述的移位寄存器。图8示出了某些移位寄存器。在一个示例中,在图8中的移位寄存器包括诸如在图4中示出的D触发器。移位寄存器的数量可以至少与将要被存储在存储器141中的比特的数量一样多,但可以存在比比特的数量多的移位寄存器。例如,移位寄存器被连接成为移位寄存器环。
控制逻辑电路210控制对移位寄存器的访问来执行诸如读或写的数据操作。例如,诸如在单个时钟脉冲处,从移位寄存器同时读所有数据或者向移位寄存器同时写所有数据。数据可以包括任何比特或者比特的组(例如,字)。字大小可以是处理器110的原生字(native word)大小。
基于来自相等电路211的信息,控制逻辑电路210确定在移位寄存器中的比特是否处于起始位置以控制时钟200a-b并使能数据操作。相等电路211执行从来自位置计数器701的位置信息到来自从写地址锁存器接收的写地址的信息的比较,以确定在移位寄存器中的比特是否处于起始位置以使能数据操作。假设在存储器141的移位寄存器中存储了32个比特。例如,在存储器141的移位寄存器环中存在32个单比特移位寄存器。比特被分组为例如具有被处理器使用的原生字大小的字。例如,假设处理器110的原生字大小是8比特(“字节宽”),并且存储器141的移位寄存器存储四个8比特字。在该示例中,位置计数器701使用5个比特用于其输出,来表示在32比特移位寄存器中的比特的位置,因此位置计数器将比特Q0-Q4用于其输出。
当处理器110希望对不同的字节(字)进行寻址时,写地址的低阶地址比特(例如,最低有效位)选择在存储器141中的字节用于写数据操作。例如,写地址锁存器的输出比特Q1和Q2选择在存储器141中的字节用于写数据操作。而且,位置计数器701提供两个值。计数器701的低阶比特(Q0-Q2)在移位寄存器之内建立8个比特的组(字节)的对齐,而剩余的高位(upper)比特(例如,最高有效位Q3-Q4)选择在移位寄存器中的多个对齐的字中的正确的那个。在位置计数器701中,低阶比特的数量是log2(比特宽度)个比特。在该示例中,比特宽度是8比特,因此log28=3比特。忽略位置计数器输出的3个低阶比特。由相等电路211使用剩余的2个高阶比特(最高有效位)来与地址比特中的某些比较,并且剩余的高阶比特标识在移位寄存器中的字位置。使用相同数量的比特,所述比特的数量在该示例中为2,来标识在地址中的最低有效位的数量以与位置计数器输出的最高有效位比较。
在该示例中,相等电路211将位置计数器701的高阶比特(例如,最高有效位Q3-Q4)的值与写地址锁存器的低阶比特(最低有效位Q1-Q2)的值进行比较来确定它们是否相等。当值相等时,异或非(XNOR)输出“1”(例如,逻辑电平高),并且与(AND)门向控制逻辑电路210的“=”输入输出“1”,这意味着在移位寄存器中的比特的位置与由地址锁存器标识的字的起始地址对齐(例如,在移位寄存器中的字处于它们的起始位置并且可以在存储器141中执行数据操作)。当“=”是“1”时,控制逻辑电路210使能数据操作。例如,时钟200a-b被禁用,并且/WR输出被切换(toggle)以如以下描述的那样在移位寄存器中执行写操作。
图9示出了在电路800中执行的写操作的时序图。处理器110向在图8中示出的写数据锁存器写将被存储在移位寄存器中的数据,并且向地址锁存器写它将被保存的地址。使用来自处理器110的/WE(写使能)信号来锁存值。该/WE可以不是原生/WE,而是已经具有合格的芯片选择的一个/WE。换言之,/WE与/芯片选择(/ChipSelect)进行或(OR)来驱动/WE。由于数据是锁存的,所以处理器110涉及(involvement)现在是完整的。
在正常操作条件下,使用慢时钟200b,在存储器141中的移位寄存器中的比特旋转(rotating)通过移位寄存器。因为快时钟不必要,所以可以使用慢时钟,并且慢时钟使用较少功率。在/WE信号锁存写数据以及其地址之后,当释放/WE时,移位寄存器时钟切换到快时钟200a。快时钟200a可以与在电路800中的设备可以可靠操作一样快。电路800对处理器110的响应时间与快时钟200a的速度有关。
当如由相等电路211的输出指示的那样,计数器输出匹配所期望的地址时,(=)信号被提高至“1”来指示在移位寄存器中的数据已经被移动到用于写的正确位置。当(=)信号是“1”时,停止快时钟200a。这暂时地冻结在移位寄存器中的数据的位置。在停止移位寄存器数据的情况下,来自写数据锁存器的数据被加载到移位寄存器中。这被控制逻辑电路210的状态机时钟控制。这可以是在***中的任何相对快的时钟,并且可以使用快时钟200a。
在数据被写到移位寄存器之后,状态机时钟向写数据锁存器产生附加时钟脉冲来清除其数据,以避免在写数据锁存器中的印记。最后,在擦除写数据锁存器之后,移位寄存器时钟被恢复到慢时钟200b,并且在移位寄存器中的数据旋转继续。可以执行信号(=)和快/慢(Fast/Slow)的逻辑或(OR)以提供“忙碌”信号。可以监视该忙碌信号以向处理器110指示移位寄存器是否忙碌(或/空闲);如果忙碌,则移位寄存器当前正在加载或卸载数据,但如果空闲,则可以进行访问。在901处的图9的底部示出了在时序图中的特定时间段处使能了哪个时钟。首先使能慢时钟200b以对在移位寄存器中的数据进行移位,然后使能快时钟200a以将所寻址的字移动到其起始位置,并且然后禁用时钟200a-b并且使能状态机时钟(SM)以将数据写到移位寄存器并且重置写数据锁存器。然后,使能慢时钟200b以对在移位寄存器中的数据进行移位。
图10示出了用于针对处理器110的读操作而不是写操作的存储器电路800。存储器电路800与在图8中示出的相同,除了写数据锁存器现在作为读数据锁存器操作以接收来自移位寄存器的数据,用于在***总线上的传输以供处理器110使用。而且,写地址锁存器现在作为读地址锁存器操作以接收用于从移位寄存器读数据的地址。在另一个示例中,可以将单独的读和写锁存器用于数据和/或地址。
图11示出了在电路800中执行的写操作的时序图。在写操作中,写数据输入锁存器保持写数据,因此处理器110不必完成周期。在一个示例中,当从移位寄存器读数据时,处理器110执行两次读。处理器110首先读并丢弃值(通常其将全为0,因为那是来自先前操作的结束状态)。然后,当数据处于读数据锁存器中时,处理器110再次读。现在描述关于在图10中示出的时序图的操作。
处理器110断言(assert)/RD以读值。/RD可以是与在写周期中的/WE类似的合格的芯片选择。在正常操作条件下,移位寄存器使用慢时钟200b旋转比特。在/RD信号锁存读地址之后,当释放/RD时,移位寄存器时钟被切换到快时钟200a。当位置计数器的最高有效位匹配读地址的最低有效位时,断言(=)信号来指示在移位寄存器中的数据已经被移动到正确的位置用于读。当(=)信号是“1”时,停止快时钟200a。这冻结了在移位寄存器中数据的位置。到目前为止读操作与写操作类似,但现在它变得不同。(=)信号驱动RD信号。RD信号从移位寄存器取得(现在是静态的)数据并将其锁存到读数据锁存器中。由于锁存器是边沿触发的,所以一旦RD信号的上升沿已经通过,则到读数据锁存器的输入数据就可以改变而不影响被存储在锁存器中的数据。在读数据锁存器被计时(clock)来存储读数据之后,针对移位寄存器的计时继续使用慢时钟200b。RD信号被保持为高,直到处理器110再次读读数据锁存器为止。RD信号被发送到处理器110,作为准备从读数据锁存器读数据的指示符。在处理器119再次读该读数据锁存器之后,在接收到数据时,重置读数据锁存器。在该示例中,针对读操作无需状态机时钟。
在另一示例中,状态机时钟可以被用于读操作。在该示例中,RD数据就绪信号由控制逻辑电路210断言以向处理器110指示数据处于读数据锁存器中。处理器110处于等待状态,直到断言RD数据就绪信号为止,并且当断言时,处理器110可以读来自读数据锁存器的数据。在该示例中,类似于写操作,使用状态机时钟来在第二脉冲时重置数据锁存器。而且,在该示例中,处理器110不执行两次读而是代替地执行一次读并且进入等待状态,直到从读数据锁存器读数据为止。
图12示出了可以被用于控制逻辑电路210的逻辑的一个示例。可以以许多方式实现控制逻辑电路210,并且在图12中示出的电路是控制逻辑电路210的实施的一个示例。
图13图示了方法1300。方法1300可以由例如在图1、2、8和10中示出以及在上文描述的存储器控制模块140执行。在1301处,(例如,在正常操作条件下)针对由慢时钟200b生成的每个时钟脉冲,在存储器141的移位寄存器环中对比特进行移位。在1302处,响应于在控制逻辑电路210处接收数据操作将被执行(例如,断言/WE)的信号,针对由快时钟200a生成的每个时钟脉冲,对在存储器141中的移位中的比特进行移位。在1303处,基于来自位置计数器701的信息(例如,最高有效位)和来自从处理器110接收的地址的某些比特(例如,最低有效位),相等电路211确定在存储器141的移位寄存器环中的字是否处于起始位置,以执行在移位寄存器环中的数据操作。如果字处于起始位置中,则在1304处由控制逻辑电路210使能数据操作(例如,同时向或从存储器141读或写),并且在执行该数据操作之后,在1305处,根据慢时钟200b对在存储器141中的数据进行移位。如在1003处确定的那样,如果字不处于起始位置,则根据快时钟200a对数据进行移位,直到相等电路211确定数据处于起始位置中为止。
尽管已经参考示例描述了实施例,但可以对所描述的实施例做出各种修改而不背离要求保护的实施例的范围。
Claims (15)
1. 一种存储器电路,其包括:
移位寄存器环,其包括单比特移位寄存器,其中时钟被连接到移位寄存器以在移位寄存器环之内对比特进行移位;
移位寄存器位置指示电路,用以指示在移位寄存器环中的比特的位置;以及
数据操作控制电路,包括
相等电路,用以基于来自移位寄存器位置指示电路的信息和来自从处理器接收的地址的比特,确定在移位寄存器环中的字的位置是否处于起始位置以在移位寄存器环中执行处理器的数据操作,以及
控制逻辑电路,用以如果字被确定处于起始位置则使能在移位寄存器环中的数据操作,其中数据操作包括同时从移位寄存器环读比特或同时向移位寄存器环写数据。
2. 如权利要求1所述的存储器电路,其中控制逻辑电路将禁用时钟,并且在禁用时钟之后使能数据操作,并且
其中在执行了数据操作之后,控制逻辑电路将使能时钟。
3. 如权利要求2所述的方法,其中时钟包括快时钟和慢时钟,并且响应于从处理器接收信号,控制逻辑电路将使能快时钟以将在移位寄存器环中的比特移位到起始位置来执行数据操作,并且
禁用时钟,控制逻辑电路将禁用快时钟以从移位寄存器环读数据或写数据,并且
在执行数据操作之后使能时钟,控制逻辑电路在执行数据操作之后将使能慢时钟。
4. 如权利要求1所述的存储器电路,其中移位寄存器位置指示电路包括连接到时钟的计数器,并且来自计数器的比特输出指示在移位寄存器环中的字的位置。
5. 如权利要求4所述的存储器电路,其中每个移位寄存器仅存储单个比特的数据,并且针对由时钟生成的每个时钟脉冲,将在移位寄存器环中的每个比特移位到在环中的下一个移位寄存器,并且计数器以一递增,除非比特在最终位置,并且然后计数器被重置到0。
6. 如权利要求4所述的存储器电路,其中计数器输出的最高有效位指示在移位寄存器环中的多个字中的每个的位置,其中每个字具有由处理器使用的原生字大小。
7. 如权利要求6所述的存储器电路,其中来自从处理器接收的地址的比特包括来自处理器的地址的最低有效位,其指示将写到或读自移位寄存器环的字,并且相等电路将确定计数器输出的最高有效位的值和最低有效读地址位是否相等以禁用时钟。
8. 如权利要求1所述的存储器电路,包括锁存器,用以存储用于数据操作的数据,并且如果确定字处于起始位置则控制逻辑电路将使能从锁存器向移位寄存器环发送数据用于写数据操作,或者使能从移位寄存器环向锁存器发送数据用于读数据操作。
9. 如权利要求8所述的存储器电路,在完成数据操作之后,控制逻辑电路将重置锁存器。
10. 如权利要求8所述的存储器电路,其中锁存器被连接到每个移位寄存器的输出。
11. 如权利要求1所述的存储器电路,其中每个移位寄存器包括补零输入并且每个移位寄存器将同时接收补零有效信号以同时重置被存储在移位寄存器中的每个比特。
12. 一种电路,其包括:
控制逻辑电路,其连接到快时钟和慢时钟,其中快时钟和慢时钟被连接到在移位寄存器环中的单比特移位寄存器以对被存储在移位寄存器环中的比特进行移位,以及
控制逻辑电路将
响应于接收将针对处理器在移位寄存器环中执行数据操作的信号,使能快时钟以将在移位寄存器环中的比特移位到起始位置,
响应于比特处于起始位置,禁用快和慢时钟,其中响应于比特处于起始位置而执行数据操作,并且
在数据操作完成之后,使能慢时钟以将存储在移位寄存器环中的比特移位。
13. 一种方法,其包括:
基于来自移位寄存器位置指示电路的信息和来自从处理器接收的地址的比特,确定在移位寄存器环中的字的位置是否处于起始位置以在移位寄存器环中执行数据操作;以及
如果字处于起始位置,则执行在移位寄存器环中的数据操作,其中数据操作包括同时从移位寄存器环读比特或同时向移位寄存器环写数据。
14. 如权利要求13所述的方法,其包括:
在执行数据操作之前,针对由时钟生成的每个时钟脉冲,对在移位寄存器环中的比特进行移位;
禁用时钟;
执行数据操作;以及
使能时钟。
15. 如权利要求14所述的方法,其中时钟包括快时钟和慢时钟,并且所述方法包括:
其中对比特进行移位包括响应于从处理器接收信号,使用快时钟将比特移位到起始位置来调用数据操作
禁用时钟包括禁用快时钟;以及
使能时钟包括在执行数据操作之后使能慢时钟来对在移位寄存器环中的比特进行移位。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/068992 WO2014092696A1 (en) | 2012-12-11 | 2012-12-11 | Data operation in shift register ring |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104838445A true CN104838445A (zh) | 2015-08-12 |
Family
ID=50934772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280077618.7A Pending CN104838445A (zh) | 2012-12-11 | 2012-12-11 | 在移位寄存器环中的数据操作 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150318054A1 (zh) |
EP (1) | EP2932506A4 (zh) |
CN (1) | CN104838445A (zh) |
WO (1) | WO2014092696A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202438A (zh) * | 2022-09-16 | 2022-10-18 | 四川奥库科技有限公司 | 基于单时钟的全同步eFlash控制器的实现方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4321694A (en) * | 1978-05-12 | 1982-03-23 | Burroughs Corporation | Charge coupled device memory with enhanced access features |
US5305253A (en) * | 1985-06-20 | 1994-04-19 | Texas Instruments Incorporated | Zero fall-through time asynchronous fifo buffer with nonambiguous empty-full resolution |
US5343439A (en) * | 1990-10-19 | 1994-08-30 | Nec Corporation | Memory apparatus |
US5692026A (en) * | 1996-05-31 | 1997-11-25 | Hewlett-Packard Company | Apparatus for reducing capacitive loading of clock and shift signals by shifting register-based devices |
US20020027545A1 (en) * | 2000-07-18 | 2002-03-07 | Park Jin-Ho | Shift register and driving circuit of LCD using the same |
US6411230B1 (en) * | 1999-04-15 | 2002-06-25 | Koninklijke Philips Electronics N.V. | Circuit arrangement for parallel/serial conversion |
US20030147488A1 (en) * | 2002-02-06 | 2003-08-07 | Nec Corporation | Shift register |
US7310396B1 (en) * | 2003-03-28 | 2007-12-18 | Xilinx, Inc. | Asynchronous FIFO buffer for synchronizing data transfers between clock domains |
CN102403042A (zh) * | 2010-09-07 | 2012-04-04 | 英飞凌科技股份有限公司 | 基于锁存器的存储器设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1456235A (en) * | 1973-05-29 | 1976-11-24 | Gen Electric Co Ltd | Digital telecommunications switching systems |
US6728799B1 (en) * | 2000-01-13 | 2004-04-27 | Hewlett-Packard Development Company, L.P. | Hybrid data I/O for memory applications |
US7130984B2 (en) * | 2003-12-03 | 2006-10-31 | Texas Instruments Incorporated | First-in first-out memory system with shift register fill indication |
US7483327B2 (en) * | 2006-03-02 | 2009-01-27 | Freescale Semiconductor, Inc. | Apparatus and method for adjusting an operating parameter of an integrated circuit |
US8717831B2 (en) * | 2012-04-30 | 2014-05-06 | Hewlett-Packard Development Company, L.P. | Memory circuit |
-
2012
- 2012-12-11 EP EP12889809.5A patent/EP2932506A4/en not_active Withdrawn
- 2012-12-11 CN CN201280077618.7A patent/CN104838445A/zh active Pending
- 2012-12-11 WO PCT/US2012/068992 patent/WO2014092696A1/en active Application Filing
- 2012-12-11 US US14/650,631 patent/US20150318054A1/en not_active Abandoned
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4321694A (en) * | 1978-05-12 | 1982-03-23 | Burroughs Corporation | Charge coupled device memory with enhanced access features |
US5305253A (en) * | 1985-06-20 | 1994-04-19 | Texas Instruments Incorporated | Zero fall-through time asynchronous fifo buffer with nonambiguous empty-full resolution |
US5343439A (en) * | 1990-10-19 | 1994-08-30 | Nec Corporation | Memory apparatus |
US5692026A (en) * | 1996-05-31 | 1997-11-25 | Hewlett-Packard Company | Apparatus for reducing capacitive loading of clock and shift signals by shifting register-based devices |
US6411230B1 (en) * | 1999-04-15 | 2002-06-25 | Koninklijke Philips Electronics N.V. | Circuit arrangement for parallel/serial conversion |
US20020027545A1 (en) * | 2000-07-18 | 2002-03-07 | Park Jin-Ho | Shift register and driving circuit of LCD using the same |
US20030147488A1 (en) * | 2002-02-06 | 2003-08-07 | Nec Corporation | Shift register |
US7310396B1 (en) * | 2003-03-28 | 2007-12-18 | Xilinx, Inc. | Asynchronous FIFO buffer for synchronizing data transfers between clock domains |
CN102403042A (zh) * | 2010-09-07 | 2012-04-04 | 英飞凌科技股份有限公司 | 基于锁存器的存储器设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115202438A (zh) * | 2022-09-16 | 2022-10-18 | 四川奥库科技有限公司 | 基于单时钟的全同步eFlash控制器的实现方法 |
CN115202438B (zh) * | 2022-09-16 | 2022-12-30 | 四川奥库科技有限公司 | 基于单时钟的全同步eFlash控制器的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2932506A4 (en) | 2016-08-10 |
US20150318054A1 (en) | 2015-11-05 |
WO2014092696A1 (en) | 2014-06-19 |
EP2932506A1 (en) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20140223113A1 (en) | Selector syncronized with movement of data in memory | |
US8717831B2 (en) | Memory circuit | |
US9048834B2 (en) | Grouping of physically unclonable functions | |
US20140037093A1 (en) | Method of managing key for secure storage of data and apparatus therefor | |
CN103946826A (zh) | 用于在公共存储器通道上实现多级存储器层级的设备和方法 | |
US20170288885A1 (en) | System, Apparatus And Method For Providing A Physically Unclonable Function (PUF) Based On A Memory Technology | |
US9223503B2 (en) | Generating random numbers utilizing entropic nature of NAND flash memory medium | |
US20180095674A1 (en) | Selective data compression/decompression for intermemory transfer interface | |
CN107608910A (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
CN104126181A (zh) | 作为随机存取存储器的非易失性半导体存储装置的***存取的薄变换 | |
US20150078550A1 (en) | Security processing unit with configurable access control | |
US10163502B2 (en) | Selective performance level modes of operation in a non-volatile memory | |
KR20110121594A (ko) | 메모리 디바이스에 대한 인덱스된 레지스터 액세스 | |
CN104115230A (zh) | 高效pcms刷新机制背景 | |
CN106372540B (zh) | 一种芯片安全信息的安全传输方法及电路 | |
JP7332083B2 (ja) | マルチモード保護メモリ | |
US20170070215A1 (en) | Sequential circuit and operating method thereof | |
WO2020118713A1 (zh) | 位宽匹配电路、数据写入装置、数据读出装置和电子设备 | |
CN105955919A (zh) | 基于FPGA的多MCU读写NANDFlash的实现方法 | |
JP2019514094A (ja) | 作動モードとテストモードとの間の移行を制御すること | |
CN104838445A (zh) | 在移位寄存器环中的数据操作 | |
US10320369B2 (en) | Sequential circuits and operating methods thereof | |
US10379768B2 (en) | Selective memory mode authorization enforcement | |
CN111142787A (zh) | 存储分层的数据交换测试方法、***、终端及存储介质 | |
CN115145842A (zh) | 数据缓存处理器及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150812 |
|
WD01 | Invention patent application deemed withdrawn after publication |