ASC1 - 2006/2007 77 computador
processador, memória, periféricos,etc
Execução de um programa
●
O computador executa um programa…
■Quais os seus componentes? Como estes se organizam e interactuam?
programa
saída de dados output entrada de dados
input bits bits
ASC1 - 2006/2007 78
Primeiros "computadores" digitais
Yes Partially, by rewiring Yes No Yes 1946 USA ENIAC Yes By paper tape No No Yes 1944 USA Harvard Mark I/IBM
ASCC No Partially, by rewiring Yes Yes Yes 1944 UK Colossus computer Yes Fully, by paper tape No Yes Yes 1941 Germ Zuse Z3 No No Yes Yes Yes 1937−42 USA Atanasoff-Berry Computer T u ri n g C o m p le te Programmable E le c tr o n ic B in a ry D ig it a l Year Nat. Computer ASC1 - 2006/2007 79
Primórdios dos computadores
●O computador é programado por "reconfiguração" da máquina
■ligando interruptores e fios que ligam os componentes para efectuar as operações pretendidas
●Ou lido do “exterior” circ. aritm. e lógicos saída entrada acumulador circ. controlo Unidade central programa outros regs. Consola e/ou Periféricos ASC1 - 2006/2007 80
Consolas
Consola e periféricos do IBM-1460 (1963)1460 (1963)
Consola do ENIAC(1946)(1946)
Computadores com memória interna
●
Von Neumann (e outros) propõe que o
programa seja codificado numa memória
interna tal como os dados
■Tecnologia diferente da usada na unidade central tornam possível dispor de “muitos registos” (a memória)
■A unidade central necessita de um novo
componente responsável por aceder e interpretar
esses programas descodif.circ.
e controlo
Memória interna
●Cada célula de memória é numerada: endereço ●É necessário ir buscar cada instrução à memória
para a executar
■Prog. Counter indica o endereço da próxima instrução
●A memória pode conter também os dados
circ. aritm. e lógicos saída entrada prog. counter Unidade central outros regs. Consola e/ou Periféricos acumulador instrução programa Memória
ASC1 - 2006/2007 83
Unidade Processadora Central (CPU)
Arquitectura de Von Neumann
(década 1940)periférico de saída periférico de entrada Memória acumulador unidade aritm. lógica versão original unidade de controlo ciclo de funcionamento: fetch (obter instrução da memória) decode (descodifica) execute (executa) instruction register ASC1 - 2006/2007 84
Exemplos de operações
ADD NOT AND carry ASC1 - 2006/2007 85Exemplos de instruções
NOT AND carry registo acumulador 00 noop 01 AND 10 ADD 11 NOT ADD controlo descodificador código máquina (em binário) mnemónicas assembly ASC1 - 2006/2007 86Ligações entre componentes
●
Como os componentes comunicam?
■componentes internos do CPU; componentes externos e CPU
●
Tantas ligações quantos os bits a transportar
de cada vez
●
Cada componente ligado a todos os outros?
●Complexo e dispendioso
●
Os componentes partilham um meio único: o
BUS
●Seguem um protocolo para partilhar o BUS
Arquitectura de Von Neumann (2)
unidade aritmética e lógica (ALU) periférico de entrada/saída periférico de entrada/saída Memória unidade de controlo (CU)
Actual (com BUS de sistema)
registos Bus Interface CPU Bus interno Bus de sistema Bus Interface
Bus Interface Bus Interface
Bus de sistema
●Conjunto de linhas paralelas, cada uma codificando um bit
●Bus de endereços:
■conjunto de linhas que codificam o interlocutor
■para identificar a célula de memória ou a unidade periférica
●Bus de dados:
■codificam os dados a transferir
●Bus de controlo:
■para coordenar as transferências e as interacções entre unidades, sinais de controlo ou enviando comandos (por exemplo: ler/escrever)
ASC1 - 2006/2007 89
Micro-acções
●O CPU tem mais do que é visível ao nível do código da máquina (Instruction Set Architecture -ISA) ●Mais registos e Micro
Acções internas ■exemplo: unidade aritmética e lógica (ALU) B A C registos gerais Bus interno Bus de sistema MAR MDR dados endereço controlo IP IR fetch: IR = mem[IP] MAR ←IP controlo ←lêr memória IR ←MDR ASC1 - 2006/2007 90
BUS de sistema
periférico de entrada/saída Memória CPU Bus Interface B u s d e s is te m a Bus Interface Bus Interface Data BUS Adress BUS Control BUS ASC1 - 2006/2007 91Arquitectura do computador
●Nível da “macro-arquitectura”: (ISA – Instruction Set Architecture)
■Componentes: Processador, Memória, Unidades de Entrada/Saída, Interligações (Bus)
■Linguagem máquina: representação binária de instruções e de dados (especificada sob a forma de mnemónicas, por conveniência: “assembly”)
●Nível da “micro-arquitectura”:
■Componentes: portas lógicas, flip-flops, registadores, buses, multiplexers, demultiplexers, codificadores, descodificadores, contadores, unidades aritméticas e lógicas, memória
■Realiza os componentes e as instruções da “macro-arquitectura”
ASC1 - 2006/2007 92
Memória central
●Guarda instruções e dados, sob a mesma representação simbólica, em células que contêm agrupamentos de bits:
■1 bit, byte (8 bits), word, ou outra dimensão … ●É acedida como um vector:
■Mem[0]…Mem[n-1] (capacidade = n bytes)
■O endereço da célula corresponde ao índice i em Mem[i] ■O endereço é representado em binário, como um número inteiro
sem sinal
■O valor de Mem[i] é o do conteúdo da célula ■O acesso é directo: dá-se i para aceder a Mem[i]
(RAM: Random Access Memory)
Processador - CPU
●Controlo global das operações do computador e responsável pela interpretação das instruções ●Contém:
■Unidade de controlo: obtém, descodifica e interpreta as instruções (uma de cada vez)
■Unidade aritmética e lógica: ALU – Arithmetic and Logic Unit
■Conjunto de registadores (ou registos): células de memória locais ao CPU, para dados a usar pelas instruções e para valores intermédios
Execução
●A Unidade de controlo do CPU:
■Obtém a próxima instrução de memória (usa um índice para o programa – PC ou IP) fetch
■Incrementa PC
■Descodifica a instrução decode
■Emite os sinais de controlo, na micro-arquitectura, correspondentes ao encadeamento de acções necessárias para executar a instrução corrente e as transferências de informação necessárias execute
●A execução de uma instrução pode envolver: ■Operações aritméticas e lógicas (pela ALU)
●A ALU opera sobre números binários. ■Transferências CPU ↔ Memória ■Transferências CPU ↔ Periféricos
■Controlo da sequência de execução de instruções (alterar o endereço em IP)
ASC1 - 2006/2007 95
Unidades periféricas
●
Comunicação com o exterior:
■Portas de comunicação série e paralela ●para teclado, écran, rato
●para ligação a rede de computadores ●etc…
■Armazenamento de informação: ●discos (Suporte de Memória Secundária) ●outros dispositivos externos de armazenamento
ASC1 - 2006/2007 96
Arquitectura de Von Neumann
●3 tipos de componentes (interligados através de buses): ■Processador central (CPU - Central Processing Unit) ■Memória central
■Unidades de Entrada/Saída (para periféricos de armazenamento e comunicação)
●O CPU suporta vários tipos de instruções: ■Aritméticas e lógicas
■Transferências entre componentes
■Controlo da sequência de execução das instruções (“saltos”) ●Um modelo de execução muito simples:
■A Memória armazena as instruções e os dados ■Um acesso a Memória de cada vez
■Interpreta uma instrução de cada vez (o Programa é uma sequência de instruções) ASC1 - 2006/2007 97
Arquitecturas de computadores
controlador de entrada/saída controlador de entrada/saída Memória CPU Bus de sistema ou FSB Bus bridge Bus de memória Bus de I/O variantes ASC1 - 2006/2007 98Arquitecturas de computadores (2)
controlador de entrada/saída controlador de entrada/saída Memória variantes CPU CPUArquitecturas de computadores (3)
variantes perif. I/O Memória CPU perif. I/O Memória CPU perif. I/O Memória CPU computador computador computador interligação (rede)Circuitos Síncronos
●Os circuitos funcionam ao ritmo de um relógio:
■marca com impulsos eléctricos o ritmo de funcionamento de todos os componentes (transições de estado)
●Marca quando os componentes podem interactuar
■Garante que os vários sinais (bits) são enviados e recebidos no instante devido
●Ex: um componente não lê o que está no BUS antes que algo válido lá tenha sido colocado
●O relógio gera um determinado número de impulsos por segundo: ciclos/segundo ou frequência (Hz)
ASC1 - 2006/2007 101
Relógio vs velocidade do computador
●
A frequência do relógio não é o único factor
na velocidade de funcionamento de um
computador!
●
O tempo de execução de determinado
programa depende de:
■Número de instruções (tamanho do programa) ■Tempo de execução de cada instrução (núm.
ciclos de relógio)
■Tempos de espera pela memória ■Tempos de espera pelas Entradas/Saídas
ASC1 - 2006/2007 102
Tempos típicos
●
CPU: cada instrução 1, 2, … ciclos de
relógio
●
Memória: cada acesso dezenas de ciclos
●
Periféricos: cada E/S muitas dezenas ou
centenas (ou mais…) de ciclos
ASC1 - 2006/2007 103
Capacidades da arquitectura
●O número de bits do endereço determina a capacidade máxima de memória endereçável ●O número de linhas no bus de endereços determina
a capacidade máxima de memória realmente acessível
●O número de bits dos registos gerais determina o tamanho máximo dos dados operados pelas instruções
●O número de linhas no bus de dados determina a capacidade máxima de transferência dos dados em cada acesso à memória
ASC1 - 2006/2007 104
Exemplo do PC c/ Intel 8086
●
CPU com 16 bits de dados e de endereços,
com bus de 20 bits end. e 16 para dados:
■dimensão dos registos de endereços, registos de dados e número de linhas no BUS de dados: 16 ■dimensão do MAR, bus de endereços: 20 ■endereça até 1M (220) de células de memória ■transfere e opera até 2bytes de cada vez
Exemplo do PC c/ Intel 8088
●CPU com 16 bits de dados e de endereços, com bus de 20 bits end. e 8 para dados:
■dimensão dos IP, registos de dados: 16 ■bus de dados: 8
■dimensão do MAR, bus de endereços: 20 ■endereça até 1M (220) de células de memória
■opera até 2 bytes de cada vez
■transfere 1byte de cada vez (uma instrução que aceda a 2bytes de memória tem de esperar por duas transferências de/para memória)
Exemplo Intel ia-32 (386) no PC
●
CPU com 32 bits de dados e de endereços,
com BUS de 32 bits:
■dimensão dos IP, MAR, registos de dados, número de linhas no BUS de dados e no de endereços: 32 ■endereça até 4G de células de memória ■transfere e opera até 4bytes de cada vez