emachine: Simulador Didático de um Computador Paralelo

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

Download "emachine: Simulador Didático de um Computador Paralelo"

Transcrição

1 TÓPICOS AVANÇADOS EM ARQUITETURAS DE COMPUTADORES TAAC-28S2 CIÊNCIA DA COMPUTAÇÃO : Simulador Didático de um Computador Paralelo PROF. LUIZ A. DE P. LIMA JR. Objetivos Este projeto tem por objetivo motivar e aprofundar a compreensão da arquitetura de um computador paralelo por meio da implementação de um computador paralelo simples o qual denominamos totalmente feita em software, simulando a sua arquitetura e seu conjunto de instruções de maneira a executar um programa em linguagem de máquina. A arquitetura será expandida gradativamente em fases de projeto consecutivas para incorporar conceitos adicionais tais como memória cache com mapeamento direto e múltiplos processadores. A arquitetura definida, apesar de não corresponder a nenhuma máquina real, é inspirada na arquitetura do processador 886. Definição Inicial de Termos Assembler ou montador. Um programa que traduz a linguagem Assembly em linguagem de máquina. Linguagem Assembly. Uma representação simbólica da linguagem de máquina de um processador específico estendida por declarações adicionais que visam facilitar o processo de escrita de programas fornecendo instruções ao montador. Arquitetura Inicial Começaremos com um computador com um único processador. A sua arquitetura básica inicial a ser desenvolvida está representada na Figura. terminal AX BX CX DX FL PC RAM Código executável. O código de máquina gerado pelo montador (ou compilador). É o software no formato pronto para ser executado por um computador. controlador (saída) CPU Conjunto de Instruções ou Instruction Set. O conjunto de todas as instruções possíveis de um processador particular. Em outras palavras, a coleção de instruções em linguagem de máquina que um determinado processador é capaz de compreender. Loader. Um programa (ou procedimento) que copia um programa executável para a memória a fim de ser rodado. Linguagem de Máquina ou Código de Máquina. A representação binária de um programa de computador que é efetivamente lido e interpretado pelo computador. Um programa em linguagem de máquina consiste em uma sequência de instruções de máquina (possivelmente intercaladas com dados). Instruções são strings binárias que podem ter tamanho fixo (e.g., 32 bits em processadores RISC atuais) ou variável. Tabela de Símbolos. Arquivo ou estrutura de dados mapeando símbolos (strings) em códigos (inteiros) e vice-versa. Registradores Figura. Arquitetura básica A CPU possui 4 registradores de 32 bits (AX, BX, CX e DX) que podem ser usados em operações aritméticas ou para armazenar dados temporários. Os códigos destes registradores estão especificados na Tabela. Registrador regcode AX BX CX 2 DX 3 Tabela. Códigos dos registradores (regcodes) Há também outros dois registradores de igualmente 32 bits cada: FL é um flag utilizado para sinalizar condições da CPU (explicado posteriormente) e PC (Program

2 Counter) que armazena o endereço na memória da próxima instrução a ser executada. Memória A memória corresponde a um vetor endereçável de tamanho MEMSZ=6M palavras. Endereços de memória, são números de 24 bits (para endereçar 6M). O conteúdo armazenado em cada endereço da memória são valores de 32 bits s (Figura 2). x x xffffff 24bits RAM Figura 2. Conteúdo da memória e endereços = palavras (4 bytes) Instruções (Instruction Set) O conjunto básico de instruções que esta CPU é capaz de executar está listado na Tabela 2. Mnemônico Arg Arg2 Opcode NOP HALT MOV reg reg 2 MOV reg addr 3 MOV addr reg 4 MOV reg immediate 5 MOV addr immediate 6 ADD reg reg 7 SUB reg reg 8 CMP reg reg 9 JMP addr JZ offset JG offset 2 JL offset 3 OUT reg 4 INC reg 5 DEC reg 6 NOP Nenhuma Operação A instrução NOP não executa nada. Pode ser útil para evitar a necessidade de deslocamento de endereço de memória de determinados trechos do programa. NOP ; nada é executado HALT Interrupção do Programa HALT ; interrompe execução Todo programa deve terminar com uma execução da instrução HALT. MOV Transferência de Dados O conjunto de operações MOV é usado para transferir 32 bits dos registradores e para os registradores. A origem e/ou o destino da transferência deve ser um registrador. O outro argumento pode ser um registrador, um endereço de memória (entre colchetes) ou um valor imediato. Note que há 5 opcodes diferentes para a instrução MOV dependendo dos seus argumentos. MOV AX,BX ; AX BX MOV CX,[] ; CX [] MOV [],DX ; [] DX MOV AX,23 ; AX 23 Os valores entre colchetes [ ] representam conteúdos das respectivas posições de memória. No exemplo acima, o conteúdo da posição de memória é copiado para o registrador CX, DX é copiado para o endereço de memória e o valor 23 é atribuído ao registrador AX na última instrução. ADD Soma Soma os valores de dois registradores. O resultado é armazenado no primeiro registrador. ADD AX,BX SUB Subtração ; AX AX+BX Subtrai os valores de dois registradores. O resultado é colocado no primeiro registrador. SUB AX,BX CMP Comparação ; AX AX-BX Compara os valores de dois registradores subtraindo um do outro e colocando o resultado no flag FL. CMP AX,BX ; FL AX-BX Note que se AX==BX, então FL==, se AX>BX, FL> e se AX<BX, FL<. MUL reg reg 7 DIV reg reg 8 Tabela 2. CPU Instruction Set 2

