Arquitectura do conjunto de instruções

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

Download "Arquitectura do conjunto de instruções"

Transcrição

1 Arquitectura do conjunto de instruções João Canas Ferreira Setembro de 2004 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3 a. ed., MKP c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 1/31 Assuntos 1 Aspectos gerais 2 Operandos Acesso aos dados Tipos de dados 3 Operações 4 Controlo de fluxo 5 Codificação de instruções 6 Geração de código c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 2/31

2 O conjunto de instruções Aspectos gerais Arquitectura do conjunto de instruções: a parte de um computador que o programador/compilador manipula e controla. Inclui: as instruções e seus modos de endereçamento; a arquitectura de registos (homogénea ou não); atendimento de interrupções; modelo de interacção com o exterior (E/S). A organização do conjunto de instruções impõe uma ordem conceptual (modelo). Adaptação à área de utilização (DSP, multimédia: MMX, SSE,... ). A ACI constitui o contrato entre o projectista e o utilizador. A ACI tem frequentemente uma evolução histórica. Ver: Blaauw, Gerrit A.; Brooks, Jr., Frederick P., "Computer Architecture: Concepts and Evolution", Addison Wesley, 1997 (Cota: 004.2/BLAg/COM) c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 3/ Actualmente, os conjuntos de instruções dos três sectores (desktop, servidor e embutido) são basicamente semelhantes. Os processadores para processamento digital de sinal (PDS) são os que apresentam maiores diferenças, quer devido à área de aplicação, quer devido a uma cultura própria dessa área, que ainda recorre frequentemente à programação em assembly. À medida que também aí os programas ficarem mais complexos e o recurso a compiladores for mais alargado, assistir-se-á provavelmente a uma homogeneização dos conjuntos de instruções Os conjuntos de instruções evoluem historicamente: a compatibilidade de código binário é simultaneamente uma benção (serve para manter a base de clientes e de aplicações) e uma maldição (impede o aproveitamento total dos avanços tecnológicos ou arquitecturais). 3

3 Critérios de organização Aspectos gerais Os seguintes aspectos são úteis na análise da arquitectura de um conjunto de instruções: Operandos origem dos operandos modos de endereçamento tipos de operandos Tipos de operações Controlo de fluxo saltos condicionais saltos incondicionais incl. invocação de subrotinas Codificação das instruções c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 4/ A flexibilidade no acesso aos operandos é de grande importância para a geração de código de boa qualidade. Como se verá mais à frente, isso não implica a necessidade de suportar muitas variantes directamente O controlo de fluxo é um dos aspectos mais delicados do conjunto de instruções. Este tipo de instruções é muito frequente (cerca de 15%-20% das instruções executadas) e o seu tratamento é um dos pontos-chave da arquitectura de um CPU. 4

4 Operandos Acesso aos dados Classificação dos conjuntos de instruções A maneira de armazenar dados internos é o critério mais básico de diferenciação. pilha (stack architecture) acumulador (accumulator architecture) conjunto de registos de uso genérico c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 5/ As arquitecturas de conjuntos de instruções (ACI) com mais registos que um acumulador dividem-se em dois grandes tipos: registos de uso específico (para endereços, pilha, etc.) ou de uso genérico, sendo este tipo de registos de todas as arquitecturas comuns pós (Os processadores para PDS são uma das excepções.) 5.2. O sucesso dos registos de uso genérico deve-se a dois aspectos: (i) registos são mais rápidos que memória; (ii) registos podem ser eficientemente usados pelo compilador (para mapear variáveis e reduzir tráfego para memória principal) Para os algoritmos actuais de selecção de registos terem bons resultados, é necessário que exista um número razoável de registos genéricos livres (pelo menos 16). 5

5 Origem dos operandos Operandos Acesso aos dados Mem. Max. ops. Arquitectura Exemplos 0 3 reg-reg Alpha, MIPS, SPARC 1 2 reg-mem IBM 360/370, Intel 80x mem-mem VAX 3 3 mem-mem VAX Tipo Vantagens Desvantagens reg-reg reg-mem mem-mem Codificação simples, comprimento único. Geração de código simplificada. Duração similar. Acesso a dados sem load em separado. Tendem a ter boa codificação de formatos. Compacto. Não ocupa registos com resultados temporários. Número de instruções elevado. Programas mais compridos. Operandos não são equivalentes. Duração varia com a localização dos operandos. Pode restringir o número de registos codificáveis. Comprimento de instruções muito variável. Complexidade de instruções muito variável. Acesso a memória é crítico. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 6/ As duas principais características que dividem arquitecturas com registos de uso genérico (RUG) são: 1. número de operandos: 2 vs. 3; 2. quanto operandos podem residir em memória (de 0 a 3). As combinações apresentadas na tabela cobrem quase todas as alternativas práticas As vantagens e desvantagens referidas na tabela não são absolutas: o seu impacto real depende do compilador usado e da estratégia de implementação em silício A grande maioria das arquitecturas actuais favorece o modelo reg-reg. 6

6 Modos de endereçamento Operandos Acesso aos dados Modo Exemplo Significado registo add R4, R3 R[4]:=R[4]+R[3] imediato add R4,#3 R[4]+3 deslocamento add R4,100(R1) R[R4]:=R[4]+M[100+R[1]] registo indirecto add R4,(R1) R[4]:=R[4]+M[R[1]] indexado add R3,(R1+R2) R[3]:=R[3]+M[R[1]+R[2]] directo add R1,(1001) R[1]:=R[1]+M[1001] mem indirecto add R[r1]:=R[1]+M[M[R[3]]] auto-incremento add R1,(R2)+ R[R1]:=R[1]+M[R[2]] R[2]:=R[2]+d auto-decremento add R1,-(R2) R[2]:=R[2]-d R[1]:=R[1]+M[R[2]] escalado add R1,200(R2)[R3] R[1]:=R[1]+M[200+R[2]+R[3]*d] R0, R1, etc. são registos. M[ ] representa a memória externa. R[ ] representa o banco de registos internos; R[1] é R1, etc. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 7/ Por convenção, os modos de endereçamento incluem a especificação de todos os operandos, incluindo os residentes em registos e os valores constantes (também designados neste contexto por valores imediatos ) O factor de escala d indicado na última linha da tabela é geralmente especificado através do código da operação (opcode). Os valores mais típico são d = 1, 2, 4, As arquitecturas RISC usam frequentemente o modo de deslocamento para simular o modo registo indirecto (com o deslocamento a zero) e o modo de endereçamento directo (com zero no registo de base) Os modos de endereçamento podem permitir uma efectiva redução do número de instruções, mas também podem aumentar significativamente a complexidade da implementação, o que leva geralmente o CPI a baixar. 7

