Wieści z Kalifornii
Komputer z aktywną pamięcią operacyjną ADMP
[Aktualizacja] To jest (niestety) opis prima-aprilisowy tak pożądanej architektury komputera.
Niniejszy tekst zostanie opublikowany w CRN 2021/4
Nasz znajomy mieszka w domku nad Belmont Channel koło San Francisco Bay z widokiem na okrągłe niebieskie budynki znanej korporacji informatycznej. Z przymusu pandemii siedząc w domu, większość czasu spędzał nad wodą na swoim decku z grillem i piwem patrząc i rozmawiając na odległość z innymi wokoło, również siedzącymi na swoich deckach – no niech będzie deskach. Większość z nich pracowała teraz zdalnie w tych okolicznych korporacjach.
Kiedyś, późno wieczorem, wywiązała się obok gorąca dyskusja pomiędzy kilkoma nerdami, piwa podgrzewały i tak już ciepłą atmosferę. Jeden perorował, że jego firma już niedługo wypuści taki produkt na rynek, że innym klawiatury zwiotczeją – pozostali byli sceptyczni. Nagle chyba się zorientował, że bardzo odsłonił tajemnice firmy i zamilkł, po czym ostentacyjnie ziewnął i sobie poszedł.
Znajomy od pozostałych próbował się czegoś dowiedzieć, ale oni tylko mówili że to chyba fake news, bo przecież takie procesory przetwarzające w pamięci RAM (Processing In Memory) znajdującej się w tym samym czipie już od dawna istnieją. A ten twierdził, że oni taki zupełnie nowatorski komputer budują i będzie on lepszy od niestabilnego mechanizmu kwantowego. Znajomy – nie informatyk – nie bardzo wiedział nawet jakie pytanie zadać. Ale ci rzucili mu zmięty w kulkę kawałek papieru i też poszli spać.
Znajomy rozprostował, wygładził i obejrzał tę kartkę – była z jakiegoś Internal Tech Journal - że też jeszcze firmy wydają takie papierowe czasopisma. Czytając ją, dalej niewiele zrozumiał, zeskanował ją i mi przesłał mejlem. Był to fragment tekstu technicznego opisu, jakiś rysunek, urwana nazwa firmy i data 2020/01/04.
Z opisu wynikało, że firma opracowała organizację czipa pamięci operacyjnej z jednostkami liczącymi, nazwanego tamże Associative Database Memory Processor (ADMP). Z uproszczonego schematu wynikało, że pamięć operacyjna jest tablicą (1 MB*1 MB) procesorów, z których każdy ma bajtowy rejestr, na którym mogą być wykonywane operacje arytmetryczno-logiczne oraz przesunięcia zawartości do sąsiednich rejestrów. Pomiędzy operacjami rejestr ten pełni funkcję bajtu pamięci. Powiązania pomiędzy procesorami mogą być konfigurowane poprzez rejestry maskowania i wyboru. Wyróżniony jest też rejestr argumentu oraz wyniku. W jednym cyklu wybrany podzbiór procesorów może równocześnie wykonać tę samą operację, każdy na swoim rejestrze wstawiając wynik do rejestru wyniku.
Z dalszego opisu wynikało, że do tego ADMP możliwe jest wprowadzanie danych alfanumerycznych o strukturze odwzorowania tabel typu arkuszy kalkulacyjnych oraz relacyjnych baz danych. Również można w ADMP wyszukiwać zadane frazy w dowolnie długich sekwencjach znakowych. Będzie też przydatne w przyśpieszeniu działań sztucznej inteligencji. Może być użyteczne w kryptografii do szyfrowania i deszyfracji. Ciekawe o ile będą mogły być szybsze wyszukiwania danych w zbiorach baz danych przy wykorzystaniu ADMP?
Po zrozumieniu zasad działania tego rozwiązania przeszły mnie ciarki po plecach. Ujrzałem bowiem komputer o odmiennej od klasycznej koncepcji Von Neumanna strukturze, w którym pamięć operacyjna jest elementem aktywnym. Co prawda jeszcze musi istnieć klasyczny procesor do sterowania tym ADMP, obliczeń oraz operacji we/wy. Od lat czekałem na takie rozwiązanie i dziwiłem się, że go nawet nie próbowano opracować. A było to też marzenie mojej żony informatyczki projektującej onegdaj algorytmy stronicowania pamięci wirtualnych, gdzie byłaby przydatna funkcja przepytywania pamięci w jednym cyklu.
Znajomy dopytywał się na czym polega ta innowacyjność. Wytłumaczyłem mu po żołniersku:
Na placu apelowym jest ustawiona kompania wojska. Po wykonaniu komendy – kolejno odlicz – porucznik wydaje rozkaz – pierwszy do mnie. Żołnierz wybiega z szeregu i stając przez porem salutuje. Por. odczytuje z munduru nazwisko – szer. Nowak, czy gracie na jakimś instrumencie? - Tak jest. - To odmaszeruj na bok. - Następny z szeregu. I tak po 60 wezwaniach, por. zgromadził kilku żołnierzy muzyków.
Można to też wykonać prościej. Bez liczenia por. wydaje rozkaz – Szeregowi grający na jakimś instrumencie, do mnie. Po chwili stoi przed nim kilku żołnierzy muzyków. W tym przypadku każdy z żołnierzy musiał sam przetworzyć rozkaz i zdecydować czy ma pobiec do pora.
Pierwszy przypadek odwzorowuje klasyczne działania komputera, a por. jest tutaj jedynym procesorem. W drugim przypadku por. jedynie inicjuje wyszukiwanie w zbiorze żołnierzy, gdzie każdy sam musi przetworzyć czy ma się ujawnić ze swoimi zdolnościami. I to jest właśnie zrealizowane w tym ADMP.
A co z tymi wybranymi muzykami. A, dostali rozkaz przeniesienia fortepianu ze świetlicy do kantyny.
Ciekawe, kiedy komputery z tą nową aktywną pamięcią pojawią się na rynku. Trzeba będzie też opracować nowe procesory główne wyposażając je w dodatkowe zestawy rozkazów współpracy z ADMP (a może już są opracowane?) Konieczne też będą zmiany w oprogramowaniu silników baz. Ale o tym na tej zmiętej kartce nic nie było.