RU2556459C1 - Способ для управления отображением кэша и системой кэша - Google Patents

Способ для управления отображением кэша и системой кэша Download PDF

Info

Publication number
RU2556459C1
RU2556459C1 RU2014113342/08A RU2014113342A RU2556459C1 RU 2556459 C1 RU2556459 C1 RU 2556459C1 RU 2014113342/08 A RU2014113342/08 A RU 2014113342/08A RU 2014113342 A RU2014113342 A RU 2014113342A RU 2556459 C1 RU2556459 C1 RU 2556459C1
Authority
RU
Russia
Prior art keywords
target data
cache
data block
block
storage medium
Prior art date
Application number
RU2014113342/08A
Other languages
English (en)
Inventor
Чжучжэнь ВАН
Цзыи ВАН
Original Assignee
Хуавэй Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Application granted granted Critical
Publication of RU2556459C1 publication Critical patent/RU2556459C1/ru

Links

Images

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации срока службы носителя флэш-памяти, служащего в качестве кэша. Способ для управления отображением кэша содержит замену, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, причем по меньшей мере один блок данных в основном запоминающем носителе отображается в упомянутый блок целевых данных, при этом этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, причем один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, кэш основного запоминающего носителя содержит носитель флэш-памяти, и замененный блок целевых данных в кэше содержит блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше. 5 н. и 10 з.п. ф-лы, 15 ил.

Description

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ НАСТОЯЩЕЕ ИЗОБРЕТЕНИЕ
[0001] Настоящее изобретение относится к технологии отображения кэша системы кэша и, в частности, к способу управления отображением кэша, когда носитель флэш-память используется в качестве кэша, и системой кэша.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
[0002] Носитель в виде флэш-памяти (флэш-память) является энергонезависимым запоминающим устройством, имеющим долгий срок службы и способным поддерживать сохраненную информацию данных при выключенном питании. В предшествующем уровне техники носитель флэш-памяти часто используется в качестве кэша основного запоминающего носителя, который может быть обычной системой дискового запоминающего устройства, такого как жесткий диск и множество жестких дисков, таким образом, чтобы уменьшить ограничения производительности, вызванные плохой производительностью ввода/вывода основного запоминающего носителя.
[0003] Обычно, когда носитель флэш-памяти используется в качестве кэша, политика отображения, принятая между кэшем и основным запоминающем носителем, является отображением N-входового кэша с множественной ассоциацией. В N-входовом кэше с множественной ассоциацией, в соответствии с размером кэша, служащим в качестве цели отображения, основной запоминающий носитель, служащий в качестве источника отображения, делится на множество наборов, где емкость каждого набора равна размеру кэша. В соответствии с количеством и размером блоков целевых данных, включенных в кэш, каждый набор основного запоминающего носителя делится на одно и то же количество областей (то есть, блоков данных), где размер каждой области согласован с размером одного блока целевых данных в кэше. В одном наборе основного запоминающего носителя различные блоки данных соответствуют различным блокам целевых данных в кэше. В различных наборах основного запоминающего носителя блок данных в соответствующей позиции отображается в один и тот же блок целевых данных в кэше.
[0004] Фиг. 1 показывает пример N-входового отображения с множественной ассоциацией. В этом примере носитель флэш-памяти, служащий в качестве кэша, делится на 4 блока целевых данных от блока целевых данных 0 до блока целевых данных 3, жесткий диск, служащий источником отображения, включает в себя два набора, каждый набор делится на блоки данных, соответствующие 4 блокам целевых данных кэша, и размер каждого блока данных на жестком диске совместим с размером каждого блока целевых данных в носителе флэш-памяти. В этом примере ассоциативное соотношение N-входового отображения с множественной ассоциацией между жестким диском и кэшем является следующим: блок данных 0 в первом наборе (включающем в себя блок данных 0 - блок данных 3), и блок данных 4 во втором наборе (включающем в себя блок данных 4 - блок данных 7) жесткого диска отображаются в блок целевых данных 0 в носителе флэш-памяти, блок данных 1 в первом наборе и блок данных 5 во втором наборе жесткого диска отображаются в блок целевых данных 1 в носителе флэш-памяти, блок данных 2 в первом наборе и блок данных 6 во втором наборе жесткого диска отображаются в блок целевых данных 2 в носителе флэш-памяти, и блок данных 3 в первом наборе и блок данных 7 во втором наборе жесткого диска отображаются в блок целевых данных 3 в носителе флэш-памяти. В соответствии с соотношением отображения, данные в блоке данных 0 и блоке данных 4 кэшируются в блоке целевых данных 0, данные в блоке данных 1 и блоке данных 5 кэшируются в блоке целевых данных 1, данные в блоке данных 2 и блоке данных 6 кэшируются в блоке целевых данных 2, и данные в блоке данных 3 и блоке данных 7 кэшируются в блоке целевых данных 3.
[0005] Однако в предшествующем уровне техники соотношение отображения между кэшем и основным запоминающим носителем в общем является статичным. В целом рабочем процессе системы блок целевых данных в кэше, в который отображается блок данных в основном запоминающем носителе, в общем остается неизменным. В результате, когда носитель флэш-памяти используется в качестве кэша для сценария приложения, в котором к данным в локальной области в системе предоставляется доступ необычно часто, количество стираний области носителя в носителе флэш-памяти, в который отображаются данные, к котором часто предоставляется доступ в системе, является чрезмерно высоким. Так как количество стираний носителя флэш-памяти является ограниченным, область носителя в носителе флэш-памяти, в который отображаются данные, к которым часто предоставляется доступ, достигает предела количества стираний быстрее, чем другие области, приводя к тому, что весь носитель флэш-памяти является недоступным.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] Ввиду неудобств предшествующего уровня техники, варианты осуществления настоящего изобретения предоставляют способ для управления отображением кэша и системой кэша, где принята политика динамического отображения между кэшем и основным запоминающем носителем таким образом, чтобы данные, к которым часто предоставлен доступ, в системе не были статически отображены в некоторый блок целевых данных в кэше, таким образом, оптимизируя срок службы носителя флэш-памяти в качестве кэша.
[0007] Вариант осуществления настоящего изобретения предоставляет способ для управления отображением кэша, где способ включает в себя: замену, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, где по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, при этом этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, причем один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, причем кэш основного запоминающего носителя включает в себя носитель флэш-памяти, и замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
[0008] Вариант осуществления настоящего изобретения предоставляет способ для управления отображением кэша, где способ включает в себя:
контроль количества стираний каждого блока целевых данных в кэше основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, и кэш основного запоминающего носителя включает в себя носитель флэш-памяти;
когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно определенного порога стираний, замену блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, где этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, и замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и
непрерывный контроль количества стираний, сгенерированных после того, как будет изменен каждый блок целевых данных в кэше.
[0009] Вариант осуществления настоящего изобретения предоставляет систему кэша, где система кэша включает в себя: основной запоминающий носитель; носитель флэш-памяти, подсоединенный к основному запоминающему носителю и служащий в качестве кэша основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше; и процессор, сконфигурированный для: замены, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, где по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, и замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
[0010] Вариант осуществления настоящего изобретения предоставляет систему кэша, где система кэша включает в себя: основной запоминающий носитель; носитель флэш-памяти, подсоединенный к основному запоминающему носителю и служащий в качестве кэша основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше; и процессор, сконфигурированный для: контроля количества стираний каждого блока целевых данных в кэше; когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стираний, замены блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, где этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и
непрерывный контроль количества стираний, сгенерированных после того, как будет изменен каждый блок целевых данных в кэше.
[0011] В соответствии со способом и устройством в вариантах осуществления настоящего изобретения, блок целевых данных в кэше, в который отображается по меньшей мере одно стирание в блоке данных в основном запоминающем носителе, заменяется, причем по меньшей мере один блок данных включает в себя блок данных, соответствующий блоку целевых данных, в настоящее время имеющему максимальное количество стираний. Таким образом, оптимизируется срок службы носителя флэш-памяти в качестве кэша.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012] Задачи, признаки, характеристики и преимущества настоящего изобретения станут очевидны посредством подробного описания, представленного ниже, со ссылками на последующие сопроводительные чертежи.
[0013] Фиг. 1 показывает пример N-входового отображения с множественной ассоциацией;
[0014] Фиг. 2 является схематической блок-схемой способа для управления отображением кэша в соответствии с первым вариантом осуществления настоящего изобретения;
[0015] Фиг. 3 - Фиг. 5 являются схематическими диаграммами соотношения отображения в различные периоды коммутации в примере управления отображением кэша посредством принятия способа в соответствии с первым вариантом осуществления настоящего изобретения;
[0016] Фиг. 6 - Фиг. 11 являются схематическими диаграммами соотношения отображения в различные периоды коммутации в другом примере управления отображением кэша посредством принятия способа в соответствии с первым вариантом осуществления настоящего изобретения;
[0017] Фиг. 12 является схематической блок-схемой способа для управления отображением кэша в соответствии со вторым вариантом осуществления настоящего изобретения;
[0018] Фиг. 13 и фиг. 14 являются схематическими диаграммами отображения соотношений на примере управления отображением кэша посредством принятия способа в соответствии со вторым вариантом осуществления настоящего изобретения; и
[0019] Фиг. 15 показывает систему кэша в соответствии с вариантом осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0020] Варианты осуществления настоящего изобретения предоставляют способ для управления отображением кэша и систему кэша. Способ включает в себя: замену, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, где по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, кэш основного запоминающего носителя включает в себя носитель флэш-памяти, и замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
[0021] Каждый вариант осуществления настоящего изобретения описан подробно ниже со ссылками на сопроводительные чертежи.
[0022] Фиг. 2 является схематической блок-схемой способа для управления отображением кэша в соответствии с первым вариантом осуществления настоящего изобретения. В этом варианте осуществления носитель флэш-памяти используется в качестве кэша, основной запоминающий носитель является, например, жестким диском, и один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше. Носитель флэш-памяти включает в себя твердотельный диск, то есть, диск SSD (твердотельный диск).
[0023] Как показано на фиг. 2, способ для управления отображением кэша, в соответствии с первым вариантом осуществления, включает в себя следующие этапы:
[0024] Этап S201: Инициация, в соответствии с предварительно установленным периодом коммутации T, таймера для начала тактирования.
[0025] Этап S202: В каждом периоде коммутации одного цикла коммутации заменяют блок целевых данных в кэше, в который отображается по меньшей мере один блок данных на жестком диске, таким образом, чтобы после одного цикла коммутации количества стираний блоков целевых данных в кэше были близки друг к другу, где количество периодов коммутирования, включенных в один цикл коммутации, является не меньше, чем количество N блоков целевых данных, включенных в кэш.
[0026] Фиг. 1 и фиг. 3 - фиг. 5 показывают конкретный пример управления отображением кэша посредством принятия способа в соответствии с первым вариантом осуществления настоящего изобретения. В этом примере в каждом периоде коммутации одного цикла коммутации блок целевых данных в кэше, в который отображается каждый блок данных на жестком диске, заменяется таким образом, чтобы каждый блок данных на жестком диске отображался в различные блоки целевых данных в кэше в различные периоды коммутации одного цикла коммутации, где количество периодов коммутации, включенных в один цикл коммутации, равно количеству N блоков целевых данных, включенных в кэш. В этом примере, например, но не ограничиваясь, кэш имеет 4 блока целевых данных, жесткий диск включает в себя два участка памяти, каждый участок памяти делится на 4 блока данных, соответствующие 4 блокам целевых данных кэша, и размер каждого блока данных на жестком диске согласован с размером каждого блока целевых данных в носителе флэш-памяти.
[0027] Как показано на фиг. 1 и фиг. 3 - фиг. 5, этот пример принимает политику динамической коммутации алгоритма периодического циклического обслуживания, и количество периодов коммутации, включенных в один цикл коммутации, равно количеству N блоков целевых данных, включенных в кэш, где N является целым числом, больше, чем 0, ив этом примере N=4. В этом примере после каждого периода коммутации коммутируется цель отображения, соответствующая каждому блоку данных на жестком диске. Каждый блок данных на жестком диске отображается в различные блоки целевых данных в различные периоды коммутации.
[0028] В частности, в этом примере соотношение отображения, показанное на фиг. 1, принимается вначале. Как показано на фиг. 1, в этом примере вначале соотношение отображения между жестким диском и кэшем является следующим: блок данных 0 и блок данных 4 жесткого диска отображаются в блок целевых данных 0 кэша, блок данных 1 и блок данных 5 жесткого диска отображаются в блок целевых данных 1 кэша, блок данных 2 и блок данных 6 жесткого диска отображаются в блок целевых данных 2 кэша, и блок данных 3 и блок данных 7 жесткого диска отображаются в блок целевых данных 3 кэша. Цифры являются номерами блоков данных или целевых блоков данных.
[0029] Когда первый период коммутации (называемый первым периодом для краткости) истекает, кэшированные данные в каждом блоке целевых данных в носителе флэш-памяти перемещаются к другому блоку целевых данных. В этом примере, например, достоверные данные, в настоящее время кэшированные в блоке целевых данных 0 в носителе флэш-памяти, перемещаются к блоку целевых данных 1, достоверные данные, в настоящее время кэшированные в блоке целевых данных 1, перемещаются к блоку целевых данных 2, достоверные данные, в настоящее время кэшированные в блоке целевых данных 2, перемещаются к блоку целевых данных 3, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 3, перемещаются к блоку целевых данных 0. После того, как данные в кэше перемещаются в соответствии с перемещением данных в блоках целевых данных, блок целевых данных, в который отображается каждый блок данных на жестком диске, соответственно заменяется. После этого перемещения соотношение отображения, полученное посредством модификации, показано на фиг. 3.
[0030] Когда второй период истекает, аналогично, достоверные данные, в настоящее время кэшированные в блоке целевых данных 0 в носителе флэш-памяти, перемещаются к блоку целевых данных 1, достоверные данные, в настоящее время кэшированные в блоке целевых данных 1, перемещаются к блоку целевых данных 2, достоверные данные, в настоящее время кэшированные в блоке целевых данных 2, перемещаются к блоку целевых данных 3, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 3, перемещаются к блоку целевых данных 0. После этого перемещения соотношение отображения между кэшем и жестким диском модифицируется в соответствии с этим перемещением, и соотношение отображения после модификации показано на фиг. 4.
[0031] Когда третий период истекает, аналогично, достоверные данные, в настоящее время кэшированные в блоке целевых данных 0 в носителе флэш-памяти, перемещаются к блоку целевых данных 1, достоверные данные, в настоящее время кэшированные в блоке целевых данных 1, перемещаются к блоку целевых данных 2, достоверные данные, в настоящее время кэшированные в блоке целевых данных 2, перемещаются к блоку целевых данных 3, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 3, перемещаются к блоку целевых данных 0. После этого перемещения соотношение отображения между кэшем и жестким диском модифицируется в соответствии с этой модификацией, и соотношение отображения после модификации, то есть, соотношение отображения, полученное посредством модификации, показано на фиг. 5. Когда четвертый период истекает, аналогично, после выполнения перемещения соотношение отображения, соответственно, модифицируется, и соотношение отображения, полученное посредством модификации, показано на фиг. 1, то есть, соотношение отображения, полученное посредством модификации, возвращается назад в первый период. Таким образом, один цикл коммутации заканчивается. Затем, процесс коммутации следующего цикла коммутации может быть продолжен.
[0032] В этом варианте осуществления после перемещения данных, кэшированных в блоках целевых данных, блок целевых данных, в который отображается блок данных, может быть заменен посредством обновления метаданных кэша, хранящихся в носителе флэш-памяти и/или памяти.
[0033] В сценарии, в котором к локальной области, такой как блок данных на жестком диске, часто предоставляется доступ в каждом периоде коммутации одного цикла переключения, блок данных, к которому часто предоставляется доступ, на жестком диске отображается в различные блоки целевых данных в носителе флэш-памяти таким образом, чтобы локальная область, к которой часто предоставляется доступ, на жестком диске не была просто статически отображена в фиксированный блок целевых данных все время, таким образом, продлевая и оптимизируя срок службы носителя флэш-памяти. Кроме того, после одного цикла коммутации алгоритма циклического обслуживания, описанного выше, количества стираний блоков целевых данных в носителе флэш-памяти являются близкими друг к другу и близкими к среднему значению, и количество стираний блоков целевых данных равномерно распределяется таким образом, чтобы срок службы носителя флэш-памяти был оптимизирован.
[0034] В этом варианте осуществления в динамической коммутации соотношения отображения, в соответствии с порядковым номером блоков целевых данных в кэше, данные в каждом блоке целевых данных в кэше перемещаются к блоку целевых данных, имеющему номер, смежный с номером в блоке целевых данных, способом алгоритма циклического обслуживания. Примером является просто примерный пример, и также применимы другие способы алгоритма циклического обслуживания. Например, когда период коммутации истекает в последовательности что: данные, в настоящее время кэшированные в блоке целевых данных 0, перемещаются к блоку целевых данных 3, данные, в настоящее время кэшированные в блоке целевых данных 3, перемещаются к блоку целевых данных 2, данные, в настоящее время кэшированные в блоке целевых данных 2, перемещаются к блоку целевых данных 1, и данные, в настоящее время кэшированные в блоке целевых данных 1, перемещаются к блоку целевых данных 0, данные, кэшированные в каждом целевом блоке данных в кэше, перемещаются, когда период коммутации истекает. Затем блок целевых данных, в который отображается каждый блок данных в основном запоминающем носителе, таком как жесткий диск, соответственно заменяется, и соотношение отображения между жестким диском и кэшем, соответственно, изменяется.
[0035] В частности, дополнительно к способу алгоритма циклического обслуживания, описанному выше, другие способы замены блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, также применимы при условии, что после одного цикла коммутации количества стираний блоков целевых данных в кэше являются близкими друг к другу. «Близко друг к другу» может относиться к тому, что количества стираний блоков целевых данных близки к среднему значению, и, в частности, относиться к тому, что разница в количестве стираний между блоками целевых данных меньше, чем заранее установленный порог разности в количестве стираний. Порог разности может быть установлен в соответствии с требованием или определенным сценарием приложения.
[0036] Когда принимается политика динамической коммутации периодического алгоритма циклического обслуживания, пользователь может гибко установить период коммутации в соответствии со сценарием приложения, и цикл коммутации является относительно коротким. Однако, когда цель отображения коммутируется каждый раз, все достоверные данные в кэше перемещаются таким образом, чтобы политика динамической коммутации периодического алгоритма циклического обслуживания больше подходила для кэша, имеющего маленькую емкость.
[0037] Фиг. 6 - фиг. 11 показывают другой пример управления отображением кэша посредством принятия способа в соответствии с первым вариантом осуществления настоящего изобретения. В этом примере политика отображения динамической коммутации с периодической компоновкой принимается для замены блока целевых данных в кэше, в который отображается каждый блок данных на жестком диске, таким образом, чтобы после одного цикла коммутации количества стираний блоков целевых данных в кэше были близки друг к другу. В этом примере количество периодов коммутации, включенных в один цикл коммутации, равно N×(N-1), где N является количеством блоков целевых данных, включенных в кэш, и N является целым числом больше, чем 0. Например, в этом примере N=3. Поэтому один цикл коммутации включает в себя 6 периодов коммутации в этом примере.
[0038] В этом примере носитель флэш-памяти используется в качестве кэша, и основной запоминающий носитель, например, используется в качестве жесткого диска. Например, но не ограничиваясь, кэш имеет 3 блока целевых данных, жесткий диск включает в себя два участка памяти, каждый участок памяти делится на 3 блока данных, соответствующих 3 блокам целевых данных кэша, и размер каждого блока данных на жестком диске согласован с размером каждого блока целевых данных в носителе флэш-памяти.
[0039] В этом примере в каждом периоде коммутации одного цикла коммутации данные, кэшированные в блоке целевых данных, в настоящее время имеющем максимальное количество стираний в кэше, обмениваются с данными, кэшированными в блоке целевых данных в кэше, отличном от блока целевых данных, имеющего максимальное количество стираний, где данные в последнем из этих двух блоков целевых данных обмениваются минимальное количество раз в текущем цикле коммутации, и последний из этих двух блоков целевых данных отличается от блока целевых данных, который обменивается данными с блоком целевых данных, в настоящее время имеющим максимальное количество стираний, в предыдущем периоде коммутации текущего цикла коммутации, то есть, данные взаимно перемещаются, и блок целевых данных, в который отображается соответствующий блок данных на жестком диске, соответственно заменяется в соответствии с перемещением данных, кэшированных в блоке целевых данных. Каждый блок целевых данных в кэше имеет N-1 возможностей, чтобы быть блоком целевых данных, имеющим максимальное количество стираний, то есть в одном цикле коммутации каждый блок целевых данных является блоком целевых данных, имеющим максимальное количество стираний, то есть, соответствует блоку данных, к которому наиболее часто предоставляется доступ в различные N-1 периоды.
[0040] Например, предполагается, что в начале цикла коммутации блок целевых данных 0 в носителе флэш-памяти имеет максимальное количество стираний, это указывает, что к блоку данных 0 и блоку данных 3 на жестком диске, которые отображаются в блок целевых данных 0, наиболее часто предоставляется доступ. В дополнение к блоку целевых данных 0, блоки целевых данных включают в себя блок целевых данных 1 и блок целевых данных 2. Как показано на фиг.6, в этом примере до истечения первого периода, соотношение отображения между жестким диском и кэшем является следующим: блок данных 0 и блок данных 3 жесткого диска отображаются в блок целевых данных 0 кэша, блок данных 1 и блок данных 4 жесткого диска отображаются в блок целевых данных 1 кэша, блок данных 2 и блок данных 5 жесткого диска отображаются в блок целевых данных 2 кэша.
[0041] В этом примере, например, когда первый период истекает, достоверные данные, в настоящее время кэшированные в блоке целевых данных 0 в носителе флэш-памяти, перемещаются к блоку целевых данных 1, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 1, перемещаются к блоку целевых данных 0. После перемещения данных в кэше, в соответствии с перемещением данных в блоках целевых данных, соответственно заменяются блок целевых данных в кэше, в который отображаются блок данных 0 и блок данных 3 на жестком диске, и блок целевых данных в кэше, в который отображаются блок данных 1 и блок данных 4 на жестком диске. После этого перемещения соотношение отображения, полученное посредством модификации, показано на фиг. 7. В это время блок данных 0 и блок данных 3, к которым наиболее часто предоставляется доступ, отображаются в блок целевых данных 1.
[0042] Когда второй период истекает, достоверные данные, кэшированные в блоке целевых данных 1, в настоящее время имеющем максимальное количество стираний в носителе флэш-памяти, перемещаются к блоку целевых данных 2, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 2, перемещаются к блоку целевых данных 1. После перемещения данных в кэше, в соответствии с перемещением данных в блоках целевых данных, соответственно заменяются блок целевых данных в кэше, в который отображаются блок данных 0 и блок данных 3 на жестком диске, и блок целевых данных в кэше, в который отображаются блок данных 2 и блок данных на жестком диске 5. После этого перемещения соотношение отображения, полученное посредством модификации, показано на фиг.8. В это время блок данных 0 и блок данных 3 на жестком диске, к которым наиболее часто предоставляется доступ, отображаются в блок целевых данных 2.
[004 3] Когда третий период истекает, достоверные данные, кэшированные в блоке целевых данных 2, в настоящее время имеющем максимальное количество стираний в носителе флэш-памяти, перемещаются к блоку целевых данных 0, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 0, перемещаются к блоку целевых данных 2. После перемещения данных в кэше, в соответствии с перемещением данных в блоках целевых данных, блок целевых данных в кэше, в который блок данных 0 и блок данных 3 в жестком диске отображены, и блок целевых данных в кэше, в который блок данных 1 и блок данных 4 в жестком диске отображены, соответственно изменяются. После этого перемещения соотношение отображения, полученное посредством модификации, показано на фиг.9. В это время блок данных 0 и блок данных 3 на жестком диске, к которым наиболее часто предоставляется доступ, отображаются в блок целевых данных 0.
[0044] Когда четвертый период истекает, достоверные данные, кэшированные в блоке целевых данных 0, в настоящее время имеющем максимальное количество стираний в носителе флэш-памяти, перемещаются к блоку целевых данных 1, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 1, перемещаются к блоку целевых данных 0. После перемещения данных в кэше, в соответствии с перемещением данных в блоках целевых данных, блок целевых данных в кэше, в который блок данных 0 и блок данных 3 в жестком диске отображены, и блок целевых данных в кэше, в который блок данных 2 и блок данных 5 в жестком диске отображены, соответственно изменяются. После этого перемещения соотношение отображения, полученное посредством модификации, показано на фиг.10. В это время блок данных 0 и блок данных 3 на жестком диске, к которым наиболее часто предоставляется доступ, отображаются в блок целевых данных 1.
[0045] Когда пятый период истекает, достоверные данные, кэшированные в блоке целевых данных 1, в настоящее время имеющем максимальное количество стираний в носителе флэш-памяти, перемещаются к блоку целевых данных 2, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 2, перемещаются к блоку целевых данных 1. После перемещения данных в кэше, в соответствии с перемещением данных в блоке целевых данных, блок целевых данных в кэше, в который блок данных 0 и блок данных 3 в жестком диске отображены, и блок целевых данных в кэше, в который блок данных 1 и блок данных 4 в жестком диске отображены, соответственно изменяются. После этого перемещения соотношение отображений, полученное посредством модификации, показано на фиг. 11. В это время блок данных 0 и блок данных 3 на жестком диске, к которым наиболее часто предоставляется доступ, отображаются в блок целевых данных 2.
[0046] Когда шестой период истекает, достоверные данные, кэшированные в блоке целевых данных 2, в настоящее время имеющем максимальное количество стираний в носителе флэш-памяти, перемещаются к блоку целевых данных 0, и достоверные данные, в настоящее время кэшированные в блоке целевых данных 0, перемещаются к блоку целевых данных 2. После перемещения данных в кэше, в соответствии с перемещением данных в блоках целевых данных, блок целевых данных в кэше, в который блок данных 0 и блок данных 3 в жестком диске отображены, и блок целевых данных в кэше, в который блок данных 2 и блок данных 5 в жестком диске отображены, соответственно изменяются. После этого перемещения соотношение отображения, полученное посредством модификации, возвращается назад, как показано на фиг. 6. В это время, заканчивается цикл коммутации и на фиг. 6, следующий цикл коммутации непрерывно выполняется, в соответствии с последовательностью коммутации, показанной на фиг. 6 - фиг. 11.
[0047] В этом примере, когда каждый период истекает, цель коммутации блока целевых данных, в настоящее время имеющего максимальное количество стираний, то есть, блока целевых данных, в который отображается блок данных, к которому наиболее часто предоставляется доступ, выбирается в соответствии с последовательностью количества блоков целевых данных. В других вариантах осуществления, когда количество блоков целевых данных превышает 3, цель коммутации может быть выбрана в соответствии с или не в соответствии с порядковым номером блоков целевых данных при условии, что был произведен обмен данных в цели коммутации с другими блоками целевых данных максимальное количество раз в текущем цикле коммутации, и целью коммутации является любой блок целевых данных, отличающийся от блока целевых данных, который просто выполняет обмен данных с блоком целевых данных, в настоящее время имеющим максимальное количество стираний за предыдущий период коммутации текущего цикла коммутации.
[0048] В этом варианте осуществления, после перемещения данных, кэшированных в блоках целевых данных, блок целевых данных, в который отображается блок данных, может быть заменен, посредством обновления метаданных кэша, сохраненных в носителе флэш-памяти и/или памяти.
[0049] В сценарии, в котором к локальной области, такой как блок данных на жестком диске, часто предоставляется доступ в каждом периоде коммутации одного цикла коммутации, блок данных, к которому часто предоставляется доступ на жестком диске, отображается в различные блоки целевых данных на носителе флэш-памяти таким образом, чтобы локальная область, к которой часто предоставляется доступ на жестком диске, не была просто отображена в фиксированный блок целевых данных все время, таким образом продлевая и оптимизируя срок службы носителя флэш-памяти. Кроме того, после одного цикла коммутации с периодической компоновкой, описанной выше, количества стираний блоков целевых данных в носителе флэш-памяти являются близкими друг к другу и близкими к среднему значению, и количество стираний целевых блоков данных равномерно распределяется, таким образом, чтобы срок службы носителя флэш-памяти был оптимизирован. Кроме того, посредством принятия политики отображения динамической коммутации с периодической компоновкой настоящего варианта осуществления, когда цель отображения коммутируется каждый раз, перемещаются только достоверные данные в двух блоках целевых данных в кэше, который не имеет никакого серьезного влияния на производительность и может относиться к кэшам различных размеров.
[0050] Способы коммутации периодического динамического отображения между основным запоминающим носителем и кэшем, описанным выше, применяются в сценарии приложения, в котором услуги имеют правила периодичности, особенно в сценарии, в котором услуги имеют правила периодичности, и данные, к которым наиболее часто предоставляется доступ в системе, сохраняются в фиксированном положении на жестком диске.
[0051] Вариант осуществления настоящего изобретения дополнительно предоставляет решение управления отображением кэша, где решение включает в себя: контроль количества стираний каждого блока целевых данных в кэше основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, и кэш основного запоминающего носителя включает в себя носитель флэш-памяти; когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стирания, замену блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, где замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и непрерывный контроль количества стираний, сгенерированных после того, как будет заменен каждый блок целевых данных в кэше.
[0052] Фиг. 12 является схематической блок-схемой способа для управления отображением кэша в соответствии со вторым вариантом осуществления настоящего изобретения. В этом варианте осуществления носитель флэш-памяти используется в качестве кэша, и основной запоминающий носитель, например, используется в качестве жесткого диска. Например, но не в качестве ограничения, кэш имеет 4 блока целевых данных, жесткий диск включает в себя два участка памяти, каждый участок памяти делится на 4 блока данных, соответствующие 4 блокам целевых данных кэша, и размер каждого блока данных на жестком диске согласован с размером каждого блока целевых данных на носителе флэш-памяти.
[0053] Как показано на фиг. 12, способ для управления отображением кэша в соответствии с этим вариантом осуществления включает в себя следующие этапы:
[0054] Этап S1201: Контроль и запись количества стираний каждого блока целевых данных в кэше.
[0055] Этап S1202: Когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стирания, обмен данных, кэшированных в блоке целевых данных, имеющем максимальное количество стираний, с данными, кэшированными в блоке целевых данных, имеющем минимальное количество стираний.
[0056] Этап S1203: В соответствии с обменом блоками целевых данных, соответственно, заменяют блок целевых данных в кэше, в который отображаются все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий максимальное количество стираний в основном запоминающем носителе, блоком целевых данных в кэше, в который отображаются все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий минимальное количество стираний. В частности, выполняют замены таким образом, чтобы все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий максимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, в настоящее время имеющий минимальное количество стираний, и все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий минимальное количество стираний в основном запоминающем носителе, отображались в запоминающем носителе, в настоящее время имеющий максимальное количество стираний. В частности, соотношение отображения между блоками данных на жестком диске и блоками целевых данных в кэше может быть изменено посредством изменения метаданных кэша.
[0057] Этап S1204: Затем отображение между жестким диском и кэшем изменяется, выполняются сбрасывание записанного количества стираний каждого блока целевых данных кэша и возвращение на этап S1201 для непрерывного контроля и записи количества стираний каждого блока целевых данных, которые генерируются после изменения отображения, и выполнение этапа S1203 и этапа S1204, когда условие удовлетворяется. Например, счетчик может быть использован для записи количества стираний каждого блока целевых данных. После изменения отображения каждый раз, сбрасывается счетчик, затем запускается для счета и записывает количество стираний, сгенерированных после изменения отображения.
[0058] Фиг. 1, фиг. 13 и фиг. 14 показывают конкретный пример управления отображением кэша посредством принятия способа в соответствии со вторым вариантом осуществления настоящего изобретения. В этом примере предполагается, что соотношение отображения, показанное на фиг. 1, принимается между жестким диском и кэшем вначале. Как показано на фиг. 1, вначале соотношение отображения между жестким диском и кэшем является следующим: блок данных 0 и блок данных 4 жесткого диска отображаются в блок целевых данных 0 кэша, блок данных 1 и блок данных 5 жесткого диска отображаются в блок целевых данных 1 кэша, блок данных 2 и блок данных 6 жесткого диска отображаются в блок целевых данных 2 кэша, и блок данных 3 и блок данных 7 жесткого диска отображаются в блок целевых данных 3 кэша. Количество стираний каждого блока целевых данных в кэше контролируется.
[0059] Предполагается, что блок целевых данных 0 в настоящее время имеет максимальное количество стираний, и блок целевых данных 1 в настоящее время имеет минимальное количество стираний. В ходе кэширования данных количество стираний каждого блока целевых данных контролируется и записывается. Когда определяется, что разница в количестве стираний между целевым блоком данных 0 и целевым блоком данных 1 достигает порога стирания S, данные, кэшированные в блоке целевых данных 0, имеющем максимальное количество стираний, обмениваются с данными, кэшированиями в блоке целевых данных 1, имеющим минимальное количество стираний, и, соответственно, изменение выполняется таким образом, чтобы все блоки данных (в этом примере, блок данных 0 и блок данных 4), в настоящее время отображаемые в блок целевых данных 0 на жестком диске, отображались в блок целевых данных 1, и все блоки данных (в этом примере блок данных 1 и блок данных 5), в настоящее время отображаемые в блок целевых данных 1, отображались в блок целевых данных 0. Соотношение отображения после изменения показано на фиг. 13. Затем количество стираний каждого блока целевых данных в кэше сбрасывается, и количество стираний каждого блока целевых данных в кэше, которые генерируются после изменения отображения, непрерывно контролируется.
[0060] В этом примере, после предыдущего обмена, в ходе кэширования данных предполагается, что количество стираний блока целевых данных 3 достигает минимума, и количество стираний блока целевых данных 2 достигает максимума. Когда разница в количестве стираний между блоком целевых данных 2 и блоком целевых данных 3 достигает порога стирания S, данные, кэшированные в блоке целевых данных 2, имеющем максимальное количество стираний, обмениваются с данными, кэшированными в блоке целевых данных 3, имеющем минимальное количество стираний, и, соответственно, изменение выполняется таким образом, чтобы все блоки данных (в этом примере, блок данных 2 и блок данных 6), в настоящее время отображаемые в блок целевых данных 2 на жестком диске, отображались в блок целевых данных 3, и все блоки данных (в этом примере, блок данных 3 и блок данных 7), в настоящее время отображаемые в блок целевых данных 3, отображались в блок целевых данных 2. Соотношение отображения после изменения показано на фиг. 14. Затем количество стираний каждого блока целевых данных в кэше сбрасывается, количество стираний каждого блока целевых данных в кэше, которые генерируются после изменения отображения, непрерывно контролируется, и когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний, достигает предварительно установленного порога стирания S, отображение между жестким диском и кэшем, заменяется способом, аналогичным описанному выше.
[0061] Посредством использования настоящего варианта осуществления обеспечивается, что разница между максимальным количеством стираний и минимальным количеством стираний блоков целевых данных в носителе флэш-памяти и разница между максимальным количеством стираний и минимальным количеством стираний стертых блоков управляется таким образом, чтобы количество стираний каждого блока целевых данных было близким к среднему значению. Вариация количества стираний блока целевых данных в носителе флэш-памяти может управляться посредством установления порога стирания S. Этот вариант осуществления особенно применим к сценарию приложения, в котором услуги не имеют периодического эффекта или имеют неочевидный периодический эффект.
[0062] В реализации вариантов осуществления настоящего изобретения количество стираний может быть заменено количеством замен, и количество замен контролируется и записывается для выполнения динамической коммутации отображения. Как понятно специалистам в данной области техники, в кэше операция замены данных другими записанными данными называется заменой кэша.
[0063] В конкретных приложениях пользователь может выбрать политику динамического отображения из таковых, описанных выше, в соответствии с фактическим сценарием приложения, и принять политику динамического отображения, и закрыть политику динамического отображения, когда она не требуется. Кроме того, после выбора политики динамического отображения пользователь может также установить соответствующие параметры, такие как период коммутации, цикл коммутации и/или порог стираний, с помощью соответствующего модуля интерфейса в соответствии с фактическими потребностями. Без выбора политики динамического отображения, пользователь может использовать политику отображения по умолчанию, например, непосредственное отображение, полностью ассоциативное отображение и N-входовое отображение с множественной ассоциацией.
[0064] Специалисты в данной области техники должны понять, что помимо способов коммутации, описанных выше, способ коммутации отображения, использующий другую последовательность коммутации, также приемлем при условии, что способ коммутации обеспечивает, чтобы данные в блоке данных, к которому часто предоставляется доступ, в основном запоминающем носителе, просто не соответствовали фиксированному блоку целевых данных в кэше все время таким образом, чтобы блок целевых данных в носителе флэш-памяти, служащий в качестве кэша, быстро не достигал предела использования, таким образом, продлевая срок службы носителя флэш-памяти.
[0065] Специалисты в данной области техники должны понять, что когда способ коммутации разрешает количеству стираний каждого блока целевых данных в кэше быть близким друг к другу, например, быть близким к среднему значению, срок службы носителя флэш-памяти максимизируется.
[0066] Теперь делается ссылка на фиг. 15, фиг. 15 показывает систему кэша в соответствии с вариантом осуществления настоящего изобретения.
[0067] Как показано на фиг. 15, система 1500 кэша, в соответствии с настоящим вариантом осуществления настоящего изобретения, включает в себя: основной запоминающий носитель 1510; носитель 1520 флэш-памяти, подсоединенный к основному запоминающему носителю и служащий в качестве кэша основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше; и процессор 1530, сконфигурированный для: замены, в предварительно установленном временном интервале, блока целевых данных в кэше основного запоминающего носителя, где по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, и замены блока целевых данных в кэше, который включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
[0068] Процессор в системе кэша может быть дополнительно сконфигурирован для: замены, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, таким образом, чтобы после одного цикла коммутации количества стираний блоком целевых данных в кэше были близки друг к другу, где количество периодов коммутации, включенных в один цикл коммутации, не меньше, чем количество N блоков целевых данных, включенных в кэш.
[0069] Процессор в системе кэша может быть дополнительно сконфигурирован для: замены, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается каждый блок данных в основном запоминающем носителе, таким образом, чтобы каждый блок данных в основном запоминающем носителе отображался в различные блоки целевых данных в кэше в различные периоды коммутации одного цикла коммутации, где количество периодов коммутации, включенных в одни цикл коммутации, равно количеству блоков целевых данных, включенных в кэш.
[0070] Процессор в системе кэша может быть дополнительно сконфигурирован для: перемещения, в каждом периоде коммутации одного цикла коммутации, в соответствии с последовательностью количества блоков целевых данных в кэше, данных каждого блока целевых данных в кэше к блоку целевых данных, имеющему количество, смежное с блоком целевых данных алгоритма циклического обслуживания, и, соответственно, замены, в соответствии с перемещением данных в блоках целевых данных, блока целевых данных, в который отображается каждый блок данных в основном запоминающем носителе.
[0071] Процессор в системе кэша может быть дополнительно сконфигурирован для: обмена, в каждом периоде коммутации одного цикла коммутации, данных, кэшированных в блоке целевых данных, в настоящее время имеющем максимальное количество стираний в кэше, с данными, кэшированиями в блоке целевых данных в кэше, отличном от блока целевых данных, имеющего максимальное количество стираний, где данные в последнем из этих двух блоков целевых данных обмениваются минимальное количество раз в текущем цикле коммутации, и последний из этих двух блоков целевых данных отличается от блока целевых данных, который обменивается данными с блоком целевых данных, в настоящее время имеющим максимальное количество стираний, в предыдущем периоде коммутации текущего цикла коммутации, и, соответственно, замены блока целевых данных, в который отображается соответствующий блок данных в основном запоминающем носителе, где один цикл коммутации включает в себя N×(N-1) периодов коммутации, и в одном цикле коммутации каждый блок целевых данных кэша является блоком целевых данных, имеющим максимальное количество стираний в кэше в различных N-1 периодах коммутации.
[0072] Вариант осуществления настоящего изобретения дополнительно предоставляет систему кэша, где система запоминающего устройства включает в себя: основной запоминающий носитель; носитель флэш-памяти, подсоединенный к основному запоминающему носителю и служащий в качестве кэша основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше; и процессор, сконфигурированный для: контроля количества стираний каждого блока целевых данных в кэше; когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стираний, замены блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, где замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и непрерывный контроль количества стираний, сгенерированных после того, как будет заменен каждый блок целевых данных в кэше.
[0073] Процессор в системе кэша может быть дополнительно сконфигурирован для: обмена данных, кэшированных в блоке целевых данных, имеющем максимальное количество стираний, с данными, кэшированными в блоке целевых данных, имеющем минимальное количество стираний, и соответственно, выполнения замены таким образом, чтобы все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий максимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий минимальное количество стираний, и все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий минимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий максимальное количество стираний.
[0074] Специалисты в данной области техники должны понять, что функции процессора в устройстве 1500 могут быть реализованы посредством программного обеспечения, аппаратного обеспечения или комбинации программного и аппаратного обеспечения.
[0075] Вариант осуществления настоящего изобретения дополнительно предоставляет считываемый машиной запоминающий носитель для хранения выполняемой машиной команды, в котором, когда выполняется выполняемая машиной команда, машине разрешается заменять, с предварительно установленным временным интервалом, блок целевых данных в кэше основного запоминающего носителя, где по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, кэш основного запоминающего носителя включает в себя носитель флэш-памяти, и замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
[0076] Способ может дополнительно включать в себя следующий этап: замену, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе таким образом, чтобы после одного цикла коммутации количества стираний блоков целевых данных в кэше были близки друг к другу, где количество периодов коммутации, включенных в один цикл коммутации, не меньше, чем количество N целевых блоков данных, включенных в кэш.
[0077] Способ может дополнительно включать в себя следующий этап: замену, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается каждый блок данных в основном запоминающем носителе, таким образом, чтобы каждый блок данных в основном запоминающем носителе отображался в различные блоки целевых данных в кэше в различные периоды коммутации одного цикла коммутации, где количество периодов коммутации, включенных в один цикл коммутации, равно количеству N целевых блоков данных, включенных в кэш.
[0078] Этап посылки, описанный выше, может дополнительно включать в себя следующий этап: перемещение, в каждом периоде коммутации одного цикла коммутации, в соответствии с последовательностью номеров блоков целевых данных в кэше, данных каждого блока целевых данных в кэше к блоку целевых данных, имеющему номер, смежный с номером блока целевых данных, способом алгоритма циклического обслуживания, и, соответственно, замену, в соответствии с перемещением данных в блоках целевых данных, блока целевых данных, в который отображается каждый блок данных в основном запоминающем носителе.
[0079] Этап обнаружения, описанный выше, может дополнительно включать в себя следующий этап: обмен, в каждом периоде коммутации одного цикла коммутации, данных, кэшированных в блоке целевых данных, в настоящее время имеющем максимальное количество стираний в кэше, с данными, кэшированными в блоке целевых данных в кэше, отличном от блока целевых данных, имеющего максимальное количество стираний, где данные в последнем из этих двух блоков целевых данных обмениваются минимальное количество раз в текущем цикле коммутации, и последний блок целевых данных отличается от блока целевых данных, который обменивается данными с блоком целевых данных, в настоящее время имеющим максимальное количество стираний, в предыдущий период коммутации текущего цикла коммутации, и, соответственно, замену блока целевых данных, в который отображается соответствующий блок данных в основном запоминающем носителе, где один цикл коммутации включает в себя N×(N-1) периодов коммутации, и в одном цикле коммутации каждый блок целевых данных кэша является блоком целевых данных, имеющим максимальное количество стираний в кэше в различном N-1 периоде коммутации.
[0080] Вариант осуществления настоящего изобретения дополнительно предоставляет считываемый машиной запоминающий носитель для хранения выполняемой машиной команды, при этом, когда выполняется выполняемая машиной команда, машине разрешено: контролировать количество стираний каждого блока целевых данных в кэше основного запоминающего носителя, где один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, и кэш основного запоминающего носителя включает в себя носитель флэш-памяти; когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стираний, заменять блок целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, где замененный блок целевых данных в кэше включает в себя блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и непрерывно контролировать количество стираний, сгенерированных после того, как будет изменен каждый блок целевых данных в кэше.
[0081] Способ может дополнительно включать в себя следующий этап: обмен данных, кэшированных в блоке целевых данных, имеющем максимальное количество стираний, с данными, кэшированными в блоке целевых данных, имеющем минимальное количество стираний, и, соответственно, выполнение замены таким образом, чтобы все блоки данных, в настоящее время отображаемые в блок целевых данных, имеющий максимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий минимальное количество стираний, и все блоки данных, в настоящее время отображаемые в запоминающем носителе, имеющий минимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий максимальное количество стираний.
[0082] Специалисты в данной области техники должны понять, что различные вариации и изменения могут быть сделаны к способам и устройствам, описанным в вариантах осуществления настоящего изобретения, не отступая от сущности настоящего изобретения, и эти вариации и изменения должны находиться в объеме охраны настоящего изобретения. Поэтому, объем охраны настоящего изобретения должен быть заявлен в прилагаемой формуле изобретения.

Claims (15)

1. Способ для управления отображением кэша, содержащий:
замену, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, причем по меньшей мере один блок данных в основном запоминающем носителе отображается в упомянутый блок целевых данных, при этом этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, причем один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, кэш основного запоминающего носителя содержит носитель флэш-памяти, и замененный блок целевых данных в кэше содержит блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
2. Способ в соответствии с п. 1, в котором этап замены, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, в котором по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, содержит:
замену, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, таким образом, чтобы после одного цикла коммутации количество стираний целевых блоков данных в кэше было близко друг к другу, при этом количество периодов коммутации, содержащихся в одном цикле коммутации, не меньше, чем количество N блоков целевых данных, содержащихся в кэше.
3. Способ в соответствии с п. 1, в котором этап замены, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, где по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, содержит:
замену, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается каждый блок данных в основном запоминающем носителе, таким образом, чтобы каждый блок данных в основном запоминающем носителе отображался в различные блоки целевых данных в кэше в различные периоды коммутации одного цикла коммутации, при этом количество периодов коммутации, содержащихся в одном цикле коммутации, равно количеству N блоков целевых данных, содержащихся в кэше.
4. Способ в соответствии с п. 3, в котором этап замены, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается каждый блок данных в основном запоминающем носителе, содержит:
перемещение, в каждом периоде коммутации одного цикла коммутации, в соответствии с порядковым номером блоков целевых данных в кэше, данных каждого блока целевых данных в кэше к блоку целевых данных, имеющему номер, смежный с номером блока целевых данных, способом алгоритма циклического обслуживания, и, соответственно, замену, в соответствии с перемещением данных в блоках целевых данных, блока целевых данных, в который отображается каждый блок данных в основном запоминающем носителе.
5. Способ в соответствии с п. 1, в котором этап замены, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, в котором по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, содержит:
обмен, в каждом периоде коммутации одного цикла коммутации, данных, кэшированных в блоке целевых данных, в настоящее время имеющем максимальное количество стираний в кэше, с данными, кэшированными в блоке целевых данных в кэше, отличном от блока целевых данных, имеющего максимальное количество стираний, при этом данные в последнем из этих двух блоков целевых данных обмениваются минимальное количество раз в текущем цикле коммутации, и последний блок целевых данных отличен от блока целевых данных, который обменивается данными с блоком целевых данных, в настоящее время имеющим максимальное количество стираний, в предыдущем периоде коммутации текущего цикла коммутации, и, соответственно, замену блока целевых данных, в который отображается соответствующий блок данных в основном запоминающем носителе;
при этом один цикл коммутации содержит N×(N-1) периодов коммутации, и в одном цикле коммутации каждый блок целевых данных кэша является блоком целевых данных, имеющим максимальное количество стираний в кэше в других N-1 периодах коммутации.
6. Способ для управления отображением кэша, содержащий:
контроль количества стираний каждого блока целевых данных в кэше основного запоминающего носителя, при этом один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше, и кэш основного запоминающего носителя содержит носитель флэш-памяти;
когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стираний, замену блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, при этом этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, причем замененный блок целевых данных в кэше содержит блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и
непрерывный контроль количества стираний, сгенерированных после того, как будет изменен каждый блок целевых данных в кэше.
7. Способ в соответствии с п. 6, в котором этап замены блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, содержит:
обмен данных, кэшированных в блоке целевых данных, имеющем максимальное количество стираний, с данными, кэшированными в блоке целевых данных, имеющем минимальное количество стираний, и, соответственно, выполнение замены таким образом, чтобы все блоки данных, в настоящее время отображенные в блок целевых данных, имеющий максимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий минимальное количество стираний, и все блоки данных, в настоящее время отображенные в блок целевых данных, имеющий минимальное количество стираний, в основном запоминающем носителе, отображались в блок целевых данных, имеющий максимальное количество стираний.
8. Система кэша, содержащая:
основной запоминающий носитель;
носитель флэш-памяти, подсоединенный к основному запоминающему носителю и служащий в качестве кэша основного запоминающего носителя, причем один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше; и
процессор, сконфигурированный для:
замены, с предварительно установленным интервалом времени, блока целевых данных в кэше основного запоминающего носителя, при этом по меньшей мере один блок данных в основном запоминающем носителе отображается в блок целевых данных, этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, причем, и замененный блок целевых данных в кэше содержит блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше.
9. Система кэша в соответствии с п. 8, в которой процессор дополнительно сконфигурирован для:
замены, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, таким образом, чтобы после одного цикла коммутации количество стираний блоков целевых данных в кэше было близко друг к другу, при этом количество периодов коммутации, содержащихся в одном цикле коммутации, не меньше, чем количество N блоков целевых данных, содержащихся в кэше.
10. Система кэша в соответствии с п. 8, в которой процессор дополнительно сконфигурирован для:
замены, в каждом периоде коммутации одного цикла коммутации, блока целевых данных в кэше, в который отображается каждый блок данных в основном запоминающем носителе, таким образом, чтобы каждый блок данных в основном запоминающем носителе отображался в различные блоки целевых данных в кэше в различные периоды коммутации одного цикла коммутации, причем количество периодов коммутации, содержащихся в одном цикле коммутации, равно количеству N блоков целевых данных, содержащихся в кэше.
11. Система кэша в соответствии с п. 10, в которой процессор дополнительно сконфигурирован для:
перемещения, в каждом периоде коммутации одного цикла коммутации, в соответствии с порядковым номером блоков целевых данных в кэше, данных каждого блока целевых данных в кэше в блок целевых данных, имеющий номер, смежный с номером блока целевых данных, способом алгоритма циклического обслуживания, и, соответственно, замены, в соответствии с перемещением данных в блоках целевых данных, блока целевых данных, в который отображается каждый блок данных в основном запоминающем носителе.
12. Система кэша в соответствии с п. 8, в которой процессор дополнительно сконфигурирован для:
обмена, в каждом периоде коммутации одного цикла коммутации, данных, кэшированных в блоке целевых данных, в настоящее время имеющем максимальное количество стираний в кэше, с данными, кэшированными в блоке целевых данных в кэше, отличном от блока целевых данных, имеющего максимальное количество стираний, причем данные в последнем блоке целевых данных обменены минимальное количество раз в текущем цикле коммутации, и последний блок целевых данных отличен от блока целевых данных, который обменивается данными с блоком целевых данных, в настоящее время имеющим максимальное количество стираний в предыдущий период коммутации текущего цикла коммутации, и, соответственно, замены блока целевых данных, в который отображается соответствующий блок данных в основном запоминающем носителе;
при этом один цикл коммутации содержит N×(N-1) периодов коммутации, и в одном цикле коммутации каждый блок целевых данных кэша является блоком целевых данных, имеющим максимальное количество стираний в кэше в другие N-1 периоды коммутации.
13. Система кэша, содержащая:
основной запоминающий носитель;
носитель флэш-памяти, подсоединенный к основному запоминающему носителю и служащий в качестве кэша основного запоминающего носителя, в котором один или более блоков данных в основном запоминающем носителе отображаются только в один блок целевых данных в кэше; и
процессор, сконфигурированный для:
контроля количества стираний каждого блока целевых данных в кэше;
когда разница в количестве стираний между блоком целевых данных, имеющим максимальное количество стираний, и блоком целевых данных, имеющим минимальное количество стираний в кэше, достигает предварительно установленного порога стираний, замены блока целевых данных в кэше, в который отображается по меньшей мере один блок данных в основном запоминающем носителе, при этом этап замены содержит обновление соотношения отображения между блоком целевых данных и основным запоминающим носителем, и при этом измененный блок целевых данных в кэше содержит блок целевых данных, в настоящее время имеющий максимальное количество стираний в кэше; и
непрерывного контроля количества стираний, сгенерированных после того, как будет заменен каждый блок целевых данных в кэше.
14. Система кэша в соответствии с п. 13, в которой процессор дополнительно сконфигурирован для:
обмена данных, кэшированных в блоке целевых данных, имеющем максимальное количество стираний, с данными, кэшированными в блоке целевых данных, имеющем минимальное количество стираний и, соответственно, выполнения замены таким образом, чтобы все блоки данных, в настоящее время отображенные в блок целевых данных, имеющий максимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий минимальное количество стираний, и все блоки данных, в настоящее время отображенные в блок целевых данных, имеющий минимальное количество стираний в основном запоминающем носителе, отображались в блок целевых данных, имеющий максимальное количество стираний.
15. Считываемый машиной запоминающий носитель для хранения выполняемых машиной команд, при этом при выполнении выполняемой машиной команд, машина разрешает выполнить этапы любого из пунктов формулы изобретения 1-7.
RU2014113342/08A 2011-10-27 2011-10-27 Способ для управления отображением кэша и системой кэша RU2556459C1 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/081449 WO2012163027A1 (zh) 2011-10-27 2011-10-27 控制缓存映射的方法及缓存***

