Контроллер массива, твердотельный диск и способ для управления твердотельным диском для записи данных

Иллюстрации

Показать все

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

Реферат

ОБЛАСТЬ ТЕХНИКИ

[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 может быть выполнен с возможностью приема запроса записи данных или запроса чтения да