Участник:Kamensky/FAQ по Скакову — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Плюсы минусы VLIW и суперскалярной архитектур)
м (TODO-лист)
 
(не показано 10 промежуточных версий 2 участников)
Строка 1: Строка 1:
В этой статье собраны вопросы, которые Павел Сергеевич задает на экзамене
+
В этой статье собраны вопросы, которые Павел Сергеевич задает на экзамене. Некоторые считают, что здесь это зря выложено, что читатели сего должны сами заботать архитектуру, ходить на все лекции и писать конспекты. Поэтому крайне не рекомендуется прогуливать лекции, иначе пропадет понимание, и преподаватель докопается до ваших (не)знаний.
 +
 
 +
По возможности, уменьшайте количество вопросов в TODO, отвечая на них как можно более развернуто.
  
 
== TODO-лист ==
 
== TODO-лист ==
Строка 11: Строка 13:
 
* Почему номера строк и столбцов лучше передавать последовательно, а не параллельно?
 
* Почему номера строк и столбцов лучше передавать последовательно, а не параллельно?
 
* Что идейно среднее между однопортовой и двухпортовой ячейками статической памяти?
 
* Что идейно среднее между однопортовой и двухпортовой ячейками статической памяти?
 +
* В чем разница между оптическими носителями и магнитными с точки зрения пользователя/программиста (а не с точки зрения внутреннего устройства)
 +
* Примеры разных ISA (хватит двух) и разных микроархитектур с одной ISA
 +
* Различия CISC и RISC
 +
* Что быстрее: стек, аккумулятор, reg-reg, reg-mem, mem-mem?
 +
* Как лучше поцарапать оптический диск: по дуге или вдоль радиуса
 +
* Может ли динамическая память быть двухпортовой (да)
 +
* Чем GDDR отличается от DDR?
 +
* Почему прокачивать DDR лучше, чем увеличивать частоту шины данных?
 +
* Почему не делают двухпортовый DDR?
 +
* Чем отличается двухтранзисторный инвертор от однотранзисторного?
 +
* Почему команды памяти не стоит передавать параллельно? Или стоит?
 +
* Как хранится информация в оперативной памяти?
 +
* Чем хорош write-through?
 +
* Почему наблюдается просадка скорости при чтении диска (или при записи)?
 +
* Как размежевывается код Соломон Рида?
 +
* Плюсы и минусы flash-памяти в сравнении с магнитными накопителями?
 +
* В чем разница между фон Неймановской архитектурой и Гарвардской с точки зрения программистов?
 +
* Что определяет ISA?
 +
* Какая ISA лучше?
 +
* Что такое структурные хазарды (нет, не предсказание переходов)?
  
 
== Вопросы с ответами ==
 
== Вопросы с ответами ==
Строка 19: Строка 41:
 
* '''+''' простое железо
 
* '''+''' простое железо
 
* '''+''' планировка на стадии компиляции — есть больше времени, чтобы все хорошо продумать
 
* '''+''' планировка на стадии компиляции — есть больше времени, чтобы все хорошо продумать
* '''-''' длинный код (блоки идут от 2 до 6 команд, в некоторых блоках много NOP'ов)
+
* '''−''' длинный код (блоки идут от 2 до 6 команд, в некоторых блоках много NOP'ов)
* '''-''' необходимость перекомпилировать программу при добавлении модулей (переносе на отличающееся железо)
+
* '''−''' необходимость перекомпилировать программу при добавлении модулей (переносе на отличающееся железо)
* '''-''' некоторые модули могут только складывать (т.е. если программа мало складывает - такие модули бесполезны)
+
* '''−''' некоторые модули могут только складывать (т.е. если программа мало складывает такие модули бесполезны)
* '''-''' кэш забит большим числом NOP-ов, чтобы добиться той же эффективности кэша, необходимо делать его больше
+
* '''−''' кэш забит большим числом NOP-ов, чтобы добиться той же эффективности кэша, необходимо делать его больше
 
;Суперскаляр
 
;Суперскаляр
* '''+''' есть Sheduler(планировщик) команд который наперед знает код и распределяет команды по ядрам(умным способом) - т.е. время выполнения программы меньше (код выполняется быстрее)
+
* '''+''' есть Sheduler(планировщик) команд который наперед знает код и распределяет команды по ядрам(умным способом) т.е. время выполнения программы меньше (код выполняется быстрее)
* '''+''' есть run-time информация про кэш, может планировать выполнение более умно
+
* '''+''' есть runtime информация про кэш, может планировать выполнение более умно
 
* '''+''' код более компактный (плотный) (нет тех нопов которые есть у VLIW)
 
* '''+''' код более компактный (плотный) (нет тех нопов которые есть у VLIW)
 
* '''+''' возможно улучшение архитектуры (т.е наверное можно не парится с перекомпиляцией программы)
 
* '''+''' возможно улучшение архитектуры (т.е наверное можно не парится с перекомпиляцией программы)
* '''-''' тяжелое железо (трудно создать такую штуку - Sheduler)
+
* '''−''' тяжелое железо (трудно создать такую штуку - Sheduler)
 +
 
 +
=== Какой недостаток look-aside? ===
 +
 
 +
Необходимо много проводов. Экономически невыгодно.
 +
 
 +
=== Можно ли бесконечно перезаписывать НЖМД? Сколько там циклов перемагничивания? ===
 +
 
 +
Бесконечно много. Железке все равно.
 +
 
 +
=== Почему флешка работает медленнее HDD? ===
 +
 
 +
Одна дешевая микросхема, дешевый контроллер. Если скорость ~30 МБ/с, то все упирается в USB 2.0. Если меньше, то производитель экономил на производстве.
 +
 
 +
=== Что быстрее SSD или HDD? Почему? ===
 +
 
 +
У SSD выше скорость поиска, потому что время доступа ко всем ячейкам почти одинаковое. А в HDD все зависит от того, где находится считывающая головка и скорости ее перемещения.
 +
 
 +
=== Что делает сложение на этапе MEM MIPS-конвейера? ===
 +
 
 +
Ничего. MIPS — reg-reg архитектура, обращение к памяти происходит только при инструкциях LD и ST.

Текущая версия на 12:17, 19 января 2014

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

По возможности, уменьшайте количество вопросов в TODO, отвечая на них как можно более развернуто.

TODO-лист

  • Почему jk триггер не может быть асинхронным?
  • Нарисовать неполный сумматор на заданном элементе
  • Почему ячейки памяти хранятся матрично, а не в линию?
  • Двухпортовая ячейка памяти
  • Схемы ячеек памяти
  • Почему синхронизация в SDRAM — это хорошо?
  • Что клёвого в DDR (дважды за такт отсылаем информацию), почему это лучше, чем увеличить частоту в два раза, что изменили в DDR2 и DDR3 (стали отсылать ещё в два и ещё в два раза чаще)?
  • Почему номера строк и столбцов лучше передавать последовательно, а не параллельно?
  • Что идейно среднее между однопортовой и двухпортовой ячейками статической памяти?
  • В чем разница между оптическими носителями и магнитными с точки зрения пользователя/программиста (а не с точки зрения внутреннего устройства)
  • Примеры разных ISA (хватит двух) и разных микроархитектур с одной ISA
  • Различия CISC и RISC
  • Что быстрее: стек, аккумулятор, reg-reg, reg-mem, mem-mem?
  • Как лучше поцарапать оптический диск: по дуге или вдоль радиуса
  • Может ли динамическая память быть двухпортовой (да)
  • Чем GDDR отличается от DDR?
  • Почему прокачивать DDR лучше, чем увеличивать частоту шины данных?
  • Почему не делают двухпортовый DDR?
  • Чем отличается двухтранзисторный инвертор от однотранзисторного?
  • Почему команды памяти не стоит передавать параллельно? Или стоит?
  • Как хранится информация в оперативной памяти?
  • Чем хорош write-through?
  • Почему наблюдается просадка скорости при чтении диска (или при записи)?
  • Как размежевывается код Соломон Рида?
  • Плюсы и минусы flash-памяти в сравнении с магнитными накопителями?
  • В чем разница между фон Неймановской архитектурой и Гарвардской с точки зрения программистов?
  • Что определяет ISA?
  • Какая ISA лучше?
  • Что такое структурные хазарды (нет, не предсказание переходов)?

Вопросы с ответами

Плюсы минусы VLIW и суперскалярной архитектур

VLIW
  • + простое железо
  • + планировка на стадии компиляции — есть больше времени, чтобы все хорошо продумать
  • длинный код (блоки идут от 2 до 6 команд, в некоторых блоках много NOP'ов)
  • необходимость перекомпилировать программу при добавлении модулей (переносе на отличающееся железо)
  • некоторые модули могут только складывать (т.е. если программа мало складывает — такие модули бесполезны)
  • кэш забит большим числом NOP-ов, чтобы добиться той же эффективности кэша, необходимо делать его больше
Суперскаляр
  • + есть Sheduler(планировщик) команд который наперед знает код и распределяет команды по ядрам(умным способом) — т.е. время выполнения программы меньше (код выполняется быстрее)
  • + есть runtime информация про кэш, может планировать выполнение более умно
  • + код более компактный (плотный) (нет тех нопов которые есть у VLIW)
  • + возможно улучшение архитектуры (т.е наверное можно не парится с перекомпиляцией программы)
  • тяжелое железо (трудно создать такую штуку - Sheduler)

Какой недостаток look-aside?

Необходимо много проводов. Экономически невыгодно.

Можно ли бесконечно перезаписывать НЖМД? Сколько там циклов перемагничивания?

Бесконечно много. Железке все равно.

Почему флешка работает медленнее HDD?

Одна дешевая микросхема, дешевый контроллер. Если скорость ~30 МБ/с, то все упирается в USB 2.0. Если меньше, то производитель экономил на производстве.

Что быстрее SSD или HDD? Почему?

У SSD выше скорость поиска, потому что время доступа ко всем ячейкам почти одинаковое. А в HDD все зависит от того, где находится считывающая головка и скорости ее перемещения.

Что делает сложение на этапе MEM MIPS-конвейера?

Ничего. MIPS — reg-reg архитектура, обращение к памяти происходит только при инструкциях LD и ST.