ПЕРЕРАСПРЕДЕЛЕНИЕ СЕГМЕНТОВ ПАМЯТИ ДЛЯ РЕШЕНИЯ ПРОБЛЕМЫ ФРАГМЕНТАЦИИ

1. Система, содержащая:
аппаратный модуль памяти, включающий в себя множество областей памяти, причем каждая область памяти включает в себя множество сегментов;
модуль обнаружения отказов, который обнаруживает один или более вышедших из строя сегментов в одной или более из данного множества областей памяти;
модуль кластеризации, который логически кластеризует эти один или более вышедших из строя сегментов путем перераспределения каждого из упомянутых одного или более вышедших из строя сегментов в рабочий сегмент.
2. Система по п. 1, в которой модуль кластеризации дополнительно создает метаданные перераспределения для каждой области памяти и сохраняет метаданные перераспределения для каждой области памяти в пределах этой области памяти, причем метаданные перераспределения включают в себя информационную запись для каждого из сегментов в области памяти.
3. Система по п. 2, в которой модуль кластеризации сохраняет метаданные перераспределения в первом сегменте верхней части области памяти или в последнем сегменте в нижней части области памяти.
4. Система по п. 2 или 3, в которой модуль кластеризации переключает, в метаданных перераспределения, первую информационную запись, связанную с вышедшим из строя сегментом, на вторую информационную запись, связанную с упомянутым рабочим сегментом.
5. Система по п. 1, в которой каждый из упомянутых одного или более вышедших из строя сегментов перераспределяется в пространство в верхней части области памяти или пространство в нижней части области памяти.
6. Система по п. 1, в которой каждая из упомянутого множества областей памяти содержит страницу памяти, и каждый сегмент содержит строку памяти.
7. Способ, содержащий этапы, на которых:
принимают запрос доступа к данным, хранящимся в сегменте, который является частью области памяти, поддерживаемой в модуле памяти;
идентифицируют данный сегмент в качестве вышедшего из строя сегмента, который был перераспределен в новый сегмент в пределах области памяти;
обращаются к метаданным перераспределения, которые показывают местоположение для данного нового сегмента в пределах области памяти; и
считывают упомянутые данные из этого нового сегмента.
8. Способ по п. 7, в котором:
метаданные перераспределения хранятся в кэше, локальном по отношению к контроллеру памяти;
при упомянутой идентификации сегмента в качестве вышедшего из строя сегмента проверяют метаданные перераспределения, хранящиеся в этом кэше, локальном по отношению к контроллеру памяти; и
упомянутое обращение к метаданным перераспределения, которые показывают местоположение для упомянутого нового сегмента в пределах области памяти, выполняется локальным образом в контроллере памяти.
9. Способ по п. 7 или 8, в котором метаданные перераспределения кластеризуют вышедшие из строя строки в верхней части области памяти или в нижней части области памяти.
10. Один или более компьютерных носителей информации, на которых сохранены машиноисполняемые инструкции, которые при их исполнении конфигурируют устройство для выполнения операций, содержащих:
прием запроса доступа к данным, хранящимся в сегменте, который является частью области памяти, поддерживаемой в модуле памяти;
идентификацию этого сегмента в качестве вышедшего из строя сегмента, который был перераспределен в новый сегмент в пределах области памяти;
обращение к метаданным перераспределения, которые показывают местоположение для данного нового сегмента в пределах области памяти; и
считывание упомянутых данных из этого нового сегмента.