首页 > 其他分享 >计算机组成原理——总结

计算机组成原理——总结

时间:2023-03-25 12:33:50浏览次数:48  
标签:总结 计算机 总线 指令 模块 寄存器 原理 CPU

1. 简单介绍

三月份的一个主要任务是学一门计算机科班的基础课程————《计算机组成原理》,在学之前对这部分的知识似懂非懂,没系统学过所以也不清楚它到底包含哪些知识点,但学完之后又能和本科时期学过的一些课程有了联系,比如最基础的模电和数电,想起之前课设的时候大家熬夜在宿舍做LED时钟显示器的情形,那个时候真的是平时不学习、期末抱佛脚,稀里糊涂四年时间就过去了,算是过的最舒服的几年时光了。但出来混,迟早要还的,现在开始学这些基础课程了。
计算机是一个复杂的结构,深挖计算机的第一性,从最基础的物理知识开始:

  1. 电路:I=U/R,涉及的硬件有电阻、电感、电容,也有电磁学相关的内容,是信息时代快速发展的基石。
  2. 模电: 用连续电信号作为信息载体,处理的是连续变化的模拟量电信号(即其幅值可以是任何值),如无线电、收音机等。不做深入了解。但基础元器件还是三极管。
  3. 数电:主要是针对数字信号处理的模块。数字集成电路的运行以开关状态进行运算,它的精度高,适合复杂的计算。数字电路只要能区分高电平和低电平即可,数字电路不仅能完成数值运算,还可以进行逻辑运算和判断,因此数字电路又称为数字逻辑电路。基础元器件还是三极管,也即晶体管,现在芯片中的基本单位就是这个玩意儿,其尺寸已经达到纳米尺度了。数电中我们需要理解的是与或非门电路,这是构建复杂计算逻辑组合电路的基础。
  4. 计算机组成原理:在数电原理基础上,构建的复杂电路。主要包含的硬件模块有:总线、CPU、主存、I/O设备。下面分别进行简要总结

2. 简单分模块总结

  1. 总线。可以理解为分布在计算机中用于各模块之间通讯、数据传输的线。各模块发出或者可以接受从总线上传输的数据,数据传输的速度和总线的频率和宽度相关。一般我们说的总线是系统总线,这里面又分为控制总线、地址总线和数据总线。此外,CPU内部也可能有用于在cpu内部进行数据和命令传输的总线,可称为内部总线。此外,I/O设备也可以拥有独立的io总线。总之,这些总线都是为传输信号工作的,为了使传输信号更快,总线的连接通路会更多,导致系统看起来非常复杂。
  2. 主存:在计算机运行期间存储数据和代码,CPU在运行期间直接从主存中存取指令和数据。将其理解为一个非常大的数组即可,且可以根据地址高速随机访问。
  3. CPU:这是整个计算机的控制计算中心,所有的任务都是在这里执行的。逻辑上主要包含四个组件:寄存器、ALU、CU和中断系统。
  • 寄存器是用来临时存储一些从内存中拿来或者ALU计算结果的存储单元,如通用寄存器,还有一些是专用寄存器,如PC用于存储下一条指令在内存中的地址,还有状态寄存器。各种cpu其寄存器配置不尽相同,功能都是用来存储的,是计算机中最快的存储器;
  • ALU用做算数逻辑运算,包括浮点、定点的加减乘除和逻辑与或非等能力,这个模块只要理解为按照既定的电路做算数逻辑计算即可,内部设计的组合逻辑电路各个芯片大同小异,有的还复用电路即可用做浮点计算也可以做整形计算,至于对输入的数据做何种运算,是由CU给出的信号(+-*/ &|!)决定的。
  • CU是核心部件,用于将PC中的指令进行解析,讲指令由操作码+操作数组成,CU会将操作码解析为硬件命令信号,将操作数从内存中加载到约定好的寄存器并按照命令运算。这个过程细分为取指+间址(option)+执行+中断(option)。其中执行过程最复杂也最耗时。这些步骤细分还会分为微指令等更细微的操作,涉及到时钟、流水化,微程序控制器等较细的模块,简单了解有这个东西就行。简言之,最简单的计算机就是一直在循环做取指+执行。汇编指令和机器指令是一一对应的,如果有需要做指令级优化的话,掌握相应CPU架构的指令集,写汇编代码即可。
  • 中断系统:中断系统是为相应系统的中断信号设计的,一般由硬件实现和软件实现两种,是速度和灵活性之间权衡的结果。在系统运行过程中,运行的程序本身或者IO设备都有可能发出中断请求,中断程序根据请求的种类不同,在保护现场后,去调用对应的中断程序来处理请求,结束后再返回到之前的程序断点继续执行,类似于函数调用。

3. 杂项

  1. 数的表示和计算。
    计算机顾名思义是用来计算的,那就涉及到数据的存储和计算,数据是如何编码为2进制并存储到内存或硬盘上的,大端法小端法等。ALU里面的加法器是如何实现的,乘法是如何利用加法器工作的等等。其实这些都是组合逻辑电路实现的,和电子时钟原理差不多。当实现了最基本的加减乘除逻辑电路后,复杂的超越函数可以通过泰勒展开等近似方法简化为加减乘除运算,只不过不能一次性在ALU中完成计算,需要通过软件的方式,运行很多个指令才能求解出一个近似值。对于那些专用的计算芯片,可能会将常用的非线性函数如sin/cos/log/e^x等以硬件实现模拟,计算速度会大大提高。当然需要有配套的编译器和指令支持才可以。
  2. 微程序控制单元。取到一条指令后,会被解析为很多粒度更细的指令按照严格顺序执行,是在cpu内部硬件实现的,相当于一个指令解码部件。
  3. 流水线。多个指令并行执行且不干扰执行结果,基本原则是下一条指令使用上一条指令使用过的内部运算或存储体,该存储体或运算单元是当前指令使用完并在指令结束前不会再使用。跳转指令和耗时不均匀的指令会打乱流水、影响效率。流水逻辑是严格保证逻辑和串行执行一致的,在写汇编代码的时候按照串行写即可。

4. 结语

这门课是在计算机组成原理-刘宏伟-B站跟着视频学的,中间太深太细的没有深究,毕竟工作中用不到,只把组成原理的整体结构和知识点看完了,也做了这篇总结,主要是为了建立计算机组成原理的基本知识点范畴,并把硬件知识和上层代码联系起来,也把计算机硬件和之前学的数电建立了链接。接下来,还有一门操作系统,是重中之重。下个月主攻CS,道阻且长行则将至。

标签:总结,计算机,总线,指令,模块,寄存器,原理,CPU
From: https://www.cnblogs.com/lee-zq/p/17254507.html

相关文章

  • YCSB工具原理重点内容解读(二)
    一、建表(1)默认表名为usertableCREATETABLEusertable(YCSB_KEYVARCHAR(255)PRIMARYKEY,FIELD0TEXT,FIELD1TEXT,FIELD2TEXT,FIELD3TEXT,......
  • CSS鼠标样式(cursor)总结(转载)
    CSS鼠标样式(cursor)总结 属性值示意图描述auto 默认值,由浏览器根据当前上下文确定要显示的光标样式default默认光标,不考虑上下文,通常是一个箭头none......
  • 计算机科学与技术应该如何系统地自学?
    计算机科学的首要主题探索计算领域的广度,能帮助我们记住与计算机科学相结合的主要主题。虽然“计算机科学的七大思想”(SevenBigIdeasofComputerScience)的编纂晚于本书......
  • UDP协议精华总结
    引入本文面向有一定计网基础的读者。TCP,UDP,IP可以说是计网的常客了,它们三紧密联系,以至于经常看见“TCP/IP”这样的名词,但实际上UDP也是基于IP的,但似乎很少见“U......
  • 什么是Mysql和Mysql原理、Mysql主从复制、SQL语句
    ✍什么是MysqlMysql是关系数据库管理系统,一般中小型网站的开发都选择MySQL作为网站数据库搭配PHP和Apache可组成良好的开发环境.✍关系型数据库和非关系数据库1、关系数......
  • 600 条最强 Linux 命令总结
    1.基本命令uname-m显示机器的处理器架构uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DMI)hdparm-i/dev/hda罗列一个磁盘的架构特......
  • 计算机定点数和浮点数
    一、概念1.定点数定点数表示法约定==计算机中所有数据的小数点位置固定==,其中,将小数点的位置固定在数据的最高位之前(或符号位之后)的数据表示称为定点小数,而将小数点固定......
  • 2023、03、24学习总结
    写了第一个查询,用同样的方法写第二个线路查询出现问题,无法正常查询,明天在找问题  ......
  • 总结20230324
    今日是周五,虽然课最多,但是还是很喜欢今天的,因为明天又迎接来了双休。今天上了计算机网络、概率论、实用英语阅读与翻译、web应用开发技术、数学建模B。计算机网络今天进......
  • 3.24总结
    今天基本上光上课了,下课玩了一会,基本没学东西今晚体验的东西如下:首先对viewPager有了一点新的认知,就是可以做轮播图,初步认识了Handler以及分线程的机制。然后就是对底部......