Você está na página 1de 25

Projeto Logico de Computadores

Exercícios: Aula 1

1) Explique o que você entende sobre a definição de Arquitetura de


Computadores.
É tudo que um programador precisa fazer para criação de um programa
e tornar legível para a máquina, sendo tudo que engloba.

2) Como a máquina multinível funciona? Descreva também, o nível


hierárquico de hardware e software.
Ela permite que várias implementações rodem no mesmo software
através de níveis de abstração, sendo eles , Software Aplicação –
Software de Sistema e Hardware

3) Descreva a organização de sistemas de computadores e suas


funcionalidades.
• Unidade de Controle
• Caminho de Dados
• Memória
• Entrada
• Saída
Unidade de Controle – envia os sinais que determinam quais as
operações que cada uma das outras unidades: caminho de dados,
memória, entrada e saída, devem realizar quando da execução de uma
instrução

Processador – combinação da unidade de controle e caminho de dados.


Ele Busca na memória, tanto a instrução quanto os dados eventualmente
necessários à execução.

Entrada – via pela qual os dados são escritos na memória.

Saída – lê o dado na memória e o disponibiliza em um veículo de saída.

4) O que vem a ser um compilador? Dê exemplos.


Um programa que traduz comandos de linguagem de alto nível para uma
linhagem de montagem.

5) Dentro dos computadores, existem montadores de instrução, que são


programados em linguagem de montagem. Pesquise sobre o assunto,
descrevendo alguns montadores de instrução, suas características e
exemplos de programação realizados com linguagens de montagem.
Cada família de processadores tem uma linguagem diferente exemplo da
X86, ARM, SPARC e MIPS
exemplo
CS - Code Segment, segmento de código em execução.
Um instrução que é usado para armazenar instruções usado pela pilha,
nesse exemplo ele é designado para a área de execução da tarefas do
sistema Operacional.
6) Sistemas Operacionais são programas que gerenciam os recursos de
um computador em benefício dos programas que são executados
nesta máquina. Faça uma descrição, sobre máquinas multinível,
explicando a relação entre a seguinte arquitetura (pesquise e
descreva sobre cada um destes níveis e sua relação com o nível
seguinte):

Ling. Orientada Para Problemas

Ling. De Montagem

Sistema Operacional

Arquitetura do Conj. De Instruções

Microprogramação

Lógica Digital

O computador é apresentado em níveis de abstração, onde em cada


nível matem ocultos determinados detalhes sobre a implementação. Ao ser
introduzido o conceito de máquina multinível, fica talvez complicado pensar
em termos de tradução e interpretação, por isso muitas vezes o termo
MÁQUINA VIRTUAL é utilizado, pois ele tenta associar a cada nível, uma
máquina hipotética com uma linguagem compatível para aquele nível. Por
exemplo, para uma camada C1, é imaginada uma MÁQUINA VIRTUAL C1.

Lógica Digital
Na lógica digital, os objetos que interessam aos projetistas são as
portas lógicas AND, OR, NAND etc. Embora elas sejam compostas por
elementos analógicos (transistores) a lógica digital lida somente com portas
lógicas, através de sinais de entrada (0s e 1s) e estes fornecem como
saídas, funções simples dessas entradas.

Microprogramação
Embora programas em qualquer nível possam ser executados por um
software interpretador, e embora esse interpretador possa ser também
executado por outro interpretador, essa hierarquia não pode prosseguir
indefinidamente. No nível mais baixo deve existir fisicamente uma máquina
em hardware, com circuitos integrados, fontes de alimentação e objetos
sólidos similares. Nesse nível, surge o conceito de programa como uma
seqüência de instruções a serem executadas.
Não existem dois computadores com nível de microprogramação
idênticos, existem semelhanças suficientes que nos permitem abstrair dos
aspectos essenciais do nível e discuti-lo como se fosse bem definido.

Arquitetura do Conjunto de Instruções


Quando se descreve o conjunto de instruções da máquina, se define
na realidade uma série de “comandos” em microprograma, e não as
próprias instruções de hardware.

Sistema Operacional
O nível de sistema operacional é geralmente conhecido como nível
híbrido. A maior parte dos símbolos são idênticos ao do nível de
microprogramação. O que acontece nesse nível é que além destas
instruções que aparecem nos outros níveis, novas instruções são
acrescentadas, uma organização diferente de memória, capacidade de
execução de tarefas paralelas.

Linguagem de Montagem
A primeira intenção dos níveis inferiores é que eles serão
responsáveis por traduzir e interpretar as instruções e comandos feitos nos
níveis superiores. Estes níveis até agora estudados, não são voltados para
programadores comuns e sim para programadores de sistema.

Linguagens Orientadas para Problemas


São ambientes de desenvolvimento usados para se desenvolver
aplicativos comerciais.

7) Dentro do projeto lógico de computador, descreva sobre o seguinte


termo: Lógica Digital (características, funcionalidades, como são
compostas, como é processada)

Na lógica digital, os objetos que interessam aos projetistas são as


portas lógicas AND, OR, NAND etc. Embora elas sejam compostas por
elementos analógicos (transistores) a lógica digital lida somente com
portas lógicas, através de sinais de entrada (0s e 1s) e estes
fornecem como saídas, funções simples dessas entradas.

8) Qual a diferença entre linguagem de montagem e linguagens


orientadas a problemas? Faça uma relação entre elas.
Uma linguagem de montagem é mais próxima do que o computador
executa e você diz o que ela deve fazer de forma direta, mesmo que
isso signifique se afastar do problema que está cuidando.

A linguagem de montagem não é a linguagem de máquina, é uma


linguagem textual como é a linguagem de programação de alto nível
e que tem regras que um humano consegue entender um pouco, só
não dá para expressar o problema de forma tão abstrata. A
linguagem de máquina é bem mais difícil de entender e não exige
sequer uma montagem.
A linguagem de alto nível tem instruções abstratas, tem
implementações de padrões de projeto que facilitam o entendimento
do humano sem preocupação de ser simples traduzir para o código
de máquina e sem relação direta entre suas instruções.

`comum que linguagens de alto nível permitam seus códigos rodar


em processadores diferentes e usando um Assembly isso não é
possível.

9) Como podemos descrever sobre a Evolução da Máquina Multinível?


Hoje ainda usamos o modelo da máquina de Von Neumann?
A evolução da máquina multinível, ajudou muito no avanço da
programação, que diminui muito o tempo que um programador leva
para criar um programa e faze-lo conversar com a maquina, tendo
um repertorio muito maior que os sistemas antigos que eram muito
limitados.
Não usamos mais o modelo da maquina de von neumann, ela é um
modelo primitivo que hoje em dia atrasaria muito o andamento de
diversos serviços de programadores e etc...

10) Quem foi Von Neumann? O que trouxe de benefícios para a


computação nos dias de hoje?
Foi o responsável por criar um arquitetura capaz de armazenas
programas na mesma memoria dos dados podendo manipular tais
programas.
Os benefícios são que o andamento e a qualidade das maquinas
melhoraram muito, podendo ter interação entre as peças para que o
desempenho melhore e os programas rodem melhor e com mais
facilidade nas maquinas.

11) Faça uma relação entre hardware, software e máquina


multinível.
sistema de computação mais primitivo é o hardware, sem
flexibilidade no que tange à carga de funcionalidade sob comando do
usuário.

Um sistema de computação é um conjunto [hardware + software em


execução] que contém funções capazes de analisar, interpretar e
transformar cadeias de elementos simbólicos discretos (dados),
percebidos como informações relevantes para o usuário do mundo
exterior.

O software é uma cadeia especial de elementos simbólicos


(programa), que ao ser interpretada por um sistema de computador,
tem capacidade de estender (ou mesmo modificar) o conjunto de
funções originalmente existentes neste mesmo sistema de
computador, criando um sistema de computador modificado.

Deste modo, o software, ao ser carregado e executado sobre o


hardware, define um novo sistema (sistema de computador
modificado), frequentemente mais sofisticado que o hardware
percebido pelo usuário antes de carregar e executar os softwares.
Exercícios Aula 02

1.Qual a vantagem de se ter um sistema de computação conforme o proposto por Von


Neumann? Constituído por uma unidade de processamento, unidade de entrada/ saída e
memória.

O sistema tem melhor fluxo de memória, e melhor qualidade, para que se possa fazer diversas
tarefas no computador sem ficar pesado, a partir daí que se pode chegar nas maquinas de
ultima geração que existem hoje em dia.

2.Por que o processador é considerado o cérebro dos sistemas de computação? Justifique sua
afirmação fazendo uma comparação com as demais partes do computador.

O processador é o responsável por pegar e executar todas as tarefas que o usuário executa, ele
utiliza de todas as peças possíveis do computador para que o que o usuário precisa seja
realizado, a memoria ram por exemplo, so tem uma única função que é de armazenar os dados
temporários que a maquina produz, sem o processador ela de nada serve.

3.Por que o processador é uma combinação de unidade de controle, unidade lógica e


aritmética?

Porque as três se completam, a unidade de controle busca o dado na memoria da maquina e a


unidade logica a executa, a aritmética faz todos os cálculos precisos com AND OR e os
complementos.

4.Considerando uma pilha, estrutura de dados já conhecida, descreva o princípio de


funcionamento dos registradores IR e PC.

O registrador mais importante é o Program conter (contador de programa) que aponta para a
próxima execução a ser executada no sistema, e outro registrador um tanto quanto
importante é o registrador de instruções que contem a instrução a ser executada.

5.Diferencie PROCESSAMENTO PARALELO de EXECUÇÃO PARALELA DE INSTRUÇÃO.

Processamento paralelo é uma forma eficiente de processamento de informação que explora


eventos concorrentes no processo de computação.

Execução paralela de instruções

Há diversos motivos para se desejar ter máquinas paralelas de diversas CPU's ou mesmo CPU
com várias ALU's.

Limite físico: velocidade da luz no vácuo (30 cm/ns) ou velocidade de um sinal elétrico no
cobre (20 cm/ns). Assim, para ter instruções de 1 ns, por exemplo, a distância dos sinais
percorridos, entre a CPU e a memória deve ser menor que 20 cm.

Outro problema é a dissipação do calor. Circuitos de alta velocidade geram grande quantidade
de calor. Tanto menor é o volume dos circuitos, mais difícil é a dissipação do calor gerado.
Frequentemente os processadores são mergulhados em líquido (água, freon, ou nitrogênio
líquido).

Podemos, por outro lado, obter maiores computações com arquiteturas com várias CPU's, ou
CPU com várias ALU's.
Exercícios Aula 03
a) Fale sobre as características gerais da memória(armazenamento, composição, relação
entre tipos de memória-desempenho/custo).

Sem ela, não seria possível o conceito de programa armazenado. As memórias são compostas
por células (posições), sendo que cada uma contém um endereço. Normalmente os fabricantes
padronizam as células contendo 8 bits e estas células são agrupadas em palavras, isto significa
que a máquina lida com palavras de memória, e não com células independentes. Então por
exemplo uma máquina de 16 bits terá registradores de 16 bits e instruções que manipulam
palavras de 16 bits.

b) Explique como se dividem as memórias para armazenamento secundário.

ON-LINE – aquelas que ESTÃO diretamente ligadas ao computador e não requerem


interferência humana ou semelhante, para serem acessadas. Exemplos: discos rígidos

OFF-LINE – aquelas que NÃO ESTÃO diretamente ligadas ao computador e requerem


interferência humana ou semelhante, para serem acessadas. Exemplos: disquetes, fitas
magnéticas e Discos compactos (CDs).

c) Descreva os parâmetros que caracterizam cada tipo de memória:

• Tempo de acesso

indica quanto tempo o sistema de memória consome para colocar um dado no barramento
após uma determinada posição ter sido endereçada.

• Ciclo de Memória

indica o período de tempo decorrido entre duas operações sucessivas de acesso à memória,
seja ela de escrita ou de leitura.

• Capacidade

é a quantidade de informação que pode ser armazenada em uma memória.

• Volatilidade

são memórias que perdem o dado nelas armazenado, quando a energia elétrica é retirada.

• Temporariedade

é uma característica que indica o conceito de tempo de permanência do dado em um tipo


específico de memória.

• Custo

o custo é bastante variado em função de diversos fatores, tais como: tecnologia de fabricação,
que conseqüentemente permitirá um maior ou menor tempo de acesso, ciclo de memória e
outros.
d) Explique o funcionamento da memória cachê e suas principais características.
Sua função é acelerar a velocidade de transferência das informações entre a CPU e
a MP e consequentemente aumentar o desempenho do sistema.

Tem um tempo de acesso de nanosegundos, o tamanho dela é definido através de


alguns fatores, é do tipo volátil, tem um alto custo e tem um tempo pequeno de
duração.

Exercícios Aula 04
1. Por que o sistema de memória é formado por diversos tipos de memórias?

É formado por diversos tipos de memoria para que, os serviços a serem executados possam
ser distribuídos para cada memoria, cada uma delas tem uma função, e o conjunto de todas
juntas tornam o computador uma maquina melhor de se trabalhar e mais ágil nas tarefas que
são executadas.

2. O que caracteriza cada tipo de memória?

Todas elas tem a função de armazenar dados, porem a memória principal é gravado todos os
dados do sistema operacional, a secundaria é um pouco menos importante e menor, tendo
como objetivo de armazenamento portátil, memoria ram, é utilizada para guardar dados
temporários para a boa fluidez do computador e a memoria cache, tem quase a mesma função
da memoria ram porem somente com dados primários do pc.

3. Com relação a tecnologia de fabricação, por que as memória eletrônicas são do tipo
volátil?

Para que os dados que entrem nela possam ser apagados ao desligar o pc, e assim serem mais
fáceis de colocar e apagar dados para que muitos dados possam serem armazenados

4. Por que o tempo de acesso às memórias do tipo secundário é muitas vezes maior que
o das memórias primárias?

Porque as memorias secundarias são do tipo de armazenamento portátil, ou volátil então os


dados que entram precisam ser lidos mais rapidamente, e são menores, a principal tem mais
dados e maior tamanho, consequentemente mais demora para ser lida.

5. Por que os registradores são extremamente importantes nos sistemas de memória?

Possui a maior velocidade de transferência, em relação às outras memórias, menor capacidade


de armazenamento e maior custo

6. Citar alguns tipos de memória (principal e secundária) existente no mercado.

Secundaria Discos magnéticos, como discos rígidos e disquetes

Primaria Memoria Rom e memorias RAm

7. Descrever sobre as principais características da memória principal e secundária:

• Tempo de Acesso/ Ciclo de


Primaria: embora seu desempenho seja menor que das memórias cache, elas são muitas
vezes mais rápidas que as memórias de armazenamento secundário.

Secundario: por se tratar de dispositivos eletromecânicos, pode-se levar de milissegundos a


alguns segundos para que dados neles armazenados sejam acessados.

• Capacidade

Primaria: enquanto memórias cache se referem a alguns Kbytes de dados armazenados, as


memórias principais lidam com quantidades bem maiores, sendo que nas arquiteturas de
microcomputadores atuais, podem ser endereçados até 4GB de MP.

Secundaria: por se tratar de memórias mais baratas e por não serem voláteis, normalmente
são utilizadas para armazenar grandes quantidades de dados.

• Volatilidade

Primarias: Também são do tipo volátil, por se tratar de memórias eletrônicas.

Secundarias: são do tipo não voláteis

• Tecnologia

Primarias: as primeiras memórias eram do tipo memórias magnéticas e posteriormente foram


substituídas por memórias de semicondutores.

Secundarias: normalmente são do tipo ótico ou magnético.

• Temporariedade

Primarias: é o tempo que o programa e os dados a serem executados num dado momento,
ficam armazenados na mesma.

Secundarias: armazenam a informação pelo tempo que o usuário julgar necessário.


Exercicios Aula 05
1) Como é organizada a memória principal?
A memória principal de qualquer sistema de computação é
organizada como um conjunto de N células, sequencialmente
dispostas, a partir de uma célula com endereço igual a 0 até a última
de endereço N-1.

2) Faça uma abordagem sobre a quantidade de bits de uma célula e a


relação endereço e conteúdo da célula.
Cada célula é constituída de um conjunto de circuitos eletrônicos,
baseados em semicondutores, que permitem o armazenamento de
valores 0 ou 1, os quais representam um dado ou uma instrução. A
quantidade de bits que pode ser armazenada em uma célula é definida
pelo fabricante. Os fabricantes atuais têm definido o tamanho das
mesmas como 8 bits (1 byte).

O que se pretende nesta abordagem é definir que de acordo com a


quantidade de bits que sua célula seja capaz de armazenar e a
quantidade de células que podem ser endereçadas, representam
consequentemente a quantidade de dados que a sua memória é capaz
de armazenar.

3) Quais são os tipos de operações que podem ser executadas na


memória principal? Explique cada operação.
Na memória principal pode ser executadas dois tipos de operações são elas:

Escrita (“write”) – armazenar informações na memória

Leitura (“read”) – recuperar uma informação armazenada na memória.

4) Descreva sobre Estrutura CPU/MP – Barramentos com Fluxos de


dados e de Controles:
 Registrador de Dados da Memória (RDM)
Registrador que armazena temporariamente a informação
(conteúdo de uma ou mais células) que está sendo transferido da
MP para a CPU (operações de leitura) ou da CPU para a MP
(operações de escrita). Em seguida a informação nele contida é
transferida para outro elemento da CPU para processamento ou
para uma célula da MP, conforme o tipo de operação que está
sendo realizada. Normalmente permite o armazenamento da
mesma quantidade de bits do barramento de dados.

 Registrador de Endereços da Memória (REM)


registrador que armazena temporariamente o endereço de acesso
a uma posição de memória, ao se iniciar uma operação de leitura
ou de escrita.
 Barramento de Dados
Interliga o RDM à MP, para transferência de informações entre a
MP e a CPU. Como se observa na figura, o fluxo é bidirecional.
 Barramento de Endereços
interligam o REM à MP para a transferência dos bits que
representam um determinado endereço. É unidirecional, visto que
somente a CPU acessa a MP para realização operações de leitura
ou de escrita. Possui o número de vias respectivo à quantidade de
bits para endereçamento.
 Barramento de Controle
interliga a CPU à MP para sinais de controle durante uma operação de
leitura ou de escrita. É bidirecional, porque a CPU pode enviar sinais
de controle para a MP, como um sinal indicador de operação de
leitura ou de escrita e a MP pode enviar um pedido de espera para a
CPU.

5) Laboratório:
 Grupos de 3 elementos;
 Pesquisar sobre tipos de arquitetura de memória existentes oje no
mercado;
 Apresentação do grupo sobre conteúdo.

Exercícios aula 06

1) Descrever os níveis da lógica digital. (Faça o fluxo dos


níveis).

Nivel 5 nível de linguagem orientada para o problema


Nivel 4 linguagem de maquina
Nivel 3 operando no nivel da maquina
Nivel 2 nivel de conjunto de instruções
Nivel 1 nivel da microarquitetura
Nivel 0 nivel logico digital

2) Como são classificados os elementos da eletrônica digital?


Descrever sobre eles.
Circuitos Combinacionais
Um circuito combinacional é constituído por um conjunto de
portas lógicas as quais determinam os valores das saídas
diretamente a partir dos valores atuais das entradas.
Circuitos Sequenciais
Um circuito sequencial possui uma realimentação da saída para
a entrada,denominada estado interno, cuja principal
característica é fazer com que as saídas sejam dependentes das
entradas atuais e de estados ocorridos anteriormente.
Registradores de Deslocamento
Os registradores de deslocamento são utilizados na
comunicação serial e na conversão paralelo-série e série-
paralelo.

3) Como funciona o principio das portas lógicas no


computador?
Na lógica digital apenas dois valores lógicos estão presentes.
Uma das formas de representação desse sinal pode ser: bit 1 e
bit 0, são os únicos dados que as portas logicas podem
entender.

Exercícios aula 07

Exercícios aula 09

1) Defina Barramento.
Um barramento é um caminho elétrico comum que liga diversos
dispositivos. Normalmente eles são agrupados segundo a sua função,
ou seja, na simbologia Memória principal /CPU, existe um barramento
só para dados, outro só para endereços, e outro para controle.
2) Existe alguma forma de padronização para barramentos? Explique.
Sim existem, por serem interligados em diversos dispositivos, ele
precisam se comunicar independente do fabricante, esse padrão é
especificado pelo fabricante do dispositivo.
3) Descreva sobre a presença de sinais no barramento.
Os sinais binários que os dispositivos computacionais emitem, não
são suficientemente fortes para alimentar um barramento, por essa
razão, os dispositivos são ligados no mesmo por intermédio de um
chip chamado alimentador do barramento, essencialmente um
amplificador digital. Na realidade este chip é preparado tanto para
receber quanto para alimentar o sinal.
4) Como podemos definir largura de barramento?
A largura do barramento é um parâmetro que especifica dentre
outras características a quantidade máxima de memória que pode ser
endereçada.
5) Explique a diferença entre barramentos síncronos e assíncronos.
Barramentos Síncronos
Têm uma de suas linhas alimentada por um oscilador a cristal (clock).
Todas as atividades do barramento gastam um número inteiro de
ciclos desse sinal ciclos do barramento.
Barramentos Assíncronos –Não usam clock para sincronização de
operações.

Exercícios aula 10

Exercícios:

1) O que vem a ser arbitragem de barramento?

Mestre

Elemento ativo do sistema

· Escravo
Elemento passivo do sistema

Durante a execução de uma instrução, podem ocorrer várias


alternâncias, com relação a quem é o mestre e quem é escravo. Pode
acontecer também que em determinado momento, mais de um
dispositivo deseje tornar-se mestre ao mesmo tempo, e aí? Para
evitar problemas desse tipo, deve existir um árbitro no sistema que
defina quem utilizará o recurso como mestre.

2) Defina arbitragem centralizada e descentralizada.

A arbitragem pode ser centralizada ou descentralizada. Quando esta


for centralizada, o elemento que funcionará como árbitro é
independente e funciona como um gerente de recursos, ou seja, ele
receberá a solicitação e permitirá ou não o uso do barramento. Ao
contrário da centralizada, na descentralizada não existe um elemento
responsável pela gerência dos recursos, mas sim uma linha que
mantém um sinal de utilização ou não do barramento

3) Quais as operações que podem ser realizadas no barramento,


entre mestre e escravo?

Operações de Barramento

Mestre /Escravo /Exemplo

CPU /Memória /Busca de instruções e dados

CPU /Dispositivo de E/S /Inicia transferência de dados

CPU /Co-processador /CPU delega instrução para o co-processador


executar

Dispositivo de E/S /Memória /DMA (Direct Memory Access)

Co-processador /CPU /Co-processador buscando operandos na CPU

4) Descreva sobre linhas de endereçamento.

Semelhantemente à pinagem da CPU:

o Endereçamento

o Dados

o Controle

· Uma linha para cada função de controle


o Ex.: leitura da memória, escrita na memória,etc.

o em geral: sinal 0 na linha indica seleção da função

· Um circuito decodificador pode ser necessário para converter os


sinais codificados emitidos pela CPU em sinais individuais no
barramento

5) Dentro dos Tipos de ciclos de barramento, fale sobre

· Transferência de dados em bloco

Mais eficiente que múltiplas transferências individuais

· Mestre do barramento especifica quantas palavras (words) devem


ser transferidas

· Escravo fornece uma palavra a cada ciclo do barramento, até o


número especificado.

· Sinal de controle BLOCK indica uma transferência em bloco

· Manipulação de interrupções

Permite que dispositivos de E/S sinalizem à CPU quando uma


requisição previamente feita for completada

· Sinalização de interrupções requer o uso do barramento

· Cada tipo de operação de manipulação de interrupção define um


ciclo de barramento particular

6) Explique o conceito de manipulação de interrupções.


O termo " manipulação de interrupção " refere-se ao tratamento
imediato de eventos de hardware pelo processador de um
computador . O processador responde à interrupção em
conformidade, utilizando uma biblioteca sofisticado de instruções .
Manipuladores de interrupção pode ser programado para aceitar
interrupções durante outro processamento de interrupção. Eventos
do Sistema Embarcados
eventos de sistema incorporados são momentos em que uma peça de
hardware acessa diretamente a unidade de processamento central
em um sistema de computador. Quando ocorre um acontecimento , o
equipamento emite um sinal para o processador e interrompe o que
quer actual processo que está a tratar . Eventos não planejados ,
conhecidas como exceções, são coisas como desligamentos
repentinos de dados ou erros de aplicação . Eventos programados ,
também conhecido como interrupções , são causados
deliberadamente por um usuário . Cliques do mouse ea inserção de
novos dispositivos são considerados interrupções.
Hardware Interrupt Handling

Exercícios aula 13
1. O que é a microarquitetura e qual a sua função no computador? Dê um
exemplo prático.
Microarquitetura ou μarch é a forma como um determinado conjunto
de instruções (ISA) é implementado em um processador, podendo ser
implementado com microarquiteturas diferentes.O ISA inclui o modelo
de execução, registradores do processador, endereço e formatos de
dados, entre outras coisas.

2. O que é caminho de dados? Qual a sua importância na microarquitetura?


O fluxo ou caminho de dados é a parte do processador que contem a
ULA e suas respectivas entradas e saídas. A temporização do caminho
de dados permite a leitura e a escrita de um registrador no mesmo
período do clock.

3. Por que a máquina virtual pode ser considerada uma microarquitetura?


Qual a diferença entre a máquina virtual e a máquina real?
Porque ela não é propriamente uma maquina real, podendo criar um
sistema novo a partir dela, por isso é chamada microarquitetura,
podendo exercer diversos processos de uma maquina real mesmo não
sendo uma. A grande diferença é que a maquina virtual é um sistema
que simula uma maquina real, utilizando hardware de uma maquina
real.

4. Qual a importância dos registradores de controle de memória na nossa


microarquitetura?
É nela que ficam armazenados os dados de microinstuçoes de um
microprograma Cada microinstrução especifica os sinais de controle
necessários para controlar a microarquitetura

5. Diferencie o registrador de endereços MAR do PC. Explique o por que da


distinção entre 8 e 32 bits.
O MAR é um registrador que lê todos os dados que são colocados no
topo da pilha e o PC Guarda o endereço do próximo byte que contém o
código de operação a ser buscado da memória.
A diferença de bits é a quantidade que cada registrador pode ler,
alguns registradores tem poder de leitura maior,então com mais bits.
6. O que pode ser entendido por temporização do caminho de dados?
A temporização do caminho de dados permite acessar o conteúdo dos
registradores que pertencem ao caminho de dados, sem perder a
segurança na troca de dados dos mesmos.

7. Descreva o que é e sua função dos seguintes registradores:

a) MPC
MPC, registrador contador de microinstruções, de 10 bits;
b) MIR
MIR, Controla as intruçoes que são mandadas para a maquina, de
24 bits;

c) PC
Guarda o endereço do próximo byte que contém o código de
operação a ser buscado da memória;
d) MAR
Leitura do valor a ser colocado no topo da pilha;
e) MDR
Recebe o resultado armazenado no topo, da soma das duas
palavras do topo da pilha;
f) H
topo da pilha;
g) MBR
Onde são armazenados em sequência todos os bytes das
instruções a serem executadas;
h) SP
aponta para o topo da pilha;
i) LV
Quadro de variáveis Locais;
j) CPP
Ponteiro para o Pool de Constantes);
k) TOS
Guarda o conteúdo de memória apontado por SP - Stack pointer;
l) OPC
Registrador temporário em algumas instruções e pode ser usado para guardar o
endereço do código de operação de uma instrução de desvio.
Exercícios aula 14

1. Quais as características da Linguagem Assembly? Descreva


também sobre o Assembly do 80386.

linguagem Assembly apresenta um número muito reduzido de


instruções, do tipo operações de movimentação de dados em
memória, para registros e para memórias, e operações lógicas e
aritméticas bem simples. Estas instruções são de baixa
expressividade, isto é, elas são de baixo nível.

Primeiro processador da Intel de 32 bits com recursos

“Modernos”:

Modo protegido de memória (nas versões antigas, como o

8086 havia o “modo real”, onde cada programa poderia

bagunçar livremente a memória de algum outro)

Todos os sistemas operacionais modernos operam rodando

sobre o modo protegido

Multitarefa

Novos chips da Intel mantém compatibilidade: Pentium,

Core2Duo, Atom, . . .

Existem diversas ferramentas livres na Internet que

facilitam o desenvolvimento desse tipo de código

2. Descreva sobre os seguintes Registradores do 80386:

a) EAX:

Registrador acumulador. Usado para endereçar E/S, aritimética,


dentre outras funções.

b) EBX:

Registrador base. Usado como ponteiro para acesso à memória,


interrupções.

c) ECX:

Registrador contador. Usado como contador em laços, interrupções.

d) EDX:

Registrador de dados. Usado para endereçar E/S, aritmética,


interrupções.
e) EIP:

Ponteiro de índice - guarda um índice indicando a próxima instrução a


ser executada.

f) EBP:

Endereço base da pilha.

g) ESP:

Endereço do topo da pilha.

h) EDI:

Índice do destino - na operação de cópia de cadeias de caracteres.

i) ESI:

Índice da fonte - na operação de cópia de cadeias

de caracteres.

3. Para que serve o Registrador EFLAG? Dê exemplos.

Cada um de seus 32 bits controla ou exibe algum estado final ou


intermediário de uma operação.

6 Zero Flag: indica se o resultado de uma operação foi zero.

10 Direction Flag: usado no processamento de strings, indica

quando o processamento deve ser feito do início para o fim ou o


contrário.

11 Over flow Flag: usado por operações aritméticas que podem gerar
over flow.

4. Descreva sobre a Palavra: Word nos registradores. Represente


também as unidades de memória e o tamanho em bytes de cada
uma.

Palavra: Em registradores de 32 bits, a palavra no Assembly do


80386 tem 16 bits.

Unidade de memória Tamanho em bytes


word 2 bytes
double word 4 bytes
quad word 8 bytes
paragraph 16 bytes
5. Quantos e quais são os tipos de operandos em Assembly?

São 4 são eles:

Registrador: o operando refere-se diretamente ao conteúdo de um


registrador da CPU;

Memória: refere-se a um dado em memória – posição constante ou


informada em um registrador;

Imediato: valores fixos expressos diretamente na instrução;

Implicado: valor não mostrado diretamente. ex.: operação de


incremento.

6. Dê exemplos das instruções básicas em Assembly.

mov dest, src: Copia em dest o src conteúdo de src.

Ex.: mov eax, 14; grava 14 no registrador eax

mov ebx, eax; grava o conteúdo de eax em ebx

add: Adiciona inteiros.

Ex.: add eax, 22; eax = eax + 22

add ebx, eax; ebx = ebx + eax

sub : Mesmo formato de add

inc : Ex.: inc eax; eax++

dec : Ex.: dec eax; eax--

7. Para que servem Diretivas (%difine) em Assembly?

Define um valor constante a ser usado no programa:

%define SIZE 5000

mov eax SIZE

8. Qual a função das Diretivas de Dados em Assembly? Dê 4


exemplos de sua aplicação.

Reservam de espaços de memória. Os espaços são marcados com


rótulos (labels):

• L1 db 13 ; byte rotulado L1 com valor inicial 13


• L2 dw 345 ; palavra rotulada L2 com valor inicial 345

• L3 db 100111b ; byte inicializado para 100111 em binário

• L4 db 11h ; byte inicializado to 11 em hexadecimal

9. Qual a função dos Rótulos (labels) em Assembly? Dê um


exemplo de sua aplicação.

Reservam espaço em algum lugar na memória e opcionalmente


inicializam seu conteúdo. No decorrer do programa o mesmo espaço
de memória é facilmente acessado através de seu rótulo.

L1 db 1: L1 é associado a célula de memória com endereço 3 e seu


conteúdo inicializado com 1.

10. Quais são os tipo de dados em Assembly?

B byte

W word

D double word

Q quad word

T ten bytes

11. Dê um exemplo de Estrutura de um programa em Assembly.

segment .data

prompt1 db "Digite a primeira idade: ", 0

prompt1 db "Digite a segunda idade: ", 0

msgl db "A soma das idades é: ", 0

segment .bss

x resd 1 Prepara para receber a variavel

y resd 1 Prepara para receber a variavel


segment .text

asm_main: Inicio do programa

enter 0,0 Limpa as variaveis com 0,0

pusha Instrução que salva todos os registradores de uso


geral na pilha

add x,y Soma os valores x,y

mov eax, x Adiciona o resultado de x+y no registrador eax

mov eax, prompt1 Move o que foi digitado par registrador eax

call print_string print no prompt

call read_int lendo inteiro no prompt

mov [x], eax escreve o resultado do registrador eax na variavel


no prompt

12. Faça uma relação de Testes Condicionais “if”, comparando um


programa em C com um programa em Assembly.

Executando o "if" em assembly

 Executa uma comparação (instrução CMP); Altera valor do


registrador EFLAGS.

 Avalia resultado (instruções JE, JNE, ...)

Programação em C Programação em Assembly


if ( x==0 ) ...

comandoA; mov eax, [x]

else cmp eax, 0

comandoB; je posicaoA

jmp posicaoB

posicaoA:

comandoA

jmp depoisTeste
posicaoB:

comandoB

jmp depoisTeste

depoisTeste:

...

13. Faça uma relação de estrutura de repetição na linguagem C


com parada com a linguagem Assembly.

Instrução LOOP: Repetição

Formato: LOOP posição_para_saltar

Verifica o valor do registrador ECX, caso o mesmo seja diferente de


zero pula para a parte do código rotulada em posição_para_saltar.

Programação em C Programação em Assembly


%include "asm_io.inc"

for (int i=0 ; (i<10) ; i++ )

printf("%d\n", i); segment .text

...

mov [ECX] 10

inicio:

mov eax, ecx

call print_int

loop inicio

...
Exercícios aula 15

Exercícios:

1) Como são realizadas as operações com a memória?


Na verdade o computador só é capaz de tratar dados que estão
armazenados na memória principal (MP), mas para isso, é preciso
transportar esses dados da MP até os registradores.

2) Quem é o maior e mais importante item de controle da máquina?


Explique.
A memória de controle é o maior e o mais importante item
componente da parte de controle da máquina. A memória de controle
que está interna a Unidade Central de Processamento, é responsável
por armazenar o microprograma, elemento responsável por definir a
interface entre o lógico e o físico. O controle dessa memória é feito
por meio do MPC (MicroProgram Counter).

3) O projeto da Microarquitetura está repleto de decisões que


envolvem características conflitantes. Quais são estas decisões?
O projeto da Microarquitetura está repleto de decisões que envolvem
características conflitantes. Dentre elas podemos destacar:
velocidade, custo, facilidade de uso, confiabilidade, consumo de
energia e tamanho físico.

4) Qual é o objetivo principal dentro do projeto da Microarquitetura?


Explique.
O objetivo é combinar todas essas características, ponderando

cuidadosamente a influência positiva ou negativa exercida no projeto


de cada

uma delas. O maior detalhe deste projeto, que exerce uma relação

preponderante: velocidade versus custo.

5) Descreva sobre velocidade X custo, dentro do projeto de


Microarquitetura.
O ganho de performance está muito relacionado com a melhora na

tecnologia de projeto e de produção dos circuitos integrados, porém


não é a

abordagem da informática mas sim à eletrônica. No entanto, as


melhoras na
velocidade devido à organização da máquina, embora menos
charmosas que

as melhoras devidas a circuitos mais rápidos, têm obtido resultados


bastante

expressivos.

6) Existem três metodologias básicas para melhorar a velocidade de


execução de instruções. Explique cada uma delas.

Reduzir o número de ciclos de clock necessários à execução das


instruções;

Para se ter uma qualidade maior de execução é preciso diminuir


muito o tempo de resposta de cada execução, então assim
melhora o desempenho.

Simplificar a organização da máquina de modo a reduzir o período do


clock;

Tem q simplificar a organização para que o sistema possa dar uma


resposta mais rápida e melhor, obtendo maior qualidade e
velocidade.

Sobrepor a execução das instruções.

Sempre é bom usar um sistema que pode fazer varias tarefas ao


mesmo tempo, e com a sobreposição isto acontece, aumentando
assim o poder de processamento do processador, obtendo maior
qualidade e velocidade.

7) Todos os fabricantes de computadores desejam que seus sistemas


rodem tão rápido quanto possível. As idéias a serem discutidas no
que diz respeito a performance, podem ser classificadas
basicamente em duas categorias: melhoras na implementação e
melhoras na arquitetura. Descreva sobre elas.
As melhoras na

implementação buscam construir um novo processador ou uma nova


memória

para fazer com que o sistema rode o mais rápido, sem alterar a
arquitetura.
Modificar a implementação sem mexer na arquitetura, significa que
programas

antigos vão rodar na mesma máquina sem problema. Uma maneira,


por sinal

bastante utilizada, é usar um clock mais rápido.

Pode-se obter outros tipos de melhoras na performance


simplesmente

alterando a arquitetura. Às vezes essas mudanças são incrementais,


a exemplo

das que acrescentam novas instruções ou novos registradores,


permitindo que

os programas antigos continuem a executar nos novos modelos.


Nesse caso,

para utilizar completamente o ganho de performance, há necessidade


de se

modificar o software ou, no mínimo, recompilar os programas antigos


com o

compilador que gere o código para a máquina nova, que faz uso dos
novos

recursos.

Você também pode gostar