II - INTRODUÇÃO • • • • Introdução Histórico e Evolução Princípios Básicos Arquitetura de Von Neuman e Componentes • Arquitetura de 4,3,2,1 e 0 endereços • Tabela Ascii II - INTRODUÇÃO • Introdução II - INTRODUÇÃO Computador Máquina destinada a realizar cálculos complexos. Série de atividades ordenadas. Objetivo: obter informações a partir de outras informações Matéria Prima Dados Processamento Varia tecnologicamente (evolui) Velocidade Telecomunicação II - INTRODUÇÃO Resultado: informações • Introdução Estrutura do sistema Hardware II - INTRODUÇÃO II - INTRODUÇÃO • Introdução Organização de computadores: Parte do estudo da Ciência da Computação que trata dos aspectos mais conhecidos dos especialistas que o construíram. • Tecnologia de construção da memória • Frequência do relógio • Sinais de controle para inicio • Microoperações nas diversas unidades Arquitetura: Nível do Programador Impacta diretamente na construção de um programa. • Conjunto de instruções de um processador • Tamanho da palavra • Modos de endereçamento das instruções • Tipo e tamanho dos dados manipulados pelo processador II - INTRODUÇÃO II - INTRODUÇÃO • Introdução II - INTRODUÇÃO II - INTRODUÇÃO • Histórico e Evolução II - INTRODUÇÃO Gerações dos computadores 1ª Geração (1940 a 1952) válvula Linguagem de máquina Cartão perfurado Eniac II - INTRODUÇÃO Memória de atraso de mercúrio II - INTRODUÇÃO Histórico e Evolução Gerações dos computadores 2ª Geração (1952 a 1964) •Linguagem assembler, cobol, Algol, Fortran. Memória de núcleo de ferrite Válvula e transistores Tradic - 1955 II - INTRODUÇÃO Unidade de fita magnética II - INTRODUÇÃO Histórico e Evolução Gerações dos computadores 3ª Geração (1964 a 1971) Comparativo: válvula transistores e chips PDP-11 Circuitos integrados VAX II - INTRODUÇÃO II - INTRODUÇÃO Histórico e Evolução Gerações dos computadores 4ª Geração (1971 a 1981) • Diversidade de Linguagens de programação; • Rede de transmissão de dados. Microcomputador APPLE Microcomputador TRS-80 Microcomputador PC 8088 Disco flexível de 5.1/4” II - INTRODUÇÃO Disco flexível de 3.1/2” II - INTRODUÇÃO Histórico e Evolução Gerações dos computadores 5ª Geração (1981........) • Inteligência Artificial; • Linguagem Natural • Altíssima velocidade de processamento. Notebook com a mesma capacidade dos desktop CPU - Circuito integrado da Larga escala Microcomputador integrado com processamento paralelo Comparativo atual II - INTRODUÇÃO Histórico e Evolução II - INTRODUÇÃO Software 1ª Geração Linguagem de máquina 2ª Geração Assembler, linguagem montadora 3ª Geração Linguagem de alto nível orientada para os procedimentos, linguagem simbólica de composição do raciocínio 4ª Geração diversificação das linguagens de programação. Linguagens de altíssimo nível, orientadas para problemas. O software pode ser: •Básico: sistemas operacionais e linguagens de programação. •Aplicativo: processadores de textos, planilhas de cálculo, processadores de imagens, etc. II - INTRODUÇÃO Histórico e Evolução II - INTRODUÇÃO Linguagens de Programação Definição: é um conjunto de termos (vocábulos) e regras (sintaxe) que permitem a formulação de instruções (programas para serem executadas pelo computador) Tipos de linguagens: • Linguagem de Máquina: é única entendida pelo computador, sendo formada por instruções em código binário. II - INTRODUÇÃO Histórico e Evolução II - INTRODUÇÃO Linguagens de Programação • Linguagem de baixo nível: são aquelas cujo os códigos são muito próximos aos usados pela máquina. São utilizadas no desenvolvimento de aplicações que interagem diretamente com o hardware necessitando alta velocidade de execução. A estas linguagens dá-se o nome de Linguagem Montadora (Assembler – Assembly Language). II - INTRODUÇÃO Histórico e Evolução II - INTRODUÇÃO Linguagens de Programação • Linguagem de alto nível: são aquelas cujo os códigos são muito próximos aos utilizados pela linguagem humana. II - INTRODUÇÃO Histórico e Evolução Linguagens de Programação Proximidade entre a linguagem e a máquina. II - INTRODUÇÃO II - INTRODUÇÃO Histórico e Evolução II - INTRODUÇÃO Linguagens de Programação Relação entre o usuário e o computador através da linguagem. II - INTRODUÇÃO • Princípios Básicos II - INTRODUÇÃO Instrução: OPERAÇÃO OPERANDOS Programa: Conjunto de Instruções São armazenados na memória juntamente com os dados correspondentes. Deve ser interpretado para realização do processamento. Memória: Armazena dados e instruções. Organizada matricialmente em endereços. II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Unidade Central de Processamento (UCP ou CPU) ou processador Formado pelas unidades de: • Controle: controla todo o tráfego de informação • Unidade Lógica e Aritmética Operações Lógicas Operações aritméticas • Busca – decodificação – execução de instruções Contador de instruções ou apontador de instruções: elemento que contém a próxima instrução a ser executada. Registrador de instruções: armazena, a partir da memória, a próxima instrução a ser executada II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Registrador de instruções: armazena, a partir da memória, a próxima instrução a ser executada Decodificação: processo de interpretação das instruções a partir de circuitos de decodificação gerando sinais correspondentes à operação a ser realizada Execução de instruções: aplicação da função nos operandos Elementos Funcionais Básicos Blocos Convencionais: Memória CPU Unidades Operacionais Unidades de controle Dispositivos de E/S II - INTRODUÇÃO Registradores Contadores Multiplexadores Seletores Decodificadores Somadores Portas lógicas • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos Registradores: elementos digitais com capacidade de armazenar dados Contadores Multiplexadores Seletores Decodificadores Somadores Portas lógicas Elementos com capacidade de operar sobre dados, alterando-os ou fornecendo um novo dado como resultado da operação que realizam. Sinais de controle: são sinais que habilitam operações nos elementos digitais. Barramento: são caminhos que permitem o transporte de dados entre vários elementos da parte operacional. Memória e sistemas de E/S II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos Memória C P Controle U Unidade Operacional Entrada e Saída Memória Formada por elementos de armazenamento II - INTRODUÇÃO • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos Memória Formada por elementos de armazenamento Palavra: divisão da memória Endereço: Identificação unívoca da palavra: São dados ou instruções Parâmetros que caracterizam a memória: tamanho: palavra em bits (RDM) memória em palavra (REM) velocidade Tecnologia II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos Memória Registrador de Dados da Memória (Write) RDM(in) Registrador de Endereço da Memória READ R E M WRITE RDM(out) Registrador de Dados da Memória (Read) II - INTRODUÇÃO Sinais de Controle • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos Unidade Operacional Bloco Operacional: executa as transformações sobre os dados especificados pelas instruções de um computador. composição: unidade lógica e aritmética, registradores de uso geral e específico, barramento de interligação. porte: número, tamanho, uso dos registadores, quantidade de operações, tipo de operações e unidade lógica e aritmética. II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos Unidade Operacional Unidade Lógica e Aritmética Realiza operações Lógica e Aritmética sobre um ou mais operandos. Ex: Soma, Negação, Deslocamento... Fornece resultados e indicações sobre as operações realizadas. Operandos Controle ULA II - INTRODUÇÃO Resultados •Overflow Código •Sinal de •Carry Condição •Zero • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos Unidade Operacional Unidade Lógica e Aritmética Característica: • Comprimento em bits dos operandos • Número e tipo de operações • Códigos e condições geradas Acumulador: Armazena um operando e/ou resultado fornecido pela ULA. Característica: comprimento em bits II - INTRODUÇÃO • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos Unidade de Controle • Gerenciador do fluxo de dados; • Gera sinais de controle Determinam e garantem o instante preciso Cada sinal comanda: Microprogramação o Carga do registrador o Seleção do modo de entrada de um dado componente o Seleção de uma operação na ULA o Habilitação de um circuito lógico II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle A unidade de controle é uma máquina de estados finitos (FSM) que realizam operações por lógica: • Sequencial: sinais de saída dependem dos sinais de entrada e do estado anterior; • Combinacional: sinais de saída dependem exclusivamente dos sinais de entrada. II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle Implementação da Lógica Sequencial • Organização convencional: unidade de controle composta por: flip-flops, contadores e decodificadores que geram sequencialmente todos os sinais de controle de ativação dos elementos funcionais; II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle • Organização microprogramada: sinais de controle são armazenados em memória especial (memória de controle) Vários sinais são buscados a cada acesso à memória de controle, que estão agrupados em microinstruções. Seu conjunto formam o microprograma II - INTRODUÇÃO Longas palavras • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos .......Unidade de Controle Registrador de instruções: Elemento do bloco de controle RI RST Unidade de Controle Registrador de estado: Elemento da interface II - INTRODUÇÃO Sinais de controle para a unidade operacional • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos Registradores Especiais Dependem da arquitetura organização da máquina: e da Apontador de instruções ou Contador do programa (PC- Program Counter) : mantém atualizado o endereço da próxima instrução a ser executada. característica: comprimento em bits Registrador de instruções: armazena a instrução que está sendo executada. característica: comprimento em bits II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos ...........Registradores Especiais Registrador de estado (RST): armazena códigos de condição gerados pela unidade lógica e aritmética, e, eventualmente por outros elementos, como sinais de interrupção gerados por dispositivos de entrada e saída. característica: comprimento em bits II - INTRODUÇÃO • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos Conjunto de Instruções e Modo de Endereçamento instrução: Conjunto de bits devidamente codificados que indica ao computador que sequência de microoperações ele deve realizar. Classificação: Semelhança de propósito e formato. As mais comuns são: • Transferência de dados • Aritméticas e lógicas • Teste de desvio II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos ......Conjunto de Instruções e Modo de Endereçamento Conjunto de instruções: é o conjunto de todas as instruções que um computador reconhece e pode realizar (equivalente ao conjunto de palavras reservadas e uma linguagem de alto nível). Programa: qualquer sequencia finita de instruções de um determinado conjunto de instruções. Modos de endereçamento: são as diversas forma de endereço de um operando somadas as diversas formas de desvio. II - INTRODUÇÃO • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos Ciclo de busca – decodificação – execução de instruções Busca: Leitura de uma instrução da memória. Envolve: • Copiar o apontador de programa (PC) para o registrador de endereço de memória(REM); • Leitura de uma instrução da memória (RDM); • Copiar o registrador de dados da memória (RDM) para o registrador de instruções (RI); • Atualizar o apontador (PC). II - INTRODUÇÃO • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos ...Ciclo de busca – decodificação – execução de instruções Decodificação: Determinar qual a instrução a ser executada. A decodificação é feita geralmente por lógica combinacional. Execução: Depende de qual instrução a ser executada. • • • • • • II - INTRODUÇÃO Cálculo do endereço de operandos Busca de operandos na memória Seleção de operação da ULA Carga de registradores Escrita de operandos na memória Atualização do PC para desvios • Princípios Básicos II - INTRODUÇÃO Elementos Funcionais Básicos Programação de um processador Linguagem de máquina: É uma imagem numérica (binária) que representa a codificação do conjunto de instruções de um computador. Programa objeto: São representados e armazenados em linguagem de máquina. Devido à dificuldade do trabalho com esta linguagem foram criados: II - INTRODUÇÃO • II - INTRODUÇÃO Princípios Básicos Elementos Funcionais Básicos ....Programação de um processador Devido à dificuldade do trabalho com esta linguagem foram criados: Mneumônicos associados às instruções: Nomes dos operandos Rótulos às posições ocupadas pelo programa Necessita de Tradução Montagem Montador: programa que realiza a montagem (Tradutor); Compilador: gera rotinas em linguagem de máquina para cada instrução. II - INTRODUÇÃO II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes Um Computado de Primeira Geração: O EDVAC (Eletronic Discrete Variable Computer) No ENIAC os programas e armazenados separadamente. dados eram O conceito de programa armazenado é atribuído ao matemático húngaro John von Neumann (1903-1957). Isto caracteriza a possibilidade de mudança das próprias instruções. II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO Arquitetura do EDVAC. • Programa armazenado • Memória: 1024 palavras de 44 bits cada, implementada através de linha de atraso de mercúrio. 20 K palavras de memória secundaria magnética. • Representação interna em binário. • Circuitos aritméticos binários seriais, devido a entrada de dados serial. II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO II - INTRODUÇÃO ...Arquitetura do EDVAC. • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO ...Arquitetura do EDVAC. Antes da execução do programa Colocação de todas as instruções e dados na memória principal. Palavras de 44 bits permitem 4 campos de 10 bits, um campo de 4 bits de código de instrução. Capacidade de 16 instruções sendo 12 implementadas II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO ...Arquitetura do EDVAC. Exemplo de Instrução Aritmética. A1 A2 A3 A4 OP • Executa OP conteúdos em posições cujos endereços são A1, A2 e coloque o resultado em A3. • A4 especifica o endereço da próxima instrução a ser executada. II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO ...Arquitetura do EDVAC. Exemplo de Instrução Condicional A1 A2 A3 A4 C Se o conteúdo de A1 for maior que o conteúdo de A2 então execute a instrução da posição A3 se não, da posição A4. II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO ...Arquitetura do EDVAC. Instrução de transferência de memória principal par secundaria. A1 m,n A3 A4 OP m – modificador de operação n – endereço do condutor Significado: 1. Se m=1 Transfira para o condutor n a sequência de palavras na memória principal nas posições A1, A1+1, A1+2 .......,A3. 2. Se m=2 Transfira do condutor n a sequência de palavras para as posições A1, A1+1, A1+2 .......,A3. na memória principal. A4 endereço da próxima instrução. Este computador ficou operacional em 1951. II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO ...Arquitetura do EDVAC. Principais Inconvenientes Tempo de acesso muito grande comparado ao tempo de processamento da UCP. O que levou a o chamado “gargalo de von Neumann”. •Possíveis soluções Armazenar resultados na posição inicial de um dos operandos. Destinar um endereço de memória para armazenar o resultado de determinada operação. Convencionar previamente o endereço da próxima instrução. II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes II - INTRODUÇÃO Modelo de von Neumann: O computador IAS. 1946 (Princeton Institute for Advanced Studies) Memória principal: Tubo de raios catódicos de acesso randômico. Instrução: OP A Arquitetura de um endereço Blocos básicos • UCP • Unidade de controle de programa • Memória principal de 4096 palavras de 40 bits: grava duas instruções de 20 bits ou dados de 40 bits • Unidade de E/S II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes ....O computador IAS II - INTRODUÇÃO AC–Acumulador na UCP – atua como memória rápida guardando os resultados da ULA MQ–Registrador Multiplicador quociente DR-Registrador de dados de 40 bits AR–Registrador de endereço de 12 bits IBR–Registra a instrução não executada imediatamente PC – Registrador de endereço IR–registra a instrução executada imediatamente. Estrutura do IAS II - INTRODUÇÃO • Arquitetura de Von Neumann e Componentes ....O computador IAS II - INTRODUÇÃO Formato dos Dados Binário, ponto fixo e complemento 2 01 39 primeiro bit é o de sinal o ponto está implícito entre 0 e 1 Formato das instruções 0 78 operação 19 20 endereço 39 27 28 operação endereço há alterações em relação ao EDVAC •Registradores pré-definidos na UCP •Armazenamento sequencial do programa. II - INTRODUÇÃO II - INTRODUÇÃO •Arquiteturas 4, 3, 2, 1 e 0 A=((B+C)*D+E-F)/(G*H) 4 endereços OP E1 E2 E3 E4 E1 – fonte e1 ADD B C A e2 E2 – fonte e2 MUL A D A e3 E3 – destino e3 ADD A E A e4 E4 – próxima inst. e4 SUB A F A e5 e5 DIV A G A e6 e6 DIV A H A e7 e7 HALT O quatro endereço é desnecessário pois os programas eram escritos sequencialmente II - INTRODUÇÃO •Arquiteturas 4, 3, 2, 1 e 0 3 endereços A=((B+C)*D+E-F)/(G*H) OP E1 E2 E3 E1 – fonte E2 – fonte E3 – destino e1 ADD B C A e1+1 MUL A D A e1+2 ADD A E A e1+3 SUB A F A e1+4 DIV A G A e1+5 DIV A H A e1+6 HALT II - INTRODUÇÃO II - INTRODUÇÃO PC – criado para localizar a próxima instrução Jump – indica salto Reduz o tamanho da instrução mas per-de-se um grau de liberdade •Arquiteturas 4, 3, 2, 1 e 0 2 endereços II - INTRODUÇÃO A=((B+C)*D+E-F)/(G*H) OP E1 E2 E1 – fonte/destino E2 – fonte e1 MOV A B e1+1 ADD A C e1+2 MUL A D e1+3 ADD A E e1+4 SUB A F e1+5 DIV A G e1+6 DIV A H e1+7 HALT II - INTRODUÇÃO MOV – movimento de memória Evita-se a repetição do destino. •Arquiteturas 4, 3, 2, 1 e 0 1 endereços II - INTRODUÇÃO A=((B+C)*D+E-F)/(G*H) E1 – memória e1 LDA B e1+1 ADD C e1+2 MUL D e1+3 ADD E e1+4 SUB F e1+5 DIV G e1+6 DIV H e1+7 STA A e1+8 HALT II - INTRODUÇÃO OP E1 AC – Acumulador substitui o fonte e o destino LDA–move da memória para o acumulador LoaD STA–move do acumulador para a memóriaSTore Economia de acesso à memória •Arquiteturas 4, 3, 2, 1 e 0 II - INTRODUÇÃO A=((B+C)*D+E-F)/(G*H) 0 endereços OP E1 – memória Pilha Equação escrita em notação polonesa reversa. Equação fica: HGFEDCB+*+-// e1 PUSH H e1+1 PUSH G e1+2 PUSH F e1+3 PUSH E e1+4 PUSH D e1+5 PUSH C e1+6 PUSH B e1+7 ADD e1+8 MUL e1+9 ADD e1+10 SUB e1+11 DIV e1+12 DIV e1+13 POP A e1+14 HALT PUSH – colocar no topo da pilha POP – enviar do topo da pilha para a memória II - INTRODUÇÃO Não há grande vantagem em relação a anterior •Tabela Ascii II - INTRODUÇÃO II - INTRODUÇÃO II - INTRODUÇÃO II - INTRODUÇÃO