草庐IT

统治地球的冯·诺依曼们

湘王 2023-04-16 原文

以前计算机专业的同学都会学习一门叫《计算机组成原理》的课程,这门课程主要作用就是扫盲,因为在之前的那个年代,并不是很多人都买得起计算机的,这就导致很多学计算机的同学连计算机的电源开关在哪里都不知道(真的有这回事),更别说拿它去做更高级的事情了(多数学渣拿去打游戏了)。
在那门课程里面,让人记忆最深刻的就是一个叫做冯·诺依曼的人,据说是个全才:数学家、物理学家、博弈论之父、核武器和生化武器专家。他起草了一个叫做EDVAC(Electronic Discrete Variable Automatic Computer)的方案,基本上奠定了现代计算机的体系结构。
这是什么意思呢?就好比以前生产力水平低下,科技不发达,连住的房子都是茅草盖的。但科技发展起来以后,连着工业界和地产界也一起升级,导致现在不用钢筋混凝土盖的玩意都不叫房子了。所以钢筋混凝土某种程度上也成了房子的代名词。
搁计算机这也一样。冯·诺依曼提出的EDVAC机型设想,就成了目前全世界都通用的范式(量子计算机除外,因为不太了解,不能乱说),虽然台式机、手机、平板、智能电视等等终端电子设备形状各异,功能不同,但如果说起CPU、内存和存储器这三样配置,它们共同的祖先就是EDVAC。
是的,从EDVAC诞生起,就规定了只要是计算机,只要是可以编程的玩意,就基本上都会有CPU、内存和外存(在台式机上叫硬盘或磁盘,在手机上叫存储空间)。包括云计算用的服务器,也都需要配置好这三项参数才能开通。
在未来很长的一段时间内,除非有某个科技天才或商界大佬结合在一起,研发出一种全新的机型来替代冯·诺依曼机。否则,从1946年就基本定型的冯·诺依曼机,还会统治地球很长一段时间。
除了他之外,另一个人对计算机贡献也挺大的,名字叫香农。没有他,估计今天的计算机还只是用来计算导弹弹道和卫星发射参数的工具,不可能出现互联网,更不可能用来看网络视频。感兴趣的同学可以思考一个问题:1bit(比特)究竟有多重?

