Устройство жёсткого диска – принцип трансляции

На наш youtube-канал добавлена видео версия статьи про транслятор.

В жестких дисках (HDD) применяется сложный алгоритм преобразования физических координат расположения данных в сектора LBA, с которым работают операционные системы. Объяснена работа всего алгоритма и его составных частей: P-List, G-List, таблица зон и карта головок.

Ссылка на модель транслятора жёсткого диска: https://rlab.ru/opt/HDDTranslyator/HDDTranslyatorRus.html

Англоязычная версия (English version): https://rlab.ru/opt/HDDTranslyator/HDDTranslyatorEng.html

Статья про таблицу зонного распределения: https://rlab.ru/doc/hdd_tracks_and_zones.html

Текстовая версия ролика: https://rlab.ru/doc/hdd_translator.html

Видео урок по Xilinx ISE 14.7 для QMTECH Wukong платы, часть 2

Это вторая часть, где логика реализована на языке Verilog:

https://youtu.be/QR7vbME-waM

Отладка при помощи симуляции и Chipscope.

Публикации по тематике ПЛИС/FPGA доступны по метке/тэгу «FPGA«

Видео урок по Xilinx ISE 14.7 для QMTECH Wukong платы, часть 1

Это первая часть, где логика реализована на языке VHDL:

https://youtu.be/ioQVxqQMIvI

Отладка при помощи симуляции и Chipscope.

Публикации по тематике ПЛИС/FPGA доступны по метке/тэгу «FPGA».

Конструкция интерфейса SATA. Часть 6.

Во второй части этого цикла публикаций речь шла про универсальный тест корректности передачи данных через универсальный скоростной последовательный интерфейс GTX/GTP встроенный в ПЛИС фирмы Xilinx. Однако, хотелось бы этот тест настроить именно на параметры SATA интерфейса и посмотреть, как все будет работать.

Первое, что необходимо для такой перенастройки — это установка кварцевого генератора на 150 МГц. Такая доработка уже выполнена.

Вторая доработка потребовалась из-за того, что на плате «Wukong» нет SATA портов. Пришлось «подвесить» их на дополнительной плате. Вот что получилось:

IMG_0980m

Continue reading

Изобретаем жесткий диск. STM32 Nucleo-64. Часть 19.

После перерыва в год, мы выпускаем новую публикацию по исследованию WD21000. Такая длительная пауза была обусловлена постепенным усилением технологической базы всех проводимых исследований, как программных, так и аппаратных. Итак, после того, как уровень поднят, можно пользоваться наработками.

Начнем с того, что обновлена принципиальная схема. Уточнено подключение процессора 80С196.

А еще вкусного в этом посте то, что он сопровождается ассемблер-листингом из IDA базы на github.

Итак, пришло время задействовать анализатор. Подключение к шине процессора рассматривалось тут (часть 16).

Теперь, хорошо бы понять, как идет управление шпиндельным двигателем, а именно: разгон, стабилизация скорости и торможение. Плюс еще в микросхеме WD61C13A находится синтезатор частоты. Возможно, он как-то тоже управляется. Полученные знания попробую протестировать на макете — при помощи подключенного к этой микросхеме процессора STM32 (Часть 15)

Еще важный момент. У автора этого опуса нет глубоких знаний ассемблера процессора 80С196, так как он никогда не писал на нем программы и не отлаживал их. Нет коллекции библиотек и исходников для него, чтобы что-то посмотреть по аналогии. Автор знакомится с героем своего повествования по мере написания этого текста. Поэтому, набираться опыта и знаний нужно по схеме: смотрим анализатором, как работает и ищем это в коде. Находим — хорошо! Пытаемся понять зачем. А вот если не находим, то отмечаем, что есть какое-то непонимание. Формулируем вопрос и заносим его в список неизвестного.

Для решения задачи потребуется прибор, назовем его «счетчик/синхронизатор». Проблема в том, что анализатор ловит случайный пакет по входу синхронизации. Не получается посмотреть, например, первый от включения диска запрос к интересующей микросхеме, второй и так далее.

Чтобы посмотреть номерные обращения нужен счетчик импульсов сигнала «CS3#», который когда досчитает до заданного номера выдаст сигнал синхронизации. А уже от этого сигнала сработает анализатор и запишет кадр.

Проект счетчика/синхронизатора сделан в среде Arduino под плату STM32 Nucleo-64, F091RC.

Исходный код программы на github.

Для того, чтобы среда разработки Arduino могла работать с STM32 нужно поставить соответствующий модуль.

Используется аппаратный таймер в режиме счета импульсов, поступающих на вход «D2».

В процедуре void InputCapture_IT_callback(void) есть условие вида:

« if(isInputCapture >= 9) {», где число 9 задает количество отсчетов до срабатывания выхода «D4».

Процесс постановки опыта по записи осциллограммы одного обращения по сигнал CS3#:

1) установить значение условия срабатывания;

2) собрать и загрузить программу в плату;

3) запускать кнопкой RUN/STOP осциллограф в режим ожидания сигнала триггера;

4) подавать питание на жесткий диск.

Тестовая установка:

IMG_0963s

Continue reading

Конструкция интерфейса SATA. Часть 5.

В этой части продолжим обзор возможностей анализатора интерфейсов SAS и SATA фирмы LeCroy, который был обозначен в третей части повествования про интерфейс SATA.

Классическое и вполне очевидное использование анализатора — это установить его в разрез кабеля соединяющего компьютер и жесткий диск, как показано на фото:

20220228_225812s

Но, оказалось, что модуль SAS001MA в этом анализаторе предназначен для генерации SAS / SATA трафика как контроллера, так и накопителя. Реализация описана в SASSuite_User_Manual.pdf, Chapter 12: Traffic Generation with SAS Trainer.

Continue reading

Конструкция интерфейса SATA. Часть 4.

Исследование просторов интернета показало, что SATA контроллера с полным исходным кодом для ПЛИС (FPGA), в виде недорогой железки, которая, при этом, еще и сразу работает, нет!

Пересмотрев на github.com весь ассортимент того, что с виду напоминает SATA host контроллер, я подобрал несколько проектов, представляющих интерес:

(1) https://github.com/CoreyChen922/sata_2_host_controller

(1.1) форк : https://github.com/danieltangdx/sata_2_host_controller

(2) https://github.com/freecores/sata_controller_core

(3) https://github.com/Siprj/sata-fpga

Первый проект под Virtex5 даже не собирается, так как не хватает файлов.

Проект по ссылке 1.1 содержит удаленный из первого проекта файл тестовой схемы system.mhs. С ним собирать пока не пробовал.

Второй исходник для Virtex6 под который есть отладочная плата. Плюс там есть довольно подробный тестовый проект с внутрисхемным анализатором ChipScope.

Теперь с этим набором вводных данных пробую разобраться. Сделал тестовые проекты с ChipScope отладкой под Virtex-6 плату и Wukong Artix-7 (от компании ChinaQMTECH). Они выложены в репозитории R.lab. Там, пока что, только вариант VHDL. Xilinx инструментарий ISE 14.7, так как поддерживаются старые микросхемы, которых уже нет в Vivado.

Continue reading

Беседы о носителях информации на youtube-канале R.LAB — 5

На нашем канале YouTube представлен пятый видеоролик серии «Беседы о носителях информации» — Жёсткий диск глазами исследователя 5: технология медиакэш (Media Cache), ответы на вопросы

Беседы о носителях информации на youtube-канале R.LAB — 4

Выложен очередной видеоролик серии «Беседы о носителях информации» — Жёсткий диск глазами исследователя 4: PC-3000, трансляция SMR и многое другое https://youtu.be/pKY2ZqrH0-o