MIPS体系结构透视图文Word下载.docx

上传人:b****6 文档编号:16784835 上传时间:2022-11-26 格式:DOCX 页数:10 大小:171.18KB
下载 相关 举报
MIPS体系结构透视图文Word下载.docx_第1页
第1页 / 共10页
MIPS体系结构透视图文Word下载.docx_第2页
第2页 / 共10页
MIPS体系结构透视图文Word下载.docx_第3页
第3页 / 共10页
MIPS体系结构透视图文Word下载.docx_第4页
第4页 / 共10页
MIPS体系结构透视图文Word下载.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

MIPS体系结构透视图文Word下载.docx

《MIPS体系结构透视图文Word下载.docx》由会员分享,可在线阅读,更多相关《MIPS体系结构透视图文Word下载.docx(10页珍藏版)》请在冰豆网上搜索。

MIPS体系结构透视图文Word下载.docx

第2版不仅对第1版进行了彻底的更新,而且将应用广泛的RISC系统结构MIPS与开源操作系统

Linux结合在一起。

本书的第一部分从MIPS设计原理开始,进而阐述MIPSt旨令集和程序员资源。

书中以MIPS32/MIPS64标准为基准,对其他体系结构进行了比较。

与第1版相比,第2版的显著变化是面图片的小企鹅坐在驾驶员的位置上,本书以此作为研究来自Linux内核的真正的低层操作系统的实例,展示Linux(包括单处理器和DSMP)如何构建于MIPS体系结构所提供的基础之上。

本书从操作系统的底层(中断、内存调度)开始,进而描述

Linux/MIPS应用代码如何载入到内存、连接到库并运行。

本书简介

本书是一本关于MIPS体系结构的经典之作。

第2版延续了第1版的可读性传统,通过应用具体的实例对硬件和软件的接口进行强调,并将广泛应用的RISC系统结构MIPS与开源操作系统Linux结合在一起,从MIPS设计原理开始,阐述MIPS指令集和程序员的可用资源。

第2版在描述Linux/MIPS应用代码如何载入到内存、如何连接到库以及如何运行等方面做了介绍。

此外,书中还提供了完整的、经过更新的MIPS指令集指南。

本书既可作为高等院校计算机体系结构、嵌入式系统编程和高级计算技术等课程的教材或教学参考书,也很适合科研机构专业人士和软硬件开发人员参考阅读。

出版者的话

专家指导委员会

推荐序

译者序

序言

前言

第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实现wbflush10.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和n6411.2.9堆栈布局、堆栈帧和辅助调试器11.2.10可变参数和stdargs第12章调试MIPS设计——调试和剖析特性12.1“EJTAG”片上调试单元12.1.1EJTAG历史12.1.2探头如何控制CPU12.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使用没有探头的EJTAG12.2EJTAG之前的调试支持——break指令和CPO观察点12.3PDtrace12.4性能计数器第13章GNU几inux概览13.1组件13.2内核代码的层次13.2.1异常模式下的MIPSCPU13.2.2屏蔽部分或全部中断的MIPSCPU13.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术语表参考文献插图摘要书摘插图第1章 RISC和MIPS

在RISC体系结构中,MIPS是最优雅的一种,甚至连竞争对手也不得不承认这一点。

这一点,从后来的体系结构,如DEC的Alpha和惠普的Precision受到MIPS的巨大影响也可以明显地看出来。

MIPS自身优雅的设计虽然不能在充满竞争的市场中保证长盛不衰,但其微处理器却总能跻身于每一代最有效率的微处理器之列并保持最简洁的设计。

对MIPS计算机系统公司而言,相对简洁的设计是一种商业上的需要,该公司起源于1985年一个制造并销售芯片的学术项目。

后来,该体系结构得到了(或许现在继续得到)工业界制造商们最广泛的支持——从生产专用集成电路核心(ASICcore)的厂商,如MIPSTechnologies、飞利浦,到制造低成本CPU的厂商,如IDT、AMD/Alchemy,再到广泛应用的嵌入式领域中唯一的64位CPU厂商,如IPMC—Sierra、东芝和Broadcom。

在低端,MIPSCPU在系统芯片(systemonachip)中用肉眼很难看到;

而在高端,Intrinsity公司非凡的处理器可以以2GHz运行——一个无可匹敌的速度,当然功耗/热量无限攀升的当代PC机除外。

ARM吸引了更多的眼球,但MIPS依然保持了足够良好的销量:

2004年在嵌入式应用中就销售了1亿个CPU。

MIPSCPU是一种RISC体系结构的CPU,产生于一个学术研究与开发蓬勃发展的特殊时期。

RISC(精简指令集计算)是一个很有魅力的缩写名词,就像类似的其他很多缩写名词一样,其混淆的事实比其揭露的事实更多。

但对于1986年到1989年间出现的许多新的CPU体系结构(它们的卓越性能都应归功于几年前的一系列开创性研究项目中发现的一些重要思想)来说,RISC这个词却真正为它们提供了一个有用的标签。

有人曾评论到:

“1984年以后定义的计算机体系结构都是RISC的”。

这句话尽管像是在嘲讽产业界对这个词语的用法,但这一评论在技术上也是事实——1984年以后设计的计算机,没有任何一款能够忽视RISC先驱者们的工作。

 ……下载后点击此处查看完整内容

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1