scieee Science in your language
[es] (orig)

Integración de una caché de datos en el sistema en chip SweRVolf

Abstract

Hoy en día el acceso a memoria limita en gran medida el rendimiento de un procesador, por ello, es muy importante tener una jerarquía de memoria que reduzca en lo posible la latencia de acceso a memoria, siendo especialmente relevante el uso de memorias caché. SweRVolf es un System on Chip (SOC) de código abierto de Western Digital, que integra un procesador RISC-V de la misma compañía, el SweRV EH1. Este procesador dispone de una caché de instrucciones, pero de datos. En este proyecto proponemos un diseño propio de una caché de datos que incorporaremos en la ruta de datos del Swerv EH1. En nuestro diseño hemos procurado cuidar el aspecto didáctico, tratando que la caché sea configurable, de modo que el usuario pueda escoger distintas políticas de escritura, el tamaño de la caché o el número de vías en tiempo de compilación. Además del desarrollo de la caché también realizamos pruebas de verificación para comprobar la corrección de ésta.

Read accessible full text

Integración de una caché de datos en el sistema en chip SweRVolf

Author: Carballo Boullosa, Alfonso; Balbás Sánchez, Christian
Year: 2021
Source: https://docta.ucm.es/bitstreams/909b8dd8-1842-42b3-be41-6a33e635d66c/download
In eg ación de una Caché de Da os en el Sis ema
en Chip SweRVol
In eg a ion o a Da a Cache in he SweRVol
Sys em on Chip
Al onso Ca ballo Boullosa
G ado ingenie ía de compu ado es
Ch is ian Balbás Sánchez
G ado ingenie ía in o má ica
TRABAJO FIN DE GRADO
CURSO 2020-2021
FACULTAD DE INFORMÁTICA
UNIVERSIDAD COMPLUTENSE DE MADRID
DIRECTORES
Ch is ian Tomás Tenllado Van De Reijden
José Ignacio Gómez Pé ez
2
Resumen
Hoy en día el acceso a memo ia limi a en g an medida el endimien o de un
p ocesado , po ello, es muy impo an e ene una je a quía de memo ia que eduzca
en lo posible la la encia de acceso a memo ia, siendo especialmen e ele an e el uso
de memo ias caché.
SweRVol es un Sys em on Chip (SOC) de código abie o de Wes e n Digi al, que
in eg a un p ocesado RISC-V de la misma compañía, el SweRV EH1. Es e
p ocesado dispone de una caché de ins ucciones, pe o de da os. En es e p oyec o
p oponemos un diseño p opio de una caché de da os que inco po a emos en la u a
de da os del Swe EH1.
En nues o diseño hemos p ocu ado cuida el aspec o didác ico, a ando que la
caché sea con igu able, de modo que el usua io pueda escoge dis in as polí icas de
esc i u a, el amaño de la caché o el núme o de ías en iempo de compilación.
Además del desa ollo de la caché ambién ealizamos p uebas de e i icación pa a
comp oba la co ección de és a.
Palab as cla e
Caché, memo ia, p ocesado , RISC-V, SweRV, SOC.
3
Abs ac
Nowadays memo y access g ea ly limi s he pe o mance o a p ocesso , he e o e,
i is e y impo an o ha e a memo y hie a chy ha educes memo y access la ency
as much as possible, ha causes he use o cache memo ies o become especially
ele an .
SweRVol is an open-sou ce Sys em on Chip om Wes e n Digi al, which
in eg a es he SweRV EH1 a RISC-V p ocesso om he same company. This
p ocesso has an ins uc ion cache, bu no da a cache. In his p ojec we will design
ou own da a cache memo y and will be inco po a ed in o he Swe EH1 da a pa h.
Ou design is ocused o be didac ic, ensu ing ha he cache is con igu able, so
ha he use can choose di e en w i ing policies, he size o he cache o he numbe
o pa hs a compile ime.
In addi ion o he de elopmen o he cache, we also ca y ou e i ica ion es s
o e i y he co ec ness o he cache.
Keywo ds
Cache, memo y, p ocesso , RISC-V, SweRV, SOC.
4
Índice de con enidos
CAPÍTULO 1 INTRODUCCIÓN ______________________ 5
1.1 An eceden es ________________________________ 5
1.2 Obje i os ___________________________________ 7
1.3 Plan de abajo _______________________________ 8
CAPÍTULO 2 RISC-V Y SWERVCORE EH1 _______________ 9
2.1 ISA RISC-V _________________________________ 9
2.2 Swe Co e EH1 ______________________________ 10
CAPÍTULO 3 CACHÉ DE DATOS Y ADAPTACIÓN __________ 20
3.1 Adap ación al Swe Co e EH1 _____________________ 23
3.2 Diseño ___________________________________ 25
CAPÍTULO 4 VALIDACIÓN Y BENCHMARKING ___________ 34
4.1 Desa ollo y depu ación _________________________ 34
4.2 Tes ing ___________________________________ 35
4.3 Benchma king _______________________________ 44
CAPÍTULO 5 RESULTADOS Y TRABAJO FUTURO _________ 46
CAPÍTULO 6 DISCUSIÓN CRÍTICA ___________________ 48
CAPÍTULO 7 CONCLUSIONES ______________________ 50
CAPÍTULO 8 CONCLUSIONS _______________________ 51
CONTRIBUCIONES _____________________________ 52
BIBLIOGRAFÍA ________________________________ 56
5
Capí ulo 1 In oducción
1.1 An eceden es
A inales del siglo XX apa ecen las p ime as FPGAs y Open Design Ci cui s, el
p ime mo imien o que p omo ió una comunidad de diseño de ha dwa e lib e. Es o
pe mi ió que diseños elec ónicos lib es pudie an se in e cambiados. Sin emba go,
dada la inexis encia de so wa e lib e pa a diseño elec ónico, el c ecimien o de la
comunidad de ha dwa e lib e ue mínimo.
Con el paso del iempo el concep o de ha dwa e lib e ha omado más impo ancia
y p esencia en la comunidad, su giendo p oyec os como RepPap, A duino y
Raspbe y Pi.
Uno de los p oyec os que mayo impac o ha enido en la comunidad de ha dwa e
lib e es RISC-V. Nace en el año 2010, en la uni e sidad de Cali o nia de Be keley,
con una a qui ec u a de conjun o de ins ucciones (ISA) de ipo RISC (conjun o de
ins ucciones educido).
RISC-V pe mi e a emp esas apos a po desa olla p ocesado es pe sonalizados
ajus ándose a sus necesidades, educiendo los cos es ya que se e i a el pago de ges ión
digi al de de echos (DRM) a o as compañías. Es o le puede p opo ciona a Eu opa
una opo unidad pa a ene independencia de los p ocesado es desa ollados po las
p incipales po encias mundiales. Ac ualmen e exis en una g an can idad de
o ganizaciones que apues an po RISC-V, incluso en el caso del Ba celona
Supe compu ing Cen e .
Adicionalmen e y g acias a la disponibilidad de g an can idad de documen ación
écnica sob e RISC-V, es á p opiciando un cambio en la comunidad educa i a. Has a
la echa el es udio de p ocesado es e a di ícil po la inaccesibilidad a in o mación
sob e es e ipo de ha dwa e, debido a la al a con idencialidad po pa e de las
emp esas pun e as. Tan o es así que lib os que has a la echa es aban basados en
p ocesado es como MIPS y ARM es án publicando ediciones de RISC-V.
En es e momen o exis en más de 100 p ocesado es abie os publicados en la
página o icial de RISC-V 1, con di e en es epe o ios y ex ensiones, publicados po
di e en es compañías, como Wes e n Digi al, CodaSip, SiFi e o UCB BAR, pe o

