访问存储器的方法及对应电路

文档序号:168640 发布日期:2021-10-29 浏览:34次 >En<

阅读说明:本技术 访问存储器的方法及对应电路 (Method for accessing a memory and corresponding circuit ) 是由 G·博尔戈诺沃 L·雷菲奥伦汀 于 2021-04-27 设计创作,主要内容包括:公开了访问存储器的方法及对应电路。一种访问存储器以读取和/或写入数据的实施例方法包括生成存储器事务请求,该存储器事务请求包括对于存储器中的一组存储器位置的存储器访问请求的突发,存储器位置具有相应存储器地址。该方法还包括经由互连总线向耦接到存储器的存储器控制器电路发送第一信号和第二信号,第一信号传送存储器事务请求,第二信号传送用于将存储器访问请求的突发映射到存储器中的存储器位置的相应存储器地址上的信息。该方法还包括:根据由第二信号传送的信息,计算存储器地址的相应存储器地址,以及访问存储器地址以从存储器地址读取数据和/或将数据写入存储器地址。(Methods of accessing a memory and corresponding circuits are disclosed. An embodiment method of accessing memory to read and/or write data includes generating a memory transaction request including a burst of memory access requests for a set of memory locations in the memory, the memory locations having respective memory addresses. The method also includes sending, via the interconnect bus, first and second signals to a memory controller circuit coupled to the memory, the first signal conveying a memory transaction request and the second signal conveying information for mapping a burst of memory access requests onto a respective memory address of a memory location in the memory. The method further comprises the following steps: based on the information conveyed by the second signal, a corresponding memory address of the memory addresses is calculated, and the memory addresses are accessed to read data from and/or write data to the memory addresses.)

访问存储器的方法及对应电路

相关申请的交叉引用

本申请要求2020年4月29日提交的意大利申请第102020000009364号的权益,该申请通过引用结合于此。

技术领域

本说明书涉及数字信号处理电路,例如硬件加速器,以及相关的方法、设备和系统。

背景技术

各种实时数字信号处理系统(例如,用于处理视频数据和/或图像数据、雷达数据、无线通信数据,如汽车领域中日益需要的)可能涉及每单位时间处理相关量的数据。

就这一点而言,各种数字信号处理器(例如,用于计算诸如快速傅里叶变换(FFT)、波束成形、有限脉冲响应(FIR)滤波器、神经网络等的算法的协处理器)是本领域已知的。其中,流水线体系结构和基于存储器的体系结构是两种已知的解决方案。

为了有效地应对资源需求处理(例如,在大数据集上和/或不同大小的FFT算法的计算),基于存储器的体系结构可以是优选的。

然而,本领域已知的数字信号处理器可能不提供适于某些算法的有效计算的存储器访问方案。

发明内容

一个或多个实施例的目的是提供一种访问数字信号处理器中的存储器的方法,该方法解决了上述缺点。

一个或多个实施例可以旨在提供适于高性能数字信号处理应用的通信总线控制器(例如,用于高级微控制器总线体系结构(AMBA)高级可扩展接口(AXI)总线)。这可以通过扩展允许的增量/包装突发(wrapping burst)事务以及通过指定要使用可选的用户可用信号来使用的存储体访问方案来实现。

根据一个或多个实施例,这样的目的可以通过具有所附权利要求中阐述的特征的方法来实现。

一个或多个实施例可以涉及对应电路。

权利要求是本文提供的关于实施例的技术教导的组成部分。

根据一个或多个实施例,提供了一种访问存储器以读取和/或写入数据的方法。该方法可以包括生成存储器事务请求,存储器事务请求包括向存储器中的一组存储器位置(memory locations,存储位置)的存储器访问请求的突发,其中,存储器位置具有相应存储器地址。该方法可以包括经由互连总线向耦接到存储器的存储器控制器电路发送信号。第一信号可以传送存储器事务请求,并且第二信号可以传送用于将存储器访问请求的突发映射到存储器中的存储器位置的相应存储器地址上的信息。该方法可以包括:根据由第二信号传送的信息,计算存储器位置的相应存储器地址,以及访问存储器位置以从存储器位置读取数据和/或将数据写入存储器位置。

因此,一个或多个实施例可以有利地提供在总线上将不同的单个存储器访问分组为单个突发事务的可能性,和/或提供在事务突发内对要使用的存储体访问方案进行编码的可能性。一个或多个实施例可以与现有总线标准(例如,AXI4、AXI3)兼容。

附图说明

现在将参考附图仅以示例的方式描述一个或多个实施例,其中:

图1是根据一个或多个实施例的诸如片上系统的电子系统的示例性电路框图;以及

图2是基-2,16点快速傅里叶变换(FFT)算法的示例性数据流图。

具体实施方式

在随后的描述中,示出了一个或多个具体细节,旨在提供对本说明书的实施例的示例的深入理解。可以在没有一个或多个特定细节的情况下,或者通过其它方法、部件、材料等来获得实施例。在其它情况下,未详细说明或描述已知的结构、材料或操作,使得不会模糊实施例的某些方面。

在本说明书的框架中对“实施例”或“一个实施例”的引用旨在指示在至少一个实施例中包括关于该实施例描述的特定配置、结构或特征。因此,在本说明书的一个或多个点中可能存在的诸如“在实施例中”或“在一个实施例中”的短语不一定指的是一个且相同的实施例。此外,特定构象、结构或特征可以在一个或多个实施例中以任何适当的方式组合。

在本文所附的整个附图中,相同的部件或元件用相同的附图标记/标号表示,并且为简洁起见,将不再重复相应的描述。

本文使用的参考/标题仅仅是为了方便而提供的,因此并不限定实施例的保护范围或范围。

作为对示例性实施例的详细描述的介绍,可以首先参考图1。图1是根据一个或多个实施例的电子系统1的示例性电路框图,例如设计用于数字信号处理的片上系统(SoC)。电子系统1可以包括电子电路,例如:中央处理单元10(CPU,例如微处理器)、主系统存储器12(例如系统RAM-随机访问存储器)、直接存储器访问控制器14和数字信号处理器16(例如硬件加速器电路,例如基于存储器的FFT协处理器)。

应当理解,在本说明书中,当指定数字信号处理器16时,对FFT协处理器的任何具体引用纯粹是以非限制性示例的方式进行的。从下面的描述将清楚地看出,根据一个或多个实施例的数字信号处理器16可以被配置为执行各种不同的算法。

如图1所示,电子系统1中的电子电路可以借助于系统互连网络18连接,例如SoC互连、片上网络、网络互连或交叉开关(交叉杆)。

如图1所例示,在一个或多个实施例中,数字信号处理器16可以包括至少一个处理元件160,优选地包括数目P的处理元件1600、1601、…、160P-1以及一组本地数据存储体M0、…、MQ-1

在一个或多个实施例中,数字信号处理器16还可以包括本地控制单元161、本地互连网络162、本地数据存储器控制器163、耦接到一组本地只读存储器165(优选地,数目P的本地只读存储器1650、1651、…、165P-1)的本地ROM控制器164;以及耦接到一组本地可配置系数存储器167(优选地,数目P的本地可配置系数存储器1670、1671、…、167P-1)的本地配置存储器控制器166。

在一个或多个实施例中,处理元件1600、1601、…、160P-1可以包括数学运算符,例如,基-2蝶形单元(radix-2butterfly units)和/或乘-累加(MAC)单元。在各种实施例中,可以使用更高基数算术处理单元,例如,通称为基-S蝶形单元。在各种实施例中,处理元件160可以是可重新配置的,以在不同的时间执行不同的操作。

处理元件160可以包括具有低复杂度的相应内部直接存储器访问控制器1680、1681、…、168P-1。具体地,处理元件160可以被配置为通过相应直接存储器访问控制器从本地数据存储体M0、…、MQ-1和/或从主系统存储器12检索输入数据。因此,处理元件160可以对检索到的输入数据进行精细处理,以生成经处理的输出数据。处理元件160可以被配置为通过相应直接存储器访问控制器将经处理的输出数据存储在本地数据存储体M0、…、MQ-1和/或主系统存储器12中。

在一个或多个实施例中,可以提供数目Q=S*P的本地数据存储体M0、…、MQ-1,以避免在由P个处理元件1600、1601、…、160P-1执行的并行计算期间的存储器访问冲突。因此,在包括基-2蝶形单元的优选实施例中,可以提供数目Q=2*P的本地数据存储体M0,…,MQ-1

