- •Историческая справка об архитектурах компьютеров
- •Нулевое поколение: механические вычислители (до 1947 г.)
- •Первое поколение: компьютеры на электронных лампах (1947-1960 гг.)
- •Второе поколение. Компьютеры на транзисторах (1955-1965)
- •Третье поколение: компьютеры на интегральных схемах (1965-1975 гг.)
- •Пятое поколение: невидимые компьютеры (после 1990 г.)
- •Типы компьютеров
- •Персональные компьютеры (пк)
- •Игровые компьютеры
- •Карманные компьютеры
- •Микроконтроллеры
- •Серверы
- •Мейнфреймы
- •Суперкомпьютеры
- •Устройство пк
- •Работа процессора
- •Классификация микропроцессоров
- •Типы архитектур микропроцессора и их сравнительный анализ
- •Алгоритм включения-выключения компьютера
Алгоритм включения-выключения компьютера
Проведем обзор процесса загрузки компьютера с BIOS AWARD, установленным на его материнской плате, и Intel-совместимым микропроцессором; операционная система - Windows 98.
Нажимаем кнопку включения (Power), после чего источник питания начинает выполнять самотестирование. В случае, когда все напряжение совпадает с номинальным, источник питания выдает сигнал "Power Good" на системную плату спустя 0,1- 0,5 секунд, затем его получает триггер, который вырабатывает сигнал "Reset", и снимает сигнал перезагрузки с определенного входа микропроцессора.
Рассмотрим подробнее сигнал "Reset". Он отвечает за выполнение установки сегментных регистров и указателя команд в соответствующие состояние: CS = FFFFh; SS = DS = ES = 0; IP = 0, сбрасывания всех битов управляющих регистров и обнуление регистров АЛУ. Пока действует "Reset", все тристабильные буферные схемы переходят в высокоимпедансное состояние.
Как только сигнал снят, начинается работы МП в реальном режиме, затем он выполняет инструкции, которые считывает из ROM BIOS с адресом FFFF:0000. Область ROM BIOS имеет размер равный 16 байтам от данного адреса до конца. По этому адресу записывается команда перехода на код BIOS, исполняемый в данный момент. Процессор выполняет команды исполняемого кода и начинает реализацию функции самотестирования Power-On Self Test (POST).
В этот момент начинается тестирование процессора, памяти, системных средств ввода/вывода, а затем происходит конфигурирование программно-управляемых аппаратных средств системной платы. Одна часть в процессе конфигурирования может выполниться точно, другая определяется положением переключателей (джамперов) на системной плате, но некоторые параметры приходится устанавливать самому пользователю. В этом ему помогает утилита Setup, которая встроена в код BIOS. Настройки пользовательских параметров конфигурирования запоминает энергонезависимая память, которая получает питание от батарейки на системной плате. Некоторые настройки хранятся в CMOS Memory, которая объединена с часами и календарем RTC (Real Time Clock), другие же могут быть помещены к примеру, во флеш-память (NVRAM). Помимо этих параметров, существует область энергонезависимой памяти ESCD, которая служит для поддержания конфигурирования системы Plug and Play. При каждой перезагрузке ПК, данная система автоматически обновляется.
Интерфейс утилиты BIOS Setup представляет собой меню или отдельные окна, в некоторых случаях с поддержкой мыши. Обычно при входе в Setup предлагается нажать клавишу DEL, реже используются сочетания таких клавиш, как Ctrl+Alt+Esc, Ctrl+Esc, только Esc, F12 и др. Часто клавиши F1 и F2 используются при входе в меню утилиты, в случае обнаружения ошибок, которые могут быть устранены сменой начальных установок. Для восстановления работоспособности компьютера после неудачных попыток загрузки, можно использовать клавишу INS во время прохождения POST для возвращения настроек по умолчанию. Все настройки запоминаются в утилите (если пожелает пользователь) и начинают свое действие при следующем выполнении POST.
Во время выполнения подпрограмм в POST, их код записывается в регистр диагностики. Регистр расположен на POST-карте (специальная плата диагностики), которая установлена в слот системной шины. Этот сигнатурный анализатор (POST- карта) имеет два исполнения: для шин PCI и ISA. На карте обязательно установлен двухразрядный индикатор с семью сегментами, который показывает содержимое диагностического регистра. В области ввода/вывода регистр занимает один сегмент адреса, который зависит от версии BIOS. К примеру, для ISA, EISA 80h; ISA-PS/2 90h; для других моделей MCA-PS/2 680h. С помощью подобного анализатора, можно заметить в какой период времени остановился POST. Также можно определить неисправность материнской платы, если знать специальную таблицу сигнатур для любой версии BIOS.
Далее представлено перечисление основных тестов POST для BIOS AWARD V4.51 и их сигнатур, которые высвечиваются диагностической платой на индикаторе регистра диагностики.
Некоторые из перечисленных ниже кодов появляются только в случае остановки POST. Первая исполняемая сигнатура для BIOS AWARD V4.51:
C0 — в это время происходит программирование регистров микросхемы Host Bridge для того, чтобы установить такие режимы, как:
— запрет Internal и External Cache, операций с использованием кэш-памяти;
— очищение Internal Cache перед запретом;
— запрет Shadow RAM.
Далее ведется программирование РIIХ ресурсов: контроллера DMA, контроллера прерываний, часов и календаря RTC, таймера. Вслед за этим DMA переводят в пассивный режим.
C1 — идет определение типа памяти, суммарного объема и размещения по строкам при помощи циклов запись/чтение, затем, используя полученную информацию, выполняется настройка DRAM-контроллера и переключение процессора в безопасный режим (Protected Mode).
C3 — осуществляется проверка первых 256 Кб памяти (в дальнейшем они используются в качестве транзитного буфера), распаковка и копирование System BIOS в DRAM.
C6 — определение наличия, типа и параметров External Cache.
CF — определение типа процессора, перемещение результата в CMOS. В случае неудачного определения типа процессора, происходит фатальная ошибка, — остановка POST.
05 — проверяется и инициализируется контроллер клавиатуры, но отклик системы на нажатие клавиш пока невозможен.
07 — проверка функционирования CMOS и напряжения питания ее батареи. В случае ошибки питания, она запоминается в BIOS и процесс идет дальше, однако если возникает ошибка при контрольной записи/чтении CMOS, она является фатальной, и остановка POST происходит на коде 07.
BE — программирование конфигурационных регистров Host Bridge и PIIX с параметрами, которые находятся в BIOS.
0A — составление таблицы векторов прерываний и выполнение первичной настройки подсистемы управления питанием.
0B — проверка контрольной суммы блока ячеек CMOS, сканирование устройств ISA PnP и распознавание их параметров (в случае поддержки Plug and
Play BIOS). В блоке конфигурационных регистров происходит установка стандартных полей для PCI-устройств.
0C — инициализация блока переменных BIOS.
0D/0E — определение наличия видеоадаптера с помощью проверки наличия сигнатуры 55АА с адресом Video BIOS (C0000:0000h). Когда происходит обнаружение адреса, выполняется распознавание видеоадаптера. В этот момент появляется картинка на дисплее с заставкой видеоадаптера, также происходит инициализация клавиатуры. В дальнейшем выполняется тестирование контроллера прерываний и контроллера DMA.
30/31 — осуществляется определение объема Base Memory и External Memory, на экране высвечивается выполняемый тест оперативной памяти.
3D — инициализация PS/2 mouse.
41 — инициализируется подсистема гибких дисков.
42 — выполнение программного сброса контроллера жестких дисков. В случае режима AUTO, указанного в настройках Setup, реализуется обнаружение устройств IDE, если же включен другой режим, параметры устройств автоматически находятся из CMOS. Далее идет детектирование прерываний IRQ15 и IRQ14, в зависимости от конфигурации системы.
45 — инициализация сопроцессора FPU.
4E — настройка клавиатуры USB, появление возможности входа в CMOS Setup с помощью нажатия клавиши DEL.
4F — осуществление запроса на ввод пароля, в случае, когда в CMOS Setup есть такая установка.
52 — выполнение поиска и инициализации ПЗУ, выведение на экран изображения запросов прерывания PCI.
60 — установка антивирусной защиты BOOT Sector, только если этот режим включен.
62 — исполнение автоматического перехода на летнее/зимнее время, настройка состояния NumLock и режима авто повтора для клавиатуры.
63 — корректировка блоков ESCD (для PNP BIOS) и очищение ОЗУ.
B0 — возникает только в случае ошибок, при тесте Extended Memory или при работе в Protected Mode, к примеру. Если возник какой-либо сбой, управление передается данной процедуре. Она в свою очередь выводит код B0 в порт 80 (84) h и останавливается.
FF — заключительная стадия, на которой выводится итог тестирования, если распознавание всех устройств успешно, вы услышите одиночный звуковой сигнал. Через некоторое время управление передается загрузчику BOOT-сектора.
BIOS определяет порядок поиска загрузочного диска на компьютерах x86 (FDD, жесткие диски и устройства CD-ROM).
Многие версии BIOS могут позволить перестроить данный порядок, который называется boot sequence (последовательность загрузки). Если в данный момент приоритетом установлен дисковод A и в нем есть дискета, BIOS использует ее как загрузочную; если же ее нет, BIOS выполняет проверку первого инициализированного жесткого диска, а затем исполняет команду INT19h. Чтобы загрузить BOOT-сектор, процедура обработки прерывания INT19h читает сектор по адресу Cylinder:0 Head:0 Sector:1, после чего помещает его по координатам 0000:7С00h.
Далее проверяется загрузочный ли диск. Сектор MBR (Master Boot Record) — основная загрузочная запись, расположенная на жестком диске с тем же физическим адресом, что и BOOT - сектор на дискете (цилиндр 0, сторона 0, сектор 1).
В случае, когда BIOS не находит загрузочный сектор (сигнатура не равна 55ААh), он вызывает прерывание INT18h. Во время этого на экран выводится сообщение с предупреждением (текст сообщения зависит от производителя BIOS).
Программа FDISK записывает сектор MBR на жесткий диск. В случае когда вы отформатировали HDD на низком уровне, первый сектор не будет содержать необходимую сигнатуру (т.к. в секторах HDD расположены только нули); значит, если вы не разбили жесткий диск на разделы, будут выводиться сообщения об ошибках. Главная загрузочная запись в основном не зависит от ОС. Код, который содержится в главной загрузочной записи, выполняет сканирование таблицы разделов и ищет активный системный раздел. Если код не может обнаружить активный раздел либо находит какой-то раздел с неправильной меткой, он выдает сообщение об ошибке.
Код главной загрузочной записи находит координаты активного раздела, считывает таблицу разделов, которая расположена в конце MBR. Когда код находит активный раздел, он считывает его загрузочный сектор и определяет загрузочный ли он. Чтение может выполняться всего пять раз, иначе система останавливается и выводится сообщение об ошибке. Далее, найденный загрузочный сектор передается в управление коду загрузочного сектора в загрузочном разделе, содержащем загрузочную программу и таблицу настроек диска. Загрузочный сектор раздела ведет просмотр блока настроек BIOS и ищет расположение корневого каталога, далее происходит копирование из него системного файла IO.SYS (часть DOS, включающая в себя функции файла MSDOS.SYS) в память и все управление передается ему.
IO.SYS выполняет процесс загрузки драйверов некоторых устройств и осуществляет некоторые другие операции, которые связаны с загрузкой. Сначала IO.SYS выполняет считывание файла MSDOS.SYS. В Windows 98 MSDOS.SYS - это текстовый файл, который содержит опции процедуры запуска. После чего происходит загрузка файла LOGO.SYS и вывод стартовой заставки на экран.
В дальнейшем IO.SYS считывает данные из системного реестра, и исполняет файлы CONFIG.SYS и AUTOEXEC.BAT. Во время этого выполняется процесс загрузки драйверов устройств, которые работают в реальном режиме работы процессора, осуществляются системные установки.
Ниже приведены возможные драйверы и программы, загружаемые в этот период:
DBLSPACE.BIN (DRVSPACE.BIN) — драйвер, который отвечает за сжатие дисков.
HIMEM.SYS — администрирует верхнюю память в реальном режиме работы процессора.
IFSHLP.SYS — содействует загрузке VFAT и других файловых систем, которые поддерживают Windows 98.
SETVER.EXE — утилита, которая подменяет номер версии ОС. Существуют программы, которые ориентированы на другие версии ОС и отказываются функционировать под Windows 98. SETVER.EXE возвращает такой программе устраиваемый номер версии DOS.
DOS=HIGH — осуществляет загрузку DOS в область памяти HMA.
FILES=30 — происходит определение числа создаваемых дескрипторов файла. В Windows 98 не используется этот параметр; он включен для совместимости с ранними версиями программ.
LASTDRIVE=Z — выполняется определение последней буквы для логических дисков. Этот параметр тоже существует для обратной совместимости и не используется в Windows 98.
BUFFER=30 — определение числа создаваемых файловых буферов. При вызове подпрограммы ввода/вывода из файла IO.SYS приложения используют буферы файлов.
STACKS=9,256 — определение числа кадров стека и размера каждого кадра.
FCBS=4 — команда, определяющая число блоков управления файлом.
На последней стадии идет загрузка и запуск файла WIN.COM. Далее идет обращение к файлу VMM32.VXD. Если компьютер имеет достаточный объем ОЗУ, то этот файл загружается в память, иначе реализуется доступ к этому файлу на жестком диске, что, увеличивает время загрузки. В дальнейшем выполняется сравнение копий виртуальных драйверов (VxD) в папке Windows/System/VMM32 и файле VMM32.VXD при помощи загрузчика драйверов обычного режима. Копия виртуального драйвера помечается как "не загружаемая", если драйвер устройства есть и в папке, и в файле. Виртуальные драйверы устройств, которые не загружены файлом VMM32.VXD, загружаются из раздела [386 Enh] файла SYSTEM.INI папки Windows. В это время загрузчик драйверов виртуальных устройств реального режима осуществляет проверку правильности загрузки всех необходимых виртуальных драйверов устройств, а в случае выявлении ошибки выполняет операцию еще раз. После этого идет распознавание виртуальных драйверов. Через некоторое время VMM32.VXD переключает процессор в безопасный режим и драйверы инициализируются в соответствии с их параметром InitDevice.
Загрузка операционной системы завершается загрузкой файлов KRNL32.DLL, GDI.EXE, USER.EXE и EXPLORER.EXE. Если вы подключили компьютер к сети, то начинается загрузка сетевого окружения. На экран выводятся ячейки для ввода логина и пароля пользователя, далее идет загрузка конфигурации с параметрами по умолчанию из реестра системы. На последнем этапе загрузки ОС проходит обработка содержимого папки "Автозагрузка" (Startup) и запускаются программы, которые в ней указаны. После чего система готова к работе.
Ниже описаны некоторые способы, которые видоизменяют описанный выше алгоритм запуска:
— во время исполнения POST на стадии проверки памяти и распознавания загрузочных устройств нажимаем кнопку DEL, выполняется вход в Setup;
— вставляем загрузочный диск перед окончанием тестирования устройств;
— вносим исправления в файл CONFIG.SYS;
— редактируем файл AUTOEXEC.BAT.
Помимо этого метода существует и другой способ выполнения этой же задачи:
— после завершения теста оборудования вызываем меню Startup, нажимая клавишу F8;
— редактируем инструкции запуска системы в файле MSDOS.SYS;
— используем один из перечисленных методов для "остановки" в режиме DOS, после чего запускаем Windows из командной строки с набором необходимых ключей;
— изменяем содержимое папки Startup.
Список используемой литературы
https://ru.wikipedia.org/wiki/Процессор
https://ru.wikipedia.org/wiki/Архитектура_компьютера
http://www.sysadministrator.ru/config-sys-i-autoexec-bat
Денис Колисниченко «Компьютер. Большой самоучитель по ремонту, сборке и модернизации», 2008.
Э. Таненбаум, Т. Остин «Архитектура компьютера» 6-е издание, 2013.
Д. Паттерсон, Дж. Хеннеси «Архитектура компьютера и проектирование компьютерных систем» 4-е издание, 2012.
