Pytanie:
Czy to oszustwo, jeśli używam chipa SRAM jako pliku rejestru?
DylanG
2018-02-03 22:44:01 UTC
view on stackexchange narkive permalink

Obecnie buduję swój własny procesor z logiką dyskretną (seria 74LSxx i tak dalej), używając mojej własnej architektury zestawu instrukcji.Zaczynam zarabiać trochę rachunku, ponieważ potrzebuję wszystkich żetonów.Dla każdego z was, którzy widzieli, jak ludzie budują procesory homebrew w ten sposób, nikt, o którym czytałem, nie użył chipa SRAM jako swojego pliku rejestru

Czy byłoby to uważane za oszustwo, gdybym użył chipa SRAM, a nie TONY '374 żetonów flip flop do rejestrów?To ma być procesor wykonany z oddzielnych chipów

Oszukiwanie?Według jakich zasad?
Nie wiem, czy to oszustwo, ale spowolni projekt, jeśli będzie miał dostęp tylko do jednego rejestru naraz.
@Marla, Nigdy nie widziałem, żeby ktokolwiek robił swój plik rejestrowy z SRAM, więc pomyślałem, że to nie jest właściwy sposób na zrobienie tego rodzaju rzeczy Photon, i tak mam dostęp tylko jeden na raz, jest tylko jeden autobus
Tak, jakiś profesor powie o tym władzom.
Chwileczkę, czy mówisz nam, że sam nie udoskonaliłeś krzemu?Ale poważnie, zrób to tak, jak chcesz.
Oboje użyłbym jednej lub więcej pamięci SRAM dla plików rejestru i jednej lub więcej pamięci EPROM dla logiki.Tylko po to, aby ograniczyć czas, jaki musiałem do żmudnych części - okablowania - i zwiększyć czas, w którym mogę wykonać interesujące części - projektowanie i testowanie.
Czy twoja jednostka ALU nie musiałaby mieć dostępu do dwóch rejestrów w tym samym czasie, aby wykonać obliczenia (np. „ADD R0, R1”)?
Architektura używa akumulatora podłączonego bezpośrednio do ALU (6502-esque), więc muszę mu tylko podać jeszcze jeden operand
Nigdy nie powiem tego twojej żonie
@GregoryKornblum "* Mary, byłem ci niewierny ... Oszukiwałem cię chipem SRAM, zaczęło się od lutownicy, jedno doprowadziło do drugiego i oboje skończyliśmy na PCB *"
Może byłoby to oszustwem, gdybyś chciał zrobić komputer z komponentów, które były dostępne w danym dniu, możesz zacząć od tych wymienionych w książce danych Texas Instruments lub Fairchild TTL z 1974 roku.Możesz oszukiwać, używając bardziej nowoczesnych wariantów (74HC zamiast zwykłego 74).W każdym razie to twój projekt, nie ma reguły.
Twoje pytanie to poszukiwanie opinii.Zmień swoje pytanie na takie, na które można odpowiedzieć konkretnymi i konkretnymi odpowiedziami.Na przykład: „Czy używanie pamięci SRAM dla pliku rejestru zamiast używania przerzutników jest niekorzystne?”
Jeśli to oszustwo, jesteś w dobrym towarzystwie https://en.wikipedia.org/wiki/Texas_Instruments_TMS9900
co powiesz na 7489? https://www.jameco.com/z/7489-Major-Brands-64-BIT-READ-WRITE-MEMORY-DIP-16_50681.html
To nie jest oszustwo, ale jest ** leniwe **, jeśli budujesz to od zera dla doświadczenia i przyjemności robienia tego na własnej skórze.:) Alternatywnie, możesz przyznać, że po prostu zawyżałeś specyfikację systemu do tego stopnia, że nie zmieści się on w pudełku, chyba że pójdziesz na skróty.To TWÓJ projekt, rób, co lubisz.Koszt jest jednak ważnym problemem.
Pomyślałbym, że aby był naprawdę dyskretnym procesorem, byłby wykonany w całości z tranzystorów, więc to ty tworzysz zasady tutaj, a nie my.
Siedem odpowiedzi:
Olin Lathrop
2018-02-03 23:10:24 UTC
view on stackexchange narkive permalink

Nie, to nie jest oszukiwanie wokół żadnych zasad.Dzieje się tak dlatego, że przede wszystkim nie ma żadnych zasad.

To jest Twój projekt.Ty to definiujesz.Możesz to zaimplementować w dowolny sposób, który Ci odpowiada.Nikogo to nie obchodzi.

Zauważ, że oznacza to oszustwo, jeśli chcesz, aby to było oszustwo.
Chris Stratton
2018-02-04 00:27:25 UTC
view on stackexchange narkive permalink

Zgodnie z zapytaniem jest to wyłącznie kwestia opinii, dlatego nie jest to właściwe pytanie.

Należy jednak zauważyć, że konwencjonalne procesory wymagają dostępu do pliku rejestru przez 3 porty - dwa do uzyskania operandów, jeden do zapisania wyniku.Będziesz więc potrzebować znacznie bardziej złożonej ścieżki danych i obwodów sterujących do pobierania wstępnego i buforowania operandów, jeśli chcesz używać pamięci RAM z jednym portem.Lub możesz zbudować coś z odrębnym i bardziej uprzywilejowanym akumulatorem i zestawem instrukcji zezwalającym na pojawienie się tylko jednego rejestru nieakumulatora jako źródła lub celu (w tym przypadku istnieją procesory z tylko akumulator)

Używanie dwóch pamięci zapisanych równolegle i odczytywanych indywidualnie może trochę uprościć sprawę, ale ta sztuczka działa najlepiej w przypadku pamięci dwuportowych.Te czymś, co można kupić w postaci układów scalonych, a także są powszechną formą pamięci RAM blokowych FPGA.

Zauważę, że 3-portowe (a nawet 2-portowe) tablice rejestrów były stosunkowo późną innowacją.To było coś, czego próbowaliśmy, kiedy byłem w biznesie około 1973 roku, ale koszt był zbyt duży dla większości projektów z więcej niż 4 rejestrami.
Możesz po prostu użyć dwóch układów SRAM równolegle, po jednym dla każdego operandu i zapisać do obu.
@Michael - uwaga powyżej "Używanie dwóch pamięci zapisanych równolegle i odczytywanych indywidualnie ..." ale jeśli są to modele jednoportowe, potrzebna będzie pewna logika muxowania do przełączania linii adresowych między różnymi odczytami i współdzielonymi zapisami na adres rejestru wynikowego podczasodpowiednie cykle.
ilkkachu
2018-02-04 02:48:09 UTC
view on stackexchange narkive permalink

Twój projekt, Twoje zasady

Ale, jak mówią, „doskonały jest wrogiem skończonego ”.Jeśli wydaje się, że projekt wymyka się spod kontroli (czy to ze względu na złożoność, wymagany czas lub wymagane pieniądze), odpuszczenie sobie w jednym rogu projektu może być różnicą między sprytnym (choć trochę szalonym) osiągnięciemi projekt, który nigdy nie został ukończony.

Poza tym, nawet jeśli zdecydujesz się „oszukiwać”, zawsze istnieje możliwość zrobienia później wersji 2, z mniejszą liczbą skrótów.Możesz nawet spróbować wziąć pod uwagę ewentualne przyszłe „uaktualnienie” w pierwszej wersji projektu, jeśli chcesz poświęcić trochę czasu na ułatwienie „uaktualnienia”.

Curd
2018-02-04 01:16:41 UTC
view on stackexchange narkive permalink

Tak!Jest to nawet oszustwo, jeśli używasz komponentów, których nie wykonałeś wyłącznie z naturalnych materiałów, które możesz znaleźć we własnym ogrodzie.

Ale wtedy oszukiwałbyś, kradnąc piasek z bunkrów na polu golfowym, aby zrobić krzem. Zakładam, że ta odpowiedź jest próbą odpowiedzi na pytanie OP, co jest naprawdę uważane za „oszustwo”.
Tak, a energia do tego procesu musi pochodzić ze słońca, wiatru lub drzew, które sam zasadziłeś, a wszystko to z ogrodu.Zabrania się oszukiwania przy użyciu energii elektrycznej z sieci lub pozyskiwaniu paliw kopalnych z innych źródeł.
W rzeczy samej.Prawidłowym sposobem rozpoczęcia jest uderzanie w kamień kwarcu i antracytu, aż utworzy się krzem.Może się to zdarzyć w znacznych ilościach, zanim Wszechświat się podniesie.
Cerować!Więc nie mogę użyć piasku szczelinowego?
old_timer
2018-02-04 05:00:48 UTC
view on stackexchange narkive permalink