优选地,本地数据存储体M0、…、MQ-1可以提供缓冲(例如,双缓冲),其可以便于恢复存储器上载时间(写操作)和/或下载时间(读操作)。具体地,每个本地数据存储体可以被复制,从而可以从两个存储体中的一个存储体读取数据(例如,用于被处理),并且可以同时在另一个存储体中存储(例如,用于稍后被处理)(新的)数据。因此,移动数据可能不会对计算性能产生负面影响,因为它可能被掩盖。

在一个或多个实施例中,本地数据存储体M0、…、MQ-1的双缓冲方案与流式模式或背靠背(例如,如适用于被配置为详细说明N个数据输入的连续序列的FFT N点处理器)的数据处理相结合可能是有利的。

在一个或多个实施例中,本地数据存储体M0、…、MQ-1可以包括具有有限存储容量(并且因此具有有限硅占用面积)的存储体。在FFT处理器的示例性情况下,每个本地数据存储体可以具有至少(maxN)/Q的存储容量,其中maxN是硬件能够处理的最长FFT。

涉及硬件加速器的应用中的典型值可能如下:

N=4096点,每个点例如是具有64位(或8字节)大小的浮点单精度复数(实部,虚部),

P=8,得到Q=16,

使得每个存储体的存储容量可以等于(4096*8字节)/16=2KB(KB=千字节)。

在一个或多个实施例中,本地互连网络162可以包括低复杂度互连系统,例如,基于已知类型的总线网络,诸如基于AXI的互连。例如,本地互连网络162的数据并行度可以是64位,地址宽度可以是32位。

本地互连网络162可以被配置为将处理元件160连接到本地数据存储体M0、…、MQ-1和/或主系统存储器12。此外,本地互连网络162可以被配置为将本地控制单元161和本地配置存储器控制器166连接到系统互连网络18。

具体地,互连网络162可以包括一组P个主端口MP0、MP1、…、MPP-1,这些主端口中的每一个主端口耦接到相应的处理元件160;一组P个从属端口SP0、SP1、…、SPP-1,这些从属端口中的每一个可以经由本地数据存储器控制器163耦接到本地数据存储体M0、…、MQ-1;另一对端口,包括用于耦接到系统互连网络18的系统主端口MPP和系统从端口SPP(例如,以便从中央处理单元10接收指令和/或访问存储在系统存储器12中的数据);以及耦接到本地控制单元161和本地配置存储器控制器166的又一从属端口SPP+1

在一个或多个实施例中,互连网络162可以是固定的(即,不可重新配置的)。

在示例性实施例中(参见例如下文提供的表I-1,其中“X”符号指示两个端口之间的现有连接),互连网络162可以实现以下连接:耦接到处理元件160的P个主端口MP0、MP1、…、MPP-1中的每一个主端口可以被连接到相应从端口SP0、SP1、…、SPP-1,所述相应从端口SP0、SP1、…、SPP-1耦接到本地数据存储器控制器163;并且耦接到系统互连网络18的系统主端口MPP可以连接到耦接到本地控制单元161和本地配置存储器控制器166的从端口SPP+1

下面提供的表I-1总结了通过互连网络162实现的这种示例性连接。

表I-1

SP<sub>0</sub> SP<sub>1</sub> SP<sub>P-1</sub> SP<sub>P</sub> SP<sub>P+1</sub>
MP<sub>0</sub> X
MP<sub>1</sub> X
MP<sub>P-1</sub> X
MP<sub>P</sub> X

在另一示例性实施例中(参见例如下文中提供的表I-2,其中“X”符号指示两个端口之间的现有连接),互连网络162可以进一步实现以下连接:P个主端口MP0、MP1、…、MPP-1中的每一个主端口可以连接到系统从端口SPP,该系统从端口SPP耦接到系统互连网络18。以这种方式,可以经由系统互连网络18在任何处理元件160和SOC之间提供连接。

下面提供的表I-2总结了通过互连网络162实现的这种示例性连接。

表I-2

SP<sub>0</sub> SP<sub>1</sub> SP<sub>P-1</sub> SPP SP<sub>P+1</sub>
MP<sub>0</sub> X X
MP<sub>1</sub> X X
MP<sub>P-1</sub> X X
MP<sub>P</sub> X

