. - 3GL   - 4GL

. .

- SPARC-.

6.1.

6.1.1.

- .

- , , .

, , , , .

- . , , (. 6.1).

6.1.2.

, .
. .

6.1.2.1.

. .


, . (1945-1970 .) - - , - . (1970-1985 .) - - , - . (1981-...) - - , - .

, 1943 (Thomas Watson), IBM, , " ".

6.1.2.2.

, .

40- XX , . 1948 , . , .

6.1.2.3.

.

( ).

6.1.2.4.

. , .

6.1.3.

6.1.3.1.

- , -.

, :

. 6.2 " - ". 90- XX .

, . :

6.1.3.2.

. - (. 6.3). ( .7), .

6.1.3.3.

, , (. 6.4). ( ) , .

, . .

6.1.3.4.

60- XX . - . , .

SIMD
, , . , . , .

6.1.3.5.

, . 6.5.

. 6.6.

6.1.4.

, , , .

- . IEEE Spectrum [Computers 1997], 2002 (. 6.5).

, .

- .

6.1.5.

- , .

, :

6.2.

6.2.1.

. , , , , .

, . . - , -.

6.2.1.1.

, () (John von Neumann) 40- XX . [ 1985]:

, , 6.1.

6.1.

program_counter = 0; /* */

do {

   instruction = memory[program_counter++]; /* */

   decode(instruction); /* */

   fetch(operands); /* */

   execute; /* */

   store(results); /* */

} while ( instruction != halt);

6.2.1.2.

(Accumulator architecture) . - , (. 6.6). - () . . . .

, :

load  1000 /* 1000 */

add   1002 /* 1002 */

store 1003 /* , , 1003 */

6.2.1.3.

(Stack architecture) . , (. 6.7). . .

, :

push 1000 /* 1000 */

push 1002 /* 1002 */

add       /* , , */

pop  1003 /* , , 1003 */

6.2.1.4. -

- (Load/Store architecture) , (. 6.8). , . ( ) . : , .

:

add reg_src_l, reg_src_2, reg_dest /* reg_src_l reg_src_2 reg_dest */

6.2.2. CISC, RISC VLIW

, -

CISC, RISC VLIW , . , CISC, - RISC. , " ", - .

6.2.2.1.

, (Complete Instruction Set Computer - CISC), IBM IBM/360, 1964 . CISC- VAX. Intel ( 8 Pentium) .

CISC- :

6.2.2.2.

, (Reduced Instruction Set Computer - RISC), , 70- XX , . 20/80, - 20% 80% , 80% 20% . IBM 801 - RISC- (. 6.9), 1979 .

RISC (David Patterson), , 1980 .

RISC- :

RISC- "" , .

6.2.2.3.

(Very Long Instruction Word - VLIW) - . . . .

VLIW- -3. 256 500 . , . 7 - . , - , ( 1024 512 ). 8 () .

(Explicitly Parallel Instruction Computing - EPIC). EPIC Intel Hewlett-Packard. VLIW, (, VLIW-, ). :

6.2.3.

, - .

(. . ). , . , .

6.2.3.1. IEEE 754

IEEE 754. , . . 6.1 .

6.1.

6-7 4
12-16 8

, , . . 6.2 , . . , , - .

6.2.

8 23
11 52

, . . . , .

. a b- IEEE 754 {} > {b} + 8, {} - IEEE 754. := + nb ( n - ) . n := + b, ( ). nb, n := + (nb) .

6.2.3.2.

.

. , . - . .

, , (http://cs.utep.edu/interval-comp/main.html). =[, '] y=[, ']. :

+ = [ + , ' + ']

- = [ - ' , ' - ]

* = [min{x'y', ', ', }, max('', ', ', }]

1 / = [1/', 1/] ( )

:

/ = * (1/)

. . , f () = ( - 1),

f([0, 1]) = [0, 1]([0, 1]-1) = [, 1] [-1, 0] = [-1, 0].

[-1/4, 0].

. , :

6.2.4.

[ 1985] , , , . . - . , , "" , .

.

6.2.5.

, , . - .

.

, (, ) , .

. . . . , :

.

, . .

6.3.

6.3.1.

- - , . . :

:

.

6.3.2.

- , , . .

. . 6.10 , .

.

6.3.


( )

( )
3 32
2- 30 4 096
300 500 000
() 30 000 000 10 000 000

6.3.3.

. , , [ 2001].

6.3.4.

- . . .

6.3.5.

. .

. . . DEC. - ; . , (. . 6.5.2).

, . ( ) . , , , .

, .

6.4. SPARC-

, , , - . .

- SPARC (Scalable Processor ARChitecture). Assembler , .

6.4.1. SPARC-

SPARC- 1985 Sun Microsystems Inc. RISC I, RISC II SOAR, 80- XX (. . 6.9).

, SPARC- RISC-. , :

:

SPARC- 32- . 32- SPARC-V8, 32 . 64- SPARC-V9.

6.4.2. SPARC-

SPARC-, , , .

6.4.2.1.

Assembler . . 6.4 . .

6.4. SPARC-

%ri i (0< i <3l)
%gi (%r0-%r7) i (0< i <7)
%ii (%r24-%r31) i (0< i <7)
%li (%r16-%r23) i (0< i <7)
%oi (%r8-%r15) i (0< i <7)
%fi i (0< i <3l)
%sp - (%o6)
%fp - ( ) (%i6)

, , :

Assembler 8 (global) 24- . (in) %ii, (local) %ii (out) %oi . . (. 6.11). 3- 32-. , (floating point).

SPARC- 20 . . 6.5.

6.5. SPARC-

% (Program Counter)
%NPC (Next Program Counter)
%PSR (Processor State Register)

6.4.2.2.

Assembler :

- , /* */.

(. 6.6).

6.6. SPARC-

opcode [%reg1+const], %reg2 ( opcode [%reg1+%reg2],%reg3)
, ,

opcode %reg1, const, %reg2 ( opcode %reg1,%reg2,%reg)

opcode address

, , 13- . 6.2 .

6.2.

ld [%fp+68],%o0 ! %0 [%fp+68]

st %o0, [%fp-4] ! %0 [%fp-4]

add %i4,%o0,%i5 ! %i4 %0, %i5

add %i4,3,%i4   ! 3 %i4

6.4.2.3.

(. 6.12) . , , (frame). . ( %sp) .

6.4.3. Assembler

Assembler [SPARC 1994].

6.4.3.1.

RISC- . SPARC- .

6.7.

ldub
ldsb
lduh
ldsh
ld (32-)
ldd
stb
sth
st
std

6.4.3.2.

(. 6.8) . , (, subcc).

6.8.

add
sub
and ""
andn ""
or ""
orn ""
xor ""
xnor ""

6.4.3.3. sethi nop

sethi 22- const 22 %reg:

sethi const,%reg

10 %reg . Assembler: %hi() %lo(), 22 10 , . 32- L (, ) %0, :

sethi %hi(L),%o0
or    %o0,%lo(L),%o0

, Assembler set. set L, %o0 .

, st, (, %lo):

sethi  %hi(L),%o0
st     %10,[%o0+%lo(L)] 

nop (no operation) sethi 0,%g0.

6.4.3.4. save restore

save restore .

save restore add, . save, 96 , :

save     %sp,-96,%sp 

6.4.3.5.

. 6.9.

6.9.

ba
be ""
bne " "
bg ""
bge " "
bl ""
ble " "
call
jmpl

, ( ). , %, %NPC, . , , . , . : .

- . . , % %5, %.

6.4.3.6.

, , . , , , . .

ldstub  [addr],reg; 
swap [addr],reg. 

6.4.3.7.

SPARC- ( RISC-) , . SPARC-Assembler , , SPARC-. . 6.10.

6.10.

cmp %reg,%reg
subcc %reg,%reg,%g0
dec %reg
sub %reg,l,%reg
inc %reg
add %reg,1,%reg
mov %reg,%reg
or %g0,%reg,%reg
neg %reg
sub %g0,%reg,%reg
not %reg
xnor %reg,%g0,%reg
restore
restore %g0,%g0,%g0
ret
jmpl %i7+8,%g0

6.4.3.8. Assembler

( ) Assembler , , . . . 6.11.

6.11. Assembler

.section
.size
( )
.type
.align
( )
.skip
.global
,
.word
.double

6.4.4. Assembler

- Assembler, SPARC-Assembler, . , , . , Assembler , (, ) .

6.4.4.1.

, .

.global main 
main: save %sp,-96,%sp.
ret        !	     
  restore  !	     
           !	,  restore -   
           !	    ret. 

, "Hello, world!", 6.3.

6.3. , "Hello, world!"

!    
.section ".text"
.global main
.align 4 main:
save %sp,-96,%sp ! : (printf)
set string,%o0 ! sethi or
call printf
nop ! !
ret
restore !
!
.section ".rodatal"
.align 4
string:
.ascii "Hello, world!\n\000"

6.4.4.2. ,

, Assembler. ( 6.4) Sun Microsystems Inc. Assembler ( 6.5).

6.4. C

#include <stdio,h>  
int counter(int i)   {
return(i);
}
int main(} (
    int i; 
    int s = 0; 
    for (i=0; i<500; i++)
         s = s + counter(i); 
    printf("%d \n", s); 
    return 0;
}

6.5. ,

    .section	   ".bss",#alloc,#write 
Bbss.bss:
    .section	   ".data",#alloc,#write 
Ddata.data:
    .section	   ".rodata",#alloc
!
!   CONSTANT POOL
!
Drodata.rodata:
    .file "for.c"
    .section	   ".rodata1",#alloc
    .align 4
!
! CONSTANT  POOL
!
.L104:
    .ascii  "%d \n\000"
    .section	   ".text",#alloc,#execinstr 
/* 000000       0 */      .align  4 
/* 000000         */      .skip   16 
/* 0x0010         */      .align  4 
! FILE  for.c 
!    1             !#include <stdio.h>
!    2	            !int counter(int i)  {
!
! SUBROUTINE  counter
! OFFSET     SOURCE  LINE      LABEL    INSTRUCTION
                               .global counter
                         counter:
/* 000000       2 */           retl   ! Result  = %o0 
/* 0x0004         */           nop 
/* 0x0008       0 */           .type  counter, 2 
/* 0x0008       0 */           .size  counter,(.-counter)
.section ".text",#alloc,#execinstr
/* 000000 0 */ .align 4
! 3 ! return(i);
! 4 ! }
! 5 lint main() { i
! SUBROUTINE main
! OFFSET SOURCE LINE LABEL INSTRUCTION
.global main
main:
/* 000000 5 */ save %sp,-96,%sp 
! 6 ! int i; 
! 7 ! int s = 0; 
/* 0x0004 7 */ or  %g0,0,%10 
! 8 ! for (i=0; i<500; i++) 
/* 0x0008 8 */ or %g0,0,%ll 
! 9 ! s = s + counter(i);  
/* 0x000c 9 */ or %g0,0,%o0
.L900000207:
/* 0x0010 9 */ call counter ! params = %o0 ! Result = %o0 
/* 0x0014 */ add %11,1,%11  
/* 0x0018 */ add %10,%o0,%10 
/* 0x001c */ cmp %11,500 
/* 0x0020 */ bl .L900000207  
/* 0x0024 */ or %g0,%ll,%o0 
! 10       ! printf("%d \n", s);
.L77000029:
/* 0x0028 10 */ sethi %hi (.L104),%gl 
/* Ox002c    */ add %gl,%lo(.L104),%o0
/* 0x0030    */ call printf ! params = %o0 %o1 ! Result = 
/* 0x0034    */ or %g0,%10,%o1
! 11 ! return 0; 
/* 0x0038 11 */ ret ! Result = %i0
/* 3c    */ restore %g0,0,%o0
/* 0x0040 0 */ .type main,2 
/* 0x0040 0 */ .size main,(.-main)

6.4.5. SPARC-

SPARC- UltraSPARC Sun Microsystems Inc. UltraSPARC . .

Ultra Port Architecture - UFA , , (. 6.13). . UPA "-".

UltraSPARC , , SPARC-V9 (. 6.14). , , , , /, -, , . , , . 12 . : - , - .

6.5.

6.5.1.

, .

( ) . (http://www.parallel.ru).

6.5.2.

:

. , , .

6.5.2.1.

[ 1999].

6.5.2.2.

, , . , , !
. . " "

- "-", [ 1999].

.

:

. , . , . . 6.15.

6.5.3.

: , , , , , , , , , , (http://www.parallel.ru). .

6.5.3.1.

, MIMD . , , .

6.5.3.2.

.

- . . . (. 6.16).

.

, :

6.6.

, - . , .

6.6.1.

6.6.1.1.

.

6.6.1.2.

- ( ) . , , , (. 6.17).

6.6.1.3.

.


, . .

6.6.2. IEEE 802

[, 1989]. :

6.6.2.1.

(Carrier Sense Multiple Access/Collision Detection CSMA/CD) [ 1990].

. - . . , .

- Ethernet. Ethernet IEEE 802.3.

6.6.2.2.

, . . , , .

6.6.2.3.

, . . - . , . , . . , . . , -, .

- - , , . .

. .

, - Token Ring. , Ethernet, - . .

6.6.3.

Ethernet. , Ethernet:

Ethernet , . 90- XX . - Ethernet (51,2 ). , , .

6.6.3.1. Ethernet (10Base-5)

. 6.18.

, .

- . , :

6.6.3.2. Ethernet (10Base-2)

. 6.19.

, .

- - , .

- :

6.6.3.3. Ethernet (10Base-T)

. 6.20.

, , . , .

() - .

- 100 .

6.6.3.4. Ethernet - (10Base-F)

- , . - .

6.6.4.

, .
.

- XX . - - "".

6.6.4.1.

- - , ,
.

- , , .

(-) Request for Comments (RFCs) (http://www.rfc-editor.org/). , , , , .

, , - (. . 7.2.3).

( , ) .

6.6.4.2.

- ARPA (Advanced Research Projects Agency). , :

, :

1998 Forbes " " , :

  1. (Linus Torvalds) (28 ) - Linux.
  2. (Richard Stallman) (45 ) - (Free Software Foundation).
  3. - (Tim Berners-Lee) (43 ) - World Wide Web.
  4. (Rob Glaser) (36 ) - RealNetworks.
  5. (Jerry Yang) (29 ) - Yahoo!

. Apache (http://www.apache.org) Linux .

. 6.12 , .

6.12. ,


(1996 )

(2000 )
15 000 000 75 000 000
45 000 000 300 000 000
55 000 000 400 000 000

, , . , ( ) :

, . . . , " ", .

, Microsoft . 90- XX Netscape, Sun Microsystems Inc. . , .

( , ) c . (7-) .

, - .
.

1. , 1989- ., . . - .: , 1989.

2. 1990 - . : , , .- .: , 1990.

3. 1991 - : , , . . - .: , 1991.

4. 1986 - : . 3- . - .: , 1986.

5. 1999 - . . . - .: "", 1999.

6. 1978- . . . - .: , 1978.

7. 1995 - . Internet. - .: - BHV, 1995.

8. , 1996- ., . Internet. - .: "", 1996.

9. 1985 - . . 2- .- .: , 1985.

10. 2001 - . . - .: - " ", 2001.

11. 1990 - . . - .: , 1990.

12. 1996- . Internet ( ).- .: , 1996.

13. 1972 - . . . - .: 1972.

14. Paul 1994 - Richard P. Paul. SPARC architecture, assembly language programming, and C. Prentice-Hall, Inc. 1994.

15. SPARC 1994 - The SPARC Architecture Manual. Prentice-Hall, Inc. 1994.

    . - 3GL   - 4GL

, (. snippet , ) , . , . , , . (IDE) . , Microsoft Visual Studio, Borland Developer Studio, . IDE Geany snippets.conf ( : /home/user/.config/geany) . , Macromedia Dreamweaver Zend Studio, -.




 10.11.2021 - 12:37: - Personalias -> WHO IS WHO - - _.
10.11.2021 - 12:36: - Conscience -> . ? - _.
10.11.2021 - 12:36: , , - Upbringing, Inlightening, Education -> ... - _.
10.11.2021 - 12:35: - Ecology -> - _.
10.11.2021 - 12:34: , - War, Politics and Science -> - _.
10.11.2021 - 12:34: , - War, Politics and Science -> . - _.
10.11.2021 - 12:34: , , - Upbringing, Inlightening, Education -> , - _.
10.11.2021 - 09:18: - New Technologies -> , 5G- - _.
10.11.2021 - 09:18: - Ecology -> - _.
10.11.2021 - 09:16: - Ecology -> - _.
10.11.2021 - 09:15: , , - Upbringing, Inlightening, Education -> - _.
10.11.2021 - 09:13: , , - Upbringing, Inlightening, Education -> - _.
Bourabai Research -  XXI Bourabai Research Institution