一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于存储器的运行时封装后修复的制作方法

2021-09-28 23:21:00 来源:中国专利 TAG:存储器 实施 存取 经由 线程


1.实施例通常涉及计算系统中的线程调度。更具体地,实施例涉及经由运行时封装后修复来处理存储器硬件(例如,动态随机存取存储器(dram))中的故障的技术。


背景技术:

2.动态随机存取存储器(dram)中的错误是现代计算集群中常见形式的硬件故障。就硬件替换成本和服务中断两方面而言,故障往往造成很大的损失。最终用户和原始设备制造商(oem)两者都可能对有效的存储器错误处理有高需求。
附图说明
3.通过阅读以下说明书和所附权利要求,并且通过参考以下附图,实施例的各种优点对于本领域技术人员而言将变得显而易见,在附图中:
4.图1是根据实施例的运行时存储器修复系统的示例的图示。
5.图2是根据实施例的被适配用于运行时存储器修复的存储器设备的示例的框图;
6.图3是根据实施例的用于运行时封装后修复的过程的示例的图示;
7.图4是用于加电封装后修复的过程的示例的图示,与本文公开的运行时封装后修复相比,这是用于存储器修复的不同解决方案;
8.图5是根据实施例的修复运行时存储器的方法的示例的流程图;
9.图6是根据实施例的修复运行时存储器的方法的示例的更详细流程图;
10.图7是根据实施例的包括片上系统的计算系统的示例的框图;
11.图8是根据实施例的半导体装置的示例的图示;
12.图9是根据实施例的处理器的示例的框图;以及
13.图10是根据实施例的基于多处理器的计算系统的示例的框图。
具体实施方式
14.如上所述,动态随机存取存储器(dram)中的错误是现代计算集群中常见形式的硬件故障。就硬件替换成本和服务中断两方面而言,故障往往造成很大的损失。最终用户和原始设备制造商(oem)两者都可能对有效的存储器错误处理有高需求。
15.如将在下面更详细地描述的,本文描述的一些实现方式可以使封装后修复(post package repair,ppr)过程适应于进行存储器硬件(例如,dram)故障的运行时修复。这样的运行时封装后修复(runtime post package repair,ppr)过程可以有利地操作而没有容量损失、性能影响和/或成本牵涉。
16.图1是根据实施例的运行时存储器修复系统100的示例的图示。如图所示,运行时存储器修复系统100可以包括诸如dram 104、运行时dram故障检测器102和运行时封装后修复处理程序106之类的存储器设备。
17.本文描述的一些实现方式可以提供用于经由运行时dram故障检测器102来检测
dram 104中的硬件故障的技术。在实施例中,运行时封装后修复处理程序106校正检测到的dram 104中的硬件故障。在这样的示例中,运行时封装后修复处理程序106可以在加电引导操作已完成之后执行这样的校正。相反地,封装后修复可能常常是在加电操作期间(如下面在图4中所示)而不是在运行时操作期间(如下面在图3中所示)执行的。
18.例如,这种加电封装后修复通常会不利地影响系统可用性,因为计算系统将需要重置,如下面在图4中所示。在一些示例中,通常用纠错码(ecc)存储器来检测和校正系统错误,以保持系统ecc能力和系统性能(例如,ecc可能影响存储器延迟)。本文的一些实现方式可以提供一种用于在运行时经由封装后修复操作来修复dram硬件故障的新方法,如下面在图3中所示,这可以避免性能和存储器容量的影响。例如,在运行时环境中,可以通过监测双倍数据速率(ddr)存储器总线的ddr存储器逻辑分析器(la)来检测通过封装后修复操作校正的存储器错误。
19.图2是根据实施例的被适配用于运行时存储器修复的存储器设备200的示例的框图。如图所示,存储器设备200可以表示动态随机存取存储器(dram)。在实施例中,存储器设备200包括多个存储体组(bank group)202(例如,存储体组0、1、2、4等)。多个存储体组202中的每一个可以包括相关联的保留行204,其中每个保留行被放置在一边以用于运行时封装后修复操作。
20.例如,当检测到故障行206时,可以校正故障行206中的数据并将其保存到与相应存储体组202(例如,如此处所示的存储体组1)相关联的保留行204。如将在下面更详细地描述的,可以经由封装后修复操作来修复故障行206。然后可以将经校正并保存的故障行数据移回到故障行206的现在经修复的行。
21.表1示出了用于处理dram中的硬件故障的其他选项的局限性:
22.[0023][0024]
如表1中所示的,当发生dram硬件故障时(例如,通过ecc来检测和校正,除了对不可校正的错误进行镜像之外),可以采取以下措施来解决问题:1)替换具有故障的双列直插存储器模块(dimm),这通常会引发硬件和服务成本;2)sddc/dddc/adc(sr)/adddc(mr)(例如,如表1中所示的),这通常会对性能产生影响,因为存储器需要在锁步模式下工作;3)存储器镜像和备用,这通常会减少存储器容量并因此影响性能;或4)加电封装后修复,这通常会影响系统可用性。
[0025]
总之,除运行时封装后修复以外的解决方案通常会导致硬件和服务成本和/或不利的系统性能影响。相反地,经由运行时封装后修复在运行时修复dram设备可以在没有系统性能和容量损失的情况下执行,同时改善系统可用性,延长dimm服务时间和/或节省成本。
[0026]
图3是根据实施例的进行运行时封装后修复的过程300的示例的图示。如图所示,过程300可以涉及检测dram 104中的硬件故障的运行时dram故障检测器102。如本文所使用的,术语“运行时”可以指代在bios(基本输入/输出系统,例如启动程序)引导302和在bios引导302完全完成之后切换到操作系统304之后发生的操作。运行时封装后修复处理程序106可以校正检测到的动态随机存取存储器(dram)104中的硬件故障。在这样的示例中,在bios引导302的加电引导操作已完成之后,运行时封装后修复处理程序106执行这样的校正。相反地,封装后修复可能常常是在加电操作期间(如下面在图4中所示)而不是在运行时操作期间(如此处在图3中所示)执行的。
[0027]
例如,本文描述的一些实现方式可以适应由联合电子设备工程委员会(jedec)定义的封装后修复过程,以有利地许可dram硬故障的运行时修复。例如,故障行地址修复可以作为可选特征(例如,如上面在图2中所示)在ddr4(双倍数据速率四)存储器中被许可,并且适用于运行时操作的封装后修复(ppr)可以提供一种通过电熔丝方案的电编程来修复故障行地址的过程。因此,故障信息在运行时被收集并保存,使得可以在运行时执行dram故障的修复。相反地,加电型封装后修复故障处理机制当前只能在复位时用作加电型封装后修复。
[0028]
图4是进行加电封装后修复的过程400的图示,与本文公开的运行时封装后修复相比,这是用于存储器修复的不同解决方案。如图所示,过程400涉及在加电操作期间而不是在运行时操作期间(如上面在图3中所示)执行加电封装后修复404(加电ppr)。
[0029]
例如,加电封装后修复404仅在bios引导402期间的开机自检(post)期间才可以激活。例如,开机自检(post)指的是在电源接通时运行的诊断测试序列。开机自检(post)诊断测试序列由bios引导402(例如,计算机系统基本输入/输出系统或启动程序)运行,以确定计算机键盘、随机存取存储器、磁盘驱动器和其他硬件是否正在正确地工作。
[0030]
在加电封装后修复404之后,可以在将操作移交给操作系统408之前执行引导休止406操作以完成bios引导402。在操作被移交给操作系统408之后,可以在运行时期间对dram 412执行dram故障检测。然而,使用此检测到的错误信息可能必须要求通过重新引导bios引导402来进行系统重置,以便利用加电封装后修复404的操作。
[0031]
图5是根据实施例的进行运行时存储器修复的方法500的示例的流程图。如图所示,方法500可以作为存储在机器或计算机可读存储介质(例如,随机存取存储器(ram)、只
读存储器(rom)、可编程rom(prom)、固件、闪存等)中的逻辑指令集而实现在以下各项中:一个或多个模块:可配置逻辑,例如可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、复杂可编程逻辑器件(cpld);使用电路技术(例如,专用集成电路(asic)、互补金属氧化物半导体(cmos)或晶体管

晶体管逻辑(ttl)技术)的固定功能性逻辑硬件,或它们的任何组合。
[0032]
例如,用于执行方法500中所示的操作的计算机程序代码可以用一种或多种编程语言的任何组合加以编写,这些编程语言包括诸如java、smalltalk、c 等之类的面向对象的编程语言以及诸如“c”编程语言或类似编程语言之类的常规过程编程语言。附加地,逻辑指令可以包括汇编程序指令、指令集架构(isa)指令、机器指令、机器相关指令、微码、状态设置数据、用于集成电路的配置数据、使硬件固有的电子电路和/或其他结构组件(例如,主机处理器、中央处理单元/cpu、微控制器等)个性化的状态信息。
[0033]
所示的处理框502允许检测动态存取存储器中的存储器硬件故障。例如,对动态随机存取存储器中的存储器硬件故障的检测可以包括用于确定计算系统错误是否是存储器错误以及确定存储器错误是否是硬件故障的操作。
[0034]
所示的处理框504允许响应于检测到存储器硬件故障而执行运行时封装后修复。例如,运行时封装后修复的执行还可以包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行数据;以及将经校正并保存的故障行数据移回已修复的故障行。下面参考图6来描述方法500的附加和/或替代细节。
[0035]
图6是根据实施例的修复运行时存储器的方法600的示例的更详细流程图。如图所示,方法600通常可以合并到已经讨论的图2的框502和504中。更具体地,方法600可以作为存储在机器或计算机可读存储介质(例如ram、rom、prom、固件、闪存等)中的逻辑指令集而实现在以下各项中:一个或多个模块;可配置逻辑,例如pla、fpga、cpld;使用电路技术(例如,asic、cmos或ttl技术)的固定功能性逻辑硬件,或者它们的任何组合。
[0036]
所示的处理框602响应于计算系统错误而进入错误处理模式。例如,可以响应于进入处理模式而执行对动态随机存取存储器中的存储器硬件故障的检测。在实施例中,通过经由固件系统管理中断(smi)的错误处理来处理计算系统错误报告。在一个示例中,以增强的机器检查架构第二代(emca2)模式等来处理这样的计算系统错误报告。
[0037]
例如,系统管理模式(smm)是一种专用操作模式,该专用操作模式可以允许处理像电源管理、系统硬件控制等的系统范围功能。系统管理模式可以由系统固件而不是由应用软件或通用系统软件使用,以允许对操作系统透明地运行的隔离的处理器环境。在实施例中,smm强加某些规则。通常,只能在单独的地址空间中通过系统管理中断(smi)经由系统固件来进入系统管理模式,该单独的地址空间是其他中央处理单元模式无法访问的,以便实现透明性。
[0038]
所示的处理框604可以执行检查以确定计算系统错误是否是存储器错误。例如,对动态随机存取存储器中的存储器硬件故障的检测还可以包括用于确定计算系统错误是否是存储器错误的操作。
[0039]
所示的处理框606处理其他组件错误。例如,响应于确定计算系统错误不是存储器错误,可以绕过运行时封装后修复的执行而执行计算系统错误的校正。
[0040]
所示的处理框608:一旦完成错误处理,就将处理返回至操作系统。例如,处理可以从处理框606、614和/或620中的任何一个进行到处理框。
[0041]
所示的处理框610调用运行时软件处理程序。例如,可以响应于确定已经存在存储器错误来调用运行时软件处理程序。运行时软件处理程序可以包括经由系统管理中断(smi)的操作。
[0042]
所示的处理框612确定是否已经发生存储器硬件故障。例如,对动态随机存取存储器中的存储器硬件故障的检测还可以包括用于确定存储器错误是否是硬件故障的操作。
[0043]
所示的处理框614校正与存储器错误相关联的数据。例如,响应于确定计算系统错误是存储器错误以及确定存储器错误不是硬件故障而通过校正存储器错误来执行计算系统错误的校正并绕过运行时封装后修复的执行。
[0044]
所示的处理框616经由运行时软件处理程序来将故障行数据校正并保存到其他地址。例如,可以将这种操作作为运行时封装后修复的执行的一部分来执行。如图所示,可以响应于确定计算系统错误是存储器错误以及确定存储器错误是硬件故障而执行运行时封装后修复的执行。
[0045]
所示的处理框618通过实现一种形式的封装后修复经由运行时软件处理程序来修复故障行。例如,可以将这种操作作为运行时封装后修复的执行的一部分来执行。
[0046]
所示的处理框620经由运行时软件处理程序将校正的数据移回到经修复的行。例如,可以将这种操作作为运行时封装后修复的执行的一部分来执行。
[0047]
在操作中,运行时封装后修复可以每存储器设备的存储体组校正一行。这种运行时封装后修复可以在计算机系统中提供一种简单且容易的修复方法,其中可以通过电熔丝方案的电编程来修复故障行地址。此类运行时封装后修复可以包括与通过参考ddr jedec固态技术协会规范所描述的那些操作相同或相似的操作中的一些。
[0048]
现在转向图7,示出了计算系统700。计算系统700通常可以是具有以下功能的电子设备/平台的一部分:计算功能(例如,个人数字助理/pda、笔记本计算机、平板计算机、可转换的平板、服务器);通信功能(例如,智能电话);成像功能(例如,相机、便携式摄像机);媒体播放功能(例如,智能电视/tv);可穿戴功能(例如,手表、眼镜、头饰、鞋类、珠宝);车辆功能(例如,汽车、卡车、摩托车);游戏功能(例如,联网的多玩家控制台)等或它们的任何组合。在所示的示例中,系统700包括多核心处理器702(例如,(一个或多个)主机处理器、(一个或多个)中央处理单元/(一个或多个)cpu),该多核心处理器702具有耦合到系统存储器706的集成存储器控制器(imc)704。多核心处理器702可以包括多个处理器核心p0

p7。
[0049]
所示的系统700还包括输入输出(io)模块708,该输入输出(io)模块708与多核心处理器702和图形处理器710一起在半导体管芯712上实现为片上系统(soc)。所示的io模块708与例如以下各项进行通信:显示器714(例如,触摸屏、液晶显示器/lcd、发光二极管/led显示器)、网络控制器716(例如,有线和/或无线)以及大容量存储装置718(例如,硬盘驱动器/hdd、光盘、固态驱动器/ssd、闪存)。
[0050]
多核心处理器702可以包括逻辑720(例如,逻辑指令、可配置逻辑、固定功能性硬件逻辑等、或它们的任何组合)以执行已经讨论的方法500(图5)和/或方法600(图6)的一个或多个方面。尽管所示的逻辑720位于多核心处理器702内,但是逻辑720可以位于计算系统700中的其他地方。
[0051]
图8示出了半导体封装装置800。所示的装置800包括一个或多个衬底804(例如,硅、蓝宝石、砷化镓)和耦合到(一个或多个)衬底804的逻辑802(例如,晶体管阵列和其他集
成电路/ic组件)。逻辑802可以至少部分地实现在可配置逻辑或固定功能性逻辑硬件中。
[0052]
在一个示例中,逻辑802实现方法500(图5)和/或方法600(图6)的一个或多个方面,并且可以容易地替代已经讨论的逻辑720(图7)。因此,逻辑802可以响应于所选核心可用而识别线程并从多个处理器核心中选择核心,同时满足关于多个处理器核心的最少使用条件。逻辑802还可以调度要在所选核心上执行的线程。在一个示例中,逻辑802跟踪多个处理器核心的活动时间,并且基于活动时间对多个处理器核心进行分类。在一个示例中,逻辑802包括被定位(例如,嵌入)在(一个或多个)衬底804内的晶体管沟道区。因此,逻辑802与(一个或多个)衬底804之间的界面可以不是突变结。逻辑802也可以被认为包括在(一个或多个)衬底804的初始晶圆上生长的外延层。
[0053]
图9示出了根据一个实施例的处理器核心900。处理器核心900可以是用于任何类型的处理器(例如,微处理器、嵌入式处理器、数字信号处理器(dsp)、网络处理器或用于执行代码的其他设备)的核心。尽管在图9中示出了仅一个处理器核心900,但是处理元件可以可替代地包括多于一个的图9所示的处理器核心900。处理器核心900可以是单线程核心,或者对于至少一个实施例,处理器核心900可以是多线程的,因为它可以每核心包括多于一个的硬件线程上下文(或“逻辑处理器”)。
[0054]
图9还示出了耦合到处理器核心900的存储器970。存储器970可以是本领域技术人员已知或以其他方式可用的各种各样的存储器(包括存储器层级的各个层)中的任何一个。存储器970可以包括要由处理器核心900执行的一个或多个代码913指令,其中代码913可以实现已经讨论的方法500(图5)和/或方法600(图6)的一个或多个方面。处理器核心900遵循由代码913指示的指令的程序序列。每个指令可以进入前端部分910并由一个或多个解码器920处理。解码器920可以以预定义格式来生成微操作(例如,固定宽度微操作)作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。所示的前端部分910还包括寄存器重命名逻辑925和调度逻辑930,该寄存器重命名逻辑和该调度逻辑通常分配资源并且对与转换指令相对应的操作进行排队以供执行。
[0055]
处理器核心900被示出为包括具有一组执行单元955

1至955

n的执行逻辑950。一些实施例可以包括专用于具体功能或功能集的多个执行单元。其他实施例可以仅包括一个执行单元或可以执行特定功能的一个执行单元。所示的执行逻辑950执行由代码指令指定的操作。
[0056]
在由代码指令指定的操作的执行完成之后,后端逻辑960引退代码913的指令。在一个实施例中,处理器核心900允许乱序执行但是要求按顺序引退指令。引退逻辑965可以采取如本领域技术人员已知的各种形式(例如,重新排序缓冲器等)。以这种方式,处理器核心900在代码913的执行期间至少在由解码器生成的输出、由寄存器重命名逻辑925利用的硬件寄存器和表以及由执行逻辑950修改的任何寄存器(未示出)方面被转换。
[0057]
尽管在图9中未示出,但是处理元件可以包括与处理器核心900一起在芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑以及处理器核心900。处理元件可以包括i/o控制逻辑,和/或可以包括与存储器控制逻辑集成在一起的i/o控制逻辑。处理元件还可以包括一个或多个缓存。
[0058]
现在参考图10,示出了根据实施例的计算系统1000实施例的框图。图10中所示的是包括第一处理元件1070和第二处理元件1080的多处理器系统1000。虽然示出了两个处理
元件1070和1080,但是应当理解,系统1000的实施例也可以包括仅一个这样的处理元件。
[0059]
系统1000被示出为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连件1050耦合。应当理解,图10所示的任何或所有的互连件可以实现为多分支总线,而非点对点互连件。
[0060]
如图10中所示,处理元件1070和1080中的每一个均可以是多核心处理器,包括第一处理器核心和第二处理器核心(即,处理器核心1074a和1074b以及处理器核心1084a和1084b)。此类核心1074a、1074b、1084a、1084b可以被配置为以与上面结合图9讨论的方式类似的方式执行指令代码。
[0061]
每个处理元件1070、1080可以包括至少一个共享缓存1896a、1896b。共享缓存1896a、1896b可以分别存储由处理器的一个或多个组件(例如,核心1074a、1074b和1084a、1084b)利用的数据(例如,指令)。例如,共享缓存1896a、1896b可以对存储于存储器1032、1034中的数据进行本地缓存以供处理器的组件进行较快访问。在一个或多个实施例中,共享缓存1896a、1896b可以包括一个或多个中级缓存,例如,级别2(l2)、级别3(l3)、级别4(l4)或其他级别的缓存、末级缓存(llc)、和/或它们的组合。
[0062]
虽然被示出有仅两个处理元件1070、1080,但是应当理解,实施例的范围不限于此。在其他实施例中,在给定处理器中可以存在一个或多个附加处理元件。或者,处理元件1070、1080中的一个或多个可以是除处理器以外的元件,诸如加速器或现场可编程门阵列。例如,(一个或多个)附加处理元件可以包括与第一处理器1070相同的(一个或多个)附加处理器、与第一处理器1070异构或不对称的(一个或多个)附加处理器、加速器(诸如,图形加速器或数字信号处理(dsp)单元)、现场可编程门阵列或任何其他处理元件。在包括架构、微架构、热、功耗特性等的度量谱方面,在处理元件1070、1080之间可以存在各种差异。这些差异实际上可能将自身表现为处理元件1070、1080之间的不对称性和异构性。对于至少一个实施例,各种处理元件1070、1080可以驻留在同一管芯封装中。
[0063]
第一处理元件1070还可以包括存储器控制器逻辑(mc)1072以及点对点(p

p)接口1076和1078。类似地,第二处理元件1080可以包括mc 1082以及p

p接口1086和1088。如图10中所示,mc 1072和1082将处理器耦合到相应的存储器,即存储器1032和存储器1034,这些存储器可以是在本地附连到相应处理器的主存储器的部分。虽然mc 1072和1082被示出为集成到处理元件1070、1080中,但是对于替代实施例,mc逻辑可以是在处理元件1070、1080外部而不是集成在其中的分立逻辑。
[0064]
第一处理元件1070和第二处理元件1080可以分别经由p

p互连件1076、1086耦合到i/o子系统1090。如图10中所示,i/o子系统1090包括p

p接口1094和1098。此外,i/o子系统1090包括接口1092以将i/o子系统1090与高性能图形引擎1038耦合。在一个实施例中,总线1049可以用来将图形引擎1038耦合到i/o子系统1090。或者,点对点互连件可以耦合这些组件。
[0065]
继而,i/o子系统1090可以经由接口1096耦合到第一总线1016。在一个实施例中,第一总线1016可以是外围组件互连(pci)总线,或诸如pci高速总线(express bus)或另一第三代i/o互连总线之类的总线,但是实施例的范围不限于此。
[0066]
如图10中所示,各种i/o设备1014(例如,生物计量扫描仪、扬声器、相机、传感器)以及总线桥1018可以耦合至第一总线1016,该总线桥1018可以将第一总线1016耦合至第二
总线1020。在一个实施例中,第二总线1020可以是低引脚计数(lpc)总线。在一个实施例中,各种设备可以耦合到第二总线1020,这些设备包括例如键盘/鼠标1012、(一个或多个)通信设备1026以及可以包括代码1030的数据存储单元1019(例如,磁盘驱动器或其他大容量存储设备)。
[0067]
所示的代码1030可以实现已经讨论的方法500(图5)和/或方法600(图6)的一个或多个方面。此外,音频i/o 1024可以耦合到第二总线1020并且电池1010可以向计算系统1000供应电力。
[0068]
需注意,可以想到其他实施例。例如,代替图10的点对点架构,系统可以实现多分支总线或另一种此类通信拓扑。另外,图10的元件可以替代地使用比图10所示更多或更少的集成芯片进行分区。
[0069]
附加注释和示例:
[0070]
示例1包括一种用于运行时存储器修复的计算系统,所述计算系统包括:一个或多个处理器;和耦合到所述一个或多个处理器的大容量存储装置,所述大容量存储装置包括可执行程序指令,所述可执行程序指令在由所述主机处理器执行时,使得所述计算系统执行以下操作:检测存储器中的存储器硬件故障;以及响应于检测到的存储器中的存储器硬件故障而执行运行时封装后修复,其中所述运行时封装后修复是在加电引导操作已完成之后执行的。
[0071]
示例2包括根据示例1所述的计算系统,其中,所述可执行程序指令在由所述计算系统执行时,使得所述计算系统执行以下操作:响应于计算系统错误而进入错误处理模式;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。
[0072]
示例3包括根据示例1所述的计算系统,其中,对所述存储器中的所述存储器硬件故障的检测,还包括以下操作:确定所述计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。
[0073]
示例4包括根据示例1所述的计算系统,其中,所述运行时封装后修复的执行,还包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;以及将经校正并保存的故障行数据移回到经修复的故障行。
[0074]
示例5包括根据示例1所述的计算系统,其中,所述可执行程序指令在由所述计算系统执行时,使得所述计算系统执行以下操作:响应于计算系统错误而进入错误处理模式;其中,所述存储器是动态随机存取存储器;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。对所述存储器中的所述存储器硬件故障的检测,还包括以下操作:确定所述计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。所述运行时封装后修复的执行,还包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;将经校正并保存的故障行数据移回到经修复的故障行;响应于确定所述计算系统错误不是存储器错误而校正所述计算系统错误并绕过所述运行时封装后修复的执行;以及响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误不是硬件故障
而通过校正所述存储器错误来校正所述计算系统错误并绕过所述运行时封装后修复的执行。
[0075]
示例6包括一种用于运行时存储器修复的半导体装置,所述半导体装置包括:一个或多个衬底;以及耦合到所述一个或多个衬底的逻辑。所述逻辑被至少部分地实现在可配置逻辑或固定功能性硬件逻辑中的一个或多个中,耦合到所述一个或多个衬底的所述逻辑用于:检测存储器中的存储器硬件故障;以及响应于检测到的存储器中的存储器硬件故障而执行运行时封装后修复,其中,所述运行时封装后修复是在加电引导操作已完成之后执行的。
[0076]
示例7包括根据示例6所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑用于:响应于计算系统错误而进入错误处理模式;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。
[0077]
示例8包括根据示例6所述的半导体装置,其中,对所述存储器中的所述存储器硬件故障的检测,还包括以下操作:确定计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。
[0078]
示例9包括根据示例6所述的半导体装置,其中,所述运行时封装后修复的执行,还包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;以及将经校正并保存的故障行数据移回到经修复的故障行。
[0079]
示例10包括根据示例6所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑用于:响应于计算系统错误而进入错误处理模式;其中,所述存储器是动态随机存取存储器;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。对所述存储器中的所述存储器硬件故障的检测,还包括以下操作:确定所述计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。所述运行时封装后修复的执行,还包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;将经校正并保存的故障行数据移回到经修复的故障行;响应于确定所述计算系统错误不是存储器错误而校正所述计算系统错误并绕过所述运行时封装后修复的执行;以及响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误不是硬件故障而通过校正所述存储器错误来校正所述计算系统错误并绕过所述运行时封装后修复的执行。
[0080]
示例11包括根据权利要求6所述的半导体装置,其中,耦合到所述一个或多个衬底的所述逻辑包括位于所述一个或多个衬底内的晶体管沟道区。
[0081]
示例12包括至少一种计算机可读存储介质,所述至少一种计算机可读存储介质包括一组可执行程序指令,所述可执行程序指令在由计算系统执行时,使得所述计算系统执行以下操作:检测存储器中的存储器硬件故障;以及响应于检测到的存储器中的存储器硬件故障而执行运行时封装后修复,其中,所述运行时封装后修复是在加电引导操作已完成之后执行的。
[0082]
示例12包括根据示例12所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在由所述计算系统执行时,使得所述计算系统执行以下操作:响应于计算系统错
误而进入错误处理模式;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。
[0083]
示例14包括根据示例12所述的至少一种计算机可读存储介质,其中,对所述存储器中的所述存储器硬件故障的检测,还包括以下操作:确定所述计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。
[0084]
示例15包括根据示例12所述的至少一种计算机可读存储介质,其中,所述运行时封装后修复的执行,还包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;以及将经校正并保存的故障行数据移回到经修复的故障行。
[0085]
示例16包括根据示例12所述的至少一种计算机可读存储介质,其中,所述可执行程序指令在由所述计算系统执行时,使得所述计算系统执行以下操作:响应于计算系统错误而进入错误处理模式;其中,所述存储器是动态随机存取存储器;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。对所述存储器中的所述存储器硬件故障的检测,还包括以下操作:确定所述计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。所述运行时封装后修复的执行,还包括以下操作:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;将经校正并保存的故障行数据移回到经修复的故障行;响应于确定所述计算系统错误不是存储器错误而校正所述计算系统错误并绕过所述运行时封装后修复的执行;以及响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误不是硬件故障而通过校正所述存储器错误来校正所述计算系统错误并绕过所述运行时封装后修复的执行。
[0086]
示例17包括一种修复运行时存储器的方法,包括:检测存储器中的存储器硬件故障;以及响应于检测到的存储器中的存储器硬件故障而执行运行时封装后修复,其中,所述运行时封装后修复是在加电引导操作已完成之后执行的。
[0087]
示例18包括根据示例17所述的方法,还包括:响应于计算系统错误而进入错误处理模式;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。
[0088]
示例19包括根据示例17所述的方法,其中,对所述存储器中的所述存储器硬件故障的检测,还包括:确定计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。
[0089]
示例20包括根据示例17所述的方法,其中,所述运行时封装后修复的执行,还包括:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;以及将经校正并保存的故障行数据移回到经修复的故障行。
[0090]
示例21包括根据示例17所述的方法,还包括:响应于计算系统错误而进入错误处理模式;其中,所述存储器是动态随机存取存储器;并且其中,响应于进入所述处理模式而执行对所述存储器中的所述存储器硬件故障的检测。对所述存储器中的所述存储器硬件故
障的检测,还包括:确定所述计算系统错误是否是存储器错误;确定所述存储器错误是否是硬件故障;并且其中,响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误是硬件故障而执行所述运行时封装后修复的执行。所述运行时封装后修复的执行还包括:将故障行数据校正并保存到一个或多个其他地址;经由封装后修复操作来修复故障行;将经校正并保存的故障行数据移回到经修复的故障行;响应于确定所述计算系统错误不是存储器错误而校正所述计算系统错误并绕过所述运行时封装后修复的执行;以及响应于确定所述计算系统错误是存储器错误以及确定所述存储器错误不是硬件故障而通过校正所述存储器错误来校正所述计算系统错误并绕过所述运行时封装后修复的执行。
[0091]
示例22包括一种用于执行如前述示例中任一项所述的方法的设备。
[0092]
示例23包括一种机器可读存储装置,所述机器可读存储装置包括机器可读指令,所述机器可读指令在被执行时,实现如前述示例中任一项所述的方法或实现如前述示例中任一项所述的装置。
[0093]
可以使用硬件元件、软件元件或这两者的组合来实现各种实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(asic)、可编程逻辑器件(pld)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(api)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或它们的任何组合。确定是否使用硬件元件和/或软件元件来实现实施例可以根据任何数量的因素而变化,这些因素为诸如期望的计算速率、功率水平、热容忍度、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度和其他设计或性能约束。
[0094]
可以通过存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令来实现至少一个实施例的一个或多个方面,这些代表性指令在由机器读取时,使得机器制造逻辑以执行本文描述的技术。可以将称为“ip核心”的这种表示存储在有形机器可读介质上并将其供应给各种客户或制造设施以加载到实际上制造逻辑或处理器的制造机器中。
[0095]
一些实施例可以例如使用机器或有形计算机可读介质或制品(article)来实现,该机器或有形计算机可读介质或制品可以存储指令或指令集,该指令或指令集在由机器执行的情况下,可以使得机器执行根据实施例的方法和/或操作。这样的机器可以包括例如任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且可以使用硬件和/或软件的任何合适的组合来实现。机器可读介质或制品可以包括例如任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储制品、存储介质和/或存储单元,例如,存储器、可移动或非可移动介质、可擦除或非可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(cd

rom)、可记录光盘(cd

r)、可重写光盘(cd

rw)、光盘、磁性介质、磁光介质、可移动存储卡或盘、各种类型的数字通用盘(dvd)、磁带、磁盒等。指令可以包括使用任何合适的高级、低级、面向对象、可视、编译和/或解释编程语言实现的任何合适类型的代码,诸如源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等。
[0096]
实施例适用于与所有类型的半导体集成电路(“ic”)芯片一起使用。这些ic芯片的
示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(pla)、存储器芯片、网络芯片、片上系统(soc)、ssd/nand控制器asic等。此外,在一些附图中,信号导体线用线表示。一些线可以是不同的,以指示更多的组成信号路径,具有数量标签以指示组成信号路径的数量,和/或在一个或多个端部处具有箭头以指示主要信息流方向。然而,不应以限制方式来理解。相反,可以结合一个或多个示例性实施例来使用此类添加的细节以促进对电路的更容易理解。任何所表示的信号线(无论是否具有附加信息)可以实际上包括一个或多个信号,该一个或多个信号可以在多个方向上行进并且可以以任何合适类型的信号方案来实现,例如用差分对实现的数字或模拟线、光纤线、和/或单端线。
[0097]
示例尺寸/模型/数值/范围可能已经给出,但是实施例不限于此。随着制造技术(例如,光刻法)日益成熟,据预期,可以制造更小尺寸的器件。此外,出于说明和讨论的简便性以及不模糊实施例的某些方面的目的,在图中可能会或可能不会示出与ic芯片和其他组件的已知的电源/接地连接。另外,为了避免模糊实施例,并且还考虑到关于此类框图布置的实现方式的细节高度依赖于要在其中实现实施例的计算系统的事实(即,此类细节应该完全在本领域技术人员的能力范围内),布置可以以框图形式示出。在对特定细节(例如,电路)进行解释以便描述示例实施例的情况下,对于本领域技术人员而言应显而易见的是,可以在没有这些特定细节的情况下或以其变型来实践这些实施例。因此,描述应视为说明性的而非限制性的。
[0098]
术语“耦合”可以在本文用于指代所考虑组件之间的任何类型的关系(直接或间接),并且可以适用于电气、机械、流体、光学、电磁、机电或其他连接。此外,术语“第一”、“第二”等可以在本文仅用于促进讨论,并且不承载具体时间或时间顺序意义,除非另外指示。
[0099]
如本技术和权利要求中所使用的,由术语“......中的一个或多个”连接的项目列表可以表示所列项目的任何组合。例如,短语“a、b或c中的一个或多个”可以表示a;b;c;a和b;a和c;b和c;或a、b和c。
[0100]
本领域技术人员将从以上描述中意识到,可以以各种形式来实现实施例的广泛技术。因此,尽管实施例已经结合其具体示例进行描述,但是实施例的真实范围不应限制于此,因为在研究附图、说明书和所附权利要求之后,其他修改对于技术人员而言将变得显而易见。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