3 JMP Salto absoluto incondicional Transfere a próxima execução para o endereço fornecido como argumento. Para tanto, o endereço é copiado para o registrador PC. JMP ; PC A próxima instrução a ser executada neste caso, será a contida no endereço da memória. JZ Salto relativo condicional se FL== Desvia a execução do programa o número de posições de memória (offset) fornecido como argumento, se o valor da flag FL for zero. Caso contrário, a instrução JZ é desconsiderada. Esta instrução é geralmente utilizada em conjunto com a instrução CMP para implementar o tradicional if de programas em linguagens de mais alto nível (C, C++, Python, etc.). JZ -5 ; PC PC-5,se FL== O registrador PC já conterá o endereço da próxima instrução quando JZ for executado. Assim, considerando endereços de memória das instruções: 2 JZ 2 ; PC PC+2=24, se FL== 22 INC AX 24 NOP JG Salto relativo condicional se FL> Semelhante à instrução JZ, porém desvia execução somente se FL>. Usada em conjunto com CMP, desviará execução se o primeiro operando do CMP for maior do que o segundo. CMP AX,BX JG 2 ; FL AX-BX ; PC PC+2, se FL> JL Salto relativo condicional se FL< Semelhante à instrução JZ, porém desvia execução somente se FL<. Usada em conjunto com CMP, desviará execução se o primeiro operando do CMP for menor do que o segundo. CMP AX,BX JL 2 OUT Saída na tela ; FL AX-BX ; PC PC+2, se FL< A instrução OUT imprime na tela o valor do registrador fornecido como argumento. OUT AX INC Incremento Incrementa valor de um registrador. INC AX ;imprime valor de AX ; AX AX+ DEC Decremento Decrementa valor de um registrador. DEC AX MUL Multiplicação ; AX AX- Multiplica dois registradores, colocando o resultado no primeiro. MUL AX,BX ; AX AX*BX DIV Divisão inteira e resto Efetua a divisão inteira de um registrador por outro, colocando o resultado no primeiro registrador e o valor do resto da divisão no segundo registrador. DIV AX,BX ; AX AX/BX BX AX%BX Um Simulador Didático Para que seja possível implementar um simulador didático de um computador com esta CPU, é necessário antes desenvolver um programa em linguagem de máquina que possa ser carregado na memória para, em seguida, ser lido e diretamente executado pela CPU. Embora seja possível criar manualmente um programa inteiro usando os opcodes das instruções, a tarefa seria muito tediosa, altamente suscetível a erros e dificilmente debogável. Por exemplo, o programa em Assembly: MOV AX, MOV BX,[] ADD AX,BX MOV [],AX HALT que soma ao conteúdo da memória na posição, para ser executado pela CPU, precisa ser carregado na memória substituindo-se os mnemônicos pelos seus respectivos opcodes, conforme a Figura opcode MOV regcode AX immediate opcode MOV regcode BX address opcode ADD regcode AX regcode BX opcode MOV address regcode AX opcode HALT Figura 3. Programa em linguagem de máquina. Normalmente, esta tarefa é feita por um Assembler (ou montador, em português) que recebe um arquivo escrito em linguagem Assembly como entrada e produz a sequência de bits (no nosso caso, uma sequência de valores inteiros) que correspondem ao programa. 3

4 O ciclo de software para este sistema está representado na Figura 4. terminal controlador (saída) MOV AX MOV BX ADD Assembly assembler AX BX CX DX Linguagem de Máquina Figura 4. Do programa Assembly à sua execução. FL PC CPU loader RAM Por isso, é importante manter a ordem acima de maneira que o opcode correto seja atribuído. Note também que, para esta tabela, será necessário distinguir os comandos MOV (R = registrador; M = memória; I = valor imediato). Os registradores internos da CPU também terão códigos ( regcodes ) quando convertidos em linguagem de máquina. Os regcodes são, da mesma forma que os opcodes, armazenados em arquivo separado (REGCODES.esym): AX ; regcode = BX ; regcode = CX ; regcode = 2 DX ; regcode = 3 OPCODES.esym e REGCODES.esym alimentam o assembler de forma que possa produzir como saída o executável em linguagem de máquina, conforme a Figura 5. Assembler O assembler deve ser capaz de interpretar linhas no seguinte formato: Etiqueta: Mnemônico Operandos ;comentários opcional nome do opcode zero ou mais opcionais Por exemplo: MOV AX, ; move para AX Para assegurar o uso consistente de opcodes no assembler assim como no, e para permitir a fácil inclusão de novas instruções, será necessário criar um dicionário ou tabela de símbolos em um arquivo texto separado (OPCODES.esym) com o seguinte conteúdo: ; texto após ; é comentário NOP ; não faz nada HALT ; para o programa MOV_RR ; reg <- reg2 MOV_RM ; reg <- mem MOV_MR ; mem <- reg MOV_RI ; reg <- valor MOV_MI ; mem <- valor ADD ; reg <- reg+reg2 SUB ; reg <- reg-reg2 CMP ; FL <- reg-reg2 JMP ; salto absoluto JZ ; salto relativo se FL== JG ; salto relativo se FL> JL ; salto relativo se FL< OUT ; imprime valor de reg INC ; reg <- reg+ DEC ; reg <- reg- MUL ; reg <- reg*reg2 DIV ; r<-r/r2; r2<-r%r2 A ordem em que as instruções aparecem no arquivo determinará o seu opcode, contando a partir de zero (NOP). arquivo de entrada MOV AX MOV BX ADD Assembly (.easm) Figura 5. Tabelas de símbolos: OPCODES e REGCO- DES Atividade Assembler (Python) Implemente em Python um assembler que, recebendo como entrada duas tabelas de símbolos (OPCO- DES.esym e REGCODES.esym) e um arquivo contendo um programa em Assembly (*.easm), produza como saída um arquivo texto executável em linguagem de máquina (*.run) (por exemplo, Figura 3) pronto para ser rodado por um processador a ser desenvolvido posteriormente. O arquivo de saída deve ser formado por uma sequência de números inteiros, separados por espaço. Por exemplo: Inicialmente, não é necessário implementar etiquetas para fazer referência a endereços de programa. Comece pela implementação de um programa Python que leia os arquivos *.esym em uma estrutura adequada do Python (dictionary). Pontos a considerar: OPCODES. esym Assembler eassembler.py REGCODES.esym arquivo de saída Linguagem de Máquina (.run). ignore linhas em branco e qualquer texto depois de ; (comentários); 4

5 2. crie dicionários Python para opcodes e regcodes a partir dos arquivos OPCODES.esym e REGCODES.esym (disponíveis no site da disciplina); 3. a partir de cada linha com instruções Assembly do arquivo.easm, crie uma lista formada dos tokens da linha por exemplo, a linha: ADD AX,BX se transforma na lista Python: [ ADD, AX, BX ] ; soma que será, então, analisada para finalmente produzir a saída: 7 4. o Assembler a ser desenvolvido (eassembler.py) deve receber como entrada um arquivo com um programa em Assembly (por exemplo, prog.easm ) e produzir, caso a montagem tenha sido bem sucedida, um arquivo de saída com o mesmo nome do arquivo de entrada, mas com a extensão.run (por exemplo, prog.run ). Atividade 2 Máquina Monoprocessada (C++) Uma vez gerado o arquivo executável em código de máquina pelo programa Assembly, agora será necessário implementar a arquitetura de computador da Figura 4 que execute o programa. A máquina (emachine) a ser implementada deverá conter os seguintes componentes:. Memória: 6M memória principal (RAM). Endereços são inteiros sem sinal (na faixa de a 6MB-) e os conteúdos da memória são palavras (isto é, valores inteiros, possivelmente negativos defina tipo Word). 2. Loader: carrega o programa contido em arquivo.run para a memória principal a partir do endereço init_addr fornecido (que pode ser, por exemplo). 3. CPU: inicializa PC com o endereço de memória init_addr e efetua as seguintes operações até encontrar a operação HALT: a. fetch_instruction: busca na memória a próxima instrução a executar (o endereço onde se localiza esta instrução está contido no registrador PC); b. decode: decodifica (isto é, identifica ) a instrução a partir da mesma tabela de códigos utilizada pelo Assembler (OPCODES.esym); c. fetch_operands: uma vez identificada a instrução, busca na memória os seus respectivos operandos (ou parâmetros) que podem ser de três tipos: () constantes (immediate), (2) registradores ou (3) conteúdos de memória; d. execute: executa a instrução com os parâmetros fornecidos, atualizando o PC. A cada instrução executada, o programa deve imprimir na tela o endereço de memória e a instrução. Por exemplo, se init_addr == : NOP MOV_RM AX,[] 4 INC AX 6 Programa-Teste Implemente um programa em Assembly que calcule o Máximo Divisor Comum (MDC) entre os números contidos nos endereços e de memória colocando o resultado no endereço 2 e o imprimindo na tela. Dica: u, se u == v mdc(u, v) = * mdc(u, v u), se u < v mdc(u v, v), se u > v Gere o arquivo executável usando o Assembler e o rode na máquina monoprocessada. Atividade 3 Implementação de Cache L A próxima etapa do projeto consiste em implementar o modelo de memória cache por Mapeamento Direto (cf. Stallings, ª ed, seção 4.3 leitura obrigatória!). A memória cache é formada por m blocos (chamados cache lines) de K palavras de memória, cada um precedido por uma etiqueta (tag) que identifica o bloco de memória principal sendo atualmente armazenado naquela cache line (Figura 6). 5

6 MEMÓRIA CACHE MEMÓRIA PRINCIPAL linha tag bloco (cache line) endereço 2 K- bloco m- 2 n - tamanho da cache line = K palavras palavra Figura 6. O modelo de memória cache Neste contexto, a CPU solicita o conteúdo da memória fornecendo um endereço que é enviado não mais diretamente à memória principal, mas sim à cache L (nível ), conforme ilustrado na Figura 7. Ao receber esta requisição de acesso a um endereço, o sistema deve verificar se o conteúdo do endereço solicitado está ou não em cache e tomar as medidas necessárias em caso negativo loader RAM terminal AX BX FL PC cache L CX DX controlador (saída) tag cache line direct mapping CPU Figura 7. Arquitetura com memória cache L Note, na Figura 7, que a memória cache se interpõe entre a CPU e a memória principal, oferecendo à CPU a mesma interface de acesso que a memória principal oferecia. Assim, a solicitação para escrita e leitura de uma palavra em um determinado endereço deve ser gerenciada por funções read/write, ao invés de diretamente na posição do vetor. A cache acessará a memória principal (RAM) se o endereço solicitado não estiver mapeado localmente ( cache miss ), seguindo o procedimento ilustrado na Figura 8. Especificação da Memória Cache Uma vez que o tamanho da memória principal é de 6M, a CPU gerará endereços de 24 bits. A capacidade da cache L deverá ser de 892 palavras com cada cache line armazenando 64 palavras (i.e., K=64). Funcionamento Básico da Memória Cache (por Mapeamento Direto) Endereços de 24 bits gerados pela CPU são divididos internamente em blocos de bits como ilustra a Figura 9, onde: w especifica uma das K palavras de uma cache line ou bloco de memória (como K=64, w é um número de 6 bits); r especifica o índice do cache line (um número de 7 bits, uma vez que há 28 cache lines); t é a etiqueta (tag) que corresponde aos bits restantes do endereço e serve para identificar qual o bloco que memória principal que se encontra atualmente na cache line; s corresponde à concatenação dos bits de t e r e representa o número do bloco de memória principal onde está a palavra à qual se deseja acessar. 6

7 CPU endereço s w t r w r 3a tag r t 2 t==t? retorna dado na linha r, posição w w dados cache N: cache miss! S: cache hit! 4 3b busca K bytes da memória a partir do endereço s copia linha r da cache para endereço de mem: t r s s w t r K K Figura 8. Modelo de funcionamento da memória cache por mapeamento direto endereço 24bits (6MB) s w t tag r # linha w -247 (restante) -27 m -63 K bits 7 bits 6 bits Figura 9. Organização dos 24 bits de um endereço de memória. Ao receber a solicitação de uma palavra de memória localizada em um endereço x, extrai-se r e t de x e faz-se então a verificação se t é igual ao tag t contido na linha r da cache line (passo 2 na Figura 8). Se forem iguais, houve um cache hit (i.e., a palavra solicitada está na cache) e então utiliza-se w para retornar à CPU a palavra na posição w dos dados da cache line (passo 3a na Figura 8). Se houver um cache miss, a cache line r corresponde a um outro bloco de memória. Como a cache line pode ter sido alterada, ela é copiada para a memória principal (a partir do endereço formado por [t r ]) (passo 3b na Figura 8), o bloco s da memória principal é trazido para a cache line e, ao mesmo tempo, a palavra no endereço solicitado é retornada à CPU (passo 4 na Figura 8). Assim, a cache é atualizada e próximos acessos a endereços naquela cache line produzirão um cache hit. Considerações de Implementação Embora os endereços utilizados sejam de 24 bits, eles são armazenados em variáveis inteiras sem sinal (de 32 bits). Na realidade, isto não causa problemas, desde que asseguremos que endereços nunca sejam valores maiores do que Lembre-se que deslocar bits n posições à esquerda corresponde a multiplicar o número por 2 5. Deslocar n bits à direita corresponde a dividir por 2 5. Para se obter n os bits à direita do número x, basta calcular: x mod 2 5 (mod é o resto da divisão) ou utilizar operadores bit a bit da linguagem C++. Para testes, faça o seu programa imprimir na tela quando houver cache miss e qual endereço que o causou. Atividade 4 Máquina Multiprocessada sem Coerência de Cache A fase seguinte do projeto consiste em simular o funcionamento de uma máquina com múltiplos processadores (ou núcleos), cada um com a sua própria memória cache L e rodando em paralelo cada um o seu programa. Programas distintos executados pelas CPUs ocupam espaços distintos de memória conforme ilustrado na Figura. Altere o seu programa da fase anterior de forma a: carregar n programas (arquivos.run) em diferentes posições de memória (o loader será executado para carregar na memória cada programa); criar n instâncias de CPUs e suas respectivas caches L, todas conectadas à mesma memória principal (RAM) e disparar a execução de cada programa ( por CPU) como um thread independente (o endereço na memória principal do início de cada programa deverá ser atribuído ao registrador PC da CPU que o executará); o programa encerrar-se-á quando todos as n instâncias de CPU executarem a instrução HALT 7

8 (i.e., quando todos os threads de CPU terminarem); o valor de n (lido do usuário) deve estar no intervalo de a 32. MEMÓRIA PRINCIPAL acessadas. Ou seja, o objetivo é permitir que as variáveis permaneçam em cache com acessos de leitura e escrita e utilizar um protocolo (i.e., algoritmo) de coerência de cache para manter a consistência das variáveis compartilhadas que possam estar ao mesmo tempo em mais de uma cache. CPU cache L prog O protocolo de hardware mais utilizado (arquitetura x86) é conhecido como MESI. Ele visa resolver o problema da coerência de caches associando 2 bits a cada cache line para indicar seus 4 possíveis estados: CPU CPUn cache L cache L prog prog n Figura. Arquitetura com n processadores e suas respectivas caches L Note que este esquema sofre de um problema de projeto: se, por exemplo, duas cache lines de caches diferentes espelham o mesmo bloco de RAM, se uma CPU alterar o seu valor, a outra poderá estar usando valores desatualizados. Isto é bem possível que aconteça sempre que as CPUs estiverem rodando threads no mesmo processo, tipicamente, compartilhando variáveis na memória. Atividade 5 Multiprocessador Simétrico com Coerência de Cache Quando múltiplas cópias dos mesmos dados existem em diversas caches simultaneamente e os processadores podem alterar livremente as suas cópias, o resultado pode ser uma visão inconsistente da memória, conforme ilustrado na Figura. A tabela abaixo resume o significado de cada estado: M E S I. Modificada. A cache line foi alterada (i.e., difere do bloco da memória principal) e está disponível somente nesta cache. 2. Exclusiva. A cache line é a mesma da memória principal e está disponível apenas nesta cache. 3. Compartilhada (Shared). A cache line é a mesma da memória principal e pode estar presente também em outra cache. 4. Inválida. A cache line não contém dados válidos. cache line válida? SIM SIM SIM NÃO cópia na memória desatualizadzadzada atuali- atuali- princ.?? cópias em outras TAL- NÃO NÃO caches? VEZ NÃO escrita nesta cache line? não atualiza mem. princ. não atualiza mem. princ. atualiza mem. princ. e cache atualiza diretamente a mem. princ. O funcionamento do protocolo MESI está ilustrado por meio do diagrama de estados da Figura 2 (veja descrição detalhada no livro-texto Stallings, 7.3). Implementação Incremente a implementação do desenvolvida até o momento de forma a incorporar a coerência entre cache através do protocolo MESI. Escreva 2 programas em Assembly que somam (em paralelo) os valores de a.. e de.. a 2.., respectivamente, armazenando os seus resultados cumulativamente em posições de memória que ocupam o mesmo bloco de memória (e, portanto, a mesma cache line). Figura. O problema da coerência de caches Inclua um mecanismo (e.g., flag) para habilitar/desabilitar a coerência de caches e teste o seu programa comparando os resultados obtidos sem a coerência de cache e com o protocolo MESI em funcionamento em termos de correção do resultado calculado e do tempo gasto com o cálculo em cada caso. Se a CPU alterar a sua cópia em cache de dados espelhados em outras caches, as CPUs e n deveriam invalidar suas cópias de forma a serem atualizadas quando 8

9 linha na cache do processador iniciador linha na cache investigada ( snooping ) I RMS S RH I SHW S SHR WM RME WH SHW SHR SHW SHR RH M WH E RH M E WH preenche cacheline a partir da mem. principal RH Read Hit WH Write Hit atualiza mem. principal a partir da cache line RMS Read Miss, Shared WM Write Miss RME Read Miss, Exclusive SHR Snoop hit on read SHW Snoop hit on write Figura 2. Diagrama de estados do protocolo MESI 9

Primeiro Trabalho de POO Emulador para o Processador Winter

Primeiro Trabalho de POO Emulador para o Processador Winter Primeiro Trabalho de POO Emulador para o Processador Winter Prof. Pedro Carlos da Silva Lara Entrega: 21/10/2014 1 Informações Gerais Winter é um processador hipotético especificado com fim puramente acadêmico.

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

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

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

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

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

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Linguagem de Montagem e Linguagem de Máquina Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Conceitos básicos Linguagem/código

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

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO

LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO LISTA 02 CONJUNTO DE INSTRUÇÕES - GABARITO 1) Identifique na instrução em linguagem de máquina armazenada na memória, os elementos da instrução 2) Na figura acima, qual a quantidade de código de operações

Leia mais

NEANDERWIN. Algumas características do processador Neander são:

NEANDERWIN. Algumas características do processador Neander são: NEANDERWIN O NeanderWin é um simulador da máquina Neander, definida no livro do Raul F. Weber (UFRGS), Fundamentos de Arquitetura de Computadores, Ed. Sagra Luzzatto. A máquina original foi estendida aqui

Leia mais

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas

Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Trabalhos Práticos Arquitetura de Computadores I Prof. Fabian Vargas Material a ser utilizado: Kits de desenvolvimento de sistemas microprocessados para aplicações em DSP Texas DSK-TMS320C67xx. Apresentação

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

Departamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro

Departamento de Sistemas de Computação - SSC. Sistemas Digitais. 2 o Semestre Projeto CPU. Data da apresentação: 26/27 de outubro UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC Sistemas Digitais 2 o Semestre Projeto CPU Data da apresentação: 26/27 de outubro

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

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

Departamento de Sistemas de Computação - SSC. SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica digital I.

Departamento de Sistemas de Computação - SSC. SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica digital I. UNIVERSIDADE DE SÃO PAULO Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação - SSC SSC-110 Elementos de lógica digital I SSC-111 Laboratório de elementos de lógica

Leia mais

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples

Infraestrutura de Hardware. Implementação Monociclo de um Processador Simples Infraestrutura de Hardware Implementação Monociclo de um Processador Simples Componentes de um Computador Unid. Controle Controle Memória Registradores PC MAR IR AC Programa + Dados Instrução Endereço

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 10 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação QUAL É A INTERFACE ENTRE

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

