首页> 中国专利> 带有可编程存储体选择的具有不同数据缓冲区容量的多层存储体

带有可编程存储体选择的具有不同数据缓冲区容量的多层存储体

摘要

揭示了一种具有一个核心处理器和多个高速缓存存储体的设备。高速缓存存储体与核心处理器相连接,其连接方式为所述核心处理器提供了基本同时的数据存取。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2009-02-04

    专利申请权、专利权的转移(专利权的转移) 变更前: 变更后: 变更前:

    专利申请权、专利权的转移(专利权的转移)

  • 2005-05-11

    授权

    授权

  • 2003-09-10

    实质审查的生效

    实质审查的生效

  • 2003-06-25

    公开

    公开

说明书

背景

本发明主要涉及数字信号处理和其他处理应用,尤其涉及在这类应用中对成组高速缓存结构的可编程存储体的选择。

数字信号处理器(DSP)是一种设计为优化数字信号处理和其它应用的专用计算机。这类应用包括数字滤波器、图像处理和语音识别。数字信号处理应用通常都具有实时操作、高中断率和增强数值计算的特征。此外,在需要大量数据输入和输出的应用中,趋向于进一步增强存储器存取的功能。因此,数字信号处理器的特点通用计算机的特点有很大的不同。

在数字信号处理器中,为获得高速数值计算的能力,又采用的一种结构方法就是哈佛结构。该结构使用了分离的、独立的程序和数据存储器,使得可以同时对这两个存储器进行存取。该数字信号处理器允许了在单个时钟周期从存储器读取指令和操作数。改进型哈佛结构使用程序存储器来存储指令和操作数以达到完全使用存储器。于是,程序和数据存储器通常是通过分离的程序和数据总线与核心处理器互相连接。

当在程序存储器中存储指令和操作数(数据)时,在指令读取时会发生冲突。某些指令类型可能需要从程序存储器中读取的数据。在适用于数字信号处理器的流水线结构中,这类指令所需的数据读取会与随后的指令读取发生冲突。在现有技术的数字信号处理器中,通过提供指令高速缓存又经克服了这个冲突。程序执行期间,在指令高速缓存中存储着与数据读取冲突的指令,并且在随后指令出现是从指令高速缓存中读取这些指令。

虽然结合使用指令高速缓存的改进型哈佛结构提供了极好的性能,但是还是需要进一步提高数字信号处理器的性能。特别是,提高计算速率和增强计算性能都可以是大有可为的。

附图简述

将参照附图来描述本发明的各个方面,其中:

图1是根据本发明一个实施例的数字信号处理器(DSP)的框图;

图2是根据本发明一个实施例包含两个超级存储体的存储系统的框图;

图3是显示小存储体的存储系统的另一个实施例;

图4显示了根据实施例分成为每个区域16千字节的连续存储区域的高速缓存地址映射;

图5显示了根据实施例分成每个区域8兆字节的连续存储区域的高速缓存地址映射;以及

图6是根据本发明的一个实施例的可编程存储体的选择过程。

详细描述

处理器的存储系统结构对处理机性能会具有极大影响。例如,乘和累加操作的快速执行就需要在单个指令周期中从存储器读取一个指令字和两个数据字。为了达到这个目标,现在的数字信号处理器(DSP)使用了多种技术,包括多端口存储器、分离指令和数据存储器以及指令高速缓存。为了能支持多个同步存储器的存取,数字信号处理器使用了多条片内总线和多端口存储器。

可以使用具有“多端口”行为的单端口存储器阵列来达到增强存储系统的性能。可以通过在片内提供可配置的快速静态随机存储器来对多个存储体进行并行存取。另外,存储系统可采用具有简单编程模式的高速缓存来构成。

图1中显示了根据本发明一个实施例的数字信号处理器(DSP)100的框图。该DSP配置为改进型哈佛结构。DSP 100的主要部件包括:核心处理器102、I/O处理器104、存储系统106和外部端口108。核心处理器102进行DSP 100的主要计算和数据处理操作。I/O处理器104控制外部端口108、一个或多个串行端口以及一个或多个链路端口的外部通信。

