热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【小白集合】详解服务器内存和显存基础知识

戳蓝字“CSDN云计算”关注我们哦!作者|Hardy责编|阿秃早期内存通过存储器总线和北桥相连,北桥通过前端总线与CPU通信。从IntelNehalem

戳蓝字“CSDN云计算”关注我们哦!

640?wx_fmt=jpeg

作者 | Hardy
责编 | 阿秃

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

640?wx_fmt=png

所以,在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次,若需要同时写入与读取,必须等到先前的指令执行完毕,才能接着存取。

640?wx_fmt=png

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)。

640?wx_fmt=png

内存有三种不同的频率指标,它们分别是核心频率、时钟频率和有效数据传输频率。
  • 核心频率即为内存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显存更强大,带宽大幅提升。

640?wx_fmt=jpeg

就这二者来说,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容量显存,这将进一步推动大容量显卡的出现。

640?wx_fmt=jpeg

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。

640?wx_fmt=png

640?wx_fmt=jpeg

福利
扫描添加小编微信,备注“姓名+公司职位”,入驻【CSDN博客】,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!

640?wx_fmt=jpeg

推荐阅读:
  • 【忽悠面试官就靠它了】『Spring事务管理器』源码阅读梳理
  • 【这些都不知道你就是个弟弟】Docker常用命令
  • Pandas中第二好用的函数 | 优雅的Apply

  • 程序员因接外包坐牢 456 天!两万字揭露心酸经历
  • 限时早鸟票 | 2019 中国大数据技术大会(BDTC)超豪华盛宴抢先看

  • 阿里开源物联网操作系统 AliOS Things 3.0 发布,集成平头哥 AI 芯片架构!

  • 雷声大雨点小:Bakkt「见光死」了吗?

真香,朕在看了!


推荐阅读
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了多因子选股模型在实际中的构建步骤,包括风险源分析、因子筛选和体系构建,并进行了模拟实证回测。在风险源分析中,从宏观、行业、公司和特殊因素四个角度分析了影响资产价格的因素。具体包括宏观经济运行和宏经济政策对证券市场的影响,以及行业类型、行业生命周期和行业政策对股票价格的影响。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • GTX1070Ti显卡怎么样?GTX1070Ti显卡首发图赏+参数解读与拆解图
    先来简单回顾一下今年的显卡市场,nvidia自从发布了帕斯卡架构新品之后,可以说是一直都主宰着高端游戏显卡市场,虽说amd也憋了一个hbm2的vega64出来,然而即使是最高贵的水 ... [详细]
  • Java如何导入和导出Excel文件的方法和步骤详解
    本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
juliohong
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有