7 Operandos Acesso aos dados Frequência de modos de endereçamento Medidas efectuadas para a arquitectura VAX. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 8/ Os valores empíricos indicados nesta figura (como nas restantes) são meramente indicativos (embora se espere que sejam representativos). Uma avaliação detalhada requereria muito mais dados O modo de acesso registo não está incluído na tabela (representa cerca de 50% das referências totais). Os 50% relativos a referências a memória e valores imediatos repartem-se conforme indicado na figura Os programa foram avaliados no computador VAX porque este suporta todos os modos de endereçamento referidos na tabela anterior. 8

8 Gama de deslocamentos Operandos Acesso aos dados Processador Alpha: CINT2000 (inteiros) e CFP2000 (vírgula flutuante) são subconjuntos de SPEC CPU2000. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 9/ A escolha da gama de endereçamentos é importante porque a dimensão do campo de deslocamento afecta directamente o tamanho da instrução codificada O gráfico não inclui o bit de sinal. A maior parte dos deslocamentos é positiva, mas a maior parte dos deslocamentos grandes (14 bits ou mais) é negativa. O sinal do deslocamento é fortemente influenciado pela organização das estruturas de dados em memória O computador Alpha apenas suporta 16 bits de deslocamento Como em todos as outras medidas, o compilador foi configurado para o melhor nível possível de geração de código. 9

9 Operandos Utilização de operandos imediatos Acesso aos dados Programas e processador são os mesmos da transparência anterior. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 10/ Os valores imediatos são usados em operações aritméticas, comparações (principalmente para saltos condicionais) e em transferências (carregar um registo com um valor constante). Os valores imediatos pode provir de constantes mencionadas no código (geralmente de valor pequeno) e de endereços (geralmente grandes) Cerca de um quarto das transferências de dados e das operações da ALU usam operandos imediatos Loads com valores imediatos não são loads num sentido estrito porque não acedem à memória de dados. 10

10 Operandos Distribuição de valores imediatos Acesso aos dados Programas e processador são os mesmos da transparência anterior. O processador Alpha só suporta valores imediatos até 16 bits. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 11/ Como acontece com os valores dos deslocamentos, o valor das constantes afecta directamente o tamanho das instruções Valores imediatos pequenos são os mais frequentes Valores maiores ocorrem quando endereços de memória são especificados directamente Na arquitectura Alpha, os valores imediatos estão restringidos a 16 bits. Constantes maiores são construídas à custa de duas instruções. 11

11 Operandos Acesso aos dados PDS: modos de endereçamento Modos de endereçamento especiais: circular Também designado por endereçamento modular. Endereços são incrementados até atingirem um valor máximo especificado, sendo depois repostos os valores iniciais (gestão de buffers circulares). bit reverse Modo de endereçamento usado na FFT. Exemplo para 8 itens: 0 (000 2 ) 0 (000 2 ) 1 (001 2 ) 4 (100 2 ) 2 (010 2 ) 2 (010 2 ) 3 (011 2 ) 6 (110 2 ) 4 (100 2 ) 1 (001 2 ) 5 (101 2 ) 5 (101 2 ) 6 (110 2 ) 3 (011 2 ) 7 (111 2 ) 7 (111 2 ) c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 12/ Processamento digital de sinal é caracterizado por um núcleo relativamente pequeno de tarefas num ambiente relativamente uniforme: processamento repetitivo (e restringido temporalmente) de sequências de números. Por isso, é frequente a necessidade de gerir buffers que se vão enchendo ou esvaziando. O modo de endereçamento circular associa a cada registo de endereçamento (registos especiais para controlar o acesso a memória) um par de outros registos que contém os limites do buffer A transformada rápida de Fourier (FFT) discreta, um algoritmo muito usado, produz o vector de resultados com os elementos dispostos de uma forma diferente do vector de entrada. Um modo especial de endereçamento permite percorrer os elementos do resultado pela ordem desejada. 12

12 Operandos Acesso aos dados PDS: frequência de modos de utilização Modo de endereçamento Símbolo Freq. (%) imediato #num deslocamento ARx(num) registo indirecto *ARx directo num auto-incremento, pré-incremento *+ARx 0 auto-incremento, pós-incremento *ARx auto-incremento, pré-incremento 16b imediato *+ARx(num) 0.77 auto-incremento, pré-incremento, circular *+ARx% 0.08 auto-incremento, pós-incremento 16b imediato, circular *ARx+(num)% 0 auto-incremento, pós-incremento com AR0 *ARx auto-incremento, pós-incremento com AR0, circular *ARx+0% 2.15 auto-incremento, pós-incremento com AR0, bit reverse *ARx+0B 0 autodecremento, pós-decremento *ARx autodecremento, pós-decremento, circular *ARx-% 0.04 autodecremento, pós-decremento com AR0 *ARx autodecremento, pós-decremento com AR0, circular *ARx- 0% 0.08 autodecremento, pós-decremento com AR0, bit reverse *ARx- 0B 0 Processador: TI TMS320C54x; 54 rotinas em assembly; ver: c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 13/ Os compiladores não sabem aproveitar os modos especiais de endereçamento, pelo que é frequente o recurso a bibliotecas de funções escritas em linguagem assembly. Mesmo essas bibliotecas não usam os modos de endereçamento mais incomuns À medida que as aplicações de PDS ficarem mais complexas, a dependência de compiladores aumentará e a utilização de modos de endereçamento especiais diminuirá Embora as medidas tenham sido feitas apenas para um biblioteca, não deixam de tornar visíveis os efeitos referidos. 13

13 Operandos Acesso aos dados Modos de endereçamento: sumário Conclusões quantitativas: Novas arquitecturas suportam os seguintes modos de endereçamento: deslocamento, imediato, indirecto via registo. [75%-99%] Tamanho de deslocamento pelo menos bits. [75% 99%] Valor imediato entre 8 16 bits. [50% 80%] Mesmo usando rotinas assembly produzidas manualmente, os modos de endereçamento mais exóticos de processadores PDS são pouco usados. Os modos de endereçamento dos conjuntos de instruções para PCs devem corresponder às necessidades/capacidades dos compiladores. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 14/ Os resultados apresentados apenas justificam a plausibilidade destas recomendações. É necessário muito trabalho adicional para as tornar independentes dos sistemas particulares usados na avaliação A transposição destas conclusões para sistemas de 64 bits pode não ser directa. Exemplo concreto: as gamas de deslocamento permanecerão iguais em espaços de endereçamento muito maiores? A disponibilidade de espaços de endereçamento maiores não levará a outro tipo de organização das estruturas de dados em memória? 14

