Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 Контрольная / 2- 5_Организация ЭВМ и систем.doc
Скачиваний:
18
Добавлен:
23.06.2014
Размер:
78.85 Кб
Скачать

Томский межвузовский центр дистанционного образования

Томский государственный университет

систем управления и радиоэлектроники (ТУСУР)

Кафедра автоматизированных систем управления (АСУ)

\

Контрольная работа № 2

по дисциплине «Организация ЭВМ и систем»

(учебное пособие С.В. Поникоровский

«Организация и функционирование ЭВМ» - Томск,2000 г.)

\

Выполнила:

2009 г.

1 Вычисление варианта индивидуального задания по шифру:

V = (N*k) div 100,

где V – искомый номер варианта (при V=0 выбирается максимальный вариант);

N – общее количество вариантов по контрольной работе,

k – значение двух последних цифр пароля (число в диапазоне 0..99),

div – целочисленное деление (дробная часть отбрасывается).

V = (5*19) div 100 = 0

Искомый вариант – 5.

2 Индивидуальное задание:

1. Цифровые вычислительные машины – достоинства и недостатки.

В течение 40-х годов то вспыхивал, то погасал, но неуклонно продолжался спор между сторонниками счетных устройств, создаваемых на электромагнитном реле и на электронных схемах, содержащих вакуумные лампы (диоды и триоды).

Развитие радиотехники, телевидения, радиолокации привело к тому, что техниче­ская база электроники достигла высокой степени совершенства. Специальные заводы ог­ромными сериями выпускали прекрасные лампы и приборы на ламповых схемах. Осваи­вались новые диапазоны частот. Радиоаппаратура надежно и устойчиво работала на ко­ротких и ультракоротких волнах. Но чем короче волна, тем выше частота колебаний! А это уже непосредственно связано со скоростью переброса электронных реле - триггерных ячеек - и тем самым с быстродействием собранных на них счетных устройств. Электро­магнитные реле стали безнадежно отставать от электронных по скорости работы и надеж­ности. Механические части их перемещались медленно, они не могли угнаться за элек­тронами, часто ломались и становились тормозами в развитии ЭВМ. Выдающиеся дости­жения электротехники надежно обеспечивали это развитие и, в конце концов, привели к бесповоротной победе вычислительных машин на электронных лампах.

Однако споры на том не только не прекратились, но развернулись с новой силой. На смену пришла дискуссия о преимуществах и недостатках цифровых вычислительных машин (дискретного действия), с одной стороны, и аналоговых (непрерывного действия), с другой.

Аналоговые вычислительные машины - их также часто называют моделирующими машинами - работают по принципу математического моделирования. Заключается он в том, что для ряда физических явлений и процессов подбираются модели, имеющие другое физическое содержание, но описываемые одними и тем же математическими соотноше­ниями. Например, колебания шарика, подвешенного на нити, описывается с большой точ­ностью теми же уравнениями, что и перемещения пружинного маятника, и изменения тока в цепи электрического колебательного контура. Поэтому для решения задач, возни­кающих при исследовании механических колебательных систем, например, при расчетах напряжений в мостовых фермах и опорах, можно пользоваться информацией, получаемой на электрической модели. Существует немало подобных аналогий: гравитационные поля моделируются электростатическими, гидродинамические и аэродинамические потоки - соответствующими явлениями теплопередачи и т.д.

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

Четкое разграничение сфер влияния произошло и в соревновании между специализи­рованными ЭВМ и ЭВМ универсального назначения. Специализированные машины вошли в обиход как бортовые управляющие машины самолетов, ракет и косми­ческих кораблей, как ЭВМ, встроенные в станки-автоматы, и другие автоматизированные технологические агрегаты. Научные же расчеты, экономические задачи, проектирование, переработка информации, справочная служба - это область безраздельного господства универсальных ЭВМ.

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

