CN113377691B - 计算系统及其操作方法 - Google Patents

计算系统及其操作方法 Download PDF

Info

Publication number
CN113377691B
CN113377691B CN202010893314.4A CN202010893314A CN113377691B CN 113377691 B CN113377691 B CN 113377691B CN 202010893314 A CN202010893314 A CN 202010893314A CN 113377691 B CN113377691 B CN 113377691B
Authority
CN
China
Prior art keywords
host
response
read
request
memory
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.)
Active
Application number
CN202010893314.4A
Other languages
English (en)
Other versions
CN113377691A (zh
Inventor
李建旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SK Hynix Inc
Original Assignee
SK Hynix Inc
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
Priority claimed from KR1020200029238A external-priority patent/KR20210113906A/ko
Priority claimed from KR1020200029240A external-priority patent/KR20210113907A/ko
Application filed by SK Hynix Inc filed Critical SK Hynix Inc
Publication of CN113377691A publication Critical patent/CN113377691A/zh
Application granted granted Critical
Publication of CN113377691B publication Critical patent/CN113377691B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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/1466Key-lock mechanism
    • 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/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2103Challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本公开提供了一种电子装置。存储装置包括存储器装置和存储器控制器。存储器装置包括写入保护区域。存储器控制器响应于从主机接收的关于安全读取的一系列请求,控制存储器装置对写入保护区域执行读取操作,将从存储器装置接收的读取数据提供给主机,并且基于读取数据来生成装置认证码。存储器控制器并行地执行将读取数据提供给主机与生成装置认证码。

Description

计算系统及其操作方法
相关申请的交叉引用
本申请要求于2020年3月9日提交的申请号为10-2020-0029238和10-2020-0029240的韩国专利申请的优先权,这些申请的内容通过引用整体并入本文。
技术领域
本公开的各个实施例总体涉及一种电子装置,且更特别地,涉及一种计算系统及其操作方法。
背景技术
存储装置可以响应于诸如计算机或智能电话的主机装置的控制来存储数据。存储装置可以包括存储数据的存储器装置和控制该存储器装置的存储器控制器。通常,存在两种类型的存储器装置:易失性存储器装置和非易失性存储器装置。
易失性存储器装置可以仅在向其供应电力时存储数据,而在不供应电力时会丢失所存储的数据。易失性存储器装置的示例包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)。
即使当电力供应中断或阻断时,非易失性存储器装置也可以保留所存储的数据。非易失性存储器装置的示例包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)和闪速存储器。
发明内容
本公开的各个实施例涉及一种具有提高的安全读取性能的存储装置和操作该存储装置的方法。
根据实施例,一种存储装置可以包括存储器装置和存储器控制器。存储器装置可以包括写入保护区域。存储器控制器可以响应于从主机接收的关于安全读取的一系列请求,控制存储器装置对写入保护区域执行读取操作,将从存储器装置接收的读取数据提供给主机,并且基于读取数据来生成装置认证码。存储器控制器可以与将读取数据提供给主机并行地生成装置认证码。
根据实施例,一种操作存储装置的方法可以包括:从主机接收读取信息和关于安全读取的一系列请求之中的第一请求;基于读取信息来读取写入保护区域中存储的数据;基于读取数据来生成装置认证码;并且将读取数据提供给主机。可以并行地执行生成装置认证码与提供读取数据。
根据实施例,一种计算系统可以包括主机和存储装置。包括写入保护区域的存储装置可以从主机接收读取信息和关于安全读取的一系列的第一请求和第二请求之中的第一请求;基于读取信息来读取写入保护区域中存储的数据;并且与基于读取数据来生成装置认证码并行地将读取数据提供给主机。
附图说明
图1是示出根据本公开的实施例的计算系统的示图。
图2是示出根据实施例的安全读取操作的流程图。
图3是示出根据实施例的安全读取操作的流程图。
图4是示出根据实施例的安全读取操作的流程图。
图5是示出根据实施例的诸如图1所示的存储装置的存储装置的配置和操作的示图。
图6是示出诸如图5所示的存储器控制器的存储器控制器的配置和操作的示图。
图7是示出诸如图5和图6中的每一个所示的读取信息的读取信息的示图。
图8是示出根据实施例的安全写入的示图。
图9是示出根据实施例的安全写入的示图。
图10是示出根据实施例的诸如图1所示的计算系统的计算系统的配置和操作的示图。
图11是示出诸如图10所示的数据验证组件的数据验证组件的示图。
图12是示出诸如图1所示的存储器装置的存储器装置的结构的示图。
图13是示出诸如图12所示的存储器单元阵列的存储器单元阵列的示图。
图14是示出存储器控制器的另一实施例的示图。
图15是示出根据本公开的实施例的应用存储装置的存储卡系统的框图。
图16是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统的框图。
图17是示出根据本公开的实施例的应用存储装置的用户系统的框图。
具体实施方式
本文仅提供具体结构和功能描述以描述本发明的实施例。但是,本发明可以以各种方式来配置和/或执行。因此,本发明不限于任何所公开的实施例,也不限于本说明书中描述的任何具体细节。而且,在整个说明书中,对“实施例”、“另一实施例”等的参考不一定仅针对一个实施例,并且对任何这种短语的不同参考不一定针对(多个)相同的实施例。当在本文中使用术语“实施例”时,不一定指所有实施例。
图1是示出根据本公开的实施例的计算系统500的示图。
参照图1,计算系统500可以包括存储装置50和主机300。
存储装置50可以包括存储器装置100和控制存储器装置100的操作的存储器控制器200。存储装置50可以响应于主机300的控制来存储数据。存储装置50的示例包括:蜂窝电话、智能电话、MP3播放器、膝上型计算机、台式计算机、游戏播放器、TV、平板PC和车载信息娱乐系统。
根据作为与主机300的通信方法的主机接口,存储装置50可以被配置为各种类型的存储装置中的任意一种。例如,存储装置50可以被配置为固态驱动器(SSD),多媒体卡(MMC)、eMMC、RS-MMC和微型MMC形式的多媒体卡,SD、迷你SD和微型SD形式的安全数字卡,通用串行总线(USB)存储装置,通用闪存(UFS)装置,个人计算机存储卡国际协会(PCMCIA)卡型存储装置,外围组件互连(PCI)卡型存储装置,高速PCI(PCI-e或PCIe)卡型存储装置,紧凑式闪存(CF)卡,智能媒体卡或记忆棒。
存储装置50可以被制造为各种类型的封装中的任意一种。例如,存储装置50可以被制造为堆叠封装(POP)、系统级封装(SIP)、片上系统(SOC)、多芯片封装(MCP)、板上芯片(COB)、晶圆级制造封装(WFP)或晶圆级堆叠封装(WSP)。
存储器装置100可以存储数据。存储器装置100可以响应于存储器控制器200的控制来操作。存储器装置100可以包括包含存储数据的多个存储器单元的存储器单元阵列。
存储器单元中的每一个可以是存储一位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)或存储四位数据的四层单元(QLC)。
存储器单元阵列可以包括多个存储块,多个存储块中的每一个可以包括多个存储器单元。每个存储块可以包括多个页面。根据实施例,页面可以是用于将数据存储在存储器装置100中或读取存储器装置100中存储的数据的单元。
存储块可以是用于擦除数据的单元。根据实施例,存储器装置100可以是双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)。通过示例的方式,在以下描述的语境中,假设存储器装置100是NAND闪速存储器。
存储器装置100可以从存储器控制器200接收命令和地址,并访问存储器单元阵列中由地址选择的区域。即,存储器装置100可以对由地址选择的区域执行命令指示的操作。例如,存储器装置100可以执行写入操作(或编程操作)、读取操作和擦除操作。在编程操作期间,存储器装置100可以利用数据对由地址选择的区域进行编程。在读取操作期间,存储器装置100可以从由地址选择的区域中读取数据。在擦除操作期间,存储器装置100可以擦除由地址选择的区域中存储的数据。
根据实施例,存储器装置100可以包括写入保护区域。已经验证为具有完整性的写入数据可以存储在写入保护区域中。写入数据的完整性可以指从主机300接收的写入数据没有失真(distort)或调制的状态。
存储器控制器200可以控制存储装置50的一般操作。
当向存储装置50供应电力时,存储器控制器200可以运行固件(FW)。当存储器装置100是闪速存储器装置时,存储器控制器200可以运行诸如闪存转换层(FTL)的固件,以用于控制主机300和存储器装置100之间的通信。
根据实施例,存储器控制器200可以从主机300接收数据和逻辑块地址(LBA),并且将LBA转换为指示数据将存储在存储器装置100中的存储器单元的地址的物理块地址(PBA)。
例如,存储器控制器200可以响应于来自主机300的请求,控制存储器装置100执行编程操作、读取操作或擦除操作。在编程操作期间,存储器控制器200可以向存储器装置100提供写入命令、PBA和数据。在读取操作期间,存储器控制器200可以向存储器装置100提供读取命令和PBA。在擦除操作期间,存储器控制器200可以向存储器装置100提供擦除命令和PBA。
根据实施例,存储器控制器200可以不管来自主机300的请求,生成命令、地址和数据并将命令、地址和数据传送到存储器装置100。例如,存储器控制器200可以向存储器装置100提供命令、地址和数据以执行后台操作,诸如用于损耗均衡的编程操作和用于垃圾收集的编程操作。
根据实施例,存储器控制器200可以控制至少两个存储器装置100。存储器控制器200可以根据交错方案来控制存储器装置100,以提高操作性能。在交错方案中,两个或更多个存储器装置100的操作周期可以至少部分地重叠。
根据实施例,存储器控制器200可以从主机300接收关于安全性的一系列请求。
根据实施例,一系列请求可以包括第一请求和第二请求。第一请求可以用于指示对存储器装置100的写入保护区域的读取操作。第二请求可以用于收集读取操作的结果。下面参照图2至图5描述第一请求和第二请求。
根据实施例,存储器控制器200可以向主机300提供指示是否已经接收到第一请求的第一响应。存储器控制器200可以响应于第二请求,向主机300提供包括装置认证码的第二响应。
存储器控制器200可以从主机300接收第一请求和读取信息。存储器控制器200可以响应于第一请求,控制存储器装置100以基于读取信息来读取写入保护区域中存储的数据。
根据实施例,读取信息可以包括用于对写入保护区域的读取操作的值。例如,读取信息可以包括由主机300为一系列请求的安全性而生成的随机数值(nonce value)。随机数是在安全通信中只能使用一次的任意数。读取信息可以包括写入保护区域之中待读取的目标区域的地址值。读取信息可以包括目标区域的起始地址值。读取信息可以包括块计数值,该块计数值是目标区域中的存储块的数量。
根据实施例,存储器控制器200可以向主机300提供包括随机数值的复制值的第二响应。主机300可以通过将提供给存储器控制器200的随机数值与从存储器控制器200接收的复制值进行比较,来确定存储装置50是否是加密数据的授权发送者/接收者。
存储器控制器200可以从存储器装置100接收读取数据。
存储器控制器200可以基于所接收的读取数据来生成装置认证码。存储器控制器200可以基于读取数据和与主机300共享的密钥,通过使用消息认证码(MAC:messageauthentication code)算法来生成装置认证码。装置认证码可以用于验证读取数据的完整性。读取数据的完整性可以指由存储器控制器200提供给主机300的读取数据没有失真或调制的状态。
存储器控制器200可以向主机300提供从存储器装置100接收的读取数据。
根据实施例,存储器控制器200可以响应于第一请求,向主机300提供第一响应和读取数据。存储器控制器200可以在向主机300提供读取数据之后,向主机300提供第一响应。
根据另一实施例,存储器控制器200可以响应于第二请求,向主机300提供第二响应和读取数据。存储器控制器200可以在向主机300提供读取数据之后,向主机300提供第二响应。
存储器控制器200可以与将读取数据提供给主机300并行地生成装置认证码。
主机300可以使用诸如以下的各种通信方法中的至少一种与存储装置50通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)。
根据实施例,主机300可以向存储器控制器200提供关于安全读取的一系列请求。一系列请求可以包括第一请求和第二请求。
主机300可以向存储器控制器200提供第一请求和读取信息。主机300可以从存储器控制器200接收第一响应。主机300可以响应于第一响应,向存储器控制器200提供第二请求。主机300可以从存储器控制器200接收第二响应。
根据实施例,主机300可以从存储器控制器200同时接收第一响应与读取数据。主机300可以在从存储器控制器200接收到读取数据之后,接收第一响应。
根据实施例,主机300可以从存储器控制器200同时接收第二响应与读取数据。主机300可以在从存储器控制器200接收到读取数据之后,接收第二响应。
根据另一实施例,存储器控制器200可以使用从主机300接收的写入数据和与主机300共享的密钥来生成装置认证码。存储器控制器200可以基于将装置认证码与从主机300接收的主机认证码进行比较的结果来验证写入数据的完整性。存储器控制器200可以响应于来自主机300的请求,控制存储器装置100将已经验证为具有完整性的写入数据存储在写入保护区域中。存储器控制器200可以响应于来自主机300的请求,向主机300提供对写入数据的编程操作的结果。编程操作的结果可以包括关于写入数据是否具有完整性的信息以及关于编程操作是已经通过还是已经失败的信息。
根据另一实施例,主机300可以向存储装置50同时提供写入数据与关于安全写入的一系列请求。主机300可以基于写入数据和与存储装置50共享的密钥来生成主机认证码。主机300可以向存储装置50提供所生成的主机认证码。主机300可以从存储装置50接收对一系列请求的响应。主机300可以从存储装置50同时接收编程操作的结果与响应。
图2是示出根据实施例的安全读取操作的流程图。
参照图2,主机300可以向存储装置50提供关于安全读取的一系列请求。存储装置50可以响应于一系列请求,读取写入保护区域中存储的数据并且向主机300提供读取数据。
在步骤S201中,主机300可以向存储装置50提供一系列请求之中的第一请求。第一请求可以用于读取存储装置50的写入保护区域中存储的数据。
在步骤S203中,存储装置50可以向主机300提供指示是否已经接收到第一请求的第一响应。主机300可以基于第一响应来确定存储装置50是否已经接收到第一请求。
在步骤S205中,主机300可以响应于第一响应向存储装置50提供第二请求。第二请求可以用于收集存储装置50响应于第一请求而执行的读取操作的结果。
在步骤S207中,存储装置50可以响应于第二请求向主机300提供第二响应。根据实施例,存储装置50可以向主机300提供读取数据和第二响应。存储装置50可以在向主机300提供读取数据之后,向主机300提供第二响应。
存储装置50可以向主机300提供包括装置认证码的第二响应。存储装置50可以复制读取信息中的随机数值,并且向主机300提供包括复制值的第二响应。
在步骤S209中,存储装置50可以从主机300接收读取信息。读取信息可以包括用于读取写入保护区域中存储的数据的值。
例如,读取信息可以包括随机数值、地址值和块计数值。随机数值可以由主机300为一系列请求的安全性而生成。地址值可以指示写入保护区域之中待读取的目标区域的地址。根据实施例,地址值可以指示目标区域的起始地址。块计数值可以是目标区域中的存储块的数量。
在步骤S211中,存储装置50可以响应于第一请求,基于读取信息来执行读取操作。存储装置50可以基于读取信息中的地址值和块计数值来读取目标区域中存储的数据。
在步骤S213中,存储装置50可以在完成读取操作之后生成装置认证码。存储装置50可以基于读取数据和与主机300共享的密钥来生成装置认证码。装置认证码可以用于验证读取数据的完整性。
在步骤S215中,存储装置50可以将读取数据和装置认证码传输到主机300。根据实施例,存储装置50可以将读取数据传输到主机300,并且可以将包括装置认证码的第二响应传输到主机300。
根据实施例,主机300可以将提供给存储装置50的读取信息中包括的随机数值与第二响应中包括的复制值进行比较。主机300可以基于比较结果来确定是否与存储装置50正确地交换了关于安全读取的一系列请求和响应。换言之,基于比较结果,主机300可以防止重放攻击,在该重放攻击中,除存储装置50之外的装置截获一系列请求并且向主机300提供响应。
如图2所示,在主机300从存储装置50接收到第一响应的时间与主机300响应于所接收的第一响应向存储装置50提供第二请求的时间之间可能发生主机延迟。
图3是示出根据实施例的安全读取操作的流程图。
参照图3,在步骤S301中,主机300可以向存储装置50提供关于安全读取的一系列请求之中的第一请求。第一请求可以用于读取存储装置50的写入保护区域中存储的数据。
在步骤S303中,存储装置50可以向主机300提供指示是否已经接收到第一请求的第一响应。根据实施例,存储装置50可以向主机300提供读取数据和第一响应。存储装置50可以在向主机300提供读取数据之后,向主机300提供第一响应。主机300可以基于第一响应来确定存储装置50是否已经接收到第一请求。
在步骤S305中,主机300可以响应于第一响应向存储装置50提供第二请求。第二请求可以用于收集存储装置50响应于第一请求而执行的读取操作的结果。
在步骤S307中,存储装置50可以响应于第二请求向主机300提供第二响应。存储装置50可以向主机300提供包括装置认证码的第二响应。存储装置50可以向主机300提供包括读取信息中的随机数值的复制值的第二响应。
在步骤S309中,存储装置50可以从主机300接收读取信息。读取信息可以包括用于读取写入保护区域中存储的数据的值。
例如,读取信息可以包括随机数值、地址值和块计数值。随机数值可以由主机300为一系列请求的安全性而生成。地址值可以指示写入保护区域之中待读取的目标区域的地址。根据实施例,地址值可以指示目标区域的起始地址。块计数值可以是目标区域中的存储块的数量。
在步骤S311中,存储装置50可以响应于第一请求,基于读取信息来执行读取操作。存储装置50可以基于读取信息中的地址值和块计数值来读取目标区域中存储的数据。
在步骤S313中,存储装置50可以将读取数据传输到主机300。根据实施例,存储装置50可以在将读取数据传输到主机300之后将第一响应传输到主机300。
在步骤S315中,存储装置50可以基于读取数据和与主机300共享的密钥来生成装置认证码。装置认证码可以用于验证读取数据的完整性。
在步骤S317中,存储装置50可以将装置认证码传输到主机300。根据实施例,存储装置50可以将包括装置认证码的第二响应传输到主机300。
如图3所示,步骤S313可以与步骤S315并行地执行。换言之,存储装置50可以与生成装置认证码并行地将读取数据传输到主机300。因此,安全读取所需的总时间可以减少传输读取数据与生成装置认证码重叠的时间。
在主机300从存储装置50接收到第一响应的时间与主机300响应于所接收的第一响应向存储装置50提供第二请求的时间之间可能发生主机延迟。
如图3所示,存储装置50可以在主机延迟期间生成装置认证码,从而减少安全读取所需的总时间。
图4是示出根据实施例的安全读取操作的流程图。
参照图4,在步骤S401中,主机300可以向存储装置50提供关于安全读取的一系列请求之中的第一请求。第一请求可以用于读取存储装置50的写入保护区域中存储的数据。
在步骤S403中,存储装置50可以向主机300提供指示是否已经接收到第一请求的第一响应。根据实施例,当完成接收读取信息时,存储装置50可以向主机300提供第一响应。主机300可以基于第一响应来确定存储装置50是否已经接收到第一请求。
在步骤S405中,主机300可以响应于第一响应向存储装置50提供第二请求。第二请求可以用于收集存储装置50响应于第一请求而执行的读取操作的结果。
在步骤S407中,存储装置50可以响应于第二请求向主机300提供第二响应。存储装置50可以向主机300提供包括装置认证码的第二响应。存储装置50可以向主机300提供包括读取信息中的随机数值的复制值的第二响应。
在步骤S409中,存储装置50可以从主机300接收读取信息。读取信息可以包括用于读取写入保护区域中存储的数据的值。
例如,读取信息可以包括随机数值、地址值和块计数值。随机数值可以由主机300为一系列请求的安全性而生成。地址值可以指示写入保护区域之中待读取的目标区域的地址。根据实施例,地址值可以指示目标区域的起始地址。块计数值可以是目标区域中包括的存储块的数量。
在步骤S411中,存储装置50可以响应于第一请求,基于读取信息来执行读取操作。存储装置50可以基于读取信息中的地址值和块计数值来读取目标区域中存储的数据。
在步骤S413中,存储装置50可以响应于第二请求将读取数据传输到主机300。根据实施例,存储装置50可以在将读取数据传输到主机300之后将第二响应传输到主机300。
在步骤S415中,存储装置50可以基于读取数据和与主机300共享的密钥来生成装置认证码。当完成步骤S411中的读取操作时,存储装置50可以独立于是否已经接收到第二请求而开始生成装置认证码。装置认证码可以用于验证读取数据的完整性。
在步骤S417中,存储装置50可以将装置认证码传输到主机300。根据实施例,存储装置50可以将包括装置认证码的第二响应传输到主机300。
如图4所示,步骤S413可以与步骤S415并行地执行。换言之,存储装置50可以与生成装置认证码并行地将读取数据传输到主机300。因此,安全读取所需的总时间可以减少传输读取数据与生成装置认证码重叠的时间。
在主机300从存储装置50接收到第一响应的时间与主机300响应于所接收的第一响应向存储装置50提供第二请求的时间之间可能发生主机延迟。
如图4所示,存储装置50可以在主机延迟期间执行读取操作或生成装置认证码,从而减少安全读取所需的总时间。
图5是示出根据实施例的图1所示的存储装置50的配置和操作的示图。
参照图5,存储器装置100可以包括写入保护区域110。已经验证为具有完整性的写入数据可以存储在写入保护区域110中。写入数据的完整性可以指从主机300接收的写入数据没有失真或调制的状态。
根据实施例,存储器控制器200可以包括认证读取控制器210和缓冲器220。
认证读取控制器210可以从主机300接收关于安全读取的一系列请求。认证读取控制器210可以向主机300提供与一系列请求相对应的响应。
根据实施例,一系列请求可以包括第一请求和第二请求。第一请求可以用于指示对存储器装置100的写入保护区域110的读取操作。第二请求可以用于收集读取操作的结果。
根据实施例,认证读取控制器210可以响应于第一请求,向主机300提供指示是否已经接收到第一请求的第一响应。认证读取控制器210可以响应于第二请求,向主机300提供包括装置认证码DA_CODE的第二响应。
认证读取控制器210可以从主机300接收第一请求和读取信息RI。认证读取控制器210可以响应于第一请求,基于读取信息RI向存储器装置100提供读取写入保护区域110中存储的数据的命令。
根据实施例,读取信息RI可以包括用于对写入保护区域110的读取操作的值。例如,读取信息RI可以包括由主机300为一系列请求的安全性而生成的随机数值。读取信息RI可以包括写入保护区域110之中待读取的目标区域的地址值。读取信息RI可以包括目标区域的起始地址值。读取信息RI可以包括块计数值,该块计数值是目标区域中包括的存储块的数量。
根据实施例,认证读取控制器210可以向主机300提供包括随机数值的复制值的第二响应。主机300可以通过将提供给认证读取控制器210的读取信息RI中的随机数值与从认证读取控制器210接收的复制值进行比较,来确定存储装置是否是加密数据的授权发送者/接收者。换言之,通过将随机数值与复制值进行比较,主机300可以防止重放攻击,在该重放攻击中,除存储装置之外的装置截获一系列请求并向主机300提供响应。
认证读取控制器210可以基于从缓冲器220接收的读取数据R_DATA来生成装置认证码DA_CODE。认证读取控制器210可以基于读取数据R_DATA和与主机300共享的密钥,通过使用消息认证码(MAC)算法来生成装置认证码DA_CODE。装置认证码DA_CODE可以用于验证读取数据R_DATA的完整性。读取数据R_DATA的完整性可以指认证读取控制器210提供给主机300的读取数据R_DATA没有失真或调制的状态。
认证读取控制器210可以向主机300提供缓冲器220中存储的读取数据R_DATA。认证读取控制器210可以响应于第一请求或第二请求向主机300提供读取数据R_DATA。
根据实施例,如参照图3所描述的,认证读取控制器210可以响应于第一请求,向主机300提供第一响应和读取数据R_DATA。认证读取控制器210可以在向主机300提供读取数据R_DATA之后向主机300提供第一响应。
根据实施例,如参照图4所描述的,认证读取控制器210可以响应于第二请求,向主机300提供第二响应和读取数据R_DATA。认证读取控制器210可以在向主机300提供读取数据R_DATA之后向主机300提供第二响应。
认证读取控制器210可以与将读取数据R_DATA提供给主机300并行地生成装置认证码DA_CODE。
缓冲器220可以存储从写入保护区域110中读取的数据R_DATA。缓冲器220可以根据认证读取控制器210的控制向主机300提供所存储的读取数据R_DATA。
图6是示出图5所示的存储器控制器200的配置和操作的示图。
参照图6,存储器控制器200可以包括认证读取控制器210和缓冲器220。
根据实施例,认证读取控制器210可以包括认证读取处理器211和认证码生成器212。根据另一实施例,认证码生成器212可以位于认证读取控制器210的外部。
认证读取处理器211可以从主机300接收关于安全读取的一系列请求。认证读取处理器211可以向主机300提供与一系列请求相对应的响应。
认证读取处理器211可以接收一系列请求之中的第一请求和读取信息RI。认证读取处理器211可以基于读取信息RI向存储器装置100提供读取存储器装置100的写入保护区域中存储的数据的命令。认证读取处理器211可以响应于第一请求,向主机300提供指示是否已经接收到第一请求的第一响应。
认证读取处理器211可以接收一系列请求之中的第二请求。认证读取处理器211可以向主机300提供指示是否已经接收到第二请求的第二响应。
认证读取处理器211可以向缓冲器220提供缓冲器控制信号BF_CNT。认证读取处理器211可以通过缓冲器控制信号BF_CNT来控制缓冲器220的操作。根据实施例,认证读取处理器211可以响应于第一请求,控制缓冲器220向主机300提供读取数据R_DATA。根据实施例,认证读取处理器211可以响应于第二请求,控制缓冲器220向主机300提供读取数据R_DATA。
认证读取处理器211可以向认证码生成器212提供认证码生成器控制信号CG_CNT。认证读取处理器211可以通过认证码生成器控制信号CG_CNT来控制认证码生成器212的操作。根据实施例,认证读取处理器211可以响应于第二请求,控制认证码生成器212向主机300提供装置认证码DA_CODE。
认证码生成器212可以响应于认证码生成器控制信号CG_CNT,基于从缓冲器220接收的读取数据R_DATA来生成装置认证码DA_CODE。认证码生成器212可以基于读取数据R_DATA和与主机300共享的密钥来生成装置认证码DA_CODE。可以预先设置共享密钥值。可以响应于主机300的请求来改变共享密钥值。认证码生成器212可以响应于认证码生成器控制信号CG_CNT,向主机300提供所生成的装置认证码DA_CODE。
缓冲器220可以从存储器装置100接收读取数据R_DATA,并且缓冲器220中可以存储所接收的读取数据R_DATA。缓冲器220可以响应于缓冲器控制信号BF_CNT,将所存储的读取数据R_DATA提供给主机300或认证码生成器212。
图7是示出图5和图6中的每一个所示的读取信息RI的示图。
参照图7,读取信息RI可以包括用于对写入保护区域的读取操作的值。例如,读取信息RI可以包括随机数值、地址值和块计数值。
随机数值可以是主机为主机提供给存储装置的一系列请求的安全性而生成的任意值。随机数值可以用于防止重放攻击。
地址值可以指示写入保护区域之中待读取的目标区域的地址。地址值可以是目标区域的起始地址值。
块计数值可以是目标区域中包括的存储块的数量。
可以通过地址值和块计数值确定写入保护区域之中的目标区域。
图8是示出根据实施例的安全写入的示图。
参照图8,在步骤S801中,主机300可以基于写入数据和与存储装置50共享的密钥来生成主机认证码。主机300可以通过使用消息认证码(MAC)算法来生成主机认证码。主机认证码可以用于验证写入数据的完整性。换言之,主机认证码可以用于验证在写入数据从主机300传输到存储装置50期间写入数据是否失真或调制。
主机300可以向存储装置50提供关于安全写入的一系列的第一至第三请求。
在步骤S803中,主机300可以向存储装置50提供第一请求。第一请求可以用于将写入数据编程到存储装置50的写入保护区域中。主机300可以向存储装置50提供第一请求、写入数据和主机认证码。
在步骤S805中,存储装置50可以响应于第一请求,向主机300提供指示是否已经接收到第一请求的第一响应。
在步骤S807中,主机300可以响应于第一响应向存储装置50提供第二请求。第二请求可以用于检查是否准备好收集对写入数据的编程操作的结果。
在步骤S809中,存储装置50可以响应于第二请求,向主机300提供指示是否已经接收到第二请求的第二响应。
在步骤S811中,主机300可以响应于第二响应向存储装置50提供第三请求。第三请求可以用于请求对写入数据的编程操作的结果。
在步骤S813中,存储装置50可以响应于第三请求,向主机300提供包括对写入数据的编程操作的结果的第三响应。编程操作的结果可以包括指示编程操作是已经通过还是已经失败的信息。编程操作的结果可以包括指示写入数据是否具有完整性的信息。
在步骤S815中,存储装置50可以从主机300同时接收写入数据和主机认证码与第一请求。
在步骤S817中,存储装置50可以基于所接收的写入数据和与主机300共享的密钥来生成装置认证码。存储装置50可以通过使用消息认证码(MAC)算法来生成装置认证码。
在步骤S819中,存储装置50可以验证写入数据是否具有完整性。根据验证结果,当确定写入数据具有完整性时,处理流程可以进行到步骤S821。可选地,当确定写入数据不具有完整性时,处理流程可以进行到步骤S813。
在步骤S821中,存储装置50可以执行将写入数据存储在写入保护区域中的编程操作。存储装置50可以在执行编程操作之后,生成指示编程操作是已经通过还是已经失败的信息。可以在步骤S813中将所生成的信息传输到主机。
图9是示出根据实施例的安全写入的示图。
参照图9,主机300可以向存储装置50提供关于安全写入的一系列的第一至第三请求。
在步骤S901中,主机300可以向存储装置50提供第一请求。第一请求可以用于将写入数据编程到存储装置50的写入保护区域中。主机300可以向存储装置50提供第一请求和写入数据。
在步骤S903中,主机300可以在向存储装置50提供第一请求之后生成主机认证码。主机300可以基于写入数据和与存储装置50共享的密钥来生成主机认证码。主机300可以通过使用消息认证码(MAC)算法来生成主机认证码。主机300可以与生成主机认证码并行地将写入数据提供给存储装置50。换言之,当将写入数据传输到存储装置50时,主机300可以开始生成主机认证码。
根据各个实施例,当主机300在步骤S903中生成主机认证码时,存储装置50可以在步骤S917中生成装置认证码。换言之,可以并行地执行生成主机认证码与生成装置认证码。
在步骤S905中,存储装置50可以响应于第一请求,向主机300提供指示是否已经接收到第一请求的第一响应。
在步骤S907中,当完成生成主机认证码时,主机300可以响应于第一响应向存储装置50提供第二请求。第二请求可以用于检查是否准备好收集对写入数据的编程操作的结果。主机300可以向存储装置50提供第二请求和主机认证码。
在步骤S909中,存储装置50可以响应于第二请求,向主机300提供指示是否已经接收到第二请求的第二响应。
在步骤S911中,主机300可以响应于第二响应向存储装置50提供第三请求。第三请求可以用于请求对写入数据的编程操作的结果。
在步骤S913中,存储装置50可以向主机300提供包括对写入数据的编程操作的结果的第三响应。编程操作的结果可以包括指示编程操作是已经通过还是已经失败的信息。编程操作的结果可以包括指示写入数据是否具有完整性的信息。
在步骤S915中,存储装置50可以从主机300同时接收写入数据与第一请求。
在步骤S917中,存储装置50可以基于所接收的写入数据和与主机300共享的密钥来生成装置认证码。存储装置50可以通过使用消息认证码(MAC)算法来生成装置认证码。
在步骤S919中,存储装置50可以确定是否已经从主机300接收到主机认证码。当确定已经接收到主机认证码时,处理流程可以进行到步骤S921。可选地,当确定尚未接收到主机认证码时,处理流程可以进行到步骤S925。
在步骤S921中,存储装置50可以验证写入数据是否具有完整性。根据验证结果,当确定写入数据具有完整性时,处理流程可以进行到步骤S923。可选地,当确定写入数据不具有完整性时,处理流程可以进行到步骤S913。
在步骤S923中,存储装置50可以执行将写入数据存储在写入保护区域中的编程操作。存储装置50可以在执行编程操作之后,生成指示编程操作是已经通过还是已经失败的信息。可以在步骤S913中将所生成的信息传输到主机。
在步骤S925中,存储装置50可以等待,直到从主机300同时接收到主机认证码与第二请求为止。在执行步骤S925之后,处理流程可以进行到步骤S919。
根据实施例,可以并行地执行生成主机认证码与将写入数据从主机300传输到存储装置50。因此,执行安全写入操作所需的时间可以减少生成主机认证码与传输写入数据重叠的时间。
根据实施例,可以并行地执行生成主机认证码与存储装置50生成装置认证码。因此,执行安全写入操作所需的时间可以减少生成主机认证码与生成装置认证码重叠的时间。
图10是示出根据实施例的图1所示的包括主机300和存储装置50的计算系统500的配置和操作的示图。
参照图10,存储装置50可以包括存储器装置100和存储器控制器200。
根据实施例,存储器装置100可以包括写入保护区域110。
写入保护区域110可以是存储已经验证为具有完整性的写入数据W_DATA的区域。完整性可以指从主机300接收的写入数据W_DATA没有失真或调制的状态。
存储器装置100可以响应于从存储器控制器200接收的编程命令,执行将已经验证为具有完整性的写入数据W_DATA存储在写入保护区域110中的编程操作。存储器装置100可以响应于从存储器控制器200接收的状态读取命令,向存储器控制器200提供状态读取响应STA_RES,该状态读取响应STA_RES包括指示编程操作是已经通过还是已经失败的信息。
根据实施例,存储器控制器200可以包括认证写入控制器230和数据验证组件240。
认证写入控制器230可以向主机300提供对从主机300接收的关于安全写入的一系列请求的响应。关于安全写入的一系列请求可以包括参照图8和图9描述的第一至第三请求。
例如,认证写入控制器230可以从主机300接收第一请求和写入数据W_DATA。认证写入控制器230可以响应于从主机300接收的第一请求,向主机300提供指示是否已经接收到第一请求的第一响应。第一请求可以用于将写入数据W_DATA编程到存储器装置100的写入保护区域110中。
认证写入控制器230可以从主机300接收第二请求和主机认证码HA_CODE。认证写入控制器230可以响应于从主机300接收的第二请求,向主机300提供指示是否已经接收到第二请求的第二响应。第二请求可以用于检查是否准备好收集对写入数据W_DATA的编程操作的结果。
认证写入控制器230可以从主机300接收第三请求,第三请求用于请求对写入数据W_DATA的编程操作的结果。认证写入控制器230可以响应于从主机300接收的第三请求,向主机300提供包括对写入数据W_DATA的编程操作的结果的第三响应。
认证写入控制器230可以控制存储器装置100将写入数据W_DATA存储在写入保护区域110中。例如,认证写入控制器230可以基于从数据验证组件240接收的认证信息AUT_INF来确定写入数据W_DATA是否具有完整性。认证写入控制器230可以向存储器装置100提供关于已经验证为具有完整性的写入数据W_DATA的编程命令。
认证写入控制器230可以在向存储器装置100提供编程命令之后,向存储器装置100提供状态读取命令以接收编程操作的结果。认证写入控制器230可以从存储器装置100接收指示编程操作的结果的状态读取响应STA_RES。状态读取响应STA_RES可以包括指示编程操作是已经通过还是已经失败的信息。
认证写入控制器230可以向主机300提供包括将写入数据W_DATA存储在写入保护区域110中的编程操作的结果的响应。编程操作的结果可以包括关于写入数据W_DATA是否具有完整性的信息以及关于编程操作是已经通过还是已经失败的信息。
数据验证组件240可以生成指示从主机300接收的写入数据W_DATA的完整性的认证信息AUT_INF。数据验证组件240可以向认证写入控制器230提供认证信息AUT_INF。
更具体地,数据验证组件240可以通过使用从主机300接收的写入数据W_DATA和与主机300共享的密钥来生成装置认证码。数据验证组件240可以基于将从主机300接收的主机认证码HA_CODE与装置认证码进行比较的结果,来生成指示写入数据W_DATA的完整性的验证信息AUT_INF。当认证写入控制器230从主机300接收第二请求时,可以接收主机认证码HA_CODE。
根据实施例,主机300可以包括主机处理器310和主机存储器320。
主机处理器310可以向存储器控制器200提供关于安全写入的一系列请求。一系列请求可以包括参照图8和图9描述的第一至第三请求。
主机处理器310可以向存储器控制器200提供第一请求和主机存储器320中存储的写入数据W_DATA。
主机处理器310可以在向存储器控制器200提供第一请求之后,基于写入数据W_DATA和与存储装置50共享的密钥来生成主机认证码HA_CODE。
主机处理器310可以与生成主机认证码HA_CODE并行地将写入数据W_DATA提供给存储器控制器200。换言之,可以并行地执行生成主机认证码HA_CODE与传输写入数据W_DATA。
当完成生成主机认证码HA_CODE时,主机处理器310可以响应于从存储器控制器200接收的第一响应,向存储器控制器200提供第二请求和主机认证码HA_CODE。
主机处理器310可以响应于从存储器控制器200接收的第二响应,向存储器控制器200提供用于请求对写入数据W_DATA的编程操作的结果的第三请求。
主机存储器320可以存储待提供给存储器控制器200的写入数据W_DATA。
根据实施例,可以并行地执行主机处理器310生成主机认证码HA_CODE与将写入数据W_DATA传输到存储装置50。因此,执行安全写入操作所需的时间可以减少生成主机认证码HA_CODE与传输写入数据W_DATA重叠的时间。
根据实施例,可以并行地执行主机处理器310生成主机认证码HA_CODE与数据验证组件240生成装置认证码。因此,执行安全写入操作所需的时间可以减少生成主机认证码HA_CODE与生成装置认证码重叠的时间。
图11是示出图10所示的数据验证组件240的示图。
参照图11,数据验证组件240可以包括装置认证码生成器241和认证码比较器242。数据验证组件240可以进一步包括加密密钥存储装置243。
装置认证码生成器241可以基于从主机接收的写入数据W_DATA和从加密密钥存储装置243接收的共享密钥KEY来生成装置认证码DA_CODE。装置认证码生成器241可以通过使用消息认证码(MAC)算法来生成装置认证码DA_CODE。装置认证码生成器241可以向认证码比较器242提供装置认证码DA_CODE。
认证码比较器242可以基于从主机接收的主机认证码HA_CODE与装置认证码DA_CODE之间的比较来生成指示写入数据W_DATA的完整性的认证信息AUT_INF。认证码比较器242可以根据主机认证码HA_CODE是否与装置认证码DA_CODE相同来确定写入数据W_DATA是否具有完整性。
加密密钥存储装置243可以存储主机和存储装置之间的共享密钥KEY。共享密钥KEY可以用于生成认证码。可以将共享密钥KEY预先存储在加密密钥存储装置243中。可以响应于主机的请求来改变共享密钥KEY。
图12是示出可以与图1所示的存储器装置100相同或相似的存储器装置400的结构的示图。
参照图12,存储器装置400可以包括存储器单元阵列410、外围电路420和控制逻辑430。外围电路420可以包括地址解码器421、电压生成器422、读取和写入电路423、数据输入/输出电路424和感测电路425。
存储器单元阵列410可以包括可以通过行线RL联接到地址解码器421的多个存储块BLK1至BLKz。多个存储块BLK1至BLKz可以通过位线BL1至BLm联接到读取和写入电路423。多个存储块BLK1至BLKz中的每一个可以包括多个存储器单元。根据实施例,多个存储器单元可以是非易失性存储器单元。在多个存储器单元之中,联接到相同字线的存储器单元可以被定义为一个物理页面。换言之,存储器单元阵列410可以包括多个物理页面。根据本公开的实施例,存储器单元阵列410中的多个存储块BLK1至BLKz中的每一个可以包括多个虚设单元。至少一个虚拟单元可以串联联接在漏极选择晶体管和存储器单元之间以及源极选择晶体管和存储器单元之间。
存储器装置400的存储器单元可以包括存储一位数据的单层单元(SLC)、存储两位数据的多层单元(MLC)、存储三位数据的三层单元(TLC)和/或存储四位数据的四层单元(QLC)。
外围电路420可以驱动存储器单元阵列410。例如,外围电路420可以驱动存储器单元阵列410以执行编程操作、读取操作和擦除操作。
地址解码器421可以通过行线RL联接到存储器单元阵列410。行线RL可以包括漏极选择线、字线、源极选择线和公共源极线。根据本公开的实施例,字线可以包括普通字线和虚设字线。根据本公开的实施例,行线RL可以进一步包括管道选择线。
地址解码器421可以被配置为响应于控制逻辑430的控制而操作。地址解码器421可以从控制逻辑430接收地址ADDR。
地址解码器421可以被配置为对所接收的地址ADDR中的块地址进行解码。地址解码器421可以根据经解码的块地址来选择存储块BLK1至BLKz之中的至少一个存储块。地址解码器421可以被配置为对所接收的地址ADDR中的行地址进行解码。地址解码器421可以根据经解码的行地址来选择所选择的存储块的字线之中的至少一个字线。地址解码器421可以将从电压生成器422供应的操作电压Vop施加到所选择的字线。
在编程操作期间,地址解码器421可以将编程电压施加到所选择的字线,并且将低于编程电压的通过电压施加到未选择的字线。在编程验证操作期间,地址解码器421可以将验证电压施加到所选择的字线,并且将高于验证电压的验证通过电压施加到未选择的字线。
在读取操作期间,地址解码器421可以将读取电压施加到所选择的字线,并将高于读取电压的读取通过电压施加到未选择的字线。
根据本公开的实施例,存储器装置400可以对每个存储块执行擦除操作。在擦除操作期间,输入到存储器装置400的地址ADDR可以包括块地址。地址解码器421可以对块地址进行解码,并响应于经解码的块地址来选择至少一个存储块。在擦除操作期间,地址解码器421可以将接地电压施加到与所选择的存储块联接的字线。
根据本公开的实施例,地址解码器421可以被配置为对所传输的地址ADDR中的列地址进行解码。可以将经解码的列地址传输到读取和写入电路423。例如,地址解码器421可以包括诸如行解码器、列解码器和地址缓冲器的组件。
电压生成器422可以被配置为通过使用供应给存储器装置400的外部电源电压来生成多个操作电压Vop。电压生成器422可以响应于控制逻辑430的控制而操作。
根据实施例,电压生成器422可以通过调节外部电源电压来生成内部电源电压。由电压生成器422生成的内部电源电压可以用作用于存储器装置400的操作电压。
根据实施例,电压生成器422可以通过使用外部电源电压或内部电源电压来生成多个操作电压Vop。电压生成器422可以被配置为生成存储器装置400所需的各种电压。例如,电压生成器422可以生成多个擦除电压、多个编程电压、多个通过电压、多个所选择的读取电压和多个未选择的读取电压。
电压生成器422可以包括接收内部电源电压以生成具有各种电压电平的多个操作电压Vop的多个泵浦电容器(pumping capacitor),并且可以响应于控制逻辑430的控制,通过选择性地启用多个泵浦电容器来生成多个操作电压Vop。
生成的多个操作电压Vop可以由地址解码器421供应给存储器单元阵列410。
读取和写入电路423可以包括可以分别通过第一至第m位线BL1至BLm联接到存储器单元阵列410的第一至第m页面缓冲器PB1至PBm。缓冲器PB1至PBm可以响应于控制逻辑430的控制而操作。
页面缓冲器PB1至PBm可以与数据输入/输出电路424通信数据DATA。在编程操作期间,页面缓冲器PB1至PBm可以通过数据输入/输出电路424和数据线DL来接收待存储的数据DATA。
在编程操作期间,当将编程电压施加到所选择的字线时,页面缓冲器PB1至PBm可以将通过数据输入/输出电路424接收的待存储的DATA通过位线BL1至BLm传送到所选择的存储器单元。可以根据所传输的数据DATA来对所选择的页面的存储器单元进行编程。与施加编程许可电压(例如,接地电压)的位线联接的存储器单元可以具有增加的阈值电压。可以保持与施加编程禁止电压(例如,电源电压)的位线联接的存储器单元的阈值电压。在编程验证操作期间,页面缓冲器PB1至PBm可以通过位线BL1至BLm从所选择的存储器单元读取存储器单元中存储的数据DATA。
在读取操作期间,读取和写入电路423可以通过位线BL1至BLm从所选择的页面的存储器单元读取数据DATA,并且可以将所读取的数据DATA存储在页面缓冲器PB1至PBm中。
在擦除操作期间,读取和写入电路423可以使位线BL1至BLm浮置。根据实施例,读取和写入电路423可以包括列选择电路。
数据输入/输出电路424可以通过数据线DL联接到页面缓冲器PB1至PBm。数据输入/输出电路424可以响应于控制逻辑430的控制而操作。
数据输入/输出电路424可以包括接收输入数据DATA的多个输入/输出缓冲器(未示出)。在编程操作期间,数据输入/输出电路424可以从外部控制器(未示出)接收待存储的数据DATA。在读取操作期间,数据输入/输出电路424可以将从读取和写入电路423中的页面缓冲器PB1至PBm传输的数据DATA输出到外部控制器。
在读取操作或验证操作期间,感测电路425可以响应于由控制逻辑430生成的允许位VRYBIT信号而生成参考电流,并且可以通过将从读取和写入电路423接收的感测电压VPB与由参考电流生成的参考电压进行比较来将通过信号或失败信号输出到控制逻辑430。
控制逻辑430可以联接到地址解码器421、电压生成器422、读取和写入电路423、数据输入/输出电路424以及感测电路425。控制逻辑430可以被配置为控制存储器装置400的一般操作。控制逻辑430可以响应于从外部装置传输的命令CMD而操作。
控制逻辑430可以响应于命令CMD和地址ADDR,通过生成各种信号来控制外围电路420。例如,控制逻辑430可以响应于命令CMD和地址ADDR,输出操作信号OPSIG、地址ADDR、读取和写入电路控制信号PBSIGNALS以及允许位VRYBIT。控制逻辑430可以将操作信号OPSIG输出到电压生成器422,将地址ADDR输出到地址解码器421,将读取和写入电路控制信号PBSIGNALS输出到读取和写入电路423,并且可以将允许位VRYBIT输出到感测电路425。另外,控制逻辑430可以响应于由感测电路425输出的通过信号或失败信号PASS/FAIL,确定验证操作是已经通过还是已经失败。
图13是示出图12所示的存储器单元阵列410的示图。
参照图13,第一至第z存储块BLK1至BLKz可以共同联接到第一至第m位线BL1至BLm。在图13中,通过示例的方式,示出了多个存储块BLK1至BLKz之中的第一存储块BLK1中包括的组件。然而,理解的是,可以以与第一存储块BLK1基本相同的方式来配置其余存储块BLK2至BLKz中的每一个。
存储块BLK1可以包括多个单元串CS1_1至CS1_m,其中m是正整数。单元串CS1_1至CS1_m可以分别联接到位线BL1至BLm。单元串CS1_1至CS1_m中的每一个可以包括漏极选择晶体管DST、串联联接的多个存储器单元MC1至MCn以及源极选择晶体管SST,其中n是正整数。
单元串CS1_1至CS1_m中的每一个中包括的漏极选择晶体管DST的栅极端子可以联接到漏极选择线DSL1。单元串CS1_1至CS1_m中的每一个中包括的存储器单元MC1至MCn的栅极端子可以分别联接到字线WL1至WLn。单元串CS1_1至CS1_m中的每一个中包括的源极选择晶体管SST的栅极端子可以联接到源极选择线SSL1。
通过示例的方式,描述了多个单元串CS1_1至CS1_m之中的第一单元串CS1_1的结构。然而,理解的是,可以以与第一单元串CS1_1基本相同的方式来配置其余单元串CS1_2至CS1_m中的每一个。
第一单元串CS1_1中包括的漏极选择晶体管DST的漏极端子可以联接到第一位线BL1。第一单元串CS1_1中包括的漏极选择晶体管DST的源极端子可以联接到第一单元串CS1_1中包括的第一存储器单元MC1的漏极端子。存储器单元MC1至MCn可以彼此串联联接。第一单元串CS1_1中包括的源极选择晶体管SST的漏极端子可以联接到第一单元串CS1_1中的第n存储器单元MCn的源极端子。第一单元串CS1_1中包括的源极选择晶体管SST的源极端子可以联接到公共源极线CSL。根据实施例,公共源极线CSL可以公共地联接到存储块BLK1至BLKz。
漏极选择线DSL1、字线WL1至WLn以及源极选择线SSL1可以包括在图12所示的行线RL中。漏极选择线DSL1、第一至第n字线WL1至WLn以及源极选择线SSL1可以由地址解码器421控制。公共源极线CSL可以由控制逻辑430控制。位线BL1至BLm可以由读取和写入电路423控制。
图14是示出图1所示的存储器控制器的另一实施例的示图。
参照图14,存储器控制器1000可以联接到主机和存储器装置。存储器控制器1000可以响应于来自主机的请求访问存储器装置。例如,存储器控制器1000可以控制存储器装置的写入操作、读取操作、擦除操作和后台操作。存储器控制器1000可以提供存储器装置和主机之间的接口。存储器控制器1000可以被配置为驱动用于控制存储器装置的固件。
存储器控制器1000可以包括处理器1010、存储器缓冲器1020、错误校正码(ECC)块1030、主机接口1040、缓冲器控制器1050、存储器接口1060和总线1070。
总线1070可以提供存储器控制器1000的组件之间的通道。
处理器1010可以控制存储器控制器1000的整体操作并且可以执行逻辑操作。处理器1010可以通过主机接口1040与外部主机通信,并且通过存储器接口1060与存储器装置通信。进一步地,处理器1010可以通过缓冲器控制器1050与存储器缓冲器1020通信。处理器1010可以通过使用存储器缓冲器1020作为工作存储器、高速缓存存储器或缓冲存储器来控制存储装置的操作。
处理器1010可以执行闪存转换层(FTL)的功能。处理器1010可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且通过使用映射表来将LBA转换为PBA。根据映射单元,FTL可以有各种地址映射方法。典型的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器1010可以被配置为使从主机接收的数据随机化。例如,处理器1010可以使用随机化种子来使从主机接收的数据随机化。可以将经随机化的数据作为待存储的数据提供给存储器装置,并且可以将该经随机化的数据编程到存储器单元阵列中。
处理器1010可以被配置为在读取操作期间使从存储器装置接收的数据去随机化。例如,处理器1010可以使用去随机化种子使从存储器装置接收的数据去随机化。可以将经去随机化的数据输出到主机。
根据实施例,处理器1010可以运行软件或固件以执行随机化操作和去随机化操作。
存储器缓冲器1020可以用作处理器1010的工作存储器、高速缓存存储器或缓冲存储器。存储器缓冲器1020可以存储由处理器1010运行的代码和命令。存储器缓冲器1020可以存储由处理器1010处理的数据。存储器缓冲器1020可以包括静态RAM(SRAM)或动态RAM(DRAM)。
ECC块1030可以执行错误校正。ECC块1030可以基于通过存储器接口1060待被写入到存储器装置的数据来执行ECC编码。可以通过存储器接口1060将经ECC编码的数据传输到存储器装置。ECC块1030可以对通过存储器接口1060从存储器装置接收的数据执行ECC解码。例如,ECC块1030可以作为存储器接口1060的组件被包括并且被设置在存储器接口1060中。
主机接口1040可以被配置为在处理器1010的控制下与外部主机通信。主机接口1040可以使用诸如以下的各种通信方法中的至少一种来执行通信:通用串行总线(USB)、串行AT附件(SATA)、串列SCSI(SAS)、高速芯片间(HSIC)、小型计算机系统接口(SCSI)、外围组件互连(PCI)、高速PCI(PCIe)、高速非易失性存储器(NVMe)、通用闪存(UFS)、安全数字(SD)、多媒体卡(MMC)、嵌入式MMC(eMMC)、双列直插式存储器模块(DIMM)、寄存式DIMM(RDIMM)和/或低负载DIMM(LRDIMM)。
缓冲器控制器1050可以被配置为在处理器1010的控制下控制存储器缓冲器1020。
存储器接口1060可以被配置为在处理器1010的控制下与存储器装置通信。存储器接口1060可以通过通道与存储器装置交换命令、地址和数据。
在实施例中,存储器控制器1000不包括存储器缓冲器1020和缓冲器控制器1050。相反,可以分别提供这些组件中的一个或两个,和/或可以将这些组件中的一个或两个的功能分布在存储器控制器1000中。
例如,处理器1010可以使用代码来控制存储器控制器1000的操作。处理器1010可以从设置在存储器控制器1000中的非易失性存储器装置(例如,只读存储器(ROM))加载代码。在另一示例中,处理器1010可以通过存储器接口1060从存储器装置加载代码。
例如,存储器控制器1000的总线1070可以分为控制总线和数据总线。数据总线可以被配置为在存储器控制器1000中传输数据,控制总线可以被配置为在存储器控制器1000中传输诸如命令和地址的控制信息。数据总线和控制总线可以彼此分离,以便不会相互干扰或相互影响。数据总线可以联接到主机接口1040、缓冲器控制器1050、ECC块1030和存储器接口1060。控制总线可以联接到主机接口1040、处理器1010、缓冲器控制器1050、存储器缓冲器1020和存储器接口1060。
根据实施例,图5所示的认证读取控制器210可以被包括在处理器1010中,并且缓冲器220可以被包括在存储器缓冲器1020中。根据实施例,图10所示的认证写入控制器230和数据验证组件240可以被包括在处理器1010中。
图15是示出根据本公开的实施例的应用存储装置的存储卡系统2000的框图。
参照图15,存储卡系统2000可以包括存储器控制器2100、存储器装置2200和连接器2300。
存储器控制器2100可以联接到存储器装置2200。存储器控制器2100可以访问存储器装置2200。例如,存储器控制器2100可以被配置为控制存储器装置2200的读取操作、写入操作、擦除操作和后台操作。存储器控制器2100可以被配置为提供存储器装置2200和主机之间的接口。存储器控制器2100可以被配置为驱动用于控制存储器装置2200的固件。可以以与上文参照图1描述的存储器控制器200相同的方式来配置存储器控制器2100。
例如,存储器控制器2100可以包括诸如随机存取存储器(RAM)、处理单元、主机接口、存储器接口和ECC块的组件。
存储器控制器2100可以通过连接器2300与外部装置通信。存储器控制器2100可以基于特定通信协议与外部装置(例如,主机)通信。例如,存储器控制器2100可以通过诸如以下的各种通信协议中的至少一种与外部装置通信:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和/或高速非易失性存储器(NVMe)。例如,连接器2300可以由上述各种通信协议中的至少一种来限定。
例如,存储器装置2200可以被实施为诸如以下的各种非易失性存储器装置中的任意一种:电可擦除可编程ROM(EEPROM)、NAND闪速存储器、NOR闪速存储器、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和/或自旋转移力矩磁性RAM(STT-MRAM)。
存储器控制器2100和存储器装置2200可以集成到单个半导体装置中以形成存储卡。例如,存储器控制器2100和存储器装置2200可以集成到单个半导体装置中并形成诸如以下的存储卡:个人计算机存储卡国际协会(PCMCIA)、紧凑式闪存(CF)卡、智能媒体卡(例如,SM或和SMC)、记忆棒、多媒体卡(例如,MMC、RS-MMC、微型MMC或eMMC)、安全数字(SD)卡(例如,SD、迷你SD、微型SD或和SDHC)和/或通用闪存(UFS)等。
图16是示出根据本公开的实施例的应用存储装置的固态驱动器(SSD)系统3000的框图。
参照图16,SSD系统3000可以包括主机3100和SSD 3200。SSD3200可以通过信号连接器3001与主机3100交换信号,并且可以通过电源连接器3002接收电力。SSD 3200可以包括SSD控制器3210、多个闪速存储器3221至322n、辅助电源3230和缓冲存储器3240。
根据实施例,SSD控制器3210可以执行上文参照图1描述的存储器控制器200的功能。
SSD控制器3210可以响应于从主机3100接收的信号来控制多个闪速存储器3221至322n。例如,信号可以基于主机3100和SSD 3200的接口。例如,信号可以由诸如以下的各种接口中的至少一种来限定:通用串行总线(USB)、多媒体卡(MMC)、嵌入式MMC(eMMC)、外围组件互连(PCI)、高速PCI(PCI-e或PCIe)、高级技术附件(ATA)、串行ATA(SATA)、并行ATA(PATA)、小型计算机系统接口(SCSI)、增强型小型磁盘接口(ESDI)、电子集成驱动器(IDE)、火线、通用闪存(UFS)、WiFi、蓝牙和/或高速非易失性存储器(NVMe)。
辅助电源3230可以通过电源连接器3002联接到主机3100。可以利用从主机3100供应的电力来对辅助电源3230进行充电。当来自主机3100的电力供应不平稳时,辅助电源3230可以供应SSD 3200的电力。例如,辅助电源3230可以设置在SSD 3200内部或外部。例如,辅助电源3230可以设置在主板上,并且可以向SSD 3200供应辅助电力。
缓冲存储器3240可以用作SSD 3200的缓冲存储器。例如,缓冲存储器3240可以临时存储从主机3100接收的数据或从多个闪速存储器3221至322n接收的数据,或者可以临时存储闪速存储器3221至322n的元数据(例如,映射表)。缓冲存储器3240可以包括诸如DRAM、SDRAM、DDR SDRAM、LPDDR SDRAM或GRAM的易失性存储器,或者诸如FRAM、ReRAM、STT-MRAM或PRAM的非易失性存储器。
根据实施例,主机3100可以以与参照图5或图10描述的主机300相同的方式操作。
图17是示出根据本公开的实施例的应用存储装置的用户系统4000的框图。
参照图17,用户系统4000可以包括应用处理器4100、存储器模块4200、网络模块4300、存储模块4400和用户接口4500。
应用处理器4100可以操作用户系统4000中包括的组件、操作系统(OS)或用户程序。例如,应用处理器4100可以包括用于控制用户系统4000中包括的组件的控制器、接口、图形引擎等。应用处理器4100可以被设置为片上系统(SoC)。
存储器模块4200可以用作用户系统4000的主存储器、工作存储器、缓冲存储器或高速缓存存储器。存储器模块4200可以包括诸如DRAM、SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3SDRAM、LPDDR SDRAM、LPDDR2 SDRAM和LPDDR3 SDRAM的易失性随机存取存储器或诸如PRAM、ReRAM、MRAM和FRAM的非易失性随机存取存储器。例如,应用处理器4100和存储器模块4200可以基于堆叠封装(POP)而进行封装,然后可以被设置为单个半导体封装。
网络模块4300可以与外部装置通信。例如,网络模块4300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长期演进(LTE)、Wimax、WLAN、UWB、蓝牙或WiFi的无线通信。例如,网络模块4300可以包括在应用处理器4100中。
存储模块4400可以存储数据。例如,存储模块4400可以存储从应用处理器4100接收的数据。可选地,存储模块4400可以将存储模块4400中存储的数据传输到应用处理器4100。根据实施例,存储模块4400可以被实施为诸如相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、NAND闪速存储器、NOR闪速存储器或具有三维(3D)结构的NAND闪速存储器的非易失性半导体存储器装置。例如,存储模块4400可以被设置为诸如存储卡或用户系统4000的外部驱动器的可移动存储介质(即,可移动驱动器)。
根据实施例,存储模块4400可以包括多个非易失性存储器装置,并且多个非易失性存储器装置可以以与上文参照图1描述的存储器装置相同的方式操作。存储模块4400可以以与上文参照图1描述的存储装置50相同的方式操作。
用户接口4500可以包括将数据或命令输入到应用处理器4100或将数据输出到外部装置的接口。例如,用户接口4500可以包括用户输入界面,诸如键盘、小键盘、按钮、触摸面板、触摸屏、触摸板、触摸球、摄像机、麦克风、陀螺仪传感器、振动传感器或压电装置。用户接口4500可以进一步包括诸如液晶显示器(LCD)、有机发光二极管(OLED)显示装置、有源矩阵OLED(AMOLED)显示装置、LED、扬声器或监控器的用户输出接口。
根据本公开的实施例,提供一种具有提高的安全读取性能的计算系统及该计算系统的操作方法。
尽管已经结合各个实施例示出并描述了本发明,但是本领域技术人员将根据本公开理解的是,在不脱离本发明的精神和范围的情况下,可以对形式和操作进行各种改变。本发明涵盖落入权利要求的范围内的所有改变。

Claims (20)

1.一种存储装置,包括:
存储器装置,包括写入保护区域;以及
存储器控制器,响应于从主机接收的关于安全读取的一系列请求,控制所述存储器装置对所述写入保护区域执行读取操作,将从所述存储器装置接收的读取数据提供给所述主机,并且基于所述读取数据来生成装置认证码,
其中所述存储器控制器将所述读取数据提供给所述主机并且并行地生成所述装置认证码。
2. 根据权利要求1所述的存储装置,其中所述存储器控制器包括:
认证读取控制器,响应于所述一系列请求之中的第一请求,基于从所述主机接收的读取信息来控制所述存储器装置执行所述读取操作,并且响应于所述一系列请求之中的第二请求,将所述装置认证码提供给所述主机;以及
缓冲器,存储从所述存储器装置接收的所述读取数据。
3.根据权利要求2所述的存储装置,其中所述认证读取控制器响应于所述第一请求,将指示是否已经接收到所述第一请求的第一响应提供给所述主机,并且响应于所述第二请求,将包括所述装置认证码的第二响应提供给所述主机。
4.根据权利要求3所述的存储装置,其中所述认证读取控制器响应于所述第一请求,在将所述读取数据提供给所述主机之后,将所述第一响应提供给所述主机。
5.根据权利要求3所述的存储装置,其中所述认证读取控制器响应于所述第二请求,在将所述读取数据提供给所述主机之后,将所述第二响应提供给所述主机。
6. 根据权利要求2所述的存储装置,其中所述认证读取控制器基于所述读取数据和与所述主机共享的密钥来生成所述装置认证码。
7.根据权利要求2所述的存储装置,其中所述第一请求指示对所述写入保护区域待执行的所述读取操作,并且
其中所述第二请求用于收集所述读取操作的结果。
8.根据权利要求2所述的存储装置,其中所述读取信息包括:由所述主机为所述一系列请求的安全性而生成的随机数值、所述写入保护区域内待读取的目标区域的起始地址值以及为所述目标区域中的块的数量的块计数值。
9.一种操作存储装置的方法,所述方法包括:
从主机接收读取信息和关于安全读取的一系列请求之中的第一请求;
基于所述读取信息来读取写入保护区域中存储的数据;
基于读取数据来生成装置认证码;并且
将所述读取数据提供给所述主机,
其中并行地执行生成所述装置认证码与提供所述读取数据。
10.根据权利要求9所述的方法,进一步包括:响应于所述第一请求,将指示是否已经接收到所述第一请求的第一响应提供给所述主机。
11. 根据权利要求10所述的方法,进一步包括:
从所述主机接收所述一系列请求之中的第二请求;并且
响应于所述第二请求,将包括所述装置认证码的第二响应提供给所述主机。
12.根据权利要求11所述的方法,其中响应于所述第一请求,将所述读取数据提供给所述主机。
13.根据权利要求11所述的方法,其中响应于所述第二请求,将所述读取数据提供给所述主机。
14.根据权利要求9所述的方法,其中所述读取信息包括:由所述主机为所述一系列请求的安全性而生成的随机数值、所述写入保护区域之中待读取的目标区域的起始地址值以及为所述目标区域中的块的数量的块计数值。
15.根据权利要求9所述的方法,其中生成所述装置认证码包括:基于所述读取数据和与所述主机共享的密钥来生成所述装置认证码。
16. 一种计算系统,包括:
主机;以及
存储装置,包括写入保护区域,所述存储装置:从所述主机接收读取信息和关于安全读取的一系列的第一请求和第二请求之中的所述第一请求;基于所述读取信息来读取所述写入保护区域中存储的数据;将读取数据提供给所述主机并且并行地基于读取数据来生成装置认证码。
17.根据权利要求16所述的计算系统,其中所述存储装置响应于所述第一请求,将指示是否已经接收到所述第一请求的第一响应以及所述读取数据提供给所述主机,并且响应于从所述主机接收的所述第二请求,将包括所述装置认证码的第二响应提供给所述主机。
18.根据权利要求16所述的计算系统,其中所述存储装置响应于所述第一请求,将指示是否已经接收到所述第一请求的第一响应提供给所述主机,并且响应于所述第二请求,将包括所述装置认证码的第二响应以及所述读取数据提供给所述主机。
19.根据权利要求16所述的计算系统,其中所述读取信息包括:由所述主机为一系列的所述第一请求和所述第二请求的安全性而生成的随机数值、所述写入保护区域之中待读取的目标区域的起始地址值以及为所述目标区域中的块的数量的块计数值。
20.根据权利要求16所述的计算系统,其中所述存储装置基于所述读取数据和与所述主机共享的密钥来生成所述装置认证码。
CN202010893314.4A 2020-03-09 2020-08-31 计算系统及其操作方法 Active CN113377691B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020200029238A KR20210113906A (ko) 2020-03-09 2020-03-09 컴퓨팅 시스템 및 그 동작 방법
KR10-2020-0029238 2020-03-09
KR10-2020-0029240 2020-03-09
KR1020200029240A KR20210113907A (ko) 2020-03-09 2020-03-09 컴퓨팅 시스템 및 그 동작 방법

Publications (2)

Publication Number Publication Date
CN113377691A CN113377691A (zh) 2021-09-10
CN113377691B true CN113377691B (zh) 2024-05-17

Family

ID=77555689

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010893314.4A Active CN113377691B (zh) 2020-03-09 2020-08-31 计算系统及其操作方法

Country Status (2)

Country Link
US (1) US11455102B2 (zh)
CN (1) CN113377691B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240129282A1 (en) * 2022-10-12 2024-04-18 Samsung Electronics Co., Ltd. Systems, methods, and apparatus for protection for device data transfers

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9258111B2 (en) * 2011-12-16 2016-02-09 Samsung Electronics Co., Ltd. Memory device which protects secure data, method of operating the memory device, and method of generating authentication information
CN110096908A (zh) * 2018-01-31 2019-08-06 爱思开海力士有限公司 存储装置及存储装置的操作方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4242682B2 (ja) * 2003-03-26 2009-03-25 パナソニック株式会社 メモリデバイス
US8341417B1 (en) 2006-12-12 2012-12-25 Cisco Technology, Inc. Data storage using encoded hash message authentication code
KR20080067774A (ko) * 2007-01-17 2008-07-22 삼성전자주식회사 허가되지 않은 메모리 접근으로부터 비밀 영역을 보호하기위한 방법 및 시스템
JP4976991B2 (ja) * 2007-11-22 2012-07-18 株式会社東芝 情報処理装置、プログラム検証方法及びプログラム
US8312275B2 (en) 2010-01-06 2012-11-13 Calix, Inc. Network device authentication
TWI436372B (zh) * 2010-01-28 2014-05-01 Phison Electronics Corp 快閃記憶體儲存系統及其控制器與防資料竄改方法
JP5419776B2 (ja) * 2010-03-30 2014-02-19 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理方法
US9063968B2 (en) 2010-08-02 2015-06-23 Cleversafe, Inc. Identifying a compromised encoded data slice
WO2012079069A2 (en) 2010-12-10 2012-06-14 Gail Bronwyn Lese Electronic health record web-based platform
US8839001B2 (en) 2011-07-06 2014-09-16 The Boeing Company Infinite key memory transaction unit
JP2013069250A (ja) 2011-09-26 2013-04-18 Toshiba Corp 記憶装置および書き込み装置
US9413538B2 (en) * 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
KR101991905B1 (ko) 2012-07-19 2019-06-24 삼성전자주식회사 불휘발성 메모리, 불휘발성 메모리의 읽기 방법 및 불휘발성 메모리를 포함하는 메모리 시스템
JP6021759B2 (ja) * 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
US10257192B2 (en) 2014-05-29 2019-04-09 Samsung Electronics Co., Ltd. Storage system and method for performing secure write protect thereof
US9678760B2 (en) * 2014-08-01 2017-06-13 Samsung Electronics Co., Ltd. Memory card and storage system having authentication program and method for operating thereof
US11042657B2 (en) 2017-09-30 2021-06-22 Intel Corporation Techniques to provide client-side security for storage of data in a network environment
JP2020027341A (ja) 2018-08-09 2020-02-20 キオクシア株式会社 ストレージ装置およびデータ改ざん検証方法
JP2020119298A (ja) 2019-01-24 2020-08-06 キオクシア株式会社 メモリシステム
US10809925B2 (en) 2019-01-28 2020-10-20 Macronix International Co., Ltd. Configurable security memory region
US11184170B2 (en) * 2019-06-28 2021-11-23 Micron Technology, Inc. Public key protection techniques
US11144214B2 (en) 2019-07-25 2021-10-12 Micron Technology, Inc. Memory authentication
KR20210090505A (ko) 2020-01-10 2021-07-20 삼성전자주식회사 메모리 컨트롤러, 및 이를 포함하는 스토리지 장치
KR20210104278A (ko) 2020-02-17 2021-08-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US11461021B2 (en) * 2020-03-09 2022-10-04 SK Hynix Inc. Computing system and operating method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9258111B2 (en) * 2011-12-16 2016-02-09 Samsung Electronics Co., Ltd. Memory device which protects secure data, method of operating the memory device, and method of generating authentication information
CN110096908A (zh) * 2018-01-31 2019-08-06 爱思开海力士有限公司 存储装置及存储装置的操作方法

Also Published As

Publication number Publication date
US20210278978A1 (en) 2021-09-09
CN113377691A (zh) 2021-09-10
US11455102B2 (en) 2022-09-27

Similar Documents

Publication Publication Date Title
KR102501776B1 (ko) 저장 장치 및 그 동작 방법
KR20190099693A (ko) 메모리 시스템 및 그것의 동작 방법
US11307803B2 (en) Storage device for suspending program operation and performing read operation and operating method thereof
US11543986B2 (en) Electronic system including host, memory controller and memory device and method of operating the same
CN111459845B (zh) 存储装置、包括存储装置的计算系统及其操作方法
CN111444115B (zh) 存储装置及其操作方法
CN111352855B (zh) 具有提高的映射更新速度的存储装置及其操作方法
CN111177020B (zh) 存储装置及其操作方法
US11461021B2 (en) Computing system and operating method thereof
CN113377692A (zh) 计算系统及其操作方法
US10606747B2 (en) Storage device and method of operating the same
KR20210090439A (ko) 메모리 컨트롤러 및 그 동작 방법
CN111435333B (zh) 存储装置及其操作方法
CN111192617B (zh) 存储装置及其操作方法
US11422739B2 (en) Memory controller and method of operating the same
US11726708B2 (en) Storage device which stores write data and an authentication code into a protected memory block and method of operating the same
CN113377691B (zh) 计算系统及其操作方法
CN112015588B (zh) 存储控制器以及操作该存储控制器的方法
CN114510371A (zh) 存储装置及操作存储装置的方法
CN114254402A (zh) 数据存储装置及其操作方法
US11868658B2 (en) Memory controller including first processor for generating commands and second processor for generating logging information and method of operating the memory controller
US11500768B2 (en) Storage device performing garbage collection and method of operating the same
US11586370B2 (en) Memory controller and method of operating the same
CN110750208B (zh) 存储装置及操作该存储装置的方法
KR20210113907A (ko) 컴퓨팅 시스템 및 그 동작 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant