extendendo o conjunto de instruções de um ppc para uso de

24
Estendendo o Conjunto de Instruções de um PPC para Uso de Transformadas do H.264 Marcelo Schiavon Porto Roger E. C. Porto {msporto, recporto}@inf.ufrgs.br CMP237 - Arquitetura e Organização de Processadores

Upload: others

Post on 22-Oct-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

Page 2: Extendendo o Conjunto de Instruções de um PPC para Uso de

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.

Page 3: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

3Codificador H.264

Diagrama em blocos do codificador H.264

Page 4: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

4Decodificador H.264

Diagrama em blocos do decodificador H.264

Page 5: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

5Transformada Inversa

Page 6: Extendendo o Conjunto de Instruções de um PPC para Uso de

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;

Page 7: Extendendo o Conjunto de Instruções de um PPC para Uso de

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.

Page 8: Extendendo o Conjunto de Instruções de um PPC para Uso de

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.

Page 9: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

9Decodificador H.264

Seqüência de transmissão dos elementos de um macrobloco

Page 10: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

10Algoritmo da Hadamard 4x4

Algoritmo da Hadamard inversa 4x4

Page 11: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

11Arquitetura da Hadamard 4x4

Arquitetura da Hadamard inversa 4x4

Page 12: Extendendo o Conjunto de Instruções de um PPC para Uso de

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

Page 13: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

13Metodologia

Hadamard 4x4

PPC

FPGA

MEM

Page 14: Extendendo o Conjunto de Instruções de um PPC para Uso de

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...

Page 15: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

15Xilinx Platform Studio

Detalhe do XPS mostrando a aplicação em C rodando no PowerPC

Page 16: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

16Xilinx Platform Studio

Detalhe do XPS mostrando os arquivos VHDL de uma das transformadas

Page 17: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

17Xilinx Platform Studio

Detalhe do XPS mostrando os componentes envolvidos na prototipação

Page 18: Extendendo o Conjunto de Instruções de um PPC para Uso de

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

Page 19: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

19Terminal

Detalhe dos resultados de cálculo sendo mostrados no terminal

Page 20: Extendendo o Conjunto de Instruções de um PPC para Uso de

CMP237 - Arquitetura e Organização de Processadores

20Arquivos Texto

Detalhes do arquivo resultante da comparação de resultados

Page 21: Extendendo o Conjunto de Instruções de um PPC para Uso de

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;

Page 22: Extendendo o Conjunto de Instruções de um PPC para Uso de

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.

Page 23: Extendendo o Conjunto de Instruções de um PPC para Uso de

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.

Page 24: Extendendo o Conjunto de Instruções de um PPC para Uso de

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.