Você está na página 1de 39

MICROCOMPUTAD

OR
ARQUITETURA
Neste capítulo descrevemos O fundamental material necessário para entender o básico
características de microprocessadores. Isto inclui tópicos tal como típica
microcomputador arquitetura, sinais de temporização e organização interna do
microprocessador. e sinalizadores de status. O características arquitetônicas são então
comparadas para o Intel Pentium. Por fim, uma visão geral pipeline, superescalar
microprocessadores, RISC vs. CISC, e a filial predição recurso é incluído.

2.1 Básico Blocos de a Microcomputador

Um microcomputador possui três blocos básicos: uma unidade central de processamento


(CPU), uma unidade de memória, e uma unidade de entrada/saída (E/S). A CPU executa
todas as instruções e realiza operações aritméticas e operações lógicas em dados. A CPU do
microcomputador é chamada de microprocessador tipicamente a solteiro VLSI (muito
grande escala integração) chip que contém todos o registros e ao controle unidade, e
lógica aritmética circuitos de o microcomputador.
Uma unidade de memória armazena dados e instruções. A seção de memória
normalmente contém ROM e Chips de RAM. A ROM só pode ser lido e é não volátil;
que é, ele retém seu conteúdo quando a energia é desligada. Uma ROM é normalmente
usada para armazenar instruções e dados que não mudam. Por exemplo, ele pode
armazenar uma tabela de sete códigos de segmento para enviar dados para um display
externo ao microcomputador para girar sobre a dígito de 0 através 9.
Um pode ler de e escrever em a BATER. O BATER é volátil; que é, isto faz não
reter isso é conteúdo quando o poder é virou desligado. A BATER é usado para loja
programas e dados que são temporários e podem mudar durante a execução de um programa.
Uma unidade 1/0 transfere dados entre o microcomputador e os dispositivos externos através
de portas de E/S (registros). O transferir envolve dados, status, e ao controle sinais.
Em a chip único microcomputador, estes três elementos são sobre um lasca,
enquanto em a chip único microprocessador, separado salgadinhos são obrigatório para
memória e E/S. Microcontroladores, qual evoluiu de chip único microcomputadores, são

tipicamente usado
FIGURA 2.1 Básico blocos de a microcomputador.
23
24 Microprocessor Theory and Applications with 68000/68020 and Pentium

para aplicações dedicadas, como sistemas automotivos, eletrodomésticos e sistemas


de entretenimento . Microcontroladores típicos, portanto, incluem temporizadores no chip
e A/D (analógico para digital) e conversores D/A (digital para analógico). Dois
microcontroladores populares são da Microchip Technology Microcontrolador PIC
(controlador de interface periférica) de 8 bits e HCll da Motorola (8 bits). A Figura 2.1
mostra os blocos básicos de um microcomputador. A sistema ônibus (composto de
diversos fios) conecta esses blocos.

2.2 Típica Microcomputador Arquitetura


Nesta seção descrevemos a arquitetura do microcomputador com mais detalhes. Os vários
os microcomputadores disponíveis hoje são basicamente os mesmos em princípio. As
principais variações são em o número de dados e endereço pedaços e em o tipos de ao
controle sinais eles usar.
Para compreender os princípios básicos da arquitetura de microcomputadores, é
necessário investigue detalhadamente um microcomputador típico. Uma vez obtido esse
entendimento claro, será mais fácil trabalhar com qualquer microcomputador específico.
A Figura 2.2 ilustra uma situação muito versão simplificada de microcomputador atípico e
mostra os blocos básicos de um microcomputador sistema. Os diversos barramentos que
conectam esses blocos também são mostrados. Embora esta figura visual muito simples,
inclui todos o principal elementos de a típica microcomputador sistema.
2.2.1 Sistema Ônibus
O barramento do sistema do microcomputador contém três barramentos, que transportam todos
os endereços, dados e controlar informações envolvidas na execução do programa. Esses
barramentos conectam o microprocessador (CPU) para cada um dos chips ROM, RAM e
E/S para que a transferência de informações entre os microprocessador e qualquer um dos
outros elementos podem ocorrer. Em um microcomputador, típico as transferências de
informações são realizadas em relação à memória ou E/S. Quando uma memória ou um
chip de E/S recebe dados do microprocessador, isso é chamado de operação WRITE, e os
dados são gravados em uma memória selecionada local ou uma porta de E/S (registro).
Quando uma memória ou um chip de E/S envia dados para o microprocessador, isso é
chamado de operação READ e os dados são ler de a selecionado memória localização
ou um E/S porta.
No barramento de endereços, a transferência de informações ocorre em apenas
uma direção, de o microprocessador para o memória ou E/S elementos. Esse é portanto
chamado a unidirecional ônibus. Esse barramento tem normalmente de 20 a 32 bits de
comprimento. O tamanho do barramento de endereços determina o número total de
endereços de memória disponíveis nos quais os programas podem ser executados pelo
microprocessador. O barramento de endereços é especificado pelo número total de pinos
de endereço no chip microprocessador. Isso também determina a capacidade de
endereçamento direto ou o tamanho do o principal memória de o microprocessador. O
microprocessador pode apenas executar programas

ROM I/O
RAM
Microcomputer 2
FIGURA 2.2 Simplificado versão de a típica microcomputador.
26 Microprocessor Theory and Applications with 68000/68020 and Pentium

localizado na memória principal. Por exemplo, um microprocessador com 32 pinos de


endereço pode gerar 2' 2 = 4.294.964.296 bytes [4 gigabytes(GB)] de diferente possível
endereços (combinações de 1 de e 0) sobre o endereço ônibus. O microprocessador inclui
endereços
de 0 a 4.294.964.295 (00000000„ até FFFFFFFF 6) Um local de memória pode ser
representado por cada um desses endereços. Por exemplo, um item de dados de 8 bits
pode ser armazenado no endereço 00000200„.
Quando um microprocessador como o Pentium deseja transferir informações entre
em si e uma certa memória localização, gera o endereço de 32 bits de um interno registro em
seus 32 pinos de endereço, A s— A 3l. que então aparece no barramento de endereços.
Esses 32 endereços bits são decodificados para determinar o local de memória desejado. A
decodificação processar normalmente requer hardware (decodificadores) não mostrando
em Figura 2.2.
No barramento de dados, os dados podem fluir em ambas as direções, isto é,
de ou para microprocessador. Esse é portanto um bidirecional ônibus. O tamanho dos dados
ônibus varia de um microprocessador para outro. O Pentium contém um barramento de
dados de 64 bits enquanto o 68020 fornece a 32 bits dados ônibus.
O barramento de controle consiste em vários sinais que são usados para
sincronizar operação dos elementos individuais do microcomputador. O
microprocessador envia alguns dos esses sinais de controle para os outros elementos para
indicar o tipo de operação que está sendo executada. Cada microprocessador possui um
conjunto exclusivo de sinais de controle. No entanto, alguns sinais de controle são comum à
maioria dos microprocessadores. Descreveremos alguns desses sinais de controle
posteriormente neste seção.

2.2.2 Relógio Sinais


Os sinais do relógio do sistema estão contidos no barramento de controle. Esses sinais
geram períodos de relógio apropriados durante os quais as execuções de instruções
são realizadas pelo microprocessador. Os sinais de clock variam de um
microprocessador para outro. Alguns os microprocessadores possuem um circuito
gerador de clock interno para gerar um sinal de clock. Esses microprocessadores
requerem que um cristal externo ou uma rede RC seja conectado no pinos
apropriados do microprocessador para definir a frequência operacional. Por exemplo,
o Intel 80186 (microprocessador de 16 bits) não requer um externo gerador de relógio
o circuito. No entanto, a maioria dos microprocessadores não possui o circuito gerador de clock
interno e requerem um chip ou circuito externo para gerar o sinal de clock. A Figura 2.3
mostra um típico relógio sinal.
O número de ciclos por segundo (hertz, abreviado como Hz) é referido como o
relógio frequência. Este número é definido como “Hertz” (abreviado como Hz). A
frequência do relógio dos microprocessadores contemporâneos é superior a 2 GHz (2 X 10
Hz). O relógio define o velocidade de o microprocessador. Observação que um relógio
ciclo = 1/f onde é o relógio frequência.

