概述
编程基础——计算机组成原理
- 简介
- 计算机的发展
- 计算机的体系和结构
- 冯诺依曼体系
- 现代计算机结构
- 程序翻译和解释
- 计算机层次
- 计算单位
- 字符编码
- 小结
简介
- 计算机组成原理在计算机基础综合中是涵盖范围最广,内容最多,难点最多的(准备好放弃了吗)
- 学习需要得法,提升效率。不可能所有内容都直观,接纳抽象的点,适当的跳过、再折回,可能会豁然开朗
- 貌似大牛都是软硬通吃,我的本科专业是物联网工程,和单片机周旋了很久,总想逃开硬件的坑,后来发现那是段珍贵的岁月。人都是差不多的,每个人只需要自成体系,帅的独特!
- 这里是第一篇,从计组开始,后续包括操作系统、计网、数据结构
- 尽量对接考研408内容,会有少量的思考问题,知行合一,目标是搭建好计算机知识体系
- 计算机基础不单是大厂笔试和面试会考察,总理也说大学生要关注基础知识的学习
计算机的发展
- 可能每个人看到这部分都觉得很多余,赶紧学现在的东西呗,搞什么历史?我觉得原因主要有两点
- 理清发展脉络,才能洞悉技术真相,逐步激发学习兴趣
- 以史为鉴,机器演进史也是人类认识发展史
- 计算机发展的四个阶段
- 1946——1957年:电子管计算机(ENIAC)
- 1957——1964年:晶体管计算机(PDP-1)
- 1964——1980年:集成电路计算机(System 操作系统雏形)
- 1980至今:超大规模集成电路计算机(集成晶体管)
- 衡量的指标:集成度、空间占用、功耗、运算速度、操作复杂度
- 下一个阶段很可能是遵循量子力学的物理计算机
- 微型计算机的发展:个人计算机
- 单核CPU:频率即时钟频率,也称主频,可以衡量计算机运算速度
- 多核CPU
- 单核CPU:频率即时钟频率,也称主频,可以衡量计算机运算速度
- 超级计算机
- 功能最强,容量最大,速度最快
- 用于支持国家高精尖领域计算
- 运算单位:TFlop/s;1TFlop/s即每秒一万亿次浮点运算,也相当于4GHz微型计算机的十倍以上,而超级计算机的峰值速度:
- 中国的超算:
- 大型计算机
- 大量数据的处理与复杂运算,例如银行金融、人口普查等
- IBM占据大部分市场,造价高昂,阿里也因此提出了“去IOE行动”
- 2009年阿里云成立,普通服务器集群代替了大型机
计算机的体系和结构
冯诺依曼体系
- 概念
- 也叫存储型计算机,我们现在使用的基本都是冯诺依曼机
- 将程序指令和数据一起存储的设计方式
- 早期的计算机用途固定,程序和电路对应,更改程序必须重新设计电路
- 冯诺依曼将程序存储,设计通用电路,实现功能扩展
- 功能
- 能够将程序和数据送入计算机中,将结果输出给用户(输入输出设备)
- 能够长期记忆程序、数据、中间结果及最终运算结果(存储器)
- 具备算数、逻辑运算和数据传送等数据加工处理能力(控制器、运算器)
- 结构
- 早期的设计结构:
- 上图结构的主要问题:CPU速度远高于存储器,造成经常空转等待数据传输
- 早期的设计结构:
现代计算机结构
- 基于冯诺依曼体系,为了调和CPU和存储部件的性能差异,提出如下结构:
------
是控制线和反馈线——>
是数据线
- 这里的存储器是更高速的设备:寄存器和内存
- 由于控制器和运算器关系紧密,被集成在一块芯片上
程序翻译和解释
- 将人类语言变成计算机能识别执行的指令需要翻译或解释
- 编译器
- 由高级计算机语言(C语言)生成新的计算机可识别的低级语言程序
- 很多编辑器里面集成了编译器,也叫IDE(集成开发环境)
- 解释器
- 不生成新的程序,而是将高级语言程序(Python)解释一句执行一句
- 有些语言是编译+解释,例如Java和C#
- JVM和Java字节码文件让程序具有良好的移植性
计算机层次
- 可以划分为两层:实际硬件层和虚拟机器层
- 硬件逻辑层
- 门、触发器等逻辑电路
- 属于电子工程领域,考研需要了解简单的电路设计(数据通路)
- 微程序机器层
- 高级语言编译成机器指令,再转换成微程序(微指令集)交由硬件执行
- 微指令是硬件电路可直接执行的命令
- 传统机器层
- 机器指令(CPU指令集),不同架构的CPU使用不同的机器指令集(Intel和AMD)
- 现今的发展方向包括:精简指令集(RISC)和复杂指令集(CISC)
- 这一层的编程语言和硬件直接相关(一般不会在这编的)
- 可以理解成:一条机器指令 = 一个微程序,一个微程序 = 一组微指令
- 操作系统层
- 向上提供操作界面
- 向下对接指令系统,管理硬件资源
- 汇编语言层
- 汇编语言可直接翻译成机器语言,由汇编器完成
- 汇编语言基本易于理解了
- 高级语言层
- 当今流行的高级语言:C++、Python、Java等
- 应用层
- 我们常用的软件:office、微信等
计算单位
- 容量单位
- 在物理层面,高低电平记录信息,理论上只有0/1两种状态
- 需要更大的容量单位,先出现了字节,1Byte=8bits,可存储256种状态
- 随着数据量增长,出现了更大的单位:
1024=2^10
- 注:一般的硬盘运营商以10进制标记容量,容易理解;因此500G格式化后变成465G
- 只要不是容量,都是以10进制为单位,例如在速度方面:1M=1000000
- 速度单位
- 网络速度:例如100M宽带,即100Mbps=100Mbit/s,因此我们看到的峰值为12M/s左右
- CPU速度:一般体现为时钟频率,例如2GHz
字符编码
- ASCII码
- 使用7个bit位表示我们常用到的字符,例如大小写英文字母、标点符号、字符数字等
- 由于ASCII码不能表示其他国家的字符和数学符号,又出现了Extended ASCII,使用8bit
- 使用7个bit位表示我们常用到的字符,例如大小写英文字母、标点符号、字符数字等
- 越来越多的国家加入计算机使用行列,需要表示更多的字符,以中国、韩国、日本的语言最为复杂
- 来看中文编码集
- GB2312,一共收录了7445个字符
- GBK,向下兼容2312,向上支持国际ISO标准,收录21003个汉字(Windows默认使用)
- 但是其他国家的计算机仍需要装入字符集才能识别,于是出现了Unicode编码,可统一表示全世界的语言
- Unicode定义了世界通用的字符集,UTF-*实现了编码,例如UTF-8使用字节为单位对Unicode编码
- 在不同操作系统要注意编码转换
小结
- 这部分大致介绍了计算机的发展和结构,下一篇从具体的硬件组成出发,了解计算机的工作流程和原理
最后
以上就是腼腆哈密瓜为你收集整理的计算机组成原理——篇一的全部内容,希望文章能够帮你解决计算机组成原理——篇一所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复