#operating-system #hardware #ram #cpu-registers
#операционная система #аппаратное обеспечение #ОЗУ #процессор-регистры
Вопрос:
Итак, в настоящее время я изучаю операционные системы и программирование.
Я хочу подробно описать, как работают регистры.
Все, что я знаю, это основная память и наш процессор, который получает адрес и инструкции из основной памяти с помощью адресной шины.
А также есть что-то MCC (микросхема контроллера памяти, которая помогает в извлечении ячейки памяти из ОЗУ.)
В Интернете показано, что регистр является временным хранилищем, и доступ к данным для регистров может быть быстрее, чем к оперативной памяти.
Но я хочу действительно понять глубинный процесс того, как они работают. Поскольку они также состоят из 32 бит и 16 бит что-то в этом роде. Я действительно в замешательстве.!!!
Комментарии:
1. «Но я хочу по-настоящему понять глубинный процесс того, как они работают», ну, вам понадобятся значительные знания аппаратного обеспечения, электроники, физики / квантовой механики, архитектуры процессора. Можете ли вы немного сузить свой вопрос (много)?
2. Да, вы должны сузить свой вопрос.
3. Все, что я спрашиваю, это то, что такое регистры. Я ищу подробное объяснение того, как это работает с процессором и основной памятью
4. Термин для поиска в Google — «Регистры процессора»
Ответ №1:
Я не являюсь носителем английского языка, простите меня за некоторую, возможно, неправильную терминологию. Надеюсь, это будет немного полезно.
Почему существуют регистры
Когда пользовательская программа выполняется на процессоре, она работает в «динамическом» смысле. То есть мы должны хранить входящие исходные данные или любые промежуточные данные и выполнять с ними определенные вычисления. Необходимы устройства памяти. У нас есть выбор между триггером, встроенной оперативной памятью / ПЗУ и встроенной оперативной памятью / ПЗУ.
Термин register
для модели программиста на самом деле является общим триггером в физической схеме, которая является устройством памяти и может содержать один бит. Конструкция ИС состоит из стандартной части ячейки (включая register
упомянутые ранее элементы и and
/ or
/ etc.) и жесткого макроса (например, SRAM). По мере развития технологического узла задержка стандартных ячеек становится все меньше и меньше. Инструмент Auto Place-n-Route разместит register
и связанную с ним логику поблизости, чтобы убедиться, что логика может работать с заданной целевой частотой 3,0 / 4,0 ГГц. По некоторым практическим причинам (в которых я не совсем уверен, потому что я не занимаюсь версткой) мы склонны размещать жесткие макросы, что приводит к гораздо более длинному металлическому проводу. Это плюс собственные характеристики SRAM, встроенная SRAM обычно работает медленнее, чем общий триггер. Если устройство памяти отключено от чипа, скажем, внешнего флэш-чипа или KGD (известного хорошего кристалла), это будет еще медленнее, поскольку сигналы должны проходить через еще 2 устройства ввода-вывода, которые имеют гораздо большую задержку.
как они работают вместе с процессором
Каждому register
присваивается свой «адрес» (который, возможно, не открыт для программиста). Это реализуется путем добавления логики декодирования адреса. Например, когда процессор собирается выполнить инструкцию mov R1, 0x12
, логика декодирования адреса видит двоичный код R1
и выбирает только те триггеры, соответствующие R1
. Затем данные 0x12
сохраняются (записываются) в эти триггеры. То же самое для процесса чтения.
Что касается «они также имеют 32 бита и 16 бит что-то в этом роде», разрядность не является проблемой. Как триггеры, так и слово в ОЗУ могут иметь разрядность N
, если один и тот же адрес может одновременно выбирать N
триггеры или N
биты в ОЗУ.
Ответ №2:
Регистры — это небольшие памяти, которые находятся внутри процессора (то, что вы назвали CPU). Их роль заключается в хранении операндов для быстрых вычислений процессора и для хранения результатов. Регистр обычно обозначается именем (AL, BX, ECX, RDX, cr3, RIP, R0, R8, R15 и т.д.) И имеет размер, который соответствует количеству битов, которые он может хранить (4, 8, 16, 32, 64, 128 биты). Другие регистры имеют особые значения, и их биты управляют состоянием или предоставляют информацию о состоянии процессора.
Регистров не так много (потому что они очень дорогие). Все они имеют емкость всего в несколько килобайт, поэтому они не могут хранить весь код и данные вашей программы, которые могут достигать гигабайт. Это роль центральной памяти (то, что вы называете ОЗУ). Эта большая память может содержать гигабайты данных, и у каждого байта есть свой адрес. Однако он хранит данные только при включенном компьютере. Оперативная память находится за пределами чипа процессора и взаимодействует с ним через микросхему контроллера памяти, которая выступает в качестве интерфейса между процессором и оперативной памятью. Кроме того, есть жесткий диск, на котором хранятся ваши данные, когда вы выключаете компьютер. Это очень простое представление для начала.