14 Operandos Operandos: tipos e tamanhos Tipos de dados Tipo: codificado no opcode codificado nos operandos: tagged data Operandos comuns: caracteres half word word vírgula flutuante, precisão simples vírgula flutuante, precisão dupla 8 bits 16 bits 32 bits 1 palavra 2 palavras Representação: inteiros complemento para 2 caracteres ASCII ou Unicode 16 bits vírgula flutuante norma IEEE 754 strings cadeias de bytes decimal BCD empacotado ou desempacotado c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 15/ Todas as arquitecturas actuais codificam o tipo de dados no código da instrução, i.e., a mesma operação com dois tipos de dados tem códigos diferentes. Por exemplo, a soma de dois números inteiros e a soma de dois números de vírgula flutuante têm dois códigos diferentes. Mesmo a soma de números inteiros tem códigos diferentes conforme se trata de operandos de 16 ou de 32 bits (por exemplo). O seguinte artigo inclui uma discussão das vantagens e desvantagens de etiquetar os dados: E.F. Gehringer & J.L. Keedy, Tagged architecture: How compelling are its advantages?, Proceedings of the 12th Annual International Symposium on Computer Architecture, pp , Etiquetas de dados foram muito usadas nos anos 80 em computadores especializados na execução de Lisp e/ou Scheme. Ver: D.A. Moon, Architecture of the Symbolics 3600, Proceedings of the 12th Annual International Symposium on Computer Architecture, pp ,

15 Operandos Tipos de dados Distribuição do tamanho dos operandos Resultados para CINT2000 e CFP2000 com microprocessador Alpha. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 16/ O tipo double word inclui números em vírgula flutuante de precisão dupla e endereços, porque se trata de um processador de 64 bits. Num processador de 32 bits, a grande maioria dos acessos a dados de 64 bits em programas inteiros seria antes acessos do tipo word Em algumas arquitecturas, os dados em registos podem ser acedidos como bytes ou half words. Este modo de operação é relativamente infrequente: 12% de referências a registos no VAX (i.e., cerca de 6% das referências a dados). 16

16 Operandos Tipos de dados PDS: tipos de operandos vértices: 4 coordenadas em vírgula flutuante, 32 bits cada pixel: 32 bits (RGB+A) vírgula fixa Ger. Ano Exemplo Dados Acumulador TI TMS Motorola DSP Motorola DSP TI TMS3200C dados operação transferência 16 bits 89.3% 89.0% para TMS320C540X 32 bits 10.7% 11.0% vírgula fixa c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 17/ A aritmética de vírgula fixa requer o tratamento explícito de eventuais expoentes (ou factores de escala). Em alguns casos, um expoente pode ser partilhado por vários números blocked floating point Para auxiliar o tratamento desses factores e a conversão de números entre diferentes escalas, os processadores PDS têm frequentemente acumuladores com mais bits que os operandos. Dessa forma é possível evitar a acumulação de erros de arredondamento A vantagem da utilização de vírgula fixa está no facto de a complexidade dos circuitos associados ser praticamente igual à dos circuitos de tratamento de números inteiros. 17

17 Tipos de operações Operações Tipo de operador Aritmética e lógica Transferência de dados Controlo Sistema Vírgula flutuante Decimal Strings Gráficos Exemplos aritmética inteira e operações lógicas: somar, subtrair, multiplicar, negar, and, or load-store, instruções move com endereçamento de memória saltos condicionais e incondicionais, invocação de subrotinas e retorno, traps chamadas ao sistema operativo, gestão de memória virtual somar, multiplicar, funções transcendentais aritmética em BCD, conversão ASCII BCD mover, comparar, pesquisar operações sobre pixels e vértices, compressão/descompressão c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 18/ Existem ainda outras classes de operações. Por exemplo. (i) tratamento de interrupções; (ii) comunicação com periféricos; (iii) operações em modo supervisor: gestão de permissões, de memória virtual e de caches; (iv) sincronização entre processadores As instruções de vírgula flutuante são muitas vezes optativas. Sistemas embutidos usam frequentemente versões sem suporte directo para estas operações. Mesmo a arquitectura MIPS delega as instruções de vírgula flutuante num coprocessador (embora este não seja fisicamente separado do processador principal) Na arquitectura IA-32, as instruções de vírgula flutuante seguem um modelo diferente do processador principal (pilha interna). Originalmente, a sua implementação era feita por um coprocessador separado, o que ainda se reflecte no modelo de utilização actual. 18

18 Operações Operações da família IA-32 Posição Instruções 80x86 N o méd. instr. exec. (%) 1 leitura load 22 2 salto condicional 20 3 comparação 16 4 escrita store 12 5 add 8 6 and 6 7 sub 5 8 mov. reg reg 4 9 call 1 10 return 1 total instruções mais frequentes; média dos cinco programas SPECint92. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 19/ É natural que as frequências de utilização de instruções variem muito. No caso da arquitectura IA-32, os dez tipos de instruções da tabela representam 96% das instruções usadas (não inclui instruções de vírgula flutuante) De acordo com o princípio geral de favorecer o desempenho das instruções mais usadas (que também são as mais simples), as instruções da tabela são aquelas para as quais o projectista deve tentar garantir o melhor desempenho. 19

19 Operações para PDS Operações Categoria HP-PA MAX2 Pentium MMX PowerPC AltiVec SPARC VIS soma/subtracção 4H 8B, 4H, 2W 16B, 8H, 4W 4H,2W adi./sub. saturada 4H 8B, 4H 16B, 8H, 4W multiplicação 4H 16B, 8H comparação 8B, 4H, 2W 16B, 8H, 4W 4H, 2W desl. esq./dir. 4H 4H, 2W 16B, 8H, 4W desl. aritm. dir. 4H 16B, 8H, 4W multiplicar+somar 8H desloc.+somar (sat.) 4H and/or/xor 8B, 4H, 2W 8B, 4H, 2W 16B, 8H, 4W 8B, 4H, 2W dif. absoluta 16B, 8H, 4W 8B max/min 16B, 8H, 4W permutar/shuffle 4H 16B, 8H, 4W B=byte (8 bits), H=half word (16 bits), W=word (32 bits). 8B significa: 8 operações em paralelo sobre bytes. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 20/ O processamento de informação multimédia é condicionado pelos limites da percepção humana, requerendo por isso dados com muito menos que 64 bits. Daí existir a possibilidade de usar os mesmos recursos para executar várias instruções simultaneamente. Por exemplo, é possível fazer 4 somas de 16 bits com os recursos de um somador de 64 bits. Este estilo de instruções pertence à categoria SIMD (single-instruction multiple-data) As arquitecturas mais populares foram aumentadas com este tipo de instruções. A tabela mostra alguns exemplos. Todos se baseiam numa ALU de 64 bits excepto o conjunto AltiVec, que se baseia numa ALU de 128 bits Os processadores PDS também fornecem algumas instruções deste tipo (especialmente as correspondentes às três primeiras linhas) mas com algumas variantes: saturação (quando existe overflow, o resultado permanece no máximo valor possível); utilização de acumuladores de maior capacidade e consequente necessidade de fornecer instruções de arredondamento para tamanhos menores; instruções de multiplicação-acumulação. 20

20 Controlo de fluxo Instruções para controlo de fluxo Resultados para CINT2000 e CFP2000 com microprocessador Alpha. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 21/ As instruções de transferência do fluxo de processamento têm modos de endereçamento e um comportamento diferentes dos das outras instruções. Daí a necessidade de as considerar separadamente Os quatro tipos principais de modificações do fluxo de processamento são: 1. Saltos condicionais (branches); 2. Saltos incondicionais (jumps); 3. Invocação de subrotinas; 4. Retorno de subrotinas Existem ainda outras situações em que o fluxo de controlo é modificado: tratamento de interrupções e de excepções (internas) (traps). 21

21 Controlo de fluxo Modos de endereçamento para controlo de fluxo relativo ao program counter: código independente da posição (PIC) retornos e saltos indirectos são feitos via registos (ou endereços em memória) instruções case/switch funções virtuais/métodos OO funções de ordem superior ou apontadores para funções bibliotecas dinâmicas partilhadas (.dll/.so) Resultados para CINT2000 e CFP2000 com microprocessador Alpha. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 22/ O endereço de destino de uma transferência de controlo deve ser sempre especificado. A especificação é geralmente explícita, com excepção do retorno de subrotinas (e do tratamento de interrupções/excepções) A maneira mais comum de especificar o endereço de destino é relativamente ao valor do program counter (endereço da instrução actual) A especificação de endereçamento relativo permite obter código independente da posição (PIC: position independent code) Cerca de 75% dos saltos condicionais relativos da tabela são para a frente (deslocamento relativo positivo) Para retorno de subrotinas e saltos indirectos o endereço de destino deve ser especificado pelo conteúdo de um registo ou de uma posição de memória (através de um modo de endereçamento) Por exemplo, na arquitectura IA-32 o retorno de subrotina vai buscar o endereço de retorno ao topo de uma pilha (mantida em memória central); o endereço do topo da pilha é mantido num registo reservado para esse efeito (ESP). 22

22 Controlo de fluxo Especificação de condições para saltos Nome Exemplos Tipo de teste Vantagens Desvantagens Código de condição (CC) 80x86, ARM, PowerPC, SPARC Verifica bits especiais determinados pela ALU. Condição é gratuita. Informação de estado extra. Restrições sobre a ordem das instruções. Registo de condição Alpha, MIPS Testa registo arbitrário com o resultado de uma operação. Simples. Gasta um registo. Compara e salta HP-PA, VAX Comparação faz parte do salto. Uma instrução em vez de duas. Impacto negativo sobre pipeline. Frequentemente são usados técnicas diferentes para saltos baseados em comparações inteiras ou com vírgula flutuante. Computadores com compara-e-salta limitam frequentemente o tipo de comparações; comparações complexas usam registos. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 23/ Compara-e-salta refere-se a instruções de salto condicional com especificação do teste a executar. Geralmente esta comparação são um subconjunto simples das instruções de teste. Esta abordagem pode ser usada em conjunto com as outras duas A utilização de um registo de códigos de condição (flags) pode criar dependências entre instruções, quando existe apenas um conjunto de bits para o seu armazenamento Processadores PDS têm frequentemente uma instrução de iteração (repeat), que repete um conjunto de instruções um número fixo de vezes (indicado num registo). A sua utilização justifica-se por estas aplicações terem frequentemente núcleos de iterações muito pequenos, em que o overhead de controlo de ciclo poderia ser relativamente grande. 23

23 Controlo de fluxo Frequência de comparações em saltos relativos Resultados para CINT2000 e CFP2000 com microprocessador Alpha. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 24/ Para ajuda a determinar que tipo de testes devem ser combinados com o salto condicional numa instrução do tipo compara-e-salta é importante determinar a frequência relativa dos testes simples Os resultados da tabela dizem respeito a comparações inteiras e de vírgula flutuante. 24

24 Codificação de instruções Importância da codificação de instruções A decisão mais importante é a de como codificar os modos de endereçamento. Depende de: número de registos gama de modos de endereçamento grau de independência entre operações e modos A codificação procura equilibrar três aspectos diferentes: usar o maior número possível de registos e modos de endereçamento; limitar o comprimento médio dos programas (e, portanto, o comprimento médio das instruções); facilitar o tratamento das instruções na presença de pipelines. descodificação fácil detecção precoce de dependências c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 25/ A codificação é directamente responsável pela capacidade de expandir mais ou menos facilmente o conjunto de instruções de uma arquitectura A codificação também afecta directamente o tamanho do programa em memória (memory footprint), o que é bastante importante para os sistemas embutidos. 25

25 Codificação de instruções Esquemas básicos de codificação c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 26/ Especificador de endereço (address specifier): indica qual o modo de endereçamento a usar. É usado em arquitecturas que têm muitos operandos e modos de endereçamento diferentes Numa arquitectura load-store, as instruções de acesso a memória apenas têm um operando em memória e um número reduzido de modos de endereçamento: este pode ser codificado directamente no código da operação A codificação variável beneficia o tamanho dos programas. 26

26 Codificação de instruções Redução de tamanho de programas RISC Em aplicações embedded, a dimensão dos programas é um factor importante instruções fixas de 32 bits são um problema. Soluções: conjuntos de instruções híbridos com instruções de 16 bits (menos operações, menos operandos, endereços menores, etc.) reduções até 40% (consultar também o apêndice C) compressão dos programas (com descompressor embutido no microprocessador): CodePack reduções entre 35%-40% com diminuição de desempenho de 10% conjunto de instruções RISC de 16 bits (SuperH da Hitachi) Codificação variável beneficia o tamanho do código, codificação fixa melhora o desempenho. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 27/ Nos sistemas embutidos, a memória contribui bastante para o preço final (> 30%) e, eventualmente, para o consumo (utilização de memória estática). 27

27 Geração de código Relação entre ACI e compiladores Quase todos os programas são escritos em linguagens de alto nível. ACI é o alvo dos compiladores; ACI não é o alvo dos programadores. Hoje em dia é essencialmente impossível separar a tecnologia de compilação da arquitectura e vice-versa. A qualidade do compilador afecta fortemente o desempenho do processador. Adaptação da ACI às características de linguagens de alto nível. manipulação de pilha, zona global e zona de alocação dinâmica (heap) Os processadores PDS são um mau exemplo de (não-)cooperação entre arquitectos de hardware e de compiladores. É muito difícil habilitar o compilador a aproveitar os modos adicionais de endereçamento bem como as instruções especializadas. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 28/ Praticamente todas as arquitecturas modernas são influenciadas por considerações relativas à geração automática de código. Em alguns casos, a utilização eficaz do processador sem um compilador/optimizador é praticamente inviável, dada a necessidade de conhecer a operação detalhada do CPU para avaliar do impacto da combinação das diferentes operações Os processadores topo-de-gama actuais podem ter simultaneamente mais de uma centena de instruções em execução. Avaliar o impacto da preferência por um dado segmento de código neste contexto é uma tarefa muito complexa, que tem que ser refeita para cada modelo do processador Não é realista avaliar o desempenho de um processador actual sem usar um compilador optimizador. Todos os resultados mostrados nestas transparências foram obtidos com compiladores apropriados. 28

28 Geração de código Exemplos de operações de optimização Optimização de alto nível (a nível do código-fonte) Integração de subrotinas; Optimização local (em blocos básicos) Eliminação de subexpressões comuns; Propagação de constantes; Optimização de expressões aritméticas; Optimizações globais Eliminação global de subexpressões; Propagação de cópias; Deslocação de código para fora dos ciclos; Eliminação de variáveis de indução; Optimizações dependentes do processador Redução de força ; Escalonamento de operações; Optimização de deslocamentos em saltos condicionais. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 29/ A complexidade de um compilador é uma das principais limitações ao número de optimizações que pode ser efectuado A maior parte das optimizações é sensível à ordem porque são efectuadas (the phase-ordering problem) Um tarefa importante do compilador é atribuir variáveis a registos. Trata-se de um problema NP-completo, mas existem heurísticas quase-lineares de muito boa qualidade. Contudo, as heurísticas só dão bons resultados se existir um número razoável de registos de uso geral livres (pelo menos 16 para valores inteiros e registos adicionais para dados em vírgula flutuante). 29

29 Geração de código Impacto das optimizações c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 30/ A figura indica claramente que a utilização de programas não optimizados para a avaliação de desempenho é um erro Significado dos níveis de optimização (cada nível inclui o anterior): 0 Sem optimização. 1 Optimizações locais, sequenciamento de código e alocação local de registos. 2 Optimizações globais, transformação de ciclo e alocação global de registos. 3 Integração de rotinas (inlining). 30

30 Geração de código Características favoráveis de uma ACI Regularidade: os três principais componentes de um conjunto de instruções (operações, tipos de dados e modos de endereçamento) devem ser independentes. Contra-exemplo: restringir os registos que podem ser usados com certas classes de instruções. Fornecer primitivas, não soluções. Recursos especializados para certas funções podem não ter utilidade geral. Simplificar a avaliação de alternativas. A complexidade do processamento (pipelines) obriga o compilador a ter em conta muitas alternativas. Fornecer instruções que permitam usar informação determinada em tempo de compilação. c JCF, 2004 AAC (FEUP/LEIC) Arquitectura do conjunto de instruções 31/ As extensões multimédia das arquitecturas actuais violam conscientemente quase todas as regras: são soluções, não primitivas; têm poucos registos; os tipos de dados não têm correspondência nas linguagens de alto nível. Na verdade, estas arquitecturas são versões reduzidas e incompletas de processadores vectoriais usados em cálculo científico Como resultado destas características, as instruções para multimédia são apenas usadas em algumas subrotinas preparadas manualmente. 31

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy)

Capítulo 4. MARIE (Machine Architecture Really Intuitive and Easy) Capítulo 4 João Lourenço Joao.Lourenco@di.fct.unl.pt Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa 2007-2008 MARIE (Machine Architecture Really Intuitive and Easy) Adaptado dos transparentes

Leia mais

Arquitetura de Computadores

Arquitetura de Computadores Arquitetura de Computadores Prof. Fábio M. Costa Instituto de Informática UFG 1S/2004 ISA: Arquitetura de Conjunto de Instruções Roteiro Introdução Classificação de conjuntos de instruções Endereçamento

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64

Arquitecturas Alternativas. Pipelining Super-escalar VLIW IA-64 Arquitecturas Alternativas Pipelining Super-escalar VLIW IA-64 Pipeline de execução A execução de uma instrução passa por várias fases: Vimos o ciclo: fetch, decode, execute fetch decode execute instrução

Leia mais

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2)

Conjunto de instruções do CPU. Arquitectura de um computador. Definição das instruções (1) Definição das instruções (2) Arquitectura de um computador Caracterizada por: Conjunto de instruções do processador (ISA Estrutura interna do processador (que registadores existem, etc Modelo de memória (dimensão endereçável, alcance

Leia mais

1.3. Componentes dum sistema informático HARDWARE SOFTWARE

1.3. Componentes dum sistema informático HARDWARE SOFTWARE 1.3. Componentes dum sistema informático Computador Sistema Informático HARDWARE SOFTWARE + Periféricos Sistema Operativo Aplicações HARDWARE - representa todos os componentes físicos de um sistema informático,

Leia mais

Aula 26: Arquiteturas RISC vs. CISC

Aula 26: Arquiteturas RISC vs. CISC Aula 26: Arquiteturas RISC vs CISC Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Arquiteturas RISC vs CISC FAC 1 / 33 Revisão Diego Passos

Leia mais

Programação de Sistemas

Programação de Sistemas Programação de Sistemas Introdução à gestão de memória Programação de Sistemas Gestão de memória : 1/16 Introdução (1) A memória central de um computador é escassa. [1981] IBM PC lançado com 64KB na motherboard,

Leia mais

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias:

3/9/2010. Ligação da UCP com o barramento do. sistema. As funções básicas dos registradores nos permitem classificá-los em duas categorias: Arquitetura de Computadores Estrutura e Funcionamento da CPU Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Revisão dos conceitos básicos O processador é o componente vital do sistema de

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Arquitectura do conjunto de instruções

Arquitectura do conjunto de instruções Arquitectura do conjunto de instruções João Canas Ferreira Outubro de 2006 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3ª. ed., MKP 2006 AAC (FEUP/MIEIC)

Leia mais

Informática I. Aula 5. http://www.ic.uff.br/~bianca/informatica1/ Aula 5-13/05/2006 1

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

Leia mais

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel

O Nível ISA. Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel O Nível ISA Modelo de programação Arquitecturas CISC e RISC Introdução ao IA-32 da Intel Nível ISA (Instruction Set Architecture) Tipos de dados Inteiros (1, 2, 4 ou 8 bytes) Servem também para representar

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas

Conjunto de instruções. O Conjunto de Instruções. Conjunto de instruções. Instruções típicas. Instruções típicas. Instruções típicas Conjunto de instruções O Conjunto de Instruções ISA Instruction Set Architecture Alguns conceitos... Linguagem máquina Combinação de 0 s e 1 s organizados segundo palavras que são as instruções que o processador

Leia mais

Introdução aos Sistemas Operativos

Introdução aos Sistemas Operativos Introdução aos Sistemas Operativos Computadores e Redes de Comunicação Mestrado em Gestão de Informação, FEUP 06/07 Sérgio Sobral Nunes mail: sergio.nunes@fe.up.pt web: www.fe.up.pt/~ssn Sumário Definição

Leia mais

Componentes do Computador e. aula 3. Profa. Débora Matos

Componentes do Computador e. aula 3. Profa. Débora Matos Componentes do Computador e modelo de Von Neumann aula 3 Profa. Débora Matos O que difere nos componentes que constituem um computador? Princípios básicos Cada computador tem um conjunto de operações e

Leia mais

Aula 14: Instruções e Seus Tipos

Aula 14: Instruções e Seus Tipos Aula 14: Instruções e Seus Tipos Diego Passos Universidade Federal Fluminense Fundamentos de Arquiteturas de Computadores Diego Passos (UFF) Instruções e Seus Tipos FAC 1 / 35 Conceitos Básicos Diego Passos

Leia mais

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Sumário Unidade Lógica Aritmetrica Registradores Unidade Lógica Operações da ULA Unidade de Ponto Flutuante Representação

Leia mais

Desempenho de Computadores

Desempenho de Computadores Desempenho de Computadores João Canas Ferreira Arquitectura de Computadores FEUP/LEIC Contém figuras de Computer Organization and Design, D. Patterson & J. Hennessey, 3ª. ed., MKP Tópicos Os vários aspectos

Leia mais

Modos de entrada/saída

Modos de entrada/saída Arquitectura de Computadores II Engenharia Informática (11545) Tecnologias e Sistemas de Informação (6621) Modos de entrada/saída Fonte: Arquitectura de Computadores, José Delgado, IST, 2004 Nuno Pombo

Leia mais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

Leia mais

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema.

O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. O processador é composto por: Unidade de controlo - Interpreta as instruções armazenadas; - Dá comandos a todos os elementos do sistema. Unidade aritmética e lógica - Executa operações aritméticas (cálculos);

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1 Entrada e Saída Interface entre periféricos, processador e memória Fonte: Minho - Portugal 1 Ligação Processador/Memória - Periférico Processador Memória Controlo Dados Controlador Fonte: Minho - Portugal

Leia mais

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann

NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann Universidade Federal de Santa Maria NOTAS DE AULA Prof. Antonio Carlos Schneider Beck Filho (UFSM) Prof. Júlio Carlos Balzano de Mattos (UFPel) Arquitetura de Von Neumann O modelo (ou arquitetura) de von

Leia mais

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos. Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.

Leia mais

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software

ANHANGUERA EDUCACIONAL. Capítulo 2. Conceitos de Hardware e Software ANHANGUERA EDUCACIONAL Capítulo 2 Conceitos de Hardware e Software Hardware Um sistema computacional é um conjunto de de circuitos eletronicos. Unidade funcionais: processador, memória principal, dispositivo

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

Leia mais

Conjunto de Instruções e Arquitectura p.1

Conjunto de Instruções e Arquitectura p.1 Conjunto de Instruções e Arquitectura Luís Nogueira luis@dei.isep.ipp.pt Departamento Engenharia Informática Instituto Superior de Engenharia do Porto Conjunto de Instruções e Arquitectura p.1 Organização

Leia mais

RISC simples. Aula 7. 31 de Março de 2005 1

RISC simples. Aula 7. 31 de Março de 2005 1 RISC simples Aula 7 31 de Março de 2005 1 Estrutura desta aula Principais características dos processadores RISC Estrutura de um processador (MIPS) sem pipeline, de ciclo único O datapath ou circuito de

Leia mais

Algumas características especiais

Algumas características especiais Algumas características especiais Tópicos o Medidas de desempenho o CISC versus RISC o Arquiteturas Superescalares o Arquiteturas VLIW Medidas de desempenho Desempenho é muito dependente da aplicação MIPS:

Leia mais

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados Organização de um Computador Típico Memória: Armazena dados e programas. Processador (CPU - Central Processing

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Aspectos gerais de arquitecturas de computadores. Prejuízos por downtime. Tendências de mercado

Aspectos gerais de arquitecturas de computadores. Prejuízos por downtime. Tendências de mercado Aspectos gerais de arquitecturas de computadores João Canas Ferreira Março de 2004 Áreas de aplicação Tecnologia c JCF, 2004 ASPD (FEUP/LEEC) Aspectos gerais de arquitecturas de computadores 1/40 c JCF,

Leia mais

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto:

Processadores BIP. Conforme Morandi et al (2006), durante o desenvolvimento do BIP, foram definidas três diretrizes de projeto: Processadores BIP A família de processadores BIP foi desenvolvida por pesquisadores do Laboratório de Sistemas Embarcados e Distribuídos (LSED) da Universidade do Vale do Itajaí UNIVALI com o objetivo

Leia mais

ARQUITETURA DE COMPUTADORES - 1866

ARQUITETURA DE COMPUTADORES - 1866 7 Unidade Central de Processamento (UCP): O processador é o componente vital do sistema de computação, responsável pela realização das operações de processamento e de controle, durante a execução de um

Leia mais

Sistemas Computacionais II Professor Frederico Sauer

Sistemas Computacionais II Professor Frederico Sauer Sistemas Computacionais II Professor Frederico Sauer Livro-texto: Introdução à Organização de Computadores 4ª edição Mário A. Monteiro Livros Técnicos e Científicos Editora. Atenção: Este material não

Leia mais

Arquitetura de Computadores. Tipos de Instruções

Arquitetura de Computadores. Tipos de Instruções Arquitetura de Computadores Tipos de Instruções Tipos de instruções Instruções de movimento de dados Operações diádicas Operações monádicas Instruções de comparação e desvio condicional Instruções de chamada

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

Leia mais

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva

Arquitetura de Computadores - Arquitetura RISC. por Helcio Wagner da Silva Arquitetura de Computadores - Arquitetura RISC por Helcio Wagner da Silva Introdução RISC = Reduced Instruction Set Computer Elementos básicos: Grande número de registradores de propósito geral ou uso

Leia mais

ULA Sinais de Controle enviados pela UC

ULA Sinais de Controle enviados pela UC Solução - Exercícios Processadores 1- Qual as funções da Unidade Aritmética e Lógica (ULA)? A ULA é o dispositivo da CPU que executa operações tais como: Adição Subtração Multiplicação Divisão Incremento

Leia mais

Arquitetura de Computadores I

Arquitetura de Computadores I Arquitetura de Computadores I Pipeline -- Conflito de dados paradas e adiantamentos -- Conflito de controle detecção de desvios e descarte de instruções -- Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno

Leia mais

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores.

Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. Tais operações podem utilizar um (operações unárias) ou dois (operações binárias) valores. 7.3.1.2 Registradores: São pequenas unidades de memória, implementadas na CPU, com as seguintes características:

Leia mais

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento

Processador ( CPU ) E/S. Memória. Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 1 Processadores Computador Processador ( CPU ) Memória E/S Sistema composto por Processador, Memória e dispositivos de E/S, interligados por um barramento 2 Pastilha 3 Processadores (CPU,, Microcontroladores)

Leia mais

Computadores de Programação (MAB353)

Computadores de Programação (MAB353) Computadores de Programação (MAB353) Aula 6: 27 de abril de 2010 1 Recaptulando operações já estudadas Operações lógicas 2 3 Exercícios Referências bibliográficas Recaptulando operações já estudadas Operações

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

CISC RISC Introdução A CISC (em inglês: Complex Instruction Set Computing, Computador com um Conjunto Complexo de Instruções), usada em processadores Intel e AMD; suporta mais instruções no entanto, com

Leia mais

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional

Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional Capítulo 5 Nível ISA Primeiro nível desenvolvido, historicamente Atualmente existente entre o nível da microarquitetura e do sistema operacional Compatibilidade com os níveis ISA anteriores!! => Pressão

Leia mais

Sequenciamento dinâmico

Sequenciamento dinâmico Sequenciamento dinâmico João Canas Ferreira Outubro de 2004 Contém figuras de Computer Architecture: A Quantitative Approach, J. Hennessey & D. Patterson, 3 a. ed., MKP c JCF, 2004 AAC (FEUP/LEIC) Sequenciamento

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Arquitetura de processadores: RISC e CISC

Arquitetura de processadores: RISC e CISC Arquitetura de processadores: RISC e CISC A arquitetura de processador descreve o processador que foi usado em um computador. Grande parte dos computadores vêm com identificação e literatura descrevendo

Leia mais

Arquitetura de Computadores - Revisão -

Arquitetura de Computadores - Revisão - Arquitetura de Computadores - Revisão - Principais funções de um Sistema Operacional Componentes básicos da Arquitetura Barramentos Registradores da CPU Ciclo de Instruções Interrupções Técnicas de E/S

Leia mais

RISC - Reduced Instruction Set Computer

RISC - Reduced Instruction Set Computer Arquietura MAC 412- Organizãção de Computadores - Siang W. Song Baseado no livro de Tanenbaum - Structured Computer Organization Arquietura Índice 1 Avaliação da arquitetura CISC (microprogramada) Críticas

Leia mais

Edeyson Andrade Gomes

Edeyson Andrade Gomes Sistemas Operacionais Conceitos de Arquitetura Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Máquinas de Níveis Revisão de Conceitos de Arquitetura 2 Máquina de Níveis Máquina de níveis Computador

Leia mais

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I. 2002 Juliana F. Camapum Wanderley Organização e Arquitetura de Computadores Aula 10 Ponto Flutuante Parte I 2002 Juliana F. Camapum Wanderley http://www.cic.unb.br/docentes/juliana/cursos/oac OAC Ponto Flutuante Parte I - 1 Panorama Números

Leia mais

3. Arquitetura Básica do Computador

3. Arquitetura Básica do Computador 3. Arquitetura Básica do Computador 3.1. Modelo de Von Neumann Dar-me-eis um grão de trigo pela primeira casa do tabuleiro; dois pela segunda, quatro pela terceira, oito pela quarta, e assim dobrando sucessivamente,

Leia mais

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01 Unidade Central de Processamento (CPU) Processador Renan Manola Introdução ao Computador 2010/01 Componentes de um Computador (1) Computador Eletrônico Digital É um sistema composto por: Memória Principal

Leia mais

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir.

Pipeline. Todos os estágios devem estar prontos ao mesmo tempo para prosseguir. O throughput de um pipeline é determinado pela freqüência com que uma instrução sai do pipeline Todos os estágios devem estar prontos ao mesmo tempo para prosseguir O tempo requerido para mover uma instrução

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

Escola Secundária de Emídio Navarro

Escola Secundária de Emídio Navarro Escola Secundária de Emídio Navarro Curso Secundário de Carácter Geral (Agrupamento 4) Introdução às Tecnologias de Informação Ficha de trabalho N.º 1 1. Refere algumas das principais áreas das Tecnologias

Leia mais

BARRAMENTO DO SISTEMA

BARRAMENTO DO SISTEMA BARRAMENTO DO SISTEMA Memória Principal Processador Barramento local Memória cachê/ ponte Barramento de sistema SCSI FireWire Dispositivo gráfico Controlador de vídeo Rede Local Barramento de alta velocidade

Leia mais

Organização de Computadores 2005/2006 Processadores Intel

Organização de Computadores 2005/2006 Processadores Intel Organização de Computadores 2005/2006 Processadores Intel Paulo Ferreira paf a dei.isep.ipp.pt Março de 2006 Pré História 2 8080.............................................................................................

Leia mais

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S Estruturas de sistemas de computação Sumário! Operação de um sistema de computação! Estruturas de E/S! Estruturas de armazenamento! Hierarquia de armazenamento 2 1 Arquitectura de um sistema de computação

Leia mais

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar

Arquitetura de Computadores RISC x CISC. Gustavo Pinto Vilar Arquitetura de Computadores RISC x CISC Gustavo Pinto Vilar PPF / DPF Papiloscopista Policial Federal Pós-Graduado em Docência do Ensino Superior UFRJ Graduado em Ciência da Computação e Processamento

Leia mais

Memória Cache. Prof. Leonardo Barreto Campos 1

Memória Cache. Prof. Leonardo Barreto Campos 1 Memória Cache Prof. Leonardo Barreto Campos 1 Sumário Introdução; Projeto de Memórias Cache; Tamanho; Função de Mapeamento; Política de Escrita; Tamanho da Linha; Número de Memórias Cache; Bibliografia.

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Evolução dos Processadores

Evolução dos Processadores Evolução dos Processadores Arquitetura Intel Arquitetura x86 Micro Arquitetura P5 P6 NetBurst Core Processador Pentium Pentium Pro Pentium II Pentium III Pentium 4 Pentium D Xeon Xeon Sequence Core 2 Duo

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X

ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA X Índice Traduzindo e iniciando uma aplicação Compiladores Assembladores Linkers Loaders DLLs Iniciando um programa em Java Após toda a matéria abordada nesta

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação 36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas

Leia mais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 1 2 Revisão de Hardware 2.1 Hardware O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware 2.1.1 Processador O Processador

Leia mais

Introdução aos Computadores

Introdução aos Computadores Os Computadores revolucionaram as formas de processamento de Informação pela sua capacidade de tratar grandes quantidades de dados em curto espaço de tempo. Nos anos 60-80 os computadores eram máquinas

Leia mais

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores

Leia mais

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores 1 Introdução à Arquitetura de Computadores Hardware e software Organização de um computador: Processador: registradores, ALU, unidade de controle Memórias Dispositivos de E/S Barramentos Linguagens de

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC

UNIVERSIDADE FEDERAL DE SANTA CATARINA MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC UNIVERSIDADE FEDERAL DE SANTA CATARINA DANIEL CARLOS CASAROTTO JOSE OTÁVIO CARLOMAGNO FILHO MODELAGEM DE UMA PLATAFORMA VIRTUAL PARA SISTEMAS EMBUTIDOS BASEADA EM POWERPC Florianópolis, 2004 DANIEL CARLOS

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Propriedades Domínio - Valores que um tipo de dado pode assumir; Gama de variação - N.º de valores que um dado pode assumir; Precisão Distância entre dois valores consecutivos Operações

Leia mais

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1 Introdução à Organização e Arquitetura de Computadores Prof. Leonardo Barreto Campos 1 Sumário Introdução; Evolução dos Computadores; Considerações da Arquitetura de von Neumann; Execução de uma instrução

Leia mais

Gestor de Processos. Gestor de Processos

Gestor de Processos. Gestor de Processos Gestor de Processos Núcleo do Sistema Operativo Gestor de Processos Entidade do núcleo responsável por suportar a execução dos processos Gestão das Interrupções Multiplexagem do Processador Despacho efectua

Leia mais

Visão Geral de Sistemas Operacionais

Visão Geral de Sistemas Operacionais Visão Geral de Sistemas Operacionais Sumário Um sistema operacional é um intermediário entre usuários e o hardware do computador. Desta forma, o usuário pode executar programas de forma conveniente e eficiente.

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Caminho de Dados Slide 1 Sumário Introdução Convenções Lógicas de Projeto Construindo um Caminho de Dados O Controle da ULA Projeto da Unidade de Controle Principal

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES 01001111 01110010 01100111 01100001 01101110 01101001 01111010 01100001 11100111 11100011 01101111 00100000 01100100 01100101 00100000 01000011 01101111 01101101 01110000 01110101 01110100 01100001 01100100

Leia mais

3. O NIVEL DA LINGUAGEM DE MONTAGEM

3. O NIVEL DA LINGUAGEM DE MONTAGEM 3. O NIVEL DA LINGUAGEM DE MONTAGEM Nas aulas anteriores tivemos a oportunidade de discutir dois diferentes níveis presentes na maioria dos computadores atuais. Nesta aula dedica-se a outro nível que também

Leia mais

Nível da Microarquitetura

Nível da Microarquitetura Nível da Microarquitetura (Aula 10) Roberta Lima Gomes - LPRM/DI/UFES Sistemas de Programação I Eng. Elétrica 2007/2 Agradecimentos: Camilo Calvi - LPRM/DI/UFES Máquina de Vários Níveis Modernas (ISA)

Leia mais

Primeiros "computadores" digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna

Primeiros computadores digitais. Execução de um programa. Consolas. Primórdios dos computadores. Memória interna. Computadores com memória interna Execução de um O executa um Quais os seus componentes? Como estes se organizam e interactuam? entrada de dados processador, memória, input bits periféricos,etc bits saída de dados output Primeiros "es"

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

2 Formalidades referentes ao trabalho

2 Formalidades referentes ao trabalho Bacharelado em Ciência da Computação DINF / UFPR Projetos Digitais e Microprocessadores 1 o Semestre de 2006 MICO-v12.r0 07/03/2006 Profs. Luis Allan Künzle e Armando Luiz Nicolini Delgado Atenção: Este

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 SISTEMA DE INTERCONEXÃO (BARRAMENTOS) Prof. Luiz Gustavo A. Martins Arquitetura de von Newmann Componentes estruturais: Memória Principal Unidade de Processamento Central

Leia mais

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos Conjunto de instruções e modos de endereçamento aula 4 Profa. Débora Matos Conjunto de Instruções A = ((B + C) x D + E F)/(G x H) A H denotam posições da memória endereços As arquiteturas possuem as seguintes

Leia mais

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal

Leia mais

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre?

Introdução. ULA: Faz os Cálculos UC: Como isso tudo ocorre? Introdução ULA: Faz os Cálculos UC: Controla a execução do programa (ordem de leitura das instruções) Traz dados da memória e dispositivos para os registradores Comanda a ULA Como isso tudo ocorre? A UNIDADE

Leia mais

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br Introdução INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br introdução Tópicos conceitos básicos o que é um programa um programa na memória decifrando um código referência Capítulo

Leia mais

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída SEL-0415 Introdução à Organização de Computadores Dispositivos de Entrada e Saída Aula 9 Prof. Dr. Marcelo Andrade da Costa Vieira ENTRADA e SAÍDA (E/S) (I/O - Input/Output) n Inserção dos dados (programa)

Leia mais

Arquitetura de Computadores II

Arquitetura de Computadores II Universidade Federal do Rio de Janeiro Informática DCC/IM Arquitetura de Computadores II Sistemas de Troca de Mensagens O Sistema de Comunicação provê tipicamente os seguintes serviços para as aplicações:

Leia mais