Assignment 1: One-Level Cache Simulator Due: Wednesday 04/04/12 (before class)
|
|
- Cassandra Lester
- 5 years ago
- Views:
Transcription
1 Assignment 1: One-Level Cache Simulator Due: Wednesday 04/04/12 (before class) In this assignment, you will write a one-level cache simulator. You will take in the blocksize (in bytes), the total cache size (in bytes or kilobytes), the associativity, and write policy, using the following flags: -b <blksz> -B <cachesz> -K <cacheszkb> -W <t/b> -a <assoc> Assume that kilobytes prefixes refer to 1024 (not 1000). The W flag indicates the write policy, with t indicating write-through and no write-allocate, while b indicates write-back and write-allocate behavior. Setting <assoc> to 0 indicates fully-associative. Your GetFlags routine should ensure that the block size is a power of two (why must this be true?). Default behavior should be the equivalent of: -b 32 -K 16 -W t -a 1 For those of you who are unfamiliar with getting command-line arguments in C, here is a code fragment that would do so if our only flag was b: int main(int nargs, char **args)... for (i=1; i < nargs; i++) { if (args[i][0]!= - ) PrintUsage(args[0], i); switch(args[i][1]) { case b : if (++i == nargs) PrintUsage(args[0], i); *blksz = atoi(args[i]); break; default: PrintUsage(args[0], i); In your header, you will print this given information, plus the number of sets in the cache (conceptually, the number of rows), the number of total blocks the cache holds, the total size of the cache exluding tag storage (either in kilobytes if a multiple of 1024, else in bytes), the amount of extra storage (in bytes; rounded down if necessary) required to store the tags, the number of bits taken up by the block offset, the number of bits in the index, and the number of bits in the tag, with some other statistics (as shown in the example). You should assume a machine with a 24-bit address space. The simulator will read in a memory trace, which has the following form: <R/W>:<address> Where R indicates a read access, and W indicates a write, and <address> indicates the memory address being referenced expressed as a hex number. For each access, you will print the address (in hex), and access type, the address as a binary number (see below for help) the tag, the set number, the block offset, the way of the associativity that it was found in (Way), and the way that was updated (UWay), and the number of main memory reads and writes caused by this access. If the 1
2 block was not found in the cache, then Way will be -1, while UWay will indicate what way the memory location was stored in. If the block is found in the cache, then Way indicates what way it was found in, and a UWay of -1 indicates that we did not update the cache at all, a UWay of of -2 indicates that we only updated our LRU bits for this access, and any positive UWay indicates we actually had to store a value to that way location. You can format your output lines as: "%6x%c %26s %8d %5d %3d %4d %4d %4d %4d\n" Notice that there are 26 bits of space for for the binary address: this is because you need to insert spaces between the block offset and index bits (see printouts later for details). You will implement LRU replacement policy. The summary statistics are printed after the entire trace has been processed. They will indicate the number of hits and misses in the cache, the hit and miss rate, the number of main memory reads, and the number of main memory writes (including dirty bit evictions). In this assignment you must use and store the tag, not the full address in order to determine if an address is in the cache. Further, you are allowed to use only integer bit-level operations to compute the tag, set number, and block offset (i.e. no division, modulo or scanning the output of a string function such as Int2Bits). The TA will examine the code, and if these restrictions are not adhered to, your final grade will be 75% of your achieved score. In this assignment, you will need to implement all the functions yourself. I have provided you with a Makefile and example trace file at: ~whaley/classes/spring12/cs3853/cachesim/makefile ~whaley/classes/spring12/cs3853/cachesim/trace.in Students who are unfamiliar with bit-level operations will need to work on them. Here are two useful routines to get you started: unsigned int GetMask(int nset) /* * RETURNS: int with nset least significant bits set to 1, others to 0 */ { unsigned int mask, i; assert(nset <= 32); /* otherwise default int won t work */ /* * Following two implementations are equivalent, but loop-based one may * be easier to understand at first */ #ifdef FAST mask = (((long long)1))<<nset) - 1; #else for (mask=i=0; i < nset; i++) mask = (1<<i); #endif return(mask); char *Int2Bits(unsigned int bits) /* * RETURNS: string indicating binary bit pattern in integer bits */ 2
3 { static char cbits[nbits+1]; /* NBITS macro defined elsewhere */ int i; cbits[nbits] = \0 ; for (i=0; i < NBITS; i++) cbits[nbits-1-i] = (bits == ((1<<i) bits))? 1 : 0 ; return(cbits); This whole assignment should be written in a single file, called cachesim.c, which will be compiled using the provided Makefile on a UTSA Linux machine (eg. elk01). At the top of the program, put a comment that includes your name and the assignment number. You should the source code for cachesim.c to lul@cs.utsa.edu before class on the due date. In order to aid in debugging, and to enable you to match my output exactly, you can run my executable from any UTSA Linux machine: ~whaley/classes/spring12/cs3853/cachesim/xcachesim Your output should match mine exactly. For debugging, you have the examples worked in class, as well as the cases given here, but you should also make your own input files, and run tests with varying inputs. To help you with generating input files, I have provided a program that simulates addresses like they would come from array accesses in a loop. For flags, it takes the number of iteration of the loop (-N), the bytesize of the elements of the array (-S), and the number of arrays to simulate (-n). Addresses and accesses are then randomly generated, so if you want different results, you should vary the seed using the -s flag. You can also use the simulator to generate particular access starting at given addresses using the -a flag, instead of using the random model. The -a expects an argument saying how many arrays to simulate, and then for each array it takes an argument whether the array is read or write, and what address it should start at. Therefore -a 2 R0ac WF8 -S 1 simulates two character arrays in a loop, where the array beginning at 0xac is read, and the array beginning at 0xF8 is written. Note that beginning addresses will be aligned to the element size. If you want to test particular attributes (write-back eviction, etc), you usually need to plan the file, but for large testing, generating a bunch of lines is handy. You can also mix generated traces with hand-tuned ones, for targeted and widespread tests. This program is available ~whaley/classes/spring12/cs3853/cachesim/xarraygen The provided Makefile also has a target set up to allow you to automatically compare your output to mine using the unix tool diff. Assuming your memory trace is stored in the file mytrace.in, and that you want to simulate a direct-mapped cache with a cache line size of 8 bytes and and a total size of 4 kilobytes you would get the following: elk01>make diff trace=mytrace.in conf="-k 4 -a 1 -b 8" rm -f stud.out prof.out./xcachesim -K 4 -a 1 -b 8 < mytrace.in > stud.out /home/whaley/classes/spring12/cs3853/cachesim/xcachesim -K 4 -a 1 -b 8 < mytrace.in > prof.out diff stud.out prof.out What we would hope to see is that the diff command shows no output at all, which means that your simulator produces the same answer as mine. If the above invocation shows difference (even if merely in spacing), then you need to debug until you find the problem (note that after each diff invocation, the file stud.out will contain the complete output from your simulator, and prof.out will contain the complete output from my simulator). Usually, the problem will be in your code, 3
4 but the first student to discover a particular error in my simulator output will receive extra credit on the assignment. Using this framework, you can build a variety of test tracefiles, and whenever you make a change, quickly retest all the inputs. The tracefile generator can be used for some heavy automated testing, but you should also construct cases that will do particular things (eg., force an eviction, or use all ways in a set, or provide certain access based on LRU, etc). Remember that you need to test with varying arguments using the conf macro as well. I recommend you tackle this problem in the following way, testing at each step against the provided executable using the appropriate input: 1. Compute and print header info, and make it match mine exactly. 2. Get your routine to correctly compute tag, set, and block offset. 3. Add 1-way associative simulator. Treat all accesses as reads. As long as you create read-only tracefiles, you can get your output to exactly match mine. 4. Add support for write-through and write back handling of writes. 5. Add counters to allow for summary info, and make sure it matches mine exactly. 6. Add support for N 1 associativity, including LRU replacement and the fact that N = 0 really means fully associative. Collaboration: As I have given you access to my executable for testing, and have discussed the general implementation strategy, students should not collaborate in any way on this assignment. If you need debugging help, ask the TA during the recitation (preferred), or a fellow student not enrolled in this class. Do not consult with anyone on detailed implementation issues. 4
5 Example runs: >cat trace.in R:c0e7 W:376 R:c0ef W:37e R:c0f7 W:386 R:c0ff W:38e R:c107 W:396 R:c10f W:39e R:c117 W:3a6 R:c11f W:3ae >./xcachesim < trace.in 16KB 1-way associative cache: Block size = 32 bytes Number of [sets,blocks] = [512,512] Extra space for tag storage = 640 bytes ( 3.91%) Bits for [tag,index,offset] = [10, 9, 5] = 24 Write policy = Write-through Hex Binary Address Set Blk Memory Address (tag/index/offset) Tag Index off Way UWay Read Writ ======= ========================== ======== ===== === ==== ==== ==== ==== c0e7r W c0efr eW c0f7r W c0ffr eW c107r W c10fr eW c117r a6W c11fr aeW nref=16, nread=8, nwrite=8 hits = 6, hit rate = 0.38 misses = 10, miss rate = 0.62 main memory reads=2, main memory writes=8 5
6 >./xcachesim -W b < trace.in 16KB 1-way associative cache: Block size = 32 bytes Number of [sets,blocks] = [512,512] Extra space for tag storage = 640 bytes ( 3.91%) Bits for [tag,index,offset] = [10, 9, 5] = 24 Write policy = Write-back Hex Binary Address Set Blk Memory Address (tag/index/offset) Tag Index off Way UWay Read Writ ======= ========================== ======== ===== === ==== ==== ==== ==== c0e7r W c0efr eW c0f7r W c0ffr eW c107r W c10fr eW c117r a6W c11fr aeW nref=16, nread=8, nwrite=8 hits = 11, hit rate = 0.69 misses = 5, miss rate = 0.31 main memory reads=5, main memory writes=0 6
7 >cat traceevict.in W:10 W:810 W:1800 R:14 W:2000 W:2800 W:3000 >./xcachesim -W b -a 4 -b 32 -B 2048 < traceevict.in 2KB 4-way associative cache: Block size = 32 bytes Number of [sets,blocks] = [16,64] Extra space for tag storage = 120 bytes ( 5.86%) Bits for [tag,index,offset] = [15, 4, 5] = 24 Write policy = Write-back Hex Binary Address Set Blk Memory Address (tag/index/offset) Tag Index off Way UWay Read Writ ======= ========================== ======== ===== === ==== ==== ==== ==== 10W W W R W W W nref=7, nread=1, nwrite=6 hits = 1, hit rate = 0.14 misses = 6, miss rate = 0.86 main memory reads=6, main memory writes=2 7
Carnegie Mellon. Cache Lab. Recitation 7: Oct 11 th, 2016
1 Cache Lab Recitation 7: Oct 11 th, 2016 2 Outline Memory organization Caching Different types of locality Cache organization Cache lab Part (a) Building Cache Simulator Part (b) Efficient Matrix Transpose
More informationCSC/ECE 506: Computer Architecture and Multiprocessing Program 3: Simulating DSM Coherence Due: Tuesday, Nov 22, 2016
CSC/ECE 506: Computer Architecture and Multiprocessing Program 3: Simulating DSM Coherence Due: Tuesday, Nov 22, 2016 1. Overall Problem Description In this project, you will add new features to a trace-driven
More informationCOMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager
COMP 3500 Introduction to Operating Systems Project 5 Virtual Memory Manager Points Possible: 100 Submission via Canvas No collaboration among groups. Students in one group should NOT share any project
More informationIt is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such as GitHub.
p4: Cache Simulator 1. Logistics 1. This project must be done individually. It is academic misconduct to share your work with others in any form including posting it on publicly accessible web sites, such
More informationCSC/ECE 506: Architecture of Parallel Computers Program 2: Bus-Based Cache Coherence Protocols Due: Wednesday, October 25, 2017
CSC/ECE 506: Architecture of Parallel Computers Program 2: Bus-Based Cache Coherence Protocols Due: Wednesday, October 25, 2017 1. Overall Problem Description In this project, you will add new features
More informationSecond Midterm Exam March 21, 2017 CS162 Operating Systems
University of California, Berkeley College of Engineering Computer Science Division EECS Spring 2017 Ion Stoica Second Midterm Exam March 21, 2017 CS162 Operating Systems Your Name: SID AND 162 Login:
More informationDistributed: Monday, Nov. 30, Due: Monday, Dec. 7 at midnight
cs281: Introduction to Computer Systems Project Lab: The Cachelab Simulating a Cache Controler Distributed: Monday, Nov. 30, Due: Monday, Dec. 7 at midnight Introduction This assignment will help you understand
More informationFigure 1: Organisation for 128KB Direct Mapped Cache with 16-word Block Size and Word Addressable
Tutorial 12: Cache Problem 1: Direct Mapped Cache Consider a 128KB of data in a direct-mapped cache with 16 word blocks. Determine the size of the tag, index and offset fields if a 32-bit architecture
More informationCS 433 Homework 5. Assigned on 11/7/2017 Due in class on 11/30/2017
CS 433 Homework 5 Assigned on 11/7/2017 Due in class on 11/30/2017 Instructions: 1. Please write your name and NetID clearly on the first page. 2. Refer to the course fact sheet for policies on collaboration.
More informationPart I: Pen & Paper Exercises, Cache
Fall Term 2016 SYSTEMS PROGRAMMING AND COMPUTER ARCHITECTURE Assignment 11: Caches & Virtual Memory Assigned on: 8th Dec 2016 Due by: 15th Dec 2016 Part I: Pen & Paper Exercises, Cache Question 1 The following
More informationLab 03 - x86-64: atoi
CSCI0330 Intro Computer Systems Doeppner Lab 03 - x86-64: atoi Due: October 1, 2017 at 4pm 1 Introduction 1 2 Assignment 1 2.1 Algorithm 2 3 Assembling and Testing 3 3.1 A Text Editor, Makefile, and gdb
More informationYour submitted proj3.c must compile and run on linprog as in the following example:
CDA3101 Project 3: Cache Simulator Due 8/3 I. Purpose The purpose of this project is to exercise your understanding of caches of various sizes and configurations, as well as the write policies of write-through
More informationCS 385 Operating Systems Fall 2011 Homework Assignment 4 Simulation of a Memory Paging System
CS 385 Operating Systems Fall 2011 Homework Assignment 4 Simulation of a Memory Paging System Due: Tuesday November 15th. Electronic copy due at 2:30, optional paper copy at the beginning of class. Overall
More informationUW CSE 351, Winter 2013 Final Exam
Full Name: Student ID #: UW CSE 351, Winter 2013 Final Exam March 20, 2013 2:30pm - 4:20pm Instructions: Write your full name and UW student ID number on the front of the exam. When the exam begins, make
More informationCS 5513 Entry Quiz. Systems Programming (CS2213/CS3423))
Name (please print): CS 5513 Entry Quiz Systems Programming (CS2213/CS3423)) 1. What is a compiler? In addition to the definition, give examples of compilers you have used. A compiler is a program that
More informationCache Lab Implementation and Blocking
Cache Lab Implementation and Blocking Lou Clark February 24 th, 2014 1 Welcome to the World of Pointers! 2 Class Schedule Cache Lab Due Thursday. Start soon if you haven t yet! Exam Soon! Start doing practice
More informationComputer Architecture Assignment 4 - Cache Simulator
Computer Architecture Assignment 4 - Cache Simulator Instructor : Abhishek Bhattacharjee Due : April 15, 11:55 PM 1 Overview The goal of this assignment is to help you understand caches better. You are
More informationCSE 351, Spring 2010 Lab 7: Writing a Dynamic Storage Allocator Due: Thursday May 27, 11:59PM
CSE 351, Spring 2010 Lab 7: Writing a Dynamic Storage Allocator Due: Thursday May 27, 11:59PM 1 Instructions In this lab you will be writing a dynamic storage allocator for C programs, i.e., your own version
More informationECEC 355: Cache Design
ECEC 355: Cache Design November 28, 2007 Terminology Let us first define some general terms applicable to caches. Cache block or line. The minimum unit of information (in bytes) that can be either present
More information1. Overview This project will help you understand address spaces and virtual memory management.
Project 2--Memory Worth: 12 points Assigned: Due: 1. Overview This project will help you understand address spaces and virtual memory management. In this project, you will implement an external pager,
More informationYour submitted proj3.c must compile and run on linprog as in the following example:
CDA3101 Project 3: Cache Simulator Due 12/7 I. Purpose The purpose of this project is to exercise your understanding of caches of various sizes and configurations, as well as the write policies of write-through
More informationexercise 4 byte blocks, 4 sets index valid tag value 00
Caching (part 2) 1 exercise 3 address (hex) result 00000000 (00) 00000001 (01) 01100011 (63) 01100001 (61) 01100010 (62) 00000000 (00) 01100100 (64) 4 byte blocks, 4 sets index valid tag value 00 01 10
More informationCSCI 356 Spring 2018 Project 5: Understanding Cache Memories Due: Thursday, April 5, 11:59PM
CSCI 356 Spring 2018 Project 5: Understanding Cache Memories Due: Thursday, April 5, 11:59PM This lab will help you understand the impact that cache memories can have on the performance of your C programs.
More informationLab 1: Dynamic Memory: Heap Manager
Lab 1: Dynamic Memory: Heap Manager Introduction to Systems, Duke University 1 Introduction For this lab you implement a basic heap manager. The standard C runtime library provides a standard heap manager
More informationVirtual Memory 1. Virtual Memory
Virtual Memory 1 Virtual Memory key concepts virtual memory, physical memory, address translation, MMU, TLB, relocation, paging, segmentation, executable file, swapping, page fault, locality, page replacement
More informationVirtual Memory 1. Virtual Memory
Virtual Memory 1 Virtual Memory key concepts virtual memory, physical memory, address translation, MMU, TLB, relocation, paging, segmentation, executable file, swapping, page fault, locality, page replacement
More informationRecitation 7 Caches and Blocking. 9 October 2017
15-213 Recitation 7 Caches and Blocking 9 October 2017 Agenda Reminders Revisiting Cache Lab Caching Review Blocking to reduce cache misses Cache alignment Reminders Cache Lab is due Thursday! Exam1 is
More informationCS 433 Homework 4. Assigned on 10/17/2017 Due in class on 11/7/ Please write your name and NetID clearly on the first page.
CS 433 Homework 4 Assigned on 10/17/2017 Due in class on 11/7/2017 Instructions: 1. Please write your name and NetID clearly on the first page. 2. Refer to the course fact sheet for policies on collaboration.
More informationCache and Virtual Memory Simulations
Cache and Virtual Memory Simulations Does it really matter if you pull a USB out before it safely ejects? Data structure: Cache struct Cache { }; Set *sets; int set_count; int line_count; int block_size;
More informationMalloc Lab & Midterm Solutions. Recitation 11: Tuesday: 11/08/2016
Malloc Lab & Midterm Solutions Recitation 11: Tuesday: 11/08/2016 Malloc 2 Important Notes about Malloc Lab Malloc lab has been updated from previous years Supports a full 64 bit address space rather than
More informationCSE351 Spring 2010 Final Exam (9 June 2010)
CSE351 Spring 2010 Final Exam (9 June 2010) Please read through the entire examination first! We designed this exam so that it can be completed in 100 minutes and, hopefully, this estimate will prove to
More informationCS 326 Operating Systems C Programming. Greg Benson Department of Computer Science University of San Francisco
CS 326 Operating Systems C Programming Greg Benson Department of Computer Science University of San Francisco Why C? Fast (good optimizing compilers) Not too high-level (Java, Python, Lisp) Not too low-level
More informationMore on C programming
Applied mechatronics More on C programming Sven Gestegård Robertz sven.robertz@cs.lth.se Department of Computer Science, Lund University 2017 Outline 1 Pointers and structs 2 On number representation Hexadecimal
More informationComputer Systems Principles Cache Simulator
Computer Systems Principles Cache Simulator Contents Cache Simulator 1 Overview...................................... 1 Source Files and Compilation........................... 2 Description.....................................
More informationECE 206, Fall 2001: Lab 3
ECE 206, : Lab 3 Data Movement Instructions Learning Objectives This lab will give you practice with a number of LC-2 programming constructs. In particular you will cover the following topics: - Load/store
More informationMCS-284, Fall 2018 Cache Lab: Understanding Cache Memories Assigned: Friday, 11/30 Due: Friday, 12/14, by midnight (via Moodle)
MCS-284, Fall 2018 Cache Lab: Understanding Cache Memories Assigned: Friday, 11/30 Due: Friday, 12/14, by midnight (via Moodle) 1 Logistics This is an individual project. All hand-ins are electronic via
More informationECE 463/521: Fall 2002 Project #1: Data-Cache System Design Due: Monday, Sept. 30, 11:00 PM
ECE 463/521: Fall 2002 Project #1: Data-Cache System Design Due: Monday, Sept. 30, 11:00 PM Project rules 1. All students are encouraged to work in teams of two, using pair programming. Pair programming
More informationMemory Hierarchy. Mehran Rezaei
Memory Hierarchy Mehran Rezaei What types of memory do we have? Registers Cache (Static RAM) Main Memory (Dynamic RAM) Disk (Magnetic Disk) Option : Build It Out of Fast SRAM About 5- ns access Decoders
More informationECE331 Homework 4. Due Monday, August 13, 2018 (via Moodle)
ECE331 Homework 4 Due Monday, August 13, 2018 (via Moodle) 1. Below is a list of 32-bit memory address references, given as hexadecimal byte addresses. The memory accesses are all reads and they occur
More informationCS201: Lab #4 Writing a Dynamic Storage Allocator
CS201: Lab #4 Writing a Dynamic Storage Allocator In this lab you will write a dynamic storage allocator for C programs, i.e., your own version of the malloc, free and realloc routines. You are encouraged
More informationRecitation 2/18/2012
15-213 Recitation 2/18/2012 Announcements Buflab due tomorrow Cachelab out tomorrow Any questions? Outline Cachelab preview Useful C functions for cachelab Cachelab Part 1: you have to create a cache simulator
More informationCSE351 Spring 2018, Final Exam June 6, 2018
CSE351 Spring 2018, Final Exam June 6, 2018 Please do not turn the page until 2:30. Last Name: First Name: Student ID Number: Name of person to your left: Name of person to your right: Signature indicating:
More informationStudent Name: University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science
University of California at Berkeley College of Engineering Department of Electrical Engineering and Computer Science CS 162 Spring 2011 I. Stoica FIRST MIDTERM EXAMINATION Wednesday, March 9, 2011 INSTRUCTIONS
More information- b: size of block in bytes. - s: number of sets in the cache (or total number of sets between split caches). - n: associativity of cache.
CDA3101 Project 3: Cache Simulator (Graduate Version) Due 8/1 I. Purpose The purpose of this project is to exercise your understanding of caches of various sizes and configurations, as well as the write
More informationΗΥ345 Operating Systems. Recitation 2 Memory Management - Solutions -
ΗΥ345 Operating Systems Recitation 2 Memory Management - Solutions - Problem 7 Consider the following C program: int X[N]; int step = M; //M is some predefined constant for (int i = 0; i < N; i += step)
More informationAdvanced Assembly, Branching, and Monitor Utilities
2 Advanced Assembly, Branching, and Monitor Utilities 2.1 Objectives: There are several different ways for an instruction to form effective addresses to acquire data, called addressing modes. One of these
More informationBasic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island
Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Data Types Basic Types Enumerated types The type void Derived types
More informationProblem 3. (12 points):
Problem 3. (12 points): This problem tests your understanding of basic cache operations. Harry Q. Bovik has written the mother of all game-of-life programs. The Game-of-life is a computer game that was
More informationECE 463/521: Spring 2005 Project 1: Data-Cache System Design Due: Wednesday, February 23, 2005, 11:00 PM
ECE 463/521: Spring 2005 Project 1: Data-Cache System Design Due: Wednesday, February 23, 2005, 11:00 PM Project rules 1. All students are encouraged to work in teams of two, using pair programming. Pair
More information3) Cache, money. Dollar bills, y all. (24 min, 15 pts)
Login: cs61c- Answers 3) Cache, money. Dollar bills, y all. (24 min, 15 pts) Suppose we have a standard 32-bit byte-addressed MIPS machine, a single direct-mapped 32KiB cache, a write-through policy, and
More information1 Do not confuse the MPU with the Nios II memory management unit (MMU). The MPU does not provide memory mapping or management.
Nios II MPU Usage March 2010 AN-540-1.0 Introduction This application note covers the basic features of the Nios II processor s optional memory protection unit (MPU), describing how to use it without the
More informationVirtual Memory Overview
Virtual Memory Overview Virtual address (VA): What your program uses Virtual Page Number Page Offset Physical address (PA): What actually determines where in memory to go Physical Page Number Page Offset
More informationUsing the KD30 Debugger
ELEC3730 Embedded Systems Tutorial 3 Using the KD30 Debugger 1 Introduction Overview The KD30 debugger is a powerful software tool that can greatly reduce the time it takes to develop complex programs
More informationProgramming Assignment 3 Due Monday, March 24 (Note the change in the due date)
Department of Computer Science Parallel and Distributed Computing Programming Assignment 3 Due Monday, March 24 (Note the change in the due date) For programming assignment 3 you should write a C program
More informationProgramming for Engineers Iteration
Programming for Engineers Iteration ICEN 200 Spring 2018 Prof. Dola Saha 1 Data type conversions Grade average example,-./0 class average = 23450-67 893/0298 Grade and number of students can be integers
More informationassociativity terminology
Caching 1 2 associativity terminology direct-mapped one block per set E-way set associative E blocks per set E ways in the cache fully associative one set total (everything in one set) 3 Tag-Index-Offset
More informationCS152 Computer Architecture and Engineering CS252 Graduate Computer Architecture Spring Caches and the Memory Hierarchy
CS152 Computer Architecture and Engineering CS252 Graduate Computer Architecture Spring 2019 Caches and the Memory Hierarchy Assigned February 13 Problem Set #2 Due Wed, February 27 http://inst.eecs.berkeley.edu/~cs152/sp19
More informationOPERATING SYSTEMS ASSIGNMENT 3 MEMORY MANAGEMENT
OPERATING SYSTEMS ASSIGNMENT 3 MEMORY MANAGEMENT Introduction Memory management and memory abstraction is one of the most important features of any operating system. In this assignment we will examine
More informationAssignment 6: The Power of Caches
Assignment 6: The Power of Caches Due by: April 20, 2018 before 10:00 pm Collaboration: Individuals or Registered Pairs (see Piazza). It is mandatory for every student to register on Piazza. Grading: Packaging
More informationEECS 470 Final Exam Fall 2015
EECS 470 Final Exam Fall 2015 Name: unique name: Sign the honor code: I have neither given nor received aid on this exam nor observed anyone else doing so. Scores: Page # Points 2 /17 3 /11 4 /13 5 /10
More informationCache memories are small, fast SRAM-based memories managed automatically in hardware. Hold frequently accessed blocks of main memory
Cache Memories Cache memories are small, fast SRAM-based memories managed automatically in hardware. Hold frequently accessed blocks of main memory CPU looks first for data in caches (e.g., L1, L2, and
More informationKey Point. What are Cache lines
Caching 1 Key Point What are Cache lines Tags Index offset How do we find data in the cache? How do we tell if it s the right data? What decisions do we need to make in designing a cache? What are possible
More information13-1 Memory and Caches
13-1 Memory and Caches 13-1 See also cache study guide. Contents Supplement to material in section 5.2. Includes notation presented in class. 13-1 EE 4720 Lecture Transparency. Formatted 13:15, 9 December
More informationProgramming Standards: You must conform to good programming/documentation standards. Some specifics:
CS3114 (Spring 2011) PROGRAMMING ASSIGNMENT #3 Due Thursday, April 7 @ 11:00 PM for 100 points Early bonus date: Wednesday, April 6 @ 11:00 PM for a 10 point bonus Initial Schedule due Thursday, March
More informationSpring 2016, Malloc Lab: Writing Dynamic Memory Allocator
1. Introduction Spring 2016, Malloc Lab: Writing Dynamic Memory Allocator Assigned: Mar. 03 Due: Mar. 17, 15:59 In this lab you will be writing a dynamic memory allocator for C programs, i.e., your own
More informationSystem Programming And C Language
System Programming And C Language Prof. Jin-soo Kim. (jinsookim@skku.edu) Pintos TA Jin-yeong, Bak. (dongdm@gmail.com) Kyung-min, Go. (gkm2164@gmail.com) 2010.09.28 1 Contents Important thing in system
More informationPointer Casts and Data Accesses
C Programming Pointer Casts and Data Accesses For this assignment, you will implement a C function similar to printf(). While implementing the function you will encounter pointers, strings, and bit-wise
More informationReview of Scientific Programming in C and Fortran. Michael McLennan Software Architect HUBzero Platform for Scientific Collaboration
Review of Scientific Programming in C and Fortran Michael McLennan Software Architect HUBzero Platform for Scientific Collaboration Monte Carlo Simulator Simulate by randomly generating thousands of tracks?
More informationcs3157: another C lecture (mon-21-feb-2005) C pre-processor (3).
cs3157: another C lecture (mon-21-feb-2005) C pre-processor (1). today: C pre-processor command-line arguments more on data types and operators: booleans in C logical and bitwise operators type conversion
More informationCaches and Memory Hierarchy: Review. UCSB CS240A, Fall 2017
Caches and Memory Hierarchy: Review UCSB CS24A, Fall 27 Motivation Most applications in a single processor runs at only - 2% of the processor peak Most of the single processor performance loss is in the
More informationLAB A Translating Data to Binary
LAB A Translating Data to Binary Create a directory for this lab and perform in it the following groups of tasks: LabA1.java 1. Write the Java app LabA1 that takes an int via a command-line argument args[0]
More informationECE454, Fall 2014 Homework3: Dynamic Memory Allocation Assigned: Oct 9th, Due: Nov 6th, 11:59PM
ECE454, Fall 2014 Homework3: Dynamic Memory Allocation Assigned: Oct 9th, Due: Nov 6th, 11:59PM The TA for this assignment is Xu Zhao (nuk.zhao@mail.utoronto.ca). 1 Introduction OptsRus is doing really
More informationExercise Session 2 Systems Programming and Computer Architecture
Systems Group Department of Computer Science ETH Zürich Exercise Session 2 Systems Programming and Computer Architecture Herbstsemester 216 Agenda Linux vs. Windows Working with SVN Exercise 1: bitcount()
More informationPRINCIPLES OF OPERATING SYSTEMS
PRINCIPLES OF OPERATING SYSTEMS Tutorial-1&2: C Review CPSC 457, Spring 2015 May 20-21, 2015 Department of Computer Science, University of Calgary Connecting to your VM Open a terminal (in your linux machine)
More informationChapter 6 Caches. Computer System. Alpha Chip Photo. Topics. Memory Hierarchy Locality of Reference SRAM Caches Direct Mapped Associative
Chapter 6 s Topics Memory Hierarchy Locality of Reference SRAM s Direct Mapped Associative Computer System Processor interrupt On-chip cache s s Memory-I/O bus bus Net cache Row cache Disk cache Memory
More informationOperating Systems. IV. Memory Management
Operating Systems IV. Memory Management Ludovic Apvrille ludovic.apvrille@telecom-paristech.fr Eurecom, office 470 http://soc.eurecom.fr/os/ @OS Eurecom Outline Basics of Memory Management Hardware Architecture
More information6.Porting Code to N32 and 64-Bit Silicon Graphics Systems
Chapter 6 6.Porting Code to N32 and 64-Bit Silicon Graphics Systems This section explains the levels of compatibility between the new 32-bit compilation mode (n32), the old 32-bit mode, and 64-bit programs.
More informationCMU : Advanced Computer Architecture Handout 5: Cache Prefetching Competition ** Due 10/11/2005 **
1. Introduction CMU 18-741: Advanced Computer Architecture Handout 5: Cache Prefetching Competition ** Due 10/11/2005 ** Architectural innovations along with accelerating processor speeds have led to a
More informationCaches and Memory Hierarchy: Review. UCSB CS240A, Winter 2016
Caches and Memory Hierarchy: Review UCSB CS240A, Winter 2016 1 Motivation Most applications in a single processor runs at only 10-20% of the processor peak Most of the single processor performance loss
More informationCpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes
CpSc 1011 Lab 5 Conditional Statements, Loops, ASCII code, and Redirecting Input Characters and Hurricanes Overview For this lab, you will use: one or more of the conditional statements explained below
More informationTo obtain the current global trace mask, call meitraceget(...). To modify the global trace mask, call meitraceset(...).
Trace Objects Trace Objects Introduction Use the Trace module to selectively produce trace output on a global and/or per-object basis for your application. You can specify the types of trace output when
More informationCSC258: Computer Organization. Memory Systems
CSC258: Computer Organization Memory Systems 1 Summer Independent Studies I m looking for a few students who will be working on campus this summer. In addition to the paid positions posted earlier, I have
More informationFig 7.30 The Cache Mapping Function. Memory Fields and Address Translation
7-47 Chapter 7 Memory System Design Fig 7. The Mapping Function Example: KB MB CPU Word Block Main Address Mapping function The cache mapping function is responsible for all cache operations: Placement
More informationCS 351 Exam 3, Fall 2011
CS 351 Exam 3, Fall 2011 Your name: Rules You may use one handwritten 8.5 x 11 cheat sheet (front and back). This is the only resource you may consult during this exam. Include explanations and comments
More informationMemory: Paging System
Memory: Paging System Instructor: Hengming Zou, Ph.D. In Pursuit of Absolute Simplicity 求于至简, 归于永恒 Content Paging Page table Multi-level translation Page replacement 2 Paging Allocate physical memory in
More informationMachine Problem 1: A Simple Memory Allocator. 100 points Due date: To Be Announced
Machine Problem 1: A Simple Memory Allocator Introduction 100 points Due date: To Be Announced In this machine problem, you are to develop a simple memory allocator that implements the functions my malloc()
More informationEE 472 Embedded Systems. Name solutions. Instructions:
Name solutions Instructions: Write your name and student id on every page. You may not consult any other materials or anyone in the class. If you are unsure of what a question is asking, write your assumptions
More informationCS24: INTRODUCTION TO COMPUTING SYSTEMS. Spring 2014 Lecture 14
CS24: INTRODUCTION TO COMPUTING SYSTEMS Spring 2014 Lecture 14 LAST TIME! Examined several memory technologies: SRAM volatile memory cells built from transistors! Fast to use, larger memory cells (6+ transistors
More information5DV118 Computer Organization and Architecture Umeå University Department of Computing Science Stephen J. Hegner
5DV8 Computer Organization and Architecture Umeå University Department of Computing Science Stephen J. Hegner Topic 5: The Memory Hierarchy Part B: Address Translation These slides are mostly taken verbatim,
More informationECE Lab 8. Logic Design for a Direct-Mapped Cache. To understand the function and design of a direct-mapped memory cache.
ECE 201 - Lab 8 Logic Design for a Direct-Mapped Cache PURPOSE To understand the function and design of a direct-mapped memory cache. EQUIPMENT Simulation Software REQUIREMENTS Electronic copy of your
More informationLECTURE 11. Memory Hierarchy
LECTURE 11 Memory Hierarchy MEMORY HIERARCHY When it comes to memory, there are two universally desirable properties: Large Size: ideally, we want to never have to worry about running out of memory. Speed
More informationPhysical memory vs. Logical memory Process address space Addresses assignment to processes Operating system tasks Hardware support CONCEPTS 3.
T3-Memory Index Memory management concepts Basic Services Program loading in memory Dynamic memory HW support To memory assignment To address translation Services to optimize physical memory usage COW
More informationProgramming Assignment 1 (PA1) - Display Bowtie
Programming Assignment 1 (PA1) - Display Bowtie Milestone Due: Final Due: Wednesday, April 18 @ 11:59 pm Wednesday, April 25 @ 11:59 pm Example Input Milestone Functions Unit Testing Extra Credit Detailed
More informationChapter 3. More Flow of Control. Copyright 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter 3 More Flow of Control Overview 3.1 Using Boolean Expressions 3.2 Multiway Branches 3.3 More about C++ Loop Statements 3.4 Designing Loops Slide 3-3 Flow Of Control Flow of control refers to the
More informationME 461 C review Session Fall 2009 S. Keres
ME 461 C review Session Fall 2009 S. Keres DISCLAIMER: These notes are in no way intended to be a complete reference for the C programming material you will need for the class. They are intended to help
More informationCSci 4061 Introduction to Operating Systems. Programs in C/Unix
CSci 4061 Introduction to Operating Systems Programs in C/Unix Today Basic C programming Follow on to recitation Structure of a C program A C program consists of a collection of C functions, structs, arrays,
More informationLab 1 Implementing a Simon Says Game
ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.
More informationStructure of Computer Systems
222 Structure of Computer Systems Figure 4.64 shows how a page directory can be used to map linear addresses to 4-MB pages. The entries in the page directory point to page tables, and the entries in a
More informationOPERATING SYSTEMS ASSIGNMENT 4 FILE SYSTEM
OPERATING SYSTEMS ASSIGNMENT 4 FILE SYSTEM Introduction The File system is an integral part of every operating system. The use of files enables the user to save persistent data. Files can also be used
More informationLab 1 Implementing a Simon Says Game
ECE2049 Embedded Computing in Engineering Design Lab 1 Implementing a Simon Says Game In the late 1970s and early 1980s, one of the first and most popular electronic games was Simon by Milton Bradley.
More information