Y a-t-il un nom pour «des puces à partir desquelles on peut construire un CPU»?


9

Certaines personnes aiment construire des CPU "homebrew" à partir de circuits intégrés plus simples.

Y a-t-il un nom pour "les puces à partir desquelles on peut construire un CPU, si vous en avez assez"? Y a-t-il un nom pour les autres puces, "puces à partir desquelles on ne peut pas construire de CPU, quel que soit le nombre de puces"?

On peut construire un CPU à partir de quantités suffisamment importantes de puces multiplex 4: 1 (les multiplexeurs sont le Nuke tactique de la conception logique ). On peut construire un processeur à partir de quantités (un peu plus grandes) de portes NAND 2 pouces. Ou à partir de portes NOR 2 pouces. Ou à partir de quelques (peut-être un) CPLD ou FPGA.

cependant,

On ne peut pas construire un CPU uniquement à partir de portes XOR 2 pouces. On ne peut pas construire un CPU entièrement à partir de la logique de résistance de diode seule. On ne peut pas construire un processeur entièrement à partir de bascules de type D uniquement.

Existe-t-il un terme ou une expression pour distinguer ces deux catégories de puces qui est moins gênant que "puces à partir desquelles on peut construire un processeur"?


6
Un problème que j'ai avec cette question (ce qui signifie que vous pouvez peut-être l'améliorer, ou que je manque quelque chose) est que vous êtes vague sur la façon dont vous évaluez être capable de "construire un CPU" . S'agit-il d'une question de conception (logique) ou d'une question de famille IC? Demandez-vous de déterminer les exigences logiques pour concevoir un ordinateur complet Turing?
mctylr

1
@mctylr: Oui - Comment appelez-vous le type de puces, comme le multiplexeur 4: 1, qui permettent de concevoir un ordinateur Turing-complet entièrement à partir de cette puce? Je soupçonne que chaque famille de circuits intégrés possède un circuit intégré à partir duquel (en nombre suffisant) on peut construire un ordinateur complet de Turing; et possède un autre CI qui, à lui seul, est inadéquat pour construire un ordinateur complet de Turing. Quelle terminologie puis-je utiliser pour distinguer le premier type de puce du deuxième type de puce?
davidcary

1
liés: Y a
davidcary

@reemrevnivek: Je pensais que "diode" avait quelque chose à voir avec "logique de résistance de diode".
davidcary

Réponses:


16

Vous devez être en mesure de faire NON et l'un des ET et OU. En utilisant les lois de Demorgan, l'une ou l'autre de ces fonctions peut être transformée en l'autre, et de là en toutes les autres fonctions logiques.

C'est ce qu'on appelle l'exhaustivité fonctionnelle ou l'adéquation expressive. Les composants ou fonctions qui créent un tel système sont appelés fonctions de Sheffer (d'après Henry Sheffer, qui a publié une preuve sur le sujet) ou seuls opérateurs suffisants.

Il est également intéressant de noter que vous pouvez combiner un quatuor de portes NAND pour créer une bascule de type D, et à partir de là une cellule de mémoire, qui est également nécessaire pour créer l'intégralité de Turing.

L'article de ProofWiki sur le sujet est une bonne lecture.


Une personne sur la page de discussion sur l' exhaustivité fonctionnelle de Wikipédia affirme que les portes Fredkin ne sont pas complètes sur le plan fonctionnel (car si vous appliquez les 0 entrées à une ou plusieurs portes Fredkin câblées dans n'importe quel arrangement imaginable, vous ne pouvez jamais obtenir un 1 à n'importe quelle sortie), et d'autres encore prétendent que vous pouvez construire un processeur entièrement à partir des portes Fredkin. Donc, une porte Fredkin est-elle réellement "fonctionnellement complète", ou suis-je à la recherche d'une catégorie plus large qui comprend "fonctionnellement complète" et aussi des portes Fredkin?
davidcary

@David - C'est un peu hors sujet, mais si vous lisez l'article sur les portes Fredkin, vous constaterez que la porte Fredkin a la propriété d'échanger les deux derniers bits si le premier bit est 1, et il est également réversible. Si vous autorisez 1 et 0 à être codés en dur, il est facile d'obtenir toute autre fonction logique avec quelques portes Fredkin. Cependant, si vous autorisez le codage en dur, il n'est plus réversible, et donc pas une porte Fredkin appropriée (selon certains). La réversibilité est une catégorie indépendante de l'exhaustivité fonctionnelle, et je pense que l'exhaustivité fonctionnelle est suffisante pour votre problème.
Kevin Vermeer

Si vous appliquez les 0 entrées à un ou plusieurs multiplexeurs 4: 1 câblés dans n'importe quel arrangement imaginable, vous ne pouvez jamais obtenir un 1 sur aucune sortie. Une puce multiplexeur est-elle en fait "fonctionnellement complète", même si elle n'est jamais mentionnée sur cette page ProofWiki par ailleurs excellente, ou suis-je à la recherche d'une catégorie plus large qui comprend des "copeaux multiplex 4: 1 fonctionnellement complets"?
davidcary

@David - Le multiplexeur 4: 1 est un appareil spécialisé dans l'électronique. Dans le domaine de l'électronique, nous sommes rarement, voire jamais, intéressés à assembler un ordinateur entièrement à partir d'un type de CI, et dans le domaine de l'informatique théorique (le domaine de ProofWiki et le terme "complétude fonctionnelle"), les multiplexeurs et d'autres circuits intégrés spécialisés sont assemblés à partir de portes logiques standard. Dans ce no man's land, je pense que vous pouvez définir vos propres termes.
Kevin Vermeer

@reemrevnivek: Lors de la fabrication d'un produit, cela économise souvent du temps, de l'argent et de l'espace de stockage pour utiliser quelques types de composants génériques que je peux acheter en vrac auprès de plusieurs fabricants, plutôt que «d'optimiser» séparément chaque pièce et d'utiliser des composants super-spécialisés qui ne sont utiles qu'à un seul endroit dans un seul produit et dont le fabricant le déclarera probablement "plus recommandé pour de nouveaux modèles" dans quelques années. ps: jamais entendu parler du Cray-1 ou du module de guidage Apollo? Tout sauf la mémoire entièrement à partir d'un type de CI.
davidcary

5

L'ensemble des "puces sur lesquelles vous pouvez construire un ordinateur" peut être assemblé en machines complètes Turing . Les autres ne le peuvent pas.

Toutes les portes logiques peuvent être assemblées à partir d'ensembles de portes NAND ou NOR uniquement. Si votre circuit intégré en question peut agir comme l'un ou l'autre, il peut être transformé en une machine de Turing.

Je ne connais pas de terme spécifique pour décrire un tel ensemble.

Ces questions peuvent également aider:

/programming/4908893/what-logic-gates-are-required-for-turing-completeness

/programming/7284/what-is-turing-complete


1
Excellent. Ainsi, un type de puce est "une puce qui peut agir comme une porte NAND, ou agir comme une porte NOR, ou les deux", et l'autre type de puce est "une puce qui ne peut pas agir comme une porte NAND, il ne peut pas non plus agir comme une porte NOR ". Conceptuellement beaucoup plus simple. C'est probablement suffisant, mais j'espérais une phrase qui me serait un peu plus facile à entendre.
davidcary

2

Je suis d'accord avec l'idée que les multiplexeurs 4: 1 sont merveilleux. Il y a quelques années, j'ai implémenté un contrôleur de mémoire à commutation de banque 8K pour un Atari 2600 en utilisant un seul 74xx153 / 74xx253 et un circuit de débridage RC. Le contrôleur doit à la fois fournir une sortie qui est l'inverse de l'entrée A12, et il doit verrouiller A6 lorsque A11 est haut et A12 bas. "Back in the day" (début des années 80), les cartouches de changement de banque utiliseraient soit du silicium personnalisé, soit trois puces TTL; en utilisant un 74xx153 standard, cependant (qui était disponible à l'époque), le travail peut être effectué sur une seule puce.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.