strzałka do góry

Odzyskiwanie danych Szkolenia Kontakt

artykuł dodany: 01-06-2017, autor: Kacper Łapiak

Moc obliczeniowa

Procesor, układ scalony, scalak, sygnał, prąd elektryczny.

Każdy kto miał do czynienia z komputerami, spotkał się z pojęciem "mocy obliczeniowej". Kupując nowy telefon, tablet czy laptopa zwracamy uwagę na ich parametry. Interesuje nas wielkość pamięci RAM, pamięci dysku twardego, ilość rdzeni i wątków w procesorze, czy szybkość jego taktowania. Intuicyjnie wiemy, że im większe wartości posiadają te wskaźniki, tym urządzenie będzie bardziej wydajne.

I właśnie tym w najogólniejszym rozumieniu jest moc obliczeniowa. Powszechnie definiujemy ją jako graniczny poziom wydajności sprzętu. Ale my mamy większe ambicje. Interesuje nas zajrzenie w głąb podzespołów i poznanie logiki ich działania. Co to znaczy, że układy elektroniczne takie jak główny procesor (CPU), procesor karty graficznej (GPU), i wiele innych, są zdolne do obliczeń?

W tym momencie musimy uświadomić sobie, że pojęcie mocy obliczeniowej zawęża swój zasięg. Przestaje interesować nas pojemność dysku, czy ilość pamięci RAM. Tego typu podzespoły służą jedynie do przechowywania danych użytkownika lub zapisywania wyników operacji dokonywanych przez jednostki arymetyczno-logiczne, czyli procesory. A procesorem możemy nazwać każdy układ, który dokonuje obliczeń, nie tylko CPU i GPU. Układ sterujący zegarka elektronicznego, który nosisz na ręku, też jest procesorem.

Procesor jako układ cyfrowy

Procesor, jak sama nazwa wskazuje, przetwarza procesy. Procesy te są zbiorem instrukcji do wykonania. Jeżeli dany układ jest w stanie wykonać większą ilość rozkazów w jednostce czasu mówimy, że posiada większą moc obliczeniową. Rozkazy procesora są natomiast pojedyńczymi komendami, służącymi między innymi do wykonywania działań arytmetycznych, przemieszczania danych między rejestrami, pobierania i wystawiania wartości na magistralę danych.

Ale co to oznacza, że procesor liczy? W jaki sposób to robi? Dodaje, odejmuje, mnoży i dzieli jak człowiek? Cóż, właściwie to tak. Każdy procesor posiada zestaw rejestrów, czyli pojemników na dane. Pojemniki te można porównywać, przenosić, dodawać, odejmować, mnożyć i wykonywać na nich wiele innych operacji. Operacje te noszą nazwę instrukcji, i są projektowane są na potrzeby architektury danego procesora.

Jednak jak wygląda zawartość takiej szufladki? Wspomnieliśmy, że przechowuje ona dane. Dane te zapisane są w postaci cyfrowej, czyli są liczbami. Natomiast liczby te zapisane są w tzw. systemie dwójkowym (binarnym). Tak na poziomie logicznym interpretujemy przetważane stany napięcia - prąd powyżej pewnej granicy napięcia interpertujemy jako wartość 1, poniżej jako wartość 0. Istnieje też pewien zakres napięcia pomiędzy obiema granicami, w celu uniknięcia tzw. wartości niezdefioniowanych.

Systemy liczbowe

Systemy liczbowe, system rzymski, dziesięty, dwójkowy, szesnastkowy, operacje, przeliczenia.

System liczbowy to pewna konwencja pozwalająca w praktyczny sposób zapisywać ilości. Mówi się, że na początku człowiek znał tylko liczby naturalne. Być może dawno temu jakiś pasterz wpadł na pomysł, aby w szybki sposób sprawdzić, czy wszystkie owce wróciły do zagrody. Postanowił więc zebrać tyle kamieni ile miał owiec, i z każdą kolejną, która wchodziła, odkładał na kupkę po jednym kamieniu. Jeżeli na koniec został mu chociaż jeden, oznaczało to, że jakieś zwierze zagubiło się. To przykład bardzo prymitywny, odwzorowującego liczbę kamieni na liczbę owiec. Ale przecież nie od razu Rzym zbudowano. Przez kolejne wieki systemy liczbowe ewoluowały, a czasami zupełnie zmieniały swoją postać. Warto też nadmienić, że sposób numeracji stosowany przez pasterza dzisiaj definiujemy jako jedynkowy. Każdemu kamieniowi przypisać możemy symbol jedynki, i tak liczba 111 w dobrze nam znanym systemie dziesiętnym jest równa 3. Taką konwencję zapisu, przez dodawanie kolejnych symboli nazywamy systemem addytywnym.

Innym addytywnym, znanym nam ze szkoły podstawowej systemem zapisu jest notacja rzymska. W wersji klasycznej składa się z siedmiu symboli:
I = 1
V = 5
X = 10
L = 50
C = 100
D = 500
M = 1000

System ten rządził się już bardziej złożonymi regułami. Wyliczając za wikipedią:
1. Cyfry jednakowe są dodawane.
2. Cyfry mniejsze stojące przed większymi są odejmowane od nich.
3. Cyfry mniejsze stojące za większymi są do nich dodawane.

Liczbę widoczną na powyższym zdjęciu możemy zatem zapisać równaniem:
1000 - 100 + 1000 + 50 + 10 + 10 + 10 + 2 = 1982

Notacja rzymska, jakkolwiek powszechna w starożytności, nie wytrzymała próby czasu, i została zastąpiona przez tzw. systemy pozycyjne. Przykładami takich są między innymi: aktualny system dziesiętny (decymalny), dwójkowy (binarny), szesnastkowy (hexadecymalny), czy ósemkowy (oktalny). Ale i system dziesiętny musiał przejść udoskonalenia. W jego klasycznej, adaptowanej na grunt europejski wersji, nie było cyfry zero. Co prawda już w X wieku papież Sylwester II próbował ją bezskutecznie spopularyzować. Zamiast cyfry zero, zaczęto robić odstęp, który przecież w gruncie rzeczy też możmy traktować jako symbol. I w tym miejscu zakończymy nasz wstęp. W kolejnym artykule troszkę więcej teorii.



Ten artykuł jest częścią serii:

1. Moc obliczeniowa
2. System dziesiętny
3. System binarny (w trakcie pisania)
4. System szesnastkowy, hexedytor (w trakcie pisania)
5. Zakończenie - materiały pomocnicze (w trakcie pisania)