前言

准备自学csapp了,怕听不懂课。知乎说NJU的袁春华老师讲的计算机系统基础特别好,所以准备先学这个好了。

1. 第一章

1.1 理解

计算机系统抽象层,从上至下依次是:应用(问题),算法,编程(语言),操作系统/虚拟机,指令集体系结构(ISA),微体系结构,功能部件,电路,器件。指令集体系结构是软件和硬件的交界层。

1.2 程序开发和执行过程简介

  1. 指令包含操作码和操作数或其他地址码
  2. 机器语言和汇编语言都是面向机器结构的语言,统称为机器级语言
  • 编译程序(Complier):将高级语言源程序转换为机器级目 标程序,执行时只要启动目标程序即可
  • 解释程序(Interpreter ):将高级语言语句逐条翻译成机器 指令并立即执行,不生成目标文

1.3 指令集体系结构

  • ISA(Instruction Set Architecture),即指令集体系结构
  • ISA是一种规约

1.4 冯诺依曼体系结构

1946年,普林斯顿高等研究院(the Institute for Advance Study at Princeton,IAS )开始设计 存储程序计算机,被称为IAS计算机(1951年才完成,并不是第一台存储程序计算机,1949年由英国剑桥大学完成的EDSAC是第一台)。在那个报告中提出的计算机结构被称为冯·诺依曼结构。
冯·诺依曼结构最重要的思想是“存储程序(Stored-program)” 工作方式: 任何要计算机完成的工作都要先被编写成程序,然后将程序和原始 数据送入主存并启动执行。一旦程序被启动,计算机应能在不需操 作人员干预下,自动完成逐条取出指令和执行指令的任务

冯诺依曼的主要思想:

  1. 计算机应由运算器、控制器、存储器、输入设备和输出设备 五个基本部件组成。
  2. 各基本部件的功能是:

    • 存储器不仅能存放数据,而且也能存放指令,形式上两者 没有区别,但计算机应能区分数据还是指令;
    • 控制器应能自动取出指令来执行;
    • 运算器应能进行加/减/乘/除四种基本算术运算,并且也 能进行一些逻辑运算和附加运算;
    • 操作人员可以通过输入设备、输出设备和主机进行通信。

  3. 内部以二进制表示指令和数据。每条指令由操作码和地址码 两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。

  4. 采用“存储程序”工作方式。

2. 第二章

2.1 定点数的编码表示

模运算

  • 结论1:一个负数的补码等于模减该负数的绝对值。
  • 结论2:对于某一确定的模,某数减去小于模的另一数,总可 以用该数加上另一数负数的补码来代替。

补码的表示

  • 结论1:一个负数的补码等于将对应正数补码 各位取反、末位加一

  • 变形(4’s)补码:双符号,用于存放可能溢出的中间结果

求补码的真值:

  • 简便求法: 符号为0,则为正数,数值部分相同 符号为1,则为负数,数值各位取反,末位加

评论