CN114896182A - 存储装置、方法、电子设备和存储介质 - Google Patents

存储装置、方法、电子设备和存储介质 Download PDF

Info

Publication number
CN114896182A
CN114896182A CN202210547370.1A CN202210547370A CN114896182A CN 114896182 A CN114896182 A CN 114896182A CN 202210547370 A CN202210547370 A CN 202210547370A CN 114896182 A CN114896182 A CN 114896182A
Authority
CN
China
Prior art keywords
access
splitting
access command
storage
logic 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
CN202210547370.1A
Other languages
English (en)
Other versions
CN114896182B (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.)
Horizon Shanghai Artificial Intelligence Technology Co Ltd
Original Assignee
Horizon Shanghai Artificial Intelligence 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 Horizon Shanghai Artificial Intelligence Technology Co Ltd filed Critical Horizon Shanghai Artificial Intelligence Technology Co Ltd
Priority to CN202210547370.1A priority Critical patent/CN114896182B/zh
Publication of CN114896182A publication Critical patent/CN114896182A/zh
Priority to JP2023051902A priority patent/JP2023168234A/ja
Priority to EP23165281.9A priority patent/EP4276640A1/en
Priority to US18/315,040 priority patent/US20230367483A1/en
Application granted granted Critical
Publication of CN114896182B publication Critical patent/CN114896182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1657Access to multiple memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1621Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by maintaining request order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Static Random-Access Memory (AREA)

Abstract

本公开实施例公开了一种存储装置、方法、电子设备和存储介质,其中,装置包括:第一拆分逻辑模块,用于根据第一访问命令的访问地址,将第一访问命令拆分为至少两个第二访问命令;至少两个存储阵列模块,至少两个存储阵列模块中的每一存储阵列模块用于根据第一拆分逻辑模块的至少两个第二访问命令中的一个第二访问命令执行对应的访问操作。本公开实施例通过第一拆分逻辑模块将较长猝发的第一访问命令拆分为更小粒度的第二访问命令,并行访问至少两个存储阵列模块,从而使得至少两个存储阵列模块能够并行响应,有效降低较长猝发的第一访问命令的响应时间,从而在多主机并发访问时,可有效降低各主机访问的访问时间,从而提高访问效率。

Description

存储装置、方法、电子设备和存储介质
技术领域
本公开涉及存储技术,尤其是一种存储装置、方法、电子设备和存储介质。
背景技术
随着自动驾驶技术的飞速发展,面向自动驾驶的深度学习芯片通常具有多核异构、大算力、大带宽、高并发的存储需求,相关技术中,加速器或处理器核等主机(master)通过总线访问存储器,当同时有多个主机访问存储器时,需要通过总线以读写的访问猝发(burst)的长度进行仲裁,以此确定各个主机对存储颗粒的访问顺序,存储器按顺序响应各主机的访问命令,导致主机对存储器的读写访问的时间延长,读写访问的效率较低。
发明内容
为了解决上述读写访问效率低等技术问题,提出了本公开。本公开的实施例提供了一种存储装置、方法、电子设备和存储介质。
根据本公开实施例的一个方面,提供了一种存储装置,包括:第一拆分逻辑模块,用于根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令;至少两个存储阵列模块,所述至少两个存储阵列模块中的每一所述存储阵列模块用于根据所述第一拆分逻辑模块的所述至少两个第二访问命令中的一个第二访问命令执行对应的访问操作。
根据本公开实施例的另一个方面,提供了一种存储方法,包括:根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令;根据所述至少两个第二访问命令执行对应的访问操作。
根据本公开实施例的再一方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本公开上述任一实施例所述的存储方法。
根据本公开实施例的叉一方面,提供一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本公开上述任一实施例所述的存储方法;或者,所述电子设备包括:上述任一实施例所述的存储装置。
基于本公开上述实施例提供的存储装置、方法、电子设备和存储介质,通过第一拆分逻辑模块将较长猝发的第一访问命令拆分为更小粒度的第二访问命令,并行访问至少两个存储阵列模块,从而使得至少两个存储阵列模块能够并行响应,有效降低较长猝发的第一访问命令的响应时间,从而在多主机并发访问时,可有效降低各主机访问的访问时间,从而提高访问效率。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
通过结合附图对本公开实施例进行更详细的描述,本公开的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本公开实施例的进一步理解,并且构成说明书的一部分,与本公开实施例一起用于解释本公开,并不构成对本公开的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本公开提供的存储装置的一个示例性的应用场景;
图2是本公开一示例性实施例提供的存储装置的结构示意图;
图3是本公开一示例性实施例提供的第一拆分逻辑模块201的结构示意图;
图4是本公开另一示例性实施例提供的第一拆分逻辑模块201的结构示意图;
图5是本公开再一示例性实施例提供的第一拆分逻辑模块201的结构示意图;
图6是本公开一示例性实施例提供的第一拆分逻辑模块201与存储阵列模块202的连接示意图;
图7是本公开另一示例性实施例提供的第一拆分逻辑模块201与存储阵列模块202的连接示意图;
图8是本公开一示例性实施例提供的存储阵列模块202的结构示意图;
图9是本公开另一示例性实施例提供的存储阵列模块202的结构示意图;
图10是本公开再一示例性实施例提供的存储阵列模块202的结构示意图;
图11是本公开叉一示例性实施例提供的存储阵列模块202的结构示意图;
图12是本公开叉一示例性实施例提供的第一拆分逻辑模块201的结构示意图;
图13是本公开一示例性实施例提供的一种地址编码排布的示意图;
图14是本公开再一示例性实施例提供的第一拆分逻辑模块201的结构示意图;
图15是本公开叉一示例性实施例提供的第一拆分逻辑模块201的结构示意图;
图16是本公开一示例性实施例提供的阵列簇划分示意图;
图17是本公开再一示例性实施例提供的存储阵列模块202的结构示意图;
图18是本公开另一示例性实施例提供的存储装置的结构示意图;
图19是本公开再一示例性实施例提供的存储装置的结构示意图;
图20是本公开一示例性实施例提供的存储方法的流程示意图;
图21是本公开另一示例性实施例提供的存储方法的流程示意图;
图22是本公开一示例性实施例提供的步骤501的流程示意图;
图23是本公开另一示例性实施例提供的步骤501的流程示意图;
图24是本公开再一示例性实施例提供的存储方法的流程示意图;
图25是本公开电子设备一个应用实施例的结构示意图;
图26是本公开电子设备另一个应用实施例的结构示意图。
具体实施方式
下面,将参考附图详细地描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
本公开概述
在实现本公开的过程中,发明人发现,面向自动驾驶的深度学习芯片通常具有多核异构、大算力、大带宽、高并发的存储需求,加速器或处理器核等主机通过总线访问存储器,当同时有多个主机访问存储器时,需要通过总线以读写的访问猝发的长度进行仲裁,以此确定各个主机对存储颗粒的访问顺序,猝发是指在一个总线周期内访问连续的多个存储地址,比如一个猝发的访问命令包括要访问的起始地址和访问长度,表示要访问以该起始地址开始,与访问长度相等数量的连续的存储地址,存储器按顺序响应各主机的访问命令,导致主机对存储器的读写访问的时间延长,读写访问的效率较低。
示例性概述
图1是本公开提供的存储装置的一个示例性的应用场景。
在该场景中,N(N为正整数)个主机可以访问本公开存储装置中的存储阵列模块,主机可以是加速器、处理器核等片上的任意需要访问存储器的部分。基于本公开的存储装置,通过第一拆分逻辑模块可以根据主机的第一访问命令的访问地址,将第一访问命令拆分为至少两个第二访问命令,通过至少两个存储阵列模块并行响应拆分后的至少两个第二访问命令,有效降低较长猝发的第一访问命令的响应时间,从而在多主机并发访问时,可有效降低各主机访问的访问时间,提高访问效率。存储阵列模块可以包括至少一个存储颗粒,每个存储颗粒可以包括至少一个存储单元,存储单元是主机访问存储器的基本单位。存储颗粒具体包括的存储单元数量可以根据实际需求设置。存储颗粒的位宽也可以根据实际需求设置,比如可以设置为与总线数据宽度相同,也可以根据实际需求设置为大于或小于总线数据宽度,具体不做限定。第一拆分逻辑模块的具体拆分规则可以根据实际需求结合对存储地址的编码排布进行设置。存储地址的编码排布方式可以是但不限于是交织排布。
示例性装置
图2是本公开一示例性实施例提供的存储装置的结构示意图。该实施例的装置可用于实现本公开相应的方法实施例,如图2所示的装置包括:第一拆分逻辑模块201和至少两个存储阵列模块202。
第一拆分逻辑模块201,用于根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令;所述至少两个存储阵列模块中的每一所述存储阵列模块202用于根据所述第一拆分逻辑模块201的所述至少两个第二访问命令中的一个第二访问命令执行对应的访问操作。
其中,第一访问命令可以为任一主机生成的访问命令。第一访问命令可以包括访问地址,比如包括访问起始地址和访问长度。对第一访问命令的拆分可以是根据第一访问命令的访问地址进行拆分,比如根据第一访问命令的访问起始地址和访问长度,将第一访问命令拆分为至少两个较小长度的第二访问命令,第二访问命令同样包括访问起始地址和访问长度,第二访问命令的访问长度小于第一访问命令。比如第一访问命令访问起始地址为2000,访问长度为8,拆分为两个第二访问命令,一个第二访问命令起始地址为2000访问长度为4,另一个第二访问命令起始地址为2004,访问长度为4。拆分获得的第二访问命令的数量可以根据实际需求设置,第二访问命令的数量与存储阵列模块202的数量相同,从而可以实现各第二访问命令的并行响应。存储阵列模块202可以包括至少一个存储颗粒,每个存储颗粒可以包括至少一个存储单元,具体存储阵列模块202的划分可以根据实际需求设置。第一拆分逻辑模块201可以采用任意具有处理功能的器件实现,本公开不做限定。
在一个可选示例中,可以有一个或多个主机同时进行访问,也即同时有一个或多个第一访问命令。
在一个可选示例中,对于多个第一访问命令,可以是通过总线以读写的访问猝发的长度进行仲裁来确定各主机的第一访问命令的访问顺序,将各第一访问命令按顺序进行拆分,传输到各存储阵列模块202,通过各存储阵列模块202的并行响应,降低各主机的的访问时间,从而提高访问效率。
在一个可选示例中,对于多个第一访问命令,还可以是并行拆分,即并行将每个第一访问命令拆分为至少两个第二访问命令,按照第二访问命令的访问地址及存储阵列模块202的地址排布规则,传输到对应的存储阵列模块202,以使存储阵列模块202响应访问其的第二访问命令。通过并行拆分,可以进一步提高访问效率。存储阵列模块202的地址排布规则可以根据实际需求设置,具体不做限定。比如当有至少两个不同主机的第二访问命令需要同时访问同一存储阵列模块202时,可以在存储阵列模块202进行仲裁,确定各第二访问命令的访问顺序,存储阵列模块202按顺序响应各第二访问命令。由于仲裁是在较小粒度的第二访问命令阶段,各第二访问命令的响应时间均较小,且有至少两组第二访问命令是被并行响应的,因此相对于现有的多主机同时访问,本公开的存储装置能够有效降低各主机的访问时间,提高访问效率。
在一个可选示例中,第一拆分逻辑模块201对第一访问命令的拆分可以包括一级或多级的拆分,具体拆分级数及每级的拆分粒度可以根据实际需求设置。比如一级拆分,可以将第一访问命令拆分为至少两个第二访问命令,二级拆分最终可以将第一访问命令拆分为至少四个第二访问命令,三级拆分最终可以拆分为至少八个第二访问命令,以此类推。每级的拆分是对其上一级拆分后的访问命令再次进行拆分。
在一个可选示例中,每个第二访问命令根据访问地址访问对应存储阵列模块202中的存储颗粒。由于存储阵列模块202可以包括至少一个存储颗粒,当有多个第二访问命令同时访问同一存储阵列模块202时,可以在存储阵列模块202内的各存储颗粒前再进行仲裁,这样,当多个第二访问命令是访问该存储阵列模块202中的不同存储颗粒时,无需进行排队,即可及时响应,进一步提高访问效率。即使在到达存储阵列模块202内后,仍发生了多个第二访问命令同时访问同一存储颗粒的情况,由于存储颗粒阶段的访问命令猝发粒度较小,使得等待时间更短,因此可以有效提高访问效率。
本实施例提供的存储装置,通过第一拆分逻辑模块将较长猝发的第一访问命令拆分为更小粒度的第二访问命令,并行访问至少两个存储阵列模块,从而使得至少两个存储阵列模块能够并行响应,有效降低较长猝发的第一访问命令的响应时间,从而在多主机并发访问时,可有效降低各主机访问的访问时间,从而提高访问效率。
在一个可选示例中,图3是本公开一示例性实施例提供的第一拆分逻辑模块201的结构示意图。在本示例中,第一拆分逻辑模块201包括:至少一级拆分逻辑单元,所述至少一级拆分逻辑单元的每一级拆分逻辑单元包括至少一个第一拆分逻辑单元,其中,第一级拆分逻辑单元的每一所述第一拆分逻辑单元用于对对应的所述第一访问命令进行第一级拆分,获得至少两个第一子访问命令,中间级的每一级拆分逻辑单元的每一所述第一拆分逻辑单元用于对其对应的前一级子访问命令进行拆分,获得至少两个当前级子访问命令,最后一级拆分逻辑单元的每一所述第一拆分逻辑单元用于,将其对应的前一级子访问命令进行拆分,获得所述至少两个第二访问命令。
其中,拆分逻辑单元的级数可以根据实际需求设置。对于包括一级拆分逻辑单元的情况,不存在中间级和最后一级,第一级拆分逻辑单元拆分获得的第一子访问命令作为第二访问命令。对于包括两级拆分逻辑单元的情况,不存在中间级拆分逻辑单元,最后一级拆分逻辑单元作为第二级拆分逻辑单元,第一级拆分逻辑的单元拆分获得的各第一子访问命令传输到第二级拆分逻辑单元,第二级拆分逻辑单元对各第一子访问命令进行拆分,每个第一子访问命令被拆分为至少两个第二子访问命令,所有第一子访问命令拆分获得的第二子访问命令作为上述的至少两个第二访问命令。每一级拆分逻辑单元包括的第一拆分逻辑单元的数量及不同级的第一拆分逻辑单元之间的连接关系可以根据实际需求设置。对于包括至少三级拆分逻辑单元的情况,中间级拆分逻辑单元包括至少一级拆分逻辑单元,具体可以根据实际需求设置,在此不再赘述。
示例性的,图4是本公开另一示例性实施例提供的第一拆分逻辑模块201的结构示意图。其中,每一级拆分逻辑单元中的每一第一拆分逻辑单元2011与其上一级的一个第一拆分逻辑单元2011连接。第一级拆分逻辑单元的每一第一拆分逻辑单元可与至少一个主机连接。最后一级拆分逻辑单元的每一第一拆分逻辑单元2011与至少两个存储阵列模块202连接。最后一级拆分逻辑单元的不同第一拆分逻辑单元2011可以与相同的存储阵列模块202连接,也可以与不同的存储阵列模块202连接,具体可以根据存储阵列模块的地址编码排布规则及实际需求设置,连接原则是保证每个主机能够访问到所有的存储阵列模块。图中中间级拆分逻辑单元中各级之间的连接关系及中间级与最后一级的部分连接关系未示出。
示例性的,图5是本公开再一示例性实施例提供的第一拆分逻辑模块201的结构示意图。在本示例中,第一级拆分逻辑单元的每一第一拆分逻辑单元2011可与至少一个主机连接,第一级拆分逻辑单元的每一第一拆分逻辑单元2011与其下一级的各第一拆分逻辑单元2011均连接,中间级拆分逻辑单元的每一第一拆分逻辑单元2011与其下一级的各第一拆分逻辑单元2011均连接。最后一级拆分逻辑单元的每一第一拆分逻辑单元2011与至少两个存储阵列模块202连接。最后一级拆分逻辑单元的不同第一拆分逻辑单元2011可以与相同的存储阵列模块202连接,也可以与不同的存储阵列模块202连接,具体可以根据存储阵列模块的地址编码排布规则及实际需求设置,以使每个主机能够访问到所有的存储阵列模块。
示例性的,图6是本公开一示例性实施例提供的第一拆分逻辑模块201与存储阵列模块202的连接示意图。在本示例中,最后一级拆分逻辑单元中的每一第一拆分逻辑单元2011与各存储阵列模块202均连接。图中仅示出了部分第一拆分逻辑单元2011与存储阵列模块的连接关系,其余未示出,其连接关系与已示出的类似。
示例性的,图7是本公开另一示例性实施例提供的第一拆分逻辑模块201与存储阵列模块202的连接示意图。在本示例中,最后一级拆分逻辑单元的各第一拆分逻辑单元2011按照预设规则被分为至少两组,相应的存储阵列模块202形成阵列簇,每组对应一个阵列簇,阵列簇的划分可以根据实际需求设置,目的是便于各级拆分逻辑单元中不同第一拆分逻辑单元的并行拆分,以及支持更多存储阵列模块的并行响应,在保证各主机能够共享所有存储阵列模块的情况下,使得本公开的存储装置能够适用于超大规模、高流量的多端口并行访问。
本公开通过存储阵列模块前的多级拆分,可以将更大粒度的第一访问命令拆分为很小粒度的第二访问命令,以使多个存储阵列模块并行响应,在提高访问效率的同时,可以实现大规模高流量的多端口并行访问。
在一个可选示例中,图8是本公开一示例性实施例提供的存储阵列模块202的结构示意图。在本示例中,存储阵列模块202包括:至少一个存储颗粒2021。
所述至少一个存储颗粒中的每一所述存储颗粒2021包括至少一个存储单元;每一所述存储颗粒,用于响应访问该存储颗粒的第二访问命令,执行对应的操作。
其中,存储颗粒2021包括的存储单元数量可以根据实际需求设置,本公开不做限定。存储单元是主机访问存储器的基本单位,具体原理不再赘述。存储颗粒是根据实际需求设置的较小粒度的猝发访问命令的响应颗粒。
在实际应用中,存储颗粒可以根据芯片设计的布局规划(floorplan)及芯片的功耗情况确定。存储颗粒运行在低于总线逻辑的频率上也不会影响大块数据的访存性能。
图9是本公开另一示例性实施例提供的存储阵列模块202的结构示意图。
在一个可选示例中,本公开的存储阵列模块202,还包括:
所述至少一个存储颗粒中每一存储颗粒2021对应的颗粒仲裁器2022;
每一所述颗粒仲裁器2022,用于根据预设仲裁规则,确定出访问该颗粒仲裁器2022对应的存储颗粒2021的目标第二访问命令,以使对应的该存储颗粒2021响应所述目标第二访问命令。
其中,预设仲裁规则可以根据实际需求设置,比如预设仲裁规则可以是公平轮转、先到先得,等等。具体不做限定。当有至少两个第二访问命令到达同一颗粒仲裁器2022时,该颗粒仲裁器2022根据预设仲裁规则确定该至少两个第二访问命令的访问顺序,按照访问顺序可以确定出当前访问该颗粒仲裁器2022对应的存储颗粒2021的第二访问命令作为目标第二访问命令。若当前只有一个第二访问命令到达颗粒仲裁器2022,可以直接作为目标第二访问命令。
图10是本公开再一示例性实施例提供的存储阵列模块202的结构示意图。
在一个可选示例中,所述存储阵列模块202,还包括:与所述第一拆分逻辑模块连接的分发逻辑单元2023,所述分发逻辑单元2023还与各所述颗粒仲裁器2022连接,用于根据所述第二访问命令的访问地址,将所述第二访问命令分发到对应存储颗粒2021的颗粒仲裁器2022。
其中,分发逻辑单元2023可以设置至少一个,具体可以根据实际需求设置。对于多个分发逻辑单元2023,其中每个分发逻辑单元2023均与各颗粒仲裁器2022连接。每个分发逻辑单元2023还与第一拆分逻辑模块201连接,用于将第一拆分逻辑模块201传输的第二访问命令分发到对应颗粒仲裁器。示例性的,图11是本公开又一示例性实施例提供的存储阵列模块202的结构示意图。在本示例中,存储阵列模块202包括多个分发逻辑单元2023。
可选地,多个分发逻辑单元中的各分发逻辑单元2023可以分别对应不同主机,实现分别将到达该存储阵列模块202的不同主机的第二访问命令按照访问地址分发到对应存储颗粒2021的颗粒仲裁器2022。对于这种情况,相应的,第一拆分逻辑模块201可以具有不同主机分别对应的第一拆分逻辑单元,以实现对不同主机的第一访问命令的并行拆分,使得各主机拆分后的第二访问命令能够并行到达对应的存储阵列模块202中对应的分发逻辑单元2023,进而并行分发到对应的颗粒仲裁器2022。从而实现多主机猝发访问的并行响应,大大提高访问效率,使得本公开的存储装置能够适用于超大规模的高流量的多端口并行访问。
图12是本公开又一示例性实施例提供的第一拆分逻辑模块201的结构示意图。
在一个可选示例中,所述第一拆分逻辑模块201包括:至少一个第二拆分逻辑单元2012。
至少一个第二拆分逻辑单元2012中的每个所述第二拆分逻辑单元2012通过独立总线与一个主机连接;每个所述第二拆分逻辑单元2012与所述至少两个存储阵列模块202连接;所述第二拆分逻辑单元2012,用于基于所述主机生成的所述第一访问命令的访问地址及预设地址编码排布规则,将所述第一访问命令拆分为至少两个第一子访问命令,将所述至少两个第一子访问命令作为所述至少两个第二访问命令并行传输给对应的存储阵列模块202。
其中,总线可以采用任意可实施的总线,具体可以根据实际需求设置。总线可以包括地址总线、数据总线、控制总线,具体总线的结构及原理不再赘述。预设地址编码排布规则可以根据实际需求设置,目的是使每个主机的第一访问命令拆分获得的各第二访问命令的访问地址会对应到不同的存储阵列模块202,保证对各第二访问命令的并行响应。比如预设地址编码排布规则可以是交织排布、高位交叉排布、低位交叉排布,等等。具体不做限定。
示例性的,图13是本公开一示例性实施例提供的一种地址编码排布的示意图。在本示例中,采用交织排布方式进行地址编码排布,比如第一访问命令访问起始地址为2000,访问长度为16,经拆分获得4个访问长度为4的第二访问命令,访问起始地址分别为2000、2004、2008和200C,则这4个第二访问命令对应到了4个不同的存储阵列模块202,这4个存储阵列模块可以并行响应这4个第二访问命令。这里只是一种示例性排布,存储装置包括的存储阵列模块数量及各存储阵列模块涉及的地址数量均可以根据实际需求设置。
本公开中每个第二拆分逻辑单元2012通过独立总线与一个主机连接,每个第二拆分逻辑单元2012与至少两个存储阵列模块202连接,实现了各主机之间相对独立的访问,在有效提高访问效率的同时,还能提高访问的稳定性。
图14是本公开再一示例性实施例提供的第一拆分逻辑模块201的结构示意图。
在一个可选示例中,所述第一拆分逻辑模块201包括:至少一个第三拆分逻辑单元2013、及每个所述第三拆分逻辑单元2013对应的至少两个第四拆分逻辑单元2014;所述至少一个第三拆分逻辑单元的每一所述第三拆分逻辑单元2013通过独立的总线与一个主机连接;每一所述第四拆分逻辑单元2014与所述至少两个存储阵列模块202连接;每一所述第三拆分逻辑单元2013,基于所述主机生成的所述第一访问命令的访问地址及预设地址编码排布规则,将所述第一访问命令拆分为至少两个第一子访问命令,将所述至少两个第一子访问命令并行传输给所述第三拆分逻辑单元2013对应的所述至少两个第四拆分逻辑单元2014;每一所述第四拆分逻辑单元2014,用于根据所述第三拆分逻辑单元2013的所述第一子访问命令的访问地址及所述预设地址编码排布规则,将所述第一子访问命令拆分为至少两个第二子访问命令,将每一所述第二子访问命令作为一个所述第二访问命令,将各所述第二访问命令并行传输给各所述存储阵列模块202。
其中,预设地址编码排布规则可以根据实际需求设置。本示例中,第一拆分逻辑模块201包括两级拆分逻辑单元,第一级拆分逻辑单元包括至少一个第三拆分逻辑单元2013,每个第三拆分逻辑单元2013通过独立总线与一个主机连接,实现不同主机的第一访问命令可以并行拆分。每个第三拆分逻辑单元2013在第二级拆分逻辑单元中具有对应的至少两个第四拆分逻辑单元2014。实现不同主机的第一访问命令通过两级并列拆分获得对应的第二访问命令。每个第四拆分逻辑单元2014与至少两个存储阵列模块中的每个存储阵列模块202连接。为了清楚展示,图中仅示出了部分第四拆分逻辑单元2014与存储阵列模块202的连接,其他第四拆分逻辑单元2014同样与每个存储阵列模块202连接,但未示出。
图15是本公开又一示例性实施例提供的第一拆分逻辑模块201的结构示意图。
在一个可选示例中,所述至少两个存储阵列模块202按照所述预设地址编码排布规则形成至少一个阵列簇;同一所述第三拆分逻辑单元2013下的不同第四拆分逻辑单元2014对应不同的阵列簇;同一所述第三拆分逻辑单元2013下的每一所述第四拆分逻辑单元2014与对应的所述阵列簇中的各存储阵列模块202连接。
其中,阵列簇中包括的阵列模块202的数量可以根据实际需求设置。比如每个阵列簇可以包括2、3、4等数量的存储阵列模块。阵列簇的划分可以根据每个主机的第三拆分逻辑单元2013在第二级中对应的第四拆分逻辑单元2014的数量确定,以保证每个第一访问命令经多级拆分后的所有第二访问命令分别对应到不同的存储阵列模块,且不同主机的第一访问命令在访问不同地址时相互之间能够隔离。不同主机的第一访问命令在访问相同地址时,可以经过多级拆分对应到更多存储阵列模块,进行更小粒度的并行响应,进一步提高访问效率,并使得存储装置能够适用于更大规模更大流量的多端口并行访问。当存储阵列模块设置较大数量,并进行阵列簇划分后,使得不同主机的访问几乎不会同时到达同一存储阵列模块中的同一颗粒,有效降低排队访问的情况,提高访问的稳定性。
示例性的,图16是本公开一示例性实施例提供的阵列簇划分示意图。本示例中,共包括8个存储阵列模块202,划分为4个阵列簇,在第一级拆分逻辑单元中每个第三拆分逻辑单元2013将第一访问命令拆分为4个第一子访问命令,比如第一访问命令的起始访问地址为2000,访问长度为32,第三拆分逻辑单元2013将第一访问命令拆分为起始地址分别为2000、2008、2010、2018的访问长度为8的4个第一子访问命令,并行分发到第二级的第四拆分逻辑单元2014,其中一个第四拆分逻辑单元将起始地址为2000的第一子访问命令拆分为起始地址分别为2000和2004的访问长度为4的两个第二子访问命令,每个第二子访问命令作为一个第二访问命令,两个第二访问命令分别被传输到对应阵列簇(图中第一个阵列簇)中的两个存储阵列模块。同理对另外三个第一子访问命令分别对应的另外3个不同的阵列簇。当有多个主机同时进行长猝发访问时,每个主机的长猝发的第一访问命令,可以独立拆分,不同主机之间相互不会影响。且每个主机均可以访问到各存储阵列模块,在实现不同主机对各存储阵列模块的共享的情况下,大大减少访问时间,提高访问效率。
本示例中每个主机有独立的通道访问各存储阵列模块,不同主机之间相互独立,基于此,结合多级拆分和存储阵列模块的编码排布,可以实现超大规模、超高流量的多端口长猝发访问。
图17是本公开再一示例性实施例提供的存储阵列模块202的结构示意图。
在一个可选示例中,所述存储阵列模块202,包括:与该存储阵列模块202连接的每一所述第四拆分逻辑单元2014对应的分发逻辑单元2023;至少一个颗粒仲裁器2022、及各所述颗粒仲裁器2022对应的存储颗粒2021,每一所述存储颗粒2021包括至少一个存储单元20211;每一所述分发逻辑单元2023与所述至少一个颗粒仲裁器中的每一颗粒仲裁器2022连接;每一所述分发逻辑单元2023,用于根据与该分发逻辑单元2023对应的所述第四拆分逻辑单元2014的所述第二访问命令的访问地址,将所述第二访问命令分发到对应存储颗粒2021的颗粒仲裁器2022;所述至少一个颗粒仲裁器中的每一所述颗粒仲裁器2022,用于根据预设仲裁规则,确定出访问该颗粒仲裁器2022对应的存储颗粒2021的目标第二访问命令;每一所述存储颗粒2021,用于响应访问该存储颗粒2021的所述目标第二访问命令,执行对应的操作。
其中,存储颗粒的数量可以根据实际需求设置。分发逻辑单元的数量与连接到该存储阵列模块的第四拆分逻辑单元2014的数量相同。连接到同一存储阵列模块的第四拆分逻辑单元2014的数量可以根据实际需求设置,参见前述内容,在此不再赘述。存储颗粒响应目标第二访问命令执行对应的操作可以包括执行读操作或写操作,具体根据第二访问命令的访问类型执行。具体读写原理不再赘述。
本示例中,不同第四拆分逻辑单元2014的第二访问命令可以通过不同的分发逻辑单元分发到对应的存储颗粒的颗粒仲裁器,实现多个第二访问命令的并行分发。当有多个主机对应的第二访问命令同时访问该存储阵列模块时,在存储阵列模块内部实现并行分发,进一步提高访问效率。当分发后有多个第二访问命令访问同一存储颗粒时,在该存储颗粒对应的颗粒仲裁器进行仲裁,确定访问顺序。
在一个可选示例中,图18是本公开另一示例性实施例提供的存储装置的结构示意图。其中,仅对一个存储阵列模块202的结构进行了展开展示,其他存储阵列模块202与该存储阵列模块结构原理相同,不再赘述,在本示例中,每个主机具有独立的通道连接到颗粒仲裁器,该独立的通道包括:第三拆分逻辑单元2013,该第三拆分逻辑单元2013连接的至少两个第四拆分逻辑单元2014,以及该至少两个第四拆分逻辑单元中每一第四拆分逻辑单元2014连接的分发逻辑单元。基于相对独立的通道实现各主机的第一访问命令的独立拆分及分发,直至存储颗粒阶段才可能相遇排队访问,而该相遇的几率可以通过地址编码排布及存储颗粒、存储阵列模块、阵列簇等的设置降低到更小,从而保证超大规模、超高流量的多端口并发访问的访问效率。
示例性的,在多核深度学习芯片中,常见的场景是存储中的一段数据(比如权重参数),会被多个(比如X个)加速核(主机)反复读取。基于本公开的存储装置,比如存储阵列模块被划分为M个阵列簇,每个阵列簇中包括N个存储阵列模块,每个存储阵列模块中包括K个存储颗粒,则可以实现由M*N*K个存储颗粒共同响应这X个加速核的这段地址请求,大大降低访问时间,提高访问效率。当主机具有猝发内乱序功能时,即使出现多个加速核同时读取的情况,任一个加速核都不会出现访存性能相对只有一个加速核访读取时大幅下降的情况。主机的猝发内乱序功能是指允许读取的不同地址的数据无需按顺序返回,哪个能返回就先返回哪个,主机可以将不同返回结果组成其需要的数据。而现有技术中,当有多个加速核同时读取时,读取性能会下降到1/X,为了避免读取性能下降到1/X,必须通过软件使用额外的访存时间错开优化或者同一组数据复制多份分开存储的资源浪费。可见,本公开的存储装置相对于现有技术,不仅大大提高访问效率,还无需软件使用额外的访存时间错开优化,也无需多份存储浪费资源。
在一个可选示例中,第一拆分逻辑模块201的拆分级数和每一级拆分粒度,可以根据布局规划(floorplan)的情况和存储需求,以及并行主机的数据具体确定,不限于上述图18的两级拆分。比如,深度学习加速芯片需要较多的存储阵列模块,会占据较大的面积,配合多主机的并行访问,绕线产生的拥塞(congestion)可能会成为面积的瓶颈,这种情况下,可以根据floorplan来灵活确定存储阵列模块外总线分发的级数和每一级拆分的粒度,确定最匹配主机个数和物力实现的组合。
在一个可选示例中,对于存储阵列模块202中的各存储颗粒还可以根据实际需求进一步进行横向或纵向划分,当有多个第二访问命令同时访问同一个存储颗粒时,若两个第二访问命令的访问地址不同,可以分别由存储颗粒中不同区域的存储单元进行响应,进一步提高访问效率。
在一个可选示例中一个存储颗粒2021可以是一个存储单元,每个主机通过独立总线连接一个第三拆分逻辑单元2013,一个第三拆分逻辑单元分别通过总线并行连接至少两个第四拆分逻辑单元2014,每个第四拆分逻辑单元2014连接一个存储阵列模块202中的一个分发逻辑单元2023,每个分发逻辑单元2023分别通过总线连接其所在存储阵列模块中的各存储颗粒2021,实现了每个主机具有独立的多级分发总线,从而将主机的长猝发传输拆解成小颗粒传输并行传输到相应的存储阵列模块,通过对存储阵列模块的地址编码排布,保证对于同一猝发,不会有多个单颗粒传输落到同一个存储阵列模块。在存储阵列模块202内,每个主机都自己独立的分发总线,根据地址的编码排布,将单颗粒访问传输到存储阵列模块中相应的存储单元,多个主机的访问直到到达每个存储单元才会进行仲裁,仲裁之前的通路都是独立的,既保证了更高的并行度,降低了不同主机之间的互相影响,又实现了更好的硬件隔离,从而可以实现对ISO26262的有效兼容和支持。且通过存储阵列模块外的多级分发及存储阵列模块内的一转多分发实现并提高了存储阵列模块对同一个主机的带宽并行度。
基于本公开的存储装置,预设地址编码排布规则可以根据芯片的具体需求设置多种模式。对于有虚拟化或硬件隔离等安全需求的场景,通过地址编码排布,还可以实现不同主机不会访问到相同的存储阵列模块。结合不同主机使用完全独立的总线和分发逻辑,还可以实现不同主机的完全物理隔离。而在没有隔离需求的场景下,可以通过全地址空间编码将长猝发访问分散到不同的存储颗粒上,保证所有存储颗粒在非极端场景下有比较平均的利用率,且这样的均匀使用的效果可以由硬件保证,软件不需要做额外的适配工作,提高了软件使用的友好性和开发的灵活性,大大降低软件开发工作量,降低后期由于软件优化不足产生的调试需求和风险。
图19是本公开再一示例性实施例提供的存储装置的结构示意图。
在一个可选示例中,所述第一拆分逻辑模块201,还包括:协议检查单元2015,用于进行总线协议检查。
其中,协议检查单元2015可以根据访问响应情况进行总线协议检查,比如超时检查、端到端ECC编码检查,等等,具体可以根据实际需求设置。
示例性地,对于有较高安全等级需求的芯片,可以设置协议检查单元2015。
在一个可选示例中,协议检查单元2015可以设置在第一级拆分逻辑单元中的拆分逻辑单元(比如上述的第一拆分逻辑单元2011、第二拆分逻辑单元2012及第三拆分逻辑单元2013)中,也可以为独立于第一级拆分逻辑单元中的拆分逻辑单元的单元,具体可以根据实际需求设置。
在一个可选示例中,所述第一拆分逻辑模块201,还包括:响应单元2016,用于基于所述存储阵列模块202返回的访问结果,响应于对应的主机支持猝发内乱序,将所述访问结果传输给所述主机,响应于所述主机不支持猝发内乱序,将所述访问结果排序后传输给所述主机。
其中,猝发内乱序是指乱序传输,比如对于写传输,同一主机发出的写地址和写数据乱序,比如,m1按顺序发出两个写命令CMD1和CMD2分别访问S1和S2,此时可以先向S2发送写数据再向S1发送写数据;对于读传输,同一从机(slave,比如本公开的存储装置)接收到的读地址可以和返回的读数据乱序;对于同一主机发出的写命令或者同一从机接收到的读命令,猝发(burst)间的交叉乱序传输,比如m1按顺序发出两个写命令CMD1和CMD2,写数据时可以在CMD1的数据没有发完的情况下就发送CMD2的数据。具体猝发内乱序的原理不再赘述。结合主机的内乱序,本公开的存储阵列模块202返回的访问结果可以及时返回主机,从而可以进一步提高各存储阵列模块的响应效率。
利用高并行度的存储响应,以及支持猝发内乱序的功能,本公开的存储装置可以有效降低多个主机同时访问相同地址空间的访问冲突带来的延迟影响,在提供稳定的高带宽和低延时的同时,多存储颗粒并行响应也降低了单个存储单元效率对访存性能的影响,即使降低存储颗粒的运行频率也不会影响大数据块的访问性能。比如SRAM(StaticRandom-Access Memory,静态随机存取存储器)可以相对于总线异步,或者运行在1/F的总线频率,F可以是任何有效的整数。可以根据实际芯片频率和工艺,选择面积和功耗更理想的SRAM存储颗粒。
在一个可选示例中,响应单元2016可以设置在第一级拆分逻辑单元中的拆分逻辑单元(比如上述的第一拆分逻辑单元2011、第二拆分逻辑单元2012及第三拆分逻辑单元2013)中,也可以为独立于第一级拆分逻辑单元中的拆分逻辑单元的单元,具体可以根据实际需求设置。
在一个可选示例中,在多级拆分逻辑单元中的每一级拆分逻辑单元的每一拆分逻辑单元(比如上述的每一级的第一拆分逻辑单元2011、第二拆分逻辑单元2012、第三拆分逻辑单元2013及第四拆分逻辑单元2014)中均可设置响应单元2016,用于将其下级返回的访问结果上报到上级。在存储阵列模块202的分发逻辑单元2023中也可设置对应的响应单元,用于将存储颗粒返回的访问结果上报给与其连接的拆分逻辑单元,具体可以根据实际需求设置。各阶段的返回结果可以通过总线传输,具体传输原理不再赘述。
在一个可选示例中,本公开存储装置中不同级的第一拆分逻辑单元2011之间的连接以及最后一级的第一拆分逻辑单元2011与对应存储阵列模块202的连接可以通过总线连接。第二拆分逻辑单元2012与各存储阵列模块202的连接可以通过总线连接。第三拆分逻辑单元2013与第四拆分逻辑单元2014之间的连接及第四拆分逻辑单元2014与各存储阵列模块202之间的连接,也可以通过总线连接。各第四拆分逻辑单元2014与分发逻辑单元2023之间也通过总线连接。相应的,主机的第一访问命令经拆分及分发到存储颗粒后,存储颗粒的响应结果经与访问过程的相同路径的返回通道向上逐级返回,最终返回给主机。具体总线传输原理在此不再赘述。本公开中的总线可以根据实际需求设置,比如AMBA(AdvancedMicrocontroller Bus Architecture,高级微控制器总线结构)总线。
在一个可选示例中,至少一级拆分逻辑单元中的不同级拆分逻辑单元采用相同或不同的工作频率;和/或,所述至少一级拆分逻辑单元与所述至少两个存储阵列模块采用相同或不同的工作频率。
其中,工作频率可以是同步也可以是异步,具体可以根据实际需求设置。具体来说,每一级拆分逻辑单元可以根据实际需求设置其对应的工作频率,可以与其他级拆分逻辑单元相同,也可以与其他级拆分逻辑单元不同,各级拆分逻辑单元与存储阵列模块的工作频率也可以相同,也可以不同,具体不做限定。示例性的,第一级拆分逻辑单元采用1GHz(吉赫兹)的工作频率,第二级拆分逻辑单元采用0.5GHz(吉赫兹)的工作频率,这里仅为一示例性说明,并非对实际工作频率的限定,在实际应用中各级拆分逻辑单元及存储阵列模块的工作频率可以根据实际需求设置为任意需要的频率值,本公开不做限定。
在一个可选示例中,对于有一定安全等级需求的芯片,可以基于预设编码对存储数据进行保护,比如通过设置奇偶校验位(parity)或ECC(Error Correcting Code,误差校正码)等对存储数据进行保护。针对这种情况,根据预设地址编码排布规则可以设置相应的拆分规则,比如对于128位的数,可以拆分为两个64+8位的数进行保护存储,提高访问效率,具体拆分可以根据实际需求设置。
本公开的存储装置,通过多级拆分和分发逻辑,将长猝发的访问拆解成小颗粒访问,并利用地址编码排布将小颗粒的访问均匀地下发到众多并行的存储颗粒。通过高并行度抵消多主机并行访问冲突带来的影响,实现了在多核并行运行的环境下的数据访问稳定高流量,保证了访问延迟的可确定性和软件使用的高透明性。本公开的存储装置可以用于超大规模的高流量的多端口并行片上共享存储系统。且本公开的存储装置通过模块化、高结构化,实现了高扩展性和易实现性,且保证大容量内存访问的一致性和确定性。本公开的存储装置可以在FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)、SoC(System on Chip,系统级芯片)、ASIC(Application Specific Integrated Circuit,专用集成电路)等上实现。
示例性方法
图20是本公开一示例性实施例提供的存储方法的流程示意图。本实施例可应用在电子设备上,具体比如自动驾驶的车载计算平台上,本公开的存储方法可以由上述任一实施例或可选示例提供的存储装置执行,如图20所示,包括如下步骤:
步骤501,根据第一访问命令的访问地址,将第一访问命令拆分为至少两个第二访问命令。
步骤502,根据至少两个第二访问命令执行对应的访问操作。
上述各步骤的具体操作参见前述实施例,在此不再赘述。
本实施例提供的存储方法,通过将较长猝发的第一访问命令拆分为更小粒度的第二访问命令,并行访问至少两个存储阵列模块,从而使得至少两个存储阵列模块能够并行响应,有效降低较长猝发的第一访问命令的响应时间,从而在多主机并发访问时,可有效降低各主机访问的访问时间,从而提高访问效率。
图21是本公开另一示例性实施例提供的存储方法的流程示意图。
在一个可选示例中,步骤501的根据第一访问命令的访问地址,将第一访问命令拆分为至少两个第二访问命令,包括:
步骤5011a,根据第一访问命令的访问地址,对第一访问命令进行至少一级拆分,获得至少两个第二访问命令;其中,第一级拆分将第一访问命令拆分为至少两个第一子访问命令;中间级拆分的每一级将当前级的前一级拆分获得的至少两个前一级子访问命令中对应的前一级子访问命令拆分为至少两个当前级子访问命令,最后一级拆分将其前一级拆分获得的前一级子访问命令拆分为至少两个第二访问命令。
在一个可选示例中,步骤502的根据至少两个第二访问命令执行对应的访问操作,包括:
5021a,分别根据至少两个第二访问命令中的每一第二访问命令,并行访问第二访问命令对应的存储存储阵列模块,以使存储阵列模块执行对应的操作。
在一个可选示例中,5021a的所述分别根据所述至少两个第二访问命令中的每一所述第二访问命令,并行访问所述第二访问命令对应的存储阵列模块,以使所述存储阵列模块执行对应的操作,包括:对于每一所述第二访问命令,根据预设仲裁规则确定出访问该存储阵列模块中各存储颗粒的目标第二访问命令,以使各存储颗粒响应所述目标第二访问命令,执行对应的操作。
图22是本公开一示例性实施例提供的步骤501的流程示意图。
在一个可选示例中,步骤501的根据第一访问命令的访问地址,将第一访问命令拆分为至少两个第二访问命令,包括:
步骤5011b,对于至少一个主机中每一主机生成的第一访问命令,得到至少一个第一访问命令。
步骤5012b,对至少一个第一访问命令中的各第一访问命令,按照下述方式并行进行拆分:根据每一第一访问命令的访问地址及预设地址编码排布规则,将第一访问命令拆分为至少两个第一子访问命令,将至少两个第一子访问命令作为至少两个第二访问命令。
图23是本公开另一示例性实施例提供的步骤501的流程示意图。
在一个可选示例中,步骤501的根据第一访问命令的访问地址,将第一访问命令拆分为至少两个第二访问命令,包括:
步骤5011c,对于至少一个主机中每一主机生成的第一访问命令,得到至少一个第一访问命令。
步骤5012c,对至少一个第一访问命令中的各第一访问命令按照下述步骤并行进行拆分:根据每一第一访问命令的访问地址及预设地址编码排布规则,将第一访问命令拆分为至少两个第一子访问命令;根据至少两个第一子访问命令中的每一第一子访问命令的访问地址及预设地址编码排布规则,将每一第一子访问命令拆分为至少两个第二子访问命令;将每一第一访问命令下的每一第二子访问命令作为一个第二访问命令,获得至少两个第二访问命令。
图24是本公开再一示例性实施例提供的存储方法的流程示意图。
在一个可选示例中,本公开的方法,还包括:
步骤503,基于访问结果,响应于对应的主机支持猝发内乱序,将访问结果传输给主机,响应于主机不支持猝发内乱序,将访问结果排序后传输给主机。
在一个可选示例中,本公开的方法还可以包括:进行总线协议检查。
本公开上述各步骤的具体操作参见前述装置实施例,在此不再赘述。
在一个可选示例中,本公开的至少一级拆分中的不同级拆分可以采用相同或不同的工作频率;和/或,至少一级拆分与存储阵列模块可以采用相同或不同的工作频率。工作频率可以是同步,也可以是异步。
本公开实施例提供的任一种存储方法可以由任意适当的具有数据处理能力的设备执行,包括但不限于:终端设备和服务器等。或者,本公开实施例提供的任一种存储方法可以由处理器执行,如处理器通过调用存储器存储的相应指令来执行本公开实施例提及的任一种存储方法。下文不再赘述。
示例性电子设备
本公开实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述任一实施例所述的存储方法。
图25是本公开电子设备一个应用实施例的结构示意图。本实施例中,该电子设备10包括一个或多个处理器11和存储器12。
处理器11可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。
存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本公开的各个实施例的方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,该输入装置13可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。
此外,该输入装置13还可以包括例如键盘、鼠标等等。
该输出装置14可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图25中仅示出了该电子设备10中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。
在一个可选示例中,图26是本公开电子设备另一个应用实施例的结构示意图。在本示例中,该电子设备10包括如上任一实施例提供的存储装置。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
还需要指出的是,在本公开的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

Claims (20)

1.一种存储装置,包括:
第一拆分逻辑模块,用于根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令;
至少两个存储阵列模块,所述至少两个存储阵列模块中的每一所述存储阵列模块用于根据所述第一拆分逻辑模块的所述至少两个第二访问命令中的一个第二访问命令执行对应的访问操作。
2.根据权利要求1所述的装置,其中,所述第一拆分逻辑模块包括:
至少一级拆分逻辑单元,所述至少一级拆分逻辑单元的每一级拆分逻辑单元包括至少一个第一拆分逻辑单元,其中,第一级拆分逻辑单元的每一所述第一拆分逻辑单元用于对对应的所述第一访问命令进行第一级拆分,获得至少两个第一子访问命令,中间级的每一级拆分逻辑单元的每一所述第一拆分逻辑单元用于对其对应的前一级子访问命令进行拆分,获得至少两个当前级子访问命令,最后一级拆分逻辑单元的每一所述第一拆分逻辑单元用于,将其对应的前一级子访问命令进行拆分,获得所述至少两个第二访问命令。
3.根据权利要求1所述的装置,其中,所述存储阵列模块,包括:
至少一个存储颗粒,所述至少一个存储颗粒中的每一所述存储颗粒包括至少一个存储单元;
每一所述存储颗粒,用于响应访问该存储颗粒的第二访问命令,执行对应的操作。
4.根据权利要求3所述的装置,其中,所述存储阵列模块,还包括:
所述至少一个存储颗粒中每一存储颗粒对应的颗粒仲裁器;
每一所述颗粒仲裁器,用于根据预设仲裁规则,确定出访问该颗粒仲裁器对应的存储颗粒的目标第二访问命令,以使对应的该存储颗粒响应所述目标第二访问命令。
5.根据权利要求4所述的装置,其中,所述存储阵列模块,还包括:
与所述第一拆分逻辑模块连接的分发逻辑单元,所述分发逻辑单元还与各所述颗粒仲裁器连接,用于根据所述第二访问命令的访问地址,将所述第二访问命令分发到对应存储颗粒的颗粒仲裁器。
6.根据权利要求1所述的装置,其中,所述第一拆分逻辑模块包括:
至少一个第二拆分逻辑单元,每个所述第二拆分逻辑单元通过独立总线与一个主机连接;每个所述第二拆分逻辑单元与所述至少两个存储阵列模块连接;
所述第二拆分逻辑单元,用于基于所述主机生成的所述第一访问命令的访问地址及预设地址编码排布规则,将所述第一访问命令拆分为至少两个第一子访问命令,将所述至少两个第一子访问命令作为所述至少两个第二访问命令并行传输给对应的存储阵列模块。
7.根据权利要求1所述的装置,其中,所述第一拆分逻辑模块包括:至少一个第三拆分逻辑单元、及每个所述第三拆分逻辑单元对应的至少两个第四拆分逻辑单元;
所述至少一个第三拆分逻辑单元的每一所述第三拆分逻辑单元通过独立的总线与一个主机连接;每一所述第四拆分逻辑单元与所述至少两个存储阵列模块连接;
每一所述第三拆分逻辑单元,基于所述主机生成的所述第一访问命令的访问地址及预设地址编码排布规则,将所述第一访问命令拆分为至少两个第一子访问命令,将所述至少两个第一子访问命令并行传输给所述第三拆分逻辑单元对应的所述至少两个第四拆分逻辑单元;
每一所述第四拆分逻辑单元,用于根据所述第三拆分逻辑单元的所述第一子访问命令的访问地址及所述预设地址编码排布规则,将所述第一子访问命令拆分为至少两个第二子访问命令,将每一所述第二子访问命令作为一个所述第二访问命令,将各所述第二访问命令并行传输给各所述存储阵列模块。
8.根据权利要求7所述的装置,其中,所述至少两个存储阵列模块按照所述预设地址编码排布规则形成至少一个阵列簇;同一所述第三拆分逻辑单元下的不同第四拆分逻辑单元对应不同的阵列簇;同一所述第三拆分逻辑单元下的每一所述第四拆分逻辑单元与对应的所述阵列簇中的各存储阵列模块连接。
9.根据权利要求7所述的装置,其中,所述存储阵列模块,包括:
与该存储阵列模块连接的每一所述第四拆分逻辑单元对应的分发逻辑单元;
至少一个颗粒仲裁器、及各所述颗粒仲裁器对应的存储颗粒,每一所述存储颗粒包括至少一个存储单元;
每一所述分发逻辑单元与所述至少一个颗粒仲裁器中的每一颗粒仲裁器连接;
每一所述分发逻辑单元,用于根据与该分发逻辑单元对应的所述第四拆分逻辑单元的所述第二访问命令的访问地址,将所述第二访问命令分发到对应存储颗粒的颗粒仲裁器;
所述至少一个颗粒仲裁器中的每一所述颗粒仲裁器,用于根据预设仲裁规则,确定出访问该颗粒仲裁器对应的存储颗粒的目标第二访问命令;
每一所述存储颗粒,用于响应访问该存储颗粒的所述目标第二访问命令,执行对应的操作。
10.根据权利要求1所述的装置,其中,所述第一拆分逻辑模块,还包括:
协议检查单元,用于进行总线协议检查。
11.根据权利要求1所述的装置,其中,所述第一拆分逻辑模块,还包括:
响应单元,用于基于所述存储阵列模块返回的访问结果,响应于对应的主机支持猝发内乱序,将所述访问结果传输给所述主机,响应于所述主机不支持猝发内乱序,将所述访问结果排序后传输给所述主机。
12.根据权利要求2所述的装置,其中,所述至少一级拆分逻辑单元中的不同级拆分逻辑单元采用相同或不同的工作频率;和/或,
所述至少一级拆分逻辑单元与所述至少两个存储阵列模块采用相同或不同的工作频率。
13.一种存储方法,包括:
根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令;
根据所述至少两个第二访问命令执行对应的访问操作。
14.根据权利要求13所述的方法,其中,所述根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令,包括:
根据所述第一访问命令的访问地址,对所述第一访问命令进行至少一级拆分,获得所述至少两个第二访问命令;其中,第一级拆分将所述第一访问命令拆分为至少两个第一子访问命令;中间级拆分的每一级将当前级的前一级拆分获得的至少两个前一级子访问命令中对应的前一级子访问命令拆分为至少两个当前级子访问命令,最后一级拆分将其前一级拆分获得的前一级子访问命令拆分为所述至少两个第二访问命令。
15.根据权利要求13所述的方法,其中,所述根据所述至少两个第二访问命令执行对应的访问操作,包括:
分别根据所述至少两个第二访问命令中的每一所述第二访问命令,并行访问所述第二访问命令对应的存储阵列模块,以使所述存储阵列模块执行对应的操作。
16.根据权利要求13所述的方法,其中,所述根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令,包括:
对于至少一个主机中每一所述主机生成的第一访问命令,得到至少一个第一访问命令,对所述至少一个第一访问命令中的各所述第一访问命令按照下述方式并行进行拆分:
根据每一所述第一访问命令的访问地址及预设地址编码排布规则,将所述第一访问命令拆分为至少两个第一子访问命令,将所述至少两个第一子访问命令作为所述至少两个第二访问命令。
17.根据权利要求13所述的方法,其中,所述根据第一访问命令的访问地址,将所述第一访问命令拆分为至少两个第二访问命令,包括:
对于至少一个主机中每一所述主机生成的第一访问命令,得到至少一个第一访问命令,对所述至少一个第一访问命令中的各所述第一访问命令按照下述方式并行进行拆分:
根据每一所述第一访问命令的访问地址及预设地址编码排布规则,将所述第一访问命令拆分为至少两个第一子访问命令;
根据所述至少两个第一子访问命令中的每一所述第一子访问命令的访问地址及预设地址编码排布规则,将所述第一子访问命令拆分为至少两个第二子访问命令;
将每一所述第二子访问命令作为一个所述第二访问命令,获得所述至少两个第二访问命令。
18.根据权利要求13所述的方法,还包括:
基于访问结果,响应于对应的主机支持猝发内乱序,将所述访问结果传输给所述主机,响应于所述主机不支持猝发内乱序,将所述访问结果排序后传输给所述主机。
19.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求13-18任一所述的存储方法。
20.一种电子设备,所述电子设备包括:
处理器;
用于存储所述处理器可执行指令的存储器;
所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现上述权利要求13-18任一所述的存储方法;或者,
所述电子设备包括:
如权利要求1-12任一所述的存储装置。
CN202210547370.1A 2022-05-11 2022-05-11 存储装置、方法、电子设备和存储介质 Active CN114896182B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202210547370.1A CN114896182B (zh) 2022-05-11 2022-05-11 存储装置、方法、电子设备和存储介质
JP2023051902A JP2023168234A (ja) 2022-05-11 2023-03-28 記憶装置、方法、電子機器及び記憶媒体
EP23165281.9A EP4276640A1 (en) 2022-05-11 2023-03-30 Storage device and method, electronic device, and storage medium
US18/315,040 US20230367483A1 (en) 2022-05-11 2023-05-10 Storage device and method, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210547370.1A CN114896182B (zh) 2022-05-11 2022-05-11 存储装置、方法、电子设备和存储介质

Publications (2)

Publication Number Publication Date
CN114896182A true CN114896182A (zh) 2022-08-12
CN114896182B CN114896182B (zh) 2023-10-20

Family

ID=82722972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210547370.1A Active CN114896182B (zh) 2022-05-11 2022-05-11 存储装置、方法、电子设备和存储介质

Country Status (4)

Country Link
US (1) US20230367483A1 (zh)
EP (1) EP4276640A1 (zh)
JP (1) JP2023168234A (zh)
CN (1) CN114896182B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687171A (zh) * 2022-10-26 2023-02-03 深圳三地一芯电子有限责任公司 闪存块绑定方法、装置、设备及存储介质
CN116225346A (zh) * 2023-05-09 2023-06-06 此芯科技(上海)有限公司 一种内存数据访问方法及电子设备

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002123420A (ja) * 2000-10-13 2002-04-26 Matsushita Electric Ind Co Ltd メモリアクセス装置
US20100250872A1 (en) * 2009-03-30 2010-09-30 Fujitsu Microelectronics Limited Interface, memory system, and access control method
JP2012185553A (ja) * 2011-03-03 2012-09-27 Nec Corp 情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法
CN103927268A (zh) * 2014-04-08 2014-07-16 中国科学院微电子研究所 一种存储器的访问方法及装置
CN105045525A (zh) * 2014-04-21 2015-11-11 三星电子株式会社 存储控制器、存储系统及操作存储控制器的方法
CN106126124A (zh) * 2016-06-29 2016-11-16 联想(北京)有限公司 一种数据处理方法及电子设备
US20180150255A1 (en) * 2016-11-29 2018-05-31 Samsung Electronics Co., Ltd. Controller and storage device including controller and nonvolatile memory devices
CN109101185A (zh) * 2017-06-20 2018-12-28 北京忆恒创源科技有限公司 固态存储设备及其写命令和读命令处理方法
US20190163651A1 (en) * 2017-11-27 2019-05-30 Seagate Technology Llc Command splitting for high-cost data access operations
CN110007853A (zh) * 2019-01-30 2019-07-12 青岛镕铭半导体有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
CN110554833A (zh) * 2018-05-31 2019-12-10 北京忆芯科技有限公司 存储设备中并行处理io命令
CN113448495A (zh) * 2020-03-27 2021-09-28 华为技术有限公司 一种扩展双倍速率内存位宽的装置
CN114356223A (zh) * 2021-12-16 2022-04-15 深圳云天励飞技术股份有限公司 存储器的访问方法及装置、芯片、电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
KR20090065504A (ko) * 2006-12-25 2009-06-22 파나소닉 주식회사 메모리 제어 장치, 메모리 장치 및 메모리 제어 방법
US9292436B2 (en) * 2007-06-25 2016-03-22 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
CN108665939B (zh) * 2017-03-31 2021-01-05 厦门旌存半导体技术有限公司 为存储器提供ecc的方法与装置

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002123420A (ja) * 2000-10-13 2002-04-26 Matsushita Electric Ind Co Ltd メモリアクセス装置
US20100250872A1 (en) * 2009-03-30 2010-09-30 Fujitsu Microelectronics Limited Interface, memory system, and access control method
JP2012185553A (ja) * 2011-03-03 2012-09-27 Nec Corp 情報処理装置、メモリアクセス制御装置及びそのアドレス生成方法
CN103927268A (zh) * 2014-04-08 2014-07-16 中国科学院微电子研究所 一种存储器的访问方法及装置
CN105045525A (zh) * 2014-04-21 2015-11-11 三星电子株式会社 存储控制器、存储系统及操作存储控制器的方法
CN106126124A (zh) * 2016-06-29 2016-11-16 联想(北京)有限公司 一种数据处理方法及电子设备
US20180150255A1 (en) * 2016-11-29 2018-05-31 Samsung Electronics Co., Ltd. Controller and storage device including controller and nonvolatile memory devices
CN109101185A (zh) * 2017-06-20 2018-12-28 北京忆恒创源科技有限公司 固态存储设备及其写命令和读命令处理方法
US20190163651A1 (en) * 2017-11-27 2019-05-30 Seagate Technology Llc Command splitting for high-cost data access operations
CN110554833A (zh) * 2018-05-31 2019-12-10 北京忆芯科技有限公司 存储设备中并行处理io命令
CN110007853A (zh) * 2019-01-30 2019-07-12 青岛镕铭半导体有限公司 一种Nandflash命令处理方法、装置、终端及存储介质
CN113448495A (zh) * 2020-03-27 2021-09-28 华为技术有限公司 一种扩展双倍速率内存位宽的装置
CN114356223A (zh) * 2021-12-16 2022-04-15 深圳云天励飞技术股份有限公司 存储器的访问方法及装置、芯片、电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115687171A (zh) * 2022-10-26 2023-02-03 深圳三地一芯电子有限责任公司 闪存块绑定方法、装置、设备及存储介质
CN116225346A (zh) * 2023-05-09 2023-06-06 此芯科技(上海)有限公司 一种内存数据访问方法及电子设备

Also Published As

Publication number Publication date
JP2023168234A (ja) 2023-11-24
EP4276640A1 (en) 2023-11-15
CN114896182B (zh) 2023-10-20
US20230367483A1 (en) 2023-11-16

Similar Documents

Publication Publication Date Title
US11843691B2 (en) Technologies for managing a flexible host interface of a network interface controller
US11907557B2 (en) Technologies for dividing work across accelerator devices
US11714763B2 (en) Configuration interface to offload capabilities to a network interface
US11132127B2 (en) Interconnect systems and methods using memory links to send packetized data between different data handling devices of different memory domains
CN114896182B (zh) 存储装置、方法、电子设备和存储介质
US11880329B2 (en) Arbitration based machine learning data processor
US20160132541A1 (en) Efficient implementations for mapreduce systems
WO2021254135A1 (zh) 任务执行方法及存储设备
US9501222B2 (en) Protection zones in virtualized physical addresses for reconfigurable memory systems using a memory abstraction
US20110252173A1 (en) Translating a requester identifier to a chip identifier
CN115099352A (zh) 模型训练系统、模型训练方法及装置
US20200320029A1 (en) System and Method of Rerouting an Inter-Processor Communication Link Based on a Link Utilization Value
US10445267B2 (en) Direct memory access (DMA) unit with address alignment
US10664396B2 (en) Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes
HeydariGorji et al. In-storage processing of I/O intensive applications on computational storage drives
US20100100717A1 (en) Mechanism for performing function level reset in an i/o device
US20140237149A1 (en) Sending a next request to a resource before a completion interrupt for a previous request
WO2023159652A1 (zh) 一种ai系统、内存访问控制方法及相关设备
US20240111694A1 (en) Node identification allocation in a multi-tile system with multiple derivatives
WO2024012153A1 (zh) 一种数据处理方法及装置
US10908828B1 (en) Enhanced quality of service (QoS) for multiple simultaneous replication sessions in a replication setup
US20230376562A1 (en) Integrated circuit apparatus for matrix multiplication operation, computing device, system, and method
US11442643B2 (en) System and method for efficiently converting low-locality data into high-locality data

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