Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Reduction of Memory Contention for Control Variables in MP Systems

IP.com Disclosure Number: IPCOM000038572D
Original Publication Date: 1987-Feb-01
Included in the Prior Art Database: 2005-Jan-31
Document File: 1 page(s) / 11K

Publishing Venue

IBM

Related People

So, K: AUTHOR [+2]

Abstract

Control variables, such as locks, event counters, or resource status, in an operating system (OS) are changed frequently during the runtime. Conventionally, they have been logically grouped into tables and each table is loaded into a consecutive segment of the memory at runtime. Certainly this is a good programming practice for building a structured system. This is also acceptable when all the previous OSs were designed to be run on uniprocessors; it is, however, not acceptable in a multiprocessor system (MP) where all the CPUs can access a table at the same time. In a highly parallel MP system contention may exist at a memory module containing a heavily accessed table. It is even worse if each CPU in the MP system has a local cache.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 100% of the total text.

Page 1 of 1

Reduction of Memory Contention for Control Variables in MP Systems

Control variables, such as locks, event counters, or resource status, in an operating system (OS) are changed frequently during the runtime. Conventionally, they have been logically grouped into tables and each table is loaded into a consecutive segment of the memory at runtime. Certainly this is a good programming practice for building a structured system. This is also acceptable when all the previous OSs were designed to be run on uniprocessors; it is, however, not acceptable in a multiprocessor system (MP) where all the CPUs can access a table at the same time. In a highly parallel MP system contention may exist at a memory module containing a heavily accessed table. It is even worse if each CPU in the MP system has a local cache. Because accesses to control variables are generally considered as exclusive, a cache line containing such variables may only be allowed to reside in one cache at a time. The line can be pingponging among the caches of the CPUs which need the line closely in time. A method to alleviate this pingponging is to put variables that are very frequently referenced, but are logically independent, in separate cache lines.

1