计算机组成原理学习 Part 1

计算机系统

组成

计算机系统 { 硬件 计算机的实体,如主机、外设等 软件 由具有各类特殊功能的信息(程序)组成 计算机系统 \begin{cases} 硬件 &\text 计算机的实体,如主机、外设等\\ 软件 &\text 由具有各类特殊功能的信息(程序)组成 \end{cases} 计算机系统{硬件软件算机的实体,如主机、外设等具有各类特殊功能的信息(程序)组成
软件 { 系统软件 用来管理整个计算机系统 语言处理程序 操作系统 服务性程序 数据库管理软件 网络软件 应用软件 按任务需要编制成的各种程序 软件 \begin{cases} 系统软件 & \text 用来管理整个计算机系统\\ &\text 语言处理程序\\ &\text 操作系统\\ &\text 服务性程序\\ &\text 数据库管理软件\\ &\text 网络软件\\ 应用软件 &\text 按任务需要编制成的各种程序 \end{cases} 软件 系统软件应用软件来管理整个计算机系统言处理程序作系统务性程序据库管理软件络软件任务需要编制成的各种程序

计算机系统的层次结构

系统复杂性管理的方法

抽象
  • 对于一个过程或者一件制品的某些细节有目的的隐藏,以便把其他方面、细节或者结构表达得更加清楚
  • 指高级得模型和低级得实体相对
  • 隐藏系统中不重要的细节

抽象出的计算机系统的层次结构

image
image

计算机体系结构和计算机组成

研究内容上的区别

{ 计算机体系结构 程序员所见的计算机系统的属性 概率性的结构与功能特性 (指令系统、数据类型、寻址技术、 I / O 机理) 计算机组成 实现计算机体系结构所体现的属性 (具体指令的实现) \begin{cases} 计算机体系结构 & 程序员所见的计算机系统的属性\\ & 概率性的结构与功能特性\\ & (指令系统、数据类型、寻址技术、I/O机理)\\ &\\ 计算机组成 & 实现计算机体系结构所体现的属性\\ & (具体指令的实现) \end{cases} 计算机体系结构计算机组成程序员所见的计算机系统的属性概率性的结构与功能特性(指令系统、数据类型、寻址技术、I/O机理)实现计算机体系结构所体现的属性(具体指令的实现)
{ 计算机体系结构 有无乘法指令 计算机组成 如何实现乘法指令 \begin{cases} 计算机体系结构 & 有无乘法指令\\ 计算机组成 & 如何实现乘法指令 \end{cases} {计算机体系结构计算机组成有无乘法指令如何实现乘法指令

计算机的基本组成

计算机硬件框图

冯诺依曼计算机硬件

image

以存储器为中心的计算机硬件

image

现代计算机硬件

硬件 { 主机 { C P U { 运算器 A L U 控制器 C U 存储器 { 主存 辅存 I / O 设备 { 输入设备 输出设备 硬件 \begin{cases} 主机 & \begin{cases} CPU & \begin{cases} 运算器 & ALU\\ 控制器 & CU\\ \end{cases}\\ 存储器 & \begin{cases} 主存\\ 辅存 \end{cases} \end{cases}\\ I/O 设备 & \begin{cases} 输入设备\\ 输出设备 \end{cases} \end{cases} 硬件 主机I/O设备 CPU存储器{运算器控制器ALUCU{主存辅存{输入设备输出设备
image

系统复杂性管理的方法——3‘Y

  • 层次化:将被设计的系统划为多个模块或子模块
  • 模块化:有明确定义的功能和接口
  • 规则性:模块更容易被重用

计算机的工作步骤

上机的准备

  1. 建立数学模型
  2. 确定计算方法
  3. 编制程序
    • 程序 —— 运算的全部步骤
    • 指令 —— 每一个步骤

程序的解题过程

存储器的基本组成

主存储器 { 存储体 M A R 存储器地址寄存器(反应存储单元的个数) M D R 存储器数据寄存器(反映存储字长) 主存储器 \begin{cases} 存储体 \\ MAR & 存储器地址寄存器(反应存储单元的个数)\\ MDR & 存储器数据寄存器(反映存储字长) \end{cases} 主存储器 存储体MARMDR存储器地址寄存器(反应存储单元的个数)存储器数据寄存器(反映存储字长)

  • 存储单元:存放一串二进制代码
  • 存储字:存储单元中二进制代码的组合
  • 存储字长:存储单元中二进制代码的位数
  • 按地址寻访:每个存储单元赋予一个地址号

运算器的基本组成及操作过程

image
A C C M Q X 加法 被加数 和 加数 减法 被减数 差 减数 乘法 乘积高位 乘数 乘积低位 被乘数 除法 被除数 余数 商 除数 \begin{array}{|c|c|c|} \hline& ACC & MQ & X \\ \hline 加法 & 被加数 \quad 和 & & 加数\\ \hline 减法 & 被减数 \quad 差 & & 减数\\ \hline 乘法 & 乘积高位 & 乘数 \quad 乘积低位 & 被乘数\\ \hline 除法 & 被除数 \quad 余数 & 商 & 除数\\ \hline \end{array} 加法减法乘法除法ACC被加数被减数乘积高位被除数余数MQ乘数乘积低位X加数减数被乘数除数

控制器

功能
  • 解释指令
  • 保证指令的按序执行
基本组成

控制器 { C U I R P C 控制器 \begin{cases} CU \\ IR \\ PC \end{cases} 控制器 CUIRPC
完成一条指令 { 取指令 P C (存放当前欲执行指令的地址) 分析指令 I R (存放当前欲执行的指令) 执行指令 C U 完成一条指令 \begin{cases} 取指令 & PC(存放当前欲执行指令的地址)\\ 分析指令 & IR(存放当前欲执行的指令)\\ 执行指令 & CU \end{cases} 完成一条指令 取指令分析指令执行指令PC(存放当前欲执行指令的地址)IR(存放当前欲执行的指令)CU

运算器、控制器和存储器构成了什么?

  • 一条指令在主机上的完成过程
  • 程序在主机上是如何执行的

主机完成一条指令的过程(以取数指令为例)

image

计算机硬件的主要技术指标

机器字长

CPU 一次能处理数据的位数,与 CPU 中的 寄存器位数 有关

运算速度

运算速度 { 主频 核数 每个核支持的线程数 吉普森法 T M = ∑ i = 1 n f i t i C P I 执行一条指令所需时钟周期数 M I P S 每秒执行百万条指令 F L O P S 每秒浮点运算次数 运算速度 \begin{cases} 主频\\ 核数 & 每个核支持的线程数\\ 吉普森法 & T_M = \sum_{i=1}^{n}f_i t_i\\ CPI & 执行一条指令所需时钟周期数\\ MIPS & 每秒执行百万条指令\\ FLOPS & 每秒浮点运算次数 \end{cases} 运算速度 主频核数吉普森法CPIMIPSFLOPS每个核支持的线程数TM=i=1nfiti执行一条指令所需时钟周期数每秒执行百万条指令每秒浮点运算次数

存储容量

存放二进制信息的总位数
存储容量 { 主存容量 { 存储单元个数 × 存储字长 如 M A R = 10 , M D R = 8 则 容量 = 1 K × 8 位( 1 K = 2 10 ) 字节数 辅存容量 字节数 存储容量 \begin{cases} 主存容量 & \begin{cases} 存储单元个数 \times 存储字长\\ \quad如 \quad MAR = 10,MDR = 8\\ \quad 则 \quad 容量 = 1K \times 8位 (1K = 2^{10})\\ \\ 字节数 \end{cases}\\ 辅存容量 & 字节数 \end{cases} 存储容量 主存容量辅存容量 存储单元个数×存储字长MAR=10,MDR=8容量=1K×8位(1K=210字节数字节数

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

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

相关文章

【报错】无法找到模块“element-plus/es/locale/index.mjs”的声明文件。

报错: 无法找到模块“element-plus/es/locale/index.mjs”的声明文件。“E:/codeAll/work/test1/test2/HealinLikeMe-ui/node_modules/.pnpm/element-plus2.7.3_vue3.4.27_typescript5.4.5_/node_modules/element-plus/es/locale/index.mjs”隐式拥有 "any&quo…

Linux笔记--vi编辑器

vi编辑器 基本操作 对于vi编辑器有这几种模式 移动 当编辑一个过大的文件时通过方向键移动光标过慢所以可以使用快捷键进行移动 编辑 dw指令只能在单词第一个字母处使用 D指令删除的是当前行 查找替换 pattern指代想要搜索的内容

056、PyCharm 快速代码重构的方法

在实际的编程过程中,如果有一段代码需要在多个地方重复使用,我们应该将这段代码封装成一个函数。这样可以提高代码的可重用性和可维护性。 在PyCharm编辑器里,可以使用以下操作对代码块进行快速的重构。 (1)、选中一…

【Photoshop】PS修改文字内容

Photoshop(PS)修改图片上文字内容,网上教材不少,本人整理实践过的方法,分享给各位。本人实践方法: 内容识别填充:适用于背景色复杂的图片内容修补工具:适用于背景色为纯色的图片 方式一:内容识…

java入门-文件与IO流

File类 提供一些方法(api)来操纵文件和获取文件的信息 File常用API 属性 获取系统分隔符 不同操作系统的分隔符 windows的目录分割符号是用向右的斜线,java中\ 表示转义字符,所以向右的斜线需要写两个 \; linux目录分割符号是向左的斜线: / private st…

Cocos2d-x 4.0 工程首次建立与编译(Mac m1)

Mac m1芯片下将cocos2d-x升级至4.0版本后,官方剔除了不同平台的工程以及变更了编译方式,直接使用cmake构建,需要做一些前置的准备工作。 环境准备: 项 版本 备注 MacOS10.3 or laterpython2.7.16(建议>2.7.10)cmake3.29.3Do…

自动驾驶场景下TCP协议参数优化调整案例分享

RTT 往返时间,从tcp协议栈决定发包,到收到回包的时间。 包含本地驱动,网卡硬件,网线,交换机,收包方处理的耗时。需注意如果开了delayed ack,协议栈未做特殊处理(默认没做&#xff…

探索交互的本质:从指令到界面的演进与Linux基础指令的深入剖析

目录 1.指令 vs 界面//选读 1.1交互的需求 满足需求的第一阶段-指令 满足需求的第二阶段-界面 1.2 指令 和 界面交互 区别 2.操作系统介绍 2.1 举例说明 驱动软件层 2.2 为什么要有操作系统? 0x03 为什么要进行指令操作? 3.Linux基本指令 l…

模型量化 剪枝bevfusion

量化 剪枝 shared mem 只在block内共享,device glob mem能够所有线程共享

从多线程设计模式到对 CompletableFuture 的应用

大家好,我是 方圆。最近在开发 延保服务 频道页时,为了提高查询效率,使用到了多线程技术。为了对多线程方案设计有更加充分的了解,在业余时间读完了《图解 Java 多线程设计模式》这本书,觉得收获良多。本篇文章将介绍其…

重塑IT审计的未来:数智化审计赋能平台的创新与实践

重塑IT审计的未来:数智化审计赋能平台的创新与实践 一、当前企业开展IT审计面临的挑战 随着信息技术的快速发展、企业数字化转型的持续深入,以及网络安全合规要求的不断增强,企业开展新型IT审计重要性越来越突出,但实施难度却越来…

统计信号处理基础 习题解答10-16

题目: 对于例10.1,证明由观察数据得到的信息是: 解答: 基于习题10-15的结论,,那么: 而根据习题10-15的结论: 此条件概率也是高斯分布,即: 根据相同的计算&a…

一文带你搞清楚AI领域的高频术语!RAG、Agent、知识库、向量数据库、知识图谱、Prompt...都是在讲啥?

随着AI人工智能技术的不断发展,一些领域有关的概念和缩写总是出现在各种文章里,像是Prompt Engineering、Agent 智能体、知识库、向量数据库、RAG 以及知识图谱等等,但是这些技术和概念也的的确确在AI大模型的发展中扮演着至关重要的角色。这…

使用 3D 图形 API 在 C# 中将 PLY 转换为 OBJ

OBJ和PLY是一些广泛使用的 3D 文件格式,易于编写和读取。这篇博文演示了如何以编程方式在 C# 中将 PLY 转换为 OBJ。此外,它还介绍了一种用于 3D 文件格式转换的在线3D 转换器。是的,Aspose.3D for .NET为程序员和非程序员提供了此功能来执行…

Day52 代码随想录打卡|二叉树篇---二叉搜索树中的众数

题目(leecode T501): 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数&#xff0c…

【深度学习】基于EANet模型的图像识别和分类技术

1.引言 1.1.EANet模型简介 EANet(External Attention Transformer)是一种深度学习模型,它结合了Transformer架构和外部注意力机制,特别适用于图像分类等计算机视觉任务。以下是关于EANet的详细解释: 1.1.1 定义与背…

Node.js版本管理工具-NVM

在开发 Node.js 项目时,经常会遇到需要切换不同版本的 Node.js 的情况。为了方便管理和切换各个版本,我们可以使用一些 Node.js 版本管理工具。 Node Version Manager:简称NVM,最流行的 Node.js 版本管理工具之一。它允许我们在同…

计算机体系结构重点学习(一)

从外部I/O与上层应用交互的整体软硬件过程 上层应用发出I/O请求:上层应用程序,如一个文本编辑器、网络浏览器或者任何软件应用,需要读取或写入数据时,会通过调用操作系统提供的API(如文件操作API、网络操作API等&…

Python学习打卡:day04

day4 笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了 目录 day428、while 循环的嵌套应用29、while 循环案例 — 九九乘法表补充知识示例:九九乘法表 30、for 循环基本语法while 和 for 循环对比f…

Android屏幕旋转流程(1)

(1)Gsensor的注册和监听 App -->I2C过程:App通过SensorManager.getSystemServer调用到SystemSensorManager,SystemSensorManager通过jni调用到SensorManager.cpp,后通过binder调用到SensorService。SensorService通…