Znam również procesor, który wykorzystuje jednoportową pamięć SRAM dla pliku rejestru ogólnego przeznaczenia, w rzeczywistości jest to bardzo szybki / wydajny procesor.

Jak myślisz, skąd pochodzi plik rejestru terminów? Rejestruje w SRAM.

W przypadku architektury potokowej możesz mieć jeden port SRAM i niekoniecznie mieć wpływ na wydajność. Implementacja SRAM z pojedynczym portem miałoby sens posiadanie wielu rejestrów, powiedzmy 128, 256 lub 512 rejestrów ogólnego przeznaczenia.

Tak, jest całkowicie w porządku, aby zaimplementować swoje „rejestry” w pliku rejestru zbudowanym z pamięci SRAM, o ile projekt działa.

Nie jestem pewien, czy próbujesz zaimplementować istniejący procesor / zestaw instrukcji, czy stworzyć własny. W obu przypadkach, robiąc to z dyskretnymi częściami 74xx, wydajność niekoniecznie jest celem w porównaniu z rozsądkiem i sukcesem. Jeśli masz jakieś pamięci SRAM z tej generacji, to absolutnie. Możesz powiązać diody LED z adresem i szyną danych, aby uzyskać (więcej) migotanie świateł pokazujących oznaki życia.

Lub możesz zastosować podejście 6502 i mieć 256 wirtualnych lub pośrednich rejestrów (strona zero), które są tylko pamięcią lub pamięcią specjalną. A Twój prawdziwy rejestr ogólnego przeznaczenia (lub rejestry ogólnego przeznaczenia) jest nieliczny i mieści się w kilku częściach. Działało całkiem dobrze w przypadku technologii MOS. (Architektura, niekoniecznie implementacja, chociaż ogolili, przeskanowali i dokonali inżynierii wstecznej 6502, więc możesz zobaczyć, jak faktycznie ją zaimplementowali).

Prawdopodobnie chcesz też "oszukiwać" i używać pamięci ROM jako tabeli przeglądowej, która implementuje twój mikrokod ... Nawet jeśli to też nie jest oszustwo; jest to znane rozwiązanie.

„W architekturze potokowej można mieć jeden port sram i niekoniecznie mieć wpływ na wydajność” - nie do końca.Takie wąskie gardło oznacza, że utkniesz w potoku podczas * dowolnej * serii operacji rejestrowych, nawet niezależnych.Jeśli nie możesz dla sekwencji instrukcji bez zależności odczytywać dwa operandy i zapisywać wynik * co zegar *, oznacza to utratę wydajności w porównaniu z maszyną, która to potrafi.
zależy od projektu.Ogólnie zgadzam się z tobą, ale jestem dobrze zorientowany w projekcie, który nie ma tego problemu.
aby być uczciwym, czy uważasz, że czytasz i piszesz w tym samym cyklu co w przypadku wersji jednoportowej czy podwójnej?Nie mogę sobie wyobrazić, że OP przejmuje się tym, bardziej zdrowym rozsądkiem i sukcesem niż wysoką wydajnością.a plik rejestru (niezależnie od liczby portów) mógłby w tym pomóc.
Jednoczesny odczyt / zapis wymaga dwóch portów.Mogą istnieć wyspecjalizowane (a nie ogólnego przeznaczenia) dwuportowe pamięci RAM, w których każdy port pełni tylko określoną rolę, ale jeśli chodzi o części ogólnego przeznaczenia, wymagany byłby pełny DPR - a dla pełnych możliwości dwóch operandów, dwa z nich są zapisywane równolegle.
nie ma powodu, dla którego D i Q na flip flopie muszą być powiązane według tej samej logiki, jeśli sprawdzisz ten podwójny, to dobrze.
Nie mają;ale w przypadku * adresowalnej * pamięci, o której mowa, odczytywanie i zapisywanie w różnych lokalizacjach wymaga odrębnych wejść adresowych i logiki dekodowania.To sprawia, że jest dwuportowy.Aby uniknąć nieefektywności, musisz czytać z * dwóch * różnych adresów i zapisywać z powrotem do trzeciego * w każdym * cyklu, co wymaga ** trzech portów **.W przeciwnym razie masz maszynę, która w ciągu zegara wykonuje mniej pracy niż ta bez tego ograniczenia.
W pełni rozumiem, że ... komentarz był również związany z tym oszustwem, kiedy w terenie są procesory, które używają pliku rejestru, to sprawia, że nie oszukuje.jeśli oferują komórki z oddzielnymi diq, dwa odczyty rejestru i jeden zapis to dwa zegary.Zaprojektuj instrukcję wokół tego, a będziesz mieć bardzo oszczędny i bardzo wredny procesor.Te istnieją.Korzystanie z pliku rejestru do rejestrów nie jest oszustwem.Ile portów i jak wyglądają zależy od twoich potrzeb / projektu (lub tego, co jest dostępne).Operator może użyć pliku rejestru do rejestrów, a nie oszukiwać.
Temat „oszukiwania” jest oczywiście nieistotny.Praktyczny temat nie jest - konkretnie, dostępny z półki ** pojedynczy port ** IC SRAM nie tworzy dobrego pliku rejestru, ponieważ niezależnie od tego, czy ma dedykowane wejścia i wyjścia * danych * porty, jest ograniczony tylko do jednego** adres port **.Bardziej odpowiednie części z dwoma portami mają * dwa * porty adresowe - ale nawet to jest tylko w połowie drogi, chyba że dwa są używane równolegle do symulacji pliku rejestru z ** trzema portami adresowymi **.Jeśli chcesz prostoty, być może wolisz akumulator w rejestrze dyskretnym, a nie w rejestrze * plik *.
Sam
2018-02-04 10:49:02 UTC
view on stackexchange narkive permalink

Ludzie, którzy tworzą procesory homebrew (czy widziałeś jakieś?), zwykle używają SRAM do rejestrów. Nikt przy zdrowych zmysłach nie przylutowałby mnóstwa klapek. Nieważne, że go zapewnisz, potrzebujesz mocy i szans na prawidłowe podłączenie.

Nie potrzebujesz podwójnego portu, jeśli kiedykolwiek wykonujesz tylko jeden odczyt lub zapis na raz. Aby np. INC rejestr, twój CPU odczytał go w jednym cyklu do bufora. Zwiększ bufor w następnym cyklu, a następnie zapisz go w trzecim. Multipleksowanie czasu!

Pewien rodzaj buforowania będzie potrzebny, jeśli podajesz zawartość 2 rejestrów do jednostki ALU. Być może mógłbyś użyć tylko jednego bufora i pobrać drugi operand „na żywo” z SRAM. Ale oczywiście w chipie SRAM nie ma żadnego „inkrementalnego” pinu! Dowiesz się, gdzie powinno być buforowanie.

To powiedziawszy, istnieją rejestry serii 74. Pierwotnie całe procesory były wykonane z serii 74 lub przynajmniej dyskretnych układów logicznych, zanim została wynaleziona seria 74. Przeszukanie „pliku rejestru serii 74” dało kilka potencjalnych klientów. Chociaż oczywiście tylko dlatego, że został zrobiony raz, nie oznacza, że ​​znajdziesz go teraz.

Czy przyjrzałeś się FPGA, a nawet CPLD i PAL? PAL są zbyt małe, aby wykonać z nimi procesor, ale kilka z nich zmieszanych z inną logiką może zaoszczędzić kilka chipów. Jednak w FPGA można zaimplementować całe procesory. FPGA to w zasadzie tysiące bramek logicznych na chipie. Możesz wybrać, jaką logikę ma wykonywać każda brama i jak są połączone. Robisz to, pisząc kod, podobnie jak oprogramowanie. Następnie prześlij wyniki przez przewód USB do programatora.

FPGA są często używane w produktach konsumpcyjnych i w wielu innych dziedzinach.

