Baixe o app para aproveitar ainda mais
Prévia do material em texto
Fundamentos de Tecnologia da Informação Organização e Arquitetura de Computadores Material Teórico Responsável pelo Conteúdo: Prof. Ms. Artur Ubaldo Marques Junior Revisão Textual: Profa. Esp. Vera Lídia de Sá Cicaroni 5 • Visão Geral • Máquina de Turing • Arquitetura Von Neumann Nossa viagem pelos Fundamentos de Tecnologia da Informação levar-nos-á, nesta unidade, aos conceitos da arquitetura moderna de computadores. Sobre este tema, temos material já consolidado e devemos voltar um pouco no tempo para recordar. Dessa maneira, teremos, previamente, uma visão geral sobre o assunto, faremos uma breve pausa para traçarmos um histórico das gerações de computadores e entraremos no estudo do modelo von Neumann, ao qual peço que você preste bastante atenção, pois trata-se da forma contemporânea como os computadores são arquitetados. Seu arranjo nessa arquitetura levou a diversas possibilidades, inclusive à dos computadores pessoais e outras gerações de equipamentos. Abordaremos também arquiteturas que envolvam outras formas “não von Neumann” para estruturar um computador, dentre as quais a arquitetura Harvard, o barramento, etc. Falaremos também sobre Alan Turing e seu legado, depois, veremos a composição dos níveis das máquinas e demonstraremos um sistema de computador típico. · Nesta terceira unidade da disciplina de Fundamentos de Sistemas de Informação, exploraremos conceitos de arquitetura de computadores. · Falaremos dos componentes, da arquitetura von Neumann e de outros tipos de arquitetura, e entenderemos por que, até hoje, a primeira é paradigma para os computadores que conhecemos. Organização e Arquitetura de Computadores • Arquitetura Harvard • Diferença entre a arquitetura Von Neumann e a de Harvard • Computação Paralela • Taxonomia de Flynn • Diferença entre CISC e RISC • Lei de Moore 6 Unidade: Organização e Arquitetura de Computadores Contextualização Uma série de limitações físicas impediu que, após anos de evolução, os processadores sequenciais pudessem continuar melhorando seu desempenho através do aumento da frequência. Essa prática passou, então, a dar lugar para a introdução do paralelismo nos chips, culminando com a criação dos CMPs (Chip Multi-Processor), também chamados de Processadores de Múltiplos Núcleos. O paralelismo é um paradigma que visa extrair o máximo desempenho possível durante a realização de uma tarefa, através da exploração das características de simultaneidade presentes na carga de trabalho e no ambiente em que se está trabalhando. O paralelismo foi, durante muitos anos, uma aposta de poucos, que se manteve restrita a pequenos setores da indústria de computação de alto desempenho, além da própria academia. Porém, a competição entre os principais fabricantes de processadores de propósito geral levou à criação dos CMPs e, atualmente, processadores de múltiplos núcleos já são encontrados em computadores pessoais, notebooks e até mesmo em sistemas computacionais embarcados. Dessa forma, pode-se concluir que, atualmente e, muito provavelmente, num futuro de médio e longo prazo, o modelo de computação predominante será o paralelo. Isso é um choque, porque o modelo mais em uso de arquitetura é o von Neumann. O modelo Paralelo, que é emergente, possui alto padrão de desempenho e pode, num primeiro momento, não ser tão competitivo, mas, a um olhar mais minucioso, pode significar um grande avanço para vencer as barreiras de velocidade, dissipação de energia e desempenho. A predominância do paralelismo faz surgir novos problemas, e outros, antes de menor importância, tornam-se mais urgentes. Dentre esses problemas, pode-se destacar a falta de profissionais com conhecimento de paralelismo suficiente para desenvolver softwares executados com eficiência e bom desempenho nos processadores de múltiplos núcleos. Uma das possíveis causas para esse problema é a pouca atenção dada pelos cursos da área de tecnologia para o paralelismo. Vamos conhecer neste módulo esses paradigmas, o vigente e os novos, como tudo isso acontece e qual sua importância no mundo globalizado em que vivemos. 7 Visão Geral Podemos dizer que o termo arquitetura de computadores teve origem em um relatório que descrevia um supercomputador da IBM no final da década de 50. Seus autores foram Brooks, Khan e Johnson. Arquitetura de computadores refere-se aos atributos de um sistema que tem um impacto direto sobre a execução lógica de um programa. Um exemplo é definir o número de bits usados para representar vários dados e tipos de mecanismos de entrada e saída. Organização de computador refere-se às unidades operacionais e suas interconexões que realizam as especificações de arquitetura. Por exemplo, são as coisas que são transparentes para o programador: sinais de controle de interfaces entre computador e periféricos, a tecnologia de memória usada. Assim, por exemplo, o fato de existir uma instrução de multiplicação e disponibilizá-la é uma questão de arquitetura de computador. O modo como a operação de multiplicar é implementada é uma questão de organização do computador. O computador, nesse caso, pode ser entendido como algo que possui a capacidade de receber uma entrada de dados, realizar processamento e entregar uma saída. Uma das formas de classificação, nos tempos atuais, é: Desktop: focado para o usuário cotidiano; é de baixo custo, porém com bom desempenho. Servidores: são equipamentos de propósito específico, com desempenho melhorado. Sua construção é mais elaborada, envolvendo barramentos diferenciados e maior numero de processadores e memória primária. Embeded Systems ou Sistemas Embarcados: trata-se de hardware e software de uso dedicado ou específico e são componentes de veículos, smartphone, geladeiras, ar condicionado e até de elevadores. Computadores modernos contêm milhões de componentes eletrônicos. A chave para descrever tais sistemas é reconhecer, além de sua natureza hierárquica formada por um conjunto de camadas ou níveis dos subsistemas inter-relacionados, também que cada nível é composto por um conjunto de componentes e suas inter-relações. Mas, antes de falarmos dos computadores modernos, vamos recordar seus conceitos através de um dos mais geniais personagens da ciência da computação, Alan Turing, criador de uma máquina conceito que levou seu nome. 8 Unidade: Organização e Arquitetura de Computadores Uma máquina de Turing é a forma mais simples de um computador. O conceito foi inventado por Alan Turing em 1936. Este foi o primeiro computador inventado, embora tenha ficado só no papel. Na sua forma mais simples, uma máquina de Turing é composta por uma fita de papel de comprimento indefinido. Há uma “cabeça” que pode ler os símbolos na fita. Finalmente, o programa é uma lista de “transições”; a fita é usada para armazenar dados. Além disso, também pode armazenar uma série de transições (pequenos programas) e, assim, a cabeça pode rodar “subprogramas”. Por analogia com computadores modernos, a fita é a memória e a cabeça é o microprocessador. Vamos adiante, agora, voltando para a arquitetura dos computadores. Arquitetura Von Neumann tem dois significados comuns: primeiramente ela remete para um tipo específico de organização de computador, na qual as instruções e os dados são armazenados em uma memória comum. Esse tipo de arquitetura é distinta da Harvard, em que memórias separadas são usadas para armazenar instruções e dados. O termo arquitetura Von Neumann, em segundo lugar, também é usado, coloquialmente, para se referir, em geral, a computadores que executam uma única sequência de instruções, que operam em um único fluxo de valores de dados. Ou seja, são os típicos computadores disponíveis hoje em dia. Máquina de Turing Explore Se você quisertestar como ela funciona, este endereço que segue vem com instruções para você fazer operações simples e entender melhor seu funcionamento: http://ironphoenix.org/tril/tm/ Arquitetura Von Neumann Figura 1: Arquitetura Von Neumann Fonte: Computer Organization and Architecture, W. Stallings 9 O conceito de computador de Von Neumann foi desenvolvido na década de 1940, quando os primeiros computadores eletrônicos foram construídos. Quase todos os computadores modernos são baseados nesse regime de programa armazenado, em que dados de programa e de instruções de máquina são armazenados na memória do computador da mesma maneira. Após a década de 1940, a indústria de computador começou um rápido desenvolvimento com a velocidade e o custo dos sistemas de computador, melhorando a cada dois anos. Surpreendentemente, essa tendência continua, em princípio, até hoje. O coração da arquitetura de computador de Von Neumann é a Unidade Central de Processamento (CPU), a Unidade de Controle e a ULA (Unidade Lógica e Aritmética). A CPU interage com uma memória e um subsistema de (E/S) entrada/saída e executa um fluxo de instruções (programa de computador) que processam os dados armazenados na memória e executam operações E/S. O conceito-chave da arquitetura de Von Neumann é que os dados e instruções são armazenados no sistema de memória exatamente da mesma forma. Assim, o conteúdo de memória é definido inteiramente pelo modo como ele é interpretado. Isso é essencial, por exemplo, para um programa compilador, que traduz uma linguagem de programação user friendly para o fluxo de instrução entendido pela máquina. Uma variedade de instruções pode ser executada para mover e modificar dados e para controlar as instruções que deverão ser executadas em seguida. O conjunto de instruções é chamado o conjunto de instruções, e, juntamente com os recursos necessários para sua execução, conjunto de instruções (ISA). A execução da instrução é impulsionada por um sinal periódico do clock. Embora várias subetapas devam ser realizadas para a execução de cada instrução, numa aplicação sofisticada de CPU existem tecnologias que podem se sobrepor a esses passos, de tal forma que, idealmente, uma instrução pode ser executada por ciclo de clock. Hoje, o esquema de Von Neumann é a arquitetura básica da maioria dos computadores que aparecem em muitas formas, incluindo supercomputadores, estações de trabalho, computadores pessoais e laptops. Progressos na tecnologia eletrônica foram a mola propulsora para a revolução da máquina de Von Neumann. Esse progresso foi iniciado durante a II Guerra Mundial, quando houve enormes avanços no desenvolvimento de produtos eletrônicos. Figura 2: Componentes básicos da arquitetura Von Neumann Fonte: Computer Organization and Architecture, W. Stallings 10 Unidade: Organização e Arquitetura de Computadores O coração de um sistema de computador com uma arquitetura de Von Neumann é a CPU. Esse componente busca (ou seja, faz leitura de) instruções e dados da memória principal e coordena a execução completa de cada instrução. Normalmente é organizado em duas subunidades distintas: a unidade lógica e aritmética (ULA) e a unidade de controle. A unidade lógica e aritmética (ULA) combina e transforma os dados, usando operações aritméticas, como adição, subtração, multiplicação e divisão e operações lógicas, como negação bit a bit, AND, E/OU. A unidade de controle interpreta as instruções buscadas na memória e coordena a operação de todo o sistema. Ela determina a ordem na qual as instruções são executadas e fornece todos os sinais elétricos necessários para controlar a operação da ULA e as interfaces para os outros componentes do sistema. A memória é um conjunto de células de armazenamento. Cada uma delas pode estar em um de dois estados diferentes. Um estado representa um valor “0”, e outro estado representa um valor “1”. Distinguindo-se esses dois estados lógicos, cada célula é capaz de armazenar um único dígito binário ou bit. A CPU identifica a palavra que ela quer ler ou escrever, armazenando seu endereço exclusivo em uma memória especial de registro de endereços chamada MAR (um registo armazena temporariamente um valor dentro da CPU.). A memória responde a uma solicitação de leitura do valor armazenado no endereço solicitado e passa-o para a CPU através do barramento de dados de memória da CPU. O valor, em seguida, é armazenado temporariamente no registo de buffer de memória MBR (também chamado de registro de dados de memória) antes de ser usado pela unidade de controle ou pela ULA. Para uma operação de gravação, a CPU armazena o valor que deseja gravar para a MBR e o endereço correspondente no MAR. A memória, em seguida, copia o valor do MBR para o endereço apontado pelo MAR. Finalmente, os dispositivos de entrada/saída (E/S), interface do sistema de computador com o mundo exterior permitem que programas e dados sejam inseridos no sistema e forneçam um meio para o sistema controlar algum tipo de dispositivo de saída. Cada porta de E/S tem um endereço exclusivo para que a CPU possa ler ou escrever um valor. Do ponto de vista da CPU, um dispositivo de E/S é acessado de forma muito semelhante à maneira como ele acessa a memória. Na verdade, em alguns sistemas de hardware, faz parecer para a CPU que os dispositivos de E/S são realmente os locais de memória. Nessa configuração, em que a CPU não vê nenhuma distinção entre memória e dispositivos de E/S, chama-se o dispositivo de E/S mapeado por memória. 11 Veja o esquema analítico, logo abaixo, que complementa a explicação. Figura 3: Esquema expandido da arquitetura Von Neumann Fonte: Sistemas da Informação Uniban/Anhanguera – John Von Neumann. O termo arquitetura de Harvard refere-se, originalmente, às arquiteturas de computador que usam o armazenamento de dados separado do de suas instruções (em contraste com a arquitetura de Von Neumann). O Mark I foi desenvolvido por Howard Aiken e foi construído pela IBM entre 1939 e 1944. Foi também conhecido como a Calculadora de Controle de Sequência Automática IBM (ASCC). Ele foi construído a partir de relés eletromecânicos; tinha 55 metros de comprimento, 8 metros de altura, 2 metros de profundidade e pesava 5 toneladas, tornando-se relativamente lento e muito barulhento. Números de até 23 casas decimais podiam ser representados, utilizando 3000 anéis eletromagnéticos de armazenamento decimais que estavam presentes na máquina. O Mark I Harvard foi usado pela Marinha dos EUA para artilharia e cálculos balísticos até 1959, mas estava desatualizado já no momento em que foi encomendado. Arquitetura Harvard 12 Unidade: Organização e Arquitetura de Computadores Aiken passou a desenvolver a Harvard Mark II, III e IV utilizando tecnologia de válvulas, e ele também desenvolveu o conceito de arquitetura de computadores de Harvard, que usa instrução fisicamente separada da memória de dados. Isso permite que a próxima instrução possa ser lida, enquanto os dados anteriores estejam sendo escritos na memória, e que a largura do bus de endereços e de dados possa ser diferente e otimizada para o tamanho apropriado. No entanto, dois módulos de memória são agora necessários para armazenar programas dentro da memória de instruções. Hoje esse conceito é utilizado em sistemas modernos, nos quais é importante isolar o percurso entre o processador e a memória para maximizar o desempenho. Hoje em dia, é usado um ônibus de dupla independente (DIB). Este substitui o barramento do sistema com um barramento frontal (FSB), que liga a memória do sistema (através do controlador de memória) à CPU, e também aos outros ônibus. O ônibus parte traseira (BSB) é usado para fornecer um canal rápido e direto entre a CPU e o cache L2. O termo arquitetura de Harvard é usado, agora, em referência auma filosofia de projeto de arquitetura de computador específico em que os caminhos de dados e de instruções são separados e utilizam memórias diferentes. Figura 4: Arquitetura Harvard Fonte: http://lib.bioinfo.pl/courses/view/675 Na arquitetura de Von Neumann, o programa e os dados são armazenados na mesma memória e geridos pelo mesmo subsistema de tratamento da informação. Na arquitetura de Harvard, o programa e os dados são armazenados e manipulados por diferentes subsistemas. Diferença entre a arquitetura Von Neumann e a de Harvard 13 Essa é a diferença essencial entre as duas arquiteturas. Figura 5: Comparação entre arquitetura Von Neumann x Harvard Arquitetura de Harvard tem bus de dados e de instrução separados, permitindo que as transferências sejam executadas simultaneamente em ambos os barramentos. Na arquitetura Von Neumann, existe apenas um bus, que é usado para transferências de dados e de instruções. Sendo assim, transferência de dados e buscas de instrução devem ser agendadas; elas não podem ser executadas ao mesmo tempo. É possível ter dois sistemas de memória separados para uma arquitetura de Harvard. Como instruções e dados podem ser alimentados ao mesmo tempo, não importa se se trata de um cache ou de memória. Mas há problemas com isso. Compiladores geralmente incorporam dados (pools de literais) dentro do código. Portanto, sob certas condições, um computador Harvard pode ser muito mais rápido do que um computador de Von Neumann, pois os dados e o programa não disputam a mesma informação, o que resulta em vasta melhoria na confiabilidade da arquitetura. Explore Para entender melhor o que está sendo explicado, sugiro que você confira o link, anexado a este documento, que demonstra de forma animada como ocorre o tratamento dos dados e instruções nessas duas arquiteturas, facilitando seu aprendizado. Ele está disponível em http://www.pictutorials.com/ Harvard_vs_Von_Nuemann_Architecture.htm Von Neumann – Arquitetura mais simples; – Mais lento pois não permite acesso simultâneo às memórias; – Geralmete CISC Exemplo: 4004 8080 8051 8085 Z80 – 46 instruções – 78 instruções – 111 instruções – 150 instruções – Mais de 500 instruções Harvard – Arquitetura mais complexa; – Mais rápido, pois permite acesso simultâneo às memórias; – Geralmente RISC – Permite o Pipelining Exemplo: – Intel 8086, 8088 – Microchip PIC – 35 instruções 14 Unidade: Organização e Arquitetura de Computadores Tradicionalmente, o software foi escrito para seguir a computação de eventos seriados, por rodar em um único computador e ter uma única unidade de processamento central (CPU). Dessa forma, um problema é dividido em uma série de instruções discretas que são executadas uma após a outra. Portanto, somente uma instrução pode ser executada em qualquer momento no tempo. Então, em um sentido mais simples, computação paralela é a utilização simultânea de vários recursos de computação para resolver um problema computacional. Por exemplo: • esses recursos podem ser executados utilizando múltiplas CPUs; • um problema pode ser quebrado em partes discretas que podem ser resolvidas simultaneamente; • cada parte pode ser, ainda, dividida em uma série de instruções; • instruções de cada parte podem ser executadas simultaneamente em diferentes CPUs. Dessa forma, os recursos de computação podem ser: • um único computador com múltiplos processadores; • um número arbitrário de computadores ligados por uma rede; • uma combinação de ambos. O problema computacional a ser resolvido deve ser capaz de: • ser quebrado em pedaços discretos de trabalho, que podem ser resolvidos simultaneamente; • executar instruções múltiplas de um programa em qualquer momento no tempo; • ser resolvido em tempo menor com vários recursos de computação do que com um recurso de computação único. Taxonomia de Flynn distingue arquiteturas de multiprocessador de computador, de acordo com a forma como eles podem ser classificados ao longo das duas dimensões independentes: de instrução e de dados. Cada uma dessas dimensões pode ter apenas um dos dois estados possíveis: simples ou múltiplo. Computação Paralela Taxonomia de Flynn 15 Ou seja, a sequência de instruções decodificadas e executadas pela CPU é chamada de um fluxo de instruções. Da mesma forma, um fluxo de dados é a sequência correspondente de operandos especificados por essas instruções. Usando essas definições, Flynn propõe a seguinte taxonomia de sistemas de computação paralela: SISD: fluxo único de instruções, único fluxo de dados. SIMD: único fluxo de instrução, transmissão de dados múltipla. MISD: múltiplo fluxo de instruções, fluxo de dados único. MIMD: múltiplo fluxo de instrução, transmissão de dados múltipla. Figura 6: Representação gráfica da taxonomia de Flynn Fonte: http://users.cis.fiu.edu/~prabakar/cda4101/Common/notes/lecture03.html Arquitetura de Von Neumann é SISD, com pipeling e arquiteturas superescalares. Processadores modernos não se encaixam tão bem nessa classificação. SISD: Fluxo único de instruções, único fluxo de dados • Computador serial (não paralelo); • Instrução simples: apenas um fluxo de instruções está sendo manipulado pela CPU durante qualquer ciclo de um clock; 16 Unidade: Organização e Arquitetura de Computadores • Dados individuais: apenas um fluxo de dados está sendo usado como entrada durante todo o ciclo de um clock; • Execução determinística; • Este é o mais antigo e, até hoje, o tipo mais comum de computador; • Exemplos: mainframes de gerações mais antigas, minicomputadores e estações de trabalho; PCs dos dias de hoje. Legenda: CU-unidade de controle, PU – unidade de processamento, MM – memória principal Figura 7: Representação gráfica da taxonomia de Flynn Fonte: http://users.cis.fiu.edu/~prabakar/cda4101/Common/notes/lecture03.html SIMD: Único fluxo de instrução, transmissão de dados múltipla. • Um tipo de computador paralelo; • Instrução única: todas as unidades de processamento executam a mesma instrução em qualquer dado num ciclo de clock; • Múltiplos dados: cada unidade de processamento pode funcionar em um elemento de dados diferente; • Mais adequado para problemas especializados caracterizados por um alto grau de regularidade, como gráficos / processamento de imagens; • Execução síncrona e determinística; • Duas variedades: matriz de processador e Pipelining vetorizado • Exemplos: o Matrizes de processador: MasPar MP-1, ILLIAC IV o Pipelining vetorial: Cray X-MP, Fujitsu VP, Hitachi S820 • A maioria dos computadores modernos, particularmente aqueles com unidades de processamento gráfico (GPUs), empregam instruções SIMD. 17 Legenda: CU-unidade de controle, PU – unidade de processamento, MM – memória principal. Figura 8: Representação gráfica da taxonomia de Flynn Fonte: http://users.cis.fiu.edu/~prabakar/cda4101/Common/notes/lecture03.html MISD: Múltiplo fluxo de instruções, fluxo de dados único. • Um tipo de computador paralelo; • Instrução múltipla: cada unidade de processamento opera sobre os dados de forma independente por meio de fluxos de instrução separados; • Dados individuais: um único fluxo de dados é alimentado em unidades de processamento múltiplo; • Poucos exemplos reais dessa classe de computador paralelo já existiram. Um deles é o experimental Carnegie-Mellon de 71 o Um uso possível poderia ser em algoritmos de criptografia múltipla, tentando quebrar uma única mensagem codificada. 18 Unidade: Organização e Arquitetura de Computadores Legenda: CU-unidade de controle, PU – unidade de processamento, MM – memória principal. Figura 9: Representação gráfica da taxonomia de Flynn Fonte: http://users.cis.fiu.edu/~prabakar/cda4101/Common/notes/lecture03.htmlMIMD: Múltiplo fluxo de instrução, transmissão de dados múltipla. • Um tipo de computador paralelo; • Instrução múltipla: cada processador pode executar um fluxo de instruções diferente; • Dados múltiplos: cada processador pode estar trabalhando com um fluxo de dados diferente; • A execução pode ser síncrona ou assíncrona, determinística ou não determinística. • Atualmente, o tipo mais comum de computador paralelo - supercomputadores mais modernos enquadram- se nessa categoria. • Exemplos: rede clusters de computadores paralelos, computadores com múltiplos processadores SMP, processadores multicore. 19 Definindo CISC e RISC CISC - Complex Instruction Set Computer - são chips de fácil programação que fazem uso mais eficiente da memória. Projetos mais comuns de microprocessadores, como a série de Motorola 68000 e Intel 8086, seguem essa filosofia. Mas mudanças recentes na tecnologia de hardware e software forçaram uma reavaliação do CISC e muitos processadores mais modernos CISC são híbridos, implementando muitos princípios de RISC. Foi desenvolvido para simplificar o desenvolvimento do compilador. Ele alterna a maior parte da carga de gerar instruções de máquina do processador. Por exemplo, em vez de ter que fazer um compilador escrever instruções em tempo de execução de máquina, para calcular uma raiz quadrada, um processador CISC teria uma capacidade nativa para fazer isso. O principal objetivo da arquitetura CISC é concluir uma tarefa em tão poucas linhas de montagem quanto possível. Isso é conseguido através da construção do hardware do processador, que é capaz de entender e executar uma série de operações. A maioria das arquiteturas de hardware CISC tem várias características em comum: • Decodificação de instrução lógica complexa, impulsionada pela necessidade de uma única instrução oferecer suporte a múltiplos modos de endereçamento. • Um pequeno número de registradores de propósito geral. Este é o resultado direto de ter instruções que podem operar diretamente a memória e a limitada quantidade de espaço de chip não dedicado para a decodificação de instruções, a execução e o armazenamento de microcódigo. • Muitos registradores de propósitos específicos. Isso pode simplificar o design de hardware um pouco, à custa de tornar a instrução mais complexa. Um registro de condição de código é definido como um efeito colateral da maioria das instruções. Esse registo reflete se o resultado da última operação é menor, igual ou maior que zero e registra se ocorrerem certas condições de erro. • Muitas instruções especializadas não são usadas com frequência suficiente para justificar a sua existência. Cerca de 20% das instruções disponíveis são usadas em um programa típico. RISC - Reduced Instruction Set Computer - é um tipo de arquitetura de microprocessador que utiliza um conjunto pequeno e altamente otimizado de instruções, em vez de um conjunto mais especializado de instruções muitas vezes encontradas em outros tipos de arquiteturas. Os primeiros projetos vieram da IBM, Berkley e Universidade de Stanford em meados dos anos 70 e foram projetados com uma filosofia que ficou conhecida como RISC. Certas características de design têm sido a característica da maioria dos processadores RISC até hoje, como, por exemplo: 20 Unidade: Organização e Arquitetura de Computadores • um ciclo de tempo de execução: processadores RISC têm uma CPI (clock por instrução) de um ciclo. Isso é devido à otimização de cada instrução à CPU e a uma técnica chamada PIPELINING. • PIPELINING: uma técnica que permite a execução simultânea de partes ou estágios de instruções mais eficientemente no processador de instruções; • grande número de registradores: a filosofia de projeto RISC geralmente incorpora um número maior de registradores para evitar grandes quantidades de interações com memória. Há, ainda, grande controvérsia entre os especialistas sobre o valor final da arquitetura RISC. Seus defensores argumentam que máquinas RISC são mais baratas e mais rápidas e são, portanto, as máquinas do futuro. Todavia, tornando o hardware mais simples, arquiteturas RISC colocam uma carga maior sobre o software e talvez não valha a pena, neste momento, porque os microprocessadores convencionais estão se tornando cada vez mais rápidos e mais baratos. As principais características de microprocessadores CISC são: • instruções extensivas; • instruções de máquina complexas e eficientes; • microcodificação de instruções de máquina; • amplos recursos de endereçamento para operações de memória; • relativamente poucos registros. Em comparação, processadores RISC são mais ou menos o oposto do acima. Suas características são: • reduzido conjunto de instruções; • instruções menos complexas e mais simples; • alguns esquemas de endereçamento para operandos de memória com apenas duas instruções básicas: carregar e armazenar muitos registradores simétricos que são organizados em um arquivo de registro. Tecnologias de processadores de última geração mudaram significativamente desde que chips RISC foram introduzidos no início dos anos 80. Um grande número de avanços foi usado pelos processadores RISC e CISC e as linhas entre as duas arquiteturas começaram a convergir. Diferença entre CISC e RISC 21 Na verdade, parece que as duas arquiteturas adotaram uma a estratégia da outra, porque aumentaram velocidades de processador, chips CISC, agora, são capazes de executar mais de uma instrução dentro de um único ciclo do CLOCK. Isso também permite que os chips CISC façam uso de PIPELINING. Com outras melhorias tecnológicas, agora é possível colocar mais transistores em um único chip. Isso dá a processadores RISC espaço suficiente para incorporar comandos mais complicados como no CISC. Chips RISC também fazem uso de hardware mais complicado, utilizando unidades de função extras para execução superescalar. Todos esses fatores têm levado alguns grupos a argumentar que, agora, estamos em uma era pós-RISC, em que os dois estilos tornaram-se tão semelhantes que distingui-los não é mais relevante. A Lei de Moore originou-se por volta de 1970 e estabelecia que a velocidade do processador ou poder de processamento geral dos computadores dobraria a cada dois anos. Uma verificação rápida entre os técnicos em diferentes empresas de computador mostra que o termo não é muito popular, mas a regra ainda é aceita. Ela diz que o número de transistores em um processador acessível dobraria a cada dois anos. Em termos de tamanho do transistor, pode-se ver que estamos nos aproximando do tamanho de átomos, que é uma barreira fundamental. Deverão acontecer, ainda, mais algumas transformações antes de atingirmos essa barreira, ou seja, temos mais 10 ou 20 anos antes de chegarmos a um limite fundamental. Lei de Moore 22 Unidade: Organização e Arquitetura de Computadores Material Complementar Quer se aprofundar um pouco mais no tema? Veja esta relação de vídeos e artigos que indicamos para sua leitura sobre o tema de nossa unidade III. Explore Para você que se interessou ou curte a parte mais fundamental do computador e quer, realmente, entender como as coisas são feitas na caixa preta, indico esta excelente apostila sobre o tema. Nela você vai poder mergulhar no assunto: Arquitetura de Computadores - Apostila Completa - http://pt.scribd.com/doc/16148458/Arquitetura-de-Computadores-Apostila-Completa Explore Para os que querem um resumo rápido, esta vídeo-aula ajudará bastante; é curta e eficaz: http://www.youtube.com/watch?v=mp3gU_wIA6I 23 Referências Harvard vs Von Neumann Architecture - Disponível em: http://www.pictutorials.com/Harvard_vs_Von_Nuemann_Architecture.htm .Acessado em 15/09/2012 Turing Machine Simulator – Instructions - Disponívelem: http://ironphoenix.org/tril/tm/. Acessado em 15/09/2012 24 Unidade: Organização e Arquitetura de Computadores Anotações www.cruzeirodosulvirtual.com.br Campus Liberdade Rua Galvão Bueno, 868 CEP 01506-000 São Paulo SP Brasil Tel: (55 11) 3385-3000
Compartilhar