Prof.nadzw.dr hab.inż. Władysław Brzozowski Cz*stochowa-Gliwice, 15.02.1999 r.
Politechnika Częstochowska
Instytut Elektroenergetyki
Wykłady z przedmiotu:
TECHNIKA PROGRAMOWANIA
studia magisterskie, kierunek Elektrotechnika,
specjalno** Informatyka w Elektroenergetyce, sem.VI
Wyk*ad 1. Literatura przedmiotu. Zakres wyk*ad*w. Klasyfikacja komputer*w. Superkomputery. Mikrokomputery.
1.1. Literatura do wyk*ad*w
[1] Loshin D.: Superkomputery bez tajemnic. MIKOM, Warszawa 1977.
[2] Comte D., Syre J-C.: Les supercalculateurs. La Recherche, 147/1983.
[3] Rydzewski A., Sacha K.: Mikrokomputer - elementy, budowa, dzia*a- nie. NOT-Sigma, Warszawa 1986.
[4] Marciniak A.: Borland Pascal 7.0. Cz*** I. Pozna* 1994.
[5] Osier D., Grobman S., Batson S.: Delphi 3. Helion, Gliwice 1997.
poza tym r**ne aktualne pozycje z zakresu: DOS, Windows, Internet, bazy danych: Dbase, Clipper, Oracle itp.
1.2. Cel i zakres wyk*ad*w
Wyk*ady po*wi*cone s* technice programowania. Celem wyk*ad*w jest przedstawienie og*lnych zasad programowania, jak r*wnie* opanowanie jednego wybranego j*zyka programowania w stopniu profesjonalnym.
Zakres wyk*ad*w obejmowa* b*dzie:
Kr*tkie wprowadzenie do komputer*w. Klasyfikacja komputer*w.
Historia i generacje oraz przysz*o** komputer*w. Superkomputery.
Zastosowania mikrokomputer*w. Podstawy logiki i architektury mikrokomputer*w.
Klasyfikacja software'u.
Zasady programowania.
J*zyk Borland Pascal 7.0 w zakresie trudniejszych element*w: struktura program*w, typy zmiennych, pliki dyskowe, zmienne dynamiczne i ich struktury, grafika.
J*zyk Borland Pascal 7.0 w zakresie programowania obiektowego. Polimorfizm.
J*zyk Borland Delphi 3.0.
Nale*y podkre*li*, *e w toku wyk*ad*w mo*liwe jest poruszenie jedynie wybranych trudniejszych zagadnie*.
Zasad* przyj*t* przez wszystkie uczelnie na *wiecie jest, *e studenci opanowuj* j*zyki programowania samodzielnie w ramach pracy domowej, korzystaj*c ze szczeg**owych instrukcji j*zyka w postaci ksi**kowej.
1.3. Wprowadzenie do komputer*w
Komputer jest maszyn* matematyczn* cyfrow*. Ponadto znamy maszyny matematyczne analogowe i hybrydowe.
Pierwszy komputer, mechaniczny, zosta* skonstruowany przez Charles'a Babbage'a (1792-1871). Po II wojnie *wiatowej skonstruowano pierwszy komputer elektroniczny (ENIAC, 1946 r.). Od tego czasu nast*puje rozw*j komputer*w w kolejnych generacjach:
I generacja - lampy elektronowe;
II generacja - tranzystory i pami*ci magnetyczne rdzeniowe;
III generacja - uk*ady scalone o ma*ej skali integracji (CMOS - SSI);
IV generacja - generacja obecna - uk*ady scalone o du*ej skali integracji (CMOS - LSI); mikrokomputery, pierwsze superkomputery;
V generacja - w fazie bada* i rozwoju - uk*ady scalone o ultra du*ej skali integracji (CMOS - ULSI); uk*ady prze**czaj*ce oparte o z**cze Josephsona; nowe architektury, programowanie r*wnoleg*e; komputery optyczne; komputery biologiczne.
1.4. Klasyfikacja wsp**czesnych komputer*w
Drzewo typ*w komputer*w przedstawia si* nast*puj*co:
komputery
| - superkomputery
| | - superkomputery
| | - minisuperkomputery
| | - komputery typu mainframe
| - minikomputery
| - mikrokomputery
| | - komputery typu workstation
| | - mikrokomputery (stacjonarne)
| | - mikrokomputery przeno*ne (lap top)
| - kalkulatory
| - notatniki elektroniczne
| - kalkulatory
| - konsole do gier
1.5. Superkomputery. Nowe architektury komputerowe
Superkomputerem nazywamy komputer wieloprocesorowy, o z*o*onej nietradycyjnej architekturze oraz o nietradycyjnej zasadzie dzia*ania. Tradycyjna zasada dzia*ania zwana zasad* sekwencyjn* von Neumanna polega na realizacji przez pojedynczy procesor poszczeg*lnych operacji jeden za drugim, przy czym s* to operacje r**nego typu: zar*wno o charakterze sterowania jak i operacji matematyczno-logicznych. W efekcie tradycyjn* architektur* komputera jest architektura sisd - single instruction stream single data stream.
Drzewo architektur superkomputer*w przedstawia si* tak jak w ramce poni*ej. Symbole w ramce oznaczaj*:
pipeline (pipe) - potokowe;
multipipe - wielopotokowe
simd - single instruction stream multiple data stream;
mimd - multiple instruction stream multiple data stream.
architektura superkomputer*w
| - sterowanie sekwencyjne
| | - sekwencyjna realizacja oblicze*
| | | - architektura potokowa - pipeline (CDC 1960 r.)
| | - r*wnoleg*a realizacja oblicze*
| | | - architektura wielopotokowa - multipipe (CRAY 1)
| | | - architektura macierzowa - simd (PHOENIX)
| | | - architektura macierzowo-potokowa - simd/pipe | | | (CYBER 205)
| - sterowanie r*wnoleg*e
| | - r*wnoleg*a realizacja oblicze*
| | | - architektura ga**zi r*wnoleg*ych - mimd (DATA- | | | -FLOW)
| | | - architektura ga**ziowo-potokowa - mimd/pipe (SPRINT)
Architektura potokowa polega na zastosowaniu wielu specjalizowanych procesor*w, z kt*rych ka*dy wykonuje tylko jeden typ operacji: sterowania lub oblicze* (poodobnie jak na ta*mie monta*owej w fabryce samochod*w).
Architektura macierzowa polega na zastosowanie macierzy procesor*w (processor array). Obliczenia macierzowe s* w komputerze o takiej architekturze wykonywane w jednym kroku obliczeniowym, co znakomicie przyspiesza obliczenia.
Jako** komputer*w przyj*to analizowa* z pomoc* wska*nik*w szybko*ci dzia*ania:
FLOPS - liczba dzia*a* zmiennoprzecinkowych na sekund*;
MIPS - liczba milion*w instrukcji na sekund* (jako odniesienie przyjmuje si* instrukcj* mikrokodu - j*zyka wewn*trznego maszyny, tj. pojedynczej operacji obliczeniowej na zbiorze argument*w).
Aktualnie superkomputery maj* moc obliczeniow* rz*du 300 MFlops, a docelowo jest mo*liwo** uzyskania do 1000 MFlops (z inna technologi* urz*dze* prze**czaj*cych - opart* o z**cza Josephsona; komputery optyczne jeszcze wi*cej). Dla por*wnania aktualne mikrokomputery osi*gaj* moc rz*du 10 MFlops.
Szybko** dzia*ania komputera zale*y g**wnie od cz*sto*ci zegara taktuj*cego, ale r*wnie* od technologii wykonania procesora. Tak* nowoczesn* technologi* stosunkowo niedawno wprowadzon* jest technologia RISC - Reduced Instruction Set Computer (komputer o ograniczonym zbiorze instrukcji).
Rozw*j superkomputer*w warunkowany jest technologi* urz*dze* prze**czaj*cych. Najwi*ksze nadzieje wi*zane s* aktualnie z komputerami optycznymi. Mo*liwo** zastosowania takich komputer*w wi**e si* ze zjawiskiem bistabilno*ci optycznej. Dla pewnych materia**w wsp**czynnik za*amania *wiat*a jest funkcj* nat**enia sygna*u *wietlnego. Z materia*u takiego mo*na wykona* tranzystor fotoniczny o 2 stanach stabilnych, dzia*aj*cy 1000 razy szybciej ni* tranzystor elektroniczny.
Trzeba jednak te* wspomnie* o zupe*nie nowatorskich rozwi*zaniach jakimi s* np. komputery biologiczne oparte o DNA, lub komputery oparte o poj*cie chaosu.
Superkomputery znalaz*y ju* szerokie pole zastosowa*, m.in.:
- w fizyce wielkich energii do modelowania cz*stek elementarnych;
- w produkcji uk*ad*w scalonych o wielkiej skali integracji;
- w modelowaniu pogody i pr*d*w oceanicznych (metod* element*w sko*czonych);
- w grafice i rzeczywisto*ci wirtualnej;
- w konstruowaniu z*o*onych maszyn i urz*dze* (wsp**czesne samoloty, samochody itp.).
1.6. Mikrokomputery
1.6.1. Definicja mikrokomputera
Mikrokomputerem nazywamy komputer z jednym procesorem g**wnym, w formie pojedynczego uk*adu scalonego zrealizowanego w technologii CMOS-LSI, kt*ry nazywamy mikroprocesorem.
1.6.2. Drzewo zastosowa* mikrokomputer*w
| - zastosowania osobiste i domowe
| - zastosowania profesjonalne
| - muzyka, grafika, historia, medycyna, poligrafia
| - obliczenia in*ynierskie
| | - projektowanie CAD/CAM, optymalizacja konstrukcji
| | - dob*r materia**w
| | - doradztwo techniczne, systemy eksperckie
| | - statystyka techniczna, techniczne bazy danych
| | - szkolenie, edukacja techniczna CAE
| - zarz*dzanie
| - systemy sterowania
| | - regulacja, automatyka
| | - sterowanie, robotyka
| | - pomiary i zabezpieczenia
| - systemy kierowania
| | - akwizycja danych
| | - kontrola proces*w
| | - optymalizacja kr*tkoterminowa
| | - doradztwo operatorskie
| - systemy zarz*dzania
| - akwizycja i ewidencja danych
| - analiza
| - planowanie i optymalizacja *rednio- i d*ugotermin.
| - sprawozdawczo**
1.6.3. Podstawy logiki i arytmetyki mikrokomputer*w
Aby komputer mog* liczy*, tzn. rozwi*za* jaki* problem matematyczny, problem ten musi zosta* sprowadzony do ci*gu elementarnych operacji arytmetycznych: dodawanie, odejmowanie, mno*enie, dzielenie oraz do elementarnych operacji logicznych. Operacje realizowane przez mikroprocesor sa jeszcze bardziej ograniczone; mno*enie i dzielenie zast*puje si* ci*giem operacji dodawania i odejmowania. W technice komputerowej stosuje si* liczbowy system binarny, tj. wykorzystuj*cy tylko cyfry 0 i 1. Wiemy, *e cz*owiek stosuje system dziesi*tny, co wynika z anatomii (10 palc*w u r*k). Zastosowanie systemu binarnego wynika st*d, *e trudno jest skonstruowac prosty element elektroniczny 10-stanowy, natomiast *atwo dwustanowy. Jest nim tzw. trigger utworzony z dwu tranzystor*w.
Liczb* w dowolnym systemie liczbowym, og*lnie w S-tym systemie liczbowym przedstawiamy og*lnym wzorem
(1.1)
gdzie: S - stopie* systemu liczbowego; i - wska*nik miejsca cyfry w liczbie; n - liczba miejsc liczby; l - cyfra stoj*ca na i-tym miejscu w liczbie.
Odpowiednio np. liczba dziesi*tna 18 zgodnie z wzorem (1) jest obliczana jako
1 * 101 + 8 * 100 (1.2)
Ta sama liczba w systemie binarnym ma zapis 10010 i jest obliczana jako
1 * 24 + 0 * 23 + 0 * 22 + 1 * 21 + 0 * 20 (1.3)
Po wykonaniu mno*e* przekonywujemy si*, *e jest to ta sama liczba.
W technice mikrokomputerowej operujemy r*wnie* systemem heksadecymalnym, kt*rego podstaw* jest 16 a cyframi: 0, 1, .., 9, A (odp.10), B (odp.11), C (odp.12), D (odp.13), E (odp.14), F (odp.15).
Liczba dziesi*tna 18 w uk*adzie heksadecymalnym ma posta* 12 i jest obliczana jako
1 * 161 + 2 * 160 (1.4)
Logika mikrokomputer*w oparta jest o nast*puj*ce elementarne funkcje logiczne:
Suma logiczna (alternatywa): f(a,b) = a + b (czyta si* a lub b)
f(a,b) = a or b (1.5)
gdzie: a, b - zmienne logiczne tj. takie, kt*re przybieraj* warto** true lub false.
Iloczyn logiczny (koniunkcja): f(a,b) = a * b (czyta sie a i b)
f(a,b) = a and b (1.6)
Negacja logiczna: f(a) = ¬ a
f(a) = not a (1.7)
Z powy*szych elementarnych funkcji logicznych tworzy si* z*o*one funkcje logiczne: negacj* iloczynu logicznego oraz tzw. logiczn* r**nic* symetryczn*.
Uniwersalna struktura mikrokomputera przedstawia si* jak na poni*szym rysunku 1.1.
Rys.1.1. Struktura mikrokomputera.
Mikroprocesor komunikuje sie z pozosta*ymi dwoma elementami: pami*ci* operacyjn* i z uk*adami wej*cia-wyj*cia za po*rednictwem trzech magistral:
- magistrali adresowej
- magistrali danych
- magistrali steruj*cej,
jak na poni*szym rysunku 1.2.
Rys. 1.2. Magistrale mikrokomputera.
Ka*da magistrala jest to zbi*r r*wnoleg*ych *cie*ek obwodu drukowanego na p*ycie g**wnej, w liczbie odpowiadaj*cej liczbie bit*w s*owa mikrokomputera.
Mikrokomputer dzia*a w takt impuls*w zegarowych. W momencie danego impulsu uk*ad bit*w na magistralach (tj. po prostu obecno** napi*cia na *cie*kach obwod*w drukowanych) powoduje wykonanie elementarnej operacji. Np. aby zapisa* dan* do pami*ci operacyjnej, mikroprocesor musi wyda* j* na szyny magistrali danych, r*wnocze*nie wyda* polecenie zapisu (w postaci okre*lonej kombinacji bit*w) na magistral* steruj*c* oraz wyda* adres pod kt*rym dana ma by* zapisana, na magistral* adresow*. Bity na magistrali adresowej otwieraj* okre*lone bramki logiczne w tzw. SIMM-ach tj. uk*adach scalonych pami*ci i w ten sposob dana jest zapisywana.
Koniec wyk*adu 1
Plik W1TEPR99.DOC
Edytor WORD 6.0 PL