“复杂指令集”与“精简指令集”

合集下载

计算机组成原理指令集体系结构的设计与优化

计算机组成原理指令集体系结构的设计与优化

计算机组成原理指令集体系结构的设计与优化计算机组成原理是计算机科学中的重要理论课程之一,它对于了解计算机的基本原理和内部结构起着重要的指导作用。

其中,指令集体系结构是计算机的核心组成部分之一,它决定了计算机能够执行的操作和运算方式。

本文将探讨指令集体系结构的设计与优化方法,以及其对计算机性能的影响。

一、指令集体系结构的定义与分类指令集体系结构是计算机硬件与软件之间的接口,它定义了计算机能够执行的指令和数据格式。

根据指令和数据的操作类型,指令集体系结构可以分为以下几类:1. 精简指令集(RISC)体系结构精简指令集体系结构采用简单的指令格式和操作方式,指令集的种类较少,每条指令的执行时间相对较短。

精简指令集体系结构的设计目标是提高指令执行速度和功耗效率,适用于大部分应用场景。

2. 复杂指令集(CISC)体系结构复杂指令集体系结构采用复杂的指令格式和操作方式,指令集的种类繁多,每条指令的执行时间相对较长。

复杂指令集体系结构的设计目标是提供更丰富的指令功能和编程灵活性,适用于特定应用场景。

3. 隐式数据流(VLIW)体系结构隐式数据流体系结构将多条指令捆绑在一起,共同操作一组数据,以提高指令级并行性。

隐式数据流体系结构的设计目标是充分利用硬件资源,提高指令的并行度和执行效率,适用于科学计算和嵌入式系统等领域。

二、指令集体系结构的设计原则指令集体系结构的设计涉及到多个方面的考虑,以下是一些常见的设计原则:1. 简洁性指令集应该尽量简洁,避免冗余和重复的操作。

简洁的指令集可以提高指令的执行效率和编程的方便性。

2. 完整性指令集应该具备足够的操作功能,能够满足各类应用的需求。

完整的指令集可以提高程序的编写效率和计算机的应用范围。

3. 兼容性指令集应该具备一定的兼容性,能够支持历史上的指令集和软件。

兼容的指令集可以方便用户迁移和使用已有的软件资源。

4. 可扩展性指令集应该具备一定的扩展性,能够支持后续的技术发展和硬件升级。

精简指令集和复杂指令集的区别

精简指令集和复杂指令集的区别

精简指令集和复杂指令集的区别RISC(精简指令集计算机)和CISC(复杂指令集计算机)是当前CPU的两种。

它们的区别在于不同的CPU设计理念和⽅法。

CPU架构是⼚商给属于同⼀系列的CPU产品定的⼀个规范,主要⽬的是为了区分不同类型CPU的重要标⽰早期的CPU全部是CISC架构,它的设计⽬的是要⽤最少的机器语⾔指令来完成所需的计算任务。

⽐如对于乘法运算,在CISC架构的CPU 上,您可能需要这样⼀条指令:MUL ADDRA, ADDRB就可以将ADDRA和ADDRB中的数相乘并将结果储存在ADDRA中。

将ADDRA, ADDRB中的数据读⼊寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。

这种架构会增加CPU结构的复杂性和对CPU⼯艺的要求,但对于编译器的开发⼗分有利。

⽐如上⾯的例⼦,C程序中的a*=b就可以直接编译为⼀条乘法指令。

今天只有Intel及其兼容CPU还在使⽤CISC架构。

RISC架构要求软件来指定各个操作步骤。

上⾯的例⼦如果要在RISC架构上实现,将ADDRA, ADDRB中的数据读⼊寄存器,相乘和将结果写回内存的操作都必须由软件来实现,⽐如:MOV A, ADDRA; MOV B, ADDRB; MUL A, B; STR ADDRA, A。

这种架构可以降低CPU的复杂性以及允许在同样的⼯艺⽔平下⽣产出功能更强⼤的CPU,但对于编译器的设计有更⾼的要求。

复杂指令集计算机(CISC) 长期来,计算机性能的提⾼往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超⼤规模集成电路)技术的迅速发展,为了软件编程⽅便和提⾼程序的运⾏速度,硬件⼯程师采⽤的办法是不断增加可实现复杂功能的指令和多种灵活的编址⽅式.甚⾄某些指令可⽀持⾼级语⾔语句归类后的复杂操作.⾄使硬件越来越复杂,造价也相应提⾼.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能,傲处理在分析每⼀条指令之后执⾏⼀系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(Complex Instruction Set Computer-CISC)结构.⼀般CISC计算机所含的指令数⽬⾄少300条以上,有的甚⾄超过500条.精简指令集计算机(RISC) 采⽤复杂指令系统的计算机有着较强的处理⾼级语⾔的能⼒.这对提⾼计算机的性能是有益的.当计算机的设计沿着这条道路发展时.有些⼈没有随波逐流.他们回过头去看⼀看过去⾛过的道路,开始怀疑这种传统的做法:IBM公司没在纽约Yorktown的JhomasI.Wason研究中⼼于1975年组织⼒量研究指令系统的合理性问题.因为当时已感到,⽇趋庞杂的指令系统不但不易实现.⽽且还可能降低系统性能.1979年以帕特逊教授为⾸的⼀批科学家也开始在美国加册⼤学伯克莱分校开展这⼀研究.结果表明,CISC存在许多缺点.⾸先.在这种计算机中.各种指令的使⽤率相差悬殊:⼀个典型程序的运算过程所使⽤的80%指令.只占⼀个处理器指令系统的20%.事实上最频繁使⽤的指令是取、存和加这些最简单的指令.这样-来,长期致⼒于复杂指令系统的设计,实际上是在设计⼀种难得在实践中⽤得上的指令系统的处理器.同时.复杂的指令系统必然带来结构的复杂性.这不但增加了设计的时间与成本还容易造成设计失误.此外.尽管VLSI技术现在已达到很⾼的⽔平,但也很难把CISC的全部硬件做在⼀个芯⽚上,这也妨碍单⽚计算机的发展.在CISC中,许多复杂指令需要极复杂的操作,这类指令多数是某种⾼级语⾔的直接翻版,因⽽通⽤性差.由于采⽤⼆级的微码执⾏⽅式,它也降低那些被频繁调⽤的简单指令系统的运⾏速度.因⽽.针对CISC的这些弊病.帕特逊等⼈提出了精简指令的设想即指令系统应当只包含那些使⽤频率很⾼的少量指令.并提供⼀些必要的指令以⽀持操作系统和⾼级语⾔.按照这个原则发展⽽成的计算机被称为精简指令集计算机(Reduced Instruction Set Computer-RISC)结构.简称RISC.CISC与RISC的区别  我们经常谈论有关"PC"与"Macintosh"的话题,但是⼜有多少⼈知道以Intel公司X86为核⼼的PC系列正是基于CISC体系结构,⽽ Apple 公司的Macintosh则是基于RISC体系结构,CISC与RISC到底有何区别? 从硬件⾓度来看CISC处理的是不等长指令集,它必须对不等长指令进⾏分割,因此在执⾏单⼀指令的时候需要进⾏较多的处理⼯作。

