ARQUITETURA DE COMPUTADORES II

Tamanho: px
Começar a partir da página:

Download "ARQUITETURA DE COMPUTADORES II"

Transcrição

1 ARQUITETURA DE COMPUTADORES II Engenharia Informática(11537) Tecnologias e Sistemas de Informação(6621) Pedro Araújo Gab (sala 6.15 & 6.21) paraujo@di.ubi.pt

2 Objetivos 1)Aquisição de conhecimentos sobre a estrutura e modo de funcionamento dos computadores digitais; 2)Familiarização com a programação em linguagem ao nível da máquina (Assembly). Estes conhecimentos são úteis para especificar, escolher e usar eficientemente as máquinas disponíveis. Na posse destes conhecimentos, os alunos poderão entender e acompanhar as constantes e rápidas evoluções tecnológicas de modo a manterem-se permanentemente actualizados.

3 Aulas Teóricas(T) Introdução dos conceitos Alertas/chamadas de atenção Propostas de trabalhos/desafios Práticas(P) Resolução dos trabalhos práticos Notas complementares Pesquisas (net, etc) fomentar o processo de auto-aprendizagem

4 Programa (resumido) Aulas teóricas(t) 1. Organização dos computadores: evolução histórica, tecnologias, blocos básicos; 2. Estrutura dos microprocessadores(microcontroladores): tratamento dos dados, unidade de controlo, execução das instruções; 3. Sistemas de memória: organização e hierarquia da memória; 4. Tópicos avançados: medição e melhoria do desempenho; técnicas para melhoria do desempenho (arquitecturas RISC/CISC; paralelismo; pipelining e arquitecturas superescalares; memória cache; técnicas de compilação,...); 5. Arquitetura de um sistema microcontrolado: Arduino; 6. Tecnologia de computadores: sistemas de entrada/saída, comunicações, alimentação, motherboard, memória, periféricos (teclados, monitores, discos, ratos,...); Aulas práticas(p) A) programação em Assembly usando o assembler FASM (Fast Assembler): cobrindo os tópicos abordados nas aulas teóricas; B) programação de um sistema microntrolado: Arduino;

5 Apoio Bibliografia [1] Arquitectura de Computadores, José Delgado, Carlos Ribeiro, FCA, 2007; [2] Arquitectura de Computadores: dos Sistemas Digitais aos Microprocessadores, G.Arroz, J.Monteiro, A.Oliveira, IST Press, 2007; [3] Textos disponíveis na página da cadeira e apontamentos das aulas (IntroFASM.pdf)

6 Avaliação Teórica(TE) (freq.+exames) = 12 valores Data Frequência: 2016/05/18 Prática(TP) = 8 valores dois trabalhos feitos na aula, ambos de realização obrigatória, com entrega de um pequeno relatório(pode ser apenas uma folha de rosto); a nota dos trabalhos conta para todos os exames TP1[3 val]: semana de 4 Abril 2016 TP2[5 val]: semana de 16 Maio 2016 Mínimos: TE+TP 6 + Assiduidade 85% aulas práticas (podem faltar a duas aulas) (caso não sejam atingidos o aluno terá classificação de NA-Não Admitido ) Melhoria de classificação: só para TE conta a melhor nota dos testes. Condicionalmente os trabalhos práticos podem contar para o ano seguinte, dispensando o aluno das aulas práticas (os trabalhos práticos não podem ser melhorados). Alunos especiais (trabalhadores estudantes, etc): à partida têm de cumprir os critérios anteriores, mas devem contactar o docente para que o seu caso seja analisado.

7 Arquitetura de Computadores II Recuando 50 anos... Computar = contar, avaliar, somar 1º tipo de aplicação cálculos matemáticos para fins militares Modelo do computador? Homem: resolução de problemas (ex:cálculos matemáticos) Resolução de problemas 1) aquisição de dados = sentidos unidade de entrada (E) 2) armazenamento (dados/informação) = memória unidade de memória (M) 3) processamento = aplicação de regras e de processos operatórios unidade lógica e aritmética (ULA) : regras unidade de controlo (UC) : sequência das acções 4) comunicação de resultados = fala, escrita unidade de saída (S)

8 Arquitetura de Computadores II armazenamento + processamento dados E M (dados + programas) S informação dados controlo ULA controlo UC controlo Babbage: 1830 Von Neumann: 1945 E : teclado (interruptores), rato, scanner, microfone,... M: cartões perfurados, sistemas magnéticos, circuitos digitais, condensadores,... ULA: rodas dentadas, circuitos digitais (somadores/subtratores), programas,... UC: rodas dentadas, cartões perfurados, circuitos digitais (tabelas de verdade), programas,... S: cartões perfurados, impressoras, ecrans vídeo,...

9 Arquitetura de Computadores II de que é feito tudo isto na prática? lixo + areia da praia + materiais duvidosos......além de muita água!

10 Arquitetura de Computadores II Em grande parte os computadores são feitos de materiais plásticos......os plásticos são originados a partir de resinas derivadas do petróleo......o petróleo resulta da decomposição de restos orgânicos de animais e de vegetais... lixo! Principal matéria prima dos processadores... areia da praia! Quem o diz é a Intel! Materiais duvidosos: borracha, ouro, prata, paládio, cobre, estanho, gálio, índio, boro, rutênio, alumínio, titânio, silício, germânio... podem usar até cerca de 40 elementos da tabela periódica a maior parte deles venenosos e perigosos para o ambiente! E água...muita água! Cerca de 1500Kg por PC...

11 CPU Aula 2

12 Processador : blocos básicos entradas circuito digital (portas lógicas) saídas I 0 I I N-1 Q S n-1... S 1 S 0 Multiplex / Demultiplex ALU

13 Z : o terceiro estado digital A B C D S Qual o valor de S para diferentes situações? Porta tri-state: cria um terceiro estado, designado por alta-impedância ou High-Z, que não é nem 0 nem 1 (corresponde ao nada, é como se a saída ficasse desligada) ex: buffer tri-state E C C E S 0 - Z S E E C=0 C=1 S=Z (desligada) S=E A B C D C1 C2 Desde que C1 e C2 não estejam ambos activos (1) não haverá conflito S

14 Célula básica de memória : registo de 1 bit Célula de memória D in D Q D out R/W C S D in bit de entrada S Select(Strobe) : habilita/desabilita a acção de read/write (0=desabilita, 1=habilita) R/W sinal de Read/Write (0=Read, 1=Write) D out bit de saída

15 Célula básica de memória : registo de m bit Exemplo: n = 8 bit registo constituído por 8 células de memória 0 Célula de memória D 0...D m-1 D in D Q D out R/W S 1 D in C Célula de memória D Q D out R/W S m-1 D in C Célula de memória D Q D out R/W S R/W S C

16 Memória : p registos de m bits dados (Data Bus) : dados a serem lidos ou escritos controlo (Control Bus) determina a operação a executar (leitura/escrita) D in R/W S Célula de memória D C 0 Q D out Célula de memória Q 0 D in R/W D C 1 Q D out Q 1 S 1 Q 2 Célula de memória Q 3 D in R/W D C 2 Q D out S S 1 S 0 endereços (Address Bus) permite seleccionar o registo sobre o qual são feitas as operações de leitura/escrita D in R/W Célula de memória D C 3 Q D out Exemplo: p = 4 registos dois bits de selecção (S 1,S 0 ) S

17 Memória : p registos de m bits Organização e capacidade de uma RAM Random Access Memory palavra m bits capacidade p = 2 n registos, endereços ou palavras n bits de selecção operações read(leitura), write(escrita), chip select(selecção) m bits Data Bus m 0 1 Address Bus n 2 3 p registos : n bits de endereço Control Bus c... p-1 conteúdo endereço

18 Estrutura dos Processadores (CPU) Desafio: construir um dispositivo (processador) capaz de executar uma tarefa descrita por um conjunto de instruções (programa) 1) As tarefas a realizar limitam-se a operações aritméticas; 2) As instruções, os dados do problema e respectivos resultados são constituídos por conjuntos de n bits (ex: n = 8 bits dizemos por isso que o nosso processador é de 8 bits, note-se que o primeiro processador da Intel, o 4004, era de 4 bits... actualmente 64 bits!) 2.1) as instruções são codificadas de modo arbitrário ex: = ADD (soma) = SUB (subtração) 2.2) os dados são representados por valores em código de complementos para 2; 3) As instruções e os dados do problema estão armazenados na memória e os resultados da operação também deverão ficar armazenados na memória; 4) As instruções deverão ser executadas sequencialmente pela ordem em que constam na memória, ao ritmo constante de um sinal de controlo (clock);

19 Estrutura dos Processadores (CPU) Exemplo de tarefa: subtrair o valor 5 do valor 3 (e colocar o resultado na memória) subtrair(3,5) = 3-5 = -2 Memória Data Bus [subtrair] 1 [3] CPU Address Bus (resultado ) 2 [5] 3 Control Bus 2... clock 15

20 Estrutura dos Processadores (CPU) Memória A B C D E REGISTOS DB AB CB (resultado)... 0 [sub] 1 [3] 2 [5] 3 15 clock 1º) como indicar ao CPU qual a operação a executar e os correspondentes dados? colocando os respectivos códigos em locais apropriados dentro do CPU o conteúdo desses locais muda frequentemente, logo deverão ser registos

21 Estrutura dos Processadores (CPU) Memória A B C D E REGISTOS C3 UNIDADE DE CONTROLO IP C1 C5 DB AB CB (resultado)... 0 [sub] 1 [3] 2 [5] 3 15 clock 2º) como pode o CPU aceder às várias células de memória? CPU indica qual a posição ou endereço a que pretende aceder AB existe um elemento (IP-Instruction Pointer) que aponta para os endereços e que pode avançar ou recuar consoante o programa vai evoluindo (poderá ter a forma de um contador) CPU indica qual a operação que pretende executar, leitura ou escrita CB CPU envia ou recebe o conteúdo dessa posição de memória DB Esta sequência é controlada pela Unidade de Controlo

22 Estrutura dos Processadores (CPU) Memória Flags ALU A B C D E REGISTOS C4 C2 C3 C1 UNIDADE DE CONTROLO CLK IP C5 DB AB CB [sub] 1 [3] 2 [5] 3 [-2] 15 clock 3º) como pode o CPU executar a operação? dispondo de uma ALU a qual realiza operações aritméticas e lógicas certas situações devem ser registadas para controlarem as próximas acções do CPU, por exemplo se houver uma divisão por zero o processamento poderá parar e ser indicado um erro, ou como neste exemplo, assinalar que o resultado é negativo registo de Flags

23 Execução dos programas Aula 3

24 Flags ALU Estrutura dos Processadores (CPU) A B C D E REGISTOS CPU C 4 C 2 C 3 C 1 C 5 CLK UNIDADE DE CONTROLO IP DB AB CB Memória (dados + programas) address M clock Memória: contém os dados dos problemas e as instruções para operar sobre esses dados(ie,os programas) - constituída por M registos de n bits (ex:n=8), cada um com o seu endereço(address) CPU: - executa as instruções a partir da memória - REGISTOS: armazenam os dados/resultados das operações, bem como os códigos das operações a executar - IP(Instruction Pointer): aponta na memória qual o endereço da próxima instrução a executar - Flags: sinalizam determinadas ocorrências (ex: operação com resultado negativo) - ALU: executa as operações artiméticas e lógicas - UC(Unidade de Controlo): coordena o funcionamento dos restantes blocos, gerando sinais de controlo C n - Clock: determina a cadência a que as instruções são executadas

25 Registos do processador 8086 (x86-16 bits)

26 Conjunto de registos x86 de 64-bit

27 Processo de programação Máquina : apenas trabalha com bits (0 e 1) tudo tem de ser introduzido na máquina nesta forma, incluindo dados e programas(conjuntos de instruções) Programa em código binário programa em linguagem máquina ou em baixo nível Homem: é difícil trabalhar com extensas listas de bits, é mais fácil trabalhar com linguagens naturais (ex:inglês) Programa em linguagem natural (ex: C, Pascal) programa em alto nível Processo de tradução: passagem de um programa de uma linguagem de alto nível para uma de baixo nível Ex: printf( Hello World ) Compilador: programa que traduz o código fonte de um programa escrito numa linguagem de alto nível para o código correspondente numa linguagem de programação de baixo nível (por exemplo, Assembly ou código máquina) todas as instruções do programa são primeiro convertidas e depois o programa é executado como um todo; Interpretador: a diferença para o compilador é que a tradução do programa fonte é feita instrução a instrução, sendo cada uma delas executada de imediato

28 Assembly Assembly (linguagem de montagem): havendo necessidade de programar directamente em código máquina, isso obrigaria a utilizar códigos de 0 e 1 s, difíceis de manipular e memorizar. O Assembly simplifica este processo ao atribuir nomes(mnemónicas) a esses conjuntos de bits nomes esses que permitem usar as instruções nativas do processador sem usar o respectivo código binário. Em seguida é usado um programa montador, designado por Assembler, que irá converter cada mnemónica para o correspondente código binário. Ex: binário mnemónica(opcode) mov al add ax instrução em Assembly = <opcode>, <operand> = mov al, 41h mover o valor 41h(65) para o registo al = add ax, 539Fh somar 539Fh ao registo ax NOTA: a designação da linguagem é Assembly e não Assembler (é errado dizer programar em Assembler ). Assembler é um programa que efectua a tradução das mnemónicas do Assembly para código máquina e não uma linguagem. Intel 80x86 Assembly Language OpCodes :

29 Assembly Razões para utilizar Assembly Rapidez: o código em Assembly pode ser optimizado, resultando em programas mais pequenos, logo mais rápidos. Tomando como exemplo a programação de jogos, estes têm de responder muito rapidamente às ações do utilizador. Memória: os tradutores automáticos (compiladores, tradutores) geram por vezes código supérfluo o qual pode ocupar memória desnecessária. Programando directamente em Assembly pode reduzir-se a ocupação da memória. Eficiência: um programa em Assembly faz uso directo das características do processador a que se destina, o que obriga a um conhecimento aprofundado dessas características para tirar partido da linguagem. Ao usar o Assembly, o programador adquire conhecimentos que lhe permitem inclusivamente escrever código eficiente mesmo ao usar linguagens de alto-nível. Controlo: a maioria dos compiladores/interpretadores bloqueia ou dificulta o acesso a certas componentes do hardware (por motivos de segurança) as quais podem ser ultrapassadas pelo uso do assembly.

30 Processo de programação Programador (humano) Programa Fonte Linguagem de alto nível (C#, Java,...) independente da máquina Tradução compilador ou interpretador Programa Objecto (intermédio) Assembly dependente da máquina Hardware (processador) Programa Executável código máquina dependente da máquina Montagem Assembler (TASM, NASM, FASM)

31 Tabela ASCII - American Standard Code for Information Interchange Relaciona os caracteres com a sua representação numérica (decimal, hexadecimal, binária)

32 Execução dos programas 1º exemplo: escrever no ecrã a mensagem Ola UBI printf( Ola UBI ) Programa Assembly org 100h ;inicio do programa ;escrever no ecran mov ah, 40h ;escrita mov bx, 1 ;ecran mov cx, 7 ;nº caracteres mov dx, msg ;string int 21h ;executa Programa em código máquina MOV AH = B4h = MOV AH, 40h = B440h = ;aguarda tecla mov ah, 3Fh ;leitura int 21h ;executa ;terminar o programa mov ah, 4Ch ;terminar int 21h ;executa msg db 'Ola UBI' O =4Fh l =6Ch a =61h espaço=20h U =55h B =42h I =49h Nota: Intel usa técnica little-endian (byte de menor peso é armazenado primeiro)

33 org 100h ;inicio do programa ;escrever no ecran mov ah, 40h B440 ;escrita mov bx, 1 BB0100 ;ecran mov cx, 7 B90700 ;nº char mov dx, msg BA1501 ;string int 21h CD21 ;executa Flags ALU Execução dos programas REGISTOS C 4 C 2 C 3 C 1 C 5 CLK UNIDADE DE CONTROLO clock AX BX CX DX ;aguarda tecla mov ah, 3Fh B43F ;leitura int 21h CD21 ;executa ;terminar o programa mov ah, 4Ch B44C ;terminar int 21h CD21 ;executa msg db 'Ola UBI' 4F,6C,61,20,55,42, H L CPU IP DB AB CB (little-endian) Memória address 0100 B4h h 0102 BBh h h 0105 B9h h h 0108 BAh h 010A 01h 010B CDh 010C 21h 010D B4h 010E 3Fh 010F CDh h 0111 B4h Ch 0113 CDh h 0115 O 0116 l 0117 a U 011A B 011B... M I

34 Execução dos programas Instruções de salto (jump) : alteram a sequência de execução das instruções permitem programar ciclos e tomada de decisões em função de determinadas condições jump incondicional não depende de nenhuma condição para saltar ex: jump local ao encontrar esta instrução o programa continua a partir de local <instrução A> <instrução B> local1: <instrução C> <instrução D> jump local2 <instrução E> <instrução F> local2: <instrução G> <instrução H> jump local1 <instrução I> jump condicional depende de uma condição para saltar ex: sub ah, 1 ;subtrai 1 ao registo AH jnz local (jump if not zero) : se AH 0 o programa continua a partir de local (instrução B), senão continua na instrução a seguir ao jz(instrução E) <instrução A> local: <instrução B> <instrução C> <instrução D> <sub ah, 1> jnz local <instrução E> <instrução F>

35 Execução dos programas Aula 4

36 Instruções de salto (jump) 2º exemplo: repetir 20 vezes a escrita de UBI org 100h mov [cont], 20 ;20=14h ciclo: mov ah, 40h ;escrita mov bx, 1 ;ecran mov cx, 4 ;nº caracteres mov dx, msg ;string int 21h ;executa dec [cont] ;cont cont-1 jnz ciclo ;cont=0? mov ah, 07h ;leitura int 21h ;executa mov ah, 4ch ;terminar int 21h ;executa msg db "UBI", 10 ;10=0Ah=new line cont rb 1 U =55h B =42h I =49h

37 Sub-rotinas Os ciclos permitem repetir um bloco de instruções num certo local do programa Por vezes esse bloco precisa de ser usado em diferentes locais do programa: podem usar-se subrotinas que funcionam como pequenos programas dentro do programa principal as subrotinas são chamadas (call) a partir de qualquer local do programa principal, executam a sua função e retornam (ret) devolvendo o controlo ao programa principal torna-se necessário armazenar o local de onde a subrotina é chamada para que quando esta terminar o programa retome a execução a partir daí Ex: ao executar a instrução call subrot (subrot é o nome da subrotina), o programa armazena o endereço de <instrução C> ou <instrução F> que representam os endereços de retorno da subrotina e em seguida executa as instruções desta; a instrução ret faz o programa retomar a execução a partir do endereço que foi previamente armazenado. programa principal <instrução A> <instrução B> call subrot <instrução C> <instrução D> <instrução E> call subrot <instrução F> subrotina subrot: <instrução X> <instrução Y> <instrução Z> ret

38 3º exemplo: chamada a subrotina Programa Assembly org 100h Sub-rotinas Programa em código máquina call escreve ;chama subrotina mov ah, 40h ;escrita mov bx, 1 ;ecran mov cx, 1 ;nº caracteres mov dx, espaco ;string int 21h ;executa call escreve ;chama subrotina mov ah, 07h ;leitura int 21h ;executa mov ah, 4ch ;termina int 21h ;executa escreve: mov ah, 40h ;escrita mov bx, 1 ;ecran mov cx, 3 ;nº caracteres mov dx, msg ;string int 21h ;executa ret msg db "UBI" espaco db " " resultado

39 Execução dos programas Aula 5

40 Uso do stack (pilha) O stack é uma estrutura de dados que serve para armazenar valores de forma temporária. É constituído por uma zona reservada de memória, cujos endereços são referenciados através de um registo especial designado SP-stack pointer. SP topo do stack stack (address) O registo SP aponta para o próximo endereço livre, designado por topo do stack, o qual habitualmente vai diminuindo (descendo) à medida que a pilha vai contendo mais dados. Além de permitir armazenar variáveis o stack também é usado para armazenar o endereço de retorno das sub-rotinas.

41 Uso do stack Instruções de manipulação do stack (16 bit): - push <val> : insere um valor no topo do stack; <val> pode ser um valor imediato ou o conteúdo de um registo; - pop <cont> : retira o valor que está no topo do stack e coloca-o em <cont>, este pode ser uma variável ou um registo; Ex: 013D AX BX CX DX push ax (SP SP-2) pop cx (SP SP+2) 013D 013D AX BX CX DX SP topo do stack stack (address) SP topo do stack stack 3D 01 (address) SP topo do stack stack (address) byte byte byte

42 Uso do stack Sub-rotinas SP topo do stack stack SP address <inst. C> programa principal <instrução A> <instrução B> call subrot <instrução C> <instrução D> <instrução E> call subrot <instrução F> subrotina subrot: <instrução X> push ax <instrução Y> pop ax <instrução Z> ret SP SP address <inst. C> [ax] address <inst. C> SP P. Que sucede se esquecer a instrução pop ax?

43 Ciclo: FETCH DECODE - EXECUTE FETCH Obter próxima instrução da memória - a instrução é lida da memória e colocada nos registos do processador DECODE Descodificar a instrução - CPU verifica qual a instrução a executar, dentro do conjunto de instruções possíveis, designado por instruction set - cada processador tem o seu próprio instruction set - determina se são necessários dados para a instrução, nesse caso serão lidos da memória EXECUTE Executar a instrução - CPU executa a instrução - o resultado é armazenado nos registos e/ou transferido para a memória

44 CPU MEMÓRIA PERIFÉRICOS(Input/Output) CPU Execução das instruções Coordenação dos restantes dispositivos Memória Programas Dados - ROM - RAM - Discos - outros I/O (periféricos) Entrada de dados Saída resultados - ecran - impressora - teclado - portas (USB...) DB Data Bus CB Control Bus AB Address Bus Bus (barramento) : conjunto de linhas de comunicação que interligam os vários componentes de um sistema de computação. Principais características: largura(nº de bits), velocidade de transmissão(bps-bits por segundo) DB(Data Bus) caminho dos dados, bidireccional. (P IV: 64/128 bits externos, 32/64 internos; 3,2GB/s) CB(Control Bus) bidireccional, sinais de controlo. (ex: Read, Write) AB(Address Bus) unidireccional, sinais de endereço (P IV: 32 bits/4gb MEM, 36bits/64GB) 44

45 Endereçamento Como seleccionar um de entre vários dispositivos (ex: ler da memória ou de um periférico)? Através do mecanismo de endereçamento só o periférico endereçado fica activo O AB (Address Bus) é usado para enviar o endereço do dispositivo a seleccionar Ex: imaginemos um CPU capaz de aceder apenas a 4 dispositivos (2 registos, teclado, impressora) Address Bus A1 A0 Dispositivo endereçado(seleccionado) 0 0 Registo Impressora 1 0 Teclado 1 1 Registo 1 D in R/W S Célula de memória D Q C 0 D out Q 0 CPU 1 Q 1 Q 2 D in R/W Célula de memória D Q C 1 D out Q 3 S DB Data Bus A 1 A 0 CB Control Bus AB Address Bus

46 Métrica Binária Armazenamento/ Recuperação da Informação Aula 6

47 Métrica binária Agrupamentos de n bits bit = binary digit byte = binary term K=2 10 =1024 NOTA: a definição de word varia consoante a máquina usada. máquinas com registos de 16 bit, word=16 bit; máquinas com registos de 32 bit, word=32 bit Agrupamentos de bytes K=2 10 =1024

48 Métrica binária Correspondência de números em diversas bases nibble 1 byte = 2 nibble = 2 digitos hexadecimais ex: E4h =

49 Métrica Binária A norma IEC : Quantities and units Part 13: Information science and technology, publicada em 2008 define os seguintes prefixos binários: Consultar: Prefixes for binary multiples - Exemplo: 1 KByte = 10 3 Byte = 1000 Byte (Kilo Byte, decimal) 1 KiByte = 2 10 Byte = 1024 Byte (Kibi Byte, binário)

50 Armazenamento da Informação Texto Escrita para cada símbolo alfanumérico, sinal de pontuação, etc, é obtido o respectivo código da tabela ASCII, o qual é armazenado em memória (ficheiro) Leitura para cada código ASCII lido da memória (ficheiro), é obtido o respectivo símbolo alfanumérico o qual é apresentado no ecrã tabela ASCII h e l l o teclado setas a cheio (escrita no ficheiro): conversão caracteres ASCII hello ecrã setas a tracejado(leitura do ficheiro): conversão ASCII caracteres 68h 65h 6Ch 6Ch 6Fh ficheiro de texto Tabela ASCII de 8 bit 1 carácter = 1 byte

51 Valores numéricos (inteiros) Armazenamento da Informação Como é armazenado o valor decimal 741? conversão para binário (hexadecimal) E 2 (LSB) (MSB) 02E5h (2 byte) memória conjunto de bytes organizados sequencialmente armazenamento de conjuntos de n bytes dois modos possíveis: little endian : byte de menor peso primeiro (usado pela Intel, linguagem C, C#, etc) big endian : byte de maior peso primeiro (usado pelo Java) O termo endian tem origem no livro As viagens de Gulliver e refere-se à questão de qual dos lados os ovos devem ser quebrados.

52 Armazenamento da Informação Diferença entre armazenamento em modo texto (ASCII) ou em modo binário (hexadecimal) setas a cheio: tratamento de texto (cadeias de caracteres ASCII) os programas de processamento de texto (NotePad, Word,...) interpretam dados em código ASCII setas a tracejado: tratamento de valores numéricos em binário (inteiros)

53 Armazenamento da Informação Texto Tabela ASCII Exemplo: editor Notepad ficheiro TEXTO.txt Exemplo: editor hexadecimal MiTeC ficheiro TEXTO.txt

54 Armazenamento da Informação Valores numéricos: ficheiro de inteiros com o valor 741 C# using (BinaryWriter b = new BinaryWriter(File.Open("file.bin", FileMode.Create))) { b.write(741); } int 32 bits(4 bytes) com sinal, = E5h (4 byte) MSB LSB C# little-endian primeiro byte de menor peso MSB-Most Significant Byte LSB-Least Significant Byte

55 Armazenamento da Informação Valores numéricos: ficheiro de inteiros com o valor 741 Java FileOutputStream os = new FileOutputStream (new File ("teste.dat"), true); DataOutputStream dos = new DataOutputStream (os); dos.writeint(741); int 32 bits(4 bytes) com sinal, = E5h (4 byte) MSB LSB Java big-endian primeiro byte de maior peso

56 Armazenamento da Informação Ler com C# o ficheiro escrito em C# contendo o valor inteiro 741? C# using (BinaryReader b = new BinaryReader(File.Open("file.bin", FileMode.Open))) int v = b.readint32(); MessageBox.Show(v.ToString()); OK! Ler com C# o ficheiro escrito em Java contendo o valor inteiro 741? C# using (BinaryReader b = new BinaryReader(File.Open( teste.dat", FileMode.Open))) int v = b.readint32(); MessageBox.Show(v.ToString());???

57 Armazenamento da Informação Ler com um processador de texto o ficheiro escrito em C# contendo a string 741? ASCII OK! Ler com um processador de texto o ficheiro escrito em C# contendo o valor inteiro 741? ASCII???

58 Controlo de erros (detecção e correcção) Aula 7

59 Tratamento de erros Emissor / Receptor canal de comunicação Receptor / Emissor A transmissão de informação ao longo de um canal de comunicação pode sofrer erros: - transferência de dados entre registos dentro do CPU - entre o CPU e a MEM - nas entradas/saídas de dispositivos periféricos (teclado, impresssora) - em comunicações em rede (cabos Ethernet, fibra óptica) A existência de ruído pode provocar com que um bit mude de estado: 1 0 ou 0 1 ex: ou (nota: pode mudar mais de um bit...) O ruído (interferência) pode ter várias causas: interferência electromagnética, falha de energia, deficiência nos circuitos,... Abordagens Detecção de erros: detectar que ocorreu um erro em seguida a transmissão pode ser repetida Correcção de erros: detectar ocorrência do erro e efectuar a sua correcção (sem retransmissão)

60 Detecção de erros Princípio: adicionar bits extra a cada bloco de dados a transmitir de modo que quando o bloco é recebido os bits extra são verificados para constatar se ocorreu ou não um erro. Bit de paridade conta-se o nº de bits 1 do bloco a transmitir e acrescenta-se um bit adicional, tal que: paridade par (EVEN) nº total de bits 1 seja par paridade ímpar (ODD) nº total de bits 1 seja ímpar XOR = 1 quando há um nº ímpar de 1 s nas entradas

61 Detecção de erros Circuito gerador/detector do bit de paridade para palavras de 4 bits Se durante a transmissão um número ímpar de bits for alterado (incluindo o próprio bit de paridade), a paridade altera-se e o erro é detectado. Se o número de bits alterados for par, a paridade não sofre alteração e o erro não é detectado. Este circuito detecta erro num bit mas não indica qual o bit errado os dados devem ser descartados e retransmitidos novamente.

62 Detecção de erros O bit de paridade encontra-se muito associado às comunicações série, tal como nas portas COM Portas COM Data bits + Parity Windows > Control Panel > Device Manager Data Bits: 4, 5, 6, 7, 8 Parity: EVEN, ODD NONE nenhuma MARK sempre 1 SPACE sempre 0

63 Detecção e Correcção de erros bit de paridade permite detectar erros num certo grupo de bits; não permite corrigir o erro pois não se sabe qual o bit que o originou; Para detectar, identificar e corrigir o erro (em qual bit ou bits) terá de adicionar-se mais informação, ou seja, bits adicionais Códigos de correcção possibilitam recuperar o dado original a partir do código com erros; Consistem na inclusão de informação adicional que detecta situações inválidas mas que mantém a identidade do dado original;

64 Código de Hamming faz uso do conceito de bit de paridade, mas além da detecção de um erro, indica qual foi o bit no qual ele ocorreu, permitindo corrigir esse erro O código de paridade do código de Hamming é obtido a partir da palavra de dados, inserindo pontos de controle, denominados bits de paridade. Em cada palavra de dados, de comprimento n, são inseridos um número fixo k, de bits de paridade, ficando a palavra de código com um comprimento N = n + k, sendo: N = 2 K -1, n = N k, n = 2 k -1-k Ex: k = 3 bits de paridade, n = = 4 bits de dados, N=7 bits no total Nota: determinar k a partir de n 2 k k + n + 1

65 Código de Hamming Construção do código de Hamming 1) Numerar os bits a partir da esquerda posição do bit : 1, 2, 3, 4, 5, 6, 7, ) Todas as posições que correspondem a potências de dois são bits de paridade (p n ) 3) Todas as outras posições são os bits de dados (d n ) Regra para construção do código (até 15 bits, 5 de paridade) Posição do bit bits codificados bits de paridade p1 p2 d1 p4 d2 d3 d4 p8 d5 d6 d7 d8 d9 d10 d11 p16 d12 d13 d14 d15 p1 X X X X X X X X X X p2 X X X X X X X X X X p4 X X X X X X X X X p8 X X X X X X X X p16 X X X X X... cada bit de paridade é calculado a partir da função XOR entre os bits marcados na tabela na verificação, os bits de paridade codificam em binário a posição do bit errado se, p 1 = p 2 = p 4 = p 8 =... = 0 nenhum bit errado se, p n 0 a posição do bit errado é dada pelo código p 8 p 4 p 2 p 1 (ex: p 4 p 2 p 1 = 011 bit3[d1] errado)

66 Emissor: construção do código de Hamming Código de Hamming Exemplo : n = 4 bits de dados (d1,d2,d3,d4), k = 3 bits de paridade (p1,p2,p4), N = 7 bits total palavra a codificar: Posição do bit bits codificados bits de paridade p1 p2 d1 p4 d2 d3 d4 p1 X X X X p2 X X X X p4 X X X X p8 p16 bits de dados d1 d2 d3 d4 = 1011 Posição do bit bits codificados bits de paridade p1 p2 1 p p1 X X X X p2 X X X X p4 X X X X p8 p1 6 bits de paridade p1 bit3 + bit5 + bit7 = = 0 p2 bit3 + bit6 + bit7 = = 1 p4 bit5 + bit6 + bit7 = = 0 palavra original : 1011 palavra codificada : Posição do bit bits codificados bits de paridade p1 X X X X p2 X X X X p4 X X X X p8 p1 6

67 Receptor: verificação do código de Hamming Código de Hamming Exemplo1 : palavra recebida pelo canal = , conterá erros? Posição do bit bits codificados bits de paridade p1 0 p2 1 d1 1 p4 0 d2 0 d3 1 d4 1 p1 X X X X p2 X X X X p4 X X X X p8 p1 6 bits de paridade p1 bit1 + bit3 + bit5 + bit7 = p2 bit2 + bit3 + bit6 + bit7 = p4 bit4 + bit5 + bit6 + bit7 = nenhum bit errado, os dados são aceites bits de dados d1 d2 d3 d4 = 1011

68 Receptor: verificação do código de Hamming Código de Hamming Exemplo2 : palavra recebida pelo canal = , conterá erros? Posição do bit bits codificados bits de paridade p1 0 p2 1 d1 1 p4 0 d2 0 d3 0 d4 1 p1 X X X X p2 X X X X p4 X X X X p8 p1 6 bits de paridade p1 bit1 + bit3 + bit5 + bit7 = p2 bit2 + bit3 + bit6 + bit7 = p4 bit4 + bit5 + bit6 + bit7 = (=6) bit 6(d3) errado inverter bits de dados d1 d2 d3 d4 =

69 Código de Hamming Circuito gerador/detector do código de Hamming para palavras de 4 bits Este circuito detecta e corrige um erro em um bit assim não obriga a retransmissão

70 Avaliação do desempenho Aula 8

71 Avaliação do Desempenho CPU t CPU Memória t MEM I/O t I/O Clock DB Data Bus CB Control Bus AB Address Bus t CPU : tempo de CPU t MEM : tempo acesso memória t I/O : tempo acesso periféricos CPU ciclo : Fetch-Decode-Execute FETCH t 1 DECODE t 2 EXECUTE t 3 Tempo gasto pelo CPU t 1 busca da instrução t 2 descodificação t 3 execução t CPU = t 1 + t 2 + t 3 Tempo total para executar uma instrução : T = t CPU + t MEM + t I/O Como avaliar (e depois diminuir) T?

72 Avaliação do Desempenho Sinal de relógio (clock) : controla os tempos em que as instruções são executadas 1 0 flanco ascencente flanco descendente tempo[s] (rising edge) (falling edge) T = período(clock cycle) [s] : tempo que decorre entre dois acontecimentos iguais F = frequência(clock rate) [Hz] : nº de repetições de períodos por unidade de tempo F = 1 / T (frequência é o inverso do período), T = 1 / F (período é o inversa da frequência) T Unidade de Frequência : Hz (Hertz) (ex: rede eléctrica doméstica 50Hz)

73 Avaliação do Desempenho Sinal de relógio Em cada período T podem ser executadas um certo número (n) de instruções elementares t CPU = f (T clock = 1/F clock ) diminuir T (ou aumentar F) t CPU : melhora o desempenho T ou F : diminui o tempo para executar as instruções, podendo não ser possível de as executar pode obrigar a mais periodos para as executar pode obrigar a tornar as instruções mais eficientes (demorarem menos tempo) aumentar a frequência está condicionado por questões técnicas, como tempos de comutação das portas lógicas (passagem de 0 1 e 1 0), aumento da tª, etc Os fabricantes têm vindo a conseguir aumentar sucessivamente o valor de F: 1981 : IBM PC original MHz 1995 : Pentium MHz 2000 : AMD. 1 GHz 2002 : Pentium GHz (a partir daqui a evolução tem sido mais lenta)

74 Avaliação do Desempenho Métricas fracas para avaliação do desempenho F (frequência) : maior F não implica necessariamente melhor desempenho, pois um CPU com menor F clock pode ser mais eficiente que um com F clock mais elevada e portanto realizar mais operações em menos tempo. ex: CPU A : F=1GHz, 2 ciclos por instrução (média) T = 1/F = 1/10 9 = 10-9 s = 1ns t(instrução) = 2 * T = 2 * 1 = 2ns CPU B : F=1.5GHz, 3 ciclos por instrução (média) T = 1/F = 1/1.5*10 9 = 0.67*10-9 s = 0.67ns t(instrução) = 3 * 0.67 = 3 * 0.67 = 2.01ns CPU A é mais rápido que CPU B MIPS (Millions of Instructions Per Second) : normalmente é o tempo de execução de certas instruções (ex: NOP). No entanto os programas são constituídos por diversas outras instruções, pelo que devem ser usadas médias ponderadas. MFLOPS (Millions of Floating-Point Operations Per Second) : número máximo de instruções de vírgula flutuante (não inteiros) por segundo. No entanto, a maioria dos programas não faz uso intensivo destas instruções.

75 Avaliação do Desempenho Tempo de execução única medida completa e de confiança para avaliar o desempenho a máquina que executa o mesmo trabalho em menos tempo é a mais rápida Para um programa executando na máquina X DesempenhoX= 1 / Tempo execução X ( Tempo execução Desempenho ) Para duas máquinas X e Y DesempenhoX > DesempenhoY Tempo execução X < Tempo execução Y Se a máquina X é n vezes mais rápida que a máquina Y DesempenhoX / DesempenhoY = n Tempo execução X = Tempo execução Y / n DesempenhoX / DesempenhoY = Tempo execução Y / Tempo execução X = n Ex: máquina A Tempo execução A, para uma certa tarefa = 10s máquina B Tempo execução B, para mesma tarefa = 15s DesempenhoA / DesempenhoB = Tempo execução B / Tempo execução A = 15 / 10 = 1.5 máquina A é 1.5 vezes mais rápida que máquina B

76 Avaliação do Desempenho Tempo total para executar uma tarefa: T = t CPU + t MEM + t I/O vamos considerar apenas a fracção referente ao CPU ( t CPU ) t CPU = Tempo execução = tempo que o CPU leva para executar um programa = M(ciclos clock) * T clock (clock cycle) T = M(ciclos clock) / F clock (clock rate) F clock conhecida M =? (quantos ciclos de clock correspondem a um certo programa?) Programa N instruções no total cada instrução precisa de um certo valor médio de periodos de clock para ser executada CPI (Clocks Per Instruction) : nº médio ponderado de clocks para cada instrução M = N * CPI Tempo execução = N * CPI / F clock 3 factores condicionantes N : depende do programador e do compilador, quanto melhor programador/compilador menor N CPI : depende da arquitectura do processador, necessita de mais ou menos clocks por instrução F : depende do hardware, a electrónica permite uma frequência de relógio maior ou menor M

