«1 ЭНЦИКЛОПЕДИЯ УЧИТЕЛЯ ИНФОРМАТИКИ II. Теоретические основы информатики Список статей 1. Измерение информации — алфавитный подход 2. Измерение информации — содержательный подход 3. Информационные процессы 4. Информация ...»
В позиционных системах счисления величина, обозначаемая цифрой в записи числа, зависит от ее позиции. Количество используемых цифр называется основанием позиционной системы счисления.
Система счисления, применяемая в современной математике, является позиционной десятичной системой. Ее основание равно десяти, т.к. запись любых чисел производится с помощью десяти цифр:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Позиционный характер этой системы легко понять на примере любого многозначного числа. Например, в числе 333 первая тройка означает три сотни, вторая — три десятка, третья — три единицы.
Для записи чисел в позиционной системе с основанием n нужно иметь алфавит из n цифр.
Обычно для этого при n < 10 используют n первых арабских цифр, а при n > 10 к десяти арабским цифрам добавляют буквы. Вот примеры алфавитов нескольких систем:
Если требуется указать основание системы, к которой относится число, то оно приписывается нижним индексом к этому числу. Например:
1011012, 36718, 3B8F16.
В системе счисления с основанием q (q-ичная система счисления) единицами разрядов служат последовательные степени числа q. q единиц какого-либо разряда образуют единицу следующего разряда. Для записи числа в q-ичной системе счисления требуется q различных знаков (цифр), изображающих числа 0, 1,..., q – 1. Запись числа q в q-ичной системе счисления имеет вид 10.
Развернутая форма записи числа Пусть Aq — число в системе с основанием q, аi — цифры данной системы счисления, присутствующие в записи числа A, n + 1 — число разрядов целой части числа, m — число разрядов дробной части числа:
Развернутой формой числа А называется запись в виде:
Например, для десятичного числа:
В следующих примерах приводится развернутая форма шестнадцатеричного и двоичного чисел:
В любой системе счисления ее основание записывается как 10.
Если все слагаемые в развернутой форме недесятичного числа представить в десятичной системе и вычислить полученное выражение по правилам десятичной арифметики, то получится число в десятичной системе, равное данному. По этому принципу производится перевод из недесятичной системы в десятичную. Например, перевод в десятичную систему написанных выше чисел производится так:
Перевод десятичных чисел в другие системы счисления Перевод целых чисел Целое десятичное число X требуется перевести в систему с основанием q: X = (anan- развернутой форме и выполним тождественное преобразование:
Отсюда видно, что a0 есть остаток от деления числа X на число q. Выражение в скобках — целое частное от этого деления. Обозначим его за X1. Выполняя аналогичные преобразования, получим:
Следовательно, a1 есть остаток от деления X1 на q. Продолжая деление с остатком, будем получать последовательность цифр искомого числа. Цифра an в этой цепочке делений будет последним частным, меньшим q.
Сформулируем полученное правило: для того чтобы перевести целое десятичное число в систему счисления с другим основанием, нужно:
1) основание новой системы счисления выразить в десятичной системе счисления и все последующие действия производить по правилам десятичной арифметики;
2) последовательно выполнять деление данного числа и получаемых неполных частных на основание новой системы счисления до тех пор, пока не получим неполное частное, меньшее делителя;
3) полученные остатки, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления;
4) составить число в новой системе счисления, записывая его, начиная с последнего частного.
Пример 1. Перевести число 3710 в двоичную систему.
Для обозначения цифр в записи числа используем символику: a5a4a3a2a1a Отсюда: 3710 = l00l0l Пример 2. Перевести десятичное число 315 в восьмеричную и в шестнадцатеричную системы:
Отсюда следует: 31510 = 4738 = 13B16. Напомним, что 1110 = B16.
Десятичную дробь X < 1 требуется перевести в систему с основанием q: X = (0, a–1a–2 … a– m+1 a–m) q. Нужно найти значащие цифры числа: a–1, a–2, …, a–m. Представим число в развернутой форме и умножим его на q:
Отсюда видно, что a–1 есть целая часть произведения X на число q. Обозначим за X дробную часть произведения и умножим ее на q:
Следовательно, a–2 есть целая часть произведения X1 на число q. Продолжая умножения, будем получать последовательность цифр. Теперь сформулируем правило: для того чтобы перевести десятичную дробь в систему счисления с другим основанием, нужно:
1) последовательно умножать данное число и получаемые дробные части произведений на основание новой системы до тех пор, пока дробная часть произведения не станет равной нулю или не будет достигнута требуемая точность представления числа в новой системе счисления;
2) полученные целые части произведений, являющиеся цифрами числа в новой системе счисления, привести в соответствие с алфавитом новой системы счисления;
3) составить дробную часть числа в новой системе счисления, начиная с целой части первого произведения.
Пример 3. Перевести десятичную дробь 0,1875 в двоичную, восьмеричную и шестнадцатеричную системы.
Здесь в левом столбце находится целая часть чисел, а в правом — дробная.
Отсюда: 0,187510 = 0,00112 = 0,148 = 0, Перевод смешанных чисел, содержащих целую и дробную части, осуществляется в два этапа. Целая и дробная части исходного числа переводятся отдельно по соответствующим алгоритмам. В итоговой записи числа в новой системе счисления целая часть отделяется от дробной запятой (точкой).
Методические рекомендации Тема Системы счисления имеет прямое отношение к математической теории чисел.
Однако в школьном курсе математики она, как правило, не изучается. Необходимость изучения этой темы в курсе информатики связана с тем фактом, что числа в памяти компьютера представлены в двоичной системе счисления, а для внешнего представления содержимого памяти, адресов памяти используют шестнадцатеричную или восьмеричную системы. Это одна из традиционных тем курса информатики или программирования.
Являясь смежной с математикой, данная тема вносит вклад также и в фундаментальное математическое образование школьников.
Для курса информатики основной интерес представляет знакомство с двоичной системой счисления. Применение двоичной системы счисления в ЭВМ может рассматриваться в двух аспектах: 1) двоичная нумерация, 2) двоичная арифметика, т.е. выполнение арифметических вычислений над двоичными числами.
Двоичная нумерация С двоичной нумерацией ученики встречаются в теме Представление текста в компьютерной памяти. Рассказывая о таблице кодировки, учитель должен сообщить ученикам, что внутренний двоичный код символа — это его порядковый номер в двоичной системе счисления. Например, номер буквы S в таблице ASCII равен 83.
Восьмиразрядный двоичный код буквы S равен значению этого числа в двоичной системе счисления: 01010011.
Двоичные вычисления Согласно принципу Джона фон Неймана, компьютер производит вычисления в двоичной системе счисления. В рамках базового курса достаточно ограничиться рассмотрением вычислений с целыми двоичными числами. Для выполнения вычислений с многозначными числами необходимо знать правила сложения и правила умножения однозначных чисел. Вот эти правила:
Принцип перестановочности сложения и умножения работает во всех системах счисления.
Приемы выполнения вычислений с многозначными числами в двоичной системе аналогичны десятичной. Иначе говоря, процедуры сложения, вычитания и умножения столбиком и деления уголком в двоичной системе производятся так же, как и в десятичной.
Рассмотрим правила вычитания и деления двоичных чисел. Операция вычитания является обратной по отношению к сложению. Из приведенной выше таблицы сложения следуют правила вычитания:
Вот пример вычитания многозначных чисел:
Полученный результат можно проверить сложением разности с вычитаемым. Должно получиться уменьшаемое число.
В любой системе счисления делить на 0 нельзя. Результат деления на 1 равен делимому.
Деление двоичного числа на 102 ведет к перемещению запятой на один разряд влево, подобно десятичному делению на десять. Например:
Деление на 100 смещает запятую на 2 разряда влево и т.д. В базовом курсе можно не рассматривать сложные примеры деления многозначных двоичных чисел. Хотя способные ученики могут справиться и с ними, поняв общие принципы.
Представление информации, хранящейся в компьютерной памяти в ее истинном двоичном виде, весьма громоздко из-за большого количества цифр. Имеется в виду запись такой информации на бумаге или вывод ее на экран. Для этих целей принято использовать смешанные двоично-восьмеричную или двоично-шестнадцатеричную системы.
Существует простая связь между двоичным и шестнадцатеричным представлением числа.
При переводе числа из одной системы в другую одной шестнадцатеричной цифре соответствует четырехразрядный двоичный код. Это соответствие отражено в двоичношестнадцатеричной таблице:
Двоично-шестнадцатеричная таблица Такая связь основана на том, что 16 = 24 и число различных четырехразрядных комбинаций из цифр 0 и 1 равно 16: от 0000 до 1111. Поэтому перевод чисел из шестнадцатеричных в двоичные и обратно производится путем формальной перекодировки по двоично-шестнадцатеричной таблице.
Вот пример перевода 32-разрядного двоичного кода в 16-ричную систему:
1011 1100 0001 0110 1011 1111 0010 1010 BC16BF2A Если дано шестнадцатеричное представление внутренней информации, то его легко перевести в двоичный код. Преимущество шестнадцатеричного представления состоит в том, что оно в 4 раза короче двоичного. Желательно, чтобы ученики запомнили двоично-шестнадцатеричную таблицу. Тогда действительно для них шестнадцатеричное представление станет эквивалентным двоичному.
В двоично-восьмеричной системе каждой восьмеричной цифре соответствует триада двоичных цифр. Эта система позволяет сократить двоичный код в 3 раза.
11. Хранение информации Человек хранит информацию в собственной памяти, а также в виде записей на различных внешних (по отношению к человеку) носителях: на камне, папирусе, бумаге, магнитных и оптических носителях и пр. Благодаря таким записям информация передается не только в пространстве (от человека к человеку), но и во времени — из поколения в поколение.
Разнообразие носителей информации Информация может храниться в различных видах: в виде текстов, в виде рисунков, схем, чертежей; в виде фотографий, в виде звукозаписей, в виде кино- или видеозаписей. В каждом случае применяются свои носители. Носитель — это материальная среда, используемая для записи и хранения информации.
К основным характеристикам носителей информации относятся: информационный объем или плотность хранения информации, надежность (долговечность) хранения.
Бумажные носители Носителем, имеющим наиболее массовое употребление, до сих пор остается бумага.
Изобретенная во II веке н.э. в Китае, бумага служит людям уже 19 столетий.
Для сопоставления объемов информации на разных носителях будем пользоваться универсальной единицей — байт, считая, что один символ текста весит 1 байт. Книга, содержащая 300 страниц, при размере текста на странице примерно 2000 символов имеет информационный объем 600 000 байт, или 586 Кб. Информационный объем средней школьной библиотеки, фонд которой составляет 5000 томов, приблизительно равен Мб = 2,8 Гб.
Что касается долговечности хранения документов, книг и прочей бумажной продукции, то она очень сильно зависит от качества бумаги, от красителей, используемых при записи текста, от условий хранения. Интересно, что до середины XIX века (с этого времени в качестве бумажного сырья начали использовать древесину) бумага делалась из хлопка и текстильных отходов — тряпья. Чернилами служили натуральные красители. Качество рукописных документов того времени было довольно высоким, и они могли храниться тысячи лет. С переходом на древесную основу, с распространением машинописи и средств копирования, с использованием синтетических красителей срок хранения печатных документов снизился до 200–300 лет.
Магнитные носители В XIX веке была изобретена магнитная запись. Первоначально магнитная запись использовалась только для сохранения звука. Самым первым носителем магнитной записи была стальная проволока диаметром до 1 мм. В начале XX столетия для этих целей использовалась также стальная катаная лента. Качественные характеристики всех этих носителей были весьма низкими. Для производства 14-часовой магнитной записи устных докладов на Международном конгрессе в Копенгагене в 1908 г. потребовалось 2500 км, или около 100 кг проволоки.
В 20-х годах прошлого века появляется магнитная лента сначала на бумажной, а позднее — на синтетической (лавсановой) основе, на поверхность которой наносится тонкий слой ферромагнитного порошка. Во второй половине XX века на магнитную ленту научились записывать изображение, появляются видеокамеры, видеомагнитофоны.
На ЭВМ первого и второго поколений магнитная лента использовалась как единственный вид сменного носителя для устройств внешней памяти. На одну катушку с магнитной лентой, использовавшейся в лентопротяжных устройствах первых ЭВМ, помещалось приблизительно 500 Кб информации.
С начала 1960-х годов в употребление входят компьютерные магнитные диски:
алюминиевый или пластмассовый диск, покрытый тонким магнитным порошковым слоем толщиной в несколько микрон. Информация на диске располагается по круговым концентрическим дорожкам. Магнитные диски бывают жесткими и гибкими, бывают сменными и встроенными в дисковод компьютера. Последние традиционно называют винчестерами, а сменные гибкие диски — флоппи-дисками.
“Винчестер” компьютера — это пакет магнитных дисков, надетых на общую ось.
Информационная емкость современных винчестеров измеряется в гигабайтах — десятки и сотни Гб. Наиболее распространенный тип гибкого диска диаметром 3,5 дюйма вмещает Мб данных. Флоппи-диски в последнее время выходят из употребления.
В банковской системе большое распространение получили пластиковые карты. На них тоже используется магнитный принцип записи информации, с которой работают банкоматы, кассовые аппараты, связанные с информационной банковской системой.
Оптические носители Применение оптического, или лазерного, способа записи информации начинается в 1980-х годах. Его появление связано с изобретением квантового генератора — лазера, источника очень тонкого (толщина порядка микрона) луча высокой энергии. Луч способен выжигать на поверхности плавкого материала двоичный код данных с очень высокой плотностью.
Считывание происходит в результате отражения от такой перфорированной поверхности лазерного луча с меньшей энергией (холодного луча). Благодаря высокой плотности записи оптические диски имеют гораздо больший информационный объем, чем однодисковые магнитные носители. Информационная емкость оптического диска составляет от 190 до 700 Мб. Оптические диски называются компакт-дисками — CD.
Во второй половине 1990-х годов появились цифровые универсальные видеодиски DVD (Digital Versatile Disk) с большой емкостью, измеряемой в гигабайтах (до 17 Гб).
Увеличение их емкости по сравнению с CD связано с использованием лазерного луча меньшего диаметра, а также двухслойной и двусторонней записи. Вспомните пример со школьной библиотекой. Весь ее книжный фонд можно разместить на одном DVD.
В настоящее время оптические диски (CD — DVD) являются наиболее надежными материальными носителями информации, записанной цифровым способом. Эти типы носителей бывают как однократно записываемыми — пригодными только для чтения, так и перезаписываемыми — пригодными для чтения и записи.
Флэш-память В последнее время появилось множество мобильных цифровых устройств: цифровые фото- и видеокамеры, МР3-плееры, карманные компьютеры, мобильные телефоны, устройства для чтения электронных книг, GPS-навигаторы и многое другое. Все эти устройства нуждаются в переносных носителях информации. Но поскольку все мобильные устройства довольно миниатюрные, то и к носителям информации для них предъявляются особые требования. Они должны быть компактными, обладать низким энергопотреблением при работе и быть энергонезависимыми при хранении, иметь большую емкость, высокие скорости записи и чтения, долгий срок службы. Всем этим требованиям удовлетворяют флэш-карты памяти. Информационный объем флэш-карты может составлять несколько гигабайт.
В качестве внешнего носителя для компьютера широкое распространение получили флэшбрелоки (флэшки — называют их в просторечии), выпуск которых начался в 2001 году.
Большой объем информации, компактность, высокая скорость чтения-записи, удобство в использовании — основные достоинства этих устройств. Флэш-брелок подключается к USB-порту компьютера и позволяет скачивать данные со скоростью около 10 Мб в секунду.
“Нано-носители” В последние годы активно ведутся работы по созданию еще более компактных носителей информации с использованием так называемых нанотехнологий, работающих на уровне атомов и молекул вещества. В результате один компакт-диск, изготовленный по нанотехнологии, сможет заменить тысячи лазерных дисков. По предположениям экспертов приблизительно через 20 лет плотность хранения информации возрастет до такой степени, что на носителе объемом примерно с кубический сантиметр можно будет записать каждую секунду человеческой жизни.
Организация информационных хранилищ Информация сохраняется на носителях для того, чтобы ее можно было просматривать, искать нужные сведения, нужные документы, пополнять и изменять, удалять данные, потерявшие актуальность. Иначе говоря, хранимая информация нужна человеку для работы с ней. Удобство работы с такими информационными хранилищами сильно зависит от того, как информация организована.
Возможны две ситуации: либо данные никак не организованы (такую ситуацию иногда называют кучей), либо данные структурированы. С увеличением объема информации вариант кучи становится все более неприемлемым из-за сложности ее практического использования (поиска, обновления и пр.).
Под словами данные структурированы понимается наличие какой-то упорядоченности данных в их хранилище: в словаре, расписании, архиве, компьютерной базе данных. В справочниках, словарях, энциклопедиях обычно используется линейный алфавитный принцип организации (структурирования) данных.
Крупнейшими хранилищами информации являются библиотеки. Упоминания о первых библиотеках относятся к VII веку до н.э. С изобретением книгопечатания (XV век) библиотеки стали распространяться по всему миру. В библиотечном деле имеется многовековой опыт организации информации.
Для организации и поиска книг в библиотеках создаются каталоги: списки книжного фонда. Первый библиотечный каталог был создан в знаменитой Александрийской библиотеке в III веке до н.э. С помощью каталога читатель определяет наличие в библиотеке нужной ему книги, а библиотекарь находит ее в книгохранилище. При использовании бумажной технологии каталог — это организованный набор картонных карточек со сведениями о книгах.
Существуют алфавитные и систематические каталоги. В алфавитных каталогах карточки упорядочены в алфавитном порядке фамилий авторов и образуют линейную (одноуровневую) структуру данных. В систематическом каталоге карточки систематизированы по тематике содержания книг и образуют иерархическую структуру данных. Например, все книги делятся на художественные, учебные, научные. Учебная литература делится на школьную и вузовскую. Книги для школы делятся по классам и т.д.
В современных библиотеках происходит смена бумажных каталогов на электронные. В таком случае поиск книг осуществляется автоматически информационной системой библиотеки.
Данные, хранящиеся на компьютерных носителях (дисках), имеют файловую организацию. Файл подобен книге в библиотеке. Аналогично библиотечному каталогу операционная система создает каталог диска, который хранится на специально отведенных дорожках. Пользователь ищет нужный файл, просматривая каталог, после чего операционная система находит этот файл на диске и предоставляет пользователю. На первых дисковых носителях небольшого объема использовалась одноуровневая структура хранения файлов. С появлением жестких дисков большого объема стали использовать иерархическую структуру организации файлов. Наряду с понятием файл появилось понятие папки (см. Файлы и файловая система 2).
Более гибкой системой организации хранения и поиска данных являются компьютерные базы данных (см. Базы данных 2).
Надежность хранения информации Проблема надежности хранения информации связана с двумя видами угроз для хранимой информации: разрушение (потеря) информации и кража или утечка конфиденциальной информации. Бумажные архивы и библиотеки всегда были подвержены опасности физического исчезновения. Огромный ущерб для цивилизации принесло разрушение упомянутой выше Александрийской библиотеки в I веке до н.э., поскольку большая часть книг в ней существовала в единственном экземпляре.
Основной способ защиты информации в бумажных документах от потери — их дублирование. Использование электронных носителей делает дублирование более простым и дешевым. Однако переход на новые (цифровые) информационные технологии создал новые проблемы защиты информации. Подробнее об этом см. статью Защита информации 2.
Методические рекомендации В процессе изучения курса информатики ученики приобретают определенные знания и умения, относящиеся к хранению информации.
Ученики осваивают работу с традиционными (бумажными) источниками информации. В стандарте для основной школы отмечается, что ученики должны научиться работать с некомпьютерными источниками информации: справочниками, словарями, каталогами библиотек. Для этого их следует ознакомить с принципами организации этих источников и с приемами оптимального поиска в них. Поскольку данные знания и умения имеют большое общеучебное значение, то желательно дать их ученикам как можно раньше. В некоторых программах пропедевтического курса информатики этой теме уделяется большое внимание.
Ученики должны овладеть приемами работы со сменными компьютерными носителями информации. Все реже в последнее время используются гибкие магнитные диски, на смену которым пришли емкие и быстрые флэш-носители. Ученики должны уметь определять информационную емкость носителя, объем свободного пространства, сопоставлять с ним объемы сохраняемых файлов. Ученики должны понимать, что для длительного хранения больших объемов данных наиболее подходящим средством являются оптические диски. При наличии пишущего CD-дисковода следует научить их организации записи файлов.
Важным моментом обучения является разъяснение опасностей, которым подвергается компьютерная информация со стороны вредоносных программ — компьютерных вирусов.
Следует научить детей основным правилам компьютерной гигиены: осуществлять антивирусный контроль всех вновь поступающих файлов; регулярно обновлять базы антивирусных программ.
12. Языки Определение и классификация языков Язык — это определенная система символьного представления информации. В словаре по школьной информатике, составленном А.П. Ершовым [6], дано такое определение:
Язык — множество символов и совокупность правил, определяющих способы составления из этих символов осмысленных сообщений. Поскольку под осмысленным сообщением понимается информация, то данное определение по сути своей совпадает с первым.
Языки делятся на две группы: естественные и формальные. Естественные языки — это исторически сложившиеся языки национальной речи. Для большинства современных языков характерно наличие устной и письменной форм речи. Анализ естественных языков в большей степени является предметом филологических наук, в частности, лингвистики. В информатике анализом естественных языков занимаются специалисты в области искусственного интеллекта. Одна из целей разработки проекта ЭВМ пятого поколения — научить компьютер понимать естественные языки.
Формальные языки — это искусственно созданные языки для профессионального применения. Они, как правило, носят международный характер и имеют письменную форму. Примерами таких языков являются язык математики, язык химических формул, нотная грамота — язык музыки и др.
С любым языком связаны следующие понятия: алфавит — множество используемых символов; синтаксис — правила записи языковых конструкций (текста на языке);
семантика — смысловая сторона языковых конструкций; прагматика — практические последствия применения текста на данном языке.
Для формальных языков характерна принадлежность к ограниченной предметной области (математика, химия, музыка и пр.). Назначение формального языка — адекватное описание системы понятий и отношений, свойственных для данной предметной области. Поэтому все названные выше компоненты языка (алфавит, синтаксис и др.) ориентированы на специфику предметной области. Язык может развиваться, изменяться, дополняться вместе с развитием своей предметной области.
Естественные языки не ограничены в своем применении, в этом смысле их можно назвать универсальными. Однако не всегда бывает удобным использовать только естественный язык в узкопрофессиональных областях. В таких случаях люди прибегают к помощи формальных языков.
Известны примеры языков, находящихся в промежуточном состоянии между естественными и формальными. Язык эсперанто был создан искусственно для общения людей разных национальностей. А латынь, на которой в древности говорили жители Римской империи, в наше время стала формальным языком медицины и фармакологии, утратив функцию разговорного языка.
Языки информатики Далее речь пойдет о языках, используемых при работе ЭВМ, в компьютерных информационных технологиях.
Информация, циркулирующая в компьютере, делится на два вида: обрабатываемая информация (данные) и информация, управляющая работой компьютера (команды, программы, операторы).
Информацию, представленную в форме, пригодной для хранения, передачи и обработки компьютером, принято называть данными. Примеры данных: числа при решении математической задачи; символьные последовательности при обработке текстов;
изображение, введенное в компьютер путем сканирования, предназначенное для обработки. Способ представления данных в компьютере называется языком представления данных.
Для каждого типа данных различается внешнее и внутреннее представление данных.
Внешнее представление ориентировано на человека, определяет вид данных на устройствах вывода: на экране, на распечатке. Внутреннее представление — это представление на носителях информации в компьютере, т.е. в памяти, в линиях передачи информации. Компьютер непосредственно оперирует с информацией во внутреннем представлении, а внешнее представление используется для связи с человеком.
В самом общем смысле можно сказать, что языком представления данных ЭВМ является язык двоичных кодов. Однако с точки зрения приведенных выше свойств, которыми должен обладать всякий язык: алфавита, синтаксиса, семантики, прагматики, — нельзя говорить об одном общем языке двоичных кодов. Общим в нем является лишь двоичный алфавит: 0 и 1. Но для различных типов данных различаются правила синтаксиса и семантики языка внутреннего представления. Одна и та же последовательность двоичных цифр для разных типов данных имеет совсем разный смысл. Например, двоичный код 0100000100101011 на языке представления целых чисел обозначает десятичное число 16 683, а на языке представления символьных данных обозначает два символа — А+.
Таким образом, для разных типов данных используются разные языки внутреннего представления. Все они имеют двоичный алфавит, но различаются интерпретацией символьных последовательностей.
Языки внешнего представления данных обычно приближены к привычной для человека форме: числа представляются в десятичной системе, при записи текстов используются алфавиты естественных языков, традиционная математическая символика и пр. В представлении структур данных используется удобная табличная форма (реляционные базы данных). Но и в этом случае всегда существуют определенные правила синтаксиса и семантики языка, применяется ограниченное множество допустимых символов.
Внутренним языком представления действий над данными (языком управления работой компьютера) является командный язык процессора ЭВМ. К внешним языкам представления действий над данными относятся языки программирования высокого уровня, входные языки пакетов прикладных программ, командные языки операционных систем, языки манипулирования данными в СУБД и пр.
Любой язык программирования высокого уровня включает в себя как средства представления данных — раздел данных, так и средства представления действий над данными — раздел операторов (см. Языки программирования 2). То же самое относится и к другим перечисленным выше типам компьютерных языков.
Среди формальных языков науки наиболее близким к информатике является язык математики.
В свою очередь, из множества математических дисциплин наибольшее приложение в В связи с этим можно говорить о том, что темы систем счисления (языка представления чисел) и основ математической логики (языка логики) относятся к фундаментальным основам информатики (см. Системы счисления и Логические выражения 2).
Методические рекомендации В пропедевтическом и базовом курсах информатики большое образовательное значение имеет разговор о языках применительно к человеку. Знакомый ученикам термин язык приобретает новый смысл в их сознании. Вокруг этого термина строится целая система научных понятий. Понятие языка является одним из важнейших системообразующих понятий курса информатики.
Изучая каждое новое средство ИКТ, следует обращать внимание учеников на то, что для работы с ним пользователь должен овладеть определенным формализованным языком, что его использование требует строгого соблюдения правил языка: знания алфавита, синтаксиса, семантики и прагматики. Такая строгость связана с тем, что формализованные языки, как правило, не обладают избыточностью. Поэтому любое нарушение правил (использование символа, не входящего в алфавит, неправильное употребление разделительных знаков, например, запятой вместо точки и т.п.) приводит к ошибке.
Следует обращать внимание учеников на общность некоторых языковых конструкций, используемых в различных технологиях. Например, правила записи формул в электронных таблицах и арифметических выражений в языках программирования практически одинаковы. Существуют и различия, на которые тоже следует обращать внимание. Например, в языках программирования логические связки (NOT, AND, OR) являются знаками операций, а в электронных таблицах — именами функций.
Для упрощения работы пользователя в современном программном обеспечении часто применяются различного рода оболочки, обеспечивающие удобный пользовательский интерфейс. Следует объяснять ученикам, что за этими оболочками, как правило, скрыт определенный формализованный язык. Например, за графической оболочкой операционной системы Windows скрывается командный язык ОС. Другой пример: СУБД MS Access предоставляет пользователю возможность для создания БД использовать конструктор таблиц, а для построения запросов — конструктор запросов. Однако за этими высокоуровневыми средствами скрывается SQL — универсальный язык описания данных и манипулирования данными. Перейдя в соответствующий режим, можно показать, как выглядят команды на SQL, сформированные в результате работы с конструктором.
Библиография разделу “Теоретическая информация” 1. Андреева Е.В., Босова Л.Л., Фалина И.Н. Математические основы информатики.
Элективный курс. М.: БИНОМ. Лаборатория Знаний, 2005.
2. Бешенков С.А., Ракитина Е.А. Информатика. Систематический курс. Учебник для 10-го класса. М.: Лаборатория Базовых Знаний, 2001, 57 с.
3. Винер Н. Кибернетика, или Управление и связь в животном и машине. М.: Советское радио, 1968, 201 с.
4. Информатика. Задачник-практикум в 2 т. / Под ред. И.Г. Семакина, Е.К. Хеннера. Т. 1.
М.: БИНОМ. Лаборатория Знаний, 2005.
5. Кузнецов А.А., Бешенков С.А., Ракитина Е.А., Матвеева Н.В., Милохина Л.В.
Непрерывный курс информатики (концепция, система модулей, типовая программа).
Информатика и образование, № 1, 2005.
6. Математический энциклопедический словарь. Раздел: Словарь школьной информатики. М.: Советская энциклопедия, 1988.
7. Фридланд А.Я. Информатика: процессы, системы, ресурсы. М.: БИНОМ. Лаборатория Знаний, 2003.
ЭНЦИКЛОПЕДИЯ УЧИТЕЛЯ ИНФОРМАТИКИ
III. Компьютер Список статей 1. Аппаратное и программное обеспечение 2. Архитектура 3. Базовые принципы устройства 4. Загрузка ПО 5. Исполнение программы 6. Контроллеры 7. Логические элементы и узлы 8. Машинная команда 9. Носители информации 10. Операционная система 11. Память внешняя 12. Память оперативная 13. Пользовательский интерфейс 14. Процессор 15. Устройства ввода/вывода 16. Файлы и файловая система 17. Функциональное устройство 18. Шины и интерфейсы Учителя со стажем, вероятно, помнят, что когда в 1985 году в школе был введен курс информатики, он получил название Основы информатики и вычислительной техники. Такому длинному сочетанию в школьной практике не суждено было прижиться, и постепенно естественным образом основы вычислительной техники (ВТ) исчезли из названия предмета. Параллельно происходили более серьезные изменения, связанные с бурным развитием и совершенствованием самой ВТ. На начальных этапах преподавания курса школьные КУВТ состояли из маломощных машин с адресным пространством 64 Кб и единственным носителем в виде дискет емкостью 720 Кб, что предопределяло объем и соответствующий уровень сервиса программ. Общение с такой техникой требовало больших познаний, причем порой весьма специфических. Позднее на смену повсеместно пришли персональные компьютеры, информационные возможности которых выросли на порядки, а нормой программного интерфейса стал диалог в форме, близкой к естественной (см. Пользовательский интерфейс). В результате качественно упростился сам стиль общения с компьютером, что породило облегченное отношение к нему большинства пользователей, в том числе и в сфере образования. Возникло устойчивое мнение, что знание и понимание основ вычислительной техники перестало быть полезным, а грамотно использовать компьютер в состоянии любой человек, освоивший методы набора текста на клавиатуре и овладевший несложными манипуляциями с мышью.По-видимому, полное пренебрежение к пониманию логики работы компьютера является чрезмерной крайностью. Например, Питер Нортон, известный не только своими замечательными программами, но и большим количеством популярных книг по IBM PC, в одной из них написал так: Знать, как он работает, не менее важно, чем уметь работать с ПК. Вы можете вполне успешно пользоваться услугами компьютера, не понимая того, что в нем происходит. Однако чем глубже вы представляете процессы, происходящие в ПК, тем лучше будете использовать его возможности... Если что-нибудь случится в процессе работы с компьютером, вероятность того, что вы примете правильное решение, а не наделаете глупостей и не испортите все окончательно, будет выше.
Выбор нового компьютера или модификация уже имеющегося, необходимость выполнения простейших программных настроек в процессе эксплуатации ПК, потребность в анализе системных требований при установке того или иного ПО — все это требует хотя бы минимального понимания процессов, протекающих внутри нашего электронного помощника. Известный автор множества книг по компьютерной тематике Чарльз Петцольд писал: Люди часто задают вопросы, которые подтверждают их интерес к внутреннему устройству компьютера. Один из них: В чем разница между оперативной и постоянной памятью? Это, без сомнения, очень важный вопрос. На подобных понятиях основан весь рынок персональных компьютеров. Предполагается, что даже новичок понимает, сколько мегов одной и гигов другой потребуется его программам. Считается также, что в самом начале знакомства с компьютером пользователь постигает концепцию файла и представляет себе, как файлы загружаются из постоянной в оперативную память и затем из оперативной записываются обратно в постоянную.
Вспомните, о чем говорят наши ученики, обсуждая свои домашние компьютеры: у кого какой процессор, есть ли графический ускоритель и т.п. Так почему бы не помочь сделать это обсуждение более квалифицированным и содержательным?
Помимо общетехнических аргументов, стоит учитывать и педагогические. Как бы не назывался курс информатики, чтобы быть полноценной учебной дисциплиной, он должен быть связным и иметь некоторую внутреннюю логику построения. В свете этого исключение из рассмотрения базовых принципов функционирования компьютера приводит к распаду единства курса. В частности, попробуйте объяснить школьнику, который решает задачу в электронной таблице, зачем вы ему рассказывали на предыдущих уроках о двоичной системе счисления, если он и вводит данные в ячейки, и считывает полученный результат в десятичном виде. Аналогичным образом описание логических элементов во многих учебниках информатики стоит особняком от остального материала, тогда как при вдумчивом подходе он оказывается важной частью представлений о работе компьютера (см. Логические элементы и узлы).
Содержательная линия Компьютер при внимательном рассмотрении оказывается неразрывно связанной со всеми остальными линиями школьного курса. Многие темы последнего связаны с устройством ВТ и базируются на них (машинная графика, файловая система, программное обеспечение и т.д.). Даже такая общефилософская линия, как Социальная информатика, многое теряет, если отрывается от базовых принципов функционирования компьютера. Например, возможные отрицательные социальные последствия от чрезмерной автоматизации с обывательских позиций исходят непосредственно от машин. Но на данном уровне технологий опасность грозит с совершенно другой стороны: недостаточно тщательно спроектированные, написанные и протестированные программы, ошибочный ввод параметров рядовым оператором в ходе их эксплуатации, вредоносные вставки в ПО и несанкционированный доступ к данным — вот далеко не полный список вполне реальных причин, способных при определенных условиях привести к катастрофе. Например, в интереснейшей статье Сергея Бобровского в русском издании журнала PCWeek1 приводится следующий весьма показательный пример. Использовавшаяся в Канаде и США система радиационной терапии Therac- иногда генерировала сверхдозы облучения, в сотни раз превышавшие максимально допустимые, в результате чего в середине 1980-х годов погибло пять человек. Лишь с большим трудом удалось установить источник трагедии: в системе использовалась самодельная и никем не сертифицированная ОС, которая в ряде случаев некорректно синхронизировала параллельные процессы.
Несмотря на поразительные успехи в автоматизации весьма сложной человеческой деятельности, по выражению Станислава Лема, мышление людей так ужасающе отличается от мышления автоматов. Не следует поэтому полагать, что интуитивный пользовательский опыт автоматически обеспечит понимание логики компьютера.
Для преодоления указанной дистанции между человеком и машиной активно используется многоуровневая организация вычислительных устройств. В результате компьютер можно рассматривать как иерархию уровней, каждый из которых выполняет ограниченный круг функций. Подробным образом теория многослойной организации компьютеров развита в классической книге Эндрю Таненбаума, которая в оригинале называется Structured Computer Organization2.
Каждый уровень можно считать самостоятельной виртуальной машиной с собственной системой команд и, соответственно, с собственными возможностями и языком. На ее базе строится следующая виртуальная машина с еще более мощной системой команд и т.д.
Процесс надстройки уровней продолжается до тех пор, пока самый верхний из них не окажется подходящим для решения требуемых задач.
Человеку, общающемуся с компьютером на одном из верхних уровней, не обязательно знать о существовании более низких уровней: он введет необходимые команды на соответствующем языке (причем язык вполне может базироваться даже на графическом интерфейсе!), и машина их успешно выполнит. Но вот что, по мнению Таненбаума, очень важно. Большинство программистов, использующих машину уровня 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 имеет значение разумный, интеллектуальный). Винчестер, оснащенный такой возможностью, со времени самого первого включения ведет статистику своих параметров, сохраняя ее результаты в некоторой скрытой области диска. Накопленные данные могут помочь специалистам при анализе состояния жесткого диска и условий его эксплуатации.
Методические рекомендации Курс информатики основной школы Строго говоря, в Стандарте и Примерной программе не упоминается термин контроллер. Тем не менее минимальное представление о контроллерах и их функциях, по нашему мнению, школьникам желательно дать.
Курс информатики в старших классах Стандарты (базовый и профильный) старших классов содержат вопросы, связанные с архитектурой и организацией современных компьютеров. По-видимому, осветить эти вопросы, не упоминая терминов адаптер, контроллер и сопроцессор, просто невозможно. Изложенный в статье материал можно рассматривать в качестве минимума информации, который следует изложить старшекласснику в рамках рассказа об устройстве современного компьютера.
(http://pcweek.ru/?ID=626437).
Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2003, 704 с.
Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства // Кибернетический сборник. М.:
Мир, 1964. Вып. 9.
Таненбаум Э. Архитектура компьютера. СПб.: Питер, 2003, 704 с.
Толковый словарь по вычислительным системам / Под ред. В.Иллингуорта и др. М.:
Машиностроение, 1989, 568 с.
Цилькер Б.Я., Орлов С.А. Организация ЭВМ и систем. СПб.: Питер, 2004, 668 с.
Нортон П., Соухэ Д. Язык ассемблера для IBM PC. М.: Компьютер, 1992, 352 с.
Беркс А., Голдстейн Г., Нейман Дж. Предварительное рассмотрение логической конструкции электронного вычислительного устройства // Кибернетический сборник. М.:
Мир, 1964. Вып. 9.
Частиков А.П. Архитекторы компьютерного мира. СПб.: БХВ-Петербург, 2002, 384 с.
Изучение основ информатики и вычислительной техники: Методическое пособие для учителей и преподавателей средних учебных заведений. В 2 ч. Ч. 2 / А.П. Ершов, В.М.
Монахов, М.В. Витиньш и др. М.: Просвещение, 1986, 207 с. (см. § 2 Основной алгоритм работы процессора).
Гук М. Аппаратные средства IBM PC. Энциклопедия. СПб.: Питер, 2003, 923.
Э.Таненбаум. Современные операционные системы. СПб.: Питер, 2004, 1040 с.
ЭНЦИКЛОПЕДИЯ УЧИТЕЛЯ ИНФОРМАТИКИ
III. Компьютер 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 = 1 — результат не равен В самом деле, пусть содержимое всех битов регистра равно 0. Тогда на входы элемента И с инверсных выходов триггеров поступают все 1 и результат z = 1. Если хотя бы один из от 0, то с его инверсного выхода снимается 0 и этого, как известно, уже достаточно, чтобы получить выходной сигнал z = 0 независимо от состояния всех остальных входов элемента Заметим, что проверку знака числа реализовать еще проще — достаточно проанализировать состояние знакового (обычно старшего) разряда: если он установлен в 1, то регистр содержит отрицательное число.
Триггеры очень широко применяются в компьютерной технике. Помимо уже описанного применения в составе разнообразных регистров, на их основе могут еще изготовляться быстродействующие ИМС статического ОЗУ (в том числе кэш-память).