汇编语言的分类

汇编语言的分类

汇编语言的分类汇编语言是计算机编程中一种低级语言,用于将源代码转化为机器码以供计算机执行。

在计算机科学中,汇编语言可以根据不同的特性进行分类。

本文将介绍汇编语言的分类,并对每种分类进行详细说明。

一、按照使用的处理器进行分类根据所使用的处理器类型,汇编语言可以分为多类。

最常见的分类方式是根据处理器架构进行划分,主要包括x86汇编语言、ARM汇编语言和MIPS汇编语言等。

1. x86汇编语言:x86汇编语言是最广泛应用的汇编语言之一,主要用于x86架构的处理器,如英特尔的处理器和AMD的处理器。

x86汇编语言具有较高的执行效率和灵活性,广泛用于操作系统、驱动程序和嵌入式系统开发等领域。

2. ARM汇编语言:ARM汇编语言主要用于ARM架构的处理器,如移动设备和嵌入式系统中常见的ARM处理器。

ARM汇编语言具有较低的功耗和较高的性能,在移动应用、物联网和智能终端等领域得到广泛应用。

3. MIPS汇编语言:MIPS汇编语言用于MIPS架构的处理器,主要应用于嵌入式系统和网络设备等领域。

MIPS汇编语言具有简洁的指令集和高性能的特点,适用于资源有限的嵌入式系统。

二、按照指令系统进行分类根据指令系统的不同,汇编语言可以分为复杂指令集(CISC)和精简指令集(RISC)两类。

1. 复杂指令集(CISC):复杂指令集汇编语言具有丰富的指令集合和复杂的指令格式,可以实现多种功能。

CISC汇编语言中的每个指令可以执行复杂的操作,但由于指令集繁多,编程复杂度较高,难以提高执行效率。

2. 精简指令集(RISC):精简指令集汇编语言以简单、统一的指令格式为特点,指令集较为精简。

RISC汇编语言的每个指令只执行一项基本操作,简化了处理器的设计和编程的复杂性,并能够提高执行效率。

三、按照应用领域进行分类汇编语言还可以根据应用领域进行分类,不同应用领域对汇编语言具有不同的要求。

1. 系统级汇编语言:系统级汇编语言主要用于操作系统和底层系统软件开发,例如操作系统的内核、驱动程序等。

cisc risc vliw 通俗理解 指令系统划分

cisc risc vliw 通俗理解 指令系统划分

cisc risc vliw 通俗理解指令系统划分计算机指令系统是计算机硬件能够识别和执行的一组指令,它是计算机软件和硬件之间的接口。

指令系统的设计直接影响到计算机的性能、功能和成本。

根据指令系统的特点,可以将指令系统划分为CISC(Complex Instruction Set Computing,复杂指令集计算)、RISC(Reduced Instruction Set Computing,精简指令集计算)和VLIW(Very Long Instruction Word,超长指令字)三种类型。

1. CISC(复杂指令集计算)CISC是一种早期的指令系统设计方法,其主要特点是指令长度不固定,一条指令可以完成多个操作。

CISC指令系统中的指令通常包括数据操作、逻辑操作、控制转移等多种功能。

这种设计使得程序员可以用较少的指令完成复杂的任务,提高了编程的灵活性。

然而,CISC指令系统的复杂性也带来了一些问题:- 指令长度不固定导致硬件设计的复杂度增加,降低了处理器的运行速度;- 由于一条指令可以完成多个操作,需要更多的时钟周期来执行,降低了处理器的性能;- 程序中存在大量复杂的指令,使得编译器难以优化代码,降低了程序的执行效率。

2. RISC(精简指令集计算)为了解决CISC指令系统中存在的问题,研究人员提出了RISC指令系统设计方法。

RISC的主要特点是指令长度固定,一条指令只完成一个基本操作。

这使得硬件设计变得简单,提高了处理器的运行速度和性能。

RISC指令系统中的指令主要包括数据操作、逻辑操作和控制转移等基本操作。

与CISC相比,RISC具有以下优点:- 指令长度固定,简化了硬件设计,提高了处理器的运行速度;- 一条指令只完成一个基本操作,减少了时钟周期的数量,提高了处理器的性能;- 程序中的基本操作较为简单,便于编译器优化代码,提高了程序的执行效率。

然而,RISC指令系统的局限性在于其编程灵活性较低,程序员需要使用较多的指令来完成复杂的任务。

处理器知识-RISC和CISC架构分析对比

处理器知识-RISC和CISC架构分析对比

处理器知识: RISC和CISC架构分析对比CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构。

它们的区别在于不同的CPU设计理念和方法。

早期的CPU全部是CISC架构,它的设计目的是 CISC 要用最少的机器语言指令来完成所需的计算任务。

RISC和CISC是设计制造微处理器的两种典型技术,虽然它们都是试图在体系结构、操作运行、软件硬件、编译时间和运行时间等诸多因素中做出某种平衡,以求达到高效的目的,但采用的方法不同,因此,在很多方面差异很大。

x86架构采用CISC,而ARM采用RISC。

ARM成立于1991年,是一家出售IP(技术知识产权)的公司,所谓的技术知识产权,就有点像是卖房屋的结构设计图,至于要怎修改,哪边开窗户,以及要怎加盖其它的花园,就看买了设计图的厂商自己决定。

而ARM的架构是采用RISC架构,如同它的名称一样,Advanced RISC Machines,RISC 架构在当初的PC架构争霸战虽然败给Intel所主导的x86处理器架构,却默默在另外的领域成长壮大;小从硬盘转速控制、电信基地台的计算、汽车喷射引擎的控制、音响系统、相机引擎,大到电动机具的控制等等,都能够看见采用ARM授权架构处理器的身影。

