Baixe o app para aproveitar ainda mais
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.
Compartilhar