Instruções.

Slides:



Advertisements
Apresentações semelhantes
Arquitetura e organização de computadores.
Advertisements

Professor: Erivelto Tschoeke – UDESC/CEPLAN
Prof.: Vagner Pinto Borges Prof.: Vagner Pinto Introdução à Arquitetura e Organização.
Representação de Instruções
Unidade Central de Processamento UCP
Sistemas Operacionais
Agenda - Aula 2 Introdução (Computador Digital) Processadores
Unidade Central De Processamento: Processador
Sistemas Operacionais
Unidade Central De Processamento: Processador
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.
Arquitetura de computadores
Arquitetura de Sistemas Operacionais
 Todo processador é constituído de circuitos capazes de realizar algumas operações primitivas:  Somar e subtrair  Mover um dado de um local de armazenamento.
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
A CPU E SUA EVOLUÇÃO. CPU (Central Processing Unit ou Unidade Central de Processamento)  DEFINIÇÕES:  A CPU é o hardware principal do computador; 
Fundamentos de Sistemas Operacionais Aula 2 Princípios de Programação Prof. Belarmino.
Ana Carolina, Andersen, Arthur, Bruno, Eduardo, Gisele, Guilherme, Jennifer, Leonardo, Lucas, Monique, Ricardo, Rodrigo A., Thiago, Victor, Wagner e William.
Capítulo 10 Conjuntos de instruções: Características e funções William Stallings Arquitetura e Organização de Computadores 8 a Edição © 2010 Pearson Prentice.
Programação em Assembly Introdução e Revisão Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
Compiladores - Introdução. O que é um Compilador? “Um compilador é um programa que lê um programa escrito em uma linguagem (linguagem fonte) e a traduz.
1 Bianca, Felipe, Fernanda, Fernando, Jeferson, José, Juliana, Marco, Matheus, Maurício, Patrick, Rodrigo K., Vitor.
DSC/CEEI/UFCG Hardware (Parte I) Prof. a Joseana Macêdo Fechine Régis de Araújo Prof. a Joseana Macêdo Fechine Régis de Araújo
Introdução a Ciência da Computação Aula 05 Prof. Francisco G. Rodrigues.
Rganização de Computadores Organização do Neander Capítulo 10 – Raul Weber Organização de Computadores Organização do Neander Capítulo 10 – Raul Weber.
Como funciona o processador Nomes: Fernando, Maurício, William Turma: 1J-1PC1 Disciplina: Fundamentos da Computação Curso: Técnico em Programação de Computadores.
Programação em Assembly Conceitos Iniciais Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.
ARQUITETURA AULA 3 Prof. Luiz Ricardo Lima 2º sem de 2016.
Gerência de Arquivos.
Arquitetura do SET de instruções Instruction SET CISC vs RISC
MC 16.PAD - Programação de Alto Desempenho- Slides 2
Organização de Computadores 2º Semestre Aula 10 / 11 – Parte 1 Prof
Ciclos de operação em processador
PSI3441 – Arquitetura de Sistemas Embarcados
Arquitetura de Computadores
NEANDERWin - Simulador
UD 1 - CONCEITOS DE INFORMÁTICA
INSTITUTO FEDERAL DO CEARÁ Mauro Oliveira
ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES
Computador MIPS Organização básica e conjunto de instruções.
Caminho de Dados (aula passada)
Administração de Gerência de servidores
Hardware É a parte física de um sistema de computação, ou seja, todos os elementos materiais que o constituí (circuitos eletrônicos, dispositivos mecânicos,
Prof. Wellington Franco
Administração de Sistemas Operacionais I
Arquitetura e organização de computadores
SISTEMAS OPERACIONAIS
1 Introdução aos COMPUTADORES Profª Alda Vagarinho.
Introdução à Computação
Níveis de Abstrações TANENBAUM:
Notas de aula baseadas no livro de William Stallings Arquitetura e Organização de Computadores 8a Edição Capítulo 1 Introdução.
Representação da Informação
Tecnologia da Informação Visão Geral sobre Informática
Sistemas Operacionais I
Introdução à Computação
ELEMENTOS DE ORGANIZAÇÃO DE COMPUTADORES :
Linguagem de Programação
Organização de Computadores
Microprocessadores e Microcontroladores
Sistemas Operacionais
Arquitetura de Computadores
Instalação e Manutenção de Computadores Técnico em Informática MAI1
Professora Roberta Bonamichi Guidi Garcia
Linguagem de Programação I
PSI3441 – Arquitetura de Sistemas Embarcados
Organização de um Computador
RISC vs. CISC Introdução
Conceito de Hardware e Software. Hardware Hardware – São os dispositivos físicos de um Computador (placas mãe, memorias auxiliar e principal, periféricos.
Conjunto de instruções
Transcrição da apresentação:

Instruções

Instruções Para que um programa possa ser executado por um computador, ele precisa ser constituído de uma série de instruções de máquina e estar armazenado em células sucessivas na memória principal. A UCP é responsável pela execução das instruções que estão na memória.

Instrução de máquina É uma operação básica que o processador consegue interpretar e executar. Representação elementar que gera uma ação em um computador. Determina o que o computador deve fazer naquele instante. Um programa é composto por muitas instruções, que são executadas de forma ordenada pelo processador. Exemplo de instrução no processor MIPS. No caso do MIPS, o opcode contem 6 bits.

Tipos de instruções Matemáticas e lógicas Movimentação de dados Soma, subtração, and, or... Movimentação de dados registrador – registrador; registrador – memória; memória – registrador. Entrada/Saída Controle Instruções de salto

Instruções Linguagem Assembly - conjunto de símbolos que representam as instruções de máquina de forma mais amigável para o ser humano. Assembler - é quem faz a tradução do código Assembly para a linguagem de máquina.

Executando programas Quem executa um programa é o hardware e o que ele espera encontrar é um programa em linguagem de máquina (uma sequência de instruções de máquina em código binário). A linguagem de máquina é composta de códigos binários, representando instruções, endereços e dados e está totalmente vinculada ao conjunto ("set") de instruções da máquina.

Execução de programas... Um ser humano usa seu conhecimento e inteligência para traduzir uma tarefa complexa (tal como, por exemplo, a tarefa de buscar uma pasta num arquivo) numa série de passos elementares (identificar o móvel e gaveta onde está a pasta, andar até o móvel, abrir a gaveta, encontrar a pasta, retirar a pasta e fechar a gaveta). Para o computador, uma instrução precisa ser detalhada, dividida em pequenas etapas de operações, que são dependentes do conjunto de instruções do computador e individualmente executáveis.

Execução de programas Fazendo um paralelo com linguagens de alto nível, o programa elaborado pelo programador (o código-fonte, composto de instruções complexas) precisa ser "traduzido" em pequenas operações elementares (primitivas) executáveis pelo hardware Cada uma das instruções tem um código binário associado, que é o código da operação.

Formato geral de uma instrução Formato de instruções: Código de operação (opcode) - é o identificador da instrução a ser executada; Operandos - dados que serão manipulados pela instrução. Estrutura de uma instrução 00000010001100100100000000100000 add $t0, $s1, $s2

Formato geral de uma instrução Código da operação ou OPCODE Identifica a operação a ser realizada pelo processador. É o campo da instrução cuja valor binário identifica (é o código binário) da operação a ser realizada. Este código é a entrada no decodificador de instruções na unidade de controle. Cada instrução deverá ter um código único que a identifique.

Formato geral de uma instrução Operandos São os campos da instrução cujo valor binário sinaliza a localização do dado (ou é o próprio dado) que será manipulado (processado) pela instrução durante a operação. Em geral, um operando identifica o endereço de memória onde está contido o dado que será manipulado, ou pode conter o endereço onde o resultado da operação será armazenado. Finalmente, um operando pode também indicar um Registrador (que conterá o dado propriamente dito ou um endereço de memória onde está armazenado o dado). Os operandos fornecem os dados da instrução. Obs.: Existem instruções que não tem operando. Ex.: Instrução HALT (PARE).

Conjunto de Instruções Quando se projeta um hardware, define-se o seu conjunto ("set") de instruções - o conjunto de instruções elementares que o hardware é capaz de executar. O projeto de um processador é centrado no seu conjunto (“set") de instruções. ISA = instruction set architeture.

Conjunto de Instruções ISA (Instruction Set Architecture) - Conjunto de instruções que um processador é capaz de executar. Dentro de um ISA podem existir vários formatos de instrução.

Conjunto de Instruções Exemplos de ISAs

Conjunto de instruções... Funcionalmente, um processador precisa possuir instruções para: operações matemáticas aritméticas: +, - , × , ÷ ... lógicas: and, or, xor, ... de complemento de deslocamento Operações de movimentação de dados (memória <--> UCP, reg <--> reg) Operações de E/S (leitura e escrita) Operações de controle (desvio de seqüência de execução, parada)

ISA – Arquitetura de instruções

ISA – Arquitetura de instruções Componentes do nível Conjunto de instruções Conjunto de registradores Tipos de dados nativos Modos de endereçamento de memória Esquemas de E/S

ISA – Arquitetura de instruções Exemplo: IAS (década de 50)

ISA – Arquitetura de instruções Exemplo: IAS Os registradores AC e MQ são utilizados em todas as operações aritméticas. Ac registra os bits mais significativos e MQ os menos significativos.

ISA – Arquitetura de instruções Exemplo: Conjunto de instruções do IAS

ISA – Arquitetura de instruções Exemplo: Conjunto de instruções do IAS

ISA – Arquitetura de instruções Exemplo: Conjunto de instruções do IAS

ISA – Arquitetura de instruções Tipos de arquiteturas comuns

ISA – Arquitetura de instruções Tipos de arquiteturas comuns

ISA – Arquitetura de instruções Tipos de arquiteturas comuns : Operação: c = a + b

Conjunto de instruções As estratégias de implementação de processadores são: CISC - Complex Instruction Set Computer. RISC - Reduced Instruction Set Computer.

Conjunto de instruções CISC (Complex Instruction Set Computer) Possui como característica um grande número de instruções. Ideia: quanto mais instruções fossem implementas no computador, melhor seria o desempenho. Porém, a maior parte das instruções utilizadas são simples e quase sempre as mesmas

Conjunto de instruções RISC (Reduced Instruction Set Computer) Possui número reduzido de instruções São mais simples do que as CISC Instruções mais complexas são implementadas pelo software. Tempo de execução menor que a CISC, ou seja, as instruções RISC são executadas mais rápidas. Entretanto, um programa em RISC utiliza mais instruções para fazer a mesma coisa. Mesmo assim, o RISC é mais rápido.

Conjunto de instruções CISC - Complex Instruction Set Computer – Um conjunto de instruções maior e mais complexo, implicando num processador mais complexo, com ciclo de processamento mais lento; Exemplo: PC, Macintosh; RISC - Reduced Instruction Set Computer – um conjunto de instruções menor e mais simples, implicando num processador mais simples, com ciclo de processamento rápido. Exemplo: Power PC, Alpha, Sparc;

Conjunto de instruções RISC x CISC Tendência atual: arquiteturas híbridas.

Lembre-se... Obs.: adotaremos o termo instrução para as instruções de máquina ou em linguagem Assembly e comando para linguagens de alto nível. Há hoje uma crescente tendência a se utilizar um conjunto de instruções reduzido, de vez que o compiladores tendem a usar em geral apenas uma pequena quantidade de instruções. Há também vantagens na implementação do hardware - maior simplicidade, menor tempo de ciclo de instrução).

Finalmente, para fazer um processador você apenas precisa... a) Definir o conjunto de instruções (todas as possíveis instruções que o processador poderá executar) · definir formato e tamanho das instruções · definir as operações elementares b) Projetar os componentes do processador (UAL, UC, registradores, barramentos, ...)

Projeto do Processador Duas estratégias são possíveis na construção do decodificador de instruções da UC: wired logic (as instruções são todas implementadas em circuito) microcódigo (apenas um grupo básico de instruções são implementadas em circuitos; as demais são "montadas" através de microprogramas que usam as instruções básicas.

Execução das instruções Monociclo Busca Le Reg. Mem. ULA Esc. Reg Quem controla a entrada da próxima instrução é a UNIDADE de CONTROLE. Busca na memória Busca do operando na memória 1 único ciclo de clock. Busca: 2ns LeReg: 1ns ULA: 2ns Mem: 2ns EscReg: 1ns Portanto, tempo de ciclo de 8ns Tempo total: 24ns

Execução das instruções Multiciclo Busca Le Reg. Mem. ULA Esc. Reg Tempo total: 30 ns Vantagem: instruções menores utilizam menos ciclos que as instruções maiores. Nesse momento não ocorre o Pipeline. Os estágios funcionam sequencialmente

Instruções Pipeline: Divisão das instruções em pedaços que são executados separadamente; Cada estágio de um pipeline executa uma parte de cada instrução; Possibilidade de execução de várias instruções simultaneamente, em estágios diferentes.

Pipeline é natural Exemplo de Lavanderia Tem-se os volumes A, B, C e D de roupas para lavar, secar e passar A lavadora leva 30 minutos A secadora leva 40 minutos A passadeira leva 20 minutos A B C D

Lavanderia Sequencial 6 7 8 9 10 11 Meia noite Tempo 30 40 20 30 40 20 30 40 20 30 40 20 T a s k O r d e A B A lavadora Sequencial Multiciclo C D A lavanderia sequencial leva 6 horas para 4 volumes

Lavanderia em Pipeline 6 7 8 9 10 11 Meia noite Tempo 30 40 20 o r d e m A B C D Lavanderia em Pipeline leva 3.5 horas

Execução das instruções - Pipeline Tempo total: 14ns Os estágios funcionam paralelamente

Paralelismo O processador perde muito tempo aguardando os dados da memória. Para melhorar o desempenho do sistema, utiliza-se o paralelismo. Pode ocorrer em dois níveis Nível de instrução – pipeline Nível de hardware – mais de um processador

Paralelismo Multiprocessador Multicomputador Processadores interligados que executam instruções do mesmo programa e que compartilham a mesma memória. Multicomputador O mesmo que o anterior, porém, além da memória compartilhada, possui também uma memória própria. Trabalha como se fosse um outro computador, portanto, melhorando o desempenho.

Paralelismo Multiprocessador Multicomputador