Что называется архитектурой компьютера
Что называется архитектурой компьютера
При рассмотрении компьютерных устройств принято различать их архитектуру и структуру.
Архитектурой компьютера называется его описание на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя. |
Структура компьютера это совокупность его функциональных элементов и связей между ними. Элементами могут быть самые различные устройства от основных логических узлов компьютера до простейших схем. Структура компьютера графически представляется в виде структурных схем, с помощью которых можно дать описание компьютера на любом уровне детализации. |
Наиболее распространены следующие архитектурные решения.
· Классическая архитектура (архитектура фон Неймана) одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд программа (рис. 2.1). Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной, подробно рассмотренная в разделе 2.18 (рис. 2.26). Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью.
Физически магистраль представляет собой многопроводную линию с гнездами для подключения электронных схем. Совокупность проводов магистрали разделяется на отдельные группы: шину адреса, шину данных и шину управления. |
Периферийные устройства (принтер и др.) подключаются к аппаратуре компьютера через специальные контроллеры устройства управления периферийными устройствами.
Контроллер устройство, которое связывает периферийное оборудование или каналы связи с центральным процессором, освобождая процессор от непосредственного управления функционированием данного оборудования. |
· Многопроцессорная архитектура. Наличие в компьютере нескольких процессоров означает, что параллельно может быть организовано много потоков данных и много потоков команд. Таким образом, параллельно могут выполняться несколько фрагментов одной задачи. Структура такой машины, имеющей общую оперативную память и несколько процессоров, представлена на рис. 2.3.
Рис. 2.3. Архитектура многопроцессорного компьютера
· Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко. Однако эффект от применения такой вычислительной системы может быть получен только при решении задач, имеющих очень специальную структуру: она должна разбиваться на столько слабо связанных подзадач, сколько компьютеров в системе.
Преимущество в быстродействии многопроцессорных и многомашинных вычислительных систем перед однопроцессорными очевидно.
· Архитектура с параллельными процессорами. Здесь несколько АЛУ работают под управлением одного УУ. Это означает, что множество данных может обрабатываться по одной программе то есть по одному потоку команд. Высокое быстродействие такой архитектуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных. Структура таких компьютеров представлена на рис. 2.4.
Рис. 2.4. Архитектура с параллельным процессором
В современных машинах часто присутствуют элементы различных типов архитектурных решений. Существуют и такие архитектурные решения, которые радикально отличаются от рассмотренных выше.
Архитектура современных компьютеров
Архитектурой современного компьютера является схематическое изображение его структуры строения с указанием принципов работы комплектующих, входящих в его состав.
Понятие архитектуры компьютера
Архитектурой персонального компьютера обычно пользуются в качестве инструмента для отработки стандартов. Другими словами, компьютерную систему по такому стандарту реально воплотить на основе сформированных схематических решений и технологий.
Под термином «архитектура компьютера» также понимают методологию сборки компьютеров и их составляющих. Таким образом, архитектура, разработанная определённой компанией, является её интеллектуальной собственностью и может быть применена только ею, являясь инструментом её конкурентоспособности. Но, невзирая на это, различными брендами используется общая концепция, объединяющая основные базовые характеристики разных моделей компьютеров, что делает их комплектующие универсальными.
Применение единой архитектуры персональных компьютеров дает возможность фирмам по производству компьютеров тесно взаимодействовать друг с другом для создания и совершенствования различных компонентов и используемых технологий. Совмещение разных концепций в одно архитектурное решение дает возможность распространяться определенным моделям персональных компьютеров на рынке, позволяет различным компаниям спроектировать пакеты программ, которые в любом случае подойдут для персонального компьютера.
Сложно разобраться самому?
Попробуй обратиться за помощью к преподавателям
Классический вариант архитектуры компьютера
Первоначальный состав архитектуры компьютера был предложен ученым Нейманом, который был известным математиком. Он изложил основные принципы конструирования персональных компьютеров, учитывая их логическую структуру. Эта методология, которую предложил Нейман, взята за основу классической архитектуры персонального компьютера. В его состав должны входить следующие основные элементы:
В соответствии с этой структурой, должен быть соблюден определенный порядок работы элементов компьютера. Изначально производится загрузка информации в память компьютера из программы, что выполняется. Для ввода данных используются внешние устройства компьютера. После этого блок управления переносит эти данные из блока памяти в блок обработки информации. Обработка происходит с помощью различных элементов компьютера.
Современный вариант архитектуры компьютера
Архитектура современного компьютера, хоть и отличается от классического, но основана на его базе. Определяющей отличительной чертой современного персонального компьютера является наличие у него центрального процессора, который по сути есть соединением блока управления и логико-арифметического блога в единую систему.
Ранее такое соединение было практически невозможным из-за массивного размера микросхем. На сегодняшний день развитие позволило повысить степень интеграции микросхем. Стало возможным ранее невозможное, то есть помещение широкого набора функций в небольшую по размеру деталь. Архитектурой сегодняшнего персонального компьютера также предусматривается использование контроллеров. Необходимость их использования вызвана тем, что роль процессора, как основного устройства, что выполняет функцию обмена информацией с внешними устройствами, изменилась. Функция ввода-вывода информации была убрана из процессора, благодаря новым микросхемам. Была произведена разработка различных каналов обмена информацией, а также наборов микросхем, получивших позже название контроллеров.
Не нашли что искали?
Просто напиши и мы поможем
Архитектура IBM
Но она не монополист при этом, то есть фирмы и компании, производящие компьютеры и их составляющие элементы, сами определяют состав сборки персональных компьютеров. В то же время, всегда остается возможным осовременить свой персональный компьютер, заменив комплектующие на более продвинутые. Реализация технологии открытой архитектуры современных компьютеров стала возможной благодаря быстрым темпам прогресса.
Программное обеспечение и его структура в компьютерах на базе архитектуры IBM
Основной особенностью, по которой можно определить, что персональный компьютер относятся к платформе IBM, есть его возможность работать на различных операционных системах. Это является возможным за счет открытой структуры данной архитектуры. В компьютерах с архитектурой IBM используются операционные системы Linux, Windows в различных конфигурациях, а также, помимо того, разные операционные системы, совместимые с аппаратным оснащением персонального компьютера с такой архитектурой.
На платформе IBM используется стандартная система ввода-вывода данных, именуемая BIOS, которая входит состав всех персональных компьютеров. Её задачей является обеспечение исполнения основных операций персональных компьютеров, вне зависимости от типа операционной системы, установленной на них. Этот момент также является свойством открытости архитектуры на платформе IBM, авторы системы BIOS являются толерантными к производителям других операционных систем и продуктов. Само явление выпуска системы BIOS в составе различных брендов является свойством открытости платформы IBM.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Архитектура компьютера
Архитектура компьютера — набор типов данных, операций и характеристик каждого отдельно взятого уровня. Архитектура связана с программными аспектами. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры. Архитектура определяет принципы действия, информационные связи и взаимное соединение основных логических узлов компьютера: процессора, оперативного запоминающего устройства (ЗУ), внешних ЗУ и периферийных устройств. Общность архитектуры разных компьютеров обеспечивает их совместимость с точки зрения пользователя. [1]
Содержание
Уровни организации
Большинство современных компьютеров состоит из двух и более уровней. Существуют машины даже с шестью уровнями (рисунок 1). Уровень 0 — аппаратное обеспечение машины. Его электронные схемы выполняют программы, написанные на языке уровня 1. Ради полноты нужно упомянуть о существовании еще одного уровня, расположенного ниже уровня 0. Этот уровень не показан на рисунке 1, так как он попадает в сферу электронной техники и, следовательно, не рассматривается в этой книге. Он называется уровнем физических устройств. На этом уровне находятся транзисторы, которые являются примитивами для разработчиков компьютеров.
Следующий уровень — микроархитектурный уровень. На этом уровне можно видеть совокупности 8 или 32 регистров, которые формируют локальную память и схему, называемую АЛУ (арифметико-логическое устройство). АЛУ выполняет простые арифметические операции. Регистры вместе с АЛУ формируют тракт данных, по которому поступают данные. Основная операция тракта данных состоит в следующем. Выбирается один или два регистра, АЛУ производит над ними какую-либо операцию, например сложения, а результат помещается в один из этих регистров.
Второй уровень мы будем называть уровнем архитектуры системы команд. Каждый производитель публикует руководство для компьютеров. Такие руководства содержат информацию именно об этом уровне. Когда они описывают набор машинных команд, они в действительности описывают команды, которые выполняются микропрограммой-интерпретатором или аппаратным обеспечением. Если производитель поставляет два интерпретатора для одной машины, он должен издать два руководства по машинному языку, отдельно для каждого интерпретатора.
Новые средства, появившиеся на третьем уровне, выполняются интерпретатором, который работает на втором уровне. Этот интерпретатор был когда-то назван операционной системой. Команды третьего уровня, идентичные командам второго уровня, выполняются микропрограммой или аппаратным обеспечением, но не операционной системой. Иными словами, одна часть команд третьего уровня интерпретируется операционной системой, а другая часть — микропрограммой. Вот почему этот уровень считается гибридным. Мы будем называть этот уровень уровнем операционной системы.
Четвертый уровень представляет собой символическую форму одного из языков более низкого уровня. На этом уровне можно писать программы в приемлемой для человека форме. Эти программы сначала транслируются на язык уровня 1, 2 или 3, а затем интерпретируются соответствующей виртуальной или фактически существующей машиной. Программа, которая выполняет трансляцию, называется ассемблером.
Пятый уровень обычно состоит из языков, разработанных для прикладных программистов. Такие языки называются языками высокого уровня. Существуют сотни языков высокого уровня. Наиболее известные среди них — BASIC, С, C++,С#, Java, LISP и Prolog. Программы, написанные на этих языках, обычно транслируются на уровень 3 или 4. Трансляторы, которые обрабатывают эти программы, называются компиляторами. Отметим, что иногда также используется метод интерпретации. Например, программы на языке Java обычно интерпретируются.
Цифровой логический уровень (0)
В самом низу иерархической схемы на рисунке 1 находится цифровой логический уровень, или аппаратное обеспечение компьютера, которое составляют цифровые схемы. Они могут конструироваться из небольшого числа простых элементов путем сочетания этих элементов в различных комбинациях. Цифровая схема — это схема, в которой есть только два логических значения. Обычно сигнал от 0 до 1 В представляет одно значение (например, 0), а сигнал от 2 до 5 В — другое значение (например, 1). Напряжение за пределами указанных величин недопустимо. Крошечные электронные устройства, которые называются вентилями, могут вычислять различные функции от этих двузначных сигналов. Эти вентили формируют основу аппаратного обеспечения, на которой строятся все цифровые компьютеры.
Вся современная цифровая логика основывается на том, что транзистор может работать как очень быстрый бинарный переключатель. На рисунке 2 изображен биполярный транзистор, встроенный в простую схему. Транзистор имеет три соединения с внешним миром; коллектор, базу и эмиттер. Если входное напряжение ниже определенного критического значения, транзистор выключается и действует как очень большое сопротивление. Это приводит к выходному сигналу, близкому к Vcc (напряжению, подаваемому извне), обычно +5 В для данного типа транзистора. Если входное напряжение превышает критическое значение, транзистор включается и действует как провод, вызывая заземление сигнала (по соглашению 0 В).
Эти три схемы образуют три простейших вентиля Они называются вентилями НЕ, НЕ-И и НЕ-ИЛИ. Вентили НЕ часто называют инверторами. Мы будем использовать оба термина. Если мы примем соглашение, что высокое напряжение (Vcc) — это логическая 1, а низкое напряжение («земля») — логический 0, то мы сможем выражать значение на выходе как функцию от входных значений. Значки, которые используются для изображения этих трех типов вентилей, показаны на рисунке 3, а — в. Там же приводится поведение функции для каждой схемы. На этих рисунках А и В — это входные сигналы, а X — выходной сигнал. Каждая строка таблицы определяет выходной сигнал для различных комбинаций входных сигналов.
Хотя устройство вентилей относится к уровню физических устройств, мы все же упомянем основные серии производственных технологий, так как они часто упоминаются в литературе. Две основные технологии — биполярная и МОП (металл-оксид-полупроводник). Среди биполярных технологий можно назвать ТТЛ (транзисторно-транзисторную логику), которая служила основой цифровой электроники на протяжении многих лет, и ЭСЛ (эмиттерно-связанную логику), которая используется в тех случаях, когда требуется высокая скорость выполнения операций. Вентили МОП работают медленнее, чем ТТЛ и ЭСЛ, но потребляют гораздо меньше энергии и занимают гораздо меньше места, поэтому можно компактно расположить большое количество таких вентилей. Вентили МОП имеют несколько разновидностей: р-канальный МОП-прибор, n-канальный МОП-прибор и комплиментарный МОП. Хотя МОП-транзисторы конструируются не так, как биполярные транзисторы, они обладают такой же способностью функционировать, как электронные переключатели. Современные процессоры и память чаще всего производятся с использованием технологии комплиментарных МОП, которая работает при напряжении +3,3 В.
Вентили производятся и продаются не по отдельности, а в модулях, которые называются интегральными схемами (ИС) или микросхемами. Интегральная схема представляет собой квадратный кусочек кремния размером примерно 5×5 мм, на котором находится несколько вентилей. Маленькие интегральные схемы обычно помещаются в прямоугольные пластиковые или керамические корпуса размером от 5 до 15 мм в ширину и от 20 до 50 мм в длину. Вдоль длинных сторон располагается два параллельных ряда выводов около 5 мм в длину, которые можно втыкать в разъемы или впаивать в печатную плату. Каждый вывод соединяется с входом или выходом какого-нибудь вентиля, или с источником питания, или с «землей». Корпус с двумя рядами выводов снаружи и интегральными схемами внутри официально называется двурядным корпусом (Dual Inline Package, сокращенно DIP), но все называют его микросхемой, стирая различие между куском кремния и корпусом, в который он помещается. Большинство корпусов имеют 14, 16, 18, 20, 22, 24, 28,40, 64 или 68 выводов. Для больших микросхем часто используются корпуса, у которых выводы расположены со всех четырех сторон или снизу. Микросхемы можно разделить на несколько классов с точки зрения количества вентилей, которые они содержат. Эта классификация, конечно, очень грубая, но иногда она может быть полезна:
Эти схемы имеют различные свойства и используются для различных целей.
Многие применения цифровой логики требуют наличия схем с несколькими входами и несколькими выходами, в которых выходные сигналы определяются текущими входными сигналами. Такая схема называется комбинационной схемой. Часто используемые комбинационные схемы:
Микроархитектурный уровень (1)
Над цифровым логическим уровнем находится микроархитектурный уровень. Его задача — интерпретация команд уровня 2 (уровня архитектуры команд), как показано на рисунке 1. Строение микроархитектурного уровня зависит от того, каков уровень архитектуры команд, а также от стоимости и предназначения компьютера. В идеале следовало бы сначала описать общие принципы разработки микроархитектурного уровня. К сожалению, таких общих принципов не существует. Каждая разработка индивидуальна.
При разработке микроархитектурного уровня (как и при разработке других уровней) постоянно приходится идти на компромисс. У компьютера есть много важных характеристик: скорость, цена, надежность, простота использования, количество потребляемой энергии, физические размеры. При разработке центрального процессора очень важную роль играет выбор между высокой скоростью и низкой стоимостью. Существует три основных подхода, которые позволяют увеличить скорость выполнения операций:
Уровень архитектуры системы команд (2)
Он расположен между микроархитектурным уровнем и уровнем операционной системы, как показано на рисунке 1. Исторически этот уровень развился прежде всех остальных уровней и изначально был единственным. В наши дни этот уровень очень часто называют «архитектурой» машины, а иногда «языком ассемблера». Является связующим звеном между программным и аппаратным обеспечением. Более подробно об этом уровне написано здесь.
Уровень операционной системы (3)
Операционная система — это программа, которая добавляет ряд команд и особенностей к тем, которые обеспечиваются уровнем команд. Обычно операционная система реализуется главным образом в программном обеспечении, но нет никаких веских причин, по которым ее нельзя было бы реализовать в аппаратном обеспечении (как микропрограммы). Хотя и уровень операционной системы, и уровень команд абстрактны (в том смысле, что они не являются реальным аппаратным обеспечением), между ними есть важное различие. Набор команд уровня операционной системы — это полный набор команд, доступных для прикладных программистов. Он содержит практически все команды более низкого уровня, а также новые команды, которые добавляет операционная система. Эти новые команды называются системными вызовами. Они вызывают определенную службу операционной системы, в частности одну из ее команд. Обычный системный вызов считывает какие-нибудь данные из файла.
Уровень операционной системы всегда интерпретируется. Когда пользовательская программа выполняет команду операционной системы, например чтение данных из файла, операционная система выполняет эту команду шаг за шагом, точно так же, как микропрограмма выполняет команду ADD. Однако когда программа выполняет команду уровня архитектуры команд, эта команда выполняется непосредственно микроархитектурным уровнем без участия операционной системы. У этого уровня есть несколько характерных особенностей. Первая особенность — это виртуальная память. Виртуальная память используется многими операционными системами. Она позволяет создать впечатление, что у машины больше памяти, чем есть на самом деле. Вторая особенность — файл ввода-вывода. Это понятие более высокого уровня, чем команды ввода-вывода. Третья особенность — параллельная обработка (как несколько процессов могут выполняться, обмениваться информацией и синхронизироваться). Под процессом можно понимать работающую программу и всю информацию об ее состоянии (о памяти, регистрах, счетчике команд, вводе-выводе и так далее).
Набор команд уровня операционной системы содержит большую часть команд из уровня архитектуры команд, а также несколько новых очень важных команд. Некоторые ненужные команды в уровень операционной системы не включаются. Ввод-вывод — это одна из областей, в которых эти два уровня различаются очень сильно. Причина такого различия проста. Во-первых, пользователь, способный выполнять команды ввода-вывода уровня архитектуры команд, сможет считать конфиденциальную информацию, которая хранится где-нибудь в системе, и вообще будет представлять угрозу для самой системы. Во-вторых, обычные нормальные программисты не хотят осуществлять ввод-вывод на уровне команд, поскольку это слишком сложно и утомительно. Вместо этого для осуществления ввода-вывода нужно установить определенные поля и биты в ряде регистров устройств, затем подождать, пока операция закончится, и проверить, что произошло.
Один из способов организации виртуального ввода-вывода — использование абстракции под названием файл. Файл состоит из последовательности байтов, записанных на устройство ввода-вывода. Если устройство ввода-вывода является устройством хранения информации (например, диск), то файл можно считать обратно. Если устройство не является устройством хранения информации (например, это принтер), то файл оттуда считать нельзя. На диске может храниться много файлов, в каждом из которых содержатся данные определенного типа, например картинка, крупноформатная таблица или текст. Файлы имеют разную длину и обладают разными свойствами. Эта абстракция позволяет легко организовать виртуальный ввод-вывод.
Для операционной системы файл является просто последовательностью байтов, как мы и описали выше. Ввод-вывод файла осуществляется с помощью системных вызовов для открытия, чтения, записи и закрытия файлов. Перед тем как считывать файл, его нужно открыть. Процесс открытия файла позволяет операционной системе найти файл на диске и передать в память информацию, необходимую для доступа к этому файлу. После открытия файла его можно считывать. Системный вызов для считывания должен иметь как минимум следующие параметры:
С каждым открытым файлом связан указатель, который сообщает, какой байт будет считываться следующим. После команды read указатель дополняется числом считанных байт, поэтому последовательные команды read считывают последовательные блоки данных из файла. Обычно этот указатель можно установить на особое значение, чтобы программы могли получать доступ к любой части файла. Когда программа закончила считывание файла, она может закрыть его и сообщить операционной системе, что она больше не будет использовать этот файл. Операционная система сможет освободить пространство в таблице, в которой хранилась информация об этом файле.
Уровень языка ассемблера (4)
Уровень языка ассемблера существенно отличается от трех предыдущих, поскольку он реализуется с помощью трансляции, а не с помощью интерпретации. Программы, которые преобразуют пользовательские программы, написанные на каком-либо определенном языке, в другой язык, называются трансляторами. Язык, на котором изначально написана программа, называется входным языком, а язык, на который транслируется эта программа, называется выходным языком. Входной язык и выходной язык определяют уровни. Если имеется процессор, который может выполнять программы, написанные на входном языке, то нет необходимости транслировать исходную программу на другой язык.
Язык ассемблера довольно труден. Написание программы на языке ассемблера занимает гораздо больше времени, чем написание той же программы на языке высокого уровня. Кроме того, очень много времени занимает отладка. Есть две причины необходимости использования этого языка: производительность и доступ к машине. Во-первых, профессиональный программист языка ассемблера может составить гораздо меньшую по размеру программу, которая будет работать гораздо быстрее, чем программа, написанная на языке высокого уровня. Для некоторых программ скорость и размер весьма важны. Многие встроенные прикладные программы, например программы в кредитных карточках, сотовых телефонах, драйверах устройств, а также процедуры BIOS попадают в эту категорию. Во-вторых, некоторым процедурам требуется полный доступ к аппаратному обеспечению, что обычно невозможно сделать на языке высокого уровня. В эту категорию попадают прерывания и обработчики прерываний в операционных системах, а также контроллеры устройств во встроенных системах, работающих в режиме реального времени.
Программа на языке ассемблера должна не только определять, какие машинные команды нужно выполнить, но и содержать команды, которые должен выполнять сам ассемблер (например, потребовать от него определить местонахождение какой-либо сохраненной информации или выдать новую страницу листинга). Команды для ассемблера называются псевдокомандами или директивами ассемблера.
Язык высокого уровня (5)
Язык программирования высокого уровня — язык программирования, разработанный для быстроты и удобства использования программистом. Основная черта языков программирования высокого уровня — это абстракция, то есть введение смысловых конструкций, кратко описывающих такие структуры данных и операции над ними, описания которых на машинном коде (или другом низкоуровневом языке программирования) очень длинны и сложны для понимания. Так, языки программирования высокого уровня стремятся не только облегчить решение сложных программных задач, но и упростить портирование программного обеспечения. Использование разнообразных трансляторов и интерпретаторов обеспечивает связь программ, написанных при помощи языков высокого уровня, с различными операционными системами и оборудованием, в то время как их исходный код остаётся, в идеале, неизменным.
Такого рода оторванность высокоуровневых языков от аппаратной реализации компьютера помимо множества плюсов имеет и минусы. В частности, она не позволяет создавать простые и точные инструкции к используемому оборудованию. Программы, написанные на языках высокого уровня, проще для понимания программистом, но менее эффективны, чем их аналоги, создаваемые при помощи низкоуровневых языков. Одним из следствий этого стало добавление поддержки того или иного языка низкого уровня (язык ассемблера) в ряд современных профессиональных высокоуровневых языков программирования. Примеры высокоуровневых языков программирования: C, C++, С#, Visual Basic, Java, Python, PHP, Ruby, Perl, Delphi (Pascal). Языкам высокого уровня свойственно умение работать с комплексными структурами данных. В большинство из них интегрирована поддержка строковых типов, объектов, операций файлового ввода-вывода и тому подобное. [2]
Виды архитектуры
Различают два основных типа архитектуры – Фон Неймановскую (принстонскую) и гарвардскую.
Архитектура Фон Неймана
Широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных. Нейману удалось обобщить научные разработки и открытия многих других ученых и сформулировать на их основе принципы этого подхода:
Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.
В соответствии с принципами фон Неймана компьютер состоит из арифметико-логического устройства — АЛУ (англ. ALU, Arithmetic and Logic Unit), выполняющего арифметические и логические операции; устройства управления, предназначенного для организации выполнения программ; запоминающих устройств (ЗУ), в т.ч. оперативного запоминающего устройства (ОЗУ) и внешнего запоминающего устройства (ВЗУ); внешних устройств для ввода-вывода данных.
Программы и данные вводятся в память из устройства ввода через арифметико-логическое устройство. Все команды программы записываются в соседние ячейки памяти, а данные для обработки могут содержаться в произвольных ячейках. У любой программы последняя команда должна быть командой завершения работы.
Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).
Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку. УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии
.Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.
В результате выполнения любой команды счетчик команд изменяется на единицу и, следовательно, указывает на следующую команду программы. Когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов, то специальная команда перехода содержит адрес ячейки, куда требуется передать управление. [3]
Гарвардская архитектура
Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете с целью увеличить скорость выполнения вычислительных операций и оптимизировать работу памяти. Она характеризуется физическим разделением памяти команд (программ) и памяти данных. В ее оригинальном варианте использовался также отдельный стек для хранения содержимого программного счетчика, который обеспечивал возможности выполнения вложенных подпрограмм. Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки реализуется более высокая производительность, чем при использовании Принстонской архитектуры.
Недостатки Гарвардской архитектуры связаны с необходимостью проведения большего числа шин, а также с фиксированным объемом памяти, выделенной для команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи. Поэтому приходится использовать память большего объема, коэффициент использования которой при решении разнообразных задач оказывается более низким, чем в системах с Принстонской архитектурой. Однако развитие микроэлектронной технологии позволило в значительной степени преодолеть указанные недостатки, поэтому Гарвардская архитектура широко применяется во внутренней структуре современных высокопроизводительных микропроцессоров, где используется отдельная кэш-память для хранения команд и данных. В то же время во внешней структуре большинства микропроцессорных систем реализуются принципы Принстонской архитектуры. [4]