You are writing a new 3D game that you hope will earn you fame and fortune. You are currently working on a function to blank the screen buffer before drawing the next frame. The screen you are working with is a 640 x 480 array of pixels. The machine you are working on has a 64 KB direct-mapped cache with 4-byte lines The C structures you are using are as follows:
Assume the following:
- size of(char) = 1 and size of(int) = 4.
Homework Problem
- buffer begins at memory address 0.
- The cache is initially empty.
- The only memory accesses are to the entries of the array buffer. Variables l, j, cptr, and iptr are stored in registers.
What percentage of writes in the following code will miss in the cache?
Want to see the full answer?
Check out a sample textbook solutionChapter 6 Solutions
Computer Systems: A Programmer's Perspective (3rd Edition)
Additional Engineering Textbook Solutions
Starting Out with C++: Early Objects
Starting Out With Visual Basic (8th Edition)
Introduction to Programming Using Visual Basic (10th Edition)
Starting Out With Visual Basic (7th Edition)
Differential Equations: Computing and Modeling (5th Edition), Edwards, Penney & Calvis
Objects First with Java: A Practical Introduction Using BlueJ (6th Edition)
- Computer Science A two-dimensional array of type int is defined in C using the same structure as a two-dimensional array in Java. If the dimensions are defined as 20 rows by 10 columns, what is the largest contiguous block of memory required by this array? Assume that the machine in question has an address size of 64-bits.arrow_forwardIn c programming without pointer and function Problem Statement A matrix is a 2D array of numbers arranged in rows and columns. We give you a Matrix of N rows and M columns. Now your task is to do this operation on this matrix: If the value matches with the current row and column number then add 3 with the value. If the value matches with only the current row number then add 2 with the value. If the value matches with only the current column number then add 1 with the value. Input Format The first line contains N is the number of rows in this matrix and M is the number of columns in this matrix The second line contains a 2D array Arr[i][j]. Constraints 1 <= N, M <= 10 0 <= Arr[i][j] <= 100 Output Format Print the matrix after the operation is done. Sample Input 0 3 31 1 11 1 11 1 1 Sample Output 0 4 3 3 2 1 1 2 1 1arrow_forwardin c++ 5. Assume you have given an array A[15][20]. Each element needs 'W' bytes of storage. If the address of A[6][8] is 4440 and the base address at A[1][1] is 4000, find the width 'W' of each cell in the array A when the array is stored as Column Major Wise.arrow_forward
- 2-D Array Assume three matrices of the same size, say matrix A, B and C. Write a program that will add the two matrices A and B and store the sum to C. Matrix addition is done component-wise, i.e., C[i][j] = A[i][j] + B[i][j] where i,j are the row and column index respectively.arrow_forwardTRUE OR FALSE // C PROGRAMMING LANGUAGE When an array is passed to a function, only the address of the array is passed to the functionarrow_forwardUsing C/C++ . Assume that the following lists of numbers represents the physical view of a two dimensional array in memory. If the array has 3 columns and 3 rows, show the row majorordering and the column major ordering for each list.a) 4, 0, 1, 3, 5, 1, 7, 4, 4b) 7, 7, 7, 3, 3, 3, 1, 1, 1c) 1, 2, 3, 4, 5, 6, 7, 8, 9arrow_forward
- Write, compile, and run a C program that adds equivalent elements of the two- dimensional arrays named first and second. You must use for loops to implement the add. Both arrays should have two rows and three columns. For example, element [1][2] of the resulting array should be the sum of first[1][2] and second[1][2]. The first and second arrays should be initialized as follows: first second 16 18 23 24 52 77 54 91 11 16 19 59arrow_forwardMaterial Java/ C++/C- language Personal Computer. Instructions: A. Matrix Addition C. Matrix Transpose 1. The transpose of an m x n matrix A is n x m matrix AT. 2. Formed by interchanging rows into columns and vice versa. 3. (A¹)kj = Ajk 4. Let m input to enter the number of rows in the Matrix. 5. Let n input to enter the number of columns in the Matrix. 6. Display the transpose matrix 7. Save the file TRANSPM Questions: 1. What do you mean by an array? 2. Differentiate between for loop and while loop. 3. Define transpose of matrix? What will be the order of the matrix AT, if the order of the matrix A is 4 x 4.arrow_forwardJAVA CODE PLEASE Functions with 1D Arrays Practice I by CodeChum Admin Instruction: Write a program that has a function that accepts a character array and counts the number of vowel in character array. Output Number·of·vowels:·5arrow_forward
- Question 1 Assume that arrX array is already defined and allocated in memory, its base address 0xabcd3000 and already stored in $a2 and its number of elements in $a3. Answer each of the next questions as required. arrX: .word 0x99,0x20,0x73,0x40,0x50,0x69, ... Please write question numbers and answer parts in this question in order. Q1) The fourth element of arrX is located at HEX address ___________ Q2) Write one MIPS instruction to copy into $t9 the value of the fourth element of arrX: ___________ Q3) Write one MIPS instruction to calculate $t0 = 32 * fourth element: __________ Q4) Write NO more than 3 MIPS instructions to decrement the fourth element of arrX: __________ Q5) Write no more than 6 instructions to calculate $v0= first element - last element in arrX.arrow_forwardAssume that arrX array is already defined and allocated in memory, its base address and its number of elements are already stored in $a2 and $a3 correspondingly. Answer each of the next questions as required. Questions are independent. arrx: . word 0x99,0x20,0x73,0x40,0x50,0x69, Please write question numbers and answer parts in this question in order. Q1) Write no more than 7 MIPS instructions to calculate $vo: if (arrX[2]>= arrX[20] ) $v0 = arrX[2]-arrX[20]; else $v0 = arrX[20]- arrX[2]; Q2) Write no more than 12 MIPS instructions that arranges in ascending order the neighboring elements in every pair of arrX. For example, if arrX={5,2,8,20,30,15,...,9,7}, then after executing your code arrX becomes {2,5,8,20,15,30,..,7,9}.arrow_forwardc programming language The program below uses pointer arithmetic to determine the size of a 'char'variable. By using pointer arithmetic we can find out the value of 'cp' and thevalue of 'cp+1'. Since cp is a pointer, this addition involves pointer arithmetic:adding one to a pointer makes the pointer point to the next element of the sametype.For a pointer to a char, adding 1 really just means adding 1 to the address, butthis is only because each char is 1 byte.1. Compile and run the program and see what it does.2. Write some code that does pointer arithmetic with a pointer to an int anddetermine how big an int is.3. Same idea – figure out how big a double is, by using pointer arithmetic andprinting out the value of the pointer before and after adding 1.4. What should happen if you added 2 to the pointers from exercises 1through 3, instead of 1? Use your program to verify your answer.#include <stdio.h>int main( ){ char c = 'Z'; char *cp = &c; printf("cp is %p\n", cp);…arrow_forward
- Systems ArchitectureComputer ScienceISBN:9781305080195Author:Stephen D. BurdPublisher:Cengage Learning