Вычислительная машина

{toc_noshowall}ЭВМ состоит из четырех основных частей, каждая из которых вносит свой вклад в функционирование вычислительной системы в целом. На рис. 1.2 схематически изображены эти части системы и связи между ними. Итак, основными компонентами ЭВМ являются:

Устройство управления: осуществляет управление системой в целом.

Память: место, где хранятся программы и обрабатываемая информация.

Арифметическое устройство: предназначено для выполнения арифметических и логических операций.

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

Рис. 1.2. Структура вычислительной системы.

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

Рассмотрим каждый из компонентов более подробно.

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

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

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

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

На рис. 1.3 изображен участок памяти и указано его возможное содержимое в некоторый момент. Для того чтобы определить содержимое некоторой ячейки, достаточно указать ее адрес. Таким образом, можно сказать, что числом, хранящимся по адресу 101, является 15, или, более строго, что содержимое ячейки 101 равно 15. Последнее выражение является общепринятым, мы будем им часто пользоваться. Символически сослаться на содержимое ячейки можно, заключив ее адрес в скобки. Следующие предложения эквивалентны:

1.Число, находящееся в данный момент в ячейке 103, есть 352.

2.Содержимое ячейки 103 — число 352.

3.(103)=352.

Рис. 1.3. Участок памяти и его возможное содержимое.

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

Содержимое памяти остается неизменным до тех пор, пока в устройство управления не поступит команда на его изменение. Изменение содержимого ячейки памяти называется записью в ячейку. В команде записи необходимо указать две величины: то, что мы хотим записать, т. е. новое содержимое ячейки памяти, и величину, характеризующую место, куда мы хотим произвести запись, т. е. адрес ячейки. Допустим, что нам захотелось записать 0 по адресу 103. Что произойдет

со старым содержимым этой ячейки после выполнения команды записи? Оно будет уничтожено.

Если считать, что содержимое некоторой области памяти в данный момент выглядит так, как показано на рис. 1.3, то после записи числа 15 по адресу 103 содержимое этой же области будет выглядеть так:

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

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

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

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

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

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

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

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

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

Процесс ввода-вывода состоит из двух шагов. Первый шаг состоит в преобразовании информации в форму внутреннего представления ЭВМ или из нее. Это преобразование необходимо, так как информация хранится в памяти и обрабатывается центральным процессором в двоичной форме, о чем будет подробно рассказано позднее. С другой стороны, человек предпочитает объясняться с машиной с помощью более привычных ему символов. Например, программисту предпочтительнее использовать букву «А» в своей программе, нежели ее двоичное представление, которое в коде EBCDIC выглядит как 1100 0001.

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

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

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

На рис. 1.4 изображена перфокарта. Закодированные символы надпечатаны вдоль верхнего края карты. Каждая из 80 колонок карты представляет один символ; код каждого символа расположен вертикально под его печатным изображением.

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

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

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

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

Рис. 1.4. Перфокарта с информацией.

 
Статьи раздела