You are on page 1of 99

АРХІТЕКТУРА КОМП’ЮТЕРА ТА

ОРГАНІЗАЦІЯ КОМП’ЮТЕРНИХ МЕРЕЖ


Лекція 5. Ресурси ЕОМ. Пам’ять
Базова ЕОМ: загальна структура
Базова ЕОМ: пам’ять що адресується в БЕОМ
Базова ЕОМ: Арифметико-логічний пристрій
Шина левого входа Шина правого входа
Базова ЕОМ: Пристрій управління
Базова ЕОМ: Формати команд
Базова ЕОМ: Адресні команди
Наименование Мнемон. Код Описание
Логическое умножение AND M 1XXX (M) & (A) * A
Пересылка MOV M 3XXX (A) *M
Сложение ADD M 4XXX (M) + (A) * A
Сложение с переносом ADC M 5XXX (M) + (A) + (C) * A
Вычитание SUB M 6XXX (A) - (M) * A
Переход, если перенос BCS M 8XXX Если (C) = 1, то M * CK
Переход, если плюс BPL M 9XXX Если (N)= 0, то M * CK
Переход, если минус BMI M AXXX Если (N) = 1, то M * CK
Переход, если ноль BEQ M BXXX Если (Z) = 1, то M * CK
Безусловный переход BR M CXXX M * CK
Приращение и пропуск ISZ M 0XXX M + 1 * M, если (M) >= 0,то
(CK) + 1 *CK
Обращение к подпрограмме JSR M 2XXX (CK) * M, M + 1 * CK
Базова ЕОМ: Безадресні команди
Наименование Мнемон. Код Описание
Очистка аккумулятора CLA F200 0*A
Очистка рег. переноса CLC F300 0*C
Инверсия аккумулятора CMA F400 (!A) * A
Инверсия рег. переноса CMC F500 (!C) * C
Циклический сдвиг влево ROL F600 Содержимое A и C сдвигается
на 1 разряд влево, А(15) * C, C * A(0)
Циклический сдвиг вправо ROR F700 Содержимое A и C сдвигается
на 1 разряд вправо, A(0) * C, C * A(15)
Инкремент аккумулятора INC F800 (A) + 1 * A
Декремент аккумулятора DEC F900 (A) - 1 * A
Останов HLT F000
Нет операции NOP F100
Разрешение прерывания EI FA00
Запрещение прерывания DI FB 00
Архітектура ЦП 8086
Регістри даних 15
Регістри сегментів 0
15 8 7 0
Базова адреса сегменту кода CS
АН AL AX
Базова адреса сегменту даних DS
BX
CX Роширення адреси сегменту даних ES

Базова адреса сегменту стека SS


DX
Лічильник команд IP
Регістр флагів FLAGS
Регістри вказівники
15 0 Адресний простір
Регістр вказівник стека SP
CS
Регістр вказівник бази BP DS SS

Індексний регістр (джерело) SI

Індексний регістр (приймач) DI


Типи команд
❑ Команди пересилання даних:
• регістр-регістр
• регістр-пам'ять
• пам'ять-пам'ять
❑ Команди арифметичной та логічной обробки (додавання, віднімання, множення,
ділення, інкремент, декремент, порівняння, операції над числами з плаваючою крапкою,
логічні операції, операції зсуву).
❑ Команди зсуву: логічний, арифметичний, циклічний, циклічний через додатковий
розряд.
❑ Команди роботи з разками (можуть бути реалізовані набіром інших команд, проте
зручні при роботі з символьної інформацією).
❑ Команди векторної обробки (дозволяють виконувати однотипні дії над великою
кількістю однорідних даних).
❑ Команди перетворення: служать для табличного перетворення даних з однієї
системи кодів в іншу (2-10 <-> 2)
Типи команд

❑ Команди вводу/виводу. Використовуються для управління, перевірки стану і обміну даними з


периферійними пристроями:
❑ команди виведення в порт;
❑ команди введення з порту.
❑ Команди управління потоком команд. Ці команди служать для вказівки черговості команд, що
виконуються.
Обчислення адреси чергової команди може виконуватись декількома способами:
❑ збільшенням адреси на довжину вже виконаної команди (природний порядок).
❑ зміною адреси на довжину наступної команди (переступання)
❑ зміною адреси на значення, яке вказано в поточній команді (короткий перехід).
❑ безпосередню вказівку наступної команди (довгий перехід).
Перераховані команди можуть виконуватися лише за деякої умови (умовні переходи).
Команди умовних переходів складають понад 80% команд управління.
❑ Команди безумовного переходу: виклики та повернення з процедур, тощо.
Формати команд
Операційна частина Адресна частина

Структура 4-х адресної команди


Адреса
Код операції 1 дані 2 дані Результат наступної
команди

Структура 3-х адресної команди


Код команди 1 дані 2 дані Результат
Формати команд
Структура 2-х адресної команди
Код операції 1 дані ( результат) 2 дані

або
Код операції 1 дані 2 дані (результат)

Структура 1 адресної команди


Код операції Адреса даних
Приклад складання програми:
Необходимо составить программу для вычисления
значения выражения:
W = ((X + Y - Z) * U + V)/(X + Y)
Будем использовать 3-х адресную систему команд.
1 команда занимает 1 байт.
Определим коды операций:
Складання програми:
W = ((X + Y - Z) * U + V)/(X + Y)

Операция Код
+ 01
- 02
* 03
/ 04
Складання програми:
При распределении памяти необходимо поставить в соответствие адреса ячеек
памяти исходным данным и результатам программы.

Змінна Адреса пам'яті W = ((X + Y - Z) * U + V)/(X + Y)


X 00
Y 01
Z 02
U 03
V 04
W 05
Складання програми:
W = ((X + Y - Z) * U + V)/(X + Y)
Адреса Код 1 операнд 2 операнд Результат Коментар
06 01 00 01 20 X + Y® 20
07 02 20 02 21 X+Y-Z® 21
08 03 21 03 21 (X+Y-Z)*U® 21
09 01 21 04 21 (X+Y-Z)*U + V® 21
0A 04 21 20 05 Результат
Складання програми:
Адреса сегменту даних: D
Операція Код D+0:X
01 (+) ADD D+1:Y
02 (-) SUB D+2:Z
D+3:U
03 (*) MUL D+4:V
04 (/) DIV D+5:W
Адреса сегменту програми: P
Адреса сегменту результату: R
Складання програми:

Адреса Код 1 операнд 2 операнд Результат Коментар

P+0 ADD D+0 D+1 R+0 X + Y→ R+0


P+1 SUB R+0 D+2 R+1 X+Y-Z→ R+1
P+2 MUL R+1 D+3 R+1 (X+Y-Z)*U→ R+1
P+3 ADD R+1 D+4 R+1 (X+Y-Z)*U + V→ R+1
P+4 DIV R+1 R+0 D+5 Результат
Способи адресації
Адресна частина
Спосіб адресації (СА) Адреса/операнд

Безпосередня адресація
Замість адреси команда містить безпосередньо операнд.
(+) Команда виконується швидко
(-) Безпосередній операнд може не увійти в команду
Пряма адресація

Адреса в команді є адресою операнда


(+) Якщо операнд знаходиться в пам'яті, то це найшвидший спосіб вказати на
нього
(-) Заздалегідь визначена адреса впливає на переносимість програми.
(-) Адреса займає багато місця
Способи адресації
Неявна адресація
Операнд передбачається (береться з КОП).
(+) Команда займає мало місця
(-) На тільки таких командах неможливо побудувати всю систему команд.

Регістрова адресація

Адреса в команді вказує не на комірку ОП, а на регістр.


(+) Більш швидка, ніж пряма адресація
(-) Кількість регістрів обмежено

Непряма адресація

Адреса в команді вказує на комірку пам'яти, в


якій знаходиться адреса операнду.
(+) зручна для обробки структурних типів даних.
(-) необхідно виконувати багато звернень до ОП.
Способи адресації

Непряма
регістрова
адресація
В команді міститься номер регистру, в
якому зберігається адреса операнду.
(+) швидша за непряму адресацію
(-) для пересування ОП необхідно
міняти вміст регистру

Відносна
адресація
Адреса обчислюється відносно лічильника команд

(+) Код переносимий, команди займают мало місця


(-) Може знадобитись довга адреса
Способи адресації
Базова регістрова адресація

Адреса в команді представляє собою зсів, який додається до


значення, що зерігається в базовому регістрі, для отримання
адреси операнду
(+) Зручна для роботы зі структурами даних, які
розміщуються динамічно.
(-) Переносимість меньша за відносну адресацію

Індексна
регістрова
адресація

Поле адреси команди містить базову адресу, до якої додається


зсув із індексного регистру.
(+) Зручна для роботи зі структурами даних, що розміщуються
динамічно.
(-) Переносимість меньша за відносну адресацію
Способи адресації
Автоінкрементна / автодекрементна адресація
Різновид регістрової індексної або базової адресації. До або після виконання команди значення базового або
індексного регістру збільшується / зменьшується на одиницю.
(+) Зручний спосіб адресації для команд обробоки рядків.
(-) Автоматичну зміну досить часто необхідно виконати на величину, яка більша за одиницю.
Індексна адресація з масштабуванням
Індексний регістр множать на масштаб M і сумують з базовою адресою команди.
(+) Досить зручно для модифікації адреси на значення M.
(-) Обчислення адреси уповільнюється, оскільки необхідно виконувати множення.
Способи адресації

Базова індексна адресація з


масштабуванням

Адреса обчислюється за формулою: Адреса=Індекс*Масштаб+База+Зсув.

(+) Базова індексна адресація з масштабуванням досить часто використовують


для звернення до системних таблиць, які знаходяться в ОП (таблиця
дескрипторів, таблиці сторінок, таблиця векторів переривань тощо)
(-) Обмеження на значення M (M=1,2,4,8).
Продуктивність комп’ютера
– Продуктивності процесора
– Продуктивність підсистеми пам’яті
CLK CLK

MemWrite WE
Address ReadData
Processor Memory
WriteData
Розвиток технологій

10000

Performance
1000

Процесор
100

10
Пам’ять
1
1985 1995
1990 2000
1995 2005
2000 2010
2005 2015
2010

Чому пам’ять так важлива:


 Повинна працювати настільки швидко, як і процесор
 Обсяг пам’яті повинен дозволяти виконувати всі програми
Проблема підсистеми пам’яті

• Зробити підсистему пам’яті такою


швидкою, як і процесор
• Використовувати іерархію пам’яті
• Ідеальна пам’ять:
– Швидкодіюча
– Дешева (недорога)
– Значного обсягу (емна)
Можно обрати тільки два параметри!
Ієрархія пам'яті
Швидкодія пам’яті
пам’ять: тимчасова & локальна
 Спільна

 Швидкодія: зменшується за розміром пам’яті

Registers Controlled
Більше передачі Більша пропускна by
Hardware
спроможність
Більша за обсягом Caches (SRAM) Controlled
Швидка by Software
Дешева (OS)
Memory (DRAM)

[SSD? (Flash)]

Disk (Magnetic Media)


Ієрархічна організація пам’яті
CPU Швидкість

Регістри
Кэш процесора

вартість
Основна / Первинна / Головна
RAM

Вторинна / Зовнішня пам’ять


HDD

інші зовнішні ЗУ
CD DVD ……

Ємність
Ієрархія пам'яті

Access Bandwidth
Technology Price / GB
Time (ns) (GB/s)

SRAM $10,000 1 25+


Cache
Speed

DRAM $10 10 - 50 10
Main Memory

SSD $1 100,000 0.5


HDD $0.1 10,000,000 0.1
Virtual Memory
Capacity
Зв'язок між процесором та пам'яттю

• Адресна шина забезпечує


адресу місця в пам'яті, до якої
потрібно отримати доступ.
• Шина даних передає дані,
прочитані з пам'яті, або дані для
запису в пам’ять. Є
двонаправленою.
• Шина управління забезпечує
різні сигнали, такі як READ,
WRITE тощо.
Класифікація систем пам'яті

а) Енергозалежна Пам’ять проти Енергонезалежної:


- Система енергозалежної пам'яті - це система, при якій
збережені дані втрачаються при відключенні живлення.
• Приклади: статична пам’ять CMOS, динамічна пам’ять
CMOS.
• Динамічна пам'ять - вимагає періодичного оновлення.
- Система енергонезалежної пам’яті - де збережені дані
зберігаються навіть при відключенні живлення.
• Приклади: Read-Only пам’ять, магнітний диск, CDROM /
DVD, флеш-пам’ять, резистивна пам’ять.
Класифікація систем пам'яті

b) Випадковий доступ проти прямого / послідовного доступу:


- ПАМ'ЯТЬ З ДОВІЛЬНИМ ДОСТУПОМ - коли час читання / запису не залежить від місця
пам'яті, до якої здійснюється доступ.
• Приклади: пам’ять CMOS (оперативна пам’ять та ПЗУ).
- ПАМ’ЯТЬ З ПОСЛІДОВНИМ ДОСТУПОМ - коли до збережених даних можна отримати
доступ лише в певному послідовному порядку.
• Приклади: магнітна стрічка, перфорована паперова стрічка.
- ПАМ'ЯТЬ З ПРЯМИМ АБО НАПІВВИПАДКОВИМ ДОСТУПОМ - коли частина доступу є
послідовною, а частина - випадковою.
• Приклад: магнітний диск.
• Ми можемо перейти безпосередньо до доріжки, а доступ до блоку даних буде виконано
послідовно.
Класифікація систем пам'яті

в) Read-Only Memory проти Random-Acess Memory:


- Read-Only Memory (ПЗУ) - це пам'ять, в якій дані зберігаються на постійній або
напівпостійній основі:
• Дані, які записані (запрограмовані) під час виробництва.
• Приклади: ROM, PROM, EPROM, EEPROM.
- Оперативна пам'ять (Random-Acess Memory, RAM) - це пам’ять, в який час доступу до
даних однаковий, незалежно від локації (адреси).
• Використовується в основних / кеш-системах пам'яті.
• Приклад: статична оперативна пам'ять (SRAM) - дані після запису зберігаються до тих
пір, поки увімкнено живлення.
• Приклад: Динамічна оперативна пам'ять (DRAM) - вимагає періодичного оновлення,
навіть коли живлення ввімкнено (дані зберігаються як заряд на крихітних конденсаторах).
Характеристики пам’яті: час доступу, затримки та
пропускна спроможність

Термінологія, що використовуються для вимірювання швидкості роботи системи


пам’яті:
 а) Час доступу до пам’яті (Access Time): Час між початком операції (читання або
запису) та завершенням цієї операції.
 b) Затримка (Latency): початкова затримка від початку операції до моменту
отримання перших даних.
 в) Пропускна здатність (Bandwidth): Максимальна швидкість передачі даних у
байтах за секунду.
 • У сучасних організаціях пам'яті кожен запит на зчитування зчитує блок слів у
деякі високошвидкісні регістри (LATENCY), звідки дані подаються в процесор по
черзі (ACCESS TIME).
Характеристики пам’яті

Кілька важливих питань:


 - Як змусити систему пам'яті працювати швидше?
 - Як збільшити швидкість передачі даних між процесором і пам'яттю?
 - Як задовольнити постійно зростаючі потреби у сховищах програм?
Деякі можливі рішення:
 Кеш-пам'ять: для збільшення ефективної швидкості системи пам'яті.
 Віртуальна пам’ять: для збільшення ефективного розміру системи
пам’яті.
Що таке кеш-пам'ять?

• Швидка пам'ять (можливо,


організована в декілька рівнів), яка
знаходиться між процесором та
основною пам'яттю.
• Швидкіша за основну пам’ять, і
порівняно невелика.
• Тут зберігаються дані та інструкції,
до яких часто здійснюється доступ.
• Кеш-пам’ять використовує швидку
технологію SRAM.
Локальність
У міру зниження швидкості доступу до
відповідного рівня пам'яті знижується також і
частота звернень до нього.
Принцип локальності або локалізації звернень –
це властивість реальних програм протягом
обмеженого проміжку часу працювати з
невеликим набором адрес пам'яті.
Автоматичне керування ієрархією пам’яті

 Пам’ять поділяється на блоки, розмір яких Core


складає декілька байтів
Передача даних з кеш-пам’яті до процесора
під час звернення до пам’яті - це $
ПРОСТОРОВА ЛОКАЛЬНІСТЬ
 Залишення на деякий час даних в кеш- Memory
пам’яті - це
ЧАСОВА ЛОКАЛЬНІСТЬ
Керування ієрархією пам’яті

Локальність використовується для того, щоб зробити доступ до пам’яті більш швидким
 Часова (або тимчасова) локальність:
 Локальність у часі
 Якщо до деяких даних нещодавно звертались, то з високою вірогідністю вони
скоро знадобяться знов
 Як це використовують: держати нещодавно використані дані на більш високих
рівнях ієрархії пам’яті
 Просторова локальність:
 Локальність у просторі
 Якщо до деяких даних нещодавно звертались, то з високою вірогідністю нам
знадобяться дані, що розміщені поряд
 Як це використовують: при доступі до даних переносити також сусідні дані на
більш високі рівні ієрархії пам’яті
Продуктивність пам’яті

• Потрапляння: дані знайдені на цьому рівні ієрархії пам’яті


• Промахи: дані не знайдені на цьому рівні ієрархії пам’яті (необхідно
перейти на наступний рівень)
Відсоток потраплянь = кількість потраплянь / кількість доступів до
пам’яті = 1 – процент промахів
Процент промахів = кількість промахів / кількість доступів до пам’яті =
1 – процент потраплянь
• Середній час доступу (англ. Average memory access time, AMAT):
середній час, який процесор витрачає на доступ до пам’яті

AMAT = tcache + MRcache[tMM + MRMM(tVM)]


Кеш-дізайн
Кеш-дізайн
Приклад роботи кеш-пам'яті

Core
 Адресація комірок пам’яті при запиті від процесора:
(розмір блока складає 8 байтів)

0x10000 Miss 0x10000 (…data…)


0x10004 Hit 0x10008 (…data…)

0x10120 Miss
0x10120 (…data…)
0x10008 Miss
0x10124 Hit
0x10004 Hit
Memory

Final miss ratio is 50%


Організація пам'яті

Процесор CPU
Registers

I-TLB L1 I-Cache L1 D-Cache D-TLB

L2 Cache

L3 Cache (LLC)

ОЗУ (DRAM)

L1 поділено на окремі частини, L2 – спільний для усіх ядер


Організація пам’яті багатоядерних процесорів

Кеш-пам’ять L1 та L2 є приватною – доступ лише у ядра


Кеш-пам’ять рівня L3 є спільною
Процесор
Core 0 Registers Core 1 Registers
I-
I-TLB L1 I-Cache L1 D-Cache D-TLB L1 I-Cache L1 D-Cache D-TLB
TLB
L2 Cache L2 Cache

L3 Cache (LLC)

ОЗУ (DRAM)
Intel Nehalem
(3.3GHz, 4 cores, 2 threads per
core)
Організація пам'яті

32K
L1-D

L2
256K
32K
L1-I
DRAM Organization Dual-rank x8 (2Rx8) DIMM

Всі банки в межах рангу


