DOC PREVIEW
Berkeley COMPSCI 150 - Lecture 17 – Framebuffers

This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Fall 2011 EECS150 Lecture 17Page 1EECS150 - Digital DesignLecture 17 – FramebuffersOctober 25, 2011Elad AlonElectrical Engineering and Computer SciencesUniversity of California, Berkeleyhttp://www-inst.eecs.berkeley.edu/~cs150Fall 2011 EECS150 Lecture 17Page 2Announcements•Midterm: Thurs. 6-8pm sharp,141 McCone• No lecture this Thurs.• Elad out of town tonight through Fri.– Available over piazza/email– GSI’s available during office hours/labsFall 2011 EECS150 Lecture 17Page 3MIPS150 Video Subsystem• Gives software ability to display information on screen.• Equivalent to standard graphics cards:• Processor can directly write the display bit map• 2D Graphics accelerationFall 2011 EECS150 Lecture 17Page 4“Framebuffer” HW/SW Interface• A range of memory addresses correspond to the display.• CPU writes (using sw instruction) pixel values to change display.• No synchronization required. Independent process reads pixels from memory and sends them to the display interface at the required rate.00xFFFFFFFFCPU address mapEx: 1024 pixels/line X 768 lines0x800000000x803FFFFCFrame bufferDisplay Origin:Increasing X values to the right. Increasing Y values down.(0,0)(1023, 767)Fall 2011 EECS150 Lecture 17Page 5Framebuffer Implementation• Framebuffer like a simple dual-ported memory. Two independent processes access framebuffer:CPU writes pixel locations. Could be in random order, e.g. drawing an object, or sequentially, e.g. clearing the screen.Video Interfacecontinuously reads pixel locations in scan-line order and sends to physical display.• How big is this memory and how do we implement it? For us:1024 x 768 pixels/frame x 24 bits/pixelFramebufferFall 2011 EECS150 Lecture 17Page 6Memory Mapped Framebuffer00xFFFFFFFFMIPS address map1024 pixels/line X 768 lines0x800000000x8023FFFFFrame bufferDisplay Origin:Increasing X values to the right. Increasing Y values down.(0,0)(1023, 767)1024 * 768 = 786,432 pixelsWe choose 24 bits/pixel{ Red[7:0] ; Green[7:0] ; Blue[7:0] }786,432 * 3 = 2,359,296 Bytes• Total memory bandwidth needed to support frame buffer?Fall 2011 EECS150 Lecture 17Page 7Frame Buffer Implementation• Which XUP memory resource to use?• Memory Capacity Summary:•LUT RAM• Block RAM•External DRAMFall 2011 EECS150 Lecture 17Page 8Framebuffer DetailsXUP DRAM memory capacity: 256 MBytes.00xFFFFFFFFMIPS address map768 lines, 1024 pixels/line0x800000000x802FFFFFFrame buffer4K4K4K4K...= 786,432 pixel locationsStarting each line on a multiple of 4K leads to independent X and Y address: Y = addr[21:12], X = addr[11:2] Y == row number, X == pixel in row1024 x 768 locationsWith Byte addressed memory, best to use 4 Bytes/pixelFall 2011 EECS150 Lecture 17Page 9Spring 2011EECS150 - Lec14-proj4Page Frame Buffer Physical InterfaceMore generally, how does software interface to I/O devices?CPUVideoInterfaceDRAM Controller / HubFPGAProcessor Side: provides a memory mapped programming interface to video display.Video Interface Block:accepts pixel values from FB, streams pixels values and control signals to physical device. DRAM “Hub”:arbitrates among multiple DRAM users.Fall 2011 EECS150 Lecture 17Page 10Physical Video InterfaceFall 2011 EECS150 Lecture 17Page 11Framebuffer Details 2009• One pixel value per memory location.Virtex-5 LX110T memory capacity: 5,328 Kbits (in block RAMs).00xFFFFFFFFMIPS address map768 lines, 1K pixels/line0x800000000x803FFFFCFrame buffer1K1K1K1K...• Note, that with only 4 bits/pixel, we could assign more than one pixel per memory location. Ruled out by us, as it complicated software. = 786,432 memory locations(5,328 X 1024 bits) / 786432 = 6.9 bits/pixel max!We choose 4 bits/pixelFall 2011 EECS150 Lecture 17Page 12Color Map4 bits per pixel, allows software to assign each screen location, one of 16 different colors. However, physical display interface uses 8 bits / pixel-color. Therefore entire pallet is 224colors.Color map is memory mapped to CPU address space, so software can set the color table. Addresses: 0x8040_0000 0x8040_003C, one 24-bit entry per memory address.R G BR G BR G BR G B...24 bits16 entriespixel value from framebufferpixel color to video interfaceColor Map converts 4 bit pixel values to 24 bit


View Full Document

Berkeley COMPSCI 150 - Lecture 17 – Framebuffers

Documents in this Course
Lab 2

Lab 2

9 pages

Debugging

Debugging

28 pages

Lab 1

Lab 1

15 pages

Memory

Memory

13 pages

Lecture 7

Lecture 7

11 pages

SPDIF

SPDIF

18 pages

Memory

Memory

27 pages

Exam III

Exam III

15 pages

Quiz

Quiz

6 pages

Problem

Problem

3 pages

Memory

Memory

26 pages

Lab 1

Lab 1

9 pages

Memory

Memory

5 pages

Load more
Download Lecture 17 – Framebuffers
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 17 – Framebuffers and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 17 – Framebuffers 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?