怎么解释HT技术呀???

怎么解释HT技术呀???


怎么解释HT技术呀???
超线程技术,超线程技术,无论看电视还是上网,对我这些电脑爱好者(偏偏还是菜鸟)来说,即充满神秘感有具备吸引力,可到底什么是超线程技术呢?
......
2003年,Intel的Hyper-Threading(超线程)技术吸引了不少用户的目光,也是商家宣传产品是常用的名词。其实早在Intel IDF Fall 2001上,Intel就公布了此项技术会在Xeon处理器上得到应用,据称能够提高40%的处理器性能。而时隔两年后,桌面处理器也开始改朝换代,Intel终于把本来只用在服务器CPU上的HT技术引入到桌面处理器。在大部分人眼里,HT技术或许被认为是把一颗CPU作为两颗来用,事实上并不是以一当二那样简单。
一、Intel的强力武器——HT技术
CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。有没有其他方法可以提高CPU性能呢?事实上从Intel的实践中得到一个很明确的答案。尽管提高CPU的时钟频率和增加缓存容量后的确可以改善性能,但这仍然不能完全发掘出CPU的潜能,基于很多原因,CPU的执行单元都没有被充分使用。通常来讲,如果CPU不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外一个理由就是目前大多数执行线程缺乏ILP(instruction-level parallelism,多种指令同时执行)支持。因此,Intel则考虑变一个思路去挖掘处理器的性能,如果有种方法可以同时执行多重线程,就能够让CPU发挥更大效率,那就是超线程(Hyper-Threading)技术,超线程技术减少了系统资源的浪费,可以把一颗CPU模拟成两颗CPU使用,在同时间内更有效地利用资源来提高性能。但在目前处理器技术条件下,HT技术是否能充分地发挥呢?因此,我们很有必要来分析一下HT技术的过去、现在以及未来的发展。
二、一朝换一朝——HT技术的演变历程
1.单线程时代
我们知道,应用程序通常是由一组一组连串的代码所组成,CPU需要完成某些任务,就必须要全部执行完所有的程序代码才能让我们得到需要的数据。所以,在以前的DOS时代,处理器在同一时间内只会运行一个任务直到完毕,然后再接着运行第二个任务,我们通常把它称之为“Single Threaded”(即“单线程”)。
2.多任务处理的出现
毋庸置疑,单线程处理方式是十分不方便的,每一个程序都会完全占用CPU全部的资源,在开始执行下一个工作任务时,要等上一个工作任务执行完了才行,中间不能暂停。到了Windows 3.1时代,程序终于能够在执行中暂时停止某个作业去开始另一个任务,但其原理并非真正的多任务处理,只是不断暂停和不断地切换工作,这个执行方式称为Multi-Tasking(多任务处理),这样的执行方式虽然不怎么理想。直至1995年,Microsoft 的Windows 95系统出现,改写了桌面操作平台的历史,也改变了程序执行的处理方式,Windows95系统中才出现了真正的Multi-Tasking(多任务处理),我们知道程序的运行中,总会出现时间的闲置。而多任务处理刚好利用了这个特点,系统能在同一时间内运行多个程序,原理是切换前一个程序运行中出现的闲置来同时执行别的程序,当前一个程序的闲置时间完毕又继续运行,以此类推。
3.多处理器作业的过渡
Multi-Tasking(多任务处理)虽然能同一时间执行多个程序,但其实在同一时间内,CPU只是执行一组程序而非多个任务,只是利用了CPU闲置时间切换到其他程序的执行,而并非真正的同步执行。因此,一些服务器由于要应付在同一时间内,可能被要求执行多个程序任务,那么就必须利用Multi-Processing(多处理器作业)。Multi-Processing就是我们平时所看到在一个主板里,安装多个CPU来达到更有效处理程序的目的。当执行多个程序时,可交给不同的CPU同时执行,而不是等待CPU闲置来切换,这样的执行方式是非常有效的。不仅如此,如果应用程序是优化成多处理器作业的话,程序能把工作分给系统内不同的CPU同时处理,大大减少了运算时间,但程序没有被优化为多处理的话,程序只能使用单颗处理器,而另外一个处理器则会闲置不工作,实现真正意义上的多任务处理,需要硬件和软件(包括系统以及应用软件)的同时支持。但目前为此,多处理器工作方式结合支持多处理器的操作系统(如Windows2003、Windows2000服务器版,WinXP)被广泛应用。
4.超线程时代的来临
对于Hyper-Threading而言,是否等于两个处理器同时运行的性能呢?Hyper-Threading又和Multi-Processing有区别吗?Hyper-Threading是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,这是一个非常不错的设计,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%,但除了这些外,其余部分例如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache则保持不变,这些部分是被分享的,由此可见,Hyper-Threading的性能并不等于两颗CPU的性能。
三、Hyper-Threading的问题还很多
上面提到,Pentium 4 HT多加入一个Logical CPU Pointer,因此能同时处理器两个线程,而且同时分享处理器内的资源,例如FPU、ALU等,减少了资源的浪费。由于不是每一线程都完全占用CPU内的资源,空出来的便可以给另外一个线程使用,从图1我们可以得知,在没有Hyper-Threading的情况下,程序不能同时执行,同一时间下,运行中CPU的资源是不能被分享给其他程序,资源大大被浪费了;而在Hyper-Threading技术下,减少了每个处理周期对CPU资源的浪费,在这个技术下,程序在同一时间被同时执行,CPU资源能同时被分享,减少了资源浪费,提高了处理效率。
虽然Hyper-Threading能同时执行两个线程,但它并不是两个真正的CPU那样,各CPU都具有独立的资源。如果两个线程都同时需要某一个资源时,其中一个要暂时停止并让出资源,要等这些资源闲置后才能继续。举一个很简单的例子,图2中的程序在单线程6个Cycles(周期)完成,但Multi Processing则只需要3个Cycle就可以处理完毕,由于Hyper-Threading在某个Cycles中CPU的资源出现重叠,因此某个线程会出现延迟,这样性能就会比Single Thread要好,但比Multi Processing要差。当然这里只是一个理论,实际中可能会有偏差。
从以上来看,这个方式是比较理想的,不过Intel的竞争对手AMD也提供过一份对Hyper-Threading不利的资料文件。该文件指出了Hyper-Threading技术存在的一些问题:如某些情况下,当两个线程同时要求同一个资源时,就会出现冲突,解决这个冲突时会出现延迟或需要重新开始执行某个程序,当冲突大量出现时,性能就会减低,甚至会比没有Hyper-Threading时更差。的确,Hyper-Threading对支持Multi-Processor的程序性能有一定帮助,但是目前又有多少程序支持Multi-Processor呢?那么,当只支持单线程的程序运行时,P4 HT是否会让其中一个Logical CPU出现闲置呢?
其实,Intel P4 HT有两个Hyper-Threading运行模式,Single Task Mode及Multi Task Mode,当程序不支持Multi-Processing时,系统会停止其中一个Logical CPU的运行,把资源集中于单一Logical CPU中,让单线程程序不会导致其中一个Logical CPU闲置而减低性能,但由于被停止运行的Logical CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行Single Task Mode程序模式时,有可能达不到没有Hyper-Threading功能的CPU的性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。
四、将Hyper-Threading进行到底
基于Hyper-Threading技术的优势,Intel会在后续产品中继续采用该技术。但摆在眼前的事情,就是如何解决Hyper-Threading技术出现的问题,如何才能真正让Hyper-Threading技术发挥出性能的极限呢?
Intel明白在目前单核心处理器中,Hyper-Threading技术并不能体现完美,因为在单一核心的处理器中使用Hyper-Threading技术,ALU及Cache等都是共同使用的,这样让它们有机会发生冲突而使性能不增反减。
在Intel的蓝图计划中,未来处理器将进入多核心时代,即在同一个处理器中拥有多个处理核心,其核心内的资源都是独立的,核心与核心之间沟通的Latency会比多处理器更加有效,这样就能使得在Hyper-Threading技术下不共同享用ALU及Cache等等,自然解决了以上种种问题。预计Intel 2005年会推出双核心的处理器,在未来将进入多核心时代,到那时,Hyper-Threading技术的性能才会得到全部发挥。
最后,要完全普及Hyper-Threading,还需要支持多处理器的操作系统来支持,这样,操作系统才会把不同的线程安排给两个“处理器”去执行,否则,即使是处理器拥有Hyper-Threading技术,也不能完全发挥出它应有的效能。不过,就软件的支持来说,目前IA-32代码的软件,无须任何修改就能够在拥有Hyper-Threading技术的处理器上运行。某些专业的应用软件也已经在现有版本中整合了对多线程系统的支持,例如3ds max、Maya等软件。处理器的革命同时也使软件产业革命出现,少了任何一个,都无法得到一举成功!
超线程技术,超线程技术,无论看电视还是上网,对我这些电脑爱好者(偏偏还是菜鸟)来说,即充满神秘感有具备吸引力,可到底什么是超线程技术呢?
......
2003年,Intel的Hyper-Threading(超线程)技术吸引了不少用户的目光,也是商家宣传产品是常用的名词。其实早在Intel IDF Fall 2001上,Intel就公布了此项技术会在Xeon处理器上得到应用,据称能够提高40%的处理器性能。而时隔两年后,桌面处理器也开始改朝换代,Intel终于把本来只用在服务器CPU上的HT技术引入到桌面处理器。在大部分人眼里,HT技术或许被认为是把一颗CPU作为两颗来用,事实上并不是以一当二那样简单。
一、Intel的强力武器——HT技术
CPU生产商为了提高CPU的性能,通常做法是提高CPU的时钟频率和增加缓存容量。不过目前CPU的频率越来越快,如果再通过提升CPU频率和增加缓存的方法来提高性能,往往会受到制造工艺上的限制以及成本过高的制约。有没有其他方法可以提高CPU性能呢?事实上从Intel的实践中得到一个很明确的答案。尽管提高CPU的时钟频率和增加缓存容量后的确可以改善性能,但这仍然不能完全发掘出CPU的潜能,基于很多原因,CPU的执行单元都没有被充分使用。通常来讲,如果CPU不能正常读取数据(总线/内存的瓶颈),其执行单元利用率会明显下降。另外一个理由就是目前大多数执行线程缺乏ILP(instruction-level parallelism,多种指令同时执行)支持。因此,Intel则考虑变一个思路去挖掘处理器的性能,如果有种方法可以同时执行多重线程,就能够让CPU发挥更大效率,那就是超线程(Hyper-Threading)技术,超线程技术减少了系统资源的浪费,可以把一颗CPU模拟成两颗CPU使用,在同时间内更有效地利用资源来提高性能。但在目前处理器技术条件下,HT技术是否能充分地发挥呢?因此,我们很有必要来分析一下HT技术的过去、现在以及未来的发展。
二、一朝换一朝——HT技术的演变历程
1.单线程时代
我们知道,应用程序通常是由一组一组连串的代码所组成,CPU需要完成某些任务,就必须要全部执行完所有的程序代码才能让我们得到需要的数据。所以,在以前的DOS时代,处理器在同一时间内只会运行一个任务直到完毕,然后再接着运行第二个任务,我们通常把它称之为“Single Threaded”(即“单线程”)。
2.多任务处理的出现
毋庸置疑,单线程处理方式是十分不方便的,每一个程序都会完全占用CPU全部的资源,在开始执行下一个工作任务时,要等上一个工作任务执行完了才行,中间不能暂停。到了Windows 3.1时代,程序终于能够在执行中暂时停止某个作业去开始另一个任务,但其原理并非真正的多任务处理,只是不断暂停和不断地切换工作,这个执行方式称为Multi-Tasking(多任务处理),这样的执行方式虽然不怎么理想。直至1995年,Microsoft 的Windows 95系统出现,改写了桌面操作平台的历史,也改变了程序执行的处理方式,Windows95系统中才出现了真正的Multi-Tasking(多任务处理),我们知道程序的运行中,总会出现时间的闲置。而多任务处理刚好利用了这个特点,系统能在同一时间内运行多个程序,原理是切换前一个程序运行中出现的闲置来同时执行别的程序,当前一个程序的闲置时间完毕又继续运行,以此类推。
3.多处理器作业的过渡
Multi-Tasking(多任务处理)虽然能同一时间执行多个程序,但其实在同一时间内,CPU只是执行一组程序而非多个任务,只是利用了CPU闲置时间切换到其他程序的执行,而并非真正的同步执行。因此,一些服务器由于要应付在同一时间内,可能被要求执行多个程序任务,那么就必须利用Multi-Processing(多处理器作业)。Multi-Processing就是我们平时所看到在一个主板里,安装多个CPU来达到更有效处理程序的目的。当执行多个程序时,可交给不同的CPU同时执行,而不是等待CPU闲置来切换,这样的执行方式是非常有效的。不仅如此,如果应用程序是优化成多处理器作业的话,程序能把工作分给系统内不同的CPU同时处理,大大减少了运算时间,但程序没有被优化为多处理的话,程序只能使用单颗处理器,而另外一个处理器则会闲置不工作,实现真正意义上的多任务处理,需要硬件和软件(包括系统以及应用软件)的同时支持。但目前为此,多处理器工作方式结合支持多处理器的操作系统(如Windows2003、Windows2000服务器版,WinXP)被广泛应用。
4.超线程时代的来临
对于Hyper-Threading而言,是否等于两个处理器同时运行的性能呢?Hyper-Threading又和Multi-Processing有区别吗?Hyper-Threading是在一颗CPU同时执行多个程序而共同分享一颗CPU内的资源,这是一个非常不错的设计,理论上要像两颗CPU一样在同一时间执行两个线程,P4处理器需要多加入一个Logical CPU Pointer(逻辑处理单元)。因此新一代的P4 HT的die的面积比以往的P4增大了5%,但除了这些外,其余部分例如ALU(整数运算单元)、FPU(浮点运算单元)、L2 Cache则保持不变,这些部分是被分享的,由此可见,Hyper-Threading的性能并不等于两颗CPU的性能。
三、Hyper-Threading的问题还很多
上面提到,Pentium 4 HT多加入一个Logical CPU Pointer,因此能同时处理器两个线程,而且同时分享处理器内的资源,例如FPU、ALU等,减少了资源的浪费。由于不是每一线程都完全占用CPU内的资源,空出来的便可以给另外一个线程使用,从图1我们可以得知,在没有Hyper-Threading的情况下,程序不能同时执行,同一时间下,运行中CPU的资源是不能被分享给其他程序,资源大大被浪费了;而在Hyper-Threading技术下,减少了每个处理周期对CPU资源的浪费,在这个技术下,程序在同一时间被同时执行,CPU资源能同时被分享,减少了资源浪费,提高了处理效率。
虽然Hyper-Threading能同时执行两个线程,但它并不是两个真正的CPU那样,各CPU都具有独立的资源。如果两个线程都同时需要某一个资源时,其中一个要暂时停止并让出资源,要等这些资源闲置后才能继续。举一个很简单的例子,图2中的程序在单线程6个Cycles(周期)完成,但Multi Processing则只需要3个Cycle就可以处理完毕,由于Hyper-Threading在某个Cycles中CPU的资源出现重叠,因此某个线程会出现延迟,这样性能就会比Single Thread要好,但比Multi Processing要差。当然这里只是一个理论,实际中可能会有偏差。
从以上来看,这个方式是比较理想的,不过Intel的竞争对手AMD也提供过一份对Hyper-Threading不利的资料文件。该文件指出了Hyper-Threading技术存在的一些问题:如某些情况下,当两个线程同时要求同一个资源时,就会出现冲突,解决这个冲突时会出现延迟或需要重新开始执行某个程序,当冲突大量出现时,性能就会减低,甚至会比没有Hyper-Threading时更差。的确,Hyper-Threading对支持Multi-Processor的程序性能有一定帮助,但是目前又有多少程序支持Multi-Processor呢?那么,当只支持单线程的程序运行时,P4 HT是否会让其中一个Logical CPU出现闲置呢?
其实,Intel P4 HT有两个Hyper-Threading运行模式,Single Task Mode及Multi Task Mode,当程序不支持Multi-Processing时,系统会停止其中一个Logical CPU的运行,把资源集中于单一Logical CPU中,让单线程程序不会导致其中一个Logical CPU闲置而减低性能,但由于被停止运行的Logical CPU还是会等待工作,占用一定的资源,因此Hyper-Threading CPU运行Single Task Mode程序模式时,有可能达不到没有Hyper-Threading功能的CPU的性能,但性能差距不会太大。也就是说,当运行单线程运用软件时,超线程技术甚至会降低系统性能,尤其在多线程操作系统运行单线程软件时容易出现此问题。
四、将Hyper-Threading进行到底
基于Hyper-Threading技术的优势,Intel会在后续产品中继续采用该技术。但摆在眼前的事情,就是如何解决Hyper-Threading技术出现的问题,如何才能真正让Hyper-Threading技术发挥出性能的极限呢?
Intel明白在目前单核心处理器中,Hyper-Threading技术并不能体现完美,因为在单一核心的处理器中使用Hyper-Threading技术,ALU及Cache等都是共同使用的,这样让它们有机会发生冲突而使性能不增反减。
在Intel的蓝图计划中,未来处理器将进入多核心时代,即在同一个处理器中拥有多个处理核心,其核心内的资源都是独立的,核心与核心之间沟通的Latency会比多处理器更加有效,这样就能使得在Hyper-Threading技术下不共同享用ALU及Cache等等,自然解决了以上种种问题。预计Intel 2005年会推出双核心的处理器,在未来将进入多核心时代,到那时,Hyper-Threading技术的性能才会得到全部发挥。
最后,要完全普及Hyper-Threading,还需要支持多处理器的操作系统来支持,这样,操作系统才会把不同的线程安排给两个“处理器”去执行,否则,即使是处理器拥有Hyper-Threading技术,也不能完全发挥出它应有的效能。不过,就软件的支持来说,目前IA-32代码的软件,无须任何修改就能够在拥有Hyper-Threading技术的处理器上运行。某些专业的应用软件也已经在现有版本中整合了对多线程系统的支持,例如3ds max、Maya等软件。处理器的革命同时也使软件产业革命出现,少了任何一个,都无法得到一举成功! 
最简单的一句话就是他能多项任务,速度快就可以了 
晕看了眼花~~~
INTEL Hyper-Threading
AMD   Hyper-Transport 
超线程技术 
同时执行多个执行绪 


