MIPS体系结构透视

MIPS体系结构透视 pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:斯威特曼
出品人:
页数:326
译者:李鹏
出版时间:2008-5
价格:48.00元
装帧:平装
isbn号码:9787111233626
丛书系列:计算机科学丛书
图书标签:
  • MIPS
  • 体系结构
  • 计算机体系结构
  • 计算机
  • CPU
  • 计算机科学
  • 编程
  • RISC
  • MIPS
  • 计算机体系结构
  • 汇编语言
  • 处理器
  • 计算机组成原理
  • RISC
  • 嵌入式系统
  • 底层开发
  • 数字逻辑
  • 计算机科学
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《计算机科学丛书•MTPS体系结构透视》是一本关于MIPS体系结构的经典之作。第2版延续了第1版的可读性传统,通过应用具体的实例对硬件和软件的接口进行强调,并将广泛应用的RISC系统结构MIPS与开源操作系统Linux结合在一起,从MIPS设计原理开始,阐述MIPS指令集和程序员的可用资源。

第2版在描述Linux/MIPS应用代码如何载入到内存、如何连接到库以及如何运行等方面做了介绍。此外,书中还提供了完整的、经过更新的MIPS指令集指南。

作者简介

DominicSweetman,富有大量实践经验的硬件系统,CPU、网络和操作系统设计者和开发者。他的丰富经验来自于低层编码、操作系统开发、局域网和分布式系统。他是Whitechapel Workstions的创立者之一,并在1988年创建了一家MIPS咨询公司——Algorithmics。

目录信息

出版者的话
专家指导委员会
推荐序
译者序
序言
前言
第1章 RISC和MlPS
1.1 流水线
1.1.1 什么使流水线效率降低
1.1.2 流水线和缓存
1.2 MIPS的五段流水线
1.3 RISC和CISC
1.4 迄今为止一些重要的MIPS芯片
1.4.1 R2000处理器到R3000处理器
1.4.2 R6000处理器:一次偏轨
1.4.3 第一批CPLJ内核
1.4.4 R4000处理器:一次革命
1.4.5 ACE联盟的兴衰
1.4.6 SGI收购MIPS
1.4.7 QED:嵌入式系统中的快速MIPS处理器
1.4.8 R10000处理器和它的后继者
1.4.9 消费类电子产品中的MIPS处理器
1.4.10 网络路由器和激光打印机中的MIPS
1.4.11 现代的MIPS处理器
1.4.12 MIPS Technologies的重生
1.4.13 现状
1.5 MIPS和CISC体系结构的比较
1.5.1 对MIPS指令的各种限制
1.5.2 编址及内存访问
1.5.3 发展MIPS不支持的特性
1.5.4 程序员可见的流水线效果
第2章 MIPS体系结构
2.1 MIPS汇编语言的风格
2.2 寄存器
2.3 整数乘法单元和寄存器
2.4 加载和存储:寻址方式
2.5 存储器和寄存器中的数据类型
2.5.1 整数数据类型
2.5.2 未对齐的加载和存储
2.5.3 内存中的浮点数据
2.6 汇编语言中的合成指令
2.7 MIPS 1发展到MIPS 64指令集:64位(和其他)的扩展
2.7.1 迈向64位
2.7.2 谁需要64位
2.7.3 关于64位与无模式转换:寄存器中的数据
2.8 基本地址空间
2.8.1 简单系统的寻址
2.8.2 核心与用户特权级別
2.8.3 整体视图:内存映射的64位视图
2.9 流水线的可见度
第3章 协处理器0:MIPS处理器控制
3.1 CPU控制指令
3.2 相关寄存器与时序
3.3 CPU控制寄存器及其编码
3.3.1 状态寄存器(SR)
3.3.2 原因寄存器
3.3.3 异常返回地址(EPC)寄存器
3.3.4 无效虚地址(BadVaddr)寄存器
3.3.5 计数/比较寄存器(Count/Compare)CPU上的计时器
3.3.6 处理器ID(PRId)寄存器
3.3.7 配置(Config)寄存器:CPU资源信息与配置
3.3.8 EBase和IntCtl:中断与异常设置
3.3.9 SRSCtl和SRSMap:影子寄存器设置
3.3.10 链接加载地址(LLAddr)寄存器
3.4 CPO冒险——不经意间的陷阱
3.4.1 冒险屏障指令
3.4.2 指令冒险与用户冒险
3.4.3 CPO指令之间的冒险
第4章 MIPS处理器的高速缓存
4.1 高速缓存和高速缓存的管理
4.2 高速缓存怎样工作
4.3 早期MIPS CPU中的写透式高速缓存
4.4 MIPs CPU中的写回式高速缓存
4.5 高速缓存设计的其他选择
4.6 管理高速缓存
4.7 二级和三级高速缓存
4.8 MIPS CPU高速缓存的配置
4.9 编程MIPS32/64高速缓存
4.9.1 Cache指令
4.9.2 高速缓存初始化和Tag/Data寄存器
4.9.3 CacheErr,ERR和ErrorEPC寄存器:内存/高速缓存的错误处理
4.9.4 计算高速缓存大小和配置方式
4.9.5 初始化例程
4.9.6 在高速缓存中无效或写回一个内存区域
4.10 高速缓存效率
4.11 重组软件来影响高速缓存效率
4.12 高速缓存别名
笫5章 异常、中断和初始化
5.1 精确异常
5.2 异常发生时刻
5.3 异常向量:异常处理开始的地方
5.4 异常处理:基础
5.5 从异常返回
5.6 嵌套异常
5.7 一个异常处理例程
5.8 中断
5.8.1 MIPS CPU中的中断资源
5.8.2 通过软件实现中断优先级
5.8.3 原子性和SR的原子改变
5.8.4 中断使能时的临界区:MIPS中的信号量机制
5.8.5 MIPS32/64中向量化和EIC扣断
5.8.6 影子寄存器
5.9 启动
5.9.1 探测和识别CPU型号
5.9.2 启动序列
5.9.3 启动一个应用程序
5.10 模拟指令
第6章 底层内存管理与TLB
6.1 TLB/MMU硬件和它的功能
6.2 TLB/MMU的寄存器描述
6.2.1 TLB关键字域——EntryHi和PageMask
6.2.2 TLB输出域——EntryLo0-1
6.2.3 选择一个TLB表项——Index,Random和Wired寄存器
6.2.4 页表访问助手——Context和XContext
6.3 TLB/MMU的控制指令
6.4 对TLB编程
6.4.1 如何进行重填
6.4.2 使用ASID
6.4.3 Random寄存器与被锁定表项
6.5 硬件友好的页表和重填机制
6.5.1 TLB缺失处理
6.5.2 XTLB的缺失处理函数
6.6 MIPS TLB的日常使用
6.7 更简单操作系统中的内存管理
第7章 浮点支持
7.1 浮点的基本描述
7.2 IEEE 754标准及其背景
7.3 怎样存储IEEE浮点数
7.3.1 IEEE尾数和规格化
7.3.2 使用特殊值时的预留指数值
7.3.3 MRS浮点数据格式
7.4 IEEE 754的MIPS实现
7.5 浮点寄存器
7.6 浮点异常/中断
7.7 浮点控制:控制/状态寄存器
7.8 浮点实现寄存器
7.9 浮点指令指南
7.9.1 加载/存储
7.9.2 寄存器间的传递
7.9.3 三操作数算术运算
7.9.4 乘加运算
7.9.5 一元(改变符号)运算
7.9.6 转换操作
7.9.7 条件分支和测试指令
7.10 成对单精度浮点指令和MIPS-3D ASE
7.10.1 成对单精度指令的异常
7.10.2 成对单精度的三操作数算术、乘加、改变符号和无条件移动操作
7.10.3 成对单精度转换操作
7.10.4 成对单精度测试和条件移动指令
7.10.5 MIPS-3D指令
7.11 指令时序需求
7.12 指令加速的时序
7.13 按需初始化和使能
7.14 浮点仿真
笫8章 MIPS指令集完全指南
8.1 一个简单的例子
8.2 汇编指令及其含义
8.2.1 U和非U助记符
8.2.2 除法助记符
8.2.3 指令的详细清单
8.3 浮点指令
8.4 MIPS32/64发行版1的区别
8.4.1 在发行版2中加入的常规指令
8.4.2 发行版2新加入的特权指令
8.5 特殊指令和它们的用途
8.5.1 向左加载/向右加载:地址非对齐的存取操作
8.5.2 链接加载/条件存储
8.5.3 条件传递指令
8.5.4 可能分支指令
8.5.5 整数乘累加指令和乘加指令
8.5.6 浮点乘加指令
8.5.7 多浮点条件标志位
8.5.8 缓存数据预取
8.5.9 存取内存屏障:Sync指令
8.5.10 冒险屏蔽指令
8.5.11 Synci:指令写入的缓存管理
8.5.12 读取硬件寄存器
8.6 指令的机器编码
8.6.1 指令编码表中的域
8.6.2 指令编码表的注意事项
8.6.3 编码方式和处理器的简单实现
8.7 指令集的功能分组
8.7.1 空操作
8.7.2 寄存器间的数据传递指令
8.7.3 常数加载指令
8.7.4 算术/逻辑操作指令
8.7.5 整数乘法、除法以及求余指令
8.7.6 整数乘累加指令
8.7.7 存取指令
8.7.8 跳转、分支和子程序调用指令
8.7.9 断点及陷阱指令
8.7.10 协处理器0功能
8.7.11 浮点操作指令
8.7.12 用户模式下对“底层”硬件的有限访问
第9章 阅读MIPS汇编语言
9.1 一个简单的例子
9.2 句法
9.3 指令的约定
9.3.1 计算指令:3寄存器、2寄存器和1寄存器
9.3.2 立即数:带常量的计算指令
9.3.3 关于64位和32位指令
9.4 寻址模式
9.5 目标文件和内存布局
第10章 在MIPS体系结构上移植软件
10.1 MIPS应用的底层软件:经常会遇到问题的列表
10.2 尾端:字、字节和位的顺序
10.2.1 位、字节、字和整数
10.2.2 软件和尾端
10.2.3 硬件和尾端
10.2.4 MIPS CPU的双尾端软件
10.2.5 可移植性和尾端无关代码
10.2.6 尾端和外来数据
10.3 可见缓存的问题
10.3.1 缓存管理和DMA数据
10.3.2 缓存管理和写指令:自修改代码
10.3.3 缓存管理和非缓存或写透数据
10.3.4 缓存別名和页面着色
10.4 存储访问顺序和重排
10.4.1 排序与写缓冲
10.4.2 实现wbflush
10.5 写C程序
10.5.1 用GNU C编译器包装汇编代码
10.5.2 映射为内存的I/O寄存器和“Volatile”
10.5.3 用C写MIPS应用程序的其他问题
第11章 MIPS软件标准(ABI)
11.1 数据表示和对齐
11.1.1 基本类型的大小
11.1.2 “long”型和指针型数据大小
11.1.3 对齐要求
11.1.4 基本类型的内存布局和尾端如何产生影响
11.1.5 内存的布局结构、数组类型和对齐
11.1.6 结构中的位域
11.1.7 C中的不对齐数据
11.2 参数传递以及MIPS ABI中的堆栈约定
11.2.1 堆栈、子例程链接和参数专递
11.2.2 032的堆栈参数结构
11.2.3 使用寄存器传递参数
11.2.4 C库中的例子
11.2.5 特殊的例子:传递结构
11.2.6 传递可变参数
11.2.7 函数返回值
11.2.8 扩展寄存器一使用约定:SGIn32和n64
11.2.9 堆栈布局、堆栈帧和辅助调试器
11.2.10 可变参数和stdargs
第12章 调试MIPS设计——调试和剖析特性
12.1 “EJTAG”片上调试单元
12.1.1 EJTAG历史
12.1.2 探头如何控制CPU
12.1.3 通过JTAG调试通信
12.1.4 调试模式
12.1.5 单步
12.1.6 dseg内存译码区域
12.1.7 EJTAG CPO寄存器,特殊调试
12.1.8 DCR(调试控制)内存映射寄存器
12.1.9 EJTAG断点硬件支持
12.1.10 理解断点条件
12.1.11 非精确调试断点
12.1.12 PC取样与EJTAG
12.1.13 使用没有探头的EJTAG
12.2 EJTAG之前的调试支持——break指令和CPO观察点
12.3 PDtrace
12.4 性能计数器
第13章 GNU几inux概览
13.1 组件
13.2 内核代码的层次
13.2.1 异常模式下的MIPS CPU
13.2.2 屏蔽部分或全部中断的MIPS CPU
13.2.3 中断上下文
13.2.4 线程上下文中执行内核
第14章 硬件与软件如何协同工作
14.1 中断的生命周期
14.2 线程、临界区和原子性
14.2.1 MIPS体系结构和原子操作
14.2.2 Linux自旋锁
14.3 系统调用时发生了什么
14.4 Linux/MIPS系统如何进行地址翻译
14.4.1 为什么进行内存翻译
14.4.2 基本进程布局与保护
14.4.3 映射进程地址到真实内存
14.4.4 选择页式映射
14.4.5 我们真正需要的
14.4.6 MIPs设计的起源
14.4.7 记录被修改的页面(模拟“脏”位)
14.4.8 内核如何服务一个TLB重填异常
14.4.9 TLB的注意事项与维护
14.4.10 内存翻译与64位指针
第15章 Linux内核中的MIPS特有问题
15.1 显式缓存管理
15.1.1 DMA设备访问
15.1.2 写入指令稍后执行
15.1.3 缓存/内存映射问题
15.1.4 缓存别名
15.2 CPO流水线冒险
15.3 多处理器系统与一致性缓存
15.4 对一个关键例程的极度优化调整
第16章 Linux应用程序代码、PIC和库
16.1 链接单元如何进入程序
16.2 全局偏移表(GOT)组织
附录A MIPS多线程
附录B MIPS指令集的其他可选扩展
MIPS术语表
参考文献
· · · · · · (收起)

读后感

评分

前言P1 -L3  程序->程度 P21 L1  32寻址->32位寻址 P21 L5  有个汇编制导->有个汇编指令 P21 L9  a0~a1->a0~a3 P24 -L7  0xFFFFFFFF->0xFFFFFFFE P25 L3  转换成整数->转换成int P26 L12  把although there are excellent architectural reasons why you ...

评分

前言P1 -L3  程序->程度 P21 L1  32寻址->32位寻址 P21 L5  有个汇编制导->有个汇编指令 P21 L9  a0~a1->a0~a3 P24 -L7  0xFFFFFFFF->0xFFFFFFFE P25 L3  转换成整数->转换成int P26 L12  把although there are excellent architectural reasons why you ...

评分

前言P1 -L3  程序->程度 P21 L1  32寻址->32位寻址 P21 L5  有个汇编制导->有个汇编指令 P21 L9  a0~a1->a0~a3 P24 -L7  0xFFFFFFFF->0xFFFFFFFE P25 L3  转换成整数->转换成int P26 L12  把although there are excellent architectural reasons why you ...

评分

前言P1 -L3  程序->程度 P21 L1  32寻址->32位寻址 P21 L5  有个汇编制导->有个汇编指令 P21 L9  a0~a1->a0~a3 P24 -L7  0xFFFFFFFF->0xFFFFFFFE P25 L3  转换成整数->转换成int P26 L12  把although there are excellent architectural reasons why you ...

评分

前言P1 -L3  程序->程度 P21 L1  32寻址->32位寻址 P21 L5  有个汇编制导->有个汇编指令 P21 L9  a0~a1->a0~a3 P24 -L7  0xFFFFFFFF->0xFFFFFFFE P25 L3  转换成整数->转换成int P26 L12  把although there are excellent architectural reasons why you ...

用户评价

评分

这本关于MIPS体系结构的著作,从头到尾都散发着一股严谨而又亲切的气息。初读时,我最直观的感受是其内容组织的逻辑性极强,仿佛是为初学者精心设计的一张详细地图。它没有一上来就抛出晦涩难懂的指令集,而是循序渐进地介绍了计算机的底层工作原理,从最基础的二进制表示,到寄存器、内存寻址的机制,每一步的过渡都自然流畅,让人感到对复杂概念的掌握并非遥不可及。作者在讲解诸如流水线、异常处理等进阶主题时,更是展现了深厚的功力,总能用最精炼的语言勾勒出问题的核心,并且辅以大量的图示和流程图来辅助理解。这种详略得当的处理方式,使得即便是对硬件体系结构知之甚少的读者,也能在阅读过程中建立起对MIPS指令集和执行模型清晰的认知框架。我尤其欣赏它在理论讲解之外,还穿插了大量的实际应用案例分析,这些案例不仅加深了对理论的理解,更展示了MIPS架构在特定领域中的优势与应用场景,极大地拓宽了我的视野,使其不仅仅是一本纯粹的技术手册,更像是一本引导实践的指南。

评分

