RISC-процессоры PowerPC. Журнал ChipNews, #10, 1999

И. Шагурин RISC-процессоры PowerPC

    RISC-архитектура широко используется во многих современных микропроцессорах и микроконтроллерах, выпускаемых различными компаниями. Первые RISC-процессоры, разработанные в Стенфордском и Калифорнийском университетах США в начале 80-х годов, выполняли относительно небольшой набор команд 50√100 вместо 100√200, выполняемых обычными CISC (Complex Instruction Set computer компьютер со сложным набором команд) процессорами. Эта особенность определила название данного класса процессоров RISC (Reduced Insruction Set Computer компьютер с сокращенным набором команд). Однако в последующих разработках RISC-процессоров набор команд значительно расширен, включая команды обработки чисел с плавающей точкой. В настоящее время определились следующие характерные особенности современных RISC-процессоров:
расширенный объем регистровой памяти: от 32 до нескольких сотен регистров общего назначения, входящих в состав микропроцессора; использование в командах обработки данных только регистровой адресации (обращение к памяти используется в командах загрузки и сохранения содержимого регистров, а также в командах управления программой); отказ от аппаратной реализации сложных способов адресации (с постинкрементом или предекрементом, косвенная адресация и др.); фиксированный формат команд (обычно 4 байт) вместо переменного формата (от 1 до 15 байт), характерного для CISC-процессоров; исключение из набора команд, реализующих редко используемые операции, а также команд, не вписывающихся в принятый формат.

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

    Перечисленные достоинства RISC-процессоров определили значительный интерес к этим изделиям. В настоящее время данный вид СБИС выпускают практически все ведущие производители микропроцессорной техники Motorola, Intel, Hewlett-Packard, IBM и другие, а также ряд компаний, специализирующихся в этой области: Sun Microsystems, MIPS.

    В последние годы широкую популярность получили RISC-процессоры и RISC-контроллеры семейства PowerPC. Начало созданию этого семейства было положено в октябре 1991 года, когда компании IBM, Motorola и Apple Computers объявили об организации консорциума для совместной разработки и внедрения RISC-микропроцессоров новой архитектуры. Их прототипом был выбран процессор Power, используемый в широко распространенной рабочей станции RS/6000, которая выпускалась компанией IBM. Для решения этой задачи были сделаны крупные инвестиции (около 1 миллиарда долларов) и построен новый центр проектирования в г. Остин (Техас), открытый в мае 1992 года. Штат центра составили 300 ведущих специалистов из компаний IBM и Motorola, в результате работы которых уже в октябре 1992 года были получены первые образцы 32-разрядных RISC-микропроцесоров типа PowerPC 601, а с апреля 1993 года начался их серийный выпуск. В ноябре 1993 года началось производство следующей модели PowerPC 603, предназначенной для использования в портативных компьютерах. В апреле 1994 года была выпущена более производительная модель PowerPC 604. В настоящее время серийно выпускаются модификации моделей PowerPC 603, 604 с тактовой частотой до 350 МГц. Разработана новая ветвь этого семейства PowerPC 7xx, выпуск которой начат в 1997 году. В ее состав входят модели MPC740,750 с тактовой частотой до 400 МГц.

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

    Все процессоры семейства PowerPC имеют суперскалярную структуру, которая содержит от 4 до 6 параллельно работающих исполнительных устройств, обеспечивающих одновременное выполнение нескольких команд. В данной статье описывается архитектура и функционирование процессоров PowerPC на примере наиболее производительной 32-разрядной модели MPC604e и дается обзор основных характеристик других моделей этого семейства.
Структура и функционирование процессоров PowerPC

    Процессор имеет суперскалярную структуру (рис. 1), которая содержит шесть параллельно работающих исполнительных устройств: блок предсказания ветвлений BPU, два устройства для выполнения простых целочисленных операций SIU1 и SIU2, одно устройство для выполнения сложных целочисленных операций MIU, устройство обработки чисел с плавающей точкой FPU и блок обращения к внешней памяти LSU. При этом обеспечивается одновременное выполнение четырех команд. Все операции обработки данных выполняются с регистровой адресацией. При этом для хранения целочисленных операндов используются тридцать два 32-разрядных регистра GPR0-31, а для хранения операндов с плавающей точкой тридцать два 64-разрядных регистра FPR0-31. Выборка данных из памяти производится только командами пересылки, которые выполняются блоком LSU и осуществляют загрузку данных в регистры GPR и FPR или запись их содержимого в память.

Рис. 1. Структура процессоров семейства PowerPC

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

    Конвейер выполнения команд имеет шесть основных каскадов: выборка команды (1) и ее дешифрация (2), распределение команд по исполнительным устройствам (3), выполнение команд (4), запись результатов в буфер (5) и обратная запись результатов в регистры SPR или FPR (6). Устройство управления одновременно выбирает из кэша и декодирует четыре команды, которые распределяются в соответствующие исполнительные устройства. Большинство команд выполняется за один такт. Эти команды реализуются с помощью SIU1 и SIU2, которые осуществляют сложение, вычитание, сравнение, сдвиги и логические операции. Выполнение ряда команд требует нескольких тактов. Например, целочисленное умножение осуществляется за 3√4 такта, деление за 20 тактов. Эти операции производятся MIU. Большинство операций с плавающей точкой (кроме деления) выполняется за 3 такта, поэтому во внутренней структуре FPU реализовано три исполнительных каскада. Блок завершения обеспечивает получение правильной по-следовательности результатов выполняемых операций. Он содержит буферную память типа очереди, в которую по мере поступления записываются результаты, получаемые от исполнительных устройств. Обратная запись результатов из буфера в регистры GPR и FPR производится в соответствии с порядком поступления команд, выбираемых устройством управления, то есть восстанавливается необходимая последовательность результатов.

    Блок обработки ветвлений BPU предсказывает направление ветвления программы при поступлении соответствующих команд. В процессорах семейства PowerPC реализуются два механизма предсказания: статическое, которое дается программистом и содержится в тексте выполняемой программы, и динамическое, которое выполняется BPU по результатам предыдущих ветвлений. Блок BPU использует для предсказания кэш-адресов ветвлений BTAC и таблицу истории ветвлений BHT. Кэш BTAC хранит 64 адреса ветвлений, выполнявшихся предыдущими командами. Если поступившая команда ветвления содержит адрес, совпадающий с одним из имеющихся в BTAC, то процессор предсказывает ветвление по этому адресу и выбирает команды из соответствующей ветви в конвейер (ветвление выполняется). Если адрес ветвления не содержится в BTAC, то выбирается следующая команда программы (ветвление отсутствует).

    При поступлении команд условных ветвлений BPU анализирует таблицу BHT, которая представляет собой кэш-память, где содержатся 512 адресов предыдущих условных ветвлений. Для каждого адреса в таблице имеются два бита, определяющие вероятность ветвления по данному адресу: "00" практически не выполняется, "01" выполняется редко, "10" выполняется часто, "11" выполняется очень часто. Значения этих битов меняются после каждой операции ветвления: если производится ветвление по данному адресу, то вероятность увеличивается на 1 (максимальное значение "11"), если данный адрес не использован, то вероятность уменьшается на 1 (минимальное значение "00"). Новые адреса вводятся в BHT вместо адресов с нулевой вероятностью. Ветвление по имеющемуся в таблице адресу предсказывается, если его вероятность больше "01". Правильность предсказания проверяется после определения соответствующих признаков в регистре условий CR. Если условия не выполняются (неправильное предсказание), то процессор освобождает конвейер от команд из неправильно выбранной ветви, и загружает новые команды из другой ветви. Таким образом, при неправильных предсказаниях требуется перезагрузка конвейера, что снижает производительность процессора.

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

    Процессор осуществляет раздельную выборку команд и данных с помощью двух устройств управления памятью IMMU и DMMU, которые могут выполнять сегментную, страничную и блочную адресацию. Внутренние кэши команд IC и данных DC имеют емкость по 16 Кбайт.

    Контроллер шины BIU обеспечивает интерфейс процессора с внешними устройствами. Системная шина передает 32-разрядный адрес A0-31 и 64-разрядные данные. Для каждого байта адреса и данных передаются и принимаются биты четности, с помощью которых осуществляется контроль ошибок при обращении к шине. Увеличенная разрядность шины данных позволяет быстрее производить загрузку строк кэш-памяти, которые содержат по 32 байта. При кэш-промахе производится пакетная передача данных, которая обеспечивает пересылку строки за 4 последовательных цикла. Контроллер BIU реализует выдачу и прием необходимых сигналов для управления обменом, выполнения прерываний, захвата шин, снупинга (обращения внешнего устройства к внутреннему кэшу данных), установки начального состояния (Reset).

    Процессор содержит специализированный последовательный тест-порт TAP для выполнения тестирования по стандарту JTAG (IEEE 1149.1).

    Для питания процессора используется напряжение 3,3 В для схем ввода/вывода, принимающих и выдающих внешние сигналы, и 2,5 В для схем внутренней структуры. При тактовой частоте Ft = 350 МГц типовое значение потребляемой мощности для процессора MPC604e составляет 8 Вт. Пониженное энергопотребление (400 МВт) обеспечивается при останове процессора, который осуществляется программно путем установки в регистре MSR значения бита POW=1. В этом случае прекраща-ется выполнение команд, продолжают работать только базовый таймер TB, регистр декремента DEC и блок обслуживания запросов прерывания. Процессор устанавливает выходной сигнал HALTED=1, информируя о своем останове внешние устройства. Выход из этого состояния происходит при запросе периодического прерывания от регистра DEC, при поступлении внешних сигналов прерывания INT#, MCP#, SMI# или начальной установки RESET#.

    В процессорах PowerPC реализован принцип выделения отдельных ресурсов для решения задач пользователя и супервизора (операционной системы). В соответствии с этим принципом архитектура PowerPC содержит регистры, входящие в модели пользователя или супервизора, а также имеет ряд привилегированных команд, выполняемых только в режиме супервизора.

Рис. 2. Регистровая модель пользователя процессоров PowerPC

    В регистровую модель пользователя (рис. 2), которая является общей для всего семейства PowerPC, входят:
тридцать два 32-разрядных регистра общего назначения GPR31-0 для хранения целочисленных операндов; тридцать два 64-разрядных регистра FPR31-0 для хранения операндов с плавающей точкой; 32-разрядные регистры условий (признаков) CR и состояния при обработке чисел с плавающей точкой FPSR; 32-разрядные регистры XER, LR, CTR, используемые при обработке исключений.

    Эта регистровая модель не содержит программного счетчика PC и указателя стека SP. Отсутствие в модели PC связано с тем, что процессоры PowerPC не выполняют команд записи или чтения программного счетчика. Эти процессоры не выполняют также операций со стеком (в случае необходимости стек реализуется программно), поэтому не содержат SP.

Рис. 3. Форматы содержимого регистров CR, XER, FPSCR

    Регистр условий CR (рис. 3а) состоит из восьми 4-бит полей CR7-0. Младшее поле CR0 содержит признаки, формируемые при выполнении целочисленных операций:
LT = 1 при отрицательном результате; GT = 1 при положительном ненулевом результате; EQ = 1 при нулевом результате; SO принимает значение аналогичного бита, устанавливаемое в регистре XER.

    Поле CR1 содержит признаки FX, FEX, VX, OX, устанавливаемые при операциях над числами с плавающей точкой, которые принимают значения аналогичных битов в регистре FPSCR (рис. 3б). Содержимое остальных полей CR7-2 устанавливается по результату операций сравнения целых или вещественных (с плавающей точкой) чисел. При сравнении целых чисел формируются признаки LT (меньше), GT (больше), EQ (равно) и SO, назначение которых указано выше. При сравнении вещественных чисел устанавливаются аналогичные признаки FL (меньше), FG (больше), FE (равно), а также признак FU, принимающий значение FU = 1, если хотя бы один из сравниваемых операндов является Не-числом (NAN). Наличие различных полей для признаков позволяет сохранять несколько результатов сравнения, используемых по мере необходимости.

    Следует отметить, что в процессорах PowerPC принята нумерация разрядов, начиная со старшего. При этом биты A0 и D0 содержат старшие разряды, а биты A31 и D31 младшие разряды 32-разрядного слова адреса или данных. Соответственно, и содержимое регистров микропроцессора представляется в формате, начальный бит которого имеет номер "0".

    Регистр XER (рис. 3б) содержит признаки переноса CA, переполнения OV, устанавливаемые в результате выполнения арифметических целочисленных операций и признак общего переполнения SO, который сохраняет установленное при переполнении значение SO=1 до выполнения команд загрузки в регистр нового содержимого. Значение SO переносится в соответствующие биты регистра CR после каждой операции. Таким образом, признак SO=1 указывает на возникновение переполнения в ранее выполненных командах программы. Поле SS определяет число байтов (длину строк символов), пересылаемых соответствующими командами пересылки строк (см. следующий раздел).

    Регистр связи LR служит для хранения адреса команды, к которой осуществляется условный или безусловный переход. При вызове подпрограммы в этот же регистр заносится адрес команды возврата. В регистр-счетчик CTR заносится число циклов, которое используется для организации программных циклов. При этом содержимое CTR уменьшается на 1 после завершения очередного цикла. Имеются также специальные команды условного ветвления, использующие содержимое CTR в качестве адреса перехода. Регистр FPSCR определяет состояние и режим работы блока обработки чисел с плавающей точкой. Отдельные биты его содержимого (рис. 3в) имеют следующее функциональное назначение:
FX признак общего исключения FPU, принимает значение FX=1, если в регистре FPSCR установлен в "1" какой-либо из признаков исключения VX, OX, UX, ZX, XX; FEX признак разрешенного общего исключения FPU, принимает значение FEX=1, если хотя бы один из установленных признаков исключения разрешен для обслуживания битами VE, OE, UE, ZE, XE; VX общий признак исключения при выполнении неправильной операции FPU, принимает значение VX=1, если в FPSCR установлен в "1" какой-либо из признаков неправильной операции (эти признаки отмечены начальными символами VX); OX признак переполнения принимает значение OX=1, если результат превышает максимальную допустимую величину max; UX признак антипереполнения принимает значение UX=1, если результат меньше минимальной допустимой величины min; ZX признак деления на 0 принимает значение ZX=1 при нулевом делителе; XX признак неточного результата принимает значение XX=1, если произошла потеря точности при округлении (XX копирует признак FI); VXSNAN, VXISI, VXIDI, VXZDZ, VXIMZ, VXVC, VXSOFT, VXSQRT, VXCVI признаки неправильной операции FPU при использовании в качестве операнда Нечисла (VXSNAN=1), при вычитании или делении бесконечностей (VXISI=1 или VXIDI=1), при делении нуля на нуль (VXZDZ=1) или умножении нуля на бесконечность (VXIMZ=1), при программном вызове исключения неправильного кода команды (установка VXSOFT=1 с помощью специальных команд), попытке извлечения квадратного корня из отрицательного числа (VXSQRT=1) или неопределенном результате сравнения (VXCVI=1); FR признак округления принимает значение FR=1, если при выполнении команды производится округление результата; FI признак потери точности принимает значение FI=1, если округление вызывает потерю точности (признак FI копируется в XX); FPRF или FPCC поле, определяющее результат выполняемых FPU арифметических операций, округления или сравнения; VE, OE, UE, ZE, XE биты разрешения обслуживания исключений при выполнении неправильной операции (VE=1), переполнении (OE=1), антипереполнении (UE=1), делении на нуль (ZE=1), неточном результате (XE=1); NI переводит FPU при NI=1 в режим выполнения некоторых операций, не предусмотренных стандартом IEEE 754; RN определяет вид выполняемого округления: к ближайшему числу (RN=00), к нулю (RN=01), к "+бесконечность" (RN=10) или к "-бесконечность" (RN=11).

    При выполнении команд FPU, вызывающих изменение содержимого регистра условий CR, содержимое четырех младших разрядов FPSCR (признаки FX, FEX, VX, OX) копируется в поле CR1 регистра CR (рис. 3а).

    Признаки FX, OX, UX, ZX, XX, VXSNAN, VXISI, VXIDI, VXZDZ, VXIMZ, VXVC, VXSOFT, VXSQRT, VXCVI сохраняют установленное значение "1", пока оно не будет изменено с помощью специальных команд. Таким образом, эти признаки хранят информацию о причинах возникших исключений, которая в дальнейшем может быть использована подпрограммой их обслуживания.

    Значения битов 15√19 в регистре FPSCR (поле FPRF или FPCC) зависят от типа выполняемой команды. При арифметических операциях и операциях округления значения битов FPRF устанавливаются в соответствии с полученным результатом. При выполнении команд сравнения биты 16√19 (поле FPCC) принимают такие же значения, как признаки FL (меньше), FG (больше), FE (равно), FU (не сравнимо) в поле CRi регистра условий CR, номер которого i задается в команде.

    Регистровая модель супервизора (рис. 4) включает в себя регистровую модель пользователя, а также содержит несколько групп служебных регистров, часть из которых являются общими для всего семейства PowerPC, а часть специфичными для модели PowerPC 604e.

Рис. 4. Регистровая модель супервизора микропроцессора MPC604

    В группе регистров конфигурации основным является регистр управления MSR, определяющий режим функционирования процессора. Биты его содержимого имеют следующее назначение (рис. 5):
POW переводит при значении POW=1 процессор в режим отключения с пониженным потреблением мощности; ILE определяет порядок адресации байтов в слове при обработке исключений: начиная со старшего байта (big-endian) при ILE=0, начиная с младшего байта (little-endian) при ILE=1; EE разрешает при EE=1 обслуживание внешних запросов прерывания и периодических прерываний от регистра декремента DEC; PR задает режим работы процессора: при PR=0 режим супервизора, при PR=1 пользователя; FP разрешает при FP=1 выполнение операций над числами с плавающей точкой; ME, SE, BE разрешают обслуживание внешнего запроса прерывания MCP# (при ME=1), выполнение пошаговой трассировки (при SE=1) и трассировки после команд переходов (при BE=1); FE0, FE1 запрещают при FE0=FE1=0 обслуживание исключений при обработке чисел с плавающей точкой, при других значениях FE0, FE1 обеспечивают различные варианты их обслуживания; EP определяет базовый адрес размещения векторов исключений: $00000000 при EP=0, $FFF00000 при EP=1; IT, DT разрешают трансляцию адресов команд (при IT=1) и данных (при DT=1) с помощью устройств управления памятью IMMU, DMMU; PM задает режим процессора, при котором осуществляется контроль эффективности его работы; RE обеспечивает при RE=1 возврат к выполнению прерванной программы после повторного запуска (RESET) или обслуживания внешнего запроса прерывания MCP#; LE определяет порядок адресации байтов в слове: начиная со старшего байта (big-endian) при LE=0 или начиная с младшего разряда (little-endian); при переходе к обслуживанию исключений LE принимает значение ELE.

    Регистр HID0 содержит биты Hi, определяющие функ-ционирование отдельных устройств процессора: разрешают или запрещают обслуживание некоторых видов прерываний, задают режим функционирования внутренней кэш-памяти, управляют работой блока предсказания ветвлений, задавая статический или динамический способ предсказания дальнейшего хода программы, запрещают параллельную работу исполнительных устройств в суперскалярной структуре процессора, обеспечивая последовательное выполнение поступающих команд.

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

    Отдельная группа регистров используется в процессе обслуживания исключений. В эту группу входят регистры: DAR, хранящий адрес операнда, выборка которого вызвала исключение; DSISR, содержащий код команды, вызвавшей исключение; SRR0, SRR1, в которые заносятся адрес следующей команды и текущее содержимое регистра MSR для возврата к основной программе после обслуживания исключения. Процессор имеет также четыре регистра SPRG0-3, которые служат для хранения адресов, используемых подпрограммой обработки исключения.

    К группе вспомогательных регистров относятся регистры декремента DEC, базового времени TB, адресов останова в контрольной точке IABR, DABR, идентификации PIR, а также регистр EAR, используемый для обращения к внешним устройствам с помощью специальных команд. Регистр DEC работает как вычитающий счетчик с частотой, равной 1/4 тактовой частоты Ft. Когда его содержимое становится равным 0, формируется запрос исключения. Таким образом, можно использовать этот регистр для реализации периодических прерываний. Регистр PIR содержит 4-разрядный код, определяющий номер процессора в мультипроцессорных системах. Таймер базового времени TB представляет собой 64-разрядный счетчик, переключающийся с частотой Ft. Его содержимое может записываться и считываться в режиме супервизора, а в режиме пользователя регистр доступен только для чтения. Регистр IABR содержит адрес команды, а регистр DABR адрес операнда, при обращении к которым реализуется останов в контрольной точке.

    В состав модели супервизора входят также регистры, которые используются для контроля эффективности работы процессора. В зависимости от значения битов PM, PR в MSR и содержимого регистра управления MMCR0, в регистры PMC1, PMC2 при работе процессора заносятся такие показатели, как число выполненных циклов, число команд, завершившихся в данном цикле, общее количество выполненных ветвлений, количество неправильно предсказанных ветвлений, число кэш-промахов и другие параметры. Общее число контролируемых параметров составляет 46. Эти данные позволяют программисту оценить эффективность программного обеспечения и оптимизировать его в процессе отладки.

    Процессор обеспечивает обслуживание прерываний и исключений, виды которых указаны в табл. 1. При возникновении исключений их вектора (начальные адреса подпрограмм обслуживания) выбираются из таблицы, базовый адрес которой определяется значением бита EP в регистре MSR (рис. 5). Относительные адреса соответствующих векторов приведены в табл. 1. Отдельные виды исключений маскируются путем установки в 0 битов EE, SE, BE, ME в регистре MSR. При реализации большинства исключений в регистр SRR0 заносится адрес следующей команды программы, обеспечивающий возврат к ее выполнению после обслуживания исключения, а в регистр SRR1 текущее содержимое MSR. По-сле выполнения подпрограммы обслуживания команда возврата из исключения производит восстановление содержимого программного счетчика и регистра состояния MSR из SRR0, SRR1.
Таблица 1. Виды и относительные адреса векторов исключений Адрес вектора Av Вид исключения 00100h "Системный сброс" - установка в начальное состояние при поступлении внешних сигналов сброса SRESET#=0 или HRESET#=0 00200h "Контроль процессора" - поступление сигналов ошибки пересылки TEA#=0 или контроля процессора MCP#=0 (реализуется, если в MSR бит МЕ=1) 00300h "Ошибка выбора данных" - ошибка при трансляции выбора данных; нарушение защиты при выборе данных; выборка операнда, адрес которого содержится в регистре DABR 00400h "Ошибка выбора команды" - ошибка при трансляции адреса команды; нарушение защиты при выборе команды 00500h "Внешнее прерывание" - поступление внешнего сигнала INT#=0 (разрешено, если в MSR бит ЕЕ=1) 00600h "Нарушение выравнивания" - обращение к памяти по адресу, не кратному четырем 00700h "Программное исключение" - неправильный код команды; нарушение защиты; программное прерывание; прерывания при обработке чисел с плавающей точкой 00900h "Периодическое прерывание" - изменение содержимого регистра декремента DEC с 00...0 не 11...1 (разрешено, если если в MSR бит ЕЕ=1) 00C00h "Системный вызов" - вызов подпрограммы обслуживания при поступлении команды системного вызова SC 00D00h "Исключение трассировки" - пошаговый режим с остановкой после каждой команды (если в MSR бит SE=1) или после команд ветвлений (если в MSR бит ВЕ=1) 00F00h "Исключение контроля эффективности" - переполнение регистров контроля эффективности PMC1 или PMC2 01300h "Прерывание в контрольной точке" - выборка команды, адрес которой совпадает с содержимым регистра IABR 0140h "Сиситемное прерывание" - поступление сигнала SMI#=0 (если в MSR бит ЕЕ=1)

    При исключениях типа "системный сброс", "контроль процессора" в регистре SRR0 сохраняется ранее записанное содержимое. Поэтому после их обслуживания можно обеспечить переход к заданной команде, адрес которой предварительно заносится в SRR0. В регистре SRR1 при исключении "контроль процессора" отдельные биты указывают на поступление сигналов TEA#=0, MCP#=0, нарушение четности при выборке команд или данных. Анализ содержимого SRR1 позволяет определить причину исключения. Если исключение "контроль процессора" замаскировано (в регистре MSR бит ME=0), то процессор останавливает свою работу, выдавая внешний сигнал контрольной остановки. При исключениях типа "ошибка выбора данных", "нарушение выравнивания" в регистр DAR заносится код выполнявшейся команды, а в регистр DSISR адрес операнда, выборка которого вызвала исключение.

    Процессор имеет отдельные устройства управления памятью IMMU, DMMU и внутренние кэши для команд IC и данных DC (рис. 1). Емкость каждого кэша составляет 32 Кбайт. Устройства управления IMMU, DMMU обеспечивают блочную, сегментную и страничную организацию памяти.

    Оба кэша организованы в виде группы из 256 наборов, каждый из которых содержит четыре 32-байт строки. В качестве тега используются 19 старших разрядов адреса. Cледующие 8 разрядов адреса определяют номер набора строк, в котором должны размещаться выбираемые данные или команда. Младшие 5 разрядов адресуют расположенные в строке байт, полуслово или слово. При кэш-промахе в выбранном наборе производится замещение пустой (недостоверной) строки или строки, к которой дольше всего не производилось обращение (метод замещения LRU least-recently used). Каждая строка в кэше содержит 19-разрядный тег, восемь 32-разрядных слов (данные или команды) и биты, идентифицирующие текущее состояние строки.

    Для строк кэша команд IC возможны два состояния: V (valid) достоверное или I (invalid) недостоверное содержимое строки. Недостоверное (незаполненное) состояние строк этого кэша устанавливается при сбросе процессора в начальное состояние (reset) путем загрузки соответствующего содержимого в регистр конфигурации HID0 или c помощью команды аннулирования содержимого строки. При заполнении строки устанавливается достоверное состояние ее содержимого.

    Для кэша данных DC введено четыре возможных состояния строки, идентификация которых обеспечивает возможность совместного использования нескольких кэшей в мультипроцессорной системе:
M (modified) содержимое строки модифицировано путем записи по соответствующему адресу, и новое содержимое не переписано в ОЗУ; E (exclusive) содержимое строки хранится только в этом кэше и ОЗУ; S (shared) содержимое строки хранится в данном кэше, ОЗУ и каком-либо другом устройстве (кэше); I (invalid) недостоверное (аннулированное) содержимое строки.

    Для идентификации состояния строки служат соответствующие биты состояния. Для каждого состояния установлен определенный протокол обращения к содержимому строки. При этом реализуется снупинг возможность обращения к содержимому кэша данных со стороны другого устройства (процессора в мультипроцессорной системе). Установленный протокол обращения (MESI-протокол) с применением снупинга обеспечивает соответствие данных, хранящихся в различных кэшах мультипроцессорной системы, что позволяет избежать ошибок из-за использования каким-либо из процессоров старых данных, которые были модифицированы другим процессором.

    Обращение к кэшу команд IC производится устройством управления процессора (рис. 1), которое одновременно выбирает из строки четыре команды (16 байт). Обращение к кэшу данных выполняется блоком LSU, который одновременно выбирает два слова (8 байт). Оба кэша подключены к общей шине через блок интерфейса BIU, который обеспечивает пересылку двух слов (8 байт) в одном цикле. Пересылка содержимого кэшей в ОЗУ или в обратном направлении выполняется с помощью пакетного обмена, при котором реализуется четыре последовательных цикла для передачи содержимого строки (32 байт).

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

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

    Изменение содержимого отдельных строк кэша IC или DC осуществляется с помощью специальных команд, которые выбирают строку кэша, в которой размещаются команды или данные с заданным адресом. При выполнении операций со строками кэша данных учитывается их состояние M, E, S или I.

    Например, одна из этих команд аннулирует содержимое выбранной строки кэша данных, устанавливая для нее состояние I. Если перед этим строка имела состояние M, то предварительно ее содержимое переписывается в ОЗУ. Другая команда выполняет запись в память содержимого выбранной строки кэша данных, если она имеет состояние M.

    Полная очистка (аннулирование содержимого всех строк) кэшей команд или данных реализуется путем записи соответствующего содержимого в регистр HID0, которая производится с помощью команды, выполняемой в режиме супервизора.

    Устройства управления памятью IMMU, DMMU осуществляют трансляцию адреса при выборке команд и данных, обеспечивая возможность блочной, сегментной и страничной организации памяти. Работа IMMU, DMMU обеспечивается с помощью 8 пар регистров IBAT, DBAT, 16-сегментных регистров SR15-0 и регистра SDR1, обращение к которым выполняется только в режиме супервизора. Если в регистре управления MSR (рис. 5) биты IT, DT имеют значение "0", то трансляция адреса не выполняется (IMMU, DMMU отключены), и сформированный процессором эффективный адрес поступает на выводы A0-31 в качестве физического адреса ячейки памяти или внешнего устройства. Включение IMMU, DMMU производится путем записи в регистр MSR содержимого, в котором соответствующий бит IT, DT имеет значение "1". В этом случае сформированный адрес команды или данных воспринимается как логический адрес, который с помощью IMMU или DMMU транслируется в физический адрес, поступающий на внешние адресные выводы. При этом IMMU, DMMU реализуют следующие варианты адресной трансляции.

    Блочная трансляция обеспечивает обращение к блокам внешней памяти заданного объема от 128 Кбайт до 256 Мбайт. Возможна организация четырех блоков для хранения команд и четырех для хранения данных. Параметры каждого блока задаются дескриптором, который содержится в паре регистров IBATiU-IBATiL для команд, DBATiU-DBATiL для данных, где i = 0...3 номер блока.

    Сегментная и страничная трансляция обеспечивают обращение к сегментам памяти емкостью 256 Мбайт, которые разбиваются на страницы объемом по 4 Кбайт, размещаемые в ОЗУ. Для обращения к сегментам используются 16 сегментных регистров SR15-0, которые содержат дескрипторы сегментов. Размещение в памяти отдельных страниц и их параметров определяются специальной таблицей дескрипторов, хранящейся в ОЗУ. При трансляции IMMU или DMMU производят обращение к таблице дескрипторов страниц для формирования необходимого физического адреса. Чтобы сократить потери времени, связанные с выполнением обращения к этой таблице, в составе IMMU и DMMU имеется специальная буферная память TLB, в которой хранятся дескрипторы 128 страниц, к которым производилось обращение в процессе выполнения предыдущих команд. Если при очередном обращении к памяти адресуется ранее использованная страница, то ее параметры выбираются из TLB. Таким образом, значительно сокращаются потери времени, связанные со страничной трансляцией адреса, так как обращение к таблице дескрипторов производится только при выборке страницы, параметры которой отсутствуют в TLB.

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

    При нарушении этих правил реализуется исключение "ошибка выбора данных" (Av=00300h) или "ошибка выбора команды" (Av=00400h). Кроме битов доступа дескрипторы содержат ряд других параметров, например, биты, характеризующие "историю" страницы выполнялось ли ранее обращение к данной странице, производилось ли изменение ее содержимого (запись). Эти биты используются операционной системой для эффективной реализации виртуальной памяти, обеспечивающей оперативный обмен содержимым страниц между ОЗУ и внешней памятью большого объема.
Способы адресации и система команд

    Процессоры PowerPC используют следующие способы адресации:
регистровая; косвенно-регистровая со смещением; косвенно-регистровая с индексированием; относительная; абсолютная; непосредственная.

    Все команды арифметических и логических операций, сравнения и сдвигов выполняются только с регистровой и непосредственной адресацией. Благодаря этому обеспечивается высокая производительность, так как при обработке данных не требуется выполнять циклов обращения к шине для выбора операндов. Регистровая адресация позволяет использовать трехадресный формат команд, при котором команда содержит номера трех регистров (GPR или FPR): rA, rB, в которых хранятся операнды, и rD, в котором размещается полученный результат. Трехадресные команды обеспечивают повышение производительности благодаря исключению лишних пересылок данных между регистрами. Один из операндов может непосредственно задаваться 32-разрядным словом, следующим за кодом команды.

    Команды загрузки и сохранения содержимого регистров GPR или FPR используют при обращении к памяти косвенно-регистровую адресацию со смещением или индексированием. Эффективный адрес операнда EA определяется выражениями:
