Cap 2
Cap 2
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.
tipicamente usado
FIGURA 2.1 Básico blocos de a microcomputador.
23
24 Microprocessor Theory and Applications with 68000/68020 and Pentium
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
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
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.
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.
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
Stack
Stack 443E20C2
143E 070520C4
20C2
0705 F20820C6
20C4
F208 0107 A286
20C6 040720C8
20C8 A28620CA
20CA zocc
20CC
2oc2 20C4
20C220C6
20C420C8
20C620CA
20C820CC
20CA20CE
20CC'
20CE
FIGURE 2.7 PUSH operation when accessing a stack from the top.
Stack 20C2
20C2 20C4
20C4 20C•6
20C6 2£JC8
2008 20CA
20CA 20CC
20CC
1A52
052C
0190
Control Unh
(b) Pentium
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.
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
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
Register 01101010
« MeR „: .soress
Program Counter
, Complemented .
Buffer Register
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
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
Entrada
Segmento 1
Exponent comparison unit
Segmento 2
Exponent alignment unit
Segmento 3 Significand
add/subtra
Segmento 4
Post normalization unit
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 3
Operand fetch unit
Segmento 4 Operation
executio
Segmento 5
Result routing unit
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
2051 ESTA W
44 Microprocessador Teoria e Formulários com 68000/d8020 e Pentium
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
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.1
O que é o diferença entre Escalar e Superescalar microprocessadores? Nome
eu
um exemplo de cada.