OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO



Documentos relacionados
FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

FACULDADE PITÁGORAS PRONATEC

Organização e Arquitetura de Computadores I. de Computadores

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

Introdução à Organização de Computadores. Sistemas da Computação Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

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

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

Visão Geral da Arquitetura de Computadores. Prof. Elthon Scariel Dias

Sistemas Computacionais II Professor Frederico Sauer

Sistema de Computação

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

FACULDADE PITÁGORAS DISCIPLINA: ARQUITETURA DE COMPUTADORES

Arquitetura de Von Neumann e os Computadores Modernos

Informática I. Aula 5. Aula 5-13/05/2006 1

Componentes de um Sistema de Computador

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

BARRAMENTO DO SISTEMA

Técnicas de Manutenção de Computadores

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 8

3. Arquitetura Básica do Computador

Unidade 13: Paralelismo:


ENTRADA E SAÍDA DE DADOS

Máquinas Multiníveis

Hardware de Computadores

INTRODUÇÃO BARRAMENTO PCI EXPRESS.

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Introdução à Organização de Computadores. Execução de Programas Prof. Rossano Pablo Pinto, Msc. rossano at gmail com 2 semestre 2007

Introdução à Arquitetura de Computadores

Fundamentos de Hardware. 1. Placa Mãe

RISC X CISC - Pipeline

Bits internos e bits externos. Barramentos. Processadores Atuais. Conceitos Básicos Microprocessadores. Sumário. Introdução.

Componentes de um Computador: Modelo Von Neumann

Guilherme Pina Cardim. Relatório de Sistemas Operacionais I

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

Barramentos - BUS. Professor Especialista: Airton Ribeiro de Sousa

Arquitetura e Organização de Computadores I

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

Microinformática Introdução ao hardware. Jeronimo Costa Penha SENAI - CFP/JIP

Organização Básica do Computador

Aula 26: Arquiteturas RISC vs. CISC

Processadores. Prof. Alexandre Beletti Ferreira

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

Universidade Tuiuti do Paraná UTP Faculdade de Ciências Exatas - FACET

Sistemas Operacionais

Microprocessadores. Prof. Leonardo Barreto Campos 1

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

5 Entrada e Saída de Dados:

Capacidade = 512 x 300 x x 2 x 5 = ,72 GB

Fundamentos em Informática

Arquitetura de Computadores Arquitetura de entrada e saída

CPU Unidade Central de Processamento. História e progresso

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

CENTRAL PRCESSING UNIT

Aula 04 A. Barramentos. Prof. Ricardo Palma

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

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Sistemas Operacionais. Prof. Pedro Luís Antonelli Anhanguera Educacional

Dispositivos de Entrada e Saída

Introdução aos Computadores

Memória principal; Unidade de Controle U C P. Unidade Lógica e Aritmética

Curso Técnico de Nível Médio

Fundamentos de Hardware

Introdução às arquiteturas paralelas e taxonomia de Flynn

ARQUITETURA DE COMPUTADORES

Capítulo 8 Arquitetura de Computadores Paralelos

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Organização e Arquitetura de Computadores

Organização de Computadores 1

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 04 - Concorrência. Cursos de Computação

ILHA I GERENCIAMENTO DE CONTEÚDO CMS DISCIPLINA: Introdução à Computação MÓDULO II Memórias e Processamento

O quê um Processador e qual a sua função?

Prof. Esp. Lucas Cruz

Sistemas Operacionais. Prof. André Y. Kusumoto

11- Tornar transparente para o processador os detalhes de operação e controle dos dispositivos periféricos.

Processadores clock, bits, memória cachê e múltiplos núcleos

TI Aplicada. Aula 03 Componentes Básicos Hardware e Rede. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

1. CAPÍTULO COMPUTADORES

Microarquiteturas Avançadas

Capítulo 1 Introdução

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

Disciplina: Introdução à Informática Profª Érica Barcelos

Introdução à Computação: Arquitetura von Neumann

Hardware. Objetivos da aula. Fornecer exemplos de processadores Intel. Esclarecer as diferenças e as tecnologias embutidas nos processadores Intel.

Introdução à Engenharia de Computação

Componentes do Computador e. aula 3. Profa. Débora Matos

Montagem e Manutenção de Computadores Aula1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

1.1. Organização de um Sistema Computacional

Processos e Threads (partes I e II)

Sistemas Operacionais

ULA Sinais de Controle enviados pela UC

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

Evolução dos Processadores

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

Estrutura de um Computador

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

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

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

28/9/2010. Unidade de Controle Funcionamento e Implementação

Transcrição:

OFICINA DA PESQUISA PROGRAMAÇÃO APLICADA À CIÊNCIA DA COMPUTAÇÃO Prof. Msc. Carlos José Giudice dos Santos carlos@oficinadapesquisa.com.br www.oficinadapesquisa.com.br

RELAÇÃO ENTRE PROGRAMAÇÃO E ARQUITETURA DO COMPUTADOR

ESQUEMA DE UM COMPUTADOR Uma Unidade Central de Processamento (CPU Central Processing Unit) é a parte principal de um computador, sendo responsável pelo execução de programas que fazem do computador uma máquina extremamente versátil. É importante notar que a CPU é um circuito eletrônico chamado processador. Entretanto, dentro de um computador existem vários processadores (em placas de comunicação, gráficas e de som, em discos rígidos, etc). O que chamamos de CPU é o principal processador do computador, e que controla todos os outros.

ESQUEMA INTERNO DE UM COMPUTADOR UC Unidade de Controle (Control Unit) ULA Unidade de Lógica e Aritmética (Aritmethic Logic Unit) REGS Registradores (Registrators) Dispositivos de E/S Dispositivos de Entrada/Saída (I/O Devices Input/Output Devices) CPU Para informações mais detalhadas, recomendo uma visita ao site do Laércio Vasconcelos: http://www.laercio.com.br Barramento BUS

BARRAMENTOS DE UM COMPUTADOR Uma CPU só se comunica com outros dispositivos por meio de barramentos. De acordo com Vasconcelos (2003), barramentos são conjuntos de sinais digitais através dos quais o processador transmite e recebe dados de circuitos externos. Em um computador existem basicamente 3 tipos de barramentos: Barramento do processador Barramento de memória Barramentos de E/S

BARRAMENTO DO PROCESSADOR - I Conhecido também como barramento local (Local Bus) ou barramento de sistema, é aquele que faz contato direto com o Chipset (dividido em North Bridge e South Bridge), que estudaremos mais tarde. É através do Chipset que a CPU se comunica com a memória (Barramento de Memória) e com outros dispositivos (Barramentos de E/S, por exemplo, ISA, EISA, PCI, AGP, AMR, IDE, SCSI, USB, Firewire, entre outros). O Barramento do Processador é dividido em três grupos, a saber: o Barramento de Dados, o Barramento de Endereços e o Barramento de Controle. Um esquema destes barramentos pode ser conferido no próximo slide.

BARRAMENTO DO PROCESSADOR - II

BARRAMENTO DO PROCESSADOR - III Barramento de Endereços: de acordo com Vasconcelos (2003), este é o barramento através do qual a CPU especifica de qual interface ela vai receber ou transmitir dados, sendo também utilizado para endereçar memória. Os processadores modernos costumam ter de 36 a 40 bits para endereçamento, suficientes para endereçar de 64 GB a 1 TB de memória física. Utiliza modo de transmissão Simplex. Barramento de Dados: utilizado para receber ou enviar dados, funciona em modo de transmissão Half- Duplex (enviam e recebem, mas não simultanemente). Os processadores atuais possuem barramentos de dados de 64 a 128 bits.

BARRAMENTO DO PROCESSADOR - IV Barramento de Controle: de acordo com Vasconcelos (2003), este barramento contém vários sinais que são necessários ao funcionamento do processador. Entre outras atribuições, tem a função de controlar o tráfego do barramento de dados. Alguns dos seus sinais são de saída, outros são de entrada, outros são bidirecionais. Existem sinais para indicação do tipo de operação (leitura ou escrita), sinais se especificação de destino/origem de dados (memória ou E/S), sinais de sincronismo, sinais de interrupção, sinais que permitem a outro dispositivo tomar o controle do barramento, sinais de clock, sinais de programação e diversos outros.

BARRAMENTO DE MEMÓRIA Em CPUs antigas, a memória era ligada diretamente ao processador, e funcionava em sincronia. Com o crescimento impressionante de velocidades das CPUs, a memória passou a se comunicar com a CPU por meio do Chipset, de forma assíncrona (VASCONCELOS, 2003). Em geral, o barramento de memória é utilizado também para trafegar dados, por meio de uma técnica chamada de multiplexação (que permite que um único canal seja compartilhado por mais de um sinal).

BARRAMENTOS DE E/S - I São barramentos utilizados para a CPU se comunicar com placas ou interfaces, podendo (ou não) ser acessados por meio de slots. Os mais comuns são: AGP: Lançado pela Intel em 1997, o Acelerated Graphics Port foi criado para acelerar o desempenho de placas de vídeo em PCs equipados com o recém lançado Pentium II (ver figura). Este padrão evoluiu para o AGP 8x e o AGP Pro. Começa a perder terreno para o Fast PCI. Fonte: http://www.laercio.com.br/artigos/hardware/hard- 013/hard-013.htm

BARRAMENTOS DE E/S - II PCI: O Peripheral Component Interconnect é o padrão mais utilizado para barramento de E/S e para slots de expansão. Utilizando estes slots, pode-se conectar placas de vídeo, placas aceleradoras gráficas, placas de captura de vídeo, placas de rede, placas de interface (SCSI, por exemplo), etc. Em geral, as interfaces para controle de disco rígido e para comunicação USB utilizam este tipo de barramento, apesar de não usarem slots. Este padrão evoluiu para o Fast PCI. Ver figura. Fonte: http://www.laercio.com.br/artigos/hardware/hard- 013/hard-013b.htm

FUNCIONAMENTO DE UMA CPU CICLO DE BUSCA DECODIFICAÇÃO - EXECUÇÃO Toda CPU funciona de acordo com um ciclo de sete estágios, a saber: 1. Trazer a próxima instrução (no caso inicial, a primeira instrução) da memória para o registrador de instruções do processador; 2. Atualizar o Contador de Programa (PC Program Counter ou IP Instruction Pointer) para indicar o endereço de memória que contém a próxima instrução; 3. Decodificar a instrução;

FUNCIONAMENTO DE UMA CPU CICLO DE BUSCA DECODIFICAÇÃO - EXECUÇÃO 4. Se a instrução necessitar de operandos, determinar os endereços de memória que contém todas as palavras necessárias à execução da instrução; 5. Trazer as palavras para os registradores de dados 6. Executar a instrução; 7. Voltar ao primeiro estágio do ciclo e continuar a executar esse ciclo até o término do programa.

TRATAMENTO DE INTERRUPÇÕES [01] O que são interrupções? De acordo com Kinoshita et al (2004), uma interrupção é um evento externo que faz o processador parar a execução do programa que ele está executando e desvia a execução para um bloco de código chamado rotina de interrupção (normalmente são decorrentes de operações de E/S). Este pedido de interrupção é feito diretamente por hardware através de um sinal chamado de IRQ (Interrupt Request Requisição de interrupção). Ao terminar o tratamento de interrupção o controle retorna ao programa interrompido exatamente no mesmo estado em que estava quando ocorreu a interrupção.

TRATAMENTO DE INTERRUPÇÕES [02] Cada tipo de interrupção tem um código diferente de acordo com a sua origem e hierarquia. Nos PC s atuais podemos ter até 256 vetores de interrupção. Temos vários tipos de interrupção, mas as duas principais são: NMI (Non Maskable Interrupt Interrupção não mascarável): São interrupções que nunca podem ser inibidas. São oriundas de hardware e utilizadas em operações essenciais do PC. IRQs: São as interrupções gerais do PC, e podem ser habilitadas ou inibidas através de um Flag (IF).

TRATAMENTO DE INTERRUPÇÕES [03] Quando vários pedidos de interrupção de hardware ocorrem simultaneamente, o processador deve decidir quem será atendido primeiro. Tal decisão deve ser baseada na urgência ou importância de cada evento que causou o pedido. O número de uma IRQ indica o seu grau de prioridade, quanto menor o número maior será a prioridade. Por exemplo, o primeiro PC tinha apenas 8 interrupções, em que a IRQ de maior prioridade era a IRQ0 (Clock da placa mãe), e a de menor prioridade era a IRQ7 (Porta Paralela).

TRATAMENTO DE INTERRUPÇÕES [04] O esquema de interrupções do PC é mostrado abaixo: 0 Sinal de clock do relógio 1 Teclado 2 Livre 3 - Com2 4 Com1 5 Disco rígido 6 Drive de disquete 7 Porta paralela

TRATAMENTO DE INTERRUPÇÕES [05] A partir do 286, os PC s passaram a ter 16 IRQ s, numeradas de 0 a 15. Houve a inclusão de um segundo controlador de IRQs cascateado ao que já existia no PC, ligado à IRQ2 que estava livre. Fonte: CEFET-RS Profs. Roberta Nobre e Sandro Silva

TRATAMENTO DE INTERRUPÇÕES [06] Com o aumento das IRQ s, ocorreu uma alteração na ordem de prioridades. Sendo o segundo controlador ligado ao IRQ2 do primeiro controlador, todas as IRQ s do segundo controlador de interrupções tem maior prioridade que as IRQ s de 3 a 7 do primeiro controlador de interrupções. Mesmo com o aumento para 16 endereços de IRQ, e não mais aumentado até hoje, surgiram problemas de conflitos de IRQ, ou seja, dois dispositivos utilizando a mesma IRQ. A execução de interrupções necessita tanto de ações de hardware como de software, as quais, podem ser visualizadas pelo seguinte fluxograma:

TRATAMENTO DE INTERRUPÇÕES [07] Fonte: Kinoshita et al (2004)

ARQUITETURAS DE CPU: RISC E CISC (I) RISC é uma sigla que significa Reduced Instruction Set Computer, que pode ser traduzido como Conjunto (ou Tabela) Reduzido de Instruções de Computador. A arquitetura RISC resulta em processadores com poucas instruções (em geral, menos de 50), pequenas, mas extremamente rápidas. CISC significa Complex Instruction Set Computer, ou Conjunto Complexo de Instruções de Computador. A arquitetura CISC resulta em processadores com muitas instruções (em geral, mais de 150), grandes, mas comparativamente mais lentas.

ARQUITETURAS DE CPU: RISC E CISC (II) Qual arquitetura é melhor? Esta discussão é muito parecida com discussões futebolísticas. Quem é melhor? Brasil ou Argentina? Cruzeiro ou Atlético? São Paulo ou Coríntians? Com certeza, a resposta será diferente dependendo da pessoa a quem você perguntar, mas vamos ver algumas características. Um processador RISC tem compromisso com a velocidade de processamento. São poucas instruções: elas são pequenas, mas são muito, muito rápidas. Dá muito mais trabalho programar em processadores RISC. O código de máquina usado nesse tipo de arquitetura é traduzido.

