这位世界顶尖的计算机编程大师花了三年时间总结了2500多页的文档,以便深入了解计算机系统

计算机系统课程一直是计算机科学与技术的主要教学内容之一。由于历史的原因,我国计算机专业的课程体系是在广泛借鉴ACM和IEEE制定的计算机科学与技术教学计划的基础上设计的。计算机系统课程也参照计划分为汇编语言、操作系统、组成原理、体系结构、计算机网络等课程。应该说,该课程体系在历史上对我国计算机专业教育起到了很好的指导作用。

进入新世纪以来,计算技术发生了重要的发展和变化。中国的信息技术和产业也得到了快速发展,这对计算机专业的毕业生提出了更高的要求。如果参照ACM/IEEE计算机专业计划重新审视原有的课程体系,我们会发现以下主要问题。

  • 1) 课程体系缺乏一门能够贯穿整个计算机系统的独立基础课程。计算机系统基础知识被划分为许多独立的课程,课程内容缺乏相关性和系统性。学习后,虽然学生理解了计算机系统各部分的许多概念和方法,但往往忽视了各部分之间的关系,很难系统地理解整个计算机系统的工作原理和方法。

  • 2)现有课程往往偏重理论,和实践关联较少。如现有的系统课程中通常会介绍函数调用过程中的压缩和退栈方式,但较少和实践关联来理解压栈和退栈过程的主要作用。实际上,压栈和退栈与理解C等高级语言的工作原理息息相关,也是常用的攻击手段 Buffer Overflow的主要技术基础。

  • 3)教学内容比较传统和陈旧,基本上是早期PC时代的内容。比如,现在的主流台式机CPU都已经是x86-64指令集,但较多课程还在教授80386 甚至更早的指令集。对于近年来出现的多核/众核处理器、SSD硬盘等实际应用中遇到的内容更是涉及较少。

  • 4)课程大多数从设计者的角度出发,而不是从使用者的角度出发。对于大多数学生来说,毕业之后并不会成为专业的CPU设计人员、操作系统开发人员等,而是会成为软件开发工程师。对他们而言,最重要的是理解主流计算机系统的整体设计以及这些设计因素对于应用软件开发和运行的影响。

因此小编找出了一系列计算机相关书籍,给大家分享出来:

需要获取的小伙伴可以直接添加小助理vx:kaixindian331

《深入理解计算机系统》775页

本书从程序员的视角详细阐述计算机系统的本质概念,并展示这些概念如何实实在在地影响应用程序的正确性、性能和实用性。全书共12章,主要包括信息的表示和处理、程序的机器级表示、处理器体系结构、优化程序性能、存储器层次结构、链接、异常控制流、虚拟存储器、系统级1/O、网络编程、并发编程等内容。书中提供了大量的例子和练习题,并给出部分答案,有助于读者加深对正文所述概念和知识的理解。

内容介绍

第一部分程序结构和执行

第1章计算机系统漫游

第2章信息的表示和处理

第3章程序的机器级表示

第4章处理器体系结构

第5章优化程序性能

第6章存储器层次结构

第二部分在系统上运行程序

第7章链接

第8章异常控制流

第9章虚拟内存

第三部分程序间的交互和通信

第10章系统级i/O

第11章网络编程

第12章并发编程

因为这份文档有700多页下面还有很多需要展示。就不给大家一一展示了,需要获取的小伙伴可以添加小助理vx:MAYAZBSP即可获取!

《逻辑与计算机设计基础》500页

除了提供完整的数字和计算机设计内容之外,第5版还特别强调现代设计的基本原理。从简单的组合逻辑应用到在RISC核上构建CISC结构,多个例子的清晰解释和渐进式的设计过程可以诠释书中内容。完整的传统内容包括计算机辅助设计、问题形式化、解决方案验证,以及综合能力培养,而灵活性则体现在可选的逻辑设计、数字系统设计和计算机设计,以及硬件描述语言的相关内容中(不选、选用VHDL或选用Verilog)。

内容介绍

逻辑设计

第1章介绍数字计算机、计算机系统抽象层次、嵌入式系统,以及包括数制、算术运算和编码在内的信息表示。

第⒉章研究门电路和它们的类型,以及设计和成本优化的基本方法。概念包括布尔代数、代数优化和卡诺图优化、传播延迟,以及在VHDL和Verilog 中使用结构和数据流模型表示的门级硬件描述语言模型。

