【计算机架构】CISC(复杂指令集计算机)架构
一、引言
在计算机技术领域中,计算机架构是基石,决定着计算机系统的性能、功能和效率。CISC(复杂指令集计算机)架构作为一种经典的计算机架构,自诞生以来就在计算机发展历程中扮演着举足轻重的角色。从早期的大型计算机到如今的部分通用计算机系统,CISC架构的影响无处不在。它以丰富多样的指令集为特点,旨在通过提供高度复杂的指令来简化编程任务,同时也在不同的历史时期适应着计算机应用场景的不断演变。理解CISC架构,探究计算机系统的内在工作原理,把握计算机技术发展的脉络。
二、CISC架构定义
CISC架构是一个复杂而有序的体系。在最底层,硬件层包括中央处理器(CPU)、内存、输入输出(I/O)设备等基本硬件组件。CPU是CISC架构的核心,它包含控制单元、算术逻辑单元(ALU)和各种寄存器等部件。控制单元负责从内存中读取指令并进行译码,指挥整个计算机系统的操作;ALU则负责执行算术和逻辑运算。
往上一层是指令集层,这是CISC架构的关键特征所在。CISC的指令集庞大且复杂,包含了大量不同功能和复杂程度的指令。这些指令可以直接操作内存中的数据、执行复杂的算术和逻辑运算、进行数据的移动和转换等。指令的长度不固定,不同指令可能具有不同的格式和操作数数量。
再往上是操作系统层,操作系统负责管理计算机的硬件资源,为应用程序提供一个统一的运行环境。在CISC架构下,操作系统需要处理复杂的指令集相关的各种操作,如内存管理、进程调度等,并且要与CISC架构的硬件特性相适配,以实现高效的系统运行。
最上层是应用程序层,各类软件应用程序在此层运行。由于CISC架构的指令集丰富,应用程序开发者可以利用这些复杂的指令来实现各种功能,不过也需要考虑到CISC架构的一些特性,如指令执行的效率、内存访问的开销等。
三、CISC架构发展历史
(一)早期起源
CISC架构的起源可以追溯到计算机发展的早期阶段。在计算机诞生之初,硬件成本高昂,计算机的处理能力相对有限。为了在有限的硬件资源下尽可能提高计算机的功能和实用性,设计者们倾向于在指令集中加入更多功能强大且复杂的指令。例如,早期的大型机为了满足科学计算、数据处理等多种需求,将一些经常使用的复杂操作(如多精度算术运算、字符串处理等)直接设计成单条指令。这种设计思想使得程序员能够用较少的指令来完成复杂的任务,从而提高了编程效率。
(二)发展中的关键节点
1. 微处理器时代的兴起
随着半导体技术的发展,微处理器开始出现并逐渐普及。CISC架构在微处理器领域也得到了广泛应用。英特尔公司的x86系列处理器是CISC架构微处理器的典型代表。在这个时期,CISC架构不断发展,以适应日益增长的个人计算机和小型计算机市场需求。例如,x86处理器不断增加新的指令,以支持图形处理、多媒体应用等新兴功能。
2. 应对竞争与优化
面对其他计算机架构(如RISC架构)的竞争,CISC架构也在不断进行优化。在20世纪末到21世纪初,CISC架构处理器开始采用一些新技术来提高性能。如指令流水线技术,它将指令的执行过程分解为多个阶段,使得不同指令可以在不同阶段同时执行,从而提高了CPU的吞吐量。此外,缓存技术也得到了广泛应用,通过在CPU内部设置高速缓存,减少了CPU访问内存的时间,提高了数据的访问速度。
四、CISC架构特点
(一)指令集的复杂性
大量指令
CISC架构的指令集包含众多不同功能的指令。这些指令涵盖了从简单的算术运算(如加法、减法)到复杂的操作(如浮点运算、字符串处理等)。例如,一条指令可能用于直接计算一个复杂的数学函数,或者对一长串字符进行特定的操作,如查找、替换等。
可变指令长度
指令的长度在CISC架构中是不固定的。不同的指令可能具有不同的字节长度,这取决于指令的功能和操作数的数量。例如,一条简单的寄存器间的加法指令可能只需要几个字节,而一条复杂的内存到内存的数据块移动指令可能需要十几个字节。
(二)硬件实现的复杂性
复杂的微程序控制
由于指令集的复杂性,CISC架构通常采用微程序控制方式。微程序是一组微指令的集合,它存储在CPU内部的控制存储器(CM)中。当执行一条复杂指令时,控制单元会从CM中读取一系列微指令来完成该指令的操作。这种方式增加了硬件设计的复杂性,但也为实现复杂的指令功能提供了灵活性。
较多的硬件资源需求
为了实现丰富的指令集功能,CISC架构需要更多的硬件资源。例如,需要更多的寄存器来存储指令执行过程中的中间结果,更多的电路来实现不同指令的译码和执行逻辑。这使得CISC架构的CPU芯片在设计和制造上相对复杂,成本也较高。
(三)对内存的依赖
内存访问频繁
CISC架构的许多指令可以直接操作内存中的数据。这虽然方便了编程,但也导致了频繁的内存访问。例如,一条指令可能直接从内存中读取两个操作数进行加法运算,然后再将结果写回内存。频繁的内存访问会增加内存与CPU之间的通信开销,尤其是当内存速度跟不上CPU速度时,会成为系统性能的瓶颈。
分析维度 | 具体特征 | 描述 | 示例 |
---|---|---|---|
指令集的复杂性 | 大量指令 | CISC 架构指令集涵盖多种功能,从简单算术运算到复杂操作均有涉及 | 可直接计算复杂数学函数,或对长字符串进行查找、替换操作 |
指令集的复杂性 | 可变指令长度 | 指令长度不固定,依指令功能和操作数数量而定 | 简单寄存器间加法指令可能只需几个字节,复杂内存到内存数据块移动指令可能需十几个字节 |
硬件实现的复杂性 | 复杂的微程序控制 | 因指令集复杂,采用微程序控制,微程序存于 CPU 内部控制存储器,执行复杂指令时读取一系列微指令 | 执行复杂指令时,控制单元从控制存储器读取微指令完成操作 |
硬件实现的复杂性 | 较多的硬件资源需求 | 为实现丰富指令集功能,需更多硬件资源,如寄存器和电路 | 需更多寄存器存储中间结果,更多电路实现指令译码和执行逻辑 |
对内存的依赖 | 内存访问频繁 | 许多指令可直接操作内存数据,导致频繁内存访问 | 一条指令可直接从内存读取两个操作数进行加法运算,再将结果写回内存 |
五、CISC架构细分类型
(一)传统CISC
架构特点
传统CISC架构具有指令集非常庞大、指令功能高度复杂、硬件实现基于微程序控制等典型特点。例如,早期的大型计算机采用的CISC架构,其指令集包含了数百条不同功能的指令,许多指令的执行需要多个时钟周期,并且依赖于复杂的微程序来控制指令的执行顺序和操作。
应用场景
传统CISC架构主要应用于大型计算机系统,用于处理复杂的科学计算、大规模数据处理等任务。在早期的企业级数据中心、科研机构的大型计算设备中,传统CISC架构能够发挥其指令集丰富的优势,满足复杂的计算需求。
(二)现代CISC(以x86架构为代表)
架构灵活性改进
现代CISC架构在保持指令集丰富的基础上,进行了许多改进以提高性能和灵活性。以x86架构为例,它引入了诸如指令流水线、超标量执行、多线程等技术。指令流水线将指令的执行过程划分为多个阶段,使得不同指令可以在不同阶段并行执行;超标量执行允许CPU在一个时钟周期内执行多条指令;多线程技术则提高了CPU在多任务处理时的效率。
广泛的商业应用
现代CISC架构(x86)在个人计算机、服务器等领域得到了广泛的应用。在个人计算机领域,几乎所有的桌面电脑和笔记本电脑都采用x86架构的处理器,这使得x86架构在办公软件、游戏、多媒体应用等方面具有广泛的兼容性。在服务器领域,x86架构的服务器也占据了很大的市场份额,用于处理企业的网络服务、数据库管理等任务。
分类 | 描述 | 具体内容 | 示例 |
---|---|---|---|
传统 CISC | 架构特点 | 指令集庞大、指令功能复杂、基于微程序控制硬件实现 | 早期大型计算机的指令集包含数百条指令,执行需多个时钟周期,依赖复杂微程序控制 |
传统 CISC | 应用场景 | 主要用于大型计算机系统,处理复杂科学计算、大规模数据处理任务 | 早期企业级数据中心、科研机构的大型计算设备 |
现代 CISC(以 x86 架构为代表) | 架构灵活性改进 | 在保持指令集丰富的基础上,引入指令流水线、超标量执行、多线程等技术 | 指令流水线将指令执行过程划分为多个阶段,不同指令可并行执行;超标量执行允许一个时钟周期内执行多条指令;多线程技术提高多任务处理效率 |
现代 CISC(以 x86 架构为代表) | 广泛的商业应用 | 在个人计算机、服务器等领域广泛应用 | 个人计算机领域,几乎所有桌面电脑和笔记本电脑都采用 x86 架构处理器,适用于办公软件、游戏、多媒体应用;服务器领域,x86 架构服务器用于处理企业的网络服务、数据库管理等任务 |
六、CISC架构的优缺点
(一)优点
编程的便利性
丰富的指令集使得程序员可以用较少的指令来完成复杂的任务。例如,在进行复杂的数学计算或字符串处理时,CISC架构中的一条指令可能就能够替代RISC架构中多条简单指令的组合。这对于编写复杂的应用程序,尤其是那些需要处理大量数据和复杂算法的程序,如数据库管理系统、图形处理软件等,可以提高编程效率。
良好的兼容性
CISC架构由于其长期的发展历史和广泛的应用,具有很好的兼容性。以x86架构为例,多年来一直保持向后兼容,这意味着旧版本的软件仍然可以在新版本的x86处理器上运行。这种兼容性使得企业和用户在升级计算机系统时无需担心软件的兼容性问题,降低了升级成本。
(二)缺点
硬件复杂性和成本
如前所述,CISC架构的硬件实现复杂,需要更多的硬件资源。这导致了CPU芯片的设计和制造难度增加,成本也相对较高。同时,复杂的硬件结构也使得CPU的功耗较大,对于一些对功耗敏感的应用场景(如移动设备)不太友好。
性能提升的局限性
尽管CISC架构采用了一些技术来提高性能,如指令流水线和缓存技术,但由于指令集的复杂性,在某些情况下仍然存在性能提升的瓶颈。例如,复杂指令的执行可能需要多个时钟周期,而且由于指令长度不固定,指令的译码和取指过程相对复杂,这会影响CPU的执行效率,尤其是在处理一些简单而频繁的操作时,可能不如RISC架构高效。
七、CISC架构的案例
(一)英特尔x86系列处理器
指令集的应用
x86系列处理器拥有庞大的指令集,其中包括了基本的算术逻辑指令、浮点运算指令、多媒体指令(如MMX、SSE等指令集扩展)等。在多媒体应用中,SSE指令集可以用于加速图像、音频和视频的处理。例如,在视频编码软件中,SSE指令可以高效地进行数据的并行处理,如同时对多个像素点进行颜色转换、滤波等操作。
在不同领域的应用
在个人计算机领域,x86处理器广泛应用于桌面电脑、笔记本电脑等设备。它为各种操作系统(如Windows、Linux等)和应用程序(如办公软件、游戏等)提供了强大的计算支持。在服务器领域,x86服务器处理器也占据了重要地位,用于处理企业级的网络服务、数据库管理、云计算等任务。例如,在大型数据中心,x86服务器可以通过多核心、多线程技术处理海量的数据请求。
(二)IBM大型机的CISC架构
指令集的特点与应用
IBM大型机的CISC架构指令集针对企业级数据处理和大型计算任务进行了优化。其指令集包含了许多用于处理大规模数据的指令,如对大型数据库进行高效的读写操作、复杂的金融计算等指令。这些指令能够满足企业在金融、航空航天、电信等领域的大规模数据处理需求。
在特定行业的重要性
在金融行业,IBM大型机的CISC架构被广泛用于处理银行的核心业务,如账户管理、交易处理等。由于其指令集能够高效地处理复杂的金融计算和大规模的数据存储与检索,并且具有高度的可靠性和安全性,因此在金融机构的核心业务系统中扮演着不可替代的角色。在航空航天领域,大型机的CISC架构用于处理复杂的飞行模拟、卫星数据处理等任务,其丰富的指令集可以满足这些领域对高精度计算和大规模数据处理的需求。
(三)国产 x86 架构
指令集的应用:国产 x86 架构在兼容 x86 指令集的基础上,往往会根据自身需求进行自主优化与扩展。它同样涵盖基本的算术指令、浮点运算指令以及多媒体指令。在多媒体应用中,国产 x86 架构也能借助相关指令集加速数据处理。例如在一些国产视频编辑软件中,利用其指令集的特性,可以更高效地完成视频特效处理、编码转换等工作,提升用户体验。在工业控制领域,通过特定的指令优化,能实现对工业设备更精准、快速的控制。在信息安全领域,针对数据加密、解密等操作进行指令级的优化,保障数据的安全性和隐私性。
在不同领域的应用:国产 x86 架构致力于为多个领域提供可靠的计算能力,并且紧密结合国产化的需求构建生态。在个人计算机领域,它为国产操作系统和办公软件提供了有力的支持,推动了国产化软件和硬件的协同发展,满足了日常办公、学习以及娱乐等需求。在工业控制领域,国产 x86 架构凭借其稳定性和定制性,广泛应用于工业自动化生产线、智能工厂等场景,实现对各类工业设备的实时监测与精准控制。在信息安全领域,国产 x86 架构被应用于政府、企业的信息系统中,为数据安全防护提供了关键的技术支撑,保障敏感信息的安全存储和传输。
处理器类型 | 指令集相关 | 具体描述 | 应用领域 | 示例 |
---|---|---|---|---|
英特尔 x86 系列处理器 | 指令集的应用 | 拥有包括基本算术逻辑、浮点运算、多媒体指令(如 MMX、SSE 等)的庞大指令集 | 个人计算机领域、服务器领域 | 在视频编码软件中,SSE 指令用于同时对多个像素点进行颜色转换、滤波等操作;桌面电脑、笔记本电脑运行各类操作系统和应用程序;大型数据中心,x86 服务器通过多核心、多线程技术处理海量数据请求 |
IBM 大型机的 CISC 架构 | 指令集的特点与应用 | 指令集针对企业级数据处理和大型计算任务优化,包含处理大规模数据的指令 | 金融行业、航空航天领域 | 处理银行账户管理、交易处理;用于飞行模拟、卫星数据处理 |
IBM 大型机的 CISC 架构 | 在特定行业的重要性 | 高度可靠安全,指令集能高效处理复杂金融计算和大规模数据存储与检索 | 金融行业、航空航天领域 | 在金融机构核心业务系统处理核心业务;满足航空航天领域对高精度计算和大规模数据处理的需求 |
八、CISC架构整体框架代码举例(以x86汇编语言为例)
简单的x86汇编语言代码示例,用于计算两个整数的和:
.MODEL SMALL
.STACK 100H.DATA
num1 DW 5 ; 定义第一个整数
num2 DW 3 ; 定义第二个整数
result DW? ; 用于存储结果.CODE
MAIN PROCMOV AX, @DATA ; 初始化数据段MOV DS, AXMOV AX, num1 ; 将第一个数加载到AX寄存器ADD AX, num2 ; 将第二个数与AX中的数相加MOV result, AX ; 将结果存储到result变量MOV AH, 4CH ; 返回操作系统INT 21H
MAIN ENDP
END MAIN
示例中,使用了x86汇编语言的一些基本指令。MOV
指令用于数据的移动,ADD
指令用于加法运算。通过这些指令的组合,实现了两个整数的求和操作。这只是一个非常简单的示例,实际的x86汇编程序可以实现更加复杂的功能,利用x86丰富的指令集来处理各种复杂的计算、数据处理和控制任务。
九、未来发展趋势
(一)与RISC架构的融合
混合架构的探索
在未来,CISC架构可能会与RISC架构进行更多的融合。例如,在一些处理器设计中,可以将CISC架构的指令集前端与RISC架构的执行后端相结合。CISC指令集前端负责接收和译码复杂的CISC指令,然后将其转换为一系列简单的RISC - like指令,再由RISC架构的执行后端进行高效执行。这种混合架构可以综合CISC架构的编程便利性和RISC架构的执行高效性,提高计算机系统的整体性能。
取长补短的发展方向
CISC架构可以借鉴RISC架构在硬件实现简单、功耗低等方面的优点,进行自身的优化。例如,简化一些过于复杂的指令,优化指令的执行流程,减少不必要的硬件资源消耗。同时,RISC架构也可以从CISC架构中学习指令集的丰富性和兼容性方面的经验,以提高其在特定应用场景下的适用性。
(二)适应新兴技术
人工智能和机器学习领域
在人工智能和机器学习快速发展的背景下,CISC架构需要适应新的需求。一方面,CISC架构可以通过指令集扩展来支持人工智能相关的运算,如矩阵乘法、向量运算等。另一方面,在处理人工智能训练和推理过程中的大规模数据时,CISC架构需要优化其内存访问机制和数据处理效率。例如,通过改进缓存策略、提高数据并行处理能力等方式,来提高在人工智能领域的性能表现。
量子计算的融合
随着量子计算技术的逐渐发展,CISC架构可能会与量子计算进行融合。虽然量子计算的原理和传统计算机有很大差异,但CISC架构可以在量子 - 经典混合计算系统中发挥作用。例如,CISC架构可以用于处理经典的数据和控制任务,为量子计算提供数据预处理、结果后处理等支持,同时也可以从量子计算的发展中汲取灵感,探索新的计算模式和架构优化方向。
(三)提高能效比
低功耗技术的应用
随着移动设备和物联网设备的普及,对计算机架构的能效比要求越来越高。CISC架构需要采用更多的低功耗技术,如动态电压和频率调整(DVFS)、低功耗指令集设计等。DVFS技术可以根据CPU的负载情况动态调整电压和频率,降低功耗。低功耗指令集设计则可以通过优化指令的执行逻辑和操作数的使用,减少不必要的功耗开销。
硬件优化与软件协同
除了硬件层面的低功耗技术,CISC架构还需要实现硬件优化与软件协同。例如,操作系统和应用程序可以根据CISC架构的能效特性进行优化。操作系统可以更好地管理硬件资源,合理分配任务到不同的硬件组件,以降低整体功耗。应用程序可以通过优化算法和数据结构,减少不必要的指令执行和内存访问,从而提高能效比。
相关文章:
【计算机架构】CISC(复杂指令集计算机)架构
一、引言 在计算机技术领域中,计算机架构是基石,决定着计算机系统的性能、功能和效率。CISC(复杂指令集计算机)架构作为一种经典的计算机架构,自诞生以来就在计算机发展历程中扮演着举足轻重的角色。从早期的大型计算机…...
【学习资源】知识图谱与大语言模型融合
知识图谱与大型语言模型结合参数知识和明确知识的可用性会带来一些机会和愿景。分享一些知识图谱和大语言模型融合的论文和文章、实践案例、关键技术和实用工具。 1 模型库获取 https://modelscope.cn/models 注 下载模型需运行 git lfs instal 2 论文和文章 2.1 大型语言模…...
探索微服务入口:Spring Cloud Gateway 实战指南
在微服务架构中,网关(Gateway)扮演着“请求入口”的角色。它不仅帮助我们统一入口、路由转发,还可以承担限流、安全认证、权限校验、熔断等功能。 本文将系统介绍 Spring Cloud Gateway 的基础概念、快速上手指南,以及…...
python的turtle库实现四叶草
实现代码: import turtle turtle.pencolor(‘green’) turtle.fillcolor(‘green’) turtle.begin_fill() turtle.circle(100,90) turtle.left(90) turtle.circle(100,90) turtle.right(180) turtle.circle(100, 90) turtle.left(90) turtle.circle(100,90) tu…...
医疗生态全域智能化:从技术革新到价值重塑的深度探析
引言 医疗人工智能正在经历从单一技术应用向全域生态系统演进的关键转折点。随着深度学习、自然语言处理和计算机视觉等技术的成熟,AI不再局限于辅助诊断等单一功能,而是逐渐渗透到医疗健康服务的全生命周期。从传统设备制造商向智慧医疗转型的东软医疗,正在构建"AI大…...
Rust 的 Web 世界:actix_web 轻松接收 JSON 请求体
前言 在现代 Web 世界,数据传输早已从“你问我答”的问卷时代,迈入“你扔我接”的快节奏赛道。其中最火的“传球”方式,非 JSON 请求体莫属。Rust 这门以高性能和强类型著称的语言,也不甘人后,推出 actix_web 框架,力求在 Web 世界中杀出一条血路。 今天我们不讲玄学,…...
1.3 点云数据获取方式——ToF相机
图1-3-1TOF相机 ToF 相机作为新兴的 3D 感知设备,凭借独特的技术优势崭露头角。其工作原理基于光飞行时间(Time of Flight)技术,通过测量光信号从发射到被物体反射后返回传感器的时间差,直接且快速地获取物体的深度信息。这种直接测量深度的方式使得 ToF 相机具备…...
数据结构每日一题day13(链表)★★★★★
题目描述:采用尾插法在头指针L处建立一个带头结点的单链表,输入-1表示结束结果返回建立的单链表。 算法思想: 1.初始化链表:创建一个头结点(不存储实际数据),头指针 L 指向该头结点。初始时,头…...
【网络编程】UDP协议 和 Socket编程
1. UDP的特点 UDP(User Datagram Protocol,用户数据报协议)是互联网协议套件中的一种传输层协议,与广泛使用的TCP(Transmission Control Protocol,传输控制协议)相比,它是一种无连接…...
【探寻C++之旅】第十二章:异常
请君浏览 前言1.异常的概念2.异常的使用2.1 抛出与捕获2.2 栈展开2.3 查找匹配的处理代码2.4 简单的异常使用2.5 异常重新抛出 2. 异常的安全问题3. 异常的规范4. 标准库的异常5. 异常处理建议尾声 前言 今天,我们继续踏入追寻C的冒险历程。今天我们让我们来讲讲C中…...
CSS的三大特性:层叠、继承与优先级
CSS作为网页设计的核心语言,其三大核心特性——层叠性、继承性和优先级共同构成了样式表现的底层逻辑。理解这些特性将帮助开发者写出更优雅、更易维护的样式代码。 一、层叠性(Cascading) 1.1 核心概念 "层叠"指多个样式规则同…...
Spring Cloud 项目中优雅地传递用户信息:基于 Gateway + ThreadLocal 的用户上下文方案
在 Spring Cloud 微服务架构中,我们通常使用 API 网关(如 Spring Cloud Gateway)作为流量入口,负责统一的用户身份校验和请求路由。本文将介绍一种通用的用户信息传递方案:网关完成认证后通过请求头传递用户信息&#…...
node.js 实战——mongoDB 续一
mongoDB的基本指令 进入mongodb mongo显示当前的所有数据库 show dbs # 或者 show databases切换数据库/进入指定数据库 使用这个命令的时候,是不要求这个数据库是否创建 use 数据库名显示当前数据库 db显示数据库中所有集合 show collections数据库的CRUD的…...
鸟笼效应——AI与思维模型【84】
一、定义 鸟笼效应思维模型指的是人们在偶然获得一件原本不需要的物品后,会为了这件物品的配套或使用需求,进而继续添加更多与之相关但自己原本可能并不需要的东西,仿佛被这个“鸟笼”牵着走,最终陷入一种惯性消费或行为模式的现象。简单来说,就是人们在心理上会有一种自…...
豪越科技消防立库方案:实现应急物资高效管理
在消防救援工作中,应急物资管理是至关重要的一环。然而,当前应急物资管理的现状却令人担忧。传统的应急物资管理方式存在诸多弊端,严重影响了消防救援的效率和效果。 走进一些传统的消防仓库,映入眼帘的往往是杂乱无章的存储场景。…...
简化excel校验提高开发效率
业务背景:上传excel文件进行基础数据校验,然而东西太多写着写着就...自然成了测试的KPI了 解决思路:使用现有的注解处理,原理使用validate注解原理 直接上干货,一行代码搞定校验: ValidateUtils.validat…...
ElasticSearch深入解析(六):集群核心配置
1.开发模式和生产模式 Elasticsearch默认运行在开发模式下,此模式允许节点在配置存在错误时照常启动,仅将警告信息写入日志文件。而生产模式则更为严格,一旦检测到配置错误,节点将无法启动,这是一种保障系统稳定性的安…...
Python 重构“策略”模式:用函数简化设计模式的实践
在软件设计中,设计模式是解决问题的通用模板。但随着编程语言特性的发展,某些经典模式可以通过更简洁的方式实现。本文以电商促销折扣场景为例,演示如何通过函数重构“策略”模式,减少代码量并提升可维护性。 经典策略模式实现 …...
MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡
MCP协议深度解析:原理、应用与物联网时代的机遇-优雅草卓伊凡 一、MCP协议技术详解 1.1 MCP协议的定义与起源 MCP(Modbus Communication Protocol)是一种基于主从架构的串行通信协议,最初由Modicon公司(现为施耐德电…...
IOS 国际化词条 Python3 脚本
一、词条处理脚本---使用教程 (1)环境篇 1: 该脚本基于python3 环境,请确保你的mac 安装了python3 2: 包依赖,请在python3环境下安装 xlrd; pip3 install xlrd(2)使用篇 1: 桌面创建一个文件夹, 例如 wordEntry,将该脚本文件与下载的最新的 ’词条.xlsx‘…...
uniapp 支付宝小程序自定义 navbar 无效解决方案
如图: uniapp编译到支付宝小程序隐藏默认的导航栏失效了 解决方案: 在 pages.json 文件中找到 globalStyle 中加入以下代码: "mp-alipay": {"transparentTitle": "always","titlePenetrate":…...
uni-app - 微信小程序中,使用 navigateTo 传递非常大的数字传参精度丢失的问题
文章目录 🍉原因分析:JavaScript 数值精度限制🍉常用解决方法🍉代码示例🍉官方推荐与最佳实践🍉微信小程序环境注意事项🍉原因分析:JavaScript 数值精度限制 微信小程序(uni-app)中,参数是通过 URL 查询字符串传递的,其本质上仍由 JavaScript 进行处理。Jav…...
通信施工安全员B证适合哪些人考
通信施工安全员B证适合人群分析 一、适用岗位范围 通信工程施工人员 从事基站建设、光缆布放、管道施工等现场作业的技术工人 5G网络建设、室内分布系统安装等新型基础设施建设人员 项目管理岗位 通信工程项目经理、技术负责人 施工队长、班组长等现场管理人员 专职安全…...
vue3使用<el-date-picker分别设置开始时间和结束时间时,设置开始时间晚于当前时间,开始时间早于结束时间,结束时间晚于开始时间
vue3使用<el-date-picker分别设置开始时间和结束时间时,设置开始时间晚于当前时间,开始时间早于结束时间,结束时间晚于开始时间 为避免出现填写结束事件后再次修改开始时间,导致开始时间晚于结束时间,添加 change“…...
移远通信LG69T赋能零跑B10:高精度定位护航,共赴汽车智联未来
当前,汽车行业正以前所未有的速度迈向智能化时代,组合辅助驾驶技术已然成为车厂突出重围的关键所在。高精度定位技术作为实现车辆精准感知与高效协同的基石,其重要性日益凸显。 作为全球领先的物联网及车联网整体解决方案供应商,移…...
HTML应用指南:利用POST请求获取全国达美乐门店位置信息
达美乐比萨作为全球知名的披萨连锁品牌,自1960年创立以来,始终致力于为消费者提供高品质、快速配送的披萨体验。在中国市场,达美乐凭借其“30分钟必达”的承诺和经典美式风味,逐渐赢得了广大消费者的青睐。品牌通过不断拓展门店网…...
进程优先级以及切换调度
目录 进程优先级 基本概念 实操理解 优先级操作 竞争,独立,并行,并发 进程切换 寄存器 讲切换 linux进程调度算法 进程优先级 基本概念 cpu资源分配的先后顺序,就是指进程的优先权(priority)。优…...
揭开应用程序的神秘面纱:深入了解 AWS X-Ray
1.AWS X-Ray 概述: AWS X-Ray 是一项服务,它收集应用程序所处理请求的数据,并提供一些工具供您查看、筛选和深入了解这些数据,从而发现问题和优化机会。您不仅可以查看请求和响应的详细信息,还可以查看应用程序对下游…...
元宇宙2.0:当区块链成为数字世界的宪法
引言:当虚拟世界成为“新大陆” 清晨,你戴上VR设备进入一个由数字建筑构成的城市,这里的地皮属于全球玩家,街边的艺术品标着NFT认证码,咖啡馆里的人们用加密货币支付咖啡,而社区规则由持有代币的居民投票决…...
JVM调优实战(JVM Tuning Pactice)
JVM调优实战 JVM调优 JVM调优是指对Java虚拟机进行性能优化的实际应用。 JVM调优实战主要是通过优化JVM的内存管理、垃圾回收、线程管理、类加载、编译器等方面来提高Java应用程序的性能和稳定性。 JVM调优步骤 JVM调优实战通常需要经过以下步骤: 1.监控GC的状…...
网络原理 - 11(HTTP/HTTPS - 2 - 请求)
目录 HTTP 请求(Request) 认识 URL URL 基本格式 关于 URL encode 认识方法(method) 1. GET 方法 2. POST 方法 认识请求“报头”(header) Host Content-Length Content-Type User-Agent&…...
百度CarLife实现手机车机无缝互联
百度CarLife是百度推出的智能车联网解决方案,通过手机与车机互联技术,为用户提供安全便捷的车载互联网服务体验。 CarLife 实现手机与车机屏幕的无缝互联,让应用内容同步至车载系统,减少驾驶过程中操作手机的频率,提升…...
初识Redis · 缓存
目录 前言: 引入缓存 缓存更新策略 定期生成 实时生成 缓存注意事项 缓存预热 缓存穿透 缓存雪崩 缓存击穿 前言: 我们在Redis的学习中,逐渐了解到了Redis的用途是可以用来当作内存数据库,缓存,消息队列等&…...
Redis性能优化终极指南:从原理到实战的深度调优策略
一、内存优化:构建高效存储体系 1.1 三级过期键管理机制 Redis通过组合策略实现精准的内存回收: 定时删除(主动淘汰) 创建定时器在键到期时立即删除 优点:及时释放内存 缺点:高CPU消耗(每个…...
哈希表笔记(一 )
设计思路 核心功能和 API 设计 (Core Functionality & API Design): 基本操作: 必须提供核心的 put(key, value)(添加或更新键值对)、get(key)(根据键获取值)、remove(key)(根据键删除键值对)、contain…...
c网络库libevent的http常用函数的使用(附带源码)
Libevent HTTP 核心函数详解与实战 核心概念HTTP 服务器端常用函数1. 初始化与绑定2. 设置请求处理回调3. 在回调函数中处理请求4. 发送响应5. 启动与停止6. 清理资源 HTTP 客户端常用函数1. 初始化2. 创建连接3. 创建并发送请求4. 在回调函数中处理响应5. 启动事件循环与清理 …...
java练习3
随机生成20个数字(随机种子) 分别使用冒泡排序、二叉树排序、插入排序进行排序 并输出最终结果以及三种排序使用的时间 package a01_第一次练习.a03_排序;import java.time.Duration; import java.time.LocalDateTime; import java.util.TreeSet;publi…...
当 AI 成为 “数字新物种”:人类职业的重构与进化
一、AI 的 “替代清单”:从流水线到办公室的全面侵袭 在深圳某智能工厂,机械臂正以 0.01 毫米的精度完成手机组装,100 台机器人 24 小时运转,替代了 3000 名工人。这种场景正在全球制造业蔓延 —— 麦肯锡预测,到 203…...
HarmonyOS ArkUI交互事件与手势处理全解析:从基础到高级实践
文章目录 一、交互事件1.1 通用事件1.1.1 事件分发1.1.1.1 触摸测试1. 触摸测试基本流程2. 触摸测试控制3. 自定义事件拦截4. 禁用控制5. 触摸热区设置6. 安全组件 1.1.1.2 事件响应链收集 1.1.2 触屏事件1.1.3 键鼠事件1.1.3.1 鼠标事件1.1.3.2 按键事件 1.1.4 焦点事件1.1.5 …...
【计算机网络】面试常考——GET 和 POST 的区别
GET 和 POST 的区别 GET 和 POST 是 HTTP 协议中最常用的两种请求方法,它们的主要区别体现在 用途、数据传输方式、安全性、缓存机制 等方面。以下是详细对比: 1. 用途 GET POST 主要用于 获取数据(如查询、搜索)。 主要用于 提…...
AI编程工具“幻觉”风险与飞算JavaAl的破局之道
近年来,AI编程辅助工具迅速崛起,极大地提升了开发者的工作效率。然而,这些工具普遍存在一个被称为“幻觉”(hallucination)的风险——AI可能会生成看似合理但实际错误、不安全或低效的代码。这种现象在复杂业务逻辑和特定领域开发中尤为明显&…...
【Python零基础入门系列】第1篇:Python 是什么?怎么装环境?推荐哪些 IDE?
各位网友们,欢迎来到我的 Python 学习专栏! 前两天看到新闻英伟达为 CUDA 添加原生 Python 支持,意味着开发者可直接用 Python 操作 GPU,加速 AI 和高性能计算,降低门槛,让 Python 的应用范围更广、能力更强。 一直想写一系列文章教知友们从零开始学会 Python 编程,目…...
VPN访问SAP组服务器报登陆负载均衡错误88:无法连接到消息服务器(RC=9)
用户反馈用SAPGUI接入SAP时报错:登陆负载均衡错误88:无法连接到消息服务器(RC9) 经了解是通过VPN访问,但VPN没有放行ICMP访问,导致不能PING通,不能确认是网络问题还是什么问题。 解决方案: 1、VPN由原&am…...
Linux查看程序端口占用情况
大家好,欢迎来到程序视点!我是你们的老朋友.小二! 核心问题: Tomcat 8080端口启动失败,提示端口被占用,但常规检查未发现Tomcat进程占用该端口。 关键排查步骤: 初步检查 使用 ps -aux | gre…...
[C]基础14.字符函数和字符串函数
博客主页:向不悔本篇专栏:[C]您的支持,是我的创作动力。 文章目录 0、总结1、字符分类、转换函数2、strlen的使用和模拟实现2.1 strlen的使用2.2 strlen的模拟实现 3、strcpy的使用和模拟实现3.1 strcpy的使用3.2 strcpy的模拟实现 4、strcat…...
三种机器学习类型
本文讲介绍三种机器学习类型:①监督学习,②无监督学习,③强化学习。我们主要了解监督学习和无监督学习即可。 下图介绍这三种机器学习类型的区别: 1 用来预测未来的监督学习 从有标签的训练数据中学习一个模型,用来…...
UE5 Set actor Location和 Set World Location 和 Set Relative Location 的区别
在 Unreal Engine 的蓝图里,SetRelativeLocation、SetWorldLocation 和 SetActorLocation 三个节点虽然都能改变物体位置,但作用对象和坐标空间(Coordinate Space)不同: 1. SetActorLocation 作用对象:整个…...
Glide 如何加载远程 Base64 图片
最近有个需求,后端给出的图片地址并不是正常的 URL,而且需要一个接口去请求,但是返回的是 base64 数据流。这里不关心为啥要这么多,原因有很多,可能是系统的问题,也可能是能力问题。当然作为我们 Android 程…...
JVM对象存储格式
引言 在Java虚拟机(JVM)中,对象的内存布局是一个重要的底层概念,它直接影响对象在内存中的存储方式和占用空间。了解对象存储格式不仅有助于优化程序性能,还能帮助我们更好地理解JVM的工作原理。本文将详细探讨对象存…...
3D Gaussian Splatting部分原理介绍和CUDA代码解读
本系列旨在帮助无CUDA代码经验的读者、以及3DGS的初学者理解代码逻辑。 3D GS论文原文链接:https://arxiv.org/abs/2308.04079 论文笔记链接:【论文笔记】3D Gaussian Splatting for Real-Time Radiance Field Rendering 【论文笔记】A Survey on 3D Ga…...