
除处理器之外,各种类型的存储器是微控制器中最重要的单元,它们用于存储程序代码和数据。由于智能卡微控制器是一个完整的计算机,因而其内部存储器根据其特性分类为RAM、ROM和EEPROM,更精确的划分参见图1。在任何情况下,总是努力把RAM和EEPROM做到尽可能小些。
图1 智能卡微控制存储器分类图(PROM和EPROM在现代微控制器里已不再使用;Flash EEPROM和PRAM是用于智能卡早期开发的存储器类型)
对于多应用智能卡,它可以同时管理几个应用。最常用的芯片中ROM容量约为EEPROM容量的两倍,以便提供足够的空间来存储非常复杂的操作系统代码。对于单应用智能卡来说,所选择的微控制器的EEPROM容量只是比应用数据的容量稍大一点。所有非固定的应用数据,连同操作系统的某些部分都可以存储在EEPROM中,所以,才需要优化EEPROM的使用。否则,EEPROM要占去芯片中较大的空间,因而相当昂贵。
从技术上来说,在单个硅晶片上集成三种不同类型的半导体存储器是相当复杂的,它要求有更多的生产步骤和曝光掩膜。每一类型存储器的结构和工作原理都不尽相同,所要求的空间量的差异也非常大。例如:1个RAM单元就需要占用大约4个EEPROM单元那样大的空间,而1个EEPROM单元又需要占用4个ROM单元那样大的空间。这也就是智能卡微控制器中只有很少RAM的原因。通常256字节的RAM已认为是相当大了。当你明白在相同的面积里可放人1 024字节的EEPROM或4 096字节ROM时,就弄明白这个原因了。图2说明芯片大小关系,各种存储器的性能比较见表1。
图2 各类型的存储器每一位单元所占用晶片面积的比较
图中所标示的尺寸是近似的,并且是用0.8μm技术制造,与之相比,1959年的第1个平面晶体管的直径是764μm[Buchmann 96,Stix 96]。本书每一句结尾的句号的直径是400μm,人眼的分辨极限是40μm,一个细菌的大小是0.4~2μm,而一个双螺旋DNA是0.1rtm。
表1 用于智能卡微控制中的备类存储器的比较
典型的激光打印机的打印分辨率为600dpi(每英寸的点数),这就意味着其墨点直径最小为42.6μm。本书句号的面积是125 660μm2,如果用分辨率等于0.8μm(半导体工艺标准)的设备来打印本书的句号(直径是400flm),就相当于需要一台具有32 000dpi分辨率的打印机!
最新的高性能硬盘驱动器其存储量可达每平方英寸11.66b。假设每位都占有一个方形面积,这就是说每一位单元的边缘长度为0.24rtm。如果智能卡微控制器的ROM单元用0.8ftm技术来制造的话,那么一个ROM单元就需要占用1 700位那么多的面积!