Серия Impression - базовое представление о диске и памяти

задняя часть

Если вы спросите, в чем разница между памятью и диском, я уверен, что большинство разработчиков назовут одну или две. Это действительно так.В ходе недавнего внутреннего обмена информацией в команде четыре или пять студентов дали разные ответы: скорость хранения в памяти высокая, емкость диска большая, диск может хранить долговременные данные, а объем диска относительно большой~

Конечно, это все так, но любой вопрос следует отложить в сторону и исследовать причину, стоящую за ним.Когда я спрашиваю, почему у большинства компьютеров большая емкость диска, почему скорость записи на диске низкая, и почему диск может хранить долговременные данные, даже, почему объем диска должен быть таким большим? Не все могут внятно объяснить причину, а то и нечуткие к этим двум видам памяти, не знаю под каким углом ответить! Хотя большинство людей обычно задействуют эти две вещи в процессе разработки, я поделюсь некоторыми своими соображениями, надеясь испытать некоторые детали и функции в целом.

Память (DRAM), как энергозависимая память, не может сохранять данные в случае сбоя питания, потому что сама память хранит двоичные биты через емкость, а емкость каждого бита очень мала, а изготовление памяти очень плотное так много битов можно сохранить. Бит есть бит, и каждый бит называется единицей памяти в памяти.Общая структура может быть упрощена, как показано на следующем рисунке:


Обратите внимание на область сетки на рисунке.Это расположение ячеек памяти.Вкратце это двумерная матрица.Предполагаем,что очень маленькая память.Она разбита на 16 суперячеек.Суперячейка включает 8 блоков памяти, то вы можете знать, что эта память может хранить до 16*8=108 бит информации.

Итак, как читать и записывать данные?

На рисунке адресная строка addr отмечена посередине контроллера хранения и блока памяти. Цифра 2 выше указывает на то, что их два. В реальном процессе две адресные линии будут отправлять сигналы 0 и 1 на идентифицировать адресную информацию.

Если вы хотите указать суперячейку в строке или столбце матрицы памяти, контроллер памяти дважды пошлет электрический сигнал на адресную линию. Эти два раза задают адрес строки и адрес столбца целевой суперячейки соответственно.Например, в первой передаче первая и вторая адресные строки посылают электрические сигналы 0 и 1 соответственно, затем значение 01 указывается в памяти Вторая строка (обратите внимание, что значение первой строки равно 0), затем первая и вторая адресные строки во второй передаче посылают электрический сигнал 1 и 1 соответственно, что является значением 11, определяя данные в четвертый столбец, и, наконец, указан суперячейка первой строки и четвертого столбца. Затем контроллер хранения выполняет операции чтения и записи данных этого суперблока.

Как должны передаваться данные в памяти?

Вы могли заметить, что на рисунке данные отмечены двойными стрелками.Цифра 8 выше указывает на то, что имеется 8 линий данных, указывая на то, что память может передавать до 8 бит на чтение и запись, то есть один байт информации. Конкретные детали не нуждаются в дальнейшем изучении, в любом случае нам нужно только знать, что структура памяти связана с двухмерным матричным блоком через адресную линию и линию данных для реализации операций чтения и записи.

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

Диск (жесткий диск), как энергонезависимая память, подходит для долговременного хранения данных.Чтобы понять причины долговременного сохранения, также необходимо исходить из структуры диска.

Для упрощения описания я использую в качестве примера оптический привод.Мы знаем, что когда оптический привод считывает данные, на диск будет направлена ​​лазерная головка, а процесс воспроизведения диска сопровождается непрерывным вращением диск. По сути процесс считывания данных с магнитного диска аналогичен этой операции.Поверхность оптического диска записывает бинарную информацию посредством смены вогнутых ямок.Лазер будет направлен на определенный сектор оптического диска.Лазер головка может быть направлена ​​на разные участки поверхности диска для осуществления считывания всех данных.

Здесь вы должны понимать концепции секторов и дорожек.Следующий рисунок представляет собой поверхность диска, которая может помочь вам создать первое впечатление о диске:


Вы можете перенести понимание формы оптического диска на магнитный диск.Как показано на рисунке выше, поверхность магнитного диска можно понимать как кольцо, состоящее из множества дорожек разного радиуса.Каждая дорожка представляет собой полый круг. Этот круг состоит из нескольких секторов.Область — это наименьшая единица данных, хранящихся на диске (обычно 512 байт), поэтому поверхность диска содержит много таких секторов.

Оптический диск сканируется и читается лазерной головкой, подвешенной сверху, а у магнитного диска есть еще такая подобная штука, которая тоже направлена ​​на магнитный диск, как показано на следующем рисунке:


Над диском находится передающий рычаг, а конец передающего рычага - это головка чтения-записи (аналогично лазерной головке оптического диска).Передающий рычаг можно регулировать по горизонтали для поворота под разными углами, а диск может вращаться с определенной скоростью.Эти две характеристики очень важны, ниже будет описан процесс чтения и записи.

Так как же происходит процесс чтения и записи данных на диск?

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

Обратите внимание, как головка чтения/записи расположена в целевом секторе?

Благодаря структуре поверхности диска мы знаем, что, во-первых, нам нужно определить, на какой дорожке находится целевой сектор, контролируя угол передающего рычага, а затем повернуть диск на определенный угол, чтобы конечный целевой сектор просто останавливается прямо под головкой чтения-записи, вот так. Мы называем ряд процессов механическим движением (вы знаете, почему многие люди называют обычные жесткие диски механическими жесткими дисками?) Когда диску необходимо выполнить множество операций чтения и записи, если целевые данные распределены по секторам в разных положениях на поверхности диска, то этот процесс требует, чтобы рычаг передачи постоянно регулировал угол и вращал диск.Поскольку это механический процесс, здесь появляется узкое место чтения и записи диска .

В реальных дисках часто бывает более одной пластины, но несколько пластин накладываются друг на друга под вертикальным углом, как показано на следующем рисунке:


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

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

Фактически, публикация этой темы предназначена только для того, чтобы дать разработчикам понять, что они чувствительны к затратам на хранение данных. Текущий компьютерный ЦП уже очень мощный, и скорость вычислений превышает наше общее понимание, но скорость в области ввода-вывода не была значительно улучшена, и узкое место обработки многих проектов теперь фактически находится в этой области. Благодаря пониманию текста мы можем осознать, что такое физический процесс частого обращения с данными с диска, который может автоматически дать нам предупреждение в нашем сознании: механическое движение слишком медленное. Поэтому многие последующие оптимизации фактически сокращают дисковый ввод/вывод.Какой бы мощной ни была технология, эта тема будет обсуждаться долго.