Datapath Sound Cards & Media Devices Driver



Datapath Vision Features

Ranging from 4K capture, to small profile cards, Datapath have a solution to meet all requirements.

Vision Features

Datapath's Vision range of capture cards provide high performance features which allow for unparalleled flexibility and use in a wide variety of applications.

Datapath Vision SC Range

Datapath VisionSC-DP2

The VisionSC-DP2 provides the ability to simultaneously capture 4K, Ultra-High Definition, video feeds each at 60 frames per second.

Datapath VisionSC-SDI4

Developed for capturing multiple High Definition SDI video signals, the VisionSC-SDI4 is the perfect solution for AV professionals looking to capture from multiple SDI sources.

Datapath VisionSC-HD4+

Datapath’s VisionSC-HD4+ audio video capture card provides an outstanding powerful solution for multiple HDMI or DVI video captures with support for HDCP.

Datapath VisionAV Range

Datapath VisionAV-SDI

The VisionAV-SDI card captures one HD channel of 3G SDI video, one HD channel of DVI video and one SD channel for composite video.

Datapath VisionAV-HD

The VisionAV-HD is a four lane PCI Express capture card with three video capture inputs - two supporting HD capture and a third supporting SD composite video.

Datapath VisionAV

The VisionAV-SDI card captures one HD channel of 3G SDI video, one HD channel of DVI video and one SD channel for composite video.

Datapath VisionHD4

The VisionHD4 is an eight lane PCI Express capture card with four independent video capture channels, supporting HD capture.

Datapath Vision Range

Datapath VisionRGB-E1S

The VisionRGB-E1S is a single input channel four lane PCI Express video capture card.

Datapath VisionRGB-E2S

The VisionRGB-E2 and VisionRGB-E2S are dual input channel four lane PCI Express video capture cards.

Datapath VisionSD4+1S

The VisionSD4+1 and SD4+1S video capture cards offer one HD and four SD video input channels.

Datapath VisionSDI2

The Datapath VisionSDI2 is a dual input channel four lane PCI Express 3G-SDI video capture card.

Datapath VisionSD8

The VisionSD8 is an eight input channel four lane PCI Express video capture card.

Datapath VisionLC Range

Datapath VisionLC-HD

The Datapath VisionLC-HD provides a single, high definition, capture channel in a PCIe low profile card

Datapath VisionLC-HD2

The Datapath VisionLC-HD2 provides a dual channel, high definition HDMI capture.

Datapath VisionLC-SDI

The Datapath VisionLC-SDI provides tri-band SDI capture.

This assignment has four problems:

You will turn in your modified hw2_answers.txt file by the deadline specified on Sakai.

Many of DataPath’s cards and services are auto-substantiated and purchases are verified at the point-of-service. This means that qualified expenses for FSAs and HSAs, and at doctors’ offices or other verified merchants, are authenticated when those items and services are purchased. Audio/Visual design and installation is our passion. From pro audio and lighting sales, to system design and integration, we do it all.

Datapath (20 points total)

In this problem we consider a potential enhancement for the LC2200-16 datapath. The “PCINC” enhancement adds a separate incrementer for the program. The original datapath and a datapath that illustrates the enhancement are shown below:

Original LC2200-16 Datapath

Datapath with the PCINC Enhancement

A. [16 points] Give the states to control this datapath in order to execute the LC2200-16 ADDI instruction without the PCINC modification. Then do the same for a datapath with the PCINC modification. Start with instruction fetch.

Use this format and only list signals that are being asserted.

State1: DrPC, LdMAR, LdA
GoTo next state <--This may be a conditional expression and may be omitted if you want to just go to the following state.

B. [2 points] What is the CPI for ADDI with and without the PCINC enhancement?

C. [2 points] Assuming that the clock speed remains the same, what is the speedup for the ADDI instructions in the new datapath? Show your work.

Problem 2: Amdahl's Law (25 points total)

Datapath sound cards & media devices drivers

A.[15 points] In the year 2020, both Intel and AMD decide to abandon their work on the x86, and instead develop processors based on the LC-2200-16 architecture. In order to build a faster processor than their competition, each manufacturer makes specific improvements to their implementation.

  • Intel's LC-2200-16 processor features an additional hardware that offers an average speedup of 1.5x on memory accesses (lw and sw operations).
  • AMD's LC-2200-16 processor features better branch prediction, which gives its processor an average speedup of 2x on beq operations.

i. Using the chart below, calculate the speedup both gcc and spice on each manufacturer's processor.
ii. Which processor will execute gcc the fastest?
iii. Which processor will execute spice the fastest?

Instruction class

LC-2200-16 examples

gcc

spice

Arithmetic

add, addi

48%

50%

Data transfer

lw, sw

33%

41%

Conditional branch

beq

17%

8%

Jump

jalr

2%

1%

Note: You do not need to understand how the enhancements work for this question. Simply use the average speedups given for each.

B.[10 points] The LC-2200-16 has no multiply instruction. Suppose we have the following two choices for performing multiplication:

Datapath
  • Emulate multiplication in software, using 20 instructions for each multiplication operation.
  • Add multiplication hardware, which can perform multiplication in a single operation.

What fraction of instructions must be multiplications in order to observe a 2X overall speedup of the hardware solution over the software emulation solution? For simplicity, assume that all LC-2200-16 instructions take the same number of clock cycles.

Hint: On this assignment and every other CS2200 homework, projects, and test, use your textbook's definition of speedup: execution time before improvement divided by execution time after improvement.

Datapath Sound Cards & Media Devices Drivers

Problem 3: Interrupt Priority (31 points)

This question asks about the effect of interrupts on the execution time of a program.

Suppose you have a computer system with multiple peripherals (DISK, SOUND, and CLOCK) and the peripherals generate interrupts at predictable rates:

Name Priority
(0 is lowest)
Arrival rateExecution time
(CPU time)
background0n.a.10 Seconds
SOUND150/Second6mS
DISK210/Second8mS
CLOCK3100/Second2mS

Datapath Sound Cards & Media Devices Driver

Assume the background task and all the interrupts initially fire at time 0 and that the interrupts then arrive periodically thereafter. E.g. the sound card interrupt arrives at time 0, 20mS, 40mS, etc.

A.[15 points] Draw a timing chart showing which task (the background task or the handler for one of the interrupts) is operating over the first 50mS of time. The chart should cover the first 50mS in 2mS intervals. E.g.:

B.[10 points] The background task requires 10 seconds of CPU time with no interrupts. However, the interrupt handlers require CPU time as well and will 'steal' away some amount of time from the background task. How many seconds will it take to run the background task with the interrupt handlers running at the given rates?

C.[6 points] Interrupts often come with a 'deadline', a specification of the maximum time from the time of the interrupt arrival to the time the handler *finishes* processing.

For each interrupt (DISK, SOUND, CLOCK), give the worst-case time to finish processing the handler.

Problem 4: Interrupts & Processes (24 points total)

Datapath Sound Cards & Media Devices driver

For this section, we will introduce 3 'new' instructions that you may find useful:

  • EI (Enable Interrupts)
  • DI (Disable Interrupts)
  • RETI (RETurn from Interrupt)

A.[2 points]

When an interrupt is used to initiate a system call what is it called?

B.[12 points]

Below are the steps a typical interrupt handler will follow (assume interrupts are disabled upon entering the interrupt handler):

  1. Save interrupted process state to stack.
  2. Execute device-specific code.
  3. Restore interrupted process state from stack.
  4. Execute RETI to return.

Sometimes, an interrupt handler will itself need to be interrupted. For this to happen, interrupts will need to be re-enabled during the execution of the handler. Identify the four steps (and where they belong in relation to the steps defined above) in order for this to occur properly.

C.[6 points]

Describe how are the processor registers are saved in stack during interrupt handling and why is it saved like that?

Datapath Sound Cards & Media Devices driver

D.[4 points]

When an interrupt handler returns, it executes a special RETI instruction. This instruction is the atomic equivalent of what two other instructions?

End of CS 2200 Homework 2