Выпускная квалификационная работа Разработка SATA - IO-link контроллера с программными интерфейсами Legacy и AHCI Студент:Белянин И.В., ФРТК, 713 гр. Научный руководитель:Петраков П.Ю.
Развитие интерфейсов накопителей IDESATA
Сравнение характеристик IDE и SATA Максимальная пропускная способность 133 МБ/с (UDMA-6) Способ передачи данных параллельный интерфейс Кодировка нет Методы контроля ошибок CRC Метод подключения устройств master/slave Максимальная пропускная способность SATA I 150 МБ/c, SATA II 300 МБ/c Способ передачи данных последовательный интерфейс Кодировка 8/10b Методы контроля ошибок CRC & Scrambling Метод подключения устройств точка-точка IDESATA
Постановка задачи Разработать универсальный SATA-контроллер, удовлетворяющий следующим требованиям: -поддержка программных интерфейсов Legacy и AHCI -контроллер обязан полностью соответствовать стандартам SATA v2.5 и AHCI v1.3 -интерфейс внешнего взаимодействия IO-link -использование физического уровня фирмы «Synopsys» -надежная работа в режимах SATA I 1.5 GHz и SATA II 3 GHz
Расположение контроллера в структуре вычислительного комплекса Контроллер может располагаться как в составе чипсета или южного моста, так и подключаться извне с использованием шин PCI/PCI-X.
Схема функциональных уровней стандарта SATA -Commands and Application верхний уровень, обрабатывающий поступающие команды, работающий с памятью, выставляющий прерывания и т.д.; -Serial Digital Transport Control транспортный уровень выполняет преобразование контрольной информации или данных, которые необходимо передать, в пакеты\фреймы (Frame Information Structure, FIS); -Serial Digital Link Layer реализует протокол звена данных, кодировка 8\10b; -Serial Physical Interface Plant физический уровень отвечает за передачу и прием данных по последовательному каналу;
Особенности интерфейса AHCI -до 32-х портов -32-х, 64-х битная адресация -отсутствие разделения накопителей на Master/Slave -улучшенное управление питанием -поддержка режима очередей (Native Queued Command) -ступенчатая «раскрутка» диска -Port Multiplier
Конфигурационное пространство AHCI Конфигурационное пространство AHCI полностью совпадает с конфигурационным устройством PCI контроллера. Базовые адреса, расположенные в конфигурационном пространстве: -один базовый адрес 24h (реализация AHCI); -пять базовых адресов (интерфейс Legacy);
Формат команды AHCI
Особенности реализации поддержка команд с невыровненным адресом поддержка режима передачи невыровненного количества слов поддержка 4-х портов 32-х битная адресация не реализована поддержка команд Native Queded Command не поддерживается Port Multiplier
Реализация -IO-link client модуль, отвечающий за проведение транзакций на IO-link-интерфейсе; -SATA IO-link Config Space конфигурационное пространство (набор управляющих регистров) совпадающее с PCI Config Space; -DMA Arbiter модуль, обеспечивающий арбитраж сигналов с разных портов; -AHCI HCSM (AHCI HBA Controller State Machine) модуль, определяющий внешнее поведение контроллера в режиме AHCI, содержит в себе такие опции как глобальный reset, бит AHCI enable, а также набор регистров отвечающих за поведение устройства; -SATA Port модуль, включающий в себя, модули отвечающие за обработку данных и общение с диском, самая объемная часть контроллера. К порту через SATA кабель подключается накопитель данных.
Внутреннее устройство модуля SATA-port
Автомат, реализующий DMA транзакции на AHCI уровне
Моделирование Пример выполнения команды на уровне Commands & Application с интерфейсом AHCI Порядок выполнения теста: -инициализация диска(OOB sequence); -выполнение команды записи данных на диск по определенному адресу; -выполнение команды чтения данных с диска по тому же адресу; -cравнение данных в памяти; -смещение адреса и данных на фиксированную величину и повторение команды:
Отладка на макете Из-за отсутствия тестового стенда с IO-link интерфейсом был использован PCI-интерфейс. Использованное тестовое оборудование: -ВК на основе микропроцессора МЦСТ «R150» -набор тестов, входящих в состав boot -макетная плата (4 разъема SATA, ПЛИС Xilinx Virtex-5, SATA phy layer GTP-Dual Transceiver, 1 PCI разъем) -логический анализатор ПО ChipScope Analyzer Принцип тестирования совпадает с уже использованным при моделировании.
Пример диаграммы, полученной с помощью логического анализатора Начальный момент процедуры OOB Sequence: -контроллер передает диску последовательность сигналов COM_RESET; -ожидание ответной последовательности сигналов COM_INIT; -обмен последовательностями сигналов COM_WAKE; -контроллер передает диску фиксированные данные; -если диск отвечает, что данные приняты верно, то определение диска и подстройка частоты прошла успешно.
Результаты: -разработано RTL-описание универсального SATA- IO-link контроллера с интерфейсами Legacy и AHCI; -получен макет контроллера с PCI-интерфейсом; -собран тестовый стенд и успешно проведены имеющиеся тесты контроллера в составе стенда с использованием реальных SATA дисков фирмы Maxtor - проведение более сложных тестов, включающих загрузку операционной системы с диска и имитацию работы пользователя. - реализация функции Native Queded Command - проведение отладки устройства на тестовом стенде с IO-link- интерфейсом. В конечном итоге данный контроллер будет реализован на кристалле в составе южного моста, разработанного компанией ЗАО «МЦСТ». Перспективы:
Спасибо за внимание!