AMBA-CHI协议详解(二)

news2024/11/18 11:51:05

《AMBA 5 CHI Architecture Specification》
在这里插入图片描述

文章目录

    • 2.1 Channels综述
    • 2.2 Channel域段
      • 2.2.1 request fields
      • 2.2.2 Response fields
      • 2.2.3 Snoop request fields
      • 2.2.4 Data fields
    • 2.3 事务结构
      • 2.3.1 Read transactions
        • 2.3.1.1 Allocating Read
        • 2.3.1.2 Non-allocating Read


2.1 Channels综述

  本节使用通道的简写命名来描述事务结构。表2-1显示了Request节点或Subordinate节点组件上存在的简写名称和物理信道名称。
  节点之间的通信是基于通道的。表2-1显示了Request节点和Subordinate节点处的信道命名和信道指定。
在这里插入图片描述

图解:

在这里插入图片描述

2.2 Channel域段

2.2.1 request fields

FieldDescription
QoSQuality of Service priority,为事务指定16个可能的优先级之一,QoS的升序表示更高的优先级。
TgtIDTarget ID,数据包所要到达的组件上端口的目标节点ID。
SrcIDSource ID,发送数据包的组件上端口的源节点ID。
TxnIDTransaction ID,每个源节点发起的事务有唯一的事务ID。当每笔响应回到请求节点时可以根据TxnID找到该笔响应对应的请求。
ReturnNIDReturn Node ID,Data响应、Persist响应或TagMatch响应的接收方节点ID。
例如:节点A发送请求到节点B,正常情况下响应是从节点B到节点A,但是通过配置Return Node ID可以让响应从节点B返回到节点C(可以通过DMT事务了解)。
StashNIDStash Node ID,Stash目标的节点ID。通过stash事务可以将数据送到被配置为Stash Node ID的对等RNF。
例如:系统预测到RNF1需要一笔数据,RNF0发起一个stash事务,Stash Node ID配置为RNF1的节点ID,该笔事务就可一笔送到RNF1。
SLCRepHintSystem Level Cache Replacement Hint,将cache replacement hints从请求节点转发送到互联中的Cache。
StashNIDValidStash Node ID Valid,指示StashNID字段具有有效的Stash目标值。
EndianEndianness,指示Atomic事务的数据包中数据的字节序
DeepDeep persistence,指示在将所有早期Write写入最终目标之前,不得发送Persist响应。
Return TxnIDReturn Transaction ID,唯一的事务ID,用于响应可以找到对应的请求,和ReturnNID一起使用。
StashLPIDValidStash Logical Processor ID Valid,指示StashLPID字段值必须被视为Stash目标。
StashLPIDStash Logical Processor ID,Stash目标上的逻辑处理器的ID。
StashNID下细分了StashLPID,如果一个Cluster有多个处理器,StashNID指向Cluster,StashLPID指向具体的处理器。
Opcode请求操作码,指定事务类型,并且是确定事务结构的主要字段。
SizeData size,指定与事务相关联的数据的大小。这决定了事务中数据包的数量。
AddrAddress,读取和写入请求所访问的内存位置的地址。
NSNon-secure,结合NSE建立一个物理地址空间(PAS)的访问。
NSENon-secure Extension,结合NSE建立一个物理地址空间(PAS)的访问。
LikelyShared为下游cache提供分配提示。
AllowRetry确定是否允许目标提供“Retry”响应。
OrderOrder requirement,确定此请求相对于来自同一agent的其他请求的排序要求。
例如:一个核发起读和写需要保证顺序,否则会影响结果。
PCrdTypeProtocol Credit Type,指示已取消断言AllowRetry字段的请求所使用的协议信用的类型。
MemAttrMemory attribute,确定与事务关联的内存属性。
例如:可以访问Normal Memory也可以访问Device Memory
SnpAttrSnoop attribute,指定与事务关联的Snoop属性。
0:Non-snoopable
1:Snoopable
DoDWTDo Direct Write Transfer,支持直接写入数据传输(DWT)和组合写入( Combined Writes)的处理。
LPIDLogical Processor ID,与SrcID字段一起使用,以唯一标识生成请求的逻辑处理器。
SrcID下细分了LPID,如果一个Cluster有多个处理器,SrcID指向Cluster,LPID指向具体的处理器。
PGroupIDPersistence Group ID,指示应用请求的CleanSharedPersistSep事务集。
StashGroupID指示StashOnceSep请求的事务集。
TagGroupIDTagGroupID,通常应包含异常级别、TTBR值和CPU标识符
ExclExclusive access,指示相应的事务是独占访问事务。
SnoopMe指示Home必须确定是否在Atomic事务期间向请求程序发送Snoop。
CAHCopy At Home,在CopyBack请求中,向Home指示Requester是否修改了cache line或MTE标记,因为Home指示它保留了行的副本。
ExpCompAckExpect CompAck,指示事务将包括一条完成确认消息。
该bit置位,指示RA收到来自下游的响应会向下游会发送CompAck相应。
TagOpTag Operation,表示要对相应DAT通道中的tag执行的操作。
TraceTag为系统的调试、追踪和性能测量( debug、trace、performance measurement)提供额外支持。
MPAMMemory System Performance Resource Partitioning and Monitoring,有效地利用用户之间的内存资源,并监控其使用情况。
PBHAPage-Based Hardware Attributes,来自硬件控制的translation tables的4位。
RSVDC自定义

