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.
interfaces
operating-systems
software
hardware
Gabriele Scarlatti
la source
la source
Réponses:
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
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).
la source
Considérez ce circuit:
C'est un Flip Flop, alias un multivibrateur bistable. Il peut être remplacé par ce code:
la source
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:
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).
la source
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.
la source
>:*3
.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".
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source
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.
la source