CN113031855A - 存储装置组、存储系统以及存储装置的操作方法 - Google Patents

存储装置组、存储系统以及存储装置的操作方法 Download PDF

Info

Publication number
CN113031855A
CN113031855A CN202011383885.XA CN202011383885A CN113031855A CN 113031855 A CN113031855 A CN 113031855A CN 202011383885 A CN202011383885 A CN 202011383885A CN 113031855 A CN113031855 A CN 113031855A
Authority
CN
China
Prior art keywords
port
controller
storage device
data
input data
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.)
Pending
Application number
CN202011383885.XA
Other languages
English (en)
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113031855A publication Critical patent/CN113031855A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/125Frame memory handling using unified memory architecture [UMA]
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/126The frame memory having additional data ports, not inclusive of standard details of the output serial port of a VRAM
    • 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/10Programming or data input circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6563Implementations using multi-port memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Logic Circuits (AREA)

Abstract

提供了存储装置组、存储系统和存储装置的操作方法。存储装置组包括可重构逻辑芯片和存储装置。逻辑芯片包括:重定时器,被配置为通过调整从外部装置接收的输入信号来生成输出信号;以及操作电路,被配置为执行操作功能。存储装置包括:第一端口,连接到重定时器;第二端口,连接到操作电路;以及控制器,被配置为控制经由第一端口和第二端口的数据发送和接收。

Description

存储装置组、存储系统以及存储装置的操作方法
本申请要求于2019年12月9日提交到韩国知识产权局的第10-2019-0162880号韩国专利申请的优先权,所述韩国专利申请的公开通过引用全部包含于此。
技术领域
与示例实施例一致的方法和设备涉及存储装置,更具体地,涉及包括存储装置和可重构逻辑芯片的存储装置组、包括存储装置组的存储系统以及存储装置的操作方法。
背景技术
为了提高存储系统的处理速度,可将加速器加到存储系统,加速器通过执行由主机执行的操作中的一些操作来辅助主机的操作。加速器可以是执行设置的功能的专用硬件加速器或根据设计文件(诸如,现场可编程门阵列(FPGA)图像)可重新配置的加速器。近来,由于主机执行各种应用并且针对每个应用要求高速处理,所以对可重构加速器(诸如,根据各种应用可重构的FPGA)的需求正在增加。
发明内容
示例实施例提供一种能够通过使用重定时器执行与主机的通信来最小化输入和输出延迟的存储装置组、包括该存储装置组的存储系统、以及存储装置组的操作方法。
根据示例实施例的一个方面,提供了一种存储装置组,所述存储装置组包括:可重构逻辑芯片,包括:重定时器,被配置为通过调整从外部装置接收的输入信号来生成输出信号,和操作电路,被配置为执行操作功能;以及存储装置,包括:第一端口,连接到重定时器;第二端口,连接到操作电路;和控制器,被配置为控制经由第一端口和第二端口的数据发送和接收。
根据示例实施例的一个方面,提供了一种存储系统,所述存储系统包括:主机;重定时器,与主机可通信地连接;存储装置,包括控制器,存储装置被配置为:经由重定时器从主机接收请求,并且生成与接收的请求对应的输入数据;以及可重构逻辑芯片,被配置为:从存储装置接收输入数据,通过使用输入数据执行与接收的请求对应的操作来生成输出数据,并将输出数据提供到存储装置。
根据示例实施例的一个方面,提供了一种连接到可重构逻辑芯片的存储装置的操作方法,可重构逻辑芯片包括重定时器和操作电路,存储装置包括连接到重定时器的第一端口和连接到操作电路的第二端口,所述操作方法包括:经由第一端口接收主机的请求;生成与接收的请求对应的输入数据;经由第二端口将输入数据提供到操作电路;经由第二端口从操作电路获得与输入数据对应的输出数据;基于输出数据生成与接收的请求对应的响应数据;以及经由第一端口和重定时器向主机发送生成的响应数据。
附图说明
从以下结合附图进行的详细描述,将更清楚地理解以上和其他方面、特征和优点,在附图中:
图1是示意性地示出根据示例实施例的存储系统的框图;
图2是详细示出根据示例实施例的存储装置组的框图;
图3是用于描述根据示例实施例的存储装置组的操作方法的框图;
图4是根据示例实施例的可重构逻辑芯片和控制器的操作的示例的流程图;
图5是根据示例实施例的可重构逻辑芯片和控制器的操作的示例的流程图;
图6是示出根据示例实施例的控制器的配置的框图;
图7是示出根据示例实施例的控制器的配置的框图;
图8是用于描述根据示例实施例的存储装置组的操作方法的框图;
图9是用于描述根据示例实施例的存储装置组的操作方法的框图;
图10是根据示例实施例的易失性存储器、可重构逻辑芯片和控制器的操作的示例的流程图;
图11是详细示出根据示例实施例的存储装置组的框图;
图12是详细示出根据示例实施例的存储装置组的框图;
图13是详细示出根据示例实施例的存储装置组的框图;
图14是详细示出根据示例实施例的存储装置组的框图;
图15是根据示例实施例的存储装置的操作方法的流程图;以及
图16是根据示例实施例的网络系统的示图。
具体实施方式
图1是示意性地示出根据示例实施例的存储系统SS的框图。
参照图1,存储系统SS包括存储装置组10和主机300。存储装置组10可包括存储装置100和可重构逻辑芯片200,并且可被称为智能存储装置。存储装置100可包括第一端口PT1和第二端口PT2,因此,存储装置100可被称为双端口存储装置。可重构逻辑芯片200可包括重定时器210和操作电路220。
存储系统SS可被实现为例如个人计算机(PC)、数据服务器、网络组合存储(network-combined storage)、物联网(IoT)装置或便携式电子装置。便携式电子装置可以是膝上型计算机、移动电话、智能电话、平板PC、个人数字助理(PDA)、企业数字助理(EDA)、数码相机、数码摄像机、音频装置、便携式多媒体播放器(PMP)、个人导航装置(PND)、MP3播放器、手持式游戏机、电子书或可穿戴装置。
根据一些示例实施例,存储装置100可以是嵌入在电子装置中的内部存储器。例如,存储装置100可以是固态驱动器(SSD)、嵌入式通用闪存(UFS)存储器装置或嵌入式多媒体卡(eMMC)。根据一些示例实施例,存储装置100可以是可拆卸地附接到电子装置的外部存储器。例如,存储装置100可以是UFS存储卡、紧凑型闪存(CF)卡、安全数字(SD)卡、微型SD卡、迷你SD卡、极限数字(xD)卡或记忆棒。
根据示例实施例,存储装置100可被实现为第一芯片,可重构逻辑芯片200可被实现为第二芯片。第一芯片和第二芯片可彼此电连接并且安装在单个板上。根据示例实施例,存储装置100可被实现为第一芯片,可重构逻辑芯片200可被实现为第二芯片。第一芯片和第二芯片可构造层叠封装(POP)。然而,示例实施例不限于此,存储装置组10可被构造为彼此电连接的存储装置100和可重构逻辑芯片200。
根据示例实施例,可重构逻辑芯片200可包括现场可编程门阵列(FPGA)芯片。然而,示例实施例不限于此,可重构逻辑芯片200可包括可编程逻辑器件(PLD)或复杂PLD(CPLD)。可重构逻辑芯片200可被用作用于通过执行由主机300执行的操作中的一些操作来辅助主机300的操作的加速器。
可重构逻辑芯片200可包括重定时器(retimer)210,当信号从外部装置输入时,重定时器210通过调整输入信号来生成输出信号。重定时器210可通过使用本地时钟信号来去除输入信号的抖动,修复损坏并且发送恢复的输入信号。根据示例实施例,重定时器210可从主机300接收数据,调整接收的数据,并将调整的数据发送到存储装置100。此外,重定时器210可从存储装置100接收数据,调整接收的数据,并将调整的数据发送到主机300。重定时器210可包括根据外围组件互连快速(PCIe)协议的PCIe重定时器。然而,示例实施例不限于此,重定时器210可包括根据另一协议的重定时器。
重定时器210可仅经由物理层传输信号。因此,通过使用重定时器210,存储装置组10可提高与主机300的数据发送和接收速度。具体地,重定时器210可仅经由物理层而不用事务层和数据链路层来传输信号。另一方面,在可用作传输信号的接口的交换机(例如,PCIe交换机)而不是重定时器210的情况下,信号可经由事务层、数据链路层和物理层中的全部来传输。因此,存储装置组10可通过使用重定时器210而不是经由多个层传输信号的交换机来提高信号的输入和输出速度。
已经描述了存储装置组10包括重定时器210,但是示例实施例不限于此,存储装置组10可包括能够传输信号的接口代替重定时器210。例如,存储装置组10可包括包含重定时器210和重驱动器(redriver)的中继器(repeater)。
可重构逻辑芯片200可包括能够执行操作功能的操作电路220。根据示例实施例,操作电路220可从存储装置100接收输入数据,对输入数据执行操作,并且将作为结果生成的输出数据发送到存储装置100。例如,操作电路220可通过使用输入数据来执行各种操作(诸如,加密、解密、压缩、解压缩、模式匹配、排序和搜索)。此外,可由操作电路220执行的操作不限于以上操作。根据示例实施例,操作电路220可根据预定配置执行操作。可重构逻辑芯片200可在操作期间被重构(又称为,重新配置),因此,操作电路220可在作为第一操作电路进行操作时被改变为第二操作电路。
存储装置100可经由第一端口PT1与主机300通信。具体地,存储装置100可经由第一端口PT1连接到重定时器210。此外,存储装置100可经由第一端口PT1和重定时器210根据第一接口协议与主机300通信。例如,第一接口协议可以是PCIe。然而,示例实施例不限于此,第一接口协议可以是通用串行总线(USB)、PCI、高级技术(AT)附件(ATA)、串行AT附件(SATA)、并行AT附件(PATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、增强型小盘接口(ESDI)或集成驱动电子设备(IDE)。
存储装置100可经由第二端口PT2与可重构逻辑芯片200的操作电路220通信。具体地,存储装置100可经由第二端口PT2连接到操作电路220。此外,存储装置100可经由第二端口PT2根据第二接口协议与操作电路220通信。根据示例实施例,存储装置100的第一端口PT1和第二端口PT2可彼此不同。换句话说,存储装置100可经由第一端口PT1向主机300发送数据和从主机300接收数据,并且经由第二端口PT2向操作电路220发送数据和从操作电路220接收数据。此外,第二接口协议和第一接口协议可以是相同的协议。然而,示例实施例不限于此,第二接口协议和第一接口协议可彼此不同。
这样,存储装置100可通过经由第一端口PT1连接到可重构逻辑芯片200的重定时器210来向主机300发送数据和从主机300接收数据,并且通过经由第二端口PT2连接到可重构逻辑芯片200的操作电路220来向可重构逻辑芯片200发送数据和从可重构逻辑芯片200接收数据。
此外,存储装置组10可通过使用经由物理层执行数据发送和接收的重定时器210而不是经由多个层执行数据发送和接收的交换机来发送和接收数据,使输入和输出延迟最小化。
此外,针对图1描述了存储装置组10包括可重构逻辑芯片200,但是示例实施例不限于此,存储装置组10可包括通用运算器(诸如,能够执行操作功能的中央处理器(CPU)或图形处理器(GPU)),代替可重构逻辑芯片200。当存储装置组10包括通用运算器时,通用运算器可包括连接到存储装置100的第一端口PT1的重定时器和连接到存储装置100的第二端口PT2的操作电路。
图2是详细示出根据示例实施例的存储装置组10的框图。具体地,图2是详细示出图1的存储装置组10的框图。
参照图2,存储装置组10可包括存储装置100和可重构逻辑芯片200。存储装置100可包括控制器110和非易失性存储器(NVM)120。根据示例实施例,控制器110和NVM 120可被实现为单独的芯片。可重构逻辑芯片200可包括重定时器210和操作电路220。
主机300可向存储装置组10发送请求特定操作的主机命令(诸如,写入请求或读取请求)。根据示例实施例,主机300可将与主机命令相关的数据与主机命令一起发送到存储装置组10。
存储装置组10可经由可重构逻辑芯片200的重定时器210接收主机命令。重定时器210可调整接收的主机命令,并且将调整的主机命令发送到存储装置100。根据示例实施例,重定时器210可将调整的主机命令发送到包括第一端口PT1的控制器110。根据示例实施例,重定时器210可调整与接收的主机命令相关的数据,并且将调整的数据发送到包括第一端口PT1的控制器110。
存储装置100可接收主机命令并通过分析主机命令来生成命令。根据示例实施例,控制器110可分析经由重定时器210和第一端口PT1接收的主机命令,并且在确定需要操作电路220的操作时生成用于控制操作电路220的命令。根据示例实施例,控制器110可包括用于对主机命令进行解码并生成如上所述的命令的调度器。
控制器110可生成执行由主机300请求的操作所需的输入数据。根据示例实施例,当确定需要操作电路220的操作时,控制器110可通过使用从主机300接收的数据来生成输入数据,或者通过从NVM 120读取数据来生成输入数据。
存储装置100可经由第二端口PT2将生成的输入数据提供到操作电路220。根据示例实施例,可重构逻辑芯片200可包括连接到操作电路220并且区别于重定时器210的第三端口PT3,并且存储装置组10可包括连接第二端口PT2与第三端口PT3的根(root)(例如,PCIe总线)。此外,控制器110可经由第二端口PT2和第三端口PT3将生成的输入数据发送到操作电路220。根据示例实施例,主机300可将指示由主机300请求的操作的命令与输入数据一起发送。
操作电路220可接收输入数据,并且通过使用接收的输入数据执行与由主机300请求的操作对应的操作来生成输出数据。例如,当操作电路220接收到指示压缩的命令时,操作电路220可通过对输入数据进行压缩来生成输出数据。然后,操作电路220可经由第二端口PT2将生成的输出数据提供到存储装置100。根据示例实施例,操作电路220可经由第三端口PT3和第二端口PT2将输出数据发送到控制器110。
此外,存储装置100可接收输出数据,并且基于接收的输出数据生成关于主机命令的响应数据。根据示例实施例,控制器110可经由第二端口PT2接收输出数据,并且基于接收的输出数据生成关于主机命令的响应数据。这里,响应数据可包括指示与主机命令对应的操作是否完成的信息。根据示例实施例,控制器110可响应于主机300的请求执行附加操作。例如,当主机300的请求是写入请求时,控制器110可将从操作电路220接收的输出数据写入NVM 120,并且生成关于写入请求的响应数据。
此外,存储装置100可将响应数据发送到主机300。根据示例实施例,控制器110可经由第一端口PT1将响应数据发送到重定时器210。重定时器210可调整接收的响应数据,并将调整的响应数据发送到主机300。
图3是用于描述根据示例实施例的存储装置组10的操作方法的框图。具体地,图3是示出图2的存储装置组10的操作方法的流程图。
主机300和存储装置组10可基于相同的协议进行操作。例如,主机300和存储装置组10可基于非易失性存储器快速(NVMe)协议进行操作。然而,示例实施例不限于此,另一协议可被使用。此外,为了便于描述,将在主机300和存储装置组10基于NVMe协议进行操作并且分别包括在主机300和存储装置组10中的接口是支持NVMe协议的PCIe装置的假设下来描述图3。
参照图2和图3,主机300可生成将被发送到存储装置组10的主机命令。根据示例实施例,主机300可包括NVMe驱动器。主机300可通过使用NVMe驱动器基于NVMe协议生成主机命令。
主机300可向存储装置组10发送基于NVMe协议生成的主机命令。根据示例实施例,主机300可将主机命令发送到重定时器210,重定时器210可调整主机命令,并且经由第一端口PT1将调整的主机命令发送到控制器110(操作①)。然后,控制器110可基于NVMe协议生成执行由主机300请求的操作所需的输入数据。根据示例实施例,控制器110还可基于NVMe协议生成指示由主机300请求的操作的命令。
然后,控制器110可经由第二端口PT2将输入数据发送到操作电路220(操作②)。根据示例实施例,控制器110可经由第二端口PT2和第三端口PT3将命令和输入数据直接发送到操作电路220。然后,操作电路220可接收命令和输入数据,并且通过使用输入数据来执行与接收的命令对应的操作。操作电路220可通过执行操作来基于NVMe协议生成输出数据。就此而言,操作电路220可包括NVMe驱动器。
接下来,操作电路220可经由第二端口PT2将输出数据发送到控制器110(操作③)。根据示例实施例,操作电路220可经由第三端口PT3和第二端口PT2将输出数据直接发送到控制器110。然后,控制器110可基于NVMe协议接收输出数据并生成关于主机命令的响应数据。
然后,控制器110可将基于NVMe协议生成的响应数据发送到主机300。根据示例实施例,控制器110可将响应数据发送到重定时器210,重定时器210可调整响应数据,并且经由第一端口PT1将调整的响应数据发送到主机300(操作④)。
图4是根据示例实施例的可重构逻辑芯片200和控制器110的操作的示例的流程图。具体地,图4是示出图3的可重构逻辑芯片200和控制器110的操作的示例的流程图。为了便于描述,也将在主机300和存储装置组10基于NVMe协议进行操作并且分别包括在主机300和存储装置组10中的接口遵循支持NVMe协议的PCIe方法的假设下描述图4。
参照图3和图4,在操作S110中,可重构逻辑芯片200可接收主机命令。具体地,可重构逻辑芯片200的重定时器210可接收主机命令。然后,在操作S120中,可重构逻辑芯片200可对主机命令执行信号处理。具体地,可重构逻辑芯片200的重定时器210可去除主机命令的抖动并且修复损坏,以对主机命令执行信号处理(例如,对主机命令进行调整)。
然后,在操作S125中,可重构逻辑芯片200可将调整的主机命令发送到控制器110。具体地,可重构逻辑芯片200的重定时器210可经由第一端口PT1将执行了信号处理的主机命令发送到控制器110。然后,在操作S130中,控制器110可基于接收的主机命令生成输入数据。
然后,在操作S135中,可重构逻辑芯片200可将轮询信号(polling signal)发送到控制器110。具体地,可重构逻辑芯片200的操作电路220可经由第二端口PT2将请求发送输入数据的轮询信号发送到控制器110。根据示例实施例,操作电路220可根据与控制器110预先约定的方法向控制器110发送轮询信号。根据示例实施例,操作电路220可根据预设时段将轮询信号发送到控制器110。
此外,在操作S140中,控制器110可响应于轮询信号将输入数据发送到可重构逻辑芯片200。具体地,控制器110可在生成输入数据之后保持待机状态。控制器110可在从操作电路220接收到轮询信号时经由第二端口PT2向可重构逻辑芯片200的操作电路220发送输入数据。示例实施例不限于此,控制器110可在从操作电路220接收到轮询信号之后生成输入数据,并且将生成的输入数据发送到操作电路220。根据示例实施例,控制器110可将指示由主机300请求的操作的命令与输入数据一起发送到操作电路220。
然后,在操作S150中,可重构逻辑芯片200可基于接收的输入数据执行数据处理。具体地,可重构逻辑芯片200的操作电路220可通过使用输入数据执行与接收的命令对应的操作来生成输出数据。在操作S155中,可重构逻辑芯片200可将输出数据发送到控制器110。具体地,可重构逻辑芯片200的操作电路220可经由第二端口PT2将输出数据发送到控制器110。
然后,在操作S160中,控制器110可基于输出数据生成响应数据。然后,在操作S165中,控制器110可将响应数据发送到可重构逻辑芯片200。具体地,控制器110可经由第一端口PT1将响应数据发送到可重构逻辑芯片200的重定时器210。然后,在操作S170中,可重构逻辑芯片200可对响应数据执行信号处理。具体地,可重构逻辑芯片200的重定时器210可去除响应数据的抖动并且修复损坏,以对响应数据执行信号处理(例如,对响应数据进行调整)。然后,在操作S180中,可重构逻辑芯片200可将调整的响应数据发送到主机300。具体地,可重构逻辑芯片200的重定时器210可向主机300发送执行了信号处理的响应数据。
图5是根据示例实施例的可重构逻辑芯片200和控制器110的操作的示例的流程图。具体地,图5是根据示例实施例的图4的修改示例。因为图5的操作S210至S230可与图4的操作S110至S130基本相同,所以省略其重复描述。
参照图5,在操作S235中,控制器110可将中断信号发送到可重构逻辑芯片200。具体地,控制器110可经由第二端口PT2将指示数据传输调度的中断信号发送到可重构逻辑芯片200的操作电路220。根据示例实施例,控制器110可根据与操作电路220预先约定的方法将中断信号发送到操作电路220。
然后,在操作S240中,控制器110可将输入数据发送到可重构逻辑芯片200。具体地,控制器110可在发送中断信号之后经由第二端口PT2将输入数据发送到操作电路220。示例实施例不限于此,控制器110可在将中断信号发送到操作电路220之后生成输入数据,并且将生成的输入数据发送到操作电路220。根据示例实施例,控制器110可将指示由主机300请求的操作的命令与输入数据一起发送到操作电路220。此外,因为操作S250至S280可与图4的操作S150至S180基本相同,所以省略其重复描述。
这样,因为根据与图4和图5一致的示例实施例的存储装置组10基于相同的协议发送和接收数据,所以控制器110和可重构逻辑芯片200可彼此直接发送和接收数据。
图6是示出根据示例实施例的控制器110的配置的框图。具体地,图6是图2的控制器110的配置的框图。
参照图6,控制器110包括经由总线116彼此通信的处理器111、主机接口(IF)112、FPGA IF 113、NVM IF 114和存储器115。例如,可重构逻辑芯片200可包括FPGA。
处理器111可包括中央处理器或微处理器,并且控制控制器110的整体操作。根据示例实施例,处理器111可被配置为多核处理器,并且例如可被配置为双核处理器或四核处理器。根据示例实施例,处理器111可控制与从主机接收的主机命令相关的整体操作。例如,处理器111可基于接收的主机命令生成输入数据,并基于接收的输出数据生成响应数据。
主机IF 112可经由图1的重定时器210提供主机300与控制器110之间的IF,并且例如可包括图1的第一端口PT1。FPGA IF 113可提供控制器110与FPGA(即,图1的可重构逻辑芯片200的操作电路220)之间的IF,并且例如可包括图1的第二端口PT2。
根据示例实施例,主机IF 112可从图1的重定时器210接收主机命令,并且将接收的主机命令提供到处理器111。此外,FPGA IF 113可从处理器111接收输入数据,并且将接收的输入数据提供到图1的操作电路220。此外,FPGA IF 113可从图1的操作电路220接收输出数据,并且将接收的输出数据提供到处理器111。此外,主机IF 112可从处理器111接收响应数据,并且将接收的响应数据提供到图1的重定时器210。
NVM IF 114可提供控制器110与NVM 120之间的IF。存储器115根据处理器111的控制进行操作,并且可被用作操作存储器、缓冲存储器或高速缓冲存储器。例如,存储器115可被配置为易失性存储器(诸如,动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM))或者NVM(诸如,相变随机存取存储器(PRAM)或闪存)。
图7是示出根据示例实施例的控制器110'的配置的框图。具体地,图7是根据示例实施例的图6的修改示例的示图。
参照图7,控制器110'包括经由总线116彼此通信的处理器111'、主机IF 112、FPGAIF 113、NVM IF 114、存储器115和易失性存储器(VM)IF 117。在下文中,将主要描述控制器110'与图6的控制器110之间的差异。
VM IF 117可提供控制器110'与VM(例如,包括在设置在控制器110'外部的存储装置中的VM)之间的IF。根据示例实施例,处理器111'可在向图1的操作电路220发送数据和从图1的操作电路220接收数据的操作期间使用VM。例如,处理器111'可基于接收的主机命令生成输入数据,并且经由VM IF 117将生成的输入数据加载在VM上。此外,处理器111'可经由VM IF 117从VM读取由图1的操作电路220生成的输出数据。将参照图8描述其详细描述。
图8是用于描述根据示例实施例的存储装置组10a的操作方法的框图。换句话说,图8是包括图7的控制器110'的存储装置组10a的示图。换句话说,控制器110a可与图7的控制器110'基本相同。参照图8,存储装置组10a可包括VM 400a,VM 400a可经由图7的VM IF117连接到控制器110a并且可不连接到可重构逻辑芯片200a。根据示例实施例,VM 400a可包括诸如DRAM的VM。
可重构逻辑芯片200a和存储装置100a可对特定的存储器区域进行预先约定,并且通过使用约定的存储器区域来发送和接收数据。例如,可重构逻辑芯片200a和存储装置组10a可将将被发送的数据加载在约定的存储器区域上,并且从约定的存储器区域读取将被接收的数据。
根据示例实施例,在可重构逻辑芯片200a与存储装置100a之间约定的存储器区域可以是存储装置100a的VM 400a的部分区域。可重构逻辑芯片200a和存储装置100a可各自存储关于VM 400a的部分区域的地址,并且当需要数据发送和接收时基于存储的地址访问VM 400a的部分区域。
参照图8,主机300可将主机命令发送到存储装置组10a。根据示例实施例,主机300可将主机命令发送到重定时器210,重定时器210可调整主机命令,并且经由第一端口PT1将调整的主机命令发送到控制器110a(操作①)。
然后,控制器110a可基于主机命令生成指示由主机300请求的操作的命令以及执行由主机300请求的操作所需的输入数据。
然后,控制器110a可将输入数据加载在VM 400a上(操作②)。根据示例实施例,控制器110a可将输入数据加载在与可重构逻辑芯片200a预先约定的VM 400a的部分区域上。接下来,操作电路220a可通过经由第二端口PT2访问VM 400a来获得输入数据(操作③)。根据示例实施例,控制器110a可经由第二端口PT2向操作电路220a发送指示由主机300请求的操作的命令。然后,操作电路220a可通过经由图7的VM IF 117和连接第三端口PT3与第二端口PT2的根访问VM 400a的预先约定的区域,来获得输入数据。然后,操作电路220a可通过使用输入数据来执行操作。操作电路220a可通过执行操作来生成输出数据。
接下来,操作电路220a可经由第二端口PT2将输出数据加载在VM 400a上(操作④)。根据示例实施例,操作电路220a可通过经由图7的VM IF 117和连接第三端口PT3与第二端口PT2的根访问VM 400a,来将输出数据加载在VM 400a的预先约定的区域上。然后,控制器110a可从VM 400a获得输出数据(操作⑤)。根据示例实施例,控制器110a可从与可重构逻辑芯片200a预先约定的VM 400a的部分区域读取输出数据。然后,控制器110a可基于输出数据生成关于主机命令的响应数据。
接下来,控制器110a可将响应数据发送到主机300(操作⑥)。根据示例实施例,控制器110a可将响应数据发送到重定时器210,重定时器210可调整响应数据,并经由第一端口PT1将调整的响应数据发送到主机300。
图9是用于描述根据示例实施例的存储装置组10b的操作方法的框图。具体地,图9是根据示例实施例的图8的修改示例的示图。参照图9,根据当前实施例的存储装置组10b可包括VM 400b,VM 400b可经由可重构逻辑芯片200b的VM IF连接到可重构逻辑芯片200b,并且可不连接到控制器110b。根据示例实施例,VM 400b可包括诸如DRAM的VM。
可重构逻辑芯片200b和存储装置100b可对特定存储器区域进行预先约定,并且通过使用约定的存储器区域来发送和接收数据。在可重构逻辑芯片200b与存储装置100b之间约定的存储器区域可以是存储装置100b的VM400b的部分区域。
参照图9,主机300可将主机命令发送到存储装置组10b。根据示例实施例,主机300可将主机命令发送到重定时器210,重定时器210可调整主机命令,并且经由第一端口PT1将调整的主机命令发送到控制器110b(操作①)。然后,控制器110b可基于主机命令生成指示由主机300请求的操作的命令以及执行由主机300请求的操作所需的输入数据。
接下来,控制器110b可经由第二端口PT2将输入数据加载在VM 400b上(操作②)。根据示例实施例,控制器110b可经由可重构逻辑芯片200b的VM IF以及连接第二端口PT2与第三端口PT3的根来访问VM 400b,并且将输入数据加载在VM 400b的预先约定的区域上。
操作电路220b可从VM 400b获得输入数据(操作③)。根据示例实施例,控制器110b可经由第二端口PT2向操作电路220b发送指示由主机300请求的操作的命令。然后,操作电路220b可从与存储装置100b预先约定的VM 400b的部分区域读取输入数据。然后,操作电路220b可通过使用输入数据来执行操作。操作电路220b可通过执行操作来生成输出数据。
接下来,操作电路220b可将输出数据加载在VM 400b上(操作④)。根据示例实施例,操作电路220b可将输出数据加载在与存储装置100b预先约定的VM 400b的部分区域上。接下来,控制器110b可通过经由第二端口PT2访问VM 400b来获得输出数据(操作⑤)。根据示例实施例,控制器110b可经由可重构逻辑芯片200b的VM IF以及连接第二端口PT2与第三端口PT3的根来访问VM 400b,并且从VM 400b的预先约定的区域读取输出数据。然后,控制器110b可基于输出数据生成关于主机命令的响应数据。
接下来,控制器110b可将响应数据发送到主机300(操作⑥)。根据示例实施例,控制器110b可将响应数据发送到重定时器210,重定时器210可调整响应数据,并经由第一端口PT1将调整的响应数据发送到主机300。
图10是根据示例实施例的VM 400a和400b、可重构逻辑芯片200a和200b以及控制器110a和110b的操作的示例的流程图。具体地,图10是VM 400a和400b、可重构逻辑芯片200a和200b以及控制器110a和110b的操作的示例的流程图。
参照图10,在操作S300中,可重构逻辑芯片200a和200b可接收主机命令。具体地,可重构逻辑芯片200a和200b的重定时器210可接收主机命令。然后,可重构逻辑芯片200a和200b可对主机命令执行信号处理。具体地,可重构逻辑芯片200a和200b的重定时器210可去除主机命令的抖动并且修复损坏,以对主机命令执行信号处理(例如,对主机命令进行调整)。
然后,在操作S305中,可重构逻辑芯片200a和200b可将调整的主机命令发送到控制器110a和110b。具体地,可重构逻辑芯片200a和200b的重定时器210可经由第一端口PT1将对其执行了信号处理的主机命令发送到控制器110a和110b。然后,在操作S310中,控制器110a和110b可基于接收的主机命令生成输入数据。
然后,在操作S315中,控制器110a和110b可将输入数据发送到VM 400a和400b。具体地,控制器110a和110b可将输入数据以及请求将输入数据写入与可重构逻辑芯片200a和200b预先约定的VM 400a和400b的部分区域的命令一起发送到VM 400a和400b。
然后,在操作S320中,VM 400a和400b可加载输入数据。接下来,在操作S325中,VM400a和400b可向控制器110a和110b发送指示加载完成的响应消息。具体地,VM 400a和400b可将输入数据加载在预先约定的区域上,并且将指示加载完成的响应消息发送到控制器110a和110b。然后,在操作S330中,控制器110a和110b可将指示由主机300请求的操作的命令发送到可重构逻辑芯片200a和200b。
然后,在操作S335中,可重构逻辑芯片200a和200b可将读取命令发送到VM 400a和400b。具体地,可重构逻辑芯片200a和200b的操作电路220a和220b可响应于接收的命令,向VM 400a和400b发送请求读取被写入预先约定的区域的地址中的数据的读取命令。
然后,在操作S340中,VM 400a和400b可读取输入数据。接下来,在操作345中,VM400a和400b可将读取的输入数据发送到可重构逻辑芯片200a和200b。具体地,VM 400a和400b可读取加载在预先约定的区域上的输入数据,并且将读取的输入数据发送到可重构逻辑芯片200a和200b的操作电路220a和220b。
然后,在操作S350中,可重构逻辑芯片200a和200b可基于接收的输入数据执行数据处理。具体地,可重构逻辑芯片200a和200b的操作电路220a和220b可通过使用输入数据执行与接收的命令对应的操作,来生成输出数据。在操作S355中,可重构逻辑芯片200a和200b可将输出数据发送到控制器110a和110b。具体地,可重构逻辑芯片200a和200b的操作电路220a和220b可将输出数据与请求将输出数据写入与存储装置100a和100b预先约定的VM 400a和400b的部分区域的命令一起发送到VM 400a和400b。
然后,在操作S360中,VM 400a和400b可加载输出数据。接下来,在操作S365中,VM400a和400b可将指示加载完成的响应消息发送到可重构逻辑芯片200a和200b。具体地,VM400a和400b可将输出数据加载在预先约定的区域上,并且将指示加载完成的响应消息发送到可重构逻辑芯片200a和200b的操作电路220a和220b。
然后,在操作S370中,可重构逻辑芯片200a和200b可将指示操作完成的响应消息发送到控制器110a和110b。具体地,可重构逻辑芯片200a和200b的操作电路220a和220b可将指示操作完成的响应消息发送到控制器110a和110b。然后,在操作S375中,控制器110a和110b可将读取命令发送到VM 400a和400b。具体地,控制器110a和110b可向VM 400a和400b发送请求读取被写入到预先约定的区域的地址的数据的读取命令。
然后,在操作S380中,VM 400a和400b可读取输出数据。接下来,在操作S385中,VM400a和400b可将读取的输出数据发送到控制器110a和110b。具体地,VM 400a和400b可读取加载在预先约定的区域上的输出数据,并且将读取的输出数据发送到控制器110a和110b。
然后,在操作S390中,控制器110a和110b可基于输出数据生成响应数据。然后,在操作S395中,控制器110a和110b可将响应数据发送到可重构逻辑芯片200a和200b。具体地,控制器110a和110b可经由第一端口PT1将响应数据发送到可重构逻辑芯片200a和200b的重定时器210。然后,在操作S400中,可重构逻辑芯片200a和200b可将响应数据发送到主机300。具体地,可重构逻辑芯片200a和200b的重定时器210可去除响应数据的抖动并且修复损坏,以对响应数据执行信号处理(例如,对响应数据进行调整)。然后,可重构逻辑芯片200a和200b的重定时器210可将调整的响应数据发送到主机300。
这样,因为图10的根据示例实施例的存储装置组使用VM,所以即使当主机300、控制器110a和110b以及可重构逻辑芯片200a和200b基于不同的协议进行操作时,它们也可彼此通信。
图11是详细示出根据示例实施例的存储装置组10c的框图。具体地,图11是示出根据示例实施例的图2的存储装置组10的修改示例的框图。参照图11,存储装置组10c可包括存储装置100c和可重构逻辑芯片200c。存储装置100c可包括控制器110c和NVM 120,可重构逻辑芯片200c可包括重定时器210和操作电路220c。
参照图11,除了连接到重定时器210的第一端口PT1和连接到第三端口PT3的第二端口PT2之外,控制器110c还可包括第四端口PT4。可重构逻辑芯片200c可包括连接到操作电路220c并且区别于第三端口PT3的第五端口PT5。存储装置组10c可包括连接第四端口PT4与第五端口PT5的根。这里,连接第四端口PT4与第五端口PT5的根可执行连接存储装置100c和可重构逻辑芯片200c的边带(side band)的功能,并且可以是I2C/SM总线。
控制器110c可经由重定时器210和第一端口PT1接收主机命令。然后,控制器110c可响应于接收的主机命令而生成指示由主机300请求的操作的命令和执行由主机300请求的操作所需的输入数据。
然后,控制器110c可经由第四端口PT4而不是第二端口PT2将命令提供到操作电路220c。根据示例实施例,控制器110c可经由连接第四端口PT4与第五端口PT5的根(例如,I2C/SM总线)将命令发送到操作电路220c。
然后,控制器110c可经由第二端口PT2将输入数据发送到操作电路220c。根据示例实施例,当主机300和存储装置组10c基于相同的协议(例如,NVMe协议)进行操作时,控制器110c可经由连接第二端口PT2与第三端口PT3的根(例如,PCIe总线)将输入数据直接发送到操作电路220c。
然后,操作电路220c可基于经由不同的根接收的输入数据和命令来执行与主机300的请求对应的操作。根据示例实施例,操作电路220c可通过使用经由第二端口PT2和第三端口PT3接收的输入数据来执行与经由第四端口PT4和第五端口PT5接收的命令对应的操作。操作电路220c可通过执行操作来基于NVMe协议生成输出数据。
接下来,操作电路220c可经由第二端口PT2将输出数据发送到控制器110c。根据示例实施例,操作电路220c可经由第三端口PT3和第二端口PT2将输出数据直接发送到控制器110c。
图12是详细示出根据示例实施例的存储装置组10d的框图。具体地,图12是示出根据示例实施例的图11的存储装置组10c的修改示例的框图。参照图12,存储装置组10d还可包括VM 400d。VM 400d可经由控制器110d的VM IF连接到控制器110d,并且可不连接到可重构逻辑芯片200d。根据示例实施例,VM 400d可包括诸如DRAM的VM。
参照图12,控制器110d可经由重定时器210和第一端口PT1接收主机命令。然后,控制器110d可响应于接收的主机命令而生成指示由主机300请求的操作的命令和执行由主机300请求的操作所需的输入数据。
然后,控制器110d可经由第四端口PT4而不是第二端口PT2将命令提供到操作电路220d。根据示例实施例,控制器110d可经由连接第四端口PT4与第五端口PT5的根(例如,I2C/SM总线)将命令发送到操作电路220d。
然后,控制器110d可将输入数据存储在VM 400d中。根据示例实施例,控制器110d可将输入数据存储在与可重构逻辑芯片200d预先约定的VM 400d的部分区域中。接下来,操作电路220d可通过经由第二端口PT2而不是第四端口PT4访问VM 400d,来获得输入数据。根据示例实施例,操作电路220d可通过经由VM IF和连接第三端口PT3与第二端口PT2的根访问VM 400d的预先约定的区域,来获得输入数据。然后,操作电路220d可通过使用输入数据来执行操作。操作电路220d可通过执行操作来生成输出数据。
接下来,操作电路220d可经由第二端口PT2将输出数据存储在VM 400d上。根据示例实施例,操作电路220d可通过经由VM IF和连接第三端口PT3与第二端口PT2的根访问VM400d,来将输出数据存储在VM 400d的预先约定的区域中。然后,控制器110d可从VM 400d获得输出数据。根据示例实施例,控制器110d可从与可重构逻辑芯片200d预先约定的VM 400d的部分区域读取输出数据。
图13是详细示出根据示例实施例的存储装置组10e的框图。具体地,图13是示出根据示例实施例的图12的存储装置组10d的修改示例的框图。参照图13,存储装置组10e可附加地包括VM 400e。VM 400e可经由可重构逻辑芯片200e的VM IF连接到操作电路220e,并且可不连接到控制器110e。根据示例实施例,VM 400e可包括诸如DRAM的VM。
参照图13,控制器110e可经由重定时器210和第一端口PT1接收主机命令。然后,控制器110e可响应于接收的主机命令,生成指示由主机300请求的操作的命令和执行由主机300请求的操作所需的输入数据。
然后,控制器110e可经由第四端口PT4而不是第二端口PT2将命令提供到操作电路220e。根据示例实施例,控制器110e可经由连接第四端口PT4和第五端口PT5的根(例如,I2C/SM总线)将命令发送到操作电路220e。
接下来,控制器110e可经由第二端口PT2将输入数据存储在VM 400e中。根据示例实施例,控制器110e可经由可重构逻辑芯片200e的VM IF和连接第二端口PT2与第三端口PT3的根(例如,PCIe总线)来访问VM 400e,并且将输入数据存储在VM 400e的预先约定的区域中。
然后,操作电路220e可从VM 400e的预先约定的区域读取输入数据。然后,操作电路220e可通过使用输入数据来执行操作。操作电路220e可通过执行操作来生成输出数据。接下来,操作电路220e可将输出数据存储在VM 400e的预先约定的区域中。
接下来,控制器110e可通过经由第二端口PT2访问VM 400e来获得输出数据。根据示例实施例,控制器110e可经由可重构逻辑芯片200e的VM IF和连接第二端口PT2与第三端口PT3的根来访问VM 400e,并且从VM 400e的预先约定的区域读取输出数据。
这样,根据图13的存储装置100e可分别包括用于将数据发送到主机300和从主机300接收数据的根、用于将命令发送到可重构逻辑芯片200e的根、以及用于将输入数据发送到可重构逻辑芯片200e的根。
图14是详细示出根据示例实施例的存储装置组10f的框图。与图1的存储装置组10不同,存储装置组10f可被构造为使得重定时器500被设置在可重构逻辑芯片600外部。根据示例实施例,存储装置100可经由第一芯片来实现,可重构逻辑芯片200可经由第二芯片来实现,并且重定时器500可经由第三芯片来实现,其中,第一芯片至第三芯片可构造层叠封装(POP)。存储装置100f的控制器110f可包括第一端口PT1和第二端口PT2,并且可重构逻辑芯片600可包括操作电路610和第三端口PT3。根据示例实施例,存储装置组10f可包括连接第二端口PT2与第三端口PT3的根(例如,PCIe总线)。
重定时器500的一端可连接到主机300,重定时器500的另一端可连接到控制器110f的第一端口PT1。因此,重定时器500可执行主机300与控制器110f之间的数据发送和接收。重定时器500可从主机300接收主机命令,调整接收的主机命令,并且经由第一端口PT1将调整的主机命令发送到控制器110f。然后,重定时器500可经由第一端口PT1从控制器110f接收响应数据,调整接收的响应数据,并且将调整的响应数据发送到主机300。根据示例实施例,控制器110f可包括包含第一端口PT1的主机IF。控制器110f的主机IF可根据第一接口协议与重定时器500通信。
控制器110f可经由第二端口PT2向操作电路610发送数据和从操作电路610接收数据。根据示例实施例,控制器110f可经由连接第二端口PT2与第三端口PT3的总线,向操作电路610发送数据和从操作电路610接收数据。根据示例实施例,控制器110f可包括包含第二端口PT2的FPGA IF。控制器110f的FPGA IF可经由第二接口协议与操作电路610通信。由控制器110f执行的经由第二端口PT2向操作电路610发送数据和从操作电路610接收数据的方法可与上面参照图3、图8和图9描述的方法基本相同。换句话说,控制器110f可基于相同的协议,经由第二端口PT2将生成的数据直接发送到操作电路610和从操作电路610接收生成的数据。可选地,控制器110f可经由第二端口PT2访问与可重构逻辑芯片600预先约定的区域(例如,VM的部分区域)。然后,控制器110f可通过将数据存储在预先约定的区域中或者读取存储在预先约定的区域中的数据,向操作电路610发送数据或从操作电路610接收数据。
图15是根据示例实施例的存储装置的操作方法的流程图。具体地,存储装置的操作方法可包括由图3的存储装置100、图8的存储装置100a、图9的存储装置100b、图11的存储装置100c、图12的存储装置100d、图13的存储装置100e和图14的存储装置100f按时间序列执行的操作。
参照图15,存储装置可经由连接到重定时器的第一端口接收主机的请求(操作S410)。根据示例实施例,存储装置可经由第一端口接收与主机命令相关的数据连同主机命令。根据示例实施例,存储装置可在经由第一端口接收主机命令之后经由第一端口接收与主机命令相关的数据。
然后,存储装置可生成与接收的请求对应的输入数据(操作S420)。根据示例实施例,存储装置可响应于经由重定时器和第一端口接收的主机命令,生成指示由主机请求的操作的命令和执行由主机请求的操作所需的输入数据。
然后,存储装置可经由连接到操作电路的第二端口将输入数据提供到操作电路(操作S430)。根据示例实施例,存储装置可将命令与输入数据一起发送到操作电路。根据示例实施例,存储装置可将命令发送到操作电路,然后将输入数据连续地发送到操作电路。根据示例实施例,存储装置可根据预设的协议生成输入数据,并且经由第二端口将生成的输入数据直接发送到操作电路。根据示例实施例,存储装置可经由第二端口将输入数据存储在与可重构逻辑芯片预先约定的区域(例如,VM)中。
然后,存储装置可经由第二端口从操作电路获得与输入数据对应的输出数据(操作S440)。根据示例实施例,存储装置可经由第二端口直接接收由操作电路根据预设的协议生成的输出数据。根据示例实施例,存储装置可通过经由第二端口读取存储在与可重构逻辑芯片预先约定的区域(例如,VM)中的输出数据来获得输出数据。
此外,存储装置可基于输出数据生成与接收的请求对应的响应数据(操作S450)。接下来,存储装置可经由第一端口将响应数据发送到主机(操作S460)。根据示例实施例,存储装置可经由第一端口和重定时器将响应数据发送到主机。
这样,存储装置可经由第一端口和重定时器向主机发送数据和从主机接收数据,并且可通过经由第二端口连接到可重构逻辑芯片的操作电路,来向可重构逻辑芯片发送数据和从可重构逻辑芯片接收数据。
此外,存储装置组可通过使用经由物理层执行数据发送和接收的重定时器而不是经由多个层执行数据发送和接收的交换机来发送和接收数据,使输入和输出延迟最小化。
图16是根据示例实施例的网络系统1000的示图。
参照图16,网络系统1000可包括服务器系统1100和经由网络NET与服务器系统1100通信的多个终端1210至1230(例如,终端1、终端2、……、终端n,n为大于2的自然数)。服务器系统1100可包括服务器1110和SSD 1120。这里,SSD 1120可对应于上述示例实施例的存储装置100、100a、100b、100c、100d、100e或100f。根据一些示例实施例,可通过使用以上参照图1至图15描述的示例实施例来实现SSD 1120。
由如图1至图3、图5至图9以及图11至图14中所示的框表示的重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的至少一个可被实现为执行根据示例性实施例的上述相应功能的各种数量的硬件、软件和/或固件结构。例如,这些重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的至少一个可使用可通过一个或多个微处理器或其他控制设备的控制来执行相应的功能的直接电路结构(诸如,存储器、处理器、逻辑电路、查找表等)。此外,这些重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的至少一个可具体地由模块、程序或代码的一部分来体现,模块、程序或代码的一部分包含用于执行指定的逻辑功能并且由一个或多个微处理器或其他控制设备执行的一个或多个可执行指令。此外,这些重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的至少一个还可包括执行相应功能的处理器(诸如,中央处理器(CPU))、微处理器等,或者可由执行相应功能的处理器(诸如,中央处理器(CPU))、微处理器等实现。这些重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的两个或更多个可组合成执行重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的组合的两个或更多个的所有操作或功能的一个单个组件、元件、模块或单元。此外,这些重定时器、可重构逻辑芯片、操作电路、控制器、处理器和其他元件中的至少一个的至少部分功能可由这些组件中的另一个执行。此外,尽管在以上框图中的每个框图中未示出总线,但是可通过总线执行组件之间的通信。以上示例实施例的功能方面可在一个或多个处理器上执行的算法中实现。此外,由块表示的重定时器、可重构逻辑芯片、操作电路、控制器、处理器或其他元件、或者处理步骤可采用任何数量的现有技术以用于电子配置、信号处理和/或控制、数据处理等。
虽然已经描述了示例实施例,但是将理解,在不脱离权利要求的精神和范围的情况下,可在其中进行各种改变和修改。

Claims (20)

1.一种存储装置组,包括:
可重构逻辑芯片,包括:
重定时器,被配置为通过调整从外部装置接收的输入信号来生成输出信号,和
操作电路,被配置为执行操作功能;以及
存储装置,包括:
第一端口,连接到重定时器,
第二端口,连接到操作电路,和
控制器,被配置为控制经由第一端口和第二端口的数据发送和接收。
2.根据权利要求1所述的存储装置组,其中,控制器还被配置为:
经由重定时器和第一端口向主机发送数据和从主机接收数据;以及
经由第二端口向操作电路发送数据和从操作电路接收数据。
3.根据权利要求1或2所述的存储装置组,其中,控制器还被配置为:基于经由重定时器和第一端口从主机接收的请求来生成输入数据,并且经由第二端口将输入数据提供到操作电路。
4.根据权利要求3所述的存储装置组,其中,操作电路还被配置为:通过使用输入数据执行与接收的请求对应的操作来生成输出数据,并且经由第二端口将输出数据提供到控制器。
5.根据权利要求4所述的存储装置组,其中,控制器还被配置为:基于输出数据生成与接收的请求对应的响应数据,并且经由重定时器和第一端口将响应数据发送到主机。
6.根据权利要求5所述的存储装置组,其中,控制器还被配置为:将输入数据存储在存储器区域中,所述存储器区域能够由控制器和操作电路共同地访问并且够经由第二端口访问。
7.根据权利要求6所述的存储装置组,其中,操作电路还被配置为:通过访问所述存储器区域来读取输入数据,并且将输出数据存储在所述存储器区域中。
8.根据权利要求7所述的存储装置组,其中,控制器还被配置为:通过访问所述存储器区域来读取输出数据,并且基于输出数据生成与接收的请求对应的响应数据。
9.根据权利要求6所述的存储装置组,其中,所述存储器区域设置在可重构逻辑芯片中的易失性存储器或存储装置中的易失性存储器中。
10.根据权利要求5所述的存储装置组,其中,控制器和操作电路被配置为基于预设协议执行操作,并且
其中,控制器还被配置为:基于预设协议生成输入数据,并且经由第二端口将输入数据直接发送到操作电路。
11.根据权利要求10所述的存储装置组,其中,控制器还被配置为:基于经由第二端口从操作电路接收的轮询信号,经由第二端口将输入数据直接发送到操作电路。
12.根据权利要求10所述的存储装置组,其中,控制器还被配置为:经由第二端口将中断信号直接发送到操作电路,并且经由第二端口将输入数据直接发送到操作电路。
13.根据权利要求10所述的存储装置组,其中,操作电路还被配置为:通过基于预设协议执行与接收的请求对应的操作来生成输出数据,并且经由第二端口将输出数据直接发送到控制器。
14.根据权利要求1或2所述的存储装置组,其中,控制器还被配置为:基于经由第一端口从主机接收的请求来生成控制命令,并且经由与第一端口和第二端口不同的第三端口将生成的控制命令发送到操作电路。
15.根据权利要求14所述的存储装置组,其中,控制器和操作电路被配置为:经由第二端口发送和接收与控制命令相关的数据。
16.一种存储系统,包括:
主机;
重定时器,与主机可通信地连接;
存储装置,包括控制器,存储装置被配置为:经由重定时器从主机接收请求,并且生成与接收的请求对应的输入数据;以及
可重构逻辑芯片,被配置为:从存储装置接收输入数据,通过使用输入数据执行与接收的请求对应的操作来生成输出数据,并将输出数据提供到存储装置。
17.根据权利要求16所述的存储系统,其中,存储装置包括:
第一接口,与重定时器可通信地连接;以及
第二接口,与可重构逻辑芯片可通信地连接。
18.一种连接到可重构逻辑芯片的存储装置的操作方法,可重构逻辑芯片包括重定时器和操作电路,存储装置包括连接到重定时器的第一端口和连接到操作电路的第二端口,所述操作方法包括:
经由第一端口接收主机的请求;
生成与接收的请求对应的输入数据;
经由第二端口将输入数据提供到操作电路;
经由第二端口从操作电路获得与输入数据对应的输出数据;
基于输出数据生成与接收的请求对应的响应数据;以及
经由第一端口和重定时器向主机发送生成的响应数据。
19.根据权利要求18所述的操作方法,其中,将输入数据提供到操作电路的步骤包括:将输入数据存储在能够由存储装置和可重构逻辑芯片共同访问的存储器区域中,并且
其中,从操作电路获得输出数据的步骤包括:读取存储在所述存储器区域中的输出数据。
20.根据权利要求18所述的操作方法,其中,生成输入数据的步骤包括:根据预设协议生成输入数据,
其中,将输入数据提供到操作电路的步骤包括:经由第二端口将输入数据直接发送到操作电路,并且
其中,从操作电路获得输出数据的步骤包括:经由第二端口从操作电路直接获得根据预设协议生成的输出数据。
CN202011383885.XA 2019-12-09 2020-12-01 存储装置组、存储系统以及存储装置的操作方法 Pending CN113031855A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190162880A KR20210072503A (ko) 2019-12-09 2019-12-09 스토리지 장치와 재구성 가능 로직 칩을 포함하는 스토리지 장치 세트 및 이를 포함하는 스토리지 시스템
KR10-2019-0162880 2019-12-09

Publications (1)

Publication Number Publication Date
CN113031855A true CN113031855A (zh) 2021-06-25

Family

ID=76209118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011383885.XA Pending CN113031855A (zh) 2019-12-09 2020-12-01 存储装置组、存储系统以及存储装置的操作方法

Country Status (3)

Country Link
US (2) US11474714B2 (zh)
KR (1) KR20210072503A (zh)
CN (1) CN113031855A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796058B (zh) * 2021-12-23 2023-03-11 宇瞻科技股份有限公司 自動調整訊號之儲存裝置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11816337B2 (en) * 2021-12-06 2023-11-14 Western Digital Technologies, Inc. Enterprise host memory buffer

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433845B2 (en) 2009-04-08 2013-04-30 Google Inc. Data storage device which serializes memory device ready/busy signals
WO2012109078A2 (en) 2011-02-08 2012-08-16 Lsi Corporation Selective enablement of operating modes or features via host transfer rate detection
US9658977B2 (en) 2013-03-15 2017-05-23 Micron Technology, Inc. High speed, parallel configuration of multiple field programmable gate arrays
US9727510B2 (en) 2013-03-15 2017-08-08 Micron Technology, Inc. System and method for independent, direct and parallel communication among multiple field programmable gate arrays
US9852779B2 (en) 2014-03-12 2017-12-26 Futurewei Technologies, Inc. Dual-port DDR4-DIMMs of SDRAM and NVRAM for SSD-blades and multi-CPU servers
CN104951252B (zh) 2015-06-12 2018-10-16 北京联想核芯科技有限公司 一种数据访问方法及PCIe存储设备
US9858234B2 (en) * 2015-07-17 2018-01-02 Parade Technologies, Ltd. System transparent retimer
US10223313B2 (en) 2016-03-07 2019-03-05 Quanta Computer Inc. Scalable pooled NVMe storage box that comprises a PCIe switch further connected to one or more switches and switch ports
US10037152B2 (en) 2016-12-19 2018-07-31 Alibaba Group Holding Limited Method and system of high-throughput high-capacity storage appliance with flash translation layer escalation and global optimization on raw NAND flash
US10860449B2 (en) * 2017-03-31 2020-12-08 Intel Corporation Adjustable retimer buffer
DE102018125297A1 (de) 2017-11-17 2019-05-23 Samsung Electronics Co., Ltd. Speichereinrichtung, die Peer-to-Peer-Kommunikation mit externer Einrichtung ohne Eingriff eines Host durchführt
CN112840593B (zh) * 2018-12-21 2022-05-13 华为技术有限公司 一种跨时钟域处理电路
US10970238B2 (en) * 2019-04-19 2021-04-06 Intel Corporation Non-posted write transactions for a computer bus
US11397701B2 (en) * 2019-04-30 2022-07-26 Intel Corporation Retimer mechanisms for in-band link management

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI796058B (zh) * 2021-12-23 2023-03-11 宇瞻科技股份有限公司 自動調整訊號之儲存裝置

Also Published As

Publication number Publication date
KR20210072503A (ko) 2021-06-17
US11474714B2 (en) 2022-10-18
US20210173571A1 (en) 2021-06-10
US20220413722A1 (en) 2022-12-29
US11868626B2 (en) 2024-01-09

Similar Documents

Publication Publication Date Title
US11550738B2 (en) Storage device including reconfigurable logic and method of operating the storage device
US11868626B2 (en) Storage device set including storage device and reconfigurable logic chip, and storage system including the storage device set
US8825922B2 (en) Arrangement for processing trace data information, integrated circuits and a method for processing trace data information
US11645011B2 (en) Storage controller, computational storage device, and operational method of computational storage device
CN108304334B (zh) 应用处理器和包括中断控制器的集成电路
US20210049114A1 (en) Computing system for reducing latency between serially connected electronic devices
US20170031632A1 (en) Data storage device, method of operating the same, and data processing system including the same
US20220374164A1 (en) Storage device set including storage device and reconfigurable logic chip, and storage system including storage device set
US20230229357A1 (en) Storage controller, computational storage device, and operational method of computational storage device
US11775451B2 (en) Computing system for reducing latency between serially connected electronic devices
US20230169022A1 (en) Operating method of an electronic device
US11321254B2 (en) Computing system for transmitting completion early between serially connected electronic devices
US11822816B2 (en) Networking device/storage device direct read/write system
EP4191419A1 (en) Operating method of an electronic device
EP4148572B1 (en) Computational storage device and storage system including the computational storage device
US20230384960A1 (en) Storage system and operation method therefor
US20140317328A1 (en) Serial attached scsi expander and interface expanding device with the same
CN116504289A (zh) 存储器件
CN117908799A (zh) 数据写入方法、装置、电子设备及存储介质

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