MIC-1

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

MIC-1 este o arhitectură de procesor inventată de Tanenbaum pentru a fi utilizată ca un exemplu simplu, dar cuprinzător pentru cartea sa de Arhitectură de calculatoare .

Se compune dintr-o unitate de control foarte simplă care execută microcod din memoria de 512 cuvinte . Micro-Limbaj de asamblare (MAL) [1] este proiectat pentru a vă permite să scrie cu ușurință un IJVM (Integer Java Virtual Machine) interpret [2] .

Hardware

Mic-1.jpg

Calea datelor

Calea datelor este inima Mic-1. Acesta conține registrele de 32 de biți specificate mai sus, autobuzele de legătură și ALU .

AUTOBUZ

Există două autobuze de 32 de linii fiecare:

  • Autobuzul B: conectat la ieșirea registrului și la intrarea ALU
  • Autobuzul C: conectat la ieșirea schimbătorului și la intrarea de registru

Registrele

Registrele sunt selectate de două linii de control, una pentru a activa autobuzul B și cealaltă pentru a activa autobuzul C. Autobuzul B poate fi activat doar de un registru la un moment dat, deoarece transferul de date de către doi registri în același timp ar duce la incoerență date. Autobuzul C, pe de altă parte, poate fi activat de mai multe registre în același timp; aceeași valoare prezentă în ea poate fi de fapt scrisă fără probleme pe mai multe registre.

Operațiile de citire și scriere sunt efectuate într-un singur ciclu de ceas.

Deși registrul MBR este doar în citire, are două linii de control. Fiind un registru pe 8 biți, ieșirea sa este conectată la liniile cel mai puțin semnificative ale magistralei B. Poate fi setată să furnizeze ieșirea în două moduri:

  • Complementul doi (MBR): restul de 24 de biți ai magistralei sunt setați la 1 dacă este un număr negativ sau la 0 dacă este un număr pozitiv (extensia semnului)
  • Fără complement (MBRU): restul de 24 de biți ai magistralei sunt setați la 0.

ALU

ALU are următoarele linii de intrare / ieșire / control:

  • 2 linii de intrare pe 32 de biți pentru magistrala B și pentru magistrala care o conectează direct la înregistrarea H
  • 1 linie de ieșire pe 32 de biți conectată direct la schimbător
  • 6 linii de control pentru selectarea operațiunilor
  • 2 linii de ieșire pentru steagurile de stare N (negativ) și Z (zero)

ALU conține 32 de circuite combinaționale. Fiecare circuit combinator este capabil să execute instrucțiuni logice AND, SAU și NU și instrucțiuni aritmetice de adăugare.

Schimbator

Schimbatorul are o intrare și o ieșire pe 32 de biți. Ieșirea este conectată direct la magistrala C. Este utilizată pentru a efectua operații de deplasare logică și aritmetică prin simpla setare a celor două semnale de control SLL8 (Shift Left Logical sau Left scroll Scrolling) și SRA1 (Shift Right Arithmetic arithmetic sau glisare în dreapta ). Funcționarea acestuia poate fi, de asemenea, transparentă prin transferul semnalului la ieșire fără a efectua nicio operațiune.

RAM

RAM- ul Mic-1 este un RAM orientat pe octeți. Este alcătuit din cuvinte de 4 celule, fiecare celulă este formată din 8 biți. Are 3 semnale de control, respectiv pentru a activa funcțiile de citire, scriere și preluare. Cu operațiile de citire și scriere mergeți să citiți și să scrieți cuvinte întregi (4 celule) în loc cu Fetch puteți citi celulele unice (8 biți).

Reprezentare schematică:

Cuvânt Celula Celula Celula Celula
0 0 1 2 3
1 4 5 6 7
2 8 9 10 11
3 12 13 14 15
... ... ... ... ...

Exemplu de adresare:

  • cuvântul 2 are adresa 8
  • cuvântul 3 are adresa 12
  • celula 2 are adresa 2

Mic-1 înregistrează

Mic-1 are următoarele registre:

Inregistreaza-te Citind Scris Citeste, scrie 32 de biți 8 biți
MAR
MDR
PC
MBR
MBRU
SP
LV
TOS
CPP
OPC
H.

Toate registrele, cu excepția MBRU, pot conține numere întregi reprezentabile în completarea a două . Registrul MBRU poate conține numai numere întregi non-negative pe 8 biți.

  • MAR: acest registru conține adrese de memorie și este conectat la magistrala de adrese RAM deplasată cu 2 linii pentru a-și multiplica valoarea cu 4. Această multiplicare este necesară deoarece RAM este o memorie orientată pe octeți și, prin urmare, adresa fiecărui cuvânt este specificată de adresa primului său octet (sau a primei sale celule).
  • MDR: acest registru este conectat direct la magistrala de date a RAM-ului
  • PC: la fel ca MAR este conectat la magistrala de adrese RAM, dar fără nici o deplasare a liniilor sale. De fapt, cu un PC este posibil să se adreseze celulelor de memorie individuale.

Limbaj de micro-asamblare

Un program scris în MAL (limbaj de micro-asamblare) poate fi considerat ca o simplă secvență de instrucțiuni, deoarece nu este posibil să se reprezinte concepte sintactice mai complexe, cum ar fi bloc, procedură sau metodă.

Semantică

O instrucțiune poate avea următoarea formă:

<Istruzione> ::= [<Etichetta>] [<Assegnamento>;][<Lettura/scrittura>;][<Salto>]

Fiecare parte este opțională, deoarece este posibil să aveți instrucțiuni goale.

<Etichetta> ::= Qualsiasi carattere alfanumerico
<Assegnamento> ::= Var 1 = Var 2 = ... = Var i = <exp>[<shift>]

Se pot efectua atribuții multiple, iar variabilele Var i trebuie să fie variabile de scriere.

<Var i > ::= MDR|LV|MAR|...
<exp> ::=
<shift> ::= >1|<<8

Deplasarea poate fi de tip aritmetic la dreapta de 1 bit (pentru a efectua împărțirea cu 2 de exemplu) sau de tip logic la stânga de 8 biți. register_std-logic _vector

Notă

Elemente conexe

linkuri externe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT