CN102473140A - 存储器管理装置 - Google Patents

存储器管理装置 Download PDF

Info

Publication number
CN102473140A
CN102473140A CN2010800318635A CN201080031863A CN102473140A CN 102473140 A CN102473140 A CN 102473140A CN 2010800318635 A CN2010800318635 A CN 2010800318635A CN 201080031863 A CN201080031863 A CN 201080031863A CN 102473140 A CN102473140 A CN 102473140A
Authority
CN
China
Prior art keywords
mentioned
data
semiconductor memory
memory
information
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.)
Granted
Application number
CN2010800318635A
Other languages
English (en)
Other versions
CN102473140B (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.)
Japanese Businessman Panjaya Co ltd
Kioxia Corp
Original Assignee
Toshiba Corp
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 JP2009169371A external-priority patent/JP2011022933A/ja
Priority claimed from JP2010048332A external-priority patent/JP5322978B2/ja
Priority claimed from JP2010048334A external-priority patent/JP2011186558A/ja
Priority claimed from JP2010048333A external-priority patent/JP2011186557A/ja
Priority claimed from JP2010048338A external-priority patent/JP2011186562A/ja
Priority claimed from JP2010048335A external-priority patent/JP2011186559A/ja
Priority claimed from JP2010048329A external-priority patent/JP2011186554A/ja
Priority claimed from JP2010048328A external-priority patent/JP2011186553A/ja
Priority claimed from JP2010048339A external-priority patent/JP2011186563A/ja
Priority claimed from JP2010048331A external-priority patent/JP2011186555A/ja
Priority claimed from JP2010048337A external-priority patent/JP2011186561A/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of CN102473140A publication Critical patent/CN102473140A/zh
Application granted granted Critical
Publication of CN102473140B publication Critical patent/CN102473140B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/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
    • 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/0653Monitoring storage devices or 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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明的一个例子的存储器管理装置(1)根据来自处理器(6a)的写入请求及读出请求,控制对包含非易失性半导体存储器(9)和易失性半导体存储器(8)的主存储器(2)的写入及读出。存储器管理装置(1)具备:保持基于在非易失性半导体存储器(9)和易失性半导体存储器(8)的至少一方中写入的写入对象数据的数据特性而生成的着色信息(14)的着色信息保持部(17),以及参照着色信息(14)从非易失性半导体存储器(9)和易失性半导体存储器(8)中决定写入写入对象数据的区域的写入管理部(15)。

Description

存储器管理装置
技术领域
本发明涉及管理对存储器的访问的存储器管理装置。
背景技术
在现有的信息处理装置中,作为处理器的主存储装置(主存储器),例如使用DRAM(随机存取存储器)等的易失性半导体存储器。进一步地,在现有的信息处理装置中,与易失性半导体存储器相组合,非易失性半导体存储器作为二级存储装置使用。
在特开2008-242944号公报(文献1)中,提出了综合存储器管理装置。在该综合存储器管理装置中,作为对MPU的主存储器,使用NAND型闪速存储器。进一步地,在专利文献1中,MPU的一级高速缓冲存储器、二级高速缓冲存储器和作为主存储器的NAND型闪速存储器在相同的存储器层面使用。综合存储器管理装置的缓存控制器除了对一级高速缓冲存储器及二级高速缓冲存储器的存储器管理之外,还对主存储器执行存储器管理。
在特开平7-146820号公报(文献2)中,公开了采用闪速存储器作为信息处理装置的主存储装置闪速存储器的技术。在专利文献2中,在系统的存储器总线上,经由作为易失性存储器的高速缓冲存储器连接闪速存储器。在闪速存储器中,设置了记录在该高速缓冲存储器中存储的数据的地址或者访问历史等信息的地址数组。控制器参照访问目的地的地址,向存储器总线提供高速缓冲存储器或者闪速存储器的数据,或者存储存储器总线的数据。
在特开2001-266580号公报(文献3)中,公开了能够将种类不同的半导体存储器装置连接到共用总线的发明。
该专利文献3的半导体存储装置包含随机存取存储器芯片和具备上述随机存取存储器芯片的封装体。上述封装体具有将上述随机存取存储器芯片与外部装置电连结的多个管脚。多个管脚向上述随机存取存储器、可电擦除及可编程非易失性半导体存储器共同提供存储器功能。上述多个管脚的各个排列在非易失性半导体存储器的对应的管脚位置。
发明内容
本发明提供一种能够高效地使用非易失性半导体存储器的存储器管理装置。
根据本发明的一种形式的存储器管理装置根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出。存储器管理装置具备:着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;以及写入管理部,其参照上述着色信息,从上述非易失性半导体存储器和上述易失性半导体存储器中决定写入上述写入对象数据的区域。
根据本发明,能够提供可高效地使用非易失性半导体存储器的存储器管理装置。
附图说明
图1是表示本发明的第1实施方式所涉及的存储器管理装置及信息处理装置的构成的一个例子的方框图。
图2是表示第1实施方式所涉及的存储器管理装置及信息处理装置的构成的一个例子的方框图。
图3是表示第1实施方式所涉及的混合主存储器的存储器映射的一个例子的图。
图4是表示第1实施方式所涉及的地址变换信息的一个例子的图。
图5是表示第1实施方式所涉及的着色表的一个例子的图。
图6是用于说明第1实施方式所涉及的静态颜色信息的一个例子的图。
图7是表示第1实施方式所涉及的数据配置处理的一个例子的流程图。
图8是表示第1实施方式所涉及的着色表的构成的一个例子的图。
图9是表示对各种数据的静态颜色信息的设定的第1个例子的图。
图10是表示对各种数据的静态颜色信息的设定的第2个例子的图。
图11是表示第1实施方式所涉及的着色表的生成处理的一个例子的流程图。
图12是表示第1实施方式所涉及的着色表的条目的生成处理的一个例子的流程图。
图13是表示着色表的条目的对齐的第1个例子的图。
图14是表示着色表的条目的对齐的第2个例子的图。
图15是表示根据动态颜色信息和静态颜色信息来计算动态写入频率DW_color和动态读出频率DR_color的方法的一个例子的图。
图16是表示第1实施方式所涉及的数据读出处理的一个例子的流程图。
图17是表示第1实施方式所涉及的数据读出方式的决定处理的一个例子的流程图。
图18是表示第1实施方式所涉及的数据写入处理的一个例子的流程图。
图19是表示第1实施方式所涉及的数据写入目的区域的决定处理一个例子的流程图。
图20是用于说明第1实施方式所涉及的对数据的写入对象块的决定处理的图。
图21是表示非易失性半导体存储器的任意块区域中的擦除次数的发展的一个例子的曲线图。
图22是表示当在损耗均衡中设定小的对擦除次数之差的阈值时的变化的一个例子的曲线图。
图23是表示与擦除次数相应的块区域的分组的一个例子的曲线图。
图24是表示与擦除次数相应的块区域的分组的判断基准的图。
图25是表示损耗均衡中的块区域的检索的一个例子的图。
图26是表示具备高速缓冲存储器的存储器管理装置的一个例子的方框图。
图27是表示存储器管理装置、混合主存储器、处理器的安装例子的方框图。
图28是表示第1实施方式所涉及的存储器管理装置和信息处理装置的另一个构成形式的一个例子的方框图。
图29是表示管理多个非易失性半导体存储器的多个存储器管理装置的一个例子的立体图。
图30是表示第2实施方式所涉及的易失性半导体存储器的物理地址空间的一个例子的图。
图31是表示着色信息与易失性半导体存储器的区域的关系的一个例子的图。
图32是表示着色信息与易失性半导体存储器的区域的关系的其它例子的图。
图33是表示第2实施方式所涉及的用于管理易失性半导体存储器的空闲区域和使用区域的数据结构的一个例子的图。
图34是表示第2实施方式所涉及的易失性半导体存储器的写入处理的一个例子的流程图。
图35是表示第2实施方式所涉及的易失性半导体存储器的擦除处理的一个例子的流程图。
图36是表示本发明的第3实施方式所涉及的地址变换信息中的非易失性半导体存储器的有效/无效标志的真值的图。
图37是表示非易失性半导体存储器的有效/无效标志的状态迁移的图。
图38是表示第3实施方式所涉及的混合主存储器的释放请求时的处理的流程图。
图39是用于说明图38中的存储器的释放请求时的易失性半导体存储器的明示的空闲区域的形成的图。
图40是表示第3实施方式所涉及的混合主存储器的获得请求时的处理的流程图。
图41是表示图40中的存储器数据读请求时的处理的流程图。
图42是表示图40中的存储器数据写请求时的处理的流程图。
图43是表示本发明的第4实施方式所涉及的存储器管理装置的功能构成的主要部分的一个例子的方框图。
图44是表示不用着色信息对写入对象数据分类时的块大小的数据构成的一个例子的图。
图45是表示用着色信息对写入对象数据分类时的块大小的数据构成的一个例子的图。
图46是表示第4实施方式所涉及的地址变换信息与非易失性半导体存储器的物理地址空间(NAND逻辑地址)的关系的一个例子的图。
图47是表示非易失性半导体存储器的逻辑物理变换表(NAND逻辑物理变换表)的一个例子的图。
图48是表示预约列表的一个例子的数据结构图。
图49是表示第4实施方式所涉及的组值计算部和预约列表管理部的处理的一个例子的流程图。
图50是表示第4实施方式所涉及的地址变换信息的状态迁移的一个例子的图。
图51是表示第5实施方式所涉及的脏位(dirty bit)字段的一个例子的图。
图52是表示第5实施方式所涉及的关闭处理的一个例子的流程图。
图53是表示在第5实施方式中适用的着色表的一个例子的图。
图54是表示第5实施方式所涉及的先读提示信息的设定处理的流程图。
图55是表示第5实施方式所涉及的启动时的操作系统的处理的一个例子的流程图。
图56是表示本发明的第6实施方式所涉及的虚拟地址空间内的虚拟地址区域与属性信息的关系的一个例子的方框图。
图57是表示由操作系统进行的虚拟地址区域数据的第2属性信息的设定处理的一个例子的流程图。
图58是表示基于虚拟地址区域数据的静态颜色信息的设定的一个例子的图。
图59是表示命令与库之间的依赖关系的一个例子的图。
图60是表示命令的得分与库的得分的一个例子的图。
图61是表示基于命令的得分而计算库的得分的另一个计算例子的图。
图62是表示使用库的得分的静态颜色信息的设定的一个例子的图。
图63是表示由编译器汇集的变量或函数的一个例子的图。
图64是表示使用编译器的静态颜色信息的设定的一个例子的图。
图65是表示基于动态生成的存储器区域的使用频率的静态颜色信息的设定的一个例子的图。
图66是表示本发明的第7实施方式所涉及的存储器管理装置、信息处理装置及存储器装置的构成的一个例子的方框图。
图67是表示存储器单元的擦除次数的变化的一个例子的曲线图。
图68是表示基于存储器装置的擦除次数的存储器装置的使用状态的一个例子的曲线图。
图69是表示基于存储器装置的读出发生次数的存储器装置的使用状态的一个例子的曲线图。
图70是表示基于存储器装置的擦除次数向存储器装置通知使用状态的处理的一个例子的流程图。
图71是表示基于存储器装置的读出发生次数向存储器装置通知使用状态的处理的一个例子的流程图。
图72是表示在管理信息中包含的数据的一个例子的图。
图73是表示从存储器装置电气连接到存储器管理装置开始直到对存储器装置开始访问为止的处理的一个例子的流程图。
图74是表示从存储器管理装置从存储器装置接收拆卸通知开始直到存储器装置能够拆卸为止的处理的一个例子的流程图。
图75是表示存储器装置的更换状态的一个例子的图。
图76是表示存储器装置的再利用的一个例子的方框图。
图77是表示在根据着色信息进行控制以致对特定存储器装置的访问次数比对其它存储器装置的访问次数多的情况下的访问次数的变化的一个例子的曲线图。
图78是表示本发明的第8实施方式所涉及的存储器管理的构成的一个例子的图。
图79是表示第8实施方式所涉及的非易失性半导体存储器的动态切换的第1个例子的示意图。
图80是表示第8实施方式所涉及的非易失性半导体存储器的动态切换的第2个例子的示意图。
图81是表示第8实施方式所涉及的由切换控制部进行的存储器区域的切换控制的第1个例子的状态迁移图。
图82是表示第8实施方式所涉及的由切换控制部进行的存储器区域的切换控制的第2个例子的状态迁移图。
图83是表示本发明的第9实施方式所涉及的存储器管理装置与地址空间的关系的一个例子的方框图。
图84是表示第9实施方式所涉及的由处理器和存储器管理装置进行的写入操作的一个例子的流程图。
图85是表示本发明的第10实施方式所涉及的信息处理装置及网络系统的构成的一个例子的图。
图86是表示第10实施方式所涉及的简档信息管理部的处理的一个例子的流程图。
图87是表示第10实施方式所涉及的由用户终端进行的简档信息的上载处理的一个例子的流程图。
图88是表示第10实施方式所涉及的由用户终端进行的简档信息的下载处理的一个例子的流程图。
图89是表示本发明的第11实施方式所涉及的网络系统的一个例子的方框图。
图90是表示第11实施方式所涉及的存储器管理装置的构成的一个例子的方框图。
图91是表示第11实施方式所涉及的处理器逻辑地址与网络逻辑地址的第1关系的方框图。
图92是表示第11实施方式所涉及的处理器逻辑地址与网络逻辑地址的第2关系的方框图。
图93是表示第11实施方式所涉及的处理器逻辑地址与网络逻辑地址的第3关系的方框图。
图94是表示第11实施方式所涉及的处理器逻辑地址与网络逻辑地址的第4关系的方框图。
图95是表示第11实施方式所涉及的处理器逻辑地址与网络逻辑地址的第5关系的方框图。
图96是表示第11实施方式所涉及的网络系统的虚拟地址空间的一个例子的方框图。
图97是表示第11实施方式所涉及的处理器逻辑地址和网络逻辑地址的构成的第1个例子的方框图。
图98是表示第11实施方式所涉及的处理器逻辑地址和网络逻辑地址的构成的第2个例子的方框图。
图99是表示第11实施方式所涉及的处理器逻辑地址和网络逻辑地址的构成的第3个例子的方框图。
图100是表示推断为了访问在与网络连接的多个设备中存储的数据而所需的地址的比特数的计算的一个例子的图。
具体实施方式
以下,参照附图对本发明的各实施方式进行说明。另外,在以下的说明中,对于大致或者实质上相同的功能及构成要素,付与相同的符号,并根据需要进行说明。
第1实施方式
参照图1对本发明的第1实施方式所涉及的存储器管理装置1及信息处理装置100进行说明。图1是表示本实施方式所涉及的存储器管理装置及信息处理装置的构成的一个例子的方框图。
信息处理装置100具备存储器管理装置1、混合主存储器2和处理器3a、3b、3c。
处理器3a、3b、3c例如是MPU(微处理器单元)或者GPU(图像处理器单元)。处理器3a、3b、3c各自具备一级高速缓冲存储器4a、4b、4c和二级高速缓冲存储器5a、5b、5c。处理器3a、3b、3c分别执行进程6a、6b、6c,处理各种数据。处理器3a、3b、3c在执行进程6a、6b、6c中,通过虚拟地址指定数据。
处理器3a、3b、3c在将向混合主存储器2写入数据(写入对象数据)时,发生写入请求。此外,处理器3a、3b、3c在从混合主存储器2中读出数据(读出对象数据)时,发生读出请求。
处理器3a、3b、3c各自具备将虚拟地址变换成MPU或GPU的物理地址(对混合主存储器的逻辑地址)的页面表(未图示)。处理器3a、3b、3c在向一级高速缓冲存储器4a、4b、4c、二级高速缓冲存储器5a、5b、5c或者混合主存储器2写入数据时,通过页面表将虚拟地址变换成逻辑地址,并通过逻辑地址指定写入对象数据。同样,处理器3a、3b、3c在从一级高速缓冲存储器4a、4b、4c、二级高速缓冲存储器5a、5b、5c或者混合主存储器2中读出数据时,通过页面表将虚拟地址变换成逻辑地址,并通过逻辑地址指定读出对象数据。
另外,以下将对以及高速缓冲存储器4a、4b、4c、二级高速缓冲存储器5a、5b、5c或者混合主存储器的写入、读出统称为“访问”。
存储器管理装置1管理对处理器3a、3b、3c的混合主存储器2的访问(写入、读出)。存储器管理装置1具备处理部15、工作存储器16和信息存储部17。存储器管理装置1将以后说明的存储器使用信息11、存储器固有信息12、地址变换信息13和着色表14存储在信息存储部17中。在存储器管理装置1的信息存储部17中存储的着色表14也可以是在非易失性半导体存储器9、10中存储的着色表14的一部分。例如,也可以将在非易失性半导体存储器9、10中存储的着色表14中频繁使用的着色表14的数据存储在存储器管理装置1的信息存储部17中。存储器管理装置1参照着色表14等,管理对处理器3a、3b、3c的混合主存储器2的访问。有关详细的情形以后说明。
混合主存储器2具备第1存储器、第2存储器和第3存储器。第1存储器比第2存储器的可访问上限次数多。第2存储器比第3存储器的可访问上限次数多。在此,所谓可访问上限次数是在统计上的预想期待值,但请注意,并不意味着始终保证该关系。此外,第1存储器也可以比第2存储器的数据转移速度大(访问速度)。
在本实施方式中,假设第1存储器是易失性半导体存储器8。作为易失性半导体存储器8,例如使用DRAM(动态随机存取存储器)、FPM-DRAM、EDO-DRAM、SDRAM等在一般的计算机中作为主存储器使用的存储器。此外,可以是DRAM那样的高速随机访问,如果没有对可访问上限次数的实质性限制,则也可以采用MRAM(磁阻随机存取存储器)、FeRAM(铁电随机存取存储器)等非易失性半导体存储器。
假设第2存储器是非易失性半导体存储器9。作为非易失性半导体存储器9,例如使用SLC(单层单元)型的NAND型闪速存储器。SLC与MLC(多层单元)相比,读出及写入速度高,可靠性高。但是,SLC与MLC相比,位成本高,不能面向大容量化。
假设第3存储器是非易失性半导体存储器10。作为非易失性半导体存储器10,例如使用MLC型的NAND型闪速存储器。MLC与SLC相比,读出及写入速度低,可靠性低。但是,MLC与SLC相比,位成本低,能面向大容量化。
另外,在本实施方式中,非易失性半导体存储器9是SLC型的NAND型闪速存储器,非易失性半导体存储器10是MLC型的NAND型闪速存储器,但是,非易失性半导体存储器9也可以是例如2比特/单元的MLC型的NAND型闪速存储器,非易失性半导体存储器10是3比特/单元的MLC型的NAND型闪速存储器。
所谓可靠性是指在从存储装置中读出数据时难以引起数据缺损的程度(耐久性)。SLC的耐久性比MLC的耐久性高。在此,所谓耐久性高是指可访问上限次数多,所谓耐久性低是指可访问上限次数少。
SLC能够在1个存储器单元中存储1比特信息。另一方面,MLC能够在1个存储器单元中存储2比特以上的信息。即,在本实施方式所涉及的混合主存储器2中,耐久性的高低按照易失性半导体存储器8第一、非易失性半导体存储器9第二、非易失性半导体存储器10第三的顺序。
NAND型闪速存储器等非易失性半导体存储器9、10与易失性半导体存储器8相比,便宜并且能够大容量化。作为非易失性半导体存储器9、10,也可以代替NAND型闪速存储器,例如使用NOR型闪速存储器等那样的其它种类的闪速存储器、PRAM(相变存储器)、ReRAM(电阻式随机存取存储器)。
另外,作为第3存储器也可以采用MLC,作为第2存储器也可以采用能够利用只使用MLC的低位页面进行数据写入的模拟SLC模式的MLC。在这种情况下,能够以共用的芯片构成第2存储器和第3存储器,在制造成本方面有利。
如果比较利用非易失性半导体存储器9、10作为主存储器的情况和利用非易失性半导体存储器9、10作为二级存储装置的情况,则在使用非易失性半导体存储器9、10作为主存储器的情况下,对该非易失性半导体存储器9、10的访问频率变高。在本实施方式中,实现了具备混合了易失性半导体存储器8和SLC的非易失性半导体存储器9和MLC的非易失性半导体存储器10而成为主存储器的混合主存储器2的信息处理装置。混合主存储器2是不同种类混合型的主存储器,由存储器管理装置1管理数据的配置。
在非易失性半导体存储器9、10的预定区域中存储有存储器使用信息11、存储器固有信息12、地址变换信息13和着色表14。
存储器使用信息11包含非易失性半导体存储器9、10的各页面区域的写入发生次数及读出发生次数、各块区域的擦除次数、使用中区域大小。
存储器固有信息12包含易失性半导体存储器8的存储器大小、非易失性半导体9、10的存储器大小、非易失性半导体存储器9、10的页面大小及块大小、各区域的可访问上限次数(可写入上限次数、可读出上限次数、可擦除上限次数)。在此,所谓页面大小是非易失性半导体存储器9、10的写入、读出的数据大小的单位。所谓块大小是非易失性半导体存储器9、10的数据擦除大小的单位。在非易失性半导体存储器9、10中,块大小比页面大小大。
地址变换信息13是将从处理器3a、3b、3c中给与的逻辑地址变换成与逻辑地址对应的物理地址的信息。有关地址变换信息13的详细情形以后说明。
着色表14是保持每个数据的着色信息的表。着色信息包含静态颜色信息和动态颜色信息。详细情形以后说明。
以下,参照图2进一步说明本实施方式所涉及的存储器管理装置和操作系统。图2是表示本实施方式所涉及的存储器管理装置1及信息管理装置100的构成的一个例子的方框图。在图2中,虽然以图1的处理器3a、3b、3c中处理器3b为代表进行说明,但对于其它处理器3a、3c也是一样的。
操作系统27通过处理器3b执行。操作系统27具有由处理器3b执行的访问在信息存储部17中存储的着色信息表14的权限。
存储器管理装置1的处理部15具备地址管理部18、读出管理部19、写入管理部20、着色信息管理部21、存储器使用信息管理部22、再配置部23。进一步地,着色信息管理部21具备访问频率计算部24、动态颜色信息管理部25。
处理部15根据在信息存储部17中存储的信息,使用工作存储器16执行各种处理。
工作存储器16例如用作缓冲器,并作为各种数据变换等的工作区域使用。
在处理部15中具备的上述功能块可以实现为硬件及软件(例如,操作系统27、固件等)的任意一个或者两者的组合。这些功能块被实现为硬件还是实现为软件取决于具体的实施方式或者分配给信息处理装置100整体的设计限制。本领域普通技术人员对于每个具体的实施方式,可以用各种方法实现这些功能,但决定这种实现的包含在本发明的范围中。另外,在以下的说明中使用的功能块也是一样的。
地址管理部18对逻辑地址分配物理地址,并存储在地址变换信息13中。这样,处理部15通过参照地址变换信息13,能够取得与逻辑地址对应的物理地址。
读出管理部19在处理器3a、3b、3c发生了读出请求的情况下,对混合主存储器2管理读出对象数据的读出处理。
写入管理部20在处理器3a、3b、3c发生了写入请求的情况下,对混合主存储器2管理写入写入对象数据的处理。
着色信息管理部21管理着色表14。
存储器使用信息管理部22管理混合主存储器2的存储器使用信息11。
再配置部23与处理器3a、3b、3c的操作非同步地进行基于在着色表14中包含的着色信息的在与任意的逻辑地址对应的物理地址上配置的数据的再配置。再配置部23例如基于以后说明的动态颜色信息,将在非易失性半导体存储器10中包含的数据中读出频率、写入频率高的数据定期地再配置在非易失性半导体存储器9中。此外,再配置部23例如基于动态颜色信息,将在非易失性半导体存储器9中包含的数据中读出频率、写入频率低的数据定期地再配置在非易失性半导体存储器10中。同样,再配置部23即使在易失性半导体存储器8、非易失性半导体存储器9、10之间也可以进行数据的再配置。由以后说明的写入管理部20进行的写入处理在每次数据更新发生时,通过进行写入目的存储器区域的判断处理和写入目的块区域的判断处理来进行再配置。与此相对,再配置部23定期地进行数据的再配置。当再配置部23进行数据的再配置时,写入管理部20及读出管理部19在再配置结束之前不进行操作。再配置部23的操作开始的触发也可以是由开发者设定的周期和/或在用户接口中能够设定的周期。此外,在信息处理装置100处于休眠状态时,再配置部23也可以进行操作。
访问频率计算部24根据在着色表14中包含的着色信息,计算数据的访问频率信息(动态写入频率DW_color,动态读出频率DR_color)。
动态颜色信息管理部25管理在着色表14中包含的动态颜色信息。
以下,参照图3说明本实施方式所涉及的混合主存储器。图3是表示本实施方式所涉及的混合主存储器2的存储器映射的一个例子的图。
混合主存储器2具备易失性半导体存储器8(DRAM区域)、非易失性半导体存储器9(SLC区域)和非易失性半导体存储器10(2比特/单元区域、3比特/单元区域、4比特/单元区域)。2比特/单元区域、3比特/单元区域、4比特/单元区域构成MLC区域。将DRAM区域、SLC区域、2比特/单元区域、3比特/单元区域、4比特/单元区域统称为存储器区域。
易失性半导体存储器8例如由128M字节的DRAM区域构成。
非易失性半导体存储器9例如由2G字节的B区域和128M字节的B冗长块区域、2G字节的C区域和128M字节的C冗长块区域构成。非易失性半导体存储器9的各存储器区域是SLC型的NAND型闪速存储器。
非易失性半导体存储器10例如包含由4G字节的A区域和128M字节的A冗长块区域构成的2比特/单元区域、由4G字节的D区域和128M字节的D冗长块区域构成的3比特/单元、由4G字节的E区域和128M字节的E冗长块区域构成的4比特/单元区域。非易失性半导体存储器10的各存储器区域是MLC型的NAND型闪速存储器。如图3所示,在存储器区域中分配物理地址。
在混合主存储器2是上述构成的情况下,存储器固有信息12包含:1)混合主存储器2的存储器空间内的易失性半导体存储器8(DRAM区域)的存储器大小;2)混合主存储器2的存储器空间内的非易失性半导体存储器9、10的存储器大小;3)构成混合主存储器2的存储器空间的NAND型闪速存储器的块大小、页面大小;4)作为非易失性半导体存储器9内的SLC区域(2值区域)而被分配的存储器空间信息(包含可擦除上限次数、可读出上限次数、可写入上限次数);5)分配给2比特/单元区域的存储器空间信息(包含可擦除上限次数、可读出上限次数、可写入上限次数);6)分配给3比特/单元区域的存储器空间信息(包含可擦除上限次数、可读出上限次数、可写入上限次数);7)分配给4比特/单元区域的存储器空间信息(包含可擦除上限次数、可读出上限次数、可写入上限次数)。
以下,参照图4对本实施方式所涉及的地址变换信息(地址变换表)13进行说明。图4是表示本实施方式所涉及的地址变换信息13的一个例子的图。
在地址变换信息13中,以表的形式管理了逻辑地址、易失性半导体存储器8的物理地址、非易失性半导体存储器9、10的物理地址、有效/无效标志。
在地址变换信息13的各条目中登记了逻辑地址、与该逻辑地址对应的易失性半导体存储器8的物理地址和非易失性半导体存储器9、10的物理地址中的至少一个、有效/无效标志。
有效/无效标志是表示各条目是否有效的信息。有效/无效标志在为1时表示有效,在为0时表示无效。条目的有效/无效标志的初始值是0。有效/无效标志是0的条目是逻辑地址没有被映射的条目或者虽然逻辑地址被映射但被擦除的条目。在有效/无效标志是1的条目中,逻辑地址被映射,在易失性半导体存储器8和非易失性半导体存储器9、10中的至少一方存在与逻辑地址对应的物理地址。
另外,在图4所示的地址变换信息13的例子中,虽然用地址变换信息13的1个条目管理了逻辑地址、易失性半导体存储器8的物理地址、非易失性半导体存储器9、10的物理地址,但是,也可以例如用地址变换信息13管理逻辑地址和易失性半导体存储器8的物理地址,而逻辑地址和非易失性半导体存储器9、10的物理地址用其它的标签RAM管理。在这种情况下,在从逻辑地址向物理地址变换时,首先,参照标签RAM,当在标签RAM中没有与该逻辑地址对应的物理地址时,参照地址变换信息13。
接着,参照图5说明本实施方式所涉及的着色表14。图5是表示本实施方式所涉及的着色表14的一个例子的图。
在本实施方式中,对每个数据付与着色信息。被付与着色信息的数据的数据大小单位例如是读出、写入的最小单位。例如,读出、写入的最小单位是NAND型闪速存储器的页面大小。着色表14对每个数据对应地付与着色信息,并以条目单位存储着色信息。在着色表14的各条目中附加了索引。所谓索引是基于逻辑地址而生成的值。存储器管理装置1的读出管理部19、写入管理部20、着色信息管理部21、再配置部23等在给予了指定数据的逻辑地址时,参照通过与逻辑地址对应的索引来管理的条目,取得数据的着色信息。
着色信息包含静态颜色信息和动态颜色信息。静态颜色信息是根据被付与着色信息的对应数据的特性而生成的信息,是成为决定对应数据的混合主存储器2上的配置(写入)区域的提示的提示信息的一种。动态颜色信息是包含数据的读出和写入的次数和频率的至少一方的信息。也可以将动态颜色信息作为提示信息使用。
接着,参照图6说明静态颜色信息。图6是用于说明本实施方式所涉及的静态颜色信息的一个例子的图。
静态颜色信息包含对应数据的“重要度”、“读出频率、写入频率”、“数据寿命”中的至少一个信息。在图6中说明的读出频率对应于以后说明的静态读出频率,写入频率对应于静态写入频率。
所谓“重要度”是根据数据的种类等推测对应数据的重要性而设定的值。
所谓“读出频率、写入频率”是根据数据的种类等推测对应数据被读出或者写入的频率而设定的值。
所谓“数据寿命”是根据数据的种类等推测对应数据不被擦除而作为数据使用的期间(数据的寿命)而设定的值。
“重要性”、“读出频率、写入频率(读写频率)”、“数据寿命”例如根据在文件系统中保持的文件的特性或者在程序中暂时使用的区域的特性来推测。
所谓在文件系统中保持的文件的特性是根据在包含被付与着色信息的对应数据的文件数据的文件上附加的数据属性来判断的特性。在文件上附加的数据属性包含文件的头信息、文件名、文件的位置、文件管理数据(在inodd中保持的信息)等。例如,作为文件的位置,在文件位于文件系统的垃圾箱时,在对应文件中包含的数据特性可以预测为重要性低、读出频率、写入频率低、数据寿命短。根据该特性,对应数据的着色信息可以被推测为写入频率低、读出频率低、数据寿命短。
在程序中暂时使用的区域的特性包含根据使用被付与着色信息的对应数据的程序的程序执行时的数据种类来判断的特性、和根据程序文件生成时的数据种类来判断的特性。
所谓程序执行时的数据种类是例如在程序执行时根据对应数据被映射到堆栈区域、堆区域、文本区域的哪个区域来分类的数据种类。例如,被映射到堆栈区域、堆区域的数据的特性被预测为写入频率高、读出频率高、重要性高、数据寿命短。根据该特性,对应数据的静态着色信息被推测为写入频率高、读出频率高、重要度高、数据寿命短。例如,被映射到文本区域上的数据的特性由于是只读数据,因此被预测为写入频率低、读出频率高、重要性高、数据寿命长。根据该特性,对应数据的静态着色信息被推测为写入频率高、读出频率高、重要度高、数据寿命长。
所谓程序文件生成时的数据种类预测是在程序生成时推测在对应程序中使用的数据的重要度、读写频率、数据寿命。
此外,静态颜色信息也可以通过用户接口由用户直接设定。
接着参照图7,表示基于着色信息的数据的写入处理的一个例子。图7是表示数据配置处理的一个例子的流程图。
如上所述,在本实施方式中,混合主存储器2具备易失性半导体存储器8、非易失性半导体存储器9、10。在将数据配置在混合主存储器2中的情况下,根据着色信息,易失性半导体存储器8、非易失性半导体存储器9、10中的任意一个的存储器区域被决定为配置目的地。
首先,在数据(写入对象数据)的写入请求发生时,写入管理部20参照对写入对象数据付与的着色信息(步骤S1)。
接着,写入管理部20参照着色信息的“数据寿命”,进行写入对象数据的数据寿命的判断(步骤S2)。
在判断为写入对象数据的数据寿命短时(步骤S3),写入管理部20选择易失性半导体存储器8作为配置写入对象数据的存储器区域(步骤S4),并在易失性半导体存储器8中决定配置写入对象数据的存储器区域(步骤S12)。
在判断为写入对象数据的数据寿命长时(步骤S3),写入管理部20参照写入对象数据的着色信息的“重要度”,进行写入对象数据的重要度的判断(步骤S5)。
在判断为写入对象数据的重要度高时(步骤S6),写入管理部20选择耐久性(可靠性)高的非易失性主存储器9作为配置写入对象数据的存储器区域(步骤S7)。进一步地,写入管理部20根据写入对象数据的着色信息,判断是否将写入对象数据缓存在易失性半导体存储器8中(根据着色信息的缓存方式)(步骤S8),并在非易失性半导体存储器9中决定配置写入对象数据的存储器区域(步骤S12)。
在判断为写入对象数据的重要度低时(步骤S6),写入管理部20选择耐久性低的非易失性半导体存储器10作为配置写入对象数据的存储器区域(步骤S9)。进一步地,写入管理部20根据写入对象数据的着色信息(动态颜色信息、静态颜色信息),进行写入对象数据的读出频率、写入频率的判断(步骤S10)。
在判断为写入对象数据的读出频率、写入频率高时(步骤S11),写入管理部20选择非易失性半导体存储器9作为配置写入对象数据的存储器区域(步骤S7)。进一步地,写入管理部20根据写入对象数据的着色信息,判断是否将写入对象数据缓存在易失性半导体存储器8中(根据着色信息的缓存方式)(步骤S8),并在非易失性半导体存储器9中决定配置写入对象数据的存储器区域(步骤S12)。
在判断为写入对象数据的读出频率、写入频率低时(步骤S11),写入管理部20根据写入对象数据的着色信息,判断是否将写入对象数据缓存在易失性半导体存储器8中(根据着色信息的缓存方式)(步骤S8),并在非易失性半导体存储器10中决定配置写入对象数据的存储器区域(步骤S12)。
接着,参照图8说明本实施方式所涉及的着色表14的构成例子。图8是表示本实施方式所涉及的着色表14的构成的一个例子的图。在图8所示的着色表14中,对将图5、图6所示的着色信息中特别是读出频率、写入频率、数据寿命用作着色信息的情况进行说明。
另外,作为着色信息,可以使用“重要度”、“读出频率、写入频率”、“数据寿命”中的任意一个,或者可以将任意两个组合使用,或者也可以将全部进行组合来使用。进一步地,也可以另外定义图6中未图示的其它着色信息使用。
着色表14是对每个数据对应地附加着色信息并以条目单位保持的表。通过着色表14,被对应附加了着色信息的数据的数据大小例如是读出、写入的最小的数据大小。例如,读出、写入的最小的数据大小是NAND型闪速存储器的页面大小。以下虽然通过着色表14对被对应附加了着色信息的数据的数据大小是页面大小的情况进行了说明,但并不限于此。
在着色表14的各条目中附加有索引。
在着色表14中保持的着色信息包含静态颜色信息和动态颜色信息。
所谓索引是基于逻辑地址而生成的值。存储器管理装置1的读出管理部19、写入管理部20、着色信息管理部21、再配置部23等在被给与了指定数据的逻辑地址时,参照通过与逻辑地址对应的索引来管理的条目,从而取得数据的着色信息。
静态颜色信息包含表示静态写入频率的值SW_color、表示静态读出频率的SR_color、数据寿命SL_color、数据的生成时刻ST_color。
在此,所谓静态写入频率SW_color是根据数据的种类等推测对应数据被写入的频率而设定的值。所谓静态读出频率SR_color是根据数据的种类等推测对应数据被读出的频率而设定的值。例如,静态写入频率SW_color,越是被推测为写入频率高的数据,越设定高的值。例如,静态读出频率SR_color,越是被推测为读出频率高的数据,越设定高的值。
所谓数据寿命SL_color是根据数据的种类等推测不擦除对应数据而作为数据使用的期间(数据的寿命)而设定的值。
静态颜色数据是通过生成数据的程序(进程)静态地预先决定的值。此外,在信息处理装置100中执行的操作系统27也可以根据数据的文件扩展符或者文件头等预测静态颜色信息。
静态颜色信息包含数据的写入次数DWC_color、数据的读出次数DRC_color。在此,所谓数据的写入次数DWC_color是对应数据被写入混合主存储器2的次数。所谓数据的读出次数DRC_color是对应数据从混合主存储器2中读出的次数。动态颜色信息管理部25通过数据的写入次数DWC_color,对每个数据管理对应数据被写入混合主存储器2的次数。动态颜色信息管理部25通过数据读出次数DRC_color,对每个数据管理对应数据从混合主存储器2中读出的次数。如上所述,混合主存储器2作为主存储器使用。因此,在处理器3a、3b、3c中处理的数据被写入混合主存储器2,并从混合主存储器2中读出。动态颜色信息管理部25在每次数据被写入时,将对应数据的写入次数DWC_color增加1。此外,动态颜色信息管理部25在每次数据被读出时,将对应数据的读出次数DRC_color增加1。
如后面所述,访问频率计算部24根据数据的写入次数DWC_color计算动态写入频率DW_color。访问频率计算部24根据数据的读出次数DRC_color计算动态读出频率DR_color。
所谓动态写入频率DW_color是表示对应数据被写入混合主存储器2的频率的值。所谓动态读出频率DR_color是表示对应数据从混合主存储器2中读出的频率的值。关于动态写入频率DW_color和动态读出频率DR_color的计算方法在后面说明。
如以后所述的,当从处理器3a、3b、3c对混合主存储器2发生写入请求、读出请求时,存储器管理装置1通过参照着色信息,决定写入区域、读出方式等。
接着,参照图9、图10说明本实施方式所涉及的静态颜色信息。图9是表示对各种数据的静态颜色信息(静态写入频率SW_color、静态读出频率SR_color、数据寿命SL_color)的设定的第1个例子的图。图10是表示对各种数据的静态颜色信息(静态写入频率SW_color、静态读出频率SR_color、数据寿命SL_color)的设定的第2个例子的图。
内核的文本区域一般是读出频率高、写入频率低。操作系统27将自身操作的文本区域的静态读出频率SR_color设定为5,将静态写入频率SW_color设定为1。此外,操作系统27预测为内核的文本区域的数据寿命SL_color长。
另一方面,内核的数据区域一般是读出频率、写入频率都高。因此,操作系统27对于内核的数据区域,将静态读出频率SR_color设定为5,将静态写入频率SW_color设定为5。
在内核中被动态确保的数据区域由于在数据不需要时被擦除,因此,数据寿命SL_color设为短。
用户程序的文本区域一般与从全部程序中可重入(reentrant)地调用的内核相比,读出频率低。但是,在进程变为活动的状态下,内核同样读出的频率变高。因此,在用户程序的文本区域中,静态写入频率SW_color被设定为1,静态读出频率SR_color被设定为4。对于用户程序的文本区域,数据寿命SL_color由于是直到该程序被卸载为止的期间,因此,一般变长。因此,对于用户程序的文本区域,数据寿命SL_color被设定为长(LONG)。
在程序中被动态确保的区域大致分为两种。首先,一种是与程序的执行结束同时废弃的数据(包含堆栈区域)。这些数据的数据寿命SL_color短,读出频率和写入频率高。因此,对于与程序的执行结束同时废弃的数据,静态读出频率SR_color被设定为4,静态写入频率SW_color被设定为4。在另一个程序中动态确保的区域是程序为了新的文件而生成的区域。用程序生成的数据的数据寿命SL_color长,读出和写入频率取决于所生成的文件的种类。
对于作为由程序参照的文件而被使用的数据,文件的数据寿命SL_color被设定为长。
例如,对文件的扩展符用SYS、dll、DRV等表示的系统文件被读入的情况进行说明。具有这种扩展符的数据是在操作系统27执行各种处理时读出的文件。具有这种扩展符的数据当在混合主存储器2上安装操作系统27时,如果被一次写入,则其后几乎没有更新。具有这些扩展符的文件即使在文件中,访问频率也比较高,但是,与程序(内核)的文本区域相比,访问频率被预测为低。因此,操作系统27将具有这些扩展符的数据的静态写入频率SW_color设定为1,将静态读出频率SR_color设定为3。该设定表示根据数据预测的写入频率极低,所预测的读出频率高。即,具有这些扩展符的数据是操作系统27的更新和/或安装其它程序时数次改写的数据,被预测为大部分作为只读使用。
使用编辑声音文件的程序的用户少。因此,例如由MP3等压缩的音乐数据的写入频率被认为低。音乐数据的读出频率被认为比写入频率高。因此,由MP3等压缩的音乐数据的静态写入频率SW_color被设定为1,静态读出频率SR_color被设定为2。
使用动态图像编辑程序的用户少。因此,例如由MPEG等压缩的动态图像数据的写入频率被认为低。动态图像数据的读出频率被认为比写入频率高。因此,由MPEG等压缩的动态图像数据的静态写入频率SW_color被设定为1,静态读出频率SR_color被设定为2。
使用文本数据的编辑程序的用户多。因此,例如文本文件的写入频率及读出频率被认为高。因此,文本文件的静态写入频率SW_color被设定为3,静态读出频率SR_color被设定为3。
使用网络浏览器的用户多。因此,浏览器缓存文件的读出频率及写入频率被认为大于等于音乐数据和/或动态图像数据等媒体文件。因此,浏览器缓存文件的静态写入频率SW_color被设定为1,静态读出频率SR_color被设定为3。
例如,在如垃圾箱等的访问频率低的目录中配置的文件的静态写入频率SW_color被设定为1,静态读出频率SR_color被设定为1。
扩展符用JPEG代表的照片数据以及扩展符用MOV代表的电影数据如果被一次写入,则进行再次写入的情况少。这种照片数据和电影数据被预测为被程序访问的频率少。因此,操作系统27对于照片数据及电影数据的静态写入频率SW_color及静态读出频率SR_color设定小的值。
接着,参照图11说明本实施方式所涉及的着色表14的生成处理。图11是表示着色表14的生成处理的一个例子的流程图。着色表14在系统初始启动时生成。着色表14被配置在非易失性半导体存储器9、10上的任意区域。着色表14的所配置的地点也可以根据存储器管理装置1的安装决定。
在步骤T1中,信息处理装置100的电源被接通,从而启动。
在步骤T2中,着色信息管理部21将着色表14的基地址变换成逻辑地址,并生成各数据的索引。
在步骤T3中,着色信息管理部21在信息存储部17中设置着色表14的基地址。信息存储部17例如用寄存器构成。着色表14的基地址例如被设置在着色表寄存器中。
接着参照图12,说明本实施方式所涉及的着色表14的条目的生成处理。图12是表示着色表14的条目的生成处理的一个例子的流程图。
处理器3a、3b、3c确保为了执行进程6a、6b、6c而使用的逻辑地址空间上的区域。在确保了逻辑地址空间上的区域的阶段,在确保了的逻辑地址的地址变换信息13的有效/无效标志上设定0。针对逻辑地址的物理地址的分配对于所确保的逻辑地址空间的范围内的逻辑地址,在进行6a、6b、6c进行访问(读出、写入)的阶段进行。当进行针对逻辑地址的物理地址的分配时,在着色表14中登记针对与对应逻辑地址对应的数据的静态颜色信息,同时在对应逻辑地址的地址变换信息13的有效/无效标志上设定1。
首先,由处理器3a、3b、3c执行的进程6a、6b、6c发出用于配置新的数据的逻辑地址空间上的区域的确保请求(步骤U1)。逻辑地址空间上的未使用区域由操作系统27管理,逻辑地址由操作系统27决定(步骤U2)。
接着,当通过进程6a、6b、6c生成新的数据时,操作系统27根据新生成的数据的种类等,生成静态颜色数据(步骤U3)。静态颜色信息对所生成的数据的每个页面大小生成。例如,当所生成的数据的数据大小比页面大小大时,将数据分割成页面大小,并对分割后的每个页面大小生成静态颜色信息。以下虽然假定写入对象数据的数据大小是页面大小的情况进行说明,但并不限于此。
接着,操作系统27根据在信息存储部17中设置的基地址,参照着色表14(步骤U4)。
接着,操作系统27将所生成的静态颜色信息登记在被附加了与所确保的逻辑地址对应的索引的着色表14的条目中(步骤U5)。
通过处理器3a、3b、3c执行的进程6a、6b、6c在由操作系统27进行的逻辑空间的确保成功之后,对所确保的逻辑地址空间发出读出请求或者写入请求。此时,地址管理部18决定针对写入发生的逻辑地址的物理地址,但该处理以后说明。
通过以上处理,在通过处理器3a、3b、3c执行进程6a、6b、6c,生成新的数据并将新的数据写入混合主存储器2的情况下,对新生成的数据生成着色信息,并将其登记在着色表14的新的条目中。这样,能够将新的数据写入混合主存储器2。
接着,参照图13、图14说明着色表14的条目的对齐(alignment)。图13是表示着色表14的条目的对齐的第1个例子的图。图14是表示着色表14的条目的对齐的第2个例子的图。
虽然着色表14的条目对应于数据的最少的读写大小(例如,NAND型闪速存储器的页面大小),但是,进程6a、6b、6c在将数据映射到逻辑地址空间时,并没有义务与数据的最少的读写大小对齐地映射。因此,对于着色表14的1个条目,有可能有多个数据对应。
在这种情况下,操作系统27如图13所示,在与1个条目对应的多个数据中,将被预测为读出频率及写入频率最高的数据作为代表。
或者,操作系统27如图14所示,将占据1个条目的数据的大小设为权重,设定各数据的静态写入频率SW_color、静态读出频率SR_color的加权平均值。
由着色表14表示的静态写入频率SW_color和静态读出频率SR_color被程序开发者埋入操作系统27等的源代码中,或者由操作系统27预测。但是,也有在与程序开发者的意图不同的用途中使用文件和/或照片数据的情况。一般地,照片数据等这样的数据的访问几乎都是读出,改写照片数据的内容的情况少。但是,在加工照片数据的程序使用特定的照片数据的情况下,有时加工中的照片数据被频繁地改写。在这种情况下,如果用户能够改写着色表14的静态写入频率SW_color和静态读出频率SR_color,则能够将特定的文件更高速地移动到改写次数有富余的区域。
为了实现这样的操作,优选地,各数据的着色信息设计操作系统27的文件系统,以致在操作系统27的软件上进行改写。例如,优选地,设计信息处理装置100,以致如果用一般的浏览器打开文件的属性,则与着色表14相当的属性能够在GUI画面上看见,设计操作系统27,以致用户在GUI上改变其初始数据。
接着,参照图15说明根据动态颜色信息和静态颜色信息计算动态写入频率DW_color和动态读出频率DR_color的方法。图15是表示根据动态颜色信息和静态颜色信息计算动态写入频率DW_color和动态读出频率DR_color的方法的一个例子的图。在图15中,横轴是时间,纵轴是访问次数(读出次数DWC_color或者写入次数DRC_color)。
当新的数据在数据生成时刻生成时,对新生成的数据生成着色信息(包含数据生成时刻),在将其登记在着色表14的新的条目中后,数据被写入混合主存储器12。在数据生成时刻以后,由于发生对该数据发生访问(读出、写入),因此,在时间经过的同时,访问次数(写入次数DWC_color、读出次数DRC_color)增加。该访问次数的增加由动态颜色信息管理部25进行。存储器管理装置1的访问频率计算部24根据访问次数计算动态写入频率DW_color、动态读出频率DR_color。
当前时刻的对应数据的写入次数DWC_color、数据的读出次数DRC_color能够通过参照着色表14来求出。当前时刻的对应动态写入频率DW_color通过从数据生成时刻ST_color开始到当前时刻为止的写入次数DWC_color的时间平均(平均变化率α)求出。此外,当前时刻的对应动态读出频率DR_color通过从数据生成时刻ST_color开始到当前时刻为止的读出次数DRC_color的时间平均(平均变化率α)求出。这样,根据动态颜色信息(写入次数DWC_color、读出次数DRC_color)计算对应数据的动态写入频率DW_color和动态读出频率DR_color。
接着,根据所计算的动态写入频率DW_color和动态读出频率DR_color,判断对对应数据的访问频率的高低。访问频率高低的判断例如根据写入对应数据的混合主存储器2的存储器固有信息11、所计算的动态写入频率DW_color及动态读出频率DR_color进行。
在图15中,首先,设定“可访问上限次数×权重1/数据寿命”作为式A的斜率,设定“可访问上限次数×权重2/数据寿命”作为式B的斜率。在此,权重1>权重2。权重1、权重2可以根据写入计算动态写入频率DW_color、动态读出频率DR_color的对应数据的混合主存储器2任意设定。
在平均变化率α<式A的斜率成立的情况下,该数据的动态访问频率被判断为高。
在式B的斜率<平均变化率α≤式A的斜率成立的情况下,该数据的动态访问频率被判断为中。
在平均变换率α≤式B的斜率成立的情况下,该数据的动态访问频率被判断为低。
接着参照图16,说明从混合主存储器2中读出数据的处理。图16是表示数据的读出处理的一个例子的流程图。
首先,通过处理器3a、3b、3c执行的进程6a、6b、6c发生数据(读出对象数据)的读出请求(步骤W1)。
接着,通过在处理器3a、3b、3c中具备的页面表(未图示),指定读出对象数据的虚拟地址被变换成逻辑地址(步骤W2)。
接着,读出管理部19参照与地址变换信息13的读出对象数据对应的逻辑地址的条目的有效/无效标志(步骤W3)。
当地址变换信息13的有效/无效标志为0时(步骤W3a),由于对逻辑地址的写入一次也没发生,因此,数据未定。在这种情况下,读出管理部19工作,以致读出了读出请求大小量的0数据(步骤W8),并移动到步骤W10的处理。
当地址变换信息13的有效/无效标志是1时(步骤W3a),对逻辑地址的数据的写入至少发生一次。在这种情况下,读出管理部19参照地址变换信息13,判断与逻辑地址对应的数据是否存储在易失性半导体存储器8中(步骤W4)。
读出管理部19在判断为与逻辑地址对应的数据存储在易失性半导体存储器8中时(步骤W4a),由于从易失性半导体存储器8中进行读出,因此,处理移动到步骤W10。
读出管理部19在判断为与逻辑地址对应的数据没有存储在易失性半导体存储器8中时(步骤W4a),参照着色表14,决定来自非易失性半导体存储器9、10的读出对象数据的读出方式(步骤W5)。关于读出方式的决定处理以后说明。
接着,读出管理部19参照存储有读出对象数据的非易失性半导体存储器9、10的存储器固有信息11和存储器使用信息12,判断是否需要移动读出对象数据(再写入)(步骤W6)。
读出管理部19在判断为不需要移动读出对象数据时(步骤W6a),移动到步骤W9。
读出管理部19在判断为需要移动读出对象数据时(步骤W6a),进行读出对象数据向非易失性半导体存储器9、10的其它区域的移动(步骤W7),其后,处理移动到步骤W9。
在步骤W9中,存储器使用信息管理部22在从非易失性半导体存储器中进行读出时,将存储器使用信息11的读出次数增加1。在步骤W10中,动态颜色信息管理部25在进行数据的读出时,将着色表14的数据的读出次数DRC_color增加1。在步骤W11中,读出管理部19根据从逻辑地址和地址变换信息13中得到的物理地址,进行数据的读出。
接着,参照图17说明数据的读出方式的决定处理。图17是表示数据的读出方式的决定处理的一个例子的流程图。读出方式的决定处理是在从非易失性半导体存储器9、10的存储器区域中读出数据时判断是否将易失性半导体存储器8的存储器区域作为缓存器使用的处理。本处理相当于图16的步骤W5。
如上所述,混合主存储器2具备易失性半导体存储器8和非易失性半导体存储器9、10。在本实施方式中,也可以将易失性半导体存储器8的一部分作为高速缓冲存储器使用。在从混合主存储器2的非易失性半导体存储器9、10中读出数据时,读出频率高的数据在易失性半导体存储器8上缓存后被读出。另一方面,读出频率低的数据不在易失性半导体存储器8上缓存,直接从非易失性半导体存储器9、10中读出。
首先,读出管理部19通过参照着色表14,参照读出对象数据的静态读出频率SR_color(步骤V1)。在静态读出频率SR_color大(例如,SR_color=5)时(步骤V1a),由于将读出对象数据从非易失性半导体存储器9、10中缓存到易失性主存储器8(DRAM区域)中,因此,处理移动到步骤V4。
读出管理部19在读出对象数据的静态读出频率SR_color小(例如,SR_color<=4)时(步骤V1a),通过参照地址变换信息13,确认读出对象数据被写入的区域(步骤V2),进一步地,地址频率计算部24计算读出对象数据的动态读出频率DR_color(步骤V3)。
读出管理部19在相对于读出对象数据的静态读出频率SR_color和动态读出频率DR_color“SR_color≥3或者DR_color高”成立时(步骤V3a),确认在易失性半导体存储器8(DRAM区域)中是否有写入读出对象数据的空闲区域(步骤V4)。读出管理部19当在易失性半导体存储器8中有空闲区域时(步骤V4a),将读出对象数据从易失性半导体存储器9、10中缓存到易失性半导体存储器8(DRAM区域)中(步骤V5)。读出管理部19当在易失性存储器8中没有空闲区域时(步骤V4a),将在易失性半导体存储器8中存储的数据回写到非易失性半导体存储器9、10中,并擦除在易失性半导体存储器8中存储的数据,从而确保空闲区域(步骤V6)。在回写处理之后,读出管理部19再次确认易失性半导体存储器8的空闲区域(步骤V7)。当在易失性半导体存储器8中存在空闲区域时(步骤V7a),处理移动到步骤V5,当不存在时(步骤V7a),处理移动到步骤V8。
读出管理部19在相对于读出对象数据的静态读出频率SR_color和动态读出频率DR_color“SR_color≥3或者DR_color高”不成立时(步骤V3a),不将读出对象数据缓存在易失性半导体存储器8中,而直接从非易失性半导体存储器9、10中读出(步骤V8)。
如上所述,通过参照静态读出频率SR_color和动态读出频率DR_color,决定读出方式。
在该图17中,并不进行数据寿命SL_color的判断。对其原因进行说明。如以后说明的,在写入时,数据寿命SL_color短的数据被配置在易失性半导体存储器8中。因此,有效/无效标志为1,表示数据寿命SL_color短的数据被存储在易失性半导体存储器8中。其结果,在图17中,不需要根据数据寿命SL_color进行判断。
接着,对于数据的图9、图10所示的数据的读出方式进行具体说明。图9、图10所示的数据通过按照在图17中说明的数据的读出方式的决定处理的流程图,如以下所述地决定读出方式。
首先,静态读出频率SR_color被设定为5、静态写入频率SW_color被设定为1的内核的文本区域被推测为读出频率高、写入频率低。该内核的文本区域中的第1数据由于在操作系统27进行各种处理时被读出,因此,读出次数增多,进而需要高速地读出。
存储器管理装置1在对处理器3b的二级高速缓冲存储器5b或者一级高速缓冲存储器4b写入从非易失性半导体存储器9、10中读出的第1数据的同时,还并行地向混合主存储器2内的易失性半导体存储器8的存储器区域转移所读出的第1数据。
当再次读出相同的第1数据时,从处理器3b的二级高速缓冲存储器5b或者一级高速缓冲存储器4b上,或者当没有缓存命中时,从混合主存储器2的易失性半导体存储器8的存储器区域中,进行第1数据的读出。在混合主存储器2上的易失性半导体存储器8的存储器区域中存储的第1数据只要易失性半导体存储器8的存储器区域不用尽,就在电源关闭之前保持在易失性半导体存储器8上。
接着,静态读出频率SR_color被设定指定为5、静态写入频率SW_color被设定指定为5的内核的数据区域是每次系统(信息处理装置100)启动时新生成、初始化的区域。因此,内核的数据区域中的第2数据的寿命SL_color被推测为短。存储器管理装置1最初参照第2数据的寿命SL_color。第2数据只要易失性半导体存储器8的存储器区域不用尽,就在易失性半导体存储器8上存在,并在电源关闭的同时从易失性半导体存储器8中擦除。
接着,静态读出频率SR_color被设定为4、静态写入频率SW_color被设定为1的用户程序的区域与从全部程序中可重入地调用的内核相比,读出频率低。虽然用户程序的区域中的第3数据被配置在易失性半导体存储器8的存储器区域中,但当混合主存储器2的易失性半导体存储器8的存储器区域全部(FULL)占满时,变成从易失性半导体存储器8上向非易失性半导体存储器9、10的存储器区域的回写对象。被回写的第3数据的顺序根据着色表14的信息决定。在被回写时,以读出次数少的顺序,将第3数据从易失性半导体存储器8上转移到非易失性半导体存储器9、10上。
静态写入频率SR_color被设定为4、静态读出频率SW_color被设定为4的由程序动态确保的区域中的第4数据中数据寿命SL_color被指定为短的第4数据与内核的数据区域一样,只要易失性半导体存储器8的存储器区域未用尽,就在易失性半导体存储器8上存在,并在电源关闭的同时从易失性半导体存储器8中擦除。
另一方面,虽然数据寿命SL_color被设定为长的第4数据被配置在易失性半导体存储器8的存储器区域中,但当混合主存储器2的易失性半导体存储器8的存储器区域全部占满时,成为从易失性半导体存储器8上向非易失性半导体存储器9、10的存储器区域的回写对象。
接着,对于作为被进程参照的文件而使用的数据进行说明。在上述图10中,作为被进程参照的文件而使用的数据的数据寿命SL_color全部被设定为长。
静态写入频率SW_color被设定为1、静态读出频率SR_color被设定为3的在文件种类中包含的第5数据,由操作系统27推测写入频率极低、所预测的读出频率高。此时,虽然存储器管理装置1将第5数据配置在易失性半导体存储器8的存储器区域中,但当混合主存储器2的易失性半导体存储器8的存储器区域全部占满时,成为从易失性半导体存储器8上向非易失性半导体存储器9、10的存储器区域的回写对象。
静态写入频率SW_color被设定为1、静态读出频率SR_color被设定为2的在文件种类中包含的第6数据,由操作系统27推测静态写入频率SW_color极低、所预测的静态读出频率SR_cplor也低。这样,存储器管理装置1在没有判断为静态读出频率SR_color高时,在读出时不经由易失性半导体存储器8的缓存,而直接访问非易失性半导体存储器9、10。
静态写入频率SW_color被设定为1、静态读出频率SR_color被设定为1的在文件种类中包含的第7数据,由操作系统27推测静态写入频率SW_color极低、所预测的静态读出频率SR_color也极低。这样,存储器管理装置1在没有判断为静态读出频率高时,在读出时不经由易失性半导体存储器8的缓存,而直接访问非易失性半导体存储器9、10。
如上所述,读出对象数据的读出方式根据读出对象数据的着色信息决定。由此,可以使用与读出对象数据的特性(静态读出频率SR_color、静态写入频率SW_color、数据寿命SL_color)一致的读出方式,谋求数据的读出效率的提高。
以下参照图18,说明向混合主存储器2的数据的写入处理。图18是表示数据的写入处理的一个例子的流程图。
首先,通过处理器3a、3b、3c执行的进程6a、6b、6c发生数据(写入对象数据)的写入请求(步骤X1)。
接着,通过在处理器3a、3b、3c中具备的页面表(未图示),将指定写入对象数据的虚拟地址变换成逻辑地址(步骤X2)。
接着,写入管理部20通过参照着色表14,决定混合主存储器2中写入对象的存储器区域(步骤X3)。关于写入对象存储器区域的选定以后说明。
写入管理部20判断通过步骤X3选择的写入对象存储器是否是易失性半导体存储器8(步骤X4)。判断的结果,在所选择的写入对象存储器是易失性半导体存储器8时(步骤X4a),执行步骤X7的处理,在写入对象存储器是非易失性半导体存储器时(步骤X4a),执行步骤X5的处理。
在步骤X5中,写入管理部20参照存储器使用信息11和着色表14,决定非易失性半导体存储器9、10的存储器区域中的写入对象块区域。在步骤X6中,地址管理部18根据写入对象块中的页面的物理地址更新地址变换信息13。当非易失性半导体存储器9、10是NAND型闪速存储器时,由于不进行对同一物理地址的重写,因此,需要伴随写入进行物理地址的更新。
写入管理部20在写入目的地物理地址决定后,进行数据的写入处理(步骤X7)。然后,地址管理部18将地址变换信息13的有效/无效标志设置为1(步骤X8)。动态颜色信息管理部25将着色表14的写入次数DWC_color增加1(步骤X9),存储器使用信息管理部22将存储器使用信息11的写入次数增加1(步骤X10)。
接着参照图19,说明数据的写入对象存储器区域的决定处理。图19是表示数据的写入目的区域的决定处理的一个例子的流程图。
在步骤Y1中,写入管理部20参照写入对象数据的数据寿命SL_color。
在步骤Y2中,写入管理部20判断数据寿命SL-color比预定值长还是短。当数据寿命SL_color大于等于预定值时,处理移动到步骤Y9。
当数据寿命比预定值短时,在步骤Y3中,写入管理部20确认DRAM区域的空闲区域,在步骤Y4中,写入管理部20判断在DRAM区域中是否有空闲区域。
当在DRAM区域中有空闲区域时,在步骤Y5中,写入管理部20将写入对象数据写入DRAM区域。
当在DRAM区域中没有空闲区域时,在步骤Y6中,写入管理部20执行从DRAM区域向其它非易失性半导体存储器的回写处理。然后,在步骤Y7中,写入管理部20确认DRAM区域的空闲区域,在步骤Y8中,写入管理部20判断在DRAM区域中是否有空闲区域。
当在DRAM区域中有空闲区域时,处理移动到步骤Y5,写入管理部20将写入对象数据写入DRAM区域。
当在DRAM区域中没有空闲区域时,处理移动到步骤Y9。
在步骤Y9中,写入管理部20参照在着色表14中管理的写入对象数据的静态写入频率SW_color。
在步骤Y10中,写入管理部20判断静态写入频率SW_color是否被设定为5(写入对象数据的静态写入频率SW_color是否高)。
当静态写入频率SW_color被设定为5时,处理移动到Y13,写入管理部20选择B区域作为写入对象数据的写入目的地。
当静态写入频率SW_color被设定为不是5的值(小于5的值)时,在步骤Y11中,存储器管理装置1参照在着色表14中管理的写入对象数据的静态读出频率SR_color。
在步骤Y12中,写入管理部20判断静态写入频率SR_color被设定为1~5的哪个值。
当在该步骤Y12中静态读出频率SR_color被设定为5时,在步骤Y13中,写入管理部20选择B区域作为写入对象数据的写入目的地。
当在步骤Y12中静态读出频率SR_color被设定为4时,在步骤Y14中,写入管理部20选择A区域作为写入对象数据的写入目的地。
当在该步骤Y12中静态读出频率SR_color被设定为3时,在步骤Y15中,写入管理部20根据数据的着色信息,计算数据的动态写入频率DW_color。接着,在步骤Y16中,写入管理部20参照在着色表14中管理的写入对象数据的静态写入频率SW_color。
在步骤Y17中,写入管理部20判断“静态写入频率SW_color大于等于3或者数据的动态写入频率DW_color是高水平”是否成立。
当在该步骤Y17中“SW_color大于等于3或者数据的动态写入频率DW_color是高水平”不成立时,处理移动到步骤Y14,写入管理部20选择A区域。
当在该步骤Y17中“SW_color大于等于3或者数据的动态写入频率DW_color是高水平”成立时,处理移动到步骤Y18,写入管理部20选择C区域。
当在上述步骤Y12中静态读出频率SR_color被设定为2时,在步骤Y19中,写入管理部20根据数据的着色信息,计算数据的动态写入频率DW_color。
在步骤Y20中,写入管理部20参照在着色表14中管理的写入对象数据的静态频率SW_color。
在步骤Y21中,写入管理部20判断“SW_color是否大于等于3或者所计算的动态写入频率DW_color是高水平”是否成立。
当在该步骤Y21中“SW_color大于等于3或者所计算的动态写入频率DW_color是高水平”成立时,处理移动到步骤Y18,写入管理部20选择C区域。
当在步骤Y21中“SW_color大于等于3或者所计算的动态写入频率DW_color是高水平”不成立时,处理移动到步骤Y22。
在步骤Y22中,写入管理部20判断“SW_color大于等于2或者所计算的动态写入频率DW_color是中水平”是否成立。
当在该步骤Y22中“SW_color大于等于2或者所计算的动态写入频率DW_color是中水平”成立时,处理移动到步骤Y23,写入管理部20选择D区域。
当在步骤Y22中“SW_color大于等于2或者所计算的动态写入频率DW_color是中水平”不成立时,处理移动到步骤Y24,写入管理部20选择E区域。
当在上述步骤Y12中静态读出频率SR_color被设定为1时,在步骤Y25中,写入管理部20根据数据的着色信息,计算数据的动态写入频率DW_color。
在步骤Y26中,写入管理部20参照在着色表14中管理的写入对象数据的静态读出频率SW_color。其后,处理移动到Y21。
另外,在图19的例子中,虽然使用静态颜色信息和动态颜色信息决定数据的写入目的区域,但也可以只使用静态颜色信息决定数据的写入目的区域。即,也可以挪用该图19的例子的流程图的一部分,根据静态颜色信息决定数据的写入目的区域。
例如,操作系统27的开发者对读出管理部19的数据读出方式和写入管理部20的数据写入方式的安装,进行上述图9及图10所示的设定。
例如,SR_color被设定为5、SW_color被设定1的内核的文本区域中的第1数据被推测为读出的次数多、写入的次数少。第1数据根据在上述图17中所示的读出方式的决定操作,在系统运行中被转移到易失性半导体存储器8中进行读写。因此,第1数据实际上写入非易失性半导体存储器9、10的频率低。但是,由于第1数据的重要性高,因此在该图19中,写入管理部20将第1数据写入作为SLC的非易失性半导体存储器9的B区域。
接着,SR_color被设定为5、SW_color被设定为5的内核的数据区域由于是在每次信息处理装置100启动时新生成、初始化的区域,因此,内核的数据区域中的第2数据的数据寿命被推测为短。写入管理部20最初参照第2数据的数据寿命SL_color。第2数据在信息处理装置100的运行中必须在易失性存储器8上存在,并在电源关闭的同时从易失性半导体存储器8中擦除。因此,第2数据不写入非易失性半导体存储器9、10的存储器区域中。
接着,SR_color被设定为4、SW_color被设定为1的用户程序的区域与从全部的程序中可重写地调用的内核相比,读出频率低。用户程序的区域中的第3数据只在没有被上述图16所示的读出方式长期访问时写入非易失性半导体存储器9、10的存储器区域。因此,第3数据被写入非易失性半导体存储器9、10的频率低。第3数据由于与在内核的文本区域中的数据相比,重要度低,因此在图19中,被写入作为MLC区域的A区域。
SR_color4被设定为4、SW_color被设定为4的在程序中被动态确保的区域中的第4数据中数据寿命SL_color被设定为短的第4数据与内核的数据区域一样,在信息处理装置100的运行中必须在易失性半导体存储器8上存在。写入管理部20最初参照数据寿命SL_color。第4数据在系统运行中必须在易失性半导体存储器8上存在,并在电源关闭的同时从非易失性半导体存储器8中擦除,因此,并不写入非易失性半导体存储器9、10的存储器区域中。
另一方面,数据寿命SL_color被设定为长的第4数据虽然被配置在易失性半导体存储器8的存储器区域中,但当混合主存储器2的易失性半导体存储器8的存储器区域全部占满时,成为从易失性半导体存储器8上向非易失性半导体存储器9、10的存储器区域的回写对象。由于程序的文本区域的数据的重要度高,因此,程序的文本区域中的数据被写入作为SLC的C区域。
接着说明作为被进程参照的文件而使用的数据。在图10中,被进程参照的文件的数据寿命SL_color全部被设定为长。
SW_color被设定为1、SR_color被设定为3的系统文件种类中的第5数据,由操作系统27推测写入频率极低、所预测的读出频率高。此时,写入管理部20虽然将第5数据配置在易失性半导体存储器8的存储器区域中,但当混合主存储器2的易失性半导体存储器8的存储器区域全部占满时,第5数据变成从易失性半导体存储器8上向非易失性半导体存储器9、10的存储器区域的回写对象。由于第5数据的写入频率被判断为低,因此,写入管理部20向MLC区域配置第5数据。
SW_color被设定为3、SR_color被设定为3的文件种类用操作系统27推测写入频率极高、所预测的读出频率也高。因此,写入管理部20向SLC区域配置SW_color被设定为3、SR_color被设定为3的文件种类中的数据。
SW_color被设定为1、SR_color被设定为2的在文件种类中包含的第6数据,由操作系统27推测写入频率极低、所预测的读出频率也低。第6数据由于被判断为作为文件的重要度也低,因此,写入管理部20向MLC区域配置第6数据。
SW_color被设定为1、SR_color被设定为1的在文件种类中包含的第7数据,由操作系统27推测写入频率极低、所预测的读出频率也极低。第7数据由于被判断为作为文件的重要度也低,因此,写入管理部20向MLC区域配置第7数据。
在通过上述的处理来决定写入对象的存储器区域的情况下,写入管理部20决定写入目的地的物理地址。在这种情况下,写入管理部20通过参照着色表14适宜地选择写入目的地的物理地址,抑制损耗均衡的发生,减少不需要的擦除处理。
在此,所谓损耗均衡是指以例如擦除次数最大的块与擦除次数最小的块的擦除次数之差在预定的阈值以内的方式在块之间进行数据的改变(更换)。例如,由于NAND型闪速存储器不能进行没有擦除处理下的数据重写,因此,数据移动目的地需要未使用的块,发生原本存储了数据的块的擦除处理。
接着参照图20,说明对数据的写入对象块的决定处理。图20是用于说明对数据的写入对象块的决定处理的图。
非易失性半导体存储器9、10以块为单位进行数据的擦除。非易失性半导体存储器9、10的每个块区域的擦除次数EC能够通过参照存储器使用信息11而取得。将擦除次数EC相对块区域的擦除次数的上限值(可擦除上限次数)的比例设为消耗率。
在块区域的擦除次数EC达到对应块区域的可擦除上限次数时,消耗率是100%。当消耗率是100%时,不进行向对应块区域的数据写入。
在块区域的擦除次数EC接近对应块区域的擦除次数的上限值时(例如,90%),减少对对应块区域的数据写入。写入管理部20通过参照着色表14,将写入频率(静态写入频率SW_color、动态写入频率DW_color)低的写入对象数据(例如,SW_color是1,DW_color是“中”)写入消耗率高的块区域(例如,消耗率小于90%)。
另一方面,在块区域的擦除次数EC比对应块区域的擦除次数的上限值低时(例如,消耗率10%),对对应块区域的数据写入也可以多。写入管理部20通过参照着色表14,将写入频率(静态写入频率SW_color、动态写入频率DW_color)高的写入对象数据(例如,SW_color是5,DW_color“高”)写入消耗率低的块区域(例如,消耗率小于10%)。
如上所述,写入写入对象数据的块区域根据写入对象数据的着色信息和块区域的消耗率决定。由此,能够选择与写入对象数据的特性(写入频率)一致的写入对象块区域,谋求数据的可靠性的提高。此外,如以下说明的,混合主存储器的寿命可以延长。
接着,参照图21至图25对根据写入对象数据的着色信息、存储器使用信息11和存储器固有信息12决定写入写入对象数据的块区域的处理的详细情形和效果进行说明。
图21是表示非易失性半导体存储器9、10的任意块区域中的擦除次数的发展的一个例子的曲线图。在该图21中,纵轴表示擦除次数,横轴表示时间。
根据时间的经过,各块区域中的理想擦除次数变化。例如,在使用NAND型闪速存储器等非易失性半导体存储器9、10的信息处理装置1中,将来非易失性半导体存储器9、10劣化,产生更换非易失性半导体存储器9、10的需要。为了在存储器更换期之前使用非易失性半导体存储器9、10的多数块区域,需要根据损耗均衡的擦除次数的均衡化。在图21中示出了非易失性半导体存储器9、10的任意块区域中的擦除次数的发展。优选地,对于块区域,在达到所期待的寿命的时刻,块区域的擦除次数达到可擦除上限次数。
例如,为了全部块区域按照在图21中示出的擦除次数的发展,也可以在损耗均衡中将对各块区域的擦除次数之差的阈值设定得小。
图22是表示在损耗均衡中将对擦除次数之差的阈值设定得小时的变化的一个例子的曲线图。
图22中的虚线表示各块区域的擦除次数的偏差的范围。如图22所示,通过减小阈值,各块区域的擦除次数的偏差变小,但用于损耗均衡的擦除处理的发生次数增加,其结果,非易失性半导体存储器9、10整体的寿命可能变短。
写入管理部20为了降低擦除次数的分散,抑制由于损耗均衡而产生的擦除处理的发生次数,在写入数据时,进行基于存储器使用信息11、存储器固有信息12、着色表14的擦除块区域的选择。
图23是表示与擦除次数相应的块区域的分组的一个例子的曲线图。
图24是表示与擦除次数相应的块区域的分组的判断基准的图。
在本实施方式中,对每个块区域进行根据擦除次数的分组。表示块区域的分组的结果的信息作为存储器使用信息11保存。另外,表示块区域的分组的结果的信息也可以作为存储器固有信息12保存。
图23的粗线表示最小的擦除次数的发展,虚线表示损耗均衡的阈值。如图23所示,各块区域在损耗均衡的阈值范围内(偏差的范围内)被分成各自的擦除次数的组。
存储器使用信息管理部22在某个块区域的数据被擦除而成为能够再次写入时,根据图24所示的判断表,判断该块区域属于哪个组,并在存储器使用信息11中存储。
在该图24的判断表中,全部的块区域的擦除次数中最小的擦除次数和将该最小擦除次数和用于判断是否进行损耗均衡的阈值相加后的值之间用组的个数进行分割。组在所分割的范围从下向上设定为h、g、f、e、d、c、b、a。然后,在判断表中设定有针对各组的上限的擦除次数和下限的擦除次数。
图25是表示损耗均衡中的块区域的检索的一个例子的图。
写入管理部20根据着色表14的信息,决定成为检索写入对象数据的块区域的基准的组。例如,当写入对象数据的访问频率高时,决定擦除次数少的组,当写入对象数据的访问频率低时,决定擦除次数多的组。以下说明对写入对象数据决定组c的情形。
当成为检索基准的写入对象数据的组c被决定了时,如图25所示,写入管理部20根据存储器使用信息11,检索属于所决定的写入对象数据的组c的块区域。
在属于所决定的写入对象数据的组c的块区域存在时,该块区域被决定为写入对象数据的写入目的地。
与此相对,在属于所决定的写入对象数据的组c的块区域不存在时,写入管理部20检索属于所决定的写入对象数据的组c的附近的组b的块区域。
在属于所决定的写入对象数据的附近组b的块区域存在时,属于该附近组b的块区域被选择作为写入对象数据的写入目的地。
在属于所决定的写入对象数据的附近组b的块区域不存在时,以下同样地,直到块区域被决定之前,进一步执行对相对写入对象数据的组c的另一个附近组d的检索。当通过这样的检索处理决定了写入数据的块区域的物理地址时,写入管理部20进行数据的写入,地址管理部18更新地址变换信息13。
另外,写入管理部20也可以使用其它块区域的检索方法来决定写入目的地的地址。例如,写入管理部20将擦除次数设为关键字,在将擦除块区域作为节点的树形结构(B-Tree、B+Tree、RB-Tree等)中管理可写入的块区域(擦除处理完成),并保存在存储器固有信息12或者存储器使用信息11中。写入管理部20以成为基准的擦除次数为关键字检索树,抽取具有最接近擦除次数的块区域。
当由任意进程3b擦除数据时,操作系统27擦除关于该数据的着色表14的内容。地址管理部18在着色表14的内容被擦除时,擦除地址变换信息13中与擦除对象数据的逻辑地址对应的物理地址。
当数据在易失性半导体存储器8上存在时,易失性半导体存储器8上的数据被擦除。
接着,参照图26说明在本实施方式所涉及的存储器管理装置1中具备高速缓冲存储器的结构。图26是表示在本实施方式所涉及的存储器管理装置1中还具备高速缓冲存储器的存储器管理装置的一个例子的方框图。另外,在该图26中,虽然以处理器3a、3b、3c中处理器3b为代表进行说明,但其它处理器3a、3c也是一样的。
存储器管理装置1还具备高速缓冲存储器28。
处理器3b除了一级高速缓冲存储器4b、二级高速缓冲存储器5b之外,还能够直接访问高速缓冲存储器28。
存储器管理装置28当在一级高速缓冲存储器4b、二级高速缓冲存储器5b、高速缓冲存储器28的任意一个中发生页面换入(page in)或者页面换出(page out)时,访问混合主存储器2。
根据图27的例子说明存储器管理装置1、混合主存储器2、处理器3a的安装例子。
图27(A)是表示存储器管理装置1、混合主存储器2、处理器3a的第1个安装例的方框图。在图27(A)中,虽然对易失性半导体存储器8是DRAM、非易失性半导体存储器9、10是NAND型闪速存储器的情况进行了说明,但并不限于此。
处理器3a具备存储器控制器(MMU)3ma、一级高速缓冲存储器4a和二级高速缓冲存储器4b。存储器管理装置1具备DRAM控制器。处理器3a和存储器管理装置1被形成在同一基板(例如,SoC)上。
易失性半导体存储器8由存储器管理装置1具备的DRAM控制器控制。非易失性半导体存储器9、10由存储器管理装置1控制。在图27(A)的安装例子中,搭载了易失性半导体存储器8的存储器模块和搭载了非易失性半导体存储器9、10的模块是不同的模块。
图27(B)是表示存储器管理装置1、混合主存储器2、处理器3a的第1安装例的方框图。在图27(B)中,虽然对易失性半导体存储器8是DRAM、非易失性半导体存储器9、10是NAND型闪速存储器的情况进行了说明,但并不限于此。对于与图27(A)相同的结构,省略说明。
在图27(B)的例子中,被构成为存储器管理装置1从外部与搭载了处理器3a的芯片电气连接。此外,被构成为存储器管理装置1与易失性半导体存储器8连接。存储器管理装置1具备DRAM控制器(图示省略)。
接着,参照图28说明本实施方式所涉及的存储器管理装置1和信息处理装置100的另一个构成形式。在图1所示的存储器管理装置1和信息处理装置100中,关于数据的写入次数DWC_color、读出次数RWC_color的计数(增量)由存储器管理装置1的动态颜色信息管理部22管理。与此相对,在图28所示的存储器管理装置1和信息处理装置100中,关于数据的写入次数DWC_color、读出次数RWC_color的计数由处理器3a、3b、3c具备的存储器控制器(MMU)3ma、3mb、3mc进行。在以下的说明中,虽然以存储器控制器3ma、3mb、3mc中存储器控制器3ma为代表进行说明,但对于其它存储器控制器3mb、3mc也是一样的。
在处理器3a中具备的存储器控制器3ma具备进行关于数据的写入次数DWC_color、读出次数DRC_color的计数的计数器cta。进一步地,存储器控制器3ma包含管理关于数据的写入次数DWC_color、读出次数DRC_color的计数信息cia。
计数器cta例如在处理器3a对数据发生加载命令时,对针对对应数据的读出次数DRC_color进行计数(增量),并更新计数信息cia。此外,计数器cta例如在处理器3a对数据发生存储命令时,对针对该数据的写入次数DWC_color进行计数(增量),并更新计数信息cia。
通过计数信息cia管理的关于数据的写入次数DWC_color、读出次数DRC_color被定期地反映在关于该数据的存储器管理装置1的着色表14的写入次数DWC_color、读出次数DRC_color中。
在该图28的构成形式中,得到以下效果。即,在相对于处理器3a的工作频率是GHz级,存储器管理装置1的工作频率是MHz级的情况下,在存储器管理装置1中,认为对在处理器3a中发生的写入、读出进行计数是困难的。与此相对,在图28的构成形式的情况下,由于在处理器3a的计数器cta中对写入、读出进行计数,因此,能够对高的工作频率下的读出次数、写入次数进行计数。
接着,参照图29对通过多个存储器管理装置1管理多个非易失性半导体存储器的结构进行说明。图29是表示管理多个非易失性半导体存储器的多个存储器管理装置的一个例子的立体图。
在图29中,由一个存储器管理装置1和多个NAND型闪速存储器29形成一个存储器模块30。在图29的例子中,形成有3个存储器模块30。
多个非易失性半导体存储器29例如是NAND型闪速存储器,作为上述非易失性半导体存储器9、10使用。
存储器管理装置1管理对属于同一个存储器模块30的多个非易失性半导体存储器29的访问。
进一步地,在多个存储器模块30内具备的多个存储器管理装置1相互协同地如同一个存储器管理装置一样进行工作。
存储器模块30的存储器管理装置1具备对存储器模块30内的多个非易失性半导体存储器29的ECC功能及RAID功能,进行镜像和分条。
各个非易失性半导体存储器29即使存储器模块30在通电中(工作中),也能够进行热插拔(更换)。在多个非易失性半导体存储器29的各个上对应地附加有按钮31。
按钮31具备告警输出部(例如LED等)。例如,当告警输出部是第1种颜色(绿)时,表示正常状态,当是第2种颜色(红)时,表示需要更换的状态。
如果按下按钮31,则向进程6a、6b、6c及操作系统27发送通知,当访问等未发生的拆卸安全时,按钮31变成第3种颜色(蓝),与该按钮31对应的非易失性半导体存储器29可以进行热插拔(更换)。
在执行热插拔时,在按下请求热插拔的按钮31后,在回写完成的时刻,表示可以更换的灯点亮,进行非易失性半导体存储器29的更换。
存储器管理装置1的处理部15参照在信息存储部17中存储的存储器使用信息11和存储器固有信息12,判断各非易失性半导体存储器29的写入次数或者读出次数是否达到在存储器固有信息12中记述的可访问上限次数的预定比例。然后,处理部15在写入次数或者读出次数达到可写入上限次数或者可读出上限次数的预定比例时,通知或者告警存储器更换。
在本实施方式中,当非易失性半导体存储器29的页面大小或者块大小大时,预加载是有效的。
在进行预加载时,存储器管理装置1的处理部15参照在非易失性半导体存储器29中存储的与数据对应的着色信息,将被频繁访问的可能性高的数据预先预加载到高速缓冲存储器28中。
或者,处理部15将具有周期性的数据即在预定时间被访问的可能性高的数据在该预定时间之前预加载。
在本实施方式中,根据混合主存储器2的各存储器的耐久性决定数据的配置,能够延长混合主存储器2的寿命。此外,能够实现对混合主存储器2的高速访问。
在本实施方式中,由于根据混合主存储器2的各存储器的耐久性配置数据,因此,能够防止混合主存储器2中致命的数据损失。
通过使用本实施方式所涉及的存储器管理装置1及混合主存储器2,能够消除交换。
在本实施方式中,非易失性半导体存储器9、10被用作主存储器。由此,能够使主存储器的存储容量大容量化,也可以不使用采用硬盘或SSD(固态硬盘)的二级存储装置。
在本实施方式中,由于使用非易失性半导体存储器9、10作为主存储器,因此能够使即时启动高速化。
第2实施方式
作为计算机体系的基本型的诺曼型体系具有由于CPU的频率和主存储器的速度差而产生的称为冯.诺依曼瓶颈的问题。在现有技术中,当在主存储器中使用易失性存储器时,通过在主存储器和CPU之间设置高速的缓存器(SRAM等),缓和了这一问题。
近来开发了使用比易失性半导体存储器低速的非易失性半导体存储器作为主存储器的技术。在这种情况下,上述问题更加显著。因此,需要提高高速缓冲存储器的命中率。
在本实施方式中,在将非易失性存储器作为主存储器的情况下,说明能够提高高速缓冲存储器的命中率的存储器管理装置。
本实施方式将非易失性半导体存储器9、10用作主存储器,将易失性半导体存储器8的一部分用作高速缓冲存储器。在本实施方式中,对用作高速缓冲存储器的易失性半导体存储器8进行说明。
图30示出了易失性半导体存储器(以下也称为缓存器)8的物理地址空间。
在本实施方式中,缓存器8的物理地址空间被分成多个区域L0~L5。各区域不需要在物理地址空间上连续。各区域的大小例如被设定为越高位的区域,物理地址空间越大。进一步地,高位区域能够在相邻的低位区域中扩展区域。各区域的最大扩展大小由区域限制ELM管理。
由于高位区域的区域大小大,因此,该区域内的数据被长时间保持的可能性高。另一方面,由于低位区域的区域大小小,因此,该区域内的数据只能短时间保持的可能性高。
在本实施方式中,在高位区域中配置写出优先级低的数据,在低位区域中配置写出优先级高的数据。该配置的处理例如由图1的写出管理部20进行。写出优先级使用着色信息判断。另外,所谓“写出”是指从易失性半导体存储器8向非易失性半导体存储器9、10的数据移动。
缓存器8具有缓存头CHD。缓存头CHD存储各区域的管理信息。即,在缓存头CHD中存储有各区域的区域限制ELM、空闲(free)缓存行列表FCL以及区域缓存行列表ECL。
空闲缓存行列表FCL是管理缓存器8的空闲区域的数据结构,存储作为与哪个区域也不属于的缓存行对应的管理信息的多个节点。
区域缓存行列表ECL是管理缓存器8的使用区域的数据结构,对每个区域存储从空闲缓存行列表FCL中取得的节点。
缓存头CHD的内容在信息处理装置100启动时通过从非易失性半导体存储器中读入而初始化。此外,在信息处理装置100结束时,缓存头CHD的内容被退避到非易失性半导体存储器区域中。
在信息处理装置100启动时(冷启动时),操作系统设定的内容被记录在缓存头CHD中,生成各区域的基本信息。
另外,区域限制ELM可以由用户与各自的系统使用形式一致地设定,也可以设置用于设定它的接口。
空闲缓存行列表FCL、区域缓存行列表ECL以及节点的详细情形以后说明。
如上所述,写入混合主存储器2的数据具有作为决定混合主存储器2上的配置(写入)区域的提示信息的着色信息。因此,通过使用该着色信息控制对缓存器8的各区域的数据写入,能够提高缓存的命中率。由此,可以谋求降低对非易失性半导体存储器9、10的读出频率,保护非易失性半导体存储器9、10。
图31(a)、(b)和图32(a)、(b)示出了表示上述着色表14的着色信息与图30所示的缓存器8的各区域的对应关系的表(CET)的例子。
图31(a)是优先读出访问的图,能够提高读出的命中率。具体地,图31(a)示出了作为着色信息的数据寿命SL_color、静态读出频率信息SR_color、动态读出频率DR_color及易失性半导体存储器8的区域的对应关系。如图31(a)所示,越是静态读出频率信息SR_color的值大、读出频率高的数据,越配置在易失性半导体存储器8的高位区域。即,在优先读出访问的情况下,参照静态读出频率信息SR_color和动态读出频率DR_color,将静态读出频率信息SR_color和动态读出频率DW_color配置在区域的大小大的高位区域。由于高位区域的区域大小大,因此,该区域内的数据被长时间保持的可能性高。因此,能够提高读出访问的缓存命中率。
此外,数据寿命是“短(S)”的数据被配置在与其它着色信息无关的区域L5中。例如,计算过程中的数据等由于数据的寿命短,因此,写入非易失性半导体存储器9、10的必要性低。但是,这样的数据存在很多。因此,这样的数据在缓存器8中被配置在最大尺寸的区域L5中。
图31(b)是优先写入访问的图,能够提高写入的命中率。具体地,图31(b)示出了作为着色信息的数据寿命SL_color、静态写入频率信息SW_color、动态写入频率DW_color及易失性半导体存储器8的区域的对应关系。即,在优先写入访问的情况下,参照静态写入频率信息SW_color和动态写入频率DW_color,将静态写入频率信息SR_color和动态写入频率SW_color配置在区域的大小大的高位区域中。由此,能够提高写入访问的缓存命中率。
此外,数据寿命是“短”的数据与图31(a)一样,被配置在区域L5中。
图32(a)是考虑了读出频率和写入频率两方面的图,如果读出频率和写入频率的至少一方高,则能够提高命中率。具体地,示出了作为着色信息的数据寿命SL_color、静态读出频率信息SR_color的值与静态写入频率信息SW_color的值的和、易失性半导体存储器8的区域的对应关系。
图32(b)是图32(a)的变形,对读出频率和写入频率附加了权重,对读出频率和写入频率任意设定权重,能够提高命中率。与图32(a)不同,对于SR_color*W+SW_color*(1-W)的值,易失性半导体存储器8的区域被对应地附加。
在图32(a)、(b)中,数据寿命是“短”的数据与图31(a)、(b)一样,被配置在区域L5中。
图31(a)、(b)和图32(a)、(b)所示的表示着色信息与区域的关系的表CET将这些中的一个例如存储在信息存储部17中。
此外,着色信息与区域的关系并不限于图31(a)、(b)和图32(a)、(b)所示的例子,可以根据用户的要求变化。因此,缓存器8如上所述地被设定为能够扩展,如同具有扩展性。
接着,参照图33说明缓存区域的管理方法的一个例子。图33示出了在缓存器8的缓存头CHD中存储的空闲缓存行列表FCL、区域缓存行列表ECL的一个例子。
空闲缓存行列表FCL如上所述,是表示缓存器8的空闲区域的数据结构,由与缓存行对应的多个节点ND构成。各节点ND由缓存行的物理地址、所属区域、更新标志构成。
缓存行与非易失性半导体存储器9、10的页面大小(I/O大小)对应。各节点ND存储缓存行的物理地址。
所属区域是在缓存器中设定的区域L0~L5的任意一个。
更新标志是表示在缓存行的数据中是否发生了更新等的标志。当该更新标志是“0”时,表示数据被擦除或者数据被写入易失性半导体存储器8但该写入的数据未被更新。
此外,当更新标志是“1”时,表示缓存行的数据被更新但该数据的更新未被反映在非易失性半导体存储器9、10中。
该更新标志例如由处理部15控制。处理部15在从非易失性半导体存储器9、10向缓存器8写入数据时,将对应的更新标志设置为“0”,并在该写入的数据在缓存器8中被更新时,将更新标志设置为“1”。此外,处理部15在缓存器8的数据被擦除时,将对应的更新标志设置为“0”,进一步地,当在非易失性半导体存储器9、10中反映了缓存器8的数据的更新时,将对应的更新标记设置为“0”。
另外,更新标志也可以不对各节点配置,而是例如参照在信息处理部17中存储的表示脏位的字段的内容。
另一方面,区域缓存行列表ECL如上所述,是管理缓存器8的使用区域的数据结构,与在各区域中包含的缓存行相对应地存储节点。即,在将从非易失性半导体存储器9、10中读出的数据写入缓存器8时,根据附加在数据上的着色信息搜索空闲缓存行列表FCL的各节点的所属区域,在有空闲区域的情况下,取得该节点,并将其配置在区域缓存行列表ECL的对应区域中。例如,当写入数据是应当写入区域L5的数据时,搜索空闲缓存行列表FCL的各节点,取得区域L5或者作为扩展区域的低位区域L4~L0中的1个节点。该取得的节点被连接到与区域L5对应的区域缓存行列表ECL。
另外,按照所取得的节点的缓存行物理地址,向缓存器8写入数据。进一步地,节点ND的更新标志被设定为“0”。
区域缓存行列表ECL例如基于FIFO(先入先出)和/或LRU(最近最少使用)等算法来管理。因此,例如在与各区域对应地从空闲缓存行列表FCL中取得节点时,所取得的节点根据所设定的算法来分类。
与区域缓存行列表ECL的例如位于最前头位置的节点对应的缓存行始终成为该区域的写出对象。
此外,在区域缓存行列表ECL中,与各区域对应地配置的节点的数量由区域限制ELM管理,管理成各区域的列表长度以不超过区域限制ELM。
另外,在图33中,作为缓存区域的管理方法,虽然对使用缓存头的由软件处理进行的管理进行了说明,但也可以是使用以缓存标签管理缓存行的构成的由硬件进行的管理。
图34示出了例如由处理部15进行的数据的写入处理。即,图34示出了从非易失性半导体存储器9、10中新读出数据并决定配置在缓存器8中的情形的处理的流程。本实施方式由于将各区域的大小设置成可变长度,因此,根据区域是否能够扩展,直到数据写入为止的进程不同。
在图34中,当在缓存器8中配置数据时,首先,决定缓存器8的数据配置区域(步骤S31)。即,根据图31(a)、(b)和图32(a)、(b)所示的对应关系,决定将所读出的数据配置在缓存器8的哪个区域中。
具体地,根据在从非易失性半导体存储器9、10中读出的数据上附加的着色信息,参照例如图31(a)所示的表CET。当在数据上附加的着色信息中数据寿命是“长”、静态读出频率信息SR_color的值是“1”、读出频率是“高”时,该数据被配置在区域L0中。此外,当在数据上附加的着色信息中数据寿命是“长”、SR_color的值是“4”、读出频率是“高”时,该数据被配置在区域L4中。
然后,判断区域的扩展是否可能(步骤S32)。例如,根据区域缓存行列表的节点的数量,能够识别该区域的当前大小。因此,比较该当前大小和在缓存头CHD中记载的区域限制ELM的值。其结果,在当前大小比区域限制ELM的值小时,判断为区域能够扩展。
在区域能够扩展的情况下,判断在空闲缓存行列表FCL中是否存在与该区域对应的节点ND(步骤S33)。即,搜索空闲缓存行列表FCL内的节点的所属区域,并判断对应的区域是否存在。在这种情况下,当数据是应当写入区域L4的数据时,由于区域L4能够扩展到区域L3的一部分,因此搜索区域L4和区域L3。
其结果,当对应的节点ND存在时,该节点ND从空闲缓存行列表中取得(步骤S34)。
从该取得的节点ND中取得缓存行的物理地址,并根据该物理地址,从非易失性半导体存储器9、10中读出的数据被写入缓存器8(步骤S35)。
其后,缓存头CHD被更新(步骤S36)。即,从空闲缓存行列表FCL中取得的节点ND被移动到区域缓存行列表ECL,更新标志被设定为数据“0”。
接着,地址变换表被更新(步骤S37)。即,与被写入缓存器8的数据对应的非易失性半导体存储器9、10的物理地址被写入地址变换表中。
另一方面,在步骤S33中,当判断为与空闲缓存行列表FCL对应的节点ND不存在时,从最低位区域开始搜索空闲缓存行列表ECL(步骤S38)。即,由于生成新的节点ND,因此,需要将缓存器8内的任一数据向非易失性半导体存储器9、10转移,生成空闲区域。因此,从图33所示的区域缓存行列表ECL的最低位区域L0开始搜索区域L5的全部区域。
例如,在从非易失性半导体存储器9、10中读出的数据是应当写入区域L4的数据的情况下,区域L4能够扩展到低位区域的一部分。因此,取得区域缓存行列表ECL的低位区域的节点ND。
接着,判断节点ND能否取得(步骤S39)。其结果,当能够取得节点ND时,从该取得的节点ND中取得缓存行的物理地址,并根据该物理地址,缓存器8内的数据被写入非易失性半导体存储器9、10(步骤S40)。
其后,缓存头CHD被更新(步骤S41)。即,通过与区域缓存行列表ECL的节点ND对应的数据被写入非易失性半导体存储器9、10中,生成空闲的节点ND。该节点ND被移动到空闲缓存行列表FCL中,更新标志被设定为数据“0”。
接着,控制移动到上述步骤S33。在这种情况下,由于在空闲缓存行列表FCL中存在空闲的节点ND,因此,取得该节点,并在用该节点指定的物理地址上写入数据(步骤S33~S35)。接着,缓存头CHD及地址变换表被更新(步骤S36、S37)。
此外,在步骤S32中,当判断为区域的扩展困难时,搜索区域缓存行列表ECL的该区域的节点ND,取得最前头节点ND(步骤S42)。该取得的节点ND是优先级低的区域的节点。
其后,与前述的操作一样,从取得的节点中取得缓存行的物理地址,并根据该物理地址,将易失性半导体存储器8的数据写入非易失性半导体存储器9、10中(步骤S40)。其后,缓存头被更新(步骤S41)。
进一步地,在上述步骤S39中,搜索区域缓存行列表ECL的结果,在不能取得节点ND时,由于不能够使用缓存器8,因此,向非易失性半导体存储器9、10写入数据(步骤S43)。其后,地址变换表被更新(步骤S37)。
缓存器的擦除
图35表示缓存器8的擦除操作的一个例子。缓存器8能够通过软件擦除。
如图35所示,在发布了在缓存器8中存储的数据的擦除请求时(步骤S51),搜索各节点ND的更新标志,并检测在非易失性半导体存储器9、10中不能被更新的数据(步骤S52)。即,例如,检测区域缓存行列表ECL的更新标志是数据“1”的节点。其结果,当没有是数据“1”的更新标志时,结束处理。
此外,当有是数据“1”的更新标志时,根据该节点ND的缓存行的物理地址,缓存器8内的数据被写入非易失性半导体存储器9、10中(步骤S53)。
其后,缓存头CHD被更新(步骤S54)。即,区域缓存行列表ECL的节点被转移到空闲缓存行列表FCL中,更新标志被设定为数据“0”。然后,控制转移到步骤S52。这种操作在直到是数据“1”的更新标志没有之前重复进行。
根据上述第2实施方式,基于在数据上附加的着色信息与缓存器8的区域的关系,重要度高的数据被存储在易失性半导体存储器8的高位的区域中。因此,能够提高缓存器8的命中率。
此外,由于缓存器8的命中率高,因此,能够降低对非易失性半导体存储器9、10的访问次数,可以保护非易失性半导体存储器9、10。
而且,由于高位的区域有扩展区域,因此,可以在扩展区域变成充满之前写入数据。当区域小时,即使重要度高也暂时不访问的数据例如根据LRU的算法,从缓存器8中被回写的可能性高。但是,通过将高位区域设为能够扩展到低位区域并确保包含扩展区域的宽的区域,访问少的数据也能够保留在缓存器内。因此,能够提高缓存器8的命中率。
此外,缓存器8对于每个着色信息,将区域分为L0~L5。作为高位区域的例如区域L5在存储大于等于预定大小的数据时,能够扩展区域到比其低位的区域L4的一部分。此外,当数据被写入直到扩展区域并且不能扩展区域时,根据FIFO和/或LRU等算法,缓存器8的数据向非易失性半导体存储器9、10回写。最低位的区域L0由于不具有扩展区域,因此,当区域充满时,根据FIFO和/或LRU等算法进行回写。因此,能够在缓存器8中长时间保存写入频率高的数据。因此,能够保护对擦除次数有限制的非易失性半导体存储器9、10。
第3实施方式
以下,使用图36至图42说明第3实施方式所涉及的存储器管理装置及其控制方法。本实施方式是上述第1实施方式的变形例。本实施方式涉及能够减少向非易失性半导体存储器(NAND型闪速存储器)9、10的访问次数并使存储器寿命长期化的一个例子。另外,在本说明中,省略与上述第1实施方式重复的部分的详细说明。
地址变换信息的有效/无效标志的真值
首先,使用图36说明上述图4中的地址变换信息13具有的表示非易失性半导体存储器9、10上的数据的有无的有效/无效标志的真值。
如图所示,标志的初始值是“0”。
标志“0(无效)”表示对应的逻辑地址在非易失性半导体存储器9、10中未被映射或者虽然被映射但成为擦除对象。
标志“1(有效)”表示对应的逻辑地址在非易失性半导体存储器9、10中的至少一方中被映射。
另外,假设标志“0(无效)”当在非易失性半导体存储器(NAND)9、10上存在的块内的所有页面变成标志“0(无效)”时能够擦除在该块中存在的全部数据。如果在块内有即使1个具有标志“0(有效)”的页面,该块也不能擦除。
有效/无效标志的状态迁移
以下,使用图37说明上述非易失性半导体存储器9、10的有效/无效标志的状态迁移。
如图所示,有效/无效标志当在非易失性半导体存储器9、10中被映射时,从标志“0”状态迁移到“1”。另一方面,当非易失性半导体存储器9、10上的数据变成擦除对象时,从标志“1”状态转移到“0”。
1.存储器释放请求的处理流程
下面,按照图38说明混合主存储器2的存储器释放请求的处理流程。
S001
如图所示,首先,在步骤S001时,例如,处理器3a的操作系统OS(相当于第1实施方式的操作系统27)将易失性半导体存储器8的存储器释放请求(自变量:逻辑地址)发送到存储器管理装置1。
S002
然后,在步骤S002时,接收了上述存储器释放请求的存储器管理装置1参照上述地址变换信息(地址变换表)13,确认与存储器释放请求的自变量的逻辑地址对应的易失性半导体存储器8上的物理地址是否具有未定的值,此外,检查非易失性半导体存储器9、10的有效/无效位,确认对应的数据在易失性半导体存储器8上还是在非易失性半导体存储器9、10上。
即,存储器管理装置1在上述地址变换信息13中的非易失性半导体存储器9、10的有效/无效位是“0”时,判断为自变量的逻辑地址在非易失性半导体存储器9、10上没有被映射,当非易失性半导体存储器9、10的有效/无效位是“1”时,判断为自变量的逻辑地址在非易失性半导体存储器9、10上被映射。
然后,存储器管理装置1在非易失性半导体存储器9、10的有效/无效位是“1”时,参照易失性半导体存储器8的物理地址以及非易失性半导体存储器9、10的物理地址,确认对应的数据是否在易失性半导体存储器8上以及非易失性半导体存储器9、10上存在,并进行以下的控制。
情况1(对应数据在DARAM 8上以及NAND 9、10上存在)
S003
然后,在步骤S003时,当对应数据在易失性半导体存储器8上以及非易失性半导体存储器9、10上都存在时,存储器管理装置1对于易失性半导体存储器8擦除与有释放请求的逻辑地址对应的易失性半导体存储器8上的物理地址的数据,形成明示的空闲区域,并将易失性半导体存储器8的脏位设为“0”。在此,所谓易失性半导体存储器8的上述脏位是表示易失性半导体存储器8上的数据被改写的位,例如,在易失性半导体存储器8的头区域等中存在。
S004
接着,在步骤S004时,存储器管理装置1对于非易失性半导体存储器9、10,将与有释放请求的逻辑地址对应的非易失性半导体存储器9、10上的物理地址的有效/无效位设为“0”以无效化,成为擦除对象。另外,此时,严格地说,对非易失性半导体存储器(NAND)9、10实际上不进行数据擦除操作,作为擦除对象,只去掉有效位。
情况2(对应数据只在DARAM 8上存在)
S005
接着,在步骤S005时,当对应数据只在易失性半导体存储器8上存在时,存储器管理装置1同样地擦除与有释放请求的逻辑地址对应的易失性半导体存储器8上的物理地址的数据,形成明示的空闲区域,并将易失性半导体存储器8的脏位设为“0”。
另外,在本例中,由于目的在于通过在易失性半导体存储器(DRAM)8中制作空闲区域来减少对非易失性半导体存储器(NAND)9、10的访问次数,因此,不需要考虑在非易失性半导体存储器(NAND)9、10上只有所指定的数据的情况(没有被缓存的情况)。当与有释放请求的逻辑地址对应的数据不在易失性半导体存储器8上而只在非易失性半导体存储器9、10上时,只将有效/无效位设置为“0”(进行无效化)。
1-2.根据存储器释放请求的易失性半导体存储器8的明示的空闲区域
如上所述,本例所涉及的存储器管理装置1对于包含易失性半导体存储器(第1存储器)8和非易失性半导体存储器(第2存储器)9、10的混合主存储器2,从处理器3中接收指定释放位置的逻辑地址,并参照地址变换信息13,检查上述所指定的逻辑地址、易失性半导体存储器(第1存储器)8的物理地址、非易失性半导体存储器(第2存储器)9、10的物理地址和在该非易失性半导体存储器9、10上的物理地址上存在的数据的有效/无效标志,确认与有释放请求的逻辑地址对应的存在数据的物理地址。然后,如果在易失性半导体存储器(第1存储器)8上有对应的数据,则擦除它,形成明示的空闲区域,如果在非易失性半导体存储器(第2存储器)9、10上也有对应的数据,则实际上不进行数据的擦除操作,但将有效/无效标志设为“0”,进行无效化。换句话说,对于通过存储器释放请求指定的逻辑地址,在易失性半导体存储器(DRAM)8中形成明示的空闲区域。
图39是用于说明图38中的存储器释放请求时的易失性半导体存储器的明示的空闲区域的形成的图。例如,如图所示,在易失性半导体存储器(DRAM)8的存储器空间上,在与通过存储器释放请求指定的逻辑地址对应的物理地址xh,形成擦除后的明示的空闲区域FS0。
这样,由于能够降低易失性半导体存储器8的数据量,因此,在能够减少对非易失性半导体存储器9、10的访问次数,能够使非易失性半导体存储器9、10的存储器寿命长期化这一点有利。
2.存储器获得请求的处理流程
下面按照图40,说明混合主存储器2的存储器获得请求的处理流程。
S011
如图所示,首先,在步骤S011时,例如,处理器3a中的应用程序App向操作系统OS发送存储器获得请求。
S012
接着,在步骤S012时,操作系统OS确保空闲(任意)的逻辑地址的一部分。在该阶段,所确保的逻辑地址还没有被映射到易失性半导体存储器和/或非易失性半导体存储器上的物理地址,今后,在写(write)请求出现时首先进行映射。此时,在本例中,在以下说明的数据读出及数据写入之前,能够确保基于着色信息(提示信息)的存储器区域。因此,在能够使非易失性半导体存储器9、10的存储器寿命长期化这一点有利。
S013(数据读请求)
接着,在步骤S013时,应用程序App向操作系统OS请求数据读出(read)。
S014
然后,在步骤S014时,操作系统OS对存储器管理装置1请求数据读出(read)。
这样,存储器管理装置1参照地址变换信息13,查找与有数据读出(read)请求的逻辑地址对应的条目。
在此,如果进行了映射,则返回在与有数据读出请求的逻辑地址对应的易失性半导体存储器8上或者非易失性半导体存储器9、10上的物理地址上存在的数据。另一方面,如果在当前时刻还未进行映射,则当在上述物理地址上输入了不定的值时,代之返回被清零了的数据。
详细的内容按照图41所示的流程以后说明。
S015(数据写请求)
接着,在步骤S015时,应用程序App向操作系统OS请求数据写入(write)。
S016
接着,在步骤S016时,操作系统OS对存储器管理装置1请求数据写入(write)。
这样,存储器管理装置1参照地址变换信息13,采纳对上述所确保的逻辑地址的映射结果(易失性半导体存储器上和/或非易失性半导体存储器上的物理地址)。此时,当在非易失性半导体存储器9、10上被映射时,将表示非易失性半导体存储器9、10上的数据的有无的有效/无效位设为“1”,进行有效化。
详细的内容按照图42所示的流程以后说明。
2-1.存储器数据读请求时的处理流程
下面按照图41,详细说明上述步骤S014时的存储器数据读请求的处理流程。
S201
如图所示,首先在步骤S201时,例如,处理器3a的应用程序App向操作系统OS进行读出请求,操作系统OS向存储器管理装置1指定逻辑地址,并请求存储器数据读出。
S202
接着,在步骤S202时,接收了上述存储器数据读请求的存储器管理装置1参照地址变换信息(表)13,判断在易失性半导体存储器8上是否有与逻辑地址对应的数据。
S203
接着,在步骤S203时,当在步骤S202时的判断中判断为在易失性半导体存储器8上有与逻辑地址对应的数据时(是),操作系统OS通过存储器管理装置1读出在与逻辑地址对应的易失性半导体存储器8的物理地址上存在的数据,并结束该操作。
S204
接着,在步骤S204时,当在步骤S202时的判断中判断为在易失性半导体存储器8上没有与逻辑地址对应的数据时(否),存储器管理装置1再次参照地址变换信息(表)13,判断在非易失性半导体存储器9、10上是否有与逻辑地址对应的数据。
S205
接着,在步骤S205时,当在步骤S204时的判断中判断为在非易失性半导体存储器9、10上有对应的地址时(是),操作系统OS通过存储器管理装置1读出与逻辑地址对应的在非易失性半导体存储器9、10中存储的对应数据。
S206
接着,在步骤S206时,操作系统OS通过存储器管理装置1将在上述步骤S205时从非易失性半导体存储器9、10中读出的上述数据写入易失性半导体存储器8上。
S207
接着,在步骤S207时,存储器管理装置1设定地址变换信息13的对应条目的易失性半导体存储器8的物理地址,将地址变换信息13中的有效/无效位设为“1”,将脏位设为“0”,并结束。
S208
接着,在步骤S208时,当在上述步骤S204时的判断判断为在非易失性半导体存储器9、10上没有对应的地址时(No),操作系统OS将存储器管理装置1清零了的数据发送到处理器3a一侧,并结束。
在此,上述的所谓“将清零了的数据发送到处理器3a一侧”原本是如果实际上在易失性及非易失性半导体存储器的至少某一方中存在数据,则发送在与逻辑地址对应的物理地址上存在的数据的内容。但是,在这种情况下,由于还未进行映射,没有相应的数据,因此,实际上代替发送数据的内容的地方,将以尺寸量的零占满的内容作为数据返回。
另外,其后,也可以将上述清零了的数据写入易失性半导体存储器8上。
2-2.存储器数据写入请求时的处理流程
以下,按照图42详细说明上述步骤S106时的存储器数据写请求时的处理流程。
S301
如图所示,首先,在步骤S301时,例如,处理器3a的应用程序App向操作系统OS请求写出(write),操作系统OS向存储器管理装置1指定逻辑地址,并请求存储器数据写。
S302
接着,在步骤S302时,接收了上述存储器数据写请求的存储器管理装置1参照地址变换信息(表)13,判断在易失性半导体存储器8上是否有与逻辑地址对应的数据。
S303
接着,在步骤S303时,当在步骤S302时的判断中判断为在易失性半导体存储器8上有与逻辑地址对应的数据时(是),操作系统OS通过存储器管理装置1向与逻辑地址对应的易失性半导体存储器8上的物理地址写入对应数据。
S304
接着,在步骤S304时,存储器管理装置1参照地址变换信息13,将与相应地址对应的易失性半导体存储器8上的条目的脏位设为1(结束)。
S305
接着,在步骤S305时,当在上述步骤S302时的判断中判断为在易失性半导体存储器8上没有与逻辑地址对应的数据时(否),存储器管理装置1再次参照地址变换信息13,判断在非易失性半导体存储器9、10上是否有与逻辑地址对应的数据。
S306
接着,在步骤S306时,当在上述步骤S305时的判断中判断为在非易失性半导体存储器9、10上有与逻辑地址对应的数据时(是),操作系统OS通过存储器管理装置1读出在与逻辑地址对应的非易失性半导体存储器9、10上的物理地址上存在的数据。
S307
接着,在步骤S307时,当在上述步骤S305时的判断中判断为在非易失性半导体存储器9、10上没有与逻辑地址对应的数据时(否),操作系统OS将存储器管理装置1清零了的数据发送到处理器3a一侧,并进入下一步骤S308。
S308
接着,在步骤S308时,存储器管理装置1在易失性半导体存储器8上写入从上述非易失性半导体存储器中读出的数据或者清零了的数据。
S309
接着,在步骤S309时,存储器管理装置1设定地址变换信息(表)13的对应条目的易失性半导体存储器8的物理地址,并将地址变换信息13中的有效/无效位设为“1”,将脏位设为“0”。
S310
接着,在步骤S310时,存储器管理装置1在易失性半导体存储器8上写入更新了的数据,并结束该操作。
在此,如上所述,在本例中,在向易失性半导体存储器8读出一次在非易失性半导体存储器9、10上存在的数据等后,在易失性半导体存储器8上改写更新了的数据。这是为了防止在数据写入时如果在非易失性半导体存储器9、10上改写则访问次数增加(因为需要读出+写入)的缘故。
2-3.作用效果
如上所述,本例所涉及的存储器管理装置1在步骤S012时,从应用程序中接收了上述存储器获得请求的操作系统OS确保空闲的逻辑地址的一部分。其后,在发生写请求时,根据伴随逻辑地址写入次数等的着色信息,确保易失性半导体存储器8或者非易失性半导体存储器9、10中适合一方的存储器区域。
进一步地,本例所涉及的存储器管理装置1由于在易失性半导体存储器8上制作明示的空闲区域,因此,应当写出到非易失性半导体存储器9、10的易失性半导体存储器8上的数据减少,能够减少对包含可访问次数有限制的NAND型闪速存储器的非易失性半导体存储器的访问次数。
因此,在能够使包含NAND型闪速存储器的非易失性半导体存储器9、10的存储器寿命长期化的方面有利。
另外,在本例中,虽然对如图4所示的用共用的地址变换表管理作为缓存器的易失性半导体存储器8以及非易失性半导体存储器9、10进行了说明,但并不限于此,也可以分别管理易失性半导体存储器8和非易失性半导体存储器9、10。例如,易失性半导体存储器8也可以用缓存标签(表)管理。此外,在缓存标签中也并不必需包含着色信息。
第4实施方式
NAND型闪速存储器一般作为二级存储装置使用。在这种情况下,在NAND型闪速存储器中存储的数据大部分具有大于等于物理块大小的数据大小。因此,当将NAND型闪速存储器用作二级存储装置时,在1个块区域内包含擦除频率不同的多个数据的情况很少。
与此相对,如上所述,当将NAND型闪速存储器用作主存储器时,从NAND型闪速存储器中读出的数据的大小以及写入NAND型闪速存储器的数据的大小被推测为小于NAND型闪速存储器的物理块大小的情况多。
本实施方式是上述第1实施方式的变形例,对将多个写入对象数据根据着色信息分类成多个组(颜色组)并汇集属于同一组的多个写入对象数据以构成块大小的数据的存储器管理装置1进行了说明。
作为着色信息,例如只要采用在第1实施方式中说明的静态颜色信息和动态颜色信息的至少一个即可。作为静态颜色信息,例如只要采用“重要度”、“读出频率、写入频率”、“数据寿命”中的至少一个即可。作为动态颜色信息,例如只要采用数据的读出及写入的次数、数据的读出及写入的频率中的至少一个即可。
在本实施方式中,虽然以非易失性半导体存储器9、10是NAND型闪速存储器的情况为例进行说明,但非易失性半导体存储器9、10的种类并不限于此。在此,对重写方式进行简单说明。所谓重写方式是使用了NAND型闪速存储器的存储器系统的写入方式之一。
在NAND型闪速存储器中,对于进行一次写入的页面,如果不在擦除包含该页面的块整体之后,则不能再次进行写入。换言之,在NAND型闪速存储器中,对于同一物理地址(NAND型闪速存储器的物理地址,以下称为NAND物理地址),如果不在擦除之后,则不能够重写。
另一方面,在重写方式中,逻辑地址(NAND型闪速存储器的逻辑地址,以下称为NAND逻辑地址)与NAND物理地址的对应关系由逻辑物理变换表管理,这些关系能够动态地改变。包含NAND型闪速存储器的存储器系统以在采用重写方式时能够从高位层对任意的逻辑地址重写的方式工作。
在NAND型闪速存储器的逻辑物理变换表中,管理有块单位的NAND逻辑地址(以下称为NLBA)与块单位的NAND物理地址(以下称为NPBA)的对应关系。由于NAND型闪速存储器的逻辑物理变换表以块单位进行管理,因此,即使在小于等于块尺寸的大小(例如只有1个页面量)的数据被更新的情况下,也需要包含该数据的块整体的擦除处理。
具体地,当与NLBA的一部分对应的数据被更新时,对于该NLBA,分配新的NPBA。更新数据被写入与新的NPBA对应的区域,此时,在旧NPBA中存储的未更新的数据被复制到与新的NPBA对应的区域(并行迁移)。另外,对于一个NLBA,向数据交换用分配多个NPBA,也可以在这些NPBA间进行伴随更新的数据交换。
在本实施方式中,说明作为着色信息,例如根据静态写入频率SW_color将写入对象数据分组的情况。但是,也可以根据其它着色信息,例如静态读出频率SR_color、动态写入频率DW_color、动态读出频率DW_color等各种基准,进而根据多个基准的组合,将写入对象数据分组。
在本实施方式中,用于将多个写入对象数据分组的管理尺寸小于NAND型闪速存储器的块大小。例如,作为管理尺寸的一个单位,使用与着色表14的管理单位相等的页面。
图43是表示本实施方式所涉及的存储器管理装置1的功能构成的主要部分的一个例子的方框图。着色信息管理部21除了在图2中说明的访问频率计算部24、动态颜色信息管理部25之外,还具备组值计算部201、预约列表管理部202。
此外,存储器管理装置1具备:写入管理装置20、在信息存储部17中存储的着色表14、在工作存储器16中存储的预约列表32。由于在存储器管理装置1中包含的其它功能块与在图2中说明的一样,因此,在此省略图示及说明。
组值计算部201参照着色表14,根据写入对象数据的静态写入频率SW_color,计算颜色组值。颜色组值是表示写入对象数据属于根据静态写入频率SW_color决定的颜色组中哪个颜色组的值。颜色组值根据着色表14的着色信息计算,表示写入对象数据的分组结果。
组值计算部201将每个数据的着色信息作为输入值,计算颜色组值,但该计算方法能够有各种改变。例如,组值计算部201也可以将数据的静态写入频率SW_color或者动态写入频率DW_color直接用作颜色组值。
在这种情况下,组值计算部201进行分组,以致在静态写入频率SW_color或者动态写入频率DW_color的范围宽的情况下,颜色组的数量不会过多。此外,例如,组值计算部201也可以根据数据的静态写入频率SW_color和动态写入频率DW_color中的至少一个计算颜色组值。
预约列表管理部202管理表示相对分配给各颜色组的块的写入对象数据的预约状态的预约列表32。预约列表32例如存储在工作存储器16中,但也可以例如存储在信息存储部17等其它存储部中。有关预约列表管理部202及预约列表32的详细情形以后说明。
写入管理部20参照预约列表32,将汇集了分配给预约节点的多个写入对象数据的块大小的数据写入非易失性半导体存储器9、10中与预约节点对应的块。
在此,使用图44及图45说明一般的向NAND型闪速存储器的写入与由本实施方式所涉及的存储器管理装置1进行的写入的不同点。
图44是表示在未用着色信息对写入对象数据分类的情况下的块大小的数据构成的一个例子的图。
在采用了重写方式的NAND型闪速存储器中,即使在只有块内的数据的一部分被更新的情况下,也需要擦除该块整体。因此,块的擦除频率与块内的数据中访问频率(例如,静态写入频率SW_color)最高的数据成比例。
假设如果访问频率极高的数据被分散在各个块中,则伴随数据更新作业的块擦除频繁发生,结果,擦除频率高的块数量增加,NAND型闪速存储器的寿命变短。
与此相对,图45是表示在用着色信息对写入对象数据分类的情况下的块大小的数据构成的一个例子的图。
在本实施方式中,如在上述第1实施方式中说明的,由于能够基于着色表14得到着色信息,因此,能够根据访问频率(例如,静态写入频率SW_color)将写入对象数据分组。
组值计算部201根据着色表14,将NAND型闪速存储器的小于块大小的写入对象数据分类成具有相同程度的访问频率的颜色组。
预约列表管理部202只以块大小收集属于同一颜色组的写入对象数据,并打包成块。
这样,能够使访问频率高的数据集中在一部分块中。然后,能够使擦除频率高的块的数量减少,使NAND型闪速存储器的寿命长期化。
图46是表示本实施方式所涉及的地址变换信息13与非易失性半导体存储器9、10的物理地址空间(即NAND逻辑地址)的关系的一个例子的图。
地址变换信息13将逻辑地址、易失性半导体存储器8的物理地址、非易失性半导体存储器9、10的物理地址(NAND逻辑地址)、有效/无效标志作为条目具有。
在该地址变换信息13中,当数据被存储在易失性半导体存储器8中时,与数据的逻辑地址相关联地存储易失性半导体存储器8的物理地址。
当数据被存储在非易失性半导体存储器9、10中时,与数据的逻辑地址相关联地存储非易失性半导体存储器9、10的物理地址(NAND逻辑地址)。有效/无效标志是表示各条目是否有效的标志。
首先,假设颜色组G2的写入对象数据D1被存储在非易失性半导体存储器9、10中。在这种情况下,对颜色组G2的非易失性半导体存储器9、10的物理地址(NAND逻辑地址)区域被预约1个块的量。
进一步地,写入对象数据D1的逻辑地址L1、对颜色组G2预约的物理地址(NAND逻辑地址)区域中任意一个物理地址(NAND物理地址)P1、表示有效的有效/无效标志1被存储在地址变换信息13中。
接着,假设颜色组G4的写入对象数据D2被存储在非易失性半导体存储器9、10中。在这种情况下,对于颜色组G4,非易失性半导体存储器9、10中1个块的量的物理地址区域被预约。
然后,写入对象数据D2的逻辑地址、对颜色组G4预约的物理地址区域中任意一个物理地址Q1、表示有效的有效/无效标志1被存储在地址变换信息13中。
在此,假设与前面在非易失性半导体存储器9、10的物理地址空间中存储的写入对象数据D1属于同一颜色组G2的写入对象数据D3被存储在非易失性半导体存储器9、10中。在这种情况下,写入对象数据D3的逻辑地址、对颜色组G2预约的物理地址区域中另一个物理地址P2、表示有效的有效/无效标志1被存储在地址变换信息13中。
图47是表示非易失性半导体存储器9、10的逻辑物理变换表(NAND逻辑物理变换表)13a的一个例子的图。NAND逻辑物理变换表13a例如存储在信息存储部17中。NAND逻辑物理变换表13a表示NAND逻辑块地址NLBA与NAND物理块地址NPBA的对应关系。
在图47中,例如,对于NLBA0分配NPBA2,对于NLBA1分配NPBA1,对于NLBA2分配NPBA0。例如,NLBA0对应非易失性半导体存储器9、10的物理地址P1、P2、…、Pn。
图48是表示预约列表32的一个例子的数据结构图。
预约列表32管理表示所预约的块区域单位的物理地址区域的预约节点321~326。该预约列表32是用于防止访问频率高的数据和访问频率低的数据被包含在同一块中的管理区结构。预约节点例如为了与数量的增减灵活地对应而用列表结构管理。
各预约节点321~326包含分配给各个预约节点的颜色组值、预约物理地址(预约NAND逻辑地址)、空闲区域大小。
预约物理地址是分配给预约节点上的物理地址(NAND逻辑地址)区域中未使用的下次进行数据的配置的物理地址(NAND逻辑地址)。
空闲区域大小表示分配给预约节点的物理地址(NAND逻辑地址)区域中未使用的区域的大小。
当在逻辑地址空间上发生了新数据时,预约列表管理部202扫描预约列表32。然后,预约列表管理部202检索具有与新数据的颜色组值相同的颜色组值且空闲区域大小比新数据的大小大的预约节点。
在检索到预约节点时,对新数据的物理地址使用所检索的预约节点的预约物理地址。
预约列表管理部202从分配给所检索的预约节点的物理地址区域中选择未使用的地址区域,并更新所检索的预约节点的预约物理地址。此外,预约列表管理部202从空闲区域大小中减去新数据的大小,进行所检索的预约节点的空闲区域大小的更新。
在没有检索到预约节点时,预约列表管理部202确保块大小的新的物理地址区域,在预约列表32中添加新预约节点。预约列表管理部202将新数据的颜色组值设定为新预约节点的颜色组值,将新确保的物理地址区域的未使用的物理地址设定为新预约节点的预约物理地址,将新确保的物理地址区域的空闲区域的大小设定为新预约节点的空闲区域大小。
图49是表示本实施方式的组值计算部201和预约列表管理部202的处理的一个例子的流程图。
在步骤A1中,组值计算部201计算写入对象数据的颜色组值。
在步骤A2中,预约列表管理部202根据写入对象数据的颜色组值,检索预约列表32。
在步骤A3a、A3b中,预约列表管理部202判断是否存在具有写入对象数据的颜色组值且具有大于等于写入对象数据的大小的空闲区域的适宜的预约节点。
当没有适宜的预约节点时,在步骤A4中,预约列表管理部202参照存储器使用信息11、存储器固有信息12、着色表14,从物理地址(NAND逻辑地址)空间中预约块大小的新的物理地址区域。此外,预约列表管理部202经由地址管理部18,将写入对象数据的逻辑地址与所预约的物理地址区域中任意一个物理地址(例如,最前头的物理地址)相关联,更新地址变换信息13。
在步骤A5中,预约列表管理部202向预约列表32追加所预约的1个块区域的预约节点,在预约节点中设定颜色组值、预约地址、空闲区域大小。其后,处理移动到步骤A8a。
当存在适宜的预约节点时,在步骤A6中,预约列表管理部202将适宜的预约节点的预约地址设为物理地址,并经由地址管理部18,将写入对象数据的逻辑地址和物理地址相关联,更新地址变换信息13。
在步骤A7中,预约列表管理部202更新适宜的预约节点的预约地址、空闲区域大小。其后,处理转移到步骤A8a。
在步骤A8a、A8b中,预约列表管理部202判断适宜的预约节点的更新后的空闲区域大小是否比任意尺寸小。
当空闲区域大小大于等于任意尺寸时,处理结束。
当空闲区域大小比任意尺寸小时,在步骤A9中,预约列表管理部202从预约列表32中废弃该适宜的预约节点,处理结束。
图50是表示本实施方式的地址变换信息13的状态迁移的一个例子的图。
在状态1中,针对逻辑地址“0x0010_0000”的数据发生,该逻辑地址“0x0010_0000”被登记在地址变换信息13中。
组值计算部201基于逻辑地址“0x0010_0000”,参照着色表14,计算针对逻辑地址“0x0010_0000”的颜色组值。预约列表管理部202根据颜色组值检索预约列表32。
在该例子中,假设没有与颜色组值对应的预约节点(物理地址区域的范围)。当没有发现预约节点时,预约列表管理部202根据存储器使用信息11、存储器固有信息12、着色表14,决定相对逻辑地址“0x0010_0000”的物理地址“0x0030_0000”。
在状态2中,与逻辑地址“0x0010_0000”对应的物理地址“0x0030_0000”由地址管理部18登记在地址变换信息13中。
组值计算部201根据物理地址“0x0030_0000”预约1个块区域量的地址区域。
组值计算部201在预约列表32中追加与该所预约的地址区域对应的预约节点。组值计算部201在预约节点中设定在状态1下计算的颜色组值。
在状态3中,针对逻辑地址“0x0030_0000”的新的数据发生,该逻辑地址“0x0030_0000”由地址管理部18登记在地址变换信息13中。
组值计算部201根据逻辑地址“0x0030_0000”,参照着色表14,计算针对逻辑地址“0x0030_0000”的颜色组值。预约列表管理部202根据颜色组值,检索预约列表32。在该例子中,假设与颜色组值对应的预约节点被发现。预约列表管理部202将所发现的预约节点的预约物理地址“0x0040_0000”决定为相对逻辑地址“0x0030_0000”的物理地址。
在状态4中,与逻辑地址“0x0030_0000”对应的物理地址“0x0040_0000”由地址管理部18登记在地址变换信息13中。
在以上说明的本实施方式中,基于多个写入对象数据的着色信息,由属于访问频率相同的组的多个写入对象数据构成块大小的数据。
因此,由于能够使访问频率高的数据集中在特定的块中,因此,在采用重写方式的存储器管理装置1中,能够减少擦除频率高的块的数量,并能够延长非易失性半导体存储器9、10的寿命。
第5实施方式
一般地,MPU使用DRAM作为主存储器。在这种系统关闭的情况下,主存储器内的执行代码和/或数据等和/或进程的上下文被保存在二级存储装置中。因此,当再次启动系统时,必须经由I/O接口从二级存储装置中将所需的执行代码和/或数据等再次加载到存储器上。进一步地,各程序的初始化也再次进行。因此,系统的启动时间大多变长。
为了解决该问题,提出了(a)将主存储器的存储状态和/或进程的上下文退避到交换区域(与二级存储装置相同含义)中并进行关闭的方式(例如,挂起到交换(suspend to swap))和/或(b)完全不拔掉系统的电源而以从易失性存储器中不擦除数据的状态休眠的方式(例如,挂起到RAM(suspend to RAM))。
但是,在(a)的情况下,退避到交换区域中的执行代码和/或数据等的最佳化困难,启动时间与执行代码和/或数据等的大小成比例地变长。
此外,在(b)的情况下,由于在易失性存储器上存在数据,因此,必须保持通电状态。因此,存在长时间的休眠困难的问题。
在本实施方式中,对能够缩短关闭及启动所需的时间并且考虑了非易失性存储器的性质的安全性高的数据的保管是可能的存储器管理装置进行说明。
信息处理装置100的关闭时的数据的移动
第5实施方式涉及关闭信息处理装置100时的从易失性半导体存储器8向非易失性半导体存储器9、10的数据移动。
在存储器管理装置1中,混合主存储器2的存储器映射如图3所示。当信息处理装置100工作时,在易失性半导体存储器8(DRAM区域)中存在由于数据的读出、写入而缓存的数据。当关闭信息处理装置100时,例如,在易失性半导体存储器8中存在被更新的脏数据(dirty data),在非易失性半导体存储器9、10中存在未被更新的脏数据。因此,需要选择脏数据,并转移到非易失性半导体存储器9、10。
图51示出了在信息存储部17中设置的易失性半导体存储器8的脏位字段DBF的一个例子。该脏位字段DBF的各栏与根据物理地址设定的索引信息相对应,表示该数据是否是脏数据的标志数据被设定。标志数据“0”表示与该条目对应的数据被擦除或者该数据被读入易失性半导体存储器8中但未被更新(同步),标志数据“1”表示在易失性半导体存储器8中被更新而在非易失性半导体存储器9、10中未被更新(不同步)。即,与数据“1”的条目对应的数据需要在关闭时向非易失性半导体存储器9、10转移,与数据“0”的条目对应的数据不需要向非易失性半导体存储器9、10转移。
存储器管理装置1在将从非易失性半导体存储器9、10中读出的数据写入易失性半导体存储器8时或者在从易失性半导体存储器8中擦除数据时以及在将易失性半导体存储器8内的数据更新在非易失性半导体存储器9、10中反映时的任意一个中,将对应的条目的标志数据设为“0”。
此外,存储器管理装置1在易失性半导体存储器8上的数据被更新时,将对应的条目的标志数据设置为“1”。
脏位字段DBF的条目数量变成用I/O单位(缓存行大小=页面大小)除易失性半导体存储器8的大小的值。
图52示出了信息处理装置100关闭时的处理的一个例子。该处理例如在处理部15中执行。
在信息处理装置100关闭时,首先,计算在非易失性半导体存储器9、10中未更新的数据的合计大小SA(步骤IS31)。即,搜索脏位字段DBF的条目,并检测标志数据是“1”的数据。将该检测到的标志数据是“1”的数据的大小进行合计,计算未更新数据大小SA。
如上所述,脏位字段DBF的各条目对于非易失性半导体存储器的每个页面大小设定。因此,对标志数据是“1”的数量进行计数,通过在该计数值上乘以页面大小,能够求出更新数据大小SA。
接着,计算非易失性半导体存储器的空闲区域大小SB(步骤IS32)。本实施方式考虑在关闭时,当将易失性半导体存储器8的数据写入非易失性半导体存储器时,存在写入、读出的高速化以及长时间保管数据的可能性,向非易失性半导体存储器9的SLC区域写入数据。具体地,向图3所示的SLC区域的例如B区域优先写入数据。
如上所述,存储器管理装置1根据着色表14的信息,管理非易失性半导体存储器9、10的写入。但是,本实施方式所涉及的关闭处理无视该原则,例如,为了维持高速且高可靠性以存储数据,在非易失性半导体存储器9的例如B区域中优先存储数据。
因此,计算B区域的空闲区域大小。空闲区域大小的计算例如根据存储器使用信息11的内容求出。
其后,比较所计算的未更新数据大小SA和B区域的空闲区域大小SB(步骤IS33)。其结果,当所计算的未更新数据大小SA小于等于B区域的空闲区域大小SB时,易失性半导体存储器8的未更新的数据被写入非易失性半导体存储器的B区域(步骤IS34)。接着,根据写入到B区域中,更新图4所示的地址管理信息(步骤IS35)。
另一方面,在步骤IS33中,当判断为所计算的未更新数据大小SA比B区域的空闲区域大小SB大时,执行一般的写入处理。即,按照原则,参照着色表14执行数据的写入(步骤IS36)。其后,更新地址管理信息(步骤IS37)。
根据本实施方式,在信息存储部17中设置脏位字段DBF,通过标志数据管理易失性半导体存储器8的数据被更新还是未被更新,在信息处理装置100关闭时,根据脏位字段DBF的标志数据,将易失性半导体存储器8的数据转移到非易失性半导体存储器9中。因此,在关闭时,能够将未更新的数据可靠地向非易失性半导体存储器9转移。
而且,在关闭时,从易失性半导体存储器8中输出的未更新的数据被写入非易失性半导体存储器9的SLC区域中。因此,在能够高速地进行写入处理的同时,能够对于长时间的保存保持可靠性。
信息处理装置100的启动的高速化
第5实施方式的目的在于信息处理装置100的启动的高速化。
认为例如在动态图像播放器和/或浏览器工作的状态中,当关闭时,在浏览器工作的情况下、在动态图像播放器具有下一次被调度的可能性高的优先级的情况下、在信息处理装置100启动后,如果优先级高的动态图像播放器的代码被转移到易失性半导体存储器8中,则可以使其高速地工作。
因此,本实施方式以启动的高速化为目的,在着色表14中附加先读提示信息,使用该先读提示信息使信息处理装置100启动。该先读提示信息在关闭时被设定在着色表14中。即,操作系统27通过在关闭进程中将先读提示信息存储在着色表14中,能够降低启动时的存储器访问的开销,能够高速地进行启动。
图53示出了在本实施方式中适用的着色表14的一个例子。对于图8所示的着色表14,在各条目中附加了先读提示信息的字段。该先读提示信息是在静态颜色信息的字段中设置的例如标志数据。该标志数据在其是“0”时,表示在启动时不先读与该条目对应的数据,在其是“1”时,表示在启动时先读与该条目对应的数据。该标志数据并不限于二值数据,也可以设为多值数据。
作为该先读提示信息的标志数据在信息处理装置100关闭时,例如在操作系统27的关闭进程中,被设定在着色表14中。
图54示出了先读提示信息的设定处理。该处理例如在处理部15中执行。
在信息处理装置100关闭时,首先,在存储了启动所需的代码数据的地址上附加先读提示信息(步骤IS41)。即,在着色表14对应的条目中设定标志数据“1”,作为先读提示信息。
其后,在优先级最高的进程的上下文中附加先读提示信息(步骤IS42)。即,在着色表14的与优先级最高的进程的上下文对应的条目中设定标志数据“1”作为先读提示信息。作为优先级高的数据,例如有设备的初始化代码数据、关闭时优先级高的进程的上下文等。
另外,即使与优先级最高的进程相关联,也在作为静态颜色信息的例如静态读出频率(SR_color)是低的数据时,设定作为先读提示信息的标志数据“0”。例如,映射了MPEG数据的地址空间与其相当,设定成该地址空间不进行先读。
接着,判断在所设定的大小的数据中是否附加了先读提示信息(步骤IS43)。即,判断是否超过了存储有被先读的数据的易失性半导体存储器8的大小。易失性半导体存储器8的使用大小例如能够由用户设定。因此,判断是否超过所设定的大小。其结果,当在所设定的大小以内时,转移到步骤IS42,进行上述的操作。此外,判断的结果在判断为超过了所设定的大小时,结束处理。这样,在关闭时,在着色表14中设定先读提示信息。
当信息处理装置100启动时,在信息处理装置100的启动进程中存在必须执行的执行代码和/或读入数据。操作系统27能够知道在启动的初期执行的执行代码和/或数据区域。
在信息处理装置100启动时,使用在着色表14中设定的先读提示信息,与启动进程并行地,从非易失性半导体存储器向易失性半导体存储器转移数据。
图55示出了启动时的操作系统27的处理。
首先,搜索着色表14(步骤IS51),读出作为条目的先读提示信息的标志数据(步骤IS52)。接着,判断该标志数据是否是“1”(步骤IS53)。其结果,当标志数据是“1”时,从非易失性半导体存储器9、10中读出与该条目对应的数据(步骤IS54)。即,优先于其它数据,附加了先读提示信息的数据从非易失性半导体存储器9、10中转移到易失性半导体存储器8。
此外,在步骤IS53的判断中,当标志数据是“0”时,不读出与该条目对应的数据。
其后,判断在着色表14中是否有下一个条目(步骤IS55)。其结果,当有下一个条目时,控制移动到步骤IS51,重复上述操作。此外,当没有下一个条目时,结束处理。
另外,处理的结束条件并不限定于没有下一个条目的情况,也可以设定成预先设定易失性半导体存储器8的启动时的写入大小并在达到该写入大小时结束处理。这样的话,能够在易失性半导体存储器8中确保空闲容量。
根据本实施方式,在信息处理装置100关闭时,在与在启动后立即执行的可能性高的数据对应的着色表的条目中附加先读提示信息,在起动时,检索该先读提示信息,并优先将数据从非易失性半导体存储器9、10中转移到易失性半导体存储器8。因此,在读出多发生的启动时降低开销,能够高速地启动信息处理装置100。
此外,由于只将优先级高的数据转移到非易失性半导体存储器8中,因此,与在关闭时全部保存在易失性半导体存储器8中存在的数据并在启动时恢复的情况相比,能够整理易失性半导体存储器8的内容,并使启动后的执行处理高速化。
第6实施方式
在本实施方式中,对由上述第1实施方式所涉及的存储器管理装置1进行的针对着色表14的静态颜色信息的设定的具体例子进行说明。
操作系统27对于各数据设定上述图5和图8所示的着色表14的静态颜色信息。
作为针对着色表14的静态颜色信息的设定方法,例如有:[1]基于文件的扩展符或名称的设定;[2]基于目录的名称的设定;[3]基于影子文件的设定;[4]使用文件系统的扩展属性的设定;[5]基于在软件(例如应用程序)或数据(例如MPEG2等动态图像压缩数据)的文件上附加的头的设定;[6]基于虚拟地址空间的属性信息的设定;[7]基于动态链接库的使用频率的设定;[8]使用编译器的设定;[9]基于动态生成的存储器区域的设定;[10]使用简档的设定等。以下对各个设定方法进行说明。
[1]基于文件的扩展符或者名称的设定
例如,操作系统27从用户(包含程序开发者)接收使用了内核命令行的文件的扩展符与静态颜色信息的关系的设定。例如,当对于扩展符“jpeg”、“mpeg”设定静态颜色信息“1”、“2”时,操作系统27接收“coloring_ext=jpeg:1,mpeg:2”这样的命令。
由此,对于操作系统27设定文件的扩展符与静态颜色信息的关系。操作系统27根据与数据对应的文件(配置有数据的文件)的扩展符,决定该数据的静态颜色信息,并在着色表14中设定。
另外,例如,操作系统27管理将数据与文件相关联的映射数据。
例如,操作系统27也可以参照将文件的扩展符与静态颜色信息相关联的表。
此外,代替文件的扩展符与静态颜色信息的关系,也可以设定文件的名称与静态颜色信息的关系。
[2]基于目录的名称的设定
例如,操作系统27从用户接收使用了内核命令行的目录的名称与静态颜色信息的关系的设定。例如,当对于目录“/tmp”、“/var/log”指定静态颜色信息“3”、“4”时,操作系统27接收“coloring_dir=/tmp:3,/var/log:4”这样的命令。
由此,对于操作系统27设定目录的名称与静态颜色信息的关系。操作系统27根据配置有与数据对应的文件的目录的名称,决定该数据的静态颜色信息,并在着色表14中设定。
另外,例如,操作系统27也可以参照将目录的名称与静态颜色信息相关联的表。
[3]基于影子文件的设定
静态颜色信息与文件的关系或者静态颜色信息与索引的关系也可以在文件系统上由用户单独设定。
例如,用户对于某一文件生成影子文件。影子文件改变与该影子文件对应的文件的扩展符而生成。例如,对于文件“.foo.ext”,在同一目录内生成影子文件“.foo.ext.s_color”。
然后,用户将静态颜色信息与文件的关系保持在影子文件中。例如,在影子文件“.foo.ext.s_color”内,设定有文件“.foo.ext”的静态颜色信息。
操作系统27根据与数据对应的文件的影子文件,决定该数据的静态颜色信息,并在着色表14中设定。
另外,也可以对于目录生成影子文件,并在该影子文件中保持静态颜色信息与目录的关系。
[4]使用文件系统的扩展属性的设定
在文件系统上由用户设定的静态颜色信息与文件的关系、静态颜色信息与目录的关系例如使用文件系统的扩展属性设定。
所谓扩展属性是用于用户将文件系统未解释的元数据与文件或者目录连结的功能。在与文件或者目录连结的元数据内设定文件或者目录的静态颜色信息。
操作系统27根据连结到与数据对应的文件的元数据,决定该数据的静态颜色信息,并在着色表14中设定。
此外,操作系统27根据与配置有数据的目录连结的元数据,决定该数据的静态颜色信息,并在着色表14中设定。
[5]基于在软件或者数据的文件上附加的头的设定
用户改变软件文件或者数据文件的头,并在该文件的头中设定静态颜色信息。
操作系统27根据与数据对应的文件的头,决定该数据的静态颜色信息,并在着色表14中设定。
另外,也可以不改变文件的头,而使用上述的影子文件或者扩展属性设定静态颜色信息。
也可以将应用程序的文件划分成多个段,并对多个段的每一个设定静态颜色信息。
通过生成在SSD中使用的SATA供应商扩展命令,并将数据及静态颜色信息提供给SSD,对于SSD也能够实现与存储器管理装置1同样的控制。
[6]基于虚拟地址空间的属性信息的设定
图56是表示虚拟地址空间内的虚拟地址区域与属性信息的关系的一个例子的方框图。
应用程序使用虚拟地址空间J32内的虚拟地址区域J34a~J34f。
操作系统27具备虚拟存储的功能。操作系统27使用与各虚拟地址区域J34a~J34f对应的虚拟地址区域数据,管理各虚拟地址区域J34a~J34f。信息J33是与虚拟地址空间J32有关的信息,包含虚拟地址区域数据。
针对各虚拟地址区域J34a~J34f的虚拟地址区域数据具有包含起始地址、结束地址、第1属性信息、第2属性信息的数据结构。例如,虚拟地址区域数据对于1个进程可被利用1次以上。
各虚拟地址区域数据的起始地址和结束地址表示对应的虚拟地址区域的起始地址和结束地址。
各虚拟地址区域数据的第1属性信息表示对应的虚拟地址区域是可读出“r”、可写入“w”、可执行“x”、占有区域“p”或者共有区域“s”。
各虚拟地址区域数据的第2属性信息表示对应的虚拟地址区域是堆区域、堆栈区域、文件映射区域的哪一个。
在本实施方式中,虽然对在针对虚拟地址区域J34a~J34f的虚拟地址区域数据中选择针对虚拟地址区域J34c、J34d的虚拟地址区域数据J35c、J35d进行说明,但其它虚拟地址区域数据也具有同样的特征。
虚拟地址区域J34c由于是可读出、可写入、占有区域,因此,操作系统27在虚拟地址区域数据J35c的第1属性信息中存储“r”、“w”、“p”。
虚拟地址区域J34c由于是堆区域,因此,操作系统27在虚拟地址区域数据J35c的第2属性中存储表示堆区域的“1”。
虚拟地址区域J34d由于是可读出、可执行、占有区域,因此,操作系统27在虚拟地址区域数据J35d的第1属性信息中存储“r”、“x”、“p”。
虚拟地址区域J34d由于是文件映射区域,因此,操作系统27在虚拟地址区域数据J35d的第2属性信息中存储表示文件映射区域的“4”。
图57是表示由操作系统27进行的虚拟地址区域数据的第2属性信息的设定处理的一个例子的流程图。
在步骤SE1中,操作系统27取出设定对象的虚拟地址区域。
在步骤SE2中,操作系统27在第2属性信息中设定初始值“0”。
在步骤SE3中,操作系统27判断虚拟地址区域是否是堆区域。
当虚拟地址区域是堆区域时,在步骤SE4中,操作系统27在第2属性信息中设定“1”。
在步骤SE5中,操作系统27判断虚拟地址区域是否是堆栈区域。
当虚拟地址区域是堆栈区域时,在步骤SE6中,操作系统27在第2属性信息中设定“2”。
在步骤SE7中,操作系统27判断虚拟地址区域是否是文件映射区域。
当虚拟地址区域是文件映射区域时,在步骤SE8中,操作系统27在第2属性信息中设定“4”。
在步骤SE9中,操作系统27判断对于其它虚拟地址区域是否进行第2属性的设定。
当对于其它虚拟地址区域设定第2属性时,处理转移到步骤SE1。
当对于其它虚拟地址区域不设定第2属性时,处理结束。
图58是表示基于虚拟地址区域数据J35a的静态颜色信息的设定的一个例子的图。
在该图58中,表示了根据由操作系统27管理的虚拟地址区域数据J35c,在虚拟地址区域J34c中配置的数据的静态颜色信息被设定在着色表14中的情形。
操作系统27根据虚拟地址区域数据J35c的第1属性及第2属性,生成针对虚拟地址区域J34c的数据的静态写入频率SW_color、静态读出频率SR_color、数据寿命SL_color,并在着色表14中设定。
当虚拟地址区域J34c的数据被页面错误分配给作为实际存储器的逻辑地址空间时,操作系统27生成针对虚拟地址区域J34c的数据的数据生成时刻ST_color,并在着色表4中设定。
另外,通过存储器管理装置1更新针对虚拟地址区域J34c的数据的写入次数、读出次数。
[7]基于动态链接库的使用频率的设定
命令和库具有依赖关系。例如,当执行某一命令时,使用依赖于该命令的库。
因此,在该“7”的方法中,预先决定命令的得分,并根据该命令的得分,决定在命令中使用的(被动态连接的)库的得分(score)。在此,假设得分是基于使用频率而决定的值。例如,在以后说明的图59和图60的例子中,使用频率越高,得分的值越大。
在库中包含的针对数据的静态写入频率SW_color、静态读出频率SR_color根据库的得分设定。另外,也可以使用动态链接库的动态连接器求出得分。在这种情况下,例如,各库的得分在由动态链接器每次链接库时增加1。具体地,当使用动态链接器时,在最初的阶段,库的得分被初始化为0,其后在每次链接时,该被链接的库的得分就增加1。其结果,被链接的次数越多的库,得分越大。
图59是表示命令与库之间的依赖关系的一个例子的图。
在该图59中,命令使用至少一个库。命令的得分被预先设定。
库的得分设为使用该库的命令或者使用该库的库的得分的总和。
例如,命令“cp”的得分被设定为“5”。命令“cp”使用库“libacl.so.1”、“libselenux.so.1”。
库“libacl.so.1”、“libselenux.so.1”的得分被设定为使用该库“libacl.so.1”、“libselenux.so.1”的命令“cp”的得分“5”。
命令“bash”的得分被设定为“10”。命令“bash”使用库“libncurses.so.5”。
库“libncurses.so.5”的得分被设定为使用该库“libncurses.so.5”的命令“bash”的得分“10”。
库“libdl.so.2”在库“libselenux.so.1”、“libncurses.so.5”中被使用。
库“libdl.so.2”被设定为使用该库“libdl.so.2”的库“libselenux.so.1”、“libncurses.so.5”的得分的总和“15”。
对于其它命令及库也按照同样的规则设定得分。
另外,各命令的得分的设定能够改变。得分的继承方法也能够进行各种改变。例如,当具有父亲库向多个子库分支的依赖关系时(父亲库选择多个子库中的任意一个使用时等),子库的得分也可以设为用子库的数量除父亲库的得分后的值。此外,例如,当父亲库同时需要多个子库时,也可以在子库中设定与父亲库同样的得分。
图60是表示命令的得分和库的得分的一个例子的图。在该图60中示出了按照上述图59的依赖关系计算的库的得分。
图61是表示基于命令的得分的库的得分的另一个计算例子的图。在该图61中,不使用库之间的依赖关系,各库的得分根据使用该库的命令的得分的总和计算。
图62是表示使用了库的得分的静态颜色信息的设定的一个例子的图。
在该图62中,表示了根据由操作系统27管理的虚拟地址区域数据J35d而将在虚拟地址区域J34d中配置的数据的静态颜色信息设定在着色表14中的情况。
操作系统27根据虚拟地址区域数据J35d的第1属性和第2属性以及库的得分,生成对虚拟地址区域J34d的数据的静态写入频率SW_color、静态读出频率SR_color、数据寿命SL_color,并在着色表14中设定。
当虚拟地址区域J34d的数据通过页面错误被分配给逻辑地址空间时,操作系统27生成对虚拟地址区域J34d的数据的数据生成时刻ST_color,并在着色表14中设定。
另外,由存储器管理装置1更新对虚拟地址区域J34d的数据的写入次数、读出次数。
[8]使用编译器的设定
编译器具有能够预测变量的频率(使用频率)或函数的频率的功能。
用户基于由该编译器的功能预测的变量的频率或函数的频率,对包含变量或函数的数据设定静态颜色信息。由此,能够进行比文件单位更小的静态颜色信息的设定。
编译器如图63所示,在编译时,能够将用户所指定的变量或者函数汇集在特定的段中。
用户对于包含由该编译器的功能汇集的变量及函数的数据,设定静态颜色信息。这样,在相同的写入单位内,能够汇集具有相同程度的频率的变量和函数。
图64是表示使用了编译器的静态颜色信息的设定的一个例子的图。
用户使用编译器预测变量的频率和函数的频率,此外,将被编译的软件划分成段,并对段设定静态颜色信息。
例如,操作系统27对于包含“异常处理(exception handler)”的段,对静态写入频率SW_color设定“低”,对静态读出频率SR_color设定“高”。
例如,操作系统27对于包含“异常处理(exception handler)”的段,对静态写入频率SW_color设定“低”,对静态读出频率SR_color设定“低”。
[9]基于动态生成的存储器区域的设定
用户对动态生成(确保、放开)的存储器区域,根据从以后说明的简档中得到的使用频率或者所预想的使用频率,设定静态颜色信息。
由此,对于在动态生成的存储器区域中配置的数据,能够设定静态颜色信息。
图65是表示基于动态生成的存储器区域的使用频率的静态颜色信息的设定的一个例子的图。
例如,操作系统27对在存储器区域“内核页表”中配置的数据,对静态写入频率SW_color设定“低”,对静态读出频率SR_color设定“高”。
例如,操作系统27对在存储器区域“内核堆栈”中配置的数据,对静态写入频率SW_color设定“高”,对静态读出频率SR_color设定“高”。
例如,操作系统对在动态图像播放器的缓冲区域中配置的数据,对静态写入频率SW_color设定“高”,对静态读出频率SR_color设定“高”。
操作系统27在取得及放开存储器区域时,直接更新着色表14。
关于对在应用程序的堆区域、堆栈区域中配置的数据的静态颜色信息的设定,由于在上述第1实施方式中已说明,因此,在此省略说明。
madvise()系统调用通知内核如何使用从地址addr开始的长度(length)字节的存储器块的分页输入输出是好的。如果使用该系统调用,则能够从应用程序向内核传送想要如何使用被映射的存储器和/或共用存储器,并且内核能够据此选择先读或缓存等适宜的方法。在该系统调用中,也可以添加设定所指定的存储器区域的静态颜色信息的功能。或者,也可以追加设定所指定的存储器区域的静态颜色信息的新的系统调用。
[10]使用简档的设定
简档具有取得应用程序的例如性能信息的功能。在该性能信息中包含使用频率等统计信息。
用户根据由简档生成的性能信息,对应用程序设定静态颜色信息。
由此,并不是根据事前所预测的使用频率设定静态颜色信息,而是根据实际的使用状态来设定静态颜色信息。
在以上说明的本实施方式中,说明了静态颜色信息的设定方法。由此,在存储器管理装置1中使用的静态颜色信息被设定在着色表14中,并根据该静态颜色信息,能够使非易失性半导体存储器9、10的寿命长期化。
第7实施方式
参照图66说明本实施方式所涉及的存储器管理装置1、信息处理器100、存储器装置H32a、H32b、H32c。图66是表示本实施方式所涉及的存储器管理装置1、信息处理装置100及存储器装置H32a、H32b、H32c的构成的一个例子的方框图。对于与第1实施方式一样或相同的构成,付与相同的符号并省略说明。另外,在图66的说明中,虽然以图1的处理器3a、3b、3c中处理器3b为代表进行说明,但其它处理器3a、3c也是一样的。
在存储器管理装置1中具备的处理部15具备存储器使用信息管理部22、连接检测部H33、判断部H34、通知部H35、更换控制部H36。在存储器管理装置中具备的信息存储部17中存储有上述的存储器使用信息11、存储器固有信息12、地址变换信息13、着色表14。进一步地,存储器管理装置1的处理部15与多个连接器部H44a、H44b、H44c连接。
存储器装置H32a、H32b、H32c各自具备存储器单元H37a、H37b、H37c、正常通知部H38a、H38b、H38c、告警通知部H39a、H39b、H39c、使用停止通知部H40a、H40b、H40c、连接操作部H41a、H41b、H41c。进一步地,存储器装置H32a、H32b、H32c各自具备连接器部H42a、H42b、H42c。在存储器单元H37a、H37b、H37c中存储管理信息H43a、H43b、H43c。管理信息H43a、H43b、H43c的详细情形以后说明。
在存储器装置H32a、H32b、H32c中具备的连接器部H42a、H42b、H42c分别与连接器部H44a、H44b、H44c连接。
以下,进一步详细说明存储器管理装置1的构成。在以下的说明中,虽然以存储器装置H32a、H32b、H32c中存储器装置H32a为代表进行说明,但其它存储器装置H32b、H32c也是一样的。
连接检测部H33检测存储器管理装置1和存储器装置32a的连接。连接检测部H33在从存储器装置H32a的连接操作部H41a接收以后说明的“安装通知”时,检测存储器装置H32a与存储器管理装置1电气连接(检测“连接状态”)。此外,连接检测部H33在从存储器装置H32a的连接操作部H41a接收以后说明的“拆卸通知”时,检测存储器装置H32a与存储器管理装置1电气未连接(检测“拆卸准备状态”)。
判断部H34根据存储器使用信息11判断存储器装置H32a的使用状态。使用状态例如包含“正常状态”、“告警状态”、“使用停止状态”。判断部H34例如定期地判断存储器装置H32a的使用状态。此外,判断部H34例如在每次发生对存储器装置H32a的访问时,判断存储器装置H32a的使用状态。关于使用状态的判断方法以后说明。
通知部H35根据由判断部H34判断的使用状态,对存储器装置H32a通知使用状态。
更换控制部H36在连接检测部H33基于来自存储器装置H32a的连接操作部H41a的“安装通知”而检测“连接状态”时,读出在存储在存储器单元H37a中的管理信息H43a中包含的存储器单元37a的每个预定区域的擦除次数、写入发生次数、读出发生次数,并存储在存储器使用信息11中。此外,更换控制部H36在连接检测部H33基于来自存储器装置H32a的连接操作部H41a的“拆卸通知”而检测“拆卸准备状态”时,读出在存储在信息存储部17中的存储器使用信息11中包含的存储器装置H32a的每个预定区域的擦除次数、写入发生次数、读出发生次数,并存储在存储器单元H37a的管理信息H43a中。关于管理信息H43a的详细情形以后说明。
例如,在存储器装置H32a是NAND型闪速存储器的情况下,例如,擦除次数、块区域单位、写入发生次数、读出发生次数以页面区域单位管理。
以下说明存储器装置H32a、H32b、H32c的构成。
存储器单元H37a是SLC型的NAND型闪速存储器或者MLC型的NAND型闪速存储器,相当于第1实施方式的非易失性半导体存储器9、10。此外,存储器单元H37a的一部分区域是SLC型的NAND型闪速存储器(SLC区域),除去SLC区域的部分可以是MLC型的NAND型闪速存储器(MLC区域)。在这种情况下,SLC区域相当于非易失性半导体存储器9,MLC区域相当于非易失性半导体存储器10。
正常通知部H38a在从存储器管理装置1的通知部H35接收了“正常状态”的通知时,显示正常状态。例如,正常通知部H38a是第1颜色(蓝色)的发光体,通过点亮来显示正常状态。
告警通知部H39a在从存储器管理装置1的通知部H35接收了“告警状态”的通知时,显示告警状态。例如,告警通知部H39a是第2颜色(黄色)的发光体,通过点亮来显示告警状态。
使用停止通知部H40a在从存储器管理装置1的通知部H35接收了“使用停止状态”的通知时,显示停止状态。例如,使用停止通知部H40a是第3颜色(红色)的发光体,通过点亮来显示使用停止状态。
连接操作部H41a在存储器装置H32a与存储器管理装置1电气未连接时(被拆卸时),向存储器管理装置1通知被拆卸的信息(拆卸通知)。连接操作部H41a例如具备电子或机械的按钮,在拆卸存储器装置H32a时,通过用户按下对应按钮,向存储器管理装置1通知拆卸通知。
此外,连接操作部H41a在存储器装置H32a与存储器管理装置1电气连接时,向存储器管理装置1通知被连接的信息(安装通知)。例如,在将存储器装置H32a与存储器管理装置1电气连接时,通过用户按下对应按钮,向存储器管理装置1通知安装通知。
通过连接器部H42a与连接器部H44a连接,存储器装置H32a与存储器管理装置1电气连接。
接着,参照图67说明在存储器装置H32a中具备的存储器单元H37a的擦除次数的变化。图67是表示存储器单元H37a的擦除次数的变化的一个例子的曲线图。横轴表示时间,纵轴表示擦除次数。
本实施方式的存储器装置H32a的存储器单元H37a从处理器3b接收访问(读出、写入、擦除)。因此,存储器单元H37a的擦除次数、读出发生次数、写入发生次数与使用时间同时增加,在某一时刻,擦除次数达到存储器单元H37a的可擦除次数上限。当存储器单元H37a的擦除次数达到可擦除上限次数时,对存储器单元H37a的数据写入、读出、擦除从可靠性的观点来看是不希望的。
如上所述,存储器管理装置1通过存储器使用信息11管理非易失性半导体存储器9、10(存储器装置H32a)的擦除次数、读出发生次数、写入发生次数等。在本实施方式中,如下所示,存储器管理装置1根据存储器使用信息11监控存储器装置H32a的使用状态,在存储器管理装置H32a的擦除次数达到擦除发生上限次数之前,对存储器装置H32a告警。
参照图68说明基于存储器装置H32a的擦除次数判断存储器装置H32a的使用状态。图68是表示基于存储器装置H32a的擦除次数的存储器装置H32a的使用状态的一个例子的曲线图。横轴是时间,纵轴是擦除次数。另外,对于写入也与擦除一样,可以在存储器装置H32a的使用状态的判断中使用。
在图68中用虚线表示存储器单元H37a的擦除次数的变化的例子。用实线表示对存储器单元H37a的擦除次数的回归曲线ΔtERASE(例如,一次回归线)。根据该一次回归线,预测从当前时刻开始预定时间(告警期间)tERASEbefore后的擦除次数ERASEalert。当ERASEalert超过可擦除上限次数ERASEmax时,判断为存储器单元H37a的使用状态是“告警状态”。当ERASEalert未超过可擦除上限次数ERASEmax时,判断为存储器单元H37a的使用状态是“正常状态”。此外,在当前时刻的擦除次数超过可擦除上限次数ERASEmax时,存储器单元H37a的使用状态被判断为“使用停止状态”。
另外,如上所述,当存储器单元H37a是NAND型闪速存储器时,存储器单元H37a的擦除次数以块区域单位管理。存储器单元H37a包含多个块区域。在包含在存储器单元H37a中的多个块区域之间,通过损耗均衡,擦除次数的偏差变小。因此,例如,将在存储器单元H37a中包含的多个块区域的各个的擦除次数的平均值设为存储器单元H37a的擦除次数。此外,例如,也可以将在存储器单元H37a中包含的多个块区域的最大擦除次数设为存储器单元H37a的擦除次数。对于读出发生次数、写入发生次数也是一样的。
以下参照图69说明基于存储器装置H32a的读出发生次数判断存储器装置H32a的使用状态。图69是表示基于存储器装置H32a的读出发生次数的存储器装置H32a的使用状态的一个例子的曲线图。横轴是时间,纵轴是读出发生次数。
在图69中用虚线表示存储器单元H37a的读出发生次数的变化的例子。用实线表示针对存储器单元H37a的读出发生次数的回归曲线ΔtREAD(例如,一次回归线)。根据该一次回归线,预测从当前时刻开始预定时间(告警期间)tREADbefore后的读出发生次数READalert。当READalert超过可读出上限次数READmax时,判断为存储器单元H37a的使用状态是“告警状态”。当READalert未超过可读出上限次数READmax时,判断为存储器单元H37a的使用状态是“正常状态”。此外,在当前时刻的读出发生次数超过可读出上限次数READmax时,存储器单元H37a的使用状态被判断为“使用停止状态”。
以下,参照图70说明基于存储器装置H32a的擦除次数而向存储器装置H32a通知使用状态的处理的一个例子。图70是表示基于存储器装置H32a的擦除次数而向存储器装置H32a通知使用状态的处理的一个例子的流程图。
在步骤HA1中,存储器使用信息管理部22读出存储器使用信息11。
在步骤HA2中,存储器使用信息管理部22从存储器使用信息11中读出存储器装置H32a的当前时刻的擦除次数。
在步骤HA3中,判断部H34根据当前的时刻、当前之前的时刻、当前时刻的擦除次数、当前之前的时刻的擦除次数、在存储器使用信息11中存储的过去的ΔtERASE等,计算新的ΔtERASE。例如,判断部H34根据擦除开始时刻、当前时刻、当前时刻的擦除次数,计算单位时间的擦除次数ΔtERASE。
在步骤HA4中,判断部H34判断当前时刻的擦除次数是否小于等于可擦除上限次数ERASEmax
在当前时刻的擦除次数超过可擦除次数上限次数ERASEmax时,在步骤HA5中,判断部H34判断为存储器装置H32a处于使用停止状态,处理移动到步骤HA9。
在当前时刻的擦除次数小于等于可擦除上限次数ERASEmax时,在步骤HA6中,判断部H34计算ΔtERASE×tERASEbefore+当前时刻的擦除次数,并求出从当前时刻开始tERASEbefore经过后的擦除次数的预测值ERASEalert
在步骤HA7中,判断部H34判断预测值ERASEalert是否小于等于可擦除上限次数ERASEmax
当预测值ERASEalert超过可擦除上限次数ERASEmax时,在步骤HA8中,判断部H34对存储器装置H32a判断为告警状态,处理移动到步骤HA9。
当预测值ERASEalert小于等于可擦除上限次数ERASEmax时,处理移动到步骤HA9。
在步骤HA9中,判断部H34在存储器使用信息11中进行当前时刻的擦除次数、ΔtERASE的存储、更新。
如上所述,通过基于存储器装置H32a的擦除次数而向存储器装置H32a通知使用状态,能够在存储器装置H32a的使用状态变成“使用停止状态”之前通知告警。
以下,参照图71说明基于存储器装置H32a的读出发生次数而向存储器装置H32a通知使用状态的处理的一个例子。图71是表示基于存储器装置H32a的读出发生次数而向存储器装置H32a通知使用状态的处理的一个例子的流程图。
图71的步骤HB1~HB9除了判断对象是读出发生次数这一点外,由于与判断对象是擦除次数的上述图70的步骤HA1~HA9一样,因此,省略说明。
如上所述,通过基于存储器装置H32a的读出发生次数而向存储器装置H32a通知使用状态,能够在存储器装置H32a的使用状态变成“使用停止状态”之前通知告警。
在上述的本实施方式中,在从当前时刻开始预定时间tERASEbefore、tREADbefore之后预测的擦除次数ERASEalert、READalerd超过可擦除上限次数ERASEmax、可读出上限次数READmax时,设为告警状态。但是,上述的判断处理能够进行各种改变。以下对本实施方式中的判断处理的变形例进行说明。
例如,判断部H34计算ΔtERASE。
判断部H34根据当前时刻的擦除次数、ΔtERASE和ERASEmax,求出预测为擦除次数达到ERASEmax的时间tERASEmax
判断部H34通过从tERASEmax中减去tERASEbefore,求出应当变成告警状态的时间tERASEalert
然后,判断部H34在当前时刻变成或者超过应当成为告警状态的时间tERASEalert时,判断为告警状态。或者,判断部H34根据擦除开始时刻、ΔtERASE和应当发出警告的时间tERASEalert,求出应当成为告警状态的擦除次数ERASEalert,当擦除次数变成大于等于应当成为告警状态的擦除次数ERASEalert时,判断为告警状态。
另外,代替擦除次数而将读出发生次数作为判断对象的情况也是一样的。
以下,参照图72说明在存储器装置H32a中存储的管理信息H43a。图72是表示在管理信息H43a中包含的数据的一个例子的图。
管理信息H43a包含存储器装置H32a的存储器单元H37a的每个预定区域的擦除次数、关于擦除次数的回归曲线ΔtERASE、可擦除上限次数ERASEmax、告警期间tERASEbefore、擦除开始时刻。进一步地,管理信息H43a包含存储器装置H32a的存储器单元H37a的每个预定区域的读出发生次数、关于读出发生次数的回归曲线ΔtREAD、可擦除上限次数READmax、告警期间tERASEbefore、读出开始时刻。
擦除次数、读出发生次数、回归曲线ΔtERASE、ΔtREAD是在存储器管理装置1的存储器使用信息11中管理的信息,如以后说明的那样,在存储器装置H32a从存储器管理装置1上拆卸时,存储在管理信息H43a中。
以下,参照图73对从存储器装置H32a电气连接到存储器管理装置1开始直到开始对存储器装置H32a访问为止的处理进行说明。图73是表示从存储器装置H32a电气连接到存储器管理装置1开始直到开始对存储器装置H32a访问为止的处理的一个例子的流程图。
首先,在步骤HC1中,存储器管理装置1的连接检测部H33通过从存储器装置H32a接收“安装通知”,检测存储器装置H32a与存储器管理装置1电气连接(连接状态)。
以下,在步骤HC1中,判断在存储器装置H32a中是否存储管理信息H43a。当存储有管理信息H43a时,移动到步骤HC3。当未存储有管理信息H43a时,移动到步骤HC4。
在步骤HC3中,读出在管理信息H43a中包含的存储器单元H37a的每个预定区域的擦除次数、写入发生次数、读出发生次数,并在存储器使用信息11中存储。此外,读出在管理信息H43a中包含的存储器单元H37a的可擦除上限次数ERASEmax、可读出上限次数READmax、告警期间tERAESEbefore、tREADbefore,并在存储器固有信息12中存储。
在步骤HC4中,新生成管理信息H43a,并写入存储器单元H37a中,在存储器使用信息11中存储“0”作为每个预定区域的擦除次数、写入发生次数、读出发生次数的值。
在步骤HC3或步骤HC4的处理之后,开始对存储器装置H32a的访问。当发生对存储器装置H32a的访问时,如上所述,更新与存储器装置H32a对应的存储器使用信息11的每个预定区域的擦除次数、写入发生次数、读出发生次数。
以下,参照图74说明从存储器管理装置1从存储器装置H32a接收“拆卸通知”开始直到存储器装置H32a成为能够拆卸为止的处理。图74表示从存储器管理装置1从存储器装置H32a接收“拆卸通知”开始直到存储器装置H32a成为能够拆卸为止的处理的一个例子的流程图。
首先,在步骤HD1中,存储器管理装置1的连接检测部H33从存储器装置H32a接收“拆卸通知”。
接着,在步骤HD2中,存储器管理装置1的更换控制部H36从存储器装置H32a中读出在存储器装置H32a中存储的数据,并写入另一个存储器装置(例如,存储器装置H32b)中。
接着,在步骤HD3中,更换控制部H36将在存储器使用信息11中管理的存储器装置H32a的每个预定区域的写入次数、读出次数、擦除次数作为管理信息H43a,存储在存储器装置H32a的存储器单元H37a中。
接着,在步骤HD4中,存储器管理装置1的通知部H35向存储器装置H32a通知能够拆卸。
如上所述,当存储器装置H32a拆卸时,将存储器装置32a的每个预定区域的写入次数、读出次数、擦除次数作为管理信息H43a,存储在存储器装置H32a的存储器单元H37a中,然后,在存储器装置H32a安装时,通过读出管理信息H43a,能够取得存储器装置H32a的使用信息。
以下,参照图75说明存储器装置的更换状态。图75是表示存储器装置的更换状态的一个例子的图。
该图75的信息处理装置100具备处理器3b、存储器管理装置1、存储器装置H32a~H32l。信息处理装置100将RAID技术适用于存储器装置H32a~H32l。进一步地,在本实施方式中,控制对存储器装置H32a~H32l的访问的存储器管理装置1作为硬件与热插拔相对应。信息处理装置100成为服务器装置等需要连续运行的装置。
存储器装置H32a~H32m在存储器读出次数和存储器擦除次数上有上限,如果寿命到了则更换。各存储器装置H32a~H32m具备显示部H45a~H45m。在该图75中,显示部H45a~H45m在存储器装置H32a~H32m处于正常状态的情况下,例如以绿色发光,在处于告警状态或使用停止状态的情况下,例如以红色发光。
向安装着的存储器装置H32a~H32l分别分配按钮H46a~H46l。
通过在存储器管理装置1中适用RAID技术,即使存储器装置H32a~H32l中的一部分(在图75中是存储器装置H32k)变成告警状态或者使用停止状态,信息处理装置100也能够通过剩余的存储器装置H32a~H32j、H32l正常运行。然后,用户能够将处于告警状态或者使用停止状态的存储器装置H32k在信息处理装置100运行的状态下拆卸,安装代替的存储器装置H32m。
例如,在使用存储器装置H32k并且存储器装置32k的读出发生次数或者擦除次数增加,接近可读出上限次数或者可擦除上限次数时,存储器装置H32k的显示部H45k发红光。当更换安装着的存储器装置H32k时,由用户按下对应的按钮H46k。当按下按钮H46k时,向存储器管理装置1发送拆卸通知。存储器管理装置1在接收到拆卸通知时,执行存储器装置H32k的数据的退避、存储器装置H32k的电源关闭等处理。
另外,当在拆卸对象的存储器装置H32k中只存储了重要度比特定阈值低的数据时,也可以不使存储器装置H32k的数据退避而立即进行更换。
用户在存储器装置H32k成为能够拆卸状态时,拆卸存储器装置H32k,并安装新的存储器装置H32m。
例如,即使使用存储器装置H32k作为服务器装置、个人计算机、游戏机等信息处理装置100的主存储装置并且存储器装置H32k变成告警状态,该存储器装置H32k也例如能够作为CD-R的替代品那样的媒体、数码照相机的照片记录媒体再利用。
在本实施方式中,为了在其它信息处理装置中能够使用半旧的存储器装置H32k,该存储器装置H32k的管理信息被存储在该存储器装置H32k中,进一步地,在存储器装置H32k中具备显示部H45k。
在显示部H45a~H45m中也可以使用电子墨水用显示部。例如,存储器管理装置1的判断部H34根据存储器使用信息11及存储器固有信息12,求出与各存储器装置H32a~H32l对应的访问状态(例如,“擦除次数/可擦除上限次数”、“读出发生次数/可读出上限次数”等)。存储器管理装置1的通知部H35根据对各存储器装置H32a~H32l的访问状态,控制电子墨水用显示部H45a~H45l的显示。例如,显示部H45a~H45l用棒状图表示访问状态。
电子墨水用显示部H45a~H45l的显示内容即使在存储器装置H32a~H32l从存储器管理装置1上拆卸的情况下也维持。因此,用户在拆卸了存储器装置H32a~H32l后,将该电子墨水用显示部H45a~H45l的显示内容作为参考,能够在其它信息处理装置上安装存储器装置H32a~H32l,进行再利用。
以下,参照图76说明存储器装置H32a的再利用。图76是表示存储器装置H32a的再利用的一个例子的方框图。
例如,假设信息处理装置100是如服务器装置、个人计算机等那样对数据的存储和访问要求高可靠性的装置。
例如,信息处理装置100A假设是如数码照相机、打印机、便携电话等那样对数据的存储和访问要求比信息处理装置100低的可靠性的装置。
在信息处理装置100中,由于希望正常工作,因此,在比发出告警的时刻早的时间点更换存储器装置H32a。
与此相对,在信息处理装置100A中,即使在发出了告警后,也能够在发生使用停止通知之前使用存储器装置H32a。
用户当在信息处理装置100中对存储器装置H32a通知了告警时,能够从信息处理装置100上拆卸该存储器装置H32a,并将存储器装置H32a安装在信息处理装置100A中使用。这样,存储器装置H32a能够被有效地再利用。
以下,参照图77对基于着色信息从存储器装置H32a、H32b、H32c中选择写入目的地以致存储器装置H32a、H32b、H32c的告警时期不集中在短时期内的方法进行说明。
如图77所示,写入管理部20根据着色信息进行控制,以致将静态颜色信息高的数据或者动态颜色信息高的数据写入存储器装置H32a、H32b、H32c中特定的存储器装置H32a中。由此,对存储器装置H32a的访问次数(擦除次数、读出发生次数、写入发生次数)与其它存储器装置H32b、H32c相比,增加得快。
由此,特定的存储器装置H32a提前变成告警状态,能够抑制告警时期集中在短时期内,并能够防止短时期更换多数存储器装置这样的作业负担的增加。
在上述的本实施方式中,能够简单地将访问次数有上限的存储器装置H32a~H32l安装在存储器管理装置1上,进而能够简单地拆卸。
因此,能够容易地进行在信息处理装置100中使用的存储器装置H32a~H32l的状态监视及维护。
在本实施方式中,能够一边使信息处理装置100连续运行,一边进行存储器装置H32a~H32l的更换。
进一步地,在本实施方式中,对于存储器管理装置1能够再利用能够安装拆卸的存储器装置H32a~H32l。
在本实施方式中,能够实现组合了存储器装置H32a~H32l的高可靠性、高速、大容量的存储装置,能够容易地更换存储器装置H32a~H32l,并且能够提高信息处理装置100的运转率。
第8实施方式
本实施方式是上述第1实施方式的变形例。本实施方式所涉及的存储器管理装置能够动态地将非易失性半导体存储器9、10中的SLC区域切换成MLC区域,进一步地,能够动态地将MLC区域切换成SLC区域。
在本实施方式中,所谓SLC区域是指在非易失性半导体存储器9、10中用作SLC型的NAND型闪速存储器的存储器区域。此外,所谓MLC区域是指在非易失性半导体存储器9、10中用作MLC型的NAND型闪速存储器的存储器区域。
非易失性半导体存储器9、10可以是非易失性半导体存储器9、10的全部存储器区域是SLC区域或者MLC区域,也可以是非易失性半导体存储器9、10的一部分存储器区域是SLC区域,不是SLC区域的存储器区域是MLC区域。
非易失性半导体存储器9、10的存储器区域是SLC区域还是MLC区域的信息(以下称为“SLC/MLC区域信息”)例如在存储器固有信息12中管理。例如,存储器固有信息12在非易失性半导体存储器9、10中保持用物理地址指定的存储器区域是SLC区域还是MLC区域的信息。另外,针对各存储器区域的SLC/MLC区域信息在存储器固有信息12中管理,但也可以在存储器使用信息11中管理。
图78是表示本实施方式所涉及的存储器管理装置的构成的一个例子的图。
存储器管理装置D32具备处理部D33、工作存储器16、信息存储部17。
处理部D33具备消耗率计算部D34、切换判断部D35、切换控制部D36。进一步地,处理部D33与上述的第1实施方式的处理部15一样,具备地址管理部18、读出管理部19、写入管理部20、着色信息管理部21、存储器使用信息管理部22、再配置部23,但这些在图78中省略。
本实施方式的存储器管理装置D32根据非易失性半导体存储器9、10的SLC区域的消耗率的信息,能够将对应SLC区域切换成MLC区域。进一步地,存储器管理装置D32根据非易失性半导体存储器9、10的MLC区域的消耗率信息,能够将对应MLC区域切换成SLC区域。在此,所谓消耗率是写入次数相对存储器区域的可写入上限次数的比例。
此外,存储器管理装置D32也同样能够根据擦除次数相对可擦除上限次数的比例即擦除消耗率、读出次数相对可读出上限次数的比例即读出消耗率,进行SLC区域和MLC区域的动态切换。进一步地,存储器管理装置D32也可以根据写入消耗率、擦除消耗率、读出消耗率中的至少两个,进行SLC和MLC的动态切换。
消耗率计算部D34参照存储器使用信息11和存储器固有信息12,根据存储器区域的写入次数和可写入上限次数,计算对应存储器区域的写入消耗率。同样,消耗率计算部D34也可以参照存储器使用信息11和存储器固有信息12,计算读出消耗率、擦除消耗率。写入消耗率、读出消耗率例如以页面区域单位或者块区域单位计算。擦除消耗率例如以块区域单位计算。
例如,当SLC区域、MLC区域是比块区域大的存储器区域时,对在SLC区域、MLC区域中包含的多个块区域的每一个计算写入消耗率。在包含在SLC区域、MLC区域中的多个块区域之间,通过损耗均衡,写入消耗率的偏差变小。因此,例如,将在SLC区域、MLC区域中包含的多个块区域的写入消耗率的平均值设为对应SLC区域、MLC区域的写入消耗率。此外,例如,也可以将在SLC区域、MLC区域中包含的多个块区域的写入消耗率中最大的写入消耗率设为对应SLC区域、MLC区域的写入消耗率。对于读出消耗率、擦除消耗率也是一样的。
切换判断部D35判断SLC区域的写入消耗率是否超过在对应SLC区域中设定的写入消耗率的阈值(以下称为“SLC阈值”)。此外,切换判断部D35判断MLC区域的写入消耗率是否超过在对应MLC区域中设定的写入消耗率的阈值(以下称为“MLC阈值”)。各存储器区域的SCL阈值、MLC阈值的信息在存储器固有信息11中管理。
切换控制部D36在SLC区域的写入消耗率超过SLC阈值时,进行将该SLC区域切换成MLC区域的控制。此外,切换控制部D36在MLC区域的写入消耗率超过MLC阈值时,进行将该MLC区域切换成SLC区域的控制。进一步地,切换控制部D36根据SLC区域、MLC区域的切换,更新在存储器固有信息11中管理的“SLC/MLC区域信息”。
此外,切换控制部D36在发生了从SLC区域向MLC区域的切换时,进行将任意一个MLC区域切换成SLC区域的控制。此外,切换控制部D36在发生了从MLC区域向SLC区域的切换时,进行将任意一个MLC区域切换成SLC区域的控制。由此,以在由切换控制部D36进行的存储器区域的切换前后SLC区域和MLC区域的比例的变化变小的方式进行控制。另外,SLC区域和MLC区域的切换通过切换控制部D36对非易失性半导体存储器9、10特定切换对象存储器区域并输出命令来进行。
进一步地,切换控制部D36当在切换对象的存储器区域中存储有数据时,进行数据的移动,并根据该数据的移动,更新地址变更信息13。
此外,根据由切换控制部D36进行的SLC区域、MLC区域的切换,存储器使用信息管理部22更新所切换的存储器区域的存储器使用信息11(写入次数、擦除次数、读出次数等)。
图79是表示本实施方式所涉及的非易失性半导体存储器的动态切换的第1个例子的示意图。图79所示的非易失性半导体存储器291~294与非易失性半导体存储器9、10相对应,用作信息处理装置100的主存储器。
在图79所示的例子中,非易失性半导体存储器291~293的全部存储器区域作为SLC区域使用(非易失性半导体存储器291~293是SLC型的NSND型闪速存储器)。此外,非易失性半导体存储器294的全部存储器区域作为MLC区域使用(非易失性半导体存储器294是MLC型的NAND型闪速存储器)。非易失性半导体存储器291~294例如是存储卡。
如在第1实施方式中说明的,对于SLC型的非易失性半导体存储器291~293,写入访问频率高的数据。因此,SLC型的非易失性半导体存储器291~293的写入消耗率变高。另一方面,对于MLC型的非易失性半导体存储器294,写入访问频率低的数据。因此,MLC型的非易失性半导体存储器294的写入消耗率变低。
在切换判断部D35判断为非易失性半导体存储器291的写入消耗率超过了非易失性半导体存储器291的SLC阈值时,切换控制部D36将非易失性半导体存储器291从SLC型切换成MLC型。进一步地,切换控制部D36将写入消耗率低的非易失性半导体存储器294从MLC型切换成SLC型。这样,写入消耗率高的非易失性半导体存储器291变成作为MLC型使用,写入访问频率低的数据。另一方面,写入消耗率低的非易失性半导体存储器294变成作为SLC型使用,写入访问频率高的数据。对于MLC型的非易失性半导体存储器291,也可以通过增加强有力的ECC(纠错码),延长MLC型的非易失性半导体存储器291的寿命(作为主存储器的可以使用期限)。一般地,当使用强有力的ECC时,来自非易失性半导体存储器的数据的读出速度下降,但在本实施方式中,由于即使来自MLC型的非易失性半导体存储器的读出速度低也可以,因此,可以使用强有力的ECC。
进一步地,在非易失性半导体存储器291~294的写入消耗率变高,作为主存储器使用困难的情况下,也可以从信息处理装置100上拆卸该非易失性半导体存储器291~294,在CD-R用途等写入频率低的应用中使用。
图80是表示本实施方式所涉及的非易失性半导体存储器的动态切换的第2个例子的示意图。图80所示的非易失性半导体存储器295与非易失性半导体存储器9、10对应,作为信息处理装置100的主存储器使用。
在图80所示的例子中,非易失性半导体存储器295包含作为SLC区域使用的存储器区域和作为MLC区域使用的存储器区域。
在图80所示的例子中也如在图79所示的例子中说明的,根据消耗率信息将SLC区域切换成MLC区域。由此,得到与图79所示的例子同样的效果。
在图79、图80中,虽然说明了对于SLC区域,在写入消耗率超过SLC阈值时,将对应SLC区域切换成MLC区域的处理,但对于MLC区域,在写入消耗率超过了MLC阈值时,将对应MLC区域切换成SLC区域的处理也一样。
一般地,MLC区域与SLC区域相比,可写入上限次数设定得低。因此,即使作为MLC区域在写入消耗率超过MLC阈值的情况下,也可以通过将对应MLC区域切换成SLC区域来设定高的可写入上限次数。例如,当在MLC区域中写入上限次数是1000次、在SLC区域中写入上限次数是10000次时,在MLC区域中,消耗率在80%达到MLC阈值。通过将该MLC区域切换成SLC区域,例如,作为SLC区域,还能够进行2000次写入。通过将该SLC区域如MLC区域那样用作写入访问频率低的数据的存储器区域,可以进一步延长对应存储器区域的寿命。
图81是表示由本实施方式所涉及的切换控制部D36进行的存储器区域的切换控制的第1个例子的状态迁移图。另外,用图81中的各步骤OA1~OA5说明的处理也可以在正常地进行SLC区域和MLC区域的切换、数据的移动、信息的更新的范围中改变其顺序。
在步骤OA1中,非易失性半导体存储器的存储器区域MA是SLC区域,非易失性半导体存储器的存储器区域MB、MC、MD是MLC区域。在存储器区域MA、MB、MC中分别存储数据Da、Db、Dc。存储器区域MD是退避用区域。
在该步骤OA1中,假设存储器区域MA的写入消耗率超过SLC阈值。
这样的话,在步骤OA2中,切换控制部D36选择MCL区域的存储器区域MB、MC中的任意一个(在图81的例子中是存储器区域MB),并将所选择的存储器区域MB的数据Db移动到退避用存储器区域MD。对于选择MLC区域的存储器区域MB、MC的哪一个,可以优先选择未存储数据的MLC区域的存储器区域,也可以根据着色表14优先选择存储有重要度低的数据的MLC区域的存储器区域,还可以优先选择写入消耗率、读出消耗率、擦除消耗率低的MLC区域的存储器区域。该选择能够进行各种改变。
此外,作为存储器区域MB的数据Db的移动目的地(退避目的地),也可以参照着色表14,在数据Db中包含的数据中访问频率高的数据退避到SLC区域,在数据Db中包含的数据中访问频率低的数据退避到MLC区域。
接着,在步骤OA3中,切换控制部D36将所选择的MLC的存储器区域MB切换成SLC,改变存储器区域MB的SLC/MLC区域信息。
接着,在步骤OA4中,切换控制部D36将切换对象的SLC的存储器区域MA的数据Da移动到新切换成SLC的存储器区域MB。
然后,在步骤OA5中,切换控制部D36将切换对象的SLC的存储器区域MA切换成MLC,改变存储器区域MA的SLC/MLC区域信息。
另外,在上述的各步骤中,伴随数据的移动,更新地址变换信息13,并将数据的移动目的地的物理地址与对应数据的逻辑地址相对应。此外,伴随数据的移动,在发生数据的写入、读出、擦除时,更新存储器使用信息11。
图82是表示本实施方式所涉及的由切换控制部D36进行的存储器区域的切换控制的第2个例子的状态迁移图。另外,用该图82中的各步骤OB1~OB5说明的处理也可以在正常进行SLC和MLC的切换、数据的移动、信息的更新的范围中改变其顺序。
在步骤OB1中,非易失性半导体存储器的存储器区域MA是SLC,非易失性半导体存储器的存储器区域MB、MC、MD是MLC。在存储器区域MA、MB、MC中分别存储数据Da、Db、Dc。存储器区域DM是退避区域。
在该步骤OB1中,假设存储器区域MA的写入消耗率超过了SLC阈值。
这样的话,在步骤OB2中,切换控制部D36将存储器区域MA的数据Da移动到退避用存储器区域MD。
接着,在步骤OB3中,切换控制部D36选择MLC的存储器区域MB、MC中的任意一个(在图82的例子中是存储器区域MB),并将所选择的存储器区域MB的数据Db移动到退避用存储器区域MD。
接着,在步骤OB4中,切换控制部D36将SLC的存储器区域MA切换成MLC,并将MLC的存储器区域MB切换成SLC。进一步地,改变存储器区域MA、MB的SLC/MLC区域信息。
然后,在步骤OA5中,切换控制部D36将退避用存储器区域MD的数据Da移动到切换成SLC的存储器区域MB中,将退避用存储器区域MD的数据Db移动到切换成MLC的存储器区域MA中。
另外,在上述的各步骤中,伴随数据的移动,更新地址变换信息13,并将数据的移动目的地的物理地址与对应数据的逻辑地址相对应。此外,伴随数据的移动,当发生数据的写入、读出、擦除时,更新存储器使用信息11。
如上所述,在将SLC区域变更成MLC区域之后,如在第1实施方式中所示的,参照着色表14,对SLC区域写入(配置)访问频率高的数据,对MLC区域写入(配置)访问频率低的数据。
在以上说明的本实施方式中,根据非易失性半导体存储器9、10的使用状况,能够动态地将SLC区域切换成MLC区域,此外,能够动态地将MLC区域切换成SLC区域。通过将SLC区域切换成MLC区域,能够将写入消耗率变高的SLC区域作为MLC区域使用。进一步地,通过将MLC区域切换成SLC区域,能够将写入消耗率低的MLC区域作为SLC区域使用。这样,能够延长非易失性半导体存储器9、10的寿命,可以更有效地使用非易失性半导体存储器9、10。
第9实施方式
本实施方式是上述第1实施方式的变形例。在本实施方式中,对扩展在处理器3a、3b、3c中使用的地址空间的存储器管理装置进行说明。
图83是表示本实施方式所涉及的存储器管理装置与地址空间的关系的一个例子的方框图。另外,在该图83中,虽然以处理器器3a、3b、3c中处理器3b为代表进行说明,但其它处理器3a、3c也是一样的。
在上述第1实施方式中说明的存储器管理装置1在存储器的逻辑地址空间E32与存储器的物理地址空间E33之间进行地址变换,同时决定数据的写入目的地。
在此,存储器的物理地址空间E33包含混合主存储器2的物理地址空间。存储器的物理地址空间E33也可以进一步包含其它存储器的物理地址空间。
存储器的逻辑地址空间E32与针对处理器3b的处理器物理地址空间E34相对应。在处理器物理地址空间E34上,例如实现基于文件系统E34a、E34b的数据管理。
处理器3b具备存储器管理装置E35。另外,处理器3b和存储器管理装置35也可以是其它结构。
处理器3b执行多个进程Pc1~Pcn。在这多个进程Pc1~Pcn中,分别使用了处理器逻辑地址空间PLA1~PLAn。例如,当处理器3b是CPU(中央处理单元)时,处理器逻辑地址空间PLA1~PLAn是CPU逻辑地址空间。
处理器逻辑地址空间PLA1~PLAn分别具有存储器窗口MW1~MWn。在存储器窗口MW1~MWn中,处理器物理地址空间E34的一部分的数据被映射(即复制)。
这样,处理器3b在多个进程Pc1~Pcn中能够并行地访问存储器窗口MW1~MWn的数据,能够高速地执行多个进程Pc1~Pcn。
即使在处理器3b中限制可以使用的地址空间的大小,处理器3b也通过使用存储器窗口MW1~MWn,能够使用虚拟的宽的地址空间。
当在进程Pc1~Pcn中需要不被映射到存储器窗口MW1~MWn中的数据时,处理器3b更新存储器窗口MW1~MWn的数据,这样,新的所需要的数据被映射到存储器窗口MW1~MWn中。
处理器3b经由存储器窗口MW1~MWn能够访问处理器物理地址空间E34。
本实施方式所涉及的存储器管理装置E35具有与在上述第1实施方式中说明的存储器管理装置1一样的构成。在本实施方式中,存储器管理装置E35还进一步实现处理器3b的作为MMU的功能,但是存储器管理装置E35和处理器3b的MMU也可以是其它结构。
本实施方式所涉及的存储器管理装置E35的最大的特征在于:在处理器逻辑地址空间PLA1~PLAn与处理器物理地址空间E34之间进行地址变换和数据的写入目的地的决定。
存储器管理装置E35的信息存储部17存储存储器使用信息E36、存储器固有信息E37、着色表E38、地址变换信息E39。
存储器管理装置E35的处理部15一边使用工作存储器16,一边参照或者更新信息存储部17的存储器使用信息E36、存储器固有信息E37、着色表E38、地址变换信息E39,执行与在上述第1实施方式中说明的处理一样的处理。
存储器使用信息E36例如包含处理器物理地址空间E34的各地址区域的写入发生次数和读出发生次数以及各块区域的擦除次数。
表示处理器物理地址空间E34的各地址区域的使用状态的存储器使用信息E36例如可以根据在存储器管理装置1中管理的存储器使用信息11和地址变换信息13计算。
存储器固有信息12例如包含处理器物理地址空间E34的各地址区域的存储器种类(例如,与易失性半导体存储器8对应、与SLC的非易失性半导体存储器9对应、与MLC的非易失性半导体存储器10对应等)、易失性半导体存储器8的存储器大小、非易失性半导体存储器9、10的存储器大小、非易失性半导体存储器9、10的页面大小及块大小、各地址区域的可访问上限次数(可写入上限次数、可读出上限次数、可擦除上限次数)。
表示处理器物理地址空间E34的各地址区域的固有信息的存储器固有信息E37例如可以根据在存储器管理装置1中管理的存储器固有信息12和地址变换信息13计算。
着色表E38将处理器逻辑地址与该处理器逻辑地址表示的数据的着色信息相对应。
地址变换信息E39是将处理器逻辑地址与处理器物理地址向关联的信息。地址变换信息E39在存储器窗口MW1~MWn被更新时以表示该更新后的状态的方式进行更新。
处理部15如在上述第1实施方式中说明的,根据存储器使用信息E36、存储器固有信息E37、着色表E38、地址变换信息E39,在处理器逻辑地址空间PLA1~PLAn与处理器物理地址空间E34之间进行地址变换和数据的写入目的地的决定。
具体地,例如,处理部15对于数据写入频率是0的读出专用数据,进行不执行从存储器窗口MW1~MWn向处理器逻辑地址空间E34的回写处理的控制。
例如,处理部15在数据作为读出及写入的对象的分类的情况下,即在存储器窗口MW1~MWn的值与处理器物理地址空间E34的值不同的情况下(在脏数据的情况下),将存储器窗口MW1~MWn的值回写到处理器逻辑地址空间E34中。
例如,处理部15在数据是被暂时使用的种类(暂时的)的情况下,即使该数据是脏数据,也不从存储器窗口MW1~MWn向处理器逻辑地址空间E34进行回写。
例如,处理部15如在上述第1实施方式中说明的,根据静态写入频率SW_color、静态读出频率SR_color、静态擦除频率SE_color、动态写入频率DW_color、动态读出频率DR_color、动态擦除频率DE_color、数据种类,进行针对易失性半导体存储器8、非易失性半导体存储器9、10的数据的分开。
图84是表示本实施方式所涉及的由处理器3b和存储器管理装置35E进行的写入操作的一个例子的流程图。在该图84中,示出了在发生对存储器窗口MW1~MWn的数据写入,其后发生了分配给存储器窗口MW1~MWn的处理器物理地址区域的变更的情况下的处理的一个例子。
在步骤EM1中,存储器管理装置E35初始将处理器物理地址区域的任意一个分配给存储器窗口MW1~MWn,并生成地址变换信息E39。在该时间点,分配给存储器窗口MW1~MWn的处理器物理地址区域可以与易失性半导体存储器8的存储器区域、SLC的非易失性半导体存储器9的存储器区域、MLC的非易失性半导体存储器10的任意一个存储器区域对应。
在步骤EM2中,处理器3b向处理器窗口MW1~MWn写入数据。同时,存储器管理装置E35更新写入对象数据的着色信息(例如,写入次数DWC_color、动态写入频率DW_color等)。
在步骤EM3中,当处理器3b向处理器物理地址空间E34写入处理器窗口MW1~MWn的数据时,存储器管理装置E35根据存储器使用信息E36、存储器固有信息E37、着色表E38、地址变换信息E39,决定对处理器物理地址空间E34的写入对象数据的写入目的地,此外,存储器管理装置E35更新存储器使用信息E36、地址变换信息E39。进一步地,存储器管理装置E35向所决定的处理器物理地址区域写入写入对象数据。
例如,存储器管理装置E35决定将写入对象数据写入易失性半导体存储器8的存储器区域、SLC的非易失性半导体存储器9的存储器区域、MLC的非易失性半导体存储器10的存储器区域中哪个存储器区域。
在步骤EM4中,处理器3b使对未分配给存储器窗口MW1~MWn的其它处理器物理地址区域的数据访问发生。
在步骤EM5中,存储器管理装置E35改变对存储器窗口MW~MWn的处理器物理地址区域的分配,更新地址变换信息E39。另外,对存储器窗口MW1~MWn的处理器物理地址区域的分配变更例如由操作系统27的系统调用进行。在存储器管理装置E35中,进行基地址的变更。实际上,处理器页面表的条目被更改。
在这种情况下,存储器管理装置E35进行对变更前的存储器窗口MW1~MWn的数据的回写,并更新该数据的着色信息、存储器使用信息E36。
在步骤EM36中,处理器3b使用在变更后的存储器窗口MW1~MWn中存储的数据。
在本实施方式中,即使在处理器3b的处理器逻辑地址空间PLA1~PLAn小的情况下,也可以使用比逻辑地址空间PLA1~PLAn大的处理器物理地址空间E34,能够扩展处理器3b的处理器物理地址空间E34。
在本实施方式中,使用着色信息,能够在存储器窗口PLA1~PLAn与存储器物理地址空间E34之间使数据高效地映射。
另外,在本实施方式中,根据存储器使用信息E36、存储器固有信息E37、着色表E38的着色信息,进行对处理器物理地址空间E34的数据写入目的地的决定。但是,也可以例如使用存储器使用信息E36、存储器固有信息E37、着色表E38中的至少一个,进行对处理器物理地址空间E34的数据写入目的地的决定。
在本实施方式中,对多个进程Pc1~Pcn的每一个形成处理器逻辑地址空间PLA~PLAn,并在各个处理器逻辑地址空间中使用处理器窗口MW1~MWn。这样,可以并行地执行对混合主存储器2等存储器的访问那样的操作,高速地执行多个进程Pc1~Pcn。
第10实施方式
本实施方式是共用在上述第1实施方式的存储器管理装置1中使用的着色信息并将所共用的着色信息发送到信息处理装置100的信息处理装置(服务器装置)。
如上所述,在信息处理装置100中,在通过处理器3a、3b、3c执行进程6a、6b、6c而生成新的数据时,操作系统27根据新生成的数据的种类,生成静态颜色信息,并向对应新生成的数据付与静态颜色信息。存储器管理装置1在将对应数据写入非易失性半导体存储器9、10时,参照对应数据的静态颜色信息,决定写入对象存储器区域等,从而能够延长非易失性半导体存储器9、10的寿命。因此,通过最佳化包含静态颜色信息的着色信息,谋求非易失性半导体存储器9、10的进一步的长寿命化。
在本实施方式中,对共用在操作系统27生成静态颜色信息时参照的简档信息的系统进行说明。通过共用简档信息,实现着色信息的最佳化。关于简档信息以后说明。
图85是表示本实施方式所涉及的信息处理装置及网络系统的构成的一个例子的图。
网络系统K32具有经由网络K35可通信地连接信息处理装置K33、简档生成终端K34、用户终端100A、100B的构成。
网络K35例如是因特网、LAN(局域网)等各种通信媒体,可以是无线,也可以是有线。
对简档生成终端K34的构成进行说明。简档生成终端K34例如是程序开发者或者制造者的终端。简档生成装置K34具备设定部K34a、存储装置K34b、通信部K34c。
设定部K34a例如根据程序开发者等的设定操作,生成简档信息K36,并在存储装置K34b中存储。
存储部K34b存储由设定部K34a生成的简档信息K36。
通信部K34c经由网络K35将在存储装置K34b中存储的简档信息发送到信息处理装置K33。
对用户终端100A、100B的构成进行说明。用户终端100A、100B相当于上述第1实施方式的信息处理装置100,具备存储器管理装置1、混合主存储器2。在用户终端100A、100B中具备的存储器管理装置1的信息存储部17、混合主存储器2存储有着色表14。
用户终端100A、100B自动地或者按照用户的指示生成简档信息K37、K38。关于简档信息的生成的细节以后说明。用户终端100A、100B经由网络K35将简档信息K37、K38发送到信息处理装置K33。
进一步地,用户终端100A、100B自动地或者按照用户的指示从信息处理装置K33中下载(接收)简档信息。用户终端100A、100B的操作系统27在生成针对数据的着色信息时,参照下载的简档信息。用户终端100A、100B的操作系统27根据简档信息,生成针对数据的静态颜色信息,并在着色表14中存储。
对信息处理装置K33的构成进行说明。信息处理装置K33具备通信部K33a、简档信息管理部K33b、存储装置K33c。简档信息管理部K33可以通过硬件实现,也可以通过软件和处理器等硬件的协作来实现。
通信部K33a在简档生成终端K34和用户终端100A、100B之间进行简档信息K36~K38的发送接收。
简档信息管理部K33b将经由通信部K33a接收的简档信息存储在存储装置K33c中。此外,简档信息管理部K33b经由通信部K33a向用户终端100A、100B、简档生成终端K34发送简档信息。
存储装置K33c存储简档信息。进一步地,存储装置K33c存储服务数据K40。关于服务数据K40以后说明。
以下对简档信息进行说明。如上所述,简档信息是用户终端100A、100B的操作系统27在对数据付与(生成)静态颜色信息时参照的信息。
简档信息例如是将数据识别信息、着色信息、生成者识别信息相关联的信息。
数据识别信息例如相当于上述第1实施方式的图9及图10的数据形式。作为数据识别信息,使用如文件的名称、文件的扩展符等那样的文件识别信息、在文件系统上配置数据的位置(例如目录)的信息等。
着色信息包含上述的静态颜色信息。静态颜色信息是对每个数据识别信息设定的值,例如,如上述第1实施方式的图9及图10所示,包含静态写入频率SW_color、静态读出频率SR_color、数据寿命SL_color。
生成者识别信息是用于识别简档信息的生成者的信息。生成者识别信息是附加的信息,根据需要而附加。
以下对简档信息的生成进行说明。
用户终端100A、100B保有如图9、图10所示的数据识别信息和对该数据识别信息的着色信息。用户终端100A、100B根据所保有的数据识别信息和着色信息,生成简档信息。
此外,用户终端100A、100B也可以根据由存储器管理装置1管理的着色表14来生成简档信息。如上所述,着色表14以条目单位管理根据指定数据的逻辑地址而生成的索引和对应数据的着色信息。用户终端100A、100B从该索引中特别指定通过逻辑地址指定的数据,并抽取对应数据的数据识别信息。进一步地,用户终端100A、100B计算对应数据的静态颜色信息和动态颜色信息(例如,动态写入频率DW_color、动态读出频率DR_color)。进一步地,如果需要,用户终端100A、100B将动态颜色信息改变成与静态颜色信息相同的数据形式。如上所述,相对于静态颜色信息是SW_color=5那样的数据形式,动态颜色信息是对数据的实际访问频率,还可以假设为例如使用访问频率的时间平均值等。根据该动态颜色信息的访问频率或者访问频率的时间平均值的大小,执行向DR_color=5那样的数据形式的变换。这样,决定数据识别信息、对对应数据识别信息的静态颜色信息、动态颜色信息。用户终端100A、100B根据包含该静态颜色信息和动态颜色信息的着色信息、数据识别信息、生成者识别信息,生成简档信息。
这样,通过根据包含动态颜色信息的着色信息生成简档信息,可以将对数据的实际访问频率作为简档信息提供给用户终端100A、100B。这样,能够谋求操作系统27对数据付与的着色信息的最佳化。
此外,例如,开发了新的应用程序的软件制造者也可以使用简档生成终端K34,将与新的应用程序专用的文件有关的简档信息K36登记在信息处理装置K33中。
接着,对服务数据K40进行说明。服务数据K40包含在存储装置K33c中存储的各种简档信息K36~K38的说明数据、各种广告数据。
服务数据K40从信息处理装置K33发送到用户终端100A、100B。例如,用户终端100A、100B使用浏览器显示服务数据K40。
例如,当在存储在存储装置K33c中的个多简档信息中包含相同的数据识别信息时,用户能够参照服务数据K40的说明数据,决定下载的简档信息。
例如,通过在服务数据K40中预先包含简档信息的广告数据、信息设备的广告数据、非易失性半导体存储器的广告数据等,能够对研究简档信息的下载、信息设备的换购、非易失性半导体存储器的换购等的用户推荐特定的产品。
此外,例如,简档信息管理部K33b也可以对在存储装置K33c中存储的简档信息K36~K38适用统计方法,并将其结果得到的简档信息发送到用户终端100A、100B。作为统计方法,例如对于与相同的数据识别信息相关联的着色信息,可以使用计算平均值、求出中心值等方法。例如,简档信息管理部K33b对于与相同的数据识别信息相关联的多个着色信息,生成包含静态写入频率SW_color的平均值或中心值、静态读出频率SR_color的平均值或中心值、数据寿命SL_color的平均值或中心值、动态写入频率DW_color的平均值或中心值、动态读出频率DR_color的平均值或中心值的简档信息,并将该生成的简档信息发送到用户终端100A、100B。
简档信息管理部K33b对由用户终端100A、100B的浏览器下载简档信息K36~K38的次数进行计数。简档信息管理部K33b将各简档信息K36~K38的下载次数乘以简档信息K36~K38的每一次的下载费用,计算对各简档信息K36~K38的生成者的报酬费用。然后,简档信息管理部K33b对于各简档信息K36~K38的生成者识别信息,生成分配了报酬费用的报酬信息,并将报酬信息存储在存储装置K33c中。
进一步地,简档信息管理部K33b根据来自用户终端100A、100B的下载请求,对于特别指定下载请求源的识别信息(例如用户ID等),生成分配了所下载的简档信息的每一次的使用费用的使用费用信息,并将使用费用信息存储在存储装置K33c中。
图86是表示本实施方式所涉及的简档信息管理部K33b的处理的一个例子的流程图。
在步骤C1中,简档信息管理部K33b判断是否从简档生成终端K34、用户终端100A、100B的任意一个接收了简档信息K36~K38的任意一个。
当未接收简档信息K36~K38时,处理进行到步骤C3。
当接收了简档信息K36~K38的任意一个时,在步骤C2中,简档信息管理部K33b将所接收的简档信息存储在存储装置K33c中。
在步骤C3中,简档信息管理部K33b判断是否从用户终端100A、100B之一接收了下载请求。
当未接收下载请求时,处理进行到步骤C6。
当接收了下载请求时,在步骤C4中,简档信息管理部K33b从存储装置K33c中读出与所接收的下载请求对应的简档信息。
在步骤C5中,简档信息管理部K33b将所读出的简档信息发送到下载请求的发送源的用户终端。
在步骤C6中,简档信息管理部K33b判断处理是否结束。当处理未结束时,处理返回到步骤C1。
图87是表示本实施方式所涉及的由用户终端100A进行的简档信息K37的上载处理的一个例子的流程图。另外,由用户终端100B进行的上载处理也与该图87大致相同。
在步骤UL1中,用户终端100A例如自动地或者按照用户的指示,组合针对数据的数据识别信息、着色表14中与该数据对应的着色信息、生成者识别信息,生成简档信息K37。
在步骤UL2中,用户终端100A经由网络K35将所生成的简档信息K37发送到信息处理装置K33。
图88是表示本实施方式所涉及的由用户终端100A进行的简档信息的下载处理的一个例子的流程图。另外,关于用户终端100B的下载处理由于也与该图88大致相同,因此,省略说明。
在步骤DL1中,用户终端100A例如自动地或者按照用户的指示,将包含数据识别信息的下载请求经由网络K35发送到信息处理装置K33。
在步骤DL2中,用户终端100A从信息处理装置K33经由网络K35接收简档信息,作为对下载请求的回复。
在步骤DL3中,用户终端100A的操作系统27在着色表14中,对于与所接收的简档信息的数据识别信息对应的数据,存储在所接收的简档信息中包含的静态颜色信息。
在步骤DL4中,用户终端100A的存储器管理装置1判断在所接收的简档信息中是否包含动态颜色信息。
当在所接收的简档信息中没有包含动态颜色信息时,处理结束。
当在所接收的简档信息中包含动态颜色信息时,在步骤DL5中,存储器管理装置1在着色表14中,对于与所接收的简档信息的数据识别信息对应的数据,存储在所接收的简档信息中包含的动态颜色信息。
在以上说明的本实施方式中,在存储器管理装置1中使用的着色信息由制造者或者用户等多数人生成,所生成的着色信息被共用。
在本实施方式中,能够根据着色信息被阅览的次数或者下载的次数,向着色信息的生成者支付费用。
在本实施方式中,信息处理装置K33的运行者能够收集多数的着色信息,并能够迅速地进行与着色信息有关的各种服务。
通过使用本实施方式所涉及的信息处理装置K33,可以共用着色信息,并能够使存储器管理装置1及混合主存储器2的开发迅速,能够使存储器管理装置1及混合主存储器2普及。
第11实施方式
本实施方式是上述第1实施方式的变形例。在本实施方式中,对访问经由网络连接的存储器的存储器管理装置进行说明。
图89是表示本实施方式所涉及的网络系统的一个例子的方框图。
网络系统N37具备信息处理装置N37A和信息处理装置N37B。信息处理装置N37A和信息处理装置N37B经由网络N38连接。信息处理装置N37A和信息处理装置N37B由于具有相同的功能,因此,以下详细说明信息处理装置N37A。另外,网络系统N37也可以具备3个以上的信息处理装置。
信息处理装置N37A具备处理器3A、存储器管理装置N32A、易失性半导体存储器8A、非易失性半导体存储器9A、网络接口装置N39A。
处理器3A经由存储器管理装置N32A与易失性半导体存储器8A、非易失性半导体存储器9A、网络接口装置N39A连接。
该处理器3A也可以在内部具备高速缓冲存储器,但在图89中省略说明。信息处理装置N37A也可以具备多个处理器3A。
易失性半导体存储器8A与上述第1实施方式的易失性半导体存储器8一样。非易失性半导体存储器9A与上述第1实施方式的非易失性半导体存储器9或者非易失性半导体存储器10一样。
在本实施方式中,易失性半导体存储器8A和非易失性半导体存储器9A被用作信息处理装置N37A的主存储器。但是,易失性半导体存储器8A和非易失性半导体存储器9A通过存储另一个信息处理装置N37B的数据中由信息处理装置N37A访问的访问频率高的数据或者重要度高的数据,起到信息处理装置N37A中高速缓冲存储器的功能。在这种情况下,易失性半导体存储器8A被用作信息处理装置N37A的一级高速缓冲存储器,非易失性半导体存储器9A被用作信息处理装置N37A的二级高速缓冲存储器使用。
网络接口装置N39A经由网络N38与另一个信息处理装置N37B的网络接口装置N39A进行网络逻辑地址或数据的发送接收。
对本实施方式所涉及的存储器管理装置N32A进行说明。图90是表示本实施方式所涉及的存储器管理装置N32A的构成的一个例子的方框图。
存储器管理装置N32A的处理部N33A除了具备地址管理部18、读出管理部19、写入管理部20、着色信息管理部21、存储器使用信息管理部22、再配置部23之外,还具备网络地址变换部N34和通信部N35。
网络地址变换部N34将在处理器3A中使用的地址长度短的逻辑地址(以下称为“处理器逻辑地址”)变换成在以网络连接的多个信息处理装置中使用的地址长度长的逻辑地址(以下称为“网络逻辑地址”)。例如,在该地址变换中使用哈希函数。另外,处理器逻辑地址是在寄存器中存储的指针。
在工作存储器16中存储有地址长度变换表AT。网络地址变换部N34参照地址长度变换表AT,将处理器逻辑地址变换成网络逻辑地址。
另外,地址长度变换表AT被存储在工作存储器16中,但也可以存储在信息存储部17中。
通信部N35使用网络接口装置N39A并经由网络N38发送和接收网络逻辑地址以及用网络逻辑地址指定的数据。
在本实施方式中,存储器使用信息11表示网络系统N37全体(在该图90的例子中,存储器使用信息11是易失性半导体存储器8A、非易失性半导体存储器9A、易失性半导体存储器8B、非易失性半导体存储器9B)的存储器区域的使用状态。
同样,存储器固有信息12表示网络系统N37全体的存储器区域的固有信息。
地址变换信息13表示由网络系统N37全体使用的网络逻辑地址与物理地址的关系。
着色表14包含网络系统N37全体中的各数据的着色信息。
在网络系统N37中,对于全部数据付与唯一的地址。当在网络系统N37全体中使用共同的网络逻辑地址空间时,必需的地址的位数例如大到128位等。但是,在该网络系统N37中,处理器3A、3B的寄存器假设是32位或者64位。在这种情况下,需要将寄存器的位数的处理器逻辑地址变换成网络逻辑地址的位数。在存储器管理装置N32A、N32B中具备的网络地址变换部N34执行该变换处理。
对由网络系统N37进行的经由网络N38的数据读出进行说明。
存储器管理装置N32A从处理器3A接收处理器逻辑地址,并将该处理器逻辑地址变换成网络逻辑地址。然后,存储器管理装置N32A在与网络逻辑地址对应的数据未被存储在信息处理装置N37A的存储器(在该图90中,是易失性半导体存储器8A和非易失性半导体存储器9A)任何一个中时,经由网络接口装置N39A和网络N38,向另一个信息处理装置N37B发送网络逻辑地址。
信息处理装置N37B的存储器管理装置N32B从信息处理装置N37A经由网络N38和网络接口装置N39B,接收与网络逻辑地址对应的数据。
存储器管理装置N32B在将所接收的网络逻辑地址存储在信息处理装置N37B的存储器(在该图90中,是易失性半导体存储器8B或者非易失性半导体存储器9B)中时,根据地址变换信息13,将网络逻辑地址变换成物理地址,并读出数据。
存储器管理装置N32B将所读出的数据经由网络接口装置N39A、网络N38发送到信息处理装置N37A。
信息处理装置N37A的存储器管理装置N32A从信息处理装置N37B经由网络N38和网络接口N39A接收所读出的数据。
存储器管理装置N32A将所读出的数据回送到处理器3A。
此外,存储器管理装置N32A参照着色表14,在所读出的数据的访问频率或者重要度大于等于预定值时,将该数据写入易失性半导体存储器8A或者非易失性半导体存储器9A中,并更新地址变换信息13。该写入通过与上述第1实施方式相同的方法决定写入目的地。
对由网络系统N37进行的经由网络N38的数据写入进行说明。
存储器管理装置N32A从处理器3A接收处理器逻辑地址和写入对象数据,并将该处理器逻辑地址变换成网络逻辑地址。然后,存储器管理装置N32A在网络逻辑地址表示另一个信息处理装置N37B时,经由网络接口装置N39A和网络N38,向另一个信息处理装置N37B发送网络逻辑地址和写入对象数据。
信息处理装置N37B的存储器管理装置N32B从信息处理装置N37A经由网络N38和网络接口装置N39B,接收网络逻辑地址和写入对象数据。
存储器管理装置N32B根据地址变换信息13,将网络逻辑地址变换成物理地址,并向物理地址表示的存储器区域写入写入对象数据。
对上述图89所示的网络系统N37中的数据D1的复制进行说明。
信息处理装置N37A的存储器管理装置N32A管理针对易失性半导体存储器8A、非易失性半导体存储器9A、进而针对易失性半导体存储器8B、非易失性半导体存储器9B的存储器使用信息11和存储器固有信息12。
进一步地,存储器管理装置N32A在着色表14中管理在易失性半导体存储器8A、非易失性半导体存储器9A中、进而在易失性半导体存储器8B、非易失性半导体存储器9B中存储的各数据的着色信息。
存储器管理装置N32A根据存储器使用信息11、存储器固有信息12、着色表14,除了对于易失性半导体存储器8A及非易失性半导体存储器9A之外,还对经由网络N38连接的易失性半导体存储器8B及非易失性半导体存储器9B,以延长非易失性半导体存储器9A、9B的寿命的方式进行写入目的地的决定。
在此,信息处理装置N37A的存储器管理装置N32A从信息处理装置N37中将发生对另一个信息处理装置N37B的访问的频率高的主体数据D1复制到信息处理装置N37A的易失性半导体存储器8A或者非易失性半导体存储器9A中,作为数据D1c存储。例如,存储器管理装置N32A参照着色表14,将在另一个信息处理装置N37B中存储的访问频率大于等于预定水平的数据D1作为在信息处理装置N37A的易失性半导体存储器8A或者非易失性半导体存储器9A中复制的数据D1c存储。
当,对在信息处理装置N37A中复制的数据D1c的访问频率比对另一个信息处理装置N37B中的数据D1的访问频率大预定水平以上时,存储器管理装置N32A、N32B将在信息处理装置N37A中复制的数据D1c作为主体管理。
进一步地,在信息处理装置N37A中,当发生了对所复制的数据D1c的写入时,存储器管理装置N32A、N32B将信息处理装置N37A的数据D1c作为主体管理。
这样,当在信息处理装置N37A中复制的数据D1c作为主体被管理时,信息处理装置N37B的数据D1可以维持不变,并分配在数据D1、D1c中彼此不同的地址(ID)。其它地址也可以对原数据D1分配,也可以对所复制的数据D1c分配。
此外,当将数据D1c作为主体管理时,原数据D1也可以擦除。
在存储器管理装置N32A、N32B中,当如不发生数据D1、D1c的冲突那样而例如发生了对作为缓存使用的数据D1c的写入时,进行更新主体的数据D1等管理。
图91是表示本实施方式所涉及的处理器逻辑地址与网络逻辑地址的第1关系的方框图。
例如,处理器地址Pr1的高位地址P1u是32位,低位地址P1d是32位。
例如,网络逻辑地址N1的高位地址N1u和中位地址N1m的组合是128位,低位地址N1d是32位。
假设网络逻辑地址N1的高位N1u例如表示从业者,网络逻辑地址N1的中位地址N1m例如是处理器固有的值。网络逻辑地址N1的高位地址N1u和中位地址N1m是与网络有关的地址,例如是IP地址、IPv4等。
网络逻辑地址N1的高位地址N1u和中位地址N1m的组合由哈希函数N40进行变换。通过该变换,求出比网络逻辑地址N1的高位地址N1u和中位地址N1m的位数少的处理器逻辑地址Pr1的高位地址P1u。该处理器逻辑地址Pr1的高位地址P1u作为从处理器逻辑地址Pr1向网络逻辑地址N1的变换中的关键字使用。
网络逻辑地址N1u的低位地址N1d直接作为处理器逻辑地址Pr1的低位地址P1d使用。
在地址长度变换表AT1中的处理器逻辑地址Pr1的高位地址P1u所示的位置处存储了网络逻辑地址N1的高位地址N1u和中位地址N1m。
当将处理器逻辑地址Pr1变换成网络逻辑地址N1时,网络地址变换部N34参照地址长度变换表AT1中的处理器逻辑地址Pr1的高位地址P1u所示的位置,求出在该位置处存储的网络逻辑地址N1的高位地址N1u及中位地址N1m。
然后,网络地址变换部N34在所求出的网络逻辑地址N1的高位地址N1u及元地址N1m上组合处理器逻辑地址Pr1的低位地址P1d,求出网络逻辑地址N1。
在地址长度变换表AT1中,对于各条目附加有表示是否是有效的地址长度变换标志。
网络地址变换部N34在登记针对地址长度变换表AT1的条目时,参照登记目的地的地址长度变换标志。网络地址变换部N34在地址长度变换标志无效时,直接进行对该条目的登记。网络地址变换部N34在地址长度变换标志有效时,执行例外处理。由此,能够防止对条目的重复登记。
图92是表示本实施方式所涉及的处理器逻辑地址Pr2与网络逻辑地址N2的第2关系的方框图。
网络逻辑地址N2的中位地址N2m在处理器逻辑地址Pr2的高位地址P2u中使用。该处理器逻辑地址Pr2的高位地址P2u作为从处理器逻辑地址Pr2向网络逻辑地址N2的变换中的关键字使用。
网络逻辑地址N2的低位地址N2d直接作为处理器逻辑地址Pr2的低位地址P2d使用。
在地址长度变换表AT2中的处理器逻辑地址Pr2的高位地址P2u所示的位置处存储网络逻辑地址N2的高位地址N2u和中位地址N2m。
当将处理器逻辑地址Pr2变换成网络逻辑地址N2时,网络地址变换部N34参照地址长度变换表AT2中处理器逻辑地址Pr2的高位地址P2u所示的位置,求出在该位置处存储的网络逻辑地址N2的高位地址N2u及中位地址N2m。
然后,网络地址变换部N34在所求出的网络逻辑地址N2的高位地址N2u及中位地址N2m上组合处理器逻辑地址Pr2的低位地址P2d,求出网络逻辑地址N2。
图93是表示本实施方式所涉及的处理器逻辑地址与网络逻辑地址的第3关系的方框图。
网络逻辑地址N3的中位地址N3m及低位地址N3d在处理器逻辑地址Pr3的高位地址P3u及低位地址P3d中使用。处理器逻辑地址Pr3的高位地址P3u作为从处理器逻辑地址Pr3向网络逻辑地址N3的变换中的关键字使用。
在地址长度变换表AT3中的处理器逻辑地址Pr3的高位地址P3u所示的位置处存储网络逻辑地址N3的高位地址N3u。
当将处理器逻辑地址Pr3变换成网络逻辑地址N3时,网络地址变换部N34参照地址长度变换表AT3中处理器逻辑地址Pr3的高位地址P3u所示的位置,求出在该位置处存储的网络逻辑地址N3的高位地址N3u。
然后,网络地址变换部N34在所求出的网络逻辑地址N3的高位地址N3u上组合处理器逻辑地址Pr3的高位地址P3u和低位地址P3d,求出网络逻辑地址N3。
图94是表示本实施方式所涉及的处理器逻辑地址与网络逻辑地址的第4关系的方框图。
网络地址变换部N34从网络逻辑地址N4的高位地址N4u和中位地址N4m的组合中以n位间隔来抽取值,并将该所抽取的值作为处理器逻辑地址Pr4的高位地址P4u。通过该变换,求出比网络逻辑地址N4的高位地址N4u和中位地址N4m的位数少的处理器逻辑地址Pr4的高位地址P4u。该处理器逻辑地址Pr4的高位地址P4u作为从处理器逻辑地址Pr4向网络逻辑地址N4的变换中的关键字使用。
网络逻辑地址N4与处理器逻辑地址Pr4的其它关系以及从处理器逻辑地址Pr4向网络逻辑地址N4的变换,由于与上述图91的情况一样,因此省略说明。
图95是表示本实施方式所涉及的处理器逻辑地址与网络逻辑地址的第5关系的方框图。
网络地址变换部N34将用值P(例如,素数)除网络逻辑地址N5的高位地址N5u和中位地址N5m的组合后的余数的值作为处理器逻辑地址Pr5的高位地址P5u。通过该变换,求出比网络逻辑地址N5的高位地址N5u和中位地址N5m的位数少的处理器逻辑地址Pr5的高位地址P5u。该处理器逻辑地址Pr5的高位地址P5u作为从处理器逻辑地址Pr5向网络逻辑地址N5的变换中的关键字使用。
网络逻辑地址N5与处理器逻辑地址Pr5的其它关系以及从处理器逻辑地址Pr5向网络逻辑地址N5的变换,由于与上述图91的情况一样,因此省略说明。
另外,网络地址变换部N34也可以使用变换表代替哈希函数N40,将网络逻辑地址N1~N5的一部分变换成处理器逻辑地址Pr1~Pr5的一部分,并将该处理器逻辑地址Pr1~Pr5的一部分作为地址长度变换的关键字使用。
此外,网络地址变换部N34也可以制作登记网络逻辑地址N1~N5的一部分或者全部的表,并将该表的地址作为在从处理器逻辑地址Pr1~Pr5向网络逻辑地址N1~N5的变换中使用的关键字。在该变换方法中,也可以多个信息处理装置N37A、N37B各自管理表。更理想地,也可以使表在与网络N38连接的多个信息处理装置N37A、N37B之间共用,信息处理装置N37A、N37B各自将该表的副本本地存储在高速缓冲存储器等上。
在上述的地址变换中,虽然网络逻辑地址N1~N5的低位地址N1d~N5d和处理器逻辑地址Pr1~Pr5的低位地址P1d~P5d没有被变换而使用,但也可以变换该网络逻辑地址N1~N5的低位地址N1d~N5d和处理器逻辑地址Pr1~Pr5的低位地址P1d~P5d。
图96是表示本实施方式所涉及的网络系统N37的虚拟地址空间的一个例子的方框图。
在本实施方式中,由于向网络系统N37的全部数据分配唯一的网络逻辑地址,因此,能够在各信息处理装置N37A、N37B中形成共用的虚拟地址空间N41。
图97是表示本实施方式所涉及的处理器逻辑地址和网络逻辑地址的构成的第1个例子的方框图。
处理器逻辑地址N42包含变换关键字、文件地址及偏移。
网络地址变换部N34将处理器逻辑地址N42变换成网络逻辑地址N43。
网络逻辑地址N43包含处理器识别信息(例如,从业者及信息处理装置的识别信息)、文件地址及偏移。
存储器管理装置N32A经由网络N38将网络逻辑地址N43发送到存储器管理装置N32B。这样的话,存储器管理装置N32B读出由该网络逻辑地址N43的文件地址和偏移指定的数据,并回送到存储器管理装置N32A。
图98是表示本实施方式所涉及的处理器逻辑地址和网络逻辑地址的构成的第2个例子的方框图。
处理器逻辑地址N44包含变换关键字和偏移。
网络地址变换部N34将处理器逻辑地址N44变换成网络逻辑地址N45。
网络逻辑地址N45包含处理器识别信息、文件地址和偏移。
存储器管理装置N32A经由网络N38将网络逻辑地址N45发送到存储器管理装置N32B。于是,存储器管理装置N32B读出由该网络逻辑地址N45的文件地址和偏移指定的数据,并回送到存储器管理装置N32A。
图99是表示本实施方式所涉及的处理器逻辑地址和网络逻辑地址的构成的第3个例子的方框图。
处理器逻辑地址N46包含变换关键字和文件地址。
网络地址变换部N34将处理器逻辑地址N46变换成网络逻辑地址N47。
网络逻辑地址N47包含处理器识别信息和文件地址。
存储器管理装置N32A经由网络N38将网络逻辑地址N47发送到存储器管理装置N32B。于是,存储器管理装置N32B读出由该网络逻辑地址N47的文件地址指定的文件数据,并回送到存储器管理装置N32A。
以下对上述的地址变换的技术意义进行说明。
例如,8位CPU(中央处理单元)一般被用作处理器3A。该8位CPU的位数具备8位的寄存器。此外,在一般使用的8位CPU中,地址的位数是16位。
例如,16位CPU具备16位的寄存器。在一般使用的16位CPU中,地址的位数是20位。
在通用寄存器中还存储有数值和地址的某一方。因此,优选地,数值的位数与地址的位数一致。但是,如上所述,存在寄存器的位数与地址的位数不一致的情况。
目前,64位CPU正在普及。64位CPU能够提供充分的计算精度。因此,寄存器的位数超过64位的必要性低。此外,从CPU的加法器的进位处理的观点出发,认为在CPU中具备超过64位的寄存器是困难的。
与此相对,认为增加地址的位数的必要性高。作为一个例子,对单级存储器(SLS)进行说明。
在SLS中,对于包含二级存储装置的各种存储装置,分配虚拟地址。近年来,不经由网络连接的本地存储装置由于是T字节级别,因此,虚拟地址的大小在32位中不够,如果是64位就足够。
但是,当使用在网络环境中使用的例如(NAS)等那样的存储装置时,或者当向与网络连接的多个存储装置分配地址时,需要增大虚拟地址的大小,例如128位等。
图100是表示推断为了访问在与网络连接的多个设备中存储的数据而需要的地址的位数的计算的一个例子的图。
如图100所示,当假定存储有全世界人口程度的数据时,可通过使用82位的网络逻辑地址来访问这些数据。
因此,如上所述,在网络系统N37中,根据与处理器3A、3B的寄存器的位数相同的处理器逻辑地址来求出位数更多的网络用的网络逻辑地址的意义重大。
例如,在本实施方式中,网络逻辑地址通过设为128位,能够对网络系统的全部数据分配地址。
在以上说明的本实施方式中,能够对于在网络系统N37中使用的全部数据分配地址。
在本实施方式中,在网络系统N37所具备的易失性半导体存储器8A及非易失性半导体存储器9A和易失性半导体存储器8B及非易失性半导体存储器9B之间,可以由共用的方法进行例如地址变换、写入目的地决定等那样的基本存储器管理及存储器访问。即,本实施方式所涉及的各信息处理装置N37A、N37B在访问方法、访问次数、访问频率等的管理中,也可以不区分在自己装置中具备的存储器和经由网络N38连接的存储器。
在本实施方式中,由信息处理装置N37A、N37B访问的频率高的数据由于存储在该装置内,因此,能够防止由于经由网络N38的发送接收而导致的访问延迟、由于网络切断而引起的访问失败。
在本实施方式中,能够将网络系统N38上的易失性半导体存储器8A及非易失性半导体存储器9A和易失性半导体存储器8B及非易失性半导体存储器9B作为主存储器使用。进一步地,本实施方式所涉及的各信息处理装置N37A、N37B可以将自己装置内的存储器作为预先存储在其它装置中存储的数据的高速缓冲存储器使用。
在本实施方式中,能够使用比处理器3A、3B的寄存器的位数大的位数的地址,能够使用庞大的存储器空间。
一般地,不经由网络进行的访问进行对存储装置的读出、写入,经由网络进行的访问通过套接字通信进行。在读及写和套接字通信中,访问方法不同。此外,在经由网络的Web访问中,使用例如使用了URL等的特别的访问方法。与此相对,在本实施方式中,与是否经由网络访问没有关系,根据网络逻辑地址进行对存储装置的访问,使用相同的访问方法。
在本实施方式中,在地址长度变换表AT、AT1~AT5中附加了地址长度变换标志,从而能够防止重复登记。
在上述各实施方式中说明的各构成要素能够自由地组合,并能够自由地分割。例如,能够适当地组合在各实施方式中示出的任意功能块,此外,能够进行适当的分割。此外,例如能够只抽取在各实施方式中示出的流程图的一部分的步骤实施,可以适当地组合任意步骤,此外,能够进行适当的分割。
本发明并不限于上述的实施方式,在实施阶段,在不脱离其主旨的范围下可以进行各种变形。进一步地,在上述实施方式中包含各种阶段的发明,能够通过所公开的多个构成要件的适当的组合,提取各种发明。
权利要求书(按照条约第19条的修改)
1.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出,具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;以及
写入管理部,其参照上述着色信息,从上述非易失性半导体存储器和上述易失性半导体存储器中决定写入上述写入对象数据的区域。
2.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的访问频率。
3.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的数据寿命。
4.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的重要度。
5.根据权利要求1所述的存储器管理装置,其中,上述着色信息还包含对上述写入对象数据的访问次数。
6.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的访问频率、数据寿命、重要度中的至少一个。
7.(修改后)根据权利要求2所述的存储器管理装置,其中,
上述非易失性半导体存储器包含第1区域和第2区域;
上述写入管理部参照上述着色信息,将根据上述数据特性而推测的访问频率高的写入对象数据写入上述第1区域;
上述写入管理部参照上述着色信息,将根据上述数据特性而推测的访问频率低的写入对象数据写入上述第2区域。
8.(修改后)根据权利要求1所述的存储器管理装置,还具备:读出管理部,其在从上述非易失性半导体存储器中读出读出对象数据时,参照上述读出对象数据的上述着色信息,判断是否在上述易失性半导体存储器中缓存上述读出对象数据。
9.根据权利要求1所述的存储器管理装置,其中,上述非易失性半导体存储器是NAND型闪速存储器,上述易失性半导体存储器是DRAM。
10.(修改后)根据权利要求6所述的存储器管理装置,其中,根据上述写入对象数据的上述数据特性而推测的上述访问频率、上述数据寿命和上述重要度中的至少一个根据上述写入对象数据的文件系统上的文件的特性和使用上述写入对象数据的程序的程序执行时的数据种类的特性中的至少一个决定。
11.(修改后)根据权利要求6所述的存储器管理装置,其中,根据上述写入对象数据的上述数据特性而推测的上述访问频率、上述数据寿命和上述重要度中的至少一个根据上述写入对象数据的扩展符决定。
12.(修改后)根据权利要求6所述的存储器管理装置,其中,根据上述写入对象数据的上述数据特性而推测的上述访问频率、上述数据寿命和上述重要度中的至少一个根据上述写入对象数据的内核的配置区域决定。
13.(修改后)根据权利要求5所述的存储器管理装置,其中,根据对上述写入对象数据的访问次数,计算对上述写入对象数据的访问频率;
上述写入管理部参照上述访问频率,决定上述写入对象数据的上述非易失性半导体存储器上的写入区域。
14.(修改后)根据权利要求13所述的存储器管理装置,具备:再配置部,其参照上述非易失性半导体存储器和上述易失性半导体存储器上的数据的上述访问次数或者上述访问频率,进行上述数据的再配置。
15.(修改后)根据权利要求6所述的存储器管理装置,其中,上述非易失性半导体存储器包含第1区域和第2区域,上述第2区域与上述第1区域相比,能够存储多位的数据;
上述写入管理部参照上述着色信息,将根据上述数据特性而推测的上述数据寿命短的写入对象数据写入上述易失性半导体存储器,将根据上述数据特性而推测的上述数据寿命长且根据上述数据特性而推测的上述重要度高的写入对象数据写入上述非易失性半导体存储器的上述第1区域,将根据上述数据特性而推测的上述数据寿命长且根据上述数据特性而推测的上述重要度低的写入对象数据写入上述非易失性半导体存储器的上述第2区域。
16.(修改后)根据权利要求6所述的存储器管理装置,其中,
上述着色信息还包含对上述写入对象数据的访问次数;
上述非易失性半导体存储器包含第1区域和第2区域;
上述写入管理部参照根据对上述写入对象数据的上述访问次数而计算的上述访问频率,从上述第1区域和上述第2区域中决定写入上述写入对象数据的上述区域。
17.(修改后)根据权利要求1所述的存储器管理装置,其中,上述写入管理部根据上述着色信息和包含上述非易失性半导体存储器的每个预定区域的擦除次数的存储器使用信息,决定写入区域,以致由于损耗均衡而引起对上述非易失性半导体存储器的擦除处理的发生次数被抑制。
18.(修改后)一种信息处理装置,具备:
作为主存储器使用的非易失性半导体存储器及易失性半导体存储器;以及
存储器管理部,其根据来自上述处理器的写入请求及读出请求,控制对上述非易失性半导体存储器和上述易失性半导体存储器的写入及读出;
其中,上述存储器管理部包括:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;以及
写入管理部,其参照上述着色信息,从上述非易失性半导体存储器和上述易失性半导体存储器中决定写入上述写入对象数据的区域。
19.(修改后)根据权利要求18所述的信息处理装置,其中,上述着色信息包含:根据上述写入对象数据的上述数据特性而推测的访问频率、数据寿命和重要度中的至少一个。
20.(修改后)根据权利要求18所述的信息处理装置,其中,上述存储器管理部还具备:读出管理部,其在从上述非易失性半导体存储器中读出读出对象数据时,参照上述读出对象数据的上述着色信息,判断是否在上述易失性半导体存储器中缓存上述读出对象数据。
21.(修改后)根据权利要求18所述的信息处理装置,其中,上述着色信息还包含对上述写入对象数据的访问次数,上述访问次数通过上述处理器具备的计数器来计数。
22~57(删除)

Claims (57)

1.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出,具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;以及
写入管理部,其参照上述着色信息,从上述非易失性半导体存储器和上述易失性半导体存储器中决定写入上述写入对象数据的区域。
2.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的访问频率。
3.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的数据寿命。
4.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的重要度。
5.根据权利要求1所述的存储器管理装置,其中,上述着色信息进一步包含对上述写入对象数据的访问次数。
6.根据权利要求1所述的存储器管理装置,其中,上述着色信息包含根据上述写入对象数据的数据特性而推测的访问频率、数据寿命、重要度中的至少一个。
7.根据权利要求2所述的存储器管理装置,其中,
上述非易失性半导体存储器包含第1区域和第2区域;
上述写入管理部参照上述着色信息,将根据上述数据而推测的访问频率高的写入对象数据写入上述第1区域;
上述写入管理部参照上述着色信息,将根据上述数据而推测的访问频率低的写入对象数据写入上述第2区域。
8.根据权利要求1所述的存储器管理装置,还具备:读出管理部,其在从上述非易失性半导体存储器中读出读出对象数据时,参照上述读出对象数据的上述着色信息,判断是否将上述易失性半导体存储器作为高速缓冲存储器使用。
9.根据权利要求1所述的存储器管理装置,其中,上述非易失性半导体存储器是NAND型闪速存储器,上述易失性半导体存储器是DRAM。
10.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出,具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;以及
写入管理部,其参照上述着色信息,从上述非易失性半导体存储器和上述易失性半导体存储器中决定写入上述写入对象数据的区域;
其中,上述写入管理部将上述非易失性半导体存储器的至少一部分作为高速缓冲存储器使用,并根据上述着色信息,从上述易失性半导体存储器具备的多个区域中决定写入数据的区域。
11.根据权利要求10所述的存储器管理装置,其中,上述非易失性半导体存储器的上述多个区域包含高位区域和低位区域,其中高位区域比低位区域大。
12.根据权利要求11所述的存储器管理装置,其中,上述控制部根据上述着色信息,对上述高位区域配置访问频率高的数据,对上述低位区域配置访问频率低的数据。
13.根据权利要求11所述的存储器管理装置,其中,上述高位区域对于上述低位区域是能够扩展的。
14.根据权利要求11所述的存储器管理装置,其中,上述写入管理部在判断为在上述易失性半导体存储器的高位区域或者低位区域中没有空闲区域时,使配置在上述高位区域或者低位区域中的数据移动到上述非易失性半导体存储器中,在上述高位区域或者低位区域中确保空闲区域。
15.根据权利要求10所述的存储器管理装置,还具备:
第1数据结构,其在上述易失性半导体存储器中存储,与上述易失性半导体存储器的上述多个区域对应地分别设置,并由管理上述多个区域中空闲区域的多个管理信息构成;以及
第2数据结构,其存储在上述易失性半导体存储器中,当在上述易失性半导体存储器的上述多个区域的一个区域中存储数据时,基于与该区域对应地从上述第1数据结构中取得的上述管理信息,管理上述易失性半导体存储器的使用区域。
16.根据权利要求10所述的存储器管理装置,其中,当在上述易失性半导体存储器中存储数据时,当在对应的区域中没有空闲区域时,上述控制部将与在上述第2数据结构中管理的与该区域对应的至少一个管理信息中最前头的管理信息对应的数据转移到上述非易失性半导体存储器,确保空闲区域。
17.根据权利要求10所述的存储器管理装置,其中,上述多个区域中优先级高的区域能够向优先级低的区域扩展,上述易失性半导体存储器与各区域对应地管理扩展界限信息。
18.根据权利要求10所述的存储器管理装置,其中,上述第2数据结构至少用FIFO(先入先出)、LRU(最近最少使用)中的一个管理。
19.根据权利要求15所述的存储器管理装置,其中,上述各管理信息包含表示与该管理信息对应的数据是否被更新的标志信息。
20.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出,
在接收了与指定上述非易失性半导体存储器和上述易失性半导体存储器的至少一方的释放位置的逻辑地址有关的释放请求时,参照与上述所指定的逻辑地址及上述非易失性半导体存储器、上述易失性半导体存储器的物理地址相关联的地址变换信息,确认与有上述释放请求的逻辑地址对应的数据存在的物理地址,并当在上述第1存储器上有对应的数据时擦除该数据。
21.根据权利要求20所述的存储器管理装置,其中,在参照与上述所指定的逻辑地址及上述非易失性半导体存储器、上述易失性半导体存储器的物理地址相关联的地址变换信息时,参照上述地址变换信息中上述第2存储器上的有效/无效标志。
22.根据权利要求21所述的存储器管理装置,其中,在确认与有上述释放请求的逻辑地址对应的数据存在的物理地址时,当上述非易失性半导体存储器上及上述易失性半导体存储器上都有对应的数据时,上述易失性半导体存储器上的数据擦除,对上述非易失性半导体存储器上的数据不进行擦除操作而是附加表示成为擦除对象的标志。
23.根据权利要求20所述的存储器管理装置,其中,在从外部接收了上述混合主存储器的获得请求时,在数据读出操作及数据写入操作之前,根据基于数据的特性生成的该数据的着色信息,在上述非易失性半导体存储器、上述易失性半导体存储器上确保任意的物理地址的一部分。
24.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出,具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;以及
写入管理部,其参照上述着色信息,从上述非易失性半导体存储器和上述易失性半导体存储器中决定写入上述写入对象数据的区域;
其中,上述写入管理部基于针对上述写入对象数据的上述着色信息,判断上述写入对象数据属于多个组中的哪个组,并汇集属于上述各组的多个数据而形成写入单位的数据。
25.根据权利要求24所述的存储器管理装置,其中,上述写入管理部具备:
组值计算部,其计算表示在根据上述着色信息而决定的多个组中上述写入对象数据属于哪个组的组值;以及
预约信息管理部,其对上述易失性半导体存储器和上述非易失性半导体存储器的至少一方中的每个上述写入单位的物理地址区域形成,管理包含上述组值、上述物理地址区域中未使用的预约物理地址、上述物理地址区域的空闲区域大小的预约信息,检索上述组值与上述写入对象数据一致的预约信息,并将所检索的上述预约信息的上述预约物理地址决定为上述写入对象数据的物理地址。
26.根据权利要求25所述的存储器管理装置,其中,上述预约信息管理部在没有发现上述预约信息时,根据上述着色信息、上述存储器使用信息和上述存储器固有信息,决定上述写入单位的新的物理地址区域,并生成与上述新的物理地址区域对应的新的预约信息。
27.根据权利要求25所述的存储器管理装置,其中,上述预约信息管理部废弃上述空闲区域大小比任意尺寸小的预约信息。
28.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含具有存储二值数据的第1存储区域和存储多值数据的第2存储区域的非易失性半导体存储器及至少存储从上述非易失性半导体存储器中读出的数据的易失性半导体存储器的主存储器的写入及读出,具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;
第1存储部,其存储表示在上述易失性半导体存储器内被更新而在上述非易失性半导体存储器中未被更新的数据的第1标志数据;
第1检测部,其在信息处理装置关闭时,根据在上述第1存储部中存储的上述第1标志数据,检测应当从上述易失性半导体存储器向上述非易失性半导体存储器转移的数据;以及
第1转移部,其将由上述第1检测部检测的数据与上述着色信息无关地转移到上述非易失性半导体存储器的上述第2存储区域。
29.根据权利要求28所述的存储器管理装置,具备:
计算部,其计算由上述第1检测部检测的应当从上述易失性半导体存储器向上述非易失性半导体存储器转移的数据的大小;以及
第2转移部,其在由上述计算部计算的大小比上述第2存储区域的尺寸大时,根据上述第1存储部的上述着色信息,将上述易失性半导体存储器的数据转移到上述非易失性半导体存储器。
30.根据权利要求28的存储器管理装置,其中,上述着色信息保持部在存储有上述着色信息的各条目中包含表示是否是在信息处理装置启动时应当先读出的数据的第2标志数据;
上述存储器管理装置还具备:
第2检测部,其在启动时检测上述第2标志数据;以及
读出部,其在由上述第2检测部检测到应当先读出的数据时,读出该数据。
31.根据权利要求30所述的存储器管理装置,其中,上述第2标志数据在关闭时被设定在上述第1存储部的对应的条目中。
32.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含具有存储二值数据的第1存储区域和存储多值数据的第2存储区域的非易失性半导体存储器以及至少存储从上述非易失性半导体存储器中读出的数据的易失性半导体存储器的主存储器的写入及读出,具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;
其中,上述第1管理部中的上述着色信息的生成由操作系统进行。
33.根据权利要求32所述的存储器管理装置,其中,上述着色信息包含:推测上述写入对象数据被写入的频率而设定的值、推测上述数据被读出的频率而设定的值、推测上述数据被擦除的频率而设定的值、推测上述数据的重要性而设定的重要度中的至少一个。
34.根据权利要求32所述的存储器管理装置,其中,上述操作系统根据以下的至少一个,对上述写入对象数据生成上述着色信息:
(A)与上述写入对象数据对应的文件的扩展符或名称与上述着色信息的关系;
(B)与上述写入对象数据对应的文件的所配置的目录的名称与上述着色信息的关系;
(C)在与上述写入对象数据对应的文件的影子文件或者在配置有与上述写入对象数据对应的文件的目录中配置的影子文件中包含的上述着色信息;
(D)在与上述写入对象数据对应的文件的头中包含的上述着色信息;
(E)上述写入对象数据的所配置的虚拟地址区域的属性信息;
(F)上述写入对象数据被库使用的频率;
(G)由编译器计算的在上述写入对象数据中包含的变量的使用频率和函数的使用频率中的至少一方;
(H)上述写入对象数据的所配置的动态生成的存储器区域的使用频率;
(I)包含通过简档取得的上述写入对象数据的软件的性能信息。
35.根据权利要求32所述的存储器管理装置,其中,在与上述写入对象数据对应的文件或与上述写入对象数据对应的文件的所配置的目录中结合有元数据;
上述元数据包含上述着色信息;
上述操作系统根据上述元数据,对上述写入对象数据生成上述着色信息。
36.一种存储器管理装置,其根据来自处理器的写入请求及读出请求,控制对包含非易失性半导体存储器和易失性半导体存储器的主存储器的写入及读出,具备:
存储器使用信息管理部,其管理包含上述非易失性半导体存储器的每个预定区域的擦除次数的存储器使用信息;以及
通知部,其根据上述存储器使用信息,在上述非易失性半导体存储器的擦除次数达到对应非易失性半导体存储器的可擦除上限次数之前,向上述非易失性半导体存储器通知告警。
37.根据权利要求36所述的存储器管理装置,其中,上述通知部根据上述存储器使用信息,预测预定时间后的擦除次数,并在所预测的上述预定时间后的擦除次数超过上述可擦除上限次数时,向上述非易失性半导体存储器通知告警。
38.根据权利要求36所述的存储器管理装置,还具备:更换控制部,其在上述非易失性半导体存储器变成非电气连接状态之前,对上述非易失性半导体存储器写入对应非易失性半导体存储器的每个预定区域的擦除次数。
39.根据权利要求36所述的存储器管理装置,其中,在对上述非易失性半导体存储器中一个上述非易失性半导体存储器通知了告警后,将在对应非易失性半导体存储器中存储的数据写入其它上述非易失性半导体存储器中。
40.根据权利要求36所述的存储器管理装置,还具备:
着色信息保持部,其保持基于在上述非易失性半导体存储器和上述易失性半导体存储器的至少一方中写入的写入对象数据的数据特性而生成的着色信息;
其中,对于多个上述非易失性半导体存储器中预定的上述非易失性半导体存储器,写入写入频率或读出频率高的数据。
41.一种存储器管理装置,具备:
第1存储部,其存储基于在非易失性半导体存储器的SLC区域和MLC区域的至少一方中存储的各数据的特性而生成的成为决定对应各数据的配置区域的提示的着色信息;
第2存储部,其存储表示针对在上述非易失性半导体存储器中包含的存储器区域的存储器固有的特性的存储器固有信息;
第3存储部,其存储表示针对上述存储器区域的使用状态的存储器使用信息;
第1管理部,其生成针对上述非易失性半导体存储器的写入对象数据的上述着色信息;
第2管理部,其在发生了对上述非易失性半导体存储器的访问时,更新针对所访问的存储器区域的上述存储器使用信息;
第3管理部,其根据上述着色信息、上述存储器使用信息和上述存储器固有信息,对于写入对象数据,从上述存储器区域中决定写入区域;
切换判断部,其根据上述存储器使用信息和上述存储器固有信息,对于上述存储器区域,判断是否进行SLC和MLC的切换;以及
切换控制部,其对于由上述切换判断部判断为进行切换的存储器区域,在SLC和MLC之间进行切换。
42.根据权利要求41所述的存储器管理装置,其中,
上述存储器使用信息包含针对上述各存储器区域的写入次数、擦除次数、读出次数中的至少一个;
上述存储器固有信息包含针对上述各存储器区域的可写入上限次数、可擦除上限次数、可读出上限次数中的至少一个;
上述存储器管理装置还具备:消耗率计算部,其对于上述各存储器区域,计算写入次数相对上述可写入上限次数的比例、擦除次数相对上述可擦除上限次数的比例、读出次数相对上述可读出上限次数的比例中的至少一个;
其中,上述切换判断部对于由上述消耗率计算部计算的比例超过了所设定的阈值的存储器区域,判断为进行SLC和MLC的切换。
43.根据权利要求41所述的存储器管理装置,其中,
在上述SLC区域中写入访问频率高的数据;
在上述MLC区域中写入访问频率低的数据;
上述切换控制部在将上述SLC区域中的任意一个存储器区域切换成MLC时,将上述MLC区域中的任意一个存储器区域切换成SLC。
44.根据权利要求41所述的存储器管理装置,其中,上述切换控制部当在SLC和MLC的切换对象区域中存储有数据时,参照上述着色信息,将上述切换对象区域的数据中访问频率高的数据移动到其它SLC区域中,将上述切换对象区域的数据中访问频率低的数据移动到其它MLC区域中。
45.一种存储器管理装置,具备:
第1存储部,其存储基于在处理器的处理器逻辑地址空间所包含的被映射了比上述处理器逻辑地址空间大的处理器物理地址空间的一部分的存储器窗口中配置的各数据的特性而生成的、成为决定对应各数据的配置区域的提示的着色信息;
第1管理部,其生成针对上述各数据的上述着色信息;
第2管理部,其根据上述着色信息,对于从上述存储器窗口中写入上述处理器物理地址空间的数据,从上述处理器物理地址空间中决定写入区域;以及
第3管理部,其在第2存储部中存储将上述各数据的处理器逻辑地址与处理器物理地址相关联的地址变换信息。
46.根据权利要求45的存储器管理装置,其中,
上述第3管理部在配置在上述处理器窗口中的数据由上述处理器从上述处理器物理地址空间的第1存储器区域数据变更为第2存储器区域的数据时,更新上述地址变换信息。
47.根据权利要求45所述的存储器管理装置,其中,
由上述处理器执行多个进程;
对于上述多个进程的各个,使用上述多个存储器窗口;
上述第1管理部生成针对在上述多个处理器窗口中配置的上述各数据的上述着色信息;
上述第2管理部决定针对在上述多个存储器窗口中配置的上述各数据的上述处理器物理地址空间的写入区域;
上述第3管理部管理将在上述多个存储器窗口中配置的上述各数据的上述处理器逻辑地址与上述处理器物理地址相关联的地址变换信息。
48.根据权利要求45所述的存储器管理装置,还具备:
第3存储部,其存储表示针对上述处理器物理地址空间的各存储器区域的存储器固有的特性的存储器固有信息;
第4存储部,其存储表示针对在上述处理器物理地址空间中包含的各存储器区域的使用状态的存储器使用信息;以及
第4管理部,其在发生了对上述处理器物理地址空间的访问时,更新针对所访问的上述处理器物理地址空间的存储器区域的上述存储器使用信息;
其中,上述第2配置部根据上述着色信息、上述存储器使用信息和上述存储器固有信息,对于从上述存储器窗口中写入上述处理器物理地址空间的上述数据,决定针对上述处理器物理地址空间的上述写入区域。
49.一种信息处理装置,具备:
存储部,其存储将基于在第1半导体存储器和比上述第1半导体存储器的可访问上限次数小的非易失性的第2半导体存储器的至少一方中存储的数据的特性而生成的成为决定对应数据的配置区域的提示的着色信息与数据识别信息相关联的简档信息;
接收部,其从访问上述第1半导体存储器和上述第2半导体存储器的装置中接收包含上述数据识别信息的下载请求;
管理部,其在接收了上述下载请求时,根据在上述下载请求中包含的数据识别信息,从上述存储部中读出上述简档信息;以及
发送部,其将上述所读出的简档信息发送到上述下载请求的发送源的上述装置。
50.根据权利要求49所述的信息处理装置,其中,
上述接收部还接收上述简档信息;
上述管理部在接收了上述简档信息时,将上述简档信息存储在上述存储部中。
51.根据权利要求49所述的信息处理装置,其中,上述着色信息包含:推测上述数据被写入的频率而设定的值、推测上述数据被读出的频率而设定的值、推测上述数据被擦除的频率而设定的值、推测上述数据的重要性而设定的重要度中的至少一个。
52.根据权利要求49所述的信息处理装置,其中,上述简档信息包含:表示针对上述数据的每单位时间的写入次数的动态写入频率、表示针对上述数据的每单位时间的读出次数的动态读出频率、表示针对上述数据的每单位时间的擦除次数的动态擦除频率中的至少一个。
53.一种存储器管理装置,具备:
第1存储部,其存储基于在第1半导体存储器和比上述第1半导体存储器的可访问上限次数小的非易失性的第2半导体存储器的至少一方中存储的各数据的特性而生成的、成为决定对应各数据的配置区域的提示的着色信息;
第2存储部,其存储表示针对上述第1半导体存储器和上述第2半导体存储器的各个的存储器固有的特性的存储器固有信息;
第3存储部,其存储表示针对在上述第1半导体存储器和上述第2半导体存储器中包含的各存储器区域的使用状态的存储器使用信息;
网络地址变换部,其将从处理器中发布的处理器逻辑地址变换为比对应处理器逻辑地址长的特别指定网络系统上的存储器区域的网络逻辑地址;
第1管理部,其生成对针对上述第1半导体存储器和上述第2半导体存储器的至少一方的写入对象数据的上述着色信息;
第2管理部,其在发生了对上述第1半导体存储器和上述第2半导体存储器中的至少一方的访问时,更新针对所访问的存储器区域的上述存储器使用信息;
第3管理部,其根据上述着色信息、上述存储器使用信息和上述存储器固有信息,对于上述写入对象数据,从上述第1半导体存储器和上述第2半导体存储器的存储器区域中决定写入区域;
第4管理部,其在第4存储部中存储将上述写入对象数据的上述网络逻辑地址与上述写入区域的物理地址相关联的地址变换信息;以及
第5管理部,其根据读出对象数据的上述网络逻辑地址和上述地址变换信息,从上述第1半导体存储器和上述第2半导体存储器中的任意一个中读出上述读出对象数据。
54.根据权利要求53所述的存储器管理装置,还具备:通信部,其将上述网络逻辑地址经由上述网络对其它装置发送及接收。
55.根据权利要求53所述的存储器管理装置,其中,
上述存储器固有信息表示针对上述网络系统上的上述第1半导体存储器和上述第2半导体存储器的各个的存储器固有的特性;
上述第1管理部管理上述网络系统上的各数据的上述着色信息;
上述第2管理部管理针对上述网络系统上的上述第1半导体存储器和上述第2半导体存储器的各存储器区域的上述存储器使用信息。
56.根据权利要求53所述的存储器管理装置,其中,
上述处理器逻辑地址具备:成为地址长度的变换关键字的第1处理器地址部,以及与上述网络逻辑地址的一部分相同的第2处理器地址部;
上述网络逻辑地址具备:根据上述变换关键字而变换的位数比上述变换关键字大的第1网络地址部,以及与上述第2处理器地址相同的第2网络地址部;
上述网络地址变换部参照将上述第1处理器地址部与上述第1网络地址部相关联的地址长度变换表,组合上述第1网络地址部和上述第2处理器地址部,生成上述网络逻辑地址。
57.根据权利要求53所述的存储器管理装置,其中,在上述地址长度变换表的各条目中,附加有表示有效或无效的标志。
CN201080031863.5A 2009-07-17 2010-03-08 存储器管理装置 Active CN102473140B (zh)

Applications Claiming Priority (23)

Application Number Priority Date Filing Date Title
JP169371/2009 2009-07-17
JP2009169371A JP2011022933A (ja) 2009-07-17 2009-07-17 メモリ管理装置を含む情報処理装置及びメモリ管理方法
JP048338/2010 2010-03-04
JP2010048331A JP2011186555A (ja) 2010-03-04 2010-03-04 メモリ管理装置及び方法
JP2010048329A JP2011186554A (ja) 2010-03-04 2010-03-04 メモリ管理装置及び方法
JP2010048334A JP2011186558A (ja) 2010-03-04 2010-03-04 メモリ管理装置及び方法
JP2010048332A JP5322978B2 (ja) 2010-03-04 2010-03-04 情報処理装置及び方法
JP048331/2010 2010-03-04
JP2010048335A JP2011186559A (ja) 2010-03-04 2010-03-04 メモリ管理装置
JP048334/2010 2010-03-04
JP2010048337A JP2011186561A (ja) 2010-03-04 2010-03-04 メモリ管理装置
JP2010048339A JP2011186563A (ja) 2010-03-04 2010-03-04 メモリ管理装置およびメモリ管理方法
JP048329/2010 2010-03-04
JP048333/2010 2010-03-04
JP048328/2010 2010-03-04
JP2010048328A JP2011186553A (ja) 2010-03-04 2010-03-04 メモリ管理装置
JP048337/2010 2010-03-04
JP048335/2010 2010-03-04
JP2010048338A JP2011186562A (ja) 2010-03-04 2010-03-04 メモリ管理装置及び方法
JP2010048333A JP2011186557A (ja) 2010-03-04 2010-03-04 メモリ管理装置及び方法
JP048332/2010 2010-03-04
JP048339/2010 2010-03-04
PCT/JP2010/053817 WO2011007599A1 (ja) 2009-07-17 2010-03-08 メモリ管理装置

