ЭНЦИКЛОПЕДИЯ УЧИТЕЛЯ ИНФОРМАТИКИ

III. Компьютер

Список статей

1. Аппаратное и программное обеспечение

2. Архитектура

3. Базовые принципы устройства

4. Загрузка ПО

5. Исполнение программы

6. Контроллеры

7. Логические элементы и узлы

8. Машинная команда

9. Носители информации

10. Операционная система

11. Память внешняя

12. Память оперативная

13. Пользовательский интерфейс

14. Процессор

15. Устройства ввода/вывода

16. Файлы и файловая система

17. Функциональное устройство

18. Шины и интерфейсы

Учителя со стажем, вероятно, помнят, что когда в 1985 году в школе был введен курс информатики, он получил название “Основы информатики и вычислительной техники”. Такому длинному сочетанию в школьной практике не суждено было прижиться, и постепенно естественным образом основы вычислительной техники (ВТ) исчезли из названия предмета. Параллельно происходили более серьезные изменения, связанные с бурным развитием и совершенствованием самой ВТ. На начальных этапах преподавания курса школьные КУВТ состояли из маломощных машин с адресным пространством 64 Кб и единственным носителем в виде дискет емкостью 720 Кб, что предопределяло объем и соответствующий уровень сервиса программ. Общение с такой техникой требовало больших познаний, причем порой весьма специфических. Позднее на смену повсеместно пришли персональные компьютеры, информационные возможности которых выросли на порядки, а нормой программного интерфейса стал диалог в форме, близкой к естественной (см. “Пользовательский интерфейс”). В результате качественно упростился сам стиль общения с компьютером, что породило “облегченное” отношение к нему большинства пользователей, в том числе и в сфере образования. Возникло устойчивое мнение, что знание и понимание основ вычислительной техники перестало быть полезным, а грамотно использовать компьютер в состоянии любой человек, освоивший методы набора текста на клавиатуре и овладевший несложными манипуляциями с мышью.

По-видимому, полное пренебрежение к пониманию логики работы компьютера является чрезмерной крайностью. Например, Питер Нортон, известный не только своими замечательными программами, но и большим количеством популярных книг по IBM PC, в одной из них написал так: “Знать, как он работает, не менее важно, чем уметь работать с ПК. Вы можете вполне успешно пользоваться услугами компьютера, не понимая того, что в нем происходит. Однако чем глубже вы представляете процессы, происходящие в ПК, тем лучше будете использовать его возможности... Если что-нибудь случится в процессе работы с компьютером, вероятность того, что вы примете правильное решение, а не наделаете глупостей и не испортите все окончательно, будет выше”.

Выбор нового компьютера или модификация уже имеющегося, необходимость выполнения простейших программных настроек в процессе эксплуатации ПК, потребность в анализе системных требований при установке того или иного ПО — все это требует хотя бы минимального понимания процессов, протекающих внутри нашего электронного помощника. Известный автор множества книг по компьютерной тематике Чарльз Петцольд писал: “Люди часто задают вопросы, которые подтверждают их интерес к внутреннему устройству компьютера. Один из них: “В чем разница между оперативной и постоянной памятью?” Это, без сомнения, очень важный вопрос. На подобных понятиях основан весь рынок персональных компьютеров. Предполагается, что даже новичок понимает, сколько мегов одной и гигов другой потребуется его программам. Считается также, что в самом начале знакомства с компьютером пользователь постигает концепцию файла и представляет себе, как файлы загружаются из постоянной в оперативную память и затем из оперативной записываются обратно в постоянную”.

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

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

