arm芯片解密(arm与x86)
从第一台电脑诞生开始,我们就谈到了单片机时代。麻雀虽然小而全,但它的处理能力毕竟很有限。现实世界中工业和技术的发展促使我们生产出更强大、更丰富的处理器。如果说单片机是“麻雀”,那么现实很可能需要一只“鹰”,更糟糕的是,它是巨型秃鹫中的“鹰哥”。
CPU性能提升和处理器集成
单片机的“工厂”相对简单,厂外的“道路”相对原始。为了更快更好地加工产品,处理器制造商不断扩大其性能工程。“工厂”越来越高,“装修”越来越精致,材料越来越好。后来简单来说,它也给“工厂”建了自己的院子和专属车道,外面的路也是不断的。路上也有专门负责不同对外职责的各种车辆。最后,所有这些功能组件集合在一起,形成一个“工厂”,旁边有一个专业的CPU,可能还有一个协处理器,几个级别的带缓冲区的Cache和MMU,以及一个高带宽、高性能总线和各种外围IP的社区。现在说到处理器的概念,大部分都会参考这个社区。甚至当我们谈到CPU的时候,大部分都不仅仅是核心。我们似乎已经习惯了。
处理器行业的明星
从七八十年代开始,半导体行业蓄势待发,摩尔定律输出,如果把整个处理器类型的数量描述清楚,可以说是最后三天三夜。这里挑几个有代表性的明星产品来说一下,可以说处理器行业的老大哥英特尔特别有代表性,甚至在学校的微机原理课程中以这一类型为例,在PC和服务器行业的权威地位真的很难撼动。但是上一本书讲的是8086。这里我想以我们经常听到的几种处理器为代表,比如ARM、PowerPc、MIPS、DSP,加上FPGA来谈谈它们的开发和连接。
ARM处理器
说到ARM,你就熟悉了。它具有体积小、功耗低、成本低、性能高、支持Thumb(16位)/ARM(32位)双指令集、与8位/16位设备兼容性好、寄存器使用广泛、指令执行速度快、寻址方式灵活简单、执行效率高、指令长度固定、大部分数据操作都在寄存器中完成等特点。
如果翻译ARM这个词,一般是“高级RISC机”,是一种高性能的RISC处理器。然后这个词又来了。什么是RISC?
先说ARM诞生的历史,说明RISC在历史上的意义。
ARM的历史
要说ARM的历史,先说一个叫Acorn的公司。据说1978年12月,一位物理学家和一位工程师在英国剑桥成立了剑桥处理小组,主要向当地市场供应电子设备。1979年,公司更名为橡子公司。公司最初打算用摩托罗拉的16位芯片搭建设备,但是发现了两个问题,一个是芯片有点慢,一个是有点贵。后来他们想找Intel要80286芯片的设计资料,但是你知道,被拒绝后发生了什么?只能自己开发。
1985年,设计了第一代32位、6M Hz处理器,用它搭建了一台RISC指令集计算机,称为ARM(橡子RISC机)。这就是ARM这个名字的由来(那么这是Acorn还是Advanced?有可能一开始叫Acorn,后来发展成Advanced版本。
1990年11月27日,橡子公司正式改组为ARM计算机公司。苹果、芯片制造商超大规模集成电路(VLSI)和橡子(Acorn)一起入股。据说公司的办公室是一个非常简陋的谷仓。
说说RISC吧:
RISC被称为精简指令集计算机,中文意思是精简指令集计算机。什么是精简指令集?正是这种指令集结构可以优先选择使用频率最高的简单指令,避免复杂指令;指令长度固定,指令格式和寻址方式种类减少;控制逻辑是主要方法,不需要或者少用微码控制。简单来说,程序指令被拆分成简单的指令,执行起来没有那么复杂。然后我肯定另一个同学说,如果有简化指令集,有复杂指令集吗?答案是肯定的,叫做CISC(Complex Instruction Set Computer)的复杂指令集计算机有什么特点?在CISC指令集中,大约20%的指令会被重复使用,占整个程序代码的80%。而剩下的指令很少使用,在编程中只占20%。
英特尔的X86,我们芯片行业的大哥,指令集复杂,芯片的性能达到了这样的水平,可见大哥的实力。至于复杂的指令集,留给热爱学习的同学吧,比如芯片行业的明星基本都是RISC。
有很多故事,跳出历史的长河,文字太抽象。我们来看看ARM芯片是什么样子的。
恩智浦的LPC2378
这个小芯片被认为是ARM非常早期的产品。我们可以看到,芯片核心的“工厂”是ARM7TDMI-S,也就是我们常说的一种ARM7。使用这种芯片时,往往被认为是“高级单片机”。在大家都很乐意在ARM9上玩Linux的设计期,这样的芯片还是有很多工程师在战斗。软件设计往往采用前后结合的设计方法,偶尔还会带有UCOS-。
虽然这个小家伙主频只能几十兆,RAM几十KB,FLASH 512 KB,但是运行一个几万行代码的软件没有压力,功耗低。最重要的外设丰富,各种串口、CAN、I2C、SPI、定时器、AD等。,可以轻松满足各种轻量化工业控制和汽车电子应用的需求。也许这个芯片也是很多工程师朋友嵌入式启蒙的核心。
这个芯片是“ARM”,内部“小工厂”和“高速公路”采用ARM标准的AHB总线,各种外设(小型货车)使用“APB”总线进行访问,轻巧而丰富。
S3C2440
这种芯片结构看起来“简单”,重点是“工厂”的重建。一是工厂内部装修,换成了ARM9TDMI,主频可以运行到三四百兆。此外,厂区增加了“门禁和门卫”(MMU),C13专门帮助工作。院子里增加了一个快速的“缓存”,功能更加齐全和丰富。大货车(高速外设)比较丰富,满足视频处理的需求,小货车(低速外设)变化不大。
这个芯片,作为很多工程师和学生时代的“入门核心”,相信在很多学校都会勾起回忆,很多Linux学习教程也是基于这个小芯片。
那么都是运行Linux的吗?当然不是,操作系统肯定有自己的优势,但是裸机如果应用需求单一,操作系统功能不依赖,肯定是最高效的。从这个芯片的各种教程可以看出,入门时的简单控制是通过裸奔实现的。
我们讲过ARM的历史和芯片的特点,列举了恩智浦和三星ARM芯片的结构和组成特点。有一点需要注意的是,ARM既不生产芯片,也不销售芯片,只销售芯片技术许可证,也就是说市场上的ARM芯片不是这家公司制造的,人们只许可技术,不直接创造实体。记得几年前听过这么一句话:“一流公司做标准,二流公司做技术,”
所以回顾ARM诞生和成长的历史,我们需要做一个产品,没有人给,于是我们把自己的努力投入到研究中,最终生产出了一个,风靡全球,走进每一个家庭。
还有什么和这个场景类似?曾经有一个哥哥想玩一个游戏,但是不是他自己写的,于是诞生了C语言和Unix操作系统;曾经有一个学生练习写一个系统,并在电脑上运行。开源之后,伟大的Linux出生;可能是python...
也许我们也可以在过早做一个研究之前考虑一下结果和收益,投入自己的兴趣,放纵一下自己的想法,坚持下去,因为你喜欢,你就可以投入你的热情,管理好它。总有一天,它可能会在你的朋友中流行起来,喝一口鸡汤,写完这篇文章。