CPU multiciclo e máquina de controlo

Partilhar recursos, seguir estados e sinais e contar ciclos nas instruções executadas.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Ideia

Uma ALU e uma memória partilhadas, resultados guardados em IR, MDR, A, B, ALUOut. Saída combinatória atual não é valor guardado: writeback de lw usa MDR; branch usa o alvo em ALUOut enquanto a ALU compara.

ClassePassos após fetch/decodeTotal com fetch/decode
lwEndereço, leitura, escrita5
swEndereço, escrita de B4
RALU sobre A/B, escrita4
beqCompara, escreve PC se igual3

beq demora 3 tomado ou não. IRWrite só no fetch.

Sinais

IorD: PC ou ALUOut no endereço. ALUSrcA: PC ou A. ALUSrcB: B, 4 ou imediato. MemtoReg: ALUOut ou MDR. PCSource: saída da ALU ou ALUOut. Escreve PC se PCWrite+(PCWriteCond⋅Zero)PCWrite+(PCWriteCond\cdot Zero).

Alvo do branch

ISA: alvo PCinst+d. O fetch já avançou 4; o decode soma d−4 ao PC avançado. Exemplo: instrução em 0x00400010, d=−8, PC=0x00400014: alvo 0x00400014−12=0x00400008. Outra organização guarda PCinst. A compensação é deste modelo, não da ISA.

Contagem

Conta execuções reais: inicialização, testes finais, expansões de pseudo-instruções; saltadas não contam. Três iterações de lw+add+sub+beq: 3(5+4+4+3)=483(5+4+4+3)=48 ciclos. Tempo = ciclos × período; CPI 4 com período de um terço dá razão 4/3.

Estados e sinais.

À 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.