计算机内的内外储存器都具有计算机记忆功能怎么用其中的信息都不会丢失

内容简介 ······

《计算机与人脑》是自动机(以电子计算机为代表)理论研究中的重要材料之一。原书是冯·诺意曼在年准备讲演用的未完成稿。著者从数学的角度,主要是从逻辑和统计数学的角度,探讨计算机的运算和人脑思维的过程,进行了一些比较研究。书中的许多技术推论带有预测性,尚待今后实验研究及进一步探讨才能判断其是否正确。

符号,它们的组合与体现

数字计算机的类型及其基本元件

每一基本运算只需要一个器官的原理

由此引起的特殊记忆器官的需要

用“控制序列”点的控制

记忆存储控制的运算方式

数的混合表现,以及在此基础上建造的计算机

需要高度的准确度(数字的)之理由

第六章 现代模拟计算机的特征

第七章 现代数字计算机的特征

记忆器官的存取时间和记忆容量

以作用器官构成的记忆寄存器

存取时间的概念之复杂性

第八章 神经元功能简述

第九章 神经脉冲的本质

由脉冲引起的刺激脉冲的机制,它的数字特性

神经反应、疲乏和恢复的时间特性

神经元的大小,它和人造元件的比较

能量的消耗,与人造元件的比较

最简单的——基本的逻辑判据

第十一章 神经系统内的记忆问题

估计神经系统中记忆容量的原理

运用上述规则估计记忆容量

记忆的各种可能的物理体现

记忆的基础元件不需要和基本作用器官的元件相同

第十二章 神经系统的数字部分和模拟部分

遗传机制在上述问题中的作用

第十三章 代码,及其在机器功能的控制中之作用

第十四章 神经系统的逻辑结构

数字方法和逻辑的相互作用

预计需要高准确度的理由

第十五章 使用的记数系统之本质:它不是数字的

算术运算中的恶化现象;算术深度和逻辑深度的作用

算术的准确度或逻辑的可靠度,它们的相互转换

可以运用的信息系统的其他统计特性

第十六章 人脑的语言不是数学的语言

附录关于本书著者冯·诺意曼

