1

背景篇

计算机发展简史

计算机发展的四个阶段

  • 第一阶段(1946-1957): 电子管计算机
  • 第二阶段(1957-1964): 晶体管计算机
  • 第三阶段(1964-1980): 集成电路计算机
  • 第四阶段(1980-现在): 超大规模集成 电路计算机

第一阶段:电子管计算机

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

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

战争使用了飞机和火箭,打得准则需要计算射击参数,射击参数需要几千次运算才能计算出来,没有计算机前,需要人手算。

埃尼阿克(ENIAC):

  • 18000多个电子管
  • 运行耗电量150千瓦
  • 重量达30吨,占地1500平方英尺

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

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

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

TX-0:来自MIT林肯实验室

PDP-1

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

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

  • 计算机变得更小
  • 功耗变得更低
  • 功耗变得更低
计算机具备进入千家万户的条件

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

IBM:

  • 7094
  • 1401

主打功能不同 ,相互无法兼容,不愿意投入两组人力,因此IBM推出兼容的产品 System/360(操作系统的雏形)。

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

  • 一个芯片集成了上百万的晶体管
  • 一个芯片集成了上百万的晶体管
  • 用途丰富:文本处理、表格处理、高交互的游戏与应用

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

  • 生物计算机:以蛋白质分子作为主要原材料

    • 体积小,效率高
    • 不易损坏,生物级别的自动修复
    • 不易损坏,生物级别的自动修复
  • 量子计算机:遵循量子力学的物理计算机

    • 2013年5月,谷歌和NASA发布D-Wave Two
    • 2017年5月,中国科学院宣布制造出光量子计算机
    • 2019年1月,IBM展示了世界首款商业化量子计算机
    • 腾讯在2017年就组建了量子实验室
    • 阿里巴巴在2017年成立了达摩院

微型计算机的发展历史

受限于性能(单核CPU)

  • (1971~1973)500KHz频率的微型计算机(字长8位)
  • (1978~1985)500MHz频率的微型计算机(字长16位)
  • (1985~2000)高于1GHz频率的微型计算机(字长32位)
  • (1973~1978)高于1MHz频率的微型计算机(字长8位)
  • (2000~现在)高于2GHz频率的微型计算机(字长为64位)

摩尔定律:集成电路的性能,每18-24个月就会提升一倍

摩尔定律逐渐“失效”。

多核CPU

  • 2005) Intel奔腾系列双核CPU、AMD速龙系列
  • Intel酷睿系列十六核CPU (2006)
  • Intel酷睿四核CPU
  • Intel至强系列五十六核CPU

计算机的分类

超级计算机

  • 功能最强、运算速度最快、存储容量最大的计算机
  • 多用于国家高科技领域和尖端技术研究
  • 标记他们运算速度的单位是TFlop/s(1TFlop/s=每秒一万亿次浮点计算)

    Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz: 44.87 GFlop/s

    44.87 GFlop/s = 0.04487TFlop/s

大型计算机

  • 又称大型机、大型主机、主机等
  • 具有高性能,可处理大量数据与复杂的运算
  • 在大型机市场领域,IBM占据着很大的份额
可使用COBOL编程语言在大型主机上编写程序,

IBM Z9:

  • NASA 最后一台大型机
  • Red Hat Enterprise Linux
  • 大型机造价高昂

去“IOE”行动(阿里2008年提出 -> 阿里云2009年成立)

I(IBM) O(Oracle) E(EMC)

  • 去”IOE“ 是阿里巴巴提出的概念
  • 代表了高维护费用的存储系统
  • 代表了高维护费用的存储系统

迷你计算机(服务器)

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

普通服务器已经代替了传统的大型机,成为大规模企业计算的中枢

工作站

  • 高端的通用微型计算机,提供比个人计算机更强大的性能
  • 高端的通用微型计算机,提供比个人计算机更强大的性能

微型计算机

  • 又称为个人计算机,是最普通的一类计算机
  • 麻雀虽小、五脏俱全

从构成的本质上来讲,个人计算机与前面的分类无异

计算机的体系与结构

演进过程:早期计算机 仅含固定用途程序 -> 改变程序得更改结构、 重新设计电路(坑爹啊,不能先打 会游戏然后再写代码) -> 把程序存储起来 并设计通用电路 -> 存储程序指令 设计通用电路

冯诺依曼体系

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

组成:

  • 必须有一个存储器
  • 必须有一个控制器
  • 必须有一个运算器
  • 必须有输入设备
  • 必须有输出设备
现代计算机都是冯诺依曼机

具备的能力:

  • 能够把需要的程序和数据送至计算机中
  • 能够长期记忆程序、数据、中间结果及最终运算结果的能力
  • 能够长期记忆程序、数据、中间结果及最终运算结果的能力
  • 能够按照要求将处理结果输出给用户

image.png

冯诺依曼瓶颈:CPU和存储器速率之间的问题无法调和。

image.png

现代计算机的结构

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

image.png

image.png

计算机的层次与编程语言

程序翻译与程序解释

人类语言 -> 计算机语言

需要进行语言之间的转换

image.png

image.png

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

程序翻译(编译型语言):C/C++、Object-C、Golang

程序解释(解释型语言):Python、Php、Javascript

image.png

计算机的层次与编程语言

image.png

分层的目的是便于理解:

硬件逻辑层

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

微程序机器层

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

传统机器层

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

微指令 < 微程序 = 机器指令

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

操作系统层

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

汇编语言层

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

高级语言层

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

应用层

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

计算机的计算单位

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

image.png

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

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

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

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

速度单位
  • 网络速度

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

    网络常用单位为(Mbps)

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

  • CPU频率

    • CPU的速度一般体现为CPU的时钟频率
    • CPU的时钟频率的单位一般是赫兹(Hz)

      Hz其实就是秒分之一

      并不是描述计算机领域所专有的单位(它是每秒中的周期性变动重复次数的计量)

      image.png

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

计算机的字符与编码集

  • 字符编码集的历史

    • ASCII码

      • 字符编码集的国际化
      • 包含95个可打印字符
      • 33个不可打印字符(包括控制字符)

        𝟑𝟑 + 𝟗𝟓 = 𝟏𝟐𝟖 = 𝟐 ^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编码


学习过程中的视频摘录。如有侵权,忘告知,即刻删除。


Feyl
18 声望1 粉丝

没有梦想,何必远方?


引用和评论

0 条评论