diff --git a/20210621/1329px-Motherboard_diagram.svg.png b/20210621/1329px-Motherboard_diagram.svg.png new file mode 100644 index 0000000000000000000000000000000000000000..9f737bc1dc975229e5101bbae3d1644c6588aadf Binary files /dev/null and b/20210621/1329px-Motherboard_diagram.svg.png differ diff --git a/20210621/I2C_data_transfer.pdf b/20210621/I2C_data_transfer.pdf new file mode 120000 index 0000000000000000000000000000000000000000..73e7ce07770a0599ae1a2aa11e97899767a1f9b0 --- /dev/null +++ b/20210621/I2C_data_transfer.pdf @@ -0,0 +1 @@ +../common/I2C_data_transfer.pdf \ No newline at end of file diff --git a/20210621/SPI_single_slave.pdf b/20210621/SPI_single_slave.pdf new file mode 120000 index 0000000000000000000000000000000000000000..b51d59e51fffb101086bfaa811370f66436127e7 --- /dev/null +++ b/20210621/SPI_single_slave.pdf @@ -0,0 +1 @@ +../common/SPI_single_slave.pdf \ No newline at end of file diff --git a/20210621/SPI_three_slaves.pdf b/20210621/SPI_three_slaves.pdf new file mode 120000 index 0000000000000000000000000000000000000000..b2e27257652bbefd9e1c9194ac1f518a43c8aa15 --- /dev/null +++ b/20210621/SPI_three_slaves.pdf @@ -0,0 +1 @@ +../common/SPI_three_slaves.pdf \ No newline at end of file diff --git a/20210621/SPI_three_slaves_daisy_chained.pdf b/20210621/SPI_three_slaves_daisy_chained.pdf new file mode 120000 index 0000000000000000000000000000000000000000..967389aeed788b2fed87b2a6b25a5ebd8256978f --- /dev/null +++ b/20210621/SPI_three_slaves_daisy_chained.pdf @@ -0,0 +1 @@ +../common/SPI_three_slaves_daisy_chained.pdf \ No newline at end of file diff --git a/20210621/kompassmodul-an-roboter.jpg b/20210621/kompassmodul-an-roboter.jpg new file mode 120000 index 0000000000000000000000000000000000000000..dab8b38c1a92bf8072d42dc3abcc07be54a58c7b --- /dev/null +++ b/20210621/kompassmodul-an-roboter.jpg @@ -0,0 +1 @@ +../common/kompassmodul-an-roboter.jpg \ No newline at end of file diff --git a/20210621/kompassmodul.jpg b/20210621/kompassmodul.jpg new file mode 120000 index 0000000000000000000000000000000000000000..be108a5341df13a693959dbe69b7b9541b36fc4c --- /dev/null +++ b/20210621/kompassmodul.jpg @@ -0,0 +1 @@ +../common/kompassmodul.jpg \ No newline at end of file diff --git a/20210621/logo-hochschule-bochum-cvh-text-v2.pdf b/20210621/logo-hochschule-bochum-cvh-text-v2.pdf new file mode 120000 index 0000000000000000000000000000000000000000..4aa99b8f81061aca6dcaf43eed2d9efef40555f8 --- /dev/null +++ b/20210621/logo-hochschule-bochum-cvh-text-v2.pdf @@ -0,0 +1 @@ +../common/logo-hochschule-bochum-cvh-text-v2.pdf \ No newline at end of file diff --git a/20210621/logo-hochschule-bochum.pdf b/20210621/logo-hochschule-bochum.pdf new file mode 120000 index 0000000000000000000000000000000000000000..b6b9491e370e499c9276918182cdb82cb311bcd1 --- /dev/null +++ b/20210621/logo-hochschule-bochum.pdf @@ -0,0 +1 @@ +../common/logo-hochschule-bochum.pdf \ No newline at end of file diff --git a/20210621/motherboard-anschluesse.jpg b/20210621/motherboard-anschluesse.jpg new file mode 120000 index 0000000000000000000000000000000000000000..07335d7dff65c71a683588d2ed108485c4653fb7 --- /dev/null +++ b/20210621/motherboard-anschluesse.jpg @@ -0,0 +1 @@ +../common/motherboard-anschluesse.jpg \ No newline at end of file diff --git a/20210621/motherboard-diagram.png b/20210621/motherboard-diagram.png new file mode 120000 index 0000000000000000000000000000000000000000..302941b613b1de15268438ea74cd05274707c63d --- /dev/null +++ b/20210621/motherboard-diagram.png @@ -0,0 +1 @@ +1329px-Motherboard_diagram.svg.png \ No newline at end of file diff --git a/20210621/pgslides.sty b/20210621/pgslides.sty new file mode 120000 index 0000000000000000000000000000000000000000..5be1416f4216f076aa268901f52a15d775e43f64 --- /dev/null +++ b/20210621/pgslides.sty @@ -0,0 +1 @@ +../common/pgslides.sty \ No newline at end of file diff --git a/20210621/photo-8230.jpg b/20210621/photo-8230.jpg new file mode 100644 index 0000000000000000000000000000000000000000..982ebbef70cd1606e932f9a257c26b0db1c7ff94 Binary files /dev/null and b/20210621/photo-8230.jpg differ diff --git a/20210621/photo-8231.jpg b/20210621/photo-8231.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ffc7137965b4683d3ad5ef57d0eae8eddfb774e3 Binary files /dev/null and b/20210621/photo-8231.jpg differ diff --git a/20210621/photo-8232.jpg b/20210621/photo-8232.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f850e058affe811fd1fda1f51e5d64bb51ef8897 Binary files /dev/null and b/20210621/photo-8232.jpg differ diff --git a/20210621/rs-232.pdf b/20210621/rs-232.pdf new file mode 120000 index 0000000000000000000000000000000000000000..67016059af4a0ca0db871b9dd784bcacc0eecf7a --- /dev/null +++ b/20210621/rs-232.pdf @@ -0,0 +1 @@ +../common/rs-232.pdf \ No newline at end of file diff --git a/20210621/rtech-20210621.pdf b/20210621/rtech-20210621.pdf new file mode 100644 index 0000000000000000000000000000000000000000..45ad3b29953b2d7155367754334dd14c500fa9fc Binary files /dev/null and b/20210621/rtech-20210621.pdf differ diff --git a/20210621/rtech-20210621.tex b/20210621/rtech-20210621.tex new file mode 100644 index 0000000000000000000000000000000000000000..b427f77e0440742b14edfc7561211cea1805725c --- /dev/null +++ b/20210621/rtech-20210621.tex @@ -0,0 +1,871 @@ +% rtech-20210621.pdf - Lecture Slides on Computer Technology +% Copyright (C) 2012, 2013, 2014, 2021 Peter Gerwinski +% +% This document is free software: you can redistribute it and/or +% modify it either under the terms of the Creative Commons +% Attribution-ShareAlike 3.0 License, or under the terms of the +% GNU General Public License as published by the Free Software +% Foundation, either version 3 of the License, or (at your option) +% any later version. +% +% This document is distributed in the hope that it will be useful, +% but WITHOUT ANY WARRANTY; without even the implied warranty of +% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +% GNU General Public License for more details. +% +% You should have received a copy of the GNU General Public License +% along with this document. If not, see <http://www.gnu.org/licenses/>. +% +% You should have received a copy of the Creative Commons +% Attribution-ShareAlike 3.0 Unported License along with this +% document. If not, see <http://creativecommons.org/licenses/>. + +% README: Bus-Systeme + +\documentclass[10pt,t]{beamer} + +\usepackage{pgslides} +\usepackage{tikz} + +\lstdefinestyle{asm}{basicstyle=\color{structure}, + language={}, + gobble=4} + +\title{Rechnertechnik} +\author{Prof.\ Dr.\ rer.\ nat.\ Peter Gerwinski} +\date{21.\ Juni 2021} + +\newcommand{\ItwoC}{I\raisebox{0.5ex}{\footnotesize 2}C} + +\begin{document} + +\maketitleframe + +\sectionnonumber{\inserttitle} + +\begin{frame} + + \showsectionnonumber + + \begin{itemize} + \item[\textbf{1}] \textbf{Einführung} + \item[\textbf{2}] \textbf{Vom Schaltkreis zum Computer} + \item[\textbf{3}] \textbf{Architekturmerkmale von Prozessoren} + \item[\textbf{4}] \textbf{Der CPU-Stack} + \item[\textbf{5}] \textbf{Anwender-Software} + \item[\textbf{6}] \textbf{Pipelining} + \begin{itemize} + \item[6.1] Konzept + \item[6.2] Arithmetik-Pipelines + \color{medgreen} + \item[6.3] Instruktions-Pipelines + \end{itemize} + \item[\textbf{7}] \textbf{Bus-Systeme} + \begin{itemize} + \color{red} + \item[7.1] Was sind Bus-Systeme? + \item[7.2] Chipsatz + \item[7.3] RS-232 + \item[7.4] \ItwoC\ (TWI) + \item[7.5] SPI + \end{itemize} + \item[\textbf{\dots\hspace{-0.75em}}] +% \item[\textbf{8}] \textbf{Ausblick} + \end{itemize} + +\end{frame} + +\setcounter{section}{5} +\section{Pipelining} +\setcounter{subsection}{1} +\subsection{Arithmetik-Pipelines} + +\newcommand{\insns}[1]{% + \begin{picture}(0,0) + \put(0,0){\line(1,0){2}} + \put(2,0){\line(0,-1){#1}} + \put(2,-#1){\vector(-1,0){2}} + \end{picture}} + +\newcommand{\insnsup}[1]{% + \begin{picture}(0,0) + \put(0,0){\line(1,0){2}} + \put(2,0){\line(0,1){#1}} + \put(2,#1){\vector(-1,0){2}} + \end{picture}} + +\begin{frame} + + \showsubsection + "`Register-FIFO"' + + \pause + \smallskip + + Pseudo-Code: Berechnung von + \begin{displaymath} + S = \left(\begin{array}{c}a_1\\a_2\\a_3\end{array}\right) + \cdot\left(\begin{array}{c}b_1\\b_2\\b_3\end{array}\right) + = a_1 \cdot b_1 + + a_2 \cdot b_2 + + a_3 \cdot b_3 + \end{displaymath} + mit einer Pipeline der Länge 3 + + \pause + \medskip + + \begingroup + \setlength{\unitlength}{\baselineskip}% + \begin{picture}(0,0)(-5.0,-0.25) + \color{red} + \put(0,0.0){\only<4->{\insns{3}}} + \put(0.5,-1){\only<5->{\insns{2.9}}} + \put(1.0,-2){\only<6->{\insns{3}}} + \put(0.5,-4.1){\only<8->{\insns{2.8}}} + \put(0.5,-7.1){\only<11->{\insns{2.9}}} + \put(-1.5,-9.25){\only<15->{\shortstack{Daten-\\konflikt}}} + \end{picture}% + \color{structure} + push $a_1 \cdot b_1$\\ + \pause + \pause + push $a_2 \cdot b_2$\\ + \pause + push $a_3 \cdot b_3$\\ + \pause + $s_1$ = pop\\ + \pause + push $s_1 + \mbox{pop}$\\ + \pause + $s_3$ = pop\\ + \pause + nop\\ + \pause + push $s_3 + \mbox{pop}$\\ + \pause + nop\\ + \pause + nop\\ + \pause + $S$ = pop\\ + \endgroup + \pause + \pause + \begin{picture}(0,0) + \color{red} + \put(5,3.8){\makebox(0,0)[l]{$\left.\rule{0pt}{1.2cm}\right\}$ effizient: Pipeline gefüllt}} + \put(5,1.4){\makebox(0,0)[l]{$\left.\rule{0pt}{1.2cm}\right\}$ ineffizient: "`Blasen"'}} + \end{picture} + \pause + \vspace*{-1.25cm} + \begin{flushright} + \dots\ aber immer noch effizienter als\\ + 3 Schritte für jede Operation + \end{flushright} + +\end{frame} + +\subsectionnonumber{Reales Beispiel: \break Vektor-Addition auf i860} + +\begin{frame}[fragile] + + \begin{minipage}[t]{5cm} + \raggedright + \showsubsectionnonumber + \begin{lstlisting} + .align 8 + .globl _vadd + nop + _vadd: + shr 1,r19,r19 + bte r19,r0,exitadd + addu 0x000F,r16,r16 + andnot 0x000F,r16,r16 + adds -16,r16,r16 + addu 0x000F,r17,r17 + andnot 0x000F,r17,r17 + adds -16,r17,r17 + addu 0x000F,r18,r18 + andnot 0x000F,r18,r18 + adds -16,r18,r18 + mov -1,r20 + \end{lstlisting} + \end{minipage} + \begin{minipage}[t]{5cm} + \begin{lstlisting} + fld.q 16(r16)++,f16 + fld.q 16(r17)++,f20 + pfadd.dd f16,f20,f0 + bla r20,r19,loopadd + pfadd.dd f18,f22,f0 + loopadd: + d.pfadd.dd f0,f0,f0 + fld.q 16(r16)++,f16 + d.pfadd.dd f0,f0,f24 + fld.q 16(r17)++,f20 + d.pfadd.dd f16,f20,f26 + bla r20,r19,loopadd + d.pfadd.dd f18,f22,f0 + fst.q f24,16(r18)++ + nop + nop + nop + exitadd: + bri r1 + nop + \end{lstlisting} + \end{minipage} + +\end{frame} + +\lstdefinestyle{shybubble}{basicstyle=\color{lightgray}, + moredelim=**[is][\color{structure}]{¡}{¿}, + moredelim=**[is][\only<7->{\color{red}}]{°}{¿}} + +\begin{frame}[fragile] + + \begin{minipage}[t]{5cm} + \raggedright + \showsubsectionnonumber + \begin{lstlisting}[style=shybubble] + .align 8 + .globl _vadd + nop + _vadd: + shr 1,r19,r19 + bte r19,r0,exitadd + addu 0x000F,r16,r16 + andnot 0x000F,r16,r16 + adds -16,r16,r16 + addu 0x000F,r17,r17 + andnot 0x000F,r17,r17 + adds -16,r17,r17 + addu 0x000F,r18,r18 + andnot 0x000F,r18,r18 + adds -16,r18,r18 + mov -1,r20 + \end{lstlisting} + \end{minipage} + \begin{minipage}[t]{5cm} + \begin{lstlisting}[style=shybubble] + ¡fld.q 16(r16)++,f16 + fld.q 16(r17)++,f20 + pfadd.dd f16,f20,f0 + bla r20,r19,loopadd + pfadd.dd f18,f22,f0 + loopadd: + d.pfadd.dd °f0,f0,f0¿ + fld.q 16(r16)++,f16 + d.pfadd.dd °f0,f0¿,f24 + fld.q 16(r17)++,f20 + d.pfadd.dd f16,f20,f26 + bla r20,r19,loopadd + d.pfadd.dd f18,f22,°f0¿ + fst.q f24,16(r18)++¿ + nop + nop + nop + exitadd: + bri r1 + nop + \end{lstlisting} + \end{minipage} + + \pause + \begingroup + \setlength{\unitlength}{\baselineskip}% + \begin{picture}(0,0)(-21.0,-17.6) + \color{red} + \put(0,0){\only<2->{\insns{5.9}}} + \put(1.0,-2){\only<3->{\insns{6.0}}} + \put(-7,-9){\only<4->{\line(-1,0){1}}} + \put(-8,-9){\only<4->{\line(0,-1){2}}} + \put(-8,-11){\only<4->{\line(-1,0){1}}} + \put(-9,-11){\only<4->{\line(0,1){8}}} + \put(-9,-3){\only<4->{\vector(1,0){0.7}}} + \put(0.8,-7.8){\only<5->{\insnsup{1.7}}} + \put(0.8,-10){\only<6->{\insnsup{1.8}}} + \put(-0.5,-12.5){\only<7->{\mbox{6mal f0 = 2 Blasen}}} + \end{picture}% + \endgroup + + \vspace{-2cm} + \begin{flushright} + \only<8->{Immerhin: 2 Additionen in 4 Taktzyklen} + + \medskip + + \only<9->{Dies ist ein \emph{einfaches} Beispiel.} + \end{flushright} + +\end{frame} + +\subsection{Instruktions-Pipelines} + +\begin{frame}[fragile] + + \showsubsection + + Ein Prozessor benötigt Zeit, um einen Befehl zu verstehen. + + \textarrow\ Während Befehlsausführung nächste Befehle vorauslesen + + \medskip + + \begin{lstlisting}[style=shy] + ².L3: + movw r30,r20¿ + ³add r30,r18¿ + °adc r31,r19¿ + ¤mov r24,r18 + subi r24,lo8(-(1)) + st Z,r24 + subi r18,lo8(-(1)) + sbci r19,hi8(-(1)) + cp r22,r18 + cpc r23,r19¿ + ¢brge .L3¿ + æret¿ + \end{lstlisting} + + \begin{picture}(0,0) + \color{red} + \put(0.5,1.00){\only<8->{\line(-1,0){0.4}}} + \put(0.1,1.00){\only<8->{\line(0,1){4.15}}} + \put(0.1,5.15){\only<8->{\vector(1,0){0.4}}} + \put(0.5,0.90){\only<9->{\line(-1,0){0.4}}} + \put(0.1,0.90){\only<9->{\line(0,-1){0.35}}} + \put(0.1,0.55){\only<9->{\vector(1,0){0.4}}} + \put(2.5,0.825){\only<10->{\begin{minipage}[t]{8cm} + bedingter Sprung: + Welche Befehle vorauslesen?\\[\smallskipamount] + \only<11->{Kontrollflußkonflikt} + \end{minipage}}} + \end{picture} + + \begin{flushright} + \vspace*{-0.5cm} + \only<12->{Lösungsansatz: Zweigvorhersage} + \vspace*{-1cm} + \end{flushright} + +\end{frame} + +\subsubsectionnonumber{Zweigvorhersage -- Branch Prediction} + +\begin{frame}[fragile] + + \showsubsection + \showsubsubsectionnonumber + + \begin{itemize} + \setlength{\unitlength}{\baselineskip}% + \pause + \item + Sprünge nach oben sind Schleifen: "`Ja"'\\ + Sprünge nach unten sind Auswahl-Verzweigungen: "`Nein"' + \pause + \item + Delayed Branches: Sprungbefehl verspätet ausführen\\ + \textarrow\ Optimierung manuell oder durch Compiler + \pause + \medskip + \begin{lstlisting} + loopadd: + d.pfadd.dd f0,f0,f0 + fld.q 16(r16)++,f16 + d.pfadd.dd f0,f0,f24 + fld.q 16(r17)++,f20 + d.pfadd.dd f16,f20,f26 + bla r20,r19,loopadd + d.pfadd.dd f18,f22,f0 + fst.q f24,16(r18)++ + \end{lstlisting} + \begin{picture}(0,0)(-9.6,-12.2) + \color{red} + \put(-7,-9){\line(-1,0){1}} + \put(-8,-9){\line(0,-1){2}} + \put(-8,-11){\line(-1,0){1}} + \put(-9,-11){\line(0,1){8}} + \put(-9,-3){\vector(1,0){0.7}} + \end{picture} + \pause + \item + Branch History Table: Sprünge merken + \pause + \item + \dots + \end{itemize} + +\end{frame} + +\subsectionnonumber{Zusammenfassung} + +\begin{frame} + + \showsection + \showsubsectionnonumber + + \begin{itemize} + \item + Teilaufgaben parallel ausführen + \item + Arithmetik-Pipelines führen Berechnungen parallel aus,\\ + Instruktions-Pipelines lesen Befehle voraus + \item + Ressourcen-, Daten- und Kontrollflußkonflikte führen zu "`Blasen"' + \item + Zweigvorhersage reduziert Kontrollflußkonflikte in Instruktions-Pipelines + \begin{itemize} + \item + nach oben / nach unten + \item + Delayed Branches: manuell optimieren + \item + Branch History Table: Sprünge merken + \end{itemize} + \end{itemize} + +\end{frame} + +\section{Bus-Systeme} +\subsection{Was sind Bus-Systeme?} + +\begin{frame} + \showsection + \showsubsection + + \begin{quote} + Ein Bus ist ein System zur Datenübertragung zwischen mehreren + Teilnehmern über einen gemeinsamen Übertragungsweg. + + \smallskip + \color{gray} + + Findet eine Datenübertragung zwischen zwei Teilnehmern statt, so + müssen die übrigen Teilnehmer schweigen, da sie sich sonst + gegenseitig stören würden. Umgangssprachlich werden mitunter -- + oft aus historischen Gründen – auch Datenübertragungssysteme als + "`Bus"' bezeichnet, die technisch eigentlich eine andere + Topologie besitzen. + + \medskip + + \strut\hfill\url{https://de.wikipedia.org/wiki/Bus_(Datenverarbeitung)} + \end{quote} + Beispiele: + \begin{itemize} + \item + Computer kommuniziert mit Peripherie + \item + Computer kommunizieren (direkt) miteinander + \item + Prozessor kommuniziert mit externem Speicher + \item + Teile eines Prozessors kommunizieren miteinander + \end{itemize} +\end{frame} + +\begin{frame} + \showsection + \showsubsection + Standard-Computer: + \begin{itemize} + \item + Einsteckkarten: PCI (und Vorgänger) + \item + Festplatten: SATA (und Vorgänger) + \item + USB, FireWire, \dots + \item + Ethernet, CAN-Bus, \dots + \item + WLAN, BlueTooth, IR, \dots + \item + PS/2, RS-232, IEEE\,1284 + \end{itemize} + + \medskip + + \begin{visibleenv}<2-> + Minimal-Hardware: + \begin{itemize} + \item + RS-232 + \item + \ItwoC\ (TWI) + \item + SPI + \end{itemize} + \end{visibleenv} + + \begin{onlyenv}<1> + \begin{picture}(0,0) + \put(5,1.5){\includegraphics[height=3cm]{motherboard-anschluesse.jpg}} + \end{picture} + \end{onlyenv} + \begin{onlyenv}<2> + \begin{picture}(0,0)(-1.3,-4) + \put(1.8,-4.9){\includegraphics[height=3.5cm]{kompassmodul-an-roboter.jpg}} + \put(6.1,-3.3){\includegraphics[height=4.5cm]{kompassmodul.jpg}} + \put(6.1,1.2){\makebox(0,0)[tr]{\tikz{\draw(0,0)--(-1.9,-3.6);}}} + \put(6.1,-3.3){\makebox(0,0)[br]{\tikz{\draw(0,0)--(-1.8,0.2);}}} + \end{picture} + \end{onlyenv} +\end{frame} + +\begin{frame}[fragile] + + \showsection + \showsubsection + + \vspace*{-\bigskipamount} + \begin{tabbing} + \newterm{Punkt-zu-Punkt}\quad\=\kill + \newterm{seriell} \> jedes Bit einzeln übertragen\\ + \newterm{parallel} \> mehrere Bits gleichzeitig\\[\smallskipamount] + \newterm{synchron} \> Abgleich über Steuerleitung: \newterm{Takt}\\ + \newterm{asynchron} \> Abgleich über Zeitvereinbarungen\\[\smallskipamount] + \newterm{Punkt-zu-Punkt} \> genau zwei Teilnehmer\\ + \textbf{\newterm{busfähig}} \> \textbf{mehrere Teilnehmer, mit \newterm{Adressierung}} + \begin{picture}(0,0) + \put(0.1,0.1){\makebox(0,0)[bl]{\tikz{\draw[latex-](0,0)--(0.7,0)--(0.7,0.5);}}} + \put(1.0,0.7){\makebox(0,0)[b]{moderne Definition}} + \end{picture} + \end{tabbing} + + \begin{itemize} + \item + \ItwoC: seriell, synchron, mit Adressierung + \item + RS-232: seriell, asynchron, Punkt-zu-Punkt + \item + RS-485, USB, CAN: seriell, asynchron, mit Adressierung + \item + SPI: seriell, synchron, Punkt-zu-Punkt oder mit Adressierung + \item + PCI Express: seriell, asynchron, Punkt-zu-Punkt + \item + SATA: seriell, asynchron(?), Punkt-zu-Punkt + \item + PATA/ATAPI/IDE: parallel, asynchron(?), mit Adressierung + \end{itemize} + +\end{frame} + +\subsection{Chipsatz} + +\begin{frame} + \showsection + \showsubsection + + \begin{picture}(0,0) + \put(6.3,2.3){\makebox(0,0)[tl]{\includegraphics[width=6cm]{motherboard-diagram.png}}} + \end{picture}% + Kommunikation des Prozessors mit + \begin{itemize} + \item + Arbeitsspeicher + \item + \only<2->{Hochgeschwindigkeits-}Peripherie\only<3->{:\\ + \newterm{Northbridge}} + \pause + \item + "`normale"' Peripherie\only<3->{:\\ + \newterm{Southbridge}} + \pause + \item + Northbridge + Southbridge\\ + = \newterm{Chipsatz} + \pause + \medskip + \item + Problem: unterschiedliche\\ + Bus-Geschwindigkeiten + \pause + \medskip + \item + Northbridge: heute meistens\\ + in Prozessor integriert.\\[\smallskipamount] + Damit besteht der Chipsatz\\ + nur noch aus der Southbridge. + \vspace*{-10cm} + \end{itemize} + +\end{frame} + +\begin{frame}[fragile] + \showsection + \showsubsection + + \begin{picture}(0,0) + \put(6.3,2.3){\makebox(0,0)[tl]{\includegraphics[width=6cm]{motherboard-diagram.png}}} + \end{picture}% + \begin{itemize} + \item + Problem: Arbeitsspeicher\\ + nur über Bus erreichbar\\ + \textarrow\ langsam + \pause + \item + Lösung: Cache\\ + = Arbeitsspeicher\\ + innerhalb des Prozessors + \pause + \item + mehrstufiger Cache\\ + Beispiel: AMD Zen 2 (2019)\\ + L1: 32\,kB Daten\\ + \hspace{0.81em}+ 32\,kB Instruktionen pro Kern\\ + L2: 512\,kB pro Kern\\ + L3: 16--256\,MB pro 4 Kerne\\[\smallskipamount] + {\footnotesize Quelle: \href{https://en.wikipedia.org/wiki/Cache_hierarchy#Recent_implementation_models}% + {\nolinkurl{https://en.wikipedia.org/wiki/Cache_hierarchy\#}\\ + \nolinkurl{Recent_implementation_models}}\par} + \end{itemize} + +\end{frame} + +\subsection{RS-232} + +\begin{frame} + \showsection + \showsubsection + + seriell + \begin{itemize} + \item + \newterm{TX\/}: 1 Leitung für Daten + \item + \newterm{RX\/}: ggf.\ 1 Leitung für Daten in der anderen Richtung + \item + \newterm{GND\/}: gemeinsame \newterm{Masse} + \item + evtl.\ zusätzliche Steuerleitungen + \end{itemize} + + \medskip + + asynchron + \begin{itemize} + \item + \emph{keine\/} Taktleitung für Abgleich, wann Daten anliegen + \item + Stattdessen: Abgleich über Zeitvereinbarungen + \arrowitem + Jeder Teilnehmer braucht eine eigene Zeitbasis. + \end{itemize} + + \medskip + + Punkt-zu-Punkt + \begin{itemize} + \item + nur 2 Teilnehmer vorgesehen + \end{itemize} +\end{frame} + +\begin{frame} + \showsubsection + \vspace*{-0.35cm} + \begin{center} + \includegraphics[scale=0.9]{rs-232.pdf} + \end{center} +\end{frame} + +\subsection{\protect\ItwoC\ (TWI)} + +\begin{frame} + \showsection + \showsubsection + + \ItwoC\ = Inter-IC; TWI = Two-Wire-Interface + + \medskip + + seriell + \begin{itemize} + \item + \newterm{SDA\/}: 1 Leitung für Daten (in beiden Richtungen) + \item + \newterm{SCL\/}: Taktleitung (Clock) + \item + \newterm{GND\/}: gemeinsame Masse + \item + evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät + \end{itemize} + + \medskip + + synchron + \begin{itemize} + \item + Abgleich über\\Taktleitung + \begin{picture}(0,0) + \put(0.4,-0.4){\includegraphics[width=9.7cm]{I2C_data_transfer.pdf}} + \end{picture} + \end{itemize} + + \medskip + + busfähig + \begin{itemize} + \item + \newterm{Master\/} initiiert Kommuniation und steuert Taktleitung + \item + erstes gesendetes Byte: \newterm{Adresse\/} des Teilnehmers + \item + 2 Adressen pro Teilnehmer: Lesen/Schreiben + \end{itemize} + \vspace*{-1cm} +\end{frame} + +\subsection{SPI} + +\begin{frame} + \showsection + \showsubsection + + Serial Peripheral Interface + + \medskip + + seriell + \begin{itemize} + \item + \newterm{MOSI\/}: Master Out, Slave In + \item + \newterm{MISO\/}: Master In, Slave Out + \item + \newterm{SCLK\/}: Taktleitung (Clock) + \item + \newterm{$\overline{\text{SS}}$\/}: Slave Select (invertiert) + \item + \newterm{GND\/}: gemeinsame Masse + \item + evtl.\ \newterm{VCC\/}: Stromversorgung für Peripheriegerät + \end{itemize} + + \medskip + + synchron + \begin{itemize} + \item + Abgleich über Taktleitung + \end{itemize} + + \medskip + + busfähig + \begin{itemize} + \item + \newterm{Master\/} initiiert Kommuniation und steuert Taktleitung + \item + \newterm{Slave\/} wird über \newterm{Slave Select\/} ausgewählt + \begin{picture}(0,0)(0,-0.2) + \only<1>{\put(-2.175,2.875){\includegraphics[scale=0.7]{SPI_single_slave.pdf}}} + \only<2>{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves.pdf}}} + \only<2>{\put(2.55,3.1){\begin{minipage}[t]{2.5cm} + \newterm{Stern} + \end{minipage}}} + \only<3->{\put(-2.0,3.0){\includegraphics[scale=0.7]{SPI_three_slaves_daisy_chained.pdf}}} + \only<3->{\put(2.55,3.1){\begin{minipage}[t]{2.5cm} + \newterm{Kaskade}\\ + \newterm{Daisy Chain}\pause[4]\par\smallskip + \setlength{\leftskip}{-3.5cm}\small + Slave gibt MOSI-Input um 1 Takt verzögert + an MISO aus \textarrow\ Master setzt + "`im richtigen Moment"' $\overline{\text{SS}}$ + \end{minipage}}} + \end{picture} + \end{itemize} + \vspace*{-1cm} + +\end{frame} + +\iffalse + +\subsection{PWM} + +\begin{frame} + \showsection + \showsubsection + + Pulsweitenmodulation -- \emph{pulse-width modulation} + + \begin{itemize} + \item + Steuerung von Motoren + \item + Nutzung als allgemeines Protokoll\\ + zur Übertragung analoger Werte + \end{itemize} +\end{frame} + +\subsection{Sonstiges} + +\begin{frame} + \showsection + \showsubsection + + Matrix-Schaltung + \begin{itemize} + \item + möglichst viele Aktoren/Sensoren\\ + über möglichst wenige digitals Inputs abfragen\\ + bzw.\ über möglichst wenige digitale Outputs steuern + \item + Beispiele: LED-Felder, Tastaturen + \end{itemize} + + \bigskip + + R/2R-Netzwerk + \begin{itemize} + \item + möglichst viele digitale Inputs\\ + über einen einzigen analogen Input abfragen + \item + Beispiele: Tastaturen + \end{itemize} + +\end{frame} + +\fi + +\sectionnonumber{\inserttitle} + +\begin{frame} + + \showsectionnonumber + + \begin{itemize} + \item[\textbf{1}] \textbf{Einführung} + \item[\textbf{2}] \textbf{Vom Schaltkreis zum Computer} + \item[\textbf{3}] \textbf{Architekturmerkmale von Prozessoren} + \item[\textbf{4}] \textbf{Der CPU-Stack} + \item[\textbf{5}] \textbf{Anwender-Software} + \item[\textbf{6}] \textbf{Pipelining} + \begin{itemize} + \item[6.1] Konzept + \item[6.2] Arithmetik-Pipelines + \item[6.3] Instruktions-Pipelines + \end{itemize} + \item[\textbf{7}] \textbf{Bus-Systeme} + \begin{itemize} + \color{medgreen} + \item[7.1] Was sind Bus-Systeme? + \item[7.2] Chipsatz + \item[7.3] RS-232 + \item[7.4] \ItwoC\ (TWI) + \item[7.5] SPI + \end{itemize} +% \item[\textbf{???\hspace{-0.75em}}] +% \item[\textbf{8}] \textbf{Ausblick} + \item[\textbf{i}] \textbf{Quantencomputer} + \end{itemize} + +\end{frame} + +\end{document} diff --git a/20210621/rtech-20210621.txt b/20210621/rtech-20210621.txt new file mode 100644 index 0000000000000000000000000000000000000000..a1ec54d9adbf4b6bcc9b175d3f38ad467188b45d --- /dev/null +++ b/20210621/rtech-20210621.txt @@ -0,0 +1,22 @@ +RS-232 auf dem Oszilloskop, 21.06.2021, 17:54:06 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Folie: ~~~~_~~~___~_~~~ rtech-20210621.pdf, Seite 62 + +Oszi: ~_~~~___~__~_~~~_ photo-8231.jpg + + ^ ab hier unterschiedlich: Paritätsbit + +Folie: Hier wird ein großes "G" mit ungerader Parität übertragen. +Oszi: Hier wird ein großes "G" mit gerader Parität übertragen. + +Zum Vergleich: photo-8232.jpg: "G" mit ungerader Pärität auf dem Oszi + + +Weitere Themen, 21.06.2021, 18:28:53 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ! Quantencomputer + + ? LaTeX + ? Compiler-Bau + ? ... diff --git a/common/I2C_data_transfer.pdf b/common/I2C_data_transfer.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0d5b8a241c624391cbf6f3a30f26320559358e1d Binary files /dev/null and b/common/I2C_data_transfer.pdf differ diff --git a/common/SPI_single_slave.pdf b/common/SPI_single_slave.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6f724dad4a8ed23b262b0b1c672bf85b72405155 Binary files /dev/null and b/common/SPI_single_slave.pdf differ diff --git a/common/SPI_three_slaves.pdf b/common/SPI_three_slaves.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b67dc94c790a62935c7b353449e2ce8c75a7d9fe Binary files /dev/null and b/common/SPI_three_slaves.pdf differ diff --git a/common/SPI_three_slaves_daisy_chained.pdf b/common/SPI_three_slaves_daisy_chained.pdf new file mode 100644 index 0000000000000000000000000000000000000000..46ac2027cfcbd598a609e43ce74e19e75d374ead Binary files /dev/null and b/common/SPI_three_slaves_daisy_chained.pdf differ diff --git a/common/kompassmodul-an-roboter.jpg b/common/kompassmodul-an-roboter.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8032f89a2d9ed29445312c2f29ef6ceb951b2005 Binary files /dev/null and b/common/kompassmodul-an-roboter.jpg differ diff --git a/common/kompassmodul.jpg b/common/kompassmodul.jpg new file mode 100644 index 0000000000000000000000000000000000000000..91e9de3f4ff0023b01957a6c48e2b61f8070ee40 Binary files /dev/null and b/common/kompassmodul.jpg differ diff --git a/common/motherboard-anschluesse.jpg b/common/motherboard-anschluesse.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0c18421ba84cf3b5edfd94404152138a78ee527b Binary files /dev/null and b/common/motherboard-anschluesse.jpg differ diff --git a/common/rs-232.pdf b/common/rs-232.pdf new file mode 100644 index 0000000000000000000000000000000000000000..236ef5bf182048842613c5416b91afb68f451fa6 Binary files /dev/null and b/common/rs-232.pdf differ