计算机组成原理-2-计算机的发展应用

2. 计算机的发展应用

文章目录

  • 2. 计算机的发展应用
    • 2.1 计算机的发展史
      • 2.1.1 计算机的产生和发展
      • 2.1.2 微型计算机的出现和发展
      • 2.1.3 软件技术的发展和兴起
    • 2.2 计算机的应用和展望

  • 本笔记参考哈工大刘宏伟老师的MOOC《计算机组成原理(上)_哈尔滨工业大学》、《计算机组成原理(下)_哈尔滨工业大学》。
  • 或者是B站《计算机组成原理(哈工大刘宏伟)135讲(全)高清》,大家一起听比较热闹。
  • 中文教材:《计算机组成原理(第二版)-唐朔飞.pdf》、《学习指导与习题解答(第2版)-唐朔飞.pdf》
  • 本篇笔记对应课程第二章(下图加粗)。

2.1 计算机的发展史

  • 第一台电子计算机是什么时候出现的?
  • 第一台电子计算机的基本指标?
  • 出现的驱动力是什么,发展的驱动力是什么?——>需求+技术发展
  • 主要部件的发展情况?
  • 主要部件的发展规律是什么?
  • 主要代表机型?
  • 微型计算机的发展?
  • 软件的发展?

这部分内容不是课程的主要内容,所以本章只是简单讲述,上面给出了本节关心的问题。

2.1.1 计算机的产生和发展

  实际上,当时有非常多计算机同时研制,所以谁是第一台计算机到目前仍然有争议。由于1946年诞生的 ENIAC 对后世计算机产生了非常深远的影响,并从中演化出第一台冯·诺依曼架构的 EDVAC,所以教材中默认 ENIAC 是第一台计算机。下面是ENIAC的基本指标:

  • 十进制运算。
  • 18000多个电子管、1500多个继电器。
  • 功耗150千瓦。
  • 重量30吨。
  • 占地面积1500平方英尺。
  • 运算速度5000次加法/秒。
  • 主要用途:计算弹道表。
  • 编程方式:手动搬动开关、手动插拔电缆,非常繁杂。

可以参考视频:【纪录片】第一台通用电子计算机的诞生-ENIAC的历史

  计算机发展的第一大驱动力就是“需求、需求、还是TM的需求”!比如当时弹道研究实验室每天需要给军方提供6张火力表,但是单个火力表包含几百条弹道、每个弹道又是一组非常复杂的非线性方程,即使200名研究人员加班加点,也需要两个月才能计算完一张火力表,所以才驱动了 ENIAC 的研究。计算机发展的另一大驱动力就是“技术发展”,“电子技术”和“计算机体系结构技术”的发展大大推动了计算机技术的发展。于是,我们便使用硬件技术的发展来衡量计算机发展的迭代次数:

表2-1 硬件技术对计算机更新换代的影响
时间硬件技术运算速度(次/秒)
一代1946-1957电子管40K
二代1958-1964晶体管100K
三代1965-1971中小规模集成电路1M
四代1972-1977大规模集成电路10M
五代1978-现在超大规模集成电路100M

下面总结一下历史上有重大影响的计算机:

  1. ENIAC:1943年研制,1946年投入使用,1955年退役,主要给军方计算弹道表。
  2. EDVAC:1945年提出,1949年交付,1961年退役。由ENIAC的顾问——冯·诺依曼,对ENIAC的架构进行改进而提出,也就是后来的“冯·诺依曼架构”。
  3. EDSAC:1946年研制,1949年投入使用。受EDVAC启发,是世界上第一台实际运行“冯·诺依曼架构”的计算机。
  4. IAS machine:1946年研制,1952年投入使用。采用“冯·诺依曼架构”。
  5. IBM360系列产品:1961年开始研制,1964年成功。IBM公司的里程碑产品,采用“大主机结构”。研制过程中提出“计算机系统结构”的概念,定义了计算机软硬件的交界面,标志着计算机的从低速发展跨入了快速迭代发展的时代。

2.1.2 微型计算机的出现和发展

  通常来说,“微处理器”是指用一片大规模集成电路组成的处理器,该处理器集成了运算器、控制器。“微型计算机”则是指使用微处理器的、使用大规模集成电路的、面向个人用户的、体积小、重量轻、价格低的计算机。显然关键器件就是“微处理器”、“微存储器”。Intel在1971年发布了第一款微处理器——Intel 4004,机器字长只有4位,慢慢发展到现在的64位。1969年则出现世界上第一个大容量SRAM存储器——C1103,存储容量只有256位,到现在的32GB、64GB。下表给出了 Intel 的典型微处理器产品:

参考鲜枣课堂官网:一文看懂内存芯片的发展史。

表2-2 Intel典型微处理器产品
产品编号机器字长发布年份规模
80808位1974年
808616位1979年2.9万个晶体管
8028616位1982年13.4万个晶体管
8038632位1985年27.5万个晶体管
8048632位1989年120.0万个晶体管
Pentium64位(准)1993年310.0万个晶体管
Pentium Pro64位(准)1995年550.0万个晶体管
Pentium II64位(准)1997年750.0万个晶体管
Pentium III64位(准)1999年950.0万个晶体管
Pentium IV64位2000年4200.0万个晶体管

上表引起我们思考,芯片能够集成晶体管的数量是否和时间有一定的关系呢?这就是“摩尔定律”。“摩尔定律”指出,时间坐标和晶体管集成规模具有指数关系,也就是“处理器的性能大约每两年翻一倍,同时价格下降为之前的一半”。

图2-1 摩尔定律示意图
来源:https://en.wikipedia.org/wiki/Moore%27s_law

2.1.3 软件技术的发展和兴起

  计算机能够得到广泛的应用,也离不开软件的发展,也就是编程语言的发展。最底层的编程语言是“机器语言”,但是机器语言面向机器,相同的应用程序很难在不同的机器上运行。在计算机发展早期,几乎是每台新机器都会有新的指令集。汇编语言也面向机器,但是比机器语言更加方便记忆书写。最后在“编译器”的封装下,高级语言面向问题,和底层具体的指令集关系不大,进而使编程效率大大提高。下面是一些常见的高级语言:

  • FORTRAN:科学计算和工程计算
  • PASCAL:结构化程序设计
  • C++:面向对象
  • Java:适应网络环境

  除了编程语言的发展外,系统软件的发展也至关重要。系统软件可以帮助程序员管理软硬件资源,下面给出常见的系统软件:

  • 语言处理程序:汇编程序、编译程序、解释程序…
  • 操作系统:DOS、UNIX、Windows、Linux…
  • 服务性程序:装配、调试、诊断、排错。
  • 数据库管理系统:数据库和数据库管理软件。
  • 网络软件。

  硬件开发中会有一些辅助工具,甚至可以组装自动化流水线,但是软件发展到今天,仍然还需要人来进行开发,包括开发、使用和维护程序所需要的所有文档(ChatGPT也需要基于已有的代码才能生成)。最后总结一下软件发展的特点:

  1. 开发周期长。大型软件都是几千万行代码甚至更长。
  2. 制作成本昂贵。软件开发人员多、薪资高。
  3. 检测软件产品质量的特殊性。很难检测到所有的场景。

一句话:很难的啦~🤣

2.2 计算机的应用和展望

下面给出目前计算机的常见的应用场景:

  1. 科学计算和数据处理:这是创造计算机的初衷。“科学计算”比如天体建模、核爆炸模拟、天气预报、流体建模等,通常使用HPC。“数据处理”比如电信、银行、税务等数据密集型的任务,单个事务运算量不大但是数量极多,主要使用“大主机结构”的计算机。
  2. 工业控制和实时控制:“自动化”、“自动驾驶”等都需要通过计算机来控制。
  3. 网络技术:比如电子商务、网络教育、敏捷制造等。
  4. 虛拟现实:显然需要计算机实时计算和显示。比如飞行员训练系统。
  5. 办公自动化和管理信息系统。
  6. CAD/CAM/CIMS:仿真软件。
  7. 多媒体技术。
  8. 人工智能。

最后是一些展望:

  1. AI的发展:计算机具有类似人脑的一些超级智能功能,要求计算机的速度够快、存储容量够大。
  2. 芯片集成度的提高会受到限制,摩尔定律会受到考验。比如因为以下因素导致芯片集成度难以持续提高:
  • 芯片集成度受物理极限的制约。
  • 制作成本按几何级数递增。
  • 芯片的功耗、散热、线延迟等缺陷会进一步增加。
  1. 传统硅基芯片会被替代:
  • 光计算机:现在已经实现了利用光子进行数据的存储和运输,是否能使用光子完成运算。
  • DNA生物计算机:通过控制DNA分子间的生化反应完成计算。
  • 量子计算机:利用原子所具有的量子特性完成计算,量子领域热门的话题是量子密码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/467182.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

sqllab第二十四关通关笔记

知识点: 二次注入 先埋一个炸弹,然后通过其他路径引爆它 查看界面发现是一个登录框,尝试进行登录框的注入发现这里不存在注入点 那么就注册一个新的账户吧 通过点击注册,进入注册面板,注册一个新的账户 用户名为 re…

react native 实现自定义底部导航与路由文件配置

首先先把需要的一些库引入 yarn install react-navigation/native yarn install react-native-screens react-native-safe-area-context yarn install react-navigation/native-stack yarn add react-navigation/bottom-tabs 创建路由文件及四个底部导航页面 router文件下的bot…

车载电子电器架构 - 网络拓扑

车载电子电器架构 - 网络拓扑 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

SpringBoot ApplicationListener实现发布订阅模式

文章目录 前言一、Spring对JDK的扩展二、快速实现发布订阅模式 前言 发布订阅模式(Publish-Subscribe Pattern)通常又称观察者模式,它被广泛应用于事件驱动架构中。即一个事件的发布,该行为会通过同步或者异步的方式告知给订阅该事件的订阅者。JDK中提供…

数据结构中单向链表(无头)的学习

一.数据结构 1.定义 一组用来保存一种或者多种特定关系的数据的集合(组织和存储数据) 程序的设计:将现实中大量而复杂的问题以特定的数据类型和特定的存储结构存储在内存中, 并在此基础上实现某个特定的功能的操…

Games101-光栅化(三角形 )

视锥 fov:可视角 aspect ratio:宽高比 MVP 屏幕:抽象的认为是一个二维数组,数组中的每一个元素是一个像素 屏幕是一个典型的光栅成像设备 光栅化:把东西画在屏幕上的过程 像素:理解为不变的最小单位,RGB的…

SSA优化最近邻分类预测(matlab代码)

SSA-最近邻分类预测matlab代码 麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发。 数据为Excel分类数据集数据。 数据集划分为训练集、验证集、测试集,比例为8&#…

Android14之HIDL报错:Invalid sparse file format at header magic(一百九十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

利用自定义 URI Scheme 在 Android 应用中实现安全加密解密功能

在现代移动应用开发中,安全性和用户体验是至关重要的考虑因素。在 Android 平台上,开发人员可以利用自定义 URI Scheme 和 JavaScript 加密解密技术来实现更安全的数据传输和处理。本文将介绍如何在 Android 应用中注册自定义 URI Scheme,并结…

苍穹外卖-day06:HttpClient、微信小程序开发、微信登录(业务流程)、导入商品浏览功能代码(业务逻辑)

苍穹外卖-day06 课程内容 HttpClient微信小程序开发微信登录导入商品浏览功能代码 功能实现:微信登录、商品浏览 微信登录效果图: 商品浏览效果图: 1. HttpClient 1.1 介绍 HttpClient 是Apache Jakarta Common 下的子项目,…

Redis中的String编码转换底层原理及6.0新特性

String编码转换底层原理 String对象为什么把大于39字节或者44字节的字符串编码为raw,小于的时候编码为embstr? 在Redis3.2以前的版本中,SDS作为字符串类型中存储字符串内容的结构,源码如下: 3.2版本SDS结构 struct sdshdr {// 记录buf数…

linux 安装常用软件

文件传输工具 sudo yum install –y lrzsz vim编辑器 sudo yum install -y vimDNS 查询 sudo yum install bind-utils用法可以参考文章 《掌握 DNS 查询技巧,dig 命令基本用法》 net-tools包 yum install net-tools -y简单用法: # 查看端口占用情况…

[python3] 设置多进程名称并且在ps命令中可见

Centos7 系统 setproctitle 是一个 Python 模块,用于设置进程标题(process title)。进程标题是在系统中用来标识进程的名字,通常会显示在系统级的进程管理工具(如 ps 命令)中。通过设置进程标题&#xff0c…

代码随想录|Day23|回溯03|39.组合总和、40.组合总和II、131.分割回文串

39.组合总和 本题和 216.组合总和III 类似,但有几个区别: 没有元素个数限制:树的深度并不固定,因此递归终止条件有所变化每个元素可以使用多次:下层递归的起始位置和上层相同(startIndex不需要改动&#xf…

接口测试常见接口类型?

常见接口类型 1.根据协议区分 1、webService接口:是走soap协议通过http传输请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有Soapul、jmeter、loadrunner等; 2、http接口:是走http协议,…

Python爬虫在Django项目中的数据处理与展示实例

当谈到Python爬虫技术与Django项目结合时,我们面临着一个引人入胜又具有挑战性的任务——如何利用爬虫技术从网络上抓取数据,并将这些数据进行有效地处理和展示。在本文中,我将为您介绍Python爬虫技术在Django项目中的数据抓取与处理流程。 在…

Java-JVM 虚拟机原理调优实战

一、基础 栈帧(Stack Frame)栈空间的 基本元素,用于 方法的调用和方法的执行的数据结构 堆内存用来存放由new创建的对象和数组。在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。在堆中产生了一个数组或对象后&#xff0c…

Linux 管道

目录 一、认识管道 二、匿名管道 pipe函数 用法: pipefd: 匿名管道通信: 三、命名管道 概念: 创建: 特性: 用途: 四、命名管道和匿名管道的区别 命名: 持久性:…

汽车电子拓扑架构的演进过程

汽车电子拓扑架构的演进过程 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…

系统渐渐沦为“屎山”,这就是真相!

分享是最有效的学习方式。 博客:https://blog.ktdaddy.com/ 背景 小猫维护现有的系统也有一段时间了,踩坑也不少,事故不少。感兴趣的小伙伴可以了解一下,往期的小猫踩坑记合集。 这天,小猫找到了商城系统的第一任开发…