跳至主要内容

【转】X86架设微处理器的掘墓者--Cell微处理器

X86架设微处理器的掘墓者--Cell微处理器(上)
2007-10-07 13:22
IBM生产的Cell处理器
2001年,IBMSONYSCE(索尼电脑娱乐公司)与东芝4 家厂商决定合作共同研发的新一代高效能微处理器――作为PS3游戏主机的处理器,这枚处理器被命名为"Cell",也就是"细胞"的意思。当时,据宣称,Cell的运算能力将达到史无前例的1TeraFLOPSFloating Operations per Second),即每秒执行万亿次浮点运算,这样的性能绝对可算是超级计算机的级别。当时,世界上最快的计算机是NEC的"地球模拟器",它的运算能力为每秒36万亿浮点运算,换句话说,36PS3游戏机的运算力总和就达到同样的水平。再者,Cell可支持一项特殊的分布式运算技术,多台PS3连接在一起可以分享运算力,由此获得更高的效能。这样的设计理念让人目瞪口呆,外界的第一反应就是,索尼不过是在吊玩家的胃口,而IBM则是在吹牛。
未封装的Cell核心
在这之后,PS3Cell很快被人淡忘,相关消息一直保密,直到2004年,索尼与IBM再度公布了一些关于PS3Cell的消息,据称Cell已经完成设计,处于样品测试阶段,工作频率达到2GHz,很好地实现了预期设计目标,但这仍只是一条纸面上的简单报告,双方都没有展出任何相关样品供参考。此时,外界眼球早已被IntelAMD之间激烈的竞争吸引,专属于游戏机的Cell处理器自然不可能获得业界的广泛注意。20052月,IBM在"国际固态电路会议(IEEE International Solid-State Circuits Conference,简称为ISSCC)"上发表了五篇关于Cell的技术论文及专利文档,披露了Cell处理器的详细规格参数并展出相关样品,IBM还宣布 Cell已进入到大规模量产阶段,将在未来几个月内提交给索尼。就这样,一款媲美超级计算机的革命性微处理器由此到来.
SONY生产的Cell处理器
Cell处理器在设计上的其他一些主要优势包括:
多线程、多核心结构
同时支持多种操作系统
提供给主内存及辅助芯片(Companion Chips)的丰富双向总线带宽
灵活的板载I/O (输入/输出)接口
用于实时应用的实时资源管理系统
板载硬件,支持安全系统,可实现知识产权的智能保护
采用了90纳米的绝缘硅(Sillicon-on-insulator, SOI)技术
Cell物理制造工艺
Cell集成了2亿3400万个晶体管,它用90纳米SOILow -K工艺制造,核心面积为221平方毫米,芯片规模与Intel双核Pentium D相当,两者的制造工艺处于同一条水平线上。Cell处理器采用的栅长46nm的晶体管应用了SOISilicon On Insulator,绝缘体上外延硅)技术和应变硅技术。IBM位于纽约的East Fishkill 300mm晶圆工厂将会在2005年下半年小批量生产Cell芯片,
SONY2006年将会在日本长崎的"Fab2"工厂采用尖端65nm技术进行生 产。SONY公司还提到,打算将Cell商业化,今后推出更多基于Cell的产品。这可能意味着SCE会在下一代娱乐便携机型中也采用Cell核心。专业人士预计,随着IBM公司在今年晚些时候推出65nm工艺,Cell处理器将转而采用这一工艺。
Cell使用定制电路设计的方法来提高总体性能,同时还支持精确的处理器时钟控制功能,以节省电耗。Cell也使用了冗余电路布线来提高良品率,降低成本。
图为Cell处理器
左侧为未封装的Cell核心,中间是一颗封装完毕的Cell处理器,右侧为Cell背面,封装的引脚数为1236个。这是个破记录的数字,从这里也可看出Cell核心的复杂性。
 
 
Cell逻辑结构概述
在逻辑上,Cell处理器基于一个"Power处理单元(Power Processor Element,下面简称为PPE)",它可以支持SMT虚拟多线程技术,同步执行两个不相干的线程。此外,Cell内部还拥有八个基于SIMD的协处理器(Synergistic Processor Element,以下简称SPE),简单点说,一枚Cell处理器内部整合了九颗独立的运算核心,可支持多达十条线程的同步运行。另外,Cell还整合了 XDR内存控制器,可配合25.6GBps带宽的内存系统,而它的前端总线也采用96位、6.4GHz频率的FlexIO并行总线(原名称为 "Redwood",RAMBUS公司所开发),这也是有史以来速度最快的计算机总线。
目前X86处理器的最高纪录是3.8GHz,由IntelPentium 4 E所创下,本来Intel计划让它的频率突破4GHz,但受到高功耗和稳定性方面的困扰,不得不宣告失败,要更进一步提升频率也被业界认为难以实现。然而,Cell的工作频率轻易突破了4GHz,并将达到4.6GHz的新高,这显然超出X86业界所能理解的范围。更不合常理的是,X86处理器的高频率以牺牲指令效能为代价,高频未必就能带来高效能(Pentium 4系列的高频低能人所共知),而Cell的实际运算性能竟达256Gigaflops,也就是每秒可执行2560亿次浮点运算,IBM最初的设计是将四枚处理器整合一体,这样就可获得每秒万亿次浮点运算的超高性能。如果你对此没有感性的认识,我们不妨举些例子作为对比:Pentium 4 E 3.8GHzSIMD效能为15Gigaflops,这也是x86处理器目前能达到的最高水平,但这个性能只有Cell的十七分之一,两者完全不具可比性,尽管它们的物理参数和制造工艺处于同一水平线。PS2游戏主机采用了EEEmotion Engine)处理器(速度为6.2G FLOPS),Cell的速度是EE40倍以上。甚至单颗Cell处理器的运算速度,就足与跟90年代中期最强悍的超级电脑相比,或说是目前NVIDIA最强的3D显示芯片的6倍。IBM十分自豪地将Cell称为"单芯片超级计算机",这也很好实现了预期设计目标。
 
切割出Cell处理器的12英寸晶圆
       Cell所具有的高效能无疑得益于高度优化的Power架构。PowerIBM为超级计算机所创立的RISC指令系统,而RISC架构具有与生俱来的高效性,处理器结构精简,技术上明显优于X86。正因为这一点,几乎所有的超级计算机系统都隶属于RISC体系,我们所熟悉的X86,仅运用在PC微机领域,故广为人知(关于RISCCISC的比较请参考另外的资料)。不过,RISC架构显然不是Cell拥有超高性能的唯一原因。如果我们将PowerPC 970处理器(苹果称之为"PowerPC G5")与Cell对比,大家还是可以发现两者的性能差距极其悬殊:PowerPC 970的晶体管数为5800万个,4PowerPC 970的晶体管数总和与一枚Cell相当,但配备双PowerPC 970处理器的Xserve G5仅能提供9.0 Gigaflops的运算力,远无法与Cell相比,尽管它们在设计架构上同属于Power体系。实际上,Cell的高效能很大程度上来自于其新颖的设计思想:主处理器与协处理器各司其职,内核设计精简高效以实现高频运作,而运算单元则采用128位并行结构。下面来内容将具体叙述Cell处理器中RISC思想的实现。
 
 
 
核心设计
Power内核是Cell处理器的大脑,是运行设备的主操作系统,并为8个"协处理器"分配任务。(不过Cell本身的结构是极具变通性的,可根据具体需求增加、减少协处理器内核)。它结合8个独立的浮点数运算单元所构成的多核心处理器。它共有9CPU内核,一个Power架构RISC64CPU内核"PPE"和8个浮点处理用的328SIMDCPU内核"SPE"(Synergistic Processing Element)。
Cell的基本构成单元PPE可同时执行2个线程的SMT架构(类似于IntelHT超线程技术),配备32kB的一级缓存(16kB指令缓存和16kB数据缓存)以及512kB的二级缓存。协处理核心SPE可同时执行2条指令超标量,并配备有128位×128个的通用寄存器。1SPE 的最大单精度浮点运算速度为32G FLOPS8SPE合计为256G FLOPS9个核心同步时钟运行。

 

X86架设微处理器的掘墓者--Cell微处理器(下)
2007-10-07 13:20

Cell处理器的整体架构