cpu的现价
我的电脑硬盘只有C.D两个盘了 怎么才能恢复E.F 盘啊 ?
请指教 交换器和路由器有何区别 作用是什么
液晶显示器
你听过ECS(精英)M930R型主板吗?其性能如何?
256的内存多少钱啊???
内存上为什么??
如何清洗电脑键盘啊?
高手看我的配置合理不
sempron 2500+ 是64位的吗?
请问桌面右下角的是电脑连接图标没有怎么设置呀,已经在网上领居里设置了,但还是不行呀。.
什么是磁盘阵列???
我想找一个安装NERO的刻盘软件,请高人帮忙,谢谢了
想买以款便宜的视频卡,给点意见。
请问高手主板的型号分为哪几种,那些比较贵那些比较便宜
谁知道P4M266A-8235的主板怎么样?具体内容内附
为什么我的硬盘使用4 5个小时后就会发出支支的声音
PDF和DOC文件的转换
页脚 脚注位于页面的什么位置?区分的方法是?
有人要电脑,让我看了他的内存是256,可这会不会是假的呢,实际没这么大啊?
无限上网卡最便宜的要多少钱?包月收费最便宜多少?
朗科U盘,128M的哪个型号最稳定,最好有具体型号价钱,
我想配置一台4000元左右的台式电脑
hardware acceleration?什么意思
mp3的空间不见了
如何选购CPU?
显示器屏幕缩小
捷嘉845pe主板怎么样?
电脑的组装
dvd光驱为什么我的戴尔手提电脑放不了一些光盘
最近开机不能启动,需要把内存条重插一下才行,怎么办?
显示器的几何调节
为什么我把机箱放倒后,硬盘支支声就没有了
IBM T22 红指点相对应的三个键下面那个大的用不了怎么办?
我的U盘被我一脚不小心踢坏了,有可能修好么?
我的电脑硬盘买的时候被分了5个区我想变成4个区
我有2台电脑要通过路由器装建局域网,家里用的是宽带,组好之后必须都好互相访问,我应该怎么做呢
我的XP怎么装不上视频啊?总是有错误提示,我不知道怎么办。
在广州东山口附近哪里有宽带路由器卖啊,最便宜多少钱
这是个什么玩意!
请问高手;256M和128M内存混用问题……
是鼠标的问题还是机子的问题?
笔记本电脑如何购买/
怎么解释HT技术呀???
买什么电脑好啊,请教!!!
现在最好用的杀毒软件是卡巴斯基吗?
什么是ECI
唉!~!~~!~!
这个是什么牌子的
怎样购买电脑
我的MP3播放器只能听到音乐听不清歌词,为什么?
笔记本电脑是否可以安装两个cpu?哪些品牌提供这服务?另外有没有笔记本能装硬件渲染的显卡?
主板+CPU配置问题
如何区别原包原封的盒装CPU和二次封装的CPU
用路由器接两台电脑网速会不会慢啊?
大家帮我看看这个机器配置怎么样?
电脑突然上不到网了,是什么问题呢?
增加内存条,同一型号的就行吗?
主板品牌推荐
9800SE要多少钱?
我的电脑是铭冠848主板,集成声卡,以前用的好好的,可是最近听歌的时候,声音总是变得那么细,不知道怎么回事
关机的时候总是现在关机,就是一直关不了
810主板死机故障
用丽台的6600LE PCI-E的 跑3DMARK05只能跑1800多分 正常么?
开机后屏幕不亮,是什么问题?
精英RS400-A主板怎么样啊?
电脑中的USB端口在哪里禁用???
请问关于超频 小弟一头雾水
我的电脑显卡有硬件冲突,还有一个PCI docking station的驱动不怎么装
打印机打印速度慢
我自己怎么才能制作自己的网叶
P4 1.6G的CPU和C1.7的哪个性能要高些?
如何删除电脑用户帐户
求助,U盘64变成了32那位大侠指点指点修复
增加内存条,同一型号的就行吗?
Windows系统"启动速度缓慢"的原因
帮帮忙~锁住硬盘
电脑主机有持续翁鸣声,何故????
想买品牌机,9000元左右,大家出出意见,买什么的好?
lut是什么东东啊
我的电脑在上网或正常使用时,会时而突然重新启动电脑,这是怎么解决??谢谢
电脑组装好学吗
塞杨D是多少针脚?是否一个型号的塞杨还有针脚区分?
电脑工作时连显示器一起功率大约多少?
笔记本老黑屏
三星、钻石和西捷硬盘(串口160或200)哪个更好些!
选什么喷墨打印机好?
cpu盒装散装有何不同?
我的机器为什么驱不上显卡和声卡
at89c51单片机能不能解密/用什么软件告诉我有重谢!
哪一款华硕主板支持Intel Pentium4 506(64位/盒),并且有集成显卡?
请问在局域网里能不能像共享打印机那样共享音箱,就是我的电脑放音乐在别人的电脑里面响!
程制图用什么CPU.
问150494924
佳能B406E2打印机故障
房县县长是谁?
请问一下要买个组装的电脑,那些参数要注意并且必须达到哪个级别才算不错
内存怎么超频?
SATA是串口的意思吗?
移动硬盘咋用不了了??

100
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 926596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645