首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >详细说一下服务器内存和显存是怎么计算的

详细说一下服务器内存和显存是怎么计算的

原创
作者头像
用户6953509
修改于 2020-02-13 02:07:35
修改于 2020-02-13 02:07:35
7.1K0
举报

早期内存通过存储器总线和北桥相连,北桥通过前端总线与CPU通信。从Intel Nehalem起,北桥被集成到CPU内部,内存直接通过存储器总线和CPU相连。

所以,在AMD采用Socket FM1,Intel采用LGA 1156插槽之后的处理器都集成了北桥,独立的北桥已经消失,主板上仅余下南桥。

计算机体系的主要矛盾在于CPU太快了,而磁盘太慢了。所以它俩是不能够直接通信的,需要增加一个过渡层,这就是内存的作用。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。

内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。

1996年底,SDRAM开始在系统中出现,不同于早期的技术,SDRAM的出现是为了与CPU的计时同步化所设计。

SDRAM亦可称为SDR SDRAM(Single Data Rate SDRAM),Single Data Rate为单倍数据传输率,SDR SDRAM的核心、I/O、等效时脉皆相同, SDR SDRAM在1个周期内只能读写1次,若需要同时写入与读取,必须等到先前的指令执行完毕,才能接着存取。

DDR SDRAM为双通道同步动态随机存取内存,是新一代的SDRAM技术。别于SDR(Single Data Rate)单一周期内只能读写1次,DDR的双倍数据传输率指的就是单一周期内可读取或写入2次。在核心频率不变的情况下,传输效率为SDR SDRAM的2倍。

总结:DDR采用时钟脉冲上升、下降沿各传一次数据,1个时钟信号可以传输2倍于SDRAM的数据,所以又称为双倍速率SDRAM。它的倍增系数就是2。

DDR2 SDRAM为双通道两次同步动态随机存取记忆体。DDR2内存Prefetch又再度提升至4bit(DDR的两倍),DDR2的I/O时脉是DDR的2倍。

总结:DDR2仍然采用时钟脉冲上升、下降时各传一次数据的技术(不是传2次),但是一次预读4bit数据,是DDR一次预读2bit的2倍,因此,它的倍增系数是2X2=4。

DDR3SDRAM为双通道三次同步动态随机存取记忆体。DDR3记忆体Prefetch提升至8bit,即每次会存取8 bits为一组的数据。DDR3传输速率介于800~1600 MT/s之间。

此外,DDR3 的规格要求将电压控制在1.5V,较DDR2的1.8V更为省电。DDR3也新增ASR (Automatic Self-Refresh)、SRT(Self-Refresh Temperature)等两种功能,让内存在休眠时也能够随着温度变化去控制对内存颗粒的充电频率,确保系统数据完整性

总结:DDR3作为DDR2的升级版,最重要的改变是一次预读8bit,是DDR2的2倍,DDR的4倍,所以,它的倍增系数是2*2*2=8。

DDR4 SDRAM提供比DDR3/DDR2更低的供电电压1.2V以及更高的频宽。DDR4 新增了4 个Bank Group 组的设计,各个Bank Group具备独立启动操作读、写等动作特性,Bank Group 组可套用多工的观念来想像,亦可解释为DDR4 在同一时脉工作周期内,至多可以处理4 组数据,效率明显好过于DDR3。

另外,DDR4增加了DBI(Data BusInversion)、CRC(Cyclic Redundancy Check)、CA parity等功能,让DDR4内存在更快速与更省电的同时亦能够增强信号的完整性和储存的可靠性。

Intel在2017年推出对应于六代酷睿Skylake的云服务器平台“Purley”,采用14nm工艺、最多28核心56线程、6通道DDR4内存、光纤互连通道,采用UPI总线替代QPI总线等等。UPI是 UltraPath Interconnect(超级通道互连)缩写,数据传输率可达9.6GT/s、10.4GT/s,带宽更足,灵活性更强,每条消息可以发送多个请求。

内存未来三大演进方向分别为容量、电压和频率。

  • 容量越来越大(4GB -> 8GB -> 16GB ->32GB -> 64GB->…512GB)
  • 电压越来越低(1.5v -> 1.35v -> 1.2v->…)
  • 频率越来越高(1333 -> 1600 -> 1866-> 2133 -> 2400->..3200)

主流内存生产厂家分为内存颗粒厂商和模组厂商,三大内存颗粒(DRAM)原厂依次为Samsung、SK Hynix和Micron。模组厂商Ramaxel和Kingston通过从颗粒厂商购买颗粒制作内存条(DIMM)。

内存有三种不同的频率指标,它们分别是核心频率、时钟频率和有效数据传输频率。

  • 核心频率即为内存Cell阵列(Memory Cell Array)的工作频率,它是内存的真实运行频率;
  • 时钟频率即I/OBuffer(输入/输出缓存)的传输频率;
  • 有效数据传输频率则是指数据传送的频率。

系统最大内存带宽 = 内存标称频率*内存总线位数*通道数*CPU个数

