ARM体系结构20171007

上传人:zha****an 文档编号:244405435 上传时间:2024-10-04 格式:PPTX 页数:84 大小:5.97MB
返回 下载 相关 举报
ARM体系结构20171007_第1页
第1页 / 共84页
ARM体系结构20171007_第2页
第2页 / 共84页
ARM体系结构20171007_第3页
第3页 / 共84页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,嵌入式系统,第,2,课,ARM,体系结构,Evaluation Warning : The document was created with Spire.Presentation for .NET,课前导,入,入,嵌入式,系,系统组,成,成原理,嵌入式,最,最小系,统,统,嵌入式,系,系统扩,展,展,Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,1.嵌入式,系,系统和,一,一般的,计,计算机,系,系统在,硬,硬件组,成,成,结,结构上,有,有哪些,异,异同之,处,处?,2.什么是,嵌,嵌入式,最,最小系,统,统?一,般,般常见,的,的最小,系,系统由,哪,哪些部,分,分组成,?,?,3.嵌入式,系,系统常,见,见的扩,展,展部件,有,有哪些,?,?,嵌入式,系,系统和,一,一般的,计,计算机,系,系统类,似,似,也,是,是由CPU、内存,、,、IO端口、,总,总线等,几,几个部,分,分组成,。,。,嵌入式,系,系统硬,件,件的特,点,点主要,是,是集成,度,度高,,非,非标准,化,化,接,口,口非常,复,复杂。,课前导,入,入,Evaluation Warning : The document was created with Spire.Presentation for .NET,1.嵌入式,系,系统和,一,一般的,计,计算机,系,系统在,硬,硬件组,成,成,结,结构上,有,有哪些,异,异同之,处,处?,2.什么是,嵌,嵌入式,最,最小系,统,统?一,般,般常见,的,的最小,系,系统由,哪,哪些部,分,分组成,?,?,3.嵌入式,系,系统常,见,见的扩,展,展部件,有,有哪些,?,?,嵌入式,系,系统的,最,最小系,统,统指基,于,于某处,理,理器为,核,核心,,可,可以运,转,转起来,的,的最简,单,单的硬,件,件设计,(,(即处,理,理器能,够,够运行,的,的最基,本,本系统,),)。,嵌入式,最,最小系,统,统的组,成,成,包,括,括处理,器,器、内,存,存、时,钟,钟、电,源,源和复,位,位。为,了,了能够,支,支持程,序,序的下,载,载和调,试,试,一,般,般还需,要,要在最,小,小系统,中,中添加,对,对JTAG接口的,支,支持。,课前导,入,入,Evaluation Warning : The document was created with Spire.Presentation for .NET,1.嵌入式,系,系统和,一,一般的,计,计算机,系,系统在,硬,硬件组,成,成,结,结构上,有,有哪些,异,异同之,处,处?,2.什么是,嵌,嵌入式,最,最小系,统,统?一,般,般常见,的,的最小,系,系统由,哪,哪些部,分,分组成,?,?,3.嵌入式,系,系统常,见,见的扩,展,展部件,有,有哪些,?,?,嵌入式,的,的处理,器,器一般,集,集成了,很,很多的,外,外围器,件,件,但,也,也不可,能,能把所,有,有的功,能,能都集,成,成到芯,片,片内部,,,,因此,实,实际的,嵌,嵌入式,系,系统需,要,要在最,小,小系统,的,的基础,上,上进行,系,系统扩,展,展。,常用的,扩,扩展芯,片,片有以,下,下几类,:,:存储,类,类芯片,、,、通信,类,类芯片,以,以及其,他,他功能,芯,芯片。,课前导,入,入,Evaluation Warning : The document was created with Spire.Presentation for .NET,课程重,点,点,1.可,编,编程器,件,件的特,点,点,2.计算机,的,的体系,结,结构(,冯,冯诺依,曼,曼与哈,佛,佛),3.ARM处理器,的,的流水,线,线概念,及,及运行,原,原理,4.ARM各模式,及,及可访,问,问的寄,存,存器,5.ARM,体,体系的,异,异常,6.ARM,体,体系的,存,存储系,统,统,7.ARM,的,的寻址,方,方式,Evaluation Warning : The document was created with Spire.Presentation for .NET,1.可,编,编程器,件,件的特,点,点,模拟器,件,件 -, 数,字,字器件,ASIC -, 可,编,编程器,件,件,Evaluation Warning : The document was created with Spire.Presentation for .NET,1.可,编,编程器,件,件的特,点,点,CPU,在,在固定,频,频率的,时,时钟控,制,制下节,奏,奏运行,。,。,CPU,可,可以通,过,过总线,读,读取外,部,部存储,设,设备中,的,的二进,制,制指令,集,集,然,后,后解码,执,执行。,这些可,以,以被CPU解,码,码执行,的,的二进,制,制指令,集,集是CPU设,计,计的时,候,候确定,的,的,是CPU,的,的设计,者,者(ARM公,司,司)定,义,义的,,本,本质上,是,是一串,由,由1和0组成,的,的数字,。,。这就,是,是CPU的汇,编,编指令,集,集。,Evaluation Warning : The document was created with Spire.Presentation for .NET,整个编,程,程及运,行,行过程,程序员,用,用汇编,指,指令编,程,程 -,-,-经汇,编,编器汇,编,编成二,进,进制可,执,执行程,序,序文件,-,-,二,二进制,文,文件被CPU,读,读取进,去,去-,CPU内部,电,电路对,二,二进制,文,文件解,码,码-,解码,通,通过则CPU,执,执行指,令,令、完,成,成指令,动,动作。,如果程,序,序员用C语言,等,等高级,语,语言编,程,程,则,编,编译器,先,先将C,语,语言程,序,序编译,为,为汇编,程,程序,,再,再进行,上,上面的,后,后续部,分,分。,Evaluation Warning : The document was created with Spire.Presentation for .NET,从源代,码,码到CPU执,行,行过程,1.可,编,编程器,件,件的特,点,点,Evaluation Warning : The document was created with Spire.Presentation for .NET,2.计算,机,机的体,系,系结构,(,(冯诺,依,依曼与,哈,哈佛结,构,构 ),Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,2冯诺依,曼,曼体系,结,结构,1.计算机,组,组成是,人,人眼可,见,见的,,而,而计算,机,机体系,结,结构是,人,人眼看,不,不见的,东,东西,,它,它是一,个,个复杂,的,的系统,,,,在它,内,内部存,在,在多级,的,的层次,结,结构。,2.计算机,组,组成是,计,计算机,的,的外部,,,,是使,用,用人员,所,所关心,的,的系统,硬,硬件指,标,标参数,;,;而计,算,算机实,现,现是计,算,算机的,内,内部,,是,是制造,人,人员关,心,心的内,容,容,凭您直,观,观的感,觉,觉,计,算,算机由,哪,哪几部,分,分组成,?,?,Evaluation Warning : The document was created with Spire.Presentation for .NET,计算机,的,的实现,半导体,技,技术,制造技,术,术,封装技,术,术,装配技,术,术,电源技,术,术,冷却技,术,术,15,Evaluation Warning : The document was created with Spire.Presentation for .NET,2计算机,运,运行的,两,两部分,Evaluation Warning : The document was created with Spire.Presentation for .NET,2冯诺依,曼,曼体系,结,结构,几个基,本,本概念,间,间的关,系,系,体系结,构,构、计,算,算机组,成,成、计,算,算机实,现,现,计算机体系结构,诊断,计算机组成,操作系统,指令系统,应用程序,计算机实现,由图示,可,可见,体系结,构,构在整个,计,计算机,系,系统中,占,占据核,心,心地位,Evaluation Warning : The document was created with Spire.Presentation for .NET,2冯诺依,曼,曼体系,结,结构,冯诺,依,依曼理,论,论的要,点,点:,1)存储程,序,序,2)顺序执,行,行,3)采用二,进,进制,十进制,计算机指令,冯诺依曼提出二进制机器码表示计算机指令格式,?,Evaluation Warning : The document was created with Spire.Presentation for .NET,2冯诺依,曼,曼体系,结,结构,运算器,(,(ALU,Arithmetic Logic Unit),冯诺,依,依曼计,算,算机组,成,成(五,大,大部分,),):,控制器(Controler),存储器,(,(Memory),输入设,备,备(InputUnit),输出设,备,备(OutputUnit),Evaluation Warning : The document was created with Spire.Presentation for .NET,2冯诺依,曼,曼体系,工,工作原,理,理,开始,取指令,指令译码,执行指令,冯诺依,曼,曼体系,工,工作原,理,理(CPU工作原,理,理):,程序的,执,执行过,程,程实际,上,上是不,断,断地取,出,出指令,、,、分析,指,指令、,执,执行指,令,令的过,程,程。冯诺依曼,型,型计算,机,机从本,质,质上讲,是,是采取,串,串行顺,序,序处理,的,的工作,机,机制,,即,即使有,关,关数据,巳,巳经准,备,备好,,也,也必须,逐,逐条执,行,行指令,序,序列。,Evaluation Warning : The document was created with Spire.Presentation for .NET,数据流,指令流,控制流,CPU,2冯诺依,曼,曼体系,工,工作原,理,理,冯诺依,曼,曼体系,结,结构计,算,算机功,能,能图,Evaluation Warning : The document was created with Spire.Presentation for .NET,2冯诺,依,依曼结,构,构思想,冯诺,依,依曼理,论,论的思,想,想是:,应该把,程,程序和,数,数据一,起,起存储,在,在存储,器,器里,,让,让计算,机,机自己,负,负责从,存,存储器,里,里提取,指,指令,,执,执行指,令,令,循,环,环式地,执,执行这,两,两个动,作,作。,这样,,计,计算机,在,在执行,程,程序的,过,过程中,,,,就可,以,以完全,摆,摆脱外,界,界的影,响,响,以,自,自己可,能,能的速,度,度自动,地,地运行,。,。,按照这,种,种原理,构,构造出,来,来的计,算,算机就,是,是“存,储,储程序,控,控制计,算,算机”,,,,也被,称,称做“冯诺,依,依曼计,算,算机”,Evaluation Warning : The document was created with Spire.Presentation for .NET,冯诺,依,依曼理,论,论的要,点,点:,指令像,数,数据那,样,样存放,在,在存储,器,器中,,并,并可以,像,像数据,那,那样进,行,行处理,;,;,指令格,式,式使用,二,二进制,机,机器码,表,表示;,使用程,序,序存储,控,控制方,式,式工作,。,。,冯诺,依,依曼结,构,构,十进制,计算机指令,?,冯诺依曼提出二进制机器码表示计算机指令格式,Evaluation Warning : The document was created with Spire.Presentation for .NET,冯诺依曼,体,体系结,构,构,指令寄,存,存器,控制器,数据通,道,道,输入,输出,中央处,理,理器,存储器,程序,指令,0,指令,1,指令,2,指令,3,指令,4,数据,数据,0,数据,1,数据,2,结构特,点,点:,1、指令和,数,数据存,储,储在相同的,内,内存空间,但存储地,址,址不同。,2、处,理,理器利,用,用相同,的,的总线,处,处理内,存,存中的,指,指令和,数,数据,指令和,数,数据具有,相,相同的数,据,据宽度,指令与,数,数据无,法,法同时,存,存取。,ARM7嵌入式,微,微处理器,采,采用此结构,Evaluation Warning : The document was created with Spire.Presentation for .NET,哈佛体,系,系结构,指令寄,存,存器,控制器,数据通,道,道,输入,输出,CPU,程序存,储,储器,指令,0,指令,1,指令,2,数据存,储,储器,数据,0,数据,1,数据,2,地址,指令,地址,数据,结构特,点,点:,1、指令存,储,储和数,据,据存储,分,分开,指令和,数,数据分,别,别位于,不,不同的,存,存储空,间,间。,2、指,令,令与数,据,据的存,取,取采用,不,不同总,线,线,取指令,和,和存取,数,数据可,同,同时进,行,行,微处理,器,器具有,较,较高的,执,执行效,率,率。,数字信,号,号处理器DSP通常采,用,用哈佛结,构,构;,自ARM9开始,ARM嵌入式,微,微处理,器,器亦采用此,结,结构。,Evaluation Warning : The document was created with Spire.Presentation for .NET,冯诺依,曼,曼结构,与,与哈佛,结,结构,程序和,数,数据都,放,放在内,存,存中,,且,且不彼,此,此分离,的,的结构,称,称为冯,诺,诺依曼,结,结构。,譬,譬如Intel的CPU均,采,采用冯,诺,诺依曼,结,结构。,程序和,数,数据分,开,开独立,放,放在不,同,同的内,存,存块中,,,,彼此,完,完全分,离,离的结,构,构称为,哈,哈佛结,构,构。譬,如,如大部,分,分的单,片,片机(MCS51、ARM9等),均,均采用,哈,哈佛结,构,构。,Evaluation Warning : The document was created with Spire.Presentation for .NET,优劣对,比,比,冯诺依,曼,曼结构,中,中程序,和,和数据,不,不区分,的,的放在,一,一起,,因,因此安,全,全和稳,定,定性是,个,个问题,,,,好处,是,是处理,起,起来简,单,单。,哈佛结,构,构中程,序,序(一,般,般放在ROM,、,、flash,中,中)和,数,数据(,一,一般放,在,在RAM中),独,独立分,开,开存放,,,,因此,好,好处是,安,安全和,稳,稳定性,高,高,缺,点,点是软,件,件处理,复,复杂一,些,些(需,要,要统一,规,规划链,接,接地址,等,等),Evaluation Warning : The document was created with Spire.Presentation for .NET,3.ARM,处,处理器,的,的流水,线,线概念,及,及运行,原,原理,三级流,水,水线,ARM处理器,使,使用流,水,水线来,增,增加处,理,理器指,令,令流的,速,速度,,这,这样可,使,使几个,操,操作同时进,行,行,并使,处,处理和,存,存储器,系,系统连,续,续操作,,,,能提,供,供0.9MIPS/MHz的指令,执,执行速,度,度。,ARM7TDMI的流水,线,线分3级,分,别,别为:,取指,译码,执行,取指,译码,执行,处理指令并将结果写回寄存器,识别将要被执行的指令,从寄存器装载一条指令,Evaluation Warning : The document was created with Spire.Presentation for .NET,三级流,水,水线,取指,译码,执行,取指,译码,执行,处理指令并将结果写回寄存器,识别将要被执行的指令,从寄存器装载一条指令,正常操,作,作过程,中,中,在,执,执行一,条,条指令,的,的同时,对,对下一,条,条(第二条)指令进,行,行译码,,,,并将,第,第三条,指,指令从,存,存储器,中,中取出,。,。,在ARM状态下,,,,流水线,上,上各指,令,令的地,址,址为:,在Thumb状态下,,,,流水线,上,上各指,令,令的地,址,址为:,PC,PC-4,PC-8,PC,PC-2,PC-4,Evaluation Warning : The document was created with Spire.Presentation for .NET,三级流,水,水线结,构,构的指,令,令执行,顺,顺序,PC,指令,1,指令,2,指令,3,指令,4,程序存储器,PC-4,PC-8,PC+4,周期,1,周期,2,周期,3,周期,4,周期,5,周期,6,取指 译码 执行,取指 译码 执行,取指 译码 执行,取指 译码 执行,周期,2,周期,1,周期,3,周期,4,在第,1,个周期,,PC,指向指令,1,,此时指令,1,进入三级流水线的取指阶段。,1,在第,2,个周期,,PC,指向指令,2,,此时指令,1,进入三级流水线的译码阶段,同时取出指令,2,。,2,在第,3,个周期,,PC,指向指令,3,,此时指令,1,进入三级流水线的执行阶段,指令,2,进入译码阶段,取出指令,3,。,3,在第,4,个周期,指令,1,执行完成,指令,2,和指令,3,流水线推进一级,同时开始指令,4,的取指处理。,4,处理器,执,执行一,条,条指令,的,的三个,阶,阶段,Evaluation Warning : The document was created with Spire.Presentation for .NET,执行ADDPC,PC,#4指令后,,,,PC的值为,多,多少?,思考题,ADD PC,,,PC,,,#4,0x4000,0x4004,0x4008,0x400C,地址,指令,PC,取指,译码,执行,PC,PC-4,PC-8,ARM7,的,3,级流水线,ADD,程序计,数,数器R15,(,(PC,),)总是指,向,向“正,在,在取指,”,”的指,令,令,而,不,不是指,向,向“正,在,在执行,”,”的指,令,令或“,正,正在译,码,码”的,指,指令。,一般来,说,说,人,们,们习惯,性,性约定,将,将“正,在,在执行,”,”的指,令,令作为,参,参考点,,,,则:,PC值当,前,前程序,执,执行位,置,置8,注:ARM状态时,,,,每条,指,指令为4字节长,。,。,PC指向0x4000地址,,取,取指ADD指令。,PC指向0x4004地址,,译,译码ADD指令。,PC指向0x4008地址,,执,执行ADD指令,,所,所以指,令,令执行,的,的结果,为,为: PC=PC+40x400840x400C。,注意:只有流,水,水线被,指,指令填,满,满时才,能,能发挥,最,最大效,能,能,即,每,每时钟,周,周期完,成,成一条,指,指令的,执,执行。,如,如果程,序,序发生,跳,跳转,,流,流水线,将,将被清,空,空,这,将,将需要,几,几个时,钟,钟才能,使,使流水,线,线再次,填,填满。,因,因此,,为,为提高,程,程序执,行,行效率,,,,应尽,可,可能少用跳,转,转指令,解决,的,的方案,是,是尽量,使,使用指,令,令的“条件执,行,行”功能,。,。,Evaluation Warning : The document was created with Spire.Presentation for .NET,简介,ARM体系结,构,构支持7种处理,器,器模式,,,,分别,为,为:用户模,式,式、快,中,中断模,式,式、中,断,断模式,、,、管理,模,模式、,中,中止模,式,式、未,定,定义模,式,式和系,统,统模式,。,。所处的,模,模式由,当,当前程,序,序状态,寄,寄存器CPSR中的控,制,制位M4,:,:0反映。,这,这样的,好,好处是,可,可以更,好,好的支,持,持操作,系,系统并,提,提高工,作,作效率,。,。ARM7TDMI完全支,持,持这七,种,种模式,。,。,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,Evaluation Warning : The document was created with Spire.Presentation for .NET,除用户,模,模式外,,,,其它,模,模式均,为,为特权模,式,式。ARM内部寄,存,存器和,一,一些片,内,内外设,在,在硬件,设,设计上,只,只允许,(,(或者,可,可选为,只,只允许,),)特权,模,模式下,访,访问。,此,此外,,特,特权模,式,式可以,自,自由的,切,切换处,理,理器模,式,式,而,用,用户模,式,式不能,直,直接切,换,换到别,的,的模式,。,。,这两种,模,模式都,不,不能由,异,异常进,入,入,想,要,要进入,必,必须修,改,改CPSR,而且它,们,们使用,完,完全相,同,同的寄,存,存器组,。,。系统模,式,式是特权,模,模式,,不,不受用,户,户模式,的,的限制,。,。操作,系,系统在,该,该模式,下,下访问,用,用户模,式,式的寄,存,存器就,比,比较方,便,便,而,且,且操作,系,系统的,一,一些特,权,权任务,可,可以使,用,用这个,模,模式访,问,问一些,受,受控的,资,资源。,这五种,模,模式称,为,为异常模,式,式。它们,除,除了可,以,以通过,程,程序切,换,换进入,外,外,也,可,可以由,特,特定的,异,异常进,入,入。当,特,特定的,异,异常出,现,现时,,处,处理器,进,进入相,应,应的模,式,式。每,种,种异常,模,模式都,有,有一些,独,独立的,寄,寄存器,,,,以避,免,免异常,退,退出时,用,用户模,式,式的状,态,态不可,靠,靠。,何时进,入,入异常,模,模式,,具,具体规,定,定如下,:,:,处理器,复,复位之,后,后进入,管,管理模,式,式,操,作,作系统,内,内核通,常,常处于,管,管理模,式,式;,当处理,器,器访问,存,存储器,失,失败时,,,,进入,数,数据访,问,问中止,模,模式;,当处理,器,器遇到,没,没有定,义,义或不,支,支持的,指,指令时,,,,进入,未,未定义,模,模式;,中断模,式,式与快,速,速中断,模,模式分,别,别对ARM处理器2种不同,级,级别的,中,中断作,出,出响应,。,。,Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,简介,在ARM处理器内部共,有,有37个用户,可,可访问,的,的寄存,器,器,分,别,别为31个通用32位寄存,器,器和6个状态,寄,寄存器,。,。,ARM处理器,共,共有7种不同,的,的处理,器,器模式,,,,每种,模,模式都,有,有一组,相,相应的,寄,寄存器,组,组,最,多,多可以18个活动,的,的寄存,器,器。,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,程序状,态,态寄存,器,器的格,式,式,N,Z,C,V,I,M0,M1,M2,M3,M4,T,F,. . .,31 30 29 28 27 26 8 7 6 5 4 3 2 1 0,条件代,码,码标志,保留,控制位,溢出标,志,志,进位或,借,借位扩,展,展,零,负或小,于,于,IRQ禁止,FIQ禁止,状态位,模式位,N,Z,C,V,I,M0,M1,M2,M3,M4,T,F,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,Evaluation Warning : The document was created with Spire.Presentation for .NET,4. ARM各,模,模式及,可,可访问,的,的寄存,器,器,Evaluation Warning : The document was created with Spire.Presentation for .NET,5.ARM体系的,异,异常,异常简,介,介,只要正,常,常的程,序,序流被,暂,暂时中,止,止,处,理,理器就,进,进入异,常,常模式,。,。例如在,用,用户模,式,式下执,行,行程序,时,时,当,外,外设向,处,处理器,内,内核发,出,出中断,请,请求导,致,致内核,从,从用户,模,模式切,换,换到异,常,常中断,模,模式。,如果同,时,时发生,两,两个或,更,更多异,常,常,那,么,么将按,照,照固定,的,的顺序,来,来处理,异,异常。,Evaluation Warning : The document was created with Spire.Presentation for .NET,5.ARM体系的,异,异常,Evaluation Warning : The document was created with Spire.Presentation for .NET,5.ARM体系的,异,异常,异常向,量,量表,注:表中的I和F表示不,对,对该位,有,有影响,,,,保留,原,原来的,值,值。,Evaluation Warning : The document was created with Spire.Presentation for .NET,5.ARM体系的,异,异常,异常优,先,先级,当多个,异,异常同,时,时发生,时,时,一,个,个固定,的,的优先,级,级决定,系,系统处,理,理它们,的,的顺序,。,。,优,先,级,由,高,到,低,Evaluation Warning : The document was created with Spire.Presentation for .NET,5.ARM体系的,异,异常,Evaluation Warning : The document was created with Spire.Presentation for .NET,6.ARM体系的,存,存储系,统,统,简介,ARM处理器,采,采用冯诺依曼,(,(VonNeumann)结构,,,,指令,、,、数据,和,和I/O统一编,址,址(即,存,存在同,一,一个空,间,间)。,只,只有装,载,载、保,存,存和交,换,换指令,可,可访问,存,存储器,中,中的数,据,据。,ARM芯片一,般,般在处,理,理器核,和,和外部,存,存储器,之,之间有,一,一个存,储,储器管,理,理部件,将,将局部,总,总线的,信,信号和,时,时序转,换,换为现,实,实的外,部,部总线,信,信号和,时,时序。,ARM7,处理器核,存储器,存储器,管理,器,ARM7的规范,定,定义了,局,局部总,线,线的信,号,号和时,序,序。,各芯片,生,生产厂,商,商制定,了,了自己,的,的外部,总,总线的,信,信号和,时,时序。,Evaluation Warning : The document was created with Spire.Presentation for .NET,6.ARM体系的,存,存储系,统,统,地址空,间,间,ARM结构使,用,用单个,平,平面的232个8位字节地址空,间,间。地,址,址空间,可,可以看,作,作是包,含,含230个32位字,或231个16位半字。如果,地,地址向,上,上或向,下,下溢出,地,地址空,间,间,通,常,常会发,生,生翻转,。,。,注意:如果在,取,取指操,作,作时地,址,址发生,溢,溢出,,只,只要没,有,有执行,预,预取的,无,无效指,令,令,就,不,不会导,致,致异常,。,。,Evaluation Warning : The document was created with Spire.Presentation for .NET,6.ARM体系的,存,存储系,统,统,存储器,格,格式,地址空,间,间的规,则,则要求,字,字地址A:,位于地,址,址A的字包,含,含的字,节,节位于,地,地址A,A,+,+1,A+2和A+3;,位于地,址,址A的半字,包,包含的,字,字节位,于,于地址A和A+1;,位于地,址,址A+2的半字,包,包含的,字,字节位,于,于地址A+2和A+3;,位于地,址,址A的字包,含,含的半,字,字位于,地,地址A和A+2;,字节,字节,字节,字节,A+3,A+2,A+1,A,存储器,半字,半字,字,Evaluation Warning : The document was created with Spire.Presentation for .NET,6.ARM体系的,存,存储系,统,统,存储器,格,格式,存储器,系,系统有,两,两种映,射,射机制,:,:,小端存,储,储器系,统,统(Little,-,-endian):,在小端,格,格式中,,,,数据,的,的高字,节,节存放,在,在高地,址,址中。,大端存,储,储器系,统,统(Big-endian):,在大端,格,格式中,,,,数据,的,的高字,节,节存放,在,在低地,址,址中。,A+3,A+2,A+1,A,存储器,小端存储模式下,,0x12345678,在,A,地址开始的一个字空间的存储;,1,大端存储模式下,,0x12345678,在,A,地址开始的一个字空间的存储;,2,0x12,0x34,0x56,0x78,A+3,A+2,A+1,A,存储器,0x78,0x56,0x34,0x12,Evaluation Warning : The document was created with Spire.Presentation for .NET,6.ARM体系的,存,存储系,统,统,非对齐,的,的存储,器,器访问,ARM结构通,常,常希望,所,所有的,存,存储器,访,访问都,合,合理的,对,对齐,,具,具体来,说,说就是,字,字访问,的,的地址,通,通常是,字,字对齐,的,的,而,半,半字访,问,问使用,的,的地址,是,是半字,对,对齐的,。,。不按,这,这种方,式,式对齐,的,的存储,器,器访问,称,称为非对齐,的,的存储,器,器访问。,将一个,非,非字(,半,半字),对,对齐的,地,地址写,入,入ARM(Thumb)状态,的,的R15寄存器,,,,将引,起,起非对齐,的,的指令,取,取指。,在一个,非,非字(,半,半字),对,对齐的,地,地址读,写,写一个,字,字(半,字,字),,将,将引起非对齐,的,的数据,访,访问:,Evaluation Warning : The document was created with Spire.Presentation for .NET,7.ARM指令的,寻,寻址方,式,式,Evaluation Warning : The document was created with Spire.Presentation for .NET,7.ARM指令的,寻,寻址方,式,式,Evaluation Warning : The document was created with Spire.Presentation for .NET,7.ARM指令的,寻,寻址方,式,式,一条指,令,令分为,操,操作码,和,和地址,码,码,寻址方,式,式是根据,指,指令中,给,给出的,地,地址码,字,字段来,实,实现寻,找,找真实,操,操作数,地,地址的,方,方式。ARM处理器,具,具有9种基本,寻,寻址方,式,式。,1.立即寻,址,址;2.寄存器,寻,寻址;,3.寄存器,间,间接寻,址,址;4.基址寻,址,址;,5.相对寻,址,址;6.寄存器,移,移位寻,址,址;,7.多寄存,器,器寻址,;,;8.堆栈寻,址,址;,9.块拷贝,寻,寻址。,Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,MOVR0,#0xFF,;,;,将,将立即,数,数0xFF装,入,入R0,寄,寄存器,注意:,立,立即数,要,要以”,#,#”号,为,为前缀,表示,十,十六进,制,制数值,以,以”0x”表,示,示.,0x55,R0,MOV R0,#0xFF,程序存储,1.寻址方,式,式分类立即寻,址,址举例,0xFF,从代码,中,中获得,数,数据,Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,MOVR1,R2,;,;将R2的值,存,存入R1,0xAA,0x55,R2,R1,2.寻址方,式,式分类寄存器,寻,寻址举,例,例,MOVR1,R2,0xAA,Evaluation Warning : The document was created with Spire.Presentation for .NET,Evaluation Warning : The document was created with Spire.Presentation for .NET,LDRR2,R3,#0x0C,;,;,读,读取R3+0x0C,地,地址上,的,的存储,单,单元的,内,内容,,放,放入R2,0x55,R2,R3,0x40000000,0xAA,0x4000000C,3.寻址方,式,式分类基址寻,址,址举例,LDRR2,R3,#,#0x0C,0xAA,将R3+0x0C作为地,址,址装载,数,数据,Evaluation Warning : The document was created with Spire.Presentation for .NET,相对寻,址,址是基,址,址寻址,的,的一种,变,变通。由程序,计,计数器PC提供基,准,准地址,,,,指令,中,中的地,址,址码字,段,段作为,偏,偏移量,,,,两者,相,相加后,得,得到的,地,地址即,为,为操作,数,数的有,效,效地址,。,。相对寻,址,址指令,举,举例如,下,下:,BLSUBR1,;,;调用到SUBR1子程序,BEQLOOP,;,;条件跳,转,转到LOOP标号处,.,LOOPMOVR6,#1,.,SUBR1.,4.寻址方,式,式分类,相对寻,址,址,Evaluation Warning : The document was created with Spire.Presentation for .NET,寄存器,移,移位寻,址,址是ARM指令集,特,特有的,寻,寻址方,式,式。当,第,第2个操作,数,数是寄,存,存器移,位,位方式,时,时,第2个寄存,器,器操作,数,数在与,第,第1个操作,数,数结合,之,之前,,选,选择进,行,行移位,操,操作。,寄,寄存器,移,移位寻,址,址指令,举,举例如,下,下:,MOVR0,R2,LSL #3;R2的值左,移,移3位,结,果,果放入R0,;即是R0=R28,ANDSR1,R1,R2,LSLR3;R2的值左,移,移R3位,然,后,后和R1相;“与”操,作,作,结,果,果放入R1,0x55,R0,R2,0x01,5.寻址方,式,式分类,寄存器,移,移位寻,址,址,MOVR0,R2,LSL,#,#3,0x08,0x08,逻辑左,移,移3位,Evaluation Warning : The document was created with Spire.Presentation for .NET,(1)ASL算术左,移,移操作(Arithmeticshiftleft),完成对,通,通用寄,存,存器中,的,的内容,进,进行算,术,术左移,操,操作,,按,按操作,数,数所指,定,定的数,量,量向左,移,移位,,低,低位用,零,零来填,充,充。其,中,中,操,作,作数可,以,以是通,用,用寄存,器,器,也,可,可以是,立,立即数,。,。,0x55,R0,R1,0x01,6.寻址方,式,式分类寄存器,移,移位寻,址,址,MOVR0,R1,ASL,#,#2,0x04,0x04,算术左,移,移2位,Evaluation Warning : The document was created with Spire.Presentation for .NET,(2)ASR算术右,移,移操作(Arithmeticshiftright),可,完成对,通,通用寄,存,存器中,的,的内容,进,进行右,移,移操作,,,,按操,作,作数所,指,指定的,数,数量向,右,右移位,,,,左端,用,用第31位的值,来,来填充,。,。其中,,,,操作,数,数可以,是,是通用,寄,寄存器,,,,也可,以,以是立,即,即数。,0x55,R0,R1,0x11,6.寻址方,式,式分类寄存器,移,移位寻,址,址,MOVR0,R1,ASR,#,#2,0x04,0x04,算术右,移,移2位,Evaluation Warning : The document was created with Spire.Presentation for .NET,(3)LSL逻辑左,移,移操作(Logicalshiftleft),可,完成对,通,通用寄,存,存器中,的,的内容,进,进行逻,辑,辑左移,操,操作,,按,按操作,数,数所指,定,定的数,量,量向左,移,移位,,低,低位用,第,第零来,填,填充。,其,其中,,操,操作数,可,可以是,通,通用寄,存,存器,,也,也可以,是,是立即,数,数。,0x55,R0,R1,0x01,6.寻址方,式,式分类寄存器,移,移位寻,址,址,MOVR0,R1,LSL,#,#2,0x04,0x04,逻辑左,移,移2位,Evaluation Warning : The document was created with Spire.Presentation for .NET,(4)LSR逻辑右,移,移操作(Logicalshiftright),可,完成对,通,通用寄,存,存器中,的,的内容,进,进行右,移,移操作,,,,按操,作,作数所,指,指定的,数,数量向,右,右移位,,,,左端,用,用零来,填,填充。,其,其中,,操,操作数,可,可以是,通,通用寄,存,存器,,也,也可以,是,是立即,数,数。,0x55,R0,R1,0x11,6.寻址方,式,式分类寄存器,移,移位寻,址,址,MOVR0,R1,LSR,#,#2,0x04,0x04,逻辑右,移,移2位,Evaluation Warning : The document was created with Spire.Presentation for .NET,(5)ROR循环右,移,移操作(Rotate right),可,完成对,通,通用寄,存,存器中,的,的内容,进,进行循,环,环右移,操,操作,,按,按操作,数,数所指,定,定的数,量,量向右,循,循环移,位,位,左,端,端用右,端,端移出,的,的位来,填,填充。,其,其中,,操,操作数,可,可以是,通,通用寄,存,存器,,也,也可以,是,是立即,数,数。,0x55,R0,R1,0x11,6.寻址方,式,式分类寄存器,移,移位寻,址,址,MOVR0,R1,ROR,#,#2,0x44,0x44,循环右,移,移2位,Evaluation Warning : The document was created with Spire.Presentation for .NET,(6)RRX带扩展,的,的循环,右,右移操,作,作,(Rotate right extendby1 place),操作数,右,右移一,位,位,高,端,端空出,的,的位用,原,原c标志填,充,充,无,需,需指定,移,移位位,数,数。,操作数,右,右移1位,高,端,端空出,的,的位用,原,原c标识位,填,填充,,无,无需指,定,定移位,位,位数,0x55,R0,R1,0x11,6.寻址方,式,式分类寄存器,移,移位寻,址,址,0x08,0x08,带扩展,的,的循环,右,右移1位,C=0时,MOVR0,R1,RRX,#,#1,Evaluation Warning : The document was created with Spire.Presentation for .NET,多寄存,器,器寻址,一,一次可,传,传送几,个,个寄存,器,器值,,允,允许一,条,条指令,传,传送16个寄存,器,器的任,何,何子集,或,或所有,寄,寄存器,。,。多寄,存,存器寻,址,址指令,举,举例如,下,下:,LDMIAR1!,R2-R4,R6;将R1指向的,单,单元中,的,的数据,读,读出到,;R2R4、R6中(R1自动加1),STMIAR0!,R2-R4,R6;将寄存,器,器R2R4、R6的值保,;存到R0指向的,存,存储;单元中,;(R0自动加1),注意寄,存,存器的,编,编号连,续,续和不,连,连续的,情,情况,0x40000000,R1,R2,0x?,0x01,0x40000000,0x?,R3,R4,0x?,R6,0x?,0x02,0x03,0x04,0x40000004,0x40000008,0x4000000C,存储器,7.寻址方,式,式分类多寄存,器,器寻址,LDMIAR1,!,!,R2-R4,R6,0x01,0x02,0x03,0x04,0x40000010,Evaluation Warning : The document was created with Spire.Presentation for .NET,堆栈是,一,一个按,特,特定顺,序,序进行,存,存取的,存,存储区,,,,操作顺序为,“,“后进,先,先出”。堆栈,寻,寻址是,隐,隐含的,,,,它使,用,用一个,专,专门的,寄,寄存器(堆栈指,针,针)指向一,块,块存储,区,区域(堆栈),指针,所,所指向,的,的存储,单,单元即,是,是堆栈,的,的栈顶,。,。存储,器,器堆栈,可,可分为,两,两种:,向上生,长,长:向高,地,地址方,向,向生长,,,,称为,递,递增堆,栈,栈,向下生,长,长:向低,地,地址方,向,向生长,,,,称为,递,递减堆,栈,栈,8.寻址方,式,式分类堆栈寻,址,址,Evaluation Warning : The document was created with Spire.Presentation for .NET,8.寻址方,式,式分类堆栈寻,址,址,栈底,栈顶,栈区,SP,堆栈存储区,栈顶,栈底,栈区,SP,向下增长,向上增长,0x12345678,0x12345678,堆栈压栈,堆栈压栈,Evaluation Warning : The document was created with Spire.Presentation for .NET,栈顶,SP,栈
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 市场营销


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!