- •394026 Воронеж, Московский проспект, 14 Оглавление
- •1. Принципы организации электронных вычислительных машин 23
- •2. Функциональная организация 37
- •3. Структурная организация электронных вычислительных машин 111
- •4. Организация процессоров 157
- •5. Организация операционных устройств 206
- •6. Организация памяти электронных вычислительных машин 264
- •Введение
- •1.Принципы организации электронных вычислительных машин
- •1.1Основные факторы, определяющие принципы организации электронных вычислительных машин
- •1.2Состав устройств, структура и порядок функционирования электронных вычислительных машин
- •1.3Основные технические характеристики вычислительного комплекса
- •2.2Режимы работы электронных вычислительных машин (организация вычислительных процессов)
- •2.3Средства мультипрограммирования
- •2.4Организация системы прерываний
- •2.5Многоуровневая организация памяти электронных вычислительных машин
- •2.6Средства защиты основной оперативной памяти
- •2.7Защита информации в персональных электронных вычислительных машинах ibm pc
- •2.8Машинные элементы информации
- •2.9Представление данных в электронных вычислительных машинах
- •2.9.1Представление чисел
- •2.9.2 Представление текстовой информации и логических значений
- •2.10 Форматы команд и машинные операции
- •2.11 Способы адресации информации в памяти электронных вычислительных машин
- •2.12 Организация адресного пространства внешней памяти. Виртуальная организация памяти
- •2.13 Особенности архитектуры персональных электронных вычислительных машин типа ibm pc
- •3.Структурная организация электронных вычислительных машин
- •3.1Понятие структурной организации электронных вычислительных машин
- •3.2Классы устройств электронных вычислительных машин
- •3.3Магистрально-модульный принцип построения электронных вычислительных машин. Понятие интерфейса
- •3.4Типовые конфигурации (структуры) однопроцессорных вычислительных комплексов
- •3.5Структуры мультипроцессорных и мультимашинных вычислительных комплексов
- •3.5.1Многомашинные вычислительные комплексы
- •3.5.2Мультипроцессорные вычислительные комплексы
- •3.5.3Мультипроцессорный вычислительный комплекс с раздельной памятью
- •3.6Нейрокомпьютеры
- •4.Организация процессоров
- •4.1Цикл выполнения команд
- •4.2Конвейерная организация процессоров
- •4.3Особенности организации современных процессоров
- •4.4 Эволюция способов организации процессоров
- •5.Организация операционных устройств
- •5.1Принцип микропрограммного управления (функциональная организация операционных устройств)
- •5.2Средства описания функций операционных устройств
- •5.3Структурная организация операционных устройств
- •5.4Функция и структура операционного автомата
- •5.5Организация работы операционных устройств во времени
- •5.6Структурный базис операционного автомата
- •5.7Организация операционного автомата
- •5.8Понятие микропроцессора
- •5.9Организация управляющего автомата
- •5.9.1Организация управляющего автомата с программируемой логикой управления
- •5.9.2Укрупненная структура управляющего автомата с программируемой логикой
- •5.9.3Управляющие автоматы с жесткой логикой управления
- •5.9.4С равнение характеристик управляющих автоматов с программируемой и жесткой логикой
- •6.Организация памяти электронных вычислительных машин
- •6.1Основные понятия
- •6.2Организация и основные характеристики запоминающих устройств
- •6.3Классификация запоминающих устройств
- •6.4Организация памяти первого уровня
- •6.5Организация адресных (сверхоперативных) запоминающих устройств
- •6.6Запоминающие устройства с ассоциативной организацией
- •6.7Организация кэш–памяти на основе ассоциативного запоминающего устройства (кэш с ассоциативной организацией)
- •6.8Организация стековых (магазинных) запоминающих устройств
- •6.9Организация памяти второго уровня (основной оперативной памяти)
- •6.10Организация памяти третьего уровня (внешней памяти)
- •6.10.1Классификация и основные характеристики внешних запоминающих устройств
- •6.10.2Организация накопителей на магнитных дисках
- •6.10.3 Организация накопителей на магнитной ленте
- •6.10.4 Организация оптических дисков
- •Библиографический список
4.2Конвейерная организация процессоров
Двухуровневая схема управления – является основой для перехода к конвейерной организации. Наличие автономных устройств управления (Управляющих Автоматов) в различных ОУ: в АЛУ, контроллерах ПУ позволяет ЦУУ передавать им управление и переключаться на выполнение другой работы.
Впервые в ВТ конвейерную организацию предложил использовать Лебедев А.С. в 1956 году для сокращения длительности цикла выполнения команды – за счет совмещения во времени отдельных этапов выполнения команды - и реализовал этот принцип в ЭВМ типа М-20. В этой машине, точнее в ЦП, Лебедев С.А. цикл выполнения команд разделил на два этапа: 1) выборка команды и ее операндов; 2) выполнение операции в АЛУ (временная диаграмма – рисунок 4.4). Здесь :ВК- выборка команды, РК- реализация команды.
Рисунок 4.4 - Временная диаграмма работы конвейера
Как видно из ГСА цикла выполнения команд (рисунок 4.1) процесс выполнения АЛО (команды) состоит из следующих основных этапов (рисунок 4.5):
Выборка команды и дешифрация КО по группам операций (t1).
Формирование исполнительных адресов операндов (t2).
Выборка операндов (t3).
Реализация операции (t4).
Засылка результата (t5).
Сумма tц = t1+t2+…+t5 определяет время выполнения команды при последовательном (простейшем) способе организации работы ЦП.
При конвейерной организации каждому из пяти этапов ставится в соответствие блок, реализующий этап, и блоки соединяются в конвейерную цепочку (рисунок 4.6). Как только блок 1 освобождается, он может начать выборку следующей команды и т.д. Ясно, что каждый блок конвейера должен работать автономно, под управлением собственного УА (временная диаграмма на рисунке 4.7).
Рисунок 4.6 – Конвейерная цепочка блоков
Рисунок 4.7 – Временная диаграмма пятиступенчатого конвейера
При конвейерной организации время выполнения команды определяется выражением: tк=max(t1,t2,…,tN). Если все этапы равны t1=t2=…=tк, то время выполнения команды при конвейерной организации в пределе сокращается в N раз, где N - количество блоков конвейера, если не равны, то выигрыш меньше, чем в N раз. Начиная с пятого такта, с конвейера начинает сходить по одной команде в каждом такте (для N=5).
Как видно из временной диаграммы, в первом такте работает только один блок конвейера – первый, во втором такте - два блока и т. д. Начиная с пятого такта работы, с выхода конвейера начинает сходить по одной команде в каждом такте (для N=5). Старт конвейера занимает N-1 тактов (в нашем примере – 4 такта).
Конвейер позволяет как бы сократить количество тактов на выполнение команды: tком = nT, n - количество тактов, T - продолжительность такта.
Если конвейер работает в принудительном темпе с постоянным тактом Tк=tк, то такой конвейер называется синхронным: Tк=max{ti}.
Номинальная производительность синхронного конвейера Vк(ном)=1/Tк . Например, для N=5 она в 5 раз выше, чем для последовательной обработки.
Реальная производительность конвейера ниже номинальной (теоретической) из-за простоев отдельных блоков конвейера. Дело в том, что конвейер после старта работает с полной загрузкой всех N блоков только на линейных участках программы, т.е. до появления ближайшей команды перехода, по которой нарушается естественный порядок выполнения команд и конвейер фактически стартует заново. А на старте часть блоков простаивает – отсюда снижение реальной производительности конвейера.
Асинхронная организация конвейера. Очевидно, что если отрезки времени ti сильно отличаются друг от друга, то использование синхронного принципа организации работы конвейера становится неэффективным. В этом случае целесообразно использовать асинхронный принцип управления, при котором потери времени минимизируются. При асинхронной работе конвейера отсутствует единый для всех блоков такт работы. Вместо него используются сигналы занятости блоков и готовность данных для обработки в блоках. Запуск блока осуществляется при выполнении условий: 1) блок свободен от выполнения предыдущей работы, т.е. он ее выполнил и результат отправил в следующий блок; 2) на входе блока есть данные для обработки (от предыдущего блока).
Для равномерной работы асинхронного конвейера между блоками ставятся очереди данных-результатов (чтобы не ждать освобождения блока). Ясно, что такой конвейер фактически управляется не только потоком команд программы, но и потоком данных.
Расширение, обобщение асинхронного принципа до более общего случая приводит к формулировке идеи управления вычислительным процессом не потоком команд, а потоком данных, поступающих на вход машины. На основе этой идеи строятся т.н. процессно-потоковые ВМ. В них конвейер, на вход которого поступает не поток команд, а поток данных, имеет более сложную, разветвленную структуру. Поток команд не требуется, т.к. узлы конвейера специализированы на выполнение конкретных операций и для старта им необходимы только данные на входе. Связь узлов в структуре осуществляется путем программирования под конкретную задачу.
В
Рисунок 4.8 -
Структура конвейера Pentium
Здесь PF (Pre Fetch) – блок предварительной
выборки команд, D1 (Decode stage 1) ‑ первая стадия декодировая, D2 (Decode stage 2) ‑ вторая стадия декодирования, Е (Execute) – исполнение, WB (Write Buffer) ‑ буфер записи. На стадии исполнения (Е) следующие две команды анализируются на возможность их совместного (параллельного) выполнения: если возможно, то они запускаются в конвейеры U, V на исполнение (D2, Е, WB), если не возможно, то первая из двух команд запускается в конвейер U, а конвейер V простаивает.
Блок предварительной выборки команд PF обеспечивает выборку последовательности команд в буфер длиной 32В до появления команды ветвления, т.е. команды условного перехода. В этот момент запускается блок ВТВ (Branch Target Buffer ‑ целевой буфер ветвления), который предсказывает, будет ветвление или нет. Если переход не предсказывается, то продолжается линейная предвыборка команд. Если переход предсказывается, то с точки ветвления запускается предвыборка команд в другой буфер (рисунок 4.9).
Рисунок 4.9 – Организация ветвлений на основе блока ВТВ
Если предсказанный ВТВ переход не состоялся, то буфер 2 (или 4) очищается и предварительная выборка команд начинается заново, с другого адреса. Аналогичная схема предвыборки работает на конвейер V.
Блок WF – буфер записи результата – разрядность 64 бита, используется как буфер между АЛУ и ОП. Результаты из WF–буфера записываются в ОП, если произошел «промах» при записи в КЭШ‑данных.
Команды с плавающей запятой проходят по общему конвейеру до ступени Е, после чего отправляются в конвейер FPU, состоящий из блоков Х1, Х2, WF. Блок Х1 обеспечивает преобразование данных во внутренний формат, Х2 – выполнение операции с плавающей запятой, WF – округление результата и запись его в буферный регистр.
Особенности процессора Pentium (запущен в серию в марте 1993 г.).
Первую особенность мы уже рассмотрели – это двухконвейерная (суперскалярная) структура: U, V плюс FPU.
Вторая особенность – наличие блоков предсказания переходов, что повышает производительность конвейеров, т.к. процент промахов не высок ‑ порядка 20%.
Третья особенность – разделение КЭШ‑памяти на два автономных блока – КЭШ‑команд и КЭШ‑данных.
Четвертая особенность – внутренняя шина данных процессора – 64 разряда – обеспечивает одновременное обслуживание двух 32-разрядных конвейеров U, V.
Пятая особенность – внутренняя архитектура RISC. Совместимость с младшими моделями обеспечивается путем эмуляции системы команд CISC процессоров типа i8086 и др.