viernes, marzo 21, 2008

[Estudio] S1 Core: Arquitectura I - S1_top

Empecé a investigar la estructura del S1 Core comenzando por el bloque exterior, es decir el que se comunicaría con los demas circuitos integrados en la placa o PCB.
Este bloque exterior esta formado por los siguientes archivos escritos en Verilog:
  • t1_defs.h: Se definen las constantes usadas por OpenSPARC T1
  • s1_defs.h: Se definen las constantes usadas por S1 Core
  • s1_top.v: Código donde se hacen las conexiones entre los bloques "sparc", "spc2wbm", "rst_ctrl" y "int_ctrl"
  • sparc.v: Definición del núcleo SPARC
  • spc2wbm.v: Código donde se implementa un "puente" de un núcleo SPARC del OpenSPARC T1 hacia una interfaz maestra que hace uso del protocolo de interconexión Wishbone
  • rst_ctrl.v: Este bloque implementa el Controlador de Reset usado por el S1 Core para despertar el núcleo SPARC del OpenSPARC T1; este comportamiento fue obtenido al hacer ingeniería inversa de las formas de onda del OpenSPARC T1
  • int_ctrl.v: Implementa el Controlador de Interrupciones usado por el S1 Core para detectar si algún perisférico produjo una interrupción
Utilzando el OpenOffice.arg Draw realicé un gráfico describiendo este bloque:



Las entradas al bloques son:
  • sys_clock_i: Reloj del sistema
  • sys_reset_i: Reset del sistema
  • sys_irq_i: Pedidos de interrupciones. Son 64 en total
  • wbm_ack_i: Entrada para la petición del bus Wishbone
  • wbm_data_i: Entrada del bus de datos del bus Wishbone de 64 bits
Las salidas del bloque son:
  • wbm_cycle_o: Inicio de ciclo
  • wbm_strobe_o: Requerimiento de strobe (si alguien conoce la traducción de strobe la agradeceré)
  • wbm_we_o: Habilitación de escritura
  • wbm_addr_o: Bus de dirección del bus Wishbone de 64 bits
  • wbm_data_o: Bus de datos del bus Wishbone de 64 bits
  • wbm_sel_o: Salida de selección de 8 bits
En definitiva la función del bloque S1_top son intercomunicar los distintos bloques:
  • Un núcleo SPARC del OpenSPARC T1
  • Un puente entre el núcleo SPARC y un manejador Wishsbone
  • Un controlador de Reset
  • Un controlador de Interrupciones
Para saber más del bus Wishbone en Opencores.org hay información al respecto.

Saludos

Etiquetas: , , , , ,

[Estudio] S1 Core: Versión reducida del OpenSPARC T1 Niagara de Sun

Hace un tiempo Sun liberó el código fuente de su microprocesador OpenSPARC T1 Niagara en código Verilog para que pueda ser estudiado.
Las características de de este microprocesador:

  • Arquitectura SPARC v9 de 64 bits
  • 8 núcleos SPARC
  • 4 hilos por núcleo (ejecución total de 32 hilos)
  • Cada núcleo SPARC tiene un cache de datos, un cache de instrucciones y TLB (translation lookaside buffers) totalmente asociativos para los 2 caches
  • Los 8 núcleos son conectados entre ellos por medio de un "crossbar" hacia un cache unificado L2
  • 4 controladores DRAM que pueden manejar DDR2
  • Controlador J-BUS que posibilita la inter-conexión entre el OpenSPARC T1 y el susbsistema de I/O (entrada y salida)

Descripción Funcional:

  • 8 núcleos SPARC v9, con 4 hilos por núcleo, para un total de 32 hilos
  • 132 Gbytes/sec para la comunicación "on-chip" por medio del "crossbar"
  • 16 Kbytes para el cache de instrucciones primario L1 por núcleo
  • 8 Kbytes para el cache de datos primario L1 por núcleo
  • 3 Mbytes para el cache secundario L2, bancos de 4 bias y cada uno con 12 bias asociativo compartido por todos los núcleos
  • 4 controladores DDR-2 DRAM con una interfaz de 144 bits por canal, dando un total pico de ancho de banda de 25 Gbytes/sec
  • Unidad de punto flotante IEEE 754 compartida por todos los núcleos
  • Interfaz externa J-BUS para entrada salida (I/O) con un ancho de banda pico total de 2,5Gbytes/sec con un bus de 128bits multiplexado entre datos y direcciones
  • Interfaz externa SSI (serial sistem interface) para bootear desde PROM

Pueden encontrar más información en la página oficial OpenSPARC T1

Luego de la introducción del OpenSPARC T1 una persona llamada Fabrizio Fazzino dejó una versión recortada de este microprocesador llamada S1 Core en Opencores con las siguientes características:

1 solo núcleo SPARC v9
4 hilos de ejecución
Interfaz Maestra Wishbone para la comunicación de otro núcleos de Opencores.org

Si tengo tiempo voy a ver si puede empezar a investigar el código de S1 Core para entender su arquitectura y comentarla por el blog.

Saludos.

Etiquetas: , , , , ,