CN116841804A - 一种基于chiplet的动态重配置方法和芯片 - Google Patents
一种基于chiplet的动态重配置方法和芯片 Download PDFInfo
- Publication number
- CN116841804A CN116841804A CN202311120287.7A CN202311120287A CN116841804A CN 116841804 A CN116841804 A CN 116841804A CN 202311120287 A CN202311120287 A CN 202311120287A CN 116841804 A CN116841804 A CN 116841804A
- Authority
- CN
- China
- Prior art keywords
- chiplet
- fuzzy
- chip
- fuzzy logic
- logic algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 52
- 230000006870 function Effects 0.000 claims abstract description 48
- 230000008439 repair process Effects 0.000 claims abstract description 25
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 230000010076 replication Effects 0.000 claims abstract description 9
- 238000012544 monitoring process Methods 0.000 claims description 19
- 239000013598 vector Substances 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 5
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 claims description 3
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 claims description 3
- 230000009471 action Effects 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 7
- 230000008094 contradictory effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000003362 replicative effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008263 repair mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/048—Fuzzy inferencing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Automation & Control Theory (AREA)
- Artificial Intelligence (AREA)
- Fuzzy Systems (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Quality & Reliability (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种基于Chiplet的动态重配置方法和芯片,属于集成电路技术领域,所述方法包括:为每个Chiplet确定一种生命体模型,所述生命体模型的基本功能为复制和修复;利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略;其中,利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略,包括:基于模糊逻辑算法的输出和芯片上各Chiplet当前的效用确定需要复制的Chiplet;基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间。本发明基于Chiplet的动态重配置方法提供了一种高效、可靠、自适应的解决方案。
Description
技术领域
本发明属于集成电路技术领域,尤其涉及一种基于Chiplet的动态重配置方法和芯片。
背景技术
随着集成电路技术的不断发展,Chiplet-based design(基于Chiplet的设计)已经成为了一种主流的设计方法。Chiplet是一种小型的、独立的模块,可以被组合在一起来构建更复杂的系统。这种方法的优点在于,它可以提高生产效率,减少设计和验证的复杂性,并提高集成电路的性能和能效。
尽管如此,基于Chiplet的设计仍然面临着许多挑战。首先,随着集成电路的规模和复杂性的增加,对于如何管理和优化各个Chiplet的配置,以满足不断变化的需求和环境,已经成为了一个重要的问题。其次,系统可能需要处理模糊的、不确定的或者矛盾的需求,这使得决策变得困难。此外,Chiplet可能会出现故障,系统需要能够有效地处理这些故障,以保证系统的可靠性和性能。
目前的解决方案可能无法在面对模糊或不确定的需求时做出最优的决策。此外,现有的解决方案通常无法处理Chiplet的自我复制和自我修复,这限制了系统的可靠性和自适应性。
因此,为了解决上述问题,亟需一种高效、可靠、自适应的Chiplet管理和优化方法。本发明基于Chiplet的动态重配置方法提供了一种高效、可靠、自适应的解决方案。
发明内容
针对上述现有技术中存在的缺陷,本发明提供一种基于Chiplet的动态重配置方法,所述方法包括:
为每个Chiplet确定一种生命体模型,所述生命体模型的基本功能为复制和修复;
利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略;
其中,利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略,包括:
基于模糊逻辑算法的输出和芯片上各Chiplet当前的效用确定需要复制的Chiplet;
基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间。
其中,为模糊逻辑算法定义模糊集和隶属函数,包括:
定义三个模糊集"芯片故障的严重程度","备用Chiplet的数量","当前的任务需求";
每个模糊集中都有代表不同程度的模糊子集;
为每个模糊子集定义隶属函数,每个模糊子集都有一个隶属函数来描述故障的严重程度。
其中,将精确的输入值,转化为模糊集;
所述精确的输入值包括:实际的"芯片故障的严重程度"、实际的"备用Chiplet的数量"、实际的"当前的任务需求"。
其中,定义模糊规则来描述不同情况下的行为;
基于模糊化的输入值和模糊规则进行推理和匹配,得出模糊的输出值;
将模糊逻辑的输出值转化为具体的值,用来指导优化策略。
其中,所述模糊逻辑算法的输出变量,包括"何时开始修复故障的Chiplet"和"复制几个Chiplet";
以及为每个输出变量定义一组模糊子集。
其中,基于模糊逻辑算法的输出和芯片上各Chiplet当前的效用确定需要复制的Chiplet,包括:
计算芯片上每个Chiplet的效用,选择效用最高的N个Chiplet进行复制,所述N为"复制几个Chiplet"这一模糊逻辑算法输出变量对应的精确数值。
其中,计算每个Chiplet的效用,包括定义一个如下的效用函数:
效用=w1exp(-功耗/p1)+w2/>任务匹配程度-w3/>log(1+故障程度),
其中,w1、w2和w3是权重,p1是参数,exp表示指数函数,log表示对数函数。
其中,为每个Chiplet定义一个能力向量,每个维度代表不同类型的任务的处理能力;
对于每个给定的任务,定义一个需求向量,每个维度表示该任务对不同类型的运算的需求;最后通过计算这两个向量的余弦相似度来得到任务匹配程度;
其中,余弦相似度的范围是-1到1,其中1表示完全匹配,-1表示完全不匹配。
其中,所述基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间,包括:
通过以下公式来计算需要修复的Chiplet的修复启动时间T:
,
其中,O=[O[0],O[1],O[2]]是模糊算法的输出矩阵,表示"高优先级"、"普通级"、"低优先级"的模糊隶属度;U是需要修复的Chiplet的效用;y1和y2是权重,可以根据实际需要进行调整;t1、t2和t3为对应于模糊逻辑算法的输出"何时开始修复故障的Chiplet"的子集"高优先级"、"普通级"、"低优先级"的标准启动时间。
本发明还公开了一种基于Chiplet的动态重配置芯片,用于实现前述方法,所述芯片包括:
多个Chiplet,在每个Chiplet上集成性能计数器,以及在每个Chiplet的硬件中应用内建的复制机制,硬件故障容忍和自我修复技术;
监测模块,用于利用守护进程或者后台任务定期读取性能计数器的值;
重配置模块,用于接收来自监测模块的触发信号,通过重配置控制逻辑来根据接收到的触发信号来触发重配置,以及用于确定重配置策略并完成重配置的控制操作的动作;
以及,基于动态重配置的触发时机触发对所述Chiplet的动态重配置策略,包括任务监测、确定达到触发条件、以及传递触发信号;
控制系统,用于基于模糊逻辑算法确定的最优结果动态地调整Chiplet的配置。
本发明通过动态地调整Chiplet的配置,可以根据当前的需求和环境,优化系统的性能。通过自我复制和自我修复的能力,可以提高系统对故障的抵抗力,增强系统的可靠性。通过在硬件和软件层面进行设计,每个Chiplet都具有一定的智能和自主性,可以自我管理和自我优化,这降低了系统管理的复杂性。同时,本发明基于模糊逻辑算法,系统可以处理模糊的、不确定的或者矛盾的需求,使得系统能够更好地适应动态变化的需求和环境。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的一种基于Chiplet的动态重配置方法的流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本发明实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。
随着集成电路的规模和复杂性的增加,管理和优化各个Chiplet的配置变得越来越复杂。系统需求可能是模糊的、不确定的或者矛盾的,这使得决策变得困难。系统的需求和环境可能会随时间动态变化,系统需要能够快速和有效地响应这些变化。Chiplet可能会出现故障,系统需要能够有效地处理这些故障,以保证系统的可靠性和性能。因此,本发明提出一种基于Chiplet的动态重配置方法应用了模糊逻辑算法和生命体模型,以解决在系统设计和优化中面临的诸多问题。
如图1所示,本发明公开了一种基于Chiplet的动态重配置方法,所述方法包括:
为每个Chiplet确定一种生命体模型,包括生命的基本功能如复制、修复,通过在硬件和软件层面进行设计,使得每个Chiplet都具有一定的智能和自主性,可以自我管理和自我优化。
利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略。基于模糊逻辑算法以处理不确定性和模糊性,使得系统能够在面对模糊的、不确定的或者矛盾的需求时,也能做出最优的决策。
其中,利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略,包括:
基于模糊逻辑算法的输出和芯片上各Chiplet当前的效用确定需要复制的Chiplet。
基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间。
最后,芯片的控制系统基于模糊逻辑算法确定的最优结果动态地调整Chiplet的配置。
本发明通过动态地调整Chiplet的配置,可以根据当前的需求和环境,优化系统的性能。通过自我复制和自我修复的能力,可以提高系统对故障的抵抗力,增强系统的可靠性。通过在硬件和软件层面进行设计,每个Chiplet都具有一定的智能和自主性,可以自我管理和自我优化,这降低了系统管理的复杂性。同时,本发明基于模糊逻辑算法,系统可以处理模糊的、不确定的或者矛盾的需求,使得系统能够更好地适应动态变化的需求和环境。
可见,本发明基于Chiplet的动态重配置方法提供了一种高效、可靠、自适应的解决方案。
在某一实施例中,在硬件层面,每个Chiplet的硬件设计包括一种内建的复制机制,比如通过FPGA的动态重配置能力,可以复制特定的硬件配置到其他Chiplet中。通过在Chiplet设计中应用硬件故障容忍和自我修复技术,例如冗余硬件可以在一部分硬件发生故障时继续保持系统运行,而内建的故障检测和修复机制可以在检测到故障时启动修复。
在软件层面,复制可以通过克隆软件状态和配置来实现,使得一个Chiplet可以复制另一个Chiplet的软件环境和运行状态。对于软件层面的修复,如故障恢复和软件冗余,可以在软件出现错误时自动修复。
通过为每个Chiplet确定复制和修复的生命体模型,让每个Chiplet都具备自主性和智能,使其能够自我复制、自我修复,从而实现人工生命体的基本功能,包括在确定需要对Chiplet进行修复时,对该Chiplet进行复制后,再对该Chiplet进行修复。
在某一实施例中,基于动态重配置的触发时机触发对对所述Chiplet的动态重配置策略,包括任务监测、确定达到触发条件、以及传递触发信号。
其中,通过集成硬件性能计数器PC(PerformanceCounters)实现对Chiplet的监测。在基于Chiplet技术的芯片中设置一个监测模块来定期读取这些计数器的值,收集任务执行的详细信息。
触发条件设定为当至少一个Chiplet的故障程度超过阈值时触发重配置。故障程度可以通过PC计数器监控系统的性能和运行情况来获得。例如通过监控Chiplet的错误日志,计算一定时间段内发生的错误数量,所述错误数量与可容忍的最大错误数量的比值可以作为故障程度的一个度量方式。
在确定触发条件后,当满足触发条件时,监测模块会生成一个触发信号,并将这个信号发送到重配置模块。
在某一实施例中,为了实现监测模块的功能,需要在每个Chiplet上集成性能计数器。这些计数器可以通过ASIC设计或者FPGA编程来实现,使用硬件描述语言如VHDL或Verilog。
在监测模块中集成监测算法,利用守护进程或者后台任务定期读取性能计数器的值,并将这些值转化为可理解的任务执行信息,上述进程通过操作系统的定时器功能来实现定期读取。
在软件层面中设定阈值,并编写逻辑来判断读取的数值是否超过阈值。如果超过阈值,那么生成触发信号并发送给重配置模块。这个触发信号可以通过系统调用,消息队列,或者信号等机制发送。
在某一实施例中,为了实现重配置模块的功能,需要在硬件以及软件层面接收来自监测模块的触发信号,通过重配置控制逻辑来根据接收到的触发信号来触发重配置,重配置控制逻辑需要接入系统的控制总线,以实现对Chiplet的动态控制。所述重配置逻辑用于确定重配置策略并完成重配置的控制操作的动作。
在接收到触发信号后,执行具体的重配置操作,包括断开或者连接Chiplet之间的连接,调整Chiplet的工作状态等,通过可重配置的互连网络,动态可控的工作状态等实现。
通过ASIC设计或者FPGA编程来实现接收触发信号,使用硬件描述语言如VHDL或Verilog。
通过可重配置的互连网络实现重配置操作,以实现Chiplet之间的动态连接和断开。这个网络可以通过ASIC设计或者FPGA编程来实现,使用硬件描述语言如VHDL或Verilog。
同时,为了接收来自监测模块的触发信号,并根据信号来控制互连网络的重配置,需要通过操作系统的设备驱动接口来控制硬件。
在某一实施例中,Chiplet(芯片组件)是一种模块化的硬件设计,每个Chiplet都是一个硬件组件,可以包括处理器核心、内存、I/O接口、硬件加速器等。在一个多Chiplet系统中,这些Chiplet通过高速互连总线连接进行协同工作。
操作系统通常不会直接运行在每个单独的Chiplet上,而是运行在由多个Chiplet组成的整个系统上。操作系统负责管理和协调系统的各种资源,包括处理器、内存、I/O设备等。在多Chiplet系统中,操作系统可能需要支持多处理器管理、分布式内存管理等复杂功能。
在一些应用场景如边缘计算中,定制化的Chiplet上可能运行一个轻量级的操作系统或者固件。例如,在一个嵌入式系统中,一个处理器Chiplet运行一个实时操作系统。
在某一实施例中,使用模糊逻辑算法,包括:
步骤s1、定义模糊集和隶属函数。
定义模糊集"芯片故障的严重程度","备用Chiplet的数量","当前的任务需求",每个模糊集中都有代表不同程度的模糊子集。
为每个模糊子集定义隶属函数。"故障严重程度"可以有"轻度"、"中度"和"重度"三个模糊子集,每个模糊子集都有一个隶属函数来描述故障的严重程度。
步骤s2、模糊化获得模糊集。
将精确的输入值,例如实际的"芯片故障的严重程度"、"备用Chiplet的数量"、"当前的任务需求",转化为模糊集。
步骤s3、定义模糊规则。
定义模糊规则来描述不同情况下的行为。例如,"如果故障严重程度是重度,且备用Chiplet的数量少,那么修复的紧急程度是高"。
步骤s4、模糊推理。
基于模糊化的输入值和模糊规则进行推理和匹配,得出模糊的输出值。
步骤s5、解模糊化。
将模糊逻辑的输出值转化为具体的值,这个值将用来指导优化策略。
在某一实施例中,对于模糊集和隶属函数的定义,需要先确定模糊集的范围,然后定义每个模糊集的隶属函数,隶属函数输出通常是一个介于0和1之间的值,表示某个具体的输入值属于该模糊集的程度。
在某一实施例中,对于"芯片故障的严重程度"这个模糊集和其隶属函数,有如下定义:
定义模糊集:
对"芯片故障的严重程度"这个模糊集,它可能的取值范围是[0,100]。
将这个范围划分为三个模糊子集:"轻度"、"中度"和"重度":
"轻度":故障程度x在[0,30]范围内。
"中度":故障程度x在[20,80]范围内。
"重度":故障程度x在[70,100]范围内。
子集范围是有重叠的,这是因为模糊逻辑允许一个值同时属于多个模糊子集,但是属于不同模糊子集的程度可能不同。
定义隶属函数:
隶属函数用来描述一个具体的输入值属于某个模糊子集的程度。其输出通常是一个介于0和1之间的值。
对于"轻度"故障,定义如下的隶属函数:
er_light(x)=1,若x<=10
(30-x)/20,若10<x<30
0,若x>=30
对于"中度"故障,定义如下的隶属函数:
er_medium(x)=0,若x<=20orx>=80
(x-20)/30,若20<x<=50
(80-x)/30,若50<x<80
对于"重度"故障,定义如下的隶属函数:
er_severe(x)=0,若x<=70
(x-70)/30,若70<x<100
1,若x>=100
对于一个具体的芯片的故障程度,例如45,可以通过这些隶属函数计算出它属于"轻度"、"中度"和"重度"的程度。然后在模糊推理中使用这些程度来确定修复的紧急程度。
在某一实施例中,不同于对Chiplet的故障程度进行监测进而触发重配置,芯片的"故障程度"这个参数通常是由实际的系统故障状况来确定的,故障程度"是一个介于0和100之间的值,其中0表示没有故障,100表示最严重的故障。
芯片故障程度=(Chiplet故障数量/总的Chiplet数量)(故障Chiplet的平均重要性/最大的重要性)/>100
其中,
"Chiplet故障数量"是当前有故障的Chiplet的数量,
"总的Chiplet数量"是系统中总共的Chiplet的数量。这个值是确定的,可以直接从系统参数中获取,
"故障Chiplet的平均重要性"是所有有故障的Chiplet的重要性的平均值。每个Chiplet的重要性需要根据它的功能来预先确定。
"最大的重要性"是可能的最大的故障Chiplet重要性,例如芯片内的所有Chiplet均发生了故障。这个值需要根据系统的设计来预先确定,如对单一芯片构成的系统可以确定为100。而对于多Chiplet芯片构成的更大系统,则根据该Chiplet芯片在该整体系统中的重要性来确定,其中重要性越高,最大重要性数值应该越小。
这个公式会返回一个介于0和100之间的值,表示故障的严重程度。例如,如果当前有45%的Chiplet有故障,而这些故障的Chiplet的平均重要性是最大重要性的60%,那么故障程度就是4560=27。
在某一实施例中,备用Chiplet的数量是芯片系统中当前可用于替换故障Chiplet的备用Chiplet的数量,是当前剩余冗余备份的Chiplet的数量。这个值可以直接从系统状态中获取。
备用Chiplet的数量范围划分为三个模糊子集:"少"、"中等"和"多"。
"少":备用Chiplet的数量x在[0,5]范围内。
"中等":备用Chiplet的数量x在[4,10]范围内。
"多":备用Chiplet的数量x在[9,20]范围内。
对于备用Chiplet的数量,定义以下的隶属函数:
"少"的隶属函数bc_few(x)=1,若x<=2
(5-x)/3,若2<x<5
0,若x>=5
"中等"的隶属函数bc_medium(x)=0,若x<=4orx>=10
(x-4)/3,若4<x<=7
(10-x)/3,若7<x<10
"多"的隶属函数bc_many(x)=0,若x<=9
(x-9)/2,若9<x<11
1,若x>=11
在某一实施例中,任务需求定义为当前的处理任务数量,划分为三个模糊子集:"轻"、"中等"和"重":
"轻":任务需求x在[0,20]范围内。
"中等":任务需求x在[15,50]范围内。
"重":任务需求x在[40,100]范围内。
并定义以下的隶属函数:
"轻"的隶属函数ta_light(x)=1,若x<=10
(20-x)/10,若10<x<20
0,若x>=20
"中等"的隶属函数ta_medium(x)=0,若x<=15orx>=50
(x-15)/10,若15<x<=25
(50-x)/25,若25<x<50
"重"的隶属函数ta_heavy(x)=0,若x<=40
(x-40)/10,若40<x<50
1,若x>=50
在某一实施例中,通过模糊集划分,将各个精确的输入值模糊化,通过模糊化获得模糊集。假设输入值如下:
芯片故障的严重程度:55,备用Chiplet的数量:7,当前的任务需求:40。
芯片故障的严重程度的输入值为55,模糊子集定义为:"轻度":[0,30],"中度":[20,80],"重度":[70,100]
计算结果为:
在"轻度"子集中的隶属度:0,
在"中度"子集中的隶属度:0.83,
在"重度"子集中的隶属度:0。
所以,故障的严重程度可以被模糊化为:{"轻度":0,"中度":0.83,"重度":0}。
同理,备用Chiplet的数量可以被模糊化为:{"少":0,"中等":1,"多":0}。
同理,当前的任务需求可以被模糊化为:{"轻":0,"中等":0.4,"重":0}。
对于这三个模糊集,我们可以使用一个33的矩阵来表示,每一行表示一个输入的模糊化结果:{[0,083,0],[0,1,0],[0,0.4,0]}。
在某一实施例中,定义模糊规则来描述不同情况下的行为。
首先明确输入和输出的模糊集,然后根据系统行为定义模糊规则,例如,如果当故障严重度是重度、备用Chiplet的数量少、当前的任务需求重时,修复的紧急程度应该是高,那么定义一个相应的模糊规则:"如果故障严重程度是重度,且备用Chiplet的数量少,且当前的任务需求重,那么修复的紧急程度是高"。
为了描述系统的全部可能行为,需要定义一组模糊规则,覆盖所有可能的输入和输出的组合,以定义全部可能的模糊规则。
在某一实施例中,输出变量包括:"何时开始修复故障的Chiplet"。为输出变量定义一组模糊子集,例如:
"何时开始修复故障的Chiplet":可以被划分为"高优先级"、"普通级"、"低优先级"。
在某一实施例中,输出变量还包括:"复制几个Chiplet"。
所述"复制几个Chiplet",可以被划分为"一个"、"二个"、"三个"。设置有限的复制个数,以限制芯片的自我修复能力。
在某一实施例中,为每个输出变量定义一组模糊规则。例如:
"如果故障严重程度是重度,且备用Chiplet的数量少,且当前的任务需求重,那么应作为高优先级立即开始修复故障的Chiplet,并复制一个Chiplet";
"如果故障严重程度是轻度,且备用Chiplet的数量多,且当前的任务需求轻,那么作为低优先级最后开始修复故障的Chiplet,并复制第三个Chiplet"。
在某一实施例中,当输入变量的模糊集中存在大于一个非0变量时,选择较大的变量对应的模糊子集。
在某一实施例中,在模糊规则定义时考虑输入变量的模糊集中存在大于一个非0变量的情形,对存在重叠的区间进行定义,如在变量对应的集合A中存在重叠的k、j子集,那么需要在设计模糊规则时考虑k、j以及k and j的三种情形。
在某一实施例中,对于每一种规则,确定一个模糊算法对于"何时开始修复故障的Chiplet"的输出矩阵,例如O=[0.2,0.5,0.3],表示"高优先级"、"普通级"、"低优先级"的模糊隶属度为0.2、0.5和0.3。所述输出矩阵的模糊隶属度的具体数值在规则确定时进行设定,需要考虑各个规则对应输入的组合情况来设定。
在某一实施例中,将模糊的输出值转化为具体的值进行解模糊化,这个值将用来指导优化策略,包括将输出的类别以编码的形式进行表述,对于"何时开始修复故障的Chiplet"这一输出对应的子集"高优先级"、"普通级"、"低优先级",分别对应编码数值a、b、c,其中编码数值a、b、c为0到1之间的数值。对于"复制几个Chiplet"的子集"一个"、"二个"、"三个",分别对应精确数值表示为:1、2、3。
在某一实施例中,计算每个Chiplet的效用,选择效用最高的N个Chiplet进行复制,所述N为"复制几个Chiplet"这一模糊逻辑算法输出变量对应的精确数值。
在某一实施例中,计算每个Chiplet的效用,包括定义一个如下的效用函数:
效用=w1exp(-功耗/p1)+w2/>任务匹配程度-w3/>log(1+故障程度),
其中,w1、w2和w3是权重,p1是参数,exp表示指数函数,log表示对数函数。
在某一实施例中,通过监控Chiplet的错误日志,计算一定时间段内发生的错误数量,所述错误数量与可容忍的最大错误数量的比值可以作为该Chiplet的故障程度的具体数值。
在某一实施例中,为每个Chiplet定义一个能力向量,每个维度代表不同类型的任务(如浮点运算,整数运算等)的处理能力。对于每个给定的任务,定义一个需求向量,每个维度表示该任务对不同类型的运算的需求。然后,通过计算这两个向量的余弦相似度来得到任务匹配程度。余弦相似度的范围是-1到1,其中1表示完全匹配,-1表示完全不匹配。
在某一实施例中,基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间,包括预先设定的三种启动时间为t1、t2和t3(对应于"高优先级"、"普通级"、"低优先级"),并通过以下公式来计算需要修复的Chiplet的修复启动时间T:
,
其中,O=[O[0],O[1],O[2]]是模糊算法的输出矩阵,表示"高优先级"、"普通级"、"低优先级"的模糊隶属度;U是需要修复的Chiplet的效用;y1和y2是权重,可以根据实际需要进行调整;t1、t2和t3为对应于模糊逻辑算法的输出"何时开始修复故障的Chiplet"的子集"高优先级"、"普通级"、"低优先级"的标准启动时间。
本发明通过动态地调整Chiplet的配置,可以根据当前的需求和环境,优化系统的性能。通过自我复制和自我修复的能力,可以提高系统对故障的抵抗力,增强系统的可靠性。通过在硬件和软件层面进行设计,每个Chiplet都具有一定的智能和自主性,可以自我管理和自我优化,这降低了系统管理的复杂性。同时,本发明基于模糊逻辑算法,系统可以处理模糊的、不确定的或者矛盾的需求,使得系统能够更好地适应动态变化的需求和环境。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。
Claims (10)
1.一种基于Chiplet的动态重配置方法,所述方法包括:
为每个Chiplet确定一种生命体模型,所述生命体模型的基本功能为复制和修复;
利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略;
其中,利用模糊逻辑算法基于监测的芯片的运行状态获得的输出值来指导优化策略,包括:
基于模糊逻辑算法的输出和芯片上各Chiplet当前的效用确定需要复制的Chiplet;
基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间。
2.如权利要求1所述的一种基于Chiplet的动态重配置方法,其特征在于,为模糊逻辑算法定义模糊集和隶属函数,包括:
定义三个模糊集,分别为:芯片故障的严重程度,备用Chiplet的数量,当前的任务需求;
每个模糊集中都有代表不同程度的模糊子集;
为每个模糊子集定义隶属函数,每个模糊子集都有一个隶属函数来描述故障的严重程度。
3.如权利要求2所述的一种基于Chiplet的动态重配置方法,其特征在于,
将精确的输入值,转化为模糊集;
所述精确的输入值包括:实际的芯片故障的严重程度、实际的备用Chiplet的数量、实际的当前的任务需求。
4.如权利要求3所述的一种基于Chiplet的动态重配置方法,其特征在于,
定义模糊规则来描述不同情况下的行为;
基于模糊化的输入值和模糊规则进行推理和匹配,得出模糊的输出值;
将模糊逻辑的输出值转化为具体的值,用来指导优化策略。
5.如权利要求1所述的一种基于Chiplet的动态重配置方法,其特征在于,
所述模糊逻辑算法的输出变量,包括:何时开始修复故障的Chiplet和复制几个Chiplet;
以及为每个输出变量定义一组模糊子集。
6.如权利要求1所述的一种基于Chiplet的动态重配置方法,其特征在于,基于模糊逻辑算法的输出和芯片上各Chiplet当前的效用确定需要复制的Chiplet,包括:
计算芯片上每个Chiplet的效用,选择效用最高的N个Chiplet进行复制,所述N为"复制几个Chiplet"这一模糊逻辑算法输出变量对应的精确数值。
7.如权利要求6所述的一种基于Chiplet的动态重配置方法,其特征在于,
计算每个Chiplet的效用,包括定义一个如下的效用函数:
效用=w1exp(-功耗/p1)+w2/>任务匹配程度-w3/>log(1+故障程度),
其中,w1、w2和w3是权重,p1是参数,exp表示指数函数,log表示对数函数。
8.如权利要求7所述的一种基于Chiplet的动态重配置方法,其特征在于,
为每个Chiplet定义一个能力向量,每个维度代表不同类型的任务的处理能力;
对于每个给定的任务,定义一个需求向量,每个维度表示该任务对不同类型的运算的需求;最后通过计算这两个向量的余弦相似度来得到任务匹配程度;
其中,余弦相似度的范围是-1到1,其中1表示完全匹配,-1表示完全不匹配。
9.如权利要求1所述的一种基于Chiplet的动态重配置方法,其特征在于,所述基于模糊逻辑算法的输出、需要复制的Chiplet的当前的效用、以及模糊逻辑算法的模糊集确定需要复制的Chiplet的修复启动时间,包括:
通过以下公式来计算需要修复的Chiplet的修复启动时间T:
,
其中,O=[O[0],O[1],O[2]]是模糊算法的输出矩阵,表示高优先级、普通级、低优先级的模糊隶属度;U是需要修复的Chiplet的效用;y1和y2是权重,可以根据实际需要进行调整;t1、t2和t3为对应于模糊逻辑算法的输出"何时开始修复故障的Chiplet"的子集高优先级、普通级、低优先级的标准启动时间。
10.一种基于Chiplet的动态重配置芯片,用于实现权利要求1-9之一所述的方法,所述芯片包括:
多个Chiplet,在每个Chiplet上集成性能计数器,以及在每个Chiplet的硬件中应用内建的复制机制,硬件故障容忍和自我修复技术;
监测模块,用于利用守护进程或者后台任务定期读取性能计数器的值;
重配置模块,用于接收来自监测模块的触发信号,通过重配置控制逻辑来根据接收到的触发信号来触发重配置,以及用于确定重配置策略并完成重配置的控制操作的动作;
以及,基于动态重配置的触发时机触发对所述Chiplet的动态重配置策略,包括任务监测、确定达到触发条件、以及传递触发信号;
控制系统,用于基于模糊逻辑算法确定的最优结果动态地调整Chiplet的配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311120287.7A CN116841804B (zh) | 2023-09-01 | 2023-09-01 | 一种基于chiplet的动态重配置方法和芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311120287.7A CN116841804B (zh) | 2023-09-01 | 2023-09-01 | 一种基于chiplet的动态重配置方法和芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116841804A true CN116841804A (zh) | 2023-10-03 |
CN116841804B CN116841804B (zh) | 2023-11-17 |
Family
ID=88174708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311120287.7A Active CN116841804B (zh) | 2023-09-01 | 2023-09-01 | 一种基于chiplet的动态重配置方法和芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116841804B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06168134A (ja) * | 1992-11-30 | 1994-06-14 | Nec Corp | ファジイ制御のためのファジイ推論プロセッサ |
CN104951579A (zh) * | 2014-03-28 | 2015-09-30 | 北京大学 | 一种基于id和fsm结合的电路可信性设计方法 |
CN108226752A (zh) * | 2017-12-25 | 2018-06-29 | 北京物芯科技有限责任公司 | 一种芯片的故障修复方法、装置和设备 |
CN111741601A (zh) * | 2020-07-09 | 2020-10-02 | 复旦大学 | 一种通用的可配置的有源基板电路结构 |
CN115796249A (zh) * | 2022-11-22 | 2023-03-14 | 辉羲智能科技(上海)有限公司 | 面向chiplet互连的神经网络芯片层切换映射方法 |
CN115828831A (zh) * | 2023-02-14 | 2023-03-21 | 之江实验室 | 基于深度强化学习的多芯粒芯片算子放置策略生成方法 |
CN116402002A (zh) * | 2023-04-12 | 2023-07-07 | 暨南大学 | 一种用于芯片布局问题的多目标分层强化学习方法 |
CN116560005A (zh) * | 2023-07-12 | 2023-08-08 | 中诚华隆计算机技术有限公司 | 一种基于光学互联的芯粒实现方法和系统 |
-
2023
- 2023-09-01 CN CN202311120287.7A patent/CN116841804B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06168134A (ja) * | 1992-11-30 | 1994-06-14 | Nec Corp | ファジイ制御のためのファジイ推論プロセッサ |
CN104951579A (zh) * | 2014-03-28 | 2015-09-30 | 北京大学 | 一种基于id和fsm结合的电路可信性设计方法 |
CN108226752A (zh) * | 2017-12-25 | 2018-06-29 | 北京物芯科技有限责任公司 | 一种芯片的故障修复方法、装置和设备 |
CN111741601A (zh) * | 2020-07-09 | 2020-10-02 | 复旦大学 | 一种通用的可配置的有源基板电路结构 |
CN115796249A (zh) * | 2022-11-22 | 2023-03-14 | 辉羲智能科技(上海)有限公司 | 面向chiplet互连的神经网络芯片层切换映射方法 |
CN115828831A (zh) * | 2023-02-14 | 2023-03-21 | 之江实验室 | 基于深度强化学习的多芯粒芯片算子放置策略生成方法 |
CN116402002A (zh) * | 2023-04-12 | 2023-07-07 | 暨南大学 | 一种用于芯片布局问题的多目标分层强化学习方法 |
CN116560005A (zh) * | 2023-07-12 | 2023-08-08 | 中诚华隆计算机技术有限公司 | 一种基于光学互联的芯粒实现方法和系统 |
Non-Patent Citations (1)
Title |
---|
潘承志, 靳东明: "可编程模糊逻辑控制器芯片的应用研究", 微电子学, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
CN116841804B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bharany et al. | Energy efficient fault tolerance techniques in green cloud computing: A systematic survey and taxonomy | |
US7793147B2 (en) | Methods and systems for providing reconfigurable and recoverable computing resources | |
Dubrova | Fault tolerant design: An introduction | |
Jain et al. | Optimal replacement policy for a repairable system with multiple vacations and imperfect fault coverage | |
Jain et al. | Vacation model for Markov machine repair problem with two heterogeneous unreliable servers and threshold recovery | |
EP0565915A2 (en) | Computer system resilient to a wide class of failures | |
Dubrova et al. | Fundamentals of dependability | |
Kumar et al. | Optimal control of fault tolerant machining system with reboot and recovery in fuzzy environment using harmony search algorithm | |
US5835698A (en) | Unilaterally-controlled, time-insensitive, data-link recovery apparatus and method | |
CN116841804B (zh) | 一种基于chiplet的动态重配置方法和芯片 | |
CN110888761A (zh) | 一种基于关键任务部分主动备份的容错方法和流处理平台 | |
Kumar et al. | Performance analysis of a computer system with imperfect fault detection of hardware | |
Sharma et al. | Availability Modelling of Cluster-Based System with Software Aging and Optional Rejuvenation Policy | |
Goldberg et al. | Adaptive fault tolerance | |
Mandava et al. | Optimizing imperfect coverage cloud-RAID systems considering reliability and cost | |
CN115755570A (zh) | 多冗余度异构调度裁决器的调度裁决方法及装置 | |
Mellouli | A reorganization strategy to build fault-tolerant multi-agent systems | |
JP3279004B2 (ja) | 冗長資源の管理方法及びそれを用いた分散型フォールトトレラントコンピュータシステム | |
Nedeljković et al. | A Survey of Hardware Fault Tolerance Techniques | |
Girault* et al. | A scheduling heuristics for distributed real-time embedded systems tolerant to processor and communication media failures | |
Shah et al. | Fault tolerance in cloud and fog computing—a holistic view | |
Roy et al. | Identification of the K-most Vulnerable Entities in a Smart Grid System | |
Refaat et al. | Machine operating speed, fault security and fault tolerance for performability analysis in industrial automation | |
Verma et al. | System reliability modeling | |
Yu et al. | Reliability enhancement of real-time multiprocessor systems through dynamic reconfiguration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |