Stonehenge
ABACUS
John Napier
Blaise PASCAL
Blaise Pascal (1623-1662) Francia filozófus és matematikus. A tízes számrendszer jegyeit egy körtárcsa kerületére írva megoldja az átvitel (carry) automatizálását s ezzel a számlálás, valamint az erre alapuló összeadás illetve kivonás gépesítését.
PASCAL KALKULÁTORA
PASCAL KALKULÁTORA (1642)
1
0
1
9
0
1
9
2
2
2
3
3
3
0
Az „átvitel-jegy” automatikusan tovább vonul ! A
kallantyúval számlálásra is alkalmazható
9
Gottfried Wilhelm LEIBNIZ
Gottried Wilhelm von LEIBNI(T)Z
1646-1716
Német filozófus és matematikus. Pascal kalkulátorát továbbfejleszti, bevezetve az alapműveletek mindkét operandusa számára egy-egy regisztert, melyek közül az egyik eltolható. Így megvalósíthatja a tízzel, majd ismételt összeadás ill. kivonás segítségével a tetszőleges számmal való szorzást ill. osztást is.
LEIBNITZ KALKULÁTORA (1692)
LEIBNITZ KALKULÁTORA (1692) 1
0
1
9
0
9
1
2
2
2
3
3
3
0
9
A ( itt gyűlik és jelenik meg az eredmény ) A akkumulátor accumulator 9
0
9
1
0
9
1
0
1
2
2
2
3
3
3
B buffer regiszter ( nincs semmiféle fogaskerék ! ; eltolható ! )
AZ ANALÍZIS MEGJELENÉSE Leibnitz és Newton kialakítják az infinitezimális számítást. Kialakul az analízis. Fel lehet írni differenciálegyenleteket. Még a legegyszerübbeknek sincs zárt alakú megoldása: -x y’ + y = 0 megoldása y = e ; y nem számítható ki x-ből y’’ + y = 0 „ y = sin x ; cos x „ Ezeknek a függvényeknek az értékét táblázatok adják meg. Ezeket a táblázatokat meg kellett csinálni.
(Logar- tábla)
Babbage ezt a táblázatkészítést akarta automatizálni.
Charles BABBAGE
Charles Babbage
1792- 1871
A polinómok táblázatolására kifejleszti és megépíti az u.n. Differencia Gépet. Ennek továbbfejlesztése képen az egymáshoz kapcsolt hat összeadó helyett egyetlen kalkulátort (aritmetikai egységet) és sok tároló rekeszt tartalmazó memóriát javasol, melyből az adatok lyukkártyákon tárolt utasítások nyomán jutnak az aritmetikai egységbe ill. abból vissza a memóriába. Ez a mai számítógép őse.
TAYLOR SOR Babbage tudta, hogy minden folytonos függvény hatványsorba fejthető: f(x) = f(0) + f’(0).x/1! + f’’(0).x^2/2! + ….. Pl.: sin (x) = x - x^3/3! + x^5/5! - x^7/7! + …..
DIFFERENCIA GÉP Babbage ugyancsak tudta, hogy egy
n-ed rendű polinóm n-edik differenciája konstans Pl.: y
= x^2 + 2x + 1
x 0
y 1
1
4
2
9
3
16
4
25
5
36
dy 3 5 7 9 11
1
d^2y
ADD
3
2
ADD
2
2 2 2
1
4
4
9
9
16
3
3
5
5
7
7
2
2
2
2
2
2
DIFFERENCIA GÉP
aX^2 + bX + c X= 0:N 3 digit pontos BABBAGE’s DIFFERENCE ENGINE
A MEMÓRIA MEGJELENÉSE Babbage megépített hat regiszteres differencia gépe maximum ötödfokú polinómok táblázatolását engedte meg. Bonyolultabb pl. trigonometrikus függvények megközelítéséhez nem elégséges egy ötödfokú hatványsor. 10, 20, 50 vagy tetszőleges n-ed fokú polinómokra lehet szükség. Ez ugyanennyi bonyolult fogaskerekes összeadómű megépítését tenné szükségessé. És itt jött Babbage korszaknyitó ötlete: Használjunk csak egyetlenegy -- felépítésében a szűkséges fogaskerékrendszer miatt bonyolult -- összeadóművet, vagy általában aritmetikai egységet, s n darab közönséges keréktárcsákból álló tároló regisztert. Ez lesz a MEMÓRIA. Meg kell oldani, hogy a kezdő és átmeneti értékeket tároló memóriaregiszterek tartalma -- valamilyen módon megvalósítandó adatátvitel révén -cserélhető legyen az aritmetikai egység A és B regisztereinek tartalmával. Az adatátvitelek sorrendjét egy lyukkártyán tárolt program alapján működő vezérlőmű vezérelné. És ez lett a később megtáltosodó gondolatok magja.
Analytical Engine
Analytical Engine ADAT BUS
BABBAGE ~1840 ADAT BUS LYUKKÁRTYA
Y= DY = D2Y =
1 3 2
VÉGREHAJTÓ KERÉK
0 1 2 3 4
I. I.
II. KLAVIATÚRA
MEMÓRIA IN OUT
IN OUT
PRINTER
A
STORE CLEAR II.
ADD LOAD
ADAT BUS ADAT BUS
ALU
B
GÉPI és ASSEMBLY KÓD KÓD LD
0 1 2 3 4 5 6 7 8 9 10 11 12
AD CL ST
CÍM PR RD
3
2
1
0
CLR A LOAD B, (0) ADD A, B LOAD B, (1) ADD A, B STR (0), A OUT (P), A CLR A ADD A, B LOAD B, (2) ADD A, B STR (1), A LOAD B, (0)
LYUKKÁRTYA 0 1 2 3 . . .
READ PRINT STORE CLEAR ADD LOAD
KETTES SZÁMRENDSZER A tizes számrendszerben működő aritmetikai egység és az ugyancsak tizes számrendszerű memóriarekeszek közötti
ADATÁTVITEL nem volt megvalósítható a kor technológiai szinvonalán Babbage minden erőfeszítései ellenére sem. A minimális számjegyű, csak két számjegyet tartalmazó kerekek felvetése villantott fel a megoldható adatátvitelre némi reményt, de csak 100 év késéssel és kerekek nélkül.
REGISZTEREK DECIMÁLIS (TIZES)
0 1 2
3 4 5
8 9 0
1 2 3
BINÁRIS (KETTES)
0
1
0
1
HA BINÁRIS, ÚGY DOMINÓKBÓL IS LEHETNE
0 1 0 1
ÍRHATÓ - OLVASHATÓ REGISZTEREK Két értéket (bináris jegyet, bitet) tároló (elektromosan írható és olvasható) eszközt először relékkel, majd elektronikusan, úgy nevezett FLIP-FLOP-okkal tudtak megvalósítani. A kerekek alkalmazása helyett ezekkel a működési sebesség jelentősen megugorhatott. 1944-46 között NEUMANN János elemezte, hogy ilyen ígéretes sebességek mellett milyen kell legyen egy számítógép méltó architektúrája. Megszületett a tárolt programmozású COMPUTER gondolata. A több száz millió PC is ‘von Neumann computer’.
Herman Hollerith
NEUMANN János Budapest 1903 - Princeton (USA) 1957
Von NEUMANN COMPUTER NEUMANN ~1944
MEMÓRIA 0. Utasítás 1. „ 2. „ 3. „
PROCESSZOR PC RA CÍM BUS
A
MUX AND OR XOR CLR ADD SUB SHR SHL
UTASÍTÁSOK ADATOK KLAVIATÚRA
PRINTER
Y= DY = D^2Y =
1 3 2
IN OUT
IR
ALU B
ID CONTROL UNIT
ADAT BUS CLOCK
A LOGIKA ELEMEI A logikai változók lehetséges értékei:
0, 1
Ezeket 0 V illetve +5 V feszültségszinttel fogjuk reprezentálni
Egyváltozós logikai művelet a NEGÁLÁS:
Y = A’ A
Kétváltozós logikai művelet az ÉS és VAGY Y = AB Y = A+B
Y
LOGIKAI KAPUK
2 INVERTER = MEMORIA ?
Q
?
_ Q
DATA BUS
0
?
?
Q
?
_ Q ?
0
Q
1
_ Q
0
1
0
0
DATA BUS
1
DATA BUS
1
Q
0
_ Q 1
0
Q
1
_ Q
0
DATA BUS
0 1
0
0
1
1
DATA BUS
Q
Q
1
_ Q
1
0/1
0
DATA BUS
_ Q 1
0
DATA BUS
1
Q
0
_ Q
1
DATA BUS
1/0
ARITMETIKAI-LOGIKAI EGYSÉG i. bit D
Q
C
ajel
Ai+1
SUM TÖ Cout Cin D
ajel
Q C
A2 7 6 5 4 3 2 1 0 A1 8x1multiplexer A0
C
D
Q
Ai
SUM TÖ Cout Cin
Ci+1
Bi+1
D órajel
Q C
órajel
Q
Ai-1
SUM
TÖ Cout Cin
Ci-1
Bi
D
C
.... I2 I1 I0 CLA A regiszter törlés CMA A komplementer (0-1 csere) utasításregiszter AND ÉS művelet A^B IOR VAGY művelet A_B RAL A bitenkénti eltolás balra (szorzás 2-vel) RAR A bitenkénti eltolás jobbra (osztás 2-vel) ADD összeadás A + B LD olvasás az adatbuszról az A regiszterbe
órajel
A2 7 6 5 4 3 2 1 0 A1 8x1multiplexer A0
D
i-1. bit
órajel
adatbusz írás
adatbusz i. bit
Q C
Bi-1
A2 7 6 5 4 3 2 1 0
i+1. bit
ÖSSZEADÓ Teljes összeadó:
Félösszeadó, HA: AB 00 01 10 11
A B
ci-1 ai bi ci si 0 0000 0 0101 0 1001 0 1110 1 0001 1 0110 1 1010 1 1111
CS 00 01 01 10
S
S1
A C
B Cin
HA
S HA Cout
ELEKTRONIKUS VERKLI ROM
DECODER 0
1
1
0
0
1
0
1
0
1
0 1 1
1 0 1
0 1 0
1 0 0
1 1 1
1 0 0
1 0 1
0 1 0
A0
2 3
A1
4
A2 ADR COUNTER
DATA BUS pl. zongora billentyűkhöz
FLEXIBILISEBB VERKLI ROM DECODER
NEXT ADDRESS 0 1 2
0
A0
3
1
A1
4
0
A2
5
DATA
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
ADR LATCH
1 3
0
1
0
1
DATA BUS
0
0
1
MÉG FLEXIBILISEBB VERKLI ROM
Even = 0 Odd = 1 DECODER
NEXT ADDRESS
0 0 1
A0
0
A1
0
A2
A0
1
A1 A2 A3
2 3
DATA
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
2
0
1
0
1
0
1
0
1
0
0
1
3
0
0
1
1
1
0
0
1
0
1
0
4
0
1
1
0
1
0
0
1
0
0
0
5
0
0
0
0
0
0
1
0
1
1
0
6
ADR a
a. 3
2a 2a+1
1
0
1
0
1
DATA BUS
0
0
1
Közlekedési lámpa 0
x=1
P
x=1
PS
x=0 x=0
x=1
S
x=1 x=1
Z
Véges állapotú automata / Algorithmic State Machine
X1 X2 Xm
Clk
Kombinációs logikai hálózat
X0
J Q Clk piros K Q
visszacsatolás
Q0
D0
Q0
256 x 8 ROM A0 D0
D1
Q1
A1
D1
D1
D2
Q2
A2
D2
D2
D3
Q3
A3
D3
D3
D4
Q4
A4
D4
D5
Q5
A5
D5
D6
Q6
A6
D6
D7
Q7
A7
D7
D tároló
J
Q
Q1
Clk sárga K
Q
J Q Clk zöld K Q
Qn bemenet
órajel
D0
kimenet
Von NEUMANN COMPUTER NEUMANN ~1944
MEMÓRIA 0. Utasítás 1. „ 2. „ 3. „
PROCESSZOR PC RA CÍM BUS
A
MUX AND OR XOR CLR ADD SUB SHR SHL
UTASÍTÁSOK ADATOK KLAVIATÚRA
PRINTER
Y= DY = D^2Y =
1 3 2
IN OUT
IR
ALU B
ID CONTROL UNIT
ADAT BUS CLOCK
INPUT - OUTPUT UTASÍTÁSOK ASSEMBLY Language MOV DX, IN AL, MOV MOV OUT
DX, AL, DX,
300H DX
;Move Port Address into DX ;Input from Port into AX
300H 55H AL
;Move Port Address into DX ;Move DATA (55H) into AL ;Output DATA to Port
BASIC
PASCAL
PA = &H300 DATA = INP ( PA ) OUT PA, DATA
;Port Address Assignment ;Input from Port PA into DATA ;Output DATA to Port PA
PA := $300; DATA := PORT [PA]; PORT [PA] := $55;
{Port Address assignment} {Input from Port into DATA} {Output DATA to Port PA}
pa = 0x300; indata = inportb (pa); outportb (pa,outdata0;
/*Port Address assignment*/ /*Input from Port into indata*/ /*Ouput outdata to Port pa*/
C
ADAT, CÍM és CONTROL BUS DATA
D0 D1
M E M O R Y
D15
ADDRESS
A0 A1
A15
CONTROL
RD’ WR’ MEM’ I/O’ INT
BUS BUS CONNECTORS for I / O interfaces
Interfészek:
KEYBOARD
DISPLAY
DISK
PRINTER
Ezeket nekünk kell csinálni
SERIAL
SPECIAL
P R O C E S S O R
I/O CIKLUS IDŐDIAGRAMMJA T1 CLK AEN
OUT
INP
DATA IOW
DATA IOR
T2
T3
T4
DMA (DIRECT MEMORY ACCESS) DATA D0 D1
M E M O R Y
DMA
I/O
D15
ADDRESS
A0 A1
A15
CONTROL
RD’ WR’ MEM’ I/O’ INT DMA
MEM ADR COUNTER
I / O ADR
P R O C E S S O R
DATA
DMA CONTROLLER
MOORE TÖRVÉNY Gordon E. Moore, 1965: a processzorok sebessége közel megduplázódik 2 évente. Más elektronikai komponensek is hasonlóan viselkednek!
MOORE TÖRVÉNY
MOORE TÖRVÉNY
MOORE TÖRVÉNY
MOORE TÖRVÉNY
`
MIKROSZÁMÍTÓGÉPEK
Amint idővel tekintélyesebb (>kByte) mennyiségű memóriát is sikerült a processzor mellett egy chipen megvalósítani, úgy megszülettek az egy chipes MICROCOMPUTER-ek. PIC ATMEL/Arduino Raspberry Pi Ezek ma már évi milliárdos szériákban készülnek.