ce-box / CE4301-design-spaces-viewer

Herramienta que permite la visualización de los resultados obtenidos de la exploración del diseño de microarquitecturas y procesadores. 🧭📊

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Exploración de Espacios de Diseño 🧭

La exploración de espacios de diseño y modelado de desempeño son vitales para el desarrollo de sistemas computacionales modernos. Este tipo de estudios son necesarios para evaluar la viabilidad del desarrollo de proyectos de diseño de micro-arquitecturas.

En este proyecto se realizarán pruebas de rendimiento a dos benchmarks utilizando GEM5, una plataforma modular para la investigación de arquitectura de sistemas computacionales y de los sistemas de micro-arquitectura de procesadores.

Estructura de Hardware 🎛️

Las pruebas se realizarán en distintos modelos de 24 micro-arquitecturas base, con el fin de evaluar el rendimiento de cada una ante las misma carga de trabajo.

Se escogieron dos ISAs para realizar esta prueba. Cada set de instrucciones será la base para 12 micro-arquitecturas distintas.

  ISA
   ├── RISC-V
   └── ARM

Para cada ISA se probarán dos tipos de procesadores de los que provee GEM5. Cada procesador será modificado para construir 6 micro-arquitecturas con distintas configuraciones.

  PROCESADOR
   ├── TimingSimple
   └── TraceCPU

Para realizar los cambios se deben seleccionar 2 parámetros del procesador y cambiar su valor 5 veces. Además, se deben evaluar los tipos de branch-predictor.

  BRANCH PREDICTOR UNIT
   ├── 2bit_local
   ├── Bi_mode
   └── Tournament

Para cada branch-predictor se varían sus parámetros:

  BRANCH PREDICTOR PARAMETERS
   ├── BTBEntries
   ├── localPredictorSize
   ├── globalPredictorSize
   └── choicePredictorSize

Benchmarks 🧪

Los modelos de hardware serán probados con dos benchmarks: uno del tipo SPEC y otro del tipo PARSEC.

Tabla 1. Benchmarks escogidos por cada tipo

Tipo Benchmark Descripción
SPEC2006 401.bzip Algoritmo de compresión de archivos en memoria
PARSEC canneal Algoritmo de recocido simulado consiente de la caché para optimizar los costos de enrutamiento en el diseño de chips

Estos benchmarks se seleccionaron por su alto uso de memoria, lo que nos permite variar parámetros de las memorias caché, como su tamaño, grado de asociatividad, cantidad de sets, entre otros y evaluar su rendimiento (misses y hits).

Visualización de Estadísticas 📊

¿Cómo se visualizan los resultados de las pruebas? Creamos una herramienta que permite la visualización de los resultados obtenidos mediante gráficos. El sistema permite observar las cinco variaciones por parámetro para cada una de las combinaciones.

()[]

Tabla 2. Combinaciones posibles para las micro-arquitecturas seleccionadas

# Benchmark ISA Procesador BPU cache-assoc cache-size
1 401.bzip ARM TimingSimple 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
2 401.bzip ARM TimingSimple Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
3 401.bzip ARM TimingSimple Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
4 401.bzip ARM TraceCPU 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
5 401.bzip ARM TraceCPU Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
6 401.bzip ARM TraceCPU Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
7 401.bzip RISCV TimingSimple 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
8 401.bzip RISCV TimingSimple Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
9 401.bzip RISCV TimingSimple Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
10 401.bzip RISCV TraceCPU 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
11 401.bzip RISCV TraceCPU Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
12 401.bzip RISCV TraceCPU Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
-- --------- ----- ---------- ---------- --------------- ---------------
13 canneal ARM TimingSimple 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
14 canneal ARM TimingSimple Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
15 canneal ARM TimingSimple Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
16 canneal ARM TraceCPU 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
17 canneal ARM TraceCPU Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
18 canneal ARM TraceCPU Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
19 canneal RISCV TimingSimple 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
20 canneal RISCV TimingSimple Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
21 canneal RISCV TimingSimple Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
22 canneal RISCV TraceCPU 2bit_local DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
23 canneal RISCV TraceCPU Bi_mode DM,2w,4w,8w,16w 1k,2k,4k,8k,16k
24 canneal RISCV TraceCPU Tournament DM,2w,4w,8w,16w 1k,2k,4k,8k,16k

Autores ✏️

Este proyecto fue desarrollado para el curso CE4301 - Arquitectura de Computadores I del Instituto Tecnológico de Costa Rica. 2021 🄯

Agradecimiento al profesor del curso:

  • Prof. Luis Alberto Chavarría Zamora

About

Herramienta que permite la visualización de los resultados obtenidos de la exploración del diseño de microarquitecturas y procesadores. 🧭📊

License:MIT License


Languages

Language:C 85.4%Language:C++ 6.3%Language:Python 3.5%Language:TypeScript 3.5%Language:Shell 0.9%Language:Makefile 0.3%Language:JavaScript 0.1%Language:HTML 0.1%Language:CSS 0.0%