Baixe o app para aproveitar ainda mais
Prévia do material em texto
ORGANIZAÇÃO DE COMPUTADORES – Semana 2 Raphael Embelicieri Junior EXERCÍCIOS DE PORTFÓLIO EXERCÍCIO 1 Sobre a SPEC e benchmarks, responda: (a) Nos resultados de benchmarks apresentados para uma arquitetura específica, quais fatores que influenciam o desempenho resultante? Os benchmarks executam os programas de computador e outras operações, servem para avaliar o desempenho dos programas. Influenciam no designer de microprocessadores. Por exemplo, se um benchmark extrai os algoritmos chave de uma aplicação, ele conterá aspectos de desempenho sensíveis dessa aplicação. Executando isso em um "trecho" muito menor em um simulador com ciclos precisos, podem-se obter pistas de como aumentar o desempenho do sistema. Fatores da arquitetura do CPU/memória que influenciam o seu desempenho: latência de execução de cada instrução: melhora-se com unidades funcionais mais rápidas; nº de instruções executadas por unidade de tempo (throughput): melhora-se com unidades funcionais encadeadas - pipeline, ou com paralelismo ao nível da instrução, superescalaridade; tempo de acesso à memória: melhora-se com hierarquia de memória e introdução de cache; largura de banda no acesso à memória: melhora-se com barramentos de dados mais largos ou com a introdução de acesso encadeado (pipeline), que no caso de acesso à memória se designa de interleaving. (b) Quais os tipos de benchmarks propostos pela SPEC? SPECspeed: conjunto de programas usado para comparar a habilidade de um computador para completar tarefas simples. SPECrate: medem o rendimento ou a taxa de eficiência de uma máquina ao realizar algumas tarefas. SPECcloud: medem o desempenho das plataformas de nuvem pública ou privada, projetado para salientar o provisionamento, bem como aspectos de tempo de execução de uma nuvem usando E/S e cargas de trabalho de computação em nuvem intensiva. (c) Qual a métrica de desempenho usada pela SPEC? Como é calculada? A SPEC utiliza-se de SPECucp que mede a vazão de UCP, velocidade de acesso a cache e memória e eficiência do compilador e consiste em duas partes: SPECint: conjunto de programas de teste que avaliam o desempenho do processador em aritmética de inteiros. SPECfp: conjunto de programas de teste que avaliam o desempenho do processador em operações de ponto flutuante. Calculado: Os resultados (vazão do sistema) obtidos na execução destes programas são reportados como uma razão entre o tempo que o sistema demorou para executar o kernel e o tempo que uma máquina de referência (da SPEC) leva para executar o mesmo kernel. EXERCÍCIO 2 Explique a evolução do desempenho de computadores ao longo da história, contextualizando a Lei de Moore e seu impacto, estratégias e limites tecnológicos, como a barreira de energia. Gordon E. Moore, fez sua profecia, na qual o número de transistores dos chips teria um aumento de 100%, pelo mesmo custo, a cada período de 18 meses. Essa profecia tornou-se realidade e acabou ganhando o nome de Lei de Moore. Inovações na eletrônica permitem diminuição da carga capacitiva, assim o ganho de tecnologia aumenta a potencia dissipada, com o aumento da velocidade, aumenta também o consumo de energia e a dissipação de calor. O limite tecnológico se da pelos altos custos de pesquisa e consumo de energia fazendo com que esta lei, esteja chegando ao fim. Seus componentes são: -Memória -Unidade aritmética e lógica (ALU) dentro desta unidade existe o acumulador -Unidade central de processamento -Unidade de controle Estas instruções são executadas num único barramento de memória. Modelo de Harvard: Apresentam características parecidas com a de Newman , porem a grade diferença se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador, uma memória exclusiva para memória de instrução e outra para os dados Também apresentam características similares como ALU Unidade de controle I/O (entrada e saída) (Característica adicional): Memória de programa Memória de dados EXERCÍCIO 3 Compare a Arquitetura de Von Neumann com a Arquitetura Harvard. A Arquitetura de von Neumann (de John von Neumann), é uma arquitetura de computador que se caracteriza pela possibilidade de uma máquina digital armazenar seus programas no mesmo espaço de memória que os dados, podendo assim manipular tais programas. A máquina proposta por Von Neumann reúne os seguintes componentes: uma memória, uma unidade aritmética e lógica (ALU), uma unidade central de processamento (CPU), composta por diversos registradores, e uma Unidade de Controle (CU), cuja função é a mesma da tabela de controle da Máquina de Turing universal: buscar um programa na memória, instrução por instrução, e executá-lo sobre os dados de entrada. Cada um dos elementos apresentados é realizado à custa de componentes físicos independentes, cuja implementação tem variado ao longo do tempo, consoante a evolução das tecnologias de fabricação, desde os relés electromagnéticos, os tubos de vácuo (ou válvulas), até aos semicondutores, abrangendo os transistores e os circuitos eletrônicos integrados, com média, alta ou muito alta densidade de integração (MSI – medium scale, LSI – large scale, ou VLSI – very large scale integration), medida em termos de milhões transistores por pastilha de silício. As internações entre os elementos exibem tempos típicos que também têm variado ao longo do tempo, consoante as tecnologias de fabricação. Atualmente, as CPUs processam instruções sob controlo de relógios cujos períodos típicos são da ordem de 1 nano segundo, ou seja, 10 ? 9 segundos. As memórias centrais têm tempos típicos de acesso da ordem da dezena de nano segundos. As unidades de entrada e saída exibem tempos típicos extremamente variáveis, mas que são tipicamente muito superiores à escala do nano segundo. Por exemplo, os discos duros exibem tempos da ordem do milissegundos (milésimo de segundo, 10 ? 3). Outros dispositivos periféricos são inertes, a não ser que sejam ativados por utilizadores humanos. Por exemplo, ao se fazer “copy and paste” não nota-se nada do que foi descrito acima, pois um teclado só envia informação para o computador após serem pressionada as devidas teclas. Assim, este dispositivo se comunica com a CPU eventualmente e, portanto, exibe tempos indeterminados. A Arquitetura de Harvard baseia-se em um conceito mais recente que a de Von-Neumann, tendo vindo da necessidade de por o microcontrolador para trabalhar mais rápido. É uma arquitetura de computador que se distingue das outras por possuir duas memórias diferentes e independentes em termos de barramento e ligação ao processador. Baseia-se na separação de barramentos de dados das memórias onde estão as instruções de programa e das memórias de dados, permitindo que um processador possa acessar as duas simultaneamente, obtendo um desempenho melhor do que a da Arquitetura de von Neumann, pois pode buscar uma nova instrução enquanto executa outra. A principal vantagem desta arquitetura é dada pela dupla ligação às memórias de dados e programa (código), permitindo assim que o processador leia uma instrução ao mesmo tempo em que faz um acesso à memória de dados. A arquitetura Havard também possui um repertório com menos instruções que a de Von- Neumann, e essas são executadas apenas num único ciclo de relógio. Os microcontroladores com arquitetura Havard são também conhecidos como “microcontroladores RISC” (Computador com Conjunto Reduzido de Instruções), e os microcontroladores com uma arquitetura Von-Neumann, de “microcontroladoresCISC” (Computador com um Conjunto Complexo de Instruções). A diferença entre a arquitetura Von Neunmann e a Harvard é que a última separa o armazenamento e o comportamento das instruções do CPU e os dados, enquanto a anterior utiliza o mesmo espaço de memória para ambos. Nos CPUs atuais, é mais comum encontrar a arquitetura Von Neunmann, mas algumas coisas da arquitetura Harvard também são vistas. Nessas distintas arquiteturas, temos vantagens e desvantagens, como pode-se observar a seguir: Arquitetura tipo Harvard: Caminhos de dados e de instrução distintos, dessa forma, seus componentes internos têm a seguinte disposição. Já na arquitetura Von-Neumann, é processada uma única informação por vez, visto que nessa tecnologia, execução e dados percorrem o mesmo barramento, o que torna o processo lento em relação à arquitetura Harvard. Essa é a tecnologia mais utilizada nos PC’s e microcontroladores, pois proporcionam maior velocidade de processamento, pois enquanto a CPU processa uma informação, outra nova informação está sendo buscada, de forma sucessiva. EXERCÍCIO 4 Explique e compare as organizações de CPU: acumulador, pilha, memória- memória, memória-registradora, registrador (load-store). A Arquitetura de Pilha é a mais simples possível, onde os dados necessários para a execução das operações pela ULA (unidade lógica e aritmética) são provenientes de registradores especiais organizados na forma de uma pilha e toda operação é realizada entre o registrador que indica o Topo de Pilha (apontado pelo registrador) e o registrador seguinte. Esse conjunto de instruções é muito simples porque a Unidade de Controle nunca precisa decodificar a instrução para saber quais registradores serão utilizados nas operações lógicas e aritméticas. Sempre será o topo da pilha e o registrador seguinte. Já na arquitetura baseada em Acumulador uma complexidade é adicionada. Um dos dados vem sempre do registrador Acumulador, mas o outro é mais livre vindo da memória, mas poderia vir de um outro registrador designado na instrução. Neste caso, a instrução a ser decodificada pela Unidade de Controle precisará trazer de onde vem o segundo dado a ser utilizado, já que o primeiro é sempre proveniente do Acumulador. Depois, a terceira arquitetura mais complexa é chamada Arquitetura Load/Store ou Registrador-Registrador, onde todas operações lógicas e aritméticas executadas pela ULA são provenientes de dois registradores a serem determinados pela instrução. A única forma de acessar dados da memória é através de duas instruções especiais: LOAD, para ler da memória e STORE para escrever o conteúdo de um registrador na memória. Finalmente, a mais complexa arquitetura é a Registrador-Memória. Esta arquitetura permite que a ULA execute operações lógicas e aritméticas envolvendo ao mesmo tempo um registrador indicado pela instrução e um conteúdo proveniente da memória. Esse tipo de instrução deve então trazer, em seu conteúdo, o código do registrador a ser utilizado e o endereço de memória do segundo dado.
Compartilhar