Prévia do material em texto
UNIVERSIDADE JEAN PIAGET DE ANGOLA FACULDADE DE CIÊNCIAS E TECNOLOGIA CURSO DE ENGENHARIA INFORMÁTICA DE GESTÃO CADEIRA DE ARQUITECTURA DE COMPUTADORES MICROPROCESSADORES TURNO: DIURNO/NOCTURNO TURMA: Infgest-D e Infgest-N DOCENTE: Nuno Sebastião ANO LECTIVO 2019 1 MICROPROCESSASDORES O microprocessador também é conhecido como processador ou CPU (central processing unit), ou em português UCP (unidade central de processamento). Entre usuários e técnicos de computadores commumente é usado o termo processador para designar o microprocessador e CPU para designar o PC (personal computer). Não é uma regra, e sim uma maneira de evitar “confusões” entre as partes envolvidas no processo de integração, configuração ou manutenção do PC, no entanto você pode escolher a sua forma de referir o microprocessador. Aqui vamos usar o termo Processador. PROCESSADOR: É o chip principal de interpretação de comandos de um computador; é essa unidade que processa as instruções, que executa os cálculos e que gerencia o fluxo de informações pelo computador É considerado o cérebro do computador. O processador pega as informações a as processa devolvendo ao usuário na tela ou armazenando em disco ou imprimindo em papel. Os processadores como geram muito calor necessitam de um sistema de refrigeração com dissipador de calor e ventoinhas para o bom funcionamento do processador. Para que serve um Processador? O processador é considerado o cérebro de um microcomputador, ou seja, é o componente electrónico principal de um PC, o responsável pelo processamento e tratamento dos dados, tais como: Funções matemáticas; Funções lógicas; Tratamento de vídeo; Tratamento de áudio; Gerenciamento de dados; Comunicações, etc. O endereçamento máximo disponível pelo sistema, ou seja, a capacidade máxima de armazenamento da memória principal e o controlo, directo ou indirecto, de todos os periféricos integrados e conectados ao PC também são responsabilidade do processador Como o processador Funciona? Inicialmente para começar o estudo, o Processador será representado / chamado por uma Caixa-Preta. Este procedimento é muito comum e torna o aprendizado mais eficiente. O processamento dos dados é feito de uma maneira sequencial, ou seja, passo a passo. Primeiramente o dado é recebido (entrada da caixa), em seguida ele é processado internamente e finalmente o resultado do processamento é apresentado em uma saída. Essa forma de execução será sempre a mesma, independentemente do tipo de processamento manipulado pela caixa-preta. A figura abaixo mostra o processador representado por uma caixa-preta, cujo função é receber os dados aplicados à sua entrada, processá-los em conformidade com as instruções e apresentar resultados bem definidos em sua saída. Dois detalhes importantes devem ser observados nesse processo: A existência de uma sequencia de passos; Não ocorre um passo simultâneo ao outro. Ou seja, eles não acontecem ao mesmo tempo (considerando-se que o processador possua apenas um núcleo – core, em inglês). Logo conclui-se que quanto mais rápido for o passo, menor será o tempo de espera para o próximo passo. Devemos perceber que a velocidade dos passos, melhor dizendo, a performance do processamento está intimamente ligada à velocidade na qual a caixa-preta opera; logo, quanto maior a velocidade de operação, mais rápido o resultado chega a saída. Evidentemente, a performance de um processador não depende exclusivamente da velocidade, mas também das tecnologias a ele integradas. Mas, o facto é que a velocidade de operação é um factor relevante na performance de qualquer processador. Tanto a velocidade de execução como o controle dos passos, em função do tempo, são feitos por meio de um circuito externo, normalmente designado por Relógio (clock) interligado a caixa-preta. A figura abaixo mostra a caixa-preta associada ao clock externo. O circuito externo de relógio é responsável por gerar e enviar pulsos quadrados periódicos para a caixa-preta. É por meio desses pulsos periódicos que a caixa preta realiza o processamento ordenado, ou seja, sincronização de todos os passos executados internamente e também externamente à caixa. Os pulsos são periódicos e possuem forma quadrática. Os pulsos devem ser quadrados porque eles alimentam um sistema digital, o que exige dois níveis de tensão bem definidos para representar os níveis digitais “0” e “1”. Devem ser periódicos porque, pois assim o tempo de execução será rigorosamente igual para todos e facilita o projecto do circuito de clock usado em conjunto com a caixa-preta. A figura mostra uma onda quadrada com três pulsos (ciclos) periódicos, chamados T1, T2 e T3. EXERCÍCIOS Se considerarmos essa onda (figura 3) gerada pelo circuito de clock, usados na 2ª figura, podemos enumerar alguns eventos. Quantos e quais são os eventos que ocorrem? Temos 3 pulsos (ciclos) periódicos, T1, T2 e T3. ? OBSERVAÇÕES De uma forma mais abrangente, para a caixa-preta possa processar dados, é necessário: Dados de entrada; Instruções de operação; Clock com pulsos periódicos. Estas instruções de operação (soma, divisão, etc) são recebidas pela caixa-preta tal como os dados de entrada. A caixa preta está preparada para receber uma infinidade de operações e funções, tais como soma, subtração, complemento de 2, rotação à esquerda e à direita, funções lógicas, comparação entre registadores, etc. Quando queremos que a caixa-preta realize determinada tarefa, fornecemos a ela uma sequência de instruções, à qual atribuímos o nome de programa ou software. Então podemos dizer que qualquer programa é simplesmente 1 conjunto de instruções que pode ser reconhecida e executada por uma determinada caixa-preta. ARQUITECTURA EXTERNA DO PROCESSADOR A figura abaixo mostra a arquitectura externa básica de 1 processador genérico, interligado com a memória de sistema e os dispositivos de Entrada e Saída (I/O – imput/output) por meio de barramentos. Entre o processador, a memória e os dispositivos de entrada/saída, acontece a transferência de sinais eléctricos, ou seja, a transmissão de informação entre eles. Os meios pelos quais estas informações trafegam são chamados de barramentos (bus em ingês). Estas informações que trafegam nos bus podem ser de: Dados; Endereços; Sinais de controlo. Conforme visto na anterior figura, existe 1 tipo de barramento dedicado ao tráfego de um tipo de informação, entre o processador e os dispositivos de sistema: Barramento de Dados – Data bus; Barramento de Endereço – Address bus; Barramento de sinais de controlo – Control bus. Se observarmos na figura anterior, vemos que os barramentos de Dados e controlo possuem setas bidireccionais ( ambos sentidos) e o barramento de endereço setas unidireccional (único sentido). O que isto quer dizer ? Essa forma de representação quer dizer que: Setas bidireccionais: As informações que trafegam no bus podem tanto entrar como sair do processador e/ou dispositivos de sistema, logo temos que as informações trafegam em dois sentidos; Setas unidireccionais: As informações que trafegam somente podem sair do processador e entrar nos dispositivos de sistemas, portanto as informações trafegam em um único sentido. DATA BUS Todas as informações (dados e instruções) que serão manipuladas internamente pelo processador utilizam o barramento de dados para serem transferidas dos periféricos do sistema para o processador. Quando as informações já foram processados e o resultado está disponível, ele retorna para o periférico do sistema solicitante por meio do mesmo barramento dados que foi utilizado para entrada de informações. Fisicamente este bus é formado por vias, ou seja, um conjunto de vias forma o barramento de dados. Cada via transmite 1 bit, portanto um bus de 16 vias possui 16 bits de largura. A largura de 1 barramento de dados varia de acordo com o processador utilizado nosistema. Por exemplo, os processadores da família pentium III e compatíveis possuem 1 Data bus com 64 bits de largura, já os da família 386 e 486 têm 32 bits. ADDRESS BUS Este, é utilizado pelo processador para endereçar os periféricos do sistema, tais como memórias RAM, controladores de vídeo, disco, rede, entre outros. Como já foi estudado, este bus é do tipo unidireccional, uma vez que o processador usa-o para apontar um determinado endereço em um instante. No momento seguinte o bus é usado para apontar um outro endereço e assim sucessivamente. Portanto, o tráfego de bits neste bus será sempre do processador para os periféricos do sistema, logo é unidireccional. Todos os dados e instruções que entram e saem do processador são conduzidos pelo bus de dados, porém, é por meio do Address bus que o processador fornece os endereços em que os dados e instruções, que serão usados para o processamento, estão armazenados. Este processo é conhecido como leitura. Após o processamento das informações, o resultado deve ser armazenado em alguma posição de memória ou transferido para algum dispositivo de I/O. Para que isso ocorra, o processador fornece o endereço da memória ou do dispositivo de I/O em que o resultado será armazenado. Este procedimento é conhecido como escrita. Tal como o Data bus, este também é composto por vias, e caso ele possua 16 vias para endereços, então pode-se dizer que a largura do barramento é de 16 bits. Normalmente quanto mais moderno o processador, maior será a largura do Address bus. CONTROL BUS É por meio deste, que o processador recebe e/ou envia sinais de controlo para todos os dispositivos do sistema. Como nesse bus trafegam sinais de controlo em ambos os sentidos, ele é considerado bidireccional, más existem vias desse bus que que so enviam sinais, como a via R/W (Read/Write), e outras que só recebem, como a via CLK (Clock-relógio). Como o conceito se refere ao conjunto de vias que forma o barramento, ele é considerado bidireccional. Se observarmos novamente a figura 3.2, vamos perceber que o circuito de clock gera 1 sinal eléctrico (onda quadrada periódica) que é transmitido por uma linha para o processador (caixa-preta). Essa linha representa uma das vias do barramento de controlo, nesse caso denominado CLK, e é responsável transmitir pulsos ao processador. Ao contrário dos 2 barramentos anteriores, que só executam um tipo de evento, ou seja, transferência de dados ou a de endereços, este bus possui vários eventos distintos de controlo, tais como Reset, Interrupções, selecção entre memórias ou dispositivos de I/O (M/ IO), Busy, Hold, etc. Os sinais de controlo dependem exclusivamente e tecnologia empregadas no processador, uma vez que cada geração de processador possui sinais de controlo que são adequados ao seu funcionamento. Por este motivo não é usual indicar o barramento de controlo em função a sua quantidade de bits, isto é, sua largura. ARQUITECTURA INTERNA DO PROCESSADOR O detalhar da arquitectura interna de um processador é muito extenso e complexo, portanto será apresentada a de um processador genérico de uma forma simples e resumida. A arquitectura interna de 1 processador genérico pode ser dividida em 3 blocos básicos: Unidade lógica e aritmética – ULA / ALU; Unidade de controlo – UC / CU; Registradores internos – RI / IR. A ULA faz as seguintes operações com dados binários: - Adição, subtracção, divisão, multiplicação; - Complemento de 2; - Operações lógicas AND, OR e EXCLUSIVE OR; - Rotação à esquerda e à direita. A UC é responsável por controlar e gerenciar a sincronização de todas as transferências de dados e instruções que são manipulados pelo processador. Os Registradores Internos: podem ser considerados memórias temporárias, más com a capacidade de armazenamento muito pequena, na ordem dos bits. Actualmente existem RIs de 8, 16, 32, 64 e 128 bits. A largura de RIs de um processador está intimamente ligada ao seu projecto e a sua geração. Quando se diz que um processador possui tecnologia de 32 bits, significa que os seus registradores internos têm a capacidade de manipular dados com a largura máxima de 32 bits. 1 processador genérico possui os seguintes registradores: Registradores de instruções - RI, registradores de status – RS – FLAGS, registradores indexados – RX, registradores de uso geral – RUG, contador de programa – CP, acumulador – ACC, ponteiro de pilha – PP. Sistema com pipeline É uma microarquitectura que permite o processador iniciar uma nova instrução antes que a instrução corrente esteja terminada, ou seja, permite que o processador leia uma nova instrução a partir da memória antes que a instrução corrente seja finalizada. Nos processadores fabricados actualmente, várias instruções podem ser manipuladas simultaneamente. Isso é possível devido a quantidade de Estágio de pipeline, também conhecido por Profundidade do pipilining. Por exemplo, o processador i486 TM, possui 4 estágios de pipeline, o que significa que até 4 instruções podem ser manipuladas durante um ciclo de máquina. a utilização da técnica de pipeline economiza tempo na carga de instrução, garantindo que o processador não fique em estado de espera (wait state), isto é, aguardando que uma nova instrução seja carregada para ser executada. Uma pipelining de instruções é semelhante a uma linha de montagem, de uma indústria. Na linha de montagem pode-se começar a fazer o segundo produto antes do primeiro estar concluído. De forma análoga, em uma pipelining de instruções, novas entradas são aceitas em uma extremidade, antes que entradas aceitas previamente apareçam como saídas na outra extremidade. TIPOS DE SOFTWARE Software é um agrupamento de comandos escritos / sequência de instruções em uma linguagem de programação. Estes comandos, ou instruções, criam as acções dentro do programa, e permitem seu funcionamento. SOFTWARE DE SISTEMA / SISTEMA OPERATIVO: É o programa responsável por interpretar comandos e criar uma interface entre o usuário e o PC. é aquele que roda em segundo plano ajudando na gestão do hardware e dando suporte aos aplicativos. Ele interpreta nossas acções e transforma os dados em códigos binários, que podem ser processados. SOFTWARE APLICATIVO: É o programa responsável por auxiliar o usuário a realizar as suas tarefas. Eles são bem mais específicos que um SO. Eemplos: Word, Exel, Paint, Bloco de notas, calculadora, primavera, adobe reader, media player. SOFTWARE DE PROGRAMAÇÃO: são softwares usados para criar outros programas, a parir de uma linguagem de programação, como Java, PHP, Pascal, C+, C++, entre outras. SOFTWARE DE TUTORIAL: São programas que auxiliam o usuário de outro programa, ou ensine a fazer algo sobre determinado assunto. SOFTWARE DE JOGOS: São Softwares usados para o lazer, com vários tipos de recursos. SOFTWARE ABERTO: É qualquer dos softwares acima, que tenha o código fonte disponível para qualquer pessoa. Os softwares com código aberto são muito úteis, pois é uma ajuda a quem está começando a programar, assim como as pessoas já mestres em programação. Estes Softwares proporcionam as pessoas compartilharem informações para que todos se beneficiem. Firmware É um software desenvolvido em linguagem de baixo nível, tal como Assembly, que faz a gestão de todo sistema de hardware. A bios integrada num PC (computador) também é conhecida por ser o firmware do PC. A BIOS (basic input and output system) é o firmware do PC, normalmente armazenado em EEPROMs ou EPROMs. Também é conhecida por flash bios. DRIVER: É uma rotina de software responsável por receber requisições de I/O, do sistema operacional, e converte-los em um protocolo requerido pelo periférico específico. Sistema monoprocessador : Num sistema monoprocessador, apenas é executada uma instrução de cada vez. Sistemas paralelos: Sistemas com mais do que um processador, aonde ocorrem: - Partilha da memória, relógio, periféricos, canais de comunicação. Vantagens económico, - viabilidade. Problemas/ Desvantagens - custos de coordenação, - programação específica. Sistema multiprocessador ???