- Timestamp:
- Mar 2, 2011, 11:40:50 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Deliverables/D1.1/Presentations/WP4-dominic-presentation.tex
r615 r616 33 33 \item 34 34 Is a relatively simple microprocessor especially suited to CerCo's aims. 35 \item 36 We can accurately predict how long an instruction will take to execute in cycles (i.e. no pipelining, caching etc.) 37 We use timings from a Siemen's datasheet. 38 Vary between manufacturers and models. 35 39 \end{itemize} 36 40 \end{frame} … … 43 47 I am going to reveal enough for you to understand what problems we faced in formalising it. 44 48 \item 49 The MCS-51 has a byzantine memory model. 50 \item 51 Memory 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 53 Instruction set is non-orthogonal. 54 For 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 62 Instruction set contains three unconditional jumps: \texttt{AJMP}, \texttt{SJMP} and \texttt{LJMP} (first one rarely used). 63 \item 64 These differ in the size of permissible offset and the size in bytes of instruction. 65 \item 66 MCS-51 also has various timers, UART I/O and interrupts. 67 Succesor 8052 adds additional timers. 68 \item 69 Interrupts are simpler than a modern processor, as flags can be used to manually handle errors. 45 70 \end{itemize} 46 71 \end{frame} … … 48 73 \begin{frame} 49 74 \frametitle{Development strategy} 75 We built two emulators for the processor. 76 \vspace{1em} 77 The first was written in O'Caml. 78 This allowed us to `iron out' issues in the design and implementation, and make rapid changes in O'Caml's more permissive type system. 79 We made use of O'Caml's ability to perform I/O for debugging purposes. 80 \vspace{1em} 81 When we were happy with the O'Caml emulator, we moved to Matita. 82 Matita's language is lexically similar to O'Caml, so swathes of code could be copy-pasted with little additional effort. 50 83 \end{frame} 51 84
Note: See TracChangeset
for help on using the changeset viewer.