Previous | Next --- Slide 40 of 63
Back to Lecture Thumbnails
Nian

Can we say that "abstraction" is usually in software-level, but "implementation" can be in both software- and hardware-level?

nickbowman

It seems to me like abstractions are in play at all levels. For example, in a lot of the diagrams we've seen we have components of the processor labeled for "instruction selection" and "fetch/decode" and those are really just abstractions for conceptualizing how components of the processor work together. Personally, I don't know anything about the hardware level implementation of how those units work, but having an understanding of the hardware abstractions and how they function at a high level helps us reason about different structures and classes of processors.

l-henken

@Nian One example of a hardware abstraction we have already seen is that of a logical core. In this case, hardware that implements physical cores exposes a set of logical cores to the OS at the software level, abstracting away the idea of N execution contexts with <N execution units.

tyler.johnson

The note about requiring hardware support to make the shared address space efficient makes me wonder at which point having multiple cores but not multiple data sources becomes a major bottleneck. For example, would a computer that has multiple SSDs (perhaps one for each core) be able to reliably increase memory bandwidth by separating program execution such that programs operating on data in different drives could be run on different cores? The fact that memory bandwidth is such a huge bottleneck in many cases makes me think that computers being able to manage many memory channels and storage devices could do as much for parallel computing as improving technology to add more cores to CPUs.

Please log in to leave a comment.