Prévia do material em texto
Instituto Superior de Comunicação e Imagem de Moçambique INTRODUÇÃO À INFORMÁTICA E HARDWARE 1º Ano | Pós-Laboral Tema: CPU (Unidade Central de Processamento) Discentes: ● Elzo Guambe (Multimédia) ● Lucas Chauque (Informática de Sistemas) ● Vicente Mabuiangue Júnior (Multimédia) Docente: Belmiro Botão Maputo, Maio de 2024 ELZO GUAMBE LUCAS CHAUQUE VICENTE MABUIANGUE JUNIOR CPU (Unidade Central de Processamento) Registradores e Memória Cache Trabalho de investigação científica na disciplina de Introdução a Informática e Hardware a ser apresentado no Instituto de Superior de Comunicação e Imagem de Moçambique como parte dos requisitos para obtenção de notas académicas e conhecimento a ser adquirido. Docente: Dr. Belmiro Botão Maputo, Maio de 2024 Introdução O presente trabalho é sobre CPU (Unidade Central de Processamento), “o cérebro” do computador, responsável pelo controle do computador além das operações aritméticas, mais concretamente sobre os registradores e a memória cache. Os objectivos do trabalho é conhecer o conceito, funções, o processamento e o funcionamento da CPU, Registradores e Memória Cache em um computador. O trabalho está organizado pelos tópicos focais, que serão abordados sucessivamente começando com a CPU, de seguida Registradores, Memória Cache e um pouco sobre o mapeamento. Objectivos Geral Conhecer conceitos básicos da CPU, verificar qual relação existente entre registradores e memória cache com a CPU, diferenciar os tipos de memórias, entender como os registradores e memória cache funcionam, conhecer a estrutura de processamento. Objectivos Específico Explicar a utilidade das memórias cache e registradores no computador, saber a capacidade e os tipos de memórias, explicar a estrutura de processamento, definir a função dos registradores; identificar a função dos dispositivos. CPU Central Processing Unit (CPU), ou Unidade Central de Processamento (UCP) é o módulo principal de uma arquitectura de computador. Ela é responsável por realizar o controle do sistema de computador, além de executar funções de cálculo aritmético. O controle do sistema é realizado através da execução de um programa, isto é, uma sequência de comandos previamente definidos necessários para realizar um processamento. Desde os primeiros computadores sempre houve uma CPU, implementada em um gabinete ou placa. Mas actualmente, quando falamos em CPU, geralmente estamos nos referindo ao circuito integrado que realiza todas essas funções – o microprocessador. A CPU tem como função principal integrar todo o sistema do computador, isto é, realiza o controle de funcionamento de todas as unidades funcionais e é responsável pelo controle da execução de todos os programas do sistema.O funcionamento fundamental da Unidade Central de Processamento (UCP), não obstante o formato físico e arquitetura, é executar uma sequência de instruções armazenadas chamada programa. O programa é representado por uma série de números que são mantidos em algum tipo de memória no computador Estrutura geral e componentes da CPU ● Registradores: armazenam temporariamente dados e instruções. ● Unidade Lógica e Aritmética (ULA): “processa” os dados e actualiza os registadores ● Unidade de Controle (UC): “dispara” cada uma das etapas de execução da instrução. Exemplo de hierarquia de memória simples: REGISTADORES O Registrador de uma CPU é um tipo de memória rápida e com pequena capacidade construída dentro da CPU e utilizada para o armazenamento temporário de dados no processamento. Pelo facto de estarem próximos da Unidade Lógica e Aritmética e de serem construídas com circuitos de memória muito rápidos possibilita o maior desempenho no processamento. Os registradores ficam no topo da hierarquia de memória, por isso é a forma mais rápida e cara de se armazenar um dado. Os registradores são utilizados na execução de programas de computadores para disponibilizar um local para armazenar dados temporários. Na maioria dos computadores modernos, o processador copia as informações (dados), guardados na memória externa, para um registrador. As instruções que realizam algum cálculo numérico ou de controle utilizam esses dados, lidos em maior velocidade, são executadas pelo processador e, finalmente, os resultados da operação são movidos de volta para a memória principal. Podemos classificar os registradores em duas categorias: ❖ Registradores visíveis aos usuários ❖ Registradores de controle e estado Registradores visíveis ao usuário: podem ser referenciados pela linguagem de máquina que a CPU executa. Podem ser categorizados em: o de uso geral o de dados o de endereços o de códigos de condições ● Registradores de uso geral: podem ser usados para guardar qualquer operando: uso em conjuntos de instruções ortogonais à operação. Normalmente há restrições, por exemplo, registradores dedicados para pontos flutuantes (números reais em sistemas computacionais) e operações de pilha (remoção de elementos e inserção de novos objectos). ● Registradores de dados: utilizados para armazenar valores numéricos ou caracteres. Em algumas CPUs existe um registrador de dados especial, chamado acumulador, que recebe o dado de operações aritméticas e é utilizado implicitamente em muitas operações. O acumulador é usado sempre como um operando de qualquer operação e onde as funções de comparação podem ser realizadas (ele implementa funções de comparação). As CPUs mais actuais dispõem de vários registradores com as funções de acumulador, portanto não necessita de mover dados para um registrador específico. ● Registradores de endereço: são registradores que recebem o endereço de um objecto. O principal registrador de endereço é o PC ou o indicador de endereço da instrução em execução. Outro tipo de informação são os "ponteiros" (variáveis contendo o endereço) que apontam para um determinado dado na memória. ● Registradores de códigos de condição: bits escritos pela CPU como resultados de operações: overflow, zero. Podem ser usados em testes de condição. Em algumas máquinas uma chamada sub-rotina salva automaticamente os registros visíveis ao usuário. Em outras, o usuário deve incluir instruções específicas no programa. Registradores de estado e controle: Uma CPU possui uma variedade de registradores utilizados para o seu controle de uso. A maior parte destes não é visível ao usuário. Alguns, no entanto, podem ser visíveis a instruções de máquina executadas no modo de controle ou de sistema operacional. Quatro registradores são essenciais à execução de instruções: o PC (Program Counter/Contador do programa) o IR (Instruction Register/Registrador de instruções) o MAR (Memory Address Register/Registrador de Endereços de Memória) o MBR (Memory Buffer Register/Registrador Buffer de Memória) ● PC: Actualizado pela CPU após a busca da instrução. Um desvio ou skip também actualiza o seu conteúdo. ● IR: a instrução buscada é colocada no registrador de instruções. ● MAR & MBR: Dados e instruções são trocados com a memória via MAR e MBR a) Registrador de endereços de memória→ registrador que armazena o endereço da memória principal a ser acessado. b) Registrador buffer de memória → contém uma palavra de dados para ser escrita na memória ou a palavra lida mais recente bus de dados. MEMÓRIA CACHE Memória cache é uma pequena quantidade de memória rápida colocada entre a CPU e a memória principal. Eventualmente ela pode ser colocada dentro do chip da CPU. A ideia é que a memória cache leia um bloco grande da memória principal e sirva à CPU palavras isoladas para optimizar o desempenho. O funcionamento de uma memória cache é apresentado a seguir: a) A CPU solicita uma posição de memória. b) Verifica se essa posição está na cache. c) Se está, pega no cache. d) Senão, requisita o bloco da memória principal. e) Inclui rótulo para identificar bloco de memória f) CPU lê a memória desejada. g) Muito provavelmente a próxima posição solicitada pela CPUdeverá estar no cache. A escolha do tamanho de uma memória cache não é trivial. Inicialmente quanto maior a quantidade de memória rápida melhor será o desempenho do computador. Mas a memória cache são memórias rápidas que tem um custo elevado, então quanto menos memória, menor o custo do computador. Se a memória cache for pequena é necessário muitas buscas à memória principal, degradando o desempenho. Como verificar a existência de uma posição de memória no cache toma tempo, o sistema pode ficar até mais lento do que sem o uso de cache. Apesar de o desempenho aumentar com o aumento da memória cache ele não aumenta significativamente a partir de um certo ponto. Existem vários tipos de cache, como os seguintes: ● Cache de disco: é uma parte da memória RAM associada a um disco específico, onde os dados acessados recentemente são armazenados para acelerar o carregamento. ● Cache de rastreamento: semelhante à RAM, esse tipo de cache robusto usado por supercomputadores é poderoso, mas caro. ● Cache da Web: se encarrega de armazenar os dados de páginas da Web visitadas recentemente, para acelerar seu carregamento subsequente e economizar largura de banda. Este tipo de cache, por sua vez, pode funcionar para um único usuário (privado), vários usuários ao mesmo tempo (compartilhado) ou em conjunto para toda a rede gerenciada por um servidor (gateway). A memória cache é uma memória pequena e rápida que se interpõe entre a CPU e a memória principal para que esta funcione mais rapidamente. A memória cache é uma pequena memória rápida que se interpõe entre a CPU e a memória principal para permitir que esta funcione mais rapidamente. Para isso, é necessário manter na cache as áreas da memória principal que têm maior probabilidade de serem referenciadas. Isso é possível graças à propriedade de localidade de referência dos programas. Localidade de referência: temporal e espacial Os programas manifestam uma propriedade que é explorada na concepção do sistema de gestão da memória dos computadores em geral e da memória cache em particular, a localidade de referência. Na concepção do sistema de gestão da memória dos computadores em geral e da memória cache em particular, a localidade das referências: os programas tendem a reutilizar dados e instruções que foram localidade: os programas tendem a reutilizar dados e instruções que foram usados recentemente. Uma regra geral que se aplica à maioria dos programas revela que eles gastam 90% do seu tempo de execução em apenas 10% do seu código. Uma consequência da localidade de referência é que se pode prever com razoável exatidão as instruções e dados que o programa irá usar no futuro. O programa irá utilizar num futuro próximo a partir do conhecimento dos acessos à memória efectuados no passado recente, feitos no passado recente. A localidade de referência manifesta-se em duas dimensões: temporal e espacial. 1. Localidade temporal: as palavras de memória recentemente acedidas têm uma elevada probabilidade de serem novamente acedidas num futuro próximo. A localidade temporal dos programas é motivada principalmente pela existência de loops. 2. Localidade espacial: as palavras próximas no espaço de memória das palavras referenciadas recentemente têm uma elevada probabilidade de serem referenciadas num futuro próximo. É, ou seja, as palavras que estão próximas na memória tendem a ser referenciadas em conjunto no tempo. A localidade espacial é motivada principalmente pela linearidade dos programas (sequência linear de instruções) e pelo acesso a estruturas de dados regulares. Mapeamento Um detalhe importante na construção de memória cache é a forma que se mapeia a memória principal na memória cache. Há menos linhas de memória cache do que número de blocos. É necessário definir como mapear blocos de memória a linhas da memória cache. A escolha da função de mapeamento determina como a cache é organizada. Três tipos/funções de mapeamento: Mapeamento Direto, Mapeamento Associativo, Mapeamento Associativo por Conjunto. Mapeamento Directo O mapeamento directo mapeia cada bloco de memória principal em uma linha da memória cache exclusiva. O tag apenas indica o bloco da memória. O problema é quando o programa acessa dois blocos que mapeiam na mesma linha, exigindo a troca frequente do contexto. Mapeamento Associativo No mapeamento associativo um bloco de memória principal pode ser mapeado em qualquer linha da memória cache. A identificação da memória é realizada com o tag e a palavra. O tag identifica o bloco de memória e é verificado a cada busca de memória. O mecanismo é muito eficiente, mas o circuito é mais complexo e caro. Mapeamento Associativo por Conjunto O mapeamento associativo por conjunto é uma solução intermediária entre memória associativa e directa. A memória cache é identificada por um tag livre e um conjunto fixo para cada endereço e cada conjunto contém uma certa quantidade de linhas. Esse mecanismo oferece um bom compromisso de custo e flexibilidade e é o mais utilizado. Metodologia O trabalho ora apresentado é fruto de pesquisa que teve como método fonte de pesquisa secundária (livros, manuais) e fonte de pesquisa terciária (Bibliografias de bibliografias, bibliotecas virtuais, resumos online), na medida em que esses métodos eram o que melhor permitia a aproximação com o objecto estudado. Para obter os resultados e respostas acerca da problematização apresentada neste trabalho, foi feita a análise de vários textos online quanto em diferentes idiomas como Português, Espanhol e Inglês. Conclusão Neste trabalho abordamos acerca dos registradores e a memória cache, que são componentes essenciais nos sistemas de computação modernos. Eles desempenham papéis cruciais na optimização do desempenho e na eficiência do processamento de dados. Cumprimos somente alguns objectivos propostos devido a falta de alguns materiais digitais/online no nosso idioma. Este trabalho foi importante para nossa compreensão destes temas, visto que permitiu-nos focar, seleccionar e organizar as informações no tema que nos foi proposto. Referências DAUTO, N. & MPFUMO, R. B. Arquitectura e Tecnologia de Computadores - ISUTC, 2020 FERNANDEZ, M. P. Computação Arquitetura de Computadores. 3ª Ed. Editora: UECE, 2015. FERREIRA, J. C. Memórias Cache: Uma Introdução, 2006 HENNESSY, J. L. & PATTERSON, D. A. Arquitetura de Computadores: Uma Abordagem Quantitativa 3ª Ed. Editora: Campus, 2003. SONG, S. W. MAC0344 - Arquitetura de Computadores STALLINGS, W. Arquitetura e Organização de Computadores 5ª Ed. Editora: Prentice Hall, 2002.