失效链接处理 |
大话计算机 PDF 下载
转载自:https://download.csdn.net/download/myprotein/11389037
整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.china-pub.com/8059151
相关截图:
资料简介:
本书共分为12章。第1章介绍数字计算机的设计思路,制作一个按键计算器,在这个过程中逐步理解数字计
算机底层原理。第2章在第1章的基础上,改造按键计算器,实现能够按照编好的程序自动计算,并介绍对应的处 理器内部架构概念。第3章介绍电子计算机的发展史,包括芯片制造等内容。第4章介绍流水线相关知识,包括流 水线、分支预测、乱序执行、超标量等内容。第5章介绍计算机程序架构,理解单个、多个程序如何在处理器上编 译、链接并*终运行的过程。第6章介绍缓存以及多处理器并行执行系统的体系结构,包括互联架构、缓存一致性 架构的原理和实现。第7章介绍计算机I/O基本原理,包括PCIE、USB、SAS三大I/O体系。第8章介绍计算机 是如何处理声音和图像的,包括3D渲染和图形加速原理架构和实现。第9章介绍大规模并行计算、超级计算机原 理和架构,以及可编程逻辑器件(如FPGA等)的原理和架构。第10章介绍现代计算机操作系统基本原理和架构, 包括内存管理、任务调度、中断管理、时间管理等架构原理。第11章介绍现代计算机形态和生态体系,包括计算、 网络、存储方面的实际计算机产品和生态。第12章介绍机器学习和人工智能底层原理和架构实现。
资料目录:
开篇苦想计算机——以使用者的名义 第1章电控开关——计算机世界的基石 1.1 十余年的迷惑 4 1.2 从1 1=2说起 4 1.2.1 用电路实现1 1=2 6 1.2.2 或门 6 1.2.3 与门 7 1.2.4 非门和与非门 7 1.2.5 异或门 7 1.2.6 1位加法器 8 1.2.7 全手动1位加法机 10 1.2.8 实现多位加法器 10 1.2.9 电路的时延 13 1.2.10 新世界的新规律 13 1.2.11 先行/并行进位 14 1.2.12 电路化简和变换 15 1.3 我们需要真正可用的计算器 16 1.3.1 产生记忆 17 1.3.2 解决按键问题 18 1.3.3 数学的懵懂 22
1.3.4 第一次理解数学 25
1.3.5 第一次理解语义 27 1.3.6 七段显示数码管 30 1.3.7 野路子乘法器 31 1.3.8 科班乘法器 35 1.3.9 数据交换器Crossbar 36 1.3.10 多媒体声光按键转码器 39 1.3.11 第一次驾驭时间 41 1.4 信息与信号 44 1.4.1 录制和回放 44 1.4.2 振动和信号 49 1.4.3 低通滤波 52 1.4.4 高通滤波 56 1.4.5 带通滤波 59 1.4.6 带阻滤波 59 1.4.7 傅里叶变换 59 1.4.8 波动与电磁波 60 1.4.9 载波、调制与频分复用 62 1.5 完整的计算器 68 1.5.1 用时序控制增强用户体验 69 1.5.2 用MUX来实现Crossbar 71 1.5.3 奇妙的FIFO队列 73 1.5.4 同步/异步FIFO 76 1.5.5 全局共享FIFO 77 1.5.6 多路仲裁 78 1.5.7 交换矩阵 79 1.5.8 时序问题的产生与触发器 84 1.5.9 擒纵机构与触发器 86 1.5.10 擒纵机构与晶振 87 1.5.11 Serdes与MUX/DEMUX 90 1.5.12 计算离不开数据传递 90 1.5.13 几个专业概念的由来 91 1.5.13.1输入设备 91 1.5.13.2输出设备 91 1.5.13.3计算单元/运算器 91 1.5.13.4控制单元和传递通路 91 1.5.13.5反馈 91 1.5.13.6运算/计算 94 1.5.13.7数据通路和控制通路 94 1.5.13.8组合逻辑和时序逻辑 94 1.5.13.9寄存器/ Latch/触发器/锁存器 94 1.5.13.10存储器 94 1.5.13.11地址/指针 95 1.5.13.12写使能信号 95 1.6 多功能计算器 95 算术逻辑单元 96 第2章解脱人手——程序控制计算机 2.1 从累积计算说起 98 2.2 自动执行 101 2.2.1 将操作方式的描述转化为指令 102 2.2.2 实现那只鱿鱼——控制通路及部件 104 2.2.3 动起来吧!——时序通路及部件 108 2.2.4 半自动执行!——你得推着它跑 112 2.2.5 全自动受控执行!——不用扬鞭自奋蹄! 113 2.2.6 NOOP指令 115 2.2.7 利用边沿型触发器搭建电路 116 2.2.8 分步图解指令的执行过程 121 2.2.9 判断和跳转 123 2.2.10 再见,章鱼先生! 126 2.3 更高效的执行程序 128 2.3.1 利用循环缩减程序尺寸 128 2.3.2 实现更多方便的指令 131 2.3.3 多时钟周期指令 133 2.3.4 微指令和微码 136 2.3.5 全局地址空间 138 2.3.6 多端口存储器 138 2.3.7 多级缓存与CPU 139 2.3.8 数据遍布各处 142 2.3.9 降低数据操作粒度 145 2.3.10 取指令/数据缓冲加速 147 第3章开关的进化——从机械到芯片 3.1 从薄铁片到机械计算机 150 3.1.1 算盘和计算尺 150 3.1.2 不可编程手动机械十进制计算机 151 3.1.3 可编程自动机械十进制计算机 152 3.1.4 可编程自动电动机械二进制计算机 156 3.1.5 可编程自动全电动二进制计算机 162 3.2 电子管时代 166 3.2.1 二极电子管 166 3.2.2 三极电子管 170 3.2.3 AM广播革命 172 3.2.4 电子管计算机 174 3.2.5 石头会唱歌 177 3.3 固态革命——晶体管 179 3.3.1 P/N结与晶体管 181 3.3.2 场效应管(FET) 183 3.3.3 MOSFET 185 3.3.4 cMOS 186 3.3.5 晶体管计算机 187 3.4 制造工艺革命——集成电路 190 3.4.1 量产晶体管 190 3.4.2 跟冬瓜哥学做P/N结蛋糕 192 3.4.3 提升集成度 196 3.4.4 芯片内的深邃世界 197 3.4.5 cMOS集成电路工艺概述 200 3.4.6 cMOS工艺步骤概述 203 3.4.7 cMOS工艺详细步骤 206 3.4.7.1 热氧化 207 3.4.7.2 氮化硅积淀 207 3.4.7.3 浅槽隔离蚀刻 208 3.4.7.4 pMOS和nMOS生成 209 3.4.7.5 触点电极的生成 213 3.4.7.6 通孔和支撑柱(via)的生成 214 3.4.7.7 第一层导线连接 216 3.4.7.8 第二层导线连接 216 3.4.7.9 表面钝化 217 3.4.8 半导体工艺的瓶颈 220 3.4.8.1 寄生电容 220 3.4.8.2 静态/动态功耗 221 3.4.8.3 栅氧厚度和High-K材料 222 3.4.8.4 导线连接和Low-K材料 222 3.4.8.5 驱动能力及时延 222 3.4.8.6 时钟树 224 3.4.9 集成电路计算机 224 3.4.10 微处理器计算机 227 3.4.11 暴力拆解奔三CPU 230 3.5 存储器:不得不说的故事 232 3.5.1 机械存储器 233 3.5.1.1 声波/扭力波延迟线(Delay Line) 233 3.5.1.2 磁鼓存储器(Drum) 234 3.5.1.3 磁芯存储器(Core) 235 3.5.2 电子存储器 238 3.5.2.1 静态随机存储器(SRAM) 238 3.5.2.2 动态随机存储器(DRAM) 241 3.5.2.3 Flash闪存 246 3.5.2.4 只读存储器(ROM) 248 3.5.3 光存储器 248 3.5.3.1 光盘是如何存储数据的 248 3.5.3.2 压盘与刻盘的区别 250 3.5.3.3 光盘表面微观结构 250 3.5.3.4 多层记录 251 3.5.3.5 激光头的秘密 251 3.5.3.6 蓝光光盘简介 252 3.5.4 不同器件担任不同角色 253 3.5.4.1 寄存器和缓存 253 3.5.4.2 主运行内存/主存 253 3.5.4.3 Scratchpad RAM 254 3.5.4.4 内容寻址内存CAM/TCAM 254 3.5.4.5 外存 257 第4章电路执行过程的进化——流水线、分支预测、乱序执行与多发射 4.1 大话流水线 260 4.1.1 不高兴的译码器 260 4.1.2 思索流水线 263 4.1.2.1 流水线的本质是并发 263 4.1.2.2不同时延的步骤混杂 264 4.1.2.3 大话队列 266 4.1.2.4流水线的应用及优化 268 4.2 优化流水线 270 4.2.1 拆分慢速步骤 270 4.2.2 放置多份慢速部分 272 4.2.3 加入缓冲队列 273 4.2.4 图解五级流水线指令执行过程 273 4.3 流水线冒险 273 4.3.1 访问冲突与流水线阻塞 278 4.3.2 数据依赖与数据前递 281 4.3.3 跳转冒险与分支预测 285 4.4 指令的动态调度 293 4.4.1 结构相关与寄存器重命名 293 4.4.2 保留站与乱序执行 295 4.4.3 分步图解乱序执行 297 4.4.4 重排序缓冲与指令顺序提交 319 4.5 物理并行执行 320 4.5.1 超标量和多发射 320 4.5.2 VLIW超长指令字 322 4.5.3 SIMD单指令多数据 322 4.6 小结 326 第5章程序世界——从机器码到操作系统 5.1 基本的数据结构 330 5.1.1数组 330 5.1.2 数据类型与ASCII码 331 5.1.3 结构体 333 5.1.4 数据怎么摆放很重要 333 5.2 高级语言 335 5.2.1 简单的声明和赋值 335 5.2.2 编译和编译器 336 5.2.3 向编译器描述数据的编排方式 337 5.2.4 高级语言编程小试牛刀 339 5.2.5 人脑编译忆苦思甜 341 5.3 浮点数及浮点运算 342 5.3.1 数值范围和精度 342 5.3.2 浮点数的用处和表示方法 343 5.3.3 浮点数的二进制表示 344 5.3.3.1二进制浮点数转十进制小数 344 5.3.3.2十进制小数转二进制浮点数 345 5.3.3.3负指数和0的表示 346 5.3.3.4无穷与非规格化数的表示 346 5.3.4 浮点数运算挺费劲 347 5.3.5 浮点数的C语言声明 349 5.3.6 十六进制表示法 349 5.4 程控多媒体计算机 350 5.4.1 键盘是前提 350 5.4.2 搜索并显示 351 5.4.3 实现简易计算器 354 5.4.4 录入和保存 355 5.4.5 简易文件系统 356 5.4.6 计时/定时 360 5.4.7 发声控制 367 5.4.8 图像显示 369 5.4.9 网络聊天 372 5.5 程序社会 376 5.5.1 函数和调用 377 5.5.2 设备驱动程序 381 5.5.3 函数之间的联络站 388 5.5.4 库和链接 397 5.5.4.1静态库和静态链接 399 5.5.4.2头文件 404 5.5.4.3API和SDK 406 5.5.4.4动态库和动态链接 409 5.5.4.5库文件/可执行文件的格式 410 5.5.5 程序的执行和退出 412 5.5.5.1初步解决地址问题 413 5.5.5.2更好的人机交互方式 413 5.5.5.3程序的退出 414 5.5.5.4使用外部设备和内存 416 5.5.6 多程序并发执行 417 5.5.6.1利用时钟中断来切换线程 418 5.5.6.2更广泛地使用中断 421 5.5.6.3虚拟地址空间与分页 421 5.5.6.4虚拟与现实的边界——系统调用 426 5.5.7 呼唤操作系统 428 第6章多处理器微体系结构——多核心与缓存 6.1 从超线程到多核心 430 6.1.1 超线程并行 430 6.1.2 多核心/多CPU并行 433 6.1.3 idle线程 434 6.1.4 乱序执行还是SMT? 435 6.1.5 逆超线程? 436 6.1.6 线程与进程 436 6.1.7 多核心访存基本拓扑 437 6.2 缓存十九式 442 6.2.1 缓存是分级的 442 6.2.2 缓存是透明的 442 6.2.3 缓存的容量、频率和延迟 443 6.2.4 私有缓存和共享缓存 443 6.2.5 Inclusive模式和Exclusive模式 444 6.2.6 Dirty标记位和Valid标记位 444 6.2.7 缓存行 445 6.2.8 全关联/直接关联/组关联 446 6.2.9 用虚拟地址查缓存 451 6.2.10 缓存的同名问题 453 6.2.11 缓存的别名问题 453 6.2.12 页面着色 455 6.2.13 小结及商用CPU的缓存模式 457 6.2.14 缓存对写入操作的处理 458 6.2.15 Load/Stor Queue与Stream Buffer 459 6.2.16 非阻塞缓存与MSHR 460 6.2.17 缓存行替换策略 462 6.2.18 i_Cache/d_Cache/TLB_ Cache 463 6.2.19 对齐和伪共享 465 6.3 关联起来,为了一致性 465 6.3.1 Crossbar交换矩阵 466 6.3.2 Ring 472 6.3.3NoC 475 6.3.4 众核心CPU 478 6.3.5 多核心程序执行过程回顾 481 6.3.6 在众核心上执行程序 482 6.4 存储器在网络中的分布 484 6.4.1 CPU片内访存网络与存储器分布 487 6.4.2 CPU片外访存网络 489 6.4.2.1 全总线拓扑及南桥与北桥 490 6.4.2.2 AMD Athlon北桥 492 6.4.2.3 常用网络拓扑及UMA/NUMA 494 6.4.2.4 AMD Opteron北桥 497 6.4.3 参悟全局共享内存架构 499 6.4.4 访存网络的硬分区 501 6.5 QPI片间互联网络简介 502 6.5.1 QPI物理层与同步异步通信原理 503 6.5.2 QPI链路层网络层和消息层 505 6.5.3 QPI的初始化与系统启动 507 6.5.3.1 链路初始化和拓扑发现 507 6.5.3.2 系统启动 507 6.5.4 QPI的扩展性 509 6.6 基于QPI互联的高端服务器架构一览 510 6.6.1 某32路CPU高端主机 510 6.6.2 DELLEMC的双层主板QPI互联 511 6.6.3 IBM x3850/3950 X5/X6主机 511 6.6.4 HP Superdome2主机 515 6.6.5 Fujitsu PQ2K主机 518 6.7 理解多核心访存时空一致性问题 520 6.7.1 访存空间一致性问题 520 6.7.2 访存时间一致性问题 521 6.7.2.1 延迟到达导致的错乱 521 6.7.2.2 访问冲突导致的错乱 521 6.7.2.3 提前执行导致的错乱 522 6.7.2.4 乱序执行导致的错乱 522 6.8 解决多核心访存时间一致性问题 523 6.8.1 互斥访问 523 6.8.2 让子弹飞 526 6.8.3 硬件原生保证的基本时序 527 6.8.4 解决延迟到达错乱问题 529 6.8.5 解决访问冲突错乱问题 530 6.8.6 解决提前执行测错乱问题 530 6.8.7 解决乱序执行错乱问题 531 6.8.8 小结 531 6.9 解决多核心访存空间一致性问题 533 6.9.1 基于总线监听的缓存一致性实现 533 6.9.1.1 Snarfing/Write Sync方式 533 6.9.1.2 Write Invalidate方式 534 6.9.2 推导MESIF状态机 535 6.9.3 MOESI状态机 540 6.9.4 结合MESIF协议进一步理解锁和屏障 540 6.9.5 结合MESIF深刻理解时序一致性模型 545 6.9.5.1 终极一致性(UC) 545 6.9.5.2 严格一致性(SC) 545 6.9.5.3 顺序一致性(SEC) 545 6.9.5.4 处理器一致性(PC) 546 6.9.5.5 弱一致性(WC) 546 6.9.6 缓存行并发写优化 546 6.9.7 Cache Agent的位置 547 6.9.8 基于共享总线的嗅探过滤机制 548 6.9.8.1 bitmap粗略过滤 549 6.9.8.2 向量bitmap精确过滤 549 6.9.8.3 布隆过滤器与散列采样 550 6.9.8.4 JETTY filter 551 6.9.8.5 流寄存器式过滤器 553 6.9.8.6 带计数器的SR过滤器 554 6.9.8.7 蓝色基因/P中的嗅探过滤器 554 6.9.9 基于分布式访存网络的缓存一致性实现 555 6.9.9.1 分布式网络对CC机制的影响 557 6.9.9.2 多级缓存和多CPU对CC机制的影响 558 6.9.9.3即便无锁也要保证一致 558 6.9.10 分布式网络下的嗅探过滤机制 559 6.9.10.1 在LLC中增设bitmap向量过滤片内广播 559 6.9.10.2 Ring网络的三种嗅探方式 561 6.9.10.3 增设远程目录过滤片外广播 562 6.9.10.4 利用HA代理片内CC事务 565 6.9.10.5 小结 569 6.9.10.6 在网络路径上实施嗅探过滤 570 6.9.11 缓存一致性实现实际案例 571 6.9.11.1 Intel Blackford北桥CC实现 572 6.9.11.2 AMD Opteron 800平台CC实现 573 6.9.11.3 北桥与NC(Node Controller) 575 6.9.11.4 Horus NC实现 576 6.9.11.5 SGI Origin 2000 NC实现 580 6.9.11.6 IBM PERCS超级计算机中的NC 583 6.9.11.7 Intel CPU在QPI网络下的CC实现 585 6.9.11.8 小结 588 第7章计算机I/O子系统 7.1 计算机I/O的基本套路 593 7.1.1 Programmed IO Polling模式 593 7.1.2 DMA 中断模式 598 7.1.3 DMA与缓存一致性 600 7.1.4 Scatter/Gather List(SGL) 601 7.1.5 使用队列提升I/O性能 601 7.1.6 固件/Firmware 604 7.1.6.1固件与OS的区别与联系 605 7.1.6.2固件的层次 605 7.1.6.3固件的格式 605 7.1.6.4固件存在哪 605 7.1.6.5固件如何加载运行 606 7.1.7 网络I/O基本套路 606 7.1.8 接入更多外部设备 610 7.1.9 一台完整计算机的全貌 614 7.2 中断处理 616 7.3 网络通信系统 619 7.3.1 OSI七层标准模型 620 7.3.1.1应用层 620 7.3.1.2表示层 620 7.3.1.3会话层 621 7.3.1.4传输层 621 7.3.1.5网络层 624 7.3.1.6链路层 626 7.3.1.7物理层 627 7.3.1.8传送层 627 7.3.1.9小结 629 7.3.2 底层信号处理系统 630 7.3.2.1AC耦合电容及N/Mbit编码 630 7.3.2.2加扰的作用 634 7.3.2.3各种线路编码 636 7.3.2.4各种模拟调制技术 637 7.3.2.5频谱宽度与比特率 641 7.3.2.6数字信号处理与数字滤波 646 7.3.3 以太网——高速通用非访存式后端外部网络 647 7.3.3.1以太网的网络层 647 7.3.3.2以太网的链路层和物理层 652 7.3.3.3以太网I/O控制器 652 7.4 典型I/O网络简介 652 7.4.1PCIE——高速通用访存式前端I/O网络 654 7.4.1.1PCI网络拓扑及数据收发过程 654 7.4.1.2PCI设备的配置空间 656 7.4.1.3PCI设备的枚举和配置 658 7.4.1.4PCI设备寄存器的物理地址分配和路由 663 7.4.1.5中期小结 664 7.4.1.6PCIE网络拓扑及数据收发过程 665 7.4.1.7PCIE网络的层次模型 669 7.4.1.8NTB非透明桥 685 7.4.1.9PCIE Switch内部 692 7.4.1.10在PCIE网络中传递消息 697 7.4.1.11在PCI网络中传递中断信号 698 7.4.1.12在PCIE网络中传递中断信号 700 7.4.1.13MSI/MIS-X中断方式 701 7.4.1.14PCIE体系中的驱动程序层次 706 7.4.1.15小结 708 7.4.2 USB——中速通用非访存式后端I/O网络 709 7.4.2.1USB网络的基本拓扑 712 7.4.2.2USB设备的枚举和配置 714 7.4.2.3USB网络协议栈 719 7.4.2.4USB网络上的数据包传送 722 7.4.2.5USB网络的层次模型 728 7.4.2.6小结 729 7.4.3 SAS——高速专用非访存式后端I/O网络 730 7.4.3.1SAS网络拓扑及设备编号规则 733 7.4.3.2SAS网络中的Order Set一览 734 7.4.3.3SAS的链路初始化和速率协商 734 7.4.3.4SAS网络的初始化与设备枚举 743 7.4.3.5SAS和SCSI的Host端协议栈 753 7.4.3.6形形色色的登记表 761 7.4.3.7SAS网络的数据传输方式 778 7.4.3.8SAS网络的层次模型 783 7.4.3.9SAS控制器内部架构 789 7.4.3.10SAS SXP内部架构 797 7.5 本章小结 797 第8章绘声绘色——计算机如何处理声音和图像 8.1 声音处理系统 802 8.1.1 让蜂鸣器说话 802 8.1.2 音乐是可以被勾兑出来的 803 8.1.2.1可编程音符生成器PSG 804 8.1.2.2音乐合成器 805 8.1.2.3FM合成及波表合成 809 8.1.3 声卡发展史及架构简析 812 8.1.4 与发声控制相关的Host端角色 817 8.1.5 让计算机成为演奏家 832 8.1.6 独立声卡的没落 832 8.2 图形处理系统 842 8.2.1 用声音来画图 846 8.2.2 文字模式 849 8.2.2.1向量文本模式显示 849 8.2.2.2用ROM存放字形库 852 8.2.2.3点阵文字显示模式 852 8.2.2.4单色显示适配器 855 8.2.2.5点阵作图与ASCII Art 856 8.2.3 图形模式 857 8.2.3.1Color Graphics Adapter(CGA) 857 8.2.3.2Enhanced Graphics Adapter(EGA) 860 8.2.3.3Video BIOS ROM的引入 861 8.2.3.4Video Graphics Array(VGA) 863 8.2.3.5VGA的后续 864 8.2.3.6当代显卡的图形和文字模式 864 8.2.4 2D图形及其渲染流程 864 8.2.4.12D图形加速卡PGC 866 8.2.4.22D图形模型的准备 872 8.2.4.3对模型进行渲染 874 8.2.4.4矢量图和bitmap 875 8.2.4.5顶点、索引和图元 876 8.2.4.62D图形动画 876 8.2.4.7坐标変换及矩阵运算 878 8.2.4.82D图形渲染流程小结 880 8.2.4.92D绘图库以及渲染加速 880 8.2.5 3D图形模型和表示方法 885 8.2.5.13D模型的表示 886 8.2.5.2顶点的4个基本属性 889 8.2.6 3D图形渲染流程 893 8.2.6.1顶点坐标变换阶段/Vertex Transform 893 8.2.6.2顶点光照计算阶段/Vertex Lighting 897 8.2.6.3栅格化阶段/Rasterization 899 8.2.6.4像素着色阶段/Pixel Shading 900 8.2.6.5遮挡判断阶段/Testing 909 8.2.6.6混合及后处理阶段/Blending 914 8.2.6.73D渲染流程小结 914 8.2.7 典型的3D渲染特效简介 915 8.2.7.1法线贴图(Normal Map) 916 8.2.7.2曲面细分与置换贴图(Tessellation) 920 8.2.7.3视差/位移贴图(Parallax Map) 922 8.2.7.4物体投影(Shadow) 925 8.2.7.5抗锯齿(Anti-Aliasing) 926 8.2.7.6光照控制纹理(Light Mapping) 931 8.2.7.7纹理动画(Texture Animation) 934 8.2.8 当代3D游戏制作过程 936 8.2.9 3D图形加速渲染 937 8.2.9.13D图形渲染管线回顾 939 8.2.9.2固定渲染管线3D图形加速 940 8.2.9.3可编程渲染管线3D图形加速 943 8.2.9.4Unified可编程3D图形加速 955 8.2.9.5深入AMD R600 GPU内部执行流程 955 8.2.10 3D绘图API 及软件栈 963 8.2.10.1GPU内核态驱动及命令的下发 965 8.2.10.2GPU用户态驱动及命令的翻译 966 8.2.10.3久违了OpenGL与Direct3D 969 8.2.10.4Windows图形软件栈 973 8.2.11 3D图形加速卡的辉煌时代 974 8.2.11.1街机/家用机/手机上的GPU 974 8.2.11.2SGI Onyx超级图形加速工作站 978 8.2.11.3S3 ViRGE时代 979 8.11.2.43dfx Voodoo时代 980 8.2.11.5Nvidia和ATI时代 985 8.3 结语和期盼 991 |