前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >软硬件融合技术内幕 基础篇 (6) —— 快马加鞭未下鞍

软硬件融合技术内幕 基础篇 (6) —— 快马加鞭未下鞍

作者头像
用户8289326
发布2022-09-08 17:18:01
5940
发布2022-09-08 17:18:01
举报
文章被收录于专栏:帅云霓的技术小屋

山,

快马加鞭未下鞍,

惊回首,

离天三尺三。

这是毛主席《十六字令三首》中的第一首,描述了骏马在崇山峻岭飞奔的场景。从今天开始,我们为大家介绍的就是计算机系统中的重要概念——存储器山,以及给大家讲述,计算机是如何在存储器山中飞奔的。

在前几期,我们提到,CPU在70年代演进到90年代的过程中,其数据位宽从8bit演进到了32bit甚至64bit,同时,可访问的内存与IO地址空间也从16bit(64KB)演进到了32bit(4GB),如下表:

CPU代数

数据位宽 (bit)

地址位数 (bit)

地址空间

8051

8

16

64KB

8086

8

20

1MB

80286

16

24

16MB

80386

32

32

4GB

80486

32

32

4GB

Pentium

64

32

4GB

在1995年以后,Pentium处理器又演进出了Pentium Pro, Pentium MMX, Pentium II/Celeron, Pentium III, Pentium 4等一系列更新换代的产品:

最早的奔腾,俗称“老奔”

奔腾MMX166黑金刚,初代超频大王,166MHz可以超到250MHz

Pentium Pro,很少见了,因为架构缺陷,跑16bit程序比486还慢,基本卖不出去

1997年9月份的电脑报上一篇文章:Pentium-II一举定乾坤,性能很棒,就是超级贵

精简了一部分Cache的Pentium-II,300MHz的能超到450甚至500MHz,性能飞起

Pentium3代正品,安装要小心,别把中间的die压碎了

Pentium 4处理器,由于架构缺陷 (流水线太长了),同等频率下还不如Pentium III快,被嘲笑

同时期的AMD也和Intel展开了比学赶帮超的竞赛:

K5-PR166,虽然主频实际上只有116MHz,但AMD认为它的性能比肩Pentium-166,因此标称为PR-166. (这样真的好吗)

AMD K6,这个家伙终于能跟Pentium MMX正面对抗了,可惜Pentium-II也出生了

K6-II和K6-III,对标Pentium-II和Pentium-III早期版本

Athlon,用铅笔超频的故事从这开始

duron,又一款超频王

当然还有Cyrix公司 (倒闭以后被威盛收购,卖给中国电子以后成了兆芯)

虽然不稳定,但超便宜呀!

我们发现,随着处理器的性能提升和内存的不断降价,出现了两个矛盾:

第一个矛盾是,内存的速度赶不上CPU的速度。

我们知道,SRAM内存的工作频率是和CPU相等的。但DRAM并非如此,其工作频率实际上和CPU是异步的。

以Pentium II时代流行的SDRAM (Synchrouous Dynamic Random Access Memory)为例。SDRAM的工作频率与CPU FSB相同,有66MHz,100MHz,133MHz等规格,与CPU规格的对照如下表:

CPU

FSB频率 (外频,MHz)

CPU频率 (主频,MHz)

倍频数

Celeron 300A

66

300

5

Celeron 333

66

333

5.5

Pentium-II 350

100

350

3.5

Pentium-II 450

100

450

4.5

Pentium-III Coppermine 866

133

866

6.5

随着CPU技术的升级换代,CPU的倍频数(主频与FSB频率的比例)不断提升,也就是CPU运算频率与DRAM的存取频率的差距不断增加。雪上加霜的是,DRAM并不是在一个时钟周期内就可以读取或写入数据的!

在上期,我们提到,DRAM的读写,需要DRAM控制器 (北桥) 做以下几个动作:

  1. 通过总线接口发送行地址;
  2. 通过总线接口发送列地址;
  3. 通过读写引脚发送读写命令;
  4. 完成读写操作;

在这个工作过程中,DRAM芯片并不能立即响应CPU的地址发送和数据读写,而是需要一定的间隔时间,如CL参数就代表了从1到2之间的周期。此外,由于DRAM芯片结构简单,每个bit只有一个晶体管和一个电容:

如图,电容中有电荷代表1,无电荷代表0。

而对这个bit的读取,会消耗掉电容的电荷,需要重新对电容充电,充电的时间也影响了DRAM的读写速度。

因此,DRAM的读写速率,一般比CPU的指令执行速率低2个数量级。以Intel 8360H处理器为例,其基准频率为3.00GHz,每条指令的周期为0.33ns。8360H采用3200MHz的DDR4 DRAM,其数据传输频率为3200MHz,工作频率1600MHz,周期为0.625ns。(DDR时钟上下沿都可以传输数据)。如时序为20-20-20,CAS为12.5ns,理论上从内存中读取一个word(64bit,8 Byte)最快也需要等待50ns,相当于150条指令的执行周期!

那么,有没有变通的方法呢?

计算机科学家们想到,SRAM虽然成本高,但工作速率大大高于DRAM,那么,在CPU中集成少部分的SRAM,把最常用的内容放在SRAM中,是不是可以加速计算机内存子系统的访问呢?

因此,从386处理器开始,CPU内部就引入了这一机制,叫Cache。在486中,又对Cache做了分级,分为L1 Cache和L2 Cache。到了Pentium-III以后,Cache分为L1 Cache,L2 Cache和L3 Cache三级,其中L1 Cache的工作速率与CPU完全同步,L2 Cache在速率与容量之间折中,而L3 Cache的工作频率与FSB同步,容量更大。

这样,CPU寄存器,缓存,RAM及外部存储,就构成了一个金字塔型:

这个图中,越接近金字塔顶端的层级,其速度越快,但单位容量成本也越高,容量越小,反之,越接近金字塔的底层,其速度越慢,成本也越低。

那么,这就是所谓的存储器山吗?

并不是。

本期结束之前,为大家再次讲述一个故事:

方老师的朋友X姐,晋升P9以后,有人带她去白马女子私密会所庆祝,X姐点了一位6666号小哥哥,非常满意。此后,每次X姐再光顾这家私密会所,都优先点这位6666号小哥哥。

与此同时,X姐每次从私密会所出来,总是要去隔壁的点都德喝早茶。

在计算机科学中,第一种行为就叫时间局部性:刚刚被访问过的数据,再被访问到的可能性显著高于其他数据。

而第二种行为叫空间局部性:刚刚被访问过的数据,邻接的数据再被访问的可能性,也显著高于其他数据。

时间局部性和空间局部性是计算机缓存工作的基本原理,方老师在这里编这个故事是为了让大家记住。

大家下期见。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅云霓的技术小屋 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档