Komputery IBM RS/6000

Komputery IBM RS/6000 (RISC System 6000) powstały na początku 1990 r., ale idea ich opracowania datuje się od połowy ubiegłego dziesięciolecia. Wcześniej jeszcze w kołach naukowców rozgorzały gorące spory, związane z architekturą komputerów i próbą udzielenia zadowalającej odpowiedzi na pytanie: czy da się osiągnąć istotne zwiększenie mocy obliczeniowej komputera przez ograniczenie liczby rozkazów do najprostszych, zredukowanie czasu wykonania każdego z nich do jednego cyklu zegarowego i optymalizację kodu programów. Zwolennicy takiej tezy uważali, że procesory ze złożoną listą rozkazową nie są w stanie osiągnąć większej mocy obliczeniowej przy ówczesnej architekturze komputerów.

Komputery IBM RS/6000 (RISC System 6000) powstały na początku 1990 r., ale idea ich opracowania datuje się od połowy ubiegłego dziesięciolecia. Wcześniej jeszcze w kołach naukowców rozgorzały gorące spory, związane z architekturą komputerów i próbą udzielenia zadowalającej odpowiedzi na pytanie: czy da się osiągnąć istotne zwiększenie mocy obliczeniowej komputera przez ograniczenie liczby rozkazów do najprostszych, zredukowanie czasu wykonania każdego z nich do jednego cyklu zegarowego i optymalizację kodu programów.

Zwolennicy takiej tezy uważali, że procesory ze złożoną listą rozkazową nie są w stanie osiągnąć większej mocy obliczeniowej przy ówczesnej architekturze komputerów.

RISC czy CISC?

Scalone mikroprocesory, Intel 386 lub Motorola 68030, są przykładami procesorów CISC (Complex Instruction Set Computer), o długiej i złożonej liście rozkazowej. Rozkazy są w stanie realizować skomplikowane operacje na adresach i danych, badać stan pewnych rejestrów lub wskaźników itp. Ponieważ na ogół operacje te realizowane są sekwencyjnie, czas wykonania większości rozkazów jest długi. Zdarza się więc, że z wykonaniem następnego rozkazu trzeba czekać na zakończenie poprzedniego.

W teoretycznej architekturze RISC (Reduced Instruction Set Computer) dąży się do zminimalizowania listy rozkazów procesora, co oczywiście znacznie ogranicza ich możliwości funkcjonalne. Czynności realizowane przez jeden rozkaz procesora CISC wymagają kilku rozkazów procesora RISC. Jeżeli jednak ich sumaryczny czas wykonania będzie mniejszy, osiągnie się zwiększenie wydajności.

Przy projektowaniu procesora RISC dąży się do ścisłego rozdzielenia jednostek funkcjonalnych procesora i takiej ich realizacji, aby czas wykonania poszczególnych rozkazów był taki sam. Pozwala to na zastosowanie skutecznego potokowego przetwarzania (jeden rozkaz jest dekodowany w czasie, gdy poprzedni jest wykonywany, a jeszcze wcześniejszy przekazuje do pamięci wynik obliczeń). Rozdzielenie jednostek funkcjonalnych: stałoprzecinkowej, zmiennoprzecinkowej i rozgałęzień w programie (decydującej o kolejności i drodze wykonania rozkazów warunkowych) pozwala na równoległe wykonanie rozkazów. Uproszczenie ich złożoności wpływa także na czas wykonania. Na ogół prowadzi ono także do zmniejszenia liczby rozkazów procesora.

Nowsze mikroprocesory Intela (486 i Pentium) i Motoroli (68040) korzystają z wielu koncepcji, uznawanych za wyłączną domenę procesorów RISC. Wydaje się więc, że pytanie "RISC czy CISC?" nie zostanie nigdy rozstrzygnięte.

Procesor POWER

Ekipy naukowców IBM biorące aktywny udział w dyskusjach na temat przewagi architektury RISC na CISC (lub odwrotnie) uczestniczyły jednocześnie w opracowaniu architektury procesora o nazwie POWER (Performance Optimized with Enhanced RISC - ulepszony procesor RISC o optymalizowanej wydajności). Stanowi on "jednostkę napędową" całej rodziny komputerów RISC System 6000. Jego właściwości funkcjonalne i podstawowe założenia architektoniczne zostały określone już w 1986 r., ale pierwszy komputer wyposażony w ten procesor zszedł z taśm produkcyjnych w 1990 r.

Optymalna architektura procesora POWER, zrealizowana w technologii CMOS 1 i 0,5 mikrona, pozwala na jednoczesne wykonywanie przez CPU (jednostkę centralną) aż pięciu rozkazów. Są to: jeden rozkaz stałoprzecinkowy, jeden rozkaz rozgałęzienia w programie, jeden rozkaz badania warunków i jeden zmiennoprzecinkowy rozkaz mnożenia-dodawania (liczony jako dwa pojedyncze rozkazy). Mamy więc do czynienia z typowym procesorem superskalarnym.

