《计算机科学概论(第12版)》—第1章1.2节主存储器

1.2 主存储器
为了存储数据,计算机包含大量的电路(如触发器),每一个电路能够存储一个位。这种位存储器被称为计算机的主存储器(main memory)。

1.2.1 存储器结构
计算机的主存储器是由称为存储单元(cell)的可管理单位组成的,一个典型存储单元的容量是8位。因为一个8位的串称为一个字节(byte),所以一个典型存储单元的容量是一个字节。像微波炉这样的家用电器中嵌入的小型计算机的主存储器,可能仅仅包含几百个存储单元,但是大型计算机的主存储器可能有几十亿个存储单元。

虽然计算机中没有左或右的概念,但是我们通常假设存储单元的位是排成一行的。该行的左端称为高位端(high-order end),右端称为低位端(low-order end)。高位端的最左一位称作高位或最高有效位(most significant bit)。取这个名称是因为,如果把存储单元里的内容解释为数值,那么这一位就是该数的最高有效数字。类似地,低位端的最右一位称为低位或最低有效位(least significant bit)。于是,我们可以如图1-7所示的那样描述字节型存储单元的内容。

为了区分计算机主存储器中的各存储单元,每一个存储单元都被赋予了一个唯一的“名字”,称为地址(address)。这类似于通过地址找到城市里的一座座房屋。不过,存储单元中的地址都是用数字表示的。更精确地说,我们把所有的存储单元都看作是排成一行的,并按照这个顺序从0开始编号。这样的编址系统不仅为我们提供了唯一标识每个存储单元的方法,而且也给存储单元赋予了顺序的概念(见图1-8),这样就有了诸如“下一个单元”“前一个单元”的说法。

将主存储器中的存储单元和每个存储单元中的位都进行排序,会产生一个重要的结果:计算机主存储器的所有二进制位会实际排成一长行。这个长行上的片段可以存储的位模式因此比单个存储单元要长。特别是,我们只需要两个连续的存储单元就可以存储16位的串。
为了做成一台计算机的主存储器,实际存放二进制位的电路还组合了其他的电路,这个电路使得其他电路可以在存储单元中存入和取出数据。以这种方式,其他电路可以通过电信号请求从存储器中得到指定地址的内容(称为读操作),或者通过请求把某个位模式存放到指定地址的存储单元里(称为写操作)。

因为计算机的主存储器是由独立的、可编址的存储单元组成的,所以可以根据需要独立访问这些存储单元。为了反映用任何顺序访问存储单元的能力,计算机的主存储器常被称为随机存取存储器(random access memory,RAM)。主存储器的这种随机存取特性,与1.3节中将要讨论的海量存储系统,形成了鲜明的对比,在海量存储系统中,长位串被当作合并块来操控。

尽管我们介绍说,触发器是存储二进制位的一种方法,但是在现代的大多数计算机中,RAM都是用其他类似的更复杂的技术制造的,这些技术可以让RAM高度小型化、响应时间更短。其中许多技术将位存储为可快速消散的电荷。因此,这些设备需要附加电路(称为刷新电路),在1秒内反复补充电荷很多次。因为它的这种不稳定性,通过这种技术构造的计算机存储器常被称为动态存储器(dynamic memory),于是就产生了术语DRAM(读作“DEE-ram”),用来表示动态RAM(dynamic RAM)。有时动态存储器会用术语SDRAM(读作“ES-DEE-ram”)来表示同步DRAM(synchronous DRAM),采用这种附加技术可以缩短从存储单元取出信息所需要的时间。

1.2.2 存储器容量的度量
在第2章我们会学到,如果主存储器中存储单元的总数是2的幂,那么主存储器设计起来会很方便。因此,早期计算机存储器的大小通常以1024(即210)个存储单元为单位来度量。因为1024接近于数值1000,所以计算机行业的许多人采用前缀千(kilo)来表示这个单位。也就是说,术语千字节(kilobyte,符号表示为KB)被用于表示1024字节。因此,带有4096个存储单元的机器会被说成是有一个4KB的存储器(4096=4×1024)。随着存储器容量的增大,这个术语逐渐扩大到了兆字节(megabyte,符号表示为MB)、吉字节(gigabyte,符号表示为GB)和太字节(terabyte,符号表示为TB)。遗憾的是,这种前缀千(kilo-)、兆(mega-)等的用法属于术语的误用,因为这些前缀已经是其他领域用于指称1000的幂。例如,在度量距离时,千米(kilometer)指的是1000米,在度量无线电频率时,兆赫(megahertz)指的是1 000 000赫兹。在20世纪90年代后期,国际标准组织为2的幂制定了专门的术语:千位字节(kibi-byte)、兆位字节(mebi-byte)、吉位字节(gibi-byte)和太位字节(tebi-byte),用来表示1024的幂,而不是1000的幂。然而,尽管这种区别在世界上许多地方的当地法律里都有规定,但一直以来,普通大众和许多计算机科学家都不愿意放弃这个已经比较熟悉但会引起歧义的“兆字节”(megabyte)。因此,提醒大家:一般说来,千、兆等术语在涉及计算机度量时表示2的幂,但在其他环境中表示1000的幂。

问题与练习

1.如果地址为5的存储单元存有值8,那么“将值5写入6号存储单元”和“将5号存储单元的内容移到6号存储单元”之间有什么差别?

2.假定你想交换存储在2号和3号存储单元中的值。那么下面的步骤错在哪里?

  步骤1:把2号存储单元中的内容移到3号存储单元。

  步骤2:把3号存储单元中的内容移到2号存储单元。

请设计能够正确交换这两个存储单元内容的步骤。如有必要,可以使用额外的存储单元。

