《计算机组成原理与系统结构 (35).ppt》由会员分享,可在线阅读,更多相关《计算机组成原理与系统结构 (35).ppt(26页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache指令集指令集指令集指令集:基本基本寻址方式寻址方式计算机组成原理与系统结构2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache依赖CPU硬件,会直接影响指令格式和功能用于确定当前指令中数据地址或确定下用于确定当前指令中数据地址或确定下一条将要执行指令地址的方法一条将要执行指令地址的方法寻址方式CacheCache定义2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2
2、N/2w 2N/2w Cache寻址方式CacheCache两种类型顺序寻址指令寻址指令寻址 跳跃寻址下条指令的地址码使用程序计数器PC给出下条指令的地址下条指令的地址不由PC给出,而是由本条指令给出数据寻址数据寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache立即数寻址间接寻址寄存器间接寻址偏移寻址直接寻址寄存器寻址隐含寻址堆栈寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式的说明CacheCache每个
3、计算机都提供不止一种寻址方式一般是采用指令操作码与其寻址方式一般是采用指令操作码与其寻址方式一一对应的方式来确定寻址方式一一对应的方式来确定寻址方式还有使用指令格式中的一段作为地址还有使用指令格式中的一段作为地址方式说明字段但这种情况方式说明字段但这种情况较为少见2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式的说明CacheCache有效地址EA在没有虚拟存储器的系统中,有效地在没有虚拟存储器的系统中,有效地址就是内存的地址或者是寄存器址就是内存的地址或者是寄存器指操作数的真实地址指操作数的真实地址2N/2w
4、i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式的说明CacheCache有效地址EA虚拟地址的长度往往会超过地址字段或者是寄存器的位数,就需要通过间接寻址或者是寄存器间接寻址以及偏移寻址方式等方式来获得在虚拟存储器系统中,有效地址就是在虚拟存储器系统中,有效地址就是虚拟地址或者虚拟地址或者寄存器寄存器2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache立即数寻址操作数是指令的一部分,操作数=形式地址数以补码形式存储,最左为符号
5、位 当操作数装入数据寄存器时,按照补码扩展的方式来填充数据字的字长2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache立即数寻址优点最简单的寻址模式,不需要访问内存或缓存快速缺点数的大小受限于地址字段长度,范围有限2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache立即数寻址应用定义和使用常量设置变量的初始值2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/
6、2w 2N/2w Cache寻址方式CacheCache立即数寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache直接寻址地址字段就含有操作数的有效地址地址字段就含有操作数的有效地址有效地址有效地址EA=EA=指令中的形式地址指令中的形式地址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache直接寻址优点只要求一次存储器访问无需额外计算就可得出有效地址缺点受限于地址字段长度,只能提供有限的地址空间
7、2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache直接寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache间接寻址指令指令中的地址字段(形式地址)不中的地址字段(形式地址)不直接给出操作数地址,而是指出有直接给出操作数地址,而是指出有效地址所在的存储单元的效地址所在的存储单元的地址地址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w
8、Cache寻址方式CacheCache间接寻址查找地址A,找到A中存放的内容(A),该内容才是真正的操作数有效地址(A),然后再通过该地址查找到真正的操作数EA=(A)EA=(A)e.g.EA=(A)允许进行嵌套或级联允许进行嵌套或级联2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache优点更大的地址空间 对于一次间接寻址,存储单元为N位字长来说寻址范围可达2N缺点需要两次(一次间接寻址)或多次(多次间接寻址)内存访问来查找操作数速度较慢2N/2w i=j mod m(Tag)CPUN=(s+w)
9、i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache间接寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache寄存器寻址指令中的地址字段(形式地址)直接给出寄存器的编号EA=R寄存器数量有限寄存器编码比较短35bits2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache优点无须访存执行速度快缺点地址空间十分有限指令更短寄存器寻址2N/2w i=j mod m(T
10、ag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache对于经常使用的变量,最好将它们定义为寄存器变量 程序员或编译器应判定哪些值应保留在程序员或编译器应判定哪些值应保留在寄存器中,哪些值应存于存储器中寄存器中,哪些值应存于存储器中计算的中间结果寄存器寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache寄存器寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻
11、址方式CacheCache寄存器间接寻址与间接寻址类似,地址字段给出的是寄存器的编号),操作数的有效地址是寄存器里的内容EA=(R)操作数在寄存器R的内容所指向的存储单元中2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache寄存器间接寻址同样可以获得较大的地址空间(2N)指令的执行仍需访存寄存器间接寻址比间接寻址少一次存储器访问2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache寄存器间接寻址2N/2w i=j mod m(Tag)CPUN=(s+w)i=j mod mCache2N/2w 2N/2w Cache寻址方式CacheCache隐含寻址操作数的地址不会直接显示出来,地址隐含在某些特定寄存器中隐含的具体寄存器与所使用的指令密切相关有利于缩短指令长度E.g.AC