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

“第四十八天” 计算机组成原理

        数据结构学完了,不过也就是匆匆过了一遍,后面肯定还是要重来的。现在开始学机组了。

计算机发展历程

        计算机硬件唯一能识别的数据是二进制的 0/1,而在计算机中用低/高电平表示 0 / 1,也就是通过电信号传递数据,为什么只表示0/1,在之前c语言学习中有简单提及,因为越细分,电平越难区别,不知道机组会不会有更详细的解释。

        计算机系统 = 软件 + 硬件 ,计算机性能的好坏取决于“软”、“硬”件功能的总和。

硬件是指计算机的实体,如主机和外设等;软件则是由具有各类特殊功能的程序组成,又可分为系统软件和应用软件 ,前者用来管理整个计算机系统,如操作系统,数据库管理系统,标准程序库,网络软件,语言处理程序,服务程序等,后者是指按任务需要编织成的各种程序,如抖音,王者荣耀,迅雷等。

        计算机硬件的发展可分为四个阶段,第一个阶段是电子管时代,1946-1957,其逻辑元件是电子管,体积大(大约有半个手掌)且耗电量大,但运算速度低,每秒只有几千到几万次,内存是汞延迟线、磁鼓,外存是穿孔卡片、纸带,此时人们使用机器语言(二进制)进行编程。(内存好像就是运行内存,外存就是硬盘那些东西)。

        第二代是晶体管时代,1958-1964,此时的逻辑元件是晶体管,晶体管的体积比电子管小的多,而且功耗降低,运算速度是几万到几十万,内存是磁芯存储器,外存是磁带,此时出现了面向过程的程序设计语言:FORTRAN,有了操作系统雏形。

        第三代是中小规模集成电路,1964-1971,此时的逻辑元件是中小规模集成电路(将元件集成到基片上),运算速度是几十万到几百万次,内存是半导体存储器,外存是磁带、磁盘。此时的计算机主要用于科学计算等专业用途,高级语言迅速发展,开始有了分时操作系统。

        第四代是大规模、超规模集成电路时代,1972到现在,此时的逻辑元件是大规模、超大规模集成电路,运算速度已经可以达到上千万次到万亿次了,内存是半导体存储器,外存是磁盘、磁带、光盘、半导体存储器。此时开始出现“微处理器”,微型计算机,个人计算机萌芽,操作系统:Windows、Macos,Linux..  这个时候的微处理器已经不可同日而语,如苹果A13的制作工艺达到7nm,也就是每个元件宽度是7nm,所以一个指甲盖大小的微处理器可以拥有85亿个晶体管,这和最初要占地几十平方米的巨型计算器已经是天壤之别了。

        微型计算机的发展以微处理器技术为标志。

        机器字长:计算机一次整数运算所能处理的二进制位数。

        这里还有另一个摩尔定律:集成电路上可容纳的晶体管数目,约每隔18个月便会增加一倍,整体性能也将提升一倍。其揭示了信息技术进步的速度。实际上半导体存储器的发展也大致符合这个规律。

        目前计算机的发展趋势是“两极”分化“:

一极是微型计算机向更微型化、网络化、高性能、多用途方向发展;

一极是巨型机向更巨型化、超高速、并行处理、智能化方向发展,如我国的神威•太湖之光,其每秒可以进行9.3亿亿次的浮点运算,这个数还是蛮震惊的,有时候可能都意识不到现代科技已经发展到何种程度了。

计算机硬件的基本组成

1、早期的冯诺依曼机的结构   2、现代计算机的结构

        最开始的计算机是人们通过手动接线来控制计算的,这里好像手动控制很麻烦,但具体到底怎么回事,我没有get到。对于这种情况,冯诺依曼提出了”存储程序“,这个概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直到程序执行结束。

        第一台采用冯诺依曼结构的计算机是EDVAC。

(我看的是王道的课,这个是截图)

        早期的冯诺依曼机是以运算器为核心的,数据的存放都要通过运算器,这就导致运算器在负责计算的同时还要负责承担数据运输,这影响的运算的速度,同时数据存取也需要通过运算器,而不是直接从存储器中拿去,也影响程序的运行速度。

这里输入输出设备是承担信息形式转换的。

        冯诺依曼机的特点:

1、计算机由五大部件组成;

2、指令和数据以同等地位存于存储器,可按地址寻访;

3、指令和数据用二进制表示;

4、指令由操作码和地址码组成;

5、存储程序;但这个什么意思我不是很清楚还。

6、以运算器为中心,输入和输出设备与存储器之间的数据传送通过运算器完成。

        现代计算机的结构

现代计算机是以存储器为中心,我们常说的cpu就是运算器和控制器的集合;

对于存储器可以分为主存和辅存,主存就是内存,辅存就是硬盘之类的,

主机是指cpu和主存储器的集合,输出输入设备则被称为外设或者 I/O设备;主机和外设统称为硬件。

相关文章:

“第四十八天” 计算机组成原理

数据结构学完了,不过也就是匆匆过了一遍,后面肯定还是要重来的。现在开始学机组了。 计算机发展历程: 计算机硬件唯一能识别的数据是二进制的 0/1,而在计算机中用低/高电平表示 0 / 1,也就是通过电信号传递数据&#x…...

【算法|贪心算法系列No.4】leetcode55. 跳跃游戏 45. 跳跃游戏 II

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...

第九章 JDBC

文章目录 一. 单选题(共5题,50分)二. 判断题(共5题,50分) 一. 单选题(共5题,50分) (单选题) 下列选项,可用于存储结果集的对象是() A.…...

Kubernetes基础概念及架构和组件

目录 一、kubernetes简介 1、kubernetes的介绍与作用 2、为什么要用K8S? 二、kubernetes特性 1、自我修复 2、弹性伸缩 3、服务发现和负载均衡 4、自动发布(滚动发布/更新)和回滚 5、集中化配置管理和密钥管理 6、存储编排 7、任务批…...

04.Finetune vs. Prompt

目录 语言模型回顾大模型的两种路线专才通才二者的比较 专才养成记通才养成记Instruction LearningIn-context Learning 自动Prompt 部分截图来自原课程视频《2023李宏毅最新生成式AI教程》,B站自行搜索 语言模型回顾 GPT:文字接龙 How are __. Bert&a…...

UG NX二次开发(C#)-采用NXOpen完成对象的合并操作

文章目录 1、前言2、Ufun实现布尔和操作的函数2.1 函数说明2.2 源代码3、采用NXOpen实现布尔和操作的函数3.1 函数说明3.2 源代码4、测试结果4.1 采用UFun 与NXOpen的结果4.2采用UFun 与NXOpen的对比说明1、前言 在UG NX中开发过程中,创建特征对象的时候往往会用到布尔操作,…...

测开不得不会的python之re模块正则表达式匹配

学习目录 正则表达式介绍 正则表达式的常用符号 python的re模块 findall()函数 finditer()函数 match()函数 search()函数 split()函数 正则表达式的介绍 Python 通过标准库中的 re 模块来支持正则表达式。 正则表达式作为高级的文本模式匹配、抽取、和搜索。简单地说…...

selenium4 元素定位

selenium4 9种元素定位 ID driver.find_element(By.ID,"kw")NAME driver.find_element(By.NAME,"tj_settingicon")CLASS_NAME driver.find_element(By.CLASS_NAME,"ipt_rec")TAG_NAME driver.find_element(By.TAG_NAME,"area")LINK_T…...

sql高级教程-索引

文章目录 架构简介1.连接层2.服务层3.引擎层4.存储层 索引优化背景目的劣势分类基本语法索引结构和适用场景 性能分析MySq| Query Optimizerexplain 索引优化单表优化两表优化三表优化 索引失效原因 架构简介 1.连接层 最上层是一些客户端和连接服务,包含本地sock通…...

拼团小程序制作技巧大揭秘:零基础也能轻松掌握

随着拼团模式的日益流行,越来越多的商家和消费者开始关注拼团小程序的制作。对于没有技术背景的普通人来说,制作一个拼团小程序似乎是一项艰巨的任务。但实际上,选择一个简单易用的第三方平台或工具,可以轻松完成拼团小程序的制作…...

报错:The supplied javaHome seems to be invalid. I cannot find the java executable

AS 升级遇到的问题 问题 升级 Android Studio,碰到无法检测到 java The supplied javaHome seems to be invalid. I cannot find the java executable. Tried location: D:\Program Files\Android\Android Studio\jre\bin\java.exe 然后去网上找解决思路。 终于…...

关于 硬盘

关于 硬盘 1. 机械硬盘1.1 基本概念1.2 工作原理1.3 寻址方式1.4 磁盘磁记录方式 2. 固态硬盘2.1 基本概念2.2 工作原理 1. 机械硬盘 1.1 基本概念 机械硬盘即是传统普通硬盘,硬盘的物理结构一般由磁头与盘片、电动机、主控芯片与排线等部件组成。 所有的数据都是…...

Java反射实体组装SQL

之前在LIS.Core定义了实体特性,在LIS.Model给实体类加了表特性,属性特性,外键特性等。ORM要实现增删改查和查带外键的父表信息就需要解析Model的特性和实体信息组装SQL来供数据库驱动实现增删改查功能。 实现实体得到SQL的工具类&#xff0c…...

tensorrt安装使用教程

一般的深度学习项目,训练时为了加快速度,会使用多GPU分布式训练。但在部署推理时,为了降低成本,往往使用单个GPU机器甚至嵌入式平台(比如 NVIDIA Jetson)进行部署,部署端也要有与训练时相同的深…...

Java后端开发(十)-- idea(2022版)将 已push 的 远程仓库 的 多条commit记录 进行撤销

目录 1.多次 修改Test01类后,提交到本地仓库 。 2.多次重复 1 的步骤,多次commit成功后,在Git =》Log中会显示,commit记录...

常见面试题-Netty专栏(一)

typora-copy-images-to: imgs Netty 是什么呢?Netty 用于做什么呢? 答: Netty 是一个 NIO 客户服务端框架,可以快速开发网络应用程序,如协议服务端和客户端,极大简化了网络编程,如 TCP 和 UDP …...

【iOS】JSONModel的基本使用

文章目录 前言一、导入JSONModel二、JSONModel的基本使用1.基本用法2.模型集合3.模型导出为NSDictionary或JSON4.设置所有属性可选(所有属性值可以为空)5.下划线(蛇式)转驼峰命名法 前言 JSONModel 是一个用于 Objective-C 的开源库,它用于简…...

imu预积分学习(更新中)

imu预积分学习(更新中) IMU预积分可以做什么? 以上面那个经典图片为例子,IMU可以通过六轴数据,拿到第i帧和第j帧之间的相对位姿,这样不就可以去用来添加约束了吗 但是有一个比较大的问题是: I…...

算法刷题-链表

算法刷题-链表 203. 移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]…...

Linux 挂载磁盘到指定目录

问题:公司分配了数据磁盘,但是分区也没有挂载到目录 首先 df -h 查看一下挂载点的情况 查看服务器上未挂载的磁盘 fdisk -l 注:图中sda、sdb (a、b指的是硬盘的序号) 分区操作 我们可以看到b硬盘有536G未分区&…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路

进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如&#xff1a…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战

说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...