3.一台带有4 KB存储器的计算机,其存储器里有多少个二进制位?

时间: 2024-10-27 21:01:38

《计算机科学概论(第12版)》—第1章1.2节主存储器的相关文章

《计算机科学概论(第12版)》—第0章0.1节算法的作用

绪0论 绪论 计算机科学概论(第12版) 在开篇的这一章,我们探讨计算机科学所涉及的领域,介绍其历史背景,然后为我们的深入学习奠定基础. 本章内容 0.1 算法的作用 0.2 计算机器的由来 0.3 学习大纲 0.4 计算机科学的首要主题 计算机科学这门学科,是要为计算机设计.计算机程序设计.信息处理.问题的算法解决方案和算法过程本身等主题建立科学的基础.计算机科学既是当今计算机应用的支柱,又是今后计算基础设施的基础. 本书将详细介绍计算机科学,探索广阔的主题,包括构成大学计算机科学课程的大部分

《计算机科学概论(第12版)》目录—导读

版权 计算机科学概论(第12版) • 著 [美] J. Glenn Brookshear Dennis Brylow 译 刘 艺 吴 英 毛倩倩 责任编辑 杨海玲 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 内容提要 计算机科学概论(第12版) 本书是计算机科学概论课程的经典

《Ruby程序员修炼之道》(第2版)—第1章1.1节进入Ruby的世界

第1章 进入Ruby的世界 Ruby程序员修炼之道(第2版) 本章主要内容 Ruby语法的生存工具箱① Ruby基础编程指引:程序编写.保存.运行和错误检查 Ruby安装指南 Ruby的扩展机制 Ruby中易用的命令行工具,包括交互式Ruby解释器(irb) 本书的内容是Ruby基础,而本章是基础中的基石.本章的目标是让读者在开始学习Ruby之前掌握足够的知识和技巧. 接下来读者将看到Ruby的基本语法和技术,以及Ruby的运行机制:如何写一个程序,怎样使用Ruby运行程序,以及如何把一个程序分

《电路分析导论(原书第12版)》一导读

前 言 本书第1版于40年前出版,至今已翻译成6种语言,发行超过了100万册.所以,我很高兴为该教材的第12版再写前言,并首先对本教材出版过程的所有参与者,以及那些认为本教材满足了学科需求的全体使用者致以诚挚的谢意.新版内容的变化 ●像以前版本的做法一样,这一版也增加了一些新内容,以确保教材始终带有新鲜气息.然而,这一版的新内容非常特殊,它涉及了刚刚问世的第4种电学元件,称为忆阻器(memristor),它是由惠普公司发明的,英文版的封面设计用的就是这种电学元件.关于忆阻器,人们采用不同的方法进

《C++ 黑客编程揭秘与防范(第2版)》—第6章6.8节KeyMake工具的使用

6.8 KeyMake工具的使用C++ 黑客编程揭秘与防范(第2版)本章介绍了PE结构和调试原理,此外还介绍了文件补丁和内存补丁方面的知识.在此顺便介绍一款制作注册机的工具--KeyMake(<黑客帝国>第二部中的"关键人物"就是KeyMake,用来配钥匙的那个老头).KeyMake的界面如图6-77所示. KeyMake的功能非常多,这里主要介绍"其他"菜单下的功能,如图6-78所示. KeyMake菜单有3个主要功能,分别是"内存注册机&q

发布火狐3.6.13版,修复了3.6.12版存在的13个安全漏洞

国外媒体报道,火狐(Firefox)浏览器开发商Mozilla基金会今天表示,已发布火狐3.6.13版,该升级版修复了3.6.12版存在的13个安全漏洞,其中11个危害级别为"危急"(critical),1个为"高级" (high),另1个为"中等"(moderate). Mozilla称,利用这11个危急漏洞,网络犯罪者可向用户发起远程攻击,进而在用户机器中安装恶意软件.在此次修复的13个安全漏洞中,其中一个Mozilla以为在今年3月已经修复

《C++ 黑客编程揭秘与防范(第2版)》—第6章6.9节 总结

6.9 总结C++ 黑客编程揭秘与防范(第2版)本章介绍了PE结构的基础部分.OD的使用及调试API函数等.相信读者对PE结构解析.OD调试工具使用及调试原理有了一定的了解.本章还介绍了一些基础的也是非常必要的加解密知识.读者在以后学习更多相关知识后会发现,这些基础知识对学习加解密知识是非常重要的. 本章最后的部分介绍了KeyMake工具的使用.通过KeyMake的具体实例,读者可以深刻领会本章前面所学知识的精要之处.KeyMake工具十分强大,如果在接触前面的知识前直接接触KeyMake工具,

《Google软件测试之道》—第2章2.2节测试认证

本节书摘来自异步社区<Google软件测试之道>一书中的第2章2.2节测试认证,作者[美]James Whittaker , Jason Arbon , Jeff Carollo,更多章节 2.2 测试认证 Patrick Copeland在本书的序中强调了让开发人员参与测试的难度.招聘到技术能力强的测试人员只是刚刚开始的第一步,我们依然需要开发人员参与进来一起做测试.其中我们使用的一个 关键方法就是被称为"测试认证"(译注:Test Certified)的计划.现在回过头

《Android应用开发入门经典(第3版)》——第1.6节小结

1.6 小结 Android应用开发入门经典(第3版) 本章的目标是开始进行Android开发.第一步是下载和安装Android开发环境.读者使用这个环境生成了一个简单的应用程序并对其进行了修改,通过这一过程学习到了如何以可视化的方式来为Android应用创建用户界面并了解到用户界面本质上是一个XML文件.此外,还向该应用添加了一个简单的动作,这是通过为一个按钮创建一个onClickListener()方法来实现的.