




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字逻辑与数字系统指令集体系结构(ISA)5冯‧诺依曼计算机结构指令集体系结构(ISA)汇编语言机器语言冯‧诺依曼计算机结构VonNeumannComputer1电子计算机的问世,奠基人是英国科学家图灵(AlanTuring)和美籍匈牙利科学家冯·诺依曼(JohnVonNeumann)。图灵的贡献是建立了图灵机的理论模型,奠定了人工智能的基础。而冯·诺依曼则是首先提出了计算机体系结构的设想。冯·诺依曼计算机VonNeumannComputer冯·诺依曼和奥本海默在第一台计算机前合影冯·诺依曼计算机VonNeumannComputer冯‧诺依曼计算机冯·诺依曼计算机VonNeumannComputer冯‧诺依曼计算机的特点冯·诺依曼计算机VonNeumannComputer数据和指令一律用二进制数表示;存储器按线性一维编址,且每个存储单元的位数固定;采用存储程序方式,指令/数据存储在同一个存储器中;指令在存储器中按顺序存放,按顺序执行的,但执行顺也会根据运算结果或指定的条件而改变;以(运算器和控制器,即CPU)为中心,输入输出设备和存储器之间的数据传送都要通过CPU。冯‧诺依曼计算机的优缺点冯·诺依曼计算机VonNeumannComputer本质特征存储程序和指令驱动执行目前的计算机没有能突破该特征的,都是对其的变种(如哈佛结构等)优点自动、快速执行缺点指令驱动的顺序执行CPU和存储器分开,而且越来越远指令集体系结构InstructionSetArchitecture(ISA)2InstructionSetArchitecture(ISA)指令集体系结构不同的处理器拥有不同的指令集不同国家/种族的人使用不同的语言思考题:为什么一个软件可以运行在装配有不同Intel处理器的个人电脑上?思考题:为什么一个软件可以运行在装配有不同ARM处理器的安卓手机上?兼容性IBMSystem/360InstructionSetArchitecture(ISA)指令集体系结构指令集体系结构(ISA)微体系结构功能模块数字电路模拟电路器件层物理层系统软件(操作系统)应用软件软件硬件指令集体系结构的定义InstructionSetArchitecture(ISA)指令集体系结构指令集体系结构(ISA,也称指令系统),是对处理器硬件细节的抽象描述,即设计规范,定义了处理器能够做什么,也是系统级程序员所能看到的处理器的属性。指令系统结构不仅仅是关于指令功能的编码(指令集),还包括:基本数据类型寄存器寻址模式存储管理机制异常和中断处理运行时环境和运行级别控制硬件的功能是通过ISA提供出来软件按ISA规定使用硬件ISA中的“五朵金花”InstructionSetArchitecture(ISA)指令集体系结构x86ARMPOWERSPARCMIPS
MIPS指令集体系结构MIPS(无内部互锁流水级处理器)是最经典的RISC处理器,被视为处理器教科书的典范。由斯坦福大学的校长,JohnL.Hennessy领导的研究小组在1981年开始设计的。其设计理念就是使用相对简单的指令,结合优秀的编译器以及采用流水线技术执行指令,从而使用更少的晶体管生产出更快的处理器。1986年Hennessy检查首款MIPS处理器R2000的电路图InstructionSetArchitecture(ISA)指令集体系结构PresidentofStanfordUniversityProfessorofElectricalEngineeringandComputerScienceatStanfordsince1977CoinventedtheReducedInstructionSetComputer(RISC)withDavidPattersonDevelopedtheMIPSarchitectureatStanfordin1984andcofoundedMIPSComputerSystemsAsof2004,over300millionMIPSmicroprocessorshavebeensoldJohnHennessyInstructionSetArchitecture(ISA)指令集体系结构JohnHennessy&DavidPatterson2017年图灵奖得主InstructionSetArchitecture(ISA)指令集体系结构简单设计有助于规整化加快常见功能越小的设计越快好的设计需要好的折中MIPS体系架构设计准则InstructionSetArchitecture(ISA)指令集体系结构指令集体系结构为什么重要InstructionSetArchitecture(ISA)指令集体系结构指令集体系结构是计算机产业的枢纽,控制产业生态如成千上万家企业参与到x86生态(x86是最好的ISA吗?)指令体系结构是计算机软硬件的重要标准一个人当然可以发明自己的语言,但是如何别人接受才是真正的问题指令系统决定系统性能和实现复杂性等如RISC、CISC如32位/64位,媒体指令、向量指令等微体系结构的定义InstructionSetArchitecture(ISA)指令集体系结构微体系结构是指令集体系结构的一种具体硬件实现,如指令的数据通路结构,计算单元的电路结构(加法器等),存储器体系(寄存器文件、主存的结构)等等。x86SandyBridgeIvyBridgeARMv8ARMA53/A72AppleTwisterMIPS32MIPS4K/24K龙芯GS232汇编语言AssemblyLanguage3计算机机器语言——指明了需要完成什么操作以及操作数的来源汇编语言:
便于人来阅读,包括汇编指令、伪指令(标签)、宏指令等机器语言:
机器可读(0和1形式)的指令,也叫机器指令汇编指令和机器指令是一一对应的关系。本章主要介绍MIPS汇编指令(汇编语言)由JohnHennessy和同事于1980’s在斯坦福大学提出。应用于许多商业系统:SiliconGraphics,Nintendo和Cisco等。汇编语言汇编语言AssemblyLanguage汇编指令格式:助记符目的操作数源操作数add(sub):
助记符,表明该指令完成什么操作,也称操作符b,c:源操作数,表明输入数据的来源a:
目的操作数,表明输出数据的去处CCodea=b+c;a=b-cMIPSassemblycodeadda,b,csuba,b,c加法指令汇编语言AssemblyLanguage指令格式前后一致操作数格式一致易于在硬件中编码和处理设计准则1:简单设计有助于规整化汇编语言AssemblyLanguageCCodea=b+c-d;MIPSassemblycodeaddt,b,c#t=b+csuba,t,d#a=t-d汇编语言AssemblyLanguage复杂代码MIPS仅仅包含了简单常用的指令。硬件解码和执行指令可以变得简单、短小、速度快。更复杂的指令由多条MIPS指令完成MIPS为RISC(精简指令),而Intel的x86为CISC(复杂指令)。设计准则2:加快常见功能汇编语言AssemblyLanguage操作数物理位置寄存器存储器常数(立即数)汇编操作数汇编语言AssemblyLanguageMIPS定义了32个32位寄存器组成的寄存器文件(registerfile)。寄存器的访问速度快于内存,但存储容量有限MIPS被称为32位体系,因为其操作的数据宽度为32位数据操作数——寄存器汇编语言AssemblyLanguageMIPS体系只包含了数目不多的32个寄存器。3.越小的设计越快汇编语言AssemblyLanguage助记符编号用途$0$0theconstantvalue0$at$1assemblertemporary$v0-$v1$2-$3Functionreturnvalues$a0-$a3$4-$7Functionarguments$t0-$t7$8-$15temporaries$s0-$s7$16-$23savedvariables$t8-$t9$24-$25moretemporaries$k0-$k1$26-$27OStemporaries$gp$28globalpointer$sp$29stackpointer$fp$30framepointer$ra$31FunctionreturnaddressMIPS寄存器汇编语言AssemblyLanguage寄存器名字前面加$表示例如:$0,代表寄存器0有些寄存器有专有用途$0总是表示立即数0.$s0-$s7为保存寄存器,用于保存变量.$t0-$t9为临时寄存器,用于保存大型计算中的中间值本课程中除了$0寄存器,其它寄存器可以任意使用操作数—寄存器汇编语言AssemblyLanguageCCodea=b+cMIPSassemblycode#$s0=a,$s1=b,$s2=cadd$s0,$s1,$s2带寄存器的指令汇编语言AssemblyLanguage存储器可以存储更多的数据;存储器的访问时间更长,故经常使用的变量会存在寄存器中;综合使用存储器和寄存器,程序可以以较快的速度访问大量数据;对于MIPS而言,存储器的地址为32位,一个存储字的长度也为32位。MIPS采用字节编址存储器,每个字节有一个单独地址。但可以按字节、半字和字的方式进行寻址。操作数——存储器汇编语言AssemblyLanguage按字编址和寻址汇编语言AssemblyLanguage注意:MIPS是按字节编址的,不是字编址。为了便于理解,先讲字编址再讲字节编址每个字有一个独立地址按字编址和寻址汇编语言AssemblyLanguage读存储器的指令称为加载指令(load指令)加载一个字的指令助记符为“lw”(loadaword)加载指令格式:lw$s0,5($t1)计算访存地址:基地址($t1寄存器中的值)+偏移(5)访存地址=($t1+5)含义:从主存地址“$t1+5”处,读取一个字,将其存放到寄存器$s0中基地址可以存放在任意寄存器中按字编址和寻址汇编语言AssemblyLanguage写存储器的指令称为存储指令(store指令)存储一个字的指令助记符为“sw”(storeaword)存储指令格式:sw$s0,5($t1)计算访存地址:基地址($t1寄存器中的值)+偏移(5)访存地址=($t1+5)含义:向主存地址“$t1+5”处,写入寄存器$s0中的字基地址可以存放在任意寄存器中按字节编址汇编语言AssemblyLanguage每个字节有一个独立地址具有加载/存储字节、半字和字指令加载/存储字节:lb,sb加载/存储半字:lh,sh加载/存储字节:lw,sw一个字(32-bit)为4字节,字地址按4递增读按字节编址存储器汇编语言AssemblyLanguage示例:从存储器地址4处,加载一个字到寄存器$s3中。MIPS汇编代码:lw$s3,4($0)#$0寄存器中存放的数据为0,$s3=0xF2F1AC07注意:访问一个字时,地址必须是4的倍数(4对齐),即地址最后两位均为0,否则出错。例如:lw$s3,1($0)写按字节编址存储器汇编语言AssemblyLanguage示例:将寄存器$t7中的值写入到存储器地址44处。MIPS汇编代码:sw$t7,44($0)#$0寄存器中存放的数据为0,$s3=0xF2F1AC07思考题汇编语言AssemblyLanguage对于按字节编址的存储器,加载或存储一个半字,汇编代码是什?MIPS汇编代码:lh$s3,4($0)sh$t7,44($0)#对于半字,访存地址必须是2的倍数(2对齐)MIPS汇编代码:lb$s3,4($0)sb$t7,44($0)#对于字节没有地址要求对于按字节编址的存储器,加载或存储一个字节,汇编代码是什?大端和小端汇编语言AssemblyLanguage在字节编址的存储器中,根据一个字中的字节的存储顺序将存储器的组织方式分为两种:大端(big-endian)和小端(little-endian)大端:一个字中,最高有效字节存储在低地址。小端:一个字中,最高有效字节存储在高地址。两种组织方式,字地址都是相同的,只是一个字中的字节地址不同。大端/小端由ISA确定,对于MIPS而言,二者都可以使用。大端和小端汇编语言AssemblyLanguage大端访问地址0:0x00112233小端访问地址0:0x33221100大端和小端汇编语言AssemblyLanguage假设$s0中的初始值为0x23456789。对于大端或小端组织形式,下面程序执行后,$s0的值是多少?sw$s0,0($0)lb$s0,1($0)大端:$s0的值0x00000045小端:$s0的值0x00000067思考题汇编语言AssemblyLanguage编写一段C程序,确定所运行机器采用大端存储还是小端存储?intbig_little_endian(){inti=0x12345678;char*c=(char*)&i;
return(*c==0x12);}如果返回值是“1”:大端如果返回值是“0”:
小端操作数既不来自寄存器,也不来自存储器,而直接来自指令;立即数通常被表示为一个16位的二进制补码,嵌入在指令中。操作数——立即数汇编语言AssemblyLanguageCCodea=a+4;b=a–12;MIPSassemblycode#$s0=a,$s1=baddi$s0,$s0,4addi$s1,$s0,-12机器语言MachineLanguage33种指令格式:寄存器类型指令(R型指令)()立即数类型指令(I型指令)跳转类型指令(J型指令)机器语言机器语言MachineLanguage寄存器类型指令机器语言MachineLanguage32位指令字被划分为6个字段op字段表示操作码,通常为全0func字段与op字段一起决定指令的功能rs字段和rt字段为寄存器编号,表示两个源操作数来自于寄存器rd字段表示目的寄存器的编号sa(shamt)字段只在移位指令中使用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机械及材料管理办法
- 故宫文物馆管理办法
- 沙棘厂运营管理办法
- 新疆门楼牌管理办法
- 基层水管所管理办法
- 备件abc管理办法
- 国企新媒体管理办法
- 新疆培训费管理办法
- 姜堰区变更管理办法
- 厦门市工地管理办法
- 2024-2030年中国集群通信系统行业市场发展监测及投资前景展望报告
- 帕金森护理常规知识
- 长郡中学2024-2025学年高一下学期期末考试英语试卷(含答案)
- 学堂在线 心理学与生活 章节测试答案
- 有机产品标准培训课件
- 2025年广东省中考语文试卷真题(含答案)
- GB 36980.1-2025电动汽车能量消耗量限值第1部分:乘用车
- 2025年湖北省中考语文试卷真题(含标准答案)
- 浙江中考科学必考题型解读-40 电能和电功计算(解析版)
- 《文旅景观照明技术规范》
- 工艺工程师培训课件
评论
0/150
提交评论