数据表示与数据结构
数据表示指的是能由计算机硬件识别和引用的数据类型,表现在它有对这种类型的数据进行操作的指令和运算部件。(填)
数据结构是要通过软件影像,变换成计算机中所具有的数据表示来实现的。不同的数据表示可分为数据结构的实现提供不同的支持,表现为实现效率和方便性的不同。(填)
高级数据表示 (答)
1.自定义数据表示。自定义数据表示包括标志符数据表示和数据描述符两类。
2.向量、数组数据表示。为向量、数组数据结构的实现和快速运算提供更好的硬件支持的方法是增设向量、数组数据表示、组成向量机。有向量数据表示的处理机就是向量处理机,如向量流水机、阵列机、相联处理机等。
3.堆栈结构表示。堆栈数据结构在编译和子程序调用中很有用,为高效实现,不少计算机都设有堆栈数据表示。有的堆栈数据表示的计算机称为堆栈计算机。
标志符数据表示的主要优点是(答)
-
简化指令系统和程序设计
由于指令通用于多种数据类型的处理,减少了指令系统中指令的种类,因此简化了程序设计
-
简化了编译程序
在一般计算机中,目的代码的形成需要进行细致的语义分析。例如:当编译程序遇到 “+” 算子时,必须检查时哪种加法指令。而在带标志符的计算机中,编译程序只需形成通用的加法指令,编译程序缩短,编译过程加快,编译效率提高。
-
便于实现一致性校验。
可由计算机硬件直接快速检测出多种程序设计错误,提供了类型安全环境。
-
能由硬件自动变换数据类型。
如果操作数组相容但长度不同时,硬件能自动转换,然后运算
-
支持数据库系统的实现与数据类型无关的要求,是程序不用修改即可处理多种不同类型的数据
-
为软件调试和应用软件开发提供了支持。由于可用软件定义的捕捉标志位设置了断点,因此便于程序的跟踪和调试。加上类型安全环境的提供。为应用软件开发提供了良好的支持。
浮点数尾数的下溢处理方法 (答)
- 截断法
- 舍入法
- 恒置 “1” 法
- 查表舍入法。
寻址方式 (选、填)
主要有面向主存、面向寄存器、面向堆栈的寻址方式。
- 面向主存
- 主要访问内存,少量访问寄存器
- 面向寄存器
- 主要访问寄存器,少量访问主存和堆栈。
- 面向堆栈
- 主要访问堆栈,少量访问主存和寄存器
程序在主存中的定位技术有:(答)
- 静态再定位。
- 动态再定位。
- 虚实地址影像表。
指令系统的设计和优化(答)
在设计新的指令系统时,一般要按以下步骤反复多次进行,直至指令系统的效能达到很高为止。这些步骤依次为:
- 根据应用,初步拟出指令的分类和具体的指令。
- 试编出用该指令系统设计的各种高级语言的编译程序。
- 对各种算法编写大量的测试程序并进行模拟测试,看指令系统的操作码和寻址效能是否都比较高。
- 将程序中高频出现的指令串复合改成一条强功能新指令,即改用硬件方式实现;而将频度很低的指令的操作改用基本的指令串来完成,即用软件方式实现。
指令系统的发展和改进 (填)
主要可以分为面向目标程序、面向高级语言、面向操作系统优化实现的三个方面。
-
面向目标程序的优化改进
- 就是对已有机器进行指令系统进行分析,看哪些功能仍用基本指令串实现,哪些功能改用新指令实现,可以包括操作系统软件和应用软件在内的各种机器语言目标程序的实现概率。
- 该方法既能减少目标程序占用的存储空间,减少程序执行中的访存次数,缩短指令的执行时间,提高程序的运行速度,又使实现更为容易。
-
面向高级语言的优化实现改进
- 就是尽可能缩短高级语言和机器语言的语义差距,支持高级语言编译,缩短编译程序长度和编译时间。
-
面向操作系统的优化实现改进
- 目前操作系统几乎占用了计算机系统资源的 1/3 ,有的甚至超过 1/2。
CISC 还存在一下问题 (选、答)
- 指令系统庞大,一般指令在200条以上。许多指令功能异常复杂,需要有多种寻址方式、指令格式和指令长度。
- 许多指令的操作繁杂,执行速度很低,甚至不如用几条简单、基本的指令组合实现。
- 由于指令系统庞大,使高级语言编译程序选择目标指令的范围太大,因此,难以优化生成高效机器语言程序,编译程序也太长,太复杂。
- 由于指令系统庞大,各种指令的使用频度都不会太高,且差别很大,其中相当一部分指令的利用率很低。
采用 RISC 技术的好处主要有如下的几个方面(答)
- 简化指令系统设计,适合 VLSI 实现。由于指令条数少,寻址方式简单,指令格式规整划一,与CISC 相比,控制器的译码和执行硬件相对简单。
- 提高计算机的执行速度和效率。指令系统的精简可以加快指令的译码。控制器的简化可以缩短指令的执行延迟。访问次数的大大减少可以提高程序的执行速度。
- 降低设计成本,提高系统的可靠性。采用相对精简的控制器,缩短了设计周期,减少了设计错误和产品设计中被废的可能性,这些均会使设计成本降低,系统的可靠性提高。
- 可直接支持高级语言的实现,简化编译程序的设计。指令总数的减少,缩小了编译过程中对功能类似的机器指令进行选择的范围,减轻了对各种寻址方式的选择、分析和变换的负担,不用进行指令格式的变换,易于更换或取消指令。