读完这本书,我最大的体会是作者在处理复杂概念时的那份独特的“拆解”能力。很多体系结构的书籍往往将数据通路和控制单元混在一起讲解,使得读者在试图理解指令如何一步步被执行时感到头晕目眩。然而,本书却巧妙地将这两部分内容进行了有效的解耦。它首先用大量的篇幅专注于数据通路的设计,细致地剖析了取指、译码、执行、访存、写回这五个阶段内部的信号传递和数据流动,这一点对于理解CPU的核心工作原理至关重要。接着,在构建完坚实的数据通路基础后,作者才开始引入控制单元的逻辑设计,解释了微操作的生成过程。这种先“骨架”后“神经”的叙述方式,极大地降低了读者的认知负荷。更值得称赞的是,书中对各种寻址模式的讲解,不是简单地罗列公式,而是结合了实际C代码片段,展示了编译器是如何将高级语言特性映射到底层的机器指令上,这种从高到低的视角转换,让MIPS的指令集变得鲜活起来,充满了工程的实用美感。

评分

这本书的结构设计简直是一部教科书典范的展示。它巧妙地设置了“知识锚点”,确保读者在进入下一个复杂主题前,已经牢牢掌握了前置知识。最让我感到惊喜的是,它在章节的末尾设置的“思考题”和“延伸阅读”部分。这些思考题并非简单的重复性练习,而是引导读者进行更高层次的抽象和设计思考,有些甚至需要结合并行处理或系统级优化的知识才能解答,极大地激发了我的求知欲。而延伸阅读的推荐也十分精准,它们指向的都是领域内最权威的论文或文献,为那些希望深挖某个特定技术点的读者指明了方向。阅读完此书,我不再是将MIPS指令视为一串无意义的数字,而是能清晰地看到每一条指令背后所代表的硬件操作和编译器的意图。总而言之,它不仅仅是一本教授MIPS指令集的书,更是一扇通往现代处理器设计思想的坚固门户,其内容的详实与论述的精妙,足以让任何想深入理解计算机内部运作的硬核爱好者受益匪浅。

评分

如果要用一个词来概括我对这本书的整体印象,那会是“深度与广度的完美平衡”。它在讲解MIPS ISA(指令集架构)时,绝不仅仅停留在手册的表面描述上,而是深入挖掘了其设计哲学——RISC(精简指令集)的精髓所在。书中用对比的方式,巧妙地展现了MIPS如何通过简化指令集,将复杂性转移到软件层面,从而换取更高效的硬件实现。这种对比不仅限于与其他RISC架构,甚至与CISC架构的关键特性也有所涉猎,为读者建立了一个宏大的计算机体系结构背景。另一个让我印象深刻的点是,作者在讲解存储器层次结构时,没有将Cache的组织结构视为一个黑箱,而是详细阐述了直接映射、组相联、全相联等不同策略的性能权衡,并用具体的访问延迟和命中率模型进行了量化分析。这种对性能分析的重视,让本书的价值超越了纯粹的教学,更像是为未来从事底层优化工作的工程师准备的一份实战指南。

评分

这本书的语言风格,说实话,与我过去接触的几本经典教材相比,显得更加“接地气”,少了一些学院派的刻板和高高在上。它没有追求用最冷僻的术语来展示作者的博学,而是努力用最精确且易懂的语言来描述技术细节。例如,在讨论乘法和除法指令的实现时,作者并没有满足于给出标准的算法描述,而是深入探讨了在有限的硬件资源下,如何通过软件或硬件辅助实现这些操作的优化,这种对“有限性”的深刻洞察,体现了作者深厚的工程经验。我个人尤其喜欢其中对于例外(Exception)和中断(Interrupt)处理的章节,作者用了一种非常形象的比喻来描述上下文的保存与恢复过程,使我这个之前一直对这些概念感到模糊的人,豁然开朗。这本书的排版也极其考究,图表清晰,关键术语的强调到位,即使是带着咖啡和疲惫的眼睛去阅读,也能很快地定位到核心信息,这无疑是对读者时间成本的一种尊重。

评分

做MIPS CPU嵌入式开发的必读书目。书中不仅对MIPS处理器体系结构做了深入浅出的讲解,而且对MIPS的“带坑”特性,如IO缓存非一致性,CP0指令冒险等,做了深入的分析和编程指导。

评分

为了搞明白一段汇编代码,我花了一周时间去了解mips,很有收获,应该早点学习了。

评分

感觉不好

评分

体系结构必读

评分

感觉不好

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有