Nie mogę uwierzyć, jak zdesperowany byłem przy użyciu rejestrów D FF do stworzenia PIO UART i wszystkich układów 883B w 1977 roku.
To śliskie zbocze.Przechodzisz od elementów dyskretnych do układu pamięci, CPLD, do FPGA, a potem zdajesz sobie sprawę, że FPGA ma wbudowany twardy rdzeń procesora, a następną rzeczą, którą wiesz, było przylutowanie FPGA i niektórych elementów pasywnych doPCB i to wcale nie jest zabawne.
@fluffysheap, i co jest tak zabawnego w lutowaniu dużej ilości chipów DIP?A potem nie masz analizatora logicznego, aby zobaczyć sygnały?A potem walczyć z usterkami mocy na zawsze?To wszystko brzmi jak projekt uczelniany z profesorem, który utknął w latach 70-tych / 80-tych.Widziałem jedną klasę „projektowania mikroprocesorowego”, w której wszystko kręciło się wokół układu i8237 DMA, z dostępem do magistrali wykonanym z dyskretnych bramek na papierze.Propozycja zbudowania wszystkiego przy użyciu narzędzi FPGA / Verilog z pełną analizą czasową i wszystkimi diagramami czasowymi została odrzucona.FPGA to pewny sposób na naukę procesorów.A także daje bardzo praktyczną umiejętność.
Tony Stewart Sunnyskyguy EE75
2018-02-04 12:32:10 UTC
view on stackexchange narkive permalink

Używanie (nowoczesnego) układu SRAM z procesorem opartym na 74LS przypomina trochę kręcenie Exodus , a ktoś w filmie nosi cyfrowy zegarek. (Dostępne SRAMSy wtedy nie są już dostępne w pobliżu części 74LSxx, więc nowoczesne SRAM nie istniały, ale wtedy jest to jedyny rozsądny kompromis. )

To się nazywa anachronizm, obiekt przemieszczony w czasie

W mojej ulubionej książce The Soul of a New Machine opisano marudną podróż inżynierów i ich menedżera w Data General, którzy stworzyli historię razem z „Orłem” tuż przed połowa późnych lat 70-tych, kiedy wyszedł CMOS.

To była ta sama era, zacząłem życie jako Inżynier z doświadczeniem w projektowaniu karty UART z 74LSxx, ponieważ Rotamola nie wypuściło jeszcze swojego MC6821. Zaprojektowałem go na papierze w tydzień i wykonałem układ na 4-warstwowej płytce z tymi 44-pinowymi złączami krawędziowymi do karty MC6800 i zadziałało przy pierwszym spinie. Kolejna karta rozłożona na 128 wyjść i 128 wejść na głównej konsoli, która świeciła jak dom na Boże Narodzenie z wszystkimi grawerowanymi kwadratowymi podświetlanymi przyciskami.

Ale podobnie jak „Exodus” Twój projekt będzie nadal klasyczny, podobnie jak Steve z GRC i homebrew użytkownicy PDP8.

Nie, statyczna pamięć RAM pochodzi z połowy lat 60-tych, a niektóre części istniały nawet w rodzinie 74LS.PMOS 1101 był na rynku w 1969 roku, a CMOS 5101 pojawia się w literaturze Intela z 1975 roku
Zgadzam się, że te części nie byłyby anachronizmami.Ale założyłem, że ich nie wybiera.
Co więcej, książka Kiddera dotyczy wydarzeń z * późnych * lat siedemdziesiątych, a konkretnie drugiej próby stworzenia * następcy * 16-bitowego Eclipse z 1974 roku.Wydaje się, że większość historii miała miejsce w 1978 i / lub 1979 roku, kiedy produkt został wydany w 1980 roku.
OK, to ja wyszedłem przed wydaniem książki w połowie lat 70-tych, wydaje mi się, że minikomputer DataGeneral w moim laboratorium w '75 był pierwszym pokoleniem i przeczytałem książkę dopiero długo po tym, jak zostawiłem pierwszą pracę w '79.Ale jeśli jakiekolwiek SRAM z lat 70-tych są nadal w produkcji, byłbym zaskoczony.
http://www.nteinc.com/specs/2100to2199/pdf/nte2114.pdf


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...