Автоматизация обработки информации и появление компьютера
Исторически первыми возникли и стали развиваться средства, предназначенные для выполнения вычислительных работ. Известно, что уже древние греки и римляне использовали для вычислений счетное устройство абак, представляющее собой глиняную пластину с желобами, в которые раскладывались камни. При счете камешки передвигались по желобам, которые определяли разряды чисел. Появление абака относят к четвертому тысячелетию до нашей эры. Местом появления считается Азия. Развитие подобных средств вычислений привело, например, к появлению в России в XVI-XVII веках намного более передового изобретения, не утратившего актуальность и поныне - русским счетам. Однако подобные устройства можно лишь условно отнести к средствам автоматизации вычислений, так как они не обладали свойством автоматического выполнения вычислений, и поэтому производительность вычислений была низкой и в значительной степени зависела от способностей человека.
Первое в мире автоматическое устройство для выполнения операции сложения было создано на базе механических часов. В 1623 году его разработал немецкий ученый Вильгельм Шиккард, назвавший устройство "суммирующими часами". В 1642 году французский механик Блез Паскаль разработал более компактное суммирующее устройство, которое стало первым в мире механическим калькулятором, выпускающимся серийно. В 1673 году немецкий математик и философ Готфрид Вильгельм Лейбниц создал механический калькулятор, который мог выполнять операции умножения и деления путем многократного повторения операций сложения и вычитания.
Идея автоматического управления механическими устройствами в соответствии с алгоритмом управления, зафиксированном на перфорированной бумажной ленте, впервые была реализована в 1804 году в ткацком станке Жаккарда. Это послужило толчком к возникновению и развитию идеи программного управления вычислительными операциями.
Впервые идея программирования вычислительных операций была предложена английским ученым Чарльзом Бэббиджем, разработавшим принципы построения универсальной программируемой Аналитической машины, и реализовавшим её в механическом виде. Идею использования перфорированных карт для программирования вычислительных операций в 1843 году подала Ч.Бэббиджу графиня Огаста Ада Лавлейс дочь известного поэта лорда Байрона. Леди Аду считают в связи с этим первым в мире программистом, а её именем назван один из современных языков программирования (язык программирования АДА). Особенностью Аналитической машины стало еще и то, что в ней впервые был реализован принцип разделения информации на команды и данные.
С конца 30-ых годов ХХ века, началось стремительное развитие средств автоматизации вычислений, связанное с тем, что при разработке вычислительных машин стали широко использовать электронные устройства. В начале 50-ых годов уже сформировалось промышленное производство электронных вычислительных машин (компьютеров), которые стали широко использоваться в различных сферах человеческой деятельности для работы с информацией.
Компьютер как универсальное средство для работы с информацией
Компьютер является универсальным средством для работы с информацией, так как позволяет хранить и обрабатывать информацию любой природы, предварительно преобразованную в двоичные коды.
Классические принципы построения и работы современного компьютера сформулировал в 40-ых годах 20-го века американский математик Джон фон Нейман. Согласно этим принципам в самом общем виде структура и функционирование компьютера выглядит следующим образом (Рис. 13).
Рис. 13. Структурно-функциональная организация компьютера
Память компьютера
Память является важнейшим структурным элементом компьютера. Она предназначена для запоминания и хранения двоичных данных. Информация на этапе ввода данных воспринимается от источника информации, преобразуется в двоичные коды и помещается в память компьютера. Память состоит из так называемых ячеек памяти, предназначенных для хранения двоичных кодов. Каждая ячейка памяти состоит из разрядов, способных находиться в одном из двух различных состояний, одно из которых ассоциируют с двоичной цифрой 0, а другое – 1. Количество разрядов в ячейках памяти конечно. Чем больше разрядов в ячейке, тем больше различных двоичных кодов (данных) в ней может храниться. Если ячейка состоит из N разрядов, то в ней может быть сохранен любой из 2N различных двоичных кодов. Чем N больше, тем больше различной информации может быть представлено в одной ячейке памяти. Например, если N=8, то в ячейке памяти может быть сохранен один из 28=25610 двоичных кодов в диапазоне от 000000002¸111111112. Для хранения значений, превышающих 111111112 или 25510, потребуется уже не менее двух ячеек памяти.
Количество ячеек в памяти компьютера также конечно. Чем больше ячеек включает в себя память, тем большим объемом памяти располагает компьютер и тем больше информации может быть помещено в память.
Для того чтобы помещать информацию (данные) в ячейку или брать ее из ячейки, необходимо эту ячейку указывать (адресовать). Самый простой способ адресации ячеек - это упорядочить их, определив им порядковый номер от 0 до M=2N-1, где N - количество разрядов в ячейке памяти. Тогда структура памяти компьютера может быть представлена следующим образом:
… | |||||
1 | … | ||||
… | |||||
... | |||||
… | |||||
… | |||||
М | … |
Рис. 14. Структура памяти компьютера
Главной характеристикой памяти является её объем. Различают понятия объема памяти и объема данных. Объем памяти характеризует её потенциальную способность сохранять в себе определенное максимальное количество данных. Объем же данных – это то количество памяти, которое необходимо для их сохранения в компьютере. Поэтому объем памяти и объемы данных указывают в одних и тех же единицах измерения.
Так как вся информация в памяти компьютера хранится в виде двоичных кодов, то для определения объемов памяти и данных используются единицы измерения информации, представляющие собой совокупности (группы) двоичных разрядов.
Минимальная память состоит из одного двоичного разряда, её объем принят за минимальную единицу измерения памяти, называемую - бит. Более крупные единицы измерения объемов памяти принято представлять группами двоичных разрядов кратными 8. Например, следующей за битом единицей измерения объема памяти является байт, представляющий собой группу из 8 двоичных разрядов. Это означает, что 1 байт = 8 бит. Другие, используемые в настоящее время, более крупные единицы измерения объемов памяти и данных в компьютере приведены ниже в таблице.
Единицы измерения объемов памяти и данных в компьютере
Количество двоичных разрядов в группе | 8*1024 | 8*10242 | 8*10243 | 8*10244 | ||
Наименование единицы измерения | Бит | Байт | Кило-байт (Кбайт) | Мега-байт (Мбайт) | Гига-байт (Гбайт) | Тера-байт (Тбайт) |
Программное управление
Согласно принципам фон Неймана в память компьютера заносятся и данные фактографической информации, и данные процедурной информации – алгоритмы. Алгоритмы, находящиеся в памяти, должны выполняться компьютером автоматически. Компьютер способен выполнять только вполне определенный, заранее заданный и ограниченный набор действий над двоичными кодами (воспринимать данные от источника информации и заносить их в память, перемещать данные из одних ячеек памяти в другие, отображать данные из ячеек памяти в приемник информации, выполнять арифметико-логические операции над данными, хранящимися в памяти). Эти действия принято называть командами компьютера, а заданный набор действий - системой команд компьютера. Каждой команде компьютера ставится в соответствие определенный двоичный код. Потому внешне команды компьютера ничем не отличаются от обычных данных. Чтобы некоторый алгоритм, представленный в том или ином виде, ввести в память компьютера, его действия должны быть выражены командами компьютера. Алгоритм, представленный в виде упорядоченного множества команд компьютера, называется программой. Двоичные коды, используемые для кодирования команд управления, называют программными кодами. Использование программ для управления компьютером с целью реализации алгоритмов называют программным управлением.
Для реализации команд компьютер располагает устройством управления, способным извлекать команды из памяти, анализировать и управлять устройствами компьютера для их выполнения. Программа, таким образом, представляет собой последовательность команд, которые в определенном порядке, заданном в алгоритме, используются устройством управления для реализации их выполнения.
Команда программы - это элементарная инструкция, выполняемая компьютером автоматически с помощью устройства управления и арифметико-логического устройства.
В общем случае команда указывает, какую операцию и над какими данными необходимо выполнить и куда поместить результат операции. Поэтому командная инструкция может иметь следующий формат:
КОП | А1 | А2 | А3 |
где КОП - код операции; А1и А2 - адреса ячеек памяти с данными, над которыми должна бать выполнена операция; А3 - адрес ячейки памяти, куда помещается результат выполнения операции.
В зависимости от количества разрядов в ячейке памяти и выбранной системы кодирования командная инструкция может занимать в памяти некоторое количество последовательных ячеек, в каждой из которых располагается определенная часть инструкции. Например, если код операции и адреса занимают по одной ячейки, то для команды сложения чисел потребуется четыре ячейки памяти:
СЛ |
Все машинные команды можно разделить на группы по видам выполняемых операций:
· операции пересылки данных из одной ячейки памяти в другую;
· арифметические операции над данными;
· логические операции над данными;
· операции присвоения и ввода-вывода данных (обращение к внешним устройствам);
· операции передачи управления, которые служат для изменения естественного порядка выполнения команд.
Команды в программе упорядочены и выполняются последовательно одна за другой. Последовательный порядок выполнения команд может быть изменен специальными командами, реализующими операции перехода к следующей команде по указанному адресу.
Процессор
Если команда предполагает реализацию арифметической или логической операции над данными, то устройство управления запускает для её выполнения специальное арифметико-логическое устройство. Устройство управления и арифметико-логическое устройство зачастую рассматривают как единый функциональный блок, предназначенный для выполнения команд, называемыйпроцессором. Электронный блок современных компьютеров, реализующий функции процессора, благодаря своим малым размерам принято называть микропроцессором.