因此,本发明的目的是提供一种存储器结构,其能够通过一个统一的嵌入式存储块代替几个小FIFO存储块。
通过如权利要求1所述的存储器件实现该目的。
因此,所提出的其中将对预定寄存器存储块的移位寄存器访问映射到存储器的整个地址空间中的后续地址的结构允许在一个嵌入式存储器中组合多个FIFO或者其它种类的移位寄存器存储器,例如RAM(随机存取存储器)。该实施在功耗和面积方面是最有利的。此外,该有利的实施允许由相同容量的单端口RAM代替多端口RAM。这种实施不仅在面积和功率方面更加有利,而且具有缩短的周期和访问时间。
访问控制装置可以包括至少一个地址计数器或者产生所需地址序列的任何种类的有限状态机。由此,可以提供用于地址产生的简单实施。
此外,预定寄存器存储区的地址范围可以包括预定大小的重叠区。这提供了嵌入式存储器的容量小于所有替代的FIFO块的存储位置总数的优点。这些重叠区域可以有利地用作Viterbi检测器的训练(training)区,其中进入的数据流以子流重叠的方式在几个检测器之间分开。在这种情况下,一个检测器在其子流末端具有重叠区域,另一个检测器在其子流的开始具有相同的区域。由于可以通过前者提供位判决,因此后一个检测器可以使用重叠区域用于训练目的。所提出的方案在数据流中不需要特殊的标记,并且可以用于数据流已经标准化并且不可能在其内包含标记的应用中。
至少一个访问端口可以提供对多个数据源的访问用于将数据写入相应的寄存器存储块,并且提供对多个数据处理设备的访问用于从寄存器存储块读取数据。具体地讲,可以将访问控制装置设置成为数据源和数据处理设备提供交替访问。可以控制数据源的访问,以在整个地址空间内循环,并且可以控制数据处理设备的访问,以在相应寄存器存储区的地址范围内循环。该循环的读和写操作有助于读出访问所需要的地址转换。
作为有利的修改,缓冲存储器可以连接到至少一个访问端口和存储器,其中选择缓冲存储器和存储器的线宽,使其大于或者等于至少一个访问端口的数据宽度乘以每个周期的读访问和写访问的总和。由此,可以提供单端口结构,其中用具有较少的存储线和相应地每线更多位的存储块代替嵌入式存储器。数据源或者多个数据源提供通过缓冲存储器给掩埋存储器提供写数据。以这种方式,可以在每个写周期将整个线写到嵌入式存储器,从而减小访问频率。由此可以由相同容量的单端口RAM器件代替多端口RAM器件,同时提供缩短的周期和访问时间。此外,现在至少一个访问端口的写端口的数量可以与读端口的数量不同。因此,由存储器件接收的数据符号的数量可以与在每个循环中产生的数据符号的数量不同。这提供了连接到嵌入式FIFO存储器的处理设备的数量可以改变并且不必等于输入数据流数量的优点。
访问控制装置可以包括地址转换装置,该地址转换装置用于以适合线宽的方式调整与读访问相关的地址。具体地讲,该访问控制装置可以适合于将写访问转移到缓冲存储器,直到它变满,并且适合于当缓冲存储器满时写一条存储线。另一方面,访问控制装置可以适合于以一直读取线宽块的方式调整读访问。地址转换装置可以包括查询表或者产生所需输出序列的有限状态机。
本发明的有利修改在从属权利要求中限定。
现在参考附图基于优选实施例说明本发明,其中:
现在根据存储器结构说明优选实施例,其中在一个统一的嵌入式存储块EM中实施数量为Z的FIFO存储块。
图1示出示意功能方框图,在其左侧部分表示具有专用的输入端和输出端的常规分立FIFO存储块FIFO1至FIFOZ。该常规结构可以转换为在图1的右侧部分示出的根据本发明第一优选实施例的存储器结构。根据第一优选实施例,由一个统一的嵌入式存储块EM代替小的FIFO块FIFO1至FIFOZ。这样,如果Z个FIFO块每个都具有存储容量B,则它们可以组合为具有容量Z×B的嵌入式存储块EM,其中可以将FIFO访问映射为在嵌入式存储块EM的整个地址空间中的后续地址。这里应注意,FIFO块的容量不必相同。每个FIFO块可以具有独自的具体容量,这必须在单独寻址方案的实施中考虑。可以通过向嵌入式存储块EM提供相应的控制信号和地址的访问控制单元A来控制读和/或写访问。此外,可以通过相应访问端口P1至PZ提供将写入到嵌入式存储块EM或者将从嵌入式存储块EM读出的数据单元。
每个FIFO块都指定或者分配具有相应地址范围AS1至Asz的预定FIFO存储区。访问控制单元A的地址产生功能性可以基于顺序或循环计数器或者顺序或循环计数功能,从而产生用于以FIFO方式从嵌入式存储块读出或者写入嵌入式存储块的后续地址,即在对应于FIFO存储区的宽度的相应移位延迟之后写入到相应FIFO存储区中的第一数据单元。具体地讲,FIFO或者其它移位寄存器存储器的关键特征是数据单元或者数据字依次读出和写入。
这样,例如当分别设计可以用于Viterbi检测器并且可以包括交织器或者去交织器功能性的多路复用或者多路分解器件时,系统设计者可以用统一的嵌入式存储块EM代替常规的小FIFO块FIFO1至FIFOZ。在这些情况下,多路分解和交织进入的数据流,以允许通过一组“现用(out-of-the-shelf)”Viterbi检测器并行处理数据。对来自并行Viterbi检测器的输出数据流进行多路复用和去交织,以形成格式类似于输入流格式的输出位判决流。以这种方式组织的基于Viterbi的位检测器对系统的其余部分是透明的,并且可以容易地集成到现有的集成电路中的数据流中。可以以低于比特率的速度操作每个连续的Viterbi解码器。Viterbi检测器的速度越慢,越需要Viterbi检测器并行运行。Viterbi检测器的数量至少几乎与比特率和检测器速度之间的比成线性增长。
对于这种检测器应用或甚至对于其它种类的应用来说,在嵌入式存储块EM的不同FIFO存储区之间建立重叠区是有用的。那么,至少需要一个额外的Viterbi检测器,以便处理与在细分输入流时重叠区域的存在有关的开销(overhead),其中在重叠区域中至少对相同的输入采样处理两次。相对于标准的顺序Viterbi检测器,保持所提出的并行Viterbi检测器的误码率不变所需的重叠区域的尺寸小。对于所关心的应用来说,例如光盘系统、硬盘驱动器、数字磁带存储系统等,应在50至100个输入采样的数量级上。重叠区域的一部分、一般30至50个采样可以用来初始回溯阵列(backtracking array),同时其剩余部分、一般20至50个采样可以用来初始路径度量(pathmetric),这种重叠区域的设置带来了嵌入式存储块EM的容量小于Z×B的好处。
图2示出第二优选实施例的示意功能方框图,其中由具有额外的缓冲存储器B的单端口嵌入式存储块EM代替多端口嵌入式存储块EM。
在该连接中,假设如图2的左侧部分所示的M个线、每线N位的多端口存储块EM在每个周期中必须处理X个写访问和Y个读访问。因此,访问端口P1至PZ包括X个写端口和Y个读端口。这意味可以将两个或者更多个写端口分配给一个FIFO存储区,或者可以将一个读端口分配给不止一个FIFO存储区。
当缓冲读和写访问时,如果缓冲存储器B的线宽L满足条件L≥X+Y,则可以由包括M/L条线、每条线L×N位的单端口存储块代替嵌入式存储块EM。由于写侧上的L×N位的增强缓冲器容量,所以可以将访问转移到缓冲存储器B,而不是嵌入式存储块EM,直到装满缓冲存储器B。一旦缓冲存储器B满了,则可以写入嵌入式存储块EM的一条存储线。
万一缓冲存储器B的时序要求不允许在相同的周期内将数据写入缓冲存储器B并且将缓冲器内容拷贝到嵌入式存储块EM,则可以将缓冲存储器B的宽度限定为比嵌入式存储块EM的宽度小的一个采样宽度,即N×(L-1)的缓冲器宽度,从而将最后的访问(否则应装满缓冲存储器B)与缓冲器内容并行地直接地转移到嵌入式存储块EM,而不被缓冲。然而,缓冲存储器B和嵌入式存储块EM之间的线宽度保持L×N。
在读侧,必须以始终读L×N位的块的方式来调整访问。鉴于此,访问控制单元A适合于以调整访问地址以适合嵌入式存储块EM的线数量的方式产生地址。这可以通过引入地址转换单元AT来实现,该地址转换单元AT可以是独立的单元,或者可以结合到访问控制器件A的地址产生功能性中。可以在读和写两侧设置地址转换单元AT或对其进行控制。
该缓冲方案引入了加在访问时间上的L个周期的等待时间,即,在周期K写入的数据只是在周期K+L+1中才可以获得。然而,对于大部分应用来说,参数L相当小。此外,对数据采样流操作的许多应用对等待时间并不非常敏感。
因此,在第二优选实施例中,输入数据流或者由一个或者多个数据源产生的流经缓冲存储器B向嵌入式存储块EM提供写数据,该缓冲存储器B具有与嵌入式存储块EM的增强线宽相对应的长度。以这种方式,可以在每个写周期中将与几个存储器访问相对应的整条线写到嵌入式存储块EM。由此,与第一优选实施例的多端口嵌入式存储块相比,可以降低访问频率。
图3示出第一和第二优选实施例中访问控制单元A中的地址产生功能性的示意方框图。地址产生可以基于用于产生相应地址A1至AZ的简单计数器或者计数器功能元件C1至CZ,所述相应地址A1至AZ用于寻址分配给访问端口P1至PZ的FIFO存储区。通过时钟信号Clk并且通过用于将计数器功能元件复位到预定的初始地址值的复位信号Res来控制每个计数器功能元件。在寻址FIFO存储器的情况下,如在第一和第二优选实施例中那样,可以简单地将计数器功能元件C1至CZ实施为顺序计数器功能元件,例如第一计数器,其用于产生指向地址范围AS1至Asz中的相应一个的指针,以及第二计数器,用于在所选择的实际FIFO地址范围内产生存储线的相应地址。
在第二优选实施例中,提供附加的计数器或者计数器功能元件CB,用于产生用于寻址缓冲存储器B的缓冲器地址AB。
应注意,可以使用适合于产生所需要的地址序列的任何有限状态机(FSM)来取代图3所示的计数器功能元件C1至CZ、CB。
图4示出根据第二优选实施例的访问控制单元A中的地址转换功能性的示意方框图。该地址转换功能性可以简单地基于查询表LUT实施,在该查询表LUT中存储所需要的地址序列。通过由访问控制单元A的地址产生功能性产生的地址A1至AZ寻址查询表LUT。对于地址A1至AZ中的每一个,嵌入式存储块EM的相应存储器地址AEM存储在查询表中,并且提供给嵌入式存储块EM。
然而,地址转换功能性也可以实施为产生所需地址序列的FSM。在FIFO存储区的情况下,该FSM也可以由两个简单的循环计数器构成。
应注意,上述的第一和第二实施例可以以完全独立的方式实施,并且不需要时钟频率的任何增加。
下面参考图5和6说明优选实施例的实施的第一个例子。该实施可以用于诸如Viterbi检测器的并行PRML位检测器的多路复用或者多路分解功能性。在该系统中,并行处理5个数据流,从而在嵌入式存储块EM中需要五个FIFO存储区。在输入侧,对于八位的采样,必须在每个时钟周期读取每一位并且分配在FIFO存储区之间。在第一优选实施例的情况下,利用至少一个访问端口即一个读端口和一个写端口得到多端口存储器结构。访问端口必须能够接受四个采样,并且能够在每个周期产生5个采样。
所需要的存储容量取决于特定的应用。假设每个FIFO存储区具有300个字节的存储容量。在非重叠FIFO存储区的情况下,嵌入式存储块EM的总容量应为1500个字节。在数据读取20%重叠的情况下,这意味着一些输入采样由两个不同的FIFO读取,图1中的地址范围AS1至Asz重叠,从而1200字节的总容量就足够了。
在第二优选实施例的情况下,缓冲存储器B的线宽可以为12个字节,从而可以缓冲12个存储访问。可以将嵌入式存储块EM组织为具有百线的SRAM(静态RAM),每条线具有96位,假设一个字节由8位构成。这样,需要三个周期来缓冲12个采样,并且将它们写入嵌入式存储块EM。因此,在三个周期中出现一次写访问。对于一个读访问,读取12个采样,其中由于在嵌入式FIFO块的输出侧需要处理五个数据流而出现五个读访问。这样,在每12个周期期间出现五个读访问。由于在目前情况下加长因数具有L=12的值以及写访问的数量具有X=4的值并且读访问的数量具有Y=5的值的事实,因此在该第一个例子中满足上述要求L≥X+Y。
图5示出表示用于第一个例子的适当存储访问方案的一个可能实施的表。在第一和第二周期(周期No.0和1)中,对嵌入式存储块EM不进行访问,并且在每个周期中,将四个采样写入到缓冲存储器B。在第三周期(周期No.2)中,再次将四个采样写入缓冲存储器B,现在该缓冲存储器B已满,从而可以通过将缓冲存储器B的内容拷贝到嵌入式存储块EM中来进行对嵌入式存储块EM的写访问。在第四个周期(周期No.3)中,可以在嵌入式FIFO块的输出侧对第一处理单元,例如第一PRML解码器,进行读访问,以便将12个采样转移到第一PRML解码器,同时再次将四个采样写入缓冲存储器B。同样,在第五周期(周期No.4)中,进行第二读访问,将12个采样转移到第二PRML解码器中,同时将四个采样写入到缓冲存储器B中。在第六周期(周期No.5)中,将四个采样写入到缓冲存储器B中,该缓冲存储器再次满了,从而在新的写访问中将其内容拷贝到嵌入式存储块EM中。然后,在第七和第八周期(周期No.6和周期No.7)中,进行相应读访问,以便将12个采样转移到第三PRML解码器和第四PRML解码器,同时在两个周期中的每一个周期中,将四个新的采样写入到缓冲存储器B中。然后,在第九周期(周期No.8)中,将四个采样写入到缓冲存储器B中,现在该缓冲存储器B再次满了,并且在另一个写访问期间,将其内容拷贝到嵌入式存储块EM。在第十周期(周期No.9)中,再次进行读访问,其中将12个采样转移到最后的第五PRML解码器,同时将四个新的采样写入到缓冲存储器B中。在下面的第十一周期(周期No.10)中,根本没有对嵌入式存储块EM进行访问,同时将四个采样写入到缓冲存储器B中。最后,在第十二周期(周期No.11)中,将四个另外的采样写入到缓冲存储器B中,然后该缓冲存储器B再次满了,并且进行第三写访问,以将缓冲存储器B的内容拷贝到嵌入式存储块EM中。
因此,每十二个周期,存在四个写访问和五个读访问。然而,这并不意味着读访问的存储线越来越多地位于写访问的存储线的前面。其原因在于,有时由两个不同的PRML解码器写入相同的数据。
通常,缓冲存储器B和嵌入式存储块EM的线宽不需要对应于写访问和读访问的数量总和。实际上,参数L必须至少是该总和。然而,对于参数L,可以选择更高的值,例如,如果该值更好地与嵌入式存储块EM的适当存储容量例如1200字节相匹配的话。
实际上,在上面的第一个例子中,写入的数据仅在13个周期之后可以得到。应注意,在图5的周期No.3中,读数据不对应于在较早的一个周期中写入的数据。总是有至少13个周期的延迟。此外,通电之后,在可以读取“有用”数据之前,需要一些时间将数据写入到嵌入式存储块EM中。
在实际的实施中,排除任何缓冲器和地址发生器、所得到的第二优选实施例的嵌入式存储块EM在CMOS18工艺中具有0.15mm2的面积并且消耗0.951mW/Mhz。满足应用需求、即具有40位/线的240线的可比较双端口存储器需要0.46mm2的面积,每个访问端口消耗0.211mW/Mhz。此外,对于不太先进并由此较便宜的CMOS工艺,单端口嵌入式存储块EM的使用允许IC实施。五个FIFO的实施将导致0.44mm2的面积和0.944mW/Mhz的功耗。由此所提出的技术的优点可以清楚地看到。
图6示出用于优选实施例的第二个例子的另一个适当的存储器访问方案。在该第二个例子中,将三个输出处理器件O1至O3连接到嵌入式存储块EM,在本第二例中,该嵌入式存储块EM包括九条线L0至L8的总存储容量。因此,每个FIFO区由三条线组成。具体地讲,第一输出处理器件O1使用线L0至L2,第二输出处理器件O2使用线L3至L5,而第三输出处理器件O3使用线L6至L8。每个偶数周期,进行写访问,而每个奇数周期,进行读访问。地址转换器AT的写地址发生功能性产生地址A=C/2mod 9,其中C代表周期数,而“mod”代表数学模操作。此外,地址转换器AT的读地址发生器功能性产生读地址A=3×(n mod 3)+INT(n/3 mod 9),其中n=(C-1)/2。
因此,写地址以不同于读地址的其它顺序在存储器中循环。这样,输出采样不必与输入采样的顺序相同。根据图6,对于第一输出处理器件O1,使用读方案“读L0”→“读L1”→“读L2”。此外,对于第二输出处理器件O2,使用读取方案“读L4”→“读L5”→“读L3”,同时在初始化之后抛弃最初读取线L4和L5。对于第三输出处理器件O3,读取方案为“读L7”→“读L8”→“读L6”,同时抛弃最初读取线L7和L8。可以通过在流的开始插入一些不代表任何有意义的数据的虚拟数据来实施抛弃功能性。当嵌入式存储块EM为空时,该抛弃功能性在复位之后仅在开始相关。在图6中通过相应的括弧表示最初抛弃线。这样,在图6的访问方案中,第二和第三输出处理器件O2和O3在短暂的延迟之后接收它们的第一“有用”数据,而第一输出处理器件O1立即接收它。
只要将每个地址最少写一次,该系统就通过初始化,并且达到稳定状态,从而不再需要抛弃。同样在Viterbi检测器例子中,可以通过为了初始化而在开始引入一些“无意义”或者虚拟的数据来解决该问题,如上所述。
从图6可以推断,在从第一周期(周期No.0)开始的每个偶数周期中依次写入线L0至L8。在第二周期(周期No.1)中,读取线L0并且将其提供给第一输出处理器件O1。在第四周期(周期No.3)中,读取线L4并且将其提供给第二输出处理器件O2,同时在初始的第一读取操作期间抛弃该内容。在第六周期(周期No.5)中,读取线L7并且将其提供给第三输出处理器件O3,同时对于该第三输出处理器件,在最初的第一读取操作期间再次抛弃该内容。在第八周期(周期No.7)中,读取线L1并且将其提供给第一输出处理器件O1。此外,在第十周期(周期No.9)中,读取线L5并且将其提供给第二输出处理器件O2。同样在第一读取操作期间抛弃该内容。在第十二周期(周期No.11)中同样应用于线L8的读取,将其提供给第三输出处理器件O3。然后,在第十四周期(周期No.13)中,读取线L2并且将其内容提供给第一输出处理器件O1。在第十六和十八周期(周期No.15和17)中,读取相应线L3和L6并且将其提供给相应第二和第三输出处理器件O2和O3。然后,程序再次从第一周期(周期No.0)开始。
注意,本发明并不限于上面的图5和6所示的访问方案。根据所希望的访问方案,可以使用任何适当的寻址方案。此外,可以实施任何数量的读访问、写访问和线数,同时在第二优选实施例中必须考虑缓冲存储器B的上述宽度要求。
本发明可以应用于诸如便携蓝(Portable Blue)(PB)或者小形状因数光盘(Small Form Factor Optical(SFFO))、DVD、DVD+RW、DVR的光盘系统或者任何未来的光盘系统中的任何平行移位寄存器结构。此外,本发明可以应用于磁性光学系统、硬盘系统、数字磁带存储系统、卫星和移动通讯系统、图像处理系统等。在PRML或者Viterbi处理系统的情况下,本发明可以应用于输入侧的多路分解或交织功能性或者输出侧的多路复用或去交织功能性。这样该优选实施例可以在附加的权利要求书的范围内变化。