基于FPGA实现的减小DRAM延迟的Cache的设计

来源 :科学时代 | 被引量 : 0次 | 上传用户:hlxcun871
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要] 本文的Cache是本人为网络安全加速卡NSA所设计的,它主要用来消除DRAM(Dynamic Random Access Memory)的延迟时间,加快系统运行速度.由于此项目是用FPGA实现的,所以本文采用FPGA内部的CAM(Content Addressable Memory)和RAM(Random Access Memory)来实现Cache以达到减小DRAM延迟的目的。与传统Cache相比它简单容易实现、节省FPGA内部资源而且性能又不比传统Cache差。它加快了数据的返回速度,提升了系统性能。
  [关键词] CAM RAM Cache FPGA
  [Abstract] The Cache in this article is designed for the Network Security Accelerator card named NSA, which is mainly used to eliminate delay time of the DRAM (Dynamic Random Access Memory) and accelerate the system speed.This project is achieved with FPGA, so this paper uses CAM (Content Addressable Memory) and RAM (Random Access Memory) in FPGA to realize the Cache in order to implement the purpose of reducing the DRAM latency. Compared with the traditional Cache, it is simple and easy to comply, saving resources within the FPGA ,and the performance is not worse than traditional Cache. It not only accelerates the return speed of data, but also improves system performance.
  [Keywords] CAM RAM Cache FPGA
  
  一、绪论
  电子技术的飞速发展,CPU性能的不断提升,为Cache的产生奠定了基础,Cache从出现到现在已有将近30年的历史了。传统的Cache由SRAM(Static Random Access Memory)构成,SRAM不仅占用很大空间、成本高而且难于集成。并且传统Cache的三种实现方式都有其各自的局限性:全相联方式的Cache比较器难于实现;直接映射方式的Cache中比较器虽易于实现,但存储位置容易发生冲突,导致Cache效率降低;组相联映射方式的Cache是前两种方式的结合,两种方式的优缺点它兼而有之。这三种方式中都不同程度的用到了比较器,而比较器即难于实现又占用很大的内部资源。因此这三种实现方式都不适合为项目所用。这为采用FPGA来实现Cache奠定了基础。而且只要项目是以FPGA方式实现的又用到了DRAM,就可以采用此Cache,因此本课题对带有DRAM的FPGA方式实现的设计的性能的提高有重要意义。
  二、Cache的概念、作用
  (一)Cache:是位于CPU与内存之间的高速缓冲存储器,虽容量小,但存取速度快。存取速度比内存快几倍甚至十几倍。
  (二)Cache中储存的是内存的一部分数据,是CPU刚刚使用过或频繁使用的,目的就是方便CPU的读取。当CPU访问内存时,首先判断Cache中是否存有这些数据,如果有,则称为命中,就可以直接从Cache中取出这些数据,而不用再次访问内存,Cache的存储速度相当快,这就减少了CPU的等待时间,提高了CPU的利用率。弥补了CPU与主存之间的速度差异,这也是应用Cache的主要作用。
  三、Cache在项目中所处位置及作用
  此项目中的Cache位于ddr2控制器中,整个ddr2控制器模块由图1中的顶上三层构成,其中ddr2dimc_rarb模块为ddr2的读模块。主要功能是客户端从此模块发起读请求,并从多个读通道中根据优先级顺序选取一个读通道(并记录此顺序),把读请求传给下一级的ddr2dimc_rw模块,以及把经ddr2dimc_rw模块返回的读取结果按照事先记录的顺序,从相应的通道返回客户端。ddr2dimc_warb模块是ddr2的写模块。其主要功能是客户端从此模块发起写请求,并从多个写通道中仲裁出优先级最高的一个,将写请求从此通道传给下一级的ddr2dimc_rw模块。ddr2dimc_rw模块是读写仲裁模块,其主要功能是仲裁读写请求以及把从ddr2sodim模块中读取的数据返回给上一級的ddr2dimc_rw模块。ddr2sodim模块是xilinx公司提供的ddr2控制器模块,是固有的IP软核。而SDRAM是xilinx公司提供的,由ddr2 SDRAM构成的dimm条仿真模型。
  
   图1 ddr2控制器结构图
  当客户端向DRAM发出读写请求时,需要经过较长时间才能从DRAM中取到指定地址下的数据,而且请求经过每一层模块时,都会产生读写延迟,这样就更增加了从DRAM中取出所要数据的时间。如果请求是多路的,延迟就会更大,那么所需时间就会更长,整个项目的运行速度就会更慢。而且项目运行中出现的问题经查证,正是由于此过程中的延迟所导致的,所以本文设计Cache的目的就是尽可能的减小DRAM的延迟时间。
  Cache所放的位置则取决于以下两点:(1)能在较短的时间内返回数据结果。从图中可以看到ddr2dimc_rarb模块最靠近用户端,所以能在短时间内快速取得所要数据。如果将Cache嵌入ddr2dimc_rw 模块,则Cache中的数据返回客户端就会产生更大的延迟,这样如果在数据返回客户端的过程中又有新的数据写入,那么后写入的数据就不能及时返回客户端,而要等到下一次再读取此地址时,才能返回。而将Cache嵌入在ddr2dimc_rarb模块,就可以很快将Cache中读取的数据返回客户端。并且每次取得的数据都是最新的。(2)便于设计实现。又因为ddr2dimc_rarb模块的主频与其它模块相比最低,那么周期相对其它模块较长,一个周期内有更充分的时间完成Cache内部操作,这样使Cache的实现更加容易。因此,本文决定将Cache内嵌在ddr2dimc_rarb模块之内。
  四、Cache的设计方案
  当客户端发起读命令时,从四个读通道中选出优先权最高的一个,然后将预读取的地址装入一FIFO中,再将从FIFO取出的地址与Cache中的地址相比较,若FIFO中的地址与Cache中的地址相匹配,则表示命中,将Cache中该地址下的刷新过的数据代替从DRAM中取回的数据经分发器分发出去,若FIFO中的地址与Cache中的地址不匹配,则将从DRAM中取出的该地址所对应的数据由分发器分发出去。
  
   图2 Cache设计方案结构图
  五、Cache内部实现方案
  Cache由三部分组成:RAM模块、CAM1模块及CAM2模块。RAM是随机存取存储器,其中存放的是地址和数据,其主要作用是根据给定地址可以找到该地址所对应的数据。Xilinx公司同时提供了分布式RAM和块RAM的IP核生成器。用户可以根据需要选用合适的RAM,并将其调用到设计中,以提高完成设计的速度。由于实际需要,本文RAM模块采用宽128比特,深256比特的xilinx公司提供的RAM的IP核生成,内部存放的是ddr2dimc_warb模块写进来的数据。Cache中的real_dat端口就是数据进入RAM模块的端口。CAM是内容可寻址存储器,其中存放的也是地址和数据,其主要作用是将进来的数据与CAM内的数据进行比较,若匹配,则输出匹配地址。可以利用它查找数据存放的地址。本文的CAM1及CAM2模块采用的是宽24比特,深64比特的xilinx公司提供的CAM的IP核生成,用户也可以直接调用。CAM1及CAM2模块的din端口接进来的是ddr2dimc_warb模块写进来的地址。而cmp_din端口引进的是欲读取的DRAM地址。
  
  图3 Cache内部结构图
  (一)CAM2模块的实现
  模块中的wr_addr是模块内部的搜索地址,是模块内部逻辑产生的,不是模块端口。CAM2模块的din端口每写入一个新地址,wr_addr就会自动加一。当客户端向DRAM发起写请求的同时也把要写入的地址从CAM2模块中的din端口写进CAM2模块。当客户端向DRAM发起读请求时,从CAM2模块中cmp_din端口写进的欲读取的地址与CAM2模块中由din端口写进的地址相比较,如果相同,就会产生匹配地址,说明要读取的DRAM地址,在CAM2表中含有,既Cache中存在,就会把匹配地址送到RAM的读地址端口。(虽然din端口接进来的是ddr2dimc_warb模块写进的地址,但对于CAM2模块本身来说din端口接进来的相当于数据,而CAM2模块本身的地址是指其内部搜索地址。所以其匹配地址是指匹配时的内部搜索地址。)
  (二)RAM模块的实现
  对于RAM模块:其写入地址就是CAM2模块的搜索地址。当客户端向DRAM发起写请求时也会同时将要写入的数据从RAM模块的data端口写进RAM。由于CAM表宽24比特,深64比特,所以可知CAM1和CAM2模块的搜索地址是6比特宽。而RAM表是128比特宽,256比特深,所以可知RAM模块的搜索地址是8比特宽。可见RAM表的搜索地址要比CAM表的搜索地址多出两个比特,由此可知CAM表的一条搜索地址对应RAM表的四条搜索地址。由此可见RAM表的搜索地址的高六位对应的是CAM表的搜索地址,低两位则是该搜索地址对应的RAM块的块内选址。这样如果CAM2模块有一个匹配的地址送进RAM模块,就会连续读出四条RAM模块搜索地址对应的数据。
  (三)CAM1模块的实现
  当客户端向DRAM发起写请求的同时也会把要写入的地址从CAM1模块中的din端口写进CAM1模块。但在地址写进CAM1模块之前,首先将要写入的地址写进CAM1的cmp_din1端口,与CAM1表内已有的地址进行一拍的预先匹配,检查CAM1表中是否已有该地址,如果CAM1表的匹配信号不为零,说明要写进的地址CAM表中已经存在。这样在写进地址和数据时,新写进的数据要替换掉原来该地址对应的数据。这就是此Cache所要实现的更新功能。(对于CAM1模块本身来说din端口接进来的也相当于数据,而其模块本身的地址是与CAM2模块相同的内部搜索地址。)
  六、Cache的整体功能实现与验证
  在没加入Cache之前,ddr2模块的读、写通道都存在很大的延迟:
  数据写进DRAM共产生了约150纳秒的延迟。从图4波形图可以看到,从数据写进DRAM到从DRAM中读出数据,约产生165纳秒的延迟,再传到上一级的ddr2dimc_rw模块又产生了近94纳秒的延迟,最后传到客户端又产生了50纳秒的延迟。所以整个写到读的过程总共产生了近460纳秒的延迟。由于此过程的延迟过长,导致整个项目出现bug。只有减小延迟,此项目才能正常运作。这也是本设计的主要目的。
  
  图4 嵌入Cache前写到读全过程的延迟时序图
  嵌入Cache后,生成如下时序图:
  从图中可以看到,加入Cache后,从客户端发起写请求至数据写进Cache产生了近90 纳秒的延迟,缩短了写延迟时间,到读取的数据返回客户端,又产生了近150纳秒的延迟。总共延迟240纳秒,比Cache嵌入前减小了220纳秒的延迟时间,使数据返回的速度大大加快了,达到了最初的目的。
  
   图5 嵌入Cache后寫到读全过程的延迟时序图
  本文作者创新观点:本文的创新之处就在于Cache的实现是采用FPGA的方式来完成的,摒弃了原有的设计方法,开辟了Cache实现的又一途径。
  参考文献:
  [1] 武扬. 高速缓冲存储器Cache设计的关键技术分析[J]. 中国科技信息.2006(7).
  [2] 王恒娜. 访问局部性原理在Cache系统优化及设计中的应用[J]. 安徽师范大学学报(自然科学版).2004 (04) .
  作者简介:
  王玥(1980-),女(汉),辽宁省阜新市人,广西工学院鹿山学院电控系教师。专业是微电子与固体电子。
  付强(1984-),男(汉),河北省唐山市人,广西工学院鹿山学院艺术系教师。专业是计算机科学与技术。
其他文献
作为世界的制造工厂,中国制造的商品遍布全球各个角落,出口国针对大量中国玩具输入的贸易保护政策接连不断地推出。就算是中国加入了世贸组织,这种贸易壁垒政策在极具“穿透
班公湖-怒江缝合带在中生代的构造岩浆演化一直以来都是青藏高原基础地质研究中的热点之一.在该缝合带南部的冈底斯北部地区发育大量的中生代火山岩及相关岩浆岩,其岩石成因与成岩地球动力学背景长期以来存在较大的争议.以班公湖-怒江缝合带西段阿翁错地区沙木罗组新发现的火山岩夹层为研究对象,对沙木罗组的形成时代、火山岩的成因、构造环境以及动力学背景进行了探讨.沙木罗组火山岩由下部扎果安山岩和中部昂母过安山质晶屑
在当前课程改革背景下,教师需要关注对学生英语核心素养的培养。教师需要在教学反思以及实践中探索实用的方法和对策,进而提升和构建学生的英语核心素养,满足学生的英语发展
在中国汽车已经成为超过教育的第二种最适合信贷消费的对象,到2005年我国有购车能力的家庭将达到4200万户,显示出国内汽车信贷消费市场的巨大潜力和空间。但是,现行的汽车信
介绍几种可以致富的常见野菜尉农“今天吃什么菜”,几乎成了城镇主妇们最伤脑筋的话题。近两年,灾荒时果腹充饥的野菜堂而皇之地重返人们的餐桌,且大受青睐,不仅调剂了人们的口味
跳危险舞蹈的孔雀蜘蛛rn作为掠食者的一种,跳蛛虽然身材娇小,却是动物世界里的“运动健将”:有些跳蛛的跳跃距离可以超过其体长的20倍!而跳远并非跳蛛的唯一运动技能,生活在
期刊
2020年9月末,世界著名民俗啤酒节——慕尼黑啤酒节在德国慕尼黑盛大举行.来自丹麦的记者拉斯穆森前往当地采编,准备撰写一篇关于豪饮导致生理变化的文章.他在啤酒节逗留了3天
期刊
果树失绿症的诊治苹果、柑桔、桃、梨、杏、李等果树,常出现失绿症.不同缺素症所表现出的失绿症状难以辩认,容易混淆。为了有针对性地及时防治果树失绿症,现将果树缺氮,缺锌,缺铁和
房屋是一项比较稳妥的投资,因为土地不会贬值,其次房屋不是易耗品,它的价值不会随着使用而减少。可是就这样保险的一项投资,因为种种原因,也会成为一块烫手的山芋,不过你若
2019年6月的一天,在英国苏格兰北部的沿海地带,布莱登?汤玛森正蜷着身子,靠在凉风习习的泥炭地上,顺着双筒望远镜朝远处望去.视线所到之处,有被藻类覆盖的岩石、伸出水面的褐
期刊