Arquitetura e Organizao de Computadores Fabrcio Costa Santana
Arquitetura e Organização de Computadores Fabrício Costa Santana
Apresentação do Professor Fabrício Costa Santana Graduado em Sistemas de Informação - FTC Itabuna Especialista em Gestão da Tecnologia da Informação – FTC Feira de Santana Gerente Site: de TI http: //professorfabricio. org E-mail: fcsantana. ita@ftc. edu. br
Plano de Ensino Ementa Objetivos de Aprendizagem Estratégias Critérios Metodológicas de Avaliação Competências Referências Bibliográficas
Ementa Introdução à organização de computadores: Evolução de sistemas computacionais. Classificação de arquiteturas: Estruturas de computadores; Máquina de Von Neumann; Medidas de avaliação de desempenho; Arquiteturas de alto desempenho.
Ementa Sistemas de memória hierárquica: Conceito de hierarquia de memória, bandwidth, esquemas de endereçamento, memória virtual, paginação; Memória cache. Sub-sistemas de entrada e saída: Características, canais, processadores de E/S. Princípios de pipelining: Pipelines de instrução; Pipelines aritméticos; Projetos de sistemas pipeline.
Ementa Processadores matriciais Características, malhas de comunicação, algoritmos. Processadores associativos Multiprocessadores: Sistemas fortemente acoplados e fracamente acoplados; Influências no sistema operacional e em linguagens de programação; Algoritmos. Arquiteturas alternativas: Arquitetura VLSI; Computadores dataflow; Fundamentos de circuitos digitais.
Objetivos de Aprendizagem Capacitar os alunos a compreenderem a organização e arquitetura básicas de um computador, em especial, capacitar os alunos a entenderem e analisarem criticamente as opções para definição do conjunto de instruções de uma arquitetura, da estrutura da CPU e dos componentes de memória e barramentos.
Estratégias Metodológicas Aulas expositivas com auxílio de quadro branco, projetor multimídia, caixa de som e vídeos; Uso de pelo menos uma metodologia ativa na segunda unidade: TBL, Host ou Storytelling. Uso de softwares simuladores.
Critérios de Avaliação Avaliações escritas, exercícios de fixação e trabalhos. Calendário VA 1 – Prova – Peso 40 Data: 09/10/2019 VA 2 – Prova – Peso 40 Data: 04/12/2019 Atividade em grupo – Peso 20 Data: a definir
Competências Compreender fundamentos de Sistemas Digitais; Implantar infraestruturas computacionais considerando adequação financeira e requisitos de desempenho; Indicar necessidades de atualizações de componentes de hardware de infraestruturas computacionais pré-existentes; Avaliar requisitos de hardware para a implantação de sistemas de informação.
Referências Bibliográficas Tanenbaum, Andrew S. - Organização estruturada de computadores / Andrew S. Tanenbaum, Todd Austin; São Paulo : Pearson Prentice Hall. Stallings, William - Arquitetura e organização de computadores / William Stallings. — 8. ed. — São Paulo : Pearson Pratice Hall. DELGADO, José, RIBEIRO, Carlos. Arquitetura de Computadores, 5ª edição. [Minha Biblioteca]. Retirado de https: //integrada. minhabiblioteca. com. br/#/books/9788521633921/ WEBER, Fernando, R. Fundamentos de arquitetura de computadores - série livros didáticos informática ufrgs Vol. 8 - 4. [Minha Biblioteca]. Retirado de https: //integrada. minhabiblioteca. com. br/#/books/9788540701434/ MONTEIRO, A. , M. Introdução à Organização de Computadores, 5ª edição. [Minha Biblioteca]. Retirado de https: //integrada. minhabiblioteca. com. br/#/books/97885 -216 -1973 -4/
Evolução dos Sistemas Computacionais
Geração 0 de Computadores – Mecânicos e Eletromecânicos – 1642 a 1945
Calculadoras Primitivas Ábaco / Soroban / Suanpan + de 5. 500 anos * VIDEO * Provavelmente na Mesopotâmia, segundo alguns historiadores
La Pascaline – Blaise Pascal 1642 VIDEO 1 VIDEO 2
Tear Mecânico - Joseph-Marie Jacquard 1801 VIDEO
Máquina Diferencial e Máquina Analítica de Charles Babbage 1822 VIDEO 1 VIDEO 2
Máquina de Cartões Perfurados - Herman Hollerith 1880 VIDEO
Bomba Eletromecânica (Bombe ou Colossus) – Alan Turing Enigma 1939 - 1940 Máquina de Turing
O Jogo da Imitação
Harvard Mark I - Howard Aiken + IBM 1944
Harvard Mark I - Howard Aiken + IBM 1944 VIDEO
Primeira Geração de Computadores – Eletrônicos a Válvulas – 1945 a 1955
Primeira Geração de Computadores – Eletrônicos Valvulados ENIAC ( Eletronic Numerical Integrator and Computer) foi o primeiro computador eletrônico digital de propósito geral: Composto por mais de 17 mil válvulas. Construído na Universidade da Pensilvânia; Realizava 5000 adições por segundo; Decimal e não binário; Programação manual por meio de chaves e conexão e desconexão de cabos;
ENIAC 1946
Primeira Geração de Computadores – Eletrônicos Valvulados EDVAC (Electronic Discrete Variable Automatic Computer): Modelo proposto por John von Neuman; Sua arquitetura tornou-se padrão para os computadores modernos; Concebido para ter a adição binária, subtração e multiplicação, divisão programada e automática; Utilizava códigos binários; Possuía quase 6. 000 tubos de vácuo e 12. 000 diodos; Consumia o equivalente a 56 kilowatts de potência; Ocupava 45, 5 m 2 de área e pesava 7. 850 kg;
EDVAC 1952
Arquitetura de Von Neuman Uma memória principal, que armazena dados e instruções; Uma unidade lógica e aritmética (ALU) capaz de operar sobre dados binários. Uma unidade de controle, que interpreta as instruções na memória e faz com que sejam executadas. Equipamento de entrada e saída (E/S) operado pela unidade de controle.
Arquitetura de Von Neuman
Registradores Registrador de buffer de memória (MBR, do inglês memory buffer register): contém uma palavra a ser armazenada na memória ou enviada à unidade de E/S, ou é usada para receber uma palavra da memória ou de uma unidade de E/S. Registrador de endereço de memória (MAR, do inglês memory address register): especifica o endereço na memória da palavra a ser escrita ou lida no MBR. Registrador de instrução (IR, do inglês instruction register): contém o opcode de 8 bits da instrução que está sendo executada. Registrador de buffer de instrução (IBR, do inglês instruction buffer register): empregado para manter temporariamente a próxima instrução a ser executada. Contador de programa (PC, do inglês program counter): contém o endereço do próximo par de instruções a ser apanhado da memória. Acumulador (AC) e quociente multiplicador (MQ, do inglês multiplier quotient): empregado para manter temporariamente operandos e resultados de operações da ALU. Por exemplo, o resultado de multiplicar dois números de 40 bits é um número de 80 bits; os 40 bits mais significativos são armazenados no AC e o menos significativos no MQ
Unidade Lógica Aritmética (ULA ou ALU) AC AC Equipamento de Entrada/Saída Circuitos Lógicos Aritméticos MBR Instruções e dados IBR PC IR MAR Endereços Circuitos de Controle Unidade de Controle (UC ou CU) Memória Principal Estrutura do Computador IAS (Princeton Institute for Advanced Studies)
UNIVAC I Primeiro computador comercial de sucesso; tinha como finalidade aplicações científicas e comerciais; Usando no censo de 1950;
UNIVAC II Maior capacidade de memória e maior desempenho que o UNIVAC I Possuía retro-compatibilidade;
Válvulas
Transistor 1947
Válvula Transistor
Vantagens dos transistores Capacidade de produção em massa; Custo muito baixo; Mais robusto; Menor consumo de energia elétrica; Tempo de vida últil.
Válvula X Transistor Amplificador 40 w Valvulado (Pesa 22 Kg) Amplificador 60 w Transistorizado
Segunda Geração de Computadores – Transistores – 1955 a 1965
TX-0 (MIT 1956)
TX-2
IBM 7090
Tabela comparativa da série IBM 700/7000
PDP-1 1961
PDP-8 1965
Principal avanço do PDP-8
IBM 1401
CDC 6600 1964
Terceira Geração de Computadores – Circuitos Integrados – 1965 a 1980
Quarta Geração de Computadores – VLSI Very Large Scale Integration – 1980 a ?
Quinta Geração de Computadores
Arquitetura e Organização de Computadores Arquitetura de computador Organização de computador refere-se aos atributos de um sistema visíveis a um programador ou, em outras palavras, aqueles atributos que possuem um impacto direto sobre a execução lógica de um programa. refere-se às unidades operacionais e suas interconexões que realizam as especificações arquiteturais.
Introdução Computador digital – Máquina capaz de resolver problemas através da execução de instruções. Programa – Sequencia lógica de instruções, descrevendo como realizar uma tarefa.
Funções básicas de um computador digital Armazenamento de dados: fornecido por células de memória. Processamento de dados: fornecido portas. Movimentação de dados: os caminhos entre os componentes são usados para movimentar dados da memória para a memória e da memória pelas portas até a memória. Controle: os caminhos entre os componentes podem transportar sinais de controle. Por exemplo, uma porta terá uma ou duas entradas de dados mais uma entrada de sinal de controle que ativa a porta. Quando o sinal de controle é ON, a porta realiza sua função sobre as entradas de dados e produz uma saída de dados. De modo semelhante, a célula de memória armazenará o bit que está em seu fio de entrada quando o sinal de controle ESCRITA for ON, e colocará o bit que está na célula em seu fio de saída quando o sinal de controle LEITURA for ON.
Visão funcional Ambiente operacional (origem e destino dos dados) Aparato de movimentação dos dados Capacidade de armazenamento de dados Mecanismo de controle Capacidade de processamento de dados Operações Possíveis
Estrutura de alto nível do computador
Velocidade de clock Ciclos por segundo; Unidade de medida: Hz (Hertz); 100 ciclos por segundo = 100 Hz; BCLK (Base Clock); Confusões comuns acerca do clock: Clock do processados X BCLK X Clock dos componentes; Melhorias arquiteturais; Avaliar Clock do processador como medida de velocidade, capacidade ou potência.
Lei de moore Moore observou que o número de transistores que poderia ser colocado em um único chip estava dobrando a cada ano e previu corretamente que esse ritmo continuaria no futuro próximo. Para a surpresa de muitos, incluindo Moore, o ritmo continuou ano após ano e década após década. O ritmo diminuiu para dobrar a cada 18 meses na década de 1970, mas sustentou essa taxa desde então.
Evolução dos processadores Intel – Década de 1970
Evolução dos processadores Intel – Década de 1980
Evolução dos processadores Intel – Década de 1990
Evolução dos processadores Intel – Década de 2000
Melhoria arquiteturais e organizacionais Previsão de desvio; Análise de fluxo de dados; Execução especulativa; Melhoria na DRAM; Melhorias nas estruturas de cache; Aumento na largura de banda entre a memória e o processador; Potência; Redução no delay de resistência e capacitância; Latência da memória.
Taxa de dados nos dispositivos E/S
Tipos de computadores Computador descartável. Microcontrolador. Computador de jogos. Computador pessoal. Servidor. Conjunto de estação de trabalho. Mainframe.
Computador descartável Esses computadores descartáveis em si são muito simples, não necessitam de memória nem de grandes requisitos e nem mesmo velocidade de processamento. Sua principal aplicação é em cartões de felicitação, mas vem crescendo a demanda para identificadores e localizadores.
Microcontroladores Os microcontroladores estão escondidos dentro de inúmeros produtos atualmente.
Computadores de Jogos São computadores normais com recursos de gráficos especiais e capacidade de som.
Computadores pessoais Um computador pessoal ou PC (do inglês Personal Computer) é um computador de pequeno porte e baixo custo, que se destina ao uso pessoal ou por um pequeno grupo de indivíduos.
Servidores Em informática, um servidor é um sistema de computação centralizada que fornece serviços a uma rede de computadores.
Conjuntos de estações de trabalho
Mainframes Um mainframe é um computador de grande porte, dedicado normalmente ao processamento de um volume grande de informações.
Sistemas de numeração e conversão de bases
Sistema de numeração decimal Sistema hindu-arábico Notação posicional Base 10 Dígitos: 0 1 2 3 4 5 6 7 8 9
Sistema de numeração decimal 4ª Classe 3ª Classe 2ª Classe 1ª Classe Bilhões Milhares Unidades 12ª Ordem 11ª Ordem 10ª Ordem 9ª Ordem 8ª Ordem 7ª Ordem 6ª Ordem 5ª Ordem 4ª Ordem 3ª Ordem 2ª Ordem 1ª Ordem Centena Dezena Unidade
Sistema de numeração decimal Forma-se o número pela soma de cada dígito multiplicado por uma potência da base relacionada à posição daquele dígito 854610 8 * 103 + 5 * 102 + 4 * 101 + 6 * 100 8000 + 500 + 40 + 6 8546
Sistema de numeração binário Muito usado na eletrônica Notação posicional Base 2 Dígitos: Cada dígito binário é chamado de Cada conjunto de 4 dígitos binários é chamado de nibble Cada conjunto de 8 dígitos binários é chamado de byte 0 1 bit
Conversão de base binária para decimal 101100102 1 * 27 + 0 * 26 + 1 * 25 + 1 * 24 + 0 * 23 + 0 * 22 + 1 * 21 + 0 * 20 128 + 0 + 32 + 16 + 0 + 2 + 0 17810
Exercício de fixação Converta os números abaixo da base binária para a decimal: 112 11012 100101102 110011102 010011002
Conversão de base decimal para binária 156 2 0 78 2 0 39 2 1 19 2 1 4 2 0 2 2 0 1 15610 = 100111002
Exercício de fixação Converta os números abaixo da base decimal para a binária: 1510 3610 4810 12510 25510 31210
Conversão de base octal para decimal 1238 1 * 82 + 2 * 8 1 + 3 * 8 0 64 + 16 + 3 8310
Exercício de fixação Converta os números abaixo da base octal para a decimal: 458 5488 70358
Conversão de base decimal para octal 246 8 6 30 8 6 3 24610 = 3668
Exercício de fixação Converta os números abaixo da base decimal para a binária: 1510 25510 31210
Conversão de octal em binário e de binário para octal A conversão de octal para binário é feita convertendo dígito a dígito de octal em binário, da direita para a esquerda. Cada digito é convertido para um grupo de 3 bits, conforme tabela a seguir: OCTAL BINÁRIO 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
Conversão de base octal para base binária 26478 2 010 6 110 4 100 7 111 26478 = 0101101001112 OCTAL BINÁRIO 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
Conversão de base binária para base octal 11101010112 001 1 110 6 101 5 011 3 11101010112 = 16538 OCTAL BINÁRIO 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111
Algarismos hexadecimais Base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F
Conversão de base hexadecimal para decimal 254 C 16 2 * 163 + 5 * 162 + 4 * 161 + 12 * 160 8192 + 1280 + 64 + 12 954810 Base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Base 16 0 1 2 3 4 5 6 7 8 9 A B C D E F
Conversão de base decimal para octal 438 16 6 27 16 11 1 43810 = 1 B 616
Conversão de hexadecimal para binário e de binário para hexadecimal Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F Binário 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Álgebra de Boole George Boole desenvolveu um sistema de análise lógica por volta de 1850 Este sistema é conhecido atualmente como álgebra de Boole A álgebra de Boole expressa a operação de um circuito na forma de uma operação algébrica Na álgebra Booleana, as constantes e variáveis podem ter apenas 2 valores: 0 ou 1 (níveis lógicos) George Boole
Variáveis lógicas As variáveis lógicas assumem estados distintos, e podem representar situações da vida real; A álgebra booleana tem apenas três operações básicas: AND (E), OR (OU), NOT (NÃO)
Variáveis lógicas Nível Lógico 0 Falso Desligado Baixo Não Chave aberta Nível Lógico 1 Verdadeiro Ligado Alto Sim Chave fechada
Tabela Verdade Técnica para determinar como a saída lógica de um circuito depende dos níveis lógicos presentes nas entradas do circuito
A operação OR (OU) Representada algebricamente como: S=A+B (leia-se A OU B)
A operação AND (E) Representada algebricamente como: S=A. B (leia-se A e B)
A operação NOT (NÃO) ou inversor Representada algebricamente como: ou lê-se (A barra) ou (NÃO A) Tem apenas uma entrada Também conhecido complemento
A porta NOR (NÃO-OU) Combinação da porta OU com a porta inversora
A porta NAND (NÃO-E) Combinação da porta AND com a porta inversora
A porta XOR (OU Exclusivo) Nível ALTO na saída somente quando as 2 entradas são diferentes entre si!
A porta XNOR (OU Exclusivo com inversor) Para a porta XNOR, teremos o resultado 1 somente quando as 2 entradas forem iguais (exatamente o inverso da XOR)! Tanto a porta XOR quanto a XNOR possuem somente duas entradas
Portas Lógicas NAND num circuito integrado
Exercício de Fixação 1 – Montar a tabela verdade dos circuitos abaixo: A 0 0 1 1 B 0 0 1 1 C 0 1 0 1 X
Exercício de Fixação 1 – Montar a tabela verdade dos circuitos abaixo: A 0 0 0 0 1 1 1 1 B 0 0 0 0 1 1 1 1 C 0 0 1 1 D 0 1 0 1 X
Exercício de Fixação: 2 - Para satisfazer as saídas dos circuitos que níveis lógicos os barramentos podem estar?
ASCII American Standard Code for Information Interchange; "Código Padrão Americano para o Intercâmbio de Informação; É um código binário (cadeias de bits: 0 s e 1 s) que codifica um conjunto de 128 sinais: 95 sinais gráficos (letras do alfabeto latino, sinais de pontuação e sinais matemáticos) e 33 sinais de controle, utilizando portanto apenas 7 bits para representar todos os seus símbolos
ASCII - Sinais gráficos (imprimíveis)
Bin Oct Dec Hex Sinal Bin Oct Dec Hex Sinal 0010 0000 40 32 20 (espaço) 0011 0100 64 52 34 4 0100 1000 110 72 48 H 0101 1100 134 92 5 C 0111 0000 160 112 70 p 0010 0001 41 33 21 ! 0011 0101 65 53 35 5 0100 1001 111 73 49 I 0101 135 93 5 D ] 0111 0001 161 113 71 q 0010 42 34 22 " 0011 0110 66 54 36 6 0100 1010 112 74 4 A J 0101 1110 136 94 5 E ^ 0111 0010 162 114 72 r 0010 0011 43 35 23 # 0011 0111 67 55 37 7 0100 1011 113 75 4 B K 0101 1111 137 95 5 F _ 0111 0011 163 115 73 s 0010 0100 44 36 24 $ 0011 1000 70 56 38 8 0100 114 76 4 C L 0110 0000 140 96 60 ` 0111 0100 164 116 74 t 0010 0101 45 37 25 % 0011 1001 71 57 39 9 0100 1101 115 77 4 D M 0110 0001 141 97 61 a 0111 0101 165 117 75 u 0010 0110 46 38 26 & 0011 1010 72 58 3 A : 0100 1110 116 78 4 E N 0110 0010 142 98 62 b 0111 0110 166 118 76 v 0010 0111 47 39 27 ' 0011 1011 73 59 3 B ; 0100 1111 117 79 4 F O 0110 0011 143 99 63 c 0111 167 119 77 w 0010 1000 50 40 28 ( 0011 1100 74 60 3 C < 0101 0000 120 80 50 P 0110 0100 144 100 64 d 0111 1000 170 120 78 x 0010 1001 51 41 29 ) 0011 1101 75 61 3 D = 0101 0001 121 81 51 Q 0110 0101 145 101 65 e 0111 1001 171 121 79 y 0010 1010 52 42 2 A * 0011 1110 76 62 3 E > 0101 0010 122 82 52 R 0110 146 102 66 f 0111 1010 172 122 7 A z 0010 1011 53 43 2 B + 0011 1111 77 63 3 F ? 0101 0011 123 83 53 S 0110 0111 147 103 67 g 0111 1011 173 123 7 B { 0010 1100 54 44 2 C , 0100 0000 100 64 40 @ 0101 0100 124 84 54 T 0110 1000 150 104 68 h 0111 1100 174 124 7 C | 0010 1101 55 45 2 D - 0100 0001 101 65 41 A 0101 125 85 55 U 0110 1001 151 105 69 i 0111 1101 175 125 7 D } 0010 1110 56 46 2 E . 0100 0010 102 66 42 B 0101 0110 126 86 56 V 0110 1010 152 106 6 A j 0111 1110 176 126 7 E ~ 0010 1111 57 47 2 F / 0100 0011 103 67 43 C 0101 0111 127 87 57 W 0110 1011 153 107 6 B k 0011 0000 60 48 30 0 0100 104 68 44 D 0101 1000 130 88 58 X 0110 1100 154 108 6 C l 0011 0001 61 49 31 1 0100 0101 105 69 45 E 0101 1001 131 89 59 Y 0110 1101 155 109 6 D m 0011 0010 62 50 32 2 0100 0110 106 70 46 F 0101 1010 132 90 5 A Z 0110 156 110 6 E n 0011 63 51 33 3 0100 0111 107 71 47 G 0101 1011 133 91 5 B [ 0110 1111 157 111 6 F o
ASCII - Sinais de controle (nãoimprimíveis)
Bin 0000 0001 0000 0010 0000 0011 0000 0100 0000 0101 0000 0110 0000 0111 0000 1000 0000 1001 0000 1010 0000 1011 0000 1100 0000 1101 0000 1110 0000 1111 0000 0001 0010 0001 0011 0001 0100 0001 0101 0001 0110 0001 0111 0001 1000 0001 1001 0001 1010 0001 1011 0001 1100 0001 1101 0001 1110 0001 1111 0111 1111 Oct 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37 177 Dec 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 127 Hex 0 1 2 3 4 5 6 7 8 9 0 A 0 B 0 C 0 D 0 E 0 F 10 11 12 13 14 15 16 17 18 19 1 A 1 B 1 C 1 D 1 E 1 F 7 F Abrev NUL SOH STX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC 1 DC 2 DC 3 DC 4 NAK SYN ETB CAN EM SUB ESC FS GS RS US DEL Notação com ^ ^@ ^A ^B ^C ^D ^E ^F ^G ^H ^I ^J ^K ^L ^M ^N ^O ^P ^Q ^R ^S ^T ^U ^V ^W ^X ^Y ^Z ^[ ^ ^] ^^ ^_ ^? Código escape a b t n v f r e Descrição do Controle Nulo (inglês Null) Início de cabeçalho (inglês Start of Header) Início de texto (inglês Start of Text) Fim de texto (inglês End of Text) Fim de transmissão (inglês End of Transmission) Consulta; inquirição (inglês Enquiry) Confirmação (inglês Acknowledge) Campainha; sinal sonoro (inglês Bell) Espaço atrás; retorno de 1 caractere (inglês Back-space) Tabulação horizontal (inglês Horizontal Tabulation) Alimentação de linha; mudança de linha; nova linha (inglês Line Feed) Tabulação vertical (inglês Vertical Tabulation) Alimentação de formulário (inglês Form Feed) Retorno do carro; retorno ao início da linha (inglês Carriage Return) Mover para fora; deslocamento para fora (inglês Shift Out) Mover para dentro; deslocamento para dentro (inglês Shift In) escape do linque de dados; escape de conexão (inglês Data-Link Escape) Controle de dispositivo 1 (inglês Device Control 1) Controle de dispositivo 2 (inglês Device Control 2) Controle de dispositivo 3 (inglês Device Control 3) Controle de dispositivo 4 (inglês Device Control 4) Confirmação negativa (inglês Negative-Acknowledge) Estado ocioso síncrono; espera síncrona (inglês Synchronous Idle) Bloco de fim de transmissão (inglês End of Transmission Block) Cancelar (inglês Cancel) Fim de mídia; fim do meio (inglês End of Medium) Substituir (inglês Substitute) Escapar (inglês Escape) Separador de arquivos (inglês File Separator) Separador de grupos (inglês Group Separator) Separador de registros (inglês Record Separator) Separador de unidades (inglês Unit Separator) Deletar (inglês Delete)
Estrutura e Funcionamento do computador
Revisão: Modelo Von Newman 1. Dados e instruções são armazenados em uma única memória de leitura e escrita. 2. O conteúdo dessa memória é endereçável por local, sem considerar o tipo de dados neles contido. 3. A execução ocorre em um padrão sequencial (a menos que modifcado explicitamente) de uma instrução para a seguinte.
Função básica de um computador Execução de um conjunto de instruções
Trabalho peso 10 – Datas de apresentações: Equipes de 1 a 4 - 25/09/2019 Equipes de 5 a 8 – 27/09/2019 Tempo de apresentação máximo 20 min Equipe 1 – Apresentação da Interface do Computador Teórico Neander Equipe 2 – Explicação dos mnemônicos do Computador Teórico Neander Equipe 3 – Apresentar e explicar um programa para soma de 3 números e armazenamento de resultado na memória Equipe 4 - Apresentar e explicar um programa para multiplicação de 2 números e armazenamento de resultado na memória Equipe 5 – Apresentar um programa que efetue uma contagem regressiva de 10 até 1 Equipe 6 – Apresentar o computador didático AHMES Equipe 7 - Apresentar o computador didático RAMSES Equipe 8 - Apresentar o computador didático CESAR
Linguagens, níveis e máquinas virtuais Supondo a existência das linguagens: L 1: linguagem natural, do usuário (alto nível e complexa) L 0: linguagem da máquina (baixo nível e simples) Como compatibilizar L 1 com L 0? Temos 2 soluções: Opção 1: usar um tradutor Opção 2: usar um interpretador
Tradutor Cada instrução de L 1 é substituída por um conjunto de instruções equivalentes de L 0 Processador executa programa em L 0. Todo programa em L 0 é carregado em memória e é executado Programa pode ser traduzido uma única vez e executado várias vezes
Interpretador Cada instrução de L 1 é substituída por um conjunto de instruções equivalentes de L 0; Processador executa instrução de L 1 (transformada para L 0) antes de executar próxima instrução; Cada instrução de L 1, transformada para L 0, é carregada na memória e executada; Não é criado um programa em L 0; Programa deve ser novamente interpretado para ser executado.
Máquina Virtual Ao invés de pensar em tradução ou interpretação, pode-se imaginar a existência de um computador hipotético, ou de uma máquina virtual M 1, cuja linguagem de máquina seja L 1 (e uma máquina real M 0 com linguagem L 0) Os programas poderiam ser escritos em L 1, para a máquina M 1 e: 1. serem executados diretamente em M 1 se esta máquina fosse de custo de construção baixo, ou 2. serem traduzidos ou interpretados para L 0 e executados em M 0 Na prática se implementa a solução 2 acima. As pessoas escrevem programas para máquinas virtuais como se elas realmente existissem. Muitos níveis de máquinas virtuais podem ser implementados. Cada linguagem usa a sua linguagem antecessora como base, de modo que um computador que use essa técnica pode ser visto como um conjunto de camadas ou níveis um em cima do outro como mostra a figura que segue.
Maquina Multinível: (Tannembaum)
Maquinas Multiníveis Contemporâneas: (Tannembaum)
Níveis Nível 0: Nível da Lógica Digital Nível 1: Nível da Microarquitetura Nível 2: Nível da Arquitetura do Conjunto de Instruções (nível ISA - Instruction Set Architeture) Nível 3: Nível do Sistema Operacional Nível 4: Nível da linguagem do montador ou de montagem (Assembly language) Nível 5: Nível das linguagens orientadas para solução dos problemas
Nível 0 Nível mais baixo da estrutura Objetos de interesse são conhecidos como portas lógicas Cada porta lógica tem 1 ou mais entradas digitais (aceitam 0 ou 1) e calculam funções lógicas simples sobre essas entradas. Exemplo: AND, OR, XOR, . . . Portas lógicas são combinadas para formar o Processador - principal dispositivo do computador
Nível 1 Enxergamos uma memória local (8 a 32 registradores) e a UAL (Unidade Aritmética Lógica) que realiza operações aritméticas muito simples Os registradores são conectados a UAL formando o caminho dos dados Operações são controladas por um microprograma ou diretamente por hardware Microprograma é um interpretador para as instruções do nível 2.
Nível 2 Definida pelo fabricante e dependente da arquitetura da máquina Fabricantes disponibilizam "Manual de Referência da Linguagem de Máquina" ou "Princípios de operação do Computador Modelo XYZ 4 W), ou algo similar. Manuais descrevem como as instruções são executadas interpretativamente pelo microprograma ou como elas são executadas diretamente pelo hardware. Essas informações são necessárias para os desenvolvedores de sistemas operacionais.
Nível 3 Instruções da linguagem deste nível também podem conter instruções do nível ISA. Suporta uma organização diferente de memória Suporta capacidade de rodar 2 ou mais programas simultaneamente Suporta sistemas de comandos ou de janelas (windows) Programadores deste nível, e também dos níveis mais baixos, são conhecidos como programadores de sistema. Os programadores dos níveis mais altos que este são chamados programadores de aplicação.
Nível 4 Linguagem de montagem: forma simbólica de representação das linguagens do nível mais baixo. Programas nessa linguagem são primeiro traduzidos para as linguagens dos níveis 1, 2 e 3 e depois interpretados pela máquina virtual apropriada ou pela própria máquina real. Programa que realiza essa tradução é chamado de montador
Nível 5 Conhecidas como linguagens de alto nível. Exemplos Basic, C, Pascal, Java, LISP, . . Programas são geralmente traduzidos para os níveis 3 e 4 por compiladores Alguns são interpretados: Exemplo: programas em Java, Mat. Lab, . . .
Um novo recursos: virtualização de containers
Linguagens de Programação Linguagens de Baixo Nível Linguagem de Máquina É a linguagem do computador, de difícil compreensão pelo ser humano. Está fundamentada nos sistemas de numeração binário ou hexadecimal para apresentar os dados. Essas instruções são formadas por códigos. Ex. : 010101. Linguagem Assembly É um conjunto de linguagens baseadas em abreviações de expressões em inglês, chamadas mnemônicos. Cada processador recebe um tipo de Assembly. Os programas que convertem a primeira linguagem assembly para máquina são chamados de assemblers. Apesar de ser mais compreensível para o homem, ela somente se torna compreensível para o computador quando é traduzida para linguagem de máquina.
Linguagem de Alto Nível Linguagens não-estruturadas Linguagem COBOL (COmmon Business Oriented Language) Linguagem Basic Linguagens Estruturadas Linguagens Procedurais C, Pascal, Fortran, ADA, Modula-2, Modula-3. . . Linguagens Funcionais Prolog, LISP, Scheme. . . Linguagens Orientadas a Objetos Simula, Smalltalk, C++, Java, C#. . . Linguagens de Programação Visual Linguagens Visuais Híbridas: C#, Delphi, Visual Basic Linguagens Visuais Puras: Kronos, Simulink
- Slides: 138