BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
BufWriter<Master<'_>>
== Архитектура ЭВМ. Лекция 4: Однотактный процессор: тракт данных, ветвление https://youtu.be/O9eAp45LzQ8 Однотактный тракт данных (Data-path) - регистр адреса текущей инструкции - текущая инструкция - файл регистра - данные памяти проектирование команды…
== Архитектура ЭВМ. Лекция 5: Устройство управления процессора, многотактный процессор
https://youtu.be/30RCgo5Q7zo

lw и sw команды затрагивают весь тракт !

проблемы однотактного процессора
- две памяти
- много АЛУ
- длинный тактовый цикл
- разделенная память команд и данных

решение - многотактовый процессор
- мы считали команду и зафиксировали её в регистре
- а на выходе зарегестрировали результат
- на вход ставим мультиплексор с флажком

появились состояния управляющего устройства. FSM!!!

Это больше не комбинационная схема !!!
== Архитектура ЭВМ Лекция 6: Устройство управления многотактного процессора. Конвейерный тракт данных.
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 (перезаписали до того как записали в предыдущей)
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
== Архитектура ЭВМ Лекция 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)

Элементом виртуальной памяти это страница.
- размер страницы = длина строки для кэша
- страницчная ошибка = промах для кэша
- смещение относительно страницы = смещение относительно строки для кэша
- номер виртуальной страницы = тэг для кэша
== Архитектура ЭВМ Лекция 9: Иерархия хранения данных. Организация кэш памяти.
https://youtu.be/WLj1R2YlueY

UMA - uniform memory access (нет разницы где эта память, доступ детерминирован)
NUMA - non-uniform memory access (интерфейс или время к памяти по разным адресам не одинаково!)

Локальность данных
- временная (скорее всего скоро обратится еще раз к этим же данным)
- пространственная (скорее всего обратится к соседней памяти)

Иерархия хранения данных (иерархия памяти)

Организация процессорного КЭШа
Кэш линия - наборы смежных слов данных котопые помещаются в кэш (вытесняются из кэш) совместно. Рядом они должны быть для того что бы линейно брать соседей

ТИпы отображения памяти в кэш
- прямое отображение
- наборно-ассоциативный
- полностью ассоциативный

Состояние данных в кэш
- cache miss - данные остутствуют в кэш
- cache hit - данные в кэш

Запись в КЭШ
- write-through (пишем сразу через кэш в память)
- write-back (вначале в кэш, а потом он сам синхронизируется когда нибудь с памятью) - быстро, но неконсистентность возможна
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
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/BJSITWkSDQg

- модель TCP/IP
- построение сети
- маршрутизация и ARP/RARP пакеты и кэш маршрутов
- юникаст, мультикаст общение
- DHCP (это больше чем просто выдача адреса твоей ноды. это впринципе выдача знаний о адресах разного нужного типа). так же есть тут кэш ДНС запросов
- DNS
- VLAN, VXLAN
- SDN - software define networks. меняется в одном месте, он обновляется везде
- OpenFlow это протокол общения между контроллерами SDN

устройства
- hub (повторитель, возможны коллизии)
- switch (создает линковку устройств, "как телефонистка в будке")
- router L1, L2, L3...

OpenVSwitch - программа виртуального свича на одном компьютере

- шлюз в интернет это IP адрес подключенный к сети. настройка либо статическая либо по DHCP

-
нашел себе еще один канал на ютюбчике. маст листн для мня. как подкаст замечательно идет

== Архитектуры процессорных систем
https://www.youtube.com/c/%D0%90%D0%9F%D0%A1%D0%9F%D0%BE%D0%BF%D0%BE%D0%B2/videos
BufWriter<Master<'_>>
нашел себе еще один канал на ютюбчике. маст листн для мня. как подкаст замечательно идет == Архитектуры процессорных систем https://www.youtube.com/c/%D0%90%D0%9F%D0%A1%D0%9F%D0%BE%D0%BF%D0%BE%D0%B2/videos
== АПС Л1. Вводная
https://youtu.be/Xtc7NkQUGpE

принципы фоннеймана
- двоичное кодирование
- адресуемость памяти
- последовательное программное управление (инструкция за инструкцией)
- однородность памяти

на уровне ядра процессора архитектура реализована чаще всего как гарвардская архитектура