FIGURA 2.3 Típico relógio sinal.

Registros
ALU
Ao controle
Unidade
Microcomputer 2
FIGURA 2.4 Microprocessador lasca com o principal funcional elementos.
28 Microprocessor Theory and Applications with 68000/68020 and Pentium

Os tempos de execução das instruções do microprocessador são fornecido em termos de


número de ciclos de clock. Por exemplo, a instrução para adicionar dados em dois
registradores dentro do Pentium leva três ciclos de clock. Isso significa que para um
Pentium com clock de 100 MHz , o instrução ADICIONAR reg,reg será executado em 30 ns
[ ciclo de clock = 1/(100 X 10a) = 10 ns]. Por outro lado, para uma frequência de 200
MHz Pentium, a instrução ADD reg,reg será executada em 15 ns. Isto implica que quanto
maior a frequência do clock, mais rápido o microprocessador pode executar As
instruções.

2.3 Chip Único Microprocessador


Conforme mencionado anteriormente, o microprocessador é a CPU do microcomputador.
Portanto, o a potência do microcomputador é determinada pelas capacidades do
microprocessador. Isso é a frequência do clock determina a velocidade do microcomputador.
O número de dados e endereço pinos no chip do microprocessador constituem o tamanho da
palavra do microcomputador e o máximo Tamanho da memória. As capacidades de E/S e
interface do microcomputador são determinadas pelo ao controle alfinetes sobre o
microprocessador lasca.
A lógica dentro do chip do microprocessador pode ser dividida em três áreas
principais: a seção de registro, a unidade de controle e a unidade lógica-aritmética (ALU).
Um microprocessador lasca com esses três Seções é mostrando em Figura 2.4.
2.3.1 Registro Seção
O número, tamanho e tipos de registros variam de um microprocessador para outro. No
entanto, os vários registros em todos os microprocessadores realizam operações
semelhantes. O registro estruturas de microprocessadores desempenham um papel
importante no projeto de arquiteturas de microprocessadores. Além disso, as estruturas
de registro de um microprocessador específico determinam quão conveniente e fácil é
programar o microprocessador. Primeiro descrevemos os tipos mais básicos de
registros do microprocessador, suas funções e como são usados. Consideramos então
outros comum tipos de registra.
Básico Microprocessador Registra- se lá são quatro microprocessador básico
registra: instrução registro, programa contador, memória endereço registro, e acumulador.

• Registro de instruções (IR). O registrador de instruções armazena instruções. O


conteúdo de um registrador de instrução é sempre decodificado pelo
microprocessador como uma instrução. Depois de buscar um código de instrução na
memória, o microprocessador o armazena no registro de instruções. A instrução é
decodificada internamente pelo microprocessador, que em seguida, executa a operação
necessária. O tamanho da palavra do microprocessador determina o tamanho do
registrador de instruções. Por exemplo, um microprocessador de 32 bits possui um
instrução registro.
• Contador de programa (PC). O contador do programa contém o endereço da instrução ou
código de operação (op-code). O contador do programa normalmente contém o
endereço do próximo instrução para ser executado. Observação o seguindo
características de o programa contador:
1. Ao ativar a entrada RESET do microprocessador, o endereço do primeiro
instrução para ser executado é carregado em o programa contador.
2. Para executar uma instrução, o microprocessador normalmente coloca o conteúdo
do contador de programa no barramento de endereços e lê (“busca”) o conteúdo deste
endereço (ou seja, instrução) da memória. O conteúdo do contador do programa é
incrementado automaticamente por o microprocessador interno lógica. O
Microcomputer 2
microprocessador por isso
30 Microprocessor Theory and Applications with 68000/68020 and Pentium

executa um programa sequencialmente, a menos que o programa contenha uma


instrução tal como a PULAR instrução, qual mudanças o seqüência.
3. O tamanho de o programa contador é determinado pelo tamanho de o endereço
ônibus.
4. Muitos instruções, tal como PULAR e condicional PULAR, mudar o
conteúdo do contador do programa a partir do seu valor de endereço sequencial
normal. O programa contador é carregado com o endereço Especificadas em
esses instruções.
• Registro de endereço de memória (MAR). O registrador de endereço de memória
contém o endereço De dados. O microprocessador usa o endereço, que é armazenado
no endereço de memória registrar, como um ponteiro direto para a memória. O
conteúdo do endereço são os dados reais que é ser transferido.
• Registro de Uso Geral (GPR). Para um microprocessador de 8 bits, o processador de
uso geral registrador é chamado de acumulador. Normalmente é um registro de 8
bits. Ele armazena o resultado depois mais ALU operações. Esses 8 bits
microprocessadores têm instruções para deslocar ou girar o acumulador um pouco
para a direita ou esquerda através do sinalizador de transporte. O acumulador é
normalmente usado para inserir um byte no acumulador a partir de um dispositivo
externo ou para enviar um byte para um dispositivo externo do acumulador. Em 16- e
32 bits microprocessadores o acumulador é substituído por um GPR. 32 bits típico
microprocessadores como o Pentium contêm diversos GPRS. Nesses
microprocessadores, qualquer GPRS pode ser usado como um acumulador.
Dependendo no registro seção, o microprocessador pode ser classificado
qualquer como uma máquina baseada em registro acumulador ou de uso geral. Em um
acumulador microprocessadores como o Intel 8085 e o Motorola 6809, presume-se que os
dados sejam mantidos em um registrador chamado acumulador. Todas as operações
aritméticas e lógicas são realizadas usando esse registro como um de o dados fontes. O
resultado de o Operação é armazenado em o acumulador. Oito bits
microprocessadores são geralmente acumulador baseado.
O microprocessador baseado em registro de uso geral é geralmente popular entre
16- e Microprocessadores de 32 bits, como o Intel Pentium e Motorola 68000/68020. O
termo o uso geral vem do fato de que esses registradores podem armazenar dados, memória
endereços ou os resultados de operações aritméticas ou lógicas. O número, tamanho e
tipos de registros variar de um microprocessador para outro.
A maioria dos registradores são de uso geral, mas alguns, como o contador de
programa (PC), são fornecidos para funções dedicadas. O PC normalmente contém o
endereço do próximo instrução a ser executada. Como mencionado antes, ao ativar o chip do
microprocessador Pino de entrada RESET, o PC normalmente é inicializado com o
endereço da primeira instrução. Para exemplo, o Pentium, sobre hardware reiniciar, lê o
primeiro instrução de o de 32 bits
, endereço hexadecimal FFFFFFFO. Para executar o instrução, o microprocessador
normalmente lugares o conteúdo do PC no barramento de endereços e lê (busca) a primeira
instrução do externo memória. O conteúdo do contador do programa é então incrementado
automaticamente pela ALU. Como mencionado anteriormente, o tamanho do PC varia de
um microprocessador para outro dependendo no tamanho do endereço. Por exemplo, o
68000 tem um PC de 24 bits, enquanto tanto o 68020 quanto o 68020 o Pentium conter a
32 bits PC.

Outro Microprocessador Registra-se em a seguir descrevemos outros microprocessador


