CN113535633A - 一种片上缓存装置和读写方法 - Google Patents
一种片上缓存装置和读写方法 Download PDFInfo
- Publication number
- CN113535633A CN113535633A CN202010306644.9A CN202010306644A CN113535633A CN 113535633 A CN113535633 A CN 113535633A CN 202010306644 A CN202010306644 A CN 202010306644A CN 113535633 A CN113535633 A CN 113535633A
- Authority
- CN
- China
- Prior art keywords
- module
- cache
- read
- address
- message
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 100
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 claims description 2
- 230000001133 acceleration Effects 0.000 claims 1
- 239000012634 fragment Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 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
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
- G11C5/04—Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/0824—Distributed directories, e.g. linked lists of caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- 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/0626—Reducing size or complexity 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/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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7207—Details relating to flash memory management management of metadata or control data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- 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)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提出了一种片上缓存装置和读写方法,其中,该装置包括:读写处理模块、高速缓存模块和存储器模块;其中,读写处理模块分别与高速缓存模块和存储器模块连接,读写处理模块用于将报文存储到高速缓存模块和存储器模块,读取高速缓存模块和存储器模块存储的报文,以及将高速缓存模块中缓存的报文转存到存储器模块;高速缓存模块,通过读写处理模块与存储器模块连接,高速缓存模块包括至少一个缓存寄存器,用于临时缓存报文;存储器模块,与读写处理模块连接,用于转存高速缓存模块缓存的报文。通过缓存多个报文实现同时写入缓存器,提高芯片存储空间利用率,降低存储面积减少芯片功耗。
Description
技术领域
本申请涉及通讯芯片领域,具体涉及一种片上缓存装置和方法。
背景技术
在网络交换引擎中,由于受到性能指标提升的要求和芯片面积、资源和工业的限制,芯片不可能无限制通过提高主频和堆砌资源的方式来满足性能提升的需求,因此亟需一种实现芯片空间的低冗余和低面积消耗的方式实现芯片性能的提高。
现有芯片设计中,不同的应用场景芯片的资源空间的利用方式不同,在大数据处理场景中,由于产生了小包报文,而芯片中存储仅能按行地址进行存储,芯片处理小包报文时,每个行地址只能存储一个小包报文,浪费了大量的存储空间,为了处理小包报文导致芯片设计的存储面积大,产生功耗过高的问题。
发明内容
本申请实施例提供了一种片上缓存装置和读写方法。
本申请实施例提供了一种片上缓存装置,该装置包括:
读写处理模块、高速缓存模块和存储器模块;其中,所述读写处理模块分别与所述高速缓存模块和所述存储器模块连接,所述读写处理模块用于将报文存储到所述高速缓存模块和所述存储器模块,读取所述高速缓存模块和所述存储器模块存储的报文,以及将所述高速缓存模块中缓存的报文转存到所述存储器模块;所述高速缓存模块,通过所述读写处理模块与所述存储器模块连接,所述高速缓存模块包括至少一个缓存寄存器,用于临时缓存报文;所述存储器模块,与所述读写处理模块连接,用于转存所述高速缓存模块缓存的报文。
本申请实施例提供了一种片上缓存读取方法,该方法包括:
将获取到的报文根据行地址存储到高速缓存模块的缓存寄存器;确定所述行地址对应的所述缓存寄存器全部被占用,将所述高速缓存模块中所述行地址对应的报文转存到存储器模块;根据读取报文地址读取所述高速缓存模块和/或所述存储器模块的存储报文。
本申请实施例,通过在芯片上设置读写处理模块、高速缓存模块和存储器模块,读写处理模块将报文写入到高速缓存模块,再将高速缓存模块缓存的报文写入存储器模块,读写处理模块读取高速缓存模块和存储器模块存储的报文,实现了存储器模块中报文的缓存,通过高速缓存模块多个报文进行暂存,实现存储器模块同时写入多个报文,提高存储空间的利用率,降低芯片的存储面积,减少芯片的功耗。
关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。
附图说明
图1是本申请实施例提供的一种片上缓存装置的结构示意图;
图2是本申请实施例提供的一种片上缓存装置的结构示意图;
图3是本申请实施例提供的一种深度关系示意图;
图4是本申请实施例提供的一种片上缓存装置的配置示例图;
图5是本申请实施例提供的一种片上缓存方法的流程图;
图6是本申请实施例提供的另一种片上缓存方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
由于芯片中存储器存储报文时按行地址进行存储,存储器中每行仅存储一个报文,当芯片应用于大数据量处理时,由于处理过程中产生小包长报文,该报文的长度小于普通报文,当芯片对小包长报文进行写入和读取时,对芯片存储器造成大量的存储空间浪费,相应的需要在芯片在设置较大的存储器,芯片面积较大功耗过高。本申请实施例通过利用高速缓存中的行地址和列地址实现缓存多个小包长报文或者报文小分片,然后将高速缓存中的报文一次性存储到存储器中,解决各小包长报文分别占用存储器一个地址的问题,提高存储空间利用率,减少芯片面积,实现芯片功耗的降低。
图1是本申请实施例提供的一种片上缓存装置的结构示意图,参见图1,本申请实施例可以适用于芯片中报文处理的情况,该装置可以通过软件和/或硬件实现,并一般可以集成在芯片中,本申请实施例的装置具体包括如下模块:读写处理模块110、高速缓存模块120和存储器模块130。
在本申请实施例中,芯片中片上缓存装置可以主要由读写处理模块110、高速缓存模块120和存储器模块130构成,读写处理模块110可以为硬件处理电路可以获取访问源头的报文和将报文读取到访问源头,高速缓存模块120可以是由一个或多个缓存寄存器组成的缓存队列,可以将报文进行缓存,而存储器模块130可以是随机存取存储器(RandomAccess Memory,RAM)可以在芯片中与访问源头进行报文交换。
其中,所述读写处理模块110分别与所述高速缓存模块120和所述存储器模块130连接,所述读写处理模块110用于将报文存储到所述高速缓存模块120和所述存储器模块130,读取所述高速缓存模块120和所述存储器模块130存储的报文,以及将所述高速缓存模块120中缓存的报文转存到所述存储器模块130。
具体的,读写处理模块110可以写入芯片或者读出芯片的报文进行控制,读写处理模块110可以连接有高速缓存模块120和存储器模块130,读写处理模块110可以将报文写入到高速缓存模块120和存储器模块130,示例性的,可以先将报文写入到高速缓存模块120中,当高速缓存模块120中报文存储的数量或者缓存寄存器1201的被占用的数量超过阈值时,可以将高速缓存模块120中存储的报文转存到存储器模块130中,实现存储器模块130中同时写入多个报文,提高报文对存储空间的利用率。读写处理模块110还可以对高速缓存模块120和存储器模块130中存储的报文进行读取,例如,可以先在高速缓存模块120在读取报文,然后在存储器模块130中读取报文,读写处理模块110还可以先在存储器模块130中读取报文,再于高速缓存模块120中读取报文。
所述高速缓存模块120,通过所述读写处理模块110与所述存储器模块130连接,所述高速缓存模块120包括至少一个缓存寄存器1201,用于临时缓存报文。
本申请实施例中,高速缓存模块120可以是一个缓存寄存器组,可以包括至少一个缓存寄存器1201,报文可以缓存于缓存寄存器1201中,进一步的,报文缓存后可以生成缓存寄存器1201的描述字符,描述字符可以包括该报文存储的行地址和列地址,其中,行地址和列地址可以标识缓存寄存器1201再高速缓存模块120中的位置。在片上缓存装置中,高速缓存模块120可以起到临时存储的作业,报文可以存储在一个或多个缓存寄存器1201中,当报文为普通报文时,报文的报文长度可以超过缓存寄存器1201的位宽,可以使用多个缓存寄存器1201存储一个报文,当报文为小包长报文时,报文的报文长度可以小于或等于缓存寄存器1201的位宽,该报文可以缓存在一个缓存寄存器1201中。
所述存储器模块130,与所述读写处理模块110连接,用于转存所述高速缓存模块120缓存的报文。
具体的,存储器模块130可以存储读写处理模块110接收到的报文,存储器模块130在进行报文的存储时可以同时存储一个或多个报文,例如,读写处理模块110可以将高速缓存模块中已缓存的阈值数量的报文存储到存储器模块130中,阈值数量可以保证同时存储的一个或多个报文的长度不超过存储器模块行地址对应的位宽,可以保证报文存储成功。
本申请实施例,通过片上缓存装置可以包括读写处理模块、高速缓存模块和存储器模块,读写处理模块将报文写入到高速缓存模块,再将高速缓存模块缓存的报文写入存储器模块,读写处理模块读取高速缓存模块和存储器模块存储的报文,实现了存储器模块中报文的缓存,通过高速缓存模块多个报文进行暂存,实现存储器模块同时写入多个报文,提高存储空间的利用率,降低芯片的存储面积,减少芯片的功耗。
图2是本申请实施例提供的一种片上缓存装置的结构示意图,本申请实施例是以上述申请实施例为基础进行具体化,通过读写处理模块中分别使用读处理单元和写处理单元实现对报文的写入和读出操作,并具体化高速缓存模块和存储器模块的设置参数,参见图2,本申请实施例中片上缓存装置可以包括读写处理模块110、高速缓存模块120和存储器模块130。
进一步的,片上缓存装置中还可以包括空闲地址模块140,与所述读写处理模块110相连,用于管理所述存储器模块130中的空闲行地址,所述空闲地址模块140中各FIFO存储所述空闲行地址,所述空闲地址模块140的FIFO深度与所述存储器模块130中RAM深度相同,其中,所述RAM深度通过所述存储器模块130中RAM主频包传输率的读写带宽以及预留加速比确定。
具体的,为了提高报文处理效率,可以设置一个空闲地址模块140统一对存储器模块130中的空闲行地址进行管理,其中,空闲行地址可以是存储器模块130中未被占用的存储空间的行地址。空闲地址模块中空闲行地址可以以FIFO队列的形式进行存储,空闲地址模块可以包括至少一个FIFO队列,为了满足空闲地址模块管理所有存储器模块的地址的取现,空闲地址模块中FIFO深度可以与存储器模块中RAM深度相同。其中,FIFO深度可以表示空闲地址模块内存储空闲地的FIFO队列的数量,存储器模块RAM深度可以表示可以同时处理报文的能力,可以表示RAM的数量。
进一步的,RAM深度可以根据与芯片需求相关,具体可以通过芯片的主频中报传输率的读写带宽以及预留的加速比确定,例如,假设每拍处理的报文数量为4,加速比为50%,则装置中RAM的深度可以为4+4*50%=6。图3是本申请实施例提供的一种深度关系示意图,参见图3,空闲地址模块140中可以包括q个freefifo队列,相应的,存储器模块130中RAM的数量可以为q个,空闲地址模块140中FIFO的深度与存储模块中RAM的深度相同。
在本申请实施例中,读写处理模块110包括写处理单元1101,所述写处理单元1101分别连接到所述高速缓存模块120、所述缓存器模块130和所述空闲地址模块140,写处理单元1101用于接收报文,从所述空闲地址模块140中获取空闲行地址,按照所述空闲行地址将所述报文存储到所述高速缓存模块120,以及,当所述高速缓存模块130中所述空闲行地址对应的缓存寄存器1201全部占用时,将所述空闲行地址对应缓存寄存器1201中的报文转存到所述存储器模块130。
具体的,读写处理模块110可以使用写处理单元1101将报文写入到存储器模块130,可以将报文进行分片缓存或者将小包长报文进行缓存。写处理单元1101可以根据报文在空闲地址模块140中申请空闲行地址,根据空闲行地址将报文缓存到高速缓存模块中,一个空闲行地址可以对应多个高速缓存模块中的缓存寄存器,高速缓存模块中每个缓存寄存器可以存储一个报文分片或者一个小包长报文。当高速缓存模块中一个空闲行地址对应的所有缓存寄存器存储有报文分片或者小包长报文时,该缓存寄存器1201的列地址可以标记为1,当该空闲行地址对应的所有列地址均被标记时,可以将该空闲行地址对应的所有报文分片或者小包长报文可以通过写处理单元1101写入到存储器模块130。进一步的,在写处理单元1101确定空闲行地址对应的所有缓存寄存器1201被占用时,可以同时将其中缓存的报文的行地址和列地址进行存储130。
进一步的,在上述申请实施例的基础上,所述装置还包括:包身链表模块150,分别与所述读处理单元1102和所述写处理单元1101连接,用于存储所述报文的存储地址,所述包身链表模块150中存储地址以链表形式存储,所述链表的节点个数根据地址存储器的读延时拍数确定。
在本申请实施例中,可以通过包身链表模块150存储报文的存储地址,存储地址可以包括行地址和列地址,可以通过该行地址和列地址在高速缓存模块120和/或存储器模块130中读取对应的报文,包身链表模块150可以具体由寄存器构成,可以存储链表头、链表尾和链表指针,各链表中的内容可以具体为各存储报文的行地址和列地址,可以理解的时,由于芯片对报文处理性能和芯片面积的影响,为了提高芯片的面积利用率,可以通过地址存储器的读延时拍数设置包身链表模块150中链表的节点数。
读写处理模块110包括读处理单元1102,所述读处理单元1102分别连接到所述高速缓存模块120、所述缓存器模块130和所述空闲地址模块140,读处理单元用于读取报文1102,根据报文行地址在所述高速缓存模块120和/或所述缓存器模块130读取存储的报文,以及,读取所述报文后将所述报文行地址存储到所述空闲地址模块140。
具体的,读写处理模块110可以使用读处理单元1102实现对报文的读取,可以通过读处理单元1102分别根据报文地址对高速缓存模块120和缓存器模块130读取对应的报文,每当一个报文被读取可以将该报文地址中的列地址标识为0。进一步的,当报文地址的行地址对应的所有报文被读取后,读处理单元1102可以将该行地址作为空闲行地址存储到空闲地址模块140。由于每个行地址对应的存储空间可以存储多个小包长报文或者报文分片,只有该行地址对应的所有小包长报文全部回收后,这个行地址才能释放指针,每次读操作在从链表得到对应描述符后先对高速缓存模块120进行索引,没有对应行地址后再从存储器模块130中读取报文,可以减小缓存的读写频率,减小功耗,并且可以减少访问冲突。
进一步的,在上述申请实施例的基础上,所述存储器模块130中存储单元1301的数量通过访问源读写总线位宽和报文长度确定,所述存储器模块包括单访问总线存储器。
本申请实施例中,可以通过使用单访问总线的存储器替换多读写总线的存储器减少存储器面积,存储器模块130中的存储器具体可以为单访问总线存储器,可以通过访问源总线的位宽确定出存储器模块130中RAM每个行地址的空间大小,并根据报文长度可以确定出每行地址可以划分出多少存储小包长报文或者报文分片的存储单元。例如,假设小包长报文长度为64字节,一个行地址的宽度为600字节,每个周期最多可以写入6个小包长报文的条件下,需要将存储器模块130中行地址划分为6个用于存储小包长报文或者报文分片的存储单元。
进一步的,在上述申请实施例的基础上,高速缓存模块120包括至少一个缓存寄存器组,所述缓存寄存器组至少包括一个缓存寄存器,其中,所述高速缓存模块中缓存寄存器组的数量根据缓存寄存器描述符读出延迟拍数和预留突发处理数确定,所述缓存寄存器组中所述缓存寄存器的数量基于所述存储器模块中行地址的地址空间对应存储单元的数量确定。
具体的,高速缓存模块120可以包括多个寄存器组,每个缓存寄存器组可以包括多个缓存寄存器,缓存寄存器的存储空间可以对应于存储器模块130的RAM的列地址,可以通过缓存寄存器缓存小包长报文或者报文分片的方式实现对存器模块130行地址对应存储空间的分割,可以将多个缓存寄存器内的小包长报文和报文分片同时存储到存储器模块130的RAM的一个行地址,一个缓存寄存器的存储空间与存储器模块130中存储单元对应的存储空间相同,缓存寄存器可以对应该存储单元的列地址。高速缓存模块130中缓存寄存器的数量可以与存储器模块130的硬件参数相关,可以通过缓存寄存器描述符读出延迟拍数和预留突发处理数确定。
进一步的,在上述申请实施例的基础上,所述装置还包括:
包身链表模块150,分别与所述读处理单元1101和所述写处理单元1102连接,用于存储所述报文的存储地址,所述包身链表模块150中存储地址以链表形式存储,所述链表的节点个数根据地址存储器的读延时拍数确定。
进一步的,在上述申请实施例的基础上,所述装置还包括:
读写冲突模块,分别与所述读处理单元1102和所述写处理单元1101连接,用于处理所述高速缓存模块和/或存储器模块中的报文读写异常冲突。
现有技术中,缓存RAM读写冲突可以包括三种,读写冲突、写写冲突和读读冲突三种状态,而在本申请实施例中,通过高速缓存模块实现对小包长报文或报文分片的缓存,空闲地址模块140可以保证发放不同的空闲行地址,保证写写冲突不出现。当读写冲突时,只会出现在一个行地址同时需要进行读操作和写操作时,发生冲突时空闲地址模块需要先剔除要读的行地址,同时写操作要求存储满一个寄存器组后再进行缓存写操作,减少冲突概率;出现读读冲突时,可以使用优先级的方式调度,保证优先级高的访问源先读数据。当存在缓存寄存器访问冲突时,均按照优先级的方式处理冲突。冲突处理机制在读写处理模块中进行实现。
示例性的,图4是本申请实施例提供的一种片上缓存装置的配置示例图,参见图4,本申请实施例中读写处理模块、高速缓存模块、存储器模块中的相关参数通过芯片的访问读写源头数量以及读写带宽需求进行配置,分别确定处理种类冲突的处理方式、空闲地址模块的实现方式,RAM数量、缓存寄存器数量以及包身链表节点数,实现一种高效的片上缓存装置,提高芯片存储空间的利用率,降低芯片面积,减少芯片功耗。
图5是本申请实施例提供的一种片上缓存方法的流程图,本申请实施例可以适用于芯片中报文处理的情况,该方法可以通过本申请实施例的片上缓存装置来执行,该装置可以通过软件和/或硬件的方式实现,并一般可以集成在芯片中,本申请实施例提供的方法包括如下步骤:
步骤210、将获取到的报文根据行地址存储到高速缓存模块的缓存寄存器。
其中,报文可以是进行大数据处理时产生的报文,可以包括普通长度的报文和小包长报文等,报文可以在片上缓存装置进行读写操作。
具体的,可以将获取到的报文先缓存到高速缓存模块的缓存寄存器中,报文缓存时,可以以行地址为依据进行存储。当报文为普通报文时,报文的长度可以超过一个缓存寄存器的存储空间,可以将报文进行切片,将各报文切片分别存储到行地址对应的高速缓存模块的各缓存寄存器中,每个缓存寄存器可以存储一个报文切片,当报文为小包长报文时,可以将小包长报文存储到高速缓存模块的一个缓存寄存器中。
步骤220、确定行地址对应的缓存寄存器全部被占用,将高速缓存模块中行地址对应的报文转存到存储器模块。
在本申请实施例中,高速缓存模块中一个行地址可以对应一个缓存寄存器组,缓存寄存器组中可以包括多个缓存寄存器,可以通过确定行地址对应的列地址是否被标识为1,确定行地址对应的缓存器寄存器被全部占用,可以将该行地址对应的缓存寄存器内存储的报文转存到存储器模块中,可以同时将多个缓存寄存器内的报文同时写入到存储器模块RAM中一行,可以理解的是,高速缓存模块和存储器模块中的行地址可以相同或者具有对应关系。
步骤230、根据读取报文地址读取高速缓存模块和/或存储器模块的存储报文。
其中,读取报文地址可以是存储报文的读取地址,具体可以为描述字符,至少包括存储报文的行地址和列地址。
具体的,可以根据读取报文地址读取存储报文,由于本申请实施例中,报文可以存储在高速缓存模块和存储器模块,可以根据读取报文分别在高速缓存模块和存储器模块进行读取,例如,可以先在高速缓存模块中读取存储报文,确定不存在该报文地址对应的报文时,再于存储器模块中读取存储报文,可以理解的是,还可以同时根据读取报文地址分别再高速缓存模块和存储器模块读取。
本申请实施例,通过将获取的报文按照行地址存储到高速缓存模块的缓存寄存器,确定行地址对应的缓存寄存器全部被占用时,将高速缓存模块中行地址对应的报文转存到存储器模块,并基于读取报文地址读取高速缓存模块和/或存储器模块的存储报文,实现了存储器同时写入多个报文,提高存储空间的利用率,可降低芯片的存储面积,降低芯片功耗。
图6是本申请实施例提供的另一种片上缓存方法的流程图,本申请实施例是以上述实施例为基础进行具体化,在本申请实施例中,进一步详细了报文的写入和读取过程,参见图6,本申请实施例提供的片上缓存方法包括:
步骤310、基于报文向空闲地址模块申请行地址。
其中,空闲地址模块可以是对空闲行地址进行统一管理的模块,空闲地址模块中可以存储有未被占用的存储空间的行地址。
在本申请实施例中,在接收到访问读写源头的报文时,可以项空闲地址模块申请用于存储报文的行地址,该行地址可以是对应高速缓存模块和/或存储器模块的存储空间。
步骤320、针对各报文,确定高速缓存模块中行地址对应的缓存寄存器未被全部占用,则将报文存储到未被占用的缓存寄存器。
具体的,报文可以先在高速缓存模块中进行缓存,由于高速缓存模块中行地址对应的缓存寄存器被全部占用上,需要将报文从高速缓存模块转存到存储器模块,报文在存储前可以确定行地址对应的缓存寄存器是否被已经被全部存储,当存在还未被占用的缓存寄存器时,可以将该报文存储到行地址对应的未被占用的缓存寄存器。
步骤330、确定行地址对应的缓存寄存器全部被占用,生成各缓存寄存器的写入描述符,将写入描述符作为读取报文地址存储到包身链表模块,以及将缓存寄存器内缓存的报文存储到存储器模块中各存储单元,其中,缓存寄存器的数量对应存储单元的数量。
其中,写入描述符可以是描述报文存储位置的信息,可以具体包括报文的行地址和列地址。
具体的,在高速缓存模块中存在一个行地址对应的缓存寄存器全部被占用时,例如,一个行地址对应的列地址全部被标记为1时,可以认为高速缓存模块中一个缓存寄存器组已经全部存储有报文,可以将该寄存器组的报文从高速缓存模块转存到存储器模块。为了便于存储报文的查找可以将对应报文的写入描述符存储在包身链表模块中。本申请实施例中,报文从高速缓存模块转存到存储器模块时,可以通过高速缓存模块中一个缓存寄存器中的报文可以存储到存储器模块的存储单元,一个行地址对应的缓存寄存器与存储单元的数量相同,可以通过缓存寄存器实现对存储器模块的按列地址存储,提高报文的空间占用率。
步骤340、从包身链表模块中获取读取报文地址,其中,读取报文地址至少包括行地址和列地址。
其中,读取报文地址可以是报文的存储地址,可以用于读取报文。
具体的,高速缓存模块和存储器模块中报文的存储地址可以位于包身链表模块,可以通过查找包身链表模块中的链表信息获取到需要的读取报文地址。进一步的,读取报文地址可以由行地址和列地址组成,可以具体对应高速缓存模块中的一个缓存寄存器或者存储器模块中的一个存储单元。
步骤350、根据读取报文地址确定高速缓存模块的缓存寄存器是否缓存有存储报文,若是,则读取高速缓存模块内的存储报文,若否,则根据读取报文地址确定存储器模块是否存储所述存储报文。
在本申请实施例中,可以先在高速缓存模块中读取存储报文,然后再于存储器模块中读取报文,可以减少对报文的读取频率,减少功耗,降低访问冲突的发生概率。具体的,可以根据读取报文地址查找对应的缓存寄存器,若缓存寄存器未存储有数据,则存储报文未存储在高速缓存模块中,可以于存储器模块查找对应的存储报文,若缓存寄存器中存储有数据,则将该缓存寄存器中的数据作为存储报文读出。
步骤360、确定存储器模块存储所述存储报文的情况下读取存储器模块内的存储报文。
具体的,可以根据读取报文地址在存储器模块中查找存储单元,当存储单元中存储有数据,则将该数据作为存储报文读出,可以理解的是,当存储单元未存储有数据,则确定存储报文不存在,可以进行报错处理。
步骤370、当高速缓存模块中一组缓存寄存器内的存储报文全部被读取后,将缓存寄存器对应的行地址存储到空闲地址模块。
具体的,存储报文在读取后需要对存储空间进行释放,在本申请实施例中,当高数缓存模块中一组缓存寄存器全部被读取后,可以是一个行地址对应的缓存寄存器内的存储报文被读取后,可以将该行地址对应的缓存寄存器进行清除操作,并将该行地址作为空闲地址存储到空闲地址模块。
步骤380、当存储器模块中行地址对应的存储单元内存储报文全部被读取后,将行地址存储到空闲地址模块。
具体的,由于存储器模块中每个行地址可以存储多个小包长报文或者报文分片,只有该行地址对应的所有小包长报文或者报文分片被全部回收后,存储器模块中该行地址才能释放指针,可以通过一个基于缓存深度的标记,每个列地址回收时,将该列地址标记置为0,当全部标记都为0后,才在空闲地址模块中存储该行地址。每次读操作在从包身链表模块得到对应的描述符后先对高速缓存模块进行索引,没有对应行地址后再从存储器模块中读取存储报文。
本申请实施例,通过向空闲地址模块申请报文对应的申请行地址,根据行地址先于高速缓存模块中缓存,当行地址对应的缓存寄存器全部被占用,将报文从高速缓存模块的缓存寄存器转存到存储器模块的存储单元,并将报文的读取报文地址存储到包身链表模块,进行读操作时,获取包身链表模块中的读取报文地址,并根据报文地址依次从高速缓存模块和存储器模块读取报文,当一组缓存寄存器或者行地址对应的存储单元内的存储报文被读取后,将行地址存储到空闲地址模块,实现了对空闲地址的统一管理,降低存储器的读写频率,可以减少芯片功耗,降低报文的访问冲突。
进一步的,在上述申请实施例的基础上,还包括:
当发生读写冲突时,清除空闲地址模块中发生冲突的空闲行地址,读写处理模块中读处理单元不能基于空闲行地址读报文,同时读写处理模块中写处理单元基于空闲行地址进行写报文;当发生读读冲突时,访问源在读写处理模块根据优先级顺序读取报文。
现有技术中,缓存RAM读写冲突可以包括三种,读写冲突、写写冲突和读读冲突三种状态,而在本申请实施例中,通过高速缓存模块实现对小包长报文或报文分片的缓存,可以通过空闲地址模块保证发放的空闲行地址不同,写写冲突不出现。当读写冲突时,只会出现在一个行地址同时需要进行读操作和写操作时,发生冲突时空闲地址模块需要先剔除要读的行地址,同时写操作要求存储满一个寄存器组后再进行缓存写操作,减少冲突概率;出现读读冲突时,可以使用优先级的方式调度,保证优先级高的访问源先读数据。当存在缓存寄存器访问冲突时,均按照优先级的方式处理冲突。
以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。
本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。
一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。
本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。
本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(ROM)、随机访问存储器(RAM)、光存储器装置和***(数码多功能光碟DVD或CD光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(FGPA)以及基于多核处理器架构的处理器。
通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本发明的范围。因此,本发明的恰当范围将根据权利要求确定。
Claims (16)
1.一种片上缓存装置,其特征在于,所述装置包括:
读写处理模块、高速缓存模块和存储器模块;
其中,所述读写处理模块分别与所述高速缓存模块和所述存储器模块连接,所述读写处理模块用于将报文存储到所述高速缓存模块和所述存储器模块,读取所述高速缓存模块和所述存储器模块存储的报文,以及将所述高速缓存模块中缓存的报文转存到所述存储器模块;
所述高速缓存模块,通过所述读写处理模块与所述存储器模块连接,所述高速缓存模块包括至少一个缓存寄存器,用于临时缓存报文;
所述存储器模块,与所述读写处理模块连接,用于转存所述高速缓存模块缓存的报文。
2.根据权利要求1所述的装置,其特征在于,还包括:
空闲地址模块,与所述读写处理模块相连,用于管理所述存储器模块中的空闲行地址,所述空闲地址模块中各FIFO存储所述空闲行地址,所述空闲地址模块的FIFO深度与所述存储器模块中RAM深度相同,其中,所述RAM深度通过所述存储器模块中RAM主频包传输率的读写带宽以及预留加速比确定。
3.根据权利要求2所述的装置,其特征在于,所述读写处理模块包括写处理单元,所述写处理单元分别连接到所述高速缓存模块、所述缓存器模块和所述空闲地址模块,写处理单元用于接收报文,从所述空闲地址模块中获取空闲行地址,按照所述空闲行地址将所述报文存储到所述高速缓存模块,以及,当所述高速缓存模块中所述空闲行地址对应的缓存寄存器全部占用时,将所述空闲行地址对应缓存寄存器中的报文转存到所述存储器模块。
4.根据权利要求2所述的装置,其特征在于,所述读写处理模块包括读处理单元,所述读处理单元分别连接到所述高速缓存模块、所述缓存器模块和所述空闲地址模块,读处理单元用于读取报文,根据报文地址在所述高速缓存模块和/或所述缓存器模块读取存储的报文,以及,读取所述报文后将所述报文地址存储到所述空闲地址模块。
5.根据权利要求3或4所述的装置,其特征在于,所述存储器模块中存储单元的数量通过访问源读写总线位宽和报文长度确定,所述存储器模块中寄存器为单访问总线存储器。
6.根据权利要求5所述的装置,其特征在于,所述高速缓存模块包括至少一个缓存寄存器组,所述缓存寄存器组至少包括一个缓存寄存器,其中,所述高速缓存模块中缓存寄存器组的数量根据缓存寄存器描述符读出延迟拍数和预留突发处理数确定,所述缓存寄存器组中所述缓存寄存器的数量基于所述存储器模块中行地址的地址空间对应存储单元的数量确定。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
包身链表模块,分别与所述读处理单元和所述写处理单元连接,用于存储所述报文的存储地址,所述包身链表模块中存储地址以链表形式存储,所述链表的节点个数根据地址存储器的读延时拍数确定。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
读写冲突模块,分别与所述读处理单元和所述写处理单元连接,用于处理所述高速缓存模块和/或存储器模块中的报文读写异常冲突。
9.一种片上缓存读写方法,其特征在于,所述方法包括:
将获取到的报文根据行地址存储到高速缓存模块的缓存寄存器;
确定所述行地址对应的所述缓存寄存器全部被占用,将所述高速缓存模块中所述行地址对应的报文转存到存储器模块;
根据读取报文地址读取所述高速缓存模块和/或所述存储器模块的存储报文。
10.根据权利要求9所述的方法,其特征在于,还包括:
基于所述报文向空闲地址模块申请行地址。
11.根据权利要求10所述的方法,其特征在于,所述将获取到的报文根据行地址存储到高速缓存模块的缓存寄存器,包括:
针对各所述报文,确定高速缓存模块中所述行地址对应的缓存寄存器未被全部占用,则将所述报文存储到未被占用的所述缓存寄存器。
12.根据权利要求11所述的方法,其特征在于,所述确定所述行地址对应的所述缓存寄存器全部被占用,将所述高速缓存模块中所述行地址对应的报文转存到存储器模块,包括:
确定所述行地址对应的所述缓存寄存器全部被占用,生成各所述缓存寄存器的写入描述符,将所述写入描述符作为读取报文地址存储到包身链表模块,以及将所述缓存寄存器内缓存的报文存储到存储器模块中各存储单元,其中,所述缓存寄存器的数量对应所述存储单元的数量。
13.根据权利要求12所述的方法,其特征在于,所述根据读取报文地址读取所述高速缓存模块和/或所述存储器模块的存储报文,包括:
根据所述读取报文地址确定所述高速缓存模块的缓存寄存器是否缓存有所述存储报文,若是,则读取所述高速缓存模块内的所述存储报文,若否,则根据所述读取报文地址确定所述存储器模块是否存储所述存储报文;
确定所述存储器模块存储所述存储报文的情况下读取所述存储器模块内的所述存储报文。
14.根据权利要求13所述的方法,其特征在于,还包括:
从所述包身链表模块中获取读取报文地址,其中,所述读取报文地址至少包括行地址和列地址。
15.根据权利要求13所述的方法,其特征在于,还包括:
当高速缓存模块中一组缓存寄存器内的存储报文全部被读取后,将所述缓存寄存器对应的行地址存储到空闲地址模块;和/或,
当所述存储器模块中行地址对应的存储单元内存储报文全部被读取后,将所述行地址存储到空闲地址模块。
16.根据权利要求9-13任一所述的方法,其特征在于,还包括:
当发生读写冲突时,清除空闲地址模块中发生冲突的空闲行地址,读写处理模块中读处理单元不能基于所述空闲行地址读报文,同时所述读写处理模块中写处理单元基于所述空闲行地址进行写报文;
当发生读读冲突时,访问源在读写处理模块根据优先级顺序读取报文。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306644.9A CN113535633A (zh) | 2020-04-17 | 2020-04-17 | 一种片上缓存装置和读写方法 |
EP21788235.6A EP4137956A4 (en) | 2020-04-17 | 2021-04-16 | ON-CHIP CACHE MEMORY DEVICE, METHOD FOR READING/WRITING ON-CHIP CACHE MEMORY, AND COMPUTER-READABLE MEDIUM |
PCT/CN2021/087872 WO2021209051A1 (zh) | 2020-04-17 | 2021-04-16 | 片上缓存装置、片上缓存读写方法、计算机可读介质 |
US17/919,345 US20230195637A1 (en) | 2020-04-17 | 2021-04-16 | On-chip cache apparatus, on-chip cache read-write method, and computer-readable medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010306644.9A CN113535633A (zh) | 2020-04-17 | 2020-04-17 | 一种片上缓存装置和读写方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113535633A true CN113535633A (zh) | 2021-10-22 |
Family
ID=78083927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010306644.9A Pending CN113535633A (zh) | 2020-04-17 | 2020-04-17 | 一种片上缓存装置和读写方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230195637A1 (zh) |
EP (1) | EP4137956A4 (zh) |
CN (1) | CN113535633A (zh) |
WO (1) | WO2021209051A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979041A (zh) * | 2022-05-18 | 2022-08-30 | 芯河半导体科技(无锡)有限公司 | 一种提升片上缓存利用效率的拼包方法 |
CN115292236A (zh) * | 2022-09-30 | 2022-11-04 | 山东华翼微电子技术股份有限公司 | 一种基于高速接口多核加速方法及装置 |
CN116150046A (zh) * | 2023-04-21 | 2023-05-23 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
CN116418734A (zh) * | 2023-06-09 | 2023-07-11 | 湖北微源卓越科技有限公司 | 一种低时延的小包发送方法及装置 |
CN117111859A (zh) * | 2023-10-23 | 2023-11-24 | 北京紫光芯能科技有限公司 | 一种数据写入方法、装置及设备 |
WO2024045848A1 (zh) * | 2022-08-30 | 2024-03-07 | 深圳市中兴微电子技术有限公司 | 存储器访问控制电路及存储器访问控制方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113986792B (zh) * | 2021-10-26 | 2024-05-24 | 新华三信息安全技术有限公司 | 一种数据位宽转换方法及通信设备 |
CN115622958B (zh) * | 2022-10-14 | 2023-06-27 | 伟乐视讯科技股份有限公司 | 一种zynq***及虚拟mac实现方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5432918A (en) * | 1990-06-29 | 1995-07-11 | Digital Equipment Corporation | Method and apparatus for ordering read and write operations using conflict bits in a write queue |
US5666494A (en) * | 1995-03-31 | 1997-09-09 | Samsung Electronics Co., Ltd. | Queue management mechanism which allows entries to be processed in any order |
US6883044B1 (en) * | 2000-07-28 | 2005-04-19 | Micron Technology, Inc. | Synchronous flash memory with simultaneous access to one or more banks |
CN100449504C (zh) * | 2005-01-05 | 2009-01-07 | 华为技术有限公司 | 一种基于bitmap表的缓存管理方法 |
US7975109B2 (en) * | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
CN101308697B (zh) * | 2008-07-10 | 2011-08-24 | 哈尔滨工业大学 | 基于sdram的大容量fifo突发缓存器及数据存储方法 |
CN102637148B (zh) * | 2011-07-08 | 2014-10-22 | 中国科学院计算技术研究所 | 一种基于ddr sdram的栈式数据缓存装置及其方法 |
CN103543954B (zh) * | 2012-07-16 | 2018-03-23 | 深圳市中兴微电子技术有限公司 | 一种数据存储管理方法和装置 |
CN103780506B (zh) * | 2012-10-26 | 2017-08-08 | 中兴通讯股份有限公司 | 一种用于以太网设备的数据缓存***及方法 |
GB2533808B (en) * | 2014-12-31 | 2021-08-11 | Advanced Risc Mach Ltd | An apparatus and method for issuing access requests to a memory controller |
CN110704018B (zh) * | 2019-08-26 | 2020-11-06 | 深圳芯英科技有限公司 | 一种数据缓存器及数据处理方法 |
-
2020
- 2020-04-17 CN CN202010306644.9A patent/CN113535633A/zh active Pending
-
2021
- 2021-04-16 US US17/919,345 patent/US20230195637A1/en active Pending
- 2021-04-16 EP EP21788235.6A patent/EP4137956A4/en active Pending
- 2021-04-16 WO PCT/CN2021/087872 patent/WO2021209051A1/zh unknown
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114979041A (zh) * | 2022-05-18 | 2022-08-30 | 芯河半导体科技(无锡)有限公司 | 一种提升片上缓存利用效率的拼包方法 |
CN114979041B (zh) * | 2022-05-18 | 2024-03-08 | 芯河半导体科技(无锡)有限公司 | 一种提升片上缓存利用效率的拼包方法 |
WO2024045848A1 (zh) * | 2022-08-30 | 2024-03-07 | 深圳市中兴微电子技术有限公司 | 存储器访问控制电路及存储器访问控制方法 |
CN115292236A (zh) * | 2022-09-30 | 2022-11-04 | 山东华翼微电子技术股份有限公司 | 一种基于高速接口多核加速方法及装置 |
CN115292236B (zh) * | 2022-09-30 | 2022-12-23 | 山东华翼微电子技术股份有限公司 | 一种基于高速接口多核加速方法及装置 |
CN116150046A (zh) * | 2023-04-21 | 2023-05-23 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
CN116150046B (zh) * | 2023-04-21 | 2023-07-14 | 无锡沐创集成电路设计有限公司 | 一种高速缓存电路 |
CN116418734A (zh) * | 2023-06-09 | 2023-07-11 | 湖北微源卓越科技有限公司 | 一种低时延的小包发送方法及装置 |
CN116418734B (zh) * | 2023-06-09 | 2023-08-18 | 湖北微源卓越科技有限公司 | 一种低时延的小包发送方法及装置 |
CN117111859A (zh) * | 2023-10-23 | 2023-11-24 | 北京紫光芯能科技有限公司 | 一种数据写入方法、装置及设备 |
CN117111859B (zh) * | 2023-10-23 | 2024-03-19 | 北京紫光芯能科技有限公司 | 一种数据写入方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021209051A1 (zh) | 2021-10-21 |
US20230195637A1 (en) | 2023-06-22 |
EP4137956A1 (en) | 2023-02-22 |
EP4137956A4 (en) | 2024-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113535633A (zh) | 一种片上缓存装置和读写方法 | |
US20240143169A1 (en) | Method for Improving Message Storage Efficiency of Network Chip, Device, and Storage medium | |
CN107665146B (zh) | 内存管理装置和方法 | |
CN111190854B (zh) | 通信数据处理方法、装置、设备、***和存储介质 | |
US20150143045A1 (en) | Cache control apparatus and method | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
CN113032162B (zh) | 一种基于共享内存备份机制的多进程通讯方法 | |
US8281103B2 (en) | Method and apparatus for allocating storage addresses | |
CN110058816B (zh) | 一种基于ddr的高速多用户队列管理器及方法 | |
CN117632043B (zh) | Cxl内存模组、控制芯片、数据处理方法、介质和*** | |
CN113126911B (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
CN111538694A (zh) | 一种用于网络接口支持多链接和重传的数据缓存方法 | |
CN114706531A (zh) | 数据处理方法、装置、芯片、设备及介质 | |
CN106201918A (zh) | 一种基于大数据量和大规模缓存快速释放的方法和*** | |
CN112948287A (zh) | 一种基于Hashmap缓存机制的SD卡读写方法及*** | |
CN111181874B (zh) | 一种报文处理方法、装置及存储介质 | |
CN112817516A (zh) | 数据读写控制方法、装置、设备和存储介质 | |
CN114567614B (zh) | 基于fpga实现arp协议处理的方法及装置 | |
CN109285580B (zh) | 数据预处理装置、方法及异步双端随机存取存储器*** | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
EP4322017A1 (en) | On-chip integrated circuit, and data processing apparatus and method | |
CN116244219A (zh) | 一种基于raid缓存状态的落盘方法及*** | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN102469474A (zh) | 一种通信设备异常信息的处理方法及装置 | |
WO2024001332A1 (zh) | 多端口存储器、多端口存储器的读写方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |