- •«Московский технический университет связи и информатики»
- •«Радио и телевидение»
- •Список исполнителей
- •Реферат содержание
- •Раздел 1: обобщённая структурная схема эвм. Принцип автоматической обработки информации в эвм 4
- •Раздел 2: центральный процессор и озу. Их классификация, архитектура, устройство 18
- •Введение раздел 1: обобщённая структурная схема эвм. Принцип автоматической обработки информации в эвм обобщенная структурная схема эвм
- •Эволюция эвм первое поколение
- •Второе поколение
- •Третье поколение
- •Четвёртое поколение
- •Принципы и архитектура фон неймана
- •Как работает машина фон неймана
- •Гарвардская архитектура
- •Сравнение гарвардской архитектуры и архитектуры фон неймана основы фон неймана и гарвордской архитектуры
- •Система памяти фон неймана и гарводской архитектуры
- •Принципы автоматической обработки информации в эвм
- •Раздел 2: центральный процессор и озу. Их классификация, архитектура, устройство классификация процессоров
- •Архитектура процессоров
- •Ядро процессора
- •Принцип работы ядра процессора
- •Конвейеризация
- •Суперскалярность
- •Эффективность выполнения команд
- •Озу и его типы
- •Динамическая оперативная память
- •Этапы модернизации динамической оперативной памяти
- •Статическая память
- •Устройство ячейки статической памяти
- •Устройство микросхемы статической памяти
- •Достоинства и недостатки статической памяти
- •Магниторезистивная оперативная память (mram)
- •Плотность размещения элементов в микросхеме
- •Энергопотребление
- •Быстродействие
- •Общее сравнение
- •Раздел 3: однопроцессорные и многопроцессорные системы. Классификация многопроцессорных систем однопроцессорные системы
- •Многопроцессорные системы
- •Классификация многопроцессорных систем классификация флинна
- •Классификация хокни
- •Классификация фенга
- •Классификация хэндлера
- •Классификация скилликорна
- •Раздел 4: основные характериситики эвм. Типы шин. Различия системных шин для цп intel и amd основные характеристики эвм
- •Шины эвм
- •Типы шин
- •Контроллеры внутри системной шины: чипсет
- •Северный мост
- •Южный мост
- •История развития системных шин первое поколение
- •Второе поколение
- •Третье поколение
- •Основные типы системных шин
- •Компоненты системной шины от компаний intel и amd
- •Раздел 5: внешние запоминающие устройства, предназначенные для долговременного хранения и транспортировки информации
- •Раздел 6: персональные эвм, их основные технические характеристики
- •Виды системных шин
- •Шина isa
- •Шина mca
- •Шина eisa
- •Шина vesa
- •Шина pci
- •Шина agp
- •Шина scsi
- •Шина usb
- •Интеллектуальные контроллеры
- •Контроллеры и адаптеры. Общий состав устройств
- •Порты эвм на примере персонального компьютера
- •Внешние порты персонального компьютера
- •Внутренние порты персонального компьютера
- •Категории устройств пэвм что такое пэвм и его краткая история
- •Категории пэвм
- •Заключение список источников
- •Москва 2022
Суперскалярность
Вычислительные операции могут быть скалярными и векторными. При выполнении инструкции скалярным процессором обрабатывается один или два операнда (скаляра). В векторных операциях в качестве операндов выступают упорядоченные массивы данных – векторы. В векторном процессоре, в отличие от обычного, который также может выполнять однотипные операции с множеством данных (инструкция SIMD – Single Instruction Multiple Date), все операции выполняются в одном блоке суммирования, который имеет конвейерную структуру. Скалярный процессор выполняет операции последовательно одна за другой. После выборки из памяти двух инструкций каждая помещается в один из конвейеров. Чтобы выполняться параллельно, инструкции не должны конфликтовать из-за ресурсов и ни одна из них не должна зависеть от результата выполнения другой. Как и в случае с одним конвейером, либо компилятор должен гарантировать отсутствие конфликтов при выполнении инструкций, либо это выявляется и устраняется дополнительным оборудованием непосредственно в ходе выполнения инструкции.
Дальнейшее увеличение конвейеров было весьма сложно и громоздко в технической реализации, поэтому был использован другой подход – один конвейер с большим количеством функциональных блоков – суперскалярная архитектура. Суперскалярный процессор реализует параллелизм на уровне инструкций, это обеспечивается за счёт включения в конвейер нескольких функциональных узлов. В 1987 году для обозначения данного подхода был введён термин «суперскалярная архитектура» [7].
Эффективность выполнения команд
В зависимости от типов обрабатываемых инструкций и способа их исполнения, процессоры подразделяются на несколько групп[8]:
На классические процессоры CISC;
На процессоры RISC с сокращенным набором команд;
На процессоры MISC c минимальным набором команд;
На процессоры VLIW с набором сверхдлинных команд.
Архитектура CISC. Первоначально почти все производители первых микропроцессоров использовали архитектуру с расширенным набором команд – CISC (Complex Instruction Set Computer). Причина этого в том, что разработчики пытались уменьшить так называемый семантический разрыв между тем, что компьютеры способны делать, и тем, что требуют языки программирования высокого уровня, пытаясь заменить одной инструкцией многочисленные машинные коды. Также в то время на рынке коммерческих вычислений доминировали мини-компьютеры PDP компании DEC и мейнфреймы компании IBM, которые были основаны на архитектуре CISC. Среди микропроцессоров типичными представителями данной архитектуры стали процессоры компании Intel. На начальном этапе развития микропроцессоров (семидесятые годы прошлого века) были и другие процессоры подобной архитектуры производства компаний Motorola, Zilog, MOS Technology и т.д. Но именно благодаря коммерческой привлекательности микропроцессоров Intel эта архитектура стала самой популярной на текущий момент и практически единственной для персональных компьютеров. Даже компания Apple в своих компьютерах Apple Macintosh в итоге перешла от процессоров PowerPC к процессорам Intel[7]. Первый процессор Intel, обозначивший начало эпохи микропроцессоров, – микросхема Intel 4004– появился в 1971 году. Это был первый коммерческий процессор, реализованный в одной микросхеме. Следует отметить, что сотрудники Intel не догадывались, какое грандиозное открытие они совершили. Эта микросхема вызвала большой интерес и значительный спрос. Компания Intel стала наращивать функциональность, разрядность и повышать частоту микропроцессора. В 1978 году был представлен 16-битный процессор Intel 8086, положивший начало архитектуре x86, или Intel x86[7]. Популярность микроархитектуры х86 была столь велика, что аналогичные процессоры стали выпускать другие производители. В 1985 году компания Intel выпустила первый 32-битный процессор Intel 386. Таким образом сформировалось понятие архитектуры Intel Architecture 32-bit (IA-32), она же Intel х86, или просто x86. В дальнейшем она стала 64-битной и получила название x86-64, или AMD64, так как впервые 64-битное расширение архитектуры х86 представила компания AMD. Нужно отметить, что Intel x86 не следует путать с Intel Architecture 64-bit (IA-64), которая является принципиально другой архитектурой VLIW. Итак, x86 – это типичный представитель CISC-архитектуры. Таким образом, в современной интерпретации, говоря CISC, подразумеваем х86, и наоборот[7].
Для архитектуры CISC характерно[7]:
Малое количество регистров общего назначения;
Большое количество различных машинных команд, каждая из которых выполняется за несколько тактов процессора;
Различные форматы команд с разной длиной;
Преобладание двухадресной системы команд;
Развитой механизм адресации операндов.
Основными плюсами данной архитектуры можно считать простоту и эффективность программирования (несколько команд могут быть заменены одной более сложной), а также большое историческое наследие в виде множества написанных для неё программ. Данная архитектура на текущий момент является основной для настольных и серверных систем[7].
RISC (Reduced Instruction Set Computer) – процессоры с сокращенным набором инструкций. В концепции RISC-процессоров предпочтение отдается коротким, простым и стандартизированным инструкциям. В результате, такие инструкции проще декодировать и выполнять, а, следовательно, устройство процессора становится так же проще, так как не требуется сложных блоков для выполнения нестандартных и многофункциональных инструкций. В результате, процессор становится дешевле, и появляется возможность дополнительно поднять его тактовую частоту, за счет упрощения внутренней структуры и уменьшения количества транзисторов, или снизить энергопотребление. Так же простые RISC-инструкции гораздо проще распараллеливать, чем CISC-инструкции, а, следовательно, появляется возможность больше загрузить конвейер, ввести дополнительные блоки обработки инструкций и т.д[12].
Процессоры, построенные по архитектуре RISC, обладают следующими основными особенностями[12]:
Фиксированная длина инструкций;
Небольшой набор стандартизированных инструкций;
Большое количество регистров общего назначения;
Отсутствие микрокода;
Меньшее энергопотребление, по сравнению с CISC-процессорами аналогичной производительности;
Более простое внутреннее устройство;
Меньшее количество транзисторов, по сравнению с CISC-процессорами аналогичной производительности;
Отсутствие сложных специализированных блоков в ядре процессора.
В результате, хотя RISC-процессоры и требуют выполнения большего количества инструкций для решения одной и той же задачи, по сравнению с CISС-процессорами, они, в общем случае, показывают более высокую производительность. Во-первых, выполнение одной RISC-инструкции занимает гораздо меньше времени, чем выполнение CISC-инструкции. Во-вторых, RISC-процессоры более широко используют возможности параллельной работы. В-третьих, RISC-процессоры могут иметь более высокую тактовую частоту, по сравнению с CISC-процессорами. Однако, несмотря на явное преимущество RISC, процессоры не получили столь серьезного распространения, как CISC. Правда, связано это в основном не с тем, что они по каким-то параметрам могли быть хуже CISC-процессоров. Они не хуже. Дело в том, что СISC-процессоры появились первыми, а программное обеспечение для CISC -процессоров – несовместимо с RISC-процессорами. В результате, экономически крайне невыгодно переписывать все программы, которые уже разработаны, отлажены и используются огромным количеством пользователей. Вот так и получилось, что теперь мы вынуждены использовать CISC-процессоры. Правда, как я уже говорил, разработчики нашли компромиссное решение данной проблемы, и уже очень давно в CISC-процессорах используют RISC-ядро и замену сложных команд на микропрограммы. Это позволило несколько сгладить ситуацию. Но все же RISC-процессоры по большинству параметров выигрывают даже у CISC-процессоров с RISC-ядром[12].
MISC (Minimal Instruction Set Computer) – дальнейшее развитие архитектуры RISС, является процессором с минимальным набором команд. Она отличается ещё большей простотой и используется для ещё большего снижения энергопотребления и итоговой стоимости процессора. MISC-архитектура применяется в IoT-сегменте и компьютерах малой стоимости вроде роутеров. Первой вариацией такого процессора стал MuP21. В основе MISC-процессоров лежит укладка ряда команд в единое большое слово, что позволяет параллельно обрабатывать несколько потоков данных. MISC применяет стековую модель устройства и базовые слова языка Forth. Процессоры этой архитектуры отличаются малым числом наиболее востребованных команд и использованием длинных командных слов, что позволяет получить выполнение ряда непротиворечивых команд за единый цикл работы процессора. Порядок исполнения команд определяется так, чтобы максимально загрузить маршруты, пропускающие потоки данных. Все вышеназванные архитектуры могут применять «спекулятивное исполнение команд», то есть исполнение команды заранее, когда ещё неизвестна её необходимость. Это позволяет увеличить производительность[8] [12].
VLIW (Very Long Instruction Word) – архитектура процессоров, использующая инструкции большой длины, содержащие сразу несколько операций, объединенных компилятором для параллельной обработки. В некоторых реализациях процессоров длина инструкций может достигать 128 или даже 256 бит. Архитектура VLIW является дальнейшим усовершенствованием архитектуры RISC и MISC с углубленным параллелизмом. Если в процессорах RISC организацией параллельной обработки данных занимался сам процессор, при этом, затрачивая часть ресурсов на анализ инструкций, выявление зависимостей и предсказание условных переходов (причем, зачастую, процессор мог ошибаться, например, в предсказании условных переходов, тем самым внося серьезные задержки в обработку инструкций, или просматривать код программы на недостаточную глубину для выявления независимых операций, которые могли бы выполняться параллельно), то в VLIW-процессорах задача оптимизации параллельной работы возлагалась на компилятор, который не был ограничен ни во времени, ни в ресурсах и мог проанализировать всю программу для составления оптимального для работы процессора кода. В результате, процессор VLIW выигрывал не только от упразднения накладных расходов на организацию параллельной обработки данных, но и получал прирост производительности, из-за более оптимальной организации параллельного выполнения инструкций. Кроме этого, упрощалась конструкция процессора, так как упрощались или вовсе упразднялись некоторые блоки, отвечающие за анализ зависимостей и организацию распараллеливания обработки инструкций, а это, в свою очередь, вело к снижению энергопотребления и себестоимости процессоров. Однако даже компилятору тяжело справляться с анализом кода и организацией его распараллеливания. Часто код программы был сильно взаимозависимый, и, в результате, в инструкции компилятору приходилось вставлять пустые команды. Из-за этого программы для VLIW-процессоров могли быть гораздо длиннее, чем аналогичные программы для традиционных архитектур[12].
Первые VLIW-процессоры появились в конце 1980-х годов и были разработаны компанией Cydrome. Так же к процессорам с этой архитектурой относятся процессоры TriMedia фирмы Philips, семейство DSP C6000 фирмы Texas Instruments, Эльбрус 2000 – процессор российского производства, разработанный компанией МЦСТ при участии студентов МФТИ и др. Поддержка длинных инструкций с явным параллелизмом есть и в процессорах семейства Itanium[12].
КЭШ-ПАМЯТЬ
Несмотря на все технологии и уловки разработчиков, производительность процессора все-таки напрямую зависит от скорости выборки команд и данных из памяти. И даже, если процессор имеет сбалансированный и продуманный конвейер, использует технологию Hyper-Threading и так далее, но не обеспечивает должную скорость выборки данных и команд из памяти, то, в результате, общая производительность ЭВМ не оправдает ваших ожиданий. Поэтому один из важнейших параметров устройства процессора – это КЭШ-память, призванная сократить время выборки команд и данных из основной оперативной памяти и выполняющая роль промежуточного буфера с быстрым доступом между процессором и основной оперативной памятью[12].
КЭШ-память строится на базе дорогой SRAM-памяти (Static Random Access Memory), обеспечивающей доступ к ячейкам памяти гораздо более быстрый, чем к ячейкам DRAM-памяти (Dynamic Random Access Memory), на базе которой построена оперативная память. К тому же SRAM-память не требует постоянной регенерации, что так же увеличивает ее быстродействие. Однако более подробно устройство SRAM, DRAM и других типов памяти рассмотрим далее, а сейчас более подробно рассмотрим принцип работы и устройства КЭШ-памяти[12].
КЭШ-память делится на несколько уровней. В современных процессорах, обычно, бывает три уровня, но может быть и больше. КЭШ-память более высокого уровня всегда больше по размеру и медленнее КЭШ-памяти более низкого уровня. Самая быстрая и самая маленькая КЭШ-память – это КЭШ-память первого уровня. Она обычно работает на частоте процессора, имеет объем несколько сотен килобайт и располагается в непосредственной близости от блоков выборки данных и команд. При этом она может быть единой (Принстонская архитектура) или разделяться на две части (Гарвардская архитектура): на память команд и память данных. В большинстве современных процессоров используют разделенную КЭШ-память первого уровня, так как это позволяет одновременно с выборкой команд осуществлять выборку данных, что крайне важно для работы конвейера. КЭШ-память второго уровня – более медленная (время доступа, в среднем, 8-20 тактов процессора), но зато имеет объем несколько мегабайт. КЭШ-память третьего уровня – еще медленнее, но имеет сравнительно большой объем. Встречаются процессоры с КЭШ-памятью третьего уровня больше 24 Мб. В многоядерных процессорах, обычно, последний уровень КЭШ-памяти делают общим для всех ядер. КЭШ-память более низкого уровня – обычно, индивидуальная для каждого ядра процессора[12].
Мы рассмотрели, как устроена КЭШ-память, давайте теперь разберемся, как она работает. Процессор считывает из основной оперативной памяти данные и заносит их в КЭШ-память всех уровней, замещая данные, к которым давно и наиболее редко обращались. В следующий раз, когда процессору понадобятся эти же данные, они будут считаны уже не из основной оперативной памяти, а из КЭШ-памяти первого уровня, что значительно быстрее. Если к этим данным процессор долго не будет обращаться, то они будут постепенно вытеснены из всех уровней КЭШ-памяти. Однако, чем больше уровней КЭШ-памяти, тем сложнее алгоритм замещения устаревших данных и тем больше времени тратится на согласования данных во всех уровнях КЭШ-памяти. В результате, выигрыш от скорости работы КЭШ-памяти быстро сходит на нет. К тому же SRAM-память – очень дорогая, и при больших объемах, а, как помните, каждый новый уровень КЭШ-памяти должен быть больше предыдущего, быстро снижается показатель цена-качество, что крайне негативно сказывается на конкурентоспособности процессора. Но, несмотря на такие трудности в работе с КЭШ-памятью, ее применение дает явный прирост скорости работы без существенного увеличения стоимости ЭВМ. И пока не будет придумана оперативная память, которая сможет по скорости соперничать с SRAM-памятью, а по цене – с DRAM-памятью, будет применяться иерархическая организация оперативной памяти с использованием нескольких уровней КЭШ-памяти[12].
