网站如何做支付宝接口,免费的网站域名申请,哈巴狗模式网站开发,公众号开发答题活动文章目录 CPU的功能和基本结构CPU的功能CPU的基本结构 指令执行过程指令周期概念指令执行方案指令数据流取周期数据流析指周期数据流执行周期数据流中断周期数据流 数据通路的功能和基本结构数据通路的功能数据通路的结构单总线 CPU的功能和基本结构 #mermaid-svg-0uHwjZOZh4kS… 文章目录 CPU的功能和基本结构CPU的功能CPU的基本结构 指令执行过程指令周期概念指令执行方案指令数据流取周期数据流析指周期数据流执行周期数据流中断周期数据流 数据通路的功能和基本结构数据通路的功能数据通路的结构单总线 CPU的功能和基本结构 #mermaid-svg-0uHwjZOZh4kShT0T {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0uHwjZOZh4kShT0T .error-icon{fill:#552222;}#mermaid-svg-0uHwjZOZh4kShT0T .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-0uHwjZOZh4kShT0T .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-0uHwjZOZh4kShT0T .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-0uHwjZOZh4kShT0T .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-0uHwjZOZh4kShT0T .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-0uHwjZOZh4kShT0T .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-0uHwjZOZh4kShT0T .marker{fill:#333333;stroke:#333333;}#mermaid-svg-0uHwjZOZh4kShT0T .marker.cross{stroke:#333333;}#mermaid-svg-0uHwjZOZh4kShT0T svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-0uHwjZOZh4kShT0T .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-0uHwjZOZh4kShT0T .cluster-label text{fill:#333;}#mermaid-svg-0uHwjZOZh4kShT0T .cluster-label span{color:#333;}#mermaid-svg-0uHwjZOZh4kShT0T .label text,#mermaid-svg-0uHwjZOZh4kShT0T span{fill:#333;color:#333;}#mermaid-svg-0uHwjZOZh4kShT0T .node rect,#mermaid-svg-0uHwjZOZh4kShT0T .node circle,#mermaid-svg-0uHwjZOZh4kShT0T .node ellipse,#mermaid-svg-0uHwjZOZh4kShT0T .node polygon,#mermaid-svg-0uHwjZOZh4kShT0T .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-0uHwjZOZh4kShT0T .node .label{text-align:center;}#mermaid-svg-0uHwjZOZh4kShT0T .node.clickable{cursor:pointer;}#mermaid-svg-0uHwjZOZh4kShT0T .arrowheadPath{fill:#333333;}#mermaid-svg-0uHwjZOZh4kShT0T .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-0uHwjZOZh4kShT0T .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-0uHwjZOZh4kShT0T .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-0uHwjZOZh4kShT0T .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-0uHwjZOZh4kShT0T .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-0uHwjZOZh4kShT0T .cluster text{fill:#333;}#mermaid-svg-0uHwjZOZh4kShT0T .cluster span{color:#333;}#mermaid-svg-0uHwjZOZh4kShT0T div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-0uHwjZOZh4kShT0T :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} CPU的功能和基本结构 CPU的功能 CPU的基本结构 指令控制 操作控制 时间控制 数据加工 CPU的功能 指令控制: 完成取指令、分析指令和执行指令的操作即程序的顺序控制。操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号把各种操作信号送往相应的部件从而控制这些部件按指令的要求进行动作。时间控制: 对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。数据加工: 对数据进行算术和逻辑运算。
CPU的基本结构
透明性 用户可见的寄存器 (对用户不透明用户可编程) : PSW.ACC,Ri.PC 用户不可见的寄存器 (对用户透明用户不可编程) : SR,T,MAR,MDR,IR
控制信号
使用多路选择器根据控制信号选择一路输出
使用三态门可以控制每一路是否输出
运算器
算术逻辑单元ALU: 主要功能是进行算术/逻辑运算。通用寄存器组Ri: 用于存放操作数 (包括源操作数、目的操作数及中间结果) 和各种地址信息等。SP 是堆栈指针用于指示栈顶的地址。暂存寄存器T。用于暂存从主存读来的数据该数据不能存放在通用寄存器中否则会破坏其原有内容。暂存寄存器对应用程序员是透明的累加寄存器ACC。它是一个通用寄存器用于暂时存放 ALU运算的结果信息可以作为加法运算的一个输入端程序状态字寄存器PSW。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息如溢出标志 (OF) 、符号标志 (SF) 、零标志 (ZF) 、进位标志 (CF) 等。PSW中的这些位参与并决定微操作的形成。移位器SR。对操作数或运算结果进行移位运算。计数器。控制乘除运算的操作步数 程序计数器: 用于指出下一条指令在主存中的存放地址。CPU 根据 PC 的内容去主存中取指令。因程序中指令(通常)是顺序执行的所以PC 有自增功能指令寄存器: 用于保存当前正在执行的那条指令 程序计数器: 用于指出下一条指令在主存中的存放地址。CPU 根据 PC 的内容去主存中取指令。因程序中指令(通常)是顺序执行的所以PC 有自增功能。指令寄存器: 用于保存当前正在执行的那条指令指令译码器:仅对操作码字段进行译码向控制器提供特定的操作信号时序系统: 用于产生各种时序信号它们都由统一时钟(CLOCK) 分频得到微操作信号发生器: 根据IR的内容 (指令) 、PSW的内容 (状态信息) 及时序信号产生控制整个计算机系统所需的各种控制信号其结构有组合逻辑型和存储逻辑型两种存储器地址寄存器: 用于存放要访问的主存单元的地址存储器数据寄存器:用于存放向主存写入的信息或从主存读出的信息。 指令执行过程 #mermaid-svg-nwUBE5Jw8w9lho7H {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H .error-icon{fill:#552222;}#mermaid-svg-nwUBE5Jw8w9lho7H .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-nwUBE5Jw8w9lho7H .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-nwUBE5Jw8w9lho7H .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-nwUBE5Jw8w9lho7H .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-nwUBE5Jw8w9lho7H .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-nwUBE5Jw8w9lho7H .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-nwUBE5Jw8w9lho7H .marker{fill:#333333;stroke:#333333;}#mermaid-svg-nwUBE5Jw8w9lho7H .marker.cross{stroke:#333333;}#mermaid-svg-nwUBE5Jw8w9lho7H svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-nwUBE5Jw8w9lho7H .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H .cluster-label text{fill:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H .cluster-label span{color:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H .label text,#mermaid-svg-nwUBE5Jw8w9lho7H span{fill:#333;color:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H .node rect,#mermaid-svg-nwUBE5Jw8w9lho7H .node circle,#mermaid-svg-nwUBE5Jw8w9lho7H .node ellipse,#mermaid-svg-nwUBE5Jw8w9lho7H .node polygon,#mermaid-svg-nwUBE5Jw8w9lho7H .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-nwUBE5Jw8w9lho7H .node .label{text-align:center;}#mermaid-svg-nwUBE5Jw8w9lho7H .node.clickable{cursor:pointer;}#mermaid-svg-nwUBE5Jw8w9lho7H .arrowheadPath{fill:#333333;}#mermaid-svg-nwUBE5Jw8w9lho7H .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-nwUBE5Jw8w9lho7H .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-nwUBE5Jw8w9lho7H .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-nwUBE5Jw8w9lho7H .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-nwUBE5Jw8w9lho7H .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-nwUBE5Jw8w9lho7H .cluster text{fill:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H .cluster span{color:#333;}#mermaid-svg-nwUBE5Jw8w9lho7H div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-nwUBE5Jw8w9lho7H :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 指令执行过程 指令周期的概念 指令执行方案 数据流 指令周期 时钟周期 机器周期 指令周期概念
关于周期 时钟周期: (节拍T周期CPU时钟周期) 机器周期:(CPU周期) 指令周期: CPU 从主存中取出并执行一条指令的时间称为指令周期不同指令的指令周期可能不同
指令的不确定性 时钟周期数不同每个机器周期内的节拍数也可能不同 常见类型的指令
指令执行方案
单指令周期 每个指令时间可能不同但是在单指令周期下所有指令选用相同的执行时间指令间串行
优点: 结构、设计简单 缺点:对于原本很短时间的指令要在较长的时间来完成显然会降低整个系统的运行速度
多指令周期 不同类型指令选用不同的执行步骤指令间串行
优点: 不再要求所有的指令占用相同的执行时间 缺点: 执行指令的设计更加复杂
流水线方案 隔一段时间启动一条指令多条指令位于不同阶段同时运行
优点: 不再要求所有的指令占用相同的执行时间 缺点: 执行指令的设计更加复杂
指令数据流
取周期数据流 PC 1 MAR 2 地址总线3主存CU发出控制信号 4 控制总线 5 主存主存 6 固数据总线 7 MDR 8 IR (存放指令)CU 发出读命令 9 PC 内容加1。
析指周期数据流 Ad(IR)(或MDR) 1 MAR 2 地址总线 3 主存CU 发出读命令 4 控制总线 5 主存主存 6 数据总线 7 MDR (存放有效地址)其中Ad(IR)表示取出IR中存放的指令字的地址字段
执行周期数据流
各条指令的执行周期不同
中断周期数据流 CU控制将 SP减 1 SPDMAR 2 地址总线 3 主存CU发出写命令 4 控制总线 5 主存PC 6 MDR 7 数据总线 8 主存 (程序断点存入主存)CU (中断服务程序的入口地址) 9 PC
数据通路的功能和基本结构 #mermaid-svg-v3fR5y4dpCLWwdPY {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY .error-icon{fill:#552222;}#mermaid-svg-v3fR5y4dpCLWwdPY .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-v3fR5y4dpCLWwdPY .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-v3fR5y4dpCLWwdPY .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-v3fR5y4dpCLWwdPY .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-v3fR5y4dpCLWwdPY .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-v3fR5y4dpCLWwdPY .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-v3fR5y4dpCLWwdPY .marker{fill:#333333;stroke:#333333;}#mermaid-svg-v3fR5y4dpCLWwdPY .marker.cross{stroke:#333333;}#mermaid-svg-v3fR5y4dpCLWwdPY svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-v3fR5y4dpCLWwdPY .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY .cluster-label text{fill:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY .cluster-label span{color:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY .label text,#mermaid-svg-v3fR5y4dpCLWwdPY span{fill:#333;color:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY .node rect,#mermaid-svg-v3fR5y4dpCLWwdPY .node circle,#mermaid-svg-v3fR5y4dpCLWwdPY .node ellipse,#mermaid-svg-v3fR5y4dpCLWwdPY .node polygon,#mermaid-svg-v3fR5y4dpCLWwdPY .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-v3fR5y4dpCLWwdPY .node .label{text-align:center;}#mermaid-svg-v3fR5y4dpCLWwdPY .node.clickable{cursor:pointer;}#mermaid-svg-v3fR5y4dpCLWwdPY .arrowheadPath{fill:#333333;}#mermaid-svg-v3fR5y4dpCLWwdPY .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-v3fR5y4dpCLWwdPY .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-v3fR5y4dpCLWwdPY .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-v3fR5y4dpCLWwdPY .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-v3fR5y4dpCLWwdPY .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-v3fR5y4dpCLWwdPY .cluster text{fill:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY .cluster span{color:#333;}#mermaid-svg-v3fR5y4dpCLWwdPY div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-v3fR5y4dpCLWwdPY :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 数据通路的功能和基本结构 数据通路的功能 数据通路的结构 单总线 三总线 专用数据通路 数据通路的功能
数据通路 数据在功能部件之间传送的路径称为数据通路 路径上的部件称为数据通路部件如 ALU、通用寄存器、状态寄存器、异常和中断处理逻辑等 数据通路中专门进行数据运算的部件称为执行部件或功能部件。 数据通路功能 数据通路的功能是实现CPU内部的运算器与寄存器及寄存器之间的数据交换。
数据通路的结构
单总线
CPU内部单总线方式 将所有寄存器的输入端和输出端都连接到一条公共通路上这种结构比较简单但数据传输存在较多的冲突现象性能较低。连接各部件的总线只有一条时称为单总线结构:CPU中有两条或更多的总线时构成双总线结构或多总线结构
专用数据通路方式 根据指令执行过程中的数据和地址的流动方向安排连接线路避免使用共享的总线性能较高但硬件量大。
内部总线 同一部件如 CPU 内部连接各寄存器及运算部件之间的总线 系统总线 系统总线是指同一台计算机系统的各部件如CPU、内存、通道和各类 /O接口间互相连接的总线 外部总线 外部总线是指各台计算机之间相互通信的总线
寄存器之间的数据传送 把PC 内容送至 MAR实现传送操作的流程及控制信号为 (PC)-Bus PCout 有效PC 内容送总线
Bus-MAR MARin 看效总线内容送 MAR 主存与 CPU 之间的数据传送 CPU从主存读取指令为例说明数据在数据通路中的传送过程
(PC)-Bus-MAR PCout 和 MARin 有效现行指令地址-MAR 1-R CU发读命令 MEM(MAR)-MDR (MDR)-Bus-IR MDRout 和 IRin有效现行指令-IR
执行算术运算和逻辑运算 Ad(IR)-Bus-MAR MDRout 和 MARin 有效 1-R CU 发读命令 MEM(MAR)-数据线-MDR 操作数从存储器-数据线-MDR MDR-Bus-Y MDRout 和 Yin 有效操作数-Y (ACC)(Y)-Z ACCout和ALUin有效CU发出加命令结果-Z Z-ACC Zout和ACCin有效结果ACC