DRAM DRAM x8 DRAM
поділяють всі адреси і
DRAM DRAM
керуючі контакти

DRAM DRAM
Bank Усі банки незалежні, але
одночасно можуть
DRAM DRAM спілкуватися лише з одним
банком
DIMM
DRAM DRAM x8 означає, що кожен DRAM
виводить 8 біт, необхідно 8
DRAM DRAM чіпів для DDRx (64-розрядні)

DRAM DRAM

x8 DRAM Чому 9 чипів на банк?


DRAM DRAM 64 bits data, 8 bits ECC
DRAM DRAM

Rank
Канали пам'яті

Один контролер Команди


Контролер пам’яті
Один 64-bit канал Дані

Один контролер
Контролер пам’яті
Два 64-bit канали

Контролер пам’яті
Два контролера
Два 64-bit канала
Контролер пам’яті

Use multiple channels for more bandwidth


Фізичний адресний простір
2GiB
Физична адреса – адреса комірки
в основний пам'яті, що
характеризує реальне
розташування даних у фізичній
пам'яті
RAM
Фізична адреса – це номер
комірки пам’яті, який встановлює
N
процесор на шині адреси для
доступу до цих даних.
Набір фізичних адрес, з яким
0 працює програма, називають
фізичним адресним простором
Логічний адресний простір
0 У вихідному тексті адреси - символічні
N
int a;a перетворюються в логічні
Nb
float b[10]; Логічна (віртуальна) адреса – це адреса
використовується програмою в рамках
Np одного процесу
for (i=0; i<=100; i++) {
print(‘Hello world’);
N байтів від начала модуля
} Сукупність всіх логічних адрес має назву
логічного (або віртуального) адресного
Size
простору.
Логічна адреса vs. Фізична адреса
2GiB 2GiB
Size

Process 1
Nlog
Process 2
0
Size Nlog
RAM RAM
Nphys
Process 2
Nlog
Process 1
Nlog
Nlog≠Nphys
0 0 0 Nphys
Зв’язування адрес
 Програма оперує логічною адресою
 Процесор використовує фізичну адресу

Nlog → Nphys

Зв’язування (трансляція) адрес – це відображення


посилання в коді програми (логічної адреси) в реальну
фізичну адресу
Колі відбувається трансляция?
 Етап компіляції (Compile time).
Якщо відоме точне місце розташування процесу в пам'яті → компілятор генерує
фізичні адреси
Неможливо завантажити програму в інше місце без перекомпіляції
 Етап завантаження (Load time).
Компілятор генерує переміщуваний код, завантаження в будь-яке місце → при
завантаженні все адреси модифікуються з урахуванням адреси завантаження
Неможливо перемістити процес по пам'яті під час виконання, недоступний свопинг
 Етап виконання (Execution time).
Адреси залишаються логічними, перетворюються у фізичні кожен раз в момент
звернення, використовуючи програмно-апаратний механізм
Завантаження в будь-яке місце, пересування процесу по пам’яті
Розподіл пам’яті
2GiB

Process 2
 Статичний
Nlog
RAM  Дінамічний
Nphys

Process 1
Nlog

0 Nphys
Статичний розподіл: один процес в пам’яті
2GiB

Увесь фізичний адресний


простір відповідає одному
логічному адресному
простору
Process
RAM A

+: простота, не потрібна
Nlog трансляція адрес, Nlog=Nphys
Nphys -: не підходить для
багатозадачних систем
0
Статичний розподіл:
Схема з фіксованими розділами
Пам’ять заздалегідь поділяється на
розділи, які потім не змінюються
Process 4 В кожний розділ – по одному процесу

+: простота
RAM -: кількість процесов в системі
Process 3 обмежено кількістю розділів;
розмір логічного адресного простору не
Process 2 може бути більшим за розмір фізичного
розділу;
Process 1 внутрішня фрагментація
Динамічний розподіл:
Схема зі змінними розділами
Пам’ять заздалегіть не поділяється,
Process 8 процеси розміщюються один за одним.
Process 7 Вивантажуючись, вони звільнюють
Process 6 Best Fit
розділи довільного розміру.
Process 5
Кращі стратегія розміщення:
Worst Fit
з точки зору економії пам’яті – Best Fit
RAM Process 9
з точки зору продуктивності – 1st Fit
Process 4
First Fit
Process 3 +: відсутнє обмеження на кількість
Process 2 процесів в системі
-: розмір логічного простору обмежен
Process 1 розміром вільного розділу;
зовнішня фрагментація
Динамічний розподіл:
Сторінкова пам’ять
Фізична пам’ять поділяється на фрейми
d Логічна – на сторінки того ж розміру
d
Будь-яка сторінка – в будь-який вільний фрейм
p Nlog
Nphys Nlog=p:d → f:d → Nphys
RAM +: мінімізація фрагментації; відсутні
f обмеження на розмір та кількість процесів
-: ускладнення схеми трансляції; відсутність
свідомості щодо поділу логічного простору на
сторінки і неможливість організації різних прав
доступу до різних фреймів процесу
Nlog=p:d
Динамічний розподіл
Сегментна пам’ять
Фізичний простір не розбивається на
stack
фрейми, логічний – поділяється за
d змістом на сегменти довільного розміру
d
shared data

shared code

Сегменти розміщуються в будь-яких


s Nlog
data

вільних місцях фізичного простору


Nphys code

RAM +: раціональність поділу → до різних


сегментів можно мати різний доступ
S
stack
data
-: фрагментація; необхідність стратегії
code
розміщення; обмеження, що є
аналогічними «схеми зі змінними
розділами»
Nlog=s:d
Динамічний розполіл
Сторінково-сегментна пам’ять

d
stack

shared data
Фізична пам’ять поділяється на фрейми
d shared code
Логічна пам’ять поділяється на сегменти
s data
Кожний сегмент поділяється на
p code

RAM Nlog сторінки, які розміщуються у фреймах


f +: раціональність розбиття поєднується
Nphys
з відсутністю фрагментації та обмежень
stack
data
-: ускладнення процесу трансляції
code

Nlog=s:p:d
Що таке віртуальна пам’ять?

• Технологія, яка використовується


операційною системою для створення
ілюзії дуже великого розміру пам’яті у
процесора.
• Програма та дані фактично
зберігаються у вторинній пам’яті, яка
набагато більша, але дуже повільна.
• Передавати частини програми та дані із
вторинної пам’яті у основну пам’ять
необхідно лише за потребу.
Віртуальна пам’ять
2GiB
Мета: створити ілюзію для процесу,
що вся необхідна йому інформація
знаходиться у віртуальній пам'яті.
 логічна пам’ять поділяється на
Process 2
сторінки;
 трансляція на етапі виконання;
RAM 2GiB
 в фізичну пам’ять вносимо ті
Process 2 логічні сторінки, які
Process 1
використовуються;
RAM  якщо потрібна сторінка відсутня –
Process 1
її необхідно «підкачати» з диску.

0 0
Переваги схеми
 Немає небохідності в розміщенні всіх елементів процесу в основній пам’яті
 Програму не обмежує обсяг фізичної пам’яті.
Спрощується розробка програм, оскільки можна задіяти великі віртуальні простори, не
піклуючись про розмір використовуваної пам'яті.
Розмір пам'яті, займаної процесом, може бути більше, ніж розмір оперативної пам'яті
 З'являється можливість часткового приміщення процесу в пам'ять і гнучкого
перерозподілу пам'яті між програмами
Можна розмістити в пам'яті більше програм, що збільшує завантаження процесора і пропускну
здатність системи
 Обсяг введення-виведення для вивантаження частини програми на диск може бути
менше, ніж у варіанті класичного свопінгу
Кожна програма буде працювати більш швидко.
 Контроль за доступом: процес не може звернутись до адреса іншого процесу
Архітектура сторінкової віртуальної пам’яті
Сторінкове порушення (page fault) – виняткова
ситуація, яка виникає при зверненні до сторінки,
яка відсутня в даний момент у фізичній пам'яті.
Виконання команди переривається,
затребувана сторінка підкачуються з
RAM конкретного місця вторинної пам'яті у вільний
сторінковий кадр фізичної пам'яті і спроба
виконання команди повторюється

За рахунок властивості локальності


сторінкові порушення виникають лише час
від часу
Таблиця сторінок
 Кожен процес має власну таблицю сторінок
 Кожен запис у таблиці містить номер фрейма, біти
присутності, захисту, модифікації, посилання, кешування
тощо.
 Розмір таблиці сторінок: при розмірі сторінки у 4КiB (212 B) →
кількість сторінок 232/212=220, кожна запис – декілька байтів >
декілька MiB. Для 64-бітної архітектури – значно більше.
 Тому таблиця сторінок розбивається на фрагменти, в
оперативній пам'яті знаходяться лише деякі з них, які
необхідні в даний момент.
Багатоурівнева таблиця сторінок
Логічна (віртуальна) адреса
p1 p2 d
10 10 12
1

таблиця 1 рівня 3

RAM
p1

210 рядків адреса p1-й таблиці


другого рівня
210

Інф. про p2-у сторінку


p1-й таблиці, в т.ч.
номер фрейму
Інвертована таблиця сторінок

стільки рядків,
инфа сторінки в
скільки кадрів цьому кадрі

RAM

+: економія пам’яті
-: необхідність у додаткових механізмах (хеш) для
трансляції
Архітектурні принципи фон Неймана
Структурна схема обробляючої частини мікропроцесора
Структурная схема
Архітектурні принципи фон Неймана
Структурна схема обробляючої частини мікропроцесора

При надходженні керуючий сигналів, відповідним чином розподілених за часом,


можливі наступні операції:
➢ передача даних з одного РОН на другий;
➢ збільшення / зменшення на 1 вмісту будь-якого РОН;
➢ зсув вмісту одного РОН на певну кількість розрядів;

