Какая из вечных ценностей самая быстротечная:
Результат
Архив

МЕТА - Украина. Рейтинг сайтов Webalta Уровень доверия



Союз образовательных сайтов
Главная / Предметы / Кибернетика / Работа с дисками


Работа с дисками - Кибернетика - Скачать бесплатно


      |
|         |      |       |Биты 2...7:Время загрузки головок HLT -     |
|         |      |       |интервал между сигналом загрузки головок и  |
|         |      |       |началом операции чтения или записи, лежит в |
|         |      |       |пределах 2 - 254 мс и задается с интервалом |
|         |      |       |2 мс (1 - 2 мс, 2 - 4 мс, ..., 0FFh - 254   |
|         |      |       |мс)                                         |
|2        |1     |motor_w|Задержка перед выключением двигателя        |
|3        |1     |sec_siz|Код размера сектора в байтах:0 - 128;1 -    |
|         |      |e      |256;2 - 512;3 - 1024                        |
|4        |1     |eot    |Номер последнего сектора на дорожке         |
|5        |1     |gap_rw |Длина межсекторного промежутка для чтения   |
|         |      |       |или записи                                  |
|6        |1     |dtl    |Максимальная длина передаваемых данных.     |
|         |      |       |Используется, когда не задана длина сектора |
|7        |1     |gap_f  |Длина межсекторного промежутка для операции |
|         |      |       |форматирования                              |
|8        |1     |fill_ch|Байт-заполнитель для форматирования, обычно |
|         |      |ar     |используется F6h                            |
|9        |1     |hst    |Время установки головки в мс                |
|10       |1     |mot_sta|Время запуска двигателя в 1/8 долях секунды |
|         |      |rt     |                                            |


      Все времена зависят от частоты тактового генератора контроллера НГМД,
приведенные значения соответствуют частоте 8 МГц.
      Адреса таблиц параметров жестких дисков HDPT расположены по адресам,
соответствующим векторам прерываний INT 41h (для первого физического диска)
и INT 46h (для второго физического диска). Эти таблицы имеют следующий
формат:
|Смещение,|Размер|Имя поля|Описание                                   |
|байт     |, байт|        |                                           |
|0        |2     |max_cyl |Максимальное количество дорожек на диске   |
|2        |1     |max_head|Максимальное количество магнитных головок  |
|3        |2     |srwcc   |Начальная дорожка для предварительной      |
|         |      |        |записи (Starting reduced-write current     |
|         |      |        |cylinder)                                  |
|5        |2     |swpc    |Начальная дорожка для предварительной      |
|         |      |        |компенсации при записи (Starting write     |
|         |      |        |precompensation cylinder)                  |
|7        |1     |max_ecc |Максимальная длина блока коррекции ошибок  |
|         |      |        |ECC (Maximum ECC data burst length)        |
|8        |1     |dstopt  |Параметры устройства:                      |
|         |      |        |бит 7 - запрет восстановления;             |
|         |      |        |бит 6 - запрет восстановления по блоку     |
|         |      |        |коррекции ошибок ECC (Error Correction     |
|         |      |        |Code);                                     |
|         |      |        |биты 2-0 - дополнительные параметры        |
|         |      |        |устройства                                 |
|9        |1     |st_del  |Стандартная величина задержки              |
|10       |1     |fm_del  |Величина задержки для форматирования диска |
|11       |1     |chk_del |Величина задержки для проверки диска       |
|12       |4     |reserve |Зарезервировано                            |


      Таблица параметров жесткого диска содержит такие  важнейшие  значения,
как максимальное количество дорожек и максимальное количество головок.  Если
вам не  удалось  определить  тип  диска,  то  таблица  HDPT  -  единственное
надежное место, откуда можно получить  информацию  о  количестве  дорожек  и
головок.

Глава 4. Программирование контроллера НГМД.
      Большинство дисковых операций можно выполнить на уровне функций  BIOS.
Это самый простой и надежный способ работы с диском  на  физическом  уровне.
Однако в отдельных случаях вам может потребоваться  непосредственный  доступ
к контроллеру НГМД - например, если вы разрабатываете систему защиты  данных
от несанкционированного копирования.
      Информация, приведенная в этой главе, ориентирована прежде всего не на
выполнение операций чтения или записи (которые  лучше  выполнять  с  помощью
функций  BIOS),  а  на  управление  контроллером   и   получение   состояния
контроллера. Именно эти операции требуются для организации защиты данных  от
несанкционированного копирования.

4.1 Порты контроллера НГМД.
      Программа обращается к контроллеру для выполнения различных операций с
помощью команд ввода/вывода. Для IBM PC и IBM PC/XT используются  три  порта
с адресами  3F2h,  3F4h  и  3F5h.  В  компьютерах  IBM  PC/AT  дополнительно
используются два порта с адресами 3F6h и 3F7h.
      Порт 3F2h работает только на запись, это порт вывода.  С  его  помощью
можно выбирать для работы один из НГМД (одновременно можно  работать  только
с одним НГМД), сбрасывать контроллер в  исходное  состояние,  разрешать  или
запрещать прерывания от контроллера и работу схем прямого доступа к  памяти,
включать или выключать двигатели НГМД.
      Приведем назначение отдельных бит этого порта:
|Биты   |Назначение                                                      |
|0-1    |Выбор НГМД. Компьютеры IBM PC/AT не используют бит 1, так как в |
|       |них установлены только два НГМД                                 |
|2      |0 - сброс контроллера;                                          |
|       |1 - разрешение работы контроллера                               |
|3      |1 - разрешение прерываний и прямого доступа к памяти            |
|4-7    |Значение 1 в каждом разряде вызывает включение соответствующего |
|       |двигателя НГМД. Для компьютеров IBM PC/AT биты 6-7 не           |
|       |используются                                                    |


      Порт 3F4h предназначен только для чтения. С его помощью можно получить
байт основного состояния контроллера.  Назначение  отдельных  бит  приведено
ниже:
|Биты   |Назначение                                                     |
|0-3    |Значение 1 говорит о том, что соответствующий НГМД занят, он   |
|       |выполняет операцию поиска. Для IBM PC/AT биты 2-3 не           |
|       |используются                                                   |
|4      |Контроллер занят выполнением команды чтения или записи         |
|5      |0 - используется режим прямого доступа к памяти;               |
|       |1 - режим прямого доступа к памяти не используется             |
|6      |Направление передачи данных:                                   |
|       |0 - от процессора к контроллеру;                               |
|       |1 - от контроллера к процессору                                |
|7      |Запрос на передачу данных - контроллер готов к записи или      |
|       |чтению данных                                                  |


      Порт 3F5h предназначен для записи или чтения данных.  Он  используется
для всех операций.
      Выполнение любой операции начинается с того, что программа посылает  в
этот порт байт кода операции, за которым следует  один  или  несколько  байт
параметров. Количество байт параметров  и  их  назначение  зависит  от  кода
операции (т. е. от  первого  байта).  После  выполнения  операции  программа
считывает  несколько  байт  результата  для  анализа  результата  выполнения
операции.
      Порт 3F7h работает на запись и чтение, он используется  только  в  IBM
PC/AT.
При записи в этот порт биты 0-1 определяют скорость передачи данных:
|Биты|Скорость передачи данных, Кбайт/с            |
|00  |500 (высокая плотность HD)                   |
|01  |300 (двойная плотность DD)                   |
|10  |250 (одинарная плотность SD)                 |
|11  |Зарезервировано                              |


Приведем назначение отдельных бит порта 3F7h при чтении из него:
|Биты |Назначение                                                   |
|0    |1 - выбран НГМД 0                                            |
|1    |1 - выбран НГМД 1                                            |
|2-5  |Выбраны головки : бит 2 соответствует головке 0, бит 3 -     |
|     |головке 1 и т. д.                                            |
|6    |Переключатель записи                                         |
|7    |1 - признак замены дискеты                                   |

4.2 Команды для контроллера НГМД.
      Контроллер НГМД может  выполнять  15  операций,  или  команд.  Команда
разделяется на три фазы - командная фаза, фаза выполнения, фаза  результата.
В командной фазе  программа  должна  передать  контроллеру  всю  информацию,
необходимую для команды. В фазе выполнения команда  выполняется,  и  в  фазе
результата  программа  получает  от  контроллера  информацию   о   состоянии
контроллера.
      Информация, необходимая для команды, передается контроллеру через порт
данных  3F5h.  В  соответствии   с   форматом   команды   программа   должна
последовательно вывести в этот порт код команды и все параметры.
      Прежде чем программа начнет командную фазу,  она  должна  убедиться  в
том, что контроллер  завершил  выполнение  предыдущей  операции  и  готов  к
приему  команды.  Для  этого  программа  должна  прочитать  байт   основного
состояния контроллера из порта с адресом 3F4h и проверить биты 6 и 7. Бит  6
должен быть установлен в 0. Это означает, что данные будут  передаваться  от
процессора к контроллеру. Бит 7 должен быть установлен в 1 - это  готовность
контроллера к приему команды.
      Фаза выполнения начинается после установки битов 6 и 7 байта основного
состояния в 1. После завершения команды контроллер формирует сигнал  запроса
прерывания.
      В фазе  результата  процессор  считывает  состояние  контроллера.  Это
состояние хранится в нескольких внутренних регистрах контроллера:
•     RS - регистр основного состояния;
•     ST0, ST1, ST2, ST3 - регистры дополнительного состояния.
      Регистр основного  состояния  доступен  через  порт  3F4h,  содержимое
остальных  регистров  процессор  считывает  после  выполнения   контроллером
команды через порт данных 3F5h.
В форматах команд  и  таблицах,  приведенных  ниже,  используются  следующие
обозначения:
|Обозначение|Описание                                                    |
|MT         |Двухсторонняя операция                                      |
|MFM        |Двойная/одинарная плотность записи                          |
|SK         |Пропуск удаленных данных                                    |
|HDS        |Номер головки для двухстороннего НГМД                       |
|DS1, DS0   |Номер выбираемого НГМД                                      |
|C          |Номер цилиндра                                              |
|H          |Номер головки для двухстороннего НГМД                       |
|R          |Номер сектора                                               |
|N          |Число байт в секторе                                        |
|EOT        |Номер последнего сектора на дорожке                         |
|GPL        |Размер промежутка                                           |
|DTL        |Количество считываемых или записываемых байт                |
|SC         |Количество секторов в цилиндре                              |
|D          |Данные                                                      |
|PCN        |Номер цилиндра после выполнения команды чтения состояния    |
|           |прерывания                                                  |
|SRT        |Время шага, мс                                              |
|HUT        |Время разгрузки головки                                     |
|HLT        |Время загрузки головки                                      |
|ND         |Режим прерывания                                            |
|NCN        |Номер цилиндра после поиска                                 |


Приведем форматы всех команд контроллера НГМД.
    . Чтение данных
|Чтение данных                    |C, H, R, N,    |ST0, ST1, ST2,C, H,  |
|Чтение удаленных данных          |EOT,EOT, GPL,  |R, N                 |
|Запись данных                    |DTL            |                     |
|Запись удаленных данных          |               |                     |
|Чтение данных с дорожки          |               |                     |
|Сканирование до "равно"          |               |                     |
|Сканирование до "меньше" или     |               |                     |
|"равно"                          |               |          



Назад


Новые поступления

Украинский Зеленый Портал Рефератик создан с целью поуляризации украинской культуры и облегчения поиска учебных материалов для украинских школьников, а также студентов и аспирантов украинских ВУЗов. Все материалы, опубликованные на сайте взяты из открытых источников. Однако, следует помнить, что тексты, опубликованных работ в первую очередь принадлежат их авторам. Используя материалы, размещенные на сайте, пожалуйста, давайте ссылку на название публикации и ее автора.

281311062 © il.lusion,2007г.
Карта сайта