计算机的基础知识

一、CPU详解

1.1、CPU是什么

CPU,(Central Processing Unit)也叫做中央处理器,是一台计算机的运算核心(Core)和控制核心( Control Unit)。是计算机内的电子电路,通过执行由指令指定的基本算术、逻辑、控制和输入/输出(I/O)操作来执行计算机程序的指令。计算机工业至少从20世纪60年代初就使用了术语“中央处理单元”。主存储器和I/O电路。

CPU包括运算逻辑部件、寄存器部件和控制部件等,英文Logic components;运算逻辑部件,可以执行定点或浮点算术运算操作、移位操作以及逻辑操作,也可执行地址运算和转换。

1.2、CPU的制作

简易流程: 一堆沙子+一堆铜+一堆胶水+特定金属添加+特殊工艺

详细流程: 沙子脱氧->石英-→二氧化硅-→>提纯->硅锭->切割->晶圆->涂抹光刻胶-→>光刻→>蚀刻->清除光刻胶->电镀->抛光->铜层->测试-切片->封装

CPU的制作; CPU是如何制造的?动画演示:一堆沙子到一颗CPU的加工过程,涨姿势了!,科技,数码,好看视频

CPU的核心: 谈科技丨CPU核心到底是什么?,科学,科普,好看视频

1.3、晶体管, 晶圆, 芯片

1.3.1、什么是晶体管

晶体管(transistor)是一种固体半导体器件(包括二极管、三极管、场效应管、晶闸管等,有时特指双极型器件),具有检波、整流、放大、开关、稳压、信号调制等多种功能。晶体管作为一种可变电流开关,能够基于输入电压控制输出电流。与普通机械开关(如Relay、switch)不同,晶体管利用电信号来控制自身的开合,所以开关速度可以非常快,实验室中的切换速度可达100GHz以上。

1.3.2、二极管的制成

二极管是由半导体材料(硅、硒、锗等)制成的。

二极管的主要原理就是利用PN结的单向导电性,在PN结上加上引线和封装就成了一个二极管。

硅->加入特殊元素->P半导体N半导体->PN结-→>二极管->场效应晶体管->逻辑开关

1.3.3、相关概念和内容

与门或门非门或非门(异或)->基础逻辑电路

加法器累加器锁存器…

实现手动计算(通电一次,运行一次位运算)

加入内存实现自动运算(每次读取内存指令,(高电低电))

晶体管的工作流程: 超形象真人演示,五分钟讲解晶体管工作原理,一看就懂_哔哩哔哩_bilibili

1.3.4、什么是晶圆

晶圆是指制作硅半导体电路所用的硅晶片,其原始材料是硅。高纯度的多晶硅溶解后掺入硅晶体晶种,然后慢慢拉出,形成圆柱形的单晶硅。硅晶棒在经过研磨,抛光,切片后,形成硅晶圆片,也就是晶圆。国内晶圆生产线以 8英寸和 12 英寸为主。

1.3.5、什么是芯片

集成电路英语:integrated circuit,缩写作 IC;或称微电路(microcircuit)、微芯片(microchip)、晶片/芯片(chip)在电子学中是一种将电路(主要包括半导体设备,也包括被动组件等)小型化的方式,并时常制造在半导体晶圆表面上。

芯片上集成了许多二极管, 而芯片的制作是在晶圆上完成的.

芯片的制作过程: 三分钟讲解:芯片制造过程,好看视频

1.4、汇编语言

底层的硬件只能分辨高电平, 低电平就是我们传统的(1,0二进制), 但是0,1二进制形成的机器语言及其难以记忆和编写. 由此汇编语言诞生了.

1.4.1、什么是汇编语言

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。

汇编就是二进制指令的文本形式

举个例子: 加法在计算机中是通过00000011来表示的, 在汇编中就是通过ADD来表示.

通过汇编语言这种形式, 使其编写程序成为可能. 但其实汇编语言的编写也是一件非常困难和繁琐的事情, 由此就出现了后面的高级语言(c, c++, java, python等等). 但是高级语言是不可以直接被CPU所看懂的, 所以执行过程就变成了(高级语言—>(编译器/解释器)—>机器语言(就是二进制的0,1形式))

1.5、计算机的组成

在这里插入图片描述

PC: CPU中的程序计数器, 它用于存放下一条要执行的指令的内存地址。

Registers: CPU中的寄存器, 暂时存放参与运算的数据和运算结果,具有接收数据、存放数据和输出数据的功能. CPU大致有六种寄存器(①指令寄存器(IR);②程序计数器(PC);③数据地址寄存器(AR);④缓冲寄存器(DR);⑤通用寄存器(R0~R3);⑥状态字寄存器(PSW)), 汇编语言的编写者需要详细了解每个寄存器的作用.

ALU: 它代表算术逻辑单元,执行算术和逻辑运算。负责程序的计算.

cache: CPU缓存是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。高速缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,高速缓存分为(L1,L2,L3)

存储器的层次结构

在这里插入图片描述
寄存器的运行速度大概是内存的100倍.

L1, L2, L3大致图解
在这里插入图片描述
由图可知, 每一个CPU的核都有L1, L2级缓存, 多个核共享L3级缓存. 一个CPU有一个L3级缓存

程序运行大致流程, 首先PC根据存储的下一条要执行的内存地址去高速缓存中查找, 先去L1中查找, 没有就去L2, 一直找到L3, 如果在高速缓存中找到了相对应的数据, 则将其数据放到Registers中, 如果高速缓存中都没有找到就去内存中查找, 找到了之后呢, 将其数据放到Registers中, 然后ALU进行运算, Registers得出结果, 最后将结果返回给内存.

1.6、超线程的概念

在这里插入图片描述
在多线程的状态下, 每个线程都需要夺取CPU发布的时间片, 谁得到了就执行谁. 如果一个CPU是单核的, 且只有一组PC, Registers.假设PC, Registers先执行线程1, 过了一会, 时间片被线程2抢走了(线程切换), 但此时线程1还未执行完, 则会将原来(线程1)PC, Registers中存储的地址, 数据存储到一个地方(可能是高速缓存也可能是存放到内存当中), 然后PC, Registers就开始运行线程2, 后面如果线程1再次夺取了时间片则将之前线程1的地址和数据进行恢复, 继续执行. 这个行为叫恢复现场. 这种来回切换线程, 数据来回恢复的过程其实是很耗费时间和效率的. 由此就提出了超线程的概念.

超线程简单来讲就是一个核中有多组PC, Registers, 如果是多线程运行的情况下, 只需要ALU来回切换执行Registers, 而不需要来回将PC, Registers中的数据存储起来, 又进行恢复, 提高了运行效率, 和减少了不必要的操作. (简单来讲就是一个运算单元对应多组线程对应的资源单元(PC, Registers))

超线程: 一个ALU对应多个PC | Registers (所谓的四核八线程)

1.4.2、计算机中bug的起源

Bug一词的原意是“昆虫”或“虫子”;而在电脑系统或程序中隐藏着的一些未被发现的缺陷或问题,人们也叫它“bug”。

这其实是有一个故事的

Bug的创始人格蕾丝·赫柏(Grace Murray Hopper),是一位为美国海军工作的电脑专家,也是最早将人类语言融入到电脑程序的人之一。而代表电脑程序出错的“bug” 这名字,正是由赫柏所取的。

1945年9月9日,下午三点。哈珀中尉正领着她的小组构造一个称为“马克二型”的计算机。这还不是一个完全的电子计算机,它使用了大量的继电器,一种电子机械装置。第二次世界大战还没有结束。哈珀的小组日以继夜地工作。机房是一间第一次世界大战时建造的老建筑。那是一个炎热的夏天,房间没有空调,所有窗户都敞开散热。

突然,马克二型死机了。技术人员试了很多办法,最后定位到第70号继电器出错。哈珀观察这个出错的继电器,发现一只飞蛾躺在中间,已经被继电器打死。她小心地用摄子将蛾子夹出来,用透明胶布帖到“事件记录本”中,并注明“第一个发现虫子的实例。”

从此以后,人们将计算机错误戏称为虫子(bug),而把找寻错误的工作称为(debug)

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值