2.2.2 Response fields

FieldDescription
QoSQuality of Service priority,为事务指定16个可能的优先级之一,QoS的升序表示更高的优先级。
TgtIDTarget ID,数据包所要到达的组件上端口的目标节点ID。
SrcIDSource ID,发送数据包的组件上端口的源节点ID。
TxnIDTransaction ID,每个源节点发起的事务有唯一的事务ID。当每笔响应回到请求节点时可以根据TxnID找到该笔响应对应的请求。
Opcode请求操作码,指定事务类型,并且是确定事务结构的主要字段。
RespErrResponse Error status,响应错误状态。
RespResponse status,响应状态。
FwdStateForward State
DataPull指示在数据响应中包含隐含的读取请求。
CBusyCompleter Busy,指示Completer的当前活动级别
DBIDData Buffer ID,用作该消息的响应中的TxnID。
PGroupIDPersistence Group ID,指示应用请求的CleanSharedPersistSep事务集。
StashGroupID指示StashOnceSep请求的事务集。
TagGroupIDTagGroupID,通常应包含异常级别、TTBR值和CPU标识符
PCrdTypeProtocol Credit Type,指示已取消断言AllowRetry字段的请求所使用的协议信用的类型。
TagOpTag Operation,表示要对相应DAT通道中的tag执行的操作。
TraceTag为系统的调试、追踪和性能测量( debug、trace、performance measurement)提供额外支持。

——Note-数字硬鉴——————
CHI-F没有定义Snoop请求的TgtID
——————————————

2.2.3 Snoop request fields

FieldDescription
QoSQuality of Service priority,为事务指定16个可能的优先级之一,QoS的升序表示更高的优先级。
SrcIDSource ID,发送数据包的组件上端口的源节点ID。
TxnIDTransaction ID,每个源节点发起的事务有唯一的事务ID。当每笔响应回到请求节点时可以根据TxnID找到该笔响应对应的请求。
FwdNIDForward Node ID,通过Snp可以将数据转发到配置为FwdNID的对等RNF。
FwdTxnIDForward Transaction ID,事务ID。
StashLPIDValidStash Logical Processor ID Valid,指示StashLPID字段值必须被视为Stash目标。
StashLPIDStash Logical Processor ID,Stash目标上的逻辑处理器的ID。
StashNID下细分了StashLPID,如果一个Cluster有多个处理器,StashNID指向Cluster,StashLPID指向具体的处理器。
Opcode请求操作码,指定事务类型,并且是确定事务结构的主要字段。
VMIDExtVirtual Machine ID Extension。用于DVM事务。
AddrAddress,Snoop请求访问的内存位置的地址。
NSNon-secure,结合NSE建立一个物理地址空间(PAS)的访问。
NSENon-secure Extension,结合NSE建立一个物理地址空间(PAS)的访问。
DoNotGoToSDDo Not Go To SD state,控制Snoopee使用SD状态。
RetToSrcReturn to Source,指示snoop的接收节点返回带有snoop响应的数据
TraceTag为系统的调试、追踪和性能测量( debug、trace、performance measurement)提供额外支持。
MPAMMemory System Performance Resource Partitioning and Monitoring,有效地利用用户之间的内存资源,并监控其使用情况。

2.2.4 Data fields

FieldDescription
QoSQuality of Service priority,为事务指定16个可能的优先级之一,QoS的升序表示更高的优先级。
TgtIDTarget ID,数据包所要到达的组件上端口的目标节点ID。
SrcIDSource ID,发送数据包的组件上端口的源节点ID。
TxnIDTransaction ID,每个源节点发起的事务有唯一的事务ID。当每笔响应回到请求节点时可以根据TxnID找到该笔响应对应的请求。
HomeNIDHome Node ID,要从Requester发送的CompAck响应的目标的节点ID。
Opcode请求操作码,指定事务类型,并且是确定事务结构的主要字段。
RespErrResponse Error status,指示与数据传输相关联的错误状态。
RespResp,指示与数据传输关联的Cache line的状态。
FwdStateForward State,指示与从Snoop的receiver到Requester的数据传输相关联的Cache line状态
DataPull指示在数据响应中包含隐含的读取请求。
DataSource该值指示读取数据响应中的数据源。
CBusyCBusy,指示Completer的当前活动级别
DBIDData Buffer ID,用作该消息的响应中的TxnID。
CCIDCritical Chunk Identifier,复制原始事务请求的地址偏移量。
DataIDData Identifier,提供数据包中数据的地址偏移量。
TagOpTag Operation,表示要对相应DAT通道中的tag执行的操作。
TagMemory Tag,提供一组4bit tags,每bit标记与对齐的16字节数据相关联。
TUTag Update,指示必须更新哪些Allocation Tags
TraceTag为系统的调试、追踪和性能测量( debug、trace、performance measurement)提供额外支持。
CAHCopy At Home,在CopyBack请求中,向Home指示Requester是否修改了cache line或MTE标记,因为Home指示它保留了行的副本。
RSVDC自定义
BEByte Enable,对于数据写入,或响应于Snoop而提供的数据,指示哪些字节是有效的。
DataData payload.
DataCheck检测DAT数据包中的数据错误。
Poison指示一组数据字节以前已损坏。

2.3 事务结构

  本节介绍事务可以完成的方式。它显示了参与事务的各个组件可以使用的所有允许选项。
   除PCrdReturn和PrefetchTgt外,所有事务类型都可以在事务开始时具有Retry序列。
   从Home到Subordinate的一些事务支持使用单独的ReturnNID和ReturnTxnID字段,这允许将某些响应返回给原始Requester,而不是Home。
在这里插入图片描述

———Note-数字硬鉴————
本节中的某些消息被描述为“Optional”。这意味着特定message是否包括在事务流中取决于事务的特性,通常是请求中的字段或opcode。
——————————————

名词解释:
Issues:
  仅用于事务中的第一条message,例如“请求者发出WriteNoSnp请求”。
Sends:
  由agent向远离Requester的方向发送的消息。
Sends a downstream:
  由中间agent向远离Requester的方向上中继的消息,例如“Home向下级发送下游Read请求”。
Returns:
  由agent向Requester发送的消息。
Provides:
  agent为响应Snoop而发送的消息,例如“…提供Snoop响应”。
Permitted, but not required :
  这种行动既不鼓励也不抛弃,在任何一种情况下都是可以的。
Not permitted :
  所描述的操作将导致不符合规范。例如,“不允许在发送…之前等待…”。

2.3.1 Read transactions

读事务分为以下几类:

  • Allocating Read
  • Non-allocating Read

2.3.1.1 Allocating Read

在这里插入图片描述

Allocating Read事务的顺序如下:

● 事务从Requester向Home发出一个 Allocating Read请求开始。
  初始请求是下列请求之一:
  — ReadClean
  — ReadNotSharedDirty
  — ReadShared
  — ReadUnique
  — ReadPreferUnique
  — MakeReadUnique

● 选项1-6显示了Home处理事务的不同方式:

1:组合响应来自Home
  Home向Requester返回一个组合的响应和读取的数据,CompData。
通常,当Home可以同时返回数据和响应时,会使用此选项。例如数据在本地Cache。
在这里插入图片描述

2:分离的数据和响应来自Home
  Home返回一个单独的响应(RespSepData)和读取数据(DataSepResp)给Requester。
在这里插入图片描述在这里插入图片描述

3:组合响应来自SN
  ● Home节点向SN节点发送一个读请求ReadNoSnp。
  ● 可选地,当Home节点需要ReadReceipt响应时(Order != 00时),SN返回ReadReceipt响应。
  ● SN返回一个组合的响应和读数据CompData。
  通常Home节点使用此选项来减少Message数量或者降低设计的复杂性。(SN直接向RA返回了数据)
在这里插入图片描述
在这里插入图片描述

4:响应来自Home,数据来自SN
  ● Home向Requester返回一个单独的响应,RespSepData
  ● Home向SN发送一个ReadNoSnpSep
  ● SN向Home返回一个ReadReceipt
  ● SN返回DataSepResp给RN(Requester Node)。
  通常,当Home可以快速返回响应,但它没有可用的数据并且需要SN返回数据时,会使用此选项。
在这里插入图片描述
在这里插入图片描述

——Note-数字硬鉴————
  在许多情况下,RN接收到的RespSepData比接收到的DataSepResp要早得多。RN被允许(但不是必须)在接收到RespSepData后发送CompAck响应,而不需要等待DataSepResp。来自RN的快速响应,以及可能同时接收到的ReadReceipt,使得Home能够比使用来自SN的组合响应更快地完成事务。
————————————

5:Forwarding snoop
  ● Home请求Snoopee将读取的数据(通过Snp*Fwd)转发给RN。通常,当数据没有在本地缓存并且它确定Snoopee可能有副本时,Home使用此选项。
  ● Alt 5a: 响应返回至Home
    Snoopee返回一个组合响应CompData至RN,返回一个SnpRespFwded至HN。通常,当Snoopee可以将数据转发给RN而不需要向Home提供数据副本时,使用此选项。

  ● Alt 5b: 数据返回至Home
    Snoopee返回一个组合响应CompData至RN,返回一个SnpRespDataFwded至HN。通常,当Snoopee可以将数据转发给RN,但它也必须向Home提供数据副本时,它会使用此选项。例如,当Snoopee持有缓存行的脏副本,但返回给RN的数据必须是干净的时,就会发生这种情况。当Home请求数据副本时也可能发生这种情况。

  ● Alt 5c: 失败,必须使用alternative
    Snoopee向Home提供一个snoop响应,SnpResp。Home必须使用本节中描述的另一种备选方案来完成与RN的事务。(上述1-4)

  ● Alt 5d: 失败,必须使用alternative
    Snoopee向Home提供一个带有数据SnpRespData或SnpRespDataPtl的snoop响应。Home必须使用本节中描述的另一种备选方案来完成与RN的事务。(上述1-4)

6:MakeReadUnique only
  Home向RN返回一个完成响应Comp。
此选项仅适用于不需要读取数据消息时的MakeReadUnique事务。

当请求者向Home发送完成确认(CompAck)时,事务结束。CompAck必须在收到CompData或RespSepData后才发送。允许(但不是必须)在发送CompAck之前等待dataseprep。
在这里插入图片描述
在这里插入图片描述


2.3.1.2 Non-allocating Read

在这里插入图片描述
Non-allocating Read transactions顺序如下:

● 事务从RN向Home发出读请求开始。

Non-allocating Read transactions有:
— ReadNoSnp
— ReadOnce
— ReadOnceCleanInvalid
— ReadOnceMakeInvalid

请求包含以下影响事务流的字段:
—Order
—ExpCompAck

1.组合响应来自于Home
在这里插入图片描述

● 可选地,当原始请求具有保序要求时(Order!=0),Home将读取收据ReadReceipt返回给请求者。
● Home向RN返回一个组合响应CompData。


2.分离的数据和响应来自于Home
在这里插入图片描述在这里插入图片描述

Home返回一个单独的响应(RespSepData)和读取数据(DataSepResp)给RN。

如果请求具有Order需求(Order!=0)并且不需要CompAck,则不能使用此替代方法。




3.组合响应来自于SN
在这里插入图片描述在这里插入图片描述
● 可选地,当RN具有保序需求(Order!=-00)时,Home将ReadReceipt返回给RN。
● Home节点向SN发送一个下行读请求ReadNoSnp。
● 可选地,当Home请求ReadReceipt响应时(有Order要求),SN将ReadReceipt返回给Home。当不需要CompAck时,Home必须这样做。允许(但不是必需的)Home在返回ReadReceipt给Requester之前等待从SN的ReadReceipt。
● SN向RN返回一个组合响应CompData。

如果请求具有保序需求并且不需要CompAck,则不能使用此替代方法



4.响应来自于Home,数据来自于SN
在这里插入图片描述
在这里插入图片描述
● Home向RN返回一个单独的响应RespSepData,并向SN发送一个readnosnp请求。
● 可选地,当Home请求ReadReceipt响应时(有保序要求),SN将向Home返回一个ReadReceipt。Home必须请求一个ReadReceipt,除非原始请求表明对order和CompAck都有要求。
允许(但不是必需的)Home在向请求者返回RespSepData之前等待从从属的ReadReceipt
● SN将读取的数据(DataSepResp)返回给RN。

如果请求具有保序需求并且不需要CompAck,则不能使用此替代方法




5.Forwarding snoop
在这里插入图片描述在这里插入图片描述

● 可选地,当原始请求具有order需求时,Home将ReadReceipt返回给RN。
● Home请求Snoopee将读取的数据(通过Snp*Fwd)转发给请求者RN。
● 备选方案5a-5d显示了Snoopee如何处理事务:
  Alt 5a 响应返回至Home
    ● Snoopee向RN提供一个组合响应(CompData)。
    ● Snoopee向Home提供一个snoop响应SnpRespFwded。

  Alt 5b 数据返回至Home
    ● Snoopee向请求者提供一个组合响应(CompData)。
    ● Snoopee向Home提供带有SnpRespDataFwded数据的Snoop响应。

  Alt 5c 失败,必须使用备选方案
    ● Snoopee向Home提供一个snoop响应,SnpResp。
    ● Home必须使用本节中描述的另一种替代方案来完成与RN的事务。

  Alt 5d 失败,必须使用备选方案
    ● Snoopee向Home提供一个带有数据SnpRespData或SnpRespDataPtl的snoop响应。
    ● Home必须使用本节中描述的另一种替代方案来完成与RN的事务。

● 如果原始请求断言了ExpCompAck,则RN必须在以下内容之后提供一个CompAck响应:

— 至少收到一个CompData报文。
— RespSepData,如果请求没有Order需求。在本例中,允许但不要求等待dataseprep。
— RespSepData和至少一个DataSepResp包,如果请求有Order需求。

如果原始请求有Order需求,则允许(但不是必需)RN在发送CompAck之前等待ReadReceipt。

下表列出来自请求节点的ReadNoSnp和ReadOnce*允许的DMT和DCT事务。
在这里插入图片描述

在这里插入图片描述

Order [1:0]ExpCompAckDMTDCTNotes
000YYHome不需要在事务完成时收到通知。
对于DMT, Home必须从SN获得ReadReceipt,以确保对SN的请求不被给予RetryAck响应。
001YY当不使用DMT时,不需要通知Home事务完成。
对于DMT,为了确保从HN到SN的请求不被给予RetryAck响应:
●当对SN使用ReadNoSnp时,Home必须从SN获得ReadReceipt,或者等待来自请求节点的CompAck响应
●当对SN使用readnosnp时,Home必须从SN获得一个ReadReceipt。
01---不允许
10/110NY对于DCT, Home使用SnpRespFwded或SnpRespDataFwded Snoop响应来确定事务的完成情况。
10/111YY对于DMT, Home使用CompAck响应来确定事务是否完成。
对于DCT, Home使用SnpRespFwd或SnpRespDataFwded Snoop响应来确定事务的完成情况。

对于部分(partial)ReadNoSnp或ReadOnce*事务,即大小小于64B的事务:
● Home不能使用DCT流
● 如果使用DMT流将数据直接从SN转发到RN,则HN必须使用partial ReadNoSnp请求到SN。
● 如果Home不请求DMT流,它可以使用完整Cache line或partial Cache line ReadNoSnp。
Home必须只向RN返回所请求的数据大小。

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

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

相关文章

go稀疏数组

稀疏数组 稀疏数组 稀疏数组 package testimport ("encoding/json""fmt""io/ioutil""log""reflect""testing" )type ValNode struct {Row int json:"row"Col int json:"col"Val int json:&qu…

spring高级篇(四)

1、DispatcherServlet DispatcherServlet 是 Spring MVC 中的一个关键组件,用于处理 Web 请求并将其分发给相应的处理器(Controller)进行处理。它是一个 Servlet,作为前端控制器(Front Controller)的核心&a…

开发 Chrome 浏览器插件入门

前言 简介 Chrome 插件是扩展 Chrome 浏览器的功能的软件程序。它们可以执行各种任务,例如阻止广告、增强隐私、添加新功能等等。 要开始编写 Chrome 插件,你需要掌握以下: 1.JavaScript语言 2.html 3.css 4.会使用chrome扩展开发手册…

【Jenkins】持续集成与交付 (四):修改Jenkins插件下载地址、汉化

【Jenkins】持续集成与交付 (四):修改Jenkins插件下载地址、汉化 一、修改Jenkins插件下载地址二、汉化Jenkins三、Jenkins 版本查看💖The Begin💖点点关注,收藏不迷路💖 一、修改Jenkins插件下载地址 由于Jenkins官方插件地址下载速度较慢,我们可以通过修改下载地…

本地CPU搭建知识库大模型来体验学习Prompt Engineering/RAG/Agent/Text2sql

目录 1.环境 2.效果 3.概念解析 4.架构图 5. AI畅想 6.涉及到的技术方案 7. db-gpt的提示词 1.环境 基于一台16c 32G的纯CPU的机器来搭建 纯docker 打造 2.效果 3.概念解析 Prompt Engineering : 提示词工程 RAG: 检索增强生成; …

Thinkphp--in-sqlinjection

一、漏洞原理 在 Builder 类的 parseData 方法中&#xff0c;由于程序没有对数据进行很好的过滤&#xff0c;将数据拼接进 SQL 语句&#xff0c;导致 SQL注入漏洞 的产生。 影响版本 5.0.13<ThinkPHP<5.0.15 5.1.0<ThinkPHP<5.1.5 在相应的文件夹位置打开终端…

【Kafka】Windows下安装Kafka(图文记录详细步骤)

【Kafka】Windows下安装Kafka Kafka简介一、Kafka安装前提安装Kafka之前&#xff0c;需要安装JDK、Zookeeper、Scala。1.1、JDK安装&#xff08;version&#xff1a;1.8&#xff09;1.1.1、JDK官网下载1.1.2、JDK网盘下载1.1.3、JDK安装 1.2、Zookeeper安装1.2.1、Zookeeper官网…

SpringCloud(微服务介绍,远程调用RestTemplate,注册中心Nacos,负载均衡Ribbon,环境隔离,进程和线程的区别)【详解】

目录 一、微服务介绍 1. 系统架构的演变 1 单体架构 2 分布式服务 3 微服务 2. SpringCloud介绍 SpringCloud简介 SpringCloud版本 3. 小结 二、远程调用RestTemplate【理解】 1. 服务拆分 1 服务拆分原则 2 服务拆分示例 1) 创建父工程 2) 准备用户服务 1. 用户…

03 Docker入门Dockerfile详解及镜像创建

1.1 使用 Dockerfile 构建镜像 新建一个 Dockerfile 文件vi Dockerfile 将下面的内容复制粘贴进去:## Base Images ## 从天池基础镜像构建(from的base img 根据自己的需要更换,建议使用天池open list镜像链接:https://tianchi.aliyun.com/forum/postDetail?postId=67720) F…

如何利用美国站群服务器实现有效的SEO优化策略?

如何利用美国站群服务器实现有效的SEO优化策略? 在当今数字化时代&#xff0c;SEO优化对于网站的可见性和吸引力至关重要。站群服务器作为一种有效的SEO策略&#xff0c;可以通过多个相关联的网站在不同服务器上的部署&#xff0c;增强网站的权威性和链接多样性。尤其是在利用…

Matplotlib是什么?

一、Matplotlib是什么&#xff1f; Matplotlib是一个Python语言的2D绘图库&#xff0c;它非常广泛地用于数据的可视化。以下是一些主要特点&#xff1a; 多功能性&#xff1a;它允许用户创建各种静态、动态或交互式的图表&#xff0c;如线图、散点图、直方图等。跨平台性&…

2024全国大学生高新技术竞赛——算法智星挑战赛(A~J)

好多都是之前的原题&#xff0c;甚至有上次第二届全国大学生信息技术认证挑战赛的原题&#xff0c;刚打完又来一遍&#xff0c;没绷住。 A. 手机 原题之一&#xff0c;具体出处忘了 最无脑的方法直接用map记录每个按下的值就行了&#xff0c;代码仅供参考。 #include <bit…

Android 11 裁剪系统显示区域(适配异形屏)

概述 在显示技术中&#xff0c;"OverScan"&#xff08;超扫描&#xff09;是一种调整显示图像边界的技术。通常情况下&#xff0c;OverScan 会在显示屏的边缘周围裁剪一小部分图像。这种裁剪是为了确保显示内容在屏幕上的完整可见性&#xff0c;尤其是在老式电视或投…

【缓存服务】⭐️自定义实现一个简易的数据缓存

目录 &#x1f378;前言 &#x1f37b;手写缓存服务 &#xff08;1&#xff09;缓存实体类 &#xff08;2&#xff09;缓存工具类 &#xff08;3&#xff09;测试缓存服务 &#x1f377;已有的缓存工具 &#x1f379;章末 &#x1f378;前言 俗话说 有轮子不用 就是玩 开个…

【kettle003】kettle访问SQL Server数据库并处理数据至execl文件

一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 熟悉、梳理、总结下Microsoft SQL Server 2022关系数据库相关知识体系 kettle访问SQL Server数…

关于远程桌面端口的优化措施的建议

在信息技术的世界中&#xff0c;远程桌面连接已成为企业、教育和个人用户之间共享信息、协作工作的重要工具。而这一切的背后&#xff0c;都离不开远程桌面端口&#xff08;RDP&#xff0c;Remote Desktop Protocol Port&#xff09;的支持。RDP端口不仅关乎到远程访问的顺畅性…

永磁同步电机SMO负载转矩观测matlab模型。

永磁同步电机SMO负载转矩观测matlab模型。 负载转矩的有效识别是提高伺服驱动系统抗负载扰动性能的关键之一。现在的传统结构的LTID滑模观测器存在频率抖动大&#xff0c;估计精度差的缺点&#xff0c;限制了其在高性能伺服系统中的应用。 本模型推导分析了传统LTID滑模观测器…

LLM大语言模型(十三):ChatGLM3-6B兼容Langchain的Function Call的一步一步的详细转换过程记录

# LangChain&#xff1a;原始prompt System: Respond to the human as helpfully and accurately as possible. You have access to the following tools: Calculator: Useful for when you need to calculate math problems, args: {\calculation\: {\description\: \calcul…

【软件安装】(十六)双系统Ubuntu22.04引导启动菜单的默认项

一个愿意伫立在巨人肩膀上的农民...... 好学的人总是喜欢在电脑上安装双系统&#xff0c;可是安装好系统之后&#xff0c;就会出现默认启动优先级的苦恼&#xff0c;如果在Bios中设置Windows引导启动为优先启动&#xff0c;那么每次想要进如Ubuntu系统就都需要重新设置Bios。如…

ubuntu的镜像源+bionic版本

首先第一步 查找和你自己ubuntu版本匹配的版本号 匹配代号如下 在终端输入lsb_release -a查看自己系统上的版本号 可以看到我这个版本号的代号是bionic。 每个版本的镜像文件都是有规律的。 bionic版本的源如下 # 阿里源 deb http://mirrors.aliyun.com/ubuntu/ bionic ma…