CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 –...
-
date post
21-Dec-2015 -
Category
Documents
-
view
213 -
download
1
Transcript of CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 –...
![Page 1: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/1.jpg)
CSS 372 Oct 2CSS 372 Oct 2ndnd - Lecture 2 - Lecture 2
Review of CSS 371:
Simple Computer Architecture
Chapter 3 – Connecting Computer Components with Buses
Typical Bus Structure
Bus Structures
Synchronous, Asynchronous
Typical Bus Signals
Two level, Tri-state, Wired Or
![Page 2: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/2.jpg)
Simple ComputerData Paths
![Page 3: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/3.jpg)
Simple Memory Mapped I/O
Simple Memory Layout:
x0000 – x00FF Trap vectors (Supports Software Interrupts) x0020 [x0400] GETC (Read Char from Keyboard)
x0021 [x0430] OUT (Write Character to Console)
x0022 [x0450] PUTS (Write string to Console)
x0023 [x04A0] IN (Prompt, input character from Keyboard, echo character to Console)
x0024 [x04E0] PUTSP (Write “packed” string to Console)
x0025 [xFD70] HALT (Turn off run latch in MCR)
x0100 – x01FF Interrupt Vectors (Supports Hardware Interrupts)
x0200 – x2FFF System Programs & Data (“Operating System”)
x3000 – xFDFF User Programs Area
xFE00 – xFFFF I/O Programming “Registers” (Mapped I/O Registers)
xFE00 KBSR [15 {Ready}, 14 {Intr enable}] (Keyboard Status Register)
xFE02 KBDR [7:0{ascii data}] (Keyboard Data Register)
xFE04 DSR [15{Done}, 14{Intr enable}] (Display Status Register)
xFE06 DDR [7:0{ascii data}] (Display Data Register
xFFFE MCR [15{Run latch}] (Machine Control Register)
![Page 4: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/4.jpg)
Simple Interrupts
1) Programmer Action: Enable Interrupts by setting “intr enable” bit in Device Status Reg
2) Enabling Mechanism for device: When device wants service, and its enable bit is set (The I/O device has the right to request service), and its priority is higher than the priority of the presently running program, and execution of an instruction is complete, then The processor initiates the interrupt
4) Process to service the interrupt: The Processor saves the “state” of the program (has to be able to return)
The Processor goes into Privileged Mode (PSR bit 15 cleared) Priority level is set (established by the interrupting device)The (USP), (R6) USP.saved register (UserStackPointer.saved)The (SSP.saved) R6 (SupervisorStackPointer)The (PC) and the (PSR) are PUSHED onto the Supervisor StackThe contents of the other registers are not saved. Why? The CC’s are cleared
5) The Processor Loads the PC from the Interrupt vector (vectors in 0100:01FF)
6) Interrupt Service Routine is executedEnds with an RTI
7) The stored user PSR (POP into PSR), PC (POP into PC), (R6)SSP.saved, (USP.savedR6), and the next instruction fetched
![Page 5: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/5.jpg)
Allocating Space for Variables• Global data section
– All global variables stored here(actually all static variables)
– R4 points to beginning
• Run-time stack
– Used for local variables
– R6 points to top of stack
– R5 points to top “frame” on stack
– New frame for each block(goes away when block exited)
instructions
global data
run-timestack
0x0000
0xFFFF
PC
R4
R6R5
![Page 6: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/6.jpg)
Simple Register Convention
R0 : Trap routine pass values
R1 – R3 : General purpose
R4 : Global variable stack pointer
R5 : Frame pointer (or Activation Record pointer)
R6 : Stack pointer
R7 : Return PC value
![Page 7: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/7.jpg)
Simple Activation Record Format
Function stacked stuff
……..
……..
Local Variables
Caller’s Frame Pointer (R5)
Caller’s Return PC (R7)
Function Return Value
Function Pass Value n
……..
Function Pass Value 1
R6
R5
X0000
XFFFF
![Page 8: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/8.jpg)
Simple Function Call Implementation
1. Caller pushes arguments (last to first).
2. Caller invokes subroutine (JSR).
3. Callee allocates space for return value, pushes R7 and R5.
4. Callee allocates space for local variables.
5. Callee executes function code.
6. Callee stores result into return value slot.
7. Callee pops local vars, pops R5, pops R7.
8. Callee returns (RET or JMP R7).
9. Caller loads return value and pops arguments.
10. Caller resumes computation…
![Page 9: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/9.jpg)
Chapter 3 Connecting Computer Components with Buses
Typical Bus Structure
Hierarchical Bus Structures
Synchronous, Asynchronous
Typical Bus Signals
Two level, Tri-state, Wired Or
PCI Bus Example
![Page 10: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/10.jpg)
What is a Bus?
• A communication pathway connecting two or more devices (Computers, Components, I/O, …)
• Usually broadcast
• Often grouped
– A number of channels in one bus
– e.g. 32 bit data bus is 32 separate single bit channels
• Power lines may not be shown
![Page 11: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/11.jpg)
What do Buses look like?
– Parallel lines on circuit boards– Ribbon cables– Strip connectors on mother boards– Sets of wires
![Page 12: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/12.jpg)
Communication with Memory
![Page 13: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/13.jpg)
Communication with I/O
![Page 14: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/14.jpg)
CPU Communication
![Page 15: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/15.jpg)
Data Bus (Subset of Bus)
• Carries data– Remember that there is no difference between
“data” and “instruction” at this level
• Width is a key determinant of performance– 8, 16, 32, 64 bit
![Page 16: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/16.jpg)
Address Bus (Subset of Bus)
• Identify the source or destination of data
• e.g. CPU needs to read an instruction (data) from a given location in memory
• Bus width determines maximum memory capacity of system– e.g. 8080 has 16 bit address bus giving 64k
address space
![Page 17: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/17.jpg)
Control Bus (Subset of Bus)
• Control and timing information– Memory read/write signal(s)– Interrupt request/acknowledge signal(s)– Clock signal(s)– Etc.
![Page 18: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/18.jpg)
Power/Ground (Subset of bus ?)
• Provides Power and Reference Levels for Devices
• May be several voltage levels
• Ground may be dispersed between signals
![Page 19: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/19.jpg)
Bus Interconnection Scheme
![Page 20: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/20.jpg)
Physical Realization of Bus Architecture
![Page 21: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/21.jpg)
Types of Buses
• Synchronous• Asynchronous (Hand Shaking)
• Serial (Twisted pair, Coaxial Cable, ..)• Parallel (Ribbon Cable,
![Page 22: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/22.jpg)
Types of Buses
• Dedicated– Separate data & address lines
• Multiplexed– Shared lines
– Address valid or data valid control line
– Advantage - fewer lines
– Disadvantages• More complex control
• Ultimate performance
![Page 23: CSS 372 Oct 2 nd - Lecture 2 Review of CSS 371: Simple Computer Architecture Chapter 3 – Connecting Computer Components with Buses Typical Bus Structure.](https://reader031.fdocuments.us/reader031/viewer/2022032521/56649d5f5503460f94a3f6b1/html5/thumbnails/23.jpg)
Physical Considerations for Buses• Media (voltage, light)
• Signal levels
• Noise Absorption
• Noise Generation
• Length Delay (Bandwidth) Power Terminations - Transmission Characteristics