Компьютер имеет отдельную память команд и отдельную память данных в архитектуре

Обновлено: 04.07.2024

Архитектура компьютера, организация внутренней и внешней памяти, магистраль, принципы работы и конфигурация компьютера

Для того чтобы понимать возможности и ограничения, существующие при работе с компьютерами, и уметь автоматизировать информационные процессы, недостаточно знать, из каких функциональных устройств состоит компьютер. Необходимо иметь представление о структуре компьютера и понимать принципы организации работы компьютера. Говоря другими словами, необходимо иметь представление об архитектуре компьютера.

Архитектура компьютера — структура и принципы организации работы компьютера, рассматриваемые без особенностей их технической реализации.

Все информационные процессы в компьютере осуществляются автоматически под управлением программ, созданных программистами. Программы состоят из команд. Процессор выполняет последовательность команд, обрабатывает данные и управляет всеми устройствами компьютера автоматически.

Вся информация в компьютере (данные и программы) хранится, обрабатывается и передается с использованием двоичного кода. Иначе говоря, информация в компьютере кодируется последовательностью нулей и единиц.

Адрес ячейки (адрес байта) — порядковый номер ячейки (байта) внутренней памяти компьютера.

Адрес ячейки памяти, как и вся информация в компьютере, представлен с использованием двоичного кода. Количество ячеек (байтов) памяти, а значит, емкость внутренней памяти зависит от количества двоичных разрядов, используемых для кодирования адреса ячейки (байта). Например, если для кодирования адреса ячейки использовано 8 двоичных разрядов (8 битов), то можно закодировать 256 адресов ячеек (28 = 256). А поскольку каждая ячейка содержит 1 байт информации, то информационная емкость всех ячеек памяти, имеющих адреса, составит 256 байтов, нумеруемых с 0 по 255 (табл. 21).

Носители внешней памяти компьютера размечаются (форматируются) на секторы. Каждому сектору присваивается свой порядковый номер, который называется адресом сектора. Информационная емкость одного сектора, как правило, составляет 512 байтов. Поскольку информационная емкость одного сектора довольно мала, то соседние секторы могут быть объединены в кластеры. В зависимости от параметров разметки носителя один кластер может содержать 1, 2, 4, 8, 16, 32, 64 соседних секторов. Обращение к кластеру происходит по адресу — порядковому номеру кластера.

Данные и программы хранятся в памяти компьютера единообразно с использованием двоичного кода. Причем в одних и тех же ячейках или секторах памяти в разное время могут храниться как данные, так и программы. Учитывая это, говорят, что память компьютера однородна.

Взаимодействие всех устройств компьютера осуществляется через общий канал связи — магистраль, которую также называют системной шиной. По магистрали передаются команды и обрабатываемые данные, адреса ячеек памяти, где хранятся данные или команды, управляющие сигналы, координирующие работу устройств компьютера. Через магистраль процессор управляет и высокоскоростными (регистры процессора, оперативная память, кэш-память) и низкоскоростными (внешняя память, устройства ввода и вывода) устройствами компьютера. Взаимодействие с низкоскоростными устройствами, как правило, требует преобразования сигналов (например, из аналогового сигнала в цифровой сигнал) и выполнения определенных операций. Для того чтобы процессор не ждал, пока низкоскоростные устройства выполнят его команды, используются контроллеры, которые управляют работой таких устройств. Контроллеры частично выполняют функцию процессора, и в этом случае говорят уже не о процессоре, а о центральном процессоре и контроллерах.

Магистраль компьютера (системная шина компьютера) — совокупность проводников, связывающих центральный процессор и внутреннюю память с устройствами управления внешней памятью, устройствами ввода и вывода для передачи адресов ячеек памяти, данных, программ и служебных сигналов.

Основной характеристикой магистрали является ее разрядность, которая определяется количеством одновременно передаваемых битов информации. Разрядность магистрали напрямую связана с количеством двоичных разрядов, отводимых для кодирования адреса ячейки памяти, а значит, и с емкостью внутренней памяти компьютера. Разрядность магистрали должна быть согласована с разрядностью процессора.

Компьютер собирается из отдельных блоков (модулей) аналогично тому, как собирается игрушечный дом из кубиков детского конструктора. В компьютере можно заменять и добавлять блоки при условии их совместимости. Это не только не нарушит работу компьютера, но и, возможно, повысит его производительность или увеличит количество выполняемых им функций.

Таким образом, можно выделить следующие основные принципы, которые лежат в основе архитектуры как ранее разработанных, так и большинства современных компьютеров.

Принцип программного управления компьютером — компьютер автоматически управляется командами программы, которые понятны процессору.

Принцип двоичного представления данных и команд в компьютере — вся обрабатываемая информация (данные и команды программы) представляется с использованием двоичного кода, а значит, единообразно представляется в виде последовательности нулей и единиц.

Принцип адресности памяти компьютера — внутренняя память состоит из ячеек, каждая из которых имеет свой адрес, аналогично внешняя память состоит из секторов, каждый из которых также имеет свой адрес.

Принцип однородности памяти компьютера — обрабатываемые данные и исполняемые программы могут храниться в одной и той же памяти компьютера.

Принцип магистрально-модульного устройства компьютера — все устройства компьютера взаимодействуют через магистраль (системную шину), каждое устройство конструктивно выполнено в виде отдельного блока (модуля), который легко подключается или заменяется.

Принцип открытой архитектуры компьютера — каждый физически неисправный или устаревший по характеристикам блок можно заменить на новый блок без внесения изменений в конструкцию компьютера.

Говорят, что компьютеры, построенные с учетом этих принципов, имеют магистрально-модульную архитектуру (рис. 20).

Все устройства компьютера взаимодействуют через магистраль. Непосредственно к магистрали подсоединяются центральный процессор и основная память компьютера. Остальные устройства подключены к магистрали через контроллеры. Центральный процессор управляет всеми устройствами с помощью команд.

Устройства компьютера могут быть изготовлены как в виде отдельных элементов (например, мышь, клавиатура, видеоадаптер), так и конструктивно объединены в единый блок (например, жесткий диск состоит из самого носителя, накопителя на жестком ди ске и контроллера жесткого диска). Подсоединяя к магистрали наборы разных модулей, можно собирать компьютеры, различные по возможностям, характеристикам и составу устройств. Иначе говоря, можно получать компьютеры разной конфигурации.

Рис. 20. Магистрально-модульная архитектура компьютера

Конфигурация компьютера — совокупность взаимосвязанных устройств, составляющих компьютеры, и их основные технические характеристики.

Приведем пример конфигурации современного персонального компьютера: 32-разрядный центральный процессор с тактовой частотой 3,3 ГГц, оперативная память объемом 1 Гбайт с частотой работы 800 МГц, жесткий диск объемом 320 Гбайтов со скоростью вращения 7200 оборотов в минуту, кэш-память объемом 16 Мбайтов, видеопамять объемом 512 Мбайтов, накопитель DVD ± RW.

Для организации взаимодействия компьютеров в сети каждому компьютеру присваивается уникальный адрес. Так, например, в сетях Интернет и Интранет он называется IP-адрес (Ай Пи адрес). Поскольку IP-адрес состоит из 32 двоичных разрядов, то, используя их, можно закодировать адреса нескольких миллиардов компьютеров. Подключение компьютера к сети обеспечивается устройством ввода-вывода (сетевой картой), которое, с одной стороны, взаимодействует через контроллер с магистралью этого компьютера, а с другой — с компьютерной сетью.

Развитие архитектуры компьютера происходит в нескольких направлениях. Среди них основными являются параллельное выполнение нескольких операций и одновременное использование нескольких процессоров (многопроцессорных систем) в компьютере. Это позволит повысить быстродействие компьютеров и сделать работу человека более эффективной.

Предыдущая статья цикла " Микроконтроллеры для начитающих. Часть 4. Очень кратко о микропрограммах " была факультативной. Однако, теперь мы еще на шаг приблизимся к практическому использованию микроконтроллеров. Пусть и упрощенно, схематически, но мы теперь представляем, как устроен процессор микроконтроллера. Пришло время подключать его к остальным узлам управляющей микроЭВМ микроконтроллера.

При слове архитектура большинство людей вспоминает о дворцах и зданиях, строительстве, возникает ассоциация со словом зодчий. Это правильно, но термин архитектура применим не только к строительству. Фактически, архитектура обозначает основные принципы использованные при проектировании и создании чего-либо.

Применительно к ЭВМ, под архитектурой обычно называют совокупность основных принципов, идей, подходов, методов, которые использовались при ее проектировании. Чаще всего входит в понятие архитектура ЭВМ входят:

  • Организация памяти. Это количество различных типов памяти, их организация, способы подключения к процессору, особенности работы памяти.
  • Система команд. Обратите внимание, я не сказал набор команд, я сказал система команд. В наборе команд ЭВМ(точнее, процессора) некоторые команды могут отсутствовать, могут включаться дополнительные команды, но подход к формированию системы команд остается неизменным. Набор команд это подмножество системы команд. Сюда входит адресность команд (количество операндов), режимы адресации операндов, тонкости выполнения (количество циклов, возможно, переменное), типы выполняемых операций, возможность расширения.
  • Подсистема ввода-вывода. Способы подключения и адресации внешних (периферийных). Сюда же относится и наличие (и организация) канала прямого доступа к памяти ЭВМ.
  • Возможность построения многопроцессорных комплексов. Одновременная работа нескольких процессоров в составе ЭВМ далеко не так проста, как может показаться. Причем и с точки зрения программиста.
  • Механические параметры. Да, как ни странным это кажется. Наверное все знают платы расширения устанавливаемые в настольные ПК или в гнезда PCMCIA. Были и определенные требования к размерам ТЭЗ (типовой элемент замены), так назывались платы устанавливаемые в стойки больших ЭВМ (ЕС, СМ). Механические параметры далеко не всегда входят в понятие архитектуры, но иногда такое встречается.