而有了设计图,当然还要有把设计图实现的厂商,而这些就是ARM架构的授权客户群。

包括:高通、华为、联发科、TI、Freescale等。

X86是英特尔Intel首先开发制造的一种微处理器体系结构的泛称,包括Intel8086、80186、80286、80386以及80486以86结尾系列,英特尔统治整个CPU产业链长达数十年。

但是,Intel以增加处理器本身复杂度作为代价,去换取更高的性能,但集成的指令集数量越来越多,给硬件带来的负荷也就越来越大,无形中增加了功耗和设计难度。

ARM(Advanced RISC Machines)公司是苹果、Acorn、VLSI、Technology等公司的合资企业。

复杂指令集和精简指令集

复杂指令集和精简指令集

复杂指令集和精简指令集指令集是计算机体系结构的重要组成部分,它是计算机执行程序的指令集合,包括操作码和操作数等元素。

指令集的设计和选择对计算机的性能、成本和可移植性等方面有很大的影响。

主要有两种指令集架构:复杂指令集(Complex Instruction Set Architecture,CISC)和精简指令集(Reduced Instruction Set Architecture,RISC)。

下面我们将详细介绍这两种架构的特点以及各自的优缺点。

一、复杂指令集(CISC)复杂指令集计算机体系结构最早出现在20世纪70年代,其最初的设想是将多条简单的指令合并成一条复杂的指令,以提高指令集的设计效率和程序的执行速度。

复杂指令集计算机单条指令可以针对一个任务执行多个操作,包括算术运算、逻辑运算、存储等操作。

它具有以下特点:1. 指令集较为复杂:CISC体系结构中的指令集合较为庞大,涵盖了多种算术运算、逻辑运算、访问存储器等操作,每条指令执行的操作数目较多。

2. 可以降低程序员的工作量:它具有很强的程序兼容性,程序员可以使用语义丰富、操作多样的指令来编写程序,编程较为简便。

3. 数据传输能力较强:CISC指令集支持多种地址寻址方式,可以通过一条指令传输大块数据,节省了时间和空间。

4. 代码密度较高:CISC指令具有较长的字长和高代码密度,可以使程序占用的内存较小。

5. 对内存的使用相对较少:由于CISC指令集中包含了很多常用的命令,所以相对于RISC指令集,CISC指令可以使程序的执行速度更快,CPU可以少使用内存。

不过随着时间的推移,CISC体系结构逐渐暴露出了一些问题。

CISC指令集架构虽然功能强大,但每条指令的执行时间较长,开销很高,导致处理器需要消耗更多的内存和时间来执行指令。

精简指令集计算机体系结构是20世纪80年代提出的一种新型的计算机架构,它的设计思想是通过增加寄存器数量和减少指令集的复杂程度,减少单条指令的执行时间,从而提高处理器的性能和效率。

计算机语言指令集

计算机语言指令集

计算机语言指令集摘要:1.计算机语言指令集的定义与作用2.指令集的类型与特点3.常见指令集的介绍4.计算机语言指令集的发展趋势正文:计算机语言指令集是计算机程序中用于指导计算机完成特定任务的命令集合。

指令集可以被视为计算机语言的“词汇表”,它定义了语言可以使用的基本操作。

这些操作包括对数据进行加、减、乘、除等算术运算,以及对数据进行存储、读取、删除等操作。

指令集在计算机程序设计和运行中起着至关重要的作用,它们决定了计算机可以执行哪些任务以及如何执行这些任务。

指令集有多种类型,每种类型都有其独特的特点。

常见的指令集类型包括:1.复杂指令集(CISC, Complex Instruction Set Computer):复杂指令集计算机使用大量指令来完成各种任务。

这些指令通常需要多个时钟周期才能完成,因此它们的执行速度较慢。

2.精简指令集(RISC, Reduced Instruction Set Computer):精简指令集计算机使用较少的指令来完成任务。

这些指令通常可以在一个时钟周期内完成,因此它们的执行速度较快。

3.单指令多数据(SIMD, Single Instruction, Multiple Data):单指令多数据计算机可以在一个时钟周期内同时处理多个数据。

这种计算机通常用于大规模数据处理任务,例如视频处理和图形渲染。

有许多常见的指令集,例如:1.x86:x86 指令集是最常用的指令集之一,它被广泛应用于个人计算机和服务器。

x86 指令集起源于英特尔的80x86 微处理器,后来得到了许多其他厂商的支持。

2.ARM:ARM(Advanced RISC Machine)指令集是一种精简指令集,它被广泛应用于移动设备和嵌入式系统。

ARM 指令集由英国的ARM 公司开发,得到了许多其他厂商的支持。

3.MIPS:MIPS(Microprocessor without Interlocked Pipeline Stages)指令集是一种精简指令集,它被广泛应用于嵌入式系统和超级计算机。

计算机组成原理基础知识指令集架构和微操作的执行

计算机组成原理基础知识指令集架构和微操作的执行

计算机组成原理基础知识指令集架构和微操作的执行计算机组成原理是计算机科学与技术领域中的一门重要课程,它研究计算机是如何组成和工作的。

指令集架构和微操作是计算机组成原理中的两个核心概念,它们在计算机的指令执行过程中起着重要的作用。

本文将从指令集架构和微操作的概念入手,详细介绍它们的执行原理和相关知识。

一、指令集架构的概念和分类指令集架构是指计算机体系结构中,汇编语言编程所使用的指令的集合和指令的执行方式。

根据指令的长短和指令操作数的个数,指令集架构可以分为以下几种类型:1. 精简指令集(RISC)架构:精简指令集架构的指令长度固定,一般都是固定长度的32位指令。

每条指令只能完成一个操作,执行速度快,适合用来处理更小规模的任务。

2. 复杂指令集(CISC)架构:复杂指令集架构的指令长度可以变化,指令中包含多个操作,执行速度相对较慢。

复杂指令集可以在一条指令中完成多个操作,适合用来处理大规模的任务。

二、微操作的概念和执行原理微操作是指一个指令在执行过程中所包含的多个微小操作,每个微操作执行一个或多个基本操作。

微操作的执行需要经过多个步骤,包括取指令、译码、执行、访存和写回等。

1. 取指令:计算机从存储器中读取指令,并把指令送入指令寄存器中,以供后续执行。

2. 译码:指令译码器对指令进行解析和识别,将指令翻译成计算机能够理解的控制信号。

