26考研 | 计算机组成原理&&OS | 408中由硬件完成而非软件的过程
408中由硬件完成而非软件的过程 操作名称 硬件完成的具体内容与说明 常考/易错点 中断隐指令 1. 关中断:保护现场不被新中断打断。 2. 保存断点:将程序计数器(PC) 的内容存入堆栈或特定单元。 3. 引出服务程序:将中断服务程序的入口地址送入PC。 核心考点:它不是一条软件指令,而是CPU响应中断时自动执行的硬件操作序列。 关键区分:保存断点(PC) 是硬件完成的;保存通用寄存器等现场信息是后续软件(中断服务程序)完成的。 CPU模式转换(用户态->内核态) 当发生系统调用、中断、异常时,CPU硬件会自动将程序状态字(PSW)中的模式标志从用户态切换为核心态。 常考真题:明确考查“用户态到核心态的切换是由硬件完成的”。 易错点:此转换是由事件触发硬件自动完成的,而非操作系统软件主动发出的命令。 DMA传输过程控制 1. 传输控制:DMA控制器硬件接管总线,在内存与I/O设备间直接成批交换数据。 2....
26考研 | 计算机组成原理 | 无符号数和有符号数加减法溢出判断及标志位变化总结
无符号数和有符号数加减法溢出判断及标志位变化 根据指令类型设置标志: 加法:CF = 最高位进位 减法:CF = 最高位进位取反 OF:始终为 OF = 最高位进位 ⊕ 次高位进位 1.无符号数1.溢出判断加法:当结果超过n位能表示的最大值(2ⁿ-1)时,会发生进位,通过CF标志反映 减法:当被减数小于减数时,结果会小于0,发生借位,通过CF标志反映 如果溢出了,那么CF就是1 2.CF加法规则: 当最高位产生进位时,CF=1 当最高位没有进位时,CF=0 减法规则(A - B): 硬件执行 A + (~B + 1)(即加B的补码) CF = NOT(加法最高位进位) 若加法最高位进位=1 → CF=0(无借位,不溢出) 若加法最高位进位=0 → CF=1(有借位,溢出) 简单记忆:CF=1表示有借位(A < B) 3.OFOF = 最高位进位 ⊕...
26考研 | 王道 | 计网 | 网络层 | 第三部分 | 不同网段之间通信
王道计网 | 网络层 | 第三部分 |...
26考研 | 王道 | 计网 | 网络层 | 第二部分| 同网段内通信
王道计网 | 网络层 | 第二部分| 同网段内通信 0.ARP协议 ARP请求和响应报文中各关键字段的差异,是掌握网络通信基础的关键。下面这个表格清晰地对比了它们在两种报文中的不同。 字段 ARP请求报文 ARP响应报文 操作类型 (Operation Code) 1 (表示请求) 2 (表示响应) 源MAC地址 (Sender MAC) 请求主机的MAC地址 被请求主机的MAC地址 目的MAC地址 (Target MAC) 全0 (00:00:00:00:00:00) 请求主机的MAC地址 源IP地址 (Sender IP) 请求主机的IP地址 被请求主机的IP地址 目的IP地址 (Target IP) 要解析的目标主机的IP地址 请求主机的IP地址 以太网目的地址 (帧头部) 广播地址 (FF:FF:FF:FF:FF:FF) 请求主机的MAC地址(单播) 深入理解ARP工作过程ARP(地址解析协议)的核心任务是根据IP地址查询对应的MAC地址...
26考研 | 王道 | 计网 | 网络层 | 第一部分 | IP相关
王道计网 | 网络层 | 第一部分 |...
26考研 | 王道 | HTTP和TCP的数据传输过程(易错点)
HTTP和TCP的数据传输过程(易错点) 特性 HTTP/1.0 HTTP/1.1 (默认) 连接模式 默认非持久连接。每个请求/响应对都需要建立和关闭一个独立的 TCP 连接。 默认持久连接。一个 TCP 连接可以处理多个请求。 性能影响 连接建立和关闭的“三次握手、四次挥手”开销大,严重影响性能,尤其是加载包含多个资源的网页时。 大幅减少延迟和开销。复用连接避免了反复建立连接的成本,是性能优化的基础。 明确关闭 如果需要保持连接,必须使用 Connection: keep-alive 头部。 如果需要关闭连接,必须使用 Connection: close 头部。 特性 HTTP/1.0 HTTP/1.1 默认连接方式 非持久连接。每个请求后连接关闭。 持久连接。连接默认保持打开以供重用。 流水线支持 不支持。必须收到上一个响应,才能发下一个请求。 在协议标准中支持流水线(RFC 2616定义)。允许在未收到响应时发送后续请求。 现实应用情况 无流水线。要模拟持久连接需用非标准头...
26考研 | 王道 | 数据结构 | 408数据结构算法题笔记
408数据结构算法题笔记1.顺序表1.快排部分 1.快排代码 2.快排的划分思想空间:O(1) 时间:O(n) 划分实战 其实就是把数组分成两半,那就直接找第n/2小的元素就好了 3.快排实战 2.归并排序归并排序的合并两个数组 2.链表 1.按位序查找 123456789//这样找中间结点更好记一点 如果是1 2 3 4 5,那么l就是3,如果是1 2 3 4 5 6,那l就是4l = head;r = head;//1.找中间节点while (r->next && r->next->next){ l = l->next; r = r->next->next;} 也可以用两个指针,让第一个指针先移动K步 先获得长度,然后长的减去短的,让长的先移动这个长度,然后一起往后移动 2.双指针...
26考研 | 王道 | 数据结构 | 卡特兰数在数据结构中的应用
卡特兰数在数据结构中的应用
26考研 | 计算机组成原理 | 关于五段式指令流水线译码阶段取操作数可以去主存中拿吗
关于五段式指令流水线译码阶段取操作数可以去主存中拿吗1.可以从主存拿吗答:在标准的五段流水线中,“译码/读寄存器”阶段的操作数来源特指从寄存器文件(Register File)中读取。 它不会从主存中取操作数。 下面是详细的解释: 译码阶段(ID)的主要任务 译码阶段通常完成以下两件核心工作: 指令译码: 解析指令的操作码,确定指令的类型(是加法、加载还是存储等)和所需的操作数。 读寄存器: 根据指令中指定的寄存器地址(例如 add R4, R5, R3中的 R5 和 R3),从寄存器文件中读出这两个寄存器的当前值。 所以,图片中表格将这一阶段标注为“译码/读寄存器”是非常准确的,明确了操作数的来源是寄存器。 操作数的不同来源 一条指令的操作数可以来自三个地方,对应不同的流水线阶段: 操作数来源 对应的流水线阶段 指令示例 解释 寄存器 译码阶段 add R1, R2, R3 操作数 R2 和 R3 的值在 ID 阶段从寄存器文件读出。 立即数 译码阶段 addi R1, R2, #10 操作数一个是寄存器...
26考研 | 计算机组成原理 | 计算机组成原理关于指令流水线数据冒险解决方案的困惑以及梳理
计算机组成原理关于指令流水线数据冒险解决方案的困惑以及梳理笔者是在做这道题的时候产生的困惑以及解决 附上答案 1.阻塞方式把I3指令的ID阶段阻塞到时钟6去执行。因为ID阶段是读寄存器的,必须要在I2的WB阶段结束之后,也就是时钟6,一共阻塞3个时钟 2.数据通路方式解决这个问题我的困惑: 假如A与B指令有数据冲突,数据通路的方式解决的话,那是不是只要在A执行阶段我把结果算出来之后,存到A指令执行阶段的锁存器,然后B指令的执行阶段就可以拿走直接用?还是说B指令的译码阶段取操作数这个操作要等到A指令的EX阶段执行完以后,然后数据通路把A指令的EX段锁存器的内容给到B指令,B指令才去进行EX阶段? 答案是在A指令的执行(EX)阶段结束后,结果被存入EX/MEM流水线锁存器。随后,在B指令的EX阶段开始时,转发逻辑可以直接从这个锁存器中取出数据供B指令使用。 简单来说就是:B指令的译码解决还是会拿到错误的值,但是数据通路会在B指令进去EX阶段之前把错误的值用正确的值给覆盖掉。而其实ID阶段拿到错误的值也没事,毕竟也没执行。 转发机制(Data...