Publications (1)

Publication Number Publication Date
RU2556459C1 true RU2556459C1 (ru) 2015-07-10

Family

ID=45986241

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2014113342/08A RU2556459C1 (ru) 2011-10-27 2011-10-27 Способ для управления отображением кэша и системой кэша

Country Status (7)

Country Link
US (1) US20140025875A1 (ru)
EP (1) EP2662774A4 (ru)
KR (1) KR20140043497A (ru)
CN (1) CN102439572B (ru)
AU (1) AU2011369945B2 (ru)
RU (1) RU2556459C1 (ru)
WO (1) WO2012163027A1 (ru)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140097924A (ko) * 2013-01-30 2014-08-07 한국전자통신연구원 우선 순위를 가지는 이중 캐싱 방법 및 이를 위한 장치
US9292451B2 (en) * 2013-02-19 2016-03-22 Qualcomm Incorporated Methods and apparatus for intra-set wear-leveling for memories with limited write endurance
US9348743B2 (en) * 2013-02-21 2016-05-24 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance
CN105426114B (zh) * 2014-09-23 2019-04-19 北京联想核芯科技有限公司 一种确定硬盘中擦写对象的方法及装置
CN104599708A (zh) * 2015-01-16 2015-05-06 珠海格力电器股份有限公司 显示器数据存储方法
CN106328201A (zh) * 2015-07-01 2017-01-11 上海华虹集成电路有限责任公司 非易失性存储器擦写控制电路及方法
US20170271030A1 (en) * 2016-03-18 2017-09-21 Alibaba Group Holding Limited Method and system for using downgraded flash die for cache applications
US10891201B1 (en) * 2017-04-27 2021-01-12 EMC IP Holding Company LLC Dynamic rule based model for long term retention
CN107861885A (zh) * 2017-11-07 2018-03-30 浪潮软件股份有限公司 一种数据传输方法及传输装置
CN109445681B (zh) * 2018-08-27 2021-05-11 华为技术有限公司 数据的存储方法、装置和存储***
CN112799595B (zh) * 2021-02-02 2023-06-23 联想(北京)有限公司 数据处理方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2361267C2 (ru) * 2003-11-26 2009-07-10 Майкрософт Корпорейшн Отложенная очистка буферов быстрого преобразования адресов
US8001318B1 (en) * 2008-10-28 2011-08-16 Netapp, Inc. Wear leveling for low-wear areas of low-latency random read memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865650B1 (en) * 2000-09-29 2005-03-08 Emc Corporation System and method for hierarchical data storage
EP1713085A1 (en) * 2002-10-28 2006-10-18 SanDisk Corporation Automated wear leveling in non-volatile storage systems
CN100483552C (zh) * 2002-10-28 2009-04-29 桑迪士克股份有限公司 在非易失性存储***中执行自动磨损平衡的方法
JP2007241539A (ja) * 2006-03-07 2007-09-20 Hitachi Systems & Services Ltd 半導体フラッシュメモリにおけるデータ管理及び制御システムと半導体フラッシュメモリ収容装置
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
KR100843543B1 (ko) * 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
US20080140918A1 (en) * 2006-12-11 2008-06-12 Pantas Sutardja Hybrid non-volatile solid state memory system
CN100501702C (zh) * 2007-01-17 2009-06-17 晶天电子(深圳)有限公司 一种闪存卡及其缓存、恢复数据的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2361267C2 (ru) * 2003-11-26 2009-07-10 Майкрософт Корпорейшн Отложенная очистка буферов быстрого преобразования адресов
US8001318B1 (en) * 2008-10-28 2011-08-16 Netapp, Inc. Wear leveling for low-wear areas of low-latency random read memory

Also Published As

Publication number Publication date
WO2012163027A1 (zh) 2012-12-06
CN102439572B (zh) 2014-04-02
AU2011369945B2 (en) 2015-06-25
KR20140043497A (ko) 2014-04-09
US20140025875A1 (en) 2014-01-23
EP2662774A4 (en) 2014-01-08
EP2662774A1 (en) 2013-11-13
CN102439572A (zh) 2012-05-02
AU2011369945A1 (en) 2014-03-13

Similar Documents

Publication Publication Date Title
RU2556459C1 (ru) Способ для управления отображением кэша и системой кэша
US10552317B2 (en) Cache allocation in a computerized system
US9189420B2 (en) Wear-leveling method, storage device, and information system
KR101437123B1 (ko) 메모리 시스템 및 그것의 마모도 관리 방법
US10831677B2 (en) Cache management method, cache controller, and computer system
CN104216665B (zh) 多层单元固态硬盘的存储管理方法
US8380929B2 (en) Hierarchical storage management for database systems
US8291245B2 (en) Method, apparatus and system for reducing power consumption based on storage device data migration
US10296466B2 (en) Information processing device, method of controlling a cache memory, and storage medium
CN107463509B (zh) 缓存管理方法、缓存控制器以及计算机***
EP3425513A1 (en) Cache management method and apparatus for non-volatile storage device
TW201824010A (zh) 資訊處理裝置及記憶體存取方法
US7984313B2 (en) Method, apparatus and system for reducing power consumption involving data storage devices
JP2014530422A (ja) バッファマッピングを制御するための方法およびバッファシステム
JP2011222057A (ja) メモリシステム
JP5002306B2 (ja) ハードディスク装置
JP5950470B2 (ja) バッファマッピングを制御するための方法およびバッファシステム
TWI598733B (zh) 權重式資料搬遷控制裝置與方法
KR100998212B1 (ko) Nand 플래시 메모리의 버퍼 접근 방법
KR100514756B1 (ko) 플래쉬 메모리를 파일 시스템으로 라이트하기 위한캐쉬처리 방법
KR101704936B1 (ko) 블록의 우선성에 기반한 ssd의 블록 교체방법 및 이를 적용하는 하이브리드 저장 시스템
US10884629B1 (en) Shard rebalancing based on over-provisioning
TWI512461B (zh) 用於混合式儲存設備的固態硬碟快取系統
JP2017138636A (ja) メモリ管理方法、メモリ管理のためのプログラムおよびメモリ管理装置
CN103902226B (zh) 数据写入方法与***