《计算机组成原理》----1.7 现代计算-阿里云开发者社区

开发者社区> 华章出版社> 正文

《计算机组成原理》----1.7 现代计算

简介: 计算机系统体系结构是一个不断发展的领域,但它各个方面的发展是不均衡的。例如,在《计算机存储与外设》第3章介绍磁盘时我们将看到,尽管这些年来磁盘容量得到了巨大的增长,但磁盘速度或磁盘访问时间却几乎维持不变。

本节书摘来自华章出版社《计算机组成原理》一书中的第1章,第1.7节, 作 者 Computer Organization and Architecture: Themes and Variations[英]艾伦·克莱门茨(Alan Clements) 著,沈 立 王苏峰 肖晓强 译, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.7 现代计算

计算机系统体系结构是一个不断发展的领域,但它各个方面的发展是不均衡的。例如,在《计算机存储与外设》第3章介绍磁盘时我们将看到,尽管这些年来磁盘容量得到了巨大的增长,但磁盘速度或磁盘访问时间却几乎维持不变。不过一种叫作固态盘的新技术改变了这种局面,磁盘速度也开始提高。因此,我们将更加关注计算机系统的某些方面而不是全部。

性能和能耗是今天人们尤其感兴趣的两个方面。几十年前计算机的设计目标就是获得计算能力——在微处理器发展的早期,有计算能力总比什么都没有要好。今天,微处理器已经非常成熟,而且需要比以往更高的性能,因为它所承担的任务越来越有挑战性,比如高分辨率和高性能游戏等应用领域。因此本书将重点关注性能,比如怎样测量性能以及怎样创造性能。

我们还生活在一个普适计算的世界中。计算机无处不在——它在超级计算实验室、大学、工厂、家庭办公室、几乎所有的家用电器、电视和显示系统、音乐和娱乐系统,以及手机里。这种普适计算会带来两个需求。第一个是可连接性。如果要在一些设备之间共享数据,那么必须能够将它们连在一起。例如,人们经常通过无线网络将数码相机、MP3播放器、个人电脑和电视机连接起来。普适计算带来的另一个需求是由为MP3播放器那样的微小设备供电(即能源)所引起的。人们希望能将它们装在口袋里,用它们看视频,还希望它们用一小块电池就能续航8小时。有时人们对计算机发展的期望远远超过计算机性能的提升。减少能耗的需求使设计者不得不寻找解决能效更高的计算问题解决方法。读者在最后一章将会看到,能耗的制约是如何导致拥有多个片上处理器的微处理器(称作多核处理器)的出现和发展的。

最后,计算机系统体系结构研究与发展目前所关注的一些焦点问题也是由计算能力飞速增长所引发的一些制约而引起的。在存储墙一词中我们已经使用了墙这个术语,它表示处理器的速度增长远远快于存储器,这使得处理器不得不停下来等待存储器取出数据。本书中有好几处会将如何处理存储墙所带来的问题作为主要议题。另外一堵墙则是由功耗约束引起的(无法冷却现代芯片)。

本章小结

本书着重关注计算机系统体系结构,即一个完整计算机系统从中央处理单元到磁盘和外设的全部内部操作。

为了更好地理解计算时发生了什么,必须弄清楚计算机体系结构与计算机组成之间的区别。计算机体系结构关注汇编语言程序员层次的计算机操作,并提供了一个理想的、抽象的计算机视图。计算机组成则关注如何用真正的门和电路实现体系结构。尽管原则上体系结构与组成无关,它们却的确是相互影响的。

本章介绍了存储程序计算机,并描述了它是如何从存储器中读出指令,一条一条地执行这些指令,并处理与指令存放在同一存储器中的数据的。本章解决了一个简单的问题,并说明计算机仅需要一个类型相对较少的操作集合。
存储程序计算机是一个小而简单的设备。它从存储设备中读出1/0二进制串,并执行这些1和0所定义的操作。计算机所完成的操作一般包括一个动作(如加或减)以及参加计算的数据的地址或位置。读者还看到了计算机必须包括某些提供条件操作的机制,这是一种使用数据操作结果决定接下来应该执行两个动作序列中哪一个的手段。

本章还包括一段简单的计算机发展历史。人们从来没有发明过现在被称为计算机的设备。计算机来自一系列发展,每次新的发展都采用过去提出的思想,并采用更加现代的技术加以实现。20世纪40年代的早期计算机并不符合现在的标准,因为它们不能运行不同的程序,或注定只能一遍遍地完成同样的操作序列(即它们没有提供必要的条件操作以允许程序响应输入)。

到1950年,计算机与今天的计算机已经非常相似了——至少在原理上。所变化的仅仅是计算机在技术、内部组成和外设上的发展方式。

习题

1.1

  1. 专用计算机与通用计算机有什么区别?
  2. 飞机的自动驾驶仪是专用计算机还是通用计算机的实例?

1.2 为什么我们说计算机内用来表示指令的1/0二进制序列并没有内在意义?这句话隐含的意思是什么?

1.3 为什么计算机的性能非常依赖如半导体、磁、光、化学等一系列技术?

1.4 修改本章所用的算法,使之能够找到最长的非连续字符序列的位置。

1.5 我曾经批评过“查尔斯·巴贝奇是计算机发明者”这一说法。我批评这一说法的理由是巴贝奇设计的计算机完全是机械的(轮子、齿轮和机械联动),而一台真正的计算机应该是电子的。我的批评对吗?

1.6 以下RTL指令序列的结果是什么?描述每一条RTL指令的功能,并说出这个指令序列的作用。注意,[x]表示地址为x的存储单元的内容。

a. [1] ← 1
b. [2] ← 4
c. [3] ← [1] + [2] – 3
d. [4] ← [2]
e. [5] ← [[3]]
f. [6] ← [[2] + 1]

1.7 RTL语言、机器语言、汇编语言、高级语言和伪码的区别是什么?

1.8 什么是存储程序计算机?

1.9 我坚持认为条件操作是计算机之所以为计算机的关键要素。在机器一级,条件操作是通过诸如BEQ XYZ(为0则跳转到指令XYZ)那样的指令实现的,而在高级语言一级,它是通过IF x=y then do THIS else do THAT之类的语句实现的。为什么这种条件操作是计算所必需的?

1.10 单地址、双地址和三地址计算机体系结构各有什么优点?

1.11
a.计算机体系结构与它的组成之间有什么区别?

b.除了计算机外,你能想出还有哪些系统既有体系结构也有组成?

1.12 外体系结构与内体系结构有何区别?

1.13 这些年来,计算机的发展是在计算机体系结构方面更多一些,还是在计算机组成方面更多一些?

1.14 人类的记忆与计算机的存储器之间有何不同?

1.15 什么是冯·诺依曼瓶颈?

1.16 假设Intel没有开发出第一个微处理器,微处理器是否仍然会不可避免地出现?

1.17 尽可能地列举出你能想到的制造计算机的所有使能技术。

1.18 什么是语义鸿沟?它在计算机体系结构中的重要性体现在哪里?要回答这一问题,你需要在Internet上或在图书馆里查阅相关资料。

1.19 假设巴贝奇成功地制造出了一台每秒完成一个操作的通用机械式计算机。你认为这台计算机会对巴贝奇所处的维多利亚时代社会产生怎样的影响(如果的确有影响的话)?

1.20 使用有限差分方法计算172的值。

1.21 扩展下表的有线差分方法,计算113和123的值。


8d991bae5e56bce14e29947a38a2e2e674a348cc

1.22 若你决定试着将计算机变得更加“人性”并引入了“随机元素”。你应该如何去做?

1.23 计算机总是盲目遵循逻辑规则——执行同样的程序总会得到相同的答案。这就是计算机教材上所说的。但这是真的吗?我的计算机在不同的场合就会有不同的行为。为什么你会认为这是有可
能的?

1.24 X的值为7。一些计算机语言(或符号)将X+1解释为8,而另一些则将它解释为Y。为什么?

1.25 进行必要的资料收集,并撰写一篇有关计算机存储系统发展的论文(例如CRT内存,延迟线存储器,铁氧体磁芯存储器,等等)。

1.26 为什么总线对计算机非常重要?

1.27 我们经常会听到一些有关CPU的大小、功耗、速度的进步推动了计算机革命的争论。计算机系统还有哪些方面推动了计算机革命?

1.28 计算机在哪些领域的应用最成功?在哪些领域的应用最不成功或甚至根本没用?

1.29 你认为计算机发展(在计算能力以及它的能力/应用等方面)的瓶颈(限制或障碍)在哪里?

1.30
a.摩尔定律是准则吗?

b.为什么你认为摩尔定律是“存在的”?到底是什么在驱动着摩尔定律或使它成为可能?

1.31 按照现在的标准判断,你认为所有的早期计算机中哪一台计算机才应该被称作“第一台计算机”?

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接