registros, como registros de uso geral, registro de índice, registro de status e ponteiro de
pilha registro.
Microcomputer 3
Propósito geral Registre ambos 16-, e 32 bits microprocessadores são
registro-
32 Microprocessor Theory and Applications with 68000/68020 and Pentium

orientado. Eles têm vários registros de uso geral para armazenar dados temporários ou para
realizar transferências de dados entre vários registros. O uso de registros de uso geral
acelera a execução de um programa porque o microprocessador não precisa ler dados da
memória externa através do barramento de dados se os dados forem armazenados em um
de seus usos gerais registra. Esses registros são normalmente de 16 a 32 bits. O
número de uso geral os registros variam de um microprocessador para outro. Algumas
das funções típicas realizado por instruções associado com o propósito geral registros são
dado aqui. Nós usará [REG] para indicar o conteúdo do registro de uso geral e [M] para
indicar o conteúdo de a memória localização.
1. Mover [REG] para ou de memória: [M] [REG] ou [REG] +- [M].
2. Mova o conteúdo de um registro para outro: [REG1] [REG2].
3. Incremento ou diminuir [REG] por EU: [REG] [REG] + 1 ou [REG] •- [REG]
- 1.
4. Carregar 16 bits dados em a registro [REG] : [REG] 16 bits dados.

Índice Registrador Um registrador de índice é normalmente usado como contador na


modificação de endereço para uma instrução ou para funções gerais de armazenamento. O
registro de índice é particularmente útil com instruções que acessam tabelas ou matrizes
de dados. Nesta operação o registrador de índice é usado para modificar a parte do
endereço da instrução. Assim, os dados apropriados em uma tabela Pode ser acessado.
Isso é chamado de endereçamento indexado. Este modo de endereçamento é normalmente
disponível para os programadores de microprocessadores. O endereço efetivo para uma
instrução usar o modo de endereçamento indexado é determinado adicionando a parte do
endereço do instrução para o conteúdo do registrador de índice. Os registros de índice são
normalmente de 16 ou 32 bits longo. Em um microprocessador típico de 16 ou 32 bits,
registradores de uso geral podem ser usados como índice registra.

Status Registrar A status registro, também conhecido como a processador status


palavra registro ou registrador de código de condição, contém individual bits, com cada
pouco tendo um significado especial. Os bits no registrador de status são chamados de
flags. O status de um microprocessador específico a operação é indicada por cada
sinalizador, que é definido ou redefinido pelo interno do microprocessador lógica para
indicar o status de certas operações do microprocessador, como aritmética e operações
lógicas. Os sinalizadores de status também são usados em instruções JUMP condicionais.
Nós descrever alguns de o comum bandeiras em o seguindo.
Um sinalizador de carry é usado para refletir se o resultado gerado por uma operação
aritmética a operação é maior que o tamanho da palavra do microprocessador. Como
exemplo, a adição de dois números de 32 bits podem produzir um carry. O carry é
gerado a partir do 32º bit posição, o que resulta na definição do sinalizador de transporte.
No entanto, o sinalizador de carry será zero se não carry é gerado a partir da adição. Como
mencionado antes, na aritmética multibyte, qualquer A execução da adição de bytes
baixos deve ser adicionada à adição de bytes altos para obter o correto resultado. Esse
pode ilustrado por o seguindo 16 bits Adição exemplo:
Microcomputer 3
alto byte
baixo byte
00 1 1 0 1 0 1
1 1 0 1 00 0 1
0 00 1 1 0 00 1 0 1 0 10 0 1
1
0 1 0 0 1 1 10
0 1 1 1 10 10
ordem carregar é refletido
superior em o byte alto
pedaço Adiçã o
posição

Ao realizar aritmética BCD com microprocessadores, o desempenho do baixo


mordidela (4 pedaços) tem a especial significado. Porque um BCD dígito é representado
por 4 pedaços, qualquer O desempenho dos 4 bits inferiores deve ser propagado para os 4
bits superiores para aritmética BCD. Esse A bandeira de transporte é conhecida como
transporte auxiliar flag e é definido como 1 se o carry out do low 4 pedaços é eu ; de
outra forma, isto é 0.
A zero bandeira é usado mostrar se o resultado de um Operação é zero. Isto é
definir para l se o resultado for zero e será redefinido para 0 se o resultado for diferente de
zero. Um sinalizador de paridade é definido como I para indicar se o resultado da última
operação contém um número par de 1's (par paridade) ou um número ímpar de 1 (paridade
ímpar), dependendo do microprocessador. O tipo de sinalizador de paridade usado (par ou
ímpar) é determinado pela estrutura interna do microprocessador e não é selecionável. Uma
bandeira de sinalização (às vezes chamado um sinalizador negativo) é usado indicar se o
resultado da última operação é positivo ou negativo. Se a parte mais significativa do
último operação for 1, esse sinalizador será definido como l para indicar que o resultado é
negativo. Este sinalizador é redefinido para 0 se o maioria significativo pedaço de o
resultado é zero: que é, se o resultado é positivo.
Conforme mencionado anteriormente, um sinalizador de overflow surge da
representação do sinalizador de sinal pelo bit mais significativo de uma palavra em
operação binária com sinal. O sinalizador de estouro está definido como 1 se o resultado de
uma operação aritmética for muito grande para a palavra máxima do microprocessador
tamanho, caso contrário é redefinido para 0. Seja Cl o final carregar dentre os mais
significativos pouco (sinal bit) e Cp o carry anterior. Foi mostrado na seção 1.2.1 que o
sinalizador de overflow é o exclusivo- OU do carrega CP e Cl.
transbordar = Cq S Cl

Pilha Ponteiro Registrar Uma pilha consiste de uma série de RAM Localizações
deixou de lado para lendo ou gravando dados nesses locais e normalmente é usado por sub-
rotinas (uma sub-rotina é um programa que executa operações com freqüência necessário
pelo principal ou programa de chamada). O endereço da pilha está contido em um
registrador denominado ponteiro de pilha. Duas instruções, PUSH e POP, geralmente estão
disponíveis em uma pilha. A operação PUSH é definido como escrever no topo ou na
parte inferior da pilha, enquanto a operação POP significa lendo do topo ou da base da
pilha. Alguns microprocessadores acessam a pilha de o topo; outros acessam pela parte
inferior. Quando a pilha é acessada de baixo, a pilha O ponteiro é incrementado após um
PUSH e decrementado após uma operação POP. No outro Por outro lado, quando a pilha
é acessada de cima, o ponteiro da pilha é decrementado após um PUSH e incrementado
após um POP. Os microprocessadores normalmente usam registros de 16 ou 32 bits para
realizar operações PUSH ou POP. O incremento ou decremento de uma pilha ponteiro
depende se a operação é PUSH ou POP e se a pilha é acessado de o principal ou o
fundo.
34 Microprocessor Theory and Applications with 68000/68020 and Pentium
Nós agora ilustrar pilha operações em mais detalhe. Nós usar 16 bits registros e 16-
Microcomputer 3
endereços de bits nas Figuras 2.5 até 2.8. Todos os dados (hex) são escolhidos arbitrariamente.
Na Figura 2.5, o ponteiro da pilha é incrementado em 2 (registro de 16 bits) após o PUSH
para conter o valor 20CA. Agora, considere a operação POP da Figura 2.6. A pilha ponteiro
é decrementado por 2 após o POP. O conteúdo do endereço 20CA é considerado
conceitualmente vazio após a operação POP. A seguir, considere a operação PUSH da Figura
2.7. A pilha é acessado do topo. O ponteiro da pilha é decrementado em 2 após um PUSH.
Finalmente, considere o Operação POP da Figura 2.8. O ponteiro Stack é incrementado
em 2 após o POP. O conteúdo de endereço 20C6 são assumido para ser vazio
conceitualmente depois a POP Operação.
Observação que o pilha é a LIFO (durar em primeiro fora) memória. Como
mencionado mais cedo, uma pilha é normalmente usado durante CALLs de sub-rotina. O
microprocessador automaticamente EMPURRA o retorno endereço em uma pilha após
executar uma instrução CALL de sub-rotina em o programa principal. Depois de executar
um RETURN de uma instrução de sub-rotina (colocada por o programador como última
instrução da sub-rotina), o microprocessador automaticamente POPs o endereço de retorno
da pilha (anteriormente PUSHed) e depois retorna para o endereço principal programa.

