资源描述:
《计算机系统基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机是如何执行程序的?南京大学计算机系袁春风email:cfyuan@nju.edu.cn2013.11主要内容计算机硬件是什么样子的?应用问题离电信号到底有多远?软件和硬件的接口界面是什么?指令貌似很关键,它是何东东?高级语言程序如何转换为机器级代码?计算机中如何表示整数并进行运算?举例说明整个过程PC里面长啥样啊?PC主板是啥东东?CPU插座内存条PCI总线插槽PC主存储器芯片由若干内存条组成把若干片DRAM芯片焊装在一小条印制电路板上制成内存条必须插在主板上的内存条插槽中才能使用计算机中的芯片是什么啊?个人计算机由主机和外设组成主机中包含多个电路板每个电路板
2、中有十几个芯片每个集成电路中有十几个模块每个模块中有上千万个单元各单元有十几个门电路每个门电路实现基本的逻辑运算所有信息都用二进制编码表示计算机由芯片构成,芯片包含若干门电路,门电路由若干晶体管组成集成电路芯片是怎么造出来的呢?单晶硅锭圆形薄片/硅抛光片(6/8/12寸,厚度不足1mm)IC小片/芯片不合格的用磁浆点上记号封装:将芯片固定在塑胶或陶瓷基座上,把芯片上蚀刻出来的引线与基座底部伸出的引脚连接,盖上盖板并封焊成芯片约需400多道工序!“晶圆”/大芯片Pentium4处理器芯片内部布局控制器控制器指令Cache数据CacheI/O接口浮点数和多媒体处理控制器高级
3、流水线和超线程支持控制器整数处理二级Cache和内存访问接口南京大学学生设计的CPU框图5级MIPS架构基本流水线CPU什么是计算机?计算机是一种能对数字化信息进行自动、高速算术和逻辑运算的通用处理装置。计算机的功能数据运算、数据存储、数据传送、控制计算机的基本组成软件+硬件(中间是指令系统)软件:系统软件+应用软件硬件:控制器+运算器+存储器+输入/输出计算机系统到底是干什么的呢?搬数据数据运算存数据计算机是按照什么思路造出来的呢?冯·诺依曼结构的主要思想:计算机应由运算器、控制器、存储器、输入设备和输出设备五个基本部件组成。各基本部件的功能是:存储器不仅能存放数据,
4、而且也能存放指令,形式上两者没有区别,但计算机应能区分数据还是指令;控制器应能自动执行指令;运算器应能进行加/减/乘/除四种基本算术运算,并且也能进行一些逻辑运算和附加运算;操作人员可以通过输入设备、输出设备和主机进行通信。内部以二进制表示指令和数据。每条指令由操作码和地址码两部分组成。操作码指出操作类型,地址码指出操作数的地址。由一串指令组成程序。采用“存储程序”工作方式。一台计算机到底有哪几部分组成呢?PC:程序计数器;ALU:算术/逻辑单元;USB:通用串行总线CPU输入/输出主存Hardware/SoftwareInterface(界面)机器语言由指令代码构成,
5、能被硬件直接执行。软件和硬件的界面:ISA(InstructionSetArchitecture)指令集体系结构软件硬件指令是啥东东呢?…,EXTop=1,ALUSelA=1,ALUSelB=11,ALUop=add,IorD=1,Read,MemtoReg=1,RegWr=1,......temp=v[k];v[k]=v[k+1];v[k+1]=temp;lw$15,0($2)lw$16,4($2)sw$16,0($2)sw$15,4($2)1000110001001111000000000000000010001100010100000000000000000100
6、1010110001010000000000000000000010101100010011110000000000000100软件硬件指令就是一串0/1序列,其中要告诉CPU从哪里取数据、CPU做什么操作、结果存到哪里等。汇编指令和机器指令是一一对应的高级语言好懂,汇编语言勉强,机器语言完全读不懂啊!软件到底有哪几类啊?Systemsoftware(系统软件)-简化编程过程,并使资源被有效利用操作系统(OperatingSystem):资源管理,用户接口语言处理系统:翻译程序+Linker,Debug,etc…翻译程序(Translator)有三类:汇编程序(Asse
7、mbler):汇编语言源程序→机器语言目标程序编译程序(Complier):高级语言源程序→汇编/机器语言目标程序解释程序(Interpreter):将高级语言语句逐条翻译成机器指令并立即执行,不生成目标文件。其他实用程序:如:磁盘碎片整理程序、备份程序等Applicationsoftware(应用软件)-解决具体应用问题/完成具体应用任务各类媒体处理程序:Word/Image/Graphics/…管理信息系统(MIS)游戏软件,…一个典型程序的转换处理过程1#include23intmain()4{5printf("h