当前位置: 首页 > news >正文

从零开始讲DDR(0)——DDR的前世今生

一、计算机组成

        计算机组成结构(Computer Architecture)是计算机系统的核心,它定义了计算机的基本工作原理和设计模式。计算机的组成可以分成以下3大类:中央处理器(CPU)、存储器和输入/输出子系统。

1.1 中央处理器(CPU)

        CPU用于数据的运算,在大部分的体系结合中,它有3个组成部分:算数运算单元(ALU)、控制单元、寄存器组。

  • 控制单元(Control Unit):负责指挥整个计算机系统的操作,解释并执行指令,控制其他硬件的工作。
  • 算术逻辑单元(ALU):执行所有算术运算(如加减乘除)和逻辑运算(如与、或、非等),是计算机执行指令的核心部分。
  • 寄存器(Registers):这是CPU中用于存储数据的高速存储器,用来临时存放指令、数据和操作结果。

1.2 存储器

        存储器是存储单元的集合,每一个存储单元都有唯一的表示,称为地址。数据以“byte”位组的形式在存储器中进行传入和传出。对于计算机系统,存储器可以分成主存储器和辅存储器两种。

  • 主存储器(Primary Memory):也称为内存(RAM),用于临时存储当前正在执行的程序和数据。
  • 辅存储器(Secondary Memory):如硬盘(HDD)、固态硬盘(SSD),用于永久存储数据和程序。

1.3 输入/输出设备(I/O Devices)

        输入/输出设备用于实现计算机与外界的通信。

  • 输入设备:如键盘、鼠标等,用于将用户的指令输入到计算机中。
  • 输出设备:如显示器、打印机等,用于将计算机的处理结果展示给用户。

二、主存储器(内存)

2.1 RAM与ROM

        我们的主角DDR显然是属于存储器的一部分,而主存储器是计算机的重要组成部分,其主要功能是存储程序和各种数据,并能在计算机运行过程中高速、自动完成程序或数据的出存取。主要有2种类型的存储器:RAM和ROM。

类型作用特点示例

RAM(random access memory):随机存取存储器

是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时读写,而且速度很快,通常作为操作系统或其他正在运行中的程序的临时数据存储媒介。系统断电时RAM不能保留数据SDRAM、DRAM、DDR
ROM:只读存储器ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出(相对于用户来说),而不像随机存储器那样能快速地、方便地加以改写ROM所存数据稳定,断电后所存数据也不会改变。flash、HDD、SSD

        而RAM技术又可以分成2大类:SRAM和DRAM:

类型实现作用特点
静态RAM(SRAM)传统的触发器门电路门电路保持状态(0或1),通电时数据始终存在,不需要刷新优点是速度快,不必配合内存刷新电路,可提高整体的工作效率。缺点是集成度低,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。
动态RAM(DRAM)电容器如果电容器充电,则此时的状态是1,如果放电,则状态是0,。因为电容器会随着时间而漏掉一部分电,所以内存单元需要周期性地刷新必须刷新,后面衍生出DDR,DDR2,DDR3,DDR4,速度较慢,但是比较便宜

2.2 发展历程

        内存容量的发展,从最初KB到GB的跃进,从单条1GB到如今单条16GB或者32GB的进化,经历了漫长的过程。从最初的时候,个人电脑和嵌入式系统对于功能的实现都比较简单,内存的容量和储存容量都比较小,只有64K到256KB,对于嵌入式系统上甚至更小。

        内存的发展历程反映了计算机技术的进步和需求的变化,随着计算能力和数据存储需求的增长,内存技术不断演进。以下是内存发展的几个关键阶段:

2.2.1 早期阶段:延迟线存储器与磁鼓存储器

        延迟线存储器:20世纪40年代后期,早期的计算机使用延迟线存储器,它基于声波或电信号在延迟线中传播来存储数据。每次读写数据都必须等到信号循环到达,这导致了较高的延迟。

        磁鼓存储器:1948年发明的磁鼓存储器是早期计算机的主要存储器之一,它利用旋转的磁鼓表面存储数据,存取速度较慢,容量较小。

