Está en la página 1de 65

Jos Rufino, Albano Alves, Pedro Rodrigues

Arquitectura de Computadores 2011/2012


baseado no livro The Essentials of Computer Organization and Architecture de Linda Null e Julia Lobur

Captulo 4
MARIE - uma Arquitectura Simples

Captulo 4 - Objectivos
conhecer os componentes comuns a todos os sistemas de computao actuais ser capaz de explicar o contributo de cada componente para a execuo de programas compreender uma arquitectura simples criada para ilustrar conceitos bsicos entender o processo de gerao de cdigo mquina a partir de cdigo assembly
2

4.1 Introduo
em Sistemas Digitais apresentou-se a forma como os dados so armazenados e manipulados por alguns componentes de um sist. de computao e descreveram-se componentes fundamentais dos circuitos digitais no captulo 1 foi apresentada uma viso geral dos sistemas de computao agora possvel compreender como os componentes de um computador operam e como so integrados para criar sistemas de computao poderosos
3

4.1 Introduo
- Organizao e Componentes Bsicos da CPU
a CPU de um computador l, descodifica e executa instrues de programas as duas principais partes de uma CPU so 1) o caminho de dados (datapath) e 2) a unidade de controlo
o datapath constitudo por uma unidade lgico-aritmtica e por unidades de armazenamento (registos) interligados por um barramento de dados que tambm interliga com a memria principal vrios componentes da CPU executam operaes sequencialmente, de acordo com as indicaes da unidade de controlo
4

4.1 Introduo
- Organizao e Componentes Bsicos da CPU
registos so unidades de armazenamento especiais:
localizadas na CPU de pequena capacidade (16, 32, 64 bits) de acesso muito rpido implementveis atravs de flip-flops D um registo de 32 bits exige 32 flip-flops D em nmero varivel conforme a arquitectura / CPU esse nmero tipicamente potncia 2 com funes variadas genricos, s dados, s endereos, info. de controlo
5

4.1 Introduo
- Organizao e Componentes Bsicos da CPU
unidade lgico-aritmtica (ALU):
executa operaes lgicas (e.g., comparaes, ...) ... ... e aritmticas (e.g., adies, multiplicaes, ...) ... ... s ordens da unidade de controlo em geral, tem duas entradas e uma sada as operaes afectam um registo de estado (e.g., overflow)

unidade de controlo:
fetch da instruo referenciada pelo registo Program Counter decode da instruo, incluindo fetch de operandos instrui/programa a ALU para a execuo (execute) da instruo monitoriza o registo de estado e salvaguarda os resultados
6

4.1 Introduo - Barramentos


barramento (bus):
conjunto de linhas de comunicao que transportam vrios bits em simultneo (transporte em paralelo: um bit por cada linha do bus) usado pela CPU p/ comunicar com os outros componentes meio de comunicao partilhado por vrios componentes, mas ... ... num dado instante, apenas um deles pode escrever no bus velocidade afectada por comprimento e n de dispositivos ligados dispositivos mestres / escravos: iniciam aces / reagem a aces bus ponto-a-ponto: liga um par de componentes / dispositivos bus multiponto: liga mltiplos componentes / dispositivos
7

4.1 Introduo - Barramentos


bus ponto-a-ponto: bus multiponto:

4.1 Introduo - Barramentos


linhas de dados: transportam bits entre dispositivos linhas de controlo: determinam a direco do fluxo de dados e o momento em que cada dispositivo pode aceder ao barramento linhas de endereos: determinam a origem e o destino dos dados
9

4.1 Introduo - Barramentos


barramentos CPU-memria: curtos, de alta velocidade, especficos barramentos E/S: + longos, de <velocidade, + genricos (permitem dispositivos operando com variadas velocidades) backplane bus:

10

4.1 Introduo - Barramentos


numa configurao mestre-escravo (master-slave) onde mais que um dispositivo pode ser o mestre, preciso arbitrar os pedidos dos diferentes mestres h vrios tipos de arbitragem do barramento:
distribuda com auto-deteco: em cadeia (daisy chain): as os dispositivos decidem entre eles permisses so passadas do quem acede ao barramento dispositivo mais prioritrio distribuda com deteco de para o menos prioritrio colises: qualquer dispositivo centralizada: cada pode tentar aceder ao barramento; dispositivo est ligado a um se os dados colidirem com outros circuito de arbitragem em trnsito, feita outra tentativa
11

4.1 Introduo - Relgios


qualquer computador tem pelo menos um relgio que sincroniza as actividades dos seus componentes necessrio um nmero fixo de ciclos do relgio para concluir cada operao de movimentao de dados ou cada operao computacional a frequncia do relgio (em MHz ou GHz), define a velocidade com que as operaes so executadas o tempo de ciclo do relgio o recproco da frequncia do relgio
um relgio de 800MHz tem um tempo de ciclo de 1.25ns
12

4.1 Introduo - Relgios


a velocidade do relgio no deve ser confundida com o desempenho da CPU !! o tempo de CPU necessrio para executar um dado programa dado pela equao:

o tempo pode ser melhorado reduzindo o nmero de instrues do programa, o nmero de ciclos gastos por cada instruo o nmero de segundos gastos num ciclo do relgio
esta equao ser posteriormente analisada em maior profundidade
13

4.1 Introduo - Subsistema E/S


um computador comunica com o mundo exterior atravs do seu subsistema de entrada/sada (E/S) os dispositivos de E/S so ligados CPU atravs de variados interfaces a E/S pode ser baseada na memria (a CPU assume que os dispositivos de E/S so mapeados em posies da RAM) em instrues (instrues especficas para o efeito)
a E/S ser estudada posteriormente ...
14

4.1 Introduo
- Organizao e Endereamento da Memria
a memria de um computador corresponde a um vector (array) linear de clulas de armazenamento, (similares a registos), c/ endereos inteiros (s/ sinal)

a memria pode ser enderevel ao byte ou palavra (uma palavra so 2 ou mais bytes)

15

4.1 Introduo
- Organizao e Endereamento da Memria
a memria baseia-se em vrios mdulos e estes so constitudos por um ou mais chips quer a memria, quer os mdulos e chips, so referenciados pela notao altura x largura exemplo: memria 32K x 16, custa de 16 mdulos de 2K x 16, realizados com pares de chips 2K x 8

16

4.1 Introduo
- Organizao e Endereamento da Memria
exemplo (continuao):

32K palavras necessitam de endereos de log2(32K) = 15 bits 15 bits = 4 + 11 bits: 16 mdulos necessitam de log2(16) = 4 bits cada mdulo necessita de log2(2K) = 11 bits
17

4.1 Introduo
- Organizao e Endereamento da Memria
a sequncia de bits de um endereo de memria pode-se subdividir em duas subsequncias contguas
uma, que indica o mdulo onde o endereo foi mapeado outra, que indica a posio (deslocamento) no mdulo

por seu turno, os endereos de memria podem ser mapeados pelos vrios mdulos de duas maneiras:
High-Order Interleaving: os bits mais significativos do endereo especificam o mdulo, e os bits menos significativos indicam o deslocamento dentro do mdulo Low-Order Interleaving: os bits menos significativos do endereo especificam o mdulo, e os bits mais significativos indicam o deslocamento dentro do mdulo

18

4.1 Introduo
- Organizao e Endereamento da Memria
High-Order Interleaving (exemplo): capacidade da RAM: 32 bytes => endereos de log2(32) = 5 bits nmero de mdulos: 8 => log2(8) = 3 bits para definir o mdulo sobram 5 3 = 2 bits para enderear o interior de cada mdulo

19

High-Order Interleaving: EEEEE = MMM PP


0(10) = 000 00 (2) => mdulo 000 = 0 e posio 00 = 0 28(10) = 111 00 (2) => mdulo 111 = 7 e posio 00 = 0
mdulo 0 posio 0 posio 1 posio 2 posio 3 mdulo 1 mdulo 2 mdulo 3 mdulo 4 mdulo 5 mdulo 6 mdulo 7

