Unverified Commit bb09989f authored by theova's avatar theova
Browse files

Redefine {sub}*sections

- Span box over entire columnwidth
- Define subsubsection
- Use \{sub}*section instead of \own{sub}*section
parent d4d018a1
% !TeX root = main.tex
\ownsection{TODO}
\ownsubsection{Kapitel 2: }
\section{TODO}
\subsection{Kapitel 2: }
fertig\\
\ownsubsection{Kapitel 3: Hardware‐Software Interface}
\subsection{Kapitel 3: Hardware‐Software Interface}
\begin{enumerate}
\item Add Memory MAP of MSP432 (Processor used in Lab)
\item Add UART
\item Add Polling and Interrupt (Slide 3-55)
\end{enumerate}
\ownsubsection{Kapitel 4: Programming Paradigms}
\subsection{Kapitel 4: Programming Paradigms}
fertig!!:D \\
\ownsubsection{Kapitel 5: OS}
\subsection{Kapitel 5: OS}
fertig!!:D \\
\ownsubsection{Kapitel 6: aperiodic, periodic scheduling}
\subsection{Kapitel 6: aperiodic, periodic scheduling}
fertig!!:D \\
\ownsubsection{Kapitel 9: Power and Energy}
\subsection{Kapitel 9: Power and Energy}
\begin{enumerate}
\item Add Application control (Slide 9-53)
\end{enumerate}
% kuenzlij
% !TeX root = ../main.tex
\ownsection{Embedded Operation Systems (5)}
\section{Embedded Operation Systems (5)}
Why is a desktop OS not suited?
\begin{compactitem}
\item Monolithic kernel is too feature rich.
......@@ -21,7 +21,7 @@ Advantages and properties of embedded OS
\item Protection mechanisms not always necessary (Processes tested and considered reliable). $\implies$ Tasks can do their own I/O, including interrupts
\end{compactitem}
\ownsubsection{Real-Time OS (5-6)}
\subsection{Real-Time OS (5-6)}
\begin{compactitem}
\item The timing behaviour of the OS must be predictable
\subitem For all services upper bound on execution time
......@@ -32,7 +32,7 @@ Advantages and properties of embedded OS
\item OS must be fast
\end{compactitem}
\ownsubsection{Main Functionality of RTOS Kernel (5-11)}
\subsection{Main Functionality of RTOS Kernel (5-11)}
\begin{compactitem}
\item \textbf{Task management:} Execution of quasi-parallel tasks on a processor using processes or threads
\item \textbf{CPU scheduling:} guaranteeing deadlines, minimizing waiting times, fairness in granting resources
......@@ -41,7 +41,7 @@ Advantages and properties of embedded OS
\item \textbf{Real-time clock:} as an internal time reference
\end{compactitem}
\ownsubsection{Task states (5-12)}
\subsection{Task states (5-12)}
\begin{center}
\includegraphics[width=0.9\columnwidth]{OS1}
\end{center}
......@@ -51,11 +51,11 @@ Advantages and properties of embedded OS
\textbf{Blocked}: A task enters this state when it executes a synchronization primitive to wait for an event, e.g. a wait primite or a semaphore.
\end{compactitem}
\ownsubsection{Threads (5-16)}
\subsection{Threads (5-16)}
A thread is the smallest sequence of programmed instructions that can be managed independently by a scheduler. Multiple threads can exist within the same process and share resources such as memory, while different processes do not share these resource
s. The \textcolor{red}{Thread Control Block (TCB)} stores information needed to manage and schedule a thread.
\ownsubsection{Classes of embedded OS (5-18)}
\subsection{Classes of embedded OS (5-18)}
\textbf{Class 1: Fast Proprietary Kernels}: For hard real-time systems, these kernels are questionable, because they are designed to be fast, rather than to be predictable in every respect. ~\newline
\textbf{Class 2: Extensions to Standard OS}: Real-time extensions to standard OS. Attempt to exploit comfortable main stream OS. RT-kernel running all RT-tasks, \textbf{standard-OS executed as one task.} \newline
......@@ -76,7 +76,7 @@ Typical Research questions:
\item formally verified kernel properties
\end{compactitem}
\ownsubsection{FreeRTOS (5-25)}
\subsection{FreeRTOS (5-25)}
\begin{tabularx}{\columnwidth}{|p{1.7cm} | X|}
\hline
5-28 & Task Management \\
......
% !TeX root = ../main.tex
\ownsection{Aperiodic and Periodic Scheduling (6)}
\ownsubsection{Real-Time Systems (6-3)}
\section{Aperiodic and Periodic Scheduling (6)}
\subsection{Real-Time Systems (6-3)}
\begin{compactitem}
\item A real-time task is said to be \textcolor{red}{hard}, if missing its deadline may cause catastrophic consequences on the environment under control.
\item A real-time task is called \textcolor{red}{soft}, if meeting its deadline is desirable for performance reasons, but missing its deadline is not catastrophic.
\end{compactitem}
\ownsubsection{Schedule (6-4)}
\subsection{Schedule (6-4)}
A \textcolor{red}{schedule} is an assignment of tasks $J=\{J_1,J_2,...\}$ to
the processor, such that each task is executed until completion. It can be
defined as a function $$\sigma: \mathbb{R} \rightarrow \mathbb{N}, t \mapsto
......@@ -22,7 +22,7 @@ A set of tasks is \textcolor{red}{schedulable} if there exists an algorithm that
\textcolor{red}{Start time} $s_i$ is the time at which a task starts its execution. \\
\textcolor{red}{Finishing time} $f_i$ is the time at which a task finishes its execution.
\ownsubsection{Metrics (6-6) and (6-13)}
\subsection{Metrics (6-6) and (6-13)}
\textbf{For a task}:
\begin{compactitem}
\item \textbf{Response time}: $R_i = f_i - r_i$
......@@ -43,7 +43,7 @@ A set of tasks is \textcolor{red}{schedulable} if there exists an algorithm that
\item Number of late tasks: $N_{late} = \sum_{i=1}^{n}miss(f_i)$
\end{compactitem}
\ownsubsection{Classification of Scheduling Algorithms (6-11)}
\subsection{Classification of Scheduling Algorithms (6-11)}
\begin{compactitem}
\item \textcolor{red}{Preemptive Algorithms:} The running task can be interrupted at any time to assign the processor another active task
\item \textcolor{red}{Non-preemptive Algorithms:} A task, once started, is executed by the processor until completion
......@@ -54,7 +54,7 @@ A set of tasks is \textcolor{red}{schedulable} if there exists an algorithm that
\item \textcolor{red}{Acceptance test}: Check for every task if when it is accepted, the schedule will still be feasible
\end{compactitem}
\ownsection{Scheduling algorithms for aperiodic Tasks (6-17)}
\section{Scheduling algorithms for aperiodic Tasks (6-17)}
\begin{tabularx}{\columnwidth}{|p{1.7cm} | p{2.7cm} | X|}
\hline
......@@ -66,11 +66,11 @@ A set of tasks is \textcolor{red}{schedulable} if there exists an algorithm that
\end{tabularx}
~\newline
\ownsubsection{Earliest Deadline Due (Jackson's Rule) (6-18)}
\subsection{Earliest Deadline Due (Jackson's Rule) (6-18)}
\textbf{Algorithm: }Task with earliest deadline is processed first. (Arrival times are equal for all tasks,tasks are independent, Scheduling is non-preemptive.)\newline
\textbf{Jackson's Rule: }Given a set of $n$ independent tasks. Processing in order of non-decreasing deadlines is optimal with respect to minimizing the maximum lateness. \newline
\ownsubsection{Latest Deadline First (Lawler's Rule)}
\subsection{Latest Deadline First (Lawler's Rule)}
\textbf{Optimization goal:} Minimize the maximum lateness\\
\textbf{Assumptions on the task set:}
\begin{itemize}
......@@ -85,7 +85,7 @@ A set of tasks is \textcolor{red}{schedulable} if there exists an algorithm that
\item repeat the procedure until all tasks in the set are selected
\end{itemize}
\ownsubsection{Earliest Deadline First (Horn's Rule) (6-22)}
\subsection{Earliest Deadline First (Horn's Rule) (6-22)}
\textbf{Algorithm:} Task with earliest deadline is processed first. If new task with earlier deadline arrives, current task is preempted. \vspace{2mm}
\textbf{Optimization goal:}
......@@ -111,7 +111,7 @@ EDF guarantee condition: $\forall i = 1,\dots ,n \quad t + \sum_{k=1}^i c_k(t)\l
\end{python}
A new task is accepted if the schedule remains feasible. \newline
\ownsubsection{EDF* (6-27)}
\subsection{EDF* (6-27)}
Determines a feasible schedule for tasks with precedence constraints if one exists. \newline
\textbf{Algorithm: }Modify release times and deadlines (in that way we get a problem without precedence constraints and can use the normal EDF algorithm. Precedence constraints are still satisfied). Then use EDF. \newline
\textbf{Modification of release times:}\newline
......@@ -134,7 +134,7 @@ Task must finish execution within its deadline and not later than the maximum st
\textcolor{red}{\textbf{$\to$ For response time etc. calculations use the original release times and deadlines}}
\ownsection{Scheduling Algorithms for periodic tasks (6-32)}
\section{Scheduling Algorithms for periodic tasks (6-32)}
\begin{tabularx}{\columnwidth}{|p{1.7cm} | p{2.7cm} | X|}
\hline
\textbf{Periodic \newline Tasks} & Deadline $=$ Period & Deadline $<$ Period \\
......@@ -158,7 +158,7 @@ Task must finish execution within its deadline and not later than the maximum st
\end{compactitem}
\end{definition}
\ownsubsection{Rate Monotonic Scheduling (RM, 6-37)}
\subsection{Rate Monotonic Scheduling (RM, 6-37)}
RM is optimal, meaning that if any static-priority scheduling algorithm can meet all the deadlines, then the rate-monotonic algorithm can too.
Fixed / static priorities, independent, preemptive, deadlines equal the periods, $D_i=T_i$. Tasks can't suspend themselves, kernel overhead is assumed 0.
......@@ -177,7 +177,7 @@ As a sufficient and necessary test, you can simulate it or do algorithm of DM se
\textbf{Critical Instant}: The time at which the release of the task will produce the largest response time. It is if that task is simultaneously released with all higher priority tasks.
$\implies$ If there are no phase shifts, simulate the beginning (till all deadlines have passed). If that works, the schedule is feasible.
\ownsubsection{Deadline Monotonic Scheduling (6-49)}
\subsection{Deadline Monotonic Scheduling (6-49)}
Fixed / static priorities, independent, preemptive, deadlines can be smaller than periods, $C_i\leq D_i\leq T_i$.
\textbf{Algorithm}: Tasks with smaller relative deadlines have higher priorities and interrupt tasks with lower priority.
......@@ -215,7 +215,7 @@ This condition is both necessary and sufficient.
}
\end{python}
\ownsubsection{EDF Scheduling (6-56)}
\subsection{EDF Scheduling (6-56)}
Dynamic priority assignment, intrinsically preemptive, deadlines can be smaller than periods: $D_i \leq T_i$
\textbf{Algorithm:} The currently executing task is preempted whenever another periodic instance with earlier deadline becomes active
......@@ -230,7 +230,7 @@ EDF is optimal w.r.t. schedulability (no set of periodic tasks can be scheduled
\end{itemize}
\ownsection{Real‐Time Scheduling of Mixed Task Sets (6-63)}
\section{Real‐Time Scheduling of Mixed Task Sets (6-63)}
For applications with both aperiodic and periodic tasks.
\begin{compactitem}
\item \textcolor{red}{Periodic Tasks:} time-driven, hard timing constraints
......@@ -238,7 +238,7 @@ For applications with both aperiodic and periodic tasks.
\item \textcolor{red}{Sporadic Tasks:} Aperiodic task with a maximum arrival rate (or minimum time between two arrivals) assumed.
\end{compactitem}
\ownsubsection{Background Scheduling (6-65)}
\subsection{Background Scheduling (6-65)}
Schedule periodic tasks with RM or EDF. Process aperiodic task in the background, that is, when there is no periodic task request.
\begin{compactitem}
\item Good: Periodic tasks not affected
......@@ -248,7 +248,7 @@ Schedule periodic tasks with RM or EDF. Process aperiodic task in the background
\includegraphics[width=0.8\columnwidth]{sched2}
\end{center}
\ownsubsection{RM Polling Server (6-67)}
\subsection{RM Polling Server (6-67)}
Introduce an artificial periodic task (\textcolor{red}{server}) to service aperiodic requests. The server is characterized by a period $T_s$ and a computation time $C_s$ and scheduled with the same algorithm used for periodic tasks. \\
Schedulability condition is the same as for normal RM. \\
Disadvantage: If an aperiodic requests arrives just after the server has suspended, it must wait until the beginning of the next polling period. \\
......@@ -258,7 +258,7 @@ $$\frac{C_s}{T_s}+\sum_{i=1}^n\frac{C_i}{T_i}\leq \left(n+1\right)\left(2^{1/(n+
Assumption: An aperiodic task is finished before a new one arrives. Computation time $C_a$, deadline $D_a$:
$$(1+\Big\lceil\frac{C_a}{C_s}\Big\rceil)T_s\leq D_a$$
\ownsubsection{EDF Total Bandwidth Server (6-71)}
\subsection{EDF Total Bandwidth Server (6-71)}
\textbf{Schedulability test}: Given a set of $n$ periodic tasks with processor utilization $U_p$ and a total bandwidth server with utilization $U_s$, the whole set is schedulable by EDF if and only if
$$U_p+U_s\leq 1$$
\begin{align}
......@@ -275,7 +275,7 @@ execution time of the request and $U_s $ the server utilization factor
sufficient).\newline
The worst case finishing time of an aperiodic task is the calculated deadline.
\ownsubsection{Comparison RM,TT,EDF}
\subsection{Comparison RM,TT,EDF}
\textbf{Time Triggered Cyclic Executive:}
\begin{itemize}
\item No RTOs necessary
......
\ownsection{Software Development (2-1)}
\section{Software Development (2-1)}
Software development nowadays is usually done with the support of an \textcolor{red}{IDE (Integrated Debugger and Editor/Integrated Development Environment)}: edit and build the code aswell as debug and validate it. \\
remeber:\\
\includegraphics[width=\linewidth]{images/compiler.JPG}
......
% !TeX root = ../main.tex
\ownsection{Hardware Software Interface(3-1)}
\ownsubsection{Memory}
\section{Hardware Software Interface(3-1)}
\subsection{Memory}
\begin{minipage}[b]{.5\linewidth} % [b] => Ausrichtung an \caption
......@@ -67,7 +67,7 @@ Due to their structure, random acces in the memory is really fast and they are t
\end{minipage}
\ownsubsection{Memory of MSP432}
\subsection{Memory of MSP432}
The MSP432 contains the follwoing memories: \\
\textbf{ROM} (32kB): Used to store BIOS and other stuff that does not change\\ \textbf{Flash Memory} (256kB): Used to permanently store data \\
\textbf{S-RAM} (64kB): Volatile memory. \\
......@@ -96,7 +96,7 @@ volatile uint8_t* ptr = (uint8_t*) 0x40004c02;
\end{lstlisting}
\newpage
\ownsubsection{Device Communication}
\subsection{Device Communication}
\textbf{UART} (3-30) \\
A UART communication consists of a Receiver and a Transmitter. \\
To comunicate between Receiver and Transmitter a single wire is used \\
......@@ -118,7 +118,7 @@ Used in short distance communication. Contains 4 lines:
Master and Slave simply consist of two shift register, with every clock cycle from the SCLK the data gets shifted from Master to slave and vice versa.\\
\includegraphics[width=\linewidth]{images/spi.JPG}
\ownsubsection{Interrupts}
\subsection{Interrupts}
Different devices can send interrupt request to the processor. In order to ignore or react to them, a controller (NVIC - Nested Vector Interrupt Controller) is used. The NVIC can mask or dis-/enable interrupts.
\\
It also decides which interrupt has priority and what interrupt service routine should be executed. In order to do that, it contains a vector table with an entry for each interrupt type and pointer to the code that should be executed \\
......@@ -159,7 +159,7 @@ $2c \leq D < h + c \rightarrow \texttt{Polling with:} u = \frac{c}{D-c}$ \\
$ h + c \leq D < 2c \rightarrow \texttt{Interrupt with:} u = \frac{h + c}{T}$\\
$ c + max(c,h) \leq D \rightarrow \texttt{Both possible with:} u_p = \frac{c}{D-c}, u_i = \frac{h+c}{T}$
\ownsubsection{Clocks and Timers (3-60)}
\subsection{Clocks and Timers (3-60)}
\textbf{Watchdog Timer (3-65)} \\
A Watchdog timer is a timer that runs in the background and as soon as it rolls over, it resets the state of the CPU. \\
These timer are often used for safety purposes since it makes sure that even if a program crashed or entered a infinity loop, the processor will recover. \\
......
% !TeX root = ../main.tex
\ownsection{Software Introduction (4)}
\section{Software Introduction (4)}
Development on separate platform with simulator. Difficult if physical side has to be simulated too.
\ownsubsection{Real-Time Systems (4-1)}
\subsection{Real-Time Systems (4-1)}
ES are expected to finish tasks reliably within time bounds.\\ Essential: Upper bound on the execution times of all tasks are statically known, commonly called \textcolor{red}{Worst-Case Execution Time (WCET)} (analogously, \textcolor{red}{Best-Case Execution Time BCET}). \newline
\textbf{Determine WCET}:
......@@ -16,7 +16,7 @@ ES are expected to finish tasks reliably within time bounds.\\ Essential: Upper
% !TeX root = ../main.tex
\ownsection{Time Triggered Systems (4-21)}
\section{Time Triggered Systems (4-21)}
\begin{compactitem}
\item periodic
\item cyclic executive
......@@ -38,9 +38,9 @@ ES are expected to finish tasks reliably within time bounds.\\ Essential: Upper
\includegraphics[width=0.5\linewidth]{images/timetriggered.JPG}
\ownsubsection{Simple Periodic TT Scheduler (4-22)}
\subsection{Simple Periodic TT Scheduler (4-22)}
\begin{compactitem}
\item Timer interrupts with period $P$
\item Timer interrupts with period $P$
\item all tasks have Period P
\item Later processes $T_2, T_3$ have unpredictable starting times
\item Interprocess-communication \& resource sharing unproblematic
......@@ -64,7 +64,7 @@ ES are expected to finish tasks reliably within time bounds.\\ Essential: Upper
\end{python}~\newline
\text{Bem: Tasks der Reihe nach abarbeiten dann schlafen}
\ownsubsection{TT Cyclic Executive Scheduler (4-24)}
\subsection{TT Cyclic Executive Scheduler (4-24)}
\begin{compactitem}
\item Tasks may have different periods
\item Period $P$ is partitioned into frames of length $f$
......@@ -124,16 +124,16 @@ Period $P$ is least common multiple of all periods $T_i$.\\
$\phi_i=min_{1\leq j \leq \frac{P}{T_i}}\{(f_{ij}-1)f-(j-1)T_i\}$ $\forall \tau_i$
\item deadlines respected?\\
$(j-1)T_i+\phi_i+D_i\geq f_{ij}f$ $\forall \tau_i,1\leq j \leq \frac{P}{T_i} $
\end{itemize}
\ownsubsection{Implementation: Generic TT Scheduler (4-33)}\newline
\subsection{Implementation: Generic TT Scheduler (4-33)}
in an entirely time-triggered system we can establish a-priori control structure of tasks off-line. Encode temporal control structure in \textcolor{red}{Task-Descriptor List} (TDL) that contains cyclic schedule for all activities of the node. All constraints must be considered. \newline
A dispatcher is activated by synchronized clock and performs the actions as planned in the TDL. \newline
\textbf{Simplified Time-Triggered Scheduler (4-34)}
\begin{python}
main:
for (k=0,1,...,n-1) {determine static schedule (t(k),T(k));
determine period of schedule =: P;} (done offline)
......@@ -155,11 +155,11 @@ Bem: F\"ur jeden Task eine Weckzeit berechnen. Dann zu entsprechender Zeit aufwa
% !TeX root = ../main.tex
\ownsection{Event Triggered Systems (4-36)}
\section{Event Triggered Systems (4-36)}
\textbf{Dynamic and adaptive}: possible problems with timing, shared resources, buffer over-/underflow. Guarantees can be given off-line (if bounds on environment are known) or during run-time.
\newline
\ownsubsection{Non-Preemptive ET Scheduling (2-42)}
\subsection{Non-Preemptive ET Scheduling (2-42)}
\begin{compactitem}
\item To each event is attributed a corresponding process to be executed
\item Events are emitted by external interrupts or other tasks
......@@ -196,7 +196,7 @@ Properties:
return;
\end{python}~\newline
\ownsubsection{Preemptive ET Scheduling (4-40)}
\subsection{Preemptive ET Scheduling (4-40)}
\begin{compactitem}
\item Like Non-preemptive, but processes can be preempted (unterbrochen werden) by others.
\item Stack-based context mechanism of process calls:
......@@ -229,7 +229,7 @@ Properties:
remove selected event from queue;
}
return;
Interrupt:
InsertEvent(..);
return
......@@ -238,7 +238,7 @@ Properties:
% !TeX root = ../main.tex
\ownsection{Multitasking (4-43)}
\section{Multitasking (4-43)}
\begin{compactitem}
\item A \textcolor{red}{Thread} is a unique execution of a program.It consists of register values, memory stack (local variables), program counter.\\ Many threads can run at same time. They share processor \& peripherals.
\item A \textcolor{red}{process} is a unique execution of a program and has its own state. In case of a thread, this state consists mainly of register values and memory stack.
......@@ -246,7 +246,7 @@ Properties:
\item \textcolor{red}{Context Switch}: Current CPU context goes out, new CPU context goes in
\end{compactitem} ~\newline
\ownsubsection{Co-operative Multitasking (4-45)}
\subsection{Co-operative Multitasking (4-45)}
Each process allows a context switch at \pythoninline{cswitch()} call, scheduler chooses which process runs next. \newline
Pros:
\begin{compactitem}
......@@ -285,7 +285,7 @@ Cons:
\end{compactitem}
$\to$ There is a \textbf{sleep queue}, a \textbf{ready queue} and a \textbf{wait queue}
\ownsubsection{Preemptive Multitasking (4-47)} \oldline
\subsection{Preemptive Multitasking (4-47)} \oldline
\begin{compactitem}
\item Most powerful form of multitasking
\item OS controls when context switches
......
% !TeX root = ../main.tex
\ownsection{Resource Sharing (7)}
\section{Resource Sharing (7)}
% Common resources are e.g. data structures, variables, main memory area, file, set of registers, I/O unit, ...\\
% Many shared resource require \textcolor{red}{mutual exclusion} (\textcolor{red}{exclusive resources}) meaning only one thread can operate on the resource at same time.\\
......@@ -36,11 +36,11 @@ A piece of code executed under mutual exclusion constraints.
\includegraphics[width=0.8\columnwidth]{res1}
\end{center}
\ownsubsection{Semaphores $S_i$ (7-6)}
\subsection{Semaphores $S_i$ (7-6)}
One for each exclusive resource $R_i$. Each critical section operating on a resource must begin with a \pythoninline{wait}($S_i$) primitive and end with a \pythoninline{signal}($S_i$) primitive. \newline
All tasks blocked on the same resource are kept in a queue associated with the semaphore.
\ownsubsection{Priority Inversion (7-10)}
\subsection{Priority Inversion (7-10)}
A low priority task holds a Semaphore and prevents a high priority task from running. Meanwhile, a medium priority task can preempt the low priority task and run $\implies$ high priority task stays blocked. \newline
\includegraphics[width=0.8\linewidth]{priority_inversion}
......@@ -87,7 +87,7 @@ A low priority task holds a Semaphore and prevents a high priority task from run
\item and other methods based on \textcolor{red}{resource access protocols} (PCP,SRP, see 7-13)
\end{itemize}
\ownsection{Timing Anomaly (7-26)}
\section{Timing Anomaly (7-26)}
Many software and system architectures are fragile since \textcolor{red}{monotonicity} does not hold in general (= making a part of the system operate faster does not necessarily lead to a faster system execution).\newline
\textbf{Examples:}
\begin{itemize}
......@@ -100,7 +100,7 @@ Many software and system architectures are fragile since \textcolor{red}{monoton
\end{itemize}
\end{itemize}
\ownsection{Communication and Synchronization (7-32)}
\section{Communication and Synchronization (7-32)}
The use of shared memory for communication between tasks may cause:
\begin{itemize}
......@@ -114,14 +114,14 @@ Solutions:
\item data exchange must be protected by critical sections
\end{itemize}
\ownsubsection{Synchronous Communication (7-34)}
\subsection{Synchronous Communication (7-34)}
\begin{itemize}
\item Tasks must be synchronized (rendez-vous) to exchange data
\item both must be ready at the same time $\rightarrow$ waiting time
\item Communication needs synchronization, therefore the timing of the communication partners is linked
\end{itemize}
\ownsubsection{Asynchronous Communication (7-35)}
\subsection{Asynchronous Communication (7-35)}
\begin{itemize}
\item The sender deposits a message into a channel from where the receiver retrieves the message.
\item Tasks don't have to wait for each other
......@@ -132,7 +132,7 @@ Solutions:
Beispiel auf Folie (7-36)\\
\includegraphics[width=0.9\columnwidth]{images/mailbox.JPG}
\ownsubsection{Cyclical Asynchronous Buffers (CAB)(7-40)}
\subsection{Cyclical Asynchronous Buffers (CAB)(7-40)}
\begin{itemize}
\item non-blocking communication between tasks (the sender and receiver are never blocked)
\item a message is not consumed (extracted) by a receiver but maintained until overwritten by a new message.
......
% !TeX root = ../main.tex
\ownsection{Architecture Models (10)}
\ownsubsection{Task Graph / Dependence Graph (DG) (10-5)}
\section{Architecture Models (10)}
\subsection{Task Graph / Dependence Graph (DG) (10-5)}
A DG is a directed graph $G=(V,E)$ in which $E \subset V \times V$ is a partial order.
$\to$ (Immediate) predecessor / successor
Nodes correspond to tasks or operations, edges correspond to relations (``executed after"). Represents parallelism, but no branches in control flow.
% \ownsubsection{Control-Data Flow Graph (CDFG) (8-26)}
% \subsection{Control-Data Flow Graph (CDFG) (8-26)}
% Description of control structures (e.g. branches) and data dependencies.
% \textbf{Control Flow Graph:}
......@@ -23,7 +23,7 @@ Nodes correspond to tasks or operations, edges correspond to relations (``execut
% \includegraphics[width=0.7\linewidth]{Control-data_flow_graph}
\ownsubsection{Marked Graphs (MG) (10-9)}
\subsection{Marked Graphs (MG) (10-9)}
A marked graph $G=(V,A,del)$ consists of nodes (=actors) $v\in V$, edges $a=(v_i,v_j) \in A$ and numbers of initial tokes on edges, $del: A \rightarrow \mathbb{N}_0$
\begin{center}
......@@ -46,7 +46,7 @@ A marked graph $G=(V,A,del)$ consists of nodes (=actors) $v\in V$, edges $a=(v_i
\item Software implementation with \textcolor{red}{dynamic scheduling}: Scheduling is done by RTOS. Actors correspond to threads. After firing, the thread is put into wait state. It is put into ready state when all necessary input data are present.
\end{compactitem} ~\newline
\ownsubsection{Sequence Graph (SG) (10-16)}
\subsection{Sequence Graph (SG) (10-16)}
A sequence graph is a \textbf{hierarchy of directed graphs}.\\
A sequence graph is a dependence graph with single start and end node.
\begin{compactitem}
......@@ -64,10 +64,10 @@ A sequence graph is a dependence graph with single start and end node.
\vspace{0.1cm}
\includegraphics[width=0.9\columnwidth]{modx}
\end{center}
\ownsubsection{Extended Sequence Graph}
\subsection{Extended Sequence Graph}
See Section Iterative Algorithms (10-56)
\ownsubsection{Resource Graph (10-16)}
\subsection{Resource Graph (10-16)}
(bipartite) $G_R = (V_R,E_R)$ where $V_R=V_S \cup V_T$ and $V_T$ denotes the resource types of the architecture ($V_S$ are the operations). An edge $(v_s,v_t) \in E_R$ represents availability of resource type $v_t$ for operation $v_s$.\\
Example: four instances of a multiplier with cost=8\\
\includegraphics[width=\linewidth]{images/resource.JPG}
......@@ -81,5 +81,5 @@ Example: four instances of a multiplier with cost=8\\
\item \textcolor{red}{latency} $L$ of a schedule is the time between start node $v_0$ and end node $v_n$: $$L=\tau(v_n)-\tau(v_0)$$
\end{itemize}
\ownsubsection{Weighted Constraint Graph (10-40)}
\subsection{Weighted Constraint Graph (10-40)}
See section scheduling without resource constraints
\ No newline at end of file
% !TeX root = ../main.tex
\ownsection{Architecture Synthesis (10)}
\section{Architecture Synthesis (10)}
Determines a hardware architecture that efficiently executes a given algorithm. Tasks are
\begin{compactitem}
......@@ -9,7 +9,7 @@ Determines a hardware architecture that efficiently executes a given algorithm.
\item \textcolor{red}{Binding}: Determine relation between individual operations and HW resources
\end{compactitem} \vspace{0.2cm}
\ownsubsection{Models (10-3)} \\
\subsection{Models (10-3)}
see Architecture Models
\begin{compactitem}
\item \textcolor{red}{Sequence Graph} $G_S = (V_S,E_S)$ where $V_S$ denotes the operations and $E_S$ the dependence relations of the algorithm
......@@ -23,7 +23,7 @@ see Architecture Models
\item \textcolor{red}{latency} $L$ of a schedule is the time between start node $v_0$ and end node $v_n$: $$L=\tau(v_n)-\tau(v_0)$$
\end{compactitem}
\ownsubsection{Multiobjective Optimization (10-25)}
\subsection{Multiobjective Optimization (10-25)}
Optimize latency, hardware cost, power and energy
~
\begin{definition}{Pareto-Dominance}
......@@ -38,13 +38,13 @@ Optimize latency, hardware cost, power and energy
The set of all Pareto-optimal solutions is the \textcolor{red}{Pareto-optimal front}.
\end{definition}
\ownsubsection{Classification of Scheduling Algorithms (10-32)} \oldline
\subsection{Classification of Scheduling Algorithms (10-32)} \oldline
\begin{compactitem}
\item \textcolor{red}{Unlimited} vs. \textcolor{red}{limited} resources
\item \textcolor{red}{Iterative} (initial solution to architecture synthesis stepwise improved) vs. \textcolor{red}{constructive} (synthesis problem solved in one step) vs. \textcolor{red}{Transformative} (initial problem converted into classical optimization problem)
\end{compactitem}~ \vspace{0.2cm}
\ownsubsection{Scheduling without resource constraints (10-31)}
\subsection{Scheduling without resource constraints (10-31)}
\begin{compactitem}
\item Do as preparatory step for general synthesis
\item or to determine bounds on feasible schedules
......@@ -103,7 +103,7 @@ Iteratively set $$\tau(v_j) \defeq \max\{\tau(v_j),\tau(v_i)+d(v_i,v_j) : (v_i,v
$$\forall v_i \in V_C\setminus\{v_0\}: \quad \tau(v_i) = -\infty$$
\newline
\ownsubsection{Scheduling with Resource Constraints (10-43)}
\subsection{Scheduling with Resource Constraints (10-43)}
% The minimal latency with resource constraints is
% \begin{equation*}
% \begin{alignedat}{1}
......@@ -114,6 +114,8 @@ $$\forall v_i \in V_C\setminus\{v_0\}: \quad \tau(v_i) = -\infty$$
% where $L_{max}$ is an upper bound on the latency.
\textcolor{red}{\textbf{List Scheduling} (10-45)} (widely used heuristic)
\subsubsection{List scheduling}
\begin{compactitem}
\item Each operation has a static priority
......@@ -205,7 +207,7 @@ Example:
\ownsubsection{Iterative Algorithms (10-56)}
\subsection{Iterative Algorithms (10-56)}
Iterative Algorithms consist of a set of indexed equations that are evaluated for all values of an index variable $l$ (e.g. signal flow graphs, marked graphs). Multiple representations are possible:
\begin{compactitem}
\item Single \textcolor{red}{indexed equation} with constant index dependencies
......@@ -279,7 +281,7 @@ proof on slide 10-65
\end{equation*}
\end{compactenum}~\newline
\ownsubsection{Dynamic Voltage Scaling (DVS, 10-67)}
\subsection{Dynamic Voltage Scaling (DVS, 10-67)}
Optimize energy in case of DVS using ILP:
\begin{compactitem}
\item $|K|$ different voltage levels
......
% !TeX root = ../main.tex
\ownsection{Bluetooth (8-24)}
\section{Bluetooth (8-24)}
Small size, low cost and energy. Secure and robust transmission. \newline
\ownsubsection{Technical Data (8-24)} \oldline
\subsection{Technical Data (8-24)} \oldline
\begin{compactitem}
\item Frequency Range: $(2402+k)$ MHz, $k=0,1,...,78$ (79 channels)
\item 10-100m transmission range, 1Mbit/s BW for each connection
......@@ -11,7 +11,7 @@ Small size, low cost and energy. Secure and robust transmission. \newline
\item Simultaneous transmission of multimedia streams (synchronous) and data (asynchronous)
\end{compactitem}
\ownsubsection{Network topologies (8-28)}
\subsection{Network topologies (8-28)}
\begin{definition}{piconet}
Contains 1 master and up to 7 slaves. All nodes in a piconet use the same channel sequence that is determined by the device address of the master's BD\_ADDR and the phase which is determined by the system clock of the master. \newline
Connections are either one-to-one or between the master and all slaves (broadcast).
......@@ -21,10 +21,10 @@ Small size, low cost and energy. Secure and robust transmission. \newline
Several piconets with overlapping nodes. A node can simultaneously have the roles of slaves in several piconets and the role of a master in one piconet. The channel sequences of the different piconets are not synchronized.
\end{definition}
\ownsubsection{Addressing and Packet Format (8-32)} \oldline
\subsection{Addressing and Packet Format (8-32)} \oldline
\includegraphics[width=0.8\linewidth]{Bluetooth_packet_formatpng}\\
\ownsubsection{Connection Types (8-34)}
\subsection{Connection Types (8-34)}
\textbf{Synchronous Connection-Oriented (SCO)}
\begin{compactitem}
\item Point to point full duplex connection between master \& slaves
......@@ -41,7 +41,7 @@ Small size, low cost and energy. Secure and robust transmission. \newline
\textbf{Multi-Slot Communication} \newline
Master can only start sending in even slot numbers, slaves only in odd ones. Packets from master or slave have length 1, 3 or 5 slots. During a multi-slot the \textbf{frequency doens't change}, afterwards it jumps to the original sequence (e.g. after a triple-slot with $f(k)$ it jumps to $f(k+3)$)
\ownsubsection{Modes and States (8-38)}