1. 冯·诺伊曼结构主要思想
莫齐利(Mauchly)和他的学生艾克特(Eckert)

自从第一台通用电子计算机ENIAC诞生之后,人类社会进入了一个崭新的电子计算和信息化时代。
计算机硬件早期的发展受电子开关器件的影响极大,为此,传统上人们以元器件的更新作为计算机技术进步和划代的主要标志。

在ENIAC的研制工作中,研制小组意识到ENIAC还存在许多问题。(没有存储器、没有采用二进制……)
在共同讨论的基础上,冯·诺依曼《关于EDVAC的报告草案》——“存储程序(stored-program)通用电子计算机方案”
——现代计算机结构思想的诞生

“存储程序”方式的基本思想:
任何要计算机完成的工作都要先被编写成程序,
然后将程序和原始数据送入主存并启动执行。
一旦程序被启动,
计算机能在不需操作人员干预下,自动完成逐条取出指令并执行指令的任务。

输入部件、输出部件、主存、运算器、控制器


2. 现代计算机结构模型及工作原理


| CPU |
||
| ALU(Arithmetic and Logic Unit) | 算术逻辑部件 | 进行算术和逻辑运算 |
| GPRs(General Purpose Register set) | 通用寄存器组 | (由若干通用寄存器组成,早期就是累加器) 每个通用寄存器有一个编号, 通过指令可以指定哪个编号的寄存器中的数据作为ALU的操作数 |
| PSW(Program Status Word) | 标志寄存器(程序状态字) | 存放ALU运算得到的一些标志信息 |
| IR(Instruction Register) | 指令寄存器 | 存放从主存读出的指令; 指令中的操作码被送到控制器进行译码,以生成控制信号(控制如何修改PC以得到下条指令的地址; 控制ALU执行何种运算; 控制主存进行读操作还是写操作) |
| MAR(Memory Address Register) | 存储器地址寄存器 | 存放需要送到地址线上的地址信息 |
| PC(Program Counter) | 程序计数器 | 存放下一条指令的地址 |
| MDR(Memory Data Register) | 存储器数据寄存器 | 临时存放主存和CPU需要交换的数据 |
| 总线 | |
| 控制线 | 读\写信号线,指出数据是从CPU写入主存(将MDR中的数据直接送到数据线上) 还是从主存读出到CPU(将数据线上的数据接收到MDR中) |
| 地址线 | 传输地址 |
| 数据线 | 传输数据 |
(送地址到地址线上 或者 送数据到数据线上,
同时将控制信号送到读/写信号线上)
主存:用来存储指令和操作数。
每个存储单元有一个编号(地址),通常一个存储单元存放一个字节(8位)
一条指令或者一个操作数 可能占用多个存储单元,指令和操作数的地址都是指一组连续存储单元中最小的地址

1.根据PC取指令到IR
->将PC的内容送MAR
->MAR中的内容直接送地址线,同时控制器将读信号送读/写信号线。
->主存根据地址线上的地址和读信号,从指定存储单元开始读出指令,并送到数据线上,
->MDR从数据线接受指令信息,并传送到IR中
2.指令译码并送出控制信号
->控制器根据IR中指令的操作码,生成相应的控制信号,送到不同的执行部件
3.取操作数
若为ALU运算类指令:
根据IR中指令指定的寄存器编号选择两个或者一个寄存器中的内容作为操作数,送到ALU的输入端
4.指令执行
若为ALU运算类指令:
ALU在控制信号的控制下,进行相应的运算,并生成运算结果和相应的标志信息。
若为取数/存数指令:
主存在读/写控制信号的控制下,对地址线指定的存储单元进行读/写
5.回写结果
将ALU运算的结果写入指定编号的寄存器或指定的主存单元中。

不论是定长指令字系统还是变长指令字系统,当一条指令执行结束时,PC中一定是下一条指令的地址
指令的执行由时钟信号(clock signal)进行定时,一条指令的执行可能需要一个或多个时钟周期。
3.从机器语言到高级编程语言



指令是一些对结构操作的动作的描述

汇编语言比机器语言好, 但
程序长、不可移植(不够抽象)
两者都是面向机器结构的语言

4.程序的开发和执行及其支撑环境




5.现代计算机系统的层次结构




ISA是软硬件的 interface(接口)


ISA是计算机组成的抽象,也就是计算机硬件的抽象。
