在理解CPU之前,我们有必要先了解一下现代计算机理论的基石--图灵机,这个抽象模型决定了现代计算机可以被实现.这个模型的工作原理也投射到了CPU的工作实现上.图灵机的知识可深可浅,换句话说,上手容易,但是意义深远. 下面是一个可以在线学习图灵机的网站: Online Turing Machine Simulator 主要参考 <嵌入式C语言自我素养> 百度百科以及大佬博客 b站视频 <数字逻辑>课程 00 内容概括 图灵机的概念产生于英国数学家艾伦·图灵在1936年在<伦敦数…
在大二上学期学习数字逻辑的过程中,我对计算机如何运作产生了兴趣,因此开了这个系列来记录自己在这方面的学习过程,此前三篇分别是: 计算机系统->Hello World的一生 | 程序如何运行,从大致过程上介绍了一个简单的Hello World程序是如何被计算机实现的 计算机系统2->从芯片说起 | 芯片怎样诞生是我在学习另一本书以及B站学习的时候的知识总结,主要讲解数字逻辑层和半导体物理层之间的联系. 计算机系统3-> 现代计算机基石 | 图灵机理论,同样十一篇读书笔记,附上了自己的思考.…
系列的上一篇计算机系统4-> 计组与体系结构1 | 基础概念与系统评估,学习了一些计算机的基础概念,将一些基本的计算机组成部分的功能和相互联系了解了一下,其中很重要的一个抽象思想就是软硬件的接口--指令集,这一篇就来具体地学习MIPS指令集. 参考资料: Computer Organization and Design the 5th Edition,即计算机组成与设计硬件软件接口第五版 课件,由于是英文且只是老师的思路,所以是辅助参考 <计算机组成原理>谭志虎,HUST(此书强推) &…
背景 [作者:DeepLearningStack,阿里巴巴算法工程师,开源TensorFlow Contributor] 在分布式训练时,提高计算通信占比是提高计算加速比的有效手段,当网络通信优化到一定程度时,只有通过增加每个worker上的batch size来提升计算量,进而提高计算通信占比.然而一直以来Deep Learning模型在训练时对Batch Size的选择都是异常敏感的,通常的经验是Large Batch Size会使收敛性变差,而相对小一点的Batch Size才能收敛的更好…
本文转自豆瓣_燃烧的影子 图灵机与可计算性 图灵(1912~1954)出生于英国伦敦,19岁进入剑桥皇家学院研究量子力学和数理逻辑.1935年,图灵写出了"论高斯误差函数"的论文,因此他从一名学生直接成为学院的研究员,并开始了"可计算性"研究.1936年4月,图灵发表了"可计算数及其在判定问题上的一个应用"的论文,形成了"图灵机"的重要思想.用反证法证明,任何可计算其值的函数都存在相应的图灵机:反之,不存在相应图灵机的函数就是…
1 大数据概述 大数据特性:4v volume velocity variety value 即大量化.快速化.多样化.价值密度低 数据量大:大数据摩尔定律 快速化:从数据的生成到消耗,时间窗口小,可用于生成决策的时间非常少:1秒定律,这和传统的数据挖掘技术有着本质区别(谷歌的dremel可以在1秒内调动上千台服务器处理PB级数据) 价值密度低,商业价值高 大数据影响: 对科学研究影响:出现科学研究第四方式数据(前三个分别是实验.理论.计算) 对思维方式影响:全样而非抽样.效率而非准确.相关而非…
算法复杂度主方法 有时候,我们要评估一个算法的复杂度,但是算法被分散为几个递归的子问题,这样评估起来很难,有一个数学公式可以很快地评估出来. 一.复杂度主方法 主方法,也可以叫主定理.对于那些用分治法,有递推关系式的算法,可以很快求出其复杂度. 定义如下: 如果对证明感兴趣的可以翻阅书籍:<算法导论>.如果觉得太难思考,可以跳过该节. 由于主定理的公式十分复杂,所以这里有一种比较简化的版本来计算: 二.举例 二分搜索,每次问题规模减半,只查一个数,递推过程之外的查找复杂度为O(1),递推运算时…
关系型数据库的局限 NoSql出现在关系型数据库之后,主要是为了解决关系型数据库的短板,我们先来看看随着软件行业的发展,关系型数据库面临了哪些挑战: 1.高并发 一个最典型的就是电商网站,例如双11,几亿大军的点击造成在某一时刻的并发量是很高的,传统的关系型数据库肯定已经是不堪重负了,如Oracle的Session数量推荐的才只有500. 2.高效率存储海量数据 大数据时代,数据量已经不是用GB.TB来衡量了,而是EB.ZB了,面对这海量的数据,如何高效率的存储这些数据,关系型数据库无法解决这个…
Google File System 但凡是要开始讲大数据的,都绕不开最初的Google三驾马车:Google File System(GFS), MapReduce,BigTable. 为这一切的基础的Google File System,不但没有任何倒台的迹象,还在不断的演化,事实上支撑着Google这个庞大的互联网公司的一切计算. 以下是原文内容,内容较长,建议详细阅读. 摘要 ​ 我们设计并实现了 Google GFS 文件系统,一个面向大规模数据密集型应用的.可伸缩的分布式文件系统.…
掌握目标语言的使用.编写 是非常重要的!!! 如果你要实现的Jack语言编译器是把Jack语言代码编译成虚拟机VM代码.或者直接成汇编代码,要完成源代码中unit A——> 目标语言代码转写此unit A  这个工作,缺少对目标语言代码的掌握是不行的. 所以:汇编作为最普遍的目标代码,是早晚都需要学会的. 贴几张书中截图,展示一下在vm层面,是如何实现诸如求积函数.数组元素赋值.对象实例赋值这样的高级语言代码典型unit的. 首先这是vm的函数执行内存模型.基本的pop/push指令: 1. 一…