CS221. Архитектура компьютера и операционные системы

@Danil_Karimov, спасибо за книжку. Почитаю.

@sv @Molkree Я бы сразу драйвера проверил. Все-таки Linux, какие-то железяки обычно приходится ставить вручную. И на мехмате его как-то по своему всегда настраивать надо, я, например, доступ к WiFi на windows так и не смог получить. Для Linux там вообще отдельная страница по настройке отведена. + в настройках VirtualBox стоит покопаться, точно не помню, но там должен быть отдельный пункт под WiFi адаптер.

@Danil_Karimov, доступ по wi-fi сети ЮФУ sfedu из под Windows описан https://docs.r61.net/node/65. По этому сценарию я и настроила свой нетбук. А образ VirtualBox и ubuntu, который выложен в материалах курса, как-то автоматом подхватил эти настройки и домашний компьютер и нетбук, с которым я хожу на занятия, оба прекрасно “выходят” в интернет и в среде виртуальной машины и в домашней среде.

Мне тут подсказали, что Wi-Fi в ВМ не будет работать, если подключиться к нему уже после открытия этой ВМ. Сейчас проверил, действительно так. То есть если сначала подключиться к Wi-Fi, а уже потом открывать машину, то всё ок.

2 лайка

Спасибо за исследование, @Molkree.

Всё-таки я хочу немного добавить про кэши. Оказывается, для Intel 80386 (1985 г) существовали материнские платы с кэшем (хотя в нём самом ещё не было кэша). Впервые кэш на чипе появился в Intel 80486 (1989 г) (тогда он был ещё объединённый), в то же время L2-кэш был размещён на матплате.

Разделённый кэш (данные и инструкции отдельно, Гарвардская архитектура) появился в Pentium (1993 г). Так как L2-кэш занимает много места, его экономически невыгодно интегрировать в CPU.

Однако впоследствии L2-кэш стали размещать прямо на чипе CPU (сейчас каждое ядро обладает своим L1- и L2-кэшем). L3-кэш делится всеми ядрами (в презентации написано, что он более 24 Мбайт, это, наверное, про верхнюю границу, потому что у меня он 8 Мбайт в десктопе и 4 Мбайта в ноуте).

Вот такой CPU у меня в десктопе. L3-кэш на том же чипе, а не матплате. (Встроенная графика занимает уже немалую часть площади ¯_(ツ)_/¯).

А это последнее поколение процессоров от Intel. На первой картинке этого поста L2-кэш размещался на матплате и был просто огромен. Тут в каждом ядре есть два уровня кэша, а общий кэш занимает меньше места, чем одно ядро. Зато теперь есть графическая часть, которая занимает кучу места. Хотя это уже совсем другая история.

P.S. По поводу L4-кэша: в презентации написано, что только в многопроцессорных, однако в двух поколениях процессоров Intel было что-то похожее на L4-кэш. eDRAM - встроенная память графического ядра, делилась с CPU (аж 128 Мбайт!). Так было до Skylake (сейчас это уже предпоследнее поколение). Начиная со Skylake, уже два поколения, схема немного поменялась и eDRAM уже нельзя даже условно считать L4-кэшем (подробнее тут, заголовок eDRAM Changes)

P.P.S. AMD как-то проводил эксперименты со своими процессорами, у них был общий L1-кэш (When AMD’s Bulldozer family…) :slight_smile:

История кэшей

3 лайка

@Molkree, прошлась по ссылкам. Спасибо. Там целый мир!

Представляете, как нам тогда было интересно и разнообразно жить? )))

Баллы за вопросы теста к лекции 6 подправлены. Напоминаю, что формально максимум за этот тест, который Вы видите - 14 баллов. Но я буду ориентироваться на то, что максимум - 8 баллов. А 6 баллов можно получить как бонус за все тесты в целом, если правильно ответить на вопросы, касающиеся множества кодовых слов и кода троекратного повторения.

Размещено расписание контрольных работ по материалам лекций первого модуля.

@sv Во время второй попытки выполнения теста опечатался в ответе на один вопрос(вместо одного пробела между словами случайно поставил два), при этом в первой попытке на вопрос ответил корректно. Подскажите, возможно ли получить утерянный балл?

@xittz, я посмотрю обе Ваши попытки. Заодно, спасибо за сигнал. Постараюсь исправить список правильных ответов.

в 4 домашнем задании сказано, что надо загружать на стек как параметр элементы массива. В каком порядке надо загружать элементы массива - в прямом или обратном? если в прямом - то в 1 задании(PRINT) массив будет выводиться наоборот в силу принципов стека(LIFO)

@Ilya, а ведь в предыдущей строке непосредственно перед этим заданием написано, что все подпрограммы и функции должны соответствовать “конвенции вызова cdecl”. В этих соглашениях как раз и написано “Аргументы функций передаются через стек, справа налево”. Что касается “принципов стека(LIFO)”, то с помощью регистра BP мы “копаемся” в стеке, где хотим. Только инструкции PUSH и POP “помнят” о принципе LIFO. В ассемблере стек для нас не только фрагмент памяти, над которым работают команды PUSH и POP, но и ОБЫЧНЫЙ фрагмент памяти, адресуемый через пару регистров SS:BP.

1 лайк

Открыты результаты контрольной по материалам лекций первого модуля.

@sv Светлана Александровна, добрый вечер. Могу я спросить насчёт одного из вопросов домашнего задания? К сожалению, нигде не нашла примеров перевода десятичных чисел в инструкциях. При их переводе в двоичную систему используется 16 бит, а в одном “отсеке” инструкции их всего 5. Как быть? Спасибо.

@Curly, самый просто вариант перевода 10-чного числа в двоичное - это калькулятор в режиме “programmer”. Второй вариант - если у Вас под рукой есть отладчик T88, то в сегменте данных указываете переводимое число и смотрите его шестнадцатеричное представление, а шестнадцатеричные цифры очень легко заменить двоичными - 1 цифра переводится в 4 бита. В общем случае перевод десятичного числа в двоичное описан, к примеру, по этой ссылке http://algolist.manual.ru/maths/teornum/count_sys.php. Обратите внимание, что скорее всего инструкция, которую Вам надо перевести относится к типу “I (immediate) — Операнды — 2 регистра и число.” (слайд 18 из презентации), а у таких представлений под число отводится 16 бит! См. страницу 2 материалов раздел “BASIC INSTRUCTION FORMATS”, строка таблицы, соответствующая I. Дальше главное не забыть, что в MIPS прямой порядок и распространить правильно полученное двоичное представление числа на 16 битов!

@sv После первой попытки прохождения теста теперь нельзя просмотреть результаты (увидеть правильность/неправильность ответов). Это баг или фича?

В прошлом году это был баг. Который потом, благодаря некоторому студенту, стал обязательной практикой. У Вас, видимо, фича (:

@Romanovsky, это приближение к окончанию семестра. Разве я просто так показывала Вам на лекции отсутствие корреляции между результатами контрольной работы и домашними тестами?