Содержательная линия “Компьютер” при внимательном рассмотрении оказывается неразрывно связанной со всеми остальными линиями школьного курса. Многие темы последнего связаны с устройством ВТ и базируются на них (машинная графика, файловая система, программное обеспечение и т.д.). Даже такая общефилософская линия, как “Социальная информатика”, многое теряет, если отрывается от базовых принципов функционирования компьютера. Например, возможные отрицательные социальные последствия от чрезмерной автоматизации с обывательских позиций исходят непосредственно от машин. Но на данном уровне технологий опасность грозит с совершенно другой стороны: недостаточно тщательно спроектированные, написанные и протестированные программы, ошибочный ввод параметров рядовым оператором в ходе их эксплуатации, вредоносные вставки в ПО и несанкционированный доступ к данным — вот далеко не полный список вполне реальных причин, способных при определенных условиях привести к катастрофе. Например, в интереснейшей статье Сергея Бобровского в русском издании журнала “PCWeek”1 приводится следующий весьма показательный пример. Использовавшаяся в Канаде и США система радиационной терапии Therac-25 иногда генерировала сверхдозы облучения, в сотни раз превышавшие максимально допустимые, в результате чего в середине 1980-х годов погибло пять человек. Лишь с большим трудом удалось установить источник трагедии: в системе использовалась самодельная и никем не сертифицированная ОС, которая в ряде случаев некорректно синхронизировала параллельные процессы.

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

Для преодоления указанной дистанции между человеком и машиной активно используется многоуровневая организация вычислительных устройств. В результате компьютер можно рассматривать как иерархию уровней, каждый из которых выполняет ограниченный круг функций. Подробным образом теория многослойной организации компьютеров развита в классической книге Эндрю Таненбаума, которая в оригинале называется “Structured Computer Organization”2.

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

Человеку, общающемуся с компьютером на одном из верхних уровней, не обязательно знать о существовании более низких уровней: он введет необходимые команды на соответствующем языке (причем язык вполне может базироваться даже на графическом интерфейсе!), и машина их успешно выполнит. Но вот что, по мнению Таненбаума, очень важно. “Большинство программистов, использующих машину уровня n, интересуется только самым верхним уровнем, т.е. уровнем, который меньше всего сходен с машинным языком. Однако те, кто хочет понять, как в действительности работает компьютер, должны изучить все уровни”. Учитывая, что школа призвана дать не только конкретные компьютерные навыки, но наиболее общие, мировоззренческие знания (нечто подобное можно обнаружить, в частности, если сравнить электротехнику с соответствующими разделами физики), вывод очевиден.

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

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

В результате в состав раздела “Компьютер” вошли следующие статьи.

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

Свою более детальную реализацию базовые принципы находят в архитектуре. Архитектура предназначена для конкретного семейства компьютеров, тогда как базовые принципы едины для всех моделей. В частности, архитектура IBM PC отличается от архитектуры компьютеров Apple. К архитектуре относятся система команд, форматы данных, методы их адресации, способы взаимодействия с внешними устройствами и некоторые другие стандартные принципы, которые позволяют достичь программной совместимости между отдельными моделями внутри семейства.

Общеизвестно, что вычислительные устройства состоят из двух взаимосвязанных частей — программной и аппаратной. Обзору этих частей и их соотношению в современном компьютере посвящается статья “Аппаратное и программное обеспечение”. Возможно, для общности следовало поместить две раздельные статьи о каждой из этих компьютерных составляющих, но, учитывая традиционность освещения данного материала в любом учебнике, в рамках ограниченного объема газетной публикации решено было этого не делать.

При описании аппаратной части основное внимание уделяется функциональной схеме компьютера (заглавная статья — “Функциональное устройство компьютера”), поскольку именно она является базой для любой модели компьютера при любом его конструктивном исполнении. В рассматриваемую серию входят статьи о функциональных блоках компьютера: “Процессор”, “Память оперативная”, “Память внешняя” с дополнением “Носители информации”, а также “Устройства ввода-вывода”. Кроме того, в статьях “Шины и интерфейсы” и “Контроллеры” описаны механизмы взаимодействия всех блоков между собой.

Система статей раздела “Компьютер”

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

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

Наконец, важной частью раздела является еще одна группа статей, освещающих механизм выполнения программы на базе аппаратной части. Сюда входят статьи “Исполнение программы”, “Машинная команда”, “Загрузка ПО” и “Операционная система” с дополнением “Файлы и файловая система”. Из данной серии статей становится понятным, что представляет собой машинная программа, каков основной алгоритм ее выполнения, а также как происходит загрузка ПО при включении машины. Рассказывается также о “главной” компьютерной программе — операционной системе, которая является важнейшим связующим звеном между аппаратной и программной частями.

 1. Аппаратное и программное обеспечение

Собственно компьютер и все его устройства принято называть аппаратным обеспечением. Поскольку компьютер — это автомат, выполняющий программу (см. “Исполнение программы”), очевидно, что для нормального функционирования аппаратной части требуются еще программы, т.е. программное обеспечение. Аппаратную и программную составляющие часто называют английскими терминами hardware и software соответственно, что подчеркивает гибкость и вариативность (“мягкость”) программной части, за счет которой выпущенный на заводе стандартный компьютер приспосабливается к потребностям конкретного пользователя непосредственно на его рабочем месте.

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

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

Оба компонента компьютера необычайно разнообразны по реализации. Так, аппаратная часть образует целые семейства совместимых моделей, причем индивидуальная конфигурация отдельных однотипных машин также может существенно различаться. В нашей стране наибольшее распространение получили компьютеры IBM PC, но это не единственное семейство ПК. Во многих западных университетах, а также в организациях, обрабатывающих мультимедийную информацию, большой популярностью пользуются компьютеры Apple Macintosh. Существуют и другие модели компьютеров.

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

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

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

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

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

 Системы программирования

Наконец, последняя разновидность программного обеспечения — системы программированияпозволяет создавать новые программы. Благодаря этому можно “научить” компьютер выполнять любые действия, в том числе и такие, которые отсутствуют в “готовом” программном обеспечении.

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

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

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

 Методические рекомендации

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

Особо хочется подчеркнуть важность материала статей, связанных с организацией исполнения программы в компьютере (см. “Функциональное устройство компьютера”, “Исполнение программы”, “Машинная команда” и “Загрузка ПО”, “Операционная система”, “Пользовательский интерфейс”). Хотя они и не имеют выраженного прикладного применения, их значение в формировании правильных представлений о компьютере трудно переоценить.

 2. Архитектура

Термин “архитектура ЭВМ” является одним из самых неоднозначно используемых. Можно выделить как минимум три наиболее распространенных уровня его применения:

· под архитектурой понимаются любые сведения, относящиеся к устройству ЭВМ (данная трактовка встречается в основном среди пользователей, весьма поверхностно знакомых с устройством ВТ, и авторами серьезной компьютерной литературы не признается);

· архитектура — это самые общие принципы устройства ЭВМ: функциональные узлы и их связь, механизм исполнения программы, принцип двоичного кодирования команд и обрабатываемых данных и т.д.; именно в этом ключе во многих книгах используется устойчивое сочетание “архитектура фон Неймана”, применимое практически к любой ЭВМ любого поколения (см. “Базовые принципы устройства”);

· наконец, в наиболее узкопрофессиональном смысле термин “архитектура” используется в значении базовые принципы данного программно-совместимого семейства машин, в частности, IBM PC, Apple, PDP или MSX; в настоящей статье принята именно такая трактовка понятия.

“К концу 50-х годов компания IBM, которая лидировала тогда на компьютерном рынке, решила, что производство семейства компьютеров, каждый из которых выполняет одни и те же команды, имеет много преимуществ и для самой компании, и для покупателей. Чтобы описать этот уровень совместимости, компания IBM ввела термин архитектура. Новое семейство компьютеров должно было иметь одну общую архитектуру и много разных разработок, различающихся по цене и скорости, которые могли выполнять одну и ту же программу”4.

Слово “архитектура” в изначальном своем смысле используется в градостроении. Обладая достаточно сложной структурой, современный город состоит из районов, площадей, улиц, домов и т.п., расположенных определенным образом. Жителей города обычно мало интересует, как выглядит конкретный дом и из каких материалов он построен. Зато очень важно знать район, где этот дом расположен, улицы, ведущие к нему, и транспорт, пользуясь которым можно сократить время в пути. Для того чтобы ориентироваться в хитросплетении улиц и площадей, в любом городе существует исторически сложившаяся система названий, а также определенная нумерация домов. Классическим примером продуманной планировки города может служить известная система взаимно перпендикулярных улиц города Нью-Йорка (они называются avenue и street).

