计算机组成原理之概述篇

762 阅读8分钟

本文对学习内容做一个记录,方便后期对知识点复习和补充。
课程:计算机组成原理、操作系统、计算机网络

计算机发展简史

计算机发展的四个阶段

第一阶段:电子管计算机

第二次世界大战是电子管计算机产生的催化剂(英国为了解密德国海军的密文)

埃尼阿克(ENIAC):此阶段最著名的计算机

  • 为了解决什么问题诞生的?
    • 美国在战争中使用了大量的飞机和火箭,为了让炮弹打的准就需要计算射击的参数,这些参数平均需要几千次的运算才能计算出来,没有计算机之前,需要人算。
    • 埃尼阿克(ENIAC)长30多米,宽6米,高2.4米,具有18000多个电子管,运行耗电量150千瓦,重量达30吨,占地1500平方英尺,造价约48万美元。约是手工运算的20万倍

特点

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

第二阶段:晶体管计算机

贝尔实验室的三个科学家发明了晶体管

TX-0:此阶段最著名的计算机之一,全世界第一台晶体管计算机,来自MIT(麻省理工大学)林肯实验室

PDP-1:此阶段最著名的计算机之一,当时性能最高的晶体管计算机

  • 配置
    • 4k内存,每秒200000指令
    • 配备512x512的显示器

特点

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

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

德州仪器的工程师发明了集成电路(IC)

当时比较畅销的计算机

特点

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

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

特点

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

微型计算机的发展历史

单核CPU发展受限,进而衍生出多核CPU:

计算机分类

超级计算机

  • 功能最强、运算速度最快、存储容量最大的计算机
  • 多用于国家高科技领域和尖端技术研究
  • 标记他们运算速度的单位是TFlop/s
    • 1TFlop/s=每秒一万亿次浮点计算
    • Intel(R) Core(TM)i7-6700k CPU @ 4.00GHz 运算速度: 44.87 GFlop/s = 0.04487TFlop/s

超级计算机排名

大型计算机

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

迷你计算机(服务器)

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

工作站

  • 高端的通用微型计算机,提供比个人计算机更强大的性能
  • 类似于普通台式电脑,体积较大,但性能强劲
  • 一般给专业的用户使用,比如图片工作者,视频工作者

微型计算机

  • 又称为个人计算机,是最普通的一类计算机
  • 从构成的本质上来讲,个人计算机与前面的分类无异

计算机的体系与结构

冯诺依曼体系

  • 将程序指令和数据一起存储的计算机设计概念结构,现代计算机都是冯诺依曼机

组成

  • 必须有一个存储器
  • 必须有一个控制器
  • 必须有一个运算器
  • 必须有输入设备
  • 必须有输出设备

功能

  • 能够把需要的程序和数据送至计算机中(输入设备实现)
  • 能够长期记忆程序、数据、中间结果及最终运算结果的能力(存储器实现)
  • 能够具备算术、逻辑运算和数据传送等数据加工处理能力(运算器和控制器实现)
  • 能够按照要求将处理结果输出给用户(输出设备实现)

结构

冯诺依曼瓶颈

CPU和存储器速率之间的问题无法调和,CPU经常空转等待数据的传输,即CPU处理速度快,而存储设备和CPU之间的传输速度慢

现代计算机的结构

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

结构

  • 存储器从广义上理解为可以存储数据的介质:磁带和硬盘等
  • 此处所指的存储器是围绕CPU的更高速的设备:内存和CPU的寄存器

计算机的层次与编程语言

程序翻译与程序解释

程序翻译

程序解释

程序翻译和解释的区别与联系

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

计算机的层次与编程语言

硬件逻辑层

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

微程序机器层

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

传统机器层

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

操作系统层

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

汇编语言层

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

高级语言层

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

应用层

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

计算机的计算单位

容量单位

  • 在物理层面,高低电平记录信息
  • 理论上只认识0/1两种状态(0/1称为bit(比特位))
  • 0/1能够表示的内容太少了,需要更大的容量表示方法,使用字节表示:1Byte=8bits

速度单位

网络速度

  • 为什么电信拉的100M光纤,测试峰值速度只有12M每秒?
    • 网络常用单位为(Mbps) 100M/s = 100Mbps = 100Mbit/s = (100/8)MB/s = 12.5MB/s

CPU速度

  • CPU的速度一般体现为CPU的时钟频率
  • CPU的时钟频率的单位一般是赫兹(Hz)
  • 主流CPU的时钟频率都在2GHz以上(2GHz = 2x10^9Hz)
  • Hz其实就是秒分之一,即每秒中的周期性变动重复次数的计量
  • Hz并不是描述计算机领域所专有的单位

计算机的字符与编码集

字符编码集的历史

ASCII码

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

Extended ASCII码

  • 由于很多应用或者国家中的符号都无法表示,则第一次对ASCII码进行扩充:7bits=>8bits

字符编码集的国际化

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

中文编码集

GB2312

  • 《信息交换用汉字编码字符集---基本集》
  • 一共收录了7445个字符
  • 包括6763个汉字和682个其他符号
  • 本地化编码:在中国使用没有问题,跨国可能会有问题,即中国开发了中文网站,外国访问此网站,若本地未安装GB2312,则显示乱码

GBK

  • 《汉字内码扩展规范》
  • 向下兼容GB2312,向上支持国际ISO标准
  • 收录了21003个汉字,同时支持全部中日韩汉字
  • 中国Windows系统默认使用GBK编码
  • 本地化编码:在中国使用没有问题,跨国可能会有问题,即中国开发了中文网站,外国访问此网站,若本地未安装GBK,则显示乱码

Unicode:兼容全球的字符集

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