专利名称:存储器接口和数据处理系统的制作方法
技术领域:
本发明涉及允许对多个存储器单元进行并行访问,以便支持快速信号处理应用的高带宽存储器配置。本发明特别涉及一个存储器接口,该存储器接口用于将单个的数据总线连接到多个相同的存储器单元的并行配置,以用于读取/存储在连续数据项序列内的数据项序列。
背景技术:
在信号处理领域,对数字数据的使用变得越来越普遍,因此,现在数字信号处理在广泛地使用中。在图1中示意地说明了数字信号处理器的基本结构。数字信号处理系统100在输入级110接收输入数据101。该输入数据通过数字信号处理系统的内部数据总线190被传送到微处理器150或存储器单元170。该微处理器对所述输入数据执行信号处理,而且可以进一步将数据存储在存储器单元170中以用作以后的参考。将处理过的数据传送到输出级120并输出,以用于进一步的处理或显示等。
在通信装置和消费者娱乐装置中数字信号处理的使用已经导致了日益复杂的信号处理方案的开发,所述信号处理需要以高带宽访问大量的存储数据。另外,为了提高数据吞吐量,数字信号处理越来越依赖于数据的并行处理。
尤其是,图像处理应用受益于提供了高存储访问带宽的数字信号处理系统。典型的应用是图像编码/解码、例如根据MPEG或H.26X压缩标准的视频编码、以及图像处理诸如现代电视设备的画面改善技术。这些画面改善技术包括应用于分离隔行扫描和帧速率转换的帧速率转换、上转换和运动补偿技术。
上述应用的大多数实现的共同特征是需要访问来自更大的相邻数据项序列的特定数量的相邻数据项。当考虑例如上述情况的图像/视频处理的时候,这些相邻的数据项对应于数字图像中的相邻像素。
在图4中说明了用于来自数据项的序列的相邻数据项的访问方案。数据项...、D2、D3、D4...被链接为数据400的序列。在特定的时间点,处理装置410访问数据序列400中的任意地选择的序列(D6到D10或D9到D13),以便对所选择的序列执行处理,或分别地将这些数据用作处理操作中的参考数据。
用于数字数据处理的处理装置的典型的级是被并行供应了特定数量的数据项的有限脉冲响应滤波器(FIR滤波器)。然而,对相邻的数据项的并行访问不仅被应用于滤波器处理还应用在各种其它的信号处理应用中。
在下面,参考图2a、2b和3简要地描述依赖于对相邻数据序列的随机访问的信号处理应用。
图2a略述了通常被应用在视频编码中的、为了减少被发送的视频数据的暂时冗余度的运动估计技术。图2a中所描述的特定运动估计技术是块匹配技术。当前的视频图像P1被细分成为多个预定大小的宏块。将每个块20与前一个视频图像P0中所选择的候选块30、31相比较,以便发现最佳匹配。在特定的块匹配技术中,前一个图像P0在大小上等于宏块20的并且位于预定搜索区域之内的任何块都有资格作为候选块。以像素间隔或子像素间隔选择不同的候选块。
选择与块20匹配最佳的上述候选块30,并确定来显示在最佳匹配块30和视频图像P1的图像块20之间的位移的运动矢量40。根据前一个图像P0和该运动矢量,解码器形成预测视频图像,因此仅显示了在预测图像和实际图像之间的差别的信息必须被编码并被供应到解码器。
还有许多其它的用于运动估计的方法,诸如执行图像数据到频域转换。然而,这些方法中的每一种都包括前一个视频图像的相邻数据的访问部分。具体地,上述块匹配技术依赖于以能够在视频图像数据内随机地访问形成候选块的相邻数据部分的方式访问视频数据。同样的技术适用于利用任何关于访问最佳匹配块的数据的运动估计技术的运动估计结果的视频编码。
运动估计技术的另一个应用是帧-速率转换技术。帧-速率转换的基本原理如图3所示。从将在时间t0和t1分别地被演示的输入图像P10和P11的图像数据,可以计算出在不同于t0和t1的时间t′演示的中间图像P′。简单的内插技术仅重复前一个图像P10的图像数据。然而,这样的处理导致了诸如运动抖动的假象。
较为成熟的方法是通过在输入图像P10和P11的相应的相邻像素的值上内插以计算中间图像P′的每个像素的数据。通常地,数字滤波器被使用于内插处理。该方法要求对图像P10和P11的相邻图像数据的随机访问。该内插的图像仍然受诸如运动模糊的假象的影响。通过使用运动估计和补偿能够获得更加令人满意的结果。
参考图3,通过适当的运动估计技术将从在图像P10中的位置301移动到在图像P11中的位置302的对象表征为运动矢量330。运动矢量330将图像P′的图像区域320指示为运动对象在相应的时间t′所位于的图像区域。为了计算图像区域320的图像数据,对图像P10中的区域301和图像P11中的图像区域302的图像数据进行内插处理。
此外,中间图像的运动估计处理和运动补偿发生依赖于对相邻图像数据的随机访问。
使用上述并行数据访问方案的另一个应用涉及能够根据MPEG标准对已编码的视频流执行解码的视频解码单元。在下文中概述该视频解码单元。
图2b示出了基本的MPEG解码器的示意方框图。已编码的视频流201在各自的解码单元210中经受了逆变长编码。在该步骤,已解码的数据还被分离成图像数据和将被用于图像预测的运动矢量数据202。该图像数据进而在转换单元220中经受了逆离散余弦变换并在单元230中经受了逆量化。结果,获得了参考帧(I-帧)的图像数据或用于预测帧(P-/B-帧)203的预测误差数据。在图像组合单元260中,为了获得输出图像206将预测图像与上述预测误差数据结合。输出图像206也存储在帧存储器250中,以便将其用作下一帧的预测的参考图像。运动补偿单元240从参考图像205和从运动矢量数据202产生预测图像204。运动矢量数据为预测图像204的每个宏块指定了参考图像205的相应图像部分。
具体而言,预测图像的产生需要快速和随机地访问存储在帧存储器250中的参考图像的相邻图像数据部分。如果不能在预定时间内完成对图像数据部分的访问,将暂时中断解码处理。
为了避免这样的问题并保证快速可靠地访问图像数据的数据部分,在GB-A-2368 695中描述了改进的存储器访问方案。在与图2b中所示的一个类似的视频解压缩系统中,帧存储器将每个水平图像线的像素的数据储存在该存储器的连续行中。由于上述数据量,至少需要存储器的两行来存储水平线的图像数据。在对应于宏块的宽度的16数据字节部分中水平图像线的数据被随机地访问。
为了取得高存储器访问带宽,利用页面模式从存储器行中读出数据部分。根据该页面模式,在存储器访问开始时选择存储器件的行,在此之后,仅增大列地址直到已经读取了全部的数据部分。因为存储器具有16位的宽度,所以每次总是读取2个数据字节。
当数据部分包括存储在两个不同存储器行中的数据时,可能发生访问延迟。由于行地址必须被增大,该数据部分不能以页面模式被连续地读取。由于该所谓的分页问题,使水平线的数据部分的存储器访问延迟并暂时中断解码处理。
为了避免这个问题,复制数据被存储在水平线突变的存储器行的末端部分。从下一个存储器行的开始位置起复制该复制数据。复制数据字节的数量对应于每次被访问的数据字节的数量。这保证了随机地选择的水平线的数据部分总是能够以页面模式被连续地访问。
上述存储器访问方案具有缺点由于必须存储复制数据,所以不能有效地利用存储器。此外,当存储参考图像数据时,复制进程需要额外的处理资源。
在上述存储器访问方案中,使用了具有16位宽度的存储器,因此对存储器地址的访问总是涉及2个数据字节。因此不可能以单个数据字节的间隔来随机地访问数据部分。结果,当访问从地址的第二字节开始的数据部分时,访问周期数增加了并且所读取字节的第一个和最后一个数据字节不得不被丢弃。
为了增加在数字信号处理应用中的存储器访问带宽,有方法来甚至还增加存储器配置的存储器宽度,以便能够利用单个的存储器地址访问更大数量的数据项。此外,可以增加与存储器配置连接的数据总线的宽度以匹配存储器的宽度。该存储器配置如图5和图6所示。
图5中的存储器配置描述了具有允许5个级联数据(D0到D4、D5到D9等)项存储到单个存储器地址″a″的每个中的存储器宽度的存储器单元500。地址总线510指定地址并且在数据总线520上传送被访问的数据项。例如,在地址a=1,数据项D5到D9被同时访问并在数据总线520上传送。
具有非常大宽度诸如32或64位的存储器配置通常不是由单个存储器单元形成,而是由多个相同的存储器单元的并行配置形成。在图6中描述了该配置。通过公共地址总线610寻址相同的存储器单元601、602、603、604、605,同时将相同地址″a″供应给全部的存储器单元。根据所选择的地址,在每个访问周期中访问来自存储器单元601到605的每一个的数据项,并且将其在数据总线620上传送。该数据总线具有同时传送在一个周期中访问的全部数据项的宽度。例如,在地址a=2,同时访问数据项D10到D14,并且将其在数据总线620上传送。
这些存储器配置都具有缺点进一步增加了数据部分能够被随机地访问的间隔。因此,在单个数据项的间隔内不能随机地访问数据部分。
具体地,该存储器配置不能满足信号处理应用的需求,该应用依赖于对来自相邻数据项序列中的数据项子序列的随机访问。例如,当在图5和6的存储器配置中请求访问数据项D6到D10时,必须对存储在地址a=1和地址a=2中的全部数据项执行两次独立的访问。丢弃不需要的数据项D5和D11到D14。因此,虽然所请求的数据项D6到D10与数据总线的宽度相匹配,但是必须执行两次访问操作。
通常,当在单个数据项的间隔中不能随机地访问数据部分时,不能有效地使用存储器访问的带宽。
发明内容
本发明的目的在于为存储器访问方案提供改进的方法,以有效地使用存储器配置的带宽。
该目的是通过独立的权利要求的主题而实现。
最佳实施例是从属权利要求的主题。
根据本发明的第一方面,提供了将单个的数据总线连接到多个相同的存储器单元的并行配置的存储器接口。该存储器接口能够在单个存储器访问周期内读取/存储来自连续数据项序列的数据项子序列,其中子序列的宽度对应于数据总线的宽度。子序列的每个数据项被读取自/存储到多个相同的存储器单元中的不同的一个存储器单元,且存储器接口控制与数据项的特定子序列对应的多个相同的存储器单元的每个的分别访问。
根据本发明的另一方面,提供了存储器访问方法来通过单个的数据总线访问多个相同的存储器单元的并行配置,以便读取/存储来自连续数据项序列的数据项的子序列。该子序列的宽度对应于数据总线的宽度。该访问方法包括通过从多个相同的存储器单元中的不同的一个存储器单元读取/存储子序列的每个数据项而实现在单个存储器访问周期中读取/存储数据项的特定子序列的步骤。该读取/存储步骤包括根据数据项的子序列的访问请求来控制对多个相同的存储器单元中的每一个的分别访问的步骤。
根据访问请求,分别地访问多个相同的存储器单元中的每一个,从而仅所请求的子序列的数据项被读取/存储。
本发明的一个特定优点是,在一个存储访问周期中可以随机地访问在所存储的数据项序列内的任意子序列。结果,最大效率地利用了存储器配置的存储器访问带宽。此外,因为在同一访问周期内能够分别地访问以不同地址在不同的存储器单元上存储的数据项,所以丢弃了冗余数据的存储。
本发明的存储器访问方案特别适合于需要并行访问多个相邻数据项的数字信号处理应用。由于本发明,以在单个数据项的间隔内有可能随机访问的方式来并行访问数据项。因此,数字信号处理应用受益于对相邻数据项的子序列的有效的并行随机访问。
优选地,控制器接收对数据项的子序列的访问请求,并根据该访问请求计算多个相同的存储器单元的分别地址。据此,存储器接口根据每个访问请求有效地执行对多个存储器单元的分别控制。
根据本发明的另一个的实施例,对数据项的子序列的访问请求指定了数据项子序列的至少一个数据项的存储位置。通过将诸如一个数据项的存储位置的信息包括在上述访问请求中,可以轻松地计算出相邻数据项的分别地址。此外,在每个访问请求中所传送的数据量很低。
优选地,由多个相同存储器单元中的特定存储器单元的地址和标志来指定数据项的存储位置。该信息明确地指定了存储位置。
根据本发明的另一个实施例,对数据项子序列的访问请求指定了在数据项序列内的数据项子序列的至少一个数据项的位置。通过指定在序列内的位置,能够有效地确定数据项的实际存储位置。此外,可以将在访问请求中传送的数据量最小化。
优选地,数据项序列的数据项以循环的方式被存储在多个相同的存储器单元的并行配置中。每个连续的数据项被存储到在相同地址连续的存储器单元中。在多个相同的存储器单元中完全占用了在特定的地址下可以访问的全部存储位置之后,地址增大了。依据该存储方案,数据项子序列的相邻数据项全部被存储在不同的存储器单元上。
根据本发明的另一个实施例,分别的地址仅包括单个地址或者两个相邻的地址。因此,最小化了计算访问地址的计算工作。
优选地,控制器的地址计算级根据访问请求计算两个相邻的地址。
根据本发明的最佳实施例,控制器进而还被提供了选择装置,其用于选择两个所计算的地址中的一个作为多个相同的存储器单元中的每个的各自的地址。因此,提供了非常有效的控制器,该控制器能够为多个存储器单元的每一个供应各自的地址。
根据本发明的另一个最佳实施例,对从多个相同的存储器单元中读取的数据项排序,以便从多个相同的存储器单元所读取的数据项子序列的数据项与数据项序列中数据项的连续一致。由于该特征,因为总是以正确的顺序提供数据项的每个子序列,所以降低了信号处理器的处理负荷。
根据另一个实施例,对将被存储在多个相同的存储器单元中的数据项子序列的数据项进行排序,以便将被存储的数据项的顺序与预定的存储顺序相一致。因此,可以根据它们的原始顺序将数据项供应给存储器单元,并且在存储器中的数据项的存储顺序对于处理装置来说保持完全地透明。
优选地,根据数据项子序列的至少一个数据项的存储位置可以确定用于排序数据项的调换方案。
本发明的存储器接口被优选地配置,从而执行一次写入访问作为对多个相同存储器单元的同一地址的集中访问。在许多应用中,以连续的方式输入将要存储在存储器中的数据,从而当写数据时很少需要在单个数据项的间隔中的随机访问能力。因此,能够降低存储器接口的控制器的处理负荷。
优选地,每个数据项和多个相同的存储器单元的每一个都具有10位的宽度。
此外,优选的是子序列包括五个数据项。
根据另一个优选实施例,数据总线具有50位的宽度。
在另一个优选实施例中,本发明提供了用于执行数据处理的数据处理系统,该数据处理系统需要对来自连续数据项序列中的预定数量的相邻数据项进行访问。该数据处理系统包括用于对相邻数据项执行数据处理的处理装置、连接到该处理装置的单个的数据总线、和根据本发明的前面所述实施例的存储器接口。该存储器接口被连接到上述数据总线和多个相同的存储器单元。因此,数据处理系统能够以高带宽和随机的数据间隔对多个存储器单元执行并行访问。尤其是,能够最大效率执行对于相邻数据项的访问请求。
优选地,处理装置被配置成并行处理预定数量的相邻数据项。在单个存储器访问周期中通过所述存储器接口所访问的数据项子序列的数据项数量对应于被并行处理的数据项数量。因此,在存储器的每个访问周期中,为数据处理装置提供完整组的将被并行处理的数据。因为存储器接口供应的数据直接用于进一步的处理,所以该特征使能了数据的特别有效的处理。
在本发明的一个优选实施例中,处理装置包括被供应有预定数量的相邻数据项的数字滤波器。因此,该数字滤波器可以非常快速地处理相邻数据项的子序列,即在每个存储器访问周期中的一个序列。
在本发明的另一个实施例中,处理装置包括大量的流水线处理级。由于从存储器接口获得预定数量的数据项所需的访问周期数量总是一个常数,可以可靠地避免在处理级中的意外延迟从而流水线处理变得非常有效和可靠。
在另一个优选实施例中,处理装置包括图像处理器。由于许多图像处理应用需要随机访问多个相邻数据项的子序列,因此本发明的存储器接口特别适合于与图像处理器一起使用。
优选地,图像处理器是可操作的以执行以下的画面改善算法中的至少一个,即帧-速率转换、帧速率上转换、和动作补偿的上转换。
通过以下结合附图进行的描述和给出的优选实施例,本发明的上述及其它目的和特征将变得更加显而易见,其中图1是数字信号处理系统的基本结构的示意图;图2a示出了利用块匹配的运动估计的原理;图2b是视频解码器的示意方框图;图3示出了运动补偿的帧速率转换的技术;图4示出了数据访问方案,其中处理装置以随机的间隔并行访问预定数量的相邻数据项;图5描述了并行存储预定数量的数据项的单个存储器单元;图6描述了通过单个地址总线和单个数据总线被并行访问的多个存储器单元的并行配置;
图7示出了根据本发明的存储器配置,其中分别访问多个相同的存储器单元;图8是根据本发明的位于信号处理器和多个相同的存储器单元之间的存储器接口的方框图;图9表示根据本发明的存储器接口的控制器的方框图;和图10是示出了在本发明的存储器接口中执行的存储器访问方法的流程图。
具体实施例方式
现在参考图7,根据本发明的存储器配置700是由多个被并行地设置的多个相同的存储器单元701、702、703、704和705组成。多个相同的存储器单元的并行配置700的每个存储器单元都具有自己单独的地址端口A1到A5以及单独的数据端口,从而多个相同的存储器单元701到705中的每一个是独立地可访问的。
在该例子中,并行配置包括五个相同的存储器单元。然而,在下面描述中将会更加显而易见的是,并行设置的存储器单元的数量并是有限的,而是能够根据分别的信号处理应用进行选择。
存储器单元以将相邻的数据项存储在不同的存储器单元中的方式储存连续数据项序列的数据项D0、D1、...。选择每个存储器单元701到705的宽度以对应于数据项D0、D1、...等的每个的预定宽度。在每个存储器访问周期中,随机地选择的数据项可以被读取自/存储到存储器单元701到705中的每个。将分别地访问的数据项传送到数据总线720,该数据总线720具有对应于存储器单元的并行配置700的总宽度的宽度。
用在每个存储器访问周期中从连续数据项D0、D1...序列访问相邻数据项的子序列诸如D6到D10的方式访问存储器单元701到705的并行配置。子序列中的数据项的数量对应于存储器单元的数量。子序列的每个数据项被读取自/存储在多个相同的存储器单元701到705中的不同的一个存储器单元。
图7还示出了用于连续数据项序列的示意性存储方案。根据该方案,连续数据项的序列被以循环的方式存储。在每个地址,随后的数据项D0到D4、D5到D9、D10到D14等被连续地存储在存储器单元701到705中。在占用了根据一个特定地址可访问的每个存储器单元701到705中的存储位置之后,增大了地址并且还将数据项连续地存储到存储器单元的并行配置中。
结果,数据项D0、D1等的序列被以循环的方式存储到存储器单元701到705中,并且相邻的数据项被存储到不同的、相邻存储器单元中。尤其是,在单个存储器访问周期中通过分别地访问多个存储器单元中的每个,可以读取/存储从连续数据项序列随机地选择的子序列。例如,通过利用地址端口A2、A3、A4、A5的地址1和地址端口A1的地址2分别地在存储器单元701到705的分别的地址访问数据项的子序列D6到D10。
数据项D0、D1...等的序列的数据项的循环存储方案保证了将相邻数据项存储在不同的存储器单元,以及连续数据项序列的每个随机选择的子序列都包括来自多个存储器单元中的每个的数据项。
图8描述了系统配置,其中使用了多个分别地可访问的存储器单元的并行配置。信号处理系统800的系统配置使用了用于基于来自连续数据项序列的数据项的子序列执行信号处理的处理装置820。该数据项序列存储在存储器单元701到70n中。存储器单元701到70n被配置为存储根据参考图7所描述的循环存储方案的数据项。控制器810形成用于连接数据总线850和多个存储器单元701到70n的存储器接口。通过数据总线850,在控制器810和处理装置820之间传送数据项。
当接收用于数据项的子序列的访问请求831时,控制器810分别地访问多个相同的存储器单元701到70n中的每个,并且通过数据总线850发送被访问的子序列的每个数据项。
在如图8中所示的示意性结构中,通过不同的源而不是读访问请求发出将被写入的数据和写访问请求(诸如如写地址)。然而,也有可能的是单个处理器件发出读和写访问请求并且接收/发送各自的数据。
根据读访问请求,控制器810确定用于多个存储器单元的每个存储器单元701到70n的分别的访问地址。由于图7所示的数据项序列的数据项的循环存储方案,可以利用单个地址或两个相邻的地址对每个数据项子序列进行访问。例如,能够在地址1下访问子序列D5到D9。另一方面,突出的子序列D6到D10在两个不同的相邻地址下,即用于存储器单元702到705的地址1和用于存储器单元701的地址2,是可访问的。
当已知了数据项子序列的一个数据项的至少存储位置时,根据所述循环存储方案能够容易地确定用于分别地访问多个存储器单元中的每个所需要的这些地址。通过存储地址和存储数据项的存储器单元的详述可清楚地识别任意数据项的存储位置。从子序列的一个数据项的存储位置的信息,能够计算子序列的所有其它数据项的地址并能够指定各自的存储器单元。
为了简化说明,考虑将多个相同的存储器单元700的并行配置的存储器单元通过递增的下标号″1″到″n″以连续的方式加以索引。
假定存储位置即要知道的特定数据项的存储地址和存储器单元,连续的数据项被以相同的地址存储在索引号增加的存储器单元中,直到达到最后的具有最大的索引号存储器单元70n,并位于存储器单元701到70n的并行配置中。然后,将地址增加1,并且将连续的数据项存储在存储器单元的并行配置的具有最小的下标号的第一存储器单元701中。另一方面,先前的数据项被以相同的地址存储在索引号递减的存储器单元中,直到达到存储器单元的并行配置的第一存储器单元701。此外的先前数据项被存储在地址减1的最后的存储器单元70n中。
可替换地,从子序列的至少一个数据项的序列位置的信息,能够计算出分别的访问地址。任意数据项的序列位置指定了其在连续数据项的序列内的位置。
为了从其序列位置确定数据项的存储位置,例如,根据所述循环存储方案从序列的第一数据项的初始存储位置起递增该存储位置,直到达到指定的序列位置。还有可能通过除法运算来计算存储位置,其中序列位置被除以存储器单元的数量以便确定存储地址,且除法的余数指示存储器单元的索引。当然,必须考虑序列的第一个数据项的初始位置。
因此,可以从其序列号码确定数据项的子序列的数据项的存储位置。然后能够以如上所述相同的方法确定包括子序列的其它数据项的存储地址的该存储位置。
通过提供能够分别地访问多个相同的存储器单元的并行配置的每个存储器单元存储器接口,能够在单个数据项间隔内随机地访问来自连续数据项序列的数据项子序列。因此,能够完全避免不需要用于信号处理的数据项的传送,这是传统的并行存储器访问方案的典型缺点。因此,本发明的存储器接口允许以最大效率使用可用的存储器带宽。
另外,可以在每个单个的存储器访问周期内访问随机选择的其长度对应于存储器单元的并行配置的宽度的数据项的子序列。由于仅单个的存储器访问周期被使用了来并行发送数据项的子序列,因此不必以页面模式对存储器进行寻址。
特别是,当根据本发明访问连续数据项的子序列时,将不会发生在用于相邻数据的传统的存储器访问方案中所遇到的分页问题。因此,本发明的存储器接口不需要在传统的页面模式访问方案中所使用的冗余数据的存储。
图10示出了根据本发明的由诸如控制器810的存储器接口控制器所执行的存储器访问方法。在第一步骤s100中,接收访问请求。根据该访问请求,在下一步骤s200中,分别地访问多个相同存储器单元中的每个。在步骤s300中,该访问允许在单个的存储器访问周期中读取或存储多个相同的存储器单元的连续数据项的子序列。
现在再参考图8描述与数字信号处理系统800的系统配置有关的进一步的细节、应用实例和选项。
数字信号处理系统800能够使用于并行访问特定数量的相邻数据项的多个信号处理应用。有利地,配置数据总线850的总线宽度,从而能够同时在数据总线上传送在每个处理步骤中所需要的数据项的数量。此外,存储器单元的数量对应于将要并行访问的数据项的数量。该配置提供了非常有效的存储器访问,因此实现了高的处理速度。
对特定数量的相邻数据项执行并行处理的数字信号处理器820的典型实例是数字滤波器例如有限脉冲响应滤波器(FIR滤波器)。该滤波器通常在各自的滤波器抽头上被并行供应预定数量的输入数据项。滤波级输出反映全部输入数据项的被处理的数据。
处理装置820可以进一步被实现为一组连续的流水线处理级。由于通过本发明的存储器接口可以实现高的存储器访问带宽,因此在每个处理级中由于存储器访问导致的处理延迟很小。
此外,因为能够以最大的效率并行访问相邻数据项的每一个任意选择的子序列,所以能够可靠地确定用于访问预定数量的数据项所需的存储器访问周期的数量。特别是,在访问周期的数量方面不存在差别,该访问周期取决于是以相同的地址还是以不同的分别的地址将数据项子序列的数据项存储在存储器单元中。特别是后面的情况,如图6所示的传统方法需要两个存储器访问周期来读取单个数据项子序列,所以不能可靠地预测访问时间。
其中有利地使用了本发明的存储器接口的特定应用是用于执行图像和视频处理,例如背景技术中所描述的视频编码和解码以及画面改善技术,的图像处理装置。具体地说,在信号处理期间,例如视频编码和解码、帧-速率转换、帧-速率上转换、运动补偿的上转换或运动补偿的分离隔行扫描中,所产生的存储的图像信息的参考的每个应用中,高带宽随机访问在存储的图像数据中的相邻数据项的子序列改善了图像处理系统的性能。
参考图9,现在更详细地描述形成本发明的存储器接口的控制器810。
根据本发明的存储器接口的示意性配置,控制器810具有地址计算装置930,该装置接收访问请求831并且产生各种用于根据访问请求831控制对每个存储器单元的分别的访问的控制信号。接收的访问请求831指定将被访问的请求的子序列的至少一个数据项的存储位置。可替换地,访问请求可以识别数据项子序列的数据项的序列位置。从该信息,地址计算装置930确定两个相邻的存储地址,在该地址能够访问子序列的全部数据项。
参考在图7中描述的子序列D6到D10的例子,确定与子序列D6到D10的第一数据项D6的存储位置地址相关的第一地址(图9中的read_addr_1),并且通过将第一地址加1获得第二地址read_addr_2。为了将分别的访问地址911、912、913提供给多个存储器单元中的每一个,地址选择装置961、962和963根据来自地址计算装置930的相应地址选择信号来选择这两个地址中的任何一个。根据子序列的每个数据项D6到D10的存储位置确定地址选择信号(mux_ctrl_1、mux_ctrl_2、mux_ctrl_3)。地址选择装置961、962和963被实现为多路复用器,以便根据选择信号选择两个计算地址中的一个。
更进一步,读/写选择装置971、972和973的进一级控制是否将读地址或写地址信号提供给多个存储器单元。这些选择装置也被实现为多路复用器。根据存储控制装置940的读/写信号r/w来控制这些选择装置。供应这些存储控制装置是为了控制读和写访问之间的切换,以及独立地提供写地址。此外,通过存储控制装置940利用相应的存储使能信号en1、en2、en3来控制存储器单元的访问周期。
在图9所示例的代表性配置中,仅读访问被执行为对多个相同的存储器单元的每个的分别的访问。写访问被执行为对受存储控制器940控制的多个相同的存储器单元的相同地址的集中访问。为了应用已经优化了该代表性配置,在该应用中主要的读访问被执行以用于随机地选择的子序列。能够将写到存储器中的数据集中地写到相同的存储地址。根据图9所示的配置,写访问请求具有相当简单的结构,它只需要指定写地址。仅对于读访问请求才需要指定存储位置或子序列的数据项的序列位置。
然而,从上面描述清楚的是,能够以与读访问相同的方法来执行写访问,从而有可能将数据的子序列以随机的相邻存储位置而存储到存储器单元的并行配置中。在这种情况下,地址计算装置930接收用于读和写访问的访问请求,并分别为每个读或写访问计算两个相邻的存储地址。以如上所述同样的方法,为了读或写两个访问控制地址选择装置961、962和963。此外,因为从在该情况下的单个源,即地址计算装置930,为每个读或写访问提供了地址,所以没有必要提供读/写选择装置971、972和973。
还应该注意到,本发明的存储器接口并不局限于访问特定数量的存储器单元诸如在代表性配置中所示的3或5。如已经在上面所述,优选地配置存储器接口,从而使在存储器单元的并行配置中的存储器单元的数量对应于将由处理装置并行访问的数据项的数量。
例如,五个相同的存储器单元的并行配置可以经由本发明的存储器接口连接到数据总线。当每个存储器单元具有10位的宽度时,能够在单个访问周期中访问五个10位的数据项。因此,所述数据总线具有50位的宽度。
在可替换的配置中,使用每个有8位宽度的18个存储器单元件经由144位宽的数据总线访问宽度是8位的18个数据项的子序列。
存储器接口810还配有一个数据排序装置950,该数据排序装置950使从多个存储器单元读取的数据项产生相同的顺序,以作为数据项的序列的数据项。特别是,当从不同的存储地址读取子序列的数据项时,诸如子序列D6到D10,在存储器数据端口提供的数据项的顺序不同于上述的序列顺序。
数据排序装置950在数据线921、922、923上从存储器单元接收数据项,并且将排序的数据输出到数据总线850。数据项以递增的顺序排序,因此子序列的第一数据项在数据总线850的最低有效位输出,则子序列的最后数据项占用了数据总线850的最高有效位。当然,根据信号处理应用的需要,还能够实现倒序排序。
通过地址计算装置930控制数据排序方案,该方案确定在数据总线850上输出数据项的子序列之前,如何在数据线921、922和923上交换数据项。例如,地址计算装置930指定哪个存储器单元输出子序列的第一个数据项并将各自的控制信号sort_ctrl输出给排序装置950。然后,该数据项被移到数据总线850的LSB位置,并因此将连续的数据项设置在较高的有效位。
在上述例子中,只有读数据项经历了数据排序进程。从不同的源直接提供要写入的数据并且不用排序就将其存储到存储器单元中。然而,当通过分别地访问不同的存储器单元也执行写访问时,优选为将要写入的数据项也经历排序进程。
在该情况下,在数据总线850上以最低有效位发送的子序列的第一数据项由排序装置950进行交换,以便经由与第一数据项将被存储到其中的存储器单元连接的各自的数据线将其发送。根据周期存储方案,剩余的数据项在各自另外的数据信号线上发送以占用连续的储存位置。在该结构中,为分别的存储地址产生写访问,并因此对将要写入的数据进行排序,能够更新存储的数据项序列的子序列。具体地说,为了更新能够访问任意的子序列。
例如,数据项D6被识别为子序列的第一数据项,并在访问请求中发送其存储位置。因此,通过地址计算装置930将数据项D6的存储地址即地址1和连续地址即地址2确定为第一和第二地址(read_addr_1和read_addr_2)。根据D6被存储在第二存储器单元702中的信息,为存储器单元702和连续的存储器单元703到705选择所述第一地址(read_addr_1)。为接下来的数据项D10选择第二地址(read_addr_2)并产生到第一存储器单元701的回转。
当输出这些数据项时,数据排序装置950将子序列的第一数据项D6放置于数据总线850的最低有效位,以及相应地设置连续的数据项从而最终将子序列D6到D10通过数据总线850输出。
正如图7所示的用于数据项的循环存储方案允许非常有效的存储器接口的实现。通过确定两个相邻的地址并选择两个相邻地址中的适当地址可以在不复杂的控制逻辑中容易地实现分别访问地址的已描述的产生。
总而言之,提供了将数据总线连接到多个相同的存储器单元的并行配置的存储器接口。该存储器接口能够在一个存储器访问周期内读取/存储来自连续数据项序列的数据项的子序列,其中该子序列的宽度对应于数据总线的宽度。每个子序列的数据项都读取自/存储到多个相同的存储器单元中的不同的一个存储器单元,且该存储器接口根据用于特定的数据项子的序列的访问请求来控制对多个相同的存储器单元的每一个的分别访问。
根据访问请求,分别对多个相同的存储器单元的每一个进行访问,从而仅读取/存储所请求的子序列的数据项。
本发明的一个具体优点在于,在单个存储访问周期中能够随机地地访问在存储的数据项序列内的任意子序列。结果,以最大的效率利用了存储配置的存储器访问带宽。此外,因为在同一访问周期内能够分别地访问以不同的地址存储在不同存储器单元上的数据项,所以不再使用冗余数据的存储。
权利要求
1.一种将单个数据总线(850)连接到多个相同的存储器单元(701、702、70n)的并行配置(700)的存储器接口,该存储器接口用于读取/存储来自连续数据项序列的数据项子序列,所述数据项的子序列在单个存储器访问周期内被读取/存储,并且子序列的宽度对应于所述数据总线(850)的宽度,其中子序列的每个数据项读取自/存储到所述多个相同的存储器单元(701、702、70n)中的不同的一个存储器单元,以及所述存储器接口根据对数据项的特定子序列的访问请求(831)控制对所述多个相同的存储器单元(701、702、70n)中的每一个的分别访问。
2.根据权利要求1的存储器接口,包括控制器(810),该控制器用于接收对数据项的子序列的访问请求(831),并根据所述访问请求(831)计算所述多个相同的存储器单元(701、702、70n)的分别的地址(911、912、913)。
3.根据权利要求1或2的存储器接口,其中对数据项的子序列的访问请求(831)指定数据项(D6、D7、D8、D9、D10)的所述子序列的至少一个数据项的存储位置。
4.根据权利要求3的存储器接口,其中所述存储位置由所述多个相同的存储器单元(701、702、70n)中特定的存储器单元的地址和标志指定。
5.根据权利要求1或2的存储器接口,其中对于数据项(D6、D7、D8、D9、D10)的子序列的访问请求(831)指定了在所述数据项序列内的所述数据项(D6、D7、D8、D9、D10)的子序列中的至少一个数据项(D6)的位置。
6.根据权利要求1到5中任何一项的存储器接口,其中所述数据项序列的所述数据项以循环方式存储在多个相同的存储器单元(701、702、70n)的所述并行配置(700)中,利用相同的地址将连续的数据项中的每一个存储在连续的存储器单元中,并且在占用了在全部所述多个相同的存储器单元(701、702、70n)中的所述地址下可访问的存储位置之后,增大所述地址。
7.根据权利要求2到6中任何一项的存储器接口,其中所述分别的地址(911、912、913)只包括单个地址或者两个相邻的地址。
8.根据权利要求7的存储器接口,其中所述控制器(810)包括用于根据所述访问请求(831)计算两个相邻的地址的地址计算级(930)。
9.根据权利要求8的存储器接口,其中所述控制器(810)还包括选择装置(961、962、963),其用于选择所述两个所计算地址中的一个地址作为所述多个相同的存储器单元(701、702、70n)中每一个的分别的地址。
10.根据权利要求1到9中任何一项的存储器接口,其中所述存储器接口还包括排序装置(950),其用于对从所述多个相同的存储器单元(701、702、70n)读取的数据项子序列的数据项进行排序,以便使所述读取数据项的顺序与在所述序列中的数据项的顺序相一致。
11.根据权利要求1到10中的任何一项的存储器接口,其中所述存储器接口还包括排序装置,其用于对将被存储在所述多个相同的存储器单元(701、702、70n)中的数据项子序列的数据项进行排序,以便使将要存储的所述数据项的顺序与预定的存储顺序相一致。
12.根据权利要求10或11的存储器接口,其中所述排序装置(950)根据来自所述地址计算级(930)的、可指示数据项的子序列的至少一个数据项的存储位置的控制信号来确定对于所述数据项的调换方案。
13.根据权利要求1到12中的任何一项的存储器接口,还包括写控制器(940),其用于将各个数据项存储在所述多个相同的存储器单元的每一个的相同的地址中。
14.根据权利要求1到13中的任何一项的存储器接口,其中每一个所述数据项和所述多个相同的存储器单元(701、702、70n)中的每一个都具有10位的宽度。
15.根据权利要求1到14中任何一项的存储器接口,其中子序列包括5个数据项。
16.根据权利要求1到15中任何一项的存储器接口,其中所述数据总线(850)具有50位的宽度。
17.一种用于执行数据处理的数据处理系统,该数据处理需要访问连续数据项序列的预定数量的相邻数据项,该数据处理系统包括用于对所述相邻数据项执行数据处理的处理装置(820)、与所述处理装置(820)相连的单个数据总线(850)、和用于将所述数据总线(850)连接到多个相同的存储器单元(701、702、70n)的根据权利要求1到16中任何一项的存储器接口(810)。
18.根据权利要求17的数据处理系统,其中所述处理装置(820)并行处理所述预定数量的相邻数据项,并且通过所述存储器接口(810)在单个存储器访问周期中访问的数据项子序列的数据项数量对应于被并行处理的数据项的预定数量。
19.根据权利要求18的数据处理系统,其中所述处理装置(820)包括具有所述预定数量的相邻数据项的数字滤波器。
20.根据权利要求17到19中的任何一项的数据处理系统,其中所述处理装置(820)包括多个流水线处理级。
21.根据权利要求17到20中的任何一项的数据处理系统,其中所述处理装置(820)包括图像处理器。
22.根据权利要求21的数据处理系统,其中所述图像处理器可操作以执行至少一个以下的画面改善算法帧速率转换、帧速率上转换、以及运动补偿后的上转换。
23.一种存储器访问方法,其用于通过单个数据总线对多个相同的存储器单元的并行配置进行访问,以读取/存储来自连续数据项序列的数据项子序列,子序列的宽度对应于所述数据总线的宽度,该方法包括以下步骤在单个存储器访问周期中读取/存储(s100、s200、s300)数据项的特定子序列,其中所述子序列的每个数据项读取自/存储到所述多个相同的存储器单元中的不同的一个存储器单元,以及其中所述读取/存储步骤(s100、s200、s300)包括根据对数据项的所述子序列的访问请求控制(s200)对所述多个相同的存储器单元中的每一个的分别访问的步骤。
24.根据权利要求23的存储器访问方法,其中所述读取/存储步骤(s100、s200、s300)包括接收对于数据项子序列的访问请求(s100)并根据所述访问请求计算所述多个相同的存储器单元的分别的地址的步骤。
25.根据权利要求23或24所述存储器访问方法,其中对数据项子序列的访问请求指定了数据项的所述子序列中的至少一个数据项的存储位置。
26.根据权利要求25所述存储器访问方法,其中通过所述多个相同的存储器单元中特定的存储器单元的地址和标志来指定所述存储位置。
27.根据权利要求23或24所述存储器访问方法,其中对数据项子序列的访问请求指定了在所述数据项序列内的所述数据项子序列中的至少一个数据项的位置。
28.根据权利要求23到27中任何一项的存储器访问方法,其中所述数据项的序列的所述数据项以循环方式存储在多个相同的存储器单元的所述并行配置中,利用相同地址将连续的数据项中的每一个存储在连续的存储器单元中,并且在占用了全部所述多个相同的存储器单元中的所述地址的可访问的存储位置之后增大所述地址。
29.根据权利要求24到28中任何一项的存储器访问方法,其中所述分别的地址仅包括单个地址或者两个相邻的地址。
30.根据权利要求29的存储器访问方法,其中所述读取/存储步骤(s100、s200、s300)还包括根据所述访问请求计算两个相邻地址的步骤。
31.根据权利要求30的存储器访问方法,其中所述读取/存储步骤(s100、s200、s300)还包括选择两个所计算地址中的一个地址以作为所述多个相同的存储器单元中的每一个的分别的地址的步骤。
32.根据权利要求23到31中的任何一项的存储器访问方法,其中所述读取/存储步骤(s100、s200、s300)还包括对从所述多个相同的存储器单元读取的数据项子序列的数据项进行排序,以便使所述读取的数据项的顺序与在所述序列中的数据项的顺序相一致的步骤。
33.根据权利要求23到32中任何一项的存储器访问方法,其中所述读取/存储步骤(s100、s200、s300)还包括对将被存储在所述多个相同的存储器单元中的数据项子序列的数据项进行排序,以便使将被存储的所述数据项的顺序与预定的存储顺序相一致的步骤。
34.根据权利要求32或33所述存储器访问方法,其中所述排序步骤包括根据数据项的子序列的至少一个数据项的存储位置确定对于所述数据项的调换方案的步骤。
35.根据权利要求23到34中任何一项的存储器访问方法,其中写访问作为对所述多个相同存储器单元的相同地址的集中访问而执行。
36.根据权利要求23到35中任何一项的存储器访问方法,其中每一个所述数据项和所述多个相同的存储器单元中的每一个都具有10位的宽度。
37.根据权利要求23到36中任何一项的存储器访问方法,其中子序列包括5个数据项。
38.根据权利要求23到37中任何一项的存储器访问方法,其中所述数据总线具有50位的宽度。
全文摘要
提供了将单个数据总线连接到多个相同的存储器单元的并行配置的存储器接口。该存储器接口能够在单个存储器访问周期内读取/存储来自连续数据项序列的数据项的子序列,其中子序列的宽度对应于数据总线的宽度。子序列的每个数据项都读取自/存储到多个相同的存储器单元中不同的一个存储器单元中,所述存储器接口根据对特定数据项子序列的访问请求来控制对多个相同的存储器单元中的每一个的分别访问。
文档编号H04N5/91GK1737943SQ20051007178
公开日2006年2月22日 申请日期2005年2月28日 优先权日2004年2月26日
发明者弗兰克·詹森, 拉尔夫·休布里奇 申请人:松下电器产业株式会社