Se connecter

Informatique

Programmation

Sujet : Construire un proc Arduino ?
2
godrik
Niveau 23
06 octobre 2015 à 00:50:33

Le 05 octobre 2015 à 19:12:57 pierre135b a écrit :
Bah imaginons que PC (Program counter) pointe vers la "cellule" 12000 de la ram, c'est une instruction qui veux copier la valeur de la cellule 26890 à la cellule 26988 mais que les 2 valeurs des cellules sources et cibles soient contenues dans PC+1 et PC+2 donc les cellules 12001 et 12002 :hap:

Souvent il n'y a pas d'operation "copy", tu as load et store. Et tu encode dans l'instruction load le registre qui contient l'adresse du load et le registre qui va etre remplit par le load.
Pareil pour store.

Pour les pipelines. Oui c'est complique ce truc. Et il y a 50 facons differente de regle le probleme des stall. Typiquement, la prediction est utilise. Aussi tu peux reordoner les instruction dans certains cas. Aussi, tu peux faire du multi-threading, ...

pierre135b
Niveau 10
06 octobre 2015 à 13:00:03

Ok, mais si un opcode demande une adresse mémoire qui est dans la cellule mémoire?
Pour les stalls je pense faire une premiere version sans pipeline, question de simplicitée :p

godrik
Niveau 23
06 octobre 2015 à 16:46:30

Je ne comprends pas ta question. Regarde cette instruction la: http://chortle.ccsu.edu/assemblytutorial/Chapter-15/ass15_7.html
L'instruction contient. l'adresse, le registre de destination et le registre d'offset.

pierre135b
Niveau 10
06 octobre 2015 à 17:42:45

Nan ce que je veux dire, c'est si j'ai une instruction avec un argument qui est stocké dans la "cellule" d'apres (la cellule d'apres dans la mémoire) je le récupère comment (l'adresse) ?

godrik
Niveau 23
06 octobre 2015 à 17:55:01

quand tu lis l'instruction, tu lis TOUTE l'instruction. Si c'est une instruction sur 4 bytes, alors tu lis 4 bytes. Si c'est une instructino sur 18 bytes, alors tu lis 18 bytes...

pierre135b
Niveau 10
06 octobre 2015 à 17:57:01

Comment je reconnais alors que mon instruction est sur x bytes ?
Imaginons sur une mémoire 64 bits (64 bits d'adresse possible), je pourrais avoir alors un bus de 128 bits entre le décodeur et la ram ? (si je dois stocker l'instr+reg+adresse?)

godrik
Niveau 23
06 octobre 2015 à 22:21:15

Comment je reconnais alors que mon instruction est sur x bytes ?

Ca depend de ton assembleur. Les processeurs RISC fixent la taille des instructions pour que ca doit plus simple. Les processeurs CISC font chier le monde avec des instructions a taille variables.

Imaginons sur une mémoire 64 bits (64 bits d'adresse possible), je pourrais avoir alors un bus de 128 bits entre le décodeur et la ram ? (si je dois stocker l'instr+reg+adresse?)

c'est possible.

pierre135b
Niveau 10
07 octobre 2015 à 07:53:41

Oui donc le décodeur peut dire à la ram de lui envoyer X bytes apres le PC ?
Pour construire le décodeur et le registre, y'a des schéma (avec porte logique)?

godrik
Niveau 23
07 octobre 2015 à 15:36:44

par exemple.
Le decodeur depends completement de ton assembleur.

Pour les registres les mots cles sont flip-flop et D-latches

pierre135b
Niveau 10
07 octobre 2015 à 16:02:04

Oui j'ai vu cela, je pense avoir quasi toutes les cartes en main désormais,sauf la ram, je seche la dessus :'), me reste plus qu'a le faire sur minecraf puis dans un logiciel spécial ^^

godrik
Niveau 23
07 octobre 2015 à 17:06:13

La ram est un composant completement different. Tu as typiquement un composant "ram" dans les simulateur de circuit.

pierre135b
Niveau 10
08 octobre 2015 à 21:28:37

J'ai créé un registre dans minecraft xD
Mais enfait, il ne possede pas d'horloge, juste le I/O et reset, c'est pas grave ? (car je ne voyais pas d'utiité à une horloge en fait)

godrik
Niveau 23
09 octobre 2015 à 00:27:50

de memoire, tu n'as pas besoin d'horloge pour faire un registre.

2
Sujet : Construire un proc Arduino ?
   Retour haut de page
Consulter la version web de cette page