CN100394406C - High speed buffer storage distribution - Google Patents

High speed buffer storage distribution Download PDF

Info

Publication number
CN100394406C
CN100394406C CNB200310125194XA CN200310125194A CN100394406C CN 100394406 C CN100394406 C CN 100394406C CN B200310125194X A CNB200310125194X A CN B200310125194XA CN 200310125194 A CN200310125194 A CN 200310125194A CN 100394406 C CN100394406 C CN 100394406C
Authority
CN
China
Prior art keywords
cache
data
external agent
equipment
management mechanism
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.)
Expired - Fee Related
Application number
CNB200310125194XA
Other languages
Chinese (zh)
Other versions
CN1534487A (en
Inventor
C·E·纳拉德
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN1534487A publication Critical patent/CN1534487A/en
Application granted granted Critical
Publication of CN100394406C publication Critical patent/CN100394406C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • 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
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)

Abstract

Cache allocation includes a cache memory and a cache management mechanism configured to allow an external agent to request data be placed into the cache memory and to allow a processor to cause data to be pulled into the cache memory.

Description

The method and apparatus that is used for cache assignment
Technical field
The present invention relates generally to computer system, relate in particular to a kind of method and apparatus that is used for cache assignment.
Background technology
Processor in the computer system can send one to the request that is requested the data in the storage unit at storer.Processor can at first be attempted being accessed in and the storer of this processor close association, the data in for example cache memory, rather than by common, to the low access of primary memory.In general, cache memory comprise to more greatly, the selection area in the primary memory or the piece storer of simulating more slowly.Cache memory normally is filled based on request, physically more approaches processor, and has than primary memory access time faster.
If processor is not to be accessed in " " in the cache memory of storer, for example, in cache memory, do not find the copy of these data, then this cache memory is selected a storage unit in cache memory, be used for storing primary memory is requested the data that the data in the storage unit are simulated, send a request to primary memory, and the data of autonomous memory are inserted in the selected cache memories store unit in the future for the data that are requested the storage unit place.The data that are positioned at and are requested position approaching on the storage unit space can also be asked and be stored to cache memory, because the program of request msg usually proposes the time from the data of Memory Storage Unit approaching on identical or the space is gone up approaching request, therefore comprise that in cache memory data approaching on the space can increase efficient.By this way, processor can and/or be data in subsequently the request of data access cache for this request.
Summary of the invention
The present invention is directed to above problem and propose following technical scheme:
According to the present invention, a kind of equipment that is used for cache assignment is provided, comprising: cache; Cache management mechanism is configured to allow the external agent to ask data are put in the described cache, and allows processor that data are pressed in the described cache.According to the present invention, a kind of method that is used for cache assignment also is provided, comprising: allow the external agent to send being placed into the request of the data in the cache; And allow described external agent that the described data that will be placed in the cache are provided.
According to the present invention, a kind of equipment that is used for cache assignment also is provided, comprising: be used for allowing the external agent to send device the request of the data that will be placed into cache; And be used for allowing the external agent these data to be inserted the device of described cache.
According to the present invention, a kind of system that is used for cache assignment also is provided, comprising: cache; And memory management mechanism, be configured to allow the external agent to ask described cache: the delegation of selecting described cache is as the victim, described row comprises data, and uses from described external agent's new data and replace this data.
According to the present invention, a kind of system that is used for cache assignment also is provided, comprising: at least one Physical layer (PHY) equipment; At least one Ethernet medium access controller (MAC) equipment is used for the data that receive via PHY are carried out the link layer operation; Be used to ask logic via at least a portion of the data that received by at least one PHY of high-speed cache and at least one MAC; And high-speed cache, described high-speed cache comprises: cache; Cache management mechanism is configured in response to described request, and at least a portion of the data that will receive via at least one PHY and at least one MAC is placed in the described cache; And, allow processor that data are pressed in the described cache in response to not being stored in the request of the data in the described cache.
Description of drawings
Fig. 1 is the block scheme that comprises the system of cache memory.
Fig. 2 and 3 shows the process flow diagram of the processing of filling storage mechanism.
Fig. 4 shows the process flow diagram of the part in the processing of filling storage mechanism.
Fig. 5 is the block scheme that comprises the system of relevant lookaside buffer.
Embodiment
Referring to Fig. 1, exemplary systems 100 comprises external agent 102, and it can ask the row in the cache 104 (" high-speed cache 104 ") is distributed.Described external agent 102 can be pressed into data 106 li of the data-carrier stores that comprise in high-speed cache 104, and marker character is pressed into 108 li of the marker character arrays that comprise in high-speed cache 104.External agent 102 can also trigger row and distribute in additional this locality and/or remote cache, and/or relevant the renewal, and/or relevant invalid.Allow external agent 102 to trigger that row in the high-speed caches 104 distributes and request is sent to 104 li of high-speed caches with data, can reduce or eliminate the shortcoming that is associated in not with cache accessing first.For instance, processor 110 can with external agent 102 and one or more other external agents (for example, I/O (I/O) equipment and/or other processors) data in the shared storage 112, and cause in the high-speed cache so that the data that just write by another agency are carried out access.Cache management mechanism 114 (" manager 114 ") allows external agent 102 by triggering allocation of space and data being sent to 104 li of high-speed caches, come name imitation with processor 110 to looking ahead that data are carried out, thus help to reduce high-speed cache not in.The high-speed cache behavior is for processor 110, and is normally transparent.Manager such as manager 114 allows particular cache and storer transmitted and carries out managed together, so that strengthen the performance based on the message communication of storer between two agencies.Manager 114 can be used for receiving to the processor transmission of appointment from network interface the selected part of descriptor and reception buffer.Manager 114 can also be used for the cost minimization with the message between the processor or between the thread.Processor 110 can also comprise manager, for example cache management mechanism (manager) 116.
Manager 114 allows processors 110 just data to be inserted in the high-speed cache 104 once requiring, wherein the data filling can comprise be pressed into data to high-speed cache 104, write data to high-speed cache 104 or in high-speed cache 104, store data.For example, when processor 110 produce to the request of the data in the storage unit of primary memory 112 (" storer 112 ") and 110 pairs of these storage unit of processor be accessed in the high-speed cache 104 not in, high-speed cache 104 can be selected a storage unit in the high-speed cache 104 by use and management device 114 usually, being included in the copy that is requested the data in the storage unit of storer 112, and send being requested the requests for content in the storage unit to storer 112.Selecteed storage unit can comprise cached data, the different storage unit that described cached data is replaced via the line display of reassigning distribution or is sacrificed.In the example of relevant multicomputer system, can be by agency rather than storer 112, the processor high speed buffer memory that for example is different from high-speed cache 104 satisfies the request to storer 112.
If the copy of the data in high-speed cache 104 comprises renewal or the modification that also is not reflected in the storer 112, then manager 114 can also allow external agent 102 to trigger high-speed cache 104, so that by be discarded in the selected memory cell content or by the content in the selected memory cell being write back to 112 li of storeies, sacrifice the current data in the storage unit in, the high-speed cache 104 104 that select by high-speed cache.High-speed cache 104 is carried out and is sacrificed and to the writing back of storer 112, but external agent 102 can trigger these incidents by transmit the request of storage data in high-speed cache 104 to high-speed cache 104.For example, external agent 102 can send a stacked order, this order comprises the address information that will be stored in the data in the high-speed cache 104 and be used for these data, is used for avoiding data storage was being read the potential of storer 112 before high-speed cache 104.If high-speed cache 104 has comprised the clauses and subclauses of the storage unit in the expression storer 106, described storage unit is in from stacked request of the external agent 102 shown in the indication, then high-speed cache 104 neither distributes new storage unit, does not also sacrifice any cache content.On the contrary, high-speed cache 104 uses the storage unit with matched indicia symbol, utilizes the data that are pressed into from external agent 102 that corresponding data is rewritten, and the capable state of corresponding cache is upgraded.In relevant multicomputer system, except that high-speed cache 104, have and the high-speed cache of the corresponding clauses and subclauses of storage unit of in stacked request, indicating, to or abandon those clauses and subclauses, perhaps use the data and the new state that are pressed into that they are upgraded, so that keep system's cache coherence.
Allowing processor 110 when requiring just high-speed cache 104 to be filled, allowing external agent 102 to trigger the row that is undertaken by high-speed cache 104 distributes, making can be with significant data, for example critical new data is placed on position in the high-speed cache 104, approaching with processor 110 selectively, thereby has improved processor performance.Row distributes, refer in general carry out in following the processing some or all: insert the row that selection is sacrificed in the operational processes carrying out high-speed cache; If revised content then the cache content of sacrificing be written to primary memory; Update mark symbol information is assigned with the new main memory address that the agency selects with reflection, upgrade as required the capable state of cache with the reflection status information, for example with the status information that writes back or cache coherence is relevant; And use the new data that sends by request broker to replace respective data blocks in high-speed cache.
Data can be used as " dirty " or " clean " is sent to the high-speed cache 104 from external agent 102.If data are transmitted as dirty, then when this row was finally sacrificed from high-speed cache 104, high-speed cache 104 usefulness were represented the currency updated stored device 112 of the cached data of this storage unit.After being pressed into high-speed cache 104, described data may or may not revised by processor 110.If data are as clean being transmitted, the mechanism except that high-speed cache 104 can use this Data Update storer 112 so, and in this example, described mechanism is external agent 102." dirty ", perhaps some equivalent states are indicated the current fresh copy with data in the storage unit of this high-speed cache, and are responsible for guaranteeing updated stored device 112 when data are evicted from from high-speed cache 104.In the multiprocessor coherent system, answer the request of high-speed cache, this responsibility can be transferred to different high-speed caches, for example when another processor is attempted this storage unit in the write store 112.
High-speed cache 104 can be to data storer 106 read and write data.High-speed cache 104 can also access flag accord with array 108, and produces and revise status information, produces marker character, and causes sacrifice.
External agent 102 sends fresh information via high-speed cache 104 to processor 110, hide simultaneously or (for example reduce for the data key component, the part of access first, often accessing computer is controlled the electronic scanning system part, the part of consecutive access etc. automatically) access waiting time.External agent 102 transmits and approaches data sink () data for example, in high-speed cache 104, and reduce the message cost that is used for this receiver most.By reducing time quantum, processor 110 expends and has been reduced, be because force not in can increase processor performance.If system 100 comprises a plurality of high-speed caches, then manager 114 can allow processor 110 and/or external agent 104 requests some or all the row in the high-speed cache distribute.Alternatively, only selecteed one or more high-speed caches receive stacked data, and other high-speed caches take appropriate action to keep cache coherence, for example by upgrade or abandon comprise with stacked request in the clauses and subclauses of the marker character that is complementary of address.
further discuss use the external agent distribute cache capable before, with the unit that further specifies in the system 100.Unit in the system 100 can accomplished in various ways.
System 100 can comprise network system, computer system, the high integration I/O subsystem on the chip, the perhaps communication of other similar type or disposal system.
External agent 102 can comprise input-output apparatus, network interface, processor, perhaps other mechanisms that can communicate by letter with storer 112 with high-speed cache 104.In general, input-output apparatus comprises and being used for data transmission in computer system or transfer out the equipment of data from computer system.
High-speed cache 104 can comprise can bridging memory memory access (for example, processor 110) and the storage mechanism of memory device or primary memory (for example storer 112).High-speed cache 104 had usually than primary memory access time faster.High-speed cache 104 can comprise many levels, and can comprise private cache, impact damper, memory bar, perhaps other similar storage mechanisms.High-speed cache 104 can comprise independently or be comprised in mechanism in the reserve part of primary memory.Instruction and data normally is delivered to high-speed cache 104 in the mode of piece, and send out from high-speed cache 104.Piece refers in general and transmits as a whole or the position of processing or the set of byte.A piece can comprise many words, and a word can comprise many positions or byte.
Data block can comprise the data in one or more network communication protocol data cells (PDU), described network communication protocol data cell for example be Ethernet or synchronous optical network (SONET) frame, transmission control protocol (TCP) section, Internet protocol (IP) bag, fragment, asynchronous transfer mode i (ATM) unit, etc., the perhaps part in them.Data block may further include descriptor.Descriptor is a kind of data structure in the storer normally, and the message such as external agent 102 or the transmitter of bag can use it to the information relevant with message or PDU of the receiver transmission such as processor 110.Descriptor content can include, but are not limited to: comprise the storage unit in the impact damper of message or bag, the byte number in the impact damper receives the identifier of the network port of this bag, and indication or the like makes mistakes.
Data-carrier store 106 can comprise the part of high-speed cache 104, and this part is configured to the data message that storage is located to read from primary memory (for example, storer 112).
Marker character array 108 can comprise the part in the high-speed cache 104, and this part is configured to the storer marker information.Marker information can comprise address field, and which primary memory the indication of this address field has represented by corresponding data clauses and subclauses in the data-carrier store 106 and the status information that is used for these corresponding data clauses and subclauses.In general, status information refers to the code of designation data state, described state for example be effective, invalid, dirty (indication after primary memory obtains the corresponding data clauses and subclauses, these corresponding data clauses and subclauses are updated or are modified), exclusive, shared, owned, revise, reach other similar states.
High-speed cache 104 comprises manager 114, and can comprise single memory mechanism, and described single memory mechanism comprises data-carrier store 106 and marker character array 108, perhaps, and the storage mechanism that data-carrier store 106 and marker character array 108 can separate.If data-carrier store 106 and marker character array 108 are storage mechanisms separately, then " high-speed cache 104 " can be interpreted as suitable one or several in data-carrier store 106, marker character array 108 and the manager 114.
Manager 114 can comprise hardware mechanism, this hardware mechanism is in response to by the access of the agency except that processor 110 to storer, the address and the marker character of request are compared, detection hit and not in, provide sense data to processor 110, receive write data from processor 110, the capable state of management cache, and support the phase dry run.Manager 114 also comprises and is used for mechanism that the stacked request from external agent 102 is responded.Manager 114 can also comprise any mechanism that can control the management of high-speed cache 104, for example comprise in the processor 110 or can be by the software of its visit.This type of software for example can provide following operation: the high-speed cache initialization, and cache is capable invalid or refresh, and explicit row distributes and other management functions.Manager 116 can with manager 114 similar configuration.
Processor 110 can comprise any processor mechanism, for example microprocessor or CPU (central processing unit) (CPU).This processor 110 can comprise one or more independent processors.Processor 110 can comprise network processing unit, general flush bonding processor or the processor of other similar type.
Storer 112 can comprise any storing mechanism.The example of storer 112 comprises random-access memory (ram), dynamic RAM (DRAM), static RAM (static memory), flash memory, tape, disk, and the storing mechanism of other similar type.Storer 112 can comprise a storing mechanism, RAM chip for example, and the perhaps combination of any storing mechanism for example comprises many RAM chip of SRAM and DRAM simultaneously.
For ease of explanation, simplified illustrating to system 100.System 100 can comprise unit more or still less, for example one or more storing mechanism (high-speed cache, storeies, database, impact damper, or the like), bridge, chipset, network interface, pattern mechanism, display device, external agent, communication linkage (bus, radio link, or the like), memory controller, and can be included in the unit of other similar type in the system similar to system 100, described system for example is computer system or network system.
Referring to Fig. 2, show the exemplary process 200 of cache operations.Although handling 200 is to describe with reference to the unit that comprises in the exemplary systems 100 of Fig. 1, but can in system 100 or another similar system, carry out this processing or similar processing, comprise during these are handled identical, more or still less, transformed or not by transformed unit.
Agency in the system 100 sends (202) requests.This agency who is called as request broker can be external agent 102, processor 110 or another agency.In this example was discussed, external agent 102 was request brokers.
Requests for data can comprise that request high-speed cache 104 will be placed into the request of 104 li of high-speed caches from the data of request broker.This request can be the result of an operation, and the message between the network reception operation in this way of described operational example, I/O input, the processor transmits or other similar operation.
High-speed cache 104 determines via manager 114 whether (204) high-speed caches 104 comprise a storage unit usually, the storage unit in that this storage unit indicates in representing to ask, the storer 112.Can be by access cache 104, and finish for this memory of data address check marker character array 108 and a kind ofly like this to determine that described data are provided by request broker usually.
If handling 200 is used in one and comprises in a plurality of cache systems, this system perhaps supports the combination of multiprocessor or processor and IOS, then can use any agreement to check described a plurality of high-speed cache, and keep the relevant version of each storage address.Described high-speed cache 104 can be checked the address associated state with requested date in the marker character array of high-speed cache, checking whether the data at place, this address are included in another high-speed cache, and/or whether in another high-speed cache, be modified in the data at this place, address.For example, " exclusive " state can be indicated: the data at this place, address only are included in the described checked high-speed cache.For another example, " sharing " state can be indicated: these data can be included at least one other high-speed cache, and before request broker takes out requested date, may need to check other high-speed caches, to obtain data updated.Different processors and/or IOS can use same or different technology to check and upgrade cache marks and accord with.When the request of answering the external agent, when delivering to data in the high-speed cache, these data can be sent in one or more high-speed cache, and clearly the clauses and subclauses that must make coupling to its those high-speed caches that transmit data are invalid or to its renewal, so that keep system coherence.Can in request, indicate or otherwise select to be admitted to statically the high-speed cache of these data.
Effectively indicate if marker character array 108 comprises this address and this storage unit of expression, then identify cache hit.High-speed cache 104 comprises the clauses and subclauses of storage unit indicated in the request of being illustrated in, and external agent 102 is pressed into high-speed cache 104 with these data, legacy data to cache in capable is rewritten, and need not at first to distribute in high-speed cache 104 storage unit.External agent 102 can be pressed into 104 li of high-speed caches with some data or total data, and described data are the data that send processor 110 via shared storage to.For example, if request broker may not analyzed total data immediately or often, then only some data are pressed in the high-speed cache 104.For example, network interface can be pressed into descriptor and only direct packets content, for example the packet header information of receiving.If external agent 102 only is pressed into the data division of selection, does not have bulged-in other parts to change usually so and write 112 li of storeies by external agent 102.In addition, can use new data to be updated in any storage unit in high-speed cache 104 and other high-speed caches, that be illustrated in those storage unit that write by external agent 102 in the storer 112, perhaps make it invalid, so that keep system coherence.Data trnascription in other high-speed caches can be disabled, and the cache in the high-speed cache 104 is capable is marked as " exclusive ", and perhaps this copy is updated, and cache is capable is marked as " sharing ".
If marker character array 108 does not comprise requested address in effective storage unit, so this be high-speed cache not in, and high-speed cache 104 does not comprise the row that is requested storage unit in the expression storer 112.In this case, high-speed cache 104 selects (" distribution ") to put into the delegation that is pressed into data therein in high-speed cache 104 usually via the behavior of manager 114.Distribute cache to select a storage unit capable comprising, determine whether this storage unit comprises this high-speed cache 104 and be responsible for it is write back to piece in the storer 112, and if like this, the data that then will be replaced (perhaps " sacrifice ") are written in the storer 112, the address that use indicates in request, and use the capable state of suitable cache that the marker character of chosen storage unit is upgraded, will be written to from external agent 102 data in data array 106, in the storage unit corresponding to the symbol of the selection marquee in marker character array 108 storage unit.
High-speed cache 104 can by in high-speed cache 104 (for example, in data-carrier store 106 and in marker character storer 108) select (206) storage unit comprise the copy of data, external agent 102 request is responded.This selection can be known as distribution, and selecteed storage unit can be known as the storage unit that is assigned with.If the storage unit that is assigned with comprises the data of the different storage unit in effective marker character and the expression storer 112, then this content can be known as " victim ", and the behavior that it is removed from high-speed cache 104 can be known as " sacrifice ".The state of victim's row can be indicated: when this row was sacrificed, this high-speed cache 104 was responsible for using the data from this victim's row that the respective memory unit in the storer 112 is upgraded (208).
High-speed cache 104 or external agent 102 can be responsible for using the new data that is pressed into high-speed cache 104 from external agent 102 that storer 112 is upgraded.When new data being pressed into 104 li of high-speed caches, usually should be in this exemplary systems 100 coherence between the storage mechanism in the maintenance system, high-speed cache 104 and the storer 112.The coherence keeps like this: by any other copy of revising data resident in other storage mechanisms is upgraded, reflect this modification, for example by its state in other mechanisms being changed into engineering noise or other suitable state, use the data of revising that other mechanisms are upgraded, or the like.High-speed cache 104 can be marked as the owner of data, and becomes and be responsible for new data storer 112 being upgraded (212).High-speed cache 104 can externally act on behalf of 102 when data are pressed into high-speed cache 104 or after a while, and storer 112 is upgraded.Alternatively, data can be shared, and external agent 102 can upgrade the described mechanism that (214) are storeies 112 in this example, and with the new data updated stored device that is pressed into high-speed cache 104.Therefore, storer 112 can comprise the copy of latest edition data.
High-speed cache 104 is used in address that indicate in the request, in the storer 112, is that the storage unit of being sacrificed is upgraded (216) marker character in marker character array 108.
High-speed cache 104 can be used from external agent 102 data and replace (218) content in the quilt storage unit of sacrificing.If processor 110 is supported cache hierarchy, then external agent 102 can be pressed into data in the cache hierarchy one or more levels, usually from outermost layer.
Referring to Fig. 3, show another exemplary process 500 of cache operations.Described processing 500 has illustrated processor 110 accessing caches 104 and an example order being inserted high-speed cache 104.Although handling 500 is to describe with reference to the unit that comprises in the exemplary systems 100 of Fig. 1, but can in system 100 or other similar system, carry out this processing or similar processing, comprise during these are handled identical, more or still less, transformed or not by transformed unit.
When processor 110 sends a cacheable memory reference, to search for their relevant marker character array 108 with the high-speed cache 104 that the storage access of processor 110 is associated, in those high-speed caches, whether be expressed to determine that (502) requested storage unit is current.Whether the clauses and subclauses in the high-speed cache 104 that high-speed cache 104 is further determined (504) to be quoted have being requested the suitable permission of access, and for example whether row is in the correct coherency states that permission writes from processor.Be expressed in high-speed cache 104 if the storage unit in the storer 112 is current, and has the right permission, then detect " hitting ", and high-speed cache provides data or receives data from processor to processor by the name with the related memory cell in the storer 112, comes to be this request service (506).If the marker character in the marker character array 108 indication provide requested storage unit, but do not have suitable permission, then cache manger 114 obtains the permission of (508) right, for example realize, so that can be to wherein writing by the exclusive entitlement that obtains row.If high-speed cache 104 determines that requested storage unit is not in high-speed cache, then detect " not ", and cache manger 114 will distribute (510) storage unit in high-speed cache 104, be used for placing therein new row, to from storer 112, ask (512) data with suitable permission, in a single day and receive and just these data and relevant marker character are placed into (514) data in the storage unit of being distributed in high-speed cache 104.Supporting some high-speed caches and among them, keeping in coherence's the system that requested data may be actual in another high-speed cache, rather than from storer 112.May sacrifice current effective content of this row to the distribution of the row in the high-speed cache 104, and may be such as previously described, writing back of victim further caused.Therefore, handle 500 and determine whether (512) victim requires to write back, and, carry out row the writing back that (514) will be sacrificed to storer if like this.
Referring to Fig. 4, handle 300 to show throttle mechanism and how to help to determine (302) external agent 102 whether/when data may be pressed in the high-speed cache 104.Throttle mechanism can prevent be annihilated this high-speed cache 104 and cause too much sacrifice of external agent 102, and it can reduce the efficient of system.For example, if external agent 102 is pressed into data in the high-speed cache 104, the data that then are pressed into were sacrificed before this storage unit of processor 110 accesses, and after a while, processor 110 once just require with this error in data turn back in the high-speed cache 104, therefore during processor 110 can cause that potential high-speed cache is not, and cause unnecessary high-speed cache and memory traffic.
If external agent 102 is general data high-speed caches that are used for processor 110 to the high-speed cache 104 that wherein is pressed into data, then throttle mechanism use (304) trial method determine whether external agent 102 is pressed into more multidata in high-speed cache 104/when be acceptable.If acceptable time, then high-speed cache 104 can be selected a storage unit in 208 high-speed caches 104, in order to comprise this data.If current is not acceptable time, then throttle mechanism may keep (308) these data (perhaps to keep the request to these data, perhaps order external agent 102 in this request of retry after a while), till throttle mechanism uses trial method (resource contention when for example, asking based on capacity or based on reception) to determine to be an acceptable time.
If high-speed cache 104 is private caches, then throttle mechanism can comprise many determinacy mechanism rather than described trial method, and for example to the threshold test of formation, this mechanism is used to external agent 102 is carried out flow control (306).In general, formation comprises such data structure: therein, identical order is deleted element when entering with element.
Referring to Fig. 5, another exemplary systems 400 comprises a manager 416, this manager 416 can allow external agent 402 that data are pressed in relevant backup buffer (CLB) cache 404 (" CLB 404 "), should relevant backup buffer cache 404 be counterparts of primary memory 406 (" storer 406 "), it imitates storer 406 usually.Impact damper generally includes the temporary storage aera, and can carry out access to it than primary memory, for example storer 406 lower potentialities.CLB 404 is for providing the intermediate suspension zone from external agent 402, newly arrived or newly-generated data, and described external agent 402 provides access than storer 406 lower potentialities for processor.Have known access mode, for example when serve in the communication agency of buffer circle at processor 408, the use of CLB 404 can be by reducing because stopping of causing in not of the high-speed cache during the access new data, the performance CLB 404 that improves processor 408 can be shared by a plurality of agencies and/or processor and their respective caches.
CLB 404 and signaling or notification queue 410 couplings, wherein, external agent 402 uses described signaling or notification queue 410 to send descriptor or buffer zone address via CLB 404 to processor 408.Formation 410 provides flow control, is because when formation 410 was full, its corresponding CLB 404 also was full.When formation 410 was full, formation 410 used " queue full " indicator signals to notify external agent 102.Similarly, formation 410 uses " formation is not empty " indicator signal notification processor 408 these formations to have untreated clauses and subclauses at least, in the indication formation 410 pending data is arranged.
External agent 402 can be pressed into the capable value of one or more caches for the data of each clauses and subclauses in the formation 410.Formation 410 comprises X clauses and subclauses, and wherein X equals positive integer.CLB 404 uses a pointer, points to next CLB clauses and subclauses to be allocated, and formation 410 is handled as annulation.
The CLB marker character 412 that CLB 404 comprises respectively storage mark symbol and data and CLB data 414 (respectively to Fig. 1 in marker character array 108 similar with data-carrier store 106).For the clauses and subclauses sum that equals X * Y, for each the data clauses and subclauses in the formation 410, CLB marker character 412 and CLB data 414 include Y data block, and wherein Y equals positive integer.Marker character 412 can comprise an indicator signal, is used for each clauses and subclauses of the number of the continuous high speed cache blocks represented by this marker character, and perhaps this information can imply.Storer reads so that when several line data that will be pressed into CLB 404 by external agent 402 were inserted high-speed cache, CLB 404 can interfere these stacked data when processor 408 sends.CLB can transmit maximum Y blocks of data to processor 408 for each notice.Every is in response to the cache capable request of filling and is sent to processor 408 from CLB 404, described cache is capable fill the address of request and storage in CLB marker character 412 and be marked as one of effective address coupling.
CLB 404 has the strategy that reads once, in case so that processor high speed buffer memory from CLB data 414 reading of data clauses and subclauses the time, CLB 404 can be with these clauses and subclauses invalid (forgetting).If Y is greater than " 1 ", then CLB 404 makes each data block invalid separately when this storage unit is by access, and has had only when access when owning " Y " pieces, just makes the respective markers symbol invalid.Processor 408 is required all Y pieces that access is associated with notice.
Can to the unit that comprises in similar ground, the unit executive system 400 of the similar title that comprises in the system 100 of Fig. 1.System 400 comprises and compares unit more or still less with said system 100.In addition, system 400 in general with Fig. 2 and 3 in example work similarly, except external agent 402 is pressed into data in CLB 404 rather than the high-speed cache 104, and when requested date was present among the CLB 404, processor 408 required to insert high-speed cache from CLB 404.
Above-mentioned technology is not limited to any concrete hardware or software arrangements; Can in calculating miscellaneous or processing environment, use them.For example, the system that is used to handle network PDU can comprise one or more Physical layers (PHY) equipment (for example, wired, optics, perhaps wireless PHY) and one or more link layer device (for example, Ethernet medium access controller (MAC) or sonet frame regulator).Receive logic (for example, receiving hardware, processor, perhaps thread) can be placed on the descriptor of data that comprise or data in the high-speed cache of operation as mentioned above by request in PDU, the PDU that receives via PHY and link layer device is operated.Logic subsequently (for example, different threads or processor) can visit the relevant data of described PDU apace via high-speed cache, and in the middle of other operation, carry out bag and handle operation, for example bridge joint, route, determine service quality (QoS), determine flow process (for example, based on source and destination address and PDU port) or filtering.A kind of like this system can comprise network processing unit (NP), it is characterized in that it being the set that reduced instruction set computer calculates (RISC) processor.The thread of described NP processor can carry out aforesaid receive logic and bag is handled operation.
Described technology can realize with the form of hardware, software or both combinations.This technology can realize with the form of the program carried out on programmable machine, and described programmable machine for example is portable computer, static calculation machine, networked devices, personal digital assistant and the similar devices of the medium (comprising volatibility and nonvolatile memory and/or storage unit), at least one input equipment and the one or more output devices that include processor, can be read by this processor.Program code is applied to using the data of input equipment input, so that carry out above-mentioned functions and produce output information.Described output information is applied to one or more output devices.
Can realize each program with the form of advanced procedures or object oriented programming languages, so that communicate by letter with machine system.Yet, if desired, also can realize described program with the form of compilation or machine language.Under any circumstance, described language can be language compiling or that explain.
Can on storage medium or equipment, store each such program, described storage medium or equipment for example are compact disc read-only memory (CD), hard disk, floppy disk or the similar mediums or the equipment that can be read by general or special purpose programmable machine, described program is used for when described storage medium or equipment are read by computing machine, disposes and operates this machine and carry out illustrated in this article procedure.The form with the machinable medium that is configured to have a program that it is also conceivable that realizes this system, and the storage medium that is so disposed makes machine come work with specific and predetermined mode.
Other embodiment are also within the scope of following claims.

Claims (52)

1. equipment that is used for cache assignment comprises:
Cache;
Cache management mechanism is configured to allow the external agent to ask data are put in the described cache, and allows processor that data are pressed in the described cache.
2. equipment as claimed in claim 1 further comprises a throttle mechanism, can be by the visit of described cache management mechanism, and be configured to specified data and when can be placed in the described cache.
3. equipment as claimed in claim 1 is characterized in that: described cache management mechanism also is configured to maintain data that comprise in the described cache and the coherence between the copy that keeps data in primary memory.
4. equipment as claimed in claim 3 is characterized in that: described cache management mechanism also is configured to maintain data that comprise in the described cache and the coherence between the data that comprise in one or more other high-speed caches.
5. equipment as claimed in claim 4 is characterized in that: described cache management mechanism also is configured to make in described one or more other high-speed caches, invalid with the corresponding data of data that are sent to the described cache from described external agent.
6. equipment as claimed in claim 4 is characterized in that: described cache management mechanism also be configured to in described one or more other high-speed caches, upgrade with the corresponding data of data that are sent to the described cache from described external agent.
7. equipment as claimed in claim 1, it is characterized in that: described cache management mechanism also is configured to allow described external agent that primary memory is upgraded, and stores the copy of the data that kept in described cache in the described primary memory.
8. equipment as claimed in claim 1 is characterized in that: described cache management mechanism also is configured to allow described external agent's request to go distribution for these data in described cache.
9. equipment as claimed in claim 1 is characterized in that: the current data that this cache management mechanism also is configured to allow described external agent to make and comprises in described cache is rewritten.
10. equipment as claimed in claim 9 is characterized in that: the data that described cache management mechanism also is configured to be placed in the described cache are set to amended coherency states.
11. equipment as claimed in claim 10 is characterized in that: the data that described cache management mechanism also is configured to also be placed in the described cache are set to exclusive coherency states.
12. equipment as claimed in claim 10 is characterized in that: described cache management mechanism also is configured to also be placed into the coherency states that the data in the described cache are set to share.
13. equipment as claimed in claim 9 is characterized in that: the data that described cache management mechanism also is configured to be placed in the described cache are set to clean coherency states.
14. equipment as claimed in claim 13 is characterized in that: the data that described cache management mechanism also is configured to also be placed in the described cache are set to exclusive coherency states.
15. equipment as claimed in claim 13 is characterized in that: described cache management mechanism also is configured to also be placed into the coherency states that the data in the described cache are set to share.
16. equipment as claimed in claim 1, comprising further that at least one other cache store dashes deposits the germanium device, and described cache management mechanism also is configured to allow described external agent's request that data are put into described at least one other cache.
17. equipment as claimed in claim 16, it is characterized in that: described cache management mechanism also is configured to allow described external agent's request to go distribution at least one of described at least one other cache, so that data are put into wherein.
18. equipment as claimed in claim 16 is characterized in that: described cache management mechanism also is configured to allow described external agent's request to go distribution in a plurality of described other caches, so that data are put into wherein.
19. equipment as claimed in claim 16 is characterized in that: described cache management mechanism also is configured to, and the current data that allows described external agent that described other caches are comprised is rewritten.
20. equipment as claimed in claim 1 is characterized in that: described cache comprises a high-speed cache, this high-speed cache imitation primary memory, and other high-speed caches can be visited this high-speed cache when attempting to visit described primary memory.
21. equipment as claimed in claim 20 is characterized in that: after another high-speed cache carried out read operation, the row that comprises in described cache was disengaged distribution.
22. equipment as claimed in claim 20 is characterized in that: after another high-speed cache carried out read operation, row was converted to shared state.
23. equipment as claimed in claim 1 is characterized in that: described external agent comprises input-output apparatus.
24. equipment as claimed in claim 1 is characterized in that: described external agent comprises a different processor.
25. equipment as claimed in claim 1 is characterized in that: described data comprise at least a portion data at least one network communication protocol data cell.
26. a method that is used for cache assignment comprises:
Allow the external agent to send to being placed into the request of the data in the cache; And
Allow described external agent that the described data that will be placed in the cache are provided.
27. method as claimed in claim 26 further comprises allowing processor that data are pressed in the described cache.
28. method as claimed in claim 26, further comprise: allowing described cache is this data check cache, if and described cache do not comprise these data, then ask these data there from primary memory.
29. method as claimed in claim 26 further comprises: determine when described external agent can provide the data that will be placed in the described cache.
30. method as claimed in claim 26 further comprises: allowing described external agent to ask described cache is that described data in the cache are selected a storage unit.
31. method as claimed in claim 26 further comprises: upgrade described cache with the address of the described data in the primary memory.
32. method as claimed in claim 26 further comprises: the state with described data upgrades described cache.
33. method as claimed in claim 26 further comprises: with described data primary memory is upgraded from described external agent.
34. an equipment that is used for cache assignment comprises:
Be used for allowing the external agent to send device to the request of the data that will be placed into cache; And
Be used for allowing the external agent these data to be inserted the device of described cache.
35. equipment as claimed in claim 34 further comprises being used for allowing processor data to be pressed into the device of described cache.
36. equipment as claimed in claim 34, comprise that further being used to allow described cache is this data check cache, if and described cache do not comprise these data, then ask the device of these data there from primary memory.
37. equipment as claimed in claim 34 comprises that further being used for allowing described external agent to ask described cache is the device that the described data of cache are selected a storage unit.
38. a system that is used for cache assignment comprises:
Cache; And
Memory management mechanism is configured to allow the external agent to ask described cache:
The delegation of selecting described cache is as the victim, and described row comprises data, and
Use from described external agent's new data and replace this data.
39. system as claimed in claim 38 is characterized in that: described memory management mechanism also is configured to allow described external agent with the described cache of the position renewal of this new data in primary memory.
40. system as claimed in claim 39 is characterized in that: described memory management mechanism also is configured to allow described external agent to upgrade primary memory with new data.
41. system as claimed in claim 39 further comprises:
Processor; And
The cache management mechanism that comprises in described processor, it is configured to manage the access of described processor to described cache.
42. system as claimed in claim 39, further comprise the cache that at least one is extra, described memory management mechanism also is configured to allow described external agent to ask some in the described extra cache memory or is all distributing delegation in corresponding extra cache memory.
43. system as claimed in claim 42 is characterized in that: described memory management mechanism also be configured to in described extra cache, with upgrade from the corresponding data of described external agent's new data.
44. system as claimed in claim 39 further comprises primary memory, it is configured to store the master copy of the data that comprise in the described cache.
45. system as claimed in claim 39 further comprises the external agent that at least one is extra, described memory management mechanism is configured to allow each extra external agent to ask described cache:
The delegation of selecting described cache is as the victim, and described row comprises data, and
Use from the described extra external agent's who files a request new data and replace this data.
46. system as claimed in claim 39 is characterized in that: described external agent also is configured to only some new datas are pressed in the described cache.
47. system as claimed in claim 46 further comprises network interface, it is configured to be pressed into more described new datas.
48. system as claimed in claim 46 is characterized in that: the part new data that described external agent also is configured to not to be pressed in the described cache writes primary memory.
49. system as claimed in claim 39 is characterized in that: data comprise descriptor.
50. a system that is used for cache assignment comprises:
At least one Physical layer (PHY) equipment;
At least one Ethernet medium access controller (MAC) equipment is used for the data that receive via PHY are carried out the link layer operation;
Be used to ask logic via at least a portion of the data that received by at least one PHY of high-speed cache and at least one MAC; And
High-speed cache, described high-speed cache comprises:
Cache;
Cache management mechanism is configured to
In response to described request, at least a portion of the data that will receive via at least one PHY and at least one MAC is placed in the described cache; And
In response to not being stored in the request of the data in the described cache, allow processor that data are pressed in the described cache.
51. system as claimed in claim 50 is characterized in that: at least one thread in the sets of threads that is provided by network processing unit is provided described logic.
52. system as claimed in claim 50 further comprises being used for handling at least a logic operating to carry out following bag from described high-speed cache data retrieved: bridge joint, route, determine service quality, determine flow process and filtering.
CNB200310125194XA 2003-04-02 2003-12-30 High speed buffer storage distribution Expired - Fee Related CN100394406C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/406,798 US20040199727A1 (en) 2003-04-02 2003-04-02 Cache allocation
US10/406,798 2003-04-02

