CPU uniciclo: datapath e controlo

Seguir R, lw, sw e beq, escolher sinais de controlo e diagnosticar falhas.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Datapath

Subconjunto didático: add,sub,and,or,lw,sw,beq. Cada instrução termina num período; a mais lenta define o relógio.

  • ALU recebe rs1 e escolhe rs2 ou imediato. O resultado escreve R ou endereça lw/sw. MUX de writeback: ALU ou memória.
  • PC seguinte: PC+4 ou PC da instrução+d. PCSrc=Branch AND Zero; somador separado calcula o alvo. O imediato já sai em bytes.

Sinais

ClasseRegWriteALUSrcMemReadMemWriteMemtoRegBranchALUOp
R10000010
lw11101000
sw0101X000
beq0000X101
  • ALUSrc=1 usa imediato; MemtoReg=1 usa memória. X em MemtoReg, em sw e beq, porque RegWrite=0 impede a escrita e o MUX de writeback é ignorado. ALUSrc e MemWrite continuam a importar no sw.
  • ALUOp pede a operação (00 soma, 01 subtrai, 10 consulta f3/f7); ALUControl é a codificação interna (AND 0000, OR 0001, ADD 0010, SUB 0110).

Diagnóstico

lw x5,12(x8) com x8=0x10010000 e 42 no destino: ALU dá 0x1001000C, MemtoReg=1 escreve 42.

  • MemtoReg preso em 0: load escreve o endereço. Testa com conteúdo diferente do endereço.
  • Leitura 2 presa: afeta R, sw, beq; lw não a usa. PCSrc preso em 0: só falha o branch tomado. RegWrite em 0: R e lw calam.
  • addi: ALUSrc=1, ALUOp=00, MemtoReg=0, RegWrite=1. jalr precisa de caminho para PC+4 e destino da ALU com bit 0 limpo.
  • CPI=1 não garante rapidez: o período é o do load.

Load completo.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.