1.2.2 计算机系统设计者的主要任务
计算机系统设计者的任务包括指令系统的设计、功能的组织、逻辑设计和其物理实现。它涉及集成电路设计、封装、电源、冷却等问题。要设计出一种最优的方案,需要熟悉从编译系统和操作系统到逻辑设计和组装等一系列技术。
下面我们列出计算机系统设计者的主要任务:
1. 确定用户对计算机系统的功能、价格和性能的要求
计算机系统设计者必须设计出具有一定功能,而且价格和性能也令用户满意的系统。功能要求是根据市场的需要而定的。应用软件常常对功能的确定起支配作用。如果一批应用软件基于某一种指令集,那么设计者必须在新的系统结构上实现这个指令集。如果某一类专门的应用有很大的市场,那么设计者必须考虑新的系统能适应这种应用。
具体的功能要求包括:
(1)应用领域 是专用还是通用? 是面向科学计算还是面向商用处理?专用机应用于特殊领域,要求有非常高的性能。通用机对各种应用都适合,有比较平衡的性能。科学计算应用领域要求浮点运算性能高。商用系统要求支持COBOL、数据库和事务处理。
(2) 软件兼容层次 如果要求在程序设计语言层兼容,则对设计者来说是最灵活的,但需要新的编译器。如果要求在目标代码或二进制代码层兼容,则系统结构完全确定了,灵活性差,但不需在软件或程序移植方面投资了。
(3)操作系统需求 如地址空间大小,这是很重要的特性,会限制应用范围。如存储管理,现代操作系统要求有这一功能,可采取分页或分段管理方式。如保护,不同的操作系统和应用要求页保护或段保护。
(4)标准 如浮点数标准,已存在IEEE、DEC、IBM等格式和算法。如I/O总线标准,已有VME、Sbus、PCI、SCSI等。如网络标准,要求支持不同的网络,如Eithernet、ATM
等。如程序设计语言标准,有ANSI C、Fortran 77、ANSI COBOL 等。
2. 软硬件的平衡
一旦所设计机器的功能要求确定下来后,设计者下一步必须考虑如何优化这一设计。最优设计方案的选择依赖于衡量标准的选择。最通用的标准包括价格和性能,在给定应用范围,我们可以通过一系列可以代表这一领域的程序来量化计算机的性能。有些性能在某些应用领域很重要,如可靠性和容错功能在事务处理中非常关键。
优化设计必须考虑硬件和软件的合理分配。一种功能由软件实现还是由硬件实现具有不同的优点。软件实现的要优点是设计容易、改进简单。硬件实现的好处是速度快,有较好的性能。但硬件实现也并不总是比软件实现快。例如一个先进的算法用软件实现能优于硬件实现的一个不好的算法。软件与硬件的平衡能得到性能价格比最佳的计算机。
有时,一种特殊的要求需要配置相应的硬件,如一台需进行大量浮点运算的用于科学计算的计算机几乎肯定要配置处理浮点操作的硬件,这不是功能问题,而是性能的问题。浮点操作也可以采用软件实现,但速度太慢而导致失去竞争力。比较起来,一台使用COBOL
语言处理商业应用的计算机要进行大量的十进制数和字符串操作。因此,许多系统结构包含具有这些功能的指令。而另外一些计算机则通过软件和标准的整数和逻辑操作来提供这些功能。这是协调软硬件实现的典型例子。
在两种设计方案的选择过程中,设计的复杂性是必须考虑的一个因素。复杂设计需要较长的完成时间。这意味着这样的设计需要有更高的性能才具有竞争力。一般来说,用软件实现复杂设计比用硬件容易一些。因此,可以将某些功能由硬件改用软件,另一方面,指令系统和组织结构的设计选择会影响实现的复杂性以及编译器和操作系统的复杂性,设计者必须考虑他所选择的设计方案在硬软件两方面实现的难易程度。
3 设计出符合今后发展方向的系统结构
一个成功的系统结构应该能经得住软、硬件技术的发展和应用的变化。因此设计者必须特别注意计算机应用和计算机技术的发展趋势,这样才可能延长一种机器的使用寿命。
软件的发展趋势也应受到注意,软件发展最重要的趋势之一是程序及其数据占用越来越多的存贮容量,程序所需存储容量每年平均增长1.5到2倍。因此相应地要求地址每年能增长0.5位到1位。过去20年里,另一个重要趋势是用高级语言代替汇编语言。这就加重了编译器的负担,也对系统结构对编译器的支持提出了要求。设计者必须对编译技术有所了解,因为它成为用户和机器之间的最基本的界面。还有一个重要趋势是编程模式的变化也需要系统结构的支持,但新的编程模式的出现速度比编译技术的发展慢得多,大约10年时间程序语言才能出现一次出色的改进。