time: 2018.12.29
计算机组成结构,同计算机操作系统一起,作为计算机应用编程的2大基石。
一名卓越的软件工程师,对于这2者不说精通原理,但是要做到其基本结构与实现功能要了然于胸。
虽然说大学学了这些课程,但是不知道它学来干嘛,都是混过去的,现在工作中学习、拓展视野需要它们,现在重新捡起来吧。
- 知晓原理:知道常规开发的软件,是如何运行起来的
- 技术扩展:不再受限于前端开发 + 服务端开发,也要拓展学习
服务器开发
、网络开发
、人功智能
、计算机硬件
等技术,在前端发展到尽头,难不成不吃饭了?
学习计划安排:
回到成都,待租房稳定下来,开始组装台式机,将台式机各组件同书上计算机组成做对比,看各部分的集成情况;
计算机操作系统在计算机组成原理搞定之后,立马开始学习
- cpu
- 内存
- io 总线、总线接口:地址总线、数据总线、控制总线,连接各设备的线作用不同
- 其他输入输出设备:显示器、鼠标、键盘、usb、磁盘等
存储:电荷、磁极
输入:电流信号
输出:电流信号
内存用于存储数据,是通过 cpu 来操作,通过总线传递信息。存放在内存中的数据就是 0 和 1。
内存的实现方式
- 磁盘:通过磁极的不同来表示01;通电增强磁性,改变数据;磁头扫描,通电返回感应电流表示状态
- 纸袋打孔:有孔1,无孔0
- 电容电压改变(电荷差):高电位1,低电位0,写入数据就是注入电荷的过程,读数据就是放电荷的过程,为了保存数据,读完之后数据需要恢复也就需要再次充电。实际物理存储就是
晶体管
+电容器
- 脉冲信号:脉冲波,波峰1,波谷0
问题:知道了这些存储方式,那么如何去读取呢?
- 内存模块是如何提供读取接口的?通电感知电荷、电压
- 总线是如何传递数据的?
- 控制器是如何处理这段指令的?电流
汇编每一条语句就对应一条二进制指令
- pc 寄存器:程序计数器,存储的是PC中存放下一次访存的cpu执行指令地址
- 通用寄存器
- 算术逻辑单元:运算器、控制器集合
- 对外总线接口
每个类型的 cpu,都有其固定的执行规则,即存储数据之后应该返回数据的第一条指令地址等规则。
什么是寄存器?
答:每个寄存器由多个锁存器构成,每个锁存器保存一个 bit 信号。锁存器:逻辑电路 + 电容 + 晶体管。
控制器是什么?是逻辑电路,通过输入不同的电流信号,由自身的电路连接、电阻值来改变电流流转及信号
执行流程
- 将二进制代码的第一条指令的地址放入 pc 寄存器
- 根据 pc 寄存器中的指令地址,通过地址总线,前往内存读取真实指令
- 内存器收到地址,根据地址查看真实二进制指令,并返回二进制指令,并放入数据总线接口
- 控制器根据收到的指令数据,分析并执行具体指令