Я не могу найти ничего о том, ЧТО именно делает оперативную память настолько быстрее, чем дисковые накопители/ssd. Чем отличается то, как оперативная память считывает и записывает данные, от того, как это делает постоянное хранилище? Что между ними настолько принципиально отличается, что приводит к таким радикальным различиям? Постоянное хранилище против временного. Медленное против быстрого чтения/записи. Что в оперативной памяти делает ее настолько быстрее
решение1
Существует множество различий между тем, что происходит на физическом уровне, и тем, что происходит на интерфейсе между ЦП и устройствами, которые влияют на скорость этих устройств.
Примечание: существуют и другие типы оперативной памяти (FeRAM, PRAM и т. д.) и другие системы хранения данных; в целях обсуждения я рассматриваю только основные компоненты, используемые в компьютерах.
Физические различия
Существует фундаментальное различие между «простым» электронным изменением состояния, которое используется в оперативной памяти, и физическим изменением состояния, которое используется в устройствах HDD и SSD.
Традиционная RAM использует несколько транзисторов для хранения состояния. Транзисторы по своей сути являются быстрыми устройствами, работающими исключительно на основе электрических токов. Они работают так же, как и ЦП, и их скорость также имеет недостаток в том, что они нестабильны, что означает, что если питание когда-либо отключается, данные теряются.
Жесткие диски имеют гораздо больше физических изменений, происходящих. Вместо того, чтобы изменить состояние электронной схемы, вы по сути пытаетесь принудительно изменить физический носитель. С жестким диском это похоже на процесс перемагничивания иглы, вам нужно использовать магнит, чтобы подтолкнуть атомы, чтобы выровнять их магнитные поля, и этот процесс относительно медленный по сравнению с транзисторным переключателем на основе чисто электронных технологий.
Твердотельные накопители (SSD) — это странное промежуточное звено между обычной оперативной памятью и жесткими дисками. По сути, это электронные устройства хранения данных, но для записи на них все равно должно произойти физическое изменение. Электроны должны быть принудительно перемещены в область, в которую они обычно не хотят попадать, с помощью более высокого напряжения. Это более высокое напряжение и акт принудительной записи требуют больше работы, чем простое изменение состояния транзистора. Чтение немного сложнее, а также немного замедляет их там. Я писал больше о том, как работает флэш-памятьна этот ответ.
Различия в интерфейсе
Также следует учитывать характер интерфейса этих устройств. Устройства хранения данных, такие как жесткие диски и твердотельные накопители, имеют контроллер и интерфейс, который объединяет как адресные, так и линии данных в командный интерфейс на основе протокола. Чтобы что-то сделать, нам нужно отправить команду, которая указывает give me the data from block 3192
или write this <data> to block 549,321,974
которую контроллер должен декодировать и затем выполнить. Из-за вращающейся природы физического жесткого диска они работают лучше всего, когда каждый запрос данных следует за предыдущими данными в последовательности.
SSD-накопители — гораздо более щадящие устройства, и их не особо волнует последовательность запросов данных, но им все равно нужен контроллер в устройстве для обработки команд, отправляемых через «простой» интерфейс.
Интерфейсы HDD и SSD к их контроллеру (и современные интерфейсы на основе протоколов в целом) работают в «последовательном» режиме. Это означает, что по сути есть одна линия данных, которую нужно многократно переключать для формирования команды. Чтобы передать один байт данных, последовательная линия должна переключаться не менее 8 раз. Помимо данных у вас есть много «накладных расходов» на отправку байтов для команд, сообщающих контроллеру, просите ли вы его читать или писать.
С другой стороны, ОЗУ имеет интерфейс к ЦП, который очень широкий, и это также «параллельный» интерфейс. Он имеет как несколько адресных линий, так и линий данных и не нуждается в реальном контроллере (кроме контроллера памяти, встроенного в ЦП) для обработки маршалинга данных в и из. ЦП изменяет адресные линии на те, которые ему нужны, устанавливает еще пару линий, чтобы указать, читает он или пишет, а затем начинает отправлять данные по нескольким линиям данных. Это гораздо более сложная схема, но из-за выделенной «широкой» шины данных большие блоки данных могут быть отправлены одновременно, достигая в результате большей скорости передачи данных.
Я написал больше о различиях в интерфейсе в моемответ на вопрос, почему память с произвольным доступом называется «памятью с произвольным доступом»