CS428 Embedded Systems Lab: Course Info
Department of Computer Science
University of Crete
Area: |
E4 - Computer Architecture and Computer Systems |
ECTS: |
6 |
Semester: |
Spring 2025 |
Instructors: |
|
Syllabus
Semester Week # |
Week Start |
Mon (Lecture 1), 16:00-18:00 |
Wed (Lecture 2), 16:00-18:00 |
Fri (Backup) 16:00-18:00 |
1 |
10/2 |
- Introduction: Embedded Systems - Embedded System Design Issues - Lego Mindstorms NXT HW DevKit & Arduino Platform [slides available locally ~hy428/files/slides] |
- Timers, clocks - Real Time Timer RTT (AT91 manual or AT3X manual) - Hands-on walk-through [slides available locally ~hy428/files/slides] |
|
2 |
17/2 |
- ARM interrupts (2.8 in manual, AT91note) - AIC (AT91 manual) or NVIC (or AT3X manual) - Sound: AT91SAM7S SSC (AT91 manual) [slides available locally ~hy428/files/slides] |
- PWM & Sound - AT91SAM7S basic PIO (AT91 manual or AT3X manual) - AT91SAM7S PDC/DMA (AT91 manual or AT3X manual) - Consistent sound - [SPY0030A datasheet available locally] [slides available locally ~hy428/files/slides] |
|
3 |
24/2 |
- ARM instruct. set (ARM7 manual, ref) [slides available locally ~hy428/files/slides] |
- SPI (AT91 manual, slides) - LCD [manual available locally] [slides available locally ~hy428/files/slides] |
|
4 |
3/3 |
Public Holiday |
- LCD connectivity - Display programming - Analog to Digital Converter (AT3X manual) [slides available locally ~hy428/files/slides] |
|
5 |
10/3 |
- ARM interrupts in depth (1/2) - Local file: AT91_interrupts.pdf - Local file: ARM7TDMI_Technical_Reference_Manual.pdf (section 2.8) - local file: Cstartup.S [slides available locally ~hy428/files/slides] |
- ARM interrupts in depth (2/2) [slides available locally ~hy428/files/slides] |
|
6 |
17/3 |
- I2C (spec: sec1-10, i2c-manual) - TWI (AT91 manual) [slides available locally ~hy428/files/slides] |
- ARM - peripheral communication over I2C - I2C implementation on TWI - Passive sensor input/output |
|
7 (midterm week) |
24/3 |
- Memory technologies [slides available locally ~hy428/files/slides]
- NAND Flash and SSDs 1/2 [slides available locally ~hy428/files/slides] (1) Flash basics Section 2 of Luo et al., Data Retention in MLC NAND Flash Memory: Characterization, Optimization, and Recovery, HPCA15 [~hy428/files/reading/flash/retention_hpca15.pdf] Micron Technical Note, NAND Flash 101: An Introduction to NAND Flash and How to Design It In to Your Next Product. 2006. [~hy428/files/reading/flash/micron_flash101.pdf]
M-sysetms, White Paper, Two Flash Technologies Compared: NOR vs NAND, Arie Tal, Oct. 2002, 91-SR-012-04-8L REV. 1.0 [~hy428/files/reading/flash/nand_vs_nor.pdf] |
Midterm (during class, Wednesday, 26/3/2024, 16:00-18:00, αίθουσα του μαθήματος) |
|
8 |
31/3 |
- NAND Flash and SSDs 2/2 [slides available locally ~hy428/files/slides]
(1) SSD structure Sections 1,2,3,5 of: Nitin Agrawal et al. Design tradeoffs for SSD performance. In USENIX 2008 Annual Technical Conference (ATC'08). [~hy428/files/reading/flash/ssd_tradeoffs_atc08.pdf] (2) FTL address translation + GC Section 2 of: DFTL: A Flash Translation Layer Employing Demand-based Selective Caching of Page-level Address Mappings. Gupta et al. ASPLOS’09. [~hy428/files/reading/flash/dftl_asplos09.pdf]
(3) SSD DRAM cache Section 3 of: BPLRU: A buffer management scheme for improving random writes in Flash storage. Kim et al. FAST’08. [~hy428/files/reading/flash/bplru_fast08.pdf] |
- Real Time 1/2 [slides available locally ~hy428/files/slides]
Rate-Monotonic Analysis for Real-Time Industrial Computing. Mark H. Klein, JohnP. Lehoczky, and Ragunathan Rajkumar Carnegie Mellon University. IEEE Computer 0018-9162/94, 1994. [Available locally: ~hy428/files/reading/RMAKleint94.pdf] |
|
9 |
7/4 |
- Virtualization in Embedded Systems [slides]
- Reading: (1) Smith et al., The Architecture of QEMU (2) F. Bellard, QEMU, a Fast and Portable Dynamic Translator, USENIX Freenix, 2005 (3) Virtual Machines, IEEE Computer, vol.38, no.5, May 2005 (4) Rosenblum et al., Virtual Machine Monitors: Current Technology and Future Trends, IEEE Computer, May 2005. |
- QEMU: Architecture and Internals [slides]
- Reading: (5) A. Whitaker, R.S. Cox, M. Shaw, S.D. Gribble, Rethinking the Design of Virtual Machine Monitors, IEEE Computer, vol.38, no.5, May 2005. (6) Kirk L. Kroeker, The Evolution of Virtualization, CACM, vol.52, no. 3, March 2009 (7) G.J. Popek, and R.P. Goldberg, Formal Requirements for Virtualizable Third Generation Architectures, CACM, vol. 17 no. 7, 1974. |
|
Easter recess |
14/4 |
|
||
Easter recess |
21/4 |
|
|
|
10 |
28/4 |
- Hardware-assisted virtualization: x86 [slides] |
- Virtualization in Embedded Systems [slides] - RISC-V Bare Metal on Qemu [slides] |
|
11 |
5/5 |
- I/O in Linux Hypervisors and Virtual Machines [slides] - Reading: Mendel Rosenblum, Carl Waldspurger: "I/O Virtualization". ACM Queue, Volume 9, issue 11, November 22, 2011. [ link to ACM Queue ] |
I/O Virtualization
|
|
12 |
12/5 |
- Linux Kernel [slides] |
- Real Time 2/2 [slides available locally ~hy428/files/slides] - Extensions to RMA -
Synchronization |
|
13 |
19/5 |
- ARM virtualization [slides] - Reading: Julien Grall: "Hypervisors on ARM: Overview and Design choices", Root Linux Conference 2017. [slides] ARM AArch64 virtualization: Hypervisor software. [link] - I/O in Linux Hypervisors and Virtual Machines [slides] |
|
|
30/5 |
- Reading Week |
|||
Final Exam (1st Period) |
TBD |
- Exam schedule |
||
Final Exam (2nd Period) |
TBD |
- Exam schedule |
(c) Copyright University of Crete, Greece, Last Modified: 20-Jan-2025