当前位置: 首页 > news >正文

计算机组成原理之计算机硬件发展和计算机系统的组成

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…

文章目录

  • 前言
  • 一、计算机硬件发展
    • 1、电子管时代
    • 2、晶体管时代
    • 3、中小规模集成电路时代
    • 4、大规模、超大规模集成电路时代
    • 5、微处理器发展
    • 6、摩尔定律
    • 7、半导体存储器的发展
    • 8、计算机软件的发展
    • 9、计算机的分类与发展方向
  • 二、计算机系统的组成
    • 1、早期冯·诺依曼机的结构
    • 2、现代计算机的结构
    • 3、认识各个硬件部件
      • 1、主存储器的基本组成
      • 2、运算器的基本组成
      • 3、控制器的基本组成
    • 4、计算机的工作流程
      • 1、取数指令
      • 2、乘法指令
      • 3、加法指令
      • 4、存数指令
      • 5、停机指令
      • 6、分析
    • 5、计算机系统的多级层次结构
    • 6、三种级别的语言
  • 总结


前言

一、计算机硬件发展
1、电子管时代
2、晶体管时代
3、中小规模集成电路时代
4、大规模、超大规模集成电路时代
5、微处理器发展
6、摩尔定律
7、半导体存储器的发展
8、计算机软件的发展
9、计算机的分类与发展方向
二、计算机系统的组成
1、早期冯·诺依曼机的结构
2、现代计算机的结构
3、认识各个硬件部件
1、主存储器的基本组成
2、运算器的基本组成
3、控制器的基本组成
4、计算机的工作流程
1、取数指令
2、乘法指令
3、加法指令
4、存数指令
5、停机指令
6、分析
5、计算机系统的多级层次结构
6、三种级别的语言


一、计算机硬件发展

  • 第一代 电子管
  • 第二代 晶体管
  • 第三代 中小规模集成电路
  • 第四代 大规模、超大规模集成电路

在这里插入图片描述

1、电子管时代

  • 第一台电子数字计算机:ENIAC
  • 机器语言
  • 占地面积约170平方米
  • 耗电量150千瓦
  • 包含了17,468根真空管
    在这里插入图片描述

2、晶体管时代

  • 第一台使用晶体管线路的计算机:TRADIC
  • 面向过程的程序设计语言:FORTRAN
  • 有了操作系统雏形
  • 耗电量30瓦
  • 包含了800只晶体管
    在这里插入图片描述

3、中小规模集成电路时代

  • 高级语言迅速发展
  • 开始有了分时操作系统
    在这里插入图片描述

4、大规模、超大规模集成电路时代

  • 产生了微处理器
  • 新的概念:并行、流水线、高速缓存、虚拟存储器…
    在这里插入图片描述

5、微处理器发展

微型计算机的发展以微处理器技术为标志
在这里插入图片描述

  • 机器字长:计算机一次整数运算所能处理的二进制位数
  • 操作系统位数:其所依赖的指令集的位数

6、摩尔定律

  • 揭示了信息技术进步的速度
  • 集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍
    在这里插入图片描述

7、半导体存储器的发展

  • 1970年,仙童公司生产出第一个较大容量的半导体存储器
  • 半导体存储器单芯片容量:1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB…

8、计算机软件的发展

  • 计算机语言:机器语言,汇编语言,高级语言
  • 操作系统

9、计算机的分类与发展方向

  • 单指令流&单数据流(SISD):冯·诺伊曼体系结构
  • 单指令流&多数据流(SIMD):阵列处理器,向量处理器
  • 多指令流&单数据流(MISD):实际上是不存在的
  • 多指令流&多数据流(MIMD):多处理器,多计算机

二、计算机系统的组成

在这里插入图片描述

1、早期冯·诺依曼机的结构

存储程序的概念:将指令以二进制代码的形式事先输入计算机的主存储器,然后按照其在存储器中的首地址执行程序的第一条指令,以后就按照该程序的规定顺序执行其他指令,直至程序执行结束。

在计算机系统中,软件和硬件在逻辑上是等效的

冯诺依曼计算机的特点:

  • 计算机由五大部件组成
  • 指令和数据以同等地位存于存储器,可以按地址寻访
  • 指令和数据用二进制表示
  • 指令由操作码和地址码组成
  • 存储程序
  • 以运算器为中心

输入/输出设备与存储器之间的数据传送通过运算器完成

2、现代计算机的结构

以存储器为核心
CPU=运算器+控制器
在这里插入图片描述
在这里插入图片描述

