[学习笔记]《CSAPP》深入理解计算机系统 - Chapter 4 处理器体系结构Chapter 5 优化程序性能
总结一些第四章和第五章的一些关键信息
- Chapter 4 处理器体系结构
- 将处理组织成阶段
- Chapter 5 优化程序性能
Chapter 4 处理器体系结构
在硬件中,寄存器直接将它的输入和输出线连接到电路的其他盆。
在机器级变成中,寄存器代表的是 CPU
中为数不多的可寻址的字,这里的地址是寄存器的 ID
。这些字通常都存在寄存器文件中,虽然我们会看到硬件有时
可以直接将一个字从一个指令传到另一个指令,以避免先写寄存器文件再读出来的延迟。
-
寄存器(
Register
):
寄存器是CPU内部的小型、快速的存储单元。
它们用于存储指令、数据、地址等信息,以便快速访问和处理。
寄存器通常用于临时存储操作数、中间计算结果、地址等。
寄存器可以被看作是CPU内部的“工作区”,用于执行算术和逻辑运算。 -
寄存器文件(
Register File
):
寄存器文件是一组寄存器的集合,它们被组织在一起,形成一个存储结构。
寄存器文件通常包含多个寄存器,每个寄存器都有一个唯一的标识符或编号。
寄存器文件允许CPU通过寄存器的编号来访问和操作这些寄存器。
寄存器文件是CPU内部的一个物理结构,它实现了寄存器的物理存储和访问。
简单来说,寄存器是单个的存储单元,而寄存器文件是这些寄存器的集合。寄存器文件提供了一个结构化的方式来管理和访问多个寄存器。在CPU的设计中,寄存器文件是实现寄存器存储和访问的关键组件。
将处理组织成阶段
- 取指(
fetch
): 取指阶段从内存读取指令字节,地址为程序计数器(PC
)的值。 - 译码(
decode
): 译码阶段从寄存器文件读入最多两个操作数,得到值valA
和valB
。通常,它读入指令rA
和rB
字段指明的寄存器,不过有些指令是读寄存器%rsp
的。 - 执行(
execute
): 在执行阶段,算数/逻辑单元(ALU
)要么执行指令指明的操作,计算内存引用的有效地址,要么增加或减少栈指针,这个阶段会检验条件和传送条件,如果条件成立,则更新目标寄存器。 - 访存(
memory
): 访存阶段可以将数据写入内存,或者从内存读出数据。 - 写回(
write back
): 写回阶段最多可以写两个结果到寄存器文件 - 更新
PC
(PC update
): 将PC
设置成下一条指令的地址。
在计算机体系结构中,CPI(Cycles Per Instruction)
是一个重要的性能指标,它表示执行一条指令所需的时钟周期数。CPI是衡量计算机运算速度的一个指标,它与程序的编写、ISA指令集和计算机的架构有关。CPI
的值越低,意味着每条指令平均需要的时钟周期数越少,从而计算机的性能越高效。
Chapter 5 优化程序性能
1 g 00 0 m 00 0 k 000 = = 1 × 1 0 9 1_{g}000_{m}000_{k}000 == 1 \times 10^9 1g000m000k000==1×109
-
当表明一个系统有
4GHz
处理器,这表示处理器时钟运行频率为 4 × 1 0 9 4 \times 10^{9} 4×109个周期.每个始终周期的时间是始终频率的倒数。通常以纳秒(nanosecond
,1
纳秒的 1 0 − 9 10^{-9} 10−9秒)或皮秒(picosecond
,1
皮秒等于 1 0 − 12 10^{-12} 10−12秒)为单位.
一个4GHz
的时钟,其周期为0.25
纳秒或250
皮秒. -
在实际的处理器中,是同时对多条指令进行求值的,这个现象被称为指令级并行.但是存在两个下界描述了程序的最大性能
- 延迟界限:在下一条指令开始之前,这条指令必须结束
- 吞吐量界限: 处理器功能单元的原始计算能力。这个界限是程序性能的终极限制
-
SIMD
是"Single Instruction, Multiple Data"
的缩写,最新版本为AVX (advanced vector extension)
,指用单条指令对整个向量数据进行操作。具备特殊的寄存器,比如长为512
位长64
字节的寄存器,每个寄存器都可以存放8
个64
位数,16
个32
位数。(一般长4
个或8
个字节,分别对应32
位和64
位机器) -
在
CPU
架构中,CPE(Cycles Per Element)
是一个衡量处理器性能的指标,它表示处理器执行特定计算任务时,每个数据元素所需的平均时钟周期数。CPE
值越低,意味着处理器处理数据的效率越高。CPE
的计算公式为:CPE = Total Cycles / Number of Elements
,其中Total Cycles
是执行任务所需的总时钟周期数,Number of Elements
是处理的数据元素数量。
CPE
值通常不会低于0.5
,这主要是因为现代处理器的设计和工作方式。在执行计算任务时,即使是最简单的操作,如加载数据、执行算术操作或存储结果,也会涉及到多个时钟周期。例如,一个简单的浮点加法可能就需要多个周期来完成,包括取指令、执行指令、访存等步骤。此外,现代处理器的流水线和超标量设计允许在一个时钟周期内开始多条指令的执行,但这并不意味着每个元素的处理可以在一个时钟周期内完成。
相关文章:
[学习笔记]《CSAPP》深入理解计算机系统 - Chapter 4 处理器体系结构Chapter 5 优化程序性能
总结一些第四章和第五章的一些关键信息 Chapter 4 处理器体系结构将处理组织成阶段 Chapter 5 优化程序性能 Chapter 4 处理器体系结构 在硬件中,寄存器直接将它的输入和输出线连接到电路的其他盆。 在机器级变成中,寄存器代表的是 CPU 中为数不多的可寻…...
案例分享|我是这样转型做数据产品经理的?
本文为才聚学员投稿的原创作品,现在才聚正面向专业项目管理者征集“项目管理实战案例”原创文章,被采纳即可获得丰厚稿酬,欢迎大家关注公众号踊跃投稿。 如您有意向投稿,可将稿件投递给我们。 故事介绍 三段故事,讲…...

ffmpeg面向对象-rtsp拉流相关对象
目录 1.AVFormatContext和FFFormatContext类。1.1 概述1.2 构造函数1.3 oopc的继承实现 2. AVInputFormat 类。2.1 多态的实现 3.所用设计模式3.1模板模式3.2 工厂模式? 3.3 rtsp拉流建链 4.this指针5.小结6.rtsp拉流流程 1.AVFormatContext和FFFormatContext类。 …...
feign client发送Post请求,发送对象参数,服务端接收不到正确参数报错排查
记一次feignclient发送请求服务端接收不到正确参数排查 服务端代码: Operation(summary "Create team")PostMapping("post")RequiresPermissions("team:add")public RestResponse addTeam(Valid Team team) {this.teamService.crea…...

Hadoop林子雨安装
文章目录 hadoop安装教程注意事项: hadoop安装教程 链接: 安装教程 注意事项: 可以先安装ububtu增强功能,完成共享粘贴板和共享文件夹 ubuntu增强功能 2.这里就可以使用共享文件夹 或者在虚拟机浏览器,用 微信文件传输助手 传文…...

Springboot项目总结
1.为了调用写在其他包里面的类的方法 但是不使用new来实现调用这个类里面的方法,这个时候我们就需要将这个类注入到ioc容器里面,通过ioc容器来实现自动生成一个对象。 对ioc容器的理解:自动将一个对象实现new. 考察了and 和 or组合使用&…...
目标检测从入门到精通——数据增强方法总结
以下是YOLO系列算法(从YOLOv1到YOLOv7)中使用的数据增强方法的总结,包括每种方法的数学原理、相关论文以及对应的YOLO版本。 YOLO系列数据增强方法总结 数据增强方法数学原理相关论文图像缩放将输入图像缩放到固定大小(如448x44…...
SQL server 的异常处理 一个SQL异常 如何不影响其他SQL执行
在 SQL Server 中,存储过程中的 SQL 语句是顺序执行的。如果其中任何一个 SQL 语句遇到了错误或异常,那么默认情况下,这个错误会导致整个事务(如果有的话)回滚,并且存储过程会立即停止执行,不会…...

STM32——看门狗通俗解析
笔者在学习看门狗的视频后,对看门狗仍然是一知半解,后面在实际应用中发现它是一个很好用的检测或者调试工具。所以总结一下笔者作为初学小白对看门狗的理解。 主函数初始化阶段、循环阶段和复位 众所周知,程序的运行一般是这样的࿱…...

点亮第一盏LED灯 5): stm32CubeMX生成Keil代码
嵌入式入门,继续点亮第一盏LED灯,前面文章已经配置了GPIO引脚和时钟,那么基本上stm32CubeMX的配置就完成了,还有一点就是可以对PC13这个引脚起个别名, 这里起的别名是 LED_PC13,还有注意地方就是GPIO mode…...

ollama语言大模型部署使用
ollama语言大模型部署使用 前言一、下载安装maxkb1、下载解压赋权2、安装 二、安装ollamadocker运行 三、无需获取api_keymaxkb安装ollama模型对,就是这,你选好基础模型后,只需要给他地址,添加完成后自行调用ollama安装你选择好的…...

redis 基本数据类型—string类型
一、介绍 Redis 中的字符串,直接就是按照二进制数据的方式存储的,不会做任何的编码转换。 Redis对于 string 类型,限制了大小最大是512M 二、命令 SET 将 string 类型的 value 设置到 key 中。如果 key 之前存在,则覆盖&#…...
Git 使用教程:从入门到精通
Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 创建,用于有效、高速地处理从小到大的项目版本管理。本教程将带你从 Git 的安装开始,逐步学习到如何使用 Git 进行日常的版本控制操作。 安装 Git Windows 访问 Git 官方网站 下载 …...
ES查询的一些优化方式
ES查询的一些优化方式 filter和query Query会计算得分,filte不是, 整体上query会更耗时 字段方式: KEYWORD 和 text, Text检索的方式往往会占用更多性能,它往往需要伴随着模糊匹配和分词 分页的大小 From 和size的大小合理设置…...

计算左边(比自己小的元素)的最长距离
前言:一般做的题目都是使用单调栈来求出距离这个点最近的那个比这个数大或小的元素,但是如果是需要找到最远的那个元素呢?我们可以用到类似逆序对的思路,我们先进行排序从小到大,接着我们先处理左边,每次维…...

【C++算法】二分查找
二分查找 题目链接 二分查找https://leetcode.cn/problems/binary-search/ 算法原理 代码步骤 代码展示 class Solution { public:int search(vector<int>& nums, int target) {int left 0, right nums.size() - 1;while(left < right){// 防止溢出int mid …...

红日靶场通关
初始准备 首先是网络配置,看教程来的,我配置完的效果如下 windows7:(内:192.168.52.143 / 外:192.168.154.136) windows2003:(内:192.168.52.141)windows2008:(内:192.…...

用Python爬虫制作一个简易翻译器
我们通常是通过requestsBS4的方法来获取网页内容,这种方法导入模块较多,速度相对有点儿慢,此时我们可以用requests的post方法向指定服务器发送请求,获取数据后格式化为json,然后获取相关键值。这种方法用到了requests和…...

Shader Graph Create Node
一、Artistic 1、Adjustment 1)、Channel Mixer(通道混合) 根据权重对每个通道进行混合。 Contrast(对比度) 可调整对比度 调整对比度可以改变图像的鲜明度和层次感。增加对比度会使图像中的明暗差异更加显著,使图像看起来更加清晰、明亮;减少对比…...

共模干扰的形成和滤除
1、共模就是共同对地的干扰: 如图,我们可以看到共模的原理图。UPQ就是共模电压,ICM1 ICM2 就是共模电流。 ICM1 ICM2 大小不一定相同,方向相同。 2、共模信号和差模信号的区别: 通常电源线有三根线:火线L、…...

利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

WebRTC调研
WebRTC是什么,为什么,如何使用 WebRTC有什么优势 WebRTC Architecture Amazon KVS WebRTC 其它厂商WebRTC 海康门禁WebRTC 海康门禁其他界面整理 威视通WebRTC 局域网 Google浏览器 Microsoft Edge 公网 RTSP RTMP NVR ONVIF SIP SRT WebRTC协…...