2.3.2 Ao controle Unidade


O principal objetivo da unidade de controle é ler e decodificar instruções do programa
memória. Para executar uma instrução, a unidade de controle percorre os blocos
apropriados de a ALU com base nos códigos de operação contidos no registrador de
instruções. Os códigos operacionais definem as operações a serem realizadas pela unidade
de controle para executar uma instrução. O controle unidade interpreta o conteúdo do
registrador de instrução e então responde à instrução gerando uma sequência de sinais de
habilitação. Esses sinais ativam a ALU apropriada lógica blocos para executar o
obrigatório Operação.
A unidade de controle gera os sinais de controle, que são enviados para o
outro microcomputador elementos através do controle ônibus. O controle unidade também
toma medidas apropriadas ações em resposta aos sinais de controle no barramento de
controle fornecidos pelo outro microcomputador elementos. Os sinais de controle variam
de um microprocessador para outro. Para cada específico microprocessador, esses sinais
são descritos detalhadamente no manual do fabricante. Isso é impossível descrever todos
os sinais de controle para vários fabricantes. No entanto, nós cobrir alguns o comum uns
em o seguindo discussão.

Before Push After Push

Pilha 20C2
_
143E 20C2SP 20C4
0703 20C4 20C6
F604 20C6 20C8
0706 20C8 20CA
20C;A 20 CC
20CC. 20 d.C.
20°C E

FIGURE 2.5 PUSH operation when accessing a stack from the bottom.
36 Microprocessor Theory and Applications with 68000/68020 and Pentium

Before POP After POP

Stack
Stack 443E20C2
143E 070520C4
20C2
0705 F20820C6
20C4
F208 0107 A286
20C6 040720C8
20C8 A28620CA
20CA zocc
20CC

FIGURA 2.6 POP Operação quando acessando a pilha de o fundo.

Before PUSH After PUSH


ler0567
SP20G6

2oc2 20C4
20C220C6
20C420C8
20C620CA
20C820CC
20CA20CE
20CC'
20CE

FIGURE 2.7 PUSH operation when accessing a stack from the top.

Before POP After POP

Stack 20C2
20C2 20C4
20C4 20C•6
20C6 2£JC8
2008 20CA
20CA 20CC
20CC
1A52
052C
0190

FIGURA 2.8 POP Operação quando acessando a pilha de o principal.


Microcomputer 3
REINICIAR. Esta entrada é comum a todos os microprocessadores. Quando
este pino de entrada é acionado ALTO ou BAIXO (dependendo do microprocessador), o
contador do programa é carregado com um endereço predefinido especificado pelo
fabricante. Como mencionado antes, no Pentium, após a reinicialização do hardware, o
contador do programa é carregado com FFFFFFF0 I6 Isto significa que o a instrução
armazenada no local de memória FFFFFFFO 6 é executada primeiro. Em algum outro
microprocessadores, tal como o Motorola 68.000, o programa contador é não carregado
diretamente
ativando a entrada RESET. Neste caso o contador do programa é carregado indiretamente
do dois locais (como 000004 e 000006) predefinidos pelo fabricante. Isso significa que
esses dois locais conter o endereço do primeiro instrução ser executado.

LER ESCREVER (R/W). Esta linha de saída é comum a todos os


microprocessadores. O O status desta linha informa aos outros elementos do
microcomputador se o microprocessador está executando uma operação READ ou
WRITE. Um sinal HIGH nesta linha indica uma leitura operação e um LOW indica uma
operação WRITE. Alguns microprocessadores possuem LER e ESCREVER pinos.

PRONTO, Esta é uma entrada para um microprocessador. Uso lento de dispositivos


(memória e E/S) este sinal al para ganhar tempo extra para transferir ou receber dados de
um microprocessador. O O sinal READY é geralmente um sinal baixo ativo; isto é, LOW
indica que o microprocessador está pronto. Portanto , quando o microprocessador seleciona
um dispositivo lento, o dispositivo coloca um LOW no pino READY. O
microprocessador responde suspendendo todos os seus operações e entra em um estado
WAIT. Quando o dispositivo estiver pronto para enviar ou receber dados, ele remove o
sinal READY. O microprocessador sai do estado WAIT e executa o apropriado Operação.

Interromper Solicitar (INT ou IRQ). O externo E/S dispositivos pode


interromper o microprocessador através deste pino de entrada no chip do
microprocessador. Quando este sinal é ativado pelos dispositivos externos, o
microprocessador salta para um programa especial chamado interrupção rotina de serviço.
Este programa é normalmente escrito pelo usuário para executar tarefas que o dispositivo de
interrupção deseja que o microprocessador execute. Depois de concluir este programa, o
microprocessador retorna para o principal programa isto era executando quando o
tentativa
ocorreu.

2.3.3 Aritmética-Lógica Unidade


A ULA executa todas as manipulações de dados, como aritmética e operações lógicas, dentro
um microprocessador. O tamanho da ALU está de acordo com o comprimento da palavra
do microcomputador. Isso significa que um microprocessador de 32 bits terá uma ALU
de 32 bits. Alguns dos típicos funções realizado por o ALU são:
1. Binário Adição e lógica operações
2. Encontrando o uns complemento de dados
3. Deslocar ou girar o conteúdo de um registrador de uso geral 1 bit para a
esquerda ou certo através a carregar
2.3.4 Funcional Representações de Simples e Microprocessadores típicos
Figura 2.9(a) mostra o funcional bloquear diagrama de a simples microprocessador.
Observação que o barramento de dados mostrado é interno ao chip do microprocessador e
não deve ser confundido com o barramento do sistema. O barramento do sistema é
externo ao microprocessador e é usado para conectar todos o necessário salgadinhos para
forma a microcomputador. O amortecedor registro em Figura 2.9(a) lojas
38 Microprocessor Theory and Applications with 68000/68020 and Pentium

Arithmetic and Logic unit (ALU)

(a) Simples microprocessador

Control Unh

(b) Pentium

Microprocessador FIGURA 2.9 Microprocessador

bloquear diagramas.
Microcomputer 3
quaisquer dados lidos da memória para processamento posterior pela ALU. Todos os outros
blocos da Figura 2.9(a) foram discutidos anteriormente. Observe que o diagrama de blocos
funcionais de um típico microprocessador disponível comercialmente, como o
Pentium (discutido mais tarde), é mais complexo do que aquele mostrado na Figura
2.9 (a). O microprocessador simples, embora não prático, é apresentado aqui para
ilustrativo propósitos.
Figura 2.9(b) mostra o bloquear diagrama de a realista microprocessador, o
Informações
Pentium.
O figura mostra que o Pentium contém dois instrução oleodutos: o Tubo em U
e o Tubo em V. O Tubo em U pode executar todos inteiro e ponto flutuante instruções. O
Tubo em V pode executar simples inteiro instruções e o FXCH ponto flutuante instrução.
O instrução decodificar unidade traduz o pré-buscado instruções para o Pentium
para executar o instrução. O ao controle ROM contém a microprogramado ROM que
controles o seqüência de operações que deve ser realizado para implemento o Pentium
arquitetura do microprocessador. A unidade ROM de controle tem controle direto sobre
ambos os pipelines. O Pentium contém dois separado esconderijo recordações: código
esconderijo e dados cache.
O cache de código, buffer de destino de ramificação e buffers de pré-busca são usados
para ler instruções nas unidades de execução do Pentium. As instruções são obtidas do
cache de código ou do barramento externo. Os endereços das filiais são armazenados no
buffer de destino da filial. O número inteiro arquivo de registro contém todos os arquivos
do Pentium registros de uso geral, e o ponto flutuante O arquivo de registro contém todos
os registros de ponto flutuante. O Pentium contém um shifter de barril para operação de
mudança rápida. O unidade de ônibus fornece Dados de 64 bits do Pentium barramento,
endereço de 32 bits ônibus, e o ao controle sinais. Esse facilita interface o Pentium para
externo memória
e E/S salgadinhos.

2.3.5 Simplificado Explicação de Ao controle Unidade projeto


O principal objetivo da unidade de controle é traduzir ou decodificar instruções e gerar
sinais de habilitação apropriados para realizar a operação desejada. Com base no conteúdo
de registro de instruções, a unidade de controle envia os itens de dados selecionados para
o apropriado processando hardware no momento certo. A unidade de controle conduz o
processamento associado hardware gerando a definir de sinais que são sincronizado com
a mestre relógio.
O controle unidade executa duas operações básicas: instrução interpretação
e instrução sequenciamento. Na fase de interpretação, o controle leituras de unidades
(buscas) uma instrução da memória abordado pelo conteúdo do programa contador em o
registrador de instruções. A unidade de controle insere o conteúdo do registro de
instruções. Isto reconhece o tipo de instrução, obtém os operandos necessários e os
encaminha para o unidades funcionais apropriadas da unidade de execução (registros e
ALU). A unidade de controle emite então os sinais necessários para a execução unidade
para realizar a operação desejada e roteia os resultados para o destino especificado. Na fase
de sequenciamento, a unidade de controle gera o endereço da próxima instrução a ser
executada e carrega-a no programa contador.
Existem dois métodos para projetar uma unidade de controle: controle com
fio e controle microprogramado. Na abordagem hardwired, síncrono circuito sequencial
procedimentos de projeto são usados no projeto da unidade de controle. Observe que
uma unidade de controle é um cronometrado circuito sequencial. O nome controle
conectado evoluiu do fato de que O circuito final é construído conectando fisicamente
componentes como portas e flip-flops. Em na abordagem microprogramada, por outro
lado, todas as funções de controle são armazenadas em um ROM dentro da unidade de
40 Microprocessor Theory and Applications with 68000/68020 and Pentium
controle. Essa memória é chamada de memória de controle. As palavras neste memória,
chamado ao controle palavras, especificamos o ao controle funções para ser realizado por o
ao controle
Microcomputer 4
unidade. As palavras de controle são buscadas na memória de controle e os bits são
roteados para apropriado funcional unidades para habilitar vários portões. Um instrução é
por isso executado.
Projeto de unidades de controle usando microprogramação (às vezes chamada de
firmware para distinguir de controle com fio) é mais caro do que usar controles com fio. Para
executar uma instrução, o conteúdo da memória de controle no controle microprogramado
deve ser lido, o que reduz a velocidade geral da unidade de controle. A vantagem mais
importante da microprogramação é a sua flexibilidade; alterações podem ser feitas
simplesmente alterando o microprograma no controle memória. Um pequeno mudança em o
conectado abordagem pode levar a para redesenhando o inteiro sistema.
Para simplificar, ilustramos os conceitos de microprogramação usando a Figura
2.9(a). Vamos considerar incrementar o conteúdo do registrador em 1. Isto é basicamente
um operação de adição. A unidade de controle enviará um sinal de habilitação para
executar o somador ALU lógica. Incrementar o conteúdo de um registrador consiste em
transferir o conteúdo do registrador ao somador ALU e então retornando o resultado ao
registrador. O incremento completo O processo é realizado através das cinco etapas
mostradas nas Figuras 2.10 até a Figura 2.14. Em todas as cinco etapas, a unidade de
controle inicia a execução de cada microinstrução. Figura 2.10 mostra a transferência do
registro conteúdo para os dados ônibus. Figura 2,1 litros mostra o transferir do conteúdo
do barramento de dados para o somador na ALU para adicionar l a ele. Figura 2.12 mostra
a ativação da lógica somadora. A Figura 2.13 mostra a transferência do resultado de o
adicionador para o dados ônibus. Finalmente, Figura 2.14 mostra o transferir de o dados
ônibus conteúdo para o registro.

Arithmetic-Logic Unit (ALU)

Shifter

Complementer

Control Unit
Boolean Logic
and Addition Buffer Register
42 Microprocessor Theory and Applications with 68000/68020 and Pentium
FIGURA 2.10 Transferência registro conteúdo para a dados ônibus.
Microcomputer 4

01101010

M” R g Aa ress e
Program Counter

FIGURA 2.11 Transferência dados biis conteúdo para um ALU.

Anthmetic-Logic unit (ALU)

Register 01101010
Memory Address
!Register
Program Counter

Instruction
›Register
Buffer Regisler
Deslocador

Complementar

ConUgt o
Lógica
Booleana
e 0d sobre
0

BuPer Register
Data Bus

FIGURA 2.12 Ativando o ALU lógica.


44 Microprocessor Theory and Applications with 68000/68020 and Pentium

Arithmetic-Logic uni! (ALU)

Register 01101010
« MeR „: .soress
Program Counter

, Complemented .

Boolean Logico and Addition'

Buffer Register

FIGURA 2.13 Transferência um ALU resultado para a dados ônibus.

Arithmetic-Logic unit (ALU)

Shifter

Complementer

ContUn ol
BuWer Register

Data Bus
Microcomputer 4
FIGURA 2.14 Transferência a dados ônibus.
46 Microprocessor Theory and Applications with 68000/68020 and Pentium

A microprogramação é normalmente usada por um projetista de microprocessador


para programar o lógica executada pela unidade de controle. Por outro lado, a
programação em linguagem assembly é uma linguagem de programação popular usada
por um usuário de microprocessador para programar um microprocessador para executar
uma função desejada. Um microprograma está armazenado no controle unidade. Um
programa em linguagem assembly é armazenado na memória principal. A linguagem
assembly programa é chamado de macroprograma. Uma macroinstrução (ou simplesmente
uma instrução) inicia execução de a completo microprograma.

2.4 Programa Execução por Convencional Microprocessadores


Os microprocessadores convencionais incluem microprocessadores típicos de 8 bits, como
Intel 8085 e microprocessadores de 16 bits, como Motorola 68000. Para executar um
programa, um microprocessador repete o seguindo três passos para completando cada
instrução.

1. Buscar. O microprocessador busca (instrução leia) a instrução do principal memória


(externo para o microprocessador) em o instrução registro.

2. Decodificar. O microprocessador decodifica ou traduz a instrução usando a unidade de


controle. As entradas da unidade de controle o conteúdo do registrador de instrução e então
decodifica (traduz) o instrução para determinar a instrução tipo.

3. Executar. O microprocessador executa a instrução usando a unidade de controle.


Para realizar a tarefa, a unidade de controle gera uma série de sinais de habilitação
exigidos pelo instrução.
Por exemplo, suponha que se queira somar o conteúdo de dois registradores,
X e Y, e armazene o resultado no registro Z. Para conseguir isso, um microprocessador
convencional executa o seguindo passos:

1. O microprocessador busca o instrução em o instrução registro.

2. O ao controle unidade (CU) decodifica o conteúdo de o instrução registro.

3. A UC executa a instrução gerando sinais de habilitação para o registrador e a ALU


Seções atuar o seguindo:

a. O UC transferê ncias o conteú do de registros X e S de o Registro seçã o em o


ALU.

b. O UC comandos o ALU para ADICIONAR.

c. O UC transferências o resultado de o ALU em registro Z de o registro seção.

2.5 Programa Execução por típica 32 bits Microprocessadores


Como mencionado no Capítulo 1, os projetistas de microprocessadores de 32 bits, como o
Pentium, implementado muitos poderosos características do mainframe computadores
no mesmo chip que o microprocessador. Esse melhora o capacidades de o 32 bits
microprocessadores. O sobre-
Microcomputer 4
hardware de chip implementado em 32 bits microprocessadores incluem memória cache,
memória gerenciamento, pipeline, ponto flutuante aritmética, e filial predição.
A memória cache é uma memória de leitura/gravação de alta velocidade
implementada como memória on-chip hardware em típico 32 bits microprocessadores
para aumentar em processamento cotações. Este tópico é abordado em mais detalhe em
Capítulo 3.
O gerenciamento de memória permite que os programadores escrevam
programas muito maiores do que aqueles que caberiam no espaço de memória
principal disponível para os microprocessadores; o os programas são simplesmente
armazenados em um dispositivo secundário, como um disco rígido, e partes do programa
são trocados na memória principal conforme necessário. Este tópico é abordado com mais
detalhes em Capítulo 3.
Outro no chip características tal como pipeline, ponto flutuante aritmética, e filial
predição são discutido em o seguindo.
2.5.1 Pipeline
Como mencionado mais cedo, um convencional microprocessador como o 68000 executa um
programa completando uma instrução de cada vez e depois prossegue para a próxima.
Isso significa que a unidade de controle teria que esperar até que a instrução fosse
buscada na memória. Também o ALU teria que esperar até que os dados necessários
fossem obtidos. Como as velocidades de 32 bits microprocessadores estão aumentando a
uma taxa mais rápida do que a velocidade da memória, a unidade de controle e a ALU
ficarão ociosas enquanto o microprocessador convencional busca cada instrução e obtém
o obrigatório dados.
32 bits microprocessadores utilizam a unidade de controle e a ALU de forma
eficiente, pré-busca a(s) próxima(s) instrução(ões) e o necessário dados antes do controle
unidade e ALU exigi-los. Como mencionado anteriormente, os microprocessadores
convencionais, como o 68000, executam programas em sequência; 32 bits
microprocessadores como o Pentium, por outro lado, implementa o recurso chamado
pipelining para pré-busca a próxima instrução enquanto a unidade de controle está
ocupada decodificando a instrução atual. Portanto, 32 bits implementação de
microprocessadores pipeline para aumentar o rendimento do sistema. Pipeline foi
implementado pela primeira vez em 68020 da Motorola. Esse foi seguido por da Intel
implementação em pipeline do 80486. Uma breve visão geral de pipeline é oferecido em
esse seção.

Conceitos Básicos Suponha que uma tarefa T seja realizada realizando quatro atividades:
Al, A2, A3 e A4, nessa ordem. O Hardware Hi foi projetado para funcionar atividade Ai.
Olá, é indicado como um segmento e contém essencialmente elementos de circuito
combinacional. Considere o arranjo mostrado na Figura 2.15. Nesta configuração, uma
trava é colocada entre dois segmentos para que o resultado calculado por um segmento
possa servir como entrada para o seguinte segmento durante o próximo relógio
período.
A execução de quatro tarefas Tl, T2, T3 e T4 usando o hardware da Figura 2.15 é
descrito usando o espaço-tempo gráfico mostrando em Figura 2.16.
Inicialmente, a tarefa TI é tratada pelo segmento 1. Após o primeiro clock, o segmento 2
está ocupado com Tl enquanto segmento l é ocupado com T2. Continuando em esse
maneiras, tarefa Tl está completo no o fim
48 Microprocessor Theory and Applications with 68000/68020 and Pentium
FIGURA 2.15 Quatro segmentos gasoduto.
4 Microprocessor Theory and Applications with 68000768020 and

Segmento 4
Segmento 3
Segmento 2
Segmento 1

FIGURA 2.16 Sobreposto execução de quatro tarefas usando a gasoduto.


do quarto relógio. No entanto, após este ponto, uma tarefa é enviada por clock. Esse é a
essência do conceito de pipeline. Um pipeline ganha eficiência pela mesma razão que um
conjunto linha faz: Diversos Atividades são realizado mas não sobre o mesmo material.
Em microprocessadores de 32 bits, o conceito de pipeline é normalmente usado
para realizar dois tarefas: aritmética operações e instrução execução.

Aritmética Oleodutos _ gasoduto conceito é largamente usado em projetando


flutuando- unidades aritméticas de pontos. Considere o processo de adição de dois
números de ponto flutuante x = 0,9234 * 104 e y = 0,48 * 10 2 . Primeiro, observe que os
expoentes de x e y são desiguais. Portanto, o número menor deve ser modificado para
que seu expoente seja igual ao expoente do maior número. Para este exemplo,
modifique y para 0,0048 * 10'. Esse modificação etapa é conhecido como expoente
alinhamento. Aqui o decimal apontar de o significativo
0,48 é deslocado para a direita para obter o resultado desejado. Após o alinhamento
dos expoentes, o significados 0,9234 e 0,0048 são adicionado para obtivermos o final
solução de 0,9282 * 10'.
Como a segundo exemplo, considerar a operação x - sim, onde x = 0,9234 * l0• e
sim
= 0,9230 * l0•. Neste caso, nenhum alinhamento de expoente é necessário porque o
expoente de um é igual ao expoente desligado. Portanto, o significado de y é subtraído de
o significativo de x para obter 0,9234 - 0,9230 = 0,0004. No entanto, 0,0004 * 10' não pode ser
a resposta final porque o significado, 0,0004, não está normalizado. Um número de ponto
flutuante com base b é disse para ser normalizado se o magnitude de isso é significativo
satisfaz o seguindo desigualdade:
|significativo| < 1.
Em esse exemplo, desde b - 10, a normalizado ponto flutuante número deve
satisfazer o
doença:
0,1< |significativo| < 1
(Observe que os números de ponto flutuante normalizados são sempre considerados porque
para cada real- número mundial existe uma e apenas uma representação de ponto flutuante.
Esta singularidade propriedade permite processadores para tomar decisões corretas
enquanto executa comparar operações).
O final responder é modificado para 0,4 * 10'. Em esse modificação etapa
conhecido como pós-normalização, o significativo é mudou para o saiu daqui para
obtivermos o correto resultado.
Em resumo, Adição ou subtração de dois ponto flutuante números chamadas para
quatro
Atividades:
1. Expoente comparação
2. Expoente alinhamento
Microcomputer 4
3. Significativo Adição ou subtração
4. Pós-normalização
4 Microprocessor Theory and Applications with 68000768020 and

Entrada

Segmento 1
Exponent comparison unit

Segmento 2
Exponent alignment unit

Segmento 3 Significand
add/subtra

Segmento 4
Post normalization unit

FIGURA 2.17 Pipeline ponto flutuante adicionar/subtrair unidade.


Com base neste resultado, um pipeline somador/subtrator de ponto flutuante de
quatro segmentos pode ser construído, conforme mostrado na Figura 2.17. É importante
perceber que cada segmento neste pipeline é composto principalmente de combinação
componentes como multiplexadores. O deslocador usado em este sistema é um barril
metamorfo. Observe que um barril shifter é um registrador de deslocamento rápido que muda
os dados em uma direção. Microprocessadores de 32 bits, como o Motorola 68040
(flutuante no chip hardware de ponto flutuante) incluem um pipeline de ponto flutuante de
três estágios que consiste em operando (dados) conversão, executar, e resultado
normalização.

