计算机的基本组成

计算机的发展历史

严格来讲计算机从诞生到现在经历了很多阶段,已经发展成为一种自动地、高速地、精确地进行信息处理的电子设备,也是20世纪的重大发明之一。

计算机的发展包括了硬件和软件的发展,硬件的发展为计算机提供了更快的处理速度,而软件的发展为用户提供了更好的体验。两者相辅相成,密不可分。

  • 第一阶段: 60年代中期以前,是计算机系统发展的早期时代。在这个时期通用硬件已经相当普遍,软件却是为每个具体应用而专门编写的,大多数人认为软件开发是无需预先计划的事情。这时的软件实际上就是规模较小的程序,程序的编写者和使用者往往是同一个(或同一组)人;
  • 第二阶段:从60年代中期到70年代中期,是计算机系统发展的第二代。在这10年中计算机技术有了很大进步。多道程序、多用户系统引入了人机交互的新概念,开创了计算机应用的新境界,使硬件和软件的配合上了一个新的层次;
  • 第三阶段:计算机系统发展的第三代从20世纪70年代中期开始,并且跨越了整整10年。在这10年中计算机技术又有了很大进步。分布式系统极大地增加亍计算机系统的复杂性,局域网、广域网、宽带数字通信以及对“即时”数据访问需求的增加,都对软件开发者提出了更高的要求;
  • 第四阶段:在计算机系统发展的第四代已经不再看重单台计算机和程序,人们感受到的是硬件和软件的综合效果。由复杂操作系统控制的强大的桌面机及局域网和广域网,与先进的应用软件相配合,已经成为当前的主流。计算机体系结构已迅速地从集中的主机环境转变成分布的客户机/服务器。

冯·诺依曼计算机模型

虽然计算机的发展迅速,但整体设计上还是符合冯·诺依曼的组织结构,那么什么是冯·诺依曼计算机模型。

根据冯·诺依曼体系结构构成的计算机,必须具有如下功能,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作,然后再按地址把结果送到内存中去。接下来再取出第二条指令,在控制器的指挥下完成规定操作。我们来一张图更直观的解释:

从图中可以看出冯·诺依曼体系结构计算机由五大部分组成:

  1. 控制器:

是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址、协调计算机各部分工作及内存与外设的访问等。

  1. 运算器:

运算器是计算机中对信息进行加工、运算的部件,它的速度决定了计算机的运算速度。运算器的功能是对二进制编码进行算术运算(加、减、乘、除)和逻辑运算(与、或、非、比较、移位)。通常情况下是把运算器和控制器合在一起,做在一块半导体集成电路中,称为中央处理器,简称CPU。

  1. 存储器:

其功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

  1. 输入设备:

输入设备和输出设备统称为外部设备,简称外设。输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标、触摸屏等。

  1. 输出设备:

输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端LCD、音响等。

哈佛计算机模型

哈佛结构就是将程序的逻辑代码和变量分开存放的一种结构,而他们存放的位置可以是形同的也可以是不同的,总是只要是分成两个部分单独访问的结构都可以叫哈佛结构。(例如:51的程序的逻辑代码段放在ROM中,而变量部分则放在ROM中;而ARM的逻辑代码和变量都是存放在RAM(内存)中的,但是,它在内存中划分了两部分的空间,其中一部分放逻辑代码,另一部分方变量。之间不会相互干扰)哈佛结构的优点就是逻辑代码和变量单独存放,使之不会相互干扰,进而当程序出BUG的时候,最多只会修改变量的值,而不会修改程序的执行顺序(逻辑关系)。因此,这种结构大量应用在嵌入式编程当中。

计算机系统的构成

计算机是一个系统的集合,由硬件和软件两部分构成,只有硬件的计算机只能算裸机,硬件是筋骨,软件是灵魂。计算机的构成可以概括如下:

硬件包括CPU,存储器,各种外设等,我们先来解释下CPU是什么?

CPU是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。主要包括运算器和高速缓冲存储器及实现它们之间联系的数据、控制及状态的总线。它与内部存储器和输入/输出设备合称为电子计算机三大核心部件。

软件包括系统软件和应用软件,系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统,即操作系统,比如 Linux, Android 等。

应用软件是和系统软件相对应的,一般指用于实现某种用途或特定行业需求的软件,也就是我们常说的APP。

原文发布于微信公众号 - 人人都是极客(rrgeek)

原文发表时间:2018-09-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

单片机距离智能机器人有多远?

提到单片机很多人都很觉得不陌生,大街小巷上面电子产品都用到。近几年随着嵌入式的发展,智能机器人是未来一个大方口,其实智能机器人也是嵌入式的一种,里面融入了生物科...

3645
来自专栏java一日一条

源代码的寿命

看看你现在日常工作中的代码。已经运行了多久了?代码有多老了?有六个月?一年?可能都有五年这么久了吧?十年?二十年呢?!这样的代码有多老了?不到10%?还是一半?...

1101
来自专栏GopherCoder

『No16: 如何快速熟悉一个项目』

之所以讲这个话题,主要是最近新入职,因为是创业公司,不像大公司里的节奏,给你时间学习,创业公司需要你快速的融入环境,快速的熟悉业务代码,快速的实现需求。坦率的讲...

971
来自专栏IT大咖说

如何玩转Android物联网开发,这些必须知道

内容来源:2018 年 6 月 28 日,中移物联网 Android开发高级工程师程磊在“droidcon上海2018安卓技术大会”进行《当安卓遇到物联网》演讲...

2K2
来自专栏CSDN技术头条

仅用8个虚拟机,PayPal是如何扩展至日处理数十亿事务的

仅在8台虚拟机上,就实现了原本需要100台虚拟机才能实现的工作。甚至当CPU占用高达90%时仍能快速响应,这种Paypal前所未见的事务处理密度,却仅需之前十分...

2436
来自专栏阮一峰的网络日志

Android,开源还是封闭?

满大街都在谈论Android。 它是当红炸子鸡。许多人觉得,iPhone将受到它的强力挑战。 ? 我也曾经对它充满了期待,但是后来的事态发展,令我改变了看法。前...

3577
来自专栏云计算D1net

你为什么需要在云端构建Linux服务器?

云端Linux服务器比以往来得成本更低、性能更好。 要是你之前还没有启动过云端Linux服务器,眼下也许正是大好时机。原因何在因为你在短短几分钟内就能安装好一台...

6017
来自专栏华章科技

如何入门 Python 爬虫?

之前转载过两篇关于“爬虫”的文章,小编在后台收到不少相关的留言,希望能够继续深入,所以有了下面这篇文章。

1312
来自专栏福利活动清单

腾讯云学生优惠

腾讯云学生优惠相对于阿里云的槽点在于价格贵了6元一年,而且只能学生认证才能够购买。但是!但是腾讯云学生机可以选择搭配学生优惠的云数据库体验套餐,最低3元一月,还...

19.8K14
来自专栏java达人

软件开发接力赛的最后一棒:上线发布

新产品新功能开发、测试完成后,就需要上线发布,可能中间还有个预发的过程,但一般的小团队没有精力也没有能力去维护这么多的环境。上线之后,绝非万事大吉,你将面临一大...

1798

扫码关注云+社区

领取腾讯云代金券