一、计算机组成
计算机组成结构(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 80486、Pentium等处理器。对于这些处理器,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的带宽和数千倍的容量,满足了现代计算设备的需求。
三、总结
内存技术的发展一直围绕着存储速度、容量、功耗和成本的平衡展开,未来随着计算需求的增长和新材料、新工艺的发展,内存技术将继续向更高效、更密集的方向演进。