Computer Architecture
Computer Architecture is about designing the internal organization of a computer system to meet a given set of requirements as efficiently as possible within economic and technological limits. Simply adding more resources to a computer system does not make it any faster. Organizing them in the right way so that they can be used efficiently and in a collaborative manner is what makes a faster computer. Design alternatives appear at all levels of a computer system, from the internal processor configuration, to the integration board, to the whole system interconnection. Finding the right balance between all design options, and proposing new design alternatives is the task of the computer architect.
The Computer Architecture group deals mostly with the processing part of a system design. Our objectives are:
- To propose new processor designs that provide higher computing performance at lower energy cost. Research on processor microarchitecture techniques that efficiently exploit different levels of parallelism; either instruction level parallelism (ILP), data level parallelsim (DLP), or thread level parallelsim (TLP).
- To propose and develop novel design methodologies that enable researchers to explore the huge design sapce represented by future computer architectures. Research on processor performance prediction models and simulation methodologoes for heterogeneous on-chip multiprocessor systems.
- To propose new processor organizations that efficiently combine multiple processing untis in a single chip. Research on new application specific compute engines, the memory organization of multiprocessor chips, the communication protocols and their architecture support for the different on-chip structures.
- Architectures to exploit Thread Level Parallelism: There are many possible architectures that execute multiple threads in a single chip ranging from one processor for each thread, to all threads sharing the same processor. In any case, resources are shared among threads for better utilization. However, this means threads also compete for them. This task deals with scheduling threads and partitioning resources for optimum execution efficiency.
- Architectures to exploit Instruction Level Parallelism: Even state of the art compilers have difficulties extracting thread level parallelsim automatically. However, they are very efficient at extracting instruction level parallelism. Supescalar and out-of-order processors exploit this parallelism to increase single-thread performance. This task deals with proposing novel, more efficient, implementations of ILP processors.
- Application specific accelerators: Current high performance processor architectures have been tailored to increase performance of a subset of applications deemed representative of what user will run on them. This includes compilers, floating-point arithmetic applicaions. compression codes, simulators. There is a wide range of end-user applications that have execution characteristics that do not follow the same trends,a nd that could benefit from a similar tailor-made design. This task deals with identifications of the most important emerging applications, analysis of their execution, and custom architecture design.
- Architecture support for parallel programming models: Processor architects and programming model architects represent two largely decoupled communities. First processor architects design a product, add a series of high performance features, and leave it to the programming model to find out how to actually use them. This task deals with bridging the gap between both, and designing the processor in the opposite directions: first find out what the programming model can efficiently use, and add support fo it in the architecture.
- Design space exploration: A new architecture design involves a number of tightly interconnected elements: the processor, the compiler, the runtime system. Any change in the architecure means changing the compiler and runtime system. Furthermore, when designing a new architecture, there is a huge design space that has to be explored searching for the best options. This task is about developing new tools and methodologies that allow an efficient design space exploration, while maintining all parts of the architeture in sync with each other.
PEOPLE
- ALVAREZ MESA, MAURICIO - ASSOCIATE RESEARCHER
- CARPENTER, PAUL M - ASSOCIATE RESEARCHER
- DICKOV, BRANIMIR - RESIDENT STUDENT
- GELADO FERNANDEZ, ISAAC - SENIOR RESEARCHER
- GRASS, THOMAS - RESIDENT STUDENT
- HUSSAIN, TASSADAQ - RESIDENT STUDENT
- PALAVEDU SARAVANAN, KARTHIKEYAN - RESIDENT STUDENT
- PAVLOVIC, MILAN - RESIDENT STUDENT
- PUZOVIC, NIKOLA - SENIOR RESEARCHER
- RAJOVIC, NIKOLA - RESIDENT STUDENT
- RAMIREZ BELLIDO, ALEX - HETEROGENOUS ARCHITECTURES GROUP MANAGER
- RICO, ALEJANDRO - RESIDENT STUDENT
- SANCHEZ, FRIMAN - ASSOCIATE RESEARCHER
- SHAFIQ, MUHAMMAD - RESIDENT STUDENT




