CN103999074B - 数字信号处理器及寻址数字信号处理器中的存储器的方法 - Google Patents
数字信号处理器及寻址数字信号处理器中的存储器的方法 Download PDFInfo
- Publication number
- CN103999074B CN103999074B CN201280063320.0A CN201280063320A CN103999074B CN 103999074 B CN103999074 B CN 103999074B CN 201280063320 A CN201280063320 A CN 201280063320A CN 103999074 B CN103999074 B CN 103999074B
- Authority
- CN
- China
- Prior art keywords
- unit
- memory
- address
- data
- memory unit
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 187
- 238000000034 method Methods 0.000 title claims description 23
- 239000013598 vector Substances 0.000 claims abstract description 94
- 238000003860 storage Methods 0.000 claims description 49
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims description 3
- 230000005611 electricity Effects 0.000 claims 1
- 238000012432 intermediate storage Methods 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 24
- 230000006870 function Effects 0.000 description 13
- 238000013500 data storage Methods 0.000 description 10
- VIEYMVWPECAOCY-UHFFFAOYSA-N 7-amino-4-(chloromethyl)chromen-2-one Chemical compound ClCC1=CC(=O)OC2=CC(N)=CC=C21 VIEYMVWPECAOCY-UHFFFAOYSA-N 0.000 description 8
- 101100499939 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cdm1 gene Proteins 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 210000000352 storage cell Anatomy 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000004899 motility Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8061—Details on data memory access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/35—Indirect addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
Abstract
本发明涉及一种数字信号处理器(200),其包括:至少一个向量执行单元(203,205)和至少第一存储器单元(230,231)。第三单元设置为提供用于对第一存储器单元(230,231)进行寻址的向量形式的寻址数据,其中所述第三单元可经由片上网络(244)连接到第一存储器单元(230,231)上,通过这种方式,由第三单元(250)所提供的数据可用于控制对第一存储器单元(230,231)的读取和写入。这能够以任何期望的顺序对存储器单元进行快速读取和写入。
Description
技术领域
本发明涉及根据权利要求1的前序部分所述的一种数字信号处理器。这种处理器特别适用于OFDM系统。
背景技术
许多移动通信设备使用包括了一个或多个数字信号处理器(DSP)的无线电收发器。
为了提高性能和可靠性,许多移动终端目前使用一类称为基带处理器(BBP)的DSP,以用于操控与接收的无线电信号的处理以及要发送的信号的准备相关联的许多信号处理功能。
此类处理器中频繁执行的许多功能对大量的数据样本执行操作。因此,称为单指令多数据(SIMD)处理器的一类处理器较为有用,因为它一次可针对整个数据向量而不是仅对一个整数来执行相同指令。这类处理器能够处理向量指令,这意味着单条指令可对有限数量的数据单元执行相同功能。数据划分为字节或字,并封装到待操作的向量中。
随着SIMD架构的进一步发展,已经研发出单指令流-多任务(SIMT)架构。通常,在SIMT架构中,已设有与作为内核处理器一部分的整数执行单元相关的、使用SIMD数据路径的一个或两个向量执行单元。
国际专利申请WO2007/018467公开了一种根据SIMT架构的DSP,其具有包括整数处理器和程序存储器的处理器内核,以及与内核连接但未集成在内核中的两个向量执行单元。该向量执行单元可以为复杂算法逻辑单元(Complex Arithmetic Logic Units,CALU)或复杂乘法累加单元(CMAC,Complex Multiply-Accumulate Units)。向量执行单元中待处理的数据由通过片上网络与该向量执行单元相连的数据存储单元提供。
存储器单元包括设置成用以在任何给定时间控制读取或写入顺序的地址生成单元。为了提高灵活性,地址生成单元能够实现不同的读出模式或样式,诸如从存储器中的每第n个地址开始读取。这些模式必须提供规则样式,这限制了可读取或写入数据的可能方式。而且,可获得的模式是针对特定的地址生成单元而预先选定的,并且无法改变。
Nilsson,A与Tell,E的文章“An11mm2,70mW fully programmable basebandprocessor for mobile WiMAX and DVB-T/H in0.12μm CMOS”对SIMT型DSP进行了描述并简要指出:“由于存储体可接受来自网络的外部寻址,因此整数存储器以及加速器可以用于为不规则向量寻址提供地址序列。这也提供了进行间接向量寻址的能力”。这篇文献并未解决涉及实际实施此类方案的任何技术问题,也因此并未提出可行的方案。
发明内容
本发明的目的在于实现SIMT架构处理器中的数据存储器的更灵活寻址。
根据本发明,该目的通过包括了以下单元的数字信号处理器来实现:至少一个功能单元(其可以是向量执行单元、整数执行单元或加速器)、用以提供待由功能单元操作的数据的至少第一存储器单元、第三单元以及连接了功能单元、第一存储器单元和第三单元的片上网络。该数字信号处理器的特征在于,第三单元设置为提供用于对所述第一存储器单元进行寻址的地址向量形式的寻址数据,其中第三单元通过如下方式与所述第一存储器单元连接:由所述第三单元提供的数据可用于控制对第一存储器单元的读取和/或写入并且所述处理器还包括设置用以补偿所述第一与第三单元之间延时的存储器地址接口单元。
本发明还涉及用于寻址数字信号处理器中的存储器的方法,所述数字信号处理器包括:至少一个功能单元、用以提供待由所述功能单元操作的数据的至少第一存储器单元、连接了所述功能单元和所述第一存储器单元的片上网络以及设置成用以向所述第一存储器单元提供地址向量形式的寻址数据的第三单元,所述方法包括以下步骤:
·设置所述第一存储器单元以从所述第三单元接收寻址数据,向所述第一存储器单元提供来自所述第三单元的寻址数据,
·根据寻址数据读取来自所述第一存储器单元的数据,或者将数据写入其中。
因此,根据本发明,可以通过任何遍历存储器单元的顺序来快速而有效地实现寻址。由于寻址可以与由所述功能单元所执行的处理并行地进行,因此可以如同有序数据序列同样高效地以任何顺序在存储器中对数据进行寻址。所述第一存储器单元可设置为经由专用总线或经由所述片上网络接收来自所述第三单元的寻址数据。
存储器地址接口单元针对由第一与第三单元之间的延时所造成的问题提供了解决方案。具体说,来自第一单元的读取信号将花费若干时钟周期才到达所述第三单元。当开始读取操作时,在第一个数据项实际到达执行单元之前会有若干时钟周期的延时。通过在第一单元请求第一地址样本之前就将第一地址样本存储在存储器地址接口单元中,可以减小启动时的延时。
第三单元可以是处理器中的任何单元,例如:
·称为第二存储器单元的存储器单元,优选为整数存储器单元,
·标量执行单元,
·向量执行单元,或
·加速器单元
不同单元可用于对不同存储体的寻址。
所述第一存储器单元可以是复数存储器或整数存储器。
所述存储器地址接口单元优选包括:
-延时存储器装置,用于存储表示所述第一与第三单元之间的延时的数字;
-样本存储器装置,用于存储样本数目,即要从所述第三单元传送到所述第一单元的地址项的数目;
-寄存器,用于将地址项从所述第三单元转发至所述第一单元。
因此,所述存储器地址接口单元优选设置成用于执行以下功能:
-当所述第一单元与所述第三单元连接以获取地址信息时,无需等待读取信号,就能读取来自所述第三单元的至少第一地址项;
-当从所述第一单元接收到读取信号时,将所述第一地址项转发至所述第一单元;
-读取随后来自所述第三单元的后续地址项,直到已经读取了所有的地址项为止,并且随后在从第一单元接收到读取信号时将所述后续地址项转发至所述第一单元。
优选的是,通过每当读取地址项时改变所述样本计数器来使得所述存储器地址接口单元跟踪待从第三单元读取的地址项的数目。这是有利的,因为在所述第一单元已经从所述第三单元读取了的最后一个地址样本之后,所述存储器地址接口单元将连续从所述第一单元接收读取请求。通过这样,所述存储器地址接口单元知道何时停止从所述第三单元获取地址项。当获取停止时,仅将最后的地址样本从所述存储器地址接口单元发送至所述第三单元。
通常较为重要的是,所有的计算都以相同的定时来执行,而与数据来源何处无关。因为延时可根据所涉及的那些单元而改变,因此本发明的优点在于:通过避免由不同单元之间的流水步骤的数目不同所引起的延迟差异来控制定时。
在特别有利的实施例中,所述第二存储器单元包括用于根据预定模式来控制从所述第二存储器单元的地址数据读取的地址生成单元。在本实施例中,所述方法可以包括以下步骤:即,通过用于根据预定模式来控制从所述第二存储器单元的地址数据读取的地址生成单元,来控制从所述第二存储器单元读取地址。这实现了对保存在所述第二存储器单元中的地址子集的操作,这对于基于OFDM的数字电视应用特别有利。
根据本发明的处理器特别适用于基于OFDM的电信标准,例如,根据LTE和LTE高级标准。
附图说明
下面,参考附图,通过示例的方式对本发明作出更详细说明。
图1示出了SIMT架构的示例。
图2示出了地址指针的功能。
图3通过SIMT架构的简化示例示出了本发明的第一实施例。
图4通过SIMT架构的简化示例示出了本发明的第二实施例。
图5示出了根据本发明实施例的存储器地址接口单元。
图6示出了本发明的第三实施例。
具体实施方式
图1示出了根据SIMT架构的现有技术的基带处理器200的示例。处理器200包括控制器内核201以及第一向量执行单元203和第二向量执行单元205,这将在下文中进行更详细地讨论。FEC单元206连接到片上网络。当然,在一具体实现中,FEC单元206可包括若干不同的单元。
主机接口单元207以本领域公知的方式提供与主机处理器(未示出)的连接。数字前端单元209以本领域公知的方式提供与前端单元的连接。
如本领域中所常见的,控制器内核201包括程序存储器,以及指令发布逻辑和用于支持多上下文(multi-context)的功能。就每个所支持的执行上下文或线程而言,这包括程序计数器、堆栈指针以及寄存器文件(未在图1中明确示出)。通常,支持2-3个线程。控制器内核201还包括一类本领域已知的整数执行单元212。
在本示例中,第一向量执行单元203是CMAC向量执行单元,而第二向量执行单元是CALU向量执行单元。每个向量执行单元203,205包括向量控制器213、向量加载/存储单元215和多个数据路径217。每个向量执行单元的向量控制器通过发布逻辑连接到控制器内核201的程序存储器211上,从而从程序存储器接收与指令有关的发布信号。
数据路径217,227和向量加载/存储单元215,225是本领域所熟知的,因此本文中将不再进行任何详细讨论。
可以存在任意数目的向量执行单元,即只包括CMAC单元、只包括CALU单元,或者每个类型各包括合适数目。也可以存在不是CMAC和CALU的其他类型向量执行单元。如上所述,向量执行单元是能够处理向量指令的处理器,这意味着单条指令对多个数据单元执行相同功能。数据可以是复数或实数,并划分为字节或字封装到待由向量执行单元操作的向量中。在本文中,CALU和CMAC单元用作示例,但应当注意,向量执行单元可用于对数据向量执行任何合适的功能。
如本领域已知的那样,通常使用多个加速器242,因为它们能够高效地实现某些基带功能,例如信道编码及交织。这种加速器是本领域所熟知的,因此这里将不再进行任何详细讨论。加速器可以配置为可由多种不同标准来重用。
片上网络244连接控制器内核201、数字前端单元209、主机接口单元207、向量执行单元203,205、存储体230,232、整数存储体238和加速器242。向量执行单元、标量执行单元、整数执行单元和加速器在文中统称为功能单元。标量执行单元一次仅能处理一个样本,但该样本可以具有实数值或复数值。
为了实现若干个同时的向量操作,处理器优选具有分布式存储器系统,其中存储器划分为若干存储体,如图1所示的存储体0230至存储体N231。每个存储体230,231分别具有自身的复数存储器232,233和地址生成单元AGU234,235。存储器232,233通常但不必需是复数存储器。由于能够并行执行多地址计算,使得这种结合有片上网络的配置提高了存储器系统的功率效率和处理器的吞吐能力。图2中的PBBP还优选包括整数存储体238,其中每个整数存储体均包括存储器239和地址生成单元240。
每个存储器具有地址指针,其表示接下来应当在存储器中进行读取或写入的位置。
例如,命令
out r0,CDM0_ADDR
out r1,CDM1_ADDR
分别设置了在复数数据存储器0和复数数据存储器1中应当进行读出或写入的位置。
每个地址生成单元234,235执行地址计算,从而控制向相应的存储器232,233读取或写入数据的顺序。为了提高灵活性,地址生成单元也可以设置成用于实现两个或多个不同模式。本领域已知若干此类模式。地址生成逻辑例如可通过具有不同增量(包括负增量)的线性寻址、比特反转寻址、模寻址以及二维寻址来执行。例如,地址生成器可设置为根据寻址功能来读取每第K个数据项,K为整数。或者,地址生成器可设置为反过来对存储器寻址。因此,作为示例,如果起始地址为0,则地址发生器可设置为根据如下三种不同模式来从相应的存储器读取:
·连续读取每个地址,即0,1,2,3,4,5,6,7
·读取每第K个地址,即当K=2时;则为0,2,4,6
如果起始地址为10并且K=-2
·则往回读取,即10,8,6,4,2,0
为了例如能使向量执行单元将来自两个不同存储器的数据项相乘,命令可以如下所示:
cmac.n CDM0,CDM1
其中,n为待操作的向量的长度。然后,这将对来自存储器CDM0和CDM1的n个数据项的向量进行操作,其中从各个存储器的指针所指示的那个数据项开始操作。
只要连续地或者以地址生成单元所支持的顺序对特定存储器中的数据进行读取,就不会有问题。但是,地址发生器不支持如下情况:即,待由向量执行单元操作的向量以不规则的顺序保存在存储器中。例如,将以下序列
CDM0[1,3,7,5,11]
与
CDM1[0,1,2,3,4]
相乘将是非常复杂的操作,因为在待从CDM0中读取的序列中不存在规则式样。因此,根据现有技术,在每次从存储器读取数据之前,都必须在AGU中手动设置地址。这将在读取数据方面导致显著的延时,进而降低处理器的整体性能。
图2示出了第一和第二存储器单元中的地址指针的功能。每个存储器单元包括多个数据项,其中包括要作为输入数据提供给向量执行单元的数据序列。
第一存储器单元230为CDM0,并且相关数据序列显示为该存储器单元中的的区块230a。地址指针230b指向该区块的起点,以表示应当从何处开始数据读取。
第二存储器单元231为CDM1,其也具有待由功能单元(如向量执行单元)用作输入数据的数据序列。该数据序列显示为区块231a,且具有指向该区块起点的地址指针231b。可以看出,第二存储器231中的数据序列231a的位置可以不同于第一存储器230中数据序列230a的位置。
随着读取的进行,指针将移动,指向将会在任何给定时间读取的下一地址。通常,指针信息从相应的存储器230,231的地址生成单元234,235中提取。
图3是仅示出与本发明特别相关的SIMT架构部件的简化示意图。所显示的采用与图1相同的附图标记的部件是:其中一个向量执行单元(在本示例中为CALU向量执行单元205)、第一存储体230和第二存储体231以及将这三个单元连接在一起的片上网络244。如前所述,每个存储体230和231均包括存储器232,233以及地址生成单元234,235。还存在包括了存储器252和地址生成单元254的第三存储体250。第三存储体还经由网络244连接到其他单元上。
第三存储体250通常是整数存储体,这使它适于通过数据向量(可称为地址向量)的形式来保存地址信息。该存储体在本文中有时称为地址存储器。否则,它可以与称为数据存储器的第一和第二存储体230,231是完全相同的类型。根据本发明,第三存储体250的存储器252保存将用于第二存储体231的寻址的地址向量。如连接第二与第三存储体的箭头所象征性示出的那样,该连接绕过第二存储体231的地址生成单元235而直接对存储器233寻址。
由于第三存储体250的存储器252中的数据可以很容易地改变,因此这提供了非常灵活的方式来对第二存储体231寻址。
从独立的存储器单元读取地址数据在系统中引入了附加延时。当执行单元准备好开始接收来自第二存储体的数据时,它将向第二存储器体(即要为执行单元所执行的计算提供数据的那个存储体)发送读取信号。然后,第二存储体将向地址存储体发送读取信号。地址存储体通过将其第一地址项发送给第二存储体来进行响应。只有这样,第二存储体才能向执行单元发送数据项。因此,将存在延时,这会导致向量执行单元在启动时的延迟。
为了克服这种延时,在本实施例中,存储器地址接口单元256设置在地址存储体250与第二存储体231之间。存储器地址接口单元256用作从第三存储体250中获取的地址项的中间存储器的存储器地址接口单元。下面将结合图5,对存储器地址接口单元256的设计及功能进行更详细地讨论。
作为补充,如上面结合图1所讨论的那样,第三存储体250的地址生成单元254也可用于设置读出模式,以便例如读取来自第三存储体的每个其他数据项。这意味着,在某些情况下,第三存储体的相同内容可用于不同应用中。例如,可以实现重复功能。
如将要理解的那样,类似设置还可用于对第一存储体230寻址,或者第一存储体的地址生成单元234也可以常规方式来使用。而且,可以提供任何数量、任何类型的存储体和功能单元。可以存在能用作地址存储器的多个存储体。由于所有单元都经由网络244互连,因此通过与适当的地址存储器相连,存储体与存储体就可以很容易地改变其条目的读取或写入顺序。
图4示出本发明的另一实施例。所显示的采用与图1相同的附图标记的部件是:CMAC向量执行单元203、CALU向量执行单元205、第一存储体230和第二存储体231以及将这三个单元连接在一起的网络244。如前所述,存储体230和231中的每个存储体均包括存储器232,233和地址生成单元234,235。还示出了第三存储体250,其包括存储器252和地址生成单元254。如结合图3所讨论的那样,第三存储体还经由网络244连接到其他单元上并可用作地址存储器。在图4所示的实施例中,从CMAC向量执行单元203对第二存储体235寻址。这意味着,将要从第二存储体231读出的地址都在CMAC向量执行单元203中进行计算。当然,这仅作为一示例。如本领域技术人员将认识到的那样,寻址可以由CALU向量执行单元或者从任何其他类型的功能单元(诸如向量执行单元、另一执行单元或加速器)来执行。
如将要理解的那样,可以将图4和5所示的实施例进行组合,使得通过某些存储体的内部地址生成单元231,233就能对这些存储体寻址,而其他一些存储体将由独立的存储体250来寻址,并且其塔另一些存储体则由功能单元203,205来寻址。
通过使用另一向量执行单元来计算对某特定存储器进行读取所根据的地址,能够以非常灵活的方式来实现存储器寻址。这在如下应用中极为有用:
·OFDM系统中的中试提取(pilot extraction)和用户分离
·CDMA系统中的耙指处理(rake finger processing)
一种根据本发明可实现从网络上的一个单元(例如,整数数据存储器IDM)来对另一存储器进行寻址的方法:
1)设置第一存储器单元(例如,CDM0),以使用IDM作为地址源;
2)设置第二存储器单元(例如,CDM1),以通过其地址生成单元来使用线性寻址;
3)以数据所提供的顺序来处理如计算向量执行单元中由第一和第二存储器单元提供的数据;
4)针对由向量执行单元从存储器单元读出的每个数据项,对存储器进行编程以从网络中获取新地址,即从第三存储器单元(图3的实施例)或者从第二向量执行单元(图4的实施例)获取新地址。该新地址将表示接下来将要从第一存储器单元中读取数据的位置。
备选地,为了将由向量执行单元所执行的处理的结果写入数据存储器中:
1)设置第一存储器单元(如CDM0)以使用IDM作为地址源;
2)设置第二存储器单元(如CDM1)以通过其地址生成单元来使用线性寻址;
3)处理(例如计算)向量执行单元中的数据,并将结果写入数据存储器中;
4)针对通过该向量执行单元而写入到数据存储单元中的每个数据项,对存储器进行编程以从网络中获取新地址,即从图3的实施例中的第三存储器单元或者从图4的实施例中的第二向量执行单元获取新地址。该新地址将表示数据接下来应被写入存储器中的具体位置。
在上面的示例性方法中,寻址数据当然可以从向量执行单元或者从处理器中的一些其他单元中获取,而不是从地址存储器中获取。
在图3和4所示的两个示例中,待由地址存储器或由适当的向量执行单元提供的地址信息分别必须以如下方式进行定时:即,待读取或写入的下一地址在其实际被读出或写入之前的一个时钟周期就该到达第二存储体。也就是:由于流水操作(pipelining),应当存在数据元素的预先读取。预先读取的数据量可以通过从存储器区(其通过网络来寻址)向地址源传送的控制信号来控制。备选地,也可以通过编程到存储器地址接口单元的固定值来控制。预先读取也可以通过地址源在网络上推送预定量的地址数据来实现,其中将流水阶段的数目编码到硬件中。
为了克服由提供地址数据的向量执行单元203与要使用该地址数据的存储体231之间的延时所造成的问题,将存储器地址接口单元256布置在向量执行单元203与第二存储体231之间。存储器地址接口单元256与图3的存储器地址接口单元256相类似,并用作从第三存储体250中获取的地址项的中间存储器的存储器地址接口单元。
图5示出了根据本发明的优选实施例的存储器地址接口单元256。该存储器接口具有存储器258和控制单元260。控制单元260包括两个存储器:
-延时存储器262,其保存从第三单元读入到第一存储器所需的流水步骤的数目;
-样本计数器264,其用于跟踪待从第三单元203,250读取的地址样本的数目。
延时存储器262通常但不必需进行硬编码。样本计数存储器用于根据需要而针对每个操作进行设置。
如上所述,第三单元是提供地址信息的单元。这可以是如图3所示的存储器单元250或如图4所示的向量执行单元203。
当设置数据存储体(图5中未示出)以接收来自提供地址的第三单元的寻址数据时,存储器地址接口单元256将来自第三单元的第一地址数据项读入到它的存储器258中。通过这种方式,当要接收来自数据存储体的数据的执行单元发送读取信号以通知它已准备好接收第一地址项时,该第一地址项已经存储在存储器地址接口单元中并且可以没有任何延时地发送到第二单元中。在没有存储器地址接口单元的情况下,所述程序将是:
-执行单元向存储器单元发送读取信号;
-存储器单元向要提供地址的单元发送读取信号;
-要提供地址的单元通过发送第一地址来响应;
-基于第一地址的接收,存储器单元向执行单元发送数据项。
因此,在执行单元开始工作之前还要花费若干时钟周期。然而,一旦开始,则地址会以适当的速度递送。
为了对系统进行配置,执行以下步骤:
1.内核通过向存储器接口发送信号以将队列填充到数据存储器的方式、或者通过对其控制寄存器进行写的方式,来定制数据存储器的外部寻址顺序。
2.存储器地址接口单元对提供地址数据的单元执行足够数量的读取操作,从而使其存储器中具有对应于网络延时的多个地址项。这意味着,地址项的数量应当对应于必须执行以获取地址的流水步骤的数量。
在执行期间,存储器地址接口单元连续地从寄存器向数据存储单元发送地址数据项,并连续地获取新地址数据项。
接收数据项的功能单元将连续向存储器单元发送读取信号,直到它接收到合适数目的数据项为止,并且存储器单元将依次向存储器地址接口单元发送读取信号。由于某些数据项在功能单元开始发送读取信号之前就已经从地址提供单元中读出,这意味着,当所有的地址项已从地址提供单元中读出之后,还会有一些读取信号发出。
因此,延时意味着存储器地址接口单元在其应当停止之后,还会继续从第三单元读取地址项。更准确地说,当以上述第2步骤设置存储器地址接口单元时,它将读出比存储在其寄存器中的数目多出许多的地址项。为了防止这种情况的发生,样本计数器跟踪已获取的地址样本的数目。当已经从第三单元向存储器地址接口单元中读入所需的地址样本数目时,尽管存储器地址接口单元还会继续从数据存储器接收到读取信号,但它将停止获取新地址样本。相反,针对最后的地址项,存储器地址接口单元将清空它的存储器,以将这些数据项提供给数据存储器。
在一优选的实施例中,地址信息以如下方式进行定时:即,待读取或写入的下一地址在其实际应被读出或写入之前的一个时钟周期就已到达第二存储体。
图6示出了根据本发明的处理器的优选实施例,其中多个存储器单元可共用较小数目的存储器地址接口单元。上述相同的附图标记用于如前面附图所示的相同单元。可以看出,根据本实施例的处理器具有与图3和4中所示处理器相同的单元,其中所有这些单元均经由片上网络244连接。此外,图6的实施例具有用于为所需的存储器单元230,231提供地址信息的地址交叉器270(address crossbar)。图6显示出均与地址交叉器270相连的两个存储器地址接口单元256。然后,地址交叉器充当集中器,其为每个存储器单元230,231选择应当从哪个存储器地址接口单元256接收寻址数据。
本发明的实施例在使用复杂地址模式的应用中极为有用,其中该应用在设计阶段不能进行硬编码或者在系统存储器中不可以进行预定义存储。种模式可以基于运行时间参数并且必须进行动态计算。
例如,称为LTE(长期演进)的基于OFDM的电信标准采用针对用户的动态频率分配。这需要选择分配给用户的频率。在其他情况下,期望选择所有的导频音(pilot tone),这可以基于表来完成。通常,这通过查找表来实现,从而获得导频音的地址信息,然后从存储器加载所需的数据项,整理(shuffle)频率中的数据以将有关的数据点彼此相邻布置,然后将数据点存回存储器中。
这种类型的寻址模式无法编程到传统的地址生成单元中。这意味着,例如为了执行导频音的FFT,则地址指针针对每个操作必须进行若干次设置,这意味着仅数据管理就很复杂,以致于将会显著降低DSP处理器的性能(利用率)。
相反,如果对存储器单元编程以便从片上网络中获取新地址,则如前所述,可以直接对要使用的每个数据点进行寻址,这减少了管理数据所需的容量并由此增加了DSP的利用率及性能。
本发明尤其有用的另一应用是数字电视应用。在DVB-T2中的每个OFDM符号由多达32768个子载波构成,从而产生一组32768个数据点。该信号包括待用作参考数据且不均匀地分布在整个频谱上的导频音。这种寻址模式在传统的地址发生单元中不易于控制。根据本发明,可以通过向向量执行单元提供数据的存储器单元将地址就存储在第三存储器单元中,并从中挑选地址。
针对数字电视,也可以仅使用32768(32k)个点的子集。该子集可以是16k、8k、4k、2k或1k个点,即二分之一、四分之一等直至1/32的点。根据本发明,这仅需要存储一个地址表,因为该表的子集可以通过将地址相应地设置在地址存储器中来选择。
当要从具有不可预知的定时的单元中获取寻址数据时,本发明也同样有用。这种单元的示例是可编程协处理器或纠错单元,如Turbo解码器。可编程协处理器通常可通过匹配需求的平均吞吐量来传递地址流,但是数据是以小突发串传递的。以相同的方式,纠错块会迭代地作用在一组数据上,直到该组数据正确为止,并且它无法准确地预测出将要花费多少个周期。因此,这类单元的输出将会是不可知的数据突发串。根据本发明的存储器地址接口单元可用于均衡该数据突发串。如果图5所示的寄存器258被FIFO队列所取代,那么存储器地址接口单元可以存储突发中所包含的数据个数并将其连续地发送给下一单元。
Claims (17)
1.一种数字信号处理器(200),包括:至少一个功能单元、第一存储器单元(230)、第三单元(250)和片上网络(244),其中,所述功能单元是向量执行单元(203,205)、标量执行单元或加速器,所述第一存储器单元用于提供待由所述功能单元操作的数据,并且所述片上网络连接所述功能单元、所述第一存储器单元和所述第三单元,所述数字信号处理器的特征在于,
所述第三单元(250)设置为提供用于对所述第一存储器单元(230)进行寻址的地址向量形式的寻址数据,其中所述第三单元通过如下方式与所述第一存储器单元(230)连接:所述寻址数据可用于控制对所述第一存储器单元(230)的读取和/或写入,并且所述处理器还包括设置在所述第一存储器单元和所述片上网络之间的存储器地址接口单元(256),以通过充当从所述第三单元中获取的寻址数据的中间存储器来补偿所述第一存储器单元与第三单元之间的延时,其中所述存储器地址接口单元用于在所述第一存储器单元准备接收来自所述第三单元的寻址数据时在所述第一存储器单元请求寻址数据之前开始读取来自所述第三单元的地址数据,以及存在数据元素的提前读取。
2.根据权利要求1所述的处理器,其中,所述第三单元是保存用于寻址所述第一存储器单元的地址数据的地址存储器单元。
3.根据权利要求2所述的处理器,其中,所述地址存储器单元为整数存储器单元。
4.根据权利要求1所述的处理器,其中,所述第三单元是第二功能单元。
5.根据权利要求1或2所述的处理器,其中,所述第一存储器单元(230)是复数存储器。
6.根据权利要求2或3所述的处理器,还包括第二存储器单元(231),所述第二存储器单元包括设置成用以根据预定义模式来控制从所述第二存储器单元读取地址数据的地址生成单元。
7.根据权利要求6所述的处理器,还包括地址交叉器(270),所述交叉器将至少一个存储器地址接口单元(256)与所述第一存储器单元(230)及所述第二存储器单元(231)互连,从而能够通过所述存储器地址接口单元(256)将地 址数据提供给所述第一和第二存储器单元中所选定的一个存储器单元。
8.根据权利要求1-4中任一项所述的处理器,其适用于根据LTE和/或LTE高级标准的电信应用。
9.根据权利要求1-4中任一项所述的处理器,其适用于数字电视信号。
10.一种对数字信号处理器(200)中的存储器进行寻址的方法,所述数字信号处理器包括:至少一个功能单元、第一存储器单元(230)、片上网络(244)和第三单元(250),其中,所述功能单元是向量执行单元(203,205)、标量执行单元或加速器,所述第一存储器单元提供待由向量执行单元进行操作的数据,并且所述片上网络连接所述功能单元、所述第一存储器单元和所述第三单元,而第三单元设置为向所述第一存储器单元提供地址向量形式的寻址数据,所述方法包括以下步骤:
·设置所述第一存储器单元以从所述第三单元接收寻址数据,
·向所述第一存储器单元提供来自所述第三单元的寻址数据,
·根据所述寻址数据从所述第一存储器单元读取或者写入数据,
·通过将设在所述第一存储器单元和所述片上网络之间的存储器地址接口单元(256)用作第一存储器单元和第三单元之间针对从所述第三单元中获取的寻址数据的中间存储器来补偿所述第一存储器单元与第三单元之间的延时以及
·当所述第一存储器单元准备接收来自所述第三单元的寻址数据时,在所述第一存储器单元请求寻址数据之前开始由所述存储器地址接口单元读取来自所述第三单元的地址数据,以及存在数据元素的提前读取。
11.根据权利要求10所述的方法,其中,所述第三单元是保存用于寻址所述第一存储器单元的地址数据的地址存储器单元。
12.根据权利要求11所述的方法,其中,所述地址存储器单元为整数存储器单元。
13.根据权利要求10所述的方法,其中,所述第三单元是功能单元。
14.根据权利要求10-13中任一项所述的方法,其中,所述第一存储器单元(230)是复数存储器。
15.根据权利要求11所述的方法,其中,所述方法包括通过地址生成单元来控制从所述存储器单元读取地址的步骤,所述地址生成单元设置成根据预定模 式来控制从第二存储器单元读取地址数据。
16.根据权利要求10-13中任一项所述的方法,其中,所述方法包括以如下方式为地址信息进行定时的步骤:要读出或写入的下一地址在其实际应被读出或写入之前的一个时钟周期就已到达第二存储体中。
17.根据权利要求16所述的方法,其中,预先读取的数据的量通过地址源在网络上推送预定量的地址数据来控制,其中流水阶段的数目编码在硬件中。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE1151230-8 | 2011-12-20 | ||
SE1151230A SE537423C2 (sv) | 2011-12-20 | 2011-12-20 | Digital signalprocessor och förfarande för adressering av ett minne i en digital signalprocessor |
PCT/SE2012/051320 WO2013095257A1 (en) | 2011-12-20 | 2012-11-28 | Digital signal processor and method for addressing a memory in a digital signal processor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103999074A CN103999074A (zh) | 2014-08-20 |
CN103999074B true CN103999074B (zh) | 2017-04-12 |
Family
ID=47594965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280063320.0A Active CN103999074B (zh) | 2011-12-20 | 2012-11-28 | 数字信号处理器及寻址数字信号处理器中的存储器的方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9557996B2 (zh) |
EP (1) | EP2751705B1 (zh) |
KR (1) | KR20140103343A (zh) |
CN (1) | CN103999074B (zh) |
ES (1) | ES2653951T3 (zh) |
SE (1) | SE537423C2 (zh) |
WO (1) | WO2013095257A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160226544A1 (en) * | 2015-02-04 | 2016-08-04 | GM Global Technology Operations LLC | Adaptive wireless baseband interface |
KR102655094B1 (ko) * | 2018-11-16 | 2024-04-08 | 삼성전자주식회사 | 메모리를 공유하는 이종의 프로세서들을 포함하는 스토리지 장치 및 그것의 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809552A (en) * | 1992-01-29 | 1998-09-15 | Fujitsu Limited | Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions |
CN101282477A (zh) * | 2008-05-06 | 2008-10-08 | 艾诺通信系统(苏州)有限责任公司 | 基于RapidIO互联的多核DSP阵列媒体处理系统及其方法 |
US7620047B2 (en) * | 2004-11-23 | 2009-11-17 | Emerson Network Power - Embedded Computing, Inc. | Method of transporting a RapidIO packet over an IP packet network |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594710B1 (en) | 1999-05-26 | 2003-07-15 | Nec Electronics, Inc. | Apparatus and method for a random access peripheral unit |
US6665790B1 (en) | 2000-02-29 | 2003-12-16 | International Business Machines Corporation | Vector register file with arbitrary vector addressing |
US6976147B1 (en) | 2003-01-21 | 2005-12-13 | Advanced Micro Devices, Inc. | Stride-based prefetch mechanism using a prediction confidence value |
US7017028B2 (en) | 2003-03-14 | 2006-03-21 | International Business Machines Corporation | Apparatus and method for updating pointers for indirect and parallel register access |
US7334110B1 (en) * | 2003-08-18 | 2008-02-19 | Cray Inc. | Decoupled scalar/vector computer architecture system and method |
US20070198815A1 (en) | 2005-08-11 | 2007-08-23 | Coresonic Ab | Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit |
US20130185538A1 (en) * | 2011-07-14 | 2013-07-18 | Texas Instruments Incorporated | Processor with inter-processing path communication |
-
2011
- 2011-12-20 SE SE1151230A patent/SE537423C2/sv not_active IP Right Cessation
-
2012
- 2012-11-28 US US14/364,619 patent/US9557996B2/en active Active
- 2012-11-28 CN CN201280063320.0A patent/CN103999074B/zh active Active
- 2012-11-28 ES ES12816532.1T patent/ES2653951T3/es active Active
- 2012-11-28 KR KR1020147019866A patent/KR20140103343A/ko not_active Application Discontinuation
- 2012-11-28 EP EP12816532.1A patent/EP2751705B1/en active Active
- 2012-11-28 WO PCT/SE2012/051320 patent/WO2013095257A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5809552A (en) * | 1992-01-29 | 1998-09-15 | Fujitsu Limited | Data processing system, memory access device and method including selecting the number of pipeline stages based on pipeline conditions |
US7620047B2 (en) * | 2004-11-23 | 2009-11-17 | Emerson Network Power - Embedded Computing, Inc. | Method of transporting a RapidIO packet over an IP packet network |
CN101282477A (zh) * | 2008-05-06 | 2008-10-08 | 艾诺通信系统(苏州)有限责任公司 | 基于RapidIO互联的多核DSP阵列媒体处理系统及其方法 |
Non-Patent Citations (1)
Title |
---|
An 11mm2, 70nW Fully Programmable Baseband Processor for Mobile WiMAX and DVB-T/H in 0.12m CMOS;NILSSON A等;《IEEE JOURNAL OF SOLID-STATE CIRCUITS》;20090101;第44卷(第1期);第3部分第1段,第3A部分第1-2段,附图2 * |
Also Published As
Publication number | Publication date |
---|---|
WO2013095257A1 (en) | 2013-06-27 |
EP2751705A1 (en) | 2014-07-09 |
CN103999074A (zh) | 2014-08-20 |
SE1151230A1 (sv) | 2013-06-21 |
ES2653951T3 (es) | 2018-02-09 |
US9557996B2 (en) | 2017-01-31 |
SE537423C2 (sv) | 2015-04-21 |
KR20140103343A (ko) | 2014-08-26 |
US20140351555A1 (en) | 2014-11-27 |
EP2751705B1 (en) | 2017-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102443546B1 (ko) | 행렬 곱셈기 | |
CN105393240B (zh) | 具有辅助异步向量处理器的异步处理器的方法和装置 | |
CN109213723A (zh) | 用于具有安全、功率降低和性能特征的可配置空间加速器的处理器、方法和系统 | |
US7653805B2 (en) | Processing in pipelined computing units with data line and circuit configuration rule signal line | |
CN108197705A (zh) | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 | |
CN103902507B (zh) | 一种面向可编程代数处理器的矩阵乘法计算装置及方法 | |
CN105912501B (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
US20180189068A1 (en) | Methods and apparatus for adjacency network delivery of operands to instruction specified destinations that reduces storage of temporary variables | |
CN103793340A (zh) | 串行数据处理器 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
CN103999074B (zh) | 数字信号处理器及寻址数字信号处理器中的存储器的方法 | |
CN103890718B (zh) | 数字信号处理器及基带通信设备 | |
KR20010078508A (ko) | 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치 | |
CN106406820A (zh) | 一种网络处理器微引擎的多发射指令并行处理方法及装置 | |
CN107402905A (zh) | 基于神经网络的计算方法及装置 | |
CN107977232A (zh) | 一种数据处理方法、数据处理电路和网络设备 | |
CN112074810B (zh) | 并行处理设备 | |
Elbirt et al. | Instruction-level distributed processing for symmetric-key cryptography | |
CN104011675B (zh) | 用于数字信号处理器的向量执行单元 | |
CN107077381B (zh) | 异步指令执行装置和方法 | |
CN106708780A (zh) | 面向simt架构统一染色阵列的低复杂度分支处理电路 | |
EP2751671B1 (en) | Digital signal processor and baseband communication device | |
CN104011674B (zh) | 数字信号处理器 | |
CN101236576B (zh) | 一种适用于异质可重构处理器的互联模型 | |
CN206639209U (zh) | 一种处理器内核结构 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |