计算机理论基础(1)| 青训营笔记

简介: 计算机理论基础(1)| 青训营笔记

计算机硬件


1.2 计算机基本原理


1.2.1 世界上第一台计算机


1.2.2 冯·诺依曼提出“存储控制程序”


1.2.3 计算机发展阶段(部分)


第一代电子管计算机时代,使用机器语言或者汇编语言

第二代晶体管计算机时代,出现高级程序设计语言


1.2.4 计算机系统


计算机系统由硬件系统和软件系统组成

硬件由五大部件组成:运算器 控制器 存储器 输入设备 输出设备


1.2.5 CPU


CPU即中央处理器,由运算器(ALU) 控制器(CU) 寄存器组(GPR) 组成,CPU是计算机必不可少的核心组成部件

预算期用来对数据进行各种逻辑算术或者逻辑运算,所以被称作算术逻辑部件(ALU)

运算器(ALU) 对数据进行算术运算、逻辑运算等

控制器(CU) 控制单元,取出指令并保存,解释指令的功能,由此产生控制各部件工作的信号,执行指令

使用双核(或多核)处理器的PC机中,是几个CPU?

集成在一块芯片上,物理上只有一个,逻辑上有两个(或多个),多CPU是指物理上就有多个CPU的存在

CPU主要任务执行指令


1.2.6 存储器


存储器是用于存储以二进制形式的数据和数据,分为内存器(主存)和外存储器(辅存)

内外存储器的区别

存取速度 内存要快,外存相对要慢
存储容量 内存要小,内存要大
易失性 内存断电后小时,外存断电后保持
用途 内存存放启动运行的程序和需要立即处理的数据,外村存放计算机系统中所有信息
与CPU相关 CPU从内存直接获得指令和数据进行处理,外存的程序和数据需要载入内存之后才能被CPU使用


1.2.7 输入设备


常见的输入设备:键盘,鼠标扫描仪,麦克风等


1.2.8 输出设备


常见的输出设备:显示器,打印机,绘图仪,扬声器等


1.2.9 总线


总线用于连接CPU、内存、外存和各种I/O谁被并在它们之间传输信息的一组共享的数据线及其控制电路

CPU总线(前端总线) 用于连接CPU和主存之间的总线

I/O总线 用于连接主存和I/O设备(包括外设)总线(目前使用的PCI和PCI-E)

按总线功能或者信号类型来分:地址总线(传输地址信号)、数据总线(传输数据信号)、控制总线(传输控制信号)

数据总线用来传送数据信息 地址总线是专门用来传送地址的 控制总线用来传送控制信号和时序信号

地址总线的位数决定了CPU可直接寻址的内存空间的大小,地址总线位数与存储单元个数有关

若地址总线为n位,则可以寻址空间为2^n字节

总线带宽是指单位时间内总线上可以传输最大的数据量

总线带宽(MB/s)= (总线位宽/8) * 总线工作的频率(MHz) * 每个总线周期数据传输的次数

程序(指令)和数据均以二进制编码表示,均存放在存储器中


1.2.10 指令


指令是构成程序的基本单位,程序是由一连串指令组成的

指令的组成:操作码和操作数(地址码)操作码不可少,地址码可以没有

指令的执行过程 取指令→指令译码→执行指令→保存

取指令 CPU的控制器从存储器读取一条指令并放入指令寄存器中
指令译码 指令寄存器中的指令经过译码,决定该指令应进行何种操作、操作数在哪里
执行指令 取出操作数并进行相应运算
保存 运算结果保存至寄存器,有时也会保存至内存

指令系统 CPU可执行的全部指令称为该CPU的指令系统,即它的机器语言

一般同一个公司为解决软件兼容性问题,都会选择“向下兼容”方式开发新的处理器,即所有新处理器均保留老处理器的全部指令,同时还扩充功能更强的新指令

智能手机和平板电脑使用的是ARM架构的CPU,和PC上的CPU指令系统不一样,不兼容

相关文章
|
算法 安全 Java
2023年Java核心技术第十三篇(篇篇万字精讲)
2023年Java核心技术第十三篇(篇篇万字精讲)
103 1
|
存储 安全 Java
2023年Java核心技术第九篇(篇篇万字精讲)(下)
2023年Java核心技术第九篇(篇篇万字精讲)(下)
70 0
|
缓存 安全 Java
2023年Java核心技术第九篇(篇篇万字精讲)(上)
2023年Java核心技术第九篇(篇篇万字精讲)(上)
53 0
|
Java
2023年Java核心技术面试第八篇(篇篇万字精讲)
2023年Java核心技术面试第八篇(篇篇万字精讲)
103 0
|
6月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
63 0
|
8月前
|
SQL 存储 NoSQL
数据库原理速览:核心知识集萃与复习指南
数据库原理速览:核心知识集萃与复习指南
66 2
|
9月前
|
前端开发 程序员 开发工具
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
2024年最全0基础程序员如何快速进阶成为编程老司机?_码农速成(2),字节跳动面试攻略
|
存储 算法 Java
2023年Java核心技术第十二篇(篇篇万字精讲)
2023年Java核心技术第十二篇(篇篇万字精讲)
103 1
|
算法 安全 Unix
翁恺C语言程序设计网课笔记合集
学习自翁恺C语言程序设计网课。
1520 1
翁恺C语言程序设计网课笔记合集
|
消息中间件 设计模式 Java
如何高效地阅读源码,我总结了18条心法,助你修炼神功
大家好,我是三友~~ 这篇文章我准备来聊一聊如何去阅读开源项目的源码。 在聊如何去阅读源码之前,先来简单说一下为什么要去阅读源码,大致可分为以下几点原因: - 最直接的原因,就是面试需要,面试喜欢问源码,读完源码才可以跟面试官battle - 提升自己的编程水平,学习编程思想和和代码技巧 - 熟悉技术实现细节,提高设计能力 - ...
如何高效地阅读源码,我总结了18条心法,助你修炼神功