Przy projektowaniu każdego procesora RISC szczególnej staranności wymaga takie określenie listy rozkazów, aby nie była ona za obszerna, (traci się wówczas możliwość wykonywania każdego z nich w jednym cyklu zegarowym procesora, co utrudnia optymalizację kodu przez kompilator) i nie za uboga, aby wykonanie prostej czynności nie wymagało wykonania zbyt wielu rozkazów.

Projektowany procesor miał być używany w całej rodzinie komputerów. Lista rozkazów powinna więc dać się zrealizować w tanich wersjach i być dostatecznie potężna dla modeli o największej wydajności. W efekcie skupiono się na zredukowaniu czasu wykonania każdego rozkazu w procesorze, nie ograniczając zbytnio liczby rozkazów. W rezultacie, procesor POWER ma 184 rozkazy.

Zapewne puryści techniki RISC powiedzą, że procesor POWER nie odpowiada w żadnej mierze teoretycznej definicji procesora RISC. Trzeba jednak pamiętać, że liczba rozkazów nie jest celem samym w sobie. Ekipa IBM dążyła raczej do zmniejszenia czasu wykonania każdego z nich. Powstał w ten sposób procesor RISC, z tym, że w tym przypadku skrót oznacza Reduced Instruction Set Cycles.

Optymalizowana lista rozkazów

Analiza kodu systemu operacyjnego AIX (jest to IBM-owska wersja systemu operacyjnego UNIX) wykazała, że ponad 30% kodu związane jest z przesyłaniem łańcuchów znaków. Stąd w architekturze procesora szybkość rozkazów wykonujących tę operację ograniczona jest jedynie wydajnością pamięci podręcznej (cache) procesora.

Rozdzielenie wspólnego rejestru warunków na wiele niezależnych rejestrów, z których każdy zawiera tylko jeden warunek, zaowocowało możliwością wykonywania operacji testowania, jednocześnie przez różne jednostki funkcjonalne procesora.

Podobnie optymalizowano inne aspekty wykonywania rozkazów. Zestaw rozkazów procesora POWER ma na celu optymalne wykorzystanie możliwości równoległego wykonywania rozkazów.

Pamięć podręczna i RAM

Ponieważ procesor POWER jest w stanie wykonywać do 4 rozkazów w czasie jednego cyklu zegarowego, pamięć musi być w stanie dostarczać je w odpowiednim tempie. Realizuje to pamięć podręczna rozkazów o pojemności 8 KB. Jeżeli wziąć pod uwagę, że rozkazy te mogą wymagać odczytu lub zapisu danych do pamięci (jedno słowo danych stałoprzecinkowych lub dwa słowa danych zmiennoprzecinkowych), konieczne staje się zdefiniowanie oddzielnej drogi dostarczania danych. Cache danych ma pojemność 32 lub 64 KB, z oddzielnymi drogami dla jednego słowa danych stałoprzecinkowych i dwóch słów w przypadku danych zmiennoprzecinkowych.

Dla przyśpieszenia odczytu/zapisu pamięć ma konstrukcję z przeplotem (interleaving). Polega on na tym, że kolejne adresy znajdują się w różnych fizycznych blokach pamięci, co pozwala rozpocząć czytanie z kolejnego bloku, mimo że nie zakończyło się jeszcze ono w poprzednim. W zależności od modelu komputera, szerokość szyny danych pamięci RAM wynosi 64 bity (z pamięcią podręczną 32 KB) lub 128 bitów (z pamięcią podręczną 64 KB). Pamięć działa z przeplotem 4 bloków. Szybkość transmisji między pamięcią główną a pamięcią podręczną dochodzi do 400 MB/s.

System wejścia/wyjścia

Konstrukcja komputerów RS/6000 została oparta na rozbudowanej szynie Micro Channel Architecture (MCA), stosowanej do tej pory w komputerach PS/2. W celu przyśpieszenia operacji wejścia/wyjścia, kreślenia grafiki, transmisji do adapterów SCSI lub kart sieci lokalnej, dołączonych do szyny MCA, rozszerzono funkcje architektury o wykonywanie operacji blokowych (streaming mode). W efekcie, w szynie można w sposób ciągły przesyłać dane z szybkością 20-25 MB/s, zaś szybkość maksymalna wynosi 40 MB/s (w najpotężniejszych modelach 970 nawet 80 MB/s).