6
ninguno de és os dispone de una memo ia caché de da os, lo que pod ía se muy ú il
pa a la comunidad.
7
1.2 Obje i os
Dado a que ningún p ocesado RISC-V abie o publicado has a el momen o
dispone de caché de da os, decidimos diseña e implemen a una pa a alguno ya
exis en e. Como ya exis e un p oyec o educa i o basado en el SweRVol y una
adap ación de es e SOC pa a FPGA llamada RV pga desa ollado po Imagina ion,
es el ha dwa e escogido pa a es e abajo.
Los obje i os que han de e minado el diseño de la caché son los siguien es.
• Man ene el uncionamien o del p ocesado . Minimiza los cambios ue a
de los módulos de la caché pa a acili a así una posible adap ación en o os
p ocesado es. Además, compa ibiliza nues a caché con odas las
uncionalidades ya exis en es en el p ocesado .
• Pa ame ización a qui ec ónica. Posibilidad de con igu a la a qui ec u a
de la memo ia. Elemen os como el núme o de ías, amaño de bloque,
núme o de sub-bancos, amaño de bloque y p o undidad de la memo ia
caché.
• Pa ame ización de polí icas. Posibilidad de con igu a las polí icas de
esc i u a de la caché. W i e alloca e o non w i e alloca e y w i e back o
w i e h ough.
• Implemen ación del SOC con la caché en una FPGA Nexys 4 DDR (A ix
7).
Como conside ación adicional, que íamos que la ex ensión del p ocesado con la
caché pudiese se usado como base pa a un RISC-V de ámbi o indus ial.
8
1.3 Plan de abajo
El abajo ealizado pa a es e p oyec o ue di ido en las siguien es ases.
• In es igación. Lec u a de la documen ación asociada al SOC pa a
comp ende la es uc u a y uncionamien o básico del p ocesado .
• Ins alación de en o no de desa ollo. Familia ización con el so wa e pa a
la simulación, edición, implemen ación y depu ación del p ocesado .
• Explo ación inicial. Simulación del p ocesado y e isión del código de
desc ipción ha dwa e (HDL) pa a comp ende el lujo de abajo de la LSU.
• Diseño inicial caché. Con el in de en ende la u a de da os se diseñó una
caché sencilla basada en egis os pa a descub i las señales e in e acciones
más ele an es con el p ocesado .
• Explo ación. Con el obje i o de desa olla un código homogéneo,
in es igamos la es uc u a de la caché de ins ucciones ya implemen ada
en el p ocesado . También es udiamos la mane a de comunica la caché de
da os, con la memo ia p incipal median e el bus AXI (in e az ex ensible
a anzada).
• Desa ollo. C eación de los módulos inales de la caché de da os, basando
su es uc u a en la de la caché de ins ucciones.
• Depu ación. De ección y co ección de e o es p oducidos en la ase de
desa ollo an e io .
• Mejo a. Implemen ación de nue as polí icas, pa ame ización de la caché
y o as uncionalidades no sopo adas has a el momen o.
• P uebas. P obamos el p ocesado en casos c í icos u ilizando códigos en
ensamblado pa a o za posibles e o es y co egi los.
• Benchma king. Codi icamos nues o benchma k pa a e alua la mejo a del
p ocesado .
• Implemen ación. In en amos sin e iza e implemen a nues o p ocesado
en FPGA, pe o sin éxi o. No cumplimos los eque imien os de iempo, pa a
lo cual se ía necesa ia o a i e ación de diseño.
El con ol de e siones en la ase de explo ación se hacía con Google D i e donde
subíamos a una ca pe a común las e e encias, documen os ele an es pa a el
p oyec o, así como algunos a chi os p opios acla ando concep os impo an es sob e
el p ocesado . En la ase de diseño usamos gi hub pa a el con ol de e siones del
código del p ocesado , así como odos los a chi os necesa ios pa a la simulación de
es e. Finalmen e, pa a la memo ia usamos OneD i e po su buena in eg ación con
Wo d, edi o de ex o usado pa a la esc i u a de és a.
9
Capí ulo 2 RISC-V y Swe Co e EH1
2.1 ISA RISC-V
La a qui ec u a del p ocesado (ISA) de e mina las ins ucciones que sopo a, su
codi icación, modos de di eccionamien o, elemen os isibles al p og amado , modelo
de memo ia, excepciones y algunos o os pa áme os a qui ec ónicos. RISC-V es una
ISA ha dwa e lib e que, a di e encia de la mayo ía es modula . Cons a de a ios
epe o ios base y una se ie de ex ensiones que nos pe mi en añadi uncionalidades
especi icas al conjun o de ins ucciones básico2.
Exis en cua o epe o ios de ins ucciones básicos:
• RV32I: epe o io de ins ucciones base con en e os de 32 bi s.
• RV32E: epe o io de ins ucciones base (empo ado) con en e os de 32
bi s, 16 egis os.
• RV64I: epe o io de ins ucciones base con en e os de 64 bi s.
• RV128I: epe o io de ins ucciones base con en e os de 128 bi s.
A los que se le pueden añadi las siguien es ex ensiones:
• M – ex ensión pa a mul iplicación y di isión.
• A – ex ensión pa a ins ucciones a ómicas.
• F – ex ensión pa a p ecisión simple FP.
• D - ex ensión pa a p ecisión doble FP.
• C – ex ensión pa a ins ucciones comp imidas.
16
2.2.1 Bus AXI
La comunicación con la memo ia p incipal se hace a a és del bus AXI, po lo
que es necesa io conoce el p o ocolo de comunicación.
Como se puede e en la igu a 6, es una in e az de comunicación pa alelo de
al o endimien o semisinc ona de al a ecuencia, mul i-mas e y mul i-sla e. Exis en
dos ex emos de comunicación, uno de ellos es
mas e o manage
y o o es
sla e o
subo dina e
y es án in e conec ados en e sí. Los
mas e s
pueden inicia
ans e encias de esc i u a o lec u a, mien as que los escla os es án a la espe a de
nue as ans e encias5.
Figu a 6 - In e conexión bus AXI 5.
El bus AXI implemen a lec u a y esc i u a independien es mos ados en la igu a
7. La lec u a usa los canales
Read Add ess
y
Read Da a
mien as que la esc i u a
usa
W i e Add ess
,
W i e Da a
y
W i e Response
. Cada canal iene señales
independien es des inadas al en ío de señales de con ol o da os pa a cada uno de
los canales.

