按照所控制的存储器类型,存储器一般分为两种:专用存储器控制器和通用存储器控制器。通过IP核重用的方式,通用存储器可以适用于不同要求的高性能SOC系统,从而减少系统开发时间,节省成本,加快芯片投入市场的速度。
研究背景随着电子科学和计算机科学的飞速发展,大规模集成电路在经济、军事和社会生活的各个领域应用越来越广泛。大到神舟6号的中心控制系统,小到一个电视遥控器,一张公交IC卡,都需要使用不同性能和不同规格的集成电路芯片。大规模集成电路已经成为当代人类社会生活中不可或缺的一个重要部分。
在大规模集成电路系统中,存储器的地位举足轻重。绝大多数高性能SOC芯片,都要根据其功能要求和性价比,集成各种不同类型存储器,包括:ROM、SRAM、SSRAM、FLASH、SDR-SDRAM、DDR-SDRAM等。不同类型存储器的内部结构、数据存储方式、时序控制方式、编址方法、读写数据总线宽度、访问延迟等方面差别很大。近年来,新的存储器产品层出不穷,像DDR-SDRAM、Rambu;同步动态随机储存器(Rambus DRAM)、同步FLASH存储器(Sync FLASH)、并行型RDRAM(Concurrent RDRAM)、多体动态随机存储器(Multiband DRAM)、同步图形随机存储器(Synchronous Graphics RAM )等。这些新类型的存储器,适合新的应用(如高速图形加速芯片),在性能上具有优势,因而得到了越来越广泛的应用。但是,它们也提出了很多与旧的存储器不同的控制要求。在高性能SOC芯片中,怎样对这些千差万别的存储器进行统一的高效的控制,即怎样实现一种高性能的通用的存储器控制器,是一个很关键的问题。
通用存储器简介按照所控制的存储器类型,存储器控制器一般分为两种:专用存储器控制器和通用存储器控制器。专用存储器控制器用来控制某种特定类型的存储器,针对性非常强,实现相对比较容易,但是可重用性不好。大多数高性能SOC芯片,其内部的存储器控制器,使用的都是通用存储器控制器,它可以用来控制多种不同类型的存储器,具有良好的可重用性;通过IP核重用的方式,通用存储器控制器可以适用于不同要求的高性能SOC系统,从而减少系统开发时间,节省成本,加快芯片投入市场的速度。
通用存储器控制器的适用性强,性能同样重要。自上世纪80年代开始,微处理器性能以每年60%的速率发展,而存储器访问时间的改善速率每年大约只有7%,计算机体系结构工作者正面临着一个处理器/存储器性能差距日益扩大的问题,存储器访问是系统性能的最大瓶颈,这也是提升计算机整体性能的最大障碍。根据统计,60%的访存延迟来自存储器控制器耗费。因此,如果过于注重存储器控制器的通用性,导致其内部逻辑越来越复杂,毫无疑问会使得访存延迟中的存储器控制器耗费所占比率进一步加大。此外,如果存储器控制器过多的注重于各种存储器的共性而忽视它们的个性,有可能在某种程度上削弱对某些具体存储器的控制能力,也就是说,在提高通用程度的同时降低了对某些具体类型存储器的带宽利用率,从而加剧存储器访问瓶颈效应。
发展现状国际上知名的大规模集成电路设计公司,像Intel、Samsung、ARM、Synopsys、Cadence、AMD、Micron、Toshiba等,都在通用存储器控制器研发领域取得了很大的成功。未来数年内,这些公司仍将占据通用存储器控制器的市场主导地位。它们开发出了许多成熟的产品,其中比较有影响力的通用存储器控制器IP核有Synopsys公司的DesignWare存储器控制器、ARM公司的PrimeCell静态存储器控制器和PrimeCell多端口存储器控制器、Intel公司的通用静态存储器控制器、Cadence公司的静态存储器控制器和Global Unichip(台湾创意电子)的UAPC-5400等。1
Synopsys Design Ware存储器DesignWare Memory Controller是Synopsys公司在1999年推出的通用存储器控制器IP核,近年来不断进行版本更新,功能越来越趋于完善,性能也不断优化。这个系列通用存储器控制器IP核的最大特点就是可编程功能非常好,通用性非常强,不同的用户可以按照千差万别的存储器需要,自由的对它进行配置、模拟和综合,从而满足不同SOC芯片的应用要求。这个系列通用存储器控制器IP核可以用来单独控制一种动态存储器(包括SDRSDRAM、DDR-SDRAM和Micron公司的同步FLASH存储器)或者一种静态存储器(包括SRAM、FLASH和ROM),或者同时控制两种不同类型的动态存储器,或者同时控制3种不同时序参数、不同类型的静态存储器,也可以同时控制动态存储器和静态存储器。
ARM Prime Cell存储器Prime Cell Static Memory Controller是一个和Advanced Microcontroller BusArchitecture(AMBA)总线协议兼容的通用静态存储器控制器,2000年由ARM公司推出。它作为AMBA总线的从设备,在各种静态存储器和Prime Cell微控制系统之I间提供接口功能,但是不能用于控制动态存储器。它的内部控制逻辑非常精简有效,能够充分的利用存储器的读写带宽,但是通用性不强(不能用于控制动态存储器)限制了其使用。
2002年,ARM公司推出了Prime Cell Multiport Memory Controller,这是一种真正意义上的通用存储器控制器,可以用来控制各种静态存储器和各种动态存储器;而且因为采用了多个端口连接到AHBA总线,在内部设置了4个16字高效缓冲器,访存延迟中的存储器控制器耗费小,存储器带宽利用率也很高。但是编程不够灵活,对各个片选可以外接的存储器类型和参数指标有所限制,而且编程过程也过于繁琐。
Rudi通用存储器该存储器控制器发布于著名的自由软核网站,由西萨摩亚大规模集成电路设计专家Rudolf Usselmann费时2年设计成功。这是一种通用的存储器控制器IP核,适用于多种静态存储器和多种动态存储器,用户编程简易,通用性强。但是只能通过WISHBONE总线连接到微处理器,和AMBA总线并不兼容,所以在当前大多数高性能SOC芯片都使用AMBA总线的情况下,应用不是很广。由于Rudi通用存储器控制器IP核是完全公开和免费的,用户可以对其功能进行自由的改进,所以它仍然具有一定的应用价值和研究价值。2
本词条内容贡献者为:
张磊 - 副教授 - 西南大学