从零开始讲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的带宽和数千倍的容量,满足了现代计算设备的需求。

三、总结

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1538236.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

达梦数据库DM8使用介绍

达梦数据库DM8使用介绍 达梦数据库DM8使用介绍一、安装达梦数据库二、初始化数据库实例三、SQL 分类DML(Data Mannipulation Language)数据操纵语言:DDL(Data Definition Language)数据定义语言:DCL(Data Control Language)数据控制语言:TCL(…

springboot实训学习笔记(5)(用户登录接口的主逻辑)

接着上篇博客学习。上篇博客是已经基本完成用户模块的注册接口的开发以及注册时的参数合法性校验。具体往回看了解的链接如下。 springboot实训学习笔记(4)(Spring Validation参数校验框架、全局异常处理器)-CSDN博客文章浏览阅读576次,点赞7…

城市级河流三维处理及展示的一些技术

本文是一些算法技术的初探分析,会陆续修订。 1、问题 河流是一种非常复杂的多边形。在二维地图可以采用多边形填充算法(DDA)对任意复杂的多边形进行绘制与填充。但是三维引擎只能采纳三角面进行渲染。但在如此复杂的多边形面前,简单的三角化算法不能解…

Java 回顾方法的定义

一、方法的定义 1.修饰符(public static…)详见博客【Java 方法的定义】 2.返回值(int, double, char[],…., void)详见博客【Java 方法的定义】 3. break:跳出switch 结束循环,详…

2024年09月18日《每日一练》

1、 智慧城市建设参考模型包括有依赖关系的5层结构和对建设有约束关系的3个支撑体系,5层结构包括物联感知层、通信网络层、计算与存储层、数据及服务支撑层、智慧应用层;3个支撑体系除了建设和运营管理体系、安全保障体系之外还包括()。 A 人…

使用arduino玩基于esp8266的nodemcu开发板

一、简介 中秋节到图书馆看书,看到了arduino方面的书籍,里面有提到ESP8266模块。让我想起我抽屉里吃灰很久了的基于esp8266的nodemcu开发板。于是把书借回家研究了一下。这里做个记录。 二、我目前在使用的云服务器推荐 学Linux不搞个云服务器始终感觉…

进行直流充电桩测试仪的步骤和规范

直流充电桩测试仪是一种用于检测和评估直流充电桩性能的设备。它能够测量充电桩的输出电压、电流、功率等参数,并能够模拟各种负载条件,以测试充电桩的稳定性和可靠性。下面是进行直流充电桩测试仪的步骤和规范: 确保测试环境安全&#xff0…

2024.9.18 作业+思维导图

练习&#xff1a;提示并输入一个字符串&#xff0c;统计该字符串中字母、数字、空格、其他字符的个数并输出 #include <iostream>using namespace std;int main() {cout << "请输入一个字符串:" << endl;string str;int shuzi 0,zimu0,space 0,q…

MAGDA:多智能体指南驱动的诊断助手

MAGDA&#xff1a;多智能体指南驱动的诊断助手 秒懂大纲提出背景精细拆解输入输出全流程创意视角中文意译 论文&#xff1a;MAGDA: Multi-agent guideline-driven diagnostic assistance 秒懂大纲 ├── MAGDA: Multi-agent guideline-driven diagnostic assistance【研究主…

安全运维教程(非常详细)从零基础入门到精通,看完这一篇就够了

一、安全运维-网络 1、IP地址相关 IP地址属于网络层地址&#xff0c;用于标识网络中的节点设备。 IP地址由32bit构成&#xff0c;每8bit一组&#xff0c;共占用4个字节。 IP地址由两部分组成&#xff0c;网络位和主机位。 IP地址分类&#xff1a; 类别网络位子网掩码私有地…

嵌入式基本知识梳理

一、CPU的组成 CPU&#xff1a;中央处理器-----》soc(片上系统)&#xff08;描述的是一种芯片&#xff0c;这个芯片具有运算程序的能力&#xff09;、 UART: Universal Asynchronous Receiver/Transmitter&#xff0c;通用异步收发传输器&#xff09;是一种广泛使用的串行通信协…

达梦数据库导入xml迁移到达梦数据库大文件导致中断问题解决方案记录?

问题&#xff1a;我将同事给我的xml文件迁移到盗梦数据库&#xff0c;xml文件大约2G&#xff0c;在导入过程中&#xff0c;总是导入一半都不到就失败了。 原因&#xff1a;我的原因是我的电脑的系统的运行内存是16G的&#xff0c;后来我发现在没导入之前&#xff0c;其他进程已…

MODIS/Landsat/Sentinel下载教程详解【常用网站及方法枚举】

⛄前言 在当今快速发展的地球观测时代&#xff0c;遥感技术作为获取地球表面及其环境信息的重要手段&#xff0c;正以前所未有的广度和深度改变着我们对自然界的认知与管理方式。MODIS&#xff08;Moderate-resolution Imaging Spectroradiometer&#xff0c;中分辨率成像光谱…

Cloud Removal in Remote Sensing Using Sequential-BasedDiffusion Models论文翻译

MDPI 2023 论文名称:基于序列扩散模型的遥感云去除 摘要&#xff1a; 通过太空光学卫星收集的光学观测数据大多受到云层或雾霾的干扰&#xff0c;这限制了地球观测的进一步应用&#xff1b;因此&#xff0c;探索一种理想的去云方法至关重要。在本文中&#xff0c;我们提出了一…

电脑监控如何多画面显示?3个妙招分享,第一个你学会了吗?

电脑监控实现多画面显示&#xff0c;可以通过多种方法实现&#xff0c;以下是三个妙招的分享&#xff1a; 1. 使用专业监控软件 方法概述&#xff1a; 专业监控软件如安企神等&#xff0c;提供了强大的多画面显示功能。 这些软件通常支持自定义画面布局&#xff0c;如4分屏、…

鸿蒙Harmony应用开发,数据驾驶舱页面的实现

先来看看我们要实现的驾驶舱的页面是什么样的 对于这种 响应式布局的页面构建&#xff0c;我们的脑子里面要有一个概念&#xff0c;就是"分而治之"。我们把这个页面进行分割&#xff0c;分割成不同的块然后再来逐个实现. 不难发现&#xff0c;我们可以将这个看到的效…

【研发日记】嵌入式处理器技能解锁(六)——ARM的Cortex-M4内核

文章目录 前言 背景介绍 指令集架构 ARM起源 ARM分类 Cortex-M4 内核框架 指令流水线 实践应用 总结 参考资料 前言 见《【研发日记】嵌入式处理器技能解锁(一)——多任务异步执行调度的三种方法》 见《【研发日记】嵌入式处理器技能解锁(二)——TI C2000 DSP的SCI(…

数据结构与算法(Python)

引入 先来看一道题: 如果 abc1000&#xff0c;且 a^2b^2c^2&#xff08;a,b,c 为自然数&#xff09;&#xff0c;如何求出所有a、b、c可能的组合? 枚举法&#xff1a; # 如果 abc1000&#xff0c;且 a^2b^2c^2&#xff08;a,b,c 为自然数&#xff09;&#xff0c;如何求出…

ROS和ROS2借助智能大模型的学习和研究方法

机器人相关知识的本身和价值-CSDN博客 知识本身在智能时代毫无价值&#xff0c;需要基于知识应用和创新才有价值。 学历报废并非来自扩招&#xff0c;而是智能模型的快速发展。-CSDN blink-领先的开发者技术社区 2024年中秋&#xff0c;智能模型实力已经如此&#xff0c;但还…

Modbus_tcp

目录 一&#xff1a;modbus起源 1.起源 2. 分类&#xff1a; 3. 优势&#xff1a; 4. 应用场景&#xff1a; 5.ModbusTCP特点&#xff08;掌握&#xff09;&#xff1a; 二、 ModbusTCP的协议 1. 报文头 2. 寄存器 1. 线圈&#xff08;Coils&#xff09; 2. 离…