有关统治地球的冯·诺依曼们的更多相关文章

  1. javascript - 谷歌地图 API JS 上的 3D 地球地球仪 - 2

    简短的问题:有没有办法用googlemapswebAPI来表示3D地球?关于googlemaps,我们现在可以将地球想象成一个3D球体。这是一个例子:我正在使用googlemapsAPI开发一个HTML项目,我想在我的网站上使用这个地球表示。但是,我没有找到关于这个主题的任何主题。有没有一种方法可以像在googlemapswebsite上那样用googlemapsAPI来表示3D地球球体?3D?这是我的map示例(当然是我的代码摘录以澄清问题):varmap;functioninitMap(){map=newgoogle.maps.Map(document.getElementById

  2. javascript - THREE.js 光线转换对单个> 500k 多边形(面)对象非常慢,线与地球相交 - 2

    在我的项目中,我有一个玩家在地球上行走。地球不仅仅是一个球体,它还有山脉和山谷,所以我需要改变玩家的z位置。为此,我从玩家的位置向单个物体(地球)转换一条光线,我得到它们相交的点并相应地改变玩家的位置。我只在玩家移动时进行光线转换,而不是在每一帧上。对于一个复杂的对象,它需要永远。具有~1m多边形(面)(1024x512分段球体)的对象需要~200ms。光线转换是否针对每张脸?是否有一种传统的快速方法可以在三中实现这一点,比如一些加速结构(八叉树?bvh?——老实说,从我的谷歌搜索中我似乎没有发现三中包含这样的东西)或其他一些想法-开箱即用(无光线转换)方法?vardir=g_Game

  3. javascript - fitBounds() 显示整个地球(如果 map 先隐藏然后显示) - 2

    我有一堆或标记,我只想显示包含它们的区域。我发现了一长串类似的问题(请参阅帖子底部的一些问题),但没有一个解决方案适合我。LatLngBounds构建正确,但当我调用fitBounds时,结果将如下所示:代替:任何人都可以在我的代码中发现明显的错误吗?varopt={zoom:8,mapTypeId:google.maps.MapTypeId.ROADMAP};map=newgoogle.maps.Map(document.getElementById("map"),opt);varbox=newgoogle.maps.LatLngBounds();for(vari=0;i我阅读和尝试

  4. go - 我怎样才能找到地球上两条线(来自 geojson 的线串)之间的距离 - 2

    如果我有纬度和经度,如何找到地球上两条线之间的最小距离?偏爱golang,但用任何编程语言都会很酷我真的很努力地找到了,但是我只能找到两个点的方法 最佳答案 获取积分http://turfjs.org/docs#explode通过http://turfjs.org/docs#coordEach找到它到线http://turfjs.org/docs#pointToLineDistance的距离 关于go-我怎样才能找到地球上两条线(来自geojson的线串)之间的距离,我们在StackOv

  5. http - 一个 HTTP 定界符来统治它们 - 2

    我有一个格式为blah=foo的配置文件。我想要这样的条目:http=https://stackoverflow.com/questions,标题键和值,要搜索的字符串。我同意要求对url进行urlecncode编码。是否有任何我可以使用的ASCII字符在上面的示例中的任何地方都不是有效值(在=上拆分一次之后)?我的示例使用了逗号,但我认为这在header值中有效?在仔细阅读了一些RFC之后,我认为有人对此更熟悉可以减轻我的痛苦。如果存在可能有助于此的现有标准库,我的项目也在Go中...... 最佳答案 您可以使用非ascii字符和

  6. c++ - 为什么 LogonUserW 失败并显示错误代码 183 (ERROR_ALREADY_EXISTS) - 2

    我在LogonUserW失败后立即调用GetLastError()来检查错误代码,它总是183,但我不知道为什么LogonUserW会以这样的值失败。查了msdn,发现183(ERROR_ALREADY_EXISTS)的意思是“当那个文件已经存在时无法创建文件”,那么LogonUserW会创建什么文件呢?任何人都可以在这里阐明一些问题吗?if(LogonUserW(uniUserName,uniDomainName,uniPassword,LOGON32_LOGON_NETWORK,LOGON32_PROVIDER_DEFAULT,&token)){//dosomethingwhens

  7. 达摩院的地球云计算平台AI Earth使用体验 - 2

    缘起这几天朋友圈被AIearth刷屏了,阿里达摩院推出了基于AI与云计算的地球科学计算平台AIearth。周五我便注册了账号,周六通过了审核。我开始尝试使用AIearth。使用初体验首先登录AIearth的官网(https://engine-aiearth.aliyun.com/),注册账号,尽量按照真实信息填写后,等待一段时间便能通过审核。此时我们就可以利用AIearth进行分析。首先进入主页面,选择遥感影像、数据源、时间等:今天我也咨询了关于数据源的问题,目前只有landsat8、9和哨兵1、2的数据,但是后续会上线更多的数据。该平台也提供了一系列的基础工具供读者使用,筛选好影像之后就可以

  8. java - 如何计算地球上某个地方与太阳的夹角? - 2

    对于我的应用程序,我需要计算两条不同线之间的角度:1)第一条线是地球上由经度和纬度定义的点与太阳中心之间的线。2)第二条线是地球上由经度和纬度定义的点与距地球距离最小的月球表面之间。我不知道应该从哪里开始。有什么提示吗? 最佳答案 假设您实际上已经计算出所有三个兴趣点[*],其中O是观察者(在地球上)的位置,S是太阳的位置和M是月球上的点,那么:OM.OS=|OM|*|OS|*cos(theta)或者换句话说,要计算theta,请取两个vector的点积,将结果除以这两个vector的magnitude,然后取结果的反余弦。[*]你

  9. java - 是地球表面上多边形内部或外部的点 - 2

    如何确定一个点是在地球表面的多边形内部还是外部?可以通过右手法则确定多边形的内部,即。当您绕着多边形走动时,多边形的内部位于您的右手边。多边形可能圈出任一极点跨越180度经线覆盖全局50%以上的区域由于地球是一个球体,正常的光线交叉算法无法正常工作。 最佳答案 事实上,正常的光线追踪和缠绕规则方法在球体表面上工作得很好,只需稍作调整。在球体表面,“直线”是一个大圆,距离以角度单位而不是米或英寸来衡量。要从球体表面上的任意点绘制一条射线,只需通过该任意点和球体表面上的任何其他点形成一个大圆即可。为了保持数学清晰,选择第二个点,距离您正

  10. iis - 一个重定向来统治他们 - 2

    尝试helpafellowdeveloper之后在iis.net论坛上,我开始寻找一种更好的重定向方法。因此我得到了thisarticle.我采纳了很多这些想法并开始实现我自己的版本。一切似乎都很好,但我遇到了一个障碍,我希望你能帮忙。好的,快速解释一下我的规则:我的想法是测试url,如果我发现它有问题,我会重写url并让它继续,而不是立即重定向它。如果我在任何时候重写url,我都会将自定义服务器变量“Redirect”设置为true。最后,我测试我的自定义服务器变量是否为真并重定向用户。它的重点是只有一个301重定向,而不是一连串的重定向。这些是我的规则(对不起墙):现在大部分实际上

随机推荐