Que signifie l'expression "Le logiciel peut remplacer le matériel"?

90

En étudiant le cours pour débutants sur l’interface matériel / logiciel et les systèmes d’exploitation, il est souvent question de savoir s’il serait préférable de remplacer certaines parties du matériel par des logiciels, et inversement. Je ne peux pas faire le lien.

Gabriele Scarlatti
la source
7
Les processeurs à usage général ont des jeux d'instructions qui leur permettent d'exécuter des opérations logiques arbitraires. Le logiciel est compilé en un flux de commandes exécuté par le jeu d’instructions de la CPU. Ceci est un exemple de faire des choses "dans un logiciel". Inversement, un algorithme logiciel peut être exécuté directement "en matériel" par la création de réseaux spécialisés de portes logiques en silicium.
Chimera
12
La "connexion" est que le logiciel et le matériel exécutent, par des moyens différents, des instructions logiques.
Chimera
14
Cela signifie exactement ce que cela dit. Les logiciels et le matériel font des choses. Parfois, vous pouvez utiliser des logiciels ou du matériel pour en choisir un. Ensuite, vous vous demandez s'il serait préférable de le faire avec l'autre.
user253751
4
Évidemment, vous ne pouvez pas remplacer tout le matériel par des logiciels - il est inutile d'essayer de créer un moniteur, une souris ou un clavier logiciels. (Sauf s'ils sont virtuels)
user253751
2
Considérez que nous utilisons des systèmes d’exploitation (logiciels) pour les raisons suivantes: 1) L’écriture d’un système d’exploitation directement sur du matériel nécessiterait une puce incroyablement complexe, coûtant un lot. 2) Le matériel ne peut pas être facilement mis à jour. Par conséquent, un système d’exploitation ne reçoit pas de mises à jour. Si un problème de sécurité est détecté, il ne peut pas être corrigé, etc. etc.
Bakuriu

Réponses:

176

Je pense que le lien fondamental qui manque d'autres réponses est le suivant:

Avec un ordinateur polyvalent (par exemple un processeur), on peut le programmer pour exécuter à peu près tous les calculs que nous avons définis. Toutefois, un matériel spécialisé peut être plus performant ou ne pas offrir de valeur.

(cette réponse est axée sur le traitement de bureau et utilise des exemples de ce domaine)

Remplacement du logiciel par du matériel

Si vous êtes assez vieux pour vous souvenir des jeux sur PC du milieu à la fin des années 1990, vous vous souvenez probablement des jeux FPS comme Quake . Cela a commencé par être un "logiciel rendu", ce qui signifie que la CPU a effectué les calculs nécessaires au rendu des graphiques. Pendant ce temps, le processeur devait également effectuer le traitement des entrées, le traitement audio, le traitement de l'IA, etc. C'était très éprouvant pour les ressources du processeur. De plus, le traitement graphique n'est pas bien adapté à un processeur grand public (alors ou maintenant). Il s’agit en général d’une tâche très fortement parallèle, qui nécessite beaucoup plus de cœurs que même un processeur moderne haut de gamme (8).

Nous avons déplacé le traitement graphique du logiciel vers le matériel: entrez 3dfx Voodoo et Nvidia TNT (maintenant GeForce ). Il s’agissait de cartes graphiques spécialisées qui transféraient le traitement de la CPU au GPU. En plus de répartir la charge de travail et de disposer de davantage de ressources informatiques pour effectuer le même travail, les cartes graphiques étaient un matériel spécialisé capable de restituer des graphiques 3D beaucoup plus rapidement et avec plus de fonctionnalités que le processeur.

Avance rapide jusqu'à l'ère moderne, et des graphiques sans processeur sont nécessaires sur le bureau. Même le système d'exploitation ne peut pas fonctionner sans GPU. Il est si important que les CPU intègrent réellement les GPU maintenant. 1

Remplacement du matériel par un logiciel

À l'époque des DVD, vous pouviez installer un lecteur de DVD sur votre ordinateur de bureau. Cependant, les processeurs du jour n'étaient pas assez puissants pour décoder les flux vidéo et audio de DVD sans bégayer. Au début, une carte PCI spécialisée était nécessaire pour effectuer le décodage. Il s’agissait d’un matériel spécialisé spécialement conçu pour décoder le format DVD et rien d’autre. Tout comme avec les graphiques 3D, non seulement elle fournissait plus de ressources informatiques, mais elle était conçue sur mesure pour la tâche, ce qui rendait la lecture de DVD facile.

Les processeurs devenant de plus en plus puissants, il devint possible de décoder les DVD "dans un logiciel", ce qui signifie "sur un ordinateur à usage général". Même avec un processeur moins efficace, il disposait de suffisamment de vitesse brute et d’optimisations de pipeline pour que la lecture de DVD réponde aux attentes des utilisateurs.

Nous avons maintenant des processeurs des centaines, voire des milliers de fois plus puissants 2 que lorsque les DVD étaient introduits. Lorsque le Blu-ray est arrivé, nous n'avons jamais eu besoin de matériel spécialisé, car le matériel polyvalent était suffisamment puissant pour gérer la tâche.

Faire les deux

Les processeurs Intel modernes disposent d'instructions spécialisées pour le codage et le décodage H.264 . Cela fait partie d'une tendance où les processeurs polyvalents acquièrent des fonctions spécialisées, le tout dans la même puce. Nous n'avons pas besoin d'une carte PCI Express distincte pour décoder H.264 efficacement comme avec les DVD à un stade précoce, car les processeurs contiennent des circuits similaires.


1 GPU fait référence à un processeur spécialement conçu pour effectuer des calculs graphiques. Les anciennes cartes graphiques 2D n'étaient pas des GPU: c'étaient simplement des framebuffers avec DAC pour parler au moniteur. La différence est que les GPU contiennent des processeurs spécialisés qui excellent dans certains types de calcul et qui, avec le temps, sont désormais eux-mêmes programmables (shaders). Le matériel graphique a toujours contenu le circuit spécialisé nécessaire pour convertir les données d’un framebuffer en un format pouvant être transmis via un câble (VGA, DVI, HDMI, DisplayPort) et compris par un moniteur. Cela n’a aucune incidence sur la discussion sur le transfert des calculs à du matériel spécialisé.

2 DVD-Video est sorti en 1997, à une époque où le Pentium 2 venait également de sortir. C’était une époque où la puissance des processeurs augmentait rapidement: on pouvait envisager un nouvel ordinateur P2 avec un décodeur DVD ou l’installation d’un décodeur dans un P1 légèrement plus ancien. Comparez cela à un Core i7 de génération 6 moderne utilisant la liste MIPS de Wikipedia , et un processeur moderne est entre 590 et 1 690 fois plus rapide. Cela est dû en partie à la vitesse d'horloge, mais également au passage à plusieurs cœurs en tant que standard ainsi qu'aux processeurs modernes qui font beaucoup plus de travail par tic et par horloge. Autre fait important, à mesure que la technologie avance, Intel (qui domine le marché des ordinateurs de bureau et des serveurs x86) ajoute des instructions spécialisées pour aider à accélérer les opérations souhaitées par les utilisateurs d’ordinateurs de bureau (décodage vidéo, par exemple).


la source
Les anciennes cartes graphiques 2D n'étaient pas des GPU au sens où on l'entend aujourd'hui, mais un matériel spécialisé pour les fonctions graphiques était très présent. Un blitter peut rapidement copier de grandes quantités de mémoire d’un emplacement à un autre, en utilisant éventuellement une simple opération logique pour la combiner avec les données de l’emplacement cible. C'était présent dans les cartes 2D typiques de l'ère VGA / SVGA. D'autres ordinateurs avaient d'autres matériels 2D spécialisés, tels que des sprites matériels dans les ordinateurs domestiques et les consoles de jeux des années 80 et 90.
Sebastian Redl
127

Je suis surpris que personne n'ait encore mentionné l'un des exemples les plus criants: la radio définie par logiciel.

Si vous remontiez quelque cinquante ans dans votre smartphone actuel et que vous le montriez à un ingénieur compétent du milieu des années 1960, il serait en mesure de la comprendre en grande partie. Qu'un superordinateur peut être réduit à quelque chose qui tient dans votre poche? Vérifier. Que vous pouvez avoir l’équivalent d’un téléviseur couleur de très haute qualité dans l’emballage? Vérifier. Que c'est beaucoup plus rapide, qu'il y a beaucoup plus de stockage, etc. que les ordinateurs de l'époque? Vérifier. Ce logiciel a été écrit qui peut effectuer des fonctions aussi complexes? Vérifier.

Mais dites à cet ingénieur compétent que, au fait, ce paquet contient un ensemble d’émetteurs et de récepteurs sensibles extrêmement efficaces: un émetteur-récepteur numérique à spectre étalé pouvant simultanément émettre et recevoir sur plusieurs canaux, communiquant avec une tour d’infrastructure pouvant se trouver à des kilomètres ; un autre émetteur-récepteur numérique qui communique des données à haute vitesse avec une station de base quelque part dans le bâtiment; encore un autre émetteur-récepteur numérique qui communique avec des appareils portables à faible puissance; et un autre récepteur qui capte un signal faible d'un satellite en orbite intermédiaire ... il vous traiterait de menteur.

Il vous qualifierait de menteur parce qu'il sait que des récepteurs d'une sensibilité aussi élevée ne peuvent être construits sans une multitude de circuits accordés, qui filtrent les stations voisines et sélectionnent le signal qui vous intéresse. Et que de tels circuits nécessitent des composants dont les tailles sont davantage définies par la physique que par la technologie, tels que les condensateurs et les inductances.

Vous devrez alors expliquer que dans une radio moderne, la plupart de ces opérations sont effectuées à l'aide de logiciels. Qu'après que le signal entrant de l'antenne soit converti en une fréquence intermédiaire et légèrement amplifié, il est ensuite échantillonné par un convertisseur analogique-numérique; et le traitement ultérieur a lieu dans un processeur de signal numérique. Tout ce réglage, ce filtrage, qui nécessitait des tonnes de matériel dans une radio haut de gamme de la vieille école, peuvent être décrits sous la forme d’équations mathématiques; et si cela peut être fait, ces équations peuvent être exécutées en temps réel par le DSP.

Je pense que ceci est l’un des exemples les plus criants de logiciels remplaçant du matériel. En conséquence, nous transportons des smartphones dans nos poches qui, même pour un ingénieur compétent des années 1960, seraient assimilables à un tour de magie.

Par rapport à cela, l'idée selon laquelle la logique simple d'un ouvre-porte de garage, d'un pèse-personne électronique ou d'une télécommande de télévision est aujourd'hui mise en œuvre à l'aide d'un microcontrôleur à usage général et d'un logiciel au lieu d'un matériel personnalisé semble presque triviale (et ce serait certainement beaucoup notre ingénieur hypothétique des années 1960 est plus compréhensible que la radio définie par logiciel).

Viktor Toth
la source
16
La réponse sous-estimée est sous-estimée. Bien que je possède un petit bagage en électronique et que j'ai moi-même construit quelques appareils radio, je ne savais pas que le réglage du signal était effectué par logiciel de nos jours. Mon esprit se tourne vers des bananes pour essayer d’imaginer exactement comment cela se passe.
Machado
5
@Machado Si vous faites un peu de conception électronique sérieuse, vous vous rendrez vite compte que ce sont essentiellement toutes des équations mathématiques. L'électronique physique peut additionner, soustraire, diviser, multiplier, différencier, intégrer, etc. C'est simplement qu'au lieu d'un condensateur physique pour filtrer tout le bruit basse fréquence, cela se fait en code. Le signal physique est "chargé" dans le logiciel via un bloc spécialisé de matériel appelé convertisseur analogique-numérique.
Chendrix
6
@Machado dspguide.com/pdfbook.htm Ce manuel contient de nombreux exemples de pseudocodes. C'est un petit bijou.
brian_o
4
@Machado N'oubliez pas de choisir une radio définie par logiciel (pour environ 20 $) et de commencer à jouer avec !
Michael Hampton
5
Il suffit de ne pas dire au gars des années 1960 que vous utilisez principalement toute cette puissance et ces fonctionnalités informatiques; est de publier des photos de votre nourriture, regarder des vidéos de chats et chasser les Pokémons ...
Baard Kopperud
42

Considérez ce circuit:

entrez la description de l'image ici

