This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CS-350: Fundamentals of Computing Systems Page 1 of 17Lecture Notes A Bird's Eye View of System Abstractions In this chapter, we will present a bird-eyes view of computer organization in order to understand how issues of concurrency and synchronization arise in computing systems, and in order to appreciate the importance of judicious resource allocation. While doing so, we will also examine two overarching features of modern computer systems in generalnamely (1) the interplay between the subsystems responsible for data flow and those responsible for controlling the systems operation, and (2) the use of layering to hide system design and implementation complexities. Computer Hardware = Data Path + Controller If one looks at a birds-eye view of the organization of a processor, it will have two parts to it: a Data Path and a Control Path. The Data Pathconsists of the Data Registers (storage) + ALU (compute engine) + Transfer Connections (buses). ALU Buses Registers Figure 1: Data Path Constituents Azer Bestavros. All rights reserved. Reproduction or copying (electronic or otherwise) is expressly forbidden except for students enrolled in CS-350. CS-350: Fundamentals of Computing Systems Page 2 of 17Lecture Notes Data versus Control Planes A recurring theme in the design of computing systems (whether such systems are hardware systems, such as CPUs, or software systems, such as protocols for networking or database systems) is that the architecture of such systems is best described along two dimensions or planes: the data flow planeand the control flow plane. The data flow plane of system architecture concerns itself with the interconnectivity of various elements of the systems. Data (or content) can move between two elements in a system if a path exists between these elements. In a hardware setting, such a path will manifest itself as wires (e.g. the bus connecting a register to the ALU, or the network link connecting a router in the network to another). In a software setting, such a path will manifest itself as data communicated between programs (e.g. one program consuming some other programs output, giving rise to relationships between software entities known as producer/consumer, reader/writer, publisher/subscriber ...) The control flow plane of system architecture concerns itself with how the interconnections that exist between entities are used to actually result in a data transfer. It concerns itself with issues of timing, coordination, synchronization, etc. In a hardware setting, this control will manifest itself through the timing and synchronization of various switching operations (e.g. the use of multiplexers and de-multiplexers to affect various patterns of communication or computation in a CPU). In a software setting, such control will manifest itself through the timing and synchronization (a.k.a. scheduling) of data exchanges between programs or processes (e.g. the use of special protocols to regulate access to shared data). of special protocols to regulate access to shared data)....
View Full Document
- Spring '09