Основным принципом построения всех современных компьютеров является программное управление. В основе его лежит представление алгоритма решения любой задачи в виде программы вычислений.
Алгоритм — это конечный набор предписаний, определяющий решение задачи посредством конечного количества операций.
Программа — это упорядоченная последовательность команд, подлежащая обработке.
Следует заметить, что строгого, однозначного определения алгоритма, равно как и однозначных методов его преобразования в программу вычислений, не существует.
Принцип программного управления может быть осуществлен различными способами. Стандартом для построения практически всех ЭВМ стал способ, описанный Дж. фон Нейманом в 1945 г. при построении еще первых образцов ЭВМ.
Суть его заключается в следующем: все вычисления, предписанные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов — команд. Каждая команда содержит указания на конкретную выполняемую операцию, местонахождение (адреса) операндов и ряд служебных признаков. Операнды — переменные, значения которых участвуют в операциях преобразования данных.
Список (массив) всех переменных (входных данных, промежуточных значений и результатов вычислений) является неотъемлемым элементом любой программы.
Для доступа к программам, командам и операндам используются их адрес а. В качестве адресов выступают номера ячеек памяти ЭВМ, предназначенных для хранения объектов.
Информация (командная и данные: числовая, текстовая, графическая и т.п.) кодируется двоичными цифрами «0» и «1». Поэтому различные типы информации, размещенные в памяти ЭВМ, практически не различимы, идентификация их возможна лишь при выполнении программы, согласно ее логике, по контексту.
Каждый тип информации имеет свои форматы — структурные единицы информации, закодированные двоичными цифрами «0» и «1». Обычно все форматы данных, используемые в ЭВМ, кратны байту, т.е. состоят из целого числа байтов.
Последовательность битов в формате, имеющая определенный смысл, представлена полем. Например, в каждой команде программы различают поле кода операций, поле адресов операндов. Применительно к числовой информации выделяют знаковые разряды, значащие разряды чисел, старшие и младшие разряды.
Последовательность, состоящая из определенного, принятого для данной ЭВМ числа байтов, называется словом.
Состав вычислительной системы называется конфигурацией. Аппаратные и программные средства вычислительной техники принято рассматривать отдельно. Соответственно, отдельно рассматривают аппаратную конфигурацию вычислительных систем и их программную конфигурацию. Такой принцип разделения имеет для информатики особое значение, поскольку очень часто решение одних и тех же задач может обеспечиваться как аппаратными, так и программными средствами. Критериями выбора аппаратного или программного решения являются производительность и эффективность. Обычно принято считать, что аппаратные решения в среднем оказываются дороже, зато реализация программных решений требует более высокой квалификации персонала.
Аппаратное обеспечение
Современные компьютеры и вычислительные комплексы имеют блочно-модульную конструкцию — аппаратную конфигурацию, необходимую для исполнения конкретных видов работ, можно собирать из готовых узлов и блоков.
По способу расположения устройств относительно центрального процессорного устройства (ЦПУ— Central Processing Unit, CPU) различают внутренние и внешние устройства. Внешними, как правило, являются большинство устройств ввода-вывода данных (их также называют периферийными устройствами) и некоторые устройства, предназначенные для длительного хранения данных.
Согласование между отдельными узлами и блоками выполняют с помощью переходных аппаратно-логических устройств, называемых аппаратными интерфейсами. Стандарты на аппаратные интерфейсы в вычислительной технике называют протоколами. Таким образом, протокол — это совокупность технических условий, которые должны быть обеспечены разработчиками устройств для успешного согласования их работы с другими устройствами.
Многочисленные интерфейсы, присутствующие в архитектуре любой вычислительной системы, можно условно разделить на две большие группы: последовательные и параллельные. Через последовательный интерфейс данные передаются последовательно, бит за битом, а через параллельный — одновременно группами битов. Количество битов, участвующих в одной посылке, определяется разрядностью интерфейса, например восьмиразрядные параллельные интерфейсы передают один байт (8 бит) за один цикл.
Параллельные интерфейсы обычно имеют более сложное устройство, чем последовательные, но обеспечивают более высокую производительность. Их применяют там, где важна скорость передачи данных: для подключения печатающих устройств, устройств ввода графической информации, устройств записи данных на внешний носитель и т. п. Производительность параллельных интерфейсов измеряют байтами в секунду (байт/с; Кбайт/с; Мбайт/с).
Устройство последовательных интерфейсов проще; как правило, для них не надо синхронизировать работу передающего и принимающего устройства (поэтому их часто называют асинхронными интерфейсами), но пропускная способность их меньше и коэффициент полезного действия ниже, так как из-за отсутствия синхронизации посылок полезные данные предваряют и завершают посылками служебных данных, то есть на один байт полезных данных могут приходиться 1-3 служебных бита (состав и структуру посылки определяет конкретный протокол).
Поскольку обмен данными через последовательные устройства производится не байтами, а битами, их производительность измеряют битами в секунду (бит/с, Кбит/с, Мбит/с). Несмотря на кажущуюся простоту перевода единиц измерения скорости последовательной передачи в единицы измерения скорости параллельной передачи данных путем механического деления на 8, такой пересчет не выполняют, поскольку он не корректен из-за наличия служебных данных. В крайнем случае, с поправкой на служебные данные, иногда скорость последовательных устройств выражают в знаках в секунду или, что тоже самое, в символах в секунду (с/с), но эта величина имеет не технический, а справочный, потребительский характер.
Последовательные интерфейсы применяют для подключения «медленных» устройств (простейших устройств печати низкого качества, устройств ввода и вывода знаковой и сигнальной информации, контрольных датчиков, малопроизводительных устройств связи и т. п.), а также в тех случаях, когда нет существенных ограничений по продолжительности обмена данными (большинство цифровых фотокамер).
Программное обеспечение
Конечная цель любой компьютерной программы — управление аппаратными средствами. Даже если на первый взгляд программа никак не взаимодействует с оборудованием, не требует никакого ввода данных с устройств ввода и не осуществляет вывод данных на устройства вывода, все равно ее работа основана на управлении аппаратными устройствами компьютера.
Программное и аппаратное обеспечение в компьютере работают в неразрывной связи и в непрерывном взаимодействии.
Состав программного обеспечения вычислительной системы называют программной конфигурацией. Между программами, как и между физическими узлами и блоками существует взаимосвязь — многие программы работают, опираясь на другие программы более низкого уровня, то есть, мы можем говорить о межпрограммном интерфейсе. Возможность существования такого интерфейса тоже основана на существовании технических условий и протоколов взаимодействия, а на практике он обеспечивается распределением программного обеспечения на несколько взаимодействующих между собой уровней. Уровни программного обеспечения представляют собой пирамидальную конструкцию. Каждый следующий уровень опирается на программное обеспечение предшествующих уровней. Такое членение удобно для всех этапов работы с вычислительной системой, начиная с установки программ до практической эксплуатации и технического обслуживания. Обратите внимание на то, что каждый вышележащий уровень повышает функциональность всей системы. Так, например, вычислительная система с программным обеспечением базового уровня не способна выполнять большинство функций, но позволяет установить системное программное обеспечение.