Prof. Leonardo Augusto Casillo

Prof. Leonardo Augusto Casillo UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Aula 2 Estrutura de um processador Prof. Leonardo Augusto Casillo Arquitetura de Von Neumann: Conceito de programa armazenado; Dados

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

José Augusto Fabri. Assembly Básico

José Augusto Fabri. Assembly Básico José Augusto Fabri Assembly Básico Aritmética em Modo Hexadecimal Operações da adição e subtração em hexadecimal (comando H) Número negativos: Que número representa o FFFF? Aritmética em Modo Hexadecimal

Leia mais

ção de Computadores I

ção de Computadores I Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores I Aula 2 1. Projeto da Arquitetura

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

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

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n

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

Linguagem de Montagem do NeanderX

Linguagem de Montagem do NeanderX Universidade Estácio de Sá Curso de Informática Arquitetura de Computadores Linguagem de Montagem do NeanderX 11.5.2006 Geração Programa Executável Linguagens de Programação As linguagens de programação

Leia mais

2. A influência do tamanho da palavra

2. A influência do tamanho da palavra 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 a execução de

Leia mais

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador

William Stallings Arquitetura e Organização de Computadores 8 a Edição. Capítulo 12 Estrutura e função do processador William Stallings Arquitetura e Organização de Computadores 8 a Edição Capítulo 12 Estrutura e função do processador slide 1 Estrutura da CPU CPU precisa: Buscar instruções. Interpretar instruções. Obter

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

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES ARQUITETURA DE COMPUTADORES Arquitetura de Von Newmann Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Vídeos Vídeo aula RNP http://edad.rnp.br/rioflashclient.php?xmlfile=/ufjf/licenciatura_com

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

Aula 12: Memória: Barramentos e Registradores

Aula 12: Memória: Barramentos e Registradores Aula 12: Memória: Barramentos e Registradores Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Memória: Barramentos e Registradores FAC 1 / 34

Leia mais

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE

2. Descrição do Trabalho. Figura 1. Datapath do MIPS Superescalar CES SE Especificação do Projeto Simulador MIPS Superescalar CES- 25 Arquiteturas para Alto Desempenho Prof. Paulo André Castro Equipe: até três alunos Última atualização: 5/junho/2018 1. Objetivo Exercitar e

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 Instrução Precisam ser entendidas pelo processador Precisam ser decodificadas e

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

AGT0001 Algoritmos Aula 01 O Computador

AGT0001 Algoritmos Aula 01 O Computador AGT0001 Algoritmos Aula 01 O Computador Karina Girardi Roggia karina.roggia@udesc.br Departamento de Ciência da Computação Centro de Ciências Tecnológicas Universidade do Estado de Santa Catarina 2016

Leia mais

UCP: Construindo um Caminho de Dados (Parte III)

UCP: Construindo um Caminho de Dados (Parte III) UCP: Construindo um Caminho de Dados (Parte III) Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides do Fernanda Passos Cristina Boeres

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 04: ASPECTO BÁSICO DO PROJETO DE UMA CPU SIMPLES E LINGUAGEM DE MONTAGEM Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia

Leia mais

ção de Computadores I

ção de Computadores I Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura e Organizaçã ção de Computadores I Aula 4 1. Projeto da Arquitetura

Leia mais

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples

Infraestrutura de Hardware. Implementação Multiciclo de um Processador Simples Infraestrutura de Hardware Implementação Multiciclo de um Processador Simples Perguntas que Devem ser Respondidas ao Final do Curso Como um programa escrito em uma linguagem de alto nível é entendido e

Leia mais

A Arquitetura: conjunto de instruções

A Arquitetura: conjunto de instruções A Arquitetura: conjunto de instruções código instrução comentário 0000 NOP Nenhuma operação 0001 STA MEM() AC 0010 LDA AC MEM() 0011 ADD AC MEM() + AC 0100 OR AC MEM() OR AC 0101 AND AC MEM() AND AC 0110

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

Porque usar um montador? Formato de uma linha de código fonte:

Porque usar um montador? Formato de uma linha de código fonte: Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob

Leia mais

Instruções. Maicon A. Sartin

Instruções. Maicon A. Sartin Instruções Maicon A. Sartin SUMÁRIO Introdução Instruções Formatos de instruções Conjuntos de instruções Execução de instruções Introdução a Linguagem de Montagem Introdução a Linguagem de Montagem Níveis

Leia mais

SSC0112 Organização de Computadores Digitais I

SSC0112 Organização de Computadores Digitais I SSC0112 Organização de Computadores Digitais I 3ª Aula Visão Geral e Conceitos Básicos Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Copyright William Stallings & Adrian J Pullin Tradução, revisão e

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

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Arquitetura e Organização de Computadores Conjunto de Instruções Prof. Sílvio Fernandes

Leia mais

Unidade de Controle. UC - Introdução

Unidade de Controle. UC - Introdução Unidade de Controle Prof. Alexandre Beletti (Cap. 3 Weber, Cap.8 Monteiro, Cap. 10,11 Stallings) UC - Introdução Para gerenciar o fluxo interno de dados e o instante em que ocorrem as transferências entre

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

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

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

Arquitetura e Organização de Computadores