PPE处理单元是Cell的控制与运算中枢,该处理单元内置了32KB一级缓存和512KB二级缓存,其规格与同出一脉的PowerPC 970处理器极其类似。而在Cell中,真正负责浮点运算的应该是八个SPE协处理器。下图是SPE的逻辑结构,SPE4个负责浮点运算的处理单元、4个负责整数运算的处理单元、128bit×128结构的寄存器和256KB局部缓存构成,它实际上就是一个完整的运算核心。根据IBM所公布的资料,我们获悉SPE的流水线长度为18级,这一点与X86处理器也非常不同――流水线越长,处理器提升工作频率就越容易,反之就越困难。20级流水线的Northwood Pentium 4止步于3.2GHz31级流水线的Prescott核心也不过到达3.8GHz,而Cell18级的短流水线却实现4GHz以上的高频运作。设计者的解释是:x86处理器采用复杂指令运算,运算逻辑设计得非常复杂,这也导致其频率提升非常困难;而RISCCell在基础架构上执行简单化的计算思想,每一个复杂的任务都可以被分解为多个简单的基础任务,Cell中的SPE就专门针对这些基础任务所设计,这样,它就可以在保持高效的同时拥有简单得多的逻辑结构,既然逻辑构成简单,实现高频率运作就容易多了。

SPE的逻辑结构图

尽管总线及寄存器都是128位结构,但SPE内的浮点单元和整数单元其实都只有32位,只是IBM通过4路并行运算来获得128bit SIMD的效果,从外部看来,SPE便相当于一个可执行128bit指令的处理单元。SPE内的浮点单元和整数单元各自拥有三条128bit宽度的输入总 线和一条128bit宽度的输出总线,二者以全双工模式运作,数据输入/输出操作可同步进行。大家应该也发现这是一套不对等的方案,输入总线的带宽三倍于输出总线,原因在于计算所需的数据总量总是比运算的输出结果要多得多,总线宽度不同在设计上其实非常科学。而借助这两条总线,SPE协处理器的整数/浮点 运算单元再与一组包含128个、宽度为128bit的寄存器阵列联结在一起,该寄存器阵列又通过一对全双工运作的、128bit总线同本地缓存(Local Store)相连―每个SPE协处理器都拥有256KB本地缓存,由于Local Store算作SPE的缓存,所以不需进行类似SMP的缓存一致性(Cache Coherency)控制。连接各内核的片上总线(OnChip Bus)采用环形,各个SPE之间的最大数据传输带宽高达192GB/s8SPE就一共拥有2MB缓存,再加上PPE处理单元的512KB二级缓存,Cell 处理器总共拥有超过2.5MB容量的缓存单元。

SPE协处理器的逻辑架构

Cell内部有一条 768bit位宽的"EIB单元互联总线环(Element Interconnect BUS RingEIB Ring)",它实际上是一个强大的内部总线控制逻辑―Cell内所有的功能单元都通过EIB总线环连接在一起,包括PPE、八个SPEXDR内存控制器以及外部总线接口,它们所采用的无一例外都是全双工的128bit连接总线。若Cell工作在4GHz频率上,Cell内部的各个功能单元便都拥有 4GHz×128bitHz×2(全双工)÷8Byte/bit128GBps带宽。

我们很容易能根据这些参数计算出Cell拥有的运算效能:每个SPE协处理器拥有4路并行的整数/浮点单元,一个时钟周期可执行两个运算周期(类似DDR效果、技术细节未明),每个运算周期又可执行432位浮点运算;每个Cell拥有8SPE协处理器,它的工作频率假设在4GHz,此时 Cell所具有的浮点效能就是2×4×8×4GHz256Gigaflops

与常规的双核处理器不同的是,Cell内的九个核心具有相当强的独立性。其中,PPE处理单元的任务是运行操作系统,这个任务对于一个结构类似 PowerPC 970、频率高达4GHz且可支持双线程运作的处理核心来说简直不费吹灰之力。但除了操作系统外,PPE不管任何的事情,应用程序相关的线程运算完全由 SPE协处理器运行。如下图所示,我们可以看到多个应用程序的线程会被平均散布到各个SPE中,整套系统负载均衡、设计得非常科学。而这种纵向结构的多核心设计同x86业界鼓吹的双核处理器截然不同,不论是Pentium DYonha还是AMD的双核心Athlon 64,它们的每个处理内核地位对等、每个核心都可以独立完成全部运算,所体现的是一种大而全的计算思想。由于芯片设计越来越复杂,它的工作频率就不得不走了下坡路,Intel当年执著于高频制胜的策略,结果落后于对手,业界普遍认为追求高频率的做法没有前途。而Cell处理器开辟出前所未有的新思路:每个处理内核专注于自己的任务,彼此相互依赖、相互协作,针对任务的简单化也使得每个内核都可以被设计得精简高效,工作频率也轻易达到x86处理器无法企及的高度,最终实现了媲美超级计算机的惊人性能。而在相互协作的同时,Cell内的各个SPE协处理器又保持着高度独立性,除了完成本机的计算任务外,SPE 还可以接受来自Cell计算网络中其他设备的计算请求,并执行相关的计算任务,所得结果再通过网络传输给任务发起者。换句话说,SPE协处理器可以在基于 Cell的计算网络中作平台无关的无缝漫游,网络上的任务可以被均匀分散到所有的Cell处理器上,并以最佳方式在最短的时间内完成。

Cell的运行模式,PPESPE各司其职、相互协作。

功耗及散热

ISSCC的论文介绍,电源电压为+1.1V、频率4GHz1SPE因晶体管的开关动作所消耗的为4W。再加上漏电电流和时钟信号传送的耗电,实际耗电应在8W左右。电源电压调至+1.2V2GHz工作时,开关动作的耗电为2W,漏电电流引起的耗电为1.7W,时钟信号传送的耗电为 1.3W,共计5W8SPE同时以2GHz工作时,推算值为40W。若频率降到3GHz,工作电压只需要0.9V,此时其功耗只有 2瓦。如果将频率降低到2GHz,每个SPE的功耗仅有区区1瓦。Cell内所有SPE协处理器的功耗总和最高也不过4瓦×832瓦。至于PPE 处理单元的核心部分,功耗水平也会控制在很低的水平。即便加上缓存单元整体功耗也可控制在较好的水平上。回过头再来看看功耗将高达130瓦、性能不到Cell十分之一的Pentium D,实在是天壤之别。

考虑到实际应用,Cell的低功耗并不令人吃惊。Cell本来就是为PS3游戏机所设计,而游戏机体积狭小,对芯片的功耗指标颇为敏感,指标过高将给散热带来难题且会产生较高的噪音,这是玩家们绝对无法承受的。在2006年,IBM将采用更先进的65纳米技术来制造Cell,届时它将具有更加出色的功耗水平,而低功耗也为Cell的广泛应用奠定了良好的基础,将它用于嵌入式设备、笔记本电脑、桌面PC还是工作站系统中都没有任何问题,IBM今后所需要关心的,应该是操作系统和应用软件方面的资源配合。

展望:IBM打造未来Cell王国

匪夷所思的多核心设计理念、每秒2560亿次浮点运算、分布式计算架构、高弹性架构、超低芯片规模与超低能耗、超快的内存系统以及超快的前端总线,Cell集中了所有这些顶级元素,它几乎称得上是一款真正完美的微处理器。然而,一款技术含量高的产品,如果没有应用前景或没有市场,那它就一文不值。Cell也是如此,虽然技术先进,但要想成为未来处理器的统领,必须有广阔的应用范围。Cell要在短时间内取代X86绝非易事,其中最大的问题在于Cell的平台周边尚未成熟,尤其是分布式计算架构需要软件的针对性优化。

作为一家技术基础无人可比、且雄心勃勃的企业,IBM一直在致力打造自己的王国。去年3月,IBM正式发表"PowerEverywhere"计划,特别成立了专属组织"Power.org"开放Power微处理器的相关技术,邀集全球厂商一同参与Power微处理器的研发与应用。IBM与索尼同样认为开发出的平台不应仅局限于游戏机,而可以作为替代x86的下一代计算平台, 基于共同的利益双方携手合作,这也是Cell的开发背景。若从Cell的技术水平来看,它完全具有替代x86平台的技术优势,而且这种优势也许是x86业界永远无法企及。X86复杂、累赘的兼容架构注定它不可能实现飞跃式的增长,若以现在的性能提升速度,也许要十几年后X86处理器才可能达到Cell今天所具有的运算性能,换言之,Cell之于x86业界的性能优势绝对是压倒性的。

IBM很早就开始着手解决这个问题,在最关键的操作系统方面,IBM选择了开放式的Linux。在过去数年间,IBM"不计报酬"地花费大量的资金和人力推动Linux系统的开发,并不惜将自己在UNIX领域的研究成果无偿贡献出来。就在今年2月份,IBM又宣布将投入1亿美金开发Linux下的Lotus Workplace信息协作套件,IBM甚至计划在2005年内,将公司所有的桌面系统完全迁移到Linux平台下。所有的这一切并不能直接给它带来商业 利益,外界一度认为IBM只是在赶时髦。事实证明,蓝色巨人正非常有耐心、一步一步地朝向自己的预定目标前进。它出售了与战略不相关的X86 PC部门,成功拿出Cell处理器并将其投入实用,慷慨投资、努力推动Linux桌面计划。接下来,我们会看到IBM尝试推出Cell工作站系统,而索尼 则开始出售PS3游戏机。几乎在同时,微软也将推出采用IBM Power架构处理器的XBOX2,任天堂的下一代游戏机同样也隶属于Power体系,Power平台很快就会拥有大量品质超一流的游戏大作。时间慢慢推 移,Power平台将得到越来越广泛的支持,Linux系统也逐渐发展成熟(至少在今天,Linux已经初步具备良好的可用性)。一切水到渠成之际,我们便会发现,Cell计算机开始大量出现在市场上,一个新的计算时代由此开始。 X86业界将遭遇有史以来最可怕的威胁,然而,受冲击的也许只有IntelAMD和微软公司,至于下游的PC厂商,生产何种体系的PC机无关紧要,倘 若追随Power架构能够带来更高的利润,相信它们会毫不犹豫舍弃穷途末路的X86。我们发现,Cell打开了一扇通往未知计算世界的大门,但产业界也许都还没有作好心理准备。

最新动态:

072月索尼电脑娱乐公司(SCE)联合IBM,东芝在国际固态电路会议(ISSCC)上发布了65nm制程的Cell处理器,应用了新的SRAM缓存技术,最高频率可达6GHz

同原本90nmCell相比,新的65nm版本使用SOI绝缘硅技术制造,体积更小,耗电量也更低,有利于节省成本,预计在量产后很快就会在PS3游戏机中替代现有的90nm型号。除了制程的更迭,Cell在设计上也有了一定意义上的改良,采用双供电SRAM阵列。除了普通意义上的处理器供电电路(Vdd),65nm Cell专门为SRAM处理器L1L2缓存缓存设计了第二路供电线路(Vcs),提高稳定性。改良设计后的Cell可以达到更高的频率,同时降低功耗。

索尼公司宣称,他们在实验室中已经将新的65nm Cell处理器在1.3V的电压下超频至6GHz稳定运行。即使在1.0V的电压下,Cell也能完好运行在4.2GHz的高频率下。当然,在PS3等消费产品中肯定不会使用这种极限频率,但如此大的提升空间也可以保证正常情况下处理器运行的稳定性。

90nm的65nm制程Cell比较图

在会上,索尼还谈了Cell未来的发展方向。由于之前的90nm Cell成本过高,产量也一直跟不上,原本承诺的在家电产品中的广泛应用一直没有实现。但在换用65nm工艺后,由于成本、功率等的下降,Cell联盟计划加速其向家电业的进军。他们计划将Cell中的8SPE减半,提供家电版的简化处理器。甚至直接取消主处理单元PPE,让仅包含数个SPECell和其他类型的中央处理器在电器中实现合作,专门用作媒体加速处理器。

从技术的进展上讲,索尼称Cell不仅仅会有这一代产品,如果投入如此巨大的Cell架构仅仅在一个PS3上应用实在太浪费了。下一代PS4应当也会使用经过革新的Cell架构处理器,目前也正在进行下一步研发。另外,对于IBM在本次ISSCC上公布的65nm SOI eDRAM缓存技术,Cell也可以考虑是否在今后使用大容量eDRAM缓存提高性能。

评论

此博客中的热门博文

【转】AMBA、AHB、APB总线简介

AMBA 简介 随着深亚微米工艺技术日益成熟,集成电路芯片的规模越来越大。数字IC从基于时序驱动的设计方法,发展到基于IP复用的设计方法,并在SOC设计中得到了广泛应用。在基于IP复用的SoC设计中,片上总线设计是最关键的问题。为此,业界出现了很多片上总线标准。其中,由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。   AMBA 片上总线        AMBA 2.0 规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。 基于 AMBA 的片上系统        一个典型的基于AMBA总线的系统框图如图3所示。        大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。 ====================================

【转】GPIO编程模拟I2C入门

ARM编程:ARM普通GPIO口线模拟I2C  请教个问题: 因为需要很多EEPROM进行点对点控制,所以我现在要用ARM的GPIO模拟I2C,管脚方向我设 置的是向外的。我用网上的RW24C08的万能程序修改了一下,先进行两根线的模拟,SDA6, SCL6,但是读出来的数不对。我做了一个简单的实验,模拟SDA6,SCL6输出方波,在示波 器上看到正确方波,也就是说,我的输出控制是没问题的。 哪位大哥能指点一下,是否在接收时管脚方向要设为向内?(不过IOPIN不管什么方向都可 以读出当前状态值的阿) 附修改的RW24C08()程序: #define  SomeNOP() delay(300); /**/ /* *********************************  RW24C08   **************************************** */ /**/ /* ----------------------------------------------------------------------------- ---  调用方式:void I2CInit(void)   函数说明:私有函数,I2C专用 ------------------------------------------------------------------------------- -- */ void  I2CInit( void ) ... {  IO0CLR  =  SCL6;      // 初始状态关闭总线  SomeNOP();  // 延时   I2CStop();  // 确保初始化,此时数据线是高电平 }   /**/ /* ---------------------------------------------------------------------------- ----  调用方式:void I2CStart(void)   函数说明:私有函数,I2C专用 ------------------------------------------------------------------------------- -- */ void  I2CStart( void )

【转】cs8900网卡的移植至基于linux2.6内核的s3c2410平台

cs8900网卡的移植至基于linux2.6内核的s3c2410平台(转) 2008-03-11 20:58 硬件环境:SBC-2410X开发板(CPU:S3C2410X) 内核版本:2.6.11.1 运行环境:Debian2.6.8 交叉编译环境:gcc-3.3.4-glibc-2.3.3 第一部分 网卡CS8900A驱动程序的移植 一、从网上将Linux内核源代码下载到本机上,并将其解压: #tar jxf linux-2.6.11.1.tar.bz2 二、打开内核顶层目录中的Makefile文件,这个文件中需要修改的内容包括以下两个方面。 (1)指定目标平台。 移植前:         ARCH?= $(SUBARCH) 移植后: ARCH            :=arm (2)指定交叉编译器。 移植前: CROSS_COMPILE ?= 移植后: CROSS_COMPILE   :=/opt/crosstool/arm-s3c2410-linux-gnu/gcc-3.3.4-glibc-2.3.3/bin/arm-s3c2410-linux-gnu- 注:这里假设编译器就放在本机的那个目录下。 三、添加驱动程序源代码,这涉及到以下几个方面。(1)、从网上下载了cs8900.c和cs8900.h两个针对2.6.7的内核的驱动程序源代码,将其放在drivers/net/arm/目录下面。 #cp cs8900.c ./drivers/net/arm/ #cp cs8900.h ./drivers/net/arm/ 并在cs8900_probe()函数中,memset (&priv,0,sizeof (cs8900_t));函数之后添加如下两条语句: __raw_writel(0x2211d110,S3C2410_BWSCON); __raw_writel(0x1f7c,S3C2410_BANKCON3); 注:其原因在"第二部分"解释。 (2)、修改drivers/net/arm/目录下的Kconfig文件,在最后添加如下内容: Config ARM_CS8900    tristate "CS8900 support" depends on NET_ETHERNET && A