Pamięć Ferrytowa czyli Magnetic core memory cz.I

Cześć.

Zapraszam do przeczytania artykułu opisującego moją fascynującą przygodę jaką jest budowa sterownika do obsługi pamięci ferrytowej z lat 60-tych

Tego typem  pamięci zainteresowałem się wiele lat temu, kiedy to w moje ręce trafił kalkulator tranzystorowy. To była naprawdę duża stara konstrukcja. Łezka się w oku kręci jak przypomnę sobie okoliczności w jakich zdobyłem ów kalkulator. Mianowicie wracając z zajęć lekcyjnych szkoły podstawowej, przechodząc przez teren Zespołu Szkół Zawodowych zauważyłem jak niszczą tego typu kalkulatory. Była to po prostu likwidacja starego sprzętu. Nie mogłem na to patrzeć i zagadałem z człowiekiem który to niszczył, on wezwał Panią dyrektor a ta zdziwiona podarowała mi kilka sztuk. W tamtym momencie pewnie nie wiedziała że zainicjowała procesy które po 20 latach zaczęły pracować 🙂

Wyświetlaczami były lampy NIXE a pamięć to właśnie plaster szytej pamięci ferrytowej. Jako że miałem naście lat, kalkulator skończył źle, ale to co zobaczyłem w środku utkwiło mi do dziś. I była to właśnie między innymi pamięć ferrytowa.

Po wielu latach poszukiwań znalazłem pamięć na popularnym serwisie aukcyjnym i nie omieszkałem jej nabyć.

Dziś wiedza i doświadczenie pozwoliły mi na podjęcie wyzwania jakim jest budowa sterownika i uruchomienie owej pamięci.

Jest to o tyle trudniejsze w dzisiejszych czasach gdyż nie mogę skorzystać z komponentów ówczesnej technologi bo porostu nie są już dostępne a chciałbym zachować charakter tamtych lat.

Dlatego moje założenia są takie, że będę używał technologii montażu przewlekłego oraz nie korzystał z techniki mikroprocesorowej.

To teraz zacznijmy od teorii.

Nie wdając się w szczegóły opiszę pokrótce zasadę działania pamięci ferrytowej.

Poniżej mamy jeden koralik ,Bit pamięci. Przez niego przewleczonych jest w sumie 4 przewody.

X, Y, SENSE oraz INHIBIT . Dwa z nich to współrzędne koralika X, Y. SENSE to odczyt a INHIBIT to zakaz.

Zasada zapamiętania informacji w koraliku, jest zasadniczo prosta. Koralik przez przepływ określonego prądu i kierunku w przewodach, namagnesowuje go w określonym kierunku. Jeśli zmienimy kierunek prądu to przemagnesujemy koralik w kierunku odwrotnym do poprzedniego co spowoduje indukcje napięcia w lini SENSE.

I dzięki tej właściwości możemy stwierdzić czy koralik był już wcześniej namagnesowany w określonym kierunku. Można przyjąć że jeśli był namagnesowany w jednym kierunku, to zmiana kierunku namagnesowania indukuje w  linii SENSE napięcie co można interpretować jako zapisaną wcześniej 1kę. Jeśli okażę się że był już namagnesowany w tym kierunku, to na linii SENSE nie pojawi się indukcja co za tym idzie napięcie. Możemy wówczas zinterpretować  to jako zero logiczne.

Ciekawostką jest jeszcze fakt iż pamięć ferrytowa to pamięć nieulotna. Po wyłączeniu zasilania komórki pamięci nadal przechowują zapisaną wcześniej informację. Ale za to przy odczycie informacja jest tracona i trzeba ją ponownie zapisać.

 

Moja pamięć to organizacja 64 x 64=4096 koralików x2 bo są dwie płaszczyzny czyli 8192 / na 8 bo bajt ma 8 bitów = 1024 baity.

Czyli zgodnie z wyliczeniami ta pamięć ma pojemność aż lub tylko 1k bajt.

Swoją drogą ciekaw jestem czy ktoś z młodszego pokolenia wie jaka to w ogóle jednostka. Dziś już zapomniało się co to Mb a co dopiero kb.

Teraz wyobraźcie sobie że każdy z tych 8192 koralików musi być osobno zaprogramowany.

A tak szyło się pamięć w fabrykach. Między innymi Polska Firma ELWRO produkowała Odrę z  taką pamięcią.

 

Natomiast organizacja mojej pamięci to taka jak na poniższej ilustracji.

Niebieski i turkusowy przewód to współrzędne, czerwony zakaz, żółty odczyt SENSE.

Oczywiście na ilustracji mamy pamięć  4×4 czyli 16 bitów, w mojej jest 64x64x2=8192 bity.

Zaprogramowanie takie ilości koralików wymaga sporego wysiłku logistycznego.

Jest dużo różnych rozwiązań logicznych pozwalających  sterować taką pamięć. Producenci wręcz prześcigają się w rozwiązaniach, jest to też uwarunkowane pewnymi założeniami konstrukcyjnymi . Ja natomiast kładę nacisk na prostotę oraz ergonomię. Dlatego też zastosowałem dosyć nietypowe rozwiązanie z ujemnym napięciem.

Poniżej schemat blokowy mojej logiki.

Oczywiście jest to tylko fragment całego układu ilustrujący zasadę działania. Bloki z Driverami D1 należałoby powielić jeszcze sześć razy by łączna ich liczba wyniosła osiem. Dopiero wtedy pokryjemy wszystkie komórki w osi np. X.   Układ należy jeszcze powielić dla osi Y.

Drivery D oraz D1 są kluczowane Dekoderami adresu BCD. Drivery D mają wejścia R-odczyt oraz W-zapis do komórki. Gdy chcemy zapisać coś do komórki to Driver podaje napięcie +12V a gdy chcemy odczytać podaje -12V. Dzięki temu uzyskujemy względem masy którą podają Drivery D1 różnicę potencjałów co powoduje przepływ prądu raz w jednym kierunku a raz w drugim. Zachowaliśmy w ten sposób zasadę przemagnesowania koralika wspomnianą wcześniej. Teraz już można by było odczytać zawartość komórki poprzez linię SENSE.

I tą puentą chcę zakończyć pierwszy cykl Magnetic core memory.

Zapraszam na kolejny, w którym zajmiemy się projektowaniem schematu ideowego.

II część Magnetic core memory.

 

 

Related posts

Leave a Comment