Co oznacza wyrażenie „Oprogramowanie może zastąpić sprzęt”?

90

Studiując kurs dla początkujących na temat interfejsu sprzętowego / programowego i systemów operacyjnych, często pojawia się pytanie, czy lepiej byłoby wymienić niektóre części sprzętowe na oprogramowanie i odwrotnie. Nie mogę nawiązać połączenia.

Gabriele Scarlatti
źródło
7
Procesory ogólnego przeznaczenia mają zestawy instrukcji, które pozwalają im wykonywać dowolne operacje logiczne. Oprogramowanie jest kompilowane do strumienia poleceń wykonywanych przez zestaw instrukcji CPU. To jest przykład robienia rzeczy „w oprogramowaniu”. I odwrotnie, algorytm programowy może być wykonywany bezpośrednio „sprzętowo” dzięki utworzonym specjalizowanym układom bramek logicznych w krzemie.
Chimera,
12
„Połączenie” polega na tym, że zarówno oprogramowanie, jak i sprzęt wykonują na różne sposoby instrukcje logiczne.
Chimera,
14
Oznacza dokładnie to, co mówi. Oprogramowanie i sprzęt robią różne rzeczy. Czasami możesz robić rzeczy za pomocą oprogramowania lub sprzętu, więc wybierasz jeden. Potem zastanawiasz się, czy lepiej byłoby zrobić to z drugim.
immibis
4
Oczywiście nie można zastąpić całego sprzętu oprogramowaniem - nie ma sensu robić oprogramowania, monitora, myszy ani klawiatury. (Chyba że są wirtualne)
immibis
2
Rozważmy, że używamy (oprogramowania) systemów operacyjnych, ponieważ: 1) Pisanie systemu operacyjnego bezpośrednio na sprzęcie wymagałoby niewiarygodnie złożonego układu, który kosztowałby dużo 2) Sprzętu nie można łatwo zaktualizować, dlatego system operacyjny nie otrzyma aktualizacji. Jeśli zostanie znaleziony problem bezpieczeństwa, nie można go
załatać

Odpowiedzi:

176

Myślę, że podstawowe powiązanie, którego brakuje innym odpowiedziom, jest następujące:

Biorąc pod uwagę komputer ogólnego przeznaczenia (np. Procesor), można go zaprogramować tak, aby wykonywał praktycznie dowolne zdefiniowane obliczenia. Jednak specjalistyczny sprzęt może działać lepiej lub nie zapewniać żadnej wartości.

(ta odpowiedź dotyczy przetwarzania na komputerze i wykorzystuje przykłady z tej domeny)

Wymiana oprogramowania na sprzęt

Jeśli jesteś wystarczająco dorosły, aby pamiętać gry na PC w połowie lub pod koniec lat 90., prawdopodobnie pamiętasz gry FPS, takie jak Quake . Zaczęło się od „renderowania programowego”, co oznacza, że ​​procesor wykonał obliczenia niezbędne do renderowania grafiki. Tymczasem procesor musiał również wykonywać przetwarzanie wejściowe, przetwarzanie audio, przetwarzanie AI itp. To bardzo obciążało zasoby procesora. Ponadto przetwarzanie grafiki nie jest dobrze dostosowane do głównego procesora (wtedy lub teraz). Jest to zwykle bardzo równoległe zadanie, wymagające znacznie więcej rdzeni niż nawet nowoczesny procesor wysokiej klasy (8).

Przenieśliśmy przetwarzanie grafiki z oprogramowania na sprzęt: weźmy 3dfx Voodoo i Nvidia TNT (obecnie GeForce ). Były to wyspecjalizowane karty graficzne, które odciążyły procesor od procesora do GPU. Nie tylko to rozłożyło obciążenie, zapewniając więcej zasobów obliczeniowych do wykonania tej samej ilości pracy, karty graficzne były specjalistycznym sprzętem, który mógł renderować grafikę 3D znacznie szybciej i z większą liczbą funkcji niż procesor.

Szybko do epoki współczesnej, a grafika bez procesora jest wymagana na pulpicie. Nawet system operacyjny nie może działać bez procesora graficznego. To bardzo ważne, aby procesory faktycznie zintegrowały teraz procesory graficzne. 1

Wymiana sprzętu na oprogramowanie

Kiedy DVD było zupełnie nowe, można było zainstalować napęd DVD w komputerze stacjonarnym. Jednak dzisiejsze procesory nie były wystarczająco mocne, aby dekodować strumienie wideo i audio DVD bez jąkania. Początkowo do przeprowadzenia dekodowania wymagana była specjalistyczna karta PCI. To był specjalistyczny sprzęt, który został zbudowany specjalnie do dekodowania formatu DVD i nic więcej. Podobnie jak w przypadku grafiki 3D, nie tylko zapewniał więcej zasobów obliczeniowych, ale został specjalnie dostosowany do tego zadania, dzięki czemu odtwarzanie DVD jest płynne.

Gdy procesory stały się znacznie potężniejsze, stało się możliwe dekodowanie płyt DVD „w oprogramowaniu”, co oznacza „na komputerze ogólnego przeznaczenia”. Nawet z mniej wydajnym procesorem, miał wystarczającą optymalizację szybkości i przepustowości, aby odtwarzanie DVD działało zgodnie z oczekiwaniami użytkowników.

Mamy teraz procesory setki, a nawet tysiące razy mocniejsze 2, niż kiedy wprowadzono DVD. Kiedy pojawił się Blu-ray, nigdy nie potrzebowaliśmy specjalistycznego sprzętu, ponieważ sprzęt ogólnego przeznaczenia był wystarczająco mocny, aby poradzić sobie z tym zadaniem.

Robiąc oba

Nowoczesne procesory Intel wyspecjalizowane instrukcje dla H.264 kodowania i dekodowania. Jest to część trendu, w którym procesory ogólnego przeznaczenia zyskują wyspecjalizowane funkcje, wszystkie w tym samym układzie. Nie potrzebujemy osobnej karty PCI Express, aby efektywnie dekodować H.264 tak jak w przypadku płyt DVD wcześnie, ponieważ procesory zawierają podobne obwody.


1 GPU oznacza procesor specjalnie zaprojektowany do wykonywania obliczeń graficznych. Starsze karty graficzne 2D nie były procesorami graficznymi: były po prostu buforami ramek z przetwornikami cyfrowo-analogowymi do rozmowy z monitorem. Różnica polega na tym, że procesory graficzne zawierają wyspecjalizowane procesory, które wyróżniają się w niektórych rodzajach obliczeń, a wraz z upływem czasu same są teraz programowalne (shadery). Sprzęt graficzny zawsze zawierał wyspecjalizowany zespół obwodów konieczny do konwersji danych w buforze ramki do formatu, który można wyprowadzać przez kabel (VGA, DVI, HDMI, DisplayPort) i rozumieć przez monitor. Nie ma to znaczenia w dyskusji o odciążaniu obliczeń do specjalistycznego sprzętu.

2 DVD-Video zostało wydane w 1997 roku, w czasie, gdy Pentium 2 było również nowo wydane. Był to czas, gdy moc procesorów gwałtownie rosła: można było rozważyć nowy komputer P2 z dekoderem DVD lub zainstalowanie go w nieco starszym P1. Porównaj to do współczesnej 6 Core i7 przy użyciu listy MIPS Wikipedii , a nowoczesny procesor jest gdzieś pomiędzy 590 a 1690 razy szybszy. Jest to częściowo spowodowane szybkością zegara, ale także przejściem na wiele rdzeni jako standardem, a także nowoczesnymi procesorami wykonującymi znacznie więcej pracy na rdzeń na takt zegara. Istotne jest również to, że wraz z postępem technologii Intel (który dominuje na rynku komputerów stacjonarnych i serwerów x86) dodaje specjalne instrukcje, aby przyspieszyć operacje, które chcą wykonywać użytkownicy komputerów stacjonarnych (np. Dekodowanie wideo).


źródło
Starsze karty graficzne 2d nie były w dzisiejszym sensie układami GPU, ale specjalistyczny sprzęt do obsługi funkcji graficznych był bardzo obecny. Blitter może szybko skopiować duże ilości pamięci z jednej lokalizacji do drugiej, prawdopodobnie używając prostej logicznej operacji, aby połączyć ją z danymi w docelowej lokalizacji. Było to obecne w typowych kartach 2D z czasów VGA / SVGA. Inne komputery miały inny specjalistyczny sprzęt 2D, taki jak sprity sprzętowe w komputerach domowych i konsolach do gier z lat 80. i 90.
Sebastian Redl
127

Dziwi mnie, że nikt nie wspomniał o jednym z najbardziej rażących przykładów: radiu programowym.

Gdyby wziąć współczesny smartfon w przeszłość jakieś 50 lat i pokazać go kompetentnemu inżynierowi z połowy lat 60. XX wieku, byłby w stanie go zrozumieć. Czy superkomputer można sprowadzić do czegoś, co mieści się w kieszeni? Czek. Czy możesz mieć w pakiecie ekwiwalent kolorowego telewizora o bardzo wysokiej jakości? Czek. Czy jest o wiele szybszy, czy ma o wiele więcej pamięci itp. Niż komputery z tamtych czasów? Czek. Czy zostało napisane oprogramowanie, które może wykonywać tak złożone funkcje? Czek.

Ale powiedz temu kompetentnemu inżynierowi, że tak przy okazji, ten pakiet zawiera zestaw niezwykle wydajnych nadajników i wrażliwych odbiorników: cyfrowy transceiver z rozproszonym widmem, który może jednocześnie nadawać i odbierać na wielu kanałach, komunikując się z wieżą infrastruktury, która może znajdować się w odległości wielu kilometrów ; inny cyfrowy nadajnik-odbiornik, który komunikuje dane o wysokiej prędkości ze stacją bazową gdzieś w budynku; jeszcze jeden cyfrowy transceiver, który komunikuje się z urządzeniami do noszenia o niskiej mocy; a inny odbiornik, który odbiera słaby sygnał z satelity na pośredniej orbicie ... nazwałby cię kłamcą.

Nazwałby cię kłamcą, ponieważ wie, że odbiorników o tak wysokiej czułości nie da się zbudować bez mnóstwa dostrojonych obwodów, które odfiltrują sąsiednie stacje i wybiorą interesujący sygnał. I że takie obwody wymagają części o rozmiarach zdefiniowanych bardziej przez fizykę niż technologię, takich jak kondensatory i cewki indukcyjne.

Trzeba by wtedy wyjaśnić, że w nowoczesnym radiu większość z nich odbywa się w oprogramowaniu. Że po tym, jak sygnał przychodzący z anteny zostanie przekształcony na częstotliwość pośrednią i nieco wzmocniony, jest następnie próbkowany przez przetwornik analogowo-cyfrowy; a kolejne przetwarzanie odbywa się w cyfrowym procesorze sygnałowym. Całe to strojenie, to filtrowanie, które wymagało ton sprzętu w old-schoolowym radiu high-end, można opisać w postaci równań matematycznych; a jeśli można to zrobić, równania te mogą być wykonywane w czasie rzeczywistym przez DSP.

Myślę, że jest to jeden z najbardziej rażących przykładów oprogramowania zastępującego sprzęt. W rezultacie nosimy w naszych smartfonach smartfony, które nawet dla kompetentnego inżyniera z lat 60. przypominałyby magiczną sztuczkę.

W porównaniu z tym pomysł, że prosta logika otwierania drzwi garażowych, elektronicznej wagi łazienkowej lub pilota do telewizora jest obecnie realizowana za pomocą mikrokontrolera ogólnego zastosowania i oprogramowania zamiast niestandardowego sprzętu, wydaje się prawie trywialna (i na pewno byłaby to dużo bardziej zrozumiałe dla naszego hipotetycznego inżyniera z lat 60. niż radio zdefiniowane programowo).

Viktor Toth
źródło
16
Niedoceniana odpowiedź jest niedoceniana. Chociaż mam niewielkie doświadczenie w elektronice i sam skonstruowałem kilka urządzeń radiowych, nigdy nie wiedziałem, że dostrajanie sygnału odbywało się obecnie przez oprogramowanie. W moich myślach chodzi o banany, próbując sobie wyobrazić, jak to się robi.
Machado
5
@ Machado Jeśli kiedykolwiek zrobisz poważny projekt elektroniczny, szybko zdasz sobie sprawę, że są to w zasadzie wszystkie równania matematyczne. Fizyczna elektronika może dodawać, odejmować, dzielić, mnożyć, różnicować, integrować itp. Po prostu zamiast fizycznego kondensatora do filtrowania wszystkich szumów o niskiej częstotliwości, odbywa się to w kodzie. Sygnał fizyczny zostaje „załadowany” do oprogramowania przez wyspecjalizowany sprzęt o nazwie konwerter analogowo-cyfrowy.
CHendrix,
6
@Machado dspguide.com/pdfbook.htm Ten podręcznik zawiera wiele przykładów pseudokodów. To klejnot.
brian_o
4
@Machado Nie zapomnij wybrać radia programowego (za około 20 USD) i zacznij z nim grać !
Michael Hampton,
5
Tylko nie mów facetowi z lat sześćdziesiątych, że do czego używasz przede wszystkim całej mocy komputera i funkcji; jest publikowanie zdjęć jedzenia, przesyłanie strumieniowych filmów o kotach i polowanie na pokemony ...
Baard Kopperud
42

Rozważ ten obwód:

wprowadź opis zdjęcia tutaj

Jest to Flip Flop, czyli Bistable Multivibrator. Można go zastąpić następującym kodem:

static bool toggle;

if (toggle == true) 
{
    lblTop.BackColor = Color.Black;
    lblBottom.back Color = Color.Red;
}
else
{
    lblTop.BackColor = Color.Red;
    lblBottom.BackColor = Color.Black;
}
toggle = !toggle;
Robert Harvey
źródło
1
bardzo dziękuję za odpowiedź i poprawienie postu! Czy masz jakąś książkę, aby zasugerować, aby dowiedzieć się o niej czegoś więcej? Gabriele
Gabriele Scarlatti
11
sprawdź kod: ukryty język sprzętu i oprogramowania komputerowego . Obejmuje ładnie przejście ze sprzętu na oprogramowanie
Igor Milla,
4
@igormilla Mogę ręczyć za twoją sugestię. Obecnie czytam książkę i jest to zdecydowanie najlepsza książka o architekturze komputerowej, jaką kiedykolwiek czytałem. Doskonale sobie radzi z jasnym i zwięzłym objaśnianiem każdej koncepcji, bez wrzucania zbyt dużego technicznego żargonu do gardła. Gorąco polecam to każdemu, kto chce głębiej zrozumieć związek między sprzętem a oprogramowaniem.
Christian Dean
1
@igormilla, ładne znalezisko! Na szczęście dla mnie jest on dostępny jako część Safari Books Online , więc mogę teraz zacząć czytać. :) (Przeczytałem mój komentarz jeszcze raz przed opublikowaniem: brzmi jak reklama, ale jestem tylko zadowolonym klientem. W ciągu ostatniego roku nie znalazłem żadnej zalecanej książki technicznej, której nie mogłem od razu przejrzeć, a nawet przeczytać w całości online.)
Wildcard,
29

Oznacza to dokładnie, jak to brzmi.

Szczególnie znanym przykładem jest dysk Disk II zaprojektowany przez Steve'a Woźniaka dla Apple II:

Główną innowacją było zminimalizowanie kontrolera za pomocą oprogramowania, podczas gdy konkurenci polegali na sprzęcie. Jak pamięta Bill Fernandez, wówczas technik elektroniczny w Apple, „główną zaletą konstrukcji [Woźniaka] było to, że użył tylko sześciu układów zamiast zwykłych 60 do 70

Kolejny przykład, który prawdopodobnie znasz lepiej: emulatory. Zastępują całe zestawy sprzętu (i oprogramowania) całkowicie w oprogramowaniu. Procesory, różne układy sterujące, a nawet urządzenia pamięci.

