存储设备组及包括存储设备组的存储系统

文档序号:1719602 发布日期:2019-12-17 浏览:13次 >En<

阅读说明:本技术 存储设备组及包括存储设备组的存储系统 (Storage device group and storage system including the same ) 是由 朴在根 郑铋用 沈昊俊 芮祥荣 于 2019-01-30 设计创作,主要内容包括:提供了一种存储设备组。该存储设备组包括存储设备和可重构逻辑芯片,该存储设备能够与主机通信并包括控制器,该控制器被配置为通过对数据进行加密来生成加密的输入数据;该可重构逻辑芯片被配置为从存储设备接收加密的输入数据、通过根据预定的配置处理加密的输入数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。(A storage device group is provided. The storage device set includes a storage device and a reconfigurable logic chip, the storage device capable of communicating with a host and including a controller configured to generate encrypted input data by encrypting data; the reconfigurable logic chip is configured to receive encrypted input data from the storage device, generate processed data by processing the encrypted input data according to a predetermined configuration, and generate encrypted output data by encrypting the processed data.)

存储设备组及包括存储设备组的存储系统

相关申请的交叉引用

本申请要求于2018年6月7日在韩国知识产权局提交的韩国专利申请第10-2018-0065657号的权益,其公开内容通过引用整体并入本文。

技术领域

本发明构思的示例实施例涉及存储设备、包括该存储设备的存储系统和/或操作该存储设备的方法。例如,至少一些示例实施例涉及包括存储设备和可重构逻辑芯片的存储设备组、包括该存储设备组的存储系统和/或操作该存储设备的方法。

背景技术

为了提高存储系统的处理速度,可以向存储系统中添加加速器,加速器通过执行通常由主机执行的一些计算来辅助主机的计算。传统上,加速器可以是执行设置功能的专用硬件加速器,因此,主机可以支持全部数据流,而这可能导致主机的开销。

发明内容

近来,主机需要高速处理各种应用中的每一个。为了减少主机的开销,在一个或多个示例实施例中,可重构加速器可根据设计文件(例如,现场可编程门阵列(field-programmable gate array,FPGA))来重构以对应于各种应用。

本发明构思的一些示例实施例提供了一种包括存储设备和可重构逻辑芯片的存储设备组、包括该存储设备组的存储系统和/或操作该存储设备的方法,从而可以减少主机的开销。

根据本发明构思的示例实施例,提供了一种存储设备组,该存储设备组包括被配置为与主机通信的存储设备和可重构逻辑芯片。该存储设备包括被配置为通过对数据进行加密来生成加密的输入数据的控制器;该可重构逻辑芯片被配置为从存储设备接收加密的输入数据、通过根据配置处理加密的输入数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。

根据本发明构思的另一示例实施例,提供了一种存储系统,该存储系统包括主机、可重构逻辑芯片和存储设备。该存储设备被配置为经由第一端口与主机通信,并且经由第二端口与可重构逻辑芯片通信,使得该存储设备被配置为经由第二端口将加密的输入数据发送到可重构的逻辑芯片,并且经由第二端口从可重构逻辑芯片接收加密的输出数据。

根据本发明构思的另一示例实施例,提供了一种操作存储设备的方法。该方法包括:经由存储设备的第一端口从主机接收包括数据处理请求的主机命令;经由存储设备的第二端口将加密的数据和命令对加密的数据进行数据处理的命令发送到可重构逻辑芯片;以及,经由存储设备的第二端口从可重构逻辑芯片接收加密的已处理数据。

附图说明

通过以下结合附图的详细描述,将更清楚地理解本发明构思的示例实施例,其中:

图1是示意性地示出根据示例实施例的存储系统的图;

图2是根据示例实施例的存储设备组的框图;

图3是根据示例实施例的操作存储设备的方法的流程图;

图4是示出图2的主机、存储设备和可重构逻辑芯片之间的操作的示例的流程图;

图5是示出图2的主机、存储设备和可重构逻辑芯片之间的操作的另一示例的流程图;

图6示出了图2所示的存储设备组的操作的示例;

图7是示出图6的控制器、缓冲存储器和可重构逻辑芯片之间的操作的流程图;

图8示出了图2所示的存储设备组的操作的另一示例;

图9是示出图8的非易失性存储器、控制器、缓冲存储器和可重构逻辑芯片之间的操作的流程图;

图10是图2的控制器的框图;

图11是示出图10的控制器的改进示例的框图;

图12是根据示例实施例的存储设备组的框图;

图13示出了图12的存储设备组的操作的示例;

图14是示出了图13的控制器和可重构逻辑芯片之间的操作的示例的流程图;

图15示出了图12的存储设备组的操作的另一示例;

图16是示出图15的非易失性存储器、控制器和可重构逻辑芯片之间的操作的示例的流程图;

图17示出了根据示例实施例的存储设备组的操作的示例;

图18是示出图17的控制器和可重构逻辑芯片之间的操作的示例的流程图;

图19示出了根据示例实施例的存储设备组的操作的另一示例;

图20是示出图19的非易失性存储器、控制器和可重构逻辑芯片之间的操作的示例的流程图;

图21示出了根据示例实施例的存储系统;

图22示出了根据示例实施例的网络系统;和

图23示出了根据示例实施例的网络系统。

具体实施方式

图1是示意性地示出根据示例实施例的存储系统SS的图。

参照图1,存储系统SS可以包括存储设备组10和主机300,存储设备组10可以包括存储设备100和可重构逻辑芯片200。存储设备100可以包括第一端口PT1和第二端口PT2,因此,存储设备100也可以被称为双端口存储设备。

在示例实施例中,存储设备100可以被实现为第一芯片,可重构逻辑芯片200可以被实现为第二芯片,第一芯片和第二芯片可以装配到同一板上并且可以彼此电连接。在示例实施例中,存储设备100可以被实现为第一芯片,可重构逻辑芯片200可以被实现为第二芯片,第一芯片和第二芯片可以配置为叠层封装(package-on-package,PoP)。然而,本发明构思不限于此,存储设备100和可重构逻辑芯片200可以经由各种配置方式彼此电连接以形成存储设备组10。

在示例实施例中,可重构逻辑芯片200可以是现场可编程门阵列(field-programmable gate array,FPGA)芯片。然而,本发明构思的示例实施例不限于此,可重构逻辑芯片200可以是可编程逻辑器件(programmable logic device,PLD)或复杂PLD(complex PLD,CPLD)。可重构逻辑芯片200可以用作加速器以通过执行通常由主机300执行的一些计算来辅助主机300的计算。

