Семинар 1 (13.02.2015)


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Семинар
1

Архитектура ЭВМ

13

февраля
201
5

https://
vk.com/inf435

И снова привет!


Исупов Дмитрий
Сергеевич


МФТИ͕ ФИВТ


Бакалавриат
: 2007
-
2011


Магистратура͗ 2011
-
2013


Сейчас


ФУПМ͕ Аспирант 2 года


ABBYY Production,
программист
C++ (
с

2011
г͘)


E
-
Mail:
[email protected]


13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

2

Орг͘ вопросы


По просьбам трудящихся


Меньше теории͕ больше практики


Куда девать теорию?


Самостоятельно!


Лекции на сайте кафедры


goo.gl/X7evF


cs.mipt.ru



(

Counter
-
Strike . MIPT .
ru

)


Учебные материалы


Институтский цикл

»
Компьютерные основы программирования͘ Весенний
семестр
.


Группа
VK: https
://
vk.com/inf435

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

3

Представление программ


Мысли в голове разработчика


Псевдокод (словесное описание)


Языки высокого уровня (
напр
:
C/C++)


Магия компилятора͙


Языки низкого уровня (ассемблер)


Еще немного магии


Машинный код

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

4

Представление программ


Идеи͕ абстракции


Точное словесное описание


Понятное компилятору описание


Магия компилятора͙


Текстовое представление команд
CPU


Еще немного магии


Команды
,
понятные процессору

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

5

Место языка ассемблера


Команды
asm

=
команды
CPU


В удобном для человека виде


Asm



промежуточный этап компиляции

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

6

Архитектура ЭВМ


CPU


«мозг» компьютера


Обрабатывает данные


RAM (
ОЗУ)


память


Хранит данные


Внешние устройства


Источники и приемники данных


RAM
для
CPU


тоже внешнее устройство

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

7

Устройство
CPU


Арифметико
-
логическое устройство (АЛУ)


Выполняет арифметические операции


Устройство управления


Дает команды АЛУ


Регистры


Хранят обрабатываемые данные


Кеш процессора


Хранит данные

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

8

Хранение данных


Много разных устройств хранения данных


Зачем?


Параметры устройств


Скорость выдачи/сохранения данных


Объем хранимой информации


Стоимость


Больше скорость = больше стоимость


Поэтому меньше объем

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

9

Хранение данных


Удаленные серверы


Очень далеко͕ медленно͕ но большой объем


Тысячи Тб


Локальные диски


Единицы Тб


RAM


Единицы͕ десятки Гб


Кэш процессора


Разных уровней


Единицы Мб͖ сотни͕ десятки кб


Регистры процессора


Единицы байт

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

10

Кеширование данных


Важные данные из сети храним на
HDD


Обрабатываемые данные с
HDD
временно
храним в
RAM


Данные из
RAM
временно храним в
кеше

CPU


Разные уровни кэша
CPU


3й уровень кеширует данные из
RAM


2
й уровень кеширует данные из 3го уровня


1й уровень кеширует данные из 2го уровня

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

11

Команды
CPU


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


Над данными в регистрах


Передача данных


Между регистрами и
RAM


Пример͗
c = a + b


RAM(a)
-
� reg1


RAM(b)
-
� reg2


reg1 += reg2


reg1
-
� RAM(c)

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

12

Команды
CPU


Оптимизация
c = a + b


RAM(a)
-
� reg1


reg1 += RAM(b
)

-

так можно


reg1
-
� RAM(c
)


А быстрее можно?


RAM(a)
-

RAM(c
)


RAM(c
) += RAM(b)


Так уже нельзя!


Можно
reg


-

reg

или
reg


-
� RAM

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

13

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

14

Представление информации


Между двумя контактами


Есть напряжение = 1


Нет напряжения = 0


0, 1


двоичная система


5
10

= 101
2


1 разряд двоичного числа = 1 единица
информации (1 бит)

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

15

Представление информации


Объединение нескольких разрядов


8 бит = 1 байт


1 байт


минимальная единица хранения
данных в
PC


CPU
работает над числами с 32 или 64
разрядами


32 бит или 64 бит = 1 машинное слово

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

16

Представление информации


Двоичная система неудобна


Слишком много цифр


Шестнадцатеричная нотация


4 двоичных разряда = 1 шестнадцатеричный


0000
2

= 0
16


0001
2

= 1
16


1001
2

=
9
16


1010
2

=
A
16


111
1
2

=
F
16



13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

17

Системы счисления


В разных системах


200
10

= С8
16

=
1100 1000
2


С
16

= 1100
2


8
16

= 1000
2


Более того!


2 шестнадцатеричных разряда = 1 байт

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

18

Системы счисления


Системы счисления


N
-
ичная



N
различных цифр


Рассмотрим
abcd
N
,
где
a, b, c, d


цифры


abcd
N

= d*N
0

+ c*N
1

+ b*N
2

+ a*N
3


Пример


213
10

= 3*10
0

+ 1*10
1

+ 2*10
2


F
C8
16

= 8
16
*16
0

+ C
16
*16
1

+ F
16
*16
2

=


= 8*1 + 12*16 + 15*256 = 4040
10

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

19

Системы счисления


0
10

= 0
16

= 0
8

=
000
0
2


1
10

=
1
16

=
1
8

=
000
1
2


2
10

=
2
16

=
2
8

=
00
10
2


3
10

=
3
16

=
3
8

=
00
11
2


4
10

=
4
16

=
4
8

=
0
100
2


5
10

=
5
16

=
5
8

=
0
101
2


6
10

=
6
16

=
6
8

=
0
110
2


7
10

=
7
16

=
7
8

=
0
111
2



13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

20


8
10

= 8
16

=
1
0
8

=
100
0
2


9
10

= 9
16

=
11
8

=
10
0
1
2


10
10

=
A
16

=
12
8

=
101
0
2


11
10

=
B
16

=
13
8

=
1011
2


12
10

=
C
16

=
14
8

=
110
0
2


13
10

=
D
16

=
15
8

=
11
0
1
2


14
10

=
E
16

=
16
8

=
111
0
2


15
10

=
F
16

=
17
8

=
1111
2




Память


Последовательность (массив) байт


Байты пронумерованы с 0


По порядку


Адрес в памяти


номер байта


Номер первого байта для данных больше 1б


13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

21

Память


Сгруппируем
байты по
машинным словам


Каждые
4 (8) байт образуют
слово


CPU
оперирует словами


Байты 0
-
7 = слово


Байты 8
-
15 = слово


͙


Адрес слова кратен размеру слова


CPU
обращается по «выровненным» адресам

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

22

Память


Слово


число с 32 или 64 разрядами


Разбиваем разряды на байты


1001 0010

1011 1100

0101 1110

0000 0011
2


Какой из байтов хранить по адресу 0?


А какой


по адресу 3?


Зависит от порядка байт!


А порядок зависит от процессора

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

23

Порядок байт в слове


1001 0010

1011 1100

0101 1110

0000 0011
2


Big
-
endian


Сначала старшие разряды (как в записи числа)


M[0] =
1001 0010


M[1] =
1011 1100


M[2] =
0101 1110


M[3] =
0000 0011


13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

24

Порядок байт в слове


1001 0010

1011 1100

0101 1110

0000 0011
2


Little
-
endian


Сначала младшие разряды


M[0] =
0000
0011


M[1] =
0101
1110


M[2] =

1011 1100


M[3] =

1001 0010


13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

25

Порядок байт в слове


Процессоры
x86
и
x86_64 (
семейства
Intel)


Little
-
endian!


То есть число
0x10ABCDEF
по байтам͗


EF, CD, AB, 10

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

26

Представление чисел


Беззнаковые

целые


В виде двоичного числа


Знаковые целые


прямой код


Старший разряд


знак (0+͕ 1
-
)


Остальные разряды


модуль числа


Знаковые целые


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


Старший разряд


знак


Остальные разряды


Для положительных


модуль


Для отрицательных


число +
2
N


Где
N


количество разрядов

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

27

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


0 =
0000 0000


1 = 0000 0001


127 = 0111 1111


-
128 = 1000 0000


-
127 = 1000 0001


-
126 = 1000 0010


-
1 = 1111 1111

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

28

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


Используется на практике


-
128 + 1 = 1000 0000 + 1 = 1000 0001 =
-
127


-
1 + 1 = 1111 1111 + 1 = 1 0000 0000 = 0000 0000


9й разряд отбрасывается͕ т͘к͘ негде хранить


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


Выполняются одинаково


Для знаковых и
беззнаковых


Упрощение устройства
CPU

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

29

Числа с плавающей запятой


431.6875 =
4.316875

* 10
2


-
110101111.1011
=
-
1.101011111011

* 2
8


32 бита


1 бит


знак


8 бит


порядок


23 бита


мантисса


13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

30

©
https
://ru.wikipedia.org/wiki/
Число_одинарной_точности


Нечисловая информация


Как хранить?


В виде чисел!


Символ текста͗
char

= целое число͕ 1 байт


Звук


последовательность чисел


Изображение


массив чисел


Цвет пиксела = число


Видео


последовательность изображений

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

31

13.02.2015

Информатика͘ Семинар 1͘
Архитектура

ЭВМ͘
Преподаватель͗

Дмитрий

Исупов͘

32


Приложенные файлы

  • pdf 22671924
    Размер файла: 368 kB Загрузок: 0

Добавить комментарий