<!-- 即划即译-代码开始-->
<!-- 获取代码:http://elansorcn.elanso.com Copyright 2007 Elanso Corp.-->
<SCRIPT><!-- //Elansor_charset="gb2312"
var Elansor_Yoursitename="elanso";//请修改成您的网站简称,建议5个字内
var Elansor_charset=document.charset.toLowerCase();//如果您的网页头部未定义charset,请手动在此处修改网页编码
--></SCRIPT>
<!--代码片断a开始-->
<div align="center" style="background-color:#E6EFFF; padding:5px; width:150px; display:inline">
<span id="Elansor_openDict2"></span>
<a href="javascript:openDictF();" id="Elansor_openDict"></a>
</div>
<!--代码片断a结束-->
<link href="http://elansorcn.elanso.com/tool/translate/images/main.css" rel="stylesheet" type="text/css">
<script language="javascript" type="text/javascript" id="Elansor_insertmean"></script>
<script language="javascript1.2" type="text/javascript" src="http://elansorcn.elanso.com/tool/translate/trans.js"></script>
<!--即划即译-代码结束 -->
CPU知识大全
作者:cmscn 日期:2007-03-16
1.主频
主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。
所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,我们也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线的各方面的性能指标。 当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
2.外频
外频是CPU的基准频率,单位也是MHz。CPU的外频决定着整块主板的运行速度。说白了,在台式机中,我们所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。
目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态。外频与前端总线(FSB)频率很容易被混为一谈,下面的前端总线介绍我们谈谈两者的区别。
3.前端总线(FSB)频率
前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据带宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,现在的支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。
外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一千万次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8Byte/bit=800MB/s。
其实现在“HyperTransport”构架的出现,让这种实际意义上的前端总线(FSB)频率发生了变化。之前我们知道IA-32架构必须有三大重要的构件:内存控制器Hub (MCH) ,I/O控制器Hub和PCI Hub,像Intel很典型的芯片组 Intel 7501、Intel7505芯片组,为双至强处理器量身定做的,它们所包含的MCH为CPU提供了频率为533MHz的前端总线,配合DDR内存,前端总线带宽可达到4.3GB/秒。但随着处理器性能不断提高同时给系统架构带来了很多问题。而“HyperTransport”构架不但解决了问题,而且更有效地提高了总线带宽,比方AMD Opteron处理器,灵活的HyperTransport I/O总线体系结构让它整合了内存控制器,使处理器不通过系统总线传给芯片组而直接和内存交换数据。这样的话,前端总线(FSB)频率在AMD Opteron处理器就不知道从何谈起了。
4.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个字节。
5.倍频系数
倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高倍频而得到高主频的CPU就会出现明显的“瓶颈”效应—CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,而AMD之前都没有锁。
6.缓存
缓存大小也是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,而服务器和工作站上用CPU的L2高速缓存更高达256-1MB,有的高达2MB或者3MB。
L3 Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。
其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。
7.CPU扩展指令集
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有...
主频也叫时钟频率,单位是MHz,用来表示CPU的运算速度。CPU的主频=外频×倍频系数。很多人认为主频就决定着CPU的运行速度,这不仅是个片面的,而且对于服务器来讲,这个认识也出现了偏差。至今,没有一条确定的公式能够实现主频和实际的运算速度两者之间的数值关系,即使是两大处理器厂家Intel和AMD,在这点上也存在着很大的争议,我们从Intel的产品的发展趋势,可以看出Intel很注重加强自身主频的发展。像其他的处理器厂家,有人曾经拿过一快1G的全美达来做比较,它的运行效率相当于2G的Intel处理器。
所以,CPU的主频与CPU实际的运算能力是没有直接关系的,主频表示在CPU内数字脉冲信号震荡的速度。在Intel的处理器产品中,我们也可以看到这样的例子:1 GHz Itanium芯片能够表现得差不多跟2.66 GHz Xeon/Opteron一样快,或是1.5 GHz Itanium 2大约跟4 GHz Xeon/Opteron一样快。CPU的运算速度还要看CPU的流水线的各方面的性能指标。 当然,主频和实际的运算速度是有关的,只能说主频仅仅是CPU性能表现的一个方面,而不代表CPU的整体性能。
2.外频
外频是CPU的基准频率,单位也是MHz。CPU的外频决定着整块主板的运行速度。说白了,在台式机中,我们所说的超频,都是超CPU的外频(当然一般情况下,CPU的倍频都是被锁住的)相信这点是很好理解的。但对于服务器CPU来讲,超频是绝对不允许的。前面说到CPU决定着主板的运行速度,两者是同步运行的,如果把服务器CPU超频了,改变了外频,会产生异步运行,(台式机很多主板都支持异步运行)这样会造成整个服务器系统的不稳定。
目前的绝大部分电脑系统中外频也是内存与主板之间的同步运行的速度,在这种方式下,可以理解为CPU的外频直接与内存相连通,实现两者间的同步运行状态。外频与前端总线(FSB)频率很容易被混为一谈,下面的前端总线介绍我们谈谈两者的区别。
3.前端总线(FSB)频率
前端总线(FSB)频率(即总线频率)是直接影响CPU与内存直接数据交换速度。有一条公式可以计算,即数据带宽=(总线频率×数据带宽)/8,数据传输最大带宽取决于所有同时传输的数据的宽度和传输频率。比方,现在的支持64位的至强Nocona,前端总线是800MHz,按照公式,它的数据传输最大带宽是6.4GB/秒。
外频与前端总线(FSB)频率的区别:前端总线的速度指的是数据传输的速度,外频是CPU与主板之间同步运行的速度。也就是说,100MHz外频特指数字脉冲信号在每秒钟震荡一千万次;而100MHz前端总线指的是每秒钟CPU可接受的数据传输量是100MHz×64bit÷8Byte/bit=800MB/s。
其实现在“HyperTransport”构架的出现,让这种实际意义上的前端总线(FSB)频率发生了变化。之前我们知道IA-32架构必须有三大重要的构件:内存控制器Hub (MCH) ,I/O控制器Hub和PCI Hub,像Intel很典型的芯片组 Intel 7501、Intel7505芯片组,为双至强处理器量身定做的,它们所包含的MCH为CPU提供了频率为533MHz的前端总线,配合DDR内存,前端总线带宽可达到4.3GB/秒。但随着处理器性能不断提高同时给系统架构带来了很多问题。而“HyperTransport”构架不但解决了问题,而且更有效地提高了总线带宽,比方AMD Opteron处理器,灵活的HyperTransport I/O总线体系结构让它整合了内存控制器,使处理器不通过系统总线传给芯片组而直接和内存交换数据。这样的话,前端总线(FSB)频率在AMD Opteron处理器就不知道从何谈起了。
4.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个字节。
5.倍频系数
倍频系数是指CPU主频与外频之间的相对比例关系。在相同的外频下,倍频越高CPU的频率也越高。但实际上,在相同外频的前提下,高倍频的CPU本身意义并不大。这是因为CPU与系统之间数据传输速度是有限的,一味追求高倍频而得到高主频的CPU就会出现明显的“瓶颈”效应—CPU从系统中得到数据的极限速度不能够满足CPU运算的速度。一般除了工程样版的Intel的CPU都是锁了倍频的,而AMD之前都没有锁。
6.缓存
缓存大小也是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,而服务器和工作站上用CPU的L2高速缓存更高达256-1MB,有的高达2MB或者3MB。
L3 Cache(三级缓存),分为两种,早期的是外置,现在的都是内置的。而它的实际作用即是,L3缓存的应用可以进一步降低内存延迟,同时提升大数据量计算时处理器的性能。降低内存延迟和提升大数据量计算能力对游戏都很有帮助。而在服务器领域增加L3缓存在性能方面仍然有显著的提升。比方具有较大L3缓存的配置利用物理内存会更有效,故它比较慢的磁盘I/O子系统可以处理更多的数据请求。具有较大L3缓存的处理器提供更有效的文件系统缓存行为及较短消息和处理器队列长度。
其实最早的L3缓存被应用在AMD发布的K6-III处理器上,当时的L3缓存受限于制造工艺,并没有被集成进芯片内部,而是集成在主板上。在只能够和系统总线频率同步的L3缓存同主内存其实差不了多少。后来使用L3缓存的是英特尔为服务器市场所推出的Itanium处理器。接着就是P4EE和至强MP。Intel还打算推出一款9MB L3缓存的Itanium2处理器,和以后24MB L3缓存的双核心Itanium2处理器。
但基本上L3缓存对处理器的性能提高显得不是很重要,比方配备1MB L3缓存的Xeon MP处理器却仍然不是Opteron的对手,由此可见前端总线的增加,要比缓存增加带来更有效的性能提升。
7.CPU扩展指令集
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有...
CPU型号大全总结
作者:cmscn 日期:2007-03-16
任何东西从发展到壮大都会经历一个过程,CPU能够发展到今天这个规模和成就,其中的发展史更是耐人寻味。作为电脑之“芯”的CPU也不例外,本文让我们进入时间不长却风云激荡的CPU发展历程中去。在这个回顾的过程中,我们主要叙述了目前两大CPU巨头——Intel和AMD的产品发展历程,对于其他的CPU公司,例如Cyrix和IDT等,因为其产品我们极少见到,篇幅所限我们就不再累述了。
一、X86时代的CPU
CPU的溯源可以一直去到1971年。在那一年,当时还处在发展阶段的INTEL公司推出了世界上第一台微处理器4004。这不但是第一个用于计算器的4位微处理器,也是第一款个人有能力买得起的电脑处理器!!4004含有2300个晶体管,功能相当有限,而且速度还很慢,被当时的蓝色巨人IBM以及大部分商业用户不屑一顾,但是它毕竟是划时代的产品,从此以后,INTEL便与微处理器结下了不解之缘。可以这么说,CPU的历史发展历程其实也就是INTEL公司X86系列CPU的发展历程,我们就通过它来展开我们的“CPU历史之旅”。
4004处理器核心架构图
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机中,开创了全新的微机时代。也正是从8088开始,PC机(个人电脑)的概念开始在全世界范围内发展起来。
Intel 8086处理器
1982年,许多年轻的读者尚在襁褓之中的时候,INTE已经推出了划时代的最新产品棗80286芯片,该芯片比8006和8088都有了飞跃的发展,虽然它仍旧是16位结构,但是在CPU的内部含有13.4万个晶体管,时钟频率由最初的6MHz逐步提高到20MHz。其内部和外部数据总线皆为16位,地址总线24位,可寻址16MB内存。从80286开始,CPU的工作方式也演变出两种来:实模式和保护模式。
Intel 80286处理器
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年推出的80386SX是市场定位在80286和80386DX之间的一种芯片,其与80386DX的不同在于外部数据总线和地址总线皆与80286相同,分别是16位和24位(即寻址能力为16MB)。1990年推出的80386 SL和80386 DL都是低功耗、节能型芯片,主要用于便携机和节能型台式机。80386 SL与80386 DL的不同在于前者是基于80386SX的,后者是基于80386DX的,但两者皆增加了一种新的工作方式:系统管理方式(SMM)。当进入系统管理方式后,CPU就自动降低运行速度、控制显示屏和硬盘等其它部件暂停工作,甚至停止运行,进入“休眠”状态,以达到节能目的。
Intel 80386处理器
1989年,我们大家耳熟能详的80486芯片由INTEL推出,这种芯片的伟大之处就在于它实破了100万个晶体管的界限,集成了120万个晶体管。80486的时钟频率从25MHz逐步提高到33MHz、50MHz。80486是将80386和数学协处理器80387以及一个8KB的高速缓存集成在一个芯片内,并且在80X86系列中首次采用了RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。它还采用了突发总线方式,大大提高了与内存的数据交换速度。由于这些改进,80486的性能比带有80387数学协处理器的80386DX提高了4倍。80486和80386一样,也陆续出现了几种类型。上面介绍的最初类型是80486DX。1990年推出了80486SX,它是486类型中的一种低价格机型,其与80486DX的区别在于它没有数学协处理器。80486 DX2由系用了时钟倍频技术,也就是说芯片内部的运行速度是外部总线运行速度的两倍,即芯片内部以2倍于系统时钟的速度运行,但仍以原有时钟速度与外界通讯。80486 DX2的内部时钟频率主要有40MHz、50MHz、66MHz等。80486 DX4也是采用了时钟倍频技术的芯片,它允许其内部单元以2倍或3倍于外部总线的速度运行。为了支持这种提高了的内部工作频率,它的片内高速缓存扩大到16KB。80486 DX4的时钟频率为100MHz,其运行速度比66MHz的80486 DX2快40%。80486也有SL增强类型,其具有系统管理方式,用于便携机或节能型台式机。
二、奔腾时代的CPU
继承着80486大获成功的东风,赚翻了几倍资金的INTEL在1993年推出了全新一代的高性能处理器——奔腾。由于CPU市场的竞争越来越趋向于激烈化,INTEL觉得不能再让AMD和其他公司用同样的名字来抢自己的饭碗了,于是提出了商标注册,由于在美国的法律里面是不能用阿拉伯数字注册的,于是INTEL玩了哥花样,用拉丁文去注册商标。奔腾在拉丁文里面就是“五”的意思了。INTEL公司还替它起了一个相当好听的中文名字——奔腾。奔腾的厂家代号是P54C,奔腾的内部含有的晶体管数量高达310万个,时钟频率由最初推出的60MHZ和66MHZ,后提高到200MHZ。单单是最初版本的66MHZ的奔腾微处理器,它的运算性能比33MHZ的80486 DX就提高了3倍多,而100MHZ的奔腾则比33MHZ的80486 DX要快6至8倍。也就是从奔腾开始,我们大家有了超频这样一个用尽量少的钱换取尽量多的性能的好方法。作为世界上第一个586级处理器,奔腾也是第一个令人超频的最多的处理器,由于奔腾的制造工艺优良,所以整个系列的CPU的浮点性能也是各种各样性能是CPU中最强的,可超频性能最大,因此赢得了586级CPU的大部分市场。奔腾家族里面的频率有60/66/75//90/100/120/133/150/166/200,至于CPU的内部频率则是从60MHz到66MHz不等。值得一提的是,从奔腾75开始,CPU的插座技术正式从以前的Socket4转换到同时支持Socket 5和7同时支持,其中Socket 7还一直沿用至今。而且所有的奔腾 CPU里面都已经内置了16K的一级缓存,这样使它的处理性能更加强大。
Intel 奔腾处理器
与此同时,AMD公司也不甘示弱推出了K5系列的CPU。(AMD公司也改名字了!)它的频率一共有六种:75/90/100/120/133/166,内部总线的频率和奔腾差不多,都是60或者66MHz,虽然它在浮点 运算方面比不上奔腾,但是由于K5系列CPU都内置了24KB的一级缓存,比奔腾内置的16KB多出了一半,因此在整数运算和系统整体性能方面甚至要高于同频率的奔腾。即便如此,因为k5系列的 交付日期一再后拖,AMD公司在“586”级别的竞争中最终还是败给了INTEL。
查看更多...
一、X86时代的CPU
CPU的溯源可以一直去到1971年。在那一年,当时还处在发展阶段的INTEL公司推出了世界上第一台微处理器4004。这不但是第一个用于计算器的4位微处理器,也是第一款个人有能力买得起的电脑处理器!!4004含有2300个晶体管,功能相当有限,而且速度还很慢,被当时的蓝色巨人IBM以及大部分商业用户不屑一顾,但是它毕竟是划时代的产品,从此以后,INTEL便与微处理器结下了不解之缘。可以这么说,CPU的历史发展历程其实也就是INTEL公司X86系列CPU的发展历程,我们就通过它来展开我们的“CPU历史之旅”。
4004处理器核心架构图
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机中,开创了全新的微机时代。也正是从8088开始,PC机(个人电脑)的概念开始在全世界范围内发展起来。
Intel 8086处理器
1982年,许多年轻的读者尚在襁褓之中的时候,INTE已经推出了划时代的最新产品棗80286芯片,该芯片比8006和8088都有了飞跃的发展,虽然它仍旧是16位结构,但是在CPU的内部含有13.4万个晶体管,时钟频率由最初的6MHz逐步提高到20MHz。其内部和外部数据总线皆为16位,地址总线24位,可寻址16MB内存。从80286开始,CPU的工作方式也演变出两种来:实模式和保护模式。
Intel 80286处理器
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年推出的80386SX是市场定位在80286和80386DX之间的一种芯片,其与80386DX的不同在于外部数据总线和地址总线皆与80286相同,分别是16位和24位(即寻址能力为16MB)。1990年推出的80386 SL和80386 DL都是低功耗、节能型芯片,主要用于便携机和节能型台式机。80386 SL与80386 DL的不同在于前者是基于80386SX的,后者是基于80386DX的,但两者皆增加了一种新的工作方式:系统管理方式(SMM)。当进入系统管理方式后,CPU就自动降低运行速度、控制显示屏和硬盘等其它部件暂停工作,甚至停止运行,进入“休眠”状态,以达到节能目的。
Intel 80386处理器
1989年,我们大家耳熟能详的80486芯片由INTEL推出,这种芯片的伟大之处就在于它实破了100万个晶体管的界限,集成了120万个晶体管。80486的时钟频率从25MHz逐步提高到33MHz、50MHz。80486是将80386和数学协处理器80387以及一个8KB的高速缓存集成在一个芯片内,并且在80X86系列中首次采用了RISC(精简指令集)技术,可以在一个时钟周期内执行一条指令。它还采用了突发总线方式,大大提高了与内存的数据交换速度。由于这些改进,80486的性能比带有80387数学协处理器的80386DX提高了4倍。80486和80386一样,也陆续出现了几种类型。上面介绍的最初类型是80486DX。1990年推出了80486SX,它是486类型中的一种低价格机型,其与80486DX的区别在于它没有数学协处理器。80486 DX2由系用了时钟倍频技术,也就是说芯片内部的运行速度是外部总线运行速度的两倍,即芯片内部以2倍于系统时钟的速度运行,但仍以原有时钟速度与外界通讯。80486 DX2的内部时钟频率主要有40MHz、50MHz、66MHz等。80486 DX4也是采用了时钟倍频技术的芯片,它允许其内部单元以2倍或3倍于外部总线的速度运行。为了支持这种提高了的内部工作频率,它的片内高速缓存扩大到16KB。80486 DX4的时钟频率为100MHz,其运行速度比66MHz的80486 DX2快40%。80486也有SL增强类型,其具有系统管理方式,用于便携机或节能型台式机。
二、奔腾时代的CPU
继承着80486大获成功的东风,赚翻了几倍资金的INTEL在1993年推出了全新一代的高性能处理器——奔腾。由于CPU市场的竞争越来越趋向于激烈化,INTEL觉得不能再让AMD和其他公司用同样的名字来抢自己的饭碗了,于是提出了商标注册,由于在美国的法律里面是不能用阿拉伯数字注册的,于是INTEL玩了哥花样,用拉丁文去注册商标。奔腾在拉丁文里面就是“五”的意思了。INTEL公司还替它起了一个相当好听的中文名字——奔腾。奔腾的厂家代号是P54C,奔腾的内部含有的晶体管数量高达310万个,时钟频率由最初推出的60MHZ和66MHZ,后提高到200MHZ。单单是最初版本的66MHZ的奔腾微处理器,它的运算性能比33MHZ的80486 DX就提高了3倍多,而100MHZ的奔腾则比33MHZ的80486 DX要快6至8倍。也就是从奔腾开始,我们大家有了超频这样一个用尽量少的钱换取尽量多的性能的好方法。作为世界上第一个586级处理器,奔腾也是第一个令人超频的最多的处理器,由于奔腾的制造工艺优良,所以整个系列的CPU的浮点性能也是各种各样性能是CPU中最强的,可超频性能最大,因此赢得了586级CPU的大部分市场。奔腾家族里面的频率有60/66/75//90/100/120/133/150/166/200,至于CPU的内部频率则是从60MHz到66MHz不等。值得一提的是,从奔腾75开始,CPU的插座技术正式从以前的Socket4转换到同时支持Socket 5和7同时支持,其中Socket 7还一直沿用至今。而且所有的奔腾 CPU里面都已经内置了16K的一级缓存,这样使它的处理性能更加强大。
Intel 奔腾处理器
与此同时,AMD公司也不甘示弱推出了K5系列的CPU。(AMD公司也改名字了!)它的频率一共有六种:75/90/100/120/133/166,内部总线的频率和奔腾差不多,都是60或者66MHz,虽然它在浮点 运算方面比不上奔腾,但是由于K5系列CPU都内置了24KB的一级缓存,比奔腾内置的16KB多出了一半,因此在整数运算和系统整体性能方面甚至要高于同频率的奔腾。即便如此,因为k5系列的 交付日期一再后拖,AMD公司在“586”级别的竞争中最终还是败给了INTEL。
切图后全屏的代码
作者:cmscn 日期:2007-03-16
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>北京舞蹈学院</title>
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>北京舞蹈学院</title>
即划即译插件
作者:cmscn 日期:2007-03-15
很智能的即划即译功能,点此看演示>>
效果如图:
什么是即划即译 ?
在浏览网站时,如果您双击或者用鼠标拖动选择一个单词或或一段短文,就会出现一个浮动的层,显示其译文,这就是“即划即译”功能。
注意:不支持150字以上的短文翻译!
GB2312编码的站点和博客,请插入如下代码
UTF-8编码的站点和博客,请插入如下代码
即划即译使用说明:
1、选择与您的站点编码相同的即划即译代码,放于站点的<body></body>之间。
2、如您的网页中包含框架(frame),请在每个框架内分别添加即划即译代码。
3、如您不想用户使用即划即译“禁用”功能,请去掉代码中的“代码片断a”部分。
4、用户可自行修改代码片断a中的HTML代码和CSS样式以达到想要的效果。
效果如图:
什么是即划即译 ?
在浏览网站时,如果您双击或者用鼠标拖动选择一个单词或或一段短文,就会出现一个浮动的层,显示其译文,这就是“即划即译”功能。
注意:不支持150字以上的短文翻译!
GB2312编码的站点和博客,请插入如下代码
UTF-8编码的站点和博客,请插入如下代码
<!-- 即划即译-代码开始-->
<!-- 获取代码:http://elansorcn.elanso.com Copyright 2007 Elanso Corp.-->
<SCRIPT><!-- //Elansor_charset="UTF-8"
var Elansor_Yoursitename="elanso";//请修改成您的网站简称,建议5个字内
var Elansor_charset=document.charset.toLowerCase();//如果您的网页头部未定义charset,请手动在此处修改网页编码
--></SCRIPT>
<!--代码片断a开始-->
<div align="center" style="background-color:#E6EFFF; padding:5px; width:150px; display:inline">
<span id="Elansor_openDict2"></span>
<a href="javascript:openDictF();" id="Elansor_openDict"></a>
</div>
<!--代码片断a结束-->
<link href="http://elansorcn.elanso.com/tool/translate/images/main.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" id="Elansor_insertmean"></script>
<script language="javascript1.2" type="text/javascript" src="http://elansorcn.elanso.com/tool/translate/trans.js"></script>
<!--即划即译-代码结束 -->
<!-- 获取代码:http://elansorcn.elanso.com Copyright 2007 Elanso Corp.-->
<SCRIPT><!-- //Elansor_charset="UTF-8"
var Elansor_Yoursitename="elanso";//请修改成您的网站简称,建议5个字内
var Elansor_charset=document.charset.toLowerCase();//如果您的网页头部未定义charset,请手动在此处修改网页编码
--></SCRIPT>
<!--代码片断a开始-->
<div align="center" style="background-color:#E6EFFF; padding:5px; width:150px; display:inline">
<span id="Elansor_openDict2"></span>
<a href="javascript:openDictF();" id="Elansor_openDict"></a>
</div>
<!--代码片断a结束-->
<link href="http://elansorcn.elanso.com/tool/translate/images/main.css" rel="stylesheet" type="text/css" />
<script language="javascript" type="text/javascript" id="Elansor_insertmean"></script>
<script language="javascript1.2" type="text/javascript" src="http://elansorcn.elanso.com/tool/translate/trans.js"></script>
<!--即划即译-代码结束 -->
即划即译使用说明:
1、选择与您的站点编码相同的即划即译代码,放于站点的<body></body>之间。
2、如您的网页中包含框架(frame),请在每个框架内分别添加即划即译代码。
3、如您不想用户使用即划即译“禁用”功能,请去掉代码中的“代码片断a”部分。
4、用户可自行修改代码片断a中的HTML代码和CSS样式以达到想要的效果。
黄页调用
作者:cmscn 日期:2007-03-11
sub pris_list1(f_title,f_num)
%>
<table class=table>
<tr><td class=td> <%response.write img_skin(web_img_m)%> <%response.write f_title%></td></tr>
<tr class=bg_td><td>
<table border=0 cellspacing=0 cellpadding=2 width='100%'>
<%
sql="select top 15 id,c_id,name,counter from pris where hidden=1 and c_id="&f_num&" order by id desc"
set rs=joekoe_cms.exec(sql,1)
do while not rs.eof
response.write "<tr>"
%>
<td>
<%response.write img_skin(web_img_h)%>
<a href="pris_view.asp?c_id=<%response.write rs("c_id")%>&s_id=<%response.write sid%>&id=<%response.write rs("id")%>" alt='<%response.write joekoe_cms.code_js(joekoe_cms.code_html(rs("name"),1,0),1)%>' target=_blank>
<%response.write joekoe_cms.code_js(joekoe_cms.code_html(rs("name"),1,16),1)%></a></td>
<%
rs.movenext
loop
rs.close
%>
<table border=0 cellspacing=0 cellpadding=0 width='100%'>
<tr><td align=right><a href="pris_list.asp?c_id=<%response.write f_num%>">浏览更多…</a> </td></tr>
</table></td></tr></table>
<%
end sub
%>
<table class=table>
<tr><td class=td> <%response.write img_skin(web_img_m)%> <%response.write f_title%></td></tr>
<tr class=bg_td><td>
<table border=0 cellspacing=0 cellpadding=2 width='100%'>
<%
sql="select top 15 id,c_id,name,counter from pris where hidden=1 and c_id="&f_num&" order by id desc"
set rs=joekoe_cms.exec(sql,1)
do while not rs.eof
response.write "<tr>"
%>
<td>
<%response.write img_skin(web_img_h)%>
<a href="pris_view.asp?c_id=<%response.write rs("c_id")%>&s_id=<%response.write sid%>&id=<%response.write rs("id")%>" alt='<%response.write joekoe_cms.code_js(joekoe_cms.code_html(rs("name"),1,0),1)%>' target=_blank>
<%response.write joekoe_cms.code_js(joekoe_cms.code_html(rs("name"),1,16),1)%></a></td>
<%
rs.movenext
loop
rs.close
%>
<table border=0 cellspacing=0 cellpadding=0 width='100%'>
<tr><td align=right><a href="pris_list.asp?c_id=<%response.write f_num%>">浏览更多…</a> </td></tr>
</table></td></tr></table>
<%
end sub
论坛与新闻图片调用
作者:cmscn 日期:2007-03-11
Lightbox JS
作者:cmscn 日期:2007-03-11
概要
Lightbox JS 是一个简单而又谦恭的用来把图片覆盖在当前页面上的脚本. 它能被快速安装并且运作于所有流行的浏览器.
最新更新 Version 2.0
图片集: 分组相关的图片并且能轻松的导航它们
视觉特效: 奇特的自适应调整
向后兼容: yes!
如何使用:
步骤 1 - 安装
Lightbox v2.0 使用 Prototype 框架和 Scriptaculous 效果库. 你将需要外调这三个 Javascript 文件在你的 header.
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
2.外调 Lightbox CSS 文件 (或添加 Lightbox 样式到你现行的样式表中).
3.检查 CSS 并确定调用的 prev.gif 和 next.gif 文件在正确的位置. 同样要确定调用的 loading.gif 和 close.gif 文件及 lightbox.js 文件在正确的位置.
步骤 2 - 激活
1.添加 rel="lightbox" 属性到任何一个链接标签去激活lightbox. 例如:
2.可选择项: 使用 title 属性加上说明.
如果你有一套你想分组的相关图片, 接着上一部并且又在 rel 属性中添加一个带方括号的组名. 例如:
没有限定每个页面的图片组数量和每个图片组图片的数量. 疯了!
下载:
http://www.makewing.com/lanren/js/26/index.htm
Lightbox JS 是一个简单而又谦恭的用来把图片覆盖在当前页面上的脚本. 它能被快速安装并且运作于所有流行的浏览器.
最新更新 Version 2.0
图片集: 分组相关的图片并且能轻松的导航它们
视觉特效: 奇特的自适应调整
向后兼容: yes!
如何使用:
步骤 1 - 安装
Lightbox v2.0 使用 Prototype 框架和 Scriptaculous 效果库. 你将需要外调这三个 Javascript 文件在你的 header.
引用内容
<script type="text/javascript" src="js/prototype.js"></script>
<script type="text/javascript" src="js/scriptaculous.js?load=effects"></script>
<script type="text/javascript" src="js/lightbox.js"></script>
2.外调 Lightbox CSS 文件 (或添加 Lightbox 样式到你现行的样式表中).
引用内容
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />
3.检查 CSS 并确定调用的 prev.gif 和 next.gif 文件在正确的位置. 同样要确定调用的 loading.gif 和 close.gif 文件及 lightbox.js 文件在正确的位置.
步骤 2 - 激活
1.添加 rel="lightbox" 属性到任何一个链接标签去激活lightbox. 例如:
引用内容
<a href="images/image-1.jpg" rel="lightbox" title="my caption">image #1</a>
2.可选择项: 使用 title 属性加上说明.
如果你有一套你想分组的相关图片, 接着上一部并且又在 rel 属性中添加一个带方括号的组名. 例如:
引用内容
<a href="images/image-1.jpg" rel="lightbox[roadtrip]">image #1</a>
<a href="images/image-2.jpg" rel="lightbox[roadtrip]">image #2</a>
<a href="images/image-3.jpg" rel="lightbox[roadtrip]">image #3</a>
<a href="images/image-2.jpg" rel="lightbox[roadtrip]">image #2</a>
<a href="images/image-3.jpg" rel="lightbox[roadtrip]">image #3</a>
没有限定每个页面的图片组数量和每个图片组图片的数量. 疯了!
下载:
http://www.makewing.com/lanren/js/26/index.htm
[CMS]有关Cookies、Session、Application在CMS2里的正确使用方法
作者:cmscn 日期:2007-03-07
Cookies的使用方法
写入Cookies
Sub cookies_set(ByVal cookiesname As String, ByVal cookiesvar As Variant)
示例:call joekoe_cms.cookies_set("test","test word")
读取Cookies
Function cookies_get(ByVal cookiesname As String) As Variant
示例:teststr=joekoe_cms.cookies_get("test")
删除Cookies
Sub cookies_del(ByVal cookiesname As String)
示例:call joekoe_cms.cookies_del("test")
相关注意事项
在系统页面重定之前请使用如下语句:
call joekoe_cms.cookies_load()
Session的使用方法
写入Session
Sub session_set(ByVal sessionname As String, ByVal sessionvar As Variant)
示例:call joekoe_cms.session_set("test","test word")
读取Session
Function session_get(ByVal sessionname As String) As Variant
示例:teststr=joekoe_cms.session_get("test")
删除Session
Sub session_del(ByVal sessionname As String)
示例:call joekoe_cms.session_del("test")
Application的使用方法(缓存)
写入缓存
Sub cache_set(ByVal cachename As String, ByVal cachevar As Variant)
示例:call joekoe_cms.cache_set("test","test word")
读取缓存
Function cache_get(ByVal cachename As String) As Variant
示例:teststr=joekoe_cms.cache_get("test")
删除单个缓存
Sub cache_del(ByVal cachename As String)
示例:call joekoe_cms.cache_del("test")
删除一组缓存
Sub cache_delete(Optional ByVal cnv As String = "")
示例:
call joekoe_cms.cache_delete("forum_")
上面这一句将删除所有开头为“forum_”的缓存,如“forum_data”,“forum_tops”等
call joekoe_cms.cache_delete()
上面这一句将删除网站当前使用的所有缓存,在使用时请注意
判断缓存是否存在
Function is_cache(ByVal c_obj As String) as Boolean
示例:
if joekoe_cms.is_cache("forum_data") then
'缓存“forum_data”存在时的操作
else
'缓存“forum_data”不存在时的操作
end if
写入Cookies
Sub cookies_set(ByVal cookiesname As String, ByVal cookiesvar As Variant)
示例:call joekoe_cms.cookies_set("test","test word")
读取Cookies
Function cookies_get(ByVal cookiesname As String) As Variant
示例:teststr=joekoe_cms.cookies_get("test")
删除Cookies
Sub cookies_del(ByVal cookiesname As String)
示例:call joekoe_cms.cookies_del("test")
相关注意事项
在系统页面重定之前请使用如下语句:
call joekoe_cms.cookies_load()
Session的使用方法
写入Session
Sub session_set(ByVal sessionname As String, ByVal sessionvar As Variant)
示例:call joekoe_cms.session_set("test","test word")
读取Session
Function session_get(ByVal sessionname As String) As Variant
示例:teststr=joekoe_cms.session_get("test")
删除Session
Sub session_del(ByVal sessionname As String)
示例:call joekoe_cms.session_del("test")
Application的使用方法(缓存)
写入缓存
Sub cache_set(ByVal cachename As String, ByVal cachevar As Variant)
示例:call joekoe_cms.cache_set("test","test word")
读取缓存
Function cache_get(ByVal cachename As String) As Variant
示例:teststr=joekoe_cms.cache_get("test")
删除单个缓存
Sub cache_del(ByVal cachename As String)
示例:call joekoe_cms.cache_del("test")
删除一组缓存
Sub cache_delete(Optional ByVal cnv As String = "")
示例:
call joekoe_cms.cache_delete("forum_")
上面这一句将删除所有开头为“forum_”的缓存,如“forum_data”,“forum_tops”等
call joekoe_cms.cache_delete()
上面这一句将删除网站当前使用的所有缓存,在使用时请注意
判断缓存是否存在
Function is_cache(ByVal c_obj As String) as Boolean
示例:
if joekoe_cms.is_cache("forum_data") then
'缓存“forum_data”存在时的操作
else
'缓存“forum_data”不存在时的操作
end if