存储设备100可以经由第一端口PT1与主机300通信。更具体地,存储设备100可以根据第一接口协议经由第一端口PT1与主机300通信。例如,第一接口协议可以包括外设组件快速互连(Peripheral Component Interconnect Express,PCIe)。然而,本发明构思的示例实施例不限于此,第一接口协议可以包括通用串行总线(Universal Serial Bus,USB)、PCI、AT附件(AT Attachment,ATA)、串行AT附件(Serial AT Attachment,SATA)、并行AT附件(Parallel AT Attachment,PATA)、小型计算机系统接口(Small Computer SystemInterface,SCSI)、串行连接SCSI(Serial Attached SCSI,SAS)、增强型小型磁盘接口(Enhanced Small Disk Interface,ESDI)、集成驱动电子设备(Integrated DriveElectronics,IDE)等。

在示例实施例中,第一端口PT1可以连接到PCIe总线,主机300可以包括连接到PCIe总线的根复合体RC。根复合体RC可以管理主机300和存储设备100之间的事务。例如,根复合体RC可以路由与事务相关的消息。例如,根复合体代表中央处理单元(centralprocessing unit,CPU)生成事务请求。根复合体RC可以包括根端口、根复合寄存器块或集成根复合体的端点的逻辑聚合。

在示例实施例中,根复合体RC可以直接连接到存储设备100。在示例实施例中,根复合体RC可以经由至少一个接口开关连接到存储设备100。在示例实施例中,根复合体RC可以被实现为与包括在主机300中的CPU分离的设备。在示例实施例中,根复合体RC可以被实现为与包括在主机300中的CPU集成。

存储设备100可以经由第二端口PT2与可重构逻辑芯片200通信。更具体地,存储设备100可以根据第二接口协议经由第二端口PT2与可重构逻辑芯片200通信。以这种方式,可重构逻辑芯片200可以不包括直接连接到主机300的端口,主机300可以经由存储设备100与可重构逻辑芯片200通信。

在示例实施例中,存储设备100和可重构逻辑芯片200可以执行安全通信。存储设备100可以经由第二端口PT2将加密的数据发送到可重构逻辑芯片200,并且可以经由第二端口PT2从可重构逻辑芯片200接收加密的数据。更具体地,存储设备100可以包括加密/解密模块111,加密/解密模块111可以通过对数据进行加密来生成加密的数据。此外,可重构逻辑芯片200可以包括加密/解密模块210,加密/解密模块210可以对从存储设备100接收的加密的数据进行解密,并且可以对由可重构逻辑芯片200处理的数据进行加密。

在示例实施例中,存储设备100可以是以块为单位管理数据的块存储设备。在示例实施例中,存储设备100可以是以对象为单位管理数据的对象存储设备。例如,存储设备100可以是键-值存储设备。键值存储设备指的是被配置为通过使用键-值对快速且简单地处理数据的设备。在这方面,键-值对是一对键和值,键具有唯一性,值是与键相对应的数据,键-值对还可以被称为元组或键-值元组。在键-值对中,键可以表示为随机字符串,诸如文件名、统一资源标识符(Uniform Resource Identifier,URI)或散列,并且值可以是图像或随机类型的数据,诸如用户期望的文件或文档。

存储系统SS可以实现为个人计算机(personal computer,PC)、数据服务器、网络组合存储、物联网(Internet of Things,IoT)设备或便携式电子设备。便携式电子设备可以包括但不限于膝上型计算机、移动电话、智能手机、平板电脑、个人数字助理(personaldigital assistant,PDA)、企业数字助理(enterprise digital assistant,EDA)、数字静态照相机、数字摄像机、音频设备、便携式多媒体播放器(portable multimedia player,PMP)、个人导航设备(personal navigation device,PND)、MP3播放器、手持式游戏机、电子书(e-book)、可穿戴设备等。

在一些示例实施例中,存储设备100可以是嵌入在电子设备中的内部存储器。例如,存储设备100可以是固态驱动器(solid-stage drive,SSD)、嵌入式通用闪存(Universal Flash Storage,UFS)存储器设备或嵌入式多媒体卡(embedded Multi-MediaCard,eMMC)。在一些示例实施例中,存储设备100可以是可从电子设备拆卸的外部存储器。例如,存储设备100可以包括但不限于UFS存储卡、紧凑型闪存(Compact Flash,CF)存储设备、安全数字(Secure Digital,SD)存储卡、微型SD存储卡、迷你SD存储卡、极端数字(extreme digital,xD)存储卡或存储棒。

图2是根据示例实施例的存储设备组10的框图。

参照图2,存储设备100可以包括控制器110、缓冲存储器120和非易失性存储器130,控制器110可以包括加密/解密模块111。在示例实施例中,控制器110、缓冲存储器120和非易失性存储器130可以被实现为相应的芯片。在示例实施例中,控制器110和缓冲存储器120可以执行安全通信。在示例实施例中,控制器110和非易失性存储器130可以执行安全通信。在示例实施例中,控制器110和可重构逻辑芯片200可以执行安全通信。

可重构逻辑芯片200可以包括加密/解密模块210和加速器220。加密/解密模块210可以从存储设备100接收加密的输入数据,并且可以通过对加密的输入数据进行解密来生成解密的数据。此外,加密/解密模块210可以从加速器220接收已处理数据,并且可以通过对已处理数据进行加密来生成加密的输出数据。在一些示例实施例中,可重构逻辑芯片200还可以包括根复合体,并且从存储设备100接收的数据可以经由根复合体发送到加密/解密模块210。

加速器220可以根据期望的(或者可选的、预定的)配置来执行数据处理操作。可以在操作期间重新配置可重构逻辑芯片200,因此,在加速器220作为第一加速器操作时,加速器220可以改变为第二加速器。例如,加速器220可以执行多媒体代码转换、擦除编码等。例如,加速器220可以执行机器学习算法,诸如卷积神经网络(convolutional neuralnetwork,CNN)、递归神经网络(recurrent neural network,RNN)等。

进一步地,例如,加速器220可以执行在线处理、预处理、预过滤、密码技术、压缩、协议桥接等。例如,加速器220可以执行排序计算、搜索计算、逻辑计算或四种基本算术计算中的一种或多种。逻辑计算可指由各种逻辑门(包括AND门、OR门、XOR门、NOR门、NAND门等)执行的计算,或者指组合了计算中的至少两种的计算操作。由加速器220执行的计算操作不限于上述示例,并且可以是与主机300执行的一些计算相对应的随机计算。