77 Avaliação do Desempenho Exemplo Dispomos de duas máquinas diferentes mas da mesma arquitectura (x86): CPU A : F A =500MHz, CPI A =1.2 CPU B : F B =800MHz, CPI B =2 clock da máquina A (F A ) < clock da máquina B (F B ) CPI A < CPI B a máquina A é mais eficiente que a máquina B (aproveita melhor o clock) Qual a máquina mais rápida a executar um determinado programa? Programa N instruções Tempo execução A = N * CPI A / F A = N * 1.2 / 500*10 6 Tempo execução B = N * CPI B / F B = N * 2 / 800*10 6 DesempenhoA / DesempenhoB = Tempo execução B / Tempo execução A = n Tempo execução B / Tempo execução A = N * 2 / 800*10 6 = 1.04 máquina A é mais rápida que B N * 1.2 / 500*10 6

78 Avaliação do Desempenho De que modo aperfeiçoamentos introduzidos na arquitectura do CPU melhoram o desempenho? Cada aperfeiçoamento introduzido vai ser responsável por melhorar apenas um aspecto do funcionamento do CPU ex: uma unidade de multiplicação por hardware acelera as multiplicações (e talvez as divisões) mas em nada afecta os acessos à memória; As preocupações com as melhorias devem centrar-se nos casos mais comuns (mais frequentes) tornando mais rápida (mais optimizada) a sua execução; Lei de Amdahl O ganho de desempenho que pode ser obtido melhorando uma determinada parte do sistema é limitado pela fração de tempo em que essa parte é utilizada durante a operação. Tempo antigo : tempo anterior à introdução de um aperfeiçoamento Tempo novo = Tempo melhorado + Tempo inalterado : tempo após a introdução de um aperfeiçoamento Tempo melhorado : tempo que foi afectado pelo aperfeiçoamento introduzido Tempo inalterado : tempo que não foi afectado pelo aperfeiçoamento introduzido

79 Avaliação do Desempenho Lei de Amdahl Aceleração global (speedup) = Desempenho novo / Desempenho antigo = Tempo antigo / Tempo novo = 1 ( 1 Fracção melhorada ) + Fracção melhorada Aceleração melhorada Tempo novo = Tempo antigo * ( 1 Fracção melhorada ) + Fracção melhorada Aceleração melhorada Aceleração global (speedup) : aceleração final do sistema (CPU) Desempenho antigo : desempenho anterior à introdução do aperfeiçoamento Desempenho novo : desempenho após a introdução do aperfeiçoamento Fracção melhorada : fracção de tempo em que o aperfeiçoamento é usado Aceleração melhorada : aceleração obtida quando o aperfeiçoamento é usado (seria a aceleração global se o aperfeiçoamento fosse usado o tempo todo)

80 Exemplo Avaliação do Desempenho Uma arquitectura não tem suporte hardware para multiplicações fazendo-as por software usando adições repetidas (ex: 3*2 = 2+2+2) Admitindo que: - uma multiplicação por software consome M=200 ciclos de relógio - uma multiplicação por hardware consome M=4 ciclos de relógio Calcule a aceleração produzida pela introdução de uma unidade de multiplicação por hardware: a) se um programa gasta 10% do seu tempo em multiplicações b) se um programa gasta 40% do seu tempo em multiplicações Resolução a) Aceleração melhorada = Tempo antigo / Tempo novo = 200 / 4 = 50 (aceleração da parte melhorada) Fracção melhorada = 10% = 0.1 Aceleração global = 1 = 1 = % ( 1 Fracção melhorada ) + Fracção melhorada (1-0.1) + 0.1/50 Aceleração melhorada b) Aceleração melhorada = Tempo antigo / Tempo novo = 200 / 4 = 50 (aceleração da parte melhorada) Fracção melhorada = 40% = 0.4 Aceleração global = 1 = 1 = % > 11% ( 1 Fracção melhorada ) + Fracção melhorada (1-0.4) + 0.4/50 Aceleração melhorada

81 Técnicas de melhoria do desempenho Aula 9

82 Estrutura dos Processadores (CPU) Dados Load Store Registos (memória) AX, BX,... Barramentos para comunicação com o exterior Endereços Unidade De Controlo Controlo Read, Write ALU Flags (zero, parity, carry...

83 Técnicas de melhoria do desempenho : unidade de controlo Unidade de controlo : responsável por obter e descodificar as instruções, além de gerar os sinais que indicam aos restantes blocos as acções a executar, em função das instruções do programa e do estado do processador (flags) Hardwired (por hardware): os diversos sinais de instrução (bits) controlo são gerados por circuitos lógicos (portas lógicas AND, OR, NOT, etc) segundo uma certa tabela de verdade e em função da instrução a executar alterações na arquitetura implicam alterações no hardware rápidas custo elevado usada em máquinas RISC Flags (bits estado) registos ULA memória Microcoded (microprogramado): existe uma tabela em memória (micromemória) interna ao processador, instrução (bits) que contém os sinais a gerar em função da instrução a executar (palavra de controlo) alterações na arquitetura apenas alteram o conteúdo da micromemória. mais lentas, pois dependem da rapidez da micromemória usada em máquinas CISC Flags (bits estado) registos ULA memória

84 Técnicas de melhoria do desempenho : CISC-RISC Inicialmente: computadores eram programados quase exclusivamente em linguagem Assembly (linguagem máquina) não havia linguagens de programação nem compiladores evoluídos memórias eram lentas e caras processadores incluiam o maior número de funcionalidades na expectativa de que os compiladores as iriam utilizar John Cocke (IBM, 1974), D. Patterson, descobriram que: a maior parte dos programas envolve poucas instruções, relativamente ao total de instruções disponíveis no processador Regra dos 80/20 : 20% das instruções fazem 80% do trabalho(um conjunto pequeno de instruções realiza a maior parte do trabalho) Instruções mais frequentes são as mais simples (ex: mov a,b) As instruções mais complexas pouco ou nunca eram geradas pelos compiladores Frequência das instruções mov: 33% salto: 20% aritméticas/logicas: 16% outras: 0.1% - 10% As instruções complexas complicavam toda a arquitectura, obrigando a diminuir a frequência do relógio (levando a que as instruções mais simples ficavam mais lentas) Objectivo: minimizar o tempo de execução do conjunto de instruções mais frequentes (20%) e mesmo substituir as restantes( 80%) por combinações mais rápidas daquelas, reduzindo e simplificando o total de instruções do CPU isto conduziu à filosofia RISC

85 Técnicas de melhoria do desempenho : CISC-RISC Principais arquiteturas de processadores CISC (Complex Instruction Set Computer) Grande número de instruções capazes de efectuar acções complexas, embora relativamente lentas, exigindo múltiplos ciclos de clock para serem executadas Muitos modos de acesso à memória (directo, indirecto, imediato,...) Instruções de tamanho variável de acordo com o modo de endereçamento Unidade de controlo baseada em Microcoded Exs: Intel 80x86, Motorola 68K RISC (Reduced Instruction Set Computer) Princípios : hardware mais simples e optimização do caso mais frequente Unidade de controlo baseada em Hardwired Conjunto reduzido de instruções simples e rápidas de executar Permitem uma maior frequência de relógio (clock) Poucos modos de acesso à memória (baseado em LOAD/STORE) Cada instrução CISC dá origem a várias instruções RISC Exs: MIPS(Microprocessor without Interlocking Pipe Stages ), microcontroladores PIC (Microhip), Motorola PowerPC (Performance Optimization With Enhanced RISC Performance Computing) Actualmente muitos processadores adoptam uma estrutura híbrida CISC/RISC (ex.pentium): instruções frequentes > RISC : hardwired instruções menos frequentes ---> CISC : microcoded Permitem um compromisso em termos de desempenho mantendo a compatibilidade com sistemas antigos

86 Técnicas de melhoria do desempenho : paralelismo Paralelismo A) nível das instruções : execução de várias instruções em paralelo para aumentar o nº de instruções por segundo B) nivel do processador : múltiplos CPUs trabalhando em conjunto A) nível das instruções FETCH t 1 DECODE t 2 EXECUTE t 3 Executando apenas uma instrução de cada vez, só um bloco trabalha em cada instante mau aproveitamento! Interessa fazer como numa linha de fabrico: cada operário executa uma operação passando o trabalho ao operário seguinte e iniciando de imediato outra operação

87 Técnicas de melhoria do desempenho : pipeline Pipeline: permite o processamento simultâneo de múltiplas instruções, cada uma em estágios de processamento diferentes: Pentium: pipeline de 5 estágios P IV: pipeline de 20 estágios busca descodifica obter dados executar escrever nos registos FETCH S1 DECODE1 S2 DECODE2 S3 EXECUTE S4 WRITE BACK S5 S1: S2: S3: S4: S5: Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 5 Inst. 1 Inst. 2 Inst. 3 Inst. 4 Inst. 1 Inst. 2 Inst. 3 Inst. 1 Inst. 2 Inst. 1 Sem pipeline 1 instrução 5*T = 5*2ns = 10ns = 10*10-9 = 10-8 s F = 1/10-8 = 10 8 =100*10 6 =100 MIPS CPI = 5 Com pipeline (cheio) 1 instrução a cada T = 2ns = 2*10-9 s F = 1/2*10-9 =500 MIPS (5 vezes mais) CPI = 1 (cada instrução demora à mesma 5*T) tempo T = 2 ns pipeline cheio

88 Técnicas de melhoria do desempenho : estruturas superescalares Superescalar: o hardware permite extrair paralelismo ao nível das instruções em programas sequenciais Pipeline duplo: duas instruções executadas de uma cada vez MEM FETCH S1 DECODE1 S2 DECODE1 S2 Problemas do pipeline (hazards) DECODE2 S3 DECODE2 S3 EXECUTE S4 EXECUTE S4 WRITE BACK S5 WRITE BACK S5 pipeline u qualquer instrução pipeline v instruções de inteiros 1) Dependência de dados : quando uma instrução precisa de dados de outra instrução tem de parar à espera dessa outra: pipeline u mul bl ; ax = ah * bl pipeline v add [var], ax ; [var] = [var] + ax : tem de esperar que o mul termine antes de poder continuar 2) Dependência de recursos : duas instruções acessam à mesma posição de memória ou precisam de usar o mesmo registo: pipeline u mul bl ; ax = ah * bl pipeline v sub ah, 2 ; ah = ah 2 : mais rápida, se terminar primeiro afecta a instrução mul 3) Instruções de salto : não sequencialidade - uma instrução de salto pode invalidar as outras instruções que estão no pipeline pipeline u jz label se ocorrer salto para label, a instrução sub será descartada e substituida pipeline v sub ax, 2 pelo add label: add ax, 2

89 Técnicas de melhoria do desempenho Execução fora de ordem (out-of-order) : as instruções são executadas por ordem diferente daquela em que aparecem no programa, desde que o resultado não seja alterado exige um hardware complexo. ex: pipeline u div al ;lenta reordenar pipeline u mov bl, 2 pipeline v mov bl, 2 ;rápida (instruções pipeline v mov bh, 3 mov bh, 3 ;rápida independentes) div al Execução especulativa : as instruções são executadas em sequência mesmo que não venham a ser usadas por acção de um desvio. ex: pipeline u jz label o CPU aposta na execução da instrução mov al,2 embora por pipeline v mov al, 2 acção do desvio dado por jz label essa instrução possa ter de ser label: mov al, 3 descartada e substituída por mov al,3 (CPUs implementam mecanismos de previsão se o desvio vai acontecer ou não) Técnicas de compilação : os compiladores também são responsáveis por explorar as melhores características do paralelismo do hardware. ex: desfazer ciclos aumentar o nº de operações independentes dentro de uma iteração C for (i=0; i<100; i++) ciclo executa 100 vezes a[i] = b[i] + c[i]; pipeline u : só um pipeline é usado for (i=0; i<100; i+=2) ciclo executa 50 vezes a[i] = b[i] + c[i]; pipeline u a[i+1] = b[i+1] + c[i]+1; pipeline v

90 Aula 9 Arduino

91 Arduino : carta controladora programável Arduino plataforma de prototipagem de código aberto (hardware e software) criada em 2005 pelo italiano Massimo Banzi. É destinado a artistas, designers, hobbistas, professores e qualquer pessoa interessada em criar objetos ou ambientes interativos. Objetivo principal : criar uma plataforma hardware de baixo custo apoiada por um sistema de programação de código aberto, para possibilitar o desenvolvimento de protótipos de baixo custo. Através de sinais provenientes de sensores, o Arduino pode detectar o estado do ambiente que o rodeia e após processamento desses sinais é capaz de controlar indicadores luminosos ou motores e uma diversidade de outros atuadores. Existe uma enorme comunidade de utilizadores, com inúmeras propostas de ideias e projectos.

92 Arduino : modelo UNO USB ligação ao PC Reset LED L LEDs TX+RX 14 entradas/saídas digitais LED ON Power Supply 7-12V Microcontrolador ATmega328 Características Principais Baixo custo ( 25 ) alimentação 6 entradas analógicas Microcontrolador: ATmega328, 16MHz Memória: Flash(código)=32KB, SRAM(variáveis)=2KB, EEPROM=1KB Tensão de alimentação: USB ou fonte externa Entradas/saídas digitais: 14, entradas analógicas: 6 Ligação ao PC: USB Comunicaões: UART & I 2 C Conector de expansão Diversos módulos externos (Shields): controlo motores, comunicações s/fio, Existem diversas variantes: Due, Uno, Duemilenove, Mega, ADK, Lillypad, Nano,... Existem clones com funções melhoradas (ex: chipkit) Fornecedores nacionais: PT Robotics( Aliatron(

93 Arduino : carta controladora programável Depois de programado pode funcionar autonomamente ou ligado a um sistema externo (PC) entradas (sensores) alimentação saídas (actuadores) Ambiente de desenvolvimento(java): ling. tipo C/C++, gratuito, muitas bibliotecas existentes: Ethernet, LCD, DateTime, KIT disponível no LTC: Arduino Physical Computing Kit IDE:

94 Arduino - Variantes Chipkit Uno Due Mini

95 Arduino - Variantes Arduino Lilypad: versão para aplicação no vestuário

96 Arduino Shields (ampliam as funções da placa base) GSM Motor GPS WiFi LCD+keyboard Ethernet

97 Arduino - Variantes Plataforma de e-health: Kit para Arduino (e Raspberry Pi)

98 Arduino alimentação eléctrica pilha via cabo USB fonte de alimentação (power supply)

99 Arduino - ligações

100 Arduino - manipulação

101 Arduino - configuração Porta para comunicação Arduino-PC Selecção do modelo da placa Arduino

102 Arduino - programação Programa para Arduino = SKETCH Estrutura de um sketch <declarações> : declaração de constantes, variáveis, tipos, etc (OPCIONAL) void setup ( ) { <codigo> } : <codigo> é executado uma só vez; serve principalmente para efectuar inicializações void loop ( ) { <codigo> } : após a execução de setup, <codigo> é executado de modo contínuo (em ciclo) até que a alimentação seja desligada (ou reset). Comentários //linha de comentário /* texto de comentário */

103 Arduino IDE(Integrated Development Environment ) menu botões código estado notificações Ver:

104 Arduino utilização (2) carregar código (verificar) (1) escrever código (4) Led L pisca segundo o código do sketch Sketch = Blink (Led L a piscar) (3) TX/RX cintilam

105 Arduino : projectos diversos Electronic Piano Internet controlled Arduino car

106 Arduino : projectos diversos LilyPad Example: LED Biking Jacket

107 Arduino : projectos diversos T-shirt modded to let you know when you have new s

108 Arduino : resumo de comandos (cheat-sheet) arduino-cheat-sheet (2016)

109 Arduino : links úteis Site oficial Arduino : Comandos da linguagem Arduino: Simuladores 123D Circuits.io : Virtual Breadboard Fritzing - para desenhar esquemas elétricos:

110 Aula 10 Microcontroladores Hierarquia de Memória

111 Microprocessadores vs Microcontroladores

112 Microprocessadores - Arquitectura de Princeton (Von Neuman) instruções e dados compartilham a mesma unidade física de memoria CISC Complex Instruction Set Computer A vantagem é a simplicidade de acesso à memória - possui um barramento único para aceder à memória (endereços, dados e controlo) O grande inconveniente é o facto da memória do programa e dos dados ser comum, pois impede que se possa aceder ao programa e aos dados simultaneamente e muitas vezes o tamanho dos dados é diferente do tamanho das instruções Memória CPU Programa + Dados I/O Bus de Dados Bus de Controlo Bus de Endereços Utilização genérica

113 Microcontroladores - Arquitectura de Harvard instruções e dados são armazenados em memórias diferentes RISC Reduced Instruction Set Computer vantagens: instruções mais rápidas instruções e dados podem ser acedidos simultaneamente aumento do desempenho! Bus de Códigos Bus de Dados CPU Programa Bus de Endereços Bus de Endereços Dados Utilização específica

114 Microprocessadores Sistema microprocessador de propósito geral... CPU para computadores de propósito geral RAM-ROM, I/O, Portas, Timers, A/D & D/A... são exteriores ao CPU exemplo:intel x86(pentium), Motorola 680x0 Data Bus Diversos chips na motherboard CPU P de propósito geral Control Bus RAM ROM I/O Port Timer Serial Port Address Bus

115 Microcontroladores Sistema microcontrolador de uso específico... um computador em um único chip (!) RAM-ROM, I/O ports, A/D & D/A...etc. embutidos no chip exemplos:motorola 6811, Intel 8051, Zilog Z8, PICs, AVRs, CPU I/O Port RAM ROM Timer Serial Port Chip único O microcontrolador integra num único componente os três elementos principais da arquitectura de um computador: CPU, memória e I/O

116 Microcontroladores podem ser vistos como dispositivos de propósito(objectivo) específico usados em tarefas simples sem grandes requisitos de processamento, a nível de rapidez e de tipo de instruções integram num único circuito integrado (CI - chip): processador; memória; portas de I/O; contadores (contam impulsos); timers (temporizadores, contam tempo); conversores A/D e D/A tornam-se assim mais baratos e compactos que os circuitos com microprocessador e outros integrados associados (memória, controladores, etc)

117 Microprocessadores vs. Microcontroladores Microprocessador CPU => stand-alone RAM, ROM, I/O, timers... separados Microcontrolador CPU, RAM, ROM, I/O, timer... estão integrados em um só chip projectista pode decidir a quantidade de ROM, RAM e ports de I/O; quantidade fixa de elementos on-chip (ROM, RAM, I/O ports) expansível versatilidade uso geral para aplicações onde custo, potência e espaço são factores críticos; uso específico

118 Microcontroladores : diagrama de blocos

119 Microcontroladores - exemplos 8051 (INTEL) 8 bits um dos mais utilizados na prática conjunto reduzido de instruções (RISC) usado numa grande diversidade de equipamentos (ex:máquinas de costura) PIC (Microchip Technology - melhor desempenho possui um conjunto de instruções e funções mais elaborados baratos (há versões que custam menos de 1 ) a Microchip fabrica uma família de processadores de 8, 16, 24 e 32 bits fáceis de utilizar: a nível de programação a nível de integração com outros componentes electrónicos

120 ARDUINO Microcontroladores microcontrolador ATMEL ATMEGA328 : dispositivo de 8 bits da família AVR com arquitetura RISC avançada e encapsulamento DIP KB de Flash (mas 512 Bytes são utilizados pro bootloader), 2 KB de RAM e 1 KB de EEPROM Portas I 2 C, série, I/O digital e analógico, A/D e D/A Clock de 16 MHz (máx=20mhz) ATMEL ATMEGA328

121 Processadores Digitais de Sinais (DSPs) diferem dos microprocessadores na arquitetura de hardware, software e no conjunto de instruções, o qual é optimizado para o tratamento digital de sinais são empregues em aplicações que exigem processamento de sinais em tempo real Usos: telecomunicações (filtros, compressão, multiplexação e cancelamento de eco); processamento de áudio (gravação em estúdio, sintetizadores, mixers, filtros e reconhecimento de voz); processamento de imagem (principalmente na área médica); instrumentação e controlo (precisão das medidas e controle industrial).

122 Sistemas embebidos/embutidos (embedded systems) sistema embebido significa que o processador está embutido na aplicação; um produto embebido utiliza um microprocessador ou microcontrolador (ou DSP) para fazer uma ou poucas tarefas dedicadas; existe somente uma aplicação de software que normalmente está gravada em ROM (firmware); normalmente existe a interação com o meio ambiente ou com o operador; exemplos: impressora, teclado, consola jogos, telemóvel, modem microprocessador memória (RAM/ROM) sistema embebido modem ADSL

123 Memória : Tipos Internas: construídas em torno de circuitos integrados Externas: construídas em torno de sistemas magnéticos ou ópticos (discos, DVDs)

124 Memória Interna Memórias internas dois grandes grupos : RAMs e ROMs RAM (Random-Access Memory) O nome é pouco correcto significa que o tempo de acesso é igual para cada posição de memória Podem ser lidas e escritas um elevado número de vezes Voláteis a informação perde-se quando se deixa de fornecer energia eléctrica ROM(Read Only Memory) Também é RAM pois o tempo de acesso é igual para cada posição de memória Podem ser programadas (uma ou mais vezes) e normalmente são usadas apenas para leitura Existem variantes que podem ser usadas para leitura/escrita Não-voláteis a informação continua armazenada quando se deixa de fornecer energia eléctrica Usadas na BIOS e para guardar configurações do utilizador

125 ROM & RAM ROM RAM Janela para desprogramar Contactos eléctricos SO-DIMM usadas em portáteis (small outline dual in-line memory module)

126 Memória RAM : SRAM SRAM (Static RAM) Baseada em células de memória do tipo flip-flop Rápidas tempos de acesso baixos para leitura e para escrita Caras Utilizadas tipicamente como memórias cache (associadas ao processador) Célula de memória D in D Q D out R/W C S D in bit de entrada R/W sinal de Read/Write (0=read, 1=write) S Strobe (habilita/desabilita a acção de read/write) D out bit de saída

127 Memória RAM : DRAM Dinâmicas DRAM (Dynamic RAM) Células de memória: Pares transistor-condensador, que conseguem manter o nível lógico armazenado durante curtos espaços de tempo Necessitam de ciclos de refrescamento periódicos para reposição dos níveis lógicos nos condensadores mais lentas que as SRAMs Maior capacidade de armazenamento a menor custo Utilizadas como memória principal de um computador B Valor a escrever/ler S Transistor Selecção da célula Condensador Célula de memória

128 RAM : arquitectura Organização e capacidade de uma RAM (SRAM/DRAM) palavra = m bits n linhas de endereço Capacidade = 2 n endereços ou palavras de m bits (2 n X m) controlo p=2 n

129 Memória Unidades de medida bit = 0,1 = 2 0 byte = 8 bits = 2 3 (0-7) { } KB (Kilobyte) = 1024 bytes = 2 10 (0 3FFh) { } 32Kb = bytes = 2 15 (0 7FFFh) 64Kb = bytes = 2 16 (0 FFFFh) 256Kb = bytes = 2 18 (0 3FFFFh) MB (Megabyte) = 1024 KB = 2 20 (0 FFFFFh) GB (Gygabyte) = 1024 MB = 2 30 (0 3FFFFFFFh) 4GB = 4086 MB = 2 32 (0-FFFFFFFFh) Pentium 4

130 DDR-SDRAM(Double Data Rate SDRAM) & DDR-SDRAM(Double Data Rate SDRAM) SDR SDRAM (Single Data Rate - Synchronous DRAM) trabalham de forma sincronizada com o processador, evitando problemas de atraso. Módulo DIMM (Double In-Line Memory Module) DDR SDRAM : transferem dois dados por impulso de clock conseguem obter o dobro do desempenho das SDR-SDRAM para o mesmo clock (Ex: DDR a 100 MHz equivale a SDR a trabalhar a 200 MHz) Módulo DIMM (Double In-Line Memory Module)

131 Hiato Processador-Memória O desempenho dos micro-processadores tem vindo a aumentar a uma taxa de cerca de 60% / ano (desde 1986). O desempenho das memórias tem vindo a aumentar a uma taxa de perto de 10% / ano (diminuição do tempo de acesso) DRAM: tempo de acesso ronda os ns CPU: f CPU = GHz => Tcc = ns The STREAM benchmark The Processor-Memory bottleneck: Problems and Solutions. ; Nihar R. Mahapatra and Balakrishna Venkatrao, ACM ( The Memory Gap and the Future of High Performance Memories ; Maurice V.Wilkes, ACM (

132 Hierarquia de Memória Como manter o processador alimentado com dados e instruções? Técnica: dotar a máquina de vários níveis de memória, com diferentes propriedades, cada nível contêm uma cópia do código e dados mais usados em cada instante. Distância CPU Capacidade CPU registos (SRAM) Cache SRAM Velocidade Preço SRAM Static RAM Extremamente rápida e cara Memória Central DRAM DRAM Dynamic RAM Mais lenta e barata Discos Discos magnéticos, ópticos Lentos, baratos (por bit) Os dados contidos num nível mais próximo do processador são sempre um sub-conjunto dos dados contidos no nível anterior - o nível mais baixo contem a totalidade dos dados.

133 Cache : princípio da localidade Localidade Temporal um elemento de memória acedido pelo CPU será provavelmente acedido em breve; ex: dentro de ciclos, instruções e variáveis usadas como contadores de ciclos, são acedidas repetidamente em curtos intervalos de tempo. Acessos: 1ª vez que um elemento de memória é acedido deve ser lido do nível mais baixo (por exemplo, da memória central). 2ª vez que é acedido existem grandes hipóteses que se encontre na cache, evitando-se o tempo de leitura da memória central. Ideia: Manter na cache os últimos endereços acedidos. Localidade Espacial se um elemento de memória é acedido pelo CPU, então elementos com endereços próximos serão, com grande probabilidade, acedidos num futuro próximo. ex: as instruções são acedidas em sequência, assim como, na maior parte dos programas os elementos dos arrays. Acessos: 1ª vez que um elemento de memória é acedido, deve ser lido do nível mais baixo (por exemplo, memória central) não apenas esse elemento, mas sim um bloco de elementos com endereços na sua vizinhança. Se o processador, nos próximos ciclos, aceder a um endereço próximo (ex.: próxima instrução ou próximo elemento de um array) aumenta a probabilidade de esta estar na cache. Ideia: carregar para a cache um conjunto de posições contíguas ao último endereço acedido.

134 Cache Linha a cache está dividida em linhas. Cada linha tem o seu endereço (índice) e tem a capacidade de um bloco Bloco Quantidade de informação que é transferida de cada vez da memória central para a cache. Hit Diz-se que ocorreu um hit quando o elemento de memória acedido pelo CPU se encontra na cache. Hit time Tempo necessário para aceder à cache, incluindo o tempo necessário para determinar se o elemento a que o CPU está a aceder está ou não na cache. Hit rate Percentagem de hits ocorridos relativamente ao total de acessos à memória Cache Miss Diz-se que ocorreu um miss quando o elemento de memória acedido pelo CPU não se encontra na cache, sendo necessário lê-lo da memória central. Miss penalty Tempo necessário para carregar um bloco da memória central para a cache quando ocorre um miss > Hit time Miss rate Percentagem de misses ocorridos relativamente ao total de acessos à memória. Miss rate = (1 hit rate)

135 Cache: níveis L1 dentro do CPU : pequenas dimensões L2 fora do CPU : maiores dimensões

136 Memórias ROM ROM - Read-Only Memory Programadas pelo fabricante mediante especificação fornecida pelo utilizador Conteúdo inalterável só permite leitura da informação armazenada Utilizações: Guardar informação necessária ao arranque de sistemas Tabelas de conversão de códigos (e.g. binário natural -> BCD) Tabelas de operações aritméticas (e.g. logaritmos, divisões) k linhas de endereço Sinais de controlo 2 k x n ROM n linhas de dados de saída ROM de 2 K palavras de n bits

137 Memórias ROM PROM - Programmable Read-Only Memory Permitem uma única programação o utilizador especifica o conteúdo da ROM A programação é geralmente feita através de rebentamento de fusíveis nas ligações entre as linhas de endereços descodificados e as linhas de saída Uma vez rebentados os fusíveis, as ligações são quebradas permanentemente EPROM - Erasable Programmable Read-Only Memory Permitem múltiplas programações A reprogramação é feita através de impulsos eléctricos Apagamento : submete-se a EPROM a radiação ultra-violeta. Custo mais elevado que uma ROM, mas maior flexibilidade Pouco usadas, uma vez que actualmente há alternativas melhores

138 Memórias ROM EEPROM - Electrically Erasable Programmable Read-Only Memory Idênticas à EPROM, mas o apagamento é através de impulsos eléctricos Flexíveis : reúnem as funcionalidade de uma RAM e uma ROM simultaneamente Comparando com uma RAM: Operações de escrita muito mais lentas (devido às operações de apagar e reprogramar) As operações de leitura podem ser da mesma ordem de grandeza da escrita FLASH EEPROM Variantes das EEPROM, habitualmente utilizadas em electrónica de consumo Exemplos: cartões de memória e pen-disks Incluem toda a lógica necessária para reprogramação, sendo muito mais rápida do que numa EEPROM convencional Operações de escrita continuam a ser muito mais lentas do que as de leitura O tempo de vida dos dados armazenados é superior a 10 anos, e pode ser reprogramada milhões de vezes - suficiente para as aplicações a que se destinam

139 RAM Tipos de RAM e ROM (resumo) SRAM - estática (baseada em FFs) DRAM (Dynamic RAM) dinâmica (baseada em condensadores) SDRAM (Synchronous DRAM) : síncronas com o relógio de sistema DDR-SDRAM (Double Data Rate SDRAM) Reagem a ambos os flancos do sinal de relógio Muito utilizadas em PCs : evolução - DDR (2000) DDR-2 (2003) DDR-3 (2007) ROM ROM programadas de fábrica não podem ser reprogramadas PROM(Programable ROM) devido ao seu modo de fabrico apenas pode ser programada uma única vez EPROM(Erasable and Programable ROM) podem ser apagadas e reprogramadas as vez que forem necessárias (apagamento luz ultra-violeta). EEPROM(Electrical EPROM) memórias que podem ser reprogramadas electronicamente

140 Memória Externa Dois grandes grupos: discos magnéticos: baseados na utilização do magnetismo discos ópticos: baseados na utilização da luz

141 Discos Magnéticos - Baseiam-se nas propriedades magnéticas de determinados materiais - Flexíveis: fitas e discos (disketes) em desuso - Rígidos (HD - Hard Disk) dispositivo de armazenamento mais usado nos computadores. Permitem armazenar ficheiros de programas e de dados. RAMAC 305 primeiro disco rígido construído pela IBM em 1957 formado por 50 discos de 24 polegadas(61cm) de diâmetro capacidade total de 5MB uma tonelada de peso Em 1973 a IBM lançou o modelo 3340 "Winchester dois pratos de 30 megabytes e tempo de acesso de 30ms

142 Dispositivos magnéticos

143 Discos Magnéticos Dentro do disco rígido, os dados são gravados em discos magnéticos de dupla face, chamados pratos (platters). O nome "disco rígido" vem do facto de os discos internos serem extremamente rígidos. Para ler e gravar dados no disco, são usadas cabeças de leitura eletromagnéticas (heads) que são presas a um braço móvel (arm), o que permite o seu acesso a todo o disco. O braço de leitura é uma peça triangular, feita de liga de alumínio, para que seja ao mesmo tempo leve e resistente. Cada disco utiliza duas cabeças leitura/escrita, uma para cada face. O mecanismo que movimenta o braço de leitura é chamado actuador (actuator).

144 Discos Magnéticos Forma de organização: num hard disk a informação é armazenada em sectores que são zonas em forma de pie em que se divide o disco. Um hard disk está igualmente dividido por circulos concêntricos, designados por pistas (track). A informação pode ser encontrada sempre que se souber o sector e a respectiva track.

145 A cabeça de leitura /gravação paira alguns milionésimos de polegada acima da lâmina do disco. Se a cabeça tocar a lâmina, haverá um crash e os dados serão destruídos. Dados podem ser destruídos se a cabeça entrar em contato com uma mínima matéria estranha na superfície do disco. Discos Magnéticos Braço de leitura de um HD As duas cabeças de leitura pressionam-se mutuamente, mas quando os discos giram em alta rotação, forma-se uma espécie de colchão de ar (efeito de asa de avião), que afasta as cabeças, fazendo com que elas não toquem nos discos. Cabeça de leitura "flutuando" sobre o disco em movimento

146 Discos Magnéticos Motor de rotação: os discos magnéticos são montados directamente sobre o eixo do motor de rotação, sem o uso de correias ou qualquer outro mecanismo. Este mecanismo simples permite que os discos girem a grande velocidade. Os HD são montados e selados num ambiente livre de partículas (salas limpas) Os HD não são hermeticamente fechados, existindo um orifício para entrada/saída de ar, destinado a manter a pressão interna do HD igual à do ambiente, independentemente da altitude de utilização. Esse orifício é protegido por um filtro, que impede a entrada de partículas de poeira.

147 Discos Magnéticos Placa controladora: interface com a motherboard (placa principal) controla a rotação do motor controla o movimento das cabeças de leitura, de forma que elas leiam/escrevam os sectores correctos.

148 Discos Magnéticos: interfaces Os HDs são conectados ao computador por meio de interfaces capazes de transmitir os dados entre um e outro de maneira segura e eficiente. Há várias tecnologias para isso, sendo as mais comuns os padrões IDE, SCSI e, mais recentemente, SATA. IDE/ATA (Integrated Drive Electronics / Advanced Technology Attachment) - como funciona em modo paralelo é também conhecida por Parallel ATA (PATA) Padrão antigo, apareceu por volta de 1986 com os processadores 386 Disco, conector na motherboard e cabo IDE (40 pinos)

149 Discos Magnéticos: interfaces SCSI SCSI (Small Computer System Interface): trata-se de uma tecnologia criada para acelerar a taxa de transferência de dados entre dispositivos de um computador. Disco rígido com tecnologia SCSI Conector SCSI na motherboard Cabo SCSI

150 Discos Magnéticos: interfaces SATA - Serial ATA Disco rígido SATA Ao invés das interfaces anteriores que funcionam em modo paralelo, os discos rígidos SATA transferem os dados em modo série. Isto traz como vantagens maior rapidez na transferência de dados, possibilidade de remover ou acrescentar dispositivos do tipo hot-swap (enquanto está ligado) e utilização de cabos mais finos. Motherboard 1 : IDE 2 : SATA Cabos IDE e SATA

151 Dispositivos ópticos CD(Compact Disc) 120 mm Label: etiqueta colada Camada protectora : acrilico/polycarbonato Camada reflectiva : aluminio Camada substrato : polycarbonato visto de cima λ= 780 nm Foco 1μm espiral começa perto do orifício central faz revoluções ao redor do disco se fosse desenrolada mediria 5,6 km

152 Dispositivos ópticos CD(Compact Disc) PIT LAND LAND reflecte mais luz que PIT Uma mudança LAND/PIT ou PIT/LAND corresponde a 1 ; caso contrário é 0 Os PIT/LAND devem passar sob o laser com velocidade linear constante. Assim, a rotação do CD deve ser continuamente reduzida à medida que o cabeça de leitura se move da parte interna para a parte externa do CD. Na parte interna, a taxa é de 530 rpm para conseguir a taxa de reprodução de 120 cm/s. Na parte mais externa, deve cair para 200 rpm para dar a mesma taxa de reprodução.

153 Microscópio electrónico: usa um feixe de electrões para visualizar a estrutura dos materiais COUBI (Centro de Óptica da UBI): observação e registo de materiais sólidos a vários aumentos ( x máx.) com uma resolução até 40 Å e tensão de aceleração de kv. [1 Å (angstron = m) corresponde a uma distância 10 biliões de vezes menor que 1 metro; um átomo de carbono tem 1 Å de diâmetro ]

154 CD-ROM virgem (ampliação 5000x)

155 CD-ROM gravado original (ampliação 5000x)

156 CD-ROM gravado em leitor/gravador (ampliação 9000x)

157 Dispositivos ópticos : CD-R(Compact Disc Recordable) Nos CD-R as diferentes refletividades dos LAND/PIT são obtidas adicionando-se uma camada de corante entre o policarbonato e a superfície refletiva, a qual é queimada pelo laser durante o processo de gravação. Inicialmente, a camada de corante é transparente o que permite que a luz do laser a atravesse e seja refletida pela camada refletiva. Ao gravar, o laser CD-R é ligado em alta potência (8 a 16 mw). Quando o feixe atinge o corante, aquece-o e rompe a ligação química. Essa alteração da estrutura molecular cria um ponto escuro. Quando o CD-R é lido (a 0,5 mw), o fotodetector vê a diferença entre os pontos escuros onde o corante foi atingido e as áreas transparentes onde o disco está intacto. Essa diferença é interpretada como a diferença entre LAND/PIT.

158 Dispositivos ópticos : CD-RW(Compact Disc ReWritable) Camada de gravação (material de mudança de fase): usa-se uma liga de prata, índio, antimônio e telúrio(ou selénio). Essa liga tem dois estados estáveis: cristalino e amorfo, com diferentes reflectividades, em função da temperatura. O laser pode operar em 3 níveis de potência: Em alta potência(16mw) - fusão e vitrificação amorfa : o laser funde a liga fazendo-a passar do estado cristalino de alta refletividade para o estado amorfo de baixa refletividade para representar a depressão (PIT). Em potência média(8mw) - cristalização: a liga funde e volta novamente ao seu estado natural cristalino para se tornar novamente um plano (LAND). Em baixa potência(1mw) - leitura : laser usado para leitura, sem ocorrer nenhuma transição de fase.

159 Dispositivos ópticos : DVD DVD Digital Versatile Disk (antes Digital VideoDisk ) Usam o mesmo princípio dos CDs, com discos de policarbonato de 120 mm moldados por injeção que contêm depressões(pit) e planos(land) que são iluminados por um diodo laser e lidos por um fotodetector. Principais diferenças: PITs menores ( 0,4 micron em vez de 0,8 micron em CDs Espiral mais apertada (0,74 micron entre pistas contra 1,6 micron em CDs) Laser vermelho de 0,65μm versus 0,78μm para CDs Capacidade 7 vezes a do CD, passando para 4,7 GB.

160 Dispositivos ópticos : DVD Para aumentar a capacidade podem apresentar duas camadas(reflectoras) e duas faces 1 face/1camada =4,7 GB 1 face/2 camadas=9,4 GB 2 faces/1 camada=8,5 GB 2 faces/2camadas =17 GB A tecnologia de dupla camada apresenta uma camada refletiva embaixo, coberta por uma camada semi-refletiva. Dependendo de onde o laser é focado ele se reflete de uma camada ou outra. Os discos de dupla face são fabricados colando dois discos de uma face de 0,6 mm. Disco de uma face de 0.6 mm Disco de uma face de 0.6 mm Camada semi-refletiva Refletor de alumínio Refletor de alumínio Camada semi-refletiva

161 Dispositivos ópticos : BLU-RAY (BD = Blu-ray Disc) Usa um laser azul com comprimento de onda mais curto do que o laser vermelho, o que permite um foco mais preciso e portanto depressões(pit) e planos(land) menores. Discos Blu-Ray de uma face contêm cerca de 25 GB de dados; os de dupla face, 50 GB. CD-ROM=650 MB DVD=4,7 GB BLUE-RAY=25 GB

Arquitetura de Computadores II

Arquitetura de Computadores II Aula 1 Introdução Arquitetura de Computadores II Recuando 50 anos... Computar = contar, avaliar, somar 1º tipo de aplicação cálculos matemáticos para fins militares Modelo do computador? Homem: resolução

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Aula 1 Introdução Arquitetura de Computadores II Recuando 50 anos... Computar = contar, avaliar, somar 1º tipo de aplicação cálculos matemáticos para fins militares Modelo do computador? Homem: resolução

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

Conjunto de Instruções e Modelos de Arquiteturas

Conjunto de Instruções e Modelos de Arquiteturas Departamento de Engenharia Elétrica e de Computação EESC-USP SEL-0415 Introdução à Organização de Computadores Conjunto de Instruções e Modelos de Arquiteturas Aula 7 Prof. Marcelo Andrade da Costa Vieira

Leia mais

Introdução à Organização de Computadores. Aula 8

Introdução à Organização de Computadores. Aula 8 SEL-0415 Introdução à Organização de Computadores Set de Instruções Modelos de Arquiteturas Aula 8 Prof. Dr. Marcelo Andrade da Costa Vieira INSTRUÇÕES n Padrão de código binário armazenado em um dispositivo

Leia mais

14/3/2016. Prof. Evandro L. L. Rodrigues

14/3/2016. Prof. Evandro L. L. Rodrigues SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Prof. Evandro L. L. Rodrigues Tópicos do curso Conceitos básicos - Aplicações e utilizações dos microcontroladores

Leia mais

Sistemas Operacionais. Conceitos de Hardware

Sistemas Operacionais. Conceitos de Hardware Sistemas Operacionais Conceitos de Hardware Sumário 1. Introdução 7. RISC e CISC 2. Processador 1. Operações de Processamento 2. Unidade de Controle 3. Ciclos de uma Instrução 3. Memória 1. Memória Principal

Leia mais

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL 433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Apresentação do curso Critério de avaliação Média final = 0.8 * MP + 0.2 * ME onde MP = (P1 + P2) / 2 e ME = Notas

Leia mais

FCA - Editora de Informática xv

FCA - Editora de Informática xv Índice Geral Agradecimentos ix Prefácio xi Índice das Simulações xxv 1 - Introdução ao mundo dos computadores 1 1.1 O computador como ferramenta... 2 1.2 A importância dos computadores... 4 1.3 Processamento

Leia mais

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2)

Tecnólogo em Análise e Desenvolvimento de Sistemas. Sistemas Operacionais (SOP A2) Tecnólogo em Análise e Desenvolvimento de Sistemas Sistemas Operacionais (SOP A2) Conceitos de Hardware e Software Referências: Arquitetura de Sistemas Operacionais. F. B. Machado, L. P. Maia. Editora

Leia mais

Organização de Sistemas de Computadores

Organização de Sistemas de Computadores Organização de Sistemas de Computadores Cap. 2 (Tanenbaum), Cap. 3 (Weber) 2.1 Processadores 1 CPU UC = buscar instruções na memória principal e determinar o seu tipo ULA = adição e AND Registradores =

Leia mais

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador

Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação. Arquitetura de Computadores I. Organização Básica do Computador Universidade Federal do Rio de Janeiro Bacharelado em Ciência da Computação Arquitetura de Computadores I Organização Básica do Computador Gabriel P. Silva Ementa Unidade 2: Organização Lógica e Funcional

Leia mais

Programador/a de Informática

Programador/a de Informática 481040 - Programador/a de Informática UFCD - 0770 Dispositivos e periféricos Sessão 2 SUMÁRIO Tipos de motherboard; Processador e Tecnologias de Microprocessador; Registos Internos; Dissipadores e Ventoinhas;

Leia mais

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Qual o primeiro nome do computador à base de transístores?

Nome: N.º Ano: Turma: Turno: Responde às seguintes questões 1. Qual o primeiro nome do computador à base de transístores? ANO LETIVO 2018/2019 FICHA DE AVALIAÇÃO DE ARQUITETURA DE COMPUTADORES Módulo Nº: 4 Data: 13/03/20189 Tipo de Prova: Teórica Classificação: O Docente: (Rafael Henriques) Nome: N.º Ano: Turma: Turno: Leia

Leia mais

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores

Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores. Organização Básica de Computadores Ciência da Computação Arq. e Org. de Computadores Processadores Prof. Sergio Ribeiro Composição básica de um computador eletrônico digital: Processador Memória Memória Principal Memória Secundária Dispositivos

Leia mais

SSC510 Arquitetura de Computadores 1ª AULA

SSC510 Arquitetura de Computadores 1ª AULA SSC510 Arquitetura de Computadores 1ª AULA REVISÃO DE ORGANIZAÇÃO DE COMPUTADORES Arquitetura X Organização Arquitetura - Atributos de um Sistema Computacional como visto pelo programador, isto é a estrutura

Leia mais

Estrutura Básica de um Computador

Estrutura Básica de um Computador SEL-0415 Introdução à Organização de Computadores Estrutura Básica de um Computador Aula 2 Prof. Dr. Marcelo Andrade da Costa Vieira INTRODUÇÃO n Organização Æ implementação do hardware, componentes, construção

Leia mais

Prof. Gustavo Oliveira Cavalcanti https://sites.google.com/a/poli.br/professorgustavooc/

Prof. Gustavo Oliveira Cavalcanti https://sites.google.com/a/poli.br/professorgustavooc/ Sistemas Digitais Prof. Gustavo Oliveira Cavalcanti gustavooc@poli.br https://sites.google.com/a/poli.br/professorgustavooc/ Conteúdo Programático (Organização e Arquitetura) Arquitetura e história dos

Leia mais

Prof. Sandro Wambier

Prof. Sandro Wambier Prof. Sandro Wambier São elementos da Arquitetura de um computador: conjunto de instruções de um processador, os modos de endereçamentos, o tipo e tamanho dos dados manipulados pelo processador, ex.: Intel

Leia mais

Organização e Projeto de Computadores

Organização e Projeto de Computadores Organização e Projeto de Computadores 1 Processamento no Computador Operações principais: leitura de instrução do programa leitura de dados processamento: execução da instrução escrita de resultado entrada/saída

Leia mais

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29 Índice Geral Agradecimentos... vii Prefácio... ix Índice Geral... xiii Índice das Simulações... xxiii Índice das Figuras... xxvii Índice das Tabelas... xli Índice dos Programas... li 1 - Introdução ao

Leia mais

Símbolos e abreviaturas utilizadas na descrição das instruções

Símbolos e abreviaturas utilizadas na descrição das instruções Símbolos e abreviaturas utilizadas na descrição das instruções acumulador registo A addr endereço de 16 bits data quantidade de 8 bits data 16 quantidade de 16 bits byte 2 segundo byte da instrução byte

Leia mais

Organização de Computadores

Organização de Computadores Organização de Computadores Aula 25 Conjunto de Instruções: Características e Funções Rodrigo Hausen 10 de novembro de 2011 http://cuco.pro.br/ach2034 1/92 Apresentação 1. Bases Teóricas 2. Organização

Leia mais

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador Kelly Rosa Braghetto DCC IME USP 25 de março de 2014 MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador DCC IME USP 1

Leia mais

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção

O estudo da arquitectura de computadores efectua-se com recurso à Abstracção ARQUITECTURA DE COMPUTADORES O estudo da arquitectura de computadores efectua-se com recurso à Abstracção Podemos ver um computador de várias formas. Para um utilizador normalmente o computador é a aplicação

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais CAP 2: Conceitos de Hardware e Software Prof. MSc. Diego R. Moraes diegorm@anhanguera.com Download de todo conteúdo da disciplina https://sites.google.com/site/diegorafaelmoraes/downloads

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-1 Objetivos Conhecer o processador Compreender os registradores

Leia mais

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores)

Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores) Sistemas de Microprocessadores I Lista de exercícios (questões de provas de semestre anteriores) 1 - Fazendo uma comparação entre a arquitetura proposta por Von Neumann e a arquitetura de um microcomputador

Leia mais

Solução Lista de Exercícios Processadores

Solução Lista de Exercícios Processadores Solução Lista de Exercícios Processadores Questão 1 A ULA é o dispositivo da CPU que executa operações tais como : Adição Subtração Multiplicação Divisão Incremento Decremento Operação lógica AND Operação

Leia mais

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto 20-05-2009 - Aula nº 121,122 Funções de um Sistema Operativo Gestão do processador ao nível da sua planificação Gestão da Memória Gestão

Leia mais

Aula 14 Funcionamento de Processadores (Visão específica)

Aula 14 Funcionamento de Processadores (Visão específica) Aula 14 Funcionamento de Processadores (Visão específica) Com base nas aulas de Prof. José Delgado (autorizado) Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm

Leia mais

Arquitetura e Organização de Processadores. Aula 4. Pipelines

Arquitetura e Organização de Processadores. Aula 4. Pipelines Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 4 Pipelines 1. Introdução Objetivo: aumento de

Leia mais

Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 1 / 16

Introdução aos Computadores Introdução à Ciência de Computadores Outubro 2011 1 / 16 Introdução aos Computadores Introdução à Ciência de Computadores Nelma Moreira Departamento de Ciência de Computadores da FCUP Outubro 2011 Introdução aos Computadores Introdução à Ciência de Computadores

Leia mais

Elementos Físicos do SC e a Classificação de Arquiteturas

Elementos Físicos do SC e a Classificação de Arquiteturas Elementos Físicos do SC e a Classificação de Arquiteturas IFBA Instituto Federal de Educ. Ciencia e Tec Bahia Curso de Analise e Desenvolvimento de Sistemas Arquitetura de Computadores 9 e 10/40 Prof.

Leia mais

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 3

Periféricos e Interfaces Ano lectivo 2003/2004 Docente: Ana Paula Costa. Aula Teórica 3 Aula Teórica 3 Sumário: Descrição das arquitecturas 8086, 80286, 80386, 80486 e família Pentium. Leitura Recomendada: Capítulos 2, 3, 4, 5, 8, 10, 12, 13 e 14 - Hans-Peter Messmer, The Indispensable PC

Leia mais

Organização de um computador. O que é um computador Organização de um computador Arquitectura de von Neumann

Organização de um computador. O que é um computador Organização de um computador Arquitectura de von Neumann Organização de um computador O que é um computador Organização de um computador Arquitectura de von Neumann Execução de um programa Como um computador executa um programa? O que é um computador? E um programa?

Leia mais

Processador. Processador

Processador. Processador Departamento de Ciência da Computação - UFF Processador Processador Prof. Prof.Marcos MarcosGuerine Guerine mguerine@ic.uff.br mguerine@ic.uff.br 1 Processador Organização básica de um computador: 2 Processador

Leia mais

Organização de Computadores I

Organização de Computadores I Organização de Computadores I Aula 2 Material: Diego Passos http://www.ic.uff.br/~debora/orgcomp/pdf/parte2.pdf Organização de Computadores I Aula 2 1/29 Tópicos de Computação. de um Sistema de Computação..

Leia mais

SSC304 Introdução à Programação Para Engenharias

SSC304 Introdução à Programação Para Engenharias Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Estrutura de um Computador GE4 Bio GE4Bio Grupo de Estudos

Leia mais

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade.

ULA. Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade. PROCESSADOR ULA Combina uma variedade de operações lógicas e matemáticas dentro de uma única unidade. ULA Uma ULA típica pode realizar as operações artiméticas: - adição; - subtração; E lógicas: - comparação

Leia mais

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da

Leia mais

1. Conceitos Básicos de Computação

1. Conceitos Básicos de Computação Introdução à Computação I IBM1006 1. Conceitos Básicos de Computação Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 1.Conceitos Básicos de Computação 1.1.

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Conjunto de Instruções Slide 1 Sumário Características de Instruções de Máquina Tipos de Operandos Tipos de Operações Linguagem de Montagem Slide 2 Características

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização e Arquitetura Básicas

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra PROCESSAMENTO 1. Introdução O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento (os cálculos matemáticos etc.) e de controle, durante

Leia mais

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 03: FUNCIONAMENTO DE UM COMPUTADOR Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação O QUE É UM COMPUTADOR?

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 3.1 CPU: Unidade de Processamento Central Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Unidade de Processamento Central (CPU): Memória Principal Unidade de Processamento

Leia mais

Grupo I Resumo Histórico

Grupo I Resumo Histórico ARQUITETURA DE COMPUTADORES FICHA DE TRABALHO Nº 2 REVISÕES - CORREÇÃO Mod 4 Arquitetura de Microprocessadores Vamos lá Nome: Número: Turma: Leia atentamente as questões que se seguem e responda de acordo

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Msc. Tiago Alves de Oliveira Objetivos Conhecer o processador Compreender os registradores

Leia mais

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio

ARQUITETURA DE COMPUTADORES. Organização de Sistemas Computacionais. Prof.: Agostinho S. Riofrio ARQUITETURA DE COMPUTADORES Organização de Sistemas Computacionais Prof.: Agostinho S. Riofrio Agenda 1. Unidade Central de Processamento 2. Organização da CPU 3. Interpretador 4. RISC x CISC 5. Principios

Leia mais

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador; 1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e

Leia mais

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Unidade Central de Processamento (CPU) Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Baseado nos slides do capítulo

Leia mais

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira

ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES. Prof. Juliana Santiago Teixeira ORGANIZAÇÃO DE COMPUTADORES CAPÍTULO 6: PROCESSADORES Prof. Juliana Santiago Teixeira julianasteixeira@hotmail.com INTRODUÇÃO INTRODUÇÃO O processador é o componente vital do sistema de computação, responsável

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA Prof. Dr. Daniel Caetano 2012-2 Objetivos Conhecer o processador Compreender os registradores

Leia mais

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5 PREFÁCIO 1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO 1 1.1 Bases de Numeração 3 1.1.1 Representação de Números Inteiros em Base b 3 1.1.2 Representação de Números em Base 2 5 1.1.3 Representação de Números Fraccionários

Leia mais

Conceitos Básicos Processador

Conceitos Básicos Processador Infra-Estrutura de Hardware Conceitos Básicos Processador Prof. Edilberto Silva www.edilms.eti.br edilms@yahoo.com Sumário Conceitos básicos Organização da CPU Execução das Instruções RISC x CISC Paralelismo

Leia mais

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é

1. A pastilha do processador Intel possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é 1. A pastilha do processador Intel 80486 possui uma memória cache única para dados e instruções. Esse processador tem capacidade de 8 Kbytes e é organizado com mapeamento associativo por conjuntos de quatro

Leia mais

Disciplina: Arquitetura de Computadores

Disciplina: Arquitetura de Computadores Disciplina: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof a. Carla Katarina de Monteiro Marques UERN Introdução Responsável por: Processamento e execução de programas armazenados na

Leia mais

Conjunto de Instruções. Alisson Brito

Conjunto de Instruções. Alisson Brito Conjunto de Instruções Alisson Brito 1 1 O que é o Conjunto de Instruções? Instruction Set Architecture (ISA) Interface entre Programas e CPU A coleção completa de instruções reconhecidas pela CPU Programas

Leia mais

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados

CPU. CPU Unidade Central de Processamento. Função: leitura, escrita e processamento de dados CPU CPU Unidade Central de Processamento Função: leitura, escrita e processamento de dados Constituída por: dispositivos que gerem a entrada (leitura) e saída (escrita) de dados; registos (memórias auxiliares)

Leia mais

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016

Arquitetura de Computadores Conceitos Fundamentais. Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016 Arquitetura de Computadores Conceitos Fundamentais Graduação em Engenharia Elétrica - UFPR Prof. Carlos Marcelo Pedroso 2016 Um Computador Muito Simples CPU UC ULA A B PC IR FLAGS SP CS DS SS... 0A 09

Leia mais

ARDUINO. Profº. Engº. Robson Dias Ramalho

ARDUINO. Profº. Engº. Robson Dias Ramalho ARDUINO Profº. Engº. Robson Dias Ramalho 3. Microprocessador (E/S) 4. Memória RAM (E/S) 5. Placa de vídeo (E/S) 8. Disco Rígido (E/S) 9. Mouse (Saída) 10. Teclado (E/S) 2. Placa mãe (barramento de dados)

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Componentes básicos de um computador Memória Processador Periféricos Barramento O processador (ou microprocessador) é responsável pelo tratamento de informações armazenadas

Leia mais

Unidade Central de Processamento UCP (CPU)

Unidade Central de Processamento UCP (CPU) Unidade Central de Processamento UCP (CPU)! Arquitetura Convencional (Von Neumann) UCP BARRAMENTO MEMÓRIA PRINCIPAL ENTRADA E SAÍDA ! Visão geral da CPU UC - UNIDADE DE CONTROLE REGISTRADORES A B C D ALU

Leia mais

Arquitetura de Um Computador

Arquitetura de Um Computador Arquitetura de Um Computador José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-09-20 José Costa (DEI/IST) Arquitetura de Um

Leia mais

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres

FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO. Cristina Boeres FUNDAMENTOS DE ARQUITETURAS DE COMPUTADORES SISTEMAS DE COMPUTAÇÃO Cristina Boeres Sistema de Computação! Conjunto de componentes integrados com o objetivo de manipular dados e gerar informações úteis.

Leia mais

William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU

William Stallings Organização de computadores digitais. Capítulo 11 Estrutura e função da CPU William Stallings Organização de computadores digitais Capítulo 11 Estrutura e função da CPU Encruzilhada na arquitetura de computadores 2004/2005 Antiga opinião Nova visão a energia é de graça, os transistores

Leia mais

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores Engenharia Informática (5374) - 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) - 1º ano, 1º semestre Bioengenharia (9099) 2º ano, 1º semestre Ciências Biomédicas (10135) 2º ano, 1º semestre

Leia mais

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização

Arquitetura e Organização de Processadores. Aula 1. Introdução Arquitetura e Organização Universidade Federal do Rio Grande do Sul Instituto de Informática Programa de Pós-Graduação em Computação Arquitetura e Organização de Processadores Aula 1 Introdução Arquitetura e Organização 1. Arquitetura

Leia mais

Arquitetura de Microprocessadores

Arquitetura de Microprocessadores Arquitetura de Computadores UNIDADE 4 Arquitetura de 05-02-2019 Sumário Arquitetura de um microprocessador; Acesso à memória; A arquitetura de von Neumann apenas mostra a conceção ideológica do que deveria

Leia mais

ENGENHARIA DE SISTEMAS MICROPROCESSADOS

ENGENHARIA DE SISTEMAS MICROPROCESSADOS ENGENHARIA DE SISTEMAS MICROPROCESSADOS PROF. PIERRE VILAR DANTAS AULA 10 01/11/2017 TURMA: 0040- A HORÁRIO: 4N PIERREDANTASBLOG.WORDPRESS.COM 1/43 Objetivos da Aula Conhecer conceitos de processadores

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES Organização de Computadores ORGANIZAÇÃO DE COMPUTADORES Curso: Tecnologia em Gestão da Tecnologia da Informação Ano: 2011 Conhecida como Processador ou é o cerebro do computador Unifica todo sistema e

Leia mais

Organização e Arquitetura de Computadores INTRODUÇÃO

Organização e Arquitetura de Computadores INTRODUÇÃO Organização e Arquitetura de Computadores INTRODUÇÃO A Arquitetura de Computadores trata do comportamento funcional de um sistema computacional, do ponto de vista do programador (ex. tamanho de um tipo

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I BARRAMENTO Slide 1 Sumário Introdução Componentes de Computador Funções dos Computadores Estruturas de Interconexão Interconexão de Barramentos Slide 2 Introdução

Leia mais

Componentes de um Computador Típico

Componentes de um Computador Típico Componentes de um Computador Típico Assim como em um aparelho de dvd, no qual é necessário ter o aparelho de dvd e um dvd contendo o filme que será reproduzido, o computador possui a parte física, chamada

Leia mais

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização

Microprocessadores I. Aula 6 Arquitetura do Microprocessador Pinagem e Diagrama de Temporização Microprocessadores I Aula 6 Arquitetura do Microprocessador 8085 - Pinagem e Diagrama de Temporização 1 O 8085 contém em seu CI circuitos para executar operações de cálculos e comunicação com periféricos.

Leia mais

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 1 Conceitos necessários Prof. Leonardo Augusto Casillo Sistema de numeração: conjunto de regras que nos permite escrever e ler

Leia mais

Organização de computadores. Aula 05

Organização de computadores. Aula 05 Organização de computadores Aula 05 2 Níveis de um computador Computadores possuem uma série de níveis Cada um construído sobre seus antecessores Cada um representa uma abstração distinta com diferentes

Leia mais

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III Orientações: Esta lista de Exercícios deve ser entregue juntamente com a

Leia mais

Infraestrutura de Hardware. Funcionamento de um Computador

Infraestrutura de Hardware. Funcionamento de um Computador Infraestrutura de Hardware Funcionamento de um Computador Computador: Hardware + Software Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é

Leia mais

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it?

Arquitetura do SET de instruções Instruction SET. CISC vs RISC. What s assembly as to do with it? Arquitetura do SET de instruções Instruction SET CISC vs RISC What s assembly as to do with it? Low-level - high-level programming language Assambley CODE section.text global _start ;must be declared for

Leia mais

Arquitectura e Organização de Computadores

Arquitectura e Organização de Computadores Arquitectura e Organização de Computadores (micro-arquitectura) atributos visíveis ao programador: I.S.A. tamanho da palavra (bits) registos Componentes que realizam a arquitectura: organização do CPU

Leia mais

Introdução à Informática Engenharia Agrícola

Introdução à Informática Engenharia Agrícola Conceitos Básicos Introdução à Informática Engenharia Agrícola Sumário Computador Processamento de dados Hardware Software Sistemas Arquivos Modalidades de Computadores Arquitetura Básica. Uma referência

Leia mais

Microprocessadores CPU. Unidade de Controle. Prof. Henrique

Microprocessadores CPU. Unidade de Controle. Prof. Henrique Microprocessadores CPU Unidade de Controle Prof. Henrique Roteiro Registradores; Unidade de Controle Níveis de Complexidade Introdução Um sistema microprocessado conta com diversos dispositivos para um

Leia mais

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho

Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações. Medidas de desempenho Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações Bit, Caractere, Byte e Palavra Conceito de Arquivos e Registros Medidas de desempenho http://www.ic.uff.br/~debora/fac! 1 2

Leia mais

http://www.ic.uff.br/~debora/fac! 1 Capítulo 2 Livro do Mário Monteiro Componentes Representação das informações Bit, Caractere, Byte e Palavra Conceito de Arquivos e Registros Medidas de desempenho 2

Leia mais

Arquitectura de Computadores (ACom)

Arquitectura de Computadores (ACom) Arquitectura de Computadores (ACom) MEAer Acetatos das Aulas Teóricas Versão 4.0 - Português Aula N o 20: Título: Sumário: Sistema de primária (ciclo de acesso, memória estática, memória dinâmica, planos

Leia mais

ORGANIZAÇÃO DE COMPUTADORES

ORGANIZAÇÃO DE COMPUTADORES ORGANIZAÇÃO DE COMPUTADORES TECNOLOGIAS EM REDES DE COMPUTADORES Semestre 2015.2 Prof. Dsc. Jean Galdino As principais arquiteturas de processadores são: Von Neumann; Harvard. ARQUITETURAS AULA 06 28/10/2015

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 2 Introdução: conceitos, máquinas de níveis. Prof.: Edilberto M. Silva http://www.edilms.eti.br SO - Prof. Edilberto Silva O que é um sistema operacional? um provedor de abstrações

Leia mais

Informática I. Aula /09/2006 1

Informática I. Aula /09/2006 1 Informática I Aula 3 http://www.ic.uff.br/~bianca/informatica1/ 06/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação de Dados

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição

William Stallings Arquitetura e Organização de Computadores 8 a Edição William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 10 Conjuntos de instruções: Características e funções slide 1 O que é um conjunto de instruções? A coleção completa de instruções

Leia mais

Sistemas Operacionais. Adão de Melo Neto

Sistemas Operacionais. Adão de Melo Neto Sistemas Operacionais Adão de Melo Neto 1 Computador Digital (Hardware) 2 Computador Digital Constituído por um conjunto de componentes interligados (hardware): processadores, memórias, registradores,

Leia mais

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador

MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador Kelly Rosa Braghetto DCC IME USP 14 de março de 2017 MAC2166 Introdução à Computação Aula 1 Como Funciona um Computador DCC IME USP 1

Leia mais

Processador: Conceitos Básicos e Componentes

Processador: Conceitos Básicos e Componentes Processador: Conceitos Básicos e Componentes Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides de Fernanda Passos Cristina Boeres (IC/UFF)

Leia mais

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga SEL-614 MICROPROCESSADORES E APLICAÇÕES Prof: Adilson Gonzaga HISTÓRICO Microprocessador Circuito integrado ( chip ) capaz de executar instruções. 1971 Intel Corporation lançou no mercado o microprocessador

Leia mais

CONJUNTO DE INSTRUÇÕES

CONJUNTO DE INSTRUÇÕES CONJUNTO DE INSTRUÇÕES 1 CARACTERÍSTICAS DE INSTRUÇÕES DE MÁQUINA Quando um programador usa uma linguagem de alto-nível, como C, muito pouco da arquitetura da máquina é visível. O usuário que deseja programar

Leia mais

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017

Principais Componentes do Gabinete. Componentes Básicos de um Computador. CPU ou UCP (Processador) 17/02/2017 Professora: Janaide Nogueira E-mail: nogueirajanaide@gmail.com Materiais: https://janaide.wordpress.com Componentes Básicos de um Computador Principais Componentes do Gabinete 3 4 CPU ou UCP (Processador)

Leia mais

Estrutura e Funcionamento do Computador

Estrutura e Funcionamento do Computador Estrutura e Funcionamento do Computador Um computador funciona com dois tipos de componentes essenciais: Hardware Software 2 Hardware São todos os componentes físicos (pode ser visto e tocado) de um computador.

Leia mais