欢迎来到天天文库
浏览记录
ID:54924596
大小:554.53 KB
页数:5页
时间:2020-05-04
《一种基于FPGA的内容可寻址存储器的设计-论文.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第34卷第4期杭州电子科技大学学报Vo1.34.No.42014年7月JournalofHangzhouDianziUniversityJu1.2014一种基于FPGA的内容可寻址存储器的设计李训根,罗霁(杭州电子科技大学电子信息学院,浙江杭州310018)摘要:介绍了内容可寻址存储器的传统电路模型、工作原理及其特点,进而提出了一种基于FPGA内部逻辑资源的新型等效逻辑电路。相比现有电路,该电路可以通过分析实际需求的单位数据字长以及数据控制精度减少片内寄存器等逻辑资源的开销,从而实现使用较少的资源构建相同规模的内容可寻址存储器。该电路可以
2、在绝大多数FPGA芯片上得到实现,使用成本低,配置灵活,易于构建。关键词:内容可寻址存储器;现场可编程逻辑阵列;逻辑资源;等效逻辑电路中图分类号:TP333文献标识码:A文章编号:1001—9146(2014)o4—0065—050引言内容可寻址存储器(ContentAddressableMemory,CAM)是一种特殊的存储器件,不仅能存储数据,而且能将输人数据与内部所有数据进行比较,从而判定输入数据是否已经存在于存储器内。CAM可以在单个时钟周期内并行完成所有比较查找运算,相比其他基于硬件或软件的搜索系统,具有更高的查找效率,因而被广
3、泛运用于网络协议包分类与发送、数据包内容检测过滤、高速缓存和数据加密等众多领域⋯。传统CAM的设计与实现通常依靠专用集成电路技术(ApplicationSpecificIntegratedCircuit,ASIC),相关产品具有容量大、集成度高、速度快等优点,但也存在价格昂贵、功耗偏高等不足,这显然不利于在更多的场合灵活地应用CAM的强大功能。近年来,多种基于现场可编程逻辑阵列(FieldProgrammableLogicArray,FPGA)的CAM等效功能块构建方案I6出现。大多数方案成功模拟实现了传统CAM器件的高速查找特性,但在实
4、用中却普遍存在片内资源开销过多的缺点。本文在一种现有电路的基础上进行了改进,提出了一种新颖的等效逻辑电路。电路简洁易行,可根据实际存储的单位数据字长和数据控制精度调整数据寄存器与状态寄存器的组成比例,从而在实现CAM功能的同时减少逻辑资源的开销。1CAM的传统电路模型单个CAM单元实现两种功能:1)存储1bit预设数据;2)将当前输入数据与预设数据进行比较并输出比较结果。在传统电路模型中,一般使用单个SRAM单元实现功能1,再在此基础上额外添加若干晶体管实现功能2,如图1所示。图1中,两个背靠背的反相器即构成了一个SRAM存储单元,晶体管
5、M1和M3以及晶体管M2和M4分别构成了两条互补的查找电路,分别用于查找存储在SRAM单元中的数据“1”和数据“0”。查找成功时,数据匹配线ML为高电平,反之则为电平。由于SRAM中预设存储数据非‘0’即‘1’,该类CAM单元总处于两种状态之一,因此通常被称为二态内容可寻址存储器(BinaryContentAddressableMemory,BCAM)。BCAM只能存储查找固定长度的数据,为了避免收稿日期:2013—09—13作者简介:李训根(1970一),男,浙江浦江人,副教授,电路与系统杭州电子科技大学学报2014矩为同时存储不同长度
6、的数据而反复搭建不同长度规格的BCAM电路,可以使用长度规格统一的三态内容可寻址存储器(TernaryContentAddressableMemory,TCAM)。TCAM相比BCAM,优势在于多出一个“无关”状态,即从“二态”变为了“三态”。被设置为“无关”状态的TCAM单元不会对最终匹配结果产生影响,因此通过灵活调整设置不同TCAM单元满足对不同长度数据的存储与查找需求。典型的TCAM单元结构电路如图2所示。图2中,当两个SRAM单元中存储数据不一致时,分别表示BCAM中已存在的两种数据存储状态;当两个数据同时为“1”时,表示TCAM
7、特有的“无关”状态;不允许两个数据同时为“0”。图1BCAM单元传统结构电路图2TCAM单元传统结构电路2CAM基于FPGA的等效逻辑电路本文提出一种CAM基于FPGA的等效逻辑电路,电路在实现传统TCAM单元逻辑功能的同时,根据不同数据单位字长和数据控制精度要求优化对寄存器和组合逻辑函数等片内逻辑资源的开销,从而获得更高的资源利用效率。2.1CAM单元结构组成等效逻辑电路主要包含:预存数据寄存器组、“无关”状态寄存器、“已使用”状态寄存器、数据比较器、掩码电路和查找结果输出寄存器。预存数据寄存器组的中寄存器的数量等于单位数据的字长,还可
8、按照实际需求进行调整;数据比较器用于判定输人待查找数据和预存数据的是否相同;“无关”状态寄存器指示该CAM单元的数据寄存器中相应数据段是否处于“无关”状态,其中数据为“1”表示处于“无关”状态
此文档下载收益归作者所有