EA = (rA ! 0) + d32 при адресации со смещением; EA = (rA ! 0) + (rB) при адресации с индексированием,

    где rA, rB номера регистров общего назначения GPR31-1, d32 32-разрядное смещение. Регистр GPR0 не используется при этих способах адресации: если в качестве номера rA указан "0", то формируется адрес EA=d32 при адресации со смещением, EA=(rB) при адресации с индексированием. Так реализуется прямая (абсолютная) адресация с обращением по заданному в команде адресу d32 и косвенно-регистровая адресация по адресу, заданному содержимым регистра rB.

    Команды ветвления используют прямую или относительную адресацию. Адресом перехода служит указанный в команде адрес t-adr или сумма (PC + t-adr).

    Все команды процессора имеют 32-разрядный формат кода операции. При использовании непосредственной адресации после кода команды следует 32-разрядный операнд. В командах, использующих косвенно-регистровую адресацию со смещением, после кода операции следует 32-разрядное смещение, а в командах ветвления 32-разрядный адрес t-adr. Таким образом, все команды содержат 4 или 8 байт. Команды обработки целочисленных данных. Команды данной группы реализуют арифметические и логические операции, сравнение и сдвиг, используя целочисленные операнды, хранящиеся в регистрах GPR0-31 или содержащихся непосредственно в команде. Результат размещается в одном из регистров GPR.

    Команды арифметических операций выполняют сложение, вычитание, умножение и деление операндов. Эти команды имеют ряд модификаций, отличающихся формированием признаков по результатам операций. Ряд модификаций обеспечивает установку соответствующих значений битов SO, EQ, GT, LT в поле CR0 регистра CR (рис. 3а). Имеются модификации команд, по результатам выполнения которых устанавливаются биты OV, SO в регистре XER (рис. 3б), при этом бит SO дублируется в поле CR0 регистра CR. Ряд команд сложения и вычитания вызывает установку признака переноса CA в регистре XER в соответствии с результатом операции. Команды умножения и деления могут оперировать с операндами без знака или со знаком. К этой же группе относятся команды, которые изменяют знак операнда или выполняют преобразование 8- и 16-разрядных операндов в 32-разрядные слова путем расширения знаком.

    Команды сравнения осуществляют вычитание двух операндов, которые могут быть числами со знаком или без знака. По результатам вычитания осуществляется установка признаков в поле CRi регистра CR, номер которого i = 7...2 задается в команде.

    Команды логических операций производятся над 32-разрядными операндами без знака. Процессор реализует восемь логических операций: И, ИЛИ, Исключающее ИЛИ, НЕ-И, НЕ-ИЛИ, Запрет, Импликация, Эквивалентность, над операндами, хранящимися в регистрах GPR. Если один из операндов задан непосредственно в команде, то возможно выполнение операций И, ИЛИ, Исключающее ИЛИ. Одна из команд этой группы позволяет определить номер первого значащего разряда в операнде.

    Команды сдвигов реализуют многоразрядные логические, арифметические и циклические сдвиги содержимого одного из регистров GPR с размещением результата в другом регистре. Число разрядов сдвига определяется содержимым указанного регистра или задается непосредственно в команде.

    Команды логических операций и сдвигов имеют модификации, которые вызывают установку признаков в поле CR0 регистра CR в соответствии с результатом операции.

    Команды обработки чисел с плавающей точкой. Операции над числами с плавающей точкой выполняются с использованием 64-разрядных регистров FPR31-0 и регистра управления и состояния FPSCR, входящих в регистровую модель пользователя (рис. 2). Обрабатываемые числа представляются в формате одинарной (ОТ, 32 разряда) или двойной (ДТ, 64 разряда) точности в соответствии со стандартом IEEE 754. Данные форматы обеспечивают также представление бесконечности и Не-чисел (NAN).

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

    При операциях сравнения производится сравнение содержимого указанных в команде регистров FPR и установка соответствующих признаков в заданном поле CRi регистра условий CR (рис. 3а).

    Команды преобразования форматов преобразуют число ДТ, хранящееся в одном из регистров FPR, в число ОТ или целое 32-разрядное число со знаком, загружаемое в другой регистр FPR. В случае необходимости при этом выполняется округление в соответствии со значением поля RN в регистре FPSCR.

    Команды пересылки производят передачу содержимого из одного регистра FPR в другой. При этом возможно изменение знака операнда, установка отрицательного знака, пересылка абсолютного значения.

    Специальные команды служат для пересылки и изменения содержимого регистра FPSCR. Эти команды выполняют пересылку содержимого FPSCR в заданный регистр FPR, пересылку 4-бит поля, номер которого указывается в команде, из регистра FPSCR в поле CRi регистра условий CR, загрузку 4-бит непосредственного операнда в заданное поле регистра FPSCR, запись в FPSCR старшего 32-разрядного слова из регистра FPR, логически умноженного на заданную в команде 32-бит маску, установку в "0" или "1" заданных битов в регистре FPSCR.

    Большинство рассмотренных команд может изменять содержимое поля CR1 в регистре условий CR, перенося в него значения признаков FX, FEX, VX, OX, устанавливаемых в регистре FPSCR.

    Команды загрузки и сохранения содержимого регистров GPR, FPR. Команды этой группы производят за-грузку в заданный регистр GPR байта, слова или полуслова (16-разрядное слово) из памяти, либо записывают в память байт, слово или полуслово из регистра. Для обращения к памяти используется косвенно-регистровая адресация со смещением или индексированием. При загрузке в регистр байта или полуслова старшие разряды регистра GPR заполняются "0" (расширение нулями) или значением старшего (знакового) бита загружаемого слова (расширение знаком). Ряд команд этой группы осуществляют перестановку байтов при загрузке в регистр полуслова или слова, либо при их записи из регистра в память.

    Команды групповой пересылки производят загрузку или запись в память содержимого группы регистров, начиная с заданного в команде номера и до последнего регистра с номером GPR31. Загружаемые или записываемые данные располагаются в ячейках памяти, начиная с заданного командой адреса EA.

    Команды пересылки строк символов осуществляют загрузку в регистры или запись в память n символов (байтов), число которых задается данным в команде операндом или содержимым 8 старших битов (поле SS, рис. 3б) в регистре XER. Начальный адрес пересылаемых байтов EA определяется выбранным способом адресации.

    Команды загрузки и сохранения чисел с плавающей точкой производят загрузку из памяти в заданный регистр FPR вещественного числа в формате ОТ или ДТ, либо записывают в память число в формате ОТ или ДТ из регистра FPR.

    Команды загрузки-сохранения имеют модификации, которые после выполнения пересылки загружают в адресный регистр rA эффективный адрес EA, использованный в данной команде. Эти модификации позволяют, например, реализовать постинкрементную адресацию байтов, полуслов или слов, если задать в соответствующих командах значения смещения d32 = 1, 2 или 4.

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

    Команды условных ветвлений используют в качестве условия совпадение содержимого указанного в команде поля CRi в регистре условий CR с четырьмя младшими битами заданного в команде операнда BO. При совпадении заданного значения BO и содержимого поля CRi производится переход к команде, адрес которой определяется с помощью абсолютной или относительной адресации. При несовпадении выполняется следующая команда программы. Команды bcl, bcla, сохраняющие в регистре LR адрес следующей команды, служат для реализации условных вызовов подпрограммы.

    Команды ветвления имеют модификации, при выполнении которых текущее содержимое программного счетчика PC заносится в регистр связи LR, обеспечивая возможность возвращения к следующей команде программы. Таким образом, эти команды могут служить для вызова подпрограмм. Команды условного возврата из подпрограммы загружают в программный счетчик PC содержимое регистра связи LR, если заданное в команде значение операнда BO совпадает с содержимым указанного поля CRi.

    При условных ветвлениях программист может указать на повышенную вероятность ветвления, задав значение "1" для пятого бита операнда BO. В этом случае блок обработки ветвления BPU обеспечит выборку в конвейер следующих команд в соответствии с данным предсказанием. Такой способ предсказания ветвлений называется статическим. При нулевом значении пятого бита в операнде BO блок BPU осуществляет динамическое предсказание ветвлений с помощью кэша адресов BTAC и таблицы истории ветвлений BHT (см. предыдущий раздел).

    Команды программных прерываний производят условное обращение к подпрограмме обслуживания, вектор которой Ve размещен по адресу Av=$00700 (табл. 1). Текущее содержимое PC и MSR сохраняется в регистрах SRR0, SRR1. Условием обращения является совпадение признаков, устанавливаемых в поле CR0 при сравнении содержимого указанных в команде регистров или регистра с непосредственным операндом, с битами заданного в команде 4-разрядного операнда TO. Прерывание реализуется, если хотя бы один из установленных в "1" признаков в CR0 совпадает с соответствующим битом TO.

    Специальная команда осуществляет вызов системного прерывания с подпрограммой обслуживания, вектор которой Ve размещен по адресу Av=$00C00 (табл. 1). Команда возврата из прерывания восстанавливает содержимое программного счетчика PC и регистра управления MSR из регистров SRR0, SRR1, обеспечивая возвращение к выполнению прерванной программы.
При выполнении команд условных переходов используется содержимое различных полей регистра условий CR.

    Специальные команды реализуют различные операции с содержимым этого регистра. Эти команды производят загрузку в CR содержимого регистра GPR, которое логически умножается на заданную в команде 32-бит маску, пересылку содержимого CR в заданный регистр GPR, копирование четырех младших битов из регистра исключений XER (признаки SO, OV, CA, рис. 3а) в поле CRi регистра CR, перенос содержимого поля CRi в поле CRj регистра CR. Ряд команд выполняет логи-ческие операции И, ИЛИ, Исключающее ИЛИ, НЕ-И, НЕ-ИЛИ, Эквивалентность, Запрет, Импликация над отдельными битами содержимого регистра CR.

    Служебные команды. В группу служебных команд входят команды пересылки содержимого регистров XER, LR, CTR и служебных регистров, входящих в регистровую модель супервизора (рис. 5). Большинство этих команд выполняется процессором только в режиме супервизора.

Рис. 5. Формат содержимого регистра управления процессора MSR

    К этой группе относятся также команды, обеспечивающие изменение содержимого отдельных строк кэш-памяти, синхронизацию выполнения программ несколькими совместно работающими процессорами, обращение процессора к выделенным ресурсам системы (специализированным внешним устройствам или разделам памяти), выполнение непрерываемых циклов "считывание√модификация√запись", которые обычно используются для проверки и установки значений программных "семафоров" при совместном использовании ресурсов в мультипроцессорной системе.
Номенклатура и применение процессоров PowerPC

    В состав выпускаемых в настоящее время процессоров PowerPC входят модели 603, EC603e, 604e семейства MPC6xx и модели 740, 750, 7400 семейства MPC7xx, которые имеют ряд модификаций, отличающихся уровнем используемой КМОП-технологии изготовления. Технология определяет указанные в табл. 2 минимальные размеры компонентов при изготовлении кристалла, от которых зависит максимальная тактовая частота процессора. Уменьшение размеров компонентов позволило повысить тактовую частоту до Ft = 350√450 МГц, что обеспечило увеличение производительности процессоров. Основные характеристики процессоров приведены в табл. 2.
Таблица 2. Основные характеристики процессоров семейства PowerPC Основные характеристики 603е EC603e 604e 740 750 7400 Разрядность шины 32 32 64 64 64 64 Емкость: кэша команд
кэша данных 16 К
16 К 16 К
16 К 32 К
32 К 32 К
32 К 32 К
32 К 32 К
32 К Количество команд, выполняемых за 1 такт 3 3 4 3 3 3 Максимальная тактовая частота Ft, МГц 133/200/300 133/200/300 233/350 266/333 266/400 450 Потребляемая мощность, Вт 4,2 / 4,0 / 4,0 4,2 / 4,0 / 4,0 16,7 / 8,0 5,7 / 4,2 5,7 / 5,8   Производительность: SPECint95 SPECfp95 MIPS   3,9 / 5,6 / 7,4 3,1 / 4,0 / 6,1 188 / 283 / 423   3,9 / 5,6 / 7,4 - 188 / 283 / 423   9,4 / 14,6 8,7 / 9,0 418 / 629   11,0 / 14,0 7,7 / 9,7 488 / 610   11,8 / 17,7 8,7 / 11,7 488 / 733       825 Разрешающая способность технологии 0,5 / 0,35 / 0,29 мкм 0,5 / 0,35 / 0,29 мкм 0,35 / 0,25 мкм 0,29 / 0,25 мкм 0,29 / 0,25 мкм   Число транзисторов, млн. 2,6 2,6 5,1 6,5 6,5   Число внешних выводов 255 255 255 255 360  

    Процессоры семейства имеют общую архитектуру, которая включает регистровую модель пользователя (рис. 2), набор реализуемых команд и способов адресации, состав исключений и процедуру их обслуживания. Функции большинства регистров в модели супервизора (рис. 4) также одинаковы для всего семейства. Все модели имеют суперскалярную структуру (рис. 1), отличаясь составом используемых исполнительных устройств: процессоры 604e содержат три устройства для обработки целочисленных операндов (SIU1, SIU2, MIU, рис. 1), а процессоры 603e, EC603e, 740, 750, 7400 только два устройства (SIU, MIU). Процессоры EC603e, ориентированные на выполнение задач управления, не содержат устройство для обработки операндов с плавающей точкой (FPU).

    Процессоры семейства MPC7xx имеют некоторые отличия от семейства MPC6xx. Обеспечение соответствия содержимого ОЗУ и внутреннего кэша данных реализуется с помощью протокола MEI, который является упрощенной модификацией протокола MESI, используемого в процессорах семейства MPC6xx. Количество буферных регистров для GPR и FPR сокращено (по 6 вместо 12). Из возможных способов организации памяти реализуется только страничная с размером страницы 4 Кбайт и блочная с размером блоков от 128 Кбайт до 256 Мбайт. Модель MPC750 отличается от модели MPC740 тем, что обеспечивает поддержку внешней кэш-памяти 2-го уровня объемом 0,5, 1 или 2 Мбайт.

    Для относительной оценки производительности процессоров в табл. 2 приведены результаты испытаний, полученные при использовании стандартных тестовых программ обработки целых чисел (SPECint 95) и чисел с плавающей точкой (SPECfp 95). В скобках указано значение тактовой частоты Ft, при котором проводились испытания. Так как потребляемая мощность возрастает пропорционально тактовой частоте, для каждого процессора дано значение Ft (в скобках), при котором потребляется указанная мощность.

    Сразу после начала выпуска процессоры семейства MPC6xx нашли широкое применение в разнообразных цифровых системах. На базе первой модели MPC601 были реализованы персональные компьютеры PowerMacintosh компании Apple Computers и PowerStack компании Motorola, рабочие станции RS/6000 компании IBM и ряд других изделий. Появление новых процессоров этого семейства еще более расширило сферу его применения. В настоящее время определился следующий ряд областей, где использование процессоров PowerPC наиболее эффективно. Модель MPC603e, имеющая низкое энергопотребление, широко используется в персональных компьютерах класса "notebook" и различной сложнофункциональной портативной аппаратуре. На применение в системах управления сложными объектами ориентированы также процессоры семейства MPC7xx. Модель MPC604e используется, в основном, в персональных компьютерах, заменяя в этой области более раннюю модель MPC601, и высокопроизводительных серверах.

    Наряду с процессорами фирма Motorola выпускает магистральные адаптеры MPC105, MPC106, которые обеспечивают интерфейс между 64-разрядной шиной с архитектурой PowerPC и 32-разрядной шиной PCI, широко используемой в персональных компьютерах. С помощью этих адаптеров можно организовать совместную работу систем, реализуемых на базе MPC6xx или MPC7xx, с персональными компьютерами.

    Следует отметить широкое применение RISC-процессоров с архитектурой PowerPC в разнообразных устройствах управления системами и объектами, где требуется высокая производительность и широкие функциональные возможности в сочетании с пониженным энергопотреблением и низкой стоимостью. На базе процессоров с этой архитектурой разработаны RISC-микроконтроллеры (семейство MPC5xx) и коммуникационные конт-роллеры (семейства MPC8xx, MPC82xx), используемые в системах управления и связи.

    Семейство RISC-микроконтроллеров MPC5xx в настоящее время представлено моделью MPC555 (ранее разработанные модели MPC505, MPC509 снимаются с производства). Процессорное ядро этого микроконтроллера функционирует аналогично процессору EC603e. На кристалле контроллера расположены также ОЗУ емкостью 32 Кбайт, флэш-память емкостью 448 Кбайт и периферийные блоки. Контроллер имеет 32-разрядную шину данных и адресует 16 Мбайт внешней памяти. В состав контроллера входят различные периферийные блоки: два таймерных модуля, имеющих по 16 линий ввода/вывода сигналов, два 10-разрядных АЦП, каждый из которых имеет 16 аналоговых входов, три порта для по-следовательного обмена (два асинхронных и один син-хронный), два контроллера, реализующих последовательный обмен по CAN-шине, широко применяемой в промышленности. Эти контроллеры предназначены для построения высокопроизводительных управляющих систем реального времени.

    В связи с быстрым ростом требований к объему и скорости передаваемой информации особенно перспективным является использование RISC-процессоров с архитектурой PowerPC в телекоммуникационных системах. Для данной сферы применения выпускается широкая номенклатура коммуникационных контроллеров семейств MPC8xx, MPC82xx (табл. 3). Они содержат центральный процессор PowerPC с кэшами команд и данных, имеющими емкость до 16 Кбайт, модуль систем-ного интерфейса, выполняющий пересылку данных по 64-разрядной системной шине с адресацией до 4 Гбайт внешней памяти, и коммуникационный процессор, в состав которого входят несколько коммуникационных интерфейсов, реализующих различные протоколы сетевого обмена (Ethernet, HDLC, UART, ISDN и другие).
Таблица 3. Основные характеристики коммуникационных контроллеров PowerPc Основные характеристики 801 821 823 850 855Т 860 8240 8260 Емкость кэша команд
кэша данных 2 К
1К 4 К
4 К 2 К
1 К 2 К
1 К 4 К
4 К 4 К
4 К 16 К
16 К 16 К
16 К Максимальная тактовая частота Ft, МГц 40 80 80 80 80 80 266 200 Производительность, MIPS 52 105 105 105 105 105 375 280

    Коммуникационные контроллеры выпускаются в различных модификациях, которые отличаются возможностями реализации разных протоколов связи. Например, MPC860 базовая модель семейства MPC8xx имеет четыре модификации. Модель MPC860EN обеспечивает возможность одновременного обслуживания четырех каналов связи с сетью Ethernet. Некоторые модели имеют сокращенное число каналов связи: MPC860DE обслуживает два канала Ethernet, MPC860DC содержит только два последовательных коммуникационных интерфейса. Наиболее широкими возможностями обладает модель MPC860MH, которая кроме связи с сетью Ethernet обеспечивает обслуживание до 32 каналов HDLC, что позволяет реализовать широко используемый протокол цифровой сети с интеграцией услуг ISDN-PRI.

    Коммуникационные контроллеры семейства MPC8xx содержат процессорное ядро PowerPC, в котором отсутствует блок обработки чисел с плавающей точкой FPU. В это семейство, кроме базовой модели MPC860, входит ряд моделей, отличающихся объемом кэш-памяти и составом реализуемых интерфейсов связи. Модель MPC801 содержит два последовательных коммуникационных интерфейса, интерфейс промышленной шины I2C, а также контроллер параллельного обмена данными, реализующий протокол для подключения карт PCMCIA. Модели MPC850, 855 содержат один коммуникационный интерфейс, интерфейс последовательной шины USB и контроллер PCMCIA. Модели MPC821, 823 имеют в своем составе видеоконтроллер для жидкокристаллического дисплея, что делает их привлекательными для использования в приборах и системах, использующих этот способ визуального представления информации. Модель MPC821 содержит также два коммуникационных интерфейса, контроллер PCMCIA и контроллер параллельной шины с протоколом Centronics, применяемым обычно для связи с принтером. В модели MPC821 имеется только один коммуникационный интерфейс, а вместо другого введен интерфейс шины USB.

    Наиболее быстродействующие коммуникационные контроллеры входят в состав семейства MPC82xx, выпуск которого начался в конце 1998 года. В качестве процессорного ядра эти контроллеры используют процессор PowerPC 603e, в котором имеется блок FPU. Контроллеры имеют выходы на две системных шины: 64-разрядную, которая обеспечивает протокол обмена, принятый для процессоров PowerPC, и 32-разрядную с протоколом PCI. В состав модели MPC8240 входят интерфейс шины I2C и контроллер сообщений, реализующий протокол обмена I2O (Intelligent Input-Output). Коммуникационный процессор в контроллерах MPC8260 поддерживает большое число сетевых протоколов, включая высокоскоростные: 100 Мбит/с Ethernet, 155 Мбит/с ATM, 256-канальный HDLC. Эти контроллеры ориентированы на реализацию высокопроизводительного телекоммуникационного оборудования: маршрутизаторов, концентраторов, коммутаторов, многоканальных модемов, станций сотовой связи, а также используются для управления копировальными и печатающими устройствами, обслуживания систем дисковой памяти с обеспечением защиты информации и ряде других применений.






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.