3. 执行:根据指令所包含的操作码和操作数,执行相应的算术、逻辑或者控制操作。

4. 访存:将结果写入内存或者从内存中读取数据,并将数据送到寄存器或者其他运算单元中。

5. 写回:将结果写入目标寄存器或存储器单元。

微操作的执行过程是高度复杂而精细的,不同的微操作之间存在严格的时序关系,需要严格控制和管理。

三、指令集架构和微操作的关系指令集架构和微操作是紧密相关的,指令集架构决定了计算机的指令格式和执行方式,而微操作是指令执行的最小单位。

指令集架构和微操作之间的关系主要体现在以下几个方面:1. 指令解码:指令集架构提供了多种指令编码方式,不同的指令需要进行不同的解码操作,以获得正确的控制信号。

cpu架构的名词解释

cpu架构的名词解释

CPU架构是指中央处理单元(Central Processing Unit,简称CPU)的设计和组织方式,它定义了CPU内部的数据处理方式和性能特性。

CPU架构决定了处理器的指令集、寄存器、缓存、执行单元、流水线以及其他关键的内部组件。

不同的架构设计会影响处理器的性能、能效、成本以及兼容性。

CPU架构的主要类型包括:
1. **复杂指令集计算机(CISC)**:这种架构的CPU支持复杂的指令集,每个指令可以执行多个操作,例如内存访问和算术运算。

CISC架构的代表是Intel的x86系列。

2. **精简指令集计算机(RISC)**:与CISC相反,RISC架构的CPU支持简单的指令集,每个指令执行单一的操作。

RISC架构的特点是高度优化,使得每个指令都能在较少的时钟周期内完成,从而提高效率。

ARM架构就是一种流行的RISC架构。

3. **指令集架构(ISA)**:ISA是CPU可以理解和执行的指令集合。

不同的CPU可能支持不同的ISA,例如x86、ARM、MIPS等。

4. **微架构(Microarchitecture)**:微架构是指CPU内部实现指令集的具体方式,它包括流水线结构、缓存组织、执行单元等。

微架构的设计可以显著影响处理器的性能。

5. **多核和多线程架构**:随着技术的发展,现代CPU可能包含多个核心和线程,这些核心和线程可以并行处理数据,提高多任务处理能力。

6. **异构多核架构(Heterogeneous Multicore)**:这种架构结合了不同类型的核心,例如CPU和GPU,以优化性能和能效。

RISC和CISC的区别

RISC和CISC的区别

RISC和CISC的区别RISC的简介RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器(如下图)起源于80年代的MIPS主机,RISC机中采用的微处理器统称RISC处理器。

这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。

因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。

RISC的简单使得在选择如何使用微处理器上的空间时拥有更多的自由。

比起从前,高级语言编译器能产生更有效的代码,因为编译器使用RISC机器上的更小的指令集。

RISC微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。

如:1987年Sun Microsystem公司推出的SPARC芯片就是一种超标量结构的RISC处理器。

而SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简指令系统多处理机中起着核心的作用。

RISC处理器是当今UNIX领域64位多处理机的主流芯片。

其特点主要有:一,由于指令集简化后,流水线以及常用指令均可用硬件执行;二,采用大量的寄存器,使大部分指令操作都在寄存器之间进行,提高了处理速度;三,采用缓存-主存-外存三级存储结构,使取数与存数指令分开执行,使处理器可以完成尽可能多的工作,且不因存储器存取信息而放慢处理速度。

由于RISC处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和服务器厂商均采用RISC芯片作CPU用。

RISC芯片的工作频率一般在400MHZ数量级。

时钟频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。

单一指令周期容纳多部并行操作。

在RISC微处理器发展过程中。

曾产生了超长指令字(VLIW)微处理器,它使用非常长的指令组合,把许多条指令连在一起,以能并行执行。

复杂指令和精简指令

复杂指令和精简指令

复杂指令(CISC)系统和精简指令(RISC)系统复杂指令(CISC)系统复杂指令系统计算机(ComplexInstructionSetComputer)简称(CISC),微处理器是台式计算机系统的基本处理部件,每个微处理器的核心是运行指令的电路。

指令由完成任务的多个步骤所组成,把数值传送进寄存器或进行相加运算。

这些指令被称为微理器的微代码(microcode),不同制造商的微处理器有不同的微代码系统,制造商可按自己的意愿使微代码做得简单或复杂。

指令系统越丰富,微处理器编程就越简单,然而,执行速度也相应越慢。

概述复杂指令集计算机(CISC),长期来,计算机性能的提高往往是通过增加硬件的复杂性来获得.随着集成电路技术.特别是VLSI(超大规模集成电路)技术的迅速发展,为了软件编程方便和提高程序的运行速度,硬件工程师采用的办法是不断增加可实现复杂功能的指令和多种灵活的编址方式.甚至某些指令可支持高级语言语句归类后的复杂操作.至使硬件越来越复杂,造价也相应提高.为实现复杂操作,微处理器除向程序员提供类似各种寄存器和机器指令功能外.还通过存于只读存贮器(ROM)中的微程序来实现其极强的功能,傲处理在分析每一条指令之后执行一系列初级指令运算来完成所需的功能,这种设计的型式被称为复杂指令集计算机(ComplexInstructionSetComputer-CISC)结构.一般CISC计算机所含的指令数目至少300条以上,有的甚至超过500条.传统计算机大多数为复杂指令系统计算机CISC(ComplexInstructionSetComputer),机器结构以存储器为中心,认为机器执行速度和程序代码大小成比例,绝大多数指令需要多个时钟周期执行完毕。

计算机指令系统十分庞大和复杂(指令条数多,寻址方式多,指令格式也很多),如1973年的IBM370/168基本指令208条,寻址方式4种,指令格式2~6个字节。

1978年的VAXII/780基本指令304条,24种寻址方式,指令格式2~57个字节,其中微代码存储器大小约480KB。

经典指令集和复杂指令集

经典指令集和复杂指令集

经典指令集和复杂指令集经典指令集和复杂指令集都是计算机体系结构中常用的指令集架构,它们对于计算机的运行和程序的执行起着重要的作用。

本文将介绍经典指令集和复杂指令集的概念、特点和应用,并比较它们之间的优缺点。

同时,还将探讨经典指令集和复杂指令集在不同应用领域的应用情况。

以下是对经典指令集和复杂指令集的详细描述。

一、经典指令集(Classic Instruction Set)经典指令集是计算机体系结构中最常用的指令集之一。

它采用较为简洁的指令格式和操作码,指令集的设计目标是实现高效的指令执行和较低的硬件成本。

经典指令集的特点如下:1. 精简指令集:经典指令集通常采用精简指令集(Reduced Instruction Set Computing, RISC)架构,指令的个数相对较少,指令的执行速度较快。

2. 硬件成本低:由于指令集较为简洁,所需的硬件资源相对较少,因此实现经典指令集的处理器成本相对较低。

3. 高可移植性:经典指令集的指令格式和操作码通常较为简单,易于理解和实现,因此具有较高的可移植性。

4. 高性能:经典指令集的指令执行速度较快,可以实现高性能的计算和数据处理。

经典指令集广泛应用于个人电脑、服务器、嵌入式系统等计算机领域。

例如,x86指令集是经典指令集的代表,它被广泛应用于个人电脑和服务器领域。

二、复杂指令集(Complex Instruction Set Computing, CISC)复杂指令集是相对于经典指令集而言的,它的指令集设计更为复杂,指令的功能更加丰富。

复杂指令集的特点如下:1. 多功能指令:复杂指令集的指令通常具有较为复杂的功能,可以完成更多的操作。

2. 指令格式复杂:复杂指令集的指令格式通常较为复杂,包含更多的操作码和寻址方式。

3. 复杂微操作:复杂指令集的指令执行过程较为复杂,通常需要多个微操作才能完成指令的执行。

4. 较高的硬件成本:由于指令集较为复杂,实现复杂指令集的处理器需要更多的硬件资源,因此成本相对较高。

CPU架构之精简指令集与复杂指令集

CPU架构之精简指令集与复杂指令集

CPU架构之精简指令集与复杂指令集1、精简指令集这种 CPU 的设计中,微指令集较为精简,每个指令的运⾏时间都很短,完成的动作也很单纯,指令的执⾏效能较佳; 但是若要做复杂的事情,就要由多个指令来完成。

常见的 RISC 微指令集 CPU 主要例如甲⾻⽂ (Oracle) 公司的 SPARC 系列、 IBM 公司的 Power Architecture (包括 PowerPC) 系列、与安谋公司 (ARM Holdings) 的 ARM CPU 系列等。

在应⽤⽅⾯,SPARC CPU 的计算机常⽤于学术领域的⼤型⼯作站中,包括银⾏⾦融体系的主服务器也都有这类的计算机架构; ⾄于 PowerPC 架构的应⽤上,例如新⼒(Sony)公司出产的 Play Station3(PS3)就是使⽤ PowerPC 架构的 Cell 处理器; 那安谋的 ARM 呢?你常使⽤的各⼚牌⼿机、PDA、导航系统、⽹络设备(交换器、路由器等)等,⼏乎都是使⽤ ARM 架构的 CPU 喔! ⽼实说,⽬前世界上使⽤范围最⼴的 CPU 可能就是 ARM 这种架构的呢!2、复杂指令集与 RISC 不同的,CISC 在微指令集的每个⼩指令可以执⾏⼀些较低阶的硬件操作,指令数⽬多⽽且复杂, 每条指令的长度并不相同。

因为指令执⾏较为复杂所以每条指令花费的时间较长, 但每条个别指令可以处理的⼯作较为丰富。

常见的 CISC 微指令集 CPU 主要有 AMD、Intel、VIA 等的 x86 架构的 CPU。

由于 AMD、 Intel、 VIA 所开发出来的 x86 架构 CPU 被⼤量使⽤于个⼈计算机(Personal computer)⽤途上⾯, 因此,个⼈计算机常被称为 x86 架构的计算机!那为何称为 x86 架构呢? 这是因为最早的那颗 Intel 发展出来的 CPU 代号称为 8086,后来依此架构⼜开发出 80286, 80386..., 因此这种架构的 CPU 就被称为 x86 架构了。

CISC(复杂指令集)与RISC(精简指令集)的区别

CISC(复杂指令集)与RISC(精简指令集)的区别

CISC(复杂指令集‎)与RISC‎(精简指令集‎)的区别复杂指令集‎计算机(CISC)长期来,计算机性能‎的提高往往‎是通过增加‎硬件的复杂‎性来获得.随着集成电‎路技术.特别是VL‎S I(超大规模集‎成电路)技术的迅速‎发展,为了软件编‎程方便和提‎高程序的运‎行速度,硬件工程师‎采用的办法‎是不断增加‎可实现复杂‎功能的指令‎和多种灵活‎的编址方式‎.甚至某些指‎令可支持高‎级语言语句‎归类后的复‎杂操作.至使硬件越‎来越复杂,造价也相应‎提高.为实现复杂‎操作,微处理器除‎向程序员提‎供类似各种‎寄存器和机‎器指令功能‎外.还通过存于‎只读存贮器‎(R OM)中的微程序‎来实现其极‎强的功能,傲处理在分‎析每一条指‎令之后执行‎一系列初级‎指令运算来‎完成所需的‎功能,这种设计的‎型式被称为‎复杂指令集‎计算机(Compl‎e x Instr‎u ctio‎n Set Compu‎t er-CISC)结构.一般CIS‎C计算机所‎含的指令数‎目至少30‎0条以上,有的甚至超‎过500条‎.精简指令集‎计算机(RISC)采用复杂指‎令系统的计‎算机有着较‎强的处理高‎级语言的能‎力.这对提高计‎算机的性能‎是有益的.当计算机的‎设计沿着这‎条道路发展‎时.有些人没有‎随波逐流.他们回过头‎去看一看过‎去走过的道‎路,开始怀疑这‎种传统的做‎法:IBM公司‎没在纽约Y‎o rkto‎w n的Jh‎o masI ‎.W ason‎研究中心于‎1975年‎组织力量研‎究指令系统‎的合理性问‎题.因为当时已‎感到,日趋庞杂的‎指令系统不‎但不易实现‎.而且还可能‎降低系统性‎能.1979年‎以帕特逊教‎授为首的一‎批科学家也‎开始在美国‎加册大学伯‎克莱分校开‎展这一研究‎.结果表明,CISC存‎在许多缺点‎.首先.在这种计算‎机中.各种指令的‎使用率相差‎悬殊:一个典型程‎序的运算过‎程所使用的‎80%指令.只占一个处‎理器指令系‎统的20%.事实上最频‎繁使用的指‎令是取、存和加这些‎最简单的指‎令.这样-来,长期致力于‎复杂指令系‎统的设计,实际上是在‎设计一种难‎得在实践中‎用得上的指‎令系统的处‎理器.同时.复杂的指令‎系统必然带‎来结构的复‎杂性.这不但增加‎了设计的时‎间与成本还‎容易造成设‎计失误.此外.尽管VLS‎I技术现在‎已达到很高‎的水平,但也很难把‎C I SC的‎全部硬件做‎在一个芯片‎上,这也妨碍单‎片计算机的‎发展.在CISC‎中,许多复杂指‎令需要极复‎杂的操作,这类指令多‎数是某种高‎级语言的直‎接翻版,因而通用性‎差.由于采用二‎级的微码执‎行方式,它也降低那‎些被频繁调‎用的简单指‎令系统的运‎行速度.因而.针对CIS‎C的这些弊‎病.帕特逊等人‎提出了精简‎指令的设想‎即指令系统‎应当只包含‎那些使用频‎率很高的少‎量指令.并提供一些‎必要的指令‎以支持操作‎系统和高级‎语言.按照这个原‎则发展而成‎的计算机被‎称为精简指‎令集计算机‎(R educ‎e d Instr‎u ctio‎n Set Compu‎ter-RISC)结构.简称RIS‎C.CISC与‎R I SC的‎区别我们经常谈‎论有关"PC"与"Macin‎t osh"的话题,但是又有多‎少人知道以‎I n tel‎公司X86‎为核心的P‎C系列正是‎基于CIS‎C体系结构‎,而 Apple‎公司的Ma‎c into‎s h则是基‎于R ISC‎体系结构,CISC与‎R I SC到‎底有何区别‎?从硬件角度‎来看CIS‎C处理的是‎不等长指令‎集,它必须对不‎等长指令进‎行分割,因此在执行‎单一指令的‎时候需要进‎行较多的处‎理工作。

计算机指令集架构

计算机指令集架构

计算机指令集架构计算机指令集架构是计算机体系结构中的一个重要组成部分,它定义了计算机硬件与软件之间的接口和指令的格式。

本文将介绍计算机指令集架构的基本概念、发展历程以及目前常见的指令集架构类型。

一、概述计算机指令集架构是计算机硬件和软件之间的桥梁,它决定了计算机的运行方式和能够执行的指令集。

指令集架构可以分为复杂指令集架构(CISC)和精简指令集架构(RISC)两大类型。

二、CISC指令集架构CISC指令集架构以复杂的指令集合和多种寻址方式为特点。

CISC 处理器具有较大的指令集合和复杂的指令格式,能够直接执行复杂的操作,如乘法、除法和浮点运算等。

CISC指令集架构的代表性产品包括Intel的x86架构和AMD的x86-64架构。

三、RISC指令集架构RISC指令集架构以精简的指令集合和固定的指令长度为特点。

RISC处理器采用精简的指令格式和简单的指令规则,具有执行速度快和节能的优势。

RISC指令集架构的代表性产品包括ARM架构和MIPS 架构。

四、发展历程计算机指令集架构的发展经历了多个阶段。

早期的计算机采用的是固定指令长度和硬布线的硬连线指令集架构,后来发展出微程序控制的硬连线指令集架构。

随着计算机应用需求的增加,CISC指令集架构逐渐兴起并取得了一定的发展。

但是,由于CISC指令集的复杂性和庞大性,RISC指令集架构逐渐得到了关注并取得了较大的成功。

五、指令集架构类型除了CISC和RISC指令集架构外,还存在一些其他类型的指令集架构。

例如,超标量指令集架构(Superscalar Architecture)允许多个指令同时执行,提高了处理器的执行效率。

向量指令集架构(Vector Architecture)可以高效地执行向量运算,广泛应用于科学计算和多媒体处理。

还有一些特殊用途的指令集架构,如浮点指令集架构(Floating-Point Architecture)和并行指令集架构(Parallel Architecture)等。

RISC和CISC的区别

RISC和CISC的区别

RISC和CISC的区别RISC的简介RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器(如下图)起源于80年代的MIPS主机,RISC机中采用的微处理器统称RISC处理器。

这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。

因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。

RISC的简单使得在选择如何使用微处理器上的空间时拥有更多的自由。

比起从前,高级语言编译器能产生更有效的代码,因为编译器使用RISC机器上的更小的指令集。

RISC微处理器不仅精简了指令系统,采用超标量和超流水线结构;它们的指令数目只有几十条,却大大增强了并行处理能力。

如:1987年Sun Microsystem公司推出的SPARC芯片就是一种超标量结构的RISC处理器。

而SGI公司推出的MIPS处理器则采用超流水线结构,这些RISC处理器在构建并行精简指令系统多处理机中起着核心的作用。

RISC处理器是当今UNIX领域64位多处理机的主流芯片。

其特点主要有:一,由于指令集简化后,流水线以及常用指令均可用硬件执行;二,采用大量的寄存器,使大部分指令操作都在寄存器之间进行,提高了处理速度;三,采用缓存-主存-外存三级存储结构,使取数与存数指令分开执行,使处理器可以完成尽可能多的工作,且不因存储器存取信息而放慢处理速度。

由于RISC处理器指令简单、采用硬布线控制逻辑、处理能力强、速度快,世界上绝大部分UNIX工作站和服务器厂商均采用RISC芯片作CPU用。

RISC芯片的工作频率一般在400MHZ数量级。

时钟频率低,功率消耗少,温升也少,机器不易发生故障和老化,提高了系统的可靠性。

单一指令周期容纳多部并行操作。

在RISC微处理器发展过程中。

曾产生了超长指令字(VLIW)微处理器,它使用非常长的指令组合,把许多条指令连在一起,以能并行执行。

计算机结构分类

计算机结构分类

计算机结构分类
计算机结构可以根据不同的分类方法进行划分。

以下是几种常见的分类方式:
1. 存储结构分类:根据存储器在计算机系统中的作用,可以将计算机结构分为存储器层次结构和存储器类型结构。

存储器层次结构包括高速缓存、主存和辅助存储器等不同层次的存储器,而存储器类型结构包括读写存储器、只读存储器和虚拟存储器等不同类型的存储器。

2. 处理单元结构分类:根据处理单元在计算机系统中的不同作用,可以将计算机结构分为中央处理器、输入输出处理器、数学处理器等不同的处理单元结构。

3. 指令集结构分类:根据计算机指令集的特点,可以将计算机结构分为复杂指令集和精简指令集。