Publications (2)

Publication Number Publication Date
CN1534487A CN1534487A (en) 2004-10-06
CN100394406C true CN100394406C (en) 2008-06-11

Family

ID=33097389

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200310125194XA Expired - Fee Related CN100394406C (en) 2003-04-02 2003-12-30 High speed buffer storage distribution

Country Status (6)

Country Link
US (1) US20040199727A1 (en)
EP (1) EP1620804A2 (en)
KR (1) KR101038963B1 (en)
CN (1) CN100394406C (en)
TW (1) TWI259976B (en)
WO (1) WO2004095291A2 (en)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030097582A1 (en) * 2001-11-19 2003-05-22 Yves Audebert Method and system for reducing personal security device latency
US7836165B2 (en) * 2003-11-25 2010-11-16 Intel Corporation Direct memory access (DMA) transfer of network interface statistics
US8117356B1 (en) 2010-11-09 2012-02-14 Intel Corporation Direct memory access (DMA) transfer of network interface statistics
US20050111448A1 (en) * 2003-11-25 2005-05-26 Narad Charles E. Generating packets
US20060072563A1 (en) * 2004-10-05 2006-04-06 Regnier Greg J Packet processing
US7360027B2 (en) * 2004-10-15 2008-04-15 Intel Corporation Method and apparatus for initiating CPU data prefetches by an external agent
US20060095679A1 (en) * 2004-10-28 2006-05-04 Edirisooriya Samantha J Method and apparatus for pushing data into a processor cache
US7574568B2 (en) * 2004-12-06 2009-08-11 Intel Corporation Optionally pushing I/O data into a processor's cache
US20060143396A1 (en) * 2004-12-29 2006-06-29 Mason Cabot Method for programmer-controlled cache line eviction policy
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7404045B2 (en) * 2005-12-30 2008-07-22 International Business Machines Corporation Directory-based data transfer protocol for multiprocessor system
US7711890B2 (en) * 2006-06-06 2010-05-04 Sandisk Il Ltd Cache control in a non-volatile memory device
US7761666B2 (en) * 2006-10-26 2010-07-20 Intel Corporation Temporally relevant data placement
KR101469512B1 (en) 2007-01-10 2014-12-05 모바일 세미컨덕터 코오포레이션 Adaptive memory system for enhancing the performance of an external computing device
US20080229325A1 (en) * 2007-03-15 2008-09-18 Supalov Alexander V Method and apparatus to use unmapped cache for interprocess communication
GB2454809B (en) * 2007-11-19 2012-12-19 St Microelectronics Res & Dev Cache memory system
GB0722707D0 (en) * 2007-11-19 2007-12-27 St Microelectronics Res & Dev Cache memory
US9229887B2 (en) * 2008-02-19 2016-01-05 Micron Technology, Inc. Memory device with network on chip methods, apparatus, and systems
US8086913B2 (en) 2008-09-11 2011-12-27 Micron Technology, Inc. Methods, apparatus, and systems to repair memory
IL211490A (en) * 2010-03-02 2016-09-29 Marvell Israel(M I S L ) Ltd Pre-fetching of data packets
US8327047B2 (en) 2010-03-18 2012-12-04 Marvell World Trade Ltd. Buffer manager and methods for managing memory
US9123552B2 (en) 2010-03-30 2015-09-01 Micron Technology, Inc. Apparatuses enabling concurrent communication between an interface die and a plurality of dice stacks, interleaved conductive paths in stacked devices, and methods for forming and operating the same
JP5663941B2 (en) * 2010-04-30 2015-02-04 富士ゼロックス株式会社 Printed document conversion apparatus and program
US9703706B2 (en) * 2011-02-28 2017-07-11 Oracle International Corporation Universal cache management system
US9477600B2 (en) 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US8935485B2 (en) 2011-08-08 2015-01-13 Arm Limited Snoop filter and non-inclusive shared cache memory
CN104704569B (en) * 2012-12-19 2017-11-14 慧与发展有限责任合伙企业 NVRAM Path selections
JP2014191622A (en) * 2013-03-27 2014-10-06 Fujitsu Ltd Processor
US9218291B2 (en) * 2013-07-25 2015-12-22 International Business Machines Corporation Implementing selective cache injection
US9921989B2 (en) 2014-07-14 2018-03-20 Intel Corporation Method, apparatus and system for modular on-die coherent interconnect for packetized communication
US9678875B2 (en) * 2014-11-25 2017-06-13 Qualcomm Incorporated Providing shared cache memory allocation control in shared cache memory systems
EP3066572B1 (en) * 2014-12-14 2020-02-19 VIA Alliance Semiconductor Co., Ltd. Cache memory budgeted by chunks based on memory access type
US10922228B1 (en) 2015-03-31 2021-02-16 EMC IP Holding Company LLC Multiple location index
US10210087B1 (en) 2015-03-31 2019-02-19 EMC IP Holding Company LLC Reducing index operations in a cache
JP6674085B2 (en) * 2015-08-12 2020-04-01 富士通株式会社 Arithmetic processing unit and control method of arithmetic processing unit
US10545872B2 (en) * 2015-09-28 2020-01-28 Ikanos Communications, Inc. Reducing shared cache requests and preventing duplicate entries
US11119923B2 (en) * 2017-02-23 2021-09-14 Advanced Micro Devices, Inc. Locality-aware and sharing-aware cache coherence for collections of processors
US11727997B2 (en) 2017-07-07 2023-08-15 Micron Technology, Inc. RPMB improvements to managed NAND
US10698472B2 (en) * 2017-10-27 2020-06-30 Advanced Micro Devices, Inc. Instruction subset implementation for low power operation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0870303A1 (en) * 1995-12-29 1998-10-14 Mukesh Chatter High performance universal multi-port internally cached dynamic random access memory system, architecture and method
CN1236136A (en) * 1998-03-23 1999-11-24 国际商业机器公司 High speed remote storage cluster interface controller
CN1289419A (en) * 1998-02-10 2001-03-28 国际商业机器公司 Compression store free-space management

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4785395A (en) * 1986-06-27 1988-11-15 Honeywell Bull Inc. Multiprocessor coherent cache system including two level shared cache with separately allocated processor storage locations and inter-level duplicate entry replacement
US5493668A (en) * 1990-12-14 1996-02-20 International Business Machines Corporation Multiple processor system having software for selecting shared cache entries of an associated castout class for transfer to a DASD with one I/O operation
US5276835A (en) * 1990-12-14 1994-01-04 International Business Machines Corporation Non-blocking serialization for caching data in a shared cache
US5287473A (en) * 1990-12-14 1994-02-15 International Business Machines Corporation Non-blocking serialization for removing data from a shared cache
US5398245A (en) * 1991-10-04 1995-03-14 Bay Networks, Inc. Packet processing method and apparatus
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5915129A (en) * 1994-06-27 1999-06-22 Microsoft Corporation Method and system for storing uncompressed data in a memory cache that is destined for a compressed file system
EP0735480B1 (en) * 1995-03-31 2003-06-04 Sun Microsystems, Inc. Cache coherent computer system that minimizes invalidation and copyback operations
DE69616402T2 (en) * 1995-03-31 2002-07-18 Sun Microsystems Inc Fast two-port cache control circuit for data processors in a packet-switched cache-coherent multiprocessor system
US5592432A (en) * 1995-09-05 1997-01-07 Emc Corp Cache management system using time stamping for replacement queue
US5701432A (en) * 1995-10-13 1997-12-23 Sun Microsystems, Inc. Multi-threaded processing system having a cache that is commonly accessible to each thread
US6091725A (en) * 1995-12-29 2000-07-18 Cisco Systems, Inc. Method for traffic management, traffic prioritization, access control, and packet forwarding in a datagram computer network
US6223260B1 (en) * 1996-01-25 2001-04-24 Unisys Corporation Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states
US5878268A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node
US5926834A (en) * 1997-05-29 1999-07-20 International Business Machines Corporation Virtual data storage system with an overrun-resistant cache using an adaptive throttle based upon the amount of cache free space
JPH113284A (en) * 1997-06-10 1999-01-06 Mitsubishi Electric Corp Information storage medium and its security method
JP3185863B2 (en) * 1997-09-22 2001-07-11 日本電気株式会社 Data multiplexing method and apparatus
US6157955A (en) * 1998-06-15 2000-12-05 Intel Corporation Packet processing system including a policy engine having a classification unit
US6314496B1 (en) * 1998-06-18 2001-11-06 Compaq Computer Corporation Method and apparatus for developing multiprocessor cache control protocols using atomic probe commands and system data control response commands
US6321296B1 (en) * 1998-08-04 2001-11-20 International Business Machines Corporation SDRAM L3 cache using speculative loads with command aborts to lower latency
US6421762B1 (en) * 1999-06-30 2002-07-16 International Business Machines Corporation Cache allocation policy based on speculative request history
US6687698B1 (en) * 1999-10-18 2004-02-03 Fisher Rosemount Systems, Inc. Accessing and updating a configuration database from distributed physical locations within a process control system
US6721335B1 (en) * 1999-11-12 2004-04-13 International Business Machines Corporation Segment-controlled process in a link switch connected between nodes in a multiple node network for maintaining burst characteristics of segments of messages
US6351796B1 (en) * 2000-02-22 2002-02-26 Hewlett-Packard Company Methods and apparatus for increasing the efficiency of a higher level cache by selectively performing writes to the higher level cache
US6654766B1 (en) * 2000-04-04 2003-11-25 International Business Machines Corporation System and method for caching sets of objects
EP1299801B1 (en) * 2000-06-12 2010-12-29 MIPS Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
WO2002001573A1 (en) * 2000-06-27 2002-01-03 Koninklijke Philips Electronics N.V. Integrated circuit with flash memory
US6745293B2 (en) * 2000-08-21 2004-06-01 Texas Instruments Incorporated Level 2 smartcache architecture supporting simultaneous multiprocessor accesses
DE60041444D1 (en) * 2000-08-21 2009-03-12 Texas Instruments Inc microprocessor
US6651145B1 (en) * 2000-09-29 2003-11-18 Intel Corporation Method and apparatus for scalable disambiguated coherence in shared storage hierarchies
US6751704B2 (en) * 2000-12-07 2004-06-15 International Business Machines Corporation Dual-L2 processor subsystem architecture for networking system
US7032035B2 (en) * 2000-12-08 2006-04-18 Intel Corporation Method and apparatus for improving transmission performance by caching frequently-used packet headers
US6801208B2 (en) * 2000-12-27 2004-10-05 Intel Corporation System and method for cache sharing
US6499085B2 (en) * 2000-12-29 2002-12-24 Intel Corporation Method and system for servicing cache line in response to partial cache line request
US6763434B2 (en) * 2000-12-30 2004-07-13 International Business Machines Corporation Data processing system and method for resolving a conflict between requests to modify a shared cache line
US6988167B2 (en) * 2001-02-08 2006-01-17 Analog Devices, Inc. Cache system with DMA capabilities and method for operating same
JP2002251313A (en) * 2001-02-23 2002-09-06 Fujitsu Ltd Cache server and distributed cache server system
US20030177175A1 (en) * 2001-04-26 2003-09-18 Worley Dale R. Method and system for display of web pages
US6915396B2 (en) * 2001-05-10 2005-07-05 Hewlett-Packard Development Company, L.P. Fast priority determination circuit with rotating priority
JP3620473B2 (en) * 2001-06-14 2005-02-16 日本電気株式会社 Method and apparatus for controlling replacement of shared cache memory
US6704840B2 (en) * 2001-06-19 2004-03-09 Intel Corporation Computer system and method of computer initialization with caching of option BIOS
US6760809B2 (en) * 2001-06-21 2004-07-06 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system having remote memory cache incorporated within system memory
US6839808B2 (en) * 2001-07-06 2005-01-04 Juniper Networks, Inc. Processing cluster having multiple compute engines and shared tier one caches
US7152118B2 (en) * 2002-02-25 2006-12-19 Broadcom Corporation System, method and computer program product for caching domain name system information on a network gateway
US6947971B1 (en) * 2002-05-09 2005-09-20 Cisco Technology, Inc. Ethernet packet header cache
US20040068607A1 (en) * 2002-10-07 2004-04-08 Narad Charles E. Locking memory locations
US6711650B1 (en) * 2002-11-07 2004-03-23 International Business Machines Corporation Method and apparatus for accelerating input/output processing using cache injections
US7831974B2 (en) * 2002-11-12 2010-11-09 Intel Corporation Method and apparatus for serialized mutual exclusion
US7404040B2 (en) * 2004-12-30 2008-07-22 Intel Corporation Packet data placement in a processor cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0870303A1 (en) * 1995-12-29 1998-10-14 Mukesh Chatter High performance universal multi-port internally cached dynamic random access memory system, architecture and method
CN1289419A (en) * 1998-02-10 2001-03-28 国际商业机器公司 Compression store free-space management
CN1236136A (en) * 1998-03-23 1999-11-24 国际商业机器公司 High speed remote storage cluster interface controller

