【计组】第一章 计算机系统概述
软件系统和硬件系统构成计算机系统
计算机功能部件
1)输入设备
2)输出设备
3)存储器
辅助存储器中的信息必须调入主存后,才能为CPU所访问。主存的工作方式是按照存储单元的地址进行存取;存储单元由存储元件组成,每个存储元件可以存储一个0或1,每个存储单元能存储的位数为存储字长
,存储字长可以是一字节或者字节的偶数倍。
1 word = 2 B 1 B = 8 bite
MAR(Memory Address Register)存储访存地址,从它的位数可以推出存储单元的个数,由于存储的是地址,故MAR长度与PC长度相同。
MDR(Memory Data Register)暂存要从存储器中读或写的信息,位数和存储字长相同。
4)运算器
5)控制器
控制器为计算机指挥中心,由程序计数器PC、指令寄存器IR和控制单元CU组成
PC用来存放当前指令的地址,可以自动加一形成下一条指令的地址,与MAR有一条直接通路。
IR用来存放当前指令,内容来自主存中的MDR 。
IR由操作码Op和地址码Ad构成,IR的Op送往CU分析指令,Ad送往MAR取操作数。
指令执行过程的描述
以取数并送往ACC的指令为例
1)根据PC取指令到IR
首先PC中存着的是当前指令的地址,将PC的内容送往MAR,MAR将地址送往地址线,(假设此时是读信号)根据地址从存储单元中读出指令,送往数据线,MDR从数据线中接受指令信息,传入IR。(IR用来存放当前指令,内容来自主存中的MDR)
2)指令译码并送出控制信号
IR的Op部分将送往CU,生成相应的控制信号。
3)取数操作
IR的Ad部分指示了操作数的地址,将Ad送往MAR,MAR转地址线,从主存读出操作数,通过数据线送MDR,再送往ACC。
完成指令后(PC)+1
计算机性能指标
机器字长
指进行一次整数运算所能处理的二进制数据位数,通常为字节的整数倍。
数据通路带宽
数据总线一次能并行传输信息的位数(这里指外部数据总线)。
主存容量
可以用字长*字数来衡量,其中字长由MDR反映,字数由MAR反映。
运算速度
*吞吐量:单位时间处理请求数量。
*响应时间:发送一个请求到取得结果的等待时间。
CPU时钟周期:它是CPU中最小的时间单位(有点量子化的味道)为主频的倒数。
主频:单位为Hz,反映了每秒有多少个时间周期。
CPI:执行一条指令需要的时间周期数,为一个平均值。
CPU执行时间:执行一个程序所花的时间,取决于程序的指令条数、CPI、主频
指令条数、CPI与主频相互制约。
MIPS:每秒执行多少百万条指令
类似的还有MFLOPS:每秒执行多少百万次浮点运算
常见问题
翻译程序、编译程序、解释程序、汇编程序:
翻译程序分为编译程序与解释程序。
编译程序一次全部将高级语言源程序翻译为目标程序;而解释程序则是翻译一句,翻译为对应的机器目标代码,执行一句,不会生成目标程序。
汇编程序就是一种翻译程序,它将汇编语言源程序翻译为机器语言程序。
汇编程序与编译程序
源语言为C++、C、java等,目标语言为汇编语言、机器语言,则为编译程序;
源语言为汇编语言,目标语言为机器语言,则为汇编程序。
机器字长、指令字长、存储字长
机器字长:计算机能直接处理的二进制数据位数,一般等于内部寄存器的大小机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度。
机器字长反映了计算机的运算精度,即字长越长,数的表示范围也越大,精度也越高。机器的字长也会影响机器的运算速度。倘若CPU字长较短,又要运算位数较多的数据,那么需要经过两次或多次的运算才能完成,这样势必影响整机的运行速度。
机器字长与主存储器字长通常是相同的,但也可以不同。不同的情况下,一般是主存储器字长小于机器字长,例如机器字长是32位,主存储器字长可以是32位,也可以是16位,当然,两者都会影响CPU的工作效率。
指令字长:一个指令字中包含二进制代码的总位数。指令字长取决于操作码的长度、操作码地址的长度和操作码地址的个数。不同的指令的字长是不同的。早期计算机的存储字长一般和机器的指令字长与数据字长相等,故访问一次主存便可取一条指令或一个数据。随着计算机的应用范围的不断扩大,解题精度的不断提高,往往要求指令字长是可变的,数据字长也要求可变。为了适应指令和数据字长的可变性,其长度不由存储字长来确定,而用字节的个数来表示。1个字节(Byte)被定义为由8位(Bit)二进制代码组成。当然,此时存储字长、指令字长、数据字长三者可各不相同,但它们必须是字节的整数倍。
指令字长等于机器字长的指令,称为单字长指令;
指令字长等于半个机器字长的指令,称为半字长指令;
指令字长等于两个机器字长的指令,称为双字长指令。例如,IBM370系列,它的指令格式有16位(半字)的,有32位(单字)的,还有48位(一个半字)的。
早期计算机使用多字长指令的目的,在于提供足够的地址来解决访问内存任何单元的寻址问题。但是使用多字长指令的缺点是必须两次或三次访问内存以取出一整条指令,这就降低了CPU的运算速度,同时又占用了更多的存储空间。
存储字长:一个存储单元存储二进制代码的位数。