CN117271382A - 一种fifo空间分配方法、装置、设备及存储介质 - Google Patents
一种fifo空间分配方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117271382A CN117271382A CN202311259918.3A CN202311259918A CN117271382A CN 117271382 A CN117271382 A CN 117271382A CN 202311259918 A CN202311259918 A CN 202311259918A CN 117271382 A CN117271382 A CN 117271382A
- Authority
- CN
- China
- Prior art keywords
- block
- space
- idle
- fifo
- target space
- 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 58
- 230000002093 peripheral effect Effects 0.000 claims abstract description 114
- 238000001514 detection method Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 12
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 239000002699 waste material Substances 0.000 abstract description 11
- 230000005540 biological transmission Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 9
- 239000012634 fragment Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006870 function 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
- 238000005457 optimization Methods 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本申请属于集成电路技术领域,公开了一种FIFO空间分配方法、装置、设备及存储介质,该方法包括:接收外设的空间申请指令;基于空间申请指令对FIFO空间进行划分,得到目标空间块;将目标空间块分配给发出空间申请指令的外设;接收外设的释放指令,将目标空间块释放回FIFO空间。本申请可以根据外设的需求,动态分配FIFO空间块,能让各个外设能分时复用同一块SRAM,能够在减少FIFO容量需求的同时,始终保持有足够的SRAM资源,提高FIFO的利用率,避免资源浪费。
Description
技术领域
本申请涉及集成电路技术领域,尤其是一种FIFO空间分配方法、装置、设备及存储介质。
背景技术
嵌入式外设系统通常包含串口、SPI接口、I2C、USB、MCI、PDM等接口,这些接口用于本设备与外部的设备或者模块通信;一般来说,外设接收或者发送都会比较慢,跟CPU处理的速率完全不匹配,会无效占用CPU的时间,因此会给外设的配备一个异步FIFO。FIFO是一种先进先出的缓存器,主要用于不同时钟域的数据传输,FIFO深度是固定大小的,一般按最大的设计;现有技术中,不同外设的工作速率是不一样的,且大多数情况下一个外设不会申请用满整个FIFO,导致在多个外设共享一个FIFO时,FIFO的利用率不能饱和,造成资源浪费。如果能跟根据外设的实际需求动态地分配FIFO空间,那么就能使用最小的硬件做更多的事。因此,现有技术中存在被多个外设共享的FIFO利用率不高,导致资源浪费的问题。
发明内容
本申请提供了一种FIFO空间分配方法、装置、设备及存储介质,能够提高FIFO的利用率,避免资源浪费。
第一方面,本申请实施例提供了一种FIFO空间分配方法,包括:
接收外设的空间申请指令;
基于空间申请指令对FIFO空间进行划分,得到目标空间块;
将目标空间块分配给发出空间申请指令的外设;
接收外设的释放指令,将目标空间块释放回FIFO空间。
进一步的,上述基于空间申请指令对FIFO空间进行划分,得到目标空间块,包括:
响应于优化分配指令,获取空间申请指令的起始地址和申请容量;
基于起始地址在FIFO空间中查找与申请容量相等的空闲块;
将与申请容量相等的空闲块作为目标空间块。
进一步的,上述基于空间申请指令对FIFO空间进行划分,得到目标空间块,还包括:
若未查找到与申请容量相等的空闲块,则执行查找步骤:在FIFO空间中查找目标容量的待划分空闲块;目标容量为申请容量的偶数倍;
若找到,则执行等分步骤:将待划分空闲块二等分,得到两个容量相等的预选空闲块;
若预选空闲块等于申请容量,则将预选空闲块作为目标空间块;
若预选空闲块不等于申请容量,则将预选空闲块作为待划分空闲块,并返回等分步骤;
若未找到,则令目标容量乘2,并返回查找步骤。
进一步的,上述接收外设的释放指令,将目标空间块释放回FIFO空间,包括:
接收释放指令和释放指令对应的目标空间块;
检测步骤:检测目标空间块是否与其左侧空闲块容量相等;
若是,则将目标空间块与左侧空闲块合并,得到合并块,并将合并块作为目标空间块,返回检测步骤;若否,则检测目标空间块是否与其右侧空闲块容量相等;
若是,则合并目标空间块和右侧空闲块,得到合并块,并将合并块作为目标空间块,返回检测步骤;若否,则将目标空间块标记为空闲块。
进一步的,上述基于空间申请指令对FIFO空间进行划分,得到目标空间块,包括:
响应于快速分配指令,获取空间申请指令的起始地址和申请容量;
确定共享FIFO空间的各外设的历史最小需求;
根据历史最小需求切割FIFO空间,得到多个空闲块;
基于起始地址在各空闲块中确定当前块;
判断步骤:判断当前块是否等于申请容量;
若是,则将当前块作为目标空间块;若否,则获取与当前块容量相等的等大空闲块,令当前块与等大空闲块合并,作为当前块;并返回判断步骤。
进一步的,上述接收外设的释放指令,将目标空间块释放回FIFO空间,包括:
接收释放指令和释放指令对应的目标空间块;
根据历史最小需求切割目标空间块,得到若干个空闲块。
进一步的,该方法还包括:
在执行等分步骤时,令预选空闲块的计数值等于待划分空闲块的计数值;
在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1;
计算目标空间块和左侧空闲块的计数值均值,或目标空间块和右侧空闲块的计数值均值,将计数值均值作为合并块的计数值。
进一步的,该方法还包括:
在当前块与等大空闲块合并时,计算当前块和等大空闲块的计数值均值,将计数值均值作为合并后的当前块的计数值;
在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1;
将目标空间块的计数值作为切割后的各空闲块的计数值。
进一步的,该方法还包括:
得到目标空间块后,获取各空闲块的计数值中的最小计数值;
判断目标空间块的计数值和最小计数值的差值是否超过预设阈值;
若是,则获取FIFO空间中,与目标空间块容量相等的多个待选空间块,将计数值最小的待选空间块作为目标空间块;若否或者未找到计数值最小的待选空间块,则将目标空间块分配给发出空间申请指令的外设。
第二方面,本申请实施例提供了一种FIFO空间分配装置,包括:
接收模块,用于接收外设的空间申请指令和释放指令;
划分模块,用于基于空间申请指令对FIFO空间进行划分,得到目标空间块;
分配模块,用于将目标空间块分配给发出空间申请指令的外设;
释放模块,用于响应释放指令,将目标空间块释放回FIFO空间。
进一步的,上述划分模块包括:
获取单元,用于获取空间申请指令的起始地址和申请容量;
起始单元,用于基于起始地址在FIFO空间中查找与申请容量相等的空闲块;
确定单元,用于将与申请容量相等的空闲块作为目标空间块。
进一步的,上述划分模块还包括:
查找单元,用于在没有找到与申请容量相等的空闲块时,在FIFO空间中查找目标容量的待划分空闲块;目标容量为申请容量的偶数倍;
分裂单元,用于将待划分空闲块二等分,得到两个容量相等的预选空闲块;
预选判断单元,用于在预选空闲块等于申请容量时,将预选空闲块作为目标空间块;以及,在预选空闲块不等于申请容量时,将预选空闲块作为待划分空闲块,并执行分裂单元;
循环单元,用于在未找到待划分空闲块时,令目标容量乘2,执行查找单元。
进一步的,上述释放模块包括:
重新获取单元,用于获取释放指令对应的目标空间块;
左侧检测单元,用于检测目标空间块是否与其左侧空闲块容量相等;
左侧合并单元,用于合并目标空间块与容量相等的左侧空闲块,得到合并块,并将合并块作为目标空间块,执行左侧检测单元;
右侧检测单元,用于检测目标空间块是否与其右侧空闲块容量相等;
右侧合并单元,用于合并目标空间块和右侧空闲块,得到合并块,并将合并块作为目标空间块,执行左侧检测单元;
结束标记单元,用于在目标空间块与右侧空闲块、左侧空闲块容量均不相等时,将目标空间块标记为空闲块。
进一步的,上述划分模块包括:
获取单元,用于获取空间申请指令的起始地址和申请容量;
最小需求单元,用于确定共享FIFO空间的各外设的历史最小需求;
切割单元,用于根据历史最小需求切割FIFO空间,得到多个空闲块;
当前块单元,用于基于起始地址在各空闲块中确定当前块;
判断单元,用于判断当前块是否等于申请容量;
目标单元,用于在当前块等于申请容量时,将当前块作为目标空间块;
合并单元,用于在当前块不等于申请容量时,获取与当前块容量相等的等大空闲块,令当前块与等大空闲块合并,作为当前块;并执行判断单元。
进一步的,上述释放模块包括:
重新获取单元,用于获取释放指令对应的目标空间块;
重新切割单元,用于根据历史最小需求切割目标空间块,得到若干个空闲块。
进一步的,该装置还包括:
计数模块,用于令预选空闲块的计数值等于待划分空闲块的计数值;
以及,在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1;
以及,计算目标空间块和左侧空闲块的计数值均值,或目标空间块和右侧空闲块的计数值均值,将计数值均值作为合并块的计数值。
进一步的,该装置还包括:
计数模块,用于在当前块与等大空闲块合并时,计算当前块和等大空闲块的计数值均值,将计数值均值作为合并后的当前块的计数值;
以及,在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1;
以及,将目标空间块的计数值作为切割后的各空闲块的计数值。
进一步的,该装置还包括:
损耗判断模块,用于得到目标空间块后,获取各空闲块的计数值中的最小计数值,并判断目标空间块的计数值和最小计数值的差值是否超过预设阈值;
重新确定模块,用于在超过预设阈值时,获取FIFO空间中,与目标空间块容量相等的多个待选空间块,将计数值最小的待选空间块作为目标空间块;以及,在未超过时,或者未找到计数值最小的待选空间块时,执行分配模块。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时执行如上述任一实施例的FIFO空间分配方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的FIFO空间分配方法的步骤。
综上,与现有技术相比,本申请实施例提供的技术方案带来的有益效果至少包括:
本申请实施例提供的一种FIFO空间分配方法,基于接收到的外设的空间申请指令;对FIFO空间进行划分,得到目标空间块,并将其分配给发出空间申请指令的外设;再接收外设的释放指令,将目标空间块释放回FIFO空间。上述方法可以根据外设的需求,动态分配FIFO空间块,能让各个外设能分时复用同一块SRAM,能够在减少FIFO容量需求的同时,始终保持有足够的SRAM资源,提高FIFO的利用率,避免资源浪费。
附图说明
图1为本申请一个示例性实施例提供的一种FIFO空间分配方法的流程图。
图2为本申请一个示例性实施例提供的外设、FIFO和CPU之间连接关系的示意图。
图3为本申请一个示例性实施例提供的目标空间块分配的示意图。
图4为本申请一个示例性实施例提供的二分法划分FIFO空间的示意图。
图5为本申请一个示例性实施例提供的二分法步骤的流程图。
图6为本申请一个示例性实施例提供的合并法确定目标空间块的示意图。
图7为本申请一个示例性实施例提供的一种FIFO空间分配装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。
基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在现有技术中,由于FIFO(First Input First Output)先进先出的特性,想要读取后进入FIFO的数据,需要先进的数据读出来;因此若多个外设共享同一个FIFO,第一外设先将数据发送到FIFO进行存储,第二外设在第一外设之后将数据发送到FIFO,若此时第二外设想要读取其存储的数据,需要令FIFO先将第一外设的数据读出来;若第一外设的工作速率较慢,则会导致第二外设需要等待许久,并在等待过程中一直占用着FIFO资源,进而影响其他外设的写入和读出。可见,若FIFO空间无法分块复用,先进先出原则会使共享FIFO的各个外设受到彼此工作速率的影响,只能排队等待FIFO资源,降低FIFO的利用率,造成FIFO资源浪费。
为了解决上述问题,本申请给出了以下方案:
请参见图1,本申请实施例提供了一种FIFO空间分配方法,该方法具体包括以下步骤:
步骤S1,接收外设的空间申请指令。
其中,空间申请指令包括了外设想要申请的起始地址、申请容量等信息。
本申请所应用的外设系统包括外设HUB控制器,一段固定容量的SRAM(StaticRandom-Access Memory,静态随机存取存储器)以及各种类型的外设。
外设都集成在HUB控制器,由HUB控制器管理。本申请的算法存储于HUB控制器中,由HUB控制器执行。每个外设可能有接收和发送的传输通道,HUB控制器为每个传输通道分配一段FIFO空间,FIFO空间具体在SRAM的一段地址范围。
具体地,请参见图2,所有的外设模块都连接在外设HUB上,外设可以是UART、I2C、ADC、DAC、SPI、I2S、MCI、USB等类型的接口,HUB用于管理外设,给外设分配FIFO空间,配置FIFO传输相关的参数等,同时外设HUB会连接一段SRAM,SRAM是所有外设的FIFO空间池,外设的FIFO空间都是从SRAM分配,通关HUB接口的配置,可以为某一个外设分配一段地址连续且大小不大于SRAM容量的FIFO空间,外设根据自己的实际需求申请FIFO空间,外设只有在需要工作的时候才申请FIFO空间,如果传输完成后,应释放FIFO空间,释放的空间可以给别的外设使用。这样就能动态复用SRAM,使得每个外设都有相应的FIFO空间,做好性能和资源的最优化。
在具体实施过程中,每个外设都支持CPU传输和DMA传输两种方式,CPU传输是CPU直接读写SRAM里面的内容,DMA传输是指DMA控制器将数据从SRAM搬运到DDR中,DMA传输接收时,外设的数据上传到SRAM中,也就是FIFO中,当触发FIFO阈值时,HUB会发起DMA请求,将数据从SRAM搬运到DDR中,发送也是HUB发起DMA请求将数据从DDR搬运到SRAM中并自动从外设发送出去。
请参见图3,每个外设的接收RX和发送TX的独立的通道,有些外设同时具备RX和TX通道,有些外设又只有TX通道,给外设的传输通道分配FIFO的空间实际是一段连续地址的物理SRAM,FIFO空间包含起始地址(Start address)、结束地址(End address),FIFO宽度和FIFO深度,FIFO空间可以看作一个环形缓冲区(ringbuffer),当从起始地址写数据写到结束地址时,如果继续写,会自动跳到起始地址开始写,读数据也是同样的道理,只要写的位置和读的位置不冲突就可以保证FIFO空间的正常使用。
FIFO深度是指FIFO空间的剩余大小,一般指还可以写入的数据量。
FIFO的宽度是指外设到SRAM、SRAM到DDR之间的传输总线的宽度,支持1Byte、2Byte、4Byte、8Byte可配置,这个配置是根据外设的特性来配置的。有外设需要按1Byte传输,有些外设可以按4Byte传输,FIFO宽度越大,传输的效率更高。
本申请的FIFO空间可以被动态分配,使用之前申请,使用完成后释放。根据外设的特性,FIFO空间的容量一般是2的幂次方,并且地址是要求连续的,因此将SRAM分解成由2的幂次方个的空闲块组成,也就是FIFO空间块的最小粒度是1/n,并且n为2的幂次方。
步骤S2,基于空间申请指令对FIFO空间进行划分,得到目标空间块。
具体地,FIFO空间申请和释放可以采用分裂优先或者合并优先的策略,分裂优先是将整个SRAM按二分法不断的分裂,直至找到合适的块,合并优先是指实现将SRAM划分成数量为1/N的空闲块,其中N为空闲块的数量,也就是分配的最小粒度,N为2的幂次方,一般空闲块的容量为所有外设里面的最小需求,比如最小需求的外设为UART,只需要64Byte,那么N=总容量/64。合并优先是通过不断合并的方式找到合适的块。分裂优先不容易产生碎片,不会浪费空间,合并优先实现简单,响应速度快,但可能会产生碎片。
具体地,本申请还可以满足一些FIFO空间需求特别大的但占用时间很短的特殊应用场景。
步骤S3,将目标空间块分配给发出空间申请指令的外设。
步骤S4,接收外设的释放指令,将目标空间块释放回FIFO空间。
在具体实施过程中,上述实施例和图1中的步骤编号仅用于区分方案中的各个步骤,不用于限定各个步骤的执行顺序;对于本领域的普通技术人员来说,在不脱离本申请构思的前提下可以根据具体情况对步骤执行顺序进行调整,此处仅作为示例性的说明。
上述实施例提供的一种FIFO空间分配方法,基于接收到的外设的空间申请指令;对FIFO空间进行划分,得到目标空间块,并将其分配给发出空间申请指令的外设;再接收外设的释放指令,将目标空间块释放回FIFO空间。上述方法可以根据外设的需求,动态分配FIFO空间块,能让各个外设能分时复用同一块SRAM,能够在减少FIFO容量需求的同时,始终保持有足够的SRAM资源,提高FIFO的利用率,避免资源浪费。
在一些实施例中,上述基于空间申请指令对FIFO空间进行划分,得到目标空间块,包括:
响应于优化分配指令,获取空间申请指令的起始地址和申请容量。
基于起始地址在FIFO空间中查找与申请容量相等的空闲块。
将与申请容量相等的空闲块作为目标空间块。
在一实施例中,上述基于空间申请指令对FIFO空间进行划分,得到目标空间块,还包括:
若未查找到与申请容量相等的空闲块,则执行查找步骤:在FIFO空间中查找目标容量的待划分空闲块;目标容量为申请容量的偶数倍。
若找到,则执行等分步骤:将待划分空闲块二等分,得到两个容量相等的预选空闲块。
若预选空闲块等于申请容量,则将预选空闲块作为目标空间块。
若预选空闲块不等于申请容量,则将预选空闲块作为待划分空闲块,并返回等分步骤。
若未找到,则令目标容量乘2,并返回查找步骤。
其中,优化分配指令为用户输入的,该指令表明用户可以接受分配时间慢一点,但要求不要产生碎片,进一步避免浪费FIFO空间;因此在接收到优化分配指令时,执行二分法分配。
具体地,请参见图4,由于外设的一般特性,分配的FIFO空间一般是2的幂次方,假设SRAM的容量为A,共划分成N个容量相等的空闲块。
外设传输通道的FIFO空间最小申请粒度为1/N,可以简单外设传输通道的数量等于需要划分的N个空闲块,并且算数上应使得A、N都是2的幂次方。
请参见图5,申请的时候,从空间申请指令的起始地址开始,遍历寻找是否存在和申请容量相等的FIFO空闲块,因为申请容量必须是1/N的倍数,本申请假设申请容量为M,如果存在容量为M的空闲块,那么将该空闲块作为目标空闲快分配给外设的传输通道用。
如果不存在,那么从起始地址开始,寻找容量为2*M的空闲块,即第一次寻找时,目标容量为申请容量的2倍,若找到了,则将这个容量2*M的空闲块分裂成两个容量相等的预选空闲块,并将两个中的任意一个或地址更低的预选空闲块分配给外设传输通道用。
如果没有找到容量为2*M的空闲块,那就找容量为2*2*M即4*M的空闲块,将其分裂为两个2*M的预选空闲块,但2*M≠M,需要继续二等分得到M的空闲块;如此反复,直至分裂出和申请容量相等的空闲块,作为目标空间块。最后将目标空间块的信息,包括起始地址和结束地址,告诉HUB控制器,HUB控制器最终锁定该FIFO空间给外设传输通道使用。
上述实施例给出的空间块划分方法,能够保证划分给外设的FIFO空间块不会有多余,进一步减少了碎片的产生,避免了空间的浪费。
在一些实施例中,上述接收外设的释放指令,将目标空间块释放回FIFO空间,包括:
接收释放指令和释放指令对应的目标空间块。
检测步骤:检测目标空间块是否与其左侧空闲块容量相等。
若是,则将目标空间块与左侧空闲块合并,得到合并块,并将合并块作为目标空间块,返回检测步骤;若否,则检测目标空间块是否与其右侧空闲块容量相等。
若是,则合并目标空间块和右侧空闲块,得到合并块,并将合并块作为目标空间块,返回检测步骤;若否,则将目标空间块标记为空闲块。
具体地,在每次释放目标空间块的时候,先配置HUB控制器,清楚相关的配置,解除对FIFO空间的锁定,断开外设传输通道与FIFO空间的联系,释放该目标空间块,此时,检查该目标空间块左边(低地址)和右边(高地址)是否存在与之容量相等的空闲块,如果存在,则将这目标空间块和相等的空闲块合并成一个,如果左右两个都相等,则优先合并左边的空闲块。
可以认为,优先判断左侧空闲块是否相等,若容量相等,则合并;若不相等,再退而求其次判断右侧地址的空闲块,若容量相等,则合并。
合并完成后,再从低地址遍历,寻找左右两侧是否存在容量相等的空闲块,如果存在就合并,如此反复,直至两侧都没有容量相等的空闲块,将当前合并得到的块标记为空闲块。
上述实施例对二分法划分得到的目标空间块执行了相对应的释放合并流程,使得被划分后的目标空间块能够恢复到分配前的状态,保证了FIFO空间的稳定和后续空间块的分配。
在一些实施例中,上述基于空间申请指令对FIFO空间进行划分,得到目标空间块,包括:
响应于快速分配指令,获取空间申请指令的起始地址和申请容量。
确定共享FIFO空间的各外设的历史最小需求。
根据历史最小需求切割FIFO空间,得到多个空闲块。
基于起始地址在各空闲块中确定当前块。
判断步骤:判断当前块是否等于申请容量。
若是,则将当前块作为目标空间块;若否,则获取与当前块容量相等的等大空闲块,令当前块与等大空闲块合并,作为当前块;并返回判断步骤。
其中,快速分配指令为用户输入的,该指令表明用户需要快速进行空间分配和存储,不考虑是否会产生空间碎片;因此在接收到快速分配指令时,执行合并法分配。
请参见图6,合并法是将整个SRAM划分成N个容量相等的空闲块,N为2的幂次方,一般空闲块的容量为所有外设里面的最小需求,比如最小需求的外设为UART,只需要64Byte,那么N=总容量/64,也就是空间申请的最小粒度是1/N。
连续的空闲块称之为空闲段,在申请空间的时候,根据空间申请指令的起始地址确定当前块及其所在的当前空闲段,如果当前块与申请容量不相等,则向右边(高地址)合并一个与当前块容量相等的等大空闲块;如果合并后的当前块与申请容量仍不相等,则继续合并一个与当前块容量相等的等大空闲块,即第一次以后寻找的等大空闲块是由多个最小空闲块组成的空闲段,也就是第一次以后合并的都是2的幂次方数量的空闲块,直至当前块与申请容量相等。如果没有空闲块合并了,则分配失败,将当前块释放,并从下一个空闲段寻找。
在一些实施例中,上述接收外设的释放指令,将目标空间块释放回FIFO空间,包括:
接收释放指令和释放指令对应的目标空间块。
根据历史最小需求切割目标空间块,得到若干个空闲块。
具体地,释放目标空间块时将其按历史最小需求N重新划分,并重新标记为空闲块。
上述实施例中给出的合并法分配空间块和释放空间块适合低时延,申请块的容量变化不大的情况,否则可能会产生碎片造成浪费。
在一些实施例中,该方法还包括:
在执行等分步骤时,令预选空闲块的计数值等于待划分空闲块的计数值。
在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1。
计算目标空间块和左侧空闲块的计数值均值,或目标空间块和右侧空闲块的计数值均值,将计数值均值作为合并块的计数值。
在一些实施例中,该方法还包括:
在当前块与等大空闲块合并时,计算当前块和等大空闲块的计数值均值,将计数值均值作为合并后的当前块的计数值。
在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1。
将目标空间块的计数值作为切割后的各空闲块的计数值。
在一些实施例中,该方法还包括:
得到目标空间块后,获取各空闲块的计数值中的最小计数值。
判断目标空间块的计数值和最小计数值的差值是否超过预设阈值。
若是,则获取FIFO空间中,与目标空间块容量相等的多个待选空间块,将计数值最小的待选空间块作为目标空间块;若否或者未找到计数值最小的待选空间块,则将目标空间块分配给发出空间申请指令的外设。
具体地,本申请还涉及了一种消极的损耗均衡,每个FIFO空闲块都有一组结构体参数用于描述该空闲块,其中有一个属性是计数器,即外设每次申请目标空间块时,申请成功都会将这个计数器加1,并且会记录所有块中最大和最小的计数。
在每块空闲块合并的时候,合并后的块的计数值为原两个块的计数值的平均值(整除不含小数);块分裂时,分裂得到的两个块的计数值与原来的块相等。
因此,在具体实施过程中,当执行二分法时,预选空闲块的计数值等于待划分空闲块的计数值,当二分法得到的目标空间块释放时,合并块的计数值=(目标空间块的计数值+左侧空闲块或右侧空闲块的计数值)/2。当执行合并法时,合并后的当前块的计数值=(原来当前块的计数值+等大空闲块的计数值)/2,当合并法得到的目标空间块释放时,将目标空间块的计数值作为切割后的各空闲块的计数值。以及,目标空间块的计数值在释放时加1。
打开损耗均衡功能后,在外设申请FIFO空间块时,如果找到了合适的目标空间块,则会比较目标空闲块的计数值与最小计数值的差值是否达到了设定的预设阈值;若达到了预设阈值,则触发了损耗均衡,会在找到了目标空间块的基础上,再继续查找其他符合条件的待选空闲块中,并确定计数值最小的待选空闲块,可以理解的是,待选空闲块中的最小计数值必须小于目标空间块的计数值,并将其作为新的目标空间块分配给外设。
例如外设申请一个256Byte的块,经过二分法分裂后得到了一个256Byte容量的目标空间块,但因为是二分法,所以在划分过程中可能产生了多个256Byte容量的空闲块,若目标空间块触发了损耗均衡,就从其他256Byte的空闲块中选计数值最小的。
如果没有计数值比目标空间块更小的空闲块,或者目标空间块的计数值没有触发损耗均衡,则使用当前的目标空间块。消极的损耗均衡只是尽量去实现损耗均衡,但不一定能保证损耗均衡,如果要保证损耗均衡,这样会损失性能,得不偿失。
上述实施例给出的损耗均衡方法,在实现FIFO空间的动态分配时,较好的平衡了FIFO空间内各个空闲块的损耗,保证了FIFO空间的可用性和稳定性。
请参见图7,本申请另一实施例提供了一种FIFO空间分配装置,该装置包括:
接收模块101,用于接收外设的空间申请指令和释放指令。
划分模块102,用于基于空间申请指令对FIFO空间进行划分,得到目标空间块。
分配模块103,用于将目标空间块分配给发出空间申请指令的外设。
释放模块104,用于响应释放指令,将目标空间块释放回FIFO空间。
上述实施例提供的一种FIFO空间分配装置,基于接收到的外设的空间申请指令;对FIFO空间进行划分,得到目标空间块,并将其分配给发出空间申请指令的外设;再接收外设的释放指令,将目标空间块释放回FIFO空间。上述装置可以根据外设的需求,动态分配FIFO空间块,能让各个外设能分时复用同一块SRAM,能够在减少FIFO容量需求的同时,始终保持有足够的SRAM资源,提高FIFO的利用率,避免资源浪费。
在一些实施例中,上述划分模块包括:
获取单元,用于获取空间申请指令的起始地址和申请容量。
起始单元,用于基于起始地址在FIFO空间中查找与申请容量相等的空闲块。
确定单元,用于将与申请容量相等的空闲块作为目标空间块。
在一些实施例中,上述划分模块还包括:
查找单元,用于在没有找到与申请容量相等的空闲块时,在FIFO空间中查找目标容量的待划分空闲块;目标容量为申请容量的偶数倍。
分裂单元,用于将待划分空闲块二等分,得到两个容量相等的预选空闲块。
预选判断单元,用于在预选空闲块等于申请容量时,将预选空闲块作为目标空间块;以及,在预选空闲块不等于申请容量时,将预选空闲块作为待划分空闲块,并执行分裂单元。
循环单元,用于在未找到待划分空闲块时,令目标容量乘2,执行查找单元。
在一些实施例中,上述释放模块包括:
重新获取单元,用于获取释放指令对应的目标空间块。
左侧检测单元,用于检测目标空间块是否与其左侧空闲块容量相等。
左侧合并单元,用于合并目标空间块与容量相等的左侧空闲块,得到合并块,并将合并块作为目标空间块,执行左侧检测单元。
右侧检测单元,用于检测目标空间块是否与其右侧空闲块容量相等。
右侧合并单元,用于合并目标空间块和右侧空闲块,得到合并块,并将合并块作为目标空间块,执行左侧检测单元。
结束标记单元,用于在目标空间块与右侧空闲块、左侧空闲块容量均不相等时,将目标空间块标记为空闲块。
在一些实施例中,上述划分模块包括:
获取单元,用于获取空间申请指令的起始地址和申请容量。
最小需求单元,用于确定共享FIFO空间的各外设的历史最小需求。
切割单元,用于根据历史最小需求切割FIFO空间,得到多个空闲块。
当前块单元,用于基于起始地址在各空闲块中确定当前块。
判断单元,用于判断当前块是否等于申请容量。
目标单元,用于在当前块等于申请容量时,将当前块作为目标空间块。
合并单元,用于在当前块不等于申请容量时,获取与当前块容量相等的等大空闲块,令当前块与等大空闲块合并,作为当前块;并执行判断单元。
在一些实施例中,上述释放模块包括:
重新获取单元,用于获取释放指令对应的目标空间块。
重新切割单元,用于根据历史最小需求切割目标空间块,得到若干个空闲块。
在一些实施例中,该装置还包括:
计数模块,用于令预选空闲块的计数值等于待划分空闲块的计数值;以及,在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1;以及,计算目标空间块和左侧空闲块的计数值均值,或目标空间块和右侧空闲块的计数值均值,将计数值均值作为合并块的计数值。
在一些实施例中,该装置还包括:
计数模块,用于在当前块与等大空闲块合并时,计算当前块和等大空闲块的计数值均值,将计数值均值作为合并后的当前块的计数值;以及,在接收到释放指令对应的目标空间块后,令目标空间块的计数值加1;以及,将目标空间块的计数值作为切割后的各空闲块的计数值。
在一些实施例中,该装置还包括:
损耗判断模块,用于得到目标空间块后,获取各空闲块的计数值中的最小计数值,并判断目标空间块的计数值和最小计数值的差值是否超过预设阈值。
重新确定模块,用于在超过预设阈值时,获取FIFO空间中,与目标空间块容量相等的多个待选空间块,将计数值最小的待选空间块作为目标空间块;以及,在未超过时,或者未找到计数值最小的待选空间块时,执行分配模块。
本实施例中提供的关于一种FIFO空间分配装置的具体限定,可以参见上文中关于一种FIFO空间分配方法的实施例,于此不再赘述。上述一种FIFO空间分配装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。
上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本申请实施例提供了一种计算机设备,该计算机设备可以包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。处计算机程序被处理器执行时,使得处理器执行如上述任一实施例的一种FIFO空间分配方法的步骤。
本实施例提供的计算机设备的工作过程、工作细节和技术效果,可以参见上文中关于一种FIFO空间分配方法的实施例,于此不再赘述。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的一种FIFO空间分配方法的步骤。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见上文中关于一种FIFO空间分配方法的实施例,于此不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
1.一种FIFO空间分配方法,其特征在于,包括:
接收外设的空间申请指令;
基于所述空间申请指令对FIFO空间进行划分,得到目标空间块;
将所述目标空间块分配给发出所述空间申请指令的所述外设;
接收所述外设的释放指令,将所述目标空间块释放回所述FIFO空间。
2.根据权利要求1所述的FIFO空间分配方法,其特征在于,所述基于所述空间申请指令对FIFO空间进行划分,得到目标空间块,包括:
响应于优化分配指令,获取所述空间申请指令的起始地址和申请容量;
基于所述起始地址在所述FIFO空间中查找与所述申请容量相等的空闲块;
将与所述申请容量相等的所述空闲块作为所述目标空间块。
3.根据权利要求2所述的FIFO空间分配方法,其特征在于,所述基于所述空间申请指令对FIFO空间进行划分,得到目标空间块,还包括:
若未查找到与所述申请容量相等的所述空闲块,则执行查找步骤:在所述FIFO空间中查找目标容量的待划分空闲块;所述目标容量为所述申请容量的偶数倍;
若找到,则执行等分步骤:将所述待划分空闲块二等分,得到两个容量相等的预选空闲块;
若所述预选空闲块等于所述申请容量,则将所述预选空闲块作为所述目标空间块;
若所述预选空闲块不等于所述申请容量,则将所述预选空闲块作为所述待划分空闲块,并返回所述等分步骤;
若未找到,则令所述目标容量乘2,并返回所述查找步骤。
4.根据权利要求3所述的FIFO空间分配方法,其特征在于,所述接收所述外设的释放指令,将所述目标空间块释放回所述FIFO空间,包括:
接收所述释放指令和所述释放指令对应的所述目标空间块;
检测步骤:检测所述目标空间块是否与其左侧空闲块容量相等;
若是,则将所述目标空间块与所述左侧空闲块合并,得到合并块,并将所述合并块作为所述目标空间块,返回所述检测步骤;
若否,则检测所述目标空间块是否与其右侧空闲块容量相等;
若是,则合并所述目标空间块和所述右侧空闲块,得到所述合并块,并将所述合并块作为所述目标空间块,返回所述检测步骤;
若否,则将所述目标空间块标记为所述空闲块。
5.根据权利要求1所述的FIFO空间分配方法,其特征在于,所述基于所述空间申请指令对FIFO空间进行划分,得到目标空间块,包括:
响应于快速分配指令,获取所述空间申请指令的起始地址和申请容量;
确定共享所述FIFO空间的各所述外设的历史最小需求;
根据所述历史最小需求切割所述FIFO空间,得到多个空闲块;
基于所述起始地址在各所述空闲块中确定当前块;
判断步骤:判断所述当前块是否等于所述申请容量;
若是,则将所述当前块作为所述目标空间块;
若否,则获取与所述当前块容量相等的等大空闲块,令所述当前块与所述等大空闲块合并,作为所述当前块;并返回所述判断步骤。
6.根据权利要求5所述的FIFO空间分配方法,其特征在于,所述接收所述外设的释放指令,将所述目标空间块释放回所述FIFO空间,包括:
接收所述释放指令和所述释放指令对应的所述目标空间块;
根据所述历史最小需求切割所述目标空间块,得到若干个所述空闲块。
7.根据权利要求4所述的FIFO空间分配方法,其特征在于,还包括:
在执行所述等分步骤时,令所述预选空闲块的计数值等于所述待划分空闲块的所述计数值;
在接收到所述释放指令对应的所述目标空间块后,令所述目标空间块的计数值加1;
计算所述目标空间块和所述左侧空闲块的计数值均值,或所述目标空间块和所述右侧空闲块的计数值均值,将所述计数值均值作为所述合并块的所述计数值。
8.根据权利要求6所述的FIFO空间分配方法,其特征在于,还包括:
在所述当前块与所述等大空闲块合并时,计算所述当前块和所述等大空闲块的计数值均值,将所述计数值均值作为合并后的所述当前块的计数值;
在接收到所述释放指令对应的所述目标空间块后,令所述目标空间块的计数值加1;
将所述目标空间块的所述计数值作为切割后的各所述空闲块的所述计数值。
9.根据权利要求7或8任一项所述的FIFO空间分配方法,其特征在于,还包括:
得到所述目标空间块后,获取各所述空闲块的所述计数值中的最小计数值;
判断所述目标空间块的所述计数值和所述最小计数值的差值是否超过预设阈值;
若是,则获取所述FIFO空间中,与所述目标空间块容量相等的多个待选空间块,将所述计数值最小的所述待选空间块作为所述目标空间块;
若否或者未找到所述计数值最小的所述待选空间块,则将所述目标空间块分配给发出所述空间申请指令的所述外设。
10.一种FIFO空间分配装置,其特征在于,包括:
接收模块,用于接收外设的空间申请指令和释放指令;
划分模块,用于基于所述空间申请指令对FIFO空间进行划分,得到目标空间块;
分配模块,用于将所述目标空间块分配给发出所述空间申请指令的所述外设;
释放模块,用于响应所述释放指令,将所述目标空间块释放回所述FIFO空间。
11.根据权利要求10所述的FIFO空间分配装置,其特征在于,所述划分模块包括:
获取单元,用于获取所述空间申请指令的起始地址和申请容量;
起始单元,用于基于所述起始地址在所述FIFO空间中查找与所述申请容量相等的空闲块;
确定单元,用于将与所述申请容量相等的所述空闲块作为所述目标空间块。
12.根据权利要求11所述的FIFO空间分配装置,其特征在于,所述划分模块还包括:
查找单元,用于在没有找到与所述申请容量相等的空闲块时,在所述FIFO空间中查找目标容量的待划分空闲块;所述目标容量为所述申请容量的偶数倍;
分裂单元,用于将所述待划分空闲块二等分,得到两个容量相等的预选空闲块;
预选判断单元,用于在所述预选空闲块等于所述申请容量时,将所述预选空闲块作为所述目标空间块;以及,在所述预选空闲块不等于所述申请容量时,将所述预选空闲块作为所述待划分空闲块,并执行所述分裂单元;
循环单元,用于在未找到所述待划分空闲块时,令所述目标容量乘2,执行所述查找单元。
13.根据权利要求12所述的FIFO空间分配装置,其特征在于,所述释放模块包括:
重新获取单元,用于获取所述释放指令对应的所述目标空间块;
左侧检测单元,用于检测所述目标空间块是否与其左侧空闲块容量相等;
左侧合并单元,用于合并所述目标空间块与容量相等的左侧空闲块,得到合并块,并将所述合并块作为所述目标空间块,执行所述左侧检测单元;
右侧检测单元,用于检测所述目标空间块是否与其右侧空闲块容量相等;
右侧合并单元,用于合并所述目标空间块和所述右侧空闲块,得到所述合并块,并将所述合并块作为所述目标空间块,执行所述左侧检测单元;
结束标记单元,用于在所述目标空间块与所述右侧空闲块、所述左侧空闲块容量均不相等时,将所述目标空间块标记为所述空闲块。
14.根据权利要求10所述的FIFO空间分配装置,其特征在于,所述划分模块包括:
获取单元,用于获取所述空间申请指令的起始地址和申请容量;
最小需求单元,用于确定共享所述FIFO空间的各所述外设的历史最小需求;
切割单元,用于根据所述历史最小需求切割所述FIFO空间,得到多个空闲块;
当前块单元,用于基于所述起始地址在各所述空闲块中确定当前块;
判断单元,用于判断所述当前块是否等于所述申请容量;
目标单元,用于在所述当前块等于所述申请容量时,将所述当前块作为所述目标空间块;
合并单元,用于在所述当前块不等于所述申请容量时,获取与所述当前块容量相等的等大空闲块,令所述当前块与所述等大空闲块合并,作为所述当前块;并执行所述判断单元。
15.根据权利要求14所述的FIFO空间分配装置,其特征在于,所述释放模块包括:
重新获取单元,用于获取所述释放指令对应的所述目标空间块;
重新切割单元,用于根据所述历史最小需求切割所述目标空间块,得到若干个所述空闲块。
16.根据权利要求13所述的FIFO空间分配装置,其特征在于,还包括:
计数模块,用于令所述预选空闲块的计数值等于所述待划分空闲块的所述计数值;
以及,在接收到所述释放指令对应的所述目标空间块后,令所述目标空间块的计数值加1;
以及,计算所述目标空间块和所述左侧空闲块的计数值均值,或所述目标空间块和所述右侧空闲块的计数值均值,将所述计数值均值作为所述合并块的所述计数值。
17.根据权利要求15所述的FIFO空间分配装置,其特征在于,还包括:
计数模块,用于在所述当前块与所述等大空闲块合并时,计算所述当前块和所述等大空闲块的计数值均值,将所述计数值均值作为合并后的所述当前块的计数值;
以及,在接收到所述释放指令对应的所述目标空间块后,令所述目标空间块的计数值加1;
以及,将所述目标空间块的所述计数值作为切割后的各所述空闲块的所述计数值。
18.根据权利要求16或17任一项所述的FIFO空间分配装置,其特征在于,还包括:
损耗判断模块,用于得到所述目标空间块后,获取各所述空闲块的所述计数值中的最小计数值,并判断所述目标空间块的所述计数值和所述最小计数值的差值是否超过预设阈值;
重新确定模块,用于在超过所述预设阈值时,获取所述FIFO空间中,与所述目标空间块容量相等的多个待选空间块,将所述计数值最小的所述待选空间块作为所述目标空间块;以及,在未超过时,或者未找到所述计数值最小的所述待选空间块时,执行所述分配模块。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9中任一项所述的FIFO空间分配方法的步骤。
20.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的FIFO空间分配方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311259918.3A CN117271382A (zh) | 2023-09-26 | 2023-09-26 | 一种fifo空间分配方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311259918.3A CN117271382A (zh) | 2023-09-26 | 2023-09-26 | 一种fifo空间分配方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117271382A true CN117271382A (zh) | 2023-12-22 |
Family
ID=89213919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311259918.3A Pending CN117271382A (zh) | 2023-09-26 | 2023-09-26 | 一种fifo空间分配方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117271382A (zh) |
-
2023
- 2023-09-26 CN CN202311259918.3A patent/CN117271382A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048442B2 (en) | Scalable in-memory object storage system using hybrid memory devices | |
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
US10152501B2 (en) | Rollover strategies in a n-bit dictionary compressed column store | |
US8583756B2 (en) | Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system | |
CN107665146B (zh) | 内存管理装置和方法 | |
US20130212594A1 (en) | Method of optimizing performance of hierarchical multi-core processor and multi-core processor system for performing the method | |
US11861196B2 (en) | Resource allocation method, storage device, and storage system | |
CN107209716B (zh) | 内存管理装置和方法 | |
CN107969153B (zh) | 一种资源分配方法、装置及numa系统 | |
CN111309644B (zh) | 一种内存分配方法、装置和计算机可读存储介质 | |
US20130061009A1 (en) | High Performance Free Buffer Allocation and Deallocation | |
US20190286582A1 (en) | Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests | |
US20160070647A1 (en) | Memory system | |
US20100325360A1 (en) | Multi-core processor and multi-core processor system | |
US9317306B2 (en) | Computer device and memory management method thereof | |
CN110908595B (zh) | 存储装置及信息处理系统 | |
US9858204B2 (en) | Cache device, cache system, and cache method | |
CN117271382A (zh) | 一种fifo空间分配方法、装置、设备及存储介质 | |
EP4321981A1 (en) | Data processing method and apparatus | |
CN114816322A (zh) | Ssd的外部排序方法、装置和ssd存储器 | |
CN115878309A (zh) | 资源分配方法、装置、处理核、设备和计算机可读介质 | |
US10783096B2 (en) | Storage system and method of controlling I/O processing | |
WO2017070869A1 (zh) | 一种内存配置方法、装置及系统 | |
CN107273188B (zh) | 一种虚拟机中央处理单元cpu绑定方法及装置 | |
CN111694635A (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 |