17
Figu a 7 - Comunicación en e Manage y Subo dina e5.
Pa a los canales mencionado an e io men e se dispone de es señales especí icas
des inados al con ol de la comunicación. Es as son:
alid, eady, las .
T ansacciones
El
handshake
pe mi e inicia una ansacción en e un
mas e
y un
sla e
. Pa a
ealiza un
handshake,
y como se mues a en la igu a 8, el
mas e
debe pone a 1 la
señal de
alid
y el
sla e
, pa a acep a lo debe pone a 1 el
eady
, si ya lo es u iese,
se man iene 1 ciclo y el
handshake
se da po comple ado ( éase igu a 9). Ambas
señales se man end án jun as a 1 du an e un ciclo y el
handshake
hab á sido
comple ado. Además, mien as que
alid
es á a 1, se en ia á la in o mación a
comunica al
sla e
.
Figu a 8 - AXI handshake5.
18
Figu a 9 - AXI handshake5.
El
handshake
an e io men e explicado necesa io pa a las ansacciones de lec u a
y esc i u a que explica emos a con inuación.
Como se mues a en la igu a 10, la ansacción de lec u a es iniciada po el mas e
con un
handshake
en el canal de
Read
Add ess
donde en ía la di ección a lee de
memo ia. A con inuación, el
sla e
con es a con o o
handshake
po el canal de
Read
Da a
con los da os solici ados.
Figu a 10 - AXI ansacción de lec u a5.
La ansacción de esc i u a se inicia con un
handshake
en el canal de
w i e add ess
indicando la di ección en la que se a a esc ibi , igu a 11. Una ez ealizado y cuando
el
sla e
es á lis o pa a ecibi los da os (
eady
es ablecido a 1), ealiza o o
handshake
median e canal de
w i e da a
donde el
mas e
le en ía los da os a esc ibi .
Finalmen e, el
sla e
con i ma la ecepción de los da os median e un úl imo
handshake
po el canal de
w i e esponse
.
19
Figu a 11 - AXI ansacción de esc i u a5.
Tan o las ansacciones de lec u a como esc i u a pe mi en el uso de
bu s
, que
son ansacciones que pa a un único
eques
, se en ían o solici an múl iples
ans e encias de da os.
20
Capí ulo 3 Caché de da os y adap ación
La caché es una memo ia colocada en e el p ocesado y la p incipal, su unción
es almacena los da os de los po enciales accesos u u os ob enidos en base a los
accesos ealizados. Debido a su a qui ec u a, amaño, ecnología (SRAM) y a su
ce canía al p ocesado , los accesos a la misma son muy ápidos6.
Es necesa io de ini los siguien es concep os pa a comp ende el uncionamien o
de una caché de da os:
• Bloque. La memo ia caché se di ide en bloques, odos del mismo amaño.
Cada bloque con iene da os ubicados en posiciones de memo ia
consecu i as. Es la mínima unidad de ans e encias de lec u a en e
memo ia p incipal y caché.
• Fallo. An e un acceso a memo ia p incipal, si se de e mina que el bloque
co espondien e no es á en la memo ia caché, ob end emos un allo de
caché.
• Acie o. An e un acceso a memo ia p incipal, si el bloque es á almacenado
en la memo ia caché, end emos un acie o.
La implemen ación de la memo ia caché implica la de inición de una se ie de
polí icas:
• Emplazamien o: de e mina en qué línea de caché se almacena cada bloque
de memo ia.
• Polí ica de eemplazo. En caso de que odas las ías es én llenas pa a un
conjun o de caché de e minado, es a polí ica de e mina qué bloque se
eemplaza á.
• Polí ica de esc i u a. De e mina cuándo se ac ualiza la in o mación en
memo ia p incipal. También se de e mina el compo amien o an e un allo
en memo ia caché p oducido po un s o e.
• Polí ica de búsqueda de bloques: de e mina cuándo un bloque es aído de
memo ia caché. Lo más común es an e un allo de caché.
Polí icas de emplazamien o
• Emplazamien o di ec o: un bloque de memo ia p incipal solo puede
ubica se en una línea de caché.
21
• Emplazamien o asocia i o: un bloque de memo ia p incipal puede ubica se
en cualquie línea de memo ia caché.
• Emplazamien o asocia i o po conjun os: un bloque de memo ia p incipal
solo puede aloja se en un conjun o, que puede con ene a ios bloques,
como se ap ecia en la igu a 12.
Figu a 12 - Tipos de emplazamien o de la memo ia caché. Fuen e:
h p://www. di.ucm.es/p o eso /jj uz/WEB2/Temas/EC6.pd
El emplazamien o di ec o, a pesa de se la opción más ápida y menos cos osa a
ni el de ecu sos, p esen a p oblemas ya que a ios bloques de memo ia p incipal
compi en po una sola línea de memo ia caché, pudiendo eemplaza un bloque
es ando el es o de la memo ia caché acía. Pa a sol en a es e p oblema su gen los
emplazamien os asocia i os, solucionando el p oblema de eemplazo de bloques
innecesa ios, pe o siendo mucho más cos osas a ni el de ha dwa e y más len as. Si
se combinan las dos ideas, su ge el emplazamien o po conjun os, o eciendo un
equilib io en e elocidad, cos e y e iciencia.
Polí icas de eemplazo
En caso de dispone de a ias ías po conjun o, cuando odas ellas es án llenas
y un nue o bloque a a se esc i o en memo ia caché, es necesa io de e mina qué
bloque de ese conjun o a a se expulsado de la caché. Exis en di e en es polí icas a
u iliza , en e las que des acamos:
• Fi s in i s ou (FIFO): el bloque sus i uido es el que más iempo ha
es ado en la caché.

