CN115629718B - 用于片上系统的存储结构及其管理方法、装置和机器可读存储介质 - Google Patents
用于片上系统的存储结构及其管理方法、装置和机器可读存储介质 Download PDFInfo
- Publication number
- CN115629718B CN115629718B CN202211569165.1A CN202211569165A CN115629718B CN 115629718 B CN115629718 B CN 115629718B CN 202211569165 A CN202211569165 A CN 202211569165A CN 115629718 B CN115629718 B CN 115629718B
- Authority
- CN
- China
- Prior art keywords
- chip memory
- data
- chip
- memory
- data queue
- 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
- 238000007726 management method Methods 0.000 title claims description 65
- 238000000034 method Methods 0.000 claims abstract description 25
- 238000012546 transfer Methods 0.000 claims abstract description 22
- 238000013500 data storage Methods 0.000 claims description 2
- 230000008901 benefit Effects 0.000 abstract description 6
- 230000005012 migration Effects 0.000 description 40
- 238000013508 migration Methods 0.000 description 40
- 238000012545 processing Methods 0.000 description 27
- 238000011144 upstream manufacturing Methods 0.000 description 11
- 238000013461 design Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 239000004744 fabric Substances 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000005574 cross-species transmission Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
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/0629—Configuration or reconfiguration of storage systems
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开涉及用于片上系统的存储结构及其管理方法、装置和机器可读存储介质。用于片上系统的存储结构包括第一片内内存、第二片内内存和片外内存,其中第一片内内存、第二片内内存和片外内存的存储优先级依次降低;并且其中,对于待进入所述存储结构的数据队列,第二片内内存为数据队列进入该存储结构的中转内存,使得待存储数据不直接溢出到片外内存而是入队到第二片内内存。根据本公开的用于片上系统的存储结构使得能够同时利用片内内存和片外内存,均衡二者的优缺点,提供高效的内存管理,并提高片上系统的总体性能。
Description
技术领域
本公开涉及片上系统的领域,并且更具体地涉及用于片上系统的存储结构及其管理方法、装置和机器可读存储介质。
背景技术
片上系统也称为系统级芯片,英文术语为System-On-Chip或SoC,是指在单个集成电路(芯片)上集成整个系统。用于片上系统的存储结构通常包括位于片上(on-chip)的片内存储部分(后文也称为片内内存)和位于片外(off-chip)的片外存储部分(后文也称为片外内存)。要注意的是,本公开使用的术语“用于片上系统的存储结构”不意味着该结构中所包括的存储电路都必然位于该片上系统中或上,而是指这些存储电路都可供该片上系统利用以进行数据存储。片内内存可以是RAM(随机存取存储器),例如SRAM(静态随机存取存储器),其优点在于读写速度快,缺点在于占据片上系统的片内面积。与此相对,片外内存可以是DDR(双倍数据速率存储器),其无需占据片内面积,但是从片外内存的数据读写需要占用总线带宽且具有一定的访问延迟。
因此,需要用于片上系统的新的存储结构以及相关管理方法,使得能够同时利用片内内存和片外内存,均衡如上所述的片内内存和片外内存的优缺点,提供高效的内存管理,并提高片上系统的总体性能。
发明内容
为此,根据本公开的第一方面,提出了一种用于片上系统的存储结构,所述存储结构包括:第一片内内存;第二片内内存;以及片外内存;其中,第一片内内存、第二片内内存和所述片外内存的存储优先级依次降低,并且其中,对于待进入所述存储结构的数据队列,第二片内内存为数据队列进入所述存储结构的中转内存,使得待存储数据不直接溢出到所述片外内存而是入队到第二片内内存。
因此,根据本公开,通过在片上系统中设置一块片内内存作为入队中转站,片上系统的存储结构的上下游电路都直接与片内内存对接,而没有对片外内存的直接访问,从而实现了片内片外数据访问的解耦。
在一个实施例中,第二片内内存为数据队列进入所述存储结构的中转内存包括:在第一片内内存未满的情况下,响应于第二片内内存和所述片外内存中没有所述数据队列中的数据,待存储数据入队到第一片内内存。
在一个实施例中,第二片内内存为数据队列进入所述存储结构的中转内存包括:在第一片内内存未满的情况下,响应于所述片外内存中已存储有所述数据队列中的数据,待存储数据入队到第二片内内存。
在一个实施例中,第二片内内存为数据队列进入所述存储结构的中转内存包括:在第一片内内存已满的情况下,待存储数据入队到第二片内内存。
因此,根据上述实施例,基于各内存中的针对特定数据队列的具体情况来确定是入队到第一片内内存还是第二片内内存,从而保证数据的保序入队。
在一个实施例中,对于待离开所述存储结构的数据队列,第一片内内存为数据队列离开所述存储结构的中转内存,使得存储在第二片内内存和/或所述片外内存中的所述数据队列中的数据按序搬移或回读到第一片内内存中进行出队,以实现针对所述数据队列的保序出队。因此,根据该实施例,通过利用片内片外的解耦的数据迁移而使上游电路到存储电路的入队以及存储电路到下游电路的出队也彼此独立地进行,从而实现了入队和出队操作的解耦,并且实现了保序出队。
在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存。
在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:在第一片内内存已满的情况下,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。
在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:响应于所述片外内存中已存储有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。
在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:响应于第一片内内存未满且所述片外内存中没有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序搬移到第一片内内存。
因此,根据上述实施例,基于各内存中的针对特定数据队列的具体情况来确定是数据在各内存中的迁移,从而保证数据队列在存储结构内的有序性。
在一个实施例中,所述片上系统还包括处理电路模块,并且所述处理电路模块不能直接访问所述片外内存。因此,根据该实施例,该片上系统不提供处理电路对片外内存的直接访问,从而进一步实现片内片外数据访问的解耦。
在一个实施例中,所述片上系统还包括内存管理电路,以实现对所述存储结构的内存管理。因此,根据该实施例,通过内存管理电路来实现对所述存储结构的管理。优选地,所述内存管理电路可以以硬件、软件和/或其组合来实现。优选地,通过对所述内存管理电路的编程或再编程来调整针对所述存储结构的管理方式,均衡片内内存和片外内存的使用,以提高所述存储结构的灵活度。仍优选地,通过以硬件方式设置所述片内内存的高位水线(water mark)和/或低位水线来设置针对所述存储结构的管理参数,从而降低片上系统设计中的硬件布线复杂度,同时降低软件设计复杂度。
在本公开的第二方面中,提出了一种针对用于片上系统的存储结构的管理方法,其适用于如前所述的用于片上系统的存储结构,所述存储结构包括第一片内内存、第二片内内存和片外内存,并且第一片内内存、第二片内内存以及所述片外内存的存储优先级依次降低。所述管理方法包括:对于待进入所述存储结构的数据队列,第二片内内存为数据队列进入所述存储结构的中转内存,使得待存储数据不直接溢出到所述片外内存而是入队到第二片内内存。所述管理方法还可以包括:对于待离开所述存储结构的数据队列,第一片内内存为数据队列离开所述存储结构的中转内存,使得存储在第二片内内存和/或所述片外内存中的所述数据队列中的数据按序搬移或回读到第一片内内存中进行出队,以实现针对所述数据队列的保序出队。所述管理方法还可以包括:存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存。
因此,根据本公开,通过在片上系统中设置一块片内内存作为入队中转站,片上系统的存储结构的上下游电路都直接与片内内存对接,而没有对片外内存的直接访问,从而实现了片内片外数据访问的解耦。另一方面,根据本公开,通过利用片内片外的解耦的数据迁移而使上游电路到存储电路的入队以及存储电路到下游电路的出队也彼此独立地进行,从而实现了入队和出队操作的解耦,并且实现了保序出队。
在一个实施例中,第二片内内存为数据队列进入所述存储结构的中转内存包括:在第一片内内存未满的情况下,响应于第二片内内存和所述片外内存中没有所述数据队列中的数据,待存储数据入队到第一片内内存。在一个实施例中,第二片内内存为数据队列进入所述存储结构的中转内存包括:在第一片内内存未满的情况下,响应于所述片外内存中已存储有所述数据队列中的数据,待存储数据入队到第二片内内存。在一个实施例中,第二片内内存为数据队列进入所述存储结构的中转内存包括:在第一片内内存已满的情况下,待存储数据入队到第二片内内存。因此,根据上述实施例,根据本公开的管理方法基于各内存中的针对特定数据队列的具体情况来确定是入队到第一片内内存还是第二片内内存,从而保证数据的保序入队。
在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:在第一片内内存已满的情况下,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:响应于所述片外内存中已存储有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。在一个实施例中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:响应于第一片内内存未满且所述片外内存中没有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序搬移到第一片内内存。因此,根据上述实施例,根据本公开的管理方法基于各内存中的针对特定数据队列的具体情况来确定是数据在各内存中的迁移,从而保证数据的有序性。
此外,根据本公开的管理方法也可以从软件和/或逻辑的角度来描述。
在一个实施例中,当针对一队列的数据到达所述存储结构时,所述管理方法包括:执行第一判定和/或第二判定,在第一判定中确定第一片内内存是否已满,并且在第二判定中确定第二片内内存和所述片外内存中是否存储有所述队列;以及基于第一判定和/或第二判定的结果来决定将到达的数据入队到第一片内内存还是第二片内内存。因此,根据该实施例,通过两个简单判定即可保证数据的保序入队。
在一个实施例中,先执行第一判定:如果第一片内内存已满,则无需执行第二判定,并将到达的数据入队到第二片内内存;否则,如果第一片内内存未满,则执行第二判定:如果第二片内内存和所述片外内存中存储有所述队列,则将到达的数据入队到第二片内内存,否则将到达的数据入队到第一片内内存。在另一实施例中,并行地执行第一判定和第二判定,并基于第一判定和第二判定的结果来综合决定将到达的数据入队到第一片内内存还是第二片内内存。因此,根据这两个实施例,可以顺序和/或并行地执行这两个判定,以保证数据的保序入队。
在一个实施例中,当要对当前存储于第二片内内存中的一队列的数据进行迁移时,所述管理方法包括:执行第三判定和/或执行第四判定,在执行第三判定中确定所述队列是否有数据存储在所述片外内存中,并且在第四判定中确定第一片内内存是否已满;以及基于第三判定和/或第四判定的结果来决定将要迁移的数据搬移到第一片内内存中还是溢出到所述片外内存中。因此,根据该实施例,通过两个简单判定即可保证数据的保序迁移。
在一个实施例中,先执行第三判定:如果所述队列有数据存储在所述片外内存中,则无需执行第四判定,并将要迁移的数据溢出到所述片外内存中;否则,如果所述队列没有数据存储在所述片外内存中,则执行第四判定:如果第一片内内存已满,则将要迁移的数据溢出到所述片外内存中,否则将要迁移的数据搬移到第一片内内存中。
另外,根据本公开的存储结构管理方法的溢出或搬移操作的频率是根据性能需求设定或适应性地改变的。
在一个实施例中,根据性能需求设定每固定时钟拍数进行一次溢出与搬移操作和/或回读操作,并且溢出与搬移操作和回读操作的执行频率可以相同或不同。因此,根据该实施例,可以根据片上系统的具体情况设置数据迁移操作的操作频率。
在一个实施例中,以固定的周期轮询第二片内内存中的队列,并且一旦某个队列在第二片内内存中的存储达到了高位水线则执行针对该队列的搬移或溢出操作。根据该实施例,通过设置高位水线来设定第二片内内存中的数据的搬移或溢出操作的触发条件。
在一个实施例中,所述管理方法是以硬件电路实现的。根据该实施例,如上所述,硬件实施方式使得能够降低片上系统设计中的硬件布线复杂度,同时降低软件设计复杂度。
本公开的其他方面还包括用于实现上述方法的装置和机器可读存储介质。
要注意的是,在本公开的不同方面中描述的一个或多个特征可与在其他方面中描述的一个或多个特征相结合以形成本公开的实施例。因此,上面描述的实施例并非是穷举性的。
附图说明
通过阅读下面的详细描述并研究附图,其他特征、细节和优点将变得显而易见,其中:
图1示意性地示出了根据本公开的用于片上系统的存储结构;
图2示意性地示出了根据本公开的针对图1所示的存储结构的管理方法;
图3示出了根据本公开的存储管理方法的一个示例入队逻辑流程;
图4示出了根据本公开的存储管理方法的一个示例数据迁移逻辑流程。
在这些图中,用相同的附图标记表示相同的元件。
具体实施方式
如上所述,片上系统也称为系统级芯片或SoC,是指在单个集成电路(芯片)上集成整个系统。从功能角度来说,片上系统可以被提供有处理电路、存储电路以及其他外围电路。近年来,随着片上系统的规模越来越大、集成度越来越高、功能越来越复杂,片上系统的整体性能越来越多地受限于片上系统中的各处理电路在其存储电路中存取数据的性能。
用于片上系统的存储结构通常包括位于片上的片内内存和位于片外的片外内存。片内内存可以是RAM,例如SRAM,其优点在于读写速度快,缺点在于占据片上系统的片内面积。与此相对,片外内存可以是DDR等,其显然无需占据片内面积,但是从片外内存的数据读写需要占用总线带宽且具有一定的访问延迟。因此,用于片上系统的存储结构可以仅采用片内内存、仅采用片外内存、或者同时采用片内内存。
同时采用片内内存和片外内存的用于片上系统的存储结构显然能够均衡二者的优缺点,寻求最佳的数据存取性能。然而,目前的同时采用片内内存和片外内存的存储结构尚存在一些问题。
首先,单个内存访问队列一般具有顺序约束,因此需要针对单个队列保证出队顺序与初始入队顺序相同,亦即保序访问。如本文使用的,“数据队列”、“入队操作”、“出队操作”等都受到顺序约束。而在同时采用片内内存和片外内存的存储结构中,需要保证针对单个队列的片内内存和片外内存二者的综合出队顺序与初始入队顺序相同,增加了存储结构管理方法的设计复杂度。此外,由于片上系统中的各处理电路对片内内存和片外内存的访问速度和延迟等并不相同,如上所述,也就导致针对片内内存的入队和出队速度与针对片外内存的入队和出队速度也不相同,因此进一步增加了同时采用片内内存和片外内存的存储结构的管理方法的设计复杂度。
另一方面,从访问效率的角度,由于对片外内存的访问相比于片内内存效率更低,因此片上系统中的各处理电路对片外内存的直接访问,无论是入队还是出队,都会直接降低片上系统的处理效率,继而影响片上系统的总体性能。
正是基于上述各种情况而提出了本公开的技术方案。
接下来参考附图来描述本公开的具体实施例。为了简便且仅用作例示,通过主要参考本公开的示例来描述本公开。在下面的描述中,阐述了许多具体细节,以便提供对本公开的透彻理解。然而,显而易见的是,可以在不限于这些具体细节的情况下实践本公开。在其他情况下,没有详细描述某些方法和结构,以免不必要地模糊本公开。
此外,应理解的是,附图中描绘的元件可以包括附加组件,并且可以在不脱离本文公开的元件的范围的情况下移除和/或修改那些图中描述的组件中的一些。
图1示意性地示出了根据本公开的用于片上系统100的存储结构。片上系统100可以例如是CPU、GPU、GPGPU、APU、嵌入式系统、专用系统级芯片(例如,汽车系统级芯片、民航系统级芯片)等等,或者可以构成它们的一部分。如本领域技术人员可容易领会的,片上系统100可以被提供有各种处理电路、存储电路以及其他外围电路。片上系统100可以包括任何数量的硬接线或可配置电路,其中的一些或全部可以包括电子组件、半导体器件和/或逻辑元件的可编程和/或可配置组合,这些电子组件、半导体器件和/或逻辑元件部分或全部设置在个人计算机(PC)、服务器、移动电话、平板计算机或能够执行处理器可读指令的其他计算系统中。但是未免不必要地模糊本公开的构思,图1中仅示出了片上系统100中与本公开相关的部分,并且本领域技术人员可以按需向片上系统100添加其他各种功能模块、组件和/或布线。
如图所示,片上系统100尤其可以包括处理电路,即具有处理功能的电路模块。片上系统100通常包括不止一个处理电路模块,但是为了简化描述和图示,图1中仅示出了处理电路模块101。在具体的片上系统中,处理电路模块可以按照功能需求体现为例如处理器、微处理器、图形引擎、AI引擎、各种IP(知识产权)核等等,如本领域技术人员公知的那样。
此外,片上系统100尤其可以被提供有具有存储功能的电路,也可称为用于片上系统100的存储结构。根据本公开,用于片上系统100的存储结构包括:位于片上(片内)的第一片内内存102和第二片内内存103和位于片外的片外内存104。也就是说,根据本公开的用于片上系统100的存储结构是同时采用了片内内存(即第一片内内存102和第二片内内存103)和片外内存(即片外内存104)的结构。第一片内内存102和第二片内内存103可以采用RAM的形式,例如SRAM,并且片外内存104可以采用DDR的形式。
为了突出体现本公开的技术方案,图1中将第一片内内存102和第二片内内存103绘制为了两个单独的块。然而,第一片内内存102和第二片内内存103也可以是同一存储电路模块的两个不同的分区或内存组。也就是说,第一片内内存102和第二片内内存103之间可以具有明确的物理/实体界限,例如在硬件上体现为两个不同的内存块,也可以没有明确的物理/实体界限,例如通过软件编程而成为具有不同功能/行为的同一块内存的两个部分。换言之,根据本公开的用于片上系统的存储结构可以纯粹实现为硬件结构、纯粹实现为软件结构、或者实现为硬件和软件的组合。
此外,第一片内内存102和第二片内内存103可以彼此相同(例如,同种或同构)或彼此不同(例如,异种或异构)。第一片内内存102和第二片内内存103可以实施为目前已知或未来开发的任何种类的片内内存,而不影响本公开的实施。类似地,片外内存104可以实施为目前已知或未来开发的任何种类的片外内存,而不影响本公开的实施。
此外,根据本公开,用于片上系统100的存储结构的管理方法可以以硬件实施、以软件实施、以固件实施、或者其组合。在一个实施例中,用于片上系统100的存储结构的管理可以以硬件方式进行,例如通过在制造时设置水线。在另一实施例中,用于片上系统100的存储结构的管理可以以软件和/或软件和硬件的组合的方式进行,例如通过在片上系统100中包括用于内存管理的可编程电路。为此,用于片上系统100的存储结构可以可选地包括用于管理该存储结构的内存管理电路105。内存管理电路105在图1中以虚线框示出,以表示其是可选的,而非必需的。在一个实施例中,内存管理电路105可以包括一个或多个可配置或可编程元件,如一个或多个可配置集成电路,可对其进行编程以便能够以特定方式对其进行配置,以使其实现内存管理功能。另外,图1中将内存管理电路105绘制在了第一片内内存102和第二片内内存103外部,作为一个独立的电路模块。然而,这仅仅是为了图示和描述方便。实际上,内存管理电路105可以整体或部分地实施在第一片内内存102中、整体或部分地实施在第二片内内存103中、和/或整体或部分地实施在第一片内内存102和第二片内内存103之外,均不影响本公开的实施。
此外,片上系统100还可以包括各电路模块之间的连接线路。为了简化描述和图示,图1中仅示出了与本公开提出的技术方案有关的部分线路。具体地,片上系统100可以包括例如用于片上系统100内部的通信的直连线106(例如,硬接线)以及用于片上系统100内外之间的通信的总线107。例如,在图1中,直连线106连接了处理电路模块101、第一片内内存102和第二片内内存103,以实现它们之间的各种数据和/或指令和/或信号传输。除了其他传输内容之外,直连线106尤其可以用于传输处理电路模块101向第一片内内存102和/或第二片内内存103的数据写入,以及处理电路模块101从第一片内内存102和/或第二片内内存103的数据读取,也就是用于各处理电路对各存储电路的访问。此外,第一片内内存102与第二片内内存103之间的连线也可以是直连线或硬接线。另外,例如,在图1中,总线107连接了第二片内内存103和片外内存104、以及第一片内内存102和片外内存104。直连线106和总线107可以是目前已知或未来开发的任何种类的直连线或总线,并且可以采用目前已知或未来开发的各种串行或并行通信协议,而不影响本公开的实施。
接下来描述根据本公开的针对图1所示的存储结构的管理方法,如图2所示。如上所述,该管理方法可以通过硬件实施(例如,在片上系统100制造时通过硬件设计而实现)、通过软件实施(例如,通过图1所示的内存管理电路105而实现)或者通过硬件和软件的组合而实施。
首先,根据本公开,为该存储结构的第一片内内存102、第二片内内存103和片外内存104设定存储优先级,即第一片内内存102优先于第二片内内存103优先于片外内存104,并且在本公开提出的技术方案框架内不提供处理电路对片外内存104的直接访问。因此,根据本公开,来自上游电路(例如,包括处理电路模块101的各种处理电路)的数据遵循该存储优先级而入队,即在第一片内内存102未满时优先进入第一片内内存102(201),仅在第一片内内存102已满时才进入第二片内内存103(202),并且没有数据从片上系统内的上游电路直接进入片外内存104。要注意的是,“在本公开提出的技术方案框架内不提供处理电路对片外内存104的直接访问”的意思是在根据本公开的存储管理方法中不存在处理电路对片外内存104的直接访问,以保证根据本存储管理方法实施的入队操作都仅在片内进行。然而,这不代表在整个片上系统100上都不存在处理电路对片外内存104的直接访问。换言之,片上系统100可以根据具体设计需求针对不同的功能块采用不同的存储管理方法。
其次,根据本公开,仅第一片内内存102实施数据出队(205),即向下游电路(例如,处理电路或片上系统100内/外的其他电路)输出数据。也就是说,根据本公开的管理方法不提供从片外内存向下游电路的直接出队/数据输出,也不提供第二片内内存103向下游电路的直接出队/数据输出,而是以第一片内内存102作为出队中转站完成全部出队操作。
最后,根据本公开,入队(201和202)以及出队(205)遵循单队列保序访问原则。
因此,按照根据本公开的管理方法,到达片上系统100的存储电路的特定队列的数据可经历以下各情况:
1)第一片内内存102不满,第二片内内存103和片外内存104均无该队列的存储(例如初始化后的首次数据存入时,存储电路中的数据清空后的首次数据存入时,或者针对该队列的首次数据存入时等等):在这种情况下,该队列中的数据进入第一片内内存102,如箭头201所示;
2)第一片内内存102已满,第二片内内存103和片外内存104无该队列的存储(例如第一片内内存102首次存满时,或者在该队列的数据已全部搬移/回读至了第一片内内存102中时等等):在这种情况下,该队列中的数据进入第二片内内存103,如箭头202所示;
3)第一片内内存102已满,第二片内内存103不满,片外内存104无该队列的存储:在这种情况下,该队列中的数据进入第二片内内存103,如箭头202所示;
4)第一片内内存102已满,第二片内内存103已满,片外内存104无该队列的存储:在这种情况下,由于第一片内内存102和第二片内内存103均已满,因此只能将第二片内内存103的内容按序溢出到片外内存104中进行管理,如箭头204所示,并且该队列中的数据在数据溢出后进入第二片内内存103,如箭头202所示;
5)第一片内内存102已满,第二片内内存103已满或不满,片外内存104有该队列的存储:这种情况必然发生于情况4)之后,也就是已经有该队列的数据溢出到了片外内存104中。此时,无论第一片内内存102中是否有空位,为了实现保序管理,该队列中的数据都要进入第二片内内存103(在第二片内内存103已满的情况下先进行数据搬移或溢出然后再让数据进入),并在适当的时机按序全部溢出到片外内存104中进行管理;
6)第一片内内存102已满,第二片内内存103已满或不满,片外内存104无该队列的存储,此时,第一片内内存102发生数据出队,导致第一片内内存102产生空余空间:在这种情况下,由于片外内存104中没有该队列的存储(因此从未发生过溢出或者溢出数据已全部回读),并且第一片内内存102中腾出了空间,因此将第二片内内存103中的内容按序搬移到第一片内内存102中,如箭头203所示,并且到达的数据入队到第二片内内存103中;以及
7)第一片内内存102已满,第二片内内存103已满或不满,片外内存104有该队列的存储,此时,第一片内内存102发生数据出队,导致第一片内内存102产生空余空间:在这种情况下,应将存储在片外内存104中的该队列中的数据回读到第一片内内存102中,并且类似于情况5,该队列中的后续数据应进入第二片内内存103、溢出到片外内存104并然后回读,如箭头202、204和206所示,以实现队列保序。
也就是说,按照片内内存的存储优先级,在刚初始化后或队列清空后,数据会优先进入第一片内内存102,并且在第一片内内存102存满后进入第二片内内存103。接下来,为了遵循保序原则,一旦第二片内内存103中有了该队列的数据,那么即使第一片内内存102出现了空余空间,该队列的数据也会进入第二片内内存103。类似地,按照片内内存与片外内存的存储优先级,在第二片内内存103存满时数据会溢出到片外内存104。而为了遵循保序原则,只要该队列中的数据曾经溢出到了片外内存104,后面的数据在进入到第二片内内存103后都需要溢出到片外内存104。因此第二片内内存103相当于是片内内存与片外内存之间的数据迁移(即溢出)的中转站。另一方面,第二片内内存103和片外内存104都不发生出队操作,而是在遵循保序原则的情况下在适当的时机将数据搬移到第一片内内存102中(对于第二片内内存103)或回读到第一片内内存102中(对于片外内存104)。也就是说,第一片内内存102是作为出队的中转站。
因此,如上述7种情况阐述的根据本公开的管理方法借助于第二片内内存103作为片内片外数据迁移的中转站而解耦了数据从上游电路到片上系统的存储电路(包括片内内存和片外内存)的入队和数据向片外内存的溢出,使二者彼此独立、互不影响。与此同时,该方法还借助于第一片内内存102作为出队中转站使数据仅从第一片内内存102出队而解耦了存储电路的入队操作和出队操作。而且,由于在第一片内内存102有空余空间的情况下可以从作为中转站的第二片内内存103向第一片内内存102进行搬移,而不是所有数据全部溢出到片外内存104,以此方式提高了片内和片外的内存管理效率。
接下来详细描述根据本公开的管理方法中涉及到的入队操作和数据迁移操作的示例逻辑流程。
图3示出了根据本公开的管理方法的一个示例入队逻辑流程300,该逻辑流程在每次有数据从上游电路到达存储电路时发生。图3的逻辑流程300可以通过硬件电路实现,例如通过在片上系统100的设计制造过程中预先设置水线,或者图3的逻辑流程300可以通过软件来实现,例如通过图1所示的内存管理电路105。
具体地,当一队列中的数据到达时,在步骤301,确定第一片内内存102是否已满。如果第一片内内存102已满(即“是”分支),则转向步骤302;否则,如果第一片内内存102未满(即“否”分支),则转向步骤303。在步骤302,将到达的数据入队到第二片内内存103(即,图2中的202)。换言之,在第一片内内存102已满的情况下,将待存储数据入队到第二片内内存103。在此,如果第二片内内存103已满,则需要将第二片内内存103中的内容按序溢出到片外内存104中(即,图2中的204),然后再将到达的数据存储到第二片内内存103中。实际上,根据后文所述的数据迁移逻辑流程400的设置,可以避免这种情况的发生。即,可以通过对数据迁移逻辑流程400的设置而使第二片内内存103永远不满,如后文所述。在步骤303,确定第二片内内存103和片外内存104中是否存储有所述队列。如果在第二片内内存103和片外内存104中的任何一者或二者中存储有所述队列(即“是”分支),则转向步骤302,即,将到达的数据入队到第二片内内存103。换言之,在第一片内内存102未满的情况下,响应于第二片内内存103和片外内存104中存储有该数据队列中的数据,将待存储数据入队到第二片内内存103。否则,如果第二片内内存103和片外内存104中都没有存储所述队列(即“否”分支),则转向步骤304。在步骤304,将到达的数据存储到第一片内内存102。换言之,在第一片内内存102未满的情况下,响应于第二片内内存103和片外内存104中没有该数据队列中的数据,将待存储数据入队到第一片内内存102。
因此,根据该流程300,基于对第一片内内存102的存储状态的确定(第一判定301)以及对该队列中的先前数据的存储位置的确定(第二判定303),根据本公开的管理方法能够保证数据的保序入队。然而,如本领域技术人员容易想到的,判定301和判定303的先后顺序不必然按照图3的流程300所示的顺序进行。例如,可以颠倒判定301和判定303的先后顺序,使得先确定该队列中的先前数据的存储位置然后再确定第一片内内存102的存储状态,并基于这两个确定的结果来确定应将到达的数据入队到第一片内内存102中还是第二片内内存103中。替代地,可以并行地执行判定301和判定303,使得同时确定该队列中的先前数据的存储位置和第一片内内存102的存储状态,并基于这两个确定的结果来综合确定应将到达的数据入队到第一片内内存102中还是第二片内内存103中。
图4示出了根据本公开的管理方法的针对第二片内内存103的数据迁移逻辑流程400。类似于逻辑流程300,图4的逻辑流程400可以通过硬件电路实现,例如通过在片上系统100的设计制造过程中预先设置水线,或者图4的逻辑流程400可以通过软件来实现,例如通过图1所示的内存管理电路105。
图4所示的数据迁移逻辑流程400共涉及三个操作,即图2所示的第二片内内存103到第一片内内存102的数据搬移203、第二片内内存103到片外内存104的数据溢出204以及片外内存104到第一片内内存102的数据回读206。
根据本公开的这些数据迁移操作可以设定为在任何适当的时间、条件下触发。在一个实施例中,可以根据片上系统100和/或处理电路模块101的性能需求设定每固定时钟拍数进行一次溢出、回读和/或搬移。在一个实施例中,可以以固定的周期轮询各队列,并且一旦某个队列的存储达到了溢出水线(即高位水线)则执行溢出和/或搬移操作。在另一实施例中,可以以固定的周期轮询各队列,并且一旦某一队列有数据存储在片外内存104中且第一片内内存102的空间达到了回读水线(即低位水线),则可以对该队列执行回读操作。在一个实施例中,每次溢出和/或回读操作可以涉及到多笔数据,例如4笔或2笔,从而提高片内片外的通信总线(例如,总线107)的性能。在另一实施例中,每次搬移操作可以仅涉及单笔数据。
此外,还可以例如通过对内存管理电路105进行编程来设定其他的数据迁移触发条件。例如,在一个实施例中,第二片内内存103的数据迁移可以被设置为例如在片上系统100较为空闲时触发,例如在片上系统100的读写需求不密集时。因此,如本领域技术人员可领会的,可以根据实施根据本公开的存储结构的片上系统的具体情况来设置这些数据迁移操作的发生时间、发生频率等等,而不脱离本公开的教导的范围。
在第二片内内存103的数据迁移触发后,实施数据迁移逻辑流程400,如图4所示。具体地,在触发数据迁移后,在步骤401,针对当前存储于第二片内内存103中的队列中的一个队列,确定该队列是否有数据存储在片外内存104中。如果该队列有数据存储在片外内存104中(即“是”分支),则转向步骤402。在步骤402,将该队列中的数据溢出到片外内存104(即,图2中的204)。换言之,响应于片外内存104中已存储有该数据队列中的数据,将存储在第二片内内存103中的该数据队列中的数据按序溢出到片外内存104。否则,如果该队列没有任何数据存储在片外内存104中(即“否”分支),则转向步骤403。在步骤403,确定第一片内内存102是否已满。如果第一片内内存102已满(即“是”分支),则转向步骤402,即,将该队列中的数据溢出到片外内存104。换言之,在第一片内内存102已满的情况下,将存储在第二片内内存103中的该数据队列中的数据按序溢出到片外内存104。否则,如果第一片内内存102未满(即“否”分支),则转向步骤404。在步骤404,将该队列中的数据搬移到第一片内内存102(即,图2中的203)。换言之,响应于第一片内内存102未满且片外内存104中没有该数据队列中的数据,将存储在第二片内内存103中的该数据队列中的数据按序搬移到第一片内内存102。
因此,根据该流程400,基于对该队列中的先前数据的存储位置的确定(第三判定401)以及对第一片内内存102的存储状态的确定(第四判定403),根据本公开的管理方法能够保证数据的保序迁移。然而,类似于先前描述的入队逻辑流程300,如本领域技术人员容易想到的,判定401和判定403的先后顺序不必然按照图4的流程400所示的顺序进行。例如,可以颠倒判定401和判定403的先后顺序,使得先确定第一片内内存102的存储状态然后再确定该队列中的先前数据的存储位置,并基于这两个确定的结果来确定应将数据迁移到第一片内内存102中还是片外内存104中。替代地,可以并行地执行判定401和判定403,使得同时确定该队列中的先前数据的存储位置和第一片内内存102的存储状态,并基于这两个确定的结果来综合确定应将数据迁移到第一片内内存102中还是片外内存104中。
此外,图4所示并且上面描述的数据迁移流程400是仅针对当前存储于第二片内内存103中的队列中的一个队列描述的,但是在一次触发的迁移中可以顺序地和/或并行地迁移不止一个队列,并且可以按需设置该一次触发的迁移的暂停/停止条件。在一个实施例中,可以在每次触发从第二片内内存103向第一片内内存102和/或片外内存104的数据迁移时迁移至少一个队列,直到第二片内内存103达到低位水线时停止本次迁移。在另一实施例中,可以在每次触发数据迁移时迁移一定量(例如3个)的队列,然后停止本次迁移。在一个实施例中,可以规定每次数据迁移持续一定的持续时间(例如10拍)。在另一实施例中,可以规定在片上系统100和/或存储电路较为空闲时触发数据迁移,而在片上系统100和/或存储电路忙碌时停止数据迁移。因此,如本领域技术人员可领会的,可以根据实施根据本公开的存储结构的片上系统的具体情况来设置第二片内内存103的数据迁移的进行持续时间、迁移的数据量、停止时间、中断条件等等,而不脱离本公开的教导的范围。
此外,要注意的是,图3的入队逻辑流程300和图4的数据迁移逻辑流程400可以彼此联动地进行,也可以彼此独立地进行。例如,如果在有数据存入时发现第二片内内存103此时已满,则需要触发第二片内内存103的数据迁移。在这种情况下,数据入队操作和数据迁移操作是联动地进行的。然而,如果设定了在第二片内内存103已被填充达到高位水线时触发数据迁移,也就是说第二片内内存103永远不会被填满,则入队操作和数据迁移操作可以彼此独立地进行。
另外,本领域技术人员也可以按需设置从片外内存104到第一片内内存102的回读操作206的执行。例如,类似于上述情况,该回读操作可以与从第二片内内存103向第一片内内存102和/或片外内存104的数据迁移操作彼此联动地进行,也可以彼此独立地进行。此外,可以只要第一片内内存102未满并且片外内存104有队列需要回读到第一片内内存102中就执行该回读操作。另外,也可以根据第一片内内存102的存储情况、第一片内内存102的出队速度等综合判定适当的回读频率。
因此,通过作为中转站的第二片内内存103的设置,根据上述管理方法和相关的具体流程,本公开提供了使得能够解耦片内片外数据访问、并且解耦入队和出队操作的片上系统存储结构和保序的管理方法。
就片内片外数据访问而言,根据本公开的片上系统的存储结构的上下游电路都直接与片内内存对接,而没有对片外内存的直接访问。此外,上游电路到存储电路的入队、片内内存向片外内存的溢出以及片外向片内的回读都尽可能地彼此独立进行。因此实现了片内片外数据访问的解耦。
另一方面,就入队和出队操作而言,根据本公开的管理方法通过利用片内片外的解耦的数据迁移而使上游电路到存储电路的入队以及存储电路到下游电路的出队也彼此独立地进行,从而实现了入队和出队操作的解耦。
上文基于针对片上系统的同时采用片内内存和片外内存的存储结构而描述了本公开的一些具体实施例。然而,要理解的是,根据本公开的存储结构及其管理方法不仅适用于片上系统的片内内存和片外内存之间的管理,而且还适用于具有类似技术问题的例如高速缓存、寄存器等存储系统。因此,本领域技术人员可以根据本公开的教导以类似的方式在软件和/或硬件方面改造其他的类似存储系统,而不脱离本公开的范围。
Claims (21)
1.一种用于片上系统的存储系统,其特征在于,所述存储系统包括:
第一片内内存;
第二片内内存;以及
片外内存;
其中,第一片内内存、第二片内内存和所述片外内存的存储优先级依次降低,
其中,对于待进入所述存储系统的数据队列,第二片内内存为数据队列进入所述存储系统的中转内存,使得待存储数据不直接溢出到所述片外内存而是入队到第二片内内存,
并且其中,对于待离开所述存储系统的数据队列,第一片内内存为数据队列离开所述存储系统的中转内存,使得存储在第二片内内存和/或所述片外内存中的所述数据队列中的数据按序搬移或回读到第一片内内存中进行出队,以实现针对所述数据队列的保序出队。
2.根据权利要求1所述的存储系统,其中,第二片内内存为数据队列进入所述存储系统的中转内存包括:
在第一片内内存未满的情况下,响应于第二片内内存和所述片外内存中没有所述数据队列中的数据,待存储数据入队到第一片内内存。
3.根据权利要求1所述的存储系统,其中,第二片内内存为数据队列进入所述存储系统的中转内存包括:
在第一片内内存未满的情况下,响应于所述片外内存中已存储有所述数据队列中的数据,待存储数据入队到第二片内内存。
4.根据权利要求1所述的存储系统,其中,第二片内内存为数据队列进入所述存储系统的中转内存包括:
在第一片内内存已满的情况下,待存储数据入队到第二片内内存。
5.根据权利要求1至4中的任一项所述的存储系统,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存。
6.根据权利要求5所述的存储系统,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:
在第一片内内存已满的情况下,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。
7.根据权利要求5所述的存储系统,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:
响应于所述片外内存中已存储有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。
8.根据权利要求5所述的存储系统,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:
响应于第一片内内存未满且所述片外内存中没有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序搬移到第一片内内存。
9.一种用于管理数据存储的方法,其适用于用于片上系统的存储系统,所述存储系统包括第一片内内存、第二片内内存和片外内存,并且第一片内内存、第二片内内存以及所述片外内存的存储优先级依次降低,其特征在于,所述方法包括:
对于待进入所述存储系统的数据队列,第二片内内存为数据队列进入所述存储系统的中转内存,使得待存储数据不直接溢出到所述片外内存而是入队到第二片内内存;以及
对于待离开所述存储系统的数据队列,第一片内内存为数据队列离开所述存储系统的中转内存,使得存储在第二片内内存和/或所述片外内存中的所述数据队列中的数据按序搬移或回读到第一片内内存中进行出队,以实现针对所述数据队列的保序出队。
10.根据权利要求9所述的方法,其中,第二片内内存为数据队列进入所述存储系统的中转内存包括:
在第一片内内存未满的情况下,响应于第二片内内存和所述片外内存中没有所述数据队列中的数据,待存储数据入队到第一片内内存。
11.根据权利要求9所述的方法,其中,第二片内内存为数据队列进入所述存储系统的中转内存包括:
在第一片内内存未满的情况下,响应于所述片外内存中已存储有所述数据队列中的数据,待存储数据入队到第二片内内存。
12.根据权利要求9所述的方法,其中,第二片内内存为数据队列进入所述存储系统的中转内存包括:
在第一片内内存已满的情况下,待存储数据入队到第二片内内存。
13.根据权利要求9至12中的任一项所述的方法,还包括:
存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存。
14.根据权利要求13所述的方法,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:
在第一片内内存已满的情况下,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。
15.根据权利要求13所述的方法,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:
响应于所述片外内存中已存储有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存。
16.根据权利要求13所述的方法,其中,存储在第二片内内存中的所述数据队列中的数据按序溢出到所述片外内存或搬移到第一片内内存包括:
响应于第一片内内存未满且所述片外内存中没有所述数据队列中的数据,存储在第二片内内存中的所述数据队列中的数据按序搬移到第一片内内存。
17.根据权利要求13所述的方法,其中,溢出或搬移操作的频率是根据性能需求设定或适应性地改变的。
18.根据权利要求13所述的方法,其中,以固定的周期轮询第二片内内存中的数据队列,并且一旦数据队列在第二片内内存中的存储达到了高位水线则执行针对所述数据队列的溢出或搬移操作。
19.根据权利要求9至12中的任一项所述的方法,其中,所述方法是以硬件电路实现的。
20.针对用于片上系统的存储系统的管理装置,其特征在于,其包括用于执行根据权利要求9至19中的任一项所述的方法的电路或部件。
21.包括指令的至少一种机器可读存储介质,所述指令在被执行时使得能够实施根据权利要求9至19中的任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211569165.1A CN115629718B (zh) | 2022-12-08 | 2022-12-08 | 用于片上系统的存储结构及其管理方法、装置和机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211569165.1A CN115629718B (zh) | 2022-12-08 | 2022-12-08 | 用于片上系统的存储结构及其管理方法、装置和机器可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115629718A CN115629718A (zh) | 2023-01-20 |
CN115629718B true CN115629718B (zh) | 2023-03-21 |
Family
ID=84909719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211569165.1A Active CN115629718B (zh) | 2022-12-08 | 2022-12-08 | 用于片上系统的存储结构及其管理方法、装置和机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115629718B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7945716B2 (en) * | 2007-09-27 | 2011-05-17 | Integrated Device Technology, Inc. | Serial buffer supporting virtual queue to physical memory mapping |
CN101526924B (zh) * | 2009-04-22 | 2010-09-08 | 东南大学 | 一种优化数字信号处理芯片数据访问的方法 |
CN102521151A (zh) * | 2011-11-28 | 2012-06-27 | 华为技术有限公司 | 数据缓存方法和装置 |
CN113806244B (zh) * | 2021-11-18 | 2022-02-08 | 深圳比特微电子科技有限公司 | 用于片上系统的内存管理方法和基于片上系统的设备 |
CN115269157A (zh) * | 2022-08-12 | 2022-11-01 | 山东云海国创云计算装备产业创新中心有限公司 | 一种任务处理系统、方法、计算机设备及存储介质 |
-
2022
- 2022-12-08 CN CN202211569165.1A patent/CN115629718B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN115629718A (zh) | 2023-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8601221B2 (en) | Speculation-aware memory controller arbiter | |
US9270610B2 (en) | Apparatus and method for controlling transaction flow in integrated circuits | |
KR102519019B1 (ko) | 액세스 효율에 기초한 메모리 요청의 순서화 | |
US6725457B1 (en) | Semaphore enhancement to improve system performance | |
US6704817B1 (en) | Computer architecture and system for efficient management of bi-directional bus | |
US8930602B2 (en) | Providing adaptive bandwidth allocation for a fixed priority arbiter | |
KR100965356B1 (ko) | 레이턴시에 둔감한 fifo 시그널링 프로토콜 | |
US20140208071A1 (en) | Adaptive service controller, system on chip and method of controlling the same | |
US11886365B2 (en) | DMA control circuit with quality of service indications | |
US9336162B1 (en) | System and method for pre-fetching data based on a FIFO queue of packet messages reaching a first capacity threshold | |
US9887849B2 (en) | Reduced wake up delay for on-die routers | |
Jang et al. | An SDRAM-aware router for networks-on-chip | |
CN115629718B (zh) | 用于片上系统的存储结构及其管理方法、装置和机器可读存储介质 | |
US8521968B2 (en) | Memory controller and methods | |
EP2568388B1 (en) | Processor to message-based network interface using speculative techniques | |
US20040064627A1 (en) | Method and apparatus for ordering interconnect transactions in a computer system | |
US20120221831A1 (en) | Accessing Common Registers In A Multi-Core Processor | |
KR102334473B1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
US20060123187A1 (en) | Memory controller to utilize DRAM write buffers | |
US8255597B2 (en) | Interfacing device and method, for example for systems-on-chip | |
US20240095194A1 (en) | Read Arbiter Circuit with Dual Memory Rank Support | |
US20240094917A1 (en) | Write Arbiter Circuit with Per-Rank Allocation Override Mode | |
KR102021795B1 (ko) | 적응적 서비스 제어기, 시스템 온 칩 및 시스템 온 칩의 제어 방법 | |
TWI783510B (zh) | 存取依電性記憶體之技術 | |
US9690730B2 (en) | Register slicing circuit and system on chip including the same |
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 |