Подробно архитектуру рассматривать мы не будем, для наших целей в этом нет смысла. Но некоторые аспекты для нас очень важны. И начнем мы с архитектуры памяти, точнее, с того, как память подключается к процессору (или наоборот).

"Чистые архитектуры" идеального мира

Наиболее известны две архитектуры подключения памяти к процессору. Первая, знакомая всем по IBM PC совместимым ЭВМ (точнее, микропроцессорам 80x86), архитектура фон Неймана . Вторая, менее известная, но более важная для нас, как станет видно в дальнейшем, Гарвардская архитектура .

Наиболее известные архитектуры ЭВМ с точки зрения организации памяти. Наиболее известные архитектуры ЭВМ с точки зрения организации памяти.

Как видно, основное различие здесь в использовании памяти.

Архитектура фон Неймана

Хранит и программу, и данные, в единой памяти. Это выглядит привлекательно, так как позволяет эффективно использовать память небольшого объема. У нас небольшая программа, которая обрабатывает большие объемы данных? Нет никаких проблем, главное, что бы суммарный размер программы и данных мог поместиться в память. Большая программа требующая мало данных? Тоже все просто.

Кроме того, мы можем заполнить область памяти данными и потом передать ей управление. Или использовать коды команд как данные, возможно, изменяя их.

Архитектура фон Неймана вполне естественна для универсальных ЭВМ, ведь в этом случае неизвестно, что именно потребуется программе и какое будет соотношение объема кода программы и данных. Мы можем легко загрузить новую программу и данные в память и начать выполнение.

Однако, и минусов хватает. Самый большой плюс, лежащий в основе архитектуры, является и самым большим минусом. Представьте, что по какой то причине программа записала часть данных в область команд. Это приведет к неработоспособности программы, если управление будет передано этой измененной области. Или к остановке ЭВМ (когда то давно это называлось АВОСТ - аварийный останов).

Второй, менее очевидный минус, невозможность одновременного считывания очередной команды и операнда, или считывания команды и записи результата. Доступ к памяти может быть только последовательным.

Гарвардская архитектура

Используется разная память для программ и данных. Здесь у нас нет опасности исказить команды программы ошибкой с записью данных. И мы можем считывать очередную команду и записывать результат или считывать операнд одновременно, так как у нас разные блоки памяти. Минусы исчезли? Не совсем.

Теперь мы не можем передать управление области данных или использовать команды как данные. То есть, мы не можем изменять саму программу. Но это иногда все таки требуется. Теперь мы должны по отдельности загружать в области памяти коды команд и данные перед началом выполнения программы. Для универсальных ЭВМ эта архитектура менее удобна, чем архитектура фон Неймана. Зато для микроконтроллеров она подходит хорошо. Ведь программа в микроконтроллер обычно загружается если не однократно, то надолго и изменять ее не требуется. А отдельная область данных позволяет повысить надежность работы и уменьшить объем ОЗУ (оперативная память зачастую дороже). Теперь стало немного понятнее, почему я сказал, что Гарвардская архитектура для более важна, мы же говорим как раз о микроконтроллерах.

При этом довольно неприятным минусом, пусть и не критичным, является снижение гибкости в использовании памяти. Представьте, что нам не хватает, совсем чуть чуть, памяти данных, но есть свободная память команд. Мы никак не можем решить проблему, так как память программ под хранение данных использовать нельзя. И наоборот.

Суровый реальный мир и компромиссы

Реальные ЭВМ не используют в чистом виде ни одну из описанных выше архитектур. Хотя существовали и ЭВМ полностью им соответствующие. Архитектура реальных ЭВМ это некий компромисс. Но прежде чем двигаться дальше нам нужно кратко остановиться на понятии адресного пространства.

Адресное пространство

Под адресным пространством мы будем понимать логически единую совокупность адресуемых ячеек памяти . Звучит туманно? Не волнуйтесь, сейчас все станет понятно. Давайте начнем разбираться с более знакомой всем универсальной ЭВМ (в виде ПК, например).

Из каких областей памяти обычно состоит программа? Во первых, собственно код (команды) программы. Во вторых, область данных. Причем можно выделить область инициализированных данных, которые получают определенные значения перед началом выполнения программы, и не инициализированных данных, значения которых не определены до момента явного присвоения. В третьих, область стека, где хранятся адреса возвратов из подпрограмм и временные данные. В четвертых, динамически выделяемая область памяти.

Совокупность этих областей памяти программы, или задачи, называется адресным пространством задачи. Выглядит это, примерно, так

Пример упрощенного представления об адресном пространстве программы. Иллюстрация моя Пример упрощенного представления об адресном пространстве программы. Иллюстрация моя

