Buscar

2019819_13244_AC_11

Prévia do material em texto

Arquitetura de 
Computadores I
Prof. MSc. Daniel Menin Tortelli
danielmenintortelli@gmail.com
Placas de Vídeo
Como as placas de vídeo funcionam
• A placa de vídeo é o componente responsável por produzir as imagens geradas 
pelo computador.
• Virtualmente, todos os programas produzem uma saída visual.
• A placa de vídeo é o componente de hardware que pega essas saídas e diz ao 
monitor quais são os pontos na tela que devem ser acesos (e em qual cor).
• A variação da cor dos pontos da matriz que constituem a tela do monitor 
formam uma imagem.
• Ela é responsável por transformar a informação digital produzida pelo 
computador em algo que os seres humanos possam ver.
Como as placas de vídeo funcionam
• As imagens exibidas no monitor são formadas por pequenos pontos chamados 
pixels.
• Dependendo da resolução, o monitor exibe milhões de pixels na tela; o 
computador precisa decidir o que fazer com cada pixel para que uma imagem 
seja montada.
• Para realizar esta tarefa, o computador precisa de um dispositivo que traduza 
os dados binários da CPU em uma imagem.
• A menos que o computador possua um processador com essa capacidade, o 
trabalho de tradução dos dados binários em imagens é feito pela placa de 
vídeo.
Barramento (BUS)
CPU Periféricos
Memória
Frame
Buffer
Controlador
de vídeo
Monitor
Arquitetura Simples
Arquitetura de Sistemas Gráficos
Arquitetura de Sistemas Gráficos
• Arquitetura clássica de um PC com uma placa de vídeo integrada, compartilhando a 
memória principal com o resto do sistema. Parte da memória RAM é usada exclusivamente 
pela GPU integrada.
Arquitetura de Sistemas Gráficos
Barramento (BUS)
CPU Periféricos
Memória
Frame
Buffer
Controlador de
vídeo
Monitor
Proces-
sador
gráfico
Memória
do 
Sistema
Arquitetura
com processador
gráfico (GPU)
Arquitetura de Sistemas Gráficos
• Arquitetura clássica de um PC com uma placa de vídeo dedicada usando barramento PCI 
Express.
• Uma imagem digital é descrita por uma
matriz N x M de valores inteiros positivos,
que indicam a intensidade de cor em cada
posição [x,y] da imagem.
• Cada elemento da imagem é denominado
pixel (picture element).
O que é uma imagem digital?
O que é uma imagem digital?
• Um pixel é caracterizado pelo valor de tonalidade de cor e pela sua
localização na imagem (x, y).
Como as placas de vídeo funcionam
• A CPU trabalha em conjunto com programas aplicativos (ex: jogos), mandando 
informações sobre a imagem a ser gerada para a placa de vídeo.
• A placa de vídeo, decide como usar os pixels na tela para criar uma imagem. Após 
gerar a imagem, a mesma é enviada e exibida no monitor.
• Para criar uma imagem 3D, a placa de vídeo primeiro cria os objetos que compõem a 
cena a partir de primitivas básicas de renderização, como por exemplo, uma coleção 
de vértices conectados por arestas, formando uma malha de triângulos (polígono).
• Em seguida, a imagem passa pelo processo de rasterização, onde os polígonos são 
preenchidos com pixels configurados com uma determinada cor. 
• Para dar a cor final dos pixels, dados provenientes de cálculos de iluminação e texels
de texturas também são usados.
Pipeline Gráfico
Pipeline Gráfico
• Processamento dos Vértices:
• Vértices são transformados para coordenadas de 
“espaço de tela”. (Cada vértice é transformado 
individualmente.
• Os vértices são ligados para criar primitivas como 
triângulos e quadrados.
• Processamento de Primitivas:
• Os vértices são organizados em primitivas e passam 
por processos de clipping e culling.
Pipeline Gráfico
• Rasterização:
• As primitivas são rasterizadas (preenchidas com uma 
determinada cor).
• Nesse estágio, os pixels que irão compor a imagem 
final são chamados de fragmentos, pois precisam 
passar por mais processos antes de serem gravados 
efetivamente no framebuffer e, então, exibidos na tela.
• Cada primitiva (triângulo) que compõe o objeto é 
rasterizado individualmente.
Pipeline Gráfico
• Processamento de Fragmentos:
• Os fragmentos passam por modificações através de 
sombreamento e aplicação de cor.
• Cada fragmento é processado individualmente.
Pipeline Gráfico
• Operações nos Pixels:
• Os fragmentos são gravados no framebuffer em suas 
devidas posições.
• A informação contida no z-buffer irá determina quais 
são os pixels que serão visíveis na imagem final.
O Pipeline Gráfico (DX 10)
O Pipeline Gráfico (DX 10)
• Estágio de Input-Assembler (IA): é responsável pela leitura de tipos de dados 
primitivos (pontos, linhas e triângulos) fornecidos por buffers definidos pelo 
usuário e reuni-los em forma de primitivas que serão usados pelos estágios 
subsequentes do pipeline. O estágio de Input-Assembler (IA) pode reunir 
vértices para formar vários tipos diferentes de primitivas, tais como: triângulos, 
linhas, lista de linhas, lista de triângulos ou primitivas com adjacência.
• Estágio de Vertex-Shader (VS): sua função é o processamento de vértices 
vindos do estágio de IA, realizando tipicamente operações como 
transformações espaciais, iluminação por vértice, morphing e skinning. A 
entrada desse estágio é sempre um único vértice por vez, que, após realizadas 
as operações desejadas, é passado para o próximo estágio do pipeline.
O Pipeline Gráfico (DX 10)
• Estágio de Geometry-Shader (GS): a entrada deste estágio é uma primitiva 
inteira, podendo ser três vértices representando um triângulo, dois vértices 
representando uma linha ou, como no estágio de vertex-shader, apenas um 
único vértice. Além disso, cada primitiva pode conter informação adicional 
sobre primitivas adjacentes. O estágio de Geometry-Shader também suporta 
amplificação e remoção de geometrias. Dessa forma, dada uma primitiva de 
entrada, este estágio pode descartar esta primitiva, apenas repassá-la para o 
próximo estágio ou criar novas primitivas baseadas na mesma.
• Estágio de Stream-Output (SO): este estágio é responsável por repassar dados 
de primitivas vindos do estágio de GS (ou do VS caso o GS for nulo) para um ou 
mais buffers na memória da placa de vídeo. Estes dados contidos na memória 
podem ser enviados para qualquer estágio do pipeline gráfico.
O Pipeline Gráfico (DX 10)
• Estágio de Rasterização (RS): responsável por converter informação de vetores 
(composta por formas ou primitivas) em uma imagem formada através de pixels de 
cores diferentes. Durante a rasterização, cada primitiva é convertida em pixels, 
enquanto é realizada a interpolação de valores por vértice através de cada primitiva. 
Também realiza operações de clipping (corte) em primitivas, preparando as mesmas 
para o estágio de pixel-shader.
• Estágio de Pixel-Shader (PS): recebe dados interpolados para uma determinada 
primitiva e gera dados per-pixel tais como técnicas de sombreamento (shading) e 
pós-processamento. Combina variáveis constantes, dados de textura, valores por 
vértice interpolados e outros dados para produzir saídas por pixel.
• Estágio de Output-Merger (OM): realiza a combinação de diversos tipos de saída de 
dados, entre os quais estão valores vindos do estágio de pixel-shader e informação 
de depth e stencil. Este estágio gera a cor final do pixel a ser renderizado.
APIs Gráficas
• São bibliotecas de funções utilizadas para programação de jogos, 
desenvolvimento de aplicativos em 3D e 2D - interativos e em tempo real -, e 
responsável pela forma como os gráficos são processados pelo sistema. 
• As APIs gráficas atuais são:
• OpenGL (multiplataforma).
• OpenGL ES (API 3D para dispositivos móveis).
• Direct3D (um subconjunto do DirectX).
• Vulkan (API de mais baixo nível, sucessora do OpenGL, unifica o OpenGL e o OpenGL ES 
em uma única API).
Linguagens de Shading
• São linguagens de programação gráficas utilizadas para criação de pequenos 
códigos que são executados nos estágios programáveis do Pipeline de 
renderização.
• Os shader programs executam para cada vértice (vertex shader), primitiva 
(geometry shader) e pixels (pixel shader), quepassam pelo pipeline gráfico.
• São utilizados para modificação e cálculos nos vértices, adição e remoção de 
geometrias em tempo real e vários efeitos sobre os pixels finais da imagem.
• São executados em paralelo seguindo o modelo SIMD (Single Instruction, 
Multiple Data).
Linguagens de Shading
• As linguagens de shading mais usadas são:
• ARB Assembly Language: um conjunto de instruções de baixo nível utilizado 
para programação em GPUs. 
• DirectX Shader Assembly Language: usada em conjunto com a API Direct3D 
8 e 9.
• OpenGL Shading Language (GLSL): usada em conjunto com a API OpenGL.
• DirectX High-Level Shader Language (HLSL): usada em conjunto com a API 
Direct3D 10, 11 e 12.
Arquitetura de uma placa de vídeo 
• Hoje, tanto a NVIDIA 
quanto a AMD 
utilizam uma 
arquitetura unificada 
e unidades 
programáveis 
massivamente 
paralelas em seus 
cores.
• Essa arquitetura foi 
utilizada inicialmente 
em placas da série 8 
da NVIDIA e com o 
advento da API 
DirectX 10.
Stream Processors
• Stream Processing é uma técnica que 
simplifica o processamento paralelo de 
hardware e software.
• Também conhecidos como CUDA cores, 
são o número de processadores 
individuais que compõem a GPU.
• Os CUDA cores dividem o trabalho do 
processamento dos cálculos de 
geometria e rasterização que a GPU 
realiza de maneira totalmente paralela.
• Cada ponto verde da figura ao lado 
representa uma unidade de 
processamento (CUDA core) da GPU.
https://www.youtube.com/watch?v=-P28LKWTzrI
https://www.youtube.com/watch?v=-P28LKWTzrI
Stream Processors
Como as placas de vídeo funcionam
• A placa de vídeo trabalha em conjunto com 4 componentes principais do 
computador para realizar sua tarefa:
• Placa-mãe: para conexão dos componentes e tráfego de dados.
• CPU: que decide o que fazer com dada pixel na tela.
• Memória: para armazenar as informações sobre cada pixel e temporariamente 
armazenar a imagem final gerada.
• Monitor: que exibe a imagem final na tela.
Componentes de uma Placa de Vídeo: GPU
• Assim como a placa-mãe, a placa de vídeo é uma placa de circuito impresso 
(PCB) que contém um processador e memória RAM (VRAM).
• Também possui um sistema de entrada e saída (VBIOS) próprio, que realiza 
diagnósticos de memória e entrada e saída durante a inicialização do sistema.
• O processador da placa de vídeo, chamado de Unidade de Processamento 
Gráfico (GPU), é muito similar à CPU.
• Entretanto, ele é projetado especificamente para realizar cálculos matemáticos 
e de geometria complexos, necessários para a renderização das imagens.
NVIDIA GTX 1080
AMD RX 480
Componentes de uma Placa de Vídeo: VRAM
• A memória RAM presente nas placas de vídeo é denominada Vídeo RAM (VRAM).
• As imagens geradas pela GPU ficam armazenadas nessa memória dedicada antes de 
serem exibidas na tela (FRAMEBUFFER). 
• Também são armazenadas informações sobre texels das texturas aplicadas aos 
polígonos, provenientes de um arquivo de imagem e para efeitos de pós-
processamento.
• A VRAM armazena os dados de cada pixel, sua cor e localização na tela.
• A VRAM opera em uma velocidade muito alta e é dual ported, ou seja, o sistema 
pode ler e escrever nela ao mesmo tempo.
Componentes de uma Placa de Vídeo: VRAM
Componentes de uma Placa de Vídeo: RAMDAC (obsoleto)
• A VRAM é conectada diretamente a um chip conversor digital-analógico, 
chamado de DAC.
• Esse conversor, também chamado de RAMDAC, faz a tradução da imagem 
digital gerada pela GPU em um sinal analógico que o monitor pode usar. Muito 
utilizado na era dos monitores CRT com interface VGA.
• Atualmente, o uso de interfaces digitais como DVI, HDMI e DisplayPort, tornou 
desnecessária a necessidade do RAMDAC.
Componentes de uma Placa de Vídeo: RAMDAC (obsoleto)
Componentes de uma Placa de Vídeo: Conexões
• As placas de vídeo são conectadas na placa-mãe
do computador em um dos slots de expansão, 
utilizando uma de três interfaces existentes:
• PCI (Interconector de Componentes Periféricos).
• AGP (Porta Gráfica Acelerada).
• PCIe (PCI Express).
• A interface PCI Express é a mais recente as mais 
rápidas taxas de transferência de dados entre a 
placa de vídeo – placa-mãe – processador. 
• A interface PCI Express também permite a 
conexão mais de uma placa de vídeo no mesmo 
computador. NVIDIA SLI e AMD Crossfire.
Componentes de uma Placa de Vídeo: Conexões
Componentes de uma Placa de Vídeo: Conectores de Saída.
• VGA (Video Graphics Array): usado em monitores analógicos (CRT).
• DVI (Digital Visual Interface):
• DVI-D (Digital), DVI-A (Analog), DVI-I (Integrated Digital/Analog).
• HDMI (High-Definition Multimedia Interface): é uma interface condutiva 
totalmente digital de áudio e vídeo capaz de transmitir dados não 
comprimidos, representando, por isso, uma alternativa melhorada aos 
padrões analógicos.
• DisplayPort: A Interface é usada para conectar uma fonte de vídeo ao 
dispositivo de exibição, apesar de também poder transmitir: Áudio, USB, e 
outras forma de dados.
Componentes de uma Placa de Vídeo: Conectores de 
Saída.
DisplayPort DVI
HDMI D-SUB VGA
Fatores de desempenho
• O hardware da placa de vídeo afeta diretamente a sua velocidade.
• Os principais fatores de desempenho que devem ser levados em consideração 
são:
• GPU Clock Speed (MHz)
• Tamanho do barramento de memória (bits)
• Quantidade de VRAM (MB)
• Memory Clock Rate (MHz)
• Memory Bandwidth (GB/s)
• RAMDAC Speed (MHz)
• Render Output Units (ROPs)
Taxa de Quadros por Segundo (FPS)
• Uma medida de desempenho das placas de vídeo é a quantidade de imagens que ela 
pode gerar num determinado intervalo de tempo.
• Essa medida é denominada Taxa de Quadros por Segundo (FPS).
• Para que se possa criar a ilusão de animação suave dos objetos da imagens é 
necessário que sejam gerados mais de 25 quadros por segundo. Em aplicações como 
jogos, essa taxa ideal é de 60 quadros por segundo.
• Os componentes da taxa de quadros são:
• Triângulos e Vértices por Segundo: como as imagens 3D são compostas por uma malha de 
triângulos, essa medida representa o quão rápido a GPU é capaz de calcular um polígono 
completo ou os vértices que o definem.
• Taxa de Preenchimento de Pixel (Pixel Fill Rate): essa medida representa quantos pixels a GPU 
pode processar por segundo. Ou seja, o quão rápido o processo de rasterização ocorre.
Nomenclatura das Placas de Video
Nomenclatura das Placas de Video
Pesquise e Responda:
1. Monte uma tabela demonstrando as vantagens e desvantagens dos monitores que usam sinal analógico (CRT) e dos que 
usam sinal digital (LCD).
2. Monte uma tabela demonstrando as características, vantagens e desvantagens dos conectores VGA, DVI, HDMI e 
DisplayPort.
3. Faça uma pesquisa detalhada e escreva sobre o funcionamento, vantagens e desvantagens das interfaces PCI, AGP e 
PCIe.
4. A velocidade do processador e a largura do barramento de dados da placa-mãe podem afetar o desempenho de uma 
placa de vídeo? Explique.
5. A quantidade de VRAM possui algum impacto na performance da placa de vídeo? Explique.
6. É fato que pelo seu poder de processamento paralelo, as GPUs conseguem realizar muito mais tarefas do que a CPU. 
Então, por que as CPUs não são substituídas por uma GPU no sistema computacional?
7. Pesquise e monte uma tabela que compara as APIs gráficas OpenGL e Direct3D. Demonstre suas vantagens e 
desvantagens.

Continue navegando

Outros materiais