Взаимодействие процессоров
CPU является ведущим. Он имеет свою операционную систему (планировщик или монитор) и выполняет основную программу. CPU управляет работой DSP посредством передачи ему задания (макрокоманды) и его запуска.
CPU имеет доступ к следующим ресурсам DSP:
памяти данных;
регистру управления и состояния DCSR;
программному счетчику PC;
регистру адреса останова SAR;
памяти программ;
архитектурным регистрам.
При штатной работе доступ к архитектурным регистрам DSP, как правило, не используется, а применяется только для его диагностики или для отладки программного обеспечения.
DSP является ведомым. Он работает под управлением CPU и выполняет его макрокоманды (задания). Однако DSP имеет доступ ко всем программно доступным регистрам и памяти микросхемы.
DSP может находиться в состояниях STOP или RUN и работает в старт стоповом режиме. То есть, после выполнения очередного задания CPU он останавливается и переходит в режим STOP посредством выполнения одноименной команды. DSP из состояния STOP в состояние RUN может перейти:
по команде CPU;
по сигналам от каналов DMA
Центральный процессор (cpu)
В качестве отличительных особенностей центрального процессора можно назвать:
Архитектура – MIPS32:
32-х битные шины передачи адреса и данных;
Кэш команд объемом 16 Кбайт;
Архитектура привилегированных ресурсов в стиле ядра R4000:
Регистры Count/Compare для прерываний реального времени;
Отдельный вектор обработки исключений по прерываниям.
Программируемое устройство управления памятью;
Устройство целочисленного умножения и деления;
Сопроцессор арифметики в формате с плавающей точкой (FPU);
Производительность – не менее 250MIPS;
Оперативная память центрального процессора (CRAM) объемом 128 Кбайт;
5 внешних запросов прерывания, в том числе немаскируемое прерывание (NMI);
Поддержка отладки JTAG.
Блок-схема процессорного ядра RISCore32 приведена на рисунке 2.
Рис. 2. Блок-схема RISCore32
Входящее в ядро устройство исполнения реализует архитектуру load-store с однотактными операциями арифметического логического устройства (АЛУ) (логические операции, операции сдвига, сложение и вычитание). В ядре имеется 32 32-х битных регистра общего назначения, используемых для скалярных целочисленных операций и вычисления адреса. В регистровом файле есть два порта чтения и один порт записи. Также используются обходные пути передачи данных для минимизации количества остановок конвейера.
Устройство умножения/деления (MDU) выполняет соответствующие операции. MDU выполняет операции умножения за 1 такт, операции деления за 8 тактов. Попытка активизировать следующую команду умножения/деления до завершения выполнения предыдущей, так же как и использование результата этой операции до того, как она закончена, вызывает остановку конвейера. В MDU имеется вывод, определяющий формат операции – знаковый или беззнаковый.
Системный управляющий сопроцессор (СР0) отвечает за преобразование виртуального адреса в физический, протоколы кэш, систему управления исключениями, выбор режима функционирования (Kernel/User) и за разрешение/запрещение прерываний.
Сопроцессор арифметики в формате с плавающей точкой (FPU) выполняет операции в соответствии со стандартом ANSI/IEEE Standard 754-1985, “IEEE Standard for Binary Floating-Point Arithmetic”. Поддерживаются операции, как с одинарной, так и с двойной точностью. Сопроцессор так же выполняет дополнительные операции, не определенные стандартом. Сопроцессор содержит 16 64-разрядных регистра для хранения операндов с одинарной и двойной точностью. Сопроцессор также содержит регистры управления и состояния, которые обеспечивают обработку исключений в соответствии с требованиями стандарта. Время выполнения команд с одинарной точностью в тактах CPU: MUL - 2, DIV – 5, SQRT -6. Время выполнения команд c двойной точностью в тактах CPU: MUL – 2, DIV – 8, SQRT – 16;
Процессорное ядро содержит устройство управления памятью (MMU), реализующее интерфейс между исполнительным блоком и контроллером кэш. MMU преобразует виртуальный адрес в физический прежде, чем посылает запрос контроллеру кэш для сравнения тэга или блоку шинного интерфейса для доступа к внешнему запоминающему устройству. Это преобразование является очень полезным свойством функционирования операционных систем при управлении физической памятью таким образом, чтобы в ней размещались несколько процессов, активных в одной и той же области памяти, и может быть даже на одном виртуальном адресе, но обязательно в различных областях физической памяти. Другие свойства MMU - защита зон памяти и определение протокола кэш. Ядро может работать как в режиме TLB – с 16-строчной, полностью ассоциативной матрицей TLB, так и в режиме FM (Fixed Mapped), когда используются простые преобразования виртуального адреса в физический с использованием битов регистров.
В данной версии процессора реализован кэш команд, виртуально индексируемый и контролируемый по физическому тэгу типа direct mapped, что позволяет осуществлять доступ к кэш параллельно с преобразованием виртуального адреса в физический. Объем кэш памяти составляет 16 Кбайт.
Устройство шинного интерфейса (BIU) управляет внешними интерфейсными сигналами в соответствии со спецификацией шины AHB (Advanced High-performance Bus) архитектуры AMBA (Advanced Microcontroller Bus Architecture).
В ядре имеется устройство для отладки программ OnCD с портом JTAG.
