Académique Documents
Professionnel Documents
Culture Documents
FACULDADE DE ENGENHARIA
Sumrio
Introduo..........................................................................................................................3
Arquitetura do microprocessador 8086.............................................................................4
Registradores de Uso Geral................................................................................5
Registradores de Segmento................................................................................6
Apontador de Instruo: IP..................................................................................7
Registrador de FLAGS............................................................................................7
Memria......................................................................................................................9
Modos de Endereamento.................................................................................10
Linguagem Assembly......................................................................................................11
Introduo ao Projeto dos Simuladores...........................................................................12
Decodificao das Instrues...........................................................................13
Exemplo de Fluxo de Instrues no Diagrama de Blocos......................16
Sobre o arquivo teste..........................................................................................17
Simuladores.....................................................................................................................18
Simulador da arquitetura 8086 Sem Pipeline.........................................18
Executando o programa.................................................................................18
Funcionamento..................................................................................................19
Clculo do CPI.....................................................................................................21
Simulador da arquitetura 8086 Com Pipeline.........................................22
O Pipeline.............................................................................................................22
Conflitos do Pipeline........................................................................................22
Hazards Estruturais..........................................................................................22
Hazards de Controle........................................................................................22
Hazards de Dados.............................................................................................23
Executando o programa.................................................................................24
Funcionamento..................................................................................................24
Clculo do CPI.....................................................................................................26
Sinais de Controle.............................................................................................27
Concluso........................................................................................................................29
Referncias Bibliogrficas...............................................................................................30
Introduo
O 8086 um dos mais antigos e conhecidos microprocessadores de 16 bits. Sua
popularidade se deve a ter sido escolhido como processador para a linha de
computadores pessoais da IBM. Na verdade, o IBM-PC tradicional usa uma verso
simplificada do 8086, o 8088. Novos membros da famlia IBM-PC (como o PC AT e o
PS/2) usam extenses (verses melhoradas e parcialmente compatveis) do 8086.
Registradores de Uso Geral: AX, BX, CX, DX, SP, BP, SI e DI;
Registradores de Segmento: CS, DS, SS e ES;
Apontador de Instruo: IP;
Registrador de FLAGS.
Registradores de Dados: AX, BX, CX e DX. Seus bytes superiores (AH, BH,
CH e DH) e inferiores (AL, BL, CL e DL) podem ser acessados de modo
independentes, ou seja, cada registrador pode ser usado como um registrador de
8 ou 16 bits. Evitando assim o uso de registradores de 16 bits quando se
realizam operaes de 8 bits. Eles podem ser utilizados sem restries na
maioria das operaes lgicas e aritmticas, mas algumas instrues utilizam
certos registradores de forma implcita, permitindo uma poderosa forma de
codificao.
Registradores Apontadores e de Indexao: SP, BP, SI e DI. O acesso a esses
registradores sempre feito em 16 bits.
Podem tambm participar da maioria das operaes lgicas e aritmticas.
Registrador AX (AH e AL):
tambm denominado Acumulador Primrio. Todas as operaes de I/O so
realizadas atravs deste registrador. As operaes que utilizam dados imediatos
necessitam de menos memria quando so feitas atravs de AX.
Geralmente utilizado como hospedeiro para valores retornados de sub-rotinas.
Registrador BX (BH e BL):
tambm denominado Registrador Base. Usado preferencialmente como apontador
da base de uma tabela de dados. Todas as referncias memria que usam esse
registrador no clculo do endereo usam o registrador DS como segmento padro.
Registradores de Segmento
A memria do 8086/88 dividida em segmentos lgicos de at 64 Kb. A CPU tem
acesso simultneo a at 4 segmentos, utilizando os registradores CS, DS, SS e ES como
seletores de endereo. Estes registradores esto localizados na BIU, sendo acessveis
para programas, podendo ser manipulados por vrias instrues. As principais funes
de cada um destes registradores:
Registrador CS:
denominado Code Segment (Segmento de Cdigo). utilizado para montar o
endereo de uma instru (code) a ser buscada (fetch) na memria. Este define o
endereo base (segmento) e deve ser somado ao registrador IP (tambm localizado na
BIU) para formar o endereo de 20 bits da instruo. Em outras palavras, aponta para o
segmento de cdigo de instruo em uso.
6
Registrador DS:
denominado Data Segment (Segmento de Dados). Aponta para os segmentos de
dados onde geralmente so armazenadas as variveis de programa. Em conjunto com IP
define o endereo efetivo do dado a ser lido ou escrito na memria.
Registrador SS:
denominado Stack Segment (Segmento de Pilha). Aponta para o segmento da pilha
em uso. Todos os acessos pilha utilizam os registradores SP e BP e utilizam como
referncia o registrador de segmento de pilha (SS).
Registrador ES:
denominado Extra Segment (Segmento Extra). uma opo extra para apontar a
base de um segmento de dados (strings). Por exemplo, ele utilizado juntamente com o
DI para formar o endereo da base de strings de dados.
Apontador de Instruo: IP
denominado Instruction Pointer (Ponteiro de Instrues). Este registrador
atualizado pela BIU e contm a distncia em bytes (offset) da prxima instruo em
relao ao incio do cdigo que est sendo executado, isto , ele aponta para a prxima
instruo. Os programadores no tm acesso direto a esse registrador.
Registrador de FLAGS
O microprocessador 8086 contm em seu interior um total de 9 sinalizadores,
tambm conhecidos como flags. Eles existem para indicar resultados obtidos sempre na
ltima operao lgica ou aritmtica executada, ou para definir o comportamento do
microprocessador na execuo de certas instrues. Estes 9 flags esto agrupados, para
facilidade de acesso, em um registrador de 16 bits, chamado de Registrador de Flags,
Registrador de Estado ou Palavra de Estado do Programa, sendo localizado na unidade
EU.
Como mostra a figura 2.0, ele utiliza bits para armazenar informaes de estado
(status) e de controle.
15 14 13 12 11 10 9 8
7
6
5 4
3 2
1 0
- OF DF IF TF SF ZF - AF - PF - CF
Figura 2.0 Registrador dos Flags.
Flags de Estado:
Os bits de estado refletem certas propriedades de resultados de operaes lgicas e
aritmticas realizadas na EU, a qual responsvel por setar estes bits no registrador.
Memria
Do ponto de vista do programador, a memria se comporta como um conjunto de
endereos onde possvel escrever e ler informaes. Cada locao, ou endereo
identificado por um nmero.
A memria pode ser vista como uma longa lista de endereos, ou como um
agrupamento de endereos em blocos denominados pginas. Os dgitos mais
significativos do endereo representam a pgina, e os dgitos menos significativos
identificam a posio dentro da pgina, como por exemplo, a pgina 10 compreender
os endereos de 1000 a 10FF.
Com 16 bits para endereamento possvel enderear 216 = 64K locaes. Para
aumentar essa faixa de endereos pode-se estender o tamanho de palavra de endereo,
ou utilizar tcnicas de gerenciamento de memria. Os microprocessadores 8086/88
utilizam o gerenciamento de memria por segmentos.
Durante a execuo de um programa no 8086, h 4 segmentos ativos:
segmento de cdigo: endereado por CS
segmento de dados:endereado por DS
segmento de pilha: endereado por SS (stack segment)
segmento extra: endereado por ES.
Gerenciamento de memria por segmentao:
O 8086 possui 20 bits para acessar posies de memria fsica o que corresponde a
220 = 1.048.576 bytes (1 Mbyte) de posies endereveis. Exemplos de endereos:
0000 0000 0000 0000 0000b -> 00000h
0000 0000 0000 0000 0001b -> 00001h
1111 1111 1111 1111 1111b -> FFFFFh
O 8086 opera internamente com 16 bits para gerar endereos com 20 bits ele utiliza a
idia de segmentao de memria.
Cada segmento de memria corresponde a um bloco de 64 Kbytes de posies de
memria consecutivas, identificado por um nmero de segmento.
Para acessar um byte ou palavra particular na memria, necessrio um offset, ou
seja, uma distncia em bytes do incio do segmento. O endereo real de memria de 20
bits o resultado da soma de um registrador de segmento (deslocado de 4 bits para a
esquerda) e um offset de 16 bits . O registrador de segmento e a fonte do offset
dependem do tipo de referncia memria desejado:
Tipo de Referncia
Memria
Busca de instruo
Pilha
Varivel
a Segmento
Default
CS
SS
DS
String fonte
String destino
BP como registrador base
DS
ES
SS
Segmento
Alternativo
nenhum
Nenhum
CS,ES,SS
CS,ES,SS
Nenhum
CS,ES,SS
Offset
IP
SP
Endereo
efetivo
SI
DI
Endereo
efetivo
Modos de Endereamento
Os processadores 80x86 permitem acessar a memria de vrios modos diferentes. Os
modos de endereamento de memria do 80x86 oferecem flexibilidade no acesso
memria, permitindo acessar facilmente variveis, arrays, registros, ponteiros e outros
tipos de dados mais complexos.
Modo Registrador e Imediato
Registrador: os operandos fonte, destino ou ambos esto contidos em registradores.
Exemplo: MOV CX, BX
Imediato: os dados em 8 ou 16 bits podem ser especificados como parte da
instruo. Exemplo: MOV CX, 24h
Modo de Endereamento de Memria
Direto: O endereo efetivo do operando (offset) no correspondente segmento
obtido diretamente a partir de um determinado dado, sem envolver quaisquer
registradores. Exemplo:
.DATA
START DW 39FAH
...
MOV BX, START
10
Linguagem Assembly
O processador x8086 possui um grande conjunto de instrues, que podem ser
divididas em: instrues de movimentao de dados, instrues aritmticas, instrues
lgicas, instrues de manipulao de strings, instrues de desvio e controle de fluxo.
Aqui somente sero descritas as instrues do subconjunto formado para
implementao nos simuladores.
11
12
5
8 9
3
0 7
w reg
Data
-
16 17
24
0 7
0
Data se w=1
-
13
5
8
3210
10dw
8, se w=0
9 se w =1
9
12
76
54
mod reg
11
xx
13
3
reg
x
16
210
r/m
xxx
12 13
54
3
Reg Reg
16
210
rm/m
15
5
8 9
16
3210 76543210
0 0 1 0 disp
2
16
17
Simuladores
Simulador da arquitetura 8086 Sem Pipeline
Executando o programa
Aps iniciar a execuo do programa (duplo clique sobre o arquivo
SimuladorSPipeline.exe), abrir a tela do simulador conforme mostra a figura 6.0. No
campo Informe o caminho do arquivo (.lst), clique no boto de abrir, para que a janela
de busca de arquivos seja aberta. Selecione e abra arquivo com extenso .lst gerado a
partir de cdigo programado em assembly no montador NASM.
Para abrir o arquivo teste busque por:
Diretrio:\T1MarciaFederizzi_VanessaBorba\SimuladorSPipeline
programafunciona.lst
Figura 6.0 Simulador Sem Pipeline. Em destaque os botes de seleo de arquivo e execuo do
programa.
18
Observaes:
1 - Antes de abrir o arquivo .lst necessrio edit-lo linha a linha. A edio
referente ao caracter de quebra de linha, que no arquivo original no o caracter padro
para enter. Nesse caso, ao final de cada linha tecle enter para marcar o final de linha no
arquivo. Aps abrir o arquivo, clique em Executar Programa para iniciar a simulao
de processamento do x8086.
2 - O arquivo .lst dever ser gerado no nasm, no sistema operacional Linux, atravs
do comando: diretorio/nasm f elf l arquivo.lst arquivo.asm
Funcionamento
Inicialmente o sistema ir acessar o arquivo informado e carreg-lo, linha a linha,
para a lista Seqncia e instrues do programa. Ao gravar as linhas nessa lista, o
programa j est tratando e desconsiderando linhas em branco e possveis comentrios
contidos no arquivo, por meio da rotina ArmazenaLinha. A rotina LeArquivoLST
responsvel por gerenciar a leitura das linhas do arquivo e efetuar a chamada da rotina
ArmazenaLinha. Essa lista composta de duas colunas: ndice e instruo. Sua
montagem e exibio foram projetadas para facilitar o acompanhamento das instrues
que sero processadas pelo simulador. Para tanto, a coluna ndice que faz referncia a
cada linha de programa do arquivo, tambm ser exibida nas listas especificadas abaixo:
Posio de Memria/Instruo: contm o programa no formato de cdigo objeto
permitindo acompanhar como cada linha do cdigo em assembly foi montada para
execuo. O preenchimento dessa lista implementado pela rotina CarregaMemoria
que percorre o objeto Seqncia e instrues do programa e monta o que simularia o
modo como o 8086 trata a memria, isto , segmento de dados e segmento de cdigo
representados pela lista Posio de Memria/Instruo e a rea de registradores de uso
geral, representada pela lista Contedo dos registradores, mas que simbolizam serem
fisicamente uma nica memria. Despreza a coluna de instrues escritas em assembly,
montando apenas a coluna de ndices (referncia constante no simulador para a linha de
processamento).
Processamento das Instrues: exibe a sequncia de dados em cada registrador
durante a execuo do programa.
Contedo dos registradores: simula a rea de registradores de uso geral, tendo os
valores constantemente atualizados conforme seqncia do programa. Mostra o
contedo dos registradores aps o trmino do programa.
As rotinas de simulao da arquitetura 8086 comeam a serem executadas no instante
em que o programa j foi carregado na memria (no simulador, aps carregar a lista
Posio de Memria Instruo).
As linhas de programa so processadas em srie e somente aps o trmino dos
estgios de execuo de uma instruo, o simulador reinicia a rotina buscando nova
instruo. A busca realizada at que a rea de programa tenha sido executada por
completo.
19
20
Clculo do CPI
Para auxiliar a visualizao das vantagens do pipeline sobre a arquitetura, foi inclusa
a rotina de clculo de CPI (Ciclos por Instruo). Nesse simulador, em cada estgio da
instruo foi incluso um contador para simbolizar a quantidade de ciclos gastos por
instruo, j que na linguagem Delphi, no possvel ativar a rotina segundo um clock
definido. Ao trmino da execuo do simulador, contabilizado o nmero total de
instrues contidas no programa. O total de ciclos gastos dividido pelo total de
instrues executadas e resultado informado no campo CPI.
21
Conflitos do Pipeline
A dificuldade de implementar o pipeline est na possibilidade de termos
inconsistncias ao processar instrues durante a execuo de um programa,
dependendo da seqncia de instrues do cdigo. Tais conflitos, tambm chamados de
hazards, podem ser tratados com a incluso de unidades que permitam detectar
antecipadamente o conflito e que insiram um tratamento durante o processo de pipeline,
em meio execuo das instrues.
Os hazards so divididos em: estruturais, de controle e de dados.
Hazards Estruturais
Ocorrem quando o hardware no pode suportar a combinao de instrues que o
pipeline deseja executar no mesmo ciclo de clock. Exemplo: em uma arquitetura que
possui uma memria para instrues e dados, no seria possvel adiantar a leitura de
uma instruo se uma instruo de leitura de dados estivesse sendo executada no mesmo
ciclo de clock. No simulador x8086, a unidade de controle dever testar o tipo de
instruo antes de liberar sua execuo para o prximo estgio. Caso a instruo no
possa ser executada, a primeira tentativa de soluo seria o adiantamento do resultado,
caso esse tambm no fosse possvel, a soluo dada a incluso da instruo de No
Operante (NOP) para os estgios do pipeline, afim de que a instruo complete a parte
do ciclo conflitante, para dar segmento ao estgio.
Hazards de Controle
Origina-se da necessidade de se tomar uma deciso com base nos resultados de uma
instruo, enquanto outras esto sendo executadas. Exemplo: instrues com salto
condicional, loops. Para esses casos as solues propostas dividem-se:
22
Parada ou Bolha: insero de uma instruo NOP para que no haja progresso no
processamento da informao enquanto o resultado da instruo anterior no estiver
executado. Problema: essa soluo embora seja mais fcil de implementar implica em
perda da performance do processamento, pois o pipeline eficiente aps seu
preenchimento total. Com a parada, h perda de ciclos e perde-se mais tempo para
encher novamente o pipeline depois de interromper o progresso das instrues por
intermdio do pipeline. Esse recurso aplicvel no simulador proposto nesse trabalho,
pois embora no implemente instrues de desvio condicional, h seqncias de
instrues em que no ser possvel efetuar o adiantamento do resultado e para esses
casos, o uso da bolha impede o conflito de dados.
Predio: hardware para adivinhar qual a prxima instruo a ser executada em caso
de desvios condicionais (se salta para um dado endereo ou executa a instruo
seguinte). Em geral os processadores adotam a predio para tratar os desvios
condicionais executados em pipeline. Um esquema simples sempre predizer que os
desvios condicionais vo falhar. Estando certo, o pipeline prossegue na velocidade
mxima. Se errado, h a necessidade de atrasar o avano normal das instrues por meio
do pipeline e garantir que as instrues j executadas no iro interferir no resultado
correto. Esse recurso satisfaz o conflito que pode ocorrer com o uso da instruo loop.
Pretende-se implementar uma lista de predio dinmica em que os resultados das
quatro primeiras ocorrncias so armazenados e a mdia de ocorrncia determinar a
ao que dever ser assumida para a prxima execuo. Em caso de erro da predio,
incluso de bolhas para limpar o pipeline, caso o resultado processado afete a seqncia
do programa.
Hazards de Dados
Ocorrem quando a execuo de uma instruo depende do resultado de outra, que
ainda est no pipeline. Exemplo: processar uma soma em que um dos operadores ainda
no teve seu valor alterado pela instruo anterior, salvo no registrador.
Para solucionar esse conflito necessria a incluso de uma unidade que
constantemente verifica os contedos dos registradores e os compara, para verificar se
haver algum conflito de dado em algum estgio. Para que essa unidade possa efetuar os
testes, torna-se indispensvel um conjunto de sinais de controle que dever ser
constantemente atualizado durante processamento das instrues de cada estgio. Ao
efetuar comparaes entre a ao indicada pelos sinais de controle (exemplo
escrita/leitura da memria ou escrita/leitura de um registrador) e os endereos de
memria e os dados apontados por cada instrues, em cada estgio do pipeline,
possvel detectar que ocorrer um conflito. Nesse instante, realiza-se um teste para
verificar se possvel adiantar o resultado de algum estgio antes de ocorrer o
processamento da instruo em que ocorreria o conflito. Em caso positivo, a unidade de
adiantamento (Forwarding) ir buscar o resultado contido em um dos registradores (ou
o caminho para encontrar o registrador e o dado) para incluso como uma entrada para o
processamento da instruo seguinte. Dessa forma, no exemplo da soma, os operandos
seriam processados com os valores corretos antes mesmo do resultado da instruo
anterior ter sido gravado no registrador destino.
O simulador implementa esse conceito e o resultado adiantado salvo nos
registradores de estgio do pipeline para serem passados aos registradores manipulados
nas instrues.
23
Executando o programa
Aps iniciar a execuo do programa (duplo clique sobre o arquivo
SimuladorSPepiline.exe), abrir a tela do simulador conforme mostra a figura 1.0. No
campo Informe o caminho do arquivo (.lst), clique no boto de abrir, para que a janela
de busca de arquivos seja aberta. Selecione e abra arquivo com extenso .lst gerado a
partir de cdigo programado em assembly no montador NASM.
Para abrir o arquivo teste busque por:
Diretrio\T1MarciaFederizzi_VanessaBorba\SimuladorSPipeline\programafunciona.l
st
Observaes:
1 - Antes de abrir o arquivo .lst necessrio edit-lo linha a linha. A edio
referente ao caracter de quebra de linha, que no arquivo original no o caracter padro
para enter. Nesse caso, ao final de cada linha tecle enter para marcar o final de linha no
arquivo. Aps abrir o arquivo, clique em Executar Programa para iniciar a simulao de
processamento do x8086.
2 - O arquivo .lst dever ser gerado no nasm, no sistema operacional Linux, atravs
do comando: diretorio/nasm f elf l arquivo.lst arquivo.asm
Funcionamento
O simulador da arquitetura com pipeline possui uma interface parecida com a
interface do simulador sem pipeline, como podemos ver na figura 5.0. Foram
acrescentadas as listas Registradores do Pipeline e Estgios do Pipeline. As demais
listagens existentes na implementao anterior permanecem com as mesmas
funcionalidades, permitindo visualizar, ao final do programa, a seqncia de execuo e
os valores dos registradores nas listas Processamento das Instrues e Contedo dos
registradores, respectivamente, para verificao da execuo do programa fornecido
para a arquitetura do simulador. Tambm as rotinas expostas em Simulador Sem
Pipeline foram mantidas nesse projeto com Pipeline.
Para implementao do pipeline foi necessrio modificar a estrutura dos
procedimentos: MovMemRe, MovRegReg, MovImedReg, MovMemAcum, Loop e Add. A
alterao consiste em, para cada ciclo que a instruo em execuo for processada,
alguns dados de controle, tais como endereos de registradores, dado lido, endereo de
memria, etc, devem ser armazenadas em registradores de controle do pipeline
correspondente ao estgio de execuo da instruo. Como a linguagem escolhida para
desenvolver o simulador, no permite execuo simultnea de rotinas, no possvel
incluir, efetivamente, mais de uma instruo no mesmo ciclo de processamento. No
entanto, montamos a estrutura analisando como seria implementado em uma linguagem
sem essa restrio, conforme ser efetuado na segunda etapa do projeto, quando o
processador ser implementado em linguagem VHDL, que permite paralelismo na
execuo de rotinas. Dessa forma, o pipeline foi projetado para ser implementado em
cinco estgios, controlados por quatro registradores de pipeline IFID, IDEX, EXMEM,
MEMWB. A seguir sero especificados cada estgio e informaes passadas para cada
registrador de controle.
24
25
Clculo do CPI
possvel comparar o CPI do simulador sem pipeline com esse simulador em que o
recurso est implementado. Ao executar o programa exemplo no simulador sem pipeline
o tempo o CPI resultou em 3,97826086956522.
Executando o programa exemplo no simulador com pipeline esse valor foi reduzido
para 1,17857142857143.
Para contabilizar o nmero de ciclos gastos no programa executado, a contagem
passou a ser realizada ao final da rotina ExecutaInstrucoesPipe. Para tanto, o nmero
26
Sinais de Controle
Para gerenciar as informaes sobre as unidades utilizadas durante a execuo de
uma instruo, bem como a ao executada, se haver leitura ou escrita no banco de
dados ou registradores, por exemplo, foi implementada a unidade de controle
representada pela rotina AtualizaSinaisControle. O princpio de funcionamento dessa
rotina consiste em inicializar os sinais de controle para gerenciamento de hazard, leitura
e escrita de dados em registradores ou endereos de memria. A tabela 1.0 mostra a
configurao de sinais passada para a unidade de controle conforme o estgio do
pipeline e instruo executada.
Tabela 1.0 - Contedo dos registradores do pipeline.
Registrador
do Pipeline
Instruo
IDEX
Geral
RegDest1+RegDest2
mov memreg
mov regreg
mov imedreg
mov memacum
mov add
loop
reg1vazio+reg2+rw=1(escreve)+rm='0'
reg1+reg2+rw=1(escreve)+rm=' '(inoperante)
reg1vazio+reg2+rw=1(escreve)+rm=' '(inoperante)
reg1vazio+reg2+rw=1(escreve)+rm='0'
reg1+reg2+rw=1(escreve)+rm=' '(inoperante)
reg1vazio+reg2+rw=1+rm=' '(inoperante)
Geral
RegDestEM+RWmem+RWReg+ DvC;
mov memreg
mov regreg
mov imedreg
mov memacum
mov add
loop
reg2+rw=1(escreve)+rm='0'+'0'(sem desvio)
reg2+rw=1(escreve)+rm=' '(inoperante)+ '0'(sem desvio)
reg2+rw=1(escreve)+rm=' '(inoperante)+'0'(sem desvio)
reg2+rw=1(escreve)+rm='0'+'0'(sem desvio)
reg2+rw=1(escreve)+rm=' '(inoperante)+ '0'(sem desvio)
reg2+rw=1+rm=' '(inoperante)+ '1'(com desvio)
Geral
RegDestMW+RW+ MemULaReg;
mov memreg
mov regreg
mov imedreg
mov memacum
mov add
loop
reg2+rw
reg2+rw
reg2+rw
reg2+rw
reg2+rw
reg2+rw
EXMEM
MEMWB
=
=
=
=
=
=
1(escreve)+rm='0'
1(escreve)+rm=' '(inoperante)
1(escreve)+rm=' '(inoperante)
1(escreve)+rm='0'
1(escreve)+rm=' '(inoperante)
1+rm=' '(inoperante)
27
28
Concluso
Com o projeto dos simuladores da arquitetura do processador x8086 podemos
adquirir um conhecimento mais amplo sobre seu funcionamento o que implica numa
maior facilidade de desenvolv-lo em uma linguagem que atenda as necessidades de
simultaneidade para implementao da arquitetura, principalmente com o uso da tcnica
de implementao Pipeline. No projeto dos simuladores no foi implementada uma
arquitetura completa, mas apenas as suas unidades bsicas e necessrias para a execuo
do subconjunto de instrues definido. No entanto, foi o suficiente para que
consegussemos identificar as principais diferenas, vantagens e desvantagens, entre
arquiteturas que implementam e que no implementam a tcnica de pipeline.
Para a segunda parte do trabalho, com implementao em linguagem VHDL, sero
necessrias modificaes, pois o cdigo ser adaptado de uma execuo no paralela
para uma execuo paralela. Isso implica, entre outras modificaes, em alterar a forma
de representao das unidades da arquitetura, pois no simulador, foram utilizados
recursos prprios da linguagem Delphi para representar as estruturas fsicas da
arquitetura de forma simplificada. Para a nova implementao do projeto, que visa o
desenvolvimento em uma linguagem prpria para descrio de hardware, VHDL, temse a viso de que, os resultados sero mais satisfatrios do que a realizada em uma
linguagem mais limitada referente simulao de funcionamento de um hardware.
29
Referncias Bibliogrficas
http://www.ee.pucrs.br/~dbarros/d2005_1/Microproc/Grupo_5/t1microprocessadores.pdf
http://www.dee.ufcg.edu.br/~scaico/facisa/oac/8086-8088_(slides).pdf
http://pessoal.utfpr.edu.br/gustavo/asm8086.pdf
htttp://pessoal.utfpr.edu.br/gustavo/modos%20de%20enderecamento.doc
http://www.dee.ufcg.edu.br/~scaico/facisa/
http://infobase.2it.com.br/upload/y9ydu2mbh5_obclm_ee_cap3.pdf
http://www.ppgia.pucpr.br/~santin/cc/2007/1/arquitetura.html
http://www.ppgia.pucpr.br/~santin/cc/
Organizao e Projetos de Computadores: A Interface Hardware/Software John L.
Henessy, David A. Patterson, James R. Larus 2 Editora LTC, Rio de Janeiro, cap.6
Pipeline.
30