Память и архитектура процессора
Рефераты >> Программирование и компьютеры >> Память и архитектура процессора

Pentium Pro, появившись в 1995 году как наследник Pentium, был первым в шестом поколении процессоров и ввел несколько архитектурных особенностей, не встречавшихся ранее в мире PC. Pentium Pro стал первым массовым процессором, радикально изменившим способ выполнения инструкций переводом их в RISC-подобные микроинструкции и выполнением их в высокоразвитом внутреннем ядре. Он также замечателен значительно более производительным вторичным кэшем относительно всех прежних процессоров. Вместо использования базирующегося на системной плате кэша, работающего на скорости шины памяти, он использует интегрированный кэш второго уровня на своей собственной шине, работающей на полной частоте процессора, обычно в три раза быстрее кэша на Pentium-системах.

Следующий новый чип после Pentium Pro Intel представил спустя почти полтора года - появился Pentium II, давший очень большой эволюционный шаг от Pentium Pro. Это распалило спекуляции, что одна из основных целей Intel в производстве Pentium II был уход от трудностей в изготовлении дорогого интегрированного кэша второго уровня в Pentium Pro. Архитектурно Pentium II не очень отличается от Pentium Pro с подобным эмулирующим x86 ядром и большинством схожих особенностей.

Pentium II улучшил архитектуру Pentium Pro удвоением размера первичного кэша до 32kb, использованием специального кэша для увеличения эффективности 16-битной обработки, (Pentium Pro оптимизирован для 32-битных приложений, а с 16-битным кодом не обращается столь же хорошо) и увеличением размеров буферов записи. Однако о основной темой разговоров вокруг новых Pentium II была его компоновка. Интегрированный в Pentium Pro вторичный кэш, работающий на полной частоте процессора, был заменен в Pentium II на малую схему, содержащую процессор и 512kb вторичного кэша, работающего на половине частоты процессора. Собранные вместе, они заключены в специальный одностороний картридж (single-edge cartridge - SEC), предназначенный для вставления в 242-пиновый разъем (Socket 8) на нового стиля системных платах Pentium II.

Основная структура

Основные функциональные компоненты процессора

· Ядро: Сердце современного процессора - исполняющий модуль. Pentium имеет два параллельных целочисленных потока, позволяющих читать, интерпретировать, выполнять и отправлять две инструкции одновременно.

· Предсказатель ветвлений: Модуль предсказания ветвлений пытается угадать, какая последовательность будет выполняться каждый раз когда программа содержит условный переход, так чтобы устройства предварительной выборки и декодирования получали бы инструкции готовыми предварительно.

· Блок плавающей точки. Третий выполняющий модуль внутри Pentium, выполняющий нецелочисленные вычисления

· Первичный кэш: Pentium имеет два внутричиповых кэша по 8kb, по одному для данных и инструкций, которые намного быстрее большего внешнего вторичного кэша.

· Шинный интерфейс: принимает смесь кода и данных в CPU, разделяет их до готовности к использованию, и вновь соединяет, отправляя наружу.

Все элементы процессора синхронизируются с использованием частоты часов, которые определяют скорость выполнения операций. Самые первые процессоры работали на частоте 100kHz, сегодня рядовая частота процессора - 200MHz, иначе говоря, часики тикают 200 миллионов раз в секунду, а каждый тик влечет за собой выполнение многих действий. Счетчик Команд (PC) - внутренний указатель, содержащий адрес следующей выполняемой команды. Когда приходит время для ее исполнения, Управляющий Модуль помещает инструкцию из памяти в регистр инструкций (IR). В то же самое время Счетчик команд увеличивается, так чтобы указывать на последующую инструкцию, а процессор выполняет инструкцию в IR. Некоторые инструкции управляют самим Управляющим Модулем, так если инструкция гласит 'перейти на адрес 2749', величина 2749 записывается в Счетчик Команд, чтобы процессор выполнял эту инструкцию следующей.

Многие инструкции задействуют Арифметико-логическое Устройство (ALU), работающее совместно с Регистрами Общего Назначения - место для временного хранения, которое может загружать и выгружать данные из памяти. Типичной инструкцией ALU может служить добавление содержимого ячейки памяти к регистру общего назначения. ALU также устанавливает биты Регистра Состояний (Status register - SR) при выполнении инструкций для хранения информации о ее результате. Например, SR имеет биты, указывающие на нулевой результат, переполнение, перенос и так далее. Модуль Управления использует информацию в SR для выполнения условных операций, таких как 'перейти по адресу 7410 если выполнение предыдущей инструкции вызвало переполнение'.

Это почти все что касается самого общего рассказа о процессорах - почти любая операция может быть выполнена последовательностью простых инструкций, подобных описанным.

Архитектурное развитие

В соответствии с законом Мура (сформулированным в 1965 году Гордоном Муром (Gordon Moore), одним из создателей Intel), CPU удваивает свою мощность и возможности каждые 18-24 месяцев. В последние годы Intel настойчиво следовал этому закону, оставаясь лидером на рынке и выпуская более мощные чипы процессоров для PC, чем любая другая компания. В 1978 году 8086 работал на частоте 4.77MHz и содержал менее миллиона транзисторов, на конец 1995 года их Pentium Pro вмещал уже 21 миллион транзисторов и работал на 200MHz.

Законы физику ограничивают разработчиков в непосредственном увеличении частоты, и хотя частоты растут каждый год, только это не может дать того прироста производительности, что мы используем сегодня. Вот почему инженеры постоянно ищут способ заставить процессор выполнять больше работы за каждый тик. Одно развитие состоит в расширении шины данных и регистров. Даже 4-битные процессоры способны складывать 32-битные числа, правда выполнив массу инструкций, - 32-битные процессоры решают эту задачу в одну инструкцию. Большинство сегодняшних процессоров имеют 32-разрядную архитектуру, на повестке уже 64-разрядные.

В давние времена процессор мог обращаться только с целыми числами. Единственной возможностью было написание программ, использующих простые инструкции для обработки дробных чисел, но это было медленно. Фактически все процессоры сегодня имеют инструкции для непосредственного обращения с дробными числами.

Говоря, что 'нечто происходит с каждым тиком', мы недооцениваем как долго на самом деле происходит выполнение инструкции. Традиционно, это занимало пять тиков - один для загрузки инструкции, другой для ее декодирования, один для получения данных, один для выполнения и один для записи результата. В этом случае очевидно 100MHz процессор мог выполнить только 20 миллионов инструкций в секунду.

Большинство процессоров сегодня применяют поточную обработку (pipelining), которая больше похожа на фабричный конвейер. Одна стадия потока выделена под каждый шаг, необходимый для выполнения инструкции, и каждая стадия передает инструкцию следующей, когда она выполнила свою часть. Это значит, что в любой момент времени одна инструкция загружается, другая декодируется, доставляются данные для третьей, четвертая исполняется, и записывается результат для пятой. При текущей технологии одна инструкция за тик может быть достигнута.


Страница: