CN116521097B - 存储器访问电路及存储器访问方法、集成电路和电子设备 - Google Patents

存储器访问电路及存储器访问方法、集成电路和电子设备 Download PDF

Info

Publication number
CN116521097B
CN116521097B CN202310807736.9A CN202310807736A CN116521097B CN 116521097 B CN116521097 B CN 116521097B CN 202310807736 A CN202310807736 A CN 202310807736A CN 116521097 B CN116521097 B CN 116521097B
Authority
CN
China
Prior art keywords
processing unit
queue
selector
schedule
request information
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
CN202310807736.9A
Other languages
English (en)
Other versions
CN116521097A (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.)
Moore Threads Technology Co Ltd
Original Assignee
Moore Threads Technology Co 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 Moore Threads Technology Co Ltd filed Critical Moore Threads Technology Co Ltd
Priority to CN202310807736.9A priority Critical patent/CN116521097B/zh
Publication of CN116521097A publication Critical patent/CN116521097A/zh
Application granted granted Critical
Publication of CN116521097B publication Critical patent/CN116521097B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0656Data buffering arrangements
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开涉及一种存储器访问电路及存储器访问方法、集成电路和电子设备,涉及电子技术领域,该存储器访问电路用于访问多个不同的存储单元,包括多个处理单元,与每个处理单元对应的第一队列、处理单元选择器,与每个存储单元对应的多个数据缓存器;其中,处理单元用于生成访问存储单元的请求信息,请求信息包括用于指示存储单元的调度标识,第一队列用于按照处理单元的访问顺序存储调度标识;多个数据缓存器用于存储存储单元返回给不同处理单元的返回数据,处理单元选择器用于根据从第一队列读取的调度标识,将从调度标识指示的数据缓存器中读取的返回数据传输至处理单元。本公开实施例可提升存储器访问电路的准确性和稳定性。

Description

存储器访问电路及存储器访问方法、集成电路和电子设备
技术领域
本公开涉及电子技术领域,尤其涉及一种存储器访问电路及存储器访问方法、集成电路和电子设备。
背景技术
随着集成电路产业的快速发展,各类处理器芯片在各行各业中的应用越来越广泛,可以应用到网络通信、手机、机顶盒、液晶电视、医疗设备、安防设备、工控设备、智能电表、智能穿戴、物联网、汽车电子等场景。
在各类处理器芯片中,处理单元会访问存储单元以实现各种目标任务,其中,处理器芯片内的存储器访问电路可用于管理处理单元与存储单元之间的通信,存储器访问电路会直接影响整个处理器芯片的运行效率和稳定性。
发明内容
本公开提出了一种存储器访问技术方案。
根据本公开的一方面,提供了一种存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,与每个处理单元对应的一个第一队列、一个处理单元选择器,与每个存储单元对应的多个数据缓存器,其中,同一存储单元对应的多个数据缓存器分别对应不同的处理单元;所述处理单元用于生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识,所述第一队列用于按照所述处理单元的访问顺序存储所述调度标识;所述存储单元响应所述请求信息生成返回数据,所述多个数据缓存器用于存储所述存储单元返回给不同处理单元的返回数据,所述处理单元选择器用于根据从所述第一队列读取的调度标识,将从所述调度标识指示的数据缓存器中读取的返回数据传输至处理单元。
在一种可能的实现方式中,所述存储器访问电路还包括:与每个处理单元对应的一个第一调度选择器,与每个存储单元对应的一个仲裁器、一个第二队列、一个第二调度选择器;所述第一调度选择器用于将从所述处理单元接收到的请求信息发送至所述调度标识指示的存储单元的仲裁器;所述仲裁器用于对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识写入第二队列;所述第二调度选择器用于根据从所述第二队列读取的处理单元标识,将所述存储单元的返回数据传输至所述处理单元标识指示的数据缓存器。
在一种可能的实现方式中,任一处理单元的输出端连接对应的一个第一队列的输入端、对应的一个第一调度选择器的输入端,所述第一调度选择器的输出端分别连接每个仲裁器的输入端;每个仲裁器的输出端连接对应的存储单元的输入端、对应的第二队列的输入端;任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述第二队列的输出端,任一第二调度选择器的输出端分别连接多个数据缓存器的输入端;连接同一第二调度选择器的多个数据缓存器的输出端分别连接不同的处理单元选择器的输入端,每个处理单元选择器的输入端还连接一个第一队列的输出端,每个处理单元选择器的输出端连接对应的处理单元的输入端。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器、至少一个第二缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端,每个第二调度选择器的输入端通过至少一个第二缓冲器连接对应的存储单元的输出端。
在一种可能的实现方式中,所述第一队列的位宽是根据所述存储单元的数量确定的,所述第一队列存储调度标识的数量小于或等于所述第一队列的深度,所述仲裁器的输出位宽和所述第二队列的位宽是根据所述处理单元的数量确定的,所述第二队列存储处理单元标识的数量小于或等于所述第二队列的深度,所述数据缓存器的数量是根据所述存储单元的数量和所述处理单元的数量确定的,所述数据缓存器存储返回数据的数量小于或等于所述数据缓存器的深度。
根据本公开的一方面,提供了一种存储器访问方法,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路包括:多个处理单元,与每个处理单元对应的一个第一队列、一个处理单元选择器,与每个存储单元对应的一个第二队列、一个第二调度选择器、多个数据缓存器,其中,同一存储单元对应的多个数据缓存器分别对应不同的处理单元;其中,任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述第二队列的输出端,任一第二调度选择器的输出端分别连接多个数据缓存器的输入端;连接同一第二调度选择器的多个数据缓存器的输出端分别连接不同的处理单元选择器的输入端,每个处理单元选择器的输入端还连接一个第一队列的输出端,每个处理单元选择器的输出端连接对应的处理单元的输入端。
所述存储器访问方法包括:所述存储单元响应来自所述处理单元的请求信息生成返回数据;所述第二调度选择器根据从所述第二队列读取的处理单元标识,将所述存储单元的所述返回数据传输至所述处理单元标识指示的数据缓存器,所述多个数据缓存器用于存储所述存储单元返回给不同处理单元的返回数据;所述处理单元选择器用于根据从所述第一队列读取的调度标识,将从所述调度标识指示的数据缓存器中读取的返回数据传输至处理单元。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器,每个第二调度选择器的输入端通过至少一个第二缓冲器连接对应的存储单元的输出端。
在一种可能的实现方式中,所述第一队列的位宽是根据所述存储单元的数量确定的,所述第一队列存储调度标识的数量小于或等于所述第一队列的深度,所述第二队列的位宽是根据所述处理单元的数量确定的,所述第二队列存储处理单元标识的数量小于或等于所述第二队列的深度,所述数据缓存器的数量是根据所述存储单元的数量和所述处理单元的数量确定的,所述数据缓存器存储返回数据的数量小于或等于所述数据缓存器的深度。
根据本公开的一方面,提供了一种存储器访问方法,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路包括:多个处理单元,与每个处理单元对应的一个第一调度选择器、一个第一队列,与每个存储单元对应的一个仲裁器、一个第二队列;其中,任一处理单元的输出端连接对应的一个第一队列的输入端、对应的一个第一调度选择器的输入端,所述第一调度选择器的输出端分别连接每个仲裁器的输入端;每个仲裁器的输出端连接对应的存储单元的输入端、对应的第二队列的输入端。
所述存储器访问方法包括:所述处理单元生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识;所述处理单元将所述请求信息发送至对应的第一调度选择器,并将所述请求信息的调度标识写入第一队列,所述第一队列用于按照所述处理单元的访问顺序存储所述调度标识;所述第一调度选择器将从所述处理单元接收到的请求信息发送至所述调度标识指示的存储单元的仲裁器;所述仲裁器对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识写入第二队列。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端。
在一种可能的实现方式中,所述第一队列的位宽是根据所述存储单元的数量确定的,所述第一队列存储调度标识的数量小于或等于所述第一队列的深度,所述仲裁器的输出位宽和所述第二队列的位宽是根据所述处理单元的数量确定的,所述第二队列存储处理单元标识的数量小于或等于所述第二队列的深度。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
根据本公开的一方面,提供了一种集成电路,所述集成电路包括如上所述的存储器访问电路。
根据本公开的一方面,提供了一种电子设备,所述电子设备包括如上所述的存储器访问电路。
本公开实施例的存储器访问电路,实现了多个处理单元访问不同的存储单元(例如包括部署在不同调度模块中的存储单元),可以为每个处理单元设置一个第一队列和与多个存储单元分别对应的多个数据缓存器,通过第一队列记录处理单元发起对各存储单元访问时的访问顺序,通过多个数据缓存器对各存储单元的返回数据进行缓存,使得处理单元后发送的请求信息的返回数据先缓存在数据缓存器中,等待先发起请求信息的返回数据,有利于每个处理单元获得的返回数据是保序回复(例如按照第一队列记录的访问顺序回复),进一步提升存储器访问电路的准确性和稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的一种存储器访问电路的示意图。
图2示出根据本公开实施例的另一种存储器访问电路的示意图。
图3示出根据本公开实施例的另一种存储器访问电路的示意图。
图4示出根据本公开实施例的一种存储器访问方法的流程图。
图5示出根据本公开实施例的另一种存储器访问方法的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的存储器访问电路的示意图,如图1所示,所述存储器访问电路用于访问多个不同的存储单元0,所述存储器访问电路包括:多个处理单元1,与每个处理单元1对应的一个第一队列3、一个处理单元选择器4,与每个存储单元0对应的多个数据缓存器8,其中,同一存储单元0对应的多个数据缓存器8分别对应不同的处理单元1。
所述处理单元1用于生成访问存储单元0的请求信息,所述请求信息包括用于指示存储单元0的调度标识,所述第一队列3用于按照所述处理单元1的访问顺序存储所述调度标识。
所述存储单元0响应所述请求信息生成返回数据,所述多个数据缓存器8用于存储所述存储单元0返回给不同处理单元1的返回数据,所述处理单元选择器4用于根据从所述第一队列3读取的调度标识,将从所述调度标识指示的数据缓存器8中读取的返回数据传输至处理单元1。
在一种可能的实现方式中,本公开实施例的存储器访问电路可以集成到处理器芯片中,用于访问处理器芯片内的多个不同的存储单元0。
其中,所述处理器芯片例如包括:中央处理器(Central Processing Unit,CPU)、图形处理器(Graphic Processing Unit,GPU)、通用图形处理单元(General-PurposeComputing on Graphics Processing Units,GPGPU)、多核处理器(Multi-CoreProcessor)、数字信号处理单元(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、张量处理器(Tensor ProcessingUnit,TPU)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件,本公开对此不作限制。
其中,存储单元0可包括设置在处理器芯片内部的随机存取存储器(RandomAccess Memory,RAM),例如动态随机存取存储器(Dynamic RAM,DRAM)、静态随机存取存储器(Static RAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、高速缓存存储器(Cached DRAM,CDRAM)、增强型动态随机存取存储器(Extended Data Out DRAM,EDRAM)等,本公开对存储单元0的类型不作限制。
示例性地,多个处理单元1可以是多核处理器芯片的多个计算核,可以对多核处理器芯片内的不同的存储单元0进行访问,提高多核并行处理的效率。
或者,多个处理单元1也可以是多核处理器芯片中设置在同一计算核中的多线程模块,可以对多核处理器芯片内的不同的存储单元0(可以是位于计算核内的存储单元,也可以是位于计算核外的存储单元)进行访问,提高多线程并行处理的效率。
或者,处理器芯片内部包括多个处理单元1和多个调度模块,不同的存储单元0部署在不同的调度模块,调度模块可用于执行调度任务(包括操作数据调度、操作程序调度)。在此情况下,调度模块可用于接收处理单元1的请求信息(例如操作指令),根据请求信息为处理单元1提供所需的资源(返回数据)。
在一种可能的实现方式中,存储器访问电路可用于访问M个(M≥1)不同的存储单元0,该存储器访问电路可包括:N个(N≥1)处理单元1、与N个处理单元1分别对应的N个第一队列3、N个处理单元选择器4,与M个存储单元0分别对应的M组数据缓存器8,每组数据缓存器8可包括N个数据缓存器8,每组的N个数据缓存器8分别对应N个处理单元1。应当理解,本公开的实施例对存储单元0的数量M和处理单元1的数量N不作限制,可根据实际的应用场景,设置M和N的取值。
如图1所示,M个存储单元0可以分别为存储单元0_1~存储单元0_M,N个处理单元1可分别为处理单元1_1~处理单元1_N。N个第一队列3可分别为第一队列3_1~第一队列3_N,即:与处理单元1_1对应的第一队列3_1,与处理单元1_2对应的第一队列3_2,以此类推,与处理单元1_N对应的第一队列3_N。其中,第一队列3可以是先入先出(First Input FirstOutput,FIFO)队列,即第一个进入其内的数据第一个被移出。
处理单元1_1可生成访问存储单元0_1~访问存储单元0_M中任一存储单元0的请求信息,该请求信息可包括用于指示存储单元0的调度标识。例如,假设存在调度标识1~M,调度标识1可用于指示存储单元0_1,调度标识2可用于指示存储单元0_2,以此类推,调度标识M可用于指示存储单元0_M。在此情况下,如果处理单元1_1中生成的请求信息包括调度标识1,处理单元1_1可以访问存储单元0_1;如果处理单元1_1中生成的请求信息包括调度标识2,处理单元1_1可以访问存储单元0_2;以此类推,如果处理单元1_1中生成的请求信息包括调度标识M,处理单元1_1可以访问存储单元0_M。类似的,处理单元1_2~处理单元1_N同样可以生成访问存储单元0_1~访问存储单元0_M中任一存储单元0的请求信息,具体可以参考处理单元1_1,此处不再赘述。
在示例中,处理单元1_1可以将生成的请求信息发送至存储单元0_1,并将该请求信息的调度标识写入第一队列3_1,第一队列3_1用于按照处理单元1_1的访问顺序存储调度标识,该访问顺序也即处理单元1_1生成请求信息的生成顺序。
例如,如果处理单元1_1连续生成了三个请求信息,其中,第一个请求信息包括调度标识M,第二个请求信息包括调度标识1,第三个请求信息包括调度标识2。处理单元1_1将第一个请求信息发送至存储单元0_M,可以同步将调度标识M写入第一队列3_1;处理单元1_1将第二个请求信息发送至存储单元0_1,可以同步将调度标识1写入第一队列3_1;处理单元1_1将第三个请求信息发送至存储单元0_2,可以同步将调度标识2写入第一队列3_1。在此情况下,第一队列3_1按照了处理单元1_1的访问顺序(例如先访问调度标识M指示的存储单元0_M,再访问调度标识1指示的存储单元0_1,然后访问调度标识2指示的存储单元0_2),在从队首至队尾的方向,依次存储了调度标识M、调度标识1、调度标识2。
类似的,处理单元1_2~处理单元1_N可以分别将各自生成的请求信息发送至调度标识指示的存储单元0_1~访问存储单元0_M,并将各自的请求信息的调度标识分别写入对应的第一队列3_2~第一队列3_N,以使第一队列3_2~第一队列3_N按照各自负责的处理单元1_2~处理单元1_N的访问顺序存储调度标识,此处不再赘述。
如图1所示,N个处理单元选择器4可分别为处理单元选择器4_1~处理单元选择器4_N,即:与处理单元1_1对应的处理单元选择器4_1,与处理单元1_2对应的处理单元选择器4_2,以此类推,与处理单元1_N对应的处理单元选择器4_N。
M组数据缓存器8例如包括:数据缓存器8_1_1~数据缓存器8_1_N,数据缓存器8_2_1~数据缓存器8_2_N,以此类推,数据缓存器8_M_1~数据缓存器8_M_N。
其中,同一存储单元0对应的N个数据缓存器8分别对应N个处理单元1。例如,在与存储单元0_1对应的数据缓存器8_1_1~数据缓存器8_1_N中,数据缓存器8_1_1对应处理单元1_1,数据缓存器8_1_2对应处理单元1_2,以此类推,数据缓存器8_1_N对应处理单元1_N。
又例如,在与存储单元0_2对应的数据缓存器8_2_1~数据缓存器8_2_N中,数据缓存器8_2_1对应处理单元1_1,数据缓存器8_2_2对应处理单元1_2,以此类推,数据缓存器8_2_N对应处理单元1_N。
类似地,在与存储单元0_M对应的数据缓存器8_M_1~数据缓存器8_M_N中,数据缓存器8_M_1对应处理单元1_1,数据缓存器8_M_2对应处理单元1_2,以此类推,数据缓存器8_M_N对应处理单元1_N。
在示例中,存储单元0响应来自不同处理单元1的请求信息生成返回数据。当存储单元0_1响应来自处理单元1的请求信息生成返回数据,可以将生成的返回数据发送至对应该处理单元1的数据缓存器8。其中,数据缓存器8_1_1~数据缓存器8_1_N可用于存储存储单元0_1返回给处理单元1_0~处理单元1_N的返回数据。在数据缓存器8_1_1~数据缓存器8_1_N中,数据缓存器8_1_1用于存储存储单元0_1返回给处理单元1_1的返回数据,数据缓存器8_1_2用于存储存储单元0_1返回给处理单元1_2的返回数据,以此类推,数据缓存器8_1_N用于存储存储单元0_1返回给处理单元1_N的返回数据。
类似的,当存储单元0_2~存储单元0_M响应各自的来自处理单元1的请求信息生成返回数据,可以将返回数据发送至对应该处理单元1的数据缓存器8,此处不再赘述。
处理单元选择器4_1可以根据从第一队列3_1读取的调度标识,将从调度标识指示的数据缓存器8中读取的返回数据传输至处理单元1_1。
例如,假设第一队列3_1按照从队首至队尾的方向,依次存储了调度标识M、调度标识1、调度标识2。处理单元选择器4_1可以根据从第一队列3_1的队首取出的调度标识M,从调度标识M指示的存储单元0_M所对应的数据缓存器8_M_1中,取出返回数据并传输至处理单元1_1。此时,在第一队列3_1中,调度标识M出队,调度标识1会变为第一队列3_1的队首。
然后,处理单元选择器4_1可以继续根据从第一队列3_1的队首取出的调度标识1,从调度标识1指示的存储单元0_1所对应的数据缓存器8_1_1中,取出返回数据并传输至处理单元1_1。此时,在第一队列3_1中,调度标识1出队,调度标识2会变为第一队列3_1的队首。
接下来,处理单元选择器4_1可以继续根据从第一队列3_1的队首取出的调度标识2,从调度标识2指示的存储单元0_2所对应的数据缓存器8_2_1中,取出返回数据并传输至处理单元1_1。
类似的,处理单元选择器4_2~处理单元选择器4_N可以根据各自从对应的第一队列3_2~第一队列3_N读取的调度标识,将从调度标识指示的数据缓存器8中读取的返回数据分别传输至处理单元1_2~处理单元1_N,此处不再赘述。
本公开实施例的存储器访问电路中,实现了多个处理单元1访问不同的存储单元0(例如包括部署在不同调度模块中的存储单元),可以为每个处理单元1设置一个第一队列3和与多个存储单元0分别对应的多个数据缓存器8,通过第一队列3记录处理单元1发起对各存储单元0访问时的访问顺序,通过多个数据缓存器8对各存储单元0的返回数据进行缓存,使得处理单元1后发送的请求信息的返回数据先缓存在数据缓存器8中,等待先发起请求信息的返回数据,有利于每个处理单元1获得的返回数据是保序回复(例如按照第一队列3记录的访问顺序回复),进一步提升存储器访问电路的准确性和稳定性。
在一种可能的实现方式中,所述存储器访问电路还包括:与每个处理单元1对应的一个第一调度选择器,与每个存储单元0对应的一个仲裁器、一个第二队列、一个第二调度选择器;所述第一调度选择器用于将从所述处理单元1接收到的请求信息发送至所述调度标识指示的存储单元0的仲裁器;所述仲裁器用于对来自多个处理单元1的请求信息进行仲裁,按照仲裁顺序向存储单元0发送请求信息,以及按照所述仲裁顺序将所述多个处理单元1的处理单元标识写入第二队列;所述第二调度选择器用于根据从所述第二队列读取的处理单元标识,将所述存储单元0的返回数据传输至所述处理单元标识指示的数据缓存器。
图2示出根据本公开实施例的另一种存储器访问电路的示意图,如图2所示,所述存储器访问电路用于访问多个不同的存储单元0,所述存储器访问电路包括:多个处理单元1,与每个处理单元1对应的一个第一调度选择器2、一个第一队列3、一个处理单元选择器4,与每个存储单元0对应一个仲裁器5、一个第二队列6、一个第二调度选择器7、多个数据缓存器8,其中,同一存储单元0对应的多个数据缓存器8分别对应不同的处理单元1。
如图2所示,任一处理单元1的输出端连接对应的一个第一队列3的输入端、对应的一个第一调度选择器2的输入端,所述第一调度选择器2的输出端分别连接每个仲裁器5的输入端;每个仲裁器5的输出端连接对应的存储单元0的输入端、对应的第二队列6的输入端;任一第二调度选择器7的输入端连接对应的存储单元0的输出端、对应的所述第二队列6的输出端,任一第二调度选择器7的输出端分别连接多个数据缓存器8的输入端;连接同一第二调度选择器7的多个数据缓存器8的输出端分别连接不同的处理单元选择器4的输入端,每个处理单元选择器4的输入端还连接一个第一队列3的输出端,每个处理单元选择器4的输出端连接对应的处理单元1的输入端。
在本公开实施例的存储器访问电路中,所述处理单元1用于生成访问存储单元0的请求信息,所述请求信息包括用于指示存储单元0的调度标识,所述第一队列3用于按照所述处理单元1的访问顺序存储所述调度标识,所述第一调度选择器2用于将从所述处理单元1接收到的请求信息发送至所述调度标识指示的存储单元0的仲裁器5。
所述仲裁器5用于对来自多个处理单元1的请求信息进行仲裁,按照仲裁顺序向存储单元0发送请求信息,以及按照所述仲裁顺序将所述多个处理单元1的处理单元标识写入第二队列6。
所述第二调度选择器7用于根据从所述第二队列6读取的处理单元标识,将所述存储单元0的返回数据传输至所述处理单元标识指示的数据缓存器8,所述多个数据缓存器8用于存储所述存储单元0返回给不同处理单元1的返回数据。
所述处理单元选择器4用于根据从所述第一队列3读取的调度标识,将从所述调度标识指示的数据缓存器8中读取的返回数据传输至处理单元1。
在一种可能的实现方式中,存储器访问电路可用于访问M个(M≥1)不同的存储单元0,该存储器访问电路可包括:N个(N≥1)处理单元1、与N个处理单元1分别对应的N个第一调度选择器2、N个第一队列3、N个处理单元选择器4,与M个存储单元0分别对应的M个仲裁器5、M个第二队列6、M个第二调度选择器7、M组数据缓存器8,每组数据缓存器8可包括N个数据缓存器8,每组的N个数据缓存器8分别对应N个处理单元1。
应当理解,本公开的实施例对存储单元0的数量M和处理单元1的数量N不作限制,可根据实际的应用场景,设置M和N的取值。
在一种可能的实现方式中,第一队列3和第二队列6可以是先入先出(First InputFirst Output,FIFO)队列,即第一个进入其内的数据第一个被移出。
如图2所示,M个存储单元0可以分别为存储单元0_1~存储单元0_M,N个处理单元1可分别为处理单元1_1~处理单元1_N。
N个第一调度选择器2可分别为第一调度选择器2_1~第一调度选择器2_N,即:与处理单元1_1对应的第一调度选择器2_1,与处理单元1_2对应的第一调度选择器2_2,以此类推,与处理单元1_N对应的第一调度选择器2_N。
N个第一队列3可分别为第一队列3_1~第一队列3_N,即:与处理单元1_1对应的第一队列3_1,与处理单元1_2对应的第一队列3_2,以此类推,与处理单元1_N对应的第一队列3_N。
N个处理单元选择器4可分别为处理单元选择器4_1~处理单元选择器4_N,即:与处理单元1_1对应的处理单元选择器4_1,与处理单元1_2对应的处理单元选择器4_2,以此类推,与处理单元1_N对应的处理单元选择器4_N。
M个仲裁器5可以分别为仲裁器5_1~仲裁器5_M;M个第二队列6可分别为第二队列6_1~第二队列6_M;M个第二调度选择器7可分别为第二调度选择器7_1~第二调度选择器7_M;M组数据缓存器8例如包括:数据缓存器8_1_1~数据缓存器8_1_N,数据缓存器8_2_1~数据缓存器8_2_N,以此类推,数据缓存器8_M_1~数据缓存器8_M_N。
其中,仲裁器5_1、第二队列6_1、第二调度选择器7_1、数据缓存器8_1_1~数据缓存器8_1_N与存储单元0_1对应;仲裁器5_2、第二队列6_2、第二调度选择器7_2、数据缓存器8_2_1~数据缓存器8_2_N与存储单元0_2对应;以此类推,仲裁器5_M、第二队列6_M、第二调度选择器7_M、数据缓存器8_M_1~数据缓存器8_M_N与存储单元0_M对应。
在示例中,同一存储单元0对应的N个数据缓存器8分别对应N个处理单元1。例如,在与存储单元0_1对应的数据缓存器8_1_1~数据缓存器8_1_N中,数据缓存器8_1_1对应处理单元1_1,数据缓存器8_1_2对应处理单元1_2,以此类推,数据缓存器8_1_N对应处理单元1_N。
又例如,在与存储单元0_2对应的数据缓存器8_2_1~数据缓存器8_2_N中,数据缓存器8_2_1对应处理单元1_1,数据缓存器8_2_2对应处理单元1_2,以此类推,数据缓存器8_2_N对应处理单元1_N。
类似地,在与存储单元0_M对应的数据缓存器8_M_1~数据缓存器8_M_N中,数据缓存器8_M_1对应处理单元1_1,数据缓存器8_M_2对应处理单元1_2,以此类推,数据缓存器8_M_N对应处理单元1_N。
如图2所示,任一处理单元1的输出端连接对应的一个第一队列3的输入端、对应的一个第一调度选择器2的输入端。
例如,处理单元1_1的输出端分别连接第一队列3_1的输入端和第一调度选择器2_1的输入端;处理单元1_2的输出端分别连接第一队列3_2的输入端和第一调度选择器2_2的输入端;以此类推,处理单元1_N的输出端分别连接第一队列3_N的输入端和第一调度选择器2_N的输入端。
其中,处理单元1_1可生成访问存储单元0_1~访问存储单元0_M中任一存储单元0的请求信息,该请求信息可包括用于指示存储单元0的调度标识。例如,假设存在调度标识1~M,调度标识1可用于指示存储单元0_1,调度标识2可用于指示存储单元0_2,以此类推,调度标识M可用于指示存储单元0_M。在此情况下,如果处理单元1_1中生成的请求信息包括调度标识1,处理单元1_1可以访问存储单元0_1;如果处理单元1_1中生成的请求信息包括调度标识2,处理单元1_1可以访问存储单元0_2;以此类推,如果处理单元1_1中生成的请求信息包括调度标识M,处理单元1_1可以访问存储单元0_M。类似的,处理单元1_2~处理单元1_N同样可以生成访问存储单元0_1~访问存储单元0_M中任一存储单元0的请求信息,具体可以参考处理单元1_1,此处不再赘述。
处理单元1_1可以将生成的请求信息发送至第一调度选择器2_1,并将该请求信息的调度标识写入第一队列3_1,第一队列3_1用于按照处理单元1_1的访问顺序存储调度标识,该访问顺序也即处理单元1_1生成请求信息的生成顺序。
例如,如果处理单元1_1连续生成了三个请求信息,其中,第一个请求信息包括调度标识M,第二个请求信息包括调度标识1,第三个请求信息包括调度标识2。处理单元1_1将第一个请求信息发送至第一调度选择器2_1,可以同步将调度标识M写入第一队列3_1;处理单元1_1将第二个请求信息发送至第一调度选择器2_1,可以同步将调度标识1写入第一队列3_1;处理单元1_1将第三个请求信息发送至第一调度选择器2_1,可以同步将调度标识2写入第一队列3_1。在此情况下,第一队列3_1按照了处理单元1_1的访问顺序(例如先访问调度标识M指示的存储单元0_M,再访问调度标识1指示的存储单元0_1,然后访问调度标识2指示的存储单元0_2),在从队首至队尾的方向,依次存储了调度标识M、调度标识1、调度标识2。
类似的,处理单元1_2~处理单元1_N可以分别将各自生成的请求信息发送至对应的第一调度选择器2_2~第一调度选择器2_N,并将各自的请求信息的调度标识分别写入对应的第一队列3_2~第一队列3_N,以使第一队列3_2~第一队列3_N按照各自负责的处理单元1_2~处理单元1_N的访问顺序存储调度标识,此处不再赘述。
如图2所示,第一调度选择器2的输出端分别连接每个仲裁器5的输入端。
例如,第一调度选择器2_1的输出端分别连接仲裁器5_1的输入端~仲裁器5_M的输入端;第一调度选择器2_2的输出端分别连接仲裁器5_1的输入端~仲裁器5_M的输入端;以此类推,第一调度选择器2_N的输出端分别连接仲裁器5_1的输入端~仲裁器5_M的输入端。
这样,第一调度选择器2_1可用于将从处理单元1_1接收到的请求信息发送至仲裁器5_1~仲裁器5_M中的任一仲裁器,进一步,第一调度选择器2_1还可以根据调度标识的指示,从仲裁器5_1~仲裁器5_M中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即调度标识指示的存储单元0所对应的仲裁器5。
例如,假设存在调度标识1~M,调度标识1可用于指示存储单元0_1,调度标识2可用于指示存储单元0_2,以此类推,调度标识M可用于指示存储单元0_M。在此情况下,如果第一调度选择器2_1收到的请求信息包括调度标识1,可以将该请求信息发送至调度标识1指示的存储单元0_1所对应的仲裁器5_1;如果第一调度选择器2_1收到的请求信息包括调度标识2,可以将该请求信息发送至调度标识2指示的存储单元0_2所对应的仲裁器5_2;以此类推,如果第一调度选择器2_1收到的请求信息包括调度标识M,可以将该请求信息发送至调度标识M指示的存储单元0_M所对应的仲裁器5_M。
类似的,第一调度选择器2_2~第一调度选择器2_N同样可以将接收到的请求信息发送至仲裁器5_1~仲裁器5_M中的任一仲裁器,进一步,第一调度选择器2_2~第一调度选择器2_N还可以将请求信息发送至调度标识指示的存储单元0所对应的仲裁器5,此处不再赘述。
如图2所示,每个仲裁器5的输出端连接对应的存储单元0的输入端、对应的第二队列6的输入端。
例如,仲裁器5_1的输出端分别连接存储单元0_1和第二队列6_1的输入端;仲裁器5_2的输出端分别连接存储单元0_2和第二队列6_2的输入端;以此类推,仲裁器5_M的输出端分别连接存储单元0_M和第二队列6_M的输入端。
这样,仲裁器5_1可以对访问存储单元0_1的、来自处理单元1_1~处理单元1_N的不同的请求信息进行轮询仲裁(round robin),从N个请求信息中选出当前轮的一个目标请求信息发送至存储单元0_1,并将当前轮的目标请求信息隶属的处理单元的标识信息,即处理单元标识,写入第二队列6_1。由于在每轮仲裁中,第二队列6_1可记录一个处理单元标识,经过多轮仲裁,第二队列6_1可记录仲裁器5_1的仲裁顺序,也即不同处理单元访问同一存储单元0_1的访问顺序。
其中,第二队列6_1写入的机制是:仲裁器5_1选出一个处理单元标识时再进行第二队列6_1的写入。例如,仲裁器5_1可以持续对来自处理单元1_1~处理单元1_N的请求信息进行轮询仲裁,第一轮选出来自处理单元1_N的请求信息,可以将用于指示自处理单元1_N的处理单元标识N写入第二队列6_1;第二轮选出来自处理单元1_2的请求信息,可以将用于指示自处理单元1_2的处理单元标识2写入第二队列6_1;第三轮选出来自处理单元1_1的请求信息,可以将用于指示自处理单元1_1的处理单元标识1写入第二队列6_1。在此情况下,第二队列6_1按照了仲裁器5_1的仲裁顺序(例如处理单元标识N指示的处理单元1_N先访问存储单元0_1,处理单元标识2指示的处理单元1_2再访问存储单元0_1,然后处理单元标识1指示的处理单元1_1访问存储单元0_1),在从队首至队尾的方向,依次存储了处理单元标识N、处理单元标识2、处理单元标识1。
类似的,仲裁器5_2~仲裁器5_M同样可以对来自处理单元1_1~处理单元1_N的请求信息进行轮询仲裁(round robin),按照各自的仲裁顺序分别向对应的存储单元0_2~存储单元0_M发送请求信息,以及按照各自的仲裁顺序分别将处理单元标识写入对应的第二队列6_2~第二队列6_M,此处不再赘述。
通过这种方式,在多个不同的处理单元1访问同一存储单元0时,可以通过相应的仲裁器5按照仲裁顺序确定访问存储单元0的顺序,并可以通过第二队列6记录该仲裁顺序。
如图2所示,任一第二调度选择器7的输入端连接对应的存储单元0的输出端、对应的所述第二队列6的输出端,任一第二调度选择器7的输出端分别连接多个数据缓存器8的输入端。
例如,存储单元0_1的输出端和第二队列6_1的输出端,分别连接第二调度选择器7_1的输入端,第二调度选择器7_1的输出端按照一连多的方式,分别连接数据缓存器8_1_1的输入端~数据缓存器8_1_N的输入端;存储单元0_2的输出端和第二队列6_2的输出端,分别连接第二调度选择器7_2的输入端,第二调度选择器7_2的输出端按照一连多的方式,分别连接数据缓存器8_2_1的输入端~数据缓存器8_2_N的输入端;以此类推,存储单元0_M的输出端和第二队列6_M的输出端,分别连接第二调度选择器7_M的输入端,第二调度选择器7_M的输出端按照一连多的方式,分别连接数据缓存器8_M_1的输入端~数据缓存器8_M_N的输入端。
这样,当存储单元0_1响应请求信息向第二调度选择器7_1发送返回数据时,第二调度选择器7_1可以根据从第二队列6_1的队首读出的处理单元标识,将接收到的返回数据发送至该处理单元标识指示的数据缓存器8。其中,数据缓存器8_1_1~数据缓存器8_1_N可用于存储存储单元0_1返回给处理单元1_0~处理单元1_N的返回数据。在数据缓存器8_1_1~数据缓存器8_1_N中,数据缓存器8_1_1用于存储存储单元0_1返回给处理单元1_1的返回数据,数据缓存器8_1_2用于存储存储单元0_1返回给处理单元1_2的返回数据,以此类推,数据缓存器8_1_N用于存储存储单元0_1返回给处理单元1_N的返回数据。
例如,假设第二队列6_1按照从队首至队尾的方向,依次存储了处理单元标识N、处理单元标识2、处理单元标识1。第二调度选择器7_1接收到存储单元0_1发送的返回数据,可以从第二队列6_1的队首读取处理单元标识N,将接收到的返回数据发送至该处理单元标识N指示的处理单元1_N对应的数据缓存器8_1_N。此时,在第二队列6_1中,处理单元标识N出队,处理单元标识2会变为第二队列6_1的队首。
第二调度选择器7_1再次接收到存储单元0_1发送的返回数据,可以继续从第二队列6_1的队首读取处理单元标识2,将接收到的返回数据发送至该处理单元标识2指示的处理单元1_2对应的数据缓存器8_1_2。此时,在第二队列6_1中,处理单元标识2出队,处理单元标识1会变为第二队列6_1的队首。
然后,第二调度选择器7_1再次接收到存储单元0_1发送的返回数据,可以继续从第二队列6_1的队首读取处理单元标识1,将接收到的返回数据发送至该处理单元标识1指示的处理单元1_1对应的数据缓存器8_1_1。
类似的,当存储单元0_2~存储单元0_M响应各自的请求信息分别向对应的第二调度选择器7_2~第二调度选择器7_M发送返回数据时,第二调度选择器7_2~第二调度选择器7_M可以根据各自从对应的第二队列6_2~第二队列6_M的队首读出的处理单元标识,将接收到的返回数据发送至该处理单元标识指示的数据缓存器8,此处不再赘述。
如图2所示,连接同一第二调度选择器7的多个数据缓存器8的输出端分别连接不同的处理单元选择器4的输入端,每个处理单元选择器4的输入端还连接一个第一队列3的输出端,每个处理单元选择器4的输出端连接对应的处理单元1的输入端。
例如,数据缓存器8_1_1~数据缓存器8_M_1的输出端、第一队列3_1的输出端按照多连一的方式,连接处理单元选择器4_1的输入端,处理单元选择器4_1的输出端连接处理单元1_1的输入端;数据缓存器8_1_2~数据缓存器8_M_2的输出端、第一队列3_2的输出端按照多连一的方式,连接处理单元选择器4_2的输入端,处理单元选择器4_2的输出端连接处理单元1_2的输入端;以此类推,数据缓存器8_1_N~数据缓存器8_M_N的输出端、第一队列3_N的输出端按照多连一的方式,连接处理单元选择器4_N的输入端,处理单元选择器4_N的输出端连接处理单元1_N的输入端。
这样,处理单元选择器4_1可以根据从第一队列3_1读取的调度标识,将从调度标识指示的数据缓存器8中读取的返回数据传输至处理单元1_1。
例如,假设第一队列3_1按照从队首至队尾的方向,依次存储了调度标识M、调度标识1、调度标识2。处理单元选择器4_1可以根据从第一队列3_1的队首取出的调度标识M,从调度标识M指示的存储单元0_M所对应的数据缓存器8_M_1中,取出返回数据并传输至处理单元1_1。此时,在第一队列3_1中,调度标识M出队,调度标识1会变为第一队列3_1的队首。
然后,处理单元选择器4_1可以继续根据从第一队列3_1的队首取出的调度标识1,从调度标识1指示的存储单元0_1所对应的数据缓存器8_1_1中,取出返回数据并传输至处理单元1_1。此时,在第一队列3_1中,调度标识1出队,调度标识2会变为第一队列3_1的队首。
接下来,处理单元选择器4_1可以继续根据从第一队列3_1的队首取出的调度标识2,从调度标识2指示的存储单元0_2所对应的数据缓存器8_2_1中,取出返回数据并传输至处理单元1_1。
类似的,处理单元选择器4_2~处理单元选择器4_N可以根据各自从对应的第一队列3_2~第一队列3_N读取的调度标识,将从调度标识指示的数据缓存器8中读取的返回数据分别传输至处理单元1_2~处理单元1_N,此处不再赘述。
本公开实施例的存储器访问电路中,实现了多个处理单元1访问不同的存储单元0(例如包括部署在不同调度模块中的存储单元),当多个处理单元1访问存储单元0时,可以通过第二队列6存储处理单元1的处理单元标识,来记录多个处理单元1的访问顺序,当存储单元0回复返回数据时,可以根据第二队列6记录的仲裁顺序,将存储单元0的返回数据准确地传输至各处理单元1。进一步,可以为每个处理单元1设置一个第一队列3和与多个存储单元0分别对应的多个数据缓存器8,通过第一队列3记录处理单元1发起对各存储单元0访问时的访问顺序,通过多个数据缓存器8对各存储单元0的返回数据进行缓存,使得处理单元1后发送的请求信息的返回数据先缓存在数据缓存器8中,等待先发起请求信息的返回数据,有利于每个处理单元1获得的返回数据是保序回复(例如按照第一队列3记录的访问顺序回复),进一步提升存储器访问电路的准确性和稳定性。
下面以存储单元0的数量和处理单元1的数量均为3作为一个示例,对本公开实施例的存储器访问电路进行展开说明。应当理解,本公开对存储单元0和处理单元1的数量不作具体限制,可根据实际的应用场景进行设置。
图3示出根据本公开实施例的存储器访问电路的示意图,如图3所示的存储访问电路用于解决3个不同的处理单元1访问3个不同的调度模块中的存储单元0。其中,3个处理单元1可以分别为:处理单元1_1、处理单元1_2,以及处理单元1_3;3个存储单元0可以分别为:部署在调度模块1中的存储单元0_1、部署在调度模块2中的存储单元0_2,以及部署在调度模块3中的存储单元0_3。
如图3所示,处理单元1_1的输出端分别连接第一队列3_1的输入端和第一调度选择器2_1的输入端,第一调度选择器2_1的输出端分别连接仲裁器5_1的输入端~仲裁器5_3的输入端;处理单元1_2的输出端分别连接第一队列3_2的输入端和第一调度选择器2_2的输入端,第一调度选择器2_2的输出端分别连接仲裁器5_1的输入端~仲裁器5_3的输入端;处理单元1_3的输出端分别连接第一队列3_3的输入端和第一调度选择器2_3的输入端,第一调度选择器2_3的输出端分别连接仲裁器5_1的输入端~仲裁器5_3的输入端。
其中,任一处理单元1可生成用于访问存储单元0的请求信息,该请求信息可包括调度标识,该调度标识用于指示第一调度选择器2将从处理单元1接收到的请求信息,发送至调度标识指示的存储单元0对应的仲裁器5。
应当理解,请求信息还可以包括请求类型(例如包括读请求和/或写请求)、访问地址(例如读请求的地址,或,写请求的地址)、使能信号(例如使当前请求信息具有某一存储单元的读写权限的信号)等,本公开对此不作具体限制。
在示例中,调度标识可以是位宽为2比特(bit)的二进制数据,其中,调度标识为00,表示访问调度模块1中的存储单元0_1;调度标识为01,表示访问调度模块2中的存储单元0_2;调度标识10,表示访问调度模块3中的存储单元0_3。
如果处理单元1_1~处理单元1_3生成的请求信息都包括调度标识00,第一调度选择器2_1~第一调度选择器2_3会根据调度标识00的指示,将本次各自接收到的包括了调度标识00的请求信息发送至仲裁器5_1。仲裁器5_1会收到第一调度选择器2_1转发的来自处理单元1_1的请求信息、第一调度选择器2_2转发的来自处理单元1_2的请求信息、第一调度选择器2_3转发的来自处理单元1_3的请求信息。
如果处理单元1_1~处理单元1_3生成的请求信息都包括调度标识01,第一调度选择器2_1~第一调度选择器2_3会根据调度标识01的指示,将本次各自接收到的包括了调度标识01的请求信息发送至仲裁器5_2。仲裁器5_2会收到第一调度选择器2_1转发的来自处理单元1_1的请求信息、第一调度选择器2_2转发的来自处理单元1_2的请求信息、第一调度选择器2_3转发的来自处理单元1_3的请求信息。
如果处理单元1_1~处理单元1_3生成的请求信息都包括调度标识为10,第一调度选择器2_1~第一调度选择器2_3会根据调度标识10的指示,将本次各自接收到的包括了调度标识10的请求信息发送至仲裁器5_3。仲裁器5_3会收到第一调度选择器2_1转发的来自处理单元1_1的请求信息、第一调度选择器2_2转发的来自处理单元1_2的请求信息、第一调度选择器2_3转发的来自处理单元1_3的请求信息。
通过在请求信息中设置调度标识,有利于将请求信息更准确的传输至调度标识指示的存储单元0。
在实际的应用中,可以根据存储单元0的数量确定调度标识的位宽。例如,假设存储单元0的数量为M,调度标识的位宽为W,可以通过求解不等式2^W≥M,确定调度标识的位宽W,其中,2^W表示W个2相乘。
其中,在硬件资源比较紧张的情况下,为了节省硬件资源,可以将满足不等式2^W≥M的W的最小整数值作为调度标识的位宽。在硬件资源比较充足的情况下,为了增加可读性,可以将存储单元0的数量作为调度标识的位宽。例如,如图3所示,存在3个存储单元,即:存储单元01~存储单元03,调度标识可以是位宽为3比特(bit)的二进制数据,其中,调度标识为001,表示访问调度模块1中的存储单元0_1;调度标识为010,表示访问调度模块2中的存储单元0_2;调度标识100,表示访问调度模块3中的存储单元0_3。本公开对此不作具体限制。
在上述过程中,处理单元1_1将生成的请求信息发送至第一调度选择器2_1,还会同步将该请求信息的调度标识写入第一队列3_1,第一队列3_1用于按照处理单元1_1的访问顺序存储调度标识,该访问顺序也即处理单元1_1生成请求信息的生成顺序。
例如,假设处理单元1_1的并发度为3,即在不等待请求信息的返回数据的情况下,最多可以发出3个请求信息。已知处理单元1_1连续生成了三个请求信息,其中,第一个请求信息包括指示调度模块1中存储单元0_3的调度标识100,第二个请求信息包括指示调度模块1中存储单元0_1的调度标识001,第三个请求信息包括指示调度模块2中存储单元0_2的调度标识010。
处理单元1_1将第一个请求信息发送至第一调度选择器2_1,可以同步将调度标识100写入第一队列3_1;处理单元1_1将第二个请求信息发送至第一调度选择器2_1,可以同步将调度标识001写入第一队列3_1;处理单元1_1将第三个请求信息发送至第一调度选择器2_1,可以同步将调度标识010写入第一队列3_1。在此情况下,第一队列3_1按照处理单元1_1的访问顺序(例如先访问调度标识100指示的存储单元0_3,再访问调度标识001指示的存储单元0_1,然后访问调度标识010指示的存储单元0_2),在从队首至队尾的方向,依次存储了调度标识100、调度标识001、调度标识010。
类似的,处理单元1_2~处理单元1_N可以分别将各自生成的请求信息发送至对应的第一调度选择器2_2~第一调度选择器2_N,并将各自的请求信息的调度标识分别写入对应的第一队列3_2~第一队列3_N,以使第一队列3_2~第一队列3_N按照各自负责的处理单元1_2~处理单元1_N的访问顺序存储调度标识,此处不再赘述。
通过这种方式,第一队列3记录了处理单元1访问存储单元0的访问顺序,有利于后续每个处理单元1获得的返回数据是保序的回复。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器9、每个仲裁器5的输出端通过至少一个第一缓冲器9连接对应的存储单元0的输入端。在存储器访问电路中设置第一缓冲器9,第一缓冲器9增强了仲裁器5向存储单元0进行数据传输的驱动力,减少了在布线(flowplan)过程中因走线过长,导致信号驱动能力不足的概率。例如,在实际的应用中,在仲裁器5与存储单元0的连线比较长的场景下,如果不设置第一缓冲器9,信号会随着芯片(或电路板)上的走线而衰减,导致了漏传输或错误传输请求信息的情况。通过在仲裁器5与存储单元0之间设置第一缓冲器9,可以为信号传输提供更强的驱动力,使仲裁器5发出的请求信息可以正确传输至存储单元0。
而且,在存储器访问电路中设置第一缓冲器9,还可以通过第一缓冲器9存储数据,将一次的访问请求(例如由仲裁器5仲裁后的请求信息)进行缓存,其中,第一缓冲器9与仲裁器5之间可采用握手(Handshake)的方式进行数据交互。
如图3所示,每个仲裁器5的输出端通过两个第一缓冲器9连接对应的存储单元0的输入端。例如,仲裁器5_1的输出端通过两个第一缓冲器9连接存储单元0_1的输入端;仲裁器5_2的输出端通过两个第一缓冲器9连接存储单元0_2的输入端;仲裁器5_3的输出端通过两个第一缓冲器9连接存储单元0_3的输入端。
并且,每个仲裁器5的输出端还与对应的第二队列6的输入端相连接。例如,仲裁器5_1的输出端连接第二队列6_1的输入端;仲裁器5_2的输出端连接第二队列6_2的输入端;仲裁器5_3的输出端连接第二队列6_3的输入端。
其中,第二队列6用于存储根据仲裁器5选出的处理单元标识,所述处理单元标识用于指示处理单元1。例如,假设处理单元标识001指示处理单元1_1,处理单元标识010指示处理单元1_2,处理单元标识100指示处理单元1_3。在三个处理单元1_1~处理单元1_3同时发起对某一存储单元0的访问请求的情况下,若仲裁器5选中来自处理单元1_1的请求信息,仲裁器5将往第二队列6中写入处理单元1_1的处理单元标识001;若仲裁器5选中来自处理单元1_2的请求信息,仲裁器5将往第二队列6中写入处理单元1_2的处理单元标识010;若仲裁器5选中来自处理单元1_3的请求信息,仲裁器5将往第二队列6中写入处理单元1_3的处理单元标识100。在这个过程中,第二队列6的写入的机制是仲裁器5选出一个处理单元1时,才会进行对第二队列6的写入。
在示例中,仲裁器5_1可以对访问存储单元0_1的、来自处理单元1_1~处理单元1_3的不同的请求信息进行轮询仲裁(round robin),从3个请求信息中选出当前轮的一个目标请求信息,经过两个第一缓冲器9发送至存储单元0_1,并将当前轮的目标请求信息对应的处理单元标识写入第二队列6_1。由于在每轮仲裁中,第二队列6_1可记录一个处理单元的处理单元标识,经过多轮仲裁,第二队列6_1可记录仲裁器5_1的仲裁顺序,也即不同处理单元访问存储单元0_1的访问顺序。
例如,处理单元1_1~处理单元1_3同时发起对调度模块1中的存储单元0_1的访问请求,仲裁器5_1会同时收到来自处理单元1_1~处理单元1_3的请求信息,仲裁器5_1可以采用轮询仲裁(round robin)的方式,将访问同一个调度模块1的不同处理单元(处理单元1_1~处理单元1_3)的请求信息进行仲裁。
若仲裁器5_1选中来自处理单元1_1的请求信息,则仲裁器5_1将来自处理单元1_1的请求信息,经过两个第一缓冲器9发送至存储单元0_1,并且,仲裁器5_1往第二队列6_1中写入处理单元1_1的处理单元标识001;若仲裁器5_1选中来自处理单元1_2的请求信息,则仲裁器5_1将来自处理单元1_2的请求信息,经过两个第一缓冲器9发送至存储单元0_1,并且,仲裁器5_1往第二队列6_1中写入处理单元1_2的处理单元标识010;若仲裁器5_1选中来自处理单元1_3的请求信息,则仲裁器5_1将来自处理单元1_3的请求信息,经过两个第一缓冲器9发送至存储单元0_1,并且仲裁器5_1往第二队列6_1中写入处理单元1_3的处理单元标识100。
在示例中,仲裁器5_2可以对访问存储单元0_2的、来自处理单元1_1~处理单元1_3的不同的请求信息进行轮询仲裁(round robin),从3个请求信息中选出当前轮的一个目标请求信息,经过两个第一缓冲器9发送至存储单元0_2,并将当前轮的目标请求信息对应的处理单元标识写入第二队列6_2。由于在每轮仲裁中,第二队列6_2可记录一个处理单元的处理单元标识,经过多轮仲裁,第二队列6_2可记录仲裁器5_2的仲裁顺序,也即不同处理单元访问存储单元0_2的访问顺序。
例如,处理单元1_1~处理单元1_3同时发起对调度模块2中的存储单元0_2的访问请求,仲裁器5_2会同时收到来自处理单元1_1~处理单元1_3的请求信息,仲裁器5_2可以采用轮询仲裁(round robin)的方式,将访问同一个调度模块2的不同处理单元(处理单元1_1~处理单元1_3)的请求信息进行仲裁。
若仲裁器5_2选中来自处理单元1_1的请求信息,则仲裁器5_2将来自处理单元1_1的请求信息,经过两个第一缓冲器9发送至存储单元0_2,并且,仲裁器5_2往第二队列6_2中写入处理单元1_1的处理单元标识001;若仲裁器5_2选中来自处理单元1_2的请求信息,则仲裁器5_2将来自处理单元1_2的请求信息,经过两个第一缓冲器9发送至存储单元0_2,并且,仲裁器5_2往第二队列6_2中写入处理单元1_2的处理单元标识010;若仲裁器5_2选中来自处理单元1_3的请求信息,则仲裁器5_2将来自处理单元1_3的请求信息,经过两个第一缓冲器9发送至存储单元0_2,并且仲裁器5_2往第二队列6_2中写入处理单元1_3的处理单元标识100。
在示例中,仲裁器5_3可以对访问存储单元0_3的、来自处理单元1_1~处理单元1_3的不同的请求信息进行轮询仲裁(round robin),从3个请求信息中选出当前轮的一个目标请求信息,经过两个第一缓冲器9发送至存储单元0_3,并将当前轮的目标请求信息对应的处理单元标识写入第二队列6_3。由于在每轮仲裁中,第二队列6_3可记录一个处理单元的处理单元标识,经过多轮仲裁,第二队列6_3可记录仲裁器5_3的仲裁顺序,也即不同处理单元访问存储单元0_3的访问顺序。
例如,处理单元1_1~处理单元1_3同时发起对调度模块3中的存储单元0_3的访问请求,仲裁器5_3会同时收到来自处理单元1_1~处理单元1_3的请求信息,仲裁器5_3可以采用轮询仲裁(round robin)的方式,将访问同一个调度模块2的不同处理单元(处理单元1_1~处理单元1_3)的请求信息进行仲裁。
若仲裁器5_3选中来自处理单元1_1的请求信息,则仲裁器5_3将来自处理单元1_1的请求信息,经过两个第一缓冲器9发送至存储单元0_3,并且,仲裁器5_3往第二队列6_3中写入处理单元1_1的处理单元标识001;若仲裁器5_3选中来自处理单元1_2的请求信息,则仲裁器5_3将来自处理单元1_2的请求信息,经过两个第一缓冲器9发送至存储单元0_3,并且,仲裁器5_3往第二队列6_3中写入处理单元1_2的处理单元标识010;若仲裁器5_3选中来自处理单元1_3的请求信息,则仲裁器5_3将来自处理单元1_3的请求信息,经过两个第一缓冲器9发送至存储单元0_3,并且仲裁器5_3往第二队列6_3中写入处理单元1_3的处理单元标识100。
通过这种方式,在多个不同的处理单元1访问同一存储单元0时,可以通过相应的仲裁器5按照仲裁顺序确定访问存储单元0的访问顺序,并可以通过第二队列6记录该仲裁顺序。
在一种可能的实现方式中,所述仲裁器5的输出位宽和所述第二队列6的位宽是根据所述处理单元1的数量确定的。示例性地,仲裁器5的输出位宽和第二队列6的位宽可以与处理单元标识的位宽相同,如图3所示,存储器访问电路包括了三个处理单元1,可以将仲裁器5的输出位宽和第二队列6的位宽设置为3比特(bit),用处理单元标识001表征处理单元1_1,用处理单元标识010表征处理单元1_2,用处理单元标识010表征处理单元1_3。又例如,如果存储器访问电路存在10个处理单元1,则可以对硬件电路中仲裁器5调整为10选1,第二队列6位宽由3比特(bit)扩展为10比特(bit)。应当理解,每增加一个处理单元1,仲裁器5就增加1比特(bit),第二队列6的位宽也增加1比特(bit),本公开对仲裁器5的输出位宽和第二队列6的位宽不作具体限制。
在一种可能的实现方式中,所述第二队列6存储处理单元标识的数量小于或等于所述第二队列6的深度。其中,第二队列6写入的机制是仲裁器5选出一个处理单元1时才进行第二队列6的一次写入;假设第二队列6的深度为4,表示每个第二队列6最多可以写入4次请求信息的调度标识,在此情况下,第二队列6存储的调度标识的数量小于或等于第二队列6的深度4。在实际的应用中,可以根据具体的应用场景确定第二队列6的深度,本公开对此不作限制。
上面介绍了各处理单元1向各存储单元0发送请求信息的过程,下面介绍各存储单元0响应于各处理单元1的请求信息,各存储单元0向各处理单元1回传返回数据的过程。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器10,每个第二调度选择器7的输入端通过至少一个第二缓冲器10连接对应的存储单元0的输出端。在存储器访问电路中设置第二缓冲器10,第二缓冲器10增强了存储单元0向第二调度选择器7进行数据传输的驱动力,减少了在布线(flowplan)过程中因走线过长,导致信号驱动能力不足的概率。例如,在实际的应用中,在存储单元0与第二缓冲器10的连线比较长的场景下,如果不设置第二缓冲器10,信号会随着芯片(或电路板)上的走线而衰减,导致了漏传输或错误传输返回数据的情况。通过在存储单元0与第二调度选择器7之间设置第二缓冲器10,可以为信号传输提供更强的驱动力,使存储单元0发出的返回数据可以正确传输至第二调度选择器7。
而且,在存储器访问电路中设置第二缓冲器10,还可以通过第二缓冲器10存储数据,将一次的返回数据(例如存储单元0响应请求信息所发送的返回数据)进行缓存,其中,第二缓冲器10与第二调度选择器7之间可采用握手(Handshake)的方式进行数据交互。
如图3所示,任一第二调度选择器7的输入端通过两个第二缓冲器10连接对应的存储单元0的输出端,并且,任一第二调度选择器7的输入端还会连接对应的所述第二队列6的输出端。例如,存储单元0_1的输出端通过两个第二缓冲器10连接第二调度选择器7_1的输入端,并且,第二调度选择器7_1的输入端和第二队列6_1的输出端也相连接;存储单元0_2的输出端通过两个第二缓冲器10连接第二调度选择器7_2的输入端,并且,第二调度选择器7_2的输入端和第二队列6_2的输出端也相连接;存储单元0_3的输出端通过两个第二缓冲器10连接第二调度选择器7_3的输入端,并且,第二调度选择器7_3的输入端和第二队列6_3的输出端也相连接。
如图3所示,任一第二调度选择器7的输出端分别连接多个数据缓存器8的输入端。例如,第二调度选择器7_1的输出端按照一连多的方式,分别连接数据缓存器8_1_1的输入端~数据缓存器8_1_3的输入端;第二调度选择器7_2的输出端按照一连多的方式,分别连接数据缓存器8_2_1的输入端~数据缓存器8_2_3的输入端;第二调度选择器7_3的输出端按照一连多的方式,分别连接数据缓存器8_3_1的输入端~数据缓存器8_3_3的输入端。
在示例中,当存储单元0_1响应请求信息,向第二调度选择器7_1发送返回数据时,第二调度选择器7_1可以根据从第二队列6_1的队首读出的处理单元标识,将接收到的返回数据发送至该处理单元标识指示的处理单元1对应的数据缓存器8;例如,假设处理单元标识001指示处理单元1_1,处理单元标识010指示处理单元1_2,处理单元标识100指示处理单元1_3。在此情况下,如果第二调度选择器7_1从第二队列6_1的队首读出的处理单元标识为001,可以将接收到的返回数据发送至该处理单元标识001指示的处理单元1_1对应的数据缓存器8_1_1;如果第二调度选择器7_1从第二队列6_1的队首读出的处理单元标识为010,可以将接收到的返回数据发送至该处理单元标识010指示的处理单元1_2对应的数据缓存器8_1_2;如果第二调度选择器7_1从第二队列6_1的队首读出的处理单元标识为100,可以将接收到的返回数据发送至该处理单元标识100指示的处理单元1_3对应的数据缓存器8_1_3。
其中,由于第二队列6_1的存储机制为先入先出,因此,如果第二队列6_1记录的仲裁器5_1的写入信息(多个处理单元标识)为001,100,010;则表示仲裁器5_1选中处理单元1的仲裁顺序为处理单元1_1、处理单元1_3、处理单元1_2;则返回数据也应按照写入时的仲裁顺序返回处理单元1_1、处理单元1_3、处理单元1_2。第二调度选择器7_1可以按照仲裁顺序从第二队列6_1的队头依次读出处理单元标识001、处理单元标识100、处理单元标识010,将接收到的返回数据按照仲裁顺序依次发送至处理单元1_1对应的数据缓存器8_1_1、处理单元1_3对应的数据缓存器8_1_3、处理单元1_2对应的数据缓存器8_1_2。
在示例中,当存储单元0_2响应请求信息,向第二调度选择器7_2发送返回数据时,第二调度选择器7_2可以根据从第二队列6_2的队首读出的处理单元标识,将接收到的返回数据发送至该处理单元标识指示的处理单元1对应的数据缓存器8;例如,假设处理单元标识001指示处理单元1_1,处理单元标识010指示处理单元1_2,处理单元标识100指示处理单元1_3。在此情况下,如果第二调度选择器7_2从第二队列6_2的队首读出的处理单元标识为001,可以将接收到的返回数据发送至该处理单元标识001指示的处理单元1_1对应的数据缓存器8_2_1;如果第二调度选择器7_2从第二队列6_2的队首读出的处理单元标识为010,可以将接收到的返回数据发送至该处理单元标识010指示的处理单元1_2对应的数据缓存器8_2_2;如果第二调度选择器7_2从第二队列6_2的队首读出的处理单元标识为100,可以将接收到的返回数据发送至该处理单元标识100指示的处理单元1_3对应的数据缓存器8_2_3。
其中,由于第二队列6_2的存储机制为先入先出,因此,如果第二队列6_2记录的仲裁器5_2的写入信息(多个处理单元标识)为001,010,100;则表示仲裁器5_2选中处理单元1的仲裁顺序为处理单元1_1、处理单元1_2、处理单元1_3;则返回数据也应按照写入时的仲裁顺序返回为处理单元1_1、处理单元1_2、处理单元1_3。第二调度选择器7_2可以按照仲裁顺序从第二队列6_2的队头依次读出处理单元标识001、处理单元标识010、处理单元标识100,将接收到的返回数据按照仲裁顺序依次发送至处理单元1_1对应的数据缓存器8_2_1、处理单元1_2对应的数据缓存器8_2_2、处理单元1_3对应的数据缓存器8_2_3。
在示例中,当存储单元0_3响应请求信息,向第二调度选择器7_3发送返回数据时,第二调度选择器7_3可以根据从第二队列6_3的队首读出的处理单元标识,将接收到的返回数据发送至该处理单元标识指示的处理单元1对应的数据缓存器8。例如,假设处理单元标识001指示处理单元1_1,处理单元标识010指示处理单元1_2,处理单元标识100指示处理单元1_3。在此情况下,如果第二调度选择器7_3从第二队列6_3的队首读出的处理单元标识为001,可以将接收到的返回数据发送至该处理单元标识001指示的处理单元1_1对应的数据缓存器8_3_1;如果第二调度选择器7_3从第二队列6_3的队首读出的处理单元标识为010,可以将接收到的返回数据发送至该处理单元标识010指示的处理单元1_2对应的数据缓存器8_3_2;如果第二调度选择器7_3从第二队列6_3的队首读出的处理单元标识为100,可以将接收到的返回数据发送至该处理单元标识100指示的处理单元1_3对应的数据缓存器8_3_3。
其中,由于第二队列6_3的存储机制为先入先出,因此,如果第二队列6_3记录的仲裁器5_3的写入信息(多个处理单元标识)为100,010,001;则表示仲裁器5_3选中处理单元1的仲裁顺序为处理单元1_3、处理单元1_2、处理单元1_2;则返回数据也应按照写入时的仲裁顺序返回为处理单元1_3、处理单元1_2、处理单元1_1。第二调度选择器7_3可以按照仲裁顺序从第二队列6_3的队头依次读出处理单元标识100、处理单元标识010、处理单元标识001,将接收到的返回数据按照仲裁顺序依次发送至处理单元1_3对应的数据缓存器8_3_3、处理单元1_2对应的数据缓存器8_3_2、处理单元1_1对应的数据缓存器8_3_1。
如图3所示,连接同一第二调度选择器7的多个数据缓存器8的输出端分别连接不同的处理单元选择器4的输入端,每个处理单元选择器4的输入端还连接一个第一队列3的输出端,每个处理单元选择器4的输出端连接对应的处理单元1的输入端。例如,数据缓存器8_1_1的输出端、数据缓存器8_2_1的输出端、数据缓存器8_3_1的输出端、第一队列3_1的输出端按照多连一的方式,连接处理单元选择器4_1的输入端,处理单元选择器4_1的输出端连接处理单元1_1的输入端;数据缓存器8_1_2的输出端、数据缓存器8_2_2的输出端、数据缓存器8_3_2的输出端、第一队列3_2的输出端按照多连一的方式,连接处理单元选择器4_2的输入端,处理单元选择器4_2的输出端连接处理单元1_2的输入端;数据缓存器8_1_3的输出端、数据缓存器8_2_3的输出端、数据缓存器8_3_3的输出端、第一队列3_3的输出端按照多连一的方式,连接处理单元选择器4_3的输入端,处理单元选择器4_3的输出端连接处理单元1_3的输入端。
在示例中,当数据缓存器8_1_1、数据缓存器8_2_1和数据缓存器8_3_1非空时,处理单元选择器4_1可以根据从第一队列3_1的队首读出的调度标识,从该调度标识,从该调度标识指示的存储单元0对应的数据缓存器8中取出返回数据至处理单元1_1。例如,假设调度标识001指示存储单元0_1,调度标识010指示存储单元0_2,调度标识100指示存储单元0_3。在此情况下,如果处理单元选择器4_1从第一队列3_1的队首读出的调度标识为001,可以从数据缓存器8_1_1中取出返回数据至处理单元1_1;如果处理单元选择器4_1从第一队列3_1的队首读出的调度标识为010,可以从数据缓存器8_2_1中取出返回数据至处理单元1_1;如果处理单元选择器4_1从第一队列3_1的队首读出的调度标识为100,可以从数据缓存器8_3_1中取出返回数据至处理单元1_1。
其中,由于第一队列3_1的存储机制为先入先出,如果第一队列3_1记录的处理单元1的写入信息(多个调度标识)为001,010,100;则表示处理单元1_1访问各存储单元0的访问顺序为存储单元0_1、存储单元0_2、存储单元0_3,则返回数据也应按照写入时的访问顺序返回处理单元1_1。处理单元选择器4_1可以按照访问顺序从第一队列3_1的队头依次读出调度标识001、调度标识010、调度标识100,并按照访问顺序从调度标识001指示的存储单元0_1对应的数据缓存器8_1_1、调度标识010指示的存储单元0_2对应的数据缓存器8_2_1、存储单元0_3对应的数据缓存器8_3_1中依次取出返回数据至处理单元1_1。
应当理解,如果在本公开实施例的存储器访问电路不设置第一队列3_1和数据缓存器8,在处理单元1连续访问调度模块1的存储单元0_1、调度模块2的存储单元0_2的情况下,考虑到不同的存储单元0的效率可能会不同,很可能会出现各存储单元0向处理单元1乱序发送返回数据,例如,处理单元1先收到存储单元0_2的返回数据,再收到存储单元0_1的返回数据,这样可能会导致系统错误。
在本公开实施例的存储器访问电路中,第一队列3可以用于记录处理单元1希望的回复顺序,数据缓存器8可以用于存储先返回的返回数据,例如,处理单元1希望接受的回复顺序是先接收存储单元0_1的返回数据,再接收存储单元0_2的返回数据;如果存储单元0_2的返回数据先回复,那么就会将存储单元0_2的返回数据存在数据缓存器8中,直到处理单元1获取到存储单元0_1的返回数据,此时才会从数据缓存器8中读出存储单元0_2的返回数据。
可见,在本公开实施例的存储器访问电路中,即使部署在各调度模块中的存储单元0的处理速度不一致,例如假设各存储单元0向处理单元1_1的返回顺序为001,100,010,在处理单元选择器4_1从数据缓存器8_1_1中,取出存储单元0_1的返回数据至处理单元1_1;可以通过数据缓存器8_3_1存储先返回的存储单元0_3的返回数据,等待存储单元0_2的返回数据。当存储单元0_2的返回数据存入数据缓存器8_2_1,处理单元选择器4_1从数据缓存器8_2_1中,取出存储单元0_2的返回数据至处理单元1_1之后,处理单元选择器4_1再从数据缓存器8_3_1中,取出存储单元0_3的返回数据至处理单元1_1。
通过第一队列3_1记录访问存储单元0的访问顺序,可以使处理单元1_1获取的返回数据是保序回复;当出现存储单元0的返回数据是乱序回复的情况,数据缓存器8会对返回数据进行存储,减少处理单元选择器4_1对返回数据进行反压,提高存储器访问电路的稳定性和准确性。
在示例中,当数据缓存器8_1_2、数据缓存器8_2_2和数据缓存器8_3_2非空时,处理单元选择器4_2可以根据从第一队列3_2的队首读出的调度标识,从该调度标识,从该调度标识指示的存储单元0对应的数据缓存器8中取出返回数据至处理单元1_2。例如,假设调度标识001指示存储单元0_1,调度标识010指示存储单元0_2,调度标识100指示存储单元0_3。在此情况下,如果处理单元选择器4_2从第一队列3_2的队首读出的调度标识为001,可以从数据缓存器8_1_2中取出返回数据至处理单元1_2;如果处理单元选择器4_2从第一队列3_2的队首读出的调度标识为010,可以从数据缓存器8_2_2中取出返回数据至处理单元1_2;如果处理单元选择器4_2从第一队列3_2的队首读出的调度标识为100,可以从数据缓存器8_3_2中取出返回数据至处理单元1_2。
其中,通过第一队列3_2和数据缓存器8_1_2、数据缓存器8_2_2、数据缓存器8_3_2的配合使用,使处理单元1_2获取的返回数据可以满足保序回复,该过程可以参考上文,此处不再赘述。
在示例中,当数据缓存器8_1_3、数据缓存器8_2_3和数据缓存器8_3_3非空时,处理单元选择器4_3可以根据从第一队列3_3的队首读出的调度标识,从该调度标识,从该调度标识指示的存储单元0对应的数据缓存器8中取出返回数据至处理单元1_3。例如,假设调度标识001指示存储单元0_1,调度标识010指示存储单元0_2,调度标识100指示存储单元0_3。在此情况下,如果处理单元选择器4_3从第一队列3_3的队首读出的调度标识为001,可以从数据缓存器8_1_3中取出返回数据至处理单元1_3;如果处理单元选择器4_3从第一队列3_3的队首读出的调度标识为010,可以从数据缓存器8_2_3中取出返回数据至处理单元1_3;如果处理单元选择器4_3从第一队列3_3的队首读出的调度标识为100,可以从数据缓存器8_3_3中取出返回数据至处理单元1_3。
其中,通过第一队列3_3和数据缓存器8_1_3、数据缓存器8_2_3、数据缓存器8_3_3的配合使用,使处理单元1_3获取的返回数据可以满足保序回复,该过程可以参考上文,此处不再赘述。
在一种可能的实现方式中,所述第一队列3的位宽是根据所述存储单元0的数量确定的。示例性地,第一队列3的位宽可以与调度标识的位宽相同,如图3所示,存储器访问电路包括了三个存储单元0,可以将第一队列3的位宽设置为3比特(bit),用调度标识001表征存储单元0_1,用调度标识010表征存储单元0_2,用调度标识010表征存储单元0_3。又例如,如果存储器访问电路存在10个存储单元0,第一队列3的位宽可以由3比特(bit)扩展为10比特(bit)。应当理解,每增加一个存储单元0,第一队列3的位宽也增加1比特(bit),本公开对第一队列3的位宽不作具体限制。
在一种可能的实现方式中,所述第一队列3存储调度标识的数量小于或等于所述第一队列3的深度。
其中,处理单元1的并发度是由第一队列3的深度确定的,其中,并发度表示处理单元1在不需要等待存储单元0的返回数据的情况下,最大可以连续发送出请求信息的数量。假设第一队列3的深度为4,则表示一个处理单元1最大的并发度是4,每个处理单元1最大可以连续发送出4笔请求信息而不需要等待存储单元0的返回数据。本公开对第一队列3的深度不作限制,可以根据具体的应用场景进行设置。
在一种可能的实现方式中,所述数据缓存器8的数量是根据所述存储单元0的数量和所述处理单元1的数量确定的,所述数据缓存器8存储返回数据的数量小于或等于所述数据缓存器8的深度。
由于数据缓存器8是为了缓存不用的存储单元0对不同的处理单元1的返回数据,数据缓存器8的数量可以是存储单元0的数量和处理单元1的数量的乘积。例如,如果存在N个处理单元1,M个存储单元0,那么数据缓存器8的数量为M×N。
数据缓存器8的深度表示数据缓存器8可以缓存的返回数据的数量,数据缓存器8存储的返回数据的数量小于或等于数据缓存器8的深度。其中,数据缓存器8的深度可以与第一队列3的深度保持一致,本公开对数据缓存器8的深度不作限制。
综上所述,在本公开实施例的存储器访问电路中,第一队列3用于记录访问存储单元0的访问顺序,数据缓存器8用于将存储单元0的返回数据进行缓存,满足后发送请求信息的数据先缓存在数据缓存器8中,等待先发起请求信息的返回数据。通过第一队列3和数据缓存器8的配合使用,有利于将各存储单元0返回的返回数据保序传递至对应的处理单元1,进一步提升存储器访问电路的准确性和稳定性。
图4示出根据本公开实施例的存储器访问方法的流程图,所述方法应用于如图2所示的存储器访问电路的多个处理单元1访问多个存储单元0部分,所述存储器访问电路用于访问多个不同的存储单元0。所述存储器访问电路包括:多个处理单元1,与每个处理单元1对应的一个第一调度选择器2、一个第一队列3,与每个存储单元0对应的一个仲裁器5、一个第二队列6。
其中,任一处理单元1的输出端连接对应的一个第一队列3的输入端、对应的一个第一调度选择器2的输入端,所述第一调度选择器2的输出端分别连接每个仲裁器5的输入端;每个仲裁器5的输出端连接对应的存储单元0的输入端、对应的第二队列6的输入端。
如图4所示,所述存储器访问方法包括:在步骤S11中,所述处理单元1生成访问存储单元0的请求信息,所述请求信息包括用于指示存储单元0的调度标识。
在步骤S12中,所述处理单元1将所述请求信息发送至对应的第一调度选择器2,并将所述请求信息的调度标识写入第一队列3,所述第一队列3用于按照所述处理单元1的访问顺序存储所述调度标识。
在步骤S13中,所述第一调度选择器2将从所述处理单元1接收到的请求信息发送至所述调度标识指示的存储单元0的仲裁器5。
在步骤S14中,所述仲裁器5对来自多个处理单元1的请求信息进行仲裁,按照仲裁顺序向存储单元0发送请求信息,以及按照所述仲裁顺序将所述多个处理单元1的处理单元标识写入第二队列6。
通过这种方式,实现了多个处理单元1访问不同的存储单元0(例如包括部署在不同调度模块中的存储单元),当多个处理单元1访问存储单元0时,可以通过第二队列6存储处理单元1的处理单元标识,来记录多个处理单元1的访问顺序,这样,当存储单元0回复返回数据时,可以根据第二队列6记录的仲裁顺序,将存储单元0的返回数据准确地传输至各处理单元1。进一步,可以为每个处理单元1设置一个第一队列3,通过第一队列3记录处理单元1发起对各存储单元0访问时的访问顺序,有利于每个处理单元1获得的返回数据是按照访问顺序返回的,进一步提升存储器访问电路的准确性和稳定性。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器9,每个仲裁器5的输出端通过至少一个第一缓冲器9连接对应的存储单元0的输入端。
在一种可能的实现方式中,所述第一队列3的位宽是根据所述存储单元0的数量确定的,所述第一队列3存储调度标识的数量小于或等于所述第一队列3的深度,所述仲裁器5的输出位宽和所述第二队列6的位宽是根据所述处理单元1的数量确定的,所述第二队列6存储处理单元标识的数量小于或等于所述第二队列6的深度。
图5示出根据本公开实施例的存储器访问方法的流程图,所述方法应用于如图2所示的存储器访问电路中的多个存储单元0响应处理单元1的访问请求,回传返回数据部分,所述存储器访问电路用于访问多个不同的存储单元0。所述存储器访问电路包括:多个处理单元1,与每个处理单元1对应的一个第一队列3、一个处理单元选择器4,与每个存储单元0对应的一个第二队列6、一个第二调度选择器7、多个数据缓存器8,其中,同一存储单元0对应的多个数据缓存器8分别对应不同的处理单元1。
其中,任一第二调度选择器7的输入端连接对应的存储单元0的输出端、对应的所述第二队列6的输出端,任一第二调度选择器7的输出端分别连接多个数据缓存器8的输入端;连接同一第二调度选择器7的多个数据缓存器8的输出端分别连接不同的处理单元选择器4的输入端,每个处理单元选择器4的输入端还连接一个第一队列3的输出端,每个处理单元选择器4的输出端连接对应的处理单元1的输入端。
如图5所示,所述存储器访问方法包括:在步骤S15中,所述存储单元0响应来自所述处理单元1的请求信息生成返回数据。
在步骤S16中,所述第二调度选择器7根据从所述第二队列6读取的处理单元标识,将所述存储单元0的返回数据传输至所述处理单元标识指示的数据缓存器8,所述多个数据缓存器8用于存储所述存储单元0返回给不同处理单元1的返回数据。
在步骤S17中,所述处理单元选择器4用于根据从所述第一队列3读取的调度标识,将从所述调度标识指示的数据缓存器8中读取的返回数据传输至处理单元1。
通过这种方式,实现了多个处理单元1访问不同的存储单元0(例如包括部署在不同调度模块中的存储单元),通过设置第二队列6,当存储单元0回复返回数据时,可以根据第二队列6记录的仲裁顺序,将存储单元0的返回数据准确地传输至各处理单元1。进一步,可以为每个处理单元1设置一个第一队列3和与多个存储单元0分别对应的多个数据缓存器8,通过第一队列3记录处理单元1发起对各存储单元0访问时的访问顺序,通过多个数据缓存器8对各存储单元0的返回数据进行缓存,使得处理单元1后发送的请求信息的返回数据先缓存在数据缓存器8中,等待先发起请求信息的返回数据,有利于每个处理单元1获得的返回数据是保序回复,进一步提升存储器访问电路的准确性和稳定性。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器10,每个第二调度选择器7的输入端通过至少一个第二缓冲器10连接对应的存储单元0的输出端。
在一种可能的实现方式中,所述第一队列3的位宽是根据所述存储单元0的数量确定的,所述第一队列3存储调度标识的数量小于或等于所述第一队列3的深度,所述第二队列6的位宽是根据所述处理单元1的数量确定的,所述第二队列6存储处理单元标识的数量小于或等于所述第二队列6的深度,所述数据缓存器8的数量是根据所述存储单元0的数量和所述处理单元1的数量确定的,所述数据缓存器8存储返回数据的数量小于或等于所述数据缓存器8的深度。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了封装了存储器访问电路的集成电路、电子设备、计算机程序产品,上述均可用来实现本公开提供的任一种存储器访问方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
本公开实施例还提出一种集成电路,所述集成电路包括如上所述的存储器访问电路。
本公开实施例还提出一种电子设备,所述电子设备包括如上所述的存储器访问电路。电子设备可以被提供为终端、服务器或其它形态的设备。例如,电子设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,本公开对此不作限制。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (13)

1.一种存储器访问电路,其特征在于,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,与每个处理单元对应的一个第一队列、一个处理单元选择器,与每个存储单元对应的多个数据缓存器,其中,同一存储单元对应的多个数据缓存器分别对应不同的处理单元;
所述处理单元用于生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识,所述第一队列用于按照所述处理单元的访问顺序存储所述调度标识;
所述存储单元响应所述请求信息生成返回数据,所述多个数据缓存器用于存储所述存储单元返回给不同处理单元的返回数据,所述处理单元选择器用于根据从所述第一队列读取的调度标识,将从所述调度标识指示的数据缓存器中读取的返回数据传输至处理单元。
2.根据权利要求1所述的存储器访问电路,其特征在于,所述存储器访问电路还包括:与每个处理单元对应的一个第一调度选择器,与每个存储单元对应的一个仲裁器、一个第二队列、一个第二调度选择器;
所述第一调度选择器用于将从所述处理单元接收到的请求信息发送至所述调度标识指示的存储单元的仲裁器;
所述仲裁器用于对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识写入第二队列;
所述第二调度选择器用于根据从所述第二队列读取的处理单元标识,将所述存储单元的返回数据传输至所述处理单元标识指示的数据缓存器。
3.根据权利要求2所述的存储器访问电路,其特征在于,任一处理单元的输出端连接对应的一个第一队列的输入端、对应的一个第一调度选择器的输入端,所述第一调度选择器的输出端分别连接每个仲裁器的输入端;
每个仲裁器的输出端连接对应的存储单元的输入端、对应的第二队列的输入端;
任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述第二队列的输出端,任一第二调度选择器的输出端分别连接多个数据缓存器的输入端;
连接同一第二调度选择器的多个数据缓存器的输出端分别连接不同的处理单元选择器的输入端,每个处理单元选择器的输入端还连接一个第一队列的输出端,每个处理单元选择器的输出端连接对应的处理单元的输入端。
4.根据权利要求2或3所述的存储器访问电路,其特征在于,所述存储器访问电路还包括至少一个第一缓冲器、至少一个第二缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端,每个第二调度选择器的输入端通过至少一个第二缓冲器连接对应的存储单元的输出端。
5.根据权利要求2或3所述的存储器访问电路,其特征在于,所述第一队列的位宽是根据所述存储单元的数量确定的,所述第一队列存储调度标识的数量小于或等于所述第一队列的深度,
所述仲裁器的输出位宽和所述第二队列的位宽是根据所述处理单元的数量确定的,所述第二队列存储处理单元标识的数量小于或等于所述第二队列的深度,
所述数据缓存器的数量是根据所述存储单元的数量和所述处理单元的数量确定的,所述数据缓存器存储返回数据的数量小于或等于所述数据缓存器的深度。
6.一种存储器访问方法,其特征在于,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路包括:多个处理单元,与每个处理单元对应的一个第一队列、一个处理单元选择器,与每个存储单元对应的一个第二队列、一个第二调度选择器、多个数据缓存器,其中,同一存储单元对应的多个数据缓存器分别对应不同的处理单元;
其中,任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述第二队列的输出端,任一第二调度选择器的输出端分别连接多个数据缓存器的输入端;连接同一第二调度选择器的多个数据缓存器的输出端分别连接不同的处理单元选择器的输入端,每个处理单元选择器的输入端还连接一个第一队列的输出端,每个处理单元选择器的输出端连接对应的处理单元的输入端;
所述存储器访问方法包括:
所述存储单元响应来自所述处理单元的请求信息生成返回数据;
所述第二调度选择器根据从所述第二队列读取的处理单元标识,将所述存储单元的所述返回数据传输至所述处理单元标识指示的数据缓存器,所述多个数据缓存器用于存储所述存储单元返回给不同处理单元的返回数据;
所述处理单元选择器用于根据从所述第一队列读取的调度标识,将从所述调度标识指示的数据缓存器中读取的返回数据传输至处理单元,其中,所述请求信息包括用于指示存储单元的调度标识,所述第一队列用于按照所述处理单元的访问顺序存储所述调度标识。
7.根据权利要求6所述的存储器访问方法,其特征在于,所述存储器访问电路还包括至少一个第二缓冲器,每个第二调度选择器的输入端通过至少一个第二缓冲器连接对应的存储单元的输出端。
8.根据权利要求6或7所述的存储器访问方法,其特征在于,所述第一队列的位宽是根据所述存储单元的数量确定的,所述第一队列存储调度标识的数量小于或等于所述第一队列的深度;所述第二队列的位宽是根据所述处理单元的数量确定的,所述第二队列存储处理单元标识的数量小于或等于所述第二队列的深度;
所述数据缓存器的数量是根据所述存储单元的数量和所述处理单元的数量确定的,所述数据缓存器存储返回数据的数量小于或等于所述数据缓存器的深度。
9.一种存储器访问方法,其特征在于,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路包括:多个处理单元,与每个处理单元对应的一个第一调度选择器、一个第一队列,与每个存储单元对应的一个仲裁器、一个第二队列;
其中,任一处理单元的输出端连接对应的一个第一队列的输入端、对应的一个第一调度选择器的输入端,所述第一调度选择器的输出端分别连接每个仲裁器的输入端;每个仲裁器的输出端连接对应的存储单元的输入端、对应的第二队列的输入端;
所述存储器访问方法包括:
所述处理单元生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识;
所述处理单元将所述请求信息发送至对应的第一调度选择器,并将所述请求信息的调度标识写入第一队列,所述第一队列用于按照所述处理单元的访问顺序存储所述调度标识;
所述第一调度选择器将从所述处理单元接收到的请求信息发送至所述调度标识指示的存储单元的仲裁器;
所述仲裁器对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识写入第二队列。
10.根据权利要求9所述的存储器访问方法,其特征在于,所述存储器访问电路还包括至少一个第一缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端。
11.根据权利要求9或10所述的存储器访问方法,其特征在于,所述第一队列的位宽是根据所述存储单元的数量确定的,所述第一队列存储调度标识的数量小于或等于所述第一队列的深度,
所述仲裁器的输出位宽和所述第二队列的位宽是根据所述处理单元的数量确定的,所述第二队列存储处理单元标识的数量小于或等于所述第二队列的深度。
12.一种集成电路,其特征在于,所述集成电路包括如权利要求1至5中任一项所述的存储器访问电路。
13.一种电子设备,其特征在于,所述电子设备包括如权利要求1至5中任一项所述的存储器访问电路。
CN202310807736.9A 2023-07-03 2023-07-03 存储器访问电路及存储器访问方法、集成电路和电子设备 Active CN116521097B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310807736.9A CN116521097B (zh) 2023-07-03 2023-07-03 存储器访问电路及存储器访问方法、集成电路和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310807736.9A CN116521097B (zh) 2023-07-03 2023-07-03 存储器访问电路及存储器访问方法、集成电路和电子设备

Publications (2)

Publication Number Publication Date
CN116521097A CN116521097A (zh) 2023-08-01
CN116521097B true CN116521097B (zh) 2023-09-08

Family

ID=87404999

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310807736.9A Active CN116521097B (zh) 2023-07-03 2023-07-03 存储器访问电路及存储器访问方法、集成电路和电子设备

Country Status (1)

Country Link
CN (1) CN116521097B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344871A (zh) * 2008-08-20 2009-01-14 北京中星微电子有限公司 一种保证访问先后顺序的总线仲裁单元及其实现方法
CN101656658A (zh) * 2008-08-21 2010-02-24 中兴通讯股份有限公司 一种提高队列管理中出队效率的方法和装置
CN101907986A (zh) * 2010-08-30 2010-12-08 威盛电子股份有限公司 访问多个存储器的数据处理设备和数据处理方法
CN110036375A (zh) * 2016-12-13 2019-07-19 超威半导体公司 无序高速缓存返回
CN114356223A (zh) * 2021-12-16 2022-04-15 深圳云天励飞技术股份有限公司 存储器的访问方法及装置、芯片、电子设备
CN114450672A (zh) * 2020-11-06 2022-05-06 深圳市大疆创新科技有限公司 存储器的访问控制方法、装置和存储介质
CN116204456A (zh) * 2021-11-30 2023-06-02 华为技术有限公司 数据访问方法及计算设备
CN116324744A (zh) * 2020-08-24 2023-06-23 超威半导体公司 具有多个命令子队列和对应的仲裁器的存储器控制器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478950B2 (en) * 2008-07-29 2013-07-02 Synopsys, Inc. Data processing circuit with arbitration between a plurality of queues

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344871A (zh) * 2008-08-20 2009-01-14 北京中星微电子有限公司 一种保证访问先后顺序的总线仲裁单元及其实现方法
CN101656658A (zh) * 2008-08-21 2010-02-24 中兴通讯股份有限公司 一种提高队列管理中出队效率的方法和装置
CN101907986A (zh) * 2010-08-30 2010-12-08 威盛电子股份有限公司 访问多个存储器的数据处理设备和数据处理方法
CN110036375A (zh) * 2016-12-13 2019-07-19 超威半导体公司 无序高速缓存返回
CN116324744A (zh) * 2020-08-24 2023-06-23 超威半导体公司 具有多个命令子队列和对应的仲裁器的存储器控制器
CN114450672A (zh) * 2020-11-06 2022-05-06 深圳市大疆创新科技有限公司 存储器的访问控制方法、装置和存储介质
CN116204456A (zh) * 2021-11-30 2023-06-02 华为技术有限公司 数据访问方法及计算设备
CN114356223A (zh) * 2021-12-16 2022-04-15 深圳云天励飞技术股份有限公司 存储器的访问方法及装置、芯片、电子设备

Also Published As

Publication number Publication date
CN116521097A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
CN116661703B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116578245B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116521096B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN100592273C (zh) 执行dma数据传输的设备和方法
CN104503728A (zh) 一种硬件加速器及芯片
CN1997987A (zh) 用于在互连网络路由器内进行分组合并的方法和设备
CN115033184A (zh) 访存处理装置、方法、处理器、芯片、板卡及电子设备
CN111400212B (zh) 一种基于远程直接数据存取的传输方法、设备
CN111684430A (zh) 支持同一信道上对不统一等待时间的存储器类型的响应
CN116737083B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116601601A (zh) 在多过程系统内执行可编程原子单元资源的方法
CN112486453B (zh) 一种异步先入先出寄存器以及芯片
CN115964319A (zh) 远程直接内存访问的数据处理方法及相关产品
US10078602B2 (en) Information processing apparatus, memory controller, and memory control method
CN116521097B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN115391053B (zh) 基于cpu和gpu混合计算的在线服务方法及装置
CN116719479B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN115913816A (zh) 一种主从设备间通讯的通讯转换装置及方法
CN116594570B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116745754A (zh) 一种访问远端资源的系统及方法
US20030018867A1 (en) Method to manage multiple communication queues in an 8-bit microcontroller
CN118012510B (zh) 一种网络处理器、网络数据处理装置和芯片
CN115017072B (zh) 突发长度拆分方法、装置、芯片系统和电子设备
CN114610661B (zh) 数据处理装置、方法和电子设备
WO2018156379A1 (en) Power aware arbitration for bus access

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