
- •Герцы, мегагерцы, гигагерцы.
- •Использование тестовых программ для определения производительности
- •Системный блок
- •Взаимодействие устройств
- •Автоматическая конфигурация устройства Plug- and –Play
- •Устранение конфликтов устройств
- •Обнаружение устройств использующие одинаковые номера прерываний
- •Понятие многопоточности.
- •Отображение информации о bios на экране
- •Примеры звуковых кодов bios
- •Эффективное использование cmos настроек
- •Уровни хранения информации
- •Динамическое озу dram
- •Статическое озу sram
- •Компоновка модулей ram
- •Банки памяти
- •Скоростные показатели работы микросхем памяти
- •Ускоренный страничный обмен fpm
- •Синхронная динамическая озу sdram.
- •Обычная память ms-dos
- •Назначение основных разделов системного реестра
- •Восстановление системного реестра из резервной копии
- •Сетевые технологии.
- •Сетевые протоколы.
- •Сетевая модель(iso/osi).
- •Уровень передачи данных
- •Сетевой уровень
- •Транспортный уровень
- •Уровень сеанса
- •Уровень предоставления и уровень приложения
- •Интернет-протокол tcp/ip
- •Как узнать ip-настройки своего вс
- •Функциональная классификация машинных команд
- •Команды ассемблера
Обнаружение устройств использующие одинаковые номера прерываний
Если просмотреть настройки IRQс помощью утилиты “Информация о системе” можно заметить, что несколько устройств используют один и тот же номер прерывания, что казалось бы нарушает принципы обслуживания устройств. В действительности подключаемые к шинеPCIустройства довольно часто осуществляют совместное использование прерываний. Когда 2 и более устройств используют одно и тоже прерывание , система выстраивает коды обработчика в цепочку. Сначала попытка ответить первому, затем второму и т.д. Обработчик прерываний (набор команд выполняемых ВС в случае прерывания) анализирует состояние различных портов чтобы определить условие когда прерывание сгенерировало обслуживающее устройство. ОС продолжает последовательно выполнять обработчики, пока один из них не сможет обслуживать прерывания. Даже если устройство поддерживает совместное использование прерываний нужно попытаться присвоить ему неиспользуемый номер прерывания, чтобы упростить процесс и повысить быстродействие системы. Т.к. идентификация устройства, вызвавшего прерывание занимает некоторое время, последовательный перебор прерываний снижает быстродействие системы.
Эффективное ипользование CPU,APU
Роль CPU,APU в работе ВС
Компьютерная программа представляет собой список команд выполняемых системой для решения определенных задач. Программа может быть и простой и сложной. В любом случае это лишь список команд, которые выполняет процессор. Каждый процессор распознает определенный набор команд. Он так и называется набор команд CPU,APU. В зависимости от сложности набора команд специалисты делят CPU,APU на категорииRISC-процессоров иCISC.RISC-Reducedinstructionset- сокращенный набор команд. В основномRISCпроцессоры реализуют простые команды, такие как загрузка, сохранение, сложение и т.д. Идея технологииRISCсостоит в разработке процессора, который способен очень быстро выполнять. простые команды. Т.к.RISC-команды просты для осуществления. одной операции, может потребоваться, чтобы процессор выполнил несколько команд.CISC-complexinstructionset- полный набор командCISCпроцессором может поддерживаться несколько сложных команд, реализация операций, которые потребовали бы выполнения большого количества кодаRISC-процессора. В зависимости от сложности команды, на ее выполнение может потребоваться несколько тактов,. Однако, поскольку сложные коды снижают количество операций которые должен выполнять процессор, быстродействиеCISCпроцессора обычно очень велико.RISCпроцессоры проще конструировать. ОднакоCISCпроцессоры реализуют более высокую эффективность вычислений для каждой команды. Возникает вопрос – какой тип процессора лучше? Ответ неоднозначен. В некоторых программах тестированияRISC-процессоры показывают более лучшие результаты по сравнению сCISC-процессорами. Однако в игровых, мультимедийных программах которые выполняют сложные операции с видеоизображением и графикой, результативностьCISCпроцессоров обычно выше. Хотя во многих маркетинговых исследованиях процессорыINTELPENTIUMрассматривают как построенные по технологииCISC, было бы точнее описать их гибридные и занимающее промежуточное положение между архитектурамиRISCиCISC.
Процесс программирования
Программа - это лишь список команд, выполняемых CPU,APU для решения определенной задачи. Функционирование компьютера с технической точки зрения основана на наличии или отсутствии электрических сигналов. Можно считать, что процессор состоит из миллионов небольших переключателей (электронных), которые могут находиться либо во включённом состоянии, либо в отключенном. Создатели первых компьютерных программ использовали переключатели, которые существовали вне больших ЭВМ. Например, чтобы сложить 2 и 5 программист устанавливал переключатели для выбора операции сложения, а так же переключатели обеспечивающие ввод значений 2 и 5. После выполнения операций компьютер выводил результат, зажигая лампочки возле выключателя. Переключатели большой ЭВМ могли находиться лишь в двух состояниях - включено и выключено. Для представления этих состояний программисты используют значения 1(включить) и 0 (выключить). Затем разработчики создали компьютер для программирования на котором не требовалось использовать переключатели. Для ввода использовалась перфолента или перфокарта. Данные и коды представлялись длинными последовательностями 0 и1 (двоичное представление). Например, чтобы сложить числа 2 и 5, программист вводил 110001001110000101111
11000101 ввод 5
11000010 ввод 2
1111 сложение
Нетрудно предположить, что ввод команд в виде 0 и 1 приводил к ошибкам. Чтобы сократить количество ошибок, программисты стали использовать шестнадцатеричную систему использущую цифры от 0 до 9 и буквы от AдоF.
0 0000 0 Предыдущая
. 0001 1 запись
2 0010 2 С5
. 0011 3 С2
…………….. F
…………………………….
16 1111 F
Очевидно, что в такой записи проще обнаружить ошибки. Написание и отладка программы с использованием шестнадцатеричной нотации по-прежнему сложная задача. В результате программисты стали использовать мнемонический код ( ADD,LOAD).
LOAD2
LOAD5
ADD
Мнемонический код намного проще. Но следует учесть, что компилятор распознаёт только 0 и1, а не коды. После написания программы с использованием мнемокода (называемого языком ассемблер) необходимо выполнить специальную программу, которая преобразует мнемокод в последовательность 0 и 1. В настоящее время программа используют языки высокого уровня С++, Pascal. Язык программирования позволяет записать операторы, которые представляют собой код программы. Программисты помещают операторы в текстовый файл, который называется исходным файлом. Затем выполняется специальная программа называемая компилятор, которая и преобразует операторы в последовательность 0 и1. Компилятор сохраняет двоичный код в исполняемом файле типа .exe.
Системная шина. Взаимодействия модулей.
Внутри компьютера электрические сигналы, обеспечивают взаимодействие устройств между собой, передаются через группы проводников называемых шинами. Например, одна шина позволяет CPU,APU взаимодействовать с платами расширения, а вторая обеспечивать связь с видеокартой. Основная шина , называется системной, соединяет CPU,APU с остальными элементами набора МС, такими как BIOS. Системную шину называют иногда фронтальной шиной (frontsidebus) , чтобы координировать сигналы передаваемые по её проводникам, системная шина действует с фиксированной частотой тактов. Например, CPU,APU помещает на шину данные, которые необходимо сохранить в памяти. Данные (элементы сигнала) сохраняются на шине определенное время, в данном случае достаточно долго, чтобы контроллер памяти смог принять и поместить их вRAM. По мере увеличения быстродействия процессоров скорость системной шине увеличивается. На каждом такте процессор выполняет одну операцию. К сожалению если команда требуется выполнение операции с памятью, ЦП должен приостановить работу и ожидать завершения операции передачи данных по системной шине. Это существенно снижает быстродействие ВС. Более медленная системная шина тормозит работу ЦП. Т.о. она является узким местом производительности ВС.
Вопрос: Почему системная шина не работает на частоте процессора или с его скоростью?
Этому препятствует несколько факторов.
В CPU,APU достижимы тактовые частоты в несколько ГГц, т.к.сигнал в CPU,APU передаётся на очень малых расстояниях. Они проходят только по внутренним шинам МС.
И сохраняются в течение малого времени. Путь от CPU,APU к RAMнамного длиннее, они сохраняются на шине дальше.
2. Тактовая частота системной шины должна быть ниже ЦП потому, что остальные элементы набора МС также как модули RAMпросто не могут достигать такого показателя. Этого не допускает технология их изготовления.
Буферы 1-го и 2-го уровня
снижают эффект замедления работы системы. В процессе выполнения команд ЦП сохраняет время работы в области хранения называющейся регистрами. Т.к. регистры находятся внутри ЦП, доступ к их содержимому осуществляется очень быстро. К сожалению, во время выполнения команд большая их часть и данные располагаются в памяти, и процессор должен ожидать завершения двух медленных операций системной шины. Первая операция – запрашивает команду из памяти, а вторая передает команду из RAMв ЦП. Чтобы уменьшить количество медленных операций, выполняемых ЦП, разработчики поместили в процессор дорогостоящее и быстродействующее устройство памяти. Оно называется буфером или КЭШ-памятью ЦП. ЦП выполняет команды последовательно. При отсутствии КЭШ-памяти перед выполнением каждой команды ее следует загружать из памяти. Это длительный процесс. КЭШ-память позволяет предварительно загрузить множество команд из памяти единовременно.
Когда ЦП потребуется выполнить следующую команду её можно будет извлечь из КЭШ, что не требует взаимодействия с системной шиной. Когда дойдет очередь до команды , которой нет в КЭШ процессор извлечет е1 их КЭШ , но в то же время загрузит несколько команд из ОЗУ в КЭШ.
ФАКТ: Во время выполнения программ 80% времени затрачивается на выполнение 20% кода. Программисты называют этот феномен правилом 80/20
Остальны е 80 % команд не выполняются или редко используются. Это проще понять если проанализировать работу пользователя с большинством программ. Например, текстовый редактор. Обычно он используется для ввода текста. Прежде чем распечатать документ м проверить орфографию, а затем сохранить файл. Для выполнения этих опреаций использутся менее 20% ресурсов процессора. Обычно пользователь не меняет границ областей печати, не использует множество шрифтов, таблиц, рисунков и т.д.. Он просто набирает текст, проверяет и сохраняет его. Для дальнейшего повышения эффективности работы ЦП многие системы содержат буфер данных. Во многих ВС существует КЭШ память второго уровня L2cach. Обычно это устройство находится вне CPU,APU. Оно более скоростное чем ОЗУ и более дорогое чем ОЗУ но дешевле чем КЭМ первого уровняL1cach. Как правило КЭШ второго уровня вдвое больше первого. Предположим что существует программа на 1 мегабайт. А CPU,APU располагает буфером 256 килобайт, так как обычно используется 20% код. Эта программа вполне сможет поместиться в кэш.
Конвейерная организация операций для повышения производительности системы.
CPU,APU с тактовой частотой 2 Ггц может выполнять 2*10в9 команд за 1 секунду. Чтобы ещё больше повысить производительность, в CPU,APU применяется технология конвейерной обработки информации Pipelining. Она позволяет процессору одновременно обрабатывать несколько операций в течение каждого такта, что напоминает принцип конвейера.
Пример: рассмотрим простую программу :
A=B+C
D=E+F
G=H+I
Сначала ЦП выполняет операцию A=B+C. Чтобы реализовать это простое сложение ЦП выполняет следующие команды :
1)Загружает значение В
2)Загружает значение С
3)Слаживает значения
4)Сохраняет результат в А
Чтобы выполнить программу целиком, CPU,APU необходимо выполнить следующие коды :
1)Загрузить В
2)Загрузить С
3)Сложить значения
4)Сохранить результат в А
5)Загрузить Е
6)Загрузить F
7)сложить
8)сохранить результат в D
И т.д
Преимущество конвейерной обработки состоит в том, что одновременно с, операцией сложения , например А+В, ЦП моментом извлекает значение С. Принимая во внимание простую реализацию конвейерной организации операций, которая позволяет ЦП одновременно выполнять некоторые действия и передавать данные по системе (если она не используется для выполнения какой-либо команды), в рассказанном выше программе некоторые коды могут накладываться друг на друга.
Загрузка В
Загрузка С
+; Загрузка Е
Сохранить результат в ~А
Загрузка F
+; загрузка H
Сохранение результата ~ D
Загрузка I
+;
Сохранение результата ~G
Скрытые механизмы конвейерной обработки в CPU,APU могут быть довольно сложными. Однако это дает значение выигрывают в производительности вычислений. В статьях о конвейерной обработке в CPU,APU встречается термин Прогнозирование ветвлений. Код программы предпочитает принятие решений. Например, если одно значение больше другого, программа выполняет определенный набор команд. В противном случае выполнение команды. Например, по программе необходимо извлечь значение температуры из ядерного реактора. Если она сост. 200 градусов, программа выводит сообщение о состоянии реактора, указывающее, что все в норме иначе реактор отключается if/elseили включенная программа регулирует температуры. Чтобы реализовать преимущество конвейерной обработки информации, CPU,APU пытается выполнить некоторые операции заранее. Когда в программе выполняется операцияif/else, CPU,APU пытается угадать, какое условие будет иметь место. Другими словами CPU,APU делает предположение, какая часть оператораif/elseбудет выполнятся, чтобы ЦП мог обрабатывать соответственные операторы в конвейерном порядке. Если CPU,APU верное предположение он может исп. Результаты параллельной обработки команд. В противном случае эти результаты отбрасываются.
Операции с одним потоком команд и многими потоками данных.
В статьях с ЦП встречается термин SIMD(singleinstructionmultipledata) – с одним потоком команд и многими потоками данных. Многие сложные задачи такие как мультимедийные приложения или игры требуют чтобы ЦП повторно выполнял одну и туже команду при изменении данных в широком диапазоне.
Например, при обслуживании мультимедийных приложений ЦП может копировать данные представляющие видео изображения из RAMв память видеокарты. Раньше для перемещения данных процессор должен был выполнить циклический обход каждой ячейки памяти, однако совпадениеCPUможет реализовать команду (единственную –singleinstructionилиstв абривиатуреSIMD), которая позволяет перемещать все видео данные (множественные данные –MultypledataилиMDв абривиатуреSIMD) за один раз. За счет объединений нескольких сотен тысяч командCPUв однойCPUповышает производительность системы. ПроцессорPentium4 реализует более сотниSIMDкоманд.
Повышение производительности CPU– накопительный процесс. РазработчикиCPUдостигли этой цели за счет использования кэш-памяти, конвейерной обработкиSIMDкоманд.
ИСПОЛЬЗОВАНИЕ НЕСКОЛЬКИХ ЦП ДЛЯ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ СИСТЕМЫ
Общеизвестно, что ОС WINDOWSиLINUXпозволяют выполнять несколько программ одновременно. На самом деле ОС лишь создает иллюзию одновременности, так как ЦП в каждый момент времени может выполнять лишь одну команду. Многие годы разработчики ВС и программ дискуссировали по поводу целесообразности встраивания в ВС нескольких процессоров для пользователей, которые одновременно запускают несколько программ. Обычно утверждают, что наличие не скольких процессоров увеличит быстродействие системы, однако следует иметь в виду, что большинство пользователей задействуют не более 20% вычислительной мощности ЦП. ЦП обычно не является узким местом производительности системы. Многопроцессорной называется система, которая содержит 2 и болееCPU. Сейчас многие рекламируют высокопроизводительные серверы, которые поддерживают 2 и болееCPU. Обычно такие серверы хорошо приспособлены для операций с базами данных, сетью илиWEB. Стоимость многопроцессорных систем велика из-за сложности электронных схем (например для 2 ЦП на аппаратном уровне координировать совместное использование шин, памяти и устройств). Кроме того, не все ОС поддерживают многопроцессорную структуру архитектуры. Поскольку ВС становятся все более доступными по цене, стоит рассмотреть вопрос о возможности приобретения двух ВС вместо одного сервера. Между ВС можно распределить рабочую нагрузку. Кроме того сбой одного ВС не выведет из строя всю систему
РОЛЬ МАТЕМАТИЧЕСКОГО СОПРОЦЕССОРА
Как нам известно ВС хорошо приспособлен для выполнения сложных арифметических операций. Сложные арифметические операции с плавающей запятой, занимают намного больше времени чем стандартные команды LOADиMOVE. Многие годы после выпуска первых ВС пользователи приобретают и устанавливают на системную плату специальные МС называемые математический сопроцессор. Предполагается что CPU,APU выполняет стандартные операции а математический сопроцессор – сложные арифметические операции. Сейчас машинный сопроцессор встаивается в ЦП.