Digital Design and Comp. Arch. - Lecture 16: Superscalar Execution & Branch Prediction (Spring 2023)

preview_player
Показать описание

Lecture 16a: Dataflow & Superscalar Execution
Lecture 16b: Branch Prediction
Date: April 27, 2023

Recommended Reading:
====================
Intelligent Architectures for Intelligent Computing Systems

A Modern Primer on Processing in Memory

RowHammer: A Retrospective

RECOMMENDED LECTURE VIDEOS & PLAYLISTS:
========================================
Computer Architecture Fall 2021 Lectures Playlist:

Computer Architecture Fall 2022 Lectures Playlist:

Digital Design and Computer Architecture Spring 2022 Livestream Lectures Playlist:

Digital Design and Computer Architecture Spring 2021 Livestream Lectures Playlist:

Featured Lectures:

Interview with Professor Onur Mutlu:

The Story of RowHammer Lecture:

Accelerating Genome Analysis Lecture:

Memory-Centric Computing Systems Tutorial at IEDM 2021:

Intelligent Architectures for Intelligent Machines Lecture:

Computer Architecture Fall 2020 Lectures Playlist:

Digital Design and Computer Architecture Spring 2020 Lectures Playlist:

Public Lectures by Onur Mutlu, Playlist:

Computer Architecture at Carnegie Mellon Spring 2015 Lectures Playlist:

Rethinking Memory System Design Lecture @stanfordonline :
Рекомендации по теме
Комментарии
Автор

I have a quick question. Lets say we have instructions like:
...
bne r1 $0 loop
sw r2 0(r1)
...
Lets say we go ahead with the taken path, i.e., execute sw instruction after bne assuming branch is Not Taken. On a branch mis prediciton (bne actually turns out to be Not Taken), how do we update the memory with correct value because sw was not supposed to be executed and change the values in memory. I am asking this question with respect to both a R10K/P6 OOO core and a simple 5 stage pipeline core.

AshutoshMishra_Umich