22
• Las ecen ly used (LRU): el bloque sus i uido es el que hace más iempo
que no ha sido u ilizado.
• Leas F equen ly Used (LFU): el bloque sus i uido es aquel que ha sido
e e enciado menos eces.
A p io i, podemos pensa que LRU es la polí ica más lógica pa a implemen a en
una memo ia caché. Sin emba go, al igual que LFU, la implemen ación es muy
cos osa a ni el de ha dwa e. Po o o lado, FIFO es más sencilla de implemen a y
menos cos osa a ni el de ha dwa e, pe o es menos e icaz.
Polí icas de esc i u a
En las esc i u as debemos dis ingui dos si uaciones, cuando hay un acie o o
cuando hay un allo de caché.
En caso de acie o enemos dos polí icas posibles:
• W i e h ough: odas las ope aciones de esc i u a se ealizan en memo ia
caché y en memo ia p incipal.
• W i e back: las ope aciones de esc i u a se hacen sólo en memo ia caché.
Cuando el bloque modi icado es expulsado de la caché, se ac ualiza á la
memo ia p incipal.
Pa a los casos de allo podemos usa .
• W i e alloca e: an e un allo de esc i u a en memo ia p incipal, el bloque
en cues ión es ca gado a memo ia caché.
• Non w i e alloca e: an e un allo de esc i u a en memo ia p incipal, el
bloque en cues ión no es ca gado a memo ia caché.
23
3.1 Adap ación al Swe Co e EH1
La adap ación de la caché de da os con el Swe Co e EH1 es un aspec o c í ico
de la ase de la implemen ación. Es necesa io modi ica la u a de da os del
p ocesado pa a adap a la al uso de una memo ia caché.
Es os cambios se lle a on a cabo de o ma poco in usi a, modi icando lo mínimo
posible de la u a de da os exis en e, y añadiendo la lógica necesa ia en nues os
módulos, pe mi iendo así la máxima modula idad, po si es a caché quisiese se
implemen ada en o o p ocesado . La adap ación de la u a de da os equie e los
siguien es cambios:
• La comunicación con memo ia p incipal es asumida po el con olado de
memo ia caché y ealizada median e su p opio más e del bus AXI.
• Mul iplexación de da os en unción del o igen. El o igen puede se de la
caché de da os, la DCCM o memo ia p incipal en casos especí icos como
acceso di ec o a memo ia (DMA).
Adicionalmen e pa a la in eg ación de la caché, hemos enido que modi ica el
compo amien o de las e apas de la u a de da os de memo ia.
• DC1: en el caso de que la di ección sea de la memo ia p incipal, se calcula
la di ección inal y es a se en ía la memo ia caché pa a ob ene el ag.
• DC2: como se mues a en el diag ama de la igu a 12, una ez ob enido el
ag, se compa a con el ag gene ado a pa i de la di ección. En caso de
hi , se solici a la lec u a o esc i u a del da o a la caché. En caso con a io,
se en ía la di ección al eques bu e pa a ae el bloque (pa a los s o e
según polí ica de emplazamien o) y se pa a la u a de da os has a ecibi
el da o. Además, si el bloque es á eemplazando a uno alido y es a di y,
en iamos los da os an iguos al s o e bu e .
24
Figu a 13 - Diag ama de lujo del compo amien o gene al de la caché.
• DC3: en caso de habe solici ado una lec u a de caché o memo ia p incipal,
se de uel en los da os a la u a de da os.
25
3.2 Diseño
Los aspec os de diseño que de e minan nues a caché son la a qui ec u a, los
módulos y el compo amien o de es os. A con inuación, explica emos cada uno de
ellos.
3.2.1 A qui ec u a
Como ya hemos explicado an e io men e, una pa e impo an e de nues o
p oyec o e a la pa ame ización de la caché, pa a ello se han con igu ado di ec i as
de compilación pa a ene una a qui ec u a de la memo ia a iable. Es o hace que
el usua io pueda escoge pa áme os ísicos de la misma.
• Nume o de ías: se admi en con igu aciones de 1, 2 y 4 ías.
• P o undidad: llamamos p o undidad de la caché al núme o de palab as que
con end á cada sub-banco. Se admi en 256 y 512.
Las con igu aciones an e io men e explicadas son aquellas en las cuales se
ga an iza el co ec o uncionamien o. Se pueden usa o os alo es, aunque el
compo amien o puede no se el espe ado ya que en p ocesado no ha sido p obado
con esas con igu aciones.
Po o a pa e, el amaño de bloque (16 palab a de 32 bi s y 2 bi s adicionales de
pa idad) y nume o de sub-bancos (4) son iguales a los de la caché de ins ucciones y
no pa ame izables.
Según la p o undidad escogida, el di eccionamien o de la caché cambia. En la
igu a 14 se mues a el di eccionamien o pa a p o undidad de 256.
32
La ges ión de pa adas se ealiza con dos egis os. Uno de ellos, almacena el
mo i o de la pa ada como una se ie de lags basados en la causa o causas que gene an
la pa ada (de las mencionadas an e io men e). En o o egis o se almacenan las
causas que eanudan la ejecución. Cuando los dos egis os engan el mismo alo ,
se eanuda la ejecución.
Po ejemplo: si el WDC y el RDC es án llenos, se almacena á en el egis o que
causa es a si uación. Cuando pa e de es a lleno alguno de los dos, se almacena á en
el egis o de un eeze y cuando el segundo ambién enga algún hueco lib e, se
eanuda á la ejecución.
La polí ica de eemplazo de la caché FIFO, es deci , que el p ime bloque en
en a en una línea de caché se á el p ime o en se eemplazado. Pa a implemen a
es a polí ica se u iliza un con ado , que se inc emen a al esc ibi un bloque, po línea
de caché en el que almacenamos la siguien e línea que a a se eemplazada. Es a
polí ica se u iliza en caso de ene a ias ías en la caché, ya que con emplazamien o
di ec o solo hay una ía.
3.2.3 Polí icas esc i u a
Las polí icas de esc i u a de la memo ia son con igu ables median e di ec i as de
compilación que explica emos en el apa ado de pa ame ización.
An e un allo en caché
• W i e alloca e: el bloque es ca gado en memo ia caché. El da o es esc i o
en memo ia p incipal, y se solici a al eques bu e la ca ga del bloque en
caché (con el da o ya ac ualizado).
• Non w i e alloca e: el bloque no es ca gado en memo ia caché. Se esc ibe
la palab a en memo ia p incipal di ec amen e.
An e un hi en caché
• W i e h ough: el s o e se ealiza en memo ia p incipal y caché. Se en ía
la palab a a esc ibi al s o e bu e , además de esc ibi lo en la caché.
• W i e back: en las esc i u as los da os únicamen e son ac ualizados en
caché. Cuando el bloque se eemplace, se esc ibi án la copia ac ualizada
desde la caché en memo ia p incipal. El bloque es en iado con los bi s de
di y (8 po bloque) co espondien es al s o e bu e , que se enca ga á de
esc ibi las palab as ma cadas como modi icadas en memo ia.

