Coldfire V2 overview.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Coldfire V2 overview.ppt

Coldfire V2 overview MCF5223X and MCF5225x Coldfire V2 core Coldfire是m68k的改进型,1994年开始 Coldfire内核基于变长精简指令集(RISC)体系结构,整合和CISC和RISC的优点 变长RISC的优点:更高的编码效率与更低的内存占用率 Coldfire V2具有两个独立的流水线,两者之间由指令缓存器去耦 取指令流水线(IFP)负责预取指令,是两级的流水线 操作数执行流水线(OEP)负责执行指令,也是两级流水线 指令缓存器(instruction buffer)是一个FIFO,起联系上述两个流水线的作用 Up to 159Dhrystone2.1 MIPS@166MHZ Coldfire V2流水线 指令地址生成器:计算下一个预取指令地址,并送到地址总线准备访问指令存储器 取指令:通过数据总线将存储器中的预取指指令写入本级FIFO指令缓存器的空闲区。 指令缓存器:是两级FIFO,存放预取指令,并将其发送给OEP 译码级:对指令进行译码,并取操作数 地址生成执行级:执行实际指令的操作。当执行执行完成后,译码级将从指令缓存器中取下条指令,如果指令缓存器空,则直接从IFP取下条指令 Coldfire V2执行模式 两个模式:用户模式和管理员模式(内核模式) 用户模式:提供大多数应用程序的执行环境,但某些特权指令和资源不能访问 内核模式:为操作系统等系统软件提供执行环境,可以执行和访问所有的指令和资源 Coldfire V2的寄存器 16个32bits通用寄存器(D0~D7,A0~A7) 1个32bits程序计数器(PC) 1个8bits条件码寄存器(CCR) 4个48bits的EMAC寄存器(不是所有的型号都有) 所有用户模式的寄存器(除去CCR) 16bits的状态寄存器(SR),其低8bits就是CCR 32bits的管理员堆栈寄存器(SSP) 32bits的向量基地址寄存器(VBR) D0~D7数据寄存器:存放数据或用作index寄存器,可以1bits,8bits,16bits,32bits操作 A0~A6地址寄存器:用于对存储器选址,也可用作index寄存器,software stack寄存器,base address寄存器;可以16bits,32bits操作 A7和OTHER_A7:通常用作堆栈寄存器(SP).coldfire实现了两个SP,一个是用户模式USP,一个是内核模式SSP.A7代表当前模式下的SP,OTHER_A7则代表另一个模式下的SP CCR是SR的低8位,可以在用户模式下访问;而SR高8位只能在内核模式下访问 PC寄存器存放当前正在执行的指令地址,当一条指令执行完时,PC自动增加,指向下条指令 向量基地址寄存器(VBR):存储coldfire异常向量表的基地址,复位时VBR=0指向0x0处的异常向量表 状态寄存器(SR) Coldfire的寻址模式 寄存器直接寻址模式 地址寄存器间接寻址 后增地址寄存器间接寻址 预减地址寄存器间接寻址 16位偏移量地址寄存器间接寻址 变址和8位偏移量地址寄存器间接寻址 16位偏移量的程序计数器间接寻址 变址和8位偏移量的程序计数器间接寻址 绝对短数据寻址模式 绝对长数据寻址模式 立即数寻址模式 寄存器直接寻址 主要用于存取内核通用数据寄存器 举例: MOVE.W D2,D5//将D2的低16位复制到D5低16位 MOVE.L D2,D5//将D2复制到D5 MOVE.B D2,D5//将D2的低8位复制到D5低8位 地址寄存器间接寻址 利用地址寄存器A0~A6,间接的访问存储器 举例: MOVE.B D2,(A5)//将D2的低8位复制到A5寄存器所指向的存储器空间中 MOVE.W (A3),D1//将A3所指向的存储器中的一个字(16bits)复制到D1 后增地址寄存器间接寻址 与地址寄存器间接寻址类似,但在寻址后地址寄存器会自动增加以指向下一个存储单元 举例: MOVE.W D2,(A5)+//将D2的低16位复制到A5指向的存储单元,并将A5+2,指向下一个单元 MOVE.L D2,(A5)+//将D2的数据复制到A5指向的存储单元,并将A5+4,指向下一个单元 预减地址寄存器间接寻址 与地址寄存器间接寻址类似,但在操作前先将地址寄存器值减,以指向前一个存储单元 举例: MOVE.L D2,-(A5)//将D2的内容复制到A5-4的存储器单元 16位偏移量地址寄存器间接寻址 访问的存储器地址=地址寄存器的内容+16位的偏移量,偏移量可正可负 举例: MOVE.B D4,0x100(A3)//将D4的值复制给A3+0x

文档评论(0)

gshbzl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档