PROCESSADOR ULA Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade. ULA Uma ULA típica pode realizar as operações artiméticas: - adição; - subtração; E lógicas: - comparação de magnitude; - e operações AND e OR. ULA Exemplo: O exemplo a seguir apresenta um exemplo de uma ULA de um processador com entrada e saída de N-bit e um sinal de controle que especifica a operação a realizar. ULA ULA Os dados A e B são obtidos de registradores, os quais podem ser carregados tanto com dados externos, por exemplo, vindos de uma memória externa, ou com o resultado interno produzido pela própria ULA. A1111 Y=A+B A ax cx A1112 A A1113 B A1114 Y=A+B A1115 C Contador de Instruções A1116 D A1114 A1117 Z=C+D A1118 ... BD B bx MEMÓRIA PRINCIPAL Y BE A1119 A111A A111B A111C A111D A111E A111F BD - Barramento de Dados BE - Barramento de Endereços ULA O registrador que armazena os resultados intermediários/finais produzidos pela ULA é conhecido como acumulador. A1111 Y=A+B A ax cx A1112 A A1113 B A1114 Y=A+B A1115 C Contador de Instruções A1116 D A1114 A1117 Z=C+D A1118 ... BD B bx MEMÓRIA PRINCIPAL Y BE A1119 A111A A111B A111C A111D A111E A111F BD - Barramento de Dados BE - Barramento de Endereços ULA Os sinais de controle da ULA são gerados pela unidade de controle de acordo com a instrução a ser executada. A1111 Y=A+B A ax cx A1112 A A1113 B A1114 Y=A+B A1115 C Contador de Instruções A1116 D A1114 A1117 Z=C+D A1118 ... BD B bx MEMÓRIA PRINCIPAL Y BE A1119 A111A A111B A111C A111D A111E A111F BD - Barramento de Dados BE - Barramento de Endereços ULA A unidade de controle também gera sinais adicionais para o controle dos componentes externos a ULA que estão integrados ao caminho de dados, como a carga/escrita de dados em registradores/memórias externas e etc. A1111 Y=A+B A ax cx A1112 A A1113 B A1114 Y=A+B A1115 C Contador de Instruções A1116 D A1114 A1117 Z=C+D A1118 ... BD B bx MEMÓRIA PRINCIPAL Y BE A1119 A111A A111B A111C A111D A111E A111F BD - Barramento de Dados BE - Barramento de Endereços ULA As ULAs mais modernas realizam operações aritméticas como: - soma; - subtração; - multiplicação - divisão. E operações lógicas como: - AND; - OR; - XOR; - NOT - SHIFT; - ROTATES. Principais componentes do processador Os principais componentes de um processador são: - Unidade de Controle (UC); - Unidade Lógica e Aritmética (ULA); - Registrador; - Memória Cache. Unidade de Controle A Unidade de Controle (UC) é um componente do processador responsável por gerar sinais elétricos que controlam outros componentes: - responsável por gerar todos os sinais que controlam as operações no exterior do CPU; - resposnsável por todas as instruções para o correto funcionamento interno do CPU; - responsável por controlar as ações da ULA e dos registradores; - os sinais são gerados com base na instrução que está sendo processada. Unidade de Controle A UC atua em conjunto com outra estrutura: o decodificador de instruções. A unidade de controle executa três ações básicas intrínsecas e préprogramadas pelo próprio fabricante do processador: - busca (fetch); - decodificação; - execução. OBS: nos processadores atuais são muito mais ações. Unidade de Controle O processador, ao iniciar sua operação, realiza uma operação cíclica, tendo como base essas três ações. Dependendo do tipo de microprocessador, a unidade de controle pode se ser fixa ou programável. Unidade de Controle A unidade fixa é aquela unidade que já vem com todo o conjunto de instrução programado em uma PLA que é construída pelo fabricante, dentro da UC. Exemplo: Microprocessadores antigos como 8080, 8085, Z80, 6800 e 6502 possuem unidade de controle fixa. Unidade de Controle A UC programável, além de permitir a construção das partes do computator usando módulos básicos Bit slices, permite ao projetista de hardware programar seu próprio conjunto de instruções. Exemplo: Unidade de controle programável pode ser visto nos processadores conhecidos como Bit slicing. O ILLIAC IV (Illinois Array Computer) foi o primeiro sistema SIMD de ampla repercussão, sendo do final da década de 1960. Unidade de Controle Passos: - inicialmente, a UC de controle fornece o endereço de memória de onde deve retirar um byte ou mais, conhecido como chunk; - esse chunk pode conter um código de operação-opcode, ou um operando também conhecido como dado; - na primeira posição de memória deve sempre ser gravado um opcode, pois só o opcode pode informar para a UC qual ação deve ser tomada depois. Unidade de Controle Passos: - além de controlar a posição de memória que contém a instrução corrente que o computador está executando a UC; - ao decodificar o opcode, informa à ULA qual operação a executar: soma ou subtração nos processadores de 8 bits; - nos processadores de 16 bits podem ser efetuadas as instruções de soma, subtração, divisão e multiplicação. Unidade de Controle Passos: - a UC tem a capacidade de realizar operações que denominamos operações lógicas, onde se incluem: AND: e; OR: ou; XOR: ou exclusivo; CMP: comparação; SHIFT: deslocamento de bits para a direita e para a esquerda. Registrador A arquitetura de um processador pode ser orientada de dois tipos: por registrador ou para a memória. Registrador Se for orientada para registradores como no caso da arquitetura Intel, a ULA, após executar qualquer operação lógica ou aritmética, sempre vai armazenar o resultado no registrador acumulador. Registrador Se for orientado para memória (microprocessadores Motorola), nem sempre o resultado é armazenado no acumulador, podendo esse ser armazenado em qualquer posição de memória. Terminada a primeira instrução, a unidade de controle auto incrementa um contador, chamado de contador de programa e vai para a próxima instrução (tipicamente localizada na próxima posição da memória, endereço de memória), a menos que a instrução seja uma instrução de desvio informando o computador que a próxima instrução está em outra posição. Registrador É um dispositivo de armazenamento de dados existente dentro do processador; Tem tamanho do registrador é medido em bits, variando de 32 a 256 bits nos processadores atuais. O conjunto de todos os registradores forma uma memória interna do processador, de alta velocidade, mas de baixa capacidade se comparada com outras memórias (cache, principal, disco rígido, CD). Registrador O registrador é a memória mais rápida da hierarquia de memória do computador. É possível ler e escrever rapidamente nele. Antes de executar uma instrução, todos os dados que a instrução precisa são lidos da memória cache e armazenados nos registradores. A instrução indica quais registradores devem ser usados e qual operação (soma, subtração, multiplicação…) deve ser executada sobre eles; Cache Memória intermediária entre a memória principal e os registradores do processador. É dividida em níveis LX (Level X): - Cache L1; - Cache L2; - Cache L3; OBS: Geralmente as caches L1 e L2 estão embutidas (on-chip ou on-die) no chip do processador. Possui um auto custo pode ser utilizada a mesma tecnologia empregada nos processadores. Barramentos São os conjuntos de micro conectores que ligam o microprocessador à placamãe, através dos quais os dados e as instruções, os endereços e os elementos de controle trafegam. Os barramentos são bidirecionais, ou seja, permitem tanto a entrada de dados no microprocessador quanto a saída de dados deste. São três os barramentos de um microprocessador, cada um deles ligado a uma de suas unidades primárias. Barramentos Barramento de Dados Este barramento serve à ULA, utilizado para o tráfego dos dados e das instruções. A largura dos barramentos atuais é de 32 ou 64 bits, o que significa que cada operação executada processa um bloco de 32 ou 64 dígitos binários. Ao tamanho do barramento de dados também se dá o nome de “PALAVRA”. Ao se dizer que um processador possui barramento de 32 bits, o termo se refere SEMPRE ao tamanho do barramento de dados, e isto equivale a dizer que o processador trabalha com uma PALAVRA de 32 bits. Barramentos Barramento de Controle Serve à Unidade de Controle, transportando os dados das coordenadas providas por esta unidade. Barramentos Barramento de Endereços Onde trafegam os elementos que compõe os endereços de memória que devem ser acessados, e que está, portanto, ligado aos Registradores. Sua largura é equivalente à do barramento de dados ou à sua metade. Os processadores atuais usam barramento de endereços de 32 bits, o que equivale à tecnologia de 32 bits para dados, ou à metade da tecnologia de 64 bits. Existem ainda processadores que possuem tecnologia de 64 bits tanto para dados quanto para endereços.