169 похожих чатов

Чуваки Как в ассамблере читается память? Возьмём например опкод MOV черед

который я хочу прочитать байт по определённому адресу в определённый регистр

Что происходит? Адрес идёт в MMU, дальше проверяется кеш, потом что? Может есть где-то этот workflow объяснён в общем виде

12 ответов

3 просмотра

Как это что? И получают, через контакты данных. Тебе непонятно с какой стороны обьяснять. Показать что-ли где они находятся, из каких элементов сделаны, или что?

Dmitry-Croft Автор вопроса
Алексей Шведов
Как это что? И получают, через контакты данных. Те...

Нужно что-то в этом духе (ниже псевдообъяснение): Адрес памяти из регистра A попадает в MMU, дальше проверяется кеш, если в кеше нашлось, то отдаёт если нет то идёт дальше и т.п.

Dmitry Croft
Нужно что-то в этом духе (ниже псевдообъяснение): ...

Адрес памяти из регистра A попадает в MMU, дальше проверяется кеш, если в кеше нашлось, то отдаёт если нет то идёт дальше по кэшу, если не нашлось - обращается по шине данных к RAM, если не нашлось, то ищет на накопителях, если не нашлось - на жёстких дисках

Dmitry-Croft Автор вопроса
Алексей Шведов
Адрес памяти из регистра A попадает в MMU, дальше ...

ладно, если у тебя нет настроения можешь не объяснять

Алексей Шведов
Адрес памяти из регистра A попадает в MMU, дальше ...

по крайней мере нам это дело в унике обьясняли именно так

к асму это получается не имеет отношения. с помощью асма мы говорим процу "сделай тото". как он это будет делать его проблемы (уровень абстракции). тебе наверное у процессоро строителей надо это спросить, а не у программистов

Dmitry-Croft Автор вопроса
Aiwan \ (•◡•) / _bot
к асму это получается не имеет отношения. с помощь...

Если есть чат по процессору строению то я бы спросил А вообще мне это нужно чтобы понять почему процессор работает медленнее с памятью, если она не выровнена. Я же так понимаю, что выравнивание каприза hardware Да, я видел объяснения где рассказывают что процессору придётся два раза обращаться к памяти чтобы собрать нужные байты в кучу, если память не выровнена. Но на физическом уровне я до сих пор не совсем понимаю почему процессор не читает с любого места и не загружает последовательно байты с этого места, и ему именно надо чтобы адреса были выровнены по размеру запрашиваемых данных

Dmitry-Croft Автор вопроса
Алексей Шведов
Как это что? И получают, через контакты данных. Те...

Я подумал что ты какой-то недовольный аля "щас докопаюсь". Но ты мне, кажется, помог продвинуться дальше, спасибо

Dmitry Croft
Я подумал что ты какой-то недовольный аля "щас док...

Просто я изначально вопроса не понял - думал, что ты хочешь узнать, как процессор ищет запрашиваемые данные. Пожалуйста

Dmitry-Croft Автор вопроса
Алексей Шведов
Просто я изначально вопроса не понял - думал, что ...

Это я тоже хотел знать, чтобы разобраться в выравнивании. А ты мне сузил круг до кеш линий

Dmitry Croft
Если есть чат по процессору строению то я бы спрос...

ну вот для х86 и х86-64 это устроено так начнем с того что само ядро имеет кешы первого уровня ядро - контрол юнит и алу(условно, мб там ещё для флоатов для крипты или ещё чего нам сейчас не важно) так вот контрол собственно заведует операндами, он берет их из кеша сам кеш это что-то вроде масива из set'ов. один set хранит несколько скажем 'линий'(но там не линия, как то по другому называлось, я забыл уже). в этой 'линии' есть тег(кусок адреса, он есть ключ по которому ищем), флаги, и кеш линия(собственно данные из памяти, то что мы и хотим загрузить из кеша в контрол юнит). пространство кеша ограничено, оно математически рассчитано так, что данные которые сохраняются в кеш линию выровнены на определенное парное число. проблема появляется когда я не выровнял что-то в памяти и для загрузки процесору нужно взять первую кеш линию, отрезать от неё кусок, а потом ещё и найти остачу нашей переменной в другой кеш линии.

Dmitry Croft
Если есть чат по процессору строению то я бы спрос...

Я уже писал про отсуствие (для экономии) нижних битов адресной шины. В пррцессоре куча блоков, соединений, промежуточных буфферов. Чтение блоками фиксированного размера в каждом подобном месте - частично экономия (и бюджета по энергопотреблению/температуре тоже) частично оптимальный дизайн во избежание проблем с синхронизацией и когерентностью. Вообще рекомендую сайт ixbt dot com - в нулевых и начале десятых там было много статей с подробными объяснениями как работают современные процессоры и их внутренними механизмы. Потом подсдулись в этом плане, но статьи есть по архитектурам вплоть до сэнди бриджа примерно очень подробные и более лаконичные по поледующим.

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта