Можете ли вы представить многоуровневый компьютер
такое шины, причем особое внимание уделяется популярной шине PCI. В главе приводится много разнообразных примеров, в том числе относящихся к трем упомянутым ранее компьютерам.
Глава 4 знакомит читателя со строением уровня микроархитектуры и принципами его работы. Поскольку функцией этого уровня является интерпретация команд второго уровня, мы сконцентрируемся именно на этом, что и проиллюстрируем на примерах. В этой главе также рассказывается об уровне микроархитектуры некоторых реальных систем.
В главе 5 обсуждается уровень архитектуры набора команд (ISA), который многие называют машинным языком. Здесь мы подробно рассмотрим три модели компьютеров, выбранные нами в качестве иллюстративных примеров.
В главе 6 говорится о некоторых командах, об устройстве памяти компьютера, о механизмах управления на уровне операционной системы. В примерах фигурируют две операционные системы: Windows ХР, устанавливаемая на профессиональных серверах на базе Pentium 4, и UNIX, применяемая вкупе с микросхемой UltraSPARC III.
Глава 7 — об уровне языка ассемблера. Сюда относится и язык ассемблера, и процесс ассемблирования. Здесь речь также идет о компоновке.
В главе 8 обсуждаются параллельные компьютеры, важность которых возрастает с каждым днем. Одни из них действуют на базе нескольких процессоров с общей памятью, у других общей памяти нет. Одни из них представляют собой суперкомпьютеры, другие — сети рабочих станций, третьи — системы на одной микросхеме.
Глава 9 содержит тематический список рекомендуемой литературы к каждому разделу, а также алфавитный список литературы, цитируемой в этой книге. Автор считает, что это — самая главная часть книги, она вам непременно понадобится!
Вопросы и задания
1. Объясните следующие термины своими словами:
3) виртуальная машина.
2. Чем отличается интерпретация от трансляции?
3. Может ли компилятор производить данные непосредственно для уровня микроархитектуры, минуя уровень архитектуры набора команд? Обсудите все доводы за и против.
4. Можете ли вы представить многоуровневый компьютер, у которого уровень физических устройств и цифровой логический уровень — не самые нижние уровни? Объясните, почему.
5. Рассмотрим многоуровневый компьютер, в котором все уровни отличаются друг от друга. Команды каждого уровня в т раз мощнее команд предыдущего уровня, то есть одна команда уровня г может выполнять ту же работу, кото рую выполняют m команд на уровне г - 1. Если для выполнения программы первого уровня требуется k секунд, сколько времени будут выполняться соответствующие программы на уровнях 2, 3 и 4, с учетом того, что для интерпретации одной команды уровня г + 1 требуется п команд уровня г?
6. Некоторые команды уровня операционной системы идентичны командам уровня архитектуры набора команд. Эти команды сразу выполняются микропрограммой, а не операционной системой. Учитывая ответ на предыдущий вопрос, подумайте, зачем это нужно.
7. Рассмотрим компьютер с идентичными интерпретаторами на уровнях 1, 2 и 3. Для выборки, изучения и выполнения одной команды интерпретатору требуется п служебных команд. На уровне 1 одна команда выполняется за k наносекунд. За какое время одна команда будет выполнена на уровнях 2, 3 и 4?
Вот полный вопрос - "Можете ли вы представить многоуровневый компьютер, у которого уровень
физических устройств и цифровой логический уровень — не самые нижние
уровни?". Я вот не могу представить, а вы можете? Интересно. В физике я слаб.
Средний 6 комментариев
Dolarun, в квантовых так же есть уровень физических устройств и уровень логических операций. только всё квантовое.
тут я думаю вопрос дается с упором на виртуальные машины и все подобное.
в виртуалках "ниже" виртуальных физических устройств находятся слои виртуальной машины и хостового компуктера.
предположу это затравка для следующей лекции. про виртуальные машины или чего другого.
но все зависит от контекста вопроса.
также можно сказать, что "ниже" "физического" уровня схемы находится плата и корпус который весь ентот винегрет элементов держит в строгом порядке, необходимым для работоспосбности устройства. и т.д. и т.п.
а уж если вечерком, да под водочку, разлиться мыслью по древу, то и не такое можно нафилософствовать.
легко. Во многих платах есть свой биос/ фирмварь. И это вот все запускается раньше биоса uefi компьютера. Да и в самом uefi есть отдельный проц, который творит непонятно что и чем он там занимается не знает ни кто.
"Физическое устройство" довольно широкое понятие, "пробиться" ниже тяжеловато.
А "цифровой логический уровень" это вопрос организации данных. Цифровую логику можно построить на пневматических реле. Или сделать не двоичное, а пятеричное кодирование. Ниже только физический же процесс на устройстве, и состояния процесса трактуются отдельными цифрами.
Вычислительный модуль можно сделать даже из людей.
Люди считают свой этап в большой формуле и передают дальше.
Тоже, возможно, расчёты какие-то ведут.
Но мне кажется, вопрос следует ставить не про "уровни ниже/выше", а про альтернативы.
Вопрос дурацкий, и тот кто его придумал - не самый умный человек.
Вопрос следует конкретизировать, потому что либо речь идет о выдуманном мире и выдуманной физике от человека-эзотерика, либо сформулирован так, что требует дополнения.
У компьютера есть архитектура в основном в архитектуре взаимодействия устройств при помощи шины.
Есть архитектура процессора, которая подразумевает логику на уровне транзисторов и соответственно логику работы инструкций на физическом уровне.
Ниже уже не архитектура, а набор отдельных элементов - транзисторы, и то, из чего они созданы - молекулы и так далее.
На молекулярном уровне люди пока не научились делать сложную архитектуру, следовательно придумать как можно было бы этим управлять, не имея даже готовой теории? Ну вот мы можем удержать электроны и нейтроны при помощи магнитного поля, когда мы удерживаем плазму. Но делать какую-то логику на уровне атомов мы не можем.
Для 2-3 нанометровых процессов уже практически приблизились поштучно к молекулам, но делается это хитрыми способами. Транзистор из парочки молекул вряд ли будет стабилен, поэтому остановятся на десятках, а дальше изыскивать принципиально другие варианты.
Возник вопрос по задаче из книги "Организация ЭВМ" Таненбаума:
Рассмотрим многоуровневый компьютер, в котором все уровни отличаются друг от друга. Команды каждого уровня в m раз мощнее команд предыдущего уровня, то есть одна команда уровня r может выполнять ту же работу, которую выполняют m команд на уровне r - 1. Если для выполнения программы первого уровня требуется k секунд, сколько времени будут выполняться соответствующие программы на уровнях 2, 3 и 4, с учетом того, что для интерпретации одной команды уровня r + 1 требуется n команд уровня r?
Я решил так: на 1ом уровне кол-во выполняемых команд в n раз больше, чем на 2ом => для их решения требуется (k/n) секунд на 2ом уровне, k/(n^2) на 3-ем и т.д.
Но тогда причём здесь мощность команд m? Подскажите.
Конфигурация компьютера | |
Процессор: Intel Core i5-9600K @ 3.70GHz | |
Материнская плата: ASUS TUF B360-PRO GAMING | |
Память: 2 x 8Гб 2666МГц Kingston HyperX Fury Black | |
HDD: SSD NVMe 512 Mb Samsung 970 EVO Plus + SSD 512Gb Goldenfir + 2Tb SATA Seagate + 3Tb SATA WD | |
Видеокарта: Gigabyte GTX 1660 Ti Gaming OC | |
Звук: Creative Sound Blaster Z | |
Блок питания: Zalman ZM600-LE2 600W | |
CD/DVD: ASUS DRW-24D5MT | |
Монитор: LG 24MP58D [24" IPS] + NEC LCD225WXM [22" TFT] | |
ОС: Windows 10 Pro x64 | |
Прочее: Oklick 940G, Logitech G102 Prodigy, MicroLab Solo-5C, Canon LiDE 210, HP P1102w, Logitech HD Pro C920, Xbox ONE Controller |
Долго думал. Вот вопрос:
Что значит "соответствующие" программы? Если они достигают одного результата, то на всех уровнях будет k секунд, т.к. мы говорим об одном и том же компьютере.
А если программы разные - то их надо как-то описать.
Рассмотрим многоуровневый компьютер, в котором все уровни отличаются друг от друга. Команды каждого уровня в m раз мощнее команд предыдущего уровня, то есть одна команда уровня r может выполнять ту же работу, которую выполняют m команд на уровне r - 1. Если для выполнения программы первого уровня требуется k секунд, сколько времени будут выполняться соотсоответствующие программы на уровнях 2, 3 и 4, с учетом того, что для интерпретации одной команды уровня r + 1 требуется n команд уровня r?
Таненбаум
Не сомневаюсь что этот форум посещают "исключительно" начитанные люди. И для этой категории людей.
Ряд вопросов про потоки [ Таненбаум etc ]
Э.Таненбаум "Современные операционные системы" 2-е издание, Питер, 2006. Стр.113:Что такое.
Куплю книгу Э.Таненбаум Операционные системы. Разработка и реализация 3-е изд
Куплю книгу Э.Таненбаум Операционные системы. Разработка и реализация 3-е изд + CD-ROM Москва.
Дико извиняюсь за долгое раздумье!
Добавлено через 52 минуты
Я зациклился на том, что это машина, так скажем, близкая к реальности. И что одна команда уровня r может выполнять ту же работу, которую выполняют m определённых команд уровня r - 1. И с какой вероятностью при интерпретации одной команды уровня r + 1 n командами уровня r получаются те самые определённые команды уровня r. В этом случае задача к тривиальным никаким боком не относится. Но не прошло и года, как я смекнул, что у сарая нет четвёртой стены что дважды два равно что задача абстрактная, и машина, судя по всему, тоже абстрактная. И попытался ещё раз, но на сей раз правильно, прочитать задание.
. одна команда уровня r может выполнять ту же работу, которую выполняют m любых команд на уровне r-1, иными словами, команды уровня r выполняются в m раз быстрее команд уровня r-1.
. для интерпретации одной команды уровня r+1 требуется n любых команд уровня r, то есть, программа уровня r+1 просто короче программы уровня r в n раз.
Получается, что программа на уровне r+1 будет выполняться быстрее, чем программа на уровне r в m*n раз.
И время выполнения программы первого уровня на любом (в том числе и на первом) уровне тогда будет
Формально всё правильно, но как далеко от суровой реальности.
der Tannenbaum. при чём тут ЁЛКА?
Добавлено через 5 часов 6 минут
Уточнение. . где r - номер уровня.
рассмотрим многоуровневый компьютер, в котором все уровни разные. У каждого уровня есть инструкции, которые в m раз мощнее, чем у уровня ниже него; то есть одна инструкция уровня r может выполнять работу инструкций уровня r – 1, Если программа уровня 1 требует k секунд для запуска, сколько времени эквивалентные программы занимают на уровнях 2, 3 и 4, предполагая, что N инструкций уровня r требуются для интерпретации одной инструкции r+1?
Это решение, которое я придумал с. Кто-нибудь может подтвердить или прокомментировать?
Это решение, которое я придумал. Кто-нибудь может подтвердить или прокомментировать?
для того, чтобы вычислить время выполнения т(м) по заданной программе, содержащее м уровне-1 инструкция, мы должны учитывать как в геометрической прогрессии растет число уровней-1 Инструкция каждый уровень R инструкция представляет (показаны как M^(Р-1)) и дополнительный номер уровня-1 инструкций, необходимых для интерпретации для каждого слоя, на котором программа выполняется (отображается как nm^(r-1)). Дополнительные инструкции уровня 1, используемые для интерпретации нижними уровнями, также должны быть добавлены в окончательные уравнения для r>2. Наконец, для каждого уравнения мы можем определить количество секунд, необходимых для запуска программы, путем умножения общего количества инструкций уровня 1 на время выполнения одного цикла уровня 1, как вычисляется (k / q).
отказ от ответственности: это домашнее задание, задание уже сдали. Я просто не могу понять семантику этой проблемы, и мне очень хотелось бы ее понять.
проблема просто гласит, что если она занимает K единиц времени на уровне 1, то K/M единиц она будет принимать на втором уровне, как и так далее.
Я думаю, что вы все делаете это слишком сложно. Другими словами, в постановке задачи говорится, что каждый слой работает в m раз быстрее, чем слой выше. Следовательно, слой 2 завершает программы в 1 / m время, слой 3 в 1 / m * 1/m и так далее. Таким образом, окончательное уравнение просто:
Это просто рекурсивная функция:
Я не уверен, что определение задачи завершено, потому что, если это так, я не вижу другого разумного способа решить ее, чем ее упрощение.
Итак, вот несколько вещей, которые я предполагаю:
- t (q,1)=k(нам поручено найти t(q,r)) => t (1,1) = q/k, почему? Потому что, если мы не будем считать, что время зависит только от количества инструкций, а не от типа инструкций, мы окажемся в реальности, где эта задача не разрешима. В таком случае q не будет рассматриваться как число, и мы нельзя предположить, что другой набор инструкций займет меньше или больше времени на основе количества инструкций. В заключение, что касается моего чтения в этой задаче, они относятся только к числу инструкций.
- если программа является родной на одном уровне "r", то потребуется N инструкций другого уровня, чтобы интерпретировать их (сделать их родными). В определении задачи (как представлено здесь) нет ничего, что заставляет вас интерпретировать только инструкции уровня r+1. На самом деле, потому что мы начинаем с первый уровень: "N инструкций уровня r требуется для интерпретации одной инструкции r+1" будет довольно бесполезным, если мы не можем предположить, что я говорю выше.
- также Q уровень X инструкции после интерпретации должны всегда преобразовываться в Q уровень y инструкции, другие тиски мы никогда не можем знать время выполнения другого уровня, потому что количество инструкций может сильно отличаться (как в реальном мире)
Так вот ответ с этими предпосылки:
Если любое из 3 предположений неверно, вам нужно ввести новые неизвестные функции, чтобы ответ стал просто уравнением неизвестных функций, которые были бы бесполезны, но гораздо более бесполезны, чем этот. Этот просто красивее:)
Btw вам нужно посмотреть на свои упражнения в университете, чтобы увидеть, как подобные задачи были решены, чтобы быть уверенным, что подход к проблеме правильный.
Читайте также: