Bonjour à tous,
Désolé si la question est un peu off-topic au niveau de l'algorithme, mais ca n'est pas en rapport avec un langage spécifique et ca se rapproche de la "queueing theory".
Aujourd'hui avec des collègues nous discutions de l'implémentation de l'endianness et des piles (stacks) au niveau des processeurs.
Si l'endianness (qu'elle soit big, little ou middle) à ses pros et ses contras sans toutefois qu'un choix soit largement préférable à un autre se dégage, nous nous posions la question quant au choix des ingénieurs pour l'implémentation de piles au niveau des CPUs.
Il apparait que la grande majorité des processeurs utilisent le type LIFO (Last In, First Out) et non FIFO (First In, First Out), mais les questions que je me pose sont :
Pourquoi le choix du type LIFO s'impose sur la majorité des processeurs ?
Quel sont les avantages du type LIFO par rapport au type FIFO (et ce, uniquement dans le cadre de l'implémentation d'un processeur) ? [outre le banal "1er arriver premier sorti, ou Dernier arrivé premier sorti"]
Est-ce que la récursion est un facteur déterminant dans le choix du type de pile (la récursion étant peut être plus aisée avec les piles LIFO) ?
Finalement, si le type de pile LIFO est si répandu, quel avantage à utiliser le FIFO ? (et ce dans un cadre plus général, aussi bien au niveau des processeurs, que dans l'utilisation de piles pour utiliser des données avec un langage (ie. <stack> du C++, ou toute implémentation de pile dévolue à un langage)
Je vous serais reconnaissant si vous aviez des pistes de réflexion à ce sujet, c'est une question qui m'intéresse.
Merci à vous.
Partager