文档介绍:第二章数据的表示与指令系统设计
内容提要:
指令系统是计算机系统中硬件与软件界面的重要标志。数据是指令系统所处理的对象,它的类型与表示方式对于一台计算机来说是非常重要的。在此首先对计算机中的数据类型与表示作以简单的介绍,然后讲述指令系统的设计方法、CISC与RISC计算机的特点等。
第二章数据的表示与指令系统设计
数据的类型与表示
指令系统设计
CISC和RISC计算机比较
数据的类型与表示
数据类型
数据表示
定点数与浮点数
向量数据表示
自定义数据表示
数据类型
在计算机中数据有三种,一种是用户定义的数据;另一种是系统数据;第三种是指令字。
数据类型与数据不同,它除了一组数值的集合之外,还包括作用于该数值集合上的操作集。比如整型数据类型是指整型数据和相应的算术运算操作集;
布尔数据类型是指布尔数据(真和假)和相应的运算:“与”、“或”、“非”、“异或”等。
从系统结构的观点出发,数据类型可分为基本数据、结构数据和抽象数据类型。本节主要讨论基本数据类型和结构数据类型。
基本数据类型是指可由计算机直接表示,通过指令直接操作的数据。包括:
二进制位、二进制位串、整数、自然数(正整数)、实数(浮点数)、布尔数和字符。
二进制位是二进制数的基本单位,可对其进行各种算术/逻辑运算。
二进制位串是指若干位二进制数,可对其进行各种算术/逻辑运算和移位操作,其位数称为长度,常用L表示;当L=8时,称为一个字节,也称为字节数据。
布尔数也是一位二进制数,其值有“真”和“假”,可对其进行“与”、“或”、“非”、“异或”等布尔操作。
字符是符号的数字化表示,目前采用的主要是ASCII码,用7位二进制串表示一个字符;在一些大的系统中,常采用EBCDIC码,是用8位二进制串表示一个字符。
至于整数、自然数(正整数)、实数(浮点数),是按照数学习惯所用到的数据类型。除了用二进制表示的数据之外,还可以使用十进制数,但是在计算机中都是用二进制位串来表示的,可对其进行各种算术运算和移位操作,也可按照逻辑数进行逻辑运算。
结构数据类型是由一组相互关联的数据元素复合而成的数据类型,相互之间的关联称为数据结构。结构数据类型一般不能直接由硬件表示和识别,需要通过映象的方式存储到存储器的一维空间中去。常见的向量、数组、字符串、堆栈、队列、记录等都属于结构数据类型。
其中向量、数组、字符串、记录等一般由用户定义和使用;堆栈可以由用户定义和使用,也可以由操作系统定义和使用;队列通常只在操作系统中定义和使用。除此之外,还有图、表、树及链表等,也是在操作系统中定义和使用。
数据表示
1. 数据表示
(1)数据表示是指计算机硬件所能直接表示和识别数据的形式。它研究的是由硬件直接表示和识别,指令系统可以直接调用的数据类型。因此数据表示与数据类型有着密切的关系。比如:
要直接识别和处理整型数据,计算机就必须有相应的指令和整型数据运算部件;
若要直接识别和处理浮点数,就必须要有浮点运算的指令和浮点运算器;
若要直接识别和处理布尔型数据,就必须要有逻辑运算指令和进行逻辑运算的部件等。
属于数据表示的数据类型一般是最常用,也是比较简单的数据类型,比如:
整型数据、实型数据、布尔数据、字符串、堆栈等;
在向量机中,向量也可以被硬件直接识别,通过向量指令来调用。
(2)数据结构研究的主要是面向系统软件和面向应用领域所需要处理的数据类型,它研究数据类型的逻辑结构与物理结构之间的关系与算法。除了数据表示所研究的数据之外,其它数据一般都属于数据结构所要研究的内容。
数据表示和数据结构分别是数据类型的子集。它确定哪些数据用数据表示实现,哪些数据用数据结构实现,实质上是硬软件之间的主要界面之一,也是计算机系统设计中硬软件分配中的一项重要的内容。
通过以上分析,已经知道数据表示的重要性。那么,如何确定哪些数据类型用数据表示来实现呢?以下有四个方面的意见,供读者参考。
①有利于提高数据处理能力,缩短程序的运行时间;
②可减少CPU与主存之间的数据传送量;
③通用性强,利用率高;
④还要综合考虑系统结构的复杂性、可实现性以及总的性能价格比。
下面通过实例,进一步说明在计算机中数据表示的重要性。
【】比较用定点机实现浮点运算和浮点机运算的效果。
设有一台定点机,在进行科学运算时的速度是每秒1千万次。如果用来实现32位的浮点运算,平均每次要执行100条以上的指令,访问存储器的次数也要增加100倍。这就是说,实际的运算速度至少下降100倍。如果用同档