重点:
在这里插入图片描述

3、认识各个硬件部件

1、主存储器的基本组成

在这里插入图片描述

  • MAR :存储地址寄存器
  • MDR :存储数据寄存器
  • 数据在存储体内按照地址存储
    在这里插入图片描述
  • 存储单元:每个存储单元存放一串二进制代码
  • 存储字(word):存储单元中二进制代码的组合
  • 存储字长:存储单元中二进制代码的位数
  • 存储元:即存储二进制的电子元件(一般指电容),每个存储单元可存1bit

MAR位数反映存储单元的个数
MDR位数=存储字长
在这里插入图片描述
字(word)的长度是根据计算机的设计来确定(可能为8, 16 , 32 , 64 bit)

2、运算器的基本组成

运算器:用于实现算术运算(如:加减乘除),逻辑运算(如:与或非)
在这里插入图片描述

  • ACC:累加器,用于存放操作数,或运算结果。
  • MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
  • X:通用的操作数寄存器,用于存放操作数
  • ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

在这里插入图片描述

3、控制器的基本组成

在这里插入图片描述

  • CU(Control Unit):控制单元,分析指令,给出控制信号
  • IR(lnstruction Register):指令寄存器,存放当前执行的指令
  • PC(Program Counter):程序计数器,存放下一条指令地址,有自动加1功能
    在这里插入图片描述

4、计算机的工作流程

1、取数指令

在这里插入图片描述

2、乘法指令

在这里插入图片描述

3、加法指令

在这里插入图片描述

4、存数指令

在这里插入图片描述

5、停机指令

在这里插入图片描述

6、分析

在这里插入图片描述
重点:
在这里插入图片描述

5、计算机系统的多级层次结构

在这里插入图片描述
汇编语言指令和机器语言指令一一对应
汇编语言只是为了便于人类理解,本质上和机器语言差不多

6、三种级别的语言

  • 高级语言:C/C++、Java
  • 汇编语言:助记符
  • 机器语言:二进制代码

编译程序:将高级语言编写的源程序全部语句一次翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)

解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接再翻译下一句(每次执行都要翻译

注:编译、汇编、解释程序,可统称“翻译程序”
C/C++就是直接编译程序,所以执行效率比较高

重点:
在这里插入图片描述


总结

以上就是计算机组成原理之计算机硬件发展和计算机系统的组成的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!

相关文章:

计算机组成原理之计算机硬件发展和计算机系统的组成

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需…...

《JVM由浅入深学习【七】 2024-01-11》JVM由简入深学习提升分享

亲爱的读者们,欢迎来到本篇博客,这是JVM第七次分享,下面是七个JVM常用常面的分享,请笑纳 目录 1. 几个与JVM 内存相关的核心参数2.如何计算一个对象的大小3.堆为什么要分为新生代和老年代4.JVM堆的年轻代为什么要有两个 Survivor…...

Golang leetcode142 环形链表 暴力map 快慢指针法

文章目录 环形链表 leetcode142暴力遍历 map哈希记录快慢指针法 环形链表 leetcode142 该题目要求找到入环的第一个节点 我们可以通过map进行记录,没到新的节点查询是否经过原有节点 入环节点,上两个节点的next相同 若有入环节点,则一定能检…...

基于java,springboot的论旅游管理系统设计与实现

环境以及简介 基于java,springboot的论旅游管理系统设计与实现,Java项目,SpringBoot项目,含开发文档,源码,数据库以及ppt 源码下载 环境配置: 框架:springboot JDK版本:JDK1.8 服…...

掌握视频节奏,玩转剪辑艺术!,轻松调整视频播放速度与秒数的技巧大揭秘

你是否经常觉得视频播放得太快或太慢,无法满足你的观看需求?或者想要控制视频的长度,却不知道该如何下手?今天,我们将为你揭秘几种简单又实用的方法,让你轻松调整视频的播放速度和秒数! 首先&a…...

51单片机介绍

1 单片机简介 单片机,英文Micro Controller Unit,简称MCU 内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能 单片机的任务是信息采集(依靠传感器)、处理(依靠CPU)和硬件设…...

k8s存储卷之动态

动态pv需要两个组件 1、卷插件,k8s本身支持的动态pv创建不包含NFS,需要声明和安装一个外部插件 Provisioner 存储分配器,动态创建pv,然后根据pvc的请求自动绑定和使用 2、StorageClass,用来定义pv的属性&#xff0c…...

base64 图片进行编码、解码;api调用

1、base64 图片进行编码、解码 编码 import base64# 假设您有一个图像文件,例如 image.jpg with open(r"C:\Users\l****1686722996428308480-1 (1).jpg", rb) as image_file:# 读取图像文件的二进制数据image_data image_file.read()# 将二进制数据编码…...

鸿蒙OS应用开发之百分比显示组件

前面学习了动态加载的组件,在本文里将要学习百分比显示组件,这个组件可以把数据按百分比的情况进行图形显示出来。百分比图形显示还是很有用的,比如一个班里学生的成绩占比,还有软件项目开发进度的情况,还有软件下载进度等等。 在鸿蒙系统里定义这个组件接口如下: DataP…...

网络多线程开发小项目--QQ登陆聊天功能(私聊群发)

9.1.4、QQ登陆聊天功能(私聊群发) 9.1.4.1、私聊功能 1、需求说明 2、思路分析 3、代码实现 QQClient: 1)cn.com.agree.qqclient.QQView.QQView case "3":log.debug("请输入想给谁发消息(在线用户):");St…...

企业版多域名SSL证书

多域名SSL证书,是一种数字证书,可以用一张SSL证书保护多个独立的域名。这种证书类型适用于拥有多个不同域名的个人或者企事业单位,可以节省给每个域名购买和管理SSL证书的时间和成本。企业版多域名SSL证书只支持企事业单位申请,今…...

理解Herbrand Equivalence

笔者最近在看GVN的一系列论文,总会看到一个概念叫Herbran Equivalence,依靠这种定义,能够判断一个GVN算法是否是complete的,也即检测一个算法是否是precise的,只有找到所有Herbrand Equivalence关系的算法才能称得上是…...

【SimPy系列博客之官方example学习与解读】—— Example 3: Car Wash

Hello,CSDN的各位小伙伴们,又见面啦!今天我们要学习的例程是:Car Wash!我们开始吧! 例程背景 这个例程相对于example 2来说会简单一些,有一个洗车厂,里面有若干台洗车机器&#xf…...

前端随机验证码安全验证sdk

前端随机验证码安全验证sdk 前言介绍一、效果展示二、使用步骤1.引入库2.参数说明3.方法与事件说明4.如何通过API获取当前用户的验证状态 ​ 前端必备工具推荐网站(免费图床、API和ChatAI等实用工具): http://luckycola.com.cn/ 前言 验证码:是一种校验区分用户是…...

语境化语言表示模型

一.语境化语言表示模型介绍 语境化语言表示模型(Contextualized Language Representation Models)是一类在自然语言处理领域中取得显著成功的模型,其主要特点是能够根据上下文动态地学习词汇和短语的表示。这些模型利用了上下文信息&#xf…...

PDO【配置】

PDOr: 6040 控制字 6060 模式 6083 加速度 6084 减速度 =====================【定位1】:// 补间7 607A 定位位置 6081 定位速度 =====================【速度3】: 60FF 目标速度 =====================【力矩4…...

CMake入门教程【高级篇】管理MSVC编译器警告

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1.什么是MSVC?2.常用的屏蔽警告3.MSVC所有警告4.target_compile_options用法5.如何在CMake中消除MSVC的警告?6.屏蔽警告编写技巧...

【JaveWeb教程】(8)Web前端基础:Vue组件库Element之Table表格组件和Pagination分页组件 详细示例介绍

目录 1 Table表格组件1.1 组件演示1.2 组件属性详解 2 Pagination分页2.1 组件演示2.2 组件属性详解2.3 组件事件详解 接下来我们来学习一下ElementUI的常用组件,对于组件的学习比较简单,我们只需要参考官方提供的代码,然后复制粘贴即可。本节…...

llama_index 创始人为我们展示召回提升策略(提升15%)

用句子向量替换为句子向量 句子检索,将句子转化为向量。在检索的过程中,假如句子命中,则将句子周围的内容也当做检索内容。 对比句子检索和之前的按块去做切分的检索。可以看到,内容的相关性提升了8%, 构建数据的时候…...

RAG 详解

原文:GitHub - Tongji-KGLLM/RAG-Survey 目录 RAG调查 什么是RAG?RAG的范式 幼稚的 RAG高级 RAG模块化 RAG如何进行增强?RAG 还是微调?如何评估 RAG?前景 严峻的挑战多式联运扩展RAG的生态系统RAG论文清单 增强阶段 …...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Unity3D中Gfx.WaitForPresent优化方案

前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

Go 并发编程基础:通道(Channel)的使用

在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...