CPU阿甘

阿甘图层控制TC 阿甘图层控制TC,cad上lisp的开发工具。 立即下载

0?wx_fmt=png

前言

0?wx_fmt=png

上帝为你关闭了一扇门,就一定会为你打开一扇窗

这句话来形容我最合适不过了。


我是CPU, 他们都叫我阿甘, 因为我和《阿甘正传》里的阿甘一样,  有点傻里傻气的。


上帝把我制造出来, 给我了一个很小的脑容量, 为数不多的寄存器能临时的记一点东西, 但是上帝给我打开了一扇特别的窗户, 那就是像阿甘一样,跑的飞快。


到底有多快呢?  我这么比喻一下吧,  我的工作都是以纳秒为单位的, 你们人间的一秒, 我可能已经做了1000,000,000 (10亿)次动作了。


相比而言, 内存比我慢100倍, 硬盘比我慢1000多万倍, 你说我快不快?

0?wx_fmt=png

启动

0?wx_fmt=png

我住在一个机箱里,每天早上一阵电流把我叫醒, 还夹杂着嗡嗡的声音, 我知道我忠实的护卫电风扇又开始工作了, 我特别怕热, 又运行的飞快, 如果没有电风扇给我降温, 我很快就会生病, 生病的后果很严重, 那就是我的伙伴们像内存了,硬盘了。。全部都要罢工了, 没有我这个系统就会陷入的一片死寂。


我听说有些CPU的福利很好,竟然待在恒温恒湿,一尘不染的托管机房里,让我好生羡慕。


我的脑容量很小, 所以醒来后只想起了我的创造者告诉我的几件事情 :

1. 你的工作就是运行指令

2. 你不能保存指令, 你的指令全在内存里

3. 你的第一条指令在内存的最顶端处0xFFFFFFF0


那还有什么可说的, 赶紧打电话给内存要指令,电话通过系统总线, 还得通过I/O桥电话局需要转接一下, 再通过存储总线接通 内存。 


"哥们, 把这个地址处的指令给我说一下吧"


"你是谁?" 内存竟然把我忘了, 当然,他断了电和我一样,失忆了。


"我是阿甘啊, 我们经常聊天来着, 你忘了?"


内存磨磨唧唧半天才把数据发了过来(比我慢100倍啊), 这是一条跳转指令,  我立刻回忆起来了, 这是我的老朋友BIOS 等着我去运行他那一堆指令呢。


我给BIOS打电话:  “老弟,今天干点啥?”


“阿甘,早上好 "   BIOS从不失忆,把所有人都记得清清楚楚   “ 还不是老一套啊,无非做一下系统的自检, 看看内存,硬盘,显卡等这些老伙计们有没有问题, 有问题的话用小喇叭提示一下主人 ”


这些过程我已经轻车熟路了, 很快搞定, 像往常一样,没有问题, 我还把一个叫做中断向量表的东西给弄好了, 我知道一会而要用


这些东西都搞完了,BIOS果然告诉: "阿甘, int 0x19"


我赶紧去刚弄好的中断向量表中去查第19号, 顺藤摸瓜又找到对应0x19的一大堆指令。


执行吧,  这堆指令把将磁盘的第一扇区(磁盘最开始的512字节)运到内存的0X0000:0X7C00处,然后我就从此处接着执行。


我想起来了, 接下来有一大堆精巧的指令把迷迷糊糊的操作系统从硬盘中唤醒, 运输到内存中来。

(此处实在是复杂, 略去10万字。。。。)


你看这就是为啥他们叫我阿甘, 我做事飞快,但非得别人告诉去哪里执行才行, 要不然我就只会坐在那里无所适从。

0?wx_fmt=png

运行

0?wx_fmt=png

操作系统一旦进入内存,立刻就是老大, 所有人都得听他指挥。


我也发现我的周围出现了一个屋子:进程屋

屋里堆着一大堆东西, 什么进程描述信息包裹了, 进程控制信息包裹了, 我都不太关心, 我只关心最最重要的两件东西:

1.  我工作必备的寄存器, 就放在我面前的工作台上。

2.  程序计数器, 我用它记住我要执行的下一条指令地址。


"阿甘, 别来无恙啊" , 操作系统对我还是挺不错的, 先给我打招呼。


"Linux老大, 今天有什么活啊", 我每次都表现的积极主动。


"来,把这个hello world 程序给运行了"


Hello world 程序还在硬盘上睡着呢,  得先把他也装载到内存里, 要不然我怎么执行啊。


于是我就拿起电话打给硬盘, 电话通过系统总线来到IO桥电话局, 再转接到IO总线,这才来到硬盘这里。 


我在电话里请他把数据给我运过来, 然后我就无所事事的坐在那里等。


Linux 老大立刻就怒了 : 阿甘, 告诉你多少次了, 你小子怎么还在等硬盘给你发数据!


是的, 我忘了一件事,硬盘比我慢太多了, 我执行一条指令大概是1ns  ,在用来读磁盘的16ms里, 我能潜在的执行1600多万条指令啊。


我感到深深的愧疚, 赶紧拿起电话打给硬盘 : 哥们, 按我们之前商量好的,用直接内存访问(DMA)啊, 你直接把数据装载到内存吧, 不用经过我了,  装载完成以后给我发个信号。


"这还差不多"  Linux 老大心情好了些 

“阿甘,数据还没来, 别闲着, 这有一个菲波那切数列数列, 来算一下吧”


"肥波纳妾数列?  这名字好古怪,老大, 其实你也知道, 我脑子小,懒得去理解那是啥意思, 你把进程屋切换下,把程序计数器设置好,指向下一条指令, 我一条条指令执行就得了“  我挺没追求的。


"真是个阿甘啊! ”老大感慨到。


我所处的进程屋立刻发生了变化(当然,这也是我辅助Linux老大干的), 各种包裹的信息都变了,  尤其是寄存器和程序计数器。


于是我就开始计算这个什么纳妾数列 ,但是这个数列似乎无穷无尽, 哪个无脑子的程序员写了个无限循环吧。


正在这时, 我便收到了一个电话, 说是Helloworld的数据已经装载到内存了,  让我去处理。


我放下手中的活, 保存好现场, 就去处理那个Helloworld,  果然数据已经都好了, 那就切换过去运行吧。


其实老大并不知道, 任何人,只要你运行了相当多的数量的指令以后, 你都能悟到这些程序的秘密。 

我CPU阿甘虽然傻傻的, 但也架不住执行这数以万万亿的指令给我的熏陶啊。


这个秘密就是:程序都是由顺序,分支,循环来组成的。  其实分支和循环在我看来都是跳转而已。


所以我的工作就是打电话问内存要一条指令, 执行这个指令, 如果是个跳转指令的话,我就问内存要跳转的目标地址的那一条指令, 继续执行, 生活就是这么简单。


奥对了, 当然也有复杂的, 就是函数调用, 我得和内存紧密配合才能完成。  这个咱下回再说。

0?wx_fmt=png

新装备:缓存

0?wx_fmt=png

提到内存, 这真是我的好哥们, 没有他,我几乎什么事儿都干不成, 更重要的是他比硬盘快的多, 读取一次数据, 只需要 100 纳秒左右。 这样我们俩说起话来就轻松多了。


每次他都说: "阿甘, 幸亏有你给我聊天, 要不然我肯定被活活的闷死不可, 那个硬盘说话是在太慢了"


"它为啥那么慢?"  我每次都问


"硬盘是个机械是的玩意, 一个磁头在一碟高速旋转的磁片上挪来挪去,光定位就慢死了"


"那主人为什么要用硬盘?"


"人家虽然慢, 但是不怕停电, 哪像你和我,一停电全部都失去记忆了。"


确实是, 人不能把好事都占全了啊。


我的指令中有些完全用我的寄存器就能完成, 但是有很多都需要读写内存的数据, 再加上所有的指令都在内存中存着,  虽然它只比我慢个100倍, 但指令多了我还是有点受不了。


我给内存说:"哥们, 你能不能再快点!"


内存说: 拜托, 这已经是我的极限了, 阿甘, 你自己再想想办法吧 ! 我给你说啊, 我留意了你最近访问的指令和数据, 我发现了个规律“


"啥规律?"


"比如说吧, 你访问了我一个内存位置以后过不多久还会多次访问, 还有,一个内存位置被访问了, 附近的位置很快也会访问到"

(码农翻身注: 这其实叫程序的局部性原理)


我还以为是啥规律, 其实我早就注意到了。


"这有啥用啊?”


"既然你经常访问同一块区域的东西, 你想想如果把这些东西缓存在你那里会怎么样.... "


我一想有道理啊!  加个缓存试试!


从此以后,我每次读写指令和数据, 都问缓存要, 缓存没有才给内存打电话。


果然, 由于局部性原理的存在, 我发现的确是快了不少啊。


当然也有缺点, 那就是Linux老大在做程序切换的时候, 缓存就会失效,因为两个程序之间没什么联系,局部性原理不起作用,  所以需要重建缓存。


0?wx_fmt=png

自我提升:流水线

0?wx_fmt=png

缓存让我的工作更有效率, 得到了Linux老大的表扬:"阿甘, 我看你很聪明嘛, 都会用缓存了"


"我哪有那么聪明,都是内存的点子。老大,不过我学会了一个重要的东西 :当你改变不了别人的话,抱怨也没用, 还是先改变一下自己吧"


"挺有哲理的吗, 希望你明天重启后还能想起来" Linux老大笑话我。


"我最近又发现了一个问题, 正苦恼着呢, 你看我有四只手, 第一只手负责打电话问内存要指令, 第二只手翻译指令, 第三只手真正执行, 第四只手有时候还得把结果写回内存。  问题是, 我发现经常只有一只手在忙活, 其他都在闲着, 你看第一只手取指令, 其他手只能等着。  第二只手翻译指令的时候,其他三只也得等“


"看来以后我们不能叫你阿甘了, 你已经开始思考了" Linux老大笑了 


“这问题好解决, 给你举个例子,你听说过洗车没有?  和你差不多, 也是先喷水, 再打洗洁剂, 再擦洗, 最后烘干,  但人家的工作方式和你不一样,人家是流水线作业, 你想想, 一辆车在烘干的时候, 后边是不是还有三辆车,分别在喷水, 打清洁剂 和擦洗 , 每个步骤都不会空闲。 ”


"这么简单的道理我怎么都没有想到呢? 我也可以搞个流水线啊, 这样每只手都利用起来了"


别人都说我们高科技, 但其实原理都蕴含在生活之中啊。 


有了缓存和流水线的帮助, 让我的工作大大的加快了,大家都对我刮目相看。 他们想给我起个新名字:超人 , 不过我还是更喜欢 他们叫我“阿甘”, 多亲切。

0?wx_fmt=png

尾声

0?wx_fmt=png

我一丝不苟,兢兢业业的运行指令, 时不时和伙伴们聊天, 很快一天就过去了, 又到了晚上,我知道关机的时刻到了, 赶紧挨个给他们道别。 


很快那些让我兴奋的电流消失了,风扇的嗡嗡声也没有了, 我再也无法打出电话,整个世界沉寂了。


明天将会是新的一天。


备注: 本文内容主要来自于《深入理解计算机系统》, 这本书非常棒,值得每个程序员仔细研读。

0?wx_fmt=jpeg

0?wx_fmt=jpeg

公众号:码农翻身

“码农翻身”公众号由工作15年的前IBM架构师创建,分享好玩,有趣的编程知识。

CAD只显示所选图层快捷键 CAD只显示所选图层快捷键,打开CAD,输入appload,选择添加快捷键文件,即可输入 df,fd快捷键,切换只显示的所选图层 立即下载

相关推荐

新版网优图层工具V3.0.exe

新版网优图层工具V3.0.exe

Andriod中绘(画)图----Canvas的使用详解

转载请注明出处:http://blog.youkuaiyun.com/qinjuning 由于在网络上找到关于Canvas的使用都比较抽象,也许是我的逻辑思维不太好吧,总是感觉理解起来比较困难, 尤其是对save()和restore()方法的使用。本篇文章的内容就是对Canvas的使用进行一下总结,包括它的两种不同的使用 情节和它的一些方法进行一下说明。 1 Bitmap,可...

emowuyi 351

cad图层工具,快速关闭图层(更新至7个快捷键)

cad图层工具,快速关闭图层(更新至7个快捷键)

漫画 | CPU就是一个悲惨的搬运工

在一个庞大机房的角落里,存放着一台普普通通的服务器。每天一开机,里边的居民就开始忙活起来了。大家都要在操作系统老大的指挥下干活。日子一天天地过去,这一天,大家正在干活,外边突然传来了咔嗒一...

码农翻身 3811

CAD软件图层管理插件

本插件可以快速关闭,冻结,锁定图层,和其他图层也可以快速打开,解冻,解锁图层

GPU算力租用平台推荐

阿里云作为中国领先的云计算服务提供商,提供了丰富的GPU云服务器实例,包括NVIDIA Tesla V100、A100等多种高性能GPU型号。阿里云GPU云服务器适用于深度学习、科学计算、图形渲染等多种场景,能够满足不同用户的计算需求。

hong161688的博客 8173

CPU阿甘:函数调用的秘密

我是CPU阿甘, 上次我给大家承诺过,要讲一讲函数调用的秘密, 这个确实有点复杂, 想透彻的理解机器代码层面的函数调用不容易。我也是从无数的指令中悟出这个函数调用的秘密的...

码农翻身 528

DSP(数字信号处理器)技术概要

数字信号处理器(digital signal processor,DSP)是一种用于数字信号处理的可编程微处理器,它的诞生与快速发展,使各种数字信号处理算送得以实时实现,为数字信号处理的研究和应用打开了新局面,提供了低成本的实际工作环境和应用平台,推动了新的理论和应用领域的发展。目前,DSP技术在通信、航空、航天。雷达、工业控制、医疗、网络及家用电器等各个领域都得到了广泛应用。 1.1 DSP系统和芯片的结构特点1.1.1 DSP系统的基本结构通过传感数将非电物理量转换为模拟电信号,预处理一般包括放大器和滤

m0_46582485的博客 2万+

CPU 阿甘

前言 上帝为你关闭了一扇门,就一定会为你打开一扇窗 这句话来形容我最合适不过了。 我是CPU, 他们都叫我阿甘, 因为我和《阿甘正传》里的阿甘一样, 有点傻里傻气的。 上帝把我制造出来, 给我了一个很小的脑容量, 为数不多的寄存器能临时的记一点东西, 但是上帝给我打开了一扇特别的窗户, 那就是像阿甘一样,跑的飞快。 到底有多快呢? 我这么比喻一下吧, 我的...

MARS_098的博客 239

基于STM32的3D打印机控制

通过本项目,我们成功搭建了一个基础的3D打印机控制系统,能够控制步进电机和加热元件。这为使用STM32开发功能丰富的3D打印机提供了基础,您可以在此基础上继续扩展功能,如增加LCD显示、SD卡存储、联网控制等功能。在这个项目中,我们将使用STM32微控制器开发一个基础的3D打印机控制系统。通过控制步进电机、加热元件和温度传感器,我们将实现一个简单的FDM(熔融沉积制造)3D打印机控制。- 检查PWM信号的生成功能,确认加热元件的控制逻辑是否正常。- 增加适当的滤波和校准算法,以提高温度读取的准确性。

2401_88938661的博客 1503

长期换衣行人重识别(Long-Term Clothes-Changing Person Reid)数据集汇总

