Ce este AM2901?
Pagini: 1, 2


pisicutza


Salut.
Asa cum spune si titlul...este AM2901 un microprocesor sau un microcontroler. Stiu ca poate intrebarea este stupida, dar chiar nu stiu exact. Prin definitie, un microcontroler stiu ca trebuie sa includa anumite elemente cum ar fi o unitate de intrare-iesire, convertor AD. Eu am o schema bloc a lui AM2901, si cred eu ca este destul de detaliata, dar nu vad acolo nimic de genul asta.
Atasez si schema bloc in format .doc

Click pentru a vizualiza atașamentul

Multumesc pentru raspunsuri.

LE: Pe internet, el apare cam peste tot ca fiind microprocesor, dar indrumatorul meu pentru proiect, imi spune ca este microcontroler. Omul spune ca, intrucat are un circuit de memorie, nu mai poate fi numit doar microprocesor.
Nu ma pricep foarte bine...unitatea ALU poate sa-si faca treaba, folosind doar registrii sau are nevoie si de memoria RAM. Ca ma gandesc ca daca n-ar avea nevoie de RAM, atunci ar putea fi numit si microcontroler.
SuperDuper
Definitia unui microcontroller:
http://en.wikipedia.org/wiki/Microcontroller
Pe scurt, este un computer-pe-un-cip. Daca are microprocesor, unitate i/o, memorie RAM unde sa execute codul si eventual memorie flash unde sa stocheze codul, este microcontroler.
Restul sunt bonusuri (convertoare D/A, A/D, etc).
 
pisicutza
Am inteles. Ai vazut schema bloc? Eu nu reusesc sa vad acolo o unitate I/O. Din ce am reusit sa inteleg din acea schema, trag concluzia ca nu iese nimic afara huh.gif , doar intra..din toate partile. Exista posibilitatea ca aceasta schema sa nu fie completa?
Vad ca are o unitate ALU, una RAM, una cu registri si cam atat. Oare de ce indrumatorul meu, imi spune ca e microcontroler?
pisicutza
Nu mai spune nimeni nimic?
edy_wheazel
QUOTE (pisicutza @ Jan 16 2008, 17:47) *
Nu mai spune nimeni nimic?


AM2901 este microprocesor nu microcontroller. RAM-ul prezent nu il face microcontroller, de exemplu 8031 nu are RAM deloc.
De asemenea nu are nici un port, nu are decat linii acces date si adrese, plus semnale de control. Deci sigur AM2901 este microprocesor, nu are absolut nici un periferic... Daca mai ai nelamuriri....
pisicutza
Te cred..ca asa ma gandeam si eu...mai ramane sa-l lamuresc pe indrumatorul meu de proiect bash.gif
pisicutza
Am intrat pe wikipedia, si...stupoare. In schema bloc de la definitia microprocesorului, apare bloc de I/O, pe langa CPU si memorie. Acum...eu ma gandesc ca orice microprocesor comunica intr-un fel sau altul cu lumea exteriora.
Edy...ce trebuie sa mai pun la AM2901-ul asta, sa-l transform in microcontroler? Cumva o comunicatie seriala sau paralela care sa iasa afara?
 
edy_wheazel

Din pacate nu sunt acasa si aici nu pot sa deschid documentul din primul link. Bloc I/O este necesar, CPU trebuie accesat pe linii de date si adrese. Ca sa il faci microcontroller trebuie sa ii mai pui memorie EEPROM, ceva memorie RAM, buffere pt. porturi (sa nu le prajeti). Cu portul serial te cam complici.

De ce vrei sa-l faci microcontroller? Care este aplicatia? Ii foarte slabut, este pe 4 biti si nu stie decat 8 operatii...
mister_rf
Pentru ca AM2901 este gandit ca un procesor ''BIT SLICE'', care sa face parte dintr-o structura expandabila trebuie sa-i cauti elementele aditionale necesare interconectarii in familia de circuite Am2900:


QUOTE
Am2901 ? 4-bit-slice ALU (1975)
Am2902 ? Look-Ahead Carry Generator
Am2903 ? 4-bit-slice ALU, with hardware multiply
Am2904 ? Status and Shift Control Unit
Am2905 ? Bus Transceiver
Am2906 ? Bus Transceiver with Parity
Am2907 ? Bus Transceiver with Parity
Am2908 ? Bus Transceiver with Parity
Am2909 ? 4-bit-slice address sequencer
Am2910 ? 12-bit address sequencer
Am2911 ? 4-bit-slice address sequencer
Am2912 ? Bus Transceiver
Am2913 ? Priority Interrupt Expander
Am2914 ? Priority Interrupt Controller
Am2915 ? Quad 3-State Bus Transceiver
Am2916 ? Quad 3-State Bus Transceiver
Am2917 ? Quad 3-State Bus Transceiver
Am2918 ? Instruction Register, Quad D Register
Am2919 ? Instruction Register, Quad Register
Am2920 ? Octal D-Type Flip-Flop
Am2921 ? 1-to-8 Decoder
Am2922 ? 8-Input Multiplexer (MUX)
Am2923 ? 8-Input MUX
Am2924 ? 3-Line to 8-Line Decoder
Am2925 ? System Clock Generator and Driver
Am2926 ? Schottky 3-State Quad Bus Driver
Am2927/Am2928 ? Quad 3-State Bus Transceiver
Am2929 ? Schottky 3-State Quad Bus Driver
Am2930 ? Main Memory Program Control
Am2932 ? Main Memory Program Control
Am2940 ? Direct Memory Addressing (DMA) Generator
Am2942 ? Programmable Timer/Counter/DMA Generator
Am2946/Am2947 ? Octal 3-State Bidirectional Bus Transceiver
Am2948/Am2949 ? Octal 3-State Bidirectional Bus Transceiver
Am2950/Am2951 ? 8-bit Bidirectional I/O Ports
Am2954/Am2955 ? Octal Registers
Am2956/Am2957 ? Octal Latches
Am2958/Am2959 ? Octal Buffers/Line Drivers/Line Receivers
Am2960 ? Cascadable 16-Bit Error Detection and Correction Unit
Am2961/Am2962 ? 4-Bit Error Correction Multiple Buss Buffers
Am2964 ? Dynamic Memory Controller
Am2965/Am2966 ? Octal Dynamic Memory Driver, Image


exemplu de utilizare



QUOTE
The mapping PROM decodes the op code and supplies an address out on tristate lines to the microprogram sequencer, an Am2910.

The Am2910 supplies the microprogram address to be fetched to the microprogram memory and supplies, in this case, output enables to the mapping PROM and the pipeline register. The Am2910 receives

a 4-bit instruction out of the pipeline register
an address into its Di inputs (the source of the address selected by the decode of the instruction received)
a condition code input on the CC'' line
The CC'' line is connected to a condition code MUX, an Am2922 in this case, which is a registered MUX -- i.e., it latches the slection code sent to it and therefore is not connected to a pipeline register. It also has polarity control. The CC'' line is attached to the CT output of the Am2904.

The pipeline register is sufficiently wide to contain all of the microinstruction fields in a horizontal format. In a typical system this can vary between 32 and 128 bits. The HEX-29, a generalized register architecture 16-bit CPU, has a 64-bit microword, with one field with overlay. The SUPER-16, aslo a 16-bit system, but with an instruction-fetch overlap and certain I/O features which allow it to have a machine instruction execute time of 200ns, has a 96-bit microword. [These systems existed in the 1970-1980s.]

The Am2904 is connected to the RALU status outputs and to the most significant and least significant RAM and Q outputs. It is connected to the system data bus so that the machine level status bits can be read from or written into the status register.

The ALU consists of four Am2901 RALUs and an Am2902 carry-lookahead chip. The DAi inputs are connected to the system data bus through a bus interface and are connected to the MAR register. The MAR register is connected to the system address bus. The A and B address lines are sourced either from the IR, for register instructions, or from the pipeline register, for implied register addressing, as selected by the microinstruction via the operand select MUX.


Toate aceste indicatii si detalii suplimentare le gasesti de exemplu aici
http://www10.edacafe.com/book/parse_book.p...CE/bitslcP.html
pisicutza


Edy...
Aplicatia este proiectul pentru licenta (m-am hotarat s-o dau..pana la urma). Tema se vrea a fi o implementare in VHDL a unui microcontroler pe 4 biti. Indrumatorul meu mi-a sugerat sa folosesc ca model, acest AM2901. Ce ma dat peste cap, este ca el sustine ca acesta este un microcontroler, desi nu este. Ok, am lamurit-o si pe asta.
Pot renunta la a mai face un microcontroler..nu-i asta o problema. Desi era interesant de descris in VHDL o structura ceva mai complexa, bazata pe familia 2900, asa cum a aratat mister_rf. Ideea este ca nu am timp pentru asta, intrucat vreau sa dau licenta acum, in februarie.
Acum am o alta rugaminte...stiti cumva ceva site-uri cu documentatie despre cum functioneaza microprocesoarelele? Chestii legate de memorie, registrii, instructiuni, biti, etc. In facultate am tot invatat despre 8086. Ca si functionare si structura interna, AM2901 seamana cu acest 8086? Stiu ca poate pentru unii dintre voi acestea sunt banalitati, dar eu chiar sunt in aer.
Multumesc.
pisicutza
Nimeni, nimic? Edy?
bobyca2003
QUOTE (pisicutza @ Jan 20 2008, 17:02) *
Edy...
Aplicatia este proiectul pentru licenta (m-am hotarat s-o dau..pana la urma). Tema se vrea a fi o implementare in VHDL a unui microcontroler pe 4 biti. Indrumatorul meu mi-a sugerat sa folosesc ca model, acest AM2901. Ce ma dat peste cap, este ca el sustine ca acesta este un microcontroler, desi nu este. Ok, am lamurit-o si pe asta.
Pot renunta la a mai face un microcontroler..nu-i asta o problema. Desi era interesant de descris in VHDL o structura ceva mai complexa, bazata pe familia 2900, asa cum a aratat mister_rf. Ideea este ca nu am timp pentru asta, intrucat vreau sa dau licenta acum, in februarie.
Acum am o alta rugaminte...stiti cumva ceva site-uri cu documentatie despre cum functioneaza microprocesoarelele? Chestii legate de memorie, registrii, instructiuni, biti, etc. In facultate am tot invatat despre 8086. Ca si functionare si structura interna, AM2901 seamana cu acest 8086? Stiu ca poate pentru unii dintre voi acestea sunt banalitati, dar eu chiar sunt in aer.
Multumesc.

Aceasta intrebare "cum functioneaza microprocesoarele" nu prea e o banalitate,si cred ca 90% dintre noi nu stiu un raspuns sigur.
Inclusiv eu care m-am mai jucat cu microcontrolere si asm-ul!
Ce inseamna VHDL?
Chestia ca un procesor nu are porturi,nu stiu cat e de reala,fiecare procesor culege date ,le proceseaza si le pune la iesire.
Fiecare procesor are propriile instructiuni,vezi procesoarele ARM din telefoanele mobile,seria 8086 din pc-uri,chiar microcontrolerele sunt de mai multe categorii,cele mai generale sunt cele din categoria picurilor care au set diferit de instructiuni fata de cele din categoria avr la fel de populare.
Daca spui ca stii arhitectura unui 8086... din experienta mea i-ti zic ... toate au acelasi principiu:
Registri,stiva,... etc
Instructiunile jmp si call le gasesti (din ce am vazut pana acum) la orice procesor,bineinteles ca nu cu acelasi cod sau acelasi nume, dar functionarea e identica... de ex call >> pune adresa actuala in stiva,sare la adresa specificata(contorul de program se incarca cu adresa actuala) ,iar la primul ret intalnit(sfarsit de subrutina),contorul de program se incarca cu valoarea din stiva (revine la adresa initiala)... ma rog...pune in stiva adresa+nr biti instructiune curenta... cine stie... stie ce spun
edy_wheazel
Problema nu este atat de complicata pe cat pare. Incerc sa adun materiale dar din pacate timpul nu imi permite. Problema in cazul meu este ca nu ma pricep la VHDL.
VHDL este un limbaj de programare pe care eu l-am intalnit in programarea FPGA-urilor de la firma Xilinx (seria Spartan). FPGA=Field Programming Gate Area, adica circuite programabile care contin porti logice, pe care pe baza unui program (in VHDL sau chiar schematic) le implementezi in chip-ul respectiv. Diferenta fata de microcontrollere consta in libertatea de programare (in cazul FPGA-urilor poti chiar sa implementezi un uC, la uC ai niste instructiuni clare pe care le poti implementa, pe baza lor poti generand programul dorit), viteza de lucru (concureaza cu DSP-urile), pretul mai ridicat decat la uC, etc.... De exemplu, un link de implementare VHDL al unui uC 8051: http://www.cs.ucr.edu/~dalton/i8051/i8051syn/

La 8086 problema este mai complexa, nu este chiar asa uzual, si cum s-a discutat si mai sus, nu are periferice, timer, etc... (este microprocesor nu microcontroller). Implementarea lui, sau proiecte cu el sunt greoaie...
pisicutza
Mai am niste intrebari. M-am gandit sa nu mai deschid topic nou. Am intalnit ceva notiuni de care ma incurc pentru ca nu prea stiu la ce se refera...am mai citit eu pe net, dar nu sunt lamurit total.
La ce se refera shifter-ul in cadrul unei memorii RAM? Ce face exact acest shifter? M-am lovit de notiunile shift-up, shift-down, shift-in, shift-out.
De ce este nevoie sa se urmareasca conditia de carry si overflow la rezultatul unei unitati ALU?
La ce se refera ideea de "generate" si "propagate"?
Ce inseamna iesire de tip three-state?

Multumesc pentru raspunsuri.
mister_rf
La ce se refera shifter-ul in cadrul unei memorii RAM?
Ce face exact acest shifter? M-am lovit de notiunile shift-up, shift-down, shift-in, shift-out.

Shift- deplasare, transfer
deplasare/transfer in sus, jos, etc.
Cum discutam despre procesoare ''bit-slice'', adica despre ''procesoare ce opereaza cu felii'' din operandul initial, este cazul ca acestea sa primeasca bucatile necesare de date si sa le combine la iesire pentru a forma rezultatul.
Notiunile de deplasare a datelor si adreselor in interiorul memoriei si a unitatilor de procesare sunt combinate in aceste expresii de tip shift


De ce este nevoie sa se urmareasca conditia de carry si overflow la rezultatul unei unitati ALU?
- pentru a sti daca rezultatul genereaza depasire sau cere imprumut in cazul operatiilor de adunare, scadere, etc.
Este necesar deoarece se lucreaza cu un anumit numar de biti si rezultatul depaseste acest numar...


La ce se refera ideea de "generate" si "propagate"?

Cuvintele sunt scoase din context.
A genera si a propaga.
Explicatii corecte se pot da numai citand si pasajul ce contine cuvantul respectiv.



