Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Organização e Arquitectura do Computador Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Arquitectura de Computadores, Alberto José Proença, UM, 2000 Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 1
O estudo da organização e arquitectura dum computador começa por uma reflexão sobre o que é um computador; No contexto desta disciplina, e sob a perspectiva da engenharia, iremos considerar um computador como um sistema (máquina) que tem como finalidade processar informação. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 2
Os símbolos do alfabeto Os seres humanos usam as letras do alfabeto, os algarismos e outros símbolos (sinais de pontuação, operadores aritméticos,...); Os computadores usam 2 níveis de sinal eléctrico, o que corresponde a um alfabeto com apenas 2 símbolos, também designados por dígitos binários, ou, binary digit, bit. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 3
As "palavras" com informação, no computador, são usadas essencialmente para: Representar as palavras e o "alfabeto" das linguagens naturais; Representar de modo compacto os comandos para o computador funcionar - as instruções; Representar de modo eficiente as variáveis numéricas, nomeadamente os inteiros e reais; Codificar outras formas de representação audiovisual de informação. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 4
Funcionamento Básico de um Computador Execução de sequência de comandos: por razões de eficiência deverão estar já armazenados na memória rápida do computador, no formato codificado associado ao processador que o vai executar e usando o "alfabeto" do computador: a linguagem máquina. Execução da linguagem máquina: Ir buscar uma instrução à memória e actualizar o apontador para a próxima instrução; Descodificar a informação nela contida; Executar a operação especificada. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 5
Níveis de Abstracção Na utilização de um computador é possível identificar vários níveis de abstracção, sendo os mais relevantes, no ãmbito desta disciplina: Nível da linguagem máquina (em binário): instruções e variáveis totalmente codificadas em binário, sendo a codificação das instruções sempre associada a um dado processador; a sua utilização é pouco adequada para seres humanos; Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 6
Níveis de Abstracção Nível da linguagem assembly: equivalente ao nível anterior, mas em vez da notação puramente binária, a linguagem usa mnemónicas para especificar as operações pretendidas, bem como os valores ou localizações dos operandos; embora este nível seja melhor manuseado por seres humanos, ele ainda é inteiramente dependente do conjunto de instruções dum dado processador, isto é, não é portátil entre processadores de famílias diferentes, e as estruturas que manipula, quer de controlo, quer de dados, são de muito baixo nível; Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 7
Níveis de Abstracção Linguagens de Alto Nível (HLL: High Level Languages, como o Java, C, Pascal, FORTRAN,...): linguagens mais poderosas e mais próximas dos seres humanos, que permitem a construção de programas para execução eficiente em qualquer processador. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 8
Níveis de Abstracção Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 9
Tradutores ou Conversores de Nível Dado que o processador apenas "entende" os comandos em linguagem máquina, é necessário converter os programas escritos em linguagens dos níveis de abstracção superiores para níveis mais baixos, até eventualmente se chegar à linguagem máquina. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 10
Tradutores ou Conversores de Nível Assembler : programa que traduz os textos escritos em assembly language para linguagem máquina, onde cada comando compreendido pelo processador se encontra codificado em binário de acordo com um formato definido pelo fabricante do processador; Compilador: programa que traduz os programas escritos em HLL para um nível de abstracção inferior; a maioria dos compiladores existentes incluem já os dois passos da tradução para linguagem máquina, isto é, traduzem de HLL directamente para linguagem máquina binária, sem Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 11 necessitarem de um assembler.
Tradutores ou Conversores de Nível Interpretador: as instruções de HLL são analisadas uma a uma, e o interpretador para cada instrução em HLL, gera o código correspondente em linguagem máquina e executa de imediato esse código, sem o guardar. Não há propriamente uma tradução de um programa noutro, mas sim a análise dum programa seguida de geração e execução do código máquina associado. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 12
Interpretador: O código fonte é traduzido e executado instrução a instrução, de modo interactivo; O interpretador traduz cada instrução para uma representação interna e interpreta-a simulando o funcionamento do processador; O interpretador aceita para além das instruções da linguagem, comandos para controlar o seu funcionamento. Vantagens O ciclo escrita, execução, modificação é mais rápido; Desvantagens A execução é mais lenta. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 13
Estrutura do Computador Os principais blocos funcionais que se podem encontrar num computador podem ser agrupados em apenas 3: Entidade que processa a informação; Entidade que armazena a informação que está a ser processada; Unidades que estabelecem a ligação deste par de entidades (processador-memória) com o exterior. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 14
Estrutura do Computador Processador(es), incluindo uma ou mais Unidades Centrais de Processamento CPU (já referida anteriormente), e eventualmente processadores auxiliares ou coprocessadores para execução de funções matemáticas, gráficas, de comunicações,... Memória principal, onde é armazenada toda a informação que o CPU vai necessitar de manusear; encontra-se organizada em células que podem ser directa e individualmente endereçadas pelo CPU (ou por outro componente que também possa aceder directamente à memória); Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 15
Estrutura do Computador Cada célula tem normalmente 8 bits de dimensão (todos os processadores disponíveis comercialmente lidam com esta dimensão de célula); a dimensão máxima de memória física que um computador pode ter está normalmente associada à largura n do barramento de endereços (2^n); Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 16
Estrutura do Computador Dispositivos de Entrada/Saída (I/O) e controladores: dispositivos de interface com o ser humano: monitor, teclado, rato, impressora, colunas de som,... dispositivos de armazenamento (memória secundária): disco, banda magnética, CD-ROM,... dispositivos de interface p/ comunicação com outros equipamentos: interfaces video, placas de rede local, modems, interface RDIS,... dispositivos internos auxiliares: controlador de interrupções, um controlador de acessos directos à memória (DMA),... Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 17
Memórias e Armazenamento RAM (memória de acesso aleatório) Armazena dados em binário e programas temporariamente durante o processamento. Os dados são os números e as outras informações, e os programas são listas de instruções. Os dados podem ser escritos na RAM e lidos a partir dela em qualquer momento. A RAM é volátil, significando que a informação é perdida se a alimentação for desligada ou faltar energia. Portanto, qualquer dado ou programa que necessita ser gravado, deve ser movido para uma memória não-volátil (tal como um CD ou disco rígido) Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 18
A memória cache é uma pequena RAM que é usada para armazenar uma quantidade limitada de dados usados frequentemente os quais podem ser acedidos de forma muito mais rápida em comparação com a RAM principal. A maioria dos processadores tem uma cache interna denominada de nível 1, ou simplesmente L1. Uma memória cache externa é um chip de memória à parte denominada de nível 2, ou L2. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 19
A ROM (memória apenas de leitura) Armazena um programa do sistema, que é permanente, denominado BIOS (Basic Input/Output System sistema de entrada/saída básico) e certas localizações dos programas de sistema na memória. É não-volátil, o que significa que ela retém o que é armazenado, mesmo quando a tensão de alimentação é desligada. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 20
BIOS é o menor nível do sistema operacional de um computador; As primeiras instruções a serem executadas estão na BIOS: instruções que dizem à CPU o que fazer quando o sistema é iniciado (ex: funções de inicialização básicas que incluem um autoteste, carregamento de sistema operativo, ) Armazenamento de endereços de programas do sistema que tratam determinadas chamadas a periféricos denominadas interrupções, que provocam paragens temporárias no atual processamento. O disco rígido é o principal meio de armazenamento em um computador porque ele pode armazenar grandes quantidades de dados não-voláteis. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 21
PROM (Programable ROM) devido ao seu modo de fabrico só pode ser programa uma única vez; EPROM (Erasable and Programable ROM) podem ser apagadas e reprogramadas diversas vezes; EEPROM (Electronic EPROM) memórias que podem ser reprogramadas electronicamente as vezes que forem necessárias. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 22
Barramento (bus) Sistema de interligação dos diversos componentes este barramento é constituído por um elevado número de ligações físicas, podendo estar agrupados de forma hierárquica. Um barramento pode ser visto como uma estrada para o tráfego dos sinais digitais a qual consiste de um conjunto de conexões físicas, bem como especificações elétricas para os sinais (ex: FireWire e USB - barramento serial universal). Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 23
As principais categorias de barramentos são normalmente designadas por: Barramentos de dados, que têm por função transportar a informação (códigos dos programas e dados) entre os blocos funcionais dum computador; quanto maior a sua "largura", maior o número de bits que é possível transportar em simultâneo; Barramento de endereços, que têm por função transportar a identificação/localização ("endereço") dos sítios onde se pretende ler ou escrever dados (por ex., o endereço de uma célula de memória ou de um registo de estado de um controlador); Barramento de controlo, que agrupa todo o conjunto de sinais elétricos de controlo do sistema, necessários ao bom funcionamento do computador como um todo (por ex., sinais para indicar que a informação que circula no barramento de dados é para ser escrita e não lida da célula de memória cuja localização segue no barramento de endereços). Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 24
Um barramento é multiplexado de forma que qualquer dos dispositivos conectados a ele possa enviar ou receber dados de outros dispositivos; Um dispositivo que transmite é frequentemente denominado de fonte, e um dispositivo que recebe é frequentemente denominado de aceitador; A cada momento apenas existe uma fonte ativa. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 25
Tipos de Controlo de Barramento Controlo síncrono: o processador geralmente gera todos os sinais de controlo e temporização. Os outros dispositivos sincronizam então suas operações através dos sinais de controle e temporização. Controlo assíncrono: os sinais de controlo e temporização são gerados em conjunto pela fonte e pelo aceitador. O processo do estabelecimento conjunto de comunicação é denominado handshaking. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 26
Exemplo de uma seqüência de handshaking. Buffers tristate são normalmente usados nas saídas de um dispositivo fonte com um barramento; Geralmente mais de uma fonte é conectada em um barramento, porém apenas uma pode ter acesso de cada vez; Todas as outras fontes têm que que estar desconectadas do barramento para evitar colisões de dados. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 27
Barramento Interno Barramento Local: Conecta diretamente o processador à memória cache, memória principal, co-processador e controlador de barramento PCI; É o único barramento interno que conecta diretamente ao processador; Incluí barramento de dados, barramento de endereço e o barramento de controle que permitem o processador comunicar com outros dispositivos; Considerado como um barramento primário em um sistema de computador. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 28
Barramento PCI: Faz a interface do processador com dispositivos externos via slots de expansão (conectores). O barramento PCI (Peripheral Control Interconnect) foi desenvolvido pela Intel; e como foi introduzido em 1993, se tornou o padrão de barramento de interface de computadores pessoais, substituindo diversos padrões de barramentos anteriores; O barramento PCI é de 64 bits, embora seja frequentemente implementado como um barramento de 32 bits no qual os barramentos de endereço e dados são multiplexados. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 29
Barramento PCI: O barramento PCI está isolado do barramento local por uma unidade controladora de barramento que funciona como uma ponte entre os dois barramentos; O barramento PCI é considerado secundário e opera com clock independente do processador. O PCI pode conectar o processador a dispositivos periféricos como o drive de disco rígido, via slots de expansão com cartões adaptadores; Suporta plug-and-play. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 30
Barramento ISA: Esse barramento de expansão foi desenvolvido pela IBM; Descontinuado devido à sua baixa velocidade e substituído pelo barramento PCI. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 31
Barramento Externo Dispositivos externos são conectados a um computador via interface de entrada/saída (I/O) denominadas de portas de I/O. Existem dois tipos básicos de portas de I/O em computadores, a porta serial e a porta paralela. RS-232C: é um dos padrões mais antigos e comuns para interface serial aprovado pela Electronic Industries Association (EIA). A maioria dos computadores pessoais têm uma porta RS- 232C. Conector com 25 pinos. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 32
IEEE 1394: barramento serial externo padrão suporta taxas de transferências de dados de até 400 Mb/s e é usado tipicamente para fazer a interface, embora sem limitação, com periféricos de vídeo e gráfico, tais como câmeras digitais; O padrão IEEE 1394 é também denominado de FireWire, uma marca registrada pela Apple Computer, que foi a primeira empresa a desenvolvê-lo; O cabo FireWire consiste de seis fios, dois pares torcidos para dados e dois para alimentação; Além disso, esse padrão permite conexões on fire, que é a capacidade de inserir ou remover dispositivos conectados ao computador enquanto ele estiver executando um programa. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 33
USB (Universal Serial Bus): suporta duas taxas de transferências de dados, sendo uma taxa de alta velocidade e uma taxa de velocidade baixa; Permite conexão on fire ; Suporta plug-and-play; O cabo USB tem quatro fios, dois para dados e dois para alimentação, e conecta o computador a um dispositivo periférico USB, sendo que qualquer um pode funcionar como hub para a conexão de outros dispositivos periféricos USB. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 34
IEEE 488 (General-Purpose Interface Bus): Amplamente usada em aplicações de testes e medições, tendo sido desenvolvida pela Hewlett-Packard (HP) nos anos de 1960. Especifica 24 linhas que são usadas para transferir oito bits de dado em paralelo de cada vez e provê oito sinais de controle que incluem três linhas de handshake; A transferência máxima para o padrão IEEE 488 é 1 MB/s. Um padrão superior a esse, denominado de HS488, tem uma taxa de dados máxima de 8 MB/s. Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 35
SCSI: é um padrão amplamente usado na interface de computadores pessoais e periféricos. Embora o SCSI (Small Computer System Interface) seja um padrão ANSI, existem diversas variações e tipos de conectores produzidos por uma variedade de fabricantes. Um tipo de SCSI pode não ser compatível com outro. SCSI-1 é uma versão com conector de 25 pinos que provê um barramento de dados de 8 bits e suporta taxas de transferência de dados de 4 MB/s; Existem diversas versões do padrão de barramento tai como: SCSI-1, SCSI-2, Wide SCSI, Fast SCSI, Ultra SCSI, Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 36
Nuno Pombo / Paulo Fazendeiro Arquitectura Computadores II 2014/2015 37