精华内容
下载资源
问答
  • 计算机系统要素 pdf

    2017-11-13 12:56:31
    计算机系统要素pdf书籍下载,鉴于现有书籍资源分偏高,故上传一个资源分少的方便大家下载(本来想免积分下载的,但最少为2分)
  • 计算机系统要素机.rar

    2021-03-26 16:51:55
    计算机系统要素:从零开始构建现代计算机
  • Noam Nisan and Shimon Schocken 的 The Elements of Computing Systems, 这里是中文版和英文版两个,从与非门讲起,介绍整个计算机的构成, 对于计算机体系结构,cpu架构等有兴趣的同学可以看看
  • 计算机系统要素-从零开始建造现代计算机(nand2tetris) 这本书主要讲解了计算机原理(1-5章),编译原理(6-11章),操作系统相关知识(12章)。不要看内容这么多,其实这本书的内容非常通俗易懂,翻译也很给力。每...
  • 计算机系统要素

    2014-06-23 19:22:42
    计算机系统要素,非常好的实用教材,[计算机系统要素:从零开始构建现代计算机].(尼萨).周维.扫描版
  • 计算机系统要素:从零开始构建现代计算机PDF清晰扫描版
  • 本项目为本人在学习《计算机系统要素——从零开始构建现代计算机》一书过程中为书中各章的大作业所写的代码,已全部在本人机器上测试通过,供同好和后来者参 考,本代码未做放错处理,仅供学习、研究和参考, 请勿...
  • 计算机系统要素:从零开始构建现代计算机 代码实现 第二版
  • 计算机系统要素配套资源2
  • 本书通过展现简单但功能强大的计算机系统之构建过程,为读者呈现了一幅完整、严格的计算机应用科学大图景。本书作者认为,理解计算机工作原理的域好方法就是亲自动手,从零幵始构建计算机系统
  • 计算机系统要素代码

    2018-01-11 23:46:41
    计算机系统要素课后习题,从零开始构建一台现代计算机,包括编译器,几乎涵盖大学的所有计算机课程
  • 本书通过展现简单但功能强大的计算机系统之构建过程,为读者呈现了一幅完整、严格的计算机应用科学大图景。本书作者认为,理解计算机工作原理的最好方法就是亲自动手,从零开始构建计算机系统。 通过12个章节和项目...
  • 计算机系统要素——从零开始构建现代计算机》的配套工具,需要有JRE才能运行
  • 计算机系统要素,从零开始构建现代计算机(nand2tetris) 不要忘了给个Star~~~ 课程官网: 相关评论: 搬运的课程【中字】: Coursera课程: CSDN关于实现的具体介绍: 课程论坛: 课程简介 本书通过展现简单但功能...
  • 计算机系统要素》概述

    千次阅读 2017-11-29 21:00:27
    操作系统,底层硬件,虚拟机,编译器,自己写一个操作系统

    背景:

      我不是科班出身,对于计算机系统底层的知识了解很少,我的PM向我推荐了《计算机系统要素》这本书。是国外的两位学校教授编写,从最简单的与或非逻辑门,编译器,虚拟机,到最后操作系统的搭建,他们还有相应的网站,里面你可以下载到所有资料,还有视频。对于想系统了解计算机系统的同学来说,是个很不错的课程。还有大量的课后习题,当然也给出了参考答案,本文是我读后的一个笔记总结。就像小时候爬山,别人冲我喊了一句,“快上来啊!,这里好漂亮啊!”,然后奋起而上,希望也能给你带来这样的感觉,然后去了解下计算机底层的魅力。


    本文目的:

      了解计算机操作系统底层原理。


    备注:

      本书项目作业需动手实验,不方便展开,本文只谈理论知识。


    第五章:计算机体系结构


    计算机最小系统

    一个最简陋的计算机系统由以下硬件组成:
        1.内存:用来存储数据和指令
        2.CPU: 核心硬件,用来进行逻辑操作和算术操作
        3.输入:和计算机进行
        4.输出:和人进行交互 
    

    第六章:汇编编译器

     什么是汇编编译器?
        将汇编指令翻译成计算机能够识别的机器语言。
        机器语言分为两类:一种是二进制型,一种是符号型(我觉得其本质还是二进制,只是在硬件层进行封装映射了)
    
    
     汇编编译器工作流程,编译器要完整解析代码,要进行两个阶段读取解析指令:
        第一阶段:
            逐行扫描指令代码,将每条命令建立一个相对应的地址
        第二阶段:
            再次重新扫描整个指令代码,对每一行的语法进行解析

    第第七、八章:虚拟机-堆栈

     什么是虚拟机?
        是一个抽象的计算机,不是真实的硬件平台,可以理解为就是一个软件。
    
     虚拟机有什么用?
        让某种高级语言代码,可以在任何硬件平台运行,但是虚拟机也不能直接运行某种高级语言代码,它也需要某种特定的编译器,产生虚拟机能够识别读取的代码才可以运行
    
     那关堆、栈什么事?
        我们说到,既然虚拟机是一个抽象的计算机,且高级代码经过编译后要运行在它上面,它就需要进行一系列的算术操作、内存访问等等。这些关于数据的操作值就是保存在堆(heap)栈(stack)这种精良的数据结构中。其中所有数据值是要经过栈(stack)中转的,而堆(heap)是用来存储对象和数组数据。虚拟机的操作除了基于堆、栈还基于函数。
    
    从本质来讲,每个对象实例最后都在RAM上被序列化成一串数字,在该章节,开发一个虚拟机,采用软件工程中经典两层编译模型进行开发,在第一层高级代码被翻译为运行在虚拟机上的中间代码;在第二层中间代码被翻译为目标硬件平台的机器语言。
    
    本书对Java程序员很友好,因为它提到的VM模型是以JVM为蓝本的,所以上面提到的高级语言可以理解为是Java,虚拟机可以理解为JVM,中间码可以理解为bytecode,通过本章节,了解到Java之所以跨平台正是因为虚拟机的存在。

    关于堆栈可以参考这篇博客:什么是堆和栈,它们在哪儿?


    第十、十一章:编译器

    什么是编译器?
        将高级语言程序从源语言编译成目标语言,这个过程就是编译器要做的事情。
    
    那它是如果工作的呢?
        编译器要将源语言代码编译成目标语言,要经过一系列的规则,算法,但主要可以分为两个步骤:
            1.语法分析————经过一系列特定的规则和算法,解析出一定的格式规范;
            2.代码生成————对变量、数据、表达式、逻辑运算进行一系列操作;

    第十二章:操作系统

    作为本书的最后一章,从如何搭建一个最小系统,编写一个汇编编译器,编写一个虚拟机,选择一门高级语言作为开发
    语言(Jack类似Java),编写一个编译器,设计API类库,内存,I/O,再将前面的内容全部整合,从01设计一个计算机系统。

    结语

    这本书从0到1,从最简单的与或非逻辑门,一步一步手把手教你,不需要任何基础,只需要耐心,细心,相信最后对底层系统了解会更上一层楼。


    ELEVEN:
    个人转载无须申请版权许可

    展开全文
  • 包含软件工具,源码,项目文件,ppt和pdf手册
  • 计算机要素是我在面试失败后寻找的“神书”(不喜勿喷),已经完成前六章的学习,课后习题也差不多,第六章的程序还有待完善,后面的课程对我来说有点困难,正在努力中,感觉需要回顾,准备写写心得。 我认为本书...

    开始

    计算机要素是我在面试失败后寻找的“神书”(不喜勿喷),已经完成前六章的学习,课后习题也差不多,第六章的程序还有待完善,后面的课程对我来说有点困难,正在努力中,感觉需要回顾,准备写写心得。
    我认为本书十分适合想要探寻在前人如何将编程世界建立起来,我以前一直觉得无法真正进入编程的世界,电子专业出生的我也没知道小小的晶体管是如何变为一个芯片,可以进行那些复杂的运算;学会使用C语言和C++,依旧只是会使用,对于编译器做了什么,虚拟机,再到汇编、机器码,我就算学习了也无法真正理解他们的联系。
    

    在这里插入图片描述
    上图为本书的课程概况,圆圈中显示了设计的章节,接下来,进入第一章!!!

    展开全文
  • 计算机系统要素--从零开始构建现代计算机 门逻辑--CPU--机器语言--汇编语言--虚拟机--程序设计语言
  • 计算机组成要素-从零开始构建现代计算机》是一本好书,这阵子花业余时间学习,并跟着做了章节后面的项目,收获很大。已经完成了前面9章的项目内容,目前正在进行第10章,编译器的编写。 前面9章的项目,以...

    《计算机系统要素-从零开始构建现代计算机》是一本好书,这阵子花业余时间学习,并跟着做了章节后面的项目,收获很大。已经完成了前面9章的项目内容,目前正在进行第10章,编译器的编写。




    前面9章的项目,以Nand门为基础,先后构建了各种逻辑门,组合芯片(半加器、全加器、加法器、加一器、ALU),时序芯片(寄存器、存储器、计数器),以及CPU和一个简单的,有屏幕和键盘的计算机Hack。并实现了Hack(此计算机体系结构所对应的的汇编语言)汇编编译器、Jack(基于此计算机的一个类Java虚拟机语言)堆栈虚拟机。


    第10章和11章是Jack语言编译器的项目,12章还有关于操作系统的实现。


    对于有志于了解整个计算机体系结构和软硬件架构,以及计算机技术的来龙去脉的朋友,强烈建议也学习一下,能 够理清很多之前不明白,是是而非的内容。


    下面是我把项目的代码放在了github上,供参考,大家一起探讨进步!


    https://github.com/ytzys/nand2tetris

    展开全文
  • 计算机系统要素:第四章 机器语言

    千次阅读 2017-07-16 20:17:44
    在书中,有个关于助记符表的地方,我认为有个小错,就是在对内存操作时a=1,不明白的可以看看书(p67中文版 计算机系统要素) 具体细节不做多解释,介绍项目: 编写并测试 乘法 和I/O处理程序 (1)乘法...

    所谓机器语言,就是底层硬件能认同的语言,可以被看作是一种约定的形式,它利用处理器和寄存器来操控内存。
    那么内存是什么?——用来储存数据和指令的硬件设备,可以通过提供它的地址来描述,比如几号存储柜。
    谁来操控——处理器,通常称为中央处理器或者CPU,是执行一组固定基本操作的设备。这些操作通常包括算术操作和逻辑操作,内存读取操作和控制操作。当然内存操作的是二进制数值,它们来自寄存器或者指定的内存单元。
    这里有个疑问,在第二章中构建的寄存器和内存单元是一样的组成单元,为何读取寄存器比内存快?
    我个人理解:cpu中集成了寄存器,紧挨着处理器,相当于处理器的一个高速本地内存,使得处理起来能快速的操作数据和指令,而想要去得到内存的数据,先需要找到这个内存单元的地址,再对内存单元操作。
    cpu要能一统所有硬件,需要所有硬件都能听懂,所以在之前我们要学会它们的语言(当然,也是我们人类发明的)。
    计算机只能听懂0和1,所以与机器交流起来。。。。。。
    算了,鉴于二进制相当晦涩,通常会在机器语言中同时使用二进制码和助记符,就是一种能人能看懂的符号,在经过编译器翻译成机器语言,比如add翻译过来就是1010这样的 。
    在本章中要学的就是HACK语言,它包括了两种指令:一种是地址指令,也称为A—指令;另一种是计算指令,C-指令。
    举个栗子:@i表示i这个变量的内存地址,M=1,表示把1赋给i.m总是代表一个内存单元中的数值。(要继续问为啥,我想没必要挖下去了,就相当于问你为啥叫张三一样)
    @100
    D=D-A;//D=i-100
    指令代码的描述是对以下三种问题的回答:
    (a)计算什么?
    (b)将计算后的值存储到什么地方;
    (c)下一步要干什么。

     在书中,有个关于助记符表的地方,我认为有个小错,就是在对内存操作时a=1,不明白的可以看看书(p67中文版 计算机系统要素) 
    

    具体细节不做多解释,介绍项目:
    编写并测试 乘法 和I/O处理程序

    (1)乘法
    通过加减法和移位来实现的;把除法转成乘法,乘法转成加法,减法也转成加法。
    模拟CPU运算乘法的步骤:
    假设计算3*3
    原码是0011 * 0011(以4位存贮单元,因为是原码,最高位不代表符号位)
    CPU中的乘法器过程如下:
    3个寄存器分别存放乘数0011 被乘数 0011 一个部分积初始值为0
    1、首先判断乘数寄存器(目前为0011)的最低位为1。如果为1则将部分积的值通过加法器加上被乘数0011。因此此步结束后部分积寄存器内容为0011
    2、将乘数寄存器右移一位,同时将部分积寄存器也右移一位。同时乘积寄存器最低位溢出丢弃。部分积寄存器高位补0,低位溢出后填充到乘数寄存器。因此,部分积寄存其原来的值0011变成了0001。乘数寄存器0011变成了1001(这里低位的1溢出,最高位被部分积溢出的1填充)
    3、判断乘数寄存器最低位(0001).为1。将部分积通过加法器加上被乘数0011。因此此不结束后部分积寄存器内容是(0001+0011=0100).
    4、乘数寄存器右移一位,同时将部分积寄存器也有右移一位。同第2步。因此部分积寄存器原来的值0100变成了0010。乘数寄存器1001变成了0100,低位1溢出,最高位被部分积溢出的0填充。
    5、判断乘数寄存器低位为0不做加法操作直接做第2步的移位操作。既有了部分积变成0001,乘数变成了0010。
    6、判断乘数寄存器低位为0不做加法操作直接做第2步的移位操作。既有了部分积变成0000,乘数变成了1001;此时所有乘数全部处理完毕。
    7、最终结果将部分积作为高位,乘数寄存器作为低位得到值为00001001 换算成10进制得到9

    @Shift
    M = 1
    @2
    M = 0
    
    @i           //i = 0
    M = 0
    
    (FOR)        //i < 16
    @i
    D = M              
    @16
    D = D - A
    @END
    D;JGE
    
    @1           //R2 = R2 + {R0 & [0 - (R1 & Shift)]}
    D = M
    @Shift
    D = D & M
    D = -D
    @0
    D = M & D
    @2
    M = M + D
    
    @0           //R0 << 1
    D = M
    M = M + D
    @Shift       //Shift << 1
    D = M
    M = M + D
    
    @i            //i++
    M = M + 1
    @FOR
    0;JMP
    (END)
    

    (2)I/O处理程序 (长按下键时屏幕会3点变黑,无键按下时,清除)
    首先来一段测试程序:(实现屏幕中的3点变黑)

     (BEGIN)
    @SCREEN  //屏幕的基地址  
    D=A
    M=1//1为黑  0为白
    @3
    D=D+A
    A=D
    M=1
    (END)
    @BEGIN
    0;JMP
    

    图中两点变黑

    (BEGIN)
    @KBD       //键盘基地址是否有值,没有就跳转到清屏
    D = M
    @CLEAN
    D;JEQ
                      //有键按下
    @SCREEN          //涂黑 
    D = A
    M = 1
    @1
    D=D+A
    A=D
    M=1
    @2
    D=D+A
    A=D
    M=1
    
    @END
    0;JMP
    
    (CLEAN)          //无键盘按下 
    
    @SCREEN          //涂白 
    D = A
    M = 0
    @1
    D=D+A
    A=D
    M=0
    @2
    D=D+A
    A=D
    M=0
    (END)
    @BEGIN
    0;JMP
    

    汇编转机器语言
    按下键变黑

    展开全文
  • 计算机系统要素 EOCS_Lecture 英文
  • 计算机系统要素】素材

    热门讨论 2011-08-26 10:14:37
    计算机系统要素】所附的素材,包括各章ppt,随书软件包及软件用法教程,http://www1.idc.ac.il/tecs/plan.html网站上有下载,不过比较分散的,我花了大半个小时下的,打好了包,方便朋友们使用,学这本书的朋友...
  • 先占坑,后续待填!
  • 这个系列是我近期学习The Elements of Computing Systems的学习笔记,这是一个网络公开课程,旨在教授任何人从零开始实现计算机构建的完整流程,点击进入网站。由于这是一个英文课程,且中文相关资料较少,我会在...
  • 计算机系统要素 EOCS_Tutorial 英文
  • 至此,《计算机系统要素》硬件部分全部结束。从连Nand门是什么都不知道,到亲自动手构建出了Computer芯片,看着一行行01码按着自己的芯片完成指令,这个过程真的超有成就感!可以说种学习体验这胜过我大学所有的...
  • 本书通过展现简单但功能强大的计算机系统之构建过程,为读者呈现了一幅完整、严格的计算机应用科学大图景。本书作者认为,理解计算机工作原理的最好方法就是亲自动手,从零开始构建计算机系统。 通过12个章节和项目...
  • 计算机系统要素》配套软件和资料下载(博文视点链接)TECS Software Suite 2.5 软件和资料打包下载(约32MB):(包括配套软件、配套软件源代码、实践项目源文件、软件使用教程、演讲材料、原版图书样章等内容)...
  • 计算机系统要素 从零开始构建现代计算机 The Elements of Computing Systems Building a Modern Computer from First Principles 前言 Preface What I hear, I forget; What I see, I remember; What I do...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 59,509
精华内容 23,803
关键字:

计算机系统要素