Teraz nie możesz wyeliminować całego sprzętu, w końcu potrzebujesz czegoś do uruchomienia oprogramowania. Ogólnie rzecz biorąc, każde zadanie logiczne, które można zaimplementować w sprzęcie, można również zaimplementować w oprogramowaniu (wydajność może nie być identyczna, może być wolniejsza, szybsza lub w różnych sytuacjach, w zależności od sprzętu i implementacji).

8bittree
źródło
Więc jedyne, czego zawsze potrzebujesz, to przynajmniej jeden procesor?
Gabriele Scarlatti,
3
@GabrieleScarlatti Będziesz potrzebować trochę więcej, w szczególności urządzenia I / O muszą być sprzętem (ale kontrolery mogą być oprogramowaniem!), A pamięć musi być sprzętem. Połączenia między nimi muszą być sprzętowe, ale niezbędna logika jest ograniczona. Proste przewody, jeśli masz wystarczającą liczbę pinów, nieco mniej proste rejestry przesuwne lub podobne urządzenia, jeśli nie masz wystarczającej liczby pinów.
8bittree
Ahaha tak, byłem trochę zbyt przybliżony, czy możesz zasugerować dobrą książkę, aby dowiedzieć się więcej na ten temat? Dziękuję bardzo za odpowiedzi!
Gabriele Scarlatti,
1
Najlepszą jak dotąd odpowiedzią w tym temacie są „emulatory”.
Machado
1
Nie mogę rozmawiać na ten temat, nie wspominając o Woz!
James R.
11

Innym obszarem, w którym jest to prawdą, są syntezatory.

Wczesne syntezatory były w 100% analogowym sprzętem, który generował przebiegi bezpośrednio, a następnie modyfikował je za pomocą układów (filtry, wzmacniacze itp.). Można było cyfrowo zsyntetyzować dźwięk, ale wymagało to zasobów obliczeniowych , na które przeciętny człowiek nie mógł sobie pozwolić (rzeczywisty komputer mainframe i niestandardowy sprzęt konwertera cyfrowo-analogowego).

W miarę ulepszania wytwarzania chipów syntezatory zmieniły się z czystego analogu na chipy syntezatora sterowane sygnałami cyfrowymi, ale nadal generujące sygnały analogowe, a następnie na czystą syntezę cyfrową (odtwarzanie próbek, synteza FM , prawdziwa synteza addytywna itd.).

Obecnie procesory są wystarczająco tanie i wystarczająco szybkie, aby umożliwić programistom tworzenie komputerowych wersji klasycznych syntezatorów analogowych, które dokładnie duplikują zachowanie oryginalnych obwodów poprzez symulację ich zachowania w czasie rzeczywistym - w rzeczywistości telefony i tablety mogą teraz działać wystarczająco szybko, aby uruchom te re-kreacje; Korg IMS 20 jest przykładem.

Zarówno klasyczne syntezatory, jak i nowe są dostępne jako wtyczki VST lub AU do cyfrowych programów audio, takich jak Ableton Live, Logic lub Cubase, które zapewniają dostęp do syntezatorów osobom, które inaczej nie miałyby miejsca lub pieniędzy, aby móc z nich skorzystać im.

Edycja: W tym miejscu powinienem również wspomnieć o VCVRack , który symuluje analogową syntezę modułową w czasie rzeczywistym. To krok do przodu w stosunku do wielogodzinnego renderowania przez kilka sekund muzyki.

Joe McMahon
źródło
1
Atari 2600 z 1977 roku ma wystarczającą moc procesora, aby wygenerować czterogłosową muzykę z zakresem pięciu oktaw, nawet pozostawiając ponad 39% czasu procesora dostępnego do generowania wyświetlacza. Niezbędne tabele wyszukiwania zajęłyby ponad połowę kasety 4K (około 2300 bajtów), ale oczywiście było możliwe, aby kasety były większe niż 4K. Prawdopodobnie nie można było strasznie skomplikować rozgrywki podczas odtwarzania muzyki, ale całkiem kolorowy ekran tytułowy z przewijanym tekstem byłby zdecydowaną możliwością >:*3.
supercat
Tak, pominąłem około 10? 20? lata rozwoju, więc moja odpowiedź nie zamieniłaby się w powieść. Bardzo dobre punkty! Kiedyś miałem na komputerze Mac 512K coś o nazwie (Musicworks) [ thinkclassic.org/viewtopic.php?id=550] , który ledwo obsługiwał 4 głosy.
Joe McMahon,
68000 potrzebuje więcej cykli na wykonanie każdej instrukcji niż 6502, ale przy odpowiednim kodowaniu czterogłosowa synteza tablicy fal powinna być dość wydajna. Oszacowałbym około 240 cykli / próbkę ze skalowaniem amplitudy przy użyciu 256-bajtowej tabeli dla każdego ustawienia głośności; wyeliminowanie skalowania amplitudy spowodowałoby golenie tego czasu o 56 cykli / próbkę.
supercat
7

W dawnych czasach cięcie było dość wyraźne. Większość rzeczy wymagających szybkiego wykonania musiała zostać zaimplementowana sprzętowo. Weźmy na przykład multiwibrator, który generuje częstotliwość. Nie tak dawno temu potrzebowałeś kilku tranzystorów, kondensatorów i ewentualnie kwarcu, aby wygenerować (stałą) częstotliwość. Teraz są tanie mikrokontrolery, które kosztują zaledwie kilka centów lub więcej. Ponieważ są one tak szybkie, możesz ich łatwo użyć do stworzenia multiwibratora. Co więcej, możesz łatwo kontrolować za pomocą oprogramowania, jaką częstotliwość generować, gdzie w przeszłości trzeba było lutować inny sprzęt. Chociaż przechodząc przez pewną (ale teraz dość wysoką) częstotliwość nadal potrzebujesz czystego sprzętu. Widzisz więc, istnieje granica między nimi, ale część, którą możesz rozwiązać za pomocą oprogramowania, rośnie (wykładniczo).

Edycja Właściwie „Oprogramowanie może zastąpić sprzęt” nie jest naprawdę poprawne. Chodzi o to, że sprzęt jest tak potężny, że można go używać do uruchamiania oprogramowania, które emuluje sprzęt. Dlatego zamiast kilku prostych, ale statycznie lutowanych tranzystorów używasz milionów tranzystorów, które rozumieją oprogramowanie. Termin powinien brzmieć „Sprzęt może teraz rozumieć oprogramowanie”.

qwerty_so
źródło
Szczerze mówiąc, prawie wszystkie mikrokontrolery mają (przynajmniej jeden) moduł PWM ogólnego zastosowania, zaimplementowany sprzętowo. Dlatego rzadko wykonuje się bitbang wyjścia częstotliwości, używając oprogramowania działającego na odpowiednim procesorze.
Lyndon White,
@LyndonWhite PWM nie jest ogólnym multiwibratorem. Modulował szerokość impulsu, który jest podzbiorem generatora częstotliwości.
qwerty_so,
1
Rzeczywiście to prawda. Chodziło mi raczej o to, że PWM jest zdecydowanie najczęstszym rodzajem sygnału, który chce się generować (z pewnym zakresem cykli roboczych) - dlatego mikroprocesory mają do tego specjalny sprzęt. Prawdopodobnie postawiłbym PWM vs bitbanging jako przykład przeciwnego „sprzęt może zastąpić oprogramowanie”.
Lyndon White,
@LyndonWhite Dokonałem edycji mojej odpowiedzi.
qwerty_so
5

Porównanie gry zręcznościowej Tank (około 1976 r.) I domowej konsoli Combat (1977) daje dobry przykład tego, jak oprogramowanie może zastąpić sprzęt nawet 40 lat temu.

Zręcznościowa gra Tank (około 1976 r.) Pozwalała dwóm graczom na objeżdżanie czołgów i strzelanie do siebie. Nie zawierał żadnego procesora, ale zamiast tego posiadał sprzętowe liczniki do śledzenia poziomych i pionowych pozycji wiązki elektronów, czołgów i strzałów, a także wyników gracza, kątów obrotu, upływającego czasu. Miał wbudowaną logikę do generowania danych bitmapowych związanych z wynikami, kształtami czołgów graczy i tłem.

Komputerowy system wideo Atari 2600 (domowa konsola do gier z ok. 1977 r.) Zawiera sprzęt do śledzenia poziomych (ale nie pionowych!) Pozycji dwóch obiektów bitmapowych i czterech generatorów impulsów o zmiennej szerokości, utrzymywania i odliczania 20-bitowego minimum -Rozdzielczość wzoru graficznego pola gry, a także dwóch 8-bitowych wzorów o wysokiej rozdzielczości, kolorów zatrzasków dla graczy, tła i pola gry oraz wykrywania kolizji między różnymi obiektami. Zawierał również programowalny zegar ogólnego przeznaczenia, ale sprzęt miał niewiele więcej niż powyższe. Niemniej jednak, mimo że sprzęt jest znacznie prostszy niż w grze Tank, kaseta 2K ROM Combat pozwala 2600 grać w tę samą podstawową grę, ale z wieloma innymi funkcjami (różnorodne pojazdy i tła, odbijające się strzały itp.), Ponieważ może zastąpić większość automatów do gier ” s sprzęt z oprogramowaniem. Co ciekawe, mimo że Atari 2600 jest prawdopodobnie drugą najprostszą platformą sprzętową dowolnego komercyjnie sprzedawanego domowego systemu gier wideo opartego na mikroprocesorach, jest tak dobrze zaprojektowany, aby ułatwić wymianę sprzętu na oprogramowanie, które po prawidłowym zaprogramowaniu może krążyć wokół wielu jego konkurenci.

supercat
źródło
Spędziłem wiele godzin i kwadransów, grając w Tank. Mój przyjaciel przywraca stare konsole do gier i byłem bardzo zaskoczony, gdy dowiedziałem się, że to wszystko sprzęt. Ktoś spędził dużo czasu na tworzeniu map Karnaugh, aby było to możliwe. Replikacja w oprogramowaniu jest znacznie łatwiejsza i wymaga mniej konserwacji. To samo z planetoidami. Ale żadne z nich nie kończy się tak samo, chyba że powielasz go dokładnie, łącznie z kontrolkami konsoli. Ponadto grafika wektorowa po prostu nie wygląda tak samo na wyświetlaczach rastrowych, IMO.
SDsolar,
@SDsolar: Pamiętam, jak czytałem arkusz, opublikowany, jak sądzę, przez Atari, z pewnymi modami, które właściciel mógł zrobić, aby ulepszyć różne aspekty rozgrywki, myślę, że dwa mody obejmowały przytrzymanie włączonej blokady kąta strzału gracza (dodając „pocisk kierowany” „funkcja) i być może dodanie czegoś takiego jak funkcja niewidzialnego czołgu. Zmiana oprogramowania sprzętowego wymagałaby bardziej skomplikowanego sprzętu, a niektóre rodzaje modów, które byłyby łatwe w sprzęcie, byłyby niemożliwe w oprogramowaniu sprzętowym (np. Jeśli pozycja gracza używa binarnego licznika, wyświetlenie odtwarzacza dwa razy na linię skanowania jest banalne).
supercat
1

Wyrażenie „oprogramowanie może zastąpić sprzęt” jest ostrzeżeniem, aby nie próbować rozwiązywać problemów ze sprzętem, chyba że istnieją bardzo wyraźne zalety. Oprogramowanie jest 10x-50x tańsze w tworzeniu i prawie nieskończenie tańsze w produkcji na jednostkę niż sprzęt. Wykonanie X w sprzęcie nie będzie zwycięskim rozwiązaniem, chyba że X naprawdę nie da się skutecznie zrobić w oprogramowaniu.

DepressedDaniel
źródło
Nie przegłosowałem, ale jestem pewien, że jest to niedokładne.
J. Allan,
@ JefréN. Chodzi tylko o zakup sprzętu, a raczej jego opracowanie.
DepressedDaniel
Masz rację; Źle zrozumiałem cel pytania. Czy masz cytat lub link, aby potwierdzić swoje twierdzenie, że „oprogramowanie jest 10x-50x tańsze w opracowywaniu ... niż sprzęt”? Byłbym zainteresowany dowiedzieć się, czy jest to figurka na boisku, czy też jest to [powszechnie akceptowane / zweryfikowane] stwierdzenie. (Przykro mi, że jesteś smutny, przy okazji; D)
J. Allan,
Nie przegłosowałem, ale nie mogę przegłosować, ponieważ nie zawsze jest prawdą, że oprogramowanie jest tańsze. Często może być znacznie droższy. Rozważ również koncepcję układów ASIC i FPGA, w których oprogramowanie jest używane do stworzenia ekwiwalentu sprzętowego, który może następnie działać szybciej. Podobnie jak ostateczna różnica między plikami wykonywalnymi a interpretowanymi programami, ale jeszcze bardziej.
SDsolar,
1
@ SDsolar Nie słyszałem o przypadku, w którym ta sama funkcja jest tańsza w sprzęcie niż w oprogramowaniu. Jeśli jest to możliwe w oprogramowaniu, prawie ogólnie taniej jest to zrobić w oprogramowaniu. Oczywiście, na przykład, program renderujący będzie miał problemy z wydajnością wcześniej w porównaniu do karty graficznej. Ale to bardziej dotyczy wykonalności wdrożenia oprogramowania w celu osiągnięcia określonego poziomu wydajności.
DepressedDaniel,
1

Niuans został dobrze rozwiązany, ale myślę, że jest to przeszkodą dla OP, ponieważ nie można zastąpić sprzętu oprogramowaniem. „Sprzęt” niezmiennie obejmuje znacznie mniej „sprzętu” niż rozwiązanie „oprogramowania”.

Różnica polega na tym, że logikę procesu / algorytmu / obliczenia można przenosić między sprzętem a oprogramowaniem. Podano wiele przykładów, więc nie będę się rozwijał.

ANone
źródło
-1

Na wczesnych komputerach z pamięcią wirtualną trzeba było zmienić zadanie na brak TLB, aby załadować nowy wpis strony. Oprogramowanie OS odnalazłoby prawidłowy proces i przejrzałoby tabele stron, znajdując prawidłowy wpis i zapisując go z powrotem w TLB. Przed powrotem do pierwotnego procesu, aby kontynuować.

Teraz większość procesorów korzysta ze sprzętu do wykonywania procesu, czytania tabeli stron, chodzenia po tabelach stron i aktualizowania TLB.

Obie metody muszą korzystać z oprogramowania do obsługi błędów stron, ale ponieważ błędy TLB często przewyższają liczbę błędów stron, sprzęt nadal przewyższa oprogramowanie.

W generel, jeśli masz prostą procedurę, którą musisz wykonywać wielokrotnie, znajdziesz wymianę sprzętu. Jeśli masz skomplikowane rozwiązanie sprzętowe ze skomplikowanym przepływem sterowania, możesz uprościć sprzęt za pomocą oprogramowania.

Surt
źródło
-2

Istnieje wiele przypadków, w których oprogramowanie może zastąpić sprzęt i odwrotnie.

Klasycznym tego przykładem jest tablica matematyczna. Zamiast za każdym razem obliczać wyniki dla wyrażeń wspólnych, są one przechowywane wewnętrznie w koprocesorze matematycznym i po prostu określane w razie potrzeby.

Większość z nich prawdopodobnie już zna filtry audio i oprogramowanie, które może naśladować prawdziwe instrumenty i urządzenia, takie jak pedały lub wzmacniacze.

Każdy sprzęt, który można stworzyć wirtualnie, zostanie użyty, jeśli będzie szybszy i / lub tańszy niż fizyczny odpowiednik.

Christopher Oldfield
źródło
-2

W rachunkowości wydrukowaną fakturę (na przykład) można teraz przesyłać elektronicznie, a oprogramowanie zaczyna obsługiwać odbiór tego rodzaju dokumentów i ich przetwarzanie w coraz większym stopniu. Jest to doskonały przykład zastąpienia sprzętu oprogramowaniem.

Andrew Day
źródło