Для процессоров 80х86 области памяти обычно называют сегментами. В рамках своего адресного пространства программа может как угодно распоряжаться памятью. Но выход за пределы адресного пространства запрещен (обычно, операционной системой). Видно, что адресное пространство задачи занимает часть, в общем случае, все имеющейся памяти ЭВМ.

Совокупность сегментов, показанных на иллюстрации выше, логически единая , так все эти области памяти относятся к одной и той же программе. Причем не требуется, в общем случае, такого смежного размещения областей памяти программы в физической памяти ЭВМ. Может быть, например, такое расположение

Пример отображения адресного пространства задачи на физическую память ЭВМ. Серым цветом отмечены не используемые области памяти. Иллюстрация моя Пример отображения адресного пространства задачи на физическую память ЭВМ. Серым цветом отмечены не используемые области памяти. Иллюстрация моя

Такое отображение выполняется аппаратно специальными блоками управления памятью, которые могут входить как в состав процессора, так и в состав памяти. При этом адреса памяти используемые в программе называют логическими, а адреса физической памяти ЭВМ физическими. Я не буду углубляться в тему преобразования адресов и управления памятью, это очень обширная и интересная тема, но нам достаточно такого упрощенного представления.

Команды и данные не обязательно занимают все доступное адресное пространство программы. Если реальная потребность программы меньше, чем ей выделено памяти, то часть адресов остается неиспользованной. Доступное адресное пространство задачи может быть меньше, чем ее потребности в памяти. В этом случае приходится использовать методы организации виртуальной памяти, если это возможно. Виртуальную память я так же не буду рассматривать.

Адресные пространства могут полностью изолированными, могут частично перекрываться, могут полностью совпадать, одно из пространств может быть подмножеством другого. С точки зрения математики можно рассматривать адресные пространства как некий вид множеств (множества ячеек памяти) с почти всеми применимыми к множествам операциями.

В рамках приведенного ранее примера с адресным пространством задачи можно показать пример частичного перекрытия

Пример перекрывающихся адресных пространств. Иллюстрация моя Пример перекрывающихся адресных пространств. Иллюстрация моя

Но какое это отношение имеет к микроконтроллерам? Самое прямое! И сейчас это станет видно.

Адресные пространства ЭВМ

Да, именно так. Микроконтроллер включает в себя управляющую ЭВМ, как мы уже видели ранее. Какие области памяти могут быть в ЭВМ? Вспомним наши "чистые архитектуры". Область команд программы и область данных . Но это не все, есть еще область стека , которая может оказаться не такой простой, и область ввода-вывода .

Почему ввод-вывод относится к памяти? Все просто. Мы должны как то адресовать устройства ввода-вывода, управлять ими, передавать им данные и получать ответы. Внешние устройства обычно представлены набором управляющих регистров, каждый из которых имеет определенный адрес. Вероятно, некоторым из вас знакомы команды IN и OUT , которые иногда используются для доступа к таким регистрам. Адреса в командах IN и OUT как раз и относятся к области ввода-вывода.

Еще я назову область специальных регистров процессора , о которой вспоминают не часто. Специальные регистры процессора могут иметь свои адреса, а могут и не иметь.

Таким образом, у нас есть пять областей памяти, каждая из которых может иметь собственные адреса, свой размер, и является логически единой(по смыслу). Другими словами, у нас есть пять адресных пространств.

В общем случае мы не можем сказать, что именно хранится в ячейке с некоторым адресом, если не указано, к какому адресному пространству она относится. Например, ячейка с адресом 10 может хранить команду, если она в адресном пространстве команд (программ), или являться, например, регистром управления внешнего устройства, если она в адресном пространстве ввода-вывода, или быть просто некоторой переменной, если она в адресном пространстве данных.

Если еще раз вспомнить "чистые архитектуры", то станет видно, что в архитектуре фон Неймана адресные пространства программ и данных полностью совпадают. А в Гарвардской архитектуре они полностью изолированы.

А вот со стеком все немного интереснее. Стек хранит адреса возвратов и временные данные. С архитектурой фон Неймана все понятно, там адресные пространства совпадают. А как быть с Гарвардской? Мы не можем поместить стек в память программ, так он может содержать и данные. А в микроконтроллерах память программ еще и обычно представлена ПЗУ. Мы не можем поместить стек в память данных, так это позволит изменять адреса возвратов, которые относятся к памяти программ.

Мы можем решить проблемы поместив стек в специальную, изолированную, область памяти. Или сделать два различных стека, один для адресов возвратов, второй для временных данных. Теперь понятно, почему я выделил стек как отдельную область памяти, отдельное адресное пространство?

Но вернемся к нашей теме. Даже в Гарвардской архитектуре иногда требуется доступ к памяти программ, как к данным. Это можно сделать несколькими способами, я кратко расскажу о двух.

Пример организации доступа к памяти программ как к внешнему устройству. Иллюстрация моя Пример организации доступа к памяти программ как к внешнему устройству. Иллюстрация моя

