【计算机组成原理 | 第二篇】计算机硬件架构的发展

news2024/12/30 4:27:53

目录

前言:

冯诺依曼计算机架构

现代计算机架构:

总结:


前言:

在当今数字化时代,计算机硬件不仅是技术进步的见证者,更是推动这一进步的基石。它们构成了我们日常生活中不可或缺的数字生态系统的核心,从简单的个人计算任务到复杂的数据分析和人工智能应用,硬件的性能和可靠性直接影响着我们的工作效率和生活质量。然而,无论计算机技术如何演变,其基本组成元素始终保持不变,它们是构建现代计算机的基石。

本文旨在深入探讨计算机硬件的基本组成,揭示这些组件如何协同工作,支撑起整个计算机系统的运行。

在最早期的计算机ENIAC中,这个大家伙虽然可以执行计算,但是他需要工作人员手动接线来控制计算。

而这种手动计算极大的限制了计算机的运行速度。此时 冯诺依曼就提出了一个设想:提前确定好所有的步骤,计算机只需要按步骤执行。

这其实就是存储程序。

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

冯诺依曼计算机架构

基于冯诺依曼提出的这种设想,就设计出了早期的冯诺依曼机架构:

由图我们可以总结冯诺依曼计算机的特点:

  1. 计算机由五大部件组成
  2. 指令和数据以同等的地位存于存储器中,可以按地址访问
  3. 指令和数据都是用二进制表示
  4. 指令由操作码(对数据进行怎么样的操作)和地址码(要操作的数据在哪里)
  5. 存储程序
  6. 运算器为中心,无论是输入还是输出设备,都需要通过运算器完成。

 但是其实这种架构是存在缺陷的:我们所有的数据都需要通过运算器进行操作,就会导致效率的降低。

现代计算机架构:

因此现代计算机的架构改进了这一点,由以运算器为中心改为了以存储器为中心。

简要概括一下就是:

冯诺依曼计算机以运算器为中心,所有的数据处理都需要经过运算器,而现代的计算机架构以存储器为中心,所有的数据处理都需要经过存储器。 

随着集成电路的出现,人们对运算器和控制器进行了整合,变成了CPU

CPU = 运算器 + 控制器

因此上面的架构又可以更新为:

 

关于计算机的硬件,我们可以用图表示为:

总结:

                本章我们分两部分讲解了冯诺依曼计算机架构和现代计算机架构。二者最主要的区别就是:冯诺依曼计算机架构是以运算器作为中心的,所有数据的处理都需要先经过运算器,但是这样会大大降低效果,因此我们的现代计算机架构对其做了更改,让存储器作为中心,优化了数据的处理流程。在下一篇中,我们会更加详细的了解各个硬件的工作原理。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于FPGA的图像边缘检测(OV5640)

一、简介 1.应用范围 边缘主要存在于图像中目标与目标之间,目标与背景之间,区域与区域之间。 边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合,表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位,那么&…

<数据集>水稻叶片病害识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1448张 标注数量(xml文件个数):1448 标注数量(txt文件个数):1448 标注类别数:3 标注类别名称:[BrownSpot,RiceBlast,BacterialBlight] 序号类别名称图片数框数1Rice…

Python类与对象02:继承

1、什么是继承 上一节中我们介绍了类与对象的用法。类可以看作是一种程序内的设计图纸,而对象则是基于这个图纸制造出来的实体。这个过程类似于现实中的设计表格和填写表格。 现在假设你是一名设计师,需要迭代一款新产品。你有两个选择: 在…

MySQL 数据库(基础)- SQL

SQL通用语法 SQL通用语法 SQL语句可以单行或者多行书写,以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。 注意:空格和缩进的个数是没有限制的,可以是 “一个” 也可以是 “多个”。MySQL数据库的SQL语句不区分大小写,…

【Django项目】基于Python+Django+MySQL的音乐网站系统项目

功能介绍 首页:歌曲分类、歌曲搜索、热门歌曲、热门下载、新歌推荐 歌曲排行:歌曲分类、分页功能 用户板块:用户登陆/注册、播放历史 歌曲详情:歌曲播放、当前播放列表、歌曲点评、歌曲播放插件、下载歌曲 系统后台:歌…

MacOS 通过Docker安装宝塔面板搭建PHP开发环境

1、docker拉取ubuntu系统 docker pull ubuntu2、运行容器 docker run -i -t -d --name bt -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 -p 3306:3306 -p 6379:6379 --privilegedtrue -v /Users/oi/Sites:/www/wwwroot ubuntu-v 后的 /Users/oi/Sites 代表…

redis redisson(仅供自己参考)

redis 通过setnx实现的分布式锁有问题 如图: 解决的新的工具为(闪亮登场):redisson redisson可重入锁的原理 实现语言lua: 加锁实现脚本语言: 释放锁的脚本语言: 加锁的lua -- 首先判断这个锁…

Ubuntu安装MATLAB

一、准备工作 下载MATLAB安装文件: 访问MathWorks官方网站(MathWorks官网),下载适用于Linux的MATLAB安装文件。这通常是一个.iso镜像文件或.zip压缩文件。请注意选择与Ubuntu版本相匹配的MATLAB版本。创建安装目录: 打…

VMware安装Ubuntu以及利用vscode远程Ubuntu

一、VMware安装Ubuntu (1)VMware安装Ubuntu主要参考此文VMware虚拟机安装Ubuntu22.04图文教程(超详细!!!)。 (2)VMware密钥参考此文24年VMware 17密钥(附下载链接&#…

01. 数组篇(进行中......)

一. 前缀和技巧 &#xff08;1&#xff09;前缀和 前缀和技巧适用于快速、频繁地计算一个索引区间内的元素之和。 class NumArray { public:vector<int> preSum; //前缀和数组NumArray(vector<int>& nums) {//preSum[0] 0&#xff0c;便于计算累加和preSum…

解决QT creator中文乱码问题

1.首先设置文本编辑器为UTF-8 先在工具-选项-文本编辑器-behavior部分选择文件编码为UTF-8&#xff0c;紧接着是选择“如果编码是UTF-8则添加”&#xff0c;如下图 2.设置ext code for tools 为system 具体解决办法是 工具-选项-环境-interfaces这一栏有一个“Text code for to…

【2024_CUMCM】Matlab快速入门

目录 常识 disp and input 字符串合并 sum 提取矩阵指定位置的元素 指定行列 指定行or指定列&#xff08;返回行/列向量&#xff09; 指定某些行 指定全部元素&#xff0c;按列拼接 size repmat 矩阵的运算 基本运算 形状相同的矩阵运算 每个元素同时和常数相乘或相…

揭秘!为何SmartEDA电路仿真成为学生的科技利器,学习之路从此不再难行

在当今科技日新月异的时代&#xff0c;电子工程、自动化、通信等专业的学生们面临着前所未有的学习挑战。传统的电路设计与分析方法已难以满足现代教学需求&#xff0c;而SmartEDA电路仿真软件的出现&#xff0c;如同为学生们带来了一盏明灯&#xff0c;照亮了他们的学习之路。…

C++-时间复杂度

前言 OJ测试中最烦人的结果莫过于TLE(Time Limit Exceed 超时)和MLE(Mempry Limit Exceed超内存&#xff09;了&#xff0c;在递归和搜索题里面看见这两货就烦。 目录 前言 时间复杂度 时间复杂度概念 时间复杂度的表示法 时间复杂度OJ测试要求 时间复杂度例举 剪枝 1.可行…

C++相关概念和易错语法(19)(继承规则、继承下的构造和析构、函数隐藏)

1.继承规则 继承的本质是复用&#xff0c;是结构上的继承而不是内容上的继承&#xff0c;近似于在子类中声明了父类的成员变量。 &#xff08;1&#xff09;写法&#xff1a;class student : public person 派生类&#xff08;子类&#xff09;&#xff0c;继承方式&…

Cypress UI自动化之安装环境

注&#xff1a;macOS系统 一、git环境 略 二、node环境 1、安装nvm 前提&#xff1a;有装过Homebrew&#xff0c;参考adb使用方法文档 1、安装nvm&#xff1a;首先要保证之前没有安装过node&#xff0c;如果之前安装过&#xff0c;先 brew uninstall node brew install n…

省市县下拉框的逻辑以及多表联查的实例

2024.7.12 一. 省市县的逻辑开发。1、准备&#xff1a;1.1. 要求&#xff1a;1.2 数据库表&#xff1a; 2. 逻辑&#xff1a;3. 方法3.1 创建实体类3.2 数据访问层3.3 实现递归方法3.4 控制器实现3.5 前端处理 二、多表联查&#xff08;给我干红温了&#xff09;1. 出现了问题2…

Java性能优化-switch性能优化-用String还是int做比较

场景 Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化&#xff1a; Java中使用JMH(Java Microbenchmark Harness 微基准测试框架)进行性能测试和优化_java热点函数-CSDN博客 参考以上性能测试工具的使用。 下面针对Java中对switch-case比较时…

LLM 合成数据生成完整指南

大型语言模型是强大的工具&#xff0c;不仅可以生成类似人类的文本&#xff0c;还可以创建高质量的合成数据。这种能力正在改变我们进行 AI 开发的方式&#xff0c;特别是在现实世界数据稀缺、昂贵或隐私敏感的情况下。在本综合指南中&#xff0c;我们将探索 LLM 驱动的合成数据…

访问控制的定义与原理

访问控制(Access Control)是一种重要的安全机制&#xff0c;用于限制对程序中的数据、函数、类以及计算机系统中资源(如文件、数据库、网络设备等)的访问权限。其主要目的是保护系统中的敏感信息和资源&#xff0c;防止未经授权的访问和操作&#xff0c;确保系统的安全性、完整…