主机300可以将包括数据处理请求的主机命令发送到存储设备100。响应于主机命令,存储设备100可以将命令数据处理的命令发送到可重构逻辑芯片200。此外,存储设备100可以将处理-目标数据发送到可重构逻辑芯片200。例如,在示例实施例中,加密/解密模块111可以通过对处理-目标数据进行加密来生成加密的输入数据,并且控制器110可以将加密的输入数据发送到可重构的逻辑芯片200。

可重构逻辑芯片200可以接收命令和数据,可以通过对所接收的数据执行数据处理来生成已处理数据,并且可以将已处理数据发送到存储设备100。例如,在示例实施例中,加密/解密模块210可以通过对加密的输入数据进行解密来生成解密的数据,并且可以将解密的数据提供给加速器220。加速器220可以通过对解密的数据执行数据处理来生成已处理数据,并且可以将已处理数据提供给加密/解密模块210。加密/解密模块210可以通过对已处理数据进行加密来生成加密的输出数据。

此外,主机300可以将包括写入请求或读取请求的主机命令发送到存储设备100,存储设备100可以响应于读取请求从非易失性存储器130读取数据,并且可以响应于写入请求向非易失性存储器130写入数据。响应于从主机300接收的写入请求,控制器110可以控制非易失性存储器130以向非易失性存储器130写入数据,或者,响应于从主机300接收的读取请求,控制器110可以控制非易失性存储器130以从非易失性存储器130读取数据。

缓冲存储器120可以缓冲将由可重构逻辑芯片200处理的输入数据ID。在示例实施例中,输入数据ID可以是加密的数据。然而,本发明构思的示例实施例不限于此,在一些示例实施例中,输入数据ID可以是未加密的普通数据。此外,缓冲存储器120可以缓冲已由可重构逻辑芯片200处理的数据,例如,第一输出数据OD1和第二输出数据OD2。在示例实施例中,第一输出数据OD1和第二输出数据OD2可以是加密的数据。然而,本发明构思的示例实施例不限于此,在一些示例实施例中,第一输出数据OD1和第二输出数据OD2可以是普通数据。例如,缓冲存储器120可以是易失性存储器,诸如动态随机存取存储器(dynamic random-access memory,DRAM)。

在示例实施例中,缓冲存储器120可以是控制存储缓冲器(control memorybuffer,CMB)。主机300和可重构逻辑芯片200可以访问缓冲存储器120。因此,即使主机300和可重构逻辑芯片200没有彼此直接连接,主机300和可重构逻辑芯片200也可以经由缓冲存储器120交换数据。

例如,主机300可以将要由可重构逻辑芯片200处理的数据加载到缓冲存储器120中,然后可重构逻辑芯片200可以处理加载到缓冲存储器120中的数据。例如,可重构逻辑芯片200可以将已处理数据加载到缓冲存储器120中,然后主机300可以读取加载到缓冲存储器120中的已处理数据。以这种方式,主机300可以访问缓冲存储器120,使得在可重构逻辑芯片200完成数据处理之后,存储设备100可以不向主机300提供已处理数据,而是可以向主机300发送指示数据处理完成的响应消息。

非易失性存储器130可以包括存储器单元阵列,该存储器单元阵列包括多个存储器单元。在示例实施例中,非易失性存储器130可以包括闪存设备,例如,NAND闪存设备。然而,本发明构思的示例实施例不限于此,非易失性存储器130可以包括电阻式存储设备,诸如电阻式RAM(resistive RAM,ReRAM)、相变RAM(phase change RAM,PRAM)、磁性RAM(magnetic RAM,MRAM)等。

图3是根据示例实施例的操作存储设备100的方法的流程图。

参照图3,根据本示例实施例的操作存储设备100的方法可以包括由图2的存储设备100按时间顺序执行的操作。在下文中,将参考图2和图3提供描述。

在操作S110中,存储设备100从主机300接收包括数据处理请求的主机命令。在示例实施例中,存储设备100可以将数据和主机命令一起接收。在示例实施例中,存储设备100可以先接收主机命令,然后从主机300接收数据。在示例实施例中,存储设备100可以从缓冲存储器120或非易失性存储器130读取数据。

在操作S130中,存储设备100将加密的数据和命令数据处理的命令发送到可重构逻辑芯片200。在示例实施例中,存储设备100可以先向可重构逻辑芯片200发送命令,然后响应于来自可重构逻辑芯片200的读取请求,向可重构逻辑芯片200发送加密的数据。在示例实施例中,存储设备100可以将命令和加密的数据一起发送到可重构逻辑芯片200。

在示例实施例中,在操作S110和操作S130之间,存储设备100可以执行数据加密操作。例如,加密/解密模块111可以对要由可重构逻辑芯片200处理的数据进行加密。在示例实施例中,存储设备100可以从缓冲存储器120或非易失性存储器130读取加密的数据。在示例实施例中,存储设备100可以从主机300接收加密的数据。

在操作S150中,存储设备100从可重构逻辑芯片200接收加密的已处理数据。在示例实施例中,存储设备100可以将加密的已处理数据存储在缓冲存储器120或非易失性存储器130中。在示例实施例中,存储设备100可以将加密的已处理数据发送到主机300。在示例实施例中,存储设备100可以对加密的已处理数据进行解密。在示例实施例中,存储设备100可以将解密的已处理数据存储在缓冲存储器120或非易失性存储器130中。在示例实施例中,存储设备100可以将解密的已处理数据发送到主机300。

图4是示出图2的主机300、存储设备100和可重构逻辑芯片200之间的操作的示例的流程图。

参照图4,在操作S200中,主机300生成包括数据处理请求的主机命令。例如,响应于命令执行图像识别应用的用户输入,主机300可以生成命令由可重构逻辑芯片200进行图像识别所需的CNN的主机命令。在操作S210中,主机300可以将主机命令发送到存储设备100。

关于存储设备100,在操作S220中,存储设备100通过对要由可重构逻辑芯片200处理的数据进行加密来生成加密的输入数据。例如,存储设备100可以通过对作为图像识别的目标的图像文件进行加密来生成加密的输入数据。例如,存储设备100可以对从主机300接收的数据或者从缓冲存储器120或非易失性存储器130读取的数据进行加密。在示例实施例中,存储设备100可以接收加密的数据,在这种情况下,可以跳过操作S220。在操作S230中,存储设备100将命令数据处理的命令发送到可重构逻辑芯片200。在操作S235中,存储设备100将加密的输入数据发送到可重构逻辑芯片200。

关于可重构逻辑芯片200,在操作S240中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据。在操作S250中,可重构逻辑芯片200通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成已处理数据。在操作S260中,可重构逻辑芯片200通过对已处理数据进行加密来生成加密的输出数据。在操作S270中,可重构逻辑芯片200将加密的输出数据发送到存储设备100。

