精华内容
下载资源
问答
  • 指令集架构、微架构、处理器架构CPU架构内核

    万次阅读 多人点赞 2017-12-08 11:27:04
    前两天看书碰到了“CPU架构”这个词,脑子里感觉有点模糊不懂。查阅相关资料后又陆续碰到了“指令集架构”、“微架构”、“处理器架构”等词,于是就更加懵逼了。接着又陆陆续续的看了些资料,同时结合自己的一些...

         前两天看书碰到了“CPU架构”这个词,脑子里感觉有点模糊不懂。查阅相关资料后又陆续碰到了“指令集架构”、“微架构”、“处理器架构”等词,于是就更加懵逼了。接着又陆陆续续的看了些资料,同时结合自己的一些理解,给出这些词的解释,也方便以后查阅。以下关于“指令集架构”和“微架构”的英文解释摘录于维基百科(参考资料1和2):

    1. 指令集架构
       An instruction set architecture (ISA, 指令集架构) is an abstract model of a computer. It is also referred to as architecture or computer architecture. A realization of an ISA is called an implementation. An ISA permits multiple implementations that may vary in performance, physical size, and monetary cost (among other things); because the ISA serves as the interface between software and hardware. Software that has been written for an ISA can run on different implementations of the same ISA. This has enabled binary compatibility between different generations of computers to be easily achieved, and the development of computer families.
       An instruction set architecture is distinguished from a microarchitecture (微架构), which is the set of processor design techniques used, in a particular processor, to implement the instruction set. Processors with different microarchitectures can share a common instruction set. For example, the Intel Pentium and the Advanced Micro Devices Athlon implement nearly identical versions of the x86 instruction set, but have radically different internal designs.
    2. 微架构
       In electronics engineering and computer engineering, microarchitecture(微架构), also called computer organization and sometimes abbreviated as µarch or uarch, is the way a given instruction set architecture (ISA, 指令集架构), or the ways the PCB is pathed in the Processing unit, is implemented in a particular processor. A given ISA may be implemented with different microarchitectures; Implementations may vary due to different goals of a given design or due to shifts in technology.

         根据以上维基百科关于指令集架构和微架构的解释以及我自己的理解。我对指令集架构的粗略理解是:指令集架构就是设计了一堆指令(数据处理和存储操作、算术和逻辑操作以及控制流操作等,具体的就是一段一段的机器二进制编码)。由于整个计算机系统是硬件和软件的集合,最后指令的具体执行就是在计算机硬件(主要是CPU)上的二进制机器码对应着的高电平与低电平的变化。假设加指令对应着二进制机器码:10010010. 在设计完指令集架构之后,还得去具体地去实现该指令集。具体的实现就是怎么去设计CPU里面的硬件电路啥的使得CPU收到这一串二进制机器码之后就做出指令集架构规定的加指令相应的操作并得到对应的结果。指令集的硬件实现就是微架构处理器架构和CPU架构是一个比较模糊的概念,它们同时包含了指令集架构和微架构的内容。
         对于同一个指令集架构可以有不同的微架构,比如 Intel Pentium 和 Advanced Micro Devices Athlon 都采用的是x86指令集,但是它们的微架构却完全不同。不同的微架构可能是考虑到了性能、物理尺寸以及成本多方面的问题,具体可看如下摘录自维基百科的介绍:

    • An ISA specifies the behavior of machine code running on implementations of that ISA in a fashion that does not depend on the characteristics of that implementation, providing binary compatibility between implementations. This enables multiple implementations of an ISA that differ in performance, physical size, and monetary cost (among other things), but that are capable of running the same machine code, so that a lower-performance, lower-cost machine can be replaced with a higher-cost, higher-performance machine without having to replace software. It also enables the evolution of the microarchitectures of the implementations of that ISA, so that a newer, higher-performance implementation of an ISA can run software that runs on previous generations of implementations.

         指令集架构是计算机的一种抽象模型。指令集架构是具体硬件和软件之间的接口。针对同一指令集架构编写的软件可以运行在采用该指令集架构而微架构不同的机器上。由于指令集架构中的指令较多,如果直接使用机器码(也就是指令对应的二进制码)来编写软件会比较困难。这样就出现了如c++等高级语言,经过高级语言编写完程序之后再经过编译器软件将高级语言编译成对应的机器码就可以在机器上执行了,因为实际的硬件只认识机器码。
         参考资料3、4和5也是对指令集架构和微架构区别等的相关解释。参考资料6对常见的指令集架构做了相关解释和列表。
      
    ---------------------------------------------分割线(2020.09.04)------------------------------------------------------------------------

         指令集架构有很多的分类方法,主要的分类通过架构的复杂度来分类,可以分为复杂指令集计算机(complex instruction set computer, CISC) 和精简指令集计算机(reduced instruction set computer, RISC) 。复杂指令集计算机有许多特别的指令,它们中的一下很少在程序中使用。精简指令集计算机通过只实现经常被使用的指令来达到对复杂指令集计算机精简的目的,对于一些不太经常使用的操作可以通过经常使用的简单指令的组合来实现。
         复杂指令集计算机简单的理解就是提供的指令很多,也都很复杂。以 intel 的 x86 架构为代表,主要针对的操作系统是微软的 Windows 和苹果的 maxOS。另外 Linux,一些 UNIX 等,都可以运行在复杂指令集架构的微处理器。(参考与这里
         精简指令集计算机简单理解就是提供的指令很少,也都比较简单,只是一些基础的指令。以 ARM 公司的 arm 架构为代表。当前有 UNIX、Linux 以及包括 iOS、Android、Windows Phone 等在内的大多数移动操作系统运行在精简指令集的处理器上。(参考与这里

         内核,在不同领域里表达的是不同的东西,是指一个东西的核心部分,具体是什么,要看你指的是什么东西。
    参考于这里):

    • 在操作系统领域,内核指的是操作系统的核心部分。通常包括中断处理、任务管理、调度等功能,同时又有微内核、宏内核、混合内核等分类。
    • 在浏览器领域,内核一般是指浏览器的渲染引擎,也是浏览器的核心部分,比如是webkit还是IE等等。你说的UC内核,指的是浏览器领域的内核概念。
    • CPU领域,一般都叫核心,简单的理解就是CPU的核心部分,早期CPU只有一个核,但是随着技术的发展现在也出现了包含多个核的CPU。

         现在举个简单的例子,ARM公司就是一个设计指令集架构的公司,一些芯片生产公司购买ARM公司的授权来生产芯片就相当于是在生产微架构。做嵌入式工作的都知道,经常在芯片的 d a t a s h e e t datasheet datasheet里面看到说该芯片是基于ARM某某内核,这里的内核指的是指令集架构。

         参考资料:

    1. https://en.wikipedia.org/wiki/Microarchitecture#Aspects_of_microarchitecture
    2. https://en.wikipedia.org/wiki/Instruction_set_architecture#Machine_language
    3. https://www.quora.com/What-is-the-difference-between-architecture-and-microarchitecture-in-CPU
    4. https://sidkashyap.wordpress.com/2012/10/06/instruction-set-architecture-vs-micro-architecture/
    5. https://www.zhihu.com/question/23474438
    6. https://en.wikipedia.org/wiki/Comparison_of_instruction_set_architectures
    展开全文
  • Linux 查看CPU架构内核版本

    千次阅读 2020-06-23 10:02:05
    有些软件的安装需要和CPU架构相匹配,如JDK等等,所以需要确定主机的CPU架构类型。可使用命令arch查看Linux系统的CPU架构,如下: arch 2 查看内核版本 文件/proc/version中包含系统内核的版本信息,可借助cat命令...

    涉及arch命令和/proc/version文件

    1 查看CPU架构

    有些软件的安装需要和CPU架构相匹配,如JDK等等,所以需要确定主机的CPU架构类型。可使用命令arch查看Linux系统的CPU架构,如下:

    arch
    

    在这里插入图片描述

    2 查看内核版本

    文件/proc/version中包含系统内核的版本信息,可借助cat命令查看,如下:

    cat /proc/version
    

    在这里插入图片描述

    展开全文
  • 内核架构

    千次阅读 2019-01-23 01:28:07
    内核架构(Microkernel Architecture),也被成为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品(原文为product-based,指存在多个版本,需要下载安装才能使用...

    微内核架构(Microkernel Architecture),也被成为插件化架构(Plug-in Architecture),是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品(原文为product-based,指存在多个版本,需要下载安装才能使用,与web-based想对应)的应用。例如Eclipse这类IDE软件、UNIX这类操作系统、淘宝App这类客户端软件等,也有一些企业将自己的业务系统设计成微内核的架构,例如保险公司的保险核算逻辑系统,不同的保险品种可以将逻辑封装成插件。

    基本架构

    微内核架构包含两类组件:核心系统(core system)和插件模块(plug-in modules)。核心系统负责和具体业务功能无关的通用功能,例如模块加载、模块间通信等;插件模块负责实现具体的业务逻辑
    在这里插入图片描述
    上面这张图中核心系统Core System功能比较稳定,不会因为业务功能扩展而不断修改,插件模块可以根据业务功能的需要不断扩展。微内核架构的本质就是将变化封装在插件里面,从而达到快速灵活扩展的目的,而又不影响整体系统的稳定。

    设计关键点

    微内核的核心系统设计的关键技术有:插件管理,插件连接和插件通信

    1、插件管理

    插件系统需要知道当前有哪些插件可用,如何加载这些插件,什么时候加载插件,常见的实现方法是插件注册表机制。
    核心系统提供插件注册表(可以是配置文件,也可以是代码,还可以是数据库),插件注册表含有每个插件模块的信息,包括它的名字、位置、加载时机(启动就加载,还是按需加载等)

    2、插件连接

    插件连接指插件如何连接到核心系统。通常来说,核心系统必须制定插件和核心系统的连接规范,然后插件按照规范实现,核心系统按照规范加载即可。
    常见的连接机制有OSGi(Eclipse使用)、消息模式、依赖注入(Spring使用),甚至使用分布式的协议都是可以的,比如RPC或者HTTP Web的方式。

    3、插件通信

    通信必须经过核心系统,因此核心系统需要提供插件通信机制。这种情况和计算机类似,计算机的CPU、硬盘、内存、网卡是独立设计的配件,但计算机运行过程中,CPU和内存,内存和硬盘肯定是有通信的,计算机通过主板的总线提供了这些组件之间的通信功能。微内核的核心系统也必须提供类似的通信机制,各个插件之间才能正常的通信。

    OSGi架构简介

    OSGi的全称是Open Services Gateway intiative,本身其实是指OSGi Alliance。这个联盟是Sun Microsystems、IBM、爱立信等公司于1999年3月成立的开放的标准化组织,最初名为Connected Alliance。它是一个非盈利的国际组织,旨在建立一个开放的服务规范,为通过网络向设备提供服务建立开放的标准,这个标准就是OSGi specification。现在我们谈到OSGi,如果没有特别说明,一般是指OSGi的规范。
    OSGi联盟的初始目标是构建一个在广域网和局域网或设备上展开业务的基础平台,所以OSGi的最初设计也是针对嵌入式应用的,诸如机顶盒、服务网关、手机
    、汽车等都是其应用的主要环境。然而,无心插柳柳成荫,由于OSGi具备动态化、热插拔、高可复用性、高效性、扩展方便等优点,它被应用到了PC上的应用开发。尤其是Eclipse这个流行软件采用OSGi标准后,OSGi更是成为了首选的插件化标准。现在我们谈OSGi已经和嵌入式应用关系不大了,更多是将OSGi当做一个微内核的架构模式。
    Eclipse3.0开始,抛弃了自己实现的插件化框架,改用OSGi插件化框架。需要注意的是OSGi是一个插件化的标准,而不是一个可运行的框架,Eclipse采用的OSGi框架为Equinox,类似的实现还有Apache的Felix、Spring的Spring DM。
    OSGi框架的逻辑架构图如下:
    在这里插入图片描述

    1、模块层(module层)

    模块层实现插件管理功能。OSGi中,插件被称为Bundle,每个Bundle是一个java的jar文件,每个Bundle里面都包含一个元数据文件MANIFEST.MF,这个文件包含了Bundle的基本信息。例如,Bundle的名称、描述、开发商、classpath,以及需要导入的包和输出的包等,OSGi核心系统会将这些信息加载到系统中用于后续使用。
    一个简单的MANIFEST.MF样例如下:

    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Built-By: liuzhe
    Created-By: Apache Maven 3.5.3
    Build-Jdk: 1.8.0_162
    

    2、声明周期层

    声明周期层实现插件连接功能,提供了执行时模块管理、模块对底层OSGi框架的访问。生命周期层精确的定义了Bundle生命周期的操作(安装、更新、启动、停止、卸载),Bundle必须按照规范实现各个操作,例如:

    public class NettyBundleActivator implements BundleActivator {
        private OsgiLoggerFactory loggerFactory;
    
        public NettyBundleActivator() {
        }
    
        public void start(BundleContext ctx) throws Exception {
            this.loggerFactory = new OsgiLoggerFactory(ctx);
            InternalLoggerFactory.setDefaultFactory(this.loggerFactory);
        }
    
        public void stop(BundleContext ctx) throws Exception {
            if (this.loggerFactory != null) {
                InternalLoggerFactory.setDefaultFactory(this.loggerFactory.getFallback());
                this.loggerFactory.destroy();
                this.loggerFactory = null;
            }
    
        }
    }
    

    3、服务层(service层)

    服务层实现插件通信的功能。OSGi提供了一个服务注册的功能,用于各个插件将自己提供的服务注册到OSGi核心的注册中心,如果某个服务想用其他服务,则直接在服务注册中心搜索可用中心即可。

    规则引擎架构简析

    规则引擎从结构上来看也属于微内核架构的一种具体体现,其中执行引擎可以看做是微内核,执行引擎解析配置好的业务流,执行其中的条件和规则,通过这种方式来支持业务的灵活多变。
    规则引擎在计费、保险、促销等领域应用较多。例如电商促销,常见的促销规则有:

    • 3件8折
    • 第三件免费
    • 跨店满200减100
    • 新用户立减50

    • 以上仅仅列出来常见的几种,实际上完整列下来可能有几十上百种,再加上排列组合,促销方案,可能有几百上千种,这样的业务如果靠代码来实现,开发效率完全跟不上业务的变化速度,而规则引擎却能很灵活的应对这种需求,主要原因在于:

    1、可扩展

    通过引入规则引擎,业务逻辑实现与业务系统分离,可以在不改动业务系统的情况下扩展新的业务功能

    2、易理解

    规则通过自然语言描述,业务人员易于理解和操作,而不像代码那样只有程序员才能理解和开发。

    3、高效率

    规则引擎系统一般提供可视化的规则定制、审批、查询及管理,方便业务人员快速配置新的业务。
    规则引擎基本架构如下:
    在这里插入图片描述

    • 开发人员将业务功能分解提炼为多个规则,将规则保存在规则库中
    • 业务人员根据业务需要,通过将规则排列组合,配置成业务流程,保存在业务库中
    • 规则引擎执行业务流程,实现业务功能
      对照微内核架构的设计关键点,看看规则引擎是如何实现的

    1、插件管理

    规则引擎中的规则就是微内核架构中的插件,引擎就是微内核架构的内核。规则可以被引擎加载和执行。规则引擎架构中,规则一般保存在规则库中,使用数据库来存储。

    2、插件连接

    业务人员需要基于规则语言来编写规则文件,然后有规则引擎加载执行规则文件来直线业务功能。因为规则引擎的插件连接实现机制,其实就是规则语言。

    3、插件通信

    单个规则并不需要依赖其他规则,因此规则之间没有主动的通信,规则只需要输出数据或者事件。

    展开全文
  • 半导体解决方案供应商瑞萨电子集团(TSE:6723)今日宣布,与RISC-V架构嵌入式CPU内核及相关SoC开发环境的 供应商——Andes Technology启动技术IP合作。瑞萨选择AndesCoreTM 32位RISC-V CPU内核IP,应用于其全新的...
  • CPU架构CPU架构详细介绍

    万次阅读 多人点赞 2020-04-25 10:12:43
    1概述 CPU架构CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU。...不同品牌的CPU,其产品的架构也不相同,Intel、AMD的CPU是X86架构,IBM公司的CPU是PowerPC架构,ARM公司的CPU是ARM架构,国...

    1 概述

             CPU架构是CPU商给CPU产品定的一个规范,主要目的是为了区分不同类型的CPU。目前市场上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。不同品牌的CPU,其产品的架构也不相同,Intel、AMD的CPU是X86架构,IBM公司的CPU是PowerPC架构,ARM公司的CPU是ARM架构,国内的飞腾CPU也是ARM架构。此外还有MPIS架构、SPARC架构、Alpha架构。

    2 X86架构

            X86架构(The X86 architecture)是微处理器执行的计算机语言指令集。X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU--i8088(i8086简化版)使用的也是X86指令。同时电脑中为提高浮点数据处理能力而增加的X87芯片系列数字协处理器则另外使用X87指令,,包括后来 Intel 80186、80286、80386以及80486,由于以“86”作为结尾,以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的Pentium 4(以下简为P4)系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。

           x86架构CPU主要应用领域:个人计算机、服务器等。在PC端市场Wintel组合(windows系统 + intel处理器)占据了大部分江山,另外一部分有ADM占领。目前国内有兆芯,从AMD和VIA获取授权,研发自己的X86CPU,有其它国产CPU + 国产操作系统(linux系)可以用于教育和事业单位以及军工行针对的是特殊用户,国产CPU和操作系统想进入民用市场,由于性能、价格以及生态系统等,仍需要继续优化打磨以及一个合适契机。

         x86指令集发展

           IA:Intel(英特尔)处理器的服务器称之为IA(Intel Architecture)架构服务器

          IA-32:英特尔32位体系架构,X86从16位到32位是在原有的架构基础上进行修改(Intel称之为IA-32)

          x86-32:现如今Intel把x86-32称为IA-32

          x86-64 分为intel和AMD

           AMD64:x86架构的64位拓展,向后兼容于16位及32位的x86架构。x64于1999年由AMD设计,AMD首次公开64位集以扩展给x86,称为“AMD64”,AMD64和Intel64基本上一致

           Intel64:EM64T(Extended Memory 64 Technology)扩展64bit内存技术,本质上和AMD64一样都是IA-32的增强版本。

           IA-64:64位的英特尔架构,英特尔安腾架构(Intel Itanium architecture),使用在Itanium处理器家族上的64位指令集架构,由英特尔公司与惠普公司共同开发。IA是Intel Architecture(英特尔架构)的缩写,64指64位系统。使用这种架构的CPU,包括Itanium和Itanium 2。此架构与x86及x86-64并不相容,操作系统与软件需使用IA-64专用版本。

           Intel推出X86架构已满40年了,同486相比,Pentium向前迈进了一大步, 而PⅡ的前进步伐则没有这么大了,X86 CPU的发展似乎已到了尽头。英特尔非常清楚,是X86指令集限制了CPU性能的进一步提高,因此,他们正同惠普共同努力开发下一代指令集架构(Instruction Set Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,显性并行指令计算)。对英特尔而言, IA-64(英特尔的64位架构)是下一个10到15年的架构。新的ISA将使英特尔摆脱X86架构的限制,从而设计出超越所有现有RISC CPU和X86 CPU的新型处理器。

    3 ARM架构

            ARM架构,也称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于行动通讯领域,符合其主要设计目标为低耗电的特性。(其它请参考ARM介绍

            目前,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell的XScale架构和德州仪器的OMAP系列。

              ARM 授权方式:ARM 公司本身并不靠自有的设计来制造或出售 CPU ,而是将处理器架构授权给有兴趣的厂家。ARM 提供了多样的授权条款,包括售价与散播性等项目。对于授权方来说,ARM 提供了 ARM 内核的整合硬件叙述,包含完整的软件开发工具(编译器、debugger、SDK),以及针对内含 ARM CPU 硅芯片的销售权。对于无晶圆厂的授权方来说,其希望能将 ARM 内核整合到他们自行研发的芯片设计中,通常就仅针对取得一份生产就绪的智财核心技术(IP Core)认证。对这些客户来说,ARM 会释出所选的 ARM 核心的闸极电路图,连同抽象模拟模型和测试程式,以协助设计整合和验证。需求更多的客户,包括整合元件制造商(IDM)和晶圆厂家,就选择可合成的RTL(暂存器转移层级,如 Verilog)形式来取得处理器的智财权(IP)。借着可整合的 RTL,客户就有能力能进行架构上的最佳化与加强。这个方式能让设计者完成额外的设计目标(如高震荡频率、低能量耗损、指令集延伸等)而不会受限于无法更动的电路图。虽然 ARM 并不授予授权方再次出售 ARM 架构本身,但授权方可以任意地出售制品(如芯片元件、评估板、完整系统等)。商用晶圆厂是特殊例子,因为他们不仅授予能出售包含 ARM 内核的硅晶成品,对其它客户来讲,他们通常也保留重制 ARM 内核的权利。

            国外生产厂商:TI (德州仪器)、Samsung(三星)、Freescale(飞思卡尔)、Marvell(马维尔)、Nvidia(英伟达)、Qualcomm(高通)、STMicroelectronics(意法半导体)。

            国内生产厂商:华为(海思芯片)、飞腾(FT-1500、FT2000-4等CPU芯片)、兆易创新(GD32系列MCU,参考STM32系列)、瑞芯微(RK系列芯片)、联发科(台湾,天玑系列)。

          ARM架构的CPU可以有多核,例如几年前联发科推出10核处理器Helio X20(被戏称一核有难,八核围观,国产FT处理器已经推出了16核处理器。但是由于ARM自身低功耗等因素的限制,核心数多并不一定能大大提升性能。

           目前ARM主要市场是手机端CPU和MCU,手机CPU市场,由高通骁龙系列、华为麒麟系列、以及三星猎户系列和联发科系列,在MCU端主要是STM32以及国产的GD32,其它厂商的芯片用于其它领域,比如汽车电子、智能家居等。在CPU处理器上,有华为海思的鲲鹏920CPU(应用于泰山服务器中)和FT的CPU(军工领域),虽然FT的CPU起步很早,但是鲲鹏显然有后来居上之趋势。国内ARM芯片做的最好的是华为海思,鲲鹏920CPU性能在ARM架构中是NO1,另外海思麒麟系列手机芯片已发展为全球前三的地位,海思的视频处理芯片以及IoT芯片,在行业中都是标杆的产品。

          在2020年11月11日,apple公司发布了新一代的mac book,亮点就是使用了apple自己的ARM架构的M1。由于ARM的功耗小,在新一代的macbook上,apple大胆的去掉了散热风扇芯片,将笔记本厚度进一步压缩,续航时间达到了18小时。同时,搭载M1芯片的mac book CPU 性能提升至 3.5 倍,GPU 性能提升至 5 倍,机器学习性能提升至 9 倍。根据apple公司的影响力,未来PC中市场将会被ARM架构的CPU替代。(天下苦wintel久已)

    4 MPIS架构

           MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlockedpipedstages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。

            MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的CPU。

           1984年,MIPS计算机公司成立,开始设计RISC处理器;

           1986年推出R2000处理器。

           1992年,SGI收购了MIPS计算机公司。

           1988年推R3000处理器。

          1991年推出第一款64位商用微处器R4000;之后又陆续推出R8000(于1994年)、R10000(于1996年)和R12000(于1997年)等型号。

          1998年,MIPS脱离SGI,成为MIPS技术公司;随后,MIPS公司的战略发生变化,把重点放在嵌入式系统;1998年-MIPS科技股票在美国纳斯达克股票交易所公开上市。

          1999年,MIPS公司发布MIPS32和MIPS64架构标准,为未来MIPS处理器的开发奠定了基础。新的架构集成了所有原来NIPS指令集,并且增加了许多更强大的功能。MIPS公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS324Kc与高性能64位处理器内核MIPS645Kc。

          2000年,MIPS公司发布了针对MIPS32 4Kc的版本以及64位MIPS 64 20Kc处理器内核。

          2007年8月16日-MIPS科技宣布,中科院计算机研究所的龙芯中央处理器获得其处理器IP的全部专利和总线、指令集授权。

          2007年12月20日-MIPS科技宣布,扬智科技已取得其针对先进多媒体所设计的可定制化系统单芯片(SoC)核心“MIPS32 24KEcPro”授权。

    龙芯

           MPIS架构授权和ARM架构授权不一样,ARM架构授权用户基本不能自行修改,而MPIS架构授权后,可以自己修改。目前MPIS发扬光大寄希望中科龙芯公司,龙芯处理器从龙芯1号,到现在的龙芯3号系列的3A4000,CPU的性能已经大幅度提高,在完全可以胜任日常办公或者作为特殊用途的服务器。龙芯CPU和国产的飞腾(FT)处理器并驾齐驱,发展我国自主可控CPU。

    5 PowerPC系列

             PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的IBMPowerPC 601 微处理器POWER(PerformanceOptimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强RISC性能优化”)架构。二十世纪九十年代,IBM(国际商用机器公司)、Apple(苹果公司)和Motorola(摩托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是可伸缩性好、方便灵活。

            PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器CPU 到嵌入式 CPU 市场(任天堂Gamecube 使用了 PowerPC)。PowerPC处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了象串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。

     

    6 SPARC架构

           SPARC架构(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的RISC处理器体系架构之一,SPRAC如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于SPRAC架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令集(RISC)、支持32 位/64 位指令精度,架构运行稳定、可扩展性优良、体系标准开放等特点。SPARC因此得以迅速发展壮大,在现在已经有大约3万多个成功的应用案例。

             SPARCV7/V8 是目前嵌入式控制系统常用的处理器标准版本,并在航天设备的电子系统中得到广泛应用。然而,SPARC只是一个处理器的架构标准,并不提供现成的源码或IP核,具体的芯片实现要由开发者去完成。

             运行Oracle Solaris的Oracle SPARC T4服务器提供了创世界纪录的性能,其单线程性能提高了5倍、内存容量高达2 TB且实现了极高的系统吞吐量和I/O容量。SPARC T4服务器适用于需要极高的可靠性、可用性和集成式片上加密加速的企业应用程序和任务关键型应用程序,可确保最终的安全性。

    7 Alpha架构

            Alpha处理器最早由DEC公司设计制造,在Compaq(康柏)公司收购DEC之后,Alpha处理器继续得到发展,并且应用于许多高档的Compaq服务器上。自1995年开始开发了21164芯片,那时的工艺为0.5um,主频为200MHz。1998年,推出新型号21264,当时的主频是600MHz。较新的21264芯片主频达到1GHz,工艺为0.18um。在该芯片具有完善的指令预测能力和很高的存储系统带宽(超过1GB/s),并且其中增加了处理视频信息的功能,其多媒体处理能力得到了增强。

          Alpha架构于1992年2月25日,在东京召开的一次会议上面被正式推介,新架构的关键特性都一一的被罗列出来。当时说Alpha只是产品开发的内部代号。新处理器采用完全64-bit RISC设计,执行固定长度指令(32 bits)。有32个64 bit整数寄存器,操作43-bit的虚拟地址(在后来能够扩充到64-bit)。和VAX相同,使用little-endian字节顺序,即低字节的寄存器占用低内存地址线。而不像如摩托罗拉等大多数处理器所使用的big-endian字节顺序,即低字节寄存器占用高内存地址线。除此之外,处理器还内建一个算术协处理器,有32个浮点64-bit寄存器,采用随机存取,而不是在intel x86协处理器上使用的堆栈存取方式。整个Alpha的生命周期被设计为至少25年。

            Alpha处理器被用于DEC自己的工作站和服务器中。作为VAX的后续被开发,支持VMS操作系统,如 Digital UNIX。不久之后开放源代码的操作系统也可以在其上运行,如Linux和 DSB 。Microsoft 支持这款处理器,直到Windows NT 4.0 SP6 ,但是从Windows 2000 RC2开始放弃了对Alpha的支持。

        目前国内采用此架构的是申微超算处理器,得益于国家的支持,申威处理器在军队应用广泛。

    8 架构之间的竞争

    8.1 PC和服务竞争

             PC端和服务器端是X86架构的天下,而X86架构基本是以Intel为首,AMD为辅二分天下之势。国产CPU基本只能用在军工行业或者事业单位等。其实说性能,powerpc,可谓是高出不胜寒。硬件方面,Power系统在可靠性、可用性和可维护性的方面的出色表现使得 IBM从芯片到系统所设计的整机方案有着独有的优势。Power架构的处理器在超算、大型企业的UNIX服务器等多个方面应用也十分成功。在软件方面,其专用的AIX系统在稳定性、软件方案集成度和厂商技术支持能力方面都要更强。由于用户选一平台主要看软件需求,一般对数据保护和7*24小时不宕机等有所要求,power架构的稳定性和运维等方面相对更优。但是,由于IBM的技术把控,使得其价格太不友好,同时技术也赶不上环境的变化,在云计算兴起后,随着分布式系统逐渐成熟,系统对小型机的依赖开始降低,改为依靠集群提供,性能也可实现分布式处理。而更为关键的是,IBM的全套服务尽管稳定性优秀,但却影响了Power架构对其他商家的吸引力。

            而Sparc架构和Power架构基本犯了同样的错误:价格不友好。SPARC架构测成功和Sun旗下的Solaris系统有着密不可分的关系。当计算机系统庞大、用户数量巨大增加时,基于Unix操作系统打造的 Solaris能更好地利用计算机资源,是所有商业版中最可靠最完善的版本。而依赖SPARC架构和Solaris系统的性能和可靠性,其占领了服务器高端市场。Sun的另一个更为知名的产品是Java,虽然在上世纪90年代为智能家电开发的Java并没有为其带来相应的回报,但已成为今天移动时代最重要的开发语言。如此强大的实力本应统领服务器市场,但遗憾的是,在windows和英特尔组成Wintel联盟之后,两者凭借自身在各自市场的规模效应,使得采用Wintel产品的服务器厂商可以通过低廉的价格大肆抢占中低端市场。而当Sun醒悟过来,通过开源等方式想要挽回败局时为时已晚。

            X86架构与Power和SPARC在高性能领域的风生水起不同,x86架构是天生的小屌丝。1978年他出生的那年,英特尔还只是一个普通的科技公司。可是x86架构随同其cisc指令集却开启了一个新的时代。x86之所以可以赢得市场主要原因在于其是一个十分开放的架构。IBM和SUN当年都是从芯片到服务器到系统一手包办的公司。而英特尔则是一个十分纯粹的芯片厂商,其业务仅与AMD等少数芯片生产者存在竞争,这就使得服务器厂商不用忌惮与之发生竞争关系。

            单从性能来看,无论Power还是SPARC架构都可以击溃x86,可是最终能够赢下来的却偏偏是"最弱"的x86架构。这并非劣币淘汰良币,而是市场竞争的选择,根源上讲,x86的成功在于英特尔根本不碰服务器。因此不论设备生产商、软件开发者或者系统开发者都可以与不存在利益竞争关系的英特尔合作。受益于此,x86架构的兼容性也越发强大,生态体系越发完善,这才成就了现如今市场占有率超过90%的一家独大局面,英特尔也借助x86架构一跃成为全球顶级的芯片提供商。

    8.2 移动端竞争

            正如PC和服务器端是X86的天下一样,移动端是ARM的天下。Intel在CPU界的大名,可谓家喻户晓,但是在手机登移动端却难以看到英国ARM公司背影。在2006年,自从AMD的64位处理器发布以来,AMD成功逆袭了Intel,市场占有率大幅上升,而Intel老迈的P4处理器则是腹背受敌,尽失昔日霸气,市场表现一路走低。为了稳住投资人的信心,最好的做法自然是让公司持续盈利,为此Intel进行大规模的重整,包括上任新CEO 欧德宁、大规模裁员、以及出售XScale手机处理器业务。正因为这个举措,使得Intel到达了人生巅峰,从PC市场有赚的钵满盆满,然而也是因为此,Intel忽视了移动领域的迅猛发展。(当年,Intel拒绝了乔帮主还是PPT的Iphone手机,不然是否就会不一样?但是想一下Iphone X 使用Intel基带,信号差的诟病,Intel做手机芯是否会臭名昭著也未可知)

            和Intel公司不同, ARM公司不制造,不销售芯片,而是只自己设计IP核,包括指令集架构、微处理器、GPU、互连架构等,然后谁想用就授权卖给谁,再从每颗实际造出来的产品中收取版税。ARM有三种授权模式,分别是架构授权、内核授权、使用授权,分别对应大中小公司,非常讨喜,贴个牌子就能说是自己的CPU,为ARM处理器的广泛使用打下坚实基础。

            ARM的成功除了商业模式的独特之外还少不得自身素质的优秀,Intel技术毫无疑问是顶尖的,但应用场景在传统PC上,换成移动设备就行不通了,移动设备比起性能首先要考虑功耗和续航,Intel就吃了这个大亏,X86架构独步天下肯定是不能随意变改的,移动设备当然继续沿用X86架构,然而换来却是高功耗和快速掉电,换谁都看不上。反之功耗控制则是ARM的强项,使用精简指令集(RISC)和创新的big.LITTLE架构,使ARM处理器能耗比一直领先于Intel。

            Intel正在积极布局,推出应用于 IoT 物联网的 Atom E3900 及车载电子的 Atom A3900 系列,号称 CPU 性能提升70%,GPU 性能提升190%,其中 Atom A3900 特别针对高温环境设计,可在110°C高温下使用15年。Intel是一家伟大的企业,但也是会犯错误的,既然已经错失移动市场,不妨暂时脱离,提前做好下一阶段的技术研发(5G),也有可能实现弯道超车。

     

     

    展开全文
  • 关于ARM的内核架构

    2021-01-27 13:52:07
    ARM即以英国ARM(AdvancedRISCMachines)公司的内核芯片作为CPU,同时附加其他外围功能的嵌入式开发板,用以评估内核芯片的功能和研发各科技类企业的产品. ARM微处理器目前包括下面几个系列,以及
  • 架构师修炼系列【微内核架构

    千次阅读 2020-09-19 23:58:44
    内核架构也被称为插件化架构,它是一种面向功能进行拆分的可扩展性架构,通常用于实现基于产品的应用(product-based与web-based相对),微内核架构包含两类组建:核心系统和插件模块,核心系统负责和具体业务无关...
  • Cortex M3内核架构

    万次阅读 2016-04-09 15:49:48
    CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神的无限的。 1、ARMCortex-M3 处理器  Cortex-M3处理器内核是单片机的中央处理单元( CPU)。 完整的基于CM3的MCU还需要很多其它组件。在芯片制造商得到...
  • 5个方面分析linux内核架构,让你对内核不再陌生 90分钟了解Linux内存架构,numa的优势,slab的实现,vmalloc的原理 手把手带你实现一个Linux内核文件系统 简介 作用是将应用层序的请求传递给硬件,并充当底层驱动...
  • 浅谈Linux内核CPU架构

    千次阅读 2014-11-06 14:21:18
    Linux由用户空间和内核两部分组成,之所以有这两部分构成,我想应该是由于考虑CPU体系结构 嵌入式ARM处理器有七种工作状态,分别是用户模式、快速中断、外部...Linux利用CPU这中架构,用户空间和内核空间分别工作在
  • next_freq = max_frequency (CPUFREQ_RELATION_H) if (load_freq < ((up_threshold - down_differential) * current frequency)) next_freq = load_freq / (up_threshold - down_differential) (CPUFREQ_...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,988
精华内容 43,595
关键字:

cpu内核架构