计算机组成原理核心知识点总结&面试笔试要点[通俗易懂]

作为一名计算机专业的学生,计算机组成原理、计算机网络、操作系统这三门课程可以说是专业核心基础课,是至关重要的,其内容是一名合格的coder所必备的知识集;非科班出身的程序员要是想要有所提升,也需要认真学习这三门课程,可以快速形成计算机知识的结构体系,理解计算机底层原理,在工作实践中可以借鉴优秀的设计;而且很多互联网公司在笔试和面试中都会涉及到这三门课程的知识点,因此我通过视频学习对这三门课程就行…

大家好,又见面了,我是你们的朋友全栈君。

  作为一名计算机专业的学生,计算机组成原理、计算机网络、操作系统这三门课程可以说是专业核心基础课,是至关重要的,其内容是一名合格的coder所必备的知识集;非科班出身的程序员要是想要有所提升,也需要认真学习这三门课程,可以快速形成计算机知识的结构体系,理解计算机底层原理,在工作实践中可以借鉴优秀的设计;而且很多互联网公司在笔试和面试中都会涉及到这三门课程的知识点,因此我通过视频学习对这三门课程就行复习巩固,同时分三篇博客记录总结。

计算机组成原理

一 计组之概述篇

  1. 计算机的发展历史
    第一阶段(1946-1957):电子管计算机 特点:集成度低,体积大,功耗高,运行速度慢,操作复杂。
    第二阶段(1957-1964):晶体管计算机 特点:相对电子管计算机,体积小,速度快,功耗低,可靠性高,配备显示器。
    第三阶段(1964-1980):集成电路计算机 特点:操作系统诞生。
    第四阶段(1980-至 今):超大规模集成电路计算机 特点:集成度高,速度快,体积小,价格低,用途广泛。
    第五阶段( f u t u r e) :生物计算机&&量子计算机 …

  2. 计算机的分类
    超级计算机、大型计算机、迷你计算机(普通服务器)、工作站、微型计算机(个人计算机)

  3. 计算机的体系与结构
    冯·诺伊曼体系:将程序指令数据一起存储的计算机设计概念结构,存储器+控制器+运算器+输入设备+输出设备。
    冯·诺伊曼体系
    现代计算机的结构:以存储器为核心,解决冯·诺伊曼体系瓶颈问题(CPU与存储设备之间的性能差异)。
    在这里插入图片描述

  4. 计算机的层次
    在这里插入图片描述

  5. 计算机的字符与编码集
    字符编码集的历史:ASCII码 –> Extended ASCII码
    中文编码集:GB2312、GBK、Unicode(统一码、万国码)

二 计组之组成篇

  1. 计算机的总线与I/O设备
    a.计算机的总线(Bus)
     概述:连接多个设备或者接入点的数据传输通路。
    作用:解决不同设备之间的通信问题。
     分类:片内总线(高集成度内部的信息传输线)、系统总线(细分为:数据总线&地址总线&控制总线,是CPU、主内存、IO设备、各组件之间的信息传输线)
     总线的仲裁:为了解决总线使用权的冲突问题,三种方法:链式查询、计时器定时查询、独立请求。
    b.常见的输入输出设备
     字符输入设备:键盘
     图形输入设备:鼠标、数位板、扫描仪
     图像输出设备:显示器、打印机、投影仪
    c.输入输出接口的通用设计
     数据线:I/O设备与主机进行数据交换的传送线(单向&双向)。
     状态线:I/O设备状态向主机报告的信号线。
     命令线:CPU向I/O设备发送命令(读写信号、启动停止信号)的信号线。
     设备选择线:主机选择I/O设备进行操作的信号线。
    d.CPU与I/O设备的通信
     程序中断:提供低速设备通知CPU的一种异步的方式,CPU可以在高速运转的同时兼顾低速设备的响应。
     直接存储器访问(DMA):
    在这里插入图片描述

  2. 计算机的存储器
    a.存储器的分类:
     按照存储介质:半导体存储器(内存、U盘、固态硬盘)、磁存储器(磁带、磁盘)
     按照存取方式:随机存储器RAM(随机读取,与位置无关)、串行存储器(按顺序查找,与位置有关)、只读存储器ROM(只读不写)
    b.存储器的层次结构
    在这里插入图片描述
    缓存-主存层次:局部性原理,在CPU与主存之间增加一层速度快容量小的Cache,解决主存速度不足的问题。
    主存-辅存层次:局部性原理,主存之外增加辅助存储器,解决主存容量不足的问题。
    局部性原理:是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。
    在这里插入图片描述
    c.计算机的主存储器
     内存RAM(随机存取存储器Random Access Memory):通过电容存取数据,掉电将丢失所有数据。
    d.计算机的辅助存储器
    e.计算机的高速缓存
     工作原理:命中率是衡量缓存的重要性能指标,理论上CPU每次都能从高速缓存取数据的时候,命中率为1。
    在这里插入图片描述
    在这里插入图片描述
    高速缓存的替换时间:当缓存没有数据,需要从主存载入数据的时候。
    高速缓存的替换策略:随机算法、先进先出算法(FIFO)、最不经常使用算法(LFU)、最近最少使用算法(LRU)。

  3. 计算机的CPU
    a.计算机的指令系统
     机器指令的形式:操作码(指明指令所要完成的操作)+地址码(给出操作数或操作数的地址);
     机器指令的操作类型:数据传输、算术逻辑操作、移位操作、控制指令;
     机器指令的寻址方式:指令寻址(顺序寻址+跳跃寻址)、数据寻址(立即寻址(速度快)+直接寻址(寻找操作数简单)+间接寻址(寻址范围大,速度慢))
    b.计算机的控制器
     作用:控制器是协调和控制计算机运行的。
     组成:程序计数器(存储下一条指令的地址)、时序发生器(发送时序脉冲)、指令译码器(控制器的主要部件之一,翻译操作码+地址码)、指令寄存器(控制器的主要部件之一,从主存或缓存存取计算机指令)、主存地址寄存器(保存当前CPU正要访问的内存地址单元)、主存数据寄存器(保存当前CPU正要读或写的主存数据)、通用寄存器(比一般专用寄存器大,可以暂时存放或传送数据或指令,可保存ALU的运算中间结果)。
    c.计算机的运算器
     作用:进行数据运算加工。
     组成:数据缓冲器(输入缓冲暂时存放外设送过来的数据,输出缓冲暂时存放送往外设的数据)、ALU(算术逻辑运算)、状态字及寄存器(存放运算状态和运算控制信息)、通用寄存器(比一般专用寄存器大,可以暂时存放或传送数据或指令,可保存ALU的运算中间结果)。
    d.计算机指令执行的过程
     指令执行过程:取指令-分析指令-执行指令
    (3-10-0629)
    CPU的流水线设计:因运算器和控制器不能同时工作,CPU的综合利用率并不高,所以CPU的流水线设计可以提高CPU的利用率,提高大概3倍。

三 计组之计算篇

  1. 进制运算的基础知识
    进位制:即进制,是一种计数方式,亦称进位计数法,有限种数字符号来表示无限的数值。
    传送门——>关于进制转换推荐看文
  2. 二进制数据的表示方法
    a.有符号数和无符号数
    原码表示法:0表示正数,1表示负数,规定符号位位于数值的第一位;表达简单,容易理解,但运算复杂。
    b.二进制的补码表示法
    定义:(4-4-0104)
    引入目的:为了消除减法(未完全实现)引入补码的概念,使用正数代替负数。
    规律:负数的补码等于反码+1,如十进制数-7,反码表示为1,1000,补码表示为1,1001。
    举个小例子计算题:(4-4-0622)
    c.二进制的反码表示法
    定义:(4-5-0216)
    引入目的:找出原码和补码之间的规律,消除转换过程中的减法操作。
    规律:负数的反码等于原码除符号位外按位取反,如十进制数-7,原码表示为1,0111,反码表示为1,1000
    举个小例子计算题:(4-5-0330)
    d.小数的二进制补码表示
    定义:(4-6-0032)
    上述两个整数的反码补码计算规律同样适用。
  3. 二进制数据的运算
    a.定点数与浮点数
    定点数:小数点固定在某个位置。
    浮点数的表示格式:符号、阶码、尾数
    (4-7--555)
    浮点数的表示范围:单精度± (2-2^-23) × 2127
    双精度± (2-2^-52) × 21023 其中大于浮点数绝对值最大的数为上溢,小于绝对值最小的数据为下溢
    浮点数的规格化:尾数使用纯小数、尾数最高位必须是1。
    b.定点数的加减法运算
    加法运算:数值位与符号位一同运算,并将符号位产生的进位自然丢掉(模2^n舍去)。
    (4-8-0107)
    举两个小栗子计算题(整数和小数):(4-8-0509)(4-8-0607)
    减法运算:将B[补码]转换成-B[补码]来计算,其中-B[补码]=B[补码]连同符号按位取反,末尾加1,例如B[补码]=1,0010101 ,则-B[补码]=0,1101011
    举个小栗子计算题:(04 08-1654)
    c.浮点数的加减法运算
    步骤:对阶(使得阶码一致,尾数才可以运算)–>尾数求和–>尾数规格化–>舍入–>溢出判断
    运算:先进行对阶,后与定点数的加减法相同。
    举个小栗子计算题:
    (4-9-1315)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    d.浮点数的乘除法运算
    乘法:阶码相加,尾数求积。
    除法:阶码相减,尾数求商。

四 计组之实践篇

  1. 实现双向链表
    单向链表:节点1–>节点2–>节点3–>节点4–>节点5 其中每一个节点都有下一个节点的地址或引用。
    双向链表:节点1⇋节点2⇋节点3⇋节点4⇋节点5 每一个节点都有上一个和下一个节点的地址和引用。
    双向链表优点:可以快速找到上/下节点,也可以快速去掉链表中的某一个节点。
    传送门——>实现双向链表
  2. 实现FIFO缓存置换算法
    淘汰缓存时,把最先进入链表的结点淘汰掉。
    传送门——> 实现FIFO缓存置换算法
  3. 实现LRU缓存置换算法
    传送门——> 实现LRU缓存置换算法
  4. 实现LFU缓存置换算法
    传送门——> 实现LFU缓存置换算法

五 重要知识点及笔&面试常考题目

传送门——>计算机组成原理试题1
传送门——>计算机组成原理试题2
传送门——>计算机组成原理试题3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128595.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 双因素身份认证系统的技术特点_mfa多因素认证

    双因素身份认证系统的技术特点_mfa多因素认证一般的状况下,用户通常使用的网络登录办法为:用户名称+密码。在密码为静态的状况下,将会产生某些问题,比如为了维护密码安全性,必须严格规定密码的长度、复杂性(例如:中英文数字夹杂,大小写间隔,长度须超过8个字符以上)及定期更换的频率。  用户为了方便记忆,常常习惯使用特殊的数字,例如家人的生日、自己的生日、身高体重、电话或门牌号码等,此种方法极不安全。  只要利用黑客工具,如字典攻击法等便能在短时间

    2022年10月24日
  • mysql执行计划看是否最优

    mysql执行计划看是否最优

    2021年11月26日
  • 将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…

    将三维数组中的同名的键拆分成三维数组的每个数组中包括原来不同的二维数组的键…

  • Java全局变量(成员变量)和局部变量的区别

    Java全局变量(成员变量)和局部变量的区别前言:学习变量之前若对static修饰符不理解,理解可能比较吃力。一、下面先大致介绍java中static关键字的作用1:为某特定数据类型或对象分配单一的存储空间,而与创建对象的个数无关。2:静态变量被所有的对象所共享,在内存中只有一个副本,它当且仅当在类初次加载时会被初始化。3:简单来说就是被static修饰后的值可以直接类名.值进行引用,而无需new一个对象进行调用4.static特点static翻译为“静态”所有static关键字修饰的都是类相关的,类级别的。所有static修饰的,都是采用“

  • “undefined reference to“ 问题汇总及解决方法 ——非常非常好的一篇文章

    “undefined reference to“ 问题汇总及解决方法 ——非常非常好的一篇文章转载地址:https://segmentfault.com/a/1190000006049907?utm_source=tuicool&utm_medium=referral在实际编译代码的过程中,我们经常会遇到”undefinedreferenceto”的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几

  • nginx反向代理和正向代理的区别是什么_nginx负载均衡的三种方式

    nginx反向代理和正向代理的区别是什么_nginx负载均衡的三种方式nginx反向代理和正向代理的区别是什么?下面本篇文章就来给大家介绍一下,希望对你们有所帮助。什么是正向代理?正向代理是一个位于客户端和原始服务器(originserver)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端才能使用正向代理。什么是反向代理?反向代理(ReverseProxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服.

    2022年10月23日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号