CN117389767A - 基于soc芯片的共享存储池的数据交换方法及装置 - Google Patents

基于soc芯片的共享存储池的数据交换方法及装置 Download PDF

Info

Publication number
CN117389767A
CN117389767A CN202311506951.1A CN202311506951A CN117389767A CN 117389767 A CN117389767 A CN 117389767A CN 202311506951 A CN202311506951 A CN 202311506951A CN 117389767 A CN117389767 A CN 117389767A
Authority
CN
China
Prior art keywords
host
hosts
data
storage
memory
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.)
Pending
Application number
CN202311506951.1A
Other languages
English (en)
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.)
Hunan Greatwall Galaxy Technology Co ltd
Original Assignee
Hunan Greatwall Galaxy 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 Hunan Greatwall Galaxy Technology Co ltd filed Critical Hunan Greatwall Galaxy Technology Co ltd
Priority to CN202311506951.1A priority Critical patent/CN117389767A/zh
Publication of CN117389767A publication Critical patent/CN117389767A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/781On-chip cache; Off-chip memory
    • 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

Abstract

本申请涉及一种基于SOC芯片的共享存储池的数据交换方法和装置。SOC芯片上设置有N组主机,共享存储池被划分为N组存储块,每组存储块中包含至少两个双端口存储器。第i组主机只向对应的第i组存储块中写入数据,非第i组的其他主机组可以并行通过存储块的双端口,直接读取第i组存储块的数据。这样通过划分存储区域和并行直接读取,实现了各组主机之间的数据交换。每组主机都有独立的存储块,可以并行直接访问其他组存储块中的数据,避免了传统Cache结构中的命中率低和一致性问题,大大提高了不同主机组之间的数据交换效率。

Description

