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

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

Info

Publication number
CN116737083A
CN116737083A CN202310806902.3A CN202310806902A CN116737083A CN 116737083 A CN116737083 A CN 116737083A CN 202310806902 A CN202310806902 A CN 202310806902A CN 116737083 A CN116737083 A CN 116737083A
Authority
CN
China
Prior art keywords
unit
arbiter
request information
selector
processing 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.)
Granted
Application number
CN202310806902.3A
Other languages
English (en)
Other versions
CN116737083B (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 CN202310806902.3A priority Critical patent/CN116737083B/zh
Publication of CN116737083A publication Critical patent/CN116737083A/zh
Application granted granted Critical
Publication of CN116737083B publication Critical patent/CN116737083B/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

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

存储器访问电路及存储器访问方法、集成电路和电子设备
技术领域
本公开涉及电子技术领域,尤其涉及一种存储器访问电路及存储器访问方法、集成电路和电子设备。
背景技术
随着集成电路产业的快速发展,各类处理器芯片在各行各业中的应用越来越广泛,可以应用到网络通信、手机、机顶盒、液晶电视、医疗设备、安防设备、工控设备、智能电表、智能穿戴、物联网、汽车电子等场景。
在各类处理器芯片中,处理单元会访问存储单元以实现各种目标任务,其中,处理器芯片内的存储器访问电路可用于管理处理单元与存储单元之间的通信,存储器访问电路会直接影响整个处理器芯片的运行效率。以图形处理器(Graphic Processing Unit,GPU)为例,图1示出相关技术中图形处理器的存储器访问电路的示意图,如图1所示,在相关技术的图形处理器内部,只有一个处理单元00与一个部署在调度模块02中的存储单元01,处理单元00可以对调度模块02的存储单元01直接进行读写操作,不能解决多处理单元与多调度的情况。
发明内容
本公开提出了一种存储器访问技术方案。
根据本公开的一方面,提供了一种存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元、与每个处理单元对应的一个第一调度选择器、与每个存储单元对应一个仲裁器、一个队列单元、一个第二调度选择器;任一第一调度选择器的输入端连接对应的一个处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,用于将从所述处理单元接收到的请求信息发送至所述请求信息指示的存储单元的仲裁器;每个仲裁器的输出端连接对应的存储单元的输入端、对应的队列单元的输入端,用于对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的标识信息写入队列单元;任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述队列单元的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端,用于根据从所述队列单元读取的标识信息,将所述存储单元的返回数据传输至所述标识信息指示的处理单元。
在一种可能的实现方式中,所述请求信息包括调度标识,所述调度标识用于指示所述第一调度选择器将从所述处理单元接收到的请求信息,发送至与所述调度标识指示的存储单元对应的仲裁器。
在一种可能的实现方式中,所述仲裁器的输出位宽和所述队列单元的位宽是根据所述处理单元的数量确定的,所述队列单元存储标识信息的数量小于或等于所述队列单元的深度。
在一种可能的实现方式中,多个仲裁器并行处理,用于使相同的存储单元顺序回传返回数据。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器、至少一个第二缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端,每个第二调度选择器的输入端通过至少一个第二缓冲器连接对应的存储单元的输出端。
根据本公开的一方面,提供了一种存储器访问方法,所述方法应用于存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:所述存储器访问电路包括多个处理单元、与每个处理单元对应的一个第一调度选择器、与每个存储单元对应一个仲裁器、一个队列单元、一个第二调度选择器;任一第一调度选择器的输入端连接对应的一个处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,每个仲裁器的输出端连接对应的存储单元的输入端、对应的队列单元的输入端,任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述队列单元的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端,所述方法包括:每个处理单元将生成的请求信息发送至对应的第一调度选择器;任一第一调度选择器将从所述处理单元接收到的所述请求信息,发送至所述请求信息指示的存储单元的仲裁器;每个仲裁器对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的标识信息写入队列单元;每个存储单元根据接收到的所述请求信息,发送返回数据至所述第二调度选择器;所述第二调度选择器根据从所述队列单元读取的标识信息,将所述存储单元的返回数据传输至所述标识信息指示的处理单元。
在一种可能的实现方式中,所述请求信息包括调度标识,任一第一调度选择器将从所述处理单元接收到的所述请求信息,发送至所述请求信息指示的存储单元的仲裁器,包括:所述第一调度选择器根据所述调度标识,将从所述处理单元接收到的所述请求信息,发送至与所述调度标识指示的存储单元对应的仲裁器。
在一种可能的实现方式中,所述仲裁器的输出位宽和所述队列单元的位宽是根据所述处理单元的数量确定的,所述队列单元存储标识信息的数量小于或等于所述队列单元的深度。
在一种可能的实现方式中,多个仲裁器并行处理,以使相同的存储单元顺序回传返回数据。
根据本公开的一方面,提供了一种集成电路,所述集成电路包括如上文所述的存储器访问电路。
根据本公开的一方面,提供了一种电子设备,所述电子设备包括如上文所述的存储器访问电路。
在本公开实施例中,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元、与每个处理单元对应的一个第一调度选择器、与每个存储单元对应一个仲裁器、一个队列单元、一个第二调度选择器;任一第一调度选择器的输入端连接对应的一个处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,用于将从所述处理单元接收到的请求信息发送至所述请求信息指示的存储单元的仲裁器;每个仲裁器的输出端连接对应的存储单元的输入端、对应的队列单元的输入端,用于对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的标识信息写入队列单元;任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述队列单元的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端,用于根据从所述队列单元读取的标识信息,将所述存储单元的返回数据传输至所述标识信息指示的处理单元。
本公开实施例的存储器访问电路,实现了多个处理单元访问不同的存储单元,当多个处理单元访问存储单元时,可以通过队列单元存储处理单元的标识信息,来记录多个处理单元的访问顺序,当存储单元回复返回数据时,可以根据队列单元记录的访问顺序,将存储单元的返回数据高效地准确地传输至处理单元,进一步提高处理器芯片的运行效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出相关技术中图形处理器的存储器访问电路的示意图。
图2示出根据本公开实施例的一种存储器访问电路的示意图。
图3示出根据本公开实施例的另一种存储器访问电路的示意图。
图4示出根据本公开实施例的存储器访问方法的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
为了提高处理器芯片的运行效率,会有多个处理单元访问不同存储单元的场景,本公开实施例的存储器访问电路,可以适用于多个处理单元访问不同的存储单元,可以高效地正确地返回访问各存储单元的返回数据,进一步提高处理器芯片的运行效率。
图2示出根据本公开实施例的存储器访问电路的示意图,如图2所示,所述存储器访问电路用于访问多个不同的存储单元10,所述存储器访问电路包括:多个处理单元11、与每个处理单元11对应的一个第一调度选择器12、与每个存储单元10对应一个仲裁器13、一个队列单元14、一个第二调度选择器15。
任一第一调度选择器12的输入端连接对应的一个处理单元11的输出端,任一第一调度选择器12的输出端分别连接每个仲裁器13的输入端,用于将从所述处理单元11接收到的请求信息发送至所述请求信息指示的存储单元10的仲裁器13。
每个仲裁器13的输出端连接对应的存储单元10的输入端、对应的队列单元14的输入端,用于对来自多个处理单元11的请求信息进行仲裁,按照仲裁顺序向存储单元10发送请求信息,以及按照所述仲裁顺序将所述多个处理单元11的标识信息写入队列单元14。
任一第二调度选择器15的输入端连接对应的存储单元10的输出端、对应的所述队列单元14的输出端,任一第二调度选择器15的输出端分别连接每个处理单元11的输入端,用于根据从所述队列单元14读取的标识信息,将所述存储单元10的返回数据传输至所述标识信息指示的处理单元11。
在一种可能的实现方式中,本公开实施例的存储器访问电路可以集成到处理器芯片中,用于访问处理器芯片内的多个不同的存储单元10。
其中,所述处理器芯片例如包括:中央处理器(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)或者其他可编程逻辑器件,本公开对此不作限制。
其中,存储单元10可包括设置在处理器芯片内部的随机存取存储器(RandomAccess Memory,RAM),例如动态随机存取存储器(Dynamic RAM,DRAM)、静态随机存取存储器(Static RAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、高速缓存存储器(Cached DRAM,CDRAM)、增强型动态随机存取存储器(Extended Data Out DRAM,EDRAM)等,本公开对存储单元10的类型不作限制。
示例性地,多个处理单元11可以是多核处理器芯片的多个计算核,可以对多核处理器芯片内的不同的存储单元10进行访问,提高多核并行处理的效率。
或者,多个处理单元11也可以是多核处理器芯片中设置在同一计算核中的多线程模块,可以对多核处理器芯片内的不同的存储单元10(可以是位于计算核内的存储单元,也可以是位于计算核外的存储单元)进行访问,提高多线程并行处理的效率。
或者,处理器芯片内部包括多个处理单元11和多个调度模块,不同的存储单元10部署在不同的调度模块,调度模块可用于执行调度任务(包括操作数据调度、操作程序调度)。在此情况下,调度模块可用于接收处理单元11的请求信息(例如操作指令),根据请求信息为处理单元11提供所需的资源(返回数据)。
在一种可能的实现方式中,存储器访问电路可用于访问N个(N≥1)不同的存储单元10,该存储器访问电路可包括:M个(M≥1)处理单元11、与M个处理单元11分别对应的M个第一调度选择器12、与N个存储单元10分别对应N个仲裁器13、N个队列单元14、N个第二调度选择器15。
应当理解,本公开的实施例对存储单元10的数量N和处理单元11的数量M不作限制,可根据实际的应用场景,设置M和N的取值。
如图2所示,N个存储单元10可以分别为存储单元10_1~存储单元10_N,M个处理单元11可分别为处理单元11_1~处理单元11_M。
M个第一调度选择器12可分别为第一调度选择器12_1~第一调度选择器12_M,即:与处理单元11_1对应的第一调度选择器12_1,与处理单元11_2对应的第一调度选择器12_2,以此类推,与处理单元11_M对应的第一调度选择器12_M。
N个仲裁器13可以分别为仲裁器13_1~仲裁器13_N、N个队列单元14可分别为队列单元14_1~队列单元14_N、N个第二调度选择器15可分别为第二调度选择器15_1~第二调度选择器15_N。其中,仲裁器13_1、队列单元14_1、第二调度选择器15_1与存储单元10_1对应;仲裁器13_2、队列单元14_2、第二调度选择器15_2与存储单元10_2对应;以此类推,仲裁器13_N、队列单元14_N、第二调度选择器15_N与存储单元10_N对应。
如图2所示,任一第一调度选择器12的输入端连接对应的一个处理单元11的输出端,任一第一调度选择器12的输出端分别连接每个仲裁器13的输入端。例如,处理单元11_1的输出端连接第一调度选择器12_1的输入端,第一调度选择器12_1的输出端分别连接仲裁器13_1的输入端~仲裁器13_N的输入端;处理单元11_2的输出端连接第一调度选择器12_2的输入端,第一调度选择器12_2的输出端也分别连接仲裁器13_1的输入端~仲裁器13_N的输入端;以此类推,处理单元11_M的输出端连接第一调度选择器12_M的输入端,第一调度选择器12_M的输出端同样分别连接仲裁器13_1的输入端~仲裁器13_N的输入端。
这样,第一调度选择器12_1可用于将从处理单元11_1接收到的请求信息发送至仲裁器13_1~仲裁器13_N中的任一仲裁器,进一步,第一调度选择器12_1还可以根据请求信息的指示,从仲裁器13_1~仲裁器13_N中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即处理单元11_1发出的请求信息指示的存储单元10所对应的仲裁器。
第一调度选择器12_2可用于将从处理单元11_2接收到的请求信息发送至仲裁器13_1~仲裁器13_N中的任一仲裁器,进一步,第一调度选择器12_2还可以根据请求信息的指示,从仲裁器13_1~仲裁器13_N中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即处理单元11_2发出的请求信息指示的存储单元10所对应的仲裁器。
以此类推,第一调度选择器12_M可用于将从处理单元11_M接收到的请求信息发送至仲裁器13_1~仲裁器13_N中的任一仲裁器,进一步,第一调度选择器12_M还可以根据请求信息的指示,从仲裁器13_1~仲裁器13_N中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即处理单元11_M发出的请求信息指示的存储单元10所对应的仲裁器。
如图2所示,每个仲裁器13的输出端连接对应的存储单元10的输入端、对应的队列单元14的输入端。例如,仲裁器13_1的输出端分别连接存储单元10_1和队列单元14_1的输入端;仲裁器13_2的输出端分别连接存储单元10_2和队列单元14_2的输入端;以此类推,仲裁器13_N的输出端分别连接存储单元10_N和队列单元14_N的输入端。
这样,仲裁器13_1可以对访问存储单元10_1的、来自处理单元11_1~处理单元11_M的不同的请求信息进行轮询仲裁(round robin),从M个请求信息中选出当前轮的一个目标请求信息发送至存储单元10_1,并将当前轮的目标请求信息隶属的处理单元11的标识信息写入队列单元14_1。由于在每轮仲裁中,队列单元14_1可记录一个处理单元11的标识信息,经过多轮仲裁,队列单元14_1可记录仲裁器13_1的仲裁顺序,也即不同处理单元11访问存储单元10_1的访问顺序。
仲裁器13_2可以对访问存储单元10_2的、来自处理单元11_1~处理单元11_M的不同的请求信息进行轮询仲裁(round robin),从M个请求信息中选出当前轮的一个目标请求信息发送至存储单元10_2,并将当前轮的目标请求信息隶属的处理单元11的标识信息写入队列单元14_2。由于在每轮仲裁中,队列单元14_2可记录一个处理单元11的标识信息,经过多轮仲裁,队列单元14_2可记录仲裁器13_2的仲裁顺序,也即不同处理单元11访问存储单元10_2的访问顺序。
以此类推,仲裁器13_N可以对访问存储单元10_N的、来自处理单元11_1~处理单元11_M的不同的请求信息进行轮询仲裁(round robin),从M个请求信息中选出当前轮的一个目标请求信息发送至存储单元10_N,并将当前轮的目标请求信息隶属的处理单元11的标识信息写入队列单元14_N。由于在每轮仲裁中,队列单元14_N可记录一个处理单元11的标识信息,经过多轮仲裁,队列单元14_N可记录仲裁器13_N的仲裁顺序,也即不同处理单元11访问存储单元10_N的访问顺序。
通过这种方式,在多个不同的处理单元11访问同一存储单元10时,可以通过相应的仲裁器13按照仲裁顺序确定访问存储单元10的访问顺序,并可以通过队列单元14记录该仲裁顺序。
如图2所示,任一第二调度选择器15的输入端连接对应的存储单元10的输出端、对应的所述队列单元14的输出端,任一第二调度选择器15的输出端分别连接每个处理单元11的输入端。例如,存储单元10_1的输出端和队列单元14_1的输出端,分别连接第二调度选择器15_1的输入端,第二调度选择器15_1的输出端按照一连多的方式,分别连接处理单元11_1的输入端~处理单元11_M的输入端;存储单元10_2的输出端和队列单元14_2的输出端,分别连接第二调度选择器15_2的输入端,第二调度选择器15_2的输出端按照一连多的方式,分别连接处理单元11_1的输入端~处理单元11_M的输入端;以此类推,存储单元10_N的输出端和队列单元14_N的输出端,分别连接第二调度选择器15_N的输入端,第二调度选择器15_N的输出端按照一连多的方式,分别连接处理单元11_1的输入端~处理单元11_M的输入端。
这样,当存储单元10_1响应请求信息向第二调度选择器15_1发送返回数据时,第二调度选择器15_1可以根据从队列单元14_1的队头读出的标识信息,将接收到的返回数据发送至该标识信息指示的处理单元11;当存储单元10_2响应请求信息向第二调度选择器15_2发送返回数据时,第二调度选择器15_2可以根据从队列单元14_2的队头读出的标识信息,将接收到的返回数据发送至该标识信息指示的处理单元11;以此类推,当存储单元10_N响应请求信息向第二调度选择器15_N发送返回数据时,第二调度选择器15_N可以根据从队列单元14_N的队头读出的标识信息,将接收到的返回数据发送至该标识信息指示的处理单元。
本公开实施例的存储器访问电路,实现了多个处理单元11访问不同的存储单元10(例如包括部署在不同调度模块中的存储单元),当多个处理单元11访问存储单元10时,可以通过队列单元14存储处理单元11的标识信息,来记录多个处理单元11的访问顺序,当存储单元10回复返回数据时,可以根据队列单元14记录的访问顺序,将存储单元10的返回数据高效地准确地传输至处理单元11,进一步提高处理器芯片的运行效率。
下面以存储单元10的数量N和处理单元11的数量M均为3作为一个示例,对本公开实施例的存储器访问电路进行展开说明。应当理解本公开对M、N的取值不作具体限制。
图3示出根据本公开实施例的存储器访问电路的示意图,如图3所示的存储访问电路用于解决3个不同的处理单元11访问3个不同的调度模块中的存储单元10。其中,3个处理单元11可以分别为:处理单元11_1、处理单元11_2,以及处理单元11_3;3个存储单元10可以分别为:部署在调度模块1中的存储单元10_1、部署在调度模块2中的存储单元10_2,以及部署在调度模块3中的存储单元10_3。
如图3所示,任一第一调度选择器12的输入端连接对应的一个处理单元11的输出端,任一第一调度选择器12的输出端分别连接每个仲裁器13的输入端。例如,处理单元11_1的输出端连接第一调度选择器12_1的输入端,第一调度选择器12_1的输出端分别连接仲裁器13_1的输入端~仲裁器13_3的输入端;处理单元11_2的输出端连接第一调度选择器12_2的输入端,第一调度选择器12_2的输出端也分别连接仲裁器13_1的输入端~仲裁器13_3的输入端;处理单元11_3的输出端连接第一调度选择器12_3的输入端,第一调度选择器12_3的输出端同样分别连接仲裁器13_1的输入端~仲裁器13_3的输入端。
这样,第一调度选择器12_1可用于将从处理单元11_1接收到的请求信息发送至仲裁器13_1~仲裁器13_3中的任一仲裁器,进一步,第一调度选择器12_1还可以根据请求信息的指示,从仲裁器13_1~仲裁器13_3中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即处理单元11_1发出的请求信息指示的存储单元10所对应的仲裁器。
第一调度选择器12_2可用于将从处理单元11_2接收到的请求信息发送至仲裁器13_1~仲裁器13_3中的任一仲裁器,进一步,第一调度选择器12_2还可以根据请求信息的指示,从仲裁器13_1~仲裁器13_3中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即处理单元11_2发出的请求信息指示的存储单元10所对应的仲裁器。
第一调度选择器12_3可用于将从处理单元11_3接收到的请求信息发送至仲裁器13_1~仲裁器13_3中的任一仲裁器,进一步,第一调度选择器12_3还可以根据请求信息的指示,从仲裁器13_1~仲裁器13_3中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即处理单元11_3发出的请求信息指示的存储单元10所对应的仲裁器。
在一种可能的实现方式中,所述请求信息包括调度标识,所述调度标识用于指示所述第一调度选择器12将从所述处理单元11接收到的请求信息,发送至与所述调度标识指示的存储单元10对应的仲裁器13。
在示例中,调度标识可以是位宽为2比特(bit)的二进制数据,其中,调度标识为00,表示访问调度模块1中的存储单元10_1;调度标识为01,表示访问调度模块2中的存储单元10_2;调度标识10,表示访问调度模块3中的存储单元10_3。
这样,如果处理单元11_1~处理单元11_3生成的请求信息都包括调度标识00,第一调度选择器12_1~第一调度选择器12_3会根据调度标识00的指示,将本次各自接收到的包括了调度标识00的请求信息发送至仲裁器13_1。仲裁器13_1会收到第一调度选择器12_1转发的来自处理单元11_1的请求信息、第一调度选择器12_2转发的来自处理单元11_2的请求信息、第一调度选择器12_3转发的来自处理单元11_3的请求信息。
如果处理单元11_1~处理单元11_3生成的请求信息都包括调度标识01,第一调度选择器12_1~第一调度选择器12_3会根据调度标识01的指示,将本次各自接收到的包括了调度标识01的请求信息发送至仲裁器13_2。仲裁器13_2会收到第一调度选择器12_1转发的来自处理单元11_1的请求信息、第一调度选择器12_2转发的来自处理单元11_2的请求信息、第一调度选择器12_3转发的来自处理单元11_3的请求信息。
如果处理单元11_1~处理单元11_3生成的请求信息都包括调度标识为10,第一调度选择器12_1~第一调度选择器12_3会根据调度标识10的指示,将本次各自接收到的包括了调度标识10的请求信息发送至仲裁器13_3。仲裁器13_3会收到第一调度选择器12_1转发的来自处理单元11_1的请求信息、第一调度选择器12_2转发的来自处理单元11_2的请求信息、第一调度选择器12_3转发的来自处理单元11_3的请求信息。
通过在请求信息中设置调度标识,有利于将请求信息更准确的传输至调度标识指示的存储单元10。
在实际的应用中,可以根据存储单元10的数量确定调度标识的位宽。例如,假设存储单元10的数量为N,调度标识的位宽为W,可以通过求解不等式2^W≥N,确定调度标识的位宽W,其中,2^W表示W个2相乘。其中,请求信息还可以包括请求类型(例如包括读请求和/或写请求)、访问地址(例如读请求的地址,或,写请求的地址)、使能信号(例如使当前请求信息具有某一存储单元的读写权限的信号)等,本公开对此不作具体限制。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器16,每个仲裁器13的输出端通过至少一个第一缓冲器16连接对应的存储单元10的输入端。在存储器访问电路中设置第一缓冲器16,第一缓冲器16增强了仲裁器13向存储单元10进行数据传输的驱动力,减少了在布线(floorplan)过程中因走线过长,导致信号驱动能力不足的概率。例如,在实际的应用中,在仲裁器13与存储单元10的连线比较长的场景下,如果不设置第一缓冲器16,信号会随着芯片(或电路板)上的走线而衰减,导致系统频率不能提高,性能下降的情况。通过在仲裁器13与存储单元10之间设置第一缓冲器16,可以为信号传输提供更强的驱动力,使仲裁器13发出的请求信息可以正确传输至存储单元10。
而且,在存储器访问电路中设置第一缓冲器16,还可以通过第一缓冲器16存储数据,将一次的访问请求(例如由仲裁器13仲裁后的请求信息)进行缓存,其中,第一缓冲器16与仲裁器13之间可采用握手(Handshake)的方式进行数据交互。
如图3所示,每个仲裁器13的输出端通过两个第一缓冲器16连接对应的存储单元10的输入端。例如,仲裁器13_1的输出端通过两个第一缓冲器16连接存储单元10_1的输入端;仲裁器13_2的输出端通过两个第一缓冲器16连接存储单元10_2的输入端;仲裁器13_3的输出端通过两个第一缓冲器16连接存储单元10_3的输入端。
并且,每个仲裁器13的输出端还与对应的队列单元14的输入端相连接。例如,仲裁器13_1的输出端连接队列单元14_1的输入端;仲裁器13_2的输出端连接队列单元14_2的输入端;仲裁器13_3的输出端连接队列单元14_3的输入端。
在示例中,仲裁器13_1可以对访问存储单元10_1的、来自处理单元11_1~处理单元11_3的不同的请求信息进行轮询仲裁(round robin),从3个请求信息中选出当前轮的一个目标请求信息发送至存储单元10_1,并将当前轮的目标请求信息隶属的处理单元11的标识信息写入队列单元14_1。由于在每轮仲裁中,队列单元14_1可记录一个处理单元11的标识信息,经过多轮仲裁,队列单元14_1可记录仲裁器13_1的仲裁顺序,也即不同处理单元11访问存储单元10_1的访问顺序。
例如,处理单元11_1~处理单元11_3同时发起对调度模块1中的存储单元10_1的访问请求,仲裁器13_1会同时收到来自处理单元11_1~处理单元11_3的请求信息,仲裁器13_1可以采用轮询仲裁(round robin)的方式,将访问同一个调度模块1的不同处理单元11(处理单元11_1~处理单元11_3)的请求信息进行仲裁。
若仲裁器13_1选中来自处理单元11_1的请求信息,则仲裁器13_1将来自处理单元11_1的请求信息发送至存储单元10_1,并且,仲裁器13_1往队列单元14_1中写入处理单元11_1的标识信息001;若仲裁器13_1选中来自处理单元11_2的请求信息,则仲裁器13_1将来自处理单元11_2的请求信息发送至存储单元10_1,并且,仲裁器13_1往队列单元14_1中写入处理单元11_2的标识信息010;若仲裁器13_1选中来自处理单元11_3的请求信息,则仲裁器13_1将来自处理单元11_3的请求信息发送至存储单元10_1,并且仲裁器13_1往队列单元14_1中写入处理单元11_3的标识信息100。
在示例中,仲裁器13_2可以对访问存储单元10_2的、来自处理单元11_1~处理单元11_3的不同的请求信息进行轮询仲裁(round robin),从3个请求信息中选出当前轮的一个目标请求信息发送至存储单元10_2,并将当前轮的目标请求信息隶属的处理单元11的标识信息写入队列单元14_2。由于在每轮仲裁中,队列单元14_2可记录一个处理单元11的标识信息,经过多轮仲裁,队列单元14_2可记录仲裁器13_2的仲裁顺序,也即不同处理单元11访问存储单元10_2的访问顺序。
例如,处理单元11_1~处理单元11_3同时发起对调度模块2中的存储单元10_2的访问请求,仲裁器13_2会同时收到来自处理单元11_1~处理单元11_3的请求信息,仲裁器13_2可以采用轮询仲裁(round robin)的方式,将访问同一个调度模块2的不同处理单元11(处理单元11_1~处理单元11_3)的请求信息进行仲裁。
若仲裁器13_2选中来自处理单元11_1的请求信息,则仲裁器13_2将来自处理单元11_1的请求信息发送至存储单元10_2,并且,仲裁器13_2往队列单元14_2中写入处理单元11_1的标识信息001;若仲裁器13_2选中来自处理单元11_2的请求信息,则仲裁器13_2将来自处理单元11_2的请求信息发送至存储单元10_2,并且,仲裁器13_2往队列单元14_2中写入处理单元11_2的标识信息010;若仲裁器13_2选中来自处理单元11_3的请求信息,则仲裁器13_2将来自处理单元11_3的请求信息发送至存储单元10_2,并且仲裁器13_2往队列单元14_2中写入处理单元11_3的标识信息100。
在示例中,仲裁器13_3可以对访问存储单元10_3的、来自处理单元11_1~处理单元11_3的不同的请求信息进行轮询仲裁(round robin),从3个请求信息中选出当前轮的一个目标请求信息发送至存储单元10_3,并将当前轮的目标请求信息隶属的处理单元11的标识信息写入队列单元14_3。由于在每轮仲裁中,队列单元14_3可记录一个处理单元11的标识信息,经过多轮仲裁,队列单元14_3可记录仲裁器13_3的仲裁顺序,也即不同处理单元11访问存储单元10_3的访问顺序。
例如,处理单元11_1~处理单元11_3同时发起对调度模块3中的存储单元10_3的访问请求,仲裁器13_3会同时收到来自处理单元11_1~处理单元11_3的请求信息,仲裁器13_3可以采用轮询仲裁(round robin)的方式,将访问同一个调度模块2的不同处理单元11(处理单元11_1~处理单元11_3)的请求信息进行仲裁。
若仲裁器13_3选中来自处理单元11_1的请求信息,则仲裁器13_3将来自处理单元11_1的请求信息发送至存储单元10_3,并且,仲裁器13_3往队列单元14_3中写入处理单元11_1的标识信息001;若仲裁器13_3选中来自处理单元11_2的请求信息,则仲裁器13_3将来自处理单元11_2的请求信息发送至存储单元10_3,并且,仲裁器13_3往队列单元14_3中写入处理单元11_2的标识信息010;若仲裁器13_3选中来自处理单元11_3的请求信息,则仲裁器13_3将来自处理单元11_3的请求信息发送至存储单元10_3,并且仲裁器13_3往队列单元14_3中写入处理单元11_3的标识信息100。
通过这种方式,在多个不同的处理单元11访问同一存储单元10时,可以通过相应的仲裁器13按照仲裁顺序确定访问存储单元10的访问顺序,并可以通过队列单元14记录该仲裁顺序。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器17,每个第二调度选择器15的输入端通过至少一个第二缓冲器17连接对应的存储单元10的输出端。在存储器访问电路中设置第二缓冲器17,第二缓冲器17增强了存储单元10向第二调度选择器15进行数据传输的驱动力,减少了在布线(floorplan)过程中因走线过长,导致信号驱动能力不足的概率。例如,在实际的应用中,在存储单元10与第二缓冲器17的连线比较长的场景下,如果不设置第二缓冲器17,信号会随着芯片(或电路板)上的走线而衰减,导致系统频率不能提高,性能下降的情况。通过在存储单元10与第二调度选择器15之间设置第二缓冲器17,可以为信号传输提供更强的驱动力,使存储单元10发出的返回数据可以正确传输至第二调度选择器15。
而且,在存储器访问电路中设置第二缓冲器17,还可以通过第二缓冲器17存储数据,将一次的返回数据(例如存储单元10响应请求信息所发送的返回数据)进行缓存,其中,第二缓冲器17与第二调度选择器15之间可采用握手(Handshake)的方式进行数据交互。
如图3所示,任一第二调度选择器15的输入端通过两个第二缓冲器17连接对应的存储单元10的输出端,并且,任一第二调度选择器15的输入端还会连接对应的所述队列单元14的输出端,任一第二调度选择器15的输出端分别连接每个处理单元11的输入端。
在示例中,存储单元10_1的输出端通过两个第二缓冲器17连接第二调度选择器15_1的输入端,并且,第二调度选择器15_1的输入端和队列单元14_1的输出端也相连接,第二调度选择器15_1的输出端按照一连多的方式,分别连接处理单元11_1的输入端~处理单元11_3的输入端;
这样,当存储单元10_1响应请求信息向第二调度选择器15_1发送返回数据时,第二调度选择器15_1可以根据从队列单元14_1的队头读出的标识信息,将接收到的返回数据发送至该标识信息指示的处理单元11;例如,由于队列单元14_1的存储机制为先入先出,因此,当队列单元14_1在写入信息为001,100,010;则表示对应的调度模块1中仲裁器13_1选中处理单元11的仲裁顺序为处理单元11_1、处理单元11_3、处理单元11_2;则返回数据也应按照写入时的仲裁顺序返回为处理单元11_1、处理单元11_3、处理单元11_2。
在示例中,存储单元10_2的输出端通过两个第二缓冲器17连接第二调度选择器15_2的输入端,并且,第二调度选择器15_2的输入端和队列单元14_2的输出端也相连接,第二调度选择器15_2的输出端按照一连多的方式,分别连接处理单元11_1的输入端~处理单元11_3的输入端。
这样,当存储单元10_2响应请求信息向第二调度选择器15_2发送返回数据时,第二调度选择器15_2可以根据从队列单元14_2的队头读出的标识信息,将接收到的返回数据发送至该标识信息指示的处理单元11;例如,由于队列单元14_2的存储机制为先入先出,因此,当队列单元14_2在写入信息为001,010,100;则表示对应的调度模块2中仲裁器13_2选中处理单元11的仲裁顺序为处理单元11_1、处理单元11_2、处理单元11_3;则返回数据也应按照写入时的仲裁顺序返回为处理单元11_1、处理单元11_2、处理单元11_3。
在示例中,存储单元10_3的输出端通过两个第二缓冲器17连接第二调度选择器15_3的输入端,并且,第二调度选择器15_3的输入端和队列单元14_3的输出端也相连接,第二调度选择器15_3的输出端按照一连多的方式,分别连接处理单元11_1的输入端~处理单元11_3的输入端。
这样,当存储单元10_3响应请求信息向第二调度选择器15_3发送返回数据时,第二调度选择器15_3可以根据从队列单元14_3的队头读出的标识信息,将接收到的返回数据发送至该标识信息指示的处理单元11。例如,由于队列单元14_3的存储机制为先入先出,因此,当队列单元14_3在写入信息为100,010,001;则表示对应的调度模块3中仲裁器13_3选中处理单元11的仲裁顺序为处理单元11_3、处理单元11_2、处理单元11_2;则返回数据也应按照写入时的仲裁顺序返回为处理单元11_3、处理单元11_2、处理单元11_1。
其中,如果存储单元10收到的请求信息包含读请求,返回数据可以是按照读请求的指示所读取的数据,和/或,表征是否完成读操作的标识数据;如果存储单元10收到的请求信息包含写请求,返回数据可以是表征是否完成写操作的标识数据,本公开对返回数据的具体内容不作限制。其中,标识数据还可以用作使能信号,以触发处理单元11发送下一次的请求信息。
本公开实施例的存储器访问电路,实现了多个处理单元11访问不同的存储单元10(例如包括部署在不同调度模块中的存储单元),当多个处理单元11访问存储单元10时,可以通过队列单元14存储处理单元11的标识信息,来记录多个处理单元11的访问顺序,当存储单元10回复返回数据时,可以根据队列单元14记录的访问顺序,将存储单元10的返回数据准确地传输至处理单元11。
其中,如图3所示,处理单元11_1可以连续访问调度模块1的存储单元10_1和调度模块2的存储单元10_2。在这种情况下,如果调度模块1的存储单元10_1先回复返回数据,处理单元11_1可以先接收存储单元10_1的返回数据;如果调度模块2的存储单元10_2先回复返回数据,处理单元11_1也可以先接收存储单元10_1的返回数据。
在一种可能的实现方式中,所述仲裁器13的输出位宽和所述队列单元14的位宽是根据所述处理单元11的数量确定的。仲裁器13的输出位宽和队列单元14的位宽也即处理单元11的标识信息的位宽,如图3所示,存储器访问电路包括了三个处理单元11,可以将仲裁器13的输出位宽和队列单元14的位宽设置为3比特(bit),用标识信息001表征处理单元11_1,用标识信息010表征处理单元11_2,用标识信息010表征处理单元11_3。又例如,如果存储器访问电路存在10个处理单元11,则可以对硬件电路中仲裁器13调整为10选1,队列单元14位宽由3比特(bit)扩展为10比特(bit)。应当理解,每增加一个处理单元11,仲裁器13就增加1比特(bit),队列单元14的位宽也增加1比特(bit),本公开对仲裁器13的输出位宽和队列单元14的位宽不作具体限制。
在一种可能的实现方式中,所述队列单元14存储标识信息的数量小于或等于所述队列单元14的深度。
其中,队列单元14写入的机制是仲裁器13选出一个处理单元11时才进行队列单元14的一次写入;如图3所示,队列单元14的深度为4,表示每个队列单元14最多可以写入4次请求信息,在此情况下,队列单元14存储标识信息的数量小于或等于队列单元14的深度4。在实际的应用中,可以根据具体的应用场景确定队列单元的深度,本公开对此不作限制。
在一种可能的实现方式中,多个仲裁器13并行处理,用于使相同的存储单元顺序回传返回数据。由于每个仲裁器13对应一个队列单元14,在仲裁器13并行处理的情况下,每并行处理一次,就可以在每个仲裁器13对应的队列单元14记录一个处理单元11的标识信息。这样,在存储单元10回传返回数据的情况下,就可以按照队列单元14记录的仲裁顺序回传返回数据。
图4示出根据本公开实施例的存储器访问方法的流程图,所述方法应用于如图2所示的存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元10。如图4所示,存储器访问方法包括:
在步骤S11中,每个处理单元11将生成的请求信息发送至对应的第一调度选择器12。
在步骤S12中,任一第一调度选择器12将从所述处理单元11接收到的所述请求信息,发送至所述请求信息指示的存储单元10的仲裁器13。
在步骤S13中,每个仲裁器13对来自多个处理单元11的请求信息进行仲裁,按照仲裁顺序向存储单元10发送请求信息,以及按照所述仲裁顺序将所述多个处理单元11的标识信息写入队列单元14。
在步骤S14中,每个存储单元10根据接收到的所述请求信息,发送返回数据至所述第二调度选择器15。
在步骤S15中,所述第二调度选择器15根据从所述队列单元14读取的标识信息,将所述存储单元10的返回数据传输至所述标识信息指示的处理单元11。
本公开实施例的存储器访问电路,实现了多个处理单元11访问不同的存储单元10(例如包括部署在不同调度模块中的存储单元),当多个处理单元11访问存储单元10时,可以通过队列单元14存储处理单元11的标识信息,来记录多个处理单元11的访问顺序,当存储单元10回复返回数据时,可以根据队列单元14记录的访问顺序,将存储单元10的返回数据高效地准确地传输至处理单元11,进一步提高处理器芯片的运行效率。
在一种可能的实现方式中,所述请求信息包括调度标识,步骤S12可包括:所述第一调度选择器12根据所述调度标识,将从所述处理单元11接收到的所述请求信息,发送至与所述调度标识指示的存储单元10对应的仲裁器13。
在一种可能的实现方式中,所述仲裁器13的输出位宽和所述队列单元的位宽是根据所述处理单元11的数量确定的,所述队列单元14存储标识信息的数量小于或等于所述队列单元14的深度。
在一种可能的实现方式中,多个仲裁器13并行处理,以使相同的存储单元顺序回传返回数据。
可以理解,本公开提及的上述各个方法实施例,在不违背原理逻辑的情况下,均可以彼此相互结合形成结合后的实施例,限于篇幅,本公开不再赘述。本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
此外,本公开还提供了封装了存储器访问电路的集成电路、电子设备、计算机程序产品,上述均可用来实现本公开提供的任一种存储器访问方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
本公开实施例还提出一种集成电路,所述集成电路包括如上所述的存储器访问电路。
本公开实施例还提出一种电子设备,所述电子设备包括如上所述的存储器访问电路。电子设备可以被提供为终端、服务器或其它形态的设备。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (11)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN116737083A true CN116737083A (zh) 2023-09-12
CN116737083B CN116737083B (zh) 2024-04-23

Family

ID=87902714

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN116737083B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719479A (zh) * 2023-07-03 2023-09-08 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046685B1 (en) * 1998-12-15 2006-05-16 Fujitsu Limited Scheduling control system and switch
CN106569727A (zh) * 2015-10-08 2017-04-19 福州瑞芯微电子股份有限公司 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法
CN108228649A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据访问的方法和设备
US20200159581A1 (en) * 2018-11-19 2020-05-21 Ati Technologies Ulc Variable latency request arbitration
CN113051195A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 存储器、gpu及电子设备
CN114090479A (zh) * 2021-11-30 2022-02-25 上海阵量智能科技有限公司 访问报告系统、方法、装置、芯片及电子设备
CN115033184A (zh) * 2022-06-30 2022-09-09 上海阵量智能科技有限公司 访存处理装置、方法、处理器、芯片、板卡及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7046685B1 (en) * 1998-12-15 2006-05-16 Fujitsu Limited Scheduling control system and switch
CN106569727A (zh) * 2015-10-08 2017-04-19 福州瑞芯微电子股份有限公司 一种多控制器间多存储器共享并行数据读写装置及其写入、读取方法
CN108228649A (zh) * 2016-12-21 2018-06-29 伊姆西Ip控股有限责任公司 用于数据访问的方法和设备
US20200159581A1 (en) * 2018-11-19 2020-05-21 Ati Technologies Ulc Variable latency request arbitration
CN113051195A (zh) * 2021-03-02 2021-06-29 长沙景嘉微电子股份有限公司 存储器、gpu及电子设备
CN114090479A (zh) * 2021-11-30 2022-02-25 上海阵量智能科技有限公司 访问报告系统、方法、装置、芯片及电子设备
CN115033184A (zh) * 2022-06-30 2022-09-09 上海阵量智能科技有限公司 访存处理装置、方法、处理器、芯片、板卡及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116719479A (zh) * 2023-07-03 2023-09-08 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116719479B (zh) * 2023-07-03 2024-02-20 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Also Published As

Publication number Publication date
CN116737083B (zh) 2024-04-23

Similar Documents

Publication Publication Date Title
CN111913652A (zh) 包括处理电路的存储器件、存储器控制器和存储系统
CN116578245B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116521096B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116661703B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
KR102545689B1 (ko) 버퍼를 갖는 컴퓨팅 시스템 및 그것의 동작 방법
CN115033184A (zh) 访存处理装置、方法、处理器、芯片、板卡及电子设备
CN116737083B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116601601A (zh) 在多过程系统内执行可编程原子单元资源的方法
CN116583831A (zh) 向操作系统注册自定义原子操作
CN115964319A (zh) 远程直接内存访问的数据处理方法及相关产品
CN102402422A (zh) 处理器组件及该组件内存共享的方法
JP2024024607A (ja) メモリーアクセスのための集積回路、処理方法、電子機器及び媒体
US8127110B2 (en) Method, system, and medium for providing interprocessor data communication
CN116521097B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN110659143A (zh) 一种容器间的通讯方法、装置及电子设备
CN115994115A (zh) 芯片控制方法、芯片组及电子设备
CN116303211A (zh) 一种应用于车载场景的cpu多核间通信方法及装置
CN116594570B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
US7451254B2 (en) System and method for adaptive buffer allocation in a memory device interface
CN116719479B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN116820344B (zh) 存储器访问电路及存储器访问方法、集成电路和电子设备
CN117454823B (zh) 一种芯片验证多端口激励控制方法、代理器、设备及介质
CN116455849B (zh) 一种面向众核处理器的并发通信方法、装置、设备和介质
JP2013539577A (ja) インタラプト・ベースのコマンド処理
CN212873459U (zh) 一种用于数据压缩存储的系统

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