2结构数据类型 结构数据类型是由一组相互关联的数据元素复合而成的数据类型, 相互之间的关联称为数据结构。结构数据类型一般不能直接由硬件表示 和识别,需要通过映象的方式存储到存储器的一维空间中去。常见的向 量、数组、字符串、堆栈、队列、记录等都属于结构数据类型。 其中向量、数组、字符串、记录等般由用户定义和使用;堆栈可 以由用户定义和使用,也可以由操作系统定义和使用;队列通常只在操 作系统中定义和使用。除此之外,还有图、表、树及链表等,也是在操 作系统中定义和使用
2.结构数据类型 结构数据类型是由一组相互关联的数据元素复合而成的数据类型, 相互之间的关联称为数据结构。结构数据类型一般不能直接由硬件表示 和识别,需要通过映象的方式存储到存储器的一维空间中去。常见的向 量、数组、字符串、堆栈、队列、记录等都属于结构数据类型。 其中向量、数组、字符串、记录等一般由用户定义和使用;堆栈可 以由用户定义和使用,也可以由操作系统定义和使用;队列通常只在操 作系统中定义和使用。除此之外,还有图、表、树及链表等,也是在操 作系统中定义和使用
2.1.2数据表示 1.数据表示 (1)数据表示是指计算机硬件所能直接表示和识别数据的形式。 它硏究的是由硬件直接表示和识别,指令系统可以直接调用的数据类型。 因此数据表示与数据类型有着密切的关系。比如 要直接识别和处理整型数据,计算机就必须有相应的指令和整型数 据运算部件 若要直接识别和处理浮点数,就必须要有浮点运算的指令和浮点运 算器 若要直接识别和处理布尔型数据,就必须要有逻辑运算指令和进行 逻辑运算的部件等。 属于数据表示的数据类型一般是最常用,也是比较简单的数据类型 比如: 整型数据、实型数据、布尔数据、字符串、堆栈等 在向量机中,向量也可以被硬件直接识别,通过向量指令来调用
2.1.2 数据表示 1. 数据表示 (1)数据表示是指计算机硬件所能直接表示和识别数据的形式。 它研究的是由硬件直接表示和识别,指令系统可以直接调用的数据类型。 因此数据表示与数据类型有着密切的关系。比如: 要直接识别和处理整型数据,计算机就必须有相应的指令和整型数 据运算部件; 若要直接识别和处理浮点数,就必须要有浮点运算的指令和浮点运 算器; 若要直接识别和处理布尔型数据,就必须要有逻辑运算指令和进行 逻辑运算的部件等。 属于数据表示的数据类型一般是最常用,也是比较简单的数据类型, 比如: 整型数据、实型数据、布尔数据、字符串、堆栈等; 在向量机中,向量也可以被硬件直接识别,通过向量指令来调用
(2)数据结构硏究的主要是面向系统软件和面向应用领域所需要处理 的数据类型,它研究数据类型的逻辑结构与物理结构之间的关系与算法。除 了数据表示所硏究的数据之外,其它数据般都属于数据结构所要硏究的内 谷 数据表示和数据结构分别是数据类型的子集。它确定哪些数据用数据表 示实现,哪些数据用数据结构实现,实质上是硬软件之间的主要界面之- 也是计算机系统设计中硬软件分配中的一项重要的内容。 2·确定数据表示的原则 通过以上分析,已经知道数据表示的重要性。那么,如何确定哪些数据 类型用数据表示来实现呢?以下有四个方面的意见,供读者参考。 ①有利于提高数据处理能力,缩短程序的运行时间 ②可减少CPU与主存之间的数据传送量; ③通用性强,利用率高; ④还要综合考虑系统结构的复杂性、可实现性以及总的性能价格比。 下面通过实例,进一步说明在计算机中数据表示的重要性
(2)数据结构研究的主要是面向系统软件和面向应用领域所需要处理 的数据类型,它研究数据类型的逻辑结构与物理结构之间的关系与算法。除 了数据表示所研究的数据之外,其它数据一般都属于数据结构所要研究的内 容。 数据表示和数据结构分别是数据类型的子集。它确定哪些数据用数据表 示实现,哪些数据用数据结构实现,实质上是硬软件之间的主要界面之一, 也是计算机系统设计中硬软件分配中的一项重要的内容。 2.确定数据表示的原则 通过以上分析,已经知道数据表示的重要性。那么,如何确定哪些数据 类型用数据表示来实现呢?以下有四个方面的意见,供读者参考。 ① 有利于提高数据处理能力,缩短程序的运行时间; ② 可减少CPU与主存之间的数据传送量; ③ 通用性强,利用率高; ④ 还要综合考虑系统结构的复杂性、可实现性以及总的性能价格比。 下面通过实例,进一步说明在计算机中数据表示的重要性
【例2.1】比较用定点机实现浮点运算和浮点机运算的效果。 设有一台定点机,在进行科学运算时的速度是每秒1千万次。如 果用来实现32位的浮点运算,平均每次要执行100条以上的指令,访 问存储器的次数也要增加100倍。这就是说,实际的运算速度至少下 降100倍。如果用同档次(主频相同,字长都是32位)的浮点机运算 虽然浮点运算的指令周期般是定点运算指令周期的3倍,那么在浮 点机上进行浮点运算的速度仍然要比定点机进行浮点运算快33倍以 上
【例2.1】比较用定点机实现浮点运算和浮点机运算的效果。 设有一台定点机,在进行科学运算时的速度是每秒1千万次。如 果用来实现32位的浮点运算,平均每次要执行100条以上的指令,访 问存储器的次数也要增加100倍。这就是说,实际的运算速度至少下 降100倍。如果用同档次(主频相同,字长都是32位)的浮点机运算, 虽然浮点运算的指令周期一般是定点运算指令周期的3倍,那么在浮 点机上进行浮点运算的速度仍然要比定点机进行浮点运算快33倍以 上
【例2.2】比较普通计算机实现向量运算和向量机运算的效果。 设在普通计算机上实现两个200×200矩阵的加法运算。如果用普通 的计算机实现二维矩阵运算,一般需要编写双重循环程序,其中内循环 200次,外循环200次,这就是说,需要执行4000次加法指令。如果 台向量机有200个处理器,且具有向量数据表示,那么对于200×200矩 阵的加法运算,仅需要执行200次运算就可以了;如果向量机有 200×200=40000个处理器,那么仅执行次运算指令就可以完成全部 运算。显然,用向量机求解要比普通计算机快得多。另外,在普通计算 机上运算时访问存储器的次数(访存周期)至少为4×40000次;而在 200个处理器的向量机上,访问存储器的次数(访存周期)可估算为 4×200次,在200×200个处理器的向量机上,访问存储器的次数(访存 周期)仅为4次。为了便于比较,没有考虑其它辅助指令
【例2.2】比较普通计算机实现向量运算和向量机运算的效果。 设在普通计算机上实现两个200×200矩阵的加法运算。如果用普通 的计算机实现二维矩阵运算,一般需要编写双重循环程序,其中内循环 200次,外循环200次,这就是说,需要执行40000次加法指令。如果一 台向量机有200个处理器,且具有向量数据表示,那么对于200×200矩 阵的加法运算,仅需要执行200次运算就可以了;如果向量机有 200×200=40000个处理器,那么仅执行一次运算指令就可以完成全部 运算。显然,用向量机求解要比普通计算机快得多。另外,在普通计算 机上运算时访问存储器的次数(访存周期)至少为4×40000次;而在 200个处理器的向量机上,访问存储器的次数(访存周期)可估算为 4×200次,在200×200个处理器的向量机上,访问存储器的次数(访存 周期)仅为4次。为了便于比较,没有考虑其它辅助指令