Programação em GPU: Passado, Presente e Futuro

Tamanho: px
Começar a partir da página:

Download "Programação em GPU: Passado, Presente e Futuro"

Transcrição

1 2 Conteúdo Programático Programação em GPU: Passado, Presente e Futuro José Ricardo Mello Viana Msc. em Engenharia de Sistemas e Computação PESC/COPPE/UFRJ Parte 1 Introdução Conceitos Iniciais Programação em GPU CPU/GPU: Poder Computacional Aplicações Recentes Problema: não é simples de usar Pipeline Gráfico Evolução das GPU s Da era pré-gpu à terceira era das placas de vídeo 3 4 Conteúdo Programático Parte 2: Início da programação em GPU A virada da ATI Mini tutorial de GLSL A retomada da NVIDIA Empate das gigantes Inércia na ATI Comprada pela AMD, ATI volta a briga Geração atual de placas de vídeo E o futuro... Introdução GPU: Graphics Processing Unit Chip responsável pelo processamento gráfico Especializado em processamento gráfico 3D Videogames, Computadores pessoais, Celulares e equipamentos multimídia Nintendo Wii, Playstation 3, XBOX 360, PSP, Nintendo DS, iphone, Microsoft Zune HD On-board ou Off-board Poucos usuários realmente necessitam 5 6 Conceitos Iniciais Inicialmente projetadas para gráficos Recebimento de informações da CPU e geração de imagens para o usuário visualizar na tela Alto desempenho para cálculos matemáticos e geométricos complexos Alto poder de processamento paralelo Muito mais unidades de processamento que de armazenamento (em contraste com a CPU) 1

2 7 8 Programação em GPU CPU/GPU: Poder Computacional Funcionalidade fixa para processamento gráfico Estágios programáveis foram introduzidos Vertex shader Geometry shader Fragment Shader (Pixel shader) Arquiteturas mais recentes possuem unidades genéricas para processar quaisquer desses shaders Programação Genérica em GPU 9 10 Aplicações Recentes Problema: não é simples de usar GPUs foram desenhadas para processamento gráfico Modelo de programação não usual Programação dependente do pipeline gráfico Ambiente de programação restrito Arquiteturas de GPUs Executam processamento paralelo Em constante evolução Fechada, segredo do fabricante Codificação Não basta "recompilar" código tradicional Ferramental mínimo Novas tendências: CTM (AMD), CUDA (NVIDIA) Pipeline Gráfico Pipeline Gráfico Computa geometria 3D e faz chamadas à API gráfica Transforma geometria 3D para 2D (em paralelo) Gera fragmentos a partir da geometria 2D (em paralelo) Combina fragmentos para formar uma imagem 2

3 13 14 História das GPU s Desde a criação das primeiras GPU s, ocorreram muitas mudanças Novas utilizações Novas funções Grande aumento na sua capacidade de processamento Retirada uma grande carga de trabalho das CPU s, transferindo-as para as GPU s. Era pré-gpu ANTIC (Alpha-Numeric Television Interface Controller) Criado especialmente para mapping (mapeamento) Microcomputadores e no videogame Atari 5200 Lia os dados de exibição da RAM Commodore Amiga Projetada para ser um videogame Carregava todas as funções de geração de vídeo para o hardware (preenchimento, desenho de linhas, etc) Co-processador gráfico com conjunto de instruções próprias Commodore Amiga GPU pioneira IBM PC IBM MDA Monochrome Display Adapter (Adaptador de Vídeo Monocromático) Apenas em modo texto: 25 linhas e 80 colunas Aceleração 2D S3 Trio Primeiro com recurso de aceleração 2d: S3 Trio Lançado pela antiga S3 Primeira a reunir os três componentes básicos: o processador, o RAMDAC (conversor digital/analógico) e o gerador de frequência Diferentes versões on-board e off-board Controladora de memória de 64bits Modelos: Trio64 e Trio64V+, Trio32, Trio64V2 3

4 19 20 Chegada das 3 dimensões S3 ViRGE Segunda família da S3: o S3 ViRGE (1995) Compatível com as placas projetadas para o Trio Desempenho 3D pouco melhor que o da CPU Modelos: ViRGE/325, ViRGE/DX, ViRGE/GX, ViRGE/GX2 Filtro de texturas Bilinear e Trilinear, Alpha Blending, mapeamento MIP, mapeamento de texturas de vídeo, Z-Buffering, entre outros Aparecimento da NVIDIA NVIDIA NV1 Pouco depois do lançamento do S3 ViRGE, a recém-criada NVIDIA lançou o NV1 Melhor que o ViRGE, mas muito mais caro Integrava acelerador 3D com base em polígonos quadrangulares (hoje triângulos), um processador sonoro e VRAM (memória de vídeo) Tentou ser uma central multimídia completa Áudio próprio e compatibilidade com o SEGA Saturn (forte concorrência do Playstation) ViRGE ainda reina Fabricantes, cada vez mais, tentam transformar placas de vídeo em centrais multimídia Do lado oposto, começam a surgir as primeiras placas realmente otimizadas para processamento gráfico ATI desponta no mercado A ATI technologies, lança a família Rage: chip ainto Mach com poder de processamento 3D Não foi muito boa Em 1997, ATI lança a família Rage II que dobrava a velocidade da Rage original 8 MB de memória SDRAM, 64-bit e 60 MHz de clock Suporte a execução de DVD Desempenho foi melhorado consideravelmente, destacando a ATI na briga pelo mercado Porém, não foi um sucesso 4

5 25 26 ATI Rage Voodoo 1: A revolução Ainda em 1996, surgem três empresas : a 3dfx, a Imagination Tecnologies e a Rendition Voodoo 1, PowerVR e Vérité 1000 Voodoo 1: bom processamento gráfico e preço ótimo => sucesso, nenhuma as concorrentes conseguiu alcançá-la Não apresentava nenhuma funcionalidade 2D Era necessário comprar mais de uma placa dfx Voodoo 1 Ascensão e queda da 3dfx Em 1997, apareceram diversos adversários da Voodoo 1 Rage II, da ATI e NVIDIA Riva 128 NVIDIA Riva 128: primeira placa 3D da história a suportar o Direct 3D Tornou-se a melhor placa de vídeo 3D do mercado Outros lançamentos: Voodoo Rush, Rage PRO, da ATI NVIDIA Riva 128 Ascensão e queda da 3dfx Inicio de 1998: NVIDIA lança a Riva 128ZX Pequena atualização da Riva 128: apenas um suporte de memória de vídeo maior(8mb) 3dfx lança a verdadeira sucessora da Voodoo 1: a Voodoo 2 e a Voodoo Banshee (Voodoo 2 de baixo custo) Retomou a coroa de melhor acelerador gráfico NVIDIA lança a Riva TNT (NV4): incomoda um pouco a Voodoo 2, mas a 3dfx sai vencedora Problemas de aquecimento com a placa da NVIDIA S3 lança a família Savage3D, um fiasco: erros na produção 5

6 31 32 Voodoo 2 Investida da Intel Também a Intel tentou entrar na briga, mas logo desistiu e passou fabricar apenas chips de vídeo on-board Primeira Geração de GPU s Placas até 1998 constituem a chamada primeira geração das GPU s Pipeline de renderização fixo Possibilitam apenas a renderização de triângulos pré-transformados Servia apenas como um dispositivo que enviava os dados para o monitor, sem processamento interno, nem possibilidades de implementar programas para execução na GPU Segunda Geração de GPU s: A queda da 3dfx 1999: haviam apenas 3 grandes competidores no mercado: ATI, NVIDIA e 3dfx, com as linhas Rage 128, Riva TNT2 e Voodoo 3 A ATI Rage 128 recebeu diferentes versões e foi atualizada para a Rage 128 PRO Usados como base para a criação da Rage Fury MAXX, onde dois chips ocuparam a mesma placa e cada um renderizava um frame diferente. Foi ignorada por não haver software compatível, embora a ideia de se usar dois chips de vídeo na mesma placa seja utilizada até hoje em dia ATI Rage Fury MAXX Segunda Geração de GPU s: A queda da 3dfx A Riva TNT2 (2 modelos: a TNT2 e a TNT2 M64) Diferença: barramento de memória, que na TNT2 M64 era cortado pela metade (64bits) Pequena atualização da TNT original, contudo ela conseguiu manter a coroa de melhor acelerador gráfico com a NVIDIA devido a TNT2 Ultra Voodoo3 : processador integrado 2D/3D Alternava-se no topo com a TNT2, dependendo do aplicativo Para o segmento baixo custo a 3dfx repetiu a teoria do bem sucedido Voodoo Banshee, com a linha Velocity. 6

7 37 38 NVIDIA Riva TNT2 Segunda Geração de GPU s: A queda da 3dfx A 3dfx começa a ruir Últimos projetos: Voodoo 4 e 5 e a grande contribuição que ela deu ao mercado de VGAs, o SLI Scan-Line Interleave: cada GPU renderizava alternadas linhas horizontais (foi a primeira empresa a oferecer processamento paralelo) Sucessivos atrasos acabaram por matar a 3dfx Geforce 256 e Radeon davam resposta antes mesmo dos lançamentos da 3dfx No fim de 2000 a 3dfx é vendida para a NVIDIA Voodoo 3: um dos últimos sucessos da 3dfx Segunda Geração de GPU s: A queda da 3dfx Nesta segunda geração várias funcionalidades foram migradas da CPU para a GPU Transformações geométricas (rotação, translação e escala) e ainda, a aplicação de iluminação. Velocidade de renderização ainda maior Desafogamento da CPU Objetos e operações são apenas transportados para a GPU, que se encarregaria do cálculo pesado Nada de programação em GPU ainda Terceira Geração de GPU s: NVIDIA x ATI No fim de 1999, NIVIDIA lança a Geforce 256 Corrigia alguns erros da linha Riva Primeira VGA totalmente compatível com o Direct3D 7 No início, ela utilizava memória SDR, que por não tirar todo o potencial do chip foi substituída mais tarde pela DDR Possuía desempenho melhor que todos os chips existentes e superava a linha Riva TNT2 Ultra por uma margem de no mínimo 50% Geforce 256 7

8 43 44 Terceira Geração de GPU s: NVIDIA x ATI A ATI Rage Fury MAXX conseguia bater a Geforce 256 com SDR, porém, a com DDR era inalcançável O problema era seu preço: fazia com que ela fosse acessível para poucos No ano seguinte, a ATI lança uma rival à altura da Geforce 256: a Radeon 7000 (codinome R100), que foi lançada em duas versões diferentes (com e sem entrada/saída de vídeo) e ambas eram melhores que a Geforce 256 ATI Radeon Terceira Geração de GPU s: NVIDIA x ATI A NVIDIA não ficou parada e lançou a Geforce 2 GTS, superando a ATI NVIDIA resolveu atacar vários segmentos do mercado, lançando versões: Baixo custo e desempenho (linha Geforce 2 MX) Custo/benefício (linha Geforce 2 TI) Alto desempenho e preço (linha Geforce 2 GTS) NVIDIA Geforce 2 GTS Terceira Geração de GPU s: NVIDIA x ATI A reação da ATI foi imediata: O chip R100 foi rebatizado comercialmente como Radeon 7200 para competir com a Geforce 2 TI O chip RV100 (versão rebaixada) foi lançado como Radeon 7000 para competir com a Geforce 2 MX. As mudanças da ATI foram as seguintes: O R100 original mudou de nome para Radeon 7200 e preencheu o mercado midend Introdução do Rv100 conhecido como Radeon 7000, para disputar com a Geforce 2 MX Introdução do Rv200, um R100 de 150nm e clocks maiores. Batia a Geforce 2 Ti e incomodava a Geforce3 Ti. ATI Radeon

9 49 50 Terceira Geração de GPU s: NVIDIA x ATI Nesta geração começa a ser possível a programação em GPU Suporte apenas à vertex shaders Número bastante limitado de instruções possíveis de serem executadas Não havia suporte para números em ponto flutuante, apenas para variáveis de ponto fixo Não havia linguagem de programação voltada para a GPU, era necessário escrever diretamente na linguagem de montagem da GPU (Assembly) A briga das gigantes NVIDIA e ATI e o início da programação em GPU Em fevereiro de 2001, NVIDIA lança a GeForce 3: grande salto para a indústria dos jogos: Era a primeira GPU totalmente programável do mercado Mesmos clocks da GeForce 2 Ultra, mas com uma contagem de transistores mais de duas vezes maior Suporte ao ainda novo DirectX 8 Infelizmente (para a NVIDIA) o DirectX 8 teve uma vida muito curta (substituído pela versão 8.1) NVIDIA perde, logo nos primeiros meses, o suporte a tecnologia mais atual A briga das gigantes NVIDIA e ATI e o início da programação em GPU Em menos de 6 meses a ATI respondeu lançando o modelo R200 (Radeon 8500) Superava a performance da GeForce 3 por uma margem de até 20% GPU programável totalmente compatível com DirectX 8.1 A ATI lançou 8500LE, idêntica a Radeon 8500, mas com clocks menores. A R200 original possuia memórias DDR 64bits Mais tarde, ambas passaram a memórias DDR 128bits, o que rendeu mais desempenho. NVIDIA Geforce 3 e ATI Radeon A briga das gigantes NVIDIA e ATI e o início da programação em GPU Contra-ataque da NVIDIA: Geforce 4 (2002) Sua versão de alto desempenho (Geforce 4 TI) não conseguiu cumprir superar a Radeon 8500 Sua linha de baixo custo (Geforce 4 MX) foi um sucesso comercial por causa do seu preço baixo A Geforce 4 foi muito bem sucedida, tanto que o NV28 ganhava em desempenho da FX5600 e empatava com o fenômeno Radeon 9600 A virada da ATI R200 tinha custo benefício ruim ATI decide lançar outro chip: O R300 chega no fim de 2002 Completamente diferente do R200 Suporte ao Direct3D 9, litografia em 150nm, dobro de transistores, 8 pixel shaders, 8 TMUs, 4 vertex shaders e um sistema de filtros bastante eficiente (100%) R300 também utilizado na geração seguinte: X300, X550X600. Um dos maiores custo beneficio da história Radeon 9600 foi uma das melhores placas nesse quesito de todos os tempos Pela primeira vez, o melhor custo beneficio e o melhor chip eram da mesma empresa, 9600Pro e 9800XT, respectivamente. 9

10 55 56 Placas da série Radeon 9000 A virada da ATI Querendo retomar o trono a NVIDIA lança a serie FX: um grande fiasco Exceto a FX5200, que, apesar de fraca, foi a placa de vídeo mais vendida da história Toda a linha FX perdia para suas concorrentes diretas da ATI Um dos principais motivos do fracasso foram os vários atrasos da NVIDIA Os drivers também não eram dos melhores Mesmo com novas revisões (NV34, 35 e 36), os chips NVIDIA não eram muito competitivos NVIDIA Geforce FX5200 Quarta geração de GPU s Deslancha a programação em placas gráficas Além dos vertex shaders, fragment shader Expansão do número de instruções Suporte a tipos de dados textura e a números de ponto flutuante de 32 bits Linguagens de programação em GPU aparecem Cg, HLSL e GLSL Cg (C for Graphics) Vertex Shader em Cg Desenvolvida pela própria NVIDIA Efeitos como reflexão/refração em tempo real Integração com APIs gráficas, como OpenGL e Direct3D Compilação dinâmica, ou seja, otimização de código para a placa em que vai rodar Possibilidade de um código Cg rodar também em placas da ATI 10

11 61 62 HLSL High Level Shading Language Linguagem proprietária desenvolvida pela Microsoft com suporte à sua API Direct 3D Bastante parecida com Cg por ter sido desenvolvida juntamente à ela, no entanto, como era de se esperar, não é compatível com o padrão aberto OpenGL GLSL OpenGL Shading Language Linguagem aberta pertencente à série de especificações OpenGL Compatibilidade com diferentes plataformas, incluindo Windows, Linux e MacOS Shaders feitos em GLSL podem ser executados em qualquer hardware com suporte a OpenGL Maioria dos fabricantes inclui um compilador GLSL nos drivers das suas placas, sendo possível otimizar o código GLSL para cada placa em específico Vertex Shader e Fragment Shader em GLSL Mini tutorial de GLSL É possível que sejam programados shaders para os seguintes estágios: Transformações nos Vértices (Vertex Shaders). Transformações nas Geometrias (Geometry Shaders) Transformações nos Fragmentos (Fragment Shaders) Vertex Shader Operam sobre os vértices e informações associadas, tais como cores, normais, etc., dependendo do que a aplicação enviar Operações possíveis: Transformações nos Vértices, Transformações de Normais e Normalização, Iluminação, Geração de Coordenadas de Textura, etc. Ao utilizar Vertex Shaders, a funcionalidade fixa da placa é substituída e não pode ser usada. Vertex Shader Cada vértice é trabalhado isoladamente, sem conhecimento dos vértices restantes Deve-se calcular, obrigatoriamente, uma posição. Cor e outros atributos são opcionais Tem-se acesso ao estado do OpenGL atual, incluindo algumas varíaveis pré-calculadas pelo próprio OpenGL Em placas mais recentes pode-se acessar texturas 11

12 67 68 Geometry Shader Operam sobre primitivas, com ou sem informações sobre adjacências. Operações possíveis: Amplificação de Geometria, Sistemas de Níveis de Detalhes(LoD), Tesselação, Detecção de Silhueta por Extrusão (substituir CPU para geração de sombras), Renderização através de um Cube Map (mapeamento em cubo) Ao utilizar Geometry Shaders, a funcionalidade fixa da placa é substituída e não pode ser usada Geometry Shader A partir de cada primitiva pode-se gerar, como saída, zero ou mais primitivas de um mesmo tipo As primitivas geradas podem ser desconectadas Através do stream output pode-se associar dados às primitivas (render-to-vertex-array). Disponível apenas a partir da série 8 da NVIDIA Fragment Shader Operam sobre os fragmentos que são produzidos pelo processo de rasterização Operações possíveis: Cálculo de cores e coordenadas de textura por pixel, Acesso e Aplicação de Texturas, Cálculo de Nevoeiro, Cálculo de normais no caso de iluminação por pixel Ao utilizar Fragment Shaders, a funcionalidade fixa da placa é substituída e não pode ser usada. Fragment Shader Operam isoladamente em um único fragmento, sem qualquer informação sobre os fragmentos vizinhos Fragmentos podem ser descartados As coordenadas de um fragmento não podem ser modificadas Tem acesso ao estado do OpenGL atual, incluindo algumas variáveis pré-calculadas pelo próprio OpenGL, mas não tem acesso (de leitura) ao framebuffer GLSL Shaders Inicialização OpenGL A implementação de um tipo de shader não implica na obrigatoriedade de se implementar os outros Ou seja, pode-se implementar apenas um geometry shader e continuar com a funcionalidade fixa da placa para os outros. Cada shader deve ser compilado e incorporado em um programa, o qual será linkado. 12

