Professional Documents
Culture Documents
GRADUAO TECNOLOGICA
ANLISE E DESENVOLVIMENTO DE SISTEMAS
ATIVIDADES ESTRUTURADAS
ORGANIZAO DE COMPUTADORES
Aluno:
Hiroche Mendes dos Anjos MAT: 201301105988
Matria e Turma: CCT0006-3015
ATIVIDADES ESTRUTURADAS
ATIVIDADES ESTRUTURADAS
UNIVERSIDADE ESTCIO DE S
ORGANIZAO DE COMPUTADORES
RIO DE JANEIRO RJ
PROF.: LZARO
ATIVIDADE ESTRUTURADA 1
1) Pesquisar as caractersticas do processador Neander-X e responda as
seguintes questes:
a) Quantos bits so utilizados para representar uma instruo?
So utilizados 08 bits.
b) Quantos bits so utilizados para representar um endereo?
So utilizados 08 bits.
c) Como so representados os nmeros inteiros negativos?
Os nmeros negativos so representados como N(negativo),1- resultado
negativo, 0- resultado no negativo.
d) Quantas instrues podem existir?
Podem existir 15 instrues.
e) Qual o tamanho mximo de memria enderevel?
O Neander usa uma memria de 256 posies (endereos) x 8 bits para
enderear (= largura de endereo de 08 bits),logo, ele consegue acessar
qualquer endereo do intervalo:
- 00000000 a 11111111 (em binrio)
- 0 a 255 (em decimal)
- 0 M a FFH ( em hexadecimal).
Com isso temos, a seguinte diviso de memria
- rea programada posio 0M at 7FH
- rea de dados posio 80H at FFH.
f) Quais so os registradores disponveis?
Os registrados disponveis so: 1 registrador de estado com 2 cdigos de
condio:negativo(N) e zero (Z).
g) Qual o formato de uma instruo?
Os formatos so: uma linha pode conter alguns dos seguintes elementos: um
rtulo, um operador ou uma pseudo-instruo, um operando opcional e
comentrios. So permitidas linhas vazias.
Instrues com 1 byte (NOP,NOT)
Neanderwin
Apresentao
O NeanderWin um simulador da mquina Neander. A mquina original
foi estendida nesse simulador para incluir algumas instrues para carga de
dados imediatos no acumulador e operaes de entrada e sada de dados para
dois dispositivos mapeados em nosso simulador: um teclado e um visor.
Algumas caractersticas do processador Neander so:
Diagrama em Blocos
A seguir apresentamos o diagrama em blocos do processador NEANDER:
4
Cdigo
0
No utilizados
endereo direto
Nota: Os 4 bits de mais baixa ordem do primeiro byte so reservados para futuras
expanses. Existem tambm dois cdigos que no tm instrues associadas.
Cdigo binrio Instruo Descrio
0000
NOP
nenhuma operao
0001
STA ender armazena acumulador (store)
0010
LDA ender carrega acumulador (load)
0011
ADD ender Soma
0100
OR ender operao lgica ou
0101
AND ender operao lgica e
0110
NOT
inverte (complementa) acumulador
1000
JMP ender desvio incondicional (jump)
1001
JN ender
desvio condicional (jump on negative)
1010
JZ ender
desvio condicional (jump on zero)
1011
JNZ ender desvio condicional (jump on not zero)
1100
IN ender
operao de entrada no dispositivo ender
1101
OUT ender operao de sada no dispositivo ender
1110
LDI imed carrega o valor imediato imed no acumulador
1111
HLT
trmino da execuo (halt)
'NOP' cdigo 0
O comando NOP no realiza nenhuma operao. usado apenas para
gastar tempo.
'STA ender' cdigo 1
O comando STA guarda o acumulador na posio de memria indicada
pelo operando ender.
'LDA ender' cdigo 2
O comando LDA atribui ao acumulador o contedo da posio de memria
indicada pelo operando ender.
'ADD ender' cdigo 3
O comando ADD soma ao acumulador o contedo de uma posio de
memria indicada pelo operando ender.
'OR ender' cdigo 4
O comando OR realiza um "ou" lgico entre o acumulador e o contedo de
uma posio de memria indicada pelo operando ender.
'AND ender' cdigo 5
O comando AND realiza um "e" lgico entre o acumulador e o contedo de
uma posio de memria indicada pelo operando ender.
'NOT' cdigo 6
O comando NOT inverte os bits do acumulador.
'JMP ender' cdigo 8
O comando JMP (jump) desvia a execuo do programa para o endereo
indicado pelo operando ender.
'JN ender' cdigo 9
O comando JN (jump if negative) desvia a execuo do programa para o
endereo indicado pelo operando ender, apenas quando a ltima operao
realizada produziu um valor com o bit 7 ligado (negativo).
'JZ ender' cdigo 10
memria
endereo
operando
Figura 01
Comentrios no programa:
Os comentrios so comeados por ponto e vrgula, e podem tambm
ocorrer no final das linhas de instrues.
Pseudo Instrues
ORG ender
A pseudo-instruo ORG (origin) indica ao montador que a prxima
instruo ser colocado na posio ender de memria.
var EQU imed
A pseudo-instruo EQU (equate) atribui um nome (rtulo) a um
determinado valor.
Esse comando frequentemente usado para especificar variveis que so
posicionadas em um endereo especfico de memria. Por exemplo para
posicionar a varivel x no endereo 100 use: X EQU 100
END ender
A pseudo-instruo END indica que o programa fonte acabou.
O operando ender usado para pr-carregar o PC com o endereo inicial
de execuo do programa.
DS imed
A pseudo-instruo DS (define storage) reserva um nmero de palavras
na memria definido pelo valor imed.
DB imed
A pseudo-instruo DB (define bytes) carrega esta palavra com o valor
dado pelo operando imed.
Exemplos de programao
Vamos considerar, como exemplo, um programa que realiza a soma de 3
posies consecutivas da memria e armazena o resultado numa quarta
posio. Inicialmente, devem ser escolhidas a rea de dados e a rea de
programa, ou seja, a localizao das instrues e dados na memria. No
existem critrios para essa escolha, mas deve ser observado que rea de
programa no pode invadir a rea de dados e vice-versa. Ou seja, para esse
programa, foi escolhida uma alocao de memria de tal forma que o programa
ocupe a metade inferior da memria e os dados a metade superior, como
segue:
rea de programa incio do programa posio 0 (0H)
rea de dados primeira parcela posio 128 (80H)
definido
definido
definido
ORG
LDA
ADD
ADD
STA
HLT
contedo
de
ao
contedo
de
ao
contedo
de
copiado
para
0
X;
acumulador
Y;
contedo
de
W;
contedo
de
Z;
contedo
; processador pra
A
A
A
de
recebe
somado
somado
A
como
como
como
128
129
130
X
Y
W
Z
Ramses
Caractersticas Bsicas:
Modos de Endereamento:
- Direto
- Indireto
- Imediato
- Indexado
memria
instruo
endereo
operando
Endereamento Indireto:
memria
instruo
endereo
endereo
operando
. Endereamento Imediato:
memria
instruo
operando
. Endereamento Indexado:
instruo
Reg. X
endereo
memria
deslocamento
+
operando
Cdigo
Decimal
Instruo
Operao
00
00
NOP
---
16
10
STR r end
Men(end):=r
32
20
LDR r end
r:=Men(end)
48
30
ADD r end
r:=Mem(end)+r
64
40
OR r end
r:=Mem(end) or r
80
50
AND r end
r:=Mem(end) and r
96
60
NOT r
r:=NOT(r)
112
70
SUB r end
r:=r-Men(end)
128
80
JMP end
PC:=end
144
90
JN end
Se N=1 PC:=end
160
A0
JZ end
Se Z=1 PC:=end
176
B0
JC end
Se C=1 PC:=end
192
C0
JSR end
Mem(end):=PC ,
PC:=end+1
208
D0
NEG r
r:= - r
224
E0
SHR r
r:= r / 2
240
F0
HLT
---
COMENTRIOS :
NOP : Nunhuma Operao .
STR r end : Armazena no Endereo 'end' o conteudo do resgistrador 'r'.
LDR r end : Carrega o conteudo do endereo 'end' no Registrador 'r'.
ADD r end : Soma o valor no que est no endereo 'end' ao que est no
Registrador 'r', armazenando o resultado em 'r'.
OR r end : Realiza um "or" Bit a Bit entre o valor de 'end' e o valor de r,
armazenado o resultado em r.
AND r end : Realiza um "and" Bit a Bit entre o valor de 'end' e o valor de r,
armazenado o resultado em r.
NOT r : Realiza uma inverso binria do valor de r.
SUB r end : Subtrai o valor contido em end do registrador r.
JMP end : executa apartir da instruo que esta em 'end'.
JN end : Caso o Valor do estado N for igual a 1', executa apartir da instruo que
esta em 'end'.
JZ end : Caso o Valor do estado Z for igual a 1', executa apartir da instruo que
esta em 'end'.
NEG r : Atribui a r o valor do seu simtrico.
SHR r : Atribui a r o valor da sua metade ou desloca seus bits para a direita.
HLT : Fim do Programa.
TABELA DE ENDEREAMENTO:
Cdig
o
Tipo de
Endereamento
Mnemnico
00
Direto
01
Indireto
n,I
10
Imediato
#n
11
Indexado
n,X
Modo de endereamento
memria
instruo
endereo
operando
TABELA DE REGISTRADORES:
Codig Registrad
o
or
Descrio
00
RA
Registrador Geral
01
RB
Registrador Geral
10
RX
Registrador de
ndice
11
---
Nenhum
Registrador
Selecionado
Simulador NeanderWin
Foi criado com intenes didticas, extremamente simples. Os processadores
modernos so muito mais complexos que o Neander, mas estes processadores
utilizados nas mais modernas mquinas de trabalho so baseados nos
conceitos elementares do Neander.
Nota: O NEANDER um computador muito simples sendo utilizado apenas
para estudos devido a sua limitao.
Neander
Instrues: 11*n + 8
Leituras: 27*n + 18
Escritas: 4*n
Ramses
Instrues: 5*n + 6
Leituras: 10*n + 13
Escritas: 1
Para n=30:
Instrues - Neander 338 x Ramses 156
Acessos - Neander 951 x Ramses 314
Referncias
http://www.ulbra.inf.br/joomla/images/documentos/TCCs/2011_01/TCCII_CC_FrancisSherer.pdf
http://www.inf.pucrs.br/flash/orgarq/aulas/ramses/Ramses-Instrucoes.ppt
http://equipe.nce.ufrj.br/gabriel/estacio/Neander3.pdf
ATIVIDADE ESTRUTURADA 2
Aprendizagem do NeanderWin: Criao e Execuo de Programas
a ) Executar o download do simulador
Referncia: http://www.dcc.ufrj.br/~gabriel/neander.php
b ) Identificar as partes do simulador descrevendo um breve roteiro de como
gerar e executar um programa.
Na Figura 01 abaixo mostramos a aparncia da tela principal do sistema
NeanderWin. Na parte superior esto o menu geral de operao (Arquivo,
Editar, etc...) e diversos botes usados em conjunto com o editor de textos, que
seguem o estilo usual de programas.
'NOP' cdigo 0
O comando NOP usado apenas para gastar tempo.
'STA ender' cdigo 1
O comando STA guarda o acumulador na posio de memria
indicada pelo operando ender.
'LDA ender' cdigo 2
O comando LDA atribui ao acumulador o contedo da posio de
memria indicada pelo operando ender.
'ADD ender' cdigo 3
O comando ADD soma ao acumulador o contedo de uma posio
de memria indicada pelo operando ender.
'OR ender' cdigo 4
O comando OR realiza um "ou" lgico entre o acumulador e o
contedo de uma posio de memria indicada pelo operando ender.
'AND ender' cdigo 5
O comando AND realiza um "e" lgico entre o acumulador e o
contedo de uma posio de memria indicada pelo operando ender.
'NOT' cdigo 6
O comando NOT inverte os bits do acumulador.
'JMP ender' cdigo 8
O comando JMP (jump) desvia a execuo do programa para o
endereo indicado pelo operando ender.
'JN ender' cdigo 9
O comando JN (jump if negative) desvia a execuo do programa
para o endereo indicado pelo operando ender, apenas quando a ltima
operao realizada produziu um valor com o bit 7 ligado (negativo).
'JZ ender' cdigo 10
O comando JZ (jump if zero) desvia a execuo do programa para
o endereo indicado pelo operando ender, apenas quando a ltima operao
realizada produziu um valor zero.
'JNZ ender' cdigo 11
O comando JNZ (jump if not zero) desvia a execuo do programa
para o endereo indicado pelo operando ender, apenas quando a ltima
operao realizada produziu um valor diferente de zero.
'IN ender' cdigo 12
O comando IN (input) traz para o acumulador o valor lido num
dispositivo externo indicado pelo operando ender. No Neanderwin os
dispositivos so: chaves (endereo 0) e o status de "dado disponvel" das
chaves (endereo 1).
Programa:
;--------------------------------------------------; Programa:
; Autor:
; Data:
;--------------------------------------------------ORG 0
X EQU 128
Y EQU 129
W EQU 130
;carrega primeiro operador em comp de 2
LDI 02
OUT 00
STA X
;carrega segundo o operador em comp de 2
LDI 03
OUT 00
STA Y
;efetua a soma entre 2 operadores e guarda no terceiro
LDA X
ADD Y
STA W
OUT 00
HLT
Na Figura 2, vemos a execuo do programa e a simulao realizao. Foi
realizada uma soma 32+5=37.
Simblico
X EQU 128
Y EQU 129
W EQU 130
Comentrios
Endereo da varivel X definido como 128
Endereo da varivel Y definido como 129
Endereo da varivel W definido como 130
ORG 0
LDA X
ADD Y
STA W
HLT
Soluo:
X=32
Y=5
W=37(resposta)
Identificao das partes do simulador Neander
Na janela Programa:
A seta ao lado da coluna de endereos indica o endereo da instruo
que ser executada (PC). Observe que, por padro o programa comea no
endereo 0.
No canto inferior direito h uma pequena caixa de texto onde dever ser
inserido o cdigo numrico em decimal da instruo que ir ocupar o endereo
apontado pela seta verde (PC). Por exemplo, no nosso programa, seria a
instruo LDA 128. Logo se preenche 32 (cdigo da instruo LDA).
No canto inferior esquerdo, em vermelho, h uma caixa de texto
denominada BP. Nesta caixa permitida a voc a insero de um endereo de
memria (instruo, 0 a 127) onde ocorrer um breakpoint durante a execuo
do programa.
Na janela Dados:
Corresponde aos endereos de memria situados entre [128..255] e
destinado ao preenchimento de valores nos endereos das variveis e das
constantes do programa na rea de dados da memria do Neander. O
preenchimento feito atravs da caixa de texto no canto inferior direito da
janela Dados.
Na janela Neander:
Nesta janela so mostrados os valores (contedo dos registradores PC
e AC), os bits N e Z, sob a forma de apagado (0) e aceso (1). Na caixa
denominada Execuo o nmero de execues e instrues do programa
carregado exibido. Na caixa Instruo um decodificador para as instrues
ATIVIDADE ESTRUTURADA
Anlise Comparativa: Neander-X com um Processador Comercial
O Neander-X no utilizado comercialmente. Escreva um relatrio que
compare o Neander a um processador comercial (voc pode escolher!)
demonstrando o porqu deste processador ser apenas acadmico.
RESPOSTA:
Realizar um comparativo dos processadores educativos com os
comerciais beira um abismo tecnolgico enorme, pois estes possuem
caractersticas e processamento muitas vezes superiores.
O NEANDER um computador muito simples, desenvolvido apenas
para fins didticos. Processadores modernos so muito mais complexos que
NEANDER. Entretanto, mesmo processadores utilizados nas mais sofisticadas
estaes de trabalho so baseados nos conceitos elementares que se aprende
com o NEANDER.
Tomamos como exemplo, microprocessadores da linha da Intel
codinome Gulftown um projeto da linha de processadores de Multi-Core
(vrios ncleos de processadores) e o Gerao 4 - Processador Core i7.
Vamos descrever todas as caractersticas de funcionamento e as novidades
desenvolvidas e compar-la com o processador NeanderX na concluso.
Faremos um breve detalhamento sobre sua tecnologia e suas
caracterstica e capacidades.
Introduo ao processador Intel Core - Gulftown
Em relao aos chips atuais, o Core i7 tem a vantagem de suportar trs canais
de memria. Isso gera um ganho de desempenho de 50% em relao
arquitetura com dois canais.
Cada ncleo de um i7 pode cuidar de duas tarefas (threads) ao mesmo tempo.
Como ele tem quatro ncleos, o sistema operacional pensa que est
trabalhando com oito ncleos.
Divulgao Intel
Processador Intel Core i7
o North Bridge.
O novo barramento se chama QuickPath Interconnect (QPI) e oferece dois
caminhos (transmisso e recepo dos dados) para o chip se comunicar com
outros dispositivos ou processadores no caso de servidores com mais de um
i7 instalado.
O controlador integrado suporta trs canais de memria. Cada canal pode ser
formado por um, dois ou trs pentes de memria RAM no padro DDR3, o
nico aceito. Em resumo, isso gera um ganho de desempenho de 50% em
relao arquitetura com dois canais (dois ou quatro pentes), como hoje. A
expectativa que muitas placas-me para i7 tenham seis bancos (slots), ou
seja, trs canais. Com isso, um consumidor extremamente exigente poder ter
uma mquina com incrveis 12GB de memria (6 pentes de 2GB). O ideal
instalar trs ou seis pentes no PC, para gerar o mximo de desempenho.
O desenho interno do processador tambm mudou. Os Core i7 so single die
(blocos nicos). Dentro de cada bloco, ficam os quatro ncleos (cores), o
controlador da RAM e a cache uma memria de altssimo desempenho junto
aos ncleos. H trs nveis de cache. O L1 separado para cada ncleo
32KB para dados e 32KB para instrues, ou 256KB ao todo (64KB vezes 4).
No nvel seguinte (L2), h mais 256KB por ncleo, totalizando 1MB (1024KB).
Por fim, o L3 de 8MB compartilhado por todos.
Essa hierarquia de memrias cache serve para agilizar o trabalho dos ncleos.
As instrues mais urgentes vo para a L1. A L3 serve como uma cpia de
segurana da L2, replicando os dados desta. Assim, se um ncleo precisa da
mesma informao que outro, ele busca nessa biblioteca pblica em vez de
perder tempo fuando na prateleira particular de outro core.
Outro recurso interessante o Turbo Boost. Ele permite que cada ncleo
ativo aumente sua freqncia de operao, em incrementos de 133Mhz por
vez, at atingir o limite trmico e eltrico determinado. Isso funciona tanto para
colocar o processador a todo vapor, como para ele economizar energia quando
no h muito trabalho. A idia que as verses do i7 para notebooks sejam
capazes de zerar o consumo dos ncleos desocupados.
Cada ncleo de um i7 pode cuidar de duas tarefas (threads) ao mesmo tempo.
Assim, o sistema operacional pensa que est trabalhando com oito ncleos.
Isso especialmente til com aplicativos desenvolvidos para dividir as tarefas
entre eles.
Por fim, mudanas no modo como os ncleos tratam as instrues (as ordens
dos aplicativos) permitem que os Core i7 processem, na maior parte do tempo,
cinco comandos por ciclo, em vez de quatro dos antecessores.
CONCLUSO