Vous êtes sur la page 1sur 32

C

Microblaze
The MicroBlaze embedded processor soft core

Procesador

Agenda

1 2

Introduccin Arquitectura MicroBlaze

Introduccin

Introduccin
Procesadores Embebidos en FPGAs

Diseos en FPGAs donde se requiera capacidad de procesamiento, sin recurrir a un procesador externo.

Introduccin
Soft vs Hard processors
Hard Processor; El procesador es un circuito VLSI, con un diseo a nivel de transistor optimizado para ejecutar instrucciones en el mnimo tiempo posible.

XILINX: SW_HW PowerPC IBM Virtex2Pro 30% a 50% mas veloz que el SoftCore

Introduccin
Soft vs Hard processors
Soft Processor; El procesador se implementa simulando su comportamiento con un lenguaje de programacin (HDL en el caso de Microblaze architecture Behavioral of procesador is If Ins_Entrada = Instruccin_Suma then Acumulador <= Dato1 + Dato2 Endif;

Introduccin
Microprocesadores Soft core: MicroBlaze Versatilidad. Tantos procesadores como capacidad tenga la FPGA. Procesadores Personalizados ( Flash, UART, GPIO, etc.)

Introduccin

Soft-processor Xilinx MicroBlaze:


Microblaze es un soft processor descrito en VHDL Xilinx lo vende como un IP core Herramienta muy potente para desarrollar proyectos relacionados con arquitecturas paralelas, codiseo, control y en toda investigacin sobre software y estudio de metodologas de desarrollo. Optimizado para ejecutar cdigoC. FPGA: Spartan y Virtex

Introduccin

Soft-processor Xilinx MicroBlaze:

FPGA => entre 432 (Spartan II 15K) hasta 125.136 (Virtex II Pro 125) celdas lgicas MicroBlaze Soft Processor => alrededor de 1000 celdas lgicas (dependiendo de la FPGA)

El Microblaze

Soft core processor, implemented using general logic primitives 32-bit Harvard RISC architecture Supported in the Xilinx Spartan and Virtex series of FPGAs Customizability of the core makes it challenging while opening up vistas for kernel configurations

Arquitectura
Arquitectura RISC
Optimizado para XILINX Pipeline

32 registros de 32 bits. Bus de direccin 32 bits Instrucciones de 32 bits


3 operdos., 2 modos de direcc.

Buses diseados para soportar CoreConnect de IBM Buses opcionales. LMB (local memory) OPB (on-chip peripheral) PLB (Processor Local Bus)
PLB from IBM PowerPC

MMU opcional.

Arquitectura-Instrucciones
Arquitectura tipo RISC (Reduced Instruction Set Computer). Lo que simplifica enormemente la unidad de decodificacin. 87 Instrucciones, seleccionadas para reducir el tamao de la ALU. Instrucciones que requieran un procesamiento complejo se realizan en un hardware especfico. Recursos FPGA.

Arquitectura-Pipeline
Solucin arquitectnica para maximizar throughput (# datos procesados por segundo). Una arquitectura RISC aumenta fcilmente su rendimiento por medio de la segmentacin (Pipeline). 3 etapas de Pipeline: Fetch, Decode, and Execute. Se logra que se ejecute 1instruccin/ciclo de reloj. 5 etapas ofrecen un reloj mas veloz, pero aumenta la latencia. Los problemas relacionados con los saltos de programa (Hazards) son tratados por hardware

Arquitectura-Pipeline

Arquitectura-Registros Internos

FPGAs memoria distribuida, vecindad con tiempo de acceso corto. 32x32bit registros internos de propsito general, Gran capacidad de direccionamiento de memoria. 2 registros de propsito especifico PC: Program Counter MSR (Machine Status Register); Acarreo, Mascara de interrupciones, Configuracin de buses

Registros
Conjunto ortogonal de Instrucciones: Cualquier instruccin puede
utilizar cualquier elemento de la arquitectura como fuente o destino. Se puede utilizar cualquier modo de direccionamiento en cualquier instruccin.

32 registros de 32 Bits de proposito general y 18 registros de 32 bits de uso especial, configurables

*Pagina 14 mb_rf_guide_10.1

Formato de Instrucciones
Procesador tipo RISC (Reduced Instruction Set Computer) Las instrucciones operan con los registros internos o con valores inmediatos. Instrucciones de 32 Bits. Tipo A: 2 Reg. Fuente, 1 Reg Destino. Tipo B: 1 Reg. Fuente, 1 Op.Inm.16 Bits extendible a 32, 1 Reg. Destino. Categorias de las Instrucciones. Aritmetica, Lgica, Salto, Carga-Almacenamiento, Inst. especiales

Formato de Instrucciones(2)
Instrucciones de 3 operandos (5-bit field) Operandos Inmediatos de 16-bit

*Pagina 14 mb_rf_guide_10.1

Interrupciones y excepciones
El procesador tiene un puerto de interrupciones. 4 ciclos de reloj de latencia Disparada por nivel o flanco Si hay diferentes prioridades de interrupciones, necesitaremos un IP, que se encarga de multiplexar e identificar las diferentes fuentes de interrupcin. Aumento de la latencia de interrupciones Manejo de interrupciones torpe No hay interrupciones tipo wake-up Pila de direcciones implementada por software.
*Pagina 14 mb_rf_guide_10.1

Arquitectura-Buses del Sistema


Arquitectura Harvard. Datos e instrucciones son almacenados en memorias Diferentes. Permite multiples configuraciones en los sistemas de buses. MicroBlaze utiliza el estndar CoreConnect de IBM, para conectar diferentes elementos en un circuito Integrado permitiendo reducir la carga capacitiva del bus. Bus de Memoria Local(LMB):
Alta velocidad, sincrno, conecta perifericos y bloques de memoria interna a la FPGA. Datos e instrucciones. Maestro-Esclavos.

Bus Local del Procesador(PLB):


Compactible con LMB, pero admite varios maestros y tamaos de palabras diferentes a 32 bits.

Bus perifericos on-chip(OPB):


Sincrono, conecta perifericos con tiempos de acceso variables. Varios maestros, transferencias de palablras de tamao variable.

Registro de control de dispositivos (DCR): Sincrno en


conexin anillo, ancho de banda bajo. Minimiza la lgica interna.

Arquitectura-Buses del Sistema


E

Arquitectura-Buses del Sistema(2)


Adems de estos tres buses existe otra alternativa para comunicarse con el procesador MicroBlaze. Se trata de un protocolo de comunicacin denominado FSL (Fast Simple Link),que permite la comunicacin con el procesador a travs de sus propios registros internos. El perifrico actuara a modo de co-procesador y la conexin se realiza de manera sencilla a travs de unos registros de desplazamiento de 32 bits de ancho. La comunicacin con estas FIFOs se realiza con dos instrucciones especficas del repertorio, que realizan las funciones de push y pull de estas memorias de desplazamiento. MicroBlaze soporta hasta 16 dispositivos conectados con este protocolo.

Memoria Interna

Acceso directo del procesador a los Bloques de RAM interna de la FPGA. Memoria interna de la FPGA Configurable para la anchura de bus deseada, Latencia de acceso a memoria interna 2 ciclos

Memoria Externa

Memoria Externa; acceso a travs del OPB. Latencia de acceso a memoria externa 3 ciclos de reloj si no hay ciclos de arbitrio para el OPB.

TIPOS DE DATOS

Bit-reversed big-endian Word 32Bits Half-Word Byte n Byte n+1 Byte


MSByte 0 MSBit

Byte n+2

Byte n+3

LSByte 31 LSBit

TIPOS DE DATOS

Byte 8-bit, Short 16-bit, and Long 32-bit C-types:


char 8-bit short 16-bit long or int 32-bit float 32-bit enum 32-bit Los apuntadores pueden ser de 16 o 32 bits, dependiendo del tamao del area de los datos.

Arquitectura de Memoria

HARVARD: Las Interfaces y espacios de direcciones de datos y de Instrucciones estan separadas.

Todos los puertos I/O son mapeados a memoria

Arquitectura Core Connect de IBM para Microblaze


Desarrollada para conectar diferentes mdulos integrados en un mismo chip por IBM. Xilinx lo ha tomado como estndar Ahorra tiempo de diseo (Implementacion, simulacion ) Portabilidad a nuestro diseo OPB (On-chip peripheral bus) Bus sncrono de 32 bits para datos e instrucciones por lneas separadas (64 bits en total). Permite la seleccin del tamao del bus dinmicamente Soporta varios Masters, protocolo Byte enable y bus parking Se le pueden aadir perifricos sin cambiar I/Os gracias a su arquitectura con multiplexacin distribuida.

IP cores para OPB (On-Chip peripheral bus)


Desarrollados por Xilinx para utilizar toda la potencia de microblaze y facilitar diseos. (IP cores muy estudiados, configurables y con diagramas de tiempos muy detallados.) EMC (Controlador de memoria externa) Controlador de interrupciones UART (Receptor/Transmisor asincrono universal, para comunicaciones serie) GPIO(Entrada/Salida de proposiyo general) Timer/Counter JTAG-UART(Joint test Action Group Universal, estndar IEEE1149)

Otros IP interesantes
Decodificador Viterbi para correccin de errores 10 Gigabit Media Access Controller Controlador Ethernet 10/100 Procesador Bluetooth Interfaz PCI, I2C, DDR RAM DSP, filtros digitales, FFT (hasta 1024 puntos) Interfaces para procesadores externos Microcontroladores (Como el 8051)

Arquitectura-Memoria Cache

Utilizacin y configuracin de los tamaos de cach pueden ser fijados por el usuario. Habilitacin de cach de instrucciones y/o datos, tamao, rango de direcciones y tamao de palabra para datos. Las cachs son de tipo asociativo.

FPU
IEEE 754 Standard Single-Precision Floating Point ADD, SUB, MUL, DIV, Comp, Conv, SQRT Overflow returns signed 32-bit float 8-bit exponent, 23-bit mantissa Exceptions (when enabled) are regular Hardware Exceptions Result register not overwritten if exception

Vous aimerez peut-être aussi