Проще всего добавить в ЭВМ (или процессор) специальный блок, через который и будет осуществляться доступ к памяти программ, как к данным. С большой долей вероятности, этот блок позволит достаточно легко читать память программ, а вот запись будет или сложнее, или не будет доступна совсем. С точки зрения чистоты архитектуры это решение ничего не нарушает, адресные пространства по прежнему изолированы, а дополнительный блок является обычным внешним устройством. При этом доступ к памяти программ будет медленнее, чем к памяти данных. И потребует больших усилий при программировании.

А вот второй способ гораздо хитрее и, на первый взгляд, нарушает все различия между архитектурами. Мы можем построить виртуальное адресное пространство, которое и будет использовать процессор, и которое будет являться объединением адресных пространств данных и программ. Вот так

Пример объединения адресных пространств программ и данных в единое виртуальное адресное пространство. Иллюстрация моя Пример объединения адресных пространств программ и данных в единое виртуальное адресное пространство. Иллюстрация моя

Обратите внимание, здесь нет принципиальных схемотехнических отличий от первого варианта, где мы работали с памятью программ как с внешним устройством. У нас лишь добавился дешифратор, который маскирует особенности памяти программ с точки зрения программиста. Доступ от этого не становится быстрее, но вот использовать его в программе проще. Самое виртуальное адресное пространство теперь выглядит примерно так

Пример единого виртуального адресного пространства программ и данных. Иллюстрация моя Пример единого виртуального адресного пространства программ и данных. Иллюстрация моя

Кто то может сказать, а чем это вообще отличается от архитектуры фон Неймана? А действительно, чем? Особенно с учетом того, что я сказал, что адресное пространство не обязательно должно отображаться на непрерывные области физической памяти.

Все просто, на самом деле. В архитектуре фон Неймана у нас адресные пространства программ и данных полностью совпадают. Фактически, там можно говорить о едином адресном пространстве программ/данных. В данном же случае, у нас адресные пространства программ и данных по прежнему изолированны, а виртуальное пространство строится как их объединение, но без нарушения изоляции.

Таким образом, для Гарвардской архитектуры мы можем строить виртуальные адресные пространства по разному комбинируя отдельные адресные пространства не нарушая их изолированности. А можно и включать одно пространство в другое, без изоляции. Например, мы можем включить адресное пространство регистров процессора в адресное пространство данных. Так сделано, например, в микроконтроллерах PIC Microchip и AVR Atmel. При этом туда же входит и адресное пространство ввода-вывода (для Atmel это не совсем так, но разница нам сейчас не принципиальна). Подробнее обо всем этом поговорим в следующих статьях.

Остается кратко упомянуть, как можно обеспечить изоляцию адресных пространств программ и данных для архитектуры фон Неймана. Тут тоже используются отдельные блоки управления памятью. Поскольку эта темя далеко от микроконтроллеров особенно углубляться в нее не буду. Скажу лишь, что обычно используется запрет передачи управления на области памяти, которые должны считаться памятью данных. При этом можно и читать, и записывать эти области, а вот передавать управление туда нельзя. И, разумеется, никто не отменял включения защиты от записи в определенные области памяти.

Архитектура и адресные пространства микроконтроллеров

Ну вот мы и добрались до микроконтроллеров. Путь был длинным и не простым, зато сейчас будет гораздо легче.

При этом доступ к памяти программ как к данным имеют далеко не все микроконтроллеры. В некоторых случаях такой доступ организован как к внешнему устройству, в некоторых моделях через виртуальное адресное пространство. При этом, через виртуальное адресное пространство не всегда можно производить запись в память программ, даже используя специальные методы доступа.

В большинстве микроконтроллеров адресное пространство регистров процессора объединено (включено) в адресное пространство данных. Так же, во многих контроллерах с отдельным адресным пространством ввода-вывода оно частично, или полностью, может включаться в пространство данных. Более подробно я это буду рассматривать когда доберемся до организации памяти (не архитектуры).

Некоторые микроконтроллеры позволяют организовывать виртуальное адресное пространство. Как это выглядит для микроконтроллеров PIC Microchip можно посмотреть в статье, ссылку на которую я давал выше. А вот для STM8 я приведу упрощенный вид виртуального адресного пространства

Разница между фон Нейманом и гарвардской архитектурой: архитектура фон Неймана была разработана известным физиком и математиком Джоном фон Нейманом в конце 1940-х годов, а архитектура Гарварда была основана на оригинальном релейном компьютере Harvard Mark I.

10 различий между фон Нейман и Гарвардской архитектуры

Оригинальная гарвардская архитектура использовалась для хранения инструкций на перфоленте и данных в электромеханических счетчиках. Архитектура фон Неймана составляет основу современных вычислений и проще в реализации. В этой статье рассматриваются две компьютерные архитектуры в отдельности и объясняется разница между ними.

Архитектура фон Неймана

Архитектура фон Неймана это не что иное, как искусство хранения электронного компьютера. Это совсем не новая концепция, она существует уже давно, и мы следуем принципу этой архитектуры фон Неймана. Если мы вернемся в историю, совершенно очевидно, что архитектура фон Неймана была впервые опубликована в отчете Джона фон Неймана 30 июня 1945 года, и с тех пор тот же принцип применяется для хранения электронных компьютеров.

Применение и функции

Архитектура фон Неймана нашла широкое применение в повседневной жизни. Имея в виду широкое применение, архитектура фон Неймана была введена в качестве предмета в образовательной степени. Начиная с третьего семестра студенты инженерных специальностей будут изучать этот предмет в своей учебной программе. Архитектура фон Неймана состоит из некоторых важных функций, и здесь мы подробно остановимся на них.

Память: Все мы знаем, что фон Нейман - это не что иное, как компьютер с функцией хранения данных. В архитектуре фон Неймана память играет жизненно важную роль и считается одной из важных особенностей. В основном это отвечает как за хранение, так и за запуск данных и данных программирования. В наши дни это было заменено ОЗУ, и теперь мы используем ОЗУ для этой цели.

Устройство управления: Это подразделение в основном отвечает за аспект управления. Все данные хранятся в памяти и во время обработки данных блок управления играет роль и управляет потоком данных. Фактически, если быть более типичным, это «По одному». Блок управления следует принципу One At A Time и, соответственно, обрабатывает все данные.

Ввод, вывод: Как и все электронные устройства, архитектура фон Неймана также имеет архитектуру ввода / вывода. Это основная функция та же, и ничего особенно не было разработано для архитектуры ввода и вывода. С помощью устройства ввода и вывода человек может общаться с устройством.

ALU: ALU или арифметическая логическая единица имеет большое значение в архитектуре фон Неймана. Этот ALU будет выполнять любое сложение, вычитание, умножение и деление данных. В дополнение к этому, ALU будет выполнять любые другие алгоритмические функции и действия. Это основной аспект архитектуры фон Неймана, о котором вы должны знать.

Гарвард Архитектура

Гарвардская архитектура не что иное, как своего рода хранилище данных. Когда дело доходит до физического хранения данных, Гарвардская архитектура всегда стояла на первом месте. Хотя эта концепция не нова, архитектура Гарварда получила огромную признательность от всех. Релейный компьютер Harvard Mark I - это термин, из которого впервые возникла концепция архитектуры Гарварда, а затем произошли значительные изменения в этой архитектуре. Основная функция этой архитектуры - разделить физическое хранение данных и предоставить пути прохождения сигналов для инструкций и данных.

Применение и функции

Он нашел широкое применение в продуктах для обработки аудио и видео, и с каждым инструментом обработки аудио и видео вы заметите присутствие архитектуры Havard. Процессоры Blackfin от Analog Devices, Inc. - это конкретное устройство, в котором они получили самое широкое применение. В других продуктах на основе электронных чипов также широко используется архитектура Havard.

Состояние памяти

В предыдущей архитектуре мы наблюдали наличие двух воспоминаний. Однако в случае Гарвардский архитектуры, вы не найдете двух памяти и будет одна память. Имеющаяся память сможет выполнять все функции. Да, будет только постоянная память, и эта память будет использоваться для чтения, кодирования, декодирования и хранения данных.

Аспект скорости

Много говорилось о Гарвардский архитектура, но без скорости никакая архитектура не может быть принята. Но в случае архитектуры Havard производители разработали архитектуру таким образом, чтобы она могла обрабатывать данные с гораздо более высокой скоростью. Да, все внимание было уделено тому, чтобы архитектура могла обрабатывать данные с высокой скоростью.

Реализуя ту же формулу, современные ЦП производятся так, чтобы новый ЦП мог работать с гораздо более высокой скоростью, а также мог эффективно обрабатывать данные. Концепция кеш-памяти ЦП также реализуется при разработке архитектуры Гарварда.

Особенности архитектуры фон Неймана

  1. Архитектура фон Неймана - это теоретический проект, основанный на концепции компьютера с хранимой программой.
  2. Архитектура фон Неймана имеет только одну шину, которая используется как для извлечения инструкций, так и для передачи данных. Что еще более важно, операции должны быть запланированы, потому что они не могут быть выполнены одновременно.
  3. В архитектуре фон Неймана процессору потребовалось бы два тактовых цикла для выполнения инструкции.
  4. Архитектура фон Неймана обычно используется буквально на всех машинах, от настольных компьютеров, ноутбуков, высокопроизводительных компьютеров до рабочих станций.

Архитектура фон Неймана

Особенности Гарвардской Архитектуры

  1. Гарвардская архитектура - это современная компьютерная архитектура, основанная на компьютерной модели ретранслятора Harvard Mark I.
  2. Гарвардская архитектура имеет отдельное пространство памяти для инструкций и данных, которое физически разделяет сигналы и код хранения и память данных, что, в свою очередь, позволяет получить доступ к каждой из систем памяти одновременно.
  3. В гарвардской архитектуре процессор может выполнить инструкцию за один цикл, если были установлены соответствующие планы конвейерной обработки.
  4. Гарвардская архитектура - это новая концепция, используемая специально в микроконтроллерах и цифровой обработке сигналов (DSP).
  5. Гарвардская архитектура - сложный вид архитектуры, поскольку в ней используются две шины для команд и данных, что делает разработку блока управления сравнительно более дорогой.

