Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7780091
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 1, 20262026-06-01T18:48:35+00:00 2026-06-01T18:48:35+00:00

Given the code : void transpose2(array dst,array src) { int i,j; for ( i=0;

  • 0

Given the code :

void transpose2(array dst,array src)
{
  int i,j;
  for ( i=0; i<4; i++) {
    for ( j=0; j<4; j++) {
     dst[i][j] = src[j][i];
    }
  }
}

Assumptions :

  • int is 4 bytes

  • src array starts at address 0 , dst starts at address 64

  • the size of the cache is 32 bytes , at the beginning the cache is empty

Assuming that I have a cache with size of 32 bytes , under write through ,write allocate & LRU , using 2way set associative method , where each block is 8 bytes :

When I read from the memory , how many bytes do I take each iteration from the memory ?

is it 4 or 8 ?

What I’m quite sure about is that the cache has 4 cells , or rows , and each row has 8 bytes .Is this correct ?

What is a little confusing is the 2way part , I think that each way has 4 bytes , right ? please correct me if I’m wrong …

Then when I “take” a block from the memory , I just don’t exactly understand how many bytes !!?

Thanks in advance

Ron

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-01T18:48:35+00:00Added an answer on June 1, 2026 at 6:48 pm

    The cache way (aka its associativity) does not affect the amount of data that’s transferred when a transfer occurs; the block size is the block size.

    Associativity is simply a measure how many possible locations there are in the cache that a given block from memory could be stored. So:

    • For a direct-mapped cache (associativity=1), memory address xyz will always map to the same cache location.
    • For a two-way cache, xyz could map to either of two cache locations.
    • For a fully-associative cache, xyz could map to anywhere in cache.

    I’m really not saying anything here which isn’t already explained at e.g. Wikipedia: http://en.wikipedia.org/wiki/CPU_cache#Associativity.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Given the following code : typedef int array[4][4]; void transpose2(array dst, array src) {
Given this piece of code: (void)someFunction(void) { int array[] = {1,2,3,4,5,6,7,8,9,10}; } Where are
Given the following code: void foo( int* array ) { // ... } void
Given this code: void group::build(int size, std::string *ips){ /*Build the LL after receiving the
Given the following code : public void insertIntoQueue(float length,int xElement,int yElement,int whichElement) { Dot
Given this piece of code : public static void writeFile(File file,List buffer)throws IOException{ File
In C++ the following code gives a compiler error: void destruct1 (int * item)
consider the code #include<stdio.h> int main(void) { char* a; scanf(%s,a);//&a and &a[0] give same
Given this code: public class Messager implements Runnable { public static void main(String[] args)
Given the code below: void LookupBox_Load(object sender, EventArgs e) { Action d = delegate

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.