
Архитектура компьютера
Архитектура компьютера – это описание его организации и принципов функционирования его структурных элементов. Включает основные устройства ЭВМ и структуру связей между ними.
Классификация компьютеров
В зависимости от вида перерабатываемой информации вычислительные машины подразделяют на два основных класса:
Аналоговый компьютер – это вычислительная машина, оперирующая информацией, представленной в виде непрерывных изменений некоторых физических величин (силы тока электрической цепи, угла поворота вала, скорости и ускорения движения тела и т.п.)
Цифровой компьютер – это вычислительная машина, оперирующая информацией, представленной в дискретном виде.
По производительности вычислительные машины также можно разделить на несколько классов:
Суперкомпьютеры – это очень мощные системы вычислительные системы, которые используются для решения задач с большими объемами вычислений, например, изучение космоса, составление прогноза погоды и т. д. Высокая производительность обеспечивается использованием параллельной архитектуры вычислений, большого числа процессоров, сверхсильного охлаждения процессоров, а также высокоскоростных СБИС.
Мейнфреймы – вычислительные машины, имеющие высокую производительность, большой объем основной и внешней памяти, обладающие способностью параллельной обработки данных. Применяют для обслуживания очень крупных организаций, требующих обработки поступающих данных в режиме реального времени. Характеризуются повышенной устойчивостью за счёт дублирования процессоров, памяти, и пр., горячей заменой элементов, масштабированием.
Персональные компьютеры – наиболее распространённый класс вычислительных машин, включающий в себя домашние компьютеры, рабочие станции, сервера, мобильные устройства.
Встраиваемые компьютеры – специализированные микропроцессорные системы управления, являющиеся модулем какого-либо устройства.
Архитектура фон Неймана
Джон фон Нейман описал, каким должен быть компьютер, чтобы он был универсальным и удобным средством для обработки информации. Компьютеры, построенные на этих принципах, относят к типу фон-неймановских – на сегодняшний день это большая часть современных компьютеров, кроме систем параллельных вычислений.
В основу архитектуры фон Неймана положены следующие принципы:
Принцип программного управления обеспечивает автоматизацию процессов вычислений на ЭВМ. Программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
Принцип однородности памяти: программы и данные хранятся в одной и той же памяти. Над командами можно выполнять такие же действия, как и над данными, что позволяет программе в процессе своего выполнения подвергаться переработке. На этом принципе основаны методы трансляции – перевода текста программы с языка программирования высокого уровня на язык конкретной машины.
Принцип адресности: основная память состоит из перенумерованных ячеек. Процессору в произвольный момент времени доступна любая ячейка.
В архитектуре фон Неймана компьютер состоит из нескольких основных блоков:
Центральный процессор
Системная шина
Оперативная память
Постоянная память
Устройства ввода
Устройства вывода
Центральный процессор
Центральный процессор (central processing unit) – исполнитель машинных инструкций, отвечающий за выполнение арифметических операций, заданных программами операционной системы, и координирующий работу всех устройств компьютера.
Процессор состоит из нескольких блоков:
Арифметико-логическое устройство (АЛУ) выполняет основные математические и логические операции.
Блок управления отвечает за загрузку очередной команды, её декодирование, определение типа и выполнение.
Регистры – сверхбыстрые ячейки памяти, часть из которых служит для внутренних нужд процессора, в то время как другие доступны и программисту. Регистры делятся на несколько типов:
Регистры общего назначения служат для хранения промежуточных значений вычислений и для выполнения арифметических операций.
Специальные регистры используются для организации процесса выполнения программы:
Ip (Instruction Pointer) – регистр, указывающий на очередную команду для выполнения.
SP (Stack Pointer) – регистр, указывающий на вершину стека.
Регистр флагов – отражает текущее состояние процессора и результаты выполнения ряда команд (сравнение, перенос при арифметических операциях и т. д.)
Кэш-память – это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа. Кэш-память процессора разделена на несколько уровней: каждый следующий уровень обычно предоставляет больший объем памяти, но медленнее, чем предыдущий.
Интерфейсный блок согласует работу процессора и системной шины.
Конвейерная архитектура
Конвейерная архитектура позволяет повысить быстродействие процессора за счёт разбиения процесса выполнения команды на этапы и параллельного выполнения различных этапов.
Обычно для выполнения каждой команды требуется осуществить несколько однотипных операций:
получение и декодирование инструкции
адресация и выборка операнда из ОЗУ
выполнение арифметических операций
сохранение результата операции
После освобождения каждой ступени конвейера она сразу приступает к работе над следующей командой. Если предположить, что каждая ступень конвейера тратит единицу времени на свою работу, то выполнение команды на конвейере длиной в n ступеней займёт n единиц времени, однако в идеале результат выполнения каждой следующей команды будет получаться через каждую единицу времени.
Есть, однако, ряд факторов, которые снижают эффективность конвейера:
простой конвейера, когда некоторые ступени не используются (например, адресация и выборка операнда из ОЗУ не нужны, если команда работает с регистрами);
ожидание: если следующая команда использует результат предыдущей, то последняя не может начать выполняться до выполнения первой (это преодолевается при использовании внеочередного выполнения команд, out-of-order execution);
очистка конвейера при попадании в него команды перехода (эту проблему удаётся сгладить, используя предсказание переходов).
Набор команд
Процессоры, как правило, имеют следующий набор команд:
арифметические, например «сложения» и «вычитания»;
битовые, например «логическое и», «логическое или» и «логическое не»;
присваивание данных, например «переместить», «загрузить», «выгрузить»;
ввода-вывода, для обмена данными с внешними устройствами;
управляющие инструкции, например «переход», «условный переход», «вызов подпрограммы», «возврат из подпрограммы».
По сложности команд процессоры делятся на следующие категории:
CISC (Complex Instruction Set Computing – вычисления со сложным набором команд). Процессорная архитектура, основанная на усложнённом наборе команд.
RISC (Reduced Instruction Set Computing – вычисления с сокращённым набором команд). Архитектура процессоров, построенная на основе сокращённого набора команд. Характеризуется наличием команд фиксированной длины, большого количества регистров, операций типа регистр-регистр, а также отсутствием косвенной адресации.
MISC (Minimum Instruction Set Computing – вычисления с минимальным набором команд). Дальнейшее развитие архитектуры RISC, которая строится на стековой вычислительной модели с ограниченным числом (порядка 20-30) команд.
Процессоры Intel (начиная с Pentium Pro), являются CISC-процессорами с RISC-ядром. Они непосредственно перед исполнением преобразуют CISC-инструкции процессоров x86 в более простой набор внутренних инструкций RISC (до четырёх RISC-команд в большинстве случаев).