Galeria de mapas mentais Mapa mental dos princípios de composição do computador
Este é um mapa mental sobre os princípios de composição de 02 computadores, incluindo uma visão geral, operações de dados, sistemas de armazenamento, unidades centrais de processamento, etc.
Editado em 2023-12-08 15:47:38A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
Princípios de composição de computador
Capítulo um Visão geral
hierarquia do sistema de computador
hardware
computador von Neumann
procedimento armazenado
controlador de fluxo de controle
Programas e dados compilados antecipadamente são enviados para a memória principal O computador executa item por item
uniprocessador
Instruções e dados têm o mesmo status
Os dados de instrução são todos códigos binários
Centrado no operador
computador moderno
centrado na memória
estrutura
dispositivo de entrada
dispositivo de saída
memória
Memória principal (armazenamento interno)
banco de memória
Armazenamento auxiliar (armazenamento externo)
CPU
MAR (memória de endereço)
O número de bits corresponde ao número de unidades de armazenamento
Endereço de acesso à loja
MDR(memória de dados)
O número de bits é igual ao comprimento da palavra de armazenamento
Armazena temporariamente informações lidas e gravadas na memória
operador
ALU (Unidade Lógica Aritmética)
circuito lógico combinacional
ACC (acumulador)
MQ (registro de quociente multiplicador)
X registro de uso geral
Armazenamento temporário de operandos e resultados intermediários
IX (registro de índice)
BE (registro de endereço base)
PSW (Registro de Palavra de Status do Programa/Registro de Sinalização)
Armazenar as informações das bandeiras obtidas pela operação, tais como: overflow, carry e empréstimo
controlador
PC (contador de programa)
Armazena o endereço da instrução a ser executada atualmente. Após a execução, ele é automaticamente incrementado em um para formar o endereço da próxima instrução.
Número de dígitos de comprimento de palavra → Número de palavras de memória
IR (Registro de Instrução)
Usado para armazenar o comando atual
Conteúdo do MDR
Comprimento da palavra de instrução
UC (Unidade de Controle)
Programas
composição
software de sistema
sistema operacional SO
Sistema de gerenciamento de banco de dados SGBD
sistema de processamento de linguagem
Sistema de software de rede
programa de serviço
aplicativo
Software de uso diário
linguagem
linguagem de máquina
O computador pode ser executado diretamente
Código binário
Linguagem assembly
Palavras em inglês e letras abreviadas
Converter para linguagem de máquina antes da execução
linguagem de alto nível
Java, c, c etc.
Programa fonte para arquivo executável
hierarquia multinível
Programa intérprete: traduza e execute ao mesmo tempo
Desempenho
comprimento da palavra
É um múltiplo inteiro de bytes (1B ou 8 bits)
comprimento da palavra da máquina
Largura do caminho de dados dentro da CPU para aritmética inteira
ALU dígitos longos
Número de bits de registro geral
Comprimento da palavra de instrução
O número de bits de código binário em uma palavra de instrução
Comprimento da palavra de armazenamento
Comprimento do código binário de uma unidade de memória
largura de banda do caminho de dados
O número de bits transmitidos em paralelo no barramento de dados de uma só vez
Capacidade de memória principal
calculando velocidade
Taxa de transferência
Número de solicitações processadas por unidade de tempo
Frequência principal
Frequência do clock da CPU
Quantos Hz geralmente é?
1hz significa uma vez por segundo
1GHz = 10⁹
Quantos ciclos de clock por segundo
Ciclo de clock da CPU
Contagem regressiva da frequência principal
1/frequência principal
Quantos segundos dura um ciclo de clock?
IPC
O número de ciclos de clock necessários para executar uma instrução
Quantos ciclos de clock são necessários para executar uma instrução?
relacionado a três fatores
Conjunto de instruções
Programação (estrutura do sistema)
Organização de computadores (arquitetura)
Tempo de execução da CPU
(número de instruções × CPI) / frequência principal
MIPS
Quantos milhões (M) de instruções são executadas por segundo?
Frequência principal / (CPI×10⁶)
FLOPS
mflops
Quantos milhões de operações de ponto flutuante são realizadas por segundo?
Número de operações de ponto flutuante / (tempo de execução × 10⁶)
gflops
bilhão
10⁹
t-flops
trilhões
10¹²
fracassos
quatrilhões
10¹⁵
zflops
Transparência
Conteúdo invisível
Para programadores de linguagem de alto nível, Formato de instrução, processo de operação de dados, etc. são conteúdos invisíveis
Para programadores de linguagem de máquina ou linguagem assembly, Formato de instrução, estrutura de máquina e formato de dados são conteúdos visíveis
Os programadores não podem visualizar o conteúdo de MAR, MDR e IR na CPU
Capítulo dois Operações de dados
método básico
binário
A base é 2
octal
Cada oito se move para um
O truque: números binários de três dígitos
decimal
hexadecimal
123456789ABCDEF
Dica ①: Número binário de quatro dígitos
Dica ②: A representa 10
Código BCD
8421 códigos
Quatro dígitos binários representam um número decimal
Método de correção:
① Se o resultado da operação de dois dígitos for menor ou igual ao número decimal 9, nenhuma correção será feita.
② Se o resultado da operação de dois dígitos for maior ou igual ao número decimal 10, adicione o número decimal 6 (0110)
Mais três jardas
Adicione 3 ao código 8421 (0011) Desta forma, todo número tem resto três
2421 códigos
Da posição mais alta para a posição mais baixa, eles são 2421 Tal como: 5=(0101)
representação codificada
Código original
0 significa não único
O comprimento da palavra é n 1, o intervalo do código original assinado -(2ⁿ-1)≤ x ≤ 2ⁿ-1
código reverso
Um número positivo Código original = código reverso
número negativo O bit de sinal permanece inalterado e o valor é invertido.
complemento
0 significa único
Um número positivo Código original = código reverso = código complementar
número negativo Conversão de código inverso do código original: o código original é da direita para a esquerda, encontre o primeiro 1, inverta todos os bits numéricos à esquerda deste 1, ou seja, obtenha o código complementar
O comprimento da palavra é n 1, intervalo de complemento assinado -2ⁿ ≤ x ≤ 2ⁿ-1
Armazenado na forma de complemento de dois em linguagem C
mudança de quadro
0 significa único
expoente representando um número de ponto flutuante
Desvio
Negar o bit do sinal de complemento → frameshift
mudança de ponto fixo
mudança aritmética
Para números simbólicos
O bit de sinal permanece inalterado durante a mudança
mudança aritmética positiva Preencha 0 para negações e suplementos originais
mudança aritmética negativa Preencha 0 para o código original O código de complemento de dois é preenchido com 0 para o deslocamento para a esquerda e 1 para o deslocamento para a direita. Preencha o código reverso com 1
mudança lógica
Para números não assinados
Deslocamento lógico para a esquerda, o bit alto é perdido, o bit baixo é preenchido com zeros
Deslocamento lógico para a direita, os bits baixos são perdidos, os bits altos são preenchidos com zeros
Adição e subtração de números de ponto fixo
Adição e subtração em complemento de dois
Adição de operação direta
Subtração Um complemento (-B) complemento
Identificador
número não assinado
CF transportar empréstimo
Determinar estouro de número não assinado
adição de transporte
Determine o empréstimo de subtração
Pequeno - Grande Assentos emprestados disponíveis
Marca ZF Zero
O resultado é 0, então ZF=1
número assinado
Marca zero ZF
Sinal de símbolo SF
O símbolo que representa o resultado
Sinalizador de estouro OF
Determinar o estouro de números assinados
Julgamento de transbordamento
um bit de sinal
dois bits de sinal (complemento do módulo quatro)
Apenas um bit é armazenado ao armazenar
Se os dois bits forem iguais, não há overflow.
Duas pessoas diferentes
01
estouro positivo
10
estouro negativo
Multiplicação de números de ponto fixo
Multiplicação de um bit do código original
Cálculo manual
Semelhante ao decimal, calcule diretamente
cálculo de computador
Calcule A×B
Ilustração
O multiplicando A é armazenado no registrador geral X
Armazene o multiplicador B em MQ
Os resultados da operação de cada rodada são armazenados no ACC.
processo
O multiplicando e o multiplicador assumem o valor absoluto para participar da operação O bit de sinal é processado separadamente (operação XOR)
① Quando o número do ACC é adicionado ao número do registro geral X? Verifique se o bit mais baixo do MQ é 1. Se for 1, ACC e X são somados e o resultado é colocado em ACC
(ACC) (X) → ACC
② Após armazenar o novo resultado no ACC, execute um deslocamento lógico para a direita Deslocamento lógico à direita do MQ, deslocamento lógico à direita do ACC O bit superior do ACC é preenchido com 0 e o número deslocado para a direita do bit inferior do ACC é movido para o bit superior do MQ. A parte inferior do MQ é movida
Multiplicação de complemento de um
Cálculo manual
cálculo de computador
Bit auxiliar - bit mais baixo do MQ = 1, (ACC) (x) complemento
Bit auxiliar - bit mais baixo do MQ = 0, (ACC) 0
Bit auxiliar - bit mais baixo do MQ = -1, (ACC) (-x) complemento
processo
Multiplicação de um bit em complemento de dois usando dois bits de sinal
Execute n rodadas de adição, mudança e, finalmente, adição novamente.
Cada mudança é uma mudança aritmética para a direita
O bit de sinal participa da operação
O bit auxiliar está após o bit mais baixo do MQ e é inicialmente 0 O número extra do deslocamento para a direita do MQ substitui o 0 inicial ou outro número do bit auxiliar original.
Os processos de adição e mudança são iguais à multiplicação de um bit do código original.
Divisão de ponto fixo
Divisão de código original (método de recuperação restante)
a÷b
ACC armazena dividendo a, restante
Quociente de armazenamento MQ (inicialmente todos 0)
X armazena divisorb
processo
Primeiro, o quociente padrão é 1, se ocorrer um erro, ele é alterado para 0 e o restante é restaurado.
Se o quociente for 0, realize o complemento ACC (b) e coloque o resultado em ACC
Quociente 1, realizar suplemento ACC (-b)
Se o bit de sinal do resultado calculado for 1, significa que o quociente está errado, então restaure
Após a operação de adição e o novo resultado ser obtido, ACC e MQ são logicamente deslocados para a esquerda e os bits inferiores do MQ são preenchidos com 0
Repita a operação acima
Divisão de código original (método alternado de adição e subtração)
Acabei de começar, Complemente a (-b) para obter o novo resto
Se o resto for negativo, o quociente é 0, e o resto é logicamente deslocado para a esquerda e então (b) complementado
Se o resto for positivo, então o quociente é 1, e o resto é logicamente deslocado para a esquerda e então (-b) complementado
último passo Se o resto for negativo, o quociente é 0, (b) complemente para obter o resto correto
Divisão em complemento de dois (alternando adição e subtração)
O bit de sinal participa da operação, bit de sinal duplo
Acabei de começar Determine se o dividendo e o divisor têm o mesmo sinal, Se tiverem o mesmo sinal, dividendo - divisor Se houver sinais diferentes, o dividendo é o divisor.
Seguir Resto e divisor têm o mesmo sinal Quociente 1, resto e quociente (ACC MQ) deslocam-se para a esquerda, subtraem o divisor Resto e divisor têm sinais diferentes Quociente 0, resto e quociente deslocados para a esquerda, adicione divisor
Arranjo de armazenamento de dados
armazenamento big endian
Igual aos hábitos de leitura das pessoas
armazenamento little endian
pelo contrário
alinhamento de fronteira
tipo inteiro
tipo interno
4B 32 bits
longo
4B 32 bits
tipo curto
2B 16 bits
tipo de caractere
1B 8 bits
número de ponto flutuante
Formato de representação
sinal numérico
código
Representado por frameshift
mantissa
Expressado na forma decimal do código original
estandardização
Zuogui
Desloque a mantissa uma posição para a esquerda e diminua o expoente em um.
regra certa
Desloque a mantissa uma posição para a direita e adicione um ao expoente.
IEEE754
Precisão única de 32 bits
constituir
Número de 1 dígito
Expandir código (código de quadro) 8 bits
Expanda o valor verdadeiro = código do quadro - valor de deslocamento 127
Faixa de código 1~254
23 dígitos da mantissa
Valor de deslocamento 127
processo de conversão
① Símbolos numéricos
② mantissa
③ O verdadeiro valor do código
④ Código do quadro (código do quadro) = valor verdadeiro do código - valor de deslocamento
⑤ A mantissa é movida de acordo com o verdadeiro valor do expoente
exemplo
O código não pode ser só 0 ou 1
Precisão dupla de 64 bits
Número de 1 dígito
Código 11 dígitos
52 pedaços de mantissa
Valor de deslocamento 1023
Adição e subtração de ponto flutuante
① Ordem certa
Os pequenos passos estão alinhados com os grandes passos
A pequena mantissa do código do expoente é deslocada uma posição para a direita, o expoente é 1
② Soma de mantissas
③ Padronização
regra certa
Quando 1×.××, medidor direito
Desloque a mantissa para a direita e adicione um ao expoente
Zuogui
Quando 0,0, regra esquerda
Desloque a mantissa para a esquerda e diminua o expoente em 1
Número normalizado
O bit superior da mantissa do código original não é 0, e o bit superior da mantissa do código complementar é diferente do símbolo numérico.
complemento
Normalização de símbolo único
0,1xxx 1.0xxx
Normalização de dois símbolos
00.1xxx 11.0xxx
④ Arredondamento
O arredondamento ocorre ao alinhar ou à direita
0 método de arredondamento
Semelhante ao arredondamento
método de conjunto constante 1
Independentemente de o bit mais alto ser 1 ou 0, defina o final da mantissa após o deslocamento para a direita como 1.
⑤ Julgamento de estouro
Para underflow positivo e underflow negativo, o computador trata como 0
elenco
char→int→long→duplo
flutuar→duplo
terceiro capítulo Sistema de armazenamento
Classificação de memória
Classificado por nível
esconderijo
memória principal
armazenamento auxiliar
Classificar por mídia
superfície magnética
fita
disco
núcleo magnético
semicondutor
CD
Classificado por método de acesso
RAM - memória de acesso aleatório
ROM - memória somente leitura
Memórias modernas podem ser apagadas eletricamente
memória de acesso serial
Classificação por salvabilidade de informações
Volátil quando desligado
BATER
não volátil
ROM
superfície magnética
CD
Métricas de desempenho de memória
armazenar
Número de palavras armazenadas × comprimento da palavra
Velocidade de armazenamento
Tempo de acesso
O período de tempo desde o início do acesso até a conclusão do acesso
Período de armazenamento
Tempo de acesso Período de recuperação
largura de banda da memória principal
taxa de transferência de dados
O número máximo de mensagens que entram e saem da memória principal por segundo
Sistema de armazenamento multinível
CPU-cache-memória principal-memória auxiliar
A transferência de dados antes da CPU e do cache é feita por hardware (invisível)
A conexão entre a memória principal e a memória secundária é completada pelo hardware e sistema operacional (não visível para o programador do aplicativo)
memória principal
memória de acesso aleatório
BATER
cache é implementado pela SRAM
SRAM
memória de acesso aleatório estática
flip-flop biestável
leitura não destrutiva
Alto custo, velocidade rápida, baixa integração
A memória principal é implementada por DRAM
DRAM
Memória de acesso aleatório dinâmico
Capacitância da porta
Tem que atualizar de vez em quando
Atualização centralizada
Use um tempo fixo para atualizar o capacitor
tempo morto
Atualização dispersa
Distribua a atualização de cada linha em vários ciclos
sem zona morta
Atualização assíncrona
Período de atualização dividido pelo número de linhas Atualize de vez em quando
Tempo máximo de intervalo 2ms
Há tempo para morrer
Baixo custo, velocidade lenta, alta integração
Multiplexação de pinos de endereço
ROM
ROM
Características
Estrutura simples
não volátil
Classificação
Memória somente leitura com padrão de máscara MROM
Conteúdo imutável
Memória somente leitura programável única PROM
Uma vez escrito, não pode ser alterado
Memória somente leitura programável apagável EPROM
Regravável, tempos de programação limitados, longo tempo de escrita
memória flash (memória flash)
Armazenamento de informações a longo prazo
Apagamento rápido e reescrita online
CD-ROM
CD ROM
Unidade de estado sólido SSD
Armazenamento de informações a longo prazo
Apagar rapidamente, reescrever
memória paralela
memória de porta dupla
paralelismo espacial
memória paralela multicorpo
paralelismo temporal
Crossover de alta ordem (modo sequencial)
acesso serial
memória sequencial
Intercalação de ordem inferior (modo de endereçamento de intercalação)
O endereço interno de ordem superior é enviado ao módulo de ordem inferior para decodificação.
Abordagem de pipeline
Ciclo de acesso bit T para acessar uma palavra O ciclo de transmissão do barramento é r
Número de módulos cruzados ≥ T/r
O tempo necessário para acessar m palavras continuamente é T (m-1)/r
Memória principal e conexão CPU
A linha de dados é bidirecional As linhas de endereço são unidirecionais
Expansão da capacidade
expansão de palavras
Função de decodificador 2/4: Seleção de fichas
extensão de bits
O sinal de seleção de chip cs deve estar vinculado a todos os chips
Conexão de memória para CPU
Linha de seleção de chip alto, linha de endereço baixo
① Linha de endereço
② Cabo de dados
③ Linha IO
④ Linha de seleção de chip
Armazenamento externo
disco
Unidade mínima de leitura, um setor
Características
① Baixo custo e grande capacidade
②Armazenamento de longo prazo
③Leitura não destrutiva
Classificação
armazenamento em disco
área de armazenamento
Cabeça magnética (número de lados de gravação)
Uma superfície de gravação corresponde a uma cabeça magnética
cilindro
Quantas faixas há em cada prato?
setor
Quantos setores existem em cada pista?
Localizado no mesmo setor → todos os dados podem ser lidos em um acesso à memória
Desempenho
tempo médio de acesso
procure tempo
O tempo que leva para a cabeça se mover para a trilha de destino
atraso
O tempo que a cabeça magnética leva para localizar os setores de leitura e gravação
Tempo de transmissão
Hora de transferir dados
Tempo do setor de consulta
procurar tempo/2
taxa de transferência de dados
Rotações por segundo × capacidade de cada trilha n bits
As operações de leitura e gravação são seriais
Matriz de disco
RAID0
Sem redundância, sem soma de verificação
RAID1
Matriz de disco espelhado
backup mútuo
RAID2
Erro ao corrigir a matriz de disco do código de Hamming
RAID3
verificação de paridade cruzada de bits
RAID4
bloquear paridade cruzada
RAID5
Verificação de paridade sem verificação independente
Memória flash SSD
Não é diferente do disco U
A escrita aleatória é lenta
Haverá desgaste
cache cache
princípio de trabalho
A CPU emite uma solicitação de acesso à memória, Se o endereço físico da memória principal estiver no cache, ele será atingido e o cache será lido diretamente. Se o cache falhar, ele ainda precisará acessar a memória principal e carregá-lo no cache a partir da memória principal.
Comprimento do bloco de cache, também conhecido como comprimento da linha
Invisível para todos os programadores
Método de mapeamento de cache e memória principal
mapeamento direto
A menor taxa de acerto e o menor tempo necessário
definir mapeamento associativo
A tag e o número do grupo formam o número do bloco de memória principal
Supondo que cada grupo tenha r linhas de cache, ele é chamado de conjunto associativo de r vias r atua como um grupo
O número de comparadores no cache também é r
Capacidade de cache (bit) = número de linhas × (dados por linha, bits válidos, bits sujos, bits de controle de substituição, bits de marcação)
A unidade de cada linha de dados é bit
Pedaços sujos (manutenção consistente)
Método de write-back
substitua o bit de controle
Ao usar o algoritmo de substituição, este bit Ao usar a estratégia de substituição aleatória, este bit não está disponível
algoritmo de substituição
① Algoritmo aleatório
② Algoritmo primeiro a entrar, primeiro a sair
Substitua a linha mais antiga primeiro
③ Algoritmo menos usado recentemente (Princípio da localidade) LRU
Substitua linhas não visitadas recentemente
④ LFU é menos comumente usado
mapeamento totalmente associativo
A maior taxa de acerto e o maior tempo necessário
estratégia de gravação em cache
①
Método de escrita completo (escrita direta)
Alta seguranca
Acerto de gravação da CPU no cache
Os dados devem ser gravados na memória principal e no cache ao mesmo tempo Quando um determinado bloco precisar ser substituído, substitua-o diretamente pelo novo bloco
buffer de gravação
Para reduzir a perda de tempo de gravação diretamente na memória principal
A CPU grava dados no cache e no buffer de gravação ao mesmo tempo. Escreva o buffer e depois grave o conteúdo na memória principal
método de alocação sem gravação
Falta de gravação da CPU no cache
A gravação na memória principal não realiza ajuste de bloco
②
Método de write-back (método de write-back)
para intensivo
Acerto de gravação da CPU no cache
Apenas grava dados no cache, não na memória principal imediatamente Só grava na memória principal quando este bloco é trocado
escrever método de atribuição
Falta de gravação da CPU no cache
Carregue o bloco de memória principal no cache e atualize o bloco de cache
Desvantagem: Cada vez que ocorre uma falha, um bloco deve ser lido da memória principal.
memória virtual
Endereço lógico (endereço virtual) para programação do usuário A unidade de memória principal é o endereço físico (endereço real)
Endereço virtual = número da página da memória virtual dentro da página
Endereço real = número da página da memória principal dentro da página
A CPU usa endereços de memória virtual para descobrir a relação de mapeamento entre endereços virtuais e reais por meio de hardware auxiliar. Se estiver na memória principal, através de conversão de endereço Se não estiver na memória principal, é paginado na memória principal e acessado pela CPU. Se a memória principal estiver cheia, o algoritmo de substituição é usado
A falta de ocorrências terá um grande impacto no desempenho do sistema.
Use mapeamento totalmente associativo para melhorar a taxa de acertos
Método de write-back
Invisível para programadores de aplicativos, visível para programadores de sistema
Classificação
memória de página
em páginas
tabela de páginas
Encontre a entrada da tabela de páginas correspondente com base no número da página virtual nos bits altos do endereço virtual.
Mesa rápida TLB
Consiste em memória associativa
Endereçamento de conteúdo
Use grupo associativo ou totalmente associativo
Etiqueta TLB
Número de página virtual totalmente associado
Número de página virtual associativo conjunto alto bit
Sistema de armazenamento multinível
A relação entre TLB, página e cache
O TLB armazena uma cópia parcial da página
O cache armazena uma cópia de uma parte da memória principal
Se o TLB for atingido, a página deverá ser atingida. Se o TLB estiver faltando, a página ainda poderá ser atingida. Se a página estiver faltando, tanto o TLB quanto o cache deverão estar faltando.
As falhas de cache são causadas por hardware A falta de página é concluída pelo software (manipulador de exceção faltante de página do sistema operacional) A exclusão de TLB pode ser feita tanto em hardware quanto em software
memória segmentada
Número do segmento, endereço do segmento, composição
Registros da tabela de segmentos: ① primeiro endereço do segmento ② bit de carregamento ③ comprimento do segmento
memória segmentada
Com a página como unidade básica de transmissão
① Número da seção ② Número da página na seção ③ Endereço na página
Capítulo quatro instrução
Arquitetura do conjunto de instruções ISA
Conteúdo principal: formato da instrução, tipo e formato dos dados, método de armazenamento de operandos, número de registradores acessíveis ao programa e seus números Tamanho do espaço de armazenamento e modo de endereçamento, modo de endereçamento, modo de controle de execução de instruções, etc.
Formato de comando
Código de operação OP Código de endereço A
O comprimento da palavra de instrução é um múltiplo inteiro de bytes
Classificação
instrução de endereço zero
Somente operação de código de operação
Instruções operacionais: sem operação, desligamento, interrupção de desligamento Instruções aritméticas são usadas em computadores de pilha (os operandos vêm do topo da pilha e do topo da segunda pilha)
comando de um endereço
Instrução de operando único com apenas operando de destino
O resultado é salvo de volta no endereço original
Instruções de operando duplo com operandos de destino acordados implicitamente
Outro operando é fornecido pelo ACC através de acordo de endereçamento implícito, O resultado da operação é armazenado no ACC
Duas instruções de endereço
Forneça o operando de destino e o operando de origem
O resultado é salvo no endereço do operando de destino
Três instruções de endereço
Forneça o operando de destino, o operando de origem e o resultado
Acessar a memória 4 vezes: buscar a instrução uma vez, buscar o operando 2 vezes, armazenar o resultado uma vez
Quatro instruções de endereço
operação, operando de destino, operando de origem, resultado, próximo endereço
O código de operação tem 8 bits e os 4 códigos de endereço têm 6 bits cada.
Formato de instrução de opcode estendido
① O opcode curto não pode ser igual à parte anterior do opcode longo
② Os códigos de operação de cada instrução não são repetidos.
Modo de extensão
Todos os 1s são reservados para a próxima expansão de instrução de endereço.
Tipo de operação
① Transmissão de dados
② Operações aritméticas e lógicas
③ Operação de mudança
④ Operação de transferência
transferência incondicional
Execute em qualquer caso
transferência condicional
Executar sob condições específicas
A diferença entre instruções de transferência e instruções de chamada
A instrução de chamada salvará o próximo endereço de instrução (endereço de retorno) A instrução de transferência não retorna à execução
⑤ Operações de entrada e saída
Instruções de controle do programa
transferência incondicional
transferência condicional
chamada de sub-rotina
comando de retorno
Instruções de loop
Instruções privilegiadas
Para sistemas operacionais e software de sistema
Não disponível para usuários
Modo de endereçamento de instrução
endereçamento de instrução
endereçamento sequencial
PC Program Counter 1, forma a próxima instrução
pular endereçamento
Implementado por meio de instruções de transferência
A instrução atual modifica o valor do PC e a próxima instrução ainda é dada através do PC.
Endereçamento de dados
Classificação
endereçamento implícito
O outro operando de uma instrução de endereço único pode ser obtido através de endereçamento implícito, derivado de ACC
especificação do programa
endereçamento imediato
O campo de endereço fornece diretamente o próprio operando, usando representação em complemento de dois.
Conveniente
Endereçamento direto
EA=A
O número de bits em A determina a faixa de endereçamento do operando
Comprimento de comando reduzido
1 acesso
Endereçamento indireto
EA = (A)
Um endereço indireto requer dois acessos à memória
Facilita a expansão da faixa de endereçamento
Registrar endereçamento
EA = Ri
Forneça diretamente o número de registro
A fase de execução não acessa a memória principal, apenas registra.
O comprimento do código de endereço é pequeno (encurtado)
registrar endereçamento indireto
EA = (Ri)
Ri não é um operando, mas sim o endereço da unidade de memória principal onde está localizada a operação.
Precisa acessar a memória
Os operandos estão na memória principal
endereçamento relativo
EA = (PC)A
A é o deslocamento relativo ao valor atual do PC, expresso em complemento
para instruções de transferência
1 acesso
endereçamento básico
EA = (BR)A
Usado para design multicanal, BR é o registro de endereço base (visível)
1 acesso
endereçamento indexado
Endereço efetivo = endereço formal Um registro de índice IX EA = (IX)A
Orientado ao usuário
Lidando com problemas de array
1 acesso
Endereçamento de pilha
ultimo a entrar primeiro a sair
Representação de código em nível de máquina
Formato de montagem
Formato AT&T
O primeiro é o operando de origem, o segundo é o operando de destino, A direção é da esquerda para a direita, o que é natural
Os registros são prefixados com% e os números imediatos são prefixados com $.
Usos de endereçamento de memória ()
formato intel
O primeiro é o operando de destino, o segundo é o operando de origem, Direção da direita para a esquerda
Registros e números imediatos não precisam ser prefixados
O endereçamento de memória usa []
Comparado
Comandos comuns
Formato Intel
olhando da direita para a esquerda
Classe de transferência de dados
instrução mov
Copiar um valor para outro
ex.: mov eax, ebx Copie o valor ebx para eax
instrução push
empurre para empilhar
comando pop
pop
Operações aritméticas e lógicas
comando adicionar/sub
Adição e subtração
Salve o resultado no primeiro número
por exemplo: sub eax, 10 eax - 10 → eax
instruções de aumento/dec (incremento/decremento)
Auto-crescente e auto-diminuente
diretiva imul (multiplicação)
Multiplicação de números simbólicos
O resultado é armazenado no primeiro operando, que deve ser um registrador
ex.: imul eax, [var] eax × [var] → eax
por exemplo: imul esi, edx, 25 25 × edx → esi
diretiva idiv (divisão)
Divisão de números simbólicos
Existe apenas um operando, o divisor
ex.: idiv ebx
e/ou/ou instruções
E, OU, XOR
O resultado é colocado no primeiro operando
ex.: e eax, 0 fH Os primeiros 28 bits de eax são 0 e os últimos 4 bits permanecem inalterados.
não instrução
virar um pouco
0→1, 1→0
instrução negativa (negativo)
Pegue o negativo
ex.: neg eax -eax→eax
comando shl/shr (mudança)
Mudança lógica para a esquerda, mudança lógica para a direita
O primeiro operando representa o objeto de execução O segundo número representa o número de turnos
por exemplo: shl eax, 1 eax desloca logicamente 1 bit para a esquerda shr ebx, cl ebx muda logicamente para a direita em n bits (n é o valor em cl)
classe de fluxo de controle
comando jmp
instrução de transferência
instrução jcondição
instruções de transferência condicional
comando cmp/teste
tamanho do valor de comparação cmp test executa uma operação AND bit a bit nos operandos
instrução de chamada/ret
Chamada e retorno de subrotina
CISC e RISC
CISC
sistema de comando complexo
RISCO
Sistema de comando simplificado
Comparado
capítulo cinco CPU
Estrutura da CPU
operador
Unidade de operação lógica aritmética ALU
Operações aritméticas e lógicas
caderno de Rabiscos
Armazene temporariamente os dados lidos da memória principal
Registro de acumulação ACC
Armazene temporariamente informações de resultados da ALU
Registro geral X
Permite aos usuários programar livremente e pode armazenar dados e endereços.
Igual ao comprimento da palavra da máquina
visível
Registrador de palavra de status do programa PSW
Mantenha várias informações de status dos resultados
visível
deslocador
Execute operações de mudança em operandos ou resultados de operação
Contador CT
Controle o número de etapas para operações de multiplicação e divisão
controlador
contador de programa PC
Indica o endereço de armazenamento na memória principal da instrução a ser executada.
O número de bits é igual ao número de bits de endereço de memória O endereço da memória depende da capacidade de armazenamento
visível
Registro de instrução IR
Salve o comando atualmente em execução
O mesmo comprimento que o comprimento da palavra de instrução
não pode ser substituído por registros de uso geral
decodificador de instruções
Decodifique o código de operação
Invisível
registrador de endereço de memória MAR
Armazene o endereço da unidade de memória principal
Invisível
Registro de dados de memória MDR
Armazenar informações gravadas ou lidas na memória principal
Invisível
sistema de cronometragem
Usado para gerar vários sinais de temporização
Gerador de sinal
Função CPU
O controlador é responsável por coordenar e controlar a sequência de instruções (busca, análise, execução) do programa executado por cada componente do computador. Calculadoras processam dados
① Controle de instruções, completando as operações de busca, análise e execução de instruções
② Controle de operação
③ Controle de tempo
④ Processamento de dados
⑤ Interromper processamento
Processo de execução de instruções
ciclo de instrução
O tempo que leva para buscar e executar uma instrução
Representado por vários ciclos de máquina
ciclo da máquina
Comprimento fixo
Comprimento não fixo
Busca de instrução, endereço indireto, execução, interrupção
ciclo de busca
De acordo com o conteúdo do PC, o código de instrução é recuperado da memória principal e colocado no IR
O PC armazena o endereço da instrução. De acordo com este endereço, a instrução é buscada na unidade de memória correspondente e colocada no IR.
PC 1 enquanto busca
As instruções são buscadas automaticamente pela máquina
ciclo de endereço indireto
Obtenha o endereço efetivo do operando
Envie o código de endereço da instrução para o MAR e para o barramento de endereços cu emite um comando de leitura para obter o endereço efetivo e, finalmente, armazena-o no MDR.
Dois acessos
ciclo de execução
Pegue o operando e produza o resultado através da operação da ALU de acordo com o opcode da palavra de instrução do IR
ciclo de interrupção
Lidar com solicitação de interrupção
plano de ação
ciclo de instrução único
vários ciclos de instrução
Solução de pipeline
caminho de dados
Função
Caminho de transmissão de dados entre componentes funcionais
Descreve onde a informação começa, por qual registro ou multiplexador ela passa e para qual registro ela é finalmente transmitida.
controlado pela unidade de controle
estrutura básica
Modo de barramento único interno da CPU
Modo multi-bus interno da CPU
As portas de entrada e saída de todos os registradores estão conectadas a vários caminhos comuns
Abordagem de caminho de dados dedicado
Leia o dedo
(PC)→MAR 1→R MEM (MAR)→MDR (MDR)→IR
(MDR)→MAR 1→R MEM (MAR)→MDR (MDR)→Y (ACC) (Y)→Z (Z)→ACC
controlador
controlador com fio
unidade de controle
RI
O campo opcode da instrução é o sinal de entrada para a unidade de controle
FR (Registro de Bandeira)
Informações de feedback da unidade de execução
Tempo
gerador de batida
Gere sinais de período de máquina e sinais de batida
A unidade de controle também aceita sinais de controle do barramento do sistema, como interrupções, DMA
Microoperações
Várias microoperações podem ser concluídas em um ciclo de máquina
buscar
(PC)→MAR 1→R M(MAR)→MDR (MDR)→IR (PC) 1→PC
endereço indireto
Anúncio(IR)→MAR 1→R M(MAR)→MDR
implemento
não-busca
CLA
Limpar ACC
CoM
Negar
SHR
deslocamento aritmético para a direita
CSL
Ciclo para a esquerda
STP
desligar
Acesso
Adição Anúncio(IR)→MAR M(MAR)→MDR (MDR) (ACC)→ACC Instrução de armazenamento STA X Ad(IR)→MAR, 1→gravar gravação na memória (ACC)→MDR (MDR)→M(MAR) Instrução de busca LDA X Anúncio(IR)→MAR,1→R M(MAR)→MDR (MDR)→ACC
transferir
JMP X (transferência incondicional) Ad(IR)→PC BAN X (transferência condicional)
método de controle
Método de controle síncrono
relógio unificado
Método de controle assíncrono
Cada componente funciona em sua própria velocidade inerente
método de controle conjunto
A maioria usa síncrono, alguns usam assíncrono
controlador microprogramado
Use lógica de armazenamento para codificar sinais de microoperação
Uma instrução de máquina é escrita como um microprograma e cada microprograma contém múltiplas microinstruções. Uma instrução de máquina pode ser decomposta em uma sequência de microoperações (as mais básicas e não podem ser divididas posteriormente)
Normalmente, um ciclo de microprograma corresponde a um ciclo de instrução
É para garantir a sincronização de todo o sinal de controle da máquina.
As microinstruções são armazenadas na unidade de armazenamento de controle
Microcomandos são os sinais de controle de microoperações e microoperações são os processos de execução de microcomandos.
A memória principal é usada para armazenar dados e programas e é implementada fora da CPU usando RAM. A memória de controle CM é utilizada para armazenar microprogramas. Ela é implementada com ROM (EPROM) dentro da CPU e é acessada de acordo com o endereço da microinstrução.
estrutura
processo de trabalho
buscar microinstruções
A partir do campo opcode da instrução de máquina, o componente formador de microendereço gera o endereço de entrada do microprograma correspondente à instrução de máquina e o envia ao CMAR.
Busque as microinstruções correspondentes uma por uma no CM e execute-as
Retorne ao endereço de entrada do microprograma e repita a operação
Codificação
controle direto
Método de codificação direta de campo
O campo de microcomando é dividido em vários campos, Microcomandos mutuamente exclusivos são colocados no mesmo campo e comandos de compatibilidade são colocados em campos diferentes.
Todo 0 significa nenhuma operação
Método de codificação indireta de campo
Um microcomando para um campo é interpretado por um microcomando para outro campo, Reduza o comprimento da palavra da microinstrução
Método de formação de endereço de microinstrução
Método de julgamento
Dado pelo endereço sob a microinstrução
Opcodes formados com base em instruções de máquina
contagem incremental
assinar lei
lei cibernética
lei de hardware
formato de microinstrução
microinstruções horizontais
Forte capacidade de operação paralela
Tempo de execução curto
microinstruções verticais
Apenas uma operação básica pode ser executada em paralelo
longo tempo de execução
Microinstruções mistas
Comparado
Exceções e interrupções
anormal
Eventos inesperados gerados dentro da CPU são chamados de exceções (interrupções internas)
Tais como: interrupção por falha de hardware (erro de verificação de memória, erro de barramento) Exceções programáticas (divisão por 0, estouro, ponto de interrupção, rastreamento de etapa única, instrução ilegal, estouro de pilha, endereço fora dos limites, falha de página)
A interrupção interna é uma interrupção não mascarável
A detecção anormal é concluída pela própria CPU
Classificação
Interrupção programada (interrupção de software)
Falta
Seção ausente
Página ausente
Carregue os segmentos ou páginas necessários do disco para a memória principal e retorne à instrução que falhou para continuar a execução.
Código de operação ilegal
O divisor é 0
A falha não pode ser recuperada por meio do manipulador de exceções (o manipulador ainda precisa ser chamado), a execução não pode ser retornada ao ponto de interrupção e o processo é encerrado diretamente
prender-se
Configurações de ponto de interrupção para depuração do programa Quando essas instruções são executadas, Chame automaticamente o programa kernel do sistema operacional para execução incondicional ou condicionalmente
Terminar (interrupção de hardware)
Erro do controlador, erro de verificação de memória, etc.
Chame a rotina de serviço de interrupção e reinicie o sistema
Interrupção externa (interrupção de hardware)
Um dispositivo externo à CPU que emite uma solicitação de interrupção para a CPU é chamado de interrupção (interrupção externa)
Por exemplo: interrupção IO emitida pelo dispositivo IO (entrada do teclado, impressora sem papel) Evento especial (o usuário pressiona a tecla esc e o cronômetro atinge a hora)
A CPU deve obter informações sobre a origem da interrupção através da linha de solicitação de interrupção
Classificação
Interrupção mascarável (baixa prioridade)
Solicitação de interrupção emitida para a CPU através da linha de solicitação de interrupção mascarável INTR, A CPU pode mascarar ou não mascarar definindo a palavra de máscara correspondente no controlador de interrupção. Solicitações de interrupção mascaradas não são enviadas para a CPU
Interrupção não mascarável (alta prioridade)
Por exemplo: falta de energia
Solicitação de interrupção emitida para a CPU através da linha de solicitação de interrupção não mascarável dedicada NMI
processo de resposta
Todo o processo de resposta não pode ser interrompido
Desligue as interrupções
Desative as novas interrupções correspondentes definindo o bit de habilitação de interrupção do flip-flop IF.
Salvar pontos de interrupção e estado do programa
Para poder retornar ao local interrompido para continuar a execução após a conclusão do processamento de exceção e interrupção.
Identifique exceções e interrupções e vá para o programa apropriado
Método de identificação
Identificação de software
A CPU define um registro de status de exceção para registrar a causa da exceção. Consulte o registro de status de exceção em ordem de prioridade e depois vá para o manipulador correspondente no kernel
Identificação de hardware
interrupção vetorial
O primeiro endereço de uma exceção ou interrupção é chamado de vetor de interrupção. Todos os vetores de interrupção são colocados na tabela de vetores de interrupção. Cada interrupção ou exceção corresponde a um número de tipo de interrupção.
pipeline de instruções
definição
Uma instrução é dividida em vários estágios, cada estágio é completado pelo componente funcional correspondente
Exigir
O comprimento da instrução deve ser o mesmo Formato de comando normal Usando instruções de carregamento/armazenamento, nenhum outro registrador pode acessar a memória. Dados e instruções estão alinhados na memória
Aventura na linha de montagem
① Estrutura de aventura
Várias instruções competem pelo mesmo recurso ao mesmo tempo
Solução 1) Suspender instruções subsequentes 2) Configure a memória de dados e a memória de instruções separadamente
② Aventura de dados
A próxima instrução usará o resultado do cálculo da instrução atual e as duas instruções causarão conflito de dados.
ler depois de escrever
Leia e escreva
escrever após escrever
Solução 1) Suspender instruções e instruções subsequentes que encontrem conflitos relacionados a dados por um ou vários ciclos 2) Configure caminhos de dados relevantes (tecnologia de bypass de dados) e envie rapidamente os resultados da operação para o registrador assim que forem obtidos 3) Ajuste a ordem das instruções
③ Controle a aventura
Instruções de transferência, chamadas, devoluções, etc. alterarão o valor do PC e causarão interrupção do fluxo.
Solução 1) Realize a previsão de ramificação nas instruções de transferência e gere o endereço de destino da transferência o mais cedo possível 2) Pré-busca instruções de destino em duas direções de fluxo de controle, bem-sucedidas e malsucedidas.
Indicadores de desempenho do pipeline
Taxa de transferência do pipeline
Aceleração do pipeline
Tecnologia avançada de pipeline
pipeline superescalar
Tecnologia dinâmica multiemissão
Combinado com tecnologia de agendamento dinâmico de pipeline, por meio de previsão dinâmica de ramificação e outros meios Múltiplas instruções independentes podem ser executadas simultaneamente por ciclo de clock
Tecnologia de palavra de instrução muito longa
Tecnologia estática de multiemissão
Combine múltiplas instruções que podem operar em paralelo em uma palavra de instrução muito longa com múltiplos opcodes
Tecnologia de super pipeline
Os segmentos funcionais são divididos em mais
multiprocessador
Fluxo de instrução único Fluxo de dados único SISD
serial
Um processador e uma memória
execução sequencial
Fluxo de instrução único, vários fluxos de dados SIMD
Tecnologia paralela de dados
processador vetorial
Fluxo de dados único de múltiplas instruções MISD
não existe
Múltiplas instruções, múltiplos fluxos de dados MIMD
computação paralela
Multithreading de hardware
Multithreading refinado
Multi-threading se reveza e execução cruzada
Semelhante à rotação do intervalo de tempo
Multithreading de granulação grossa
Troque de thread apenas quando um thread tiver uma grande sobrecarga
Multithreading simultâneo
No mesmo ciclo de clock, várias instruções em vários threads diferentes são emitidas para execução.
multiprocessador de memória compartilhada (SMP)
Compartilhando um espaço de endereço físico, você pode executar programas de forma independente em seu próprio espaço de endereço virtual
Acesso ao armazenamento unificado UMA
Como o processador está conectado à memória compartilhada
Acesso de armazenamento não uniforme NUMA
Circuitos lógicos combinacionais e circuitos lógicos sequenciais
Circuitos lógicos combinacionais não possuem controle de clock unificado Os circuitos lógicos sequenciais devem funcionar sob clock ticks
Os circuitos lógicos combinacionais não contêm células de memória para armazenar sinais Os circuitos lógicos sequenciais contêm células de memória que armazenam sinais
Capítulo Seis ônibus
Uma linha de transmissão de informações públicas que pode ser compartilhada por vários componentes de maneira compartilhada.
Envie na hora certa, receba na mesma hora
Classificação de ônibus
Barramento no chip
O ônibus dentro do chip
barramento do sistema
barramento de endereço
Um barramento unidirecional usado pela CPU para selecionar o endereço da unidade de memória principal e o endereço da porta IO e não pode ser transmitido de volta.
Barramento de dados
Transmitir informações de dados, linha bidirecional
barramento de controle
Barramento de E/S
Conecte dispositivos IO de baixa a média velocidade
cabo de dados
Registro de buffer de dados de transferência, conteúdo de registro de comando/status
linha de endereço
Endereço da porta para transmissão de dados trocados com a CPU
linha de Controle
Envie sinais de leitura e gravação
barramento de comunicação
barramento externo
Um barramento que transmite informações entre sistemas de computador ou entre sistemas de computador e outros sistemas
Estrutura do barramento do sistema
Estrutura de ônibus único
Estrutura de barramento duplo
O barramento de memória principal é usado para transferir dados entre a CPU, memória principal e canais O barramento IO é usado para transferir dados entre dispositivos externos e canais
Estrutura de três ônibus
barramento de memória principal Barramento IO Barramento DMA
padrão de ônibus
É UM
Arquitetura padrão da indústria
EISA
isa estendida para CPUs de 32 bits
VESA
Associação de padrões eletrônicos de vídeo Barramento local de 32 bits
PCI
Interconexão de dispositivos externos
Barramento de alto desempenho de 32 ou 64 bits
plug and play
Pertence ao ônibus local
AGP
porta gráfica acelerada
Pertence ao ônibus local
PCI-E
Os mais recentes padrões de interface de barramento
serial
Substitua PCI, AGP
RS-232C
barramento de comunicação serial
USB
barramento serial universal
PCMCIA
Interface para laptop
IDE
circuito de dispositivo integrado
SCSI
interface de sistema de computador pequeno
Sata
tecnologia avançada serial
Desempenho
Ciclo de transferência de ônibus
Consiste em vários ciclos de clock de barramento
Ciclo do relógio do ônibus
Frequência de operação do ônibus
= frequência do relógio/N
frequência do clock do ônibus
O recíproco do período do relógio do ônibus
largura de banda do barramento
= Frequência de operação do barramento × (largura do barramento/8)
transação de ônibus
perguntar
arbitragem
endereçamento
transmissão
libertado
Transmissão de explosão (transmissão rápida)
Envie primeiro o endereço e depois os dados Você só precisa transmitir o endereço uma vez e os dados subsequentes são enviados continuamente.
Modo de tempo
Modo de tempo síncrono
O sistema usa um sinal de relógio unificado
Alta eficiência de transmissão
Fraca confiabilidade
Modo de temporização assíncrona
Tempo por sinal de aperto de mão
Sem modo de intertravamento
Método semi-intertravado
Método de intertravamento completo
Controle de arbitragem de ônibus (arbitragem de ônibus)
centralizado
corrente
projeto de circuito
O dispositivo mais próximo do barramento tem a prioridade mais alta
Equipamento fácil de expandir
Sensível a falhas no circuito
Use apenas dois fios para determinar qual barramento um dispositivo usa
Tempo do contador
projeto de circuito
A contagem começa em 0
Prioridade fixa
A contagem começa no ponto final
As prioridades são iguais
O valor do contador é definido pelo programa
prioridade variável
Controle complexo
Pegue linhas de log₂n
pedido independente
projeto de circuito
resposta rápida
Controle de prioridade flexível
O controle do barramento é complexo
Pegue 2n linhas
distribuído
A lógica de controle está dispersa em vários dispositivos conectados ao barramento
Capítulo VII entrada Saída
Sistema IO
Hardware de E/S
Dispositivos IO são conectados ao barramento do sistema da placa-mãe através do controlador de dispositivo
dispositivo externo
dispositivo de entrada
teclado rato
dispositivo de saída
monitor
tamanho da tela
resolução
Tons de cinza
A diferença de cor, quanto mais níveis de cinza, mais realista será a imagem
8 bits (256 níveis) → 256 cores
atualizar
taxa de atualização
memória de exibição
Capacidade VRAM = resolução × número de bits em tons de cinza Largura de banda VRAM = resolução × número de bits em tons de cinza × taxa de quadros
impressora
Classificação por método de trabalho
impressora matricial
Impressora matricial
Impressoras jato de tinta
impressora a laser
Em um computador, um código interno em caracteres chineses ocupa 2B na memória principal.
interface
Um dispositivo lógico que coordena a transferência de dados entre periféricos e o host
dispositivo de entrada
dispositivo de saída
Armazenamento externo
Software de IO
motorista
Programa do usuário
programa de gestão
Modo de controle IO
Método de consulta do programa
A CPU verifica continuamente se o dispositivo IO está pronto através do programa
Assim que a CPU iniciar o IO, ela deverá interromper a execução do programa atual.
Características
A CPU tem um fenômeno de espera gradual
Continue repetindo a mesma operação até completar
Trabalho serial de CPU e IO
Modo de interrupção do programa
Quando o dispositivo IO estiver pronto, emita uma solicitação de interrupção para a CPU
Função
Paralelismo de CPU e IO
Lidando com falhas de hardware, erros de software
interação humano-computador
Vários programas, operações de compartilhamento de tempo
processo de trabalho
A resposta de interrupção ocorre no final da execução de uma instrução
solicitação de interrupção
Interromper a arbitragem de resposta
Interrupção não mascarável > Exceção interna > Interrupção mascarável
Condições de resposta de interrupção
A fonte de interrupção tem uma solicitação de interrupção
Interrupção aberta da CPU
Uma instrução é executada
vetor de interrupção
O endereço de entrada do programa de interrupção
Determinar o tipo de interrupção
Após a CPU responder à interrupção, ela obtém o número do tipo de interrupção identificando a fonte da interrupção e calcula o endereço do vetor de interrupção correspondente. Então, de acordo com este endereço, o endereço de entrada do programa de serviço de interrupção é retirado da tabela de vetores de interrupção e, em seguida, enviado ao PC e, em seguida, o programa de serviço de interrupção é executado.
prioridade de resposta
Feito via fila de hardware
prioridade de processamento
Ajuste dinamicamente usando tecnologia de máscara de interrupção
interromper palavra de máscara
Processo de tratamento de interrupções
múltiplas interrupções
Modo DMA acesso direto à memória
Caminho de dados direto, entre a memória principal e os dispositivos IO
Existe um caminho de dados direto entre a memória principal e a interface DMA
caminho lógico
Um método de controlar a transmissão de informações inteiramente por hardware
Durante a transferência de dados, a determinação do endereço da memória principal é concluída diretamente pelo circuito de hardware.
A memória principal deve abrir um buffer dedicado para fornecer e receber dados periféricos em tempo hábil.
O DMA precisa ser pré-processado pelo programa antes da transmissão e pós-processado por interrupção após a conclusão da transmissão.
A resposta do DMA ocorre após uma transação de barramento e o DMA tem maior controle que a CPU.
Método de transferência DMA
1) Interrompa o acesso da CPU à memória
2) Apropriação indébita periódica
3) DMA e CPU acessam alternadamente a memória
Processo de transferência DMA
1) O pré-processamento ocupa CPU A CPU completa os preparativos necessários
Entre eles, o DMA não pode entrar em contato diretamente com o programa do usuário e utiliza o driver do dispositivo como intermediário.
2) A transmissão de dados não ocupa CPU Totalmente controlado por hardware DMA
3) O pós-processamento ocupa CPU Controlador DMA envia solicitação de interrupção para CPU
modo de canal
Quando o host executa um comando IO, ele inicia o canal relevante, executa o programa do canal e conclui a operação IO.
Processador de canal, um coprocessador especialmente usado para gerenciamento de IO, com funções de interrupção, DMA e controle de programa
O programa do canal está na memória principal, executado pelo canal, e só pode ser executado em um sistema IO com canal
Mais eficiente
Interface de E/S (controlador IO)
Função
Decodificação de endereço, seleção de dispositivo
Comunicação entre host e periféricos
buffer de dados
Conversão de formato de sinal
Transmitir comandos de controle e informações de status
estrutura básica
A interface IO está conectada à memória e à CPU através do barramento IO no lado do host.
Portas são registradores usados para leitura e escrita em circuitos de interface. Múltiplas portas e lógica de controle juntas formam uma interface
A instrução IO é uma instrução privilegiada usada pelo software IO subjacente do kernel do sistema operacional.
tipo
Dividido por método de transmissão de dados
serial
paralelo
Dividido por método de controle
interface do programa
Interface de interrupção
Interface DMA
Dividido por função
Programável
Não programável
Porta E/S
Memória acessada diretamente pela CPU no circuito de interface
Endereçamento
Endereçamento unificado
mapeamento de memória
Distinguir do código de endereço
Trate as portas IO como unidades de armazenamento para alocação de endereços
Use instruções de acesso à memória unificada para acessar portas IO
Endereçamento independente
Método de mapeamento IO
Configure instruções especiais de IO para acessar
Ao executar uma instrução, a CPU usa linhas de endereço para selecionar a porta IO Use linhas de dados para transferir dados entre registros de CPU e portas IO