== Модель Колба: почему одни программисты учатся быстрее других
https://youtu.be/bJakF93Tpjs
Цикл:
- получение конкретного практического опыта
- мыслительное наблюдение
- абстрактная концептуализация
- активное экспериментирование
https://youtu.be/bJakF93Tpjs
Цикл:
- получение конкретного практического опыта
- мыслительное наблюдение
- абстрактная концептуализация
- активное экспериментирование
YouTube
Модель Колба: почему одни программисты учатся быстрее других
0:00 Начало
0:34 Какие ситуации вас мотивируют на изучение нового?
1:08 Как мы учимся, на примере нового гаджета
1:55 Шаги процесса обучения
2:08 Девид Аллен Колб
2:23 Теория обучения Колба
2:52 Цикл Колба
4:53 Пример из практики
6:02 Цикл Колба при поиске…
0:34 Какие ситуации вас мотивируют на изучение нового?
1:08 Как мы учимся, на примере нового гаджета
1:55 Шаги процесса обучения
2:08 Девид Аллен Колб
2:23 Теория обучения Колба
2:52 Цикл Колба
4:53 Пример из практики
6:02 Цикл Колба при поиске…
Гдето уже записывал, но оч помогает когда 2х скорости в ютюбе не хватает
https://ourtechroom.com/tech/increase-youtube-playback-speed-more-than-2x/
$('video').playbackRate = 3;
== How to increase Youtube playback speed more than 2x?https://ourtechroom.com/tech/increase-youtube-playback-speed-more-than-2x/
Ourtechroom
How to increase Youtube playback speed more than 2x?
How to increase Youtube playback speed more than 2x? Using Browser Development Console and some browser extension like Video Speed Controller you can increase youtube speed greater than 2x and less than equal to 16x
digital-design-and-computer-architecture-russian-translation.pdf
36.5 MB
оч много накопилось на просмотреть/почитать
решил освежить немного.
на фоне как подкаст звучит.
== Архитектура ЭВМ. Лекция 1: Типы архитектур. Комбинационная и последовательная логика.
https://youtu.be/R-twnbnaueE
- типы архитектур, фоннеймона, гарвардская, RISC, CISC
- мультиплексор
- дешифратор
- простейшая ячейка памяти
- RS защелка (RS-latch)
- D-зашелка (D-latch)
- D-trigger (D-flip-flop)
- сдвиговый регистр
- параллельный регистр
правила дизайна последовательных схем
- каждый элемент - либо регистр либо комбинационная схема
- хотя бы один элемент - регистр
- все регистры получает один и тот же CLK сигнал
- Каждый обратный путь содержит хотя бы один регистр
решил освежить немного.
на фоне как подкаст звучит.
== Архитектура ЭВМ. Лекция 1: Типы архитектур. Комбинационная и последовательная логика.
https://youtu.be/R-twnbnaueE
- типы архитектур, фоннеймона, гарвардская, RISC, CISC
- мультиплексор
- дешифратор
- простейшая ячейка памяти
- RS защелка (RS-latch)
- D-зашелка (D-latch)
- D-trigger (D-flip-flop)
- сдвиговый регистр
- параллельный регистр
правила дизайна последовательных схем
- каждый элемент - либо регистр либо комбинационная схема
- хотя бы один элемент - регистр
- все регистры получает один и тот же CLK сигнал
- Каждый обратный путь содержит хотя бы один регистр
== Архитектура ЭВМ. Лекция 2: АЛУ. Устройство памяти
https://youtu.be/HPGw4qFARTg
- сумматор
- полусумматор (перенос в старший)
- полный сумматор (перенос и в старший и из младшего)
- сумматор с быстрым переносом (отдельно обрабатывается перенос от сигналов)
- дополнительный код
что бы отрицание сделать нужно сделать инверсию одного сигнала и добавить один
- компоратор равенства
- блок компораторов
Eq = xor
not eq = xor | not
- ALU умеет делать все. мультиплексор выбирает линию по которой будет идти вычисления (выбор операции). и мультиплексор выбирает линии которые будут выбраны как выходные сигналы
- Счетчик
- память (mem array). емкость памяти = разрядность шины адреса.
- Адресация памяти
- Многоканальная память
- DRAM / SRAM
flip-flop = 20 transistors/cell = SUPER FAST = for CACHE
SRAM = 6 transistors/cell = medium speed =
DRAM = 1 transistors/cell = slow speed
== Архитектура ЭВМ. Лекция 3: Кодирование и тип инструкций процессора.
https://youtu.be/RJFGyfT3-YY
создание RISC компьютера
порядок проектирование процессора
- Проектирование тракта данных (data-path)
- - - определение архитектурного состояния
- - - определение системы команд
- проектирование устройства управления (control-path/control-unit)
- - - разработка автомата управления
Архитектура это набор регистров и их типов
Состав регистров
- просто пронумеруем регисты последовательно = 32 регистра.
именно 32 регистра потому что память регистра это микросхема, а количство проводов целое = степень двойки.
разрядность регистров не связана с адресацией
бывает
- регистры не равноправные
- регистры равноправные
- регистры бьются на группы
- ...
Имена регистров ax, bx, ... определяет разработчик архитектуры, согласно стандарту типов процессоров. В компиляторе мнемоника ассемблера превращается в определенные байты
Ассемблер
С: a = b + c
ASM: add a, b, c
Типы инструкций
- (R)egister - используются 3 регистровых операнда
- (I)mmediate - 2 регистровых операнда и 16битная константа
- (J)ump - передача управления по непосредственному смещению (26бит)
Команды R-типа
- 6bit = op
- 5bit = rs
- 5bit = rt
- 5bit = rd
- 5bit = shamt
- 6bit = funct
add $a0, $a1, $a2
= 0 - 17 - 18 - 16 - 0 - 32
= 000000 - 10001 - 10010 - 10000 - 00000 - 100000
Команды I-типа (Immediate)
= значение можем получить сразу из команды, не ходя в данные
- 6bit = op
- 5bit = rs
- 5bit = rt
- 16bit = imm
- addi $s0, $s1, 5
- addi $t0, $s3, -12
- lw $t2, 32($0)
- sw $s1, 4($t)
Команды типа J (jump)
- 6bit = op
- 26bit = addr
уловные переходы
Little-endian = MSB-LSB
Big-endian = LSB-MSB
Компиляция-загрузка-запуск
- компиляция
- ассемблер
- машинный код
- упаковка в один файл
- загрузка=размещение в памяти
- запуск первой команды
https://youtu.be/HPGw4qFARTg
- сумматор
- полусумматор (перенос в старший)
- полный сумматор (перенос и в старший и из младшего)
- сумматор с быстрым переносом (отдельно обрабатывается перенос от сигналов)
- дополнительный код
8-3 = 5операция по модулю
08 - (-3) - 5
00000011
11111100 + 1
11111101
00001000
+
11111101
_________
1 00000101
что бы отрицание сделать нужно сделать инверсию одного сигнала и добавить один
- компоратор равенства
- блок компораторов
Eq = xor
not eq = xor | not
- ALU умеет делать все. мультиплексор выбирает линию по которой будет идти вычисления (выбор операции). и мультиплексор выбирает линии которые будут выбраны как выходные сигналы
- Счетчик
- память (mem array). емкость памяти = разрядность шины адреса.
- Адресация памяти
- Многоканальная память
- DRAM / SRAM
flip-flop = 20 transistors/cell = SUPER FAST = for CACHE
SRAM = 6 transistors/cell = medium speed =
DRAM = 1 transistors/cell = slow speed
== Архитектура ЭВМ. Лекция 3: Кодирование и тип инструкций процессора.
https://youtu.be/RJFGyfT3-YY
создание RISC компьютера
порядок проектирование процессора
- Проектирование тракта данных (data-path)
- - - определение архитектурного состояния
- - - определение системы команд
- проектирование устройства управления (control-path/control-unit)
- - - разработка автомата управления
Архитектура это набор регистров и их типов
Состав регистров
- просто пронумеруем регисты последовательно = 32 регистра.
именно 32 регистра потому что память регистра это микросхема, а количство проводов целое = степень двойки.
разрядность регистров не связана с адресацией
бывает
- регистры не равноправные
- регистры равноправные
- регистры бьются на группы
- ...
Имена регистров ax, bx, ... определяет разработчик архитектуры, согласно стандарту типов процессоров. В компиляторе мнемоника ассемблера превращается в определенные байты
Ассемблер
С: a = b + c
ASM: add a, b, c
Типы инструкций
- (R)egister - используются 3 регистровых операнда
- (I)mmediate - 2 регистровых операнда и 16битная константа
- (J)ump - передача управления по непосредственному смещению (26бит)
Команды R-типа
- 6bit = op
- 5bit = rs
- 5bit = rt
- 5bit = rd
- 5bit = shamt
- 6bit = funct
add $a0, $a1, $a2
= 0 - 17 - 18 - 16 - 0 - 32
= 000000 - 10001 - 10010 - 10000 - 00000 - 100000
Команды I-типа (Immediate)
= значение можем получить сразу из команды, не ходя в данные
- 6bit = op
- 5bit = rs
- 5bit = rt
- 16bit = imm
- addi $s0, $s1, 5
- addi $t0, $s3, -12
- lw $t2, 32($0)
- sw $s1, 4($t)
Команды типа J (jump)
- 6bit = op
- 26bit = addr
уловные переходы
Little-endian = MSB-LSB
Big-endian = LSB-MSB
Компиляция-загрузка-запуск
- компиляция
- ассемблер
- машинный код
- упаковка в один файл
- загрузка=размещение в памяти
- запуск первой команды
YouTube
Архитектура ЭВМ. Лекция 2: АЛУ. Устройство памяти
В лекции постепенно объясняется устройство сумматора и его различных модификаций, таких как сумматор с быстрым переносом и сумматор с распространяющимся переносом. Это подводит к созданию арифметико-логического устройства (АЛУ), счетчиков и компараторов.…
BufWriter<Master<'_>>
== Архитектура ЭВМ. Лекция 2: АЛУ. Устройство памяти https://youtu.be/HPGw4qFARTg - сумматор - полусумматор (перенос в старший) - полный сумматор (перенос и в старший и из младшего) - сумматор с быстрым переносом (отдельно обрабатывается перенос от сигналов)…
== Архитектура ЭВМ. Лекция 4: Однотактный процессор: тракт данных, ветвление
https://youtu.be/O9eAp45LzQ8
Однотактный тракт данных (Data-path)
- регистр адреса текущей инструкции
- текущая инструкция
- файл регистра
- данные памяти
проектирование команды
lw = load word - загружает слово в регистр
op - rs - rt - imm
rs - адрес откуда (из какого регистра) взять данные
rt - адрес куда (в какой регистр) положить данные
imm - значение смещения к базовому адресу в памяти (гдето оно лежит точно)
последовательность действий LW
- чтение инструкции LW
- чтение операнда источника
- знаковое расширение I-аргумента
- загрузка значений в регистр
- вычисление адреса значения в памяти
- копирование значения из памяти в регистр
- переход на следующую инстркукцию
https://youtu.be/O9eAp45LzQ8
Однотактный тракт данных (Data-path)
- регистр адреса текущей инструкции
- текущая инструкция
- файл регистра
- данные памяти
проектирование команды
lw = load word - загружает слово в регистр
op - rs - rt - imm
rs - адрес откуда (из какого регистра) взять данные
rt - адрес куда (в какой регистр) положить данные
imm - значение смещения к базовому адресу в памяти (гдето оно лежит точно)
последовательность действий LW
- чтение инструкции LW
- чтение операнда источника
- знаковое расширение I-аргумента
- загрузка значений в регистр
- вычисление адреса значения в памяти
- копирование значения из памяти в регистр
- переход на следующую инстркукцию
BufWriter<Master<'_>>
== Архитектура ЭВМ. Лекция 4: Однотактный процессор: тракт данных, ветвление https://youtu.be/O9eAp45LzQ8 Однотактный тракт данных (Data-path) - регистр адреса текущей инструкции - текущая инструкция - файл регистра - данные памяти проектирование команды…
== Архитектура ЭВМ. Лекция 5: Устройство управления процессора, многотактный процессор
https://youtu.be/30RCgo5Q7zo
lw и sw команды затрагивают весь тракт !
проблемы однотактного процессора
- две памяти
- много АЛУ
- длинный тактовый цикл
- разделенная память команд и данных
решение - многотактовый процессор
- мы считали команду и зафиксировали её в регистре
- а на выходе зарегестрировали результат
- на вход ставим мультиплексор с флажком
появились состояния управляющего устройства. FSM!!!
Это больше не комбинационная схема !!!
https://youtu.be/30RCgo5Q7zo
lw и sw команды затрагивают весь тракт !
проблемы однотактного процессора
- две памяти
- много АЛУ
- длинный тактовый цикл
- разделенная память команд и данных
решение - многотактовый процессор
- мы считали команду и зафиксировали её в регистре
- а на выходе зарегестрировали результат
- на вход ставим мультиплексор с флажком
появились состояния управляющего устройства. FSM!!!
Это больше не комбинационная схема !!!
== Архитектура ЭВМ Лекция 6: Устройство управления многотактного процессора. Конвейерный тракт данных.
https://youtu.be/PQPLRwyW2h8
мультиплексор это свитч, который переключает стримы в зависимости от флажков
lw/sw
- фетч инстукции и флагов
- декодироввание инструкций = комбинационная схема ! всего лишь
- вычисление адреса в памяти
- в зависимости от того надо ли нам читать или писать (lw или sw) читаем инструкции или данные
- записываем адрес в нужный Рег
Конвеер = команда разбилась на несколько этапов и можно уплотнить во времени их исполнение если они друг другу не мешают
Конвейерный тракт данных
- после каждого этапа появляется массив регистров для каждой новой операции
- но нужно убрать одновременные передачи на обратном пути. поставить регистры на выходе что бы потом забирать !
- все результаты надо протягивать через конвеер !!!
- сброс конвеера дорогой
- задача предсказать ветки, что бы меньше перезагружать конвеер (бранч предикшн нужен)
https://youtu.be/PQPLRwyW2h8
мультиплексор это свитч, который переключает стримы в зависимости от флажков
lw/sw
- фетч инстукции и флагов
- декодироввание инструкций = комбинационная схема ! всего лишь
- вычисление адреса в памяти
- в зависимости от того надо ли нам читать или писать (lw или sw) читаем инструкции или данные
- записываем адрес в нужный Рег
Конвеер = команда разбилась на несколько этапов и можно уплотнить во времени их исполнение если они друг другу не мешают
Конвейерный тракт данных
- после каждого этапа появляется массив регистров для каждой новой операции
- но нужно убрать одновременные передачи на обратном пути. поставить регистры на выходе что бы потом забирать !
- все результаты надо протягивать через конвеер !!!
- сброс конвеера дорогой
- задача предсказать ветки, что бы меньше перезагружать конвеер (бранч предикшн нужен)
BufWriter<Master<'_>>
== Архитектура ЭВМ Лекция 6: Устройство управления многотактного процессора. Конвейерный тракт данных. https://youtu.be/PQPLRwyW2h8 мультиплексор это свитч, который переключает стримы в зависимости от флажков lw/sw - фетч инстукции и флагов - декодироввание…
Конфликты (hazard) в конвеере - ситуация в которой выполнение одной из команд зависит от другой (еще не завершенной команды)
Стадии команд
IM - instruction memory
RF - Regsitrer File
DM - Data memory
Типы конфликтов
- конфликт данных (зависимость или противоречие данных)
- конфликт управления (одно устройство, несколько команд)
Варианты конфликтов
- RAW - read after write (прочитали до записи)
- WAR - write after read (перезаписали до того как прочитали)
- WAW - write after write (перезаписали до того как записали в предыдущей)
Стадии команд
IM - instruction memory
RF - Regsitrer File
DM - Data memory
Типы конфликтов
- конфликт данных (зависимость или противоречие данных)
- конфликт управления (одно устройство, несколько команд)
Варианты конфликтов
- RAW - read after write (прочитали до записи)
- WAR - write after read (перезаписали до того как прочитали)
- WAW - write after write (перезаписали до того как записали в предыдущей)
BufWriter<Master<'_>>
Конфликты (hazard) в конвеере - ситуация в которой выполнение одной из команд зависит от другой (еще не завершенной команды) Стадии команд IM - instruction memory RF - Regsitrer File DM - Data memory Типы конфликтов - конфликт данных (зависимость или противоречие…
== Архитектура ЭВМ Лекция 7: Конфликты конвейера. Улучшения микроархитектуры
https://youtu.be/ZJhG0Q8Hgjg
решение
- bypass (forwarding)
- bubbling (fragmentation) = всьавка NOP
- re-ordering
добавляется к ControlUnit и к DataPath новый HazardUnit - устройство передачи данных между командами, разрешение конфликтов. способен определить как переключить данные
вставляется компоратор на вход. если все равно то берется результат из регистра
проблема - мы не можем смотреть в будущее. поэтому ставим пробелы в исполнение. "слипы на уровне команды"
Конфликт управления для бранчей (beq)
branch-prediction
предсказание условных переходов
- статическое предсказание (переходы назад имеют высокую вероятность) = likely/unlikely
- динамическое предсказание (вперед)
- - буфер целевых адресов (адрес, состояние)
- - автомат = для каждого перехода я могу построить предсказание, наивный сегодня=вчера работает хорошо
Типы параллелизма
- временной (конвееризация)
- - разбиение задачи на стадии
- - задача последовательно происходит все стадии
- пространственный
- - дублирование исполнительных узлов для параллельного исполнения разных задач
процессоры
- Скаларный 0 одна в стадии EXE
- векторный - одна инструкция в стадии EXE но несколько независимых трактов данных
- Суперскалярный - в стадии EXE несколько независимых инструкций одновременно
Параллельные архитектуры
- MISD (multiple instruction single data)
- SIMD (single instruction multiple data)
- SISD (single instruction single data)
- MIMD (multiple instruction multiple data)
Гетерогаенная архитектура
- комбинирование разных архитектур в одной вычислительной системе
- FPGA
- DSP
- RT Core
== Архитектура ЭВМ Лекция 8: Assembly Language "Hello World". Основы отладки в GDB
https://youtu.be/aHYaseRUHLM
https://youtu.be/ZJhG0Q8Hgjg
решение
- bypass (forwarding)
- bubbling (fragmentation) = всьавка NOP
- re-ordering
добавляется к ControlUnit и к DataPath новый HazardUnit - устройство передачи данных между командами, разрешение конфликтов. способен определить как переключить данные
вставляется компоратор на вход. если все равно то берется результат из регистра
проблема - мы не можем смотреть в будущее. поэтому ставим пробелы в исполнение. "слипы на уровне команды"
Конфликт управления для бранчей (beq)
branch-prediction
предсказание условных переходов
- статическое предсказание (переходы назад имеют высокую вероятность) = likely/unlikely
- динамическое предсказание (вперед)
- - буфер целевых адресов (адрес, состояние)
- - автомат = для каждого перехода я могу построить предсказание, наивный сегодня=вчера работает хорошо
Типы параллелизма
- временной (конвееризация)
- - разбиение задачи на стадии
- - задача последовательно происходит все стадии
- пространственный
- - дублирование исполнительных узлов для параллельного исполнения разных задач
процессоры
- Скаларный 0 одна в стадии EXE
- векторный - одна инструкция в стадии EXE но несколько независимых трактов данных
- Суперскалярный - в стадии EXE несколько независимых инструкций одновременно
Параллельные архитектуры
- MISD (multiple instruction single data)
- SIMD (single instruction multiple data)
- SISD (single instruction single data)
- MIMD (multiple instruction multiple data)
Гетерогаенная архитектура
- комбинирование разных архитектур в одной вычислительной системе
- FPGA
- DSP
- RT Core
== Архитектура ЭВМ Лекция 8: Assembly Language "Hello World". Основы отладки в GDB
https://youtu.be/aHYaseRUHLM
YouTube
Архитектура ЭВМ Лекция 7: Конфликты конвейера. Улучшения микроархитектуры
Лекция посвящена изучению проблем и конфликтов, которые могут возникать в конвейере и способов их решения, таких как переименование регистров, внеочередное выполнение команд и других. Также рассматриваются различные оптимизации, включая раннее прогнозирование…
== Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти.
https://youtu.be/WLj1R2YlueY
UMA - uniform memory access (нет разницы где эта память, доступ детерминирован)
NUMA - non-uniform memory access (интерфейс или время к памяти по разным адресам не одинаково!)
Локальность данных
- временная (скорее всего скоро обратится еще раз к этим же данным)
- пространственная (скорее всего обратится к соседней памяти)
Иерархия хранения данных (иерархия памяти)
Организация процессорного КЭШа
Кэш линия - наборы смежных слов данных котопые помещаются в кэш (вытесняются из кэш) совместно. Рядом они должны быть для того что бы линейно брать соседей
ТИпы отображения памяти в кэш
- прямое отображение
- наборно-ассоциативный
- полностью ассоциативный
Состояние данных в кэш
- cache miss - данные остутствуют в кэш
- cache hit - данные в кэш
Запись в КЭШ
- write-through (пишем сразу через кэш в память)
- write-back (вначале в кэш, а потом он сам синхронизируется когда нибудь с памятью) - быстро, но неконсистентность возможна
== Архитектура ЭВМ Лекция 10: Устройство жесткого диска. Виртуальная память.
https://youtu.be/yxXQeHOIYCE
виртуальная память потому что она может быть разделена по средам, устройствам, сетям и тп... а абстракция одна и та же
LBA - Logical Block Addressing
- getN()
- write(N_block, data)
- read(N_block)
Элементом виртуальной памяти это страница.
- размер страницы = длина строки для кэша
- страницчная ошибка = промах для кэша
- смещение относительно страницы = смещение относительно строки для кэша
- номер виртуальной страницы = тэг для кэша
https://youtu.be/WLj1R2YlueY
UMA - uniform memory access (нет разницы где эта память, доступ детерминирован)
NUMA - non-uniform memory access (интерфейс или время к памяти по разным адресам не одинаково!)
Локальность данных
- временная (скорее всего скоро обратится еще раз к этим же данным)
- пространственная (скорее всего обратится к соседней памяти)
Иерархия хранения данных (иерархия памяти)
Организация процессорного КЭШа
Кэш линия - наборы смежных слов данных котопые помещаются в кэш (вытесняются из кэш) совместно. Рядом они должны быть для того что бы линейно брать соседей
ТИпы отображения памяти в кэш
- прямое отображение
- наборно-ассоциативный
- полностью ассоциативный
Состояние данных в кэш
- cache miss - данные остутствуют в кэш
- cache hit - данные в кэш
Запись в КЭШ
- write-through (пишем сразу через кэш в память)
- write-back (вначале в кэш, а потом он сам синхронизируется когда нибудь с памятью) - быстро, но неконсистентность возможна
== Архитектура ЭВМ Лекция 10: Устройство жесткого диска. Виртуальная память.
https://youtu.be/yxXQeHOIYCE
виртуальная память потому что она может быть разделена по средам, устройствам, сетям и тп... а абстракция одна и та же
LBA - Logical Block Addressing
- getN()
- write(N_block, data)
- read(N_block)
Элементом виртуальной памяти это страница.
- размер страницы = длина строки для кэша
- страницчная ошибка = промах для кэша
- смещение относительно страницы = смещение относительно строки для кэша
- номер виртуальной страницы = тэг для кэша
YouTube
Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти.
В лекции рассматривается иерархия хранения данных от регистров процессора до жесткого диска компьютера. Особое внимание уделяется типам кэш-памяти, их устройству и промахам при работе с ними. Особенно детально дается описание кэша прямого отображения, наборно…
== Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти.
https://youtu.be/WLj1R2YlueY
UMA - uniform memory access (нет разницы где эта память, доступ детерминирован)
NUMA - non-uniform memory access (интерфейс или время к памяти по разным адресам не одинаково!)
Локальность данных
- временная (скорее всего скоро обратится еще раз к этим же данным)
- пространственная (скорее всего обратится к соседней памяти)
Иерархия хранения данных (иерархия памяти)
Организация процессорного КЭШа
Кэш линия - наборы смежных слов данных котопые помещаются в кэш (вытесняются из кэш) совместно. Рядом они должны быть для того что бы линейно брать соседей
ТИпы отображения памяти в кэш
- прямое отображение
- наборно-ассоциативный
- полностью ассоциативный
Состояние данных в кэш
- cache miss - данные остутствуют в кэш
- cache hit - данные в кэш
Запись в КЭШ
- write-through (пишем сразу через кэш в память)
- write-back (вначале в кэш, а потом он сам синхронизируется когда нибудь с памятью) - быстро, но неконсистентность возможна
https://youtu.be/WLj1R2YlueY
UMA - uniform memory access (нет разницы где эта память, доступ детерминирован)
NUMA - non-uniform memory access (интерфейс или время к памяти по разным адресам не одинаково!)
Локальность данных
- временная (скорее всего скоро обратится еще раз к этим же данным)
- пространственная (скорее всего обратится к соседней памяти)
Иерархия хранения данных (иерархия памяти)
Организация процессорного КЭШа
Кэш линия - наборы смежных слов данных котопые помещаются в кэш (вытесняются из кэш) совместно. Рядом они должны быть для того что бы линейно брать соседей
ТИпы отображения памяти в кэш
- прямое отображение
- наборно-ассоциативный
- полностью ассоциативный
Состояние данных в кэш
- cache miss - данные остутствуют в кэш
- cache hit - данные в кэш
Запись в КЭШ
- write-through (пишем сразу через кэш в память)
- write-back (вначале в кэш, а потом он сам синхронизируется когда нибудь с памятью) - быстро, но неконсистентность возможна
YouTube
Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти.
В лекции рассматривается иерархия хранения данных от регистров процессора до жесткого диска компьютера. Особое внимание уделяется типам кэш-памяти, их устройству и промахам при работе с ними. Особенно детально дается описание кэша прямого отображения, наборно…
BufWriter<Master<'_>>
== Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти. https://youtu.be/WLj1R2YlueY UMA - uniform memory access (нет разницы где эта память, доступ детерминирован) NUMA - non-uniform memory access (интерфейс или время к памяти по разным…
== Архитектура ЭВМ Лекция 10: Устройство жесткого диска. Виртуальная память.
https://youtu.be/yxXQeHOIYCE
виртуальная память потому что она может быть разделена по средам, устройствам, сетям и тп... а абстракция одна и та же
LBA - Logical Block Addressing
- getN()
- write(N_block, data)
- read(N_block)
Элементом виртуальной памяти это страница.
- размер страницы = длина строки для кэша
- страницчная ошибка = промах для кэша
- смещение относительно страницы = смещение относительно строки для кэша
- номер виртуальной страницы = тэг для кэша
Трансляция адреса
- Логическое Адресное пространство (АП)
- Физическое АП
SWAP раздел это НЕ хаотичный файл а МАССИВ последовательных нефрагментированных данных, так же как в RAM
Буфер ассоциативной трансляции
- Translation lokaside buffer (TLB) - полностью ассоциативный кэш, который хранит отображение. МГНОВЕННО, потому что АППАРАТНЫЙ
LMK - low memory killer
OOMK - Out Of Memory Killer
https://youtu.be/yxXQeHOIYCE
виртуальная память потому что она может быть разделена по средам, устройствам, сетям и тп... а абстракция одна и та же
LBA - Logical Block Addressing
- getN()
- write(N_block, data)
- read(N_block)
Элементом виртуальной памяти это страница.
- размер страницы = длина строки для кэша
- страницчная ошибка = промах для кэша
- смещение относительно страницы = смещение относительно строки для кэша
- номер виртуальной страницы = тэг для кэша
Трансляция адреса
- Логическое Адресное пространство (АП)
- Физическое АП
SWAP раздел это НЕ хаотичный файл а МАССИВ последовательных нефрагментированных данных, так же как в RAM
Буфер ассоциативной трансляции
- Translation lokaside buffer (TLB) - полностью ассоциативный кэш, который хранит отображение. МГНОВЕННО, потому что АППАРАТНЫЙ
LMK - low memory killer
OOMK - Out Of Memory Killer
BufWriter<Master<'_>>
== Архитектура ЭВМ Лекция 10: Устройство жесткого диска. Виртуальная память. https://youtu.be/yxXQeHOIYCE виртуальная память потому что она может быть разделена по средам, устройствам, сетям и тп... а абстракция одна и та же LBA - Logical Block Addressing…
== Архитектура ЭВМ Лекция 11: Организация ввода вывода. Интерфейсы передачи данных.
https://youtu.be/icuwUnu5ZIU
STI - set interrupt flag
CLI - clear interrupt flag
INT_R - interruption request (device)
INT_A - interruption ack (cpu)
Memory Mapped IO (MMIO)
General Purpose IO (GPIO)
UART, PWM, SPI, I2C, DAC/ADC
MESI протокол когерентности КЭШа
- Modified
- Exclusive
- Shared
- Invalid
https://youtu.be/icuwUnu5ZIU
STI - set interrupt flag
CLI - clear interrupt flag
INT_R - interruption request (device)
INT_A - interruption ack (cpu)
Memory Mapped IO (MMIO)
General Purpose IO (GPIO)
UART, PWM, SPI, I2C, DAC/ADC
MESI протокол когерентности КЭШа
- Modified
- Exclusive
- Shared
- Invalid