1.representação de informação num computador 2.organização …gec.di.uminho.pt/miei/sc/slides...

22
AJProença, Sistemas de Computação, UMinho, 2019/20 1 Introdução aos Sistemas de Computação (2) 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. Análise das instruções de um processador 5. Evolução da tecnologia e da eficiência

Upload: others

Post on 17-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 1

Introdução aosSistemas de Computação (2)

Estrutura do tema ISC

1. Representação de informação num computador2. Organização e estrutura interna dum computador3. Execução de programas num computador4. Análise das instruções de um processador5. Evolução da tecnologia e da eficiência

Page 2: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 2

Computadorelementar

Organização eestrutura interna dum computador

Interligaçãode

Componentes

MemóriaPrimária

Input / Output

1 ou +Unidades

(Centrais) deProcessamento

(CPU)Computadorelementar

Periféricos

Canais deComunicação

Page 3: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 3

CPU

Estrutura internadum processador (2)

UnidadesFuncionais(inc. ALU)

Unidadede

Controlo

InterligaçãoInterna da

PU

Bancode

Registos

Computador

CPU

I/O

Memória

Interligação

...

Nota:PU, processador ou coredesignam o mesmo objeto

Page 4: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 4

Estrutura internadum processador (1)

Função dum PU:– “motor” que continuamente

• lê da memória um comando,• interpreta-o e, • executa-o (se precisar de operandos vai buscá-los e,

se necessário, guarda também o resultado)– de/para onde lê o comando:

• da posição de memória definida no apontador p/ instrução (em registo)(IP, Instruction Pointer, ou PC, Program Counter),

• para o registo de instrução (IR, Instruction Register)

– tipos básicos de comandos: • operações com dados, indo buscar os operandos se necessário e

guardando o resultado no fim• mover dados de/para registos, memória ou I/O• decidir qual o (local do) próximo comando a executar

Page 5: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 5

Organização dumamemória principal ou primária

Função da memória primária:– armazenar temporariamente

um programa e os dados por ele manipulados, durante a execução de um programa

– operações que a memória executa: ler / escrever

Organização lógica:– vetor (array linear) de células, cada com 8 bits– cada célula é identificada pelo seu endereço– dim máx definida pelos n bits do endereço: 2n

Page 6: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 6

Periféricos/dispositivos,módulos de I/O

Tipos de comunicações c/ periféricos/dispositivos de I/O:– com Humanos (monitor, teclado/rato, impressora,...)– com máquinas (instrumentos, em sistemas embebidos, ...)– com outros equipamentos (rede wireless, projetor m/média...)

Papel dos módulos de I/O:– efetuar o interface físico e lógico entre o interior do

computador e o exterior– controlar o funcionamento de um ou mais periféricos– fazer o intercâmbio de dados entre os periféricos e a

memória principal (e/ou registos da PU)

Page 7: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 7

Modelo de arquitetura de um computador elementar

Arquitetura base de um laptop:

interface mem - I/O

ALU

banco de registos

memory channel

controladorarquivo

interfacePCI-Express

controladorUSB

rato teclado gráfica/rede/...SSD/HDD

I/O interconnectionExpansão para outros componentes

Chipset(designação

antiga)

Memóriaprimária

PU / Núcleodum processador

Page 8: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 8

Introdução aosSistemas de Computação (3)

Estrutura do tema ISC

1. Representação de informação num computador2. Organização e estrutura interna dum computador3. Execução de programas num computador4. Análise das instruções de um processador5. Evolução da tecnologia e da eficiência

Page 9: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 9

Representação de comandos/instruçõesnum computador

int x = x+y; • Código C– somar 2 inteiros (c/ sinal)

0x401046: 03 45 08 • Código object em IA-32– instrução com 3 bytes– na memória a partir do endereço0x401046

addl 8(%ebp),%eax

Idêntico à expressãox = x + y

• Assembly (da GNU p/ IA-32)– somar 2 inteiros de 4 bytes

• operandos “long” em GCC• a mesma instrução, c/ ou s/ sinal

– operandos:• x: em registo %eax• y: na memória M[%ebp+8]

Page 10: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 10

Níveis de abstração na representaçãode programas num computador

Níveis de abstração:– nível das linguagens HLL (High Level Languages):

as linguagens convencionais de programação (puro texto)»imperativas e OO (Basic, Fortran, C/C++, Java, ...)»funcionais (Lisp, Haskell, ...)»lógicas (Prolog, ...)

– nível da linguagem assembly (de “montagem”):uma linguagem intermédia (comandos da PU em formato texto)

– nível da linguagem máquina: a linguagem de comandos, específica p/ cada PU ou família de PU’s (em binário puro)

»arquiteturas CISC (Complex Instruction Set Computers)»arquiteturas RISC (Reduced Instruction Set Computers)

Slide anterior:

Page 11: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 11

Execução de instruções(em linguagem máquina) numa PU

Ciclo de execução de instruções:1. Leitura de uma instrução da memória

... e incremento do IP2. Descodificação da instrução3. Execução da operação

• cálculo da localização do(s) operando(s), e ir buscá-lo(s), se necessário

• execução da ação especificada• guardar resultado, se necessário

Análise de um exemplo: movl Mem_Loc,%eaxMecanismos de conversão entre níveis de abstraçãoModelo de computação de von Neumann (1945)

