Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Регистры управления, проверки и отладки.




Прикладными программами не используются. Однако доступны некоторыми командами группы MOV.

Регистры управления обозначаются CR0 – CR3.

В регистре CR0 содержиться несколько важных флажков.

 

Флажок PG – разрешение страниц (бит 31)

0 = нет страниц; 1 = есть страничная организация.

Флажок ЕТ –тип процессора (бит 4)

0 = 16-битный сопроцессор 80287; 1 = 32-битный сопроцессор 80387.

Флажок ST – задача переключена (бит 3)

0 = нет переключения задачи; 1 = задача переключена.

Флажок ЕМ – эмуляция (бит 1)

0 = нет эмуляции сопроцессора; 1 = есть эмуляция сопроцессора.

Флажок МP – наличие сопроцессора

0 = нет сопроцессора; 1 = сопроцессор присутствует.

Флажок РЕ – разрешение защиты (бит 0)

0 = реальный режим; 1 = защитный режим.

Регистр CR1 зарезервирован INTEL.

Разряды регистров CR2 используются при страничной адресации в случаях нарушения выборки из памяти нужной страницы, а старшие 20 разрядов CR3 содержат адрес каталога страниц.

В процессоре имеются регистры отладки DR0 – DR7, которые используются при отладке программ в режимах «пошагового» выполнения программ (трассировки)

Регистры отладки

31 15 0

LEN R/W LEN R/W 3 3 2 2 LEN R/W LEN R/W 1 1 0 0 0 0 0 0 0 0 G L E E 0 0 0 0 B B B B 3 3 2 2 1 1 0 0 DR7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B B B 0 0 0 0 0 T S D 0 0 0 0 B B B B 3 2 1 0 DR6
Зарезервирован DR5
Зарезервирован DR4
Линейный адрес останова 3 DR3
Линейный адрес останова 2 DR2
Линейный адрес останова 1 DR1
Линейный адрес останова 0 DR0

 


Дополнения ATA. Вопросы и ответы

Как работает ATA(-2)?

Для понимания базовых концепций работы современных дисков ATA требуется сначала разобраться с основами технологии работы дисков. Когда операционная система читает данные с диска или записывает их, BIOS выдает команды и передает их винчестеру. Для операционных систем, отличающихся от DOS, ОС обычно заменяет функции BIOS своими встроенными функциями, но принцип работы от этого не меняется.

Способы передачи команд, их интерпретации, отклика на них и т. п. формируют основу Advanced ATA. Существуют 7 регистров (Task File), которые BIOS использует для чтения/записи при создании команд. Восьмой регистр используется для чтения и записи данных. Сигналами чтения/записи управляет BIOS, но их тактирование определяется контроллером и спецификациями ATA, задающими скорость отклика на те или иные сигналы. Существует 4 режима программируемого ввода/вывода (Programmed Input/Output - PIO) и 3 режима прямого доступа к памяти (Direct Memory Access - DMA). Скорость передачи (transfer rate) определяется быстротой работы регистров и частотой тактирования операций чтения/записи.

Что такое режимы PIO?

Режим программируемого ввода-вывода (PIO) определяет скорость обмена данными с винчестером. В самом медленном режиме (PIO mode 0) продолжительность цикла данных не превышает 600 нс. В каждом цикле осуществляется перенос 16 бит. Один сектор, содержит 256 слов (16 бит = 1 слово); 2048 секторов составляют 1 мегабайт. Простой расчет

1 цикл 1 сектор 1 Мегабайт 2000* ---- * ------ * -------- = 3.3Mбайт/сек600нс 256 слов 2048 сект. 600нс

показывает скорость обмена данными. Таким образом, максимальная скорость обмена в режиме 0 может составлять 3.3 мегабайта в секунду.

В таблице 5 приведен список параметров для остальных режимов:

Таблица 5.
Режим PIO Тактирование Скорость обмена Примечания
  600нс 3.3МБайт/сек старый режим
  383нс 5.2МБайт/сек старый режим
  240нс 8.3МБайт/сек  
  180нс IORDY 11.1МБайт/сек  
  120нс IORDY 16.6МБайт/сек  