喜欢读"计算机与人脑"的人也喜欢的电子书 ······

  • 神经元从生物结构上看是最基本的运算元件,但是神经元的详细工作原理以及整合效应的分析却是其复杂的,至少超出当前人类的智力范围。

  • 0

    读不懂 没基础 只是浏览了下!!!

  • 0

    很短,不好理解。其他都是冯诺依曼的传记、和书及此书有关的人物介绍、计算机发展简史。

  • 0

    当代一切计算技术的基础与鼻祖,但其对‘’不同种族语言和数学的发明是偶然的。‘’这一观点是不正确的,显然不论是什么种族,语言是其对于客观世界反映的产物,偶然性只体现于具体的表达形式(如中文和英文的区别)。人类对于逻辑的认知是一致的并且是来源于客观世界的。另外,人类最伟大的科学发现其实莫过于完全客观地解释自身啊。

  • 0

    冯诺依曼思想太太太太超前了

  • 0

  • 无论是一部作品、一个人,还是一件事,都往往可以衍生出许多不同的话题。将这些话题细分出来,分别进行讨论,会有更多收获。

    重温《计算机与人脑》(1965年的中文版),觉得那个年代的译者实在是不容易:在叙述完冯·诺伊曼的生平后,还得加一句“他是一贯地为美国战后的扩军备战反动政策服务的科学家之一”;在列举了冯·诺伊曼在博弈论上的贡献后,还得评价一下“但在应用于经济活动的观点上面,以资产...  (

    这是数学家冯?诺伊曼晚年关于计算机的一部著名著作,写于上世纪五十年代,虽然年代久远,但是,要真正了解计算机,请认真阅读这本篇幅很小的名著。 哪怕只说在这本书第一部分:计算机 冯诺依曼在这部分系统讲解了冯诺依曼体系结构 包括逻辑控制、存储层次结构、指令集特性 ...  (

      von Neumann的最后一部著作,由于是未完成的讲演稿,所以几乎不存在引经据典的倾向(作者自己在正文中也补充解释了这一点),而是比较直接平实地从记忆储存体、运算方式、运算能力及时间、运算误差等方面谈论并比较了计算机与人脑的异同。   全书最引起我兴趣的一个比较...  (

    计算机与人脑之间比较,差异大于相似之处;相对而言,全球脑和人脑之间的相似之处更多一些。当然,这是题外话了。 冯·诺伊曼不愧为著名的科学家。在这本尚未完成的书稿中,他探讨了许多与计算机和人脑有关的重要机制,例如在计算方面的并行、串行以及统计学问题,还有数字与...  (

    现存的神经网络存在一个问题叫做梯度衰减(gradient decay?)。大致是说最后梯度很难对前面曾产生影响。 p.s.我才知道这个问题在今年已经被解决。挺奇怪的,听说这个问题主要在于不同层之间的剃度能量不稳定。所以PReLu中引入了MSRA filter。后来又出现了Batch Normalization,但...  (

    这篇书评可能有关键情节透露

    读后只能用两个字表示自己的感受:震撼!前所未有的感觉! 读序的时候感到好笑,关于计算机的部分基本不懂,关于人脑的部分懂的也不多,但感到震撼。 读序的时候搞笑之外,还感到了深深的悲哀,不是为译者,而是为自己。中文作为母语而当今社会的许多著作都是英文写的,除此...  (

    在看过后印象写下 《1》第一部分说明了以自己名字命名的冯诺依曼体系结构的思路,我把自己的写下:(1)每个基本元器件只需要一个就够,而这需要记忆。(2)从控制序列点到存储程序,把程序存到记忆里,然后控制器解释执行程序。(3)再加上输入输出,5个部件构成了现在计算机...  (

    这篇书评可能有关键情节透露

    诺贝尔奖物理学获得者汉斯·贝瑟曾经说:“我有时在思考,冯·诺伊曼这样的大脑是否暗示着存在比人类更高级的生物物种。”的确如此,一叶蔽目,不见泰山;两豆塞耳,不闻雷霆。在阅读本书之前,我对冯先生的了解仅仅停留在他创造了经典而永恒的冯·诺依曼体系,由运算器、控制...  (

    这篇书评可能有关键情节透露

    读后只能用两个字表示自己的感受:震撼!前所未有的感觉! 读序的时候感到好笑,关于计算机的部分基本不懂,关于人脑的部分懂的也不多,但感到震撼。 读序的时候搞笑之外,还感到了深深的悲哀,不是为译者,而是为自己。中文作为母语而当今社会的许多著作都是英文写的,除此...  (

    • 工程中人们对数字精准度要求只有1:00,为什么计算机需要高精度? 因为连续运算时误差是叠加的,N次运算,误差将增加sqrt(N)倍 假设一台计算机每一步运算的精度是1:10^12,只有当N>10^18次方时,总误差才会大于1/1000 假设一步运算需要20微妙,连续计算48小时,N也才10,所以精度太高也没有意思。 根据 IEEE 754 标准,float 的精度为 1:2^23,double 的精度为 1:2^53,但在实际的工程中人们对数字精..

      工程中人们对数字精准度要求只有1:00,为什么计算机需要高精度?

      因为连续运算时误差是叠加的,N次运算,误差将增加sqrt(N)倍

      假设一台计算机每一步运算的精度是1:10^12,只有当N>10^18次方时,总误差才会大于1/1000

      假设一步运算需要20微妙,连续计算48小时,N也才10,所以精度太高也没有意思。

      根据 IEEE 754 标准,float 的精度为 1:2^23,double 的精度为 1:2^53,但在实际的工程中人们对数字精度的要求大概在 1:1000 到 1:10000 之间,而在一些非科学计算的应用里,人们对数字精度的要求更低。既然如此,人们在设计计算机的时候要使用如此高的精度?

    • Pi 人脑的“逻辑深度”和“算术深度”都比计算机小的多,但有许多现代计算机不能比拟的优越性。比如,同样容积的神经元比人造元件能完成更多的运算,能同时处理更多的信息,记忆容量也大得多,每个神经元件的准确度较低而其综合的可靠性较高等等··· Pii 推论:既然神经系统和计算机的逻辑结构有很大区别,那么,我们所用的逻辑和数学,也就和语言一样,同样是历史的、偶然的表达形式··· 看不大懂,有空再研究

      Pi 人脑的“逻辑深度”和“算术深度”都比计算机小的多,但有许多现代计算机不能比拟的优越性。比如,同样容积的神经元比人造元件能完成更多的运算,能同时处理更多的信息,记忆容量也大得多,每个神经元件的准确度较低而其综合的可靠性较高等等···

      Pii 推论:既然神经系统和计算机的逻辑结构有很大区别,那么,我们所用的逻辑和数学,也就和语言一样,同样是历史的、偶然的表达形式···

    • (无朔...要下雨了。)

      作为一本六十年代翻译出来的作品,译者在本书中亮翻了。这里我没有讽刺的意思,因为出版翻译有很强的时代背景。我来引用一些: 译者序 “应该指出,近年来,围绕着自动技术的新成就和自动机理论的发展,产生了一股反动思潮。资产阶级的“思想家”们(其中也有自然科学家),扭曲和利用这方面的成就,把人脑和自动机等同起来,鼓吹”机器能够思维“、“出现了有生命、有意识、有理智的机器”......等等谬论,作出种种反动的、...

      作为一本六十年代翻译出来的作品,译者在本书中亮翻了。这里我没有讽刺的意思,因为出版翻译有很强的时代背景。我来引用一些:

      “应该指出,近年来,围绕着自动技术的新成就和自动机理论的发展,产生了一股反动思潮。资产阶级的“思想家”们(其中也有自然科学家),扭曲和利用这方面的成就,把人脑和自动机等同起来,鼓吹”机器能够思维“、“出现了有生命、有意识、有理智的机器”......等等谬论,作出种种反动的、谬误的哲学概括和社会政治方面的结论。”

      【木马】亮点在“其中也有自然科学家”...不过或许此刻布洛维正在湾区寒冷的夏天里点头赞许呢。

      “我们应该以马克思列宁主义为武器,和这些反动思潮作斗争,彻底批判这些反动思想”

      【木马】马列主义躺着中枪了。

      “冯诺依曼在本书中,虽然还没有作出直接的社会政治结论,可是在若干理论概括中,其哲学观点是错误的。”

      【木马】冯大仙没表达观点不要紧,我们先竖立假想敌,然后打击!

      “除了计算技术和自动机理论之外,他对博弈论做了一些工作,曾和摩尔根斯坦合著《博弈理论和经济行为》一书,在博弈论数学方法上有些成就,但在应用于经济活动的观点上面,以资产阶级经济学的边际效用理论为基础,则是完全谬误的。”

      【木马】原来那本书在学术上也只是轻飘飘地“有些成就”。而译者就在这句对冯大仙最重要的贡献之一的全盘否定中,铿锵有力地结束了全书。

    • (无朔...要下雨了。)

      作为一本六十年代翻译出来的作品,译者在本书中亮翻了。这里我没有讽刺的意思,因为出版翻译有很强的时代背景。我来引用一些: 译者序 “应该指出,近年来,围绕着自动技术的新成就和自动机理论的发展,产生了一股反动思潮。资产阶级的“思想家”们(其中也有自然科学家),扭曲和利用这方面的成就,把人脑和自动机等同起来,鼓吹”机器能够思维“、“出现了有生命、有意识、有理智的机器”......等等谬论,作出种种反动的、...

      作为一本六十年代翻译出来的作品,译者在本书中亮翻了。这里我没有讽刺的意思,因为出版翻译有很强的时代背景。我来引用一些:

      “应该指出,近年来,围绕着自动技术的新成就和自动机理论的发展,产生了一股反动思潮。资产阶级的“思想家”们(其中也有自然科学家),扭曲和利用这方面的成就,把人脑和自动机等同起来,鼓吹”机器能够思维“、“出现了有生命、有意识、有理智的机器”......等等谬论,作出种种反动的、谬误的哲学概括和社会政治方面的结论。”

      【木马】亮点在“其中也有自然科学家”...不过或许此刻布洛维正在湾区寒冷的夏天里点头赞许呢。

      “我们应该以马克思列宁主义为武器,和这些反动思潮作斗争,彻底批判这些反动思想”

      【木马】马列主义躺着中枪了。

      “冯诺依曼在本书中,虽然还没有作出直接的社会政治结论,可是在若干理论概括中,其哲学观点是错误的。”

      【木马】冯大仙没表达观点不要紧,我们先竖立假想敌,然后打击!

      “除了计算技术和自动机理论之外,他对博弈论做了一些工作,曾和摩尔根斯坦合著《博弈理论和经济行为》一书,在博弈论数学方法上有些成就,但在应用于经济活动的观点上面,以资产阶级经济学的边际效用理论为基础,则是完全谬误的。”

      【木马】原来那本书在学术上也只是轻飘飘地“有些成就”。而译者就在这句对冯大仙最重要的贡献之一的全盘否定中,铿锵有力地结束了全书。

    • 工程中人们对数字精准度要求只有1:00,为什么计算机需要高精度? 因为连续运算时误差是叠加的,N次运算,误差将增加sqrt(N)倍 假设一台计算机每一步运算的精度是1:10^12,只有当N>10^18次方时,总误差才会大于1/1000 假设一步运算需要20微妙,连续计算48小时,N也才10,所以精度太高也没有意思。 根据 IEEE 754 标准,float 的精度为 1:2^23,double 的精度为 1:2^53,但在实际的工程中人们对数字精..

      工程中人们对数字精准度要求只有1:00,为什么计算机需要高精度?

      因为连续运算时误差是叠加的,N次运算,误差将增加sqrt(N)倍

      假设一台计算机每一步运算的精度是1:10^12,只有当N>10^18次方时,总误差才会大于1/1000

      假设一步运算需要20微妙,连续计算48小时,N也才10,所以精度太高也没有意思。

      根据 IEEE 754 标准,float 的精度为 1:2^23,double 的精度为 1:2^53,但在实际的工程中人们对数字精度的要求大概在 1:1000 到 1:10000 之间,而在一些非科学计算的应用里,人们对数字精度的要求更低。既然如此,人们在设计计算机的时候要使用如此高的精度?

    • Pi 人脑的“逻辑深度”和“算术深度”都比计算机小的多,但有许多现代计算机不能比拟的优越性。比如,同样容积的神经元比人造元件能完成更多的运算,能同时处理更多的信息,记忆容量也大得多,每个神经元件的准确度较低而其综合的可靠性较高等等··· Pii 推论:既然神经系统和计算机的逻辑结构有很大区别,那么,我们所用的逻辑和数学,也就和语言一样,同样是历史的、偶然的表达形式··· 看不大懂,有空再研究

      Pi 人脑的“逻辑深度”和“算术深度”都比计算机小的多,但有许多现代计算机不能比拟的优越性。比如,同样容积的神经元比人造元件能完成更多的运算,能同时处理更多的信息,记忆容量也大得多,每个神经元件的准确度较低而其综合的可靠性较高等等···

      Pii 推论:既然神经系统和计算机的逻辑结构有很大区别,那么,我们所用的逻辑和数学,也就和语言一样,同样是历史的、偶然的表达形式···

    • Pi 人脑的“逻辑深度”和“算术深度”都比计算机小的多,但有许多现代计算机不能比拟的优越性。比如,同样容积的神经元比人造元件能完成更多的运算,能同时处理更多的信息,记忆容量也大得多,每个神经元件的准确度较低而其综合的可靠性较高等等··· Pii 推论:既然神经系统和计算机的逻辑结构有很大区别,那么,我们所用的逻辑和数学,也就和语言一样,同样是历史的、偶然的表达形式··· 看不大懂,有空再研究

      Pi 人脑的“逻辑深度”和“算术深度”都比计算机小的多,但有许多现代计算机不能比拟的优越性。比如,同样容积的神经元比人造元件能完成更多的运算,能同时处理更多的信息,记忆容量也大得多,每个神经元件的准确度较低而其综合的可靠性较高等等···

      Pii 推论:既然神经系统和计算机的逻辑结构有很大区别,那么,我们所用的逻辑和数学,也就和语言一样,同样是历史的、偶然的表达形式···

    • 工程中人们对数字精准度要求只有1:00,为什么计算机需要高精度? 因为连续运算时误差是叠加的,N次运算,误差将增加sqrt(N)倍 假设一台计算机每一步运算的精度是1:10^12,只有当N>10^18次方时,总误差才会大于1/1000 假设一步运算需要20微妙,连续计算48小时,N也才10,所以精度太高也没有意思。 根据 IEEE 754 标准,float 的精度为 1:2^23,double 的精度为 1:2^53,但在实际的工程中人们对数字精..

      工程中人们对数字精准度要求只有1:00,为什么计算机需要高精度?

      因为连续运算时误差是叠加的,N次运算,误差将增加sqrt(N)倍

      假设一台计算机每一步运算的精度是1:10^12,只有当N>10^18次方时,总误差才会大于1/1000

      假设一步运算需要20微妙,连续计算48小时,N也才10,所以精度太高也没有意思。

      根据 IEEE 754 标准,float 的精度为 1:2^23,double 的精度为 1:2^53,但在实际的工程中人们对数字精度的要求大概在 1:1000 到 1:10000 之间,而在一些非科学计算的应用里,人们对数字精度的要求更低。既然如此,人们在设计计算机的时候要使用如此高的精度?

    • (无朔...要下雨了。)

      作为一本六十年代翻译出来的作品,译者在本书中亮翻了。这里我没有讽刺的意思,因为出版翻译有很强的时代背景。我来引用一些: 译者序 “应该指出,近年来,围绕着自动技术的新成就和自动机理论的发展,产生了一股反动思潮。资产阶级的“思想家”们(其中也有自然科学家),扭曲和利用这方面的成就,把人脑和自动机等同起来,鼓吹”机器能够思维“、“出现了有生命、有意识、有理智的机器”......等等谬论,作出种种反动的、...

      作为一本六十年代翻译出来的作品,译者在本书中亮翻了。这里我没有讽刺的意思,因为出版翻译有很强的时代背景。我来引用一些:

      “应该指出,近年来,围绕着自动技术的新成就和自动机理论的发展,产生了一股反动思潮。资产阶级的“思想家”们(其中也有自然科学家),扭曲和利用这方面的成就,把人脑和自动机等同起来,鼓吹”机器能够思维“、“出现了有生命、有意识、有理智的机器”......等等谬论,作出种种反动的、谬误的哲学概括和社会政治方面的结论。”

      【木马】亮点在“其中也有自然科学家”...不过或许此刻布洛维正在湾区寒冷的夏天里点头赞许呢。

      “我们应该以马克思列宁主义为武器,和这些反动思潮作斗争,彻底批判这些反动思想”

      【木马】马列主义躺着中枪了。

      “冯诺依曼在本书中,虽然还没有作出直接的社会政治结论,可是在若干理论概括中,其哲学观点是错误的。”

      【木马】冯大仙没表达观点不要紧,我们先竖立假想敌,然后打击!

      “除了计算技术和自动机理论之外,他对博弈论做了一些工作,曾和摩尔根斯坦合著《博弈理论和经济行为》一书,在博弈论数学方法上有些成就,但在应用于经济活动的观点上面,以资产阶级经济学的边际效用理论为基础,则是完全谬误的。”

      【木马】原来那本书在学术上也只是轻飘飘地“有些成就”。而译者就在这句对冯大仙最重要的贡献之一的全盘否定中,铿锵有力地结束了全书。

    专业文档是百度文库认证用户/机构上传的专业性文档,文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“专业文档”标识的文档便是该类文档。

    VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取,非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档。

    VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取,非会员用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档。

    付费文档是百度文库认证用户/机构上传的专业性文档,需要文库用户支付人民币获取,具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档。

    共享文档是百度文库用户免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定。只要带有以下“共享文档”标识的文档便是该类文档。

    • CPU终究只是一个执行部件,它所执行的指令和数据来自哪呢?总不能由人来输入吧,我觉得键盘输入的速度肯定是比不上CPU运行的速度的
    • 虽然根本上来说还是我们输入的,但我们不直接给CPU,而是放在一个地方存起来,也就是存储器。
    • 存储器也是机器啊,机器之间交换数据的速度就快多了嘛
    • 说得简单点,存储器就是为了存储处理器所需要的数据的指令的
    • PS:图片要么是我自己画的(Visio很不错)、要么就是我从网上找的(比如一些器件、有水印的图表等等)

    • 一种东西总是可以被分类的嘛

    • 也称内存。CPU所需要的指令数据都是直接来自内存的。计算机内所有活动的程序都是在内存中。
    • 广义上一般说,只要是可以直接与CPU进行数据交换的存储器,都可以称之为内存。
      • 所以就有这样的说法:内存分为ROM和RAM,即只读的部分和读写的部分。ROM部分存放一些固有的程序,如开机程序(BIOS芯片)等,通过这些让计算机先运行起来。
        • OS程序是放在外存中的,由BIOS引导来读取外存的OS到内存中来运行。即便是裸机(空硬盘)也是有BIOS的,这个时候就通过BIOS引导到U盘、光盘等外存来加载里面的程序,可以是操作系统(如PE)也可以直接是操作系统的安装程序,进一步给电脑安装上OS。
      • 关于计算机的启动,有篇很有名的博客,估计大部分人也都看过:
    • 狭义上来讲,内存指的就是RAM,也就是活动程序的所在地。作用是存放CPU的运算数据和要运行的程序,是CPU所能直接寻址访问的空间。
      • 对于32位CPU来说,最大的访问空间是2^32bit换算下来就4GB,也就是说内存空间最大为4GB,即使换个8GB的内存条,但CPU也只能访问到4GB的空间。有点类似IPv4的不够用的情况。64位机倒不必担心这个问题,就好像IPv6。
    • 也称外存,其数据需要先复制到主存中,才能被CPU使用。
    • 我们所用的操作系统、各种软件如office、游戏等等,都需要先从外存复制到内存中,才能运行。
    • 而我们在word里输入的文字等等,都是先存在内存里。内存是需要持续供电的,外存如硬盘则是利用磁性来长时间保存。word只有保存的时候,才会把内存的数据写入到磁盘中。

    • 也就是最常见的存储器都是按地址来访问的。地址可以理解为一个个存储单元的编号,按存储单元的顺序,从1到n编号(编址)。我要访问哪个存储单元,给我编号(地址)就行。
    • 也叫相联存储器。既然这样也就没有地址的概念,所以存储数据的时候不需要选择某个存储单元,而只是简单追加。但这就需要每条数据的长度相等。
    • 访问的时候,给出一个相联关键字,用来和每条数据中的相应的部分数据来比较,如果相等则输出这条数据的其余的部分。
    • 但因为每次访问都要和所有的数据进行一次比较,所以其访问的速度随着容量增大而急剧下降。不过在容量比较小的时候则具备很好的性能。
    • 一般应用在CPU内部,如页式虚存所使用的TLB块表用来快速的确定页框号,Cache所使用的地址映像表来确实访问的主存地址下的内容是否被缓存。


    • 这么说来存储器不就很简单吗~添加一个存储部件用来与CPU交互不就可以了
    • 不过现实往往不是那么简单。人们通常希望存储能容量大、速度快、价格低,集各种优点于一身,然而这些却通常自相矛盾
      • 容量越大,地址越长,通常会速度慢
      • 不过虽然价格会更高,但平均每位的价格反而随容量增加而降低
      • 所以我们只需要解决容量大与速度快的相容性就好了
    • 所以才有了层次结构的存储系统

    • 层次结构的基础就是局部性原理,有这个原理的支撑,层次结构的存储系统才能实现既容量大又速度快的
    • 这个原理其实是个统计原理,不过其也是依赖于程序本身的特点:无论是取指令还是存取数据,处理器在一段连续的时间内访问的存储单元趋向于聚集在一个相对较小的连续的存储单元区域内
      • 时间局部性:即CPU将要访问的数据就是刚刚访问的数据。比如程序中的一个循环,往往会对某个变量在短期内使用很多次。
      • 空间局部性:即CPU将要访问的数据就在刚刚访问的数据的旁边。比如程序本身就是指令的连续序列,那么一条条指令就在空间上是连续的,同时也是按顺序来运行的。只有跳转等才会使得连续运行的指令在物理存储上是不连续的。
    • 简单的理解一下,就是说,CPU运行一个程序,这个程序占用一定的内存空间区域,其所涉及的指令、数据也就被限制在了这个范围之内,而不是随机的分布在内存的整个空间。

    • 访问M1的次数为R1,访问M2的次数为R2
    • 由于访问局部性原理所以 H 通常会比较大
    • 如果M1访问不命中,则直接访问M2
    • 如果M1访问不命中,则先由M2传入M1,再访问M1
    • 可见由于比较大的 H 所以 Tc 会更接近 Tc1 ,也就是访问速度快
    • 进一步分析存储系统的层次结构
    • 我们总希望E可以越接近1越好,这也就意味着Tc和Tc1十分接近
    • 相同的E值下,P越大,即两级存储的速度差别越大,H就必须越大。而H的提高是很困难的,所以就要求相邻两级的存储器的速度差别不能过大,否则整个存储系统的效率就不会很高。

    • 根据存储的信息是否可读/写,进一步分为

    随机访问半导体存储器RAM

    • 根据存储原理的不同,又分为SRAM(静态)和DRAM(动态)
    • 详细的结构分析需要有一定的数字电路基础,,,,这一切对于我来说实在是太沉重了,,,所以我也只能稍微讲讲就好

    • 最小的单位为存储基元,只能存储一位的数据,即一个0或者一个1
    • 若干个存储基元组成一个存储单元,使一个存储单元可以存放一个信息字,而对存储器的访问也是以存储单元为单位,即一次必须也只能对一个存储单元进行读写操作
      • 所以有种存储技术——不如称为存储原则或存储方式——叫对齐,即保证一个数据(比如一个整数)是位于一个存储单元内,这样就可以在一次访存中进行读写,如果其被分为两部分存在两个存储单元,则需要两次访存。至于一个存储单元有没有那么大(int有32位),这就又牵扯到主存的扩展,即多个小芯片来联合成一个大芯片。主存那部分会讲。
    • 扩展之后主存的一个存储单元的位数又称为存储字长,即一次访存的位数。存储字长是针对存储器而言。
      • 机器字长:通常情况下与存储字长相等,但概念不一样。机器字长是运算器进行一次整数运算的位数。
      • 指令字长:是程序一条指令的长度,一般设计为与存储字长相等,为的是在一次访存就可以获取一条指令。
        • 不过这并不是必须的,只是这样可以提高速度,这里是指令集设计所需要考虑的部分,像变长指令通常会让短指令都小等于存储字长,而对于过长的指令超过存储字长也不是不能运行
        • 一条指令一般为整字节的长度,为的是处理方便,也一定程度上防止了其跨存储单元存储(即对齐)。
    • 若干个存储单元排列成存储单元阵列,在加上读写控制电路、地址译码电路和控制电路,就构成了一个存储芯片



    • 原理是根据每个存储基元中有无晶体管来表示“0/1”
    • 可靠性高、位密度高、访问周期短,但是成本高,且不可更改
    • PROM的内容不是在生产的时候写入,而是后期通过某种方式来写入
      • 熔丝烧断型:每个存储基元中有熔丝,通过选择性的熔断某些熔丝来进行编程
      • PN结击穿型:基元中连接有PN结,选择性的击穿某些PN结来使其导通
    • 如浮栅雪崩注入型MOS管,出厂是不带电荷,不导通,表示1;加高电压击穿其中的PN结,导通,电荷积累在浮栅上,表示0,且由于二氧化硅的存在电荷不易消。
    • 在紫外线灯的照射下,浮栅上的电荷将全部释放,恢复到全1的状态,就可以重新进行编程
    • 这个就是不需要外部设备来擦除而是直接用电
    • 但每个存储单元用了两个NMOS关
    • 擦除:擦除电压Vpp,统一置1
    • 编程:编程电压Vpp,由1变为0
    • 读取:工作电压Vcc,输出数据
    • 存储基元采用一个CMOS管,密度高、速度快,且不易失
    • 但是1:其擦除不像EEPROM可以在字节水平上,而是整块擦除
    • 但是2:有效编程次数有限
    • 但是3:擦除和编程所需要的时间较长

    • 系统程序等无需且不能改动的数据由ROM存放

    • 一个存储芯片来搞定4GB的主存?你想多了吧
    • 单片存储芯片的容量和字长(存储单元的长度)一般不能直接满足实际需求,所以往往需要将若干个存储芯片连接在一起

    • 当处理器数据线数大于存储芯片的数据线数,就要进行位扩展,然后一一相连
    • 当处理器地址线数大于存储芯片的地址线数,就要进行字扩展。此时处理器的部分地址线(如地位)可以直接与存储芯片相连,而其余地址线(如高位)则需要连接到片选译码器来决定选中哪一个存储芯片。
    • G1为高电位、G2A和G2B为低电位,表示译码器有效
    • ABC为三位输入,高电位有效
    • Y0~Y7为输出,低电位有效,且有且仅有其中一个输出

    • 毕竟处理器还是太快了点

    • 如双口RAM,具有两套独立的读/写控制逻辑,分别有自己的地址总线、数据总线和控制总线,可以独立的对任何地址单元的数据进行读写操作
    • 当访存地址相同时,需片内仲裁逻辑来决定顺序
    • 单体多字存储器:根据程序访问的局部性,读取相邻的存储信息
      • 多个存储模块公用一套地址逻辑,典型如公用一个MAR,这样一访存地址可以取出从多个存储模块的相同地址单元中取出多个字
    • 多体并行存储器:N个存储模块,各自独立的地址逻辑,只要连续访问的存储单元不在同一模块中,就可以相互错开1/N个周期来轮流的占用地址总线、数据总线和控制总线
      • 也称“模N交叉存储器”
    • CPU地址总线宽度要大于单个存储体,多出的部分当作体选信号,即选择哪一个存储体来访问
    • 低位作为体号,会使地址上连续的指令、数据分散在不同的存储模块中,根据局部性原理,减少了访问冲突,提高了并行性。但可靠性差
    • 高位作为体号,可靠性高,但相对来说冲突就没有那么低
    • 整个空间分为M部,每部N体。
    • 高Log2M位为“部号”,低Log2N位为体号
    • 对于N体并行存储器,不要跨行存储
      • 规定存储地址为数据长度的整数倍
    • 由于读取是基于存储单元的,,,,,,似乎也不可能跨存储单元除非因为太长….

    • 其实缓存的思想被应用在很多地方

    1、地址映像:主存的数据如何存放到Cache中
    2、地址变换:对于更长的主存地址如何转换到Cache地址
    3、替换算法:一旦要写入Cache中的数据块按照地址映像规则发现没有空间存放了,应该如何选择数据写回主存来让出空间
    4、写入策略:对于CPU要向主存写入的数据,如何和Cache相统一


    • 工作原理自然是局部性原理啦
    • 主存与Cache之间的数据交换是基于数据块
      • 主存普遍为模M交叉访问存储器,即在访问一个存储单元的同时,可以读取出包括它在内的M个存储单元的数据,这些数据就被作为一个数据块装入Cache。由于局部性原理,它们很可能很快就被用到。
    • Cache与主存的结构可以分为
    • 在Cache中存放一个数据块的区域称为
    • 对于Cache的访问分为槽号槽内地址
      • 槽号:选择一个存放数据的槽(数据块)
      • 槽内地址:选择具体槽内的哪个数据
    • 经过地址变换之后,如果Cache中存在则直接访问Cache,否则直接访问主存
    • 直接访问主存后会把这次的数据块写入Cache中,Cache已满则根据替换算法选择替换的数据块
    • 经过地址变换之后,如果命中则直接访问
    • 否则等待一个主存周期等主存把包含待访问数据的整个数据块写入Cache后再访问Cache

    • 确定主存的一个数据块要放在Cache的哪个槽内
    • 均由硬件实现,速度快且不需要编程人员考虑(即对程序员透明)
    • 借助“地址映像表”来实现
      • 记录每一个Cache槽号与主存数据块之间的对应关系
      • 一般采用相联存储器实现


    • 最近最少用算法,LRU
    • 被访问的时候置为最大值
    • 其他槽被方位的时候减1,为0的话则不变
    • 替换是选择所有计数最小的其中一个替换
    • 最不常使用算法,LFU
      • 选择过去一个时间段内访问次数最少的数据块

    • 关键是保持Cache和主存中内容一致

      • 写命中时,同时写Cache和主存
      • 按写分配:写入主存并把相应数据块调入Cache
      • 不按写分配:只写入主存
    • 写命中时,只写Cache;当被写的块要被替换的时候,才将这个修改的值写回主存
    • 按写分配:把被写的数据所在的数据块调入Cache,并对Cache进行写入(等到被替换就自然写回主存)
    • 在多处理器系统下,要保持多个处理器其自己的Cache和共享数据的一致性就麻烦许多
      • 目录协议:保存共享数据块的状态和相关信息
      • 监听协议:每个Cache除了保存数据备份外,也保存每个块的共享状态。Cache控制器通过监听总线来判断自己的Cache内是否有总线上请求的数据块

    • 强制性失效:首次访问某块,其不在Cache中
    • 容量失效:全相联,某块被替换后,又被访问的失效
    • 冲突失效:组相联或直接相联,某块被替换(即便有空槽)后又被访问
    • 块大小取决于下级存储器的延迟和带宽
    • 高延迟高带宽,可采用大Cache块,因为只需要增加一点点失效开支,就可以缓存许多数据
    • 低延迟低带宽,则采用小Cache块
    • 但同时也会增加相联比较的时间
    • 在Cache和主存之间增加一个小的全相联的Cache
    • 其中存放被替换出来的块
    • 由Cache之外的硬件完成,在CPU提出访问请求之前将数据和指令缓存到Cache中
    • 数组合并:独立数组合并为复合数组,使一个Cache块包含更多的数据
    • 内外循环交换:修改循环顺序,提高局部性
    • 循环融合:多次循环合并到一起,使Cache的数据在替换之前就可以被访问
    • 分块:大矩阵分为子矩阵,提高局部性
    • 写缓冲:写穿和写回中,都需要把Cache块写回主存,则先写入一个写缓冲器;当写缓冲器写回主存时,CPU可以干其他的事
    • 写合并:检查写缓冲器中现有的数据是否和将要写的数据是相同地址,如果是则合并
    • 读失效优先:写缓冲可能包含最新的值,则需要在读失效的时候检查写缓冲器中是否有匹配的数据
    • 请求字处理:Cache的一个块往往只有一个字是CPU所需要的,所以可以提前把该字发给CPU,而不必等待整个数据块写入Cache中
    • 非阻塞Cache:允许在Cache失效时继续服务其他访问
    • 减少Cache命中时间
      • 容量小,结构简单的Cache
      • 虚拟Cache:对于采用虚存的计算机,其访存地址为虚地址,需先转换为实地址,在进行地址变换;虚Cache可直接使用虚地址进行地址转换
        • 不同进程可能使用相同虚地址访问不同实地址,所以需要进程标识辅助
    • 路预测:由一些预测位,保存下一次访问Cache的这个组时所命中的Cache块。
    • Trace Cache:在Cache中缓存的不是主存中的静态指令序列,而是处理器执行的动态指令序列

    • 到突破思维的段式存储管理:一个程序完全没必要再内存中连续存放
    • 到页式存储管理:进一步的分散存放
    • 再到进一步突破思维的虚拟存储器:一个程序完全没必要全部存放在内存中

    我要回帖

    更多关于 计算机记忆功能怎么用 的文章

     

    随机推荐