4.1 Introduo
- Organizao e Endereamento da Memria
Low-Order Interleaving (exemplo): capacidade da RAM: 32 bytes => endereos de log2(32) = 5 bits nmero de mdulos: 8 => log2(8) = 3 bits para definir o mdulo sobram 5 3 = 2 bits para enderear o interior de cada mdulo

20

Low-Order Interleaving: EEEEE = PP MMM


0(10) = 00 000 (2) => mdulo 000 = 0 e posio 00 = 0 28(10) = 11 100 (2) => mdulo 100 = 4 e posio 11 = 3
mdulo 0 posio 0 posio 1 posio 2 posio 3 mdulo 1 mdulo 2 mdulo 3 mdulo 4 mdulo 5 mdulo 6 mdulo 7

4.1 Introduo
- Organizao e Endereamento da Memria
Caractersticas Funcionais:
High-Order Interleaving
como os endereos de memria so mapeados sequencialmente pelos vrios mdulos, o acesso s posies (palavras) de um mdulo serializado (em sequncia) excepo: com mltiplos processadores, cada CPU pode aceder de forma independente a um mdulo, permitindo acesso simultneo aos vrios mdulos pelos vrios CPUs Low-Order Interleaving os endereos de memria so mapeados rotativamente pelos vrios mdulos, permitindo acesso simultneo aos vrios mdulos por um mesmo processador (e.g., acesso sequencial a um vector espalhado por vrios mdulos)
21

4.1 Introduo - Interrupes


a normal execuo de um programa pode ser alterada sempre que ocorre um evento de maior prioridade; a CPU alertada do evento atravs de uma interrupo as interrupes podem ser desencadeadas por pedidos de E/S, erros de aritmtica (por exemplo, diviso por zero) ou quando encontrada uma instruo invlida cada interrupo associada a um bloco de cdigo rotina de tratamento da interrupo - que contm as aces da CPU para dar resposta interrupo
interrupes no mascarveis (nonmaskable): interrupes com prioridade elevada que no se podem ignorar
22

4.2 MARIE
muitos dos conceitos j introduzidos podem ser melhor compreendidos com um modelo bsico de computador
o computador MARIE (Machine Architecture that is Really Intuitive and Easy) foi desenhado com o propsito de ilustrar conceitos bsicos dos sistemas de computao apesar de o MARIE ser demasiado simples para fazer qualquer coisa de til no mundo real, o estudo das suas funcionalidades permitir compreender melhor as vrias arquitecturas de sistemas de computao reais ...

23

4.2 MARIE - A Arquitectura MARIE


Caractersticas Bsicas:
representao de nmeros em complemento para 2 programas armazenados em memria de 4k palavras tamanho de palavra fixo (16 bits)
palavras de dados com 16 bits instrues com 16 bits
4 bits para o cdigo da operao (opcode) 12 bits para especificar um endereo

unidade lgico-aritmtica (ALU) de 16 bits 7 registos para controlo e movimentao de dados


24

4.2 MARIE - A Arquitectura MARIE


Registos:
acumulador (AC) registo de 16 bits que armazena um resultado de uma operao ou um operando de uma instruo com 2 operandos registo de endereo de memria (MAR) registo de 12 bits que armazena um endereo de memria (de uma instruo ou do operando de uma instruo) registo de buffer de memria (MBR) registo de 16 bits que armazena os dados antes/depois de uma escrita/leitura para/da memria

25

4.2 MARIE - A Arquitectura MARIE


Registos (cont.):
contador de programa (PC) registo de 12 bits que guarda o endereo da prxima instruo a ser executada registo de instruo (IR) registo de 16 bits que guarda uma instruo imediatamente antes da sua execuo registo de entrada de dados (InREG) registo de 8 bits que armazena dados lidos de um dispositivo de entrada registo de sada de dados (OutREG) registo de 8 bits que guarda dados a enviar para um dispositivo de sada
26

4.2 MARIE - A Arquitectura MARIE


Representao Grfica:

27

4.2 MARIE - Registos e Barramentos


na arquitectura MARIE, a conexo com a memria efectuada atravs de um barramento partilhado no barramento, cada dispositivo identificado por um nmero nico, colocado nas linhas de controlo sempre que o dispositivo quer levar a cabo uma dada operao existem conexes separadas entre o MBR e o AC, entre o AC e a ALU e entre a ALU e o MBR
permite que a transferncia de dados entre estes dispositivos se faa sem recurso ao barramento, libertando-o para outras transaces em paralelo
28

4.2 MARIE - Registos e Barramentos


Representao grfica do datapath MARIE:

29

4.2 MARIE
- Arquitectura do Conjunto de Instrues
a arquitectura do conjunto de instrues (ISA) de um computador especifica o formato das suas instrues e as operaes primrias que a mquina pode fazer
a ISA o interface entre o hardware e o software certas ISAs incluem centenas de instrues diferentes a ISA MARIE inclui apenas 13 instrues:
9 instrues fundamentais (a apresentar j a seguir) 4 instrues complementares (a ver posteriormente)

30

4.2 MARIE
- Arquitectura do Conjunto de Instrues
formato de uma instruo MARIE: as instrues MARIE fundamentais so:

31

4.2 MARIE
- Arquitectura do Conjunto de Instrues
padro de bits da instruo LOAD no registo IR:

o cdigo de operao (opcode) 1 o endereo de onde sero lidos os dados 3

32

4.2 MARIE
- Arquitectura do Conjunto de Instrues
padro de bits da instruo SKIPCOND no registo IR:

o opcode 8 os bits nas posies 11 e 10 formam a sequncia 10 o que significa que a prxima instruo no ser executada se o valor do registo AC for > 0
qual a representao hexadecimal desta instruo?
33

4.2 MARIE
- Linguagem de Transferncia de Registos
cada instruo consiste numa sequncia de instrues mais bsicas: micro-operaes a sequncia exacta de micro-operaes despoletada por uma instruo pode ser descrita em RTL
RTL : register transfer language M[X] : valor armazenado na posio de memria X : simboliza a transferncia de bytes para um registo ou para uma dada posio de memria

34

4.2 MARIE
- Linguagem de Transferncia de Registos
descrio de LOAD em RTL:
MAR X MBR M[MAR], AC MBR

descrio de ADD em RTL:


MAR X MBR M[MAR] AC AC + MBR
consultar o livro de apoio para as restantes instrues ...
35

4.2 MARIE
- Linguagem de Transferncia de Registos
sabendo que SKIPCOND avana a prxima instruo em funo do valor de AC, a descrio em RTL :
If IR[11 - 10] = 00 then If AC < 0 then PC PC + 1 else If IR[11 - 10] = 01 then If AC = 0 then PC PC + 1 else If IR[11 - 10] = 10 then If AC > 0 then PC PC + 1

avanar (skip) uma instruo equivale a PC = PC +1


36

4.3 Processamento de Instrues - Ciclo fetch-decode-execute


ciclo fetch-decode-execute no MARIE: passos seguidos para executar um programa passo 1 (fetch): ler a instruo para o IR passo 2 (decode): descodificar a instruo
se for necessrio um operando que se encontre em memria), ser lido para o registo MBR

passo 3 (execute): executar a instruo


pode resultar na escrita de um valor em memria (caso de StoreX, que guarda AC na posio X)
37

4.3 Processamento de Instrues - Ciclo fetch-decode-execute


fetch execute

decode
38

4.4 Exemplos de Programas Simples

diagrama de traagem (trace): descreve com pormenor o que se passa na CPU durante a execuo
39

4.4 Exemplos de Programas Simples


diagrama para a instruo LOAD 104:

40

4.4 Exemplos de Programas Simples


diagrama para a instruo ADD 105:

consultar o livro de apoio para as restantes instrues ...

checkpoint: exerccios 4.23, 4.24

41

4.4 Exemplos de Programas Simples


// exemplo 4.1 if (X==Y) X = 2 * X else Y = Y X If, Load Subt Skipcond Jump Then, Load Add Store Jump Else, Load Subt Store Endif, Halt X, Dec Y, Dec X Y 400 Else X X X Endif Y X Y 12 20 /Load the first value /Subtract value of Y and store result in AC /If AC = 0, skip the next instruction /Jump to the Else part if AC is not equal to 0 /Reload X so it can be doubled /Double X /Store the new value /Skip over Else part to end of If /Start the Else part by loading Y /Subtract X from Y /Store Y - X in Y /Terminate program (it doesn't do much!) /Assume this initial value for X /Assume this initial value for Y
42

4.5 Assemblers
as mnemnicas assembly, tal como LOAD 104, so fceis de escrever e compreender pelos humanos ... ... mas no so inteligveis para o computador os assemblers traduzem mnemnicas (instrues compreensveis para os humanos) em linguagem mquina (compreensvel para os computadores)
note-se a diferena entre assembler e compilador: no mundo dos assemblers existe uma correspondncia de um-para-um entre mnemnicas e cdigo mquina; nos compiladores, normalmente, isso no acontece
43

4.5 Assemblers
criam, em dois passos, um ficheiro de cdigo objecto a partir das mnemnicas do cdigo fonte passo 1: traduzir o mximo de mnemnicas que se conseguir e construir uma tabela de smbolos que contm referncias de memria (endereos) para todos os smbolos que aparecem no programa passo 2: o cdigo mquina completado usando os valores (endereos) da tabela de smbolos

44

4.5 Assemblers
considere-se o programa apresentado direita
notar o uso de directivas (HEX e DEC) que especificam a base de representao das 3 constantes

durante o passo 1, produzse a tabela de smbolos e o cdigo mquina seguintes:

45

4.5 Assemblers
aps o passo 2, o cdigo mquina fica completo :

checkpoint: exerccios 4.13 a 4.15, 4.17, 4.18


46

4.6 Instrues Complementares


as instrues MARIE apresentadas at agora (as fundamentais) usam endereamento directo :

o endereo do operando faz parte da instruo a instruo inclui o endereo do endereo do operando uma situao semelhante utilizao de apontadores

outras instrues usam endereamento indirecto :


47

4.6 Instrues Complementares


ADDI X (adio indirecta) :
o valor a somar a AC o apontado por X X contm o endereo do valor a somar a AC ADDI 400 : se a palavra 400 guardar o valor 240, ser na palavra 240 que est o valor a somar a AC cdigo RTL: MAR X MBR M[MAR] MAR MBR MBR M[MAR] AC AC + MBR
48

4.6 Instrues Complementares - exemplo


ORG 100 Clear Store Store Loop, Load Subt Skipcond Jump Load Add Store Load AddI Store Load Add Store Jump EndLoop, Load Sum Output Halt Sum ArrayCellIndex ArrayCellIndex Five 000 EndLoop

// exemplo 4.2 int a[5]={10,15,20,25,30}; int sum=0, i=0; while (i<5) { / sum = 0 sum = sum + a[i]; / i = 0 i = i + 1; } printf(%d, sum); / check if i < 5

ArrayBaseAddress ArrayCellIndex ArrayCellAddress / new address of a[i] Sum ArrayCellAddress Sum / sum = sum + a[i] ArrayCellIndex One ArrayCellIndex Loop Dec Dec Dec / i++ Dec Dec ArrayBaseAddress, Hex ArrayCellAddress, Hex ArrayCellIndex, Dec Sum, Dec One, Dec Five, Dec

checkpoint: exerccio 4*.2

10 15 20 25 30 114 114 0 0 1 5

/ / / / / / / / / / /

a[0] a[1] a[2] a[3] a[4] address of a[0] address of a[i] index i sum constant 1 49 constant 5

4.6 Instrues Complementares


JUMPI X (salto indirecto) :
o valor a atribuir ao PC o guardado em X X contm o endereo da prxima instruo a executar JUMPI 400 : se a palavra 400 guardar o valor 240, ser na palavra 240 que est a prxima instruo cdigo RTL: MAR X MBR M[MAR] PC MBR

CLEAR : coloca o valor zero no registo AC (AC0)


50

4.6 Instrues Complementares


JNS X (jump-and-store) : conjugado com a utilizao de JUMPI X , suporta a execuo de subrotinas ... guardar o PC no endereo X e saltar para X+1, onde
comea a subrotina; a subrotina acaba com JUMPI X

cdigo RTL de JNS X:

TPC: o JNS permite recursividade?

MBR PC MAR X M[MAR] MBR MBR X AC 1 AC AC + MBR PC AC


51

4.6 Instrues Complementares - exemplo


// exemplo 4.3 int twice (int num) { int res; res = num + num; return(res); } main() { int x = 20, y = 48; x = twice(x); printf(%d, x); y = twice(y); printf(%d, y); } / / / / / / / / / / / / load the 1st number (X) to be doubled use Num as a parameter to pass X to Twice store return address and jump to Twice load the double of X returned by Twice update X with its double show the new value of X load the 2nd number (Y) to be doubled use Num as a parameter to pass Y to Twice store return address and jump to Twice load the double of Y returned by Twice update Y with its double show the new value of Y

ORG 100

Load X Store Num JnS Twice Load Res Store X Output Load Y Store Num JnS Twice Load Res Store Y Output Halt Twice, Hex Load Add Store JumpI 0 Num Num Res Twice

checkpoint: exerccios 4.20, 4.19, 4.16, 4*.3

/ end program / / / / / place to store return address AC = Num AC = AC + Num = Num + Num = 2 * Num Res = 2 * Num return to calling code X, Y, Num, Res, Dec Dec Dec Dec 20 48 0 0

52

4.7 Descodificao de Instrues


a unidade de controlo mantm o sistema sincronizado, garantindo que os bits (dados e controlo) chegam ao componente certo qd necessria a sua interveno formas de implementar uma unidade de controlo (UC):
controlo hardwired: a UC um circuito combinatrio e, para uma certa combinao de bits entrada, activa um conjunto de linhas saida, que controlam outros componentes digitais controlo microprogramado: a UC dispe de um interpretador (software) que converte instrues mquina em sinais elctricos
53

4.7 Descodificao de Instrues


controlo hardwired:
para descodificar opcodes MARIE seria necessrio um descodificador 4-para-16 o diagrama de blocos da direita mostra a configurao genrica de uma unidade de controlo implementada por hardware especfico (+) : bom desempenho (-) : complexo, inflexvel
54

4.7 Descodificao de Instrues


controlo microprogramado:
o interpretador (microprograma) armazenado como firmware numa memria ROM, PROM ou EPROM, designada control store existe uma subrotina para cada instruo mquina, que activar os componentes digitais prprios (-) : < desempenho (software) (+) : simples, flexvel (extender o instruction-set corresponde a codificar uma nova subrotina)
55

4.8 Arquitecturas Reais


apesar de muito simples, a arquitectura MARIE inclui muita da funcionalidade das arquitecturas modernas
no , todavia, uma representao exacta dessas arquitecturas sem mais registos, ou uma stack, a utilidade prtica limitada

no mundo real, existem variadssimas arquitecturas ... ... mas a arquitectura Intel (arquitectura CISC) e a MIPS (arquitectura RISC) so em si representativas
CISC (complex instruction set computer): grande nmero de
instrues, de dimenso varivel e de funcionalidade complexa; RISC (reduced instruction set computer): pequeno nmero de instrues, de dimenso fixa e de funcionalidade simples; cada instruo executa rapidamente, mas os programas so maiores
56

4.8 Arquitecturas Reais


a arquitectura Intel clssica, a 8086, nasceu em 1979 e trata-se de uma arquitectura CISC adoptada pela IBM para o PC, lanado em 1981 uma CPU 8086 operava em palavras de 16 bits e suportava endereos de 20 bits posteriormente, para baixar o preo, foi introduzido o 8088, que operava em palavras de 8 bits e usava tambm endereos de 20 bits
qual era a capacidade mxima de memria do 8086 ?
57

4.8 Arquitecturas Reais


o 8086 tinha 16 registos genricos que permitiam acesso aos 16 bits (palavra completa) ou apenas a 8
AX (acumulador primrio), BX (registo base, usado para endereamento), CX (contador), DX (registo de dados) AH, BH, CH, DH : parte mais significativa de AX, BX, CS, DX AL, BL, CL, DL : parte menos significativa de AX, BX, CS, DX SP (stack pointer), BP (base pointer), IP (instruction pointer) SI (source index), DI (destination index): operaes c/ strings status flags register: overflow, parity, carry input, etc. CS, DS, SS, ES (ver a seguir)
58

4.8 Arquitecturas Reais


programas em assembly divididos em 4 segmentos
code segment (cdigo do programa), referenciado por CS data segment (dados do programa), referenciado por DS stack segment (stack do programa), referenciado por SS extra segment (p/ operaes c/ strings), referenciado por ES endereos do tipo <segmento, deslocamento no segmento>

o 8086 no tinha unidade de vrgula flutuante ... em 1980, a Intel lanou o co-processador matemtico 8087, que podia ser instalado com o processador 8086
59

4.8 Arquitecturas Reais


em 1985, a Intel introduziu o 80386 (1 IA-32)
palavras de 32 bits, endereava at 4Gbytes tambm no tinha unidade de vrgula flutuante

o 80486, introduzido em 1989, era um 80386 que tinha unidade de vrgula flutuante e memria cache o 80386 e 80486 eram compatveis com o 8086 e 8088
o software desenvolvido para o 8086 apenas usa os 16 bits menos significativos dos registos de 32 bits do 80386 e do 80486

60

4.8 Arquitecturas Reais


Pentium: registos de 32 bits, data bus de 64 bits, super-escalar (vrias ALUs, + de 1 instruo por ciclo) Pentium Pro: branch-prediction (previso de saltos) Pentium II: instrues MMX (vectoriais) p/ multimdia Pentium III: suporte adicional para grficos 3D (FPU) Pentium 4: nova microarquitectura (netburst), pipelining (encadeamento de instrues) de > profundidade, caches multinvel, > velocidades de relgio (> 3GHz) Core : > desempenho, < consumo, multicore, 64 bits a Intel tem vindo a adoptar ideias do mundo RISC:
instrues CISC so traduzidas em instrues RISC
61

4.8 Arquitecturas Reais


a famlia de CPUs MIPS (R3000, R4000, R5000, R8000 e R10000) um caso de sucesso na sua classe (RISC) em 1986 foi anunciada a primeira CPU MIPS o MIPS foi um dos primeiros processadores RISC palavras de 32 bits, endereava 4GB de memria n reduzido de instrues (55 contra >100 da 80806) actualidade: verses de 32 e 64 bits MIPS32: 168 instrues, 32 registos genricos cada nova verso procurou manter retro-compatibilidade
62

4.8 Arquitecturas Reais


o desenho do MIPS orientado ao desempenho: arquitectura load/store: apenas as instrues load e store podem aceder memria RAM o elevado nmero de registos do MIPS mantm o trfego do barramento em nveis mnimos os processadores MIPS tm sido usados em variados domnios: computadores, consolas de jogos, routers SPIM: simulador MIPS R2000/R3000 similar ao MARIE
63

4.9 Concluses
os principais componentes de um sistema de computao so a unidade de controlo, os registos, a memria, a ALU e o datapath um relgio mantm tudo sincronizado as unidades de controlo podem ser microprogramadas ou em hardware (hardwired) as unidades de controlo em hardware tm melhor desempenho, enquanto que as microprogramadas so mais adaptveis
64

4.9 Concluses
os computadores executam programas obedecendo a ciclos fetch-decode-execute os computadores executam programas que se encontram expressos em linguagem mquina um assembler converte mnemnicas em linguagem assembly para linguagem mquina a arquitectura Intel uma arquitectura CISC e a arquitectura MIPS uma arquitectura RISC

65

También podría gustarte