在另一示例性实施例中(参见例如下文中提供的表I-3,其中“X”符号指示两个端口之间的现有连接,括号中的“X”指示可选连接),互连网络162可以进一步实现以下连接:耦接到系统互连网络18的系统主端口MPP可以连接到从端口SP0、SP1、…、SPP-1中的至少一个从端口(这里是一组P个从端口SP0、SP1、…、SPP-1中的第一从端口SP0)。这样,可以在主端口MPP和(任何)从端口之间提供连接。根据系统1的具体应用,主端口MPP的连接可以扩展到多个(例如全部)从端口SP0、SP1、…、SPP-1。主端口MPP与从端口SP0、SP1、…、SPP-1中的至少一个的连接可以(仅)用于将待处理的输入数据加载到本地数据存储体M0、…、MQ-1,只要所有数据存储体可以经由单个从端口访问。加载输入数据可以仅使用一个从端口来完成,而通过并行计算来处理数据可以利用多个(例如,全部)从端口SP0、SP1、…、SPP-1

下面提供的表I-3总结了通过互连网络162实现的这种示例性连接。

表I-3

此外,处理元件160可以被配置为从本地只读存储器165和/或从本地可配置系数存储器167检索输入数据以执行这种细化(elaboration)。

在一个或多个实施例中,处理元件160经由本地ROM控制器164可访问的本地只读存储器1650、1651、…、165P-1可以被配置为存储用于实现特定算法或操作的数字因子和/或系数(例如,用于FFT计算的旋转因子或其它复系数)。本地ROM控制器164可以实现特定的地址方案。

在一个或多个实施例中,处理元件160经由本地配置存储器控制器166可访问的本地可配置系数存储器1670、1671、…、167P-1可以被配置为存储可以由软件配置的与应用相关的数字因子和/或系数(例如,用于实现FIR滤波器或波束成形操作的系数、神经网络的权重等)。本地配置存储器控制器166可以实现特定的地址方案。

在一个或多个实施例中,本地只读存储器1650、1651、…、165P-1和/或本地可配置系数存储器1670、1671、…、167P-1可以有利地被分割成等于硬件加速器电路16中包括的处理元件160的数目的P个存储体。这可以有助于避免并行计算过程中的冲突。

注意,在片上系统设计中使用的已知(例如,标准)总线,例如AMBA AXI总线或其它总线,可以在存储器访问期间通过增量或包装突发(寻址方案)只允许访问连续字(或双字、半字或字节)。因此,用于数字信号处理器(例如,FFT处理器)的已知的基于总线的并行体系结构可以借助于内部DMA或借助于地址生成器执行从本地存储体到处理元件的单个数据传输,只要数据的步幅排列可能不被已知类型的互连(例如,标准AXI总线)所支持。

此外,已知总线可能缺乏专用信号来指定要用于突发事务的特定存储体访问方案。

对已知总线的操作的上述限制可能导致对于许多不同类型的数字信号处理器(例如,对于FFT算法的计算)在带宽、等待时间和/或处理时间方面的限制。

注意,算法的处理可以涉及从存储器提取数据向量,和/或将数据向量存储到存储器中,其中,数据向量以可编程步幅分开。另外,根据所计算的算法,数据可以根据不同的访问模式排列在存储器中,例如,以避免或减少存储器访问冲突。

例如,考虑到FFT计算的示例性情况,每个FFT级中的内部处理元件1600、1601、…、160P-1的每个输入和/或输出信号的数据字可以不是连续的,而是可以由具有2的幂形式(即,形式2n)的值的步幅(以字数计)间隔开。因此,无法将整个数据传输分组为单个典型的增量突发。在已知的解决方案中,这可能导致DMA控制单元的复杂性增加和总计算等待时间较高。

因此,数字信号处理器(例如,FFT、波束成形、FIR滤波器、神经网络等)中的各种算法的处理可以受益于提供根据在连续节拍(beat)之间具有可编程步幅的增量突发来访问(以读模式和/或写模式)存储在存储器中的数据的方式。

此外,这样的处理可以受益于提供在事务内指定不同存储体访问方案(例如,增量、低阶交错、FFT专用等)的方式。

在一个或多个实施例中,本地控制单元161可以包括数字信号处理器16的控制器电路。这样的控制器电路可以用特定的存储器访问方案和循环周期来配置(例如,动态地)每个内部直接存储器访问控制器168。

在一个或多个实施例中,本地数据存储器控制器163可以被配置为仲裁(例如,由处理元件160)对本地数据存储体M0、…、MQ-1的访问。例如,本地数据存储器控制器163可以使用可根据从中央处理单元10接收的信号选择的存储器访问方案(例如,用于特定算法的计算)。

在一个或多个实施例中,本地数据存储器控制器163可以根据指定的突发类型、突发长度和存储器访问方案,将由读/写直接存储器访问控制器生成的输入读/写事务突发(例如,AXI突发)转换为读/写存储器访问序列。

因此,如图1所例示的数字信号处理器16的一个或多个实施例可以旨在通过将处理元件与本地数据存储体M0、…、MQ-1之间的(可重新配置的)连接的实现委托给本地数据存储器控制器163来降低本地互连网络162的复杂性。

特别地,一个或多个实施例利用可选的用户信号,可以提供能够通过本地互连162发出的数据传输的标准兼容扩展。

作为示例,在本地互连162是基于AXI的互连的情况下,可以使用AWUSER和/或ARUSER信号,以便改进处理元件160和本地数据存储体M0、…、MQ-1之间的数据传输。

再次,将理解,对基于AXI的互连的引用纯粹是通过示例的方式作出的:一个或多个实施例可以应用于任何基于总线的数字信号处理器16,对于该处理器,以可变步幅将矢量访问执行到存储器中,并且用户特定的总线信号可用。此外,将理解,将基-2蝶形单元作为可能的处理元件160的引用纯粹是通过示例的方式作出的:一个或多个实施例可以应用于包括任何类型的处理单元或数学运算符160的数字信号处理器16,例如,还包括标准的“单指令、多数据”(SIMD)向量处理器。

如参考图1所描述的,处理元件160的每个输入端子可以具有与其相关联的读直接存储器访问控制器(在168内),该读直接存储器访问控制器允许通过互连162向本地数据存储体M0、…、MQ-1发出读突发请求(例如,AXI读突发)以获得待处理的输入数据。

此外,处理元件160的每个输出端子具有与之相关联的写直接存储器访问控制器(在168内),该写直接存储器访问控制器允许通过互连162向本地数据存储体M0、…、MQ-1发出写突发请求(例如,AXI写突发)以存储输出的经处理数据。

在一个或多个实施例中,本地数据存储器控制器163可以通过互连162(例如,借助于AXI4从接口)接收由直接存储器访问控制器168生成的输入(AXI)读突发和/或输入(AXI)写突发。本地数据存储器控制器163可以根据指定的突发类型、突发长度和存储器访问方案将这样的读和/或写突发转换成读存储器访问和/或写存储器访问的相应序列。

特别地,一个或多个实施例可以依赖于使用用户可用信号(诸如AXI标准中的信号AWUSER和ARUSER)来在DMA 168处发出非标准增量突发事务(除了标准线性增量突发之外)。例如,用户可用信号可以对用于执行FFT算法的不同计算阶段的不同步幅排列(permutations)的信息进行编码。

另外,用户可用信号可以编码关于本地数据存储器控制器163应该使用的存储器访问方案的信息。实际上,本地数据存储器控制器163还可以实现存储器访问方案,当使用不同的处理元件160时,该存储器访问方案有助于避免在算法计算(例如,FFT计算)期间的存储器冲突。

例如,用户可用信号的第一子部分可以用于对于突发的每个节拍,携带关于在每个存储器事务处要添加的步幅的信息,该步幅从地址AxADDR开始。用户可用信号的第二子部分可以用于定义要由本地数据存储器控制器163用于将地址映射到物理存储器位置上的访问方案(例如,FFT专用、低阶交错、线性等)。

仅作为示例,通过参考16位上的AMBA AXI总线的AWUSER和ARUSER信号,信息可以被编码如下。

例如,包括用户可用信号(AWUSER[10:0]或ARUSER[10:0])的十一(11)个最低有效位的第一子部分(AWUSER_STRIDE或ARUSER_STRIDE)可以用于以字数(8字节)来指定增量突发的增量。

例如,在写入突发的情况下,不同于起始地址的地址可以根据以下公式计算:

ADDRnext=ADDRprevious+(AWUSER[10:0]+1)*8

类似地,在读突发的情况下,不同于起始地址的地址可以根据以下公式计算:

ADDRnext=ADDRprevious+(ARUSER[10:0]+1)*8

因此,例如,在扩展位(AWUSER[10:0]、ARUSER[10:0])绑定到0的情况下,一个或多个实施例可以保持与(经典的)增量突发方案(双字)的向后兼容性。

仍然参考本示例,例如包括用户可用信号(AWUSER[15:11]或ARUSER[15:11])的五(5)个最高有效位的第二子部分(AWUSER_SCHEME或ARUSER_SCHEME)可以用于指定由本地数据存储器控制器163用于映射对应物理存储器位置上的地址的地址映射方案。

例如,第二子部分的一个比特(例如,最高有效比特)可以用于编码关于接入方案与FFT事务相关(例如,AWUSER[15]=1或ARUSER[15]=1)或不相关(例如,AWUSER[15]=0或ARUSER[15]=0)的信息。第二子部分的剩余比特可以用于编码关于应该使用哪种访问方案的信息。下面提供的表II总结了用户可用信号的这种第二子部分中的信息的可能编码。

表二

在一个或多个实施例中,借助于本地控制单元161,除了单次DMA传输之外或替代单次DMA传输,还可以编程并开始整个FFT算法(例如,具有4096个复数点的最大长度)的执行。处理元件160中的读DMA和写DMA 168的编程可以由本地控制单元161内部的寄存器(例如通过APB接口)完成。整个FFT算法的计算可以由本地控制单元161内部的有限状态机(FSM)控制,该有限状态机调度不同的计算阶段并相应地编程DMA控制寄存器。在计算FFT算法期间,DMA控制寄存器可以不通过APB接口被编程。

另外,本地控制单元161可以为每个DMA 168运行循环有限状态机。当被激活时,这样的循环FSM可以通过编程DMA 168的寄存器来使DMA 168以确定的循环深度以循环方式发出突发传输。环路深度可以是可编程的。循环深度可以具有最大统计可配置值(例如,等于三)。例如,当对以3D矩阵排列的数据执行处理时,这样的循环FSM可以有助于获取和/或存储数据。

根据第一示例,现在将参考在FFT算法的计算的特定情况下AXI4-适用的总线来描述本公开的操作的一个或多个实施例。基于存储器的并行FFT算法可能是感兴趣的,例如,用于汽车雷达应用或超宽带(UWB)通信系统,例如基于OFDM的系统。

2n个点上的基-2FFT算法可以分为n个不同的阶段,每个阶段在2n/2P个循环上。在每个时钟周期,单个基-2处理元件160可以获得2个输入并根据以下等式提供两个结果:

1)

2)

其中,因子被称为旋转因子,并且所处理的点之间的N/2指数差对于第一阶段有效。对于以下阶段,可以使用初始N/2差值的右移版本,如图2的数据流图所示。

例如,在处理器16内提供了等于2*P的多个本地数据存储体的情况下(对于基-2算法),输入和输出可以分别从本地数据存储体并行地读取和存储。

对于处理元件160的每个输入,数据读取操作可以由内部读DMA执行。内部写DMA可以对每个输出执行写操作,将其写入对应输入操作数的相同本地存储器位置。因此,这样的就地策略可以有助于减少本地存储器消耗,这有利于长快速傅里叶变换的计算。

因此,在根据本示例的数字信号处理器16中,可能希望提供在本地数据存储器控制器163内实现的无冲突存储体访问方案。通常,要由处理元件160同时访问的操作数可以位于相同的存储器模块中,例如,作为图2所例示的阶段之间的FFT算法数据重新排序的结果。

某些解决方案在本领域是已知的,其提供了以能够避免冲突的方式在存储器模块上分配数据的方法。例如,文献Takala等人,“Conflict-Free Parallel Memory AccessScheme For FFT Processors”,2003年5月25日至28日,曼谷,2003年国际电路和系统研讨会会议录,第IV至IV页,doi:10.1109/ISCAS.2003.1205957提供了一种通用解决方案,其包括具有可变数目的并行基-2S处理元件的基-2S FFT。

在根据本第一示例的一个或多个实施例中,本地互连162可以被选择为AXI4-适用的总线。这可能有助于使用可用于这种开放标准的自动流工具。

依赖于用户的信号ARUSER和AWUSER可以分别用于读和写突发事件事务,以便为本地数据存储器控制器163编码信息,其中,这样的信息可以包括当发出增量/包装突发事件时突发事件的两个连续节拍之间的步幅,以及当发出增量/包装突发事件时在增量/包装突发事件期间要使用的存储体访问方案。

因此,通过以符合标准的方式扩展根据一个或多个实施例的所支持的突发类型,可以将针对处理元件160的输入/输出端口的FFT阶段内的存储器事务(例如,所有存储器事务)(其是输入/输出数据的步幅排列)一起分组为单个突发事务。

