CPU基础知识拓展[5篇]

时间:2020-11-21 08:45:29下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《CPU基础知识拓展》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《CPU基础知识拓展》。

第一篇:CPU基础知识拓展

CPU 的全称是 Central Processing Unit,它是你的电脑中最硬核的组件,这种说法一点不为过。CPU是能够让你的计算机叫计算机的核心组件,但是它却不能代表你的电脑,CPU与计算机的关系就相当于大脑和人的关系。下面就让小编带你去看看CPU基础知识拓展,希望能帮助到大家!

程序优化:CPU缓存基础知识

CPU缓存

CPU缓存(CPUCache)的目的是为了提高访问内存(RAM)的效率,这虽然已经涉及到硬件的领域,但它仍然与我们息息相关,了解了它的一些原理,能让我们写出更高效的程序,另外在多线程程序中,一些不可思议的问题也与缓存有关。

现代多核处理器,一个CPU由多个核组成,每个核又可以有多个硬件线程,比如我们说4核8线程,就是指有4个核,每个核2个线程,这在OS看来就像8个并行处理器一样。

CPU缓存有多级缓存,比如L1, L2, L3等:

L1容量最小,速度最快,每个核都有L1缓存,L1又专门针对指令和数据分成L1d(数据缓存),L1i(指令缓存)。

L2容量比L1大,速度比L1慢,每个核都有L2缓存。

L3容量最大,速度最慢,多个核共享一个L3缓存。

有些CPU可能还有L4缓存,不过不常见;此外还有其他类型的缓存,比如TLB(translation lookasidebuffer),用于物理地址和虚拟地址转译,这不是我们关心的缓存。

下图展示了缓存和CPU的关系:

Linu__用下面命令可以查看CPU缓存的信息:

$ getconf-a | grep CACHE

LEVEL1_ICACHE_SIZE 32768

LEVEL1_ICACHE_ASSOC 8

LEVEL1_ICACHE_LINESIZE 64

LEVEL1_DCACHE_SIZE 32768

LEVEL1_DCACHE_ASSOC 8

LEVEL1_DCACHE_LINESIZE 64

LEVEL2_CACHE_SIZE 262144

LEVEL2_CACHE_ASSOC 8

LEVEL2_CACHE_LINESIZE 64

LEVEL3_CACHE_SIZE 31457280

LEVEL3_CACHE_ASSOC 20

LEVEL3_CACHE_LINESIZE 64

LEVEL4_CACHE_SIZE 0

LEVEL4_CACHE_ASSOC 0

LEVEL4_CACHE_LINESIZE 0

上面显示CPU只有3级缓存,L4都为0。

L1的数据缓存和指令缓存分别是32KB;L2为256KB;L3为30MB。

在缓存和主存之间,数据是按固定大小的块传输的 该块称为缓存行(cache line),这里显示每行的大小为64Bytes。

ASSOC表示主存地址映射到缓存的策略,这里L1,L2是8路组相联,L3是20路组相联,等一会儿再说是什么意思。

缓存结构

一块CPU缓存可以看成是一个数组,数组元素是缓存项(cache entry),一个缓存项的内容大概是这样的:

+-------------------------------------------+

| tag | data block(cache line)| flag |

+-------------------------------------------+

data block就是从内存中拷贝过来的数据,也就是我们说的cache line,从上面信息可知大小是64字节。

tag 保存了内存地址的一部分,是用来验证是否缓存命中的。

flag 是一些标志位,比如缓存是否失效,写dirty等等。

实际上LEVEL1_ICACHE_SIZE这个数据,是用data block来算的,并不包括tag和flag占用的大小,比如64 __ 512 =32768,表示LEVEL1_ICACHE_SIZE可以缓存512个cache line。

缓存首先要解决的问题是:怎么映射内存地址和缓存地址?比如CPU要检查一个内存值是否已经缓存,那么它首先要能算出这个内存地址对应的缓存地址,然后才能检查。

为了解决这个问题,缓存将内存地址分成下面几个部分:

+-------------------------------------------+

| tag | inde__ | offset |

+-------------------------------------------+

tag和缓存项中的tag对应,用来验证是否缓存命中的。

inde__ 缓存项数组中的索引。

offset 缓存块(cacheline)中的偏移,因为缓存块是64字节,而内存值可能只有4个字节,一个缓存块可以保存多个连续的内存值。这个offset实际上就是指明内存值在cacheline中的位置。

直接映射缓存

现在我们举一个具体的例子,说明内存和缓存是如何映射的:

假如缓存的大小是32768B(32KB),缓存块大小是64B,那么缓存项数组就有? 32768?/64=512 个。

CPU要访问一个内存地址0__1CAABBDD?,它首先检查这个内存地址是否在缓存中,检查过程是这样的:

内存地址的二进制形式是(低位在前面):

| tag | inde__ | offset |

0 0 0 1 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1

先计算内存在cacheline中的偏移,因为缓存块是64字节,那么offset需要占6位(2^6=64),即offset=011101=29。

接着要计算缓存项的索引,因为缓存项数组是512个,所以inde__需要占9位(2^9=512),即inde__=011101111=239。

现在我们通过offset和inde__已经找到缓存块的具体位置了,但是因为内存要远比缓存大很多,所以多个内存块是可以映射到同一个位置的,怎么判断这个缓存块位置存的就是这个内存的值呢?答案就是tag:内存地址去掉inde__和offset的部分,剩下的就是tag=***01=0__3955。

通过inde__找到缓存项,比较缓存项中的tag是否与内存地址中的tag相同,如果相同表示命中,就直接取缓存块中的值;如果不同表示未命中,CPU需要将内存值拷贝到缓存(替换掉老的)。

这种映射方式就称为直接映射(Directmapped),它的缺点就是多个内存地址会映射到同一个缓存地址,拿上面的内存地址来看,只要offset和inde__相同的内存地址,就一定会映射到同一个地方,比如:

***00 011101111 011101

***10 011101111 011101

***11 011101111 011101

如果同时访问上面3个地址,就会一直替换缓存的值,也就是一直出现缓存冲突,这可能比没有缓存还要慢,因为除了访问内存外,还多一个拷贝内存值到缓存的操作。

N路组相联

为了解决上面的问题,我试着把缓存项数组分成2个数组(2路),比如分成2个256的数组,如下图所示:

查找过程和上面其实一样的:

先通过inde__找到数组索引,只不过因为是2路,所以存在2个数组。

然后通过内存tag依次比较2个缓存顶的tag,如果其中一个tag相等,说明这个数组缓存命中;如果两个都不相等,说明缓存不命中,CPU会拷贝内存值到缓存中,但是现在有2个位置,要拷贝进哪个呢?我的理解CPU应该是随机选1路拷贝。

offset这个其实无关紧要,因为它是cache line中的偏移。

那这个和直接映射相比,好在哪里呢,因为一个内存值会随机拷贝到2路中的1个,所以缓存冲突(多个内存地址映射到同一个缓存地址)的概率会降低一半;如果把缓存项数组分成4个数组,这就是4路组相联。

上面LEVEL1_ICACHE_ASSOC的值等于8,表明是8路组相联。分组越多,缓存冲突率越低,但是CPU要遍历的数组就越多,这是一个权衡的问题。

通过观察也可以发现,其实直接映射就是1路组相联。如果直接分成512个数组,那每个数组只有1项,这种就是全相联,CPU直接遍历512个数组,判断内存地址在哪1个。

缓存分配策略和更新策略:

当CPU从内存读数据时,如果该数据没有在缓存中(cache miss),CPU会把数据拷贝到缓存。

当CPU往内存写数据时:

如果缓存缺失,CPU会先从内存拷贝数据到缓存,然后再更新缓存的数据。

CPU更新缓存数据,也可能有多个策略:

直接写(write through):更新缓存的数据,同时更新内存的数据。

写回(write back):只更新缓存的数据,同时在缓存项设置一个drity标志位,内存的数据只会在某个时刻更新(比如替换cacheline时)。

从上面描述我们知道,当我们向一个内存写数据时,内存中的数据可能不马上被更新,这个新数据可能还在cacheline呆着。因为每个核都有自己的缓存,如果CPU不做处理,可以想象一定会出问题的:比如核1改了数据,核2去读同一个数据,此时数据还在核1的缓存中,核2读到的就是老的数据。CPU为了处理多核间的缓存同步,那是相当的复杂。

《装机小知识-CPU篇》

首先给大家讲一下,本次内容主要给大家普及一下购机DIY知识,不做深层讲述(讲了小白也不懂),只求做到简单化明了化,给您一个明确的DIY购机思路,选择适合你自己的一台电脑,而不是3000进吧1万带回家用几年却只发挥了2000的性能。

CPU最重要的几个参数,制程,架构,主频,核心,缓存。以及支持几代的内存和是否有核心显卡。支持的内存肯定是越新越好,内存方面的我们在内存一栏详细讲诉

核心显卡这里简单先讲了,目前intel目前最高级别的核心显卡UHD630,水平在独立显卡GT730的档次(略高一点)。日常办公,平面设计,家庭影音,都没有问题,DNF,梦幻西游,LOL以及各种网页游戏都能玩。核心显卡在你使用两条内存组双通的情况下性能会有较大提升,所以你想节约预算又只玩小型游戏比如LOL就可以考虑组个双通内存就可以了,可以做到高特效流畅。具体表现可以 点击此处 观看测试视频(AMD最新一代核显强于intel核显)

接下来我们就讲CPU最主要的核心参数。

制程:制程越小代表着同一大小芯片上可以做更多晶体管,提高性能降低功耗(功耗越高耗电越多发热量越大,CPU温度上升性能寿命会下降,所以功耗很重要),制程越小每个芯片可以有更多的流水线或者是更多的核心。从第六代酷睿开始intel就一直使用14nm制程工艺,包括最新的9代酷睿,也是14nm的,而AMD二代锐龙是12nm制程工艺,另外可能大家也看到过华为麒麟980宣传的7nm以及台积电公布的突破5nm量产工艺。为什么intel就一直不更新制程工艺,实际上个人觉得主要有两个方面。

1:intel是自建生产线,只生产自己家产品,如果换制程那么生产线基本要重建,然而14nm的生产线才刚建没几年,实在没想到芯片制程工艺突破如此迅速。因为台积电是代工生产芯片,所以他的核心竞争力就是要更高端精密的制程工艺,才有更多厂家找他代工。

2:intel得益于自身架构的优化以及芯片的稳定性,即便是14nm制程的芯片功耗也不高。尤其是用在台式机上,中低端主流的i3 i5一般散热器都能压住,至于高端超频系列的CPU,好一点的散热器也没有问题。在2017年以前intel在PC芯片都是出于垄断地位,可能觉得自己不需要这么着急突破,挤挤牙膏就算更新迭代了,所以更新制程带来的低功耗,高性能在当时的intel看来不是那么急切需要提高,殊不知自己的不思进取给了AMD很多的时间来打一个翻身仗。。又或者intel早已开发7nm级别的PC芯片,只是藏大招没拿出来而已。不过就这次AMD抢走一半市场以后intel的9代处理器还是14nm,还是加核心的手段看起来又不像有大招。哎神仙打架我们关切个什么呢。总之现在,电脑处理器14nm没有任何问题,不必拿制程说事。

