Jacquard / Babbage ALU Memória Cartões de operação Cartões variáveis Programa Impressora Perf. cartões 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 Multiplier Divider And Square rooler Function Tables A1 A2 Printer and card punch A30 Accumulators Program Lines Master programmer unit O Modelo de von Neumann Unidade de memória Unidade de entrada Unidade Aritmética e lógica Unidade de saída Unidade de controle O Modelo de Barramento do Sistema CPU (ALU, Registradores e Controle) Memória Entrada e Saída (E/S) Barramento de Dados Barramento de Endereços Barramento de Controle 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 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 AC = 0 C0(ADD) C1(AND) C2(COMP) Circuitos de Aritmética e lógica C3(READ) AC C4(WRITE) Memória principal M C12 C5 C6 R D M C7 R E M C8 PC C11 C9 RI C10 AC = 0 Unidade de controle C0 C1 C12 Sinais de controle da CPU simples Sinal de controle Operação controlada C0 AC AC + RDM C1 AC AC ^ RDM C2 AC ~AC (complemento) C3 RDM M[REM] (READ M) C4 M[REM] RDM (WRITE M) C5 RDM AC C6 AC RDM C7 REM RDM(ADR) C8 PC RDM (ADR) C9 PC PC + 1 C10 REM PC C11 RI RDM (OP) C12 RIGHT-SHIFT AC Estrutura de uma CPU extendida V AC = 0 AC < 0 C28 Circuitos de aritmética e lógica C0 C1 C2 C23 COUNT = (n-2) C22 C25 COUNT MQ(n-1) C14 C12 C13 C3 C16 C4 Memória principal M C26 C27 Flags AC C17 C20 C21 MQ C15 C6 C19 C5 C18 R D M C11 C7 C8 R E M PC RI C9 C24 C10 AC=0 AC<0 MQ(n-1) COUNT = (n-2) V Unidade de controle microprogramada . . . C0 C1 C28 Sinais de controle da CPU estendida Sinal de controle 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 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 V0 V1 FLAGS 0 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 Decodificador R E M Memória R D M 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).