基于SOC芯片的共享存储池的数据交换方法及装置
技术领域
本申请涉及计算机系统结构技术领域,特别是涉及一种基于SOC芯片的共享存储池的数据交换方法及装置。
背景技术
SOC芯片(System on a Chip)即系统级芯片,是一种集成电路芯片,不仅可以存储一定量的指令和数据,还可以进行逻辑运算和数据处理以及与片外的交互。存储系统的带宽是指存储系统能够传输数据的速率,用来衡量存储系统的传输能力。数据的局部性是指程序在一段时间内所访问的数据集中在一块较小的内存区域之内,而不是随机分布在整个地址空间的现象。
传统的共享存储设备采取类似于Cache(高速缓冲存储器)的结构,包括缓存、内存、磁盘等形成存储层级,传统的数据交换方法包括在进程和文件系统之间设置Cache,对频繁访问的数据进行缓存,提高访问性能。
然而,上述传统的数据交换方法存在效率低下的技术问题。
发明内容
基于此,有必要针对上述技术问题,提供一种基于SOC芯片的共享存储池的数据交换方法和一种基于SOC芯片的共享存储池的数据交换装置。
为了实现上述目的,本发明实施例采用以下技术方案:
一方面,提供一种基于SOC芯片的共享存储池的数据交换方法,包括:
第i组主机向共享存储池的第i组存储块写入数据;SOC芯片上设置有N组主机,N≥2,共享存储池包括N组存储块,每一组存储块的每一个存储块包括至少两个双端口存储器,i为整数,1≤i≤N;
非第i组主机通过对应的端口并行读取第i组存储块的数据;非第i组主机表示除第i组主机之外的其余各组主机。
另一方面,还提供一种基于SOC芯片的共享存储池的数据交换装置,包括:主机模块和共享存储池模块;
主机模块的第i组主机用于向共享存储池模块的第i组存储块写入数据;SOC芯片上设置有主机模块,主机模块包括N组主机,N≥2,共享存储池模块包括N组存储块,每一组存储块的每一个存储块包括至少两个双端口存储器,i为整数,1≤i≤N;
主机模块的非第i组主机通过对应的端口并行读取第i组存储块的数据;非第i组主机表示除第i组主机之外的其余各组主机。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
上述基于SOC芯片的共享存储池的数据交换方法和装置,SOC芯片上设置有N组主机,共享存储池被划分为N组存储块,每组存储块中包含至少两个双端口存储器。第i组主机只向对应的第i组存储块中写入数据,非第i组的其他主机组可以并行通过存储块的双端口,直接读取第i组存储块的数据。这样通过划分存储区域和并行直接读取,实现了各组主机之间的数据交换。每组主机都有独立的存储块,可以并行直接访问其他组存储块中的数据,避免了传统Cache结构中的命中率低和一致性问题,大大提高了不同主机组之间的数据交换效率;存储块采用双端口存储器组成,支持多个主机同时访问,实现高带宽的数据交换;主机只需要访问指定存储块,无需考虑Cache一致性等问题,简化编程模型,降低编程难度;可扩展性强,支持扩展主机组和存储块数量,灵活适应不同规模的SOC芯片。
附图说明
为了更清楚地说明本申请实施例或传统技术中的技术方案,下面将对实施例或传统技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中基于SOC芯片的共享存储池的数据交换方法的流程示意图;
图2为一个实施例中共享存储池的总体结构示意图;
图3为一个实施例中共享存储池的具体实现示意图;
图4为一个实施例中基于SOC芯片的共享存储池的数据交换装置的模块结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
需要说明的是,在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置展示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。
在研究实现本申请的过程中,发明人发现在流媒体处理应用中,数据的局部性一般较差,而数据传输量却非常大,SOC片上共享存储资源所有主机都可访问,而在这种大数据量的处理应用中,采用类似Cache结构来进行中间数据的交互存在如下问题:Cache命中率低,在此应用场景下由于数据随机,相同的数据被重复访问的可能性较低,导致Cache中保存的数据被再次访问的概率(即命中率)较低,大量访问会变成对Cache不命中的访问,而需要到更低速的内存中加载数据,加载数据的延迟会增加,从而影响数据交换的效率;需要频繁进行一致性检查,多主机共享Cache时,需要确保Cache中的数据与内存或磁盘中的一致,避免数据不一致,为此需要进行大量的一致性检查,比如Cache一致性协议(MESI),这些检查与同步的开销在局部性较差时更显得“浪费”,从而降低数据交换的效率;此外,同时多主机可能带来共享冲突,也会影响数据交换的效率及系统的性能。
对此,本发明提供了一种基于SOC芯片的共享存储池的数据交换方法,SOC芯片上设置有N组主机,共享存储池被划分为N组存储块,每组存储块中包含至少两个双端口存储器。第i组主机只向对应的第i组存储块中写入数据,非第i组的其他主机组可以并行通过存储块的双端口,直接读取第i组存储块的数据。这样通过划分存储区域和并行直接读取,实现了各组主机之间的数据交换。每组主机都有独立的存储块,可以并行直接访问其他组存储块中的数据,避免了传统Cache结构中的命中率低和一致性问题,大大提高了不同主机组之间的数据交换效率;存储块采用双端口存储器组成,支持多个主机同时访问,实现高带宽的数据交换;主机只需要访问指定存储块,无需考虑Cache一致性等问题,简化编程模型,降低编程难度;可扩展性强,支持扩展主机组和存储块数量,灵活适应不同规模的SOC芯片。
下面将结合本发明实施例图中的附图,对本发明实施方式进行详细说明。
在一个实施例中,如图1所示,本申请实施例提供了一种基于SOC芯片的共享存储池的数据交换方法,包括如下处理步骤S12-14:
S12,第i组主机向共享存储池的第i组存储块写入数据;SOC芯片上设置有N组主机,N≥2,共享存储池包括N组存储块,每一组存储块的每一个存储块包括至少两个双端口存储器,i为整数,1≤i≤N。
可以理解,本方案设计基于芯片内特定主机间有频繁的数据交换,且数据量大,局部性较差,需要片上提供共享存储空间供数据交互的SOC芯片,比如片上包含DSP(DigitalSignal Processor,数字信号处理器)进行数据处理,包含ARM(Advanced RISC Machine,先进的精简指令集计算机)或其他CPU(Central Processing Unit,中央处理器)需要加载系统,需要MCU(Micro Controller Unit,微控制器)进行人工智能计算,或者实时视频数据进行采集等。可以先根据实际应用需求,选定数据交互量大且频繁的主机,根据主机数量和类别,可以确定各主机的优先级,然后通过一套仲裁方案将它们进行排序。
确定共享存储池的总大小,根据片上主机数量和类型确认该共享池可以划分为多少个存储块,关键每个小存储块都是由至少两个双端口存储器组成,例如每个存储块1KB,结构可以灵活确定是256*32b,而该存储块又可以复制2个256*32b双端口存储器由3个双端口存储器组成一个存储块;存储块也可以是512*16b再复制同样1个大小双端口存储器共2个1KB双端口存储器而成的存储块或者其他方式构成,这样,有几个存储块这个共享存储池就有几KB。根据确定的大小为存储块分配全局地址空间。具体存储块的数量根据主机数量确定。共享存储池是用来交换中间数据的,也就是说,某主机向共享存储池发送的数据一定是被其他主机消费的
具体的,在SOC芯片上设置N组主机,N≥2,即至少有2组主机,每组主机可以仅设置1个主机,也可以设置2个主机,还可以设置3个及以上的主机。共享存储池被划分为N组存储块,每组存储块可以仅设置1个存储块,也可以设置2个存储块,还可以设置3个或以上的存储块。每个存储块中包含至少两个双端口存储器,也即可以设置2个或以上的双端口存储器,根据主机的总个数和每组主机的个数确定每个存储块中包括的双端口存储器的个数。其中,共享存储池的总体结构图如图2所示。
第i组主机向共享存储池的第i组存储块写入数据,i为整数,1≤i≤N,也即,第一组主机向共享存储池的第一组存储块写入数据,第二组主机向共享存储池的第二组存储块写入数据,以此类推,第N组主机向共享存储池的第N组存储块写入数据。
此外,双端口存储器可以是双端口SRAM(Static Random Access Memory,静态随机访问存储器),也可以是双端口DRAM(Dynamic Random Access Memory,动态随机访问存储器)或者其他双端口存储器。
S14,非第i组主机通过对应的端口并行读取第i组存储块的数据;非第i组主机表示除第i组主机之外的其余各组主机。
可以理解,非第i组主机指的是除了第i组主机之外的其他所有组主机,第i组存储块包含多个双端口存储器,非第i组主机可以通过存储块对应的那个端口,并行读取第i组存储块中的数据。
例如,SOC芯片上设置有四组主机,每组主机仅有一个主机,一共有4个主机(可以分别记为:HOST-1、HOST-2、HOST-3和HOST-4),一共有四组存储块,每组存储块仅有一个存储块,一共有4个存储块(可以分别记为:记为S1、S2、S3和S4),每个存储块有两个双端口存储器(可以分别记为S1_1,S1_2;S2_1,S2_2;S3_1,S3_2;S4_1,S4_2),则每个存储块上有四个端口,那么在进行数据交换时:HOST-1向S1写入数据,当HOST1写S1体时,冗余写同样的数据到S1_1,S1_2中,下文各主机向存储块写入数据同理理解;同时HOST-2可以向S2写入数据,同时HOST-3可以向S3写入数据,同时HOST-4可以向S4写入数据。HOST-2、HOST-3和HOST-4可以通过S1(包括S1_1和S1_2)的四个端口并行读取存储块S1内的数据,可以规定每个主机从哪个端口进行读取,同理,HOST-1、HOST-3和HOST-4可以通过S2(包括S2_1和S2_2)的四个端口并行读取存储块S2内的数据,HOST-1、HOST-2和HOST-4可以通过S3(包括S3_1和S3_2)的四个端口并行读取存储块S3内的数据,HOST-1、HOST-2和HOST-3可以通过S4(包括S4_1和S4_2)的四个端口并行读取存储块S4内的数据。这样就构成了“一写三读”的工作方式,实现数据交换。
又例如,SOC芯片上设置有三组主机,每组主机包括两个主机,第一组主机:HOST-1和HOST-2,第二组主机:HOST-3和HOST-4,第三组主机:HOST-5和HOST-6;设置有三组存储块,每组存储块包括两个存储块,第一组存储块:S1和S2,第二组存储块:S3和S4,第三组存储块:S5和S6。每个存储块有两个双端口存储器(可以分别记为S1_1,S1_2;S2_1,S2_2;S3_1,S3_2;S4_1,S4_2;S5_1,S5_2;S6_1,S6_2),则每个存储块上有四个端口,存储块S1包括S1_1,S1_2两片双端口SRAM。S1_1用于HOST1、HOST2与HOST3、HOST4的数据交换;S1_2用于HOST1、HOST2与HOST5、HOST6的数据交换,具体的存储块划分及主机分配参见如下表1:
表1
每组存储块实现乒乓交换,要求不存在对同一存储块又读又写,不存在两个主机同时写一个存储块的情况。这样就实现了“二写四读”的工作方式。
HOST1和HOST2写入数据时,只能访问存储块S1和S2,需要根据写请求信号和写地址确定该向哪个存储块发出写地址,写数据和写请求信号。HOST3和HOST4写入数据时,只能访问存储块S3和S4;HOST3和HOST4写入数据时只能访问存储块S5和S6。也即第i组主机向共享存储池的第i组存储块写入数据,例如,第一组主机(HOST1和HOST2)向第一组存储块(S1和S2)写入数据。在写时,可以规定特定的主机通过特定的端口进行写入,例如,可以规定HOST1写A端口,HOST2写B端口。
HOST1读数据时,只能访问存储块S3,S4,S5,S6,需要根据读请求信号和读地址确定该向哪个存储块发出读地址和读请求信号。HOST2读数据时,只能访问存储块S3,S4,S5,S6;HOST3读数据时,只能访问存储块S1,S2,S5和S6;HOST4读数据时,只能访问存储块S1,S2,S5和S6;HOST5读数据时,只能访问存储块S1,S2,S3和S4;HOST6读数据时,只能访问存储块S1,S2,S3和S4。
也即,非第i组主机通过对应的所述端口并行读取所述第i组存储块的数据,例如,非第一组主机(HOST-3、HOST-4、HOST-5和HOST-6)并行读取第一组存储块(S1和S2)的数据。在读时,可以规定特定的主机通过特定的端口进行读取,例如,规定HOST3/HOST5读A端口,HOST4/HOST6读B端口。
每个主机都可对应一套读缓冲器和写缓冲器,同时需要将仲裁成功的请求按照共享存储池的存储块输入格式进行改装,即控制信息和数据信息的组合拼接,极大地解决了读写冲突的情况,同时还可以结合信号灯的自动阻塞机制解决同时性问题,减小冲突。共享存储池的具体实现图如图3所示。
上述基于SOC芯片的共享存储池的数据交换方法中,SOC芯片上设置有N组主机,共享存储池被划分为N组存储块,每组存储块中包含至少两个双端口存储器。第i组主机只向对应的第i组存储块中写入数据,非第i组的其他主机组可以并行通过存储块的双端口,直接读取第i组存储块的数据。这样通过划分存储区域和并行直接读取,实现了各组主机之间的数据交换。每组主机都有独立的存储块,可以并行直接访问其他组存储块中的数据,避免了传统Cache结构中的命中率低和一致性问题,大大提高了不同主机组之间的数据交换效率;存储块采用双端口存储器组成,支持多个主机同时访问,实现高带宽的数据交换;主机只需要访问指定存储块,无需考虑Cache一致性等问题,简化编程模型,降低编程难度;可扩展性强,支持扩展主机组和存储块数量,灵活适应不同规模的SOC芯片。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换方法,每一组主机包括两个主机,每一组存储块包括两个存储块。
可以理解,SOC芯片上可以设置N组主机,每组主机包括2个主机,共享存储池被划分为N组存储块,每组存储块包括两个存储块,每个存储块包括至少两个双端口存储器,根据主机的总个数和每组主机的个数确定每个存储块中包括的双端口存储器的个数。
例如,如上述表1所示,可以实现“二写四读”的工作方式。
再例如,SOC芯片上设置有四组主机,每组主机包括两个主机,第一组主机:HOST-1和HOST-2,第二组主机:HOST-3和HOST-4,第三组主机:HOST-5和HOST-6,第四组主机:HOST-7和HOST-8;设置有四组存储块,每组存储块包括两个存储块,第一组存储块:S1和S2,第二组存储块:S3和S4,第三组存储块:S5和S6,第四组存储块:S7和S8。每个存储块有三个双端口存储器(可以分别记为S1_1,S1_2,S1_3;S2_1,S2_2,S2_3;S3_1,S3_2,S3_3;S4_1,S4_2,S4_3;S5_1,S5_2,S5_3;S6_1,S6_2,S6_3;S7_1,S7_2,S7_3;S8_1,S8_2,S8_3),则每个存储块上有6个端口,可以实现“二写六读”的工作方式,存储块划分及主机分配参见如下表2:
表2
上述基于SOC芯片的共享存储池的数据交换方法中,使用两个主机写入两个存储块,可以实现两路写入,同时使用多个主机读取,可以实现高带宽的多路读出,比如实现2写4读或2写6读等模式,大大提高了并发访问能力;两个主机冗余写入两个存储块,如果一个主机或存储块故障,还有另一个可以继续工作,提高了冗余性和可靠性;按组添加主机和存储块,系统可以灵活地扩展,按需支持更高的并发访问;一个主机独占一块存储资源不充分利用存储空间,太多主机共享一块存储会争用资源,二主二备可以平衡利用存储资源。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换方法,当存储块的仲裁器接收到大于等于两个主机的写入请求或混合请求时,按照预设的优先级进行仲裁,获得各主机的访问授权顺序;每一个存储块对应设置有一个仲裁器,混合请求表示既有读取请求又有写入请求。
可以理解,每个存储块对应设置一个仲裁器,当仲裁器收到两个或多个主机的写入请求或混合请求时(混合请求是既有读也有写),仲裁器根据预设的优先级进行仲裁,决定各主机的访问顺序。实现方式可以是依据应用的重要性设置优先级,有可以是依据主机编号进行设置,优先级高的主机获得较早的访问时间段。还可以是仲裁器根据时间片轮转的方式授权每个主机的访问时间段,主机只在获得访问授权的时间段内访问存储块,过期后需要重新仲裁。仲裁器可以采用硬件电路或者集成在存储块控制器中的算法来实现,优先级和时间片参数可以配置。
上述基于SOC芯片的共享存储池的数据交换方法中,仲裁机制可以防止多个主机同时访问存储块导致的冲突,提高了系统的稳定性;通过仲裁授权,可以使多个主机合理有序地利用存储块,避免资源闲置,提高存储利用效率;可以根据实际需要配置主机的优先级,保证重要任务的主机获得更快的响应时间;仲裁机制支持主机数量的灵活扩展,而不需要重新设计就可以适应更多主机。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换方法,获得各主机的访问授权顺序之后,还包括步骤:
仲裁器向对应的各主机发送访问授权。
可以理解,仲裁器根据优先级对请求访问存储块的多个主机进行仲裁,决定各主机的访问顺序,仲裁器向获授访问权的主机发送访问授权信号,访问授权信号可以通过专用的控制总线发送,也可以直接编写到主机可访问的共享存储区。
当访问授权为读取授权时,对应的存储块将获得读取授权的数据写入对应的主机的读缓冲器;每一个主机对应设置有一个读缓冲器。主机从对应的读缓冲器中读取获得读取授权的数据。
可以理解,每个主机对应设置一个读缓冲器,用于暂存从存储块读取的数据,仲裁器根据仲裁结果,向主机发送读取授权,并通知存储块将要读取的数据,存储块接收到读取指令后,将对应的数据从存储阵列读出,发送至主机的读缓冲器中,主机中的读缓冲器接收到数据后,主机可以读取缓冲器中的数据进行处理。读缓冲器既可以由专门的硬件电路实现,也可以利用主机内存空间通过软件实现,读缓冲器的大小可以根据实际需要配置,以平衡速度和成本。数据传输可以通过高速总线或网络实现。
上述基于SOC芯片的共享存储池的数据交换方法中,使用读缓冲器可以避免主机每次读取都需要直接访问存储块,提高了读取速度,从而提高数据交换的效率;减少了主机对存储块的直接访问次数,降低了存储块的访问压力,提高系统性能;多个主机之间通过各自的读缓冲器并行读取数据,扩大了系统的并行访问能力,从而提高数据交换的效率;主机之间通过读缓冲器访问降低了对共享存储块的争夺,减少了访问冲突。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换方法,当访问授权为写入授权时,对应的主机将获得写入授权的数据写入对应的写缓冲器;每一个主机对应设置有一个写缓冲器。对应的写缓冲器将获得写入授权的数据写入对应的存储块。
可以理解,每个主机对应设置一个写缓冲器,用于暂存需要写入存储块的数据,仲裁器根据仲裁结果,向主机发送写入授权。主机接收到写入授权后,将需要写入存储块的数据加载到本地的写缓冲器中。写缓冲器可以由硬件电路实现,也可以通过主机内存空间配合软件实现。写缓冲器将缓存数据组装成存储块可以识别的格式。在写入周期结束时,写缓冲器通过存储块提供的写接口将数据写入存储块中指定的位置,写操作完成后,写缓冲器将结果返回给主机写缓冲器的大小可以根据实际需要配置,数据传输可以通过高速总线或网络实现。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换方法,双口存储器为双端口SRAM。
可以理解,双端口SRAM意味着SRAM存储器拥有两个独立的读写接口或端口,这两个接口可以同时连接两个外部处理设备,实现对SRAM的并发访问。双端口SRAM的并发访问特性支持该方案中主机的并行读取。
上述基于SOC芯片的共享存储池的数据交换方法中,提高了存储器的并发访问能力,增强了主机间并行数据交换的性能,大大提高了数据交换的效率;相比多端口SRAM更简单,成本也更低;速度快相比DRAM,SRAM无需刷新,读取速度很快,写入速度也比较快,更适合做高速缓存和共享存储。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种基于SOC芯片的共享存储池的数据交换装置200,包括主机模块22和共享存储池模块24;
主机模块22的第i组主机用于向共享存储池模块24的第i组存储块写入数据;SOC芯片上设置有主机模块22,主机模块22包括N组主机,N≥2,共享存储池模块24包括N组存储块,每一组存储块的每一个存储块包括至少两个双端口存储器,i为整数,1≤i≤N;
主机模块22的非第i组主机通过对应的端口并行读取第i组存储块的数据;非第i组主机表示除第i组主机之外的其余各组主机。
上述基于SOC芯片的共享存储池的数据交换装置200,SOC芯片上设置有N组主机,共享存储池被划分为N组存储块,每组存储块中包含至少两个双端口存储器。第i组主机只向对应的第i组存储块中写入数据,非第i组的其他主机组可以并行通过存储块的双端口,直接读取第i组存储块的数据。这样通过划分存储区域和并行直接读取,实现了各组主机之间的数据交换。每组主机都有独立的存储块,可以并行直接访问其他组存储块中的数据,避免了传统Cache结构中的命中率低和一致性问题,大大提高了不同主机组之间的数据交换效率;存储块采用双端口存储器组成,支持多个主机同时访问,实现高带宽的数据交换;主机只需要访问指定存储块,无需考虑Cache一致性等问题,简化编程模型,降低编程难度;可扩展性强,支持扩展主机组和存储块数量,灵活适应不同规模的SOC芯片。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换装置200,每一组主机包括两个主机,每一组存储块包括两个存储块。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换装置200,共享存储池模块24包括:仲裁器子模块;当仲裁子模块的仲裁器接收到大于等于两个主机的写入请求或混合请求时,按照预设的优先级进行仲裁,获得各主机的访问授权顺序;每一个存储块对应设置有一个仲裁器,混合请求表示既有读取请求又有写入请求。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换装置200,仲裁子模块的各仲裁器,用于向对应的各主机发送访问授权;共享存储池模块24的各存储块,用于当访问授权为读取授权时,将获得读取授权的数据写入对应的主机的读缓冲器;每一个主机对应设置有一个读缓冲器;主机模块22的各主机,用于从对应的读缓冲器中读取获得读取授权的数据。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换装置200,主机模块22的各所述主机,用于当访问授权为写入授权时,将获得写入授权的数据写入对应的写缓冲器;每一个主机对应设置有一个写缓冲器;主机模块22对应的各写缓冲器将获得写入授权的数据写入对应的存储块。
在一个实施例中,上述基于SOC芯片的共享存储池的数据交换装置200,双口存储器为双端口SRAM。
关于基于SOC芯片的共享存储池的数据交换装置200的具体限定可以参见上文中对于基于SOC芯片的共享存储池的数据交换方法的限定,在此不再赘述。上述基于SOC芯片的共享存储池的数据交换装置200中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于SOC芯片的共享存储池的数据交换方法,其特征在于,包括步骤:
第i组主机向共享存储池的第i组存储块写入数据;SOC芯片上设置有N组所述主机,N≥2,所述共享存储池包括N组所述存储块,每一组所述存储块的每一个所述存储块包括至少两个双端口存储器,i为整数,1≤i≤N;
非第i组主机通过对应的所述端口并行读取所述第i组存储块的数据;所述非第i组主机表示除所述第i组主机之外的其余各组所述主机。
2.根据权利要求1所述的基于SOC芯片的共享存储池的数据交换方法,其特征在于,每一组所述主机包括两个所述主机,每一组所述存储块包括两个所述存储块。
3.根据权利要求1所述的基于SOC芯片的共享存储池的数据交换方法,其特征在于,当所述存储块的仲裁器接收到大于等于两个所述主机的写入请求或混合请求时,按照预设的优先级进行仲裁,获得各所述主机的访问授权顺序;每一个所述存储块对应设置有一个所述仲裁器,所述混合请求表示既有读取请求又有所述写入请求。
4.根据权利要求3所述的基于SOC芯片的共享存储池的数据交换方法,其特征在于,获得各所述主机的访问授权顺序之后,还包括步骤:
所述仲裁器向对应的各所述主机发送所述访问授权;
当所述访问授权为读取授权时,对应的所述存储块将获得所述读取授权的数据写入对应的所述主机的读缓冲器;每一个所述主机对应设置有一个所述读缓冲器;
所述主机从对应的所述读缓冲器中读取获得所述读取授权的数据。
5.根据权利要求4所述的基于SOC芯片的共享存储池的数据交换方法,其特征在于,
当所述访问授权为写入授权时,对应的所述主机将获得所述写入授权的数据写入对应的写缓冲器;每一个所述主机对应设置有一个所述写缓冲器;
对应的所述写缓冲器将获得所述写入授权的数据写入对应的所述存储块。
6.根据权利要求1所述的基于SOC芯片的共享存储池的数据交换方法,其特征在于,所述双口存储器为双端口SRAM。
7.一种基于SOC芯片的共享存储池的数据交换装置,其特征在于,包括:主机模块和共享存储池模块;
所述主机模块的第i组主机用于向所述共享存储池模块的第i组存储块写入数据;SOC芯片上设置有所述主机模块,所述主机模块包括N组所述主机,N≥2,所述共享存储池模块包括N组所述存储块,每一组所述存储块的每一个所述存储块包括至少两个双端口存储器,i为整数,1≤i≤N;
所述主机模块的非第i组主机通过对应的所述端口并行读取所述第i组存储块的数据;所述非第i组主机表示除所述第i组主机之外的其余各组所述主机。
8.根据权利要求7所述的基于SOC芯片的共享存储池的数据交换装置,其特征在于,每一组所述主机包括两个所述主机,每一组所述存储块包括两个所述存储块。
9.根据权利要求7所述的基于SOC芯片的共享存储池的数据交换装置,其特征在于,所述共享存储池模块包括:仲裁器子模块;
当所述仲裁子模块的仲裁器接收到大于等于两个所述主机的写入请求或混合请求时,按照预设的优先级进行仲裁,获得各所述主机的访问授权顺序;每一个所述存储块对应设置有一个所述仲裁器,所述混合请求表示既有读取请求又有所述写入请求。
10.根据权利要求9所述的基于SOC芯片的共享存储池的数据交换装置,其特征在于,包括:
所述仲裁子模块的各所述仲裁器,用于向对应的各所述主机发送所述访问授权;
所述共享存储池模块的各所述存储块,用于当所述访问授权为读取授权时,将获得所述读取授权的数据写入对应的所述主机的读缓冲器;每一个所述主机对应设置有一个所述读缓冲器;
所述主机模块的各所述主机,用于从对应的所述读缓冲器中读取获得所述读取授权的数据。
CN202311506951.1A 2023-11-13 2023-11-13 基于soc芯片的共享存储池的数据交换方法及装置 Pending CN117389767A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311506951.1A CN117389767A (zh) 2023-11-13 2023-11-13 基于soc芯片的共享存储池的数据交换方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311506951.1A CN117389767A (zh) 2023-11-13 2023-11-13 基于soc芯片的共享存储池的数据交换方法及装置