PS:相比PC处理器,手机处理器就需要更小的制程来达到高度集成的效果,降低功耗提升性能,增加续航。所以目前最新制程的处理器都是用在了手机上面。

架构:架构这个属于研发,很复杂,而且对装机没有太多的帮助,因为新的CPU架构都是进一步优化,且产品统一采用的都是新架构,通常都会比原架构更优秀,值得一提的就是intel与AMD虽然都是基于__86指令集研发的架构,但是intel比AMD更稳定的原因主要就在于架构上的优势(仅限目前,且差距一直在缩小)架构其实是处理器性能非常重要的指标,只是统一性很高,对比又很少所以电脑普通用户没有必要深究。

主频(不是越高越好):主频是直接表现CPU性能的参数之一,但是以目前的工艺水平,主频不会有更大突破,上线基本会在4G-5GHz,Intel/AMD两大CPU厂商均将提升性能的手段放在多核心上。主要还是因为CPU频率越高,功耗及发热就会越高,散热就会是个问题,温度过高寿命及稳定性和性能都会大打折扣。频率更能反映单核的性能,目前仍然有很多软件是只支持单线程工作的,所以对于这类用户对频率的选择比重更大,比如现在销量很高的I58400主频只有2.8Ghz,如果让它工作只支持单线程的软件,这个时候你会发现,只有1个核心占用,剩下的5个核心占用为0。效果可能还不如i38100的3.6Ghz。

有部分机友对于我这个论断不满意,觉得贬低了8400(其实下文也有为8400正名),这里我主要想表达的是频率与单核的关系,当然我自己也忽略了一个问题就是I38100没有睿频,所以部分机友就拿8400的睿频来说体验效果是高于8100的,但是兄弟们,你们抓错方向了。

i5 8400 基础2.8G 睿频 1核4G 2核3.9G 3核3.9G 4核3.9G 5核3.8G 6核3.8G

这是理论最高值,条件满足能够达到,也的确是比I3 8100强,两款CPU本来也不是一个档次的,但是注意用词,我说的是可能不如I38100,因为睿频不可控,板载平台,供电,散热,CPU体质,实际载荷等等很多都影响着睿频,也有很多人的8400就是到不了3.8,只有3.2-3.3,你让他换个主板还是换个电源,而且睿频需要高负载情况下才有,那非高负载的程序呢?这样写的本质是在讲述频率与单核,基础频率一样很重要。请不要忽视。

但是i58400是六核六线程的多核处理器,解决支持多核多线程的软件即便主频较低,将处理任务分摊给多个核心来工作,那么单核就不需要那么高的性能也能游刃有余的完成任务。就好比一个人1秒能算10次,2个人每人1秒能算7次,对于支持多线程软件来说,同样给你1s我两个人可以算14次,而你还是只能10次。如果是只支持单线程的软件的话,来来来,算10次那个人,给你发朵小红花。

不过虽然8400主频是2.8GHz但毕竟i5,单核性能也不会很差,i5 8400总性高出i3 810040%左右。往后发展游戏多核将更为普遍,各类大型软件基本也会往支持多线程开发。购机前请先了解自己常用的软件是否对单核性能有较高的要求比如PS。如果是小型软件这些即便只支持单核也可以忽略掉,现在的CPU处理起来都没有问题。如果你有钱也很任性,选I78700K或者I9 9900K 超到5G大小通吃也是可以的。

关于频率选择,常见的以下几种,普通用户就看主频和睿频即可。

主频:CPU工作默认频率。

睿频:CPU高负载运行下,智能调节频率高于基础频率,达到提高CPU性能的目的(智能可控)

超频:玩家自己通过主板BIOS设定CPU频率和电压高于基础频率或者睿频频率,达到提高CPU性能的目的(超频有风险,烧毁无质保,一般超频到5GHz,好一点的水冷能压住。极度超频实用性不大,降温成本太高,不少厂商展示的时候用的都是液氮降温,只有部分CPU支持超频比如intel酷睿尾缀代K和AMD锐龙尾缀带__的。)

核心/线程(不是越多越好):上面讲主频的时候其实就已经讲到核心,总的来说核心要参考单核性能和多核性能,多核虽好,但不一定适合你,还要根据使用需求,平时就上网看电影 用办公软件啥的买个I7 8700K也没什么用,体验基本和i3 8100一样。如果你喜欢玩大型游戏或者工作上用PS AE PR分析软件之类的,多核对你来说就很重要了。核心越多同一时间数据处理能力越强。

超线程:比如8核16线程的I9 9900K相较于8核I7 9700K,前者为拥有超线程技术的CPU。I79700K处理任务时,共8核心,一个核心一条线程,如果任务没有占满核心性能,那么这个核心剩余性能就闲置了,如果又来一个任务就只能用第二颗核心或者等任务处理完了再进行下一个任务。I99900K处理任务时,一个核心两条线程,如果任务没有占满核心性能,又来一个任务,那么就会用该核心的剩余性能进行处理,而不是用第二颗核心来处理,达到同时处理更多任务的目的,提高效率。

超线程是利用特殊的硬件指令一核模拟双核运行,但还是不如双核来的实际有用,核心数量才是性能标杆,超线程仅提高了CPU核心的使用效率,不能直接提升核心性能,也就是说如果数据计算已经吃满所有核心那么超不超线程都没有实际意义。超线程CPU用在仅支持单线程的程序上可能还达不到不带超线程功能的CPU性能,但性能差距也不会太大。超线程会大幅提高跑分数据(跑分没什么卵用)。

低端的超线程U比如G4560G5400很好用,效果提升显著,因为核心少,超线程的话恰好能满足日常需求,因为现在电脑操作越来越快,同时下达的任务可能会好几个(比如看直播的同时下载电影然后又在挂游戏,微信,QQ在视频语音什么的)。以前低端的双核的CPU现在已经不适用了不能同时处理这么多任务,所以在G4560把超线程用上过后,直接解决了这个问题,性能及体验直逼i37100价格却只有其一半,被大家奉为神U。高端的CPU从酷睿八代或者锐龙1代开始核心就已经增多,正常使用情况下6核基本已经足够了,超不超线程的体验差距已经不大,高端超线程U比如I78700K9900K在程序游戏多开的情况下效果比较好(这里多开是指同时开几个大型游戏或者几十个小型游戏或手游挂机这种),或者数据建模,大型工程分析关键,视频渲染也是比较占优势的。

目前大多主流游戏做的都是双核或者四核处理,新一点的游戏有的做到六核处理,如果你买电脑玩游戏,追求八核十六线程也没有用,仅有部分核心能用到。游戏体验和i5没有差别(多开除外)。

缓存(越大越好):缓存是一个很重要的参考指标,缓存分一级缓存 二级缓存三级缓存,都集成在CPU上,容量都是越大越好,一级缓存级别最高,容量相比最小。CPU缓存相当重要,与CPU同频运行,远高于内存频率,CPU读取数据时一级二级三级依次读取,待三级缓存都没有的数据才从内存中调取,每级缓存命中概率都在80%左右,所以要从内存调用的数据其实是很少的,由于缓存速度远高于内存,所以缓存越大越能在使用过程中存放更多的数据,降低CPU调用数据的时间,提高执行效率,直接反应在使用体验上就是速度快。比如很多朋友升级CPU过后明显觉得速度快了很多,用在单核小程序上也是,以为是处理器性能增加的原因,其实还有很重要的原因是缓存增加了的原因。三级缓存对游戏体验效果比较明显。

这里推荐一下适用于各种需求的CPU

办公 上网 炒股 影音 家用 2D游戏 页游 回合游戏

建议1000-1500预算:G4560G5400的核显机就已经足够使用了,单条内存4G,配个固态提高效率。如果加独显最高加到1050TI这样级别的显卡,玩LOL DOAT 吃鸡中档特效及各类大型游戏也没有问题。详细看此测评,视频只看CPU占用,测评的是1030和1050,并非1050TI,只是给大家看一下G4560这样的CPU玩吃鸡占用也没有占满

如往上升可以加到2000-3000元预算:I3 8100 I5 84008500酷睿的核显主机在组双通的内存的情况下可以做到高特效流畅玩LOL。因CPU的性能大幅闲余所以后期升级可以直接加一个高端独立显卡I3+1060,而I5最高建议加到2070,就能玩更高级的游戏开高特效甚至满特效。(如果确定后期要升独显,建议再组核显机的时候就把电源配高一点。)

主玩各类网游及各类单机游戏

建议3000-6000预算:I3 8100 I5 8400 8500 R5 2600(考虑价格,排名为推荐先后),独显选1050TI或10606G或同级别A卡。如果对大型游戏特效画质要求较高,显卡可以升到1070TI 或者2070 或者更高,预算在6000以上。

PS AE PR AI或者工程分析软件,建模等需要大量数据运算的工作需求

建议6000-8000预算:R5 2600__ I5 8600K I5 9600K I5 8500 I79700K(考虑价格,排名为推荐先后),如若对游戏需求不大顶多配个1050TI,充一下4G显存,内存16G起,提高你的工作效率。该级别处理器也可用于普通直播及LOL直播。预算充足可往上升R7 2700__ I78700K I9 9900K等。

如主要工作是做视频,广告,影视,需频繁长时间渲染高质量长视频,大型模型应力分析软件,大型网游及单机游戏直播。

建议1W-1.5W预算 R7 2700__ I7 8700K I7 8700 I9 9900K(考虑价格,排名为推荐先后)。

若预算充足还可以2W以上预算 升AMD Ryzen ThreadRipper系列或者intel 酷睿I9__系列甚至双路,因为分析软件的计算需求是没有上线的。

以上为本人收集知识编写推荐,若有不严谨的地方还请各位多多包涵并提出改正。感谢各位观看,有不一样想法的朋友也欢迎留言提出,文明交流。

电脑硬件入门——基础之CPU架构解读1、9900K整体架构

还是先看图[1]:

9900K整体架构图

9900K大概可以分为5个部分:

CPU核心:图中红框部分为一个核心,9900K一共有8个核心。早期的CPU其实就只有这么一个东西,但现在的CPU逐步发展,把一些周边的部件也集成在同一块半导体晶片上,因此传统的CPU就变成了现代CPU上的核心。此外,为了提高CPU的计算能力,单块CPU中的核心数量越来越多,就消费级市场来说,从2005第一款双核心CPU奔腾D发布到今天的单块CPU晶片有8个核心的i9-9900K。

三级缓存(Level 3 Cache,简写为L3、L3$、L3C、L3Cache):图中中间8个粉色块组成的三级缓存,用于临时存放内存中的一小部分数据。这里分成8小块,对应8个CPU核心。有时候L3也叫末级缓存(LastLevelCache,LLC),当然,对9900K这样具有三级缓存的CPU,L3才等同于LLC。有的老式CPU有的只有二级缓存,LLC就是L2;某些服务器使用的CPU有四级缓存,LLC则是指L4。

