历史上的今天
返回首页

历史上的今天

今天是:2025年01月31日(星期五)

2020年01月31日 | arm架构与体系结构

2020-01-31 来源:eefocus

1.cpu与soc

内核版本号与soc版本号由arm公司确定。

芯片型号由各半导体公司确定。

soc包括cpu与一些基本内设。(一般提到CPU都指的是soc,实际上cpu只是soc的一部分)。

RISC与CISC

RISC复杂指令集:指令繁多,但是效率高。Intel等桌面pc使用这种指令集。功耗大。

CISC精简指令集: 指令少,但是效率略低。优点是功耗低适合嵌入式设备。


统一编址&独立编址

  内存通过CPU的地址总线来寻址定位,然后通过CPU数据总线来读写。CPU的地址总线的位数是CPU设计时确定的,因此一款CPU所能寻址的范围是一定的,而内存是需要占用CPU的寻址空间的。内存与CPU的这种总线式连接方式是一种直接连接,优点是效率高访问快,缺点是资源有限,扩展性差。


  CPU访问各种外设有2种方式:一种是类似于访问内存的方式,即把外设的寄存器当作一个内存地址来读写,从而以访问内存相同的方式来操作外设,叫IO与内存统一编址方式;另一种是使用专用的CPU指令来访问某种特定外设,叫IO与内存独立编址。


  由于内存访问频率高,因此采用总线式连接,直接地址访问,效率最高。


  IO与内存统一编址方式,优势是IO当作内存来访问,编程简单;缺点是IO也需要占用一定的CPU地址空间,而CPU的地址空间是有限资源。


  IO与内存独立编织方式,优势是 不占用CPU地址空间,缺点是CPU设计变复杂了


哈佛结构&冯诺依曼结构

  程序和数据都放在内存中,且不彼此分离的结构称为冯诺依曼结构。譬如Intel的CPU均采用冯诺依曼结构。


  程序和数据分开独立放在不同的内存块中,彼此完全分离的结构称为哈佛结构。譬如大部分的单片机(MCS51、ARM9等)均采用哈佛结构。 


  冯诺依曼结构中程序和数据不区分的放在一起,因此安全和稳定性是个问题,好处是处理起来简单。


  哈佛结构中程序(一般放在ROM、flash中)和数据(一般放在RAM中)独立分开存放,因此好处是安全和稳定性高,缺点是软件处理复杂一些(需要统一规划链接地址等)

ARM体系总结

常用ARM汇编指令只有二三十条
ARM是低功耗CPU
ARM的架构非常适合单片机、嵌入式,尤其是物联网领域;而服务器等高性能领域目前主导还是Intel

大部分ARM(M3 M4 M7 M0 ARM9 ARM11 A8 A9等)都是32位架构
32位ARM CPU支持的内存少于4G,通过CPU地址总线来访问
SoC中的各种内部外设通过各自的SFR编程访问,这些SFR的访问方式类似于访问普通内存,这叫IO与内存统一编址。

常见ARM(除ARM7外)都是哈佛结构的
哈佛结构保证了ARM CPU运行的稳定性和安全性,因此ARM适用于嵌入式领域
哈佛结构也决定了ARM裸机程序(使用实地址即物理地址)的链接比较麻烦,必须使用复杂的链接脚本告知链接器如何组织程序;对于OS之上的应用(工作在虚拟地址之中)则不需考虑这么多


CPU和外部存储器的接口

内存 内部存储器 用来运行程序的 RAM 举例(DRAM SRAM DDR)
外存 外部存储器 用来存储东西的 ROM 举例(硬盘 Flash(Nand iNand···· U盘、SSD) 光盘)


  CPU连接内存和外存的连接方式不同。内存需要直接地址访问,所以是通过地址总线&数据总线的总线式访问方式连接的(好处是直接访问,随机访问;坏处是占用CPU的地址空间,大小受限);外存是通过CPU的外存接口来连接的(好处是不占用CPU的地址空间,坏处是访问速度没有总线式快,访问时序较复杂)


SoC常用外存:
  NorFlash 总线式访问,接到SROM bank,优点是可以直接总线访问,一般用来启动。 //小容量

  NandFlash: 分为SLC和MLC // 
  eMMC/iNand/moviNand eMMC(embeded MMC) iNand是SanDisk公司出产的eMMC,moviNand是三星公司出产的eMMC //手机内部
  oneNAND oneNand是三星公司出的一种Nand
  SD卡/TF卡/MMC卡
eSSD


SATA硬盘(机械式访问、磁存储原理、SATA是接口)


  外部总线接口(EBI)被用作S5PV210外围。它依赖于内存控制器释放  外部请求外部总线空闲内存控制器时,因为它没有当内存的知识  访问将开始或完成。它使一个SROM控制器、一个OneNAND控制器和一个快闪记忆体  控制器、分享外部内存总线、内存端口0。


启动过程详解

内存:
  SRAM 静态内存 特点就是容量小、价格高,优点是不需要软件初始化直接上电就能用
  DRAM 动态内存 特点就是容量大、价格低,缺点就是上电后不能直接使用,需要软件初始化后才可以使用。


  单片机中:内存需求量小,而且希望开发尽量简单,适合全部用SRAM
  嵌入式系统:内存需求量大,而且没有NorFlash等可启动介质
  PC机: 内存需求量大,而且软件复杂,不在乎DRAM的初始化开销,适合全部用DRAM


外存:
  NorFlash:特点是容量小,价格高,优点是可以和CPU直接总线式相连,CPU上电后可以直接读取,所以一般用作启动介质。


  NandFlash(跟硬盘一样):特点是容量大,价格低,缺点是不能总线式访问,也就是说不能上电CPU直接读取,需要CPU先运行一些初始化软件,然后通过时序接口读写。


  所以一般PC机都是:很小容量的BIOS(NorFlash)+ 很大容量的硬盘(类似于NandFlash)+ 大容量的DRAM


  一般的单片机: 很小容量的NorFlash + 很小容量的SRAM
  嵌入式系统:因为NorFlash很贵,随意现在很多嵌入式系统倾向于不用NorFlash,
  直接用:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM


  S5PV210使用的启动方式是:外接的大容量Nand + 外接大容量DRAM + SoC内置SRAM
  实际上210的启动还要更好玩一些,210内置了一块96KB大小的SRAM(叫iRAM),同时还有一块内置的64KB大小的NorFlash(叫iROM)。210的启动过程大致是:


  第一步:CPU上电后先从内部IROM中读取预先设置的代码(BL0),执行。这一段IROM代码首先做了一些基本的初始化(CPU时钟、关看门狗···)(这一段IROM代码是三星出厂前设置的,三星也不知道我们板子上将来接的是什么样的DRAM,因此这一段IROM是不能负责初始化外接的DRAM的,因此这一段代码只能初始化SoC内部的东西);然后这一段代码会判断我们选择的启动模式(我们通过硬件跳线可以更改板子的启动模式),然后从相应的外部存储器去读取第一部分启动代码(BL1,大小为16KB)到内部SRAM。


  第二步:从IRAM去运行刚上一步读取来的BL1(16KB),然后执行。BL1负责初始化NandFlash,然后将BL2读取到IRAM(剩余的80KB)然后运行


  第三步:从IRAM运行BL2,BL2初始化DRAM,然后将OS读取到DRAM中,然后启动OS,启动过程结束。


  思路:因为启动代码的大小是不定的,有些公司可能96kb就够了,有些公司可能1MB都不够。所以刚才说的2步的启动方式不合适。三星的解决方案是:把启动代码分为2半(BL1和BL2),这两部分协同工作来完成启动。

推荐阅读

史海拾趣

ABCircuits公司的发展小趣事

随着公司的不断发展,ABCircuits意识到单打独斗难以应对日益激烈的市场竞争。于是,公司开始积极寻求与其他企业的战略合作。通过与上下游企业的紧密合作,ABCircuits不仅获得了稳定的供应链支持,还成功打开了国际市场的大门。这些合作不仅加速了公司的扩张步伐,也提升了其品牌影响力和市场竞争力。

EPC公司的发展小趣事

另一家EPC公司认识到全球化市场的重要性,积极拓展海外市场。公司首先在欧洲和北美地区设立了分公司,通过深入了解当地市场需求和法规要求,成功开展了多个项目。随后,公司进一步将业务拓展至亚洲和非洲等地区,形成了全球化的市场布局。在全球化的过程中,公司注重本土化经营,积极融入当地市场,为客户提供定制化的解决方案,赢得了客户的信任和支持。

ES Systems公司的发展小趣事

ES Systems自创立之初就专注于电子系统技术的研发。公司创始人是一位资深的电子工程师,他带领团队不断突破技术瓶颈,开发出了一系列高性能的电子系统产品。随着技术的不断成熟和产品线的丰富,ES Systems逐渐在市场中树立了技术领先的形象,吸引了大量客户的青睐。公司通过技术驱动实现了快速成长,并在电子行业中占据了重要地位。

迪一电子公司的发展小趣事

在技术创新的基础上,迪一电子公司开始积极拓展市场。公司积极参加国内外电子展会和博览会,与全球各地的客户建立联系。同时,公司还注重品牌建设,通过广告宣传、赞助活动等方式提高品牌知名度和美誉度。这些努力使迪一电子的产品逐渐打入国际市场,赢得了更多客户的认可。

Headland Technology Product Group公司的发展小趣事

HBControls的创立可以追溯到上世纪90年代初,当时电子工业正处于快速发展阶段。创始人李明(化名)凭借在电子行业多年的工作经验,敏锐地察觉到继电器市场的巨大潜力。然而,初创时期资金短缺、技术瓶颈和市场认可度低成为了摆在他面前的三座大山。李明带领团队夜以继日地研发产品,不断优化性能,同时积极寻找合作伙伴,逐步打开了市场。经过数年的不懈努力,HBControls终于在继电器领域站稳了脚跟。

EDAL公司的发展小趣事

随着云计算、大数据等技术的兴起,传统EDA行业面临着前所未有的挑战。为了应对这些挑战,EDAL公司积极转型升级,将云计算、大数据等技术与EDA工具相结合,推出了更加高效、智能的云端EDA服务。这一创新的服务模式不仅提升了客户的设计效率,还降低了成本,赢得了市场的广泛认可。

问答坊 | AI 解惑

AT89C518通道ADC0809电压采集

本帖最后由 paulhyde 于 2014-9-15 09:22 编辑 AT89C518通道ADC0809电压采集  …

查看全部问答>

evc4.0下ping的编写

          WSAData wsaData;         //初始化Socket动态链接库     if (WSAStartup(MAKEWORD(1, 1), &wsaData) != 0) {         return ;   ...…

查看全部问答>

卸载程序是如何实现:卸载程序执行完毕卸载程序被删除

是不是卸载程序中执行了删除自己的操作,应用程序一旦执行,删除操作就会被拒绝,谁能告诉我是怎么实现的. …

查看全部问答>

请问wince6下如何把poom定制到os中?

上面图片是我定制时选择的模块,但定制完成后,发现缺少Pimstore.h和Pimstore.lib这两个文件,这两个文件是poom api中的,是不是定制的时候还需要选择别的模块呢?谢谢…

查看全部问答>

在EVC中如何用代码使ListView的某一行被选中

就像被鼠标点击了的效果一样。 我的ListView的创建过程: g_hwndlist = CreateWindow(WC_LISTVIEW,TEXT(\"\"),                                   &nbs ...…

查看全部问答>

重量级文档--基于AT91RM9200 OHCI的USB主机

基于AT91RM9200 OHCI的USB主机   1       第一部分 概述... 4 1.1             前言... 4 1.2       &n ...…

查看全部问答>

通过电阻网络产生不同的电压(详解原文)

由3.3V的单片机控制一个由电阻网络组成的电路:3个IO控制用电阻网络的形式输出3.3、2.0、1.34、0.7、0V。2个IO控制用电阻网络的形式输出3.3、1.65、1、0.4V。目的要输出电压准确,至少保留两位小数。大概的接近电压的话,本人以实现了,但准确有困 ...…

查看全部问答>

关于STM32的IO之FT困惑

文档中也有关FT的说明, FT=Five -Volt tolerant .In order to sustain a voltage higher than Vdd+0.3 V the  internal  pull up / pull down  resistors must be disable. 正是因为must be disable 让我比较困惑 ...…

查看全部问答>

应聘助理工程师需要做哪些准备(毕业两年后从返本专业)

各位朋友,我原本是专科的应用电子专业毕业生,两年后打算从返电子行业,那么如果要应聘助理工程师或者技术员岗位,需要做哪些准备?哪些地方需要特别注重呢?         之前我也看到过招聘网站对该岗位的招聘要求, ...…

查看全部问答>

LED变色是怎么实现的呢?

本帖最后由 jameswangsynnex 于 2015-3-3 19:59 编辑 LED变色是怎么实现的呢?晚上霓虹灯闪耀的高楼大厦外墙,看到那些LED在一直不停滴变色,我想知道变色的原理是什么?难到LED本身会变色?初学者,请教大家。 …

查看全部问答>