Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комплект Информатика / Курс лекций.doc
Скачиваний:
127
Добавлен:
22.05.2015
Размер:
4.8 Mб
Скачать

Контрольные вопросы

1. Разверните сообщение, сжатое в формате LZ77: 101101011 (7, 5, 0) (12. 10. 1) (18. 13. 0).

2. Хотя мы не рассматривали подробно алгоритм сжатия данных LZ77, попытайтесь сжать сообщение: bbabbbaababaababaababaaa

3. Сколько байтов потребуется для хранения изображения 1024 х 1024 пиксела в формате GIF? А в базисном формате JPEG?

4. Какая особенность человеческого глаза используется стандартом JPEG?

5. Проверьте следующие байты на нечетность:

1)10101101; 2)10000001; 3)00000000; 4)11100000; 5)11111111.

6. Придумайте систему 5-битовых кодов для символов А, В, С и D, в которой расстояние Хемминга между любыми двумя кодами было бы больше или равно трем

Лекция № 7 Архитектура ЭВМ

Цель лекции

Изучить архитектуру современных ЭВМ.

План лекции

1. Архитектура ЭВМ.

2. Связь процессора с другими устройствами.

3. Другие архитектуры.

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

1 Архитектура эвм

Схема компьютера, которая выполняет различные операции (такие как сложение и вычитание) над данными, не соединена непосредственно с ячейками оперативной памяти компьютера. Вместо этого она изолирована в части компьютера, которая называется центральным процессором (CPU — Central Processing Unit), или микропроцессором (часто просто процессор).

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

Можно рассмотреть несколько наиболее важных блоков микропроцессора и уточнить их функции и работу. Все эти блоки располагаются в корпусе микропроцессора. Наиболее важные из них — это устройство управления УУ, арифметически-логическое устройство АЛУ, регистры общего назначения (РОН), кэш-память первого L1 и второго L2 уровня и шины. У современных процессоров есть, разумеется, и ряд других узлов.

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

Шины и разрядность микропроцессора.

Микропроцессор подключается к системной шине, как и прочие блоки компьютера. Для выделения каждого устройства оно наделяется уникальным адресом — как квартиры, дома и улицы в большом городе. Недаром современные ПК имеют так называемую шинную архитектуру, которая позволяет в неограниченном количестве наращивать ПК все новым и новым периферийным оборудованием.

Шина на материнской плате компьютера и в корпусе микропроцессора — это множество плоских проводников. К шинам подключены специальные буферные микросхемы. Условно принято делить системную шину на три шины, указанные ниже.

Шина данныхдвунаправленная шина, по которой данные от различных периферийных устройств подаются в процессор или, напротив, посылаются от процессора в эти устройства.

Шина адресов — однонаправленная шина, по которой от процессора посылаются сигналы, указывающие на адрес того или иного периферийного устройства.

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

По проводам шин данных и адресов идут двоичные электрические сигналы. Число проводов задает разрядность шин. В общем случае она различна для данных и адресов. Чем выше разрядность шины данных, тем больше информации передается за один раз по ней. Современные микропроцессоры, как правило, 32-разрядные, хотя появились и первые 64-разрядные микропроцессоры. Разрядность шины адресов определяет максимальный адрес адресуемой ячейки памяти. Рабочие частоты шин современных микропроцессоров лежат в пределах от 66 до 800 МГц.

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

Для устранения главного недостатка микропроцессора — резкого снижения скорости вычислений для данных, представленных числами с плавающей точкой (а такие данные повсеместно встречаются при графических построениях или при работе с мультимедиа) начиная, с процессоров 486 в состав микропроцессора включается математический сопроцессор. Он берет на себя все функции быстрых вычислений, как только обнаруживается, что данные представлены в форме чисел с плавающей точкой. Математический сопроцессор — это «машина», мало уступающая самому процессору по сложности схемы и числу компонентов. Кроме того, математический сопроцессор реализует довольно сложные алгоритмы точного (около 20 верных знаков) вычисления различных математических функций, например квадратного корня, логарифма, синуса, косинуса и так далее. Множество таких команд используется при реализации трехмерной графики и возможностей мультимедиа.

Арифметико-логическое устройство, несомненно, самый важный узел микропроцессора. Оно выполняет множество арифметических и логических операций, из которых, в основном, состоит любой алгоритм вычислений.

АЛУ построено на множестве логических схем. Благодаря АЛУ процессор позволяет в пределах своей разрядности складывать, вычитать, умножать и делить целые числа. Он позволяет также выполнять различные операции (например, сдвига или перемещения) для работы с числами повышенной разрядности и др.

Современные процессоры поддерживают и выполнение операций с числами с плавающей точкой. Все необходимые операции по переводу десятичных чисел (целых и с плавающей точкой) в двоичные числа и наоборот современные процессоры выполняют автоматически. Так что особой необходимости в умении выполнять такие преобразования «вручную» попросту нет.

АЛУ используется и для выполнения многих других операций, например вычисления адресов ячеек памяти, выполнения регистровых операций, обработки массивов данных и так далее.

Блок команд. В процессор «зашито» множество команд, которые выполняются программно с помощью АЛУ. Их немногим больше 200. Это команды предшествующих поколений микропроцессоров 8086, 8088, 286, 386 и 486. Однако в новые процессоры включен целый ряд новых команд. Хранение всех команд микропроцессора и выполнение части из них и возложено на блок команд.

Конвейер. В современных микропроцессорах предусмотрены структурные методы повышения скорости работы. Один из таких методов — конвейерная обработка информации. Это означает, что процессор имеет устройство — конвейер, в которое поступает сразу ряд команд. Пока в конце конвейера завершается выполнение первой поступившей в конвейер команды, в него поступают новые команды, и начинается их обработка. Таким образом, в конвейере идет одновременное (или, как говорят, параллельное) выполнение ряда команд.

Конвейер обычно рассчитан на выполнение нескольких команд, число которых определяется длиной конвейера. При выполнении нескольких команд время исполнения определяется временем исполнения самой длительной команды, тогда как процессор без конвейера потребует времени, равного сумме времен выполнения всех команд. Процессор Pentium имеет два 5-стадийных конвейера. В дальнейшем число стадий и число конвейеров возрастало. Надо учитывать, что операции с конвейером требуют небольших дополнительных затрат времени, а потому делать конвейер слишком большим нерационально.

В процессоре Pentium Pro и в его наследниках был использован новый принцип упреждающего выполнения команд. Для этого в процессоре использован специальный пул команд. Образно говоря, этот принцип подобен тому, что мы делаем, прихватив про запас нужный инструмент или нужную одежду и применяя их тогда, когда это надо.

Регистры микропроцессора. Для выполнения большинства операций нужно где-то временно хранить входные данные, промежуточные и итоговые результаты вычислений. Для этого процессор имеет свои быстродействующие устройства памяти, называемые регистрами (registers), которые похожи на ячейки оперативной памяти. Они разделяются на регистры общего назначения (general-purpose registers) и специальные регистры (special-purpose registers). Мы познакомимся с некоторыми специальными регистрами позже, а сейчас сосредоточим наше внимание на роли регистров общего назначения.

Числа в них раскладываются как бы по полочкам — разрядам. Микропроцессор имеет множество регистровых операций, например очистки регистров, перемещения чисел из одного регистра в другой и так далее.

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

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

Было бы полезно рассмотреть регистры общего назначения, находящиеся в процессоре в рамках всей памяти компьютера. Регистры используются для того, чтобы хранить под рукой данные, которые в настоящий момент подвергаются обработке. Назначение оперативной памяти – хранение данных, которые могут потребоваться в ближайшем будущем. Устройства хранения данных – это память для хранения данных которые, скорее всего, не потребуются в ближайшем будущем. Многие машины снабжены дополнительной сверхбыстрой памятью, называемой кэш – памятью, время отклика которой примерно равно времени отклика регистров. Это память, хранящая наиболее часто используемые в ближайшее время команды микропроцессора. Кэш – память частично устраняет несоответствие между высокой скоростью работы микропроцессора и гораздо меньшей скоростью доступа к оперативной памяти ПК. Если процессор повторно должен выполнить какую-то цепочку команд, то он берет их уже из быстрого кэша, а не из медленной памяти. Это обеспечивает повышение скорости работы микропроцессора.

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