Pojawia się niebezpieczeństwo, że przy dużej liczbie dołączonych adapterów na szynie MCA, nastąpi ograniczenie szybkości transmisji przy próbach jednoczesnego dostępu do niej przez wiele adapterów. Dlatego też w niektórych modelach istnieje niezależny kanał transmisji szeregowej przez łącze światłowodowe, o szybkości 220 Mbitów/s Korzysta się z tego kanału w celu łączenia zdalnych komputerów, do odległości 2000 m.

Adaptery graficzne

Komputery RS/6000 można wyposażyć w dowolny z kilku dostępnych adapterów graficznych, od prostych systemów o 16 lub 256 kolorach, do adapterów o rozdzielczości maksymalnej 1280x1024 pikseli i 16 milionach kolorów. Szybkość kreślenia nie zależy od mocy obliczeniowej procesora i jest podana w zamieszczonej tabeli specyfikacji komputerów.

Z kartami graficznymi współpracują monitory: od monochromatycznego 19 cali do kolorowych 16, 19 i 23 cale.

System operacyjny

Zasadniczą rolę w opracowywaniu systemu operacyjnego dla komputerów IBM RS/6000 odegrała koncepcja systemów otwartych. Celem było opracowanie systemu zapewniającego pełną przenośność oprogramowania, komunikację z innymi systemami operacyjnymi oraz współdziałanie w środowisku sprzętu heterogenicznego. System operacyjny AIX 3.2 jest oparty na systemie AT & T Unix System V i jest zgodny Unixem wersja Berkeley Software Distribution 4.3 (BSD 4.3).

System AIX 3.2 ma wbudowane znaczne możliwości komunikacyjne i obsługuje popularne protokoły, zarówno sieci rozległych (SNA, X.25), jak i sieci lokalnych (Ethernet, Token-Ring). W każdym z tych środowisk zapewnia obsługę protokołu TCP/IP, służącego do komunikacji między różnymi platformami sprzętowymi. System AIX 3 dla RS/6000 należy do rodziny systemów operacyjnych, obsługujących wszystkie platformy sprzętowe IBM (np. PS/2, ESA). Jest on zgodny z normą IEEE POSIX i odpowiada zaleceniom przenośności oprogramowania X/Open Portability Guide (XG3).

W ramach systemu dostarczane są niezbędne narzędzia do opracowania programów użytkowych i biblioteki graficzne 2D/3D, zgodne z uznanymi normami przemysłowymi.

Oprogramowanie sieciowe

Komputery RS/6000 mogą służyć jako serwery sieci Novell. Istnieje bowiem specjalna wersja sieciowego systemu operacyjnego Novell NetWare 3.11 dla tych komputerów.

Cała rodzina komputerów

Komputery RS/6000 dostępne są w wielu konfiguracjach, o różnej konstrukcji mechanicznej, od bezdyskowej stacji roboczej na stół, do potężnych serwerów w obudowie szafkowej lub stojakowej i klasycznych komputerów centralnych, sterujących dużą liczbą terminali znakowych.

Komputery RS/6000 są wyposażone w jeden z siedmiu modeli procesora RISC, od najprostszego 33 MHz, ze wspólną pamięcią podręczną danych i rozkazów, przez model 20 MHz, z rozdzieloną pamięcią podręczną danych 32 KB i rozkazów 8 KB, o 64-bitowej szynie pamięci RAM, po modele 25, 30, 33, 42 i 50 MHz z pamięcią podręczną danych 64 KB i pamięcią podręczną rozkazów 8 KB, mających 128-bitową szynę pamięci RAM. Najszybszy model procesora, stosowany w komputerze stojakowym model 970, jest wykonany w najnowszej technologii CMOS 0,5 mikrona, ma zegar 50 MHz oraz powiększoną pojemność pamięci podręcznej rozkazów do 32 KB.

Szczegółowe dane niektórych modeli komputerów z rodziny RS/6000 zamieszczamy w tabeli. Ceny przykładowych konfiguracji komputerów podaliśmy w CW nr 23 z dnia 7.06.1993.

Dla kogo te komputery?

Każdy komputer jest tak dobry, jak dobre są działające na nim aplikacje. Wykaz dostępnych aplikacji dla RS/6000 to gruba księga i zawiera zarówno produkty typowe dla biznesu, jak i wyrafinowane programy CAD/CAM, wysoce wydajne systemy przetwarzania obrazów, rozpoznawania wzorców (odcisków palców) czy głosu.

Najprostsze modele komputerów RS/6000 dobrze się spisują jako bezdyskowe stacje robocze w sieci lokalnej, zaś największe przeznaczone są jako serwery tejże sieci, podające pliki lub obsługujące bazy danych. Ze względu na to, że każdy z procesorów jest w stanie operować na liczbach zmiennoprzecinkowych, komputery te są często używane do prac inżynierskich i projektowych.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200