第3章从一个现代逻辑设计过程的概述开始,设计过程的详细步骤包括问题形式化、逻辑优化、用于非门和或非门进行工艺映射,组合逻辑设计的实例中还包括验证。另外,这一章还包括函数和构建组合设计模块,包括使能和输入定值、译码、编码、代码转换、选择、分配、加法、减法、递增、递减、填充、扩展和移位以及它们的实现。本章还包括许多逻辑模块的VHDL和Verilog模型。

第4章包括时序电路分析和设计。讨论了锁存器和边沿触发式触发器,并着重讲解了D触发器。本章的重点是状态机图和状态表的形式化表示。时序电路完整的设计过程包括规格说明、形式化、状态分配、触发器输入和输出方程确定、优化、工艺映射以及验证。时序电路通常都太复杂,不能用传统的状态图来表示,但可以用状态机图模型来表示,这一章通过现实世界的两个例子来阐述和说明这一观点。这一章包括用VHDL 和 Verilog来描述触发器和时序电路,介绍了VHDL和 Verilog程序行为的语言结构以及用于验证的测试程序。本章最后介绍了时序电路的延迟和定时,以及异步输入的同步和亚稳态问题。

数字系统设计

第5章重点介绍当前技术的各个方面,包括MOS晶体管和CMOS电路,以及可编程逻辑技术。可编程逻辑包括只读存储器、可编程逻辑阵列、可编程阵列逻辑和FPGA。这一章包括一些例子,它们用一个简单的FPGA结构来解释在更为复杂的商用FPGA硬件中出现的各种各样的可编程元器件。

第6章讲解寄存器及其应用。移位寄存

第6章讲解寄存器及其应用。移位寄存器和计数器的设计基于第3章和第4章所讲解的触发器和某些函数及其实现。只有行波计数器作为–个全新的概念加以介绍。讨论了寄存器传输的并行和串行方式,以及如何权衡时间与空间开销。其中有一节侧重于执行多种运算的多功能寄存器的寄存器单元设计。数据通路和控制单元的协同设计过程使用了寄存器传输语言和状态截图,并且用现实世界的两个例子对其进行了解释。对所选的寄存器类型也用Verilog和VHDL语言进行了描述。

第7章介绍静态随机访问存储器(SRAM)和动态随机访问存储器(DRAM),以及基本存储器系统,还简单地介绍了动态随机访问存储器的各种不同类型。

计算机设计

第8章讲述寄存器文件、功能单元、数据通路,以及两种简单计算机——单周期计算机和多周期计算机。重点讨论数据通路和控制单元设计的形式化概念,以及用它们来设计具有特定指令和指令集的单周期和多周期计算机。

第9章介绍与指令集结构相关的许多内容,包括地址计算、寻址模式、指令结构和类型,并讲解浮点数表示法和浮点运算,以及程序控制方法,包括过程调用与中断。

第10章讨论一些高性能处理器的概念,如流水式RISC和CISC处理器。通过将微编码硬件添加到修改了的RISC处理器上,CISC处理器可以使用RISC的流水线来执行CISC指令集,这是当今CISC处理器中使用的一种方法。除此之外,还介绍了高性能CPU在概念和结构方面的创新,其中包括两个多CPU微处理器的例子。

第11章讲解如何在CPU和内存之间、输入/输出接口和外围设备之间进行数据传送。讨论了键盘、液晶显示器(LCD)、硬盘驱动器等外部设备和键盘接口,以及包括通用串行总线(USB)在内的串行通信和中断系统的实现。

第12章重点讨论存储器的分层。介绍了“访问的局部性”的概念,并通过cache和内存之间、内存和硬盘之间的关系对其进行了详细讲解。分析了cache设计的各种参数。存储器管理重点关注分页管理和支持虚拟存储的传输后备缓冲器

《计算机文化》534页

第1章计算机和数字基础知识

第2章计算机硬件

第3章计算机软件

第4章操作系统和文件管理

第5章局域网

第6章因特网

第7章Web 和电子邮件

第8章数字媒体

第9章计算机产业:历史、职业和道德

第10章信息系统的分析与设计

第11章数据库

第12章计算机编程

资源下载: