CN107799151A - 固态盘SSD及高可用性PCIe SSD的方法和系统 - Google Patents

固态盘SSD及高可用性PCIe SSD的方法和系统 Download PDF

Info

Publication number
CN107799151A
CN107799151A CN201710781282.7A CN201710781282A CN107799151A CN 107799151 A CN107799151 A CN 107799151A CN 201710781282 A CN201710781282 A CN 201710781282A CN 107799151 A CN107799151 A CN 107799151A
Authority
CN
China
Prior art keywords
fpga
group
mode
logic unit
run
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
Application number
CN201710781282.7A
Other languages
English (en)
Other versions
CN107799151B (zh
Inventor
李舒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Cloud Computing Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN107799151A publication Critical patent/CN107799151A/zh
Application granted granted Critical
Publication of CN107799151B publication Critical patent/CN107799151B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种高可用性PCIe SSD的方法和系统。其中,该方法包括:当FPGA以第一模式运行时,检测在FPGA上发生的错误,其中,该错误不能由FPGA自身校正。FPGA可被配置为以第一模式或第二模式运行,在该第一模式中,一组处理步骤将由FPGA内的第一组逻辑单元执行,在该第二模式中,该组处理步骤的至少一部分要在由FPGA内的第二组逻辑单元启用的FPGA外部执行。识别与错误相关联的错误位置。在错误位置被认为发生在第一组逻辑单元的关键子集中的情况下:FPGA切换为以第二模式运行;重新配置第一组逻辑单元中的至少一个单元;并且在重新配置成功时,FPGA被切换为以第一模式运行。

Description

固态盘SSD及高可用性PCIe SSD的方法和系统
背景技术
计算机数据中心以越来越高的机架密度运行。更多的电子设备一起工作,使得大量的集成电路彼此靠近并且可能彼此强烈地干扰。
集成电路为固态设备,其虽然在个人计算机中通常是可靠的,但是当与其他设备非常接近时可能由于扰乱而发生故障。单一事件扰乱(SEU)可能由如下三个来源中的至少一个引起:α粒子、高能中子和热中子。因此,现代数据中心系统在包括纠错编码(ECC)和交织的保护中构建以抵抗单一扰乱,但是仍可能容易受到多重扰乱。
附图说明
在下面的具体实施方式和附图中公开了本发明的各种实施方式。
图1是示出根据一些实施方式的用于计算机数据中心的编程计算机系统/服务器的功能图。
图2是示出用于联合高可用性PCIe SSD的系统的实施方式的框图。
图3是用于MCU识别子系统的分类的说明。
图4是示出用于联合软硬件辅助的系统的实施方式的框图。
图5是示出用于处理MCU的过程的实施方式的流程图。
图6是示出用于联合软硬件辅助的过程的实施方式的流程图。
具体实施方式
本发明可以以多种方式实现,包括,实现为:过程;装置;系统;物质的组成;在计算机可读存储介质上体现的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦合至处理器的存储器上的指令和/或由该存储器提供的指令的处理器。在本说明书中,这些实现方式或者本发明可采取的任何其他形式可被称为技术。一般来说,所公开的处理的步骤的顺序可在本发明的范围内改变。除非另有说明,否则诸如被描述为被配置为执行任务的处理器或存储器的部件可被实现为临时配置为在给定时刻执行任务的一般部件或者被制造为执行任务的特定部件。如本文使用的,术语“处理器”是指被配置为处理诸如计算机程序指令的数据的一个或多个设备、电路和/或处理核。
下面将与说明本发明的原理的附图一起,提供本发明的一个或多个实施方式的详细描述。本发明结合这些实施方式进行描述,但是本发明不限于任何实施方式。本发明的范围仅由权利要求限制,并且本发明涵盖许多替代方案、修改和等同物。为了提供对本发明的透彻理解,在下面的描述中阐述了许多具体细节。这些细节出于实例的目而提供,并且本发明可在没有这些具体细节中的一些或全部的情况下根据权利要求来实践。为了清楚起见,没有详细描述与本发明相关的技术领域中已知的技术材料,使得本发明不会不必要地模糊。
公开了一种具有联合软硬件实现方式以增强对多单元扰乱的抗扰性的高可用性固态设备。在一个实施方式中,高可用性固态设备为PCI快速固态驱动器(SSD),诸如在数据中心中发现的那些。
现场可编程门阵列(FPGA)用于联合软硬件方法。FPGA被配置为以如下至少两种模式中的一种运行:正常模式,其中,FPGA例如,使用CRC编码解码器、ECC编码解码器、交织器和/或RAID,使用一个或多个处理步骤来处理‘硬件’中的数据;以及直接模式,其允许数据绕过一个或多个处理步骤。在直接模式中,处理步骤可替代地由‘软件’或FPGA外部的任意其他设备执行。
当FPGA以正常模式操作时,FPGA被配置为检测在FPGA上是否出现了扰乱,并且如果FPGA自身无法校正扰乱,则它可识别出与扰乱相关的错误位置。
在错误位置位于逻辑单元的关键子集内的情况下,它将会将FPGA切换为在直接模式下运行。当FPGA重新配置至少一部分逻辑单元时,允许在外部CPU、GPU和/或对等FPGA的辅助下进行处理。当逻辑单元已成功重新配置时,FPGA将切换回正常模式。
扰乱
单一事件扰乱(SEU)主要由如下至少三个来源中的一个引起:α粒子、高能中子和热中子。α粒子可具有高达10MeV的动能,并且它们在IC上的穿透范围高达70μm,其中,1MeV的能量可产生44fC的电荷。现代先进IC技术继续缩小电路间距,结果是减少了存储每个位所需的电荷。因此,随着电路间距的缩小,电荷由于α粒子而使位从1转变为0的可能性增加。
类似地,当拥有足够能量的中子撞击对应晶体管结时,电路内容也可受到影响。高能中子是宇宙射线撞击地球大气层的副产物,并且可具有宽能量谱。高能中子的通量高度依赖于海拔和地磁位置。海拔越高,中子通量可以越强。
当高能中子由于周围材料而失去能量时,它们可变为热中子。热中子的特征能量保持在约25meV,这可能仍会对IC产生不利影响。一般来讲,热中子的通量取决于其相关联的高能中子本底和周围环境,并且通常保持为相关联高能中子通量的0.1至0.5倍。
IC从根本上依赖于导通和断开的晶体管,并且每个晶体管容纳微量的电荷。IC的实例为具有其规则结构的SRAM。两个背对背反相器平衡以锁存一个位。当选择字线时,根据结点处的电荷来接通或断开位线。然而,如果如同中子的粒子或α粒子撞击结点,则原始电荷可改变,这会相应地修改以前存储的位,并且被认为是单一事件扰乱。
SRAM广泛用在VLSI电路中,如用在计算机数据中心中。同时发生的多个单一错误扰乱被称为多单元扰乱(MCU)。随着微电子技术的进步和特征尺寸的大幅缩小以及对企业数据中心的需求增加,MCU出现的概率是很重要的。MCU的后果包括服务中断、基础设施维护困难、驱动故障和TCO费用增长。传统地,检测和校正单一单元故障的方法包括使用循环冗余码(CRC)、奇偶校验、汉明码等等。与通常的错误编码类似,这些方法可证明不足以解决多单元扰乱。
通常,为了成本和性能改进,超大规模集成(VLSI)电路的特征尺寸持续的减小,从而导致给定面积内的SRAM单元的数量增加。随着由于改进制造技术而使设计规则减少,多单元扰乱对单一事件扰乱的统计学概率增加。因此,随着技术进步,考虑到与SEU相同的可能性,MCU的可能性增加。为保持高可用性(包括较小设计规则IC的有效性和效率),联合软硬件解决方案可提高FPGA对MCU的抵抗力。
VLSI电路制造商设计包括ECC和交织的专有保护,并且因此减小SEU的影响。随着诸如云计算的创新对数据中心的需求增加,需要以更高的可靠性标准改进数据中心设备。随着超大规模云提供商提供关于关键客户数据的服务,对应的责任不能依赖于消费级电子产品,如传统上已经做出的那样。公开了通过使用FPGA来提高可靠性、稳定性、高可用性和/或不间断服务量度来改进诸如PCIe SSD的设备以减轻MCU。
图1是示出根据一些实施方式的用于计算机数据中心的编程计算机系统/服务器的功能图。如所示的,图1提供根据一些实施方式的被编程为提供数据使用和存储服务的通用计算机系统的功能图。如将显而易见的,其他计算机系统架构和配置可用于数据使用和存储服务。
计算机系统100包括如下所述的各种子系统:包含至少一个微处理器的子系统,可以被称为处理器或中央处理单元(“CPU”)102。例如,处理器102可由单芯片处理器或者由多个核和/或处理器实现。在一些实施方式中,处理器102是控制计算机系统100的操作的通用数字处理器。使用从存储器110中检索的指令,处理器102控制输入数据的接收和操纵,以及数据在输出设备的输出和显示,例如,显示和图形处理单元(GPU)118。GPU的实例包括能够在图形处理单元上进行通用计算的现代图形卡适配器(“GPGPU”),例如,实现OpenCL、OpenACC、OpenHMPP、CUDA、DirectCompute、PhysX和Stream的适配器。
处理器102与存储器110双向耦合,该存储器可包括第一主存储设备,通常为随机存取存储器(“RAM”),以及第二主存储设备,通常为只读存储器(“ROM”)。如本领域中众所周知的,主存储设备可用作通用存储区域和暂时存储器,也可用于存储输入数据和处理数据。除了存储用于在处理器102上操作的处理的其他数据和指令之外,主存储设备也可以以数据对象和文本对象的形式存储编程指令和数据。另外如本领域中众所周知的,主存储设备通常包括由处理器102使用以执行其功能的基本操作指令、程序代码、数据和对象,例如编程指令。例如,存储器110可包括以下描述的任意合适的计算机可读存储介质,这取决于例如,数据访问需要是双向的还是单向的。例如,处理器102也可在高速缓存存储器(未示出)中直接地且非常快速地检索和存储频繁需要的数据。处理器102也可包括作为补充处理部件以辅助处理器和/或存储器110的协处理器(未示出)。
可移除大容量存储设备112为计算机系统100提供额外数据存储容量,并且双向(读/写)或单向(只读)耦合至处理器102。例如,存储设备112也可包括计算机可读介质,诸如磁带、闪存、PC-CARDS、便携式大容量存储设备、全息存储设备以及其他存储设备。固定大容量存储设备120也可以提供额外的数据存储容量。大容量存储设备120的最常见实例是硬盘驱动器。在一个实施方式中,大容量存储设备120是通过PCIe总线114与FPGA控制器连接的固态驱动器。大容量存储设备112、120一般存储附加编程指令、数据等,其典型地不处于由处理器102的有效使用中。将理解,保留在大容量存储设备112、120内的信息可以以标准方式作为存储器110(例如,RAM)的部分、作为虚拟存储器而并入(如果需要的话)。
除了提供访问存储子系统的处理器102之外,总线114也可用于提供对其他子系统和设备的访问。如所示的,根据需要,这些可包括显示监控器118、网络接口116、键盘104和定点设备106,以及辅助输入/输出设备接口、声卡、扬声器和其他子系统。例如,定点设备106可以是鼠标、触笔、追踪球或写字板,并且用于与图形用户界面交互。
网络接口116允许处理器102使用如示出的网络连接耦合至另一计算机、计算机网络或电信网络。例如,通过网络接口116,处理器102可在执行方法/处理步骤的过程中,从又一个网络接收例如数据对象或程序指令的信息或者将信息输出至另一网络。通常表示为要在处理器上执行的指令序列的信息可从另一网络接收并输出至另一网络。通过例如,在处理器102上运行/执行而实现的接口卡或类似设备和适当软件可用于将计算机系统100连接至外部网络并根据标准协议传输数据。例如,本文公开的各种处理实施方式可在处理器102上执行,或者可跨网络(诸如因特网、内联网或局域网)与共享处理的一部分的远程处理器结合地执行。贯穿本说明书,“网络”是指计算机部件之间的任意互连,包括因特网、以太网、内联网、局域网(“LAN”)、家庭区域网(“HAN”)、串行连接、并行连接、广域网(“WAN”)、光纤通道、PCI/PCI-X、AGP、VLbus、PCI Express、Expresscard、Infiniband、ACCESS.bus、无线LAN、WiFi、HomePNA、光纤、G.hn、红外网络、卫星网络、微波网络、蜂窝网络、虚拟专用网(“VPN”)、通用串行总线(“USB”)、火线、串行ATA、1-Wire、UNI/O或者将同构、异构系统和/或系统组连接在一起的任意形式。额外的大容量存储装置(未示出)也可以通过网络接口116连接到处理器102。
未示出的辅助I/O设备接口可与计算机系统100结合使用。辅助I/O设备接口可包括通用接口和定制接口,其允许处理器102发送数据并且更典型地从其他设备(诸如,麦克风、触敏显示器、换能器读卡器、磁带读取器、语音或手写识别器、生物计量读取器、相机、便携式大容量存储设备和其它计算机)接收数据。
此外,本文公开的各种实施方式还涉及具有计算机可读介质的计算机存储产品,其包括用于执行各种计算机实现的操作的程序代码。计算机可读介质是可存储数据的任意数据存储设备,该数据可在之后由计算机系统读取。计算机可读介质的实例包括但不限于以上提及的所有介质:磁性介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM盘;磁光介质,诸如光盘;以及专门配置的硬件设备,诸如专用集成电路(“ASIC”)、可编程逻辑设备(“PLD”)以及ROM和RAM设备。程序代码的实例包括如例如由编译器产生的机器代码或者包含较高等级代码的文件(例如,可使用解译器执行的脚本)二者。
图1所示的计算机系统仅仅是适于供本文公开的各种实施方式使用的计算机系统的实例。适于这样的使用的其它计算机系统可包括附加的或更少的子系统。此外,总线114图示了用于链接子系统的任何互连方案。也可利用具有不同配置的子系统的其它计算机架构。
图2是示出用于联合高可用性PCIe SSD的系统的实施方式的框图。在一个实施方式中,在图2中示出了图1的固定大容量存储设备(120)。在图2中描绘了两个PCIe SSD,第一PCIe SSD(120a)和类似的和/或对等的PCIe SSD(120b)被统称为PCIe SSD(120)。
每个PCIe SSD(120)包括耦合至FPGA控制器(204)的PCIe硬件接口(202)。FPGA控制器的配置信息被存储在NOR闪存(206)中,以用于定期下载至FPGA中,并且FPGA控制器(204)主要控制一堆NAND闪存节点/矩阵(208)。
在一个实施方式中,图2所描绘的架构使用主机侧闪存转换层(FTL)和控制逻辑,使得CPU(102)和/或系统存储器(110)执行那些SSD控制器功能。在PCIe卡(120)上的FPGA(204)中实现典型的SSD控制器功能的其余部分,例如CRC检查、ECC和RAID。
与ASIC相比,FPGA(204)是现场可重新配置的可重新编程的设备,使得如果保持其配置信息的任何单元失真,则其功能可被禁用和/或降级。FPGA的原子元素是逻辑单元,其主要由查找表(LUT)和多路复用器组成。LUT配置有容易受扰乱(包括SEU和MCU)的SRAM。如果FPGA(204)中的SRAM的配置由于例如,中子或α粒子而被破坏,则FPGA(204)中的受影响逻辑电路可能不能实现预期功能。因此,由于不正确的控制器逻辑,整个PCIe SSD(120)可能会发生故障。虽然诸如Xilinx、Altera、Lattice等的FPGA供应商在其SRAM中提供SEU适应力,但它们更易受到MCU的影响。在一个实施方式中,与FPGA控制器(204)内的SRAM相比,NOR闪存(206)对包括MCU的扰乱的适应性更强。
减少PCIe SSD(120a)上的FPGA(204)内的SRAM扰乱和后续配置信息失真的负面影响涉及两部分:首先,使用MCU识别子系统识别失真配置的位置;其次,当FPGA(204)的重新配置被推送以用于背景中的识别位置时,在不中断运行应用的情况下,FPGA(204)中的现有功能的软件实现方式替代CPU(102)、GPU(118)和/或对等PCIe SSD(120b)进行运行。在一个实施方式中,重新配置花费约300ms来完成恢复。
图3是用于MCU识别子系统的分类的说明。MCU识别子系统启动前提是,当FPGA(204)的逻辑单元具有产生MCU的相同概率时,MCU的影响基于受影响单元的位置而变化。对于许多FPGA(204)控制器设计,FPGA逻辑资源容量未被充分利用并且远低于100%。子系统还考虑冗余FPGA设计,其中,用于关键功能的某些逻辑单元被镜像以在重要模块上提供已配置的冗余。因此,代替覆盖整个FPGA(204)的典型不可校正错误(UE)标志和/或位,错误识别和评估子系统确定SEU和/或MCU发生的位置。如图3所描绘的,该子系统将MCU分类为组。
如果扰乱被分类为SEU(302),则它是可校正的并不直接影响FPGA(204)的功能。在一个实施方式中,日志由包括SEU的每个扰动构成以用于战略和/或环境分析。
如果是MCU的扰乱发生并且发生在未使用和/或冗余逻辑单元(304、306)上,则它也不直接影响工作功能。在扰乱位于未使用逻辑单元(304)之上的情况下,MCU可被忽略和/或仅被记录,因为没有逻辑需求并且任何配置都是不相关的。在扰乱在冗余单元(306)上的情况下,当功能正常继续且不中断时,进行后台任务以将冗余单元配置刷新回至正确版本。
根据FPGA供应商和架构,在发生重新配置的同时,刷新自身可占用对FPGA的逻辑结构的大部分访问,例如300ms。在一个实施方式中,后台任务被排队,使得在MCU发生在FPGA的特定部分(例如,关键逻辑)上的情况下,发生错误的部分和上述冗余逻辑在单个重新配置会话中均被重新配置,以便在切换软件模式中最小化停机时间和/或时间。
在MCU发生在没有冗余逻辑和/或已失真冗余逻辑的关键逻辑(308)上的情况下,该错误被认为是不可校正的错误(UE),并且联合软硬件辅助通过将FPGA从正常模式切换为直接模式,并在后台触发FPGA的重新配置以返回正常模式来卸载运行的业务。在下表中给出概要。
图4是示出用于联合软硬件辅助的系统的实施方式的框图。在一个实施方式中,图2的FPGA(204)在图4中被描绘为一组模块和数据流。
正常模式是FPGA(204)的标准状态,其中,FPGA在无MCU的正常工作状态下起作用。如图3所示,当在关键逻辑中发生MCU时,正常模式的数据路径中的某些功能可能会发生故障。因此,使用在FPGA(204)内实现的电路可能不再可靠。因此,FPGA(204)切换为直接模式,在该模式内,受到MCU影响的FPGA(204)中实现的逻辑模块可以被绕过,因此MCU的影响被最小化。在直接模式中,正常模式功能的实现方式被卸载到处于FPGA(204)外部的其他资源,使得输入至FPGA(204)中的数据处于准备将要写入NAND闪存中的完成和/或已处理格式。
在图4中,在FPGA(204)内存在三类逻辑单元。硬化逻辑单元(402)是可编程硬化的逻辑单元。FPGA供应商可在一些FPGA内提供“硬编码”逻辑单元的方式,使得它们不能被现场重新配置,并因此不易受到SRAM损坏或重新配置停机的影响,例如Xilinx EasyPath、Altera HardCopy和/或Actel/Microsemi反熔断或其他一次性可编程逻辑结构。FPGA(204)的其余部分包括用于逻辑的现场可编程逻辑单元,例如,控制路径和/或数据路径逻辑(404)以及未使用的现场可编程逻辑单元(406)。
在硬化逻辑单元(402)内,存在至少两个接口:PCIe接口(412)块,以提供使FPGA(204)与PCIe硬件接口(202)互连的端点/PHY核;以及NAND闪存接口(414)块,以提供使FPGA(204)与NAND闪存矩阵(208)互连的端点/PHY核。在一个实施方式中,NAND闪存接口(414)符合以下中的一项或多项:开放式NAND闪存接口(ONFI)规范,包括ONFI 1.0、ONFI 2.0、ONFI2.1、ONFI 2.2、ONFI 2.3、ONFI 3.0、ONFI 3.1、ONFI 3.2和/或ONFI 4.0;以及Toggle模式1.0和/或Toggle模式2.0。因此,在直接模式(432)内,数据路径允许主机按照以下顺序直接访问NAND闪存(208):
a.从PCIe主机(202)开始;
b.穿过PCIe接口(412);
c.穿过Toggle/ONFI接口(414);以及
d.在NAND闪存(208)处结束以用于写入以及用于读取的反向路径。
在所使用的现场可编程逻辑单元(404)内,存在在正常模式(434)中使用的处理块。在图4所示的实例中,示出包括CRC编码解码器(422)、ECC编码解码器(424)、交织器(426)和RAID处理(428)的四个处理块。因此,在正常模式(434)内,数据路径允许主机通过以下间接访问NAND闪存(208):
a.从PCIe主机(202)开始;
b.穿过PCIe接口(412);
c.由CRC编码解码器(422)处理;
d.由ECC编码解码器(424)处理;
e.由交织器(426)处理;
f.由RAID(428)处理;
g.穿过Toggle/ONFI接口(414);以及
h.在NAND闪存(208)处结束以用于写入以及用于读取的类似反向路径。
软件辅助的至少三个外部来源
当处于直接模式(432)中时,在FPGA(204)被重新配置(在一些实施方式中,其可花费约300ms)的同时,用于FPGA(204)的数据路径功能(例如,处理(422、424、426、428))需要由外部来源实现。
如图2所示,存在用于辅助的至少三个可能来源:CPU(102);对等SSD(120b);和GPU(118)。在PCIe SSD(120a)运行内部重新配置以从NOR闪存(206)重新编程FPGA(204)的同时,该三个来源中的任一者或组合被分配以暂时执行处理块(422、424、426、428)的功能。利用外部帮助,对于用户,服务是无缝且连续的。
CPU。CRC(422)、ECC(424)、交织器(426)和RAID(428)的软件实现方式在CPU(102)和服务器存储器(110)上开发、安装并运行。由于高度并行FPGA(204)和冯·诺依曼(VonNeumann)CPU(102)之间存在固有的架构差异,可通过例如增加ECC编码解码算法中的并行性来调整编码解码算法,以保持所需吞吐量。
因此,通用CPU(102)的短期负担允许随时间的差异(diversity),以避免高容量PCIe SSD(120a)变得暂时不可恢复(即,避免需要整个服务器/机架断电、更换PCIe SSD并按照典型数据中心操作规程来重启服务器)。由于工作的手动本质,此过程花费数十分钟或几小时。
对等SSD。在多个PCIe SSD安装在总线(114)上的情况下,它们被配置为使得它们能够彼此提供备份服务,部分原因是处理资源(422、424、426、428)可能不会一直处于持续使用。每个PCIe SSD(120a、120b)可具有相同的FPGA(204)设计。当一个PCIe SSD(120a)由于MCU而处于FPGA重新配置过程中时,它切换为直接模式(432),并且协议允许它“借用”另一(120b)PCIe SSD的FPGA资源和时间片段来完成其在正常模式下的逻辑处理。
该备份机制提供高可用性,并涵盖用于短期重新配置的过渡。在PCIe SSD(120a)的FPGA已完成重新编程并被验证之后,SSD(120a)切换回正常模式(434)并停止从SSD(120b)借用。与CPU相反,由于两个SSD(120a、120b)中的逻辑电路相同,因此可能不需要调整算法,而是开发用于共享的时间片协议来防止冲突。
GPU。第三选项是在GPU协处理器(118)上运行FPGA逻辑电路(422、424、426、428)的软件版本。在写入路径中,GPU(118)可利用其高性能计算引擎完成CRC解码(422)、ECC编码(424)、交织(426)和RAID编码(428)。在读取路径中,如同RAID解码(428)、解交织(426)、ECC解码(424)和CRC解码(422)的处理也具有计算密集的特征并由GPU(118)执行。该选项类似于CPU(102)选项,其中,主要区别在于来自高度并行化GPU(118)的计算引擎允许算法的较少调整,以及来自GPU(118)空闲时隙的交替时间片段布置。在一个实施方式中,GPU(118)被包括在每个服务器中以便为CPU(102)提供简单的现成的计算资源备份。
服务器和CPU(102)支持用于软件辅助的所有三个选项,利用顶级管理软件来安排数据路径的资源借用以及临时替换和绕行(diversion)。该管理工具自动评估如图1所示的服务器基础设施,并选择何时使用哪个选项以便向重新配置FPGA(204)提供直接模式(432)/从重新配置FPGA(204)提供直接模式(432),从而为FPGA(204)恢复争取时间。
图5是示出用于处理MCU的过程的实施方式的流程图。在一个实施方式中,使用顶级管理软件由图1中的CPU(102)执行图5的流程。
在502中,主要由FPGA供应商的专有协议识别出扰乱和/或错误。扰乱可以是SEU或MCU中的一个或多个。如果在504中确定扰乱不是MCU,则如506所示,该错误被识别为SEU且是可修复的。
否则,控制被转移至508以确定错误位置。FPGA(204)被设计为在其自身的可配置逻辑单元空间(404)中,从而有意地模块化为逻辑块,并且为每个子模块提供错误检查和/或签名。贯穿本说明书,出于描述实例的目的,讨论了包括哈希值的签名。例如,基于FPGA子模块中的一个或多个逻辑单元的配置SRAM内容中的内容,签名可以是奇偶校验位、CRC或ECC校验子(syndrome)。可使用其他类型的签名。错误检查可以是奇偶校验、CRC校验、ECC校验子检查或其他适当的纠错和/或检查技术。
FPGA(204)也被设计为提供分级信令,以便例如通过使用4位线覆盖四个主模块(422、424、426、428)中的每一个块,来快速确定哪个子模块由于MCU而被破坏,如果对应模块中的任何子模块坏掉,则每个主模块以至少按位标记来断定,接下来用于四个模块中的每一个的一系列n位线指示子模块和/或子子模块等等。
如果在510中确定在正在使用的逻辑单元(404)中发生错误,则控制被转移至512。否则,如514所示,错误在未使用的逻辑单元中,并因此被忽略。在512中,扰乱的位置被确定以查看其是否在冗余逻辑中。如515所示,如果扰乱处于冗余逻辑中,则损坏的逻辑最终由冗余逻辑替换,而无需中断正常模式(434)。否则,控制被转移至516。
在516中,FPGA(204)被切换为直接模式(432),并且外部处理/软件辅助从如先前所述的三个来源中的至少一个开始。在518中,在建立直接模式(432)之后,FPGA(204)中的现场可编程逻辑单元(404)从NOR闪存(206)重新配置并且被验证。在520中,在成功验证重新配置之后,FPGA(204)切换回正常模式(434)。
图6是示出用于联合软硬件辅助的过程的实施方式的流程图。在一个实施方式中,过程600可由图1和/或图2中的服务器执行。
在602中,服务器检测到当FPGA以第一模式(例如,正常模式434)运行时,FPGA(204)上发生错误,其中,该错误不能被FPGA自身校正。FPGA可被配置为在第一模式(其中,一组处理步骤将由FPGA内的第一组逻辑单元执行)下运行或者在第二模式(例如,直接模式432,其中,该组处理步骤的至少一部分要在FPGA外部执行)下运行,其中,这些处理步骤的执行由FPGA内的第二组逻辑单元触发。在一个实施方式中,FPGA自身不能校正错误是由于MCU导致的。在一个实施方式中,在FPGA自身可校正错误的情况下,该可校正错误被修复。
在一个实施方式中,多个存储元件(208)耦合至FPGA(204),其中,存储元件包括以下中的至少一个:NAND闪存单元、NOR闪存单元、NVRAM单元、DRAM、SRAM、磁存储盘和光存储盘。在一个实施方式中,该组处理步骤包括在计算机总线(114)与多个存储元件(208)之间的控制器访问。在一个实施方式中,计算机总线(114)包括以下中的至少一个:外围连接接口快速(PCIe)总线、非易失性存储器快速(NVMe)总线、串行AT附件(SATA)总线、串行附接SCSI(SAS)总线和小型计算机系统接口(SCSI)总线。在一个实施方式中,第二组逻辑单元比第一组逻辑单元更鲁棒,例如,第二组逻辑单元已被现场可编程硬化,诸如锁定第二组逻辑单元不能被进一步现场可编程。
在604中,服务器识别与错误相关联的错误位置。在一个实施方式中,识别与错误相关联的错误位置包括确定用于多个子模块的签名,其中,可使用奇偶校验、CRC校验、ECC校验子检查等来验证签名。
在606中,在错误位置被认为发生在第一组逻辑单元的关键子集中的情况下,控制被转移至608。在一个实施方式中,第一组逻辑单元的关键子集包括正在使用且没有冗余的单元,或者具有自身已被破坏的冗余逻辑。在一个实施方式中,在错误位置被认为发生在未使用的逻辑单元中的情况下,服务器忽略错误。在一个实施方式中,在错误位置被认为发生在使用中并具有冗余的逻辑单元的情况下,在FPGA继续以第一模式操作的同时,服务器重新配置第一组逻辑单元中的至少一个。
在608中,服务器将FPGA切换至在第二模式下运行。在一个实施方式中,在第二模式下的该组处理步骤将在FPGA外部由以下中的至少一个执行:处理器、CPU、GPU和对等FPGA。在一个实施方式中,对等FPGA被相同地配置为FPGA。
在一个实施方式中,该组处理步骤包括用于多个存储元件(208)的使用以下规格中的至少一个的控制器访问步骤:ONFI和Toggle。在一个实施方式中,第二模式包括直接模式,该直接模式允许用于多个存储元件的SSD控制器访问步骤,但是在FPGA被重新配置时要在FPGA外部执行。在610中,服务器重新配置第一组逻辑单元中的至少一个单元。在612中,一旦成功重新配置,服务器将FPGA切换为在第一模式下运行。
用于多单元扰乱以提供关键设备(120a)的在线恢复的联合软硬件辅助包括:
·例如使用奇偶校验签名来定位PCIe SSD的FPGA(204)逻辑结构(404)内的MCU并响应于该确定位置的技术;
·在正常模式(434)与直接模式(432)之间切换FPGA(204)模式,以及从NOR闪存(206)进行在线自恢复;
·从FPGA管线(404)到外部来源(诸如CPU(102)、GPU(118)和对等设备(120b))的服务迁移,以动态支持无缝和/或无中断的服务操作;
·操纵硬件切换和资源借用的管理软件;
·考虑到定位MCU的技术,将FPGA(204)中的高风险模块的预测性HDL开发作为冗余设计,以支持MCU的更大适应性;以及
·提供对等设备(120b)的外部数据流以转移其资源,并组织处理数据流,以便进行处理并流回至受MCU影响的设备(120a)。
尽管为了清楚理解的目的已经对前述实施方式进行了一些细节的描述,但是本发明不限于所提供的细节。存在许多实现本发明的替代方法。所公开的实施方式是说明性的而非限制性的。

Claims (23)

1.一种高可用性PCIe SSD的系统,包括:
现场可编程门阵列FPGA,能够配置为以第一模式或第二模式运行,在所述第一模式中,一组处理步骤将由所述FPGA内的第一组逻辑单元执行,在所述第二模式中,所述一组处理步骤的至少一部分将在所述FPGA外部执行,其中,所述FPGA外部的所述一组处理步骤的至少一部分的执行使用所述FPGA内的第二组逻辑单元促进;以及
处理器,耦合至所述FPGA,所述处理器被配置为:
当所述FPGA以所述第一模式运行时,检测所述FPGA上发生错误;
识别与所述错误相关联的错误位置;以及
在所述错误位置被认为发生在所述第一组逻辑单元的关键子集中的情况下:
将所述FPGA切换为以所述第二模式运行;
重新配置所述第一组逻辑单元中的至少一个单元;以及
当重新配置成功时,将所述FPGA切换为以所述第一模式运行。
2.根据权利要求1所述的系统,进一步包括耦合至所述FPGA的多个存储元件,其中,所述存储元件包括以下各项中的至少一个:NAND闪存单元、NOR闪存单元、NVRAM单元、DRAM、SRAM、磁存储盘和光存储盘。
3.根据权利要求2所述的系统,其中,所述一组处理步骤包括在计算机总线与所述多个存储元件之间的控制器访问。
4.根据权利要求3所述的系统,其中,所述计算机总线包括以下各项中的至少一个:外围连接接口快速PCIe总线、非易失性存储器快速NVMe总线、串行AT附件SATA总线、小型计算机系统接口SCSI总线和串行附接SCSI(SAS)总线。
5.根据权利要求1所述的系统,其中,所述第二组逻辑单元已被现场可编程硬化。
6.根据权利要求5所述的系统,其中,所述现场可编程硬化包括将所述第二组逻辑单元冻结为不能够被进一步现场可编程。
7.根据权利要求1所述的系统,其中,识别与所述错误相关联的所述错误位置的操作包括检查用于多个子模块的签名。
8.根据权利要求7所述的系统,其中,所述签名通过以下中的至少一个来检查:奇偶校验;CRC校验;和ECC校验子检查。
9.根据权利要求1所述的系统,其中,在所述FPGA切换为以所述第二模式的情况下,所述一组处理步骤将在所述FPGA外部通过以下中的至少一个执行:所述处理器、CPU、GPU和对等FPGA。
10.根据权利要求9所述的系统,其中,所述对等FPGA被相同地配置为所述FPGA。
11.根据权利要求9所述的系统,其中,所述一组处理步骤包括用于多个存储元件的使用开放式NAND闪存接口ONFI、Toggle或两者的控制器访问步骤。
12.根据权利要求11所述的系统,其中,所述第二模式包括直接模式,所述直接模式在所述FPGA被重新配置的同时,允许在所述多个存储元件执行在所述FPGA外部执行的SSD控制器访问步骤。
13.根据权利要求1所述的系统,其中,不能由所述FPGA自身校正的所述错误,是由于与多单元扰乱MCU相关联的错误引起的。
14.根据权利要求1所述的系统,其中,所述第一组逻辑单元的关键子集包括正在使用且没有冗余的单元。
15.根据权利要求14所述的系统,其中,所述处理器被进一步配置为,在所述错误位置被认为发生在未使用的逻辑单元中的情况下,忽略所述错误。
16.根据权利要求14所述的系统,其中,所述处理器被进一步配置为,在所述错误位置被认为发生于正在使用并具有冗余的逻辑单元中的情况下,当所述FPGA继续在所述第一模式下运行时,重新配置所述第一组逻辑单元中的至少一个单元。
17.根据权利要求1所述的系统,其中,所述错误不能由所述FPGA自身校正。
18.根据权利要求1所述的系统,其中,所述处理器被进一步配置为,在所述错误能够由所述FPGA自身校正的情况下,修复能够校正的所述错误。
19.根据权利要求1所述的系统,其中,所述系统是固态驱动器。
20.一种高可用性PCIe SSD的方法,包括:
当FPGA以第一模式运行时,检测在所述FPGA上发生错误,
其中,所述FPGA能够被配置为以所述第一模式或第二模式运行,在所述第一模式中,一组处理步骤将由所述FPGA内的第一组逻辑单元执行,在所述第二模式中,所述一组处理步骤的至少一部分将在所述FPGA外部执行,其中,所述FPGA外部的所述一组处理步骤的至少一部分的执行由所述FPGA内的第二组逻辑单元促进;
将所述FPGA切换为以所述第二模式运行;以及
重新配置所述第一组逻辑单元中的至少一个单元。
21.一种存储从主机接收的数据的固态盘SSD,所述SSD包括:
现场可编程门阵列FPGA,能够配置为以第一模式或第二模式运行,在所述第一模式中,一组处理步骤将由所述FPGA内的第一组逻辑单元执行,在所述第二模式中,所述一组处理步骤的至少一部分将在所述FPGA外部执行,其中,所述FPGA外部的所述一组处理步骤的至少一部分的执行使用所述FPGA内的第二组逻辑单元促进;以及
处理器,耦合至所述FPGA,所述处理器被配置为:
当所述FPGA以所述第一模式运行时,检测所述FPGA上发生错误;
识别与所述错误相关联的错误位置;以及
在所述错误位置被认为发生在所述第一组逻辑单元的关键子集中的情况下:
将所述FPGA切换为以所述第二模式运行;
重新配置所述第一组逻辑单元中的至少一个单元;以及
在重新配置成功时,将所述FPGA切换为以所述第一模式运行。
22.根据权利要求21所述的SSD,其中,在所述FPGA切换为以所述第二模式运行的情况下,所述一组处理步骤将在所述FPGA外部通过以下各项中的至少一个执行:所述处理器、CPU、GPU和对等FPGA。
23.一种计算机程序产品,所述计算机程序产品实施在有形计算机可读存储介质中并且包括用于以下的计算机指令:
当FPGA以第一模式运行时,检测所述FPGA上发生错误;
其中,所述FPGA能够被配置为以所述第一模式或第二模式运行,在所述第一模式中,一组处理步骤将由所述FPGA内的第一组逻辑单元执行,在所述第二模式中,所述一组处理步骤的至少一部分将在所述FPGA外部执行,其中,所述FPGA外部的所述一组处理步骤的至少一部分的执行由所述FPGA内的第二组逻辑单元促进;
识别与所述错误相关联的错误位置;以及
在所述错误位置被认为发生在所述第一组逻辑单元的关键子集中的情况下:
将所述FPGA切换为以所述第二模式运行;
重新配置所述第一组逻辑单元中的至少一个单元;以及
如果成功重新配置,将所述FPGA切换至在所述第一模式下运行。
CN201710781282.7A 2016-09-02 2017-09-01 固态盘SSD及高可用性PCIe SSD的方法和系统 Active CN107799151B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/256,350 2016-09-02
US15/256,350 US9965356B2 (en) 2016-09-02 2016-09-02 Method and system of high-availability PCIE SSD with software-hardware jointly assisted implementation to enhance immunity on multi-cell upset

Publications (2)

Publication Number Publication Date
CN107799151A true CN107799151A (zh) 2018-03-13
CN107799151B CN107799151B (zh) 2021-08-03

Family

ID=61281290

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710781282.7A Active CN107799151B (zh) 2016-09-02 2017-09-01 固态盘SSD及高可用性PCIe SSD的方法和系统

Country Status (3)

Country Link
US (1) US9965356B2 (zh)
CN (1) CN107799151B (zh)
TW (1) TWI766874B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109626A (zh) * 2019-05-20 2019-08-09 哈尔滨工业大学 一种基于FPGA的NVMe SSD命令处理方法
CN110347626A (zh) * 2018-04-02 2019-10-18 三星电子株式会社 服务器系统
CN112764669A (zh) * 2019-11-01 2021-05-07 北京忆芯科技有限公司 用于存储控制器的加速器
CN112798944A (zh) * 2021-01-16 2021-05-14 西安电子科技大学 基于在线实时数据的fpga硬件错误归因分析方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190228666A1 (en) * 2018-01-19 2019-07-25 Ge Aviation Systems Llc System and Method for Reconfiguring a System-On-Module for an Unmanned Vehicle
JP7131053B2 (ja) * 2018-04-24 2022-09-06 富士通株式会社 記憶装置,情報処理プログラムおよび情報処理システム
CN108804232B (zh) * 2018-06-26 2022-02-18 郑州云海信息技术有限公司 一种支持云端fpga部署的方法、主机服务器及系统
US11238005B2 (en) 2018-07-20 2022-02-01 Samsung Electronics Co., Ltd. SFF-TA-100X based multi-mode protocols solid state devices
US11126496B2 (en) * 2018-12-27 2021-09-21 Intel Corporation Technologies for re-programmable hardware in autonomous vehicles
US11095307B2 (en) * 2019-09-03 2021-08-17 Nvidia Corporation Performing cyclic redundancy checks using parallel computing architectures
CN111143107B (zh) * 2019-11-13 2022-06-17 广东高云半导体科技股份有限公司 一种fpga单粒子反转校验电路和方法
CN111104360B (zh) * 2019-11-30 2021-08-10 北京浪潮数据技术有限公司 一种基于NVMe协议的固态硬盘
US11455159B2 (en) * 2020-07-28 2022-09-27 Goldman Sachs & Co. LLC Wirelessly updating field programmable gate arrays upon detection of hardware vulnerability
CN112526904A (zh) * 2020-11-26 2021-03-19 合肥富煌君达高科信息技术有限公司 一种含有fpga的电子产品电路的工作模式切换控制方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999048103A1 (en) * 1998-03-16 1999-09-23 Actel Corporation Cyclic redundancy checking of a field programmable gate array having an sram memory architecture
US20090031194A1 (en) * 2007-07-27 2009-01-29 Actel Corporation Error-detecting and correcting fpga architecture
CN102751995A (zh) * 2012-07-20 2012-10-24 天津工大瑞工光电技术有限公司 一种基于fpga的抗多位错误翻转rs码检错纠错系统
CN104461808A (zh) * 2014-11-06 2015-03-25 北京空间飞行器总体设计部 一种fpga单粒子软错误影响评估方法
CN104516843A (zh) * 2013-09-30 2015-04-15 韩商联测股份有限公司 基于fpga的非安装型存储器测试装置
CN105103234A (zh) * 2012-11-20 2015-11-25 查尔斯·I·派德尔 固态驱动器体系结构
CN105760250A (zh) * 2016-02-04 2016-07-13 北京时代民芯科技有限公司 一种具有码流纠检错功能的单粒子加固fpga配置电路
CN106293991A (zh) * 2016-08-10 2017-01-04 上海无线电设备研究所 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301696B1 (en) 1999-03-30 2001-10-09 Actel Corporation Final design method of a programmable logic device that is based on an initial design that consists of a partial underlying physical template
US6526557B1 (en) 2000-07-25 2003-02-25 Xilinx, Inc. Architecture and method for partially reconfiguring an FPGA
US7036059B1 (en) 2001-02-14 2006-04-25 Xilinx, Inc. Techniques for mitigating, detecting and correcting single event upset effects in systems using SRAM-based field programmable gate arrays
US6838899B2 (en) * 2002-12-30 2005-01-04 Actel Corporation Apparatus and method of error detection and correction in a radiation-hardened static random access memory field-programmable gate array
US7576557B1 (en) * 2008-03-26 2009-08-18 Xilinx, Inc. Method and apparatus for mitigating one or more event upsets
US8099625B1 (en) * 2009-04-03 2012-01-17 Xilinx, Inc. Self-checking and self-correcting internal configuration port circuitry
US9754683B2 (en) * 2012-03-29 2017-09-05 Intel Corporation Method and system to obtain state confidence data using multistrobe read of a non-volatile memory
JP6032360B2 (ja) * 2013-06-12 2016-11-24 日本電気株式会社 コンフィグレーション制御システム及びコンフィグレーション制御方法
CN103500125B (zh) 2013-10-10 2016-07-06 中国科学院上海技术物理研究所 一种基于fpga的抗辐射的数据处理系统及方法
US9230655B2 (en) * 2013-12-20 2016-01-05 Apple Inc. Data storage management in analog memory cells using a non-integer number of bits per cell

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999048103A1 (en) * 1998-03-16 1999-09-23 Actel Corporation Cyclic redundancy checking of a field programmable gate array having an sram memory architecture
US20090031194A1 (en) * 2007-07-27 2009-01-29 Actel Corporation Error-detecting and correcting fpga architecture
CN102751995A (zh) * 2012-07-20 2012-10-24 天津工大瑞工光电技术有限公司 一种基于fpga的抗多位错误翻转rs码检错纠错系统
CN105103234A (zh) * 2012-11-20 2015-11-25 查尔斯·I·派德尔 固态驱动器体系结构
CN104516843A (zh) * 2013-09-30 2015-04-15 韩商联测股份有限公司 基于fpga的非安装型存储器测试装置
CN104461808A (zh) * 2014-11-06 2015-03-25 北京空间飞行器总体设计部 一种fpga单粒子软错误影响评估方法
CN105760250A (zh) * 2016-02-04 2016-07-13 北京时代民芯科技有限公司 一种具有码流纠检错功能的单粒子加固fpga配置电路
CN106293991A (zh) * 2016-08-10 2017-01-04 上海无线电设备研究所 基于ecc纠错码的fpga抗单粒子翻转快速刷新电路及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A. VATANKHAHGHADIM等: "A Variation-Tolerant MRAM-backed-SRAM Cell", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS II》 *
吕小微: "基于FPGA 的NAND Flash ECC 校验", 《电子科技》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347626A (zh) * 2018-04-02 2019-10-18 三星电子株式会社 服务器系统
CN110347626B (zh) * 2018-04-02 2021-10-22 三星电子株式会社 服务器系统
US11803337B2 (en) 2018-04-02 2023-10-31 Samsung Electronics Co., Ltd. NDP-server: a data-centric computing architecture based on storage server in data center
CN110109626A (zh) * 2019-05-20 2019-08-09 哈尔滨工业大学 一种基于FPGA的NVMe SSD命令处理方法
CN110109626B (zh) * 2019-05-20 2022-01-25 哈尔滨工业大学 一种基于FPGA的NVMe SSD命令处理方法
CN112764669A (zh) * 2019-11-01 2021-05-07 北京忆芯科技有限公司 用于存储控制器的加速器
CN112798944A (zh) * 2021-01-16 2021-05-14 西安电子科技大学 基于在线实时数据的fpga硬件错误归因分析方法
CN112798944B (zh) * 2021-01-16 2022-05-31 西安电子科技大学 基于在线实时数据的fpga硬件错误归因分析方法

Also Published As

Publication number Publication date
US9965356B2 (en) 2018-05-08
CN107799151B (zh) 2021-08-03
TW201812584A (zh) 2018-04-01
US20180067810A1 (en) 2018-03-08
TWI766874B (zh) 2022-06-11

Similar Documents

Publication Publication Date Title
CN107799151A (zh) 固态盘SSD及高可用性PCIe SSD的方法和系统
dos Santos et al. Evaluation and mitigation of soft-errors in neural network-based object detection in three GPU architectures
CN104798047B (zh) 错误检测和校正装置及方法
CN106856103B (zh) 用于与非闪存的涡轮乘积码
US10388400B2 (en) Generalized product codes for flash storage
CN102915768B (zh) 基于edac模块的三模冗余对存储器的容错装置及其方法
CN106575516A (zh) 使用来自多个存储单元和奇偶校验存储单元的可靠性信息为一个失效存储单元恢复数据
EP2541773B1 (en) Reconfigurable logic block
US10521304B1 (en) Multidimensional RAID
US20160062828A1 (en) Data accessing method, memory storage device and memory controlling circuit unit
TWI618070B (zh) 快閃記憶體裝置及快閃記憶體儲存管理方法
CN105005453A (zh) 星载nand flash固存坏区管理系统
Hosseini et al. Tolerating defects in low-power neural network accelerators via retraining-free weight approximation
CN105027084B (zh) 在移动通信系统中控制存储器的装置和方法
CN202838976U (zh) 基于edac模块的三模冗余对存储器的容错装置
US20140201599A1 (en) Error protection for integrated circuits in an insensitive direction
US11750221B1 (en) Encoding and decoding of data using generalized LDPC codes
US11334431B2 (en) System and method for data protection in solid-state drives
US11609813B2 (en) Memory system for selecting counter-error operation through error analysis and data process system including the same
TWI841391B (zh) 快閃記憶體裝置及快閃記憶體儲存管理方法
Khan et al. An efficient error correction coding approach to tolerate soft error
KR20170067656A (ko) Nand 플래시용 터보 프로덕트 코드

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
TR01 Transfer of patent right

Effective date of registration: 20220729

Address after: No.12 Zhuantang science and technology economic block, Xihu District, Hangzhou City, Zhejiang Province

Patentee after: Aliyun Computing Co.,Ltd.

Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK

Patentee before: ALIBABA GROUP HOLDING Ltd.

TR01 Transfer of patent right