ECEn 424 Review Topics: Chapter 6
ECEn 424 Review Topics: Chapter 6
- Memory:
- What are the important tradeoffs between static RAM (SRAM) and
dynamic RAM (DRAM)?
- How are conventional DRAMs organized and accessed?
- What kind of enhancements have been employed to increase the
speed of DRAMs?
- How do the various types of nonvolatile memories differ from
each other?
- What does the typical bus structure look like that connects the
CPU to main memory?
- Disks:
- How is information organized on a disk? (What are tracks,
sectors, and cylinders?)
- What is multiple zone recording?
- How many read/write heads and actuator arms does
a disk have?
- What are the three main components of the access time for a
disk sector, and what are their relative magnitudes in practice?
- What are logical blocks?
- When a processor wants to read from or write to a disk, what
sequence of actions typically takes place?
- What is a solid state disk, and what advantages and
disadvantages does it have relative to magnetic disks?
- Over a 30-year window, what important trends can be observed
regarding changes in CPU clock rates and SRAM, DRAM, and disk
access times and sizes? What are the implications for
system designers?
- Locality:
- What is locality and why is it present in typical programs?
- What distinct forms of locality exist?
- Why do modern computer systems use memory hierarchies, and what
are the general principles of their design and operation?
- Caches:
- Why are caches an important part of the memory hierarchy?
- What determines where a block can be placed in a cache?
- What determines which block will be chosen as the victim
block for replacement?
- What is the difference between compulsory,
conflict, and capacity misses?
- What are the key parameters that determine the organization
of a cache?
- When a memory request arrives at a cache, what steps are
taken to determine if the requested block is present?
- What are the differences between direct-mapped,
set-associative, and fully-associative caches?
(Which is most likely to avoid thrashing? Which is fastest?
Which is the most expensive?)
- What special challenges do writes create in cache-based
systems?
- How does one evaluate the performance of a cache?
- What kinds of changes can be made to code to make it more
cache friendly? (Can you tell by inspection which version of
code results in the best cache performance?)
- Given the source code to a C function that accesses a matrix and
details about block size, cache size, and cache organization, can
you determine how many misses will occur on the array data?
- What information can be extracted from a memory
mountain for a particular machine, and how is the data for the
mountain obtained?
- Self test: Can you complete all practice problems in Chapter 6?
Updated for 3rd Edition of CS:APP