CSS 372 Lecture 1 - PowerPoint PPT Presentation

1 / 15
About This Presentation
Title:

CSS 372 Lecture 1

Description:

Review of CSS 371: Simple Computer Architecture. Traps. Interrupts. Simple Computer. Data Paths ... x0100 x01FF Interrupt Vectors (Supports Hardware Interrupts) ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 16
Provided by: lcr5
Category:

less

Transcript and Presenter's Notes

Title: CSS 372 Lecture 1


1
CSS 372 Lecture 1
Course Overview CSS 372 Web page
Syllabus Lab Ettiquette Lab Report
Format Review of CSS 371 Simple Computer
Architecture Traps
Interrupts
2
Simple ComputerData Paths
3
Simple Input / Output
Memory Mapped I/O A section of the memory
address space is reserved for I/O Registers
rather than general memory locations. Think of
it as pseudo memory. The same instructions are
used for general programming and I/O
programming. Non-Memory Mapped I/O There is a
separate address space for I/O programming, and
an entirely separate set of I/O Instructions.
4
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 70ascii data
(Keyboard Data Register) xFE04
DSR 15Done, 14Intr enable
(Display Status Register) xFE06 DDR
70ascii data
(Display Data Register xFFFE MCR
15Run latch
(Machine Control Register)
5
Simple Traps
  • Execute TRAP vector - Operating System
    Service Routines
  • 2) Trap Vectors are at memory locations
    000000FF
  • Trap Vectors contain addresses of Trap Service
    Routines
  • (PC) is loaded into R7
  • Address of Trap Service Routine loaded into PC
  • Service Routine Program executed
  • Trap service routine program ends with an RET
  • ( (R7) loaded into PC)

6
Simple ComputerData Paths
7
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 70ascii data
(Keyboard Data Register) xFE04
DSR 15Done, 14Intr enable
(Display Status Register) xFE06 DDR
70ascii data
(Display Data Register xFFFE MCR
15Run latch
(Machine Control Register)
8
Interrupt Physical Model
  • CPU
  • Memory
  • Device

9
Interrupt Physical Model
  • CPU
  • General Purpose Registers
  • PC Storage R7
  • Stack Pointer R6
  • Program Status Word (PSW) Includes
  • State
  • Program Priority
  • Condition Codes (CC)
  • User stack Pointer Storage USP.saved
  • Supervisor Stack Pointer Storage SSP.saved
  • Hardware to communicate over the BUS
  • Memory
  • User program
  • Interrupt Service Routine
  • Operating System
  • Interrupt Vector Table
  • Includes an entry that points to the Interrupt
    Service Routine (Interrupt vector )
  • Device
  • Status/Control Register(s) Includes

10
Interrupt Sequence
  1. What does the programmer do?
  2. What does the computer do?

11
Interrupt Sequence
  • Programmer Action
  • Enable Interrupts by setting intr
    enable bit in Device Status Reg
  • 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
  • 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 Stack
  • The contents of the other registers are not
    saved. Why?
  • The CCs are cleared

12
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)

0x0000
instructions
PC
R4
global data
R6
run-time stack
R5
0xFFFF
13
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
14
Simple Activation Record Format
X0000
Function stacked stuff ..
.. Local Variables Callers Frame Pointer
(R5) Callers Return PC (R7) Function Return
Value Function Pass Value n
.. Function Pass Value 1
R6

R5
XFFFF
15
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
Write a Comment
User Comments (0)
About PowerShow.com