whitespace
[libreriscv.git] / conferences / fosdem2024 / fosdem2024_ddffirst / fosdem2024_ddffirst.tex
index 4548aa842deadcb330c690243a90fe522f4111c7..06301e8998b12505898bd0677ce316c5830e362e 100644 (file)
@@ -84,7 +84,7 @@
                heat sink normally not required (simplifies overall design)
                \vspace{3pt}
    \item Fully-integrated peripherals (not Northbridge/Southbridge)\\
                heat sink normally not required (simplifies overall design)
                \vspace{3pt}
    \item Fully-integrated peripherals (not Northbridge/Southbridge)\\
-         USB, HDMI, RGB/TTL, SD/MMC, I2C, UART, SPI, GPIO etc. etc. 
+         USB, HDMI, RGB/TTL, SD/MMC, I2C, UART, SPI, GPIO etc. etc.
          \vspace{3pt}
    \item Built-in GPU (shared memory bus, 3rd party licensed) \vspace{3pt}
    \item Built-in VPU (likewise, proprietary)\vspace{3pt}
          \vspace{3pt}
    \item Built-in GPU (shared memory bus, 3rd party licensed) \vspace{3pt}
    \item Built-in VPU (likewise, proprietary)\vspace{3pt}
@@ -161,7 +161,16 @@ for (i = 0; i < VL; i++)
        \end{itemize}
 \end{frame}
 
        \end{itemize}
 \end{frame}
 
-
+\frame{\frametitle{Power ISA v3.1 vstribr}
+       
+       \lstinputlisting[language={}]{vstribr.txt}
+       
+       \begin{itemize}
+               \item ironically this hard-coded instruction is
+               identical to general-purpose Simple-V DD-FFirst...
+       \end{itemize}
+       
+}Po
 
 \frame{\frametitle{maxloc}
   \begin{itemize}
 
 \frame{\frametitle{maxloc}
   \begin{itemize}
@@ -174,25 +183,41 @@ for (i = 0; i < VL; i++)
   \begin{itemize}
        \item   Positional popcount adds up the totals of each bit set to 1 in each bit-position, of an array of input values.
        \item   Notoriously difficult to do in SIMD assembler: typically 550 lines
   \begin{itemize}
        \item   Positional popcount adds up the totals of each bit set to 1 in each bit-position, of an array of input values.
        \item   Notoriously difficult to do in SIMD assembler: typically 550 lines
+    \item https://github.com/clausecker/pospop
+
    \end{itemize}
        
        \lstinputlisting[language={}]{pospopcount.c}
    \end{itemize}
        
        \lstinputlisting[language={}]{pospopcount.c}
+
        
 }
 
        
 }
 
-\frame{\frametitle{Simple SBC-style SoC}
+\frame{\frametitle{Pospopcount}
        
        \begin{center}
        
        \begin{center}
-               \includegraphics[width=0.6\textwidth]{pospopcount.png}
+               \includegraphics[width=0.5\textwidth]{pospopcount.png}
        \end{center}
        \end{center}
-       
+         \begin{itemize}
+               \item   The challenge is to perform an appropriate transpose of the data (the CPU can only work on registers, horizontally),
+               in blocks that suit the processor and the ISA capacity.
+
+               
+       \end{itemize}
 }
 
 }
 
-\frame{\frametitle{Simple SBC-style SoC}
+\frame{\frametitle{Pospopcount}
        
        \begin{center}
                \includegraphics[width=0.6\textwidth]{array_popcnt.png}
        \end{center}
        
        \begin{center}
                \includegraphics[width=0.6\textwidth]{array_popcnt.png}
        \end{center}
+
+  \begin{itemize}
+
+               \item   The draft gbbd instruction implements the transpose (shown above),
+                               preparing the data to use standard popcount.
+                          (gbbd is based on Power ISA vgbbd, v3.1 p445)
+       
+       \end{itemize}
        
 }
 
        
 }
 
@@ -206,11 +231,14 @@ for (i = 0; i < VL; i++)
 
 \frame{\frametitle{strncpy}
 
 
 \frame{\frametitle{strncpy}
 
+       \lstinputlisting[language={}]{strncpy.c}
   \begin{itemize}
        \item "TODO
  \end{itemize} 
 }
 
   \begin{itemize}
        \item "TODO
  \end{itemize} 
 }
 
+
+
 \frame{\frametitle{strncpy assembler}
 
 \lstinputlisting[language={}]{strncpy.s}
 \frame{\frametitle{strncpy assembler}
 
 \lstinputlisting[language={}]{strncpy.s}
@@ -237,7 +265,7 @@ for (i = 0; i < VL; i++)
          development costs for customers
    \item It also happens to be fascinating, deeply rewarding technically
          challenging, and funded by NLnet
          development costs for customers
    \item It also happens to be fascinating, deeply rewarding technically
          challenging, and funded by NLnet
-         
+
   \end{itemize}
 }
 
   \end{itemize}
 }
 
@@ -249,7 +277,7 @@ for (i = 0; i < VL; i++)
                   Questions?\vspace{12pt}
        }
   \end{center}
                   Questions?\vspace{12pt}
        }
   \end{center}
-  
+
   \begin{itemize}
        \item Discussion: http://lists.libre-soc.org
        \item Freenode IRC \#libre-soc
   \begin{itemize}
        \item Discussion: http://lists.libre-soc.org
        \item Freenode IRC \#libre-soc