Changeset 616 for Deliverables/D1.1


Ignore:
Timestamp:
Mar 2, 2011, 11:40:50 AM (9 years ago)
Author:
mulligan
Message:

More changes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Deliverables/D1.1/Presentations/WP4-dominic-presentation.tex

    r615 r616  
    3333\item
    3434Is a relatively simple microprocessor especially suited to CerCo's aims.
     35\item
     36We can accurately predict how long an instruction will take to execute in cycles (i.e. no pipelining, caching etc.)
     37We use timings from a Siemen's datasheet.
     38Vary between manufacturers and models.
    3539\end{itemize}
    3640\end{frame}
     
    4347I am going to reveal enough for you to understand what problems we faced in formalising it.
    4448\item
     49The MCS-51 has a byzantine memory model.
     50\item
     51Memory spaces overlap, have different sizes, may not be present depending on model, can be addressed in multiple ways, and addressed with different sized pointers.
     52\item
     53Instruction set is non-orthogonal.
     54For instance, \texttt{MOV} can take 16 combinations of addressing mode out of a possible 300+.
     55\end{itemize}
     56\end{frame}
     57
     58\begin{frame}
     59\frametitle{The MCS-51 microprocessor III}
     60\begin{itemize}
     61\item
     62Instruction set contains three unconditional jumps: \texttt{AJMP}, \texttt{SJMP} and \texttt{LJMP} (first one rarely used).
     63\item
     64These differ in the size of permissible offset and the size in bytes of instruction.
     65\item
     66MCS-51 also has various timers, UART I/O and interrupts.
     67Succesor 8052 adds additional timers.
     68\item
     69Interrupts are simpler than a modern processor, as flags can be used to manually handle errors.
    4570\end{itemize}
    4671\end{frame}
     
    4873\begin{frame}
    4974\frametitle{Development strategy}
     75We built two emulators for the processor.
     76\vspace{1em}
     77The first was written in O'Caml.
     78This allowed us to `iron out' issues in the design and implementation, and make rapid changes in O'Caml's more permissive type system.
     79We made use of O'Caml's ability to perform I/O for debugging purposes.
     80\vspace{1em}
     81When we were happy with the O'Caml emulator, we moved to Matita.
     82Matita's language is lexically similar to O'Caml, so swathes of code could be copy-pasted with little additional effort.
    5083\end{frame}
    5184
Note: See TracChangeset for help on using the changeset viewer.