在操作S280中,存储设备100就加密的输出数据执行写入操作。例如,存储设备100可以将加密的输出数据写入缓冲存储器120或非易失性存储器130。在示例实施例中,存储设备100可以对加密的输出数据进行解密,并且可以就解密的输出数据执行写入操作。在操作S290中,存储设备100向主机300发送指示数据处理完成的响应消息。

图5是示出图2的主机300、存储设备100和可重构逻辑芯片200之间的操作的另一示例的流程图。

参照图5,本示例对应于图4的示例的改进,现在就本示例的操作与图4的示例的操作之间的差异进行描述。

在操作S300中,主机300生成包括多数据组处理请求的主机命令,即命令处理多数据组的主机命令。在这方面,多数据组是指与主机命令有关的多个数据。此外,通过响应于主机命令执行多个数据处理操作,包括多数据组处理请求的主机命令可以命令可重构逻辑芯片200输出多个数据,即多个数据组。例如,包括多组数据组处理请求的主机命令可以是转码命令。在操作S310中,主机300将主机命令发送到存储设备100。

在操作S320中,存储设备100通过对要由可重构逻辑芯片200处理的数据进行加密来生成加密的输入数据。例如,存储设备100可以通过对作为转码目标的多媒体文件进行加密来生成加密的输入数据。在操作S330中,存储设备100将命令数据处理的命令发送到可重构逻辑芯片200。在操作S335中,存储设备100将加密的输入数据发送到可重构逻辑芯片200。例如,加密的输入数据可以是具有可缩放格式的多媒体文件的加密的数据。

在操作S340中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据。例如,可重构逻辑芯片200可以通过对加密的输入数据进行解密来生成具有可缩放格式的多媒体文件。

在操作S350中,可重构逻辑芯片200通过根据预定的配置处理解密的数据来生成第一已处理数据,并通过对第一已处理数据进行加密来生成加密的第一输出数据。例如,可重构逻辑芯片200可以通过对具有可缩放格式的多媒体文件执行转码来生成具有第一格式的第一多媒体文件。然后,可重构逻辑芯片200可以通过对第一多媒体文件进行加密来生成加密的第一多媒体文件。在操作S355中,可重构逻辑芯片200将加密的第一输出数据发送到存储设备100。例如,可重构逻辑芯片200可以将加密的第一多媒体文件发送到存储设备100。

在操作S360中,存储设备100对加密的第一输出数据执行写入操作。例如,存储设备100可以将加密的第一多媒体文件写入缓冲存储器120或非易失性存储器130。

在操作S370中,可重构逻辑芯片200通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成第二已处理数据,并通过对第二已处理数据进行加密来生成加密的第二输出数据。例如,可重构逻辑芯片200可以通过对具有可缩放格式的多媒体文件执行转码来生成具有第二格式的第二多媒体文件。然后,可重构逻辑芯片200可以通过对第二多媒体文件进行加密来生成加密的第二多媒体文件。在示例实施例中,可以在执行操作S355和S360的同时执行操作S370。然而,本发明构思的示例实施例不限于此,可以在执行操作S355之前执行操作S370。在操作S370中,可重构逻辑芯片200将加密的第二输出数据发送到存储设备100。例如,可重构逻辑芯片200可以将加密的第二多媒体文件发送到存储设备100。

在操作S380中,存储设备100对加密的第二输出数据执行写入操作。例如,存储设备100可以将加密的第二多媒体文件写入缓冲存储器120或非易失性存储器130。在操作S390中,存储设备100向主机300发送指示数据处理完成的响应消息。

图6示出了图2所示的存储设备组10的操作的示例。

参照图6,在第一操作中,主机300可以将包括数据处理请求的主机命令和数据发送到存储设备100。例如,在示例实施例中,加密/解密模块111可以对数据进行加密,并且可以将加密的数据加载到缓冲存储器120中。在第二操作中,可重构逻辑芯片200可以读取加载到缓冲存储器120中的加密的数据。在另一示例实施例中,存储设备100可以将从主机300接收的数据加载到缓冲存储器120中。之后,当从可重构逻辑芯片200接收到读取请求时,加密/解密模块111可以对加载到缓冲存储器120中的数据进行加密,并且可以将加密的数据发送到可重构逻辑芯片200。在第三操作中,加密/解密模块210可以对加密的数据进行解密,并且可以将解密的数据提供给加速器220。加速器220可以通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成已处理数据。在第四操作中,加密/解密模块210可以对已处理数据进行加密,并且可以将加密的已处理数据写入缓冲存储器120。然后,在第五操作中,主机300可以从缓冲存储器120读取加密的已处理数据。

图7是示出图6的控制器110、缓冲存储器120和可重构逻辑芯片200之间的操作的流程图。

参照图7,在操作S400中,控制器110从主机300接收包括数据处理请求的主机命令和数据。在操作S410中,包括在控制器110中的加密/解密模块111通过对所接收的数据进行加密来生成加密的输入数据。在操作S420中,控制器110将加密的输入数据发送到缓冲存储器120。

在操作S430中,缓冲存储器120加载加密的输入数据。在操作S435中,当加密的输入数据的加载完成时,缓冲存储器120向控制器110发送指示加载完成的响应消息。

在操作S440中,控制器110将命令数据处理的命令发送到可重构逻辑芯片200。在操作S445中,可重构逻辑芯片200将读取命令发送到缓冲存储器120。在操作S450中,缓冲存储器120执行读取操作,并且在操作S460中将加密的输入数据发送到可重构逻辑芯片200。

在操作S470中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据、通过处理解密的数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。在操作S475中,可重构逻辑芯片200将加密的输出数据发送到缓冲存储器120。

在操作S480中,缓冲存储器120加载加密的输出数据。在操作S485中,缓冲存储器120将指示写入操作完成的响应消息发送到可重构逻辑芯片200。在操作S490中,可重构逻辑芯片200将指示数据处理完成的响应消息发送到控制器110。

图8示出了图2所示的存储设备组10的操作的另一示例。

参照图8,在第一操作中,主机300可以将包括数据处理请求的主机命令发送到存储设备100,响应于此,控制器110可以读取存储在非易失性存储器130中的数据并且可以将所读取的数据加载到缓冲存储器120中。例如,在示例实施例中,加密/解密模块111可以对所读取的数据进行加密,并且可以将加密的数据提供给缓冲存储器120。在示例实施例中,控制器110可以从非易失性存储器130读取加密的数据,并且可以将所读取的加密的数据加载到缓冲存储器120中。

