ТРЕД "ЧТО ВНУТРИ КОМПЬЮТЕРА?"

Достаем ручки, тетрадки, усаживаемся поудобнее. Ставим лайк, делаем ретвит, подписываемся. Приду - проверю! 😈
Так уж вышло, что я айтишник широкой специализации: мне доводилось и микроконтроллеры программировать, и сайты допиливать, и сетку админить почти 1.5 года, но основное моё занятие - писать код, то есть программировать
Почему-то очень часто программисты либо вообще понятия не имеют, либо имеют смутные познания о том, что находится внутри ЭВМ и почему это так, а не иначе. И раз уж я немного знаю об этом, хочу поделиться. Поехали!
Наверное, все знают слова "процессор", "оперативка", "видюшка", "жесткий диск". Все эти устройства соединены друг с другом и подключаются к материнской плате. Речь пойдёт о том, как это все вместе концептуально существует.
Собственно, наша главная схема (из Википедии)
Компьютер оперирует данными, точнее, числами и только ими. Ему плевать, что 65 это может быть 'A'. Он знает, что где-то по какому-то адресу лежит какое-то число. Отсюда потребности:
1. Откуда-то ввести значение
2. Куда-то его вывести
3. Где-то его хранить
4. Как-то обработать
Начнём с 4: как обработать. В компьютере есть 2 устройства, которые занимаются вычислениями: CPU и GPU.

CPU, он же ЦП, камень. По научному - Central Processing Unit или центральный процессор. Это наш бро: квадрат толщиной в несколько мм, почти всегда скрытый под радиатором
ЦП - это "счёты" компьютера. Он складывает, сравнивает с 0 и отрицает числа и делает ещё несколько простых операций вроде побитового сдвига.

Например, умножать ЦП не умеет. 3*7=3+3+3+3+3+3+3
Соответственно, самая медленная операция для ЦП - деление. Сложить - быстро, вычесть - чуть медленнее (a-b=a+(-b)), умножить - еще медленнее, а разделить - как умножить и вычесть. Да, все очень плохо.
Но это не все плохие новости: посчитать 10+10 это легко, даже 10/10 - справимся, а что насчёт 10.2+10.1? Или 10.2/10.1? На последний вопрос читатель сходу ответит "ну 10 с хвостиком", но ЦП такой ответ не устроит.

Что делать?
Думали-думали, и придумали:
FPU, он же floating point unit. Когда-то он был отдельно от ЦП, на некоторых микроконтроллерах его нет, но уже очень давно FPU интегрирован в CPU. Но это не означает, что операции с "нецелыми" (floating point) числами стали так же быстры, как с целыми
Именно поэтому:
а) в ядре Windows не принято использовать floating-point числа, вместо них используется два целых: числитель и знаменатель
б) для оценки суперкомпьютеров используется FLOPS - количество операций с числами с плавающей точкой (floating point) за 1с
В GPU не будем углубляться: это Graphics Processing Unit. Дословно - модуль обработки графики, обрабатывающий то, что пойдёт на видеовыход (монитор)

Иногда может быть встроен в CPU, но может быть отдельно. Внешние (дискретным) GPU, конечно, быстрее встроенных
С четвёртым пунктом нашего плана разобрались, едем дальше. Как нам хранить и вводить/выводить данные?

Для этого надо ответить на самый главный вопрос:
Насколько быстро мы хотим это делать?
"Ну, так чтоб комп не тупил!" - ответит джун. "По-разному" - ответит продвинутый юзер
Что значит по-разному? Мы можем разделить операции (а значит, и устройства, которые для них работают) на 2 группы: быстрые и медленные. И такие устройства есть почти в каждом способе работы с информацией
Хранение:
Медленно: жёсткий диск/SSD, флешка
Быстро: оперативная память (RAM)
Очень быстро: кэш процессора*

Ввод:
Медленно: клавиатура, мышь

Вывод:
Быстро: графика

Ввод+вывод:
Медленно: интернет, последовательный/параллельный порты*, аудио, ПЗУ*

*в треде не рассматриваются
Согласитесь: Вы готовы рвать и метать, если картинка на мониторе отстанет от действия в игре. Имеет значение объем данных: для вывода звука за 1/25с достаточно "медленного" канала, а для картинки - нужен быстрый, потому что 1 кадр занимает намного больше места, чем звук за 1/25с
Собственно, поэтому при выборе ПК имеет значение объем оперативки, она же - RAM: Random Access Memory (почему так - в другой раз): чем больше данных вы можете держать "прям вот рядом под рукой", тем быстрее ваша работа
Проводя аналогии с реальным миром, кэш - открытый документ у Вас на экране, оперативка - открытая книга на столе, а жесткий диск - книга на полке в соседней комнате.
Итог: сгруппировав устройства по принципу "быстрые" и "медленные", мы добавим два устройства: северный и южный мосты. Северный- хаб для быстрых устройств, южный - для медленных. Теперь ЦП для ЛЮБОГО* взаимодействия с данными обращается к северному мосту

*почти
Удобно, не правда ли? Северный мост - быстрый, работает с оперативкой, GPU и другими быстрыми устройствами + с южным мостом.
Южный - неторопливо работает со всеми теми, кто не спешит и с северным

Вопрос: почему северный и южный? Ответ на фото
В старые добрые времена, когда FPU только-только переехал в CPU, северный мост находился на стандартной материнской плате выше южного. Почему? Потому что ему надо работать быстро! Чем ближе он к ЦП - тем быстрее может передать ему данные. Что стало дальше? Ответ - на фото
Правильно, северного моста на этом фото как будто нет. Он никуда не делся, а переехал прямо в CPU. А южный мост теперь практически тождественно слову "чипсет"
Первая лекция окончена, всем спасибо! За обратную связь (понятно/не очень; замечания, пожелания) - могу поставить свечку о вашем здравии или написать записку, по вашему желанию
Но + в карму обещаю. Обратная связь - ❤️
@usehex @fillpackart @TatarinFrontend @the2pizza @ValeriiZhyla поретвитьте плиз, мой первый полезный тред 🥺🥺🥺

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with ну вот так вот

ну вот так вот Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(