33
3.2.4 Manual de con igu ación
Tan o la a qui ec u a como las polí icas de esc i u a de la memo ia caché son
con igu ables po pa e del usua io, pa a ello se han de inido las di ec i as de
compilación que se mues an en la igu a 19. Se pe mi en las con igu aciones
a qui ec ónicas mencionadas en el apa ado 3.2.1 y selección de polí icas de esc i u a
de en e las explicadas en el pun o 3.2.3.
Es as di ec i as se encuen an en el a chi o
“/s c/SweRVol SoC/O he Sou ces/swe ol -
swe _de aul _con ig_0.7/con igs/snapsho s/de aul /common_de ines. h”.
Con igu ación
Pa áme os
Habili a caché
RV_DC_ENABLE debe á se de inido
Habili a w i e-back
RV_DC_WB_POLICY_ENABLE debe á se de inido
Habili a w i e- h ough
RV_DC_WB_POLICY_ENABLE no debe á se de inido
Habili a w i e-alloca e
RV_DC_WRITE_ALLOCATE_ENABLE debe á se de inido.
Habili a non-w i e-alloca e
RV_DC_WRITE_ALLOCATE_ENABLE no debe á se
de inido.
P o undidad = 256
RV_DC_NONE_MUL debe á se de inido.
P o undidad > 256
RV_DC_NONE_MUL debe á se de inido.
RV_DC_DEPTH en la línea 14 es ablece alo deseado
Núme o de ías = 1
RV_DC_DIRECT_EMPLACEMENT debe á se de inido.
Núme o de ías > 1
RV_DC_NUM_WAYS en la línea 20 es ablece alo
deseado.
Figu a 19 - Guía de con igu ación de la caché.
Pa a que cualquie cambio de los an e io men e desc i os sean e ec i os es
necesa io ecompila el p ocesado .
34
Capí ulo 4 Validación y benchma king
Valida la caché equie e ealiza las siguien es e apas: depu ación (co egi
e o es) y es ing (comp oba el uncionamien o co ec o de la caché).
Adicionalmen e ealiza emos una ase de benchma king pa a medi la mejo a de
endimien o.
4.1 Desa ollo y depu ación
La depu ación equie e una se ie de he amien as. De en e las que podíamos
escoge hemos op ado, en la medida de lo posible, po u iliza aquellas que son de
código abie o o g a ui as pa a que cualquie a que lo desee pueda eplica nues o
lujo de abajo.
• Ve ila o : u ilizado pa a gene a la aza de la simulación.
• Vscode + Pla o mIO: usado pa a la depu ación de pequeños códigos sob e
la FPGA y pa a la simulación. También usado pa a la esc i u a del código
ensamblado de los mic obenchma ks p obados.
• G kwa e: he amien a g á ica pa a la isualización de azas. Usado pa a
e el alo de señales en simulación, muy ú il pa a la co ección de e o es.
• Sigasi: opcional ya que hay mul i ud de IDEs pa a código HDL, pe o es e
nos pe mi ía e en o ma o de bloques los componen es, lo que acili ó
mucho la ase de explo ación del código.
• Vi ado: usado pa a la sín esis, implemen ación y gene ación del bi s eam
pa a la ejecución en FPGA.
Con el obje i o de encon a e o es en el uncionamien o de la memo ia caché,
empleamos códigos en ensamblado poniendo a p ueba el uso de es a en si uaciones
gene ales y en casos c í icos donde la p obabilidad de allo e a mayo . Todas las
p uebas ue on ealizadas pa a odas las con igu aciones a qui ec ónicas sopo adas
y con cada una de las polí icas de esc i u a.
35
4.2 Tes ing
A con inuación, comp oba emos si el compo amien o de la caché pa a di e en es
si uaciones median e el uso de b e es códigos en lenguaje ensamblado . Es as p uebas
se án ealizadas con di e en es polí icas de esc i u a, así como casos conc e os que
conside amos ele an e p oba . Pa a acili a la explicación, así como los códigos de
p ueba pa a di e en es casos, usa emos una caché de emplazamien o di ec o con una
p o undidad de 256.
Pa a comp oba si el uncionamien o es el espe ado pa a cada una de las p uebas,
simulamos los códigos en ensamblado sob e el p ocesado .
4.2.1 Accesos desalineados
Con el obje i o de comp oba el uncionamien o de los accesos desalineados, se
han ealizado loads a di ecciones de memo ia no alineadas a la palab a en los dos
casos siguien es:
1. Acceso a un da o desalineado cuyo ango de di ecciones es é comp endido den o
de una sola línea de sub-banco. En es e caso el uncionamien o de los accesos es
el espe ado. Rep esen ado en e de en la igu a 20.
2. Acceso a un da o desalineado cuyo ango de di ecciones es é comp endido en dos
líneas de sub-bancos dis in as. En es e caso el uncionamien o no es el espe ado
y los da os ob enidos son inco ec os. Rep esen ado en ojo en la igu a 20.
Figu a 20 - Tipos de accesos desalineados.
36
4.2.2 Implemen ación en FPGA
Después de diseña la caché, se a ó de implemen a en el SOC en la FPGA,
pe o debido a la al a de plani icación en el diseño, c eamos nue os caminos c í icos
que u ie on un impac o muy nega i o en el endimien o del p ocesado . Es e
impac o se puede ap ecia en la igu a 21.
Figu a 21 - Timing del p oyec o implemen ado.
Dado que es a iolación de iempo es ele ada, la solución equie e un ediseño
impo an e de la caché, pe o no ue posible po al a de iempo pa a lle a a cabo
los cambios eque idos pa a sol en a el p oblema.
Como solución a es e p oblema, pod íamos disminui la ecuencia de eloj, pe o
el endimien o de odo el p ocesado disminui ía de o ma impo an e, haciendo que
la implemen ación de una caché no u iese sen ido. Po o a pa e, pod íamos
segmen a la caché, es o complica ía un poco la u a de da os y con ol, pe o con un
buen diseño pe mi i ía cumpli los eque imien os de iempo.
4.2.3 W i e back
El obje i o de es a p ueba es comp oba el co ec o uncionamien o de w i e back.
Pa a ello, es necesa io gua da un bloque en la memo ia caché, modi ica lo y después
ca ga un bloque al que le co esponda el mismo conjun o y de es a mane a p o oca
la ac ualización en memo ia p incipal del bloque modi icado. En la igu a 22, se
puede e las ins ucciones en ensamblado necesa ias pa a ealiza la p ueba.
37
Figu a 22 - Código empleado pa a el ejemplo.
El compo amien o es el espe ado ya que los cambios p oducidos po el s o e de
la línea 85 se ac ualizan en memo ia p incipal cuando el bloque es sus i uido.
4.2.4 W i e h ough
En es e caso se ejecu a el mismo código de la igu a 22, así pod emos ap ecia las
di e encias del compo amien o en e w i e h ough y w i e back, además de
comp oba el uncionamien o co ec o. En es e caso las esc i u as p o ocadas po las
ins ucciones de las líneas 85 y 88, se lle an a cabo en memo ia p incipal
di ec amen e. Si los bloques implicados en la ope ación de esc i u a se encuen an
en memo ia caché, ambién se ac ualiza á el da o en ella.
El esul ado ob enido en la p ueba es el espe ado, se pudo ap ecia cómo las
esc i u as se ealizan en memo ia p incipal di ec amen e, y en memo ia caché en
caso de que el bloque implicado es é almacenado en ella.
4.2.5 W i e alloca e
Pa a pode comp oba el co ec o uncionamien o de w i e alloca e, ealizamos
dos esc i u as consecu i as a la misma di ección (como se mues a en la igu a 23).
El p ime s o e p o oca a la ca ga del bloque en memo ia caché, es o ha á que la
segunda esc i u a p o oque un acie o en caché.

38
Figu a 23 - Código empleado pa a el ejemplo.
El compo amien o obse ado en simulación es el espe ado ya que el p ime s o e
pa a la u a de da os mien as el bloque es á siendo ca gado y cuando inaliza, el
segundo s o e p o oca un acie o en memo ia caché.
4.2.6 Non w i e alloca e
En es a p ueba el código es el mismo que en la an e io ( igu a 23). En es e caso
la p ime a no p o oca la ca ga del bloque en memo ia caché, haciendo que el segundo
s o e no p o oque un acie o en caché. En ambas esc i u as, es necesa io lee de
memo ia p incipal el da o, pa a lo cual la u a de da os se pa a á 2 eces.
4.2.7 Dependencias
Las dependencias de da os no equie en un a amien o especial po pa e del
con olado de la caché, ya que la ges ión de és as se ealiza en o as e apas de la
u a de da os an e io es. En el caso de las ins ucciones de ca ga de memo ia, si el
bloque no es á en memo ia caché, debemos pa a la u a de da os has a ob ene el
da o que nos in e esa. Lo an e io men e mencionado se ha p obado con el código en
ensamblado de la igu a 24.
Inicialmen e se ca ga en el egis o 1 una di ección de memo ia, el con enido de
es a di ección es un da o que se á ca gado en la ins ucción siguien e. Una ins ucción
después de la ca ga del da o en el egis o 3, se ealiza una ope ación que iene como
ope ando es e egis o.
39
Figu a 24 - Código empleado pa a el ejemplo.
El esul ado de la suma es el espe ado, es o es debido a que la ges ión de las
dependencias de da os se ealiza co ec amen e.
4.2.8 Pa adas en la u a de da os
A pesa de que, como hemos is o en el ejemplo an e io , las dependencias de
da os sean esuel as po la p opia u a de da os, los iesgos c eados po el uso de
bu e s y solici udes p opias al bus ienen que se esuel os po el con olado de
caché. Como ya hemos explicado an e io men e, cada mo i o de pa ada iene un
nume o de iden i icado asignado que se á gua dado en el egis o de o igen de
pa ada.
A con inuación, mos a emos si uaciones donde enemos que pa a la u a de
da os po iesgos c eados po el con olado de memo ia caché.
Ins ucción en el s o e bu e .
Como se mues a en la igu a 25, pa a ealiza es a p ueba debemos ellena el
s o e bu e (WDC) con algunos da os (que an a se gua dados en memo ia). Se
hace un load a una de las di ecciones de los da os del WDC. Es o p o oca una pa ada
ya que, pa a man ene el o den de esc i u a y lec u a, el da o del WDC debe se
esc i o p ime o en memo ia. Cuando sea esc i o en memo ia, la u a de da os
con inua su lujo habi ual y el da o es ca gado desde memo ia p incipal.
40
Figu a 25 – Código empleado pa a el ejemplo.
T as simula es e código en el p osado con la caché pudimos e que el
compo amien o de es e es el espe ado y al y como se desc ibe en el pá a o an e io .
Ins ucción en el eques bu e .
De mane a simila al ejemplo an e io , y como se mues a en la igu a 26
ealizamos un load ca gando la di ección del bloque a lee de memo ia en el load
bu e (RDC). Se hace un s o e a la misma di ección que es á p o ocando la ca ga
de es e bloque, como el da o es á aún pendien e de se leído de memo ia, la u a de
da os se pa a a has a que la o alidad del bloque sea almacenado en memo ia caché
y pos e io men e pueda se modi icado po el s o e en caché (y memo ia p incipal
según polí ica).
Figu a 26 – Código empleado pa a el ejemplo.
El compo amien o del p ocesado en es e escena io es el espe ado y al y como
se explica en el pá a o an e io .
41
Acceso a un bloque con wai .
La ca ga de los bloques en memo ia caché no se ealiza de mane a inmedia a, sino
que equie en una g an can idad de ciclos, po lo que si se hace un acceso a una
di ección de un bloque mien as és e es á siendo ca gado desde memo ia p incipal,
es necesa io pa a la u a de da os has a que el bloque se encuen e en la memo ia
caché en su o alidad. Pa a ealiza es a p ueba hemos u ilizado el código en
ensamblado de la igu a 27 ya que se hacen dos accesos a memo ia consecu i os, y
el p ime o de ellos p o oca á un allo de memo ia caché y ha á que se ca gue en
caché. El segundo acceso p o oca á un acceso an es de que se comple e la ca ga del
bloque, po lo que se pa a á la u a de da os. Una ez que se eanuda la ejecución,
la ins ucción de la línea 87 p opicia á un acie o en caché.
Figu a 27 - Código empleado pa a el ejemplo.
El esul ado ob enido ue el espe ado, ya que se compo ó como se ha desc i o en
el pá a o an e io .
S o e de menos de 1 palab a
Pa a hace p uebas de s o es de menos de una palab a usa emos el código que se
mues a en la igu a 28. Ha emos que el bloque sea gua dado en memo ia caché
median e el load de la línea 86, una ez el bloque haya sido gua dado en caché
hacemos un s o e de media palab a sob e una di ección del mismo. Dada la ecnología
de nues a caché, solo podemos lee y esc ibi palab as y no by es ni medias palab as.
Po ello el s o e p o oca una pa ada de un ciclo en la u a de da os donde se lee á
la palab a donde se esc ibi á nues o da o, se combina á con él y se gua da á la
palab a comple a en memo ia caché. Finalmen e ealizamos un úl imo load pa a
comp oba que el da o ha sido modi icado co ec amen e en la caché.
48
Capí ulo 6 Discusión c í ica
En el momen o que se nos o ece la opción de in eg a una caché de da os en un
p ocesado , pensamos que se ía una a ea sencilla ya que no é amos conscien es de
las implicaciones que end ía diseña y adap a la caché en el p ocesado . Sin
emba go, a medida que a anzamos en el desa ollo de la caché, imos necesa io
p o undiza y en ende mejo la a qui ec u a del p ocesado .
Inicialmen e eníamos la posibilidad de busca y adap a una caché de código
abie o al p ocesado , en luga de diseña la noso os mismos. Op amos po el diseño
con el obje i o de ene una mayo comp ensión y con ol del uncionamien o.
Debido a es a decisión, se plan ea on nume osas di icul ades. Sin emba go, hemos
conseguido comp ende cla amen e el uncionamien o desempeñado po un módulo
de es e ipo. Además, hemos podido diseña la caché a medida, pa a que el usua io
pueda elegi la con igu ación deseada. Es o úl imo puede se de g an u ilidad en
en o nos educa i os, pa a pode obse a de manea a p ác ica el uncionamien o a
bajo ni el de una caché con di e en es con igu aciones, sa is aciendo uno de nues os
obje i os p incipales.
Du an e el desa ollo de la caché, nos su gió la opo unidad de da le un en oque
más p o esional a la caché p imando la iabilidad a las opciones de con igu ación.
Debido a los equisi os necesa ios pa a cumpli con la p opues a, desca amos la
opción ya que e a necesa io implemen a uncionalidades que, debido al diseño
ealizado, conlle a ía una ca ga de abajo no asumible eniendo en cuen a el iempo
es an e pa a la en ega del p oyec o.
Hemos ap endido que pa a un diseño ha dwa e complejo, es necesa io una
exhaus i a plani icación p e ia a la codi icación HDL. Si en nues o caso, hubiésemos
plani icado an es de codi ica el p ocesado , y de inido obje i os más p eciosos,
hubiésemos e i ado e o es concep uales g a es du an e el diseño que p o oca on
e asos impo an es.
También hemos ap endido que, en la p ác ica, un ci cui o es á o mado po un
conjun o de elemen os más ex enso de lo que hemos is o en nues a ayec o ia
uni e si a ia. Sabe cuáles de ellos son ele an es pa a nues o diseño, es una pa e
muy impo an e de la ase de explo ación. Adicionalmen e, nunca habíamos diseñado
un ci cui o, donde los equisi os de iempo del eloj pudiesen llega a se un p oblema,
haciéndonos e que exis en o os equisi os más complejos a los que no nos habíamos
en en ado has a aho a en p ác icas ealizadas.