2.2.2 磁芯存储器(1950年代-1970年代)

        磁芯存储器是使用小型磁环(铁氧体材料)存储二进制数据的非易失性存储技术。每个磁环表示一个比特,利用磁场方向来存储“0”或“1”。磁芯存储器具有较快的存取速度和较高的可靠性,在1950年代末期到1970年代中期广泛应用。但它的体积大,制造复杂,存储容量有限,随着半导体技术的发展逐渐被淘汰。

2.2.3 半导体存储器的兴起(1970年代-至今)

        随着科技的发展,半导体存储器成为了现代计算机存储器的主流,分为两类主要类型:

        静态随机存储器(SRAM):SRAM利用晶体管存储数据,速度非常快,但每个比特需要更多的晶体管,导致成本高,密度低。主要应用在需要高速缓存的场景,如CPU的缓存(L1、L2、L3)。

        动态随机存储器(DRAM):DRAM利用电容存储数据,电容逐渐放电,因此需要不断刷新来维持数据存储。相对于SRAM,DRAM的存储密度更高,成本较低,因此广泛用于主内存(RAM)。随着集成电路制造技术的进步,DRAM容量和性能持续提升。比如1970年英特尔发布的1103 DRAM是第一款商业化的DRAM芯片,标志着半导体内存开始主导市场。

2.3 现代内存技术的发展

        DDR(双倍数据速率)内存:从DDR到如今的DDR5,随着数据传输速度和功耗的改进,DDR系列内存成为计算机和服务器的主流内存。DDR技术从2000年开始引入,持续更新,DDR5的带宽和容量比早期版本有了大幅提升。

        闪存(Flash Memory):20世纪80年代末,闪存技术开始兴起。它是一种非易失性存储器,广泛应用于SSD、U盘和存储卡中。NAND闪存和NOR闪存是两种常见类型,NAND闪存更适合大容量存储。

        LPDDR(低功耗DDR):随着移动设备的普及,低功耗内存技术成为了关键,LPDDR(低功耗双倍数据速率)内存在手机、平板等设备上应用广泛,从LPDDR1发展到LPDDR5,强调功耗和性能之间的平衡。

        HBM(High Bandwidth Memory,高带宽内存):HBM是一种高性能DRAM,具有更高的带宽和更低的功耗,主要用于图形处理器(GPU)和高性能计算(HPC)领域。HBM通过垂直堆叠的方式来提升存储密度和传输速度,减少了延迟和能耗。


        最早期的个人电脑内存是以DIP(Dual In-line Package)封装的芯片形式安装在主板上的。由于早期的计算需求较低,这些芯片能够提供64KB到256KB的内存容量,足以满足当时的处理器和软件需求。然而,随着技术的进步,特别是80286处理器的推出,计算机对内存的需求大大增加,主板上有限的插座和内存容量已无法满足应用的需求。

        内存条的诞生解决了这一问题。通过将内存以模块化的形式制作成内存条(DIMM),不仅方便了内存的扩展,也提高了系统的灵活性和容量。在这种新形式下,用户只需插拔内存条即可扩展内存容量,这大大简化了操作,并提高了计算机的性能。

        内存的发展不仅体现在外在的形态上,其内部的架构与实现也经历了翻天覆地的变化。

2.3.1 异步内存

        异步内存的工作不依赖系统时钟。内存模块和处理器之间的通信基于请求和响应。当处理器发出内存访问请求时,内存模块需要一定的时间来完成这次访问,处理器必须等待内存准备好数据。这种机制没有统一的节奏和时序,因此内存访问的时延可能会有所变化。由于异步内存不与CPU同步,内存访问的时序可能与CPU不匹配。CPU可能不得不等待较长的时间才能获取所需的数据,这会导致系统性能下降,尤其是当内存访问频繁时。

2.3.1.1 FPM DRAM(Fast Page Mode DRAM) - EDO DRAM的前身

        在EDO DRAM诞生之前,FPM DRAM(快速页面模式DRAM)是1980年代到1990年代早期主流的DRAM技术。FPM DRAM通过在同一行内存中以更快的速度访问连续的数据,提升了数据访问的效率。然而,它仍然存在一个关键的瓶颈:在读取完当前数据后,必须等待一段时间才能发起下一次数据访问。这种停顿限制了内存带宽的提升。

2.3.1.2 EDO DRAM(Extended Data Output DRAM)的引入

        为了解决FPM DRAM的这些局限性,EDO DRAM于1994年推出。其主要技术突破在于扩展数据输出机制,允许内存可以在读取一个数据的同时准备下一个数据,使数据访问的停顿减少,提升了内存带宽。

        EDO DRAM的设计允许在当前数据传输仍在进行时,就可以开始准备下一条数据的访问请求。这种重叠的数据访问机制相比FPM DRAM有了更高的效率。与FPM DRAM相比,EDO DRAM通常可以将存取周期缩短为70纳秒,而FPM DRAM通常需要80纳秒或更长。虽然在整体系统中带来的性能提升相对有限(约5%-10%),但在多任务操作和图形处理等对带宽要求较高的应用场景下,表现明显更好。EDO DRAM以SIMM模块的形式广泛使用,其制造工艺相对简单,成本较为适中,因此迅速普及并成为中低端计算机的标准配置。

        EDO DRAM在1990年代中期被广泛用于搭配Intel 80486Pentium等处理器。对于这些处理器,EDO DRAM提供了足够的带宽来满足CPU和内存之间的数据传输需求。

2.3.2 同步内存

        与系统时钟同步:同步内存与系统时钟信号保持同步。系统时钟是计算机中用于控制和协调各个部件的节奏器,所有部件(包括内存、处理器、总线等)都依据这个时钟进行数据传输。同步内存能够在时钟的上升沿和/或下降沿有规律地进行数据的读写操作。

        更高效的数据传输:由于内存的操作是与系统时钟同步的,处理器不再需要额外的等待时间来确认内存是否准备好。数据可以在固定的时钟周期内传输,从而实现更高的效率。

        双倍数据速率(DDR):后来的同步内存(如DDR内存)能够在时钟的上升沿和下降沿都进行数据传输,这使得数据传输速度进一步翻倍。

2.3.2.1 SDRAM(Synchronous DRAM)的出现与取代

        随着计算机技术的进一步发展,特别是更高性能处理器的引入(如Intel Pentium Pro、Pentium II),计算机对内存带宽的需求急剧上升。EDO DRAM的设计虽然比FPM DRAM有了改进,但其本质上仍然是异步内存,与CPU和系统时钟没有同步,导致在更高频率的系统中无法充分发挥潜力。想象一下,在异步内存系统中,处理器和内存就像两个不同步的人在传递球。处理器(传球者)在不知道内存(接球者)是否准备好的情况下传球,有时需要等待对方准备好再继续传递。而在同步内存系统中,处理器和内存就像两个人以相同的节奏传球,双方都清楚每次球的传递时间,球在固定的节奏下快速传递,效率更高。

        内存技术在这个时代发生了大革命,插座从原来的SIMM升级为DIMM(Dual In-line Memory Module),两边的金手指传输不同的数据,SDR SDRAM内存插座的接口是168Pin,单边针脚数是84,进入到了经典的SDR SDRAM(Single Data Rate SDRAM)时代。

        SDRAM(Synchronous DRAM) 于1996年引入,并很快成为内存市场的主流。SDRAM其实就是同步DRAM的意思,“同步”是指内存工作需要同步时钟,内部命令的发送与数据的传输都以它为基准。内存频率与CPU外频同步,这大幅提升了数据传输效率,再加上64bit的数据位宽与当时CPU的总线一致,只需要一根内存就能让电脑正常工作了,这降低了采购内存的成本。其主要特点包括:

  • 同步时钟:SDRAM依赖于系统时钟信号,与CPU同步,能够以更高的频率处理数据,减少了等待时间,极大提高了内存带宽。
  • 更高的频率和带宽:SDRAM的时钟频率从最初的66MHz逐步提升到100MHz、133MHz,远高于EDO DRAM所能支持的频率。SDRAM的引入使得内存系统可以更快响应CPU的访问请求,满足当时多媒体和图形处理等高带宽应用的需求。
  • 模块封装升级:SDRAM最早以168针的DIMM(双列直插式内存模块)封装形式推出,这种封装支持64位的数据总线,比EDO DRAM的32位更宽,进一步提高了数据传输效率。

        到了1997年,随着SDRAM的大量普及,EDO DRAM逐渐被淘汰。尽管EDO DRAM在当时性能有所提升,但与SDRAM相比,其性能和带宽远远不够。特别是在高端计算和服务器领域,EDO DRAM很快失去了竞争力,退出了市场。

2.3.2.2 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory)

        在SDRAM之后,内存技术继续发展,逐渐推出了更高效的DDR(双倍数据速率)SDRAM,以及后来的DDR2、DDR3、DDR4和如今的DDR5内存。每一代内存都在数据传输速度、功耗和容量方面实现了显著提升。

        DDR(Double Data Rate)内存能够在时钟周期的上升沿和下降沿都进行数据传输,相比于早期的内存技术,DDR系列内存具有更高的带宽和性能。DDR对于SDRAM,主要优势在于它允许在时钟脉冲的上升沿和下降沿传输数据,这样不需要提高时钟的频率就能实现双倍的SDRAM速度,例如DDR266内存与PC133 SDRAM内存相比,工作频率同样是133MHz,但在内存带宽上前者比后者高一倍。这种做法相当于把单车道更换为双车道,内存的数据传输性能自然可以翻倍。

        DDR4和DDR5:现代内存技术不断追求更高的带宽、更低的延迟和更大的容量。当前的DDR4和最新的DDR5内存已经可以提供几乎百倍于EDO DRAM的带宽和数千倍的容量,满足了现代计算设备的需求。

三、总结

        内存技术的发展一直围绕着存储速度、容量、功耗和成本的平衡展开,未来随着计算需求的增长和新材料、新工艺的发展,内存技术将继续向更高效、更密集的方向演进。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《使用 LangChain 进行大模型应用开发》学习笔记(四)
  • 1.pytest基础知识(默认的测试用例的规则以及基础应用)
  • Navicat 17 新特性 | 聚焦 MongoDB
  • 北森笔试测评之言语理解到底难不难
  • LabVIEW机动车动态制动性能校准系统
  • 【运维监控】Prometheus+grafana监控flink运行情况
  • 【ComfyUI】自定义节点ComfyUI-Impact-Pack——人脸、手部、肢体修复
  • Linux常用命令(四)
  • kubernetes架构
  • YOLOv9改进策略【SPPF】| SimSPPF,简化设计,提高计算效率
  • 【每日刷题】Day125
  • 基于SpringBoot+Vue+MySQL的考研互助交流平台
  • SQL进阶的技巧:如何实现某列的累计乘积?
  • 二叉树——数据结构
  • 代理IP批理检测工具,支持socks5,socks4,http和https代理批量检测是否可用
  • 77. Combinations
  • java8-模拟hadoop
  • MySQL数据库运维之数据恢复
  • Rancher-k8s加速安装文档
  • SQLServer之创建显式事务
  • Vue.js 移动端适配之 vw 解决方案
  • Windows Containers 大冒险: 容器网络
  • 构造函数(constructor)与原型链(prototype)关系
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 面试总结JavaScript篇
  • 爬虫模拟登陆 SegmentFault
  • 人脸识别最新开发经验demo
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • 正则学习笔记
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​HTTP与HTTPS:网络通信的安全卫士
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • ​比特币大跌的 2 个原因
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (06)Hive——正则表达式
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (AngularJS)Angular 控制器之间通信初探
  • (第61天)多租户架构(CDB/PDB)
  • (篇九)MySQL常用内置函数
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十)c52学习之旅-定时器实验
  • (四)Android布局类型(线性布局LinearLayout)
  • (一)kafka实战——kafka源码编译启动
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)visual stdio 书签功能介绍
  • (转)我也是一只IT小小鸟
  • ./和../以及/和~之间的区别
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET面试题(二)
  • @property python知乎_Python3基础之:property
  • @Slf4j idea标红Cannot resolve symbol ‘log‘
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116