По характеру взаимодействия с ОЗУ кэш-память делится на два типа:

  • с обратной записью;

  • со сквозной записью.

В кэш-памяти с обратной записью результаты операций вначале записываются в кэш-память, а затем уже контроллером памяти переносятся в ОЗУ. В кэш-памяти со сквозным доступом результаты операций заносятся одновременно в кэш-память и в ОЗУ.

В компьютере кэш-память имеет ряд уровней (Levels). Как уже отмечалось, кэш-память первого уровня LI расположена на том же кристалле, что и сам процессор, а потому работает на частоте процессора (иногда на половинной частоте). Это очень быстрая память. Но она занимает много места на кристалле процессора, поэтому ее объем ограничен — обычно 16, 32 или 64 Кбайта. Лишь процессоры AMD Athlon имеют кэш-память уровня L1 на 128 кбайт.

Кэш-память второго уровня L2 может быть расположена либо в микропроцессоре, либо на системной плате. Ее объем лежит в пределах от 128 кбайт у дешевых процессоров (например, Celeron) до нескольких мегабайт у процессоров для серверов, обслуживающих локальные сети (Intel Itanium). У современных процессоров эта память располагается чаще всего в корпусе процессора и подключается к нему через отдельную высокоскоростную шину — архитектура компьютеров с двойной шиной.

Кэш-память третьего уровня L3 обычно располагается на системной плате ПК. Она выполняется на высокоскоростных микросхемах статической памяти. К этой памяти, а иногда и кэш-памяти четвертого уровня L4 относят и кэш-память, располагаемую за пределами системной платы, например на платах дисковых накопителей. Назначение этой памяти заключается в уменьшении времени доступа к командам и данным, хранящимся на дисках. Иногда для этого используется часть ОЗУ ПК.

Блок управления памятью. Во время работы процессор постоянно взаимодействует с памятью. Он получает из памяти коды команд и данные для вычислений и направляет в заданные ячейки памяти результаты вычислений. Для обеспечения этого процессор содержит блок управления памятью. Блок управления памятью облегчает работу АЛУ и позволяет использовать АЛУ для обработки основных данных.

Именно в этом блоке формируются адреса ячеек памяти, с которыми работает микропроцессор. Для работы с памятью большого размера используется страничная организация памяти — при ней адрес задается номером, страницы — сегментом и смещением внутри выбранного сегмента. Начиная с процессоpa Pentium III стала возможной линейная адресация к ячейкам памяти. Она требует меньшего числа команд на задание адреса и выполняется быстрее.

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

Рисунок 1- Центральный процессор и оперативная память, соединенные шиной

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

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

Шаг 1. Взять одно из значений из памяти и поместить его в регистр.

Шаг 2. Взять другое значение из памяти и поместить его в другой регистр.

Шаг 3. Активировать схему сложения, на входе которой будут данные из регистров, описанных в шагах 1 и 2.

Шаг 4. Сохранить результат в памяти.

Шаг 5. Стоп.

Ранние компьютеры не были гибкими, шаги, которые выполняло устройство, были встроены в центральный процессор и являлись частью машины. Такой механизм подобен музыкальной шкатулке, которая всегда играет одну и ту же мелодию, хотя все, что нужно для гибкости, — это устройство смены носителя мелодий. Для большей гибкости некоторые из ранних машин были построены таким образом, чтобы центральный процессор можно было легко заменять. Гибкость машины достигалась при помощи коммутативной панели, похожей на старый телефонный коммутатор, в котором штекеры вставлялись в разъемы.

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

Кто и что изобрел? Оценивать чей-либо вклад в изобретение — всегда сомнительная задача. Пример тому — принцип хранимой программы. Вне всякого сомнения, Джон фон Нейман был замечательным ученым и заслуживает признания за вклад в науку. Но изобретение, которое исторически приписывается ему — принцип хранимой в оперативной памяти программы, — было разработано коллективом исследователей под руководством Д. Р. Экерта в Электротехнической школе Мура университета штата Пенсильвания. Джон фон Нейман просто первым опубликовал работу, содержащую эти идеи, и поэтому был признан ее изобретателем.

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

Однако! Первый проект механической машины, управляемой по введенной в нее с перфокарт программе, был создан в 1834 году Чарльзом Бэббиджем. Для привода машины Бэббидж предполагал использовать паровой двигатель.

В своей машине Бэббидж выделял четыре главных блока:

  • склад для хранения чисел (по нынешней терминологии память);

  • мельницу для перемалывания-обработки чисел (по-нашему, это арифметическое устройство);

  • устройство управления;

  • устройство ввода-вывода.

Замечательно, что все эти устройства, по существу, входят в любую современную вычислительную машину. Так что Бэббиджа можно считать первым архитектором вычислительных машин — архитектура его машины сохраняет свое значение и поныне. Бэббидж также предвосхитил возможность изменения алгоритма решения задач по мере их выполнения.

Для записи программ Бэббидж заимствовал идею применения перфокарт, которую предложил и реализовал в ткацких станках Жаккард. Такие карты представляли собой лист плотной бумаги с отверстиями. Отсутствие и наличие отверстия в том или ином месте означало запись логического нуля и единицы. Ада Лавлейс (дочь поэта Д. Байрона) подготовила первые программы для машины Бэббиджа. В них впервые были реализованы циклы — повторяющиеся неоднократно операции. Ее вклад как первого в истории человечества программиста увековечен в названии современного языка программирования Ада.

Тем временем физик и математик (по национальности венгр) Джон фон Нейман (1903—1957 гг.), житель США, предложил хранить в памяти вычислительных машин как данные для вычислений, так и программы. Это была основополагающая идея, обеспечивающая вычисления под управлением меняющихся в их ходе данных, что существенно расширило классы алгоритмов вычислений, доступных вычислительным машинам. Он же предложил классическую архитектуру вычислительных машин, состоящую из следующих узлов:

  • арифметико-логическое устройство (АЛУ);

  • устройство управления (УУ);

  • запоминающее устройство (ЗУ);

  • система ввода информации;

  • система вывода информации.

Эта архитектура так и названа — фон-неймановской архитектурой. Она, разумеется, со значительными дополнениями, лежит в основе большинства современных ЭВМ (компьютеров).

Закон Мура. Подобно тому, как размер дома зависит от числа кирпичиков, из которых он состоит, так и мощь и совершенство современных микропроцессоров напрямую зависит от того, сколько транзисторов удается вместить в корпус микропроцессора. Такова ситуация и с другими микроэлектронными изделиями, например математическим сопроцессором, процессорами цифровой обработки сигналов, чипсетами, микросхемами памяти и прочими СБИС.

Когда-то в далеком 1965 году один из основателей корпорации Intel Гордон Мур довольно неосторожно изрек: «...число транзисторов на чипе и производительность микропроцессоров будут удваиваться каждые два года». Говорят, что он поначалу говорил даже об одном годе. Сам Мур и не претендовал на то, что эта эмпирическая закономерность будет строгим математическим законом.

Закон Меткалфа, названный в честь Боба Меткалфа из Массачусетского технологического института. Он звучит так: ценность компьютерной сети повышается в квадратичной пропорции по отношению к числу узлов в этой сети.

Именно поэтому Интернет в наше время является самым важным и ценным коммуникационным средством. Каждый раз, когда количество узлов в Интернете удваивается, ценность этой сети увеличивается в четыре раза. Сегодняшняя сеть имеет порядка 400—500 миллионов пользователей. В течение ближайших нескольких лет количество пользователей Интернета увеличится до одного миллиарда, и тогда ценность этой сети как средства доступа к информации, коммуникации и коммерции станет намного выше.

Закон фотона: пропускную способность волоконно-оптического канала передачи информации можно удваивать примерно каждые 10 месяцев.