CN111221465B - Dsp处理器、系统以及外部存储空间访问方法 - Google Patents

Dsp处理器、系统以及外部存储空间访问方法 Download PDF

Info

Publication number
CN111221465B
CN111221465B CN201811409034.0A CN201811409034A CN111221465B CN 111221465 B CN111221465 B CN 111221465B CN 201811409034 A CN201811409034 A CN 201811409034A CN 111221465 B CN111221465 B CN 111221465B
Authority
CN
China
Prior art keywords
access
address
memory management
memory
management 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
Application number
CN201811409034.0A
Other languages
English (en)
Other versions
CN111221465A (zh
Inventor
孙雪婷
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201811409034.0A priority Critical patent/CN111221465B/zh
Priority to PCT/CN2019/107429 priority patent/WO2020103568A1/zh
Priority to US17/296,249 priority patent/US11782846B2/en
Priority to EP19886109.8A priority patent/EP3842913A4/en
Publication of CN111221465A publication Critical patent/CN111221465A/zh
Application granted granted Critical
Publication of CN111221465B publication Critical patent/CN111221465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1054Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently physically addressed
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种DSP处理器、系统以及外部存储空间的访问方法,该DSP处理器包括:DSP核、以及与DSP核连接用于对外部存储器进行访问的程序端口和数据端口,其中,所述程序端口和所述数据端口分别配置有用于访问地址管理的存储器管理单元。在本发明中,由于程序端口和数据端口分别配置有用于访问地址管理的存储器管理单元,因此,取指令操作和取数据操作可以并行,从而提高了DSP系统的效率。

Description

DSP处理器、系统以及外部存储空间访问方法
技术领域
本发明涉及数字信号处理领域,具体而言,涉及一种DSP处理器、系统以及外部存储空间访问方法。
背景技术
数字信号处理器(Digital Signal Processing,DSP)在通信系统中,一般被设计用作高运算速度、高性能的复杂算法处理单元。其架构采用了数据总线与地址总线分开的哈弗架构,这样可以实现在一个时钟周期,同时取指令和取数据,提高内核的性能。处理器对外部存储器的访问一般直接采用物理地址,不做任何转换。
但是对于越来越庞大的通信系统来说,如果要支持更多用户和更大流量,则需要集成更多的DSP处理器。如果仍然采用传统的方法,对于片外的存储空间,大量的DSP处理器必须要各自划分所需空间,导致系统上需要设计复杂的片外存储空间分配方案,而且增大了DSP互相踩踏片外内存的风险,增加了整个系统的维护成本。
对于业界推出的多核DSP处理器,都使用了存储器管理单元(Memory ManagementUnit,MMU)。在访问片外存储空间的时候,程序端口和数据端口都通过一个统一的MMU,这样取指令和取数据的操作,实际在MMU模块里是串行的(冯.诺依曼结构),降低了系统效率。
发明内容
本发明实施例提供了一种DSP处理器、系统以及外部存储空间访问方法,以至少解决相关技术中DSP系统效率低的问题。
根据本发明的一个方面,提供了一种数字信号处理器,包括:数字信号处理DSP核、以及与所述DSP核相连用于对外部存储器进行访问的程序端口和数据端口,其中,所述程序端口和所述数据端口分别配置有用于访问地址管理的存储器管理单元。
根据本发明的另一方面,还提供了一种数字信号处理系统,该数字信号处理系统包括一个或多个上述实施例中的数字信号处理器,以及外部存储器,数字信号处理器通过系统总线与所述外部存储器连接,其中,所述外部存储器包括片内存储器和/或片外存储器。
根据本发明的又一方面,还提供了一种基于上述数字信号处理系统的外部存储器访问方法,该方法包括:所述存储器管理单元根据所存储的访问地址转换表,将所述DSP核发出的访问虚拟地址转化为物理地址;将所述物理地址透传给与外部存储器互联的总线以对所述外部存储器进行访问。
在本发明的上述实施例中,由于程序端口和数据端口分别配置有用于访问地址管理的存储器管理单元,因此,取指令操作和取数据操作可以并行,从而提高了数字信号处理系统的效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的DSP处理器结构框图;
图2是根据本发明实施例的DSP处理系统结构框图;
图3是根据本发明实施例的外部存储器访问流程图;
图4是根据本发明实施例一的外部存储器访问示意图;
图5是根据本发明实施例二的外部存储器访问示意图;
图6是根据本发明实施例三的外部存储器访问示意图;
图7是根据本发明实施例四的外部存储器访问示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明实施例提供了一种DSP处理器,如图1所示,该DSP处理器包括DSP核以及用于对外部存储器进行访问的程序端口和数据端口,其中,所述程序端口和所述数据端口分别配置有用于访问地址管理的存储器管理单元。
在本实施例中,DSP核通过程序端口和数据端口对外部存储器进行访问,其中,程序端口用于取指令,所述数据端口用于取数据。存储器管理单元用于对DSP所访问的地址进行管理,例如,将DSP核发出的访问虚拟地址转换物理地址,还可以对地址的配置信息进行错误检测,并上报错误信息至DSP核。
在本实施例中,各个部件之间可通过总线进行连接。所访问的外部存储器可以是片内或片外存储器。
在本实施例中,由于程序端口和所述数据端口分别配置有用于访问地址管理的存储器管理单元,因此,程序取指令和取数据可通过各自的存储器管理单元并行处理,效率较高。
如图2所示,本发明实施例提供了一种DSP处理器系统,其中,该系统包括如下模块:DSP处理器10、存储器管理单元20、系统总线30、外部存储器40。在本实施例中,仅示了一个DSP处理器,当然本实施例的DSP处理器系统也可以包括多个DSP处理器,在包括多个DSP处理的情况下,其各个DSP处理器与其他部件的连接方式与包括一个DSP处理器的情况类似。具体的各部件的结构及连接关系如下。
DSP处理器10包括DSP核、具有一条或多条的数据端口和具有一条或多条的程序端口,还可以包括片内存储器空间、缓存Cache(图中未示出)。
在DSP核对外的各个数据端口和程序端口分别加入独立的存储器管理单元20,使得各个DSP核在访问外部存储器40的时候,程序取指令和取数据可通过各自的存储器管理单元并行处理,效率较高。
另外,各个端口的存储器管理单元分开设计,使得每个单元只专注完成本端口的地址转换,无需做端口类型的判断等,使得硬件设计更加简单。
使用了存储器管理单元后,各个DSP核的内存可以显式的表达成一个内存配置表,软件设计多核内存布局更方便;
如果采用对称式软件设计,则各个DSP软件看到的虚拟内存都是同一份,也就可以使得一个编译文件应用到多核。成倍的节省了维护多个编译工程的成本,大大缩短了制作版本的时间;
每个存储器管理单元其功能包括但不限于根据配置表项及模式,将的虚拟访问地址映射成实际的物理地址,以及对地址段进行权限保护。同时还支持对访问地址和表项配置的一些错误检测和上报功能。
存储器管理单元的配置表项里,可设置某段地址的可读、可写、是否有效等属性的功能,对DSP核发出的片外访问加了约束,限制了非法访问,从而可提高整个软件系统的稳定性。
存储器管理单元20可包括检测模块201、条目存储与转换模块202,总线接口模块203,错误上报模块204。为了简化描述,下文中统一称存储器管理单元为TLB(TranslationLookaside Buffer:转换检测缓冲区)单元。
其中,检测模块用于根据DSP核发出的虚拟地址,查找TLB条目存储模块,找到对应条目并检测各种配置错误。
其中,条目存储与转换模块用于存储地址转换表,并根据该地址转换表将DSP发出的虚拟地址按照配置表转化为物理地址。
其中,地址转换表中的条目个数可采用固定设计,由于存储器管理单元条目固定,且存储空间在硬件内集成,因此节约了硬件读取条目的时间,保障了DSP处理器对片外内存访问的效率不受影响。
其中,总线接口模块用于将转换好的物理地址信号和其他总线信号透传给下一级的总线。
其中,错误上报模块用于当检测模块检测到错误,把异常信息上报给DSP核。
在本实施例中,存储器管理单元可以满足不同的产品需求,根据不同产品的需求进行相关存储器管理单元的使能和禁止。例如可以只使能数据端口的存储器管理单元,或存在多个数据端口时,每个端口使能一个存储器管理单元,对于程序端口的访问也可采用同样的特性。在本实施例中,由于各存储器管理单元支持使能和禁止,因此,适合低功耗设计。
在本实施例中,外部存储器是指通过所述的存储器管理单元进行访问的存储器,该存储器不属于DSP处理器的存储器,该存储器可能在芯片内部,也可能在芯片外部,可以是由存储器控制器(例如,DDR控制器)连接的DDR(Double Data Rate:双倍速率同步动态随机存储器)存储器等。
总线系统用于连接各存储器管理单元、外部存储器空间、其它核子系统和其它外设,实现芯片互联互通。
基于上述的DSP系统,本发明实施例还提供了访问外部存储器的方法。在本实施例中,在硬件设计时,可根据需求在程序端口和数据端口添加适当数量的存储器管理单元,然后再连接到总线上,并通过各级总线连接到外部存储器空间,如果某个端口实际不需要接入存储器管理单元,则可以设置成旁路(bypass)。如图3所示,该实施例提供的方法包括以下步骤:
步骤S301,可通过软件配置好存储器管理单元的条目表,配置项包括虚拟地址及对应的物理地址,访问长度,内存访问权限等。
步骤S302,DSP核发出一次程序访问,对应的程序接口的存储器管理单元的检测模块解析出指令地址信号。DSP核发出一次数据访问,对应的数据接口的存储器管理单元的检测模块解析出数据地址信号;
根据实际需求,可能存在多个数据端口,每个数据端口的总线带宽可以不同,则可以为每个数据端口配置一个存储器管理单元,并设置存储器管理单元适配不同的带宽,并且各个数据、程序端口可以并行发出访问请求。
步骤S303,存储器管理模单元查询访问的虚拟地址是否在条目表的某个条目范围内。
步骤S304,如果访问的虚拟地址在条目表中命中,则将访问的虚拟地址转换成物理地址,通过存储器管理模块与外部总线的接口,发出外部存储器访问。
步骤S305,如果访问的虚拟地址没有在条目表中命中,或访问权限有误,则把对应的错误信息/时间反馈给DSP核。
实施例一:
如图4所示,在本实施例中,该DSP系统包括多个DSP核,每个DSP核具有多个对片外内存空间进行访问的程序端口和数据端口,其中,每个程序端口和数据端口都配置有一个TLB单元。
可通过软件在DSP核访问片外内存之前配置好TLB单元的条目表。配置项可包括虚拟地址及对应的物理地址,访问长度,内存访问权限等。并可设置某段地址的可读、可写、是否有效等属性。
当DSP核发出一次访问,TLB单元检测模块解析出地址信号,这个地址对于TLB单元是虚拟地址。
TLB单元查询虚拟地址是否在条目表的某个条目范围内,如果命中则翻译成物理地址,通过TLB单元跟外部总线的接口,发出访问。如果没有命中,或访问权限有误,则把对应的错误信息反馈给DSP核。
实施例二:
如图5所示,在本实施例中,在某些端口不需要地址转换的情况下,TLB单元可以设置成旁路模式(bypass)。
首先,可根据实际需要,设置某几个端口TLB单元为旁路模式bypass(如图中虚线所示的LTB单元)。
软件在DSP核访问片外空间之前,配置好各个端口TLB单元的条目表,配置项包括虚拟地址及对应的物理地址,访问长度,内存访问权限等。
当DSP核发出一次访问(各个数据端口、程序端口可以并行发出访问请求),TLB检测单元解析出地址信号,这个地址对于TLB单元是虚拟地址。
TLB单元查询虚拟地址是否在条目表的某个条目范围内,如果命中则转换成物理地址,通过TLB单元跟外部总线的接口,发出访问。如果没有命中,或访问权限有误,则把对应的错误信息反馈给DSP核。
实施例三:
如图6所示,在本实施例中,DSP处理器有多个数据端口,且各个数据端口的总线位宽是不一样的。有的数据端口连接低速存储器。例如,DDR存储器、Flash存储器、或L3级内存等。有的数据端口连接高速存储器,例如,L2级缓存。可以通过设置TLB单元来适配不同的位宽。
软件在DSP核访问各存储器之前,配置好各个端口TLB单元的条目表,配置项包括虚拟地址及对应的物理地址,访问长度,内存访问权限等。
当DSP核发出一次访问(各个数据端口、程序端口可以并行发出访问请求),TLB检测单元解析出地址信号,这个地址对于TLB单元是虚拟地址。
TLB单元查询虚拟地址是否在条目表的某个条目范围内,如果命中则转换成对应存储器的物理地址,通过TLB单元与外部总线的接口,发出访问。如果没有命中,或访问权限有误,则把对应的错误信息反馈给DSP核。
实施例四:
如图7所示,在本实施例中,一个DSP核存在多个数据端口和多个程序端口,多个数据端口接入一个TLB单元,多个程序端口接入一个TLB单元,在TLB单元内部通过Port ID区分各个端口对应的条目。例如,TLB单元对各个端口可从0开始依次进行编号。
在本实施例中,可首先通过软件在DSP核访问片外空间之前,配置好各个端口TLB单元的条目表,配置项包括Port ID、虚拟地址及对应的物理地址,访问长度,内存访问权限等。
当DSP核发出一次访问,TLB检测单元解析出地址信号,这个地址对于TLB单元是虚拟地址。
然后,TLB单元查询虚拟地址是否在条目表的某个条目范围内,如果命中则翻译成物理地址,通过TLB单元跟外部总线的接口,发出访问。如果没有命中,或访问权限有误,则把对应的错误信息反馈给DSP核。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数字信号处理器,其特征在于,包括:数字信号处理DSP核、以及与所述DSP核相连用于对外部存储器进行访问的程序端口和数据端口,其中,所述程序端口和所述数据端口分别配置有用于访问地址管理的存储器管理单元,其中,所述程序端口和所述数据端口均支持读写访问,其中,
多个所述数据端口共用一个存储器管理单元,或者,多个所述数据端口中的每个所述数据端口配置有一个所述存储器管理单元,其中,共用同一存储器管理单元的多个所述数据端口中的每个所述数据端口配置有不同的端口号,其中,
每个所述数据端口具有不同的总线位宽,每个所述数据端口配置的一个所述存储器管理单元还用于为每个所述数据端口适配不同的总线位宽,其中,
多个所述程序端口共用另一个存储器管理单元,或者,多个所述程序端口中的每个所述程序端口配置有一个所述存储器管理单元,其中,共用同一存储器管理单元的多个所述程序端口中的每个所述程序端口配置有不同的端口号。
2.根据权利要求1所述的数字信号处理器,其特征在于,所述存储器管理单元包括:
地址存储与转换模块,用于存储访问地址转换表,并根据所述访问地址转换表将所述DSP核发出的访问虚拟地址转化为物理地址;
接口模块,用于将所述物理地址透传给与外部存储器互联的总线。
3.根据权利要求2所述的数字信号处理器,其特征在于,所述存储器管理单元还包括:
检测模块,用于根据DSP核发出的访问虚拟地址在所述访问地址转换表中查找对应地址条目,并检测是否存在配置错误;
错误上报模块,用于在所述检测模块检测到配置错误的情况下,将错误信息上报给所述DSP核。
4.根据权利要求3所述的数字信号处理器,其特征在于,所述访问地址转换表的条目数固定,并至少包括以下之一的配置项:
虚拟地址及对应的物理地址,地址访问长度,地址访问权限。
5.根据权利要求1所述的数字信号处理器,其特征在于,所述存储器管理单元支持使能和禁止状态的切换,其中,在禁止状态下,所述存储器管理单元不进行虚拟地址与物理地址的转换,将所述DSP核发出的访问地址直接旁路至总线。
6.一种数字信号处理系统,其特征在于,包括一个或多个权利要求1至5任一项所述的数字信号处理器,以及外部存储器,所述数字信号处理器通过系统总线与所述外部存储器连接,其中,所述外部存储器包括片内存储器和/或片外存储器。
7.一种基于权利要求6所述的数字信号处理系统的外部存储器访问方法,其特征在于,包括:
所述存储器管理单元根据所存储的访问地址转换表,将所述DSP核发出的访问虚拟地址转化为物理地址;
将所述物理地址透传给与外部存储器互联的总线以对所述外部存储器进行访问。
8.根据权利要求7所述的方法,其特征在于,所述访问地址转换表的条目数固定,并至少包括以下之一的配置项:
虚拟地址及对应的物理地址,地址访问长度,地址访问权限。
9.根据权利要求8所述的方法,其特征在于,在所述DSP核对所述外部存储器进行访问之前,还包括:
配置所述访问地址转换表中的各条目的配置项。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
根据DSP核发出的访问虚拟地址在所述访问地址转换表中查找对应地址条目,并检测是否存在配置错误;
当检测到配置错误的情况下,将错误信息上报给所述DSP核。
CN201811409034.0A 2018-11-23 2018-11-23 Dsp处理器、系统以及外部存储空间访问方法 Active CN111221465B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201811409034.0A CN111221465B (zh) 2018-11-23 2018-11-23 Dsp处理器、系统以及外部存储空间访问方法
PCT/CN2019/107429 WO2020103568A1 (zh) 2018-11-23 2019-09-24 Dsp处理器、系统以及外部存储空间访问方法
US17/296,249 US11782846B2 (en) 2018-11-23 2019-09-24 Digital signal processor, DSP system, and method for accessing external memory space
EP19886109.8A EP3842913A4 (en) 2018-11-23 2019-09-24 DSP PROCESSOR AND SYSTEM, AND ACCESS PROCESS FOR EXTERNAL MEMORY SPACE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811409034.0A CN111221465B (zh) 2018-11-23 2018-11-23 Dsp处理器、系统以及外部存储空间访问方法

Publications (2)

Publication Number Publication Date
CN111221465A CN111221465A (zh) 2020-06-02
CN111221465B true CN111221465B (zh) 2023-11-17

Family

ID=70773512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811409034.0A Active CN111221465B (zh) 2018-11-23 2018-11-23 Dsp处理器、系统以及外部存储空间访问方法

Country Status (4)

Country Link
US (1) US11782846B2 (zh)
EP (1) EP3842913A4 (zh)
CN (1) CN111221465B (zh)
WO (1) WO2020103568A1 (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182551A2 (en) * 2000-08-21 2002-02-27 Texas Instruments France Address space priority arbitration
CN101221542A (zh) * 2007-10-30 2008-07-16 北京时代民芯科技有限公司 一种外部存储器接口
US7509391B1 (en) * 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
JP2010113023A (ja) * 2008-11-04 2010-05-20 Yamaha Corp デジタル信号処理装置
CN201570016U (zh) * 2009-12-25 2010-09-01 东南大学 基于虚存机制的指令片上异构存储资源动态分配的电路
CN102591801A (zh) * 2008-06-26 2012-07-18 高通股份有限公司 存储器管理单元引导的对系统接口的接入
CN103914405A (zh) * 2013-01-07 2014-07-09 三星电子株式会社 包括存储管理单元的片上系统及其存储地址转换方法
CN103970680A (zh) * 2014-04-28 2014-08-06 上海华为技术有限公司 内存管理方法、装置及嵌入式系统
CN104049904A (zh) * 2013-03-14 2014-09-17 辉达公司 用于管理统一虚拟存储器的页面状态目录
CN105302765A (zh) * 2014-07-22 2016-02-03 电信科学技术研究院 一种系统级芯片及其内存访问管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1046998A1 (en) * 1999-04-22 2000-10-25 Texas Instruments Incorporated Digital signal processors with virtual addressing
EP1067461B1 (en) * 1999-07-08 2013-04-24 Texas Instruments France Unified memory management system for multi process heterogeneous architecture
EP1139222A1 (en) * 2000-03-31 2001-10-04 Texas Instruments Incorporated Prefetch for TLB cache
US20030204702A1 (en) * 2002-04-30 2003-10-30 Adc Dsl Systems, Inc. Flexible memory architecture for an embedded processor
US7017025B1 (en) 2002-06-27 2006-03-21 Mips Technologies, Inc. Mechanism for proxy management of multiprocessor virtual memory
DE102004009497B3 (de) * 2004-02-27 2005-06-30 Infineon Technologies Ag Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems
US7555591B2 (en) * 2005-04-29 2009-06-30 Sigmatel, Inc. Method and system of memory management
CN100351813C (zh) * 2005-09-07 2007-11-28 大唐微电子技术有限公司 数字信号处理系统中访问存储单元的方法及其处理系统
CN104750603B (zh) * 2013-12-30 2018-12-11 辰芯科技有限公司 一种多核dsp软件仿真器及其物理层软件测试方法
US20160246715A1 (en) * 2015-02-23 2016-08-25 Advanced Micro Devices, Inc. Memory module with volatile and non-volatile storage arrays
US10402355B2 (en) * 2017-02-08 2019-09-03 Texas Instruments Incorporated Apparatus and mechanism to bypass PCIe address translation by using alternative routing

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509391B1 (en) * 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
EP1182551A2 (en) * 2000-08-21 2002-02-27 Texas Instruments France Address space priority arbitration
CN101221542A (zh) * 2007-10-30 2008-07-16 北京时代民芯科技有限公司 一种外部存储器接口
CN102591801A (zh) * 2008-06-26 2012-07-18 高通股份有限公司 存储器管理单元引导的对系统接口的接入
JP2010113023A (ja) * 2008-11-04 2010-05-20 Yamaha Corp デジタル信号処理装置
CN201570016U (zh) * 2009-12-25 2010-09-01 东南大学 基于虚存机制的指令片上异构存储资源动态分配的电路
CN103914405A (zh) * 2013-01-07 2014-07-09 三星电子株式会社 包括存储管理单元的片上系统及其存储地址转换方法
CN104049904A (zh) * 2013-03-14 2014-09-17 辉达公司 用于管理统一虚拟存储器的页面状态目录
CN103970680A (zh) * 2014-04-28 2014-08-06 上海华为技术有限公司 内存管理方法、装置及嵌入式系统
CN105302765A (zh) * 2014-07-22 2016-02-03 电信科学技术研究院 一种系统级芯片及其内存访问管理方法

Also Published As

Publication number Publication date
CN111221465A (zh) 2020-06-02
US11782846B2 (en) 2023-10-10
US20220019543A1 (en) 2022-01-20
EP3842913A1 (en) 2021-06-30
EP3842913A4 (en) 2021-11-10
WO2020103568A1 (zh) 2020-05-28

Similar Documents

Publication Publication Date Title
US8631181B2 (en) Validating message-signaled interrupts by tracking interrupt vectors assigned to devices
US7725663B2 (en) Memory protection system and method
US8949551B2 (en) Memory protection unit (MPU) having a shared portion and method of operation
KR102386495B1 (ko) 데이터에 액세스하는 방법, 장치, 기기 및 매체
US8006000B2 (en) Bridge, processor unit, information processing apparatus, and access control method
US8955062B2 (en) Method and system for permitting access to resources based on instructions of a code tagged with an identifier assigned to a domain
CN106663061B (zh) 用于可编程逻辑的存储器的虚拟化
CN104346317B (zh) 共享资源访问方法和装置
US8990540B2 (en) Integrated circuit system providing enhanced communications between integrated circuit dies and related methods
US10552347B2 (en) Data processor
US20140041033A1 (en) Hardware enforced memory access permissions
US20210089469A1 (en) Data consistency techniques for processor core, processor, apparatus and method
CN114860329B (zh) 动态一致性偏置配置引擎及方法
CN115292214A (zh) 页表预测方法、存储访问操作方法、电子装置和电子设备
US11409684B2 (en) Processing accelerator architectures
US10176131B1 (en) Controlling exclusive access using supplemental transaction identifiers
US9081657B2 (en) Apparatus and method for abstract memory addressing
CN111221465B (zh) Dsp处理器、系统以及外部存储空间访问方法
US8555013B1 (en) Method and system for memory protection by processor carrier based access control
CN114925002A (zh) 电子装置、电子设备和地址转换方法
US9436624B2 (en) Circuitry for a computing system, LSU arrangement and memory arrangement as well as computing system
US20160140073A1 (en) Programmable validation of transaction requests
RU2005115088A (ru) Управление доступом устройства к памяти
KR102485999B1 (ko) 마스터-사이드 필터를 포함하는 캐시 코히런트 시스템과 이를 포함하는 데이터 처리 시스템
KR20090095793A (ko) 프로세서 및 컴퓨팅 시스템

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant