Rozwiązanie sprzętowe vs programowe

Witam,

Chciałbym rozpocząć dyskusję na temat nazewnictwa urządzeń, które robią COŚ sprzętowo bądź programowo.

Jaśniej, o co mi chodzi. Jest sobie PCet, który robi za router - można to zadanie zrealizować _sprzętowo_ - kupujemy pudełko zwane routerem. Ale przecież w obu sprzętach występuje oprogramowanie, ostatnio oraz bardziej podobne do siebie (Linux). Różnią się tylko platformą sprzętową. Po prostu mają różne procesory. Przykład 2. Radio DRM można sobie dekodować PC-tem, czyli programowo, ale są też produkowane odbiorniki radiowe, które robią to same. No i co? Taki odbiornik ma _sprzętową_ obsługę dekompresji? Tam przecież są te same algorytmy co w PC, tylko że na inny procek. Chyba nie można założyć, że to co robi PCet jest zadaniem programowym bo ten komputer jest uniwersalny i ma system peracyjny... A co z telefonami komórkowymi, które mają coraz więcej cech komputera biurkowego i można uruchamiać prawie dowolne aplikacje w Javie (gry, mp3, video)? Heh, jakos dziwnie brzmią oba określenia: telefon sprzętowy i programowy (softłerowy).

Można się bardziej rozdrobnić. Np. mamy sprzętowy interfejs szeregowy w jakiejś '51, a można tą transmisję zrobić programowo. Tu bardziej czuję różnicę. Wygląda na to, że podzespoły wykonujące zadanie sprzętowo nie mają w sobie procesora. Z drugiej strony też możemy je w nieznaczny sposób 'przeprogramowac' (np. zmienić długość transmitowanego słowa), a zatem jest programowalny. Są liczniki, jakaś logika, prawie ALU ze sterowaniem. Hmm...

Przykłady da się mnożyć i mnożyć:

- odtwarzacze DVD

- cyfrowe 'magnetowidy', które nagrywają na HDD

- niektóre cyfrowe tunery satelitarne też mogą nagrywać na HDD

- telefon IP

- mp3 playery

- konsole gier (?) W każdym z tych urządzeń można uaktualniać oprogramowanie, które rozszerza funkcjonalność urządzenia oczywiście na ile sprzęt pozwala. Tak samo czynimy w PC-tach - nowsze wersje programów, byle sprzęt to obsłużył...

Czy zatem da się podać jasną definicję, która odróżnia te dwie grupy urządzeń (rozwiązań)? A może jednak nie ma wyraźnej granicy?

Michał Lankosz

Reply to
Michal Lankosz
Loading thread data ...

Witam,

Software/hardware są potocznymi określeniami, które się przyjęły razem z mikrokomputerami. Było jasne, że komputer jest to kawałek sprzętu ale zdolny do wykonania jakiejś funkcji dopiero po oprogramowaniu (tu załadowaniu softu).

Pozdział ten miał sens kiedy mikrokomputery/pecety były niemal jedyny dostępnymi urządzeniami na rynku konsumenckim zdolnym do takiej elastyczności.

Dzisiaj jest już zupełnie inaczej ale terminy pozostały.

W każdym razie każde urządzenie realizuje jakiś algorytm. Gdzie tu jest soft a gdzie hard? Moim zdaniem jest tylko funkcja tak samo jak jest tylko temperatura choć ludzie mogą mówić, że jest zimno albo ciepło.

Pozdrawiam,

Radek

Reply to
Radek

FPGA: co tam jest robione sprzętowo, a co programowo? :-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

A niekoniecznie "procek". Tam moga byc bloki funkcjonalne z bramek/tranzystorow polaczone na stale [lub nawet troche zmiennie].

Nie musza miec cech - chyba kazdy GSM ma procesorek z programem. Ale tez maja/moga miec kawalek sprzetu ktory np kompresje sygnalu audio robi i transmisje automatycznie zalatwia ..

No wlasnie .. na ile pozwala ? Bo algorytmy kompresji/dekompresji moga byc w "sprzetowych" kostkach zaszyte, procek im tylko dane podsyla ..

Jak chcesz miec problem to:

-wezmy jakis chip .. powiedzmy kalkulator. Nieprogramowany, zadnych mozliwosci konfiguracji, a jakby zajrzec do srodka .. ma architekture zblizona do procka - arytmometr, jednostka sterujaca, pamiec programu..

-robimy sprzetowo na FPGA .. procesor :-) A jak sie sprawdzi to zamieniamy w czysty krzem na ASICu :-)

J.

Reply to
J.F.

Dzisiaj jest zupełnie tak samo, ale częściej soft. Rozwiązania hardware'owe są najczęściej bardziej stabilne.

-- . pozdrawiam Sylwester Łazar

formatting link
-oprogramowanie do edycji schematów i projektowania PCB

Reply to
invalid unparseable

Witam,

To jak bardzo może być "częściej" aby ciągle móc uznawać, że dzisiaj jest "zupełnie tak samo"?

Ja widzę bardzo dużą różnicę w pomiędzy tym co jest teraz a było choćby te 15 lat temu. "Zupełnie tak samo" wydaje mi się nadużyciem bo dzisiaj nasycenie rynku urządzeniami oferującymi programowalność jest bez porównania większe.

Tak duża różnica nie zasługuje na określenie "zupełnie tak samo" imho.

Pozdrawiam,

Radek

Reply to
Radek

W samej kosci to chyba jednak wszystko sprzetowo.

A programowo to sie wsad przygotowuje :-)

J.

Reply to
J.F.

Sprawa trochę się rozmydla od momentu powszechnego stosowania mikrokontrolerów. Wiele funkcji dawniej realizowanych układami TTL dzisiaj się programuje. Programujemy również hard (w tym bloki analogowe) w układach logiki programowanej. Producenci mikroprocesorów również je programują wbudowując mikrokod. Te wszystkie wbudowane programy zaliczyłbym już do hard. Dla soft przeznaczyłbym raczej kod modyfikowalny, łatwy do zmiany przez użytkownika czyli to co leży na twardym dysku PCta. Przyznam się, że nawet pasuje mi to nazwy software.

JanuszR

Reply to
JanuszR

Michal Lankosz napisał(a):

Ale po co?

Reply to
A.Grodecki

J.F. napisal(a):

Szczegolnie jesli w srodku jest core procesora albo po prostu maszyna stanow, dekoder rozkazow, jakis licznik rozkazow, itd ;--)

Reply to
Marcin E. Hamerla

Dokaldnie tak jak mowi A Grodecki - ale po co zaczynac jakas dyskusje? Jestes trollem czy jak? probuejsz zrobic jakis flame war?

Reply to
PAndy

Ale to wszystko to jest sprzet :-)

J.

Reply to
J.F.

Użytkownik "PAndy" snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news:e0inlp$ip3$ snipped-for-privacy@news.dialog.net.pl...

Nie rozumiem. Grupa dyskusyjna służy do dyskusji chyba?

No dobra. Otrzymuję polecenie zbudowania sprzętowego odtwarzacza strumienia mp3 w sieci LAN (czyli nie Winamp z shoutcastem). O ile VS1001 można by nazwać sprzętowym dekoderem mp3, to reszta jest obsługiwana przez mikrokontroler (od przycisków po stos TCP/IP). Jeśli tego VS zastąpić DSP to nadal będzie sprzętowy?

Firewall 'sprzętowy' - to osobne urządzenie, programowy - działający na PC. Ale jak się zajrzy do środka - to typowy komputer - pamięci w postaci modułów z PC-ta, procesor z radiatorem, tylko zamiast HDD jest CompactFlash. Czy producent takiego urządzenia nas nabiera, czy nie? O czym informuje pisząc w zaletach, że jest ono sprzętowe.

Czy zatem wszystkie urządzenia, które wykonują swoją pracę bez wykorzystywania zasobów procesora PeCeta są urządzeniami sprzętowymi? A może czynnikiem jest:

- dedykowane zastosowanie

- oprogramowanie ściśle związane ze sprzętem i zadaniem (integralność)

- a zatem wydajność (mniejsza uniwersalność ale lepsze wykorzystanie sprzętu)

- stabilność pracy (wcześniej ktoś pisał, że sprzętowe bardziej stabilne, ale czy rzeczywiście?)

- możliwość uruchamiania obcego oprogramowania (bezpieczeństwo systemu, współdziałających aplikacji)

- ...

W każdym jednak przypadku granica jestbardzo szeroka i rozmyta.

Michał Lankosz

Reply to
Michal Lankosz

Użytkownik "Michal Lankosz" snipped-for-privacy@lubie.spamu napisał w wiadomości news:e0h53n$qqt$ snipped-for-privacy@atlantis.news.tpi.pl...

Ponieważ nie zadowoliły cię odpowiedzi kolegów to może w takim razie za Lemem:

To co może duży komputer z małym programem, może także wykonać mały komputer z dużym programem. Idąc dalej: nieskończenie duży komputer nie potrzebuje żadnego programu do działania, a nieskończenie duży program wykona się sam, bez żadnego komputera. :-)

Reply to
TomT

A tak, bez watpienia ale jesli przejrzysz tematyke grupy to zazwyczaj operuje sie tu na innym poziomie abstrakcji... I wlascwie nie ma znaczenia czy routing pakietu jest implementowany na drodze software'owej, hardware'owej czy mieszanej...

Blad - ten VS1001 JEST juz DSP - tyle ze DSP specjalizowanym - wewnatrz tego VS1001 sedzie pewnie ROM, z programem dla DSP i wykonuje okreslone zadania. na zewnatrz jest to kostka, mozesz prostym interfejsem wkladac dane i uzyskac na wyjsciu inne dane - nie masz mozliwosci ingerencji w program wiec implementacja jest czysto hardware'owa

Jak mysle "sprzetowe" oznacza brak terminala... - urzadznie jest samowystarczalne i gotowe do pracy po wlaczeniu zasilania - nie ma potrzeby interwencji uzytkownika

Tak, sprzetowa implementacja zazwyczaj jest lepiej weryfikowalna - reguly projektowania narzucaja pewne roziwazania ktore to rozwiazania moga byc latwiejsze w testowaniu...

Tak ale wlascwie coz nam daje ta dyskusja....? - jaki jest sens takiej dyskusji? Pewnei ze mozemy rozmawiac o tym czy o tamtym... napewno jest tak ze software nie istnieje bez hardware za to hardware isniec moze bez softu... Istnienie software zdeterminowane jest istnieniem hardware...

Reply to
PAndy

Cos w tym jest - nieskonczenie duzy komputer moze posiadac blok sprzetowy realizujacy kazdy skonczonej wielkosci program :-)

J.

Reply to
J.F.

Mnie nie chodzi o działanie samej kości, tylko o zachowanie określone przez wsady: włożony w FPGA procesor jest sprzętowy, czy programowy? :-)

A procesory z rodziny IA-32 są sprzętowe, czy programowe? Przecież od czasów Pentium Pro procesor nie wykonuje sprzętowo kodu maszynowego tej architektury, tylko sobie w locie tłumaczy na język wewnętrznego RISC. :-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

IMHO - zeby cos bylo programowe to musi byc jakis program :-) Wykreslajac z pamieci "komputery analogowe" gdzie "program" zadawano kablami laczacymi rozne bloki .. to w samym FPGA nie ma programu.

Hm, PP nie znam tak dokladnie, ale wieki temu procesory robilo sie mikroprogramowo. Wydawalo mi sie ze to zaniknelo.

Nie wiem jak NIOS czy innymi implementacjami procesorow na FPGA - to moze byc zrealizowane "programowo".

Ale jestes pewien ze IA-32 czy PP maja mikroprogram ? Przy tych predkosciach to byloby chyba troche trudne ?

Spor definicyjny moze byc tez np w Z80 - najdluzsza instrukcja wykonywala sie cos 21 cykli chyba w 5 fazach - czy sterownik ktory to realizowal nie zahaczal juz o programowy ?

J.

Reply to
J.F.

No to teraz zdefiniuj, co to jest program. :-) Bo jeśli standardowo zdefiniujesz go jako funkcję ze stanu pamięci (rozumianej ogólnie) w stan pamięci, to dojdziesz do ciekawych wniosków. :-)

Jest, określa działanie jednobitowych elementów przetwarzających, które można złośliwie nazwać procesorami. :-)

Sterowanie mikroprogramowe nigdy nie zaniknęło i ma się bardzo dobrze. We wczesnych latach ery RISC prognozowano mu rychłą śmierć, ale to... radykalne RISC wymarły, a pozostałe się ucywilizowały. :-)

Nie mam pewności, ale nie sądzę, by NIOS miał sterowanie mikroprogramowe -- specyfikacja zajętości on-chip RAM temu przeczy.

Niezupełnie, przynajmniej w klasycznym rozumieniu mikroprogramu jako wektorów słów sterujących bezpośrednio węzłami logicznymi w procesorze. W dekoderze odbywa się tłumaczenie kodu maszynowego IA-32 na ciąg mikrooperacji wewnętrznej maszyny przepływowej, a dopiero one _podlegają wykonaniu_ na jednostkach wykonawczych (nie _sterują_ nimi, jak to ma miejsce w architekturze mikroprogramowej). A translator mikroinstrukcji można sobie na IA-32 zmieniać, jest do tego odpowiedni interfejs dostępny przez rejestry MSR. Tylko zawartość binarium z mikrokodem nie jest udokumentowana. :-)

Dlaczego? Mikroprogramowanie czyniłoby co najmniej skrajnie skomplikowanym proces wykonywania operacji poza porządkiem i wykonywanie spekulatywne, ale jeśli się zrezygnuje z tych cech, to dlaczego miałoby się nie dać? Tylko szybkiej pamięci potrzeba, ale z jej zbudowaniem nie ma problemu, bo przecież na tym samym chipie ludzkość potrafi zbudować wieloportowe pamięci cache. :-)

Pozdrawiam Piotr Wyderski

Reply to
Piotr Wyderski

No tak ..

Ale co to za g* program skladajacy sie z jednej instrukcji i to za g* procesory ktore pobraly jedna instrukcje i sie zawiesily :-)

No ale pare GHz musi miec .. a maszyna mikroprogramowa powinna byc jeszcze szybsza :-)

J.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.