Arquitetura e Organização de Computadores Arquitetura e Organização de Computadores Conjunto de Instruções Givanaldo Rocha de Souza http://docente.ifrn.edu.br/givanaldorocha givanaldo.rocha@ifrn.edu.br Material do prof. Sílvio Fernandes - UFERSA

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

O Computador Neander Neander - Computador Hipotético Didático

O Computador Neander Neander - Computador Hipotético Didático Neander - Computador Hipotético Didático [Weber 2001] Fundamentos de Arquitetura de Computadores. Raul Weber - Ed. Sagra. Site - ftp://ftp.inf.ufrgs.br/pub/inf107/ Arquitetura: características gerais Largura

Leia mais

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I

Programação de Microprocessadores. Programação de Microprocessadores SEL-433 APLICAÇÕES DE MICROPROCESSADORES I SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Programação de Microprocessadores Microprocessadores são Máquinas de Estado Seqüenciais Síncronas que operam mediante a execução de uma seqüência de códigos binários

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

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture

Registradores na Arquitetura MIPS. 29/4/2016 MIPS - Instruction Set Architecture Registradores na Arquitetura MIPS 29/4/2016 MIPS - Instruction Set Architecture 1 Mapa de Memória da Arq. MIPS 2 GB 2 GB 256 MB 64 KB 2 GB 64 KB 256 4 MB 4 MB 29/4/2016 MIPS - Instruction Set Architecture

Leia mais

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE

As 5 partes fundamentais. Linguagem de Programação Pinagem Características Elétricas Ambiente de Desenvolvimento Integrado - IDE SEL-433 APLICAÇÕES DE MICROPROCESSADORES I Como conhecer/estudar um Microprocessador/Microcontrolador As 5 partes fundamentais Programação de Microprocessadores Prof: Evandro L. L. Rodrigues Arquitetura

Leia mais

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE

Figura 1. Datapath do MIPS Superescalar Especulativo CES SE Especificação do Projeto Simulador MIPS Superescalar Especulativo CES- 25 Arquiteturas para Alto Desempenho Prof. Paulo André Castro Equipe: até quatro alunos 1. Objetivo Exercitar e fixar conhecimentos

Leia mais

Neander - características

Neander - características NEANDER x RAMSES (Ou porque da necessidade de upgrade :-) Texto original: ftp://ftp.inf.ufrgs.br/pub/inf108/ramses-instrucoes.ppt Neander - características Largura de dados e endereços de 8 bits Dados

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Entrada e Saída Slide 1 Entrada e Saída Dispositivos Externos E/S Programada Organização e Arquitetura de Computadores I Sumário E/S Dirigida por Interrupção

Leia mais

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP)

CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) CONJUNTO DE INSTRUÇÕES DE UM PROCESSADOR (UCP) 1 LINGUAGENS Constituída de seqüência de zeros (0) e uns (1) Cada instrução em ASSEMBLY constitui-se em um mnemônico (uma forma fácil de se lembra) de uma

Leia mais

X Y Z A B C D

X Y Z A B C D 29) A seguinte tabela verdade corresponde a um circuito combinatório de três entradas e quatro saídas. Obtenha a tabela de programação para o circuito em um PAL e faça um diagrama semelhante ao apresentado

Leia mais

Conceitos básicos sobre computadores (continuação)

Conceitos básicos sobre computadores (continuação) SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Conceitos básicos sobre computadores (continuação) Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário O que é um computador e

Leia mais

Universidade Federal de Mato Grosso do Sul. Implementação de um Sistema Simplificado de Memória Cache

Universidade Federal de Mato Grosso do Sul. Implementação de um Sistema Simplificado de Memória Cache Universidade ederal de Mato Grosso do Sul acom - aculdade de Computação Linguagem de Programação Orientada a Objetos Prof. Me. Liana Duenha Implementação de um Sistema Simplificado de Memória Cache O objetivo

Leia mais

Arquitetura: características gerais

Arquitetura: características gerais Neander - Computador Hipotético Didático [Weber 2001] Fundamentos de Arquitetura de Computadores. Raul Weber - Ed. Sagra. Site - ftp://ftp.inf.ufrgs.br/pub/inf107/ Arquitetura: características gerais Largura

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

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

Introdução à Computação: Máquinas Multiníveis

Introdução à Computação: Máquinas Multiníveis Introdução à Computação: Máquinas Multiníveis Beatriz F. M. Souza (bfmartins@inf.ufes.br) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória,

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio

Leia mais

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:

Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas: Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas: Somar e subtrair Mover um dado de um local de armazenamento para outro Transferir um dado para um dispositivo

Leia mais

Barramento. Prof. Leonardo Barreto Campos 1

Barramento. Prof. Leonardo Barreto Campos 1 Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;

Leia mais

Aula 19: UCP: Construindo um Caminho de Dados (Parte III)

Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Aula 19: UCP: Construindo um Caminho de Dados (Parte III) Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Caminho de Dados (III) FAC 1 /

Leia mais

MAC0329 Álgebra booleana e circuitos digitais DCC / IME-USP Primeiro semestre de 2017

MAC0329 Álgebra booleana e circuitos digitais DCC / IME-USP Primeiro semestre de 2017 MAC0329 Álgebra booleana e circuitos digitais DCC / IME-USP Primeiro semestre de 2017 Projeto de circuito 2 CPU/MAC0329 Data de entrega: até 30/06/2017 Neste projeto, o objetivo é a construção do circuito

Leia mais

SSC510 Arquitetura de Computadores. 8ª aula

SSC510 Arquitetura de Computadores. 8ª aula SSC510 Arquitetura de Computadores 8ª aula ARQUITETURAS MIMD COM MEMÓRIA COMPARTILHADA COERÊNCIA DE CACHE PROFA. SARITA MAZZINI BRUSCHI Memórias Cache Políticas de Atualização As memórias caches possuem

Leia mais

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral

Histórico de desenvolvimento de computadores Prof. Luís Caldas Aula 02 Processador de uso geral Processador de uso geral 1. Introdução: Um sistema digital completo é constituído de uma unidade controle e o bloco operacional. Na figura a seguir alguns elementos externos necessários para completar

Leia mais

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES

UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES Tecnologia da informação e comunicação UNIDADE CENTRAL DE PROCESSAMENTO FELIPE G. TORRES CICLO DE INSTRUÇÕES OU DE EXECUÇÃO Arquitetura de computadores 2 CICLO DE EXECUÇÃO No inicio de cada ciclo de instrução,

Leia mais

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06

Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06 Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 06 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação COMO UM PROGRAMA ESCRITO

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

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

Aula 16: UCP: Conceitos Básicos e Componentes

Aula 16: UCP: Conceitos Básicos e Componentes Aula 16: UCP: Conceitos Básicos e Componentes Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) UCP: Conceitos Básicos e Componentes FAC 1 / 34

Leia mais

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA

INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA Engenharia de Eletrónica e Telecomunicações e de Computadores e Engenharia Informática e de Computadores INSTITUTO SUPERIOR DE ENGENHARIA DE LISBOA 1.º Trabalho

Leia mais

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3

CPU. Funções: Componentes: Processamento; Controle. UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3 CPU CPU Funções: Processamento; Controle Componentes: UC (Unidade de Controle); Registradores; ALU s, FPU s etc. Arquitetura de Computadores 3 Processador A função de um computador é executar tarefas

Leia mais

PSI3441 Arquitetura de Sistemas Embarcados

PSI3441 Arquitetura de Sistemas Embarcados PSI31 Arquitetura de Sistemas Embarcados - Arquitetura do µprocessador Escola Politécnica da Universidade de São Paulo Prof. Gustavo Rehder grehder@lme.usp.br Prof. Sergio Takeo kofuji@usp.br Prof. Antonio

Leia mais

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP

Memória Cache. Memória Cache. Localidade Espacial. Conceito de Localidade. Diferença de velocidade entre Processador/MP Departamento de Ciência da Computação - UFF Memória Cache Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Memória Cache Capítulo 5 Livro do Mário Monteiro Conceituação Princípio da localidade

Leia mais

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto

COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES. Adão de Melo Neto COMPUTADORES COM UM CONJUNTO REDUZIDO DE INSTRUÇÕES Adão de Melo Neto 1 INTRODUÇÃO Desde 1950, houveram poucas inovações significativas nas áreas de arquitetura e organização de computadores. As principais

Leia mais

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang

Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES. Introdução. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Introdução geovanegriesang@unisc.br Processadores de linguagem Linguagens de programação são notações para se descrever

Leia mais

Computador Cleópatra

Computador Cleópatra ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES Computador Cleópatra Interface Hardware e Software Alexandre Amory Edson Moreno 2 / 9 Nas Aulas Anteriores Vimos como descrever e implementar circuitos combinacionais

Leia mais

SSC0611 Arquitetura de Computadores

SSC0611 Arquitetura de Computadores SSC0611 Arquitetura de Computadores 5ª e 6ª Aulas Revisão de Hierarquia de Memória Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br 1 Memória Memória Todo componente capaz de armazenar bits de informação

Leia mais

Ambiente de desenvolvimento

Ambiente de desenvolvimento Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4 Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para

Leia mais

4. Modelo de Programação do DLX Introdução

4. Modelo de Programação do DLX Introdução 4. Modelo de Programação do DLX Quero que o matemático Beremiz Samir nos conte uma lenda, ou uma simples fábula, na qual apareça uma divisão de 3 por 3 indicada, mas não efetuada, e outra de 3 por 2, indicada

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

UCP: Caminho de Dados (Parte II)

UCP: Caminho de Dados (Parte II) UCP: Caminho de Dados (Parte II) Cristina Boeres Instituto de Computação (UFF) Fundamentos de Arquiteturas de Computadores Material baseado nos slides de Fernanda Passos Cristina Boeres (IC/UFF) UCP: Caminho

Leia mais

UCP 8051 (parte 02) Professor Adão de Melo Neto

UCP 8051 (parte 02) Professor Adão de Melo Neto UCP 85 (parte 2) Professor Adão de Melo Neto Barramento de endereços UCP 85 É unidirecional (6 BITS), porque a informação flui apenas em uma direção, da CPU para a memória ou para os elementos de E/S.

Leia mais

Instruções de Máquina

Instruções de Máquina Instruções de Máquina Operação básica (primitiva) que o hardware é capaz de executar diretamente Conjunto de bits que indica ao processador uma operação que ele deve realizar O projeto de um processador

Leia mais