前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >寄存器,内存,硬盘,各就各位,预备,跑。。。

寄存器,内存,硬盘,各就各位,预备,跑。。。

作者头像
zhanyd
发布2022-05-16 12:56:41
4620
发布2022-05-16 12:56:41
举报
文章被收录于专栏:编程我也会

计算机运行一段程序须要经历哪些历程呢?

主人最近在学C语言,他按照书上的教程写了个最简单的程序:

主人编译完成后,在键盘上敲入执行程序的命令"./hello":

cup不敢怠慢,将主人的命令一字不落的从键盘交到寄存器手中,吩咐道:“快交给内存处理,不要让主人久等了”,寄存器速度飞快外号“火箭”,来无踪去无影,一瞬间就出现在内存面前,把主人从键盘上敲入的数据交给内存,说:“这是主人给的数据,尽快处理”,话音刚落,寄存器已经不见踪影,内存虽然容量很大能存很多东西,但是速度相比寄存器就慢很多了,内存的外号叫“大卡车”。

内存一看数据是执行程序的命令,在仓库里找了下,发现这个程序没运行过,仓库里没有,在硬盘家放着呢。内存暗暗叫苦,硬盘是个超级大仓库,能放海量的东西,主人什么东西都往里面塞,据说硬盘现在容量有1T之巨,比自己要大100多倍,但是要在里面找一个东西非常慢,慢得让你怀疑人生,大家都叫他“乌龟”,内存几分钟就办完的事情,交给硬盘干,要好几天,是的,好几天。。。

内存开车到了硬盘家门口,敲开门,说:“赶紧把hello程序的代码和数据找出来,主人要运行了”。硬盘慢悠悠的说:“好的我知道了,你得等几天了,这里太乱了,太大了,我要找好久。”内存知道硬盘这货就这效率,叹了口气:“知道了,我在家里慢慢等。”

三天后,硬盘终于把一个箱子拖了出来,运到了内存家,内存一分钟也不敢浪费,把箱子装上车,一脚油门,直奔寄存器的家去了。寄存器家就在cpu老大家的边上,他们是亲戚,据说寄存器的房子也是cpu家的。寄存器在门口望眼欲穿,终于看到内存带着数据箱,直奔大门而来,寄存器接过内存的箱子,立马交给了隔壁cpu,cpu拿着箱子进了工作室,房间里的机器疯狂的运转了起来,内存还没回过神来,寄存器已经拿着运行结果数据,往显示器家去了,不一会儿,显示器家的大屏上了显示出了“Hello,World!”的结果。

运行程序显示结果:

主人看到运行结果,开心的笑了。

cpu松了一口气,拉着寄存器说:“这样不行,内存和硬盘那两个家伙太慢了,特别是硬盘,时间全耗在他那里了,我们得自己搞几个仓库在家附近,重要的东西我们自己复制一份在仓库里,不用每次都去他们那里取了。”

后来cpu在家附件建了三个仓库:分别叫L1,L2,L3。L1仓库离家最近就100米,但是面积也最小只有32平米;L2仓库离家300米,面积大了点有256平米;L3仓库离家1.2公里,面积也是最大的,有8192平米。

寄存器不解的问:“为什么不把L1仓库建的大一点啊,我们拿东西多方便啊”,cpu说:“我们家在市中心,你知道这里的房价多贵吗?建大了主人根本负担不起,主人才刚毕业呢,哪里有钱建这么大的仓库?大的仓库只能往郊区建,我们家旁边只能建两个小的,有的cpu家还只有L1,L2两个仓库呢,你就知足吧。”

“下次我们取数据的时候,先去离家最近的L1仓库看看有没有,如果没有的话再去L2仓库看,如果也没有就去L3仓库查一下,都没有找到的话,再去内存家取,取到数据后,我们就在我们自己家的仓库里备份一份,下次用到就直接拿来用,就不用去找内存和硬盘要了,这样我们的速度就快很多了。”cpu得意的说。

越往金字塔上面的设备速度越快,容量越小;越往金字塔下面的设备速度越慢,容量越大:

cup芯片的结构如下图,主要有寄存器,程序计数器(PC),算术/逻辑单元(ALU)和高速缓存存储器组成

以下是寄存器,高速缓存,主存,硬盘的速度和容量的大小:

  • 寄存器,速度0.3纳秒,大小约1K
  • L1一级高速缓存,速度0.9纳秒,大小约32K
  • L2二级高速缓存,速度2.8纳秒,大小约256K
  • L3三级高速缓存,速度12.9纳秒,大小约8M
  • 主存(内存),速度120纳秒,大小约8G
  • 硬盘,速度10 000 000纳秒,大小约1T

1s(秒)= 1000 ms(毫秒)

= 1000 000 μs(微秒)

= 1000 000 000 ns(纳秒)

如果把上图的0.3纳秒同步放大到1秒,cpu去寄存器取一个数据只需要1秒,但是到机械硬盘取要大约1年的时间。。。。。I/O是常见的速度瓶颈,我们写程序的时候尽量在内存,高速缓存上取数据,内存可比硬盘快100倍呢。

硬盘笑而不语,心想:“你们速度快有什么了不起的,一断电所有的数据都会被清空,每次还不是都得重新从我这拿数据。”

第二天主人一开机,cpu:“我是谁?我在哪里?你们是谁?”,寄存器,内存,一脸懵逼:“我们什么都不记得了,我们是谁?”硬盘在一边乐了:“这帮逗比又开始了。。。”

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

本文分享自 编程我也会 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档