Introdução à Arquitetura de Computadores

Slides:



Advertisements
Apresentações semelhantes
Circuitos Lógicos e Organização de Computadores Capítulo 6 – Blocos com Circuitos Combinacionais Ricardo Pannain
Advertisements

NÍVEL DE MICROPROGRAMAÇÃO
VHDL Very High Speed Integrated Circuit Hardware Description Language Prof. Eduardo Todt 2008.
MC542 Organização de Computadores Teoria e Prática
Organização e Arquitetura de Computadores I Parte de Controle
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Banco de Dados Aula 01: Conceitos Básicos
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
FORTRAN 90 Denise Yumi Takamura.
INTRODUÇÃO À COMPUTAÇÃO PARALELA
Arquitetura de computadores
Sistemas Operacionais
Prof. Dr. Helder Anibal Hermini
Arquiteturas de 4, 3, 2, 1 e 0 endereços.
Utilização do montador Daedalus
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Agrupando flip-flops e portas para criar registradores
Teste Estrutural de Software
Criptografia Quântica : Um Estudo
(Como implementar multiplicação e divisão uma vez só :-)
A Arquitetura: conjunto de instruções
Gustavo Vieira Pereira
Compressão por Hardware
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Introdução A fim de preparar a geração de código, deve-se relacionar o fonte estático do programa às ações em tempo de execução. Durante a execução, o.
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
Arquitetura de Computadores I
Conceitos iniciais Hardware/Software
O Fluxo de Testes © Alexandre Vasconcelos
UD de Sorocaba/ Iperó UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Campus de Sorocaba UNIVERSIDADE ESTADUAL PAULISTA Recursos Computacionais Antonio Martins.
Funções de um computador
Prof: Encoder Angular Prof:
CT-300 – Seminário de Tese 1/25 Um Framework Padrão para Simulação de Modelos de Robôs Móveis de Robôs Móveis Juliano A. Pereira Prof. Carlos H. C. Ribeiro.
CES-11 LAB 03 Bitmap Quadtree
CES-10 INTRODUÇÃO À COMPUTAÇÃO
1.3 – Interpretadores – Compiladores versus Interpretadores
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
CES-41 COMPILADORES Capítulo I Introdução.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
FUNDAÇÃO CARLOS CHAGAS
OTIMIZAÇÃO DE DESEMPENHO
ARQUITETURA DE COMPUTADORES SOFTWARE PROGRAMA SEQUENCIA DE INSTRUÇÕES
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Introdução à Codificação de Canal Evelio M. G. Fernández
Organização de Sistemas de Computadores
Arquitetura de ComputadoresProf a Luiza Mourelle Apesar da evolução tecnológica, as CPUs continuam mais rápidas que a memória. O problema não é tecnológico,
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Máquina Multinível Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode.
Pipeline É possível obter maior desempenho computacional com:
Hierarquia de Memória No projeto de um sistema digital, deve-se ter em mente que hardware menor geralmente é mais rápido do que hardware maior. A propagação.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Baseado no documento do Prof. Ronaldo Martins da Costa
LINGUAGENS DE PROGRAMAÇÃO
Baseado no documento do Prof. Ronaldo Martins da Costa
Conceitos Básicos de Redes de Computadores e acesso a Internet
Sistemas Operacionais e Windows XP Aula 04 – DCA0302.
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
Sistemas Operacionais
Infra-estrutura de Hardware
Transcrição da apresentação:

Introdução à Arquitetura de Computadores Um programa pode ser definido como uma seqüência de instruções que descrevem como executar uma determinada tarefa. Uma instrução pode ser definida como um comando para o processador. Linguagem de máquina corresponde ao conjunto de instruções primitivas do computador. Devem ser simples, reduzindo a complexidade e custo dos circuitos. Tradução é o método pelo qual um programa escrito numa linguagem L2 é substituído por um outro programa escrito em L1, então executado pela máquina M1, cuja linguagem de máquina é L1.

Introdução à Arquitetura de Computadores Interpretação é o método pelo qual um programa escrito em L1 executa cada instrução do programa escrito em L2, através de uma seqüência de instruções L1 equivalentes. Máquina virtual compreende um computador hipotético para uma determinada linguagem, tendo esta como linguagem de máquina. Para uma melhor compreensão da arquitetura de um computador, podemos dividí-lo em níveis de hierarquia. Nível compreende uma máquina M com sua linguagem de máquina L, dentro de um computador. Uma máquina define uma linguagem, assim como uma linguagem define uma máquina.

Introdução à Arquitetura de Computadores Um computador com n níveis pode ser visto como n diferentes máquinas virtuais, cada uma com a sua linguagem de máquina. Um programador de nível n não precisa conhecer os níveis inferiores. Nível 0 ou nível de lógica digital é o hardware verdadeiro da máquina, cujos circuitos executam os programas em linguagem de máquina de nível 1. Não existe aqui o conceito de programa como uma seqüência de instruções a serem executadas. Neste nível, os objetos são denominados portas.

Introdução à Arquitetura de Computadores Nível 1 ou nível de microprogramação é o verdadeiro nível de máquina, havendo um programa denominado microprograma, cuja função é interpretar as instruções de nível 2. A instrução neste nível é denominada microinstrução. Nível 2 ou nível convencional de máquina é o primeiro nível de máquina virtual. A linguagem de máquina deste nível é comumente denominada linguagem de máquina. As instruções são executadas interpretativamente pelo microprograma. Em máquinas que não tenham o nível de microprogramação, as instruções de nível convencional de máquina são executadas diretamente pelos circuitos.

Introdução à Arquitetura de Computadores Nível 3 ou nível de sistema operacional apresenta a maior parte das instruções em linguagem de nível 2, um conjunto de novas instruções, organização diferente da memória, capacidade de execução de dois ou mais programas em paralelo. As novas facilidades são realizadas por um interpretador denominado sistema operacional, em execução no nível 2. As instruções de nível 3 idênticas às de nível 2 são executadas diretamente pelo microprograma.

Introdução à Arquitetura de Computadores Nível 4 ou nível de linguagem de montagem consiste de uma forma simbólica para uma linguagem de nível inferior. Os programas em linguagem de montagem são traduzidos para uma linguagem de nível 2 ou 3, e, então, interpretados pela máquina apropriada. O programa que executa a tradução é denominado montador. Nível 5 ou nível de linguagem orientada para problemas consiste de linguagem de alto-nível. Os programas escritos nessas linguagens são, normalmente, traduzidos para o nível 3 ou 4 por tradutores conhecidos como compiladores.

Introdução à Arquitetura de Computadores Os níveis 2 e 3 são sempre interpretados, enquanto os níveis 4 e 5 são, geralmente, traduzidos. As linguagens de máquina dos níveis 1, 2 e 3 são numéricas, ao passo que as dos níveis 4 e 5 são simbólicas, contento palavras e abreviaturas. O hardware é constituído pelos circuitos eletrônicos e o software é constituído pelos programas. O firmware consiste no software embutido em dispositivos eletrônicos durante a fabricação. Em muitos computadores, o microprograma está em firmware.

Introdução à Arquitetura de Computadores Hardware e software são logicamente equivalentes, isto é, qualquer operação efetuada pelo software pode também ser implementada pelo hardware e qualquer instrução executada pelo hardware pode também ser simulada pelo software. A decisão de colocar certas funções em hardware e outras em software baseia-se em fatores tais como: custo, velocidade, confiabilidade e possíveis modificações.

Nível de Microprogramação O nível de microprogramação tem uma função específica: executar interpretadores para outras máquinas virtuais. Um microprograma compreende um programa que controla os registradores, os barramentos, a ULA, as memórias e outros componentes do hardware. Os registradores estão localizados fìsicamente dentro do processador. Um barramento é uma coleção de fios usados para transmitir sinais em paralelo. Pode ser unidirecional ou bidirecional.

Nível de Microprogramação Um barramento tri-state possui dispositivos capazes de apresentarem na saída 0, 1 ou alta impedância. Utilizados quando há muitos dispositivos ligados a um mesmo barramento. entradas BC D0 D1 D2 D3 D D D D CK Q Q Q Q OE1 CK OE2 OE BA BB Q0 Q1 Q2 Q3 saídas

Nível de Microprogramação Um multiplexador tem 2n entradas, uma saída da mesma largura da entrada e uma entrada de controle de n bits, que seleciona uma das entradas e a direciona para a saída. entrada A B controle 2 x 1 saída Um demultiplexador é o inverso de um multiplexador, direcionando a entrada para uma dentre 2n saídas, de acordo com as n linhas de controle.

Nível de Microprogramação Um decodificador tem n linhas de entrada e 2n linhas de saída. De acordo com o código binário da entrada, uma das saídas é ativada. 1 2 . 4 x 16 14 15 Um codificador é o inverso de um decodificador, possuindo 2n entradas e n saídas. Somente uma das entradas estará ativa.

Nível de Microprogramação A Unidade Lógica e Aritmética possui duas entradas e uma saída para dados, havendo outras entradas e saídas de controle. A B F0 N ULA Z F1 F(A,B) Um deslocador é um circuito com capacidade para deslocar à direita ou à esquerda, ou mesmo não deslocar. S0 deslocador S1

Nível de Microprogramação A maioria dos computadores tem um barramento de endereço, um barramento de dados e sinais de controle para a comunicação entre a UCP e os demais componentes do sistema. Um acesso à memória é quase sempre consideravelmente mais demorado que o tempo necessário para executar uma única microinstrução. O registrador MAR é responsável pelo armazenamento do endereço da memória. O registrador MBR é responsável pelo armazenamento do dado.

Nível de Microprogramação CPU barramento endereço barramento de endereço MAR controle saída de dados barramento de dados entrada de dados WR MBR RD controle A linha de controle de MBR permite carregar o registro com dado da UCP. O sinal RD carrega o registro com dado do barramento. O sinal WR libera o conteúdo do registro no barramento.

Nível de Microprogramação Um formato de microinstrução, contendo alguns campos codificados, pode ser: 1 2 2 2 1 1 1 1 1 4 4 4 8 A M U X C O N D A L U M B R M A R E N C S H R D W R C B A ADDR AMUX : 0 = latch A; 1 = MBR COND: 0 = não salta; 1 = salta se N=1; 2 = salta se Z=1; 3 = salta sempre ALU: 0 = A+B; 1 = A.B; 2 = A; 3 = NOT A SH: 0 = não desloca; 1 = desloca 1 bit à direita; 2 = desloca 1 bit à esquerda; 3 = x

Nível de Microprogramação Um ciclo básico consiste em colocar os valores nos barramentos A e B, armazená-los nos dois latches, passá-los pela ALU e pelo deslocador, e armazená-los na memória local ou no MBR. O seqüenciamento dos eventos compreende: 1 - carregar a próxima microinstrução no registrador de microinstrução (MIR); 2 - colocar o conteúdo dos registros nos barramentos A e B, e guardá-los nos latches A e B; 3 - dar tempo à ALU e ao deslocador para produzirem um resultado e carregar o MAR, se necessário; 4 - armazenar o valor existente no barramento C, na memória local ou no MBR.

LA LB MAR MBR AMUX ALU DESL DECC DECB DECA 4 3 GSC 2 MUX 1 R E G S MPC INC MC LA LB A M U X C O N D A D R MAR A L U M B R M A R E N C S H R D W R C B A MBR AMUX N ALU LMS Z DESL

A escolha da próxima microinstrução é determinada pela lógica de microsequenciamento, durante T4, quando N e Z são válidos. As condições de desvio são: 0 = não salte (a próxima microinstrução está em MPC + 1); 1 = desvie para ADDR, se N = 1; 2 = desvie para ADDR, se Z = 1; 3 = desvie indondicionalmente para ADDR.

Nível de Microprogramação O microprograma, para a arquitetura proposta, deve realizar a busca, decodificação e execução da instrução do programa de nível convencional de máquina. O registrador AMASK é a máscara de endereço (Ox007777) usada para separar os bits de endereço do restante da instrução. O registrador SMASK é a máscara de pilha (Ox000377) usada para separar a constante, associada às instruções INSP e DESP, do restante da instrução. Para realizar uma subtração utiliza-se complemento a dois: x - y = x + y + 1

Nível de Microprogramação A microlinguagem de montagem consiste dos seguintes comandos: 1 - atribuição: AC := A; 2 - aritmética: PC := PC + 1; 3 - lógica: A := band (IR,SMASK); B := inv (C); 4 - deslocamento: TIR:= lshift (TIR); D := rshift (A + B) 5 - desvios: goto 0; if N then goto 50;

Nível de Microprogramação Em muitos computadores, a microarquitetura tem suporte de hardware para extrair código de operação da macroinstrução e colocá-lo diretamente no MPC. Não há instruções de E/S, utilizando E/S mapeada em memória. (4092) - dado a ser lido (4093) - o bit de sinal indica dado para leitura (=1) (4094) - dado a ser escrito (4095) - o bit de sinal indica dispositivo pronto (=1)

Microprogramação horizontal: microinstrução com campos muito pouco codificados. Microprogramação vertical: microinstrução com campos mais codificados. Um microprograma é mais vertical quanto maior for o grau de codificação da microinstrução. Uma microinstrução extremamente vertical poderia ter um código de operação e operandos.

4 / 4 / 4 4 4 2 _ 2 / 2 / 2 / BC AND DECR1 BB DECR2 BA GSC MUX R E G S 3 2 GSC MUX 1 R E G S MPC INC MC LA LB OP R1 R2 MAR MIR LMS 4 4 4 MBR 2 _ 2 AMUX / N ALU NZ DECOP Z 2 / 2 DESL / RD WR