From 19d450830f848c9d88d61c381c3bafde560f78bb Mon Sep 17 00:00:00 2001 From: Alex AUVOLAT Date: Thu, 19 Dec 2013 18:30:45 +0100 Subject: Suggestion de plan pour un micro-RISC 16 bit moisi (mais rigolo). --- .gitignore | 8 +-- plan_micro.pdf | Bin 0 -> 66252 bytes plan_micro.tm | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 215 insertions(+), 4 deletions(-) create mode 100644 plan_micro.pdf create mode 100644 plan_micro.tm diff --git a/.gitignore b/.gitignore index 2a4dcc9..119a01b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,9 @@ */*.byte csim/csim *.o -tests/*.net -tests/*.snet -tests/*.dumb -rapport_simulateur.ps +*.ps +*/*.net +*/*.snet +*/*.dumb rapport_simulateur.pdf *.tm~ diff --git a/plan_micro.pdf b/plan_micro.pdf new file mode 100644 index 0000000..11d463f Binary files /dev/null and b/plan_micro.pdf differ diff --git a/plan_micro.tm b/plan_micro.tm new file mode 100644 index 0000000..0de25ba --- /dev/null +++ b/plan_micro.tm @@ -0,0 +1,211 @@ + + + + +<\body> + > + + Nous proposons ici une spécification pour un processeur minimaliste 16 bit + RISC. + + + + La machine dispose de 8 registres \S généraux \T : + + \; + + <\itemize> + 0. Registre ou zéro (valant tout le temps 0...) + + 1. Registre + + 2. Registre + + 3. Registre + + 4. Registre + + 5. Registre , écrit par certaines instructions + (multiplication, division...) et utilisé préférentiellement comme + registre temporaire pour certaines instructions composées + + 6. Registre , ou (return adresse), écrit + par l'instruction + + 7. Registre , ou (stack pointer), utilisé + par les instructions et + + + De plus, le processeur dispose d'un registre non manipulable, le registre + (program counter). + + Les numéros de registres sont donc codés sur 3 bits. + + + + La mémoire est adressée sur 16 bits, il y a donc 64ko disponnibles. + + Différentes zones de mémoire sont à définir (ROM, RAM, MMIO) + + + + Les instructions sont codées sur 16 bits. + + + + ||||||>|>|>|>>>>>> + + >|||||||||>|>|>|>>|>>|>>>>> + + >||||||>|>|>|>>>>> + + ||||||||>|>|>|>>|>>>>> + + >||||||>|>|>>>>> + + + + Certain noms d'instuctions sont en , il s'agit de signifier + qu'il s'agit d'un alias (optionnel) pour une autre instruction. + + |>>|>|>>|>|>|>>|||||R+R>>|>|||||R-R>>|>|||||lo\R|)>>>|>|||||hi\R|)>> + si R>>|>|||||q,R|)>>>|>|||||r,R|)>> + si R>>|>||||||>||||||>||||||>||||||>|||||\R|)>>>|>|||||\R|)>>>|>|||||\R|)>>>|>|||||not + \R|)>>>|>|||||\R|)>>>|>||||>||>|||||\R|)>> + (logical)>|>|||||\R|)>> + (arith)>|>||||>||>||||>||>|||||=R?1:0|)>>>|>|||||\R?1:0|)>>>|>|||||\\R?1:0|)>>>|>|||||\R?1:0|)>>>|>|||||\\R?1:0|)>>>|>|||||\R?1:0|)>>>|>|||||>>| + signé>>|||||d|)>>>| + signé>>|||||PC+d>>|>||||| + ; PC\PC+d>>|>||>|||R>>|>||>||| + ; PC\R>>|>|||||=R> then R>>|>|||||\R> then R>>|>|||||\R> then R>>|>|||||\R> then + R>>|>|||||\R> then R>>|>|||||\R> then + R>>|>||||||>||||||>||||||>||||||>|||||mem+d|)>> + (16 bits)>|>|||||+d|)>\R> + (16 bits)>|>|||||mem+d|)>> + (8 bits)>|>|||||+d|)>\R> + (8 bits)>|>|||||mem+R|)>> + (16 bits)>|>|||||+R|)>\R> + (16 bits)>|>|||||mem+R|)>> + (8 bits)>|>|||||+R|)>\R> + (8 bits)>|>|||||\d>>|>|||||\d + ; R\0>>|>|||||\d>>|>|||||\d + ; R\0>>|>||||||>||||||>||||||>||||>||>>>>|Instructions + reconnues par le microproceseur> + + |>|>|>>|>|G-2 ;mem\R + >>|>>|||>, >>|>|mem ; + G\G+2>>|, >>|||, 2>>|>>|R>>|, >, >>||R+d>>|>|>>|not + R>>|,Z>>>|, + addr>| then addr>>|>|||>|, addr>|0> then + addr>>|>|||>>>>|Instructions + supplémentaires (produites par l'assembleur)>\ + + +<\initial> + <\collection> + + + + +<\references> + <\collection> + > + > + > + > + > + > + > + > + > + > + > + > + + + +<\auxiliary> + <\collection> + <\associate|table> + > + + > + + <\associate|toc> + |math-font-series||Registres> + |.>>>>|> + + + |math-font-series||Mémoire> + |.>>>>|> + + + |math-font-series||Jeu + d'instruction> |.>>>>|> + + + |Types d'instructions + |.>>>>|> + > + + |Format de base + |.>>>>|> + > + + |Format |R> + |.>>>>|> + > + + |Format |I> + |.>>>>|> + > + + |Format K + |.>>>>|> + > + + |Format |J> + |.>>>>|> + > + + |math-font-series||Tableau + d'instructions> |.>>>>|> + + + + \ No newline at end of file -- cgit v1.2.3