#import "@local/note_template:0.0.1": *

#set page(numbering: "1", number-align: center)
#set heading(numbering: "1.1")
#set par(justify: true)
#set text(12pt)
#set outline(indent: true)

#frontmatter(authors: ("Nemo",), title: "Computer Abstractions and Technology",date: "2024.4.15-2024.4.--")

#outline()
#pagebreak()

= Eight Great Ideas in Computer Architecture

+ Design for Moore's Law
  
  Every 18-24 months, integrated circuit resources double.

+ Use Abstraction to Simplify Design

  Use abstraction to characterize the design at different levels of representation. Like desipline, we don't really see the lower details when doing high level design. However, we need to keep the low level details in mind to accompilsh the best design.

+ Make the Common Case Fast

  Like _quick sort_.

+ Performance via Parallelism

+ Performance via Pipelining

+ Performance via Prediction

+ Hierarchy of Memories

  Smaller, faster cache to bigger, slower virtual memory.

+ Dependability via Redundancy

= Below the Program

#def[Machine Language:]
#def[Assembly Language:]
#def[High-Level Programming Language:]
#def[Compiler:]

= Under the Covers: the Hardware

_*The five classic components of a computer are, input, output, memory, datapath and control.*_