Ce inseamna iesire de tip three-state?
-Nivelele logice normale de iesire sunt 0 si 1, dar exista posibilitatea ca printr-o comanda interna sa se poata trece iesirea intr-o stare de impedanta ridicata -''3-state'', ceea ce este echivalent electric cu deconectarea iesirii. Se foloseste acolo unde se doreste cuplarea mai multor iesiri in paralel, de exemplu la multiplexoare sau bus-uri ce trebuiesc comandate pe rand de circuite separate.
SuperDuper
Functiile de "shift" se refera la mutarea bitilor in interiorul unei locatii de memorie (cuvant) la stanga sau la dreapta. Mutarea intre 2 locatii se cheama altfel.
La ce este bun? Pai la inmultiri si impartiri. Mutarea cu o locatie la stanga insemna inmultire cu 2 iar la dreapta impartire cu 2. Cu numere impare se mai aduna odata la final primul termen...
Paul_l
Pot sa dau si eu un raspuns la intrebarea initiala? AM 2901 nu e nici microprocesor nici microcontroler. De fapt este o bucata de microprocesor . Din mai multe AM 2901 se poate realiza unitatea ALU a unui procesor plus citeva registre. Un AM 2901 contine o bucata de ALU pe 4 biti. Se pun mai multe pentru a se realiza ALU pe 8/16/32 biti .AM2901 se folosea in calculatoarele CORAL sau INDEPENDENT care se faceau acum multi ani la Fabrica de calculatoare.

AM2901 nu include memoria ROM de microprogram si nici unitatea de control. Acestea sunt strict necesare pentru un microprocesor minimal . Deci mai pe romaneste AM 2901 e o bucata de socotitoare


mister_rf
Si o scurta descriere a procesoarelor ''transate pe bit''

Click pentru a vizualiza atașamentul
Click pentru a vizualiza atașamentul

Explicatii la functionarea unitatii ALU de tip AM2901 se pot face prin comparatie cu o unitate ALU clasica.

Click pentru a vizualiza atașamentul

Click pentru a vizualiza atașamentul

http://www.ginfo.ro/revista/9_1/061.shtml

http://computer.howstuffworks.com/microprocessor2.htm


pisicutza
Va multumesc. Voi studia toate materialele transmise...inca un pic si vine si licenta, pe 13 wallbash.gif . Cu ocazia asta, ma bucur ca voi ramane cu ceva informatie.
pisicutza
Ati lucrat pana acum cu VHDL? Am o problema legata de o anumita eroare. Folosesc compilatorul WARP 6.3 si in momentul in care compilez un anumit fisier, imi da eroarea E429 adica..Could not find entity XXX for component XXX.

helpsmilie.gif
edy_wheazel
Nu ma pricep la VHDL, dar eroarea m-i se pare ca vrea sa-ti atraga atentia asupra faptului ca la componenta XXX nu ai asignat ceva (imi pare rau ca sunt asa vag).
pisicutza
Situatia e cam asa: am acest circuit..AM2901. RAM-ul si registrul Q au la baza registrii...16 pentru RAM si unul pentru Q. Ei sunt la fel..este standardizat. In VHDL..prima data se descrie acest registru (totul se face de la mic la mare). Acest registru tocmai descris, se include intr-o librarie. Se va face apel la ea, in momentul in care va fi nevoie, adica cand se vor descrie blocurile RAM si Q. Bun. Dupa ce se descriu toate blocurile, si ele la randul lor vor fi inglobate intr-o librarie care va folosi ultimului fisier, cel care decrie AM2901-ul ca intreg. Ideea este ca, compilatorul nu poate sa conecteze cumva libraria asta ultima. Cand spune ca nu poate gasi entitatea pentru o anumita componenta, se refera tocmai la blocurile respective. Si nu inteleg de ce. Codul nu este facut de mine ci este luat dintr-o carte. Am respectat tot ce scrie acolo sad.gif. Trebuie sa o lamuresc cumva pana maine...
pisicutza
Am reuuuusiiiiit!!!!!! band.gif

Va multumesc tuturor pentru ajutor. Mi-ati fost de foarte mare ajutor.
SuperDuper
Bafta la licenta, sa ne zici rezultatul smile.gif
Pagini: 1, 2
Aceasta este o versiune simplificată a paginii originale. Pentru a vizita versiunea originala click aici.