Современный процессор читает комнды из EEPROM напрямую или сначала загружает в оперативную память? Как процессор читает данные из HDD/SSD?

Рейтинг: -1Ответов: 1Опубликовано: 25.01.2023

Есть ли в материнке поминмо EEPROM Flash память? Из какой из них происходит чтение? Напрямую или через посредника. Если через оперативку, то зачем это лишнее действие. И каким образом процессор получает данные из SSH/HDD? Как я понимаю эти данные копируются в оперативную память, потом процессор оттуда читает их. А как они попадают в оперативную память? Есть какие-то команды в процессоре для этого?

Ответы

▲ 1Принят

В: Есть ли в материнке поминмо EEPROM Flash память? Из какой из них происходит чтение? Напрямую или через посредника. Если через оперативку, то зачем это лишнее действие.

О: Скорее всего, нет. ПЗУ читается напрямую. В современных процессорах всё равно есть буферизация, так что смысла в копировании в ОЗУ для увеличения бытсродействия нет. И там, в основном, находятся программы, используемые для инициализации устройств, то есть они не выполняются всё время.

В: И каким образом процессор получает данные из SSH/HDD? Как я понимаю эти данные копируются в оперативную память, потом процессор оттуда читает их. А как они попадают в оперативную память? Есть какие-то команды в процессоре для этого?

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

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

Возможен вариант, когда адресное пространство общее, а порты для доступа выбираются внешним контроллером (доступа к памяти) по адресу, т. е. если на каком-то адресе есть порт ввода-вывода, то при обращении процессора по этому адресу контроллер доступа отключает ОЗУ и подключает порт. Соответствующая ячейка ОЗУ просто не используется. Таким же образом осуществляется и доступ к ПЗУ вместо ОЗУ.