КОНТРОЛЛЕР МАССИВА, ТВЕРДОТЕЛЬНЫЙ ДИСК И СПОСОБ ДЛЯ УПРАВЛЕНИЯ ТВЕРДОТЕЛЬНЫМ ДИСКОМ ДЛЯ ЗАПИСИ ДАННЫХ
MASSIVE CONTROLLER, SOLID STATE DISK AND DATA RECORDING SOLID STATE DISK CONTROL METHOD

ОБЛАСТЬ ТЕХНИКИ
[0001] Варианты осуществления настоящего изобретения относятся к области технологий хранения и, в частности, к контроллеру массива, твердотельному диску и способу для управления твердотельным диском для записи данных.
УРОВЕНЬ ТЕХНИКИ
[0002] Устройство Флэш-Памяти (флэш-память) представляет собой энергонезависимую память. Носитель данных устройства флэш-памяти представляет собой микросхему Флэш-памяти, которая отличается тем, что никакие данные не исчезают после выключения. Следовательно, устройство флэш-памяти широко используется в качестве внешней или внутренней памяти. Устройство флэш-памяти, использующее микросхему Флэш-памяти в качестве носителя данных, может представлять собой твердотельный диск (Полное наименование: Твердотельное Устройство, сокращенно SSD), который также известен как твердотельный накопитель (Полное наименование: Твердотельный Накопитель, сокращенно SSD), или может быть другой памятью.
[0003] Один SSD обычно включает в себя несколько микросхем флэш-памяти, где каждая микросхема флэш-памяти включает в себя несколько блоков (блок). Как правило, при хранении данных, принятых снаружи, SSD может одновременно записывать данные на несколько блоков с целью повышения эффективности обработки данных. При выполнении обработки сборки мусора, SSD должен получить достоверные данные из нескольких блоков и переместить достоверные данные в свободный блок, что приводит к усилению записи.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0004] Варианты осуществления настоящего изобретения предлагают контроллер массива, твердотельный диск, и способ для управления твердотельным диском для записи данных, который может записывать сегмент данных, чей размер равен целому кратному стандартного размера блока, в один или более блоков, с тем чтобы заполнить один или более блоков, тем самым уменьшая усиление записи, когда твердотельный диск выполняет сбор мусора.
[0005] Первый аспект вариантов осуществления предоставляет контроллер массива, где контроллер массива расположен в системе хранения, при этом система хранения дополнительно включает в себя твердотельный диск, и контроллер массива включает в себя интерфейс связи и процессор, где интерфейс связи выполнен с возможностью осуществлять связь с твердотельным диском; и процессор выполнен с возможностью приема информации о логическом блоке, отправленном твердотельным диском, где информация о логическом блоке включает в себя размер логического блока и указывающую информацию логического блока, и процессор отправляет несколько запросов записи данных в твердотельный диск, где каждый запрос записи данных переносит целевые данные, при этом каждый запрос записи данных используется для предписания твердотельному диску записать целевые данные в логический блок, указанный указывающей информацией логического блока, и сумма длин целевых данных, перенесенных в нескольких запросах записи данных, равна размеру логического блока. После приема нескольких запросов записи данных, твердотельный диск записывает, в соответствии с указывающей информацией в каждом запросе записи данных, целевые данные, перенесенный в запросе записи данных, в логический блок, указанный указывающей информацией. Следует отметить, что поскольку логический блок включает в себя один или более блоков, запись целевых данных в логический блок фактически представляет собой запись целевых данных в один или более блоков, включенных в логический блок.
[0006] В этом способе реализации, из-за того, что сумма длин целевых данных, перенесенных в нескольких запросах записи данных, которые отправлены процессором в твердотельный диск, равна размеру логического блока, и каждый запрос записи данных используется для предписания твердотельному диску записать целевые данные в логический блок, указанный указывающей информацией логического блока, твердотельный диск может записать, в соответствии с указывающей информацией, все целевые данные, перенесенные в нескольких запросах записи данных, в один и тот же логический блок, и заполнить логический блок. Поскольку в этом варианте осуществления один логический блок включает в себя один или более блоков, это означает, что целевые данные записываются в один или более блоков, и эти блоки заполняются. Специалисту в данной области техники может быть понятно, что во время сборки мусора твердотельный диск осуществляет сбор в блоках. Поскольку целевые данные все записываются в один или более блоков, и один или более блоков не включают в себя другие данные, если целевые данные все впоследствии освобождаются контроллером массива, т.е., помечаются как недостоверные данные, SSD может непосредственно стереть данные из всех блоков в логическом блоке без перемещения достоверных данных, тем самым уменьшая усиление записи во время сборки мусора.
[0007] Со ссылкой на первый аспект, в первом способе реализации первого аспекта, блоки, включенные в логический блок, расположены в разных каналах. Как правило, в твердотельном диске могут быть реализованы одновременные операции чтения и записи между каналами. Следовательно, когда блоки, включенные в логический блок, расположены в разных каналах, целевые данные могут быть одновременно записаны в логический блок, что улучшает эффективность записи данных.
[0008] Со ссылкой на первый аспект, во втором способе реализации первого аспекта, блоки, включенные в логический блок, принадлежат одному и тому же каналу. В некоторых случаях, одновременное чтение и запись могут также быть реализованы между несколькими блоками в одном канале. Следовательно, когда блоки, включенные в логический блок, принадлежат одному и тому же каналу, целевые данные могут быть одновременно записаны в логический блок, что также может улучшить эффективность записи данных.
[0009] Со ссылкой на любой из вышеупомянутых способов реализации первого аспекта, в третьем способе реализации первого аспекта, логический блок представляет собой логический блок в состоянии готов-к-записи, где логический блок в состоянии готов-к-записи относится к логическому блоку, который был выделен твердотельным диском для хранения данных. В этом варианте осуществления, логический блок имеет четыре состояния: свободный, готов-к-записи, полный и неисправный. Твердотельный диск сообщает о логическом блоке в состоянии готов-к-записи контроллеру массива, где данные могут быть непосредственно записаны в логический блок в состоянии готов-к-записи. Следовательно, при приеме запросов записи данных, отправленных контроллером массива, твердотельный диск может напрямую записать целевые данные в логический блок в состоянии готов-к-записи в соответствии с указывающей информацией, переносимой в запросах записи данных.
[0010] Со ссылкой на любой один из вышеупомянутых способов реализации первого аспекта, в четвертом способе реализации первого аспекта, для указывающей информации логического блока, в определенном способе реализации, указывающая информация представляет собой идентификатор, который выделяется твердотельным диском логическому блоку. Когда указывающая информация представляет собой идентификатор логического блока, каждый запрос записи данных, который отправляется контроллером массива твердотельному диску, переносит идентификатор. После приема запроса записи данных, твердотельный диск может записать, в соответствии с идентификатором, целевые данные в каждом запросе записи данных в логический блок, соответствующий идентификатору, с тем чтобы заполнить логический блок, соответствующий идентификатору.
[0011] Со ссылкой на любой один из вышеупомянутых способов реализации первого аспекта, это изобретение дополнительно предоставляет способ реализации, альтернативный четвертому способу реализации первого аспекта, то есть, в пятом способе реализации первого аспекта, и в этом способе реализации, указывающая информация логического блока включает в себя диапазон логических адресов, который выделяется твердотельным диском логическому блоку. Когда указывающая информация представляет собой диапазон логических адресов, каждый запрос записи данных, который отправляется контроллером массива твердотельному диску, переносит поддиапазон диапазона логических адресов. После приема запроса записи данных, твердотельный диск может определить, в соответствии с поддиапазоном, логический блок, соответствующий целевым данным в каждом запросе записи данных, и записать целевые данные в логический блок, с тем чтобы заполнить логический блок.
[0012] Со ссылкой на любой из вышеупомянутых способов реализации первого аспекта, в шестом способе реализации первого аспекта, контроллер массива дополнительно включает в себя кэш, и процессор дополнительно выполнен с возможностью чтения нескольких частей целевых данных из кэша. Поскольку контроллер массива включает в себя кэш, после приема внешних данных, контроллер массива может временно хранить данные в кэше вместо непосредственной отправки данных в твердотельный диск для хранения, и отправлять данные в твердотельный диск, когда размер данных в кэше достигает определенного водяного знака (например, размера логического блока).
[0013] Со ссылкой на шестой способ реализации первого аспекта, в седьмом способе реализации первого аспекта, система хранения дополнительно включает в себя хост, и контроллер массива расположен между хостом и твердотельным диском. В этом способе реализации, контроллер массива может принимать данные из хоста, и записывать данные в кэш.
[0014] Второй аспект вариантов осуществления предоставляет твердотельный диск, где твердотельный диск включает в себя микросхему флэш-памяти и контроллер твердотельного диска, где микросхема флэш-памяти включает в себя несколько каналов, и каждый канал включает в себя несколько блоков; контроллер твердотельного диска выполнен с возможностью отправки информации о логическом блоке в контроллер массива, где информация о логическом блоке включает в себя размер логического блока и указывающую информацию логического блока; и кроме того, контроллер твердотельного диска дополнительно выполнен с возможностью приема нескольких запросов записи данных, отправленных контроллером массива, где каждый запрос записи данных переносит целевые данные, и каждый запрос записи данных используется для предписания твердотельному диску записать целевые данные в логический блок, указанный указывающей информацией логического блока. Кроме того, сумма длин целевых данных, переносимых в нескольких запросах записи данных, равна размеру логического блока; и контроллер твердотельного диска затем записывает целевые данные, переносимые в каждом запросе записи данных, в логический блок, указанный указывающей информацией. Следует отметить, что поскольку логический блок включает в себя один или более блоков, запись целевых данных в логический блок фактически представляет собой запись целевых данных в один или более блоков, включенных в логический блок.
[0015] В этом способе реализации, твердотельный диск передает информацию о логическом блоке контроллеру массива. Информация о логическом блоке включает в себя размер логического блока и указывающую информацию логического блока. Следовательно, контроллер массива может отправлять запросы записи данных в твердотельный диск в соответствии с информацией о логическом блоке. В частности, сумма длин целевых данных, переносимых в нескольких запросах записи данных, которые отправляются контроллером массива в твердотельный диск, равна размеру логического блока, и каждый запрос записи данных используется для предписания твердотельному диску записать целевые данные в логический блок, указанный указывающей информацией логического блока. Следовательно, твердотельный диск может записать, в соответствии с указывающей информацией, все целевые данные, переносимые в нескольких запросах записи данных, в один и тот же логический блок, и заполнить логический блок. Поскольку в этом варианте осуществления один логический блок включает в себя один или более блоков, это означает, что целевые данные записываются в один или более блоков, и эти блоки заполняются. Специалисту в данной области техники может быть понятно, что во время сборки мусора твердотельный диск осуществляет сбор в блоках. Поскольку целевые данные все записываются в один или более блоков, и один или более блоков не включают в себя другие данные, если целевые данные все впоследствии освобождаются контроллером массива, т.е., помечаются как недостоверные данные, SSD может непосредственно стереть данные из всех блоков в логическом блоке без перемещения достоверных данных, тем самым уменьшая усиление записи во время сборки мусора.
[0016] Со ссылкой на второй аспект, в первом способе реализации второго аспекта, блоки, включенные в логический блок, расположены в разных каналах. Как правило, в твердотельном диске могут быть реализованы одновременные операции чтения и записи между каналами. Следовательно, когда блоки, включенные в логический блок, расположены в разных каналах, целевые данные могут быть одновременно записаны в логический блок, что улучшает эффективность записи данных.
[0017] Со ссылкой на второй аспект, во втором способе реализации второго аспекта, блоки, включенные в логический блок, принадлежат одному и тому же каналу. В некоторых случаях, одновременное чтение и запись могут также быть реализованы между несколькими блоками в одном канале. Следовательно, когда блоки, включенные в логический блок, принадлежат одному и тому же каналу, целевые данные могут быть одновременно записаны в логический блок, что также может улучшить эффективность записи данных.
[0018] Со ссылкой на любой из вышеупомянутых способов реализации второго аспекта, в третьем способе реализации второго аспекта, логический блок представляет собой логический блок в состоянии готов-к-записи, где логический блок в состоянии готов-к-записи относится к логическому блоку, который был выделен твердотельным диском для хранения данных. В этом варианте осуществления, логический блок имеет четыре состояния: свободный, готов-к-записи, полный и неисправный. Твердотельный диск сообщает о логическом блоке в состоянии готов-к-записи контроллеру массива, где данные могут быть непосредственно записаны в логический блок в состоянии готов-к-записи. Следовательно, при приеме запросов записи данных, отправленных контроллером массива, твердотельный диск может напрямую записать целевые данные в логический блок в состоянии готов-к-записи в соответствии с указывающей информацией, переносимой в запросах записи данных.
[0019] Со ссылкой на любой один из вышеупомянутых способов реализации второго аспекта, в четвертом способе реализации второго аспекта, для указывающей информации логического блока, в определенном способе реализации, указывающая информация представляет собой идентификатор, который выделяется твердотельным диском логическому блоку. Когда указывающая информация представляет собой идентификатор логического блока, каждый запрос записи данных, принятый твердотельным диском, переносит идентификатор. После приема запроса записи данных, твердотельный диск может записать, в соответствии с идентификатором, целевые данные в каждом запросе записи данных в логический блок, соответствующий идентификатору, с тем чтобы заполнить логический блок, соответствующий идентификатору.
[0020] Со ссылкой на любой один из вышеупомянутых способов реализации второго аспекта, это изобретение дополнительно предоставляет способ реализации, альтернативный четвертому способу реализации второго аспекта, то есть, в пятом способе реализации второго аспекта, и в этом способе реализации, указывающая информация логического блока включает в себя диапазон логических адресов, который выделяется твердотельным диском логическому блоку. Когда указывающая информация представляет собой диапазон логических адресов, каждый запрос записи данных, принятый твердотельным диском, переносит поддиапазон диапазона логических адресов. После приема запроса записи данных, твердотельный диск может определить, в соответствии с поддиапазоном, логический блок, соответствующий целевым данным в каждом запросе записи данных, и записать целевые данные в логический блок, с тем чтобы заполнить логический блок.
[0021] Со ссылкой на способы реализации второго аспекта с третьего по пятый, в шестом способе реализации второго аспекта, контроллер твердотельного диска дополнительно выполнен с возможностью возвращения указывающей информации, выделенной логическому блоку. Поскольку указывающая информация выделена только логическому блоку в состоянии готов-к-записи, когда логический блок заполняется, указывающая информация логического блока может быть возвращена для другого логического блока в состоянии готов-к-записи.
[0022] Со ссылкой на любой из вышеупомянутых способов реализации второго аспекта, в седьмом способе реализации второго аспекта, контроллер твердотельного диска специально выполнен с возможностью отправки команды ЗАПИСЬ SCSI (SCSI WRITE) в контроллер массива, где команда включает в себя поле НОМЕР ГРУППЫ (GROUP NUMBER), и поле используется для предписания информации логического. В этом способе реализации, частная команда предоставлена для того, чтобы передавать указывающую информацию логического блока. Традиционная команда SCSI не включает в себя поле НОМЕР ГРУППЫ, В этом варианте осуществления, поле НОМЕР ГРУППЫ специально добавлено в команду ЗАПИСЬ SCSI, чтобы передать указывающую информацию логического блока.
[0023] Третий аспект вариантов осуществления настоящего изобретения предоставляет способ для управления твердотельным диском, чтобы записывать данные, где способ применяется к контроллеру массива, предоставленному в первом аспекте.
[0024] Четвертый аспект вариантов осуществления настоящего изобретения предоставляет способ для управления твердотельным диском, чтобы записывать данные, где способ применяется к контроллеру массива, предоставленному во втором аспекте.
[0025] Пятый аспект вариантов осуществления настоящего изобретения предоставляет устройство для управления твердотельным диском, чтобы записывать данные, где устройство расположено в контроллере массива, предоставленном в первом аспекте.
[0026] Шестой аспект вариантов осуществления настоящего изобретения предоставляет устройство для управления твердотельным диском, чтобы записывать данные, где устройство расположено в контроллере массива, предоставленном во втором аспекте.
[0027] В соответствии со способами для управления твердотельным диском, чтобы записывать данные, и устройствами для управления твердотельным диском, чтобы записывать данные, предоставленными в аспектах с третьего по шестой, сегмент данных, чей размер равен целому кратному стандартного размера блока, может быть записан в один или более блоков, с тем чтобы заполнить один или более блоков, тем самым уменьшая усиление записи, когда твердотельный диск выполняет сбор мусора.
[0028] Варианты осуществления настоящего изобретения предоставляют компьютерный программный продукт, включающий в себя компьютерно-читаемый носитель данных, который хранит код программы, где инструкция, включенная в состав программного кода, может быть выполнена контроллером массива в первом аспекте, и используется для выполнения по меньшей мере одного способа в третьем аспекте.
[0029] Варианты осуществления настоящего изобретения предоставляют компьютерный программный продукт, включающий в себя компьютерно-читаемый носитель данных, который хранит код программы, где инструкция, включенная в состав программного кода, может быть выполнена контроллером массива во втором аспекте, и используется для выполнения по меньшей мере одного способа в четвертом аспекте.
[0030] Вышеупомянутый компьютерный программный продукт, предоставленный в вариантах осуществления настоящего изобретения, может записывать сегмент данных, чей размер равен целому кратному стандартного размера блока, в один или более блоков, с тем чтобы заполнить один или более блоков, тем самым уменьшая усиление записи, когда твердотельный диск выполняет сбор мусора.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0031] Чтобы описать технические решения в вариантах осуществления настоящего изобретения более четко, нижеследующее кратко знакомит с прилагаемыми чертежами, требуемыми для описания вариантов осуществления или в предшествующем уровне техники. Очевидно, прилагаемые чертежи в последующем описании показывают только некоторые варианты осуществления настоящего изобретения, и рядовые специалисты в данной области техники все еще могут получить другие чертежи из этих прилагаемых чертежей без творческих усилий.
[0032] Фиг. 1 представляет собой схему сценария применения в соответствии с вариантом осуществления настоящего изобретения;
[0033] Фиг. 2 представляет собой схематическое представление микросхемы флэш-памяти соответствии в вариантом осуществления настоящего изобретения;
[0034] Фиг. 3 представляет собой схематическое представление блока в соответствии с вариантом осуществления настоящего изобретения;
[0035] Фиг. 4 представляет собой схематическое представление хранения данных твердотельным диском в предшествующем уровне техники в соответствии с вариантом осуществления настоящего изобретения;
[0036] Фиг. 5 представляет собой схематическое представление логического блока в соответствии с вариантом осуществления настоящего изобретения;
[0037] Фиг. 6 представляет собой схематическую структурную схему контроллера массива в соответствии с вариантом осуществления настоящего изобретения;
[0038] Фиг. 7 представляет собой схематическую блок-схему последовательности операций способа для управления твердотельным диском, чтобы записывать данные, в соответствии с вариантом осуществления настоящего изобретения;
[0039] Фиг. 8 представляет собой схематическое представление хранения данных твердотельным диском в соответствии с вариантом осуществления настоящего изобретения;
[0040] Фиг. 9 представляет собой схематическую блок-схему последовательности операций другого способа для управления твердотельным диском, чтобы записывать данные, в соответствии с вариантом осуществления настоящего изобретения;
[0041] Фиг. 10 представляет собой схематическую блок-схему последовательности операций еще одного другого способа для управления твердотельным диском, чтобы записывать данные, в соответствии с вариантом осуществления настоящего изобретения;
[0042] Фиг. 11 представляет собой схематическую структурную схему устройства для управления твердотельным диском, чтобы записывать данные, в соответствии с вариантом осуществления настоящего изобретения; и
[0043] Фиг. 12 представляет собой схематическую структурную схему другого устройства для управления твердотельным диском, чтобы записывать данные, в соответствии с вариантом осуществления настоящего изобретения.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0044] Варианты осуществления настоящего изобретения предлагают контроллер массива, твердотельный диск, и способ для управления твердотельным диском для записи данных, который может записывать сегмент данных, чей размер равен целому кратному стандартного размера блока, в один или более блоков, с тем чтобы заполнить один или более блоков, тем самым уменьшая усиление записи, когда твердотельный диск выполняет сбор мусора.
[0045] Фиг. 1 представляет собой схему состава системы хранения в соответствии с вариантом осуществления настоящего изобретения. Система хранения, показанная на Фиг. 1, включает в себя хост 33, контроллер 11 массива и твердотельный диск 22. Хост 33 может быть оконечным устройством, таким как сервер или настольный компьютер.
[0046] Контроллер 11 массива расположен между хостом 33 и твердотельным диском 22, и может быть вычислительным устройством, например, сервером или настольным компьютером. Операционная система и другая прикладная программа установлены в контроллере 11 массива. Контроллер 11 массива может принимать запрос ввода/вывода (I/O) от хоста 33, сохранять данные, переносимые в запросе I/O, и записывать данные, хранящиеся в контроллере 11 массива, на твердотельный диск 22, когда удовлетворяется определенное условие.
[0047] Твердотельный диск (Твердотельное Устройство, SSD) 22 представляет собой память, использующую микросхему Флэш-памяти в качестве носителя данных, который также называют твердотельным накопителем (Твердотельный Накопитель, SSD), или может включать в себя другую память. В этом варианте осуществления, твердотельный диск 22 описан с помощью SSD в качестве примера.
[0048] Фиг. 1 является лишь примером для описания, и не представляет собой никаких ограничений определенному способу организации сетей. Например, могут использоваться каскадная древовидная сеть или кольцевая сеть, при условии, что контроллер 11 массива и твердотельный диск 22 могут осуществлять связь друг с другом.
[0049] Твердотельный диск 22 включает в себя контроллер 220 SSD и носитель 221 данных. Контроллер 220 SSD выполнен с возможностью выполнения операции, такой как запрос записи данных или запрос чтения данных, отправленный контроллером 11 массива.
[0050] Носитель 221 данных, как правило, включает в себя несколько микросхем флэш-памяти (Флэш). Каждая микросхема флэш-памяти включает в себя несколько каналов, и каждый канал включает в себя несколько блоков (блок) (как показано на Фиг. 2). Как правило, микросхема флэш-памяти может быть разделена на несколько блоков в соответствии с фиксированным размером. Следовательно, блок имеет стандартный размер. Стандартный размер блока относится к размеру данных, которые могут быть сохранены в блоке, который является свободным и который не включает в себя плохих страниц (плохая страница). Как правило, стандартный размер блока может быть N-й степенью 2 (M), где N представляет собой положительное целое число. Операция стирания, выполняемая SSD, выполняется в блоках. Например, когда SSD требуется выполнить сбор мусора, SSD может сначала переместить достоверные данные из одного блока в другой новый блок, а затем стереть все данные (включая достоверные и недостоверные данные), хранящиеся в исходном блоке. В этом варианте осуществления настоящего изобретения, достоверные данные в блоке относятся к данным, которые хранятся в блоке, и которые не были изменены, и эта часть данных, возможно, должна быть прочитана; недостоверные данные в блоке относятся к данным, которые хранятся в блоке и которые были изменены, и эту часть данных невозможно прочитать. Специалисту в данной области техники может быть известно, что из-за особенности стирания микросхемы флэш-памяти, данные, хранящие в блоке, не изменяются непосредственно, как данные в обычном механическом жестком диске. Когда данные в блоке необходимо изменить, контроллер 220 SSD находит новый блок и записывает измененные данные в новый блок, а данные в исходном блоке становятся недостоверными. Недостоверные данные стираются, когда SSD выполняет сборку мусора.
[0051] Кроме того, как показано на Фиг. 3, каждый блок включает в себя несколько страниц (страница). SSD записывает данные на страницы при выполнении запроса записи данных. Например, контроллер 11 массива отправляет запрос записи данных в контроллер 220 SSD, где запрос записи данных переносит адреса логических блоков (Адрес логического блока, LBA) и данные, и адреса LBA представляют собой адреса, которые являются видимыми и доступными для контроллера 11 массива. После приема запроса записи данных, SSD записывает данные на страницы одного или более блоков в соответствии с установленной политикой. Адреса страниц, на которые записаны данные, представляют собой адреса, в которых данные фактически хранятся, и также называются физическими адресами. SSD включает в себя уровень перевода флэш (Уровень Перевода Флэш, FTL), выполненный с возможностью устанавливать и сохранять соответствие между адресами LBA и физическими адресами. Когда контроллер 11 массива впоследствии отправляет запрос чтения данных в контроллер 220 SSD, чтобы запросить чтение данных, где запрос чтения данных переносит адреса LBA, контроллер 220 SSD может прочитать данные в соответствии с адресами LBA и соответствие между адресами LBA и физическими адресами, и отправить данные в контроллер 11 массива.
[0052] Когда контроллер 11 массива считывает сегмент данных из кэша и отправляет сегмент данных в SSD, как правило, сегмент данных представляет собой сегмент данных со смежными логическим адресами. Однако, при приеме запроса записи данных, контроллер 220 SSD записывает, в соответствии с политикой, установленной контроллером 220 SSD, данные на страницы (то есть, физические адреса) одного или более блоков. Специалисту в данной области техники может быть понятно, что фактически эти физические адреса не обязательно являются смежными. То есть, с точки зрения контроллера 11 массива, сегмент данных со смежными логическими адресами фактически записывается в физическое пространство SSD вразброс. Ниже описано, как записать данные посредством SSD в предшествующем уровне техники со ссылкой на Фиг. 4.
[0053] Фиг. 4 представляет собой схематическое представление того, как записать данные посредством SSD в предшествующем уровне техники. Как правило, из-за того, что твердотельный диск 22 может одновременно записывать данные в каналы, после того, как контроллер 11 массива отправляет данные в твердотельный диск 22, контроллер 220 SSD, как правило, выбирает один блок из каждого канала и одновременно записывает данные в несколько блоков. Может быть понятно, что твердотельный диск 22 может также одновременно записывать данные в несколько блоков в одном канале. Как показано на Фиг. 4, после того как данные записаны в несколько блоков, каждый блок предоставляет часть пространства для хранения части данных. На Фиг. 5 белая часть блока представляет свободное пространство блока, а серая часть блока представляет использованное пространство блока после того, как часть данных записана в блок. Следовательно, с точки зрения контроллера 11 массива, сегмент данных со смежными логическими адресами хранится в нескольких блоках вразброс, и данные, относящиеся к различным сегментам логического адреса, записываются в различные блоки. Специалисту в данной области техники может быть известно, что операция сборки мусора регулярно выполняется в SSD, и стирание осуществляется в блоках во время операции сборки мусора. Поскольку сегмент данных со смежными логическими адресами хранится в нескольких блоках вразброс, и данные, относящиеся к различным сегментам логического адреса, записываются в различные блоки, во время сборки мусора достоверные данные необходимо переместить из нескольких блоков в свободный блок, что увеличивает усиление записи, вызванное сборкой мусора. Усиление записи означает, что данные, записанные на микросхему флэш-памяти, больше, чем данные, которые записаны хостом на SSD.
[0054] В этом варианте осуществления, как показано на Фиг. 5, один блок может быть взят из каждого канала, чтобы сформировать логический блок (логический блок). То есть, логический блок в этом варианте осуществления включает в себя несколько блоков, и блоки расположены в разных каналах. Может быть понятно, что один блок может также быть взять из каждой части каналов, чтобы сформировать логический блок. Подобным образом, несколько блоков, включенные в логический блок, отдельно расположены в различных каналах. Размер логического блока представляет собой целое кратное стандартного размера блока, и зависит от количества блоков, включенных в логический блок. В этом варианте осуществления, размер логического блока может быть сохранен в контроллере 11 массива заранее. После приема запроса записи данных, отправленного хостом 33, контроллер 11 массива может временно сохранять запрос записи данных в кэше контроллера 11 массива, и отправлять данные в SSD для хранения, когда данные в кэше достигают размера логического блока.
[0055] В этом варианте осуществления, логические блоки классифицируются на четыре типа в соответствии с состояниями логических блоков: свободный (свободный) логический блок, готовый-к-записи (или записывающий) логический блок, полный (полный) логический блок и плохой (плохой) логический блок. Логический блок в свободном состоянии относится к логическому блоку, в котором данные были стерты; логический блок в состоянии готов-к-записи относится к логическому блоку, который был выделен для записи данных; логический блок в полном состоянии относится к логическому блоку, чье пространство было заполнено, и логический блок в полном состоянии может стать логическим блоком в свободном состоянии после стирания; логический блок в плохом состоянии относится к поврежденному логическому блоку, который не может быть использован. Логический блок для хранения данных, упомянутый в этом варианте осуществления, фактически представляет собой логический блок в состоянии готов-к-записи. Следовательно, если не указано иное в следующем описании, логический блок относится к логическому блоку в состоянии готов-к-записи.
[0056] Чтобы идентифицировать те логические блоки в состоянии готов-к-записи, в необязательном способе реализации, SSD выделяет идентификатор для каждого логического блока. Идентификатор может быть цифрой, буквой, или другим символом для уникальной идентификации логического блока, или может быть любой комбинацией цифры, буквы или другого символа. Например, идентификатор логического блока представляет собой 0, идентификатор другого логического блока представляет собой 1, идентификатор еще одного другого логического блока представляет собой 2, и так далее.
[0057] В другом необязательном способе реализации, SSD выделяет диапазон логических адресов каждому логическому блоку. Например, диапазон логических адресов, соответствующий логическому блоку, представляет собой диапазон с 0 МБ до 1023 МБ, диапазон логических адресов, соответствующий другому логическому блоку, представляет собой диапазон с 1024 МБ до 2047 МБ, диапазон логических адресов, соответствующий еще одному другому логическому блоку, представляет собой диапазон с 2048 МБ до 3071 МБ, и так далее.
[0058] Контроллер 220 SSD должен сообщать идентификатор логического блока или диапазон логических адресов логического блока контроллеру 11 массива, так что при отправке данных в SSD для хранения, контроллер 11 массива может добавить идентификатор логического блока в запрос записи данных и отправить запрос записи данных в SSD, чтобы предписывать SSD записать данные в логический блок, соответствующий идентификатору. Альтернативно, начальный логический адрес и длина в запросе записи данных указываются в соответствии с диапазоном логических адресов логического блока. Если есть несколько логических блоков в состоянии готов-к-записи, контроллер 11 массива принимает идентификаторы нескольких логических блоков или диапазоны логических адресов нескольких логических блоков, затем выбирает любой один из нескольких логических блоков, и отправляет запрос записи данных в SSD в соответствии с идентификатором диапазона логических адресов логического блока.
[0059] Ниже описана аппаратная структура контроллера 11 массива. Фиг. 6 представляет собой схематическую структурную схему контроллера 11 массива в соответствии с вариантом осуществления настоящего изобретения. Как показано на Фиг. 6, контроллер массива главным образом включает в себя процессор (процессор) 118, кэш (кэш) 120, память (память) 122, коммуникационную шину (шина для краткости) 126 и интерфейс 128 связи (Интерфейс Связи). Процессор 118, кэш 120, память 122 и интерфейс 128 связи осуществляют связь друг с другом с помощью коммуникационной шины 126.
[0060] Интерфейс 128 связи выполнен с возможностью осуществлять связь с хостом 33 или твердотельным диском 22.
[0061] Процессор 118 может быть центральным процессором CPU или специализированной интегральной схемой ASIC (Специализированная Интегральная Схема), или сконфигурирован как одна или более интегральные схемы, которые выполняют этот вариант осуществления настоящего изобретения. В этом варианте осуществления настоящего изобретения, процессор 118 может быть выполнен с возможностью приема запроса записи данных или запроса чтения данных от хоста 33, обработки запроса записи данных или запроса чтения данных, отправки запроса записи данных или запроса чтения данных в твердотельный диск 22, и выполнения другой операции.
[0062] Память 122 выполнена с возможностью хранения программы 124. Память 122 может включать в себя высокоскоростную память RAM (ОЗУ), и может дополнительно включать в себя энергонезависимую память (энергонезависимая память), такую как по меньшей мере одна память на магнитном диске. Может быть понятно, что память 122 может быть любым невременным (невременный) компьютерно-читаемым носителем, который может хранить программный код, таким как оперативное запоминающее устройство (Оперативное Запоминающее Устройство, ОЗУ, RAM), магнитный диск, жесткий диск, оптический диск, твердотельный диск (Твердотельный Диск, SSD) или энергонезависимая память.
[0063] Программа 124 может включать в себя программный код, где программный код включает в себя инструкцию работы компьютера.
[0064] Кэш 120 (Кэш) выполнен с возможностью временного хранения данных, принятых от хоста 33, или данных, считанных с твердотельного диска 22. Кэш 120 может быть любым невременным (невременный) машиночитаемым носителем, который может хранить данные, таким как ОЗУ (RAM), ПЗУ (ROM), флэш-память (Флэш-память), или твердотельный диск (Твердотельный Диск, SSD), который не ограничен в материалах настоящей заявки. Например, при приеме запроса записи данных, отправленного хостом 33, контроллер 11 массива может хранить запрос записи данных в кэше 120, а процессор 118 обрабатывает запрос записи данных. Необязательно, при приеме нескольких запросов записи данных, отправленных хостом 33, контроллер 11 массива может временно хранить несколько запросов записи данных в кэше 120, и когда размер в кэше 120 достигает водяного знака (например, размер данных, хранящихся в кэше 120, достигает размера логического блока), считывать данные, чей размер равен размеру логического блока, из кэша 120, и отправлять данные в твердотельный диск 22 для постоянного хранения.
[0065] Кроме того, память 122 и кэш 120 могут быть интегрированы или расположены отдельно, что не ограничено в этом варианте осуществления настоящего изобретения.
[0066] Ниже описан процесс способа для записи данных на твердотельный диск в соответствии с вариантом осуществления настоящего изобретения. Способ для записи данных на твердотельный диск в этом варианте осуществления настоящего изобретения может быть применен к системе хранения, показанной на Фиг. 1, и контроллеру 11 массива, показанному на Фиг. 6. Как показано на Фиг. 7, способ включает в себя следующие шаги:
[0067] Шаг S301: Контроллер 220 SSD отправляет указывающую информацию логического блока контроллеру 11 массива.
[0068] В частности, контроллер 220 SSD отправляет указывающую информацию логического блока процессору 118 контроллера 11 массива. Указывающая информация логического блока может быть идентификатором, который выделен твердотельным диском 22 логическому блоку, или может быть диапазоном логических адресов, который выделен твердотельным диском 22 логическому блоку, или другой информацией для указания определенного логического блока.
[0069] Шаг S302: Контроллер 220 SSD отправляет размер логического блока контроллеру 11 массива.
[0070] В частности, контроллер 220 SSD отправляет размер логического блока процессору 118 контроллера 11 массива, и процессор 118 принимает размер логического блока. Следует отметить, что шаг S302 и шаг S301 не обязательно выполняются в определенном порядке. То есть, в этом варианте осуществления, при условии, что контроллер 220 SSD отправляет размер логического блока контроллеру 11 массива, временной период или шаг, в котором размер логического блока отправлен контроллеру 11 массива, не ограничен. Кроме того, информация может быть отправлена отдельно, или может быть отправлена вместе с другой информацией, например, идентификатором логического блока.
[0071] Шаг S303: Контроллер 11 массива отправляет несколько частей целевых данных контроллеру 220 SSD, где сумма длин нескольких частей целевых данных равна размеру логического блока.
[0072] В частности, процессор 118 контроллера 11 массива добавляет несколько частей целевых данных к нескольким запросам записи данных, и отправляет несколько запросов записи данных контроллеру 220 SSD.
[0073] Когда указывающая информация представляет собой идентификатор логического блока, каждый запрос записи данных дополнительно должен переносить идентификатор логического блока. Когда указывающая информация представляет собой диапазон логических адресов логического блока, каждый запрос записи данных дополнительно должен переносить поддиапазон диапазона логических адресов логического блока. Эти два случая подробно описаны в способах реализации, показанных на Фиг. 9 и Фиг. 10.
[0074] Шаг S304: Контроллер 220 SSD записывает несколько частей целевых данных в логический блок.
[0075] В частности, после приема нескольких запросов записи данных на шаге S303, контроллер 220 SSD может определить, в соответствии с указывающей информацией в каждом запросе записи данных, логический блок, указанный указывающей информацией, и затем записать целевые данные в каждом запросе записи данных в логический блок.
[0076] В предшествующем уровне техники, запрос записи данных, который отправлен контроллером 11 массива в твердотельный диск 22, не включает в себя указывающую информацию логического блока. Следовательно, после приема запроса записи данных, контроллер 220 SSD в предшествующем уровне техники, как правило, выбирает несколько блоков и одновременно записывает данные в несколько блоков, что приводит к тому, что данные хранятся в блоках вразброс. Однако, в этом варианте осуществления, процессор 118 добавляет идентификатор логического блока к нескольким запросам записи данных и отправляет несколько запросов записи данных в твердотельный диск 22 для предписания твердотельному диску 22 записать все целевые данные в этих запросах записи данных в логические блоки, указанные указывающей информацией. Следует отметить, что поскольку логический блок включает в себя один или более блоков, запись целевых данных в логический блок фактически представляет собой запись целевых данных в один или более блоков, включенных в логический блок.
[0077] Следовательно, на шаге S304, после приема нескольких запросов записи данных, контроллер 220 SSD может записать целевые данные, переносимые в каждом запросе записи данных, в логический блок, указанный указывающей информацией. Кроме того, поскольку сумма длин целевых данных равна размеру логического блока, логический блок просто заполняется после того, как контроллер 220 SSD записывает целевые данные, перенесенные в запросах записи данных, в логический блок (как показано на Фиг. 8).
[0078] В соответствии со способом реализации, показанным на Фиг. 7, несколько частей целевых данных хранятся в одном логическом блоке, то есть, одном или более блоках. Поскольку эти части целевых данных все записываются в один или более блоков, и один или более блоков не включают в себя другие данные, если эти части целевых данных все впоследствии освобождаются контроллером массива, т.е., помечаются как недостоверные данные, операция стирания может быть непосредственно выполнена на блоках без перемещения достоверных данных, что уменьшает проблему усиления записи во время сборки мусора.
[0079] В частности, когда контроллеру 11 массива необходимо выполнить операцию сборки мусора на твердотельном диске, контроллер 11 массива может в общем отправить команду чтения в твердотельный диск 22, чтобы запросить чтение достоверных данных в логическом блоке твердотельного диска 22. После того как твердотельный диск 22 отправляет достоверные данные в контроллер 11 массива, контроллер 11 массива отправляет команду записи в твердотельный диск 22, чтобы запросить запись достоверных данных в новый логический блок. Затем, контроллер 11 массива отправляет корректирующую (trim) команду в твердотельный диск 22, чтобы указать, что исходный логический блок становится недостоверным. При выполнении операции сборки мусора в твердотельном диске, твердотельный диск обнаруживает, что логический блок является недостоверным, и может считать, что все данные, хранящиеся в логическом блоке, являются недостоверными данными, тем самым непосредственно выполняя стирание данных из блоков, включенных в логические блоки, без получения достоверных данных или перемещения достоверных данных заново. Таким образом, проблема усиления записи, когда твердотельный диск выполняет сборку мусора, уменьшается.
[0080] Ниже описан процесс способа для записи данных на твердотельный диск в соответствии с вариантом осуществления настоящего изобретения. Способ для записи данных на устройство флэш-памяти в этом варианте осуществления настоящего изобретения может быть применен к системе хранения, показанной на Фиг. 1, и контроллеру 11 массива, показанному на Фиг. 6. Как показано на Фиг. 8, способ включает в себя следующие шаги:
[0081] Шаг S101: Контроллер 220 SSD определяет логический блок в состоянии готов-к-записи из нескольких логических блоков, включенных в SSD.
[0082] Как описано выше, логические блоки, как правило, находятся в четырех состояниях: свободный, готов-к-записи, полный и плохой. В этом варианте осуществления, логические блоки в состоянии готов-к-записи выбираются из этих логических блоков, и помещаются в очередь логических блоков. Когда данные должны быть записаны, любой логический блок может быть непосредственно получен из очереди логических блоков для записи данных. Очередь логических блоков представляет собой структуру данных для управления логическими блоками в состоянии готов-к-записи. Может быть понятно, что в этом варианте осуществления, в дополнение к очереди, другая структура данных, например, связанный список, может также использоваться для управления логическими блоками. Очередь логических блоков может храниться в кэше контроллера 220 SSD или микросхеме флэш-памяти.
[0083] Может быть один или более определенных логических блоков в состоянии готов-к-записи.
[0084] Шаг S102: Контроллер 220 SSD выделяет идентификатор логическому блоку в состоянии готов-к-записи.
[0085] Идентификатор может быть числом, например, 0, 1, 2,..., или может быть другим символом для уникальной идентификации логического блока в состоянии готов-к-записи, или может быть любой комбинацией цифры, буквы или другого символа.
[0086] Шаг S103: Контроллер 220 SSD отправляет идентификатор, который выделен логическому блоку на шаге S102, в контроллер 11 массива.
[0087] В этом варианте осуществления, контроллер 220 SSD может отправлять идентификатор в контроллер 11 массива с помощью команды ЗАПИСЬ SCSI (SCSI WRITE), где команда ЗАПИСЬ SCSI включает в себя поле НОМЕР ГРУППЫ, и поле может использоваться для переноса идентификатора.
[0088] Шаг S104: Контроллер 220 SSD отправляет размер логического блока контроллеру 11 массива.
[0089] Это шаг аналогичен шагу S302 на Фиг. 7, и подробности не описаны здесь снова.
[0090] Шаг S105: Контроллер 11 массива принимает несколько частей данных, отправленных хостом 33.
[0091] Несколько частей данных могут быть отправлены хостом 33 в контроллер 11 массива путем использования команд записи. В частности, процессор 118 контроллера 11 массива принимает несколько частей данных, отправленных хостом 33, где каждая команда записи переносит по меньшей мере одну часть данных и диапазон логических адресов хоста данных. Логический адрес хоста относится к адресу области памяти, которая представлена контроллером 11 массива хосту 33. Диапазоны логических адресов хоста могут быть не смежными. Например, диапазон логических адресов хоста части данных представляет собой диапазон с 0×40000 до 0×40020, диапазон логических адресов хоста другой части данных представляет собой диапазон с 0×10010 до 0×10020, и диапазоны логических адресов хоста этих двух частей данных не являются смежными. Следует отметить, что в практическом применении, команда записи может переносить начальный логический адрес хоста и длину, и диапазон логических адресов хоста получают в соответствии с начальным логическим адресом хоста и длиной.
[0092] Шаг S106: Контроллер 11 массива записывает принятые несколько частей данных в кэш 120.
[0093] В частности, процессор 118 контроллера 11 массива записывает принятые несколько частей данных в кэш 120.
[0094] Как правило, после приема данных, отправленных хостом 33, контроллер 11 массива временно записывает данные в кэш 120 вместо того, чтобы непосредственно записывать данные в твердотельный диск 22. Когда область памяти кэша 120 достигает определенного водяного знака, процессор 118 считывает часть всех данных из кэша 120, и отправляет данные в SSD 22 для постоянного хранения.
[0095] Следует отметить, что шаги S105 и S106 и шаги с S101 по S104 не обязательно выполняются в определенном порядке. То есть, процесс приема и временного хранения, контроллером 11 массива, целевых данных, отправленных хостом 33, и процесс приема информации о логическом блоке, отправленной SSD 22, не противоречат друг другу, и не обязательно выполняются в определенном порядке, и могут выполняться одновременно.
[0096] Шаг S107: Контроллер 11 массива считывает несколько частей целевых данных из кэша 120.
[0097] В частности, процессор 118 контроллера 11 массива считывает несколько частей целевых данных из кэша 120.
[0098] Сумма длин нескольких частей целевых данных равна размеру логического блока. В этом варианте осуществления, чтобы отличить от данных, которые приняты контроллером 11 массива от хоста 33, данные, считанные из кэша 120, упоминаются как целевые данные. Сумма длин этих частей целевых данных равна размеру логического блока. Когда процессор 118 генерирует несколько запросов записи данных и отправляет несколько запросов записи данных в твердотельный диск 22, можно считать, что каждый запрос записи данных переносит одну часть целевых данных. Может быть понятно, что когда размер данных, которые принимаются контроллером 11 массива от хоста 33, и которые сохраняются в кэше 120, превышает размер логического блока, процессору 118 необходимо считать только несколько частей целевых данных, чей размер равен размеру логического блока из кэша 120. Кроме того, когда размер данных, которые приняты процессором 118 от хоста 33 и которые хранятся в кэше 120, не достигает размера логического блока, процессор 118 может не считывать данные из кэша 120, и выполнять обработку до тех пор, пока данные в кэше 120 не достигнут размера логического блока.
[0099] Шаг S108: Контроллер 11 массива отправляет несколько запросов записи данных в твердотельный диск 22, где каждый запрос записи данных переносит целевые данные, при этом сумма длин целевых данных, переносимых в нескольких запросах записи данных, должна быть равна размеру логического блока, и каждый запрос записи данных переносит идентификатор логического блока.
[0100] В частности, процессор 118 контроллера 11 массива отправляет несколько запросов записи данных в твердотельный диск 22.
[0101] Может быть понятно, что если твердотельный диск 22 отправляет идентификаторы нескольких логических блоков в контроллер 11 массива, контроллер 11 массива может выбрать любой идентификатор из идентификаторов, и добавить идентификатор к нескольким запросам записи данных.
[0102] Кроме того, в этом варианте осуществления, запрос записи данных, который отправлен контроллером 11 массива в твердотельный диск 22, может также включать в себя начальный логический адрес и длину (или диапазон логических адресов) каждой части целевых данных. Логический адрес здесь отличается от логического адреса хоста на шаге S105. Логический адрес здесь представляет собой адрес области памяти, который представлен твердотельным диском 22 контроллеру 11 массива, в то время как логический адрес хоста на шаге S105 представляет собой логический адрес области памяти, который представлен контроллером 11 массива хосту 33. Кроме того, следует отметить, что когда контроллер 11 массива указывает диапазон логических адресов, диапазоны логических адресов всех целевых данных являются смежными. Контроллер 11 массива отправляет начальный логический адрес и длину каждой части целевых данных, в твердотельный диск 22. После записи целевых данных в блоки, включенные в логический блок, контроллер 220 SSD может хранить, в FTL, соответствие между начальными логическими адресами и физическими адресами, в которые целевые данные фактически записаны. Если контроллеру 11 массива необходимо впоследствии считать целевые данные, контроллер 11 массива может добавить начальный логический адрес и длину целевых данных в запрос чтения данных, и отправить запрос чтения данных в твердотельный диск 22. Контроллер 220 SSD может получить физический адрес целевых данных в соответствии с логическим адресом, длину и соответствие, хранящееся в FTL, с тем чтобы считать целевые данные и отправить целевые данные в контроллер 11 массива.
[0103] Шаг S110: Контроллер 220 SSD возвращает идентификатор логического блока.
[0104] Поскольку логический блок был заполнен данными, и находится в полном (полное) состояние, контроллер 220 SSD может вернуть идентификатор, удалить логический блок из очереди логических блоков, и выделить идентификатор другому логическому блоку в состоянии готов-к-записи.
[0105] Ниже описан процесс другого способа для записи данных на твердотельный диск в соответствии с вариантом осуществления настоящего изобретения. Способ для записи данных на устройство флэш-памяти в этом варианте осуществления настоящего изобретения может быть применен к системе хранения, показанной на Фиг. 1, и контроллеру 11 массива, показанному на Фиг. 6. Как показано на Фиг. 10, способ включает в себя следующие шаги:
[0106] Шаг S201: Контроллер 11 массива принимает несколько частей данных, отправленных хостом 33. Этот шаг аналогичен шагу S105, показанному на Фиг. 8, ссылка может быть сделана на описание шага S105, и подробности не описаны здесь снова.
[0107] Шаг S202: Контроллер 11 массива записывает принятые несколько частей данных в кэш 120. Этот шаг аналогичен шагу S106, показанному на Фиг. 8, ссылка может быть сделана на описание шага S106, и подробности не описаны здесь снова.
[0108] Шаг S203: Контроллер 11 массива принимает диапазон логических адресов логического блока, отправленного контроллером 220 SSD.
[0109] В частности, процессор 118 контроллера 11 массива принимает диапазон логических адресов логического блока. В этом варианте осуществления, каждый логический блок соответствует одному диапазону логических адресов. Например, диапазон логических адресов, соответствующий логическому блоку, представляет собой диапазон с 0 МБ до 1023 МБ, диапазон логических адресов, соответствующий другому логическому блоку, представляет собой диапазон с 1024 МБ до 2047 МБ, и диапазон логических адресов, соответствующий еще одному другому логическому блоку, представляет собой диапазон с 2048 МБ до 3071 МБ.
[0110] Эти логические блоки представляют собой все логические блоки в состоянии готов-к-записи, и контроллер SSD 220 должен сообщить диапазоны логических адресов этих логических блоков контроллеру 11 массива.
[0111] Шаг S204: Контроллер 11 массива принимает размер логического блока, отправленного контроллером 220 SSD. Этот шаг аналогичен шагу S104, показанному на Фиг. 8, ссылка может быть сделана на описание шага S104, и подробности не описаны здесь снова.
[0112] Подобным образом, шаги с S201 по S203 и шаг S204 не обязательно выполняются в определенном порядке.
[0113] Шаг S205: Контроллер 11 массива считывает целевые данные из кэша 120. Этот шаг аналогичен шагу S107, показанному на Фиг. 8, ссылка может быть сделана на описание шага S107, и подробности не описаны здесь снова.
[0114] Шаг S206: Контроллер 11 массива отправляет несколько запросов записи данных в твердотельный диск 22.
[0115] В частности, процессор 118 контроллера 11 массива отправляет несколько запросов записи данных в твердотельный диск 22, где каждый запрос записи данных может переносить целевые данные, при этом сумма длин целевых данных, переносимых в нескольких запросах записи данных, должна быть равна размеру логического блока, и каждый запрос записи данных переносит начальный логический адрес и длину целевых данных. Как начальный логический адрес целевых данных, так и конечный логический адрес целевых данных принадлежат диапазону логических адресов одного и того же логического блока, и конечный логический адрес получают в соответствии с начальным логическим адресом и длиной. Следовательно, можно считать, что диапазон логических адресов целевых данных, переносимых в каждом запросе записи данных, представляет собой поддиапазон диапазона логических адресов логического блока. При приеме диапазонов логических адресов нескольких логических блоков, контроллер 11 массива может выбрать любой один из диапазонов логических адресов, чтобы определить начальный логический адрес и длину целевых данных.
[0116] Шаг S207: После приема нескольких запросов записи данных, контроллер 220 SSD определяет логический блок, который соответствует целевым данным, переносимым в каждом запросе записи данных.
[0117] В этом варианте осуществления, поскольку каждый логический блок соответствует одному диапазону логических адресов, контроллер 220 SSD может определить, в соответствии с начальным логическим адресом и длиной, которые переносятся в каждом запросе записи данных, и диапазоном логических адресов, соответствующим каждому логическому блоку, логический блок, соответствующий каждой части целевых данных. Например, для целевых данных, переносимых в одном из запросов записи данных, если начальный логический адрес представляет собой 1010 МБ, а длина составляет 10 КБ, логический блок, соответствующий целевым данным, представляет собой логический блок, чей диапазон логических адресов представляет собой диапазон от 0 МБ до 1023 МБ.
[0118] Шаг S208: Контроллер 220 SSD записывает целевые данные, переносимые в каждом запросе записи данных, в соответствующий логический блок.
[0119] В соответствии со способом реализации, показанным на Фиг. 10, контроллер 11 массива может также записать сегмент данных со смежными логическими адресами в один или более блоков.
[0120] Со ссылкой на способы реализации, показанные на Фиг. 9 и Фиг. 10, в другом способе реализации настоящего изобретения, твердотельный диск 22 может разделить область памяти микросхемы 222 флэш-памяти на по меньшей мере две части, где каждая часть включает в себя несколько логических блоков. Для одной из частей, твердотельный диск 22 выделяет идентификатор каждому логическому блоку, включенному в часть; для другой части, твердотельный диск 22 выделяет диапазон логических адресов каждому логическому блоку, включенному в часть. Идентификатор каждого логического блока в первой части и диапазон логических адресов каждого логического блока во второй части сообщаются контроллеру 11 массива. После считывания нескольких частей целевых данных, чьи длины равны размеру логического блока, из кэша 120, контроллер 11 массива добавляет несколько частей целевых данных к нескольким запросам записи данных, и отправляет несколько запросов записи данных в твердотельный диск 22, где каждый запрос записи данных из нескольких запросов записи данных может включать в себя идентификатор логического блока, или может включать в себя начальный логический адрес и длину (что может рассматриваться как поддиапазон диапазона логического адреса). То есть, в этом способе реализации, контроллер 11 массива может отправлять несколько запросов записи данных в твердотельный диск 22 способом реализации, показанным на Фиг. 9, или может отправлять несколько запросов записи данных в твердотельный диск 22 способом реализации, показанным на Фиг. 10. Для твердотельного диска 22, когда запрос записи данных, принятый твердотельным диском 22, переносит идентификатор логического блока, твердотельный диск 22 определяет логический блок в соответствии с идентификатором и записывает данные в логический блок; когда запрос записи данных, принятый твердотельным диском 22, переносит поддиапазон диапазона логических адресов, твердотельный диск 22 может определить логический блок в соответствии с поддиапазоном и диапазоном логических адресов, соответствующих каждому логическому блоку, и записать данные в логический блок.
[0121] Необязательно, в вышеприведенном способе реализации, область памяти микросхемы 222 флэш-памяти может дополнительно включать в себя другую часть. В этой части, твердотельный диск 22 может определить блок, в который данные, отправленные контроллером 11 массива, записываются. То есть, запрос записи данных, который отправлен контроллером 11 массива в твердотельный диск 22, может не переносить идентификатор логического блока или диапазон логических адресов логического блока. В этом случае, твердотельный диск 22 выбирает один или более блоков для записи данных, вместо записи данных в логический блок, назначенный контроллером 11 массива.
[0122] Может быть понятно, что любые два из указанных выше трех типов разделения области памяти и способов реализации могут быть объединены, что является более гибким по сравнению с выполнением только способа реализации, показанного на Фиг. 9 или Фиг. 10, и может удовлетворить различные потребности.
[0123] Как показано на Фиг. 11, вариант осуществления настоящего изобретения дополнительно предоставляет устройство 700 для управления твердотельным диском для записи данных, где твердотельный диск расположен в системе хранения, система хранения дополнительно включает в себя контроллер массива, и устройство расположено в контроллере массива. В частности, устройство включает в себя модуль 701 приема и модуль 702 обработки, где
модуль 701 приема выполнен с возможностью приема информации о логическом блоке, отправленной твердотельным диском, где информация о логическом блоке включает в себя размер логического блока и указывающую информацию логического блока; и
модуль 702 обработки выполнен с возможностью отправки нескольких запросов записи данных в твердотельный диск, где каждый запрос записи данных переносит целевые данные, каждый запрос записи данных используется для предписания твердотельному диску записать целевые данные в логический блок, указанный указывающей информацией логического блока, и сумма длин целевых данных, переносимых в нескольких запросах записи данных, равна размеру логического блока.
[0124] Необязательно, твердотельный диск включает в себя микросхему флэш-памяти, где микросхема флэш-памяти включает в себя несколько каналов, при этом каждый канал включает в себя несколько блоков, логический блок включает в себя один или более блоков, и блоки, включенные в логический блок, расположены в разных каналах.
[0125] Необязательно, логический блок представляет собой логический блок в состоянии готов-к-записи, где логический блок в состоянии готов-к-записи относится к логическому блоку, который был выделен твердотельным диском для хранения данных.
[0126] Необязательно, указывающая информация логического блока включает в себя идентификатор, который выделен твердотельным диском логическому блоку, и каждый запрос записи данных включает в себя идентификатор логического блока.
[0127] Необязательно, указывающая информация логического блока включает в себя диапазон логических адресов, который выделен твердотельным диском логическому блоку, и каждый запрос записи данных включает в себя поддиапазон диапазона логических адресов.
[0128] Как показано на Фиг. 12, вариант осуществления дополнительно предоставляет другое устройство 800 для управления твердотельным диском для записи данных, где твердотельный диск включает в себя микросхему флэш-памяти и контролер твердотельного диска, при этом микросхема флэш-памяти включает в себя несколько каналов, каждый канал включает в себя несколько блоков, и устройство расположено в контроллере твердотельного диска. Устройство, в частности, включает в себя модуль 801 приемопередачи и модуль 802 записи, где
модуль 801 приемопередачи выполнен с возможностью: отправки информации о логическом блоке в контроллер массива, где информация о логическом блоке включает в себя размер логического блока и указывающую информацию логического блока; и приема нескольких запросов записи данных, отправленных контроллером массива, где каждый запрос записи данных переносит целевые данные, каждый запрос записи данных используется для предписания твердотельному диску записать целевые данные в логический блок, указанный указывающей информацией логического блока, и сумма длин целевых данных, переносимых в нескольких запросах записи данных, равна размеру логического блока; и
модуль 802 записи выполнен с возможностью записи целевых данных, переносимых в каждом запросе записи данных, в логический блок, указанный указывающей информацией.
[0129] Необязательно, логический блок включает в себя один или более блоков, и блоки, включенные в логический блок, расположены в различных каналах.
[0130] Необязательно, устройство 800 дополнительно включает в себя модуль 803 выделения, выполненный с возможностью: определения того, что логический блок представляет собой логический блок в состоянии готов-к-записи, где логический блок в состоянии готов-к-записи относится к логическому блоку, который был выделен для хранения данных; и выделения указывающей информации логическому блоку в состоянии готов-к-записи.
[0131] Необязательно, указывающая информация логического блока включает в себя идентификатор логического блока, при этом каждый запрос записи данных включает в себя идентификатор логического блока, и модуль записи специально выполнен с возможностью записи, в соответствии с идентификатором логического блока, целевых данных в каждом запросе записи данных в логический блок, соответствующий идентификатору.
[0132] Необязательно, указывающая информация логического блока включает в себя диапазон логических адресов логического блока, при этом каждый запрос записи данных включает в себя поддиапазон диапазона логических адресов, и модуль записи специально выполнен с возможностью определять, в соответствии с поддиапазоном диапазона логических адресов в каждом запросе записи данных и диапазоном логических адресов логического блока, логический блок, соответствующий целевым данным в каждом запросе записи данных, и записывать целевые данные в каждом запросе записи данных в соответствующий логический блок.
[0133] Необязательно, модуль 803 выделения дополнительно выполнен с возможностью возврата указывающей информации, выделенной логическому блоку.