Используя аналогию с градостроительством, естественно предположить, что под архитектурой ЭВМ следует понимать основные устройства и блоки ЭВМ, а главное — структуру связей и способы взаимодействия между ними. И действительно, в “Толковом словаре по вычислительным системам”5 сказано, что данный термин “используется для описания принципа действия, конфигурации и взаимного соединения основных логических узлов ЭВМ (вследствие чего термин “архитектура” оказывается ближе к обыденному значению этого слова)”.

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

Итак, с точки зрения архитектуры представляют интерес лишь те связи и принципы, которые являются наиболее общими, присущими многим конкретным реализациям вычислительных машин. Как уже отмечалось выше, об архитектуре чаще всего говорят в связи с семействами ЭВМ, т.е. группами моделей, совместимых между собой. В пределах одного семейства основные принципы функционирования машин одинаковы, хотя отдельные модели могут существенно различаться по элементной базе, конкретному устройству, производительности, стоимости и другим параметрам. Ярким примером могут служить семейства коллективных ЭВМ третьего поколения IBM-360 и 370, различные модификации компьютеров PDP фирмы DEC (более известные нашим пользователям по “отечественным аналогам” серий ДВК, БК и даже школьному КУВТ УКНЦ), семейство MSX-машин, к которому принадлежала некогда широко распространенная в системе образования “Yamaha”, а также заполнившие мир IBM-совместимые персональные компьютеры.

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

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

Математический сопроцессор исполняет специализированные команды программы, связанные с обработкой вещественных чисел; следовательно, независимо от того, представлен ли он отдельной микросхемой или находится внутри центрального процессора (начиная с Intel 80486), сопроцессор может рассматриваться как составная часть архитектуры IBM PC. Напротив, наличие кэш-памяти “невидимо” для программы: у нее нет адреса, по которому программист мог бы к ней обращаться, — значит, кэш, строго говоря, к архитектуре не относится.

В первых 16-разрядных микропроцессорах фирмы Intel ради увеличения длины адреса до 20 битов был придуман весьма специфический метод адресации данных в ОЗУ — сегментный. Его суть заключается в том, что адрес любого байта является суммой содержимого двух 16-битных регистров, причем один из них предварительно сдвинут влево на 4 бита, так что суммарное значение получается 20-разрядным (16 + 4 = 20). Питер Нортон метко назвал данный способ словом “kludge”7 (по-английски это означает приспособление для временного устранения проблемы). Не без некоторой иронии, он написал: “Такой способ адресации более 64 Кб памяти кажется довольно странным, однако он работает”. Современные “интеловские” процессоры, начиная с 80386, стали 32-разрядными, и одним регистром могут адресовать до 4 Гб памяти, что существенно больше и проще, чем при сегментном способе. Последний, очевидно, стал совершенно излишним, но сохраняется ради обеспечения программной совместимости.

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

Методические рекомендации

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

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

 3. Базовые принципы устройства

Фундаментальные принципы устройства ЭВМ были впервые систематически изложены в 1946 году в ставшей классической статье “Предварительное рассмотрение логической конструкции электронного вычислительного устройства”8. Предложенные там принципы до сих пор остаются в силе (иногда, правда, немного изменившись), что весьма удивительно, т.к. за прошедшее время успело смениться несколько поколений ЭВМ. С педагогической точки зрения подобная стабильность базовых теоретических сведений делает их весьма ценными для изучения в рамках школьного курса.

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

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

· Логика работы вычислительного устройства определяет его основные компоненты.

Любое устройство, способное производить автоматические вычисления, должно иметь вполне определенный набор компонентов (см. “Функциональное устройство”).

· Принцип двоичного кодирования всей информации.

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

· Принцип хранимой программы.

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

· Принцип программного управления.

