计算机组成原理——篇一

  • 时间:
  • 浏览:
  • 来源:互联网

编程基础——计算机组成原理

    • 简介
    • 计算机的发展
    • 计算机的体系和结构
      • 冯诺依曼体系
      • 现代计算机结构
    • 程序翻译和解释
      • 计算机层次
    • 计算单位
    • 字符编码
    • 小结

简介

  • 计算机组成原理在计算机基础综合中是涵盖范围最广,内容最多,难点最多的(准备好放弃了吗)
  • 学习需要得法,提升效率。不可能所有内容都直观,接纳抽象的点,适当的跳过、再折回,可能会豁然开朗
  • 貌似大牛都是软硬通吃,我的本科专业是物联网工程,和单片机周旋了很久,总想逃开硬件的坑,后来发现那是段珍贵的岁月。人都是差不多的,每个人只需要自成体系,帅的独特!
  • 这里是第一篇,从计组开始,后续包括操作系统、计网、数据结构
  • 尽量对接考研408内容,会有少量的思考问题,知行合一,目标是搭建好计算机知识体系
  • 计算机基础不单是大厂笔试和面试会考察,总理也说大学生要关注基础知识的学习

计算机的发展

  • 可能每个人看到这部分都觉得很多余,赶紧学现在的东西呗,搞什么历史?我觉得原因主要有两点
    • 理清发展脉络,才能洞悉技术真相,逐步激发学习兴趣
    • 以史为鉴,机器演进史也是人类认识发展史
  • 计算机发展的四个阶段
    • 1946——1957年:电子管计算机(ENIAC)
    • 1957——1964年:晶体管计算机(PDP-1)
    • 1964——1980年:集成电路计算机(System 操作系统雏形)
    • 1980至今:超大规模集成电路计算机(集成晶体管)
    • 衡量的指标:集成度、空间占用、功耗、运算速度、操作复杂度
    • 下一个阶段很可能是遵循量子力学的物理计算机
  • 微型计算机的发展:个人计算机
    • 单核CPU:频率即时钟频率,也称主频,可以衡量计算机运算速度
      jizu1
    • 多核CPU
      jizu2
  • 超级计算机
    • 功能最强,容量最大,速度最快
    • 用于支持国家高精尖领域计算
    • 运算单位:TFlop/s;1TFlop/s即每秒一万亿次浮点运算,也相当于4GHz微型计算机的十倍以上,而超级计算机的峰值速度:
      jizu3
    • 中国的超算:
      jizu4
  • 大型计算机
    • 大量数据的处理与复杂运算,例如银行金融、人口普查等
    • IBM占据大部分市场,造价高昂,阿里也因此提出了“去IOE行动”jizu5
    • 2009年阿里云成立,普通服务器集群代替了大型机

计算机的体系和结构

冯诺依曼体系

  • 概念
    • 也叫存储型计算机,我们现在使用的基本都是冯诺依曼机
    • 程序指令和数据一起存储的设计方式
    • 早期的计算机用途固定,程序和电路对应,更改程序必须重新设计电路
    • 冯诺依曼将程序存储,设计通用电路,实现功能扩展
      jizu6
  • 功能
    • 能够将程序和数据送入计算机中,将结果输出给用户(输入输出设备
    • 能够长期记忆程序、数据、中间结果及最终运算结果(存储器
    • 具备算数、逻辑运算和数据传送等数据加工处理能力(控制器、运算器
  • 结构
    • 早期的设计结构:
      jizu7
    • 上图结构的主要问题:CPU速度远高于存储器,造成经常空转等待数据传输

现代计算机结构

  • 基于冯诺依曼体系,为了调和CPU和存储部件的性能差异,提出如下结构:
    jizu8
    • ------是控制线和反馈线
    • ——>是数据线
  • 这里的存储器是更高速的设备:寄存器和内存
  • 由于控制器和运算器关系紧密,被集成在一块芯片上

程序翻译和解释

  • 将人类语言变成计算机能识别执行的指令需要翻译或解释
  • 编译器
    • 由高级计算机语言(C语言)生成新的计算机可识别的低级语言程序
    • 很多编辑器里面集成了编译器,也叫IDE(集成开发环境)
  • 解释器
    • 不生成新的程序,而是将高级语言程序(Python)解释一句执行一句
    • 有些语言是编译+解释,例如Java和C#
    • JVM和Java字节码文件让程序具有良好的移植性
      jizu9

计算机层次

  • 可以划分为两层:实际硬件层和虚拟机器层
    jizu10
  • 硬件逻辑层
    • 门、触发器等逻辑电路
    • 属于电子工程领域,考研需要了解简单的电路设计(数据通路)
  • 微程序机器层
    • 高级语言编译成机器指令,再转换成微程序(微指令集)交由硬件执行
    • 微指令是硬件电路可直接执行的命令
  • 传统机器层
    • 机器指令(CPU指令集),不同架构的CPU使用不同的机器指令集(Intel和AMD)
    • 现今的发展方向包括:精简指令集(RISC)和复杂指令集(CISC)
    • 这一层的编程语言和硬件直接相关(一般不会在这编的)
    • 可以理解成:一条机器指令 = 一个微程序,一个微程序 = 一组微指令
  • 操作系统层
    • 向上提供操作界面
    • 向下对接指令系统,管理硬件资源
  • 汇编语言层
    • 汇编语言可直接翻译成机器语言,由汇编器完成
    • 汇编语言基本易于理解了
  • 高级语言层
    • 当今流行的高级语言:C++、Python、Java等
  • 应用层
    • 我们常用的软件:office、微信等

计算单位

  • 容量单位
    • 在物理层面,高低电平记录信息,理论上只有0/1两种状态
    • 需要更大的容量单位,先出现了字节,1Byte=8bits,可存储256种状态
    • 随着数据量增长,出现了更大的单位:1024=2^10
      jizu11
    • 注:一般的硬盘运营商以10进制标记容量,容易理解;因此500G格式化后变成465G
    • 只要不是容量,都是以10进制为单位,例如在速度方面:1M=1000000
  • 速度单位
    • 网络速度:例如100M宽带,即100Mbps=100Mbit/s,因此我们看到的峰值为12M/s左右
    • CPU速度:一般体现为时钟频率,例如2GHz

字符编码

  • ASCII码
    • 使用7个bit位表示我们常用到的字符,例如大小写英文字母、标点符号、字符数字等
      jizu12
    • 由于ASCII码不能表示其他国家的字符和数学符号,又出现了Extended ASCII,使用8bit
      jizu13
  • 越来越多的国家加入计算机使用行列,需要表示更多的字符,以中国、韩国、日本的语言最为复杂
  • 来看中文编码集
    • GB2312,一共收录了7445个字符
    • GBK,向下兼容2312,向上支持国际ISO标准,收录21003个汉字(Windows默认使用)
    • 但是其他国家的计算机仍需要装入字符集才能识别,于是出现了Unicode编码,可统一表示全世界的语言
  • Unicode定义了世界通用的字符集,UTF-*实现了编码,例如UTF-8使用字节为单位对Unicode编码
  • 在不同操作系统要注意编码转换

小结

  • 这部分大致介绍了计算机的发展和结构,下一篇从具体的硬件组成出发,了解计算机的工作流程和原理

本文链接http://www.dzjqx.cn/news/show-617565.html