Практикум для изучения дисциплины «Основы программирования»



Pdf көрінісі
бет18/81
Дата08.07.2020
өлшемі1,55 Mb.
#74978
түріПрактикум
1   ...   14   15   16   17   18   19   20   21   ...   81
Байланысты:
А.А. Тюгашев

ЗАМЕЧАНИЕ 
В основе названия лежит исторический казус. Математик Джон фон Нейман не 
является  изобретателем  данной  архитектуры —  документ,  в  котором  она 
описана, был издан под его научной редакцией. Впоследствии это стало даже 
предметом  судебного  разбирательства  в  США,  в  результате  чего  были 
защищены  авторские  права  Эккерта  и  Моучли —  конструкторов  ЭВМ 
UNIVAC. 
Описание фон-неймановской архитектуры 
Устройство обычного современного компьютера представлено на рис. 2. 
 
Рис. 2 
ЦП 
ОЗУ 


32 
 
Его ключевыми элементами являются: 
 
память — оперативное запоминающее устройство (ОЗУ); 
 
центральный процессор (ЦП); 
 
арифметико-логическое  устройство  (АЛУ),  способное  выполнять 
базовые операции преобразования данных; 
 
устройство управления (УУ); 
 
счетчик команд (СК); 
 
устройства ввода-вывода. 
Память  компьютера  представляет  собой  линейный  набор  однородных 
пронумерованных  ячеек.  АЛУ  и  УУ —  важнейшие  узлы  центрального 
процессора  (ЦП),  представляющего  собой  «мозг»  ЭВМ.  Еще  один 
принципиально важный элемент ЦП — так называемый счетчик команд — 
специальный регистр, находящийся в процессоре, который содержит адрес 
(номер)  ячейки  памяти,  хранящей  следующую  команду,  подлежащую 
исполнению. 
Команды и данные кодируются двоичными кодами и хранятся в одной и 
той  же  памяти.  Универсальное  двоичное  представление  означает,  что  по 
содержимому  ячейки  априори  нельзя  сказать,  хранится  ли  в  ней  число, 
символ  или  команда.  Команда  может  содержать  несколько  битов, 
отведенных  под  код  действия —  К  (например,  110 —  сложение),  адрес 
первого  операнда  (оп1),  например,  слагаемого —  А1,  и  адрес  второго 
операнда  (оп2) —  А2.  Данная  особенность  архитектуры  позволяет 
создавать самомодифицирующиеся программы, изменяющие собственные 
команды — преобразующие их подобно данным (примером являются так 
называемые  полиморфные  вирусы  или  некоторые  задачи  «олимпиадного 
программирования»).  Но  у  этой  архитектуры  есть  и  недостаток  с  точки 
зрения 
безопасности — 
программа 
при 
выполнении 
может 
непреднамеренно  или  целенаправленно  (вредоносные  программы) 
разрушить  саму  себя  или  другие  программы,  находящиеся  в  памяти!  От 
подобного  недостатка  избавлена,  например,  архитектура  отечественных 
суперЭВМ  «Эльбрус»  [7],  в  которой  каждая  ячейка  снабжается 
специальным  тегом,  содержащим  тип  хранимой  информации  (кстати,  в 
этом  компьютере  аппаратура  поддерживала  язык  программирования 
высокого уровня Эль-76). 
Все вычисления машины с фон-неймановской архитектурой выполняются 
централизованно — в АЛУ под управлением УУ. Рассмотрим цикл работы, 
связанный с выполнением очередной команды. 
Команда извлекается из памяти, передается в процессор, где декодируется 
(дешифрируется)  устройством  управления.  Из  памяти  с  использованием 


33 
 
адресов, указанных в команде (например, А1 и А2), извлекаются операнды. 
УУ  побуждает  АЛУ  выполнить  операцию  в  соответствии  с 
дешифрированным кодом операции К. Результаты операции пересылаются 
в  память —  по  адресу,  указанному  в  команде.  После  этого  значение 
счетчика  команд  автоматически  увеличивается —  на  следующем  цикле 
извлечению  из  памяти  подлежит  следующая  команда.  Процесс 
повторяется. 
В  случае  необходимости  программа  может  продолжиться  с  другой 
команды, используются особые команды переходов, изменяющие значение 
счетчика  команд  принудительно.  Команда  перехода  может  быть 
безусловной  или  условной.  Условная  команда  перехода  модифицирует 
значение  счетчика  команд  лишь  в  случае  наличия  того  или  иного 
выставляемого АЛУ флага, говорящего о том, что результат предыдущей 
операции, например, равен нулю или отрицателен. 
В архитектуре фон Неймана есть узкое место — канал обмена процессора 
с памятью, о чем говорил в своей лекции при вручении премии Тьюринга 
ее лауреат, создатель языка программирования Фортран Джон Бэкус. Чем 
больше  число  объектов,  с  которыми  оперирует  программа, —  данных  и 
разнообразных  операций  над  ними, —  тем  больше  времени  требуется, 
чтобы  найти  решение:  приходится  на  каждом  шаге  передавать 
информацию  от  процессора  в  память  и  обратно.  Так  что  какими  бы 
скоростными  не  были  процессор  и  память,  общее  быстродействие  будет 
зависеть от возможностей канала обмена. 
Анализируя  работу  фон-неймановской  машины,  подчеркнем  еще  раз 
следующие важнейшие моменты. 
 
Команды  программы  выполняются  одна  за  другой  в  единственном 
центральном  процессоре —  это  принципиально  последовательная 
архитектура. 
 
После  выполнения  предыдущей  команды  автоматически  выполняется 
следующая,  если  только  предыдущая  команда  не  была  командой, 
изменившей  счетчик  команд  (командой  безусловного  или  условного 
перехода). 
 
Хранение команд и данных в одной и той же памяти, с одной стороны, 
дает  определенную  гибкость,  с  другой —  создает  проблемы  с 
безопасностью и замедляет работу ЭВМ в целом. 


Достарыңызбен бөлісу:
1   ...   14   15   16   17   18   19   20   21   ...   81




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет