Архитектура ПК - это логическая организация и структура вычислительных систем, определяющая взаимодействие аппаратных и программных компонентов. Включает:
- процессор
- память
- ввод-вывод
Пример: архитектура x86, основанная на магистрально-модульном принципе.
Классическая архитектура фон Неймана
Одна из самых широко известных концепций построения и функционирования компьютера — это архитектура фон Неймана. Американский математик Джон фон Нейман разработал и изложил её основы в статье 1945 года «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства».
В соответствии с принципами фон Неймана, компьютер состоит из:
-
арифметического логического устройства — АЛУ (англ. ALU, Arithmetic and Logic Unit), которое выполняет арифметические и логические операции;
-
устройства управления (УУ), которое предназначено для организации выполнения программ;
-
запоминающих устройств (ЗУ), в т. ч. оперативного запоминающего устройства (ОЗУ, оперативная память);
-
внешнего запоминающего устройства (ВЗУ, жесткий диск компьютера);
-
внешних устройств для ввода-вывода данных.
В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных. На основе этих принципов производились первые поколения компьютеров. Далее благодаря прогрессу и росту сложности вычислительных задач архитектурные концепции начали меняться, хотя многие принципы фон Неймана остаются применимыми.
Принципы фон Неймана
-
Использование двоичной системы счисления в ЭВМ. Преимущество перед десятичной системой счисления состоит в том, что такие устройства можно делать достаточно простыми. Арифметические и логические операции в двоичной системе счисления также выполняются просто и быстро.
-
Программное управление ЭВМ. Работа ЭВМ контролируется программой, которая состоит из набора команд. Команды выполняются последовательно друг за другом.
-
Память компьютера используется для хранения не только данных, но и программ. При этом программы, как и данные, хранятся в той же двоичной системе. Поэтому, например, во многих языках программирования у нас есть возможность использовать команды (функции) и данные схожим образом.
-
Ячейки памяти последовательно пронумерованы, то есть каждая ячейка имеет свой адрес. Этот принцип даёт нам возможность использовать переменные в программировании.
-
Возможность перехода по какому-либо условию в процессе выполнения программы. Несмотря на то, что команды выполняются последовательно, в программах можно реализовать возможность перехода к любому участку кода.
С каждым годом компьютеры приобретают все больше вычислительных способностей, и это позволяет им решать все более сложные задачи. Уже сегодня компьютеры столкнулись с рядом ограничений, которые не позволяют воссоздать действия из фильмов про будущее. Так ли будет и дальше, есть ли предел у современной архитектуры и что нам делать, если такой стремительный рост в дальнейшем невозможен?
Оказывается, что в этой архитектуре есть фундаментальный недостаток, так называемое «бутылочное горлышко».
Как можно увидеть на схеме выше, здесь возникает ограничение пропускной способности обмена данными между процессором и памятью по сравнению с объёмом памяти. Для решения этой проблемы обычно предлагали несколько подходов:
-
использование многопотоковых процессоров, когда один поток данных обрабатывается несколькими потоками команд;
-
параллельные и кластерные архитектуры;
-
использование различных методов кэширования.
Давайте разберёмся с этими подходами подробнее.
Многопроцессорная архитектура ПК
Архитектура простых многопроцессорных систем построена на схеме с общей шиной. Несколько процессоров и один или несколько модулей памяти размещены на общей шине. Каждый процессор, для того чтобы произвести операции ввода/вывода с памятью, проверяет, свободна ли в текущий момент шина, и, если свободна, он занимает ее. Если же шина занята, то процессор ждёт момента, когда она освободится. Таким образом понятно, что будет неэффективно просто наращивать количество процессоров, ведь в таком случае узким местом, ограничивающим пропускную способность, является пропускная способность шины.
Для решения этой проблемы у каждого процессора есть собственная локальная память, куда помещаются исполняемые программы и локальные переменные, которые этот процессор обрабатывает. Общее запоминающее устройство используется для хранения общих переменных и системного программного обеспечения. При такой организации нагрузка на общую шину значительно снижается.
Многомашинная вычислительная система
Многомашинная вычислительная система состоит из нескольких ЭВМ, каждая из которых имеет свою оперативную память и работает под управлением собственной операционной системы. Обмен данными происходит путем взаимодействия операционных систем между собой. Это ухудшает динамические характеристики процессов межмашинного обмена данными.
Применение многомашинных систем позволяет увеличить надежность вычислительных кластеров. Например, подобная архитектура используется в серверах. При отказе в одной ЭВМ обработку данных может продолжать другая машина комплекса. Однако можно заметить, что при этом оборудование комплекса недостаточно эффективно используется для этой цели. Достаточно в каждой ЭВМ выйти из строя по одному устройству (даже разных типов), как вся система становится неработоспособной.
Архитектура с параллельными процессорами
Отличительным признаком этой архитектуры является то, что несколько арифметическо-логических устройств работают под одним устройством управления. Это означает, что множество данных может обрабатываться по одной программе — то есть по одному потоку команд. Такая структура называется системой с параллельными процессорами. По схожему принципу организована архитектура видеопроцессоров.
Высокое быстродействие такой структуры можно получить только на задачах, в которых одинаковые вычислительные операции выполняются одновременно на различных однотипных наборах данных.
Архитектура современных компьютеров
А как же обстоят дела с современными компьютерами? Главное отличие заключается в том, что в современном ПК арифметический, логический и блок управления объединены в один элемент — центральный процессор.
Также архитектура персональных компьютеров отличается тем, что имеет в составе контроллеры. Технологическое развитие в производстве микросхем позволило перенести ввод-вывод из функций процессора в другие каналы связи и устройства, которые впоследствии получили название контроллеров.
IBM PC
Компания IBM создала архитектуру персонального компьютера, которая на многие годы стала мировым стандартом на рынке. Её основное отличие от конкурентов состояло в полностью открытой структуре.
Персональный компьютер перестал быть законченным изделием от производящей его компании, закрытым от кастомизации пользователем. Конечные клиенты или фирмы, которые собирают персональные компьютеры на базе IBM, могут самим определять набор компонентов, включаемых в состав компьютера. Причём как на аппаратном уровне, так и на уровне операционной системы. Таким образом появляется возможность замены отдельных узлов компьютера на более подходящие под нужды конечного потребителя (например, на более продвинутые, а следовательно, и более дорогие, или же наоборот, более дешевые, если пользователю не нужна излишняя мощность). С помощью этого подхода у компаний и с точки зрения бизнеса появилась возможность более гибко сегментировать выпускаемые компьютеры для разных аудиторий.
В том числе благодаря такому подходу к разработке компьютеров, на МКС летают именно IBM-овские компьютеры. Ноутбуки Thinkpad единственные в мире имеют соответствующую сертификацию для использования в условиях невесомости — просто потому, что есть возможность гибко настраивать ноутбук с точки зрения железа под свои задачи.
Получи больше пользы от Skysmart:
-
Научись программировать на курсах разработки.
-
Выбирай из 130+ наставников по программированию.
Записывайся на бесплатные курсы для детей.
Нейроморфная архитектура
Возвращаясь к архитектуре фон Неймана, мы видим, что весь поток данных проходит через некий вычислительный центр, то есть по сути еще одно узкое горлышко. Количество ядер в современных чипах растет, но вслед за этим возникает и новая проблема: сперва данные нужно распараллелить, а после синхронизировать результаты. То есть, если у вас множество независимых входных сигналов и они не связаны между собой ни во времени, ни в контексте, множество ядер процессоров и ядер видеокарт хорошо справляются с этой задачей. Но в том случае, если у вас большой входной сигнал, то задача параллелизма вычислений, синхронизации результатов может занять большую часть этих самых вычислений.
Подход нейроморфной архитектуры не предлагает вычисления конкретных условий для решения задач. Сама архитектура и принципы действия нейроморфных процессоров схожи с работой биологической нервной системы. Соответственно, такая архитектура узкоспециализирована именно для работы с нейросетями. Программист создаст некую структуру (нейросеть), которая будет обучаться сама на подготовленных наборах данных, а после достижения некоего достаточного в рамках текущей задачи результата его можно будет использовать как готовое решение.
Но было бы ошибкой сказать, что нейроморфная архитектура — это просто нейросети в классическом машинном обучении, так как многие механизмы сильно отличаются.
Идея архитектуры компьютеров, основанной на нейроподобных связях, не нова. Еще несколько десятков лет назад учёные и энтузиасты пробовали реализовать этот подход, но возможности для эффективного развития этих идей появились не так давно. А также появилось большое количество прикладных задач, в которых эта архитектура будет востребована, и данных для них. Кроме того, производители процессоров накопили опыт и готовы к сложным, нестандартным архитектурам на уровне железа.
Так какими же преимуществами будет обладать нейроморфная архитектура? Прежде всего это:
-
масштабируемость,
-
параллелизм вычислений,
-
энергоэффективность,
-
способность обрабатывать последовательности и непрерывные сигналы,
-
высокий уровень адаптивности к сигналу.
В силу новизны технологии у такой архитектуры есть и недостаток — стоимость одного чипа. Точнее, такие чипы пока просто не производятся для массовой продажи. Компании создают их индивидуально для собственных исследований.
Квантовые компьютеры
Одна из самых значимых и ожидаемых технологий последних десятилетий — квантовые компьютеры. Это вычислительные устройства, которые для обработки и передачи данных используют законы квантовой механики. Благодаря этому, в ряде алгоритмов можно получить огромное преимущество в скорости вычислений по сравнению с обычными компьютерами. Также квантовые компьютеры обеспечивают гораздо более защищенные алгоритмы шифрования для передачи данных.
Пока что полноценный универсальный квантовый компьютер ещё не изобретён, но в последние годы китайские учёные достигли значительных успехов. Например, в 2020 году китайский квантовый компьютер «Цзючжан», работающий на запутанных фотонах, достиг квантового превосходства: за 200 секунд было успешно проведено вычисление, для которого самому быстрому в мире классическому компьютеру потребовалось бы более полумиллиарда лет!
Как мы увидели, с 1945 года (года выпуска первой статьи фон Неймана, посвященной этой проблеме) за почти 80 лет разработки компьютерных архитектур эта сфера шагнула очень далеко вслед за всё расширяющимся горизонтом применения компьютеров в бытовой жизни, технических задачах и научных вычислениях.
Мы узнали, что в последние десятилетия появились (и продолжают появляться!) новые концепции, которые основаны уже на совершенно иных принципах. Но в то же время архитектурные принципы, изложенные фон Нейманом, всё ещё активно применяются и, судя по всему, еще долго будут применяться в большинстве задач.
Узнать ещё больше захватывающих фактов из мира вычислительной техники и научиться решать прикладные задачи с её помощью можно на курсах программирования в онлайн-школе Skysmart Pro.