Разница между фон Нейман и Гарвардской архитектуры

Точка сравнения Гарвард Архитектура Архитектура фон Неймана
Соглашение В гарвардской архитектуре ЦП связан как с памятью данных (RAM), так и с памятью программ (ROM), отдельно. В архитектуре фон Неймана нет отдельной памяти данных и программ. Вместо этого, одно соединение памяти предоставляется ЦПУ.
требования к оборудованию Для этого требуется больше оборудования, поскольку для каждой памяти потребуются отдельные данные и адресная шина. В отличие от архитектуры Гарварда, для этого требуется меньше оборудования, так как требуется только общая память.
требования к свободному пространству Это требует больше места. Архитектура фон Неймана требует меньше места.
Скорость исполнения Скорость выполнения выше, потому что процессор извлекает данные и инструкции одновременно. Скорость выполнения ниже, поскольку он не может одновременно получать данные и инструкции.
Использование пространства Это приводит к неэффективной трате пространства, поскольку, если в памяти данных остается пространство, память инструкций не может использовать пространство памяти данных, и наоборот. Пространство не тратится впустую, потому что пространство памяти данных может использоваться памятью инструкций и наоборот.

Если вам понравилась эта статья, подпишитесь на вашу электронную почту для связанных материалов. Благодарю.

CSN Team.

=> ПОСЛЕДУЮЩИЕ США НА INSTAGRAM | FACEBOOK & TWITTER ПОСЛЕДНИЕ ОБНОВЛЕНИЯ

Любой IBM PC совместимый компьютер построен по принципу описанному ещё Джорджем фон Нейманом в 1945м году, его основные составляющие – блок управления, арифметико-логическое устройство, память и устройство ввода-вывода. В компьютере реализован принцип хранимой программы, т.е. данные и программа хранятся в одной и той же памяти. ЦП выбирает и исполняет команды из памяти последовательно, адрес следующей команды задаётся счётчиком адреса, такой принцип называется последовательной передачей управления. Подобная архитектура является не единственно приемлемой, есть ещё потоковые компьютеры и разрабатываются новые типы вычислительных машин.
На рис. 1 приведена схема логической структуры микро¬процессорной системы. МикроЭВМ — это совокупность микропроцессора (МП), ОЗУ и ПЗУ вместе с устройствами ввода-вывода (УВВ), предназначенными для работы с оператором или с другой электронной системой. В МП систему входит также аппаратурный блок — информационный контроллер ИК, приводящий все связи и сигналы УВВ разных типов к стан¬дартному виду. ИК имеет стандартный интерфейс со стороны подключения к информационной магистрали, состоящей из ма¬гистралей адресов, данных и управления (МА, МД, МУ), и нестандартный интерфейс со стороны УВВ.


Рис 1. Логическая структура управляющей микропроцессорной системы

МикроЭВМ становится центральной частью электронной системы контроля и управления, когда она вводится в контур управления некоторого объекта (процесса) ОУ. Для сопряжения с микроЭВМ ОУ оснащается датчиками состояния (Д) и исполнительными механизмами (ИМ). Для согласования интерфейсов Д и ИМ подключаются через блоки сопряжения (БС).
Рассмотренная структура отражает магистрально-модульный принцип организации МПС. Отдельные блоки являются функци¬онально законченными модулями со своими встроенными схемами управления, выполненными в виде одного или нескольких кристаллов БИС, заключенных в корпуса с соответствующим числом выводов. Межмодульные связи и обмен информацией меж¬ду модулями осуществляются посредством магистралей — коллективных шин.

Структура ВМ классической фон Неймановской архитектуры


Рис.2 Схема компьютера фон Неймановской архитектуры

Она состоит из 4 основных узлов: центрального процессора (ЦП), памяти, устройств ввода / вывода (УВВ) и пульта управления. ЦП состоит из арифметико—логического устройства (АЛУ), устройства управления (УУ) и регистров (регистрового файла). Внешние устройства (УВВ) служат для ввода в память программы и исходных данных и вывода результатов. Пульт управления служит для первоначального запуска машины, контроля хода вычисления, остановки вычислений вручную и др.
Арифметические и логические операции выполняются в АЛУ над целыми, вещественными числами и логическими элементами, представленными в двоичной системе счисления. Для отрицательных значений используется обратный или дополнительный код. Последний используется чаще, т. к. позволяет свести операцию вычитания к операции сложения. Дополнительный код получается при инверсии значащих разрядов числа и добавления в младший разряд единицы.
В состав обычного фон Неймановского компьютера входит один ЦП, основная задача которого — выбирать из памяти и выполнять команды. Порядок выборки команд определяется счётчиком адреса команд (СЧАК), содержимое которого инкрементируется после выборки очередной команды. Изменение естественного порядка выборки и выполнения команд производится командами переходов (передач управления), засылающих целевой адрес в СЧАК.
Выбранная команда дешифрируется УУ и интерпретируется им в последовательность импульсов и потенциалов (микроопераций), управляющих соответствующими операциями функциональных узлов ЭВМ.
ЦП имеет набор регистров или сверхоперативную память, предназначенную для временного хранения промежуточных результатов и данных, нужных для выполнения команд. Регистры делятся на два класса -регистры общего назначения (РОН) и специальные. РОНы доступны программисту и их функциональность может меняться программно. Их количество широко варьруется в разных процессорах и ограничивается технологическими и экономическими соображениями. Операционные регистры, к которым относятся регистр команд, разные буферные регистры недоступны программисту.
В архитектуре фон Неймана применяется однородная память микропроцессора. В эту память могут записываться различные программы. При этом специальная программа-загрузчик работает с ними как с данными. Затем управление может быть передано этим программам и они уже начинают выполнять свой алгоритм. При подобном подходе к управлению микропроцессором удается достигнуть максимальной гибкости микропроцессорной системы.

Структура Гарвардской архитектуры

В качестве недостатка архитектуры фон Неймана можно назвать возможность непреднамеренного нарушения работоспособности системы (программные ошибки) и преднамеренное уничтожение ее работы (вирусные атаки). В Гарвардской архитектуре принципиально различаются два вида памяти микропроцессора:
• Память программ (для хранения инструкций микропроцессора)
• Память данных (для временного хранения и обработки переменных)
В гарвардской архитектуре принципиально невозможно осуществить операцию записи в память программ, что исключает возможность случайного разрушения управляющей программы в случае ошибки программы при работе с данными или атаки третьих лиц. Кроме того, для работы с памятью программ и с памятью данных организуются отдельные шины обмена данными (системные шины), как это показано на рисунке 3.


Эти особенности определили области применения гарвардской архитектуры. Гарвардская архитектура применяется в микроконтролерах и в сигнальных процессорах, где требуется обеспечить высокую надёжность работы аппаратуры. В сигнальных процессорах Гарвардская архитектура дополняется применением трехшинного операционного блока микропроцессора. Трехшинная архитектура операционного блока позволяет совместить операции считывания двух операндов с записью результата выполнения команды в оперативную память микропроцессора. Это значительно увеличивает производительность сигнального микропроцессора без увеличения его тактовой частоты.
В Гарвардской архитектуре характеристики устройств памяти программ и памяти данных не всегда выполняются одинаковыми. В памяти данных и команд могут различаться разрядность шины данных и распределение адресов памяти. Часто адресные пространства памяти программ и памяти данных выполняют различными. Это приводит к различию разрядности шины адреса для этих видов памяти. В микроконтроллерах память программ обычно реализуется в виде постоянного запоминающего устройства, а память данных — в виде ОЗУ. В сигнальных процессорах память программ вынуждены выполнять в виде ОЗУ. Это связано с более высоким быстродействием оперативного запоминающего устройства, однако при этом в процессе работы осуществляется защита от записи в эту область памяти.
Применение двух системных шин для обращения к памяти программ и памяти данных в гарвадской архитектуре имеет два недостатка — высокую стоимость и большое количество внешних выводов микропроцессора. При использованиии двух шин для передачи команд и данных, микропроцессор должен иметь почти вдвое больше выводов, так как шина адреса и шина данных составляют основную часть выводов микропроцессора. Для уменьшения количества выводов кристалла микропроцессора фирмы-производители микросхем объединили шины данных и шины адреса для внешней памяти данных и программ, оставив только различные сигналы управления (WR, RD, IRQ) а внутри микропроцессора сохранили классическую гарвардскую архитектуру. Такое решение получило название модифицированная гарвардская архитектура.
Модифицированная гарвардская структура применяется в современных микросхемах сигнальных процессоров. Ещё дальше по пути уменьшения стоимости кристалла за счет уменьшения площади, занимаемой системными шинами пошли производители однокристалльных ЭВМ — микроконтроллеров. В этих микросхемах применяется одна системная шина для передачи команд и данных (модифицированная гарвардская архитектура) и внутри кристалла.
В сигнальных процессорах для реализации таких алгоритмах как быстрое преобразование Фурье и цифровая фильтрация часто требуется еще большее количество внутренних шин. Обычно применяются две шины для чтения данных, одна шина для записи данных и одна шина для чтения инструкций. Подобная структура микропроцессора получила название расширенной гарвардской архитектуры. Этот подход практикуют производители сигнальных процессоров — фирмы Analog Devices (семейства сигнальных процессоров BlackFin и Tiger Shark), Texas Instrunents (семейства сигнальных процессоров C5000™ DSPs и C6000™ DSPs), Freescale (семейства сигнальных процессоров MSC8251 и DSP56K).

Читайте также: