GB2284911A - Flexible lock-down cache. - Google Patents

Flexible lock-down cache. Download PDF

Info

Publication number
GB2284911A
GB2284911A GB9325747A GB9325747A GB2284911A GB 2284911 A GB2284911 A GB 2284911A GB 9325747 A GB9325747 A GB 9325747A GB 9325747 A GB9325747 A GB 9325747A GB 2284911 A GB2284911 A GB 2284911A
Authority
GB
United Kingdom
Prior art keywords
word
locations
data packet
available
written
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB9325747A
Other versions
GB9325747D0 (en
Inventor
Neil Stuart Hastie
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Plessey Semiconductors Ltd
Original Assignee
Plessey Semiconductors Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Plessey Semiconductors Ltd filed Critical Plessey Semiconductors Ltd
Priority to GB9325747A priority Critical patent/GB2284911A/en
Publication of GB9325747D0 publication Critical patent/GB9325747D0/en
Publication of GB2284911A publication Critical patent/GB2284911A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning

Abstract

A flexible lock-down cache memory arrangement in which any required number of storage locations in a cache memory may be marked as "locked-down" for use as static random access memory for critical program elements, such as interrupt routines, which require the fastest possible access. <IMAGE>

Description

DATA STORAGE ARRANGEMENT Most commercial processors now have cache memory systems integrated on chip.
These are memory systems that provide quick access to the most frequently or recently used code and/or data items and hence speed programme execution. In many real time systems however it is not the most recently used code segments that require the fastest access time, but the most critical code elements such as interrupt routines etc. To store these critical code elements an on chip SRAM may be used, into which the critical code elements are loaded prior to use.
Several cached processor designs provide the ability to use a portion of the cache as SRAM. These caches are known as a "lock down" caches. The split within the cache between standard cache and the lock down SRAM area is invariably on a large boundary.
Thus typically a 8KByte memory may be arranged as a 4K cache plus 4K SRAM or a 6K cache plus 2K SRAM. The drawback with this approach is that the size of memory can only be coarsely split between the two memory types. For instance in the above example if the critical code requires 2.lKBytes then the available memory must be split as a 4K/4K to accommodate it. This has the effect of limiting the amount of cache available whilst providing far too much SRAM.
It is an object of the present invention to provide a flexible lock down cache system allowing the user to precisely allocate the Cache/SRAM split according to the current system requirements.
According to one aspect of the present invention in a data storage arrangement in which a data packet or word is arranged to be written in to an available one of a plurality of locations in a data store in association with an identifier by means of which said one of said plurality of locations may be selected when read-out of said data packet or word is required, and in which there are provided first means to indicate which of said plurality of locations is or are available, or become available at any time in accordance with a predetermined rule, for the writing or overwriting therein of a different data packet or word, there are provided second means selectively to mark one or more of said locations in said data store in which a data packet or word has been written as unavailable for overwriting with a different data packet or word According to another aspect of the present invention in a data storage arrangement comprising main memory and fast-access cache memory, in which a data packet or word is written into an available one of a plurality of locations in said cache memory in association with an identifier by means of which said one of said locations may be identified when readout of said data packet or word is required, there are provided first means to select into which of the available ones of said plurality of locations in said cache memory a new data packet or word is to be written and second means selectively to mark one or more of said locations into which respective data packets or words have been written as not available for selection by said first means.
Said first means may be arranged to set one bit position of a location to a predetermined binary value when a data packet or word is written into that location and to reset that bit position or to repeat the setting in response to predetermined conditions of usage of said cache memory. The second means may be arranged to set a second bit position of a location to said predetermined binary value to mark that location as not available for selection by said first means.
A cache memory type of data storage arrangement in accordance with the present invention will now be described with reference to the drawing, in which: Figure 1 shows a cache memory system diagrammatically, and Figure 2 illustrates the operation of such a memory system.
Referring to the drawing, the replacement algorithm proposed for such arrangements is a modification of the GODS algorithm. A "Live" bit in the first column of bit positions indicates the availability of the row or location for replacement. At the start of operation the cache starts filling from the bottom, and as each row is filled this bit is set indicating that the row is no longer available. Once the cache is completely filled these bits are cleared. A subsequent access to a row causes the "Live" bit to be set again as does a complete replacement of that row with a new address and data set. A pointer moves up the array indicating the next available position for replacement. To decide whether a row may be replaced the "Live" bit must be clear. As indicated in Figure 1 each cache row has a number of bits for data storage, a number of bits of programmable address and a number of bits to control the replacement of the row within the cache.
To provide Lock down areas within the cache a second bit (the "Lock" bit) is added to the "Live" bit to indicate that the row is locked. A number of different algorithms are possible to set and reset this bit, a simple version is now described.
The critical datalinstructions are loaded into the cache. This sets the "Live" bits for each row accessed. Following this a LOCK signal is exerted. This transfers the "Live" bits into a second column of bits, the "Lock" bits, arranged once again as one per row, as shown in Figure 2. The replacement algorithm must now interrogate both bits to decide whether a row may be replaced:- the live bit, and lock bit. If both bits are clear then the row may be replaced To remove the locked area the "Lock" bits are merely reset and then replaced as described above.
Using this system any number of rows in the cache may be locked-down. This provides a variable size SRAM that may be modified as system demands change.
At a system level it would be very desirable to be able to pass to the cache a data item and tell it to lock it. Equally desirable would be the ability to unlock this particular item at a later point in time. (As opposed to unlocking all locked items in the cache). This can be achieved in the following manner. An address is passed to the cache controller, indicating that data found at this address should be loaded and locked. (The load is performed in the same way as a standard load in the case of a cache miss). The lock is indicated by a single bit on the cache row as described above. To unlock the data the processor passes the cache an address with instruction to unlock if present.
Other additional functions may be of use, such as passing the cache an address and the cache responding with information such as in cache/not in cache, locked/not locked etc.
Other variations such as an ability to load and lock an address range, or to start and stop locking (to load a programme routine or a data structure) can easily be implemented.
This system has the following advantages over currently available commercial solutions: The amount of memory available to be locked is variable on a row by row basis, as opposed to a more conventional block level.
Each row of data may be individually locked or unlocked.
The amount of memory available to be locked is dynamically variable as the programme execution proceeds, as opposed to being one time selectable at system start up.
The locked data may be from completely unrelated areas of the processor memory map due to the programmable (CAM) decoding structure used. In an SRAM based system the fixed decode scheme requires lock data to be accessed from sequential memory locations.

Claims (5)

1. A data storage arrangement in which a data packet or word is arranged to be written in to an available one of a plurality of locations in a data store in association with an identifier by means of which said one of said plurality of locations may be selected when read-out of said data packet or word is required, and in which there are provided first means to indicate which of said plurality of locations is or are available, or become available at any time in accordance with a predetermined rule, for the writing or overwriting therein of a different data packet or word, there are provided second means selectively to mark one or more of said locations in said data store in which a data packet or word has been written as unavailable for overwriting with a different data packet or word.
2. A data storage arrangement comprising main memory and fast-access cache memory, in which a data packet or word is written into an available one of a plurality of locations in said cache memory in association with an identifier by means of which said one of said locations may be identified when read-out of said data packet or word is required, there are provided first means to select into which of the available ones of said plurality of locations in said cache memory a new data packet or word is to be written and second means selectively to mark one or more of said locations into which respective data packets or words have been written as not available for selection by said first means.
3. A data storage arrangement in accordance with Claim 2 wherein said first means is arranged to set one bit position of a location to a predetermined binary value when a data packet or word is written into that location and to reset that bit position or to repeat the setting in response to predetermined conditions of usage of said cache memory.
4. A data storage arrangement in accordance with Claim 3 wherein said second means is arranged to set a second bit position of a location to said predetermined binary value to mark that location as not available for selection by said first means.
5. A data storage arrangement substantially as hereinbefore described with reference to the accompanying drawing.
GB9325747A 1993-12-16 1993-12-16 Flexible lock-down cache. Withdrawn GB2284911A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9325747A GB2284911A (en) 1993-12-16 1993-12-16 Flexible lock-down cache.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9325747A GB2284911A (en) 1993-12-16 1993-12-16 Flexible lock-down cache.

Publications (2)

Publication Number Publication Date
GB9325747D0 GB9325747D0 (en) 1994-02-16
GB2284911A true GB2284911A (en) 1995-06-21

Family

ID=10746705

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9325747A Withdrawn GB2284911A (en) 1993-12-16 1993-12-16 Flexible lock-down cache.

Country Status (1)

Country Link
GB (1) GB2284911A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0952528A2 (en) * 1998-04-23 1999-10-27 Fujitsu Limited Information processing apparatus and storage medium
GB2345987A (en) * 1999-01-19 2000-07-26 Advanced Risc Mach Ltd Memory control within data processing systems
EP1045307A2 (en) * 1999-04-16 2000-10-18 Infineon Technologies North America Corp. Dynamic reconfiguration of a micro-controller cache memory
WO2001050269A2 (en) * 1999-12-30 2001-07-12 Intel Corporation A method and apparatus to perform a round robin and locking cache replacement scheme
EP1089185A3 (en) * 1999-10-01 2001-09-19 Fujitsu Limited Method of controlling a cache memory to increase an access speed to a main memory, and a computer using the method
GB2403569A (en) * 2003-07-01 2005-01-05 Samsung Electronics Co Ltd Microprocessor with a memory for storing a hot routine
EP2090987A1 (en) * 2008-02-13 2009-08-19 Honeywell International Inc. Cache pooling for computing systems
EP2261805A1 (en) * 2009-06-12 2010-12-15 Siemens Aktiengesellschaft Method for storing real time values
US11409643B2 (en) 2019-11-06 2022-08-09 Honeywell International Inc Systems and methods for simulating worst-case contention to determine worst-case execution time of applications executed on a processor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0325420A2 (en) * 1988-01-20 1989-07-26 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0325420A2 (en) * 1988-01-20 1989-07-26 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0952528A3 (en) * 1998-04-23 2000-12-13 Fujitsu Limited Information processing apparatus and storage medium
EP0952528A2 (en) * 1998-04-23 1999-10-27 Fujitsu Limited Information processing apparatus and storage medium
US6378050B1 (en) 1998-04-23 2002-04-23 Fujitsu Limited Information processing apparatus and storage medium
US7020751B2 (en) 1999-01-19 2006-03-28 Arm Limited Write back cache memory control within data processing system
GB2345987B (en) * 1999-01-19 2003-08-06 Advanced Risc Mach Ltd Memory control within data processing systems
GB2345987A (en) * 1999-01-19 2000-07-26 Advanced Risc Mach Ltd Memory control within data processing systems
US6490655B1 (en) 1999-01-19 2002-12-03 Arm Limited Data processing apparatus and method for cache line replacement responsive to the operational state of memory
US6684302B2 (en) 1999-01-19 2004-01-27 Arm Limited Bus arbitration circuit responsive to latency of access requests and the state of the memory circuit
EP1045307A2 (en) * 1999-04-16 2000-10-18 Infineon Technologies North America Corp. Dynamic reconfiguration of a micro-controller cache memory
EP1045307A3 (en) * 1999-04-16 2000-11-08 Infineon Technologies North America Corp. Dynamic reconfiguration of a micro-controller cache memory
EP1089185A3 (en) * 1999-10-01 2001-09-19 Fujitsu Limited Method of controlling a cache memory to increase an access speed to a main memory, and a computer using the method
US6868472B1 (en) 1999-10-01 2005-03-15 Fujitsu Limited Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory
GB2374178B (en) * 1999-12-30 2004-08-25 Intel Corp A method and apparatus to perform a round robin and locking cache replacement scheme
CN1308841C (en) * 1999-12-30 2007-04-04 英特尔公司 Method and device to perform round and locking cache replacement scheme
GB2374178A (en) * 1999-12-30 2002-10-09 Intel Corp A method and apparatus to perform a round robin and locking cache replacement scheme
CN101008924B (en) * 1999-12-30 2015-05-13 迈威尔世界贸易有限公司 A method and apparatus to perform a round robin and locking cache replacement scheme
WO2001050269A3 (en) * 1999-12-30 2001-12-13 Intel Corp A method and apparatus to perform a round robin and locking cache replacement scheme
US6516384B1 (en) 1999-12-30 2003-02-04 Intel Corporation Method and apparatus to perform a round robin and locking cache replacement scheme
WO2001050269A2 (en) * 1999-12-30 2001-07-12 Intel Corporation A method and apparatus to perform a round robin and locking cache replacement scheme
GB2403569B (en) * 2003-07-01 2005-12-14 Samsung Electronics Co Ltd Microprocessor with hot routine memory and method of operation
US7363428B2 (en) 2003-07-01 2008-04-22 Samsung Electronics Co., Ltd. Microprocessor with hot routine memory and method of operation
GB2403569A (en) * 2003-07-01 2005-01-05 Samsung Electronics Co Ltd Microprocessor with a memory for storing a hot routine
EP2090987A1 (en) * 2008-02-13 2009-08-19 Honeywell International Inc. Cache pooling for computing systems
US8069308B2 (en) 2008-02-13 2011-11-29 Honeywell International Inc. Cache pooling for computing systems
EP2261805A1 (en) * 2009-06-12 2010-12-15 Siemens Aktiengesellschaft Method for storing real time values
US11409643B2 (en) 2019-11-06 2022-08-09 Honeywell International Inc Systems and methods for simulating worst-case contention to determine worst-case execution time of applications executed on a processor

Also Published As

Publication number Publication date
GB9325747D0 (en) 1994-02-16

Similar Documents

Publication Publication Date Title
US5410669A (en) Data processor having a cache memory capable of being used as a linear ram bank
US6381676B2 (en) Cache management for a multi-threaded processor
EP1221095B1 (en) An arbitration protocol for a shared data cache
US3800292A (en) Variable masking for segmented memory
US6381668B1 (en) Address mapping for system memory
US3569938A (en) Storage manager
US5546559A (en) Cache reuse control system having reuse information field in each cache entry to indicate whether data in the particular entry has higher or lower probability of reuse
US5651135A (en) Multi-way set associative cache system in which the number of lines per set differs and loading depends on access frequency
US7844778B2 (en) Intelligent cache replacement mechanism with varying and adaptive temporal residency requirements
EP0377970B1 (en) I/O caching
GB1494365A (en) Apparatus for selectively clearing a cache store in a processor having segmentation and paging
GB2311880A (en) Partitioned cache memory
US5893148A (en) System and method for allocating cache memory storage space
US5038278A (en) Cache with at least two fill rates
CA2058259C (en) Apparatus for increasing the number of hits in a translation lookaside buffer
KR930006541A (en) Method and apparatus for a register providing atomic access to set and clear individual bits of a shared register without a software interlock
JPS604493B2 (en) Microprogrammed data processing system
GB2284911A (en) Flexible lock-down cache.
US6862663B1 (en) Cache having a prioritized replacement technique and method therefor
GB2065941A (en) Cache store system
EP1190325B1 (en) Status bits for cache memory
US20030159003A1 (en) Associative cache memory with replacement way information integrated into directory
KR100395768B1 (en) Multi-level cache system
US6105115A (en) Method and apparatus for managing a memory array
EP0525308A1 (en) Memory map for processor cache macro

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)