Lição
A teoria — Uma CPU em miniatura: o Little Man Computer
O ciclo de busca, descodificação e execução é a sequência que um processador segue para cada instrução. Na busca, copia PC para MAR, lê a caixa indicada para MDR, copia esse valor para CIR e soma 1 a PC. Na descodificação, separa a instrução numa operação (o algarismo das centenas) e num endereço (os dois últimos algarismos). As exceções são 901, 902 e 000: códigos completos de INP, OUT e HLT, que não indicam nenhuma caixa. Na execução, realiza a operação, que pode exigir a leitura ou a escrita de outra caixa através de MAR e MDR.
O que significa cada símbolo
PC- contador de programa: o endereço da próxima instrução a ir buscar
MAR- registo de endereços de memória: o endereço da caixa que vai ser lida ou escrita
MDR- registo de dados de memória: o valor acabado de ler ou prestes a ser escrito
CIR- registo da instrução corrente: a instrução em execução
ACC- acumulador: onde ADD, SUB e LDA colocam o resultado
- Pressupõe
- O Little Man Computer de Stuart Madnick (MIT, 1965) não define o que acontece quando SUB produz um valor negativo ou ADD ultrapassa 999. Nesta máquina, o acumulador admite valores de −999 a 999, pelo que BRP verifica o sinal. Um resultado fora desse intervalo provoca um transbordo e interrompe a execução, em vez de dar a volta ao intervalo. Os simuladores escolares diferem neste ponto. Um programa cujo acumulador se mantenha entre 0 e 999 executa-se da mesma forma em todos eles.
Problema resolvido na íntegra
-
Porque é que 2 × 99 custa 801 instruções e 99 × 2 custa 25 4 passos
Seleciona 2 × 99, devagar e depois altera os valores de entrada para 99, 2. O resultado é 198 em ambos os casos. Conta as instruções executadas em cada caso, determina a fórmula e indica quanto custa, na ordem mais desfavorável, calcular um produto que caiba numa caixa de correio.
Abrir este problema na ferramenta
-
Antes do ciclo, há 2 INP e 2 STA: 4 instruções. O corpo do ciclo executa LDA b, BRZ, SUB one, STA b, LDA total, ADD a, STA total, BRA loop: 8 instruções por cada unidade de b.
-
Quando b chega a zero, o ciclo executa apenas LDA b e BRZ. Depois, LDA total, OUT e HLT terminam o programa: mais 5 instruções. O custo de uma execução é, portanto, 4 + 8b + 5 = 8b + 9. O valor de a nem sequer aparece na fórmula.
-
Com b = 99, o custo é 8 × 99 + 9 = 801; com b = 2, é 25. A tabela de resultados apresenta 801 para a primeira ordem e 25 para a segunda.
-
O maior produto que cabe numa caixa é 999. Com as entradas 1, 999, o ciclo repete-se 999 vezes: 8 001 instruções. Com 999, 1, executa-se uma vez: 17.
Resposta
8b + 9 instruções, sendo b a segunda entrada. Para obter o mesmo 999, uma ordem custa 8 001 instruções e a outra 17, cerca de 470 vezes menos. Se o programa começasse por comparar as entradas e usasse a menor para controlar o ciclo, o custo nunca ultrapassaria 8 × 31 + 9, acrescido do custo da comparação: num produto até 999, o menor fator é, no máximo, 31.
-
Percurso de aprendizagem
Como um computador executa um programa
Referências (4)
- Where the third insight's phrase comes from: the connecting tube between CPU and store, named the von Neumann bottleneck, and the remark that much of its traffic is not data but the names of data: John Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs." Communications of the ACM 21(8), 613–641, August 1978. The 1977 ACM Turing Award Lecture.
- The date the first insight gives for the stored-program idea first running: The University of Manchester, "How a 70-year-old 'Baby' changed the face of modern computing." News, 21 June 2018.
- The machine itself: Madnick's 1965 design, the instruction codes, and the fact the page's assumes rests on, that a negative or over-999 result is left undefined: "Little man computer." Wikipedia, read 14 October 2026.
- A school simulator's instruction table, with BRP described as branching when the accumulator is zero or positive, the sign convention this page follows: 101computing.net, "LMC Simulator."