当前位置: 首页 > 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论文清单 增强阶段 …...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

【Python】 -- 趣味代码 - 小恐龙游戏

文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...

测试markdown--肇兴

day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...

二维FDTD算法仿真

二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...