执行存取操作的方法及裝置与流程

文档序号:12863718阅读:172来源:国知局
执行存取操作的方法及裝置与流程
本发明的技术是关于一种对于存储器的巢状环绕存取操作。
背景技术
:参见图1,nor闪存等存储器装置可使用环绕特征读取,此读取开始于预先定义长度的环绕单元内的起始地址,读取至终点,且绕回起点。上述环绕单元的长度例如为8字节、16字节、32字节或64字节。图1绘示具有16字节的环绕单元的环绕读取,此读取开始于起始地址241。读取继续直至16字节单元的终点,即地址255;绕回至所述单元的起点,即地址240;且继续。环绕单元的下边界可位于起始地址或在起始地址之前的可由环绕单元的长度整除的最高地址。此环绕读取是有用的,但受到限制。延伸的环绕读取选项将可提供对存储器更为弹性的存取。技术实现要素:以下描述可执行存取操作的装置,所述存取操作的变化形式可称为巢状环绕。此处描述的装置可包含逻辑模块,其可响应于指定所供应起始地址的指令,以产生可寻址存储器区块的地址序列,所述存储器区块包含n个区段(环绕计数),每一区段包含m个可寻址单元(区段长度)。地址序列可包含n个地址子序列,所述地址子序列包含由所供应起始地址识别的起始区段的起始子序列,且配置为按区段递增至存储器区块的上边界,环绕至存储器区块的下边界,且自下边界递增的一连串子序列。以巢状方式,给定区段的每一子序列具有高达m个地址,所述地址包含在由所供应起始地址识别的地址偏移处的起始地址,且以环绕方式配置为按可寻址单元递增直至给定区段的上边界,环绕至给定区段的下边界,且自下边界递增的一连串地址。所述装置的实例包括存储器及参数存储器,此参数存储器中存储指定环绕区段长度的第一参数及指定环绕计数的第二参数,其中环绕计数,或环绕区段长度与环绕计数是定义具有下边界及上边界的环绕区块。装置包括逻辑模块,其可响应于指定巢状环绕存取操作的所供应起始地址(其中所供应起始地址具有自环绕地址区段的下边界的偏移)的指令,以产生存取操作的地址序列直至终止事件。在将回绕起始地址设定为所供应起始地址之后,地址序列包含:a)区段环绕部分,其起始于回绕起始地址,按可寻址单元递增直至环绕地址区段的上边界,环绕至环绕地址区段的下边界,且递增直至紧接在回绕起始地址之前的可寻址单元的地址;b)若环绕计数大于1,且回绕起始地址加上环绕区段长度小于环绕区块的上边界,则将回绕起始地址递增环绕区段的长度,否则将回绕起始地址设定为环绕区块的下边界加上偏移;以及c)重复步骤a)及步骤b)。在一些实例中,环绕存取操作为读取操作,而在其他实例中,其为写入操作。响应于存储器装置接收到的单个外部指令,可对包含区段的存储器区块执行存取操作,包括使用供应起始地址的芯片上的地址定序逻辑,通过被携载作为所述指令的一部分(直接数据)或自装置上的参数存储器或可由装置存取的参数存储器读取的巢状环绕参数来执行。于此所述的实施例中,终止事件为控制信号的接收。在一些实施例中,环绕地址区段的下边界及上边界分别具有第一组最低有效位的成员均为零或均为一的地址。在一些实例中,环绕区块的下边界及上边界分别具有第二组最低有效位的成员均为零或均为一的地址。环绕区块可为存储器的整个可寻址空间。在一些实例中,用以存储环绕区段长度及环绕计数的参数存储器为非易失性存储器。此参数存储器可为一次写入存储器。环绕区段长度或环绕计数可设定为指令参数。于此描述由装置执行的巢状环绕存取操作方法。巢状环绕存取操作方法包括接收指令,该指令指定巢状环绕存取操作的所供应起始地址,其中所供应起始地址具有自环绕地址区段的下边界的偏移。巢状环绕存取操作方法进一步包括使用指定环绕区段长度的第一参数及指定环绕计数的第二参数,以产生地址序列直至终止事件,第一参数及第二参数存储在参数存储器中,其中环绕计数,或环绕区段长度与环绕计数是定义具有下边界及上边界的环绕区块。在将回绕起始地址设定为所供应起始地址之后,地址序列包含:a)区段环绕部分,其起始于回绕起始地址,按可寻址单元递增直至环绕地址区段的上边界,环绕至环绕地址区段的下边界,且递增直至紧接在回绕起始地址之前的可寻址单元的地址;b)若环绕计数大于1,且回绕起始地址加上环绕区段长度小于环绕区块的上边界,则将回绕起始地址递增环绕区段的长度,否则将回绕起始地址设定为环绕区块的下边界加上偏移;以及c)重复步骤a)及步骤b)。于此描述巢状环绕寻址的方法。此方法包括使用起始地址、环绕区段长度以及环绕区块长度,a)在由起始地址识别的当前环绕区段中,从起始地址识别的当前环绕区段内的偏移地址处开始,以环绕方式寻址当前环绕区段的一组地址,此当前环绕区段是在具有环绕区块长度的环绕区块中;b)以环绕方式继续进行至环绕区块中的下一区段;以及c)重复步骤a)及步骤b),直至终止事件。所述方法可包含存储环绕区段长度参数及环绕计数参数,其中使用环绕区段长度参数判定环绕区段长度,且使用环绕区段长度参数及环绕计数参数判定环绕区块长度。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附附图作详细说明如下。附图说明图1绘示先前技术的环绕读取。图2a是根据所述技术实施例所绘示的环绕区段长度为8且环绕计数为2的巢状环绕存取操作。图2b是根据所述技术实施例所绘示的环绕区段长度为8且环绕计数为4的环绕存取操作。图2c是根据所述技术实施例所绘示的环绕区段长度为16且环绕计数不受限制的环绕存取操作。图3为能够执行所述巢状环绕存取操作的具有串行外设接口(spi)的nor闪存装置的简化方块图。图4绘示可产生巢状环绕存取操作的地址序列的具有可控制进位位的地址计数器。图5绘示所述的匹配区块及进位传播区块。图6提供关于所述图4及图5的匹配区块的细节。图7提供关于所述图4及图5的进位传播区块的细节。【符号说明】300:集成电路/装置302:i/o区块304:串行频率(slck)305:频率产生器306:地址产生器308:地址计数器308-0~308-7:计数器级310:匹配控制区块312:进位传播区块314:数据缓存器316、318:参数存储器320:模式逻辑322:状态机324:sram缓冲器326:高电压产生器328:存储器/阵列330:x-译码器332:y-译码器334:感测放大器336:输出缓冲器350:起始地址缓存器610:xor闸714:多任务器ainm、am:位cx′:进位输出位cx:进位输入位gnd:接地vdd:电源具体实施方式于此描述一种环绕操作,其以巢状为特征,具有内部环绕及外部环绕。内部环绕的长度由第一参数(即环绕区段长度)定义。第二参数(即环绕计数)描述外部环绕的较大环绕区块中的环绕区段数目。结合环绕区段长度及环绕计数可提供较高的弹性。此弹性在输入及输出数据速率受限的同步串行接口中是有用的。所述参数可存储于使用易失性存储器或非易失性存储器实施的参数存储器中。环绕存取操作可为读取操作或写入操作。在闪存中,写入操作可包含编程操作及抹除操作。尽管抹除操作常常是基于可能不适用于环绕存取操作的抹除区块,但环绕存取仍可应用于编程及抹除两者。为简单起见,在此说明中的大多数实例将描述巢状环绕读取操作,但应理解,只要提供数据以写入通过巢状环绕存取操作所产生的地址,所述技术就可应用于巢状环绕写入操作。于此描述技术的实施例中,将为环绕存取操作(诸如,环绕读取指令)供应起始地址。环绕区段长度及环绕计数存储于参数存储器中。将环绕区段长度乘以环绕计数,将产生按可寻址单元计的环绕区块大小。可寻址单元可为字节(8位)、字组(两个或大于两个字节)、半字节(小于一个字节,诸如4位)等;为简单起见,给定的实例将假设可寻址单元为字节,但应理解,也可能是其他单元。响应于巢状环绕存取指令,于此描述的环绕存取操作可用以在环绕区块内按由环绕区段长度及环绕计数定义的方式连续读取或编程,直至终止事件(诸如侦测到控制信号)。首先将描述巢状环绕存取操作产生地址的方式。下一部分将描述可用于一些实施例中以实施地址产生序列的地址计数器及相关联的元件。地址序列产生以下描述巢状环绕寻址的方法,此方法使用起始地址、环绕区段长度以及环绕区块长度。程序包含步骤a)在由起始地址识别的当前环绕区段中,由起始地址识别的当前环绕区段内的偏移地址处开始,以环绕方式产生用于寻址当前环绕区段的一组地址。接着,在步骤b)中,程序以环绕方式继续进行至下一区段;且在步骤c)中,程序对于下一区段重复步骤a),直至终止事件。此将产生巢状环绕地址序列,包含在区段内的可寻址单元的内部环绕序列及在区块内的可寻址区段的输出环绕序列。所述方法可包含存储环绕区段长度参数及环绕计数参数,其中使用环绕区段长度参数判定环绕区段长度,且使用环绕区段长度参数及环绕计数参数判定环绕区块长度。在图2a的实例中,环绕区段长度为8字节且环绕计数为2,环绕区块为8×2=16。所供应起始地址为243。巢状环绕存取操作为巢套在外部环绕内的内部环绕。内部环绕将在环绕区段内的可寻址单元(在此实例中为字节)上回绕,接着外部环绕将在环绕区块内的环绕区段上回绕。图2a的16字节环绕区块包含两个8字节环绕区段。环绕区段分别在地址240及地址248(十进制)处开始。一般而言,环绕区段下边界为一组最低有效位的成员均为零(二进制)的地址。(此处使用的用语:地址的最低有效位为识别环绕存取操作的可寻址单元的最低有效位,在此状况下可寻址单元为8位的字节。单位元寻址将需要非为寻址环绕操作的可寻址单元的一部分的额外地址位。)在此实例中,环绕区段下边界240及环绕区段下边界248的三个最低有效位均为零。环绕区段上边界(在此为247及255)为一组最低有效位的成员均为一的地址。在此实例中,环绕区段上边界247及环绕区段上边界255的三个最低有效位均为一。3个位为表达8个状态所必要的位计数;8为环绕区段长度。在此实例中,所供应起始地址为243,环绕区段中的第四字节开始于地址240。回绕开始于回绕起始地址,因此首先将回绕起始地址设定为243,即所供应起始地址。地址按可寻址单元(在此1字节)递增,且读取继续进行至环绕区段的上边界,247;接着回绕至环绕区段的下边界,240。读取将继续直至地址为紧接在回绕起始地址243之前的242。上述将被描述为以环绕方式读取。在以环绕方式读取之后,回绕起始地址接着递增环绕区段长度,243+8=251。自251,以环绕方式读取下一环绕区段并继续进行至255处的上边界,返回至248处的下边界,且到达地址250(其紧接着在回绕起始地址251之前),从而完成第二环绕区段。接着读取将跳回至第一环绕区段中的地址243,且以环绕方式继续。巢状环绕存取操作可继续产生地址,且在所产生的地址处读取或写入存储器,直至终止事件。在图2b的实例中,环绕区段长度为8且环绕计数为4,环绕区块为4×8=32。所供应起始地址为202。环绕区块的下边界及上边界分别为192及223,且环绕区块中存在四个环绕区段,具有下边界192、下边界200、下边界208以及下边界216。在此实例中,应注意,环绕区块的下边界为处于起始地址处或低于起始地址的可被环绕区块的大小整除的最高地址。环绕区块的长度为32,因此环绕区块的下边界为192。对于192与223之间的任何起始地址,当环绕区块的长度为32时,环绕区块的下边界为192且上边界为223。换句话说,环绕区块的下边界具有一组最低有效位的成员均为零(二进制)的地址。环绕区块的下边界为低于所供应起始地址的b个最低有效位均为零(二进制)的最高地址,其中b为表达wl个状态所需的位计数,而wl为环绕区块的长度。环绕区块的上边界具有一组最低有效位的成员均为一(二进制)的地址。在本实例中,所供应起始地址,202,为环绕区段(其下边界为200)中的第三字节。所述起始地址202自下边界200的偏移为2。环绕区段的下边界为处于回绕起始地址处或低于回绕起始地址的可被环绕区段的长度整除的最高地址。换句话说,环绕区段的下边界为低于回绕起始地址的b个最低有效位均为零(二进制)的最高地址,其中b为表达l个状态所需的位计数,其中l为环绕区段的长度。将回绕起始地址设定为所供应起始地址202。以环绕方式继续进行读取至207,返回至200,且递增直至201,即紧接在回绕起始地址202之前的地址。回绕起始地址接着递增环绕区段长度,202+8=210。再次以环绕方式继续进行读取至215,返回至208,直至下一地址为经递增的回绕起始地址210,接着回绕起始地址再次递增环绕区段长度,即210+8=218。以环绕方式自218继续进行读取至223,至216,至217,其紧接在回绕起始地址218之前。但将回绕起始地址218递增环绕区段长度会引起自218至226的跳转,其将越过环绕区块的上边界223。存取将被限制在环绕区块内。实际上,所产生的下一地址为环绕区块的下边界192加上偏移2,即192+2=194,因此下一区段环绕开始于回绕起始地址194。以环绕方式通过边界与回绕起始地址194之间的地址继续读取直至193,且结束在完全环绕的地址193,其紧接在区段的起始地址194之前。在一些实施例中,可能需要将地址子序列或给定区段结束于除紧接在起始地址之前的地址193以外的地址。回绕起始地址接着递增环绕区段长度,即194+8=202,此为初始所供应起始地址。读取可以此方式继续,直至其由终止事件(例如,由于控制信号的接收)中止。环绕计数参数及环绕区段长度参数可存储于使用非易失性缓存器或易失性缓存器实施的参数存储器中。举例而言,表1列出了可对应于两位缓存器的可能值的环绕区段长度:表1缓存器[0:1]环绕区段长度008个可寻址单元0116个可寻址单元1032个可寻址单元1164个可寻址单元表2列出了可对应于两位缓存器的可能值的环绕计数:表2缓存器[0:1]环绕计数00101210411不受限制在其他实施例中,可以用较多位或较少位表示环绕计数及环绕区段长度,且环绕计数的值及环绕区段长度的值可以用不同方式解释;环绕计数的四个值可解释为2、4、8以及16。举例而言,若提供三位给环绕区段长度,则将存在八个可能值,其例如是自4至512的二的幂次方,或是其他可预见的可能性。环绕发生在环绕区块内,环绕区块可具有以可寻址单元(诸如,字节、字组等)计的大小,此大小等于环绕区段长度与环绕计数的乘积。在图2a的实例中,环绕区段长度为8字节且环绕计数为2,而产生8字节×2=16字节、自地址240至地址255的环绕区块。在图2b的实例中,环绕区段长度为8字节且环绕计数为4,而产生8字节×4=32字节、自地址192至地址223的环绕区块。环绕区块的长度可与环绕区段长度及环绕计数的乘积成比例或相等。在此实例中,环绕区块是由一个数目的连续环绕区段构成,此数目为环绕计数。在一些实施例中,环绕计数不受限制,且环绕区块的长度为存储器的整个可寻址空间。转向图2c,在此实例中,环绕区段长度为16,起始地址为193,且环绕计数不受限制。读取是以环绕方式自起始地址193开始。在回绕之后,当地址为192(紧接在回绕起始地址之前)时,回绕起始地址将递增环绕区段长度,且环绕读取开始于地址209处。下一跳转为至225,接着为241等,跳转环绕区段长度直至地址空间的终点。在地址空间中的最终环绕读取之后,起始地址会被设定为环绕区块的下边界(其为地址空间的起点)加上所供应起始地址自其环绕区块下边界的偏移。对于图2c的实例,所供应起始地址为193,且其环绕区块下边界为192,偏移为1。因此,在自地址空间的终点跳转之后,环绕区块下边界为0,且起始地址被设定为1。更一般而言,于此描述的技术的实施例中,会供应起始地址、环绕区段长度以及环绕计数。环绕区段长度及环绕计数则会定义环绕区块大小。(或,当环绕计数不受限制时,环绕区块为整个地址空间。)从图2a、图2b以及图2c可以看出,在环绕区块的对应区段内存在多个回绕起始地址,其由环绕区段长度隔开(图2a中的243及251;图2b中的194、202、210以及218;以及图2c中的1、9、17...193、201等)。这些回绕起始地址中的一个与所供应起始地址重叠。响应于单环绕读取指令,读取将自所供应起始地址以环绕方式开始,历经由环绕区段长度定义的多个读取单元(例如,字节),接着跳转至下一较高回绕起始地址,除非当前回绕起始地址为环绕区块中的最高回绕起始地址。在此状况下,读取将跳转至环绕区块中的最低回绕起始地址。环绕读取将依次继续至环绕区块中的每一回绕起始地址。实施的实施例图3绘示集成电路300(例如,spinor闪存装置)的简化方块图,其能够通过环绕区段长度及环绕计数执行环绕读取或写入。i/o区块302绘示符合串行外设接口(spi)标准且具有标准接脚的同步串行接口。cs#为芯片选择。当使cs#拉低时,则选择装置。hold#信号变低则会停止与所述装置的串行通信,但不会停止写入状态缓存器的操作、在进行中的编程或抹除。reset#信号允许装置重设,从而终止当前执行的程序且重置状态机。wp#信号提供写入保护。gnd及vdd分别为接地及电源。在spi标准中,si及so分别为串行数据输入及串行数据输出。在双重spi操作中,si及so变为双向i/o接脚:sio0及sio1。在四重spi操作中,sio2及sio3可供用于较高速传送。此仅为实例,可能有多种接脚配置。亦提供串行频率slck304。集成电路上的频率产生器305会产生用于模式逻辑320及集成电路的其他元件的频率信号。在此实施例中,频率产生器305自slck接脚304接收sclk。在不同实施例中,可使用其他类型的串行接口及并行接口,并可使用除nor闪存以外的存储器技术。于此所述用以结束巢状环绕存取操作的终止事件可为控制信号的接收。举例而言,在一些实施例中,cs#或reset#可被触发,诸如将所述信号自低电平拉至高电平以结束巢状环绕存取操作。替代地或额外地,终止事件可以是由芯片控制逻辑在内部产生。举例而言,终止事件可以是在环绕操作已对环绕区块完成指定数目的环绕时,由计数器及比较器产生的控制信号。地址产生器306包含地址计数器308、起始地址缓存器350、匹配控制区块310以及进位传播区块312。数据缓存器314包含参数存储器,参数存储器包含缓存器316及缓存器318。装置300亦包含:模式逻辑320,其可产生内部控制信号;以及状态机322。数据及参数可存储于sram缓冲器324中。高电压产生器326产生用于如读取操作、编程操作以及抹除操作所需的任何较高电压。存储器阵列328包含x-译码器330及y-译码器332,且数据信号将输出至感测放大器334。输出缓冲器336可存储自装置输出的输出数据。本领域技术人员将了解,供此图仅供参考,于此描述的执行巢状环绕存取操作的装置可能与此图相差甚远,包括不同元件,并以不同方式连接。综上,图3的装置可用以执行巢状环绕存取操作。此装置包括存储器328以及包含缓存器316与缓存器318的参数存储器,参数存储器可分别存储环绕区段长度及环绕计数。指令指定所供应起始地址,其可存储于起始地址缓存器350中。所供应起始地址具有自环绕地址区段的下边界的偏移。逻辑会响应巢状环绕存取操作的指令,以产生存取操作的地址序列,直至终止事件,终止事件可为借助于i/o区块302所接收到的控制信号。举例而言,此逻辑可驻留于模式逻辑320、状态机322以及/或地址产生器306中。巢状环绕操作包括:接收指定所供应起始地址的指令,其中所供应起始地址具有自环绕地址区段的下边界的偏移;以及产生地址序列直至终止事件。在一个实例中,所述指令可包括在i/o区块中的sio接脚上接收到的字节序列。此字节序列可包含充当指定环绕读取的操作码的第一字节。在第一字节之后的第二字节或一组字节可由环绕读取的起始地址构成。在指令序列之后,环绕读取的输出数据可提供于相同的sio接脚上。模式逻辑320可包含用于译码操作码,将起始地址路由至地址计数器,以及提供控制信号以在状态机322中建立及起始读取程序的逻辑。环绕写入指令可具有类似结构,其中写入数据是在指令序列的起始地址字节之后提供。在并行端口装置中,可并行使用分离的地址总线线及数据总线线,以提供指令序列。指令序列亦可由芯片上逻辑(诸如,在系统单芯片装置中)产生,且使用芯片上的通信资源提供至存储器。如前述,地址序列包含a)区段环绕部分,其起始于回绕起始地址,按可寻址单元递增直至环绕地址区段的上边界,并环绕至环绕地址区段的下边界,且递增直至紧接在回绕起始地址之前的可寻址单元的地址;b)若环绕计数大于一,且回绕起始地址加上环绕区段长度小于环绕区块的上边界,则将回绕起始地址递增环绕区段长度,否则将回绕起始地址设定为环绕区块的下边界加上偏移;以及c)重复步骤a)及步骤b)。为简单起见,在数据缓存器314中绘示了包含缓存器316及缓存器318的参数存储器。缓存器316及缓存器318将分别存储环绕区段长度及环绕计数。缓存器316及缓存器318驻留在数据缓存器314中的配置仅为一个实施例,这些缓存器可存在于其他处。如上所提及,这些参数可存储于易失性存储器或非易失性存储器中,且可以多种方式提供用于巢状环绕存取操作。这些数值中的任一个或两个可为出厂设定,一个实例则可为一次写入存储器,诸如在装置被运送之前即设定的熔丝存储器。这些数值中的任一个或两个可为现场可设定的。这些数值中的任一个或两个可存储于一次写入存储器(诸如,熔丝存储器)中或可存储于读取/写入存储器(诸如,sram、闪存或任何其他类型的存储器)中。这些数值中的任一个或两个可为可配置的,例如通过某种初始化程序,诸如系统bios。这些数值中的任一个或两个可作为环绕读取操作的参数,如巢状环绕存取操作之前的环绕读取指令或单独设定指令(诸如针对参数存储器的缓存器写入指令)中的直接数据(例如,在指令序列的地址字节之前的额外字节中)。以下将提供更详细的实例说明此处所述技术的巢状环绕存取操作如何实施。应理解,其他实施方案也是可行的。如图3所示的地址产生器306包含地址计数器308、起始地址缓存器350、匹配控制区块310以及进位传播区块312。图4及图5更详细地绘示这些元件。地址计数器308产生地址位a[0:n]。在图4中,为简单起见,n=7,但当然n可大于7。地址位a0为地址的最低有效位。cx′及cx分别为来自较低有效位的进位输出及进位输入,也就是c3′为来自a3的进位输出,而c3为至a4的进位输入。进位输出位cx′将被供应至图5所绘示的进位传播区块312中的多任务器,其输出则连接至对应的进位输入cx。输出a0至输出a7可在频率转变时供应至地址缓冲器,或供应至译码器电路。图4为包含一连串计数器级308-0至308-7的地址计数器308的图。每一级具有接收地址位ainx、load信号、频率ck以及进位输入信号c(x-1)的输入端(第一级可不具有进位输入信号输入端)。每一级具有可经由前述的部分或所有级中的开关,将进位输出信号cx提供至下一级的输出端。每一级具有可在频率的每一循环中提供输出地址ax,以产生地址序列的输出端。为了支持环绕操作,进位输出信号至对应进位输入的输入端的连接是由如图5所示的逻辑来管理。通过控制进位输出信号至对应进位输入的输入端的连接,可产生用于巢状环绕操作的地址序列。图5绘示用于管理进位输出信号至对应进位输入的输入端的连接的逻辑。图5的电路包含缓存器350,其可存储环绕存取的起始地址。图5的电路包含匹配控制逻辑310,其用于判定由地址计数器308输出的地址何时会与参数存储器中的环绕区段长度参数所指定的环绕区段起始地址相匹配,并用于产生match信号。输入a[0:m]为来自图4的地址计数器308的地址输出位。指数「m」可使用环绕区段大小参数来设定或依预设设定得足够大以适应装置所允许的最大环绕区段大小。图5的电路包含进位传播逻辑312,其响应于match信号及参数存储器中的环绕计数参数,而选择性地将进位输出信号(在此实例中以c′[2:n-1]表示)连接至对应进位输入的输入端(在此实例中以c[2:n-1]表示)。对于环绕读取操作,借助于输入线ain[0:7],所供应起始地址将被加载地址计数器308,且在图5中被加载起始地址缓存器350。起始地址缓存器350至少存储定义起始地址自环绕区段下边界的偏移的位。内部控制信号(诸如,load及ck)可由模式逻辑320或状态机322产生,且可控制地址计数器308的加载。在本实例中(如同先前图2b的实例),起始地址为202,环绕区段长度=8且环绕计数=4,环绕区块的长度就为8×4=32字节。环绕区段长度定义了用于环绕的地址位。在此实例中,环绕区段长度为8。要表达八个状态需要三个位,因此环绕区段内的回绕发生在三个最低有效位,即a[0:2]内。地址计数器308协同图5的进位传播逻辑312是用于产生地址序列,以存取阵列328,在此实例中,地址序列的每一循环产生一个地址。在每一地址循环中,地址计数器308将递增1,而由匹配控制区块310判定的进位输入的输入端(在此实例中为进位输入c2)则保持为0。将进位输入c2保持为0可确保地址不会前移超出8字节环绕区段的上边界。举例而言,对于起始地址202(如在图2b中),将进位输入c2保持为0,可确保地址不会前移超出207(二进制11001111),而是从上边界207回绕至下边界200(二进制11001000)。参见图4及图5,缓存器316存储环绕区段长度,而缓存器318存储环绕计数。每次地址计数器308递增时,本实例中的位a[0:2]都将与起始地址缓存器350中的起始地址的三个最低有效位进行比较。缓存器316包含环绕区段长度,且定义用于比较的位计数,因此缓存器316将被输入至进行所述比较的匹配控制区块310。基于所述比较,设定match的值(即匹配控制区块310的输出)。只要a[0:2]与起始地址缓存器350的三个最低有效位不同,match=0。在产生八个地址(在此实例中为202、203、204、205、206、207、200以及201)之后,地址计数器308中的地址照常递增一。当匹配控制区块310将递增地址的三个最低有效位a[0:2]与起始地址缓存器350的三个最低有效位进行比较时,将发现它们相匹配,且match=1。若match=1,则基于环绕计数及环绕区段长度,选择进位输入的输入端。在环绕计数为4且环绕区段长度为8字节的情况下,进位输入c2设定为1,进位输入c3设定为进位输出c3′,且进位输入c4设定为0。通过迫使进位输入c2为1,而迫使a3递增。允许a4正常递增,且不允许a5递增。这种进位输入位的配置被选择用来提供4的环绕计数。此环绕计数存储在缓存器318中,因此缓存器318将被输入至进位传播区块312。环绕计数参数及环绕区段长度参数是用于判定开关的状态,所述开关是用于将进位输入信号提供至适用于装置上可用的环绕计数选项所需的地址计数器级。所述开关可经配置以将进位输入的输入端设定为所选择的前一级的进位输出、逻辑0以及逻辑1其中之一。参见图2b,通过迫使a3递增以将8加至地址,将导致地址201跳转至地址210(自二进制11001001至二进制11010010)。参见图2b、图4以及图5,如前所述以环绕方式产生自210至215,再至208及209的八个地址,再次保持进位输入c2=0。当达到回绕起始地址偏移时,接着再次match=1。如前所述,进位输入c2=1,进位输入c3=进位输出c3′,且进位输入c4=0,这一次将导致自209跳转至218(自二进制11010001至二进制11011010)。在进位输入c2=0的情况下读取八个地址并递增地址计数器308之后,下一地址为回绕起始地址218,且match=1。再次,c2=1,c3=c3′,且c4=0。由于c4保持为0,a5将不会递增,而将导致自217跳转至194(自二进制11011001至二进制11000010)。在进位输入c2保持0的情况下读取八个地址并递增地址计数器308之后,下一地址为回绕起始地址194,且match=1。在进位输入c2=1,c3=c3′,且c4=0的情况下,回绕起始地址将自193跳转至202(二进制11000001至11001010),此202为所供应起始地址。此将完成通过环绕区块中所有环绕区段的一个回绕。存取操作将继续直至终止事件。此终止事件(如芯片启用控制信号的触发)例如可使频率信号ck被关闭。在图4中所绘示的实施例中,所允许的最小环绕区段长度为8,因此不需要控制进位位c0及进位位c1,也就是进位输出总是与进位输入相同。在不同的实施例中,举例而言,若准许为4个可寻址单元的环绕区段长度,则必须可能使c1不同于c1′。或者,若所允许的最小环绕区段长度为16,则不需要控制进位输入c2。应注意,为方便起见,图5中绘示了存储环绕区段长度的值及回绕计数的值的缓存器316及缓存器318。如图3中所绘示及前述,这些参数可不存储于地址产生器306中,其可存储于数据缓存器314中或存储于其他处。这些参数可存储在任何易失性存储器或非易失性存储器中。当要执行巢状环绕读取操作时,这些参数中的任一个或两个可自一个位置复制至另一位置。综上,先读取地址的内容,再递增地址。当下一地址与起始地址不匹配时,进位输入c2=0。当下一地址与起始地址匹配时(当环绕区段长度的回绕结束时),进位输入c2=1,递增a3且迫使环绕区段长度的跳转。c3不被控制,因此a4正常递增。通过将进位输入c4保持为0,a5将不递增,因此读取无法前移超出环绕区块的终点。回想前述环绕区块开始于等于或小于起始地址的地址处(其可被环绕区块整除的)。在刚给定的实例中,环绕区块为32且起始地址为194,因此环绕区块将自环绕下边界192延伸至环绕上边界233。对于192与233之间的任何起始值,环绕下边界及环绕上边界均为相同。在一个实施例中,环绕区段长度可为8、16、32或64。在刚提供的实例中,环绕区段长度为8,且匹配控制区块310将地址位a[0:2]与起始地址缓存器350的三个最低有效位进行比较。若环绕区段长度为16,则匹配控制区块孔0会将地址位a[0:3]与起始地址缓存器350的四个最低有效位进行比较;若环绕区段长度为32,则匹配控制区块310会将地址位a[0:4]与起始地址缓存器350的五个最低有效位进行比较;以此类推。如图5所示,进位传播区块312是基于环绕区段长度(存储于缓存器316中)、环绕计数(存储于缓存器318中)、进位输出位c[2:n-1]的值以及match的值,来设定进位输入位c[2:n-1]。若环绕计数为1,则仅控制一个进位输入位。在match=0时,将来自对应于环绕区段长度的最高有效位的进位输入保持为0。当match=1时,将迫使来自对应于环绕区段长度的最高有效位的进位输入改变为1。因此,当环绕区段长度=8时,受控的进位输入位为c2;当环绕区段长度=16时,受控的进位输入位为c3;当环绕区段长度=32时,受控的进位输入位为c4;当环绕区段长度=64时,受控的进位输入位为c5;以此类推。若环绕计数为2(如图2a),则控制两个连续的进位输入位。将来自对应于环绕区段长度的最高有效位的进位输入保持为0,直至match=1,然后强制改变进位输入为1。将次高的进位输入位保持为0。当环绕区段长度=8时,受控的进位输入位为c2及c3;当环绕区段长度=16时,受控的进位输入位为c3及c4;当环绕区段长度=32时,受控的进位输入位为c4及c5;以及当环绕区段长度=64时,受控的进位输入位为c5及c6。若环绕计数为4,则控制两个非连续的进位输入位,同时允许所述两个非连续的进位输入位之间的进位输入位正常前移。当match=0时,将来自对应于环绕区段长度的最高有效位的进位输入保持为0;接着当match=1时,则强制改变进位输入为1。允许次高的进位输入位正常前移。将次高的进位输入位保持为0。当环绕区段长度=8时,则受控的进位输入位为c2及c4,且c3=c3′。当环绕区段长度=16时,受控的进位输入位为c3及c5,且c4=c4′。当环绕区段长度=32时,受控的进位输入位为c4及c6,且c5=c5′。当环绕区段长度=64时,受控的进位输入位为c5及c7,且c6=c6′。对于二的较高幂次方的环绕计数(诸如,8、16、32等),将控制两个非连续的进位输入位,同时允许在所述两个非连续的进位输入位之间的进位输入位正常前移。举例而言,对于环绕区段长度为8及环绕计数为16的情况,受控的进位输入位为c2及c5,同时c3=c3′且c4=c4′。更一般而言,当环绕区段长度l为二的幂次方,且用来表达l个状态所需的位计数为b(对于l=8,b=3;对于l=16,b=4;对于l=32,b=5;等)时,则所要控制的较低进位输入位为b-1(对于l=8,c2;对于l=16,c3;对于l=32,c4;等)。当环绕计数为有限数目且环绕区块长度wl为二的幂次方,且用来表达wl个状态所需的位的数目为b时,所要控制的较高进位输入位为b-1(对于wl=16,c3;对于wl=32,c4;对于wl=64,c5;等)。在受控的较低进位输入位与受控的较高进位输入位之间的任何位将被允许正常前移。若环绕计数不受限制,则将来自对应于环绕区段长度的最高有效位的进位输入位(若环绕区段长度=8,则进位输入位为c2;若环绕区段长度=16,则进位输入位为c3;若环绕区段长度=32,则进位输入位为c4;若环绕区段长度=64,则进位输入位为c5)保持为0,直至match=1,接着强制改变进位输入位为1。所有较高阶的进位位将不被控制,且地址将正常前移至地址空间的终点。在地址空间的终点处,当match=1时,用以定义环绕区段长度的位a[0:m](对于环绕区段长度8、16、32或64,m=2、3、4或5)将保持在起始地址处,而所有较高位a[m+1:n]将设为零,从而再次开始。图6绘示匹配逻辑的可能实施方式,其对应于图3及图5的匹配控制区块310。一组平行xor闸610中的每一个会将取a[0:m]中的一个位以及ain[0:m]中的对应位作为输入。待比较的地址位的数目(所使用的xor闸的数目)是用来表达环绕区段长度状态所必要的位计数。举例而言,当环绕区段长度为8时,起始地址偏移包含三个位,而会比较三个位(位a[0:2]会与位ain[0:2]进行比较),且会使用三个平行xor闸。当环绕区段长度为16时,起始地址偏移包含四个位,而比较四个位(位a[0:3]会与位ain[0:3]进行比较),且会使用四个平行xor闸,以此类推。选择xor闸数目的逻辑可包含可响应环绕区段长度参数而被控制的开关,借此将xor闸的输出提供至nor闸或不提供至nor闸,或可使用本领域技术人员熟知的其他逻辑电路。若a位与ain位相同,则每一xor函数的输出为0。xor闸的输出将全部馈入nor闸,仅当所有输入均为零时nor闸才为1。因此,仅当ain[0:m](起始地址)及a[0:m](待存取的下一地址)的所有m+1个位均相同时,match=1。图7绘示用于一个地址级的进位传播逻辑的可能实施方式,其对应于图3及图5的进位传播区块312。回想前述对于可被控制的每一对进位输出/进位输入,将进位输入cx强制为0,强制为1,或将其设定为进位输出cx′。多任务器714(或开关)会在gnd(值为0)、vdd(值为1)或进位输出位cx′的值之间选择。将进位输入位cx设定为所得结果。因此,举例而言,若环绕区段长度=8且环绕计数=4,则针对c2,进位传播多任务器714将在match=0的情况下选择gnd;且在match=1的情况下选择vdd。下一进位位c3将被允许正常前移,因此对于c3,多任务器将选择c3′。下一进位位c4将被强制为零,因此对于c4,多任务器将选择gnd。对于c5至cn,多任务器将选择c5′至cn′。对于需要被控制的每一个进位输入位,均将存在多任务器714。如前述,环绕区段长度及环绕计数可共同判定是否控制一或两个进位输入位,并判定哪些位以及受控的进位输入位是否为连续的。组合逻辑会如前述将环绕区段长度参数及环绕计数参数译码,以在每一地址计数器级中控制多任务器714。虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属
技术领域
中普通技术人员,在不脱离本发明的精神和范围内,当可作部分的更改与修饰,故本发明的保护范围当视权利要求所界定者为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1