avatar

【计算机组成原理】计算机概论背景篇

计算机概论背景篇

计算机的发展简史

计算机发展的四个阶段


第一个阶段:电子管计算机

  • 集成度小,空间占用大
  • 功耗高,运行速度慢
  • 操作复杂,更换程序需要接线

第二个阶段:晶体管计算机

  • 集成度相对较高,空间占用相对小
  • 功耗相对较低,运行速度较快
  • 操作相对简单,交互更加方便

** 第三个阶段:集成电路计算机**

  • 计算机变得更小
  • 功耗变得更低
  • 计算速度变得更快

第四个阶段:超大规模集成电路计算机

  • 一个芯片集成了上百万的晶体管
  • 速度更快,体积更小,价格更低,更能被大众接受
  • 用途丰富:文本处理、表格处理、高交互的游戏与应用

第五个阶段:未来的计算机 **
**生物计算机

  • 体积小,效率高
  • 不易损坏,生物级别的自动修复
  • 不受信号干扰,无热损耗

量子计算机

  • 2013年5月,谷歌和NASA发布D-Wave Two
  • 017年5月,中国科学院宣布制造出光量子计算机
  • 2019年1月,IBM展示了世界首款商业化量子计算机

微型计算机的发展历史


自第一台微型计算机MCS-4诞生后,一直到现在,微机计算机的发展非常迅速!对于微型计算机的发展,一般以字长和典型的微处理器芯片作为划分标志,将微型计算机的发展划分为五个阶段。

第一个阶段(1971~1973)
主要是字长为4位的微型机和字长为8位的低档微型机。这一阶段的典型微处理器有:世界上第一个微处理器芯片4004,以及随后的改进版4040,它们都是字长为4位的。在随后的第二年,Intel又研制出了字长为8位的处理器芯片8008,集成度和性能都有所提高。8008采用PMOS工艺,字长8位,基本指令48条,基本指令周期为20~50uS,时钟频率为500KHz,集成度约为3500晶体管/片。

第二个阶段(1973~1978)
主要是字长为8位的中、高档微型机。这一阶段典型的微处理器芯片有:Intel公司的I8080、I8085、Motorola公司的M6800、Zilog公司的Z80等。以I8080为例,I8080采用NMOS工艺,字长8位,基本指令70多条,基本指令周期为2~10uS,时钟频率高于1MHz,集成度约为6000晶体管/片。

第三个阶段(1978~1985)
主要是字长为16位的微型机。这一阶段典型的微处理器芯片有:Intel公司的8086/8088/80286、Motorola公司的M68000、Zilog公司的Z8000等。以I8086为例,I8086采用HMOS工艺,字长16位,基本指令周期为0.5uS,集成度约为2.9万晶体管/片。

第四个阶段(1985~2000)
主要是字长为32位的微型机。这一阶段典型的微处理器芯片有:Intel公司的80386/486/Pentium//Pentium II//Pentium III //Pentium IV等。以I80386为例,其集成度达到27.5万晶体管/片,每秒钟可完成500万条指令(MIPS)。

第五个阶段(2000~)
出现了字长为64位的微处理器芯片。主要还是面向服务器和工作站等一些高端应用场合。如2000年Intel推出的微处理器Itanium(安腾),它采用全新指令架构IA-64。而AMD公司的64位微处理器Athlon 64则仍沿用了x86指令体系,能够很好的兼容原来的IA-32结构的个人微机系统,具有一定的普及性。

计算机的分类


超级计算机

  • 功能最强、运算速度最快、存储容量最大的计算机
  • 多用于国家高科技领域和尖端技术研究

大型计算机

  • 又称大型机、大型主机、主机等
  • 具有高性能,可处理大量数据与复杂的运算
  • 在大型机市场领域,IBM占据着很大的份额

迷你计算机(服务器)

  • 也称为小型机,普通服务器
  • 不需要特殊的空调场所
  • 具备不错的算力,可以完成较复杂的运算

工作站

  • 高端的通用微型计算机,提供比个人计算机更强大的性能
  • 类似于普通台式电脑,体积较大,但性能强劲

微型计算机

  • 又称为个人计算机,是最普通的一类计算机

计算机的体系结构

