赞
踩
数据处理是计算机系统最基本的功能,可以进行加减乘除等基本算术运算和与或非等逻辑运算
数据存储功能是计算机能采用自动工作方式的基本保证;计算机中提供的存储器使得程序和数据能事先被存储,并在需要时指令被取出自动执行
2.1 能够长期保存信息的像磁盘存储器那样的非易失性存储器
2.2 正在执行的程序和处理的数据需要存放在快速存储器中,因此有半导体元器件构成的随机访问存储器等
数据传送功能是指计算机内部的各个功能部件之间,计算机主机与外部设备之间,各个计算机系统之间进行信息交换的操作功能;例如数据处理的部件需要从存储部件中读取数据或写入数据
通常把进行数据处理的部件称为运算部件或运算器,主要的运算部件是算术逻辑部件(Arithmetic Logical Unit,简称ALU)
把进行数据存储的部件称为存储部件或存储器,主要分为外存和内存
把进行数据传送的部件称为互连部件,主要有总线,桥接器
计算机系统由硬件和软件两部分组成;
硬件(hardware):是物理装置的总称,有:芯片,板卡,外设,电缆
软件(software):包括运行在硬件上的程序和数据及其文档
程序(program):是指挥计算机如何操作的一个指令序列
数据(data):是指令操作的对象
绝大部分的计算机硬件基本组成仍然具有冯诺依曼结构计算机的特征
(1):采用“存储程序”工作方式
(2):计算机由运算器,控制器,存储器,输入设备和输出设备五个基本设备组成
(3):存储器不仅能存放数据,而且也能存放指令,形式上数据和指令没有区别
(4):计算机内部以二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序
中央处理器(Central Processing Unit,简称CPU),是整个计算机的核心部件,主要用于指令的执行;CPU主要包含两个基础部分:数据通路和控制器
(1) 数据通路(datapath) 主要是用来执行基本的算术和逻辑运算以及寄存器和存储器的读/写控制等,其中算术逻辑部件(ALU) 用来进行基本的算术和逻辑运算,ALU 中最基本的部件是 加法器,所有算术运算都可以基于加法运算和逻辑运算来实现
(2) 控制器(controller) 用来对指令进行译码,生成相应的控制信号,以控制数据通路进行正确的操作
存储器分为内存和外存;
(1)内存包括主存储器(main memory,简称 主存)和高速缓冲存储器(cache)
(2)外存包括辅助存储器和海量后备存储器;通常把系统运行时直接和主存交换信息的存储器称为富足存储器,简称(辅存),目前主要的辅助存储器时磁盘存储器和固态硬盘;而磁带存储器和光盘存储器的容量大,速度慢,主要用于信息的备份和脱机存档,因此它们被用作海量后备存储
外部设备简称外设,也称为I/O设备(Input/Output),外设通常由机械部分和电子部分组成,并且两部分通常时可以分开的;
(1)机械部分是外部设备本身,而电子部分则是控制外部设备工作的I/O控制器
(2)外设通过I/O控制器 连接到主机上,I/O控制器或I/O适配器统称为 设备控制器
(3)例如:键盘接口,打印机适配器,显示控制卡(显卡),网络控制卡(网卡)都是一种设备控制器,属于一种I/O模块
总线(bus) 数据传送时传输信息的介质,用于在部件之间传输信息,CPU,主存和I/O模块通过总线互连,在CPU和I/O模块中都内含相应的存储部件,即缓存器
一个典型的计算机系统的硬件组成
书上有具体的流程图片
(1)操作系统(Operating Systems,简称OS),主要用来管理整个计算机系统的资源,包括对它们进行调度,管理监视和服务,操作系统还提供计算机用户和硬件之间的人机交互界面,并提供对应用软件的支持
(2)语言处理系统主要用于提供一个用高级语言编程的环境,包括源程序编辑,翻译,调试,链接,装入运行等功能
以下是hello.c的C语言 源程序代码
#include<stdio.h>
int main()
{
printf("hello world!\n");
}
通过程序编辑软件得到hello.c文件,如第一个字节的值是35,代表字符’#';通常用ASCII码字符或汉字字符表示的文件称为文本文件(text file),源程序文件都是文本文件,是可显示和可读的
将hello.c进行 预处理,编译,汇编和链接,最终生成可执行目标文件;在UNIX系统中,可用GCC编译驱动程序进行处理,命令如下:
unix> gcc -o hello hello.c
gcc为GCC编译驱动程序名,-o表示后面为输出文件名,hello.c为要处理的源程序
Windows双击对应图标;Linux | Unix 在命令行中输入可执行文件名等多种方式启动执行
启动和执行hello程序的整个过程
————————————————————————————————————————————————————————————————————————————————————
总结:
每个可执行目标文件中都包含程序代码段,可执行文件的执行实际上是对应的程序代码段执行的过程
程序代码由一条一条机器指令构成
指令(instruction)是用0和1表示的一串0/1序列,用来指示CPU完成一个特定的原子操作:
(1):**取数指令(load instruction)**从存储单元中取出一个数据存放到CPU寄存器中
(2):**存数指令(store instruction)**将CPU寄存器的内容写入一个存储单元
(3):**ALU指令(ALU instruction)**将两个寄存器内容惊醒某种算术或逻辑运算后再送入一个CPU寄存器中
(4):输出指令(output instruction),将一个CPU寄存器的内容送到I/O模块的某个缓存器中
在上述hello程序中,字符串"hello world!\n"中的每一个字符都要通过取数指令从存储器送到CPU寄存器中,然后,再通过输出指令从CPU寄存器送到显示器适配器(也称显示控制器)中
————————————————————————————————————————————————————————————————————————————————————
指令通常被划分为若干字段,由操作码字段,地址码字段和立即数字段等
(1)操作码字段:指出指令的操作类型,如加,减,传送,跳转等
(2)地址码字段:指出指令所处理的操作数的地址,如寄存器编号,内存单元地址等
(3)立即数字段:指出具体的一个操作数或偏移量
《计算机系统基础》p14 图1.9中:给出了实现两个相邻数组元素交换功能的不同层次语言的描述
在高级语言源程序中,可直观地用三个赋值语句实现
temp=v[k];
v[k]=v[k+1];
v[k+1]=temp;
在经编译后生成的汇编语言源程序中,可用4个汇编指令表示,其中两条是取数指令lw(load word)
另两条是存数指令sw(store word)
编译后的程序后的结果:
lw $15,0($2)
lw $16,4($2)
sw $16,0($2)
sw $15,4($2)
在经汇编后生成的机器语言程序中,对应的机器指令是特定格式的二进制代码;
例如:第一条lw指令对应机器代码为"1000 1100 0100 1111 0000 0000 0000 0000"
这是一条MIPS(指令集架构)体系结构中的指令,其中,【高6位 “100011”位操作码,随后5位"00010"为寄存器编号2,再后面5位"01111"为另一个寄存器编号,最后16位表示立即数0】
CPU能够通过逻辑电路直接执行这种二进制表示的机器指令;指令执行时通过控制器堆指令操作码进行译码,解释成控制信号(control signal)控制数据通路执行;
例如:
控制信号ALUop=add可以控制ALU进行加法操作,RegWr可以控制将结果写入寄存器中
……,EXTop=1,ALUSelA=1,ALUSelB=ll……………………
—————————————————————————————————————————————————————————————————————————————————————
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。