ARQUITETURAS DE CPU: RISC E CISC (III) Um processador CISC tem compromisso com a facilidade de implementação de programas. São muitas instruções, que são geralmente grandes e lentas, mas dá muito menos trabalho programar, pois o código de máquina usado nessa arquitetura é interpretado. Processadores RISC são os preferidos em workstations, mainframes e supercomputadores. Processadores CISC são os preferidos de microcomputadores. Ultimamente, os projetistas estão construindo processadores híbridos, usando as duas arquiteturas. Esta tendência começou com o 486 e continua evoluindo, como veremos em breve.

ESTRATÉGIAS PARA PROJETOS DE CPU s (I) Uma CPU deve ser o mais rápida possível. Quando pensamos o que fazer para que uma CPU seja mais rápida, a resposta mais provável é aumentar o seu clock, afinal de contas, quanto maior o clock de uma CPU, menor o tempo de ciclo, o que resulta em um maior número de instruções executadas por segundo. Uma das maneiras de se medir a velocidade de uma CPU é em MIPS (Milhões de Instruções por Segundo). Assim, um computador de 500 MIPS é com certeza cinco vezes mais rápido que um de 100 MIPS.

ESTRATÉGIAS PARA PROJETOS DE CPU s (II) O problema de aumentar o clock é a quantidade de energia que se gasta: quanto maior o clock, maior será a energia gasta pela CPU, e maior também será a dissipação de calor. Então só o aumento do clock não é a solução para aumentar a velocidade de processamento. Além disso, atualmente estamos muito perto do limite máximo de clock que a atual tecnologia de construção de microprocessadores comerciais pode suportar. Hoje, o limite teórico é algo próximo de 5 GHz, mas são raríssimos processadores que superam 4 GHz na prática. Vamos ver que estratégias os projetistas costumam utilizar para contornar esse problema:

ESTRATÉGIAS PARA PROJETOS DE CPU s (III) 1. Todas as instruções devem ser executadas diretamente por hardware: instruções executadas apenas por hardware são mais simples e extremamente rápidas. Por este motivo, são a base da arquitetura RISC. Na arquitetura CISC, o fato de ter uma fase de interpretação de instruções é um fator a mais para a demora no processamento. Se um processador CISC puder subdividir suas grandes instruções em instruções menores que possam ser processadas diretamente em hardware (em um núcleo RISC), consegue-se aumentar a velocidade de processamento.

ESTRATÉGIAS PARA PROJETOS DE CPU s (IV) 2. Aumentar o número de registradores: uma vez que o acesso à memória principal é muito lento, se você puder aumentar o número de registradores, o processamento ficará muito mais rápido. Como existe um limite para isso, a solução encontrada foi criar uma área de memória de acesso rápido dentro do próprio processador. Esta área de memória é conhecida como CACHE. Vamos estudar em detalhes o funcionamento dela na próxima unidade.

ESTRATÉGIAS PARA PROJETOS DE CPU s (V) 4. Otimizar o código de máquina: se toda instrução que necessitasse de operandos conseguisse ser executada buscando esses operandos nos registradores e a eles retornando, a execução seria muito rápida. Assim, deve-se evitar instruções que façam acesso à memória principal. Esse princípio diz que apenas as instruções LOAD (carregar em um registrador o conteúdo de um endereço de memória) e STORE (armazenar na memória o conteúdo de um registrador) devem referenciar a memória. Esta estratégia é um dos princípios da arquitetura RISC.

ESTRATÉGIAS PARA PROJETOS DE CPU s (VI) 5. Maximizar a taxa de execução de instruções: nos primeiros processadores, uma instrução só podia ser executada quando a instrução anterior já tivesse acabado. Se você puder executar mais de uma instrução ao mesmo tempo, a velocidade de processamento aumenta. O nome para isso é paralelismo (a nível de instrução e a nível de processador). Pipelining, arquitetura superescalar, processamento matricial, processamento vetorial, multithreading são algumas destas implementações que permitem realizar esta façanha. É o que veremos em seguida.