Page 12: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 12

Exemplo de execução de umainstrução em linguagem máquina (1)

1. Leitura da instrução na memória (1)

Ex.: movl Mem_Loc,%eax

mem interface

ALU

banco de registosPU

0

Mem_Locvar x

“movl ...” IP

Memória PIP

(IP)

A PU coloca no address bus o valor em IP (endereço p/ próxima instrução), e ativa o sinal de controlo RD

RD

Page 13: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 13

Exemplo de execução de umainstrução em linguagem máquina (2)

1. Leitura da instrução na memória (2)

A memória vai buscar a instrução ao endereço defini-do por IP e coloca-a no data bus p/ ser lida pela PU

“movl ...”

Ex.: movl Mem_Loc,%eax

mem interface

ALU

banco de registosPU

0

var x

“movl ...” IP

Memória P

Mem_Loc

Page 14: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 14

Exemplo de execução de umainstrução em linguagem máquina (3)

1. Leitura da instrução na memória (3)

A PU lê a instrução do data bus, coloca-a no registo de instrução (IR) e incrementa o IP

“movl ...”IP

... e incremento do IP

inc

Ex.: movl Mem_Loc,%eax

mem interface

ALU

banco de registosPU

0

var x

“movl ...” IP

Memória P

IR

Mem_Loc

Page 15: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 15

“movl ...”

Exemplo de execução de umainstrução em linguagem máquina (4)

2. Descodificação da instrução

mem interface

ALU

banco de registos

PU

IR

10001011 10000101 00001000 00000001

A unidade de controlo da PU descodifica a instrução…

… e prepara-se para executar a operação:

move long

copiar valor com 32 bitsda memória, em Mem_Loc

para o registo %eax

Ex.: movl Mem_Loc,%eax

Page 16: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 16

Exemplo de execução de umainstrução em linguagem máquina (5)

3. Execução da operação (1)

IR

Após calcular o valor de Mem_Loc a PU coloca-o no address bus e ativa o sinal de RD

Mem_Loc

RD

Ex.: movl Mem_Loc,%eax

mem interface

ALU

banco de registosPU

0

var x

“movl ...” IP

Memória P

“movl ...”

Mem_Loc

Page 17: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 17

Exemplo de execução de umainstrução em linguagem máquina (6)

3. Execução da operação (2)

IR

A memória vai buscar o valor de var x ao endereço Mem_Loc e coloca-o no data bus

x

Ex.: movl Mem_Loc,%eax

mem interface

ALU

banco de registosPU

0

var x

“movl ...” IP

Memória P

“movl ...”

Mem_Loc

Page 18: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 18

Exemplo de execução de umainstrução em linguagem máquina (7)

3. Execução da operação (3)

IR

%eax

A PU lê o valor de var x do data bus e coloca-o no registo %eax

var x

Ex.: movl Mem_Loc,%eax

mem interface

ALU

banco de registosPU

0

var x

“movl ...” IP

Memória P

“movl ...”

Mem_Loc

Page 19: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 19

Execução de programas num computador:de HLL para linguagem máquina

Mecanismos de conversão (para comandos da PU):– compilador

• traduz um programa de um nível de abstração para outro inferior (converte um ficheiro de texto noutro de texto); por ex., de C para assembly

• normalmente inclui mais que um passo de conversão, até chegar à linguagem máquina

– assembler (“montador”)• “monta” os comandos / instruções, em texto, para binário (object),

de acordo com as regras do fabricante da PU– interpretador

• analisa, uma a uma, as instruções de um programa em HLL, e:» gera código em linguagem máquina para essa instrução, e» executa esse código (nota: não guarda o código gerado)

Page 20: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 20

Execução de programas num computador:de HLL até à sua execução

Programa em C

Compilador

Programa em assembly

Assembler

Módulo em ling máquina (object)

Loader

Memória

Função de bibl em ling máquina (object)

Linker

Programa em ling máquina (executable)

Page 21: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 21

Modelo de computação devon Neumann, 1945/46 (1)

ENIAC (1ª geração, 1945)– objetivo: cálculo tabelas de artilharia

(mas 1º teste foi p/ bomba H)– máquina decimal (base 10)– 17.468 válvulas, 27 toneladas– programação: manual, alterando as

conexões (cablagem)

Von Neumann introduz conceito de stored-program :

– dados e instruções em binário, e armazenados numa memória

– memória acedida pelo endereço da informação

– execução de instruções de modo sequencial (daí o Program Counter,

PC), interpretadas pela unid. controlo– constrói novo computador, IAS

Page 22: 1.Representação de informação num computador 2.Organização …gec.di.uminho.pt/miei/sc/Slides ISC/ISC_2-3.pdf · 2020-02-19 · AJProença,Sistemas de Computação, UMinho,

AJProença, Sistemas de Computação, UMinho, 2019/20 22

Modelo de computação devon Neumann, 1945/46 (2)

MainMemory

Arithmeticand

Logic Unit

ProgramControl Unit

InputOutputEquip.

Estrutura básica do IAS(Princeton Institute for Advanced Studies)

MainMem

ALU

Program Control Unit

I/OEq.

MBR

Arith & Logic Circ

MQAcc

MARControl

Circ

IBR

IR

PC

Address

Instruct

& Data

CPU

Estrutura expandida do IAS