Publications (1)

Publication Number Publication Date
CN117389767A true CN117389767A (zh) 2024-01-12

Family

ID=89470095

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311506951.1A Pending CN117389767A (zh) 2023-11-13 2023-11-13 基于soc芯片的共享存储池的数据交换方法及装置

Country Status (1)

Country Link
CN (1) CN117389767A (zh)

Similar Documents

Publication Publication Date Title
US4616310A (en) Communicating random access memory
JP4737438B2 (ja) 複数の処理ユニットでリソースを共有する情報処理装置
JP2019521448A (ja) ストリーク及び読出し/書込みトランザクション管理を有するメモリコントローラアービタ
JP2016520233A (ja) メモリシステム、メモリアクセス要求を処理するための方法、およびコンピュータシステム
US7836221B2 (en) Direct memory access system and method
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US11748034B2 (en) Signalling for heterogeneous memory systems
US20210286551A1 (en) Data access ordering for writing-to or reading-from memory devices
US9390017B2 (en) Write and read collision avoidance in single port memory devices
KR101103619B1 (ko) 멀티 포트 메모리 및 그 억세스 제어 방법
US20020108021A1 (en) High performance cache and method for operating same
KR100676982B1 (ko) 데이터 처리 장치 및 방법과 컴퓨터 판독 가능 저장 매체
US20030229721A1 (en) Address virtualization of a multi-partitionable machine
CN109271333B (zh) 一种sram控制方法及控制器、控制系统
CN117389767A (zh) 基于soc芯片的共享存储池的数据交换方法及装置
US11379388B1 (en) Credit scheme for multi-queue memory controllers
US20230376427A1 (en) Memory system and computing system including the same
CN113778335B (zh) 一种ssd主控中多端口低延迟访问的sram群组的控制方法
JPH05151769A (ja) マルチポートメモリ
US20220405214A1 (en) Memory controller with hybrid dram/persistent memory channel arbitration
CN116684363A (zh) 芯片的并行通信系统
CN117075795A (zh) 存储器系统以及包括其的计算系统
JPH0916469A (ja) 同期式dramからなるメモリに適したアドレス割り付けとアドレスロック機能を有するプロセッサシステム
JPH09223120A (ja) マルチプロセッサシステム
JPH08115251A (ja) コンピュータ・システム

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