核心显卡:图中左边紫框部分,这个以后的文章中我们再介绍。

系统代理:图中右边绿色部分,这是负责连接CPU与其它部件的多个模块的集合。从上到下分别是:

显示控制器:负责核心显卡输出;

PCI-e控制器:负责CPU与外部IO设备连接,以后的文章我们会另外介绍;

eDRAM控制器:这个其实9900K是没有的,某些定制型号会集成有特殊的内存,称为嵌入式动态随机访问存储(Embedded DynamicRandom-Access Memory, eDRAM)。一般来说eDRAM是作为核心显卡的专用显存使用,这个控制器就是负责从eDRAM读写数据的。

内存控制器:负责CPU与内存连接,从内存中读写数据。

环形总线(RingBus):把上面这些模块连接起来的,上图中标记着Ring的蓝色圈。

2、核心架构图

这张图看起来很复杂是不是?不用担心,我们一个一个说。当然,我们这是入门知识,不会介绍的太细。

我们上一篇文章提到,现代CPU都是改进型哈弗架构;并且举了一个会计做财务报告的例子。这里我们继续使用这个例子来介绍。但之前,我们稍微改一下做财务报告的方式,不是一个人全部做完,我们是一个团队。有的同事根据制作指南列计算步骤,有的同事根据计算步骤在小纸条上列公式,有的同事负责从账本上把数据抄到写好公式的小纸条上,有的同事对着小纸条用计算器算数并且算完了写回小纸条上,有的同事把小纸条上的数抄到最终的财务报表上。CPU里面,小纸条有一个专门的名称,叫寄存器(Register)。

2.1 缓存子系统(Memory Subsystem)

一家规模比较大点的企业,完整的账本很厚。我们做整年的财务报告,通常只需要每个科目的汇总数就可以了,为了方便,我们把每个科目汇总的那几页复印出来放在一起。

完整的财务报告制作指南也很厚,但一个企业可能只有其中很少一部业务。例如一家软件公司,就不涉及原材料进货、仓库存储之类的业务;很多公司也没有贷款、投资之类的业务。所以我们也只把跟公司有相关业务的部分复印出来。

同样的,内存中的数据很多,CPU只需要把计算用到的指令、数据放到缓存中——也就是图中的紫色块的缓存子系统。

2.2 前端(Front End)

CPU的前端其实就是我们上篇文章中的控制单元,负责对指令进行预处理。指令预处理大体上分为取指、预解码、融合、解码、分支预测、重排等操作。

取指(Fetch)

我们制作财务报表,第一步就是把制作指南拿出来。CPU也一样,先把指令载入进来。

预解码(PreDecode)

制作指南是一整页的,我们要分解出第一步算哪个数据,第二步又是算哪个数据,在小纸条上把公式列出来,一张小纸条一个公式。CPU也一样,要把程序中一整批的指令数据,拆分出来第一条是什么指令,第二条是什么指令;可能还需要对指令进行分类标志。预解码后的指令放在指令队列(InstructionQueue)里面。

解码(Decode),又称为译码

小纸条上的公式写着:利润=收入-支出,查帐本的同事就需要先把收入和支出数据从账本中找出来,抄到小纸条上。同样的,CPU碰到类似把内存中两个数加起来这样的指令,需要分解成:

从内存载入第一个数字;

从内存载入第二个数字;

两个数字相加

这样三个指令。一般来说,我们把原始的指令称为宏操作(Macro-Operations),分解后的指令称为微操作(Micro-Operations,μops)。

指令融合(Micro-Fusion/Macro-Fusion)

假设指南中有一个数据是算平均数的,某个按计算器的同事手上整好有一个可以直接算平均数的统计用计算器。那么,当我们在指南中看到一条类似

这样的公式的时候,我们可以直接列算这几个数的平均数公式,注明给这位同事算。CPU也一样,某些指令是可以融合起来执行的,例如:

比较A和B的大小;

如果A不等于B,跳转到标志__的指令。

可以用一条指令JNEA,B,__来代替,这样的处理称之为指令融合。指令解码前的宏操作融合,称为Macro-Fusion,解码后的微操作融合,称为Micro-Fusion。

分支预测(Branch Prediction)

理论上,制作指南中列出的所有步骤,我们都要完成上面的这些处理。但假设制作指南中说,盈利的话要算某几个数据,亏损的话这几个数不用算,要另外算其它几个数据。当我们计算过第一季度的数据知道企业第一季度是盈利的,我们算第二季度的数据时,想偷懒就直接跳过亏损要算的那几个数据的处理了。CPU处理指令也是一样的,负责预测的模块叫分支预测器(BranchPredictor)

当然,如果算下来我们发现第二季度亏损了,还是要重新处理指南上的这些计算步骤。CPU也一样。

指令重排,或者叫乱序执行(Out-Of-Order,OOO),或者动态执行(Dynamic E__ecution)

事实上,我们不一定要完全按照指南上的步骤第一步算什么,第二步算什么这样算。只要公式列出来,数据抄出来了,就可以直接交给按计算器的同事去算。所以可能第一步要用的数据不太好找,按计算器的同事就先把第二步算出来了。

当然,这里有一个前提,就是算第二步的时候,不需要用到第一步的计算结果。

2.3 执行单元(E__ecution Engine)

执行单元也就是上一篇文章提到的运算单元了。也就是我们这个团队里抄数据、按计算器的各位同事了。其中,按计算器的同事中,有的用的计算器简单点,只能做四则计算,还只能算整数;有的用高级点的计算器,可以算小数;有的用统计专用的计算器;有的用更高级的可以算很多函数的计算器。当然,有这么多不同的计算器,什么样的小纸条给哪位同事用,我们也需要有一个人来做分配小纸条这件事情。

数据存取单元(Load Data/Store Data)

CPU里面也一样,有负责从缓存子系统中载入数据的Load Data单元;有把计算结果写回去缓存子系统的Store Data单元。

计算单元

CPU里面负责具体计算的,根据计算类型、计算的数据不同,有多种计算单元:

整数算术逻辑单元(Integer Arithmetic Logic Unit,IntALU),算整数加减法/二进制运算;需要说明一下的,电脑里面很多小数计算也是通过移位操作处理后,用整数单元计算后再数小数位这样的方式来处理的。

整数乘法器(Integer Multiplier,Int MUL),专门负责整数乘法的;

整数除法器(Integer Divider,Int DIV),专门负责整数除法的;

分支处理(Branch),负责各种跳转指令的;

地址生成器(Address GenerationUnit,AGU),这个稍微解释一下,例如制作指南中说,总收入要和上一年度的总收入对比算增长率,那么就需要翻译成“现在做2018年的年报,上一年度就是2017年度总收入”。CPU也是一样,有的指令是把内存地址A1的数和A1后面第五个地址的数相加,那么要先算出来A1后面五个地址A2到底是哪个地址。

整数向量ALU(Int Vect ALU),向量是指类似空间坐标+值(__,y,z,value)这样的一组数据,其中__、y、z和value都是整数。类似整数,除了算加减法/二进制的整数向量ALU,还有整数向量乘法器、除法器(Int VectMUL,Int Vect DIV)。

浮点向量加乘融合单元(Fused multiply–add,FP FMA),这个也要解释一下。我们知道,105可以写成这样的形式,这种形式在计算机中称为浮点数。上面提到向量中,如果(__,y,z,value)中的一个或者多个都是浮点,就是浮点向量。而加乘融合,是指

这样的计算,当然,可以算加乘融合的,自然也可以用来算加减法和乘法:A=0就是乘法,C=1就是加减法。

浮点除法单元(FP DIV):算浮点除法的,也可以算一些常用函数例如开方、对数等。

其它:例如加密用的AES,字符串处理的Vect String,位查找的bit Scan(对一个二进制数据按照多种方法数0)

调度器(Scheduler)

有这么多不同的计算单元,CPU需要一个把不同的计算指令分配给对应计算单元的调度器。

不过呢,我们这个财务部比较特殊,分了几个小办公室,某几个同事在一个办公室里面,另外几个同事又在另一个办公室里面,而每次我们只能传一张小纸条到一个办公室。

在9900K里面,从图中可以看到,不同的计算单元在不同的端口(Port)下,就是类似的情况。

寄存器文件(Register File)

计算财务数据的时候,很多数据的计算是需要多步计算的,具体到每一步的计算,可能要分给不同的同事来算。如果每一步列一张小纸条,等某位同事算完第一个数,再抄到第二张小纸条给另外一位同事,这显然很慢很麻烦——直接列在一张小纸条上就好了嘛。

另外,我们有这么多同事,分配小纸条的同事每次传小纸条可以一次分配好多张——当然,前提是分给不同的同事。

因为可能一张纸条要算好几次,又有这么多纸条传来传去,因此为了不出错,我们需要标明这张小纸条给谁算,算完了,负责分配小纸条的同事根据下一步要算的,把标注的名字改一下给另外一位同事去算。

CPU中的寄存器也一样,一个数据可能需要不同的计算单元多次处理,又有那么多的计算单元分成了好几组。所以我们需要多个寄存器,这些寄存器的组合称之为寄存器文件。每个计算单元只能处理特定名称的寄存器里面的数据,因此调度器经常需要对寄存器进行分配、重命名、退出等操作

第二篇:CPU基础知识

CPU的英文全称是(Central ProcessingUnit),中文意思翻译中央处理器,是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。下面就让小编带你去看看CPU基础知识大全,希望能帮助到大家!

关于 CPU 的一些基本知识总结

CPU是计算机的大脑。

1、程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。

当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单的理解为CPU要知道这是什么指令),然后执行该指令。再然后取下一个指令、解码、执行,以此类推直到程序退出。

2、这个取指、解码、执行三个过程构成一个CPU的基本周期。

3、每个CPU都有一套自己可以执行的专门的指令集(注意,这部分指令是CPU提供的,CPU-Z软件可查看)。

正是因为不同CPU架构的指令集不同,使得__86处理器不能执行ARM程序,ARM程序也不能执行__86程序。(Intel和AMD都使用__86指令集,手机绝大多数使用ARM指令集)。

注:指令集的软硬件层次之分:硬件指令集是硬件层次上由CPU自身提供的可执行的指令集合。软件指令集是指语言程序库所提供的指令,只要安装了该语言的程序库,指令就可以执行。

4、由于CPU访问内存以得到指令或数据的时间要比执行指令花费的时间长很多,因此在CPU内部提供了一些用来保存关键变量、临时数据等信息的通用寄存器。

所以,CPU需要提供 一些特定的指令,使得可以从内存中读取数据存入寄存器以及可以将寄存器数据存入内存。

此外还需要提供加法、减、not/and/or等基本运算指令,而乘除法运算都是推算出来的(支持的基本运算指令参见ALUFunctions),所以乘除法的速度要慢的多。这也是算法里在考虑时间复杂度时常常忽略加减法次数带来的影响,而考虑乘除法的次数的原因。

5、除了通用寄存器,还有一些特殊的寄存器。典型的如:

