MIPS体系结构透视:2nd

MIPS体系结构透视
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [英]
出版社: 机械工业出版社
2008-05
版次: 1
ISBN: 9787111233626
定价: 48.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 326页
正文语种: 简体中文
  •   本书是一本关于MIPS体系结构的经典之作。第2版延续了第1版的可读性传统,通过应用具体的实例对硬件和软件的接口进行强调,并将广泛应用的RISC系统结构MIPS与开源操作系统Linux结合在一起,从MIPS设计原理开始,阐述MIPS指令集和程序员的可用资源。
      第2版在描述Linux/MIPS应用代码如何载入到内存、如何连接到库以及如何运行等方面做了介绍。此外,书中还提供了完整的、经过更新的MIPS指令集指南。
      本书既可作为高等院校计算机体系结构、嵌入式系统编程和高级计算技术等课程的教材或教学参考书,也很适合科研机构专业人士和软硬件开发人员参考阅读。 DominicSweetman富有大理实践经验的硬件系统、CPU、网络和操作系统设计者和开发者。他的丰富经验来自于低层编码、操作系统开发、局域网和分布式系统。他是WhitechapelWorkstatIons的创立者之一,并在1988年创建了一家MIPS咨询公司——AIgomhmics。 出版者的话
    专家指导委员会
    推荐序
    译者序
    序言
    前言
    第1章RISC和MlPS
    1.1流水线
    1.1.1什么使流水线效率降低
    1.1.2流水线和缓存
    1.2MIPS的五段流水线
    1.3RISC和CISC
    1.4迄今为止一些重要的MIPS芯片
    1.4.1R2000处理器到R3000处理器
    1.4.2R6000处理器:一次偏轨
    1.4.3第一批CPLJ内核
    1.4.4R4000处理器:一次革命
    1.4.5ACE联盟的兴衰
    1.4.6SGI收购MIPS
    1.4.7QED:嵌入式系统中的快速MIPS处理器
    1.4.8R10000处理器和它的后继者
    1.4.9消费类电子产品中的MIPS处理器
    1.4.10网络路由器和激光打印机中的MIPS
    1.4.11现代的MIPS处理器
    1.4.12MIPSTechnologies的重生
    1.4.13现状
    1.5MIPS和CISC体系结构的比较
    1.5.1对MIPS指令的各种限制
    1.5.2编址及内存访问
    1.5.3发展MIPS不支持的特性
    1.5.4程序员可见的流水线效果
    第2章MIPS体系结构
    2.1MIPS汇编语言的风格
    2.2寄存器
    2.3整数乘法单元和寄存器
    2.4加载和存储:寻址方式
    2.5存储器和寄存器中的数据类型
    2.5.1整数数据类型
    2.5.2未对齐的加载和存储
    2.5.3内存中的浮点数据
    2.6汇编语言中的合成指令
    2.7MIPS1发展到MIPS64指令集: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.1CPU控制指令
    3.2相关寄存器与时序
    3.3CPU控制寄存器及其编码
    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.8EBase和IntCtl:中断与异常设置
    3.3.9SRSCtl和SRSMap:影子寄存器设置
    3.3.10链接加载地址(LLAddr)寄存器
    3.4CPO冒险——不经意间的陷阱
    3.4.1冒险屏障指令
    3.4.2指令冒险与用户冒险
    3.4.3CPO指令之间的冒险
    第4章MIPS处理器的高速缓存
    4.1高速缓存和高速缓存的管理
    4.2高速缓存怎样工作
    4.3早期MIPSCPU中的写透式高速缓存
    4.4MIPsCPU中的写回式高速缓存
    4.5高速缓存设计的其他选择
    4.6管理高速缓存
    4.7二级和三级高速缓存
    4.8MIPSCPU高速缓存的配置
    4.9编程MIPS32/64高速缓存
    4.9.1Cache指令
    4.9.2高速缓存初始化和Tag/Data寄存器
    4.9.3CacheErr,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.1MIPSCPU中的中断资源
    5.8.2通过软件实现中断优先级
    5.8.3原子性和SR的原子改变
    5.8.4中断使能时的临界区:MIPS中的信号量机制
    5.8.5MIPS32/64中向量化和EIC扣断
    5.8.6影子寄存器
    5.9启动
    5.9.1探测和识别CPU型号
    5.9.2启动序列
    5.9.3启动一个应用程序
    5.10模拟指令
    第6章底层内存管理与TLB
    6.1TLB/MMU硬件和它的功能
    6.2TLB/MMU的寄存器描述
    6.2.1TLB关键字域——EntryHi和PageMask
    6.2.2TLB输出域——EntryLo0-1
    6.2.3选择一个TLB表项——Index,Random和Wired寄存器
    6.2.4页表访问助手——Context和XContext
    6.3TLB/MMU的控制指令
    6.4对TLB编程
    6.4.1如何进行重填
    6.4.2使用ASID
    6.4.3Random寄存器与被锁定表项
    6.5硬件友好的页表和重填机制
    6.5.1TLB缺失处理
    6.5.2XTLB的缺失处理函数
    6.6MIPSTLB的日常使用
    6.7更简单操作系统中的内存管理
    第7章浮点支持
    7.1浮点的基本描述
    7.2IEEE754标准及其背景
    7.3怎样存储IEEE浮点数
    7.3.1IEEE尾数和规格化
    7.3.2使用特殊值时的预留指数值
    7.3.3MRS浮点数据格式
    7.4IEEE754的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-3DASE
    7.10.1成对单精度指令的异常
    7.10.2成对单精度的三操作数算术、乘加、改变符号和无条件移动操作
    7.10.3成对单精度转换操作
    7.10.4成对单精度测试和条件移动指令
    7.10.5MIPS-3D指令
    7.11指令时序需求
    7.12指令加速的时序
    7.13按需初始化和使能
    7.14浮点仿真
    笫8章MIPS指令集完全指南
    8.1一个简单的例子
    8.2汇编指令及其含义
    8.2.1U和非U助记符
    8.2.2除法助记符
    8.2.3指令的详细清单
    8.3浮点指令
    8.4MIPS32/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.11Synci:指令写入的缓存管理
    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.1MIPS应用的底层软件:经常会遇到问题的列表
    10.2尾端:字、字节和位的顺序
    10.2.1位、字节、字和整数
    10.2.2软件和尾端
    10.2.3硬件和尾端
    10.2.4MIPSCPU的双尾端软件
    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用GNUC编译器包装汇编代码
    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.7C中的不对齐数据
    11.2参数传递以及MIPSABI中的堆栈约定
    11.2.1堆栈、子例程链接和参数专递
    11.2.2032的堆栈参数结构
    11.2.3使用寄存器传递参数
    11.2.4C库中的例子
    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.1EJTAG历史
    12.1.2探头如何控制CPU
    12.1.3通过JTAG调试通信
    12.1.4调试模式
    12.1.5单步
    12.1.6dseg内存译码区域
    12.1.7EJTAGCPO寄存器,特殊调试
    12.1.8DCR(调试控制)内存映射寄存器
    12.1.9EJTAG断点硬件支持
    12.1.10理解断点条件
    12.1.11非精确调试断点
    12.1.12PC取样与EJTAG
    12.1.13使用没有探头的EJTAG
    12.2EJTAG之前的调试支持——break指令和CPO观察点
    12.3PDtrace
    12.4性能计数器
    第13章GNU几inux概览
    13.1组件
    13.2内核代码的层次
    13.2.1异常模式下的MIPSCPU
    13.2.2屏蔽部分或全部中断的MIPSCPU
    13.2.3中断上下文
    13.2.4线程上下文中执行内核
    第14章硬件与软件如何协同工作
    14.1中断的生命周期
    14.2线程、临界区和原子性
    14.2.1MIPS体系结构和原子操作
    14.2.2Linux自旋锁
    14.3系统调用时发生了什么
    14.4Linux/MIPS系统如何进行地址翻译
    14.4.1为什么进行内存翻译
    14.4.2基本进程布局与保护
    14.4.3映射进程地址到真实内存
    14.4.4选择页式映射
    14.4.5我们真正需要的
    14.4.6MIPs设计的起源
    14.4.7记录被修改的页面(模拟“脏”位)
    14.4.8内核如何服务一个TLB重填异常
    14.4.9TLB的注意事项与维护
    14.4.10内存翻译与64位指针
    第15章Linux内核中的MIPS特有问题
    15.1显式缓存管理
    15.1.1DMA设备访问
    15.1.2写入指令稍后执行
    15.1.3缓存/内存映射问题
    15.1.4缓存别名
    15.2CPO流水线冒险
    15.3多处理器系统与一致性缓存
    15.4对一个关键例程的极度优化调整
    第16章Linux应用程序代码、PIC和库
    16.1链接单元如何进入程序
    16.2全局偏移表(GOT)组织
    附录AMIPS多线程
    附录BMIPS指令集的其他可选扩展
    MIPS术语表
    参考文献
  • 内容简介:
      本书是一本关于MIPS体系结构的经典之作。第2版延续了第1版的可读性传统,通过应用具体的实例对硬件和软件的接口进行强调,并将广泛应用的RISC系统结构MIPS与开源操作系统Linux结合在一起,从MIPS设计原理开始,阐述MIPS指令集和程序员的可用资源。
      第2版在描述Linux/MIPS应用代码如何载入到内存、如何连接到库以及如何运行等方面做了介绍。此外,书中还提供了完整的、经过更新的MIPS指令集指南。
      本书既可作为高等院校计算机体系结构、嵌入式系统编程和高级计算技术等课程的教材或教学参考书,也很适合科研机构专业人士和软硬件开发人员参考阅读。
  • 作者简介:
    DominicSweetman富有大理实践经验的硬件系统、CPU、网络和操作系统设计者和开发者。他的丰富经验来自于低层编码、操作系统开发、局域网和分布式系统。他是WhitechapelWorkstatIons的创立者之一,并在1988年创建了一家MIPS咨询公司——AIgomhmics。
  • 目录:
    出版者的话
    专家指导委员会
    推荐序
    译者序
    序言
    前言
    第1章RISC和MlPS
    1.1流水线
    1.1.1什么使流水线效率降低
    1.1.2流水线和缓存
    1.2MIPS的五段流水线
    1.3RISC和CISC
    1.4迄今为止一些重要的MIPS芯片
    1.4.1R2000处理器到R3000处理器
    1.4.2R6000处理器:一次偏轨
    1.4.3第一批CPLJ内核
    1.4.4R4000处理器:一次革命
    1.4.5ACE联盟的兴衰
    1.4.6SGI收购MIPS
    1.4.7QED:嵌入式系统中的快速MIPS处理器
    1.4.8R10000处理器和它的后继者
    1.4.9消费类电子产品中的MIPS处理器
    1.4.10网络路由器和激光打印机中的MIPS
    1.4.11现代的MIPS处理器
    1.4.12MIPSTechnologies的重生
    1.4.13现状
    1.5MIPS和CISC体系结构的比较
    1.5.1对MIPS指令的各种限制
    1.5.2编址及内存访问
    1.5.3发展MIPS不支持的特性
    1.5.4程序员可见的流水线效果
    第2章MIPS体系结构
    2.1MIPS汇编语言的风格
    2.2寄存器
    2.3整数乘法单元和寄存器
    2.4加载和存储:寻址方式
    2.5存储器和寄存器中的数据类型
    2.5.1整数数据类型
    2.5.2未对齐的加载和存储
    2.5.3内存中的浮点数据
    2.6汇编语言中的合成指令
    2.7MIPS1发展到MIPS64指令集: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.1CPU控制指令
    3.2相关寄存器与时序
    3.3CPU控制寄存器及其编码
    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.8EBase和IntCtl:中断与异常设置
    3.3.9SRSCtl和SRSMap:影子寄存器设置
    3.3.10链接加载地址(LLAddr)寄存器
    3.4CPO冒险——不经意间的陷阱
    3.4.1冒险屏障指令
    3.4.2指令冒险与用户冒险
    3.4.3CPO指令之间的冒险
    第4章MIPS处理器的高速缓存
    4.1高速缓存和高速缓存的管理
    4.2高速缓存怎样工作
    4.3早期MIPSCPU中的写透式高速缓存
    4.4MIPsCPU中的写回式高速缓存
    4.5高速缓存设计的其他选择
    4.6管理高速缓存
    4.7二级和三级高速缓存
    4.8MIPSCPU高速缓存的配置
    4.9编程MIPS32/64高速缓存
    4.9.1Cache指令
    4.9.2高速缓存初始化和Tag/Data寄存器
    4.9.3CacheErr,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.1MIPSCPU中的中断资源
    5.8.2通过软件实现中断优先级
    5.8.3原子性和SR的原子改变
    5.8.4中断使能时的临界区:MIPS中的信号量机制
    5.8.5MIPS32/64中向量化和EIC扣断
    5.8.6影子寄存器
    5.9启动
    5.9.1探测和识别CPU型号
    5.9.2启动序列
    5.9.3启动一个应用程序
    5.10模拟指令
    第6章底层内存管理与TLB
    6.1TLB/MMU硬件和它的功能
    6.2TLB/MMU的寄存器描述
    6.2.1TLB关键字域——EntryHi和PageMask
    6.2.2TLB输出域——EntryLo0-1
    6.2.3选择一个TLB表项——Index,Random和Wired寄存器
    6.2.4页表访问助手——Context和XContext
    6.3TLB/MMU的控制指令
    6.4对TLB编程
    6.4.1如何进行重填
    6.4.2使用ASID
    6.4.3Random寄存器与被锁定表项
    6.5硬件友好的页表和重填机制
    6.5.1TLB缺失处理
    6.5.2XTLB的缺失处理函数
    6.6MIPSTLB的日常使用
    6.7更简单操作系统中的内存管理
    第7章浮点支持
    7.1浮点的基本描述
    7.2IEEE754标准及其背景
    7.3怎样存储IEEE浮点数
    7.3.1IEEE尾数和规格化
    7.3.2使用特殊值时的预留指数值
    7.3.3MRS浮点数据格式
    7.4IEEE754的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-3DASE
    7.10.1成对单精度指令的异常
    7.10.2成对单精度的三操作数算术、乘加、改变符号和无条件移动操作
    7.10.3成对单精度转换操作
    7.10.4成对单精度测试和条件移动指令
    7.10.5MIPS-3D指令
    7.11指令时序需求
    7.12指令加速的时序
    7.13按需初始化和使能
    7.14浮点仿真
    笫8章MIPS指令集完全指南
    8.1一个简单的例子
    8.2汇编指令及其含义
    8.2.1U和非U助记符
    8.2.2除法助记符
    8.2.3指令的详细清单
    8.3浮点指令
    8.4MIPS32/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.11Synci:指令写入的缓存管理
    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.1MIPS应用的底层软件:经常会遇到问题的列表
    10.2尾端:字、字节和位的顺序
    10.2.1位、字节、字和整数
    10.2.2软件和尾端
    10.2.3硬件和尾端
    10.2.4MIPSCPU的双尾端软件
    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用GNUC编译器包装汇编代码
    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.7C中的不对齐数据
    11.2参数传递以及MIPSABI中的堆栈约定
    11.2.1堆栈、子例程链接和参数专递
    11.2.2032的堆栈参数结构
    11.2.3使用寄存器传递参数
    11.2.4C库中的例子
    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.1EJTAG历史
    12.1.2探头如何控制CPU
    12.1.3通过JTAG调试通信
    12.1.4调试模式
    12.1.5单步
    12.1.6dseg内存译码区域
    12.1.7EJTAGCPO寄存器,特殊调试
    12.1.8DCR(调试控制)内存映射寄存器
    12.1.9EJTAG断点硬件支持
    12.1.10理解断点条件
    12.1.11非精确调试断点
    12.1.12PC取样与EJTAG
    12.1.13使用没有探头的EJTAG
    12.2EJTAG之前的调试支持——break指令和CPO观察点
    12.3PDtrace
    12.4性能计数器
    第13章GNU几inux概览
    13.1组件
    13.2内核代码的层次
    13.2.1异常模式下的MIPSCPU
    13.2.2屏蔽部分或全部中断的MIPSCPU
    13.2.3中断上下文
    13.2.4线程上下文中执行内核
    第14章硬件与软件如何协同工作
    14.1中断的生命周期
    14.2线程、临界区和原子性
    14.2.1MIPS体系结构和原子操作
    14.2.2Linux自旋锁
    14.3系统调用时发生了什么
    14.4Linux/MIPS系统如何进行地址翻译
    14.4.1为什么进行内存翻译
    14.4.2基本进程布局与保护
    14.4.3映射进程地址到真实内存
    14.4.4选择页式映射
    14.4.5我们真正需要的
    14.4.6MIPs设计的起源
    14.4.7记录被修改的页面(模拟“脏”位)
    14.4.8内核如何服务一个TLB重填异常
    14.4.9TLB的注意事项与维护
    14.4.10内存翻译与64位指针
    第15章Linux内核中的MIPS特有问题
    15.1显式缓存管理
    15.1.1DMA设备访问
    15.1.2写入指令稍后执行
    15.1.3缓存/内存映射问题
    15.1.4缓存别名
    15.2CPO流水线冒险
    15.3多处理器系统与一致性缓存
    15.4对一个关键例程的极度优化调整
    第16章Linux应用程序代码、PIC和库
    16.1链接单元如何进入程序
    16.2全局偏移表(GOT)组织
    附录AMIPS多线程
    附录BMIPS指令集的其他可选扩展
    MIPS术语表
    参考文献
查看详情
好书推荐 / 更多
MIPS体系结构透视
希尼三十年文选(2021年最新修订版)
[爱尔兰]谢默斯·希尼 黄灿然 译
MIPS体系结构透视
提琴与坟墓(洛尔迦诗选)
[西]费德里科·加西亚·洛尔迦 著;汪天艾 译
MIPS体系结构透视
正是河豚欲上时:一场饮食社会学的冒险
王程韡 著
MIPS体系结构透视
新民说·廊桥夜话
[加拿大]张翎
MIPS体系结构透视
新民说·重新发现中国·陌生的熟人:理解21世纪乡土中国
杨华 主编;贺雪峰;沈山
MIPS体系结构透视
在中国大地上:搭火车旅行记
保罗·索鲁 著
MIPS体系结构透视
剑桥心理学史
詹姆斯·F·布伦南
MIPS体系结构透视
海洋帝国的崛起:尼德兰八十年战争,1568—1648
安东·范德伦
MIPS体系结构透视
我们为什么要睡觉?
田盈春 后浪 译者;[英]马修·沃克(Matthew Walker)
MIPS体系结构透视
时不我待:追踪病毒的精彩人生
彼得.皮奥特
MIPS体系结构透视
发明男性气概
[英]大卫·D. 吉尔默 著;孙伟、张苗凤 译
MIPS体系结构透视
花森安治的手艺——《生活手帖》的设计美学
[日]生活手帖社