Associative Patents (Class 711/128)
  • Patent number: 8037251
    Abstract: A method, an apparatus and a program product may enable scalable bandwidth and memory for a system having processor with directly attached memory. Multiple memory expander microchips may include non-volatile memory to provide additional memory bandwidth and capacity while in communication with the processor. The uncompressed data region may be implemented with standard high speed dynamic random access memory. The less frequently accessed compressed data region may be implemented with non-volatile memory to leverage its benefits of higher density, more capacity, and lower power compared to DRAM. Memory and bandwidth allocation between may be dynamically adjusted.
    Type: Grant
    Filed: July 14, 2008
    Date of Patent: October 11, 2011
    Assignee: International Business Machines Corporation
    Inventor: John M. Borkenhagen
  • Publication number: 20110238918
    Abstract: An apparatus, as well as systems, methods, and articles can operate to record the address of write operations to a memory cached by a non-volatile cache prior to executing an operating system cache driver. In an embodiment, a non-volatile cache may be implemented by creating a device option read only memory (ROM), or modifying the associated computer basic input-output system (BIOS) to trap software interrupts associated with disk and other media access requests. Associated addresses, such as logical block addresses, can be stored in a log for data that is modified. The resulting log can be stored in a non-volatile medium, including the cache itself. If the available log space is not large enough to record all write activity prior to loading operating system drivers, a flag may be set to indicate the overrun condition.
    Type: Application
    Filed: March 29, 2011
    Publication date: September 29, 2011
    Inventors: Robert J. Royer, JR., Richard L. Coulson
  • Patent number: 8028128
    Abstract: In a method of managing a cache directory in a memory system, an original system address is presented to the cache directory when corresponding associativity data is allocated to an associativity class in the cache directory. The original system address is normalized by removing address space corresponding to a memory hole, thereby generating a normalized address. The normalized address is stored in the cache directory. The normalized address is de-normalized, thereby generating a de-normalized address, when the associativity data is cast out of the cache directory to make room for new associativity data. The de-normalized address is sent to the memory system for coherency management.
    Type: Grant
    Filed: October 10, 2007
    Date of Patent: September 27, 2011
    Assignee: International Business Machines Corporation
    Inventors: Duane A. Averill, Herman L. Blackmon, Joseph A. Kirscht, David A. Shedivy
  • Publication number: 20110231598
    Abstract: According to one embodiment, a memory system includes a first memory that is nonvolatile, a second memory, and a controller that performs data transfer between a host device and the first memory by using the second memory. The controller caches data of each write command transmitted from the host device in the second memory, and performs a first transfer of transferring the data of each write command, which is cached in the second memory, to the first memory while leaving a beginning portion at a predetermined timing.
    Type: Application
    Filed: July 13, 2010
    Publication date: September 22, 2011
    Applicant: KABUSHIKI KAISHA TOSHIBA
    Inventor: Kosuke HATSUDA
  • Patent number: 8019945
    Abstract: A computer-implemented method and system to support transactional caching service comprises configuring a transactional cache that are associated with one or more transactions and one or more work spaces; maintaining an internal mapping between the one or more transactions and the one or more work spaces in a transactional decorator; getting a transaction with one or more operations; using the internal mapping in the transactional decorator to find a work space for the transaction; and applying the one or more operations of the transaction to the workspace associated with the transaction.
    Type: Grant
    Filed: January 30, 2009
    Date of Patent: September 13, 2011
    Assignee: Oracle International Corporation
    Inventor: Naresh Revanuru
  • Patent number: 7996620
    Abstract: A cache memory high performance pseudo dynamic address compare path divides the address into two or more address segments. Each segment is separately compared in a comparator comprised of static logic elements. The output of each of these static comparators is then combined in a dynamic logic circuit to generate a dynamic late select output.
    Type: Grant
    Filed: September 5, 2007
    Date of Patent: August 9, 2011
    Assignee: International Business Machines Corporation
    Inventors: Yuen H. Chan, Ann H. Chen, Kenneth M. Lo, Shie-ei Wang
  • Patent number: 7996644
    Abstract: An apparatus and method for fairly accessing a shared cache with multiple resources, such as multiple cores, multiple threads, or both are herein described. A resource within a microprocessor sharing access to a cache is assigned a static portion of the cache and a dynamic portion. The resource is blocked from victimizing static portions assigned to other resources, yet, allowed to victimize the static portion assigned to the resource and the dynamically shared portion. If the resource does not access the cache enough times over a period of time, the static portion assigned to the resource is reassigned to the dynamically shared portion.
    Type: Grant
    Filed: December 29, 2004
    Date of Patent: August 9, 2011
    Assignee: Intel Corporation
    Inventor: Sailesh Kottapalli
  • Patent number: 7996619
    Abstract: A method and apparatus for a k-way direct mapped cache organization is herein described. Control logic coupled to a cache may associate an address to a way within a plurality based on a first portion of the address. The control logic may match the first portion of the address to a predefined value in a mapping table, wherein the predefined value in the mapping table is associated with the way. In addition, the control logic may map the address to a set within cache based on a second portion of the address.
    Type: Grant
    Filed: April 22, 2004
    Date of Patent: August 9, 2011
    Assignee: Intel Corporation
    Inventor: Kiran R. Desai
  • Patent number: 7995595
    Abstract: According to one embodiment, node addresses are efficiently detected. For example, a node address is extracted from a packet that is being communicated from a first network to a second network through a network element. An abstraction of the node address is determined. A determination is made as to any previously received packets correspond to the node address by comparing the abstraction to a plurality of abstractions that correspond to node addresses extracted from the plurality of previously received packets. The abstraction is added to the plurality of abstractions if the node address is not associated with any of the previously received packets.
    Type: Grant
    Filed: October 30, 2008
    Date of Patent: August 9, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Jeffery C. Mogul
  • Publication number: 20110179230
    Abstract: A method of read-set and write-set management distinguishes between shared and non-shared memory regions. A shared memory region, used by a transactional memory application, which may be shared by one or more concurrent transactions is identified. A non-shared memory region, used by the transactional memory application, which is not shared by the one or more concurrent transactions is identified. A subset of a read-set and a write-set that access the shared memory region is checked for conflicts with the one or more concurrent transactions at a first granularity. A subset of the read-set and the write-set that access the non-shared memory region is checked for conflicts with the one or more concurrent transactions at a second granularity. The first granularity is finer than the second granularity.
    Type: Application
    Filed: January 15, 2010
    Publication date: July 21, 2011
    Applicant: Sun Microsystems, Inc.
    Inventor: Yuan C. Chou
  • Patent number: 7984229
    Abstract: A cache design is described in which corresponding accesses to tag and information arrays are phased in time, and in which tags are retrieved (typically speculatively) from a tag array without benefit of an effective address calculation subsequently used for a corresponding retrieval from an information array. In some exploitations, such a design may allow cycle times (and throughput) of a memory subsystem to more closely match demands of some processor and computation system architectures. Our techniques seek to allow early (indeed speculative) retrieval from the tag array without delays that would otherwise be associated with calculation of an effective address eventually employed for a corresponding retrieval from the information array. Speculation can be resolved using the eventually calculated effective address or using separate functionality. In some embodiments, we use calculated effective addresses for way selection based on tags retrieved from the tag array.
    Type: Grant
    Filed: March 9, 2007
    Date of Patent: July 19, 2011
    Assignee: Freescale Semiconductor, Inc.
    Inventors: Ravindraraj Ramaraju, Ambica Ashok, David R. Bearden, Prashant U. Kenkare
  • Patent number: 7979640
    Abstract: Embodiments of the present invention provide a system that handles way mispredictions in a multi-way cache. The system starts by receiving requests to access cache lines in the multi-way cache. For each request, the system makes a prediction of a way in which the cache line resides based on a corresponding entry in the way prediction table. The system then checks for the presence of the cache line in the predicted way. Upon determining that the cache line is not present in the predicted way, but is present in a different way, and hence the way was mispredicted, the system increments a corresponding record in a conflict detection table. Upon detecting that a record in the conflict detection table indicates that a number of mispredictions equals a predetermined value, the system copies the corresponding cache line from the way where the cache line actually resides into the predicted way.
    Type: Grant
    Filed: July 28, 2008
    Date of Patent: July 12, 2011
    Assignee: Oracle America, Inc.
    Inventors: Shailender Chaudhry, Robert E. Cypher, Martin Karlsson
  • Publication number: 20110161548
    Abstract: A cache manager receives a request for data, which includes a requested effective address. The cache manager determines whether the requested effective address matches a most recently used effective address stored in a mapped tag vector. When the most recently used effective address matches the requested effective address, the cache manager identifies a corresponding cache location and retrieves the data from the identified cache location. However, when the most recently used effective address fails to match the requested effective address, the cache manager determines whether the requested effective address matches a subsequent effective address stored in the mapped tag vector. When the cache manager determines a match to a subsequent effective address, the cache manager identifies a different cache location corresponding to the subsequent effective address and retrieves the data from the different cache location.
    Type: Application
    Filed: December 29, 2009
    Publication date: June 30, 2011
    Applicant: International Business Machines Corporation
    Inventors: Brian Flachs, Barry L. Minor, Mark Richard Nutter
  • Publication number: 20110161595
    Abstract: Methods and apparatus to provide for power consumption reduction in memories (such as cache memories) are described. In one embodiment, a virtual tag is used to determine whether to access a cache way. The virtual tag access and comparison may be performed earlier in the read pipeline than the actual tag access or comparison. In another embodiment, a speculative way hit may be used based on pre-ECC partial tag match to wake up a subset of data arrays. Other embodiments are also described.
    Type: Application
    Filed: December 26, 2009
    Publication date: June 30, 2011
    Inventors: Zhen Fang, Meenakshisundara R. Chinthamani, Li Zhao, Milind B. Kamble, Ravishankar Iyer, Seung Eun Lee, Robert S. Chappell, Ryan L. Carlson
  • Publication number: 20110153942
    Abstract: A processor may include several processor cores, each including a respective higher-level cache, wherein each higher-level cache includes higher-level cache lines; and a lower-level cache including lower-level cache lines, where each of the lower-level cache lines may be configured to store data that corresponds to multiple higher-level cache lines. In response to invalidating a given lower-level cache line, the lower-level cache may be configured to convey a sequence including several invalidation packets to the processor cores via an interface, where each member of the sequence of invalidation packets corresponds to a respective higher-level cache line to be invalidated, and where the interface is narrower than an interface capable of concurrently conveying all invalidation information corresponding to the given lower-level cache line. Each invalidation packet may include invalidation information indicative of a location of the respective higher-level cache line within different ones of the processor cores.
    Type: Application
    Filed: December 21, 2009
    Publication date: June 23, 2011
    Inventors: Prashant Jain, Sandip Das, Sanjay Patel
  • Publication number: 20110153926
    Abstract: In one embodiment, a cache memory includes entries each to store a ring level identifier, which may indicate a privilege level of information stored in the entry. This identifier may be used in performing read accesses to the cache memory. As an example, a logic coupled to the cache memory may filter an access to one or more ways of a selected set of the cache memory based at least in part on a current privilege level of a processor and the ring level identifier of the one or more ways. Other embodiments are described and claimed.
    Type: Application
    Filed: December 23, 2009
    Publication date: June 23, 2011
    Inventors: Zhen Fang, Li Zhao, Ravishankar Iyer, Tong Li, Donald K. Newell
  • Patent number: 7966450
    Abstract: A non-volatile hard disk drive cache system is coupled between a processor and a hard disk drive. The cache system includes a control circuit, a non-volatile memory and a volatile memory. The control circuit causes a subset of the data stored in the hard disk drive to be written to the non-volatile memory. In response to a request to read data from the hard disk drive, the control circuit first determines if the requested read data are stored in the non-volatile memory. If so, the requested read data are provided from the non-volatile memory. Otherwise, the requested read data are provided from the hard disk drive. The volatile memory is used as a write buffer and to store disk access statistics, such as the disk drive locations that are most frequently read, which are used by the control circuit to determine which data to store in the non-volatile memory.
    Type: Grant
    Filed: September 1, 2005
    Date of Patent: June 21, 2011
    Assignee: Micron Technology, Inc.
    Inventor: Dean A. Klein
  • Patent number: 7966455
    Abstract: A method, apparatus and program product enable scalable bandwidth and memory for a system having processor with directly attached memory. Multiple memory expander microchips provide the additional bandwidth and memory while in communication with the processor. Lower latency data may be stored in a memory expander microchip node in the most direct communication with the processor. Memory and bandwidth allocation between may be dynamically adjusted.
    Type: Grant
    Filed: March 4, 2008
    Date of Patent: June 21, 2011
    Assignee: International Business Machines Corporation
    Inventor: John M. Borkenhagen
  • Patent number: 7962695
    Abstract: A method of integrating a hybrid architecture in a set associative cache having a first type of memory structure for one or more ways in each congruence class, and a second type of memory structure for the remaining ways of the congruence class, includes determining whether a memory access request results in a cache hit or a cache miss; in the event of a cache miss, determining whether LRU way of the first type memory structure is also the LRU way of the entire congruence class, and if not, then copying the contents of the LRU way of the first type memory structure into the LRU way of the entire congruence class, and filling the LRU way of the first type memory structure with a new cache line in the event of a cache miss; and updating LRU bits, depending upon the results of the memory access request.
    Type: Grant
    Filed: December 4, 2007
    Date of Patent: June 14, 2011
    Assignee: International Business Machines Corporation
    Inventors: Marc R. Faucher, Hillery C. Hunter, William R. Reohr, Peter A. Sandon, Vijayalakshmi Srinivasan, Arnold S. Tran
  • Patent number: 7962694
    Abstract: In an embodiment, a method is provided. The method of this embodiment provides receiving a request for data from a processor of a plurality of processors, determining a cache entry location based, at least in part, on the request, storing the data in a cache corresponding to the processor at the cache entry location, and storing a coherency record corresponding to the data in a snoop filter in accordance with one of the following, if there is a cache miss: at the cache entry location of a corresponding affinity in the snoop filter if the cache entry location is found in the corresponding affinity, or at a derived cache entry location of the corresponding affinity if the cache entry location is not found in the corresponding affinity.
    Type: Grant
    Filed: December 14, 2006
    Date of Patent: June 14, 2011
    Assignee: Intel Corporation
    Inventors: Meenakshisundaram R. Chinthamani, Kai Cheng, Malcolm Mandviwalla, Bahaa Fahim, Keith R. Pflederer
  • Publication number: 20110138127
    Abstract: A stress of a computerized system may be detected based on actions performed by the computerized system in respect to a storage system, such as comprising a secondary storage. The stress detection may be performed automatically based on an age of data blocks accessed by the storage system. The stress may take into account a number of accesses to the storage system by the computerized system. Stress detection may be performed automatically based on a decision procedure.
    Type: Application
    Filed: December 3, 2009
    Publication date: June 9, 2011
    Applicant: International Business Machines Corporation
    Inventors: Shmuel Ben-Yehuda, Avichai Giat, Dan Pelleg
  • Publication number: 20110113198
    Abstract: The present invention discloses a method comprising: sending request for data to a memory controller; arranging the request for data by order of importance or priority; identifying a source of the request for data; if the source is an input/output device, masking off P ways in a cache; and allocating ways in filling the cache. The method further includes extending cache allocation logic to control a tag comparison operation by using a bit to provide a hint from IO devices that certain ways will not have requested data.
    Type: Application
    Filed: November 12, 2009
    Publication date: May 12, 2011
    Inventors: Liqun Cheng, Zhen Fang, Jeffrey Wilder, Sadagopan Srinivasan, Ravishankar Iyer, Donald Newell
  • Patent number: 7941606
    Abstract: Flow identification value masks are identified based on, and used to mask a flow identification value associated with packets in a router, packet switching or computer system, any other device. These masks may be specified in access control lists or using any other mechanism, and typically are added to an associative memory or other mechanism keyed on their corresponding flow identification values for performing fast lookup operations. A lookup operation is performed based on the flow identification value associated with a particular packet to identify the correspond mask, which is then used to produce a masked flow identification value, and based on which, a value is updated in a data structure and/or other processing of the packet is performed.
    Type: Grant
    Filed: July 22, 2003
    Date of Patent: May 10, 2011
    Assignee: Cisco Technology, Inc.
    Inventors: Venkateshwar Rao Pullela, Stephen Francis Scheid
  • Patent number: 7941605
    Abstract: Methods and apparatus are disclosed for generating a result based on a lookup result from a lookup operation using an associative memory and processing based on a discriminator portion of a lookup word. A first lookup operation is performed to generate a lookup result. In one implementation, a second lookup operation is performed based on a discriminator or the lookup result depending on the result of an evaluation, such as whether there was a hit or the lookup result matches a predetermined value. In one implementation, a second lookup operation is performed based on the discriminator, and either the result of the first or second lookup operation is used for subsequent processing. One implementation performs a lookup operation based on a lookup word to generate a lookup result, which is used to retrieve a base address and a bitmap from a memory.
    Type: Grant
    Filed: November 1, 2002
    Date of Patent: May 10, 2011
    Assignee: Cisco Technology, Inc
    Inventors: Eyal Oren, Oded Trainin, Gil Goren
  • Patent number: 7934114
    Abstract: The method of controlling an information processing device according to the present invention is a method of controlling an information processing device which includes a processor having a cache memory, and a clock supplying unit that supplies a clock signal to the processor. The method includes: predicting a hit rate of the cache memory; and controlling the clock supplying unit so as to change a frequency of the clock signal in accordance with the predicted hit rate.
    Type: Grant
    Filed: June 4, 2007
    Date of Patent: April 26, 2011
    Assignee: PANASONIC Corporation
    Inventor: Gen Fukatsu
  • Patent number: 7934054
    Abstract: A re-fetching cache memory improves efficiency of a system, for example by advantageously sharing the cache memory and/or by increasing performance. When some or all of the cache memory is temporarily used for another purpose, some or all of a data portion of the cache memory is flushed, and some or all of a tag portion is saved in an archive. In some embodiments, some or all of the tag portion operates “in-place” as the archive, and in further embodiments, is placed in a reduced-power mode. When the temporary use completes, optionally and/or selectively, at least some of the tag portion is repopulated from the archive, and the data portion is re-fetched according to the repopulated tag portion. According to various embodiments, processor access to the cache is enabled during one or more of: the saving; the repopulating; and the re-fetching.
    Type: Grant
    Filed: May 22, 2007
    Date of Patent: April 26, 2011
    Assignee: Oracle America, Inc.
    Inventors: Laurent R. Moll, Peter N. Glaskowsky, Joseph B. Rowlands
  • Patent number: 7930514
    Abstract: A method, system, and computer program product for implementing a dual-addressable cache is provided. The method includes adding fields for indirect indices to each congruence class provided in a cache directory. The cache directory is indexed by primary addresses. In response to a request for a primary address based upon a known secondary address corresponding to the primary address, the method also includes generating an index for the secondary address, and inserting or updating one of the indirect indices into one of the fields for a congruence class relating to the secondary address. The indirect index is assigned a value of a virtual index corresponding to the primary address. The method further includes searching congruence classes of each of the indirect indices for the secondary address.
    Type: Grant
    Filed: February 9, 2005
    Date of Patent: April 19, 2011
    Assignee: International Business Machines Corporation
    Inventors: Norbert Hagspiel, Erwin Pfeffer, Bruce A. Wagar
  • Patent number: 7925857
    Abstract: In a method of generating a cache directory to include a plurality of associativity classes, each associativity class includes an address tag including a plurality of address bits. Each address tag is configured to store a unique address to a specific location in an memory space. An amount of memory that is in an actually configured portion of the memory space is determined. A minimum number of bits necessary to address each memory location in the actually configured portion of the memory space is determined. Each address tag is configured in each associativity class to include the minimum number of bits necessary to address each memory location in the actually configured portion of the memory space. The cache directory is configured to include a maximum number of associativity classes per line in the cache directory.
    Type: Grant
    Filed: January 24, 2008
    Date of Patent: April 12, 2011
    Assignee: International Business Machines Corporation
    Inventors: Duane A. Averill, Herman L. Blackmon, Joseph A. Kirscht, David A. Shedivy
  • Publication number: 20110078382
    Abstract: A mechanism is provided in a cache for emulating larger linesize in a substrate with smaller linesize using gang fetching and gang replacement. Gang fetching fetches multiple lines on a cache miss to ensure that all smaller lines that make up the larger line are resident in cache at the same time. Gang replacement evicts all smaller lines in cache that would have been evicted had the cache linesize been larger. The mechanism provides adaptive linesize using set dueling by dynamically selecting between multiple linsizes depending on which linesize performs the best at runtime. Set dueling dedicates a portion of sets of the cache to always use smaller linesize and dedicates one or more portions of the sets of cache to always emulate larger linesizes. One or more counters keep track of which linesize has the best performance. The cache uses that linesize for the remainder of the sets.
    Type: Application
    Filed: September 30, 2009
    Publication date: March 31, 2011
    Applicant: International Business Machines Corporation
    Inventors: Kerry Bernstein, Moinuddin K. Qureshi
  • Publication number: 20110072216
    Abstract: Address information of target data is stored in an ELA register at the start of a cache excluding process performed by BackEviction, and a request processing unit continuously re-executes a data acquiring process while an address of data requested to be acquired by a processor is present in the ELA register. The address information of the target data is stored in an EWB buffer at the start of autonomous move-out performed by a processor, and the cache excluding process performed by BackEviction is stopped when the address of data subjected to BackEviction is present in the EWB buffer.
    Type: Application
    Filed: November 15, 2010
    Publication date: March 24, 2011
    Applicant: FUJITSU LIMITED
    Inventors: Takao Matsui, Seishi Okada, Daisuke Itoh, Makoto Hataida, Toshikazu Ueki
  • Publication number: 20110072212
    Abstract: A cache memory controller searches a second cache tag memory holding a cache state information indicating whether any of multi-processor cores storing a registered address of information registered within its own first cache memory exists. When a target address coincides with the obtained registered address, the cache memory controller determines whether an invalidation request or a data request to a processor core including a block is necessary based on the cache status information. Once it is determined that invalidation or a data request for the processor including the block, the cache memory controller determines whether a retry of instruction based on a comparison result of the first cache tag memory is necessary, if it is determined that invalidation or a data request for the processor including the block.
    Type: Application
    Filed: September 16, 2010
    Publication date: March 24, 2011
    Applicant: FUJITSU LIMITED
    Inventor: Hiroyuki KOJIMA
  • Publication number: 20110066810
    Abstract: A persistent cacheable high volume manufacturing (HVM) initialization code is generally presented. In this regard, an apparatus is introduced comprising a processing unit, a unified cache, a unified cache controller, and a control register to selectively mask off access by the unified cache controller to portions of the unified cache. Other embodiments are also described and claimed.
    Type: Application
    Filed: September 16, 2009
    Publication date: March 17, 2011
    Inventors: Timothy J. Callahan, Snigdha Jana, Nandan A. Kulkarni
  • Patent number: 7908438
    Abstract: Associative matrix compression methods, systems, computer program products and data structures compress an association matrix that contains counts that indicate associations among pairs of attributes. Selective bit plane representations of those selected segments of the association matrix that have at least one count is performed, to allow compression. More specifically, a set of segments is generated, a respective one of which defines a subset, greater than one, of the pairs of attributes. Selective identifications of those segments that have at least one count are stored. The at least one count that is associated with a respective identified segment is also stored as at least one bit plane representation. The at least one bit plane representation identifies a value of the at least one associated count for a bit position of the count that corresponds to the associated bit plane.
    Type: Grant
    Filed: June 3, 2009
    Date of Patent: March 15, 2011
    Assignee: Saffron Technology, Inc.
    Inventors: Michael J. Lemen, James S. Fleming, Manuel Aparicio, IV
  • Patent number: 7904675
    Abstract: A cache memory has a set associative scheme and includes a plurality of ways made up of entries, each entry holding data and a tag; a first holding unit holds, for each way, a priority attribute that indicates a type of data to be preferentially stored in that way; a second holding unit, included in a first way among the ways, holds, for each entry of the first way, a data attribute that indicates a type of data held in that entry; and a control unit replaces control on the entries by prioritizing a way whose priority attribute held by the first holding unit matches a data attribute outputted from a processor, wherein the control unit is further operable to store data into the entry of the way other than the first way.
    Type: Grant
    Filed: July 7, 2009
    Date of Patent: March 8, 2011
    Assignee: Panasonic Corporation
    Inventor: Shirou Yoshioka
  • Patent number: 7904658
    Abstract: A design structure for a cache memory system (200) having a cache memory (204) partitioned into a number of banks, or “ways” (204A, 204B). The memory system includes a power controller (244) that selectively powers up and down the ways depending upon which way contains the data being sought by each incoming address (232) coming into the memory system.
    Type: Grant
    Filed: September 6, 2007
    Date of Patent: March 8, 2011
    Assignee: International Business Machines Corporation
    Inventors: Wagdi W. Abadeer, George M. Braceras, John A. Fifield, Harold Pilo
  • Publication number: 20110055486
    Abstract: A method of processing data in a resistive memory device comprises performing a write operation to store data into a resistive memory of the resistive memory device and to store program information of the data into a cache memory. The method further comprises performing a first read operation to read the program information from the cache memory during a program-to-active time, and a second read operation to read the data from the resistive memory after the program-to-active time if the program information is not read from the cache memory during the program-to-active time.
    Type: Application
    Filed: August 19, 2010
    Publication date: March 3, 2011
    Applicant: SAMSUNG ELECTRONICS CO., LTD.
    Inventors: Seong-Moo HEO, Sang-Hoan CHANG
  • Publication number: 20110055482
    Abstract: Various example embodiments are disclosed. According to an example embodiment, a shared cache may be configured to determine whether a word requested by one of the L1 caches is currently stored in the L2 shared cache, read the requested word from the main memory based on determining that the requested word is not currently stored in the L2 shared cache, determine whether at least one line in a way reserved for the requesting L1 cache is unused, store the requested word in the at least one line based on determining that the at least one line in the reserved way is unused, and store the requested word in a line of the L2 shared cache outside the reserved way based on determining that the at least one line in the reserved way is not unused.
    Type: Application
    Filed: November 25, 2009
    Publication date: March 3, 2011
    Applicant: Broadcom Corporation
    Inventors: Kimming So, Binh Truong
  • Publication number: 20110055485
    Abstract: An apparatus for allocating entries in a set associative cache memory includes an array that provides a first pseudo-least-recently-used (PLRU) vector in response to a first allocation request from a first functional unit. The first PLRU vector specifies a first entry from a set of the cache memory specified by the first allocation request. The first vector is a tree of bits comprising a plurality of levels. Toggling logic receives the first vector and toggles predetermined bits thereof to generate a second PLRU vector in response to a second allocation request from a second functional unit generated concurrently with the first allocation request and specifying the same set of the cache memory specified by the first allocation request. The second vector specifies a second entry different from the first entry from the same set. The predetermined bits comprise bits of a predetermined one of the levels of the tree.
    Type: Application
    Filed: July 6, 2010
    Publication date: March 3, 2011
    Applicant: VIA TECHNOLOGIES, INC.
    Inventors: Colin Eddy, Rodney E. Hooker
  • Patent number: 7899993
    Abstract: Microprocessor having a power-saving instruction cache way predictor and instruction replacement scheme. In one embodiment, the processor includes a multi-way set associative cache, a way predictor, a policy counter, and a cache refill circuit. The policy counter provides a signal to the way predictor that determines whether the way predictor operates in a first mode or a second mode. Following a cache miss, the cache refill circuit selects a way of the cache and compares a layer number associated with a dataram field of the way to a way set layer number. The cache refill circuit writes a block of data to the field if the layer number is not equal to the way set layer number. If the layer number is equal to the way set layer number, the cache refill circuit repeats the above steps for additional ways until the block of memory is written to the cache.
    Type: Grant
    Filed: April 9, 2009
    Date of Patent: March 1, 2011
    Assignee: MIPS Technologies, Inc.
    Inventor: Matthias Knoth
  • Patent number: 7900020
    Abstract: The application describes a data processor operable to process data, and comprising: a cache in which a storage location of a data item within said cache is identified by an address, said cache comprising a plurality of storage locations and said data processor comprising a cache directory operable to store a physical address indicator for each storage location comprising stored data; a hash value generator operable to generate a generated hash value from at least some of said bits of said address said generated hash value having fewer bits than said address; a buffer operable to store a plurality of hash values relating to said plurality of storage locations within said cache; wherein in response to a request to access said data item said data processor is operable to compare said generated hash value with at least some of said plurality of hash values stored within said buffer and in response to a match to indicate a indicated storage location of said data item; and said data processor is operable to access
    Type: Grant
    Filed: January 25, 2008
    Date of Patent: March 1, 2011
    Assignees: ARM Limited, Texas Instruments Incorporated
    Inventors: Barry Duane Williamson, Gerard Richard Williams, Muralidharan Santharaman Chinnakonda
  • Publication number: 20110040940
    Abstract: The present invention discloses a method comprising: sending cache request; monitoring power state; comparing said power state; allocating cache resources; filling cache; updating said power state; repeating said sending, said monitoring, said comparing, said allocating, said filling, and said updating until workload is completed.
    Type: Application
    Filed: August 13, 2009
    Publication date: February 17, 2011
    Inventors: Ryan D. Wells, Michael J. Muchnick, Chinnakrishnan S. Ballapuram
  • Publication number: 20110035531
    Abstract: A coherency control system includes a logical-physical address translation unit which translates a logical address including a first tag and an index address into a physical address including a second tag and the index address, a request output unit which transmits a load request, a corresponding state storage unit which stores a relation state between an area of the second storage apparatus and an area of the first storage apparatus based on the way number included in the load request and the second tag and the index address of the physical address also included in the load request which has been received, and an invalidation instructing unit which transmits an invalidation instruction including the index address and the way number based on the second tag of the physical address included in the store request and the relation state stored in the corresponding state storage unit.
    Type: Application
    Filed: June 7, 2010
    Publication date: February 10, 2011
    Inventor: KOUJI KOBAYASHI
  • Patent number: 7882302
    Abstract: A method for implementing prioritized refresh of a multiple way, set associative DRAM based cache includes identifying, for each of a plurality of sets of the cache, the existence of a most recently used way that has not been accessed during a current assessment period; and for each set, refreshing only the identified most recently used way of the set not accessed during the current assessment period, while ignoring the remaining ways of the set; wherein a complete examination of each set for most recently used ways therein during the current assessment period constitutes a sweep of the cache.
    Type: Grant
    Filed: December 4, 2007
    Date of Patent: February 1, 2011
    Assignee: International Business Machines Corporation
    Inventors: Marc R. Faucher, Peter A. Sandon, Arnold S. Tran
  • Patent number: 7873788
    Abstract: A re-fetching cache memory improves efficiency of a processor, for example by reducing power consumption and/or by advantageously sharing the cache memory. When the cache memory is disabled or temporarily used for another purpose, a data portion of the cache memory is flushed, and some or all of a tag portion is saved in an archive. In some embodiments, the tag portion operates “in-place” as the archive, and in further embodiments, is placed in a reduced-power mode. When the cache memory is re-enabled or when the temporary use completes, optionally and/or selectively, the tag portion is repopulated from some or all of the archive, and the data portion is re-fetched according to the repopulated tag portion. The re-fetching is optionally performed in a cache coherent fashion. According to various embodiments, processor access to the cache is enabled during one or more of: the saving; the repopulating; and the re-fetching.
    Type: Grant
    Filed: May 22, 2007
    Date of Patent: January 18, 2011
    Assignee: Oracle America, Inc.
    Inventors: Laurent R. Moll, Peter N. Glaskowsky, Joseph B. Rowlands
  • Publication number: 20110010502
    Abstract: In an embodiment, a cache stores tags for cache blocks stored in the cache. Each tag may include an indication identifying which of two or more replacement policies supported by the cache is in use for the corresponding cache block, and a replacement record indicating the status of the corresponding cache block in the replacement policy. Requests may include a replacement attribute that identifies the desired replacement policy for the cache block accessed by the request. If the request is a miss in the cache, a cache block storage location may be allocated to store the corresponding cache block. The tag associated with the cache block storage location may be updated to include the indication of the desired replacement policy, and the cache may manage the block in accordance with the policy. For example, in an embodiment, the cache may support both an LRR and an LRU policy.
    Type: Application
    Filed: July 10, 2009
    Publication date: January 13, 2011
    Inventors: James Wang, Zongjian Chen, James B. Keller, Timothy J. Millet
  • Publication number: 20110010503
    Abstract: A cache memory for operating in accordance with a multi-way set associative system, the cache memory includes an identification information storage for storing an identification information for identifying a requesting element of a memory access request corresponding to a cache block specified by a received memory access request, a replacement cache block candidate determinator for determining, upon an occurrence of a cache miss corresponding to the memory access request, a candidate of the cache block for replacing, on the basis of the identification information attached to the memory access request and the identification information stored in the identification information storage corresponding to the cache block specified by the memory access request, and a replacement cache block selector for selecting a replacement cache block from the candidate.
    Type: Application
    Filed: June 17, 2010
    Publication date: January 13, 2011
    Inventors: Shuji YAMAMURA, Mikio HONDOU
  • Patent number: 7861041
    Abstract: A cache memory system includes a cache memory and a block replacement controller. The cache memory may include a plurality of sets, each set including a plurality of block storage locations. The block replacement controller may maintain a separate count value corresponding to each set of the cache memory. The separate count value points to an eligible block storage location within the given set to store replacement data. The block replacement controller may maintain for each of at least some of the block storage locations, an associated recent access bit indicative of whether the corresponding block storage location was recently accessed. In addition, the block replacement controller may store the replacement data within the eligible block storage location pointed to by the separate count value depending upon whether a particular recent access bit indicates that the eligible block storage location was recently accessed.
    Type: Grant
    Filed: September 4, 2007
    Date of Patent: December 28, 2010
    Assignee: Advanced Micro Devices, Inc.
    Inventor: James D Williams
  • Patent number: 7856532
    Abstract: Cache logic is provided for use in a data processing apparatus, the cache logic having a cache storage comprising a plurality of cache lines for storing data values. Control logic is arranged, in response to an access request issued by a device of the data processing apparatus identifying a memory address of the data value to be accessed, to cause a lookup operation to be performed to determine whether the data value for that memory address is stored within the cache storage. The control logic is further operable if the data value is not stored in the cache storage to perform a linefill process, the linefill process comprising performing an eviction to evict to memory of the data processing apparatus current content of a selected cache line, keeping the current content valid in the selected cache line whilst the eviction is taking place, and storing from the memory into the selected cache line new content including the data value the subject of the access request.
    Type: Grant
    Filed: November 3, 2006
    Date of Patent: December 21, 2010
    Assignee: ARM Limited
    Inventors: Norbert Bernard Eugene Lataille, Cedric Denis Robert Airaud, Philippe Jean-Pierre Raphalen
  • Patent number: 7856576
    Abstract: In one embodiment, a controller for an associative memory having n ways contains circuitry for sending a request to search an indexed location in each of the n ways for a tag, wherein the tag and an index that is used to denote the indexed location form a memory address. The controller also contains circuitry, responsive to the request, for sending a set of n validity values, each validity value indicating, for a respective way, whether the indexed location is a valid location or a defective location. Additionally, the controller contains circuitry for receiving a hit signal that indicates whether a match to the tag was found at any of the indexed locations, wherein no hit is ever received for a defective location.
    Type: Grant
    Filed: April 25, 2007
    Date of Patent: December 21, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Carson D. Henrion, Dan Robinson
  • Patent number: RE42213
    Abstract: A cache and TLB layout and design leverage repeater insertion to provide dynamic low-cost configurability trading off size and speed on a per application phase basis. A configuration management algorithm dynamically detects phase changes and reacts to an application's hit and miss intolerance in order to improve memory hierarchy performance while taking energy consumption into consideration.
    Type: Grant
    Filed: January 24, 2006
    Date of Patent: March 8, 2011
    Assignee: University of Rochester
    Inventors: Sandhya Dwarkadas, Rajeev Balasubramonian, Alper Buyuktosunoglu, David H. Albonesi