复杂指令集指的是计算机具有大量的指令,能够完成复杂的操作,但需要多个时钟周期来完成一条指令。

而精简指令集则指的是计算机具有较少的指令,但每个指令都能够快速地在一个时钟周期内完成。

4. 规模结构分类:根据计算机硬件规模的大小,可以将计算机结构分为小型机、大型机、巨型机等不同的规模结构。

不同的规模结构具有不同的性能和价格,适用于不同的应用场景。

这些分类方式并不是彼此独立的,它们之间存在相互关联的关系。

例如,存储器层次结构和处理单元结构就存在着密切的联系。

因此,在了解计算机结构时,需要从多个角度进行考虑和分析。

体系结构 RISC, CISC, x86, ARM, MIPS

体系结构 RISC, CISC, x86, ARM, MIPS

体系结构: RISC, CISC, x86, ARM, MIPS硬件体系结构(Architecture)软件操作系统(Operating System)一、RISC与CISC1.CISC(Complex Instruction SetComputer,复杂指令集计算机)复杂指令集(CISC,Complex Instruction Set Computer)是一种微处理器指令集架构(ISA),每个指令可执行若干低阶操作,诸如从内存读取、储存、和计算操作,全部集于单一指令之中。

CISC特点:1.指令系统庞大,指令功能复杂,指令格式、寻址方式多;2.绝大多数指令需多个机器周期完成;3.各种指令都可访问存储器;4.采用微程序控制;5.有专用寄存器,少量;6.难以用优化编译技术生成高效的目标代码程序;在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。

而余下的80%的指令却不经常使用,在程序设计中只占20%。

2.RISC(reduced instruction setcomputer,精简指令集计算机)精简指令集这种设计思路对指令数目和寻址方式都做了精简,使其实现更容易,指令并行执行程度更好,编译器的效率更高。

它能够以更快的速度执行操作。

这种设计思路最早的产生缘自于有人发现,尽管传统处理器设计了许多特性让代码编写更加便捷,但这些复杂特性需要几个指令周期才能实现,并且常常不被运行程序所采用。

此外,处理器和主内存之间运行速度的差别也变得越来越大。

在这些因素促使下,出现了一系列新技术,使处理器的指令得以流水执行,同时降低处理器访问内存的次数。

实际上在后来的发展中,RISC与CISC在竞争的过程中相互学习,现在的RISC指令集也达到数百条,运行周期也不再固定。

虽然如此,RISC设计的根本原则——针对流水线化的处理器优化—0—没有改变,而且还在遵循这种原则的基础上发展出RISC的一个并行化变种VLIW(包括Intel EPIC),就是将简短而长度统一的精简指令组合出超长指令,每次执行一条超长指令,等于并行执行多条短指令。

RISC和CISC的比较

RISC和CISC的比较

RISC和CISC的比较RISC的设计重点在于降低由硬件执行指令的复杂度,因为软件比硬件容易提供更大的灵活性和更高的智能,因此RISC设计对编译器有更高的要求;CISC的设计则更侧重于硬件执行指令的功能,使CISC的指令变得很复杂。

总之RISC对编译器的要求高,CISC强调硬件的复杂性,CPU的实现更复杂。

RISC设计思想准则:1.指令集----RISC处理器减少指令集的种类,通常一个周期一条指令,也就是说指令的周期是固定的,编译器或程序员通过几条指令完成一个复杂的操作;CISC的指令长度通常不固定。

2.流水线----流水线的本质就是CPU并行运行,只是并行运行不像FPGA中的那么直接,它只是把一条指令分成几个更小的执行单元;CISC指令的执行需要调用一个微程序,明显没有RISC的指令吞吐量大。

3.寄存器----RISC的寄存器拥有更多的通用寄存器,寄存器操作较多,例如ARM具有27个寄存器,CISC的寄存器都是用于特定目的的。

4.Load-store结构----处理器只处理寄存器中的数据,这是因为访问存储器很耗时,同时对外部存储器的读写会影响其寿命;CISC能够在存储器中直接运行5.寻址方式简化,不像CISC那样的复杂众多的寻址方式是一种技术的名字。

而ARM体系结构目前被公认为是业界领先的32 位嵌入式RISC 微处理器结构。

所有ARM处理器共享这一体系结构。

因此我们可以从其所属体系比较入手,来进行X86指令集与ARM指令集的比较。

一、复杂指令集电脑CISC(Complex Instruction Set Computer)CISC是一种为了便于编程和提高记忆体访问效率的晶片设计体系。

早期的电脑使用组合语言编程,由于记忆体速度慢且价格昂贵,使得CISC体系得到了用武之地。

在20世纪90年代中期之前,大多数的微处理器都采用CISC体系──包括Intel的80x86和Motorola的68K系列等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

这里就不去管细节,简单来谈一下,ARM和X86之间为什
么不太具有可比性的问题。

要搞清楚这个问题首先要明白什么是架构,之前也有很多人提到了架构不同,但架构是什么意思?它是一个比较抽象的概念,不太容易用几句话就解释清楚。

我们要明白CPU是一个执行部件,它之所以能执行,也是因为人们在里面制作了执行各种功能的硬件电路,然后再用一定的逻辑让它按照一定的顺序工作,这样就能完成人们给它的任务。

也就是说,如果把CPU看作一个人,首先它要有正常的工作能力(既执行能力),然后又有足够的逻辑能力(能明白做事的顺序),最后还要听的懂别人的话(既指令集),才能正常工作。

而这些集中在一起就构成了所谓的“架构”,它可以理解为一套“工具”、“方法”和“规范”的集合。

不同的架构之间,工具可能不同,方法可能不同,规范也可能不同,这也造成了它们之间的不兼容——你给一个意大利泥瓦匠看一份中文写成的烹饪指南,他当然不知道应该干什么了。

如果还看不懂,没关系,我们继续。

从CPU发明到现在,有非常多种架构,从我们熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它们之间的差距都非常大。

但是如果从最基本的逻辑角度来分类的话,它们可以被分为两大类,即所谓的
“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。

属于这两种类中的各种架构之间最大的区别,在于它们的设计者考虑问题方式的不同。

我们可以继续举个例子,比如说我们要命令一个人吃饭,那么我们应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺子,然后舀起一勺饭,然后张嘴,然后送到嘴里,最后咽下去”。

从这里可以看到,对于命令别人做事这样一件事情,不同的人有不同的理解,有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单的命令让他去做很复杂的事情——比如只要说一句“吃饭”,他就会吃饭。

但是也有人认为这样会让事情变的太复杂,毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤,这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作,无非是下达命令的人稍微累一点——比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,多么简单。

这就是“复杂指令集”和“精简指令集”的逻辑区别。

可能有人说,明显是精简指令集好啊,但是我们不好去判断它们
之间到底谁好谁坏,因为目前他们两种指令集都在蓬勃发展,而且都很成功——X86是复杂指令集(CISC)的代表,而ARM 则是精简指令集(RISC)的代表,甚至ARM的名字就直接表明了它的技术:Advanced RISC Machine——高级RISC机。

到了这里你就应该明白为什么RISC和CISC之间不好直接比较性能了,因为它们之间的设计思路差异太大。

这样的思路导致了CISC和RISC分道扬镳——前者更加专注于高性能但同时高功耗的实现,而后者则专注于小尺寸低功耗领域。

实际上也有很多事情CISC更加合适,而另外一些事情则是RISC更加合适,比如在执行高密度的运算任务的时候CISC 就更具备优势,而在执行简单重复劳动的时候RISC就能占
到上风,比如假设我们是在举办吃饭大赛,那么CISC只需
要不停的喊“吃饭吃饭吃饭”就行了,而RISC则要一遍一
遍重复吃饭流程,负责喊话的人如果嘴巴不够快(即内存带宽不够大),那么RISC就很难吃的过CISC。

但是如果我们只是要两个人把饭舀出来,那么CISC就麻烦得多,因为CISC 里没有这么简单的舀饭动作,而RISC就只需要不停喊“舀
饭舀饭舀饭”就OK。

这就是CISC和RISC之间的区别。

但是在实际情况中问题要比这复杂许许多多,因为各个阵营的设计者都想要提升自家
架构的性能。

这里面最普遍的就是所谓的“发射”概念。

什么叫发射?发射就是同时可以执行多少指令的意思,例如双发射就意味着CPU可以同时拾取两条指令,三发射则自然就是三条了。

现代高级处理器已经很少有单发射的实现,例如Cortex A8和A9都是双发射的RISC,而Cortex A15则是三发射。

ATOM是双发射CISC,Core系列甚至做到了四发射——这个方面大家倒是不相上下,但是不要忘了CISC的指令更
加复杂,也就意味着指令更加强大,还是吃饭的例子,CISC 只需要1个指令,而RISC需要5个,那么在内存带宽相同
的情况下,CISC能达到的性能是要超过RISC的(就吃饭而言是5倍),而实际中CISC的Core i处理器内存带宽已经超过了100GB/s,而ARM还在为10GB/s而苦苦奋斗,一个更加吃带宽的架构,带宽却只有别人的十分之一,性能自然会受到非常大的制约。

为什么说ARM和X86不好比,这也是很重要的一个原因,因为不同的应用对带宽需求是不同的。

一旦遇到带宽瓶颈,哪怕ARM处理器已经达到了很高的运算性能,实际上根本发挥不出来,自然也就会落败了。

说到这儿大家应该也已经明白CISC和RISC的区别和特色了。

简而言之,CISC实际上是以增加处理器本身复杂度作为代价,去换取更高的性能,而RISC则是将复杂度交给了编译器,
牺牲了程序大小和指令带宽,换取了简单和低功耗的硬件实
现。

但如果事情就这样发展下去,为了提升性能,CISC的处理器将越来越大,而RISC需要的内存带宽则会突破天际,这都是受到技术限制的。

所以进十多年来,关于CISC和RISC 的区分已经慢慢的在模糊,例如自P6体系(即Pentium Pro)以来,作为CISC代表的X86架构引入了微码概念,与此对应的,处理器内部也增加了所谓的译码器,负责将传统的CISC指令“拆包”为更加短小的微码(uOPs)。

一条CISC 指令进来以后,会被译码器拆分为数量不等的微码,然后送入处理器的执行管线——这实际上可以理解为RISC内核
+CISC解码器。

而RISC也引入了指令集这个就逻辑角度而言非常不精简的东西,来增加运算性能。

正常而言,一条X86指令会被拆解为2~4个uOPs,平均来看就是3个,因此同样的指令密度下,目前X86的实际指令执行能力应该大约是ARM的3倍左右。

不过不要忘了这是基于“同样指令密度”下的一个假设,实际上X86可以达到的指令密度是十倍甚至百倍于ARM的。

最后一个需要考虑的地方就是指令集。

这个东西的引入,是为了加速处理器在某些特定应用上性能而设计的,已经有了几十年的历史了。

而实际上在目前的应用环境内,起到决定作用的很多时候是指令集而不是CPU核心。

X86架构的强大,很多时候也源于指令集的强大,比如我们知道的ATOM,虽
然它的X86核心非常羸弱,但是由于它支持SSE3,在很多
时候性能甚至可以超过核心性能远远强大于它的Pentium M,这就是指令集的威力。

目前X86指令集已经从MMX,发展到了SSE,AVX,而ARM依然还只有简单而基础的NEON。

它们之间不成比例的差距造成了实际应用中成百上千倍的
性能落差,例如即便是现今最强大的ARM内核依然还在为软解1080p H.264而奋斗,但一颗普通的中端Core i处理器却可以用接近十倍播放速度的速度去压缩1080p H.264视频。

至少在这点上,说PC处理器的性能百倍于ARM是无可辩驳的,而实际中这样的例子比比皆是。

这也是为什么我在之前说平均下来ARM只有X86几十分之一的性能的原因。

打了这么多字,其实就是为了说明一点,虽然现在ARM很强大,但它距离X86还是非常遥远,并没有因为这几年的进步而缩短,实际上反而在被更快的拉大。

毕竟它们设计的出发点不一样,因此根本不具备多少可比性,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。

这也是为什么ATOM一直以来都不成功的原因所在——Intel试图用自
己的短处去和别人的长处对抗,结果自然是不太好的,要不是Intel拥有这个星球上最先进的半导体工艺,ATOM根本
都不可能出现。

而ARM如果尝试去和X86拼性能,那结果自然也好不到哪儿去,原因刚刚也解释过了。

不过这也不意
味着ARM以后就只能占据低端,毕竟任何架构都有其优点,一旦有应用针对其进行优化,那么就可以扬长避短。

X86的繁荣也正是因为整个世界的资源都针对它进行了优化所致。

只要能为ARM找到合适的应用与适合的领域,未来ARM也未必不可以进入更高的层次。

相关文档
最新文档