因此,数字信号处理器16(在本示例中,FFT协处理器)的本地控制单元161可以被配置为根据要计算的所选FFT算法来控制和编程本地DMA 168,该本地控制单元161可以对每个DMA 168的每个FFT阶段仅一个突发的执行编程。

另外,FFT算法的总等待时间可以通过改进存储器访问来减少。

下面提供的表III总结了根据本示例的用户可用信号(例如AWUSER和ARUSER)中的信息的可能编码。

表三

在说明书的末尾提供的表IV例示了根据实施例的总线扩展的可能用法,以在数字信号处理器16内提供数目P个基-2处理元件160的情况下计算N点快速傅里叶变换,其中N=2n

在表IV中,运算符(>>n)表示存储在循环右移寄存器中的初始值的n个位置的右移。

如表IV所例示的,在每个FFT阶段处用于每个处理元件160的输入和/或输出数据传输可以被分组为单个突发事务。因此,可以简化内部DMA处理,并且可以减少存储器访问等待时间。

在当前考虑的示例中,DMA 168在FFT计算期间的编程可以通过使用简单的循环右移位寄存器来完成,简单循环右移位寄存器可以仅在FFT计算开始时根据所选择的FFT长度初始化,然后在每个阶段开始时更新。

在说明书的末尾提供的表V-1至V-4是根据实施例的总线扩展的可能用法的进一步示例,以借助于数字信号处理器16中的四个基-2处理元件160来计算16点快速傅里叶变换。

因此,在根据一个或多个实施例的计算FFT的当前考虑的示例中,单个FFT级可以由单个扩展的突发而不是多个单个访问来执行,在吞吐量、等待时间、业务量(数据传输效率和性能)方面具有优点。

作为第二示例,现在将参照在计算矩阵乘积的特定情况下,AXI4-适用的总线来描述本公开的操作一个或多个实施例。矩阵乘积(或向量的标量乘积)可以在与例如FIR滤波器、波束成形、神经网络相关的处理中找到应用。

矩阵A(M,N)×B(N,P)=C(M,P)的一般乘积可以通过使用包括R个处理元件的数字信号处理器16(例如,SIMD向量处理器或包括可重构处理元件160的处理器)来计算,并且利用根据一个或多个实施例的总线扩展来访问系统存储器。

在本示例中,每个处理元件160可以包括乘-累加(MAC)单元,并且可以用于计算矩阵A的行和矩阵B的列之间的乘积。为了计算矩阵乘积,使用低阶交错访问方案作为虚拟地址和物理存储器位置之间的映射方法可以证明是更有效的,因为这会导致存储器冲突的减少。交错存储器结构通常由向量处理器采用来有效地处理大型数据结构,如文献G.S.Sohi所例示的,“High-Bandwidth Interleaved Memories for Vector Processors–Asimulation study”,IEEE Transactions on Computers,卷42第1期,1993年1月,第34-44页,doi:10.1109/12.192212。

下面提供的表VI总结了根据矩阵乘积的本示例的用户可用信号(例如AWUSER和ARUSER)中的信息的可能编码。

表VI

在说明书的末尾提供的表VII例示了根据实施例的总线扩展的可能用法,以计算矩阵A(M,N)×B(N,P)=C(M,P)的乘积。

在说明书的末尾提供的表VIII-1至VIII-4是根据实施例的总线扩展的可能用法的进一步示例,以借助于数字信号处理器16中的四个处理元件160计算两个4×4数据矩阵的乘积。

因此,在根据一个或多个实施例的计算矩阵乘积的当前考虑的示例中,行x列级(即,向量的标量乘积)可以由单个扩展的突发而不是多个单个访问(在存储器中没有特定的数据组织)来执行,在吞吐量、等待时间、业务量(数据传输效率和性能)方面具有优势。

因此,一个或多个实施例可以有助于实现具有以下优点中的一个或多个的数字信号处理系统:在诸如矩阵乘法或FFT的数字信号处理算法期间,将由处理元件执行的不同单个存储器访问一起分组为总线上的单个突发事务的可能性;在事务突发中编码要使用的存储体访问方案的可能性;与现有总线标准(例如,AXI4)的兼容性,这是使用总线的可用的可选的用户相关信号的结果;由于改进了内部数据传输的处理,降低了典型的基于总线的数字信号处理器(例如,FFT处理器)的硅复杂性;减少与来自存储器的内部数据传输相关的等待时间,从而改善不同算法(例如,FFT、FIR滤波器、波束成形、神经网络等)的处理时间;适用于数据处理加速器或SIMD向量处理器。

