Extendendo o Conjunto de Instruções de um PPC para Uso de ...
Transcript of Extendendo o Conjunto de Instruções de um PPC para Uso de ...
Estendendo o Conjunto de Instruções de um PPC para Uso
de Transformadas do H.264Marcelo Schiavon Porto
Roger E. C. Porto{msporto, recporto}@inf.ufrgs.br
CMP237 - Arquitetura e Organização de Processadores
CMP237 - Arquitetura e Organização de Processadores
2Introdução
• O padrão H.264/AVC é o mais novo padrão para compressão de vídeo digital.
• O H.264 foi desenvolvido para proporcionar taxas de compressão significativamente superiores aos
padrões de compressão existentes até então.
CMP237 - Arquitetura e Organização de Processadores
3Codificador H.264
Diagrama em blocos do codificador H.264
CMP237 - Arquitetura e Organização de Processadores
4Decodificador H.264
Diagrama em blocos do decodificador H.264
CMP237 - Arquitetura e Organização de Processadores
5Transformada Inversa
CMP237 - Arquitetura e Organização de Processadores
6Motivação
Possibilidade de extensão do conjunto de instruções do PPC;
Uso de instruções especializadas para co-processamento;
CMP237 - Arquitetura e Organização de Processadores
7Problemas encontrados
Na realidade a extensão do conjunto de instruções só é possível para o Virtex4;
Para o Virtex2 Pró só é possível extender o conjunto de instruções com um subconjunto oferecido pela Xilinx.
CMP237 - Arquitetura e Organização de Processadores
8Solução aplicada
Implementar Hadamard inversa 4x4:
Implementação em software: rodando em um PowerPC;
Implementação em hardware: mapeada para o FPGA.
CMP237 - Arquitetura e Organização de Processadores
9Decodificador H.264
Seqüência de transmissão dos elementos de um macrobloco
CMP237 - Arquitetura e Organização de Processadores
10Algoritmo da Hadamard 4x4
Algoritmo da Hadamard inversa 4x4
CMP237 - Arquitetura e Organização de Processadores
11Arquitetura da Hadamard 4x4
Arquitetura da Hadamard inversa 4x4
CMP237 - Arquitetura e Organização de Processadores
12Resultados de Síntese
Dispositivo utilizado: 2vp30fg676-6
Número de Slices: 1478 (10%)Number of Slice Flip Flops: 2126 (7%)Number of 4 input LUTs: 606 (2%)
Freqüência: 202,02MHz
Throughput: 202 milhões de amostras por segundo
CMP237 - Arquitetura e Organização de Processadores
13Metodologia
Hadamard 4x4
PPC
FPGA
MEM
CMP237 - Arquitetura e Organização de Processadores
14Placa Digilent XUP-V2P
•FPGA Virtex II Pro XC2VP30 com 30.816
células lógicas e 2 PowerPC hardwired;
•Memória DIMM SDRAM DDR (até
2Gbytes);
•Porta USB2;
•Porta serial RS-232;
•Etc...
CMP237 - Arquitetura e Organização de Processadores
15Xilinx Platform Studio
Detalhe do XPS mostrando a aplicação em C rodando no PowerPC
CMP237 - Arquitetura e Organização de Processadores
16Xilinx Platform Studio
Detalhe do XPS mostrando os arquivos VHDL de uma das transformadas
CMP237 - Arquitetura e Organização de Processadores
17Xilinx Platform Studio
Detalhe do XPS mostrando os componentes envolvidos na prototipação
CMP237 - Arquitetura e Organização de Processadores
18Arquivos Texto
Arquivo com os valores de entrada extraídos do código de referência do H.264
CMP237 - Arquitetura e Organização de Processadores
19Terminal
Detalhe dos resultados de cálculo sendo mostrados no terminal
CMP237 - Arquitetura e Organização de Processadores
20Arquivos Texto
Detalhes do arquivo resultante da comparação de resultados
CMP237 - Arquitetura e Organização de Processadores
21Tarefas
Estudo das características do PowerPC;
Estudo mais aprofundado sobre a comunicação entre os componentes envolvidos no projeto (processador, memória, co-processador);
Desenvolvimento dos códigos;
Verificação e prototipação;
Comparação dos resultados;
CMP237 - Arquitetura e Organização de Processadores
22Conclusões
Para o Virtex2 Pro só é possível extender o conjunto de instruções com um subconjunto oferecido pela Xilinx.
Taxa de processamento da IHAD 4x4 foi de 202 milhões de amostras por segundo, suficiente para HDTV.
CMP237 - Arquitetura e Organização de Processadores
23Trabalhos Futuros
Como trabalhos futuros, pretendemos utilizar algum processador descrito em VHDL que possua seu código aberto e inserir instruções especificas para o co-processamento das transformadas do padrão H.264.
Desta forma poderemos desenvolver, rapidamente códigos que utilizem os IPs existentes para as transformadas do padrão.
CMP237 - Arquitetura e Organização de Processadores
24ReferênciasDIGILENT. Digilent Inc. – Digital Design Engineer’s Source. Disponível em: <http://www.digilent.com>. Acesso em: 06 jun. 2006.
HENNESSY, J. L. Organização e projeto de computadores : a interface hardware/software. 2. ed. Rio de Janeiro : LTC, c2000.
IBM. PowerPC Microprocessor Family: The Programming Environments for 32-Bit Microprocessors. Disponível em: <http://www.digilent.com>. Acesso em: 19 jun. 2006.
XILINX. PowerPC™ 405 Processor Block Reference Guide: EmbeddedDevelopment Kit. Disponível em: <http://www.xilinx.com>. Acesso em: 14 jun. 2006.
XILINX. PowerPC Instruction Set Extension Guide: ISA Support for the PowerPCAPU Controller in Virtex-4. Disponível em: <http://www.xilinx.com>. Acesso em: 14 jun. 2006.
XILINX. Virtex II Pro: PowerPC 405 Processor. Disponível em: <http://www.xilinx.com/products/silicon_solutions/fpgas/virtex/virtex_ii_pro_fpgas/capabilities/powerpc.htm>. Acesso em: 06 jun. 2006.
XILINX. Xilinx: The Programmable Logic Company. Disponível em: <http://www.xilinx.com>. Acesso em: 06 jun. 2006.
XILINX. Xilinx University Program Virtex-II Pro Development System: Hardware Reference Manual. Disponível em: <http://www.xilinx.com>. Acesso em: 06 jun. 2006.