Принцип открытой архитектуры компьютера и современные тенденции развития
Компьютерная архитектура (computer architecture) – это разработанный Джоном фон Нейманом набор правил и методов описания функций, которые участвуют в организации работы компьютерных систем. Впервые документальное упоминание данного термина найдено в переписке английского ученого Чарльза Бэббиджа с писательницей и математиком Адой Лавлейс в первой половине ХХ века.
Понятие архитектуры персонального компьютера (ПК) дает нам представление о том, как он устроен, как разные устройства взаимодействуют друг с другом. Они подсоединяются по определенной схеме, а ее вариации и будут разновидностями архитектурных систем.
Любой современный персональный компьютер или ноутбук – это сложное многофункциональное устройство, а не просто мультиплатформенная игровая приставка. Всего можно выделить пять уровней архитектуры электронно вычислительных машин (ЭВМ):
- нулевой уровень;
- первый уровень – микроархитектура компьютера;
- второй – системные команды;
- третий – операционная система;
- четвертый – прикладные и системные программы;
- пятый – уровень высокого языка.
Классическая архитектура фон Неймана
В $1946$ году американские математики Джон фон Нейман, Герман Голдштейн и Артур Бёркс в совместной статье изложили новые принципы построения и функционирования ЭВМ. На основе этих принципов производилось $1$-е и $2$-е поколение компьютеров. В следующих поколениях происходили некоторые изменения, но принципы фон Неймана (как они были названы) сохранялись.
Основные принципы фон Неймана:
- Использование двоичной системы счисления в ПК, в которой устройствам гораздо проще выполнять арифметико-логические операции, чем в десятичной.
- Программное управление ПК. Работа ПК управляется программой, которая состоит из набора команд, выполняющихся последовательно одна за другой. Создание машины с хранимой в памяти программой положило начало программированию.
- Данные и программы хранятся в памяти ПК. Команды и данные кодируются одинаково в двоичной системе.
- Ячейки памяти ПК имеют последовательно пронумерованные адреса. Возможность обращения к любой ячейке памяти по ее адресу позволила использовать переменные в программировании.
- Возможность условного перехода при выполнении программы. Команды в ПК выполняются последовательно, но при необходимости можно реализовать переход к любой части кода.
Основным принципом было то, что программа уже стала не постоянной частью машины, а изменяемой, в отличие от аппаратуры, которая остается неизменной и очень простой.
Готовые работы на аналогичную тему
Фон Нейманом также была предложена структура ПК (рис. 1).
Рисунок 1. Структура ПК
В состав машины фон Неймана входили:
- запоминающее устройство (ЗУ);
- арифметико-логическое устройство (АЛУ), которое выполняло все арифметические и логические операции;
- устройство управления (УУ), которое координирует действия всех узлов машины в соответствии с программой;
- устройства ввода-вывода.
Программы и данные вводились в ЗУ из устройства ввода через АЛУ. Все команды программы записывались в ячейки памяти последовательно, а данные для обработки – в произвольные ячейки.
Команда состояла из указания операции, которую необходимо выполнить, и адресов ячеек памяти, в которых хранятся данные и над которыми необходимо выполнить нужную операцию, а также адреса ячейки, в которую необходимо записать результат (для хранения в ЗУ).
Из АЛУ результаты выводятся в ЗУ или устройство вывода. Принципиально эти устройства отличаются тем, что в ЗУ данные хранятся в удобном для обработки ПК виде, а на устройства вывода (монитор, принтер и т.п.) в удобном для человека.
От УУ на другие устройства поступают сигналы с командами, а от других устройств УУ получает информацию о результате их выполнения.
В УУ содержится специальный регистр (ячейка) – счетчик команд, в который записывается адрес первой команды программы. УУ считывает из памяти содержимое соответствующей ячейки памяти и помещает его в специальное устройство – регистр команд. УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.
После выполнения команды счетчик команд увеличивается на $1$ и указывает на следующую команду программы. При необходимости выполнения команды, которая не следует по порядку за текущей, специальная команда перехода содержит адрес ячейки, в которую нужно передать управление.
Конспект урока «Архитектура персонального компьютера»
На этом уроке мы с вами познакомимся с магистрально-модульным принципом построения компьютера, узнаем, что относится к основным логическим узлам компьютера, рассмотрим, какие устройства находятся на материнской плате, и многое другое.
Компьютер – это многофункциональное электронное устройство, предназначенное для накопления, обработки и передачи информации.
К основным логическим узлам компьютера относятся центральный процессор, основная память, внешняя память, периферийные устройства.
Персональные компьютеры начали появляться благодаря развитию микропроцессоров в 1980-х годах.
Архитектура персонального компьютера – это логическая организация, структура и ресурсы, то есть средства вычислительной системы, которые могут быть выделены процессу обработки данных на определённый интервал времени.
В основе архитектуры современных персональных компьютеров лежит магистрально-модульный принцип. Давайте рассмотрим рисунок.
Итак, перед вами изображена архитектура персонального компьютера. На ней изображены функциональные блоки персонального компьютера, к которым относятся устройства ввода/вывода, внешние запоминающие устройства, центральный процессор, память и видеопамять. Все эти блоки соединены между собой информационной магистралью, которая называется системной шиной. Она состоит из трёх частей: шина данных, шина адреса, шина управления. Шина данных используется для передачи данных к функциональным блокам. Шина адреса предназначена для передачи адресов устройств, которым передаются данные. И последняя, шина управления используется для передачи управляющих сигналов, которые синхронизируют работу разных устройств. То есть через шину передаются все данные от одного устройства к другому.
Также на рисунке у нас есть такие элементы, как контроллеры. Контроллеры – это периферийные устройства, которые управляют внешними устройствами. Передача всех данных осуществляется через шину.
Также мы можем видеть на рисунке сплошные и пунктирные стрелки. Сплошными стрелками изображены направления потоков информации, а пунктирными – направление управляющих сигналов.
В этой архитектуре существует такое значительное достоинство, как принцип открытой архитектуры. То есть мы можем подключать к компьютеру новые устройства или заменять старые на более современные. Для каждого типа и модели устройства используется свой контроллер.
Например, если мы подключим компьютерную мышь через USB-порт, то она определится у нас на компьютере только после установки в операционную систему специальной программы для управления этим устройством. Такие программы называются драйверами устройств.
Таким образом, можно сформулировать следующее определение: открытая архитектура персонального компьютера – это архитектура, предусматривающая модульное построение компьютера с возможностью добавления и замены отдельных устройств.
Это то, что касается принципов обмена информацией между устройствами.
Материнская плата – это сложная многослойная печатная плата, являющаяся основой построения вычислительной системы.
Изначально дополнительные устройства (например, внутренний модем, сетевой адаптер беспроводной связи Wi-fi, звуковая плата и так далее) подключались к материнской плате с помощью слотов расширения и разъёмов.
В наше время такая необходимость отпала, так как большинство дополнительных устройств уже встроены в современные материнские (системные) платы.
Основными (несъёмными) частями материнской платы являются разъём процессора, разъёмы оперативной памяти, микросхемы чипсета, загрузочное ПЗУ, контроллеры шин и их слоты расширения, контроллеры и интерфейсы периферийных устройств.
Важнейшей частью материнской платы является чипсет. Чипсет – это набор микросхем, который связывает память, процессор, видеоадаптер, устройства ввода/вывода и другие элементы персонального компьютера, для выполнения совместных функций.
В современных компьютерах находятся две основные большие микросхемы чипсета: контроллер-концентратор памяти (северный мост) и контроллер-концентратор ввода/вывода (южный мост).
Давайте рассмотрим схему архитектуры персонального компьютера.
Северный мост отвечает за работу процессора с оперативной памятью и видеосистемой. От его параметров (тип, частота, пропускная способность) зависят параметры подключённых к нему устройств: системной шины, оперативной памяти, видеоадаптера. Северный мост подключается напрямую к центральному процессору через системную шину.
Южный мост обеспечивает работу с внешними устройствами и обычно подключается к центральному процессору через северный мост при помощи внутренней шины.
Все устройства компьютера соединены между собой шинами различных видов.
Быстродействие процессора, оперативной памяти и периферийных устройств существенно различаются. Быстродействие устройства, в свою очередь, зависит от тактовой частоты обработки данных, которая обычно измеряется в мегагерцах, и разрядности. Разрядность – это количество битов данных, обрабатываемых за один такт. Такт – это промежуток времени между подачами электрических импульсов, которые синхронизируют работу устройств компьютера.
Пропускная способность шины – это скорость передачи данных между устройствами, которые она соединяет. А исходя из вышесказанного, можно сделать вывод, что скорость передачи данных различных шин будет также отличаться. Рассмотрим формулу для вычисления пропускной способности шины (измеряется в битах в секунду). Она равна произведению разрядности шины и частоты шины. Разрядность измеряется в битах, частота – в герцах, в свою очередь, 1 герц равен 1 такту в секунду.
Например, для быстрой работы компьютера пропускная способность шины оперативной памяти должна совпадать с пропускной способностью шины процессора.
Как говорилось ранее, Северный мост связан с процессором системной шиной. Например, если разрядность системной шины составляет 64 бита, а частота – 1066 МГц, то пропускная способность будет равна:
64 · 1066 = 68 224 Мбит/с ≈ 66,6 Гбит/с ≈ 8 Гбайт/с.
Перейдём к частоте процессора. Тактовая частота процессора показывает, сколько процессор может произвести вычислений в единицу времени. Из этого следует вывод, что чем больше частота, тем больше операций в единицу времени может выполнить процессор. Тактовая частота современных процессоров составляет от 1 до 4 ГГц. Рассмотрим формулу. Тактовая частота равна произведению внешней или базовой частоты на определённый коэффициент. Коэффициент зависит от характеристик процессора. Например, процессор Intel Core i7 920 использует частоту шины 133 МГц и множитель 20. Значит, тактовая частота будет равна:
133 · 20 = 2660 МГц.
Шина памяти соединяет оперативную память и северный мост, и, соответственно, служит для передачи данных между этими устройствами.
Частота шины памяти может быть больше частоты системной шины.
Следующая шина, которую мы рассмотрим, – PCI Express. Она соединяет видеоплату с северным мостом.
Так как в наше время очень быстро развивается компьютерная графика, то потребность в скорости передачи данных от видеоплаты к оперативной памяти и процессору возрастает. Наибольшее распространение получила шина PCI Express – это ускоренная шина взаимодействия периферийных устройств. Её пропускная способность может достигать до 32 гигабайт в секунду.
К самой же видеоплате с помощью аналогового разъёма VGA (графический адаптер) или цифрового разъёма DVI (цифровой видеоинтерфейс) подключается монитор или проектор.
Жёсткие диски, CD-дисководы, DVD-дисководы подключаются к южному мосту при помощи шины SATA – это последовательная шина подключения накопителей.
Скорость передачи данных по ней может достигать 300 Мбайт в секунду.
Для подключения периферийный устройств (принтера, клавиатуры, сканера и других), которые имеют USB-выход, к южному мосту используется шина USB – это универсальная последовательная шина.
Её пропускная способность достигает 60 Мегабайт в секунду. При помощи шины USB к компьютеру можно одновременно подключить до 127 периферийных устройств.
При увеличении производительности процессора происходит увеличение производительности самого компьютера.
Увеличение производительности процессора происходит за счёт увеличения частоты. Но, как говорится, всему есть свой предел. При увеличении частоты процессора происходит также увеличение тепловыделения, которое не может быть не ограниченным. Выделение процессором теплоты Q пропорционально потребляемой мощности P, которая, в свою очередь, пропорциональна квадрату частоты.
Поэтому для того, чтобы увеличить производительность процессора, начали увеличивать количество ядер процессора (арифметических логических устройств).
В 2005 году был создан первый двухъядерный микропроцессор. Это сделали практически одновременно две фирмы – Intel и AMD. Такая архитектура позволяет производить на персональном компьютере параллельную обработку данных, что существенно увеличивает его производительность. Можно сказать, что в архитектуре находятся 2 центральных процессора, работа которых согласована между собой, и они объединены между собой, например, контроллером. За счёт этого поток данных идёт не к одному центральному процессору, а разделяется на два. И увеличивается быстродействие компьютера.
В настоящее время количество ядер в микропроцессорах достигает 8.
А сейчас пришло время подвести итоги урока.
Сегодня мы с вами познакомились с магистрально-модульным принципом построения компьютера. Рассмотрели, какие устройства находятся на материнской плате. А также подробно ознакомились с архитектурой персонального компьютера.
Логические схемы
Логическая схема — это набор объединенных вентилей с входными и выходными сигналами. На рис 1.1 тоже изображена схема у которой входными сигналами являются A и B, выходной сигнал идет от операции ИЛИ; также у нее есть три вентиля: два И, один ИЛИ. Теперь давайте рассмотрим некоторые виды схем с которыми нам потребуется встречаться в дальнейшем, к ним относятся: комбинационные, арифметические, интегральные схемы.
Комбинационные схемы
Комбинационная схема — это схема с одним дополнительным свойством: значения выходных сигналов зависят только от входных, или другими словами, в ней нет никаких запоминающих устройств. Из этого вида схем создаются переиспользуемые компоненты, которые применяются для реализации большинства других схем, мы рассмотрим несколько, а именно: компаратор, декодер, мультиплексор/демультиплексор.
Компаратор имеет n входных парных линий (то есть 2n входов) и одну выходную линию. Логика его работы заключается в том, чтобы сравнить каждую пару битов (биты слова A сравниваются с соответствующими битами слова B) и при неравенстве хоть одной из них выдать 0 (если за ложь принят 0), иначе 1. Давайте построим таблицу истинности (табл. 1.1) для однобитного компаратора; можно заметить, что она равна таблице истинности ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ (когда к операции добавлен НЕ, то все выходные значения в таблице становятся противоположными). Теперь давайте расширим его до двухбитного компаратора, построим таблицу истинности (табл. 1.2) для него от двух переменных значения которых зависит от двух однобитных компаратора, то есть от двух ИСКЛЮЧАЮЩЕГО ИЛИ-НЕ; в ней значение 1 в CMP0 (и CMP1) значит, что два входа какото-то компаратора равны, 0 наоборот, то есть 1 в столбце R должна быть только, когда значения равны в двух компараторах. Эта таблица истинности совпадает с таблицей И, то есть мы объединяем все ИСКЛЮЧАЮЩЕГО ИЛИ-НЕ операцией И и у нас получится двухбитный компаратор (рис. 1.3а). Для дальнейшего расширение компаратора необходимо лишь добавить ИСКЛЮЧАЮЩЕЕ ИЛИ-НЕ и подсоединить его к И. Недостаток такой реализации заключается в ее избыточности, нам требуется добавлять вентили НЕ для каждого ИСКЛЮЧАЮЩЕГО ИЛИ; мы можем от этого избавится (рис. 1.3б), если заменим вентиль И с НЕ входами на ИЛИ-НЕ, так как их таблицы истинности совпадают.
Таблица. 1.1. Таблица истинности для однобитного компаратора.
A | B | CMP |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
CMP0 | CMP1 | R |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Рисунок 1.3. Две схемы двухбитных компараторов.
Декодер обладает n входными линиями, 2^n выходными, он реализован так, чтобы сигнал (истинна, 1) прошел только в одну выходную линию. Каждый выходной вентиль И получает свою комбинацию значений переменных, которые (значения) находятся в какой-то строке таблицы истинности, а как мы уже знаем, строку таблицы истинности можно реализовать как минтерму, то есть мы каждую строку представляем как вентиль И (рис. 1.4) от нескольких переменных. Основное применение декодера заключается в выборочном включении разных частей схемы (или схем), например, у АЛУ (о нем далее) имеется несколько операции, которые он может выполнять над входными значениями, чтобы их выбрать одну из них используется декодер.
Рисунок 1.4 Декодер.
Мультиплексор/демультиплексор
Мультиплексор обладает 2^n входными линиями, n линиями управления и одной выходной линией. Он в реализации в какой-то степени похож (рис 1.5) на декодер, если представить входы декодера как линии управления, дополнить каждый вентиль И дополнительным входным сигналом и объединить выходные значения всех И одним ИЛИ. Суть его работы заключается в том, чтобы на выход поступал сигнал только от одной из возможных входных линий. Мультиплексор применяется в разных целях, например, он может пригодиться для преобразования параллельного кода в последовательный. Допустим у нас есть параллельная (это значит, что линии работают одновременно) шина с несколькими линиями по которым параллельно передаются биты; чтобы считать нужное нам слово (обычно разрядность слова соответствует разрядности регистра в процессоре) мы соединяем линий шины с входами мультиплексора и последовательно включаем по одному входу, допустим сверху вниз, тем самым на выход у нас пойдет точная последовательность битов.
Демультиплексор является обратным мультиплексору, он имеет одну входную линию, n линий управления и 2^n выходных линий. Логика его работы точно такая же как и в мультиплексоре, только один входной сигнал идет в один из выходных. Может быть использован для преобразования последовательного кода в параллельный.
Рисунок 1.5. Мультиплексор.
Арифметические схема
Данный вид схем выполняет арифметические операции над входными сигналами. Основными схемами являются: логические функции, сумматор, схема сдвига, АЛУ (ALU, Arithmetic Logic Unit).
Полусумматор и полный сумматор
Полусумматор состоит из двух входных и двух выходных линий, Полусумматор является простой схемой (рис. 1.6) из двух вентилей: И и ИСКЛЮЧАЮЩЕЕ ИЛИ. Сам по себе полусумматор может складывать только одноразрядные значения, но зачем же тогда нам нужен полный сумматор? В основном мы хотим складывать значения с большей разрядностью, но только одним полусумматором мы удовлетворить это желание не может. Когда мы складываем два одноразрядных значения, то у нас может произойти переполнение (табл. 1.3 последняя строка истинности в столбике перенос). Это когда результат операции не помещается в той разрядности, которой обладают входные элементы (в данном случае 1). При сложении двух единиц получает двойка, которую нельзя сохранить в одном бите, поэтому необходимо перенести его, чтобы воспользоваться при дальнейших вычислениях, но так как в полусумматоре не предусмотрена возможность использования двух значений и переноса одновременно, то складывать значения с разрядностью более чем единицу не получится. Например, допустим мы складываем два 3-разрядных числа, 5 (101 в двоичной) и 7 (111 в двоичной), сложение двух чисел начинается с младших разрядов, на входы полусумматора направляются 1 и 1, на выходе суммы получаем 0 и на выходе переноса 1, вот здесь и возникает проблема, следующие значения, которые должны пойти в полусумматор, это 0 и 1 соответственно, но, что делать с переносом, ведь для него нет никакого свободного входа, а отбросить его нельзя, поэтому полусумматоры не могут напрямую использоваться для сложений.
У полного сумматора есть (рис. 1.7) три входных линии и две выходные линии. Входной перенос, как и выходной, используется для возможности объединения сумматоров в один с большей разрядностью. Сумматор состоит из двух полусумматоров, чтобы построить сумматор большей разрядности, необходимо только объединить сумматоры через входные и выходные переносы.
Рисунок 1.6. Схема полусумматор.
Таблица 1.3. Таблица истинности полусумматора.
A | B | Сумма | Перенос |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
Рисунок 1.7. Схема полного сумматора.
Таблица 1.4. Таблица истинности полного сумматора.
A | B | Вход перенос | Сумма | Выход перенос |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Схема сдвига
Сдвиг необходим для того, чтобы, например, выполнять умножение (сдвиг влево) и деление (сдвиг вправо), но только с числами, которые являются степенью двойки (1, 2, 4, 8 и тд). Схема сдвига (рис. 1.8) должна выполнять смещение на одну позицию влево или вправо в зависимости от бита направления. Бит направления (С) в зависимости от своего значения включает те или иные вентили И. Если он равен 0 (сдвиг влево), то сигнал который идет напрямую (то есть не проходит через НЕ) будет выключать вентиль который находятся выше в паре из двух вентилей И и один крайний вентиль И снизу. Сигнал, который проходит через НЕ, будет включать нижние вентиль в паре из двух вентилей И и один крайний вентиль И сверху. Это значит, что входные значения In будут выходить только из вентилей И выходные сигналы, которых направлены в нижнюю сторону; старший бит (I3) будет утерян, так как самый нижний вентиль И не пропустит входной сигнал дальше. Аналогичная ситуация происходит, когда бит направления равен 1 (сдвиг вправо), только теперь будут включены другие вентили И и сигнал уже будет направлен в противоположную (в данной реализации) сторону, и, следовательно, произойдет сдвиг вправо.
Рисунок 1.8. Схема сдвига.
Арифметико Логическое Устройство
АЛУ — это схема (рис. 1.9), которая содержит в себе множество арифметических схем, она предназначена для того, чтобы в одном месте хранить все операции необходимые для какой-либо цели. Реализация АЛУ разделяется на несколько частей (в данной реализации): распространение входных операндов, логические функции, сумматор и мультиплексор. Как мы помним декодер должен выполнять«включение» операций, но здесь я решил сделать мультиплексор, который подает на выход «Результат» значение, только одной из четырех операций; два нижних вентиля И в нем делят одну и ту же комбинацию при которой мультиплексор работает, это необходимо потому, что «Выход переноса» и «Сумма» сумматора являются частью одной операции, то есть оба этих входа должны работать только когда выбрано суммирование. Наш АЛУ предназначен для работы с одноразрядными значениями, но его можно почти без проблем изменить на большую разрядность. Входные линии INA и INB предназначены для включения/выключения A и B соответственно.
Рисунок 1.9. Схема АЛУ.
Интегральные схемы
Также известна как микросхема, это те же схемы показанные выше, только они помещены в корпус, который определяет, то где должны находится выводы для сигналов. Этот вид схем возник из-за того, что продавать отдельные схемы и вентили не очень целесообразно: по крайне мере из-за того, что нет стандарта, который бы говорил как, где и в каком кол-ве должны располагаться входные и выходные сигналы.
Есть куча разных видов корпусов, но мы рассмотрим наиболее известные:
- Dual Inline Package (DIP) представляет собой корпус (рис. 2.0а) у которого выводы (входные и выходные сигналы) расположены с двух сторон параллельных друг другу, кол-во выводов в данном корпусе варьируется в пределах от 14 до 68 (только четное кол-во). Данный корпус используется при небольших и/или дешевых схемах.
- Pin Grid Array (PGA) обладает выводами со всех четырех сторон (рис. 2.0б).
- Land Grid Array (LGA) обладает выводами в виде контактов по всей (зависит от стандарта) площадке (нижняя часть) корпуса. LGA (рис. 2.0в) обладает одним важным преимуществом перед другими корпусами: большое кол-во выводов, что особенно важно для таких микросхем как процессоры.