Режимы ATA-2 (3 и 4) используют аппаратное управление потоком данных (IORDY). Это означает, что диск может использовать линию IORDY для замедления контроллера при необходимости. Контроллеры, не поддерживающие IORDY, могут приводить к потере данных при использовании быстрых режимов PIO; в этом случае следует использовать менее скоростные режимы. При получении команды Identify Drive диск возвращает, наряду с другими параметрами, информацию о поддерживаемых режимах PIO и DMA [Эти параметры можно определить с помощью программы WDTBLCHK.EXE, которую вы можете найти на приложенной к книге дискете.].

Что такое режимы DMA?

DMA (прямой доступ к памяти - Direct Memory Access) означает,что данные передаются непосредственно между диском и памятью без использования процессора, в отличие от PIO. В многозадачных системах, подобных OS/2 или Linux, режим DMA оставляет процессор свободным в процессе обмена с диском и позволяет использовать его для решения других задач. При работе в DOS/Windows процессор вынужден ждать окончания обмена с диском, поэтому использование режимов DMA в этом случае не столь эффективно.

Существует два различных типа прямого доступа к памяти: DMA и busmastering DMA. Стандартный DMA использует установленный на системной плате контроллер DMA для выполнения арбитража запросов задач, захвата шины и передачи данных. В случае busmastering DMA, перечисленные операции выполняются контроллером. Безусловно, это увеличивает стоимость контроллера.

Возможные режимы DMA перечислены в таблице 6. (немного устарело).

Таблица 6.
Режим Тактирование Скорость обмена Примечания
Single word
  960нс 2.1МБайт/сек АТА
  480нс 4.2МБайт/сек  
  240нс 8.3МБайт/сек  
Multiword
  480нс 4.2МБайт/сек АТА
  150нс 13.3МБайт/сек  
  120нс 16.6МБайт/сек  

Отметим, что некоторые контроллеры способны использовать эти режимы DMA как способ обмена с диском без реального прямого доступа к памяти. В таких случаях режимы DMA используются просто как дополнение к режимам PIO.

Что такое блочный режим?

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

Вместо явного увеличения скорости обмена Fast ATA и многие другие драйверы устройств допускают команды множественного чтения/записи, которые увеличивают число секторов, передаваемых без использования прерываний. Это снижает нагрузку на хост, поскольку каждое прерывание заставляет процессор переключать контекст, проверять устройство и устанавливать скорость передачи (или передавать данные в случае PIO).

Команды Read Multiple Command (0xC4) и Write Multiple Command (0xC5) являются командами на уровне диска и позволяют передавать несколько секторов данных без использования линии запроса прерывания IRQ на диске, сообщающей процессору о запросе от винчестера.

Линия IRQ используется в тех случаях, когда:

  • была введена команда чтения и запрошенные данные находятся в буфере диска, готовые к передаче хосту;
  • была введена команда записи и данные переданы в буфер диска; если кэширование при записи запрещено, линия IRQ не будет освобождена до тех пор, пока все данные не будут записаны на диск.

При обычном чтении или записи прерывания могут постоянно приостанавливать работу CPU и, в зависимости от процессора и обрабатываемой задачи (многозадачная ОС, Unix, и т.п.), может возникать та или иная задержка при обработке запросов диска. Множественное чтение/запись позволяет передавать большое число секторов (от 2 до 128) в один прием, обеспечивая ускорение операций до 30%.

В однозадачных системах, подобных DOS, любое увеличение производительности сверх нескольких процентов обычно говорит о плохом управлении кэш-буферами для части диска.

Замечание: размер блока, оптимальный для скорости обмена с диском, может не быть оптимальным для производительности системы в целом! Например, в файловой система DOS (FAT) предпочтительный размер блока равен размеру кластера на диске.

Что такое LBA?

Режим LBA использует линейную адресацию секторов, начиная с сектора 1, головки 0, цилиндра 0 как LBA 0 и заканчивая последним физическим сектором диска, который, например, на стандартном диске 540 Мб имеет номер LBA 1065456. Эта новинка появилась в ATA-2, но такая адресация всегда использовалась в стандарте SCSI.

LBA уменьшает загрузку CPU поскольку операционная система адресует сектора линейно (LBA), и эти адреса обычно пересчитываются в CHS (цилиндр-головка-сектор) для обращения к диску. При использовании же LBA, пересчета адресов не требуется.

Как происходит трансляция адресов?
Сегодня это может осуществляться, грубо говоря, тремя способами: стандартная адресация CHS, расширенная адресация Extended CHS и LBA. Как вы увидите, трансляция не реализует LBA автоматически.

1. Стандартная трансляция.
Обмен между диском, BIOS и операционной системой осуществляется по следующей схеме:

Физическая геометрия T1 (внутреннее == использование) Логическая геометрия диска (CHS) === Логическая геометрия диска (CHS)

Здесь присутствует только один этап трансляции (T1), который является внутренним свойством винчестера. Реальная (физическая) геометрия устройства полностью невидима извне. Количества цилиндров, головок и секторов, напечатанные на этикетке для использования в программе установки параметров BIOS, никак не связаны с физическими параметрами винчестера. Логическая геометрия ограничена со стороны IDE (16 головок) и со стороны BIOS (1024 цилиндра), что в общей сложности ограничивает размер дисков (504MB).

CHS означает адресацию цилиндр (С) - головка (H) - сектор (S).

2. Расширенная адресация CHS

Физическая геометрия T1 (внутреннее == использование) Логическая геометрия диска (CHS) T2 === Логическая геометрия диска (CHS)  

Логическая геометрия используется для обмена между диском и BIOS, тогда как другая (трансляционная) геометрия служит для обмена между BIOS и операционной системой.

Трансляция осуществляется в два приема (T1 и T2). Этап T2 выполняется BIOS. Эта процедура позволяет преодолеть барьер 528MB, поскольку не накладывается одновременных ограничений BIOS и IDE: логическая геометрия не позволяет использовать более 16 головок, но число цилиндров не ограничено 1024. В трансляционной геометрии - наоборот.

В большинстве BIOS расширенная CHS-трансляция обозначается как опция 'LARGE'. Отметим, что геометрия, которую вы задаете в программе установки параметров BIOS (setup), является логической геометрией, а не трансляционной.

3. Логическая адресация блоков (Logical Block Addressing - LBA)
Здесь логическая геометрия целиком заменяется одним номером блока.

Диск BIOS   ОС и приложения
Физическая геометрия T1 (внутреннее == использование) Линейный номер блока (LBA) T2 === Трансляц. геометрия (CHS)

 

Физическая геометрия T1 (внутреннее == использование) Линейный номер блока (LBA) T2 === Трансляц. геометрия (CHS)

Этот режим позволяет преодолеть барьер 528MB, также, как в extended CHS. Поскольку эта схема несколько проще в сравнении с CHS, она зачастую незначительно (читайте: незаметно) быстрее (в зависимости от качества драйвера LBA может оказаться даже несколько медленнее).

BIOS с трансляцией можно реализовать на системной плате или на плате контроллера. В общем случае используется принятая по умолчанию геометрия диска и, если число цилиндров превышает 1024, номер цилиндра делится на подходящее число (степень 2), а число головок умножается на то же число. Возьмем в качестве примера диск 540 Мб с 1057 цилиндрами и 16 головками. DOS может использовать только 1024 цилиндра, но умеет адресовать до 255 головок. BIOS с трансляцией будет передавать ОС через прерывание INT 13 измененную геометрию с 528 (1057/2 (округленно) цилиндрами и 32 головками (16*2). В этом случае при запросе к диску BIOS будет выполнять обратную трансляцию или вычислять LBA-номер (если режим LBA включен). Такой способ позволяет использовать диски размером до 8 Гб.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...