Questionnement sur la réalisation d"un processeur - Electronique, domotique, DIY
Marsh Posté le 17-07-2016 à 16:22:20
Sujet très vaste. Quand tu parles de processeur, tu parles de la puce de silicium ? Si oui oublie ça, à moins d'être docteur en microelectronique et d'avoir un paquet de milliers d'euros devant toi.
En revanche, un tel projet se fait très bien sur un Fpga. Dans l'université où je travaille, un des cours de base est de réaliser une ALU. Quel est ton background ?
Si ton but est seulement de comprendre "comment ça marche", tu peux aussi te contenter d'apprendre l'assembleur sur des plates-formes simples (micro 8 bits) puis complexes (x86).
Marsh Posté le 17-07-2016 à 16:31:23
On peut effectivement faire ça sur un FPGA mais aussi avec des portes logiques: http://mycpu.thtec.org/www-mycpu-eu/index1.htm Dans tout les cas un bon bouquin s'impose, c'est un sujet très complexe. Il faut avoir des compétences en informatique bas niveau assez poussées (et en électronique si on veut faire quelque chose de physique). Si c'est juste pour comprendre il doit y avoir des simulateurs en tout genre sur internet.
Marsh Posté le 17-07-2016 à 16:50:42
math3006 a écrit : Sujet très vaste. Quand tu parles de processeur, tu parles de la puce de silicium ? Si oui oublie ça, à moins d'être docteur en microelectronique et d'avoir un paquet de milliers d'euros devant toi. |
Loin de là je ne parle pas avec silicium car oui il faudrait que j'ai un laboratoire immense pour faire ceci ... non moi ce que je demande c'est des petits pour des projets maisons.
Mon background ?
Comprendre et essayer d'en faire un , et oui je pense aller sur du 8 bits car trop compliqué la suite
Marsh Posté le 17-07-2016 à 16:51:48
rat de combat a écrit : On peut effectivement faire ça sur un FPGA mais aussi avec des portes logiques: http://mycpu.thtec.org/www-mycpu-eu/index1.htm Dans tout les cas un bon bouquin s'impose, c'est un sujet très complexe. Il faut avoir des compétences en informatique bas niveau assez poussées (et en électronique si on veut faire quelque chose de physique). Si c'est juste pour comprendre il doit y avoir des simulateurs en tout genre sur internet. |
Ce serait pour les deux ... quels sont les logiciels pour simulation , et quel bouquin me conseiller ?
Marsh Posté le 17-07-2016 à 17:15:29
Background dans le sens : d'où pars-tu, quelles sont tes connaissances en électronique numérique ? Voir s'il faut te donner des lectures préliminaires
Le livre de référence dans le domaine est le suivant :
PATTERSON, D.A., HENNESSY, J.L., Computer Organization and Design
Nous en sommes à la 4e édition, mais la 3e est encore tout à fait valable.
Marsh Posté le 17-07-2016 à 17:29:56
math3006 a écrit : Background dans le sens : d'où pars-tu, quelles sont tes connaissances en électronique numérique ? Voir s'il faut te donner des lectures préliminaires |
Je pars de presque rien , j'ai des connaissances en HTML/CSS (qui serviront pas) et en Python. Donc oui besoin de lectures préliminaires
Ils sont en français ? ^^
Marsh Posté le 17-07-2016 à 17:48:18
Je ne connais pas d'équivalent au Patterson en français. De manière générale, la plupart des bons bouquins et des ressources (cours en ligne) sont en anglais.
Néanmoins puisque tu pars de zéro, je ne suis pas sûr que ce soit la bonne approche dans une optique de compréhension générique. Le cours dont je parlais plus haut se donne après 2 ans d'études d'ingénieur spécialisé.
Peut-être est-il plus intéressant dans ton cas d'apprendre à programmer un PIC ? Par exemple, en français :
http://www.didel.com/pic/Prog877.pdf
Ça te donnerait une bonne compréhension générale de "comment ça marche dedans" sans avoir à y consacrer un temps déraisonnable.
Marsh Posté le 17-07-2016 à 17:50:03
Le PIC va me permettre de survoler l'intégralité du fonctionnement processeur en gros ? De la construction est possible ?
Le cours est de ton université ?
Marsh Posté le 17-07-2016 à 18:05:30
Un PIC c'est un micro-contrôleur très simple (pour les versions 16f en 8 bits). Le langage assembleur impose de comprendre le fonctionnement interne du PIC (les registres, notamment). Néanmoins, les périphériques restent des boîtes noires à configurer. Point de construction là-dedans.
J'avoue avoir un peu de mal à saisir tes motivations. Si tu veux lire les plans de cours en question :
ELE343, Conception des systèmes ordinés
Et le préalable :
ELE140, Conception des systèmes numériques
Marsh Posté le 17-07-2016 à 19:32:06
Tuy ne comprends pas quoi ? et merci pour ton aide
Marsh Posté le 17-07-2016 à 20:02:10
Dans quel but veux-tu comprendre comment fonctionne un processeur ? La question sous-jacente étant : quel niveau de compréhension ferait ton bonheur.
Marsh Posté le 17-07-2016 à 20:15:42
Tout et n'importe quoi , juste le fait d'apprendre ceci j'aime donc évidemment commencer au plus bas et grimper les échelons petit à petit
Marsh Posté le 17-07-2016 à 20:26:49
Citation : j'aime donc évidemment commencer au plus bas et grimper les échelons petit à petit |
Le problème c'est que pour comprendre "au plus bas" faut déjà avoir des bonnes bases (logique, électronique numérique, informatique, ...) et être vraiment motivé. D'autant plus que l'intérêt pratique de savoir quelles portes logiques constituent une ALU est limité... Ce qui sers c'est savoir comment le processeur fonctionne au niveau registres, SREG, drapeaux etc. Pour cela le mieux c'est d'apprendre l'assembleur pour une architecture. Les PIC 16f ou les AVR sont assez simples et pour ces derniers le AVR Studio (gratuit) contient un simulateur, mais ce sont des petits processeurs (contrôleurs d'ailleurs si on veut être exact) avec une puissance très limitée et qui sont fournis sous la forme de circuit intégrés autour desquels il faut rajouter des composants (ou acheter des choses toutes faites), autrement dit c'est aussi une bonne partie d'électronique. Sinon vaut mieux partir sur du x86, je suis sûr qu'il y a de quoi s'occuper un bon moment... (Et on doit pouvoir trouver des lectures en français.)
Marsh Posté le 17-07-2016 à 20:30:24
Si tu as du temps, le mieux c'est de prendre les notions des plans que je t'ai linké et te former sur chacune dans l'ordre, ça te permettra de construire des connaissances solides au fur et à mesure, sans brûler les étapes. D'ici quelques mois/années tu devrais pouvoir attaquer la conception d'une ALU en VHDL.
Une autre approche, moins efficace mais qui te permet d'entrer directement dans le vif du sujet : plonge-toi dans le Patterson, en allant chercher les connaissances qui te manquent au fur et à mesure. En parallèle, suit des cours de VHDL (on en trouve des tonnes sur le net), ça te permettra d'apprendre à synthétiser ce que tu lit.
Marsh Posté le 17-07-2016 à 20:49:11
Par rapport à ce que dit math3006: On peut effectivement faire de telle ou telle manière, mais dans les deux cas et surtout le deuxième il faut être conscient d'une chose: Il faudra BEAUCOUP de patience et de courage pour tenir le coup. C'est un sujet très complexe, ce n'est pas avec quelque lectures qu'on le maîtrisera. Et comme je disais, à moins de vouloir faire carrière dans ce domaine l'intérêt pratique est limité. On ne poura jamais fabriquer son processeur sous forme physique et pour le VHDL ou Verilog il y a déjà des choses toutes faites (et probablement bien meilleures que ce que peut faire un débutant). Bien sûr, c'est très bien de vouloir apprendre et je ne veux décourager personne, mais je me demande si upong ne voit pas un peu trop grand sur ce coup. Je pense que dans un premier temps il est déjà très utile d'apprendre l'assembleur, ensuite on peut toujours voir plus bas (si on a toujours envie...).
Par ailleurs, pour une approche beaucoup moins profonde ou pour une première idée sur le sujet un coup d'oeil dans la Wikipédia anglaise peut aussi donner des infos intéressantes.
Marsh Posté le 17-07-2016 à 20:56:52
On s'est télescopés en répondant plus haut, mais je suis entièrement d'accord avec toi.
Marsh Posté le 19-07-2016 à 13:52:58
Merci de tout vos commentaires j'en prend compte , je vois très bien que la construction en tant que débutant est complexe ... c'est pour cela que je vais aller sur compilateur avec PIC , mais je sais pas quoi prendre pour commencer ... pouvez vous m'indiquer le chemin ?
Marsh Posté le 19-07-2016 à 15:08:53
Tu parles de compilateur, ça c'est pour le language C. Si tu veux comprendre comment fonctionne vraiment le processeur vaut mieux passer par l'assembleur (ce que de toute façon je conseille pour le début). Pour les PIC je ne peux pas en dire plus, moi c'est AVR...
Marsh Posté le 19-07-2016 à 18:42:38
Justement voilà un microprocesseur fait maison tout récent : http://www.megaprocessor.com/
Ca sert à jouer à Tetris. C'est plus encombrant qu'une game boy par contre
Il y a aussi des équivalents à coup de chips TTL/CMOS, regarde un peu tous ces projets pour mieux cerner le sujet, c'est moins austère à lire que la littérature spécialisée
Marsh Posté le 19-07-2016 à 22:17:30
Tiens je connaissais pas ce projet, sur le plan pédagogique c'est très intéressant !
Bon après, pour le concevoir faut maîtriser un peu son affaire quoi
Et la littérature spécialisée ce n'est pas austère, c'est exhaustif
Sinon pour les PIC, ya plein de manière d'aborder le truc. Je ne saurais pas te conseiller une board de dev. en particulier, j'ai toujours utilisé des cartes custom pour les PIC. Mais il doit y avoir un certain nombre de personnes ici qui doivent savoir ça, même sans savoir comment marche un processeur dans le détail
Marsh Posté le 20-07-2016 à 11:35:35
uPong a écrit : Tout et n'importe quoi , juste le fait d'apprendre ceci j'aime donc évidemment commencer au plus bas et grimper les échelons petit à petit |
En pédagogique tu peux te lancer dans l arduino sinon, il y a pleins de tutos sur le net assez bien expliqué
Marsh Posté le 20-07-2016 à 13:26:34
flagadadim a écrit : En pédagogique tu peux te lancer dans l arduino sinon, il y a pleins de tutos sur le net assez bien expliqué |
Oula! L'Arduino permet de tout faire sauf comprendre comment fonctionne un processeur! C'est même le contraire je dirais. Les AVR "nus" par contre ça convient parfaitement, comme les PIC.
Ah oui le megaprocessor, je l'avais oublié, pourtant il était passé sur Hack a Day il y a peu de temps. Projet impressionant!
Pour les PIC j'ai entendu dire que les cours d'un certain bigonoff sont très bien. Vu les opinions politiques qui sont diffusées sur son site je ne posterai cependant pas de lien (choix personnel) mais Google trouve très facilement.
Marsh Posté le 20-07-2016 à 14:44:24
Faudrait que l'auteur du topic clarifie ce qu'il veut, le premier post parle de comprendre le fonctionnement interne d'un µP [éventuellement en en créant un] et à la fin ça parle de cours PIC ou, pire, Arduino ...
Marsh Posté le 20-07-2016 à 18:33:20
TotalRecall a écrit : Faudrait que l'auteur du topic clarifie ce qu'il veut, le premier post parle de comprendre le fonctionnement interne d'un µP [éventuellement en en créant un] et à la fin ça parle de cours PIC ou, pire, Arduino ... |
C'est que l'auteur il part de loin
L'assembleur sur PIC a l' avantage d'être largement documenté et permettra de comprendre les notions de registre, de mémoire, de bus de transmission, etc. Après pourquoi pas attaquer directement le X86 hein, mais je suis pas convaincu de l'efficacité
Marsh Posté le 22-07-2016 à 18:50:25
Je vais me clarifier comme le dit TotalRecall , j'ai lu tout les commentaires et j'ai bien compris que fabriquer un processeur c'est super compliqué et de plus c'est chers, j'ai vu le mega processeur et bon voià quoi ! On me dit de partir sur de l'assembleur pour comprendre l'architecture du processeur et son fonctionnement pour apprendre, ce que je conçois totalement. Mais d'où partir réellement avec ce type de machine ? et où s'orienter ?
En effet je pars de loin , mais l'aventure ne me fait pas peur et j'aime les défis d'apprentissage informatique
Marsh Posté le 22-07-2016 à 18:50:56
rat de combat a écrit : Tu parles de compilateur, ça c'est pour le language C. Si tu veux comprendre comment fonctionne vraiment le processeur vaut mieux passer par l'assembleur (ce que de toute façon je conseille pour le début). Pour les PIC je ne peux pas en dire plus, moi c'est AVR... |
Oui je sais je me suis trompé dans ce que je voulais dire ^^
Marsh Posté le 22-07-2016 à 18:51:47
TotalRecall a écrit : Justement voilà un |
Je viens de voir et c'est tout simplement génial ! soucis , le coût ... le mec à depensé beaucoup pour rien ... mais c'est ludique et pédagogique ce qu'il fait merci du lien
Marsh Posté le 22-07-2016 à 20:07:36
math3006 a écrit : |
Je pars pas de loin ! je me renseigne , nuance et merci pour tout ceux qui me répondent je trouve ca cool
Marsh Posté le 12-08-2016 à 21:33:02
Si tu avances et a besoin d'aide, je connais pas mal le NIOS II d'altera.
Pour t'aiguiller un peu dans un processeur il y a plusieurs gros blocs, tu peux ne vouloir te concentrer que sur l'un d'entre eux en fonction de tes motivations:
- Le coeur en lui même qui contient entre autre les systèmes de récupération/décodage d'instructions, les registres de données et status. Il peut également contenir un gestionnaire mémoire MMU/MPU et un gestionnaire de cache.
- L' ALU qui permet de réaliser les opérations logiques et arithmétiques. Certaines sont triviales et d'autres sont horriblement compliquées.
- Le bus (il peut y en avoir plusieurs) qui permet au coeur de communiquer avec ses périphérique (autre que la cache).
- Les périphériques (ou IP), dont un le plus souvent indispensable: le contrôleur mémoire.
Marsh Posté le 20-09-2016 à 16:50:47
Sujet intéressant !
Pour ma part je me suis toujours demandé quel modèle de processeur était implémenté dans les calculatrices basiques (opérations de base), et celles scientifiques (genre ti-30).
un µC, ou un µP du genre Intel 4004 ?
Comment sont implémentées les fonctions évoluées genre sin, cos, tan, etc... ? Par des fonctions implémentées en rom ?
Marsh Posté le 20-09-2016 à 22:55:06
jcop a écrit : Sujet intéressant ! |
Dans les calculatrices scientifiques, on trouve généralement des µP 8 bits, comme le Zilog Z80 chez TI. Assez similaire au 8086. Sur les calculatrices plus avancées (formelles), ça va être du 32 bits type Motorola 68000 (toujours chez TI).
Dans les calculatrices de base (type ENAC), c'est généralement du 8 bits aussi, cadencé moins vite, avec moins de mémoire, etc.
Pour les calculs trigo, ceci devrait t'intéresser, même si ça devient un peu désuet hors applications spécifiques.
Marsh Posté le 20-09-2016 à 23:38:54
Ce sont des procs pour calculatrices graphiques (Ti-85, Ti-89), j'ai même fait un peu d'assembleur dessus !
Mais qu'en est-il des calculatrices plus basiques (celles qui font le strict minimum), et des Ti-30 like ?
Marsh Posté le 21-09-2016 à 04:58:30
Les calculatrices basiques c'est des chips dédiés à la con, genre :
http://www.emc.com.tw/eng/database [...] CD081A.pdf
Les TI-30 étaient en TMC0981 (selon Wikipedia), les suivantes embarquent des dérivés du même chip. Evidemment, pas de datasheet.
Je sais que certaines utilisaient des procos 1 bit (les fameuses HP35 par exemple, conçu sur commande par Mostek à priori). Je ne sais pas si ça se fait encore.
Marsh Posté le 21-09-2016 à 14:57:40
Reply
Marsh Posté le 17-07-2016 à 14:17:08
Bonjour à tous et à toute !
Je vous parle ce jour ci pour poser une question assez délicate. Comment faire un µprocesseur maison ?
Je vous pose cette question car je m’intéresse beaucoup à l'informatique , je suis "débutant" et je veux élargir mes connaissances, c'est pour cela que j'aimerai donc créer un processeur maison pour apprendre son fonctionnement et les composants qui le permet de fonctionner. Je sais évidement que je vais pas faire un Xeon 12 cœurs mais un tout petit petit pour comprendre.
Cordialement
---------------
Mes ventes / Mes achats : https://forum.hardware.fr/hfr/Achat [...] #t23988532