Двоичная система, как известно, обходится цифровыми символами 1 и 0. Из них составляются двоичные числа любой величины. Таким образом, все вычисления в конце концов можно свести к элементарным операциям над этими символами. Кроме того, 1 и 0 могут быть истолкованы и как логические категории: "истина" и "ложь". Это позволяет единообразно выполнять как логические, так и арифметические действия в ЭВМ. Сложе­ние и вычитание, умножение и деление, сдвиг и сравнение, логические дизъюнкнкции и т.д. приводятся к манипуляциям с нолями и единицами. Для реализации их служат счет­чики и сумматоры, регистры сдвига и схемы сопряжения, инверторы (заменяющие еди­ницы и ноли обратно) и др.

Оказалось, что все эти схемы можно собирать из однотипных первичных ячеек - электронных реле или триггеров. Унификация триггерных ячеек как первичных "кирпи­чей", из которых сооружается грандиозное здание ЭВМ (для построения ЭВМ требуется тысячи и десятки тысяч ячеек), а также способов соединения их в соответствующие уст­ройства послужила предпосылка для разработки индустриальной технологии и серийного выпуска ЭВМ.

Из уникальных установок, сооружаемых в лабораторных условиях при помощи руч­ного труда сотен людей, ЭВМ превратились в изделия промышленного производства, выпускаемые партиями на крупных заводах, оснащенных станками-автоматами и автома­тическими технологическими линиями. ЭВМ стали намного дешевле и надежнее в работе. Без труда решалась проблема запасных частей. Унификация и стандартизация - великая сила современного индустриального производства!

Конечно, споры и дискуссии продолжаются до сих пор, однако основные разногла­сия по фундаментальным принципам построения ЭВМ стали достоянием истории.

2. Действия над кодом операции внутри процессора.

Процессор (за редкими исключениями) исполняет не программы, написанные на каком-нибудь языке программирования, а некий «машинный код». То есть командами для него являются последовательности байтов, находящихся в памяти компьютера. Иногда команда может быть равна одному байту, иногда она занимает несколько байт. Там же, в основной памяти (ОЗУ, RAM) находятся и данные. Они могут находиться в отдельной об­ласти, а могут и быть «перемешаны» с кодом. Различие между кодом и данными состоит в том, что данные — это то, над чем процессор производит какие-то операции. А код — это команды, которые ему сообщают, какую именно операцию он должен произвести.

Во всех современных процессорах есть кэш (по-английски — cache). Кэш — это некая особенная разновидность памяти (основная особенность, кардинально отличающая кэш от ОЗУ — скорость работы), которая является своего рода «буфером» между кон­троллером памяти и процессором. Служит этот буфер для увеличения скорости работы с ОЗУ.

У каждого процессора есть своя, «внутренняя» система команд, не имеющая ни­чего общего с теми командами (тем самым «кодом»), которые поступают извне. В общем случае, команды, исполняемые ядром — намного проще, «примитивнее», чем команды стандарта x86. Именно для того, чтобы процессор «внешне выглядел» как x86 CPU, и су­ществует такой блок как декодер: он отвечает за преобразование «внешнего» x86-кода во «внутренние» команды, исполняемые ядром (при этом достаточно часто одна команда x86-кода преобразуется в несколько более простых «внутренних»). Декодер является очень важной частью современного процессора: от его быстродействия зависит то, на­сколько постоянным будет поток команд, поступающих на исполняющие блоки. Ведь они неспособны работать с кодом x86, поэтому то, будут они что-то делать, или простаивать — во многом зависит от скорости работы декодера.

Пройдя через все уровни кэша и декодер, команды наконец-то попадают на те блоки, ради которых вся эта катавасия и устраивалась: исполняющие устройства. По сути, именно исполняющие устройства и являются единственно необходимым элементом про­цессора. Можно обойтись без кэша — скорость снизится, но программы работать будут. Можно обойтись без декодера — исполняющие устройства станут сложнее, но работать процессор будет. В конце концов, ранние процессоры архитектуры x86 (i8086, i80186, 286, 386, 486, Am5x86) — как-то без декодера обходились. Без исполняющих устройств обой­тись невозможно, ибо именно они исполняют код программы. В самом первом приближе­нии они традиционно делятся на две больших группы: арифметико-логические устройства (ALU) и блок вычислений с плавающей точкой (FPU).

ALU традиционно отвечают за два типа операций: арифметические действия (сло­жение, вычитание, умножение, деление) с целыми числами, логические операции с опять-таки целыми числами (логическое «и», логическое «или», «исключающее или», и тому подобные). Что, собственно, и следует из их названия. Блоков ALU в современных про­цессорах, как правило, несколько. Понятно, что ALU может исполнить только те команды, которые предназначены для него. Распределением команд, поступающих с декодера, по различным исполняющим устройствам, занимается специальный блок.

FPU занимается выполнением команд, работающих с числами с плавающей точкой, кроме того, традиционно на него «вешают всех собак» в виде всяческих дополнительных наборов команд (MMX, 3DNow!, SSE, SSE2, SSE3...) — независимо от того, работают они с числами с плавающей запятой, или с целыми. Как и в случае с ALU, отдельных блоков в FPU может быть несколько, и они способны работать параллельно.

Регистры — по сути, те же ячейки памяти, но «территориально» они расположены прямо в процессорном ядре. Разумеется, скорость работы с регистрами во много раз пре­восходит как скорость работы с ячейками памяти, расположенными в основном ОЗУ (тут вообще на порядки...), так и с кэшами любого уровня. Поэтому большинство команд архи­тектуры x86 предусматривают осуществление действий именно над содержимым регист­ров, а не над содержимым памяти. Однако общий объём регистров процессора, как пра­вило, очень мал — он не сравним даже с объёмом кэшей первого уровня. Поэтому де-факто код программы (не на языке высокого уровня, а именно бинарный, «машинный») часто содержит следующую последовательность операций: загрузить в один из регистров процессора информацию из ОЗУ, загрузить в другой регистр другую информацию (тоже из ОЗУ), произвести некое действие над содержимым этих регистров, поместив результат в третий — а потом снова выгрузить результат из регистра в основную память.

3. Назначение очереди команд процессора.

Основная черта всех современных процессоров состоит в том, что они способны запускать на исполнение не только ту команду, которую (согласно коду программы) сле­дует исполнить в данный момент времени, но и другие, следующие после неё. Приведём простой (канонический) пример. Пусть нам следует исполнить следующую последова­тельность команд:

1) A = B + C 2) Z = X + Y 3) K = A + Z

Легко заметить, что команды (1) и (2) совершенно независимы друг от друга — они не пе­ресекаются ни по исходным данным (переменные B и C в первом случае, X и Y во вто­ром), ни по месту размещения результата (переменная A в первом случае и Z во втором). Стало быть, если на данный момент у нас есть свободные исполняющие блоки в количестве более одного, данные команды можно распределить по ним, и выполнить одновременно, а не последовательно. Разумеется, степень параллелизма не бесконечна: команды могут быть выполнены параллельно только в том случае, когда на данный момент времени есть в наличии соответствующее количество свободных от работы блоков (ФУ), причём именно таких, которые «понимают» рассматриваемые команды. Самый простой пример: блок, относящийся к ALU, физически неспособен исполнить инструкцию, предназначенную для FPU. Обратное также верно. Таким образом, если принять время исполнения каждой команды равным N тактов процессора, то в классическом случае исполнение всей последовательности заняло бы N*3 тактов, а в случае с параллельным исполнением — всего N*2 тактов (так как команду (3) нельзя выполнить, не дождавшись результата исполнения двух предыдущих).

На самом деле всё ещё сложнее. Так, если у нас имеется следующая последовательность:

1) A = B + C 2) K = A + M 3) Z = X + Y

То очередь исполнения команд процессором будет изменена! Так как команды (1) и (3) независимы друг от друга (ни по исходным данным, ни по месту размещения результата), они могут быть выполнены параллельно — и будут выполнены параллельно. А вот команда (2) будет выполнена после них (третьей) — поскольку для того, чтобы результат вычислений был корректен, необходимо, чтобы перед этим была выполнена команда (1). Этот механизм и называется «внеочередным исполнением команд» (Out-of-Order Execution, или сокращённо «OoO»): в тех случаях, когда очерёдность выполнения никак не может сказаться на результате, команды отправляются на исполнение не в той последовательности, в которой они располагаются в коде программы, а в той, которая позволяет достичь максимального быстродействия.

4. Основное отличие процессоров Intel 80386DX и Intel 80386SX.

Существует две разновидности процессора 80386: 80386DX и 80386SX. Вторая представляет линейку 386-х процессоров младшего класса - в отличие от 32-разрядного DX, SX имеет внешнюю 16-битную разрядность, хотя внутри по прежнему работает с 32 битами. Кроме того, у SX понижена тактовая частота (от 16 до 25 MHz), поэтому 386SX работает значительно медленнее своего старшего брата.

5. Понятие шины. Классификация шин по назначению.

От устройств компьютера было бы мало толку, если бы они не могли обмениваться между собой информацией. Другими словами, в распоряжении системы имеется несколько линий, которые связывают ее элементы между собой. Эти линии обмена данными называют шиной (Bus).

Устройства, подключаемые к шине, разделяются на два основных типа: bus masters и bus slaves. Bus masters - это устройства, способные управлять работой шины, то есть инициировать запись/чтение и т. п. Bus slaves - соответственно, устройства, которые могут только отвечать на запросы. Правда, есть еще intelligent slaves, но мы их пока для ясности рассматривать не будем.

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

  • Шина данных

  • Адресная шина

  • Шина управления

Шина данных - по этой шине происходит обмен данными между процессором, картами расширения и памятью. Особую роль здесь играет так называемый DMA-контроллер (Direct Memoy Access), через который происходит управление транспортировкой данных, минуя процессор. Такой способ хорош тем, что освобождает ресурсы CPU для других нужд. Разрядность шины данных может составлять 8 бит, 16 бит, 32 бит и так далее.

Адресная шина - данные, которые в большом количестве кочуют по шине через материнскую плату, должны, в конце концов, сделать где-нибудь промежуточную остановку. Местом для этой остановки являются отдельные ячейки памяти. Каждая ячейка должна иметь свой адрес. Следовательно, объем памяти, который может адресовать процессор, зависит от разрядности адресной шины. Его можно вычислить по формуле:

Объем адресуемой памяти = 2n, где n - число линий в адресной шине.

Процессор 8088, например, имел в своем распоряжении 20 адресных линий и, таким образом, мог адресовать всего 1 Mb памяти (220=1048576). В компьютерах на базе процессора 80286 адресная шина была уже 24-разрядной, а процессоры 80486 имеют уже 32-разрядную шину, которая позволяет адресовать 4 им гигабайта памяти.

Шина управления - конечно же, незачем просто транспортировать данные по шине и располагать их в памяти, если непонятно, куда их нужно переслать и какое устройство в них нуждается. Разрешение этой проблемы на себя шина контроллера, называемая также системной шиной, или шиной управления.

В качестве конечных пунктов системной шины можно рассматривать слоты расширения, интегрированные на материнскую плату контроллеры и прочее. Все эти устройства соединены между собой шиной управления. От производительности шины во многом зависит производительность всей системы, и чем больше тактовая частота и разрядность этой шины, тем лучше. Внешний вид слотов расширения, которые установлены на материнской плате, зависит именно от типа шины управления. Понятно, что, например, разъемы 32-разрядной системной шины будут отличаться от разъемов 16-разрядной шины.