计算机组成原理学习 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…

MySQL 考证作用

提升个人技能:参加MySQL考证的过程本身就是一个学习和提升的过程。考生需要系统地复习和掌握MySQL的相关知识和技能,这有助于提升个人的专业能力和技术水平。增强就业竞争力:在求职过程中,拥有MySQL认证证书可以作为一个加分项&am…

Github 2024-06-15 开源项目日报Top10

根据Github Trendings的统计,今日(2024-06-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C++项目3Python项目2TypeScript项目1Java项目1HTML项目1Vue项目1Go项目1JavaScript项目1C项目1ComfyUI:强大而模块化的稳定扩散GUI 创建周期:…

Gobject tutorial 三

Derivable type and abstract type Derivable type 在GLib中,类型可以分为两种。一种是可以被继承的(derivable),一种是不能被继承的(final)。二者的主要区别是,final 类型对象的类结构中,除了其父类外,再无其他成员…

Linux内核中的锁

不同的锁,作用对象是不一样的,也就是作用域不一样下面分别是作用于临界区、CPU、内存、cache 的各种锁的归纳: 补充:cache是一种缓存,包含硬件缓存(CPU缓存)以及软件缓存(网页缓存&a…

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…

C++中字符字面量的使用细节

C中字符字面量的使用细节 如何在 C中书写字符字面值:将字符用单引号括起,如M(注意,示例中没有使用双引号。C对字符用单引号,对字符串使用双引号。cout对象能够处理这两种情况,但正如第4章将讨论的,这两者有天壤之别)。…

【项目管理知识】挣值管理的概念与计算

【项目管理知识】挣值管理的概念与计算 四个基础概念:BAC、AC、PV、EV四个绩效概念:CV、CPI、SV、SPI四个延伸概念:ETC、EAC、非典型偏差、典型偏差挣值管理-非典型偏差挣值管理-典型偏差 完工尚需绩效指数:TCPI 四个基础概念&…

探索交互的本质:从指令到界面的演进与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审计重要性越来越突出,但实施难度却越来…

859.亲密字符串

给你两个字符串 s 和 goal ,只要我们可以通过交换 s 中的两个字母得到与 goal 相等的结果,就返回 true ;否则返回 false 。 交换字母的定义是:取两个下标 i 和 j (下标从 0 开始)且满足 i ! j &#xff0c…

【数据融合】基于卡尔曼滤波实现GPS-IMU数据融合附matlab代码

下面是一个简单的示例代码,用于基于卡尔曼滤波实现GPS-IMU数据融合的MATLAB实现: matlab % 初始化卡尔曼滤波器参数 dt 0.1; % 时间步长 A [1 dt; 0 1]; % 状态转移矩阵 B [0.5*dt^2; dt]; % 输入控制矩阵 H [1 0]; % 观测矩阵 Q eye(2); % 状态噪…

Python闯LeetCode--第2题:两数相加

Problem: 2. 两数相加 文章目录 思路解题方法复杂度Code 思路 看到这一题,第一反应是分别遍历两个链表,用列表来存储数,先把两个数的值拿到,转为具体数之后进行相加,再把两数相加值转为列表,再转为链表返回…