13 73 74 Inicialização OpenGL Primeiro, verifica-se se o sistema é capaz de executar programas GLSL. Biblioteca utilizada: GLee.h (Disponível para download no site: GLEE_VERSION_2_0 será true se suportar e false se não. Verifica-se suporte a gemoetry shader através da variável GLEE_EXT_geometry_shader4 Criação dos shaders GLuint glcreateshader (enum type) Onde type pode ser: GL_VERTEX_SHADER GL_GEOMETRY_SHADER_EXT (Ainda está como extensão) GL_FRAGMENT_SHADER Associação de código e compilação dos shaders GLuint glshadersource (uint shader, sizei count, const char **string, const int *length) GLuint glcompileshader (uint shader) Onde: shader é o que foi retornado pelo glcreateshader. count é quantidade de strings. string é o vetor de strings. length é o tamanho de cada string, ou NULL, se terminadas em \0. Construção do programa uint glcreateprogram() void glattachshader(uint program, uint shader) Onde: glcreateprogram retorna um ponteiro para um programa objeto glattachshader une o shader shader ao programa objeto program, que foi retornado pelo glcreateprogram Linkagem e uso void gllinkprogram (uint program) void gluseprogram (uint program) Onde: gllinkprogram faz a linkagem dos shaders associados ao programa. gluseprogram determina se a placa usará a funcionalidade fixa (quando program = 0) ou os shaders associados ao programa (program!= 0). Exemplo GLuint v; v = glcreateshader (GL_VERTEX_SHADER); vs = textfileread( arquivo.vert ); glshadersource (v, 1, &vs,null); glcompileshader (v);... p = glcreateprogram (); glattachshader(p,v); gllinkprogram(p); gluseprogram(p); 13

14 79 80 Comunicação Aplicação->Shader Pode ser feita através de variáveis uniform ou attribute uniform São invariáveis ao longo da primitiva (ex: posição da luz) Acessíveis nos vertex, geometry e fragment shader attribute Atributos associados à vértices (ex: tangente) Acessíveis nos vertex e geometry shaders Comunicação entre shaders Pode ser feita através de variáveis varying. São definidas nos vertex shaders. Seus valores podem ser lidos nos geometry shaders, se houver algum ativo, ou nos fragment shaders Se não houver um geometry shader ativo, os valores de todas as variáveis varying seram interpoladas sobre todos os fragmentos da primitiva Sintaxe GLSL Parecida com C/C + +. Tipos de Dados Simples: Escalares float (ex: float x, y = 2.5;) int (ex: int z = 1;) bool (ex: f= true;) Vetores vec2, vec3, vec4 (ex: vec4 v = vec4(1.0, 2.2, 3.1, 4.8);) ivec2, ivec3, ivec4 (ex: ivec3 v = ivec3(1, 2, 4);) bvec2, bvec3, bvec4 (ex: bvec2 v = bvec3(true, false);) Matrizes mat2, mat3, mat4 (ex: mat2 m = mat2(3.1, 2.2, 5.1, 4.2); // Matriz 2x2) Acesso a elementos de vetores Acesso aos elementos de vetores: Através de nomes (x, y, z, w): vec4 a (a.x, a.y, a.z, a.w, a.xy, a.yw). Através de nomes (r, g, b, a): vec4 a (a.r, a.g, a.b, a.a, a.ra, a.gb). Através de nomes (s, t, p, q): vec4 a (a.s, a.t, a.p, a.q, a.sp, a.tq). Através dos índices: vec4 a (a[0], a[1], a[2], a[3]) Sintaxe Básica GLSL Tipos de Dados Especiais para Texturas: sampler1d (texturas 1D). sampler2d (texturas 2D). sampler3d (texturas 3D). samplercube (texturas para cube maps). sampler1dshadow (texturas para shadow maps). sampler2dshadow (texturas para shadow maps). Estruturas com sintaxe parecida com C: struct dirlight { vec3 direction; vec3 color; }; Qualificadores de variáveis Qualificadores de variáveis: const (definição de constantes). uniform (variável global de somente leitura para todos os shaders (Descrita anteriormente)). attribute (variável global acessível nos vertex e geometry shaders (Descrita anteriormente)). varying (variável global escrita pelos vertex shaders e lida nos outros (Descrita anteriormente)). 14

15 85 86 Sintaxe Básica GLSL Ponto de entrada é a função main É possível fazer loops com for, while e do-while Variáveis podem ser declaradas dentro deles Palavras-chave break e continue existem Condicionais podem ser feitos com if e if-else Variáveis não podem ser declaradas dentro Operador?: está dispon ıvel Palavra-chave especial: discard (Descartar um fragmento no fragment shader) goto e switch não estão disponíveis Sintaxe Básica GLSL if (expressão booleana)... else... for (inicialização; expressão booleana; expressão do loop)... while (expressão booleana)... do... while (expressão booleana) Funções Uma função deve retornar um valor, a palavra-chave return é usada para isso O tipo de retorno pode ser qualquer, exceto array (pode ser void) Funções não pode ser chamadas recursivamente Passagem de parâmetros in: Semelhante à passagem por valor de C/C++. Este parâmetro pode ser reescrito dentro da função (em contraste com const) out: Copia somente para fora, porém é indefinido no momento da chamada da função inout: Semelhante à passagem por referência de C/C++ Exemplos de funções Correto void ComputeCoord(in vec3 normal, vec3 tangent, inout vec3 coord) Ou, vec3 ComputeCoord(const vec3 normal, vec3 tangent, in vec3 coord) Incorreto void ComputeCoord(const out vec3 normal, const inout vec3 tangent, in out vec3 coord) Funções integradas Trigonométricas: sin, cos, tan,... Exponenciais: pow, exp2, log2, sqrt,... Comuns: abs, sign, mod, min,... Interpolações Geométricas: cross, dot, normalize,... Matrizes: matrixcompmult Relações entre vetores: lessthan, lessthanequal, greaterthan,... Texturas: texture1d, texture2d, texture3d,... Vértices: ftransform A retomada da NVIDIA Nenhuma placa da série FX conseguia competir com a ATI até a GeForce FX 5950 Ultra Conta com taxa de preenchimento superior a da 9800PRO e ainda com vazão de memória quase 50% maior Teve seu brilho ofuscado por ter que concorrer com a Radeon 9800XT 15

16 91 92 A retomada da NVIDIA ATI Radeon x850 XT PT Em 2004, o R420 foi usado para equipar as placas de vídeo da linha Radeon X700, X800 e X850 A ATI resolveu continuar apostando no Direct3D 9 No inicio foi acertado, porém, após alguns meses o mercado migrou para o Direct3D 9.0c com shader model 3.0 ATI perdeu mercado para a recém lançada serie 6 da NVIDIA A placa mais poderosa dessa geração foi a X850XT PE No segmento midend o R300 era usado e não foi o bastante para competir com a 6600GT O R420 foi lançado sob esses modelos: X700 (mid-end), X800 (mid e high-end), X850 (high-end) A retomada da NVIDIA NVIDIA Geforce 6600 GT A NVIDIA, vinda do erro chamado FX lançou uma série que não prometia muito, a Serie 6 Foi uma das mais bem sucedidas da história Ao fim de 2004 é lançada a sexta geração de VGAs sob codinome Geforce O suporte, mesmo precário, ao Direct3D 9.0c foi um de seus principais diferencias Empate das gigantes ATI Radeon X1950 XTX No ano seguinte, a ATI se rende ao Direct3D 9.0c com a linha Radeon X1XXX. A NVIDIA, Para não ficar para trás, lançou a série Geforce 7XXX com suporte melhorado ao Direct3D 9.0c Esta geração foi marcada pro preços bem elevados das placas de vídeo, mas pouca diferença de desempenho 16

17 97 98 NVIDIA Geforce 7950 GX2 Inércia na ATI No fim de 2006 a NVIDIA lançou a serie 8 Shaders unificados: Mesmas unidades genéricas serviriam para as duas quaisquer processamentos Novo estágio programável: o geometry shader Começou-se a pensar em programação genérica na GPU Foram criadas linguagens específicas para a chamada GPGPU, tais como Sh e Brook A principal linguagem, já projetada pensando em GPGPU e feita pela própria NVIDIA, chama-se CUDA (Computer Unified Device Architecture) Fragmento de código CUDA A arquitetura CUDA inclui Ferramentas de desenvolvimento em C/C++, bibliotecas de funções Mecanismo de abstração de hardware que esconde os detalhes da implementação em GPU As ferramentas funcionam com compiladores convencionais, o que possibilita a união de código específico para GPU com códigos gerais para CPU NVIDIA no topo NVIDIA Geforce 8800 Ultra A revisão G92 foi concebida no fim de 2007 para ocupar a lacuna entre a 8600GTS e a 8800GTS 320 O chip era tão bom que, pela primeira vez a NVIDIA quebrou a sua nomenclatura e lançou uma placa com codinome GT melhor que outra GTS 17

18 Comprada pela AMD, ATI volta à briga ATI Radeon HD 3870 Em 2007, a ATI fez uma revisão no chip R600, e lançou a Rv670, com menores consumo de energia e preço que a R600 Usada na nova linha Radeon HD Os chips revisados das duas gigantes (Rv670 da ATI e G92 da NVIDIA) foram os grandes responsáveis pela queda de preço das placas Consumidor comum teve acesso a placas de vídeo muito poderosas Comprada pela AMD, ATI volta à briga NVIDIA Geforce 9600 GT NVIDIA aumenta a produção de chips G92 e lançar versão com menos recursos (G94) para atacar a ATI no mercado de placas baratas A Geforce 9600GT (chip G94) foi lançada e fez muito sucesso Era barata e tinha desempenho superior à Radeon HD 3870 (um modelo de alto desempenho) Isto obrigou a ATI a cortar o preço de seus produtos para se manter competitiva Geração atual de GPU s ATI Radeon HD 3870X2 e NVIDIA Geforce 9800 GX2 ATI resolve fazer pequenas melhorias Rv670 para permitir que mais de um processador pudesse ser utilizado em uma única placa Radeon HD3870X2 foi a placa de vídeo mais potente do mercado Durou dois meses, pois a NVIDIA contra-atacou com a Geforce 9800GX2, utilizando o conceito de duas placas de vídeo em uma 18

19 Geração atual de GPU s ATI Radeon HD 4870 Em 2008, NVIDIA e ATI finalmente lançam seus novos chips: o GT200 e Rv770 O GT200 nasce com problemas, pois consumia muita energia sem ter uma potência que justificasse estes gastos Rv700 (Radeon HD 4850/Radeon HD 4870) alguns meses depois, sendo um sucesso de público e crítica Geração atual de GPU s NVIDIA Geforce GTX 280 Agora, a NVIDIA que se viu obrigada a baixar o preço de suas placas para permanecer competitiva Não foi capaz de tomar a coroa da ATI no mercado de alto desempenho e de custo/benefício No atual mercado de baixo custo, a NVIDIA ainda é líder devido à demora da ATI em lançar novos modelos para esta lucrativa fatia Ainda não há rival direto para a 9800GT E o futuro... A cada ano ATI e NVIDIA se degladiam para ter a melhor placa de vídeo do mercado No final o consumidor ganha com isso, pois as placas se tornam cada vez mais potentes e baratas Trazem, ainda, novas ferramentas para programadores utilizarem o alto potencial de cálculos em paralelo das GPU s em suas aplicações, principalmente em programação genérica E o futuro... Nota-se uma convergência CPU s cada vez possuem mais núcleos: Intel Core i7 (8 núcleos) E a tendência é que esse número aumente cada vez mais, tornando-se também máquinas paralela Pode-se imaginar um futuro sem distinção entre CPU e GPU, os dois farão parte do mesmo componente altamente paralelizável Utilização de técnicas como Ray-Tracing em tempo real. 19

20 115 Obrigado... Perguntas??? 20

Programação em GPU: Passado, presente e futuro

Programação em GPU: Passado, presente e futuro Capítulo 1 Programação em GPU: Passado, presente e futuro José Ricardo Mello Viana Abstract Previously designed to process only graphics, the graphics cards (GPU - Graphics Processing Unit) have a fixed

Leia mais

Bruno Pereira Evangelista. www.brunoevangelista.com

Bruno Pereira Evangelista. www.brunoevangelista.com Bruno Pereira Evangelista www.brunoevangelista.com 2 Introdução Shaders Pipeline de Renderização Evolução dos Shaders Como Programar Shaders Programando Shaders com XNA Ferramentas Conclusões 3 Durante

Leia mais

Utilização. de Shaders de efeitos realistas para jogos. Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais

Utilização. de Shaders de efeitos realistas para jogos. Bruno Pereira Evangelista. Pontifícia Universidade Católica de Minas Gerais Utilização de Shaders para criação de efeitos realistas para jogos Bruno Pereira Evangelista Pontifícia Universidade Católica de Minas Gerais Sumário 2/48 Apresentação pessoal Introdução Pipeline de renderização

Leia mais

CPU Unidade Central de Processamento. História e progresso

CPU Unidade Central de Processamento. História e progresso CPU Unidade Central de Processamento História e progresso O microprocessador, ou CPU, como é mais conhecido, é o cérebro do computador e é ele que executa todos os cálculos e processamentos necessários,

Leia mais

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora

OpenGL. Uma Abordagem Prática e Objetiva. Marcelo Cohen Isabel Harb Manssour. Novatec Editora OpenGL Uma Abordagem Prática e Objetiva Marcelo Cohen Isabel Harb Manssour Novatec Editora Capítulo 1 Introdução A Computação Gráfica é uma área da Ciência da Computação que se dedica ao estudo e ao desenvolvimento

Leia mais

Tecnologia PCI express. Introdução. Tecnologia PCI Express

Tecnologia PCI express. Introdução. Tecnologia PCI Express Tecnologia PCI express Introdução O desenvolvimento de computadores cada vez mais rápidos e eficientes é uma necessidade constante. No que se refere ao segmento de computadores pessoais, essa necessidade

Leia mais

Computação Gráfica. Renderização em Tempo Real. Erivaldo Xavier de Lima Filho [email protected]

Computação Gráfica. Renderização em Tempo Real. Erivaldo Xavier de Lima Filho desadoc@gmail.com Computação Gráfica Renderização em Tempo Real Erivaldo Xavier de Lima Filho [email protected] Computação Gráfica É a síntese de imagens por computador Consiste de vários passos: o Modelagem o Renderização

Leia mais

Capítulo 5. Figura 5.2. Conector para o monitor.

Capítulo 5. Figura 5.2. Conector para o monitor. Capítulo 5 Placas de vídeo Visão geral das placas de vídeo Esta placa está presente em todos os PCs, exceto nos que possuem placas de CPU com os circuitos de vídeo embutidos. A maioria dos PCs produzidos

Leia mais

Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação. Carlos Eduardo Rodrigues

Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação. Carlos Eduardo Rodrigues Visão Geral de Hardwares de Renderização e Ferramentas de Avaliação Carlos Eduardo Rodrigues Motivação Os chips gráficos monolíticos da década de 80 evoluíram bastante, e hoje são denominados GPUs (Graphics

Leia mais

Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES

Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES Técnico em Informática - Instalação e Manutenção de Computadores PROCESSADORES Processador... 2 Clock... 5 Multiplicador de clock / FSB... 6 Memória Cache... 6 Processador O processador é o cérebro do

Leia mais

Computação Gráfica. GLSL Programação de Shaders

Computação Gráfica. GLSL Programação de Shaders Computação Gráfica GLSL Programação de Shaders António Ramires Fernandes - Computação Gráfica 07/08 GLSL Sumário Evolução do Hardware Gráfico PCs Pipeline Gráfico Fixo Pipeline Gráfico Programável Processador

Leia mais

Introdução. Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha.

Introdução. Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha. Memorias Introdução Em se tratando de computador, entendemos que memória são dispositivos que armazenam dados com os quais o processador trabalha. Necessariamente existe dois tipos de memórias: -Memória

Leia mais

GLSL Programação de Shaders

GLSL Programação de Shaders Universidade do Minho Mestrado em Informática UCE - Computação Gráfica GLSL Programação de Shaders António Ramires Fernandes GLSL Sumário Evolução do Hardware Gráfico PCs Pipeline Gráfico Fixo Pipeline

Leia mais

Placas de Vídeo. Prof. Alexandre Beletti Ferreira

Placas de Vídeo. Prof. Alexandre Beletti Ferreira Placas de Vídeo Prof. Alexandre Beletti Ferreira Introdução Dispositivo responsável pela comunicação entre a placa mãe e o monitor de vídeo para reproduzir imagens. Dispositivo básico de output. Converte

Leia mais

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P.

INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. INSTITUTO DE EMPREGO E FORMAÇÃO PROFISSIONAL, I.P. Centro de Emprego e Formação Profissional da Guarda Curso: Técnico de Informática Sistemas (EFA-S4A)-NS Trabalho Realizado Por: Igor_Saraiva nº 7 Com

Leia mais

LICENCIATURA EM COMPUTAÇÃO PROCESSADOR TEGRA 2

LICENCIATURA EM COMPUTAÇÃO PROCESSADOR TEGRA 2 LICENCIATURA EM COMPUTAÇÃO PROCESSADOR TEGRA 2 SANTO AMARO 2011 ANGELO RAMOS JACKELINE BARBOSA JEANDERVAL SANTOS PROCESSADOR TEGRA 2 Trabalho apresentado ao Instituto Federal de Ciências e Tecnologia da

Leia mais

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores

A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores A história do Processadores O que é o processador Características dos Processadores Vários tipos de Processadores As empresas mais antigas e ainda hoje no mercado que fabricam CPUs é a Intel, AMD e Cyrix.

Leia mais

Contil Informática. Curso Técnico em Informática Processadores Core

Contil Informática. Curso Técnico em Informática Processadores Core Contil Informática Curso Técnico em Informática Processadores Core Quais as diferenças entre os processadores Intel Core i3, i5 e i7? A tecnologia avançada na área de hardware possibilita um avanço desenfreado

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

OpenGL Shading Language

OpenGL Shading Language OpenGL Shading Language Guilherme S. Moura ([email protected]) Saulo A. Pessoa ([email protected]) Vladimir Alves ([email protected]) Felipe Maia O que é? High Level Shading Language para OpenGL Descreve shaders

Leia mais

TRABALHO COM GRANDES MONTAGENS

TRABALHO COM GRANDES MONTAGENS Texto Técnico 005/2013 TRABALHO COM GRANDES MONTAGENS Parte 05 0 Vamos finalizar o tema Trabalho com Grandes Montagens apresentando os melhores recursos e configurações de hardware para otimizar a abertura

Leia mais

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Links importantes http://www.android.com/ Site oficial de toda a documentação, downloads e informações sobre a plataforma. http://developer.android.com/

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Trabalho de: Alexandre / Paulo / Rui

Trabalho de: Alexandre / Paulo / Rui Trabalho de: Alexandre / Paulo / Rui Índice 1 - CPU-Processador 2 - Chipset Intel/AMD 3 - Cache 4 - Núcleo 5 - CISC/RISC 1. CPU / Processador A unidade central de processamento ou CPU (Central Processing

Leia mais

Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn

Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn Introdução as Unidades de Processamento Gráfico (GPUs) Giovane Roslindo Kuhn Computação Gráfica x Realidade Consulta ao BD SELECT nome FROM Pessoa WHERE idade > 25 Sumário Pipeline Gráfico Fixo (Overview)

Leia mais

ESTUDO DE CASO WINDOWS VISTA

ESTUDO DE CASO WINDOWS VISTA ESTUDO DE CASO WINDOWS VISTA História Os sistemas operacionais da Microsoft para PCs desktop e portáteis e para servidores podem ser divididos em 3 famílias: MS-DOS Windows baseado em MS-DOS Windows baseado

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

Leia mais

VIRTUALIZAÇÃO CONVENCIONAL

VIRTUALIZAÇÃO CONVENCIONAL VIRTUALIZAÇÃO CONVENCIONAL Sera usado o VirtualBox 5.0.8 a versão mais atual e estável da aplicação, para virtualização de um sistema Linux sobre a plataforma Windows. Para esse modelo pratico de virtualização

Leia mais

Placa de vídeo em CUDA

Placa de vídeo em CUDA Placa de vídeo em CUDA Matheus Costa Leone de Souza Krystian Aparacido Resumo Quando você tem um cálculo que possa ser grande demais para você realizar a mão, a primeira solução que lhe vem a cabeça é

Leia mais

CONHEÇA MELHOR SEU COMPUTADOR

CONHEÇA MELHOR SEU COMPUTADOR CONHEÇA MELHOR SEU COMPUTADOR Por: Pedro ( Lan House Viagem Virtual ) Sacie sua fome de conhecimento, veja em ordem alfabética os principais termos sobre hardware. Como muitos devem saber, os computadores

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

Tecnologia AMD agregando valor

Tecnologia AMD agregando valor Tecnologia AMD agregando valor ao dia-a-diaa Roberto Brandão AMD Brasil AMD Brasil Portfolio AMD Desktop 1 a 6 cores Server 4 a12 cores 1 a 8 sockets Stream Processors Notebook 1 e 2 cores Infraestrutura

Leia mais

Capítulo 2. AMD K6, K6-2, K6-III Super 7 Cyrix MII / 6x86 / 6x86MX Super 7 ou Socket 7 AMD K5, Pentium, Pentium MMX Socket 7

Capítulo 2. AMD K6, K6-2, K6-III Super 7 Cyrix MII / 6x86 / 6x86MX Super 7 ou Socket 7 AMD K5, Pentium, Pentium MMX Socket 7 Processadores Capítulo 2 O processador e o seu soquete Existem vários processadores para PCs. A maioria deles são produzidos pela Intel e AMD. É preciso levar em conta que cada processador exige um tipo

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Hardware de Computadores

Hardware de Computadores Placa Mãe Hardware de Computadores Introdução Placa-mãe, também denominada mainboard ou motherboard, é uma placa de circuito impresso eletrônico. É considerado o elemento mais importante de um computador,

Leia mais

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA 8 CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA A porta paralela, também conhecida por printer port ou Centronics e a porta serial (RS-232) são interfaces bastante comuns que, apesar de estarem praticamente

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 19: Visão geral sobre otimização de programas 06 de julho de 2010 1 2 3 Características esperadas dos programas O primeiro objetivo ao escrever programas de computador

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

Evolução dos Processadores

Evolução dos Processadores Evolução dos Processadores Arquitetura Intel Arquitetura x86 Micro Arquitetura P5 P6 NetBurst Core Processador Pentium Pentium Pro Pentium II Pentium III Pentium 4 Pentium D Xeon Xeon Sequence Core 2 Duo

Leia mais

Processadores. Guilherme Pontes

Processadores. Guilherme Pontes Processadores Guilherme Pontes Já sabemos o básico! Como já sabemos, o processador exerce uma das mais importantes funções do computador. Vamos agora nos aprofundar em especificações mais técnicas sobre

Leia mais

Montagem e Manutenção. Luís Guilherme A. Pontes

Montagem e Manutenção. Luís Guilherme A. Pontes Montagem e Manutenção Luís Guilherme A. Pontes Introdução Qual é a importância da Montagem e Manutenção de Computadores? Sistema Binário Sistema Binário Existem duas maneiras de se trabalhar e armazenar

Leia mais

Prof. Esp. Lucas Cruz

Prof. Esp. Lucas Cruz Prof. Esp. Lucas Cruz O hardware é qualquer tipo de equipamento eletrônico utilizado para processar dados e informações e tem como função principal receber dados de entrada, processar dados de um usuário

Leia mais

1. CAPÍTULO COMPUTADORES

1. CAPÍTULO COMPUTADORES 1. CAPÍTULO COMPUTADORES 1.1. Computadores Denomina-se computador uma máquina capaz de executar variados tipos de tratamento automático de informações ou processamento de dados. Os primeiros eram capazes

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB

Capacidade = 512 x 300 x 20000 x 2 x 5 = 30.720.000.000 30,72 GB Calculando a capacidade de disco: Capacidade = (# bytes/setor) x (méd. # setores/trilha) x (# trilhas/superfície) x (# superfícies/prato) x (# pratos/disco) Exemplo 01: 512 bytes/setor 300 setores/trilha

Leia mais

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui.

Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3 Tecnologia FPGA Ao longo do presente capítulo será apresentada uma descrição introdutória da tecnologia FPGA e dos módulos básicos que a constitui. 3.1. FPGA: Histórico, linguagens e blocos Muitos dos

Leia mais

INTRODUÇÃO BARRAMENTO PCI EXPRESS.

INTRODUÇÃO BARRAMENTO PCI EXPRESS. INTRODUÇÃO BARRAMENTO EXPRESS. O processador se comunica com os outros periféricos do micro através de um caminho de dados chamado barramento. Desde o lançamento do primeiro PC em 1981 até os dias de hoje,

Leia mais

28/9/2010. Paralelismo no nível de instruções Processadores superescalares

28/9/2010. Paralelismo no nível de instruções Processadores superescalares Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados

Leia mais

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD.

AULA4: PROCESSADORES. Figura 1 Processadores Intel e AMD. AULA4: PROCESSADORES 1. OBJETIVO Figura 1 Processadores Intel e AMD. Conhecer as funcionalidades dos processadores nos computadores trabalhando suas principais características e aplicações. 2. INTRODUÇÃO

Leia mais

Aula 04 A. Barramentos. Prof. Ricardo Palma

Aula 04 A. Barramentos. Prof. Ricardo Palma Aula 04 A Barramentos Prof. Ricardo Palma Definição Em ciência da computação barramento é um conjunto de linhas de comunicação que permitem a interligação entre dispositivos, como o CPU, a memória e outros

Leia mais

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução;

29/3/2011. Primeira unidade de execução (pipe U): unidade de processamento completa, capaz de processar qualquer instrução; Em 1993, foi lançada a primeira versão do processador Pentium, que operava a 60 MHz Além do uso otimizado da memória cache (tecnologia já amadurecida) e da multiplicação do clock, o Pentium passou a utilizar

Leia mais

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos [email protected] www.oficinadapesquisa.com.br Conceito de Computador Um computador digital é

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Informática, Internet e Multimídia

Informática, Internet e Multimídia Informática, Internet e Multimídia 1 TIPOS DE COMPUTADOR Netbook Notebook Computador Pessoal 2 Palmtop / Handheld Mainframe TIPOS DE COMPUTADOR Computador Pessoal O Computador Pessoal (PC Personal Computer),

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

Leia mais

Admistração de Redes de Computadores (ARC)

Admistração de Redes de Computadores (ARC) Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo [email protected] RAID é a sigla para Redundant

Leia mais

Laboratório de Hardware

Laboratório de Hardware Laboratório de Hardware Prof. Marcel Santos Silva Apresentação Bacharel em Análise de Sistemas (UNILINS). Especialização em Geoprocessamento (UFSCar). Mestre em Ciência da Informação (UNESP). Doutorando

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva [email protected] Sérgio Stringari [email protected] Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

Virtualização Gerencia de Redes Redes de Computadores II

Virtualização Gerencia de Redes Redes de Computadores II Virtualização Gerencia de Redes Redes de Computadores II *Créditos: baseado no material do Prof. Eduardo Zagari Virtualização - Introdução Introduzido nos anos 60 em Mainframes Em 1980 os microcomputadores

Leia mais

Sistema de Computação

Sistema de Computação Sistema de Computação Máquinas multinível Nível 0 verdadeiro hardware da máquina, executando os programas em linguagem de máquina de nível 1 (portas lógicas); Nível 1 Composto por registrados e pela ALU

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Sumário. Organização de Computadores Módulo 3. Primeira Geração Válvulas (1945 1955) Primeira Geração Válvulas (1945 1955)

Sumário. Organização de Computadores Módulo 3. Primeira Geração Válvulas (1945 1955) Primeira Geração Válvulas (1945 1955) Sumário M. Sc. Luiz Alberto [email protected] www.professorluizalberto.com.br Organização de Computadores Módulo 3 1. História da Arquitetura de Computadores - Continuação 1.1. 1.2. Segunda Geração Transistores

Leia mais

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA 1. INTRODUÇÃO O conceito de concorrência é o princípio básico para o projeto e a implementação dos sistemas operacionais multiprogramáveis. O sistemas multiprogramáveis

Leia mais

Barramentos - BUS. Professor Especialista: Airton Ribeiro de Sousa

Barramentos - BUS. Professor Especialista: Airton Ribeiro de Sousa Professor Especialista: Airton Ribeiro de Sousa É o percurso principal dos dados entre dois ou mais componentes de um sistema de computação, neste caso são os caminhos arquitetados na PLACA MÃE até o ponto

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

FUNDAMENTOS DE HARDWARE PROCESSADORES. Professor Carlos Muniz

FUNDAMENTOS DE HARDWARE PROCESSADORES. Professor Carlos Muniz FUNDAMENTOS DE HARDWARE Processadores Apesar de ser o componente principal de um microcomputador, o processador depende da ajuda dos demais componentes. Caso apenas um componente apresente baixo desempenho,

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

O que é RAID? Tipos de RAID:

O que é RAID? Tipos de RAID: O que é RAID? RAID é a sigla para Redundant Array of Independent Disks. É um conjunto de HD's que funcionam como se fosse um só, isso quer dizer que permite uma tolerância alta contra falhas, pois se um

Leia mais

Serial Paralela USB FireWire(IEEE1394)

Serial Paralela USB FireWire(IEEE1394) Serial Paralela USB FireWire(IEEE1394) histórico Tudo começou em 1980 quando a IBM estava desenvolvendo seu primeiro micro PC. Já haviam definido que o barramento ISA seria usado para permitir que o IBM

Leia mais

A Evolução dos Sistemas Operacionais

A Evolução dos Sistemas Operacionais Capítulo 3 A Evolução dos Sistemas Operacionais Neste capítulo, continuaremos a tratar dos conceitos básicos com a intensão de construirmos, agora em um nível mais elevado de abstração, o entendimento

Leia mais

Arquitetura de Computadores Arquitetura de entrada e saída

Arquitetura de Computadores Arquitetura de entrada e saída Arquitetura de Entrada e Saída Arquitetura de Computadores Arquitetura de entrada e saída Barramento Meio de transmissão de dados entre a CPU, a memória principal e os dispositivos de entrada e saída.

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

RISC X CISC - Pipeline

RISC X CISC - Pipeline RISC X CISC - Pipeline IFBA Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores 25 e 26/30 Prof. Msc. Antonio Carlos Souza Referências

Leia mais

Curso de Instalação e Gestão de Redes Informáticas

Curso de Instalação e Gestão de Redes Informáticas ESCOLA PROFISSIONAL VASCONCELLOS LEBRE Curso de Instalação e Gestão de Redes Informáticas PROCESSADORES DE 64 BITS X PROCESSADORES DE 32 BITS José Vitor Nogueira Santos FT2-0749 Mealhada, 2009 Introdução

Leia mais

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? A arquitetura básica de qualquer computador completo, seja um PC, um Machintosh ou um computador de grande porte, é formada por apenas 5 componentes básicos:

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes [email protected]

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes [email protected] Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Um Tutorial sobre GPUs

Um Tutorial sobre GPUs Um Tutorial sobre GPUs Silvia Esparrachiari e Victor H. P. Gomes Instituto de Matemática e Estatística Universidade de São Paulo (USP) São Paulo SP Brasil {silviaeg,vhpgomes}@ime.usp.br Abstract. The present

Leia mais

Itinerários de Ônibus Relatório Final

Itinerários de Ônibus Relatório Final CENTRO UNIVERSITÁRIO SENAC Itinerários de Ônibus Relatório Final Grupo 5 Caio Roque Daniel Nunes Elise Roese José Caneiro Marcos Grignani São Paulo Junho de 2007 1 ÍNDICE 1. Introdução... 3 2. Desenvolvimento...

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Informática I Aula 5 http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza Software Básico Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly Prof. MSc. Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo

Leia mais

R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR

R S Q 0 0 1 0 1 0 1 0 0 1 1 0 Tabela 17 - Tabela verdade NOR 19 Aula 4 Flip-Flop Flip-flops são circuitos que possuem a característica de manter os bits de saída independente de energia, podem ser considerados os princípios das memórias. Um dos circuitos sequenciais

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores SISTEMAS OPERACIONAIS Maquinas Virtuais e Emuladores Plano de Aula Máquinas virtuais Emuladores Propriedades Benefícios Futuro Sistemas de Computadores Os sistemas de computadores são projetados com basicamente

Leia mais

Fundamentos de Hardware

Fundamentos de Hardware Fundamentos de Hardware Curso Técnico em Informática SUMÁRIO PROCESSADOR... 3 CLOCK... 4 PROCESSADORES COM 2 OU MAIS NÚCLEOS... 5 NÚCLEOS FÍSICOS E LÓGICOS... 6 PRINCIPAIS FABRICANTES E MODELOS... 6 PROCESSADORES

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES Prof. André Dutton EMENTA: Conceitos fundamentais e histórico da ciência da computação; Histórico dos computadores, evolução e tendências; Modalidades de computadores

Leia mais

Modelagem 3D e Raytracing

Modelagem 3D e Raytracing Modelagem 3D e Raytracing João Paulo Pizani Flor Renato Besen 19/06/2009 Introdução O presente trabalho envolve a modelagem em três dimensões de uma cena, e sua renderização fotorreaĺıstica utilizando

Leia mais

4 Estrutura do Sistema Operacional. 4.1 - Kernel

4 Estrutura do Sistema Operacional. 4.1 - Kernel 1 4 Estrutura do Sistema Operacional 4.1 - Kernel O kernel é o núcleo do sistema operacional, sendo responsável direto por controlar tudo ao seu redor. Desde os dispositivos usuais, como unidades de disco,

Leia mais

O modelo do computador

O modelo do computador O modelo do computador Objetivos: Mostrar como é o funcionamento dos computadores modernos Mostrar as limitações a que estamos sujeitos quando programamos Histórico Os primeiros computadores são da década

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 2.1 CONCEITO DE BIT O computador só pode identificar a informação através de sua elementar e restrita capacidade de distinguir entre dois estados: 0

Leia mais