组成原理

作业一:什么是计算?什么是计算机?计算机和计算机理论之间的关系?现代计算机和理论如何联系起来?

计算理论的发展

计数和进制:起源于农业生产的需要,在中西方同时诞生了十进制,使人能用手指进行计数。中国古代还有八卦——二进制,算盘——十六进制,天干地支——十二进制和六十进制。玛雅日历——二十进制。

数学第一个突破:把连续的实变问题转换成数学可以表达的问题。

第二个突破:用离散的数字计算机来求解这些问题。

可计算性:衡量一个问题是否可以求解,标准是能不能通过图灵机分解成有穷的步骤从而再现出来。

把质的复杂转换成量的复杂

  • 解析函数在基础系{1,$x$, $x^2$,….} 下的表示
  • 可积函数在某个正交系下的Fourier级数表示
  • 拓扑空间中用一簇集开集表示一个点
  • 连续问题离散化的标准基表示,如有限元方法,图像处理中的小波变换

二进制:布尔代数,香农把数字继电器电路和二进制统一起来“A Symbolic Analysis of Relay and Switching Circuits”

计算工具的演进

帕斯卡的自动进位加法器:从驱动方式来说是靠人力拨动的外动力机械加法器,从进位和计算的机制上来说是靠发条和齿轮进位的内动力加法器。没有程序存储的概念

巴贝奇的差分机:基于提花织布机改进,完全实现了程序存储的概念,可以进行对数、微积分等函数的运算。包括存储室、运算室、控制室、打印机。编程卡是外部输入

图灵机:把一个数字问题用机械可求解可穷尽的过程再现出来的理论模型。最初发明是为了解决希尔伯特二十三个问题之一:用公理化的方法证明一个问题是可解的。图灵机从行为层面模拟人脑

图灵机停机:取决于两个因素1.计算完成 2.控制器中预存的状态被满足。停机并不意味着可计算性的成立,可能代表着某种条件已穷尽

图灵测试:通过对某种行为的测试来判断是否为智能体。

数字计算机:从功能层面模拟人脑。

ENIAC:采用十进制,用于计算火炮的弹道运算速度,电子管。用开关、插头和插座来编程

冯·诺依曼机:用存储程序的方式实现更高效的编程,让程序可以自动执行。采用二进制电路更简单,指令和数据混合存储——普林斯顿结构(分开存储——哈佛结构)

冯·诺依曼结构

冯·诺依曼结构采用存储程序的工作方式,在不需人工干预的条件下,自动取值和执行,因此必须具备功能模块:

  • 将程序和原始数据输入计算机——输入→指令由操作码和地址码组成
  • 以二进制形式存储程序和数据——主存→按地址访问,线性编址(当时主要是穿孔纸带,故速度很慢)
  • 逐条取指令和操作数执行——控制器CU→控制流由指令流产生
  • 算术和逻辑运算——运算器ALU→核心部件
  • 运算结果输出——输出

操作人员通过I/O设备与主机进行通信。

现代计算的改进

在内存容量指数级提升后,CPU和内存之间的数据传输带宽成为了瓶颈。

现代计算机为了实现并行,进行了很多的优化:

  • 存储器为核心,并采用层次化的寄存器—cache—主存—辅存结构
  • 指令流水线和分支预测
  • 多核CPU
  • 更高速的I/O方式:程序中断、DMA、通道
  • 各部件通过总线连接

其实,以上的所有改进都可以总结为:如何充分利用CPU的处理能力,如何加快数据在各部件之间的传输

拓展:为何不采用哈佛结构?

哈佛体系实际上将存储时简化的复杂度转移到了程序运行时,对程序和数据的动态链接和物理映射需要更多的硬件支持,内部也要采用两套总线。

在实际运用中,简单的DSP嵌入式应用因为不需要运行太多的任务多采用哈佛结构,多用于安全性较高的工控领域。

在现代计算机中,CPU内部的Cache是有L1-I和L1-D的哈佛结构的

所以说冯`诺依曼机采用普林斯顿结构只是用整体层面而言的。

存储器

数据的表示

ASCII码表:0–48(0011 0000); 大写A–65(0100 0001);小写a–97(0110 0001)

数制转换:整数除二取余,小数乘二取整

原码

补码:用模实现加减法的统一,多表示一个数

反码:负数 补码 - 1

移码:比较大小,符号与补码相反

IEEE 754标准:阶码 +127

数据的存储

从什么地方开始存—大/小端:现代网络通信中一般采用大端模式,即对一个主存字中的多个字节,按从高位字节到低位字节存放—看主存地址而不是数据的高位

如何便于存取——数据对齐:编译器和链接器划分的最小存储单元确定对齐方式,如双字节、四字节对齐。注意:如果是结构体整体,那么以最长成员作为结构体本身的对齐方式

其他

LOAD直接寻址的访存次数:一般情况下需要先取指令再访存取数,但是LOAD指令可以同时进行,故只需访存一次。

配置实验环境

安装masm5

用于搭建汇编环境

我安装在E盘

安装DosBox和Debug工具

DosBox用于在64系统下使用masm5

将debug.exe放在某盘如E盘的根目录下,然后运行dosbox, 会发现它默认有一个虚拟的Z盘。

输入mount c e:\ 表示在dosbox 中虚拟出一个C盘,然后把本机的E盘挂载上去,就可以访问本机的文件了。

-> c: ->dir -> masm5 即可查看本机E盘中的masm相关文件, 常用指令

  • 编译:masm file.asm
  • 链接:link file.obj
  • 运行:file.exe

返回根目录 ->debug 出现 -_ 光标表示debug程序成功开始运行