❶ 嵌入式系统中的存储器映射是怎么回事,为什么要映射
我是这样理解的:
存储器空间是和硬件相关联的,可以对某些地址上写数据来控制硬件,为了方便使用(总不可能都用地址来直接控制,那样就工作量就太大了),将这些地址赋予了一些变量名,通过变量名来控制硬件(也就是寄存器的概念)。
❷ 手机64位ARM处理器有什么用
全世界都知道苹果发布了64位处理器的手机,有人说它只是一个营销噱头,有人说它这是在长线布局,其实不然,下面我就为大家介绍一下手机64位ARM处理器有什么用处及重要性吧,欢迎大家参考和学习。
64位计算的历史相当丰富有趣。Cray等公司在70年代就已经开始在自己的系统当中使用64位寄存器,但真正纯粹的64位计算直到90年代才真正到来。首先是MIPS的R4000,然后是DEC的Alpha处理器。到90年代中期,英特尔和Sun都已经拥有64位设计。而对于消费者来说,真正的转折点是AMD在2003年发布了一款兼容英特尔32位x86处理器的64位PC处理器。
再向前快进10年,PC销量不断下滑,大部分智能手机和平板电脑都拥有了主频在1-2GHz之间的多核心处理器。但它们使用的都是32位架构,而非现代PC和服务器所使用的64位架构。到现在为止,这都是可以接受的。智能手机并不会去和PC拼性能,这些处理器需要足够节能,以实现续航的最大化。
但是,随着设备的发展和新技术——语音识别、3D游戏和高分辨率显示屏——逐渐普及,32位处理器的能力已经渐渐被推到了极限。
ARM看到了64位节能处理器的需求,并在正式发布ARMv8-A架构(首个包含64位指令集的ARM架构)之前就早早开始了新设计的开发,还从其他选择发展64位技术的芯片设计厂商那里学习到了经验和教训。ARM的新款64位架构具备对于旗下32位架构的全面兼容,这意味着如果处理器运行于64位系统,它就可以运行未修改的ARMv7 32位二进制文件。对于Android来说,这意味着一旦内核被移植到64位(多亏了Linaro,它们已经如此了),系统的其余部分,从核心库到应用再到游戏,都是可以在32位或64位之间进行切换的。
去年,苹果凭借着iPhone5s的全新64位A7处理器震惊了整个移动领域。A7采用了苹果设计的ARMv8双核处理器,名为Cyclone。它使用了两个64KB L1缓存(供两个核心分别使用),一个1MB L2缓存(被两个核心所分享)和一个4MB L3缓存(为整个SoC所用)。苹果拥有ARM架构授权,这意味着它可以从头开始设计自己的处理器,但前提是这些处理器必须是ARM兼容的。ARM拥有一套测试套件,用以检查这些处理器是否具备兼容性。
在未来几个月里,我们将会看到高通、联发科和三星纷纷推出自己的64位ARM处理器。再考虑到Android在64位化的努力,用不了多久我们就将看到运行于64位Android系统的64位设备了。但对于开发者和终端用户来说,64位处理器意味着什么呢?
每一部CPU的中心都是一套寄存器,他们都是用以存储数字和地址的内部存储插槽。当执行复杂任务时,这些插槽会被反复使用。如果所有的寄存器都处于占用状态,那么处理的唯一方式是将其中一个寄存器存储在内存当中,使用寄存器进行下一个任务,然后再从内存当中重新载入之前的值。对于人类来说,这一切都发生在一瞬间。但对于处理器来说,这实际上是一个非常耗时的顺序,并不十分效率。
32位ARMv7架构拥有15个通用的寄存器,每一个都有32位宽。而ARMv8架构拥有31个通用寄存器,每一个为64位宽。这就意味着优化代码使用内部寄存器的频率应该要比内存更高,同时也可以保留更大的数字和地址。结果就是,ARM的64位处理器在运行速度上会更快一些。
在能效上面,64位寄存器的使用并不会提升功耗。在某些情况下,64位核心执行部分任务的速度会更快一些,由于运行时间的减少,这也就会使其显得比32位核心更加节能。
寻址(Addressing)是64位处理器的另一个层面。在PC和服务器领域,32位的局限主要在可访问的内存上。如果你想要使用超过4GB的'内存,就需要使用64位处理器。因为可以使用大物理地址拓展(LPAE),某些ARMv7处理器能够使用超过4GB内存,所以严格来讲,内存的限制并不是ARM处理器所遭遇的问题。由于LPAE的存在,Cortex-A15处理器能够处理1024GB内存,而64位的处理能力更是高达200万TB。因此在短时间内,任何一部智能手机都不需要完整的64位寻址。追求永远都不会被用到的寻址空间是毫无意义的,因此ARMv8架构采用了48位寻址,这已经是256TB了。
虽然没有什么程序或游戏会用到TB级别的内存,但在另一方面,这种寻址能力又非常重要。现代3D游戏通常都带有大量的资源,当拥有超过4GB的可访问空间时,这些资源能够被更加轻松地进行内存映射。这样一来,游戏的运行速度会得到提升,并让直接访问游戏多媒体资源成为可能。
不只是智能手机和平板
ARM上64位计算的好处并不仅限于智能手机和平板电脑。ARM的生态系统很广阔,他们的处理器也被许多不同类型的设备所使用。服务器市场是ARM处理器影响力有限的一个领域。信息时代的发展让维持数据中心所消耗的能源持续快速增长,而任何能够降低能源使用的技术都是对于资金和自然资源的节省。除了节能之外,在服务器当中使用64位ARM芯片还有其他的好处。这些服务器都会被动散热,这意味着你可以将它们集中在一起,而无需担心会发生过热的情况。这样一来,用于散热上的花费也将有所降低。
至于服务器软件,Linux这样的操作系统已经是64位的了,其主线内核当中也已经加入了对于ARMv8的支持。这也就是说,制作运行于64位Linux、ARM处理器的服务器并不会很困难。
总结
多亏了ARM,64位的移动计算时代就要到来了。这些新的处理器不仅速度更快,还为移动平台开启了更多的可能性。
从32位向64位的迁移道路已经被铺就,无论是什么操作系统,开发者从32位进入64位都不会有任何意外。
在未来几个月里,ARM的合作伙伴都将推出Cortex-A53和Cortex-A57处理器。当中有的会采用双核或四核的标准配置,也有的会选择big.LITTLE配置。但有一点是肯定的,那就是这对于ARM和普通用户来说都是一个激动人心的时刻。
在苹果眼里,Windows台式机、MacBook市场一直在收缩,而iOS才是未来,iPhone和iPad不是后PC时代的过渡,而是要代替PC,它们正准备把iOS和相关设备推向一个真正的个人计算时代,这才是苹果最前卫的手机战略。
❸ ARM11的内核特点
ARM11处理器是为了有效的提供高性能处理能力而设计的。在这里需要强调的是,ARM并不是不能设计出运行在更高频率的处理器,而是,在处理器能提供超高性能的同时,还要保证功耗、面积的有效性。ARM11优秀的流水线设计是这些功能的重要保证。
ARM11处理器的流水线和以前的ARM内核不同,它由8级流水线组成,可以比5级流水线的ARM9达到更高的运行频率。
从通常的角度说,过长的流水线往往会削弱指令的执行效率。一方面,如果随后的指令需要用到前面指令的执行结果作为输入,它就需要等到前面指令执行完。ARM11处理器通过forwarding来避免这种流水线中的数据冲突,它可以让指令执行的结果快速进入到后面指令的流水线中。另一方面,如果指令执行的正常顺序被打断(如出现跳转指令),普通流水线处理器往往要付出更大的代价,ARM11通过实现跳转预测技术来保持最佳的流水线效率。这些特殊技术的使用,使ARM11处理器优化到更高的流水线吞吐量的同时,还能保持和5级流水线(如ARM9处理器中的流水结构)一样的有效性。 跳转指令通常都是条件执行的。问题在于那些决定是否跳转的条件要在跳转指令被译码的后3~4个周期才能就绪。如果不做特殊处理,跳转指令必须等待,这样使指令执行效率变得让人难以忍受。跳转预测就是用来帮助解决这种延迟的。ARM11处理器提供两种技术来对跳转作出预测—动态预测和静态预测。
动态预测:在ARM11处理器中包含了64个4状态跳转地址缓存器(4-state branch target address cache)来保存最近发生的跳转指令的结果。通过对这些历史纪录的查找,处理器可以预测出当前的跳转指令是否会被执行。
静态预测:当在动态预测的缓存器中无法查到和当前指令匹配的记录,ARM11处理器就从跳转的方式来判断是否执行。如果是向回跳转,大多数情况是遇到一个循环,处理器会假设这条指令被执行。如果是向前跳转,处理器会假设这条指令不被执行。
动态预测和静态预测的组合使ARM11处理器能达到85%的预测正确性,对于每一个正确的预测,给指令执行带来的是减少5个时钟周期的等待时间。 在ARM11处理器中,指令和数据可以更长时间的被保存在Cache中。一方面是由于物理地址Cache的实现,使上下文切换避免了反复重载Cache,另一方面是由于ARM11的Cache还有很多其它新颖的技术特点。
如果数据的访问引起了CacheMiss,Cache将到存储器中读取需要的数据。但是ARM11处理器的流水线并不会停止下来。只要后面的指令没有用到Cache Miss将读回来的数据,ARM11处理器就会继续执行下去。即使下一条指令还是存储器访问指令,只要数据存放在Cache中,ARM11也会允许这条指令被执行。只有这条指令又引起一次CacheMiss,处理器才会停止下来。在大多数应用中,经过编译器调配后,这种情况并不多见。 尽管ARM11是单指令发射处理器,但是在流水线的后半部分允许了极大程度的并行性。一旦指令被解码,将根据操作类型发射到不同的执行单元中。ARM11的数据通路中包含多个处理单元,允许ALU操作、乘法操作和存储器访问操作同时进行。
考虑到不同的指令需要不同的执行时间,当三类指令先后被发射到流水线中,它们就可以同时被执行。而且ARM11处理器允许指令的乱序完成,如果在指令之间没有数据的相关性,所有指令都可以不必等待前面的指令完成而结束自己的执行。 ARM11处理器将浮点运算当成一个可供用户选择的设计。用户可以在向ARM要求授权的时候选择是否包括浮点处理器的内核。在流水线上的重要区别不仅是为了达到更高的性能,还是从实现的角度来考虑的。所以,ARM11内核在运行于极高频率的同时,也能非常容易的被集成在SoC设计中。同时,ARM11处理器提供的向上兼容性,使OEM可以放心的选用任何基于ARM的产品。
❹ 什么是ARM核心
ARM芯片,这是硬件部份,主要是芯片内部的程序,好的程序可实现产品的人性化的功能。
使产品易用。
❺ 什么是arm芯片
ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。更早称作Acorn RISC Machine。ARM处理器本身是32位设计,但也配备16位指令集,一般来讲比等价32位代码节省达35%,却能保留32位系统的所有优势。
ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。
1、体积小、低功耗、低成本、高性能;
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件;
3、大量使用寄存器,指令执行速度更快;
4、大多数数据操作都在寄存器中完成;
5、寻址方式灵活简单,执行效率高;
6、指令长度固定。
❻ dsp中有句话”存储器映射寄存器”是什么意思
dsp中有句话“存储器映射寄存器”,英语是
memory
mapped
register
不过这个东西并非dsp独有,单片机和其他32位嵌入式控制器都有此概念。
需要注意的是英语的表述,其实汉语的翻译是有些问题的。memory
mapped
是用来形容register的。因此,正确的翻译应该是-存储器映射的寄存器。一字之差,就有很大区别。因为”存储器映射寄存器“让人感觉是一种操作,象一个动词。其实应该是一个名词,就是一个寄存器,只是这个寄存器的地址被存储器映射了。
首先是寄存器的概念,寄存器不是存储器(内存),存储器是指通用的ram,寄存器则是有专门用途的
映射存储寄存器
ram。寄存器不能随便写数据。同时位置(硬件上)与通用的ram(存储器)不在一起。
存储器映射,就是把存储器的地址给寄存器用,你要找这个寄存器,就用这个存储器地址,然后单片机会帮你”映射“到你想找的寄存器。
物理上这个寄存器不属于内存(memory),但在逻辑地址上它属于内存。这样做的好处应该是能够用要使用访问内存的指令访问寄存器,使操作方式多样化,同时整个存储系统的地址也相对统一。
❼ LPC1768宏定义部分FLASH和RAM地址,用IAP比较为什么出错
其实无论在RAM里还是在FLASH里存储,都是一样的,但是在FLASH里存储的好处是你可以无限次的下载调试,而在RAM里存储的次数只有10万多次。有些程序还不能在FLASH里调试,那就悲剧了。这就要用到ARM里学到的存储器的映射,可以将RAM存储器的内存从新分配,这是在option里完成的
❽ arm中存储器的实际地址是如何确定的是CPU直接分配好的吗
存储器是可以映射成为不同的地址的。
一般来说,ARM处理器由于是32位的,所以可以访问的地址空间为4G。在这些地址空间内,实际的每个物理存储器,可以被映射在任意的地址上。你可以查看所使用的CPU手册来确定,每个存储器是怎么被映射的。下面举个例子说明一下。
ATMEL公司的AT91SAM7S256,ARM7TDMI内核,内部集成256KB Flash和64K SRAM。其中Flash被默认映射在0地址处,也就是说你访问0x0地址访问的就是Flash。但是,Flash还有一个地址:0x100000,你访问这个地址和访问0x0实际上是一个地方。就好比是你家开了两个门一样,入口不同,但是进的地方是一样的。而SRAM则被映射在0x200000地址处。
系统启动后,在MCR寄存器内写入1,这时CPU会调整存储器的映射关系,会把SRAM映射在0x0地址处,也就是说你现在访问0x0实际上访问的是SRAM的0x200000地址。
其他的许多支持外部存储器的(比如带NAND Flash控制和SDRAM控制器的)CPU,都可以把外部存储器映射到4G的地址空间内。它们的说明书绝对会有相对的说明,有一个图,叫地址空间映射表,你一看就明白了。
❾ ARM芯片 闪存存储器 系统存储器 内嵌SRAM 分别是什么作用BOOT从那个启动比较好,有什么特点
ARM 是 一种CPU
闪存存储器是用电可擦写弄成的Flash存储器,就是U盘,内存卡
系统存储器 指的是存放系统数据的存储区域,类如BIOS
内嵌SRAM是一种内存技术,静态存数据,不用经常用像DRAM那样用电去刷新就能长时间保存数据
❿ ARM11性能有多强
ARM11属于ARM v6架构.你问他有多强,从下面几个方面来看吧。 1. 主频和流水线:ARM9主频通常400M,arm11可到800M以上,ARM11处理器的流水线和以前的ARM内核不同,它由8级流水线组成,8级流水线可以使8条指令同时被执行。比以前的ARM内核提高了至少40%的吞吐量。 2.多媒体处理扩展
使MPEG4编码/解码加快一倍以上
音频处理加快一倍以上
3. 增强的Cache结构
实地址Cache
减少Cache的刷新和重载
4减少上下文切换的开销
增强的异常和中断处理
使实时任务的处理更加迅速
5 支持Unaligned和Mixed-endian数
据访问 使数据共享、软件移使数据共享、软件移
植更简单,也有利于节省存储器空间 ARM11处理器是ARMv6架构的第一
代实现,这
些ARM11处理器瞄准的是高端的
移动无线,消费类电子,网络和汽车电
子应用。而且ARM11内核的很多特性使
它还能充分适应高端嵌入式实时应用系
统,如:未来的网络和家庭娱乐产品。