Estrutura do tema ISC

Documentos relacionados
AJProença, Sistemas de Computação, UMinho, 2017/18 1. Componentes (físicos) a analisar: a unidade de processamento / o processador:

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações

periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações

Lic. Eng.ª Informática

Estrutura do tema ISA do IA-32

Estrutura do tema ISA do IA-32

Lic. Ciências da Computação

AJProença, Sistemas de Computação, UMinho, 2017/ ou + Unidades (Centrais) de Processamento (CPU)

Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação MATA49 Programação de software básico Arquitetura Intel

Conjunto de Instruções. Alisson Brito

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

Arquitectura de Computadores II. Introdução

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

Evolução dos Microprocessadores

Organização de Computadores

Arquitetura de Computadores Aula 11 - Multiprocessamento

A arquitectura IA32. A arquitectura de um processador é caracterizada pelo conjunto de atributos que são visíveis ao programador.

Organização e Arquitetura de Computadores I

Estrutura do tema ISC

Arquitectura de Computadores

Infraestrutura de Hardware. Instruindo um Computador

Arquitetura de Computadores. Prof. João Bosco Jr.

Arquitetura de Computadores. Prof. João Bosco Jr.

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

SSC0114 Arquitetura de Computadores

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

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

ARQUITETURA DE COMPUTADORES

Organização de Sistemas de Computadores

Organização ou MicroArquitectura

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

Microcontroladores e Interfaces

Otimização do desempenho (no h/w) Objectivo. Problemas: Estrutura do tema Avaliação de Desempenho (IA-32)

Microprocessadores. Família x86 - Evolução

SSC0611 Arquitetura de Computadores

Conjunto de Instruções (ISA) I

AJProença, Sistemas de Computação, UMinho, 2017/18 1

Introdução ao Assembly

MIPS ISA (Instruction Set Architecture)

Otimização de Execução em Processadores Modernos. William Stallings - Computer Organization and Architecture, Chapter 12 [Trad. E.Simões / F.

Arquitecturas Alternativas. Arquitectura X86-64 Arquitecturas RISC Exemplo: MIPS Desempenho de sistemas Pipelining

Professor: Dr. Rogério Rodrigues de Vargas.

Arquitectura de Computadores

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

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I

Arquitetura de Um Processador I

2º Estudo Dirigido CAP 3

Organização de Computadores

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

II Componentes de um computador

O Funcionamento do Processador

Ministério da Educação UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Aula 1. Cibele Lemos Freire Viginoski

Processamento e Linguagem de Máquina. O processador Programação Assembler (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

Otimização do desempenho (no h/w) Objectivo

Nível do Conjunto de Instruções Prof. Edson Pedro Ferlin

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 02: PROCESSAMENTO PARALELO: PROCESSADORES VETORIAIS

PSI3441 Arquitetura de Sistemas Embarcados

Nível da Arquitetura do Conjunto de Instruções. Ronaldo de Freitas Zampolo

Arquitectura de Computadores

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

MIPS Implementação. sw) or, slt. Vamos examinar uma implementação que inclui um subconjunto de instruções do MIPS

Estrutura do tema Avaliação de Desempenho (IA-32)

Execução detalhada de instruções

Microprocessadores II - ELE 1084

Processadores para computação de alto desempenho

AULA 03: FUNCIONAMENTO DE UM COMPUTADOR

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

Execução detalhada de instruções

Arquitetura de Computadores I. Prof. Ricardo Santos (Cap 2)

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

Nível da Arquitetura do Conjunto das Instruções

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

Arquitetura e Organização de Computadores

O Funcionamento do Processador

Lic. Engenharia de Sistemas e Informática

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

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

Conceitos Básicos Processador

Barramentos internos/externos

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

Processadores para computação de alto desempenho

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Otimização do desempenho (no h/w) Objetivo

Mestrado em Informática. Curso de Especialização em Informática. Optimização do desempenho (no CPU) com introdução de paralelismo

SSC0611 Arquitetura de Computadores

18/08/2015. Capítulo 2: Manipulação de dados. Arquitetura de Computadores. Capítulo 2: Manipulação de Dados

Computadores e Programação (DCC/UFRJ)

Sistemas Operacionais I

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

TEÓRICA. lb $t0, 1($t1)

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

Processador. Processador

Organização e Projetos de Computadores. Capítulo 2. Organização e Projetos de Computadores. Instruções

Universidade de São Paulo

Arquitetura de Computadores. Conjunto de Instruções

Transcrição:

Introdução aos Sistemas de Computação(4) Análise de componentes num computador Estrutura do tema ISC 1. Representação de informação num computador 2. Organização e estrutura interna dum computador 3. Execução de programas num computador 4. O processador e a memória num computador 5. Da comunicação de dados às redes 1 Componentes (físicos) a analisar: o processador (info adicional): o nível ISA (Instruction Set Architecture): tipos/formatos de instruções, acesso a operandos,... CISC versus RISC paralelismo no processador: pipeline, super-escalaridade,... paralelismo fora do processador: on-chip e off-chip a hierarquia de memória: cache, memória virtual,... periféricos: interfaces humano-computador (HCI) arquivo de informação comunicações (no tema 5...) 2 O processador: análise do nível ISA (Instruction Set Architecture) (Instruction Set Architecture) (1) Tópicos a analisar operações num processador registos visíveis aos programador modos de acesso aos operandos tipos de instruções presentes num CPU formatos de instruções em linguagem máquina instruções de input/output ordenação de bytes Operações num processador nº de operandos em cada instrução 3-operandos (RISC,... ) 2-operandos (IA32,... ) 1-operando (microcontroladores,...) 0-operandos (stack-machine,...) localização dos operandos variáveis escalares (registos...) variáveis estruturadas (memória...) 3 4

(Instruction Set Architecture) (2) (Instruction Set Architecture) (3) Registos visíveis aos programador (inteiros) em arquitecturas RISC (32 registos genéricos...) no IA32 Modos de acesso aos operandos em arquitecturas RISC em operações aritméticas/lógicas, sempre em registo em load/store usando 1 ou 2 modos de endereço à memória no IA32 %bx 5 6 (Instruction Set Architecture) (4) (Instruction Set Architecture) (5) Tipos de instruções presentes num CPU transferência de informação de/para registos/memória,... operações aritméticas e lógicas soma, subtração, multipl, div,... AND, OR, NOT, XOR, comparação,... deslocamento de bits,... controlo do fluxo de execução para apoio a estruturas de controlo para apoio à invocação de procedimentos outras... Ex: instruções de transferência de info no IA32 mov S, D D!S Move (byte,word,long_word) movzbl S, D D!ZeroExtend(S) Move Zero-Extended Byte movsbl S, D D!SignExtend(S) Move Sign-Extended Byte push S %esp! %esp - 4; Mem[%esp]! S Push pop D D!Mem[%esp]; %esp!%esp+ 4 Pop lea S, D D! &S Load Effective Address D destino [Reg Mem] S fonte [Imm Reg Mem] D e S não podem ser ambos operandos em memória no IA32 7 8

(Instruction Set Architecture) (6) (Instruction Set Architecture) (4) Ex: instruções aritméticas/lógicas no IA32 inc D D! D +1 Increment dec D D! D 1 Decrement neg D D! -D Negate not D D! D Complement add S, D D! D + S Add sub S, D D! D S Subtract imul S, D D! D * S 32 bit Multiply and S, D D! D & S And or S, D D! D S Or xor S, D D! D ˆ S Exclusive-Or shl k, D D! D << k Left Shift sar k, D D! D >> k Arithmetic Right Shift shr k, D D! D >> k Logical Right Shift 9 Ex: instruções de controlo de fluxo no IA32 jmp Label %eip! Label Unconditional jump je Label Jump if Zero/Equal js Label Jump if Negative jg Label Jump if Greater (signed >) jge Label Jump if Greater or equal (signed >=) ja Label Jump if Above (unsigned >) call Label pushl %eip; %eip! Label Procedure call ret popl %eip Procedure return 10 (Instruction Set Architecture) (8) (Instruction Set Architecture) (9) Formatos de instruções em linguagem máquina campos duma instrução Formatos de instruções no Pentium OpCode (a) OpCode Operando (valor/localiz.) (b) OpCode Oper ndo 1 Oper ndo 2 OpCode Op ndo 1 Op ndo 2 Op ndo 3 (c) (d) comprimento das instruções variável (prós e contras; IA32...) fixo (prós e contras; RISC...) exemplos de formatos de instruções 11 12

(Instruction Set Architecture) (10) (Instruction Set Architecture) (11) Formatos de instruções no MIPS (RISC) Instruções de input/output finalidade escrita de comandos leitura de estado escrita/leitura de dados específicas (requer sinais de controlo no bus...) ; ou idênticas ao acesso à memória» memory mapped I/O Ordenação de bytes big-endian little-endian 13 14 Desempenho nos Sistemas de Computação: oportunidades para optimizar Paralelismo no processador Exemplo 1 Optimização do desempenho com introdução de paralelismo ao nível do processo (sistemas concorrentes/paralelos/distribuídos) só fio de execução (multi -threading/ -core / -chip...) processo (memória partilhada/distribuída) ao nível da instrução (Instruction Level Parallelism) só nos dados (processamento vectorial) paralelismo desfasado (pipeline) paralelismo "real" (VLIW, super-escalar) no acesso à memória paralelismo desfasado (interleaving) paralelismo "real" (maior largura do bus) com hierarquia de memória cache... Exemplo de pipeline 15 16

Hierarquia de memória Evolução do Intel x86 : pré-pentium Componentes menores, mais rápidos, maior custo/byte Componentes maiores, mais lentos, menor custo/byte 17 HowStuffWorks Nome Data Nº transístores 8086 1978 29K processador 16-bits (registos + ALU); base do IBM PC & DOS espaço de endereçamento limitado a 1MB (DOS apenas vê 640K) 80286 1982 134K endereço 24-bits e protected-mode; base do IBM PC-AT & Windows 386 1985 275K " primeiro IA-32!! estendido para 32-bits: registos + op. inteiros + endereçamento memória segmentada+paginada, capaz de correr Unix 486 1989 1.9M integração num único chip: 386, co-proc 387, até 16kB cache L1 poucas alterações na arquitectura interna do processador 18 Evolução do IA-32: família Pentium Evolução do IA-32 para Intel 64 Pentium 1993 3.1M ( = P5 ) arquitectura superescalar, com 2 pipelines de inteiros (de 5 níveis) PentiumPro 1995 5.5M ( = P6, aka i686) out-of-order execution, 14 níveis pipeline, 3-issue superscalar endereço 36-bits, cache L2 on-package Pentium/MMX 1997 4.5M SIMD: opera com vectores de 64-bits, tipo int de 1, 2, ou 4 bytes Pentium II 1997 7.5M ( = Pro + MMX ) Pentium III 1999 8.2M Streaming SIMD Ext, SSE: vectores 128-bits, int/fp 1/2/4 bytes Pentium 4 2000 42M ( = NetBurst, aka i786) trace cache, pipeline muito longo (20 ou 31), suporta multi-threading SSE2: mais instruções e com dados fp de 8-bytes Pentium M 2003 77M ( = P-M ) arquitectura mais próxima do Pentium III (eficiência energética) 19 IA-32 ou x86 open architecture cresce para 64-bits HP e Intel propõem arquitectura incompatível, IA-64 (Itanium CPU) AMD anuncia em 1999 extensão do x86: x86-64 Intel segue AMD: IA-32e (Fev-04) EM64T (Mar-04), ou Intel-64 (2006) AMD64 e Intel-64 diferentes; compiladores usam sub-set comum arquitectura Core surge em 2006 (151M transístores) desenvolvida pela mesma equipa que o P-M (Israel) 14 níveis de pipeline (como P6), mas 4-issue superscalar 2 níveis de cache on-chip multi-core on-chip (mesmo o Solo!) e virtualização por h/w suporta fusão de instruções RISC (µ-ops na terminologia Intel) arquitectura Core 2 é integralmente 64-bit (Intel 64) 20

A cache em arquitecturas multicore Arquitecturas Intel 64 com maior integração As arquitecturas multicore mais recentes: arquitectura Nehalem anunciada em 2008 (731M transístores) CPU chip! banco de registos! inspirada no NetBurst (com multi-threading e maiores clock rates) Núcleos num! 2 a 8 cores por chip, com cache L3 on-chip com conexão ponto-a-ponto inter-cpus chip (cores)! ALU! integra controlador de memória numa arquitectura NUMA caches L1 & L2! arquitectura Sandy Bridge anunciada em 2010 (>1000M transístores) evolui para arquitectura híbrida multicore, integrando o processador gráfico cache L3! memory bus! interface! bridge! interface com o processador gráfico através da cache L3 processamento vectiorial estendido para 256-bits memória! primária! integração no chip do interface PCIe 16x I/O links! 21 22 Lançamento da Intel em 2010: Sandy Bridge Gerações de Pentium recentes Intel Octal Core Nehalem (2.3 mil milhões de transístores) Intel Hex Core Nehalem (1.17 mil milhões de transístores) 23 24

Protótipos da Intel em 2010/11: Single-chip Cloud Computer 25 CISC versus RISC Caracterização das arquitecturas RISC conjunto reduzido e simples de instruções formatos simples de instruções operandos sempre em registos modos simples de endereçamento à memória uma operação elementar por ciclo máquina Exemplo de um chip RISC: ARM 27 Protótipos da Intel em 2010/11: Knights Corner com 50 cores (Larrabee) 26