CN114647374A - 执行处理代码的存储装置和存储装置的操作方法 - Google Patents

执行处理代码的存储装置和存储装置的操作方法 Download PDF

Info

Publication number
CN114647374A
CN114647374A CN202111543584.3A CN202111543584A CN114647374A CN 114647374 A CN114647374 A CN 114647374A CN 202111543584 A CN202111543584 A CN 202111543584A CN 114647374 A CN114647374 A CN 114647374A
Authority
CN
China
Prior art keywords
memory
core
data
processing code
task
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
CN202111543584.3A
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 CN114647374A publication Critical patent/CN114647374A/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/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • 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
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

提供一种包括核心和存储器的存储装置的操作方法和存储装置。该操作方法包括:响应于从主机装置接收的写命令,接收被配置为能够执行第一任务的第一处理代码,并将第一处理代码存储在存储器中为近数据处理(NDP)单独分配的第一逻辑单元中;响应于从主机装置接收的激活命令,激活用于执行第一处理代码的核心;以及响应于从主机装置接收的执行命令,使用核心来执行第一任务。

Description

执行处理代码的存储装置和存储装置的操作方法
相关申请的交叉引用
本申请基于并要求2020年12月17日提交于韩国知识产权局的韩国专利申请No.10-2020-0177851的优先权,其整体以引用方式并入本文中。
技术领域
本发明构思涉及存储装置,更具体地讲,涉及一种执行处理代码的存储装置和该存储装置的操作方法。
背景技术
使用非易失性存储器装置的诸如固态驱动器(SSD)、非易失性存储器快速(NVMe)、嵌入式多媒体卡(eMMC)和通用闪存(UFS)的存储装置正被广泛使用。存储装置包括用于处理存储器操作的核心并与主机装置协作。
主机装置将存储在存储装置中的数据加载到主机存储器,并且主机存储器处理数据。在存储装置与主机装置之间传送数据的过程中产生开销。然而,由于需要高计算性能,所以主机装置的处理速度通常需要增加。
发明内容
本发明构思提供了一种直接执行用于任务的处理代码的存储装置以及该存储装置的操作方法。
为了实现这样的目的,公开了根据实施例的存储装置的操作方法。根据本发明构思的一方面,包括核心和存储器的存储装置的操作方法包括:响应于从主机装置接收的写命令,接收被配置为能够执行第一任务的第一处理代码,并将第一处理代码存储在存储器中为近数据处理(NDP)单独分配的第一逻辑单元中;响应于从主机装置接收的激活命令,激活用于执行第一处理代码的核心;以及响应于从主机装置接收的执行命令,使用核心来执行第一任务
根据本发明构思的另一方面,包括存储器和核心的存储装置的操作方法包括:从主机装置接收通过对被配置为执行任务的处理代码进行加密而获得的加密代码;基于私钥来验证加密代码的散列值,并且基于验证成功通过对加密代码进行解密来获得处理代码;将处理代码存储在存储器中为近数据处理(NDP)单独分配的第一逻辑单元中;当核心处于空闲状态时,激活核心;以及使用核心来执行任务。
根据本发明构思的另一方面,存储装置包括存储器控制器和存储器装置,其中,该存储器控制器包括:核心;紧密耦接到核心的子存储器;以及连接到核心和子存储器的主存储器。存储器装置是逻辑单元、是为近数据处理(NDP)单独分配的、并且被配置为存储用于执行任务的处理代码,并且核心被配置为基于存储在第一逻辑单元中的处理代码来执行任务。
附图说明
将从以下结合附图进行的详细描述更清楚地理解本发明构思的实施例,在附图中:
图1是示出根据实施例的存储器系统的框图;
图2A是示出根据实施例的存储器装置的框图,图2B是示出根据实施例的逻辑单元的框图;
图3A和图3B是示出根据实施例的公知区域的表;
图4是示出根据实施例的存储器系统的框图;
图5是示出根据实施例的存储器系统的框图;
图6是示出根据实施例的存储装置的操作方法的流程图;
图7A和图7B是示出根据实施例的响应和指令中的每一个的配置的表;
图8是详细示出根据实施例的存储器系统的操作方法的流程图;
图9是详细示出根据实施例的存储器系统的操作方法的流程图;
图10是详细示出根据实施例的存储器系统的操作方法的流程图;
图11是详细示出根据实施例的存储器系统的操作方法的流程图;
图12是详细示出根据实施例的存储装置的操作方法的流程图;
图13是详细示出根据实施例的存储器系统的操作方法的流程图;
图14是示出根据实施例的命令的配置的表;
图15是示出应用了根据实施例的存储装置的系统的框图;
图16是示出根据实施例的存储器系统的框图;
图17是详细示出根据实施例的图16的高级加密标准(AES)引擎的框图;
图18是示出根据实施例的存储器系统的框图;
图19是描述根据实施例的通用闪存(UFS)系统的框图;
图20是描述根据实施例的适用于存储装置的三维(3D)竖直NAND(3D V-NAND)结构的图;
图21是描述根据实施例的能够应用于存储装置的3D V-NAND结构的图;
图22是示出应用了根据实施例的存储器系统的数据中心的框图。
具体实施方式
以下,将参照附图详细描述实施例。
图1是示出根据实施例的存储器系统10的框图。
参照图1,根据实施例的存储器系统10可以是包括任意地存储要处理的数据或存储已处理的数据的存储器的电子系统的实现实施例。例如,存储器系统10可配置计算机、超级移动个人计算机(PC)(UMPC)、工作站、上网本计算机、个人数字助理(PDA)、便携式计算机、web平板、平板计算机、无线电话、移动电话、智能电话、电子书、便携式多媒体播放器(PMP)、便携式游戏机、导航装置、黑匣子、数字相机、数字多媒体广播(DMB)播放器、三维电视、智能电视、数字音频记录仪、数字音频播放器、数字画面记录仪、数字画面播放器、数字视频记录仪、数字视频播放器、配置数据扇区的存储部、用于在无线环境中发送或接收信息的装置、配置家庭网络的各种电子装置之一、配置计算机网络的各种电子装置之一、配置远程信息处理网络的各种电子装置之一、射频识别(RFID)装置或者配置计算系统的各种电子装置之一。
根据实施例的存储器系统10可使用各种类型的封装来安装。例如,根据实施例的存储器系统10可被安装为诸如堆叠式封装(PoP)、球栅阵列(BGA)、芯片级封装(CSP)、塑料引线芯片载体(PLCC)、塑料双列直插封装(PDIP)、华夫裸片(die in waffle)封装、晶圆内裸片(die in wafer)形式、板载芯片(COB)、陶瓷双列直插封装(CERDIP)、塑料公制四方扁平封装(MQFP)、薄四方扁平封装(TQFP)、小外形(SOIC)、收缩型小外形封装(SSOP)、薄小外形(TSOP)、系统封装(SIP)和多芯片封装(MCP)的类型。
存储器系统10可包括存储装置100和主机装置200。主机装置200可向存储装置100请求存储器操作,存储装置100可基于请求来读取、擦除或写入数据并且可作为结果向主机装置200提供响应。
存储装置100可将数据存储在存储区域中。存储区域可表示存储装置100的内部逻辑或物理存储区域(例如,扇区、页和块)。
存储装置100可包括一个或多个闪存芯片。在实施例中,存储装置100可包括嵌入到主机装置200中的存储器。例如,存储装置100可包括嵌入式多媒体卡(eMMC)或嵌入式通用闪存(UFS)存储器装置。在实施例中,存储装置100可包括可拆卸地附接在主机装置200上的外部存储器。例如,存储装置100可包括UFS存储器卡、紧凑闪存(CF)、安全数字(SD)、微型安全数字(Micro-SD)、迷你安全数字(Mini-SD)、极限数字(xD)或记忆棒。
存储装置100可包括存储器控制器110和存储器装置130。
存储器控制器110可总体控制存储装置100。例如,存储器控制器110可调度存储器装置130的操作,或者可对通过存储装置100的处理获得的信号/数据进行编码和解码。在实施例中,存储器控制器110可控制存储器装置130,以使得存储器装置130写入、读取或擦除数据。例如,响应于来自主机装置200的读请求或写响应,存储器控制器110可控制存储器装置130读取存储在存储器装置130中的数据或将数据编程在存储器装置130中。
在实施例中,存储器控制器110可向存储器装置130提供地址、命令和控制信号,因此可控制各自在存储器装置130上执行的编程操作、读操作和擦除操作。另外,可在存储器控制器110和存储器装置130之间发送或接收用于基于主机装置200的请求将数据编程在存储器装置130中的数据和读取数据。
存储器控制器110可包括核心111、子存储器113和主存储器115。
核心111可处理用于在存储器装置130上执行存储器操作的各种操作。根据实施例,核心111可将来自主机装置200的请求解密,并且可处理诸如存储器分配、信号生成以及存储和调用用于与请求对应的存储器操作(例如,读操作、写操作或擦除操作)的数据的各种操作。
子存储器113可帮助核心111进行数据处理。根据实施例,子存储器113可用作内部缓冲器,其任意地存储用于使得能够快速地执行核心111所处理的操作的数据,或者即刻维持所处理的操作。
根据实施例,子存储器113可包括紧密耦接到核心111的紧密耦接存储器(TCM)。根据实施例,子存储器113的速度可比高速缓冲存储器慢,但是可直接耦接到核心111,因此可调节主存储器115和核心111之间的数据处理速度。例如,子存储器113可支持高速存储器接口功能。
根据实施例,子存储器113可包括指令TCM(ITCM)和数据TCM(DTCM)。例如,ITCM可包括64位总线并且DTCM可包括32位总线,但本发明构思不限于此。
根据实施例,子存储器113的地址可固定,因此核心111可使用相同的地址来访问子存储器113。例如,ITCM可使用0x0000000作为地址,DTCM可使用0x200000000作为地址。由于子存储器113的地址固定,因此子存储器113的访问时间可恒定。在实施例中,子存储器113可被实现为一个芯片。
在实施例中,子存储器113可被实现为诸如静态随机存取存储器(SRAM)或双端口SRAM的易失性存储器,但不限于此。主存储器115可加载存储在存储器装置130中的数据并且可提供数据以供核心111处理。在实施例中,存储器控制器110可将存储在存储装置100中的数据补丁加载到主存储器115并且可基于核心111上执行的获取操作将数据移动到子存储器113。本文中,术语“补丁加载”可表示将存储在存储器装置130中的数据加载到存储器控制器110的主存储器115的操作或者将存储在存储器装置130中的数据加载到存储器控制器110的操作,术语“获取(fetch)”可表示使用主处理元件(例如,核心111)将先前加载到与核心相邻的存储器(例如,高速缓冲存储器、TCM等)的数据直接解密的操作。例如,主存储器115可包括诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、DDR2SDRAM、DDR3 SDRAM、DDR4 SDRAM或DDR5 SDRAM的动态随机存取存储器(DRAM),但不限于此。
存储器装置130可包括用于基于来自主机装置200的请求存储数据的多个存储介质。在实施例中,存储器装置130可包括非易失性存储器装置。在实施例中,存储器装置130可包括应用了各种类型的存储器的装置,各种类型的存储器诸如NAND型闪存、磁性RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻RAM(RRAM)、纳米管RAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器和绝缘体电阻变化存储器。
在实施例中,存储器装置130可包括闪存,并且闪存可包括二维(2D)NAND存储器阵列或三维(3D)(或竖直)NAND(VNAND)存储器阵列。3D存储器阵列可以是包括存储器单元阵列(包括设置在硅基板上的有源区域)并与各个存储器单元的操作关联的电路,并且可按单片类型配置在设置在基板上或基板中的电路的至少一个物理水平上。单片类型可表示配置阵列的各水平的层恰好层叠在阵列的较低水平的层上。在实施例中,3D存储器阵列可包括多个竖直NAND串,该多个竖直NAND串布置在竖直方向上以便于至少一个存储器单元设置在另一存储器单元上。至少一个存储器单元可包括电荷捕获层。美国专利公布No.7,679,133、No.8,553,466、No.8,654,587和No.8,559,235以及美国专利申请No.2011/0233648公开了3D存储器单元阵列的适当元件,其包括多个水平并且其中在多个水平之间共享字线和/或位线。这些参考文献整体通过引用并入本文中。
存储器装置130可包括多个存储器块,多个存储器块中的每一个可包括多个页,多个页中的每一个可包括连接到字线的多个存储器单元。在实施例中,存储器装置130可包括包含多个存储器块的多个平面,特别是可包括分别包括多个平面的多个存储器裸片。根据实施例,存储器装置130可以以页为单位执行写操作或读操作,并且可以以块为单位执行擦除操作。
存储器装置130可包括与逻辑单元(LU)对应的启动区域140、用户数据区域150和公知区域160。启动区域140、用户数据区域150和公知区域160中的每一个可被实现为至少一个逻辑单元。逻辑单元(LU)可以是处理小型计算机系统接口(SCSI)(存储)任务并指定用于执行操作管理功能的外部地址的独立功能单元。例如,逻辑单元(LU)可用于存储启动代码、应用程序代码和海量存储数据应用程序。SCSI是用于小型计算机的外围装置连接的接口标准。
启动区域140可包括配置文件系统所需的基本信息。用户数据区域150可基本上存储关于用户的数据。公知区域160可包括用于执行针对SCSI或UFS标准定义的特定功能的指令。启动区域140、用户数据区域150和公知区域160将在与图2A和图3B对应的段落中更详细地描述。根据实施例,公知区域160可包括支持存储计算的存储内计算逻辑单元(ISC_LU)161。根据实施例,存储内计算逻辑单元(ISC_LU)161可以是逻辑存储区域,并且可支持用于在存储装置100中执行算术运算的内部缓冲功能或者可用作内部存储器。
根据实施例,存储内计算逻辑单元(ISC_LU)161可存储处理代码。处理代码可包括由主机装置200处理并以编程语言编写以用于执行任务的代码。任务可以是用户所请求的特定操作。在实施例中,作为任务可请求压缩、加密、量化、矩阵运算、浮点转换、树搜索、交换、重复移除、修剪、渲染或数据挖掘。
在实施例中,可根据情况来更新处理代码。例如,处理代码可被更新为最新算法,因此任务的效率可提高。在实施例中,处理代码可被重新编程。
根据实施例的存储装置100可将从主机装置200提供的处理代码存储在存储内计算逻辑单元(ISC_LU)161中。处理代码可被补丁加载到连接到核心111的主存储器115,然后可被核心111获取。根据实施例,处理代码可由核心111执行,因此存储装置100可执行任务。
存储器装置130可包括存储1比特数据的单级单元(SLC)以及存储多比特数据(例如,2或更多比特)的多级单元(MLC)。例如,存储器装置130可包括用于存储3比特数据的三级单元(TLC)或用于存储4比特数据的四级单元(QLC),或者可包括用于存储5或更多比特数据的存储器单元。
存储器控制器110和存储器装置130可通过一个或多个通道来传送/接收指令、地址和数据。可由从主机装置200传送的逻辑地址或逻辑块地址(LBA)来定义从主机装置200传送的指令要通过特定通道在存储器装置的特定存储区域中执行。
主机装置200可基于一个或多个电子电路、芯片和装置的操作向主机装置200的用户提供各种服务。根据实施例,主机装置200可执行用于处理用户所请求的任务的各种操作并且可将任务结果提供给用户。根据实施例的主机装置200可包括应用程序。
另外,主机装置200可包括至少一个操作系统(OS),并且OS可总体管理和控制主机装置200的功能和操作,并且可提供主机装置200与使用存储器系统10的用户之间的相互操作。这里,OS可支持与用户的使用目的和可用性对应的功能和操作,并且例如,可基于主机装置200的移动性被分类为一般OS和移动OS。
一般OS可被分类为个人OS和企业OS。例如,个人OS可以是专门支持针对一般用户的服务提供功能的系统并且可包括Windows和Chrome,企业OS可以是专门确保和支持高性能的系统并且可包括Windows server、Linux和Unix。OS中的移动OS可以是专门支持向用户提供移动服务的功能和系统的省电功能的系统并且可包括例如android、iOS和Windowsmobile。在实施例中,主机装置200可包括多个OS并且还可执行用于利用存储器系统10执行与用户请求对应的操作的OS。这里,主机可将与用户请求对应的多个指令传送至存储器系统10,因此存储器系统10可执行与指令对应的操作(即,与用户请求对应的操作)。
根据实施例的主机装置200可包括用于支持UFS协议的UFS主机控制驱动器。然而,本发明构思不限于此,主机装置200可包括用于支持嵌入式多媒体卡(eMMC)协议或非易失性存储器快速(NVMe)协议的驱动器。
主机装置200可包括处理器210和主机存储器230。
处理器210可控制主机装置200的总体操作,更详细地,可控制配置主机装置200的其它元件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。在实施例中,处理器210可被实现为包括专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)的操作处理器(例如,中央处理单元(CPU)、图形处理单元(GPU)、应用处理器(AP)等),但不限于此。
主机存储器230可包括易失性存储器或非易失性存储器。例如,主机存储器230可以是易失性存储器并且可包括诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、低功率双倍数据速率(LPDDR)SDRAM、图形双倍数据速率(GDDR)SDRAM、Rambus动态随机存取存储器(RDRAM)、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM或DDR5 SDRAM的动态随机存取存储器(DRAM)。另外,主机存储器230可以是非易失性存储器并且可包括应用了各种类型的存储器的装置,各种类型的存储器诸如NAND型闪存、磁性RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FeRAM)、相位RAM(PRAM)、电阻RAM(RRAM)、纳米管RAM、聚合物RAM(PoRAM)、纳米浮栅存储器(NFGM)、全息存储器、分子电子存储器和绝缘体电阻变化存储器。
根据实施例,主机存储器230可支持用于使用处理器210来处理数据的缓冲功能。根据实施例,主机存储器230可存储用于使用处理器210来执行任务的处理代码。根据实施例,主机存储器230可缓冲基于从存储装置100请求的存储器操作的结果。根据实施例,主机存储器230可存储要请求写入存储装置100中的数据。
根据实施例,处理器210和主机存储器230可被实现为单独的半导体芯片。可替换地,在实施例中,处理器210和主机存储器230可被集成到同一半导体芯片中。例如,处理器210可以是应用处理器中包括的多个模块之一,并且应用处理器可被实现为系统芯片(SoC)。另外,主机存储器230可包括应用处理器中所包括的嵌入式存储器,或者可包括设置在应用处理器外部的存储器装置或存储器模块。
主机装置200还可包括与存储装置100的驱动关联的各种装置。例如,主机装置200还可包括诸如主机应用程序或装置驱动器的软件模块,并且软件模块可被加载到主机存储器230并且可由处理器210执行。
存储装置100和主机装置200可通过各种类型的接口彼此通信。根据实施例,存储装置100和主机装置200可通过诸如通用闪存(UFS)、高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(ISCS)或串行附接SCSI(SAS)的标准接口彼此连接。主机装置200和存储装置100中的每一个可基于应用于其的接口的协议来生成分组(packet)并且可传送分组。此外,用于存储装置100和主机装置200之间的通信的接口可应用于存储器系统10,并且例如可包括诸如并行高级技术附件(PATA)、外围组件互连(PCI)、PCI快速(PCI-Express,PCI-E)、IEEE 1394、通用串行总线(USB)、安全数字(SD)卡、多媒体卡(MMC)、嵌入式多媒体卡(eMMC)、紧凑闪存(CF)卡接口、增强小型磁盘接口(ESDI)、集成驱动电子设备(IDE)和移动工业处理器接口(MIPI)的各种接口。
随着机器学习被广泛使用并且所处理的数据的大小和量增加,存储器系统10可能需要高计算性能和低功率。为了使主机装置200执行任务,主机装置200可将存储在存储装置100中的处理代码加载到主机存储器230,并且处理器210可将加载的数据解密。在主机装置200和存储装置100之间执行数据通信的同时,可能出现处理时间的延迟和开销,并且可能由于装置之间的交互而导致出现热量和功耗。例如,在从存储器装置130向主机存储器230传送数据的同时,处理可能延迟并且可能出现功耗。
在根据实施例的存储器系统10中,存储装置100可直接执行处理代码,因此主机装置200和存储装置100之间的开销和功耗可降低。另外,根据实施例的存储器系统10可与主机装置200一起使用具有空闲状态的存储装置100的计算性能,因此存储器系统10可执行计算资源的分配和并行处理,从而改进存储器系统10的总体性能。另外,根据实施例的存储器系统10可降低功率和热量的出现。
图2A是示出根据实施例的存储器装置130的框图,图2B是示出根据实施例的逻辑单元LU的框图。将结合图1来描述图2A和图2B。
参照图2A,存储器装置130可包括启动区域140、用户数据区域150和公知区域160。
逻辑单元(LU)可以是处理SCSI任务并指定外部地址以用于执行操作管理功能的独立功能单元。例如,逻辑单元(LU)可用于存储启动代码、应用程序代码和海量存储数据应用程序。
存储器装置130可包括与逻辑单元(LU)对应的启动区域140、用户数据区域150和公知区域160。启动区域140、用户数据区域150和公知区域160中的每一个可包括至少一个逻辑单元(LU)。然而,图2A所示的逻辑单元的数量仅是示例,逻辑单元的数量不限于此。
启动区域140可包括配置文件系统所需的基本信息。在实施例中,启动区域140可包括用于使得文件系统能够访问卷(volume)的信息。例如,启动区域140可包括操作存储器系统的OS所使用的加载器,启动区域140可加载OS的内核文件。
启动区域140可被分配给存储器装置130的分区的第一块或第一块组。在实施例中,启动区域140可包括第零逻辑单元(LU0)141和第一逻辑单元(LU1)143,并且第零逻辑单元(LU0)141和第一逻辑单元(LU1)143中的每一个可包括启动所使用或需要的信息。
用户数据区域150可基本上存储用户的数据。根据实施例,用户数据区域150可存储通过主机装置200请求存储在存储装置100中的数据。在实施例中,用户数据区域150可包括第二逻辑单元至第(N-1)逻辑单元(LU2至LU(N-1))151至155。第二逻辑单元至第(N-1)逻辑单元(LU2至LU(N-1))151至155可存储用户数据。
公知区域160可包括用于针对SCSI或UFS标准定义的特定功能的指令。根据实施例,公知区域160可包括诸如报告LUNS逻辑单元167、UFS装置逻辑单元165、启动逻辑单元164和RPMB(重放保护存储器块)逻辑单元163的逻辑单元,并且各个逻辑单元可包括用于提供特定功能的指令。公知区域160的各个逻辑单元可包括公知逻辑单元号(W-LUN)。公知区域160也可被描述为标准功能区域。
在实施例中,公知区域160可被定义为仅处理特定指令。例如,当定义的指令以外的指令被输入到公知区域160时,可输出指示“无效指令”的响应。
存储内计算逻辑单元(ISC_LU)161可存储从主机装置200提供的处理代码。根据实施例,存储内计算逻辑单元161可存储处理代码,以使得在存储装置(图1的100)的核心(图1的111)中执行任务。根据实施例,处理代码可由存储内计算逻辑单元161加载到子存储器(图1的113),然后可被核心111获取。
根据实施例,可基于存储装置100的核心111的数量提供多个存储内计算逻辑单元161。根据实施例,当核心111的数量为k(其中k是自然数)个时,存储器装置130可包括k个存储内计算逻辑单元161。根据实施例,当存储装置100包括多个核心时,多个核心中的每一个可从对应的存储内计算逻辑单元161获取处理代码。
RPMB逻辑单元163可防止重写。UFS装置逻辑单元165可支持基于UFS标准的主机装置200和存储装置100之间的协作。报告LUNS逻辑单元167可提供逻辑单元的清单。
参照图2B,逻辑单元LU可包括两个平面(例如,第一平面和第二平面)PLANE1和PLANE2。
第一平面PLANE1可包括高速缓冲寄存器181_1、数据寄存器182_1、第一块183_1以及第二块184_1至第m块185_1,第二平面PLANE2可包括高速缓冲寄存器181_2、数据寄存器182_2、第一块183_2以及第二块184_2至第m块185_2。
高速缓冲寄存器181_1可管理数据通信。在实施例中,当作为存储器操作执行读操作时,高速缓冲寄存器181_1可从数据寄存器182_1接收数据并且可将所接收的数据作为数据DQ提供给例如数据引脚/端子。在实施例中,当作为存储器操作执行写操作时,高速缓冲寄存器181_1可将来自数据DQ(例如,来自数据引脚/端子)的数据提供给数据寄存器182_1。例如,连接到数据DQ的引脚的数量可为8,并且数据DQ可传送8比特数据。例如,高速缓冲寄存器181_1的大小可为2048字节或2176字节(包括预备空间),但不限于此。
可控制数据寄存器182_1以页为单位处理数据。在实施例中,当高速缓冲寄存器181_1访问数据寄存器182_1时,数据寄存器182_1可将数据传送至高速缓冲寄存器181_1,因此可允许数据寄存器182_1的状态为可访问状态,并且可从第一块183_1至第m块185_1中的每一个接收下一页的数据。例如,高速缓冲寄存器181_1的大小可为2048字节或2176字节(包括预备空间),但不限于此。
第一块183_1至第m块185_1中的每一个可包括多个页(其中m是大于1的自然数)。
第二平面PLANE2的各个元件可提供与上述第一平面PLANE1的各个元件相似的功能,因此省略重复的描述。各个平面可以是独立且相等的,但是可与存储器的地址交织。例如,奇数编号的存储器可被分配给第一平面PLANE1,偶数编号的存储器可被分配给第二平面PLANE2。
在实施例中,一个页的大小可为2048字节或2176字节(包括预备空间),但不限于此。例如,一个块可包括64个页,但不限于此。例如,包括在第一平面PLANE1中的块的数量可为1024,但不限于此。一个逻辑单元LU可包括两个平面,因此根据指派的数值,一个逻辑单元LU可为2176兆字节(Mb)。
在图2B中,为了描述方便,示出两个平面配置逻辑单元LU,但本发明构思不限于此。
根据实施例,一个存储器裸片可包括高速缓冲寄存器181_1或181_2、数据寄存器182_1或182_2以及第一块183_1至第m块185_1或第一块183_2至第m块185_2。根据实施例,包括在存储器装置(图2A的130)中的存储器裸片可包括一个或多个平面PLANE1或PLANE2。
根据实施例,类似图2B的例示,逻辑单元LU可被配置为一个存储器裸片中所包括的一个或多个平面PLANE1或PLANE2的集合。例如,一个存储器裸片可包括至少一个逻辑单元LU。例如,一个存储器裸片可为8千兆字节(Gb),第零逻辑单元LU0(图2A的141)可为1Gb,第一逻辑单元LU1(图2A的143)可为2Gb,另外4Gb可被分配给用户数据区域(图2A的150)和公知区域(图2A的160)。
根据实施例,与图2的例示不同,逻辑单元LU可被配置为一个或多个存储器裸片的集合。例如,逻辑单元LU可包括两个或更多个存储器裸片,因此逻辑单元LU可包括多个平面。例如,一个存储器裸片可为8Gb,第零逻辑单元(LU0)141可以是两个存储器裸片的集合并且可被设定为16Gb。
根据实施例,逻辑单元LU不限于存储器裸片的类型和包括在存储器裸片中的平面的数量,可以是各种组合并且可以是数据处理的单位。
图3A和图3B是示出根据实施例的公知区域的表。
参照图3A,逻辑单元LU可具有可扩展地址,独立地处理SCSI任务,并且执行任务管理功能。逻辑单元LU可独立于另一逻辑单元LU。UFS可支持专用于bMaxNumberLU的特定数量的逻辑单元。逻辑单元LU可存储启动代码、应用程序代码和海量存储数据应用程序。公知区域160的各个逻辑单元可包括公知逻辑单元号(W-LUN)。
根据实施例,8比特的逻辑单元号(LUN)字段可包括在UFS协议信息单元(UPIU)中。UPIU可以是UFS主机装置与UFS存储装置之间的UFS传输协议(UTP)层中的交换单元。8比特的LUN字段可提供LUN或W-LUN。
在实施例中,比特“0”或“1”可被分配给作为LUN字段的最高有效位(MSB(即,第七位))的WLUN_ID。例如,当LUN字段的最高有效位(MSB)对应于公知逻辑单元以外的逻辑单元时,WLUN_ID可被设定为“0”,当LUN字段的最高有效位(MSB)对应于公知逻辑单元时,WLUN_ID可被设定为“1”。根据实施例,当检查LUN字段的最高有效位时,可确定逻辑单元的类型。
在实施例中,LUN值或W-LUN值可被设定在与剩余位(即,第零位至第六位)对应的UNIT_NUMBER_ID中。根据实施例,当检查LUN字段的最高有效位以外的剩余位时,可确定逻辑单元的唯一编号。例如,LUN值或W-LUN值可大于或等于0且小于或等于127,但不限于此。
参照图3B,将描述公知区域160中定义的逻辑单元(例如,报告LUNS逻辑单元(图2A的167)、UFS装置逻辑单元(图2A的165)、启动逻辑单元和RPMB逻辑单元(图2A的163)。
报告LUNS逻辑单元167可被定义在SCSI主命令(SPC)中并且可提供逻辑单元的清单。报告LUNS指令可允许应用客户端发出请求以接收与存储器系统关联的特定信息。
UFS装置逻辑单元165可支持装置级别的协作。例如,公知区域160可支持诸如电源模式的控制和装置擦拭的协作。
启动逻辑单元可基于主机装置200的指定来为包括启动代码的真实逻辑单元提供虚拟参考。当系统开始操作以访问启动代码时,可读取启动逻辑单元。
RPMB逻辑单元163可基于RPMB安全性的定义使用其独立进程和存储器空间,因此可提供RPMB功能。
下面将描述公知区域160中定义的逻辑单元的W-LUN和LUN字段与报告LUNS逻辑单元167对应的示例。报告LUNS逻辑单元167的W-LUN可被设定为十六进制数“01h(十六(hexadeca))”,并且LUN字段可被设定为十六进制数“81h”。根据实施例,LUN字段的十六进制数“81h”可以是二进制数“1000_0001”。参考图3A中对LUN字段的比特分配,报告LUNS逻辑单元167的LUN字段的最高有效位(MSB)可为“1”,因此UFS存储装置可确定关于“公知逻辑单元”的信息。
根据实施例,存储装置(图1的100)可以是公知逻辑区域并且可包括存储内计算逻辑单元(图1的161)。根据实施例,存储内计算逻辑单元161的LUN可被设定为十六进制数“B8h”。然而,这仅是实施例,存储内计算逻辑单元161的LUN可被设定为各种十六进制数,其中二进制数的最高有效位为“1”。
根据实施例,可基于存储装置100的核心111的数量提供多个存储内计算逻辑单元161。在这种情况下,多个存储内计算逻辑单元中的每一个的LUN可被设定为“B8h”、“B9h”和“BAh”以等于核心111的数量。
图4是示出根据实施例的存储器系统10a的框图。图4可以是图1的存储器系统10的实现的示例。将结合图1描述图4。
参照图4,存储器系统10a可包括存储器控制器110a、存储器装置130a和主机装置200。存储器控制器110a可包括核心111a和子存储器113a,存储器装置130a可包括用户数据区域150a和存储内计算逻辑单元161a,并且主机装置200可包括处理器210。处理器210、子存储器113a、核心111a和存储内计算逻辑单元161a以及用户数据区域150a可分别提供与上面各自参照图1描述的处理器210、子存储器113、核心111和存储内计算逻辑单元161以及用户数据区域150类似的功能,省略重复的描述。
在实施例中,主机装置200可向存储器控制器110a提供命令CMD,并且作为其结果,可接收响应RESP。另外,主机装置200可向存储器控制器110a提供数据DATA。在实施例中,为了描述方便,描述了数据DATA被提供给存储器控制器110a,但是可理解,数据DATA被直接提供给存储器装置130a并且通过页缓冲器提供给存储器单元阵列(未示出)。
根据实施例,当存储器控制器110a处于存储器装置130a不执行存储器操作(例如,读操作、写操作或擦除操作)的空闲状态时,可使用存储器控制器110a中包括的核心111a的计算性能。代替在主机装置200中执行的算术运算,存储数据的存储装置中的算术运算可被称为存储内计算(ISC)。另外,不在主机装置200的处理器210中执行,而是在设置在相对靠近存储数据的存储器空间的位置的处理装置中执行任务的操作可被称为近数据处理(NDP)。根据实施例,存储器控制器110a的核心111a可分配和处理主机装置200的一些任务,因此可执行ISC或NDP。
根据实施例,主机装置200可向存储内计算逻辑单元161a提供处理代码PC。处理代码PC可包括执行主机装置200所需的任务的程序代码。例如,处理代码PC可包括以编程语言编写的用于压缩、加密、量化、矩阵运算、浮点转换、树搜索、交换、重复移除、修剪、渲染或数据挖掘的代码。根据实施例,不需要实时处理或需要海量重复操作的任务可适合于NDP。然而,任务不限于上述处理,并且可表示要求存储器系统10a的计算性能的各种执行操作。另外,可基于算法的改进来更新处理代码PC,并且更新的处理代码可被再次存储在存储内计算逻辑单元161a中。在实施例中,可执行处理代码PC的重新编程。
根据实施例,主机装置200可加密并提供处理代码PC。根据实施例,主机装置200可向存储器控制器110a请求公钥,并且存储器控制器110a可确定加密方法并且可基于所确定的加密方法向主机装置200提供公钥。主机装置200可基于公钥提供处理代码PC。在实施例中,公钥加密方法可使用诸如Rivest-Shamir-Adleman(RSA)加密方法或数字签名算法(DSA)加密方法的加密方法,但不限于此,各种加密方法可应用于本发明构思。
根据实施例,存储器控制器110a可基于私钥来验证通过基于公钥加密而获得的加密的处理代码。在实施例中,存储器控制器110a可基于私钥比较散列值以确定是否从已认证的主机装置200提供处理代码PC。当验证成功时,存储器控制器110a可将处理代码PC存储在存储内计算逻辑单元161a中。
根据实施例,主机装置200可向存储装置提供包括存储内计算逻辑单元161a的大小、数量和激活与否的描述。存储装置可基于主机装置200的请求来分配存储内计算逻辑单元161a的大小和数量并且可设定存储内计算逻辑单元161a激活与否。例如,主机装置200可基于存储器控制器110a中包括的核心111a的数量来请求计算逻辑单元LU的大小。例如,当存在多个核心时,主机装置200可向各个核心不同地分配和激活计算逻辑单元LU以不同地执行任务。
根据实施例,主机装置200可检查存储器控制器110a的状态。存储器控制器110a可向主机装置200提供包括核心数量、各个核心的制造商、序列号和类型、TCM的地址、TCM的大小、包括在公知区域160中的逻辑单元的数量的信息。
根据实施例,当存储器控制器110a处于不执行存储器操作的空闲状态时,存储器控制器110a可基于主机装置200的激活请求将处理代码PC加载到存储内计算逻辑单元161a。在实施例中,存储器控制器110a可将处理代码PC从存储内计算逻辑单元161a加载到子存储器113a。
用户数据区域150a可包括第二逻辑单元151a、第三逻辑单元153和第(N-1)逻辑单元155a。为了执行任务,可能需要从存储器读取由用户输入或先前存储的目标数据。在实施例中,要从存储器读取的目标数据可被定义为读取数据RDAT。存储器装置130a可将读取数据RDAT存储在用户数据区域150a的第二逻辑单元151a、第三逻辑单元153a和第(N-1)逻辑单元155a之一中。例如,第二逻辑单元151a可存储读取数据RDAT。
根据实施例,基于主机装置200的激活请求,核心111a可获取加载到子存储器113a的处理代码PC并且可从用户数据区域150a接收读取数据RDAT。
根据实施例,核心111a可基于主机装置200的执行请求使用读取数据RDAT执行任务。作为核心111a的任务执行结果,任务结果可再次被存储在用户数据区域150a中。在实施例中,存储在用户数据区域150a的逻辑单元中的任务结果可被定义为编程数据PDAT。根据实施例,任务可在核心111a中执行,并且作为其结果的编程数据PDAT可被存储在用户数据区域150a的第二逻辑单元151a、第三逻辑单元153a和第(N-1)逻辑单元155a之一中。例如,第三逻辑单元153a可存储编程数据PDAT。
根据实施例,核心111a可将编程数据PDAT存储在存储器装置130a中,因此可不向主机装置200提供所有任务结果。根据实施例,核心111a可向主机装置200仅提供存储在存储器装置130a中的编程数据PDAT的地址ADDR。
根据实施例,存储器系统10a可使用ISC(或NDP)来执行计算资源的分配和并行化。另外,根据实施例的存储器系统10a可降低功耗和延迟时间并且可增加处理速度。
在图4中,主机装置200与存储器控制器110a之间的地址ADDR、命令CMD、响应RESP和数据DATA通信以及主机装置200与存储内计算逻辑单元161a之间的处理代码PC通信在概念上示出了在两方之间发送的信号,这不能解释为各个信号的通信需要单独的物理信号线。这可与下面给出的图5的描述相同。下面将参照图19更详细地描述用于主机装置200与包括存储器控制器110a和存储内计算逻辑单元161a的存储装置(图1的100)之间的通信的物理信号线。
图5是示出根据实施例的存储器系统10b的框图。图5可以是图1的存储器系统10的实现的示例。将结合图1和图4描述图5。
参照图5,存储器系统10b可包括存储器控制器110b、存储器装置130b和主机装置200。存储器控制器110b可包括第一核心112b_1、第二核心112b_2、第一子存储器114b_1和第二子存储器114b_2,存储器装置130b可包括用户数据区域150b和存储内计算逻辑单元161b,并且存储内计算逻辑单元161b可包括第一存储内计算逻辑单元162b_1和第二存储内计算逻辑单元162b_2。主机装置200可包括处理器210。处理器210、第一子存储器114b_1和第二子存储器114b_2、第一核心112b_1和第二核心112b_2、第一存储内计算逻辑单元162b_1和第二存储内计算逻辑单元162b_2以及用户数据区域150b可分别提供与上面各自参照图4描述的处理器210、子存储器113a、核心111a和存储内计算逻辑单元161a以及用户数据区域150a类似的功能,省略重复的描述。
存储器控制器110b可包括多个核心以及作为紧密耦接到核心的存储器的多个子存储器。在实施例中,存储器控制器110b可包括第一核心112b_1、紧密耦接到第一核心112b_1的第一子存储器114b_1、第二核心112b_2以及紧密耦接到第二核心112b_2的第二子存储器114b_2。第一核心112b_1和紧密耦接到第一核心112b_1的第一子存储器114b_1可被称为第一处理单元115b_1,第二核心112b_2和紧密耦接到第二核心112b_2的第二子存储器114b_2可被称为第二处理单元115b_2。
第一核心112b_1和第二核心112b_2中的每一个可用作用于执行主机装置200所请求的多个任务中的每一个的专用核心。根据实施例,第一核心112b_1可专用于处理多个任务中的第一任务或者可主要处理第一任务,第二核心112b_2可专用于处理多个任务中的第二任务或者可主要处理第二任务。例如,第一核心112b_1可主要处理压缩,并且第二核心112b_2可主要处理浮点运算。在图5中,核心和子存储器中的每一者被示出为两个,但这是为了描述方便,多个核心和子存储器中的每一个可设置在存储器控制器110b中。
存储内计算逻辑单元161b可包括与核心的数量相等的多个逻辑单元。根据实施例,当提供两个核心时,可提供第一存储内计算逻辑单元162b_1和第二存储内计算逻辑单元162b_2。第一存储内计算逻辑单元162b_1可存储用于执行第一任务的处理代码,第二存储内计算逻辑单元162b_2可存储用于执行第二任务的处理代码。例如,第一存储内计算逻辑单元162b_1可存储用于压缩的处理代码,第二存储内计算逻辑单元162b_2可存储用于浮点运算的处理代码。
根据实施例,主机装置200可向第一存储内计算逻辑单元162b_1和第二存储内计算逻辑单元162b_2中的每一个提供处理代码PC。处理代码PC可包括用于第一任务的处理代码和用于第二任务的处理代码。存储器装置130b可对散列验证成功的处理进行解码并且可存储用于与第一存储内计算逻辑单元162b_1和第二存储内计算逻辑单元162b_2中的每一个对应的任务的处理代码。
根据实施例,第一处理单元115b_1可将用于第一任务的处理代码加载在第一存储内计算逻辑单元162b_1中。在实施例中,第一子存储器114b_1可加载用于第一任务的处理代码,并且第一核心112b_1可获取用于第一任务的处理代码并且可将第一读取数据加载在第一读取区域(R1)151b中,从而执行第一任务。任务结果可被存储在第一编程区域(P1)155b中。在实施例中,第二子存储器114b_2可加载用于第二任务的处理代码,并且第二核心112b_2可获取用于第二任务的处理代码并且可将第二读取数据加载在第二读取区域(R2)153b中,从而执行第二任务。任务结果可被存储在第二编程区域(P2)157b中。
用于第一任务的处理代码、用于第二任务的处理代码、第一读取数据、第二读取数据、第一编程数据和第二编程数据可使用总线进行通信。
第一核心112b_1可基于第一任务的执行结果向主机装置200提供存储在第一编程区域155b中的数据的地址,第二核心112b_2可基于第二任务的执行结果向主机装置200提供存储在第二编程区域157b中的数据的地址。
图6是示出根据实施例的存储装置100的操作方法的流程图。将结合图1和图4描述图6。
在操作S110中,处理代码PC被存储在存储内计算逻辑单元ISC_LU中。根据实施例,主机装置(图1的200)可将用于执行任务的处理代码(图4的PC)存储在存储内计算逻辑单元161中。根据实施例,存储器控制器(图1的110)可使用散列值来验证加密的处理代码并且可将验证成功的处理代码存储在存储内计算逻辑单元161中。
在操作S130中,当存在多个核心时,处理代码被加载到作为紧密耦接到多个核心当中执行任务的目标核心的存储器的子存储器。根据实施例,处理代码PC可被加载到紧密耦接到目标核心的子存储器(图1的113),目标核心是执行任务的核心(图1的111)。在实施例中,目标核心111可处于不处理存储器操作的空闲状态。
在操作S150中,获取处理代码PC。根据实施例,目标核心111可获取处理代码PC。操作S150、操作S130或操作S110可被称为操作。核心的激活可表示任务的执行就绪完成。
在操作S170中,核心基于主机的执行请求来执行处理代码PC,并且执行任务。根据实施例,核心111可参考包括在用户数据区域(图1的150)中的读取数据(图4的RDAT),因此可执行任务。
图7A和图7B是示出根据实施例的响应和指令中的每一个的配置的表。将结合图1描述图7A和图7B。
UFS协议信息单元(UPIU)可以是基于UFS标准的主机装置与基于UFS标准的存储装置之间的UFS传输协议(UTP)中的交换单元。在实施例中,主机装置(图1的200)和存储装置(图1的100)可通过命令UPIU和响应UPIU来交换信息。
参照图7A,由基于UFS标准的主机装置200传送至存储装置100的命令UPIU可由32个区域组成,并且这32个区域中的每一个可为1字节。在实施例中,可通过对由从第十六区域至第三十一区域的16个字节组成的命令描述块(CDB)解码来检查命令的类型或种类。根据实施例,当分配给第二区域的LUN的最高有效位(MSB)为1时,可确定公知逻辑单元,并且当为0时,可确定一般逻辑单元。
参照图7B,从基于UFS标准的存储装置100传送至基于UFS标准的主机装置200的响应UPIU可由32字节组成。基于将与作为命令UPIU的第三区域的“任务标签”对应的值写入第三区域中,响应UPIU可返回是否正常接收命令UPIU。另外,根据实施例,当正常处理命令UPIU时,第六区域的“响应”和第七区域的“状态”值可返回0。当第六区域的比特值和第七区域的比特值全部为0时,命令UPIU的传送可表示成功。
命令UPIU和响应UPIU可分别排队。例如,命令UPIU和响应UPIU可分别对64个命令或响应进行排队。当可排队时,可同时或一次传送和处理多个命令和/或响应。
图8是详细示出根据实施例的存储器系统的操作方法的流程图。将结合图1和图4描述图8。图8详细示出图6的操作S110。图8至图11还包括存储装置100以外的主机装置200的描述,用于存储器系统(图1的10)的总体描述。
在操作S111中,主机装置200将写命令(W_CMD)UPIU传送至存储装置100。
在操作S112中,存储装置100基于写命令UPIU来检查要写入的数据的大小。根据实施例,写命令UPIU可包括关于处理代码(图4的PC)的大小信息。包括在存储装置100中的存储内计算逻辑单元(图1的161)在存储空间的大小方面可能受到限制。当处理代码PC的大小大于存储内计算逻辑单元161的大小时,根据实施例的存储装置100可响应以按存储内计算逻辑单元161的大小对处理代码PC的大小进行分段并分开地多次接收处理代码PC。
在操作S113中,存储装置100将第一传送就绪(RTT)UPIU(RTT1UPIU)传送至主机装置200,并且在操作S114中,存储装置100可将第二RTT UPIU(RTT2 UPIU)传送至主机装置200。根据实施例,存储装置100可检查作为要写入的数据的处理代码PC的大小,并且当处理代码PC的大小大于存储内计算逻辑单元161时,存储装置100可执行处理以使得处理代码PC被分割为两个代码并被接收。
在操作S115中,主机装置200按RTT UPIU的数量对数据(即,处理代码)进行分段和加载。主机装置200可将处理代码PC分段为与存储内计算逻辑单元161的大小对应。
在操作S116中,主机装置200传送第一数据输出UPIU(D_OUT1UPIU)。在操作S117中,主机装置200可传送第二数据输出UPIU(D_OUT2 UPIU)。第一数据输出UPIU(D_OUT1UPIU)和第二数据输出UPIU(D_OUT2 UPIU)可各自包括处理代码PC。
在操作S118中,存储装置100检查接收是否完成。在实施例中,存储装置100可识别作为操作S112的结果传送的RTT UPIU的数量,因此可检查是否接收到数量等于与之对应的数量的数据输出UPIU。
在操作S119中,当处理代码PC的全部接收完成时,向主机装置200传送写响应(W_RESPONSE)UPIU。
图9是详细示出根据实施例的存储器系统的操作方法的流程图。图9详细示出图6的操作S130。将结合图1和图4描述图9。
在操作S131中,第一补丁加载命令(P_CMD1)UPIU被传送到存储装置100。在实施例中,当存储装置100处于不执行存储器操作的空闲状态时,主机装置200可发出或传送第一补丁加载命令P_CMD1。
在操作S132中,存储在存储内计算逻辑单元161中的处理代码被加载到紧密耦接到核心的子存储器。根据实施例,存储装置100可将存储在存储内计算逻辑单元161中的第一处理代码获取到第一子存储器113。
在操作S133中,传送第一补丁加载响应(P_RESPONSE1)UPIU。根据实施例,当补丁加载操作完成时,存储装置100将第一补丁加载响应P_RESPONSE1传送至主机装置200。
在操作S134中,第二补丁加载命令(P_CMD2)UPIU被传送至存储装置100。在实施例中,存储装置100可包括多个核心,并且这多个核心可分别执行不同的任务,因此可发出数量等于任务的数量的补丁加载命令。
在操作S135中,存储在存储内计算逻辑单元161中的处理代码被加载到紧密耦接到核心的子存储器。根据实施例,存储装置100可将存储在存储内计算逻辑单元161中的第二处理代码加载到第二子存储器113。
在操作S136中,可传送第二补丁加载响应(P_RESPONSE2)UPIU。根据实施例,当补丁加载操作完成时,存储装置100可将第二补丁加载响应P_RESPONSE2传送至主机装置200。
图10是详细示出根据实施例的存储器系统的操作方法的流程图。图10详细示出图6的操作S150。将结合图1和图4描述图10。
在操作S151中,第一获取加载命令(F_CMD1)UPIU被传送至存储装置100。在实施例中,当存储装置100处于不执行存储器操作的空闲状态时,主机装置200可发出或传送第一获取加载命令F_CMD1。
在操作S152中,加载到子存储器的处理代码PC被获取在一个或多个核心中的要处理任务的目标核心111中。根据实施例,目标核心111可获取存储在第一子存储器113中的第一处理代码。
在操作S153中,传送第一获取响应(F_RESPONSE1)UPIU。根据实施例,当获取操作完成时,存储装置100将第一获取响应F_RESPONSE1传送至主机装置200。
在操作S154中,可传送第二获取加载命令(F_CMD2)UPIU。在实施例中,存储装置100可包括多个核心,并且这多个核心可分别执行不同任务,因此可发出数量等于任务的数量的获取命令。
在操作S155中,加载到子存储器的处理代码PC可被获取在一个或多个核心中的要处理任务的目标核心111中。根据实施例,可激活多个核心中的每一个,因此用于执行获取操作的目标核心可每次不同。根据实施例,目标核心111可获取存储在第二子存储器113中的第二处理代码。
在操作S156中,可传送第二获取响应(F_RESPONSE2)UPIU。根据实施例,当获取操作完成时,存储装置100可将第二获取响应F_RESPONSE2传送至主机装置200。
图11是详细示出根据实施例的存储器系统的操作方法的流程图。图11详细示出图6的操作S170。将结合图1和图4描述图11。
在操作S171中,第一执行命令(O_CMD1)UPIU被传送至存储装置100。在实施例中,主机装置200可发出第一执行命令O_CMD1并将其传送至存储装置100。
在操作S172中,执行与第一处理代码对应的第一任务的处理。根据实施例,第一处理代码可与第一任务的执行关联。
在操作S173中,传送第一执行响应(O_RESPONSE1)UPIU。根据实施例,当执行操作完成时,存储装置100可将第一执行响应O_RESPONSE1传送至主机装置200。
在操作S174中,第二执行命令(O_CMD2)UPIU可被传送至存储装置100。在实施例中,存储装置100可包括多个核心,并且这多个核心可分别执行不同的任务,因此可发出数量等于任务的数量的执行命令。
在操作S175中,可执行与第二处理代码对应的第二任务的处理。根据实施例,第二处理代码可与第二任务的执行关联并且可独立于第一任务。
在操作S176中,可传送第二执行响应(O_RESPONSE2)UPIU。根据实施例,当执行操作完成时,存储装置100可将第二执行响应O_RESPONSE2传送至主机装置200。第二执行响应O_RESPONSE2可与存储基于第二执行的第二任务的结果的地址一起提供。
图12是详细示出根据实施例的存储装置的操作方法的流程图。
结合图1参照图12,在操作S211中,存储器控制器110接收写命令W_CMD。根据实施例,写命令W_CMD可从主机装置200传送至包括存储器控制器110的存储装置100。
在操作S212中,存储器控制器110请求状态信息STATUS。在实施例中,状态信息STATUS可包括例如核心的数量、各个核心的制造商、序列号和类型、TCM的地址、TCM的大小或者包括在公知区域160中的逻辑单元的数量。在操作S213中,存储器装置130返回状态信息STATUS。
在操作S214中,传送数据。根据实施例,存储器控制器110可基于状态信息STATUS向存储器装置130提供与处理代码PC对应的数据。
在操作S215中,存储器装置130将与处理代码PC对应的数据存储在存储内计算逻辑单元(ISC_LU)161中。根据实施例,提供给存储器装置130的数据可以是存储器控制器110的加密散列验证已成功的数据。
在操作S216中,返回存储完成信息。根据实施例,存储器装置130可接收处理代码PC的分段和传送,将各个分段的处理代码存储在逻辑单元中,并且检查存储完成。
在操作S217中,存储器控制器110将写响应W_RESP提供给主机装置200。
在操作S218中,存储器控制器110接收补丁加载命令P_CMD。在实施例中,补丁加载命令P_CMD可包括在从主机装置200提供的命令UPIU中。在操作S219中,存储器控制器110向存储器装置130请求补丁加载操作。在操作S220中,存储器装置130将与处理代码PC对应的数据从存储内计算逻辑单元加载到子存储器。在操作S221中,存储器装置130返回补丁完成信息。在操作S222中,存储器控制器110将补丁加载响应P_RESP提供给主机装置200。
在操作S223中,存储器控制器110接收获取命令F_CMD。在实施例中,获取命令F_CMD可包括在从主机装置200提供的命令UFIU中。在操作S224中,存储器控制器110向存储器装置130请求获取操作。在操作S225中,存储器装置130从子存储器获取与处理代码PC对应的数据。在操作S226中,存储器装置130返回获取完成信息。在操作S227中,存储器控制器110将获取响应F_RESP提供给主机装置200。
在操作S228中,存储器控制器110接收执行命令O_CMD。在实施例中,执行命令O_CMD可包括在从主机装置200提供的命令UOIU中。在操作S229中,存储器控制器110向存储器装置130请求执行操作。在操作S230中,存储器装置130基于来自子存储器的且与处理代码PC对应的数据执行操作。在操作S231中,存储器装置130返回执行完成信息。在实施例中,存储器装置130可向存储器控制器110提供存储有任务结果的地址,并且存储有任务结果的地址可被提供给主机装置200。
图13是详细示出根据实施例的存储器系统的操作方法的流程图。
在操作S311中,请求初始信息。根据实施例,主机装置200可请求关于存储装置100的状态信息STATUS。在实施例中,状态信息STATUS可包括例如核心的数量、各个核心的制造商、序列号和类型、TCM的地址、TCM的大小或者包括在公知区域160中的逻辑单元的数量。在操作S312中,存储装置100可返回状态信息STATUS。
在操作S313中,主机装置200检查存储装置100是否支持存储内计算逻辑单元(ISC_LU)161。当存储装置100不支持存储内计算逻辑单元(ISC_LU)时,不执行ISC的一系列操作。
在操作S314中,主机装置200向存储装置100请求公钥。在操作S315中,存储装置100确定加密方法。加密方法可使用各种基于公钥的加密方法,例如RSA加密方法和DSA加密方法。在操作S316中,存储装置100基于所确定的加密方法向主机装置200提供公钥。
在操作S317中,主机装置200使用公钥对用于任务的处理代码PC进行加密。在操作S318中,主机装置200将加密的数据传送至存储装置100。在实施例中,加密的数据可以是通过基于公钥对处理代码PC进行加密而获得的数据。
在操作S319中,存储装置100基于私钥来验证加密的数据的散列值。在操作S320中,基于验证成功,存储装置100将加密的数据解密并且可将通过解密获得的处理代码存储在存储内计算逻辑单元(ISC_LU)161中。
在操作S321中,主机装置200基于存储装置100的空闲状态来激活目标核心。在实施例中,核心的激活可包括将处理代码获取到紧密耦接到核心的存储器的操作以及使用核心获取处理代码的操作。
在操作S322中,主机装置200将描述传送给存储装置100。根据实施例,描述可包括存储内计算逻辑单元161的大小、数量和激活与否。
在操作S323中,存储装置100将存储在存储内计算逻辑单元161中的处理代码PC加载到目标核心。在实施例中,当目标核心获取处理代码PC时,处理代码PC可准备好执行。
在操作S324中,主机装置200开始处理任务。在操作S325中,请求任务的处理。在操作S326中,存储装置100使用处理代码PC来执行任务。在操作S327中,通过执行任务而获得的任务结果被存储在存储装置100中,并且所存储的数据的地址可被提供给主机装置200。
图14是示出根据实施例的命令的配置的表。
参照图14,供应商命令的配置被分类并示出。根据实施例,供应商命令的操作代码(OPCODE)可被定义为十六进制数“C0h”。
CDB的第一字节区域[0]表示供应商命令,其值可以是十六进制数“C0”。CDB的第二字节区域[1]是用于区分各种供应商命令中的一些的类型的代码值。例如,CDB的第二字节区域[1]可检查存储装置的特定部分的状态,或者可提供要提供给主机装置200的传统供应商功能。
根据实施例,存储内计算逻辑单元161可与对应于CDB的第二字节区域[1]的供应商操作代码部分关联。例如,处理代码可被存储在存储内计算逻辑单元161中,或者可发出激活命令以执行所存储的处理代码。
图15是示出应用了根据实施例的存储装置100的系统1000的框图。
图1的存储器系统10可应用于图15。图15的系统1000可基本上是诸如便携式通信终端(例如,移动电话)、智能电话、平板个人计算机(PC)、可穿戴装置、医疗保健装置或物联网(IOT)装置的移动系统。然而,图15的系统1000未必限于移动系统,可以是PC、膝上型计算机、服务器、媒体播放器或汽车装置(例如,导航装置)。
参照图15,系统1000可包括主处理器1100、存储器(例如,1200a和1200b)和存储装置(例如,1300a和1300b)。另外,系统1000可包括图像捕获装置1410、用户输入装置1420、传感器1430、通信装置1440、显示器1450、扬声器1460、供电装置1470和连接接口1480中的至少一个。
主处理器1100可控制系统1000的所有操作,更具体地,包括在系统1000中的其它组件的操作。主处理器1100可被实现为通用处理器、专用处理器或应用处理器。
主处理器1100可包括至少一个CPU核心1110,并且还包括被配置为控制存储器1200a和1200b和/或存储装置1300a和1300b的控制器1120。在一些实施例中,主处理器1100还可包括作为用于高速数据操作(例如,人工智能(AI)数据操作)的专用电路的加速器1130。加速器1130可包括图形处理单元(GPU)、神经处理单元(NPU)和/或数据处理单元(DPU)并且被实现为与主处理器1100的其它组件物理分离的芯片。
存储器1200a和1200b可用作系统1000的主存储器装置。尽管存储器1200a和1200b中的每一个可包括诸如静态随机存取存储器(SRAM)和/或动态RAM(DRAM)的易失性存储器,存储器1200a和1200b中的每一个可包括诸如闪存、相变RAM(PRAM)和/或电阻RAM(RRAM)的非易失性存储器。存储器1200a和1200b可与主处理器1100实现在同一封装件中。
存储装置1300a和1300b可用作非易失性存储装置,其被配置为存储数据而不管是否向其供电,并且具有比存储器1200a和1200b更大的存储容量。存储装置1300a和1300b可分别包括控制器(STRG CTRL)1310a和1310b以及被配置为经由控制器1310a和1310b的控制存储数据的闪存或NVM(非易失性存储器)1320a和1320b。尽管NVM 1320a和1320b可包括具有二维(2D)结构或三维(3D)结构的V-NAND闪存,但是NVM 1320a和1320b可包括其它类型的NVM,例如PRAM和/或RRAM。
存储装置1300a和1300b可与主处理器1100物理分离并且包括在系统1000中或与主处理器1100实现在同一封装件中。另外,存储装置1300a和1300b可具有固态装置(SSD)或存储卡的类型并且通过诸如下面将描述的连接接口1480的接口与系统1000的其它组件可拆卸地组合。存储装置1300a和1300b可以是应用了诸如通用闪存(UFS)、嵌入式多媒体卡(eMMC)或NVM快速(NVMe)的标准协议的装置,但不限于此。
图像捕获装置1410可捕获静止图像或移动图像。图像捕获装置1410可包括相机、摄像机和/或网络摄像头。
用户输入装置1420可接收由系统1000的用户输入的各种类型的数据并且包括触摸板、键区、键盘、鼠标和麦克风。
传感器1430可检测可从系统1000的外部获得的各种类型的物理量,并且将所检测的物理量转换为电信号。传感器1430可包括温度传感器、压力传感器、照度传感器、位置传感器、加速度传感器、生物传感器和/或陀螺仪传感器。
通信装置1440可根据各种通信协议在系统1000外部的其它装置之间发送和接收信号。通信装置1440可包括天线、收发器或调制解调器。
显示器1450和扬声器1460可用作输出装置,其被配置为分别向系统1000的用户输出视觉信息和听觉信息。
供电装置1470可适当地转换从嵌入在系统1000中的电池(未示出)和/或外部电源供应的电力,并且将所转换的电力供应给系统1000的各个组件。
连接接口1480可在系统1000与连接到系统1000并且能够向系统1000发送和从系统1000接收数据的外部装置之间提供连接。连接接口1480可使用各种接口方案实现,例如高级技术附件(ATA)、串行ATA(SATA)、外部SATA(e-SATA)、小型计算机小型接口(SCSI)、串行附接SCSI(SAS)、外围组件互连(PCI)、PCI快速(PCIe)、NVMe、IEEE 1394、通用串行总线(USB)接口、安全数字(SD)卡接口、多媒体卡(MMC)接口、eMMC接口、UFS接口、嵌入式UFS(eUFS)接口和紧凑闪存(CF)卡接口。
图16是示出根据实施例的存储器系统10的框图。图1的存储器系统10的以上描述可在与图16的以下描述不同的范围内应用。
图16是根据示例实施例的存储器系统10的框图。
存储器系统10可包括主机装置200和存储装置100。此外,存储装置100可包括存储器控制器110和存储器装置130。根据示例实施例,主机装置200可包括处理器210和主机存储器230。主机存储器230可用作缓冲存储器,其被配置为暂时存储要发送到存储装置100的数据或从存储装置100接收的数据。
存储装置100可包括被配置为响应于来自主机装置200的请求而存储数据的存储介质。作为示例,存储装置100可包括SSD、嵌入式存储器和可移除外部存储器中的至少一个。当存储装置100是SSD时,存储装置100可以是符合NVMe标准的装置。当存储装置100是嵌入式存储器或外部存储器时,存储装置100可以是符合UFS标准或eMMC标准的装置。主机装置200和存储装置100中的每一个可根据所采用的标准协议来生成分组并发送分组。
当存储装置100的存储器装置130包括闪存时,闪存可包括2DNAND存储器阵列或3D(或竖直)NAND(VNAND)存储器阵列。作为另一示例,存储装置100可包括各种其它类型的NVM。例如,存储装置100可包括磁性RAM(MRAM)、自旋转移矩MRAM、导电桥接RAM(CBRAM)、铁电RAM(FRAM)、PRAM和各种其它类型的存储器。
根据实施例,处理器210和主机存储器230可被实现为分离的半导体芯片。另选地,在一些实施例中,处理器210和主机存储器230可被集成在同一半导体芯片中。作为示例,处理器210可以是应用处理器(AP)中包括的多个模块中的任一个。AP可被实现为系统芯片(SoC)。此外,主机存储器230可以是AP或NVM中包括的嵌入式存储器或位于AP外部的存储器模块。
处理器210可管理将主机存储器230的缓冲区域的数据(例如,写入数据)存储在存储器装置130中的操作或者将存储器装置130的数据(例如,读取数据)存储在缓冲区域中的操作。
存储器控制器110可包括主机接口190、存储器接口120和核心111。此外,存储器控制器110还可包括闪存转换层(FTL)112、分组管理器117、缓冲存储器119、纠错码(ECC)引擎116和高级加密标准(AES)引擎118。存储器控制器110还可包括加载有FTL 112的工作存储器(未示出)。核心111可执行FTL 112以控制对存储器装置130的数据写和读操作。
主机接口190可向主机装置200发送和从主机装置200接收分组。从主机装置200发送到主机接口190的分组可包括要写入存储器装置130的命令或数据。从主机接口190发送到主机装置200的分组可包括对从存储器装置130读取的命令或数据的响应。存储器接口120可将要写入存储器装置130的数据发送到存储器装置130或接收从存储器装置130读取的数据。存储器接口120可被配置为遵循诸如Toggle或开放NAND闪存接口(ONFI)的标准协议。
FTL 112可执行诸如地址映射操作、磨损均衡(wear-leveling)操作和垃圾收集操作的各种功能。地址映射操作可以是将从主机装置200接收的逻辑地址转换为存储器装置130中用于实际存储数据的物理地址的操作。磨损均衡操作可以是通过允许存储器装置130的块均匀地使用来防止特定块的过度劣化的技术。作为示例,磨损均衡操作可使用平衡物理块的擦除计数的固件技术来实现。垃圾收集操作可以是通过在将现有块的有效数据复制到新块之后擦除现有块来确保存储器装置130中的可用容量的技术。
分组管理器117可根据主机装置200同意的接口协议来生成分组,或者解析来自接收自主机装置200的分组的各种类型的信息。另外,缓冲存储器119可暂时存储要写入存储器装置130的数据或要从存储器装置130读取的数据。尽管缓冲存储器119可以是包括在存储控器制器110中的组件,但是缓冲存储器119可在存储器控制器110外部。
ECC引擎116可对从存储器装置130读取的读取数据执行错误检测和纠正操作。更具体地,ECC引擎116可生成要写入存储器装置130的写入数据的奇偶校验位,并且所生成的奇偶校验位可与写入数据一起被存储在存储器装置130中。在从存储器装置130读取数据期间,ECC引擎116可使用与读取数据一起从存储器装置130读取的奇偶校验位来纠正读取数据中的错误,并输出纠错后的读取数据。
AES引擎118可使用对称密钥算法对输入到存储器控制器110的数据执行加密操作和解密操作中的至少一个。
图17是图16的AES引擎118的详细图。AES引擎118可使用AES算法来加密和解密数据并且包括加密器121和解密器123。尽管图17示出加密器121和解密器123被实现为单独的模块的情况,在另一情况下,能够执行加密和解密操作二者的一个模块可被实现在AES引擎118中。存储器119可以是用作缓冲器的易失性存储器或者是NVM。
AES引擎118可接收从存储器119发送的第一数据。加密器121可使用加密密钥对从存储器119发送的第一数据进行加密,并且生成第二数据。第二数据可从AES引擎118发送到存储器119并被存储在存储器119中。
另外,AES引擎118可接收从存储器119发送的第三数据。第三数据可以是利用与用于对第一数据进行加密的加密密钥相同的加密密钥加密的数据。解密器123可利用与用于对第一数据进行加密的加密密钥相同的加密密钥对从存储器119发送的第三数据进行解密,并且生成第四数据。第四数据可从AES引擎118发送到存储器119并被存储在存储器119中。诸如加密器、解密器、不同引擎以及本文所描述的其它块或模块的各种组件可使用例如与软件或固件配对的硬件实现,其被共同配置为执行结合所描述的组件描述的方法和处理。
图18是示出根据实施例的存储器系统10的框图。图1的存储器系统10的以上描述可在与图18的以下描述不同的范围内应用。参照图18,存储器系统10可包括存储器装置130和存储器控制器110。存储器系统10可支持多个通道CH1至CHm,并且存储器装置130可通过多个通道CH1至CHm连接到存储器控制器110。例如,存储器系统10可被实现为诸如SSD的存储装置。
存储器装置130可包括多个NVM装置NVM11至NVMmn。NVM装置NVM11至NVMmn中的每一个可通过与之对应的通路(例如,布线、连接器或线)连接到多个通道CH1至CHm之一。例如,NVM装置NVM11至NVM1n可通过通路W11至W1n连接到第一通道CH1,并且NVM装置NVM21至NVM2n可通过通路W21至W2n连接到第二通道CH2。在示例实施例中,NVM装置NVM11至NVMmn中的每一个可被实现为可根据来自存储器控制器110的单独命令操作的任意存储器单元。例如,NVM装置NVM11至NVMmn中的每一个可被实现为芯片或裸片,但本发明构思不限于此。
存储器控制器110可通过多个通道CH1至CHm向存储器装置130发送和从存储器装置130接收信号。例如,存储器控制器110可通过通道CH1至CHm将命令CMDa至CMDm、地址ADDRa至ADDRm以及数据DATAa至DATAm发送到存储器装置130或者从存储器装置130接收数据DATAa至DATAm。
存储器控制器110可使用通道CH1至CHm中的对应一个选择连接到通道CH1至CHm中的每一个的NVM装置NVM11至NVMmn之一,并且向所选NVM装置发送和从其接收信号。例如,存储器控制器110可从连接到第一通道CH1的NVM装置NVM11至NVM1n中选择NVM装置NVM11。存储器控制器110可通过第一通道CH1将命令CMDa、地址ADDRa和数据DATAa发送到所选NVM装置NVM11或者从所选NVM装置NVM11接收数据DATAa。
存储器控制器110可通过不同的通道并行地向存储器装置130发送和从其接收信号。例如,存储器控制器110可在通过第一通道CH1向存储器装置130发送命令CMDa的同时通过第二通道CH2向存储器装置130发送命令CMDb。例如,存储器控制器110可在通过第一通道CH1从存储器装置130接收数据DATAa的同时通过第二通道CH2从存储器装置130接收数据DATAb。
存储器控制器110可控制存储器装置130的所有操作。存储器控制器110可向通道CH1至CHm发送信号并且控制连接到通道CH1至CHm的NVM装置NVM11至NVMmn中的每一个。例如,存储器控制器110可向第一通道CH1发送命令CMDa和地址ADDRa并且控制从NVM装置NVM11至NVM1n选择中的一个。
NVM装置NVM11至NVMmn中的每一个可经由存储器控制器110的控制来操作。例如,NVM装置NVM11可基于提供给第一通道CH1的命令CMDa、地址ADDRa和数据DATAa对数据DATAa进行编程。例如,NVM装置NVM21可基于提供给第二通道CH2的命令CMDb和地址ADDb读取数据DATAb并将读取数据DATAb发送到存储器控制器110。
尽管图18示出存储器装置130通过m个通道与存储器控制器110通信并且包括与每个通道对应的n个NVM装置的示例,但通道的数量和连接到一个通道的NVM装置的数量可不同地改变。
图19是描述根据实施例的UFS系统2000的框图。根据实施例,各自配置图1的存储器系统10的存储装置100和主机装置200中的每一个可使用USF标准。UFS系统2000可以是符合联合电子装置工程委员会(JEDEC)所发布的UFS标准的系统,并且包括UFS主机2100、UFS装置2200和UFS接口2300。图15的系统1000的以上描述也可在不与图19的以下描述冲突的范围内应用于图19的UFS系统2000。
参照图19,UFS主机2100可通过UFS接口2300连接到UFS装置2200。当图15的主处理器1100是AP时,UFS主机2100可被实现为AP的一部分。UFS主机控制器2110和主机存储器2140可分别对应于图15的主处理器1100的控制器1120以及存储器1200a和1200b。UFS装置2200可对应于图15的存储装置1300a和1300b,并且UFS装置控制器2210和NVM 2220可分别对应于图15的控制器1310a和1310b和NVM 1320a和1320b。
UFS主机2100可包括UFS主机控制器2110、应用程序2120、UFS驱动器2130、主机存储器2140和UFS互连(UIC)层2150。UFS装置2200可包括UFS装置控制器2210、NVM 2220、存储接口2230、装置存储器2240、UIC层2250和调节器2260。NVM 2220可包括多个存储器单元2221。尽管每个存储器单元2221可包括具有2D结构或3D结构的V-NAND闪存,但每个存储器单元2221可包括另一类型的NVM,例如PRAM和/或RRAM。UFS装置控制器2210可通过存储接口2230连接到NVM 2220。存储接口2230可被配置为遵循诸如Toggle或ONFI的标准协议。
应用程序2120可指想要与UFS装置2200通信以使用UFS装置2200的功能的程序。应用程序2120可向UFS驱动器2130发送输入输出请求(IOR)以进行UFS装置2200上的输入/输出(I/O)操作。IOR可指数据读请求、数据存储(或写)请求和/或数据擦除(或丢弃)请求,但不限于此。
UFS驱动器2130可通过UFS-主机控制器接口(UFS-HCI)来管理UFS主机控制器2110。UFS驱动器2130可将应用程序2120所生成的IOR转换为UFS标准定义的UFS命令并将UFS命令发送到UFS主机控制器2110。一个IOR可被转换为多个UFS命令。尽管UFS命令可基本上由SCSI标准定义,但UFS命令可以是专用于UFS标准的命令。
UFS主机控制器2110可通过UIC层2150和UFS接口2300将UFS驱动器2130所转换的UFS命令发送到UFS装置2200的UIC层2250。在UFS命令的传输期间,UFS主机控制器2110的UFS主机寄存器2111可用作命令队列(CQ)。
UFS主机2100一侧的UIC层2150可包括移动工业处理器接口(MIPI)M-PHY 2151和MIPI UniPro 2152,UFS装置2200一侧的UIC层2250也可包括MIPI M-PHY 2251和MIPIUniPro 2252。
UFS接口2300可包括被配置为传输参考时钟信号REF_CLK的线、被配置为传输用于UFS装置2200的硬件重置信号RESET_n的线、被配置为传输一对差分输入信号DIN_t和DIN_c的一对线以及被配置为传输一对差分输出信号DOUT_t和DOUT_c的一对线。
从UFS主机2100提供给UFS装置2200的参考时钟信号REF_CLK的频率可以是19.2MHz、26MHz、38.4MHz和52MHz之一,但不限于此。UFS主机2100可在操作期间(例如,在UFS主机2100和UFS装置2200之间的数据发送/接收操作期间)改变参考时钟信号REF_CLK的频率。UFS装置2200可使用锁相环(PLL)从提供自UFS主机2100的参考时钟信号REF_CLK生成具有各种频率的时钟信号。另外,UFS主机2100可使用参考时钟信号REF_CLK的频率来设定UFS主机2100和UFS装置2200之间的数据速率。例如,可根据参考时钟信号REF_CLK的频率来确定数据速率。
UFS接口2300可支持多个线路,每个线路可被实现为一对差分线。例如,UFS接口2300可包括至少一个接收线路和至少一个发送线路。在图19中,被配置为传输一对差分输入信号DIN_T和DIN_C的一对线可构成接收线路,被配置为传输一对差分输出信号DOUT_T和DOUT_C的一对线可构成发送线路。尽管图19中示出一个发送线路和一个接收线路,但是发送线路的数量和接收线路的数量可改变。
接收线路和发送线路可基于串行通信方案来传输数据。由于接收线路与发送线路分离的结构,可允许UFS主机2100和UFS装置2200之间的全双工通信。例如,在通过接收线路从UFS主机2100接收数据的同时,UFS装置2200可通过发送线路向UFS主机2100发送数据。另外,从UFS主机2100到UFS装置2200的控制数据(例如,命令)以及要由UFS主机2100存储在UFS装置2200的NVM 2220中或由UFS主机2100从UFS装置2200的NVM 2220读取的用户数据可通过同一线路传输。因此,在UFS主机2100和UFS装置2200之间,除了一对接收线路和一对发送线路之外,可以不需要进一步提供单独的线路来进行数据传输。
UFS装置2200的UFS装置控制器2210可控制UFS装置2200的所有操作。UFS装置控制器2210可使用作为逻辑数据存储单元的逻辑单元(LU)2211来管理NVM 2220。LU 2211的数量可为8,但不限于此。UFS装置控制器2210可包括FTL并使用FTL的地址映射信息将从UFS主机2100接收的逻辑数据地址(例如,逻辑块地址(LBA))转换为物理数据地址(例如,物理块地址(PBA))。被配置为将用户数据存储在UFS系统2000中的逻辑块可具有预定范围内的大小。例如,逻辑块的最小大小可被设定为4KB。
当通过UIC层2250向UFS装置2200施加来自UFS主机2100的命令时,UFS装置控制器2210可响应于命令而执行操作并且当操作完成时向UFS主机2100发送完成响应。
作为示例,当UFS主机2100打算将用户数据存储在UFS装置2200中时,UFS主机2100可向UFS装置2200发送数据存储命令。当从UFS装置2200接收到指示UFS主机2100准备好接收用户数据(传送就绪)的响应(“传送就绪”响应)时,UFS主机2100可将用户数据发送到UFS装置2200。UFS装置控制器2210可将所接收的用户数据暂时存储在装置存储器2240中并基于FTL的地址映射信息将暂时存储在装置存储器2240中的用户数据存储在NVM 2220的所选位置。
作为另一示例,当UFS主机2100打算读取存储在UFS装置2200中的用户数据时,UFS主机2100可向UFS装置2200发送数据读命令。已经接收到命令的UFS装置控制器2210可基于数据读命令从NVM2220读取用户数据并将读取的用户数据暂时存储在装置存储器2240中。在读操作期间,UFS装置控制器2210可使用嵌入在其中的ECC引擎(未示出)来检测和纠正读取的用户数据中的错误。更具体地,ECC引擎可生成要写入NVM 2220的写入数据的奇偶校验位,并且所生成的奇偶校验位可与写入数据一起存储在NVM 2220中。在从NVM2220读取数据期间,ECC引擎可使用与读取数据一起从NVM 2220读取的奇偶校验位来纠正读取数据中的错误,并且输出纠错后的读取数据。
另外,UFS装置控制器2210可将暂时存储在装置存储器2240中的用户数据发送到UFS主机2100。另外,UFS装置控制器2210还可包括AES引擎(未示出)。AES引擎可使用对称密钥算法对发送至UFS装置控制器2210的数据执行加密操作和解密操作中的至少一种。
UFS主机2100可将要发送至UFS装置2200的命令顺序地存储在可用作公共队列的UFS主机寄存器2111中,并且将命令顺序地发送到UFS装置2200。在这种情况下,即使在先前发送的命令仍在由UFS装置2200处理的同时,即,即使在接收到先前发送的命令已由UFS装置2200处理的通知之前,UFS主机2100也可将CQ中待命的下一命令发送至UFS装置2200。因此,UFS装置2200也可在处理先前发送的命令期间从UFS主机2100接收下一命令。可存储在CQ中的命令的最大数量(或队列深度)可为例如32。另外,CQ可被实现为其中存储在队列中的命令行的开始和结束由头指针和尾指针指示的环形队列。
多个存储器单元2221中的每一个可包括存储器单元阵列(未示出)以及被配置为控制存储器单元阵列的操作的控制电路(未示出)。存储器单元阵列可包括2D存储器单元阵列或3D存储器单元阵列。存储器单元阵列可包括多个存储器单元。尽管每个存储器单元是被配置为存储1比特信息的单级单元(SLC),但是每个存储器单元可以是被配置为存储2比特或更多比特的信息的单元,例如多级单元(MLC)、三级单元(TLC)和四级单元(QLC)。3D存储器单元阵列可包括其中至少一个存储器单元竖直取向并位于另一存储器单元上的竖直NAND串。
电压VCC、VCCQ1和VCCQ2可作为电源电压施加到UFS装置2200。电压VCC可以是UFS装置2200的主电源电压并且在2.4V至3.6V的范围内。电压VCCQ1可以是主要向UFS装置控制器2210供应低电压的电源电压并且在1.14V至1.26V的范围内。电压VCCQ2可以是用于主要向I/O接口(例如,MIPI M-PHY 2251)供应低于电压VCC并高于电压VCCQ1的电压的电源电压并且在1.7V至1.95V的范围内。电源电压可通过调节器2260供应给UFS装置2200的各个组件。调节器2260可被实现为分别连接到上述不同电源电压的一组单元调节器。
图20是描述根据实施例的适用于存储装置的三维(3D)竖直NAND(3D V-NAND)结构的图。
图20是根据实施例的适用于UFS装置的3D V-NAND结构的图。当UFS装置的存储模块被实现为3D V-NAND闪存时,存储模块中包括的多个存储器块中的每一个可由图20所示的等效电路表示。
图20所示的存储器块BLKi可指具有形成在基板上的3D结构的3D存储器块。例如,包括在存储器块BLKi中的多个存储器NAND串可形成在垂直于基板的方向上。
参照图20,存储器块BLKi可包括连接在位线BL1、BL2和BL3与公共源极线CSL之间的多个存储器NAND串(例如,NS11至NS33)。存储器NAND串NS11至NS33中的每一个可包括串选择晶体管SST、多个存储器单元(例如,MC1、MC2、...和MC8)和接地选择晶体管GST。在图20中将存储器NAND串NS11至NS33中的每一个示出为包括八个存储器单元MC1、MC2、…和MC8,但不限于此。
串选择晶体管SST可连接到与之对应的串选择线SSL1、SSL2和SSL3。存储器单元MC1、MC2、...和MC8中的每一个可连接到栅极线GTL1、GTL2、...和GTL8中的对应一个。栅极线GTL1、GTL2、...和GTL8可分别对应于字线,并且栅极线GTL1、GTL2、...和GTL8中的一些可对应于虚设字线。接地选择晶体管GST可连接到与之对应的接地选择线GSL1、GSL2和GSL3。串选择晶体管SST可连接到与之对应的位线BL1、BL2和BL3,接地选择晶体管GST可连接到公共源极线CSL。
同一水平高度处的字线(例如,WL1)可共同连接,并且接地选择线GSL1、GSL2和GSL3和串选择线SSL1、SSL2和SSL3可彼此分离。图20示出存储器块BLKi连接到八条栅极线GTL1、GTL2、...和GTL8和三条位线BL1、BL2和BL3的情况,但不限于此。
图21是描述根据实施例的能够应用于存储装置100的具有3DV-NAND结构的存储器装置400的图。
参照图21,存储器装置400可具有芯片至芯片(C2C)结构。C2C结构可指通过在第一晶圆上制造包括单元区域CELL的上芯片,在与第一晶圆分离的第二晶圆上制造包括外围电路区域PERI的下芯片,然后将上芯片和下芯片彼此接合而形成的结构。这里,接合处理可包括将形成在上芯片的最上金属层上的接合金属和形成在下芯片的最上金属层上的接合金属电连接的方法。例如,当接合金属可包括铜(Cu)时,使用Cu到Cu接合。然而,示例实施例不限于此。例如,接合金属也可由铝(Al)或钨(W)形成。
存储器装置400的外围电路区域PERI和单元区域CELL中的每一个可包括外部焊盘接合区域PA、字线接合区域WLBA和位线接合区域BLBA。
外围电路区域PERI可包括第一基板210z、层间绝缘层215、形成在第一基板210z上的多个电路元件220a、220b和220c、分别连接到多个电路元件220a、220b和220c的第一金属层230a、230b和230c以及形成在第一金属层230a、230b和230c上的第二金属层240a、240b和240c。在示例实施例中,第一金属层230a、230b和230c可由具有相对高的电阻率的钨形成,第二金属层240a、240b和240c可由具有相对低的电阻率的铜形成。
在图21所示的示例实施例中,尽管仅示出并描述了第一金属层230a、230b和230c以及第二金属层240a、240b和240c,但是示例实施例不限于此,还可在第二金属层240a、240b和240c上形成一个或多个附加金属层。形成在第二金属层240a、240b和240c上的一个或多个附加金属层的至少一部分可由电阻率比形成第二金属层240a、240b和240c的铜低的铝等形成。
层间绝缘层215可设置在第一基板210z上并覆盖多个电路元件220a、220b和220c、第一金属层230a、230b和230c以及第二金属层240a、240b和240c。层间绝缘层215可包括诸如氧化硅、氮化硅等的绝缘材料。
可在字线接合区域WLBA中的第二金属层240b上形成下接合金属271b和272b。在字线接合区域WLBA中,外围电路区域PERI中的下接合金属271b和272b可电接合到单元区域CELL的上接合金属371b和372b。下接合金属271b和272b以及上接合金属371b和372b可由铝、铜、钨等形成。此外,单元区域CELL中的上接合金属371b和372b可被称为第一金属焊盘,外围电路区域PERI中的下接合金属271b和272b可被称为第二金属焊盘。
单元区域CELL可包括至少一个存储器块。单元区域CELL可包括第二基板310和公共源极线320。在第二基板310上,多条字线331至338(即,330)可在垂直于第二基板310的上表面的方向(Z轴方向)上层叠。至少一条串选择线和至少一条接地选择线可分别布置在多条字线330上面和下方,并且多条字线330可设置在至少一条串选择线和至少一条接地选择线之间。
在位线接合区域BLBA中,沟道结构CHS可在垂直于第二基板310的上表面的方向(Z轴方向)上延伸,并且穿过多条字线330、至少一条串选择线和至少一条接地选择线。沟道结构CHS可包括数据存储层、沟道层、掩埋绝缘层等,并且沟道层可电连接到第一金属层350c和第二金属层360c。例如,第一金属层350c可以是位线接触件,第二金属层360c可以是位线。在示例实施例中,位线360c可在平行于第二基板310的上表面的第一方向(Y轴方向)上延伸。
在图21所示的示例实施例中,设置有沟道结构CHS、位线360c等的区域可被定义为位线接合区域BLBA。在位线接合区域BLBA中,位线360c可电连接到外围电路区域PERI中提供页缓冲器393的电路元件220c。位线360c可连接到单元区域CELL中的上接合金属371c和372c,并且上接合金属371c和372c可连接到与页缓冲器393的电路元件220c连接的下接合金属271c和272c。
在字线接合区域WLBA中,多条字线330可在平行于第二基板310的上表面并垂直于第一方向的第二方向(X轴方向)上延伸,并且可连接到多个单元接触插塞341至347(即,340)。多条字线330和多个单元接触插塞340可在在第二方向上延伸不同长度的多条字线330的至少一部分所提供的焊盘中彼此连接。第一金属层350b和第二金属层360b可顺序地连接到与多条字线330连接的多个单元接触插塞340的上部。多个单元接触插塞340可在字线接合区域WLBA中通过单元区域CELL的上接合金属371b和372b以及外围电路区域PERI的下接合金属271b和272b连接到外围电路区域PERI。
多个单元接触插塞340可电连接到外围电路区域PERI中形成行解码器394的电路元件220b。在示例实施例中,行解码器394的电路元件220b的操作电压可不同于形成页缓冲器393的电路元件220c的操作电压。例如,形成页缓冲器393的电路元件220c的操作电压可大于形成行解码器394的电路元件220b的操作电压。
公共源极线接触插塞380可设置在外部焊盘接合区域PA中。公共源极线接触插塞380可由诸如金属、金属化合物、多晶硅等的导电材料形成,并且可电连接到公共源极线320。第一金属层350a和第二金属层360a可顺序地层叠在公共源极线接触插塞380的上部。例如,设置有公共源极线接触插塞380、第一金属层350a和第二金属层360a的区域可被定义为外部焊盘接合区域PA。
输入-输出焊盘205和305可设置在外部焊盘接合区域PA中。参照图21,覆盖第一基板210z的下表面的下绝缘膜201可形成在第一基板210z下面,并且第一输入-输出焊盘205可形成在下绝缘膜201上。第一输入-输出焊盘205可通过第一输入-输出接触插塞203连接到设置在外围电路区域PERI中的多个电路元件220a、220b和220c中的至少一个,并且可通过下绝缘膜201与第一基板210z分离。另外,侧绝缘膜可设置在第一输入-输出接触插塞203和第一基板210z之间以将第一输入-输出接触插塞203和第一基板210z电分离。
参照图21,覆盖第二基板310的上表面的上绝缘膜301可形成在第二基板310上,并且第二输入-输出焊盘305可设置在上绝缘膜301上。第二输入-输出焊盘305可通过第二输入-输出接触插塞303连接到设置在外围电路区域PERI中的多个电路元件220a、220b和220c中的至少一个。在示例实施例中,第二输入-输出焊盘305电连接到电路元件220a。
根据实施例,第二基板310和公共源极线320可不设置在设置有第二输入-输出接触插塞303的区域中。另外,第二输入-输出焊盘305可在第三方向(Z轴方向)上不与字线330重叠。参照图21,第二输入-输出接触插塞303可在平行于第二基板310的上表面的方向上与第二基板310分离,并且可穿过单元区域CELL的层间绝缘层315以连接到第二输入-输出焊盘305。
根据实施例,第一输入-输出焊盘205和第二输入-输出焊盘305可选择性地形成。例如,存储器装置400可仅包括设置在第一基板210z上的第一输入-输出焊盘205或设置在第二基板310上的第二输入-输出焊盘305。可替换地,存储器装置400可包括第一输入-输出焊盘205和第二输入-输出焊盘305二者。
在单元区域CELL和外围电路区域PERI中分别包括的外部焊盘接合区域PA和位线接合区域BLBA中的每一个中,设置在最上金属层上的金属图案可被设置为虚设图案或者可不存在最上金属层。
在外部焊盘接合区域PA中,存储器装置400可在外围电路区域PERI的最上金属层中包括下金属图案273a,其与形成在单元区域CELL的最上金属层中的上金属图案372a对应并且具有与单元区域CELL的上金属图案372a相同的横截面形状以彼此连接。在外围电路区域PERI中,形成在外围电路区域PERI的最上金属层中的下金属图案273a可不连接到接触件。类似地,在外部焊盘接合区域PA中,与形成在外围电路区域PERI的最上金属层中的下金属图案273a对应并且具有与外围电路区域PERI的下金属图案273a相同的形状的上金属图案372a可形成在单元区域CELL的最上金属层中。
下接合金属271b和272b可形成在字线接合区域WLBA中的第二金属层240b上。在字线接合区域WLBA中,外围电路区域PERI的下接合金属271b和272b可通过Cu到Cu接合电连接到单元区域CELL的上接合金属371b和372b。
此外,在位线接合区域BLBA中,与形成在外围电路区域PERI的最上金属层中的下金属图案252对应并且具有与外围电路区域PERI的下金属图案252相同的横截面形状的上金属图案392可形成在单元区域CELL的最上金属层中。接触件可不形成在单元区域CELL的最上金属层中形成的上金属图案392上。
在示例实施例中,与形成在单元区域CELL和外围电路区域PERI中的一个的最上金属层中的金属图案对应,具有与该金属图案相同的横截面形状的增强金属图案可形成在单元区域CELL和外围电路区域PERI中的另一个中的最上金属层中。接触件可不形成在增强金属图案上。
图22是示出应用了根据实施例的存储器系统的数据中心3000的框图。在实施例中,图1的存储器系统10可应用于数据中心3000。
参照图22,数据中心3000可以是收集各种类型的各条数据并提供服务的设施并且被称为数据存储中心。数据中心3000可以是用于操作搜索引擎和数据库的系统,并且可以是由诸如银行或政府机构的公司使用的计算系统。数据中心3000可包括应用服务器3100至3100n和存储服务器3200至3200m。应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可根据实施例不同地选择。应用服务器3100至3100n的数量可不同于存储服务器3200至3200m的数量。
应用服务器3100或存储服务器3200可包括处理器3110和3210以及存储器3120和3220中的至少一个。现在将作为示例描述存储服务器3200。处理器3210可控制存储服务器3200的所有操作、访问存储器3220、并且执行加载在存储器3220中的指令和/或数据。存储器3220可以是双倍数据速率同步DRAM(DDR SDRAM)、高带宽存储器(HBM)、混合存储器立方体(HMC)、双列直插存储器模块(DIMM)、Optane DIMM或非易失性DIMM(NVMDIMM)。在一些实施例中,包括在存储服务器3200中的处理器3210和存储器3220的数量可不同地选择。在实施例中,处理器3210和存储器3220可提供处理器-存储器对。在实施例中,处理器3210的数量可不同于存储器3220的数量。处理器3210可包括单核处理器或多核处理器。存储服务器3200的以上描述可类似地应用于应用服务器3100。在一些实施例中,应用服务器3100可不包括存储装置3150。存储服务器3200可包括至少一个存储装置3250。包括在存储服务器3200中的存储装置3250的数量可根据实施例不同地选择。
应用服务器3100至3100n可通过网络3300与存储服务器3200至3200m通信。网络3300可使用光纤通道(FC)或以太网来实现。在这种情况下,FC可以是用于相对高速的数据传输的介质并且使用具有高性能和高可用性的光学开关。存储服务器3200至3200m可根据网络3300的访问方法作为文件存储、块存储或对象存储来提供。
在实施例中,网络3300可以是诸如存储区域网络(SAN)的存储专用网络。例如,SAN可以是使用FC网络并根据FC协议(FCP)实现的FC-SAN。作为另一示例,SAN可以是互联网协议(IP)-SAN,其使用传输控制协议(TCP)/IP网络并且根据经TCP/IP的SCSI(SCSI overTCP/IP)或互联网SCSI(iSCSI)协议来实现。在另一实施例中,网络3300可以是诸如TCP/IP网络的一般网络。例如,网络3300可根据诸如经以太网的FC(FC over Ethernet,FCoE)、网络附接存储(NAS)和经架构的NVMe(NVMe over Fabrics,NVMe-oF)的协议来实现。
以下,将主要描述应用服务器3100和存储服务器3200。应用服务器3100的描述可应用于另一应用服务器3100n,并且存储服务器3200的描述可应用于另一存储服务器3200m。
应用服务器3100可通过网络3300将用户或客户端请求存储的数据存储在存储服务器3200至3200m之一中。另外,应用服务器3100可通过网络3300从存储服务器3200至3200m之一获得用户或客户端请求读取的数据。例如,应用服务器3100可被实现为网页服务器或数据库管理系统(DBMS)。
应用服务器3100可通过网络3300访问包括在另一应用服务器3100n中的存储器3120n或存储装置3150n。可替换地,应用服务器3100可通过网络3300访问包括在存储服务器3200至3200m中的存储器3220至3220m或存储装置3250至3250m。因此,应用服务器3100可对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的指令。在这种情况下,数据可直接或通过存储服务器3200至3200m的存储器3220至3220m从存储服务器3200至3200m的存储装置3250至3250m移动到应用服务器3100至3100n的存储器3120至3120n。通过网络3300移动的数据可以是为了安全或隐私而加密的数据。
现在将作为示例描述存储服务器3200。接口3254可提供处理器3210和控制器3251之间的物理连接以及网络接口卡(NIC)3240和控制器3251之间的物理连接。例如,可使用其中存储装置3250直接与专用线缆连接的直接附接存储(DAS)方案来实现接口3254。例如,可使用诸如ATA、SATA、e-SATA、SCSI、SAS、PCI、PCIe、NVMe、IEEE 1394、USB接口、SD卡接口、MMC接口、eMMC接口、UFS接口、eUFS接口和CF卡接口的各种接口方案来实现接口3254。
存储服务器3200还可包括交换机3230和NIC(网络互连件)3240。交换机3230可选择性地将处理器3210连接到存储装置3250或经由处理器3210的控制选择性地将NIC 3240连接到存储装置3250。
在实施例中,NIC 3240可包括网络接口卡和网络适配器。NIC 3240可通过有线接口、无线接口、蓝牙接口或光学接口连接到网络3300。NIC 3240可包括内部存储器、数字信号处理器(DSP)和主机总线接口并且通过主机总线接口连接到处理器3210和/或交换机3230。主机总线接口可被实现为接口3254的上述示例之一。在实施例中,NIC 3240可与处理器3210、交换机3230和存储装置3250中的至少一个集成。
在存储服务器3200至3200m或应用服务器3100至3100n中,处理器可向存储装置3150至3150n和3250至3250m或存储器3120至3120n和3220至3220m发送命令并编程或读取数据。在这种情况下,数据可以是通过ECC引擎纠错的数据。数据可以是对其执行数据总线倒置(DBI)操作或数据屏蔽(DM)操作的数据,并且可包括循环冗余码(CRC)信息。数据可以是为了安全或隐私而加密的数据。
存储装置3150至3150n和3250至3250m可响应于从处理器接收的读命令向NAND闪存装置3252至3252m发送控制信号和命令/地址信号。因此,当从NAND闪存装置3252至3252m读取数据时,可输入读使能(RE)信号作为数据输出控制信号,因此数据可输出到DQ总线。可使用RE信号来生成数据选通信号DQS。命令和地址信号可根据写使能(WE)信号的上升沿或下降沿被锁存在页缓冲器中。
控制器3251可控制存储装置3250的所有操作。在实施例中,控制器3251可包括SRAM。控制器3251可响应于写命令将数据写入NAND闪存装置3252或者响应于读命令从NAND闪存装置3252读取数据。例如,可从存储服务器3200的处理器3210、另一存储服务器3200m的处理器3210m或应用服务器3100和3100n的处理器3110和3110n提供写命令和/或读命令。DRAM 3253可暂时存储(或缓冲)要写入NAND闪存装置3252的数据或从NAND闪存装置3252读取的数据。另外,DRAM 3253可存储元数据。这里,元数据可以是用户数据或由控制器3251生成以管理NAND闪存装置3252的数据。存储装置3250可包括用于安全或隐私的安全元件(SE)。
尽管参考本发明构思的实施例具体地示出和描述了本发明构思,但是将理解,在不脱离所附权利要求的精神和范围的情况下,可对其进行各种形式和细节上的改变。

Claims (20)

1.一种包括核心和存储器的存储装置的操作方法,所述操作方法包括:
响应于从主机装置接收的写命令,接收被配置为能够执行第一任务的第一处理代码,并将所述第一处理代码存储在所述存储器中为近数据处理单独分配的第一逻辑单元中;
响应于从所述主机装置接收的激活命令,激活用于执行所述第一处理代码的所述核心;以及
响应于从所述主机装置接收的执行命令,使用所述核心来执行所述第一任务。
2.根据权利要求1所述的操作方法,其中,所述存储装置包括存储器控制器,所述存储器控制器包括所述核心,并且
存储所述第一处理代码包括:
使用所述存储器控制器基于所述写命令来检查所述第一处理代码的大小;以及
使用所述存储器控制器对所述第一处理代码分段并接收所述第一处理代码,接收所述第一处理代码的次数与所述第一处理代码的大小相对应。
3.根据权利要求2所述的操作方法,其中,所述存储装置还包括紧密耦接到所述核心的子存储器,并且
检查所述第一处理代码的大小包括:
使用所述存储器控制器将所述子存储器的单位存储大小与所述第一处理代码的大小进行比较;并且
使用所述存储器控制器向所述主机装置传送等于与所述第一处理代码的大小对应的次数的传送就绪响应。
4.根据权利要求1所述的操作方法,还包括:
从所述主机装置接收被配置为能够执行第二任务的第二处理代码;以及
将所述第二处理代码存储在所述存储器中为近数据处理单独分配的第二逻辑单元中。
5.根据权利要求1所述的操作方法,其中:
所述存储装置还包括紧密耦接到所述核心的子存储器,
所述激活命令包括加载命令和获取命令,并且
激活所述核心包括:
基于所述加载命令将所述第一处理代码从所述第一逻辑单元补丁加载到所述子存储器;并且还包括
基于所述获取命令获取加载到所述子存储器的所述第一处理代码。
6.根据权利要求5所述的操作方法,其中,获取所述第一处理代码包括:
将所述获取命令存储在队列中;以及
使用所述核心基于所述获取命令根据所述队列的顺序从所述子存储器执行获取。
7.根据权利要求1所述的操作方法,其中,当所述核心处于空闲状态时,执行激活所述核心。
8.根据权利要求7述的操作方法,其中,所述空闲状态是所述核心不执行包括读操作、写操作或擦除操作的存储器操作的状态。
9.根据权利要求1所述的操作方法,其中,执行所述第一任务包括:
将任务结果存储在为用户数据分配的第二逻辑单元中;以及
将存储所述任务结果的地址传送至所述主机装置。
10.根据权利要求1所述的操作方法,其中,所述第一逻辑单元包括在公知区域中。
11.根据权利要求1所述的操作方法,其中,所述第一任务包括压缩、加密、量化、矩阵运算、浮点转换、树搜索、交换、重复移除、修剪、渲染或数据挖掘。
12.根据权利要求1所述的操作方法,其中,所述第一任务是可重新编程的。
13.一种包括存储器和核心的存储装置的操作方法,所述操作方法包括:
从主机装置接收通过对被配置为执行任务的处理代码进行加密而获得的加密代码;
基于私钥来验证所述加密代码的散列值,并且基于验证成功通过对所述加密代码进行解密来获得所述处理代码;
将所述处理代码存储在所述存储器中为近数据处理单独分配的第一逻辑单元中;
当所述核心处于空闲状态时,激活所述核心;以及
使用所述核心来执行所述任务。
14.根据权利要求13所述的操作方法,其中,接收所述加密代码包括:
基于所述主机装置的公钥请求,确定加密方法并向所述主机装置提供公钥;以及
从所述主机装置接收通过基于所述公钥的加密而获得的所述加密代码。
15.根据权利要求13所述的操作方法,其中,对所述处理代码进行加密的方法包括Rivest-Shamir-Adleman加密方法、安全散列算法加密方法、纠错码加密方法和数字签名算法加密方法中的至少一种。
16.根据权利要求13所述的操作方法,其中,所述存储装置还包括紧密耦接到所述核心的子存储器,并且
激活所述核心包括:
将存储在所述第一逻辑单元中的所述处理代码加载到所述子存储器;以及
使用所述核心来解释所述处理代码。
17.一种包括存储器控制器和存储器装置的存储装置,其中:
所述存储器控制器包括:
核心;
紧密耦接到所述核心的子存储器;以及
连接到所述核心和所述子存储器的主存储器,
所述存储器装置是第一逻辑单元、是为近数据处理单独分配的、并且被配置为存储用于执行任务的处理代码,并且
所述核心被配置为基于存储在所述第一逻辑单元中的所述处理代码来执行所述任务。
18.根据权利要求17所述的存储装置,其中,当所述核心处于空闲状态时执行所述任务。
19.根据权利要求17所述的存储装置,其中,所述存储器装置包括:
启动区域;
用户数据区域;以及
公知区域,并且
所述第一逻辑单元包括在所述公知区域中。
20.根据权利要求19所述的存储装置,其中,所述核心被配置为将所述任务的执行结果存储在所述用户数据区域中所包括的第二逻辑单元中。
CN202111543584.3A 2020-12-17 2021-12-16 执行处理代码的存储装置和存储装置的操作方法 Pending CN114647374A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200177851A KR20220087297A (ko) 2020-12-17 2020-12-17 처리 코드를 실행하는 스토리지 장치 및 이의 동작 방법
KR10-2020-0177851 2020-12-17

Publications (1)

Publication Number Publication Date
CN114647374A true CN114647374A (zh) 2022-06-21

Family

ID=81847597

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111543584.3A Pending CN114647374A (zh) 2020-12-17 2021-12-16 执行处理代码的存储装置和存储装置的操作方法

Country Status (4)

Country Link
US (1) US20220197510A1 (zh)
KR (1) KR20220087297A (zh)
CN (1) CN114647374A (zh)
DE (1) DE102021119290A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115270668A (zh) * 2022-07-18 2022-11-01 北京师范大学 一种信息科技教育开源硬件专用芯片

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115951998A (zh) * 2022-12-29 2023-04-11 上海芷锐电子科技有限公司 任务执行方法、图形处理器、电子设备及存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101226685B1 (ko) 2007-11-08 2013-01-25 삼성전자주식회사 수직형 반도체 소자 및 그 제조 방법.
KR101691092B1 (ko) 2010-08-26 2016-12-30 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US9536970B2 (en) 2010-03-26 2017-01-03 Samsung Electronics Co., Ltd. Three-dimensional semiconductor memory devices and methods of fabricating the same
KR101682666B1 (ko) 2010-08-11 2016-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템
US9575689B2 (en) * 2015-06-26 2017-02-21 EMC IP Holding Company LLC Data storage system having segregated control plane and/or segregated data plane architecture
US10503434B2 (en) * 2017-04-12 2019-12-10 Micron Technology, Inc. Scalable low-latency storage interface
US20200310690A1 (en) * 2017-10-10 2020-10-01 University Of Southern California Dynamic near-data processing control mechanism based on computer resource availability on solid-state disk platforms
TWI639921B (zh) * 2017-11-22 2018-11-01 大陸商深圳大心電子科技有限公司 指令處理方法及使用所述方法的儲存控制器
US10884672B2 (en) * 2018-04-02 2021-01-05 Samsung Electronics Co., Ltd. NDP-server: a data-centric computing architecture based on storage server in data center
US10949388B2 (en) * 2018-11-16 2021-03-16 Advanced Messaging Technologies, Inc. Systems and methods for distributed data storage and delivery using blockchain
CN111683071B (zh) * 2020-05-29 2023-02-28 百度在线网络技术(北京)有限公司 区块链的隐私数据处理方法、装置、设备以及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115270668A (zh) * 2022-07-18 2022-11-01 北京师范大学 一种信息科技教育开源硬件专用芯片
CN115270668B (zh) * 2022-07-18 2023-07-07 北京师范大学 一种信息科技教育开源硬件专用芯片

Also Published As

Publication number Publication date
KR20220087297A (ko) 2022-06-24
US20220197510A1 (en) 2022-06-23
DE102021119290A1 (de) 2022-06-23

Similar Documents

Publication Publication Date Title
US11698855B2 (en) Method, memory controller and storage device to perform garbage collection based on fragmentation ratio of blocks
CN114647374A (zh) 执行处理代码的存储装置和存储装置的操作方法
US20240037027A1 (en) Method and device for storing data
US20230393959A1 (en) Out-of-band management method for storage apparatus, baseboard management controller and storage apparatus
KR20240018388A (ko) 사이버 공격들로부터 내부 ssd 건강 및 저장 공간 보호를위한 멀웨어 방지 알고리즘, 하드웨어 및 소프트웨어
US20240037233A1 (en) Ransomware and malicious software protection in ssd/ufs by nvme instructions log analysis based on machine-learning
EP4148572A1 (en) Computational storage device and storage system including the computational storage device
KR20230071730A (ko) 데이터 프로세싱 장치 및 그것의 동작 방법
CN113838503A (zh) 具有容量可伸缩性的存储系统和操作其的方法
US12045472B2 (en) Storage device supporting multi-tenant operation and methods of operating same
US20230393749A1 (en) Method and device of storage data
US20230153237A1 (en) Method and device for storing data
US11841767B2 (en) Controller controlling non-volatile memory device, storage device including the same, and operating method thereof
US20230135891A1 (en) Storage device including storage controller and operating method
KR102547251B1 (ko) 비휘발성 메모리 장치를 제어하는 제어기, 그것을 포함하는 저장 장치 및 그것의 동작 방법
US11914879B2 (en) Storage controller and storage system comprising the same
US12074983B2 (en) Trusted computing device and operating method thereof
US20230146540A1 (en) Storage device and an operating method of a storage controller thereof
US20230154529A1 (en) Storage controller and storage device including the same
KR20230067457A (ko) 스토리지 컨트롤러, 스토리지 시스템 및 그 동작방법
CN117093137A (zh) 嵌入式存储装置、具有其的主机系统及其操作方法
CN115809488A (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