缓存溢出对Windows操作系统构成严重威胁,产生这一缺陷的原因在于软件设计的漏洞。恶意程序如果获得在超过预先分配的内存空间的大小的区域内执行指令,那么这块“写”操作的区域已经包含了可执行指令,那么恶意程序就能修改程序代码,破坏系统。防止缓存溢出的通常方法是靠软件在执行数据值之前检查先前的值,但实际上,极少有软件能做到这点。既然软件无法解决,而PC面临的环境又越来越危险,那么只有靠硬件机制来解决了。在E0核心的Pentium4和Celeron D中,集成的指令代码可以利用XD bit机制将内存区域标识为不可执行状态。XD bit机制需要操作系统的配合,因此Windows XP需要SP2补丁,借助XD bit和SP2,可执行代码就不会被恶意代码所替代,减少缓存溢出发生的概率。
增强的挂起模式
在实际的PC应用中,处理器在全负荷条件下工作的时间不多,由于现在的CPU主频越来越高,大多数软件都无法利用CPU的全部工作能力。在较早的操作系统中,处理器在任何情况下都工作在全速模式下。但是现今的处理器功耗和发热量都很大,时刻工作在全速下不仅耗费了能源,也使得CPU的温度很难降下来。
挂起模式就是在CPU空闲的时候向CPU发出HALT指令,使CPU的部分运算单元闲置下来,降低CPU的温度。我们经常使用的CPU Cool软件就是利用这个指令来为CPU降温的。
从Pentium Ⅲ开始,Intel的CPU便开始支持这一模式。而在我们看来,功耗巨大的Prescott核心似乎更需要这样的“挂起模式”。
在E0核心的Prescott中,Intel将处理器的挂起模式升级到了C1E版本,这一版本有下列改进:
1. VRM从9.0升级到了10.1。
2. PROHT信号可以控制CPU的主频,直至降低到2.8GHz。当出现“待机任务Idle Task”的时候,PROHOT针脚便会触发这一降频机制,在降低CPU主频的同时,把CPU的核心电压从1.4V降低至1.2V。
C1E模式仍然需要软件的支持。首先,主板的BIOS必须升级。其次,操作系统必须是Windows XP SP2。由于在待机情况下降低了处理器的主频以及核心电压,因此C1E模式下处理器的功耗节省要比以前的版本都要多。
改进的热量监视模式(Thermal Monitor2)
Intel在Willamette核心的Pentium4中引入了热量监视机制(Thermal Monitor):当侦测到处理器的温度达到预先设定的警戒线后,内部时钟控制器便会在一段时间内让处理器的时钟频率降下来,强行使CPU降温。这一机制在降低处理器温度的时候,也牺牲了处理器的性能。
E0版Prescott核心的热量监视模式更加智能了,因此被称为“Thermal Monitor2”。
当CPU的温度达到警戒线后,Thermal Monitoring 2不是像早先的Thermal Monitor那样强行插入等待时钟周期,让CPU的主频巨幅下降,而是使用PROHOT信号将处理器的主频降低到2.8GHz。 不过在E0的Prescott核心处理器上,Thermal Monitor在某些极端的情况下仍然会发挥作用(比如散热器的风扇没有通电或者停转)。与C1E模式的运用不同,Thermal Monitor2不需主板的BIOS或者是软件的支持即可使用。
1.大家需要留意,并非所有的E0核心的处理器都支持这些新的特征。就目前我们掌握的情况,这些特征只有Socket775接口的Pentium4和Celeron D处理器才具备。对于支持XD bit技术的处理器,Intel会在主频后面加上后缀“J”以示区别。
2.插曲:我的CPU到底工作在什么主频下?
近日德国的Tomshardware.com对Intel盒装的Pentium4 560(D0核心)处理器做了一个测试,发现即使是在严格符合Intel要求的周边环境温度下,采用盒装散热器仍然无法保证将处理器的满负荷温度控制在允许的范围内,这样系统会自动将CPU的主频降至2.8GHz。这就造成了一个事实:花大价钱买的CPU可能会在不知不觉中降频至2.8GHz,而使用的都是符合Intel标准的装备。对于高频的D0和E0核心的Pentium4,看来原装散热器也不是完全可靠的。
●E0核心的Prescott的电气特征
我们列出了三款采用E0核心的高频Pentium4处理器,他们的功耗再度攀上高峰:
主频同为3.4GHz的Pentium4 550和550J分别采用了D0和E0核心,但功耗相差极大。从Socket775开始,Intel使用775_VR_CONFIG这个概念来替代原来的FMB标准。E0核心的Pentium4处理器使用了775_VR_CONFIG_04B这个标准(部分高频的D0核心的Pentium4也必须使用775_VR_CONFIG_04B标准)。而Socket478 Pentium4处理器仍然使用FMB的概念。CPU上有一个特定的PRB针脚来告诉主板这块CPU是04A标准还是04B标准。Intel为E0核心的Pentium4制定的PRB(Platform Require Bit)为1。而PRB=0适用于其他版本的Pentium4。PRB=1意味着只有符合这一标准的主板才能使用E0版本的Pentium4。因为04B标准的Pentium4 J的核心电流达到了119A,这就意味着其配套的主板必须提供足够的电流输出能力。