Instrução Pipelines de 32 bits microprocessadores como como a Motorola 68020


conter a três estágios instrução gasoduto. Observe que um instrução ciclo normalmente
envolve o seguindo Atividades:
1. Instrução buscar
2. Instrução decodificar
3. Operando buscar (Dados Ler)
4. Operação execução
5. Resultado roteamento.

Esse processo pode ser carregou fora efetivamente usando o pipeline mostrado em
Figura
2.18. Como mencionado mais cedo, em tal a pipeline esquema o primeiro instrução requer
cinco relógios para completo isso é execução. No entanto, o restante instruções são concluído
no a avaliar
Microcomputer 4

Segmento 1 Instruction
fetch

Segmento 2 Instruction decode


unit

Segmento 3
Operand fetch unit

Segmento 4 Operation
executio

Segmento 5
Result routing unit

FIGURA 2.18 Cinco segmentos instrução gasoduto.

ss 11 12 13 14 15
S4 I1 12 13 14 15

S3 11 12 13 14 15

S2 11 12 13 14 15
S1 I1 12 13 14 15

4
Extra relógios
FIGURA 2.19 Execução em pipeline de um fluxo de cinco instruções que
inclui a filial instrução.
4 Microprocessor Theory and Applications with 68000768020 and
de um por gasoduto relógio. Tal a situação prevalece como longo como todos o segmentos são
ocupado.
Na prática, a presença de instruções de desvio e conflitos nos acessos à memória
representa um grande problema para a operação eficiente de um pipeline de instruções.
Por exemplo, considere a execução de um fluxo de cinco instruções: 11, 12, I3, 14 e 15, em
que I3 é um instrução de desvio condicional. Este fluxo é processado pelo pipeline de
instruções (Figura 2.18) conforme ilustrado na Figura 2.19. Quando uma instrução de desvio
condicional é buscado, o próximo instrução não pode ser buscada porque o alvo exato não é
conhecido até que a condicional instrução de desvio foi executada. A próxima busca pode
ocorrer assim que o branch for resolvido. Quatro adicional relógios são obrigatório,
devido para 13.
Em microprocessadores de 32 bits , as instruções de desvio são tratadas
usando uma estratégia chamada pré-busca de destino. Quando uma condicional a instrução
de ramificação é reconhecida, o imediato o sucessor das instruções de desvio e o destino do
desvio são pré-buscados. Esta última é salvo em um registro chamado buffer até que a
ramificação seja executada. Se a condição de ramificação for bem-sucedido, um gasoduto
é ainda ocupado porque o filial alvo é em o amortecedor.
Outra abordagem para lidar com instruções de desvio é o uso do desvio atrasado
conceito. Neste caso, a ramificação só ocorre após a instrução seguinte. Para ilustrar isso,
considere a seguinte sequência de instruções em linguagem assembly (escolhida
arbitrariamente):

Memória
Endereço Instrução Comente
2000 LDA X ; Carregar registro A com conteúdo de memória
endereço X
2001 INC. S ; Incremento o conteúdo de memória endereço Y por
eu
2002 crian 2050 ; Pular para endereço 2050
ça
levad
a
2003 SUB Z ; Subtrair o conteúdo de endereço Z de o conteúdo
; de registro A, e loja o resultado em A

2050 STA C ; Loja o conteúdo de registro A em memória endereço


C

MESA 2.1 Modificado Seqüência

Memória Instrução de endereço


2000 LDAX _
2001 INC Y
2002JMP 2051 _
NOP 2003
2004 SUB- Z
Microcomputer 4

2051 ESTA W
44 Microprocessador Teoria e Formulários com 68000/d8020 e Pentium

MESA 2.2 Pipeline Execução de a Hipotético Instrução Seqüência

Instrução Buscar LDA X INC S JMP 2051 NÃO STA C


Instrução Executar LDA X INC. E JMP 2051 NÃO

MESA 2.3 Instrução Seqüência com o Filial Instrução Invertido

Endereço Instrução
LDAX _
de memó ria JMP 2050
2000 INC Y
2001 SUB- Z
2002
2003

2050 ESTA W
MESA 2.4 Execução de a Invertido Instrução Seqüência

Instrução Buscar LDA XJMP _ INC. S STA C


2050
Instrução Executar LDA X JMP 2050 INC. S
Suponha que exista uma instrução NOP (sem operação) e que o desvio
instrução Mudou para JMP 205l. O programa semântica permanecer inalterado. Isso é
mostrado na Tabela 2.1. Esta sequência modificada será executada por um pipeline de
dois segmentos, conforme mostrado na Tabela 2.2: busca de instrução e execução de
instrução. Por causa do atraso filial conceito, o gasoduto ainda funciona corretamente
sem dano.
A eficiência deste pipeline pode ser melhorada ainda mais se a montadora produzir
um nova sequência, conforme mostrado na Tabela 2.3. Neste caso, o montador inverteu a
instrução seqüência. A instrução JMP está localizado no local 2001, e a instrução INC é
movido para o local de memória 2002. Esta sequência invertida é executada pelo mesmo
segmento de dois gasoduto, como mostrando em Mesa 2.4.
É importante entender que devido à regra de agência atrasada, o INC Y a
instrução é buscada antes da execução da instrução JMP 2050; portanto, não há mudança
na ordem das instruções execução. Isto implica que o programa continuará a produzir o
mesmo resultado. Como a instrução NOP foi eliminada, o programa é executado mais
eficientemente. O conceito de filial atrasada é uma das principais características do RISC,
pois faz simultaneidade visível para a programador.
2.5.2 Filial Prediçã o Recurso
Microprocessadores típicos de 32 bits implementam um recurso de previsão de mú ltiplas
ramificaçõ es. Isso permite esses microprocessadores para antecipar saltos no fluxo de
instruçõ es. Também alguns Microprocessadores de 32 bits determinam um valor ideal
sequência de instruçã o execuçã o olhando nas instruçõ es decodificadas e, em seguida,
determinar se deve executar ou manter as instruçõ es. Microprocessadores típicos de 32 bits
usam uma abordagem “antecipada” para executar instruçõ es. Esses Os microprocessadores
de 32 bits mantê m um conjunto de instruçõ es para uma sequência de instruçõ es e
executar uma tarefa ú til em vez de executar a presente instruçã o e depois prosseguir para
o pró ximo.

O filial predição recurso de o Pentium velocidades acima execução de


programa
Microcomputer 4
Microcomputer 4
rotações. Para conseguir isso, o Pentium inclui hardware no chip chamado Branch Unit
(BU). A BU contém a unidade de execução de ramificação (BEU) e a unidade de previsão
de ramificação (BPU). Sempre que o Pentium encontra uma instrução de desvio
condicional, ele a envia para a BU para execução. A BU avalia a condição de desvio da
instrução usando o BEU e determina se a filial deve ou deveria não ser levado. Uma vez que
a BU determine a condição de ramificação, ele calcula o endereço inicial (alvo da
ramificação) do próximo bloco de código para ser executado. O Pentium então começa
buscando código no o novo endereço.
O Pentium usa uma técnica chamada execução especulativa usando BPU.
Usando recurso, o Pentium faz uma estimativa fundamentada do alvo da filial antes do
condição é realmente avaliada. Instruções executadas especulativamente não podem
escrever seus resultados de volta aos registros até a condição do ramo é avaliado. Se o BPU
prevê o ramo corretamente, os resultados das instruções especulativas podem ser escritos
exatamente como instruções regulares. Se o O Pentium prevê o endereço de destino da
ramificação incorretamente, ele deve liberar o pipeline do especulativo errôneo instruções
e associados resultados. Depois Após a liberação do pipeline, o Pentium obtém o
endereço de destino da filial correto para que possa iniciar executando o código no o
correto posição no programa.