PC:program counter,表示程序计数器,它保存了将要取出的下一条指令的内存地址,指令取出后,就会更新该寄存器指向下一条指令。

堆栈指针:指向内存当前栈的顶端,包含了每个函数执行过程的栈帧,该栈帧中保存了该函数相关的输入参数、局部变量、以及一些没有保存在寄存器中的临时变量。

PSW:program statusword,表示程序状态字,这个寄存器内保存了一些控制位,比如CPU的优先级、CPU的工作模式(用户态还是内核态模式)等。

6、在CPU进行进程切换的时候,需要将寄存器中和当前进程有关的状态数据写入内存对应的位置(内核中该进程的栈空间)保存起来,当切换回该进程时,需要从内存中拷贝回寄存器中。即上下文切换时,需要保护现场和恢复现场。

7、为了改善性能,CPU已经不是单条取指-->解码-->执行的路线,而是分别为这3个过程分别提供独立的取值单元,解码单元以及执行单元。这样就形成了流水线模式。

例如,流水线的最后一个单元——执行单元正在执行第n条指令,而前一个单元可以对第n+1条指令进行解码,再前一个单元即取指单元可以去读取第n+2条指令。这是三阶段的流水线,还可能会有更长的流水线模式。

8、更优化的CPU架构是superscalar架构(超标量架构)。这种架构将取指、解码、执行单元分开,有大量的执行单元,然后每个取指+解码的部分都以并行的方式运行。比如有2个取指+解码的并行工作线路,每个工作线路都将解码后的指令放入一个缓存缓冲区等待执行单元去取出执行。

9、除了嵌入式系统,多数CPU都有两种工作模式:内核态和用户态。这两种工作模式是由PSW寄存器上的一个二进制位来控制的。

10、内核态的CPU,可以执行指令集中的所有指令,并使用硬件的所有功能。

11、用户态的CPU,只允许执行指令集中的部分指令。一般而言,IO相关和把内存保护相关的所有执行在用户态下都是被禁止的,此外其它一些特权指令也是被禁止的,比如用户态下不能将PSW的模式设置控制位设置成内核态。

12、用户态CPU想要执行特权操作,需要发起系统调用来请求内核帮忙完成对应的操作。其实是在发起系统调用后,CPU会执行trap指令陷入(trap)到内核。当特权操作完成后,需要执行一个指令让CPU返回到用户态。

13、除了系统调用会陷入内核,更多的是硬件会引起trap行为陷入内核,使得CPU控制权可以回到操作系统,以便操作系统去决定如何处理硬件异常。

关于CPU的基本组成1、CPU是用来运算的(加法运算+、乘法运算__、逻辑运算and not or等),例如c=a+b。

2、运算操作涉及到数据输入(input)、处理、数据输出(output),a和b是输入数据,加法运算是处理,c是输出数据。

3、CPU需要使用一个叫做存储器(也就是各种寄存器)的东西保存输入和输出数据。以下是几种常见的寄存器(前文也介绍了一些)

MAR: memory address register,保存将要被访问数据在内存中哪个地址处,保存的是地址值

MDR: memory data register,保存从内存读取进来的数据或将要写入内存的数据,保存的是数据值

AC: Accumulator,保存算术运算和逻辑运算的中间结果,保存的是数据值

PC: Program Counter,保存下一个将要被执行指令的地址,保存的是地址值

CIR: current instruction register,保存当前正在执行的指令

4、CPU还要将一些常用的基本运算工具(如加法器)放进CPU,这部分负责运算,称为算术逻辑单元(ALU, Arithmetic LogicUnit)。

5、CPU中还有一个控制器(CU, Control Unit),负责将存储器中的数据送到ALU中去做运算,并将运算后的结果存回到存储器中。

控制器还包含了一些控制信号。

5、控制器之所以知道数据放哪里、做什么运算(比如是做加法还是逻辑运算?)都是由指令告诉控制器的,每个指令对应一个基本操作,比如加法运算对应一个指令。

6、例如,将两个MDR寄存器(保存了来自内存的两个数据)中的值拷贝到ALU中,然后根据指定的操作指令执行加法运算,将运算结果拷贝会一个MDR寄存器中,最后写入到内存。

7、这就是冯诺依曼结构图,也就是现在计算机的结构图。

关于CPU的多核和多线程

1、CPU的物理个数由主板上的插槽数量决定,每个CPU可以有多核心,每核心可能会有多线程。

2、多核CPU的每核(每核都是一个小芯片),在OS看来都是一个独立的CPU。

3、对于超线程CPU来说,每核CPU可以有多个线程(数量是两个,比如1核双线程,2核4线程,4核8线程),每个线程都是一个虚拟的逻辑CPU(比如windows下是以逻辑处理器的名称称呼的),而每个线程在OS看来也是独立的CPU。

这是欺骗操作系统的行为,在物理上仍然只有1核,只不过在超线程CPU的角度上看,它认为它的超线程会加速程序的运行。

4、要发挥超线程优势,需要操作系统对超线程有专门的优化。

5、多线程的CPU在能力上,比非多线程的CPU核心要更强,但每个线程不足以与独立的CPU核心能力相比较。

6、每核上的多线程CPU都共享该核的CPU资源。

例如,假设每核CPU都只有一个“发动机”资源,那么线程1这个虚拟CPU使用了这个“发动机”后,线程2就没法使用,只能等待。

所以,超线程技术的主要目的是为了增加流水线(参见前文对流水线的解释)上更多个独立的指令,这样线程1和线程2在流水线上就尽量不会争抢该核CPU资源。所以,超线程技术利用了superscalar(超标量)架构的优点。

7、多线程意味着每核可以有多个线程的状态。比如某核的线程1空闲,线程2运行。

8、多线程没有提供真正意义上的并行处理,每核CPU在某一时刻仍然只能运行一个进程,因为线程1和线程2是共享某核CPU资源的。可以简单的认为每核CPU在独立执行进程的能力上,有一个资源是唯一的,线程1获取了该资源,线程2就没法获取。

但是,线程1和线程2在很多方面上是可以并行执行的。比如可以并行取指、并行解码、并行执行指令等。所以虽然单核在同一时间只能执行一个进程,但线程1和线程2可以互相帮助,加速进程的执行。

并且,如果线程1在某一时刻获取了该核执行进程的能力,假设此刻该进程发出了IO请求,于是线程1掌握的执行进程的能力,就可以被线程2获取,即切换到线程2。这是在执行线程间的切换,是非常轻量级的。(WIKI:if resources for one process are not available, then another process cancontinue if its resources are available)

9、多线程可能会出现一种现象:假如2核4线程CPU,有两个进程要被调度,那么只有两个线程会处于运行状态,如果这两个线程是在同一核上,则另一核完全空转,处于浪费状态。更期望的结果是每核上都有一个CPU分别调度这两个进程。

关于CPU上的高速缓存

1、最高速的缓存是CPU的寄存器,它们和CPU的材料相同,最靠近CPU或最接近CPU,访问它们没有时延(<1ns)。但容量很小,小于1kb。

32bit:32__32比特=128字节

64bit:64__64比特=512字节

2、寄存器之下,是CPU的高速缓存。分为L1缓存、L2缓存、L3缓存,每层速度按数量级递减、容量也越来越大。

3、每核心都有一个自己的L1缓存。L1缓存分两种:L1指令缓存(L1-icache)和L1数据缓存(L1-dcache)。L1指令缓存用来存放已解码指令,L1数据缓存用来放访问非常频繁的数据。

4、L2缓存用来存放近期使用过的内存数据。更严格地说,存放的是很可能将来会被CPU使用的数据。

5、多数多核CPU的各核都各自拥有一个L2缓存,但也有多核共享L2缓存的设计。无论如何,L1是各核私有的(但对某核内的多线程是共享的)。

操作系统之CPU知识扫盲

关于冯·诺依曼结构

冯·诺依曼结构(Von Neumannarchitecture)是一种将程序指令存储器和数据存储器合并在一起的计算机设计概念结构。冯·诺依曼结构隐约指导了将存储设备与中央处理器分开?的概念,因此依本结构设计出的计算机又称存储程序计算机,这也是目前大多数计算机设计的主要参考原则。

最早的计算机器仅内含固定用途的程序。现代的某些计算机依然维持这样的设计方式,通常是为了简化或教育目的。例如一个计算器仅有固定的数学计算程序,它不能拿来当作文字处理软件,更不能拿来玩游戏。若想要改变此机器的程序,你必须更改线路、更改结构甚至重新设计此机器。当然最早的计算机并没有设计的那么可编程。当时所谓的“重写程序”很可能指的是纸笔设计程序步骤,接着制订工程细节,再施工将机器的电路配线或结构改变。

而存储程序型计算机的概念改变了这一切。借由创造一组指令集结构,并将所谓的运算转化成一串程序指令的运行细节,可让程序运行时自我修改程序的运算内容,让此机器更有弹性。借着将指令当成一种特别类型的静态数据,一台存储程序型计算机可轻易改变其程序,并在程控下改变其运算内容。冯·诺伊曼结构与存储程序型计算机是互相通用的名词。而哈佛结构则是一种将程序数据与普通数据分开存储的设计概念,但是它并未完全突破冯.诺伊曼架构。

CPU执行原理

CPU的主要运作原理,不论其外观,都是执行储存于被称为程序里的一系列指令。在此讨论的是遵循普遍的冯·诺伊曼结构(von Neumannarchitecture)设计的装置。程序以一系列数字储存在计算机存储器中。差不多所有的冯·诺伊曼CPU的运作原理可分为四个阶段:提取、解码、执行和写回。

(1)提取

从程序内存中检索指令(为数值或一系列数值)。由程序计数器指定程序存储器的位置,程序计数器保存供识别目前程序位置的数值。换言之,程序计数器记录了CPU在目前程序里的踪迹。提取指令之后,PC根据指令式长度增加存储器单元[iwordlength]。指令的提取常常必须从相对较慢的存储器查找,导致CPU等候指令的送入。这个问题主要被论及在现代处理器的缓存和管线化架构。

(2)解码

CPU根据从存储器提取到的指令来决定其执行行为。在解码阶段,指令被拆解为有意义的片断。根据CPU的指令集架构(ISA)定义将数值解译为指令[isa]。一部分的指令数值为运算码,其指示要进行哪些运算。其它的数值通常供给指令必要的信息

(3)执行

在提取和解码阶段之后,接着进入执行阶段。该阶段中,连接到各种能够进行所需运算的CPU部件。例如,要求一个加法运算,算术逻辑单元将会连接到一组输入和一组输出。输入提供了要相加的数值,而且在输出将含有总和结果。ALU内含电路系统,以于输出端完成简单的普通运算和逻辑运算(比如加法和比特运算)。如果加法运算产生一个对该CPU处理而言过大的结果,在标志寄存器里,溢出标志可能会被设置

(4)写回

最终阶段,写回,以一定格式将执行阶段的结果简单的写回。运算结果经常被写进CPU内部的寄存器,以供随后指令快速访问。在其它案例中,运算结果可能写进速度较慢,如容量较大且较便宜的主存

注意,这上面的4个阶段与我们编写程序是非常相关的,但编程语言里面可能会简化,并把2和3阶段合并,分为:加载,处理,写回。在多线程编程里面,了解这几个概念至关重要,由此可以延伸,数据从哪里加载,在哪里执行,最后结果又写回了哪里。指令数据一般从内存里面加载,但是内存的访问时间,相比cpu慢了n多倍,所以为了加速处理,cpu一般把指令给加载到离cpu更近的寄存器里面,或者是L1,L2,L3的cache来提速,最终计算出来的结果,还要写回内存。正是因为cpu执行指令复杂,所以这里面其实牵扯到很多问题,比如多个线程如何协作处理任务,以及如何保证程序数据的原子性,有序性,可见性。而这正是Java的内存模型出现的意义。在其他不同的编程语言里面其实都有在操作系统之上抽象的内存模型来应对不同的cpu架构的的差异,这一点需要注意。

多个单核CPU vs 单个多核CPU

多个单核CPU:

成本更高,因为每个CPU都需要一定的线路电路支持,这样对主板上布局布线极为不便。并且当运行多线程任务时,多线程间通信协同合作也是一个问题。依赖总线的传输,速度较慢,且每一个线程因为运行在不同的CPU上。导致不同线程间各开一个Cache,会造成资源的浪费,同时如果线程间协作就会有冗余数据的产生,更加大了内存的开销。

单个多核CPU:

可以很好地规避基本上多个单核CPU提到的所有缺点。他不需要考虑硬件上的开销以及复杂性问题,同时也可以很好地解决多线程间协同工作的问题,减少内存的开销,因为多线程程序在多核CPU中运行是共用一块内存区的,数据的传输速度比总线来的要快同时不会有冗余数据的产生。单个多核CPU的问题也是显而易见的,假设俩大程序,每一个程序都好多线程还几乎用满cache,它们分时使用CPU,那在程序间切换的时候,光指令和数据的替换就是个问题。

单个多核cpu已经成为个人计算机的主流配置,多个多核的cpu在一些大型的服务器里面也很常见。

超线程

“超线程”(HyperthreadingTechnology)技术就是通过采用特殊的硬件指令,可以把两个逻辑内核模拟成两个物理超线程芯片,在单处理器中实现线程级的并行计算,同时在相应的软硬件的支持下大幅度的提高运行效能,从而使单处理器上模拟双处理器的效能。其实,从实质上说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。

每个单位时间内,CPU只能处理一个线程,以这样的单位进行,如果想要在单位时间内处理超过一个的线程,是不可能的,除非是有两个核心处理单元,英特尔的HT技术便是以单个核心处理单元,去整合两个逻辑处理单元,也就是一个实体核心,两个逻辑核心,在单位时间内处理两个线程,模拟双核心运作。

简单的说,超线程就是在单个core中,模拟出两个逻辑处理单元,以此能够提高程序执行的并发能力,提高系统cpu资源的利用率。

至此,关于CPU的个数,核数,逻辑CPU的个数计算关系如下:

(1)总核数 = 物理CPU个数 __ 每颗物理CPU的核数

(2)总逻辑CPU数 = 物理CPU个数 __ 每颗物理CPU的核数 __ 超线程数

一些概念解释如下:

举例,在一个Mac Pro的机器上,可以通过关于本机,系统报告选项中,看到当前系统的基本配置情况,如下:

比如上面的信息中,显示了当前的系统物理上只拥有一个cpu,但是这个cpu有4个核。然后,我们查询其逻辑cpu的个数,会发现显示是8个:(在Mac上打开活动监视器,然后双击最下面的中间的cpu负载的地方,就可以看到)

这就是因为每个核又有2个超线程,所以8个逻辑cpu个数=1物理cpu个数 __ 4核 __2个超线程,最终也就是说如果我要编写一个多线程计算密集型的程序任务,起的线程数可以以逻辑cpu的个数作为参照。当然如果是io密集型的任务,可以开的更多一点。

CPU性能参数

计算机的性能在很大程度上由CPU的性能决定,而CPU的性能主要体现在其运行程序的速度上。影响运行速度的性能指标包括CPU的工作频率、Cache容量、指令系统和逻辑结构等参数。

大多数情况下,我们主要关注的是CPU的主频,也称时钟频率,是指同步电路中时钟的基础频率,它以“每秒时钟周期”(clock cycles persecond)来度量,单位是兆赫(MHz)或千兆赫(GHz)用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。

在上面的mac的参数里面,我们能够看到在Intel Core i7处理器下,主频是2.2 GHz,当前主频高的处理器也在4GHz之内,其主要原因主要在于散热,提高主频超过一定范围后热密度急速提高,很不经济,也造成散热困难。

总结

本文主要介绍了计算机操作系统中CPU有关的知识,计算机的核心就在于CPU,了解CPU相关的知识,可以让我们更清楚我们的程序底层执行的过程,从而写出更健壮的代码及调优相关的程序。

CPU科普知识

CPU历来都是一个高大上的话题,普通吃瓜群众除了CPU越贵越好之外,可能就一无所知了。曾经小编对于CPU也是一头雾水,后来请教了很多大神,又查阅了很多资料,才粗略地搞明白了一点。在此,小编就按照自己的理解,尽量用最通俗的语言去撕开CPU神秘的面纱,让更多人能够明白CPU。

CPU的中文翻译叫中央处理器,好吧,这其实只是一句废话,不过为了这个牛逼的翻译,我们也给它一个牛逼的比喻,那我们就把CPU比喻成一个国家的中央机构,接下来我们一一对应打比喻讲解。

影响CPU性能的主要因素可以分为两大块:主频和架构。这里看不懂不要紧,接下来听小编为你一一解释就懂了。

主频我们可以理解为中央部门的工作能力,架构可以理解为国家的管理制度,主要用于协调中央机构各部门之间的工作。所以整个中央机构的工作效率(CPU性能)主要就是受到这两个方面的影响。工作能力越高各部门之间协调越好,整体工作效率自然就越高。反之,任何一方面不够好,都会对整体工作效率造成明显的影响。

我们知道市面上最大的PC处理器主要由两大品牌Intel和AMD垄断,而大部分时间里,Intel都是压着AMD打的,原因就是因为AMD的架构不行,虽然主频对比Intel不落下风甚至稍微领先,但是整体性能却被Intel彻底压制了。这就是因为AMD的中央机构各部门协调能力比Intel差多了,所以即使工作能力差不多,但协调不好,所以整体工作性能就比不过了。

说完了性能接下来我们就来说说CPU的结构和工作原理。

CPU的结构主要由运算器、控制器、寄存器三大块组成。

①运算器就是中央机构里负责执行任务的部门,也就是专门干活的;而控制器就是中央机构的领导小组,针对不同需要,给运算器下达不同的命令;寄存器可以理解为控制器和运算器之间的联络小组,主要工作就是协调控制器和运算器。

运算器这个干活的部门,平日里整个中央机构要干点啥事就找这个部门。例如东边洪灾了,你去赈灾吧;西边发现金矿了,你去主导挖矿吧;北边下大雪了,你去送温暖吧;南边下暴雨了,你去疏导洪流吧……

②而控制器这个部门比较牛逼,他们是不用干活的,主要就是对国家(整部计算机)发生的各种情况,做出应对,然后让运算器去把活干好。在这里,我们会发现一个大问题:如果这个部门闲的蛋疼,乱下命令怎么办?这也好办,我们就制定出一套行为规范来限制他们,不让他们乱搞。而这套行为规范就是CPU的指令集。

指令集就是CPU的行为规范,所有的命令都必须严格按照这部行为规范来执行。在这里说明一下不同类型的CPU指令集也不一样,其中最常见的就是__86架构下的复杂指令集和ARM架构下的简单指令集。__86就是我们平常电脑CPU的架构,ARM就是手机CPU的架构。

由于电脑CPU这个中央机构所在的国家(电脑)面积大、人口多、国情复杂,啥事都会发生,所以规章制度就需要特别完善,考虑到方方面面的情况要怎么应对。而手机CPU这个中央机构国家小、人口少、面积窄,所以规章制度简单一点就可以了。这就是复杂指令集和简单指令集的区别。

③寄存器这个部门稍微复杂一点,因为它虽然没有运算器和控制器那么重要,但是它P事多,控制器平时总喜欢让寄存器去给运算器传达个命令。而运算器有时候也会担心数据太多一时处理不过来,就让寄存器帮它先记着,有时候工作需要纸笔、螺丝刀之类的小工具,也让寄存器帮它拿着。

了解完寄存器的功能后,又发现了一个问题,如果控制部门下达的命令太多,而运算部门又没那么快可以做完,又或者运算器让它记住的东西或者临时拿着的东西太多,寄存器部门太小,人太少,忙不过来怎么办?好办,扩招人员吧,可是这个部门的人员都是编制内的,没有在编名额了怎么办?也好办,那就招些编外人员吧,也就是我们常说的临时工。

招了临时工,总要给他个名号吧,那就再成立一个部门,叫高速缓存。为了体现亲疏有别,这个部门把临时工分为三个等级,分别是一级高速缓存、二级高速缓存、三级高速缓存。反正也是临时工,名号就这么随便叫吧。

在CPU这个中央机构可跟新闻上说的事给临时工做、锅给临时工背不同,在这里高速缓存这个临时工部门是作为寄存器替补而存在的,也是说,必须在寄存器完成不了工作量时,才能交给高速缓存来做。一开始交给一级高速缓存来做,一级也做不完再给二级,二级还做不完就给三级。这里又有一个问题出现了,那就是如果三级也做不完怎么办?

这完全没问题,交给中央机构的一个下属部门去办,这个部门就是内存。但是因为内存毕竟不属于中央机构,工作能力没有中央机构人员那么强,效率也没有那么高。

所以控制部门要下达命令或者运算部门要做事时,首先想到的就是寄存器,寄存器忙不过来了就找高速缓存帮忙,高速缓存也忙不过来就找内存帮忙。那么,内存也传达不过来呢?内存传达不过来那就没办法了,只能让电脑卡着吧,等运算部门先把上一件事处理好再说。所以,买电脑,不能光看CPU牛不牛,内存容量也要跟上。

还有一个容易被大家忽略的问题,在这里也说一下吧,那就是晶体管。晶体管是构成CPU最基础的原件,可以理解为整个中央机构的工作人员。随着科技的进步,CPU生产工艺越来越精细,目前手机端CPU(ARM架构)制程已经提升到7nm,电脑端也达到了14nm。

制程的提升,我们可以理解为,缩减每个办公人员的办公面积,以前科技不发达每个办公人员必须配一个独立办公室,才能有效完成工作,现在技术进步了,每个办公人员只需要一张办公桌就能完成工作了。所以同样的一栋大楼,可以容纳的办公人员(晶体管)就多了,工作能力就上升了。

以前一个CPU由于制程落后,只能容纳几千万或者几亿个晶体管,现在制程进步了,一个同样体积的CPU可以容纳几十亿个晶体管,性能自然就提升了。

那么,为什么晶体管数量增加了,CPU的能耗却没有增加呢?我们可以这么理解,每个工作人员都需要吃饱了才有力气干活,以前的工作人员需要吃九菜一汤才够力气,现在改为营养配餐了,每个工作人员只需要吃一片营养药丸就可以工作了,所以工作人员虽然增加了,但是整体伙食成本(耗电量)并没有增加。

最后,我们说一下CPU的核心和进程又是什么呢?我们可以这么理解,在单核时代,每个CPU只有一个核心,也就是只有一个中央机构,但是国家那么大,事那么多,中央机构每天加班25个小时都忙不完了。那就没办法了,扩充中央机构吧。于是乎双核、四核、多核CPU就出来了。每一个核心都是一个独立的中央机构,都具有相同的工作能力。

这么多个中央机构成立了,那听谁的,有事情交给哪个中央机构去做,要知道它们的权利和功能都是一样的啊。这时候就要改变CPU架构了,也就是国家的管理制度了。以前国家只有一个中央机构,啥事都交给它去做准没错,现在突然变成好几个中央机构了,怎么办?

这个时候就需要为每个核心安排去负责不同的事务了,这套中央机构专门负责农业,那套负责工业,剩下的负责税收、财政等等之类的。

那什么是进程呢,进程其实可以理解为一个中央机构里面的人员组成。有时候事太多了,光这几个中央机构处理起来还是有点吃力,但是为了节约成本,我们不能再组建新的中央机构了,那就只好折中处理,不另外成立新的中央机构了,就在原有的基础上,每个中央机构组建两套完全一致的工作班子吧。

所以,4核CPU就是拥有四个独立的中央机构,都具备相同的工作能力和权限,但是每个核心都会负责不同的事务。4核8线程就是四个独立的中央机构,每一个中央机构都拥有两套完整的工作班子,每套工作班子权限也一样。

这时候问题又出现了,例如某个中央机构负责的事特别多,忙不过来,而其他的中央机构负责的事很少,闲的发慌,那怎么办?这时候,我们的架构又出现了,好办!今天你这个核心负责的事多,就你来主导,让其他事少的核心辅助你工作。明天另外一个核心负责的事多,就由它来主导,其他核心辅助它工作。

在这里小编想起来一个网上很火的段子:MTK的CPU一核有难九核围观。这就是架构落后造成的,它的管理制度不完善,没办法调节每个中央机构之间的互相配合,有事情要做,往死里用一个核心,其他九个核心啥事没有,只好吃瓜围观了。

所以,在最后,重申一遍,CPU架构很重要!!

第三篇:CPU基础知识详解

CPU基础知识大全详解有哪些?CPU在电脑中是最核心关键的硬件之一,相当于人的大脑,决定了电脑运算能力,因此CPU的选择至关重要。下面就让小编带你去看看CPU基础知识大全详解,希望对你有所帮助吧!

程序员必须了解的CPU知识-科普篇

1导读

对于一名程序员来说,无论你使用的是什么语言,代码最终都会交给CPU来执行。所以了解CPU相关的知识一方面属于程序员的内功,另一方面也可以帮助你在日常编写代码时写出更加高效的代码

本文不打算对CPU进行深入探究,相反是以简单的语言来帮助大家了解CPU的工作原理以及不得不提到的CPU缓存相关知识,其中晦涩的内容我会通过配图来帮助大家理解,最后会以几个例子来帮助大家更直观的感受到CPU缓存带来的性能影响

2CPU基础知识

CPU即Central ProcessingUnit(中央处理器),是我们的代码打交道最多的硬件之一,要想让一个CPU工作,就必须给它提供指令和数据,而这里的指令和数据一般就放在我们的内存当中。其中指令就是由我们平常编写的代码翻译而来,数据也是我们代码中需要用到的数据(例如一个int值、一串字符串等等)

以C语言为例,从我们开始编写到运行的生命周期可以粗略的用下图表示:

大致分为以下几个步骤

我们日常中使用编辑器或者IDE敲入代码

代码编写完成后使用编译和链接工具生成可以被执行的程序,也就是机器语言(指令的集合)

当程序被运行时,整个程序(包括指令和数据)会被完整的载入到内存当中

CPU不停的向内存读取该程序的指令执行直到程序结束

通过上述第4步我们知道,CPU自身是没有保存我们的程序的,需要不停的向内存读取

那么有个问题是CPU是如何向内存读取的呢?

这里其实存在一个“总线”的概念,即CPU会通过地址总线、控制总线、数据总线来与我们的内存进行交互。其中地址总线的作用是寻址,即CPU告诉内存需要哪一个内存地址上的数据;控制总线的作用是对外部组件的控制,例如CPU希望从内存读取数据则会在控制总线上发一个“读信号”,如果希望往内存中写一个数据则会发一个“写信号”;而数据总线的作用顾名思义就是用来传输数据本身的了

例如CPU需要希望从内存中读一条数据,那么整个过程为:

到这里我们已经知道了CPU在执行我们程序的过程中会不断的与内存交互,读取需要的指令和数据或者写入相关的数据。这个过程是非常非常快的,一般CPU与内存交互一次需要200个时钟周期左右,而现代的处理器单个时钟周期一般都短于1纳秒(1秒= 十亿纳秒)

但我们的前辈们仍然对这个速度不满足,所以又对CPU设计了一套缓存系统来加速对内存中数据的读取

3CPU缓存

现代CPU通常设计三级缓存(L1、L2、L3),其中L1、L2缓存是每个CPU核心独享的,L3缓存是所有CPU核心共享的,而L1缓存又分为数据缓存和指令缓存

我们的数据就从内存先到L3缓存中,再到L2缓存中,再到L1缓存中,最后再到CPU寄存器中

按照大小来看,通常L1 < L2 < L3 < 内存 <磁盘,如果你手边有一台Linu__机器的话,可以通过下面的命令查看CPU各级缓存的大小

以我手上这台服务器为例,L1指令缓存大小为32K、数据缓存大小为32K,L2缓存大小为1MB,L3缓存大小为35.75MB

按照速度来看,通常L1 > L2 > L3 > 内存 > 磁盘,以时钟周期为计量单位

L1缓存:约 4 个CPU时钟周期

L2缓存:约 10 个CPU时钟周期

L3缓存:约 40 个CPU时钟周期

内存:约 200 个CPU时钟周期

也就意味着如果能命中缓存,我们程序的执行速度至少提升5倍左右,如果能命中L1缓存则提升50倍左右,这已经属于相当大的性能提升了

有了缓存系统后,CPU就不必要每条指令或数据都读一次了,可以一次性读取若干条指令或数据然后放到缓存里供以后查询,因为根据局部性原理,CPU访问内存时,无论是读取指令还是数据,所访问的内存单元都趋于聚集在一个较小的连续区域中,所以一次性读取一块连续的内存有利于后续的缓存命中

现实中,CPU通常情况下每次的读取内存时都会一次性读取内存中连续的64个字节,这个连续的64字节术语就叫做CacheLine(缓存行),所以每一级CPU缓存就像下面这样

如果你手边有一台Linu__机器的话,可以通过下面的命令查看你的机器使用的CPU的Cache Line大小是多少

对于我的服务器来说,L1缓存就有 32KB / 64B = 512 个Cache Line

到这里,我们已经知道了CPU缓存的工作原理和加载方式,这里实际上还遗留了两个话题没有讲,一个是如何组织每一级的 Cache Line(例如 L1 的512 个CacheLine)来提升访问的命中率;另一个更加复杂一点,在现代CPU都是多核的场景下如何保证数据的一致性,因为每个核都有自己的L1和L2缓存,那么如果核心1修改的时候只修改了缓存的数据而没有修改内存中的数据,其他核心读到的就是旧数据了,如何解决这一问题?

由于本篇文章只是期望对CPU知识进行一个科普,不希望对于小白来说一次性接触大量的新内容,所以这两个问题我准备在后面的另外两篇再进行更细致的讨论

4性能对比

下面以几个实际的例子来加深大家对Cache Line如何影响程序性能的理解

示例一

我们假设有一个5000万长度的int数组,接着把这个数组的其中一些元素乘以2,考虑下面这两份代码

直觉上代码一比代码二少循环了4倍,并且也少乘2了4倍,理论上代码一比代码二快4倍左右才合理

但在我的服务器上运行的结果是代码一平均花费90毫秒,代码二平均花费93毫秒,性能几乎是差不多的,读者可以自行思考一下原因,再点击下方空白处查看解析

点击下方空白区域查看解析

解析

这里最主要的原因还是CacheLine,虽然代码一需要执行的指令确实比代码二要少4倍,但由于CPU一次会把连续的64个字节都读入缓存,而读写缓存的速度又特别快(还记得吗?L1的读取速度只有约4个时钟周期,是内存的50倍),以至于我们很难察觉到这4倍指令的差距

示例二

假设我们需要遍历一个二维数组,考虑下面这两种遍历方法:

由于数组长度是一模一样的,直觉上我们期望的是两份代码运行时间相差无几。但在我的服务器上代码一运行需要23毫秒,代码二运行需要51毫秒,读者可以自行思考一下原因,再点击下方空白处查看解析

点击下方空白区域查看解析

解析

这里最主要的原因依然是Cache Line,由于C语言中二维数组的内存是连续的,所以我们按行访问的时候访问的一直都是连续的内存,而CacheLine也是连续的64个字节,所以按行访问对Cache Line更友好,更容易命中缓存

而按列访问的话每次访问的内存不是连续的,每次的跨度都是256__sizeof(int)也就是1KB,更容易出现缓存Miss

示例三

假设我们有一个数组,我们希望计算所有大于100的元素的和,考虑下面两份代码

其中代码一是随机生成了个长度为1000W的数组,然后统计大于100的所有数字的和;代码二也是随机生成了个长度为1000W的数组,但是是先排完序,再统计大于100的所有数字的和。并且可以看到,两份代码都是只计算了统计sum的那段代码的消耗时间,所以两份代码都不考虑随机生成数组和排序花费的时间

理论上来讲两份代码花费时间应当是相差无几的,但实际上在我的机器上跑出来第一份代码输出的是46毫秒,第二份代码输出的是23毫秒

读者可以自行思考一下原因,再点击下方空白处查看解析,提示:第二份代码中在统计sum之前数组是有序的电脑CPU如何选购?台式机CPU知识扫盲和选购建议

CPU有几个重要的参数:架构、主频、核心、线程、缓存、接口。

架构:

有句老话叫“抛开架构看核心主频都是耍流氓”,那什么是架构?假如我们把架构想象成交通工具,那么老的架构就是火车,而新的架构就是高铁,所以架构的提升直接影响CPU的性能。这也就是为什么老式的CPU虽然也有超高的主频但性能还是被现在的i3碾压的原因了。

电脑CPU如何选购?台式机CPU知识扫盲和选购建议

主频:

我们常在CPU的信息里看到某某CPU主频3.6GHz,这里的主频其实是CPU内核工作的时钟频率,并不直接等于CPU的运算速度,但是高的主频对于CPU的运算速度却至关重要。

核心:

核心又称内核,是CPU用来完成所有计算、接受/存储命令、处理数据等任务的装置。我们可以简单的把核心理解为人的手,单核就是一只手、双核就是两只手、四核就是四只手。

核心数并不是越多越好的,要看使用场景,比如在打字的时候,两只手就比一只手效率高,但是在操作鼠标的时候,使用两只手只会起到适得其反的效果。至于什么场景需要使用多少核心的CPU在下面会讲到。

电脑CPU如何选购?台式机CPU知识扫盲和选购建议

线程:

我们通常会看到“四核四线程”和“四核八线程”这两种说法,我们可以简单的把工厂里的流水线比作线程,把工人比作核心,早先由于工人工作技能不高,一个工人只能处理一条流水线的任务,我们可以把这个称为单核单线程,但是后来工人技术熟练了,觉得操作一条流水线很无聊,不能体现自己的价值,于是就给又分配一条流水线,让这个工人同时处理两条流水线的任务,我们可以把这个称为“单核双线程”。

缓存:

缓存也是CPU里的一项非常重要的参数,由于CPU的运算速度比内存条的读写速度要快很多,这会让CPU花费很长的时间等待数据的到来或是把数据写入内存条,这个时候CPU内的高速缓存可以作为临时的存储介质来缓解CPU的运算速度与内存读写速度不匹配的矛盾,所以缓存越大越好。

电脑CPU如何选购?台式机CPU知识扫盲和选购建议

接口:

CPU需要通过接口安装在主板上才能工作,而目前CPU的接口都是针脚式接口,AMD和英特尔的CPU在接口上就有很大的差别,所以需要使用适配接口的主板才能正常工作。目前英特尔主流的接口类型为LGA-1151接口(6、7、8代i3i5 i7都是这种接口);AMD平台主流的接口类型有AM4接口(锐龙系列)和FM2+接口(速龙系列、APU系列)。

PS:英特尔最新的酷睿8代CPU虽然也是LGA-1151接口,但不适配老式的LGA-1151接口主板的平台,需要另购主板

说完了这些重要的参数,相信你也对CPU有了一个大概的了解,我们再谈谈不同场景对CPU的选择。

计算机系统基础:CPU相关知识笔记

1、什么是CPU

计算机的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备5大部件组成。

运算器和控制器等部件被集成在一起称为中央处理单元(Central Processing Unit,CPU).CPU

是硬件系统的核心。

2、CPU的用途

CPU主要负责获取程序指令、对指令进行译码并加以执行。

CPU的功能如下:

3、CPU的组成CPU主要由运算器、控制器、寄存器和内部总线等部件组成。

3.1 运算器

运算器包括算术逻辑单元(ALU)、累加器、缓冲寄存器、状态条件寄存器等。它的主要工作是完成所规定的的各种算术和逻辑运算。

算术逻辑单元(ALU):ALU的重要组成部件,负责处理数据,实现算术和逻辑运算。

累加器(AC):当执行算术或逻辑运算时,为ALU提供一个工作区。

数据缓冲器(DR):作为CPU和内存、外部设备之间数据传送的中转站、操作速度的缓冲;

在单累加器结构的运算器中,DR还可以作为操作数寄存器。

状态寄存器(PSW):保存算术指令和逻辑指令运行或测试的结果建立的的各种条件码内容,分为状态标志和控制标志。

3.2 控制器

用于控制这个CPU的工作,不仅要保证程序的正确执行,还要能处理异常事件。

控制器主要包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑。

3.2.1 指令控制

指令寄存器(IR):当执行一条指令时,需要先把它从内存存储器取到缓冲寄存器中,再送入IR中暂存,指令译码器会根据IR的内容产生各种微操作命令,控制其他部件协调工作,完成指令的功能。

程序计数器(PC):PC具有寄存和计数两种功能。又称为指令计数器。

地址寄存器(AR):用来保存当前CPU所访问的内存单元地址。

指令译码器(ID):包含指令操作码和地址码两部分,为了能执行任何给定的指令必须对操作码进行分析,以便识别要进行的操作。

3.2.2 时序控制

时序控制要为每条指令按时间顺序提供应有的控制信号。

3.2.3 总线控制

为多个功能部件提供服务的信息通路的控制电路。

3.2.4 中断控制

用于控制各种中断请求,并根据优先级排队,逐个交给CPU处理。

3.3 寄存器组

分为专用寄存器、通用寄存器。运算器和控制器中的寄存器是专用寄存器,作用是固定的。

通用寄存器用途广泛由程序员规定其用途。

4、什么是多核CPU

内核:CPU的核心称为内核,是CPU的最重要组成部分。CPU的所有计算、接收/存储命令、处理数据都是由核心执行。

多核:在一个单芯片上集成两个或者更多个处理器内核,并且每个内核都有自己的逻辑单元、控制单元、中端处理器、运算单元、一级Cache、二级Cache共享或独有。

多核CPU优点:可满足用户同时进行多任务处理等要求。

第四篇:基础知识课外拓展

基础知识:

1.我国共产党三大历史任务是什么?(实现现代化建设、完成祖国统一、维护世界和平与促进共同发展)IRA个人退休账户 3NASA美国宇航局 4

【年龄称谓】 襁褓:未满周岁的婴儿 孩提:指2——3岁的儿童

垂髫:指幼年儿童(又叫“总角”)豆蔻:指女子十三岁 及笄:指女子十五岁

加冠:指男子二十岁(又“弱冠”)而立之年:指三十岁 不惑之年:指四十岁

知命之年:指五十岁(又“知天命”、“半百”)花甲之年:指六十岁 古稀之年:指七十岁 耄耋之年:指八、九十岁 期颐之年:一百岁

【古代主要节日】

元日:正月初一,一年开始。人日:正月初七,主小孩。

上元:正月十五,张灯为戏,又叫“灯节” 社日:春分前后,祭祀祈祷农事。

寒食:清明前两日,禁火三日(吴子胥)清明:四月初,扫墓、祭祀。

端午:五月初五,吃粽子,划龙(屈原)七夕:七月初七,妇女乞巧(牛郎织女)中元:七月十五,祭祀鬼神,又叫“鬼节” 中秋:八月十五,赏月,思乡

重阳:九月初九,登高,插茱萸免灾 冬至:又叫“至日”,节气的起点。腊日:腊月初八,喝“腊八粥”

除夕:一年的最后一天的晚上,初旧迎新2、5月第二个星期日,母亲节3、6月1日,儿童节(纪念早逝的小孩)

4、6月第三个星期日,父亲节 7

【四大名绣】苏绣〖苏州〗、湘绣〖湖南〗、蜀绣〖四川〗、广绣〖广东〗

【四大名扇】檀香扇〖江苏〗、火画扇〖广东〗、竹丝扇〖四川〗、绫绢扇〖浙江〗 【四大名花】牡丹〖河南洛阳〗、水仙〖福建漳州〗、菊花〖浙江杭州〗、山茶〖云南昆明〗 8

【四书】《论语》、《中庸》、《大学》、《孟子》

【五经】《诗经》、《尚书》、《礼记》、《易经》、《春秋》

【八股文】破题、承题、起讲、入手、起股、中股、后股、束股 【六子全书】《老子》、《庄子》、《列子》、《荀子》、《扬子法言》、《文中子中说》

【汉字六书】象形、指事、形声、会意、转注、假借

【书法九势】落笔、转笔、藏峰、藏头、护尾、疾势、掠笔、涩势、横鳞竖勒

【竹林七贤】嵇康、刘伶、阮籍、山涛、阮咸、向秀、王戎

【饮中八仙】李白、贺知章、李适之、李琎、崔宗之、苏晋、张旭、焦遂

【蜀之八仙】容成公、李耳、董促舒、张道陵、严君平、李八百、范长生、尔朱先生

【扬州八怪】郑板桥、汪士慎、李鱓、黄慎、金农、高翔、李方鹰、罗聘

【北宋四大家】黄庭坚、欧阳修、苏轼、王安石

【唐宋古文八大家】韩愈、柳宗元、欧阳修、苏洵、苏轼、苏辙、王安石、曾巩

【十三经】《易经》、《诗经》、《尚书》、《礼记》、《仪礼》、《公羊传》、《榖梁传》、《左传》、《孝经》、《论语》、《尔雅》、《孟子》 9

【五彩】青、黄、赤、白、黑

【五音】宫、商、角、徵、羽

【七宝】金、银、琉璃、珊瑚、砗磲、珍珠、玛瑙

【九宫】正宫、中吕宫、南吕宫、仙吕宫、黄钟宫、大面调、双调、商调、越调

【七大艺术】绘画、音乐、雕塑、戏剧、文学、建筑、电影

【四大名瓷窑】河北的瓷州窑、浙江的龙泉窑、江西的景德镇窑、福建的德化窑

【四大名旦】梅兰芳、程砚秋、尚小云、荀慧生

【六礼】冠、婚、丧、祭、乡饮酒、相见

【六艺】礼、乐、射、御、书、数

【六义】风、赋、比、兴、雅、颂

【八旗】镶黄、正黄、镶白、正白、镶红、正红、镶蓝、正蓝

【十恶】谋反、谋大逆、谋叛、谋恶逆、不道、大不敬、不孝、不睦、不义、内乱

【四海】渤海、黄海、东海、南海

【四大名桥】广济桥、赵州桥、洛阳桥、卢沟桥 【四大名园】颐和园〖北京〗、避暑山庄〖河北承德〗、拙政园〖江苏苏州〗、留园〖江苏苏州〗

【四大名刹】灵岩寺〖山东长清〗、国清寺〖浙江天台〗、玉泉寺〖湖北江陵〗、栖霞寺〖江苏南京〗

【四大名楼】岳阳楼〖湖南岳阳〗、黄鹤楼〖湖北武汉〗、滕王阁〖江西南昌〗、大观楼〖云南昆明〗

【四大名亭】醉翁亭〖安徽滁县〗、陶然亭〖北京先农坛〗、爱晚亭〖湖南长沙〗、湖心亭〖杭州西湖〗

【四大古镇】景德镇〖江西〗、佛山镇〖广东〗、汉口镇〖湖北〗、朱仙镇〖河南〗 【四大碑林】西安碑林〖陕西西安〗、孔庙碑林〖山东曲阜〗、地震碑林〖四川西昌〗、南门碑林〖台湾高雄〗

【四大名塔】嵩岳寺塔〖河南登封嵩岳寺〗、飞虹塔〖山西洪洞广胜寺〗、释迦塔〖山西应县佛宫寺〗、千寻塔〖云南大理崇圣寺〗 【五脏】心、肝、脾、肺、肾

【六腑】胃、胆、三焦、膀胱、大肠、小肠

【七情】喜、怒、哀、乐、爱、恶、欲

【五常】仁、义、礼、智、信 【五伦】君臣、父子、兄弟、夫妇、朋友

【三姑】尼姑、道姑、卦姑

【六婆】牙婆、媒婆、师婆、虔婆、药婆、稳婆

【九属】玄孙、曾孙、孙、子、身、父、祖父、曾祖父、高祖父

