logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Co oznacza że mikrokontroler jest 8-mio bitowy?

piorys 19 Mar 2010 23:13 5874 18
REKLAMA
  • #1 7854490
    piorys
    Poziom 11  
    Witam,

    przepraszam pewnie za głupie i proste pytanie dla ludzi tutaj siedzących (niestety ja jestem laikiem w tej kwestii stąd moje pytanie) ale jak ktoś kiedyś powiedział, nie ma głupich pytań jedynie są głupie odpowiedzi.
    Licząc na wysoki poziom ludzi tutaj odwiedzających liczę na konkretną i merytoryczną odpowiedź na zadanie pytanie:

    "Co oznacza że mikrokontroler jest 8-mio bitowy ?? "

    z góry wielkie dzięki za pomoc.

    pozdrawiam,
    Piotrek.
  • REKLAMA
  • #2 7854520
    tadzik85
    Poziom 38  
    Oznacza to ze jego jednostka arytmetyczna operuje na danych 8 bitowych. Oraz wszystkie rejestry są 8-bitowe (istnieją większe lecz i tak składają się np z 2 8-bitowych).
  • REKLAMA
  • #3 7854814
    acid12
    Poziom 21  
    mikroprocesory można sklasyfikować patrząc na 'ilość bitów do której mają dostęp podczas jednej operacji' - np. avr ma 8-bitową magistrale danych oraz 16-bitową magistrale adresową więc jest mikroprocesorem 8-bitowym.
  • REKLAMA
  • #4 7855169
    marek_Łódź
    Poziom 36  
    Żeby bardziej zamieszać dodam, ze organizacja magistrali i jednostki centralnej może być różna. Przykładowo 16-bitowy procesor 8088 operował na 8-bitowej szynie danych przesyłając każdą daną 16-bitową w dwóch cyklach - oddzielnie bajt starszy i młodszy. Możliwa jest też sytuacja odwrotna - np. w Pentium rejestry mamy 32-bitowe, a magistrala RAM ma szerokość 64-bitów. W takich przypadkach istotnymi elementami są wewnętrzne zasoby procesora (rejestry, pamięć cache), które pozwalają zmniejszyć czasy transferu danych oraz optymalizacja oprogramowania pod tym kątem.

    Tak więc sama magistrala jeszcze nas nie informuje o architekturze jednostki centralnej.
  • #5 7855367
    tadzik85
    Poziom 38  
    Wasze wypowiedzi nie mają są ponad miarę. O bitowości procesora stanowi wyłącznie jednostka arytmetyczna. Reszta wynika jedynie ze sposobu implementacji konkretnego problemu.
    Więc procesor 8bitowy to ten z ALU operującej na danych 8-bitowych, 16-bitowy, ALU 16-bitowe itp itd.

    Proszę niedoświadczonemu koledze nie mieszać.
  • #6 7855395
    marek_Łódź
    Poziom 36  
    Dokładnie to napisałem w zdaniu mówiącym o tym, że zewnętrzna magistrala nie decyduje o organizacji procesora.
    Cytat:
    O bitowości procesora stanowi wyłącznie jednostka arytmetyczna.
    Też nie do końca, bo procesory 8-bitowe mogą mieć mechanizmy ALU 16-bitowe (np rejestry łączone w pary i operacje realizowane na takich parach).
    Można powiedzieć, dla dalszego zamieszania, że o długości słowa maszynowego danego procesora decyduje ważona średnia długości argumentu podstawowych rozkazów arytmetyczno-logicznych.
  • #7 7855636
    tadzik85
    Poziom 38  
    Przeczytaj mój 1 post. To, że są łączone w pary nie zależy od ALU a jedynie od sposobu implementacji odpowiednich operacji.
  • #8 7858048
    tmf
    VIP Zasłużony dla elektroda
    Nie wydaje mi sie, ze ALU tu decyduje. Wezmy takie AVRy, niby 8-bitowce, ale ALU ma tez pewne operacje 16-bitowe - dodawanie i odejmowanie stalej, inkrementacja, dekrementacja, mnozenie. Wiec jest mieszane, mimo, ze procesor jest stricte 8-bitowy. Poza tym czy rejestry X, Y i Z traktowac jako pary rejestrow, czy moze ich 8-bitowe czesci to tylko skladniki rejestru 16-bitowego? To nawet bardziej bylo widoczne w Z80, gdzie mielismy 16-bitowe rejestry HL, BC, DE IX, IY i dostep do ich 8-bitowych polowek. Procesor mimo to byl 8-bitowy. Zeby bardziej zamieszac to XMega jest juz przez producenta okreslana jako procesor 8/16 bitowy, bo czesc jest taka, a czesc taka. Takze podsumowywujac nie ma obecnie chyba jednoznacznej wykladni ilu bitowy jest procesor - ja bym powiedzial, ze tylu bitowy na ilu bitach operuje jednoczesnie w wiekszosci operacji. Z drugiej strony pytanie jest czysto akademickie.
  • #9 7858099
    Konto nie istnieje
    Poziom 1  
  • #10 7858172
    tmf
    VIP Zasłużony dla elektroda
    Teoria piekna, ale co np. z procesorami x86, gdzie operacje 8-bitowe byly dluzsze niz 16-bitowe? Pomijam dlaczego, bo to malo istotne. W nowszych procesorach czas trwania operacji praktycznie nie zalezy od operandu, a od innych rzeczy. Co z instrukcjami SIMD czy MIMD? Co z AVR, z wbudowanym FPU, w efekcie operacje 32-bitowe sa porownywalne do 8-bitowych? Mozemy sie opierac na wewnetrznych szynach danych i ich szerokosci, ale co jesli czesc szyn jest 8 bitowa, a czesc 16?
  • REKLAMA
  • #11 7858192
    Konto nie istnieje
    Poziom 1  
  • #12 7858521
    tadzik85
    Poziom 38  
    Akademicko i bitowości procesora stanowi ALU, a problem jednostki sterującej jest inną sprawą. Tak X,Y,Z rejestry SP i inne są 16-bitowe ale obsługa tego zajmuje się jednostka sterująca. Tak operacje mnożenia dają wynik 2x dłuższy, ale ponownie jest to wynikiem jednostki sterującej itp itd. Te rozważania nie maja sensu pod tym pytaniem bo wchodzimy już w architekturę konkretnego modelu procesora. Poza tym przy ALU nie chodzi o wynik a operand.
  • #13 7858630
    tmf
    VIP Zasłużony dla elektroda
    Nie do konca, o ile SP, czy PC jest sterowany przez jednostke sterujaca, to na pozostalych operuje ALU - tak wynika ze schematu blokowego AVR. Wiec skoro istnieja operacje arytmetyczne, ktorych operand jest 16-bitowy (ADIW, SBIW, pre i postinkrementacja rejestrow X, Y, Z, adresowanie z przesunieciem tych rejestrow) to ALU musi byc do tego dostosowane. Tu jeszcze mozna polemizowac, bo sa one dluzsze niz analogiczne operacje 8-bitowe, niemniej juz np. MOV i MOVW maja te same czasy wykonywania.
  • #14 7858668
    Konto nie istnieje
    Poziom 1  
  • #15 7858682
    tadzik85
    Poziom 38  
    Spójrz na listę rozkazów AVRów. Operacje arytmetyczne WSZYSTKIE maja 8-bitowe operacje. X,Y,Z są wykorzystywane do adresowania pośredniego. Więc nie zajmuje się nimi ALU lecz jednostka sterująca. Więc jak mówiłem bitowość procesora definiuje długość operandu ALU. Taka jest definicja. A inkrementalna również operuje na tylko je rejestrach 8-bitowych. Inkrementację X,Y lub Z jest automatyczne w niektórych instrukcjach i nie wykonuje jej ALU

    Dodano po 4 [minuty]:

    Atom więc tylko potwierdzasz moje słowa. Ale na schemacie nigdzie nie widzę mnożarki
  • #16 7858706
    tmf
    VIP Zasłużony dla elektroda
    Wszystkie? Nie zauwazyles, ze wspomniane ADIW i SBIW maja dwa operandy - 16-bitowy rejestr (pare) i drugi operand 6-bitowy.
    Co do X, Y, Z to trudno powiedziec, pre- i post- inkrementacja/dekrementacja moze byc realizowana zarowno przez ALU, jak i przez inna wyspecjalizowana jednostke. Za pierwszym przemawia oszczednosc miejsca (nie trzeba dublowac struktur ALU), za drugim byc moze predkosc.
  • #17 7858718
    tadzik85
    Poziom 38  
    Cytat:
    Wszystkie? Nie zauwazyles, ze wspomniane ADIW i SBIW maja dwa operandy - 16-bitowy rejestr
    Ale te instrukcja i tak rozpisana jest na młodszą i starszą część, co oznacza, że ALU i tak operuje na operandzie 8-bitowym, lecz ta instrukcja zrealizowana jest w jednostce sterującej. Poza tym 2 operand nie jest 6-bitowy tylko jest stałą. To inna historia. A to czy do inkrementacji wykorzystane jest drugie ALU i tak powoduje że należy ona do jednostki sterującej.
  • #18 7858764
    tmf
    VIP Zasłużony dla elektroda
    Rozumiem, ze o sposobie realizacji instrukcji w CPU wnioskujesz z zapisu mnemonicznego? Gratuluje.
    Zreszta jak w przypadku AVR okreslisz ile bitow ma ALU, skoro jak pisza w dokumentacji, wszystkie 32-rejestry sa polaczone z ALU *JEDNOCZESNIE*. Z kolei czesto R0:R1 dziala jako 16-bitowy rejestr wyniku.
    Kolejna sprawa to fakt, ze smiesznie by bylo opierac sie na ALU, skoro dla wspolczesnych procesorow o wiele wieksze znaczenie (bo wplywa to na predkosc) maja szyny dostarczajace i przesylajace dane. Jak tez wytlumaczylbys, ze Atmel rodzine XMega okresla jako 8/16 bitowa, mimo, ze ALU jest klasyczne - no prawie, bo dochodza tam operacje kryptograficzne, ale to oddzielny modul.
  • #19 7858798
    tadzik85
    Poziom 38  
    Skąd moja pewność?? Obrona inżynierki kolegi. Gdy ktoś zapyta należy podać moją odpowiedź. Tak wiem ze obecny postęp wprowadza wiele kwestii do polemiki. I wiele dawnych, czy pierwotnych definicji traci na poprawności. Ale pytanie zadała osoba bardzo początkująca wiec nie róbmy mu zamieszania. Dla amatorów wystarczy kierować się moją odpowiedzią a nie zginą, nabiorą doświadczenia a będą myśleć jak my.

    Dodano po 6 [minuty]:

    Cytat:
    Rozumiem, ze o sposobie realizacji instrukcji w CPU wnioskujesz z zapisu mnemonicznego?
    Nie mnemonicznego, lecz tabela instrukcji jasno pokazuje, patrząc również na ilość cykli wykonania, że tak jest. Przynajmniej z bardzo dużym prawdopodobieństwem.
REKLAMA