49
Has a el momen o nunca habíamos asumido el ol de diseñado es, si no que
implemen ábamos un diseño ya exis en e sabiendo que e a co ec o. En es e
p oyec o, es a a ea la u imos que desempeña noso os. Gene ando dudas de si
cie os p oblemas, e an causados po e o es concep uales en el diseño o la
implemen ación.
En ocasiones eníamos que oma decisiones que suponían un mayo endimien o
a cambio de un mayo uso de ecu sos ha dwa e, pe o en es e aspec o nues a
expe iencia e a nula, po lo que e a complicado man ene un equilib io en e el
endimien o y cos e.
A pesa de ello es amos sa is echos de las decisiones omadas y del esul ado
ob enido.
50
Capí ulo 7 Conclusiones
RISC-V ha supues o una g an e olución en el me cado in e nacional de los
p ocesado es, dando mucha más isibilidad al open ha dwa e. Es a inicia i a,
pe mi e desa olla a las emp esas sus p opios p ocesado es en ez de paga po
p ocesado es diseñados po o as compañías.
Wes e n Digi al es á apos ando po es a inicia i a con su gama de p ocesado es
SweRV. Sin emba go, ninguno de los p ocesado es RISC-V abie os implemen a una
caché de da os. Dada la impo ancia de una caché de da os en un p ocesado , el
diseño de una es una con ibución muy impo an e pa a la comunidad open
ha dwa e.
A pesa de que no hemos cumplido la o alidad de los obje i os del p oyec o,
hemos desa ollado una buena base sob e la que cons ui una caché de da os pa a
que pueda se publicada. Además, al o ece dis in as con igu aciones de caché es
una buena he amien a pa a la comunidad docen e.
Debido a que ha sido un p oyec o muy ambicioso, el diseño ha pa ido de ce o y
han su gido di icul ades con las que no con ábamos en p ime a ins ancia, hemos
enido que ealiza a ias i e aciones pa a llega al esul ado inal.
Sin emba go, son necesa ias algunas i e aciones más pa a cumpli odos los obje i os
y consegui un esul ado más p o esional.
51
Capí ulo 8 Conclusions
RISC-V has been a g ea e olu ion in he in e na ional ma ke o p ocesso s,
gi ing much mo e p esence o open ha dwa e in his ield. This ini ia i e allows
companies o de elop hei own, ins ead o paying o p ocesso s designed by o he
companies.
Wes e n Digi al is be ing on his ini ia i e wi h i s ange o Swe p ocesso s.
Howe e , nowadays none o he open RISC-V p ocesso s implemen a da a cache.
Gi en he impo ance o a da a cache in a p ocesso , designing one is a e y
impo an con ibu ion o he open ha dwa e communi y.
Al hough we ha e no ul illed all he p ojec objec i es, we ha e de eloped a
good base o build a da a cache so i can be published. In addi ion, by o e ing
di e en cache con igu a ions, could be a good ool o he eaching communi y.
Because i has been a e y ambi ious p ojec , he design has s a ed om sc a ch
and di icul ies ha e a isen ha we did no ha e a i s , we ha e had o ca y ou
se e al i e a ions o each he inal esul .
Howe e , a ew mo e i e a ions a e necessa y o mee all ou objec i es and
achie e a mo e p o essional esul .
52
Con ibuciones
Al onso Ca ballo Boullosa
En es e p oyec o, y como se á explicado más adelan e, g an pa e del abajo ha
sido ealizado en conjun o median e euniones ya que la sepa ación en a eas y
ealización de es as cada uno po su cuen a no unciona en un p oyec o de es e es ilo.
Es o es debido a que el diseño o modi icación de un p ocesado se equie e un
conocimien o muy p o undo de odas las pa es in oluc adas, an o las añadidas (en
nues o caso la caché) como las ya exis en es. Adicionalmen e, en un ha dwa e de
es e es ilo, odas las pa es es a in e conec adas en e ellas de una mane a u o a y
siemp e a ec an al es o, aunque cie as pa es pa ezcan ela i amen e aisladas.
Es e abajo ue di idido en ases con un sis ema de abajo di e en e pa a cada
una de ellas.
La ase de in es igación consis ió, inicialmen e, en la lec u a de documen ación
o icial sob e el p ocesado , es a ue leída po ambos pa icipan es. Pos e io men e,
pues os en común los aspec os más impo an es ap endidos en una eunión.
Una ez en endida la documen ación básica del p ocesado y con un conocimien o
básico del uncionamien o de es e, comenzamos la ase de explo ación. La
o ganización en es a ase ue al e nada en e euniones donde explo ábamos el código
e in es igación indi idual sob e el código pues a en común más a de. Una ez
dedicado cie o iempo a la lec u a de código, nos dimos cuen a de que la
comp ensión median e es e mé odo e a imposible.
Como al e na i a, decidimos simula el p ocesado y il a las señales más
impo an es según su compo amien o. Pa a ello, ins alamos Ubun u 20.04 y odo el
so wa e de simulación, ap endimos a simula código median e cie os documen os
de labo a o ios p opo cionados po los u o es. Con el en o no de simulación
ins alado, ejecu amos di e en es códigos y pudimos en ende cuáles e an las señales
mas ele an es pa a la modi icación, así como su compo amien o.
Debido a la ele ada in e conexión en un p ocesado de es e es ilo, con el in de
minimiza el iempo de desa ollo y especialmen e de depu ación, solo nos dejaba
una opción en cuan o al abajo, el desa ollo conjun o del p ocesado .
Po lo an e io , la ase de desa ollo del p ocesado ue ealizada median e
euniones donde añadíamos uncionalidad a la caché y la implemen ábamos en el
p ocesado . Adicionalmen e y espec o a la depu ación e a ealizada ambién en
53
conjun o, aunque en cie as ocasiones uese ealizada po uno de los in eg an es en
caso de no dispone mucho iempo pa a euniones, como an e io men e es e
pa icipan e en la siguien e eunión esumi ía los e o es encon ados y las decisiones
de diseño omadas pa a co egi lo.
Una ez inalizada la ase de diseño, ealizamos p uebas en el p ocesado median e
la ejecución mic ocódigos en ensamblado pa a comp oba la co ección de es e en
las di e en es con igu aciones. Co egimos los e o es que su gie on median e el
mismo p ocedimien o de la ase an e io .
Con el p ocesado con la caché de da os en su o ma ya inal, ealizamos la p ueba
de endimien o que se mues a pa a e la mejo a espec o al p ocesado inicial.
Finalmen e, pa a la ase de esc i u a de es a memo ia cambiamos el mé odo de
abajo bas an e, en cuan o a o ma, así como he amien as usadas.
Respec o a las he amien as, inicialmen e es ábamos usando Google D i e pa a el
con ol de e siones, documen os e in o mación, Gi hub pa a el con ol de e siones
del código y sc ip s ealizados. Sin emba go, pa a es a úl ima ase, debido a nues os
p e ios conocimien os con es e p og ama, op amos po el uso de Wo d. Es o hizo
que, po su buena implemen ación, usásemos OneD i e pa a el almacenamien o de
documen os ele an es pa a la memo ia y Teams pa a las euniones online que aho a
se án explicadas.
La esc i u a de es e documen o ue (po o den de impo ancia) median e
euniones online, p esenciales y dis ibución de abajo. El g ueso del abajo,
especialmen e aquellas pa es más écnicas y complicadas ue on esc i as en
euniones en conjun o bien online, median e el uso de Teams y la sinc onización de
Wo d median e OneD i e, o bien p esencialmen e. Sin emba go, y en con aposición
al es o del abajo, las pa es más epe i i as y menos écnicamen e ele an es,
ue on di ididas. Finalmen e, aquellos aspec os de o ma de documen o, como los
pies de o o, índice y bibliog a ía ue on ealizados po Ch is ian, po sus
conocimien os écnicos más a anzados po el o ma o en Wo d.
Finalmen e, aunque el abajo en conjun o eduzca en pa e la elocidad de
desa ollo, pa a es e caso es una muy buena opción ya que nos pe mi e adqui i los
mismos conocimien os a los dos in eg an es del equipo. Adicionalmen e, es e es ilo
de abajo nos ha pe mi ido combina nues as o alezas en di e en es campos
haciendo posible que el abajo se adap ase a nues os al os es ánda es de calidad y
que, con los conocimien os sesgados de solo uno de noso os no pod ían habe sido
posibles.

54
Ch is ian Balbás Sánchez
Debido a la al a de conocimien o pa a abo da es e p oyec o, pa a pode empeza
a in eg a la caché de da os en el p ocesado , ue necesa io in es iga ace ca del
p ocesado . Es o conlle ó una lec u a exhaus i a de la documen ación del SweRV
Co e EH1 pa a comenza a comp ende el uncionamien o y la es uc u a del
p ocesado .
Una ez comp endido es o, lo siguien e que se hizo ue abo da la comp ensión
del código, al menos en las pa es que nos concie nen. Con el in de comp ende el
signi icado y uncionamien o de señales ue necesa io simula di e en es códigos en
ensamblado pa a e las a iaciones de las señales an e las di e en es ins ucciones.
Se lle ó a cabo la ins alación del en o no de simulación sob e Ubun u 20.04, jun o
al so wa e de simulación explicado en el apa ado 4.1. En ocasiones el p ocedimien o
pa a simula e a demasiado edioso, po lo que se lle ó a cabo la c eación de sc ip s
pa a au oma iza es e p oceso.
Cuando el código HDL del p ocesado ue comp endido más a ondo, se
es ablecie on obje i os pa a i p og esando en el desa ollo de la caché.
1. Módulo que egis e las di ecciones accedidas.
2. Módulo que egis e las di ecciones accedidas y los da os.
3. Módulo que egis e las di ecciones accedidas y los da os pa a pos e io men e
de ol e los a la u a de da os.
Es o conlle ó el diseño de los módulos, así como la depu ación pa a subsana los
p oblemas que ue on su giendo, ayudando a comp ende el lujo y uncionamien o
del p ocesado .
Pos e io men e, se decidió diseña una caché con los módulos de RAM que se
habían u ilizado en la memo ia caché de ins ucciones, así como la es uc u a base
de la a qui ec u a de la memo ia. Es o hizo ediseña la memo ia caché po comple o.
1. Sepa ación del con olado de la memo ia.
2. Diseño de ambos módulos pa a que uncionase con casos básicos de acceso a
memo ia, sin al e a el uncionamien o del p ocesado .
3. Depu ación.
El diseño de la memo ia caché ue condicionado po la mane a en la que nos
comunicamos con la memo ia p incipal. La comunicación se hizo a a és del bus
AXI, lo que equi ió un es udio p e io del uncionamien o de las ans e encias a
a és de es e BUS. Como el bus que implemen aba nues o p ocesado no sopo aba
55
la uncionalidad de bu s se decidió implemen a módulos lo más desacoplados
posible en el con olado de la memo ia, que implemen an una máquina de es ados
pa a ealiza una comunicación con memo ia cohe en e y o denada.
Una ez se consiguió un uncionamien o es able con w i e h ough y non w i e
alloca e con una caché de 4 ías y de p o undidad de 256, se decidió pa ame iza
las polí icas y la a qui ec u a. Lo cual equi ió:
1. Rediseño basado en di ec i as de compilación
2. Diseño especí ico de polí icas
3. Diseño de a qui ec u a pa ame izable
4. Tes s: p oba una se ie de con igu aciones sopo adas. Fue una a ea muy
ex ensa, ya que había bas an es combinaciones posibles y como consecuencia
de es o po enciales e o es.
5. Depu ación: co ección de e o es en odas las con igu aciones.
Con el in de ga an iza el uncionamien o del p ocesado con la memo ia caché
inco po ada, se diseña on códigos en ensamblado que ponían a p ueba el
uncionamien o de la memo ia en casos base y ex emos. Además, ambién se
diseña on códigos en ensamblado pa a pode medi la mejo a espec o al p ocesado
o iginal.
Finalmen e, se p ocedió a la edacción de la memo ia, haciendo a ias i e aciones
sob e la misma pa a consegui una es uc u a y explicación cla a sob e el abajo
que hemos lle ado a cabo. Es o conlle a una se ie de a eas, a pa e de la edacción,
como po ejemplo la oma de cap u as de pan alla pa a plasma los códigos u ilizados
y la simulación de los mismos, que se epa ió el abajo equi a i amen e.
Todo lo an e io men e mencionado, se hizo de mane a coope a i a, lo que
en iqueció cada una de las ases del p oyec o.
1. In es igación. se apo an g an can idad de da os de di e sa na u aleza, y se
ob iene una in e p e ación de los mismos más ica en de alles.
2. Diseño. El hecho de que haya dos pe sonas in oluc adas en el diseño de
uncionalidades lo en iquece, ya que su gen nue as ideas y acili a la
p e ención de p oblemas que puedan su gi .
3. Depu ación. La co ección de e o es se hace de mane a más ápida y e icien e.
56
Bibliog a ía
[1] Risc-V. Co es Risc-V. Se encuen a en: h ps:// isc .o g/exchange/co es-
socs/.
[2] Risc-V. Especi icaciones Risc-V. Se encuen a en:
h ps:// isc .o g/ echnical/speci ica ions/
[3] Imagina ion. RV pga labo a o ios. Se encuen a en:
h ps://cdn2.img ec.com/iup-downloads/IUP_INFOSHEET_RV pga_English.pd
[4] Chipsalliance. Co es-SweRV h ps://gi hub.com/chipsalliance/Co es-
SweRV/blob/mas e /docs/RISC-V_SweRV_EH1_PRM.pd
[5] ARM. Bus AXI. Se encuen a en:
h ps://de elope .a m.com/documen a ion/102202/0200/AXI-p o ocol-o e iew
[6] Da id A. Pa e son, y John L. Hennessy, 2017, Compu e O ganiza ion and
Design RISC-V Edi ion, Mo gan Kau mann.