精华内容
下载资源
问答
  • 数据结构,计算机网络,数据库,计算机组成原理,操作系统这些在大学期间一定要掌握好来,因为现在互联网大厂面试都爱考察这些内容,一句话,计算机基础,yyds! 可能大家第一个问题是,这些课需要哪些先学? 讲真,...

    大家好,我是小林哥。

    作为自学CS过来的老学长,看过中国mooc、b站、网易云课堂很多视频,期间踩了不少坑,这次掏心掏肺前来跟分享下,网上的资源是免费的,但是找到质量好的是需要时间成本的!

    数据结构,计算机网络,数据库,计算机组成原理,操作系统这些在大学期间一定要掌握好来,因为现在互联网大厂面试都爱考察这些内容,一句话,计算机基础,yyds!

    可能大家第一个问题是,这些课需要哪些先学?

    讲真,这些都是独立的课程,关联性不会大到说学这个课前要先学另外一个课,所以大家不要担心这个问题,它不是问题!

    可能大家也会问,大学课程还没讲到这些,可以自己提前学吗?

    完全没问题啊!切莫跟着学校的课程学习,到大三的时候你就发现,按照学校的进度来学习,你的知识量根本就不能去面试的,你会被面试官吊打怀疑自己是不是计算机专业,这不是你的问题,这本来就是大多数高校的问题,学的东西并不一定是和现在企业所需求的技能,所以大家要提前知道的这个事,不要到大三大四才明白,这个时候已经来不及准备啦!

    其实这些计算机基础完全是可以自学的,不管你是不是计算机专业的同学,只要你认认真真跟着网课和自己看书学习,绝对超过大多数所谓的科班毕业的同学!

    我也整理一套系统化学习cs的书籍,数据结构,计算机网络,数据库,计算机组成原理,操作系统这些统统都有。

    这次分享给大家,点击获取方式计算机必读书籍(含下载方式)包含:数据结构,计算机网络,数据库,计算机组成原理,操作系统等等。

    好了,接下里的课程绝对高质量,是我自己在自学的时候,筛选出来的!

    计算机网络

    计算机网络微课堂

    《计算机网络微课堂》这个视频是湖南科技大学老师制作的,PPT 的动图是我见过做的最用心的了,一看就懂的佳作,而且也适合考研人,因为每个视频末尾都有往年的考题分析。

    B 站视频链接:计算机网络微课堂视频

    在这里插入图片描述

    计算机网络(谢希仁第七版)-方老师

    大学学习计算机网络配套的教材是谢希仁的,如果想根据此教材看视频学习的,可以看方老师讲解的计算机网络,看方老师的视频,你会觉得是一位漂亮的小姐姐在跟你讲课,方老师不仅颜值高,而且声音也甜,当然最重要是课程质量得到了很多人的认可。

    B 站视频链接:计算机网络(谢希仁第七版)-方老师

    在这里插入图片描述

    图解网络

    另外提一句,我在csdn共输出了 20 多篇图解网络系列的文章,总字数高达 15W 字,并且手绘的图共有 500 张,收获了很多读者的认可和支持,不少读者跑来感激我,说我的图解网络在面试中帮助到他们,不少人拿到了阿里、腾讯、字节等大厂的Offer。

    在这里插入图片描述

    为了方便阅读我把图解网络整理成了PDF,大家可以作为面基突击的手册,现在开源给大家下载:图解网络 PDF 下载地址

    操作系统

    操作系统 - 清华大学

    b栈关于操作系统课程资源很多,我在里面也看了不同老师讲的课程,觉得比较好的入门级课程是《操作系统 - 清华大学》,该课程由清华大学老师向勇和陈渝授课,虽然我们上不了清华大学,但是至少我们可以在网上选择听清华大学的课嘛

    B 站视频链接:操作系统-清华大学

    在这里插入图片描述

    操作系统 - 哈工大

    清华大学的操作系统视频课讲的比较精炼,涉及到的内容没有那么细,《操作系统 - 哈工大》李治军老师授课的视频课程相对就会比较细节,老师会用 Linux 内核代码的角度带你进一步理解操作系统,也会用生活小例子帮助你理解。

    B 站视频链接:操作系统 - 哈工大

    在这里插入图片描述

    图解系统

    学成操作系统后,也写了图解操作系统系列文章,现在已整理成PDF。

    在这里插入图片描述

    现在开源给大家下载:突击大厂面试,图解系统开放下载!

    计算机组成

    国防科大的《大学计算机基础CAP》

    这门课非常好,他是为非理工科专业的学生准备的一些计算机的基础知识,让你先有一个全局的思想。

    视频地址:大学计算机基础CAP_国防科技大学_中国大学MOOC(慕课)

    计算机组成原理(唐朔飞)

    如果想系统学习计算机组成原理,可以看哈工大这门计算机原理课,依据的教材正是大学配套的书。

    B 站视频链接:计算机组成原理(唐朔飞)

    在这里插入图片描述

    CSAPP(深入理解计算机系统)

    CSAPP 这本书相信大家都听说过吧?

    这本书是从程序员的角度学习计算机系统是如何工作的,通过描述程序是如何映射到计算机系统上,程序是如何执行的,以及程序效率低下的原因,这样的方式可以让大家能更好的知道「程序与计算机系统」的关系。

    涵盖的内容非常多,有计算机组成 + 操作系统 + 汇编 + C语言 + Linux系统编程,涉猎的领域比较多,是一本综合性的书,更是一本程序员修炼内功的指引书。

    单纯看书会很乏味,我们可以结合视频一起学。这本书的视频课程是国外老师录制的,但是在 b 站已经有好人帮我们做了中文字幕,看了这视频,相当于在国外上了一门计算机课的感觉。

    B站地址:csapp视频

    在这里插入图片描述

    数据库

    SQL 进阶教程

    无意间在 B 站发现一个学习 SQL 很牛逼的视频,主讲人是外国的工程师,这门课程适合初学者和进阶,这位工程师全程以「实战」的方式来授课,案例经典,课程真的通熟易懂,很简练。

    B 站视频链接:SQL 进阶教程

    在这里插入图片描述

    MySQL 高级教程

    如果你想学习 MySQL 底层原理,这个视频是个不错的选择,常见的面试题都会提到。

    B 站视频链接:MySQL 高级教程

    在这里插入图片描述

    Redis 教程

    学习 Redis 的同学,可以看看这个视频,每一个视频都很详细了说明了对应的知识点,而且不仅只是说了基础应用,还涉及了底层原理和互联网场景面试的知识点。

    B 站视频链接:Redis 教程

    算法与数据结构

    浙江大学 - 数据结构

    强烈推荐浙江大学的算法与数据结构课程,该课程非常系统,也很经典,适合小白入门算法。

    B 站视频链接:浙江大学 - 数据结构与算法

    在这里插入图片描述

    数据据结构与算法这方面的话是非常非常非常重要的。

    在我看来,笔试能力在秋招中要占据 60% 的重要程度。首先笔试不过,你根本没有面试的展示机会。其次面试中也会反复让你手写代码,以字节为例,每一轮面试都是1-2道编程题,有时候不怎么聊简历;百度每一轮面试有一道编程题。现在公司的面试模式就是这样,如果代码没搞出来,大概率会被淘汰。并且最窒息的是这些代码题都不简单,一般都是 leetcode中等到hard难度。

    刷题主要可从以下三个渠道:
    剑指offer:https://www.nowcoder.com/ta/coding-interviews
    leetcode: https://leetcode-cn.com/problemset/algorithms/
    近期面试中常考题:https://www.nowcoder.com/activity/oj

    剑指 offer 作为大经典,是一定要刷两遍以上的,很多题都是面试时的原题。里面包含了很多笔试常用的思想方法。反复看,反复研。我一开始每天10题,过两遍以后,要求自己每天快速过剑指一遍。

    leetcode 由于题目十分之多,刷完是不可能的。我的意见是 leetcode作为你弱项的专项练习。 leetcode右侧有标签分类,如下图:

    另外在巩固完弱项的情况下,建议将leetcode前300题刷熟练,国内大厂面试出的代码题 80% 都是这个范围内的。

    好东西 - 图解网络 + 图解操作系统

    小林在 CSDN 写了很多图解网络和操作系统的系列文章,很高兴收获到很朋友的认可和支持,正好最近图解网络和操作系统的文章连载的有 20+ 篇了,也算有个体系了。

    在这里插入图片描述

    所以为了方便大家阅读,小林把自己原创的图解网络和图解操作系统整理成了 PDF,一整理后,没想到每个图解都输出了 15 万字 + 500 张图,质量也是杠杠的,有很多朋友特地私信我,看了我的图解拿到了大厂的offer。

    图解系统 PDF 开源下载:图解系统 PDF 下载地址(点击)

    图解网络 PDF 开源下载:图解网络 PDF 下载地址(点击)

    好咧,本次分享就到这啦。

    肯定会有很多人收藏, 大家记得收藏前,先点个赞嘛!好的文章值得被更多人看到

    展开全文
  • 计算机组成原理期末复习【超实用】

    万次阅读 多人点赞 2019-08-14 00:07:42
    计算机组成原理(第二版)唐朔飞 编著(课本有些地方还不错,可以下载电子版看看) 五道解答题30‘=9’(9个知识点)+6’+6’+4’+5’ 我依据老师的考题范围手动整理,有什么问题or想添加的知识点请在评论下方留言...

    计算机组成原理(第二版)唐朔飞  编著(课本有些地方还不错,可以下载电子版看看)

    b站2小时讲解链接 https://www.bilibili.com/video/BV1x4411q7Fz/初次录讲解视频,各种差错和画音不同步请各位谅解,我录到后面都想放弃了,只当是做做博文的推广,想着知识点都写得挺明白了,我个人看博文比看视频效率高,实在没想到挺多人宁愿看视频。我后台还看到有些人说听不懂,如果全都听不懂的话,我建议你们另寻高人指点。我和你们一样是学生,我也有很多没搞明白为什么的,只知道大概怎么算、怎么画。还有,大家别再问我要word文档了,我发到CSDN上的底稿全都删了,可能在你们看来是混课设和考试的救命稻草,在我看来只是一堆再无用处的垃圾。

    五道解答题30‘=9’(9个知识点)+6’+6’+4’+5’ 橙色题号的是当年我遇到的考试题,后面计算题记不清楚确切考了哪些,但掌握了做题技巧就问题不大了。

    我依据老师的考题范围手动整理,有什么问题or想添加的知识点请在评论下方留言!实时更新,助诸位共进步!

    一、解答题

    1. 影响流水线性能的因素主要有哪几种?请简要加以说明。P348

        结构相关:是当多条指令进入流水线后,硬件资源满足不了指令重叠执行的要求时产生的。不同指令争用同一功能部件产生资源冲突。

        数据相关:是指令在流水线中重叠执行时,当后继指令需要用到前面指令的执行结果时发生的。可能改变对操作数的读写访问顺序。

        控制相关:是当流水线遇到分支指令和其它改变PC值的指令时引起的。

    2. 为了保证DRAM的存储信息不遭破坏,必须在电荷漏掉前就进行充电,称为刷新。常见的刷新方式有哪三种,试分析它们间的区别。P86

        集中刷新:是在规定的一个刷新周期内,对全部存储单元集中一段时间逐行进行刷新,此刻必须停止读/写操作。

        分散刷新:是指对每行存储单元的刷新分散到每个存储周期内完成。

        异步刷新:是前两种方式的结合,既可缩短“死时间”,又充分利用最大刷新间隔2ms的特点。

    3. 说明计算机九大寻址方式及有效地址EA计算方法。P311

        立即寻址:无需寻址        隐含寻址:无需寻址       直接寻址:EA=A        间接寻址:EA=(A)         相对寻址:EA=(PC)+A

        基址寻址:EA=(BR)+A    变址寻址:EA=(IX)+A    寄存器寻址:EA=Rj    寄存器间接寻址:EA=(Rj)

    4. 按传输信息的不同,系统总线可分为哪几类?并加以简单描述。P43

        数据总线:用来传输各种功能部件间的数据信息,是双向传输总线,其位数与机器字长、存储字长有关,一般为8/16/32位。

        地址总线:主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。

        控制总线:用来发送各种控制信号的传输线,通常对任意控制线而言,它的传输是单向的。

    5. 试说明具有Cache-主存结构的计算机,CPU在访问存储器时的工作流程。P110

        CPU欲读取主存某字时,有两种可能:一种是所需要的字已经在缓存中,即可直接访问Cache;另一种是所需的字不在Cache内,此时需将该字所在的主存整个字块一次调入Cache中(Cache与主存之间是字块传输)。当Cache未满时,主存块可被调入缓存块中,称该主存块与缓存块建立了联系。当Cache已满时,无法接收来自主存块的信息,就由Cache内的替换机构按一定的算法从Cache内移除哪块返回主存,并把新的主存块调入Cache中。

    6. 在写操作时,要考虑Cache和主存的数据一致性的问题,试说明写回法和写直达法的区别。P113

        写回法(拷回法):写操作时只把数据写入Cache而不写入主存(减少了主存的写操作次数),写操作时间=访Cache时间。但当(读操作且Cache已满时)Cache数据被替换出来时才写回主存,增加了Cache复杂性。

         写直达法(存直达法):写操作时数据既写入Cache又写入主存,写操作时间=访存时间,它能随时保证主存与Cache的数据始终一致,但增加了访存次数。(读操作时不涉及对主存的写操作,更新策划较容易实现。)

    7. 说明补码定点加减运算,判断溢出的两种方法。P239-240

         一位符号位判断溢出:参加操作的两个数(减法时即为被减数和“求补”后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出。

         两位符号位判断溢出:若结果双符号位相同,则未溢出;若双符号位不同,则溢出。最高符号位为真结果符号。

    8. 说明Cache-主存的地址映像有哪三种方式,说明他们的基本映像原理。P117

        直接映射:将主存空间按Cache的尺寸分区,每区内相同的块号映像到Cache中相同的块位置。优:实现简单;缺:不够灵活

        全相连映射:主存中的每一个字块可映射到Cache任何一个字块位置上,当访问一个块中的数据时,块地址要与Cache块表中的所有地址标记进行比较以确认是否命中。

        组相连映射:是直接映射和全相连映射的一种折中方案,这种方案将存储空间分为若干组,各组间是直接映射,而组内各块间是全相连映射。

    9. 试说明指令周期,机器周期,时钟周期之间的关系。P386

         一个指令周期包含若干个机器周期,一个机器周期又包含若干个时钟周期(节拍),每个指令周期内的机器周期数可以不等,每个机器周期内的节拍数也可以不等。

    10. 试说明单译码方式(线选法)和双译码方式(重合法)的区别。P75

          存储芯片内的地址译码器有两种方式:一种是线选法,适用于地址线较少的芯片。地址信号只需经过一个方向的译码器就可以选中某一存储单元的所有位,结构较简单。

          另一种是重合法,适用于地址线较多的芯片。地址线分为两组,分别经行地址译码器和列地址译码器,通过两者“与”选中存储单元才能进行读/写。

    11. 分别说明一下名词MAR,MDR,CU,IR,PC的中文名称及该器件的主要功能。P14-16

         MAR是存储器地址寄存器,用来存放欲访问的存储单元的地址,其位数对应存储单元的个数。

         MDR是存储器数据寄存器,用来存放从存储体某单元取出or存入的代码,其位数与存储字长相等。

    如4K × 8位的存储芯片,有log2(4K)=12条地址线,8条数据线

         CU是控制单元,用来分析当前指令所需完成的操作,并发出各种微操作命令序列,用以控制所有被控对象。

         IR是指令寄存器,用来存放当前指令,IR的内容来自MDR。

         PC是程序计数器,用来存放当前欲执行指令的地址,它与主存的MAR间有一条直接通道且具有自动加1功能,即可自动形成下一条指令的地址。

    12. 计算机的五大基本组成是什么?P9

          运算器:用来完成算术运算和逻辑运算,并将运算的中间结果暂存在运算器里。

          存储器:用来存放数据和程序。

          控制器:用来控制、指挥程序和数据的输入、运行以及处理运算的结果。

          输入设备:用来将人们熟悉的信息形式转换为机器能识别的信息形式,常见的有键盘、鼠标等。

          输出设备:可将机器运算结果转换为人们熟悉的信息形式,如打印机输出等。

    13. 设某计算机采用微程序控制器,试说明微程序控制器的基本工作原理(即CPU执行指令时的操作过程)。P405

          首先将用户程序的首地址送到PC,然后进入

          取指阶段:①将取指周期微程序首地址M→CMAR

                            ②取微指令:将对应控存M地址单元中的第一条微指令读到控存数据寄存器中,记为CM(CMAR)→CMDR

                            ③产生微操作指令:第一条微指令的操作控制字段中为“1”的各位发出控制信号,如PC→MAR、I→R,命令主存    接收程序首地址并进行读操作。

                            ④形成下一条微指令的地址:此微指令的顺序控制字段指出了下一条微指令的地址为M+1,将M+1送至CMAR,即Ad(CMDR)→CMAR

                            ⑤取下一条微指令:将对应控存M+1地址单元中的第二条微指令读到CMDR中,即CM(CMAR)→CMDR

                            ⑥产生微操作指令:由第二条微指令的操作控制字段中对应“1”的各位发出控制信号,如M(MAR)→MDR使对应主存2000H地址单元中的第一条机器指令从主存中读出,送至MDR中。

                            ⑦形成下一条微指令地址:将第二条微指令下地址字段指出的地址M+2送至CMAR,即Ad(CMDR)→CMAR

          执行阶段:①取数指令微程序首地址的形成:当取数指令存入IR后,其操作码OP(IR)直接送到微地址形成部件,该部件的输出即为取数指令微程序的首地址P,且将P送至CMAR,记作OP(IR)→微地址形成部件→CMAR

                            ②取微指令:将对应控存P地址单元中的微指令读到CMDR中,记为CM(CMAR)→CMDR

                            ③产生为操作命令:由微指令操作控制字段中对应“1”的各位发出控制信号,如Ad(IR)→MAR、I→R,命令主存读操作数。

                            ④形成下一条微指令地址:将此条微指令下地址字段指出的P+1送至CMAR,即Ad(CMDR)→CMAR

    14. 试说明汉明码的校验原理(即如何生成汉明码,以及汉明码的检验原理),默认偶校验。P110

         汉明码的生成步骤:①确定校验位的位数 2^k ≥ n + k +1

                                         ②确定校验位的位置

                                         ③分组

                                         ④生成校验位的值

                                         ⑤得出结论

          检验原理:将已知的汉明码按照前三步正常进行,到第四步时,用H接收P和D一起异或,然后把H倒序排列,若都为0,即无错。否则,该序列对应的二进制位置出错。

    15. 试说明循环冗余校验码的校验原理。P144

           循环冗余校验码的生成步骤:①确定校验位的位数 r

                                                          ②写出信息多项式 M(x)

                                                          ③将信息多项式左移 r 位,得到 M(x)·x^r

                                                          ④用 M(x)·x^r 除以生成多项式 G(x),得到 r 位校验位

                                                          ⑤M(x)·x^r+R(x) 得到CRC码

         检验原理:根据余数判出错位,取反纠错。

    二、计算题

    第6章  运算方法和运算部件

    定点原码一位乘:符号位单独计算,运算数取绝对值参与计算。

    定点原码两位乘:提高了乘法速度,但仍基于重复相加和移位的思想,且随着乘数位数的↗,重复次数↗,仍影响乘法速度。计算较复杂,不常考,自行看书!

    并行阵列乘法器:可大大提升乘法速度。(拓展)

    定点补码一位乘:分校正法比较法(Booth法)。校正法中被乘数符号任意,乘数分正、负两种情况。若乘数为正,则按原码一位乘的算法计算,符号位不用另外计算,被乘数的符号位参与计算若乘数为负,则按原码一位乘的算法计算,被乘数和乘数取绝对值参与计算,最后加上 [-x]补 校正。虽然可将乘数和被乘数互换,使乘数保持+,不必校正,但当两数均为-时必须校正。∵Booth的运算规则不受乘数符号的约束 ∴控制线路较简明,在计算机中普遍使用,常考!

    定点补码两位乘:自行看书!

    区别:补码乘法中,乘积得符号位是在运算过程中自然形成的。而原码乘法中,符号位与数值部分分开计算。

    困扰作者得问题是:被乘数和乘数互换位置的其它情况在此不一 一列举,以上三个例子,两个源于书本,同一组数据,书上的校正法却不能全部适用。望指点!

    P8应=1,感谢网友指正

    较复杂,不怎么考,在此不赘述!

    第四章  主存储器

            

    第七章  指令系统

    教材P324

    第3篇  中央处理器

    教材P384

    看下方!!

        ←参考P412例10.6,上题改正为

    已确定是对的!

    第四章  存储系统

    书上P122原题!

    鉴于我用公式写易误导大家,我上传书上原解如下:

    4.4  辅助存储器

    1. 若某磁盘有两个记录面,每面80个磁道,每磁道18扇区,每扇区存512字节,计算该磁盘的容量是多少?

    解:         18×512×80×2B=1440KB

    举个栗子( o=^•ェ•)o

    如果对你有帮助,可以给点小赏。记得关注我呦!

    展开全文
  • 这次分享给大家,点击获取方式:计算机必读书籍(含下载方式)包含据结构与算法、计算机网络、数据库、计算机组成原理、操作系统、Java、C/C++ 优质的计算机专业书籍 计算机网络 操作系统 计算机组成原理 数据结构...

    大家好,我是小林哥。

    平日里,大家都喊程序员加班多很辛苦,动不动就掉头发,但干的还是很香的,毕竟大多数公司钱还是给的很到位的,今年毕业应届生的我见到好多动不动就月薪 20K~30K 的,真让人两眼泪酸酸,当然这离不开他们大学期间的努力。

    讲真,没什么家庭背景的人,选择当程序员确实是比较好的选择了,原因有二:

    • 首先,当今互联网、AI 人工智能、大数据等都是高速发展的行业,自然人才需求很多,薪资也相对其他传统行业高;
    • 第二,纯粹看你技术能力,只要自己愿意付出努力,技术能力肯定会慢慢提高上来,而且现在比起几十年前,学习资料也越来越多,且越来越优质;

    虽然我们身处时代的红利,但是它是高速发展的,技术也是在一直迭代更新的,停止学习,只会被时代 game over,相当很残酷,所以日常学习是我们程序员,不可缺少的一个习惯。学到秃,你不想变强,都会变强。

    那说到学习,那必然离不开书呀,小林也在豆瓣逛一圈,把高分的书推荐给大家

    其实这些计算机基础完全是可以自学的,不管你是不是计算机专业的同学,只要你认认真真跟着网课和自己看书学习,绝对超过大多数所谓的科班毕业的同学!

    我也整理一套系统化学习cs的书籍,数据结构,计算机网络,数据库,计算机组成原理,操作系统这些统统都有。

    这次分享给大家,点击获取方式计算机必读书籍(含下载方式)包含据结构与算法、计算机网络、数据库、计算机组成原理、操作系统、Java、C/C++

    计算机网络

    如果你要入门 HTTP,首先最好书籍就是《图解 HTTP》了,作者真的做到完完全全的「图解」,小林的图解功夫还是从这里偷学到不少,书籍不厚,相信优秀的你,几天就可以看完了。

    在这里插入图片描述

    如果要入门 TCP/IP 网络模型,我推荐的是《图解 TCP/IP》,这本书也是以大量的图文来介绍了 TCP/IP 网络模式的每一层,但是这个书籍的顺序不是从「应用层 —> 物理层」,而是从「物理层 -> 应用层」顺序开始讲的,这一点我觉得不太好,这样一上来就把最枯燥的部分讲了,很容易就被劝退了,所以我建议先跳过前面几个章节,先看网络层和传输层的章节,然后再回头看前面的这几个章节。

    在这里插入图片描述

    另外,你想了解网络是怎么传输,那我推荐《网络是怎样连接的》,这本书相对比较全面的把访问一个网页的发生的过程讲解了一遍,其中关于电信等运营商是怎么传输的,这部分你可以跳过,当然你感兴趣也可以看,只是我觉得没必要看。

    在这里插入图片描述

    对于 TCP/IP 网络模型深入学习的话,推荐《计算机网络 - 自顶向下方法》,这本书是从我们最熟悉 HTTP 开始说起,一层一层的说到最后物理层的,有种挖地洞的感觉,这样的内容编排顺序相对是比较合理的。

    在这里插入图片描述

    但如果要深入 TCP,前面的这些书还远远不够,赋有计算机网络圣经的之说的《TCP/IP 详解 卷一:协议》这本书,是进一步深入学习的好资料,这本书的作者用各种实验的方式来细说各种协议,尤其是 TCP 部分写的很好(我也只看了这书的 TCP 部分,嘻嘻),这本书买第一版本就好了,第二版本翻译的有问题。

    在这里插入图片描述

    操作系统

    我看的第一本操作系统书是《现代操作系统》,这本书也是大家力推的入门操作系统的教材,有很多常见的面试题都基本是出自这里的,比如哲学家就餐、读者写者等问题。如果单纯看书觉得比较枯燥,可以搭配 B 站清华大学操作系统课程一起学习。

    在这里插入图片描述

    华为鸿蒙操盘手陈海波大神,也出了一本新书《现代操作系统:原理与实现》,是由上海交通大学陈海波、夏虞斌领衔撰写。由浅入深介绍现代操作系统经典理论与方法,结合前沿研究与工业界实践,面向真实场景与真实问题。全新打造 ChCore 微内核系列课程实验,建立对操作系统的第一手实践经验。

    在这里插入图片描述

    这本被称为神书的《深入理解计算机系统》,豆瓣评分高达 9.8 分,这本书严格来说不算操作系统书,它是以程序员视角理解计算机系统,不只是涉及到操作系统,还涉及到了计算机组成、C 语言、汇编语言等知识,是一本综合性比较强的书。

    在这里插入图片描述

    计算机组成原理

    小林最近写的有关 CPU 文章,算是计算机组成的系列了。计算机组成大部分人会认为是硬件开发的人才需要接触,软件开发的人不用了解,我觉得这个观点是不对的,你写的程序也是运行在计算机上的,并且实际上计算机组成原理有些知识还是跟软件有关系的,那就有一本很适合软件开发人员了解的书 —— 《计算机组成与设计 硬件/软件接口》

    在这里插入图片描述

    数据结构与算法

    数据结构与算法尤其重要呀,校招大厂就特别爱考察,还没练起算法的同学,抓紧啦!

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    数据库

    Mysql 两本高分的书。

    在这里插入图片描述

    在这里插入图片描述

    Redis 经典之作,重点看前三章,redis 的数据结构,持久化,主从复制,哨兵模式,这些都是常考的面试题。

    在这里插入图片描述

    Java

    小林虽然不是搞 Java 的,但是请教了搞 Java 大佬,我把他推荐的书也放在这啦,Java 同学可以参考参考。
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    C/C++

    对于想入门 C 语言的同学,可以看看这本黑皮经典书籍。

    在这里插入图片描述

    C++ 最好的入门书,就是这本了。

    在这里插入图片描述

    入门完 C++ 下,我们也不能停下脚步,快马加鞭进入进阶的节奏。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    Linux

    Linux 命令入门的好书,跟着鸟叔一起敲 Linux 命令,很快就能入门了。

    在这里插入图片描述

    熟悉了 Linux 命令后,我们就从编程的角度来学习 Linux,这里有几本好书。
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    什么?你还想再深入 Linux 系统,那就来啃 Linux 内核代码吧,保证你对操作系统由有新的认识。在这里插入图片描述

    在这里插入图片描述

    絮叨絮叨

    小林在 CSDN 写了很多图解网络和操作系统的系列文章,很高兴收获到很朋友的认可和支持,正好最近图解网络和操作系统的文章连载的有 20+ 篇了,也算有个体系了。

    在这里插入图片描述

    所以为了方便大家阅读,小林把自己原创的图解网络和图解操作系统整理成了 PDF,一整理后,没想到每个图解都输出了 15 万字 + 500 张图,质量也是杠杠的,有很多朋友特地私信我,看了我的图解拿到了大厂的offer。

    图解系统 PDF 开源下载:图解系统 PDF 下载地址(点击)

    图解网络 PDF 开源下载:图解网络 PDF 下载地址(点击)


    最后祝大家前程似锦,在编码的道路上一马平川。

    如果文章对你帮助的话,可以给我点个赞,点个收藏,评论下更先显温情!

    展开全文
  • 【超详细】计算机组成原理总结及思维导图

    万次阅读 多人点赞 2018-06-20 08:59:46
    计算机组成 第一章 计算机系统概论 冯诺依曼型计算机特点 1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成 2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。...

    计算机组成

    第一章 计算机系统概论

    冯诺依曼型计算机特点

    • 1.计算机由运算器,控制器,存储器,输入和输出设备5部分组成
    • 2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制表示。
    • 3.指令由操作码和地址码组成
    • 4.指令在存储器中按执行顺序存放,由指令计数器(即程序计数器PC)指明要执行的指令所在的储存单元地址,一般按顺序递增,但可按运算结果或外界条件而改变
    • 5.机器以运算器为中心,输入输出设备与存储器间的数据传送都通过运算器

    区别以运算器为中心的计算机还是存储器的方法

    • 看输入设备能否直接与存储器相连,是的话就是以存储器为中心

    计算机系统

    • 硬件
      • 结构
        • 主机
          • cpu
            • ALU运算器
            • CU控制器
          • 存储器
            • 主存
            • 辅存
        • I/O
          • 输入设备
          • 输出设备
      • 主要技术指标
        • 机器字长
          • CPU一次能处理的数据位数
        • 存储容量
          • 存储容量=存储单元个数×存储字长
        • 运算速度
          • 单位时间执行指令的平均条数,MIPS
    • 软件
      • 系统软件
        • 用来管理整个计算机系统
          • 语言处理程序
          • 操作系统
          • 服务性程序
          • 数据库管理系统
          • 网络软件
      • 应用软件
        • 按任务需要编制成的各种程序

    第三章 运算方法和运算部件

    数据的表示方法和转换

    • 机器数正0负1
      • 符号数值化的带符号二进制数,称为机器数。
    • 真值:符号位加绝对值
    • 余三码:在8421码的基础上,把每个编码都加上0011
      • 当两个余三码想加不产生进位时,应从结果中减去0011;产生进位时,应将进位信号送入高位,本位加0011
    • 格雷码:任何两个相邻编码只有1个二进制位不同,而其余3个二进制位相同
    • 8421码
      • 权值从高到低为8、4、2、1
        • 算术运算时,需对运算结果进行修正。 方法:如果小于、等于(1001)2,不需要修正;否则加6修正

    带符号的二进制数据在计算机中的表示方法及加减法运算

    • 原码
      • 定义
        • 最高位为符号位0/1+数值的绝对值形式
      • 特点
        • (1)值+0,-0的原码分别为00000、10000,形式不唯一;
        • (2)正数的原码码值随着真值增长而增长
          •  负数的原码码值随着真值增长而减少
            
        • (3)n+1位原码表示定点整数范围-(2n-1)——2n-1
          •  n+1位原码表示定点小数范围 -(1-2-n)——1-2-n
            
      • 运算
        • 绝对值相加减,由数值大小决定运算结果符号
    • 补码
      • 定义,特点和运算
        • 运算:
          结果不超过机器所能表示范围时,[X+Y]补=[X]补+[Y]补
          减法运算:
          [X–Y]补=[X+(–Y)]补=[X]补+[–Y]补
        • 结论
          • 负数的补数=模+负数
          • 互为补数的绝对值相加=模
          • 在补数中,减法运算即加法运算
        • 定义
          • 定义法,即[X]补=2·符号位+X (MOD 2)
          • X为正数,则符号0+X的绝对值;X为负数,则X的绝对值取反+1。
        • 特点
          • 数值零的补码表示唯一
          • 正数补码码值随着真值增大而增大,负数补码码值随着真值增大而增大
          • n+1位补码所表示定点整数范围- 2n——2n-1,n+1位补码所表示定点小数范围-1——1-2-n
      • 加法运算逻辑事例
        • 过程
        • 加减法运算的溢出处理
          • 溢出定义
            • 当运算结果超出机器数所能表示的范围
          • 加减中,可能产生溢出的情况
            • 可能出现溢出
              • 同号数相加
              • 异号数相减
            • 不可能出现溢出
              • 异号数相加
              • 同号数相减
          • 判断溢出的方法
            • 法一:当符号相同两数相加,结果符号和加数(或被加数)不相同,则溢出
              • fa,fb表示两操作数(A,B)的符号位,fs为结果的符号位
            • 法二:任意符号相加,如果C=Cf,则结果正确,否则溢出;
              • C为数值最高位的进位,Cf为符号位的进位
            • 法三:采用双符号相加,如果fs1=fs2,则结果正确,否则溢出;
              • 运算结果的符号位为fs2;
              • 多符号位的补码,叫做变形补码;
              • 如果采用双符号位,当数为小数时,模m=4;当数为整数时,模m=2的n+2次方
    • 反码
      • 定义
        • a.定义法,即[X]反=(2-2-n)·符号位+X (MOD 2-2-n)
        • b.X是正数,[X]反=[X]原;X是负数,符号+数值取反。
      • 特点
        • 数值零的反码表示不唯一
        • 正数反码码值随着真值增大而增大,负数反码码值随着真值增大而增大
        • n+1位反码所表示定点整数范围- (2n-1)——2n-1,n+1位反码所表示定点小数范围-(1-2-n)——1-2-n
      • 加减运算特点
        • 在机器数范围内,反码运算满足[X+Y]反=[X]反+[Y]反
          ,[X-Y]反=[X]反+[-Y]反
      • 反码运算在最高位有进位时,要在最低位+1,此时要多进行一次加法运算,增加了复杂性,又影响了速度,因此很少采用
      • 由于反码运算是以2-2的-次方为模,所以,当最高位有进位而丢掉进位(即2)时,要在最低位+/-1
    • 移码
      • 由来及窍门
        • 为了从码值直接判断对应真值的大小,所以引进移码
        • [X]补的符号位取反,即得[X]移
      • 特点
        • 最高位是符号位,1表示正,0表示负
        • 数据0有唯一的编码
        • 移码码值随着真值增大而增大
        • n+1位移码所表示定点整数范围- 2n——2n-1, n+1位移码所表示定点小数范围-1——1-2-n
        • 计算机中,移码常用于表示阶码,故只执行加、减运算
        • 计算机中,移码运算公式需要对结果进行修正
      • 浮点数的阶码运算
        • 移码定义:[X]移=2的n次方+X
        • 补码定义:[X]补=2的n+1次方+Y
        • 阶码求和公式
          • [X]移+[Y]补=[X+Y]移 mod2的n+1次方
          • [X]移+[-Y]补=[X-Y]移
          • 判溢方法
            • 双符号位参加运算,最高符号位恒置0
            • 当结果最高符号位=1则溢出
              • 低位符号=0,则上溢;低位符号=1,则下溢;
            • 当结果最高符号位=0则未溢出
              • 低位符号=0,负数;低位符号=1,正数
          • 说明:如果阶码运算的结果溢出,上述条件不成立。此时,使用双符号位的阶码加法器,并规定移码的第二个符号位,即最高符号位恒用0参加加减运算,则溢出条件是结果的最高符号位为1。此时低位符号为0时,表明结果上溢;为1时,表明结果下溢。当最高符号位为0时,表明没有溢出,低位符号位为1,表明结果为正;为0时表明结果为负。
    • 补,反,原,移码的相互转换
      • 反码-》原码
        • 方法:符号位不变,正数不变,负数数值部分取反。
      • 补码-》原码
        • 方法1:正数不变,负数数值部分求反加1。
        • 方法2:串行转换
          • 从最后开始数,遇到第一个“1”,除第一个“1”不变,前面数字分别取反
      • 移码-》原码
        • 方法:移码转换为补码,再转换为原码
    • 数据从补码和反码表示形式转换成原码
      • 自低位开始转换,从低位向高位,在遇到第一个1之前,保存各位的0不变,第一个1也不变,以后得各位按位取反,最后保持符号位不变,经历一遍后,即可得到补码
    • 定点数和浮点数
      • 定点数
        • 小数点固定在某个位置上的数据
          • 32位定点小数、定点整数补码的范围
            • 32位定点小数-1~1-2-31
            • 32位定点整数-231~231-1
      • 浮点数
        • 根据IEEE754国际标准,常用的浮点数有两种格式
          • Nmax=Mmax2的Emax
            Nmin=Mmin
            2的Emax
          • 单精度(32位)=8位阶码+24位尾数
            • 单精度浮点数(32位),阶码8位(含一位符号位),尾数24(含一位符号位),取值范围:-2的127次方~(1-2的-23次方)*2的127次方
          • 双精度(64位)=11位阶码+53位尾数
            • 双精度浮点数(64位),阶码11位(含一位符号位),尾数53位(含一位符号位),取值范围:-2的1023次方~(1-2的-52次方)*2的1023次方
        • 为了保证数据精度,尾数通常用规格化形式表示:当R=2,且尾数值不为0时,其绝对值应大于或等于(0.5)10
          • 左规
          • 右规
        • 小数点位置可以浮动的数据。
        • 表示形式:N = M · RE
        • 计算机中存储形式
          • Ms+Es+E(n位)+M(m位)
            • 阶码E,一般为整数,用补码或者移码表示;
            • 尾数M,一般为规格化的定点小数,用补码表示;

    二进制乘法运算

    • 定点原码一位乘法
      • 两个原码数相乘,其乘积的符号为相乘两数符号的异或值,数值则为两数绝对值之积
        • [X·Y]原=[X]原·[Y]原=(X0⊕Y0)|(X1X2…Xn) · (Y1Y2…Yn)
      • 几点结论
        • 从低到高根据乘数每位0、1决定相加被乘数还是0;
        • 相加数每次左移,最后一起求积;
        • 符号由异或决定
      • 表达式
      • 电路框架
      • 修正
        • 1.在机器内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每每求得一个相加数,就与上次部分积相加
        • 2.人工计算时,相加数逐次向左偏移一位,由于最后的乘积位数是乘数(或被乘数)的两倍,如按此算法在机器中运算,加法器也需增到两倍。观察计算过程很容易发现,在求本次部分积时,前一次部分积的最低位不再参与运算,因此可将其右移一位,相加数可直送而不必偏移,于是用N位加法器就可实现两个N位数相乘
        • 部分积右移时,乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接受部分积右移出来的一位,因此,完成乘法运算后,A寄存器中保存乘积的高位部分,乘数寄存器中保存乘积低位部分
      • 例题
      • 控制流程图
    • 定点补码一位乘法
      • 表达式
      • [X·Y]补=[X]补·(-Y0+Y1·2-1+….Yn·2-n)
      • 注意:此处为双符号位,当最后乘积高位为负数时,需要补充加上[-|x|]补的操作

    二进制除法

    • 加减交替法
      • 当余数为正时,商上1,求下一位商的办法是,余数左移一位,再减去除数;当余数为负时,商上0,求下一位商的办法是,余数左移一位,再加上除数。此方法不用恢复余数,所以又叫不恢复余数法。但若最后一次上商为0而又需得到正确余数,则在这最后扔需恢复余数

    浮点数的运算方法

    • 浮点数的加减法运算
      • 1.对阶操作
        • 求出△E,再对小的进行移位
      • 2.尾数的加减运算
      • 3.规格化操作
        • 规则简化是符号位和数值最高位不同,即00.1xxxx或11.0xxxx
      • 4.舍入
        • 超出表示范围的高位为1舍入
      • 5.检查阶码是否溢出
    • 浮点数的乘除法运算
      • 1.浮点数阶码运算(移码)
        • 牢记公式
          • [X+Y]移=[X]移+[Y]补
          • [X–Y]移=[X]移+[–Y]补
      • 2.按照一位乘或加减交替除运算
        • 先确定符号,在列式子计算

    运算部件

    • ABC寄存器作业
    • 定点运算部件
    • 浮点运算部件
      • 由阶码运算部件和尾数运算部件组成

    数据校验码

    • 码距
      • 任意两个合法码之间不相同的二进制位数的最小值
        • 要具有差错能力,则码距>1
        • 合理增大码距,就能提高发现错误的能力
    • 鉴定方法
      • 有无差错能力
      • 是否能合理增大码距
    • 奇偶校验码
      • 能发现数据代码中一位或奇数个位出错情况的编码
      • 实现原理是使码距由1增加到2
        • 步骤1:在字节高位补充一位,即校验位
        • 步骤2:依据图3.10电路形成原始数据D8…D1的校验位值
        • 步骤3:将9位数据写入主存
        • 步骤4:读出该数据时,读取数据D8…D1通过图3.10判定合法性
      • 电路图
      • 结论
        • (1)奇偶校验码只能发现一位或奇位错,且不能确定出错位置
        • (2)奇偶校验码的码距=2
    • 海明校验码
      • 海明码位号和校验位位号的关系
        • Pi的位置在2的i-1次方,但是除了最高位
      • 笔记
        • 3,5,7||3,6,7||5,6,7
      • 电路图
      • 海明码码距为4
      • 纠一位错,查一位错
        • 2∧r≥k+r+1
      • 纠一位错,查两位错
        • 2∧(r–1)≥k+r
    • 循环冗余校验码(CRC)
      • CRC码可以发现并纠正信息存储或传送过程中连续出现的多位错误
      • CRC码一般是指k位信息码之后拼接r位校验码
      • 模2运算
        • 模2加减
        • 模2乘除
        • 异或逻辑
      • CRC的译码与纠错
        • 更换不同的待测码字可以证明:余数与出错位的对应关系是不变,只与码制和生成多项式有关

    第四章 主存储器

    主存储器处于全机中心低位

    辅助存储器或称为外存储器,通常用来存放主存的副本和当前不在运行的程序和数据

    主存储器的类型

    • 随机存储器RAM
    • 非易失性存储器

    主存储器的主要技术指标

    • 主存容量
      • 64×8等等
      • 计算机可寻址的最小信息单元是一个存储字
      • 主存储器存储单元的总数
    • 存取速度
      • 由存储器存取时间和存储周期表示
    • 存储器存取时间
      • 启动一次存储器操作(读/写)到完成该操作所经历的时间
    • 存储周期
      • 连续启动两次独立的存储器操作所间隔的最小时间

    主存储器的基本操作

    • CPU通过使用AR(地址寄存器)和DR(数据寄存器)和主存进行数据传送
    • 若AR为K位字长,DR为n位字长,则允许主存包含2∧k个可寻址单元
    • CPU与主存采取异步工作方式,以ready信号表示一次访存操作的结束

    读/写存储器

    • 随机存储器(RAM)按存储元件在运行中能否长时间保存信息分为静态存储器和动态存储器
    • 静态存储器,利用触发器保存信息,只要不断电,信息就不会丢失
      • 电路简图
      • MOS静态存储结构图
    • 动态存储器,利用MOS电容存储电荷来保存信息,需要不断给电容充电才能使信息来保存信息
      • 电路简图
      • 16K×1位动态存储器框图
      • 再生
        • 集中式
        • 分散式
        • 时间小于或等于2ms
        • 行读出再生

    非易失性半导体存储器

    • 只读存储器ROM
      • 只读不能写
    • 可编程序的只读存储器PROM
      • 一次性写入
    • 可擦可编程序的只读存储器EPROM
      • 可多次写入、读出
    • 可电擦可编程序只读存储器E2PROM
      • 可多次读出但写入次数有限
    • 快擦除读写存储器Flash Memory
      • 重复写入、读出

    存储器的组成与控制

    • 存储器容量扩展
      • 位扩展:用多个存储器芯片对字长进行扩充
      • 字扩展:增加存储器中字的数量,提高存储器的寻址范围
      • 字位扩展,假设一个存储器的容量为M×N位,若使用L×K位存储器芯片,那么,这个存储器共需要(M/L)×(N/K)个存储器芯片

    多体交叉存储器

    • 提高访存速度的方式
      • 采用高速器件
      • 采用层次结构
      • 调整主存结构
    • 计算机中大容量的主存可由多个存储体组成,每个存储体都具有自己的读写线路,地址寄存器和数据寄存器,称为"存储模块"。这种多模块存储器可以实现重叠与交叉存取
    • 第i个模块M的地址编号应按下式给出:M×j+i
    • 连续地址分布在相邻的不同模块内,而同一模块内的地址都是不连续的

    第五章:指令系统

    指令系统的发展

    • 20世纪70年代末人们提出了便于VLSI实现的精简指令系统计算机,简称RISC,同时将指令系统越来越复杂的计算机称为复杂指令系统计算机,简称CISC

    指令格式

    • 结构(操作码+地址码)
      • 操作码
      • 操作数的地址
      • 操作结果的存储地址
      • 下一条指令的地址
    • 地址码
      • 零地址指令
      • 一地址指令
        • 寻址范围 224 = 16 M
          • 2次访存
      • 二地址指令
        • 寻址范围 212 = 4 K
          • 4 次访存
      • 三地址指令
        • 寻址范围 28 = 256
          • 4 次访存
      • 多地址指令
        • 寻址范围 26 = 64
          • 4 次访存
    • 指令字长
      • 取决因素
        • 操作码的长度
        • 操作数地址的长度
        • 操作数地址的个数
      • 指令字长 固定
        • 指令字长 = 存储字长
      • 指令字长 可变
        • 按字节的倍数变化
      • 对准边界存放
        • 不连续存放数据
        • 按字节编址
          • a.半字地址最低位恒为0
          • b.字地址最低两位恒为0
          • c.双字地址的最低三位恒为0
        • 减少访存次数,浪费存储空间
      • 不 对 准 边 界 存 放
        • 连续存放数据
        • 节约存储器空间,但增加访存次数,对多字节数据存在调整高 低字节位置的问题
    • 寻址方式
      • 确定本条指令的数据地址
      • 下一条要执行的指令地址的方法
    • 指令操作码的扩展技术
      • 指令操作码的长度决定了指令系统中完成不同操作的指令数
      • 若某机器的操作码长度固定为K位,则它最多只能有2^K条不同指令
      • 指令操作码两种格式
        • 固定格式
          • 优点:对于简化硬件设计,减少指令译码时间非常有利
          • 缺点:指令少,浪费地址
        • 可变格式(分散地放在字的不同字段)
          • 优点:指令多,缩短指令平均长度,减少程序总位数,增加指令字所能表示的操作信息
          • 缺点:译码复杂,控制器的设计难度增大
      • 拓展方法的一个重要原则
        • 使用频度(即指令在程序中出现概率)高的指令应分配短的操作码,使用频度低的指令相应地分配较长的操作码
    • 指令系统的兼容性
      • 保持系统向上兼容

    精简指令系统计算机(RISC)——用于小型机

    复杂指令系统计算机(CISC)——用于大型机

    第六章:中央处理器

    计算机工作过程

    • 加电——》产生reset信号——》执行程序——》停机——》停电
    • 产生reset信号的任务
      • 任务一:使计算机处于初始状态
      • 任务二:从PC中取出指令地址
    • 控制器作用是协调并控制计算机各部件执行程序的指令序列

    控制器的组成

    • 控制器的功能
      • 取指令
        • 发出指令地址,取出指令的内容
      • 分析指令
        • (1)对操作码译码产生操作相应部件的控制信号
        • (2)根据寻址方式形成操作数地址
      • 执行指令
        • (1)根据分析指令后产生控制信号、操作数地址信号序列,通过CPU及输入输出设备的执行实现每条指令的功能
        • (2)结果回送存储器
        • (3)形成下条指令的地址
      • 控制程序和数据的输入和结果输出
      • 对异常情况和某些请求的处理
        • 异常情况的处理:例如算术运算的溢出、数据传送奇偶错
        • 某些请求的处理
          • “中断请求”信号
          • DMA请求信号
    • 控制器的组成
      • 程序计数器(PC)
        • 即地址寄存器,用来存放当前正在执行的指令地址或即将要执行的下一条指令地址
      • 指令寄存器(IR)
        • 用以存放当前正在执行的指令,以便在指令执行过程中控制完成一条指令的全部功能
      • 指令译码器或操作码译码器
        • 对指令寄存器中的操作码进行分析解释,产生相应的控制信号
      • 脉冲源及启停线路
        • 脉冲源参数一定评率的脉冲作为整个机器的时钟脉冲,是机器周期和工作脉冲的基准信号,在机器刚加电时,还应产生一个总清信号(reset)
      • 时序控制信号形成部件
        • 当程序启动后,在CLK时钟作用下,根据当前正在执行的指令的需要,产生相应的时序控制信号,并根据被控制功能部件的反馈信号调整时序控制信号
          • 控制存储器
          • 微指令寄存器
            • 控制字段+下址
      • 周期概念
        • 指令周期
          • 完成一条指令所需的时间,包括取指令、分析指令、执行指令
        • 机器周期
          • 也称为CPU周期,是CPU从内存中读取一个指令的时间,通常等于取指周期
        • 时钟周期
          • 称为节拍脉冲或T周期,是基准脉冲信号
      • 三条假设
        • 程序是存放在主存中的,当执行完一条指令后才从主存中取下一条指令(非流水线)
        • 指令的长度是固定的,并限制了寻址方式的多样化
        • 在程序运行前,程序和数据都已存在主存中
    • 指令执行过程(运算器和控制器配合)
      • 组成控制器的基本电路
        • 具有记忆功能的触发器以及由它组成的寄存器,计数器和存储单元
        • 没有记忆功能的门电路及由它组成的加法器,算术逻辑运算单元(ALU)和各种逻辑电路
      • 举例
        • 加法
          • 取指令——》计算操作数地址——》取操作数——》执行结果并运算送结果
        • 要能看懂时序图
          • 哪些指令在对应的时间有效
        • 条件转移指令
          • 取指令——》计算地址
      • 控制器的功能就是按每一条指令的要求产生所需的控制信号
      • 产生控制信号的方法
        • 微程序控制
        • 硬布线控制

    微程序控制计算机的基本工作原理

    • 基本概念
      • 微指令
        • 在微程序控制的计算机中,将由同时发出的控制信号所执行的一组微操作
      • 微命令
        • 将指令分为若干条微指令,按次序执行这些微指令。组成微指令的操作即微命令
      • 微程序
        • 计算机的程序由指令序列构成,而计算机每条指令的功能均由微指令序列解释完成,这些微指令序列的集合就叫做微程序
      • 控制存储器
        • 微程序一般是存放在专门的存储器中的,由于该存储器主要存放控制命令(信号)与下一条执行的微指令地址(简称下址)
        • 存储单元内容
          • (1)微指令的控制信号——控制位
          • (2)下条微指令的地址——下址字段
        • 存储芯片:ROM
      • 执行一条指令实际上就是执行一段存放在控制存储器中的微程序
    • 实现微程序控制的基本原理
      • 控制信号(23条)
      • 书上P123页为加法的过程
      • 微指令格式:控制字段+下址字段
      • 23个控制位,12个下址位——》容量为4K
      • 取址微指令的操作对所有指令都是相同的,所以是一条公用的微指令,其下址由操作码译码产生
    • 微程序控制器
    • 时序信号及工作脉冲的形成
    • 停机和停电的区别
      • 停机
        • 电压:稳定
          • 存放内容:保持
            • 重启PC内容:断点指令地址
      • 停电
        • 电压:消失
          • 存放内容:RAM的内容消失
            • 重启PC内容:第一条指令地址

    微程序设计技术

    • 如何缩短微指令字长
      • 直接控制法(容量太小)
        • 编译方法:每一位代表一个控制信号,直接送往相应的控制点
        • 优点:控制简单
        • 缺点:微指令字长过大
      • 字段直接编译法
        • 选出互斥的微指令
        • 每个字段都要留出一个代码,表示本段不发出任何指令(000)
        • 优点:节省微指令的字长
        • 缺点:增加了额外的硬件开销
      • 字段间接编译法
        • 指令之间相互联系的情况
        • 举例:A为0-7,B为0-3,如果是直接编译——3+2=5,如果是间接编译——3+1=4
        • 编码方法:在字段直接编译法中,译码输出端要兼由另一字段中的某些微命令配合解释
        • 优点:减少了微指令长度
        • 缺点:可能削弱微指令的并行控制能力,同时增加硬件开销
      • 常熟源字段E(了解)
    • 如何减少微指令长度
      • 现行微指令/微地址
        • 现行微指令:当前正在执行的指令
        • 现行微地址:存放现行微指令的控制器存储单元
      • 后继微指令/微地址
        • 后继微指令:下一条要执行的微指令
        • 后继微地址:存放后继微指令的控制器存储单元
      • 增量与下址字段结合产生后继微指令的方法
        • 下址字段分成:转移控制字段BCF和转移地址字段BAF
          • BCF:控制微程序的转移情况
          • BAF:转移后的微指令所在地址
        • BAF有两种情况
          • 与uPC的位数相等——转移灵活,但增加微指令长度
          • 比uPC短——转移地址收到限制,但可缩短微指令长度
        • 优点
          • 微指令的下址字段很短,仅用于选择输入uPC计数器的某条线路有效
        • 缺点
          • 微程序转移不灵活,使得微程序在控存中的物理空间分配有困难
      • 多路转移方式
        • 一条微指令存在多个转移分支的情况称为多路转移
      • 微中断
        • 1.微中断请求信号是由程序中断请求信号引起的
        • 2.在完成现行指令的微程序后响应该微中断请求
        • 3.由硬件产生对应微中断处理程序在控存中的入口地址
    • 如何提高微程序的执行速度
    • 微指令格式
      • 水平型微指令——直接控制,字段编译(直接、间接)
        • 特点:在一条微指令中定义并并行执行多个微命令
      • 垂直型微指令
        • 特点:不强调实现微指令的并行控制功能
        • 定义:采用微操作码编译法,由操作码规定微指令的功能
    • 微程序控制存储器
      • 一般采用ROM存储器
      • 也可采用RAM,为防止断电后内容消失,则必须开机后将外存中存放的微程序调入控存RAM,然后才能执行程序。
      • 当前为了能不断扩展指令系统,通常采用ROM+RAM
    • 动态微程序设计
      • 定义:能根据用户要求改变微程序
      • 优点:是计算机能更灵活、有效的适应于各种不同的应用目标
    • 控制存储器的操作(P136)
      • 串行方式
      • 并行方式——比串行多了微指令寄存器
        • 微周期=max(取微指令时间,执行微指令时间)
        • 由于取微指令、执行微指令同时进行,故对于某些后继微地址的产生根据处理结果而定的微指令,则延迟一个微周期再取微指令

    硬布线控制的计算机(RISC)——特点快

    • 形成操作控制信号的逻辑框图(P141)
    • 操作控制信号的产生
      • 取值周期cy1所产生的信号对所有指令都是相同的,即与当前执行的指令无关,逻辑式得到最简单的形式
      • 通常,同一个控制控制信号在若干条指令的某些周期(或再加上一些条件)中都需要,为此需要把它们组合起来
      • 同种类型的指令所需要的控制信号大部分是相同的,仅有少量区别
      • 在确定指令的操作码时(即对具体指令赋予二进制操作码),为了便于逻辑表达式的化简以减少逻辑电路数量,往往给予特别关注
    • 设计组合逻辑电路从而产生需要的控制信号的步骤
      • 1.实际逻辑问题2.真值表3.公式化简4.逻辑电路图
    • 设计目标
      • 使用最少的电路元件达到最高的操作速度

    流水线工作原理

    • 几点结论
      • 每条指令的执行时间不变
      • 每条指令处理结果的时间缩短
      • 流水线处理速率最高时=流水线处于满载的稳定状态
      • 流水线处理速率最低时=流水线未满载状态
      • 为了满足在重叠时间段不同指令的机器周期能够完成指定的操作,将时间段=操作完成的最长时间
      • 为了保证一个周期内流水线的输入信号不变,相邻时间段之间必须设置锁存器或寄存器
      • 除了指令执行流水线,还有运算操作流水线
    • 相关问题
      • 流水线阻塞(P163-6.15)
        • 数据相关产生
          • 假设第二条指令需要的操作数是第一条指令运算的结果,那么出现了数据相关
        • 指令执行时间不同产生
        • 程序转移的影响
        • 异常情况响应中断

    第七章:存储系统

    存储系统的层次结构

    • cache->主存->辅存

    高速缓冲存储器

    • cache的工作原理
      • 局部性原理
      • 主存地址和cache地址(P166 图7.2)
      • 块长
        • 块长一般取一个主存周期所能调出的信息长度(一般为16个字)
      • cache的容量和块的大小是影响cache的效率的重要因素
      • 命中率
        • CPU所要访问的信息是否在cache中的比率,而将所要访问的信息不在cache中的比率称为失败率
      • 一致性策略
        • 标志交换方式(写回法)
        • 通过式写入(写通法)
        • 写操作直接对主存进行,而不写入cache
      • cache的存取时间
        • 平均存取时间=h*tc+(1-h)(tc+tm)
      • 最好替换策略
        • 按照被替换的字块是下一段时间最少使用的,由替换部件实现
    • cache组织
      • 地址映像
        • 直接映像
          • cache中许多空的位置被浪费
          • 主存地址:主存字块标记+cache字块地址+字块内地址
        • 全相联映像
          • 成本太高而不能采用
          • 主存地址:主存字块标记+字块内地址
          • 优点
            • 方式灵活,缩小了块发生冲突的概率
          • 缺点
            • 增加了标识位位数
            • 增加了寻找主存块在cache中对应块的时间
        • 组相联映像
          • 直接映像和全相联映像的折衷
          • 主存地址:主存字块标记+组地址+块内地址

    虚拟存储器

    • 存储管理部件(MMU)
      • 现代计算机一般都有辅助存储器,但具有辅存的存储系统不一定是虚拟存储系统
      • 虚拟存储系统的特点
        • 允许用户程序用比主存大的多的空间来访问主存
        • 每次访存都要进行虚实地址的转换

    第八章:辅助存储器

    半导体存储器可随机访问任一单元,而辅助存储器一般为串行访问存储器

    辅助存储器的种类

    • 磁表面存储器
      • 数字式磁记录
        • 硬盘、软盘和磁带
      • 模拟式磁记录
        • 录音、录像设备
    • 光存储器
      • 光盘

    串行存储器

    • 顺序存取存储器
    • 直接存取存储器

    辅助存储器的技术指标

    • 存储密度
      • 定义:单位长度或单位面积磁层表面磁层所存储的二进制信息量
      • 道密度
        • 沿磁盘半径方向单位长度的磁道数称为道密度,单位为道/英寸tpi或道/毫米tpmm
      • 位密度或线密度
        • 单位长度磁道所能记录二进制信息的位数叫位密度或线密度,单位为位/英寸bpi或位/毫米bpmm
      • 每个磁道所存储的信息量是一样的
    • 存储容量
      • C = n × k × s
    • 寻址时间
      • 平均寻址时间Ta=平均找道时间Ts+平均等待时间Tw
      • 辅存的速度
        • 寻址时间
        • 磁头读写时间
    • 数据传输率
      • Dr = D × V
    • 误码率
    • 价格

    硬磁盘存储器的类型

    • (1) 固定磁头和移动磁头
    • (2) 可换盘和固定盘

    磁盘存储器

    • 温彻斯特磁盘简称温盘
    • 磁盘存储器由驱动器(HDD),控制器(HDC)和盘片组成
    • 最外面的同心圆叫0磁道,最里面的同心圆假设称为n磁道
    • 驱动器的定位驱动系统实现快速精准的磁头定位
    • 主轴系统的作用是带动盘片按额定转速稳定旋转
    • 数据控制系统的作用是控制数据的写入和读出,包括寻址,磁头旋转,写电流控制,读出放大,数据分离
    • 磁盘控制器有两个方向的接口
      • 与主机的接口
      • 与驱动器(设备)的接口

    光盘

    • 采用光存储技术
      • 利用激光写入和读出
      • 第一代光存储技术
        • 采用非磁性介质
          • 不可擦写
      • 第二代光存储技术
        • 采用磁性介质
          • 可擦写
    • 光盘的存储原理
      • 只读型和只写一次型
        • 热作用(物理或化学变化)
      • 可擦写光盘
        • 热磁效应

    第九/十章:输出输出(I/O)设备/系统

    设备控制器(I/O)的基本功能

    • 实现主机和外部设备之间的数据传送
    • 实现数据缓冲,以达到主机同外部设备之间的速度匹配
    • 接受主机的命令,提供设备接口的设备,并按照主机的命令控制设备

    I/O 编址方式

    • (1) 统一编址:用取数、存数指令
    • (2) 不统一编址:有专门的 I/O 指令

    I/O 与主机的连接方式

    • 辐射式连接
      • 每台设备都配有一套
      • 控制线路和一组信号线
      • 不便于增删设备
    • 总线连接
      • 便于增删设备

    I/O设备

    • 人机交互设备
      • 键盘、鼠标等
    • 计算机信息的驻留设备
      • 硬盘、光盘等
    • 机——机通信设备
      • MODEN等

    为什么要设置接口?

      1. 实现设备的选择
      1. 实现数据缓冲达到速度匹配
      1. 实现数据串 并格式转换
      1. 实现电平转换
      1. 传送控制命令
      1. 反映设备的状态
      • (“忙”、“就绪”、“中断请求”)

    中断服务程序的流程

    • (1) 保护现场
      • 程序断点的保护
      • 寄存器内容的保护
    • (2) 中断服务
      • 对不同的 I/O 设备具有不同内容的设备服务
    • (3) 恢复现场
      • 出栈指令
    • (4) 中断返回
      • 中断返回指令

    单重中断和多重中断

    • 单重 中断
      • 不允许中断 现行的 中断服务程序
    • 多重 中断
      • 允许级别更高 的中断源
      • 中断 现行的 中断服务程序

    DMA 方式

    • 主存和 I/O 之间有一条直接数据通道
    • CPU 和 I/O 并行工作
    • DMA 的三种工作方式
      • (1) CPU暂停方式
      • (2) CPU周期窃取方式
      • (3)直接访问存储器
    • DMA 接口功能
      • (1) 向 CPU 申请 DMA 传送
      • (2) 处理总线 控制权的转交
      • (3) 管理 系统总线、控制 数据传送
      • (4) 确定 数据传送的 首地址和长度,修正 传送过程中的数据地址和长度
      • (5) DMA 传送结束时,给出操作完成信号
    • DMA 传送过程
      • 预处理、数据传送、后处理

    外设接口

    • 设备与主机相连时,必须按照规定的物理互连特性、电气特性等进行连接,这些特性的技术规范称为接口标准

    计算机组成原理思维导图图片

    思维导图下载地址

    github:希望大家可以给一个star,谢谢支持

    码云:希望大家可以给一个star,谢谢支持

    展开全文
  • 计算机组成

    千次阅读 2020-03-22 16:27:42
    本文延续第一篇博客的部分,主要整理一下计算机组成 计算机硬件系统 电脑大致由显示器(输出设备),主机,鼠标以及键盘(输入设备)组成 计算机硬件是指计算机系统中的由电子,机械等组成的物理装置,这些硬件...
  • 计算机组成原理核心知识点总结&面试笔试要点

    万次阅读 多人点赞 2019-08-13 14:04:07
    作为一名计算机专业的学生,计算机组成原理、计算机网络、操作系统这三门课程可以说是专业核心基础课,是至关重要的,其内容是一名合格的coder所必备的知识集;非科班出身的程序员要是想要有所提升,也需要认真学习...
  • 计算机组成原理总结及知识网图

    万次阅读 多人点赞 2021-01-19 23:52:03
    计算机组成原理知识摘要,个人复习整理,仅供参考
  • 如果学校没有的话,就找网上的计算机组成原理题库,题就那么多,很大概率会出原题。 更新,好吧,我只考了90分,因为我写在后面的大题我以为有的不会出,所以部分没仔细学习。 快要考计算机组成原理,但不会。 不要...
  • 计算机组成原理

    万次阅读 多人点赞 2019-06-02 14:13:55
    计算机组成原理 1.第一台电子计算机何时何地诞生?英文全称? 1946年2月14日 美国宾夕法尼亚大学 ENIAC:电子数字积分计算机 Electronic(电子的) Numerical(数字的) Integrator(综合者) And Calculator...
  • 2021考研王道计算机408(王道计算机组成原理+王道操作系统+王道计算机网络+王道数据结构) 链接:https://pan.baidu.com/s/1aqx7YEzj9F-A41NRHrgS8A 提取码:7w2z 链接:...
  • 计算机组成原理-基本组成

    千次阅读 多人点赞 2019-09-18 15:12:34
    计算机组成原理-基本组成 本文根据徐文浩老师的计算机组成原理记录:计算机组成原理 计算机组成原理-基本组成 1 计算机组成原理知识地图 2 计算机的基本硬件组成 2.1 CPU: 中央处理器(Central Processing Unit) ...
  • 计算机组成原理复习总结

    万次阅读 多人点赞 2015-04-27 11:23:16
    计算机组成原理期末复习 一、缩写词解释: CPU:中央处理器  ALU:算术逻辑单元  I/O:输入输出接口  RAM:随机存储器  SRAM:静态随机访问存储器  DRAM:动态随机访问存储器  ROM:只读存储器  PROM:用户可编程的...
  • 计算机组成原理复习

    千次阅读 2019-10-10 11:01:39
    计算机组成原理考试题型 -· 计算机组成原理期末考试试题及答案 · 计算机组成原理考试重点
  • 计算机科班生学计算机组成原理的意义何在呢?

    千次阅读 多人点赞 2021-07-28 08:43:54
    期间一直有不少读者问计算机组成原理怎么学,大部分人觉得这个学科跟硬件有关系就非常怕。 计算组成原理确实是分为两个方向,一个是硬件电路的,一个是软件程序的。 我自己本身是干开发的,所以我这次分享的机组资料...
  • 文章目录计算机组成原理第二章、数据的表示和运算 计算机组成原理 第二章、数据的表示和运算
  • 让你忍不住想要动手收藏的—计算机组成原理总结

    万次阅读 多人点赞 2020-04-28 14:26:17
    计算机组成原理笔记总结第1章:计算机的系统第3章:系统总线第4章:存储器一. 概述二.主存储器1.概述2. 半导体储存芯片3.随机存储器(RAM)4.只读存储器(ROM)5.存储器与CPU的连接6.存储器校验7.提高访存速度的措施...
  • 计算机组成原理知识点

    万次阅读 多人点赞 2017-09-25 11:17:08
    计算机组成原理(Computer Organization)是依据计算机体系结构,在确定且分配了硬件子系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,以及它们之间的连接关系,实现机器指令级的各种功能和特性,这...
  • 计算机组成原理(哈工大)学习笔记

    万次阅读 多人点赞 2020-07-08 08:10:46
    文章目录计算机组成原理一、计算机系统概论1.1计算机系统简介一、计算机的软硬件概念二、计算机系统的层次结构三、计算机体系结构和计算机组成1.2计算机的基本组成1.3计算机硬件的主要技术指标一、机器字长二、运算...
  • 计算机组成及层次结构

    千次阅读 热门讨论 2019-03-29 16:23:04
    在总结操作系统之前有必要把计算机组成说明一下,从而引出操作系统。 计算机组成中最经典的体系结构就是冯诺依曼体系,打心眼儿里欣赏老爷子,下图为示,图片来自百度 其实操作系统再难脱离不了这个体系,把这个...
  • 计算机组成原理 概述

    千次阅读 2019-12-29 10:20:14
    这段时间在MOOC上学习刘宏伟教授讲的计算机组成原理,把一些学习中的重点知识和困难记下来,方便以后复习。 一、计算机系统简介 1.组成 而计算机软件分为系统软件和应用软件 2.结构层次 硬件主要包括实际...
  • 2022考研王道计算机408(王道计算机组成原理+王道操作系统+王道计算机网络+王道数据结构) 链接:https://pan.baidu.com/s/1lTcTCWugOtX-nJd-5u43Xw 提取码:f4an (备用)链接:...
  • 华中科技大学计算机组成原理慕课答案

    万次阅读 多人点赞 2020-01-26 00:09:18
    一、单项选择题 ...2、完整的计算机系统通常包括( A ) A.硬件系统与软件系统 B.运算器、控制器、存储器 C.主机、外部设备 D.主机和应用软件 3、CPU地址线数量与下列哪项指标密切相关( ...
  • 2022年考研计算机组成原理_1 概述

    万次阅读 2020-12-28 17:01:01
    概述1.1 发展历程1.2 计算机系统层次结构1.2.1 五大部件1) 存储器2) 运算器3) 控制器4) 输入设备5) 输出设备1.2.2 指令完成1.3 计算机硬件指标1.3.1 字长机器字长存储字长指令字长编址1.3.2 运算速度1) 各种周期...
  • 计算机组成原理笔记

    千次阅读 2019-01-22 15:49:27
    计算机组成原理笔记 1、总体介绍 计算机组成原理这门课程主要以单机系统为对象,介绍计算机系统的硬件组成,其核心是建立一个计算机系统的整机概念。学习完这门课程将会对计算机的硬件组织方式有一个清晰的了解,...
  • 了解了现在计算机的基本硬件组成和背后最基本的冯·诺依曼体系结构,我们就可以正式进入计算机组成原理的学习了。在学习一个一个零散的知识点之前,我整理了一份学习地图,好让你对将要学习的内容有一个总纲层面的...
  • 计算机组成原理试卷一 一、单项选择题(每小题 1 分,共 20 分) 1. 冯•诺依曼机是指计算机______。 A. 能按预先存储的程序运行 B. 提供了人机交互的界面 C. 具备了自动输入输出的功能 D. 能进行科学计算 2. ...
  • 计算机组成原理】第一章 计算机系统概论

    千次阅读 多人点赞 2018-12-06 21:23:44
    计算机组成概览: 1.1.2 计算机系统的层次结构 物理角度: 程序员角度: 系统复杂性管理的方法之一:抽象 区别两点: 计算机体系结构:程序员所见到的计算机系统的属性概念性的结构与功能特性(如:有无...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 631,868
精华内容 252,747
关键字:

计算机的组成