首页 > 图书中心 >图书详情
计算机系统基础与实践(微课版)
作者:申兆岩、贾智平、王毅
丛书名:面向新工科专业建设计算机系列教材
定价:69元
印次:1-2
ISBN:9787302628477
出版日期:2023.05.01
印刷日期:2024.07.12
本书从系统的角度出发,结合龙芯处理器及Loongnix系统的相关实例,从软件和硬件两个方面对计算机系统进行由硬到软、自底向上的介绍,目的是帮助读者掌握完整的计算机系统层次结构,了解计算机相关技术概念,掌握计算机系统的相关知识。 本书分为基础部分与实践部分。基础部分主要介绍了计算机系统相关的基本概念、组合电路与时序电路、处理器体系结构、程序的加载与运行、数据的机器级表示和运算、层次化结构存储、异常控制流;实践部分则主要介绍了龙芯实验平台的软硬件环境、文件读写及加解密实验、二进制炸弹拆除实验、简单的计算机模拟器实验与LoongArch五级流水线模拟器中的Cache实验。 本书可作为高等院校计算机及相关专业“计算机系统原理”课程的教材,也可供从事计算机工作的工程技术人员参考。
more >前言 习近平总书记在党的二十大报告中指出:教育、科技、人才是全面建设社会主义现代化国家的基础性、战略性支撑。必须坚持科技是第一生产力、人才是第一资源、创新是第一动力,深入实施科教兴国战略、人才强国战略、创新驱动发展战略,这三大战略共同服务于创新型国家的建设。报告同时强调:推动战略性新兴产业融合集群发展,构建新一代信息技术、人工智能、生物技术、新能源、新材料、高端装备、绿色环保等一批新的增长引擎。 随着信息技术的发展,计算机被广泛应用于工业及商业等领域,新兴的软硬件技术层出不穷,我国自主研发的计算机系统不断涌现,计算机系统的相关知识也亟待更新。 本书从系统的角度出发,结合龙芯处理器架构的相关实例,从硬件和软件两个方面对计算机系统进行由硬到软、自底向上的介绍,目的是帮助读者掌握完整的计算机系统层次结构,了解计算机相关技术概念,掌握计算机系统的相关知识;从硬件电路、计算机子系统、处理器结构方面初步了解计算机系统的硬件架构、核心概念及软硬件实现;按照高级语言程序从开发到运行的路线,串联整个过程中的各个环节,帮助读者加深对程序从编译到运行及优化等相关知识的理解;从指令系统出发,结合LoongArch指令集的相关实例,介绍计算机系统指令集相关知识;结合相关实例对计算机I/O子系统、存储结构、计算机系统并行层次等相关知识进行详细讲解,使读者对计算机系统相关知识有全方位的了解与掌握,提高实践操作能力,为后续其他课程的学习打下坚实基础。 本书分为基础部分与实践部分,其中,基础部分共分为7章,实践部分共分为5个实验,各部分内容介绍如下。 第1章主要介绍计算机系统相关的基本概念。内容包括计算机系统中相关的定义、计算机系统的类别、层次结构、用户角色、体系架构及程序编译执行的基本过程,最后对计算机性能的衡量指标及测评方式进行了介绍。 第2章主要介绍组合电路与时序电路。内容包括组合电路与时序电路的描述方法、分析方法、具体表现与应用形式。 第3章主要介绍处理器体系结构,从指令集架构的角度出发进行阐述。首先描述了指令集架构的定义、分类、不同指令集的对比、指令集架构的发展历程与二进制翻译技术。其次详细介绍了龙芯指令集架构,包括龙芯指令系统概述,包括龙芯指令的编码与汇编助记格式、寄存器组织与寻址方式;不同类型的龙芯指令的设计细节,包括数据处理指令、转移指令、访存指令、栅障指令、浮点处理指令、特权指令与其他指令;龙芯汇编语言源程序格式和龙芯汇编语言的机器级表示。 第4章介绍程序的加载与运行,首先讲述源代码到可执行目标文件生成的整体流程,包括编译、汇编、链接步骤;然后根据可执行目标文件的运行过程引出指令的执行部分;最后介绍如何通过指令流水线技术提高处理器性能,内容包括指令流水线的步骤、存在的问题、异常处理及优化技术。 第5章主要介绍数据的机器级表示和运算。内容包括整数的编码表示方法、浮点数的编码表示方法、整数的运算和浮点数的运算。 第6章主要介绍了计算机层次化存储结构中的存储器分类、工作原理和组成方式,同时介绍了I/O系统的定义和组成,并对其软硬件结构进行层次分析。通过介绍存储技术,局部性原理与层次化存储结构,高速缓存的基本工作原理,虚拟存储器系统的实现技术,以及Flash存储器、磁盘存储器和NVM存储器等不同类型存储器的特点,使读者建立起如何利用不同类型的存储器构造层次化结构的存储系统的概念。并通过将I/O工作过程与软硬件系统结合的方式说明I/O系统的运行原理,帮助读者从I/O角度进一步认识并了解计算机系统,建立起对计算机系统的整体认识。 第7章主要介绍异常控制流,首先介绍控制流、异常控制流的概念,并介绍了计算机系统中进程、异常、中断等机制;以LoongArch为例详细介绍精简指令集架构下的异常与中断处理理念与实现方式。理解异常控制流可以帮助程序员更好地掌握计算机系统处理不同任务的底层实现,并根据应用场景选择最有效的程序实现方式。 实践部分均在龙芯教学实验平台设计和实现,借第一个实验简单介绍了龙芯实验平台的软硬件环境,在熟悉环境的同时完成字符的大小写转换。通过第二个读写文件实验,读者可以掌握动态库的创建与链接及常见的加解密算法。在第三个二进制炸弹拆除的实验中,读者需要使用GDB调试工具,与汇编陷阱斗智斗勇,经过第三个实验,读者会进一步理解LoongArch指令。第四个实验将帮助读者理解并掌握冯·诺依曼计算机的基本结构与工作原理。通过第五个实验,读者会对经典五级流水线的每个环节有一定的理解,在第三个实验中LoongArch指令的基础上,实现指令的汇编翻译过程,并探究Cache结构对CPU运行速度的影响。 本书由申兆岩编写第1、3、4、6、8章,贾智平编写第2、7章,王毅编写第5章,马良、魏倩、陈泽豪、朱紊滨、姜锡坤、郭瀚文也参与了本书编写的部分工作。2021年秋季,本讲稿已分别在山东大学计算机科学与技术学院本科生和研究生教学中试用。 由于编者水平和经验有限,加之时间仓促,书中难免存在不足之处,敬请读者谅解,并真诚欢迎读者提出宝贵的建议。 编者2023年1月
more >