Also Published As

Publication number Publication date
WO2004095291A3 (en) 2006-02-02
WO2004095291A2 (en) 2004-11-04
EP1620804A2 (en) 2006-02-01
US20040199727A1 (en) 2004-10-07
TWI259976B (en) 2006-08-11
KR101038963B1 (en) 2011-06-03
KR20060006794A (en) 2006-01-19
CN1534487A (en) 2004-10-06
TW200426675A (en) 2004-12-01

Similar Documents

Publication Publication Date Title
CN100394406C (en) High speed buffer storage distribution
TWI463318B (en) Cache coherent processing system,cache memory and method for the same
TWI391821B (en) Processor unit, data processing system and method for issuing a request on an interconnect fabric without reference to a lower level cache based upon a tagged cache state
CN1307559C (en) Cache line pre-load and pre-own based on cache coherence speculation
US10025713B2 (en) System and method for removing data from processor caches in a distributed multi-processor computer system
CN100373353C (en) Computer system with processor cache that stores remote cache presence information
CN101149706B (en) Processor, data processing system and method supporting coherency management of castouts
US5555391A (en) System and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be written
TWI393005B (en) Data processing system, cache system and method for handling a flush operation in a data processing system having multiple coherency domains
JP3199718B2 (en) Cache coherency maintenance method
US6938128B1 (en) System and method for reducing memory latency during read requests
CN100592269C (en) Data processing system and method for predictively selecting a scope of a prefetch operation
KR100978156B1 (en) Method, apparatus, system and computer readable recording medium for line swapping scheme to reduce back invalidations in a snoop filter
JPH0962558A (en) Method and system for database management
US6662276B2 (en) Storing directory information for non uniform memory architecture systems using processor cache
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
IL131924A (en) Reservation management in a non-uniform memory access (numa) data processing system
US6915387B1 (en) System and method for handling updates to memory in a distributed shared memory system
CN1330783A (en) Non-uniform memory access (NUMA) data processing system that speculatively forwards read reguest to remote processing node
JP2008097598A (en) Processor, data processing system and method supporting shared global coherency state
US8176261B2 (en) Information processing apparatus and data transfer method
US6829683B1 (en) System and method for transferring ownership of data in a distributed shared memory system
US20010025335A1 (en) Method for increasing efficiency in a multi-processor system and multi-processor system with increased efficiency
CN1226706A (en) Cache coherency protocol having hovering (H) and recent (R) states
US6678798B1 (en) System and method for reducing memory latency during read requests

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080611

Termination date: 20181230

CF01 Termination of patent right due to non-payment of annual fee