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 ...
![Page 1: Extendendo o Conjunto de Instruções de um PPC para Uso de ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/1.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/2.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/3.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/4.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/5.jpg)
CMP237 - Arquitetura e Organização de Processadores
5Transformada Inversa
![Page 6: Extendendo o Conjunto de Instruções de um PPC para Uso de ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/6.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/7.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/8.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/9.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/10.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/11.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/12.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/13.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/14.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/15.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/16.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/17.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/18.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/19.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/20.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/21.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/22.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/23.jpg)
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 ...](https://reader031.fdocumentos.com/reader031/viewer/2022012418/6172c71b6b9fb6298d40d14e/html5/thumbnails/24.jpg)
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.