cpu指令集
- 格式:rtf
- 大小:76.80 KB
- 文档页数:3
四大主流芯片架构(X86、ARM、RISC-V和MIPS)文章目录•••1、X86架构•2、ARM架构•3、RISC-V架构•4、MIPS架构•没有所谓的“万能芯片架构”•目前市场上主流的芯片架构有X86、ARM、RISC-V和MIPS四种:其实还有第五种:龙芯指令集LoongArch,咱再等等她,等她遍地开花时。
1、X86架构X86是微处理器执行的计算机语言指令集,指一个Intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。
1978年6月8日,Intel 发布了新款16位微处理器 8086,也同时开创了一个新时代:X86架构诞生了。
X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。
随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的 Pentium 4系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集。
2、ARM架构ARM架构是一个32位精简指令集处理器架构,其广泛地使用在许多嵌入式系统设计。
由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。
如今,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。
ARM处理器可以在很多消费性电子产品上看到,从可携式装置到电脑外设甚至在导弹的弹载计算机等军用设施中都有它的存在。
ARM和X86架构最显著的差别是使用的指令集不同。
3、RISC-V架构RISC-V 架构是基于精简指令集计算(RISC)原理建立的开放指令集架构(ISA),RISC-V是在指令集不断发展和成熟的基础上建立的全新指令。
RISC-V 指令集完全开源,设计简单,易于移植Unix系统,模块化设计,完整工具链,同时有大量的开源实现和流片案例,得到很多芯片公司的认可。
MIPS单周期CPU实验报告一、实验目的本实验旨在设计一个基于MIPS指令集架构的单周期CPU,具体包括CPU的指令集设计、流水线的划分与控制信号设计等。
通过本实验,可以深入理解计算机组成原理中的CPU设计原理,加深对计算机体系结构的理解。
二、实验原理MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集(RISC)架构的处理器设计,大大简化了指令系统的复杂性,有利于提高执行效率。
MIPS指令集由R、I、J三种格式的指令组成,主要包括算术逻辑运算指令、存储器访问指令、分支跳转指令等。
在单周期CPU设计中,每个指令的执行时间相同,每个时钟周期只执行一个指令。
单周期CPU的主要部件包括指令内存(IM)、数据存储器(DM)、寄存器文件(RF)、运算单元(ALU)、控制器等。
指令执行过程主要分为取指、译码、执行、访存、写回等阶段。
三、实验步骤1.设计CPU指令集:根据MIPS指令集的格式和功能,设计符合需求的指令集,包括算术逻辑运算指令、存储器访问指令、分支跳转指令等。
2.划分CPU流水线:将CPU的执行过程划分为取指、译码、执行、访存、写回等阶段,确定每个阶段的功能和控制信号。
3.设计控制器:根据CPU的流水线划分和指令集设计,设计控制器实现各个阶段的控制信号生成和时序控制。
4.集成测试:进行集成测试,验证CPU的指令执行功能和正确性,调试并优化设计。
5.性能评估:通过性能评估指标,如CPI(平均时钟周期数)、吞吐量等,评估CPU的性能优劣,进一步优化设计。
四、实验结果在实验中,成功设计了一个基于MIPS指令集架构的单周期CPU。
通过集成测试,验证了CPU的指令执行功能和正确性,实现了取指、译码、执行、访存、写回等阶段的正常工作。
同时,通过性能评估指标的测量,得到了CPU的性能参数,如CPI、吞吐量等。
通过性能评估,发现了CPU的性能瓶颈,并进行了相应的优化,提高了CPU的性能表现。
CPU主要的性能指标有以下几点CPU是计算机的核心部件之一,它负责执行计算机中的各种指令和数据处理任务。
CPU的性能指标可以衡量其处理能力和效率。
以下是CPU主要的性能指标:1.时钟频率:时钟频率是CPU最重要的指标之一,它表示CPU内部时钟的工作速度。
时钟频率越高,CPU在单位时间内处理的指令数量也越多。
时钟频率用赫兹(Hz)来表示,常见的时钟频率单位有兆赫兹(MHz)和千兆赫兹(GHz)。
2.核心数量:现代CPU通常有多个核心,每个核心可以独立处理指令。
核心数量越多,CPU可以同时处理更多的任务,提高整体计算能力。
3.缓存大小:CPU的缓存存储器用于快速存取频繁使用的数据和指令,它与主存储器相比速度更快。
缓存的大小对CPU的性能有着重要影响,较大的缓存可以提供更快的数据读取和处理速度。
4.指令集架构:指令集架构是CPU支持的指令集的集合,不同的指令集架构可以影响CPU的兼容性和性能。
常见的指令集架构有x86、ARM等。
5.处理器位宽:处理器位宽指CPU一次能处理的数据的位数,常见的处理器位宽有32位和64位。
64位处理器相比32位处理器在处理大容量数据、多任务和多线程等方面具有更高的性能。
6.流水线技术:CPU通过流水线技术将指令的执行分成多个阶段,每个阶段由不同的单元执行,从而可以同时执行多条指令。
流水线技术可以提高指令的执行效率,提高CPU的性能。
7.超线程技术:超线程技术可以让单个物理核心模拟出多个逻辑核心,提高CPU的并行处理能力。
超线程技术可以在一定程度上提高多线程应用程序的性能。
8.功耗:CPU功耗指CPU在工作过程中所消耗的电能。
功耗高的CPU通常会产生较多的热量,需要更强大的散热系统来降温。
功耗低的CPU能够减少能源消耗,延长电池寿命,提供更长的电池续航时间。
9.性能指标测试:性能指标还可以通过一些测试程序和标准来进行评估,例如基准测试和性能测试。
这些测试可以综合考虑CPU的不同方面性能,提供CPU的性能得分和性能比较。
3分钟了解国产CPU最新现状!目前,主要的CPU架构有四种:ARM、X86、MIPS、Power。
其中ARM/MIPS/Power均是基于精简指令集机器处理器的架构;X86则是基于复杂指令集的架构,Atom是x86或者是x86指令集的精简版。
精简指令集,是计算机中央处理器的一种设计模式,也被称为RISC(Reduced Instruction Set Computing的缩写)。
特点是所有指令的格式都是一致的,所有指令的指令周期也是相同的,并且采用流水线技术。
复杂指令集,英文名是CISC(Complex Instruction Set Computer的缩写)。
它是英特尔生产的x86系列(也就是IA-32架构)CPU及其兼容CPU,如AMD、VIA的。
即使是现在新起的X86-64(也被称为AMD64)都是属于CISC的范畴。
ARM、X86、MIPS和Power简介ARM ARM架构过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。
x86 xx86或80x86是Intel首先开发制造的一种微处理器体系结构的泛称。
x86架构是重要地可变指令长度的CISC(复杂指令集电脑,Complex Instruction Set Computer)。
MIPS MIPS,是一种采取精简指令集(RISC)的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛被使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。
最早的MIPS架构是32位,最新的版本已经变成64位。
不过MIPS目前已经不是市场主流。
Power POWER是1991年,Apple、IBM、Motorola组成的AIM联盟所发展出的微处理器架构。
SNB平台掌上明珠深入分析AVX指令集指令集是指CPU能执行的所有指令的集合,每一指令对应一种操作,任何程序最终要编译成一条条指令才能让CPU识别并执行。
CPU依靠指令来计算和控制系统,所以指令强弱是衡量CPU性能的重要指标,指令集也成为提高CPU效率的有效工具。
CPU都有一个基本的指令集,比如说目前英特尔和AMD的绝大部分处理器都使用的是X86指令集,因为它们都源自于X86架构。
但无论CPU有多快,X86指令也只能一次处理一个数据,这样效率就很低下,毕竟在很多应用中,数据都是成组出现的,比如一个点的坐标(XYZ)和颜色(RGB)、多声道音频等。
为了提高CPU在某些方面的性能,就必须增加一些特殊的指令满足时代进步的需求,这些新增的指令就构成了扩展指令集。
英特尔CPU扩展指令集演变英特尔在1996年率先引入了MMX(Multi Media eXtensions)多媒体扩展指令集,也开创了SIMD(Single Instruction Multiple Data,单指令多数据)指令集之先河,即在一个周期内一个指令可以完成多个数据操作,MMX指令集的出现让当时的MMX Pentium大出风头。
英特尔处理器扩展指令集演变史(图片来源后藤弘茂)SSE(Streaming SIMD Extensions,流式单指令多数据扩展)指令集是1999年英特尔在Pentium III处理器中率先推出的,并将矢量处理能力从64位扩展到了128位。
在Willamette核心的Pentium 4中英特尔又将扩展指令集升级到SSE2(2000年),而SSE3指令集(2004年)是从Prescott核心的Pentium 4开始出现。
SSE4(2007年)指令集是自SSE以来最大的一次指令集扩展,它实际上分成Penryn中出现的SSE4.1和Nehalem中出现的SSE4.2,其中SSE4.1占据了大部分的指令,共有47条,Nehalem中的SSE4指令集更新很少,只有7条指令,这样一共有54条指令,称为SSE4.2。
细数一下国内自主开发CPU的公司与现状,以及它们选择的指令集流派最近痛陈国产“芯”悲惨历史的各种文章充斥网络,各种民族主义泛滥,今天本号斗胆也评论下国产CPU为何尚未足够成功,原因很简单,那就是手气差——选错了指令集架构。
本文节选于出版书籍《手把手教你设计CPU——RISC-V处理器篇》第一章。
ISA请扛起这口锅——为什么国产CPU尚未足够成功众所周知,芯片是我国信息产业发展的核心领域,而CPU则代表了芯片中的核心技术。
在此方面,我国与发达国家相比有着明显的差距。
虽然经过多年的努力,技术差距已经有了显著的缩小,但是在民用商业领域内,仍然没有看到太多国产CPU的身影。
是什么原因造成国产商业CPU尚未足够成功这一现状呢?接下来,我们便细数一下国内自主开发CPU的公司与现状,以及它们选择的指令集流派。
通过逐一分析其过去与现状,相信能够让读者得到答案。
MIPS系——龙芯和君正1.龙芯龙芯CPU由中国科学院计算技术所龙芯课题组研制,由中国科学院计算技术所授权的北京神州龙芯集成电路设计公司研发。
以下是龙芯CPU芯片的相关简介。
·龙芯1号的频率为266MHz,最早在2002年开始使用,如图1-3所示。
·龙芯2号的频率最高为1GHz。
·龙芯3A系列是国产商用4核处理器。
最新龙芯3A3000基于中芯28nm FDSOI工艺,设计为4核64位,主频为1.5GHz,功耗仅为30W,非常适合笔记本平台。
·龙芯3B系列是国产商用8核处理器,主频超过1GHz,支持向量运算加速,峰值计算能力达到128GFLOPS,具有很高的性能功耗比。
龙芯3B系列主要用于高性能计算机、高性能服务器、数字信号处理等领域。
2.君正。
关于cpu的知识
CPU是计算机的核心部件,其全称为中央处理器(Central Processing Unit),它负责解释和执行计算机的指令。
CPU的主要功能是进行指令的解码和执行,同时还要控制计算机存储器和输入输出设备的操作。
CPU的主要特点包括以下几点:
1. 主频:CPU的工作速度以主频来衡量,主频越高,则计算速度越快。
2. 核数:多核CPU可以同时处理多个任务,在执行多任务时性能表现更优。
3. 缓存:CPU内置缓存,用来存放频繁使用的数据和指令,可以加快数据的访问速度。
4. 内部结构:CPU由控制单元、算术逻辑单元和寄存器等组成,具有复杂的内部结构。
5. 架构:CPU的架构决定了其指令集和运行方式,常用的架构包括x86、ARM、MIPS等。
6. 指令集:CPU的指令集是其能够执行的指令集合,如x86、ARM等指令集。
7. 制造工艺:CPU的制造工艺决定了其能够支持的最高主频和功耗等特性。
目前,主流CPU的制造工艺已经进入到了7nm阶段。
总的来说,CPU是计算机的核心部件,其性能和特点直接影响着整个计算机的性能。
其进步不仅给计算机带来了更强大的运算能力,而且也推动了许多新技术的发展和普及。
2-2 2013.1主讲教师:任海鹏1. 8088CPU结构和240DSP流水线 2. C6000系列DSP的CPU结构 3. C6000系列DSP的指令基础 4. C6000系列DSP的流水线操作 5. 中断结构和中断响应《DSP原理及应用》2任海鹏z概述 z寻址方式和数据访问指令 zSOP操作举例《DSP原理及应用》3任海鹏SOP操作举例zSOP的实现SOP是许多DSP算法的关键 组件。
这里写出SOP算法, 来学习C6000的程序的基本 结构。
Y = ∑ an * xnn = 1N= a1 * x1 + a2 * x2 +... + aN * xN此算法需要两个基本操作: : 1)乘 2)加 因此,需要2个基本指令。
《DSP原理及应用》4任海鹏SOP操作举例zSOP的实现乘法的实现Y = ∑ an * xnn = 1N= a1 * x1 + a2 * x2 +... + aN * xNa1乘x1用如下汇编语言 指令实现: 该指令由称为“.M”的乘法 器单元执行。
《DSP原理及应用》5任海鹏zSOP的实现Y = ∑ an * xn40注意: 16位×16位产生32位积; 32位×32位产生64位积;n = 1= a1 * x1 + a2 * x2 +... + aN * xN由.M单元硬件完成乘法操作:《DSP原理及应用》6任海鹏zSOP的实现Y = ∑ an * xnn = 140.M= a1 * x1 + a2 * x2 +... + aN * xN由.M单元硬件完成乘法 操作:《DSP原理及应用》7任海鹏zSOP的实现Y = ∑ an * xnn = 140.M .?= a1 * x1 + a2 * x2 +... + aN * xN由.L单元硬件完成加法 操作:《DSP原理及应用》8任海鹏zSOP的实现Y = ∑ an * xnn = 140.M .L像 C6000 这 样 的 RISC 处 理器使用寄存器保持操作数。
指令集与架构复杂指令集与精简指令集两种主要的计算机处理器体系结构:CISC(Complex Instruction Set Computer,复杂指令集计算机)RISC(Reduced Instruction Set Computer,精简指令集计算机)CISC(复杂指令集)即冯·诺依曼结构(普林斯顿结构),指令与数据存储在同⼀存储器中;采⽤CISC结构的处理器,指令线与数据线分时复⽤;程序指令存储地址与数据存储地址指向同⼀个存储器的不同物理位置,则程序指令和数据的宽度相同;取指令与取数据不能同时进⾏,速度受限;Intel 8051、Motorola MC68xxx、Atmel AT89通俗理解:我们要命令⼀个⼈吃饭,那么我们应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺⼦,然后舀起⼀勺饭,然后张嘴,然后送到嘴⾥,最后咽下去”。
从这⾥可以看到,对于命令别⼈做事这样⼀件事情,不同的⼈有不同的理解,有⼈认为,如果我⾸先给接受命令的⼈以⾜够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以⽤⾮常简单的命令让他去做很复杂的事情——⽐如只要说⼀句“吃饭”,他就会吃饭。
RISC(精简指令集)即哈佛结构,指令与数据存储于两个不同的存储空间;程序存储器与数据存储器相互独⽴,独⽴编址,独⽴访问;分离的程序总线与数据总线在⼀个机器周期中,可同时获得指令字和操作数,提⾼执⾏效率;取指令和取数据同时进⾏,且⼀般指令线宽与数据线,可包含更多的处理信息;Motorola/IBM PowerPC、Atmel AVR、Microchip PIC、ARM通俗理解:有⼈认为这样吃饭整套流程会让事情变的太复杂,毕竟接受命令的⼈要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的⽅法?我们为什么不可以把事情分为许多⾮常基本的步骤,这样只需要接受命令的⼈懂得很少的基本技能,就可以完成同样的⼯作,⽆⾮是下达命令的⼈稍微累⼀点——⽐如现在我要他吃菜,只需要把刚刚吃饭命令⾥的“舀起⼀勺饭”改成“舀起⼀勺菜”。
微指令名词解释
微指令是一种计算机指令的形式,用于控制中央处理器 (CPU) 执行特定的操作。
微指令通常由硬件实现,用于实现指令集体系结构中的基本指令。
它们是较低级别的指令,可以直接操作CPU的内部部件,如寄存器、算术逻辑单元 (ALU)、控制单元等。
微指令可以看作是指令集体系结构中更高级别指令的构建块。
它们通常包含非常基本的操作,如将数据从一个寄存器复制到另一个寄存器、执行算术或逻辑操作、比较数据等。
微指令通常以二进制的形式存储,并且在CPU中以非常快的速度执行。
通过组合微指令,CPU可以执行更复杂的操作,如加载和存储数据、条件分支、循环等。
微指令的执行通常是由控制单元 (CU) 负责的,它根据指令集体系结构中的高级指令生成所需的微指令序列。
使用微指令的好处是,它们可以提供更高的灵活性和效率。
由于微指令是较低级别的指令,它们可以直接与CPU的硬件交互,这可以提供更高的执行速度。
此外,通过重新组合微指令,CPU可以执行各种不同的指令,从而提供更多的功能。
然而,微指令的缺点是它们的设计和实现相对较为复杂。
由于微指令是直接与CPU的硬件相关的,因此设计和调试微指令需要对硬件架构有深入的理解。
此外,微指令的数量可能非常庞大,这可能导致设计和维护的困难。
总的来说,微指令是一种用于控制CPU执行特定操作的低级指令。
它们可以提供更高的灵活性和效率,但也需要复杂的设计和实现过程。
通过微指令,CPU可以执行各种不同的操作,从而实现指令集体系结构中更高级别指令的功能。
Dlib⽀持CPU指令集编译问题(SSE4.2或者AVX)The compile script is:mkdir buildcd buildcmake ../../tools/python -DUSE_SSE2_INSTRUCTIONS=ONcmake --build . --config Release --target installcd ..You forgot the -D. So you have to say, cmake -DUSE_SSE2_INSTRUCTIONS=ON(-DUSE_SSE2_INSTRUCTIONS=0)cmake ../../tools/python -DUSE_SSE4_INSTRUCTIONS=OFFcmake ../../tools/python -DUSE_SSE2_INSTRUCTIONS=ONpython setup.py install --yes USE_AVX_INSTRUCTIONS --yes USE_SSE2_INSTRUCTIONS --yes USE_SSE4_INSTRUCTIONS只安装基于SSE2指令集的Dlib包:python3.6 setup.py build --no USE_AVX_INSTRUCTIONS --yes USE_SSE2_INSTRUCTIONS --no USE_SSE4_INSTRUCTIONSCMake编译⽤: -DUSE_SSE4_INSTRUCTIONS=OFFpython setup.py build 编译⽤: --no USE_SSE4_INSTRUCTIONSfor Python 3 support use:python setup.py install --yes DPYTHON3I just ran into this and it was because the python module was being compiled with SSE4 instructions but my CPU only supports SSE2. Open tools/python/CMakeLists.txt and edit the line:set(USE_SSE4_INSTRUCTIONS ON CACHE BOOL "Use SSE4 instructions")In my case I changed it to:set(USE_SSE2_INSTRUCTIONS ON CACHE BOOL "Use SSE2 instructions")版本1(默认版本):git clone https:///davisking/dlib.git //Clone the code from githubcd dlibmkdir buildcd buildcmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1//以AVX指令的⽅式编译dlibcmake --build .cd ..sudo python setup.py install --yes USE_AVX_INSTRUCTIONS --no DLIB_USE_CUDA注:最后⼀步需要等待⼀些时间。
cpu的代数摘要:一、CPU的发展历程1. vacuum tube era(真空管时代)2.Transistor era(晶体管时代)3.Integrated circuit era(集成电路时代)4.Microprocessor era(微处理器时代)二、CPU的分类plex Instruction Set Computer(CISC,复杂指令集计算机)2.Reduced Instruction Set Computer(RISC,精简指令集计算机)三、CPU的主要性能指标1.时钟频率2.缓存3.指令集4.核心数量5.制程技术四、CPU的应用领域1.桌面计算机2.服务器3.嵌入式设备4.移动设备五、我国CPU产业的发展1.历史背景2.现状3.未来发展趋势正文:CPU是计算机系统的核心组件,自20世纪初以来,CPU的发展经历了多个时代。
首先,我们从真空管时代开始,这一时代的CPU由大量的真空管组成,功耗高、体积大、稳定性差。
随后,晶体管时代的到来,使得CPU的体积和功耗得到了大幅降低,稳定性得到了提高。
在集成电路时代,CPU进一步小型化,功能更加完善。
而到了微处理器时代,CPU集成度更高,性能更强,成为了现代计算机的基础。
在这一过程中,CPU的性能不断提高,指令集也变得越来越复杂。
然而,随着指令集的复杂化,CPU的功耗和发热问题逐渐凸显。
为了提高CPU的性能并降低功耗,人们开始研究精简指令集计算机(RISC)。
RISC采用简化指令集,减少指令执行的复杂度,从而提高CPU的运算速度。
目前,市面上主流的CPU架构如ARM、MIPS等都属于RISC架构。
在CPU的主要性能指标方面,时钟频率、缓存、指令集、核心数量和制程技术等都是重要的考量因素。
高时钟频率、大缓存、丰富的指令集、多核心设计和先进的制程技术都意味着更强大的CPU性能。
CPU的应用领域也非常广泛,包括桌面计算机、服务器、嵌入式设备和移动设备等。
CPU架构和GPU分类详解CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。
目前市面上的CPU指令集分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。
两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。
CPU架构主要有:X86/Atom、ARM、MIPS、PowerPC等等x86系列/Atom处理器xx86或80x86是英代尔Intel首先开发制造的一种微处理器体系结构的泛称。
x86架构是重要地可变指令长度的CISC(复杂指令集电脑,Complex InstrucTIon Set Computer)。
Intel Atom(中文:凌动,开发代号:Silverthorne)是Intel的一个超低电压处理器系列。
处理器采用45纳米工艺制造,集成4700万个晶体管。
L2缓存为512KB,支持SSE3指令集,和VT虚拟化技术(部份型号)。
ARM系列ARM架构,过去称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。
由于节能的特点,ARM处理器非常适用于移动通讯领域,符合其主要设计目标为低耗电的特性。
在今日,ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32 位架构之一。
ARM处理器可以在很多消费性电子产品上看到,从可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,计算机)到电脑外设(硬盘、桌上型路由器)甚至在导弹的弹载计算机等军用设施中都有他的存在。
在此还有一些基于ARM设计的派生产品,重要产品还包括Marvell 的XScale架构和德州仪器的OMAP系列。
[转]指令集简介指令集或指令集体系:是计算机体系结构中与程序设计有关的部分,包含了基本数据类型、指令集、寄存器、寻址模式、中断、异常处理以及外部的I/O。
指令集架构包含⼀系列的opcode即操作码(机器语⾔),以及由特定处理器执⾏的基本命令。
指令集的分类:(1)、复杂指令集计算机包含许多应⽤程序中很少使⽤的特定指令;(2)、精简指令集计算机通过只执⾏在程序中经常使⽤的指令来简化处理器的结构,⽽特殊操作则以⼦程序的⽅式实现,它们的特殊使⽤通过处理器额外的执⾏时间来弥补。
理论上的重要类型还包括最⼩指令集计算机与单指令集计算机,但都未⽤作商业处理器。
另外⼀种衍⽣类型是超长指令字,处理器接受许多经过编码的指令并通过检索提取出⼀个指令字并执⾏。
机器语⾔:是由声明和指令所组成的。
在处理结构上,⼀个特定指令指明了以下⼏个部分:(1)、⽤于算术运算,寻址或者控制功能的特定寄存器;(2)、特定存储空间的地址或偏移量;(3)、⽤于解译操作码的特定寻址模式。
指令类型:有效的指令操作须包含,(1)、数据处理与存储操作:将暂存器的值(在中央处理器作为⾼速缓存的存储空间)设为固定值;将数据从存储空间中传送⾄寄存器,反之亦然。
⽤于将数据取出并执⾏计算,或者将计算结果予以保存;从硬件设备读取或写⼊数据。
(2)、算术逻辑单元:对两个储存于暂存器的数字进⾏add、subtract、multiply、divide,将结果放到⼀个暂存器内,⼀个或是更多的状态码可能被设置在状态突破⼝中;执⾏位操作,即对两组数字(为两串的数字,都由0与1构成,分别储存于两个暂存器内)执⾏逻辑与和逻辑或,或者对寄存器的每⼀位执⾏逻辑⾮操作;⽐较两个寄存器中的数据(例如是⼤于或者相等);(3)、控制流:分⽀,跳跃⾄程序某地址并执⾏相应指令;条件分⽀,假设某⼀条件成⽴,就跳到程序的另⼀个位置;间接分⽀,在跳到另⼀个位置之前,将现在所执⾏的指令的下⼀个指令的位置储存起来,作为⼦程式执⾏完返回的地址。
Cpu介绍中央处理器(英文Central Processing Unit,CPU)是一台计算机的运算核心和控制核心。
CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。
其功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
差不多所有的CPU的运作原理可分为四个阶段:提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。
所谓的计算机的可编程性主要是指对CPU的编程工作原理CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。
它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。
指令是计算机规定执行操作的类型和操作数的基本命令。
指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。
有的指令中也直接包含操作数本身。
提取第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。
由程序计数器(Program Counter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。
换言之,程序计数器记录了CPU 在目前程序里的踪迹。
提取指令之后,程序计数器根据指令长度增加存储器单元。
指令的提取必须常常从相对较慢的存储器寻找,因此导致CPU等候指令的送入。
这个问题主要被论及在现代处理器的快取和管线化架构。
解码CPU根据存储器提取到的指令来决定其执行行为。
在解码阶段,指令被拆解为有意义的片断。
根据CPU的指令集架构(ISA)定义将数值解译为指令。
一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。
其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。
CPU_多媒体指令集解释
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。
指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。
从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分,而从具体运用看,如Intel的MMX(Multi Media Extended)、SSE、 SSE2(Streaming-Single instruction multiple data-Extensions 2)和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。
我们通常会把CPU的扩展指令集称为"CPU的指令集"。
精简指令集的运用
在最初发明计算机的数十年里,随着计算机功能日趋增大,性能日趋变强,内部元器件也越来越多,指令集日趋复杂,过于冗杂的指令严重的影响了计算机的工作效率。
后来经过研究发现,在计算机中,80%程序只用到了20%的指令集,基于这一发现,RISC精简指令集被提了出来,这是计算机系统架构的一次深刻革命。
RISC体系结构的基本思路是:抓住CISC 指令系统指令种类太多、指令格式不规范、寻址方式太多的缺点,通过减少指令种类、规范指令格式和简化寻址方式,方便处理器内部的并行处理,提高VLSI器件的使用效率,从而大幅度地提高处理器的性能。
RISC指令集有许多特征,其中最重要的有:
1. 指令种类少,指令格式规范:RISC指令集通常只使用一种或少数几种格式。
指令长度单一(一般4个字节),并且在字边界上对齐。
字段位置、特别是操作码的位置是固定的。
2. 寻址方式简化:几乎所有指令都使用寄存器寻址方式,寻址方式总数一般不超过5个。
其他更为复杂的寻址方式,如间接寻址等则由软件利用简单的寻址方式来合成。
3. 大量利用寄存器间操作:RISC指令集中大多数操作都是寄存器到寄存器操作,只以简单的Load和Store操作访问内存。
因此,每条指令中访问的内存地址不会超过1个,访问内存的操作不会与算术操作混在一起。
4. 简化处理器结构:使用RISC指令集,可以大大简化处理器的控制器和其他功能单元的设计,不必使用大量专用寄存器,特别是允许以硬件线路来实现指令操作,而不必像CISC 处理器那样使用微程序来实现指令操作。
因此RISC处理器不必像CISC处理器那样设置微程序控制存储器,就能够快速地直接执行指令。
5. 便于使用VLSI技术:随着LSI和VLSI技术的发展,整个处理器(甚至多个处理器)都可以放在一个芯片上。
RISC体系结构可以给设计单芯片处理器带来很多好处,有利于提高性能,简化VLSI芯片的设计和实现。
基于VLSI技术,制造RISC处理器要比CISC处理器工作量小得多,成本也低得多。
6. 加强了处理器并行能力:RISC指令集能够非常有效地适合于采用流水线、超流水线和超标量技术,从而实现指令级并行操作,提高处理器的性能。
目前常用的处理器内部并行操作技术基本上是基于RISC体系结构发展和走向成熟的。
正由于RISC体系所具有的优势,它在高端系统得到了广泛的应用,而CISC体系则在桌面系统中占据统治地位。
而在如今,在桌面领域,RISC也不断渗透,预计未来,RISC将要一
统江湖。
CPU的扩展指令集
对于CPU来说,在基本功能方面,它们的差别并不太大,基本的指令集也都差不多,但是许多厂家为了提升某一方面性能,又开发了扩展指令集,扩展指令集定义了新的数据和指令,能够大大提高某方面数据处理能力,但必需要有软件支持。
MMX 指令集
MMX(Multi Media eXtension,多媒体扩展指令集)指令集是Intel公司于1996年推出的一项多媒体指令增强技术。
MMX指令集中包括有57条多媒体指令,通过这些指令可以一次处理多个数据,在处理结果超过实际处理能力的时候也能进行正常处理,这样在软件的配合下,就可以得到更高的性能。
MMX的益处在于,当时存在的操作系统不必为此而做出任何修改便可以轻松地执行MMX程序。
但是,问题也比较明显,那就是MMX指令集与x87浮点运算指令不能够同时执行,必须做密集式的交错切换才可以正常执行,这种情况就势必造成整个系统运行质量的下降。
SSE指令集
SSE(Streaming SIMD Extensions,单指令多数据流扩展)指令集是Intel在Pentium III 处理器中率先推出的。
其实,早在PIII正式推出之前,Intel公司就曾经通过各种渠道公布过所谓的KNI(Katmai New Instruction)指令集,这个指令集也就是SSE指令集的前身,并一度被很多传媒称之为MMX指令集的下一个版本,即MMX2指令集。
究其背景,原来"KNI"指令集是Intel公司最早为其下一代芯片命名的指令集名称,而所谓的"MMX2"则完全是硬件评论家们和媒体凭感觉和印象对"KNI"的评价,Intel公司从未正式发布过关于MMX2的消息。
而最终推出的SSE指令集也就是所谓胜出的"互联网SSE"指令集。
SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。
理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。
S SE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。
SSE兼容MMX指令,它可以通过 SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。
SSE2指令集
SSE2(Streaming SIMD Extensions 2,Intel官方称为SIMD 流技术扩展 2或数据流单指令多数据扩展指令集 2)指令集是Intel公司在SSE指令集的基础上发展起来的。
相比于SSE,SSE2使用了144个新增指令,扩展了MMX技术和SSE技术,这些指令提高了广大应用程序的运行性能。
随MMX技术引进的SIMD整数指令从64位扩展到了128 位,使SIMD整数类型操作的有效执行率成倍提高。
双倍精度浮点SIMD指令允许以 SIMD格式同时执行两个浮点操作,提供双倍精度操作支持有助于加速内容创建、财务、工程和科学应用。
除SSE2指令之外,最初的SSE指令也得到增强,通过支持多种数据类型(例如,双字和四字)的算术运算,支持灵活并且动态范围更广的计算功能。
SSE2指令可让软件开发员极其灵活的实施算法,并在运行诸如MPEG-2、MP3、3D图形等之类的软件时增强性能。
Intel是从Willamette核心的Pentium 4开始支持SSE2指令集的,而AMD则是从K8架构的SledgeHammer核心的Opteron开始才支
持SSE2指令集的。
SSE3指令集
SSE3(Streaming SIMD Extensions 3,Intel官方称为SIMD 流技术扩展 3或数据流单指令多数据扩展指令集 3)指令集是Intel公司在SSE2指令集的基础上发展起来的。
相比于SSE2,SSE3在SSE2的基础上又增加了13个额外的SIMD指令。
SSE3 中13个新指令的主要目的是改进线程同步和特定应用程序领域,例如媒体和游戏。
这些新增指令强化了处理器在浮点转换至整数、复杂算法、视频编码、SIMD浮点寄存器操作以及线程同步等五个方面的表现,最终达到提升多媒体和游戏性能的目的。
Intel是从 Prescott核心的Pentium 4开始支持SSE3指令集的,而AMD则是从2005年下半年Troy核心的Opteron开始才支持SSE3的。
但是需要注意的是,AMD所支持的 SSE3与Intel的SSE3并不完全相同,主要是删除了针对Intel超线程技术优化的部分指令。
3D Now !指令集
由AMD公司提出的3DNow!指令集应该说出现在SSE指令集之前,并被AMD广泛应用于其K6-2 、K6-3以及Athlon(K7)处理器上。
3DNow!指令集技术其实就是21条机器码的扩展指令集。
与Intel公司的MMX技术侧重于整数运算有所不同,3DNow!指令集主要针对三维建模、坐标变换和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3D处理性能。
后来在Athlon上开发了Enhanced 3DNow!。
这些AMD标准的SIMD指令和Intel的SSE具有相同效能。
因为受到Intel在商业上以及Pentium III成功的影响,软件在支持SSE上比起3DNow!更为普遍。
Enhanced 3DNow!AMD公司继续增加至52个指令,包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。
目前最新的Intel CPU可以支持SSE、SSE2、SSE3指令集。
早期的AMD CPU仅支持3DNow!指令集,随着Intel的逐步授权,从Venice核心的Athlon 64开始,AMD的CPU不仅进一步发展了3DNow!指令集,并且可以支持Inel的SSE、SSE2、SSE3指令集。
不过目前业界接受比较广泛的还是Intel的SSE系列指令集,AMD的3DNow!指令集应用比较少。