Данный принцип определяет механизм автоматического выполнения программы. Более детально этот процесс рассматривается в статье “Исполнение программы” 2.

· Принцип адресации памяти.

Память машины разделяется на отдельные ячейки, каждая из которых имеет свой адрес (номер). Первоначально, когда в памяти ЭВМ хранились только команды программы и числа, каждая ячейка содержала большое количество двоичных разрядов (30–40). Начиная с третьего поколения появляются другие виды данных, имеющих разную длину. Наиболее оптимальными для такой ситуации оказываются 8-битные ячейки, которые для “длинных” данных могут объединяться (см. “Память оперативная”).

· Принцип иерархической организации различных видов памяти.

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

· Принципы реализации машинной арифметики.

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

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

Для конкретного семейства компьютеров, например IBM PC или Apple, фундаментальные принципы дополняются базовыми принципами архитектуры данного семейства (см. “Архитектура”). Совокупность всех этих положений образуют теоретические основы устройства компьютеров данной серии.

Методические рекомендации

Курс информатики основной школы

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

Курс информатики в старших классах

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

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

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

 4. Загрузка ПО

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

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

В рамках наших привычных повседневных представлений об устройстве компьютера старт самой первой программы выглядит несколько противоречиво. В самом деле, чтобы заработала программа загрузки “абсолютно пустого” ОЗУ, она должна быть где-то вне его. Этой “таинственной” областью внутренней памяти, которую не надо загружать, является ПЗУ (постоянное запоминающее устройство). Первоначально для ПЗУ была придумана английская аббревиатура ROM (Read Only Memory, т.е. память только для чтения), поскольку информация в него заносилась на заводе и не могла быть изменена. В настоящее время содержимое ROM можно обновлять, даже не вынимая его с платы компьютера. Тем не менее в процессе повседневного функционирования компьютера информация в ПЗУ неизменна и, что самое для нас сейчас главное, не зависит от того, включен или нет компьютер.

Особо подчеркнем, что ПЗУ является неотъемлемой частью именно внутренней памяти компьютера и входит в единое с ОЗУ адресное пространство. Такое техническое решение позволяет процессору в момент включения питания начать исполнение находящейся в ПЗУ программы (см. “Исполнение программы”). Если опустить массу незначительных для нас подробностей, начало процесса загрузки компьютера при включении питания выглядит так.

При подаче напряжения компьютер начинает выполнять программу, находящуюся в ПЗУ (в IBM PC микросхему ПЗУ часто называют ROM BIOS). Прежде всего проверяется исправность центральной части — процессора, а затем машина определяет, какие устройства подключены и работоспособны ли они. Данный процесс хорошо заметен, поскольку в ходе него компьютер в полном смысле слова “мигает всеми индикаторами” и с шумом старается “расшевелить” все доступные ему устройства.

В случае, когда процесс опроса имеющегося оборудования и проверки его технического состояния завершается успешно, компьютер переходит к следующему этапу — загрузке операционной системы. Для этого он в определенной последовательности опрашивает устройства, где может находиться ОС: внутренний жесткий диск, накопитель на CD, дисковод и даже сетевую плату, с помощью которой в принципе возможно произвести загрузку с удаленного компьютера. Наиболее часто операционная система установлена на жестком диске компьютера; все остальные варианты загрузки более экзотичны или требуются при “аварии” программной системы компьютера.

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

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

После того, как все описанные выше автоматические процессы успешно завершатся, человек получит машину “под свое командование”. Кстати, в ходе своей дальнейшей деятельности пользователь неоднократно будет загружать в ОЗУ те или иные прикладные программы и их запускать; все это будет происходить под руководством операционной системы (см. “Операционная система”).

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

Методические рекомендации

Курс информатики основной школы

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

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

Курс информатики в страших классах

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

Некоторое внимание вопросам автозагрузки необходимого ПО стоит также уделить при объяснении материала об организации личного информационного пространства.

5. Исполнение программы

