-
计算机发展的四个阶段:
- 电子管计算机(1946~1957)
- 产生的催化剂:第二次世界大战
- 代表:埃尼阿克(ENIAC)
- 特点:
- 集成度小,空间占用大
- 功耗高,运行速度慢
- 操作复杂,更换程序需要接线
- 电子管计算机(1946~1957)
- 晶体管计算机(1957~1964)
- 集成电路计算机(1964~1980)
- 超大规模集成电路计算机(1980~现在)
- 超级计算机 运算速度单位:TFlop/s
- 大型机
- 迷你计算机(服务器)
- 工作站
- 微型计算机(个人计算机)
- 冯诺依曼体系:将程序指令和数据一起存储的计算机设计概念结构
- 冯诺依曼机组成:输入设备、输出设备、存储器、CPU(运算器 + 控制器)
- 冯诺依曼瓶颈:CPU和存储器速率之间的问题无法调和(CPU处理速度比储存器快得多,CPU经常空转等待数据传输)
- 现代计算机结构:在冯诺依曼基础上改进,CPU=存储器+运算器+控制器,以存储器为核心
-
程序翻译和程序解释
- 程序翻译:使用较高级语言L1进行程序逻辑描述,通过编译器生成较为低级的计算机语言L0(计算机实际执行的语言) 例:C/C++ Object-C Golang
- 程序解释:使用较高级语言L1进行程序逻辑描述,使用低级的L0语言实现另一个程序—解释器,把L1语言的语句作为输入,每一句L1的语句转化为L0的语句 例:Python PHP JavaScript
- 特例:Java和C# 翻译和解释相结合 java:java程序-编译-JVM字节码-解释-机器码
- 总结
- 计算机执行的指令都是L0
- 翻译过程生成新的L0程序,解释过程不生成新的L0程序
- 解释过程由L0编写的解释器去解释L1程序
-
计算机层次(从上到下):应用层、高级语言层、汇编语言层、操作系统层、传统机器层、微程序机器层、硬件逻辑层
- 分层目的:便于理解
- 硬件逻辑层:门、触发器等逻辑电路组成
- 微程序机器层:编程语言是 微指令集 ;微指令所组成的微程序直接交由硬件执行
- 传统机器层:编程语言是 CPU指令集(机器指令),直接与硬件相关 ; 不同架构的CPU使用不同的CPU指令集
- 一条机器指令 = 一个微程序 = 一组微指令
- 操作系统层:向上提供简易的操作界面 ; 向下对接了指令系统,管理硬件资源 操作系统层是在软件和硬件之间的适配层
- 汇编语言层:编程语言是 汇编语言;汇编语言可以翻译成可直接执行的机器语言;完成翻译过程的程序就是汇编器
- 高级语言层:编程语言是 高级语言
物理层面上,用高低电平记录信息,高电平表示1,低电平表示0 计算机只认识0/1两种状态,0/1称为bit(比特位)
- 容量单位:bit , Byte , KB , MB , GB , TB , PB , EB
- 字节:1Byte=8bits
- 千字节:1KB=1024Byte
- …………
- 硬盘商为了沟通协商,一般用10进位标记容量(500G移动硬盘,实际只剩465G=500*1000^3/1024^3)
- 速度单位:
- 网络速度:
- 网络常用单位:1Mbps=1/8MB/s(100M=100Mbps=100Mbit/s=100/8MB/s=12.5MB/s)
- CPU速度:
- CPU的速度一般体现为CPU的时钟频率
- CPU的时钟频率的单位一般是赫兹(Hz)
- 赫兹(Hz):秒分之一,每秒中的周期性变动重复次数的计量 1GHz=1*1000^3Hz=每秒10亿次
- 网络速度:
- ASCII码:95个可打印字符,33个不可打印字符(包括控制字符)=7bits
- Extended ASCII码:8bits 对ASCII码进行扩充
- GB2312:《信息交换用汉字编码字符集——基本集》 共收录7445个字符(6763个汉字)
- GBK:《汉字内码扩展规范》 向下兼容GB2312,向上支持国际ISO标准 收录了21003个汉字,支持全部中日韩汉字 Windows系统默认使用GBK编码
- Unicode:兼容全球的字符集(统一码、万国码、单一码 ) 定义了世界通用的符号集,UTF-*实现了编码(UTF-8,UTF-16……) UTF-8以字节为单位对Unicode进行编码
-
概述:提供了对外的接口 ;连接的标准,促使外围设备接口的统一 为了解决不同设备之间的通信问题 使计算机结构变得清晰,易于梳理
-
种类:USB(通用串行总线)、PCI总线、ISA总线、Thunderbolt总线
- 片内总线:高集成度芯片内部的信息传输线
- 系统总线:CPU、主存、IO设备、各组件之间的信息传输线
- 数据总线
- 双向传输各个部件的数据信息
- 一般与CPU位数相同
- 地址总线:指定源数据或目的数据在内存的地址
- 控制总线:发出控制信号的传输线
- 可以监视不同组件之间的状态
- 数据总线
- 目的:解决不同设备总线使用权的冲突问题
- 方法
- 链式查询:设备通过串联方式与仲裁控制器相连,由于信号链式发送,离控制器近的设备优先获得使用权
- 优点:电路复杂度低,仲裁方式简单
- 缺点:优先度低的设备难以获得总线使用权 ; 串联,对电路故障敏感
- 计数器定时查询:仲裁控制器对设备编号,并设置计数器。当接收到仲裁信号时,控制器向所有设备发送计数,如果计数结果与设备编号相同,则可以获得总线使用权;如果未命中,则计数器加1,重新发送
- 优点:通过设置计数器初值,可以方便地修改优先次序
- 缺点:
- 独立请求:每个设备都有总线独立连接控制器,设备可以单独向仲裁器发送请求和接受请求。当同时收到多个请求信号,仲裁器可以按优先级分配使用权
- 优点:响应速度快,优先级可以动态改变
- 缺点:设备连线多,电路复杂
- 链式查询:设备通过串联方式与仲裁控制器相连,由于信号链式发送,离控制器近的设备优先获得使用权
-
输入输出接口的通用设计
- 数据线:IO设备与主机之间进行数据交换的传送线
- 状态线:IO设备向主机报告的信息线(比如查询设备是否正常运行,设备是否被占用)
- 命令线:CPU向设备发送命令的信息线(比如发送启动停止信号、读写信号)
- 设备选择线:主机选择IO设备进行操作的信息线
-
CPU和IO设备的通信:速度不一致
- 程序中断:提供低俗设备通知CPU的一种异步方式,CPU高速运转的同时可以兼容低速设备的响应
- DMA(直接存储器访问):直接连接主存和IO设备,不需要中断CPU
- 分类:
- 存储器的层次结构: