Участник:Kamensky/FAQ по Скакову

Материал из Викиконспекты
Перейти к: навигация, поиск

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

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

TODO-лист

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

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

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

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