Любая обработка информации на компьютере осуществляется по программе. Выполнением программы занимается процессор (см. “Процессор”), при этом сама программа хранится, как правило, в ОЗУ (см. “Память оперативная”) и считывается оттуда в процессор по мере необходимости. Вопрос о том, каким образом программа попадает в оперативную память, рассматривается отдельно в статье “Загрузка ПО” 2.

Каждая программа состоит из отдельных двоичных команд (см. “Машинная команда”), так что выполнение программы есть не что иное, как поочередное выполнение этих команд. Рассмотрим последовательность действий ЭВМ при выполнении каждой из команд программы.

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

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

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

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

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

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

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

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

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

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

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

Методические рекомендации

Курс информатики основной школы

Школьникам следует дать представление об ЭВМ как об автомате, выполняющем программу в соответствии с относительно несложным алгоритмом. Авторы самого первого школьного учебника информатики10 подчеркивали методическую важность этого понятия. “Основной алгоритм работы процессора является важнейшим материалом данного параграфа. Следуя командам этого алгоритма, процессор осуществляет автоматическое исполнение программы, находящейся в памяти ЭВМ. В принципе этот алгоритм чрезвычайно прост... Но его общеобразовательное значение очень велико: разобравшись в основном алгоритме процессора, учащиеся узнают, как происходит автоматическое исполнение программы, хранящейся в памяти компьютера, т.е. как осуществляет ЭВМ автоматическую обработку информации. Учитель должен добиваться от школьников понимания сути предлагаемого материала, а не его механического выучивания”.

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

Курс информатики в старших классах

Стандарт не содержит прямого указания на необходимость повторения и углубления материала о программном принципе работы ЭВМ. Тем не менее, учитывая его важность, можно рекомендовать это сделать в рамках изучения темы “Аппаратное и программное обеспечение компьютера” (см. “Аппаратное и программное обеспечение”). Поскольку речь в ней обязательно пойдет о соотношении компонентов hard и soft, повторение принципов аппаратной основы выполнения программы видится вполне уместным. Более того, на новом уровне можно провести дискуссию о том, как в рамках основного алгоритма можно реализовать не только линейные задачи, но также разветвляющиеся или циклические. При наличии достаточного времени можно обсудить систему команд компьютера (см. “Машинная команда”).

Интересным мировоззренческим вопросом является исполнение команды “Останов”. Стоит объяснить ученикам, что в самых первых ЭВМ такая команда действительно завершала вычисления, после чего машина прекращала работу и ждала действий человека-оператора. Но позднее, когда задачи в машинах стали выполняться под руководством управляющих программ, окончание очередной задачи приводило к передаче управления программам-администраторам более высокого уровня; первоначально их называли мониторами, или супервизорами, сейчас этим занимается хорошо известная любому грамотному пользователю операционная система (см. “Операционная система”).

 6. Контроллеры

Контроллер — это электронное устройство, предназначенное для подключения к магистрали компьютера разных по принципу действия, интерфейсу и конструктивному исполнению периферийных устройств (см. также “Функциональное устройство” и “Шины и интерфейсы”).

К термину “контроллер” очень близок по смыслу другой термин — “адаптер”. Назначение обоих одинаково, но контроллер несколько сложнее: “подразумевается его некоторая активность — способность к самостоятельным действиям после получения команд от обслуживающей его программы. Сложный контроллер может иметь в своем составе и собственный процессор”11. На уровне рядового пользователя данные понятия практически неразличимы и могут считаться синонимами.

И еще одним похожим устройством является сопроцессор. Сопроцессоры “помогают” основному (центральному) процессору, который исполняет программу, реализовывать сложные специфические функции. Примером может служить графический сопроцессор, выполняющий геометрические построения и обработку графических изображений, — его вполне можно считать графическим контроллером. Несколько особняком стоит математический сопроцессор, который выполняет свои функции “в одиночку”, не управляя никакими внешними устройствами.

Все перечисленные выше устройства служат для уменьшения нагрузки на центральный процессор и повышают общую производительность системы. Значение контроллеров состоит в том, что они освобождают процессор от наиболее медленных функций ввода/вывода информации. Идеи применения специализированных интеллектуальных схем для разгрузки центрального процессора были заложены еще в третьем поколении ЭВМ в больших машинах коллективного пользования IBM-360 (в СССР данное семейство машин известно в качестве “аналога” под именем ЕС ЭВМ). В четвертом поколении возникла технологическая возможность собирать схемы управления в едином кристалле, и появились микроконтроллеры.

В качестве примера на фотографии приведен вид микроконтроллера, располагающегося внутри клавиатуры. Подчеркнем, что еще один контроллер для обслуживания клавиатуры есть в самом компьютере. Кроме того, все устройства ввода/вывода и внешняя память также имеют свои контроллеры.

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

Чтобы читатели получили некоторое представление о функциях и возможностях современных контроллеров, приведем описание контроллера накопителя на гибких магнитных дисках, которое дается в фундаментальном труде Э.Таненбаума по операционным системам12. “Основными командами являются команды read и write (чтение и запись). Каждая из них требует 13 параметров, упакованных в 9 байт. Эти параметры определяют такие элементы, как адрес блока на диске, который нужно прочитать, количество секторов на дорожке, физический режим записи, расстановку промежутков между секторами. Они же сообщают, что делать с меткой адреса данных, которые были удалены. Если вы не можете сразу это осмыслить, не волнуйтесь — полностью это понятно лишь посвященным. Когда выполнение операции завершается, чип контроллера возвращает упакованные в 7 байт 23 параметра, отражающие наличие и типы ошибок”.

Еще боRльшим интеллектом обладает контроллер современного винчестера. Например, он “помнит” все имеющиеся на магнитной поверхности некачественно изготовленные сектора (а их при современной плотности записи избежать не удается!) и способен подменять их резервными, создавая видимость диска, который полностью свободен от дефектов. Или еще один пример. Современные жесткие диски используют технологию S.M.A.R.T. (Self Monitoring Analysis and Report Technology — дословно “технология самоконтроля, анализа и отчета”; кроме того, английское слово “smart” имеет значение “разумный”, “интеллектуальный”). Винчестер, оснащенный такой возможностью, со времени самого первого включения ведет статистику своих параметров, сохраняя ее результаты в некоторой скрытой области диска. Накопленные данные могут помочь специалистам при анализе состояния жесткого диска и условий его эксплуатации.

Методические рекомендации

Курс информатики основной школы

Строго говоря, в Стандарте и Примерной программе не упоминается термин “контроллер”. Тем не менее минимальное представление о контроллерах и их функциях, по нашему мнению, школьникам желательно дать.

Курс информатики в старших классах

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


1 Бобровский С. Цена ошибки. PCWeek/Russian Edition № 9/2007 (http://pcweek.ru/?ID=626437).

2 Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2003, 704 с.

3 Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства // Кибернетический сборник. М.: Мир, 1964. Вып. 9.

4 Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2003, 704 с.

5 Толковый словарь по вычислительным системам / Под ред. В.Иллингуорта и др. М.: Машиностроение, 1989, 568 с.

6 Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. СПб.: Питер, 2004, 668 с.

7 Нортон П., Соухэ Д. Язык ассемблера для IBM PC. М.: Компьютер, 1992, 352 с.

8 Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства // Кибернетический сборник. М.: Мир, 1964. Вып. 9.

9 Частиков А.П. Архитекторы компьютерного мира. СПб.: БХВ-Петербург, 2002, 384 с.

10 Изучение основ информатики и вычислительной техники: Методическое пособие для учителей и преподавателей средних учебных заведений. В 2 ч. Ч. 2 / А.П. Ершов, В.М. Монахов, М.В. Витиньш и др. М.: Просвещение, 1986, 207 с. (см. § 2 “Основной алгоритм работы процессора”).

11 Гук М. Аппаратные средства IBM PC. Энциклопедия. СПб.: Питер, 2003, 923.

12 Э.Таненбаум. Современные операционные системы. СПб.: Питер, 2004, 1040 с.

Продолжение