CN116719479B - 存储器访问电路及存储器访问方法、集成电路和电子设备 - Google Patents
存储器访问电路及存储器访问方法、集成电路和电子设备 Download PDFInfo
- Publication number
- CN116719479B CN116719479B CN202310799414.4A CN202310799414A CN116719479B CN 116719479 B CN116719479 B CN 116719479B CN 202310799414 A CN202310799414 A CN 202310799414A CN 116719479 B CN116719479 B CN 116719479B
- Authority
- CN
- China
- Prior art keywords
- processing unit
- queue
- request information
- pointer
- identifier
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 594
- 230000004044 response Effects 0.000 claims description 30
- 230000006870 function Effects 0.000 claims description 5
- 238000004321 preservation Methods 0.000 abstract description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 241001522296 Erithacus rubecula Species 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000002238 attenuated effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开涉及一种存储器访问电路及存储器访问方法、集成电路和电子设备,涉及电子技术领域,该存储器访问电路用于访问多个不同的存储单元,包括多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;其中,指针管理模块用于记录处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,以及在索引标识指示的存储位置处存储来自存储单元的返回数据,并根据记录的请求顺序取出返回数据至处理单元。本公开实施例的存储器访问电路可以利用更少的存储开销,使处理单元后发送的请求信息的返回数据先缓存在指针管理模块中,等待先发起请求信息的返回数据,更高效地在处理单元内部实现返回数据的保序。
Description
技术领域
本公开涉及电子技术领域,尤其涉及一种存储器访问电路及存储器访问方法、集成电路和电子设备。
背景技术
随着集成电路产业的快速发展,各类处理器芯片在各行各业中的应用越来越广泛,可以应用到网络通信、手机、机顶盒、液晶电视、医疗设备、安防设备、工控设备、智能电表、智能穿戴、物联网、汽车电子等场景。
在各类处理器芯片中,处理单元会访问存储单元以实现各种目标任务,其中,处理器芯片内的存储器访问电路可用于管理处理单元与存储单元之间的通信,存储器访问电路会直接影响整个处理器芯片的运行效率和稳定性。
发明内容
本公开提出了一种存储器访问技术方案。
根据本公开的一方面,提供了一种存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;所述指针管理模块用于记录所述处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,所述索引标识用于指示所述指针管理模块中的存储位置;所述存储单元对应的调度队列用于按照多个处理单元访问所述存储单元的访问顺序,记录多个处理单元的处理单元标识和所述索引标识;所述存储单元用于根据所述调度队列记录的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元;所述处理单元的所述指针管理模块用于在所述索引标识指示的存储位置处存储所述返回数据,并根据记录的所述请求顺序取出返回数据至所述处理单元。
在一种可能的实现方式中,所述指针管理模块包括指针单元、访问队列、数据队列;所述指针单元用于按照所述处理单元发送请求信息的请求顺序,生成每个请求信息的所述索引标识;所述访问队列用于按照所述指针单元的指示,记录所述处理单元发送请求信息的请求顺序;所述数据队列用于在所述索引标识指示的存储位置处,存储所述返回数据,以及按照所述指针单元的指示,根据从所述访问队列获取的所述请求顺序,从所述数据队列取出返回数据至所述处理单元。
在一种可能的实现方式中,所述存储器访问电路还包括:与每个处理单元对应的第一调度选择器,与每个存储单元对应的仲裁器、第二调度选择器;任一第一调度选择器的输入端连接对应的处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,所述处理单元用于生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识,所述第一调度选择器用于将从所述处理单元接收到的请求信息和所述索引标识发送至调度标识指示的存储单元的仲裁器;每个仲裁器的输出端连接对应的存储单元的输入端、对应的调度队列的输入端,所述仲裁器用于对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识和所述索引标识写入所述调度队列,所述仲裁顺序用于指示多个处理单元访问所述存储单元的访问顺序;任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述调度队列的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端,所述第二调度选择器用于根据从所述调度队列的队首读取的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元。
在一种可能的实现方式中,所述访问队列包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识和第二状态标识,所述第一状态标识用于标记所述处理单元发出的所述请求信息,所述第二状态标识用于标记所述数据队列已存储所述请求信息的返回数据。
在一种可能的实现方式中,所述指针单元用于管理写指针,所述写指针用于指示所述访问队列中最新标记的发出请求信息的当前行;所述指针单元用于:在所述访问队列的所述当前行的下一行没有标记第一状态标识的情况下,响应于所述处理单元发出所述请求信息,对所述写指针执行自加操作;根据自加操作后的写指针,确定所述请求信息的所述索引标识。
在一种可能的实现方式中,所述访问队列用于实现以下功能中的至少之一:响应于所述处理单元发出所述请求信息,在所述访问队列中所述自加操作后的写指针指示的位置处标记所述第一状态标识;响应于所述数据队列在所述索引标识指示的存储位置处存储所述返回数据,在所述访问队列中所述索引标识指示的位置处标记所述第二状态标识。
在一种可能的实现方式中,所述指针单元用于管理读指针,所述读指针用于指示所述访问队列中最早标记发出请求信息的行;所述指针单元用于:在所述访问队列中所述读指针指示的位置处已经标记了所述第一状态标识和所述第二状态标识的情况下,从所述数据队列的对应位置处取出返回数据至所述处理单元;清除所述访问队列中所述读指针指示的位置处的所述第一状态标识和所述第二状态标识;对所述读指针执行自加操作。
在一种可能的实现方式中,所述访问队列、所述数据队列的深度相同,所述深度表征所述访问队列、所述数据队列的行数,所述深度是根据所述处理单元的并发度确定的,所述处理单元的并发度表征所述处理单元在不等待请求信息的返回数据的情况下,最多向存储单元持续发送请求信息的次数;所述数据队列的位宽是根据所述返回数据的位宽确定的,所述访问队列的位宽是根据所述第一状态标识的位宽和所述第二状态标识的位宽确定的。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器、至少一个第二缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端,每个存储单元的输出端通过至少一个第二缓冲器连接对应的第二调度选择器的输入端。
根据本公开的一方面,提供了一种存储器访问方法,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;所述存储器访问方法包括:所述指针管理模块记录所述处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,所述索引标识用于指示所述指针管理模块中的存储位置;所述存储单元对应的调度队列按照多个处理单元访问所述存储单元的访问顺序,记录多个处理单元的处理单元标识和所述索引标识。
在一种可能的实现方式中,所述指针管理模块包括指针单元、访问队列;所述指针管理模块记录所述处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,包括:所述指针单元按照所述处理单元发送请求信息的请求顺序,生成每个请求信息的所述索引标识;所述访问队列按照所述指针单元的指示,记录所述处理单元发送请求信息的请求顺序。
在一种可能的实现方式中,所述存储器访问电路还包括:与每个处理单元对应的第一调度选择器,与每个存储单元对应的仲裁器;任一第一调度选择器的输入端连接对应的处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,每个仲裁器的输出端连接对应的存储单元的输入端、对应的调度队列的输入端;所述存储器访问方法还包括:所述处理单元生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识,所述第一调度选择器将从所述处理单元接收到的请求信息和所述索引标识发送至调度标识指示的存储单元的仲裁器;所述仲裁器对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识和所述索引标识写入所述调度队列,所述仲裁顺序用于指示多个处理单元访问所述存储单元的访问顺序。
在一种可能的实现方式中,所述访问队列包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识,所述第一状态标识用于标记所述处理单元发出的所述请求信息,所述指针单元用于管理写指针,所述写指针用于指示所述访问队列中最新标记的发出请求信息的当前行,所述指针单元按照所述处理单元发送请求信息的请求顺序,生成每个请求信息的所述索引标识,包括:在所述访问队列的所述当前行的下一行没有标记第一状态标识的情况下,响应于所述处理单元发出所述请求信息,对所述写指针执行自加操作;根据自加操作后的写指针,确定所述请求信息的所述索引标识。
在一种可能的实现方式中,所述访问队列按照所述指针单元的指示,记录所述处理单元发送请求信息的请求顺序,包括:响应于所述处理单元发出所述请求信息,在所述访问队列中所述自加操作后的写指针指示的位置处标记所述第一状态标识。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端。
根据本公开的一方面,提供了一种存储器访问方法,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;所述存储单元根据所述调度队列记录的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元;所述处理单元的所述指针管理模块在所述索引标识指示的存储位置处存储所述返回数据,并根据所述指针管理模块记录的请求顺序取出返回数据至所述处理单元。
在一种可能的实现方式中,所述指针管理模块包括指针单元、访问队列、数据队列;所述处理单元的所述指针管理模块在所述索引标识指示的存储位置处存储所述返回数据,并根据所述指针管理模块记录的请求顺序取出返回数据至所述处理单元,包括:所述数据队列在所述索引标识指示的存储位置处,存储所述返回数据;所述数据队列按照所述指针单元的指示,根据从所述访问队列获取的所述请求顺序,从所述数据队列取出返回数据至所述处理单元,其中,所述访问队列记录了所述处理单元发送请求信息的请求顺序。
在一种可能的实现方式中,所述存储器访问电路还包括与每个存储单元对应的第二调度选择器,任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述调度队列的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端,所述存储器访问方法还包括:所述第二调度选择器根据从所述调度队列的队首读取的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元。
在一种可能的实现方式中,所述访问队列包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识和第二状态标识,所述第一状态标识用于标记所述处理单元发出的所述请求信息,所述第二状态标识用于标记所述数据队列已存储所述请求信息的返回数据,所述存储器访问方法还包括:所述访问队列响应于所述数据队列在所述索引标识指示的存储位置处存储所述返回数据,在所述访问队列中所述索引标识指示的位置处标记所述第二状态标识。
在一种可能的实现方式中,所述指针单元用于管理读指针,所述读指针用于指示所述访问队列中最早标记发出请求信息的行,所述数据队列按照所述指针单元的指示,根据从所述访问队列获取的所述请求顺序,从所述数据队列取出返回数据至所述处理单元,包括:在所述访问队列中所述读指针指示的位置处已经标记了所述第一状态标识和所述第二状态标识的情况下,从所述数据队列的对应位置处取出返回数据至所述处理单元;清除所述访问队列中所述读指针指示的位置处的所述第一状态标识和所述第二状态标识;对所述读指针执行自加操作。
在一种可能的实现方式中,所述访问队列、所述数据队列的深度相同,所述深度表征所述访问队列、所述数据队列的行数,所述深度是根据所述处理单元的并发度确定的,所述处理单元的并发度表征所述处理单元在不等待请求信息的返回数据的情况下,最多向存储单元持续发送请求信息的次数;所述数据队列的位宽是根据所述返回数据的位宽确定的,所述访问队列的位宽是根据所述第一状态标识的位宽和所述第二状态标识的位宽确定的。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器,每个存储单元的输出端通过至少一个第二缓冲器连接对应的第二调度选择器的输入端。
根据本公开的一方面,提供了一种集成电路,所述集成电路包括如上所述的存储器访问电路。
根据本公开的一方面,提供了一种电子设备,所述电子设备包括如上所述的存储器访问电路。
根据本公开的一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述方法。
本公开实施例的存储器访问电路用于访问多个不同的存储单元,该存储器访问电路包括:多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;其中,指针管理模块用于记录处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,索引标识用于指示指针管理模块中的存储位置;存储单元对应的调度队列用于按照多个处理单元访问存储单元的访问顺序,记录多个处理单元的处理单元标识和索引标识;存储单元用于根据调度队列记录的处理单元标识和索引标识,将存储单元的返回数据和索引标识传输至处理单元标识指示的处理单元;处理单元的指针管理模块用于在索引标识指示的存储位置处存储返回数据,并根据记录的请求顺序取出返回数据至处理单元。
通过在每个处理单元内设置的指针管理模块,可记录处理单元向多个不同的存储单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,用于在指针管理模块中为每个请求信息的返回数据预留存储位置;当各存储单元回复返回数据至处理单元时,处理单元的指针管理模块可根据索引标识指示的存储位置,将多个存储单元的返回数据存储在一起,并根据指针管理模块记录的请求顺序取出返回数据至处理单元,使得处理单元后发送的请求信息的返回数据先缓存在指针管理模块中,等待先发起请求信息的返回数据。这样,有利于通过更少的存储开销,更高效地在每个处理单元内部实现返回数据的保序,大幅节省了存储资源。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1示出根据本公开实施例的一种存储器访问电路的示意图。
图2示出根据本公开实施例的另一种存储器访问电路的示意图。
图3示出根据本公开实施例的访问队列的示意图。
图4示出根据本公开实施例的数据队列的示意图。
图5示出根据本公开实施例的另一种存储器访问电路的示意图。
图6示出根据本公开实施例的一种存储器访问方法的流程图。
图7示出根据本公开实施例的另一种存储器访问方法的流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
另外,为了更好地说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开实施例的一种存储器访问电路的示意图,如图1所示,所述存储器访问电路用于访问多个不同的存储单元0,所述存储器访问电路包括:多个处理单元1,每个处理单元1包括指针管理模块A,与每个存储单元0对应的调度队列7;
所述指针管理模块A用于记录所述处理单元1发送请求信息的请求顺序,并为每个请求信息生成索引标识,所述索引标识用于指示所述指针管理模块A中的存储位置;
所述存储单元0对应的调度队列7用于按照多个处理单元1访问所述存储单元0的访问顺序,记录多个处理单元1的处理单元标识和所述索引标识;
所述存储单元0用于根据所述调度队列7记录的处理单元标识和索引标识,将所述存储单元0的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元1;
所述处理单元1的所述指针管理模块A用于在所述索引标识指示的存储位置处存储所述返回数据,并根据记录的所述请求顺序取出返回数据至所述处理单元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提供所需的资源(返回数据)。
在一种可能的实现方式中,如图1所示,存储器访问电路可用于访问M个(M≥1)不同的存储单元0,该存储器访问电路可包括:N个(N≥1)处理单元1,每个处理单元1包括一个指针管理模块A,与M个存储单元0分别对应的M个调度队列7。应当理解,本公开的实施例对存储单元0的数量M和处理单元1的数量N不作限制,可根据实际的应用场景,设置M和N的取值。
如图1所示,M个存储单元0可以分别为存储单元0_1~存储单元0_M,N个处理单元1可分别为处理单元1_1~处理单元1_N。
其中,处理单元1_1内设置有指针管理模块A_1,在处理单元1_1访问各存储单元0阶段,指针管理模块A_1用于记录处理单元1_1访问存储单元0_1~存储单元0_M的请求顺序,并为每个请求信息生成对应的索引标识,该索引标识用于指示指针管理模块A_1中的存储位置。在各存储单元0响应处理单元1_1的访问请求回传返回数据阶段,指针管理模块A_1用于在索引标识指示的存储位置处存储返回数据,并根据记录的请求顺序从指针管理模块A_1取出返回数据至所述处理单元1_1。
处理单元1_2内设置有指针管理模块A_2,在处理单元1_2访问各存储单元0阶段,指针管理模块A_2用于记录处理单元1_2访问存储单元0_1~存储单元0_M的请求顺序,并为每个请求信息生成对应的索引标识,该索引标识用于指示指针管理模块A_2中的存储位置。在各存储单元0响应处理单元1_2的访问请求回传返回数据阶段,指针管理模块A_2用于在索引标识指示的存储位置处存储返回数据,并根据记录的请求顺序从指针管理模块A_2取出返回数据至所述处理单元1_2。
以此类推,处理单元1_N内设置有指针管理模块A_N,在处理单元1_N访问各存储单元0阶段,指针管理模块A_N用于记录处理单元1_N访问存储单元0_1~存储单元0_M的请求顺序,并为每个请求信息生成对应的索引标识,该索引标识用于指示指针管理模块A_N中的存储位置。在各存储单元0响应处理单元1_N的访问请求回传返回数据阶段,指针管理模块A_N用于在索引标识指示的存储位置处存储返回数据,并根据记录的请求顺序从指针管理模块A_N取出返回数据至所述处理单元1_N。
在一种可能的实现方式中,处理单元1_1发送用于访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息时,可以同步发送各请求信息对应的索引标识,所述索引标识用于在处理单元1_1的指针管理模块A_1中指示存储位置。例如,假设存在索引标识1~K,索引标识1可用于指示指针管理模块A_1的存储位置1,索引标识2可用于指示指针管理模块A_1的存储位置2,以此类推,索引标识K可用于指示指针管理模块A_1的存储位置K。通过为每个请求信息设置一个对应的索引标识,可以在指针管理模块A_1中为每个请求信息的返回数据预留存储位置,使得处理单元1_1后发送的请求信息的返回数据,可以先缓存在指针管理模块A_1中该请求信息对应的索引标识指示的存储位置,等待先发起请求信息的返回数据,在各处理单元1_1的内部进行返回数据的保序处理。
处理单元1_2发送用于访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息时,可以同步发送各请求信息对应的索引标识,所述索引标识用于在处理单元1_2的指针管理模块A_2中指示存储位置。例如,假设存在索引标识1~K,索引标识1可用于指示指针管理模块A_2的存储位置1,索引标识2可用于指示指针管理模块A_2的存储位置2,以此类推,索引标识K可用于指示指针管理模块A_2的存储位置K。通过为每个请求信息设置一个对应的索引标识,可以在指针管理模块A_2中为每个请求信息的返回数据预留存储位置,使得处理单元1_2后发送的请求信息的返回数据,可以先缓存在指针管理模块A_2中该请求信息对应的索引标识指示的存储位置,等待先发起请求信息的返回数据,在各处理单元1_2的内部进行返回数据的保序处理。
以此类推,处理单元1_N发送用于访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息时,可以同步发送各请求信息对应的索引标识,所述索引标识用于在处理单元1_N的指针管理模块A_N中指示存储位置。例如,假设存在索引标识1~K,索引标识1可用于指示指针管理模块A_N的存储位置1,索引标识2可用于指示指针管理模块A_N的存储位置2,以此类推,索引标识K可用于指示指针管理模块A_N的存储位置K。通过为每个请求信息设置一个对应的索引标识,可以在指针管理模块A_N中为每个请求信息的返回数据预留存储位置,使得处理单元1_N后发送的请求信息的返回数据,可以先缓存在指针管理模块A_N中该请求信息对应的索引标识指示的存储位置,等待先发起请求信息的返回数据,在各处理单元1_N的内部实现返回数据的保序。
如图1所示,M个调度队列7可分别为调度队列7_1~调度队列7_M;其中,调度队列7_1与存储单元0_1对应;调度队列7_2与存储单元0_2对应;以此类推,调度队列7_M与存储单元0_M对应。
其中,调度队列7(例如调度队列7_1~调度队列7_M)可以是先入先出(FirstInput First Output,FIFO)队列,即第一个进入其内的数据第一个被移出。
在示例中,响应于处理单元1_1~处理单元1_N可以将生成的请求信息发送至存储单元0_1,调度队列7_1可以按照处理单元1_1~处理单元1_N访问存储单元0_1的访问顺序,将来自处理单元1_1~处理单元1_N的请求信息各自对应的索引标识和处理单元标识,写入调度队列7_1。
例如,如果存储单元0_1依次收到三个请求信息,其中,第一个请求信息来自处理单元1_1,其对应索引标识K;第二个请求信息来自处理单元1_3,其对应索引标识1;第三个请求信息来自处理单元1_2,其对应索引标识2。
处理单元1_1将第一个请求信息发送至存储单元0_1,可以同步将指示处理单元1_1的处理单元标识1和索引标识K写入调度队列7_1;处理单元1_3将第二个请求信息发送至存储单元0_1,可以同步将指示处理单元1_3的处理单元标识3和索引标识1写入调度队列7_1;处理单元1_2将第三个请求信息发送至存储单元0_1,可以同步将指示处理单元1_2的处理单元标识2和索引标识2写入调度队列7_1。在此情况下,调度队列7_1按照存储单元0_1接收请求信息的顺序(也即处理单元1_1~处理单元1_3访问存储单元0_1的访问顺序,例如处理单元1_1先访问存储单元0_1,处理单元1_3再访问存储单元0_1,然后处理单元1_2访问存储单元0_1),在从队首至队尾的方向,依次存储了处理单元标识1和索引标识K、处理单元标识3和索引标识1、处理单元标识2和索引标识2。
类似的,调度队列7_2可以按照处理单元1_1~处理单元1_N访问存储单元0_2的访问顺序,将来自处理单元1_1~处理单元1_N的请求信息各自对应的索引标识和处理单元标识,写入调度队列7_2;以此类推,调度队列7_M可以按照处理单元1_1~处理单元1_N访问存储单元0_M的访问顺序,将来自处理单元1_1~处理单元1_N的请求信息各自对应的索引标识和处理单元标识,写入调度队列7_M。
在回传返回数据阶段,存储单元0响应来自处理单元1的请求信息,根据调度队列7记录的处理单元标识和索引标识,将存储单元0的返回数据和索引标识传输至处理单元标识指示的处理单元1。
例如,假设调度队列7_1按照从队首至队尾的方向,依次存储了索引标识1和处理单元标识N、索引标识2和处理单元标识2、索引标识3和处理单元标识1。
可以根据从调度队列7_1的队首读取索引标识1和处理单元标识N,将存储单元0_1的返回数据和索引标识1传输至处理单元标识N指示的处理单元1_N。此时,在调度队列7_1中,索引标识1和处理单元标识N出队,索引标识2和处理单元标识2会变为调度队列7_1的队首。
可以继续从调度队列7_1的队首读取索引标识2和处理单元标识2,将存储单元0_1的返回数据和索引标识2传输至处理单元标识2指示的处理单元1_2。此时,在调度队列7_1中,索引标识2和处理单元标识2出队,索引标识3和处理单元标识1会变为调度队列7_1的队首。
然后,可以继续从调度队列7_1的队首读取索引标识3和处理单元标识1,将存储单元0_1的返回数据和索引标识3传输至处理单元标识1指示的处理单元1_1。
类似的,当存储单元0_2~存储单元0_M响应各自的请求信息分别向对应的处理单元1_1~处理单元1_N发送返回数据时,可以根据各自从对应的调度队列7_2~调度队列7_M的队首读出的索引标识和处理单元标识,将返回数据和读取的索引标识发送至读取的处理单元标识指示的处理单元1,此处不再赘述。
各处理单元1响应于收到返回数据和索引标识,各处理单元1的指针管理模块A_1可以在索引标识指示的存储位置处存储返回数据。各处理单元1的指针管理模块A_1可以根据记录的请求顺序取出返回数据至处理单元1。
例如,处理单元1_1每当收到返回数据和索引标识,处理单元1_1的指针管理模块A_1可以在索引标识指示的存储位置处存储返回数据。处理单元1_1的指针管理模块A_1可以根据记录的请求顺序取出返回数据至处理单元1_1。
处理单元1_2每当收到返回数据和索引标识,处理单元1_2的指针管理模块A_2可以在索引标识指示的存储位置处存储返回数据。处理单元1_2的指针管理模块A_2可以根据记录的请求顺序取出返回数据至处理单元1_2。
以此类推,处理单元1_N每当收到返回数据和索引标识,处理单元1_N的指针管理模块A_N可以在索引标识指示的存储位置处存储返回数据。处理单元1_N的指针管理模块A_N可以根据记录的请求顺序取出返回数据至处理单元1_N。
本公开实施例的存储器访问电路中,实现了多个处理单元1访问多个不同的存储单元0(例如包括部署在不同调度模块中的存储单元),当多个处理单元1访问多个不同的存储单元0时,可以通过调度队列7存储处理单元1的处理单元标识和索引标识,来记录多个处理单元1的访问顺序,当存储单元0响应请求信息回传返回数据时,可以根据调度队列7按照访问顺序记录的处理单元标识,将存储单元0的返回数据准确地传输至处理单元标识指示的处理单元1,并在该处理单元1的指针管理模块A中索引标识指示的存储位置处存储返回数据。
每个处理单元1内设置的指针管理模块A,可按照处理单元1向多个不同的存储单元0发送请求信息的顺序记录请求顺序,并为每个请求信息生成索引标识,用于在指针管理模块A中为每个请求信息的返回数据预留存储位置;当各存储单元0回复返回数据至处理单元1时,处理单元1的指针管理模块A可根据索引标识指示的存储位置,将多个存储单元0的返回数据存储在一起,并根据记录的请求顺序取出返回数据至处理单元1,使得处理单元1后发送的请求信息的返回数据先缓存在指针管理模块A中,等待先发起请求信息的返回数据。这样,有利于通过更少的存储开销,更高效地在每个处理单元内部实现返回数据的保序,大幅节省了存储资源。
下面对本公开实施例的存储器访问电路进行展开说明。图2示出根据本公开实施例的另一种存储器访问电路的示意图。
在一种可能的实现方式中,所述处理单元1可用于生成访问存储单元0的请求信息,所述请求信息包括用于指示存储单元0的调度标识。
示例性地,处理单元1_1可生成访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息,该请求信息可包括用于指示存储单元0的调度标识。例如,假设存在调度标识1~M,调度标识1可用于指示存储单元0_1,调度标识2可用于指示存储单元0_2,以此类推,调度标识M可用于指示存储单元0_M。通过在请求信息中设置调度标识,有利于将请求信息更准确的传输至调度标识指示的存储单元0。
在示例中,假设存储单元0的数量M为3,即存在3个存储单元0,调度标识可以是位宽为2比特(bit)的二进制数据,其中,调度标识为00,表示访问存储单元0_1;调度标识为01,表示访问存储单元0_2;调度标识10,表示访问存储单元0_3。本公开对调度标识的位宽不作限制,可以根据存储单元0的数量确定调度标识的位宽。例如,假设存储单元0的数量为M,调度标识的位宽为W,可以通过求解不等式2^W≥M,确定调度标识的位宽W,其中,2^W表示W个2相乘。
其中,请求信息还可以包括请求类型(例如包括读请求和/或写请求)、访问地址(例如读请求的地址,或,写请求的地址)、使能信号(例如使当前请求信息具有某一存储单元的读写权限的信号)等,本公开对此不作具体限制。
在此情况下,如果处理单元1_1生成的请求信息包括调度标识1,可以将该请求信息发送至调度标识1指示的存储单元0_1;如果处理单元1_1生成的请求信息包括调度标识2,可以将该请求信息发送至调度标识2指示的存储单元0_2;以此类推,如果处理单元1_1生成的请求信息包括调度标识M,可以将该请求信息发送至调度标识M指示的存储单元0_M。
类似的,处理单元1_2~处理单元1_N同样可以生成访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息,处理单元1_2~处理单元1_N可以将各自生成的包含调度标识的请求信息,发送至调度标识指示的存储单元0,具体可以参考上文,此处不再赘述。
在一种可能的实现方式中,如图2所示,所述指针管理模块A包括指针单元2、访问队列3、数据队列4;所述指针单元2用于按照所述处理单元1发送请求信息的请求顺序,生成每个请求信息的所述索引标识;所述访问队列3用于按照所述指针单元2的指示,记录所述处理单元1发送请求信息的请求顺序;所述数据队列4用于在所述索引标识指示的存储位置处,存储所述返回数据,以及按照所述指针单元2的指示,根据从所述访问队列3获取的所述请求顺序,从所述数据队列4取出返回数据至所述处理单元。
本公开实施例的存储器访问电路,通过数据队列4、指针单元2、访问队列3的配合使用,可以根据各处理单元1发出请求信息的请求顺序,对来自各存储单元0的多个返回数据进行管理,以便在利用更少的存储开销情况下,就可以使处理单元1后发送的请求信息的返回数据先缓存在数据队列4中,等待先发起请求信息的返回数据,更高效地在处理单元1内部实现返回数据的保序处理。
在示例中,存储器访问电路可用于访问M个(M≥1)不同的存储单元0,该存储器访问电路可包括:N个(N≥1)处理单元1,每个处理单元1包括一个指针管理模块A,每个指针管理模块A包括一个指针单元2、访问队列3、一个数据队列4,与M个存储单元0分别对应的M个调度队列7。应当理解,本公开的实施例对存储单元0的数量M和处理单元1的数量N不作限制,可根据实际的应用场景,设置M和N的取值。
如图2所示,M个存储单元0可以分别为存储单元0_1~存储单元0_M,N个处理单元1可分别为处理单元1_1~处理单元1_N。
其中,处理单元1_1内指针管理模块A_1设置有指针单元2_1、访问队列3_1、一个数据队列4_1;访问队列3_1用于按照指针单元2_1的指示,记录处理单元1_1访问存储单元0_1~存储单元0_M的请求顺序;数据队列4_1用于在索引标识指示的存储位置处,存储存储单元0_1~存储单元0_M返回至处理单元1_1的返回数据;指针单元2_1通过管理处理单元1_1的读写指针,按照处理单元1发送请求信息的请求顺序,生成每个请求信息对应的索引标识,以及指示访问队列3_1记录处理单元1_1访问存储单元0_1~存储单元0_M的请求顺序、指示数据队列4_1根据访问队列3_1记录的请求顺序取出返回数据至处理单元1_1。
处理单元1_2内指针管理模块A_2设置有指针单元2_2、访问队列3_2、一个数据队列4_2;访问队列3_2用于按照指针单元2_2的指示,记录处理单元1_2访问存储单元0_1~存储单元0_M的请求顺序;数据队列4_2用于在索引标识指示的存储位置处,存储存储单元0_1~存储单元0_M返回至处理单元1_2的返回数据;指针单元2_2通过管理处理单元1_2的读写指针,按照处理单元1发送请求信息的请求顺序,生成每个请求信息对应的索引标识,以及指示访问队列3_2记录处理单元1_2访问存储单元0_1~存储单元0_M的请求顺序、指示数据队列4_2根据访问队列3_2记录的请求顺序取出返回数据至处理单元1_2。
以此类推,处理单元1_N内指针管理模块A_N设置有指针单元2_N、访问队列3_N、一个数据队列4_N;访问队列3_N用于按照指针单元2_N的指示,记录处理单元1_N访问存储单元0_1~存储单元0_M的请求顺序;数据队列4_N用于在索引标识指示的存储位置处,存储存储单元0_1~存储单元0_M返回至处理单元1_N的返回数据;指针单元2_N通过管理处理单元1_N的读写指针,按照处理单元1发送请求信息的请求顺序,生成每个请求信息对应的索引标识,以及指示访问队列3_N记录处理单元1_N访问存储单元0_1~存储单元0_M的请求顺序、指示数据队列4_N根据访问队列3_N记录的请求顺序取出返回数据至处理单元1_N。
在一种可能的实现方式中,处理单元1_1生成的用于访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息,可以对应一个用于在处理单元1_1的数据队列4_1中指示存储位置的索引标识。例如,假设存在索引标识1~K,数据队列4_1为K行的队列,在此情况下,索引标识1可用于指示数据队列4_1的第一行位置,索引标识2可用于指示数据队列4_1的第二行位置,以此类推,索引标识K可用于指示数据队列4_1的第K行位置。通过为每个请求信息设置索引标识,可以在数据队列4_1中为每个请求信息的返回数据预留存储位置,使得处理单元1_1后发送的请求信息的返回数据,可以先缓存在数据队列4_1中该请求信息的索引标识指示的存储位置,等待先发起请求信息的返回数据,在各处理单元1_1的内部进行返回数据的保序处理。
处理单元1_2生成的用于访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息,可以对应一个用于在处理单元1_2的数据队列4_2中指示存储位置的索引标识。例如,假设存在索引标识1~K,数据队列4_2为K行的队列,在此情况下,索引标识1可用于指示数据队列4_2的第一行位置,索引标识2可用于指示数据队列4_2的第二行位置,以此类推,索引标识K可用于指示数据队列4_2的第K行位置。通过为每个请求信息设置索引标识,可以在数据队列4_2中为每个请求信息的返回数据预留存储位置,使得处理单元1_2后发送的请求信息的返回数据,可以先缓存在数据队列4_2中该请求信息的索引标识指示的存储位置,等待先发起请求信息的返回数据,在各处理单元1_2的内部进行返回数据的保序处理。
以此类推,处理单元1_N生成的用于访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息,可以对应一个用于在处理单元1_N的数据队列4_N中指示存储位置的索引标识。例如,假设存在索引标识1~K,数据队列4_N为K行的队列,在此情况下,索引标识1可用于指示数据队列4_N的第一行位置,索引标识2可用于指示数据队列4_N的第二行位置,以此类推,索引标识K可用于指示数据队列4_N的第K行位置。通过为每个请求信息设置索引标识,可以在数据队列4_N中为每个请求信息的返回数据预留存储位置,使得处理单元1_N后发送的请求信息的返回数据,可以先缓存在数据队列4_N中该请求信息的索引标识指示的存储位置,等待先发起请求信息的返回数据,在各处理单元1_N的内部进行返回数据的保序处理。
在一种可能的实现方式中,指针单元2用于按照处理单元1发送请求信息的请求顺序,生成每个请求信息的索引标识,以及指示访问队列3记录请求顺序。
在示例中,指针单元2_1可用于按照处理单元1_1发送请求信息的请求顺序,生成每个请求信息的索引标识,以及指示访问队列3_1记录请求顺序。例如,如果处理单元1_1依次发送了三个请求信息,指针单元2_1可以为第一个请求信息生成索引标识1,并在访问队列3_1中索引标识1指示的位置处进行标记;指针单元2_1可以为第二个请求信息生成索引标识2,并在访问队列3_1中索引标识2指示的位置处进行标记;指针单元2_1可以为第三个请求信息生成索引标识3,并在访问队列3_1中索引标识3指示的位置处进行标记。其中,在访问队列3中索引标识1~索引标识3指示的位置可以是连续三行。访问队列3_1通过在多个索引标识指示的多个位置处标记,可记录处理单元1_1发送请求信息的请求顺序。
类似的,指针单元2_2可用于按照处理单元1_2发送请求信息的请求顺序,生成每个请求信息的索引标识,以及指示访问队列3_2记录请求顺序。以此类推,指针单元2_N可用于按照处理单元1_N发送请求信息的请求顺序,生成每个请求信息的索引标识,以及指示访问队列3_N记录请求顺序。
在一种可能的实现方式中,如图2所示,所述存储器访问电路还包括:与每个处理单元1对应的第一调度选择器5,与每个存储单元0对应的仲裁器6、第二调度选择器8。
任一第一调度选择器5的输入端连接对应的处理单元1的输出端,任一第一调度选择器5的输出端分别连接每个仲裁器6的输入端,所述第一调度选择器5用于将从所述处理单元1接收到的请求信息和所述索引标识发送至调度标识指示的存储单元的仲裁器6。
每个仲裁器6的输出端连接对应的存储单元0的输入端、对应的调度队列7的输入端,所述仲裁器6用于对来自多个处理单元1的请求信息进行仲裁,按照仲裁顺序向存储单元0发送请求信息,以及按照所述仲裁顺序将所述多个处理单元1的处理单元标识和所述索引标识写入所述调度队列7,所述仲裁顺序用于指示多个处理单元1访问所述存储单元0的访问顺序;
任一第二调度选择器8的输入端连接对应的存储单元0的输出端、对应的所述调度队列7的输出端,任一第二调度选择器8的输出端分别连接每个处理单元1的输入端,所述第二调度选择器8用于根据从所述调度队列7的队首读取的处理单元标识和索引标识,将所述存储单元0的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元1。
通过设置第一调度选择器5,仲裁器6、第二调度选择器8,有利于更高效的实现多个处理单元1访问不同的存储单元0。
如图2所示,存储器访问电路可用于访问M个(M≥1)不同的存储单元0,该存储器访问电路可包括:N个(N≥1)处理单元1,每个处理单元1包括一个指针单元2、一个访问队列3、一个数据队列4,与N个处理单元1对应的N个第一调度选择器5,与M个存储单元0分别对应的M仲裁器6、M个调度队列7、M个第二调度选择器8。应当理解,本公开的实施例对存储单元0的数量M和处理单元1的数量N不作限制,可根据实际的应用场景,设置M和N的取值。
任一第一调度选择器5的输入端连接对应的一个处理单元1的输出端,任一第一调度选择器5的输出端分别连接每个仲裁器6的输入端,所述处理单元1用于生成访问存储单元0的请求信息,所述请求信息包括用于指示存储单元0的调度标识、以及用于在所述处理单元1的所述数据队列4中指示存储位置的索引标识,所述指针单元2用于按照所述处理单元1发送请求信息的访问顺序,生成每个请求信息的所述索引标识,以及指示所述访问队列3记录访问顺序,所述第一调度选择器5用于将从所述处理单元1接收到的请求信息发送至所述调度标识指示的存储单元0的仲裁器6。
例如,处理单元1_1的输出端连接第一调度选择器5_1的输入端,第一调度选择器5_1的输出端,分别连接仲裁器6_1的输入端~仲裁器6_M的输入端;处理单元1_2的输出端连接第一调度选择器5_2的输入端,第一调度选择器5_2的输出端分别连接仲裁器6_1的输入端~仲裁器6_M的输入端;以此类推,处理单元1_N的输出端连接第一调度选择器5_N的输入端,第一调度选择器5_N的输出端,分别连接仲裁器6_1的输入端~仲裁器6_M的输入端。
第一调度选择器5_1接收到由处理单元1_1发送的请求信息,可以根据请求信息中调度标识的指示,从仲裁器6_1~仲裁器6_M中确定一个目标仲裁器,将请求信息发送至目标仲裁器,该目标仲裁器也即调度标识指示的存储单元0所对应的仲裁器6。例如,如果第一调度选择器5_1接收到包括调度标识1的请求信息,可以将该请求信息发送至调度标识1指示的存储单元0_1所对应的仲裁器6_1;如果第一调度选择器5_1接收到包括调度标识2的请求信息,可以将该请求信息发送至调度标识2指示的存储单元0_2所对应的仲裁器6_2;以此类推,如果第一调度选择器5_1接收到包括调度标识M的请求信息,可以将该请求信息发送至调度标识M指示的存储单元0_M所对应的仲裁器6_M。
类似的,处理单元1_2~处理单元1_N同样可以生成访问存储单元0_1~存储单元0_M中任一存储单元0的请求信息,处理单元1_2~处理单元1_N可以将各自生成的包含调度标识的请求信息发送至对应的第一调度选择器5_2~第一调度选择器5_N,第一调度选择器5_2~第一调度选择器5_N响应于各自接收到的请求信息,可以根据请求信息中调度标识的指示,将该请求信息发送至调度标识指示的存储单元0所对应的仲裁器6,具体可以参考上文,此处不再赘述。
每个仲裁器6的输出端连接对应的存储单元0的输入端、对应的调度队列7的输入端,用于对来自多个处理单元1的请求信息进行仲裁,按照仲裁顺序向存储单元0发送请求信息,以及按照所述仲裁顺序将所述多个处理单元1的处理单元标识和所述索引标识写入所述调度队列7。
例如,仲裁器6_1的输出端分别连接调度队列7_1的输入端、存储单元0_1的输入端;仲裁器6_2的输出端分别连接调度队列7_2的输入端、存储单元0_2的输入端;以此类推,仲裁器6_M的输出端分别连接调度队列7_M的输入端、存储单元0_M的输入端。
这样,仲裁器6_1可以对访问存储单元0_1的、来自处理单元1_1~处理单元1_N的不同的请求信息进行轮询仲裁(round robin),从N个请求信息中选出当前轮的一个目标请求信息发送至存储单元0_1,并将当前轮的目标请求信息对应的处理单元标识和索引标识,写入调度队列7_1。由于在每轮仲裁中,调度队列7_1可记录一个处理单元标识和索引标识,经过多轮仲裁,调度队列7_1可记录仲裁器6_1的仲裁顺序,也即不同处理单元访问同一存储单元0_1的访问顺序。
其中,调度队列7_1写入的机制是:仲裁器6_1选出一个处理单元标识时再进行调度队列7_1的写入。例如,仲裁器6_1可以持续对来自处理单元1_1~处理单元1_N的请求信息进行轮询仲裁,第一轮选出来自处理单元1_N的请求信息,可以将用于指示自处理单元1_N的处理单元标识N,以及来自处理单元1_N的请求信息的索引标识1,写入调度队列7_1;第二轮选出来自处理单元1_2的请求信息,可以将用于指示自处理单元1_2的处理单元标识2,以及来自处理单元1_2的请求信息的索引标识2,写入调度队列7_1;第三轮选出来自处理单元1_1的请求信息,可以将用于指示自处理单元1_1的处理单元标识1,以及来自处理单元1_1的请求信息的索引标识3,写入调度队列7_1。在此情况下,调度队列7_1按照了仲裁器6_1的仲裁顺序(例如处理单元标识N指示的处理单元1_N先访问存储单元0_1,处理单元标识2指示的处理单元1_2再访问存储单元0_1,然后处理单元标识1指示的处理单元1_1访问存储单元0_1),在从队首至队尾的方向,依次存储了处理单元标识N及索引标识1、处理单元标识2及索引标识2、处理单元标识1及索引标识3。
类似的,仲裁器6_2~仲裁器6_M同样可以对来自处理单元1_1~处理单元1_N的请求信息进行轮询仲裁(round robin),按照各自的仲裁顺序分别向对应的存储单元0_2~存储单元0_M发送请求信息,以及按照各自的仲裁顺序分别将处理单元标识及对应的索引标识写入对应的调度队列7_2~调度队列7_M,此处不再赘述。
通过这种方式,在多个不同的处理单元1访问同一存储单元0时,可以通过相应的仲裁器6按照仲裁顺序确定访问存储单元0的顺序,并可以通过调度队列7记录该仲裁顺序,也即多个处理单元1访问所述存储单元0的访问顺序。并且,调度队列7还按照访问顺序记录了每个处理单元标识对应的索引标识,有利于在存储单元0向处理单元1反馈返回数据的情况下,通过索引标识在处理单元1的数据队列4中指示存储位置。
任一第二调度选择器8的输入端连接对应的存储单元0的输出端、对应的所述调度队列7的输出端,任一第二调度选择器8的输出端分别连接每个处理单元1的输入端,用于根据从所述调度队列7读取的处理单元标识和索引标识,将所述存储单元0的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元1。
例如,存储单元0_1的输出端和调度队列7_1的输出端,分别连接第二调度选择器8_1的输入端,第二调度选择器8_1的输出端按照一连多的方式,分别连接处理单元1_1的输入端~处理单元1_N的输入端;存储单元0_2的输出端和调度队列7_2的输出端,分别连接第二调度选择器8_2的输入端,第二调度选择器8_2的输出端按照一连多的方式,分别连接处理单元1_1的输入端~处理单元1_N的输入端;以此类推,存储单元0_M的输出端和调度队列7_M的输出端,分别连接第二调度选择器8_M的输入端,第二调度选择器8_M的输出端按照一连多的方式,分别连接处理单元1_1的输入端~处理单元1_N的输入端。
这样,当存储单元0_1响应请求信息向第二调度选择器8_1发送返回数据时,第二调度选择器8_1可以根据从调度队列7_1的队首读出的处理单元标识和索引标识,将接收到的返回数据和索引标识发送至该处理单元标识指示的处理单元1。
例如,假设调度队列7_1按照从队首至队尾的方向,依次存储了处理单元标识N及索引标识1、处理单元标识2及索引标识2、处理单元标识1及索引标识3。第二调度选择器8_1接收到存储单元0_1发送的返回数据,可以从调度队列7_1的队首读取处理单元标识N及索引标识1,将接收到的返回数据和索引标识1发送至该处理单元标识N指示的处理单元1_N。此时,在调度队列7_1中,处理单元标识N及索引标识1出队,处理单元标识2及索引标识2会变为调度队列7_1的队首。
第二调度选择器8_1再次接收到存储单元0_1发送的返回数据,可以继续从调度队列7_1的队首读取处理单元标识2及索引标识2,将接收到的返回数据及索引标识2发送至该处理单元标识2指示的处理单元1_2。此时,在调度队列7_1中,处理单元标识2及索引标识2出队,处理单元标识1及索引标识3会变为调度队列7_1的队首。
然后,第二调度选择器8_1再次接收到存储单元0_1发送的返回数据,可以继续从调度队列7_1的队首读取处理单元标识1及索引标识3,将接收到的返回数据及索引标识3发送至该处理单元标识1指示的处理单元1_1。
类似的,当存储单元0_2~存储单元0_M响应各自的请求信息分别向对应的第二调度选择器8_2~第二调度选择器8_M发送返回数据时,第二调度选择器8_2~第二调度选择器8_M可以根据各自从对应的调度队列7_2~调度队列7_M的队首读出的处理单元标识及索引标识,将接收到的返回数据及索引标识3发送至该处理单元标识指示的处理单元1,此处不再赘述。
所述处理单元1的所述数据队列4用于在所述索引标识指示的存储位置处,存储所述返回数据,所述处理单元的所述指针单元2用于指示所述访问队列3根据记录的所述访问顺序,从所述数据队列4取出返回数据至所述处理单元1,具体可以参考上文,此处不再赘述。
下面对指针单元2、访问队列3、数据队列4进行示例性说明。
在一种可能的实现方式中,所述访问队列3用于按照所述指针单元的指示,记录所述处理单元1发送请求信息的请求顺序,其中,所述访问队列3包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识和第二状态标识,所述第一状态标识用于标记所述处理单元1发出的所述请求信息,所述第二状态标识用于标记所述数据队列4已存储收到的所述请求信息的返回数据。其中,所述访问队列3的位宽是根据所述第一状态标识的位宽和所述第二状态标识的位宽确定的。
示例性的,图3示出根据本公开实施例的访问队列3的示意图,如图3所示,访问队列3可以是6行的循环队列,可按照行0->行1->行2->行3->行4->行5->行0->行1……这样环形的方式写入数据。应当理解,图3仅以访问队列3为6行为例,本公开对访问队列3的行数不作限制。
在示例中,访问队列3每行可存储2比特(bit)的标识信息,访问队列3可根据指针单元2的指示,按照处理单元1向各存储单元0发出请求信息的请求顺序,记录每个请求信息的标识信息。其中,一个比特(例如按照从低位到高位的方向,第一个比特位的数据)用于表示第一状态标识,用于标记处理单元1发出的请求信息,另一个比特(例如按照从低位到高位的方向,第二个比特位的数据)可用于表示第二状态标识,用于标记数据队列4已存储请求信息的返回数据。
例如,假设访问队列3中某一行的标识信息为11,第一状态标识(按照从低位到高位的方向,第一个比特位的数据)为1,表示该行对应的请求信息已被处理单元1发出;第二状态标识(按照从低位到高位的方向,第二个比特位的数据)为1,表示该行对应的请求信息的返回数据已返回处理单元1,并且处理单元1的数据队列4已存储该请求信息的返回数据。
例如,假设访问队列3中某一行的标识信息为00,第一状态标识(按照从低位到高位的方向,第一个比特位的数据)为0,表示该行没有对应的请求信息被处理单元1发出;第二状态标识(按照从低位到高位的方向,第二个比特位的数据)为0,表示该行没有对应的请求信息的返回数据已返回处理单元1。
例如,假设访问队列3中某一行的标识信息为01,第一状态标识(按照从低位到高位的方向,第一个比特位的数据)为1,表示该行对应的请求信息已被处理单元1发出;第二状态标识(按照从低位到高位的方向,第二个比特位的数据)为0,表示该行对应的请求信息的返回数据,还未存入处理单元1的数据队列4。
通过访问队列3记录每个请求信息的标识信息,有利于专用少量的硬件资源,准确记录处理单元1向各存储单元0发出请求信息的请求顺序。
在一种可能的实现方式中,所述指针单元2用于管理写指针,所述写指针用于指示所述访问队列3中最新标记的发出请求信息的当前行;所述指针单元2用于:在所述访问队列3的所述当前行的下一行没有标记第一状态标识的情况下,响应于所述处理单元1发出所述请求信息,对所述写指针执行自加操作;根据自加操作后的写指针,确定所述请求信息的所述索引标识。
示例性的,假设指针单元2的写指针为wr_ptr,每当处理单元1将要有新的请求信息发出时,可以对写指针wr_ptr进行+1操作,即wr_ptr=wr_ptr+1。然后,可根据+1操作后的写指针wr_ptr,确定该请求信息的索引标识ptr index,即ptr index=wr_ptr,处理单元1可将索引标识ptr index和请求信息发送给存储单元0的仲裁器6。
其中,写指针wr_ptr每次在进行+1操作时,会先判断访问队列3中当前行的下一行是否标记第一状态标识,也即访问队列3中wr_ptr+1位置的第一状态标识;若第一状态标识为1,则目前处理单元1已发送出的请求信息,达到了处理单元1的最大请求信息的数量,此时停止发送请求。若第一状态标识为0,则目前处理单元1已发送出的请求信息,没有达到处理单元1的最大请求信息的数量,可以对写指针wr_ptr进行+1操作。
其中,写指针wr_ptr计数范围可以由访问队列3的行数确定,例如,针对如图3所示的访问队列3,写指针wr_ptr计数范围从0~5。在此情况下,假设写指针wr_ptr的值为5,指向访问队列3的第5行,当处理单元1将要有新的请求信息发出时,会先判断访问队列3的当前第5行的下一行(也即第0行)第一状态标识,如果第0行的第一状态标识为1,则说明处理单元1目前已发送出6笔请求信息,达到处理单元1的最大请求信息的数量,此时停止发送请求信息,等待第0行的第一状态标识由1变为0;如果第0行的第一状态标识为0,则说明处理单元1目前已发送出的请求信息,没有达到处理单元1的最大请求信息的数量,可以对写指针wr_ptr进行+1操作,由于wr_ptr的计数范围是从0~5,+1操作后的写指针wr_ptr的值为0,指向访问队列的第0行,可以将+1操作后的写指针wr_ptr的值为0作为索引标识,由处理单元1将索引标识0和请求信息发送给存储单元0的仲裁器6。
通过这种方式,处理单元1每发出一个请求信息,指针单元2管理的写指针wr_ptr进行+1操作,并且将访问队列3中第一状态标识标记为1,指针单元2可通过写指针wr_ptr指示访问队列3记录处理单元1对各存储单元0的请求顺序,可以在占用少量硬件资源的情况下,高效准确的记录访问顺序。并且,还为每个请求信息生成了索引标识,用于指示每个请求信息的返回数据在数据队列4的存储位置,有利于将各请求信息的返回数据按序存储。
在一种可能的实现方式中,所述访问队列3用于实现以下功能中的至少之一:响应于所述处理单元1发出所述请求信息,在所述访问队列3中所述自加操作后的写指针指示的位置处标记所述第一状态标识;响应于所述数据队列4在所述索引标识指示的存储位置处存储所述返回数据,在所述访问队列3中所述索引标识指示的位置处标记所述第二状态标识。
如图3所示,在访问队列3中每行可存储2比特的表示信息,初始化后,可以将访问队列3的位置0~位置5的标识信息初始化为0。当每当有处理单元1发起请求信息时,指针单元2管理的写指针wr_ptr会进行+1操作,并在访问队列3中,将+1操作后写指针wr_ptr指示的位置处将第一状态标识标记为1;当有请求信息的返回数据从存储单元0返回处理单元1,在处理单元1的数据队列4将返回数据存入索引标识指示的位置处后,可以将访问队列3中索引标识指示位置处的第二状态标识标记1。
例如,假设写指针wr_ptr的值为5,指向访问队列3的第5行,当处理单元1将要有新的请求信息发出时,会先判断访问队列3的当前第5行的下一行(也即第0行)第一状态标识,在第0行的第一状态标识为0的情况下,则说明处理单元1目前已发送出的请求信息,没有达到处理单元1的最大请求信息的数量,可以对写指针wr_ptr进行+1操作,由于wr_ptr的计数范围是从0~5,+1操作后的写指针wr_ptr的值为0,指向访问队列的第0行,可以将+1操作后的写指针wr_ptr的值为0作为索引标识,由处理单元1将索引标识0和请求信息发送给存储单元0的仲裁器6。
响应于处理单元1将索引标识0和请求信息发送给存储单元0的仲裁器6,可以在访问队列3中将写指针wr_ptr指示的第0行的第一状态标识标记为1。
当处理单元1收到返回数据和索引标识0,可以在处理单元1的数据队列4中索引标识0指示的第0行存储该返回数据。响应于数据队列4在第0行位置处存储返回数据,将访问队列3中索引标识0指示的第0行的第二状态标识标记为1。
通过这种方式,访问队列3可记录每个请求信息的标识信息,有利于用少量的硬件资源,准确记录处理单元1向各存储单元0发出请求信息的请求顺序,以及根据记录的请求顺序,准确地从数据队列4取出返回数据至处理单元1。
在一种可能的实现方式中,所述指针单元2用于管理读指针,所述读指针用于指示所述访问队列3中最早标记发出请求信息的行;所述指针单元2用于:在所述访问队列3中所述读指针指示的位置处已经标记了所述第一状态标识和所述第二状态标识的情况下,从所述数据队列4的对应位置处取出返回数据至所述处理单元1;清除所述访问队列3中所述读指针指示的位置处的所述第一状态标识和所述第二状态标识;对所述读指针执行自加操作。
其中,所述访问队列3、所述数据队列4的深度相同,所述深度表征所述访问队列3、所述数据队列4的行数,所述深度是根据所述处理单元1的并发度确定的,所述处理单元1的并发度表征所述处理单元1在不等待请求信息的返回数据的情况下,最多向存储单元0持续发送请求信息的次数;所述数据队列4的位宽是根据所述返回数据的位宽确定的。
示例性地,指针单元2还包括读指针rd_ptr,该读指针rd_ptr用于指示访问队列3中最早标记发出请求信息的行。指针单元2管理的读指针rd_ptr,会不断检测访问队列3中读指针rd_ptr指示的行的第二状态标识,如果第二状态标识为1,则完成一次保序操作,从数据队列4的对应位置处取出返回数据至处理单元1。并将访问队列3中读指针rd_ptr指示的行的第一状态标识和第二状态标识标记为0,对读指针rd_ptr执行加1操作。
图4示出根据本公开实施例的数据队列4的示意图,如图4所示,数据队列4可以是6行的队列,每行可存储30比特(bit)的信息。应当理解,图4仅以数据队列4为例,本公开对数据队列4的行数、每行存储的比特数不作限制,可根据实际的应用场景进行设置。
其中,数据队列4的列数与访问队列3的行数相同,每行可存储一个存储单元0返回的返回数据,数据队列4可根据收到的每个返回数据的索引标识,在索引标识指示的位置处存储返回数据;数据队列4的行数与处理单元1的并发度(所述并发度表征在不等待请求信息的返回数据的情况下,最多向存储单元持续发送请求信息的次数)相关,处理单元1的并发度越多,数据队列4会具有越多的行数。
数据队列4每次收到返回数据后,可以根据返回数据的索引标识,将返回数据写在数据队列4中索引标识指示的位置处。以及,通过指示单元2管理的读指针rd_pt检测访问队列3中读指针rd_ptr指示的行的第二状态标识,在读指针rd_ptr指示的行的第二状态标识为1的情况下,从数据队列4中将读指针rd_ptr指示的行的返回数据取出。
每当有返回数据从数据队列4取出,则在访问队列3中将读指针rd_ptr对应位置的2比特状态标识标记为0。
应当理解,初始化后,读指针rd_ptr会从访问队列3的位置0的第二状态标识开始进行判断,若第二状态标识数据为1,则将数据队列4中返回数据取出至处理单元1进行后续的计算处理,此时完成保序操作,并且将访问队列3中位置0的2比特的状态标识变为0,并将读指针rd_ptr进行+1操作。其中,读指针rd_ptr计数范围可以由访问队列3的行数确定,例如,针对如图3所示的访问队列3读指针rd_ptr计数范围从0~5。
通过设置读指针rd_ptr,有利于从数据队列4中按照访问队列3记录的请求顺序,取出返回数据至处理单元1,利用很少的硬件资源就可以使得处理单元1后发送的请求信息的返回数据先缓存在数据队列4中,等待先发起请求信息的返回数据,在各处理单元1的内部进行返回数据的保序处理。
图5示出根据本公开实施例的另一种存储器访问电路的示意图,如图5所示的存储访问电路用于解决多个不同的处理单元1访问多个不同的调度模块中的存储单元0。例如,部署在调度模块1中的存储单元0_1、部署在调度模块2中的存储单元0_2,以此类推,部署在调度模块M中的存储单元0_M。多个处理单元1分别为处理单元1_1~处理单元1_N。
所述存储器访问电路还包括至少一个第一缓冲器91、至少一个第二缓冲器92,每个仲裁器6的输出端通过至少一个第一缓冲器91连接对应的存储单元0的输入端,每个存储单元0的输出端通过至少一个第二缓冲器92连接对应的第二调度选择器8的输入端。
在存储器访问电路中设置第一缓冲器91,增强了仲裁器6向存储单元0进行数据传输的驱动力,减少了在布线(floorplan)过程中因走线过长,导致信号驱动能力不足的概率。例如,在实际的应用中,在仲裁器6与存储单元0的连线比较长的场景下,如果不设置第一缓冲器91,信号会随着芯片(或电路板)上的走线而衰减,导致系统频率不能提高,性能下降的情况。通过在仲裁器6与存储单元0之间设置第一缓冲器91,可以为信号传输提供更强的驱动力,使仲裁器6发出的请求信息可以正确传输至存储单元0。
而且,在存储器访问电路中设置第一缓冲器91,还可以通过第一缓冲器91存储数据,将一次的访问请求(例如由仲裁器6仲裁后的请求信息)进行缓存,其中,第一缓冲器91与仲裁器6之间可采用握手(Handshake)的方式进行数据交互。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器92,每个存储单元0的输出端通过至少一个第二缓冲器92连接对应的第二调度选择器8的输入端。
在存储器访问电路中设置第二缓冲器92,增强了存储单元0向对应的第二调度选择器8进行数据传输的驱动力,减少了在布线(floorplan)过程中因走线过长,导致信号驱动能力不足的概率。例如,在实际的应用中,在存储单元0与第二调度选择器8的连线比较长的场景下,如果不设置第二缓冲器92,信号会随着芯片(或电路板)上的走线而衰减,导致系统频率不能提高,性能下降的情况。通过在存储单元0与第二调度选择器8之间设置第二缓冲器92,可以为信号传输提供更强的驱动力,使存储单元0发出的返回数据可以正确传输至对应的第二调度选择器8。
而且,在存储器访问电路中设置第二缓冲器92,还可以通过第二缓冲器92存储数据,将一次的返回数据(例如存储单元0响应请求信息所发送的返回数据)进行缓存,其中,第二缓冲器92与第二调度选择器8之间可采用握手(Handshake)的方式进行数据交互。
应当理解,图5中其他元件的连接方式及作用可参考上文,此处不再赘述。
综上所述,本公开实施例的存储器访问电路,实现了多个处理单元1同时访问不同的存储单元0(例如包括部署在不同调度模块中的存储单元),当多个处理单元1访问存储单元0时,可以通过调度队列7存储处理单元1的处理单元标识和索引标识,来记录多个处理单元1的访问顺序,当存储单元0回复返回数据时,可以根据调度队列7按照访问顺序记录的处理单元标识,将存储单元0的返回数据准确地传输至处理单元标识指示的处理单元1,并在该处理单元1的数据队列4中索引标识指示的存储位置处存储返回数据。
并且,在本公开实施例的存储器访问电路中,分别为每个处理单元1设置了指针单元2、访问队列3、数据队列4,每个处理单元1的指针单元2用于按照该处理单元1发送请求信息的请求顺序,指示访问队列3记录请求顺序;当存储单元0回向处理单元1回传返回数据时,利用数据队列4可存储多个存储单元0返回的返回数据,指针单元2用于指示访问队列3根据记录的请求顺序,从数据队列4取出返回数据至处理单元1。
通过在处理单元1中设置数据队列4,可以将不同存储单元0向处理单元1返回的多个返回数据(例如部署在不同调度模块的存储单元0返回的多个返回数据),一起缓存在该处理单元1的数据队列4中(例如,数据队列4设置一列就缓存多个存储单元0的返回数据),大大减少了存储开销。本公开实施例的存储器访问电路,进一步通过数据队列4、指针单元2、访问队列3的配合使用,根据各处理单元1发出请求信息的请求顺序,对来自各存储单元0的多个返回数据进行管理,使得处理单元1后发送的请求信息的返回数据先缓存在数据队列4中,等待先发起请求信息的返回数据,以便利用较少的存储开销,就可以在各处理单元1的内部进行返回数据的保序处理,提高存储器访问电路的准确性和数据处理效率。
图6示出根据本公开实施例的储存器访问方法的流程图,所述存储器访问方法应用于存储器访问电路,例如图1所示的多个处理单元1访问多个存储单元0部分。所述存储器访问电路用于访问多个不同的存储单元0,所述存储器访问电路包括:多个处理单元1,每个处理单元1包括指针管理模块A,与每个存储单元0对应的调度队列7;如图6所示,所述存储器访问方法包括:在步骤S11中,所述指针管理模块A记录所述处理单元1发送请求信息的请求顺序,并为每个请求信息生成索引标识,所述索引标识用于指示所述指针管理模块A中的存储位置;在步骤S12中,所述存储单元0对应的调度队列7按照多个处理单元1访问所述存储单元0的访问顺序,记录多个处理单元1的处理单元标识和所述索引标识。
在一种可能的实现方式中,所述指针管理模块A包括指针单元2、访问队列3;步骤S11可包括:所述指针单元2按照所述处理单元1发送请求信息的请求顺序,生成每个请求信息的所述索引标识;所述访问队列3按照所述指针单元2的指示,记录所述处理单元1发送请求信息的请求顺序。
在一种可能的实现方式中,如图2所示,所述存储器访问电路还包括:与每个处理单元1对应的第一调度选择器5,与每个存储单元0对应的仲裁器6;任一第一调度选择器5的输入端连接对应的处理单元1的输出端,任一第一调度选择器5的输出端分别连接每个仲裁器6的输入端,每个仲裁器6的输出端连接对应的存储单元0的输入端、对应的调度队列7的输入端;所述存储器访问方法还包括:所述处理单元1生成访问存储单元0的请求信息,所述请求信息包括用于指示存储单元0的调度标识,所述第一调度选择器5将从所述处理单元1接收到的请求信息和所述索引标识发送至调度标识指示的存储单元0的仲裁器6;所述仲裁器6对来自多个处理单元1的请求信息进行仲裁,按照仲裁顺序向存储单元0发送请求信息,以及按照所述仲裁顺序将所述多个处理单元1的处理单元标识和所述索引标识写入所述调度队列7,所述仲裁顺序用于指示多个处理单元1访问所述存储单元0的访问顺序。
在一种可能的实现方式中,所述访问队列3包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识,所述第一状态标识用于标记所述处理单元1发出的所述请求信息,所述指针单元2用于管理写指针,所述写指针用于指示所述访问队列3中最新标记的发出请求信息的当前行,所述指针单元2按照所述处理单元1发送请求信息的请求顺序,生成每个请求信息的所述索引标识,包括:在所述访问队列3的所述当前行的下一行没有标记第一状态标识的情况下,响应于所述处理单元1发出所述请求信息,对所述写指针执行自加操作;根据自加操作后的写指针,确定所述请求信息的所述索引标识。
在一种可能的实现方式中,所述访问队列3按照所述指针单元2的指示,记录所述处理单元1发送请求信息的请求顺序,包括:响应于所述处理单元1发出所述请求信息,在所述访问队列3中所述自加操作后的写指针指示的位置处标记所述第一状态标识。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第一缓冲器91,每个仲裁器6的输出端通过至少一个第一缓冲器91连接对应的存储单元0的输入端。
图7示出根据本公开实施例的储存器访问方法的流程图,所述存储器访问方法应用于存储器访问电路,例如图1所示的多个存储单元0响应处理单元1的访问请求回传返回数据部分。所述存储器访问电路用于访问多个不同的存储单元0,所述存储器访问电路包括:多个处理单元1,每个处理单元1包括指针管理模块A,与每个存储单元0对应的调度队列7;所述存储器访问方法包括:在步骤S13中,所述存储单元0根据所述调度队列7记录的处理单元标识和索引标识,将所述存储单元0的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元1;在步骤S14中,所述处理单元1的所述指针管理模块A在所述索引标识指示的存储位置处存储所述返回数据,并根据所述指针管理模块A记录的请求顺序取出返回数据至所述处理单元1。
在一种可能的实现方式中,如图2所示,所述指针管理模块A包括指针单元2、访问队列3、数据队列4;步骤S14可包括:所述数据队列4在所述索引标识指示的存储位置处,存储所述返回数据;所述数据队列4按照所述指针单元2的指示,根据从所述访问队列3获取的所述请求顺序,从所述数据队列4取出返回数据至所述处理单元1,其中,所述访问队列3记录了所述处理单元1发送请求信息的请求顺序。
在一种可能的实现方式中,所述存储器访问电路还包括与每个存储单元0对应的第二调度选择器8,任一第二调度选择器8的输入端连接对应的存储单元0的输出端、对应的所述调度队列7的输出端,任一第二调度选择器8的输出端分别连接每个处理单元1的输入端,所述存储器访问方法还包括:所述第二调度选择器8根据从所述调度队列7的队首读取的处理单元标识和索引标识,将所述存储单元0的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元1。
在一种可能的实现方式中,所述访问队列3包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识和第二状态标识,所述第一状态标识用于标记所述处理单元1发出的所述请求信息,所述第二状态标识用于标记所述数据队列4已存储所述请求信息的返回数据,所述存储器访问方法还包括:所述访问队列3响应于所述数据队列4在所述索引标识指示的存储位置处存储所述返回数据,在所述访问队列3中所述索引标识指示的位置处标记所述第二状态标识。
在一种可能的实现方式中,所述指针单元2用于管理读指针,所述读指针用于指示所述访问队列3中最早标记发出请求信息的行,所述数据队列4按照所述指针单元2的指示,根据从所述访问队列3获取的所述请求顺序,从所述数据队列4取出返回数据至所述处理单元1,包括:在所述访问队列3中所述读指针指示的位置处已经标记了所述第一状态标识和所述第二状态标识的情况下,从所述数据队列4的对应位置处取出返回数据至所述处理单元1;清除所述访问队列3中所述读指针指示的位置处的所述第一状态标识和所述第二状态标识;对所述读指针执行自加操作。
在一种可能的实现方式中,所述访问队列3、所述数据队列4的深度相同,所述深度表征所述访问队列3、所述数据队列4的行数,所述深度是根据所述处理单元1的并发度确定的,所述处理单元1的并发度表征所述处理单元1在不等待请求信息的返回数据的情况下,最多向存储单元0持续发送请求信息的次数;所述数据队列4的位宽是根据所述返回数据的位宽确定的,所述访问队列3的位宽是根据所述第一状态标识的位宽和所述第二状态标识的位宽确定的。
在一种可能的实现方式中,所述存储器访问电路还包括至少一个第二缓冲器92,每个存储单元0的输出端通过至少一个第二缓冲器92连接对应的第二调度选择器8的输入端。
此外,本公开还提供了封装了存储器访问电路的集成电路、电子设备、计算机程序产品,上述均可用来实现本公开提供的任一种存储器访问方法,相应技术方案和描述和参见方法部分的相应记载,不再赘述。
本公开实施例还提出一种集成电路,所述集成电路包括如上所述的存储器访问电路。
本公开实施例还提出一种电子设备,所述电子设备包括如上所述的存储器访问电路。电子设备可以被提供为终端、服务器或其它形态的设备。例如,电子设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字助理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等,本公开对此不作限制。
本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述方法。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (20)
1.一种存储器访问电路,其特征在于,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;
所述指针管理模块用于记录所述处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,所述索引标识用于指示所述指针管理模块中的存储位置;
所述存储单元对应的调度队列用于按照多个处理单元访问所述存储单元的访问顺序,记录多个处理单元的处理单元标识和所述索引标识;
所述存储单元用于根据所述调度队列记录的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元;
所述处理单元的所述指针管理模块用于在所述索引标识指示的存储位置处存储所述返回数据,并根据记录的所述请求顺序取出返回数据至所述处理单元;
其中,所述存储器访问电路还包括:与每个处理单元对应的第一调度选择器,与每个存储单元对应的仲裁器、第二调度选择器;
任一第一调度选择器的输入端连接对应的处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,每个仲裁器的输出端连接对应的存储单元的输入端、对应的调度队列的输入端;任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述调度队列的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端。
2.根据权利要求1所述的存储器访问电路,其特征在于,所述指针管理模块包括指针单元、访问队列、数据队列;
所述指针单元用于按照所述处理单元发送请求信息的请求顺序,生成每个请求信息的所述索引标识;
所述访问队列用于按照所述指针单元的指示,记录所述处理单元发送请求信息的请求顺序;
所述数据队列用于在所述索引标识指示的存储位置处,存储所述返回数据,以及按照所述指针单元的指示,根据从所述访问队列获取的所述请求顺序,从所述数据队列取出返回数据至所述处理单元。
3.根据权利要求1所述的存储器访问电路,其特征在于,
所述处理单元用于生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识,所述第一调度选择器用于将从所述处理单元接收到的请求信息和所述索引标识发送至调度标识指示的存储单元的仲裁器;
所述仲裁器用于对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识和所述索引标识写入所述调度队列,所述仲裁顺序用于指示多个处理单元访问所述存储单元的访问顺序;
所述第二调度选择器用于根据从所述调度队列的队首读取的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元。
4.根据权利要求2所述的存储器访问电路,其特征在于,所述访问队列包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识和第二状态标识,所述第一状态标识用于标记所述处理单元发出的所述请求信息,所述第二状态标识用于标记所述数据队列已存储所述请求信息的返回数据。
5.根据权利要求4所述的存储器访问电路,其特征在于,所述指针单元用于管理写指针,所述写指针用于指示所述访问队列中最新标记的发出请求信息的当前行;
所述指针单元用于:
在所述访问队列的所述当前行的下一行没有标记第一状态标识的情况下,响应于所述处理单元发出所述请求信息,对所述写指针执行自加操作;
根据自加操作后的写指针,确定所述请求信息的所述索引标识。
6.根据权利要求5所述的存储器访问电路,其特征在于,所述访问队列用于实现以下功能中的至少之一:
响应于所述处理单元发出所述请求信息,在所述访问队列中所述自加操作后的写指针指示的位置处标记所述第一状态标识;
响应于所述数据队列在所述索引标识指示的存储位置处存储所述返回数据,在所述访问队列中所述索引标识指示的位置处标记所述第二状态标识。
7.根据权利要求4所述的存储器访问电路,其特征在于,所述指针单元用于管理读指针,所述读指针用于指示所述访问队列中最早标记发出请求信息的行;
所述指针单元用于:
在所述访问队列中所述读指针指示的位置处已经标记了所述第一状态标识和所述第二状态标识的情况下,从所述数据队列的对应位置处取出返回数据至所述处理单元;
清除所述访问队列中所述读指针指示的位置处的所述第一状态标识和所述第二状态标识;
对所述读指针执行自加操作。
8.根据权利要求4所述的存储器访问电路,其特征在于,所述访问队列、所述数据队列的深度相同,所述深度表征所述访问队列、所述数据队列的行数,所述深度是根据所述处理单元的并发度确定的,所述处理单元的并发度表征所述处理单元在不等待请求信息的返回数据的情况下,最多向存储单元持续发送请求信息的次数;
所述数据队列的位宽是根据所述返回数据的位宽确定的,所述访问队列的位宽是根据所述第一状态标识的位宽和所述第二状态标识的位宽确定的。
9.根据权利要求1至8中任一项所述的存储器访问电路,其特征在于,所述存储器访问电路还包括至少一个第一缓冲器、至少一个第二缓冲器,每个仲裁器的输出端通过至少一个第一缓冲器连接对应的存储单元的输入端,每个存储单元的输出端通过至少一个第二缓冲器连接对应的第二调度选择器的输入端。
10.一种存储器访问方法,其特征在于,所述存储器访问方法应用于存储器访问电路,所述存储器访问电路用于访问多个不同的存储单元,所述存储器访问电路包括:多个处理单元,每个处理单元包括指针管理模块,与每个存储单元对应的调度队列;
所述存储器访问方法包括:
所述指针管理模块记录所述处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,所述索引标识用于指示所述指针管理模块中的存储位置;
所述存储单元对应的调度队列按照多个处理单元访问所述存储单元的访问顺序,记录多个处理单元的处理单元标识和所述索引标识;
所述存储单元根据所述调度队列记录的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元;
所述处理单元的所述指针管理模块在所述索引标识指示的存储位置处存储所述返回数据,并根据所述指针管理模块记录的请求顺序取出返回数据至所述处理单元;
其中,所述存储器访问电路还包括:与每个处理单元对应的第一调度选择器,与每个存储单元对应的仲裁器、第二调度选择器;
任一第一调度选择器的输入端连接对应的处理单元的输出端,任一第一调度选择器的输出端分别连接每个仲裁器的输入端,每个仲裁器的输出端连接对应的存储单元的输入端、对应的调度队列的输入端;任一第二调度选择器的输入端连接对应的存储单元的输出端、对应的所述调度队列的输出端,任一第二调度选择器的输出端分别连接每个处理单元的输入端。
11.根据权利要求10所述的存储器访问方法,其特征在于,所述指针管理模块包括指针单元、访问队列;
所述指针管理模块记录所述处理单元发送请求信息的请求顺序,并为每个请求信息生成索引标识,包括:
所述指针单元按照所述处理单元发送请求信息的请求顺序,生成每个请求信息的所述索引标识;
所述访问队列按照所述指针单元的指示,记录所述处理单元发送请求信息的请求顺序。
12.根据权利要求10所述的存储器访问方法,其特征在于,所述存储器访问方法还包括:
所述处理单元生成访问存储单元的请求信息,所述请求信息包括用于指示存储单元的调度标识,
所述第一调度选择器将从所述处理单元接收到的请求信息和所述索引标识发送至调度标识指示的存储单元的仲裁器;
所述仲裁器对来自多个处理单元的请求信息进行仲裁,按照仲裁顺序向存储单元发送请求信息,以及按照所述仲裁顺序将所述多个处理单元的处理单元标识和所述索引标识写入所述调度队列,所述仲裁顺序用于指示多个处理单元访问所述存储单元的访问顺序。
13.根据权利要求11所述的存储器访问方法,其特征在于,所述访问队列包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识,所述第一状态标识用于标记所述处理单元发出的所述请求信息,所述指针单元用于管理写指针,所述写指针用于指示所述访问队列中最新标记的发出请求信息的当前行,
所述指针单元按照所述处理单元发送请求信息的请求顺序,生成每个请求信息的所述索引标识,包括:
在所述访问队列的所述当前行的下一行没有标记第一状态标识的情况下,响应于所述处理单元发出所述请求信息,对所述写指针执行自加操作;
根据自加操作后的写指针,确定所述请求信息的所述索引标识。
14.根据权利要求13所述的存储器访问方法,其特征在于,所述访问队列按照所述指针单元的指示,记录所述处理单元发送请求信息的请求顺序,包括:
响应于所述处理单元发出所述请求信息,在所述访问队列中所述自加操作后的写指针指示的位置处标记所述第一状态标识。
15.根据权利要求10所述的存储器访问方法,其特征在于,所述指针管理模块包括指针单元、访问队列、数据队列;
所述处理单元的所述指针管理模块在所述索引标识指示的存储位置处存储所述返回数据,并根据所述指针管理模块记录的请求顺序取出返回数据至所述处理单元,包括:
所述数据队列在所述索引标识指示的存储位置处,存储所述返回数据;
所述数据队列按照所述指针单元的指示,根据从所述访问队列获取的所述请求顺序,从所述数据队列取出返回数据至所述处理单元,其中,所述访问队列记录了所述处理单元发送请求信息的请求顺序。
16.根据权利要求10所述的存储器访问方法,其特征在于,所述存储器访问方法还包括:
所述第二调度选择器根据从所述调度队列的队首读取的处理单元标识和索引标识,将所述存储单元的返回数据和所述索引标识传输至所述处理单元标识指示的处理单元。
17.根据权利要求15所述的存储器访问方法,其特征在于,所述访问队列包括多行,每行用于记录一个请求信息的标识信息,所述标识信息包括第一状态标识和第二状态标识,所述第一状态标识用于标记所述处理单元发出的所述请求信息,所述第二状态标识用于标记所述数据队列已存储所述请求信息的返回数据,
所述存储器访问方法还包括:
所述访问队列响应于所述数据队列在所述索引标识指示的存储位置处存储所述返回数据,在所述访问队列中所述索引标识指示的位置处标记所述第二状态标识。
18.根据权利要求17所述的存储器访问方法,其特征在于,所述指针单元用于管理读指针,所述读指针用于指示所述访问队列中最早标记发出请求信息的行,
所述数据队列按照所述指针单元的指示,根据从所述访问队列获取的所述请求顺序,从所述数据队列取出返回数据至所述处理单元,包括:
在所述访问队列中所述读指针指示的位置处已经标记了所述第一状态标识和所述第二状态标识的情况下,从所述数据队列的对应位置处取出返回数据至所述处理单元;
清除所述访问队列中所述读指针指示的位置处的所述第一状态标识和所述第二状态标识;
对所述读指针执行自加操作。
19.一种集成电路,其特征在于,所述集成电路包括如权利要求1至9中任一项所述的存储器访问电路。
20.一种电子设备,其特征在于,所述电子设备包括如权利要求1至9中任一项所述的存储器访问电路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310799414.4A CN116719479B (zh) | 2023-07-03 | 2023-07-03 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310799414.4A CN116719479B (zh) | 2023-07-03 | 2023-07-03 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116719479A CN116719479A (zh) | 2023-09-08 |
CN116719479B true CN116719479B (zh) | 2024-02-20 |
Family
ID=87869694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310799414.4A Active CN116719479B (zh) | 2023-07-03 | 2023-07-03 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719479B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051227B1 (en) * | 2010-05-10 | 2011-11-01 | Telefonaktiebolaget L M Ericsson (Publ) | Programmable queue structures for multiprocessors |
CN103218301A (zh) * | 2011-11-09 | 2013-07-24 | 想象力科技有限公司 | 用于数字信号处理的存储器访问 |
CN113051195A (zh) * | 2021-03-02 | 2021-06-29 | 长沙景嘉微电子股份有限公司 | 存储器、gpu及电子设备 |
CN113312278A (zh) * | 2021-07-29 | 2021-08-27 | 常州楠菲微电子有限公司 | 一种静态可分配共享多队列缓存的装置及方法 |
CN113641603A (zh) * | 2021-10-15 | 2021-11-12 | 南京芯驰半导体科技有限公司 | 一种基于axi协议的ddr仲裁与调度方法及系统 |
CN114090479A (zh) * | 2021-11-30 | 2022-02-25 | 上海阵量智能科技有限公司 | 访问报告系统、方法、装置、芯片及电子设备 |
CN114780018A (zh) * | 2021-03-30 | 2022-07-22 | 阿里巴巴新加坡控股有限公司 | 用于促进多流顺序读取性能改进并减少阅读放大的方法和系统 |
CN115033184A (zh) * | 2022-06-30 | 2022-09-09 | 上海阵量智能科技有限公司 | 访存处理装置、方法、处理器、芯片、板卡及电子设备 |
CN115033185A (zh) * | 2022-06-30 | 2022-09-09 | 上海阵量智能科技有限公司 | 访存处理方法和装置、存储装置、芯片、板卡、电子设备 |
CN115686341A (zh) * | 2021-07-22 | 2023-02-03 | 华为技术有限公司 | 一种处理访问请求的方法、装置、存储设备及存储介质 |
CN115938428A (zh) * | 2022-12-23 | 2023-04-07 | 海光信息技术股份有限公司 | 用于动态随机存储器的控制器、控制方法、电子设备 |
CN116204456A (zh) * | 2021-11-30 | 2023-06-02 | 华为技术有限公司 | 数据访问方法及计算设备 |
CN116257191A (zh) * | 2023-05-16 | 2023-06-13 | 北京象帝先计算技术有限公司 | 存储器的控制器、组件、电子设备及命令调度方法 |
CN116521096A (zh) * | 2023-07-03 | 2023-08-01 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
CN116737083A (zh) * | 2023-07-03 | 2023-09-12 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170286114A1 (en) * | 2016-04-02 | 2017-10-05 | Intel Corporation | Processors, methods, and systems to allocate load and store buffers based on instruction type |
US10908821B2 (en) * | 2019-02-28 | 2021-02-02 | Micron Technology, Inc. | Use of outstanding command queues for separate read-only cache and write-read cache in a memory sub-system |
CN110083388B (zh) * | 2019-04-19 | 2021-11-12 | 上海兆芯集成电路有限公司 | 用于调度的处理系统及其访存方法 |
US11526632B2 (en) * | 2019-09-04 | 2022-12-13 | Rambus Inc. | Securing address information in a memory controller |
-
2023
- 2023-07-03 CN CN202310799414.4A patent/CN116719479B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8051227B1 (en) * | 2010-05-10 | 2011-11-01 | Telefonaktiebolaget L M Ericsson (Publ) | Programmable queue structures for multiprocessors |
CN103218301A (zh) * | 2011-11-09 | 2013-07-24 | 想象力科技有限公司 | 用于数字信号处理的存储器访问 |
CN113051195A (zh) * | 2021-03-02 | 2021-06-29 | 长沙景嘉微电子股份有限公司 | 存储器、gpu及电子设备 |
CN114780018A (zh) * | 2021-03-30 | 2022-07-22 | 阿里巴巴新加坡控股有限公司 | 用于促进多流顺序读取性能改进并减少阅读放大的方法和系统 |
CN115686341A (zh) * | 2021-07-22 | 2023-02-03 | 华为技术有限公司 | 一种处理访问请求的方法、装置、存储设备及存储介质 |
CN113312278A (zh) * | 2021-07-29 | 2021-08-27 | 常州楠菲微电子有限公司 | 一种静态可分配共享多队列缓存的装置及方法 |
CN113641603A (zh) * | 2021-10-15 | 2021-11-12 | 南京芯驰半导体科技有限公司 | 一种基于axi协议的ddr仲裁与调度方法及系统 |
CN114090479A (zh) * | 2021-11-30 | 2022-02-25 | 上海阵量智能科技有限公司 | 访问报告系统、方法、装置、芯片及电子设备 |
CN116204456A (zh) * | 2021-11-30 | 2023-06-02 | 华为技术有限公司 | 数据访问方法及计算设备 |
CN115033184A (zh) * | 2022-06-30 | 2022-09-09 | 上海阵量智能科技有限公司 | 访存处理装置、方法、处理器、芯片、板卡及电子设备 |
CN115033185A (zh) * | 2022-06-30 | 2022-09-09 | 上海阵量智能科技有限公司 | 访存处理方法和装置、存储装置、芯片、板卡、电子设备 |
CN115938428A (zh) * | 2022-12-23 | 2023-04-07 | 海光信息技术股份有限公司 | 用于动态随机存储器的控制器、控制方法、电子设备 |
CN116257191A (zh) * | 2023-05-16 | 2023-06-13 | 北京象帝先计算技术有限公司 | 存储器的控制器、组件、电子设备及命令调度方法 |
CN116521096A (zh) * | 2023-07-03 | 2023-08-01 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
CN116737083A (zh) * | 2023-07-03 | 2023-09-12 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116719479A (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116578245B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN108156823B (zh) | 一种闪存介质的访问方法及控制器 | |
CN107888512B (zh) | 动态共享缓冲存储器及交换机 | |
KR20160081797A (ko) | 버퍼를 갖는 컴퓨팅 시스템 및 그것의 동작 방법 | |
CN113900974B (zh) | 一种存储装置、数据存储方法及相关设备 | |
CN116661703B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN115964319A (zh) | 远程直接内存访问的数据处理方法及相关产品 | |
CN116521096B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN111538694B (zh) | 一种用于网络接口支持多链接和重传的数据缓存方法 | |
CN116737083B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
JPH0358150A (ja) | メモリ制御装置 | |
CN116719479B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN116841624A (zh) | 访存指令的调度方法、装置、电子设备和存储介质 | |
CN116820579A (zh) | 访存指令的调度方法、装置、电子设备和存储介质 | |
EP2318924B1 (en) | Synchronization of multiple processor cores | |
CN116521097B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
JP6249117B1 (ja) | 情報処理装置 | |
CN116594570B (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
CN114063923A (zh) | 数据读取方法、装置、处理器及电子设备 | |
CN113157603A (zh) | 数据读取装置、方法、芯片、计算机设备及存储介质 | |
CN113220608A (zh) | 一种NVMe命令处理器及其处理方法 | |
CN116049032B (zh) | 基于光线追踪的数据调度方法、装置及设备、存储介质 | |
CN116991593B (zh) | 操作指令处理方法、装置、设备及存储介质 | |
CN116974963B (zh) | 一种访问存储器的装置及其方法、芯片、存储介质 | |
CN116166605B (zh) | 数据混合传输方法、装置、dma控制器、介质及系统 |
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 |