Для управління виконанням операцій, вибором команд програми, їх


дешифруванням та обробкою служить пристрій управління, який входить до
складу МП.
Розрізняють МП з 2 типами УУ:
➢ з мікропрограмним управлінням;
➢ з фіксованою системою команд.
Архітектурні принципи фон Неймана
Структурная схема обрабатывающей части микропроцессора
Архітектурні принципи фон Неймана
Структурна схема обробляючої частини мікропроцесора

• Команди, що становлять програму


розміщуються в ВЗУК.
• МП забезпечує вибірку команд в
потрібній послідовності, їх
дешифрування.
• Для виконання цих функцій МП має
власні ПС, РК.
• Адреса команди надходить з
програмного лічильника.
Архітектурні
Пример структуры принципи фон Неймана
Структурна схема найпростішого мікропроцесора

Всі команди, що виконуються


процесором, утворюють
систему команд процесора.
Для виконання команд до
складу мікропроцесора входять
АЛУ, буфери, регістри тощо.
Архітектурні принципи фон Неймана
Класична схема
32
Для досягнення максимальної універсальності і
спрощення протоколів обміну інформацією в МПС
застосовується шинна структура зв'язків між окремими
пристроями, що входять до складу систему.

Всі сигнали і коди між


пристроями
передаються окремими
лініями зв'язку.
Архітектурні принципи фон Неймана
Шинна структура зв'язків

Всі сигнали і коди між пристроями передаються окремими лініями зв'язку.


Кожен пристрій передає свої сигнали незалежно від інших
(мультиплексована передача). Спрощуються правила обміну -
спрощуються протоколи). Група ліній зв'язку, якими передаються сигнали –
це шина.

Послідовна передача інформації - це зниження швидкодії.


Архітектурні принципи фон Неймана
Типова структура мікропроцесорної системи

Вхідні сигнали Вихідні


сигнали

Шина живлення
Шина даних Системна шина (магістраль)
Шина адреси
Шина управління
Архітектурні принципи фон Неймана
Структура системної шини

◼ шина адреси (Address Bus);


◼ шина даних (Data Bus);
◼ шина управління (Control Bus);
◼ шина живення (Power Bus).
Архітектурні принципи фон Неймана
Режим програмного обміну
37

Передбачений завжди,
без нього неможливі інші
режими.
Процессор –
одноособний власник.
Всі операції обміну
інформацією ініціюються
тільки процесором.
Архітектурні принципи фон Неймана
Режим IRQ — Interrupt ReQuest

Обмен по прерываниям используется тогда, когда необходима реакция МПС на какое-то внешнее
событие. Реакцию на внешнее событие можно организовать 3 путями:
• с помощью пост. программного контроля факта наступления события (метод опроса флага);
• с помощью системы прерываний;
• с помощью прямого доступа к памяти.

Все сигналы на магистрали


выставляются процессором.
Переривання
mov ax, 2
mov bx, 3
КОД
jmp label ОБРОБКИ
ПОДІЇ

Переривання - це припинення виконання поточної команди або поточної


послідовності команд для обробки деякої події спеціальною програмою -
обробником переривання, з подальшим поверненням до виконання перерваної
програми
Класи переривань
1. Зовнішні / апаратні
Виникають асінхронно до CPU RAM
виконання команд
 Маскуємі
IO IO IO
 Немаскуємі
2. Внутрішні / виключення
Синхронно або в аварійній mov ax, 2
ситуації mov bx, 3
int 33h
3. Програмні jmp label КОД
Виклик обробника ОБРОБКИ
ПОДІЇ
Архітектурні принципи фон Неймана
Контроллер прерываний

Для синхронізації процесу паралельної обробки спеціалізованими модулями


використовується система управління переривань, яку іноді називають контролером
переривань.
Механізм організації паралельної роботи пристроїв :
➢ програма на стадії свого виконання передає системною шиною дані, що підлягають
обробці, на відповідний модуль;
➢ спеціалізовані модулі, які мають власні адреси та регістри для прийому даних і мають
власну логіку, яка реалізує доступ до шини;
➢ ядро мікропроцесора після того, як передало дані або команди за відповідною
адресою, звільняється від роботи з конкретним модулем і продовжує виконання
програми;
➢ після виконання необхідних дій з даними, спеціалізований модуль виробляє сигнал
завершення, який обробляється контролером переривань.
Архітектурні принципи фон Неймана
Режим IRQ — Interrupt ReQuest

Контролер або апаратне забезпечення


викликали переривання

Збереження інформації
Процесор завершує про стан процесу
виконання поточної
інструкції
Процедура обробки
переривання
Процесор розпізнав переривання

Відновлення інформації
Процесор зберігає свій про стан процесу
стан та стан програми в
стеку
Відновлення зі стеку стану
В процесор завантажується та процесору та стану
виконується обробник переривання програми
(вектор)
Механізм обробоки переривань:
спосіб опитування
1. На CPU надходить
сигнал про переривання
CPU RAM 2. CPU генерує
INT1
опитування пристроїв

3. Для знайденого
? ? ! пристрою визначається
IO IO IO номер (вектор)
переривання
4. За вектором
+: простота апаратної реалізації, гнучкічть с точки зору пристроїв визначається адреса
-: тривалий цикл опитування пристроїв → CPU займається
непрофільною роботою обробника
Механізм обробки переривань:
векторний спосіб
1. На CPU надходить сигнал
про переривання
CPU № RAM 2. CPU генерує опитування
INT
1
пристроїв
3. Для знайденого
пристрою визначається
IO IO IO номер (вектор)
переривання
+: висока швидкість, обробка починається відразу
-: складність підключення однакових пристроїв, що вимагають 4. За вектором
одного і того ж вектора → необхідно додаткове конфігурування визначається адреса
обробника
Механізм обробки переривань:
векторно-опитувальний спосіб
1. Всі пристрою відносяться
до одного з 15 IRQL
CPU RAM 2. На CPU поступає сигнал про
INT0
IRQ переривання у вигляді
№ INT3
L
номера IRQL
? ! 3. CPU виконує опитування
IO IO IO пристроїв цього IRQL
IRQL 3 IRQL 5 IRQL 3 4. За найденим пристроєм
визначається номер
+: на одному рівні IRQ невелика кількість пристроїв (зазвичай від 1 до 3) → (вектор) переривання
опитування пристроїв дость коротке; при цьому зберігається гнучкість
підключення пристроїв без додаткової конфігурації 5. За вектором визначається
-: опитування, хоч і коротке, все одно необхідно адреса обробника
Механизм обработки прерываний:
контроллер прерываний
1. Всі пристрою відносяться до одного з 15
IRQL
CPU № RAM 2. КП – додатковий пристрій
INT0
IRQ
INT3
L 3. Cигнал про переривання у вигляді номера

INT0 IRQL поступає на КП
IRQ
INT3
L 4. КП виконує опитування пристроїв на цьому
? ! IRQL
IO IO IO 5. Знайденому пристрою визначається номер
(вектор) переривання
IRQL 3 IRQL 5 IRQL 3
6. IRQL та вектор переривання КП передає до
+: опитування коротке і не завжди необхідно; процесор CPU
взагалі не опитує, а має відразу вектор
-: потрібен додатковий пристрій - КП 7. За вектором визначається адреса обробника
Архітектурні принципи фон Неймана
Контролер преривань

S-II 5

S-I 4

H-0 3 3

S-0 1 1 1

H-1 2
H-2 3
t1 t2 t3 t4 t5 t6 t7 t8
Время

1- виконання команд основної програми; 2,3- робота апаратних модулів периферії;


3 – робота апаратної компоненти системи переривань; 4,5 – виконання команд
Архітектурні принципи фон Неймана
Одночасна обробка декількох переривань
Архітектурні принципи фон Неймана
Одночасна обробка декількох переривань
Системні виклики
Системний ввиклик — це звернення прикладної програми до ядра операційної
системи для виконання будь-якої операції.
A B
read

Обробник
системного
виклику

Системний виклик → це перемикання в привілейований режим в просторі ядра ОС


Обробка системних викликів
Переведення в привілейований режим →
передача управління ядру, коду обробника →
програмне переривання
A B
read pipe

int 80h int 80h

диспетчер системних
викликів read pipe

обробник обробник
системних викликів read системних викликів pipe
Архітектурні принципи фон Неймана
Режим прямого доступу до пам'яті

Обмін системною шиною відбувається без участі процесора.


Для цього необхідно мати додатковий пристрій - контролер ПДП.
Швидкість обміну обмежена можливістю магістралі.
Архітектурні принципи фон Неймана
Контролер прямого доступу до пам'яти

❑ Контролер прямого доступу до пам'яті (Direct Memory Access - DMA)


забезпечує можливість копіювання масивів даних з однієї області пам'яті
даних в іншу, минаючи CPU
❑ Апаратна реалізація цього спеціалізованого блоку потребує наявності:
➢ початкової адреси області, що копіюється, та довжини масиву;
➢ початкової адреси області, в яку необхідно скопіювати дані;
➢ лічильника числа скопійованих елементів на час виконання операцій
копіювання
❑ В сучасних сигнальних мікропроцесорах використовують багатоканальні
контролери DMA. TigerSHARC (Analog Device) має DMA controller, що
забезпечує роботу до 14 DMA каналів
Архітектурні принципи фон Неймана
Архітектура зі спільною шиной даних та команд

Одна общая память как для данных так и для команд.


Архітектурні принципи фон Неймана
Архітектура з роздільними шинами даних та команд
Архітектурні принципи фон Неймана
Архітектура персонального комп'ютера
Архітектурні принципи фон Неймана
Тришинна архітектура

You might also like