DSP 100被是由单个的单片集成电路构成的。在一个实施例中,存储系统的实现支持具有两个超级存储体(每个16千比特,共32千比特)的SRAM的模式。在每个周期中可同时存取存储器的这两个超级存储体以满足核心处理器的需要。另外,这两个超级存储体的每一个都可配置成高速缓存。

第一存储总线120将核心存储器102、I/O存储器104和存储系统106互相连接。第二存储总线122也同样将核心存储器102、I/O存储器104和存储系统106互相连接。在一些实施例中,第一存储总线和第二存储总线分别构成了数据存储总线和程序存储总线。外部端口(EP)总线124互相连接着I/O处理器104和外部端口108。外部端口108把EP总线124连接到外部总线126。每条总线120、122都包括了数据总线和地址总线。总线120、122中的每一条都包括多条适用于二进制信息并行传输的线路。

核心处理器102包括连接着第一存储总线120和第二存储总线122的数据寄存器堆130。数据寄存器堆130并行连接着乘法器132和算术逻辑单元(ALU)134。乘法器132和ALU 134执行单周期指令。并行方式的配置最大化了计算量。单、多功能指令执行并行的ALU和乘法器的操作。

核心处理器12进一步包括第一数据地址生成器(DAG0)136、第二数据地址生成器(DAG1)138和程序时序器140。连接乘法器142的总线接收来自于第一存储总线120和第二存储总线122的输入。乘法器142将总线数据提供给数据地址生成器136、138和程序时序器140。第一数据地址生成器136将地址提供给第一存储总线120。第二数据地址生成器138将地址提供给第二存储总线122。

核心处理器102进一步包括连接着程序时序器140的指令高速缓存144。指令高速缓存103读取一个指令和两个数据值。指令高速缓存102是可选择的,只适用于指令读取与数据存取会发生冲突的指令。

在一些实施例中,DSP 100使用了增强型的哈佛结构,在该结构中,第一存储总线32只传输数据,第二存储总线34可传输指令和数据。采用分离的程序以及数据存储总线和片内指令高速缓存144,核心处理器102就能同时读取两个操作数(从存储体110、112)和一个指令(从高速缓存144),所有都在单个周期内。

图2中详细说明的存储系统106,它最好能包含两个每个16千比特总共32千比特的超级存储体。在每个周期内,超级存储体A 200和B 202都可以同时存取以满足核心处理器102的需要。

这些超级存储体200、202中的每一个都可配置成SRAM和/或高速缓存。通过能同时支持SRAM和高速缓存的实现,存储器结构为系统设计者提供了灵活性。将存储器都设置成高速缓存,有利于系统设计者对代码剩余部分(例如操作系统、微控制器代码等等)提供数据缓存的简便编程模式。将存储器都设置成SRAM可提供关键数字信号处理应用的可预测性和可执行性。混合模式(例如,一半为SRAM和一半为高速缓存)使得关键数据组映射到SRAM以获得可预测性和可执行性,可利用对高速缓存的简便编程模式,把代码的剩余部分映射到高速缓存。此外,通过在L1存储器提供SRAM的行为,在可以较低的存取等待时间获得显著的性能优点。除了两个超级存储体外,还提供一个4千比特的暂存SRAM 204作为用户堆栈,以加速数据交换。

在一个实施例中,数据超级存储体200、202的每一个的容量都是16K比特,也可进一步分成4个4千比特的小存储体300、302、304、306。图3更详细地显示了存储系统106框图。在所说明的实施例中,每个小存储体300、302、304、306都是两路相联高速缓存并设置为单端口存储器阵列。通过对两个超级存储体A和B中的8个不同的小存储体300、302、304、306提供并行存取,就可以获得多端口存储器的行为特征。多路复用器308、310、312、314分别有选择性地提供小存储体300、302、304、306的存取。对核心处理器316和系统接口318(比如I/O处理器)提供选择性的存取。然而,由于该设置不是真的多端口系统,所以不允许对同一个小存储体同时存取。于是,如果两个存取都寻址到同一小存储体,那么就会发生冲突。其中有一个存取就会延迟一个时钟周期。

对于一个特定的实施例,第一数据地址生成器322、第二数据地址生成器324和存储缓冲区320分别提供了两个操作数和一个结果的地址。

核心处理器316控制存储系统106的超级存储体A和B的设置。该设置可由以下表1所述定义。

 存储器设置超级存储体A超级存储体B 0SRAMSRAM 1保留保留 2高速缓存SRAM 3高速缓存高速缓存

                 表1

存储器设置0和3把每个超级存储体分别分为4个所有都是SRAM和所有都是高速缓存的小存储体。各种设置却能提供灵活性,或提供适用剩余代码编程的设计简易性。存储器设置2支持混合设计,它允许将关键数据组映射到SRAM以获得可预测性和可执行性,把代码的剩余部分映射到高速缓存以便于利用高速缓存的简便编程模式。当SRAM模式使能时,逻辑地址和物理地址就相同了。保留存储器设置1,以备其它的设置。

图4和5显示了L1高速缓存结构的例子。对于物理存储地址映射的所说明实施例而言,进行存储体的选择以允许不同缓冲区容量的并行高速缓存存取。例如,图4显示了分成每个16千字节连续存储区域的4千兆字节高速缓存的地址映射。可以交替地把存储区域映射到两个高速缓存超级存储体A和B其中之一。在图5的另一个例子中,高速缓存地址映射被分成为每个8兆字节的连续存储区域。对于一些实施例来说,高速缓存地址映射中可编程时,可适用于任何可实行的存储体容量。此外,可以动态对存储体容量进行编程,使得能根据特定要求实现实时地改变容量。可编程的选择没有影响,除非这两个高速缓存超级存储体A和B都被设置或高速缓存。

允许可编程的存储体容量的L1高速缓存结构提供了某些优于固定存储体容量的优点。把存储器编程为相对小的存储体容量提供了增加非优化代码存取两个高速缓存存储体的机会的优点。大的存储体容量可作为大的数据缓冲区使用,这时,要求程序员把大缓冲区映射为一个存储体,以优化性能。

图6显示了根据本发明一个实施例的可编程存储体选择的过程。在600,询问存储器容量的选择位,以确定高速缓存的存储体容量。如果存储体容量选择位是0,那么就在602,把地址映射分或为每个16千字节的连续存储区域。否则,如果存储体容量选择位是1,那么就在604,把地址映射分为每个8兆字节的连续存储区域。在606,确定把那个数据高速缓存存储体(即A或B)映射到每个区域。通过使用存储体的选择位或通过监控物理存储地址中的某些位来作出这个确定。在608,如果使用了存储的体选择位,一旦这一位是0,那么就在610,就选择数据高速缓存存储体A。否则如果这一位是1,就在612,选择数据高速缓存存储体B。

真正的多端口存储器阵列可以提供两个核心处理器存取的带宽以及通过诸如系统接口这类接口的直接存储器存取(DMA)。然而,区域损失可能会较大,这是因为存储器阵列的多端口比该阵列的物理区域的两倍还要多。此外,建立多端口阵列的费用通常是指数型增加的。如以上所述,具有多个存储体的存储器结构可以支持并行存取而且具有最小的硬件开销。该阵列是单端口的,只要是对不同小存储体进行存取,它们还是可以提供多端口行为的某些优点。

为了具有了最小化硬件而最大化性能,就要优化系统环境。如果在高速缓存中允许DMA存取,那么就要引入复杂的高速缓存一致性问题,这就导致了控制的复杂性和附加的硬件。于是,DMA存取就仅局限于SRAM区域。为了简单也自然限制对4千比特暂存SRAM的DMA存取。

除了区域优点外,多存储体存储器提供了高存取带宽,它有利于数字信号处理器的性能。当处于高速缓存模式时,超级存储体可以支持两个并行填充式或回写式传输的核心处理器存取。当处于SRAM模式中时,超级存储体可以支持并行DMA传输的双核心处理器。此外,可以通过只要对在给定周期存取所需的小存储体进行供电来把功率损耗减小到最低。每个周期中最多可使用8个小存储体中的3个。

以上所述的实施例只是用于说明的目的。也可能有其它实施例和变化。例如,即使根据具有两个不同存储体容量和位置来描述和说明了该存储系统,但该存储系统也可以支持具有许多不同的存储体容量和位置。

希望所有这些实施例都包含在以下权利要求书中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号