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

Содержание

Слайд 2

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

© К.Ю. Поляков, 2007

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

Компьютер изнутри © К.Ю. Поляков, 2007 Тема 1. Основные принципы

Слайд 3

Определения

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

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

Слайд 4

Определения

Программа – это последовательность команд, которые должен выполнить компьютер.
Команда – это описание

Определения Программа – это последовательность команд, которые должен выполнить компьютер. Команда –
операции (1…4 байта):
код команды
операнды – исходные данные (числа) или их адреса
результат (куда записать).
Типы команд:
безадресные (1 байт) – увеличить регистр AX на 1 регистр – ячейка быстродействующей памяти, расположенная в процессоре
одноадресные (2 байта) AX ← AX + 2
двухадресные (3 байта) X ← X + 2
трехадресные (4 байта) Y ← X + 2

inc AX

add AX, 2

Слайд 5

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

Память состоит из нумерованных ячеек.
Линейная структура (адрес ячейки – одно число).
Байт

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

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

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

Слайд 6

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

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

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

процессор

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

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

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

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

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

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

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

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

Слайд 7

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

«Предварительный доклад о машине EDVAC» (1945)
Принцип двоичного кодирования: вся информация кодируется

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

Слайд 8

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

Счетчик команд (IP = Instruction Pointer) – регистр, в котором хранится

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

AB3D16

по адресу AB3D16

Слайд 9

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

фон Неймана

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

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

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

Архитектуры компьютеров фон Неймана многомашинная (независимые задачи) многопроцессорная (части одной задачи, по
по одной программе)

Слайд 10

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

© К.Ю. Поляков, 2007

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

Компьютер изнутри © К.Ю. Поляков, 2007 Тема 2. Персональный компьютер

Слайд 11

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

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

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

1977 Apple-II

1981 IBM PC
(personal computer)

ЕС-1841

Слайд 12

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

на материнской плате расположены только узлы, которые обрабатывают информацию (процессор

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

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

Слайд 13

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

процессор

память

видеокарта

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

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

Шина – многожильная линия связи, доступ к которой имеют несколько

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

контроллеры

Слайд 14

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

© К.Ю. Поляков, 2007

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

Компьютер изнутри © К.Ю. Поляков, 2007 Тема 3. Хранение целых чисел

Слайд 15

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

Беззнаковые данные – не могут быть отрицательными.
Байт (символ)
память: 1 байт

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

биты

младший

старший

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

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

416

E16

10011102 = 4E16 = ‘N’

Слайд 16

Примеры

78 =

115 =

Примеры 78 = 115 =

Слайд 17

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

Целое без знака
память: 2 байта = 16 бит диапазон значений

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

биты

старший байт

младший байт

4D16

7A16

1001101011110102 = 4D7A16

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

Слайд 18

«-1» – это такое число, которое при сложении с 1 даст 0.

«-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 байт!

Слайд 19

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

Задача: представить отрицательное число (–a) в двоичном дополнительном коде.
Решение:
Перевести число

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

= – 78

знаковый бит

Слайд 20

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

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

– 78 =

78

Двоичный дополнительный код Проверка: 78 + (– 78) = ? – 78 = 78 = +
=

+

Слайд 21

Пример

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

– 123 =

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

Слайд 22

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

Байт (символ) со знаком
память: 1 байт = 8 бит диапазон

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

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

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

127

– 128

Слайд 23

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

Слово со знаком
память: 2 байта = 16 бит
диапазон

Целые числа со знаком Слово со знаком память: 2 байта = 16
значений
– 32768 … 32767
Си: int Паскаль: integer
Двойное слово со знаком
память – 4 байта диапазон значений
– 231 … 231-1
Си: long int Паскаль: longint

Слайд 24

Ошибки

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

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

+

64

64

– 128

Слайд 25

Ошибки

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

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

+

– 128

0

– 128

1

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

Слайд 26

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

© К.Ю. Поляков, 2007

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

Компьютер изнутри © К.Ю. Поляков, 2007 Тема 4. Битовые операции

Слайд 27

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

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

Си:

Паскаль:

int

Инверсия (операция НЕ) Инверсия – это замена всех «0» на «1» и
n;
n = ~n;

var n: integer;
n := not n;

Слайд 28

Операция И

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

&

маска

5B16 & CC16 = 4816

x

Операция И Обозначения: И, ∧, & (Си), and (Паскаль) & маска 5B16
& 0 =
x & 1 =

0

x

Слайд 29

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

Маска: обнуляются все биты, которые в маске равны

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

маска

D16

516

Си:

Паскаль:

int n;
n = n & 0xD5;

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

Слайд 30

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

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

Операция И – проверка битов Задача: проверить, верно ли, что все биты
– нулевые.

маска

316

С16

Си:

Паскаль:

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

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

Слайд 31

Операция ИЛИ

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

ИЛИ

маска

5B16 | CC16 = DF16

x

Операция ИЛИ Обозначения: ИЛИ, ∨, | (Си), or (Паскаль) ИЛИ маска 5B16
ИЛИ 0 =
x ИЛИ 1 =

1

x

Слайд 32

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

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

Операция ИЛИ – установка битов в 1 Задача: установить все биты 2…5
1, не меняя остальные.

маска

316

С16

Си:

Паскаль:

n = n | 0x3C;

n := n or $3C;

Слайд 33

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

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

XOR

маска

5B16 ^ CC16 = 9716

x

Операция «исключающее ИЛИ» Обозначения: ⊕, ^ (Си), xor (Паскаль) XOR маска 5B16
XOR 0 =
x XOR 1 =

НЕ x

x

Слайд 34

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

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

«Исключающее ИЛИ» – инверсия битов Задача: выполнить инверсию для битов 2…5, не
остальные.

маска

316

С16

Си:

Паскаль:

n = n ^ 0x3C;

n := n xor $3C;

Слайд 35

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

(0 xor 0) xor 0 =

(1 xor 0) xor

«Исключающее ИЛИ» – шифровка (0 xor 0) xor 0 = (1 xor
0 =

0

1

(0 xor 1) xor 1 =

(1 xor 1) xor 1 =

0

1

(X xor Y) xor Y = X

код (шифр)

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

Слайд 36

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

1

Влево:

0

0

1

Вправо:

0

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

Си:

Паскаль:

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

Логический сдвиг 1 Влево: 0 0 1 Вправо: 0 в бит переноса
1;

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

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

shift left

shift right

Слайд 37

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

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

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

1011012

10110102

сдвиг влево

сдвиг вправо

45

90

Слайд 38

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

Влево:

Вправо:

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

Циклический сдвиг Влево: Вправо: Си, Паскаль: – только через Ассемблер

Слайд 39

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

1

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

0

0

0

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

Си:

Паскаль: –

n =

Арифметический сдвиг 1 Влево (= логическому): 0 0 0 Вправо (знаковый бит
-6;
n = n >> 1;

– 6

– 3

Слайд 40

Пример

Задача: в целой переменной n (32 бита) закодирована информация о цвете пикселя

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

Си:

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

Паскаль:

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

Слайд 41

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

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

Си:

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

Паскаль:

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

Слайд 42

Пример

Си:

R =
B =

Паскаль:

R :=
B :=

Пример Си: R = B = Паскаль: R := B :=

Слайд 43

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

© К.Ю. Поляков, 2007

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

Компьютер изнутри © К.Ю. Поляков, 2007 Тема 5. Вещественные числа

Слайд 44

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

X = s ⋅ M ⋅ 2e

s – знак (1

Нормализация двоичных чисел X = s ⋅ M ⋅ 2e s –
или -1)
M – мантисса,
e – порядок

M = 0 или 1 ≤ M < 2

15,625 =

1111,1012 =

1⋅1,1111012 ⋅23

знак

порядок

мантисса

3,375 =

Пример:

Слайд 45

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

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

15,625

Нормализованные числа в памяти IEEE Standard for Binary Floating-Point Arithmetic (IEEE 754)
= 1⋅1,1111012 ⋅23

s = 1 e = 3 M = 1,1111012

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

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

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

Слайд 46

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

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

Нормализованные числа в памяти Типы данных для языков: Си Паскаль

Слайд 47

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

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

p =

Вещественные числа в памяти 15,625 = 1,1111012 ⋅23 4 байта = 32
e+127 = 130
=100000102

m = M – 1 = 0,1111012

3,375 =

Слайд 48

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

сложение

Порядок выравнивается до большего
5,5 = 1,0112⋅22
3 = 1,12 ⋅21 =

Арифметические операции сложение Порядок выравнивается до большего 5,5 = 1,0112⋅22 3 =
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

Слайд 49

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

вычитание

Порядок выравнивается до большего
10,75 = 1,010112⋅23
5,25 = 1,01012 ⋅22 =

Арифметические операции вычитание Порядок выравнивается до большего 10,75 = 1,010112⋅23 5,25 =
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

Слайд 50

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

умножение

Мантиссы умножаются
7 = 1,112 ⋅ 22 1,1 12
3 =

Арифметические операции умножение Мантиссы умножаются 7 = 1,112 ⋅ 22 1,1 12
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 = 1112 ⋅ 112 = 21 = 101012

Слайд 51

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

деление

Мантиссы делятся
17,25 = 1,0001012 ⋅ 24
3 = 1,12

Арифметические операции деление Мантиссы делятся 17,25 = 1,0001012 ⋅ 24 3 =
⋅ 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

Имя файла: Компьютер-изнутри.pptx
Количество просмотров: 113
Количество скачиваний: 1