顶部
收藏

计算机系统(基于RISC-V+Linux平台)


作者:
袁春风 余子濠 陈璐 编著
定价:
75.00元
ISBN:
978-7-04-061499-2
版面字数:
730.000千字
开本:
16开
全书页数:
暂无
装帧形式:
平装
重点项目:
暂无
出版时间:
2024-04-29
读者对象:
高等教育
一级分类:
计算机/教育技术类
二级分类:
计算机类专业核心课程
三级分类:
计算机组织与体系结构

本书是计算机领域本科教育教学改革试点工作(简称“101计划”)系列教材之一。本书主要介绍计算机系统相关知识体系。全书共分10章,主要内容包括计算机系统概述、数据的类型及机器级表示、数据的运算及运算部件、指令系统及程序的机器级表示、程序的链接、中央处理器、存储器层次结构、进程与异常控制流、I/O操作的实现、并行处理系统等。

本书内容详尽,概念清楚,通俗易懂,实例丰富,并提供了大量典型习题供读者练习。本书可以作为高等学校计算机及相关专业本科计算机系统课程的基础性教材,也可以作为有关专业研究生或计算机技术人员的参考书。

  • 前辅文
  • 第1章 计算机系统概述
    • 1.1 计算机系统基本工作原理
      • 1.1.1 一些简单的C程序例子
      • 1.1.2 冯·诺依曼结构计算机
      • 1.1.3 程序和指令的执行过程
    • 1.2 程序的开发与运行
      • 1.2.1 程序设计语言和翻译程序
      • 1.2.2 从源程序到可执行目标文件
      • 1.2.3 可执行文件的启动和执行
    • 1.3 计算机系统的基本组成
      • 1.3.1 计算机硬件
      • 1.3.2 计算机软件
    • 1.4 计算机系统的层次结构
      • 1.4.1 计算机系统的不同用户
      • 1.4.2 计算机系统抽象层的转换
    • 1.5 本章小结
    • 习题
  • 第2章 数据的类型及机器级表示
    • 2.1 C程序中的变量和常量
    • 2.2 进位记数制和定点数表示
      • 2.2.1 信息的二进制编码
      • 2.2.2 定点数的编码表示
    • 2.3 整数的表示
      • 2.3.1 无符号整数和带符号整数
      • 2.3.2 C语言中的整数类型
    • 2.4 浮点数的表示
      • 2.4.1 浮点数的表示范围和精度
      • 2.4.2 IEEE 754浮点标准
      • 2.4.3 C语言中的浮点数类型
    • 2.5 非数值数据的编码表示
    • 2.6 数据的宽度、存储和转换
      • 2.6.1 数据的宽度和单位
      • 2.6.2 数据的存储和排列顺序
      • 2.6.3 数据类型的自动转换
    • 2.7 本章小结
    • 习题
  • 第3章 数据的运算及运算部件
    • 3.1 高级语言和机器指令中的运算
      • 3.1.1 C语言程序中的运算
      • 3.1.2 RISC-V指令中涉及的运算
    • 3.2 基本运算部件
      • 3.2.1 全加器和加法器
      • 3.2.2 带标志加法器和ALU
    • 3.3 定点运算及其运算部件
      • 3.3.1 补码加减运算
      • *3.3.2 原码加减运算
      • 3.3.3 无符号数乘运算
      • 3.3.4 原码乘运算
      • 3.3.5 补码乘运算
      • *3.3.6 阵列乘法器
      • 3.3.7 无符号数除运算
      • *3.3.8 原码除运算
      • *3.3.9 补码除运算
    • 3.4 整数乘除运算
      • 3.4.1 乘除运算溢出判断
      • 3.4.2 常量的乘除运算
    • 3.5 浮点数的运算
      • 3.5.1 浮点数加减运算
      • *3.5.2 浮点数乘除运算
      • *3.5.3 阶码溢出判断
    • 3.6 本章小结
    • 习题
  • 第4章 指令系统及程序的机器级表示
    • 4.1 指令格式
      • 4.1.1 指令地址码的个数
      • 4.1.2 指令格式设计原则
    • 4.2 指令系统设计
      • 4.2.1 操作数类型
      • 4.2.2 寻址方式
      • 4.2.3 操作类型
      • 4.2.4 操作码编码
      • 4.2.5 标志信息的生成与使用
      • 4.2.6 指令系统设计风格
    • 4.3 RISC-V指令系统
      • 4.3.1 RISC-V指令系统概述
      • 4.3.2 RISC-V指令参考卡和指令格式
      • 4.3.3 RISC-V基础整数指令集
      • 4.3.4 RISC-V可选的扩展指令集
    • 4.4 程序的机器级表示
      • 4.4.1 过程调用约定
      • 4.4.2 过程调用举例
      • 4.4.3 选择结构的机器级表示
      • 4.4.4 循环结构的机器级表示
      • 4.4.5 程序的机器级表示综合举例
    • 4.5 复杂数据类型的分配和访问
      • 4.5.1 数组元素的分配和访问
      • 4.5.2 结构体数据的分配和访问
      • 4.5.3 联合体数据的分配和访问
      • 4.5.4 数据的对齐
    • 4.6 本章小结
    • 习题
  • 第5章 程序的链接
    • 5.1 编译、汇编和静态链接
      • 5.1.1 编译和汇编操作
      • 5.1.2 RISC-V汇编器
      • 5.1.3 可执行文件的生成
    • 5.2 目标文件格式
      • 5.2.1 ELF目标文件格式
      • 5.2.2 可重定位目标文件格式
      • 5.2.3 可执行目标文件格式
      • 5.2.4 可执行文件的存储器映像
    • 5.3 符号表和符号解析
      • 5.3.1 符号和符号表
      • 5.3.2 符号解析
      • 5.3.3 与静态库的链接
    • 5.4 符号的重定位
      • 5.4.1 重定位信息
      • 5.4.2 重定位过程
      • 5.4.3 RISC-V代码的重定位
    • 5.5 动态链接
      • 5.5.1 动态链接的特性
      • 5.5.2 程序加载时的动态链接
      • 5.5.3 程序运行时的动态链接
      • *5.5.4 位置无关代码
      • *5.5.5 位置无关可执行文件
    • 5.6 本章小结
    • 习题
  • 第6章 中央处理器
    • 6.1 CPU概述
      • 6.1.1 程序及指令的执行过程
      • 6.1.2 CPU的基本功能和组成
      • 6.1.3 打断程序正常执行的事件
      • 6.1.4 数据通路的基本结构
      • 6.1.5 计算机性能与CPU时间
    • 6.2 单周期处理器设计
      • 6.2.1 目标指令的功能描述
      • 6.2.2 数据通路的设计
      • 6.2.3 控制单元的设计
      • 6.2.4 时钟周期的确定
    • 6.3 多周期处理器设计
      • 6.3.1 多周期处理器设计
      • 6.3.2 硬连线控制器设计
      • *6.3.3 微程序控制器设计
      • *6.3.4 带异常处理的CPU设计
    • 6.4 流水线处理器设计
      • 6.4.1 流水线处理器概述
      • 6.4.2 指令流水段分析
      • 6.4.3 流水线数据通路的设计
      • *6.4.4 流水线控制器的设计
    • 6.5 流水线冒险及其处理
      • *6.5.1 结构冒险
      • *6.5.2 数据冒险
      • *6.5.3 控制冒险
    • *6.6 高级流水线技术
      • 6.6.1 静态多发射处理器
      • 6.6.2 动态多发射处理器
    • 6.7 本章小结
    • 习题
  • 第7章 存储器层次结构
    • 7.1 存储器概述
      • 7.1.1 存储器的分类
      • 7.1.2 主存的组成和基本操作
      • 7.1.3 层次化存储结构
      • 7.1.4 程序访问的局部性
    • 7.2 半导体随机存取存储器
      • 7.2.1 基本存储元件
      • 7.2.2 DRAM芯片
      • 7.2.3 SDRAM芯片技术
      • 7.2.4 内存条及其与CPU的连接
      • 7.2.5 存储器芯片的扩展
      • 7.2.6 主存控制器
    • 7.3 外部存储器
      • 7.3.1 磁盘存储器的结构
      • 7.3.2 磁盘存储器的性能指标
      • *7.3.3 冗余磁盘阵列
      • *7.3.4 闪速存储器和U盘
      • *7.3.5 固态硬盘
    • 7.4 高速缓冲存储器
      • 7.4.1 cache的基本工作原理
      • 7.4.2 cache行和主存块之间的映射
      • 7.4.3 cache中主存块的替换算法
      • 7.4.4 cache的写策略
      • *7.4.5 cache的设计
      • *7.4.6 cache缺失对总体性能的影响
      • *7.4.7 cache结构举例
      • *7.4.8 cache和程序性能
    • 7.5 虚拟存储器
      • 7.5.1 虚拟存储器的基本概念
      • 7.5.2 进程的虚拟地址空间
      • 7.5.3 虚拟存储器的基本类型
      • 7.5.4 页表和页表项的结构
      • 7.5.5 页式存储管理总体结构
      • 7.5.6 页式虚拟存储地址转换
      • 7.5.7 快表(TLB)
      • 7.5.8 具有TLB和cache的存储系统
      • *7.5.9 存储保护机制
      • *7.5.10 虚拟存储器系统举例
    • 7.6 本章小结
    • 习题
  • 第8章 进程与异常控制流
    • 8.1 进程与进程的上下文切换
      • 8.1.1 程序和进程的概念
      • 8.1.2 进程的逻辑控制流
      • 8.1.3 进程的上下文切换
      • 8.1.4 进程的存储器映射
      • 8.1.5 程序的加载过程
    • 8.2 异常和中断
      • 8.2.1 异常和中断的基本概念
      • 8.2.2 异常的分类
      • 8.2.3 中断的分类
      • 8.2.4 异常和中断的响应
    • *8.3 RISC-V的异常和中断机制
      • *8.3.1 异常和中断的类型
      • *8.3.2 控制状态寄存器
      • *8.3.3 异常和中断处理过程
    • *8.4 RISC-V+Linux中异常和中断机制
      • *8.4.1 Linux对异常和中断的处理
      • *8.4.2 RISC-V+Linux的系统调用
    • 8.5 本章小结
    • 习题
  • 第9章 I/O操作的实现
    • 9.1 I/O子系统概述
    • 9.2 用户空间I/O软件
      • 9.2.1 用户程序中的I/O函数
      • 9.2.2 文件的基本概念
      • 9.2.3 系统级I/O函数的功能
      • 9.2.4 C标准I/O库函数的实现
    • 9.3 内核空间I/O软件
      • 9.3.1 与设备无关的I/O软件层
      • 9.3.2 设备驱动程序
      • 9.3.3 中断服务程序
    • 9.4 I/O硬件与软件的接口
      • 9.4.1 输入输出设备
      • 9.4.2 基于总线的互连结构
      • 9.4.3 I/O接口的功能和结构
      • 9.4.4 I/O端口及其编址
      • 9.4.5 中断系统
    • 9.5 hello程序运行过程综述
      • 9.5.1 shell进程等待用户键盘输入
      • 9.5.2 用户从键盘输入命令行
      • 9.5.3 唤醒并切换至shell进程
      • 9.5.4 使用fork()函数创建子进程
      • 9.5.5 hello进程的加载和执行
    • 9.6 本章小结
    • 习题
  • 第10章 并行处理系统
    • 10.1 并行处理系统概述
      • 10.1.1 并行处理的主要技术问题
      • 10.1.2 并行处理系统的分类
    • 10.2 多处理器系统
      • 10.2.1 UMA多处理器结构
      • 10.2.2 NUMA多处理器结构
      • 10.2.3 多处理器系统中的互连网络
      • 10.2.4 多核处理器和硬件多线程技术
      • 10.2.5 共享存储器的同步控制
    • 10.3 多计算机系统
      • 10.3.1 集群多计算机系统
      • *10.3.2 网格多计算机系统
    • 10.4 向量处理机和SIMD技术
      • 10.4.1 向量计算机
      • *10.4.2 SIMD指令集技术
      • *10.4.3 GPU架构
    • *10.5 并行处理编程模式简介
    • 10.6 本章小结
    • 习题
  • 参考文献

相关图书