CN103218301B - 用于数字信号处理的存储器访问 - Google Patents

用于数字信号处理的存储器访问 Download PDF

Info

Publication number
CN103218301B
CN103218301B CN201210444130.5A CN201210444130A CN103218301B CN 103218301 B CN103218301 B CN 103218301B CN 201210444130 A CN201210444130 A CN 201210444130A CN 103218301 B CN103218301 B CN 103218301B
Authority
CN
China
Prior art keywords
port
access
memory
memory device
address
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
Application number
CN201210444130.5A
Other languages
English (en)
Other versions
CN103218301A (zh
Inventor
A·J·安德森
G·C·瓦斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nordic Semiconductor ASA
Original Assignee
Imagination Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Imagination Technologies Ltd filed Critical Imagination Technologies Ltd
Publication of CN103218301A publication Critical patent/CN103218301A/zh
Application granted granted Critical
Publication of CN103218301B publication Critical patent/CN103218301B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Static Random-Access Memory (AREA)
  • Memory System (AREA)

Abstract

本文描述了在数字信号处理系统中的存储器访问。在一个示例中,所述数字信号处理系统包括多端口存储器,所述多端口存储器由连接到多个单端口存储器设备的存储器接口构造而成。所述存储器接口提供了访问端口,处理器可以使用所述访问端口来通过使用单个地址空间访问存储在所述单端口存储器设备上的数据。处理器可被连接到数个访问端口,并使用这些访问端口来同时地请求访问在数个不同存储器地址处的数据。所述数字信号处理系统可被配置使得连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。因为使用了质数数量的存储器设备,所以最小化了在不同存储器地址的数据位于相同的单端口存储器设备上的可能性,提高了存储器访问速度。

Description

用于数字信号处理的存储器访问
背景技术
数字信号处理被广泛地使用于各种应用。在数据处理上存在时间约束以使其对于终端用户是有意义或有用的意义上,这些应用中很多是实时的。这样的示例是数字广播流,例如数字电视和数字无线电。数字信号处理系统需要能够足够快地处理和解码实时流,以使数据能如其被接收(不包括缓冲器)一样快地被输出。
数字信号处理系统可以使用多种不同类型的处理元件。例如,这样的系统可以包括数字信号处理器(DSP)、通用处理器和设计用来执行特定信号处理任务的专门的硬件外围设备。这些不同类型的处理元件的每一种都可以使用一个或多个存储器设备来存储数据和/或软件代码。
对于诸如实时数据这样高要求的应用,存储器访问的速度是整个数字信号处理系统性能的关键因素。为了使能快速存储器访问,存储器设备可以被调整来以正在处理的数据类型有效地操作。例如,特定的处理元件可以被连接到专用的存储器设备,该专用的存储器设备针对所述元件使能对于特定类型或结构的数据的快速存储器访问。
但是,使用专用的和专门的存储器设备限制了数字信号处理系统对于不同类型实时数据的灵活以及可配置的能力。例如,世界各地使用的各种不同数字电视和无线电标准通常具有不同结构化的实时数据。因此很难提供这样的数字信号处理系统,其提供针对这些不同类型的数据中的每一种的快速存储器访问,而不用针对每一种数据类型构造不同的数字信号处理系统。
以下描述的实施例不限于解决已知的数字信号处理系统中任何或所有缺点的实现。
发明内容
本发明内容被提供来以简化的形式介绍所选的概念,所述概念在下面具体实施方式中进一步地详细描述。本发明内容并不意图标识出所要求保护的主题的关键特征或必要特征,也并不意图用来帮助确定所要求保护的主题的范围。
本文描述了在数字信号处理系统中的存储器访问。在一个示例中,所述数字信号处理系统包括多端口存储器,所述多端口存储器由连接到多个单端口存储器设备的存储器接口构造而成。所述存储器接口提供了访问端口,处理器可以使用所述访问端口来通过使用单个地址空间访问存储在所述单端口存储器设备上的数据。处理器可被连接到数个访问端口,并使用这些访问端口来同时地请求访问在数个不同存储器地址处的数据。所述数字信号处理系统可被配置使得连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。因为使用了质数数量的存储器设备,所以最小化了在不同存储器地址的数据在相同的单端口存储器设备上的可能性,提高了存储器访问速度。
根据一个方面,提供了一种数字信号处理系统,包括:多个单端口存储器设备;存储器接口,连接到所述多个单端口存储器设备并包括多个访问端口,其中,所述存储器接口被安排来使用单个地址空间通过每一个访问端口来提供对所述多个单端口存储器设备的访问;以及处理器,具有至所述多个访问端口中的至少两个访问端口的数据连接,并被安排来当执行操作时,从每一个所述数据连接基本同时地访问来自所述单个地址空间的不同的存储器地址,其中,连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。
根据另一方面,提供了一种在数字信号处理系统中访问数据的方法,包括:在存储器接口处从处理器接收存储器访问请求,所述请求包括在单个地址空间中的存储器地址;从所述存储器地址生成:根据所述存储器地址的、连接到所述存储器接口的多个单端口存储器设备中的一个单端口存储器设备的标识符;和在所述一个单端口存储器设备中的第二存储器地址;访问位于所述一个单端口存储器中的所述第二存储器地址处的数据,其中,生成步骤包括使用连接到所述存储器接口的单端口存储器设备的总数执行除操作,并且其中,连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。
本文描述的方法可以由在有形存储介质上的机器可读形式的软件来执行,所述软件例如是计算机程序的形式,所述计算机程序包括当所述程序在计算机上运行时并且所述计算机程序可以体现在计算机可读介质上的情况下,适于执行本文描述的任何方法的所有步骤的计算机程序代码模块。有形的(或非暂态的)存储介质的示例包括盘、拇指驱动器、存储卡等并且不包括传播的信号。所述软件可以适用于在并行处理器或串行处理器中执行,以使得所述方法的步骤可以以任何适当的顺序执行,或同时地执行。
这表明固件和和软件是有价值的、可单独交易的商品。其意图是涵盖运行于或控制“哑的”(dumb)或标准的硬件来执行期望功能的软件。其还意图涵盖当用于设计硅芯片,或用于配置通用可编程芯片来执行期望功能时“描述”或定义硬件配置的软件,例如DHL(硬件描述语言)软件。
如对于本领域技术人员来说显而易见的,上述的特征可以进行适当的组合,并且可以与示例中的任何方面进行组合。
附图说明
实施例将参考下列附图以示例方式进行描述,其中:
图1示出了由多个单端口存储器设备构造的多端口存储器设备;
图2示出了由若干数量的单端口存储器设备构造的多端口存储器的编址方案,其中所述数量是二的幂;
图3示出了由质数数量的单端口存储器设备构造的多端口存储器的编址方案;
图4示出了对于质数数量的存储器设备的地址计算方法的流程图;以及
图5示出了使用多端口存储器作为共享存储器空间的可配置的数字信号处理系统。
贯穿于附图中使用的共同的标号指示类似的特征。
具体实施方式
实施例在下文中仅作为示例被描述。这些示例表示本申请人目前已知的、将所述实施例付诸于实践的最佳方式,但是这些方式并非可以实现所述实施例的仅有的方式。本说明书阐述了所述示例的功能以及用于构造和操作所述示例的步骤序列。但是,相同的或等同的功能和序列可以通过不同的示例实现。
下面描述的是可配置的数字信号处理系统,其使数字信号处理器、通用处理器和专门的硬件外围设备的功能能够按需组合在一起,来实现特定的信号处理任务。例如,可配置的数字信号处理系统能被配置来以不同类型的实时数据标准进行操作。处理元件(例如,使用单个指令)同时对数个不同存储器地址处的数据进行操作在数字信号处理系统中是常见的操作。为了针对这些操作使能快速存储器访问,使用了多端口存储器设备,其中处理元件能够访问多端口存储器设备的数个端口。多端口存储器设备旨在使能从不同的端口并发访问存储器。但是在实践中,多端口存储器设备由多个单独的物理单端口存储器设备构造而成。在这种情景下,只有在不同端口的并发访问请求与不同的物理单端口存储器设备相关时,并发访问才是可能的,否则会发生争用。
在提前知道并发存储器访问结构的情况下,例如如果并发请求的存储器地址之间的间隔是固定的,多端口存储器设备的设计能减轻争用。但是,在可配置的数字信号处理系统情况下则不是这种情况,因为不同的标准可能使用不同的存储器访问结构。为避免这种情况,多端口存储器设备由质数数量的物理单端口存储器设备构造而成。如下面描述的,当执行不同类型的多数据操作时,这最小化争用的可能性。
多端口设备也能被扩展,使得其提供足够数量的端口来使系统所有不同的处理元件能访问多端口存储器。这使可配置的数字信号处理系统能使用不同处理元件共享的公共存储器空间。在不使用公共存储器空间的情况下,每一个处理元件需要被提供其自有的、专用的存储器。在可配置的数字信号处理系统支持多个标准的情况下,这意味着需要提供给每一个单独的处理元件足够的存储器以适用于要求该元件最大数量的存储的标准。因为不同的标准对用于每一个处理元件的存储器有不同的需求,所以对于任何给定的标准,设计每一个处理元件的存储器大小使其适用于最大情况会导致大量的存储器(并因此硅片面积)浪费。将处理元件的公共的、共享存储器空间的使用与处理元件的不同存储器需求融合在一起,意味着公共存储器仅需大小设计为适应于所有的处理元件上具有最大的总存储器要求的标准。
首先参考图1,图1示出了多端口存储器设备102的示意图。多端口存储器设备102包括多个单端口存储器设备104。每一个单端口存储器设备104是单独的存储器设备,提供一个端口用于访问存储在该存储器设备上的数据。在一个示例中,单端口存储器设备104可以是物理上独立的,但是可以形成在公共的半导体衬底上。在可选示例中,单端口存储器设备104可以形成在单独的硅片上。每一个单端口存储器设备104可以是任何适当类型的随机存取存储器(RAM)(例如(但不限于)静态RAM(SRAM)和动态RAM(DRAM)),或可写的ROM(例如EEPROM和闪速存储器),或它们的任何混合。
多端口存储器设备102提供多个访问端口106,所述多个访问端口106给外部设备提供对存储在多端口存储器设备中的数据的访问。例如,可配置的数字信号处理系统的各种不同处理元件可以被连接到端口106,这在下面参考图5更详细描述。图1中的示例示出了被连接到四个端口106的DSP108,和被连接到两个端口106的通用控制处理器110。但是,这仅仅是说明性的,不同数量或不同类型的处理元件可以被连接到不同数量的端口。
注意,提供的访问端口的数量可以与单端口存储器设备的数量不同。在一些示例中,提供的访问端口的数量少于单端口存储器设备的数量。在一些端口被频繁使用的其他示例中,提供的访问端口的数量大于单端口存储器设备的数量。还需要注意的是,每个时钟周期DSP进行的N个访问只有在物理存储器设备的数量大于或等于N时才能避免争用。
虽然多端口存储器设备102由多个单独的单端口存储器设备104构造而成,但是在所有单端口存储器设备104上可用的总存储空间在端口处作为单个地址空间呈现给外部设备。换句话说,访问端口的外部设备不知道总存储空间是如何在单端口存储器设备间划分的,并且外部设备所见的仅仅是具有连续地址的单个存储器块。
在单个地址空间和在单独的单端口存储器设备中的地址之间的转换是由存储器接口112来执行的。存储器接口112用作多个访问端口106和多个单端口存储器设备104之间的接口。存储器接口112被配置为管理在访问端口106接收的请求(读或写数据),确定请求与哪个单端口存储器设备相关,并提供对该单端口存储器设备中的数据的访问。存储器接口112也可以被称为交叉开关(crossbar),因为存储器接口112允许从任何端口106访问任何的单端口存储器设备104。
多端口存储器设备102被配置为通过每一个访问端口106,独立地提供对存储在单端口存储器设备104上数据的大致并发的访问。换句话说,只要有可能,在两个(或更多)不同访问端口同时接收的请求就可以同时得到服务。但是,这仅在不同端口上的访问请求涉及不同单端口存储器设备时才能实现。
例如,参考图1,如果在“端口0”上接收到涉及存储在“存储器2”上的数据的访问请求,并且与此并发地(即,在同一时钟周期内),在“端口2”上接收到涉及存储在“存储器3”上的数据的访问请求,则存储器接口112可以同时服务这二者请求。这是因为数据能够从单独的单端口存储器设备独立地读取(或写入,视情况而定)。但是,如果上面的来自“端口2”的访问请求也涉及“存储器2”上存储的数据,则发生争用。这是因为单独的单端口存储器设备在每一个时钟周期内仅能提供对在该单端口存储器设备中的单个存储器地址的访问。因此,如果在同一时间接收的两个请求涉及一个单端口存储器设备,则这些请求中的一个在可以得到服务之前,必须等待另一请求首先完成。
存储器接口112包括多个端口缓冲器114,使得每一个访问端口具有相关的端口缓冲器。端口缓冲器114使请求在各自的端口排成队列。类似地,存储器接口112也包括多个存储器设备缓冲器116,使得每一个单端口存储器设备具有相关的缓冲器。存储器设备缓冲器116使等待其各自的单端口存储器设备的请求排成队列。在一些示例中,端口缓冲器114和存储器设备缓冲器116可以是先进先出(FIFO)形式的缓冲器。使用FIFO缓冲器确保请求按照在访问端口接收它们的顺序得到服务。FIFO缓冲器允许当发生争用时,使请求被排成队列。
当图1示出的多端口存储器设备被用于数字信号处理系统时,很多对存储在存储器设备上的数据执行的操作包含多个并发的存储器访问请求。例如,DSP设备(例如DSP108)可以是单指令、多数据(SIMD)处理器。SIMD处理器被配置为有效地对多个数据项同时执行相同的操作。由SIMD处理器执行的操作类型的示例包括快速傅里叶变换(FFT)和多速率滤波。为尽可能有效地执行这些操作,SIMD处理器需要同时访问在不同存储器地址处的数据。多端口存储器设备102通过为多个数据项中的每一个提供端口来使之实现。
例如,如图1所示,DSP108(其可以是SIMD处理器)被连接到四个访问端口106。这使DSP108能够同时发出四个存储器访问请求,每一个请求发往不同的端口,以例如用于对四个数据项的一个SIMD操作。如果没有发生争用,则DSP108可以同时使全部四个请求得到服务,使执行的操作没有延迟。但是,如果争用确实发生,则当解决存储器访问争用时,操作被延迟。因此,操作被执行的速度依赖于在不同端口上接收的不同存储器访问请求是涉及相同还是不同的单独单端口存储器设备。
争用发生的可能性与用于构成多端口存储器的单端口存储器设备104的数量相关。一个选择是单端口存储器设备的总数量是二的幂。可以这样做是因为这给出了在单个地址空间和单独单端口存储器设备的地址之间的非常简单的地址转换。这参考图2进行说明。
图2示出了由总共四个单端口存储器设备(即总数是二的幂)构成的多端口存储器的示例,其中所述四个单端口存储器设备用存储器0202、存储器1204、存储器2206,和存储器3208表示。在这个说明性示例中,每一个单端口存储器保持8个位置(显然真实的系统具有大得多的存储器,但出于简洁目的在此使用这个示例)。这给出了多端口存储器设备的总存储容量为4×8=32个位置。每一个单端口存储器设备中的8个位置被从0(二进制000)到7(二进制111)连续地编址。
存储器接口112被安排来提供单个地址空间,使得连续的地址依次位于每一个单端口存储器,并在每一行末尾卷回第一存储器。换句话说,位置0保持在存储器0202中,位置1保持在存储器1204中,位置2保持在存储器2206中,位置3保持在存储器3208中,位置4返回到存储器0202,以此类推。
在图2中四个单端口存储器设备下方示出了用于多端口存储器的单个地址空间210。单个地址空间210被分成多列,其中每一列都反映了这些地址与哪个单端口存储器相关。例如,列212中的地址0、4、8、12、16、20、24、28与存储器0202相关,列214中的地址1、5、9、13、17、21、25、29与存储器1204相关,列216中的地址2、6、10、14、18、22、26、30与存储器2206相关,和列218中的地址3、7、11、15、19、23、27、31与存储器3208相关。这些列示出了在单个地址空间的十进制存储器地址和其等效的二进制表示二者。
由此可见,例如在单个地址空间的存储器地址14与存储器2206相关(因其在列216中),并在存储器2206中的存储器地址3处(列216从零开始向下计数)。通过使用单端口存储器设备的为二的幂的总数,从二进制地址非常简单直接地执行该计算。例如,在单个地址空间中的存储器地址14的二进制表示为01110。与之相关的单端口存储器的标识可以通过读取两个最低有效地址比特(二进制10=十进制2)确定。在这个单端口存储器中的存储器地址可以通过读取三个最高有效地址比特(二进制011=十进制3)确定。
因此,使用为二的幂的单端口存储器设备的总数,提供了非常简单的地址转换方案。但是,使用二的幂作为单端口存储器设备的数量可能导致严重的争用,如下面所述。
当从SIMD处理器接收多个同时的请求时,这些请求中的存储器地址之间通常存在固定关系。例如根据一些预定关系,存储器地址经常被规则地隔开。例如SIMD处理器可以在间隔M个存储器位置的不同存储器地址处作出K个同时的请求,在这种情况下关系为:
Address(k)=base+k×M(k=0到k-1)
其中Address(k)是针对请求k的在单个地址空间中的存储器地址,和基址(base)是单个地址空间的起始地址。地址之间的间隔M可以取任何值并可以取决于正在执行的操作。但是,通常可以取值为1,或二的幂(在FFT操作中常见)或小的整数值(在多速率滤波操作中常见)。
如果存储器地址之间的间隔M为1,则图2示出的结构在作出四个(或更少)同时的访问请求时工作良好。例如,如果基址的起始地址为9并且M=1,则对于四个请求(k=4),所请求的地址是9、10、11和12。这些地址中的每一个位于不同的单端口存储器设备上,因此这些请求可以同时得到服务而没有争用。
但是,如果存储器地址之间的间隔M是二的幂,则图2中示出的结构导致严重的争用。例如,如果基址的起始地址还是9并且M=2,则对于四个请求(K=4),所请求的地址是9、11、13和15。地址9和13二者位于相同的单端口存储器(如列214所示),地址11和15同样也这样(如列218所示)。这导致针对存储器1204和存储器3208二者的争用,意味着需要多于一个的周期来服务访问请求。对于二的更高次幂,比如4、8和16,情况更糟,因为这些会导致相同的单端口存储器设备保持所有的所请求地址,这进一步增加了争用延迟。
因此,如上面所示,使用二的幂作为单端口存储器设备的数量给出了简单的寻址,但在地址之间的某些间隔有争用问题。如果地址间隔提前已知并且是固定的(例如,如上所述的1),则图2示出的结构能够有效工作。但是,在能够与各种不同类型的操作和数据一起使用的可配置的数字信号处理系统的情况下,地址间隔不是固定的和提前已知的。这意味着争用可能频繁发生,特别是因为为二的幂的间隔M对于各种DSP处理操作(例如FFT操作)是非常常见的。
现参考图3,图3示出了由质数数量的单端口存储器设备构成的多端口存储器的示例。在这个特定的示例中,有五个单端口存储器设备,但是可以使用任何大于或等于三的质数。
五个单端口存储器设备用存储器0202、存储器1204、存储器2206、存储器3208和存储器4302表示。在这个说明性示例中,每个单端口存储器还是保持8个位置,这给出了多端口存储器设备的总存储容量5×8=40个位置。在每一个单端口存储器设备中的8个位置还是从0(二进制000)到7(二进制111)被连续编址。
图3中五个单端口存储器设备下方示出了用于多端口存储器的单个地址空间304。单个地址空间304被分成列,其中每一列都反映了这些地址与哪个单端口存储器相关。例如,列306中的地址0、5、10、15、20、25、30、35与存储器0202相关,列308中的地址1、6、11、16、21、26、31、36与存储器1204相关,列310中的地址2、7、12、17、22、27、32、37与存储器2206相关,列312中的地址3、8、13、18、23、28、33、38与存储器3208相关,和列314中的地址4、9、14、19、24、29、34、39与存储器4302相关。这些列示出了单个地址空间中的十进制存储器地址和其等效的二进制表示二者。由此可见,例如,在单个地址空间中的存储器地址14与存储器4302相关(因其在列314),并且在存储器4302中的存储器地址2处(列314从零开始向下计数)。
使用大于或等于三的质数作为单端口存储器设备的数量显著地减少了争用的可能性。例如,在同时请求的数量k=4(同上)的情况下,并且如果间隔M为1,则没有争用发生(例如,如果基地址是9,则访问的地址是9、10、11和12,可以看到这些地址在不同的单端口存储器设备上)。类似地,如果间隔M为2,则没有争用发生(例如,如果基地址是9,则访问的地址是9、11、13和15,可以看到这些地址在不同的单端口存储器设备上)。同样地,对于为二的任何其他幂的间隔M(例如,4、8或16),不存在争用。
实际上,对于所有的规则间隔的访问,争用完全避免,除非间隔等于该质数(例如,图3的示例中为五)。因此,当使用基于质数的存储器结构时,争用变得发生的可能性要小得多。通过选择大于DSP操作(例如多速率滤波)常用的任何小的整数间隔的质数,甚至可以进一步地减少争用的可能性。在一个示例中,可使用大于或等于十三的质数,已发现其对于现实中的DSP数据很好地执行。
为了执行在单个地址空间和单端口存储器设备之间的地址转换,执行图4所示的过程。地址转换不能简单地通过从存储器地址读取所选的比特来执行,如以上图3中的情况。然而,可以使用有效的技术。
图4示出了用于质数数量的存储器设备的地址计算方法的流程图。这可由上面描述的存储器接口112执行。在步骤402,存储器访问请求在端口被接收,该存储器访问请求包括在单个地址空间的存储器地址。其他请求也可以与此并发地在其他端口被接收并且以相同的方式转换,但出于简单的目的,图4中只考虑了一个访问请求。使用单端口存储器设备的总数(即所述质数)对接收的存储器地址执行除操作。该除操作具有两个部分。一部分在步骤404中产生对应所请求的存储器地址的单端口存储器设备的标识。另一部分在步骤406产生对应所请求的存储器地址的在单端口存储器设备中的存储器地址。
在步骤404中产生对应所请求的存储器地址的单端口存储器设备的标识,是通过确定在单个地址空间中的所请求的存储器地址和单端口存储器的总数的模来执行的。换句话说,找到所请求的存储器地址和所述质数相除的余数。例如,参考图3,如果在端口接收的所请求的存储器地址是18,则18÷5的余数是3。如可以看到的,存储器地址18对应于存储器3208,因其位于列312。
在步骤406中产生所标识的单端口存储器中的存储器地址,是通过计算在单个地址空间中的所请求的存储器地址和单端口存储器的总数的商来执行的。换句话说,找到所请求的存储器地址和所述质数相除结果的整数部分。例如,再次参考图3,如果在端口接收的所请求的存储器地址是18,则18÷5是3.6,因而商是3。如可以看到的,存储器地址18位于列312中的存储器地址3处(从零向下计数)。
一旦在步骤404找到单端口存储器设备的标识,并且在步骤406找到在该单端口存储器设备中的存储器地址,则存储器接口112可以在步骤408根据请求而访问数据。
虽然上面描述的操作比从二进制地址简单地读取比特更复杂,但这仍然可以用硬件有效地实现,使得性能在转换过程中不受阻碍。无论如何,因没有争用而使性能得到的改善对地址变换的复杂性的增加进行了更多的补偿。
因此,上面描述的使用质数数量的单端口存储器设备的多端口存储器结构,提供了有效的方式来提高数字信号处理系统中存储器访问的性能。这对于其中不同类型和结构的数据可以被相同系统处理的可配置的数字信号处理系统的情况尤其如此。使用质数数量的单端口存储器设备最小化了所有存储器地址模式的争用风险,除非间隔与所述质数相匹配。
除了为SIMD操作提供快速存储器访问之外,上面描述的多端口存储器结构也可以被扩展并更广泛地用于可配置的数字信号处理系统。多端口存储器提供的访问端口106的数量可被扩展,以使得数字信号处理系统中数个不同的处理元件全都能访问存储器,因此多端口存储器设备用作公共的共享存储器空间。
图5示出了将多端口存储器设备用作公共的存储器空间的数字信号处理系统的示例。该系统包括用于存储数据的多端口存储器设备102。在图5的示例中,多端口存储器设备102被用来存储正在被处理的数据和用于运行数字信号处理系统的配置数据/代码二者。
连接到多端口存储器设备102的是一个或多个数字信号处理器502。DSP502是可编程来对数据执行比如快速傅里叶变换、滤波和均衡的信号处理计算的处理器。图1中的DSP108是这种DSP的示例。一个或多个DSP502可以是如上所述的同时访问多于一个数据项的SIMD处理器。当不考虑通用处理器时,DSP502比下面描述的硬件外围设备更具可配置性。DSP502运行程序代码/指令来从多端口存储器设备102读取数据,执行对该数据的信号处理操作,以及将数据写回到多端口存储器设备102。
连接到多端口存储器设备102的还有存储器访问控制器504,所述存储器访问控制器504为多个硬件外围设备506提供对多端口存储器设备102的访问。在一些示例中,存储器访问控制器504可以是直接存储器访问(DMA)控制器的形式。存储器访问控制器504提供了多个存储器访问通道(例如,DMA通道),所述多个存储器访问通道能被硬件外围设备506使用来使能从多端口存储器设备102读取数据或写入数据到多端口存储器设备102。
硬件外围设备506是专门的、专用硬件块,其被配置来执行特定的信号处理任务。例如,一个硬件外围设备可以是专门的维特比解码块,而另一硬件外围设备可以是专门的解交织块。硬件外围设备也可称为加速器。这些硬件外围设备中的每一个独立于彼此操作。硬件外围设备可以充分地可配置来被提供特定于其任务的操作参数,但是它们并非充分地可配置来改变它们的任务(例如,维特比块不能被重配置为解交织块)。因此,与DSP502相比,硬件外围设备更专门用于特定的任务。但是,硬件外围设备被安排来以非常快速和有效的方式执行其专门的任务。
连接到多端口存储器设备102的还有通用控制处理器110(也如图1所示),所述通用控制处理器110能被用来初始化、配置和控制数字信号处理系统的操作。
上面描述的数字信号处理系统提供了信号处理操作的灵活性。例如,系统能被安排来运行使得不同的DSP502和硬件外围设备506以任何期望的配置或序列处理数据。每一个硬件外围设备或DSP可以操作一个或多个数据块(本文中也称为数据缓冲器),并产生和存储一个或多个系统其他元件使用的数据缓冲器,所述数据块由系统的其他部分提供并存储在多端口存储器设备102提供的公共存储器空间中。这使数字信号处理系统能用于各种不同类型的信号,例如用于不同的广播/电信标准。
多端口存储器设备102可被配置使得为每一个DSP502、存储器访问控制器504和通用控制处理器110提供访问端口。这在图1中部分地示出,图1示出了一个DSP108和通用控制处理器110分别连接到多端口存储器设备102的端口(另外的处理元件也可以连接到多端口存储器设备102的另外的端口,这在图1中没有示出)。为数字信号处理系统的处理元件提供端口使它们能独立地访问在存储器上的数据。在没有发生针对单端口存储器设备中的一个的争用时,这也可以并发地执行。
使用多端口存储器设备102提供的公共存储器空间也使数字信号处理系统置备的存储器存储的总量得到减少。在不使用公共存储器空间的情况下,每一个处理元件被提供其自有的、专用存储器。例如,每一个DSP502可以具有其自有的工作空间存储器,通用控制处理器110具有另一单独存储器用来存储执行代码和数据,硬件外围设备506具有单独的输入和输出缓冲器,并且一个或多个额外的存储器可以被用来在不同处理元件之间交换数据。
因为数字信号处理系统是可配置以与多个不同的标准一起使用,所以这些单独的存储器中的每一个都需要分别地设计大小以适用于对任何给定的存储器具有最大要求的特定标准。换句话说,DSP存储器需要足够大以适应对DSP存储器有最大要求的标准。类似地,硬件外围设备缓冲器需要足够大以适应对硬件外围设备缓冲器有最高要求的标准(这可能与有高DSP存储器要求的标准不同)。这样的结果就是大量的存储器通常未被一些处理元件所使用。
但是,如果多端口存储器设备102提供公共存储器空间,则作为一个整体的不同标准的存储器需求可以被考虑(而不是考虑它们对系统中单独元件的需求)。换句话说,多端口存储器设备102需要足够大以适应这些标准的最大总体的、总存储器要求。这起到了平均标准之间不同存储器需求的作用(例如,一个标准可能需要更多的DSP存储器,但是只需要更小的缓冲器,而另一标准可能与此相反)。这起到了需要显著更低量的总体存储器的作用,并因此节省了硅片面积。
多端口存储器设备102提供的公共存储器空间因此能保持系统使用的所有不同类型的数据,例如数字信号处理器工作空间,用于通用控制处理器的执行代码和数据,用于一个或多个硬件外围设备的输入和输出缓冲器,用于在处理器间交换数据的一个或多个缓冲器,以及用于数字信号处理系统的其他配置数据。
当多端口存储器设备102作为公共存储器空间运行时,更多的处理元件可以尝试同时访问存储器。为了防止这导致对存储器的大量争用(其会降低系统性能),提供优先级机制。优先级机制可以分配优先级值给多端口存储器设备102的每一个访问端口,使得如果两个访问请求同时被接收而导致争用,则有更高优先级值的端口处接收的请求会首先得到服务,在其他端口的请求等待直到该请求结束。
在一个示例中,分配给端口的优先级值可以基于端口在多端口存储器结构中的位置。例如,每一个端口被给予从零到n-1的标识,其中n是存在的端口的数量(如图1所示)。优先级机制则于是可以基于端口的标识,使得有最低级(或可选地,最高级)标识的端口在争用的情况下被给予优先级。这提供了可以非常有效的和简单的在存储器接口实现的优先级机制,并且所述优先级机制不需要大量的运行时间来解决。在一个示例中,SIMD处理器可以被连接到最低编号的端口,使得这些SIMD处理器相对于系统其它元件具有优先的存储器访问。可选地,可以例如通过写入控制寄存器来配置每一个端口的优先级,使得连接到大部分时间执行关键操作的处理元件的端口接收最高优先级。
在一些示例中,通过各种技术可以进一步减轻由争用引起的性能损失,所述各种技术例如有:使读请求的优先级超过写请求,和引入一些管道缓冲到存储器接口以使得在一个时钟周期内遭受争用的请求可以在接下来的时钟周期得到服务而不会使进行请求的设备停止其操作。在一些示例中,通过使能快速返回从存储器位置正在读取的、由之前写访问写入的数据,存储器访问性能还可以得到增强。这种增强通过消除物理地读取存储器位置的需要来提高性能,并能够减少延迟。
本文中使用的术语“处理器”和“计算机”是指任何具有处理能力使得其可以运行指令的设备。本领域技术人员将认识到这样的处理能力被结合到很多不同的设备中,因而术语“计算机”包括机顶盒、多媒体播放器、数字无线电、PC、服务器、移动电话、个人数字助理和很多其他设备。
本领域技术人员将认识到用来存储程序指令或数据的存储设备可以被跨网络地分布。例如,远程计算机可以存储描述为软件的进程的示例。本地或终端计算机可以访问该远程计算机并下载该软件的一部分或全部来运行程序。可选地,本地计算机可以按照需要下载该软件的片段,或在本地终端运行一些软件指令并在远程计算机(或计算机网络)运行一些指令。本领域技术人员还将认识到,通过利用本领域技术人员所知的常规技术,全部或部分的软件指令可以由专用电路、可编程逻辑阵列等来实现。
如对本领域技术人员而言将显而易见的,在不失去所要求的效果的情况下,本文给出的任何范围或设备值可以被扩展或者改变。
将理解,上面描述的益处和优点可以涉及一个实施例或可以涉及数个实施例。这些实施例并不限于解决任何或所有所述问题的那些实施例,或具有任何或所有所述益处和优点的那些实施例。
对“一”项目的任何引用是指这些项目中的一个或多个。本文中使用的措辞“包括”意味着包括所标识的方法块或元件,但这些块或元件不包括穷尽的列表,并且方法或装置可以包含额外的块或元件。
本文描述的方法的步骤可以以任何适当的顺序执行,或在适当情况下同时地执行。此外,在不偏离本文描述的主题的精神和范围的情况下,单独的块可以从任何方法中删除。在不失去所要求的效果的情况下,上面描述的任何示例的方面可以与描述的任何其他示例的方面相结合来形成进一步的示例。
将理解,上面对优选实施例的描述仅是作为示例给出的,并且本领域技术人员可以做出各种修改。虽然上面描述的各种实施例有一定程度的特定性,或参考了一个或多个单独的实施例,但是本领域技术人员可以对所公开的实施例做出许多改变,而不偏离这些示例的精神和范围。

Claims (15)

1.一种数字信号处理系统,包括:
多个单端口存储器设备(104);
存储器接口(112),具有到所述多个单端口存储器设备中的每一个的单独连接并包括多个访问端口(106),其中,所述存储器接口被安排来使用单个地址空间通过每一个访问端口来提供对存储在所述多个单端口存储器设备上的数据的读取访问;以及
多个不同的处理元件(108,110,502),所述多个不同的处理元件包括数字信号处理器(108,502)和至少一个其它处理元件(110,506),所述数字信号处理器(108,502)具有至所述多个访问端口中的至少两个访问端口的数据连接,并被安排来当执行操作时,从每一个所述数据连接基本同时地从来自所述单个地址空间的不同的存储器地址读取数据,并且所述至少一个其它处理元件(110,506)具有至所述多个访问端口中的一个或多个访问端口的数据连接,并且被安排为使用所述单个地址空间读取存储在所述多个单端口存储器设备中的一个或多个单端口存储器设备上的数据,
其中,连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。
2.根据权利要求1所述的数字信号处理系统,其中,所述质数大于或等于五或者大于或等于十三。
3.根据权利要求1或者2所述的数字信号处理系统,其中,由所述处理器执行的所述操作是快速傅里叶变换操作或多速率滤波操作。
4.根据权利要求1或者2所述的数字信号处理系统,其中,被基本同时访问的所述不同的存储器地址是根据预定的关系而被规则地间隔开的。
5.根据权利要求4所述的数字信号处理系统,其中,所述预定的关系使所述不同的存储器地址规则地间隔开一值:一或二的幂。
6.根据权利要求1或者2所述的数字信号处理系统,其中,所述至少一个其它处理元件包括控制处理器和硬件外围设备中的至少一个。
7.根据权利要求1或者2所述的数字信号处理系统,还包括存储器访问控制器,并且其中,所述至少一个其它处理元件包括经由所述存储器访问控制器连接到所述访问端口中的一个或多个的多个硬件外围。
8.根据权利要求1或者2所述的数字信号处理系统,其中,所述多个访问端口中的每一个访问端口被分配一优先级值,并且所述存储器接口被安排来在争用的情况下根据各自的优先级值,使第一访问端口处接收的访问请求优先于第二访问端口处接收的访问请求。
9.根据权利要求1或者2所述的数字信号处理系统,其中,所述多个访问端口中的每一个访问端口被分配一序列标识符,并且所述存储器接口被安排来在争用的情况下基于各自的序列标识符,使第一访问端口处接收的访问请求优先于第二访问端口处接收的访问请求。
10.根据权利要求1或者2所述的数字信号处理系统,其中,由所述存储器接口提供的访问端口的总数小于连接到所述存储器接口的单端口存储器设备的总数。
11.一种软件定义的无线电接收机,包括如权利要求1至10中任何一项所述的数字信号处理系统。
12.一种在数字信号处理系统中访问数据的方法,包括:
在具有到多个单端口存储器设备中的每一个的单独连接并且包括多个访问端口的存储器接口处从多个不同的处理元件接收存储器访问请求,每个请求包括在单个地址空间中的存储器地址,所述存储器接口被安排来使用所述单个地址空间通过每一个访问端口来提供对存储在所述多个单端口存储器设备上的数据的读取访问,并且所述多个不同的处理元件包括数字信号处理器(108,502)和至少一个其它处理元件(110,506),所述数字信号处理器(108,502)具有至所述多个访问端口中的至少两个访问端口的数据连接,并被安排来当执行操作时,从每一个所述数据连接基本同时地从来自所述单个地址空间的不同的存储器地址读取数据,并且所述至少一个其它处理元件(110,506)具有至所述多个访问端口中的一个或多个访问端口的数据连接,并被安排为使用所述单个地址空间读取存储在所述多个单端口存储器设备中的一个或多个单端口存储器设备上的数据;并且
对于每个请求:
从所述存储器地址生成:根据所述存储器地址的、连接到所述存储器接口的多个单端口存储器设备中的一个单端口存储器设备的标识符;和在所述一个单端口存储器设备中的第二存储器地址;
访问位于所述一个单端口存储器中的所述第二存储器地址处的数据,
其中,生成步骤包括使用连接到所述存储器接口的单端口存储器设备的总数执行除操作,并且其中,连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。
13.根据权利要求12所述的方法,其中,生成一个单端口存储器设备的标识符的步骤包括确定在所述单个地址空间中的所述存储器地址和连接到所述存储器接口的单端口存储器设备的总数的模。
14.根据权利要求12或13所述的方法,其中,生成所述第二存储器地址的步骤包括确定在所述单个地址空间中的所述存储器地址和连接到所述存储器接口的单端口存储器设备的总数的商。
15.一种在数字信号处理系统中访问数据的装置,包括:
用于在具有到多个单端口存储器设备中的每一个的单独连接并且包括多个访问端口的存储器接口处从多个不同的处理元件接收存储器访问请求的单元,每个请求包括在单个地址空间中的存储器地址,所述存储器接口被安排来使用所述单个地址空间通过每一个访问端口来提供对存储在所述多个单端口存储器设备上的数据的读取访问,并且所述多个不同的处理元件包括数字信号处理器(108,502)和至少一个其它处理元件(110,506),所述数字信号处理器(108,502)具有至所述多个访问端口中的至少两个访问端口的数据连接,并被安排来当执行操作时,从每一个所述数据连接基本同时地从来自所述单个地址空间的不同的存储器地址读取数据,并且所述至少一个其它处理元件(110,506)具有至所述多个访问端口中的一个或多个访问端口的数据连接,并被安排为使用所述单个地址空间读取存储在所述多个单端口存储器设备中的一个或多个单端口存储器设备上的数据;以及
用于对于每个请求执行下列操作的单元:
从所述存储器地址生成:根据所述存储器地址的、连接到所述存储器接口的多个单端口存储器设备中的一个单端口存储器设备的标识符;和在所述一个单端口存储器设备中的第二存储器地址;
访问位于所述一个单端口存储器中的所述第二存储器地址处的数据,
其中,用于生成的单元包括使用连接到所述存储器接口的单端口存储器设备的总数执行除操作的单元,并且其中,连接到所述存储器接口的单端口存储器设备的总数是大于或等于三的质数。
CN201210444130.5A 2011-11-09 2012-11-08 用于数字信号处理的存储器访问 Active CN103218301B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1119327.3 2011-11-09
GB1119327.3A GB2496396B (en) 2011-11-09 2011-11-09 Memory access for digital signal processing

Publications (2)

Publication Number Publication Date
CN103218301A CN103218301A (zh) 2013-07-24
CN103218301B true CN103218301B (zh) 2016-10-26

Family

ID=45421495

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210444130.5A Active CN103218301B (zh) 2011-11-09 2012-11-08 用于数字信号处理的存储器访问

Country Status (6)

Country Link
US (1) US8935486B2 (zh)
EP (1) EP2592562B1 (zh)
JP (1) JP5752666B2 (zh)
CN (1) CN103218301B (zh)
GB (1) GB2496396B (zh)
TW (1) TWI521352B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690494B2 (en) * 2015-07-21 2017-06-27 Qualcomm Incorporated Managing concurrent access to multiple storage bank domains by multiple interfaces
CN109271333B (zh) * 2017-07-17 2022-03-01 深圳市中兴微电子技术有限公司 一种sram控制方法及控制器、控制系统
FR3078439A1 (fr) * 2018-02-27 2019-08-30 Stmicroelectronics (Rousset) Sas Procede de gestion du routage de transactions entre des equipements sources, au moins un equipement cible, par exemple une memoire multiports, et systeme sur puce correspondant
US20220269437A1 (en) * 2021-02-19 2022-08-25 Western Digital Technologies, Inc. Data Storage Device and Method for Predetermined Transformations for Faster Retrieval
CN116719479B (zh) * 2023-07-03 2024-02-20 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479624A (en) * 1992-10-14 1995-12-26 Lee Research, Inc. High-performance interleaved memory system comprising a prime number of memory modules
CN101145133A (zh) * 2006-09-11 2008-03-19 松下电器产业株式会社 运算装置、计算机系统以及移动机器

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
JPS6042970B2 (ja) * 1979-07-11 1985-09-26 日本電気株式会社 並列処理システム
US5377340A (en) * 1991-06-18 1994-12-27 Hewlett-Packard Company Method and apparatus for memory interleaving using an improved hashing scheme
JP2003228517A (ja) * 2002-02-01 2003-08-15 Matsushita Electric Ind Co Ltd メモリ装置
GB2396031B (en) * 2002-12-05 2005-10-26 Imagination Tech Ltd A SIMD processor with multi-port memory unit
US7685354B1 (en) 2004-06-30 2010-03-23 Sun Microsystems, Inc. Multiple-core processor with flexible mapping of processor cores to cache banks
US8194481B2 (en) * 2008-12-18 2012-06-05 Mosaid Technologies Incorporated Semiconductor device with main memory unit and auxiliary memory unit requiring preset operation
US8359421B2 (en) 2009-08-06 2013-01-22 Qualcomm Incorporated Partitioning a crossbar interconnect in a multi-channel memory system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5479624A (en) * 1992-10-14 1995-12-26 Lee Research, Inc. High-performance interleaved memory system comprising a prime number of memory modules
CN101145133A (zh) * 2006-09-11 2008-03-19 松下电器产业株式会社 运算装置、计算机系统以及移动机器

Also Published As

Publication number Publication date
CN103218301A (zh) 2013-07-24
GB2496396A (en) 2013-05-15
EP2592562B1 (en) 2016-05-18
US20130191604A1 (en) 2013-07-25
JP5752666B2 (ja) 2015-07-22
JP2013101617A (ja) 2013-05-23
US8935486B2 (en) 2015-01-13
TWI521352B (zh) 2016-02-11
TW201333709A (zh) 2013-08-16
GB2496396B (en) 2014-07-30
EP2592562A1 (en) 2013-05-15
GB201119327D0 (en) 2011-12-21

Similar Documents

Publication Publication Date Title
US11755474B2 (en) Tile based interleaving and de-interleaving for digital signal processing
CN107657581B (zh) 一种卷积神经网络cnn硬件加速器及加速方法
CN103218301B (zh) 用于数字信号处理的存储器访问
CN106095328B (zh) 每个周期具有一个读端口和一个或多个写端口的多组存储器
JP6353843B2 (ja) メモリアクセス制御モジュールおよびこれに関連する方法
EP3368989B1 (en) Intelligent coded memory architecture with enhanced access scheduler
KR101881089B1 (ko) 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들
US10152434B2 (en) Efficient arbitration for memory accesses
CN112189324B (zh) 带宽匹配的调度器
US6901496B1 (en) Line rate buffer using single ported memories for variable length packets
US20110296078A1 (en) Memory pool interface methods and apparatuses
US20110066821A1 (en) data handling system comprising a rearrangement network
US7447872B2 (en) Inter-chip processor control plane communication
CN101194241A (zh) 用于对网络和存储器进行耦合的存储器控制器和方法
US6738840B1 (en) Arrangement with a plurality of processors having an interface for a collective memory
CN106919516B (zh) Ddr地址映射系统和方法
CN100422978C (zh) 具有多个互相通信的数字信号处理器的集成电路
US10146434B1 (en) FIFO systems and methods for providing access to a memory shared by multiple devices
CN117354268A (zh) 一种报文的缓存方法、装置、电子设备及存储介质
CN105490963B (zh) 一种网络节点多业务数据的发送调度方法及系统
CN118152310A (zh) 一种基于PCIe AXI bridge写数据存储、搜索及传输处理方法及系统
CN117312197A (zh) 报文处理方法、装置、电子设备及非易失性存储介质
Ackermann et al. Providing Memory Management Abstraction for Self‐Reconfigurable Video Processing Platforms

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210331

Address after: Trondheim

Patentee after: NORDIC SEMICONDUCTOR ASA

Address before: Hertfordshire

Patentee before: Imagination Technologies Ltd.

TR01 Transfer of patent right