YourLib.net
Твоя библиотека
Главная arrow Информатика (Под общ. ред. А.Н. Данчула) arrow 2.1. Обобщенная блок-схема компьютера
2.1. Обобщенная блок-схема компьютера

2.1. Обобщенная блок-схема компьютера

   Джон фон Нейман выделил и детально описал пять ключевых компонентов компьютера (архитектура фон Неймана): центральное арифметико-логическое устройство (АЛУ); центральное устройство управления (УУ); запоминающее устройство (ЗУ), или память; устройство ввода информации; устройство вывода информации.
   На рис 2.1 приводится классическая блок-схема вычислительной машины (ВМ), а также структура кода трехадресной команды, соответствующая структуре арифметических операций (два операнда и результат).
   ВМ должна работать (по фон Нейману) с числами, представленными в двоичной системе счисления, быть электронной (а не механической) и выполнять команды последовательно, одна за другой. В основу функционирования как электронных ВМ (ЭВМ) первых поколений, так и более поздних мини-, микро- ЭВМ и персональных компьютеров (ПК) был положен «принцип хранимой программы» фон Неймана, суть которого состоит в основном из следующего:
   —  компьютер имеет единственную последовательно адресуемую память (программа и данные хранятся в этой памяти, адреса областей которой составляют числовую последовательность 0,1,2,...);
   —  память является линейной (вектором слов);
   —  отсутствуют явные различия между командами и данными, они идентифицируются неявным способом при выполнении операций, что дает возможность обращаться с командами как с данными;

 Рис. 2.1. Классическая блок-схема вычислительной машины фон Неймана

Рис. 2.1. Классическая блок-схема вычислительной машины фон Неймана

   —  назначение данных не является их неотъемлемой составной частью, а определяется логикой работы программы.
   Компьютер, основанный на «принципе хранимой памяти», работает следующим образом. Программы и данные вводятся в ЗУ из устройства ввода через АЛУ и размещаются в последовательных ячейках ЗУ. Каждая ячейка имеет свой порядковый номер, называемый адресом ячейки. В ячейке запоминается одно слово (команда или данное). Команды располагаются в последовательных ячейках. Последовательность команд образует программу. Каждая команда кодируется числовым кодом. Код команды состоит из двух частей — кода операции (КО) и кода одного или нескольких адресов. В ЗУ могут оперативно запоминаться промежуточные и окончательные результаты вычислений (обработки данных).
   Арифметико-логическое устройство (АЛУ) выполняет процессы (соответствующие кодам операций) обработки введенных данных. Непосредственно в АЛУ как абстрактной машине исполняются в основном операция сложения (суммирования) и логические операции. Остальные арифметические и иные операции выполняются с использованием соответствующих аппаратно-программных средств. Алгебраические операции выполняются над числами, представленными в зависимости от их знаков, в соответствующих специальных двоичных кодах. Полученные результаты выводятся из ЗУ или непосредственно из АЛУ посредством устройства вывода (например, устройства печати — принтера).
   Главным «дирижирующим» устройством является устройство управления (УУ). Если компьютер представить как систему управления, то любой его компонент является объектом управления, осуществляемого УУ. Между ними существуют прямая и обратная связь. По прямой связи от УУ к управляемому объекту (компоненту) подаются указания об управляющих воздействиях, а по обратной связи посылается информация о текущем состоянии объекта управления. Эти виды информации на рис. 2.1 объединены и обозначены тонкими двусторонними стрелками (управляющая информация). Как видно, УУ со всеми компонентами имеет двунаправленную связь для обмена управляющей и контролирующей информацией. Именно это и позволяет ему все время быть в курсе происходящих в каждом устройстве событий и осуществлять принцип программного управления работой компьютера, согласно хранящейся в ЗУ программе.
   Следует отметить, что архитектура современных компьютеров отличается от вышеописанной. Под архитектурой ПК понимается не только его общая структура, но и организация его отдельных элементов (кристаллы, схемы), а также системного программного обеспечения, необходимого для управления его работой, например чтением файлов с диска, их записью на диск и т. д. (см. п. 3.2).
   В современных ПК АЛУ, УУ и сверхбыстродействующий блок оперативной памяти объединены в единое устройство — центральный процессор. Вообще в связи с появлением микроэлектронной технологии и созданием интегральных схем с определенными степенями интеграции, так называемых чипов, увеличились функциональные возможности отдельных блоков и устройств. Существенным является и то, что процесс выполнения основной программы может прерываться сигналами прерываний (запросами прерываний) для выполнения других неотложных действий (соответствую-щих конкретному типу запроса), связанных с поступившими сигналами от внешних устройств, иных устройств и блоков компьютера, а также от программ. Многие ВМ сейчас могут обрабатывать данные параллельно, на нескольких процессорах, а также несколькими параллельно работающими конвейерами, одновременно обрабатывающими несколько потоков данных. Перечень подобных отличий можно продолжить. Но тем не менее ВМ с программным управлением в общих чертах соответствуют основным положениям «принципа хранимой программы» фон Неймана.
   На рис. 2.2 приведена блок-схема однопроцессорного ПК. Опишем по ней в общем виде отличительные особенности функционирования ПК с целью лучшего понимания сложных процессов, происходящих в соответствующих устройствах. Конструктивные особенности реализации ПК приведены в разделе 2.3.
   Системной платой называют основную печатную плату, на которую устанавливают микропроцессор, оперативную память и другие системные компоненты.

Рис. 2.2. Блок-схема персонального компьютера 

Рис. 2.2. Блок-схема персонального компьютера

   Как видно из рис. 2.2, в ПК осуществляется централизованно-распределенная система управления. Ведущей управляющей системой в ПК является центральный процессор — CPU (Central Processing Unit). Он в каждый момент времени управляет всеми подпроцессами, происходящими во всех компонентах ПК, участвующих в выполнении текущего, заданного командой процесса.
   Стремление получить более высокое быстродействие привело к тому, что встал вопрос о распараллеливании и совмещении во времени взаимно независимых подпроцессов выполняемого главного процесса, связанного с реализацией конкретной команды или программы. Это стало возможно при применении более компактных быстродействующих и относительно дешевых микропроцессоров и логических микросхем (микропроцессор — это тот же процессор, только в интегральном исполнении). Кроме того, расширялись функциональные возможности отдельных устройств и блоков, усложнялись происходящие в них процессы, повышались требования к качественным показателям управления. Все это привело к появлению автономных управляющих устройств (контроллеров, адаптеров), работа которых только инициируется центральным процессором, но все специализированные управляющие функции выполняются ими самостоятельно. Они называются платами или картами расширения и представляют собой печатную плату с краевым разъемом (адаптер, контроллер). Центральный процессор в это время может выполнять другие действия, за счет чего повышается производительность ПК в целом. Некоторые из этих автономных управляющих систем располагают собственной памятью и системой команд. Обратите внимание на блок-схему ПК, где каждое из устройств имеет свое автономное устройство управления и соединяется с системной шиной через соответствующий слот расширения. Слот представляет собой щелевой разъем, в который устанавливается какая-либо печатная плата. Слот расширения в ПК представляет собой разъем системной шины в совокупности с прорезью в задней стенке корпуса ПК, т. е. посадочное место для установки карты расширения.
   Представим себе один из процессоров Pentium, который располагается на площади всего в один квадратный дюйм (приблизительно 6,25 см2), содержит 3,1 млн транзисторов и имеет на корпусе 273 контакта. Известно, что к ПК необходимо подключать разнообразные устройства (принтеры, модемы и т. д.), каждый раз используя одни и те же контакты. Конечно, можно было бы предусмотреть специальный разъем для каждого устройства, но это привело бы к потере гибкости ПК и ограничению типов подключаемых к нему устройств. Было найдено оптимальное решение этой задачи — введены вышеупомянутые универсальные слоты расширения, назначение которых жестко не определено. Определен только тип соединения с каждым из контактов слота (контакты питания, контакты для ввода-вывода данных, контакты для адресации и т. д.). Совокупность этих контактов с соответствующей электрической изоляцией образует системную шину, к которой через слоты подключаются компоненты системной платы и периферийные устройства. В слоты вставляются платы адаптеров (контроллеров) отдельных устройств и, что особенно важно, новых устройств. Каждая плата при вставке ее в слот посредством металлизированной контактной площадки соединяется с проводниками, образующими шину. Получается гибкая система соединений. Различные шины и соответствующие слоты стандартизированы. Так как спецификация соединений делается общеизвестной (открытая архитектура), то производители могут разрабатывать свои контроллеры (адаптеры) для подключения к шине разнообразных устройств. Этому способствует и соблюдение принципа модульности при разработке технических средств.
   Интерфейсы, позволяющие подключать к ПК разнообразные периферийные устройства и их контроллеры, устанавливают стандартизированные параметры, процедуры и характеристики их взаимодействия с ПК. По способу передачи информации интерфейсы подразделяются на параллельные (все разряды передаваемого слова выставляются и передаются по соответствующим параллельно идущим проводам одновременно) и на последовательные (разряды слова передаются друг за другом по одной линии). В ПК используется параллельный интерфейс Centronics, реализуемый LPT-портами (Line PrinTer — построчный принтер). COM-порты (Communication Port — коммуникационный порт) ПК обеспечивают последовательный интерфейс в соответствии со стандартом RS-232C. Интерфейсы, соединяющие отдельные устройства, удаленные друг от друга на заметное расстояние, называются внешними интерфейсами, например интерфейсные шины USB, FireWire и др. (см. п. 2.3.1). Интерфейсы, предназначенные для быстрой связи на короткие расстояния, называются внутренними интерфейсами. Стандартизированные шины расширения ввода/вывода обеспечивают расширяемость ПК и предоставляют более широкие возможности для взаимодействия процессора с аппаратурой, не скованные жесткими ограничениями внешних интерфейсов, например интерфейсные шины ISA/EISA, PCI, AGP и др. (см. п. 2.3.1).
   Своеобразное положение занимает шина SCSI — интерфейсная шина системного уровня, предназначенная для подключения широкого спектра периферийных устройств, требующих высокой скорости обмена данными.
   При передаче информации также существенную роль играют программы (или устройства), называемые драйверами (driver). Это средство, которое контролирует или регулирует работу другого устройства. Например, драйвер шины усиливает и регулирует сигналы, передаваемые по ней. Программный драйвер устройства представляет собой специфическую управляющую программу, реализующую обмен порциями информации между основной памятью ПК. и соответствующим внешним устройством. Следует отметить, что многие устройства не будут адекватно работать без надлежащих драйверов (например, видеоадаптеры IBM-совместимых ПК).
   Как видно из рис. 2.2, ПК обладает несколькими типами памяти. Кроме оперативной памяти имеются различные виды дисковой памяти, а также внешние автономные запоминающие устройства (стример, другие различные диски и т. д.), физически размещаемые вне системного блока.
   Не все типы памяти показаны на рис. 2.2. Значительную роль в современных ПК играет кэш-память (тайник), которая выполняет в основном роль буферной памяти, согласующей скорости работы отдельных взаимосвязанных разноскоростных устройств. Например, кэш-память определенной емкости включается между оперативной памятью и микропроцессором. Скорость работы микропроцессора выше, чем скорость работы оперативной памяти, и очень часто микропроцессор простаивает в ожидании поступления необходимых данных из оперативной памяти. Часть данных, которая в ближайшее время может быть востребована со стороны микропроцессора, переписывается и хранится в более быстродействующей кэш-памяти. В результате время ожидания микропроцессора сокращается (или полностью исключается).
   В других местах кэш-память выполняет иную роль. С использованием логики механизма кэширования в современных ПК организуется виртуальная память, которая создает возможность решать на ПК задачи, которые требуют больше памяти, чем физически в нем имеется.
   Для хранения постоянной (или не изменяемой длительное время) информации используются постоянные запоминающие устройства (ПЗУ).
   Существенную роль в современных ПК играют прерывания, без которых было бы очень трудно обеспечить эффективную их работу. ПК кроме выполнения возложенной на него основной текущей работы должен также мгновенно реагировать на любые требующие к себе внимания запросы (например, нажатие клавиши на клавиатуре). Эта реакция незаметным для пользователя образом обеспечивается прерыванием. В общих чертах каждый запрос на прерывание имеет свою программу обслуживания прерывания. В случае поступления конкретного запроса выполнение процессором текущей программы прерывается (с сохранением информации, необходимой для ее однозначного восстановления с прерванной точки). Запускается соответствующая программа обслуживания прерывания (например, запоминание нажатой клавиши и обработка введенной информации). После завершения ее работы восстанавливается прерванная программа. Необходимо отметить, что в реализации этого процесса основную роль играют BIOS (базовая система ввода-вывода) и специальная память, где запоминается информация, необходимая для осуществления процессов прерывания и других функций. Имеется также специальный контроллер, управляющий процессом прерывания, а иногда их бывает несколько. Могут осуществляться приоритетные прерывания. Посредством BIOS осуществляется множество видов обслуживания: загружается операционная система и т. д.
   При вводе (или выводе) блоков данных в память (из памяти) или при пересылке их из одной области памяти в другую с целью повышения производительности используется механизм реализации прямого доступа к памяти (ПДП) — DMA (Direct Memory Access), минуя центральный процессор. Управляет этим процессом специальный контроллер ПДП.
   Количество отличий современных ПК от приведенной на рис. 2.2 блок-схемы все больше увеличивается (например, использование средств мультимедиа, реализация различных сетевых режимов и т. д.). Однако по своей сути ПК пока остаются фоннеймановскими или имеют смешанную архитектуру. Существует критика этой архитектуры, разработано множество других вариантов, но архитектура фон Неймана в универсальных ПК используется пока достаточно широко.
   При программном управлении существует три основных способа инициирования машинных команд:
   1.  Машинные команды ВМ фоннеймановской архитектуры, управляемых контроллерами, поступают из основной памяти в процессор в порядке их расположения в программе и выполняются последовательно.
   Вычислительные машины с независимым инициированием и одновременным выполнением машинных команд являются машинами не фоннеймановской архитектуры. Дальнейшее повышение производительности вычислительных машин будет происходить на базе машин следующих типов инициализации команд, требующих создания языков параллельного программирования.
   2.  Машины, управляемые потоками данных (машинные команды, для которых готовы операнды, могут выполняться одновременно, а возможности параллельного выполнения, заложенные в программу, могут быть реализованы естественным образом).
   3.  Машины, управляемые запросами (команда начинает выполняться в тот момент, когда результаты реализуемой ею обработки оказываются необходимы другим командам).

 
< Пред.   След. >