图书前言

计算机硬件系统由中央处理器(CPU)、存储器、输入/输出系统等部件构成,掌握计算机硬件基础知识,理解计算机系统各部件的基本组成、内部运行机制以及计算机系统运行的基本原理,是对计算机专业学生的基本要求。在此基础上,能具备一定的硬件系统设计能力,对今后从事硬件设计相关工作,或者是进行更为深入的学习和研究,都是至关重要的。

  计算机专业课程体系中,硬件课程主要包括数字逻辑、计算机组成原理、计算机系统结构、计算机接口技术、嵌入式系统等。这些课程,从基本的门电路开始,系统讲解从逻辑门电路到计算机的基本部件的组成和功能,以及这些部件如何构成整机系统,执行计算机指令和程序的过程。其中,计算机组成原理(Computer Organization)是本科计算机专业的核心基础课程,在课程体系中占有重要的位置。它以程序设计语言及数字逻辑电路为先导课程,重点解析计算机硬件系统的基本组成、运行原理和协同工作机制,分析计算机组成对系统性能的影响,讲授计算机系统的基本设计方法,帮助学生建立计算机整机系统的概念,为学习系统结构、操作系统等课程提供扎实基础。

  计算机硬件课程工程性和实践性都很强,教学实验是教学过程中不可缺少的环节,对学生掌握理论知识,培养大家的设计能力都十分重要,教学实验设计也是一项挑战性工作。在实验内容上,不但要有能体现计算机各部件的基本硬件组成和内部运行原理的基础实验,也需要有能体现计算机内部协同工作机制,尤其是软硬件协同工作的系统实验,甚至还需要一些能结合如编译系统、操作系统课程内容的综合性实验供一些学有余力的学生选做;在实验方法上,既要满足硬件系列课程基础性的要求,也要采用当前主流的硬件系统设计和实现方法,以提高学生的硬件系统设计和调试能力;在实验平台设计上,要注重体现系统观点,提供软硬件系统框架,以承载实验内容,并满足实验方法上的要求。

  THINPAD(TsingHua mINi PAD)教学计算机是清华大学计算机系计算机组成原理教学组推出的系列教学计算机的新版本。它继承了原来TEC2000系列教学机的面向系统、硬软件配置齐全、支持的实验可全面覆盖课程大纲要求的知识点等特点;同时,根据教学大纲将指令流水作为基本教学要求的实际情况,增强了对指令流水、存储管理等实验内容的设置,并进一步扩展了外部接口,使THINPAD实验计算机更为适应新时代计算机组成原理课程教学的需要,同时也能满足其他计算机硬件课程教学实验的要求。

  具体来说,THINPAD实验计算机具有以下突出的特点: 

  (1) 以计算机系统为实验设计目标,配置了基本齐全的软、硬件系统,使教学计算机在组成和系统结构上与实际的计算机基本相同,只是在功能上有所简化,性能上有所降低。

  (2) 实验机字长16位,降低了成本,也缩小了实验的规模,能满足教学实验的要求。

  (3) 实验机指令系统全面采用MIPS指令格式(基本来自于MIPS 16e),与课堂教学采用的32位MIPS指令系统设计理念相同但细节上有所区别,可方便学生在实验中加深对教学内容的理解,巩固课堂教学的效果。

  (4) 可支持丰富的教学实验,基本可覆盖计算机组成原理课程的教学重点,并能完成数字逻辑、计算机接口技术、系统结构课程的部分实验。

  (5) 利用硬件描述语言编程完成实验,使学生可在实验中掌握基本的硬件设计方法,培养硬件系统设计和调试能力。

  (6) 教学机配备了多种常用的外部设备接口,方便学生在实验中选用。

根据计算机的层次结构,图1给出了THINPAD教学计算机系统的层次图。

图1THINPAD实验计算机系统层次结构图

  本书作为计算机硬件系统实验教程,将以THINPAD教学计算机为实验平台,介绍它的硬件和软件系统的组成和功能,为方便学生学习,粗略介绍了硬件描述语言VHDL的基本知识和编程方法,然后,设计了一系列教学实验,以指导学生在学习计算机硬件课程,尤其是计算机组成原理课程时进行选做。全书共7章,各章主要内容如下。

第1章THINPAD教学计算机硬件平台: 介绍THINPAD教学计算机硬件的组成及连接方式,说明其在教学计算机中的作用。

第2章THINPAD教学计算机软件平台: 介绍THINPAD教学计算机使用的THCO MIPS指令系统,组成教学计算机软件系统的各程序的功能及使用方法,包括汇编程序、监控程序、指令模拟程序等。

第3章VHDL硬件描述语言: 本章简要介绍VHDL语言的基本知识。

第4章开发环境: 本章主要介绍教学计算机核心芯片及其开发环境,通过示例帮助读者掌握硬件设计的基本流程。

第5章验证性实验: 本章给出了计算机组成原理课程的一些验证性实验的要求,主要是计算机中各重要组成逻辑器件的基本功能和内部实现。验证性实验对掌握课堂教学内容有重要的帮助,同时,也是后续设计性实验的基础。

第6章设计性实验: 本章给出了一些设计性实验的要求。设计性实验要求学生在掌握课堂教学内容的基础上,运用所学知识设计计算机硬件的组成部件并进行调试,以帮助大家加深对知识点的理解。

第7章综合性实验: 综合型实验要求学生在完成计算机组成课程学习的基础上,全面运用所学知识,设计和实现一台完整的计算机系统,通过实践检验课程的学习成果,培养综合运用知识解决实际问题的能力。另外,该章后半部分的扩展实验为综合性实验的补充,供学有余力的学生在完成综合性实验后进行功能扩展。

  本书中设计了3个层次的多个教学实验。这些实验内容十分经典,完成这些实验对学习计算机组成原理知识肯定是大有裨益。但是,限于教学实验的课时,全部完成这些教学实验基本不太可能。我们建议大家根据各自的教学目标,从下面方案中选择一个完成。

  (1) 研究型大学计算机专业。研究型大学计算机专业本科生的目标是培养计算机设计人才,掌握计算机各组成部件的基本运行原理和运行机制是计算机组成原理课程的教学目的。教学实验应以完成综合性实验为教学目标,在此之前,可先完成ALU实验、I/O实验等验证性实验,以及控制器设计等设计性实验,为完成综合性实验打好基础。

  (2) 应用型大学计算机专业。应用型大学计算机专业本科生的目标是培养计算机应用人才,相关硬件课程的教学目标是为学生今后应用计算机技术打好基础,希望他们能掌握计算机的基本组成以及基本的运行机制。教学实验以完成设计性实验为目标,不需要完成综合型实验。

  (3) 非计算机专业。对这些学生的教学要求是能了解计算机的基本组成以及基本的运行原理即可,实验要求以完成验证性实验为目标。

在本书出版之际,作者十分感谢王诚教授对“计算机组成原理”课程教学所做出的贡献,他总结的教学方法和教学理念给了我们有力的指导,他还开创了对教学计算机的研制工作,对THINPAD的研制也给出了具体的建议。另外,清华大学计算机系袁长俊、周源、陈勇、金昊衠、刘聪、张腾、刘亚楠、曹建勋、刘列、徐展凯、蒋生健、高学成等都对教学计算机的研制做出了贡献。

  本书第2章、第5~7章主要由刘卫东编写,第1章、第3章和第4章由李山山编写,宋佳兴带领学生对全部实验在THINPAD教学计算机上进行了验证。限于作者的时间和水平,书中可能还存在不足甚至错误之处,恳请广大读者批评指正。

  

作者

  2013年6月