seo > 网络杂谈 > sdram内存,sdram芯片

sdram内存,sdram芯片

网友投稿

sdram内存,sdram芯片

作为计算机中重要部件,内存承担着跟CPU沟通的任务,其性能好坏直接关系到计算机的整体性能。很多人可能比较了解内存的性能参数等信息。但是对其发展史来说,却是并不清楚,算起来,内存已经有超过160年的历史,今天笔者就带你一起回顾一下内存在这160多年中的里程碑事件,这些你可能都没听说过

image.png


怀旧老照片 细数计算机内存的那些事


1834年:打孔卡——计算机内存的前身

20世纪80年代初,一些学校使用的如下图所示打孔卡作为介质的来存储“数字化”的科学书籍。当然,可能有人说这种打孔卡出现的时间更早。的确,但是直到一位英国数学家Charles Babbage他有了将这种数据计入编程计算机的想法,其在1834年到1871年,建立了“分析机”,该装置此阿勇了打孔卡作为只读存储器,集成的分析机的总内存相当于675字节。

怀旧老照片 细数内存的那些鲜为人知的事

打孔卡

1932年—1945年:磁鼓存储器等

怀旧老照片 细数内存的那些鲜为人知的事

磁鼓存储器

奥地利的IT工程师Gustav Tauschek发明了第一个被广泛使用的计算机存储器——磁鼓存储器。虽然他在1932年就创建磁鼓存储器,但是却花了超过20年的技术才被普遍采用。在“磁鼓存储器”被发明的后10年中,还有一些其他类型的存储器。例如水印延迟线等,构成了最早期电子计算机的主存储器。

品牌:IBM 服务器2内存技术发展上的第二个里程碑

1951年:磁芯存储器

磁芯存储器被广泛应用到现代计算机存储器技术中,可以说是内存技术发展的第二个里程碑。多数人都认为这项技术的所有关键部件是直到1951年才被开发出来,但早在1949年,麻省理工学院的Jay Forrester首先提出了这项技术的构想。这种磁芯存储器已被微型集成电路块上的半导体存储器所取代。最初的磁芯存储器只有几百个字节的容量。

怀旧老照片 细数计算机内存的那些事

磁芯存储器

磁芯存储器的英文名称使用的是“core”,虽然被淘汰,但是很多人仍然习惯把内存叫core,磁芯存储器能够存储数字信息可以是1或0。在20世纪60年代到20世纪70年代初,非易失性磁芯存储器被用作默认的内存技术,全球所有的电脑90%以上都采用此技术。而且因此还打了一场关于专利的官司。

1952年:超声波存储器

怀旧老照片 细数计算机内存的那些事

电子计算机EDVAC

超声波存储器是内存发展过程中重要的一环,这套系统超声波存储器拥有1024个44位,相当5.5KB的存储容量。超声波存储器被使用在世界上第二台电子计算机EDVAC上。

在使用MCU的嵌入式系统设计中,当程序或者数据内存占用太大而无法放入片上闪存或SRAM时,开发者通常考虑使用SDRAM。

别问我为什么你的MCU不支持SDRAM

SDRAM是同步动态随机存取存储器的缩写。在微控制器应用中,微控制器通过使用外部存储控制器(EMC)操作访问SDRAM ,SDRAM时钟频率通常为100MHz或133MHz。

外部存储控制器通常不支持DDR SDRAM, 数据只是单边沿采样,即并行数据总线可以接受一个命令并在每个时钟周期传输一个数据字。

image.png


在SDRAM中执行程序是使用SDRAM的一种典型用法, 小编这里就介绍一下SDRAM中执行程序的方法和SDRAM执行程序的性能基准。


SDRAM初始化

SDRAM必须在使用前进行配置,SDRAM初始化分为6个步骤。

配置EMC寄存器的SDRAM时钟频率、字节顺序和时序参数。

SDRAM的时序比较复杂,用户需要通过查阅相关SDRAM芯片的手册获得时序参数(如刷新周期、预充电命令周期、自刷新退出时间、写恢复时间等等)。

发送NOP命令

发送预充电命令

发送两次自动刷新命令

设置SDRAM模式

发送正常运行命令

系统启动时,SDRAM尚未初始化。理论上,程序在系统启动后的任何时刻都可以进行SDRAM初始化。然而,由于SDRAM初始化过程比较复杂,使用的系统资源较多,SDRAM初始化必须在所需的系统资源初始化完成后再进行。

具体上讲,开发者在芯片刚刚启动时(如Reset_Handler中)初始化SDRAM需要留心以下细节:

由于SDRAM初始化函数使用系统堆栈或全局变量,开发者必须确保系统堆栈或全局变量所在的物理内存上电及时钟使能。

在程序跳转到主程序启动之前,全局变量未清零或初始化,如果在主函数之前执行SDRAM初始化,开发者必须手动初始化变量。

举个例子,在LPC5460x中,开发者需要在SystemInit函数中初始化SDRAM,该函数(SystemInit)由Reset_Handler调用。在调用系统初始化之前,要通过设置AHBCLKCTRLSET0寄存器将SRAM时钟使能。

SDRAM存储器布局

当使用SDRAM时,外部存储控制器(EMC)分配SDRAM一定的地址空间。开发者可以使用链接描述文件将代码或数据分配到SDRAM中。值得注意的是,链接器脚本编程在不同IDE之间是不同的。