Теоретические основы информатики

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

Рубрика Программирование, компьютеры и кибернетика
Вид учебное пособие
Язык русский
Дата добавления 30.10.2011
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

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

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

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

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 параметра, отражающие наличие и типы ошибок”.

Еще большим интеллектом обладает контроллер современного винчестера. Например, он “помнит” все имеющиеся на магнитной поверхности некачественно изготовленные сектора (а их при современной плотности записи избежать не удается!) и способен подменять их резервными, создавая видимость диска, который полностью свободен от дефектов. Или еще один пример. Современные жесткие диски используют технологию 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 с

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

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

Логические элементы

Может показаться, что для реализации сложных логических функций требуется большое разнообразие логических элементов. Тем не менее из теории логических функций следует, что достаточно очень небольшого базового набора, чтобы с помощью различных комбинаций, его составляющих, можно было получить абсолютно произвольную функцию (такой набор называетсяполным1). Базисный набор может быть сформирован различными способами, но чаще всего используется классическая “тройка” логических операций И, ИЛИ, НЕ. Именно эта “тройка” применяется в книгах по логике, а также во всех языках программирования: от машинных кодов до языков высокого уровня. Обозначения логических элементов2, реализующих соответствующие операции, показаны на схемах a-c. Соответствующие им таблицы истинности приведены в статье “Логические операции. Кванторы”.

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

Классический базис не является единственным. Более того, на практике инженеры предпочитают альтернативный вариант на основе единственного комбинированного логического элемента И-НЕ (схема e). Несложно показать, что из элементов И-НЕ можно построить все примитивы классического базиса3.

Отметим, что на практике логические элементы могут иметь не только два, но и значительно большее количество входов (для примера см. схему на с. 4).

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

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

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

Рассмотрим логическую схему сумматора. Для простоты ограничимся изучением работы отдельного двоичного разряда. В этом случае сумматор будет содержать три входа -- бит первого слагаемого А, второго -- В и перенос из предыдущего разряда Ci(обозначение происходит от английских слов Carry in -- входной перенос), и два выхода -- результирующая сумма S и выходной перенос Co (Carry out).

Таблица истинности для полного одноразрядного сумматора имеет вид:

При построении практической схемы оказывается удобным сумматор представить в виде двух полусумматоров, первый из которых складывает разряды А и В, а второй к полученному результату прибавляет бит переноса из предыдущего разряда Ci. Таблица истинности для полусумматора значительно упрощается:

Несложный анализ таблицы показывает, что для реализации полусумматора достаточно соединить параллельно входы двух логических элементов: И исключающее ИЛИ (см. схему a). Если скомбинировать два полусумматора, как показано на схеме b, то получится полный сумматор, способный осуществить сложение одного бита чисел с учетом возможности переноса.

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

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

Его схема приведена на рисунке, а таблица истинности имеет следующий вид:

Как видно из схемы выше, триггер собран из четырех логических элементов И-НЕ, причем два из них играют вспомогательную роль инверторов входных сигналов. Триггер имеет два входа, обозначенные на схеме R и S, а также два выхода, помеченные буквой Q, -- прямой и инверсный (черта надQ у инверсного выхода означает отрицание). Триггер устроен таким образом, что на прямом и инверсном выходах сигналы всегда противоположны.

Как работает триггер? Пусть на входе R установлена 1, а на S -- 0. Логические элементы D1 и D2 инвертируют эти сигналы, т.е. меняют их значения на противоположные. Поскольку на одном из входов D4 имеется 0, независимо от состояния другого входа на его выходе обязательно установится 1. Эта единица передается на вход элемента D3 и в сочетании с 1 на другом входе порождает на выходе D3 логический 0. Итак, при R = 1 и S = 0 на прямом выходе триггера устанавливается 0, а на инверсном -- 1.

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

Аналогичные рассуждения для “симметричного” случая R = 0 иS = 1 приводят к тому, что, наоборот, на прямом выходе получится логическая 1, а на инверсном -- 0. Триггер перейдет в единичное состояние -- установится (установка по-английски Set).

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

Комбинация входных сигналов R = 1 и S = 1 приводит к тому, что в этом случае на обоих выходах триггера установится 1! Такое состояние, помимо своей логической абсурдности, еще и является неустойчивым: после снятия входных сигналов триггер случайным образом перейдет в одно из своих устойчивых состояний. Вследствие этого комбинация R = 1 и S = 1 на практике не используется и является запрещенной.

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

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

С выходов триггеров регистра сигналы могут поступать на другие цифровые устройства. Особый интерес с точки зрения принципов функционирования компьютера представляет схема анализа равенства (или неравенства) регистра нулю, которая позволяет организовать по этому признаку условный переход. Для n-разрядного двоичного регистра потребуется n-входовый элемент И (см. схему), сигналы для которого удобнее снимать с инверсных выходов триггеров. Фактически такая схема анализа выполняет комбинированную логическую операцию НЕ-И.

z = 0 -- результат равен 0