【五谷】稻、黍、稷、麦、豆

【中国八大菜系】四川菜、湖南菜、山东菜、江苏菜、浙江菜、广东菜、福建菜、安徽菜

【五毒】石胆、丹砂、雄黄、矾石、慈石

【配药七方】大方、小方、缓方、急方、奇方、偶方、复方 11

第五篇:拓展训练基础知识

一.您了解拓展训练吗

拓展训练是一种让参加者在不同平常的户外环境下,直接参与一些精心设计的程序,继而自我发现、自我激励、达至自我突破、自我升华的新颖有效的训练方法。参加者可以放下平日忙碌的事务,让自己置身与一个“特殊”的环境里,通过一系列具有趣味性和挑战性的地面和高空元素拓展活动,更深入探索自我,挖掘自己的潜能,体现个人与团队的关系,突破自己的固有模式,学习如何面对恐惧和困难。

拓展训练并非体育加娱乐,也不是所谓的“魔鬼训练”;它回答的是这样一个问题:在今天,知识和技能还只是有形的资本,而强烈的进取心、顽强的意志和良好的沟通与团队精神,才更是一种无形的力量。在什么样的情况下能使有限的知识和技能释放出极大的能量;如何开发出那些一直潜伏在每个人身上、而人们又未必真正了解的能力和情趣;怎样才能实现与他人的良好沟通和弄清这种沟通能够深入到什么程度;怎样有效地破除个人自我中心概念,改变对于他人和社会的冷漠心态„„这就是拓展训练的真正意义所在。作为一种现代型学习方式和训练方法,拓展训练通过精心创设的特殊情境中的系列活动,激发、调整、升华、强化受训者的心理、身体、品德素质和潜能,力求使受训者达到心态开放稳定、敢于应对挑战、富有创新活力、促进团队形成的目的。

二、什么是拓展训练

拓展训练,又称“外展训练”,英文为Outward Bound.意思是一艘小船离开安全的港湾,驶向勇敢的探险旅程,去接受一个个挑战,战胜一个个困难。这种训练起源于上世纪40年代二战时期的英国。当时,许多英国军舰在遭到德国潜艇袭击后沉没了,大批船员落水,由于海水冰冷,又远离大陆,绝大多数的船员不幸牺牲了,但仍有极少数的人在经历了长时间的磨难后终于得以生还。当人们在了解了这些生还下来的人的情况后,发现了一个令人非常惊奇的事实,这就是这些生还下来的人不是人们想象的那样都是些身体强壮的小伙子,而大多数是些年老体弱的人。经过一段时间的调查研究,了解情况,专家们终于找到了这个问题的答案:这些人之所以能活下来,关键在于这些人有良好的心理素质。当他们遇到灾难的时候,首先想到的是:我一定要活下去,有一种强烈的求生欲望。而那些年轻的海员可能更多的想到的是:这下我可能就完了,我不能活着回去了。当时英国伯爵劳伦斯出资赞助德国教育学家库尔特·汉恩进行研究,利用一些自然条件和人工设施,让那些年轻的海员做一些具有心理挑战的活动和项目,以训练和提高他们的心理素质。后来劳伦斯伯爵在1942年成立了一所阿德伯威海上训练学校。那么,训练海员只是拓展训练最早的一个雏形。二战以后,在英国出现了一种叫做OUTWARD-BOUND的管理培训,这种训练利用户外活动的形式,模拟真实管理情境,训练对象也由最初的海员扩大到军人、学生、工商业人员等各类群体。训练目标也由单纯的体能、生存训练、心理训练、人格训练转向管理训练。对管理者和企业家进行心理和管理两方面的培训。由于拓展训练这种非常新颖的培训形式和良好的培训效果,很快就风靡了整个欧洲的教育培训领域并在其后的半个世纪中发展到全世界。1995年拓展训练进入中国北京、上海、广州等地,在外企的带动下,国内的一些知名企事业单位也纷纷加入了拓展培训行列,通过拓展培训提高员工的团队精神,提升企业文化,增强企业的市场竞争力。

目前这种训练至今已发展成为培养现代人和熔炼现代组织的一种全新的学习方法和训练方式。它以合作意识、进取精神的激发和升华为宗旨,利用大自然和人工创设的特殊情境,通过精心设计的各种“挑战极限”性质的活动,帮助企业和组织激发员工潜能,增强团队活力、创造性和凝聚力,达到提升团队生产力,提高团队绩效的目的。请大家记住“拓展训练”是1995年逐步进入中国。

三、户外拓展训练的环节及特点

拓展训练通常有以下四个环节: 团队热身。在培训开始时,团队热身活动将有助于加深学员之间的相互了解,消除紧张,建立团队,以便

轻松愉悦的投入到各项培训活动中去。个人项目。本着心理挑战最大、体能冒险最小的原则设计,每项活动对受训者的心理承受力都是一次极大的考验。团队项目。团队项目以改善受训者的合作意识和受训集体的团队精神为目标,通过复杂而艰巨的活动项目,促进学员之间的相互信任、理解、默契和配合。回顾总结。回顾将帮助学员消化、整理、提升训练中的体验,以便达到活动的具体目的。总 结,使学员

能将培训的收获迁移到工作中去,以实现整体培训目标。

“There is more in you than you think“

你比你认为的自己更棒!

拓展训练的显著特点有: 综合活动性。拓展训练的所有项目都以体能活动为引导,引发出认知活动、情感活动、意志活动和交往活

动,有明确的操作过程,要求学员全身心的投入。挑战极限性。拓展训练的项目都具有一定的难度,表现在心理考验上,需要学员向自己的能力极限挑战,跨越”极限“。集体中的个性。拓展训练实行分组活动,强调集体合作。力图使每一名学员竭尽全力为集体争取荣誉,同

时从集体中吸取巨大的力量和信心,在集体中显示个性。高峰体验。在克服困难,顺利完成课程要求以后,学员能够体会到发自内心的胜利感和自豪感,获得人生

难得的高峰体验。自我教育。教员只是在课前把课程的内容、目的、要求以及必要的安全注意事项向学员讲清楚,活动中一

般不进行讲述,也不参与讨论,充分尊重学员的主体地位和主观能动性。即使在课后的总结中,教员只是点到为止,主要让学员自己来讲。达到了自我教育的目的。

四、谁需要拓展培训?

答案是每一个团队都需要拓展培训。良好的团队精神和积极进取的人生态度,是现代人应有的基本素质,也是现代人人格特质的两大核心内涵。在现代社会,人类的智慧和技能只有在这种人格力量的驾驭下,才会迸发出耀眼的光芒,拓展训练应运而生。利用户外自然环境对人进行培养的户外训练方式,拓展秉持的价值观:

[积极主动] 积极的工作态度和人生态度是拓展精神的核心。乐观自信,从我做起,环境因我而变;坐言起

行,言必行,行必果;从内心关怀客户;

[开拓创新] 以开放的心态,应对变化,积极进取。

[认真负责] 人和事因认真而完美,注重细节是专业化的表现。坚守承诺,积累信用。

[独立协作] 独立自主,各司其职,独挡一面。个人和公司的竞争力来自你不可替代的价值。高水平的独立,才有可能带来高水平的协作。局部利益服从整体利益;以双赢的心态创造最大动力。

[共享成功] 成功来自每个人的努力和贡献,成功是协作的结晶;共享成功的经验,共享成功的好处。但共

享不是平均分配,吃大锅饭。

五、拓展训练的意义

企业人员的潜能,提升和强化个人心理素质,帮助企业人员建立高尚而尊严的人格;同时让团队成员能更深刻地体验个人与企业之间,下级与上级之间,员工之间唇齿相依的关系,从而激发出团队更高昂的工作热诚和拼搏创新的动力,使团队更富凝聚力。

2、团队合作训练:拓展训练是一套塑造团队活力、推动组织成长的不断增值的训练课程。是专门配合现代企业进行团队建设需要而设计的一套户外体验式模拟训练,这也是当今欧、美及亚洲大型商业机构所采纳的一种有效的训练模式;训练内容丰富生动,寓意深刻,以体验启发作为教育手段,学员参与的训练将成为他们终身难忘的经历,从而让每一系列活动中所寓意的深刻的道理和观念,能牢牢地扎根在团队和每个成员的潜意识中,并且能在日后的工作合作中挥发应有的效用。

所以,通过拓展训练,学员在以下方面将有显著的提高:认识自身潜能,增强自信心,改善自身形象;克服心理惰性,磨练战胜困难的毅力;启发想象力与创造力,提高解决问题的能力;认识群体的作用,增进对集体的参与意识与责任心;改善人际关系,更为融洽地与群体合作;学习欣赏、关注和爱护自然。

销售世界上第一号的产品——不是学习卡,而是自己。在你成功地把自己推销给别人之前,你必须百分之百的把自己推销给自己。

”There is more in you than you think“

你比你认为的自己更棒!

下载CPU基础知识拓展[5篇]word格式文档
下载CPU基础知识拓展[5篇].doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    CPU讲稿

    CPU是Central Processing Unit(中央微处理器)的缩写,由运算器和控制器两部分组成,按照其处理信息的字长,CPU可以分为:4位微处理器、8位微处理器、16位微处理器、32位微处理器以及......

    CPU学习心得

    CPU学习感想 今天终于测试成功了! 清楚得记得,3周前自己把所有线路都接好时的兴奋和小小的成就感。可是,我并没有在第一次测试时就成功,甚至当第一次接上电源时,连可爱的保护电路......

    CPU介绍

    通的处理器定名规则都是msm,即mobile station modem,是包含基带的处理器,另外还要apq——application processor qualcomn,没有基带的处理器,还有mpq——media processor qualcom......

    CPU名词解释

    英特尔® 定向 I/O 虚拟化技术(VT-d) 英特尔® 定向 I/O 虚拟化技术 (VT-d) 在现有对 IA-32(VT-x)和安腾® 处理器 (VT-i) 虚拟化支持的基础上,还新增了对 I/O 设备虚拟化的支持......

    计算机Cpu介绍

    计算机Cpu介绍 从计算机组成的观点来看,计算机中最重要的核心部件是Cpu(中央处理单元),以不同的Cpu类型划分计算机是否可行呢?生产Cpu的厂商非常多,不同Cpu厂商之间的产品逐步分化......

    cpu计算除法

    演讲稿 工作总结 调研报告 讲话稿 事迹材料 心得体会 策划方案 cpu计算除法 CPU如何来计算除法 一 问题:计算机如何来计算除法的?第一步:分析除法现在做一个简单的除法 56/7,大......

    cpu的生产工艺

    我们常可以在CPU性能列表上看到“工艺技术”一项,其中有“0.35μm”或“0.25μm”等,这些同样是为了说明CPU技术先进程度。一般来说“工艺技术”中的数据越小表明CPU生产技术......

    CPU散热器问卷调查

    问卷调查 本问卷调查只用于课题研究,感谢您的参与! 1、 您是什么职业? A、学生B、上班族C、老板D、自由职业 2、您是否已有电脑? A、 暂时没有 B、 已有(台式笔记本平板电脑) C、......