第二操作至第五操作可以类似于参照图6所讨论的第二至第五操作。例如,在第二操作中,可重构逻辑芯片200可以读取加载到缓冲存储器120中的加密的数据。在第三操作中,加密/解密模块210可以对加密的数据进行解密,并且可以将解密的数据提供给加速器220,加速器220可以通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成已处理数据。在第四操作中,加密/解密模块210可以对已处理数据进行加密,并且可以将加密的已处理数据写入缓冲存储器120。然后,在第五操作中,主机300可以从缓冲存储器120读取加密的已处理数据。

图9是示出图8的非易失性存储器130、控制器110、缓冲存储器120和可重构逻辑芯片200之间的操作的流程图。

参照图9,在操作S500中,控制器110从主机300接收包括数据处理请求的主机命令。在操作S505中,控制器110将读取命令发送到非易失性存储器130。在示例实施例中,控制器110可以参考映射表并核查存储处理-目标数据的物理地址,并且可以将包括物理地址的读取命令发送到非易失性存储器130。在操作S510中,非易失性存储器130执行读取操作,并且在操作S515中,将数据发送到控制器110。

操作S520至S590可以类似于上面参照图7所讨论的操作。例如,在操作S520中,包括在控制器110中的加密/解密模块111通过对所接收的数据来进行加密来生成加密的输入数据。在操作S525中,控制器110将加密的输入数据发送到缓冲存储器120。在操作S530中,缓冲存储器120加载加密的输入数据。在操作S535中,当加密的输入数据的加载完成时,缓冲存储器120向控制器110发送指示加载完成的响应消息。

在操作S540中,控制器110将命令数据处理的命令发送到可重构逻辑芯片200。在操作S545中,可重构逻辑芯片200将读取命令发送到缓冲存储器120。在操作S550中,缓冲存储器120执行读取操作(S550)并且在操作S560中将加密的输入数据发送到可重构逻辑芯片200。在操作S570中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据、通过处理解密的数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。在操作S575中,可重构逻辑芯片200将加密的输出数据发送到缓冲存储器120。在操作S580中,缓冲存储器120加载加密的输出数据。在操作S585中,缓冲存储器120向可重构逻辑芯片200发送指示写入操作完成的响应消息。在操作S590中,可重构逻辑芯片200向控制器110发送指示数据处理完成的响应消息。

图10是图2的控制器110的框图。

参照图10,控制器110可以包括加密/解密模块111、处理器112、存储器113、主机接口114、FPGA接口115、易失性存储器接口116和非易失性存储器接口117,这些组件可以经由总线118彼此通信。例如,可重构逻辑芯片200可以包括FPGA。在示例实施例中,加密/解密模块111可以通过执行加载到存储器113中的软件或固件来实现。然而,本发明构思的示例实施例不限于此,加密/解密模块111可以实现为硬件。

处理器112可以包括CPU或微处理器,并且可以控制控制器110的总体操作。在示例实施例中,处理器112可以实现为多核处理器,例如,双核处理器或四核处理器。存储器113可以通过处理器112的控制来操作,并且可以用作操作存储器、缓冲存储器、高速缓冲存储器等。例如,存储器113可以实现为易失性存储器(例如,DRAM或SRAM),或非易失性存储器(例如,PRAM或闪存)。

主机接口114可以提供主机300和控制器110之间的接口,例如,该接口可以包括图1的第一端口PT1。FPGA接口115可以提供控制器110和FPGA(即,可重构逻辑芯片200)之间的接口,例如,该接口可以包括图1的第二端口PT2。在示例实施例中,FPGA接口115可以从加密/解密模块111接收加密的数据,并且可以将加密的数据提供给可重构逻辑芯片200。此外,FPGA接口115可以从可重构逻辑芯片200接收加密的数据,并且可以将加密的数据提供给加密/解密模块111。

易失性存储器接口116可以提供控制器110和易失性存储器(例如,图2的缓冲存储器120)之间的接口。在示例实施例中,易失性存储器接口116可以从加密/解密模块111接收加密的数据,并且可以将加密的数据提供给缓冲存储器120。此外,易失性存储器接口116可以从缓冲存储器120接收加密的数据,并且可以将加密的数据提供给加密/解密模块111。

非易失性存储器接口117可以提供控制器110和非易失性存储器130之间的接口。在示例实施例中,非易失性存储器接口117可以从加密/解密模块111接收加密的数据,并且可以将加密的数据提供给非易失性存储器130。此外,非易失性存储器接口117可以从非易失性存储器130接收加密的数据,并且可以将加密的数据提供给加密/解密模块111。在示例实施例中,非易失性存储器接口117的数量可以对应于包括在存储设备100中的非易失性存储器芯片的数量或者控制器110和非易失性存储器130之间的信道的数量。

图11是示出图10的控制器110的改进示例110'的框图。

参照图11,控制器110'可以包括处理器112、存储器113、主机接口114、FPGA接口115'、易失性存储器接口116'和非易失性存储器接口117',这些组件可以经由总线118彼此连接。下面,将主要描述根据本示例实施例的控制器110'与图10的控制器110之间的差异。

FPGA接口115'可以包括加密/解密模块115a。加密/解密模块115a可以对从存储器113、主机300、缓冲存储器120或非易失性存储器130接收的数据进行加密,并且可以将加密的数据提供给可重构逻辑芯片200。此外,加密/解密模块115a可以从可重构逻辑芯片200接收加密的数据,可以对加密的数据进行解密,并且然后可以将解密的数据提供给存储器113、主机300、缓冲存储器120或非易失性存储器130。

易失性存储器接口116'可以包括加密/解密模块116a,并且可以选择性地激活加密/解密模块116a。在示例实施例中,加密/解密模块116a可以对从存储器113、主机300或非易失性存储器130接收的数据进行加密,并且可以将加密的数据提供给缓冲存储器120。此外,加密/解密模块116a可以从缓冲存储器120接收加密的数据,可以对加密的数据进行解密,并且然后可以将解密的数据提供给存储器113、主机300或非易失性存储器130。在示例实施例中,易失性存储器接口116'可以在不经过加密/解密模块116a的情况下,将从可重构逻辑芯片200接收的加密的数据存储在缓冲存储器120中,并且可以在不经过加密/解密模块116a的情况下,将从缓冲存储器120接收的加密的数据提供给可重构逻辑芯片200。