2.6 Escalar e Superescalar Microprocessadores

Processadores escalares como o 80486 podem executar uma instrução por ciclo. O
80486 contém apenas um pipeline. Os microprocessadores superescalares, por outro lado,
podem executar mais de uma instrução por ciclo. Esses microprocessadores contêm mais de
um pipeline. O Pentium, um microprocessador superescalar, contém dois independentes
oleodutos. Esse permite o Pentium para executar dois instruções por ciclo.

2.7 RISCO vs. CISC


Lá são dois tipos de arquiteturas de microprocessadores: RISC e CISC. A RISC
microprocessadores como o PowerPC enfatizam a simplicidade e a eficiência. Projetos
RISC começar com um necessário e suficiente instrução definir. O propósito de usar a
arquitetura RISC é maximizar velocidade reduzindo o relógio ciclos por instrução. Quase
todos os cálculos pode ser obtido a partir de algumas operações simples. O objetivo da
arquitetura RISC é maximizar a velocidade efetiva de um projeto, realizando operações
pouco frequentes em software e funções frequentes em hardware, obtendo assim um
ganho líquido de desempenho. A lista a seguir resume o típica características de a RISC
microprocessador:
1. O microprocessador RISC foi projetado usando controle com fio com pouco
ou sem microcódigo. Observe que os formatos de instrução de comprimento
variável geralmente exigem projeto de microcódigo. Todas as instruções
RISC possuem formatos fixos, então o microcódigo projeto é não
necessário.
2. A Microprocessador RISC executa maioria instruções em a solteiro ciclo.
3. O conjunto de instruções de um microprocessador RISC normalmente inclui
apenas registradores, carregar e armazenar instruções. Todas as instruções
envolvendo operações aritméticas usar registros, e carregar e loja operações
são utilizado para acesso memória.
4. As instruções ter a simples fixo formatar com poucos endereçamentos modos.
5. A RISC microprocessador tem diversos propósito geral registra.
6. Um microprocessador RISC processa diversas instruções simultaneamente e
por isso inclui pipeline.
46 Microprocessador Teoria e Formulários com 68000/68020 e Pentium

7. O software pode tirar vantagem de mais simultaneidade. Por exemplo, os saltos


ocorrem após a execução da instrução a seguir. Isto permite a busca do
próximo instrução durante execução de o atual instrução.
RISC microprocessadores são adequados para aplicações embarcadas.
Integrado microprocessadores ou controladores são incorporados ao sistema host. Isto
significa que o a presença e a operação desses controladores são basicamente ocultadas do
sistema host. As aplicações típicas de controle embarcado incluem sistemas de automação
de escritório, como laser impressoras. Como uma impressora a laser requer um
microprocessador de alto desempenho com hardware de ponto flutuante,
microprocessadores RISC como PowerPC são ideais para esses tipos de formulários.
Os microprocessadores RISC são adequados para aplicações como
processamento de imagens, robótica, gráficos e instrumentação. Os principais recursos
dos microprocessadores RISC que os tornam ideais para estas aplicações são o seu nível
relativamente baixo de integração em a arquitetura do chip e do pipeline de instruções.
Essas características resultam em baixo consumo de energia consumo, execução rápida de
instruções e reconhecimento rápido de tentativas. Típico 32- e 64 bits
Microprocessadores RISC incluir Power PC microprocessadores.
CISC microprocessadores, sobre o outro mão, conter a grande número de
instruções e muitos endereçamento modos, enquanto RISC microprocessadores incluir
a simples instrução definir com a alguns endereçamento modos. Quase todos cálculos
pode ser obtido de a alguns operações simples. O RISC basicamente suporta um pequeno
conjunto de instruções comumente usadas que são executado no a relógio rápido avaliar
comparado para o CISC, qual contém a grande instrução definir (alguns de qual são
raramente usado) executado em um Mais devagar relógio avaliar. Para implemento o
buscar/ executar ciclo para apoiando a grande instrução definir para CISC, o relógio é
tipicamente Mais devagar.
No CISC, a maioria das instruções pode acessar a memória, enquanto o RISC
contém principalmente carga/ loja instruções. O complexo conjunto de instruções do
CISC requer uma unidade de controle complexa, exigindo assim implementação
microprogramada. RISC utiliza controle com fio que é mais rápido. O CISC é mais difícil
de canalizar; RISC fornece pipeline mais eficiente. Um A vantagem do CISC sobre o RISC
é que programas complexos requerem menos instruções em CISC com menos ciclos de
busca, enquanto o RISC requer um grande número de instruções para realizar a mesma
tarefa com vários ciclos de busca. No entanto, o RISC pode melhorar significativamente a
sua desempenho com a mais rápido relógio, mais eficiente pipeline, e compilador
otimização.
PowerPC e Intel 80XXX utilizam arquiteturas RISC e CISC, respectivamente.
O Pentium original da Intel é um microprocessador CISC. Intel Pentium Pro e outros
sucessores membros da família Pentium e Motorola 68060 usam uma combinação de
RISC e Arquiteturas CISC para fornecer alto desempenho. O Pentium Pro e outros sucessores
membros de A família Pentium usa RISC (controle com fio) para implementar pipeline
para obter instruções simples . CISC (controle microprogramado) para complexos
instruções são utilizadas pelo Pentium para fornecer compatibilidade ascendente com a
Intel 8086/80X86 família.
Microcomputer 4
Questões e Problemas

2.1 O que é o diferença entre a microprocessador e a chip único micro-


computador?

2.2 O que é a microcontrolador? Cite um comercialmente disponível


microcontrolador.

2.3 O que é o diferença entre:


(a) Um programa contador e o memó ria endereço registro?
(b) Um acumulador e um instrução registro?
(c) A propó sito geral baseado em registro microprocessador e um
acumulador- microprocessador baseado. Cite um microprocessador
disponível comercialmente de cada tipo.

2.4 Supondo assinado números, encontrar o sinal, carregar, zero, e transbordar


bandeiras de:
(a) 09„ + 17 6
(b) A5 16A5 _ 16
(c) 7 eu" - A9 l6
(d) 6E eu 6 + 3 A 1 6
(e) 7E 16 + 7E 16

2.5 O que são EMPURRAR e POP operações em o pilha?

2.6 Suponha que um microprocessador de 16 bits tenha um stack pointer de 16 bits e


use um stack pointer de 16 bits. registre-se para acessar a pilha do topo. Suponha
que inicialmente o ponteiro da pilha e o registrador de 16 bits contém 20C0„ e
0205 6 respectivamente. Depois do PUSH Operação:
(a) O que são o conteúdo de o pilha ponteiro?
(b) O que são o conteúdo de memória Localizações 20BE 6 e 20BF 6'

2.7 Assumindo a arquitetura do microprocessador da Figura 2.9(a), escreva uma possível


sequência de microinstruções para encontrar o complemento de um de 8 bits
número. Assuma isso o número é já em o registro.

2.8 O que é pipeline?

2.9 Resumir o filial predição recurso de o Pentium.

2.10 Qual é a diferença básica entre a execução de um programa por um sistema


convencional? microprocessador e a 32 bits microprocessador.

2.1
O que é o diferença entre Escalar e Superescalar microprocessadores? Nome
eu
um exemplo de cada.

2.12 Discutir o recursos básicos de RISC e CISC em termos de o Pentium Pró.


Esse Página intencionalmente
deixada em branco

Você também pode gostar