图书介绍
MIPS体系结构透视 原书第2版2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (英)斯威特曼(Sweetman,D.)著 著
- 出版社: 北京:机械工业出版社
- ISBN:711123362X
- 出版时间:2008
- 标注页数:326页
- 文件大小:21MB
- 文件页数:346页
- 主题词:微处理器-系统设计
PDF下载
下载说明
MIPS体系结构透视 原书第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章RISC和MIPS1
1.1流水线1
1.1.1什么使流水线效率降低3
1.1.2流水线和缓存3
1.2 MIPS的五段流水线4
1.3 RISC和CISC5
1.4迄今为止一些重要的MIPS芯片6
1.4.1 R2000处理器到R3000处理器6
1.4.2 R6000处理器:一次偏轨7
1.4.3第一批CPU内核8
1.4.4 R4000处理器:一次革命8
1.4.5 ACE联盟的兴衰9
1.4.6 SGI收购MIPS9
1.4.7 QED:嵌入式系统中的快速MIPS处理器9
1.4.8 R10000处理器和它的后继者10
1.4.9消费类电子产品中的MIPS处理器10
1.4.10网络路由器和激光打印机中的MIPS11
1.4.11现代的MIPS处理器12
1.4.12 MIPS Technologies的重生14
1.4.13现状14
1.5 MIPS和CISC体系结构的比较16
1.5.1对MIPS指令的各种限制16
1.5.2编址及内存访问17
1.5.3 MIPS不支持的特性18
1.5.4程序员可见的流水线效果19
第2章MIPS体系结构21
2.1MIPS汇编语言的风格23
2.2寄存器24
2.3整数乘法单元和寄存器26
2.4加载和存储:寻址方式27
2.5存储器和寄存器中的数据类型27
2.5.1整数数据类型28
2.5.2未对齐的加载和存储28
2.5.3内存中的浮点数据29
2.6汇编语言中的合成指令29
2.7 MIPS I发展到MIPS 64指令集:64位(和其他)的扩展30
2.7.1迈向64位31
2.7.2谁需要64位31
2.7.3关于64位与无模式转换:寄存器中的数据32
2.8基本地址空间33
2.8.1简单系统的寻址35
2.8.2核心与用户特权级别35
2.8.3整体视图:内存映射的64位视图35
2.9流水线的可见度36
第3章 协处理器0.MIPS处理器控制38
3.1 CPU控制指令40
3.2相关寄存器与时序41
3.3 CPU控制寄存器及其编码42
3.3.1状态寄存器(SR)42
3.3.2原因寄存器46
3.3.3异常返回地址(EPC)寄存器48
3.3.4无效虚地址(BadVaddr)寄存器48
3.3.5计数/比较寄存器(Count/Compare):CPU上的计时器48
3.3.6处理器ID(PRId)寄存器48
3.3.7配置(Config)寄存器:CPU资源信息与配置49
3.3.8 EBase和IntCtl:中断与异常设置51
3.3.9 SRSCtl和SRSMap:影子寄存器设置52
3.3.10链接加载地址(LLAddr)寄存器53
3.4 CP0冒险——不经意间的陷阱53
3.4.1冒险屏障指令54
3.4.2指令冒险与用户冒险54
3.4.3 CP0指令之间的冒险55
第4章MIPS处理器的高速缓存56
4.1高速缓存和高速缓存的管理56
4.2高速缓存怎样工作56
4.3早期MIPS CPU中的写透式高速缓存59
4.4 MIPS CPU中的写回式高速缓存59
4.5高速缓存设计的其他选择59
4.6管理高速缓存60
4.7二级和三级高速缓存62
4.8 MIPS CPU高速缓存的配置62
4.9编程MIPS32/64高速缓存63
4.9.1 Cache指令64
4.9.2高速缓存初始化和Tag/Data寄存器66
4.9.3 CacheErr, ERR和ErrorEPC寄存器:内存/高速缓存的错误处理66
4.9.4计算高速缓存大小和配置方式67
4.9.5初始化例程67
4.9.6在高速缓存中无效或写回一个内存区域68
4.10高速缓存效率69
4.11重组软件来影响高速缓存效率70
4.12高速缓存别名71
第5章 异常、中断和初始化74
5.1精确异常75
5.2异常发生时刻76
5.3异常向量:异常处理开始的地方77
5.4异常处理:基础79
5.5从异常返回79
5.6嵌套异常80
5.7一个异常处理例程80
5.8中断80
5.8.1 MIPS CPU中的中断资源81
5.8.2通过软件实现中断优先级82
5.8.3原子性和SR的原子改变83
5.8.4中断使能时的临界区:MIPS中的信号量机制84
5.8.5 MIPS32/64中向量化和EIC中断86
5.8.6影子寄存器86
5.9启动86
5.9.1探测和识别CPU型号88
5.9.2启动序列89
5.9.3启动一个应用程序89
5.10模拟指令89
第6章 底层内存管理与TLB91
6.1 TLB/MMU硬件和它的功能91
6.2 TLB/MMU的寄存器描述92
6.2.1 TLB关键字域——EntryHi和PageMask92
6.2.2 TLB输出域——EntryLo0-194
6.2.3选择一个TLB表项——Index,Random和Wired寄存器95
6.2.4页表访问助手——Context和XContext95
6.3 TLB/MMU的控制指令97
6.4对TLB编程97
6.4.1如何进行重填98
6.4.2使用ASID98
6.4.3 Random寄存器与被锁定表项99
6.5硬件友好的页表和重填机制99
6.5.1 TLB缺失处理100
6.5.2 XTLB的缺失处理函数101
6.6 MIPS TLB的日常使用102
6.7更简单操作系统中的内存管理102
第7章 浮点支持104
7.1浮点的基本描述104
7.2 IEEE 754标准及其背景104
7.3怎样存储IEEE浮点数106
7.3.1 IEEE尾数和规格化106
7.3.2使用特殊值时的预留指数值107
7.3.3 MIPS浮点数据格式107
7.4 IEEE 754的MIPS实现108
7.5浮点寄存器109
7.6浮点异常/中断110
7.7浮点控制:控制/状态寄存器110
7.8浮点实现寄存器113
7.9浮点指令指南114
7.9.1加载/存储114
7.9.2寄存器间的传递115
7.9.3三操作数算术运算116
7.9.4乘加运算116
7.9.5一元(改变符号)运算116
7.9.6转换操作117
7.9.7条件分支和测试指令117
7.10成对单精度浮点指令和MIPS-3DASE119
7.10.1成对单精度指令的异常119
7.10.2成对单精度的三操作数算术、乘加、改变符号和无条件移动操作119
7.10.3成对单精度转换操作119
7.10.4成对单精度测试和条件移动指令120
7.10.5 MIPS-3D指令121
7.11指令时序需求122
7.12指令加速的时序123
7.13按需初始化和使能123
7.14浮点仿真124
第8章MIPS指令集完全指南125
8.1一个简单的例子125
8.2汇编指令及其含义126
8.2.1 U和非U助记符127
8.2.2除法助记符128
8.2.3指令的详细清单128
8.3浮点指令145
8.4 MIPS32/64发行版1的区别150
8.4.1在发行版2中加入的常规指令150
8.4.2发行版2新加入的特权指令151
8.5特殊指令和它们的用途151
8.5.1向左加载/向右加载:地址非对齐的存取操作151
8.5.2链接加载/条件存储155
8.5.3条件传递指令156
8.5.4可能分支指令157
8.5.5整数乘累加指令和乘加指令157
8.5.6浮点乘加指令158
8.5.7多浮点条件标志位158
8.5.8缓存数据预取159
8.5.9存取内存屏障:Sync指令159
8.5.10冒险屏蔽指令160
8.5.11 Synci:指令写入的缓存管理161
8.5.12读取硬件寄存器161
8.6指令的机器编码162
8.6.1指令编码表中的域162
8.6.2指令编码表的注意事项163
8.6.3编码方式和处理器的简单实现163
8.7指令集的功能分组180
8.7.1空操作180
8.7.2寄存器间的数据传递指令180
8.7.3常数加载指令181
8.7.4算术/逻辑操作指令181
8.7.5整数乘法、除法以及求余指令182
8.7.6整数乘累加指令183
8.7.7存取指令184
8.7.8跳转、分支和子程序调用指令185
8.7.9断点及陷阱指令186
8.7.10协处理器0功能186
8.7.11浮点操作指令187
8.7.12用户模式下对“底层”硬件的有限访问187
第9章 阅读MIPS汇编语言188
9.1一个简单的例子188
9.2句法191
9.3指令的约定192
9.3.1计算指令:3寄存器、2寄存器和1寄存器192
9.3.2立即数:带常量的计算指令192
9.3.3关于64位和32位指令193
9.4寻址模式193
9.5目标文件和内存布局195
第10章在MIPS体系结构上移植软件198
10.1 MIPS应用的底层软件:经常会遇到问题的列表198
10.2尾端:字、字节和位的顺序199
10.2.1位、字节、字和整数199
10.2.2软件和尾端201
10.2.3硬件和尾端203
10.2.4 MIPS CPU的双尾端软件206
10.2.5可移植性和尾端无关代码207
10.2.6尾端和外来数据208
10.3可见缓存的问题208
10.3.1缓存管理和DMA数据210
10.3.2缓存管理和写指令:自修改代码210
10.3.3缓存管理和非缓存或写透数据211
10.3.4缓存别名和页面着色211
10.4存储访问顺序和重排211
10.4.1排序与写缓冲213
10.4.2实现wbflush213
10.5写C程序214
10.5.1用GNU C编译器包装汇编代码214
10.5.2映射为内存的I/O寄存器和“Volatile215
10.5.3用C写MIPS应用程序的其他问题216
第11章MIPS软件标准(ABI)218
11.1数据表示和对齐218
11.1.1基本类型的大小219
11.1.2 “long”型和指针型数据大小219
11.1.3对齐要求219
11.1.4基本类型的内存布局和尾端如何产生影响219
11.1.5内存的布局结构、数组类型和对齐220
11.1.6结构中的位域221
11.1.7 C中的不对齐数据223
11.2参数传递以及MIPS ABI中的堆栈约定223
11.2.1堆栈、子例程链接和参数传递223
11.2.2 o32的堆栈参数结构224
11.2.3使用寄存器传递参数224
11.2.4 C库中的例子225
11.2.5特殊的例子:传递结构226
11.2.6传递可变参数226
11.2.7函数返回值227
11.2.8扩展寄存器-使用约定:SGIn32和n64227
11.2.9堆栈布局、堆栈帧和辅助调试器230
11.2.10可变参数和stdargs235
第12章 调试MIPS设计——调试和剖析特性236
12.1 “EJTAG”片上调试单元237
12.1.1 EJTAG历史238
12.1.2探头如何控制CPU238
12.1.3通过JTAG调试通信239
12.1.4调试模式239
12.1.5单步240
12.1.6 dseg内存译码区域240
12.1.7 EJTAG CP0寄存器,特殊调试242
12.1.8 DCR(调试控制)内存映射寄存器244
12.1.9 EJTAG断点硬件支持244
12.1.10理解断点条件246
12.1.11非精确调试断点247
12.1.12 PC取样与EJTAG247
12.1.13使用没有探头的EJTAG247
12.2 EJTAG之前的调试支持——break指令和CP0观察点248
12.3 PDtrace249
12.4性能计数器249
第13章GNU/Linux概览251
13.1组件251
13.2内核代码的层次254
13.2.1异常模式下的MIPS CPU254
13.2.2屏蔽部分或全部中断的MIPS CPU254
13.2.3中断上下文255
13.2.4线程上下文中执行内核255
第14章 硬件与软件如何协同工作256
14.1中断的生命周期256
14.2线程、临界区和原子性258
14.2.1 MIPS体系结构和原子操作259
14.2.2 Linux自旋锁260
14.3系统调用时发生了什么260
14.4 Linux/MIPS系统如何进行地址翻译262
14.4.1为什么进行内存翻译263
14.4.2基本进程布局与保护265
14.4.3映射进程地址到真实内存265
14.4.4选择页式映射266
14.4.5我们真正需要的266
14.4.6 MIPS设计的起源268
14.4.7记录被修改的页面(模拟“脏”位)270
14.4.8内核如何服务一个TLB重填异常270
14.4.9 TLB的注意事项与维护273
14.4.10内存翻译与64位指针273
第15章Linux内核中的MIPS特有问题275
15.1显式缓存管理275
15.1.1 DMA设备访问275
15.1.2写入指令稍后执行276
15.1.3缓存/内存映射问题276
15.1.4缓存别名277
15.2 CP0流水线冒险277
15.3多处理器系统与一致性缓存278
15.4对一个关键例程的极度优化调整280
第16章Linux应用程序代码、PIC和库82
16.1链接单元如何进入程序283
16.2全局偏移表(GOT)组织283
附录A MIPS多线程286
附录B MIPS指令集的其他可选扩展292
MIPS术语表296
参考文献324
热门推荐
- 3401641.html
- 72880.html
- 2757021.html
- 824163.html
- 3582140.html
- 15913.html
- 227899.html
- 3841539.html
- 718783.html
- 381504.html
- http://www.ickdjs.cc/book_1596030.html
- http://www.ickdjs.cc/book_2927641.html
- http://www.ickdjs.cc/book_2224266.html
- http://www.ickdjs.cc/book_3606590.html
- http://www.ickdjs.cc/book_1568735.html
- http://www.ickdjs.cc/book_1180305.html
- http://www.ickdjs.cc/book_464086.html
- http://www.ickdjs.cc/book_2739639.html
- http://www.ickdjs.cc/book_2187426.html
- http://www.ickdjs.cc/book_3132655.html