非易失性存储器接口117'可以包括加密/解密模块117a,并且可以选择性地激活加密/解密模块117a。在示例实施例中,加密/解密模块117a可以对从存储器113、主机300或缓冲存储器120接收的数据进行加密,并且可以将加密的数据提供给非易失性存储器130。此外,加密/解密模块117a可以从非易失性存储器130接收加密的数据,可以对加密的数据进行解密,并且然后可以将解密的数据提供给存储器113、主机300或缓冲存储器120。在示例实施例中,非易失性存储器接口117'可以在不经过加密/解密模块117a的情况下,将从可重构逻辑芯片200接收的加密的数据存储在非易失性存储器130中,并且可以在不经过加密/解密模块117a的情况下,将从非易失性存储器130接收的加密的数据提供给可重构逻辑芯片200。

图12是根据示例实施例的存储设备组10a的框图。

参照图12,存储设备100a可以包括控制器110a和非易失性存储器130,控制器110a可以包括加密/解密模块111和缓冲存储器120a。根据本示例实施例,缓冲存储器120a可以装配在控制器110a中。在示例实施例中,加密/解密模块111可以设置在缓冲存储器120a的前侧。因此,缓冲存储器120a可以缓冲加密的数据。

加密/解密模块111可以对从主机300或非易失性存储器130接收的输入数据进行加密,并且可以将加密的输入数据提供给缓冲存储器120a。因此,缓冲存储器120a可以缓冲加密的输入数据。此外,加密/解密模块111可以对从可重构逻辑芯片200接收的加密的输出数据进行解密,并且可以将解密的输出数据提供给缓冲存储器120a。因此,缓冲存储器120a可以缓冲解密的输出数据。然而,本发明构思的示例实施例不限于此,缓冲存储器120a可以缓冲从可重构逻辑芯片200接收的加密的输出数据。

图13示出了图12的存储设备组10a的操作的示例。

参照图13,在第一操作中,主机300可以将包括数据处理请求的主机命令和数据发送到存储设备100a,加密/解密模块111可以对数据进行加密,并且可以将加密的数据加载到缓冲存储器120a中。在第二操作中,可重构逻辑芯片200可以读取加载到缓冲存储器120a中的加密的数据,加密/解密模块210可以对加密的数据进行加密,并且可以将解密的数据提供给加速器220。在第三操作中,加速器220可以通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成已处理数据。在第四操作中,加密/解密模块210可以加密已处理数据,并且可以将加密的已处理数据写入缓冲存储器120a。之后,在第五操作中,主机300可以从缓冲存储器120a读取加密的已处理数据。

图14是示出图13的控制器110a和可重构逻辑芯片200之间的操作的示例的流程图。

参照图14,在操作S600中,控制器110a从主机300接收包括数据处理请求的主机命令和数据。在操作S610中,包括在控制器110a中的加密/解密模块111通过对所接收的数据进行加密来生成加密的输入数据。在操作S620中,控制器110a将加密的输入数据加载到缓冲存储器120a中。在操作S630中,控制器110a将命令数据处理的命令发送到可重构逻辑芯片200。

在操作S640中,可重构逻辑芯片200将读取命令发送到控制器110a。在操作S650中,控制器110a将加密的输入数据发送到可重构逻辑芯片200。

在操作S660中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据、通过处理解密的数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。在操作S670中,可重构逻辑芯片200将加密的输出数据发送到控制器110a。

在操作S680中,控制器110a将加密的输出数据写入到缓冲存储器120a或非易失性存储器130。例如,在示例实施例中,加密/解密模块111可以通过对加密的输出数据进行解密来生成解密的输出数据,控制器110a可以将解密的输出数据写入到缓冲存储器120a或非易失性存储器130。之后,控制器110a可以将指示数据处理完成的响应消息发送到主机300。

图15示出了图12的存储设备组10a的操作的另一示例。

参照图15,在第一操作中,主机300可以将包括数据处理请求的主机命令发送到存储设备100a,响应于此,控制器110a可以读取存储在非易失性存储器130中的数据,并且可以将所读取的数据加载到缓冲存储器120a中。例如,在示例实施例中,加密/解密模块111可以对所读取的数据进行加密,并且可以将加密的数据提供给缓冲存储器120a。在示例实施例中,控制器110a可以从非易失性存储器130读取加密的数据,并且可以将所读取的加密的数据加载到缓冲存储器120a中。

第二操作至第五操作可以类似于参照图13所讨论的第二至第五操作。例如,在第二操作中,可重构逻辑芯片200可以读取加载到缓冲存储器120a中的加密的数据。在第三操作中,加密/解密模块210可以对加密的数据进行解密,并且可以将解密的数据提供给加速器220。加速器220可以通过根据预定的配置处理解密的数据来生成已处理数据。在第四操作中,加密/解密模块210可以对已处理数据进行加密,并且可以将加密的已处理数据写入到缓冲存储器120a。之后,在第五操作中,主机300可以从缓冲存储器120a读取加密的已处理数据。

图16是示出图15的非易失性存储器130、控制器110a和可重构逻辑芯片200之间的操作的示例的流程图。

参照图16,在操作S700中,控制器110a从主机300接收包括数据处理请求的主机命令。在操作S710中,控制器110a将读取命令发送到非易失性存储器130。在示例实施例中,控制器110a可以参考映射表并核查存储处理-目标数据的物理地址,并且可以将包括物理地址的读取命令发送到非易失性存储器130。在操作S720中,非易失性存储器130执行读取操作,并且在操作S725中,将数据发送到控制器110a。

操作S730至S790可以类似于上面参照图14所讨论的操作。例如,在操作S730中,包括在控制器110a中的加密/解密模块111通过对所接收的数据进行加密来生成加密的输入数据。在操作S740中,控制器110a将加密的输入数据加载到缓冲存储器120a中。

在操作S750中,控制器110a将命令数据处理的命令发送到可重构逻辑芯片200。在操作S760中,可重构逻辑芯片200将读取命令发送到控制器110a。在操作S765中,控制器110a将加密的输入数据发送到可重构逻辑芯片200。在操作S770中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据、通过处理解密的数据生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。在操作S780中,可重构逻辑芯片200将加密的输出数据发送到控制器110a。

在操作S790中,控制器110a将加密的输出数据写入到缓冲存储器120a或非易失性存储器130。在示例实施例中,加密/解密模块111可以通过对加密的输出数据进行解密来生成解密的输出数据,控制器110a可以将解密的输出数据写入缓冲存储器120a或非易失性存储器130。之后,控制器110a可以向主机300发送指示数据处理完成的响应消息。

图17示出了根据示例实施例的存储设备组10b的操作的示例。

参照图17,存储设备100可以包括控制器110b和非易失性存储器130,控制器110b可以包括加密/解密模块111和缓冲存储器120b。根据本示例实施例,缓冲存储器120b可以装配在控制器110b中。在示例实施例中,加密/解密模块111可以设置在缓冲存储器120b的后侧。因此,缓冲存储器120b可以缓冲未加密的普通数据。

在第一操作中,主机300可以将包括数据处理请求的主机命令和数据发送到存储设备100b,并且可以将从主机300接收的数据加载到缓冲存储器120b中。在第二操作中,加密/解密模块111可以对加载到缓冲存储器120b中的数据进行加密,并且可以将加密的数据提供给可重构逻辑芯片200。

在第三操作中,加密/解密模块210可以对加密的数据进行解密,并且将解密的数据提供给加速器220,加速器220可以通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成已处理数据。然后,在第四操作中,加密/解密模块210可以对已处理数据进行加密,并将加密的已处理数据提供给控制器110b。加密/解密模块111可以对加密的已处理数据进行解密,并且可以将解密的已处理数据加载到缓冲存储器120b中。之后,在第五操作中,主机300可以从缓冲存储器120b读取解密的已处理数据。

图18是示出图17的控制器110b和可重构逻辑芯片200之间的操作的示例的流程图。

参照图18,在操作S800中,控制器110b从主机300接收包括数据处理请求的主机命令和数据。在操作S810中,控制器110b将所接收的数据加载到缓冲存储器120b中。在操作S820中,控制器110b将命令数据处理的命令发送到可重构逻辑芯片200。在操作S830中,可重构逻辑芯片200将读取命令发送到控制器110b。

在操作S840中,包括在控制器110b中的加密/解密模块111通过对加载到缓冲存储器120b中的数据进行加密来生成加密的输入数据。

一旦生成了加密的数据,在操作S850中,控制器110b将加密的输入数据发送到可重构逻辑芯片200。在操作S860中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据、通过处理解密的数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。在操作S870中,可重构逻辑芯片200将加密的输出数据发送到控制器110b。

在操作S880中,控制器110b将加密的输出数据写入缓冲存储器120b或非易失性存储器130。例如,在示例实施例中,当如图17所示加密/解密模块111在缓冲存储器120b的后侧时,加密/解密模块111可以通过对加密的输出数据进行解密来生成解密的输出数据,控制器110b可以将解密的输出数据写入缓冲存储器120b或非易失性存储器130。之后,控制器110b可以向主机300发送指示数据处理完成的响应消息。

图19示出了根据示例实施例的存储设备组10b的操作的另一示例。

参照图19,在第一操作中,主机300可以向存储设备100b发送包括数据处理请求的主机命令,响应于此,控制器110b可以读取存储在非易失性存储器130中的数据,并且可以将所读取的数据加载到缓冲存储器120b中。在第二操作中,加密/解密模块111可以对加载到缓冲存储器120b中的数据进行加密,并且可以将加密的数据提供给可重构逻辑芯片200。

在第三操作中,加密/解密模块210可以对加密的数据进行解密,并且将解密的数据提供给加速器220,加速器220可以通过根据期望的(或者,可选的、预定的)配置处理解密的数据来生成已处理数据。在第四操作中,加密/解密模块210可以对已处理数据进行加密,并且可以将加密的已处理数据提供给控制器110b。在第五操作中,加密/解密模块111可以对加密的已处理数据进行解密,并且可以将解密的已处理数据加载到缓冲存储器120b中。之后,主机300可以从缓冲存储器120b读取解密的已处理数据。

图20是示出图19的非易失性存储器130、控制器110b和可重构逻辑芯片200之间的操作的示例的流程图。

参照图20,在操作S900中,控制器110b从主机300接收包括数据处理请求的主机命令。在操作S910中,控制器110b将读取命令发送到非易失性存储器130。在示例实施例中,控制器110b可以参考映射表并核查存储处理-目标数据的物理地址,并且可以将包括物理地址的读取命令发送到非易失性存储器130。在操作S920中,非易失性存储器130执行读取操作,并且在操作S925中,将数据发送到控制器110b。

在操作S930中,控制器110b将数据加载到缓冲存储器120b中。在操作S940中,加密/解密模块111通过对加载到缓冲存储器120b中的数据进行加密来生成加密的输入数据。

在操作S950中,控制器110b将命令数据处理的命令发送到可重构逻辑芯片200。在操作S960中,可重构逻辑芯片200将读取命令发送到控制器110b。在操作S965中,控制器110b将加密的输入数据发送到可重构逻辑芯片200。在操作S970中,可重构逻辑芯片200通过对加密的输入数据进行解密来生成解密的数据、通过处理解密的数据来生成已处理数据、并且通过对已处理数据进行加密来生成加密的输出数据。在操作S980中,可重构逻辑芯片200将加密的输出数据发送到控制器110b。

在操作S990中,控制器110b将加密的输出数据写入缓冲存储器120b或非易失性存储器130。例如,在示例实施例中,当如图17所示加密/解密模块111在缓冲存储器120b的后侧时,加密/解密模块111可以通过对加密的输出数据进行解密来生成解密的输出数据,控制器110b可以将解密的输出数据写入缓冲存储器120b或非易失性存储器130。之后,控制器110b可以向主机300发送指示数据处理完成的响应消息。

图21示出了根据示例实施例的存储系统SS'。

参照图21,存储系统SS'可以包括存储设备组10c、主机300和硬件加速器400,这些组件可以经由总线500彼此通信。例如,存储系统SS'可以是服务器或数据中心。存储设备组10c可以包括存储设备100和可重构加速器RA。以这种方式,存储系统SS'可以包括硬件加速器400和可重构加速器RA两者。可重构加速器RA可以在存储设备组10c中实现。

硬件加速器400可以通过在主机300执行的计算中执行一些期望的(或者,可选的、预定的)计算来辅助主机300的计算。例如,硬件加速器400可以是图形处理单元(graphicsprocessing unit,GPU)。可重构加速器RA可以根据主机300执行的计算的类型进行实时重新配置,然后可以执行与当前主机300正在执行的应用相对应的计算。以这种方式,在存储系统SS'操作的同时不改变由硬件加速器400执行的计算,而在存储系统SS'操作的同时可以改变由可重构加速器RA执行的计算。

根据本示例实施例,存储设备100可以通过包括诸如非易失性存储器芯片的存储来执行存储设备的功能,进一步地,存储设备100和可重构加速器RA可以配置存储设备组10c。因此,即使主机300和可重构加速器RA没有彼此直接连接,主机300和可重构加速器RA也可以经由存储设备100中包括的缓冲存储器(例如,控制存储缓冲器(CMB))交换数据。通过这样做,可以进一步提高存储设备100和可重构加速器RA之间的数据处理速度。

图22示出了根据示例实施例的网络系统1000。

参照图22,网络系统1000可以包括服务器系统1100,以及被配置为经由网络NET与服务器系统1100通信的多个终端1210至1230。服务器系统1100可以包括服务器1110和SSD1120。在这方面,SSD 1120可以对应于前述示例实施例的存储设备100、100a或100b。在一些示例实施例中,SSD 1120可以通过使用参照图1至21所述的示例实施例来实现。

图23示出了根据示例实施例的网络系统2000。

参照图23,网络系统2000可以包括客户端组2100和数据中心2200。客户端组2100可以包括客户端设备C,客户端设备C被配置为经由第一网络NET1(例如,因特网)与数据中心2200通信。数据中心2200可以指收集各种类型的数据并提供服务的设施,并且可以包括经由第二网络NET2(例如局域网(local area network,LAN)或内联网)彼此通信的应用服务器组2210、数据库服务器组2220和对象缓存服务器组2230。

应用服务器组2210可以包括应用服务器设备AS。应用服务器设备AS可以处理从客户端组2100接收的请求,并且可以响应于来自客户端组2100的请求,访问数据库服务器组2220或对象缓存服务器组2230。数据库服务器组2220可以包括数据库服务器设备DS,其被配置为存储由应用服务器设备AS处理的数据。对象高速缓存服务器组2230可以包括对象缓存服务器设备OCS,其被配置为临时存储数据库服务器设备DS中存储的数据或从数据库服务器设备DS读取的数据,因此可以用作应用服务器设备AS与数据库服务器设备DS之间的缓存。在示例实施例中,数据库服务器设备DS可以通过使用参照图1至21所述的实施例来实现。

根据一个或多个示例实施例,上述单元和/或设备可以使用硬件、硬件和软件的组合、或者存储可运行软件的非暂时性存储介质来实现以执行其功能。

例如,主机300和存储设备100的控制器110可以使用处理电路来实现,处理电路诸如但不限于一个或多个处理器、一个或多个中央处理单元(CPU)、一个或多个控制器、一个或多个算术逻辑单元(ALU)、一个或多个数字信号处理器(DSP)、一个或多个微计算机、一个或多个现场可编程门阵列(FPGA)、一个或多个系统级芯片(SoC)、一个或多个可编程逻辑单元(PLU)、一个或多个微处理器、一个或多个专用集成电路(ASIC)、或能够以定义的方式响应和执行指令的任何其他一个或多个设备。

此外,如上所述,可重构逻辑芯片200可以用现场可编程门阵列(FPGA)芯片、可编程逻辑器件(PLD)或复杂PLD(CPLD)来实现,使得可重构逻辑芯片200可以从卸载第一操作动态地重新配置到卸载第二操作,并且可以经由包括在存储设备100中的缓冲存储器120与主机300交换数据,以减少主机300的开销。

软件可以包括计算机程序、程序代码、指令或它们的一些组合,用于独立地或共同地指示或配置硬件设备以根据需要操作。计算机程序和/或程序代码可以包括能够由一个或多个硬件设备(诸如以上提到的硬件设备中的一个或多个)实施的程序或计算机可读指令、软件组件、软件模块、数据文件、数据结构等。程序代码的示例包括由编译器生成的机器代码和使用解释器执行的更高级程序代码两者。

例如,当硬件设备是计算机处理设备(例如,一个或多个处理器、CPU、控制器、ALU、DSP、微计算机、微处理器等)时,计算机处理设备可以被配置为通过根据程序代码执行算术、逻辑和输入/输出操作来运行程序代码。一旦程序代码被加载到计算机处理设备中,计算机处理设备可以被编程以执行程序代码,从而将计算机处理设备转换成专用计算机处理设备。在更具体的示例中,当程序代码被加载到处理器中时,处理器被编程以执行与其相对应的程序代码和操作,从而将处理器转换为专用处理器。在另一示例中,硬件设备可以是定制为专用处理电路(例如,ASIC)的集成电路。

诸如计算机处理设备的硬件设备可以运行操作系统(operating system,OS)和在OS上运行的一个或多个软件应用。计算机处理设备还可以响应于软件的执行来访问、存储、操纵、处理和创建数据。为简单起见,可以将一个或多个示例实施例示出为一个计算机处理设备;然而,本领域技术人员将理解的是,硬件设备可以包括多个处理元件和多种类型的处理元件。例如,硬件设备可以包括多个或一个处理器和控制器。此外,其他处理配置也是可能的,诸如并行处理器。

根据一个或多个示例实施例,存储介质还可以包括在单元和/或设备处的一个或多个存储设备。一个或多个存储设备可以是有形或非暂时性计算机可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、永久性大容量存储设备(诸如磁盘驱动器)、和/或能够存储和记录数据的任何其他类似的数据存储机构。一个或多个存储设备可以被配置为存储用于一个或多个操作系统和/或用于实施本文所述的示例实施例的计算机程序、程序代码、指令或其某种组合。计算机程序、程序代码、指令或其某种组合也可以使用驱动机构从分离的计算机可读存储介质加载到一个或多个存储设备和/或一个或多个计算机处理设备中。这种分离的计算机可读存储介质可以包括通用串行总线(Universal Serial Bus,USB)闪速驱动器、记忆棒、蓝光/DVD/CD-ROM驱动器、存储器卡和/或其他类似的计算机可读存储介质。计算机程序、程序代码、指令或其某种组合可以经由网络接口而不是经由计算机可读存储介质从远程数据存储设备加载到一个或多个存储设备和/或一个或多个计算机处理设备中。此外,计算机程序、程序代码、指令或其某种组合可以从远程计算系统加载到一个或多个存储设备和/或一个或多个处理器中,该远程计算系统被配置为通过网络传送和/或分发计算机程序、程序代码、指令或其某种组合。远程计算系统可以经由有线接口、空中接口和/或任何其他类似介质来传送和/或分发计算机程序、程序代码、指令或其某种组合。

一个或多个硬件设备、存储介质、计算机程序、程序代码、指令或其某种组合可以为示例实施例的目的而专门设计和构造,或者它们可以是为示例实施例的目的而变更和/或修改的已知设备。

虽然已经参照本发明的一些示例实施例详细示出和描述了本发明构思的示例实施例,但是本领域普通技术人员将理解的是,在不脱离由所附权利要求限定的本发明构思的示例性实施例的精神和范围的前提下,可以在形式和细节上进行各种改变。所示出的示例实施例应仅被认为是描述性的,而不是出于限制的目的。因此,本发明构思的示例实施例的范围不是由本发明构思的示例实施例的详细描述限定,而是由所附权利要求限定,并且此范围内的所有差异将被解释为包括在本发明构思的示例实施例中。

43页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种防止电源中断影响的将数据写入闪存模块的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类