长期换衣行人重识别任务中目前常用的数据集总览目前换衣数据集的主要问题数据集换衣/总体情况集统计DeepChange(2021)LaST(2021)COCAS(2020)VC-Clothes(2020)LTCC(2020)PRCC(2019)Celebrities-reID(2019) 总览 在长期换衣行人重识别的任务当中,数据集的获取(尤其是对于学术环境下)是一个难点,主要的困难有以下几点: 采集大规模的数据集比较困难。 采集不同的衣服的数据集比较困难。 采集不同衣服不同角度的数据集比较困难。 目前也有

KingsMan666的博客 8380

【转载】CPU阿甘

原文:CPU阿甘    前言 上帝为你关闭了一扇门,就一定会为你打开一扇窗这句话来形容我最合适不过了。我是CPU, 他们都叫我阿甘, 因为我和《阿甘正传》里的阿甘一样,  有点傻里傻气的。上帝把我制造出来, 给我了一个很小的脑容量, 为数不多的寄存器能临时的记一点东西, 但是上帝给我打开了一扇特别的窗户, 那就是像阿甘一样,跑的飞快。到底有多快呢?  我这么比喻一下吧,  我的工作都是以...

weixin_34413357的博客 117

Calibre PEX提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文深入解析Calibre PEX工具中hcell与xcell文件的协同工作机制,提供模块级寄生参数提取方案。通过实战案例和避坑指南,帮助工程师精准屏蔽已验证IP模块,提升仿真效率和数据一致性,适用于65nm以下工艺节点的复杂SoC设计。

weixin_29275257的博客 627

CPU 阿甘之烦恼

1、批处理系统 CPU阿甘最近很烦。 原因很简单,内存和硬盘看他不顺眼。 (码农翻身注: 不认识阿甘的参见文章《CPU阿甘》) 阿甘心里很清楚, 是自己干活太快了,干完了活就歇着喝茶,这时候内存和硬盘还在辛辛苦苦的忙活,他们肯定觉得很不爽了。  中国有句古话叫什么来着? “木秀于林,风必摧之”,“不患贫而患不均”,这就是阿甘的处境。  虽然阿甘自己...

MARS_098的博客 219

海康/大华设备如何接入GB28181平台?最新2022版互联避坑指南

本文详细解析了海康/大华设备接入GB28181平台的最新2022版互联避坑指南,涵盖参数配置、实时视音频点播协议交互及典型故障排查。重点介绍了GB/T28181-2022标准下的设备编码规范、SIP服务器配置及媒体流保活机制,帮助工程团队高效解决设备离线和媒体流中断等问题。

weixin_30733003的博客 687

TGRS 2026 即插即用 | 注意力篇 | SCFM:双向交叉显著性引导注意力,高层语义与低层细节的双向互补!

本文介绍了MPCNet中的语义引导交叉注意力融合模块(SCFM),该模块通过双向交叉显著性引导机制实现跨尺度特征融合。SCFM创新性地结合了高层语义和低层细节的互补信息,通过轻量局部空间注意力预增强和坐标注意力全局融合引导,显著提升了红外小目标检测的精度。实验表明,SCFM在多个数据集上达到SOTA性能,同时保持轻量高效的计算特性,支持端侧设备部署。 SCFM的核心贡献包括: 双向交叉显著性引导机制,实现语义与细节的互补融合 轻量局部空间注意力预增强模块,计算量仅为传统方法的1/10 坐标注意力全局融合引导

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 147

cpu阿甘

前言 上帝为你关闭了一扇门,就一定会为你打开一扇窗这句话来形容我最合适不过了。 我是CPU, 他们都叫我阿甘, 因为我和《阿甘正传》里的阿甘一样,  有点傻里傻气的。 上帝把我制造出来, 给我了一个很小的脑容量, 为数不多的寄存器能临时的记一点东西, 但是上帝给我打开了一扇特别的窗户, 那就是像阿甘一样,跑的飞快。 到底有多快呢?  我这么比喻一下吧,  我的工作都是以纳秒为单位的, 你们

只有变秃 才能变强 838

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 155
上一篇: 我的编程之路--大学趣事
下一篇: 让自己与众不同 - 提升工作的价值
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值