#format wiki #language ru = Архитектура и язык ассемблера RISC-V = * Курс [[https://asvk.cs.msu.ru|кафедры АСВК]], вольные слушатели приветствуются * Официальное аспирантского курса: «Архитектура современных ЭВМ» (менять, увы нельзя) * Также можно оформить как матспецкурс в бакалавриате «Введение в архитектуру и язык ассемблера RISC-V» * Также можно оформить как матспецкурс в магистратуре «Архитектура и язык ассемблера RISC-V» * Лектор: [[FrBrGeorge|Георгий Курячий]] * Время и место проведения: '''вторник''', '''10:30''', [[https://youtube.com/playlist?list=PL6kSdcHYB3x6cjkby4H1RuRMzfbEGSNBi|дистанционно (YouTube)]] * Первая лекция '''8'''.02.2022 * [[static/ArchitectureAssembler2022/standings.html|Прогресс выполнения домашних заданий]] * [[https://t.me/uneex_talks|Группа в Telegram]] * '''NEW''': [[/FinalTask|Финальное задание]] * Финальное задание стоит столько же, сколько 4 Д/З == Регистрация и домашние задания == Запись на спецкурс — это регистрация в 203-м турнире факультетской системы EJudge * [[Python/PsyPython2018/EjudgeRegistration|инструкция по регистрации]] * [[https://ejudge.cs.msu.ru/new-client?contest_id=203|Вход для уже зарегистрированных]] * [[https://ejudge.cs.msu.ru/new-client?contest_id=203&locale_id=1|Страница EJudge]] с домашними заданиями * Для участия в экзамене необходимо сделать всё ДЗ Регистрация закрывается '''22.02''' 2022 ## * [[/Exam|Экзамен]] проходит в '''машзале''', 1 этаж ## * В то же время (пятница 18:00) ## * Будем решать задачку на программирование RARS Bitmap Display ## * Для сдачи надо заранее (не менее, чем за два дня до экзамена) записаться, написав письмо с темой «Экзамен ''дата''» по адресу <>. '''Внимание''': от количества записавшихся зависит количество приглашённых экзаменаторов, и, соответственно, сдающих экзамен. ## * О времени и месте проведения экзамена будет объявлено дополнительно. ## * [[/CoursePlan|Темы для экзамена]] (см. также [[../|замечание о методах сдачи-приёмки]] экзамена, [[/MaterialList|материалы по теме курса]]). == Описание == Название:: Архитектура и язык ассемблера RISC-V Title:: RISC-V systems architecture and assembler Аннотация:: Архитектура процессоров RISC-V — пожалуй, наиболее стройная и понятная из всех актуальных архитектур вычислительных систем. В курсе прослеживается связь между конкретной организацией процессора и общими принципами построения вычислительных систем. Планируется решение задач на языке ассемблера с последующей проверкой в системе EJudge. В учебном процессе используются эмулятор, среда разработки и визуализатор выполнения кода RISC-V. Annotation:: RISC-V is probably the most coherent ISA among the current popular architectures, so we use it to illustrate basic principles of computational systems. Course practice includes assembly language programming with automatic EJudge checking and involves emulators for practical tasks. Требования к уровню знаний слушателей:: Дискретная математика в объёме первого курса бакалавриата ВМК МГУ. == Материалы == ##[[https://www.youtube.com/playlist?list=PL6kSdcHYB3x7VJXiCA8OjYAiRBHi7mZTJ|YouTube-плейлист]] || '''№''' || '''Тема''' || '''Дата''' || '''Эфир''' || '''Запись'''|| '''Срок сдачи<
>Д/З''' || || <> || [[/01_AboutRiscV|Принципы развития архитектур ЭВМ; система команд RISC-V]] || <>|| [[https://youtu.be/m-mZJpdNdw0|YouTube]] <> || [[https://youtu.be/ZpH-Nwk4Y2U|YouTube]] || || || <> || [[/02_MemoryRegisters|Регистры и модель памяти; виды адресации]] || <> || [[https://youtu.be/xwpGLWcYnC8|YouTube]] <> || [[https://youtu.be/W1NH-N8iuwY|YouTube]] || <> || || <> || [[/03_StackSubroutines|Стек, подпрограммы и конвенции относительно использования регистров]] || <> || [[https://youtu.be/Be_Z4EMhy8M|YouTube]] <> || [[https://youtu.be/BVdenIOmcVg|YouTube]] || <> || || <> || [[/04_FloatingPoint|Математический сопроцессор]] || <> || [[https://youtu.be/8jp7fB4OfWY|YouTube]] <> || [[https://youtu.be/hNBynYcTx40|YouTube]] || <> || || <>.5 || ''[[/04~_Assembler|Практика программирования на языке ассемблера в RARS]]''|| <><> || [[https://youtu.be/M379y0op1WM|YouTube]] <> || [[https://youtu.be/S9iqcS21UnU|YouTube]] || <> || || <> || [[/05_FrameSyscalls|Кадр вызова функции и системные вызовы]] || <> || [[https://youtu.be/wu6-CF97Mcs|YouTube]] <> || [[https://youtu.be/qPAmJZQDxDM|YouTube]] || <> || || <> || [[/06_Exceptions|Исключительные ситуации]] || <> || [[https://youtu.be/2X9DtF2GzZU|YouTube]] <> || [[https://youtu.be/c4IJ9Fda40A|YouTube]] || <> || || <> || [[/07_Input_Output|Ввод/вывод: поллинг и MMIO]] || <> || [[https://youtu.be/9iknOm9teE4|YouTube]] <> || [[https://youtu.be/2a_SvMMOFL4|YouTube]] || <> || || <> || [[/08_Timers|Прерывание по таймеру]] || <> || [[https://youtu.be/mr50rWnqfS8|YouTube]] <> || [[https://youtu.be/if9HbR7citM|YouTube]] || <> || || <> || [[/09_Interrupts|Прерывания]] || <> || [[https://youtu.be/gyFzhXjJTmc|YouTube]] <> || [[https://youtu.be/ZpRBHpNv9n0|YouTube]] || <> || || <> || [[/10_CacheBPT|Увеличение быстродействия путём усложнения; кеш и предсказание перехода]] || <> || [[https://youtu.be/EvUDTK5Q0CQ|YouTube]] <> || [[https://youtu.be/MEa-l4TE-Dk|YouTube]] || <> || || <> || [[/11_Pipeline|Повышение производительности процессора: конвейер]] || <> || [[https://youtu.be/UPEk7L8-lX8|YouTube]] <> || [[https://youtu.be/1dfziUOkiuM|YouTube]] || <> || || <> || [[/12_ScalingVirtualization|Поддержка многозадачности, многоядерности и виртуализация]] (обзорная лекция) || <> || [[https://youtu.be/L41o9cgezqU|YouTube]] <> || [[https://youtu.be/fxwKo6N3T74|YouTube]] || || ## || <> || Аппаратные платформы на базе RISC-V || <> || [[.|YouTube]] <> || [[.|YouTube]] || || ## || 1 || [[/01_ArchitectureIntro|Как они превратили арифмометр в ЭВМ и почему у них так получилось?]] <>|| <>|| [[/01_ArchitectureIntro/conspect | Сырой]] || [[https://www.youtube.com/watch?v=LyQcTmNcSpY&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=1|YouTube]]|| … || ## || 2 || [[/02_Mips_Architecture|RISC-V — архитектура для людей?]] <> || <>|| [[/02_Mips_Architecture/conspect | Сырой]] || [[https://www.youtube.com/watch?v=R4rtGgRNdpU&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=2|YouTube]]|| <>|| ## || 3 || [[/03_RegistersMemory|Что-то с памятью моей стало]] <> || <>|| [[/03_RegistersMemory/conspect | Сырой]] || [[https://www.youtube.com/watch?v=Ykv4g1gcRsY&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=3|YouTube]] || <>|| ## || 4 || [[/04_SubroutinesAndConventions|Причём тут рекурсия, или Мы так не договаривались!]] <> || <>|| [[/04_SubroutinesAndConventions/conspect | Сырой]] || [[https://www.youtube.com/watch?v=vxxkW2hft2w&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=4|YouTube]] || <>|| ## || 5 || [[/05_FloatingPiont|Число зверя и как с ним управиться]] <> || <>|| || [[https://www.youtube.com/watch?v=NSjz5OFiVgk&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=5|YouTube]] || <>|| ## || 6 || [[/06_FrameSyscallsMacros|Всё уже написано до нас (или нами)]] <> || <>|| || [[https://www.youtube.com/watch?v=i7Yi1wWNCBc&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=6|Youtube]] || <>|| ## || 7 || [[/07_Exceptions|Когда что-то пошло не так]] <> || <> || || [[https://www.youtube.com/watch?v=iG8jmg195No&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=7|Youtube]] || <>|| ## || 8 || [[/08_TrapsAndMMIO|Гаджеты]] <> || <> || || [[https://www.youtube.com/watch?v=rBpk3l9I7is&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=8|Youtube]] || <>|| ## || 9 || [[/09_Interrupts|Этот байт кончился, несите следующий]] <> || <> || || [[https://www.youtube.com/watch?v=BEU6YuLrb_o&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=9|Youtube]] || <>|| ## || 10 || [[/10_PipelineScale|Быстрее! Выше! Сильнее!]] <> || || || [[https://www.youtube.com/watch?v=JH7MTbLUDws&list=PL6kSdcHYB3x6KOBxEP1YZAzR8hkMQoEva&index=10|Youtube]] || || ## || 11 || [[/11_CacheBPT|Догнать и перегнать себя]] <> || || || || == Ссылки == ## На предыдущие курсы, на выложенные материалы с пояснениями и т. п. * [[https://github.com/TheThirdOne/rars/releases|Эмулятор RARS]], на базе которого построен этот курс * [[https://andrewt0301.github.io/hse-acos-course/|Курс Андрея Татарникова на ФКН ВШЭ]] * [[LecturesCMC/ArchitectureAssembler2019|Аналогичный курс на базе архитектуры MIPS]] ## * [[MARS/Tutorial|Справочные материалы по MARS]] * книги по архитектуре RISC-V * [[https://www.amazon.com/Digital-Design-Computer-Architecture-RISC-V-ebook/dp/B099WJ2TZV/ref=sr_1_1?keywords=Digital+Design+and+Computer+Architecture%3A+RISC-V+Edition&qid=1637686816&qsid=145-1056019-7140512&s=digital-text&sr=1-1&sres=B099WJ2TZV%2CB08TRLDR2Q%2CB076HPP6R3&srpt=ABIS_BOOK|Digital Design and Computer Architecture, RISC-V Edition]] aka «'''H&H'''» * Русский перевод: [[https://dmkpress.com/catalog/electronics/circuit_design/978-5-97060-961-3/|Цифровая схемотехника и архитектура компьютера: RISC-V]] * [[https://www.amazon.com/Computer-Organization-Design-RISC-V-Architecture/dp/0128122757|Computer Organization and Design RISC-V Edition: The Hardware Software Interface]] aka «Patterson and Hennessy» * ([[https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjOjPHft-_1AhXPk4sKHU3MB5MQFnoECAYQAQ&url=http%3A%2F%2Fhome.ustc.edu.cn%2F~louwenqi%2Freference_books_tools%2FComputer%2520Organization%2520and%2520Design%2520RISC-V%2520edition.pdf&usg=AOvVaw1EOqRxqY9ACiIqmK2NPXWN|Нашёлся сразу PDF]]) ## * [[http://uni-site.ir/khuelec/wp-content/uploads/Computer-Architecture-A-Quantitative-Approach.pdf|Computer Architecture: A Quantitative Approach /Fifth Edition/ John L. Hennessy, Stanford University, David A. Patterson, University of California, Berkeley]] ## * [[http://hron.fei.tuke.sk/~adam/cas/Digital Design and Computer Architecture (2nd Ed).pdf|Digital Design and Computer Architecture /Second Edition/ David Money Harris, Sarah L. Harris]] ## * [[http://easyelectronics.ru/files/Book/digital-design-and-computer-architecture-russian-translation.pdf|Цифровая схемотехника и архитектура компьютера /второе издание/ Дэвид М. Харрис и Сара Л. Харрис]] * [[https://riscv.org/technical/specifications/|Спецификация системы команд RISC-V]] — в действительности вполне понятный и интересный, хотя и очень ''плотно'' написанный документ * [[https://five-embeddev.com/riscv-isa-manual/latest/preface.html#preface|HTML-версия на cайте five-embeddev]] * [[static/riscv-spec/riscv-spec.html#sec7|Упрощённый HTML-вариант]] (спасибо, `@anotheraeon`!) /* Есть потребность в выгонке более удобного HTML-формата из [[https://github.com/riscv/riscv-isa-manual|исходников на LaTeX]] */ * [[http://riscvbook.com|The RISC-V Reader: An Open Architecture Atlas]] — компиляция из этих спецификаций в виде книги * [[https://github.com/riscv/riscv-platform-specs/blob/main/riscv-platform-spec.adoc|Спецификация полной RISC-V платформы]] * Интересный проект: [[https://riscv-programming.org|RISC-V Assembly Programming]] — учебник и [[https://riscv-programming.org/ale/#|онлайн-эмулятор]] ---- CategoryLectures