前言:

对于初学者来说,我们在说学习计算机组成原理的时候,通常是不能够明白这里面具体是学些什么的,是编程吗?还是硬件的运行原理?这节内容就让你大致了解一下计算机组成原理要学的主要内容。

1)计算机是由那些主要部件组成的?

在中学的生物课本里,人体被分为九大系统:运动系统、消化系统、呼吸系统、泌尿系统、生殖系统、内分泌系统、免疫系统、神经系统、循环系统,这九个系统共同组成人体。

那么对于计算机来说,同样也由几大“系统”组成,也就是组成计算机的主要部分。这些部分形成的结构就是“冯诺依曼结构”。

这个结构有哪些部分呢?

处理器单元

处理器单元包含算术逻辑单元(Arithmetic Logic Unit,ALU)和处理器寄存器(Processor Register)。用于完成各种算术和逻辑运算。因为它能够完成各种数据的处理或者计算工作,因此也有人把这个叫作数据通路(Datapath)或者运算器。

控制器单元

控制器单元包含寄存器(Instruction Reigster)和程序计数器(Program Counter),用来控制程序的流程,通常就是不同条件下的分支和跳转。在现在的计算机里,上面的算术逻辑单元和这里的控制器单元,共同组成了我们说的CPU。

接着是用来存储数据(data)和指令(Instruction)的内存。以及更大容量的外部存储,在过去,可能是磁带、磁鼓这样的设备,现在通常就是硬盘。

最后就是各种输入输出设备,以及对应的输入和输出机制。

2)计算机组成原理讲的是关于这些部件的什么东东?

冯诺依曼体系结构确立了我们现在每天使用的计算机硬件的基础架构。因此,学习计算机组成原理,其实就是学习和拆解冯诺依曼体系结构。

具体来说,学习组成原理,其实就是学习控制器、运算器的工作原理,也就是CPU是怎么工作的,以及为何这样设计;学习内存的工作原理,从最基本的电路,到上层抽象给到CPU乃至应用程序的接口是怎样的;学习CPU是怎么和输入设备、输出设备打交道的。

学习组成原理,就是在理解从控制器、运算器、存储器、输入设备以及输出设备,从电路这样的硬件,到最终开放给软件的接口,是怎么运作的,为什么要设计成这样,以及在软件开发层面怎么尽可能用好它。

3)构建你的知识地图

计算机组成原理的英文叫 Computer Organization。这里的 Organization 是“组织机构”的意思。计算机由很多个不同的部件放在一起,变成了一个“组织机构”。这个组织机构最终能够进行各种计算、控制、读取输入,进行输出,达成各种强大的功能。

在这张图里面,我们把整个计算机组成原理的知识点拆分成了四大部分,分别是计算机的基本组成、计算机的指令和计算、处理器设计,以及存储器和 I/O 设备。

首先,我们来看计算机的基本组成

这一部分,你需要学习计算机是由哪些硬件组成的。这些硬件,又是怎么对应到经典的冯·诺依曼体系结构中的,也就是运算器、控制器、存储器、输入设备和输出设备这五大基本组件。除此之外,你还需要了解计算机的两个核心指标,性能和功耗。性能和功耗也是我们在应用和设计五大基本组件中需要重点考虑的因素。

了解了组成部分,接下来你需要掌握计算机的指令和计算

在计算机指令部分,你需要搞明白,我们每天撰写的一行行 C、Java、PHP 程序,是怎么在计算机里面跑起来的。这里面,你既需要了解我们的程序是怎么通过编译器和汇编器,变成一条条机器指令这样的编译过程(如果把编译过程展开的话,可以变成一门完整的编译原理课程),还需要知道我们的操作系统是怎么链接、装载、执行这些程序的(这部分知识如果再深入学习,又可以变成一门操作系统课程)。而这一条条指令执行的控制过程,就是由计算机五大组件之一的控制器来控制的。

在计算机的计算部分,你要从二进制和编码开始,理解我们的数据在计算机里的表示,以及我们是怎么从数字电路层面,实现加法、乘法这些基本的运算功能的。实现这些运算功能的 ALU(Arithmetic Logic Unit/ALU),也就是算术逻辑单元,其实就是我们计算机五大组件之一的运算器

这里面有一个在今天看起来特别重要的知识点,就是浮点数(Floating Point)。浮点数是我们在日常运用中非常容易用错的一种数据表示形式。掌握浮点数能让你对数据的编码、存储和计算能够有一个从表到里的深入理解。尤其在 AI 火热的今天,浮点数是机器学习中重度使用的数据表示形式,掌握它更是非常有必要。

明白计算机指令和计算是如何运转的,我们就可以深入到CPU 的设计中去一探究竟了。

CPU 时钟可以用来构造寄存器和内存的锁存器和触发器,因此,CPU 时钟应该是我们学习 CPU 的前导知识。搞明白我们为什么需要 CPU 时钟(CPU Clock),以及寄存器和内存是用什么样的硬件组成的之后,我们可以再来看看,整个计算机的数据通路是如何构造出来的。

数据通路,其实就是连接了整个运算器和控制器,并最终组成了 CPU。而出于对于性能和功耗的考虑,你要进一步理解和掌握面向流水线设计的 CPU、数据和控制冒险,以及分支预测的相关技术。

既然 CPU 作为控制器要和输入输出设备通信,那么我们就要知道异常和中断发生的机制。在 CPU 设计部分的最后,我会讲一讲指令的并行执行,看看如何直接在 CPU 层面,通过 SIMD 来支持并行计算。

最后,我们需要看一看,计算机五大组成部分之一,存储器的原理。通过存储器的层次结构作为基础的框架引导,你需要掌握从上到下的 CPU 高速缓存、内存、SSD 硬盘和机械硬盘的工作原理,它们之间的性能差异,以及实际应用中利用这些设备会遇到的挑战。存储器其实很多时候又扮演了输入输出设备的角色,所以你需要进一步了解,CPU 和这些存储器之间是如何进行通信的,以及我们最重视的性能问题是怎么一回事;理解什么是 IO_WAIT,如何通过 DMA 来提升程序性能。

对于存储器,我们不仅需要它们能够正常工作,还要确保里面的数据不能丢失。于是你要掌握我们是如何通过 RAID、Erasure Code、ECC 以及分布式 HDFS,这些不同的技术,来确保数据的完整性和访问性能。

(内容参考自:徐文浩《深入浅出计算机组成原理》)

后话:

欢迎博友提问交流。

02 学计算机组成原理是学什么?相关推荐

  1. 安徽工业大学计算机组成原理,安徽工业大学工商学院 计算机组成原理试卷12至13学年A卷...

    装 订 线 课程________________________班级________________________姓名__________________________学号____________ ...

  2. 北京邮电大学计算机组成原理,北京邮电大学计算机组成原理考研复习(内部).doc...

    一.选择题(每小题1分,共10分). 1.在机器数___中,零的表示形式是唯一的. A. 原码B.补码C. 补码和移码D. 原码和反码 2. 下列数中最小的数是___. A.(101001)2 B.( ...

  3. 计算机组成原理fc和fz,合肥工业大学计算机组成原理实验报告(DOC)

    合肥工业大学计算机组成原理实验报告(DOC),合肥工业大学计算机组成原理,合肥工业大学计算机组成原理试卷,计算机组成原理实验pdf,计算机组成原理微程序,计算机组成原理实验报告,计算机组成原理知识点, ...

  4. 计算机组成原理实验报告十,合肥工业大学计算机组成原理实验报告.doc

    合肥工业大学计算机组成原理实验报告.doc (27页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.90 积分 实验一 基本运算器实验一.实验目的了 ...

  5. 计算机组成原理白学了,再次回顾浮点数加减

    大二学的计算机组成原理,回顾下其中的知识 文章目录 一个加法引发的思考 计算机中的原码.反码.补码.移码 原码 反码 补码 移码 为什么计算机中要用这些来表示数? 计算机中如何表示小数? 浮点数的转换 ...

  6. 湖南工业大学计算机组成原理,计算机组成原理实验指导书_湖南工业大学.pptx

    计算机组成原理实验指导书_湖南工业大学 计算机组成原理实验指导书;实验一 算术逻辑运算实验一.实验目的1.掌握简单运算器的组成以及数据传送通路.2.验证运算功能发生器(74LS181)的组合功能.二. ...

  7. 河北工程大学计算机考试试题,河北工程大学计算机组成原理08-09考试题B卷.doc...

    河北工程大学计算机组成原理08-09考试题B卷 晰甫瑰瑶怂栗馆物抹应限范钞扶张膳矣沁部忌喀咕层嘲恿晋懈开牺专坯奔校便勃尾翁虽荔赌玻壁测芹迪渊降犹苞盲四酬钱妨凄梭掩把由宫燎浦丰言频烫揩蒜崭滨姆碧孝规改曝 ...

  8. 计算机原理个人总结,北京工业大学 计算机组成原理 个人总结.doc

    文档介绍: EvaluationWarning:ThedocumentwascreatedwithSpire..帧陈蹿油竭榷拼帕邀邑爆以粮呵鹅醋亦箭木辫丑逆袄疚橇壤陡皖涤振教加匹爵釉岩斋冒全弄与秧烽临 ...

  9. 南邮计算机组成原理考试,南京邮电大学计算机组成原理期末考试卷.pdf

    南京邮电大学计算机组成原理期末考试卷 - 题 - - 南京邮电2010--2011 学年第一学期试卷 (A 卷) A 数据总线 B ALU C 状态条件寄存 器 D 通用寄存器 号 答 课程: 微机原 ...

  10. 长春工业大学计算机组成原理考试开卷考吗,计算机组成原理期末复习资料

    长春工业大学人文信息学院 计算机星系工程系 计算机组成原理 期末复习资料 计算机组成原理 一.缩写词解释 CPU:中央处理器 ALU:算术逻辑单元 I/O:输入输出接口 RAM:随机存储器 SRAM: ...

最新文章

  1. C# 3.0/3.5语法新特性示例汇总[转]
  2. 卫星覆盖分析品质 FOM
  3. sql盲注特点_SQL注入第二章——access,mssql,oracle
  4. C语言 socket shutdown()函数(将与 sockfd 关联的套接字上的全双工连接全部或部分关闭)
  5. 腾讯云CentOS 7 上安装Nginx
  6. 第一章 代码无错就是优吗?(简单工厂模式)
  7. php markdown的转化函数,markdown公式转为知乎格式
  8. asp.net 与 java 2017_[ASP.net教程]C#与JAVA学习感悟
  9. cad中线段求和lisp_cad中连续线段变更圆滑弧形
  10. 2018年全国《程序员高考》真题试卷
  11. 在ionic2中集成swiper插件
  12. 主动出击,马斯克欲用 430 亿美元拿下 Twitter
  13. 致远互联携手华为云启动开发者大赛,加速企业应用定制向平台生态转型
  14. 百度 UEditor--自定义上传文件路径及读取文件
  15. 刺客信条奥德赛缺少dll文件_《刺客信条 奥德赛》免费归来,单人冒险暗杀游戏,搞一搞喽...
  16. Vivado的FPGA设计流程
  17. qpsk matlab仿真,qpsk的matlab和simulink仿真.pdf
  18. 眼镜的基础知识与挑选
  19. 华为笔记本电脑触摸板失灵解决方法(触摸屏同理)
  20. HDMI以及HDCP之间的关系介绍

热门文章

  1. CATIA二次开发过程中几个问题
  2. 这四个想法试图搞定整个互联网的安全
  3. 计算机 26个英文字母代表数字,excel 输入26个英文字母的三种方法
  4. vue项目+高德地图
  5. gatk过滤_详解GATK突变硬过滤 | 群体遗传专题
  6. 计算机丢失msvcr100.dll解决办法,计算机丢失MSVCR100.dll
  7. k8s service nodeport
  8. ysoserial exploit/JRMPListener原理剖析
  9. Linux 配置Host
  10. html图片闪现循环效果,CSS实现图片无缝无限循环展示效果