Probabilistically time-analyzable complex processor designs

Industry developing Critical Real-Time Embedded Systems (CRTES), such as Aerospace, Space, Automotive and Railways, faces relentless demands for increased guaranteed processor performance to support new advanced functionalities without increasing the verification costs and the limited power budget. To cope with those needs, more complex processor designs are required. Unfortunately, CRTES have to go through a thorough functional and timing verification process. Functional correctness verification has to ensure that despite the presence of faults system's safety will not be compromised while timing verification focus on determining the worst-case execution time (WCET) of programs running in the processor. In CRTES it is of great importance deriving trustworthy and tight WCET estimates. Current generation CRTES based on relatively simple single-core processors are already extremely difficult to verify and with the advent of multicore and manycore platforms this problem will be exacerbated. Multicore contention in the access to shared hardware resources creates a dependence of the execution time of a task with the rest of the tasks running simultaneously and this makes problem of deriving safe WCET estimate worse. Therefore, timing analysis techniques need to include a lot of pessimism when using the advanced hardware features. Probabilistic Timing Analysis (PTA) has emerged recently as a powerful method to derive WCET estimates for critical tasks on relatively complex processors. In this thesis we propose PTA-compliant hardware solutions to enable the use of more powerful and complex multicore and manycore processor architectures in future CRTES. Hardware solutions include arbitration policies and techniques to manage shared hardware resources (i.e. shared interconnection network and L2 cache), as well as approaches to obtain trustworthy WCET estimates on top of degraded hardware. PTA implemented on top of the proposed time-randomized designs allows modeling the timing behaviour of applications running in the processor in a probabilistical manner and therefore, WCET bounds can be made tighter. Las industrias centradas en el desarrollo de Critical Real-Time Embedded Systems (CRTES) como por ejemplo la industria aeroespacial, espacial, ferroviaria o de la automoción, se enfrentan al reto que supone ofrecer aplicaciones cada vez más potentes sin incrementar los costes de verificación ni exceder las restricciones de consumo de estos sistemas. Para afrontar este reto es necesario utilizar procesadores cada vez más complejos. En el campo de los CRTES, estos procesadores tienen que cumplir ciertas restricciones funcionales y temporales que se validan mediante arduos procesos de verificación. La verificación funcional tiene como objetivo garantizar que la seguridad del sistema no se verá comprometida a pesar de potenciales fallos en el sistema mientras que la verificación de tiempo se centra en determinar el peor tiempo de ejecución (WCET, del inglés worst-case execution time) de los programas que se ejecutan en el procesador. En los CRTES resulta de vital importancia calcular el WCET de forma precisa y fiable. En la actual generación de CRTES, basada en el uso de procesadores de un solo núcleo, el proceso de verificación es complejo. El hecho de incorporar plataformas con múltiples (hasta 16) núcleos (multicore) y con muchos (más de 16) núcleos (manycore) aún añade más complejidad a este proceso de verificación. La contención al acceder a los recursos hardware compartidos en los sistemas multicore y manycore crea dependencias en los tiempos de ejecución entre las tareas que se ejecutan en un núcleo y el resto de tareas que se ejecuta simultáneamente en el sistema. Este efecto, dificulta el cálculo del WCET traduciéndose así en la obtención de WCETs muy pesimistas y poco precisos. Para mejorar este aspecto, recientemente se ha propuesto una nueva metodología llamada Análisis de Tiempo Probabilístico (PTA, del inglés Probabilistic Timing Analysis) que facilita el cálculo del WCET en tareas críticas que se ejecutan en procesadores relativamente complejos. En esta tesis proponemos soluciones hardware compatibles con la metodología de PTA con el fin de facilitar la utilización de arquitecturas multicore y manycore más potentes y complejas en el diseño de los CRTES del futuro. Estas soluciones hardware incluyen tanto políticas de arbitraje y técnicas para gestionar la contención en los recursos compartidos (p.e. red de interconexión entre los cores y la L2), así como métodos para la obtención fiable y precisa del WCET, y se basan en la implemetación de diseños hardware que introducen aleatoriedad en el comportamiento temporal de aplicaciones y por tanto son compatibles con la metodología de PTA.