What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
cs:comp_n_arch:courses:fnti_i:week_5 [2025/05/12 00:24] – [寄存器需要的 BUS] codingharecs:comp_n_arch:courses:fnti_i:week_5 [2025/05/12 11:14] (当前版本) – [The Fetch-Execute Cycle] codinghare
行 3: 行 3:
 ---- ----
 ====Von Neumann==== ====Von Neumann====
 +
 ===Element=== ===Element===
 CPU 通常由两部分组成: CPU 通常由两部分组成:
行 16: 行 17:
   * Control 控制管线   * Control 控制管线
 这三种管线统称 //BUS//(//Binary Unit System//,总线) 这三种管线统称 //BUS//(//Binary Unit System//,总线)
 +\\ \\ 
 +{{ :cs:comp_n_arch:courses:fnti_i:bus.jpg?550 |}}
 ==ALU 需要的 BUS== ==ALU 需要的 BUS==
   * Data Bus(数据总线)用于传输 ALU 运算所需的操作数(输入数据)以及运算完成后的结果(输出数据)。   * Data Bus(数据总线)用于传输 ALU 运算所需的操作数(输入数据)以及运算完成后的结果(输出数据)。
行 28: 行 31:
   * Data Bus: 负责数据的交互   * Data Bus: 负责数据的交互
   * Adress Bus:指定哪一个内存单元会参与工作   * Adress Bus:指定哪一个内存单元会参与工作
 +  * Program part 同时需要 Control Bus 来协调指令相关的各个部分
 +====The Fetch-Execute Cycle====
 +计算机整个过程:
 +  - Fetch
 +  - execute
 +  - redo the loop
 +===Fetch===
 +//Fetch// 指从 Memory 中获取计算机指令的整个过程。具体的过程:
 +  - 将下一条指令的**位置**放入 Memory 中存储**地址**的部分
 +  - 通过读取该**位置对应的** Memory 内容来获取指令
 +==The program counter==
 +//Fetch// 中保存下一条指令**位置**的部分被称为 //Program counter//。大多数情况下,由于下一条指令都是紧接着当前指令,因此通常 Program counter 会通过当前值**加一**的方式获取下一条指令的地址。
 +===Exectue===
 +  * 指令的具体内容控制执行的内容
 +  * 计算机通过相关 bits (的子集)来控制不同的操作(使用 control BUS)
 +===Fetch-Execute clash===
 +