存储系统
RAM
RAM
(随机访问存储器): RAM 是计算机中用于临时存储数据和程序的一种类型的存储器。它是一种易失性存储器,意味着当计算机断电或重新启动时,RAM 中的数据将会丢失。RAM 具有高速读写的特性,因此在计算机中被广泛用于存储运行中的程序和正在处理的数据。在计算机运行时,操作系统和应用程序会将需要快速访问的数据和指令加载到 RAM 中,以便 CPU 能够快速地读取和处理它们。RAM 的容量通常以 GB(Gigabytes)为单位,如 4GB、8GB、16GB 等。
主存储器(主内存): 主存储器指的是计算机中的 RAM,用于存储正在运行的程序和数据。CPU 可以直接访问主存储器中的数据,因此它是计算机中最快速的存储器类型。
辅助存储器(ROM): 辅助存储器指的是计算机中的非易失性存储设备,如硬盘、SSD、SD 卡等。它们的存储速度相对较慢,但可以长期保存数据,即使计算机断电也不会丢失数据。辅助存储器主要用于长期存储和备份数据,以及安装操作系统和应用程序。
SRAM与DRAM
类型 | 作用 | 特点 |
---|---|---|
SRAM(Static Random Access Memory ,静态随机存储器) |
它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据 | 优点是速度快,不必配合内存刷新电路,可提高整体的工作效率。缺点是集成度低,功耗较大,相同的容量体积较大,而且价格较高,少量用于关键性系统以提高效率。 |
DRAM(Dynamic Random Access Memory ,动态随机存储器) |
DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)一次,如果存储单元没有被刷新,存储的信息就会丢失 | 必须刷新,后面衍生出DDR,DDR2,DDR3,DDR4,DDR5 |
DDR基础
我们常说的DDR,亦即DDR SDRAM
,指的是PC端或者消费电子(手机,平板)中的内存,是 “Double Data Rate Synchronous Dynamic Random Access Memory
”(双数据率同步动态随机存储器)的简称,它 允许在时钟脉冲的上升沿和下降沿传输数据,其主要作用是为了和CPU频率同步,进而大大提高数据传输效率。
SDRAM从发展到现在已经经历了五代,分别是:
第一代SDR SDRAM,单边沿传输数据;
第二代DDR SDRAM,允许在时钟脉冲的上升沿和下降沿传输数据;
第三代DDR2 SDRAM,拥有两倍于上一代DDR内存预读取能力(即4bit数据读预取能力);
第四代DDR3 SDRAM,具备更低的工作电压(1.5v),240线接口,支持8bit预读;
第五代DDR4 SDRAM,16bit预取机制(DDR3为8bit),同样内核频率下理论速度是DDR3的两倍,;
目前已经发展到DDR5 SDRAM;
DDR核心技术点就在于:(1)双沿传输。(2)预取prefetch。 DDR的频率:(1)核心频率、(2)时钟频率、(3)数据传输频率;核心频率就是内存的工作频率;DDR1内存的核心频率是和时钟频率相同的,到了DDR2和DDR3时才有了时钟频率的概念,就是将核心频率通过倍频技术得到的一个频率。数据传输频率就是传输数据的频率。DDR1预读取是2位,DDR2预读取是4位,DDR3预读取是8位…
与DDR相比,LPDDR内存全称是Low Power Double Data Rate SDRAM
,中文意为低功耗双倍数据速率内存,又称为mDDR(Mobile DDR SDRM
),主要针对于移动端电子产品。
LPDDR4X可以看作是LPDDR4的省电优化版本,比LPDDR4功耗更低、更省电;目前市面上主流旗舰手机内存使用的都是LPDDR4X
和LPDDR4
,由于二者经常同时出现,名字也十分相似,所以很容易让人混淆。
ECC、None-ECC与REG-ECC
ECC,全称 Error Correction Code
,是一种可以自动检测并修复数据错误的类型的计算机数据存储。ECC 内存在存储数据时会生成校验码,当数据被重新读取时,它会使用这些校验码来检查是否有错误发生。如果检测到错误,ECC 内存会尝试自动修复这些错误,或者至少通知系统错误已经发生。
1.1 工作原理
ECC内存通过奇偶校验或更复杂的纠错码来检测和纠正内存中的数据错误。
1、奇偶校验位: 奇偶校验是一种简单的错误检测方法,它通过在数据字节末尾添加一个额外的位(奇校验位或偶校验位)来检测错误。根据校验位的设置,数据字节的总位数可以是奇数或偶数。例如,如果校验位设置为使数据字节的总位数为奇数,那么校验位将被设置为确保总位数为奇数。如果在数据传输过程中发生了错误,奇偶校验位将不匹配,从而指示出现错误。
2、纠错码: 纠错码通常更复杂,可以检测和纠正多个位的错误。ECC内存使用纠错码,如Hamming码或其他类似的编码方案,生成校验位。这些校验位用于检测和纠正内存中的数据错误。例如,Hamming码可以纠正单个位错误,以及检测多位错误。
3、错误检测和纠正: 当数据从内存中读取时,内存控制器会计算校验位并与存储的校验位进行比较。如果检测到校验位不匹配,内存控制器将确定发生了错误,并尝试纠正错误(如果支持)。这使ECC内存能够在读取数据时检测到单个位错误并进行纠正,以确保数据的完整性。
4、纠错能力: 纠错码的能力取决于其设计和级别。某些ECC内存可以纠正单个位错误,而其他更高级别的ECC内存可以纠正多个位错误。
1.2 特点
1、错误检测和纠正: ECC内存使用附加的校验位来检测并纠正内存中的单个位错误。这意味着即使在内存硬件出现故障的情况下,服务器仍然可以正常运行。
2、数据完整性: ECC内存可确保存储在内存中的数据的完整性,因此在关键任务和数据中使用它可以防止数据损坏。
3、可靠性: 由于其纠正能力,ECC内存在服务器环境中非常可靠,可以减少因内存故障而导致的服务器停机时间。
4、成本: 由于其高级功能,ECC内存通常比非ECC内存更昂贵。
1.3适用场景
1、关键任务和数据: 对于需要高度可靠性和数据完整性的服务器,如金融机构、医疗保健、科学计算等,ECC内存是必不可少的选择。它可以检测并纠正内存中的单个位错误,防止数据损坏。
2、大规模服务器: 在大规模数据中心环境中,单个位错误可能会发生,ECC内存有助于防止这些错误对整个系统的影响。
3、虚拟化: 虚拟化环境中,多个虚拟机共享同一台物理服务器的内存。ECC内存可以减少虚拟机之间的内存冲突和数据错误。
4、长时间运行: 如果您的服务器需要长时间运行,ECC内存有助于减少内存错误导致的系统崩溃的风险。
None-ECC 内存
2.1 特点
1、性能: 由于不需要额外的校验计算,非ECC内存通常比ECC内存具有稍微更高的性能。
2、成本: 非ECC内存相对便宜,适用于预算有限的服务器。
2.2 适用场景
非ECC内存通常更适合一些性能密集型的应用和成本敏感型的环境,包括:
1、Web服务器: 对于大多数Web服务器,性能可能比数据完整性更重要。非ECC内存提供了更高的性能,并且通常更经济实惠。
2、游戏服务器: 在游戏服务器中,快速响应时间和较低的延迟可能更加关键,而非ECC内存通常具备更高的性能。
3、一般用途服务器: 对于一般用途的服务器,非ECC内存可能足够,因为数据完整性不是最重要的考虑因素。
4、预算受限: 如果您的预算有限,非ECC内存通常更经济实惠。