实际内存带宽 = 内存标称频率*内存总线位数*实际使用的通道数

实际内存带=内存核心频率*内存总线位数*实际使用的通道数*倍增系数。

从SDRAM-DDR时代,数据总线位宽时钟没有改变,都为64bit,但若是采用双通道技术,可以获得64*2=128bit的位宽。

下面计算一条标称DDR31066的内存条在默认频率下的带宽,1066是指有效数据传输频率,除以8才是核心频率,一条内存只用采用单通道模式,位宽为64bit。所以,实际内存带宽=(1066/8)*64*1*8=68224Mbit。

由此可知,如果内存工作在标称频率的时候,可以直接用标称频率*位宽*实际使用的通道数,简化公式=1066*64*1=68224Mbit。

如果说内存带宽是处理器与内存交换数据的关键,那么显存带宽对显卡同样也很重要。GPU核心负责运算,显存负责数据存储,二者之间需要频繁交换数据,这就要依赖显存带宽了,更高的带宽可以让显卡在处理高分辨率、高画质时更加得心应手。

显存带宽从大的方面来说是显存频率及显存位宽来决定的,不过实际带宽就要看具体情况了,目前主流显卡的位宽多是128bit、256bit、384bit及512bit,更能决定带宽的还是显存类型,它们决定了显存带宽的极限。

目前最主流的显存当然是GDDR5,之前还有过昙花一现的GDDR4,现在低端市场上还有gDDR3显存残存,AMD在其显卡上使用了HBM显存,相比GDDR5显存更强大,带宽大幅提升。

就这二者来说,GDDR5内部I/O带宽是32bit,目前的NVIDIA显卡的GDDR5显存频率可以达到1750MHz,它是4倍速率机制,数据频率是7Gbps,单个芯片的带宽是28GB/s。目前的HBM显存的频率只有500MHz,2倍频率率机制,数据频率是1Gbps,不过它的I/O带宽极高,弥补了频率不足。

GDDR5和HBM显存是目前最主流的显存技术。目前gDDR3显存基本上是NVIDIA及AMD部分低端显卡在用。GDDR5绝对是目前的主流,单颗芯片的容量逐渐从之前的2Gb提高到4Gb,美光前不久还量产出货了8Gb(1GB)颗粒的,高端显卡也只要4-8颗芯片即可实现4-8GB容量显存,这将进一步推动大容量显卡的出现。

HBM是后起之秀,目前只有是AMD家独使用,第一代HBM技术其堆栈的显存核心容量2Gb(1个堆栈是4颗核心),数据频率1Gbps,位宽1024bit。

显存带宽=显存等效数据频率(Gbps)*显存总位宽(bit)/8=显存实际频率(MHz)*显存数据倍率(1、2、4不等)*显存等效位宽(64-512bit不等)/8

由于显卡厂更习惯用数字更大更好看的数据频率来标记产品规格,上述公司实际上还可以更简单,直接变成:

显存带宽(GB/s)=显存数据频率(Gbps)*显存等效位宽(bit)/8

拿NVIDIA的GeForce GT 720显卡来举例说明,该卡位宽仅为64bit,同时支持gDDR3和GDDR5显存,前者的典型频率900MHz,后者的典型频率是1250MHz,两种配置下带宽分别是:

gDDR3:GT 720显卡的带宽为:900MHz *2*64 bit/8= 14.4GB/s,或者是1.8Gbps *64bit/ 8= 14.4GB/s。

GDDR5:GT 720显卡的带宽为1250MHz *4*64 bit/8 = 40GB/s,或者是5Gbps* 64bit/8=40GB/s。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JAVA安全之Thymeleaf模板注入防护绕过
若依CMS中使用到了Thymeleaf模板引擎且存在模板注入可控点,但是在漏洞测试过程中发现常规的通用载荷并不生效,遂对其进行调试分析,最后发现是和Thymeleaf版本有莫大的关系,其中3.0.12版本增加了多处安全机制来防护模板注入漏洞,本篇文章将基于此背景对Thymeleaf模板的注入防御措施和绕过进行深入刨析
Al1ex
2024/10/14
3730
JAVA安全之Thymeleaf模板注入防护绕过
org.springframework.expression.spel.SpelEvaluationException: EL1011E: Method call: Attempted to call
前言 本文中提到的解决方案,源码地址在:springboot-thymeleaf,希望可以帮你解决问题。 至于为什么已经写了一篇文章thymeleaf模板引擎调用java类中的方法,又多此一举的单独整理了这篇文章,是因为在解决此问题时首先搜索了一下关于此问题的文章,但是网上并没有搜到关于此问题的答案,因此自己做了整理。 问题描述 在springboot与thymeleaf整合过程中,出现了如下报错: ``` org.thymeleaf.exceptions.TemplateProcessingExcepti
程序员十三
2018/03/15
2.1K0
三行代码解决Springboot框架自带异常
近期一个原业务图片上传的接口偶发会报异常,原有高可用方案是当上传七牛云失败上传腾讯云,都失败才会报异常,或者会存在目录创建失败的异常,此类异常重试即可解决,但近期异常如下
疯狂的KK
2023/01/12
4730
三行代码解决Springboot框架自带异常
org.springframework.expression.spel.SpelEvaluationException: EL1004E: Method call: Method service()
前言 本文中提到的解决方案,源码地址在:springboot-thymeleaf,希望可以帮你解决问题。 至于为什么已经写了一篇文章thymeleaf模板引擎调用java类中的方法,又多此一举的单独整理了这篇文章,是因为在解决此问题时首先搜索了一下关于此问题的文章,但是网上并没有搜到关于此问题的答案,因此自己做了整理。 问题描述 在springboot与thymeleaf整合过程中,出现了如下报错: org.thymeleaf.exceptions.TemplateProcessingExcepti
程序员十三
2018/03/15
2.7K0
chaos-monkey-spring-boot小试牛刀
chaos-monkey-spring-boot是专门为Spring Boot打造的Chaos Monkey
code4it
2018/09/17
1.1K0
spring cloud利用feign和sentinel进行内部或外部远程调用
    基于上篇讲解的Sentinel之后,这次讲讲spring cloud环境下最优雅的远程调用方式Feign
chinotan
2019/04/03
3.5K0
spring cloud利用feign和sentinel进行内部或外部远程调用
jxls工具导出excel,报错:Cannot load XLS transformer. Please make sure a Transformer implementation is in cl
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/163882.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/15
1.3K0
还在使用kill -9 pid结束spring boot项目吗?那你已经落伍了!
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看(这段话来自菜鸟教程)。
肉眼品世界
2021/01/25
9680
还在使用kill -9 pid结束spring boot项目吗?那你已经落伍了!
Swagger-ui在文件上传时报错net::ERR_CONNECTION_RESET
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
yingzi_code
2019/08/30
2K0
SpringBoot服务端表单数据校验
1、首先说明一下,这里使用的是Springboot2.2.6.RELEASE版本,由于Springboot迭代很快,所以要注意版本问题。
别先生
2020/05/18
8550
SpringBoot服务端表单数据校验
这才是实现分布式锁的正确姿势!
其实Java世界的”半壁江山”——Spring早就提供了分布式锁的实现。早期,分布式锁的相关代码存在于Spring Cloud的子项目Spring Cloud Cluster中,后来被迁到Spring Integration中。
JAVA葵花宝典
2019/05/24
1.1K0
初学Spring Cloud踩坑之org.springframework.web.client.HttpClientErrorException: 400 null
初学Spring Cloud踩坑之org.springframework.web.client.HttpClientErrorException: 400 null
Java架构师必看
2021/05/14
1.7K0
SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after
SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30001ms.
二十三年蝉
2018/10/11
7.5K0
SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after
springcloud与hystrix整合时freemarker依赖问题分析
乍一看,是 freemarker 解析的问题,但是所有的依赖都是正常情况下处理的,没有头绪。
山行AI
2020/02/11
1.2K0
阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力!
公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。
程序员小强
2020/03/23
1.4K0
阿里问题定位神器 Arthas 的骚操作,定位线上BUG,超给力!
feign.FeignException$MethodNotAllowed: status 405 reading xxx#yyy(Integer)
使用feign 调用异常 feign.FeignException$MethodNotAllowed: status 405 reading ConsumerService#findById(Integer)
时间静止不是简史
2020/07/27
2.3K0
feign.FeignException$MethodNotAllowed: status 405 reading xxx#yyy(Integer)
聊聊springcloud的serviceRegistryEndpoint
本文主要研究一下springcloud的serviceRegistryEndpoint
code4it
2018/09/17
1.4K0
SpringBoot整合SpringMVC、持久层技术MyBatis
1、通过使用SpringBoot、SpringMVC、MyBatis整合,实现一个对数据库中的数据表的增加、修改、删除、查询操作。
别先生
2020/05/18
9940
SpringBoot整合SpringMVC、持久层技术MyBatis
zuul报错java.net.UnknownHostException: 4d59d509898a: Name or service not known
是这样的,eureka、zuul和普通的微服务在本地是OK的,部署到docker后,通过zuul访问某个微服务就报错了。用的是serviceId的方式,在eureka界面也能看到各个微服务都是在线的,没有问题,但就是通过zuul的路由访问时会报错。
天涯泪小武
2019/01/17
2.6K0
BadSqlGrammarException:PageHelper use near 'LIMIT 50'
作为一名Java开发人员,你可能在某个深夜,面对着那令人头秃的错误日志,不禁发问:“为什么我的SQL语句总是出错?”今天,就让我们一起深入探讨这个在Java开发项目中常见的问题——org.springframework.jdbc.BadSqlGrammarException,特别是在处理Excel导入时,如何避免这个让人头疼的错误。
疯狂的KK
2025/01/16
2360
BadSqlGrammarException:PageHelper use near 'LIMIT 50'
推荐阅读
相关推荐
JAVA安全之Thymeleaf模板注入防护绕过
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档