CN111158582A - 存储装置和电子装置 - Google Patents

存储装置和电子装置 Download PDF

Info

Publication number
CN111158582A
CN111158582A CN201911010771.8A CN201911010771A CN111158582A CN 111158582 A CN111158582 A CN 111158582A CN 201911010771 A CN201911010771 A CN 201911010771A CN 111158582 A CN111158582 A CN 111158582A
Authority
CN
China
Prior art keywords
data
memory
page
size
location
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
CN201911010771.8A
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 CN111158582A publication Critical patent/CN111158582A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开电子装置和存储装置。所述电子装置包括存储器和处理器。存储器存储关于存储装置的数据区域的第一位置的第一数据和关于数据区域的第二位置的第二数据。当包括在第一页中的第一数据的大小小于参考大小并且包括在与第一页不同的第二页中的第二数据的第二大小小于所述参考大小时,处理器输出包括第一数据和第二数据的数据块,并且输出与关于第一数据的第一位置有关的第一元数据和与关于第二数据的第二位置有关的第二元数据。数据块的大小小于第一页的大小和第二页的大小的第一和。

Description

存储装置和电子装置
本申请要求于2018年11月7日提交到韩国知识产权局的第10-2018-0135853号韩国专利申请的优先权,所述韩国专利申请的公开通过引用完整地包含于此。
技术领域
实施例涉及一种存储装置和电子装置,更详细地讲,涉及一种存储装置和管理发送到存储装置的数据的电子装置。
背景技术
随着半导体技术的发展,电子装置的功能正在多样化。存储装置提供用于电子装置执行功能的操作。详细地讲,存储装置提供电子装置用于执行功能的数据或者存储由电子装置处理的数据。
电子装置通过使用主机装置来访问存储装置。主机装置可以是诸如中央处理器(CPU)、应用处理器(AP)或图形处理单元(GPU)的处理器。主机装置将在电子装置处处理的数据发送到存储装置,使得处理的数据被存储到存储装置。
存储装置以给定的基础接收数据。因此,主机装置以给定的基础输出数据。例如,主机装置以块为基础输出数据。在这种情况下,无指示数据(denoteingless data)会包括在从主机装置输出的数据中。此外,从主机装置发送到存储装置的数据在量上不必要地增加。
发明内容
一个方面提供一种减少将被发送到存储装置的数据的量的电子装置。
根据示例性实施例的一个方面,提供一种电子装置,包括:存储器,被配置为:存储关于存储装置的数据区域的第一位置生成的第一部分数据和关于所述数据区域的第二位置生成的第二部分数据;以及处理器,其中,当包括在第一页中的第一部分数据的第一大小小于参考大小并且包括在与第一页不同的第二页中的第二部分数据的第二大小小于所述参考大小时,处理器输出包括第一部分数据和第二部分数据的一个或多个数据块,并且输出包括第一信息的第一元数据和包括第二信息的第二元数据,第一信息与关于第一部分数据的第一位置有关,第二信息与关于第二部分数据的第二位置有关,其中,所述一个或多个数据块的大小小于第一页的大小和第二页的大小的第一和。
根据示例性实施例的另一方面,提供一种存储装置,包括:第一存储器,被配置为:存储通过将分别包括在多个页中的部分数据合并而生成的一个或多个数据块,并且存储所述部分数据之中的关于第一位置而生成的第一部分数据的第一元数据;以及第二存储器,被配置为:通过使用第一元数据将第一部分数据存储在与第一位置相关联的第二位置处,其中,所述一个或多个数据块的大小小于所述多个页中的每个页的大小。
根据示例性实施例的另一方面,提供一种存储装置,包括:第一存储器,被配置为:接收通过将分别包括在多个页中的部分数据合并而生成的一个或多个数据块,并存储所述部分数据;以及第二存储器,其中,响应于包括关于第一存储器的第一位置的第一信息和关于第二位置的第二信息的信号在第一存储器处被接收,第二存储器基于所述信号将所述部分数据之中的存储在第一位置处的第一部分数据存储在第二位置处,其中,所述一个或多个数据块的大小小于所述多个页的大小,其中,所述部分数据的大小小于所述多个页中的每个页的大小。
根据示例性实施例的另一方面,提供一种处理器和存储装置,处理器被配置为:将均包括文件数据的多个部分页合并到合并页中,部分页的大小小于参考大小;将元数据写入合并页中,元数据包括关于合并页中的文件数据的信息;以及从合并页生成块大小的一个或多个数据块。存储装置被配置为:从所述处理器接收所述一个或多个数据块,并基于元数据将所述一个或多个数据块写入存储器中。
附图说明
通过参照附图详细描述上述和其它方面的示例性实施例,上述和其它方面将变得清楚,其中:
图1是示出根据实施例的电子装置的示例性配置的框图;
图2是示出根据实施例的电子装置的示例性配置的框图;
图3是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图;
图4是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图;
图5是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图;
图6是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图;
图7是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的流程图;
图8是用于描述根据实施例的将数据存储在图2中所示的电子装置处的方法的概念图;
图9是用于描述根据实施例的图2中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的概念图;
图10是用于描述根据实施例的图2中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的流程图;
图11是用于描述根据实施例的图2中所示的电子装置的存储装置读取文件数据的方法的概念图;
图12是示出根据实施例的电子装置的示例性配置的框图;
图13是用于描述根据实施例的图12中所示的电子装置的存储装置将文件数据存储到数据区域的方法的概念图;
图14是用于描述根据实施例的图12中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的概念图;以及
图15是用于描述图12中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的流程图。
具体实施方式
下面,将详细并清楚地描述各种实施例,以达到本领域普通技术人员可容易地实现各种实施例的程度。
图1是示出根据实施例的电子装置的示例性配置的框图。
电子装置1000可用各种类型的电子装置(诸如,智能电话、平板个人计算机(PC)、膝上型PC、电子书阅读器、MP3播放器、可穿戴装置等)中的一种来实现。
电子装置1000可包括各种电子电路。例如,电子装置1000的电子电路可包括:主处理器100、存储器200、存储装置300、图像处理块1100、通信块1200、音频处理块1300、显示装置1400和用户接口1600。
图像处理块1100可通过透镜1110接收光。包括在图像处理块1100中的图像传感器1120和图像信号处理器1130可基于接收到的光生成与外部对象相关联的图像数据。
通信块1200可通过天线1210与外部装置/***交换信号。通信块1200的收发器1220和调制器/解调器(MODEM)1230可按照各种无线通信协议处理与外部装置/***交换的信号。
音频处理块1300可通过使用音频信号处理器1310来处理声音信息,从而播放和输出音频。音频处理块1300可通过麦克风1320接收音频输入。音频处理块1300可通过扬声器1330输出播放的音频。
显示装置1400可从外部装置(例如,主处理器100)接收数据。显示驱动器电路1420可基于输入到显示装置1400的数据在显示面板1410中显示图像。
存储器200可存储用于电子装置1000的操作的数据。例如,存储器200可临时存储由主处理器100处理的数据或将由主处理器100处理的数据。例如,存储器200可包括易失性存储器(诸如,静态随机存取存储器(SRAM)、动态RAM(DRAM)或同步DRAM(SDRAM))和/或非易失性存储器(诸如,相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(ReRAM)或铁电RAM(FRAM))。
存储装置300可以是物理存储装置。在这种情况下,存储装置300可包括一个或多个非易失性存储器、存储器控制器和缓冲器。无论电力是否被供应到非易失性存储器,非易失性存储器都可存储数据。例如,非易失性存储器可包括闪存、PRAM、MRAM、ReRAM、FRAM等中的至少一种。例如,非易失性存储器可包括可拆装式存储器(诸如,安全数字(SD)卡)和/或嵌入式存储器(诸如,嵌入式多媒体卡(eMMC))。
可选地,存储装置300可以是由操作***中的虚拟存储驱动器操作的虚拟存储装置。在这种情况下,存储装置300可不受物理存储装置的限制来存储数据。
用户接口1600可仲裁用户与电子装置1000之间的通信。例如,用户接口1600可包括输入接口(诸如,小键盘、按钮、触摸屏、触摸板、陀螺仪传感器、振动传感器和/或加速度传感器)。例如,用户接口1600可包括输出接口(诸如,电机和/或LED灯等)。
主处理器100可控制电子装置1000的组件的整体操作。为了操作电子装置1000的目的,主处理器100可处理各种操作。例如,主处理器100可用操作处理装置/电路来实现,该操作处理装置/电路包括一个或多个处理器核(诸如,通用处理器、专用处理器、应用处理器或微处理器)。
主处理器100可处理存储在存储器200和/或存储装置300中的数据。主处理器100可控制存储器200和/或存储装置300,使得处理的数据被存储到存储器200和/或存储装置300。为了减少将被发送到存储装置300的数据的量的目的,主处理器100可管理数据。将参照图3至图7更充分地描述主处理器100管理数据的方法的示例性实施例。
然而,图1中所示的示例性组件被提供用于更好地理解,而不意图限制本发明构思。例如,在一些实施例中,电子装置1000可省略图1中所示的组件中的一个或多个,额外地或可选地,电子装置1000还可包括图1中未示出的至少一个组件。
图2是示出根据实施例的电子装置的示例性配置的框图。
电子装置1000a可包括处理器100a、存储器200a和存储装置300a。
处理器100a可对应于图1中所示的主处理器100。处理器100a可以是诸如中央处理器(CPU)、应用处理器(AP)或图形处理器(GPU)的处理器。
处理器100a可驱动应用110、操作***(OS)120和文件***130。
应用110可以是在操作***120中执行的程序。
为了执行应用110的目的,操作***120可在存储器200a和/或存储装置300a处记录文件数据。可选地,为了执行应用110的目的,操作***120可读取记录在存储器200a和/或存储装置300a处的文件数据。在以下描述中,术语“文件数据”可表示从处理器100a发送到存储器200a和/或存储装置300a的所有数据。此外,术语“文件数据”可表示从存储器200a和/或存储装置300a读取的所有数据。
操作***120可包括处理与文件***130相关联的***调用的软件层。操作***120可在不同的文件***之间提供通用接口。操作***120可通过使用文件***130在存储器200a和/或存储装置300a处记录文件数据。此外,操作***120可通过使用文件***130来读取记录在存储器200a和/或存储装置300a处的文件数据。
文件***130可以是用于在存储器200a和/或存储装置300a处记录文件数据并且用于***地管理记录的文件数据的***。文件***130可以是诸如文件分配表(FAT)、新技术文件***(NTFS)、UNIX文件***(UFS)、第二扩展文件***(EXT2)、EXT3、EXT4或日志结构化文件***(LFS)的***。文件***130可获得并存储与文件的属性相关联的元数据。详细地讲,元数据可指示关于文件数据的属性(诸如,文件数据的大小和文件数据存储到的存储装置300a的位置)的信息。
可将虚拟地址空间分配给处理器100a。处理器100a可将虚拟地址空间划分为具有给定大小的页。例如,在一些实施例中,页大小可以是4KB。
处理器100a可通过使用文件***130以页为基础来管理文件。处理器100a可以以页为基础来划分文件数据,并且可将划分的数据以页存储到存储器200a和/或存储到存储装置300a。处理器100a可在处理器100a内以页为基础来移动或处理文件数据。
处理器100a可以以块为基础将文件数据输出到存储器200a和/或存储装置300a。此外,处理器100a可以以块为基础从存储器200a和/或存储装置300a接收文件数据。处理器100a可通过使用文件***130将页划分成块。块大小不会大于页大小。例如,在页大小为4KB的情况下,块大小可以是4KB或512字节。下面,为了便于描述,假设块大小是页大小的一半。但这仅是示例。在块大小是页大小的一半的情况下,处理器100a可将一个页划分为两个块。
处理器100a可将元数据以及文件数据输出到存储器200a和/或存储装置300a。类似于处理器100a管理文件数据的方式,处理器100a可在处理器100a内以页为基础来管理元数据。此外,处理器100a可以以块为基础输出元数据。
根据实施例,处理器100a可管理数据。详细地讲,处理器100a可管理文件数据和/或元数据。处理器100a可管理数据,使得将被输出到存储装置300a的数据的量减少。将参照图3至图7更充分地描述处理器100a管理数据的方法。
存储器200a可对应于图1中所示的存储器200。例如,存储器200a的部分区域可被分配给主存储器。下面,将在存储器200a是DRAM的假设下给出描述,但是本发明构思不限于此。
存储器200a可存储数据。该数据可以是由处理器100a处理的数据或者将由处理器100a处理的数据。例如,存储器200a可存储用于驱动文件***130的数据。
存储装置300a可对应于图1中所示的存储装置300。存储装置300a可包括第一存储器310和第二存储器320。第一存储器310可以是易失性存储器(诸如,SRAM、DRAM或SDRAM)。第二存储器320可以是非易失性存储器(诸如,PRAM、MRAM、ReRAM或FRAM)。
存储装置300a可存储数据。该数据可以是由处理器100a处理的数据或将由处理器100a处理的数据。例如,该数据可以是文件数据和元数据。
存储装置300a可以以块为基础从处理器100a接收文件数据和元数据。在文件数据和元数据被接收的情况下,存储装置300a可将文件数据和元数据存储到第一存储器310。第一存储器310可包括映射表,映射表用于把将在处理器100a中使用的虚拟地址映射到将在第二存储器320中使用的实际地址。通过使用存储在映射表中的映射信息将虚拟地址映射到实际地址表示允许虚拟地址对应于实际地址。
存储装置300a可周期性地或者在特定条件被满足的情况下将存储在第一存储器310中的文件数据存储到第二存储器320。存储装置300a可通过使用映射表和元数据,将文件数据存储在第二存储器320的实际地址处。
图3是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图。为了更好地理解,在下面的说明中,图2将与图3一起被参照。
如参照图2和图3所述,处理器100a可以以页为基础来管理数据。
在存储在页上的数据的大小小于参考大小的情况下,处理器100a可在页上记录提示数据。参考大小可小于或等于页大小。例如,在一些实施例中,参考大小可以是页大小。例如,参考大小可以是页大小的一半。也就是说,参考大小可以是块大小。下面,将使用参考大小是页大小的示例来给出描述,但是本发明构思不限于此。此外,处理器100a可在单独的页处记录提示数据。
操作***120可通过函数(例如,write syscall函数)将关于文件和/或文件数据的信息输入到文件***130。在函数从操作***120被输入的情况下,文件***130可基于该函数在页上记录文件数据。
特定函数可包括关于文件描述符、数据的地址、计数等的信息。文件描述符可指示与文件数据相关联的文件。数据的地址可指示文件数据将被存储到的页的地址。数据的地址可表示为虚拟地址。计数可指示文件数据的大小。
详细地讲,参照图3中的第一页(Page 1),文件***130可接收write syscall函数。文件***130可基于该函数,在第一页上记录32字节的文件数据141。在这种情况下,记录在第一页上的文件数据141的大小可小于第一页的大小。因此,文件***130可在第一页上记录提示数据151。也就是说,提示数据151可指示记录在第一页上的文件数据141的大小小于第一页的大小。
提示数据151可指示文件数据141的偏移和计数。偏移可指示文件数据141相对于第一页的起始地址开始被记录到的地址。计数可指示记录在第一页上的文件数据141的大小。例如,在32字节的文件数据141从第一页的起始地址被记录的情况下,提示数据151的偏移值可以是“0”,并且提示数据151的计数值可以是“32”。
参照图3中的第二页(Page 2),文件***130可接收Iseek syscall函数和writesyscall函数。文件***130可基于函数从与第二页的起始地址间隔64字节的地址来记录32字节的文件数据142。文件***130可在记录了文件数据142之后记录提示数据152。例如,关于提示数据152,偏移值可以是“64”,计数值可以是“32”。
此外,在记录了文件数据142之后,文件***130可接收另一Iseek syscall函数和write syscall函数,并且可基于该函数来记录文件数据143。32字节的文件数据143可从与文件数据142的记录被完成的地址间隔3100字节的地址被记录。文件***130可在记录了文件数据143之后记录提示数据153。例如,关于提示数据153,偏移值可以是“3196”,计数值可以是“32”。
也就是说,在多个写入请求从操作***120被接收的情况下,文件***130可在第二页上记录两组提示数据152和153。然而,本发明构思不限于此。例如,在多个写入请求从操作***120被接收的情况下,文件***130可仅记录一组提示数据。在这种情况下,一组提示数据的偏移值可以是与第一次记录的文件数据142的偏移值对应的“64”。一组提示数据的计数值可以是“3164”,“3164”对应于在文件数据143被记录之后的偏移值“3228”与第一次记录的文件数据142的偏移值“64”之间的差。
参照图3中的第三页(Page 3),文件***130可接收write syscall函数。文件***130可基于该函数在第三页上记录4096字节的文件数据144。在这种情况下,记录在第三页上的文件数据144的大小可与第三页的大小相同。因此,文件***130可不在第三页上记录提示数据。
处理器100a可基于提示数据151、152和153来识别包括小于页的大小的文件数据的页。详细地讲,包括提示数据151的第一页(Page 1)可被识别为包括小于第一页的大小的文件数据141。不包括提示数据的第三页(Page 3)可被识别为包括与第三页的大小相同的文件数据144。
然而,本发明构思不限于此。例如,文件***130可在所有页上记录提示数据。在这种情况下,处理器100a可通过使用计数值,来识别包括其大小小于页的大小的文件数据的页。详细地讲,在计数值小于第一页的大小的情况下,第一页可被识别为包括其大小小于第一页的大小的文件数据141。在计数值与第三页的大小相同的情况下,第三页可被识别为包括其大小与第三页的大小相同的文件数据144。
图4是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图。为了更好地理解,在下面的描述中,图2将与图4一起被参照。
如参照图2和图4所述,处理器100a可在处理器100a内以页为基础来管理文件数据141a、142a和143a。然而,为了将文件数据141a、142a和143a输出到存储器200a和/或存储装置300a的目的,处理器100a可将页划分成块。
处理器100a可将一个页划分成多个块。块大小可小于页大小。在下面的描述中,假设块大小是页大小的一半。处理器100a可将一个页划分成两个块。第一页(Page 1)可被划分为第一块和第二块。第一块(Block 1)可包括文件数据141a。文件数据141a可以是与文件数据141相同的数据。在这个示例中,第二块(Block 2)可不包括文件数据。
第二页(Page 2)可被划分为第三块(Block 3)和第四块(Block 4)。第三块可包括文件数据142a。第四块可包括文件数据143a。文件数据142a和143a可以是分别与文件数据142和143相同的数据。
在第一块、第三块和第四块中的每个中,无指示数据可被记录在没有记录文件数据的剩余区域中。处理器100a可以以块为基础输出数据。因此,为了输出文件数据141a、142a和143a的目的,处理器100a可输出第一块、第三块和第四块中的数据。由于第一块、第三块和第四块中的数据被输出,所以无指示数据也可被输出到存储器200a和/或存储装置300a。在这种情况下,处理器100a可输出其量显著大于执行程序所需的文件数据141a、142a和143a的量的数据。由于大量的数据在处理器100a与存储器200a和/或存储装置300a之间交换,所以在发送数据时可能发生延迟。
图5是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的概念图。为了更好地理解,在下面的描述中,图2将与图5一起被参照。
如参照图2和图5所述,处理器100a可将页划分成块,并且可将文件数据141b、142b和143b输出到存储器200a和/或存储装置300a。与参照图4给出的描述不同,处理器100a可将文件数据141、142和143合并以生成块。详细地讲,处理器100a可通过将文件数据141、142和143合并来生成块,使得文件数据141、142和143彼此相邻而没有空的空间。
第一页(Page 1)可包括提示数据151,第二页(Page 2)可包括提示数据152和153。处理器100a可基于提示数据151、152和153来识别包括小于页的大小的文件数据的第一页和第二页。
处理器100a可通过将识别的第一页的文件数据141和识别的第二页的文件数据142和143合并来生成合并块(Merge Block)。图5中仅示出了一个合并块,但本发明构思不限于此。在文件数据141、142和143的大小之和大于一个合并块的大小的情况下,处理器100a可生成多个合并块。
处理器100a可通过使用提示数据151、152和153来生成合并块。
处理器100a可通过使用提示数据151来读取文件数据141。详细地讲,处理器100a可从提示数据151指示的偏移值“0”读取多达计数值“32”的数据。处理器100a读取的该数据可表示文件数据141。
处理器100a可通过使用提示数据152和153来读取文件数据142和143。详细地讲,处理器100a可从提示数据152指示的偏移值“64”读取多达计数值“32”的数据。处理器100a读取的该数据可表示文件数据142。处理器100a可从提示数据153指示的偏移值“3196”读取多达计数值“32”的数据。处理器100a读取的该数据可表示文件数据143。
第十页(Page 10)可包括与文件数据141、142和143的属性相关联的元数据145。元数据145可与一个或多个文件相关联。元数据145可指示包括在一个或多个文件中的文件数据的大小以及文件数据被存储到的地址和/或位置。
类似于以上参照图3给出的描述,处理器100a可在第十页上记录提示数据154。例如,关于提示数据154,偏移值可以是“0”,计数值可以是“32”。
处理器100a可基于提示数据154来识别包括大小小于页的大小的元数据145的第十页。处理器100a可通过使用提示数据154来读取元数据145。详细地讲,处理器100a可从提示数据154指示的偏移值“0”读取多达计数值“32”的数据。处理器100a读取的该数据可表示元数据145。
处理器100a可将文件数据141、142和143以及元数据145合并以生成合并块(MergeBlock)。详细地讲,如图5中所示,处理器100a可通过将文件数据141、142和143以及元数据145合并来生成合并块,使得文件数据141、142和143以及元数据145彼此相邻而没有空的空间。合并块的大小可小于第一页的大小、第二页的大小和第十页的大小之和。合并块可包括元区域和缓冲区域。处理器100a可将文件数据141b、142b和143b存储在缓冲区域中。处理器100a可将与文件数据141b、142b和143b的属性相关联的元数据145b存储在元区域中。
文件数据141b、142b和143b以及元数据145b可分别与文件数据141、142和143以及元数据145相同。也就是说,文件数据141b、142b和143b的属性信息可分别与文件数据141、142和143的属性信息相同。在文件数据141、142和143被生成为存储在与第二存储器320的第一位置相关联的空间中的情况下,文件数据141b、142b和143b可存储在与第一位置相关联的空间中。在这种情况下,元数据145和145b可包括关于第一位置的信息。
根据参照图4描述的方法,在输出第一块时,处理器100a还可输出与第一页相关联的第二块。也就是说,处理器100a可一起输出与一个页相关联的多个块。在这种情况下,为了在存储装置300a处记录文件数据141a、142a和143a的目的,处理器100a可输出四个块。
相比之下,根据参照图5描述的方法,为了在存储器200a和/或存储装置300a处记录文件数据141b、142b和143b的目的,处理器100a可输出一个合并块的数据。由于块对应于一组数据,所以发送块表示发送数据。因此,与图4中所示的块相比,处理器100a可减少将被输出到存储器200a和/或存储装置300a的数据的量。在电子装置1000a是小型电子装置(诸如,智能电话、平板PC或可穿戴装置)的情况下,小的大小的数据被记录在存储装置300a处的情况可能经常发生。在这种情况下,根据参照图5描述的方法,处理器100a可防止无指示数据被输出。也就是说,处理器100a可防止将被发送到存储装置300a的数据的量不必要地增加。
图6是用于描述根据实施例的图2中所示电子装置的处理器管理数据的方法的概念图。为了更好地理解,在下面的描述中,图2、图5和图6将一起被参照。
将参照图6描述的管理数据的方法可类似于参照图5描述的方法。然而,与参照图5给出的描述不同,处理器100a可生成合并缓冲块和合并元块,使得元数据145c以及文件数据141c、142c和143c被包括在不同的合并块中。元数据145c以及文件数据141c、142c和143c可分别对应于元数据145b以及文件数据141b、142b和143b。
如参照图6所述,处理器100a可将文件数据141、142和143合并以生成合并缓冲块。合并缓冲块可包括文件数据141c、142c和143c。
类似于将文件数据141、142和143合并的方式,处理器100a可通过使用元数据145来生成合并元块。元数据145c可包括包含在合并缓冲块中的文件数据141c、142c和143c的属性信息。将参照下面的表1来描述包括在元数据145c中的信息。
[表1]
索引 最终页地址 偏移 计数
0 5000 0 32
1 2000 64 32
2 2000 3196 32
索引可表示包括在合并缓冲块中的数据。详细地讲,索引(0)可表示文件数据141c。最终页地址可指示第二存储器320的存储文件数据的地址。最终页地址可以是虚拟地址。文件数据可存储在与虚拟地址对应的实际地址处。详细地讲,最终页地址5000可表示文件数据141c存储在与最终页地址5000对应的实际地址处。
偏移和计数可与包括在图3中所示的提示数据中的偏移和计数相同。
处理器100a可通过生成合并元块和合并缓冲块来独立地管理元数据145c以及文件数据141c、142c和143c。在下面的描述中,假设处理器100a生成合并元块和合并缓冲块。
图7是用于描述根据实施例的图2中所示的电子装置的处理器管理数据的方法的流程图。为了更好的理解,图3、图4和图6将一起被参照。处理器100a生成合并元块的方法与处理器100a生成合并缓冲块的方法相同。因此,将参照图7描述处理器100a生成合并缓冲块的方法,并且为了简洁,省略生成合并元块的方法的单独描述。
在操作S410中,处理器100a可在页上写入文件数据。参照图3,处理器100a可在第一页上记录文件数据141。处理器100a可在第二页上记录文件数据142和143。处理器100a可在第三页上记录文件数据144。
在操作S420中,处理器100a可将记录在页上的文件数据的大小与页的大小进行比较,以确定文件数据的大小是否小于页的大小。
当记录的文件数据的大小小于页大小(S420,“是”)时,在操作S430中,处理器100a可在页上写入提示数据。返回图3,处理器100a可分别在第一页和第二页上记录提示数据151和提示数据152。
当记录的文件数据的大小与页大小相同时(S420,“否”),处理器100a可不在页上写入提示数据。返回图3,处理器100a可不在第三页上记录提示数据。
在操作S440中,处理器100a可以以页为基础来管理文件数据。
在操作S450中,处理器100a可确定页是否包括提示数据。
当页包括提示数据(S450,“是”)时,在操作S460中,处理器100a可将包括在页中的文件数据合并以生成合并缓冲块。返回图6,处理器100a可将文件数据141、142和143合并以生成合并缓冲块。
当页不包括提示数据(S450,“否”)时,在操作S470中,处理器100a可将页划分成多个块。例如,如参照图4所述,第二页可被划分为两个块。
在操作S480中,处理器100a可将合并缓冲块或多个块输出到存储器200a和/或存储装置300a。也就是说,处理器100a可将合并缓冲块或多个块发送到存储器200a和/或存储装置300a。
图8是用于描述根据实施例的将数据存储在图2中所示的电子装置的存储装置处的方法的概念图。为了更好地理解,在下面的描述中,图6和图8将一起被参照。
处理器100a可向存储装置300a发送信号s1。信号s1可包括合并元块和合并缓冲块。存储装置300a可接收信号s1。存储装置300a可基于信号s1存储合并元块和合并缓冲块。
可在合并应用程序接口(API)中定义包括在信号s1中的与合并元块和合并缓冲块相关联的信息和/或请求。在一些实施例中,合并API可通过存储器控制器结合存储装置300的缓冲器(或下面参照图12描述的300a或300b)来实现。存储装置300a可按照合并API将合并元块和合并缓冲块存储到第一存储器310。此外,存储装置300a可按照合并API将文件数据141c、142c和143c存储到第二存储器320。将参照图9至图11描述存储装置300a按照合并API存储文件数据141c、142c和143c的方法。
详细地讲,在接收到信号s1的情况下,存储装置300a可将合并元块和合并缓冲块存储到第一存储器310。如参照图2所述,第一存储器310可存储映射表。映射表可用于将虚拟地址映射到实际地址。映射表可包括关于虚拟地址与对应于虚拟地址的实际地址之间的映射的信息。元数据145c可指示文件数据141c、142c和143c的虚拟地址。存储装置300a可通过使用映射表和元数据145c,获得关于与文件数据141c、142c和143c的虚拟地址对应的实际地址的信息。
处理器100a可向存储装置300a发送信号s2。存储装置300a可接收信号s2。存储装置300a可基于信号s2对元数据执行日志记录,以将存储在第一存储器310中的元数据145c日志记录到第二存储器320。在供应给电子装置1000a的电力突然断开的情况下或者在电子装置1000a被异常终止的情况下,
第一存储器310会丢失存储在其中的数据。“日志记录”表示为了应对以上情况的目的而将存储在第一存储器310中的元数据145c存储到第二存储器320。处理器100a可输出信号s2,使得日志记录被周期性地执行。例如,信号s2可以是刷入(flush)命令。此外,存储装置300a可每隔给定的时段自动执行日志记录。
如参照图5所述,在电子装置1000a是小的大小的装置的情况下,小的大小的数据可频繁地从处理器100a被发送到存储装置300a。这样,信号s2被生成的次数会增加。在日志记录通过信号s2被执行的情况下,存储装置300a可将包括元数据145c的合并元块发送到元区域。根据实施例,随着合并数据块的数量减少,合并元块的数量也可减少。也就是说,在日志记录被执行的情况下,从第一存储器310发送到第二存储器320的数据的量可减少。
第二存储器320可包括元区域和数据区域。下面,将给出用NAND闪存实现第二存储器320的示例的描述,但是本发明构思不限于此。第二存储器320可临时存储存储在第一存储器310中的数据,并且可输出存储的数据。例如,在日志记录被执行的情况下,第二存储器320可存储元数据145c。在供应到电子装置1000a的电力被断开然后被接通的情况下,第二存储器320可将存储在元区域中的元数据145c输出到第一存储器310。因此,可用相对快的存储器单元(诸如,单层单元(SLC))来实现元区域。相比之下,数据被输入到数据区域和从数据区域被输出的次数可小于数据被输入到元区域和从元区域被输出的次数。因此,可用相对慢的存储器单元(诸如,多层单元(MLC)或三层单元(TLC))来实现数据区域。
在一些实施例中,存储装置300a可将文件数据141c、142c和143c存储在元区域中。例如,在第一存储器310中可用存储空间被使用或否则不可用的情况下,存储装置300a可将文件数据141c、142c和143c存储在元区域中。
图8中示出了文件数据141c、142c和143c存储在第一存储器310和元区域中的示例,但是本发明构思不限于此。下面的表2示出了文件数据141c存储在第一存储器310中并且文件数据142c和143c存储在元区域中的情况。元数据145c可包括指示文件数据142c和143c是否存储在第一存储器310和元区域中的任何一个中的信息。将参照下面的表2描述包括在元数据145c中的信息。
[表2]
索引 当前位置 当前地址 最终页地址 偏移 计数
0 0 10 5000 0 32
1 1 50000 2000 64 32
2 1 51000 2000 3196 32
参照表1描述了索引、最终页地址、偏移和计数,因此,为了简洁和避免冗余,将省略额外的描述。当前位置可指示文件数据是否存储在第一存储器310和元区域中的任何一个中。当前位置的值为“0”的情况可表示文件数据存储在第一存储器310中。当前位置的值为“1”的情况可表示文件数据存储在元区域中。当前地址可指示存储文件数据的当前位置的地址。例如,元数据145c可指示文件数据141c存储在第一存储器310的与地址“10”对应的空间中。又例如,元数据145c可指示文件数据142c存储在元区域的与地址“50000”对应的空间中。
图9是用于描述根据实施例的图2中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的概念图。
如参照图8所述,存储装置300a可将文件数据141c、142c和143c存储到第一存储器310和/或存储装置300a的元区域。在特定条件被满足的情况下,存储装置300a可将存储在第一存储器310和/或元区域中的文件数据141c、142c和143c存储在数据区域中。
又例如,存储装置300a可周期性地将文件数据141c、142c和143c存储在数据区域中。
又例如,在第一存储器310中用于存储新的元数据的存储空间被使用或者否则不可用的情况下,存储装置300a可将文件数据141c、142c和143c存储在数据区域中。在将文件数据141c、142c和143c存储到数据区域之后,存储装置300a可删除元数据145c。存储装置300a可通过删除元数据145c来确保用于存储新的元数据的存储空间。
又例如,在第一存储器310中用于存储新的文件数据的存储空间被使用或者否则不可用的情况下,或者在元区域中用于存储新的文件数据的存储空间被使用或者否则不可用的情况下,存储装置300a可将文件数据141c、142c和143c存储在数据区域中。在将文件数据141c、142c和143c存储到数据区域之后,存储装置300a可删除文件数据141c、142c和143c。存储装置300a可通过删除文件数据141c、142c和143c来确保用于存储新的文件数据的存储空间。
又例如,在没有从处理器100a接收到信号的情况下或者在从处理器100a接收到信号的次数少的情况下,存储装置300a可将文件数据141c、142c和143c存储在数据区域中。存储装置300a可测量存储装置300a的I/O负载。“I/O负载”表示存储装置300a可响应于从处理器100a接收的信号而执行的工作的量。又例如,在I/O负载小的情况下,存储装置300a可将文件数据141c、142c和143c存储在数据区域中。下面,存储装置300a将文件数据141c、142c和143c存储在数据区域中的操作被称为“存储操作”。
随着信号被输入到存储装置300a的次数增加,I/O负载可增加。在存储装置300a执行存储操作时,任何其他操作可不被执行。也就是说,在存储装置300a执行存储操作时,任何其他操作可被延迟。虽然信号被接收的次数少并且I/O负载小,但是存储装置300a可执行存储操作,从而减少对任何其它操作的延迟的负担。此外,存储装置300a可基于I/O负载执行存储操作,从而预先防止存储装置300a的存储空间变得不足。因此,可提高存储装置300a的性能。
在特定条件被满足的情况下,存储装置300a可搜索元数据145c。存储装置300a可搜索元数据145c以确定将被存储在数据区域中的文件数据。在下面的描述中,假设存储装置300a确定将被存储在数据区域中的文件数据141c。
如参照图9所述,存储装置300a可通过使用映射表和元数据145c,获得关于文件数据141c将被存储到的实际地址的信息。实际地址可指示数据区域的旧页(Old page)。旧页可以是记录与文件数据141c相关联的文件数据144c的页。文件数据144c与文件数据141c相关联可表示文件数据141c和144c用于执行相同的程序。
存储装置300a可读取存储在旧页上的文件数据144c。存储装置300a可读取存储在第一存储器310和/或元区域中的文件数据141c。存储装置300a可将第一存储器310中的文件数据141c和144c合并。存储装置300a可将新页(New Page)分配给数据区域。存储装置300a可在新页上记录合并的文件数据141c和144c。
第二存储器320可以以页为基础来读取或存储数据。在第二存储器320中被使用的页的大小可大于在处理器100a中被使用的页的大小。例如,在处理器100a中被使用的页的大小可以是4KB,而在第二存储器320中被使用的页的大小可以是16KB或32KB。因此,包括在多个合并缓冲块中的文件数据可被存储在数据区域的一个页上。在将文件数据存储在数据区域中时,存储装置300a可同时在数据区域中记录将被存储在同一页上的文件数据。因此,可提高第二存储器320的速度。此外,第二存储器320的可用时间可变得更长。
图10是用于描述根据实施例的图2中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的流程图。为了更好地理解,在下面的描述中,图9将与图10一起被参照。
在特定条件被满足的情况下,在操作S510中,存储装置300a可确定将被存储在数据区域中的文件数据141c。
在操作S520中,存储装置300a可获得关于文件数据141c将被存储到的实际地址的信息。存储装置300a可通过使用映射表和元数据145c来获得关于文件数据141c将被存储到的实际地址的信息。实际地址可指示数据区域的旧页。
在操作S530中,存储装置300a可读取旧页。详细地讲,存储装置300a可读取存储在旧页上的文件数据144c。此外,存储装置300a可读取存储在第一存储器310和/或元区域中的文件数据141c。
在操作S540中,存储装置300a可将读取的文件数据141c和144c合并。也就是说,存储装置300a可将旧页的文件数据和存储在第一存储器310中的文件数据合并。
在操作S550中,存储装置300a可在新页上写入合并的文件数据141c和144c。例如,存储装置300a可在新页上记录合并的文件数据141c和144c或者对合并的文件数据141c和144c进行编程。存储装置300a可并行地执行第一存储器310的操作和第二存储器320的操作。详细地讲,存储装置300a可在执行操作S540和/或操作S550的同时搜索元数据145c。因此,在执行操作S540和/或操作S550的同时,存储装置300a可在文件数据141c被存储之后,确定将被存储在数据区域中的文件数据。因此,根据实施例,可有效地执行存储装置300a的操作。此外,可提高存储装置300的性能。
图11是用于描述根据实施例的图2中所示的电子装置的存储装置读取文件数据的方法的概念图。为了更好地理解,在下面的描述中,图8将与图11一起被参照。
存储装置300a可从处理器100a接收信号s3。信号s3可以是用于向存储装置300a请求读取操作的命令和/或信号。处理器100a可通过信号s3向存储装置300a请求存储在旧页处的文件数据。
信号s3可包括关于旧页的地址的信息。存储装置300a可将包括在元数据145c中的最终位置地址与信号s3指示的地址进行比较。
在包括在元数据145c中的最终位置地址中与信号s3指示的地址相同的地址被使用或者否则不可用的情况下,存储装置300a可不读取存储在存储器310中的文件数据141c、142c和143c。存储装置300a可读取存储在旧页上的文件数据144c。存储装置300a可将文件数据144c发送到处理器100a。也就是说,存储装置300a可仅输出存储在数据区域中的文件数据144c,而不考虑存储在第一存储器310中的文件数据141c、142c和143c。
在与信号s3指示的地址相同的地址存在于包括在元数据145c中的最终位置地址处的情况下,存储装置300a可读取存储在存储器310中的文件数据141c、142c和143c。下面,假设文件数据141c的最终位置地址与信号s3指示的地址相同。存储装置300a可读取存储在第一存储器310中的文件数据141c。此外,存储装置300a可读取存储在旧页上的文件数据144c。如参照图10所述,存储装置300a可将文件数据141c和144c合并。存储装置300a可将合并的文件数据141c和144c发送到处理器100a。也就是说,存储装置300a可输出存储在第一存储器310中的文件数据141c、142c和143c以及存储在数据区域中的文件数据144c。此外,存储装置300a可在新页上记录合并的文件数据141c和144c。类似于参照图10所述的存储操作,读取操作可被并行地执行。由于读取操作被并行地执行,所以存储装置300a可获得与参照图10所述的效果相同的效果。下面,省略以上给出的描述以避免冗余。
图12是示出根据实施例的电子装置的示例性配置的框图。为了更好地理解,在下面的描述中,图2将与图12一起被参照。
电子装置1000b可包括处理器100b、存储器200b和存储装置300b。处理器100b、存储器200b和存储装置300b的操作和配置可类似于图2中所示的处理器100a、存储器200a和存储装置300a的操作和配置。然而,与参照图2给出的描述不同,图2的电子装置的第一存储器310提供的操作可由存储器200b提供。例如,存储器200b可以是由操作***中的虚拟存储驱动器操作的虚拟存储装置。又例如,存储器200b可用物理存储装置(诸如,ROM或RAM)来实现。
如参照图2所述,处理器100b可将元数据145c合并以生成合并元块。处理器100b可将文件数据141c、142c和143c合并以生成合并缓冲块。
处理器100b可将合并元块和合并缓冲块发送到存储器200b。与参照图2给出的描述不同,存储器200b可存储合并元块、合并缓冲块和映射表。也就是说,图2中所示的由第一存储器310提供的操作和配置可由存储器200b实现。
处理器100b可向存储装置300b发送信号s5。信号s5可对应于参照图8描述的信号s2。然而,与信号s2不同,信号s5可省略合并元块。
存储装置300b可包括存储器320b。存储器320b可提供与图2中所示的第二存储器320对应的配置和操作。详细地讲,存储器320b可以是非易失性存储器。
存储器320b可包括元区域和数据区域。例如,元区域和数据区域可用物理上彼此分离的非易失性存储器来实现。在这种情况下,如在参照图8给出的描述中一样,元区域可用相对快的存储器单元(诸如,单层单元(SLC))来实现。数据区域可用相对慢的存储器单元(诸如,多层单元(MLC)或三层单元(TLC))来实现。又例如,元区域和数据区域可用一个存储器来实现。在这种情况下,元区域和数据区域可以是逻辑上分区的区域。
存储装置300b可接收信号s5。存储装置300b可基于信号s5将文件数据141c、142c和143c存储在元区域中。包括在合并缓冲块中的文件数据141c、142c和143c可通过处理器100b从存储器200b传送到存储装置300b。如参照图9所述,存储装置300b可以以页为基础来存储文件数据141c、142c和143c。文件数据141c、142c和143c可存储在元区域的源页上。
图13是用于描述根据实施例的图12中所示的电子装置的存储装置将文件数据存储到数据区域的方法的概念图。
如参照图12所述,存储装置300b可将文件数据141c、142c和143c存储在元区域中。处理器100b可向存储装置300b发送信号s6。存储装置300b可接收信号s6。信号s6可包括用于将存储在元区域中的文件数据141c、142c和143c存储在数据区域中的信息。
信号s6可包括关于存储在元区域中的文件数据141c、142c和143c之中的将被存储在数据区域中的文件数据142c和143c的信息。例如,信号s6可包括关于包括文件数据142c和143c的源页(Source Page)的地址、存储文件数据142c和143c的源页的位置以及文件数据142c和143c的大小的信息。详细地讲,在具有地址“100”的源页上从偏移值“64”起的128字节的文件数据可对应于文件数据142c和143c。
信号s6可包括关于存储与文件数据142c和143c相关联的文件数据148c的位置的信息。文件数据148c以及文件数据142c和143c可用于执行相同的程序。例如,信号s6可包括关于存储文件数据148c的原始页的地址以及文件数据148c的信息。详细地讲,存储装置300b可通过读取从具有地址“1000”的原始页的起始地址到偏移值“256”的空间,来读取文件数据148c。
信号s6可包括关于存储文件数据142c和143c的数据区域的位置的信息。例如,信号s6可包括将存储文件数据142c和143c的最终页的地址。存储装置300b可在最终页上记录文件数据142c、143c和148c。详细地讲,存储装置300b可在具有地址“2000”的最终页上记录文件数据142c、143c和148c。
也就是说,与存储装置300a不同,存储装置300b可基于包括在信号s6中的信息来读取文件数据142c、143c和148c。此外,与图2的存储装置300a不同,存储装置300b可基于包括在信号s6中的信息在数据区域处记录文件数据142c、143c和148c。
可在内部合并应用程序接口(API)中定义包括在信号s6中的信息和/或请求。存储装置300b可按照内部合并API将文件数据142c和143c存储在数据区域中。
例如,在接收到信号s6的情况下,存储装置300b可立即将文件数据142c和143c存储在数据区域中。
又例如,在特定条件被满足的情况下,存储装置300b可基于信号s6将文件数据141c、142c和143c存储在数据区域中。该特定条件可类似于参照图9描述的特定条件。详细地讲,存储装置300b可周期性地将存储在元区域中的文件数据142c和143c存储到数据区域。在元区域中用于存储新的文件数据的存储空间被使用或者否则不可用的情况下,存储装置300b可将文件数据142c和143c存储在数据区域中。在将文件数据142c和143c存储在数据区域中之后,存储装置300b可删除存储在源页上的文件数据142c和143c。在没有从处理器100b接收到信号的情况下或者在从处理器100b接收到信号的次数少的情况下,存储装置300b可将文件数据142c和143c存储在数据区域中。在I/O负载小的情况下,存储装置300b可将文件数据142c和143c存储在数据区域中。
根据实施例,通过内部合并API,从处理器100b发送到存储装置300b的数据的量可减少。详细地讲,处理器100b可通过发送信号s6来省略图12中所示的发送合并元块的步骤。因此,存储在存储装置300b中的数据的量也可减少。
此外,文件数据141c可记录在与文件数据142c和143c相同的最终页上。在这种情况下,处理器100b可输出包括关于文件数据141c的信息的信号s6。因此,从处理器100b输出信号s6的次数可减少。
图14是用于描述根据实施例的图12中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的概念图。为了更好地理解,在下面的描述中,图13将与图14一起被参照。
处理器100b可根据在处理器100b中使用的文件***的种类,相同地或不同地设置原始页和最终页。在原始页和最终页相同的情况下,处理器100b可输出信号s7。与信号s6不同,信号s7可省略关于原始页的信息。然而,本发明构思不限于此。例如,信号s7可包括关于原始页的信息和关于最终页的信息中的一个。
类似于参照图13描述的方法,存储装置300b可在数据区域中记录文件数据142c、143c和148c。然而,与参照图13给出的描述不同,存储装置300b可在原始页上覆写文件数据142c和143c。
因此,参照图13和图14,内部合并API可在存储装置300b中被使用,而与在处理器100b中使用的文件***的类型无关。例如,在处理器100b使用诸如LFS的文件***的情况下,信号s6可被发送。在这种情况下,存储装置300b可通过参照图13描述的方法将文件数据142c和143c存储在数据区域中。又例如,在处理器100b使用诸如EXT4的文件***的情况下,信号s7可被发送。在这种情况下,存储装置300b可通过参照图14描述的方法将文件数据142c和143c存储在数据区域中。
图15是用于描述根据实施例的图12中所示的电子装置的存储装置将文件数据存储在数据区域中的方法的流程图。为了更好地理解,在下面的描述中,图13和图14将与图15一起被参照。
在操作S610中,存储装置300b可从处理器100b接收信号。
在操作S620中,确定原始页是否与最终页相同。例如,存储装置300b可接收信号s6或信号s7。接收到信号s6可表示原始页和最终页不同。接收到信号s7可表示原始页和最终页相同。
当原始页和最终页不同(S620,“否”)时,在操作S630中,存储装置300b可读取原始页。也就是说,存储装置300b可接收文件数据148c。此外,存储装置300b可读取存储在元区域中的文件数据142c和143c。
在操作S640中,存储装置300a可将文件数据148c以及文件数据142c和143c合并。
在操作S650中,存储装置300b可将文件数据写入在最终页上。也就是说,存储装置300b可在最终页上记录合并的文件数据142c、143c和148c。
当原始页和最终页相同(S620,“是”)时,在操作S660中,存储装置300b可在原始页上覆写文件数据142c和143c。
根据实施例,电子装置可减少将被发送到存储装置的数据的量。此外,电子装置可减少写入操作在存储装置中被执行的次数。因此,可提高存储装置的性能,并且存储装置的可用时间可变得更长。
虽然已经参照本发明构思的各种示例性实施例描述了本发明构思,但是本领域普通技术人员将清楚,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可对其进行各种改变和修改。

Claims (20)

1.一种电子装置,包括:
存储器,被配置为:存储关于存储装置的数据区域的第一位置生成的第一部分数据和关于所述数据区域的第二位置生成的第二部分数据;以及
处理器,
其中,当包括在第一页中的第一部分数据的第一大小小于参考大小并且包括在与第一页不同的第二页中的第二部分数据的第二大小小于所述参考大小时,处理器输出包括第一部分数据和第二部分数据的一个或多个数据块,并且输出包括第一信息的第一元数据和包括第二信息的第二元数据,第一信息与关于第一部分数据的第一位置有关,第二信息与关于第二部分数据的第二位置有关,
其中,所述一个或多个数据块的大小小于第一页的大小和第二页的大小的第一和。
2.根据权利要求1所述的电子装置,其中,处理器将第一部分数据和第二部分数据合并以生成所述一个或多个数据块。
3.根据权利要求1所述的电子装置,其中,处理器生成所述一个或多个数据块,使得第一元数据和第二元数据包括在所述一个或多个数据块中。
4.根据权利要求1所述的电子装置,其中,当包括在第三页中的第一元数据的大小小于所述参考大小并且包括在第四页中的第二元数据的大小小于所述参考大小时,处理器生成包括第一元数据和第二元数据的一个或多个元块,
其中,所述一个或多个元块的大小小于第三页的大小和第四页的大小的第二和。
5.根据权利要求1所述的电子装置,其中,当第一大小小于所述参考大小时,处理器生成第一提示数据,并且当第二大小小于所述参考大小时,处理器生成第二提示数据。
6.根据权利要求5所述的电子装置,其中,第一提示数据与第一页中的第一部分数据的第一大小和第一页中的第一部分数据的位置相关联,
其中,第二提示数据与第二页中的第二部分数据的第二大小和第二页中的第二部分数据的位置相关联。
7.根据权利要求1所述的电子装置,其中,所述参考大小不大于第一页的大小。
8.根据权利要求1所述的电子装置,其中,存储器存储第一元数据、第二元数据和所述一个或多个数据块,
其中,处理器输出用于在数据区域上记录第一部分数据的信号,第一部分数据基于存储的第一元数据、存储的第二元数据和存储的所述一个或多个数据块被记录在数据区域处。
9.根据权利要求8所述的电子装置,其中,所述信号包括关于第一位置的第一信息,或者包括关于第一位置的第一信息和关于数据区域的第三位置的第三信息,第一部分数据存储在数据区域的第三位置上。
10.一种存储装置,包括:
第一存储器,被配置为:存储通过将分别包括在多个页中的部分数据合并而生成的一个或多个数据块,并且存储所述部分数据之中的关于第一位置而生成的第一部分数据的第一元数据;以及
第二存储器,被配置为:通过使用第一元数据将第一部分数据存储在与第一位置相关联的第二位置处,
其中,所述一个或多个数据块的大小小于所述多个页的大小之和。
11.根据权利要求10所述的存储装置,其中,第一存储器是易失性存储器,第二存储器是非易失性存储器。
12.根据权利要求10所述的存储装置,其中,当与第一部分数据相关联的原始数据存储在第一位置处时,第二存储器将原始数据存储在第二位置处。
13.根据权利要求10所述的存储装置,其中,在第二存储器将第一部分数据存储在第二位置处的情况下,第二存储器将所述部分数据之中的关于第一位置而生成的第二部分数据存储在第二位置处。
14.根据权利要求10所述的存储装置,其中,第一存储器搜索与所述部分数据相关联的元数据,以确定将被存储在第二存储器中的第一部分数据。
15.根据权利要求10所述的存储装置,其中,当条件被满足时,第二存储器存储第一部分数据,
其中,所述条件与从外部接收的信号的量或由所述信号产生的输入/输出负载相关联。
16.一种存储装置,包括:
第一存储器,被配置为:接收通过将分别包括在多个页中的部分数据合并而生成的一个或多个数据块,并存储所述部分数据;以及
第二存储器,
其中,响应于包括关于第一存储器的第一位置的第一信息和关于第二存储器的第二位置的第二信息的信号在第一存储器处被接收,第二存储器基于所述信号将所述部分数据之中的存储在第一位置处的第一部分数据存储在第二位置处,
其中,所述一个或多个数据块的大小小于所述多个页的大小,
其中,所述部分数据的大小小于所述多个页的大小之和。
17.根据权利要求16所述的存储装置,其中,第一存储器和第二存储器是非易失性存储器。
18.根据权利要求16所述的存储装置,其中,所述信号包括偏移信息和计数信息,偏移信息与第一部分数据所位于的偏移有关,计数信息与和第一部分数据的大小相关联的计数有关,
其中,第二存储器基于所述信号,根据计数和偏移将第一部分数据存储在第二位置处。
19.根据权利要求16所述的存储装置,其中,所述信号还包括关于第一存储器的第三位置的第三信息,
其中,第二存储器基于所述信号,将所述部分数据之中的被存储在第三位置处的第二部分数据存储在第二位置处。
20.根据权利要求16所述的存储装置,其中,当所述信号包括关于与第二存储器的第二位置不同的第二存储器的第四位置的第四信息时,第二存储器将第一部分数据和存储在第四位置处的原始数据存储在第二位置处。
CN201911010771.8A 2018-11-07 2019-10-23 存储装置和电子装置 Pending CN111158582A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2018-0135853 2018-11-07
KR1020180135853A KR20200053052A (ko) 2018-11-07 2018-11-07 스토리지 장치 및 스토리지 장치로 전송되는 데이터를 관리하는 전자 장치

Publications (1)

Publication Number Publication Date
CN111158582A true CN111158582A (zh) 2020-05-15

Family

ID=70459788

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911010771.8A Pending CN111158582A (zh) 2018-11-07 2019-10-23 存储装置和电子装置

Country Status (3)

Country Link
US (1) US20200142623A1 (zh)
KR (1) KR20200053052A (zh)
CN (1) CN111158582A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102486980B1 (ko) * 2021-01-08 2023-01-11 주식회사 앤다스 블록 데이터 스토리지 시스템, 블록 데이터 스토리지 방법 및 기록 매체에 저장된 프로그램

Also Published As

Publication number Publication date
US20200142623A1 (en) 2020-05-07
KR20200053052A (ko) 2020-05-18

Similar Documents

Publication Publication Date Title
CN107908571B (zh) 一种数据写入方法、闪存装置及存储设备
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
JP2013544414A (ja) トランザクションログの復元
TW201732597A (zh) 資料儲存裝置和其操作方法
WO2016135954A1 (ja) ストレージ装置および不揮発メモリデバイス
JP2022548642A (ja) タイプ付けされていないメモリアクセスのタイプ付けされているメモリアクセスに対するマッピング
US20150324309A1 (en) Communication via a memory interface
US20190391756A1 (en) Data storage device and cache-diversion method thereof
US20140325126A1 (en) Data storage device performing atomic write and related method of operation
CN113282234B (zh) 存储装置、存储***、及其操作方法
US8185687B2 (en) Semiconductor storage device and method of controlling semiconductor storage device
KR20210051921A (ko) 메모리 시스템 및 그것의 동작방법
JP2016524228A (ja) 記憶システムおよびエイリアス・メモリ
US11269771B2 (en) Storage device for improving journal replay, operating method thereof, and electronic device including the storage device
KR20200114212A (ko) 데이터 저장 장치 및 그것의 동작 방법
US20140219041A1 (en) Storage device and data processing method thereof
CN115458013A (zh) 存储装置及其操作方法
KR102330394B1 (ko) 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법
KR20200114086A (ko) 컨트롤러, 메모리 시스템 및 그것의 동작 방법
TW202143054A (zh) 借助專用位元資訊來執行一記憶體裝置之存取管理之方法、記憶體裝置、電子裝置、應用於一記憶體裝置之控制器以及主機裝置
US20230273878A1 (en) Storage device for classifying data based on stream class number, storage system, and operating method thereof
CN111158582A (zh) 存储装置和电子装置
US8966159B2 (en) Flash storage device and data writing method thereof
KR20170019729A (ko) 전자 장치 및 이의 데이터 압축 방법
JP2011175666A (ja) 半導体記憶装置及び半導体記憶装置の制御方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200515

WD01 Invention patent application deemed withdrawn after publication