Publications (2)

Publication Number Publication Date
CN102473140A true CN102473140A (zh) 2012-05-23
CN102473140B CN102473140B (zh) 2015-05-13

Family

ID=43449209

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080031863.5A Active CN102473140B (zh) 2009-07-17 2010-03-08 存储器管理装置

Country Status (6)

Country Link
US (2) US20120191900A1 (zh)
EP (1) EP2455865B1 (zh)
KR (1) KR20120068765A (zh)
CN (1) CN102473140B (zh)
TW (1) TWI460588B (zh)
WO (1) WO2011007599A1 (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678143A (zh) * 2012-09-25 2014-03-26 联想(北京)有限公司 文件存储方法、装置及电子设备
CN103902462A (zh) * 2012-12-27 2014-07-02 华为技术有限公司 内存管理方法、内存管理装置及计算机
CN104123264A (zh) * 2014-08-01 2014-10-29 浪潮(北京)电子信息产业有限公司 一种基于异构融合架构的缓存管理方法及装置
CN104216837A (zh) * 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
CN104487953A (zh) * 2012-07-18 2015-04-01 美光科技公司 用于层次型存储器系统的存储器管理
CN104662519A (zh) * 2012-09-28 2015-05-27 英特尔公司 在非易失性存储器中缓存代码的方法、系统和设备
CN104813270A (zh) * 2012-12-04 2015-07-29 苹果公司 从主机至存储设备的对所删除的数据的提示
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
CN106325764A (zh) * 2015-07-08 2017-01-11 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
CN106991019A (zh) * 2015-12-18 2017-07-28 京瓷办公信息系统株式会社 电子设备及存储器寿命警报方法
CN107168654A (zh) * 2017-05-26 2017-09-15 华中科技大学 一种基于数据对象热度的异构内存分配方法及系统
CN107291381A (zh) * 2017-05-18 2017-10-24 记忆科技(深圳)有限公司 一种固态硬盘动态加速区的实现方法及固态硬盘
CN107506137A (zh) * 2017-08-11 2017-12-22 记忆科技(深圳)有限公司 一种提升固态硬盘写性能的方法
CN107562367A (zh) * 2016-07-01 2018-01-09 阿里巴巴集团控股有限公司 基于软件化存储系统读写数据的方法以及装置
CN107710140A (zh) * 2015-11-27 2018-02-16 株式会社日立制作所 存储系统
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
CN109684237A (zh) * 2018-11-20 2019-04-26 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN110825662A (zh) * 2019-11-04 2020-02-21 深圳芯邦科技股份有限公司 一种数据更新方法、系统及相关装置
CN111078599A (zh) * 2018-10-19 2020-04-28 三星电子株式会社 半导体器件
CN111352855A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 具有提高的映射更新速度的存储装置及其操作方法
CN111758091A (zh) * 2017-08-30 2020-10-09 美光科技公司 单电平单元高速缓存管理
CN112214424A (zh) * 2015-01-20 2021-01-12 乌尔特拉塔有限责任公司 对象存储器结构、处理节点、存储器对象存储和管理方法
WO2021196956A1 (zh) * 2020-03-30 2021-10-07 华为技术有限公司 一种固态硬盘管理方法及固态硬盘
CN113811847A (zh) * 2019-05-13 2021-12-17 美光科技公司 来自主机系统的写入命令的部分执行
CN114270324A (zh) * 2019-08-22 2022-04-01 美光科技公司 层次型存储器系统
CN114341817A (zh) * 2019-08-22 2022-04-12 美光科技公司 分层存储器系统

Families Citing this family (255)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5423879B2 (ja) * 2010-03-29 2014-02-19 日本電気株式会社 データアクセス場所選択システム、方法およびプログラム
WO2011125168A1 (ja) * 2010-04-05 2011-10-13 トヨタ自動車株式会社 車両の衝突判定装置
JP2012033047A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
JP2012033001A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
TWI490690B (zh) * 2011-04-20 2015-07-01 Taejin Infotech Co Ltd 用於半導體儲存裝置的raid控制器
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
WO2013048467A1 (en) 2011-09-30 2013-04-04 Intel Corporation Generation of far memory access signals based on usage statistic tracking
EP3382556A1 (en) 2011-09-30 2018-10-03 INTEL Corporation Memory channel that supports near memory and far memory access
EP3712774B1 (en) 2011-09-30 2023-02-15 Tahoe Research, Ltd. Apparatus and method for implementing a multi-level memory hierarchy
CN103946713B (zh) * 2011-09-30 2016-04-13 惠普发展公司,有限责任合伙企业 认证系统及方法
WO2013048503A1 (en) 2011-09-30 2013-04-04 Intel Corporation Apparatus and method for implementing a multi-level memory hierarchy having different operating modes
CN103946826B (zh) 2011-09-30 2019-05-31 英特尔公司 用于在公共存储器通道上实现多级存储器层级的设备和方法
BR112014009915B1 (pt) * 2011-10-26 2021-06-15 Hewlett-Packard Development Company, L.P. Método para alocação de memória, dispositivo e meio de armazenamento não transitório legível por máquina
JP2014530422A (ja) * 2011-10-27 2014-11-17 ▲ホア▼▲ウェイ▼技術有限公司 バッファマッピングを制御するための方法およびバッファシステム
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US9367439B2 (en) * 2012-04-30 2016-06-14 Oracle International Corporation Physical memory usage prediction
US10055477B2 (en) * 2012-06-26 2018-08-21 Toshiba Mitsubishi-Electric Industrial Systems Corporation Data collection apparatus and data collection program
TWI454913B (zh) * 2012-06-26 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US10037271B1 (en) * 2012-06-27 2018-07-31 Teradata Us, Inc. Data-temperature-based control of buffer cache memory in a database system
KR101975406B1 (ko) 2012-07-11 2019-05-07 삼성전자주식회사 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
KR101975528B1 (ko) 2012-07-17 2019-05-07 삼성전자주식회사 패스트 어레이 영역을 갖는 반도체 메모리 셀 어레이 및 그것을 포함하는 반도체 메모리
JP5788369B2 (ja) * 2012-09-12 2015-09-30 株式会社東芝 メモリシステム、コンピュータシステム、およびメモリ管理方法
US20140101370A1 (en) * 2012-10-08 2014-04-10 HGST Netherlands B.V. Apparatus and method for low power low latency high capacity storage class memory
TW201417102A (zh) 2012-10-23 2014-05-01 Ind Tech Res Inst 電阻式記憶體裝置
KR102011135B1 (ko) * 2012-12-11 2019-08-14 삼성전자주식회사 모바일 장치 및 그것의 스왑을 통한 데이터 관리 방법
US9235528B2 (en) * 2012-12-21 2016-01-12 Advanced Micro Devices, Inc. Write endurance management techniques in the logic layer of a stacked memory
US9620181B2 (en) * 2013-01-31 2017-04-11 Hewlett Packard Enterprise Development Lp Adaptive granularity row-buffer cache
TWI511035B (zh) * 2013-03-08 2015-12-01 Acer Inc 動態調整快取層級方法
US8943266B2 (en) 2013-03-13 2015-01-27 Hitachi, Ltd. Storage system and method of control for storage system
JP2014206967A (ja) * 2013-03-18 2014-10-30 株式会社Genusion 記憶装置
CN104063182B (zh) * 2013-03-20 2017-04-12 宏碁股份有限公司 动态调整快取层级方法
US9804972B2 (en) 2013-03-28 2017-10-31 Hewlett-Packard Enterprise Development LP Regulating memory activation rates
WO2014178839A1 (en) 2013-04-30 2014-11-06 Hewlett-Packard Development Company, L.P. Memory access rate
US9479466B1 (en) * 2013-05-23 2016-10-25 Kabam, Inc. System and method for generating virtual space messages based on information in a users contact list
US20160170873A1 (en) * 2013-07-18 2016-06-16 Hitachi, Ltd. Information processing device
US9898410B2 (en) * 2013-09-10 2018-02-20 Intel Corporation Hybrid main memory using a fine-grain level of remapping
US10013344B2 (en) 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
JP5950470B2 (ja) * 2014-03-24 2016-07-13 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. バッファマッピングを制御するための方法およびバッファシステム
KR102289919B1 (ko) * 2014-04-15 2021-08-12 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치, 스토리지 시스템 및 상기 스토리지 컨트롤러의 동작 방법
CN105094686B (zh) 2014-05-09 2018-04-10 华为技术有限公司 数据缓存方法、缓存和计算机系统
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9817750B2 (en) * 2014-07-03 2017-11-14 Pure Storage, Inc. Profile-dependent write placement of data into a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US10061515B2 (en) * 2014-09-11 2018-08-28 Toshiba Memory Corporation Information processing apparatus and memory system
CN104252419B (zh) 2014-09-16 2017-09-19 华为技术有限公司 一种内存分配的方法及装置
CN105573831B (zh) * 2014-10-13 2019-11-26 龙芯中科技术有限公司 数据转移方法和装置
US9542122B2 (en) * 2014-10-23 2017-01-10 Seagate Technology Llc Logical block addresses used for executing host commands
WO2016088234A1 (ja) 2014-12-04 2016-06-09 株式会社 東芝 異なる特性の不揮発性半導体メモリの寿命を長くするストレージ装置
JP6107802B2 (ja) * 2014-12-15 2017-04-05 コニカミノルタ株式会社 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム
KR102295208B1 (ko) 2014-12-19 2021-09-01 삼성전자주식회사 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법
US10255182B2 (en) 2015-02-11 2019-04-09 Samsung Electronics Co., Ltd. Computing apparatus and method for cache management
WO2016135955A1 (ja) * 2015-02-27 2016-09-01 株式会社日立製作所 不揮発性メモリデバイス
US9870836B2 (en) 2015-03-10 2018-01-16 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US10503445B2 (en) * 2015-03-23 2019-12-10 Netapp, Inc. Data structure store and data management
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10275320B2 (en) 2015-06-26 2019-04-30 Commvault Systems, Inc. Incrementally accumulating in-process performance data and hierarchical reporting thereof for a data stream in a secondary copy operation
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10656838B2 (en) 2015-07-13 2020-05-19 Samsung Electronics Co., Ltd. Automatic stream detection and assignment algorithm
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10509770B2 (en) 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
JP6403162B2 (ja) * 2015-07-23 2018-10-10 東芝メモリ株式会社 メモリシステム
US10108503B2 (en) * 2015-08-24 2018-10-23 Western Digital Technologies, Inc. Methods and systems for updating a recovery sequence map
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
JP6538496B2 (ja) * 2015-09-11 2019-07-03 東芝メモリ株式会社 メモリシステム
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US9940028B2 (en) * 2015-11-13 2018-04-10 Samsung Electronics Co., Ltd Multimode storage device
WO2017095911A1 (en) * 2015-12-01 2017-06-08 Huang Yiren Ronnie Method and apparatus for logically removing defective pages in non-volatile memory storage device
JP2017107321A (ja) * 2015-12-08 2017-06-15 京セラドキュメントソリューションズ株式会社 電子機器およびデータアクセス制御プログラム
TWI720086B (zh) * 2015-12-10 2021-03-01 美商艾斯卡瓦公司 儲存在區塊處理儲存系統上的音頻資料和資料的縮減
JP6115740B1 (ja) * 2015-12-17 2017-04-19 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
GB2546731B (en) * 2016-01-20 2019-02-20 Advanced Risc Mach Ltd Recording set indicator
US10296264B2 (en) 2016-02-09 2019-05-21 Samsung Electronics Co., Ltd. Automatic I/O stream selection for storage devices
KR102652293B1 (ko) * 2016-03-03 2024-03-29 에스케이하이닉스 주식회사 메모리 관리방법
JP6320439B2 (ja) 2016-03-10 2018-05-09 株式会社東芝 メモリ制御装置、ストレージ装置、ストレージ装置の制御プログラム、及び、ストレージ装置の制御方法
US10592171B2 (en) 2016-03-16 2020-03-17 Samsung Electronics Co., Ltd. Multi-stream SSD QoS management
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US10866905B2 (en) 2016-05-25 2020-12-15 Samsung Electronics Co., Ltd. Access parameter based multi-stream storage device access
KR101754348B1 (ko) * 2016-06-17 2017-07-06 고려대학교 산학협력단 정보 저장 테이블을 관리하는 분석 시스템 및 그의 제어 방법
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
JP2018049385A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリシステムおよびプロセッサシステム
US10460781B2 (en) 2016-09-27 2019-10-29 Spin Memory, Inc. Memory device with a dual Y-multiplexer structure for performing two simultaneous operations on the same row of a memory bank
US10437491B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of processing incomplete memory operations in a memory device during a power up sequence and a power down sequence using a dynamic redundancy register
US10360964B2 (en) 2016-09-27 2019-07-23 Spin Memory, Inc. Method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10546625B2 (en) 2016-09-27 2020-01-28 Spin Memory, Inc. Method of optimizing write voltage based on error buffer occupancy
US10446210B2 (en) 2016-09-27 2019-10-15 Spin Memory, Inc. Memory instruction pipeline with a pre-read stage for a write operation for reducing power consumption in a memory device that uses dynamic redundancy registers
US10437723B2 (en) 2016-09-27 2019-10-08 Spin Memory, Inc. Method of flushing the contents of a dynamic redundancy register to a secure storage area during a power down in a memory device
US10628316B2 (en) 2016-09-27 2020-04-21 Spin Memory, Inc. Memory device with a plurality of memory banks where each memory bank is associated with a corresponding memory instruction pipeline and a dynamic redundancy register
US10366774B2 (en) 2016-09-27 2019-07-30 Spin Memory, Inc. Device with dynamic redundancy registers
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10216417B2 (en) 2016-10-26 2019-02-26 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
TWI596541B (zh) * 2016-11-30 2017-08-21 財團法人工業技術研究院 資料存取系統、資料存取裝置及資料存取方法
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
JP6880769B2 (ja) * 2017-01-24 2021-06-02 富士通株式会社 情報処理装置,制御プログラムおよび情報処理方法
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
WO2018154669A1 (ja) 2017-02-23 2018-08-30 株式会社日立製作所 ストレージシステム
US20180261281A1 (en) * 2017-03-10 2018-09-13 Micron Technology, Inc. Methods for mitigating power loss events during operation of memory devices and memory devices employing the same
TWI658405B (zh) * 2017-03-17 2019-05-01 合肥兆芯電子有限公司 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
JP6890238B2 (ja) * 2017-04-07 2021-06-18 パナソニックIpマネジメント株式会社 使用回数を増大させた不揮発性メモリ
US10698808B2 (en) 2017-04-25 2020-06-30 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
US11048624B2 (en) 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US20180321855A1 (en) 2017-05-03 2018-11-08 Samsung Electronics Co., Ltd. Multistreaming in heterogeneous environments
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
CN107203477A (zh) * 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
JP7030463B2 (ja) 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム
US10866899B2 (en) * 2017-10-02 2020-12-15 Arm Ltd Method and apparatus for control of a tiered memory system
US10901907B2 (en) 2017-10-19 2021-01-26 Samsung Electronics Co., Ltd. System and method for identifying hot data and stream in a solid-state drive
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
JP6805110B2 (ja) * 2017-11-06 2020-12-23 株式会社日立製作所 ストレージシステム及びその制御方法
JP7010667B2 (ja) * 2017-11-06 2022-01-26 キオクシア株式会社 メモリシステムおよび制御方法
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
TWI647567B (zh) * 2017-12-13 2019-01-11 國立中正大學 使用記憶體位址定位冷熱存取區間之方法
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
WO2019133233A1 (en) * 2017-12-27 2019-07-04 Spin Transfer Technologies, Inc. A method of writing contents in memory during a power up sequence using a dynamic redundancy register in a memory device
US10831591B2 (en) 2018-01-11 2020-11-10 Commvault Systems, Inc. Remedial action based on maintaining process awareness in data storage management
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US11449256B2 (en) 2018-05-15 2022-09-20 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates
US10949087B2 (en) 2018-05-15 2021-03-16 Samsung Electronics Co., Ltd. Method for rapid reference object storage format for chroma subsampled images
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
JP2020035128A (ja) * 2018-08-29 2020-03-05 キオクシア株式会社 メモリシステム
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
CN111078128B (zh) * 2018-10-22 2023-05-16 浙江宇视科技有限公司 数据管理方法、装置及固态硬盘
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11231873B2 (en) * 2018-12-07 2022-01-25 Intel Corporation Apparatus and method for assigning velocities to write data
JP7305340B2 (ja) * 2018-12-11 2023-07-10 キヤノン株式会社 情報処理装置
US20200192572A1 (en) 2018-12-14 2020-06-18 Commvault Systems, Inc. Disk usage growth prediction system
US11010114B2 (en) * 2018-12-31 2021-05-18 Kyocera Document Solutions Inc. Read/write direction-based memory bank control for imaging
JP7219397B2 (ja) * 2019-01-18 2023-02-08 富士通株式会社 情報処理装置、記憶制御装置および記憶制御プログラム
US11194473B1 (en) * 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US10720217B1 (en) * 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use
DE102019102861A1 (de) 2019-02-05 2020-08-06 Hyperstone Gmbh Verfahren und Vorrichtung zur Abschätzung der Abnutzung eines nicht-flüchtigen Informationsspeichers
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11074177B2 (en) * 2019-06-19 2021-07-27 Micron Technology, Inc. Garbage collection adapted to host write activity
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11327665B2 (en) * 2019-09-20 2022-05-10 International Business Machines Corporation Managing data on volumes
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
DE102020123220A1 (de) * 2020-09-04 2022-03-10 Harman Becker Automotive Systems Gmbh Speichersystem, Verfahren zum Betrieb desselben
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US20210216452A1 (en) * 2021-03-27 2021-07-15 Intel Corporation Two-level main memory hierarchy management
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
KR20220138759A (ko) * 2021-04-06 2022-10-13 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US20210232313A1 (en) * 2021-04-15 2021-07-29 Intel Corporation User configurable slc memory size
US20220391131A1 (en) * 2021-06-04 2022-12-08 Fujitsu Limited Computer-readable recording medium, information processing device control method and information processing device
US11755237B2 (en) * 2021-08-31 2023-09-12 Micron Technology, Inc. Overwriting at a memory system
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus
EP4300319A4 (en) * 2022-05-18 2024-02-28 Changxin Memory Tech Inc HOT PLUGGING METHOD AND APPARATUS FOR MEMORY MODULE, AND MEMORY MODULE
US20240070072A1 (en) * 2022-08-26 2024-02-29 Micron Technology, Inc. Telemetry-capable memory sub-system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737742A (en) * 1994-06-29 1998-04-07 Hitachi, Ltd. Memory system using flash memory and method of controlling the memory system
JPH11353219A (ja) * 1998-06-08 1999-12-24 Matsushita Graphic Communication Systems Inc データ格納装置
CN1311509A (zh) * 2000-03-03 2001-09-05 株式会社日立制作所 高可靠性存储驱动器以及数据写入方法
CN1751508A (zh) * 2003-10-20 2006-03-22 松下电器产业株式会社 多媒体数据记录装置、监视系统、以及多媒体数据记录方法
CN1828560A (zh) * 2005-03-01 2006-09-06 三菱电机株式会社 车载电子控制装置
US20070285980A1 (en) * 2006-05-10 2007-12-13 Takahiro Shimizu Semiconductor memory device
CN101208753A (zh) * 2005-03-14 2008-06-25 晟碟以色列有限公司 使用相对等级来实现闪存中的磨损均衡的方法
CN101521039A (zh) * 2008-02-29 2009-09-02 群联电子股份有限公司 数据储存系统、控制器及方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07146820A (ja) 1993-04-08 1995-06-06 Hitachi Ltd フラッシュメモリの制御方法及び、それを用いた情報処理装置
US7932911B2 (en) * 1998-08-24 2011-04-26 Microunity Systems Engineering, Inc. Processor for executing switch and translate instructions requiring wide operands
US6571323B2 (en) * 1999-03-05 2003-05-27 Via Technologies, Inc. Memory-access management method and system for synchronous dynamic Random-Access memory or the like
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
KR100383774B1 (ko) 2000-01-26 2003-05-12 삼성전자주식회사 공통 인터페이스 방식의 메모리 장치들을 구비한 시스템
JP4869466B2 (ja) * 2000-02-24 2012-02-08 富士通セミコンダクター株式会社 記憶装置の制御方法、データ管理システム、記録媒体、及び記憶装置
US6807106B2 (en) * 2001-12-14 2004-10-19 Sandisk Corporation Hybrid density memory card
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7020762B2 (en) * 2002-12-24 2006-03-28 Intel Corporation Method and apparatus for determining a dynamic random access memory page management implementation
US7174437B2 (en) * 2003-10-16 2007-02-06 Silicon Graphics, Inc. Memory access management in a shared memory multi-processor system
US7032087B1 (en) * 2003-10-28 2006-04-18 Sandisk Corporation Erase count differential table within a non-volatile memory system
US20050132128A1 (en) * 2003-12-15 2005-06-16 Jin-Yub Lee Flash memory device and flash memory system including buffer memory
US20050160188A1 (en) * 2004-01-20 2005-07-21 Zohar Bogin Method and apparatus to manage memory access requests
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
TWI253564B (en) * 2004-06-29 2006-04-21 Integrated Circuit Solution In Method of efficient data management with flash storage system
US8452929B2 (en) * 2005-04-21 2013-05-28 Violin Memory Inc. Method and system for storage of data in non-volatile media
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
US7519792B2 (en) * 2006-02-21 2009-04-14 Intel Corporation Memory region access management
US20090132621A1 (en) * 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
JP4839164B2 (ja) * 2006-09-15 2011-12-21 株式会社日立製作所 ハードウェアモニタを用いた性能評価システム及び再構築可能な計算機システム
KR100791325B1 (ko) * 2006-10-27 2008-01-03 삼성전자주식회사 비휘발성 메모리를 관리하는 장치 및 방법
US7568068B2 (en) * 2006-11-13 2009-07-28 Hitachi Global Storage Technologies Netherlands B. V. Disk drive with cache having volatile and nonvolatile memory
US8122220B1 (en) * 2006-12-20 2012-02-21 Marvell International Ltd. Memory usage in imaging devices
JP5032172B2 (ja) 2007-03-28 2012-09-26 株式会社東芝 統合メモリ管理装置及び方法並びにデータ処理システム
US8135900B2 (en) 2007-03-28 2012-03-13 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US20090043831A1 (en) * 2007-08-11 2009-02-12 Mcm Portfolio Llc Smart Solid State Drive And Method For Handling Critical Files
KR101498673B1 (ko) * 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
JP2009087509A (ja) * 2007-10-03 2009-04-23 Toshiba Corp 半導体記憶装置
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US20090144545A1 (en) * 2007-11-29 2009-06-04 International Business Machines Corporation Computer system security using file system access pattern heuristics
TWI416524B (zh) * 2008-06-25 2013-11-21 Silicon Motion Inc 記憶體裝置和資料儲存方法
US8135907B2 (en) * 2008-06-30 2012-03-13 Oracle America, Inc. Method and system for managing wear-level aware file systems
US8082386B2 (en) * 2008-10-21 2011-12-20 Skymedi Corporation Method of performing wear leveling with variable threshold
US8283933B2 (en) 2009-03-13 2012-10-09 Qualcomm, Incorporated Systems and methods for built in self test jitter measurement
US8166232B2 (en) * 2009-04-02 2012-04-24 Hitachi, Ltd. Metrics and management for flash memory storage life
US8214621B2 (en) * 2009-04-29 2012-07-03 Microsoft Corporation Storage optimization across media with differing capabilities
US8327076B2 (en) * 2009-05-13 2012-12-04 Seagate Technology Llc Systems and methods of tiered caching
US8151137B2 (en) * 2009-05-28 2012-04-03 Lsi Corporation Systems and methods for governing the life cycle of a solid state drive
JP2012033047A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置、メモリ管理装置、メモリ管理方法、及びプログラム
JP2012033001A (ja) 2010-07-30 2012-02-16 Toshiba Corp 情報処理装置および情報処理方法
JP2012033002A (ja) 2010-07-30 2012-02-16 Toshiba Corp メモリ管理装置およびメモリ管理方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737742A (en) * 1994-06-29 1998-04-07 Hitachi, Ltd. Memory system using flash memory and method of controlling the memory system
JPH11353219A (ja) * 1998-06-08 1999-12-24 Matsushita Graphic Communication Systems Inc データ格納装置
CN1311509A (zh) * 2000-03-03 2001-09-05 株式会社日立制作所 高可靠性存储驱动器以及数据写入方法
CN1751508A (zh) * 2003-10-20 2006-03-22 松下电器产业株式会社 多媒体数据记录装置、监视系统、以及多媒体数据记录方法
CN1828560A (zh) * 2005-03-01 2006-09-06 三菱电机株式会社 车载电子控制装置
CN101208753A (zh) * 2005-03-14 2008-06-25 晟碟以色列有限公司 使用相对等级来实现闪存中的磨损均衡的方法
US20070285980A1 (en) * 2006-05-10 2007-12-13 Takahiro Shimizu Semiconductor memory device
CN101521039A (zh) * 2008-02-29 2009-09-02 群联电子股份有限公司 数据储存系统、控制器及方法

Cited By (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104487953A (zh) * 2012-07-18 2015-04-01 美光科技公司 用于层次型存储器系统的存储器管理
CN103678143B (zh) * 2012-09-25 2018-10-12 联想(北京)有限公司 文件存储方法、装置及电子设备
CN103678143A (zh) * 2012-09-25 2014-03-26 联想(北京)有限公司 文件存储方法、装置及电子设备
CN104662519B (zh) * 2012-09-28 2020-12-04 英特尔公司 在非易失性存储器中缓存代码的方法、系统和设备
CN104662519A (zh) * 2012-09-28 2015-05-27 英特尔公司 在非易失性存储器中缓存代码的方法、系统和设备
CN104813270A (zh) * 2012-12-04 2015-07-29 苹果公司 从主机至存储设备的对所删除的数据的提示
CN104813270B (zh) * 2012-12-04 2018-06-05 苹果公司 从主机至存储设备的对所删除的数据的提示
CN103902462A (zh) * 2012-12-27 2014-07-02 华为技术有限公司 内存管理方法、内存管理装置及计算机
CN103902462B (zh) * 2012-12-27 2018-03-09 华为技术有限公司 内存管理方法、内存管理装置及计算机
CN104216837A (zh) * 2013-05-31 2014-12-17 华为技术有限公司 一种内存系统、内存访问请求的处理方法和计算机系统
CN104123264A (zh) * 2014-08-01 2014-10-29 浪潮(北京)电子信息产业有限公司 一种基于异构融合架构的缓存管理方法及装置
CN112214424B (zh) * 2015-01-20 2024-04-05 乌尔特拉塔有限责任公司 对象存储器结构、处理节点、存储器对象存储和管理方法
CN112214424A (zh) * 2015-01-20 2021-01-12 乌尔特拉塔有限责任公司 对象存储器结构、处理节点、存储器对象存储和管理方法
US10884626B2 (en) 2015-05-21 2021-01-05 Micron Technology, Inc. Translation lookaside buffer in a switch
US10007435B2 (en) 2015-05-21 2018-06-26 Micron Technology, Inc. Translation lookaside buffer in memory
TWI633436B (zh) * 2015-05-21 2018-08-21 美商美光科技公司 記憶體中之轉譯後備緩衝器
US11494078B2 (en) 2015-05-21 2022-11-08 Micron Technology, Inc. Translation lookaside buffer in memory
CN106294202A (zh) * 2015-06-12 2017-01-04 联想(北京)有限公司 一种数据存储方法和装置
CN106325764A (zh) * 2015-07-08 2017-01-11 群联电子股份有限公司 存储器管理方法、存储器控制电路单元与存储器存储装置
CN107710140B (zh) * 2015-11-27 2020-07-14 株式会社日立制作所 存储系统
CN107710140A (zh) * 2015-11-27 2018-02-16 株式会社日立制作所 存储系统
CN106991019A (zh) * 2015-12-18 2017-07-28 京瓷办公信息系统株式会社 电子设备及存储器寿命警报方法
CN106991019B (zh) * 2015-12-18 2021-03-02 京瓷办公信息系统株式会社 电子设备及存储器寿命警报方法
CN107562367B (zh) * 2016-07-01 2021-04-02 阿里巴巴集团控股有限公司 基于软件化存储系统读写数据的方法以及装置
CN107562367A (zh) * 2016-07-01 2018-01-09 阿里巴巴集团控股有限公司 基于软件化存储系统读写数据的方法以及装置
CN107291381B (zh) * 2017-05-18 2020-04-28 记忆科技(深圳)有限公司 一种固态硬盘动态加速区的实现方法及固态硬盘
CN107291381A (zh) * 2017-05-18 2017-10-24 记忆科技(深圳)有限公司 一种固态硬盘动态加速区的实现方法及固态硬盘
CN107168654A (zh) * 2017-05-26 2017-09-15 华中科技大学 一种基于数据对象热度的异构内存分配方法及系统
CN107168654B (zh) * 2017-05-26 2019-08-13 华中科技大学 一种基于数据对象热度的异构内存分配方法及系统
CN107506137A (zh) * 2017-08-11 2017-12-22 记忆科技(深圳)有限公司 一种提升固态硬盘写性能的方法
CN111758091B (zh) * 2017-08-30 2024-05-24 美光科技公司 单电平单元高速缓存管理
CN111758091A (zh) * 2017-08-30 2020-10-09 美光科技公司 单电平单元高速缓存管理
CN111078599A (zh) * 2018-10-19 2020-04-28 三星电子株式会社 半导体器件
CN109684237B (zh) * 2018-11-20 2021-06-01 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN109684237A (zh) * 2018-11-20 2019-04-26 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN111352855A (zh) * 2018-12-20 2020-06-30 爱思开海力士有限公司 具有提高的映射更新速度的存储装置及其操作方法
CN111352855B (zh) * 2018-12-20 2023-08-11 爱思开海力士有限公司 具有提高的映射更新速度的存储装置及其操作方法
CN113811847A (zh) * 2019-05-13 2021-12-17 美光科技公司 来自主机系统的写入命令的部分执行
CN114270324A (zh) * 2019-08-22 2022-04-01 美光科技公司 层次型存储器系统
CN114341817A (zh) * 2019-08-22 2022-04-12 美光科技公司 分层存储器系统
US11782843B2 (en) 2019-08-22 2023-10-10 Micron Technology, Inc. Hierarchical memory systems
CN110825662A (zh) * 2019-11-04 2020-02-21 深圳芯邦科技股份有限公司 一种数据更新方法、系统及相关装置
WO2021196956A1 (zh) * 2020-03-30 2021-10-07 华为技术有限公司 一种固态硬盘管理方法及固态硬盘

Also Published As

Publication number Publication date
TW201106157A (en) 2011-02-16
US20160062660A1 (en) 2016-03-03
EP2455865A4 (en) 2014-12-10
EP2455865A1 (en) 2012-05-23
US20120191900A1 (en) 2012-07-26
KR20120068765A (ko) 2012-06-27
TWI460588B (zh) 2014-11-11
WO2011007599A1 (ja) 2011-01-20
US10776007B2 (en) 2020-09-15
CN102473140B (zh) 2015-05-13
EP2455865B1 (en) 2020-03-04

Similar Documents

Publication Publication Date Title
CN102473140B (zh) 存储器管理装置
CN101673245B (zh) 包括存储器管理装置的信息处理装置和存储器管理方法
CN102460400B (zh) 基于管理程序的本地和远程虚拟内存页面管理
CN102612685B (zh) 经由存储器高速缓存操纵的无阻碍数据传送
CN101169751B (zh) 具有闪存设备的系统及其数据恢复方法
CN100478959C (zh) 嵌入式数据库的存储管理方法
CN103473181B (zh) 分级式不可变内容可寻址存储器处理器
CN100552612C (zh) 闪速存储器存储系统
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
CN100456264C (zh) 一种磁盘空间管理方法及系统
CN100517268C (zh) 非易失性存储系统、非易失性存储装置、存储控制器、存取装置以及非易失性存储装置的控制方法
CN101510176B (zh) 通用操作系统对cpu二级缓存访问的控制方法
CN104395904A (zh) 高效的数据对象存储和检索
CN102449607A (zh) 具有多个闪存封装的存储系统
CN107256196A (zh) 基于闪存阵列的支持零拷贝的缓存系统及方法
CN103026346A (zh) 包括固态存储器设备的存储系统中的逻辑到物理地址映射
CN102667739A (zh) 存储装置管理装置及用于管理存储装置的方法
CN102483719A (zh) 基于块的非透明高速缓存
JP2006268776A (ja) メモリカード
CN101740110A (zh) 一种Nand Flash擦除均衡的方法及装置
CN102819494B (zh) 一种闪存顺序写入时的优化方法
US20230214328A1 (en) Cache memory system and cache memory control method
JP4909963B2 (ja) 統合メモリ管理装置
CN103890856A (zh) 支持内存储数据结构的可移位存储器
JP2011186555A (ja) メモリ管理装置及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170801

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Toshiba Corp.

TR01 Transfer of patent right
CP01 Change in the name or title of a patent holder

Address after: Tokyo, Japan

Patentee after: Kaixia Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

Address after: Tokyo, Japan

Patentee after: TOSHIBA MEMORY Corp.

Address before: Tokyo, Japan

Patentee before: Japanese businessman Panjaya Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220114

Address after: Tokyo, Japan

Patentee after: Japanese businessman Panjaya Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: TOSHIBA MEMORY Corp.

TR01 Transfer of patent right