当前位置:网站首页>对于程序员,那些既陌生又熟悉的计算机硬件
对于程序员,那些既陌生又熟悉的计算机硬件
2020-11-09 23:53:00 【架构师修行之路】
程序员一步入中年,不知不觉便会被铺天盖地的“危机感”上身,曾经的那个少年已经不在,时间就是这样公平。就算你能发明c语言,随着时间的推移,你注定还是要成为慢慢变蔫的茄子,缓缓变黑的葡萄。
看着乐视退市的消息,周末我赶紧拉着儿子的小手,复习起了大学那曾经考试”满分“的计算机基础,你别说,只读了一小部分我就发现一个事实,记忆力果然指数级下降,儿子一遍就可以熟记,我却衰退的就像没上过大学。
原来程序员写的程序实际上就是一个由0和1组成的位序列,或者说是比特序列,8个比特(bit)被分为一组,称为字节。系统中所有的信息,包括网络传送的数据,内存中的数据以及磁盘文件,程序等,都是由一串比特(bit)表示的。如果你要问为什么非要8个字节呢?难道不会百度吗?我又不是计算机发明者^_^。可能有一点非常重要,你可以拿去和面试官吹水:一个同样的字节可能代表一个整数,浮点数,甚至字符串,区分他们的唯一方法是这些数据的上下文信息。
顺便提一下,在计算机中数字的表示方式其实是对实际值的有限近似值,只不过一些高级语言对这些值处理的很好而已,不得不吐槽,JavaScript在处理这个问题上做的不是太好,不信你可以浏览器的F12 运行一下
0.1+0.2
0.30000000000000004
0.01 + 0.05
0.060000000000000005
言归正传,作为一个有着”代码改变世界“梦想的程序员,对自己手艺要精益求精,就必须了解你的真爱的物力构成。无论多diao的软件都运行在硬件基础之上,虽然近几年硬件的发展速度比你衰老的速度还要快,但是核心内容几乎没变,这才是你真爱的裸妆。
CPU
先撸一下这个不成熟的百度百科
中央处理器(CPU,central processing unit)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元
说的直白一点,这个家伙几乎是软件运行的核心,是解释和执行指令的引擎。目前主流的cpu的核心是一个32位或者64位(未来还可能更大)长度的存储设备或者寄存器,被称为程序计数器(PC,一个蛋疼的简称)。在任何时刻,程序计数器都指向内存中某条指令的地址。
CPU表面上是按照一个特定的模型去执行指令,这个模型由指令集的架构来决定的(每个架构类型都不一样,所以才会有AMD,Intel)。自系统通电开始,直到系统断电,CPU一直都在不断的执行指令。如果没有实际的软件执行指令呢?拿windows来说,软件层虚拟出来了一个“System Idle Process”进程,被称为系统空闲进程,这个进程会告诉cpu挂起(停止工作),所以这个进程的cpu使用率和其他进程是相反的意思,它的使用率越高说明CPU的压力越小。
CPU从程序计数器指向的内存地址读取指令内容,并解释该指令执行指令的操作,然后更新程序计数器,使他指向下一条指令,而这条指令很有可能和上条指令并非相邻。简单来说,cpu可能会频繁的执行以下操作
- 数据加载:从主存复制一段数据到寄存器,以覆盖寄存器中原来的内容。
- 数据存储:把寄存器中的一段数据复制到主存的一个位置,以覆盖主存原来位置上的内容。
- 指令操作:把两个寄存器的内容复制到逻辑计算单元,逻辑计算单元会对这两段数据做指令运算,并将结果存储在一个寄存器中。
- 指令跳转:从指令本身抽取一段内容并复制到程序计数器中,以覆盖程序计数器中原来的值。
主存
老规矩,没有百度不到的知识,一个没有百度百科的名词,说明不是很有名
主存储器(Main memory),简称主存。是计算机硬件的一个重要部件,其作用是存放指令和数据,并能由中央处理器(CPU)直接随机存取。现代计算机是为了提高性能,又能兼顾合理的造价,往往采用多级存储体系。即由存储容量小,存取速度高的高速缓冲存储器,存储容量和存取速度适中的主存储器是必不可少的。主存储器是按地址存放信息的,存取速度一般与地址无关。
主存是一个临时的存储设备,在程序被执行过程中用来临时存放程序内容和处理结果。从物理来讲,主存是由一组动态随机存取存储器芯片组成(你可以想象成一大排二极管),从逻辑上来讲,主存是一个线性的字节数组,每个字节都有一个唯一的地址,这些地址是从0开始的,现在主流的主存在个人计算机上已经是16G的大小,让我这个还在用4G主存的老人无言以对呀。
输入输出设备
当年计算机第一堂课,那个地中海的老师就讲过这个概念,虽然具体内容现在已经和我的秀发一并褪去,但是每天的工作中还是能偶尔看到IO这个词。
IO(输入输出)是系统与外部世界的连接通道,像我们每天撸王者农药的鼠标键盘,释放压力看小电影的高清显示器,存储苍老师的磁盘等等,这些都隶属于输入输出设备。
每个IO设备都有一个控制器或者适配器,它是和系统交互的途径,一般都和IO总线连接。说直白一点,每个IO设备都有它的驱动程序,要不然系统不可能无缘无故就能使用键盘鼠标这些设备的,即使现在的外设都是免驱的。
系统总线
总线是连接整个系统的桥梁,物理上是一组电子管道。他负责携带信息字节并在各个组件之间进行传递,就像我们软件系统设计SOA中的总线。总线根据系统定义的位数来传输定长的数据,每个系统都不一样,不过现在主流的长度要么是四个字节(32位),要么是8个字节(64位)。从这里就可以联想到,64位的系统在数据传输速度上要比32位的系统快一倍,也许将来很快会迈入128,256时代呢
如果非要加一张图的话,此图最有代表性 
更多精彩文章

版权声明
本文为[架构师修行之路]所创,转载请带上原文链接,感谢
https://my.oschina.net/caicaijun/blog/4710340
边栏推荐
- Operation and design of rights management in ERP
- 害怕重构?都怪我太晚和你介绍该如何重构,现在我来了
- js label语法跳出多重循环
- Common concepts and points for attention of CUDA
- Validation failed for one or more entities. See 'entityvalidationerrors' solution
- Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
- 快来学习!个性化推荐系统开发指南(附网盘链接)
- 价值超10亿美元的直播系统架构图是什么样子的?
- CUDA_全局内存及访问优化
- 2018中国云厂商TOP5:阿里云、腾讯云、AWS、电信、联通 ...
猜你喜欢

Error running app: default activity not found solution

利用尾巴作为时间序列进行处理来识别鲸鱼

Raspberry pie drum set WiFi

ERP的权限管理的操作与设计--开源软件诞生24

Can't find other people's problem to solve

推动中国制造升级,汽车装配车间生产流水线3D可视化

SQL filter query duplicate columns

爱康国宾怒斥国信证券报告失实,已发律师函

Python prompt attributeerror or depreciation warning: This module was degraded solution

那么当下的行情投资者该怎么办呢? 现在新的投资风口来了!
随机推荐
November 09, 2020: talk about the similarities and differences between the bulon filter and the cuckoo filter?
IP地址SSL证书
LinkedList源码简析
ES6、ES7、ES8学习指南
手把手教你使用容器服务 TKE 集群审计排查问题
SQL intercepts the data before and after the '.'
剑指offer之打印超过数组一半的数字
Top 5 Chinese cloud manufacturers in 2018: Alibaba cloud, Tencent cloud, AWS, telecom, Unicom
CUDA_全局内存及访问优化
恒讯科技浅谈:出现服务器宕机的处理方式
那么当下的行情投资者该怎么办呢? 现在新的投资风口来了!
mongodb内核源码实现、性能调优、最佳运维实践系列-command命令处理模块源码实现一
将Map中对应的key和value赋值到对象中
asp.net Using serilog in core and customizing enrich
将Map中对应的key和value赋值到对象中
Hand in hand to teach you to use container service tke cluster audit troubleshooting
Mongodb kernel source code implementation, performance tuning, best operation and maintenance practice series command processing module source code implementation 1
没有磁盘空间 No space left on device
JS label syntax jumps out of multiple loops
价值超10亿美元的直播系统架构图是什么样子的?