计算机组成原理之概述篇

131 阅读4分钟

计算机发展简史

计算机发展四个阶段

image.png

畅想第五个阶段的计算机

生物计算机

量子计算机:腾讯,阿里,中科院

后面主要讨论微型计算机

微信计算机的发展历史 早期,受限于性能只有有单核cpu

在这个时期提出了摩尔定律: 集成电路性能每隔18-24个月就会提升一倍

单核的cpu性能逐渐到上限, 就衍生出了多核cpu

计算机分类

超级计算机

大型计算机

迷你计算机(服务器)

工作站

微型计算机

微型计算机与上述计算机无本质上区别

计算机的体系与结构

早期的计算机只能实现固定的程序(计算器, 游戏机)

后面出现了 冯诺依曼体系

将指令与数据一起存储的计算机设计概念结构

存储程序指令, 设计通用电路

冯诺依曼体系具体要求:

必须有存储器

必须有控制器

必须有运算器

必须有输入设备

必须有输出设备

现代计算机都是冯诺依曼计算机

将需要的数据放到计算机里(输入设备) ,

能够长期记忆程序、数据、中间结果、 最终结果的能力 (存储器),

能够具备算术、逻辑运算、数据传送等数据加工处理的能力(控制器,运算器),

能够按照要求将结果输出给用户(输出设备)

早期冯诺依曼体系

image.png

早期CPU = 运算器 + 控制器

早期冯诺依曼体系存在瓶颈: cpu和存储器速率之间存在不可调和的问题

CPU速率很快, 存储器传输速率慢, 导致cpu经常空转等待数据传输

为了解决这个问题,出现了现代冯诺依曼体系

image.png

现代CPU = 存储器+控制器+运算器

广义存储器: 磁带,硬盘 这里的存储器是指围绕着cpu的更高速的设备,CPU寄存器、内存

计算机的层次和编程语言

程序翻译与程序解释

程序翻译

高级计算机语言L1

低级计算机语言L0

进行语言间的转换, 转换的过程使用编译器来实现的

image.png

程序解释

解释器将每一句L1的语言转换成L0的语言(与程序翻译不同, 程序翻译用编译器直接生成L0)

image.png

程序翻译型语言:c/cpp, Object-C Golang

程序解释型语言:Python, Php, Javascript

翻译+解释 Java C#

image.png

计算机的层次与编程语言

image.png 硬件逻辑层: 门, 触发器等逻辑电路组成 属于电子工程的领域

微程序机器层: 编程语言是微指令集, 微指令所组成的微程序直接交由硬件执行

传统机器层: 编程语言: CPU指令集(机器指令), 编程语言和硬件直接相关 不同CPU架构的指令集不同

一条机器指令对应着一个微程序,一个微程序对应一组微指令集

操作系统层: 向上提供简易操作界面 向下对接指令系统,管理硬件资源 操作系统是在软件和硬件之间的适配层

汇编语言层: 编程语言: 汇编语言;可翻译成直接执行的机器语言。完成这个翻译过程的是汇编器

高级语言层: 程序员用的高级语言(汇编语言程序员也会用,但是很少),高级语言类别多, 几百种,常见 Java,cpp, golang,python

计算机的计算单位

容量单位

用 0/1来记录 为什么是0/1? 因为高低电平的关系, 高电平1 ,低电平0

计算机的计算单位

1Byte = 8 bit 1kb = 1024b

容量单位: 为什么网上买的移动硬盘500g, 格式化之后只剩465g了?

硬盘商一般用10进位标记容量

image.png

速度单位

100M宽带是什么意思?

是指100M/s 为什么电信拉的100M光纤, 测试峰值速度只有12M每秒?

网络常用单位为Mbs

100M/s = 100 Mbps = 100Mbit/s = (100/8)MB/s = 12.5MB/s

CPU速度 CPU速度一般为CPU的时频率

单位一般是赫兹(Hz)

主流CPU的时钟频率在2GHz以上

Hz 其实是秒分之一

不是专有单位 表示每秒种周期性变动重复次数的计量

image.png

2GHz = 2*10^3Hz = 每秒二十亿次

计算机的字符与编码集

字符编码

ASCII码

一开始是7bit位,后来扩充成8bit位 变成Extended ASCII

中文编码 GB2312

GBK 向下兼容GB2312 ,向上支持国际ISO标准

Unicode: 统一码,万国码,单一码

Unicode定义世界通用符号集, UTF-*实现了编码

UTF-8以字节为单位对Unicode进行编码

兼容全球的字符集: Unicode

windows默认GBK编码

编程推荐UTF-8