PIPELINING Pipelining é o nome que se dá ao paralelismo ao nível de instrução. Sua implementação se dá através de uma estrutura chamada pipeline. Basicamente, é uma divisão de tarefas que permite a execução de mais de uma instrução: Tempo Tempo Tempo Nesse pipeline (típico do 486), a cada ciclo de clock uma instrução pode ser completada (em tese), o que pode resultar em um ganho de velocidade 5 vezes maior.

ARQUITETURA SUPERESCALAR (I) Se um pipeline é bom, dois (ou mais) pipelines devem funcionar melhor ainda. Este é o princípio da arquitetura superescalar. A partir do processador Pentium, a Intel passou a utilizar este tipo de estrutura: O pipeline de 5 estágios do 486 (slide anterior) as vezes demorava ao executar alguma instrução, o que atrasava toda a fila. No Pentium, os projetistas fizeram um pipeline para instruções mais complexas (demoradas) e um outro para instruções mais simples (princípio da arquitetura RISC).

ARQUITETURA SUPERESCALAR (II) Com o tempo percebeu-se que o estágio 4 (S4 execução de instruções) era o gargalo de todo o processo. Quando não havia um par de instruções compatíveis, o processamento parava em S4 até que uma instrução mais complexa fosse completada. Para resolver isso, no Pentium II em diante, o pipeline foi modificado, conforme figura abaixo: O estágio 4 (S4) passou a contar com várias ULAs para não permitir que instruções inacabadas atrasassem a fila. Variações deste tipo de pipeline são utilizadas até hoje.

MULTITHREADING - I A Multithreading é uma técnica que permite aumentar a velocidade de processamento de uma CPU, e o suporte a esta técnica deve estar previsto no SO. Threads são processos que possuem a capacidade de se dividirem em dois ou mais processos concorrentes que podem ser executados simultaneamente. Se o processador possuir um único núcleo, essa divisão ocorre de maneira virtual (multithreading virtual), em geral por linha de execução ou por chaveamento, dando a impressão de que dois processos estão sendo executados simultaneamente.

MULTITHREADING - II O Multithreading virtual foi uma tecnologia criada pela Intel com o nome de Hyper-Threading (HT). Esta tecnologia permite simular dois processadores virtuais em um único processador físico (de apenas um núcleo). Foi introduzida primeiramente no Xeon (mercado de servidores) e depois no Pentium 4. O Multithreading real acontece quando um processador possui mais de um núcleo físico. Nesse caso, dois (ou mais) processos podem realmente ser executados simultaneamente. Um bom exemplo de aplicação dessa técnica são em jogos: um processo pode atualizar a imagem enquanto outro processo atualiza o áudio do jogo.

MULTITHREADING - II O Multithreading virtual foi uma tecnologia criada pela Intel com o nome de Hyper-Threading (HT). Esta tecnologia permite simular dois processadores virtuais em um único processador físico (de apenas um núcleo). Foi introduzida primeiramente no Xeon (mercado de servidores) e depois no Pentium 4. O Multithreading real acontece quando um processador possui mais de um núcleo físico. Nesse caso, dois (ou mais) processos podem realmente ser executados simultaneamente. Um bom exemplo de aplicação dessa técnica são em jogos: um processo pode atualizar a imagem enquanto outro processo atualiza o áudio do jogo.

ARQUITETURA DE INSTRUÇÕES - I A motivação para o uso do poder de processamento paralelo é a demanda cada vez maior de aplicações que necessitam de grande poder de processamento. Utilização militar (projeto de aeronaves, subamarinos e armas nucleares), pesquisas científicas (por exemplo, sequenciamento genético), simulações aerodinâmicas, prospecção mineral e petrolífera, modelagem climática, sistemas especialistas e de inteligência artificial são algumas das aplicações que necessitam de grande poder de processamento. Flynn propôs uma classificação de arquiteturas paralelas de computadores com base na arquitetura de instruções: SISD, SIMD, MISD e MIMD.

ARQUITETURA DE INSTRUÇÕES - II SISD (Single Instruction Single Data): nesta classe, um único fluxo de instruções opera sobre um único fluxo de dados. É a conhecida máquina de von Neumann, sendo o modelo de computador usado da Segunda Guerra Mundial até os primeiros microprocessadores (até o Pentium, inclusive). Apesar dos aplicativos estarem organizados como uma série de instruções sequenciais, elas podem ser executadas de forma sobreposta em vários estágios usando um pipeline. Arquiteturas SISD possuem apenas uma Unidade de Controle, mas podem ter mais de uma unidade funcional.

ARQUITETURA DE INSTRUÇÕES - III Disponível em: http://www.rc.unesp.br/igce/demac/balthazar/gpacp/bibliografia

ARQUITETURA DE INSTRUÇÕES - IV SIMD (Single Instruction Multiple Data): nesta classe, uma única instrução pode ser aplicada simultaneamente sobre um conjunto de dados. Os aplicativos ainda seguem uma organização sequencial, mas o acesso a múltiplos dados é facilitado pela organização da memória em diversos módulos. Este tipo de arquitetura de instruções é ideal para trabalhar com aplicações gráficas, em que um grande volume de dados deve ser modificado por uma única instrução. Ainda há apenas uma Unidade de Controle, mas existem diversas unidades funcionais. Corresponde aos processadores vetoriais e matriciais. O Pentium MMX e o AMD K6 são os primeiros representantes desta classe.

ARQUITETURA DE INSTRUÇÕES - V Disponível em: http://www.rc.unesp.br/igce/demac/balthazar/gpacp/bibliografia

ARQUITETURA DE INSTRUÇÕES - VI MISD (Multiple Instruction Single Data): nesta classe, um conjunto de instruções pode ser aplicado sobre um único dado. Sob o ponto de vista tecnológico, esta classe de arquitetura de instrução de Flynn não tem aplicação prática, razão pela qual não existem computadores que utilizem esta arquitetura.

ARQUITETURA DE INSTRUÇÕES - VII Disponível em: http://www.rc.unesp.br/igce/demac/balthazar/gpacp/bibliografia

ARQUITETURA DE INSTRUÇÕES - VIII MIMD (Multiple Instruction Multiple Data): nesta classe, um múltiplo conjunto de de instruções são aplicados sobre múltiplos conjuntos de dados. Sob o ponto de vista tecnológico, esta classe de arquitetura de instrução de Flynn é representada por arquiteturas massivamente paralelas, com servidores multiprocessados ou redes de estações (sistemas distribuídos). Neste caso, várias unidades de controle comandam suas unidades funcionais, mas com um certo grau de interação entre as máquinas. Qualquer grupo de máquinas atuando como uma unidade se encaixa nesta categoria. Assim, os atuais processadores multi-núcleos estão nesta categoria.

ARQUITETURA DE INSTRUÇÕES - IX Disponível em: http://www.rc.unesp.br/igce/demac/balthazar/gpacp/bibliografia

BIBLIOGRAFIA CONSULTADA FORBELLONE, André Luiz Villar. Lógica de programação: a construção de algoritmos e estruturas de dados. 3.ed. São Paulo: Pearson Prentice Hall, 2005. NOBRE, Roberta; SILVA, Sandro. Interrupção no PC. Disponível em: <http://www2.pelotas.ifsul.edu.br/sandro/docs/oc_unidade _04_2_interrupcao.pdf>. Acesso em: 7 set. 2015. KINOSHITA, Jorge. O que são interrupções. PCS USP. Disponível em: <http://www.pcs.usp.br/~jkinoshi/2005/e5roberto. doc>. Acesso em: 7 set. 2015. SEBESTA, Robert. W. Conceitos de linguagens de programação. 9. ed. Porto Alegre: Bookman, 2011. TANEMBAUM, Andrew S. Organização estruturada de computadores. 5. ed. São Paulo: Pearson Prentice Hall, 2011.