在一个或多个实施例中,电子系统1可以实现为单个硅芯片或管芯中的集成电路(例如,作为片上系统)。可选地,电子系统1可以是包括多个集成电路(例如通过印刷电路板(PCB)互连在一起)的分布式系统。

如本文所例示,一种访问存储器(例如,M0,…,MQ-1)用于读取和/或写入数据可以包括例如在处理电路(例如,160)处生成(例如,168)存储器事务请求,存储器事务请求包括向着存储器中的一组存储器位置的存储器访问请求的突发,存储器位置具有相应存储器地址;经由互连总线(例如162)向耦接到存储器的存储器控制器电路(例如163)发送第一信号和第二信号,第一信号传送存储器事务请求,第二信号传送用于将存储器访问请求的突发映射到存储器中的存储器位置的相应存储器地址的信息;以及根据由第二信号传送的信息,计算(例如163)存储器位置的相应存储器地址并访问存储器位置以从存储器位置读取数据和/或将数据写入存储器位置。

读数据可以旨在由处理电路处理,写数据可以由处理电路产生。

如本文所例示的,互连总线可以包括高级可扩展接口(AXI)总线,并且一种方法可以包括:根据AXI协议对第一信号和第二信号进行编码以用于经由互连总线传输,以及通过AXI总线的AWUSER信道和/或ARUSER信道传输第二信号。

如本文所例示的,一种方法可以包括生成存储器事务请求,存储器事务请求包括存储器访问请求的增量突发或存储器访问请求的包装突发。

如本文所例示的,一种方法可以包括将突发类型数据和突发长度数据包括到由第一信号传送的存储器事务请求中。

如本文所例示的,一种方法可以包括在由第二信号传送的信息中包括步幅值,该步幅值指示存储器访问请求的突发中的两个连续存储器位置(例如,突发的两个连续节拍)之间的数据单元的数目(例如,数据字的数目,每个字例如等于8字节),以及根据步幅值计算存储器位置的相应存储器地址。

如本文所例示的,一种方法可以包括将指示确定的存储器访问方案的数据包括到由第二信号传送的信息中,以及根据指示确定的存储器访问方案的数据访问存储器位置以从存储器位置读取数据和/或将数据写入存储器位置。

如本文所例示的,一种方法可以包括将指示从增量访问方案、低阶交错访问方案和用于计算快速傅里叶变换算法的访问方案(例如,Takala访问方案)中选择的存储器访问方案的数据包括在由第二信号传送的信息中。

如本文所例示的,一种方法可以包括对处理电路编程以在多个后续处理阶段中处理数据,以及在每个处理阶段处生成至少一个存储器事务请求以从存储器位置读取数据和/或将数据写入存储器位置。

如本文所例示的,电路(例如,16)可以包括用于存储数据的存储器、用于处理数据的处理电路、以及耦接到存储器并经由互连总线耦接到处理电路的存储器控制器电路。

如本文所例示的,处理电路可以被配置为生成存储器事务请求,存储器事务请求包括对于存储器中的一组存储器位置的存储器访问请求的相应突发,存储器位置具有相应存储器地址,并且经由互连总线向存储器控制器电路发送第一信号和第二信号,第一信号传送存储器事务请求,第二信号传送用于将存储器访问请求的突发映射到存储器中的存储器位置的相应存储器地址的信息。

如本文所例示的,存储器控制器电路可以被配置为根据由第二信号传送的信息计算存储器位置的相应存储器地址,并访问存储器位置以从存储器位置读取数据以由处理电路处理和/或将由处理电路处理的数据写入存储器位置。

在不损害基本原理的情况下,在不偏离保护范围的情况下,细节和实施例可以相对于仅以示例的方式描述的内容变化,甚至显著地变化。

保护的范围由所附权利要求确定。

虽然已经参照说明性实施例描述了本发明,但该描述并不意在以限制性的意义来解释。通过参考描述,本领域技术人员将清楚说明性实施例以及本发明的其它实施例的各种修改和组合。因此,所附权利要求包括任何这样的修改或实施例。

表IV

表V-1

表V-2

表V-3

表V-4

表VII

表VIII-1

表VIII-2

表VIII-3

表VIII-4

23页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:数据的处理方法、装置、密码设备和存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!