冯诺伊曼体系

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

  • 必须有一个存储器

  • 必须有一个控制器

  • 必须有一个运算器

  • 必须有输入设备

  • 必须有输出设备

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

  • 能够把需要的程序和数据送至计算机中

  • 能够长期记忆程序、数据、中间结果及最终运算结果的能力

  • 能够具备算术、逻辑运算和数据传送等数据加工处理的能力

  • 能够按照要求将处理结果输出给用户

两个瓶颈

现代计算机的结构

现代计算机在冯诺依曼体系结构基础上进行修改
解决CPU与存储设备之间的性能差异问题


计算机的层次与编程语言

程序翻译与程序解释


  • 计算机执行的指令都是L0
  • 翻译过程生成新的L0程序,解释过程不生成新的L0程序
  • 解释过程由L0编写的解释器去解释L1程序

计算机的层次与编程语言

硬件逻辑层

  • 门、触发器等逻辑电路组成
  • 属于电子工程的领域

微程序机器层

  • 编程语言是微指令集
  • 微指令所组成的微程序直接交由硬件执行

传统机器层

  • 编程语言是CPU指令集(机器指令)
  • 编程语言和硬件是直接相关
  • 不同架构的CPU使用不同的CPU指令集

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

操作系统层

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

汇编语言层

  • 编程语言是汇编语言
  • 汇编语言可以翻译成可直接执行的机器语言
  • 完成翻译的过程的程序就是汇编器

高级语言层

  • 编程语言为广大程序员所接受的高级语言
  • 高级语言的类别非常多,由几百种
  • 常见的高级语言有:Python、Java、C/C++、Golang等

应用层

  • 满足计算机针对某种用途而专门设计

总结:分层的目的是便于理解

计算机的计算单位

容量单位

字节:1Byte=8bits

  • 在物理层面,高低电平记录信息
  • 理论上只认识0/1两种状态
  • 0/1能够表示的内容太少了,需要更大的容量表示方法

注:0/1称为bit(比特位)

问题1:1G内存,可以存储多少字节的数据?可以存储多少比特数据?

1G = 1024^3Bytes = 1024^3*8bits

问题2:为什么网上买的移动硬盘500G,格式化之后就只剩465G了?

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

速度单位

网络速度

100M宽带中的100M怎么理解?

100M = 100M/s

那么问题来了,为什么电信拉的100M光纤,测试峰值速度只有12M每秒?

网络常用单位为(Mbps)
100M/s = 100Mbps = 100Mbit/s
100Mbit/s=(100/8)MB/s=12.5MB/s

CPU频率

  • CPU的速度一般体现为CPU的时钟频率
  • CPU的时钟频率的单位一般是赫兹(Hz)
  • 主流CPU的时钟频率都在2GHz以上
    注意:
  • Hz其实就是秒分之一
  • 并不是描述计算机领域所专有的单位,

它是每秒中的周期性变动重复次数的计量

计算机的字符与编码集

字符编码集的历史

ASCII码

  • 使用7个bits就可以完全表示ASCII码
  • 包含95个可打印字符
  • 33个不可打印字符(包括控制字符)
    1
    33+95= 2^7

    Extended ASCII码

    第一次对ASCII码进行扩充,7bits => 8bits
  • 常见数学运算符
  • 带音标的欧洲字符
  • 其他常用符、表格符等

    字符编码集的国际化

  • 欧洲、中亚、东亚、拉丁美洲国家的语言多样性
  • 语言体系不一样,不以有限字符组合的语言
  • 中国、韩国、日本等的语言最为复杂

中文编码集

《信息交换用汉字编码字符集——基本集》–GB2312

  • 一共收录了 7445 个字符
  • 包括 6763 个汉字和 682 个其它符号

《汉字内码扩展规范》–GBK

  • 向下兼容GB2312,向上支持国际ISO标准
  • 收录了21003个汉字,支持全部中日韩汉字

兼容全球的字符集–Unicode

  • Unicode:统一码、万国码、单一码
  • Unicode定义了世界通用的符号集,UTF-*实现了编码
  • UTF-8以字节为单位对Unicode进行编码

注意:
Windows系统默认使用GBK编码
编程推荐使用UTF-8编码

文章作者: hirak0
文章链接: https://hirak0.xyz/posts/18670/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 hirak0's Blog
打赏
  • 微信
    微信
  • 支付寶
    支付寶

评论