计算机系统要素-从零开始构建现代计算机 项目
建议和<<深入理解计算机系统>>这本一起看, 一本自下而上讲述计算机,另一本自上而下讲述计算机.都是非常经典的书籍.
英文术语 | 翻译 |
---|---|
allocation | 内存分配 |
assembly | 汇编 |
class | 类 |
class type | "类"类型 |
compiler | 编译器 |
constant | 常量 |
constructor | 构造函数 |
de-allocation | 内存去配 |
dispose | 清除 |
field | 域;字段 |
identifier | 标识符 |
invoke | 唤起(执行) |
object-oriented | 面向对象 |
object-base | 面向基类 |
object instance | 对象实例 |
parse/parsing | (语法)分析 |
parser | (语法)分析器 |
parser talbe | (语法)分析表 |
parser tree | (语法)分析树 |
pointer | 指针 |
procedure | 过程 |
procedural | 过程化 |
reference | 引用 |
subroutine | 子程序 |
symbol | 符号 |
syntax | 语法 |
syntax tree | 语法树 |
syntax analysis | 语法分析 |
syntax analyzer | 语法分析器 |
token | 字元 |
tokenize | 字元化 |
tokenizer | 字元转化器 |
type conversion | 类型转换 |
variable | 变量 |
硬件: 逻辑门;布尔运算;multiplexor(多路复用器);触发器(flip-flop);寄存器(register);RAM 单元;计数器;硬件描述语言(HDL,Hardware Description Language);芯片的仿真及测试.
体系架构: ALU/CPU 的设计与实现;机器代码;汇编语言程序设计;取址模式;I/O 内存印象.
操作系统: 内存管理;数学计算程序库;基本 I/O 驱动程序;屏幕管理;文件 I/O;对高级语言的支持
程序设计语言: 基于对象(object-base)的设计和编程模式;抽象数据类型;作用域;语法和语义;引用(reference)机制.
编译器: 词法分析: 自顶向下的语法分析;符号表(symbol table); 基于堆栈(stack-based)的虚拟机;代码生成: 数组和对象的实现.
数据结构和算法: 堆栈;哈希表;链表;递归;算术算法;几何算法;运行效率.
软件工程: 模块化设计;接口/实现范式;API 设计和文档;自动式测试;广义的程序概念设计;质量保证体系.
CHIP ALU {
IN
x[16], y[16], // 16-bit inputs
zx, // zero the x input?
nx, // negate the x input?
zy, // zero the y input?
ny, // negate the y input?
f, // compute out = x + y (if 1) or x & y (if 0)
no; // negate the out output?
OUT
out[16], // 16-bit output
zr, // 1 if (out == 0), 0 otherwise
ng; // 1 if (out < 0), 0 otherwise
PARTS:
Mux16(a=x, b=false, sel=zx, out=xx);
Mux16(a=y, b=false, sel=zy, out=yy);
Not16(in=xx, out=xxx);
Mux16(a=xx, b=xxx, sel=nx, out=xxxx);
Not16(in=yy, out=yyy);
Mux16(a=yy, b=yyy, sel=ny, out=yyyy);
Add16(a=xxxx, b=yyyy, out=xplusy);
And16(a=xxxx, b=yyyy, out=xandy);
Mux16(a=xandy, b=xplusy, sel=f, out=oo);
Not16(in=oo, out=notoo);
Mux16(a=oo, b=notoo, sel=no, out[15]=ng, out[0..7]=part1, out[8..15]=part2, out=out);
Not(in=notzero, out=zr);
Or(a=or1, b=or2, out=notzero);
Or8Way(in=part1, out=or1);
Or8Way(in=part2, out=or2);
}
非常建议先读一下冯诺依曼结构体系论述,这毕竟是整个计算机结构的基石啊
美籍匈牙利数学家冯·诺伊曼于 1946 年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺伊曼体系结构冯·诺伊曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯·诺伊曼的这个理论称为冯·诺伊曼体系结构。
PC 程序计数器自增指向下一个地址,把程序当做二进制数据来对待.
从 EDVAC 到当前最先进的计算机都采用的是冯·诺伊曼体系结构。所以冯·诺伊曼是当之无愧的数字计算机之父。