1
0
mirror of git://projects.qi-hardware.com/nn-usb-fpga.git synced 2025-01-22 22:01:06 +02:00

25 lines
3.0 KiB
TeX
Raw Normal View History

2010-09-12 19:57:04 -05:00
\chapter{Sistema en un Chip (SoC)}
En esta secci<63>n estudiaremos la arquitectura b<>sica de un SoC moderno, componentes, funcionamiento, programaci<63>n y operaci<63>n. Como se mencion<6F> anteriormente, la tendencia actual de la industria de los semiconductores es integrar en un solo dispositivo las funcionalidades necesarias para la implementaci<63>n de dispositivos digitales modernos. Esto es posibe gracias a los grandes avances en las t<>cnicas de fabricaci<63>n de circuitos integrados y a la demanda de nuevas caracter<65>sticas exigidas por los fabricantes de dispositivos digitales de consumo masivo como tel<65>fonos celulares, PDAs, consolas de juegos y reproductores multimedia. Para utilizar estos avances tecnol<6F>gicos es necesario conocer su arquitectura, principio de funcionamiento, programaci<63>n e implementaci<63>n, para esto, se estudiar<61>n dos proyectos abiertos que implementan un SoC en un PLD utilizando lenguaje de descripci<63>n de hardware y herramientas GNU; proporcionan el c<>digo fuente, lo que permite un estudio profundo de su arquitectura. El proyecto \textit{Plasma} \cite{SR08} y el proyecto Mico32\cite{LSC08}.
\section{Arquitectura}
Un SoC, integra un conjunto de perif<69>ricos, memorias y una o varias unidades de procesamiento (CPUs) en un solo chip, lo cual facilita el desarrollo de aplicaciones. Comercialmente encontramos una gran variedad de configuraciones CPU - perif<69>ricos, dependiendo de la aplicaci<63>n; dentro de los m<>s comunes se encuentran: controladores de memorias externas (NOR, NAND, SDRAM, DDR), puertos de comunicaci<63>n (I2C, SPI), puerto de depuraci<63>n (UART), timers, reloj de tiempo real, codecs de audio, controladores de LCD, controladores de red, controlador de puerto USB host, controlador para sensores de im<69>genes, etc. La figura \ref{min_soc_arch} muestra una arquitectura de un SoC sencillo con los componentes necesarios para implementar tareas simples.
\begin{figure}
\begin{center} \includegraphics[scale=.6]{./images/Computer-simple} \end{center}
\caption{Arquitectura m<>nima de un SoC}\label{min_soc_arch}
\end{figure}
\subsubsection{Unidad de Procesamiento Central (CPU)}
La unidad de procesamiento central (CPU), como su nombre lo indica, est<73> encargada de centralizar las tareas del sistema coordinando las acciones de los perif<69>ricos. Puede ser vista como una m<>quina de estados programable que controla un camino de datos compuesto por bloques aritm<74>ticos, l<>gicos y un banco de registros. Cada CPU es capaz de realizar una serie de operaciones sobre variables almacenadas en el banco de registros, estas operaciones reciben el nombre de \textit{conjunto de instrucciones}. El programador utiliza estas instrucciones para hacer que la CPU realice una funci<63>n espec<65>fica, indicandole paso a paso donde debe leer la informaci<63>n, como procesarla y como entregar el resultado. A Esta funci<63>n se le conoce con el nombre de programa o tarea Software.
\subsubsection{Perif<EFBFBD>ricos}
Los perif<69>ricos proporcionan la comunicaci<63>n con el exterior, permiten el ingreso, almacenamiento y procesamiento de la informaci<63>n