王道计算机组成原理考研笔记
文章平均质量分 63
考研课的笔记
看星猩的柴狗
联系方式qq:3592569640 欢迎各位师傅交流学习
IT爱好者一枚,菜狗CTF-PWN手,记录自己的学习经历,请大佬多多指点
2022/9-2023/7:算法
2023/8-2023/9:web/渗透测试
2023/10-至今:pwn
展开
-
计算机组成原理-程序中断方式完整流程
中断处理程序中还包括让其IO设备继续恢复工作(例如要输出n个字符时,此时如果是一个一个字符发起中断,那么中断处理程序还需恢复IO设备的工作或者说继续执行之前的IO指令,因为它还没执行完),及让外设准备下一个数据。当IO设备完成工作后,会给CPU发送一个中断请求表示自己准备工作已经完成,此时对应刚刚执行完的指令为K,当中断处理完返回到K+1的指令。中断响应其实可以理解为中断隐指令,可以理解为CPU为响应中断做的一些关于准备要执行中断处理程序的准备工作。这是为了防止不必要的中断干扰CPU的正常工作。原创 2024-01-17 17:18:34 · 765 阅读 · 0 评论 -
计算机组成原理-多重中断(单重中断 多重中断 中断屏蔽 )
首先中断请求寄存器各个寄存器连接各个IO设备,当过IO设备发出中断请求时,通过控制逻辑INT输出到cpu的INTR接口,CPU如果开中断,就会通过INTA给中断控制器发回一个反馈信号。然后通过中断控制器的中断判优和中断服务寄存器的处理得到中断向量地址,再经过数据总线将中断类型号传给CPU。中断发生时会将该中断源对应的屏蔽字发给各个中断源的屏蔽触发器,从而使得该中断源即使请求中断也被屏蔽。INTA该信号给中断控制器,然后从而使得中断控制器得到中断类型号。每个中断源的屏蔽字是所有中断源的屏蔽触发器组成的。原创 2024-01-17 15:09:26 · 618 阅读 · 0 评论 -
计算机组成原理-程序中断(基本概念 中断分类 流程 )
排队器的输出是对各个中断信号择优后的一个信号,此时对应一个中断源信号,此时通过中断向量地址形成部件生成中断向量地址,中断向量地址存储的指令可以跳转到中断处理程序的入口地址(中断向量就是中断处理程序的地址)为何要使用中断向量地址的形式,如果中断向量地址形成部件直接生成中断处理程序的地址,那么当中断处理程序的地址改变,那么此时需要修改中断形成部件的电路结构以生成对应的修改后的中断处理程序地址,这样很麻烦。关中断使得中断服务程序一气呵成,不会被其他中断打断,直到中断服务程序结束时再开中断。系统调用属于软件中断。原创 2024-01-14 12:30:07 · 1528 阅读 · 0 评论 -
计算机组成原理-计算机的发展(计算机系统 硬件发展 软件发展 微处理器和微计算机的发展 摩尔定律 发展趋势)
语言处理程序就是编译程序之类的调试代码就是服务程序。原创 2024-01-12 21:18:58 · 497 阅读 · 0 评论 -
计算机组成原理-BCD码(余三码 2421码 8421码)和格雷码和余三循环码
5对应的2421码可以为0101或1011,所以为了避免这种情况,规定大于等于5第一位都为1。余三循环码就是余三码通过格雷码的异或运算,所得到的一系列变权码。四个二进制为可以表示一个十进制位,还有几个冗余的情况。9+9等于18,二进制数也不在范围内,也需加6。相加的结果如果落到1010~10010都需加6。即四个二进制位对应的值必须为0~9。每个数码位上的值乘以权值。原创 2024-01-07 21:52:22 · 2932 阅读 · 0 评论 -
计算机组成原理-程序查询方式(流程图 演示过程 例题 定时查询 独占查询)
每次输一个字,就认为状态完成,CPU就会取走数据寄存器的内容。原创 2024-01-07 08:44:29 · 1525 阅读 · 0 评论 -
计算机组成原理-进位计数制(进制表示 进制转换 真值和机器树)
补到能够取对应位数的个数即可,转换依旧是从取的位数部分右边为低位,左边是高位,然后转换为对应的进制的数值。找该数等于二进制的那些位的权值的和(或者2的多少次方的和)小数部分位不够往后补0,整数部分位不够往前补0。转换为二进制后,再转化为八进制和十六进制更方便。这样十进制和转换后进制值的计算出的大小不会变。十进制的整数部分对应转换后的进制的整数部分。十进制的小数部分对应转换后的进制的小数部分。r进制的数对应的小数部分也要记得逢r进1。后来用横线表示5,所画的线可以少些。符号指的是0,1,2,3……原创 2024-01-06 22:29:45 · 474 阅读 · 0 评论 -
计算机组成原理-IO接口(作用 结构 接口和端口 端口编址 接口类型)
错误或状态监测:IO接口需要给CPU反映外设地状态,IO接口会检测连接在其设备上地外设的状态,一旦外设状态出现变化,就会修改状态寄存器,然后CPU可以通过查IO接口的状态寄存器就知道外设的状态了。数据缓存:CPU与外设的速度差距很大,有数据缓存寄存器,例如外设可以慢慢写入数据缓存寄存器,等数据缓存寄存器满了之后,CPU再很快地把数据取走。确定要操作的设备可以通过放送设备编号确定,也可以每个设备对于一组寄存器,直接对该寄存器进行操作即操作该设备。统一编址方式,此时用主存空间来存储原来IO端口存储的内容。原创 2024-01-05 16:00:06 · 622 阅读 · 0 评论 -
计算机组成原理-外部设备(输入 输出 显示器)
然后字符发生器根据ascll码和CRT控制器信号信息找到对应字形码的存储单元,将字形码输出出去。在阴极射线管控制器控制下,显存里的ascll码会一个一个的用电信号的方式送给字符发生器。对于液晶显示器和LED显示器像素,显示的方式不同而已(不像CRT用电子射的)显示存储器:存储接下来要在显示器上面播放的一帧的图像的信息。灰度级:根据比特位的不同对应的像素点颜色不同。重点关注字符显示器和显示器参数的计算。灰度级位数:每个像素点对应的位数。击打式打印机为针式打印机。分辨率前面是宽后面是高。鼠标光电式是光传感器。原创 2024-01-05 14:45:13 · 979 阅读 · 0 评论 -
计算机组成原理-输入输出系统和IO控制方式
数据寄存器:存放主机要输出到外设的数据或者外设要输入到主机的数据控制寄存器:存储某个外设需要做啥动作状态寄存器:外设的状态CPU首先通过控制总线向IO接口发出读的命令,同时可以通过地址总线指明要读入的是哪个设备此时还可以通过地址总线指明要从该设备读入的数据应该放在哪个寄存器。原创 2024-01-04 14:56:36 · 969 阅读 · 0 评论 -
计算机组成原理-总线标准(系统总线 局部总线 设备总线)
文章目录总览例子总线标准的基本概念系统总线标准局部总线标准设备总线标准对比小结为何串行总线取代并行总线总览例子总线标准的基本概念北桥芯片速度大于南桥芯片系统总线标准ISA和EISA都是并行总线Intel提出了FBS总线标准比EISA和ISA快,后来又提出来QPI总线标准,比FBS又更快局部总线标准需要更大带宽传输图像数据VESA也是并行总线,由于VESA工作频率有固定上限的(并行频率不能过高),并且局部总线受到 CPU的控制,当CPU工作频率越来越高时,VESA跟不上了Int原创 2024-01-04 10:33:05 · 1379 阅读 · 0 评论 -
计算机组成原理-总线操作和定时(同步定时方式 异步定时方式 半同步通信 分离式通信)
在T2结束时,本应该从设备准备好自己要传到数据线上的数据,但由于某些设备差异,可能需要更长时间来准备,此时需要发送给总线控制器一个反馈信号WAT,此时总线控制器就会延长几个节拍来等从设备。同步在下图中的意思就是,一个时钟周期,主设备在时钟前沿发送,从设备在时钟后沿接收处理。主设备先申请总线使用权,发送请求信号,发送完后放弃总线使用权,然后此时从设备等到准备完毕后再申请总线使用权,并将数据传输到总线上。CPU在T2阶段发出读命令,此时读命令变为低电平,并且对应地址的设备接受到命令做好准备工作。原创 2024-01-03 23:20:57 · 760 阅读 · 0 评论 -
计算机组成原理-总线仲裁(集中仲裁 分布仲裁)
每个设备都和总线控制器部件有自己的BR和BG,同时都连在一根BS,当设备1和设备n同时向设备发送BR信号时,总线控制器部件里的排队器会处理BR信号,最后通过BG向某个设备发送总线允许的信号,此时对应设备获得总线允许信号后会向BS发送信号,此时总线控制器接受到BS,那么此时设备已获得总线的使用权,将撤销发送总线允许的信号。接着当设备1使用完总线后,撤销BS信号,那么此时由于设备n依然在通过BR发送信号,因为此时总线控制器没有检测到BS信号,所以发送BG,那么BG到达设备n,设备n开始使用总线。原创 2024-01-03 09:35:50 · 1467 阅读 · 0 评论 -
计算机组成原理-总线的性能指标
一个总线周期就是指利用总线传输一组数据需要的时间申请阶段:总线仲裁,决定把总线分给设备使用寻址阶段:通过地址总线传递地址传输阶段:通过数据总线传输内容结束阶段:释放总线的使用权给其他设备使用总线时钟周期就是CPU的时钟周期有些情况一个时钟周期的上升沿和下降沿分别都进行了一次总线传输,此时一个总线时钟周期包含多个总线周期当称总线宽度通常指数据总线的宽度串行总线的总线工作频率可以一直提高,虽然其总线宽度小于并行总线总线复用就是一组总线同时用作两类总线信号线是只能传输一个bit的线原创 2024-01-02 21:28:20 · 502 阅读 · 0 评论 -
计算机组成原理-总线概述
一开始是根据功能,然后使各个部件连接,这样分散连接的方式,如果增减外部设备,那么对电路的连接操作比较麻烦。原创 2023-12-30 19:01:51 · 1466 阅读 · 0 评论 -
计算机组成原理-硬件多线程
在不支持硬件多线程的处理器中,处理器只能处理一段指令流水线(一段程序或线程),如果要切换到另一段指令流水线(一段程序或线程),需要保存该指令流水线(一段程序或线程)的环境(寄存器信息)到主存储器中,等到要要切换回来时再从主存中取出之前保存的寄存器的信息,恢复寄存器的值。细粒度多线程会每个时钟周期取一个线程的两条指令,此时取的两条指令是不存在依赖关系,所以可以同时给两个CPU运行,但每个时钟周期都会切换一次线程。此时指令是并行的,同时运行多条指令,线程也是并行,同时运行多个线程。原创 2023-12-28 11:37:57 · 439 阅读 · 0 评论 -
计算机组成原理-多处理器系统的基本概念(SISD SIMD MISD MIMD)
同时执行不同指令序列流,而且每台处理的数据流也是不一样的,因为可以给要处理的数据到不同存储器,此时给的数据可以不一样。在某个时间段内只能处理一个进程或者一个线程的指令序列,各个进程或者线程的指令序列只能并发的执行,不能并行的执行。当两个n维的向量相加时,向量处理器只需要一次add指令,因为向量寄存器存储的是向量,所以它的相加单位是n维向量。有多个处理器,可以执行多个不同的指令序列,也可以执行多个相同的指令序列(此时就是并行处理多个数据流)先执行一下该指令序列,再执行一下另外一个指令序列。原创 2023-12-28 11:12:41 · 716 阅读 · 0 评论 -
计算机组成原理-五段式指令流水线
以下都是关于RISC下的相关背景。原创 2023-12-25 20:35:33 · 645 阅读 · 0 评论 -
计算机组成原理-指令流水线(定义 表示方法 性能指标 影响因素 分类 多发技术)
取指阶段可能从Cache中取。原创 2023-12-22 16:47:11 · 1328 阅读 · 0 评论 -
计算机组成原理-微指令的设计与微程序控制单元的设计
垂直型微指令的一个微操作码对应一个微命令,所以可能一个水平型微指令要对应多个垂直型微指令。任何一条指令的第一条微指令地址都是零号地址,可以由专门硬件产生。任何指令的中断周期的第一条微指令地址都一样,可以由硬件产生提供。就是通过CMDR的一些比特位上的信息和一些测试源得到微指令地址。水平型微指令的操作控制部分对应一系列微命令的控制信号。各指令对应的微程序这里是指执行周期的微指令。有译码器,所以同样长度下对应的微命令更多。一个位对应一个微命令控制信号。最少则只需取值和执行即可。通过测试网络的示意图。原创 2023-12-19 15:30:13 · 1277 阅读 · 0 评论 -
计算机组成原理-硬布线控制器与微程序控制器
微地址形成部件产生初始微地址,然后将初始微地址对应的微指令读到CMDR,微指令的操作控制部分发出控制信号。(PC)—>MAR这个微指令是在指令周期中用得比较少,一般都是刚开始用到的,对应触发控制信号的电路比较简单。先通过执行取值周期的微程序取到指令到IR中(通过上一个执行周期微程序的最后一条指令的下地址取到下一条指令)微命令等于微操作,一个微指令对应多个微操作,一个微程序对应多个微指令,一个微程序对应一个机器指令。当实际所需节拍数少时(没满机器周期内对应的节拍数),将微操作放到机器周期的末尾节拍执行。原创 2023-12-19 13:51:07 · 2787 阅读 · 0 评论 -
计算机组成原理-CPU数据通路(单总线结构和专用通路结构)
采用专用数据通路会有多个输入,要哪个输入信号有效可以通过多路选择器或者给每个输入都连一个三态门。ALU可以支持啥都不做然后让信号没有变化的流出来(可以理解为将该数与零相加结果没变)C1等这些接口与CU连接,通过CU发出控制信号来使得有效还是无效(能否通过)第二问可以补上(PC)+1—>PC,然后是Op(IR)—>微操作信号发生器。也可以把(PC)+1—>PC补到(MDR)—IR后面。MDR与主存是双向(要读要写)将IR中的形式地址传到MAR。将IR中的形式地址传到MAR。将IR中的形式地址传到MAR。原创 2023-12-18 21:06:10 · 642 阅读 · 0 评论 -
计算机组成原理-指令周期的数据流
在指令的不同阶段,用到的资源不一样。所以在某条指令在第二阶段时,其第一阶段用到的资源给其他指令第一阶段时使用,从而实现并行。间址周期:通过形式地址得到有效地址的时间(一个地址的内容是真正需要访问的内容的地址)间址周期是取到指令的操作数的有效地址,这样到执行周期是才能访问到真正的操作数。取值令需要访问内存,而对指令译码由CPU完成,花费时间很少。就时钟周期组成机器周期,机器周期再组成指令周期吧。有些会把IR中的形式地址给覆盖掉为得到的有效地址。MDR在取指周期存了指令。原创 2023-12-18 19:07:03 · 460 阅读 · 0 评论 -
计算机组成原理-CPU的功能与结构
而ALU上面的那个寄存器是用来存ALU计算的结果的,等计算结果稳定后(或者说B的信号稳定后),就会把结果和CPU内部总线的连接线的接通,最后通过CPU内部总线传到指定寄存器中。微操作信号发生器每接收到时序系统的信号就会发出该微操作的信号,并执行一个微操作。指令译码器会选中某条输出电路然后微操作信号发生器根据该信号产生的微操作序列。中断处理可能是处理输入输出的中断也有可能是异常情况的中断。绿色的in也是根据某些输入决定是否可以向寄存器内输入数据。CPU内部总线:CPU内部的部件进行数据传输的公共通路。原创 2023-12-18 09:44:39 · 414 阅读 · 0 评论 -
计算机组成原理-指令系统CISC和RISC
由于CISC可访存指令没有限制,所以过程没有那么繁琐,辅助用的寄存器较少。由于CISC各个指令执行时间不一样,要实现指令流水线比较困难。RISC更自由,因为很多函数没有固定,是自己写的。存储程序就是用一个电路再加上存储部件构成。原创 2023-12-16 23:31:07 · 421 阅读 · 0 评论 -
计算机组成原理-函数调用的汇编表示(call和ret指令 访问栈帧 切换栈帧 传递参数和返回值)
如果当前函数不会调用下一个函数,那么该当前函数的栈帧的大小不需要是16字节对齐的。x86默认指的是32为如果为64位可以叫x64或x86-64。此时caller栈帧中有add函数调用的参数信息。如果调用者有其他也使用的寄存器要被被调用者使用时。mov指令不支持两个操作数同时来自主存。相当于恢复之前使用call之后的状态。此时可以将调用者使用的寄存器压栈保存。跳转之前都是上一个函数的栈帧。执行push 和mov指令后。再执行下一条mov指令。再执行两天mov指令。再执行两个mov指令。执行完leave指令。原创 2023-12-16 23:09:10 · 941 阅读 · 0 评论 -
计算机组成原理-选择语句和循环语句的汇编表示
不一定知道指令的位置,所以jmp直接跳转到指令的位置很难办。每次运算产生的标志位信息都会覆盖掉上一次产生的标志位。ecx特殊功能可用于作为循环计数器。loop指令默认对ecx进行减减。标号相当于位置,名字自己取。原创 2023-12-15 16:35:18 · 601 阅读 · 0 评论 -
计算机组成原理-AT&T格式vsIntel格式
lntel格式中取主存地址内容未指明长度默认为32位,对应下图中第四行右边的指令。x86汇编语言是lntel格式,还有一种汇编语言格式是AT&T。可用于计算机结构体数组某个结构体数组元素中的元素。百分号 美元符号 小括号。原创 2023-12-14 12:27:55 · 444 阅读 · 0 评论 -
计算机组成原理-高级语言与机器级代码之间的对应和常用的的x86汇编指令
x86中不允许两个操作数来自主存,这样保证每条指令不要太多次访问主存,访问太多,执行速度越慢。除法中被除数放到edx和eax中,被除数会扩展到64位,高位存放在edx,低位放到eax。计算后的结果放到目的操作数,所以目的操作数不可以是常量,只能是寄存器或内存。x86汇编是被某一系列CPU支持的汇编指令。通用寄存器可以存任何东西,以X结尾。同时注意h后缀表明该为16进制。通用寄存器也可只指定16位。注意源操作数和目的操作数。通用寄存器也可只指定8位。注意未指明长度都是32位。原创 2023-12-12 23:43:34 · 632 阅读 · 0 评论 -
计算机组成原理-堆栈寻址
入栈和出栈即栈顶元素位置的变化不同。软堆栈就是用内存实现。原创 2023-12-12 15:17:31 · 460 阅读 · 0 评论 -
计算机组成原理-数据寻址-(相对寻址 基址寻址 变址寻址 )
变址寄存器:IX基址寄存器:BR没有基址寄存器有时会使用通用寄存器来代替,此时指令中要指明当起始地址为内存地址为0时,可以直接寻址当起始地址不为内存地址为0时,可以通过BR+操作数来寻址BR指向当前执行程序的起始地址写的程序被放到内存的哪个位置由操作系统管理如果通用寄存器被指定为基址存器时,我们不能再修改该通用寄存器,由操作系统管理可扩大寻址范围如循环,变址寻址所用到的指令数量更加少如下图中需要有加法指令个数和循环次数一样而下图不需要那么多指令数A应该是基于当前指令的下一原创 2023-12-06 11:15:32 · 1873 阅读 · 0 评论 -
计算机组成原理-数据寻址-(直接寻址 间接寻址 寄存器寻址 寄存器间接寻址 隐含寻址 立即寻址))
左图:直接跳转中图:基于起始地址(因为程序起始地址不同,放的内存位置不同,如果直接JMP可能会跳转到错误的地方去)右图:基于PC操作数3可以简单理解为要在内存中找到3(A):A地址存储的内容两次间接寻址通过判断取出的地址内容的最高位为1还是为0判断是否还需要间接寻址间接寻址的地址范围是操作数对应地址所在的内容表示的范围(即一个存储字长能表示的范围)操作数在指令中原创 2023-12-06 09:47:29 · 561 阅读 · 0 评论 -
计算机组成原理-指令寻址
主存按字编址时字:指的是以存储字长为一个单元(对应下图中为两个字节)主存不按字编址时,按字节寻址时,对应图的PC寻址方式也会改变多次访存是判断了指令的总字节数后,看是否需要读入指令的其他部分。因为指令可能只被取出了一部分来判断该指令的总字节数这里的1是刚取出的指令的字长】PC:下一条应该执行的指令(当取走一条指令时,PC变化)跳跃寻址:就是指令改变了PC的值原创 2023-12-06 08:58:56 · 394 阅读 · 0 评论 -
计算机组成原理-指令格式与扩展操作码指令格式
不同硬件架构支持的指令集不同手机:ARM架构电脑:x86架构。原创 2023-12-03 18:39:39 · 571 阅读 · 1 评论 -
计算机组成原理-存储系统基本概念
打开程序时,会将程序代码放入主存,然后CPU开始读取运行主存中的代码。虚拟存储系统:即你看到的比实际大得多Cache也分层Cache和主存都可以直接被CPU访问辅存以前采用机械硬盘,现在多采用固态硬盘开机时候需要将辅存的数据读入到主存,辅存读数据速度更快开机也更快光存储器:光盘,DVD那些磁带:需要转动磁带读取然后通过磁头对应的位置随机存取存储器:主存 Cache直接存取存储器:机械硬盘 即有存取时间相同的位置也有存取时间不同的位置存储速度:可以理解为存储一个存储字的一位所需要的时间主原创 2023-11-30 11:39:47 · 388 阅读 · 0 评论 -
计算机组成原理-虚拟存储器
采用段式虚拟存储器,主存不再分块,每个单元为一个字节。脏位:主存中该页是否被修改过,若修改,那么当该页被替换后要把修改后的内容写回辅存。将辅存中的程序分页,将当前用得到的程序的页调入到主存中。将辅存中程序部分调入内存,程序其他待分待需要再调入内存。访问位:主存中该页被访问的次数,访问少的次数被替换。外存块号:外存被分为一块一块,有相应的块号。有效位:该辅存中的程序该页是否被放入主存。即分段后每段再分页,以页为单位调入主存。即辅存中的程序按不同功能来拆分程序成段。此时每个程序对应一个段表。原创 2023-11-27 17:35:30 · 445 阅读 · 0 评论 -
计算机组成原理-页式存储器
把程序分散式地放到主存的不同块的地方操作系统将逻辑地址映射到主存块中的物理地址,对应的物理地址的块内地址为逻辑地址的页内地址,块号由逻辑页号通过页表转换而来。先通过逻辑地址的页号和通过页表基址寄存器得到的在内存中的页表的基址得到对应页表项,然后得到主存块号,再和逻辑地址对应的页内地址合并即可得到物理地址。当读或写主存某个地址时,会先去Cache中寻找当访问页表时,可通过局部性原理将页表项放入类似Cache的TLB中,从而提高地址转换的速度Cache与快表有相似。都是SRAM,比DRAM(主存)更快。原创 2023-11-27 16:42:04 · 466 阅读 · 0 评论 -
计算机组成原理-Cache写策略
本质上,各级Cache的关系和主存与Cache的关系一样,都是为了提高CPU的读写速度。原创 2023-11-27 15:05:59 · 636 阅读 · 0 评论 -
计算机组成原理-Cache替换算法
没有选择性地考虑替换哪一块Cache,或者说没有考虑局部性原理(要用的可能Cache块),使得可能下一次要访问的Cache块被替换了,进而导致替换次数频繁先进入的Cache的先被替换人为判断替换哪个Cache块:从当前要访问的主存块往前看,将其与Cache块对比,直到只剩下一个Cache块没有对应的主存块则替换它Cache块的总数为2的n次方时,计数器只需要n位。若装满后此时只有替换和命中,替换时会替换计数器值最大的,命中时会由于未命中的比其低的计数器加1,所以最大的计数器的位数依然不会超过n位且C原创 2023-11-27 13:05:38 · 652 阅读 · 0 评论 -
计算机组成原理-Cache和主存的映射方式
组相联映射时,得到对应的Cache组后,该组哪个地方有空就放主存的内容标记用来对应是主存中的哪个块,或者说块号当两个主存块映射同一个位置时,会覆盖上一次主存块已映射的内容。原创 2023-11-27 11:56:10 · 538 阅读 · 0 评论