计算机组成原理笔记(十五)——3.5指令系统的发展
不同类型的计算机有各具特色的指令系统,由于计算机的性能、机器结构和使用环境不同,指令系统的差异也是很大的。
3.5.1 x86架构的扩展指令集
x86架构的扩展指令集是为了增强处理器在多媒体、三维图形、并行计算等领域的性能而设计的。这些扩展指令集通过单指令多数据(SIMD)技术,实现高效的数据并行处理。
一、核心扩展指令集演进
x86扩展指令集的演进可以归纳为以下几个阶段:
二、关键扩展指令集详解
1. MMX(Multi Media eXtension)
-
目标:优化多媒体处理(视频/音频)。
-
特性:
- 引入64位寄存器(MM0~MM7),支持整数并行计算。
- 新增57条指令,支持打包整数运算(8×8位、4×16位、2×32位)。
-
示例(矩阵加法):
MOVQ MM0, [A] ; 加载64位数据A到MM0 MOVQ MM1, [B] ; 加载64位数据B到MM1 PADDW MM0, MM1 ; 16位整数并行相加
2. SSE(Streaming SIMD Extensions)
- 目标:增强浮点运算和数据处理能力。
- 特性:
- 新增128位XMM寄存器(XMM0~XMM7)。
- 支持单精度浮点数的SIMD操作(4×32位)。
- 指令类型:
3. SSE2/SSE3/SSSE3
- SSE2:支持双精度浮点数(2×64位)和整数的128位运算。
- SSE3:优化科学计算和线程同步(如水平加法指令
HADDPS
)。 - SSSE3:进一步扩展整数运算和随机数生成指令。
4. AVX(Advanced Vector Extensions)
-
目标:提升浮点性能和扩展数据宽度。
-
特性:
- 寄存器宽度扩展至256位(YMM寄存器),支持8×32位单精度浮点或4×64位双精度浮点。
- VEX编码:改进指令编码效率,支持三操作数指令(如
VADDPS YMM0, YMM1, YMM2
)。
-
流程图(矢量乘法累加FMA):
5. 其他扩展指令集
- 3DNow!(AMD):针对3D图形处理(向量点积、坐标变换)。
- FMA(Fused Multiply-Accumulate):熔合乘加运算,提升深度学习性能。
- AVX-512:进一步扩展至512位寄存器,支持复杂科学计算和AI模型训练。
三、硬件架构对比
不同扩展指令集的硬件支持差异:
指令集 | 寄存器宽度 | 数据类型 | 典型应用场景 |
---|---|---|---|
MMX | 64位 | 8/16/32位整数 | 视频解码 |
SSE | 128位 | 32位浮点 | 游戏物理引擎 |
AVX | 256位 | 64位浮点 | 科学计算、机器学习 |
AVX-512 | 512位 | 混合精度 | AI训练、金融建模 |
四、扩展指令集的作用与编程应用
-
性能提升:通过单指令处理多数据(SIMD),显著加速密集计算任务。
-
代码优化示例(SSE加速矩阵乘法):
#include <immintrin.h> void matrix_mult(float* A, float* B, float* C, int n) {for (int i=0; i<n; i++) {__m128 row = _mm_load_ps(&A[i*n]); // 加载一行数据for (int j=0; j<n; j++) {__m128 col = _mm_load_ps(&B[j]); __m128 prod = _mm_mul_ps(row, col);_mm_store_ps(&C[i*n+j], prod); }} }
-
编译选项:需开启指令集支持(如GCC的
-mavx2
)。
五、注意事项
- 兼容性:不同CPU代数支持的指令集不同(需通过
CPUID
指令检测兼容性)。 - 功耗:宽寄存器操作会增加功耗,需平衡性能与能效。
- 混合编程:通常结合内联汇编或特定编译器内部函数(如Intel Intrinsics)使用。
3.5.2 从复杂指令系统到精简指令系统
一、背景与设计思想
传统计算机设计中,指令系统随着硬件复杂度提升而变得庞大(CISC,Complex Instruction Set Computer)。但随着技术演进,研究发现了指令使用频度的“20%-80%定律”——即 80% 的时间仅执行 20% 的简单指令。这一观察推动了 RISC(Reduced Instruction Set Computer)的设计理念:通过精简指令集、简化硬件设计,提升效率。
二、CISC与RISC对比
1. 核心设计目标
- CISC目标:通过丰富指令集减少程序指令数,用硬件复杂度换取编程简化。
- RISC目标:精简指令集,通过提高单条指令执行速度(降低CPI)优化性能。
2. 特性对比
三、RISC的优化逻辑
-
硬件优化
- 单周期指令:绝大多数指令在1个时钟周期内完成。
- 流水线设计:通过并行执行消除资源闲置(如五级流水:取指、译码、执行、访存、写回)。
- 寄存器优化:增加通用寄存器数量(常达32个以上),减少访存开销。
-
编译器优化
- 延迟槽调度:填充流水线空闲周期,避免因分支指令导致的流水线停顿。
- 寄存器分配优化:最大化利用寄存器,减少内存访问。
四、关键性能公式
程序执行时间 t t t 可表示为:
t = I × C P I × T t = I \times CPI \times T t=I×CPI×T
- I I I:程序总指令数(CISC更小,RISC稍大)。
- C P I CPI CPI:平均每条指令周期数(RISC接近1,CISC更高)。
- T T T:时钟周期时间(RISC较短)。
示例对比:
类型 | 平均指令数(I) | 平均CPI | 时钟周期(T) | 性能优势 |
---|---|---|---|---|
CISC | 1000 | 4 | 1ns | 低 |
RISC | 1500 | 1 | 0.8ns | 高 |
五、典型架构与应用
-
CISC代表:x86架构(Intel/AMD)。
- 特点:兼容性强,适合复杂应用(如Windows系统、服务器负载)。
-
RISC代表:ARM架构(移动设备)、RISC-V(开源嵌入)。
- 特点:低功耗、高性能,广泛用于手机(如苹果A系列芯片)、IoT设备。
- 特点:低功耗、高性能,广泛用于手机(如苹果A系列芯片)、IoT设备。
六、总结:CISC与RISC的平衡
现代架构(如x86-64)融合两者特性:
- 硬件层面:兼容CISC指令,但内部微码转为RISC风格操作。
- 软件层面:编译器优化生成更高效的指令序列。
3.5.3 VLIW 和EPIC
VLIW(Very Long Instruction Word,超长指令字)和 EPIC(Explicit Parallel Instruction Code,显式并行指令代码)是两种以编译器驱动的并行指令处理技术,通过静态调度实现高效指令级并行。
一、核心概念与设计目标
-
VLIW
- 原理:将多个独立的简单指令组合成一条超长指令字(通常128~256位),运行时分解到多个功能单元并行执行。
- 特点:
- 编译器负责分析指令间并行性和数据依赖,确定可并行执行的指令组合。
- 硬件简化:无需动态调度(如超标量的乱序执行),降低电路复杂度。
- 示例:将4条独立指令合并为1条VLIW指令。
-
EPIC
- 衍生于VLIW:由Intel和HP联合设计,强调显式并行性(由编译器显式标记并行指令)。
- 目标:克服传统分支预测和数据依赖的局限性,减少流水线中断。
- 代表架构:Intel IA-64(Itanium系列)。
二、核心技术与执行流程
1. VLIW的执行流程
- 关键要点:
- 组合条件:指令间无数据依赖。
- 硬件架构:包含多个独立执行单元(如ALU、FPU、内存单元等),并行处理超长指令中的子指令。
2. EPIC的优化与指令束
EPIC将显式并行性和高级分支处理结合:
-
并行指令束(Instruction Bundle):每个指令束包含3条不相关的指令(128位)。
-
分支判定技术:
- 相比传统分支预测,无需清空流水线,提高稳定性。
EPIC执行流程(以IA-64为例)
三、关键技术与对比
1. 核心功能特性
技术 | 并行方式 | 调度主体 | 硬件复杂度 | 编译器角色 |
---|---|---|---|---|
VLIW | 静态组合指令束 | 编译器 | 低(无动态调度) | 分析并行与依赖关系 |
EPIC | 显式标记并行性 | 编译器 | 中等(支持动态检测) | 显式打包指令束 |
超标量 | 动态调度多指令 | 硬件 | 高(乱序执行) | 无直接控制 |
2. 创新技术
- 数据推测装载:预加载可能需要的缓存数据,减少访存延迟。
- 分支判定技术:同时执行多路径分支,避免预测错误开销。
- 大规模寄存器:减少访存依赖(如Itanium的128个整数和浮点寄存器)。
四、与传统架构的对比如表
架构 | CISC | RISC | VLIW/EPIC |
---|---|---|---|
设计 | 复杂指令,硬件微码 | 精简指令,硬布线控制 | 超长指令束,编译器显式调度 |
并行性 | 序列化执行 | 流水线/超标量 | 静态或显式并行 |
硬件 | 复杂控制逻辑 | 简单控制逻辑 | 功能单元多,逻辑简单 |
优势 | 指令密度高 | 执行效率高 | 并行度高,低功耗 |
劣势 | 难以并行优化 | 依赖动态调度 | 编译器复杂,适应性弱 |
五、应用场景与限制
- 适用领域:科学计算、大规模并行处理(如AI训练、金融建模)。
- 限制:
- 编译器依赖:需智能编译器发现并打包并行指令。
- 代码灵活性差:动态生成代码难以优化。
- 缓存需求大:超长指令束占用较大缓存空间。
相关文章:
计算机组成原理笔记(十五)——3.5指令系统的发展
不同类型的计算机有各具特色的指令系统,由于计算机的性能、机器结构和使用环境不同,指令系统的差异也是很大的。 3.5.1 x86架构的扩展指令集 x86架构的扩展指令集是为了增强处理器在多媒体、三维图形、并行计算等领域的性能而设计的。这些扩展指令集通…...
Rust 中的Relaxed 内存指令重排演示:X=0 Y=0 是怎么出现的?
🔥 Rust 中的内存重排演示:X0 && Y0 是怎么出现的? 在并发编程中,我们经常会听说“内存重排(Memory Reordering)”这个术语,但它似乎总是只出现在理论或者别人口中的幻觉里。本文将通过…...
vp 2023 icpc 合肥 解题补题记录 [F E J G]
gym 链接: https://codeforces.com/gym/104857 F. Colorful Balloons 血签, 用 map 存一下每个颜色气球出现的次数, 找出出现次数大于一半的颜色. #include<bits/stdc.h> using namespace std;#define int long long #define endl \nsigned main() {int n;cin >> …...
学习SqlSugar的跨库查询基本用法
使用SqlSugar操作数据库通常都是单库操作,跨库查询的情况要么是单个系统数据不完整,需要其它系统的关联业务数据支撑,要么就是需要整合汇总多个系统的数据进行数据数据分析、处理、展示。遇到上述情况,可以要求另外的系统提供查询…...
智慧工厂可视化系统,赋能工业生产智能化升级
借助图扑软件 HT 搭建智慧工厂可视化系统。利用先进 3D 建模,对工厂布局、设备运行、生产流程进行逼真复刻。实时展示设备状态、生产进度、质量检测数据等,助力管理者精准洞察生产,高效决策,推动工厂智能化转型。...
案例驱动的 IT 团队管理:创新与突破之路: 第四章 危机应对:从风险预见到创新破局-4.1.2债务评估模型与优先级排序
👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 4.1.2 技术债务评估模型与优先级排序:构建智能决策体系一、技术债务的"冰山效应"与量化困境二、三维评估模型:穿透债务迷雾的探照灯2.1 评…...
nfs共享目录主配置文件权限参数
/etc/exports 文件默认为空文件,需要输入nfs共享命令 格式:共享目录的路径 允许访问的NFS客户端(共享权限参数) #编辑共享目录配置文件(即/etc/exports) [rootserver ~]# mkdir /nfs_share (创建共享的目录…...
C++ 编程指南35 - 为保持ABI稳定,应避免模板接口
一:概述 模板在 C 中是编译期展开的,不同模板参数会生成不同的代码,这使得模板类/函数天然不具备 ABI 稳定性。为了保持ABI稳定,接口不要直接用模板,先用普通类打个底,模板只是“外壳”,这样 AB…...
探索 MCP 和 A2A 协议: 本质上新协议都基于 HTTP的
以下是以 CSDN 博客的形式记录你对 MCP 协议和 A2A 协议数据传递的理解,重点探讨了它们为何基于 HTTP 协议、HTTP 的优势,以及数据传输的本质。文章面向技术社区,结构清晰,适合分享。 探索 MCP 和 A2A 协议:为何新协议…...
Linux网络http与https
应用层协议HTTP 提示 因为现在大多数都是https,所以就用https来介绍http,https比http多了一个加密功能,不影响介绍http。 什么是http 虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的…...
C++ 算法(2):STL list 完全解析,从入门到高效使用
1. list概述 std::list是C标准模板库(STL)中的一个双向链表容器。与vector和deque不同,list不支持随机访问,但它在任何位置插入和删除元素都非常高效,时间复杂度为O(1)。 2. list的基本特性 双向链表结构:每个元素都包含指向前驱…...
【Linux实践系列】:匿名管道收尾+完善shell外壳程序
🔥 本文专栏:Linux Linux实践项目 🌸作者主页:努力努力再努力wz 💪 今日博客励志语录: 人生总会有自己能力所不及的范围,但是如果你在你能力所及的范围尽了全部的努力,那你还有什么遗…...
Linux基本指令2
1.head 查看文件的前面内容 head 路径 :查看路径开头部分内容,如下图:head /var/log/messages查看/var/log/messages这个日志中前面内容 head -数字 路径 :查看路径开头指定数字行部分内容,如下图:he…...
Tkinter使用Canvas绘制图形
在Tkinter中,Canvas是一个非常强大的控件,用于绘制图形、显示图片和实现自定义图形界面。通过Canvas,您可以绘制各种形状、线条、文本等,并且能够进行灵活的动画和交互。掌握Canvas的使用将使您能够创建丰富的图形界面。 8.1 创建Canvas控件 Canvas控件是一个区域,用于绘…...
CF985G Team Players
我敢赌,就算你知道怎么做,也必然得调试半天才能 AC。 [Problem Discription] \color{blue}{\texttt{[Problem Discription]}} [Problem Discription] 图片来自洛谷。 [Analysis] \color{blue}{\texttt{[Analysis]}} [Analysis] 显然不可能正面计算。所以…...
ngx_conf_read_token - events
file_size ngx_file_size(&cf->conf_file->file.info); 获取 配置文件的大小 此时 file_size364 for ( ;; ) {if (b->pos > b->last) { 此时 b->pos 0x5cd4701487e4 b->last 0x5cd47014893c b->start0x5cd4701487d0 条件不成立 ch *b->pos;…...
L2范数与权重衰退
权重衰退 定义损失函数 $ \ell(\mathbf{w}, b) $ 来衡量模型的预测值与真实值的差距 使用L2范数作为硬性限制 通过限制参数值的选择范围来控制模型容量 min ℓ ( w , b ) s u b j e c t t o ∥ w ∥ 2 ≤ θ \min \ell(\mathbf{w}, b) \quad \\ subject \ to \|\mathbf{w…...
计算机组成原理笔记(十四)——3.4指令类型
一台计算机的指令系统可以有上百条指令,这些指令按其功能可以分成几种类型,下面分别介绍。 3.4.1数据传送类指令 一、核心概念与功能定位 数据传送类指令是计算机指令系统中最基础的指令类型,负责在 寄存器、主存、I/O设备 之间高效复制数…...
GM DC Monitor v2.0 数据中心监控预警平台-CMDB使用教程(第九篇)
SNMP配置管理功能使用手册 本模块主要用于导入设备厂家的mib库文件,也可以手工创建对应的oid信息,用以实现设备的被动监控功能。 另:系统部署完毕后,已经集成了个别厂家的MIB库数据。 设计思路及使用教程 设计思路:通…...
try-with-resources 详解
try-with-resources 详解 一、基本概念 try-with-resources 是 Java 7 引入的语法结构,用于自动管理资源(如文件流、数据库连接等需要关闭的对象)。 核心特点 自动资源释放:无需手动调用 close() 简洁代码:减少 tr…...
第二十四:查看当前 端口号是否被占用
查看当前 端口号是否被占用: mac 情况下: lsof -i :端口号 netstat -an | grep 端口号 系统将显示监听该端口的进程信息,包括进程名称、进程ID、用户和协议等。如果需要更多信息,可以添加-P和-n参数,例如…...
【数据结构与算法】——堆(补充)
前言 上一篇文章讲解了堆的概念和堆排序,本文是对堆的内容补充 主要包括:堆排序的时间复杂度、TOP 这里写目录标题 前言正文堆排序的时间复杂度TOP-K 正文 堆排序的时间复杂度 前文提到,利用堆的思想完成的堆排序的代码如下(包…...
【Web功能测试】Web商城搜索模块测试用例设计深度解析
Web商城的搜索模块功能测试用例设计 1.搜索功能设计 1.1 搜索框设计 位置显眼:通常置于页面顶部中央,符合用户习惯。 智能提示(Autocomplete):输入时实时推荐关键词、商品或分类(如“手机 苹果”&#x…...
ubuntu 18.04安装tomcat,zookeeper,kafka,hadoop,MySQL,maxwell
事情是这样的,因为昨天发现我用的ubuntu16.04官方不维护了,以及之前就觉得不是很好用,于是升级到了18.04。如图: 但是!由于为备份升级前忘记关闭服务,上面装好的东西所剩无几。 于是我重装了。。。 如何启…...
设计模式(结构型)-享元模式
摘要 在软件开发的广阔领域中,随着系统规模的不断膨胀,资源的有效利用逐渐成为了一个至关重要的议题。当一个系统中存在大量相似的对象时,如何优化这些对象的管理,减少内存的占用,提升系统的整体性能,成为了…...
1.1显存
显存是显卡(GPU)专用的高性能内存,负责存储渲染所需的纹理、帧缓冲、几何数据等。其设计直接影响图形性能、分辨率和复杂场景处理能力 苹果统一内存(Unified Memory)、集成显卡共享内存(Integrated Graphi…...
C# 选择文件的路径、导出文件储存路径
1、选择导入文件,获取其路径 C#通过这段代码将弹出一个文件选择对话框,允许用户选择一个文件,并返回所选文件的完整路径。如果用户取消了选择,则直接返回结束函数。 string OpenFilePath;//存储选择到的文件的完整路径OpenFileDia…...
【最后203篇系列】027 基于消息队列的处理架构
起因 之所以写这篇文章,主要是梳理一下进展。因为同时研究好几块内容,切换起来要点时间。这次也是因为协作的同事们把各自的分工都搞定了,瓶颈反而在我自己这里,哈哈。 除了帮自己思路恢复过来,我觉得这方法可能也有…...
多线程与Tkinter界面交互
在现代图形用户界面(GUI)应用程序中,可能会遇到需要长时间运行的任务,例如网络请求、数据处理或文件读取等。如果这些任务直接在主线程中运行,会导致GUI界面“卡顿”或“不响应”。为了保持界面流畅和响应用户操作,我们可以通过使用多线程来将这些任务移到后台运行。然而…...
【工程开发】LLMC准确高效的LLM压缩工具(一)
【文献阅读】LLMC: Benchmarking Large Language Model Quantization with a Versatile Compression Toolkit 北航 2024年10月 摘要 大语言模型(LLMs)的最新进展凭借其卓越的涌现能力和推理能力,正推动我们迈向通用人工智能。然而&#…...
回顾CSA,CSA复习
RHCSA redhat certificate system Administrator RHCE redhat certificate engineer 回顾CSA 文件管理 创建文件:touch 、重定向、vim 阅读文件:cat看短小的文件、vim、head看文件前面部分、tail看文件的尾部内容、more、less看文档使用more和less…...
基于电子等排体的3D分子生成模型 ShEPhERD - 评测
一、背景介绍 ShEPhERD 是一个由 MIT 开发的一个 3D 相互作用感知的 ligand-based的分子生成模型,以 arXiv 预印本的形式发表于 2024 年,被ICLR2025 会议接收。文章链接:https://openreview.net/pdf?idKSLkFYHlYg ShEPhERD 是一种基于去噪扩…...
平凡日子里的挣扎
2025年4月13日,9~23℃,好 待办: 融智云考平台《物理》《物理2》~~《地理》《地理1》~~重修试卷 卫健委统考监考(2025年4月12日早上7点半) 冶金《物理》课程标准 冶金《物理》教案 期中教学检查——自查表材料ÿ…...
智能制造方案精读:117页MES制造执行系统解决方案【附全文阅读】
本方案围绕制造执行系统(MES)展开,阐述了智能制造相关概念及发展趋势,指出 MES 是连接 ERP 与生产现场的关键系统。介绍其在加工、装配及其他场景的应用,通过实例展示各场景下的功能、特点和实施效果,如实现生产信息可视化、产品追溯、设备监控等。还提及实施 MES 面临的…...
[推荐]AI驱动的知识图谱生成器(AI Powered Knowledge Graph Generator)
网址:https://github.com/robert-mcdermott/ai-knowledge-graph# 一、介绍 简介:以非结构化文本文档为输入,使用您选择的LLM以主语-谓语-宾语 (SPO) 三元组的形式提取知识,并将这些关系可视化为交互式知识图谱 特点:…...
波束形成(BF)从算法仿真到工程源码实现-第七节-关于波束10个基本概念
一、波束10个基本概念 1.作用: 对多路麦克风信号进行合并处理,抑制非目标方向的干扰信号,增强目标方向的声音信号。 2.原理: 调整相位阵列的基本单元参数,使得某些角度的信号获得相长干涉,而另一些角度的…...
深度学习(第一集)
123 import torch# 创建一个需要计算梯度的张量 x1 torch.tensor([2.0], requires_gradTrue)# 定义一个简单的函数 y x^2 y x1 ** 4# 计算梯度 y.backward()print("x1.grad 的值:", ) # 打印 x1.grad print("x1.grad 的值:", x1…...
Spring 事务传播行为
在Spring框架中,事务传播行为(Transaction Propagation)定义了事务在多个方法调用之间的行为方式。理解这些传播行为对于设计可靠的事务管理策略至关重要。以下是Spring支持的七种事务传播行为及其应用场景的详细说明: 1. REQUIRED(默认) 行为:如果当前存在事务,则加入…...
搬运机器人的基本工作场景及原理
搬运机器人广泛应用于工业生产中,主要用于搬运、堆放、装配等工作。它通过机械手臂的运动,结合机器视觉技术完成各种自动化作业。 一、搬运机器人的设计原理 搬运机器人通常采用可移动门架式结构,手臂承载机构安装在导轨上,可以沿…...
Ubuntu终端中常用的快捷键整理
1. 导航与编辑 光标移动: Ctrl A:跳转到行首。 Ctrl E:跳转到行尾。 Alt B:向左移动一个单词(或 Ctrl ←)。 Alt F:向右移动一个单词(或 Ctrl →)。 删除操作…...
mysql安装-MySQL MGR(Group Replication)+ ProxySQL 架构
文章目录 前言一、环境规划二、安装 MySQL 8.0.36(主库,CentOS 9)2.1 添加 Yum 源2.2 安装 MySQL 8.0.362.3 初始化 三、配置主库 my.cnf(192.168.1.101)四、(可选)创建远程可访问的用户&#x…...
Opencv使用cuda实现图像处理
main.py import os import cv2 print(fOpenCV: {cv2.__version__} for python installed and working) image cv2.imread(bus.jpg) if image is None:print("无法加载图像1") print(cv2.cuda.getCudaEnabledDeviceCount()) cv2.cuda.setDevice(0) cv2.cuda.printCu…...
ubuntu 安装samba
ubuntu 版本:Ubuntu 24.04.2 LTS 1. 保证连网 2. 安装samba sudo apt install samba 在安装结束以后,我们可以使用下面的命令来查看安装: apt list | grep samba freeipa-client-samba/noble 4.11.1-2 amd64 ldb-tools/noble 2:2.8.0samba…...
山东大学软件学院创新项目实训开发日志(12)之将对话记录保存到数据库中
在之前的功能开发中,已经成功将deepseekAPI接口接入到springbootvue项目中,所以下一步的操作是将对话和消息记录保存到数据库中 在之前的开发日志中提到数据库建表,所以在此刻需要用到两个表,conversation表和message表ÿ…...
欢乐力扣:反转链表二
文章目录 1、题目描述2、思路 1、题目描述 反转链表二。 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 2、思路 参考官方题解,基本思路…...
【CS*N是狗】亲测可用!!WIN11上禁用Chrome自动更新IDM插件
现象:每次打开chrome后IDM会弹出提示插件版本不一致。经过排查后发现是chrome把IDM插件给更新了,导致IDM提示版本不匹配。经过摸索后,得到了可行的方案。 第一步,打开Chrome,把IDM插件卸载掉,然后重新安装I…...
Linux:DNS服务配置(课堂实验总结)
遇到的问题,都有解决方案,希望我的博客能为你提供一点帮助。 操作系统:rocky Linux 9.5 一、配置DNS服务器的核心步骤 步骤 1:安装 BIND 软件 检查是否安装: rpm -qa | grep "^bind"…...
啥是Spring,有什么用,既然收费,如何免费创建SpringBoot项目,依赖下载不下来的解决方法,解决99%问题!
一、啥是Spring,为啥选择它 我们平常说的Spring指的是Spring全家桶,我们为什么要选择Spring,看看官方的话: 意思就是:用这个东西,又快又好又安全,反正就是好处全占了,所以我们选择它…...
【LeetCode】算法详解#4 ---合并区间
1.题目介绍 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 1 < intervals.length < 104interval…...
安装树莓派3B+环境
目录 一、安装树莓派3B环境 1.1 格式化SD卡 1.2 环境安装与配置 1.2.1 安装Raspberry Pi 1.2.2 SSH访问树莓派 1.3 创建用户账号 二、在树莓派上用C和Python编程运行一个简单的程序 2.1 C语言程序 2.2 Python程序 三、总结 树莓派是一款功能强大的微型计算机…...