z = 1 -- результат не равен 0

В самом деле, пусть содержимое всех битов регистра равно 0. Тогда на входы элемента И с инверсных выходов триггеров поступают все 1 и результат z = 1. Если хотя бы один из разрядов отличен

от 0, то с его инверсного выхода снимается 0 и этого, как известно, уже достаточно, чтобы получить выходной сигнал z = 0 независимо от состояния всех остальных входов элемента И.

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

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

Логические узлы как основа устройства компьютера

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

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

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

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

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

Ситуация с включением описанного материала в школьный курс информатики согласно опубликованным нормативным документам выглядит, мягко говоря, непрозрачно. В Стандартах и Примерных программах, несмотря на включение всевозможных вопросов математической логики, ни логические элементы, ни логические узлы ниже уровня “процессор-память-устройства ввода/вывода” даже не упоминаются. Зато в рекомендованных Министерством образования билетах выпускного экзамена по информатике четко сформулирован вопрос “Логические элементы и схемы. Типовые логические устройства компьютера: полусумматор, сумматор, триггеры, регистры”.

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

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

Каждая программа состоит из отдельных машинных команд; команда является указанием процессору произвести какую-либо элементарную операцию, например, копирования информации, сложения

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

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

в пределах одного семейства компьютеры имеют совместимые инструкции.

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

1. Команды передачи данных (перепись), копирующие информацию из одного места в другое.

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

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

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

5. Команды ввода и вывода информации для обмена с внешними устройствами.

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

По степени сложности команд и их ассортименту процессоры разделяют на две группы -- RISC и CISC (см. “Процессор”).

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

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

Команды могут быть одно-, двух- и трехадресные в зависимости от количества возможных операндов. Первые ЭВМ имели наиболее простую и наглядную трехадресную систему команд. Например: взять числа из адресов памяти А1 и А2, сложить их и сумму поместить в адрес А3. Для реализации этого сложения на одноадресной машине потребуется выполнить не одну, а три команды:

a) извлечь содержимое ячейки А1 в сумматор;

b) сложить сумматор с числом из А2;

c) записать результат из сумматора в А3.

Может показаться, что одноадресной машине для решения любой задачи потребуется втрое больше команд, чем трехадресной. На самом деле это далеко не всегда так. Попробуйте самостоятельно спланировать программу вычисления выражения Y = (X1 + X2) * X3/X4 и вы с удивлением обнаружите, что потребуется 3 трехадресных команды и всего 5 одноадресных. Таким образом, одноадресная машина в чем-то даже эффективнее, т.к. она не производит ненужной записи в память промежуточных результатов.

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

Чтобы получить хотя бы некоторое представление об уровне машинных команд, приведем примеры нескольких типичных инструкций для процессоров семейства Intel.

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

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

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

Эксперименты показывают5, что для процессоров типа Pentium и ниже простые инструкции (пересылки, сложение регистров и т.п.) выполняются примерно за один такт. Таким образом, тактовая частота вполне может служить приблизительной оценкой количества таких операций, выполняемых за 1 секунду. Для более поздних моделей картина существенно “размывается” из-за сложных методов одновременного выполнения нескольких операций.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Первые оптические диски, получившие название компакт-диски, или сокращенно CD (Compact Disc), были созданы компаниями Sony и Philips и предназначались для записи музыки. Достоинства новых носителей были очень быстро оценены, и их приспособили для записи компьютерной информации. Первоначально информацию на компакт-диски можно было занести только на заводе-изготовителе, но с развитием технологий появились устройства для записи непосредственно на компьютере пользователя, и даже удалось разработать компакт-диски с возможностью перезаписи.

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


Подобные документы

  • Разработка программных и аппаратных компонентов для проведения информатизации объекта. Выбор конфигурации рабочих станций. Комплектация персонального компьютера и сервера для обеспечения обработки информации. Схема лицензирования программного обеспечения.

    курсовая работа [2,5 M], добавлен 20.12.2012

  • Понятие, содержание, объект, предмет информатики. Основные виды и способы обработки и кодирования данных. Информация, информационные процессы и системы как объект правового регулирования общественных отношений. Архитектура, программное обеспечение ПЭВМ.

    курс лекций [6,5 M], добавлен 20.06.2009

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

    презентация [68,1 K], добавлен 27.12.2011

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

    презентация [931,9 K], добавлен 23.12.2010

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

    курсовая работа [55,8 K], добавлен 23.04.2014

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

    контрольная работа [333,2 K], добавлен 21.02.2010

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

    курсовая работа [1,6 M], добавлен 15.03.2015

  • Содержательный и кибернетический подходы к определению и измерению информации. Кодирование символьной информации в компьютере. Линия информации и информационных процессов. Обзор процесса передачи информации по техническим каналам связи. Языки информатики.

    презентация [173,0 K], добавлен 19.10.2014

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

    контрольная работа [40,5 K], добавлен 22.04.2011

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

    презентация [278,6 K], добавлен 25.02.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.