Jacquard / Babbage Impressora Perf. cartões ALU Memória Programa Cartões de operação Cartões variáveis Programa
Jacquard / Babbage Programa e dados armazenados separadamente; Programa - seqüência de cartões perfurados; Cartões especificam as variáveis envolvidas na operação.
Estrutura do ENIAC Card reader Printer and card punch Multiplier Divider And Square rooler Function Tables A1 A2 A30 Master programmer unit Program Lines Accumulators
O Modelo de Barramento do Sistema O Modelo de von Neumann Unidade de memória Aritmética e lógica de controle de saída de entrada O Modelo de Barramento do Sistema Barramento de Dados CPU (ALU, Registradores e Controle) Memória Entrada e Saída (E/S) Barramentos do Sistema Barramento de Endereços Barramento de Controle
Estrutura do Computador
Arquitetura de um computador de primeira geração Unidades de memória secundária Console (tty) Leitora de cartões Impressora e perfuradora de cartões Unidade Aritmética e Lógica Unidade de Controle Memória principal Equipamentos de entrada e saída Unidade Central de processamento
Memória principal Arquitetura de um computador de primeira geração Unidades de memória secundária Unidade Central de processamento Memória principal Unidade Aritmética e Lógica Console (tty) Unidade de Controle Leitora de cartões Impressora e perfuradora de cartões Equipamentos de entrada e saída
Estrutura de uma CPU simples Circuitos de Aritmética e lógica AC Memória principal M R D E PC RI Unidade de controle C0 C1 AC = 0 C10 C9 C8 C11 C7 C6 C5 C0(ADD) C1(AND) C2(COMP) C3(READ) C4(WRITE)
Sinais de controle da CPU simples Sinal de controle Operação controlada C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 AC AC + RDM AC AC ^ RDM AC ~AC (complemento) RDM M[REM] (READ M) M[REM] RDM (WRITE M) RDM AC AC RDM REM RDM(ADR) PC RDM (ADR) PC PC + 1 REM PC RI RDM (OP) RIGHT-SHIFT AC
Estrutura de uma CPU extendida V AC = 0 AC < 0 C26 C28 Flags C27 COUNT = (n-2) C0 C1 Circuitos de aritmética e lógica COUNT C22 C25 C2 C23 MQ(n-1) C14 C12 C21 C20 C17 C13 AC MQ Memória principal M C3 C16 C4 C15 C5 C6 C19 C18 R D M C11 C7 C8 RI R E M PC C9 C24 C10 AC=0 Unidade de controle microprogramada C0 AC<0 C1 MQ(n-1) . COUNT = (n-2) V C28
Sinais de controle da CPU estendida Sinal de controle Operação controlada AC AC + RDM AC AC ^ RDM AC AC RDM M[REM] (READ M) M[REM] RDM (WRITE M) RDM AC AC RDM REM RDM (ADR) PC RDM (ADR) PC PC + 1 REM PC RI RDM (OP) RIGHT-SHIFT AC LEFT-SHIFT AC RIGTH-SHIFT (AC, MQ) LEFT-SHIFT (AC, MQ) AC 0 AC(0) AC(0) v V MQ RDM RDM MQ MQ(n-1) 1 MQ(n-1) 0 COUNT COUNT + 1 AC AC – RDM PC RI COUNT 0 V 0 V 1 FLAGS 0 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 C27 C28
Máquina de John von Neumann Programa e dados são armazenados juntos na memória principal; O programa é executado seqüencialmente; A memória é endereçável.
Instruções e dados armazenados na memória indistintamente. Uma palavra escolhida aleatoriamente na memória não pode ser identificada como uma instrução ou um palavra de dado. O significado de uma palavra é determinado pela maneira como o processador vai interpreta-la.
Modelo de von Neumann Acumulador - registrador que armazena o primeiro operando da instrução; Instruções especificam apenas o segundo operando. O resultado é armazenado no acumulador.
Memória RDM - registrador de dados da memória REM - registrador de endereços da memória barramento de endereços R Memória E M R D M Decodificador Barramento de dados
Acesso a memória O Registrador de Endereços da Memória (REM) armazena o endereço da palavra de memória durante um acesso (leitura ou escrita); O Registrador de Dados da Memória (RDM) armazena o conteúdo da palavra de memória lida em uma operação de leitura ou que será escrita na memória; O endereço é decodificado para localizar a palavra a ser acessada.
Palavra de memória O tamanho do RDM determinará a quantidade de bits que poderá ser transferida em um único acesso a memória - o tamanho da palavra de memória; O tamanho do REM determinará o tamanho do espaço de endereçamento da memória, ou seja, a quantidade de palavras que poderão ser endereçadas; O RDM determinará a largura do barramento de dados; O REM determinará a largura do barramento de endereços.
Modelo de von Neumann Quantidade de acesso a memória é muito grande: necessita acessar a memória para buscar a instrução e operandos e armazenar resultados. Tempo de acesso à memória é muito grande decodificação do endereço e transferência do dado.
Utilização de registradores de uso geral: reduz a quantidade de acessos à memória principal; armazenar dados - resultados de operações, endereços e operandos de instrução que estão sendo utilizados várias vezes (resolver uma expressão; variável de controle de uma estrutura “for”); acesso mais rápido ao dado - os registradores estão contidos dentro da UCP;
Unidade de Controle Responsável por gerar os sinais de controle necessários para a busca e execução das instruções, além de coordenar outras unidades como memória e dispositivos de entrada e saída de dados.
Unidade de Controle Síncrona ou Assíncrona Assíncrona: as operações são executadas independentemente. Ao término de uma, começa a próxima. Síncrona: existe um circuito oscilador responsável por gerar uma referência de tempo para realização das operações - CLOCK.
Organização da Unidade de Controle Por circuito (ou lógica fixa); Microprogramada Por circuito: existem circuitos específicos para execução das operações. Microprogramada: para cada instrução existe um microprograma.
Exercícios Quais os princípios da máquina de von Neumann ? Compare a máquina de von Neumann com as máquinas anteriores ? Quais os componentes da Unidade Central de Processamento (UCP) ? Quais as funções da unidade de controle ? As máquinas que possuem clock são ditas:.... Qual a função do clock ? O que é um registrador ? De que são construídos registradores ? Qual a função dos registradores na UCP ? Quais as funções dos registradores RI e CI ? Quais as funções dos registradores RDM e REM ?
Linguagem de Máquina Conjunto de código binários que a unidade de controle é capaz de decodificar e executar; É formada pela conjunto de instruções da máquina; É específica de cada máquina (ou família de máquinas).
Linguagem de Montagem (Assembly) Associa símbolos aos códigos binários; Cada símbolo representa uma instrução (ou pseudo-instrução); Símbolo representa a operação associada: ADD - adição; SUB - subtração ... São mnemônicos; É específica da máquina.
Montador (Assembler) Responsável por gerar um programa em linguagem de máquina a partir de um programa escrito em linguagem de montagem; Símbolos instruções de máquina ADD M 00110000001100
Linguagens de alto-nível PASCAL, C, FORTRAN, Algol, Visual AGE, Small Talk, Java, Modula, ADA ... Possuem construções mais complexas - while, for, repeat ... Programas independentes da máquina; Possuem uma estrutura bem definida.
Compilador Traduzir um programa escrito em uma linguagem de alto nível na linguagem da máquina alvo (linguagem de máquina); Verificar se os comandos estão corretamente construídos; se pertencem a estrutura da linguagem; gerar instruções de máquina; Um comando em uma linguagem de A-N pode gerar várias instruções de máquina - for i := 1 to 200 do
Interpretador Interpreta (analisa) os comandos de um programa (um de cada vez) e executa as operações especificadas; BASIC
Formato das Instruções Máquinas com registradores de uso geral, os operandos e resultados das instruções podem residir em registradores; A instrução especifica o(s) registrador(es) que contém os operandos; Instruções mais curtas; Menos acessos a memória.
Formato das instruções (cont.) Máquinas de um endereço: a instrução especifica apenas o segundo operando; Máquinas de dois endereços: a instrução especifica os dois operandos e o resultado é armazenado no lugar do primeiro operando; Máquinas de três endereços: a instrução especifica os operandos e o resultado da operação.
Modos de endereçamento Facilitar a atividade de programação; Reduzir a quantidade bits (tamanho) da instrução.
Modos de endereçamento (cont.) Modo implícito: a instrução especifica o operando; Modo de endereçamento imediato: o operando está contido na própria instrução; Modo de endereçamento direto: o campo de endereço da instrução especifica o endereço do operando na memória; Modo de endereçamento indireto: o campo de endereço da instrução especifica a palavra de memória que contém o endereço do operando na memória;
Modos de endereçamento (cont.) Modo relativo: o campo de endereço da instrução especifica o endereço do operando na memória em relação ao CI; Modo registrador base (ou base+deslocamento): o campo de endereço contém o endereço do operando em relação a um endereço base; Modo indexado: existe um registrador que é utilizado como índice para cálculo do endereço efetivo (físico).