所有栏目 | 云社区 美国云服务器[国内云主机商]
你的位置:首页 > 云社区 » 正文

PLC中CPU运行的数据是并行的吗?

发布时间:2020-04-15 16:14:34

资讯分类:plc  并行  cpu  运行  指令  寄存器  缓存
PLC中CPU运行的数据是并行的吗?

CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码。 它把指令分解成一系列的微操作,然后发出各种控制命令,执行微操作系列,从而完成一条指令的执行。 指令是计算机规定执行操作的类型和操作数的基本命令。 指令是由一个字节或者多个字节组成,其中包括操作码字段、一个或多个有关操作数地址的字段以及一些表征机器状态的状态字以及特征码。 有的指令中也直接包含操作数本身。 提取  第一阶段,提取,从存储器或高速缓冲存储器中检索指令(为数值或一系列数值)。 由程序计数器(ProgramCounter)指定存储器的位置,程序计数器保存供识别目前程序位置的数值。 换言之,程序计数器记录了CPU在目前程序里的踪迹。 提取指令之后,程序计数器根据指令长度增加存储器单元。 指令的提取必须常常从相对较慢的存储器寻找,因此导致CPU等候指令的送入。 这个问题主要被论及在现代处理器的快取和管线化架构。 解码  CPU根据存储器提取到的指令来决定其执行行为。 在解码阶段,指令被拆解为有意义的片断。 根据CPU的指令集架构(ISA)定义将数值解译为指令。 一部分的指令数值为运算码(Opcode),其指示要进行哪些运算。 其它的数值通常供给指令必要的信息,诸如一个加法(Addition)运算的运算目标。 这样的运算目标也许提供一个常数值(即立即值),或是一个空间的定址值:暂存器或存储器位址,以定址模式决定。 在旧的设计中,CPU里的指令解码部分是无法改变的硬件设备。 不过在众多抽象且复杂的CPU和指令集架构中,一个微程序时常用来帮助转换指令为各种形态的讯号。 这些微程序在已成品的CPU中往往可以重写,方便变更解码指令。 执行  在提取和解码阶段之后,接着进入执行阶段。 该阶段中,连接到各种能够进行所需运算的CPU部件。 例如,要求一个加法运算,算数逻辑单元(ALU,ArithmeticLogicUnit)将会连接到一组输入和一组输出。 输入提供了要相加的数值,而输出将含有总和的结果。 ALU内含电路系统,易于输出端完成简单的普通运算和逻辑运算(比如加法和位元运算)。 如果加法运算产生一个对该CPU处理而言过大的结果,在标志暂存器里,运算溢出(ArithmeticOverflow)标志可能会被设置。 写回  最终阶段,写回,以一定格式将执行阶段的结果简单的写回。 运算结果经常被写进CPU内部的暂存器,以供随后指令快速存取。 在其它案例中,运算结果可能写进速度较慢,但容量较大且较便宜的主记忆体中。 某些类型的指令会操作程序计数器,而不直接产生结果。 这些一般称作“跳转”(Jumps),并在程式中带来循环行为、条件性执行(透过条件跳转)和函式。 许多指令也会改变标志暂存器的状态位元。 这些标志可用来影响程式行为,缘由于它们时常显出各种运算结果。 例如,以一个“比较”指令判断两个值的大小,根据比较结果在标志暂存器上设置一个数值。 这个标志可藉由随后的跳转指令来决定程式动向。 在执行指令并写回结果之后,程序计数器的值会递增,反覆整个过程,下一个指令周期正常的提取下一个顺序指令。 如果完成的是跳转指令,程序计数器将会修改成跳转到的指令位址,且程序继续正常执行。 许多复杂的CPU可以一次提取多个指令、解码,并且同时执行。 这个部分一般涉及“经典RISC管线”,那些实际上是在众多使用简单CPU的电子装置中快速普及(常称为微控制(Microcontrollers))。 编辑本段基本结构  CPU包括运算逻辑部件、寄存器部件和控制部件等。 运算逻辑部件  运算逻辑部件,可以执行定点或浮点的算术运算操作、移位操作以及逻辑操作,也可执行地址的运算和转换。 寄存器部件  寄存器部件,包括通用寄存器、专用寄存器和控制寄存器。 32位CPU的寄存器通用寄存器又可分定点数和浮点数两类,它们用来保存指令中的寄存器操作数和操作结果。 通用寄存器是中央处理器的重要组成部分,大多数指令都要访问到通用寄存器。 通用寄存器的宽度决定计算机内部的数据通路宽度,其端口数目往往可影响内部操作的并行性。 专用寄存器是为了执行一些特殊操作所需用的寄存器。 控制寄存器通常用来指示机器执行的状态,或者保持某些指针,有处理状态寄存器、地址转换目录的基地址寄存器、特权状态寄存器、条件码寄存器、处理异常事故寄存器以及检错寄存器等。 有的时候,中央处理器中还有一些缓存,用来暂时存放一些数据指令,缓存越大,说明CPU的运算速度越快,目前市场上的中高端中央处理器都有2M左右的二级缓存,高端中央处理器有4M左右的二级缓存。 控制部件  控制部件,主要负责对指令译码,并且发出为完成每条指令所要执行的各个操作的控制信号。 其结构有两种:一种是以微存储为核心的微程序控制方式; 一种是以逻辑硬布线结构为主的控制方式。 微存储中保持微码,每一个微码对应于一个最基本的微操作,又称微指令; 各条指令是由不同序列的微码组成,这种微码序列构成微程序。 中央处理器在对指令译码以后,即发出一定时序的控制信号,按给定序列的顺序以微周期为节拍执行由这些微码确定的若干个微操作,即可完成某条指令的执行。 简单指令是由(3~5)个微操作组成,复杂指令则要由几十个微操作甚至几百个微操作组成。 逻辑硬布线控制器则完全是由随机逻辑组成。 指令译码后,控制器通过不同的逻辑门的组合,发出不同序列的控制时序信号,直接去执行一条指令中的各个操作。 编辑本段发展历史  CPU这个名称,早期是对一系列可以执行复杂的计算机程序或电脑程式的逻辑机器的描述。 这个空泛的定义很容易在“CPU”这个名称被普遍使用之前将计算机本身也包括在内。 诞生  中央处理器(Intel)但从20世纪70年代开始,由于集成电路的大规模使用,把本来需要由数个独立单元构成的CPU集成为一块微小但功能空前强大的微处理器时。 这个名称及其缩写才真正在电子计算机产业中得到广泛应用。 尽管与早期相比,CPU在物理形态、设计制造和具体任务的执行上都有了戏剧性的发展,但是其基本的操作原理一直没有改变。 1971年,当时还处在发展阶段的Intel公司推出了世界上第一台真正的微处理器--4004。 这不但是第一个用于计算器的4位微处理器,也是第一款个人有能力买得起的电脑处理器。 4004含有2300个晶体管,功能相当有限,而且速度还很慢,被当时的蓝色巨人IBM以及大部分商业用户不屑一顾,但是它毕竟是划时代的产品,从此以后,Intel公司便与微处理器结下了不解之缘。 可以这么说,CPU的历史发展历程其实也就是Intel公司X86系列CPU的发展历程,就通过它来的“CPU历史之旅”。 起步的角逐  中央处理器(Intel)1978年,Intel公司再次领导潮流,首次生产出16位的微处理器,并命名为i8086,同时还生产出与之相配合的数学协处理器i8087,这两种芯片使用相互兼容的指令集,但在i8087指令集中增加了一些专门用于对数、指数和三角函数等数学计算的指令。 由于这些指令集应用于i8086和i8087,所以人们也把这些指令集中统一称之为X86指令集。 虽然以后Intel公司又陆续生产出第二代、第三代等更先进和更快的新型CPU,但都仍然兼容原来的X86指令,而且Intel公司在后续CPU的命名上沿用了原先的X86序列,直到后来因商标注册问题,才放弃了继续用阿拉伯数字命名。 至于在后来发展壮大的其他公司,例如AMD和Cyrix等,在486以前(包括486)的CPU都是按Intel的命名方式为自己的X86系列CPU命名,但到了586时代,市场竞争越来越厉害了,由于商标注册问题,它们已经无法继续使用与Intel的X86系列相同或相似的命名,只好另外为自己的586.686兼容CPU命名了。 1979年,Intel公司推出了8088芯片,它仍旧是属于16位微处理器,内含29000个晶体管,时钟频率为4.77MHz,地址总线为20位,可使用1MB内存。 8088内部数据总线都是16位,外部数据总线是8位,而它的兄弟8086是16位。 微机时代的来临  中央处理器(概念图)1981年,8088芯片首次用于IBM的PC(个人电脑PersonalComputer)机中,开创了全新的微机时代。 也正是从8088开始,PC的概念开始在全世界范围内发展起来。 早期的CPU通常是为大型及特定应用的计算机而订制。 但是,这种昂贵为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。 这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。 集成电路使得更为复杂的CPU可以在很小的空间中设计和制造出来(在微米的量级)。 1982年,许多年轻的读者尚在襁褓之中的时候,Intel公司已经推出了划时代的最新产品80286芯片,该芯片比8086和8088都有了飞跃的发展,虽然它仍旧是16位结构,但是在CPU的内部含有13.4万个晶体管,时钟频率由最初的6MHz逐步提高到20MHz。 其内部和外部数据总线皆为16位,地址总线24位,可寻址16MB内存。 从80286开始,CPU的工作方式也演变出两种来:实模式和保护模式。 中央处理器(AMD速龙64FX概念图)1985年,Intel公司推出了80386芯片,它是80X86系列中的第一种32位微处理器,而且制造工艺也有了很大的进步,与80286相比,80386内部内含27.5万个晶体管,时钟频率为12.5MHz,后提高到20MHz、25MHz、33MHz。 80386的内部和外部数据总线都是32位,地址总线也是32位,可寻址高达4GB内存。 它除具有实模式和保护模式外,还增加了一种叫虚拟86的工作方式,可以通过同时模拟多个8086处理器来提供多任务能力。 除了标准的80386芯片,也就是经常说的80386DX外,出于不同的市场和应用考虑,Intel又陆续推出了一些其它类型的80386芯片:80386SX、80386SL、80386DL等。 1988年,Intel推出的80386SX是市场定位在80286和80386DX之间的一种芯片,其与80386DX的不同在于外部数据总线和地址总线皆与80286相同,分别是16位和24位(即寻址能力为16MB)。 高速CPU时代的腾飞  1990年,Intel公司推出的80386SL和80386DL都是低功耗、节能型芯片,主要用于便携机和节能型台式机。 80386SL与80386DL的不同在于前者是基于80386SX的,后者是基于80386DX的,但两者皆增加了一种新的工作方式:系统管理方式。 当进入系统管理方式后,CPU就自动降低运行速度、控制显示屏和硬盘等其它部件暂停工作,甚至停止运行,进入“休眠”状态,以达到节能目的。 1989年,大家耳熟能详的80486芯片由Intel公司推出,这种芯片的伟大之处就在于它突破了100万个晶体管的界限,集成了120万个晶体管。 80486的时钟频率从25MHz逐步提高到了33MHz、50MHz。 80486是将80386和数学协处理器80387以及一个8KB的高速缓存集成在一个芯片内,并且在80X86系列中首次采用了RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。 它还采用了突发总线方式,大大提高了与内存的数据交换速度。 由于这些改进,80486的性能比带有80387数学协处理器的80386DX提高了4倍。 80486和80386一样,也陆续出现了几种类型。 上面介绍的最初类型是80486DX。 1990年,Intel公司推出了80486SX,它是486类型中的一种低价格机型,其与80486DX的区别在于它没有数学协处理器。 80486DX2由于用了时钟倍频技术,也就是说芯片内部的运行速度是外部总线运行速度的两倍,即芯片内部以2倍于系统时钟的速度运行,但仍以原有时钟速度与外界通讯。 80486DX2的内部时钟频率主要有40MHz、50MHz、66MHz等。 80486DX4也是采用了时钟倍频技术的芯片,它允许其内部单元以2倍或3倍于外部总线的速度运行。 为了支持这种提高了的内部工作频率,它的片内高速缓存扩大到16KB。 80486DX4的时钟频率为100MHz,其运行速度比66MHz的80486DX2快40%。 80486也有SL增强类型,其具有系统管理方式,用于便携机或节能型台式机。 CPU的标准化和小型化都使得这一类数字设备(香港译为“电子零件”)在现代生活中中央处理器(Intel)的出现频率远远超过有限应用专用的计算机。 现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。 编辑本段性能指标主频  主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。 CPU的主频=外频×倍频系数。 主频和实际的运算速度存在一定的关系,但并不是一个简单的线性关系。 所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。 在Intel的处理器产品中,也可以看到这样的例子:1GHzItanium芯片能够表现得差不多跟2.66GHz至强(Xeon)/Opteron一样快,或是1.5GHzItanium2大约跟4GHzXeon/Opteron一样快。 CPU的运算速度还要看CPU的流水线、总线等等各方面的性能指标。 外频  外频是CPU的基准频率,单位是MHz。 CPU的外频决定着整块主板的运行速度。 通俗地说,在台式机中,所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。 但对于服务器CPU来讲,超频是绝对不允许的。 前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。 目前的绝大部分电脑系统中外频与主板前端总线不是同步速度的,而外频与前端总线(FSB)频率又很容易被混为一谈。 前端总线(FSB)频率  前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。 有一条公式可以计算,即数据带宽=(总线频率×数据位宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。 比方,现在的支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。 中央处理器(Intel)外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。 也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一亿次; 而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8bit/Byte=800MB/s。 其实现在“HyperTransport”构架的出现,让这种实际意义上的前端总线(FSB)频率发生了变化。 IA-32架构必须有三大重要的构件:内存控制器Hub(MCH),I/O控制器Hub和PCIHub,像Intel很典型的芯片组Intel7501.Intel7505芯片组,为双至强处理器量身定做的,它们所包含的MCH为CPU提供了频率为533MHz的前端总线,配合DDR内存,前端总线带宽可达到4.3GB/秒。 但随着处理器性能不断提高同时给系统架构带来了很多问题。 而“HyperTransport”构架不但解决了问题,而且更有效地提高了总线带宽,比方AMDOpteron处理器,灵活的HyperTransportI/O总线体系结构让它整合了内存控制器,使处理器不通过系统总线传给芯片组而直接和内存交换数据。 这样,前端总线(FSB)频率在AMDOpteron处理器就不知道从何谈起了。 CPU的位和字长  中央处理器(德州仪器)位:在数字电路和电脑技术中采用二进制,代码只有“0”和“1”,其中无论是“0”或是“1”在CPU中都是一“位”。 字长:电脑技术中对CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。 所以能处理字长为8位数据的CPU通常就叫8位的CPU。 同理32位的CPU就能在单位时间内处理字长为32位的二进制数据。 字节和字长的区别:由于常用的英文字符用8位二进制就可以表示,所以通常就将8位称为一个字节。 字长的长度是不固定的,对于不同的CPU、字长的长度也不一样。 8位的CPU一次只能处理一个字节,而32位的CPU一次就能处理4个字节,同理字长为64位的CPU一次可以处理8个字节。 倍频系数  倍频系数是指CPU主频与外频之间的相对比例关系。 在相同的外频下,倍频越高CPU的频率也越高。 但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。 这是因为CPU与系统之间数据传输速度是有限的,一味追求高主频而得到高倍频的CPU就会出现明显的“瓶颈”效应-CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。 一般除了工程样版的Intel的CPU都是锁了倍频的,少量的如Intel酷睿2核心的奔腾双核E6500K和一些至尊版的CPU不锁倍频,而AMD之前都没有锁,现在AMD推出了黑盒版CPU(即不锁倍频版本,用户可以自由调节倍频,调节倍频的超频方式比调节外频稳定得多)。 缓存  缓存大小也是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。 实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。 但是由于CPU芯片面积和成本的因素来考虑,缓存都很小。 L1 Cache(一级缓存)是CPU第一层高速缓存,分为数据缓存和指令缓存。 内置的L1高速缓存的容量和结构对CPU的性能影响较大,不过高速缓冲存储器均由静态RAM组成,结构较复杂,在CPU管芯面积不能太大的情况下,L1级高速缓存的容量不可能做得太大。 一般服务器CPU的L1缓存的容量通常在32-256KB。 L2 Cache(二级缓存)是CPU的第二层高速缓存,分内部和外部两种芯片。 内部的芯片二级缓存运行速度与主频相同,而外部的二级缓存则只有主频的一半。 L2高速缓存容量也会影响CPU的性能,原则是越大越好,以前家庭用CPU容量最大的是512KB,现在笔记本电脑中也可以达到2M,而服务器和工作站上用CPU的L2高速缓存更高,可以达到8M以上。 L3 Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。 而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。 降低内存延迟和提升大数据量计算能力对游戏都很有帮助。 而在服务器领域增加L3缓存在性能方面仍然有显著的提升。 比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理的数据请求。 具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。 其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。 在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。 后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。 接着就是P4EE和至强MP。 Intel还打算推出一款9MBL3缓存的Itanium2处理器,和以后24MBL3缓存的双核心Itanium2处理器。 但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MBL3缓存的XeonMP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。 CPU扩展指令集  CPU依靠指令来自计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。 指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。 从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分(指令集共有四个种类),而从具体运用看,如Intel的MMX(MultiMediaExtended,此为AMD猜测的全称,Intel并没有说明词源)、SSE、SSE2(Streaming-Singleinstructionmultipledata-Extensions2)、SSE 3、SSE4系列和AMD的3DNow!等都是CPU的扩展指令集,分别增强了CPU的多媒体、图形图象和Internet等的处理能力。 通常会把CPU的扩展指令集称为”CPU的指令集”。 SSE3指令集也是目前规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。 CPU内核和I/O工作电压  从586CPU开始,CPU的工作电压分为内核电压和I/O电压两种,通常CPU的核心电压小于等于I/O电压。 其中内核电压的大小是根据CPU的生产工艺而定,一般制作工艺越小,内核工作电压越低; I/O电压一般都在1.6~5V。 低电压能解决耗电过大和发热过高的问题。

留言与评论(共有 0 条评论)
   
验证码:
Top