Baixe o app para aproveitar ainda mais
Prévia do material em texto
Organização de Computadores Aula 03 Prof.ª Larissa 2016 Sumário • Organização de sistemas de computadores: – Estrutura de um computador • Processadores – Introdução – Organização da CPU – Execução de Instrução – RISC versus CISC – Princípios de projetos para computadores modernos – Paralelismo no nível de instrução Estrutura de um computador • Componentes básicos que definem um computador: 1. Processador: Considerado o “cérebro” do computador, sua principal função é realizar operações funcionais sobre os dados de entrada, devolvendo uma saída, ou seja informação. 2. Memória: serve para armazenar dados. Não é possível haver processamento sem uma memória para armazenar os dados de entrada, os dados de saída e os dados que estão sendo processados. Estrutura de um computador • Componentes básicos que definem um computador: 3. Periféricos de E/S – Entrada/Saída: promovem a comunicação com o mundo externo. Meios pelos quais os dados de entrada são inseridos, ou por onde os dados de saída podem ser exibidos ao operador, ou ainda enviados a outro dispositivo. (Ex: teclado, mouse, monitor, impressora, display). 4. Barramentos: Sistema de conexões (Ex: condutor elétrico, fibra óptica) que permitem a interligação entre dispositivos de um sistema de computacional. Portanto, promovem a comunicação entre processador, memórias e periféricos (barramento externo à CPU), além da comunicação interna da CPU (barramento interno). Estrutura de um computador • Componentes básicos que definem um computador: Estrutura de um computador • Qualquer dispositivo programável cuja estrutura seja a da figura abaixo pode ser um computador. Desde um supercomputador de milhões de dólares a um microcontrolador que custa centavos. Um computador digital consiste em um sistema interconectado de processador(es), memórias e dispositivos de entrada e saída. Estrutura de um computador: Processador • Introdução ao Processador: • A unidade central de processamento (UCP ou CPU – Central Processing Unit) é cérebro do computador. É composta essencialmente por 4 elementos: 1. ULA (Unidade Lógica e Aritmética): onde a execução do processamento dos dados ocorre, por meio de operações lógicas e aritméticas realizadas pelos circuitos digitais. 2. Registradores: memória de alta velocidade onde os dados de entrada (operandos) ou saída (resultado) das operações são armazenados. Geralmente, todos os registradores de dada CPU possuem o mesmo tamanho em bits (Ex: 32 ou 64 bits). Estrutura de um computador: Processador 3. UC (Unidade de Controle): gera os sinais que coordenam o funcionamento da CPU. Responsável por buscar instruções na memória e decodificá-las. A etapa de decodificação inclui: determinar o tipo de instrução a ser realizada e interpretá-las em instruções mais simples (quando necessário). A UC também determina a ordem de execução das instruções pela ULA e realiza a busca de operandos. Denominamos instrução a cada ordem fornecida ao computador para que este realize uma operação específica com os dados. Estrutura de um computador: Processador 4. Barramentos internos da CPU: conjunto de fios paralelos que promove a comunicação (movimento de dados) entre os outros três elementos da CPU (UC, ULA e Registradores). Disponível em: <https://computersciencestudies.wordpress.com/tag/processador/> UC ULA Estrutura de um computador: Processador • Resumo da estrutura de um sistema computacional: Estrutura de um computador contendo uma CPU e dois periféricos de E/S CPU UC ULA Registradores Barramento externo Memória Principal Monitor Impressora Dispositivos de E/S Estrutura de um computador: Processador • Tipos de registradores: Existem registradores com funções distintas. Os tipos mais conhecidos são: • Contador de Programa (PC): Um dos registradores mais importantes, que indica a próxima instrução a ser buscada para execução. • Registrador de Instrução (IR): que contém a instrução que está sendo executada, ou seja, a informação captada da memória cache, principal, E/S, etc. • A maioria dos computadores também tem diversos outros registradores, alguns de uso geral, outros de uso específico. Estrutura de um computador: Processador • Organização interna da CPU: ULA BA A+B A B A+B Registradores Registrador de entrada da ULA Barramento de entrada da ULA Registrador de saída da ULA A organização interna de parte de uma típica CPU é mostrada ao lado. Esta parte é chamada de caminho de dados, e abrange registradores (tipicamente de 1 a 32), a ULA e os barramentos internos de conexão. Na figura, temos a representação dos registradores de entrada que recebem os valores hipotéticos A e B que serão somados na ALU e enviados ao registrador de saída. Os resultados são armazenados em registradores para novos cálculos e posteriormente podem ser armazenados (escritos) em memória. Estrutura de um computador: Processador • Organização interna da CPU: ULA BA A+B A B A+B Registradores Registrador de entrada da ULA Barramento de entrada da ULA Registrador de saída da ULA A comunicação entre os registradores e a ALU acontecem por meio de barramentos internos da CPU. O processo de submeter dois valores à ULA e obter um resultado é chamado de ciclo do caminho de dados. Quanto mais rápido for este ciclo, mais rápido será o funcionamento da máquina. Resumidamente, uma operação normal do caminho de dados consiste em selecionar o conteúdo de registradores, submetê-lo à ALU e movimentar o resultado para outro registrador. Estrutura de um computador: Processador • Organização interna da CPU: Instruções podem ser divididas em duas categorias: Instruções registrador-memória: permitem que palavras de memória sejam trazidas aos registradores, onde podem ser usadas como entradas da ULA em instruções subsequentes. Também permitem que o conteúdo de registradores sejam armazenados na memória. Instruções registrador-registrador: utiliza dados já disponíveis nos registradores. Uma típica instrução registrador-registrador busca dois operandos nos registradores, os traz até os registradores de entrada da ULA, efetua alguma operação entre eles e armazena o resultado em outro registrador. Palavra: unidade natural de informação usada por um computador. É a quantidade de bits que a CPU processa por vez. Em geral, os barramentos deverão ter a largura de uma palavra, assim como os registradores possuem o tamanho de uma palavra (portanto, é a quantidade de dados movida entre memória e registradores por vez). Quando dizemos que um processador “é de 64 bits”, estamos nos referindo ao tamanho da palavra. Estrutura de um computador: Processador • Execução de instrução: A CPU segue os seguintes passos na execução de instruções: 1- Traz a próxima instrução da memória até o registrador IR; 2- Altera o registrador PC para indicar a próxima instrução; 3- Determina o tipo da instrução (decodificação); 4- Se a instrução necessitar de uma palavra da memória, determina onde está a palavra; 5- Traz a palavra para dentro de um registrador da CPU, se necessário; 6- Executa a instrução; 7- Voltar à etapa 1 para iniciar a execução da instrução seguinte. Estrutura de um computador: Processador • Execução de instrução: Esta sequência seguida pela CPU costuma ser denominada ciclo buscar- decodificar-executar. É fundamental para a operação de todos os computadores. Buscar DecodificarExecutar Localiza instrução na memória principal Determina o tipo de instrução Executa “de fato” a instrução (ALU) Estrutura de um computador: Processador • RISC x CISC: RISC e CISC são duas linhas de arquiteturas de processadores: RISC (Reduced Instruction Set Computer): processadores com conjunto de instruções simples.Processadores RISC têm poucas e simples instruções, executando o nível ISA diretamente por hardware. Acarreta em processamento mais rápido da maioria das instruções comuns por não haver etapa de interpretação. CISC (Complex Instruction Set Computer): processadores com conjunto de instruções complexo. Processadores CISC executam uma variedade maior de instruções de máquina, e utilizam interpretação do nível ISA por microprograma. Uma única instrução CISC costuma executar funções que demandariam diversas instruções RISC. (Ex: 386, da Intel). Estrutura de um computador: Processador • RISC x CISC: Principalmente por questões de compatibilidade, a Intel manteve sua arquitetura CISC, porém, a partir do 486, seus chips possuem um núcleo RISC que executa as instruções mais simples (e tipicamente mais comuns) em um único ciclo de caminho de dados, enquanto interpreta as instruções mais complexas na forma CISC. O resultado é que instruções comuns são rápidas (RISC) e instruções menos comuns são mais lentas (CISC). Esta solução permite que seu desempenho seja satisfatório, mantendo a compatibilidade com softwares antigos. Atualmente, a maioria dos processadores possuem arquiteturas híbridas, que são essencialmente processadores CISC, mas incorporam muitos recursos encontrados nos processadores RISC, ou vice-versa. Estrutura de um computador: Processador • RISC x CISC: A quantidade de etapas necessárias para a execução de uma instrução nos processadores de arquitetura CISC é maior do que nos RISC, causando uma maior demora no processamento das instruções. Disponível em: <http://www.gruponetcampos.com.br/2011/03/arquitetura-cisc-e-risc-qual-diferenca/> Estrutura de um computador: Processador • Princípios de projetos para computadores modernos: Segundo Tanenbaum, há um conjunto de regras que designers de novas CPUs de uso geral tentam seguir. Estas regras são baseadas na tecnologia atual, e não são leis (podem mudar caso haja mudanças na tecnologia de fabricação dos dispositivos, ou precisam ser adaptadas devido a compatibilidade com outras arquiteturas). São baseadas nos princípios RISC: 1. Todas as instruções são diretamente executadas por hardware. Portanto, não deve haver etapa de microprograma (interpretação). 2. Maximize a taxa de emissão das instruções. Tentar iniciar o máximo possível de instruções por segundo. Um processador de 500 MIPS, por exemplo, emite 500 milhões de instruções por segundo. Este princípio sugere que o paralelismo pode desempenhar um importante papel no desempenho do processador. Estrutura de um computador: Processador • Princípios de projetos para computadores modernos: 3. Instruções devem ser fáceis de decodificar. Um limite crítico para a taxa de emissão de instruções é sua decodificação, para avaliar quais recursos elas necessitam. Aconselha-se fazer instruções regulares, de comprimento fixo, com pequeno número de campos. 4. Somente LOAD e STORE devem referenciar a memória. Apenas as instruções LOAD e STORE devem referenciar a memória, já que este acesso pode levar um longo e imprevisível tempo. Todas as outras instruções devem operar somente em registradores, que são mais rápidos. 5. Providencie muitos registradores. Já que o acesso à memória é relativamente lento, é preciso providenciar muitos registradores (no mínimo 32), de modo que, assim que uma palavra for buscada, ela possa ser mantida nos registradores até não ser mais necessária. Estrutura de um computador: Processador • Paralelismo no nível de instrução: Paralelismo: fazer duas ou mais coisas simultaneamente. Há duas formas gerais: paralelismo no nível de instrução e paralelismo no nível de processador. No nível de instrução, o paralelismo é explorado dentro de instruções individuais para conseguir mais instruções por segundo. Buscar instruções na memória é um gargalo na velocidade da execução de instruções. Por isso, o paralelismo propõe que as instruções sejam divididas em diversas partes, cada uma manipulada por uma parte dedicada do hardware, e todas elas podem operar em paralelo. Isso é também conhecido como pipeline. Estrutura de um computador: Processador • Paralelismo no nível de instrução: (a) Pipeline de cinco estágios (S1 a S5 são unidades dedicadas do hardware) (b) Execução paralela de instruções (1, 2, 3, 4...) pelas 5 unidades dedicadas, durante 9 ciclos de clock do processador. Instrução 1 em destaque. (a) (b) Clock: circuito que emite sinais elétricos através de um cristal de quartzo e realiza a sincronização entre as instruções a serem processadas. As oscilações são medidas em hertz (Hz). Estrutura de um computador: Processador • Paralelismo no nível de instrução: Funcionamento do pipeline de 5 estágios: • O estágio S1 busca a instrução da memória e armazena num buffer até chegar a hora de executá-la • No estágio S2 ocorre a decodificação da instrução, determinando tipo e operandos • No estágio S3 ocorre a busca dos operandos na memória ou nos registradores • No estágio S4 temos a execução - passagem pelo caminho de dados • No estágio S5 o resultado do processamento é escrito num registrador A fig. anterior mostra o funcionamento do pipeline mostrando que os estágios de cada processamento são aplicados a várias instruções simultaneamente. Por exemplo: no tempo 1 a instrução 1 está sendo lida; no tempo 2 a instrução 1 está sendo decodificada enquanto a instrução 2 está sendo lida, e assim por diante. Estrutura de um computador: Processador • Paralelismo no nível de instrução: Latência (L) [s]: tempo que demora para uma instrução ser executada. Largura de banda do processador (LBP) [MIPS]: velocidade de processamento (quantos MIPS tem a CPU). Estágios (n): número de estágios de pipeline do processador. 𝐿𝐿 𝑠𝑠 = 𝑇𝑇[𝑠𝑠] × 𝑛𝑛Tempo de ciclo (T) [s]: tempo de cada ciclo de clock do processador.LBP 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑛𝑛 𝐿𝐿[𝑠𝑠] × 106 Estamos supondo que cada estágio ocorra exatamente em um ciclo de clock! Estrutura de um computador: Processador • Paralelismo no nível de instrução: 1-a) Supondo que o ciclo da máquina de um pipeline de 5 estágios dure 2ns, quantos segundos demora uma instrução para percorrer todo o caminho do pipeline (latência), sabendo que cada estágio se completa em um ciclo? b) Qual é a velocidade de processamento deste processador (LBP), em MIPS? 𝐿𝐿 𝑠𝑠 = 𝑇𝑇[𝑠𝑠] × 𝑛𝑛 LBP 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑛𝑛 𝐿𝐿[𝑠𝑠] × 106 𝐿𝐿 𝑛𝑛𝑠𝑠 = 2[𝑛𝑛𝑠𝑠] × 5 𝐿𝐿 = 10𝑛𝑛𝑠𝑠 LBP = 510. 10−9 × 106 LBP = 500𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 Estrutura de um computador: Processador • Paralelismo no nível de instrução: 2) No caminho de dados de uma máquina, carregar os registradores da ULA leva 5ns, executar a ULA leva 10ns e registrar o valor da informação de saída num registrador leva 5ns. Não há nenhuma outra etapa de execução de instrução. Qual é o número máximo de MIPS de que esta máquina é capaz na ausência de paralelismo? LBP 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 = 𝑛𝑛 𝐿𝐿[𝑠𝑠] × 106 𝐿𝐿 𝑛𝑛𝑠𝑠 = 5 + 10 + 5 𝐿𝐿 = 20𝑛𝑛𝑠𝑠 LBP = 120. 10−9 × 106 LBP = 50𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 Estrutura de um computador: Processador • Paralelismo no nível de instrução: 3) No computador 1, o tempo total de execução de uma instrução é 10ns, sendo que há um pipeline de 5 estágios. No computador 2, o tempo de execução é de 5ns, porém não há pipeline. Qual é a largura de banda dos respectivos processadores? 𝐿𝐿 = 10𝑛𝑛𝑠𝑠LBP = 510. 10−9 × 106LBP = 500𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 Computador 1: Computador 2: 𝐿𝐿 = 5𝑛𝑛𝑠𝑠𝑛𝑛 = 5 𝑛𝑛 = 1LBP = 15. 10−9 × 106LBP = 200𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 Estrutura de um computador: Processador • Paralelismo no nível de instrução: 4) Qual é a finalidade da etapa 2 na lista de passos de execução de instrução? O que aconteceria se esta etapa fosse omitida? “2- Alterar o registrador PC para indicar a próxima instrução”A finalidade da etapa é fazer o contador de programa apontar para a próxima instrução a ser executada. Caso esta etapa seja omitida, o computador executaria a primeira instrução infinitamente. Organização de Computadores Sumário Estrutura de um computador Estrutura de um computador Estrutura de um computador Estrutura de um computador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador Estrutura de um computador: Processador
Compartilhar