@Dragon1

Время доступа к любому адресу оперативной памяти одинаково и неизменно?

Помогите, пожалуйста, разобраться с вопросами, искал в интернете, везде не о том пишут.
3) Время доступа к любому адресу оперативной памяти одинаково и неизменно
Ложь
Истина
Объясните этот момент, пожалуйста, почему время доступа должно вообще отличаться, оперативная память ведь имеет одинаковые ячейки памяти.
4) Все компьютеры выполняют команды программ последовательно.
Ложь
Истина
Насколько я понимаю это так, все команды переводятся в бинарный код понятный компьютеру и выполняются по очереди, последовательно
5) Если две программы одновременно выполняются на двух ядрах одного процессора, то полученное время исполнения будут одинаковыми.
Ложь
Истина
Мне кажется ложь, так как программа может быть разной длины/сложности и выполнятся будет за разное время.
  • Вопрос задан
  • 273 просмотра
Пригласить эксперта
Ответы на вопрос 3
dimonchik2013
@dimonchik2013
non progredi est regredi
3) https://stackoverflow.com/questions/51813009/why-d...
4) тут смотря что препод хочет услышать, процессоры же есть с параллельным выполнением
5) да при прочих равных условиях

вопросы все логические, а не физические
Ответ написан
Комментировать
15432
@15432
Системный программист ^_^
3) нет, современная ОЗУ содержит "банки", которые уже подразделяются на строки и столбцы, переключение между которыми занимает время. поэтому чтение адреса совсем рядом относительно предыдущего читаемого - немного быстрее, чем адреса на другом конце ОЗУ
4) давно уже нет, в современных процах есть микрокод для подразбиения команд на более низкоуровневые, предсказатель ветвлений, кеширование, конвейерное исполнение. логически они выполняются последовательно. реально - процессор запросто может исполнить три последовательные команды одновременно, если посчитает, что их результат не зависит от порядка исполнения.

5) и опять же нет, зависит от состояния конвейера, предсказателя и кучи прочих условий ядер исполнения. например, команда чтения адреса памяти в зависимости от того, попали мы в кеш или нет, может исполняться в 10/100/1000 раз медленнее на другом ядре

впрочем, если ваш учебник с вопросами 70х годов, ответы могут быть иными
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.

3) Время доступа к любому адресу оперативной памяти одинаково и неизменно
Ложь
Истина
Объясните этот момент, пожалуйста, почему время доступа должно вообще отличаться, оперативная память ведь имеет одинаковые ячейки памяти.


Это зависит от множества параметров. В некоторых конфигурациях да, в других нет.
Читать про NUMA про банки памяти, про контроллер памяти.


4) Все компьютеры выполняют команды программ последовательно.
Ложь
Истина
Насколько я понимаю это так, все команды переводятся в бинарный код понятный компьютеру и выполняются по очереди, последовательно

Все зависит от архитектуры.
ARM выполняют более менее последовательно
x86 x64 содержат блоки предвыборки и выполняют обе ветви и отбрасывают не нужную


5) Если две программы одновременно выполняются на двух ядрах одного процессора, то полученное время исполнения будут одинаковыми.
Ложь
Истина
Мне кажется ложь, так как программа может быть разной длины/сложности и выполнятся будет за разное время.


Не всегда. Во первых решает планировщик ОС, во вторых приоритет программ, в третьих ядро может тротлится или бустится.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы