带有关键字的硬件缓存管理单元(BMU)制造技术

技术编号:24168393 阅读:22 留言:0更新日期:2020-05-16 02:09
提供了带有关键字的硬件缓存管理单元(BMU)。所提供的硬件缓存管理单元,包括分配‑锁定单元、命中‑锁定单元、释放‑解锁单元、关键字提交单元以及关键字表;所述关键字表包括多个条目,每个条目代表缓存单元之一;所述分配‑锁定单元从关键字表中搜索代表可用缓存单元的条目并输出代表该可用缓存单元的缓存单元索引;所述命中‑锁定单元响应于被提供的关键字输出存储了被提供的关键字的条目对应的缓存单元索引;所述解锁‑释放单元响应于被提供的缓存单元索引,将关键字表中该被提供的缓存单元索引对应的条目的分配计数字段递减;所述关键字提交单元响应于被提供的关键字与缓存单元索引,将被提供的关键字记录在关键字表中该被提供的缓存单元索引对应的条目中。

Hardware cache management unit (BMU) with key words

【技术实现步骤摘要】
带有关键字的硬件缓存管理单元(BMU)
本申请涉及缓存管理,具体地,涉及带有关键字的硬件缓存管理单元(BMU,BufferManagementUnit)。
技术介绍
图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同固态存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(SerialAdvancedTechnologyAttachment,串行高级技术附件)、SCSI(SmallComputerSystemInterface,小型计算机系统接口)、SAS(SerialAttachedSCSI,串行连接SCSI)、IDE(IntegratedDriveElectronics,集成驱动器电子)、USB(UniversalSerialBus,通用串行总线)、PCIE(PeripheralComponentInterconnectExpress,PCIe,高速外围组件互联)、NVMe(NVMExpress,高速非易失存储)、UFS(UniversalFlashStorage)、eMMC(embeddedMMC(MultiMediaCard))、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(DynamicRandomAccessMemory,动态随机访问存储器)110。NAND闪存、相变存储器、FeRAM(FerroelectricRAM,铁电存储器)、MRAM(MagneticRandomAccessMemory,磁阻存储器)、RRAM(ResistiveRandomAccessMemory,阻变存储器)、XPoint存储器等是常见的NVM。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及DRAM110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM110,并可访问DRAM110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。图2展示了存储设备的控制部件的框图。控制部件104包括主机接口103、前端处理单元210、处理器240、缓存管理单元(BMU)270以及介质接口控制器106。控制部件104还耦合到多个缓存单元与NVM芯片。多个缓存单元由例如DRAM提供。可选的,多个缓存单元被实施于控制部件104内部,与控制部件104属于同一颗芯片。前端处理单元210从主机接口103获取主机提供的命令(例如,IO命令),将命令提供给处理器240。处理器240识别命令的含义,并做出相应处理,以及操作介质接口控制器106访问NVM芯片。缓存管理单元270管理缓存单元的分配与释放。缓存单元用于临时存储IO命令访问的数据,例如,缓存主机提供的写命令要写入NVM芯片的数据,和/或缓存从NVM芯片读出的数据。现有技术的缓存管理单元,以缓存单元为粒度,响应处理器240或其他部件(例如,前端处理单元210、介质接口控制器106)的缓存单元分配请求,而提供可用的缓存单元的索引,以及响应于缓存单元释放请求,将对应的缓存单元标记为可用。处理器240或其他部件根据从缓存管理单元获得的缓存单元索引,使用对应的缓存单元存取数据。现有技术的缓存管理单元270不关心缓存单元内存储的数据的内容,即缓存管理单元与缓存单元的内容完全隔离。在早期的芯片设计中,由软件提供缓存管理单元,由软件提供malloc(),free()等缓存单元管理接口。但随着设计芯片规模的不断变大,需要使用的缓存单元越来越多,需要使用缓存单元的电路单元也越来越多,如果缓存管理单元依然还是交由软件管理,响应会比较慢。为了提升缓存的使用效率,现在主流的芯片中,完全通过硬件逻辑电路实现缓存管理单元。如果软件需要缓存单元,向缓存管理单元申请。通过硬件实现缓存管理单元,通常是使用FIFO(FirstInFirstOut,先进先出)队列或BITMAP(位图),或者两者混合的方式进行缓存单元管理。缓存管理单元不需要主动操作,而是提供缓存单元分配与释放的接口,被动的响应分配及释放的操作。
技术实现思路
存储设备中,处理IO命令的过程中使用缓存。以读命令为例,处理器要根据读命令访问的地址从NVM芯片读出数据并搬入缓存单元,再将缓存单元的数据搬到主机。如果主机发出多个访问相同地址的读命令,一些要读取的数据已经在缓存单元中,处理器需要识别要读取的数据是否在缓存单元中(称为缓存单元命中)。识别缓存单元命中有两种情况:(1)对于已被分配且尚未释放的缓存单元,处理器通过记录缓存单元中存储的数据的地址来识别同地址关联的数据是否在缓存单元中;(2)对于已被释放的缓存单元,其中的数据可能被覆盖也可能未被覆盖,如果数据未被覆盖,其依然可以被用来响应后续的读命令。对于上面情况(2),可通过识别已释放的缓存单元是否被再次分配来判断其中的数据是否已被覆盖。当处理器管理缓存单元的分配与释放时,其能知晓缓存单元是否被再次分配。但当由硬件的缓存管理单元(BMU)来管理缓存单元的分配与释放时,缓存管理单元(BMU)并不会告知某缓存单元是否被分配。这时处理器还可以访问每个存储单元,从存储单元中查询是否有被命中的数据,但即使处理器找到了被命中的缓存单元,在使用被命中缓存单元的过程中,缓存管理单元(BMU)依然可能将该缓存单元分配给其他电路单元,并导致被命中缓存单元的数据被覆盖。根据本申请的实施例,改进了缓存单元单元(BMU),缓存管理单元(BMU)不仅提供缓存单元的分配与释放,还提供对命中缓存单元的查找,并且当缓存单元被释放后,被释放的缓存单元既可被重新分配也可在被重新分配前作为被命中的缓存单元。从而解决了处理器与其他电本文档来自技高网
...

【技术保护点】
1.一种硬件缓存管理单元,包括分配-锁定单元、命中-锁定单元、释放-解锁单元、关键字提交单元以及关键字表;/n所述关键字表包括多个条目,每个条目代表缓存单元之一;/n所述分配-锁定单元从关键字表中搜索代表可用缓存单元的条目并输出代表该可用缓存单元的缓存单元索引;/n所述命中-锁定单元响应于被提供的关键字输出存储了被提供的关键字的条目对应的缓存单元索引;/n所述解锁-释放单元响应于被提供的缓存单元索引,将关键字表中该被提供的缓存单元索引对应的条目的分配计数字段递减;/n所述关键字提交单元响应于被提供的关键字与缓存单元索引,将被提供的关键字记录在关键字表中该被提供的缓存单元索引对应的条目中。/n

【技术特征摘要】
1.一种硬件缓存管理单元,包括分配-锁定单元、命中-锁定单元、释放-解锁单元、关键字提交单元以及关键字表;
所述关键字表包括多个条目,每个条目代表缓存单元之一;
所述分配-锁定单元从关键字表中搜索代表可用缓存单元的条目并输出代表该可用缓存单元的缓存单元索引;
所述命中-锁定单元响应于被提供的关键字输出存储了被提供的关键字的条目对应的缓存单元索引;
所述解锁-释放单元响应于被提供的缓存单元索引,将关键字表中该被提供的缓存单元索引对应的条目的分配计数字段递减;
所述关键字提交单元响应于被提供的关键字与缓存单元索引,将被提供的关键字记录在关键字表中该被提供的缓存单元索引对应的条目中。


2.根据权利要求1所述的硬件缓存管理单元,其中
所述分配-锁定单元从关键字表中寻找分配计数字段为0的条目,将找到的条目作为代表可用缓存单元的条目。


3.根据权利要求2所述的硬件缓存管理单元,其中
所述分配-锁定单元将代表可用缓存单元的条目的引用计数字段递增,并将其脏标记设置为真。


4.根据权利要求1-3之一所述的硬件缓存管理单元,其中
所述命中-锁定单元响应于被提供的关键字输出脏标记为否且存储了被提供的关键字的条目对应的缓存单元索引。


5.根据权利要求4所述的硬件缓存管理单元,其中
所述命中-锁定单元还将该脏标记为否且存储了被提供的关键...

【专利技术属性】
技术研发人员:刘健郑先翔
申请(专利权)人:厦门鑫忆讯科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1