服务器内存常识

在服务器领域,目前使用的内存条类型(DIMM)主要有三种:UDIMM、RDIMM和LRDIMM。

UDIMM

UDIMM:全称Unbuffered DIMM,即无缓冲双列直插内存模块,指地址和控制信号不经缓冲器,无需做任何时序调整,直接到达DIMM上的DRAM芯片。UDIMM由于在CPU和内存之间没有任何缓存,因此同频率下延迟较小。

数据从CPU传到每个内存颗粒时,UDIMM需保证CPU到每个内存颗粒之间的传输距离相等,这样并行传输才有效,而这需要较高的制造工艺,因此UDIMM在容量和频率上都较低。

服务器UDIMM、LRDIMM、RDIMM三种内存的区别

RDIMM

RDIMM:全称Registered DIMM,带寄存器的双列直插内存模块。RDIMM在内存条上加了一个寄存器进行传输,其位于CPU和内存颗粒之间,既减少了并行传输的距离,又保证并行传输的有效性。由于寄存器效率很高,因此相比UDIMM,RDIMM的容量和频率更容易提高。

服务器UDIMM、LRDIMM、RDIMM三种内存的区别

LRDIMM

LRDIMM:全称Load Reduced DIMM,低负载双列直插内存模块。相比RDIMM,LRDIMM并未使用复杂寄存器,只是简单缓冲,缓冲降低了下层主板上的电力负载,但对内存性能几乎无影响。

此外,LRDIMM内存将RDIMM内存上的Register芯片改为iMB(isolation Memory Buffer)内存隔离缓冲芯片,直接好处就是降低了内存总线负载,进一步提升内存支持容量。

区别与应用

UDIMM由于并未使用寄存器,无需缓冲,同等频率下延迟较小。此外,UDIMM的另一优点在于价格低廉。其缺点在于容量和频率较低,容量最大支持4GB,频率最大支持2133 MT/s。此外,由于UDIMM只能在Unbuffered 模式工作,不支持服务器内存满配(最大容量),无法最大程度发挥服务器性能。在应用场景上,UDIMM不仅可用于服务器领域,同样广泛运用于桌面市场。

而RDIMM支持Buffered模式和高性能的Registered模式,较UDIMM更为稳定,同时支持服务器内存容量最高容量。此外,RDIMM支持更高的容量和频率,容量支持32GB,频率支持 3200 MT/s 。缺点在于由于寄存器的使用,其延迟较高,同时加大了能耗,此外,价格也比UDIMM昂贵。因此,RDIMM主要用于服务器市场。

LRDIMM可以说是RDIMM的替代品,其一方面降低了内存总线的负载和功耗,另一方面又提供了内存的最大支持容量,虽然其最高频率和RDIMM一样,均为3200 MT/s,但在容量上提高到64GB。并且,相比RDIMM,Dual-Rank LRDIMM内存功耗只有其50%。LRDIMM也同样运于服务器领域,但其价格,较RDIMM也更贵些。

不带缓存的 ECC DIMM (ECC UDIMM)、带寄存器的 DIMM (RDIMM) 以及负载降低的 DIMM (LRDIMM)
在这里插入图片描述

内存条根据DRAMS的数量分为Single-Rank,Dual-Rank,Quad-Rank,分别简写为1R,2R和4R。Rank是由DIMM上一组DRAMS组成的数据使用区域
在这里插入图片描述
一个Rank的data-bus width是64 bits(ECC是72bits,需要8个bits ECC area), 如果每个bank的data-bus width是4bits,那么就需要16个bank,如果每个bank的data-bus width是8bits,那么就需要8个bank。需要注意的是,Rank中的Bank不必限于同一个side,有可能两面都有bank,但依然是一个Rank

在这里插入图片描述
Dual-Rank与Quad-Rank的DIMM可以理解为分别将两个或者四个内存条合成了一个内存条。服务器最终能够使用几张内存条,使用什么类型的内存条,取决于MB上slot的数量以及系统层面对于Rank总数(总带宽)的限制。

大多数Vendor提供的产品,1R与2R是兼容的,可以同时存在于同一台Server中。
实际选择中,需要根据MB上DIMM的数量进行考虑。如果只插入2-4根,那么无论是1R还是2R都是可以的,甚至于2R还会提升大约5%的性能。一旦DIMM数量比较多,那么最好只选择1R的,因为Rank之间不能同时share相同的data path,同时更多Rank,也就意味着更多Bank,这也会降低DIMM的latency。

作者:养猫的老鼠
链接:https://www.jianshu.com/p/601ceb994183

内存上2r8与2r4的区别

8是8bit,4是4bit,RANK是一个内存总线(64bit),2R8即128/8,两面共16个颗粒,2R4即128/4,两面共32个颗粒,面是Side,一般不强调。

C语言是一种通用的编程语言,它可以用于开发各种类型的应用程序,包括服务器应用程序。以下是一些C语言服务器编程的方法必备常识: 1. 理解网络协议:C语言服务器编程需要对网络协议有一定的了解。常见的网络协议包括TCP/IP、HTTP、FTP等。了解这些协议可以帮助你更好地理解服务器编程的基础知识。 2. 使用Socket编程: Socket是一种用于网络通信的API,可以让你使用C语言进行网络编程。你可以使用Socket编程来创建服务器应用程序,处理客户端请求响应。Socket编程需要掌握一些基本的函数概念,如socket()、bind()、listen()、accept()、send()recv()等。 3. 处理多个客户端:服务器应用程序通常需要同时处理多个客户端请求。为此,你需要使用多线程或多进程技术。多线程技术可以让你在单个进程中同时处理多个客户端请求,而多进程技术则可以让你使用多个进程来处理客户端请求。 4. 了解并发编程:服务器应用程序需要处理大量的并发请求。为此,你需要掌握并发编程的基本知识,例如线程同步、互斥锁、条件变量等。 5. 考虑安全性:服务器应用程序需要考虑安全性,以避免恶意攻击数据泄露。你需要使用安全编程技术,如SSL/TLS协议、加密算法等,来保护服务器应用程序通信数据的安全性。 6. 了解操作系统硬件:服务器应用程序需要运行在操作系统上,因此你需要掌握操作系统硬件的基本知识,例如进程管理、内存管理、IO操作等。 以上是一些C语言服务器编程的方法必备常识,希望对你有帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值