КомпьютерИзнутри.ppt

  • ppt
  • 30.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала КомпьютерИзнутри.ppt

1

Компьютер изнутри

Тема 1. Основные принципы

2

Определения

Компьютер (computer) – это программируемое электронное устройство для обработки данных.
аналоговые компьютеры – складывают и умножают аналоговые (непрерывные) сигналы
цифровые компьютеры – работают с цифровыми (дискретными) данными.
Hardware – аппаратное обеспечение, «железо».
Software – программное обеспечение, «софт».

Программа – это последовательность команд, которые должен выполнить компьютер.
Команда – это описание операции:
код операции
операнды – исходные данные (числа) или их адреса
результат (куда записать).

3

Процессор

Регистр – ячейка быстродействующей оперативной памяти, расположенная внутри процессора.

Процессор – микросхема, которая обрабатывает информацию и управляет всеми устройствами компьютера.

АЛУ – арифметико-логическое устройство
УУ – устройство управления

4

Структура памяти

Память состоит из нумерованных ячеек.
Линейная структура (адрес ячейки – одно число).
Байт – это наименьшая ячейка памяти, имеющая собственный адрес (4, 6, 7, 8, 12 бит).
На современных компьютерах 1 байт = 8 бит.

0

1

2

3

Слово = 2 байта

Двойное слово = 4 байта

5

Архитектура компьютера

Архитектура – принципы действия и взаимосвязи основных устройств компьютера (процессора, ОЗУ, внешних устройств).
Принстонская архитектура (фон Неймана):

процессор

ОЗУ (программа и данные)

устройства вывода

устройства ввода

прямой доступ к памяти

Гарвардская архитектура – программы и данные хранятся в разных областях памяти.

прямой доступ к памяти

скорость (одновременно читаем команду и данные)

нужно больше контактов у процессора

6

Принципы фон Неймана

А. Беркс, Х. Голдстайн, Д. Нейман «Предварительный доклад о машине EDVAC» (1945)
Принцип двоичного кодирования: вся информация кодируется в двоичном виде.
Принцип программного управления: программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
Принцип однородности памяти: программы и данные хранятся в одной и той же памяти.
Принцип адресности: память состоит из пронумерованных ячеек; процессору в любой момент времени доступна любая ячейка.

7

Выполнение программы

Счетчик команд (IP = Instruction Pointer) – регистр, в котором хранится адрес следующей команды.
IP
Команда, расположенная по этому адресу, передается в УУ. Если это не команда перехода, регистр IP увеличивается на длину команды.
УУ расшифровывает адреса операндов.
Операнды загружаются в АЛУ.
УУ дает команду АЛУ на выполнение операции.
Результат записывается по нужному адресу.
Шаги 1-5 повторяются до получения команды «стоп».

AB3D16

по адресу AB3D16

8

Архитектуры компьютеров

фон Неймана

многомашинная (независимые задачи)

многопроцессорная (части одной задачи, по разным программам)

параллельные процессоры (части одной задачи, по одной программе)

9

Компьютер изнутри

Тема 2. Персональный компьютер

10

Персональный компьютер (ПК)

ПК – это компьютер, предназначенный для личного использования (доступная цена, размеры, характеристики).

1977 Apple-II

1981 IBM PC
(personal computer)

ЕС-1841

11

Принцип открытой архитектуры (IBM)

на материнской плате расположены только узлы, которые обрабатывают информацию (процессор и вспомогательные микросхемы, память)
схемы, управляющие другими устройствами (монитором и т.д.) – это отдельные платы, которые вставляются в слоты расширения
схема стыковки новых устройств с компьютером общедоступна (стандарт)

конкуренция, удешевление устройств
производители могут изготавливать новые совместимые устройства
пользователь может собирать ПК «из кубиков»

12

Взаимосвязь блоков ПК

процессор

память

видеокарта

сетевая карта

контроллеры дисководов

Шина – многожильная линия связи, доступ к которой имеют несколько устройств.
Контроллер – электронная схема, управляющая внешним устройством по сигналам процессора.

контроллеры

13

Компьютер изнутри

Тема 3. Хранение целых чисел

14

Целые беззнаковые числа

Беззнаковые данные – не могут быть отрицательными.
Байт (символ)
память: 1 байт = 8 бит
диапазон значений 0…255, 0…FF16 = 28 - 1
Си: unsigned char Паскаль: byte

0

1

0

1

0

7

6

5

4

3

2

1

0

биты

младший

старший

старший полубайт
старшая цифра

младший полубайт
младшая цифра

416

E16

10011102 = 4E16 = ‘N’

15

Примеры

78 =

115 =

16

Целые беззнаковые числа

Целое без знака
память: 2 байта = 16 бит диапазон значений 0…65535, 0…FFFF16 = 216-1
Си: unsigned short int Паскаль: word

0

1

0

1

0

1

0

1

0

1

0

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

биты

старший байт

младший байт

4D16

7A16

1001101011110102 = 4D7A16

Длинное целое без знака
память: 4 байта = 32 бита диапазон значений 0…FFFFFFFF16 = 232-1
Си: unsigned int Паскаль: dword, longword

17

«-1» – это такое число, которое при сложении с 1 даст 0.
1 байт: FF16 + 1 = 1 0 0 16
2 байта: FFFF16 + 1 = 1 0 0 0 0 16
4 байта: FFFFFFFF16 + 1 = 1 0 0 0 0 0 0 0 0 16

Целые числа со знаком

Старший (знаковый) бит числа определяет его знак. Если он равен 0, число положительное, если 1, то отрицательное.

не помещается в 1 байт!

-1

-1

18

Двоичный дополнительный код

Задача: представить отрицательное число (–a) в двоичном дополнительном коде.
Решение:
Перевести число a–1 в двоичную систему.
Записать результат в разрядную сетку с нужным числом разрядов.
Заменить все «0» на «1» и наоборот (инверсия).
Пример: (– a) = – 78, сетка 8 бит
a – 1 = 77 = 10011012

0

1

0

1

0

1

1

0

1

0

1

0

= – 78

знаковый бит

19

Двоичный дополнительный код

Проверка: 78 + (– 78) = ?

0

1

0

1

0

1

0

1

0

1

0

– 78 =

78 =

+

20

Пример

(– a) = – 123, сетка 8 бит

– 123 =

21

Целые числа со знаком

Байт (символ) со знаком
память: 1 байт = 8 бит диапазон значений:
max
min
– 128 = – 27 … 127 = 28 – 1
Си: char Паскаль: shortint

0

1

1

0

можно работать с отрицательными числами

уменьшился диапазон положительных чисел

127

– 128

22

Целые числа со знаком

Слово со знаком
память: 2 байта = 16 бит
диапазон значений
– 32768 … 32767



Си: short int Паскаль: smallint
Двойное слово со знаком
память – 4 байта диапазон значений
– 231 … 231-1
Си: int Паскаль: integer

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

23

Ошибки

Переполнение разрядной сетки: в результате сложения больших положительных чисел получается отрицательное (перенос в знаковый бит).

0

1

0

0

1

0

+

64

64

7

6

5

4

3

2

1

0

1

0

– 128

24

Ошибки

Перенос: при сложении больших (по модулю) отрицательных чисел получается положительное (перенос за границы разрядной сетки).

1

0

1

0

+

– 128

7

6

5

4

3

2

1

0

0

0

– 128

1

в специальный бит переноса

25

Компьютер изнутри

Тема 4. Битовые операции

26

Инверсия (операция НЕ)

Инверсия – это замена всех «0» на «1» и наоборот.

0

1

0

1

0

1

1

0

1

0

1

0

Си:

Паскаль:

int n;
n = ~n;

var n: integer;
n := not n;

27

Операция И

Обозначения: И, , & (Си), and (Паскаль)

0

1

0

1

0

1

1

0

1

0

0

1

0

1

0

&

маска

5B16 & CC16 = 4816

A

B

A & B

0

1

0

1

0

x & 0 =
x & 1 =

0

x

28

Операция И – обнуление битов

Маска: обнуляются все биты, которые в маске равны «0».
Задача: обнулить 1, 3 и 5 биты числа, оставив остальные без изменения.

1

0

1

0

1

0

1

маска

7

6

5

4

3

2

1

0

D16

516

Си:

Паскаль:

int n;
n = n & 0xD5;

var n: integer;
n := n and $D5;

29

Операция И – проверка битов

Задача: проверить, верно ли, что все биты 2…5 – нулевые.

0

1

0

маска

7

6

5

4

3

2

1

0

316

С16

Си:

Паскаль:

if ( n & 0x3C == 0 )
printf ("Биты 2-5 нулевые.");
else printf ("В битах 2-5 есть ненулевые.");

if (n and $3C) = 0
writeln ('Биты 2-5 нулевые.')
else writeln ('В битах 2-5 есть ненулевые.');

30

Операция ИЛИ

Обозначения: ИЛИ, , | (Си), or (Паскаль)

0

1

0

1

0

1

1

0

1

0

1

0

1

ИЛИ

маска

5B16 | CC16 = DF16

A

B

A или B

0

1

1

0

1

x ИЛИ 0 =
x ИЛИ 1 =

1

x

31

Операция ИЛИ – установка битов в 1

Задача: установить все биты 2…5 равными 1, не меняя остальные.

0

1

0

маска

7

6

5

4

3

2

1

0

316

С16

Си:

Паскаль:

n = n | 0x3C;

n := n or $3C;

32

Операция «исключающее ИЛИ»

A

B

A xor B

0

1

1

0

1

0

Обозначения: , ^ (Си), xor (Паскаль)

0

1

0

1

0

1

1

0

1

0

1

0

0

1

0

1

1

XOR

маска

5B16 ^ CC16 = 9716

x XOR 0 =
x XOR 1 =

НЕ x

x

33

«Исключающее ИЛИ» – инверсия битов

Задача: выполнить инверсию для битов 2…5, не меняя остальные.

0

1

0

маска

7

6

5

4

3

2

1

0

316

С16

Си:

Паскаль:

n = n ^ 0x3C;

n := n xor $3C;

34

«Исключающее ИЛИ» – шифровка

(0 xor 0) xor 0 =

(1 xor 0) xor 0 =

0

1

(0 xor 1) xor 1 =

(1 xor 1) xor 1 =

0

1

(X xor Y) xor Y = X

код (шифр)

Шифровка: выполнить для каждого байта текста операцию XOR с байтом-шифром.
Расшифровка: сделать то же самое с тем же шифром.

35

Логический сдвиг

1

0

1

0

1

1

0

1

0

1

1

Влево:

0

0

1

0

1

0

1

0

1

0

1

0

1

1

Вправо:

0

в бит
переноса

Си:

Паскаль:

n = n << 1;
n = n >> 1;

n := n shl 1;
n := n shr 1;

в бит
переноса

shift left

shift right

36

Логический сдвиг

Логический сдвиг влево (вправо) – это быстрый способ умножения (деления без остатка) на 2.

1011012

10110102

сдвиг влево

сдвиг вправо

45

90

37

Циклический сдвиг

1

1

0

1

0

1

1

0

1

0

1

1

Влево:

1

0

1

0

1

1

1

1

0

1

0

1

Вправо:

Си, Паскаль: –
только через Ассемблер

38

Арифметический сдвиг

1

0

1

0

1

1

0

1

0

1

1

Влево (= логическому):

0

0

1

0

1

0

1

1

0

1

0

Вправо (знаковый бит не меняется!):

Си:

Паскаль: –

n = -6;
n = n >> 1;

– 6

– 3

39

Пример

Задача: в целой переменной n (32 бита) закодирована информация о цвете пикселя в RGB:
Выделить в переменные R, G, B составляющие цвета.
Вариант 1:
Обнулить все биты, кроме G. Маска для выделения G: 0000FF0016
Сдвинуть вправо так, чтобы число G передвинулось в младший байт.

0

R

G

B

31 24

23 16

15 8

7 0

Си:

G = (n & 0xFF00) >> 8;

Паскаль:

G := (n and $FF00) shr 8;

40

Пример



Вариант 2:
Сдвинуть вправо так, чтобы число G передвинулось в младший байт.
Обнулить все биты, кроме G. Маска для выделения G: 000000FF16

0

R

G

B

31 24

23 16

15 8

7 0

Си:

G = (n >> 8) & 0xFF;

Паскаль:

G := (n shr 8) and $FF;

41

Пример

0

R

G

B

31 24

23 16

15 8

7 0

Си:

R =
B =

Паскаль:

R :=
B :=

42

Компьютер изнутри

Тема 5. Вещественные числа

43

Перевод дробных чисел

10  2

2  10

0,375 =
 2

101,0112

2 1 0 -1 -2 -3

разряды

= 1·22 + 1·20 + 1·2-2 + 1·2-3
= 4 + 1 + 0,25 + 0,125 = 5,375

,750

0

0,75
 2

,50

1

0,5
 2

,0

1

0,7 = ?

0,7 = 0,101100110…
= 0,1(0110)2

Многие дробные числа нельзя представить в виде конечных двоичных дробей.

Для их точного хранения требуется бесконечное число разрядов.

Большинство дробных чисел хранится в памяти с ошибкой.

0,0112

44

Примеры:

0,625 =

3,875 =

45

Нормализация двоичных чисел

X = s  M  2e

s знак (1 или -1)
M мантисса,
e порядок

M = 0 или 1 M < 2

15,625 =

1111,1012 =

11,1111012 23

знак

порядок

мантисса

3,375 =

Пример:

46

Нормализованные числа в памяти

IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754)

15,625 = 11,1111012 23

s = 1 e = 3 M = 1,1111012

p

m

Знаковый бит:
0, если s = 1
1, если s = – 1

Порядок со сдвигом:
p = e + E (сдвиг)

Дробная часть мантиссы:
m = M – 1

47

Нормализованные числа в памяти

Тип данных

Размер, байт

Мантисса, бит

Порядок, бит

Сдвиг порядка,
E

Диапазон модулей

Точность, десятичн. цифр

float
single

4

23

8

127

3,4·10-38
3,4·1038

7

double
double

8

52

11

1023

1,7·10-308
1,7·10308

15

long double
extended

10

64

15

16383

3,4·10-4932
3,4·104932

19

Типы данных для языков: Си
Паскаль

48

Вещественные числа в памяти

15,625 = 1,1111012 23
4 байта = 32 бита

0

1

0

1

0

1

0

1

0

p = e+127 = 130
=100000102

m = M – 1 = 0,1111012

3,375 =

49

Арифметические операции

сложение

Порядок выравнивается до большего
5,5 = 1,011222
3 = 1,12 21 = 0,112 22
Мантиссы складываются
1,0112 + 0,1102
10,0012
Результат нормализуется (с учетом порядка)
10,0012 22 = 1,00012 23 = 1000,12 = 8,5

5,5 + 3 = 101,12 + 112 = 8,5 = 1000,12

50

Арифметические операции

вычитание

Порядок выравнивается до большего
10,75 = 1,01011223
5,25 = 1,01012 22 = 0,101012 23
Мантиссы вычитаются
1,010112
– 0,101012
0,101102
Результат нормализуется (с учетом порядка)
0,10112 23 = 1,0112 22 = 101,12 = 5,5

10,75 – 5,25 = 1010,112 – 101,012 = 101,12 = 5,5

51

Арифметические операции

умножение

Мантиссы умножаются
7 = 1,112  22 1,1 12
3 = 1,12  21  1,12
1 1 12
1 1 12
1 0 ,1 0 12
Порядки складываются: 2 + 1 = 3
Результат нормализуется (с учетом порядка)
10,1012 23 = 1,01012 24 = 101012 = 21

7  3 = 1112  112 = 21 = 101012

52

Арифметические операции

деление

Мантиссы делятся
17,25 = 1,0001012  24
3 = 1,12  21
1,0001012 : 1,12 = 0,101112
Порядки вычитаются: 4 – 1 = 3
Результат нормализуется (с учетом порядка)
0,101112 23 = 1,01112 22 = 101,112 = 5,75

17,25 : 3 = 10001,012 : 112 = 5,75 = 101,112