当前位置: 首页 > news >正文

傻白探索Chiplet,Design Space Exploration for Chiplet-Assembly-Based Processors(十三)

阅读了Design Space Exploration for Chiplet-Assembly-Based Processors这篇论文,是关于chiplet设计空间探索的,个人感觉核心贡献有两个:1.提出使用整数线性规划算法进行Chiplet的选择;2.基于RE和NRE提出了一个cost模型,具体的一些记录如下:


目录

一、Article:文献出处(方便再次搜索)

(1)作者

(2)文献题目

(3)文献时间

(4)引用

二、Data:文献数据(总结归纳,方便理解)

(1)背景介绍

(2)目的

(3)结论

(4)主要实现手段

(5)实验结果

(6)其他积累

三、Comments对文献的想法 (强迫自己思考,结合自己的学科)

四、Why:为什么看这篇文献 (方便再次搜索)

五、Summary:文献方向归纳 (方便分类管理)


一、Article:文献出处(方便再次搜索)

(1)作者

  • Saptadeep Pal, Puneet Gupta (美国加州大学洛杉矶分校电气与计算机工程系,美国加州大学洛杉矶分校)
  • Daniel Petrisko, Rakesh Kumar (美国伊利诺伊州香槟大学香槟分校电气与计算机工程系)

(2)文献题目

  • Design Space Exploration for Chiplet-Assembly-Based Processors

(3)文献时间

  • APRIL, 2020
  • IEEE Transactions on Very Large Scale Integration (VLSI) Systems(是全球半导体行业与ISSCC齐名的最重要会议)

(4)引用

  • S. Pal, D. Petrisko, R. Kumar and P. Gupta, "Design Space Exploration for Chiplet-Assembly-Based Processors," in IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol. 28, no. 4, pp. 1062-1073, April 2020, doi: 10.1109/TVLSI.2020.2968904.

二、Data:文献数据(总结归纳,方便理解)

(1)背景介绍

  • 不断增加的处理器设计、验证、制造和管理成本——正在给可用于目标应用程序的系统数量带来巨大的压力。随着这些成本的增加,设计和制造大量的片上系统(SoC)可能变得不可行。
  • 由于新的设计和组装方法(eg:EMIB)正在被开发和商业化,一个大型处理器SoC现在可以分解成多个、更小的Chiplet component,不同的Chiplet可以使用类似SoC的低延迟和高带宽互连的substrate进行连接,然后重新集成到一个完整的处理器系统中。
  • Chiplet的优势:更高的良率,可能会降低系统成本(多个Chiplet可以均摊设计和制造成本,且不同的Chiplet可以基于不同的技术节点),可以实现异构设计,低成本的硬件定制(针对不同的应用程序,可以选择不同的Chiplet组合来构建许多系统)
在prior-art中,研究的都是如何找到一个性能最好的处理器,以及在media processor中进行DSE。而本文的目标是开发一个基于Chiplet-assembly的DSE算法,同时实现定制化和成本化。

(2)目的

作者在introduction中提出了三个问题,这三个问题也是本文探究的目标:

  • 当一组Chiplet component将被用来构建一组系统以针对不同的应用程序时,应该如何设置微体系结构DSE(Design Space Exploration)问题?也就是说,应该如何设计Chiplet 微体系结构,以满足不同应用程序的需求,并优化系统的性能和功耗?
  • 当每个系统仅针对一个应用子集而不是整个应用集时,不同Chiplet的微体系结构特征以及相应的系统是什么?也就是说,在这种情况下,不同的Chiplet应该具有何种微体系结构特征,以及相应的系统应该如何设计,以满足不同应用程序的需求?
  • 当考虑到设计和制造的总成本时,Chiplet组装方法有什么好处,以及需要构建哪些Chiplet和相应的系统?也就是说,Chiplet组装方法可以带来哪些成本上的优势,以及应该构建哪些Chiplet和相应的系统,以达到最优的性能和功耗?

(3)结论

  • 开发了第一个Chiplet-assembly-based processor的微架构设计空间探索框架,使我们能够确定设计和制造所需要的最小Chiplet集,以使用最小的Chiplet集为应用程序提供近乎定制的系统性能;
  • 作者考虑通过同时解决Chiplet和制程技术选择来最小化总体设计/制造成本,并且在成本意识优化时(指在设计和制造过程中,考虑成本因素,以最小化总体成本的优化过程),Chiplet组装可以比SoC节省更多的成本
  • 展示了在不同的应用程序套件(从高性能到嵌入式应用程序)上执行Chiplet DSE的价值,而不是每个套件都进行探索。Chiplet可以在不同的基准套件中重复使用,从而最大限度地实现设计成本摊销的机会。(这句话我理解了好久,我感觉是因为multi-Chiplet可以每个Chiplet承担一个测试套件?所以可以一次测试多个,就不用挨个测试,从而节省时间和资源

(4)主要实现手段

A. 基于IntLP(整数线性规划)的Chiplet选择框架:

D_d^s 表示哪些Chiplet是系统的一部分。可以在初始Chiplet集合(D)中包含多个相同Chiplet微体系结构的副本,代表不同的技术节点。系统配置集(S)是由Chiplet组成的所有系统的集合。每个应用程序可以分配到任何系统上运行,与之相关的成本[n-tuple]包含功率、CPI性能、每条指令的能量(EPI)、EDP和总成本]由 W_s^a 给出,示意图如下:

一些假设:

  • 所有的Chiplet都采用标准的接口协议来相互通信,可拓展支持所有宽度的接口,并只增加一个额外的延时;
  • 在双核系统的不同内核上运行的两个应用程序不相互干扰,它们的总体性能是每个工作负载在单核上运行时IPC的总和
  • 对于性能模拟,假设L2 Cache 有 12-cycle access,将latency更改一个周期导致的性能差异可以忽略不计;
  • 计算平均能耗时排除了DRAM的能耗,因为其对结果影响不大;
  • 不同制程技术节点的Chiplet具有相同的微架构参数,即性能相同;

 DSE的方法是一个包含三个主要步骤的迭代过程:

  1. 首先,我们确定了一组有趣的初始系统配置来探索。
  2. 下一步,我们对这些初始系统配置进行了全因子探索。全因子探索是一种研究方法,它可以用来研究多个变量之间的相互作用,以及它们对结果的影响。它可以帮助研究人员更好地理解系统的行为,并确定最佳配置。
  3. 最后,根据IntLP DSE Framework优化算法来选择最佳的芯片和系统来覆盖给定的工作负载。

总的来说,生成设计空间的实验方法的整个步骤就是:

(1)确定设计参数;(2)确定设计空间;(3)确定设计变量;(4)确定设计约束;(5)确定设计目标;(6)确定设计优化算法;(7)运行设计优化算法;(8)评估设计空间。

B. Chiplet-assembly-based 成本模型:

关于Chiplet的成本可以分成两种,NRE和RE,分别如下:

  • NRE:Nonrecurring engineering cost,一次性开销,包括:体系结构、RTL设计、IP验证、物理设计、prototype、验证和掩模制造成本。
  • RE:recurring engineering cost(volume-dependent),非一次性开销,包括:晶圆制造的成本,产率和工艺复杂性是决定制造成本的主要因素。

考虑到制程技术会随着时间增长逐渐成熟,那yield也会随着时间提高,这个学习公式如下:

  其中,t指制程已投入使用年数,Y_{asymp} 是由diea area(A_{die}),缺陷密度(D_0)和clustering factor(a)共同决定的渐进yield。

现在考虑RE Cost(即晶圆制造成本,C^{mfg}),由die的数量(Vd)、晶圆成本(Cw)、yield(Y)和每个晶圆的die数量(Ndie)共同决定,公式如下:

当考虑到基于Chiplet assemblies的总成本最小化时,我们使用以下目标函数: 