C'est un Flip Flop, alias un multivibrateur bistable. Il peut être remplacé par ce code:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;
Robert Harvey
la source
1
merci beaucoup pour votre réponse et pour avoir corrigé le post! Avez-vous un livre à suggérer pour en apprendre un peu plus? Gabriele
Gabriele Scarlatti
11
Code de vérification : la langue cachée du matériel informatique et des logiciels . Il couvre bien la transition du matériel au logiciel
Igor Milla
4
@igormilla Je peux témoigner de votre suggestion. Je lis actuellement le livre et c'est de loin le meilleur livre sur l'architecture informatique que j'ai jamais lu. Il fait un excellent travail d’explication claire et concise de chaque concept, sans vous jeter trop de jargon technique dans la gorge. Je le recommande vivement à quiconque souhaite une compréhension plus approfondie de la relation entre le matériel et les logiciels.
Christian Dean
1
@igormilla, belle trouvaille! Heureusement pour moi, il est disponible dans Safari Books Online , pour que je puisse commencer à lire dès maintenant. :) (Relisant mon commentaire avant de poster: cela ressemble à une publicité, mais je ne suis qu'un client satisfait. Je n'ai trouvé aucun livre technique recommandé au cours de la dernière année que je ne pouvais pas parcourir immédiatement ni même lire intégralement en ligne.)
Wildcard
29

Cela signifie exactement ce que cela ressemble.

Un exemple particulièrement célèbre est le lecteur Disk II conçu par Steve Wozniak pour Apple II:

L'innovation principale consistait à rendre le contrôleur compact en utilisant un logiciel alors que les concurrents utilisaient du matériel. Comme le rappelle Bill Fernandez, alors technicien en électronique chez Apple, "le principal avantage du design de [Wozniak] était qu'il n'utilisait que six puces au lieu des 60 à 70 habituels.

Un autre exemple que vous connaissez probablement mieux: les émulateurs. Ils remplacent des ensembles entiers de matériel (et de logiciels) entièrement dans les logiciels. Les processeurs, diverses puces de contrôle, même les périphériques de stockage.

Maintenant, vous ne pouvez pas éliminer tout le matériel, vous avez besoin de quelque chose pour exécuter le logiciel. Mais en général, toute tâche logique que vous pouvez implémenter dans le matériel peut également être implémentée dans le logiciel (les performances peuvent ne pas être identiques, elles peuvent être plus lentes, plus rapides ou dans des situations différentes, en fonction du matériel sous-jacent et de la mise en œuvre).

8bittree
la source
Donc, la seule chose dont vous avez toujours besoin, c'est au moins un processeur?
Gabriele Scarlatti
3
@GabrieleScarlatti Vous aurez besoin d'un peu plus, en particulier, les périphériques d'E / S doivent être matériels (mais les contrôleurs peuvent être des logiciels!) Et la mémoire doit être matérielle. Les connexions entre eux doivent être matérielles, mais la logique nécessaire est limitée. Des fils simples si vous avez assez de broches, des registres à décalage légèrement moins simples ou des dispositifs similaires si vous n'en avez pas assez.
8bittree
Ahaha oui j'étais un peu trop approximatif, pouvez-vous suggérer un bon livre pour en apprendre plus à ce sujet? Merci beaucoup pour les réponses!
Gabriele Scarlatti
1
Jusqu'à présent, la meilleure réponse à ce sujet est "les émulateurs".
Machado
1
Je ne peux pas parler de ce sujet sans mentionner le Woz!
James R.
11

Un autre domaine dans lequel cela est vrai est celui des synthétiseurs.

Les premiers synthétiseurs étaient du matériel 100% analogique générant directement les formes d'onde, puis les modifiant via des circuits (filtres, amplificateurs, etc.). Il était possible de synthétiser numériquement le son, mais cela nécessitait des ressources informatiques inédites pour le citoyen moyen (un véritable ordinateur central et un convertisseur personnalisé numérique-analogique).

Au fur et à mesure de l'amélioration de la fabrication des puces, les synthétiseurs sont passés de puces analogiques pures à des commandes de signaux numériques mais générant toujours des signaux analogiques, puis à la synthèse numérique pure (reproduction d'échantillons, synthèse FM, synthèse additive réelle, etc.).

Aujourd'hui, les processeurs sont assez bon marché et assez rapide pour permettre aux programmeurs de créer des versions informatiques de synthétiseurs analogiques classiques qui reproduisent exactement le comportement des circuits d'origine en simulant leur comportement en temps réel. En fait, les téléphones et les tablettes sont désormais capables de fonctionner suffisamment rapidement. lancez ces recréations; le Korg iMS-20 est un exemple.

Les synthétiseurs classiques et les nouveaux sont disponibles en tant que plug-ins VST ou AU pour les programmes audio numériques tels que Ableton Live, Logic ou Cubase. Ils offrent ainsi l'accès à des synthétiseurs à des personnes qui n'auraient autrement pas l'espace ou l'argent nécessaires pour pouvoir les utiliser. leur.

Edit: À ce stade, je devrais également mentionner VCVRack , qui simule la synthèse modulaire analogique en temps réel. Un pas en avant par rapport aux temps de rendu sur plusieurs heures pour quelques secondes de musique.

Joe McMahon
la source
1
L'Atari 2600 de 1977 dispose de suffisamment de puissance processeur pour générer de la musique à quatre voix avec une plage de cinq octaves, tout en laissant plus de 39% du temps de calcul disponible pour la génération d'affichage. Les tables de consultation nécessaires occuperaient plus de la moitié d'une cartouche 4K (environ 2300 octets), mais il était bien entendu possible que les cartouches aient une taille supérieure à 4K. On ne pouvait probablement pas avoir un jeu terriblement compliqué en jouant de la musique, mais un écran de titre très coloré avec un texte en défilement serait une possibilité indéniable >:*3.
Supercat
Oui, j'ai oublié environ 10? 20? années de développement pour que ma réponse ne devienne pas un roman. Très bons points! J'avais quelque chose appelé (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] sur mon Mac 512K, qui pouvait gérer 4 voix à peine.
Joe McMahon
Pour exécuter chaque instruction, le 68000 nécessite plus de cycles qu'un 6502, mais avec un codage correct, une synthèse sous forme de table à quatre voix devrait être assez efficace. J'estimerais environ 240 cycles / échantillon avec une amplitude en utilisant un tableau de 256 octets pour chaque réglage de volume; éliminer la mise à l'échelle de l'amplitude réduirait ce temps de 56 cycles / échantillon.
Supercat
7

Dans les temps anciens, la coupe était assez claire. La plupart des choses qui nécessitaient une exécution rapide devaient être implémentées dans le matériel. Prenons par exemple un multivibrateur qui génère une fréquence. Il n'y a pas si longtemps, vous aviez besoin de deux transistors, de condensateurs et éventuellement d'un quartz pour générer une fréquence (fixe). Maintenant, il existe des micro-contrôleurs bon marché qui ne coûtent que quelques centimes. Comme ils sont si rapides, vous pouvez les utiliser facilement pour créer un multivibrateur. Et en outre, vous pouvez facilement contrôler via un logiciel quelle fréquence générer où vous aviez auparavant besoin de souder différents matériels. Cependant, si vous dépassez une certaine fréquence (mais maintenant plutôt élevée), vous aurez toujours besoin de matériel pur. Donc, vous voyez, il y a une ligne entre les deux, mais la partie que vous pouvez résoudre avec un logiciel est en croissance (exponentielle).

Modifier En réalité, «le logiciel peut remplacer le matériel» n’est pas vraiment correct. C'est simplement le fait que le matériel est devenu si puissant que vous pouvez l'utiliser pour exécuter un logiciel émulant du matériel. Ainsi, au lieu de quelques transistors simples mais statiquement soudés, vous utilisez des millions de transistors comprenant le logiciel. Le terme devrait donc être "Le matériel peut maintenant comprendre les logiciels".

qwerty_so
la source
Pour être juste, cependant, presque tous les micro-contrôleurs ont (au moins un) module PWM à usage général, implémenté dans le matériel. Donc, il est rarement fait de bitbang une sortie de fréquence, en utilisant un logiciel exécuté sur le CPU proprement dit.
Lyndon White
@ LyndonWhite Un PWM n'est pas un multivibrateur général. Il a modulé la largeur d'impulsion qui est un sous-ensemble d'un générateur de fréquence.
Qwerty_so
1
En effet c'est vrai. Mon point de vue était plutôt que PWM est de loin le type de signal le plus courant que l’on souhaite générer (avec une gamme de cycles de travail) - c’est pourquoi les microprocesseurs sont dotés d’un matériel spécial. Je mettrais probablement PWM vs bitbang comme exemple de l'opposé "le matériel peut remplacer le logiciel".
Lyndon White
@ LyndonWhite J'ai modifié ma réponse.
Qwerty_so
5

Une comparaison entre le jeu d'arcade Tank (vers 1976) et le jeu de console domestique Combat (1977) donne un bel exemple de la façon dont un logiciel pourrait remplacer le matériel il y a 40 ans.

Le jeu d'arcade Tank (vers 1976) permettait à deux joueurs de contourner les chars et de se tirer dessus. Il n'incluait aucun type de processeur, mais des compteurs matériels pour garder une trace des positions horizontale et verticale du faisceau d'électrons, des chars et des tirs, ainsi que des scores du joueur, des angles de rotation, du temps écoulé. Il disposait d'une logique câblée pour la sortie des données bitmap associées aux scores, aux formes de réservoir des joueurs et à l'arrière-plan.

Le système informatique vidéo Atari 2600 (une console de jeu à domicile datant de 1977 environ) incluait un matériel permettant de suivre les positions horizontales (mais non verticales!) De deux objets bitmap et de quatre générateurs d'impulsions à largeur variable, ainsi que de maintenir une horloge basse de 20 bits graphique haute résolution playfield ainsi que deux modèles haute résolution 8 bits, couleurs de verrouillage pour les lecteurs, l’arrière-plan et le champ de lecture, et détecter les collisions entre les divers objets. Il incluait également une minuterie programmable à usage général, mais le matériel n’avait guère plus que ce qui précède. Néanmoins, même si le matériel est beaucoup plus simple que celui du jeu Tank, la cartouche 2K ROM Combat permet au 2600 de jouer le même jeu de base mais avec de nombreuses autres fonctionnalités (une variété de véhicules et d’origines, des coups rebondissants, etc.) car il peut remplacer la plupart de la machine d'arcade ' s matériel avec logiciel. Fait intéressant, même si l'Atari 2600 est probablement la deuxième plate-forme matérielle la plus simple de tout système de jeu vidéo domestique à microprocesseur vendu dans le commerce, il est si bien conçu pour faciliter le remplacement du matériel par un logiciel qu'il permet, lorsqu'il est correctement programmé, de tourner en rond ses concurrents.

supercat
la source
J'ai passé beaucoup d'heures et de trimestres à jouer à Tank. Un de mes amis restaure ces anciennes consoles de jeu et j'ai été très surpris d'apprendre que tout est matériel. Quelqu'un a passé beaucoup de temps à faire des cartes Karnaugh pour les rendre gérables. La répliquer dans un logiciel est beaucoup plus facile et nécessite moins de maintenance. Même avec les astéroïdes. Mais ni l'un ni l'autre n'a la même sensation à moins que vous ne le répliquiez exactement, y compris les commandes de la console. De plus, les graphiques vectoriels ne se ressemblent tout simplement pas sur les écrans raster, IMO.
SDsolar
@SDsolar: Je me souviens d'avoir lu une feuille publiée par Atari, je pense, avec quelques modifications qu'un propriétaire pouvait faire pour modifier divers aspects du jeu. Je pense que deux modifications impliquées ont permis de verrouiller l'angle de tir du joueur (ajout d'un "missile guidé"). "feature) et peut-être ajouter quelque chose comme une fonctionnalité de réservoir invisible. Changer de micrologiciel aurait nécessité du matériel plus compliqué, et certains types de mods qui seraient faciles à installer sur le matériel seraient impossibles (par exemple, si la position du joueur utilise un compteur binaire, il est trivial de faire apparaître un lecteur deux fois par ligne).
Supercat
1

L'expression "le logiciel peut remplacer le matériel" est un avertissement de ne pas essayer de résoudre les problèmes liés au matériel à moins que les avantages ne soient très évidents. Le logiciel coûte 10 x 50 fois moins cher à développer et presque infiniment moins cher à produire par unité que le matériel. Faire du X dans le matériel ne sera pas une solution gagnante à moins que X ne puisse vraiment pas être fait efficacement dans un logiciel.

DepressedDaniel
la source
Je n'ai pas voté vers le bas, mais je suis à peu près sûr que c'est inexact.
J. Allan
@ JefréN. Il s’agit simplement d’acheter du matériel plutôt que de le développer.
DepressedDaniel
Vous avez raison; J'ai mal compris l'intention de la question. Avez-vous une citation ou un lien pour appuyer votre affirmation selon laquelle "les logiciels coûtent 10 à 50 fois moins cher à développer ... que le matériel."? J'aimerais savoir s'il s'agit d'un chiffre approximatif ou s'il s'agit d'une déclaration [communément acceptée / vérifiée]. (Je suis désolé que tu sois triste, en fait; D)
J. Allan
Je n'ai pas voté vers le bas mais je ne peux pas le faire car ce n'est pas toujours vrai que les logiciels sont moins chers. Souvent, cela peut coûter beaucoup plus cher. En outre, considérons le concept d'ASIC et de FPGA, dans lequel un logiciel est utilisé pour créer un équivalent matériel qui peut alors s'exécuter plus rapidement. Comme la différence ultime entre les programmes exécutables et les programmes interprétés, mais plus encore.
SDsolar
1
@SDsolar Je n'ai pas entendu parler d'un cas où la même fonctionnalité est implémentée à moindre coût dans le matériel que le logiciel. Si cela est faisable dans un logiciel, il sera presque toujours moins cher de le faire dans un logiciel. Bien entendu, par exemple, un moteur de rendu logiciel rencontrera des problèmes de performances plus rapidement par rapport à une carte graphique. Mais cela concerne davantage la faisabilité d'une implémentation logicielle pour atteindre certaines performances de base.
DepressedDaniel
1

La nuance a été bien abordée, mais je pense qu'il est possible que le point d'achoppement pour OP soit que ce n'est vraiment pas possible de remplacer le matériel par un logiciel. Le "matériel" implique invariablement beaucoup moins de "matériel" que la solution "logicielle".

La différence est que la logique d'un processus / algorithme / calcul peut être déplacée entre le matériel et le logiciel. De nombreux exemples ont été donnés, je ne développerai donc pas.

Une
la source
-1

Dans les premiers ordinateurs dotés de mémoire virtuelle, vous deviez effectuer une commutation de tâche sur un TLB manquant pour charger une nouvelle entrée de page. Un logiciel du système d’exploitation trouverait le processus correct, parcourrait les tables de pages, trouverait la bonne entrée et l’écrirait de nouveau dans le TLB. Avant de revenir au processus d'origine pour continuer.

Maintenant, la plupart des processeurs utilisent du matériel pour effectuer le processus, lire le tableau de pages, parcourir les tableaux de pages et mettre à jour le TLB.

Les deux méthodes doivent utiliser un logiciel pour traiter les fautes de page, mais comme TLB-misss dépasse facilement le nombre de fautes de page, la marche du matériel surpasse toujours celle du logiciel.

En général, si vous avez une procédure simple que vous devez gérer de manière répétée, vous trouvez un matériel de remplacement. Si vous avez une solution matérielle complexe avec un flux de contrôle complexe, vous pouvez simplifier le matériel en utilisant un logiciel.

Surt
la source
-2

Dans de nombreux cas, un logiciel peut remplacer du matériel, et inversement.

Un exemple classique est une table de recherche en mathématiques. Au lieu de calculer chaque fois les résultats en expressions communes, elles sont stockées en interne dans votre co-processeur mathématique et sont simplement référencées lorsque cela est nécessaire.

La plupart d'entre eux sont probablement déjà familiarisés avec les filtres audio et les logiciels capables d'imiter de vrais instruments et appareils tels que des pédales ou des amplificateurs.

Tout matériel pouvant être créé virtuellement sera utilisé s'il est plus rapide et / ou meilleur marché que son équivalent physique.

Christopher Oldfield
la source
-2

En comptabilité, une copie papier d'une facture (par exemple) peut maintenant être envoyée par voie électronique, et un logiciel commence à gérer de plus en plus la réception de ce type de document et son traitement. C'est un excellent exemple de matériel remplacé par un logiciel.

Andrew Day
la source