Modelo matemático no qual os computadores atuais são construídos

8

Dizem que "a máquina de Turing não é uma tecnologia de computação prática, mas um dispositivo hipotético que representa uma máquina de computação. As máquinas de Turing ajudam os cientistas da computação a entender os limites da computação mecânica". [Wikipedia]

Então, em qual modelo as máquinas atuais são construídas?

user5507
fonte

Respostas:

5

A mais próxima das CPUs típicas é provavelmente a máquina de registro ou a máquina de acesso aleatório ( RAM ). Uma RAM possui

  • um número infinito de registros, cada um dos quais armazena um número arbitrariamente grande,
  • um conjunto de operações nesses registros (normalmente ),{+1,=0}
  • uma linguagem de programação incluindo essas operações, bem como estruturas de controle para loop / ramificação (até / se algum registro contiver ) e0
  • um contador de programa apontando para a próxima operação (em algum programa).

CPUs reais são bastante semelhantes, com algumas mudanças:

  • Existem apenas muitos registros finitos (que podem existir apenas virtualmente) e cada um armazena apenas números de tamanho limitado.
  • Existem mais operações.

Além disso, é muito próximo mesmo. É comum estender o modelo de RAM para atender à hierarquia de memória , o que torna os resultados muito mais aplicáveis.

Rafael
fonte
Eu acho que o (RASP) modelo de máquina de acesso aleatório de programa armazenado é ainda mais perto de um computador todos os dias
Vor
O que Raphael disse não é bem verdade: você não tem permissão para armazenar números arbitrariamente grandes. De fato, no modelo de RAM, cada célula de registro / memória pode armazenar bits de informação. Ainda isso significa que, quanto maior a sua entrada, maior o tamanho da palavra da sua máquina. Obviamente, isso não é verdade para computadores. O(logn)
precisa saber é o seguinte
@ A.Schulz: se você vai criticar o modelo de RAM dessa maneira, também deve criticar as máquinas de Turing por terem fitas infinitas. Esses modelos são bons porque são idealizados pela realidade (recursos muito grandes, mas limitados) de uma maneira matematicamente útil (aproximado "muito grande" com "infinito", a fim de estudar certos aspectos da computação que não tratam de recursos limitados).
Andrej Bauer
11
@AndrejBauer: Eu nunca critiquei o modelo de RAM. A escala é um conceito importante para todos os modelos razoáveis ​​e poderosos de computação. Caso contrário, estaríamos presos a idiomas regulares. No entanto, tecnicamente falando, um computador possui recursos limitados e, portanto, é uma máquina de estado finito / autômato finito.
A.Schulz
@ A.Schulz Isso pode depender de quem está falando e do que está falando. Na teoria da computabilidade, essa restrição é mais um obstáculo do que uma relevância. Na teoria da complexidade, com certeza é relevante; a restrição específica depende do modelo de custo com o qual deseja trabalhar.
Raphael
3

Máquina Von Neumann , e se você preferir algo mais matemático, observe a máquina RAM .

Andrej Bauer
fonte
3
Essa é uma arquitetura de computador , não um modelo matemático.
Massimo Cafaro 7/11
"Eu preciso adicionar outra frase." - é um sinal de que isso deveria ter sido um comentário, não uma resposta. Deseja estender sua postagem ou devo convertê-la?
Raphael
3
Rafael não está certo. Os comentários podem ser longos, a resposta pode ser tão simples quanto 'Sim'. Se for um comentário ou resposta, não é uma questão de duração, mas de conteúdo.
Val
2
A resposta é boa como está porque responde completamente à pergunta. As máquinas de Von Neumann (não vamos discutir sobre "máquina" versus "arquitetura") foram projetadas especificamente para o propósito de construir computadores reais. E como a Wikipedia faz um bom trabalho para descrevê-los, não vejo o que mais eu poderia dizer. Não é minha culpa que a pergunta tenha uma resposta fácil.
Andrej Bauer
@MassimoCafaro: qual é exatamente a diferença? Os projetos de Von Neumann são tão matemáticos quanto as máquinas de Turing. Não confunda uma apresentação específica com a ideia matemática. Por exemplo, as máquinas de Turing podem ser descritas em termos de "fitas", "cabeças" e "estados de controle" ou em termos de "um conjunto de quádruplos" e uma "função de transição". Embora um deles pareça mais "matemático", ambos são matemáticos.
11117 Andrej Bauer