其中,Va是应用程序a所需的系统数量。C^{int}是Chiplet的组装/集成成本,C_{d}^{mfg}是Chiplet d的制造成本,并使用第三个式子进行估算。NRE_d^t是一种依赖于制程技术的NRE成本,它包括物理设计、IP验证、原型、掩模集成本等。NRE_d^{nt}是一种与制程技术无关的NRE成本,包括体系结构、RTL开发和验证等。当使用特定的微体系结构在两个不同的技术节点上构建芯片时,NRE_d^{nt}被摊销;但是,每个技术节点的Chiplet都需要NRE_d^t费用。

注意:作者假设RE是晶圆制造的成本,且产率和工艺复杂性是决定制造成本的主要因素。考虑到核心Chiplet和缓存Chiplet之间的IO通信,增加了0.5mm2的面积开销。

(5)实验结果

  • 实验配置

  •  benchmarks

注意:模拟器将将运行100M条指令,以确保模拟器已经达到稳定状态,然后运行30M条指令,以获得更详细的性能数据

  • Chiplet Microarchitecture

Chiplet数目从2-4时,CPI Threshold从1.1到2时,每个Chiplet的微体系结构设置,如上图,我没太懂的是:论文中提到当Threshold=1.1时,Chiplet需要大于等于4才能work,但是看论文的意思却只写了2个Chiplet,我有些迷惑。

  • 实验一:在不同的技术节点上的标准化成本组件 

为了更准确地估计Chiplet的成本,作者还考虑了Logic和DRAM的cost difference(一般考虑单个Chiplet时最多考虑core+cache),其中:

  • Logic指的是逻辑电路,它是用来实现计算机系统中的功能的电路,包括控制电路、运算电路和存储电路等。
  • SRAM是静态随机存取存储器,它是一种高速存储器,常用于制作Cache,SRAM成本包括:内存编译器许可证的费用以及工程师的费用

 根据算法部分的成本公式进行计算,一些参数是参考以往论文来的,但是我没有很懂这个结果说明了什么。

  • 实验二:不同系统大小和技术成熟度下,Chiplet组装技术相对于SoC技术的成本效益

在EDP阈值约束下,以总成本最小化目标进行DSE操作。 其中,NRE设计成本只考虑一个核心的副本,相同的核心IP被复制多次并连接到互连IP上,所产生的设计成本将大致与具有互连的单核系统相似。如图6所示,基于Chiplet的组装比基于SoC的方法提供了巨大的成本效益。

  1. 当系统尺寸较小时,SoC产率较好。然而,在多核系统中,随着系统尺寸的增加,超过一定的die size后,SoC产率根据其良率曲线公式迅速下降。
  2. 此外,Chiplet的良率基本不变,但开发这些Chiplet的NRE成本随着系统规模的增长而摊销。虽然互连基板和Chiplet的组装成本随着系统的尺寸的增大而增加,但它占总成本的比例较小。因此,尽管系统集成成本略有增加,但降低了每个Chiplet的总成本。
  3. 当集成成本越高时,SoC与Chiplet组装之间的差距就越小。事实上,当系统尺寸较小时,Chiplet组装可能比SoC更昂贵。随着技术的成熟,SoC的成本会逐渐下降,但集成成本下降空间不大。
  • 实验三:使用CPI约束来最小化EDP

  1. 更多的Chiplet可以显著降低平均EDP。最初,添加更多Chiplet的好处非常明显(曲线下降速度非常快),因为从Chiplet中选择的前几个系统针对的是广泛的工作负载类,如内存绑定/计算绑定的应用程序。随着更多的Chiplet被添加,新系统主要针对outlier workload,从而导致增量比较缓慢。
  2. 当CPI Threshold非常严格(小)时,只有少数系统可供选择,因此EDP很快就会饱和。但是,对于更宽松(大)的CPI阈值,需要七到八个Chiplet才能获得接近最优的EDP。
注意:Outlier workload是指那些不属于正常工作负载的任务,例如大量的数据处理、计算密集型任务或者其他非常耗时的任务。
  • 实验四:在不同技术成熟度水平下EDP和总成本的tradeoff

  1. 较低的EDP阈值要求更多的系统来最小化成本,从而削减每个工作负载的设计空间,使得可供选择的系统较少。这会导致over costume,使得工作负载之间几乎没有系统共享。因此,需要构建这些系统的不同Chiplet的数量增加,从而导致NRE成本更高。
  2. 随着EDP阈值的放宽,优化开始选择较小的内核和较小的L2芯片块。总的来说,芯片块和系统的数量减少,在工作负载之间增加共享。增加共享有助于分摊NRE成本,从而降低总成本。
  3. 对于一个特定的总成本预算,随着技术的成熟,人们可以实现更好的整体EDP。因为技术逐渐成熟时,可以以相同的总成本构建更多的Chiplet,从而实现相同的目标性能。
  • 实验五:最小化Chiplet数量 V.S. 最小化总成本

 以最小化Chiplet数量为目标的优化并不一定会导致最小的总成本。如图8所示,当EDP阈值放宽时,Chiplet Minimization导致的Chiplet数量比Cost Minimization时更少。然而,设计和制造的总成本仍然远远高于Cost Minimization时的目标。这是因为Chiplet Minimization选择了更少但更大的Chiplet (低良率和成本)来满足所有工作负载的EDP阈值,而Cost Minimization选择了更多更小(更低成本)的Chiplet 来构建多个系统,每个Chiplet 片针对不同类型的工作负载。

(6)其他积累

什么是设计空间:

        指的是可以用来设计工作负载的可用资源,包括计算能力、存储能力、网络能力等。

关于测试指标:

  • CPI:指令周期指数,表示每条指令的平均执行时间,可以用来比较不同处理器的性能;
  • EDP:能耗密度,它是一种衡量系统能耗和性能之间的比率,用于衡量系统的能耗效率;EDP越低,说明能耗效率越低,即能耗小,性能高,此时系统数量就多,这样可以更好的分摊总成本,从而最小化成本,满足工作负载的需求;
  • EDAP:功能耗密度百分比,是系统能耗和性能之间的比率,用于衡量系统的能耗效率;系统供应商偏爱EDAP指标;
  • EDA2P:能耗密度的平方,也是系统能耗和性能之间的比率,可以更准确地衡量系统的能耗效率。芯片供应商偏爱这个指标,因为A2可以近似表示die的成本。

关于测试套件:

  • SPEC2006是一个由Standard Performance Evaluation Corporation(SPEC)开发的基准测试,用于衡量计算机系统性能。它包括了一系列的测试,包括多种应用程序,如数据库、视频编辑、游戏等,以及多种操作系统,如Linux、Windows等。
  • EEMBC是Embedded Microprocessor Benchmark Consortium(嵌入式微处理器基准测试联盟)的简称,是一个用于衡量嵌入式系统性能的基准测试。它包括了一系列的测试,包括多种嵌入式处理器,如ARM、MIPS等,以及多种嵌入式操作系统,如Linux、Android等。
  • SPLASH-2是一个用于衡量超级计算机系统性能的基准测试,由Stanford University开发。它包括了一系列的测试,包括多种超级计算机,如IBM Blue Gene、Cray XMT等,以及多种操作系统,如Linux、Unix等。
  • NPB是一个用于衡量并行计算机系统性能的基准测试,由NASA Ames Research Center开发。它包括了一系列的测试,包括多种并行计算机,如IBM Blue Gene、Cray XMT等,以及多种操作系统,如Linux、Unix等。

三、Comments对文献的想法 (强迫自己思考,结合自己的学科)

        阅读体验不太好,感觉写的略有些混乱,我倾向于在分析图表的时候,文字应该不要离图太远,我看的时候,明明已经在讲图八了又跳出去讲图六,我自己读起来不太顺畅。在讲述方法时,成本建模的部分和后面成本的分析是分开的,一开始看会不明白:这是一个chiplet assemble的问题,测量的是性能,为什么又考虑到成本(最重要的是几个成本公式,读起来关系有点跳脱),还有后面的分析,越看越糊涂……是我太菜了🆒/(ㄒoㄒ)/~~,里面还是涉及到很多基础知识,比如提到的:BEOL和FEOL等,本菜菜是第一次见,这是百度来的:

  • BEOL层是指Back-End-of-Line层,它是指晶圆上的最后一层,它包括金属层和多层互连层。
  • 金属层是指晶圆上的金属层,它用于连接晶圆上的元件。
  • FEOL层是指Front-End-of-Line层,它是指晶圆上的第一层,它包括晶圆上的掩模层和多层互连层。

还有我觉得最让人迷惑的是几个关键指标,我觉得没有说太清楚,出现的频率又高。EDP/EDAP/DEA2P,都是测试系统性能的指标,没有给出公式,难道是很常见的指标吗?反正我没有百度到。逻辑分析我觉得对新手也不友好,为什么EDP越低,系统数目要越多,workload的设计空间就越小,诸如此类这样的问题有很多,我也没看懂(;′⌒`)

四、Why:为什么看这篇文献 (方便再次搜索)

用于实验设计:

  • 了解更多关于Chiplet设计空间探索的相关问题
  • 看能否将IntLP算法和毕设联系起来

五、Summary:文献方向归纳 (方便分类管理)

Chiplet-Assembly-Based DSE
  • Design space exploration
  • 整数线性规划
  • cost model

相关文章:

傻白探索Chiplet,Design Space Exploration for Chiplet-Assembly-Based Processors(十三)

阅读了Design Space Exploration for Chiplet-Assembly-Based Processors这篇论文,是关于chiplet设计空间探索的,个人感觉核心贡献有两个:1.提出使用整数线性规划算法进行Chiplet的选择;2.基于RE和NRE提出了一个cost模型&#xff…...

系统分析师真题2020试卷相关概念一

对象系统测试的基本概念: 面向对象系统的单元测试包括方法层次的测试、类层次的测试和类树层次的测试。方法层次的测试类似于传统软件测试中对单个函数的测试; 测试技术: 方法层次的测试,单个函数的测试;常用的技术:等价类划分测试、组合功能测试、递归函数的测试和多态…...

20230215_数据库过程_渠道业务计算过程

—20221209 渠道产能 —自有人员工号表 shzc.xc_qdcn_pgtx_opertype —select * from shzc.xc_qdcn_pgtx_opertype for update ; —渠道基础目录 shzc.xc_qdcn_pgtx_qdtype —select * from shzc.xc_qdcn_pgtx_qdtype for update ; SQL_STRING:‘update shzc.xc_qdcn_pgtx_q…...

【C++】Expression的学习笔记

关于不同类别表达式的举例,请参考博文《C 中的值类别》 1. 左值和右值的简单理解 左值对应了具有内存地址的对象,而右值仅仅是临时使用的值对象。(引用自博文《C 中的值类别》)左值有名称(变量或常量名称&#xff09…...

[数据库迁移]-MySQL常见问题

[数据库迁移]-MySQL常见问题 森格 | 2023年2月 介绍:记录在MySQL数据库迁移过程中遇到的问题,以及解决方案。 文章目录[数据库迁移]-MySQL常见问题一、背景二、常见问题2.1 ERROR 20032.2 ERROR 12732.3 ERROR 10712.4 视图权限2.5 ERROR 1062三、总结一…...

C语言编译过程

C语言编译过程1、C语言编译过程2、单c文件编译实践3、多c文件编译实践4、define4.1、不带参宏4.2、带参宏4.3、带参宏和带参函数的区别5、选择性编译ifdef、ifndef、if5.1、#ifdef5.2、#ifndef5.3、#if6、静态库和动态链接库6.1、静态库实践6.1.1、将mylib.c制作成静态库6.1.2、…...

前端学习 ---常用标签

常用标签 1,文本标签 文本标签是双标签&#xff0c;自带加粗效果&#xff0c;有自己对应的文本大小&#xff0c;并且独占一行&#xff0c;有默认间距 一级标签&#xff1a;< h1 > < /h1 > 二级标签&#xff1a;< h2 > < /h2> 三级标签&#xff1a;&l…...

2023年PMP考试难不难?

整个考试的考察方向转向还是比较大的&#xff0c;基本上以“价值传递”和“以人为本”这两个出发点来考察项目经理所需要的能力。 1}新版提纲题目数量的变化 总题量从200道减少到180道&#xff0c;所以答题时间上相对变的宽裕一些。考试时间230分钟&#xff0c;中间有十分钟休…...

Netty 入门

文章目录一、概述1.1 Netty 是什么&#xff1f;1.2 Netty 的地位1.3 Netty 的优势二、Hello World2.1 目标2.2 服务器端2.3 客户端2.4 流程梳理三、组件3.1 EventLoop3.2 演示 NioEventLoop 处理 io 事件3.3 演示 NioEventLoop 处理普通任务3.4 演示 NioEventLoop 处理定时任务…...

收藏|一文掌握数据分析在企业的实际流程

一、数据分析概念 1.1 数据分析 是指用适当的统计分析方法对收集来的大量数据进行分析&#xff0c;将他们加以汇总和理解并消化&#xff0c;以求最大化地开发数据的功能&#xff0c;发挥数据的作用。 1.2 数据分析包括 描述性数据分析&#xff08;初级数据分析&#xff09;…...

100ask_imx6ull 输出PWM

查看PWM对应扩展板的引脚 100ask_imx6ul通过扩展板插槽来验证pwm波&#xff0c;所以这里通过扩展板的原理图及芯片手册可知&#xff0c;gpio4_io20&#xff0c;gpio4_io19分别对应着PWM8和PWM7。 设置设备树 打开官方NXP的工具i.MX pins v6工具&#xff0c;PWM7/PWM8的配置如…...

yolov5编译安卓APP:解决图像上全是检测框

yolov5编译安卓APP&#xff1a;解决图像上全是检测框前言一、第一个YOLOv5 APP1.参考链接2.详细说明3.APP检测时图像上全是框的解决方法二、第二个YOLOv5 APP1.参考链接2.详细说明3.APP检测时图像上全是框的解决方法三、其他1.APK打包2.修改APP图标与名字前言 YOLOv5编译安卓A…...

为什么我们需要地图?

想一想&#xff0c;武侠小说里面。一张藏宝图&#xff0c;引来江湖腥风血雨&#xff0c;要么是武功秘籍&#xff0c;要么是绝世宝剑&#xff0c;要么是富可敌国的财富&#xff0c;只要有了藏宝图&#xff0c;便可曲径通幽&#xff0c;到达彼岸。 由此可见&#xff0c;地图的重…...

攻防世界1.新手练习区

4.攻防世界1.新手练习区 1.view_source 访问url&#xff1a; http://111.200.241.244:48855/ 鼠标点击右键不起作用&#xff0c;F12审查元素 得到flag为cyberpeace{0f3a3e4ab8c8664f3cf40d4240ec7b53} 2.robots 访问url&#xff1a; http://111.200.241.244:34362/ rob…...

Python进阶篇(二)-- Django 深入模型

上一节提到了Django是基于MVC架构的Web框架&#xff0c;MVC架构追求的是“模型”和“视图”的解耦合。所谓“模型”说得更直白一些就是数据&#xff08;的表示&#xff09;&#xff0c;所以通常也被称作“数据模型”。在实际的项目中&#xff0c;数据模型通常通过数据库实现持久…...

ABAP SALV实现弹出ALV选择

问题场景 需要弹出一个ALV并获取选择的数据 实现思路 跳转屏幕弹出ALV&#xff08;通过SALV&#xff09;弹出ALV&#xff08;通过REUSE_ALV_POPUP_TO_SELECT&#xff09; 实现效果 因为这里需要的是单选&#xff0c;所以没有多选列 实现代码 MODULE sel_zfretype INPUT.…...

git check-pick,git patch 与 git stash 详解

大家好&#xff0c;我是 17。 今天和大家聊一聊 git check-pick&#xff0c;git patch 与 git stash 的用法。 git cherry-pick 为什么要用 cherry-pick? 不适合 merge 的场景就可以考虑 cherry-pick。 试想下面这些场景 只想同步分支的部分提交。两个分支是两上完全独立…...

OA漏洞-到处搜集整理

一米OA getfile.jsp 任意文件读取漏洞 原文链接 漏洞复现 一米OA getfile.jsp 任意文件读取漏洞 一米OA协同办公系统,集成了OA办公自动化系统、手机客户端、专业报表工具,为全国千万企业用户提供全功能、性价比高的OA软件。一米OA getfile.jsp文件存在任意文件读取漏洞&am…...

web端接收读卡器卡片信息

项目背景 通过电脑连接的读卡器读取卡片信息&#xff0c;并由web页面接收和处理卡片信息。 读卡器抛出卡片信息流程 卡片贴近或放置到读卡器上读卡器解析卡片信息&#xff0c;并形成固定格式的字符串&#xff0c;包括的信息有&#xff1a;卡片写入的数据、卡片原数据&#x…...

BUUCTF-练习场-WEB-第一部分(8道)

[极客大挑战 2019]EasySQL 1payload&#xff1a;1 or 11#是闭合前面的查询语句&#xff0c;or 11恒成立&#xff0c;可以使用or句子绕过判断&#xff0c;#用于注释&#xff0c;注释后面的内容不再执行&#xff0c;所以该sql命令会返回表内所有内容&#xff0c;其实就是实现一个…...

Java Reflection 实战- Class类

Java Reflection 实战 - Class Java 反射使得在运行时检查类、接口、字段和方法成为可能&#xff0c;而不需要在编译时知道类、方法等的名称。也可以使用反射来实例化新对象、调用方法和获取/设置字段值。 Java反射的功能相当强大&#xff0c;可以说是非常有用。例如&#xff…...

背包问题理解思路(01背包、完全背包、分组背包)

这两天把经典的三个背包问题看了一下&#xff0c;网上大多文章是以代码和公式为主&#xff0c;因为平时没刷过算法题所以理解起来花了些时间&#xff0c;固写一篇文章记录理解思路&#xff0c;本文不包含代码实现&#xff08;理解了思路代码实现应该是小问题&#xff0c;网上一…...

Mr. Cappuccino的第39杯咖啡——Kubernetes之深入理解Pod

Kubernetes之深入理解PodPod相关概念Pod详细配置清单Pod核心配置Pod基本配置1. 创建yaml文件2. 创建namespace并根据yaml文件创建资源3. 查看namespace下的pod列表以及pod的详细信息Pod中多个容器的名称和端口号不能相同Pod镜像拉取策略Pod环境变量Pod端口相关设置Pod资源相关配…...

SqlSession 和 SqlSessionTemplate 简单使用及注意事项

1、SqlSession 简单使用 先简单说下 SqlSession 是什么&#xff1f;SqlSession 是对 Connection 的包装&#xff0c;简化对数据库操作。所以你获取到一个 SqlSession 就相当于获取到一个数据库连接&#xff0c;就可以对数据库进行操作。 SqlSession API 如下图示&#xff1a;…...

1. QSaveFile和QFile的简单使用

1. 说明 QSaveFile和QFile两个类都是用来操作文件的&#xff0c;区别在于QSaveFile在对文件进行写入时有一种保护机制&#xff0c;再写入出错时&#xff0c;不会对源文件中的内容进行操作。该类在执行写操作时&#xff0c;会先将内容写入到一个临时文件中&#xff0c;如果没有…...

工业4.0是如何优化垃圾处理行业的

如今&#xff0c;工业4.0正在影响着制造业和物流等行业&#xff0c;其发展潜力在未来还有望进一步扩大。一些全球领先的垃圾处理公司已经开始在水处理和废物回收等领域应用工业4.0。工业4.0的创新给这个领域带来了一些必要的改进。随着环境危机的加剧&#xff0c;垃圾处理行业面…...

vue 动画(transition)

一、 实现原理 在插入、更新、移除 DOM 元素时&#xff0c;在合适的时候给元素添加样式类名&#xff0c;配合 CSS 样式使用&#xff0c;实现动画效果。 通俗来讲&#xff0c;就是将要进行动画操作的 DOM 元素用 transition 标签包裹起来。在此html元素运动前&#xff0c;运动…...

Python 爬虫工程师面试经验分享,金三银四

&#x1f643; 作为一个 Python 爬虫工程师&#xff0c;我可以分享一些我在面试中的经验和建议。 首先一点是在面试中要表现自信、友好、乐于合作&#xff0c;同时对公司的业务和文化也要有一定的了解和兴趣&#xff0c;这些也是公司在招聘中看重的因素。 文章目录&#x1f55b…...

MySQL实战篇-MySQL 降配导致的实例宕机

问题描述 由于近期对服务器进行了降配&#xff0c;该mysql数据库会进行批量写入操作&#xff0c;直接导致实例宕机 查看错误日志: 2021-02-02T09:09:23.557505Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 16791ms. The settings might not be optimal. (fl…...

时隔多年,这次我终于把动态代理的源码翻了个地儿朝天

本文内容整理自 博学谷狂野架构师 动态代理简介 ​ Proxy模式是常用的设计模式&#xff0c;其特征是代理类与委托类有同样的接口&#xff0c;代理类主要负责为委托类预处理消息、过滤消息、把消息转发给委托类&#xff0c;以及事后处理消息等。 用户可以更加结构图&#xff0…...

自己做电商网站吗/短视频代运营合作方案

问题出于安全原因&#xff0c;默认参数很严格&#xff0c;禁止root用户直接使用ssh登陆比如先用非root的帐户&#xff0c;登陆到ssh后&#xff0c;su成为root解决方案如果想直接用root登陆&#xff0c;则修改如下配置文件&#xff1a;vi /etc/ssh/sshd_config找到其中的如下一行…...

三好街 做网站/企业营销平台

Gradle是可以用于Android开发的新一代的 Build System&#xff0c; 也是 Android Studio默认的build工具。 Gradle脚本是基于一种JVM语言 -- Groovy&#xff0c;再加上DSL&#xff08;领域特定语言&#xff09;组成的。 因为Groovy是JVM语言&#xff0c;所以可以使用大部分的Ja…...

没备案的网站/网站推广优化外包公司

linux目录结构CentOS-8 目录结构/bin/存放系统命令的目录&#xff0c;普通用户和超级用户都可以执行。不过放在/bin下的命令在单用户模式下也可以执行/boot/系统启动目录&#xff0c;保存系统启动相关的文件&#xff0c;如内核文件和启动引导程序&#xff08;grub&#xff09;文…...

导购网站怎么做视频教学/品牌运营策划

一、画线 只有在drawRect中才能获取到跟view相关联的上下文 - (void)drawRect:(CGRect)rect {} 一条线 // 1.获取跟当前View相关联的layer上下文(画板)// 总结:目前获取的所有上下文都是以UIGraphics开头// CGContextRef:上下文类型// CG:CoreGraphics Ref:引用CGContextRef ct…...

做网站 先上线再调整/2021年最为成功的营销案例

可以将JAVA变量在JSP头部定义成全局变量。 然后可以分别在JS和JSP里调用。 因为可以将JS和JSP理解为两个相互独立的块。这2个块里面的变量都是局部变量。 而局部变量是不共享的。 所以没法取到。...

网站安装教程/怎么优化自己网站的关键词

原贴地址&#xff1a;http://bbs.51js.com/viewthread.php?tid65118 1、一行代码 “偷取所有图片” 试一下下面这行代码能取出所有图片&#xff0c;哈很好玩吧&#xff1f; javascript:adocument.body.getElementsByTagName("img");var b"";for(i0;i<…...