Сколько значений можно сохранить на физический адрес в памяти? - PullRequest
0 голосов
/ 25 февраля 2020

Я читал, что вы можете хранить только одно значение на физический адрес в Ram. Теперь эти данные могут быть инструкцией или данными. Это связано с тем, что когда процессор читает в Word от Ram, он может работать только с одним значением за раз? будь то инструкция, int или строка. Есть ли техническая причина, по которой вы не можете использовать более одного значения для каждого индекса. Я читал о Скалярных Процессорах, но разве они не очень старые? Не могли бы вы уместить, например, два или более значения в ширину 64-битного Word? Или я упускаю что-то действительно очевидное здесь. Я предполагаю, что я спрашиваю, является ли это концепцией программирования или есть реальная техническая / аппаратная причина, по которой процессор не может иметь дело с более чем одним значением на чтение слова из Ram.

Спасибо

Rob

1 Ответ

0 голосов
/ 26 февраля 2020

Самые последние компьютеры используют адреса, которые указывают на «байтовое» расположение в памяти.

Каждая машинная инструкция, которая включает в себя функцию «загрузить (или сохранить) из памяти»), включает в себя неявную или явную спецификацию числа байтов для загрузки / сохранения, начиная с целевого байтового адреса. Общие размеры составляют 1, 2, 4, 8 байтов (соответствуют отдельным элементам данных наиболее часто поддерживаемых размеров).

Прикладная программа должна решить, как интерпретировать байты и какие операции выполнять. на них. Конечно, обычно символы строки хранятся в последовательных ячейках памяти байтов и обрабатывают 4 или 8 символов за раз, используя 32-битные (4-байтовые) или 64-битные (8-байтовые) инструкции загрузки и сохранения. Работа с отдельными байтами (символами) может включать маскирование, смещение и копирование в регистрах общего назначения процессора, но с конца 1990-х годов многие / большинство микропроцессоров включают инструкции, специально предназначенные для обработки содержимого регистра как множественных независимых ( меньшие значения).

"Упаковка" нескольких элементов данных в последовательные байты памяти не должна быть ограничена размерами регистров для поддерживаемых арифметических типов c (1, 2, 4, 8 байтов). Приблизительно с 2000 года многие процессоры также включали инструкции «Одна команда с несколькими данными» (SIMD) для загрузки больших полезных нагрузок в набор «регистров SIMD». (Общие размеры составляют 16 и 32 байта, но некоторые процессоры поддерживают 64-байтовые регистры.) Системы, которые включают эти инструкции загрузки и хранения SIMD, обычно также включают инструкции для работы с регистрами SIMD «параллельно» - обработка содержимого регистра как нескольких независимых ценности. Обычно предоставляются инструкции для обработки содержимого 256-битного (32-байтового) регистра в виде 32 1-байтовых значений, 16 2-байтовых значений, 8 4-байтовых значений или 4 8-байтовых значений. Детали зависят от архитектуры процессора и поколения.

...