В каждой области науки и техники существуют фундаментальные идеи или принципы, определяющие на многие годы вперёд её содержание и направление развития. В компьютерных науках роль таких фундаментальных идей сыграли принципы, сформулированные независимо друг от друга двумя крупнейшими учёными XX века — Джоном фон Нейманом и Сергеем Алексеевичем Лебедевым.
Принцип — основное, исходное положение какой-нибудь теории, учения, науки и пр.
Принципы Неймана-Лебедева — базовые принципы построения ЭВМ, сформулированные в середине прошлого века, не утратили свою актуальность и в наши дни.
Джон фон Нейман (1903-1957) — американский учёный, сделавший важный вклад в развитие целого ряда областей математики и физики. В 1946 г., анализируя сильные и слабые стороны ЭНИАКа, совместно с коллегами пришёл к идее нового типа организации ЭВМ.
Сергей Алексеевич Лебедев (1902-1974) — академик, основоположник вычислительной техники в СССР, главный конструктор первой отечественной электронной вычислительной машины МЭСМ, автор проектов компьютеров серии БЭСМ (Большая Электронная Счётная Машина), разработчик принципиальных положений суперкомпьютера «Эльбрус». В 1996 году посмертно награждён медалью «Пионер компьютерной техники» — самой престижной наградой международного компьютерного сообщества.
Рассмотрим сущность основных принципов Неймана-Лебедева:
1) состав основных компонентов вычислительной машины;
2) принцип двоичного кодирования;
3) принцип однородности памяти;
4) принцип адресности памяти;
5) принцип иерархической организации памяти;
6) принцип программного управления.
Первый принцип определяет состав основных компонентов вычислительной машины.
Любое устройство, способное производить автоматические вычисления, должно иметь определённый набор компонентов: блок обработки данных, блок управления, блок памяти и блоки ввода/вывода информации.
Функциональная схема такого компьютера, отражающая программное управление работой и взаимодействием его основных узлов, представлена на рисунке 2.5.
Рис. 2.5. Функциональная схема компьютеров первых поколений
Его информационным центром является процессор:
• все информационные потоки (тонкие стрелки на рисунке) проходят через процессор;
• управление всеми процессами (толстые стрелки на рисунке) также осуществляется процессором.
Такие блоки есть и у современных компьютеров. Это:
• процессор, состоящий из арифметико-логического устройства (АЛУ), выполняющего обработку данных, и устройства управления (УУ), обеспечивающего выполнение программы и организующего согласованное взаимодействие всех узлов компьютера;
• память, предназначенная для хранения исходных данных, промежуточных величин и результатов обработки информации, а также самой программы обработки информации. Различают память внутреннюю и внешнюю. Основная часть внутренней памяти используется для временного хранения программ и данных в процессе обработки. Такой вид памяти принято называть оперативным запоминающим устройством (ОЗУ). Ещё одним видом внутренней памяти является постоянное запоминающее устройство (ПЗУ), содержащее программу начальной загрузки компьютера. Внешняя или долговременная память предназначена для длительного хранения программ и данных в периоды между сеансами обработки;
• устройства ввода, преобразующие входную информацию в форму, доступную компьютеру;
• устройства вывода, преобразующие результаты работы компьютера в форму, доступную для восприятия человеком.
Вместе с тем в архитектуре современных компьютеров и компьютеров первых поколений есть существенные отличия. О них будет сказано чуть ниже.
Рассмотрим суть принципа двоичного кодирования информации.
Вся информация, предназначенная для обработки на компьютере (числа, тексты, звуки, графика, видео), а также программы её обработки представляются в виде двоичного кода — последовательностей 0 и 1.
Все современные компьютеры хранят и обрабатывают информацию в двоичном коде. Выбор двоичной системы счисления обусловлен рядом важных обстоятельств: простотой выполнения арифметических операций в двоичной системе счисления, её «согласованностью» с булевой логикой, простотой технической реализации двоичного элемента памяти (триггера).
Несмотря на всеобщее признание, использование в компьютерной технике классической двоичной системы счисления не лишено недостатков. В первую очередь это проблема представления отрицательных чисел, а также нулевая избыточность (т. е. отсутствие избыточности) двоичного представления. Пути преодоления указанных проблем были найдены уже на этапе зарождения компьютерной техники.
В 1958 г. в Московском государственном университете им. М. В. Ломоносова под руководством И. П. Брусенцова был создан троичный компьютер «Сетунь» (рис. 2.6). В нём применялась уравновешенная троичная система счисления, использование которой впервые в истории позволило представлять одинаково просто как положительные, так и отрицательные числа.
Итак, благодаря двоичному кодированию, данные и программы по форме представления становятся одинаковыми, а следовательно, их можно хранить в единой памяти.
Рис. 2.6. ЭВМ «Сетунь»
Команды программ и данные хранятся в одной и той же памяти, и внешне в памяти они неразличимы. Распознать команды и данные можно только по способу использования. Это утверждение называют принципом однородности памяти.
Так как представленные в памяти команды и данные внешне неразличимы, то одно и то же значение в ячейке памяти может использоваться и как данные, и как команда в зависимости лишь от способа обращения к нему. Так, если к двоичной последовательности обращаются как к числу, то в ней выделяют поле (область) знака и поле значащих разрядов. Если к двоичной последовательности обращаются как к команде, то в ней выделяют поле кода операции и поле адресов операндов.
Однородность памяти позволяет производить операции не только над данными, но и над командами. Взяв в качестве данных для некоторой программы команды другой программы, в результате её исполнения можно получить команды третьей программы. Данная возможность лежит в основе трансляции — перевода текста программы с языка высокого уровня на язык конкретной вычислительной машины.
Структурно оперативная память компьютера состоит из отдельных битов — однородных элементов, обладающих двумя устойчивыми состояниями, одно из которых соответствует нулю, а другое — единице. Для записи или считывания группы соседних битов объединяются в ячейки памяти, каждая из которых имеет свой номер (адрес).
Команды и данные размещаются в единой памяти, состоящей из ячеек, имеющих свои номера (адреса). Это принцип адресности памяти.
Очень важно, что информация может считываться из ячеек и записываться в них в произвольном порядке, т. е. процессору в произвольный момент доступна любая ячейка памяти. Организованную таким образом память принято называть памятью с произвольным доступом.
Разрядность ячеек памяти (количество битов в ячейке) у компьютеров разных поколений была различной. Основой оперативной памяти современных компьютеров является восьмибитная ячейка. Ячейка такой разрядности может быть использована для работы с одним символом. Для хранения чисел используется несколько последовательных ячеек (четыре — в случае 32-битного числа).
На современных компьютерах может одновременно извлекаться из памяти и одновременно обрабатываться до 64 разрядов (т. е. до восьми байтовых (восьмибитных) ячеек). Это возможно благодаря реализации на них принципа параллельной обработки данных — одновременного (параллельного) выполнения нескольких действий.
Можно выделить два основных требования, предъявляемых к памяти компьютера:
1) объём памяти должен быть как можно больше;
2) время доступа к памяти должно быть как можно меньше.
Создать запоминающее устройство, одновременно удовлетворяющее двум этим требованиям, затруднительно. Действительно, в памяти большого объёма требуемые данные искать сложнее, в результате чего их чтение замедляется. Для ускорения чтения нужно использовать более сложные технические решения, что неизбежно приводит к повышению стоимости всего компьютера. Решение проблемы — использование нескольких различных видов памяти, связанных друг с другом. В этом и состоит суть принципа иерархической организации памяти.
Трудности физической реализации запоминающего устройства высокого быстродействия и большого объёма требуют иерархической организации памяти.
В современных компьютерах используются устройства памяти нескольких уровней, различающиеся по своим основным характеристикам: времени доступа, сложности, объёму и стоимости. При этом более высокий уровень памяти меньше по объёму, быстрее и имеет большую стоимость в пересчёте на байт, чем более низкий уровень. Уровни иерархии взаимосвязаны: все данные на одном уровне могут быть также найдены на более низком уровне.
Большинство алгоритмов обращаются в каждый промежуток времени к небольшому набору данных, который может быть помещён в более быструю, но дорогостоящую и поэтому небольшую память. Использование более быстрой памяти увеличивает производительность вычислительного комплекса.
Главное отличие компьютеров от всех других технических устройств — это программное управление их работой.
Принцип программного управления определяет общий механизм автоматического выполнения программы.
Все вычисления, предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности команд. Команды представляют собой закодированные управляющие слова, в которых указывается:
• какое выполнить действие;
• из каких ячеек считать операнды (данные, участвующие в операции);
• в какую ячейку записать результат операции.
Команды, входящие в программу, выполняются процессором автоматически в определённой последовательности. При этом выполняется следующий цикл действий:
1) чтение команды из памяти и её расшифровка;
2) формирование адреса очередной команды;
3) выполнение команды.
Этот цикл повторяется до достижения команды, означающей окончание выполнения программы, решающей некоторую конкретную задачу. В современных компьютерах по завершении работы программы управление передаётся операционной системе.
Классическая архитектура фон Неймана
В $1946$ году американские математики Джон фон Нейман, Герман Голдштейн и Артур Бёркс в совместной статье изложили новые принципы построения и функционирования ЭВМ. На основе этих принципов производилось $1$-е и $2$-е поколение компьютеров. В следующих поколениях происходили некоторые изменения, но принципы фон Неймана (как они были названы) сохранялись.
Основные принципы фон Неймана:
- Использование двоичной системы счисления в ПК, в которой устройствам гораздо проще выполнять арифметико-логические операции, чем в десятичной.
- Программное управление ПК. Работа ПК управляется программой, которая состоит из набора команд, выполняющихся последовательно одна за другой. Создание машины с хранимой в памяти программой положило начало программированию.
- Данные и программы хранятся в памяти ПК. Команды и данные кодируются одинаково в двоичной системе.
- Ячейки памяти ПК имеют последовательно пронумерованные адреса. Возможность обращения к любой ячейке памяти по ее адресу позволила использовать переменные в программировании.
- Возможность условного перехода при выполнении программы. Команды в ПК выполняются последовательно, но при необходимости можно реализовать переход к любой части кода.
Основным принципом было то, что программа уже стала не постоянной частью машины, а изменяемой, в отличие от аппаратуры, которая остается неизменной и очень простой.
Готовые работы на аналогичную тему
Фон Нейманом также была предложена структура ПК (рис. 1).
Рисунок 1. Структура ПК
В состав машины фон Неймана входили:
- запоминающее устройство (ЗУ);
- арифметико-логическое устройство (АЛУ), которое выполняло все арифметические и логические операции;
- устройство управления (УУ), которое координирует действия всех узлов машины в соответствии с программой;
- устройства ввода-вывода.
Программы и данные вводились в ЗУ из устройства ввода через АЛУ. Все команды программы записывались в ячейки памяти последовательно, а данные для обработки – в произвольные ячейки.
Команда состояла из указания операции, которую необходимо выполнить, и адресов ячеек памяти, в которых хранятся данные и над которыми необходимо выполнить нужную операцию, а также адреса ячейки, в которую необходимо записать результат (для хранения в ЗУ).
Из АЛУ результаты выводятся в ЗУ или устройство вывода. Принципиально эти устройства отличаются тем, что в ЗУ данные хранятся в удобном для обработки ПК виде, а на устройства вывода (монитор, принтер и т.п.) в удобном для человека.
От УУ на другие устройства поступают сигналы с командами, а от других устройств УУ получает информацию о результате их выполнения.
В УУ содержится специальный регистр (ячейка) – счетчик команд, в который записывается адрес первой команды программы. УУ считывает из памяти содержимое соответствующей ячейки памяти и помещает его в специальное устройство – регистр команд. УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.
После выполнения команды счетчик команд увеличивается на $1$ и указывает на следующую команду программы. При необходимости выполнения команды, которая не следует по порядку за текущей, специальная команда перехода содержит адрес ячейки, в которую нужно передать управление.
Последовательность работы компьютера
- В запоминающее устройство вводились данные и программы.
- Через устройство арифметико-логических операций проходили данные из запоминающего устройства. Запись в память происходила посредством последовательных команд, направляющих содержимое в ячейки, чего не сказать о данных обработки, которые направлялись в ячейки произвольно.
- Из арифметико-логического устройства результаты обработки переходят в запоминающее устройство, если информацию сохраняют, или в устройство вывода, если её нужно распространить. Особенность здесь заключается в том, что все команды кодируются в понятном для компьютера формате, а когда происходит вывод информации, она становится пригодной для использования человеком, и понятна ему без дешифровки.
- Команда для компьютера заключается в том, что необходимо установить связь между запросом пользователя и адресом ячейки. Таким образом реализуется определённая операция, которая проводит эту связь и записывает результат, в зависимости от запроса, в определённую ячейку. Затем эта память остаётся на хранение в запоминающем устройстве.
- В управляющем устройстве содержится ячейка, которая позволяет В случае с управляющим устройством, команды могут быть двух видов – поступающие от управляющего устройства и получаемые управляющим устройством результаты команд. После обработки команды управляющего устройства, содержимое ячеек помещается в регистр команд, что даёт ему возможность зафиксировать процессы, проходящие в памяти и проконтролировать их. Тем не менее, все операции на этом этапе переходят в компетенции арифметико-логических операций и аппаратных средств.
- Затем счётчик команд увеличивает показатели на 1 соответствующе и прописывается новая команда. При этом возможен переход из определённой ячейки в конкретно отведённую, то есть в командах есть последовательность.
В качестве основополагающего условия работы персональных компьютеров в наше время можно назвать работу по магистрально-модульному принципу. Это реализуется за счёт того, что персональный компьютер состоит из модулей, каждый из которых является самобытной единицей. К таковым можно отнести, например, принтер или даже процессор.
Архитектура современного компьютера позволяет компоновать аппаратуру и делать самостоятельный выбор в пользу использования тех или иных средств – она открыта и предполагает возможность встраивания в систему дополнительных средств для достижения установленных целей и реализации задач.Установленный принцип позволяет пользователю самостоятельно определять комплектацию своих устройств и даже самостоятельно обновлять их. Магистральный аспект позволяет качественно и своевременно обмениваться информацией при помощи установления связей, за что отвечает магистральная шина. Она представляет собой элемент, располагающийся на материнской плате.
Примечание 1
Принципа архитектуры компьютера постоянно усовершенствуется для того, чтобы иметь возможность устанавливать всё новые и новые связи, при этом делать это быстро, мобильно и качественно. Современные потоки информации предполагают совершенствование аппаратных средств. Все команды компьютера реализуются за счёт средств системной памяти, поэтому в связке с процессором, ускорение процесса обмена информацией между элементами компьютера, приводит к ускорению работы компьютера, в целом.
Однако существует одна важная деталь: чтобы эти процессы проходили быстрее, необходимо учитывать скоростные возможности магистрали. Как же решить эту задачу? Решение нашлось. Чтобы ускорение стало возможным, необходимо подключить системную память не к магистрали, а к высокоскоростной шине. В связи с особенностями работы этого элемента, обмен будет реализовываться проще и быстрее.
Таким образом, использование компьютера с магистралью сходит на нет и на смену ему приходит компьютер с шиной, а затем – с тремя шинами. Что мы и имеем на данный момент времени.
Рисунок 2. Трехшинная структура ПК
Процессор в современных компьютерах состоит из управляющего устройства и арифметико-логического устройства. Если спустится ещё на один структурный уровень, то структуру процессора, в частности, составляют интегральные схемы. В зависимости от количества этих схем, можно говорить о микропроцессорах или микропроцессорных комплектах.
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобретя в каталоге.
Память
У памяти выходные значения зависят не только от входных, то есть она способна запоминать. Концептуально все схемы памяти похожи (рис. 2.1), память может «запоминать» благодаря тому, что она «замкнута», то есть верхний вентиль зависит от выходного значения нижнего, а нижний зависит от выходного значения верхнего.
Рисунок 2.1. SR защелка.
Прежде чем использовать защелку, ее необходимо инициализировать. Инициализировать значит перевести ее в такое состояние, когда Q != !Q, это необходимо для того, чтобы защелка могла корректно работать, то есть корректно менять свое состояние (Q) между 0 и 1. Для инициализации нам необходимо подать на S и R такие значения при которых защелка перейдет в непротиворечивое состояние (Q != !Q); когда защелка только начинает работать, то в Q и !Q могут быть любые неизвестные нам значения, поэтому значения S и R не должны зависеть от значений в Q и !Q. Другими словами, нам нужны такие значения S и R при которых мы получим в Q и !Q противоположные значения.
Рассматривать последовательность действий можно по-разному: мы можем предположить, что на S сигнал поступает быстрее, чем на R и тогда верхний вентиль повлияет на результат работы нижнего; или наоборот, сигнал до R дойдет быстрее, но это не важно, результаты будут одинаковы. В нашем примере я буду предполагать, что сигнал S приходит быстрее, а что же дальше? Какое второе значение будет у верхнего вентиля? Как было сказано выше, мы не должны делать предположений о значении Q (или !Q), поэтому мы должны рассматривать обе ситуации: Q=0 и Q=1. Теперь все, что нам остается, так это проверить все (табл. 1.6) комбинации S, R и Q.
Таблица 1.6. Таблица истинности SR защелки.
S | R | Q | !Q | новое Q | новое Q != !Q | Q == новое Q |
---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 | 0 | 0 | 1 |
1 | 1 | 1 | 0 | 0 | 0 | 0 |
Для SR защелки построенной на основе ИЛИ-НЕ (рис. 2.1) значения для S и R будут равны 0 и 0, соответственно, потому, что значения в столбцах «новое Q != !Q» и «Q == новое Q» должны быть истинны сразу для Q=0 и Q=1. Например, при S=0, R=1, в случае с Q=0 все в порядке, но при Q=1 у нас меняется состояние Q c 1 на 0, а этого быть не должно так как, тогда без нашего ведома защелка поменяет состояние. Точно также можно построить SR защелку (и другие) на основе И-НЕ, только инициализировать значения S и R придется 1 и 1, соответственно. Давайте рассмотрим, как происходит инициализация со значениями в Q=0 и Q=1.
Когда мы подаем на входы S, R сигналы 0, а в Q хранится значение 0, то в верхний вентиль ИЛИ НЕ поступают два нуля 0, на выходе у него будет 1 (табл. 1.0). Далее в нижний вентиль ИЛИ-НЕ поступают 0 и 1, на выходе будет 0; то есть у нас получилось не противоречивое состояние защелки (рис. 2.2a). В данном случае выходное значение защелки равно 0 (Q), то есть она хранит значение 0.
В ином варианте мы можем подать на входы S, R сигналы 0, а в Q хранится значение 1. В верхний вентиль ИЛИ-НЕ поступают 0 и 1, что на выходе дает 0. В нижний вентиль ИЛИ-НЕ поступают 0 и 0, на выходе будет 1; Снова мы попали в не противоречивое состояние защелки (рис. 2.2б). Выходное значение защелки равно 1.