RubyPort.cc (9206:f6483789d23a) | RubyPort.cc (9208:2451e60d4555) |
---|---|
1/* 2 * Copyright (c) 2012 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 261 unchanged lines hidden (view full) --- 270 // or not. 271 num_backing_store++; 272 else if (access_perm == AccessPermission_Invalid || 273 access_perm == AccessPermission_NotPresent) 274 num_invalid++; 275 } 276 assert(num_rw <= 1); 277 | 1/* 2 * Copyright (c) 2012 ARM Limited 3 * All rights reserved. 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 261 unchanged lines hidden (view full) --- 270 // or not. 271 num_backing_store++; 272 else if (access_perm == AccessPermission_Invalid || 273 access_perm == AccessPermission_NotPresent) 274 num_invalid++; 275 } 276 assert(num_rw <= 1); 277 |
278 uint8* data = pkt->getPtr<uint8_t>(true); | 278 uint8_t *data = pkt->getPtr<uint8_t>(true); |
279 unsigned int size_in_bytes = pkt->getSize(); 280 unsigned startByte = address.getAddress() - line_address.getAddress(); 281 282 // This if case is meant to capture what happens in a Broadcast/Snoop 283 // protocol where the block does not exist in the cache hierarchy. You 284 // only want to read from the Backing_Store memory if there is no copy in 285 // the cache hierarchy, otherwise you want to try to read the RO or RW 286 // copies existing in the cache hierarchy (covered by the else statement). --- 95 unchanged lines hidden (view full) --- 382 // also we let the access go through. Or, if there is no copy in the cache 383 // hierarchy at all, we still want to do the write to the memory 384 // (Backing_Store) instead of failing. 385 386 DPRINTF(RubyPort, "num_busy = %d, num_ro = %d, num_rw = %d\n", 387 num_busy, num_ro, num_rw); 388 assert(num_rw <= 1); 389 | 279 unsigned int size_in_bytes = pkt->getSize(); 280 unsigned startByte = address.getAddress() - line_address.getAddress(); 281 282 // This if case is meant to capture what happens in a Broadcast/Snoop 283 // protocol where the block does not exist in the cache hierarchy. You 284 // only want to read from the Backing_Store memory if there is no copy in 285 // the cache hierarchy, otherwise you want to try to read the RO or RW 286 // copies existing in the cache hierarchy (covered by the else statement). --- 95 unchanged lines hidden (view full) --- 382 // also we let the access go through. Or, if there is no copy in the cache 383 // hierarchy at all, we still want to do the write to the memory 384 // (Backing_Store) instead of failing. 385 386 DPRINTF(RubyPort, "num_busy = %d, num_ro = %d, num_rw = %d\n", 387 num_busy, num_ro, num_rw); 388 assert(num_rw <= 1); 389 |
390 uint8* data = pkt->getPtr<uint8_t>(true); | 390 uint8_t *data = pkt->getPtr<uint8_t>(true); |
391 unsigned int size_in_bytes = pkt->getSize(); 392 unsigned startByte = addr.getAddress() - line_addr.getAddress(); 393 394 if ((num_busy == 0 && num_ro > 0) || num_rw == 1 || 395 (num_invalid == (num_controllers - 1) && num_backing_store == 1)) 396 { 397 for(int i = 0; i < num_controllers;++i) { 398 access_perm = ruby_system->m_abs_cntrl_vec[i]-> --- 297 unchanged lines hidden --- | 391 unsigned int size_in_bytes = pkt->getSize(); 392 unsigned startByte = addr.getAddress() - line_addr.getAddress(); 393 394 if ((num_busy == 0 && num_ro > 0) || num_rw == 1 || 395 (num_invalid == (num_controllers - 1) && num_backing_store == 1)) 396 { 397 for(int i = 0; i < num_controllers;++i) { 398 access_perm = ruby_system->m_abs_cntrl_vec[i]-> --- 297 unchanged lines hidden --- |