Difference between pages "Premium Coffee Market Segmentation" and "Transactional memory in hardware"

From DolceraWiki
(Difference between pages)
Jump to: navigation, search
 
(Contact Dolcera)
 
Line 1: Line 1:
==Rationale Behind Study==
+
==Background==
 +
===Transactional memory===
 +
*Transactional memory is a general and flexible way to allow programs to read and modify disparate primary memory locations atomically as a single operation, much as a database transaction can atomically modify many records on disk.
 +
*[http://en.wikipedia.org/wiki/Transactional_memory Transactional memory] attempts to simplify parallel programming by allowing a group of load and store instructions to execute in an atomic way. Transactional memory is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. A transaction is a piece of code that executes a series of reads and writes to shared memory.
 +
*Transactional memory (TM) supports code sections that are executed atomically, i.e., so that they appear to be executed one at a time, with no interleaving between their steps. TM significantly reduces the difficulty of writing correct concurrent programs. A good TM implementation avoids synchronization between concurrently executed transactional sections unless they actually conflict. TM can significantly improve the performance and scalability of concurrent programs, as well as makes them easier to write, understand and maintain.
 +
*[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220070156994%22.PGNR.&OS=DN/20070156994&RS=DN/20070156994 Transactional memory] generally refers to a synchronization model that allows multiple threads to concurrently access a shared resource (such as a data structure stored in memory) without acquiring a lock as long as the accesses are non-conflicting, for example, as long as the accesses are directed to different portions of the shared resource.
 +
'''[[More details]]'''
  
# The first goal of the study is to define segments/communities to whom a premium brand of coffee can be cost effectively promoted.
+
----
# The second goal of this study is to identify if the defined segments/communities present a sufficient size to make coffee promotion viable.
+
  
==Some background about coffee==
+
===Transactional programming models===
'''Premium Grade Coffee:'''
+
*[http://research.sun.com/spotlight/2007/2007-08-13_transactional_memory.html Transactional programming models] can be supported in software using software-based transactional memory (STM), in hardware using hardware- based transactional memory (HTM), or in a combination of the two (Hybrid TM, or HyTM).
 +
**[http://en.wikipedia.org/wiki/Software_transactional_memory Software based Transactional memory] (STM) can allow sequences of concurrent operations to be combined into atomic transactions, thereby reducing the complexity of both programming and verification. STM is a scheme for concurrent programming with multiple threads that uses transactions similar to those used in databases.
 +
**Hardware based Transactional memory (HTM) system requires no read or write barriers within the transaction code. The hardware manages data versions and tracks conflicts transparently.
 +
**[http://www.eecs.harvard.edu/~fedorova/papers/asplos165-damron.pdf Hybrid Transactional memory] (HyTM) implements Transactional memory in software so that it can use best-effort Hardware Transactional memory (HTM) to boost performance but does not depend on HTM.
  
Premium Grade Coffee is a general term that describes high quality coffee. Premium grade or premium coffee is also referred to as specialty or gourmet coffee. These terms underscore quality, which is easily perceived on our palate. High quality coffee beans generally produce a richer and more flavorful cup of coffee than most generic or store bought coffees. The Specialty Coffee Association of America reports that less than 8% of the world's production of coffee qualifies as specialty or premium. Typically these beans come from higher altitudes where ripening is slow and uniform. High grown beans are dense and take the rigors of roasting very well. When roasted to a medium dark level these beans produce a smooth and flavorful drink with intense aroma and rich flavor. Coffee drinkers who experience a superb cup of coffee seldom go back to drinking generic coffee. Savoring a cup of freshly roasted specialty coffee is an experience of its own and an affordable luxury.
 
  
[https://mmm1116.verio-web.com/granc2/faq.html?PHPSESSID=496f6983e6fbbc3ae38d075cd907d66a Source]
+
===Software based Transactional memory===
 +
*Software transactional memory (STM) is implemented in software. All speculative STM transactional data is stored in the system memory and indicated to be in a non-committed state. When the STM transaction commits, any data the transaction writes is indicated as committed and subsequently available to other threads and transactions. In certain STM systems, a flag may be set to indicate the data as committed and accessible and available in memory to other transactions.  
  
'''Different types of Coffee Beans:'''
+
====DracoSTM====
 +
*[http://eces.colorado.edu/~gottschl/dracoSTM/pubs/lcsd07-dracostm.pdf DracoSTM] is a high performance lock-based C++ Software Transactional memory research library. DracoSTM uses only native object-oriented language semantics, increasing its intuitiveness for developers while maintaining high programmability via automatic handling of composition, locks and transaction termination.
 +
*DracoSTM is a lock-based STM system. At its core, DracoSTM uses one lock per thread to implement transactional reads and writes. This allows multiple transactions to simultaneously read and write without blocking other transactions’ progress.
  
The most prevalent and used type of coffee beans are
 
  
{|border="2" cellspacing="0" cellpadding="4" width="100%"
+
====Dynamic STM (DSTM)====
|align = "center" bgcolor = "#FFCC99"|'''S.No.'''
+
*[http://research.sun.com/scalable/pubs/PODC03.pdf Dynamic Software Transactional Memory (DSTM)] is a low-level application programming interface (API) for syn-chronizing shared data without using locks.
|bgcolor = "#FFCC99"|'''Name'''
+
*DSTM supports dynamic-sized data structures. DSTM has non-blocking implementation. The non-blocking property is obstruction-freedom. Dynamic means that the set of locations accessed by the transaction is not known in advance and is determined during its execution.
|bgcolor = "#FFCC99"|'''Characteristics'''
+
*DSTM techniques allow transactions and transactional objects to be created dynamically.Transactions may determine the sequence of objects to access based on the values observed in objects accessed earlier in the same transaction. DSTM is well suited to the implementation of dynamic-sized data structures such as lists and trees.
  
|-
+
====Dynamic Software Transactional Memory 2.0 (DSTM2)====
|align = "center" bgcolor = "#FFCC99"|1
+
*[http://research.sun.com/scalable/pubs/OOPSLA2006.pdf DSTM2] is a Java-based software library that provides a flexible framework for implementing STM. DSTM2 significantly improves the programming interface of its predecessor DSTM. The code is provided in Java libraries and any Java programmer can use it easily. DSTM2 allows researchers to plug in their STM implementations and directly compare them with others.
|Arabica
+
*The DSTM2 library assumes that multiple concurrent threads share data objects. The DSTM2 library provides a new kind of thread that can execute transactions, which access shared atomic objects. DSTM2 threads provide methods for creating new atomic classes and executing transactions.
|It is considered to be far superior in flavor - the champagne of coffee
+
  
|-
+
====Nonblocking Software Transactional Memory====
|align = "center" bgcolor = "#FFCC99"|2
+
*[http://research.sun.com/scalable/pubs/PPoPP2008-NBSTM.pdf Nonblocking STMs] are obstruction free. Nonblocking Software Transactional Memory guarantees that, if a transaction is repeatedly retried and eventually encounters no interference from other transactions, then eventually the transaction commits successfully.
|Robusta
+
*Nonblocking STM “steals” ownership of a memory location from another transaction, rather than waiting for the other transaction to explicitly release it. Accessing stolen locations is more complicated and expensive than accessing unstolen ones, but stealing is worthwhile in order to avoid waiting for another transaction that is delayed for a long time.
|Robusta, is higher in caffeine and tastes far bitterer and more acidic, which makes it less than preferable for most domestic use.
+
  
|}
+
====[http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&p=1&u=%2Fnetahtml%2FPTO%2Fsearch-bool.html&r=3&f=G&l=50&co1=AND&d=PTXT&s1=transactional.TI.&s2=memory.TI.&OS=TTL/transactional+AND+TTL/memory&RS=TTL/transactional+AND+TTL/memory Non-blocking conditions]====
  
 +
=====Lock-free transactional memory=====
 +
*'''Lock-free transactional memory:''' A transactional memory implementation is lock-free if all its operations are lock-free and if some thread repeatedly attempts to commit transactions, then eventually some thread performs a successful commit.
 +
*'''Lock-freedom:''' An implementation of an operation is lock-free if after a finite number of steps of any execution of that operation, some operation execution completes (irrespective of the timing behavior of any concurrent operation executions).
  
Robusta is cheap and this makes it substitute for Arabica, which sees several coffee companies add small amounts of Robusta to their product lines as <nowiki>’</nowiki>filler<nowiki>’</nowiki>.
+
=====Wait-free transactional memory=====
 +
*'''Wait-free transactional memory:''' A transactional memory implementation is wait-free if all its operations are wait-free and any thread that repeatedly attempts to commit transactions eventually performs a successful commit.
 +
*'''Wait-freedom''': An implementation of an operation is wait-free if after a finite number of steps of any execution of that operation, that operation execution completes (irrespective of the timing behavior of any concurrent operation executions).
  
'''The various types or varieties of coffee are listed in the table below:'''
+
=====Obstruction-free transactional memory=====
 +
*'''Obstruction-free transactional memory:''' A transactional memory implementation is obstruction-free if all its operations are obstruction-free and if some thread repeatedly attempts to commit transactions, and runs in isolation after some point, then it eventually performs a successful commit.
 +
*'''Obstruction-freedom:''' An implementation of an operation is obstruction-free if every operation execution that executes in isolation after some point completes after a finite number of steps.
  
{|border="2" cellspacing="0" cellpadding="4" width="100%"
+
===Hardware based Transactional memory===
|align = "center" bgcolor = "#FFCC99"|'''S.No.'''
+
*HTM comprises hardware transactions implemented entirely in processor hardware. For hardware transactions, data may be stored in hardware registers and cache, such that all cache actions are done atomically in hardware and data in the HTM is only written to the main memory upon committing the transaction. The HTM holds all the speculative writes without propagating to the main system memory, such as a Random Access Memory (RAM) device, until the transaction commits. If the hardware transaction aborts, then the cache lines holding the tentative writes in the HTM are discarded. HTM hardware transactions may utilize cache coherency protocols to detect and manage conflicts between HTM hardware transactions. The cache coherency protocols keep track of accesses within a hardware transaction. If two hardware transactions are accessing a same memory location, then the HTM aborts one transaction if there is a conflict, else the transaction's changes may be committed to the system memory.
|bgcolor = "#FFCC99"|'''Types or Varieties of Coffee'''
+
*HTM transactions usually require less overhead then STM transactions because HTM transactions occur entirely in hardware. HTM transactions may be limited to smaller transactions due to hardware limitations, whereas STM transactions can handle large and longer transactions. [http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220070143287%22.PGNR.&OS=DN/20070143287&RS=DN/20070143287 Source]
|bgcolor = "#FFCC99"|'''Definition'''
+
*The multi-core processor '''Rock''' supports [http://research.sun.com/scalable/pubs/TRANSACT2008-ATMTP-Apps.pdf Hardware Transactional Memory] (HTM).
 +
*'''Rock'''’s HTM feature is an important but modest first step in integrating HTM support into a mainstream commercial multi-core processor.
 +
*'''Rock''' supports HTM with two new instructions, chkpt and commit, and a new checkpoint status (cps) register. A transaction is started by a chkpt instruction, and is terminated by either a commit instruction or the failure of the transaction. If a transaction fails, some indication of the cause of failure is stored in the cps register, and control is transferred to the PC-relative offset (fail pc) specified by the chkpt instruction.
  
|-
+
====Adaptive Transactional Memory Test Platform====
|align = "center" bgcolor = "#FFCC99"|'''1'''
+
*The [http://www.cs.wisc.edu/gems/doc/gems-wiki/moin.cgi/ATMTP Adaptive Transactional Memory Test Platform] (ATMTP) provides a first-order approximation of the success and failure characteristics of transactions on '''Rock'''. ATMTP will allow developers to test and tune their code for '''Rock'''.
|'''American (regular) roast'''
+
*ATMTP correctly models '''Rock'''’s HTM-related instructions, and fairly accurately reflects most of the circumstances that cause '''Rock''' transactions to fail. ATMTP provides a good platform for experimenting with HTM-based code that will behave similarly on '''Rock'''.
|Beans are medium-roasted, resulting in a moderate brew, not too light or too heavy in flavor.
+
  
|-
+
====Unbounded Hardware Transactional Memory (UHTM)====
|align = "center" bgcolor = "#FFCC99"|'''2'''
+
*[http://supertech.csail.mit.edu/papers/xaction.pdf UHTM] is commited in-cache. When not possible, hardware “spills” transaction information into memory, allowing (essentially) unbounded transactions. UTM is more appealing for programmer, but is significantly more complicated. Unbounded means that there is no limit on the number of locations accessed by the transaction.
|'''French roast and dark French roast'''
+
|Heavily-roasted beans, a deep chocolate brown which produce a stronger coffee.
+
  
|-
+
====Best-effort Hardware Transactional Memory====
|align = "center" bgcolor = "#FFCC99"|'''3'''
+
*Best-effort Hardware Transactional Memory transactions are committed in-cache and aborted if they don’t fit. Best-effort Hardware Transactional Memory has simple design.Best-effort Hardware Transactional Memory violates Principle of Least Astonishment. Programmer should not have to think about cache mapping, cache size, cache organization, etc.
|'''Italian roast'''
+
*[http://research.sun.com/scalable/pubs/TRANSACT2008-ATMTP-Apps.pdf Best-effort HTM] does not guarantee to support transactions of any size and duration, and thus is free to simply abort transactions that exceed on-chip resources for HTM or encounter difficult events or situations.
|Glossy, brown-black, strongly flavored, used for espresso
+
  
|-
+
====Split Hardware Transaction (SpHT)====
|align = "center" bgcolor = "#FFCC99"|'''4'''
+
*The [http://research.sun.com/scalable/pubs/PPoPP2008-SpHT.pdf Split Hardware Transaction (SpHT])uses minimal software support to combine multiple segments of an atomic block, each executed using a separate hardware transaction, into one atomic operation. The idea of segmenting transactions can be used for many purposes, including nesting, local retry, or Else, and user-level thread scheduling. SpHT overcomes the limited expressive power of best-effort HTM while imposing overheads dramatically lower than STM and preserving useful guarantees such as strong atomicity provided by the underlying HTM.
|'''European roast'''
+
|Two-thirds heavy-roast beans blended with one-third regular-roast.
+
  
|-
+
====Virtualized Transactional Memory (VTM)====
|align = "center" bgcolor = "#FFCC99"|'''5'''
+
*[http://www.cs.wisc.edu/trans-memory/misc-papers/moir:hybrid-tm:tr:2005.pdf Virtualized TM (VTM)] maintains atomicity and isolation even if a transaction is interrupted by a cache overflow or a system event. VTM maps the key bookkeeping data structures for transactional execution (read set, write set, write buffer or undo-log) to virtual memory, which is effectively unbounded and is unaffected by system interruptions. The hardware caches hold the working set of these data structures. VTM also suggested the use of hardware signatures to avoid redundant searches through structures in virtual memory.
|'''Viennese roast'''
+
|One-third heavy-roast beans blended with two-thirds regular-roast.
+
  
|-
+
====[http://research.microsoft.com/~larus/Papers/p80-larus.pdf Conflict detection]====
|align = "center" bgcolor = "#FFCC99"|'''6'''
+
*HTM systems rely on a computer’s cache hierarchy and the cache coherence protocol to implement conflict detection. Caches observe all reads and writes issued by a processor, can buffer a significant amount of data, and can be searched efficiently because of their associative organization. All HTMs modify the first-level caches, but the approach extends to higher-level caches, both private and shared.
|'''Instant coffee'''
+
*Conflict detection occurs as other processors receive the coherence messages from the committing transaction. Hardware looks up the received block address in the local caches. If the block is in a cache and has its R or W bit set, there is a read-write or a  write-write conflict between the committing and the local transaction. The hardware signals a software handler, which aborts the local transaction and potentially retries it after a backoff period.
|A powder made of heat-dried freshly brewed coffee.
+
*'''Direct memory updates:''' For direct updates, the hardware transparently logs the original value in a memory block before its first modification by a transaction. If the transaction aborts, the log is used to undo any memory updates.
 +
*'''Early conflict detection :''' For early conflict detection, the hardware acquires exclusive access to the cache block on the first write and maintains it until the transaction commits.
  
|-
+
===Hybrid Transactional memory (HyTM)===
|align = "center" bgcolor = "#FFCC99"|'''7'''
+
*The HyTM approach is to provide an STM implementation that does not depend on hardware support beyond what is widely available today, and also to provide the ability to execute transactions using whatever HTM support is available in such a way that the two types of transactions can coexist correctly.
|'''Freeze-dried coffee'''
+
*The key idea to achieving correct interaction between software transactions and hardware transactions is to augment hardware transactions with additional code that ensures that the transaction does not commit if it conflicts with an ongoing software transaction.  
|Brewed coffee that has been frozen into a slush before the water is evaporated, normally more expensive that instants but with a superior flavor.
+
  
|-
+
====Phased Transactional Memory (PhTM)====
|align = "center" bgcolor = "#FFCC99"|'''8'''
+
*[http://research.sun.com/scalable/pubs/TRANSACT2007-PhTM.pdf Phased Transactional Memory (PhTM])supports switching between different “phases”, each implemented by a different form of transactional memory support. PhTM allows to adapt between a variety of different transactional memory implementations.
|'''Decaffeinated coffee'''
+
|Caffeine is removed from the beans before roasting via the use of a chemical solvent (which disappears completely when the beans are roasted) or the Swiss water process which steams the beans and then scrapes off the caffeine-laden outer layers.  
+
  
|}
+
====Nonblocking Zero-Indirection Transactional Memory (NZTM)====
[http://homecooking.about.com/od/beveragerecipes/a/coffeetypes.htm Source]
+
*[http://research.sun.com/scalable/pubs/TRANSACT2007-NZTM.pdf Nonblocking Zero-Indirection Transactional Memory (NZTM)] is a nonblocking, zero-indirection object-based hybrid transactional memory system. NZTM can execute transactions using best-effort hardware transactional memory or by using compatible software transactional memory system.
  
== '''Coffee Market: USA'''==
+
====[http://research.microsoft.com/~larus/Papers/p80-larus.pdf Hardware-Accelerated STM (HASTM)]====
 +
*Hardware-Accelerated STM (HASTM) system proposes hardware support to reduce the overhead of STM instrumentation. The supplementary hardware allows software to build fast filters that could accelerate the common case of read set maintenance.
 +
*HASTM provides the STM with two capabilities through per-thread mark bits at the granularity of cache blocks.
 +
*'''Conflict detection:''' Software can check if a mark bit was previously set for a given block of memory and that no other thread wrote to the block since it was marked.
 +
*'''Validation:''' Software can query if potentially there were writes by other threads to any of the memory blocks that the thread marked.
  
'''Highlights'''
+
====[http://research.microsoft.com/~larus/Papers/p80-larus.pdf Signature-Accelerated STM (SigTM)]====
 +
*[http://portal.acm.org/citation.cfm?id=1250673 Signature-Accelerated STM (SigTM)]uses hardware signatures to encode the read set and write set for software transactions. A hardware Bloom filter outside of the caches computes the signatures.b Software instrumentation provides the filters with the addresses of the objects read or written within a transaction. To detect conflicts, hardware in the computer monitors coherence traffic for requests for exclusive accesses to a cache block, which indicates a memory update.
 +
*The hardware tests if the address in a request is potentially in a transaction’s read or write set by examining the transaction’s signatures. If so, the memory reference is a potential conflict and the STM can either abort a transaction or turn to software validation.
  
*The total sales of coffee in the USA USD 21.3 billions.
+
----
  
*8 out of 10 Americans are coffee drinkers.
 
  
*71% of All cups of coffee are consumed at home (notwithstanding increase in Specialty chains).
 
 
*Within retail (market of $9.8 billions), Grocery is the dominant channel with over 70% of retail coffee sales, and rest 28% by Alternate channels.
 
 
=== Consumption Pattern of Beverages ===
 
 
*The average annual beverage consumption of US population as per according to the '''2008 Beverages Market Research Handbook'''
 
 
[[Image:Bev. Consumption.jpg|500px|center|thumb|Average Annual Beverage Consumption]]
 
 
=== Distribution of coffee by segment ===
 
 
*Coffee is distributed primarily through two channels, retail and food service:
 
 
[[Image:Distribution11.jpg|500px|center|thumb|Distribution]]
 
 
 
 
*Within retail (market of $9.8 billions), Grocery is the dominant channel with over 70% of retail coffee sales, and rest 28% by Alternate channels.
 
 
*Growth in the grocery channel is being driven by premium and value gourmet segments
 
 
*Premium and value gourmet segments are capturing market&nbsp;share.
 
 
* The below table gives sales figures of coffee through the grocery channel. Figures are in USD million
 
 
[[Image:Grocery channels.jpg|500px|center|thumb|Source: IRI as of 12/31/06]]
 
 
=== Market Share data of different coffee brands over time ===
 
 
*The table below consists of brands and their market share % from a survey of 205,000 users conducted on AOL money and finance website.
 
 
[http://money.aol.com/special/best-coffee Home Brew]
 
 
{|border="2" cellspacing="0" cellpadding="4" width="50%"
 
|align = "center" bgcolor = "#FFCC99"|S.No.
 
|bgcolor = "#FFCC99"|Brand Name
 
|bgcolor = "#FFCC99"|Percentage Share
 
  
 +
==Search strategy==
 +
===Search concepts===
 +
{|border="2" cellspacing="0" cellpadding="4" width="100%" align="left"
 +
|bgcolor = "#FFFF99"|'''Transactional memory'''
 +
|bgcolor = "#FFFF99"|'''Atomic memory transactions'''
 +
|bgcolor = "#FFFF99"|'''Concurrency control'''
 +
|bgcolor = "#FFFF99"|'''Shared memory access'''
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|1
+
|transactional memory
|Folger<nowiki>’</nowiki>s
+
|atomic memory transactions
|align = "right"|30%
+
|concurrency control
 
+
|shared memory synchronization
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|2
+
|transactional execution AND memory
|Maxwell House
+
|atomically memory accesses
|align = "right"|19%
+
|concurrent computing
 
+
|shared memory access
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|3
+
|hybrid transactional memory
|Eight O<nowiki>’</nowiki> Clock Coffee
+
|  
|align = "right"|11%
+
|  
 
+
|  
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|4
+
|software transactional memory
|Gevalia
+
|  
|align = "right"|9%
+
|  
 
+
|  
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|5
+
|hardware transactional memory
|Kona
+
|  
|align = "right"|8%
+
|  
 
+
|  
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|6
+
|}<br clear="all">
|Chock Full O<nowiki>’</nowiki> Nuts
+
|align = "right"|7%
+
  
|-
+
----
|align = "center" bgcolor = "#FFCC99"|7
+
|Green Mountain
+
|align = "right"|6%
+
  
 +
===Search strings===
 +
{|border="2" cellspacing="0" cellpadding="4" width="100%" align="left"
 +
|align = "center" bgcolor = "#FFFF99"|'''Concepts'''
 +
|align = "center" bgcolor = "#FFFF99"|'''Scope'''
 +
|align = "center" bgcolor = "#FFFF99"|'''Search string'''
 +
|align = "center" bgcolor = "#FFFF99"|'''No of hits'''
 +
|align = "center" bgcolor = "#FFFF99"|''' '''
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|8
+
|align = "center" bgcolor = "#FFFF99"|'''Transactional memory'''
|Jamaican Blue Mountain
+
|rowspan = "3"|'''Search scope:''' US Granted US Applications EP-A EP-B WO JP DE-C,B DE-A DE-T DE-U GB-A FR-A; <br>'''Claims, Title or Abstract'''<br>'''Years: '''1836-2008
|align = "right"|6%
+
|(transactional ADJ memory) OR ((transactional ADJ execution) SAME memory)
 
+
|align = "center"|'''167'''
 +
|
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|9
+
|align = "center" bgcolor = "#FFFF99"|'''Other Keywords'''
|Newman<nowiki></nowiki>s Own
+
|(atomic<nowiki>*</nowiki>4 NEAR2 memory NEAR2 (transaction<nowiki>*</nowiki>1 OR access<nowiki>*</nowiki>2)) OR (((concurrency ADJ control) OR (concurrent ADJ computing)) WITH ((shared ADJ memory) AND (synchronization OR access<nowiki>*</nowiki>2)))
|align = "right"|2%
+
|align = "center"|'''24'''
 
+
|
 +
|-
 +
|align = "center" bgcolor = "#FFFF99"|'''Final'''
 +
|align = "center"|'''1 OR 2'''
 +
|align = "center"|'''82 unique (189 patents including families)'''
 +
|
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|10
+
|}<br clear="all">
|Bustelo
+
|align = "right"|2%
+
  
|}
+
----
  
 +
==IP Trend==
 +
*75 patents published in the last 10 years.
 +
*Patent filing is more in the last 4 years(75 %)
  
*The below drawn chart shows the comparison of various brands which are consumed at home by consumer.
+
[[Image:Year_wise_graph-Transactional_memory.jpg|align|thumb|center|500px|Year wise graph]]
* The percentage data indicates the market share of each of these brands in the years 2000 and 2006 respectively.
+
[[Image:In home.jpg|500px|center|thumb|Source: IRI as of 12/31/06]]
+
  
=== USA - Coffee Consumption by Place ===
+
----
The below mentioned figure gives break up of coffee consumption pattern by place
+
  
[[Image:Consumer Base.jpg|500px|center|thumb|NCA]]
+
==Key companies==
 +
* Intel(26 patents) and Sun Microsystems (19 patents) are major players.
 +
* Microsoft(11 patents) and IBM(7 patents) are next to them.  
  
=== USA - Coffee Consumption by Age ===
+
[[Image:Assignee_graph-Transactional_memory.jpg|align|thumb|center|500px|Top Assignees]]
  
*If we see the below chart that’s depicts the data for the total coffee consumption by age , we can see there is continuous growth in the 18-24 yr segment, while last three years also shows an increase in consumption for age group of 60+.
+
----
  
*There is drop in consumption of coffee in age group of 25-39 years.
+
==Top IPC and US Classes==
 +
*'''Top IPC class:''' G06F
 +
*'''Top US class:''' 711, 707, 712, 717, 718
  
[[Image:Consumption of Coffee.jpg|500px|center|thumb|According to the 2008 Beverages Market Research Handbook]]
+
[[Image:IPC_class-Transactional_memory.jpg|align|thumb|left|500px|IPC class]]
 +
[[Image:US_class-Transactional_memory.jpg|align|thumb|right|500px|US class]]
  
=== USA - Coffee Consumption (Out of Home data) ===
 
  
'''Out of Home coffee consumption''':
+
----
 
+
Below bar chart shows the coffee consumption at various coffee bars, restaurants or retail locations.
+
 
+
 
+
[[Image:Out of Home.jpg|500px|center|thumb|Out of Home]]
+
 
+
 
+
The out of home coffee market is mostly captured by '''Starbucks'''.
+
 
+
Few other leading companies which fall under these companies are
+
 
+
*The Coffee Bean & Tea Lea         
+
*Peet’s Coffee & Tea
+
*The Coffee Beanery
+
*Tully’s Coffee
+
 
+
=='''Supply Chain of Coffee Products:'''==
+
 
+
This below path very well depicts the supply chain of coffee for home consumption.
+
 
+
[[Image:SCM.jpg|500px|center|thumb|Supply Chain Management]]
+
 
+
== Business Research ==
+
* The goal for this business research report is to:-
+
# Identify unique segments, through hypothesis generation, where coffee for in-home consumption can be promoted
+
# Define these segments
+
# Determine places, online or offline, where these segments congregate
+
# Size up the segments to determine marketing potential of each segment
+
# Provide calendar view on "offline events" where these segments congregate for effective promotion planning
+
 
+
== Segment Identification ==
+
 
+
* For segment identification we did the following:
+
# Identified online media where coffee lovers congregate
+
# Ranked and sorted the online media based on traffic (from Alexa ratings)
+
# Read up user generated content on such websites to identify unique segments/communities for coffee promotion
+
# For each unique segment/community, '''we then defined the place where they congregate offline'''
+
+
=== Segments Identified : Segments defined ===
+
  
 +
==Sample analysis==
 
{|border="2" cellspacing="0" cellpadding="4" width="100%"
 
{|border="2" cellspacing="0" cellpadding="4" width="100%"
|align = "center" bgcolor = "#FFCC99"|'''S. No.'''
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">S.No.</font>
|align = "center" bgcolor = "#FFCC99"|'''Statements'''
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">Patent/Publication No.</font>
|align = "center" bgcolor = "#FFCC99"|'''Place of Usage'''
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">Title</font>
|align = "center" bgcolor = "#FFCC99"|'''Communities'''
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">Transactional memory</font>
|align = "center" bgcolor = "#FFCC99"|'''Source'''
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">Summary</font>
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|1
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">1</font>
|People enjoy coffee as a cocktail drink.
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PG01&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.html&r=1&f=G&l=50&s1=%2220040015642%22.PGNR.&OS=DN/20040015642&RS=DN/20040015642 US20040015642A1]</u></font>
|The places where the coffee is served alongwith cocktail drink
+
|Software transactional memory for dynamically sizable shared data structures
|Businessmen, Youngsters who like to hang out at bars
+
|align = "center"|Dynamic STM (DSTM)
|coffeetea.about.com
+
|A software transactional memory that allows concurrent non-blocking access to a dynamically sizable data structure defined in shared storage managed by the software transactional memory is described. The implementation is called dynamic software transactional memory (DSTM). DSTM techniques allow transactions and transactional objects to be created dynamically. The non-blocking property considered here is obstruction-freedom.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|2
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">2</font>
|Companies have started pairing premium coffee with individual personality or individual needs depending on mood
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20060085591.PGNR.&OS=DN/20060085591&RS=DN/20060085591 US20060085591A1]</u></font>
|Locations providing the customized coffee
+
|Hybrid hardware and software implementation of transactional memory access
|Anyone who enjoys a customized coffee drink
+
|align = "center"|Phased Transactional Memory (PhTM)
|ineedcoffee.com,  gourmetcoffee.com
+
|The invention relates to a hybrid hardware and software implementation of transactional memory accesses in a computer system. A processor including a transactional cache and a regular cache is utilized in a computer system that includes a policy manager to select one of a first mode (a hardware mode) or a second mode (a software mode) to implement transactional memory accesses. In the hardware mode the transactional cache is utilized to perform read and write memory operations and in the software mode the regular cache is utilized to perform read and write memory operations.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|3
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">3</font>
| Messages pertaining to health
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20070028056.PGNR.&OS=DN/20070028056&RS=DN/20070028056 US20070028056A1]</u></font>
|Any beverage outlet that is positioned to sell healthy drinks
+
|Direct-update software transactional memory
|Athletes, fitness conscious people
+
|align = "center"|Dynamic STM (DSTM)
| www.positivelycoffee.org,   www.nescafe.com
+
|A transactional memory programming interface allows a thread to directly and safely access one or more shared memory locations within a transaction while maintaining control structures to manage memory accesses to those same locations by one or more other concurrent threads. Each memory location accessed by the thread is associated with an enlistment record, and each thread maintains a transaction log of its memory accesses.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|4
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">4</font>
|Caffeine supports physical performance
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20070156780.PGNR.&OS=DN/20070156780&RS=DN/20070156780 US20070156780A1]</u></font>
|Any place selling healthy beverage products
+
|Protecting shared variables in a software transactional memory system
|Athletes, fitness consicous people
+
|align = "center"|Dynamic STM (DSTM)
| www.positivelycoffee.org,   www.nescafe.com
+
|For a variable accessed at least once in a software-based transactional memory system (STM) defined (STM-defined) critical region of a program, modifying an access to the variable that occurs outside any STM-defined critical region system by starting a hardware based transactional memory based transaction, within the hardware based transactional memory based transaction, checking if the variable is currently owned by a STM transaction, If the variable is not currently owned by a STM transaction, performing the access and then committing the hardware based transactional memory transaction and if the variable is currently owned by a STM transaction, performing a responsive action.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|5
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">5</font>
|Coffee may reduce colon cancer risk among women
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20070156994.PGNR.&OS=DN/20070156994&RS=DN/20070156994 US20070156994A1]</u></font>
|Any place or website where people with this disease can congregate
+
|Unbounded transactional memory systems
|Women suffering from colon cancer
+
|align = "center"|Unbounded Hardware Transactional Memory (UHTM)
| www.positivelycoffee.org,   www.nescafe.com
+
|Methods and apparatus to provide unbounded transactional memory systems are described. Transactional memory is implemented through a table lookup mechanism. To access a shared resource, a thread may first check a table stored in memory to determine whether another thread is accessing the same portion of the shared resource. Accessing a table that is stored in memory may generate overhead that decreases performance.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|6
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">6</font>
| Caffeine and exercise may help against sun-induced skin cancer
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20070239942.PGNR.&OS=DN/20070239942&RS=DN/20070239942 US20070239942A1]</u></font>
|Any place or website where people with this disease can congregate
+
|Transactional memory virtualization
|population suffering from skin cancer
+
|align = "center"|Virtualized Transactional Memory (VTM)
| www.positivelycoffee.org,    www.nescafe.com
+
|Methods and apparatus to provide transactional memory execution in a virtualized mode are described. Data corresponding to a transactional memory access request is stored in a portion of a memory after an operation corresponding to the transactional memory access request causes an overflow and a stored value may be updated for an occurrence of the overflow.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|7
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">7</font>
| Coffee associated with lower liver cancer risk
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20070300238.PGNR.&OS=DN/20070300238&RS=DN/20070300238 US20070300238A1]</u></font>
|Any place or website where people with this disease can congregate
+
|Adapting software programs to operate in software transactional memory environments
|population suffering from liver cancer
+
|align = "center"|Dynamic Software Transactional Memory 2.0 (DSTM2)
| www.positivelycoffee.org,   www.nescafe.com
+
|Software transactional memory is used in non-managed language environments and with legacy codes without requiring a software programmer to change the programming paradigm they are currently used to. STM adapter system automatically transforms all the binary code executed within that block to execute atomically. STM adapter system automatically transforms lock-based critical sections in existing binary code to atomic blocks,
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|8
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">8</font>
|Coffee may lessen after-exercise muscle soreness
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20080005504.PGNR.&OS=DN/20080005504&RS=DN/20080005504 US20080005504A1]</u></font>
|Any place or website where people with this disease can congregate
+
|Global overflow method for virtualized transactional memory
|people visiting ortheopaedist
+
|align = "center"|Virtualized Transactional Memory (VTM)
| www.positivelycoffee.org,   www.nescafe.com
+
|A method and apparatus for virtualizing and/or extending transactional memory is described. Transactions are executed using local shared transactional memory, such as a cache memory. Upon overflowing the shared transactional memory, the transactional memory is virtualized and/or extended into a higher-level memory, such as a system memory.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|9
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">9</font>
| Coffee drinkers are less likely to develop Parkinson<nowiki></nowiki>s disease
+
|align = "center"|<font color="#0000FF"><u>[http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=1&f=G&l=50&d=PG01&p=1&S1=20080098374.PGNR.&OS=DN/20080098374&RS=DN/20080098374 US20080098374A1]</u></font>
|Any place or website where people with this disease can congregate
+
|Method and apparatus for performing dynamic optimization for software transactional memory
|Population suffering from parkinson disease
+
|align = "center"|Dynamic STM (DSTM)
|www.positivelycoffee.org,    www.nescafe.com
+
|The present invention relates to a method and apparatus for performing dynamic optimization for STM. An optimistically immutable field is determined in the transaction to write. The transaction optimization unit keeps track of the status of object and class fields in a transaction. The transaction optimization unit invalidates methods corresponding to an optimistically immutable field in response to determining that the field has been written to and is therefore not immutable.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|10
+
|align = "center" bgcolor = "#969696"|<font color="#00FFFF">10</font>
|Coffee consumption lowers diabetes risk
+
|align = "center"|<font color="#0000FF"><u>[http://www.wipo.int/pctdb/en/fetch.jsp?LANG=ENG&DBSELECT=PCT&SERVER_TYPE=19-10&SORT=41253138-KEY&TYPE_FIELD=256&IDB=0&IDOC=1629252&C=10&ELEMENT_SET=B&RESULT=1&TOTAL=1&START=1&DISP=25&FORM=SEP-0/HITNUM,B-ENG,DP,MC,AN,PA,ABSUM-ENG&SEARCH_IA=US2008050081&QUE WO2008088931A2]</u></font>
|Any place or website where people with this disease can congregate
+
|FACILITATING EFFICIENT TRANSACTIONAL MEMORY AND ATOMIC OPERATIONS VIA CACHE LINE MARKING
|Persons treated for diabetes
+
|align = "center"|Hardware-Accelerated STM (HASTM)-Conflict detection
| www.positivelycoffee.org,   www.nescafe.com
+
|The system starts by executing a transaction for a thread, wherein executing the transaction involves placing load-marks on cache lines which are loaded during the transaction and placing store-marks on cache lines which are stored to during the transaction. Upon completing the transaction, the system releases the load-marks and the store-marks from the cache lines which were load-marked and store-marked during the transaction. Note that during the transaction, the load-marks and store-marks prevent interfering accesses from other threads to the cache lines.
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|11
+
|}
|Coffee reduces cognitive decline in elderly men
+
|&nbsp;
+
|age group bove 40
+
| www.positivelycoffee.org,    www.nescafe.com
+
  
|-
 
|align = "center" bgcolor = "#FFCC99"|12
 
|Coffee can lower the risk of serious illnesses
 
|&nbsp;
 
|&nbsp;
 
| www.positivelycoffee.org,    www.nescafe.com
 
  
|-
+
----
|align = "center" bgcolor = "#FFCC99"|13
+
|Coffee can ease headaches, prevent diseases
+
|&nbsp;
+
|all classes
+
| www.positivelycoffee.org,    www.nescafe.com
+
  
|-
+
==Patent dashboard==
|align = "center" bgcolor = "#FFCC99"|14
+
'''[http://client.dolcera.com/dashboard/dashboard.html?workfile_id=388 Patent Categorization in Dashboard]'''
|Church Goers drink coffee to keep themselves awake during the sermons.
+
|Café shops located in or around church
+
|church goers
+
| ineedcoffee.com
+
  
|-
+
==Contact Dolcera==
|align = "center" bgcolor = "#FFCC99"|15
+
|Creation of artistic centers attracts coffee drinkers.
+
|Various museums,art galleries etc.
+
|Tourists, Adults
+
| auburncoffee.com
+
  
 +
{| style="border:1px solid #AAA; background:#E9E9E9" align="center"
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|16
+
! style="background:lightgrey" | Samir Raiyani
|People drink coffee at the various business conferences.
+
|Any business conference where lots of people meet together
+
|Business persons
+
|&nbsp;
+
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|17
+
| '''Email''': [mailto:info@dolcera.com info@dolcera.com]
|Coffee is consumed at International Coffee Festivals.
+
|The places where the international festival occurs
+
|Coffee lovers, business people that frequent these festivals
+
|&nbsp;
+
 
+
 
|-
 
|-
|align = "center" bgcolor = "#FFCC99"|18
+
| '''Phone''': +1-650-269-7952
| High Street locations are places to which people<nowiki>’</nowiki>s visit.
+
|Places located on high street locations where beverages can be sold
+
|Business people, Shoppers, etc.
+
|classes.bus.oregonstate.edu/Summer-05/ba469/Elton/Sector%20Analysis/Starbucks_compiled.ppt
+
 
+
|-
+
|align = "center" bgcolor = "#FFCC99"|19
+
|During Public performances
+
|Amphitheaters,community halls, opera houses etc.
+
|Art lovers/Theatre lovers
+
|classes.bus.oregonstate.edu/Summer-05/ba469/Elton/Sector%20Analysis/Starbucks_compiled.ppt
+
 
+
|-
+
|align = "center" bgcolor = "#FFCC99"|20
+
|Charitable places
+
|Charitable organisations and their events
+
|Charitable organizations, Charitable events etc.
+
|classes.bus.oregonstate.edu/Summer-05/ba469/Elton/Sector%20Analysis/Starbucks_compiled.ppt
+
 
+
|-
+
|align = "center" bgcolor = "#FFCC99"|21
+
| Rural and off highway locations
+
|Places on rural and off highway location selling beverages
+
|youngsters,tourists
+
|classes.bus.oregonstate.edu/Summer-05/ba469/Elton/Sector%20Analysis/Starbucks_compiled.ppt
+
 
+
|-
+
|align = "center" bgcolor = "#FFCC99"|22
+
|At places that have kids playing area.
+
|Any place with a secure kids playing area
+
|Married Couple…Persons in Parenthood
+
|kimboal.ba.ttu.edu
+
 
+
|-
+
|align = "center" bgcolor = "#FFCC99"|23
+
|At opera theaters.
+
|Opera theatres
+
|Opera goers
+
|&nbsp;
+
 
+
 
|}
 
|}
 
== Segment Sizing ==
 
 
Each of the segments identified and defined are sized to determine the market attractiveness/potential of each segment. This is done as follows:
 
# For each segment, a potential place where they congregate offline in large groups has been defined.
 
# A detailed list of such offline events, up to a predetermined calendar date, has been made.
 
# The places where such events happen/will happen have been identified.
 
# For each individual event, a potential size has been estimated.
 
# The size estimates for each individual event is then aggregated.
 
# Based on this aggregation, the viability for promoting to each segment is determined.
 
 
=='''Segment sizing of communities that follow Operas - Executive Summary'''==
 
<gflash>695 525 http://www.dolcera.com/website/assets/identification_of_Coffee_community.swf</gflash>
 
 
* Opera definition:- We have defined operas as acts that involve dialogs and music. Symphonies, and other solo performances like comedy acts by Robin Williams are considered targeting a different community.
 
* The Opera season in the USA peaks in October-November, then takes a dip to pick up again in February-April.
 
* The top 2 states where we can reach the highest potential audience through operas is (a) New York - 444,600 people and (b) California - 384,733 people. Hence, the company can focus on any one of these 2 states for new coffee introduction. 
 
* Each of the top 20 shows caters to a potential audience of a 28,000 people and more thus making it a good promotion vehicle. The top 2 shows, Madam Butterfly and La-Traviata, have a potential to reach 100,000 plus people thus providing a good opportunity for promotion association.
 
* The top music composers in the USA are Puccini and Verdi with more than 100 shows staged all over the USA. Association with their names can be a good promotion strategy for a brand.
 
* Romance and Tragedy dominate the Opera scene in the USA. Emotional associations of a brand with Romance may appeal thus to a larger potential audience.
 
 
==='''Opera Community Sizing: Methodology'''===
 
 
* Opera community sizing method:-
 
# We identified a list of opera companies that produce operas in the USA.
 
# We made a detailed list of all operas produced by these companies, the number of times each opera is shown and the place where the opera is shown.
 
# We then made a ranking of the top opera shows in the USA, the composers whose music is associated with them, and the places where these shows are held.
 
# From the size of the opera theater where these shows are held, we estimated a potential audience each can cater to (since the calculation was for potential audience, we assumed 100% attendance).
 
 
==='''Opera companies and their schedule of Operas'''===
 
 
*This sheet also contains schedule of the events dated from Oct-2008 to July 2009.
 
 
* The dark green highlighted cell represents the total number of shows to be held in that opera house or conducted by particular opera company
 
 
 
[[Image:Opera companies' & Schedule of Events.jpg|center|thumb|1200px| Opera companies and Schedule of Events]]
 
 
'''The below link will guide to the full spread sheet'''.
 
 
[[Opera Companies and Schedule of Events]]
 
 
==='''Compilation of Operas and their respective number of shows'''===
 
 
[[Image:Comparison of Different Performances(shows).jpg|left|thumb|9500px|Comparison of Different Show]]
 
* This excel sheets consists of the show name along with there composer, which are places in chronological order of number of times they are performed.
 
 
 
* It also contains details for number of location where a show is to be performed.
 
 
 
* It represent the number of performances that particular show has from oct-2008 to july-2009
 
 
 
* The red highlighted cells indicate that the show is being performed at "N" number of location, where N=Number in the respective cell
 
 
 
 
* This information can be utilized to target the community as per the popularity of the show.
 
 
 
'''The below link will guide to the full spread sheet'''
 
 
[[Comparison of Different Shows]]
 
 
==='''Compilation of shows by Composer'''===
 
 
[[Image:Composers & No. Of Shows.jpg|center|thumb|800px|Composers]]
 
 
*This Sheet contains the information performing to various composers and the number of the performances of shows composed by them.
 
 
*The adjacent sheet contains the bar drawn in each cell for the comparative study of the various shows composed by composer.
 
 
* This information can be useful to target communities as per the popularity of composers.
 
 
'''The below link will guide to the full spread sheet'''
 
 
[[COMPOSERS]]
 
 
=== Estimating Potential Audience Data for each Opera show===
 
 
* The below excel sheet shows the potential audience for the top 20 shows.
 
* This data an be used for targeting the shows with the larger number of potential audience.
 
* This spread sheet is being prepared using the same methodology as described above.
 
 
[[Image:Estimating Potential Audiences Data.jpg|center|thumb|800px|Potential Audience]]
 
 
=== Classification of Opera Acts===
 
 
 
We had also tried to analyse the types of the acts written by composer i.e. type of acts whether it being comedy,tragedy,romantic act etc.
 
 
The following pie chart suggest this percentages of various types.
 
 
[[Image:trends.jpg|center|thumb|800px|Trends]]
 
 
==[[Methodology]]==
 
 
==Contact Dolcera==
 
 
'''Samir Raiyani'''
 
 
'''201 A South Delaware St. #306'''
 
'''San Mateo, CA 94401 USA'''
 
'''Phone: +1-650-269-7952'''
 
'''Fax: +1-866-690-7517'''
 
'''info@dolcera.com'''
 

Revision as of 00:22, 30 April 2009

Background

Transactional memory

  • Transactional memory is a general and flexible way to allow programs to read and modify disparate primary memory locations atomically as a single operation, much as a database transaction can atomically modify many records on disk.
  • Transactional memory attempts to simplify parallel programming by allowing a group of load and store instructions to execute in an atomic way. Transactional memory is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. A transaction is a piece of code that executes a series of reads and writes to shared memory.
  • Transactional memory (TM) supports code sections that are executed atomically, i.e., so that they appear to be executed one at a time, with no interleaving between their steps. TM significantly reduces the difficulty of writing correct concurrent programs. A good TM implementation avoids synchronization between concurrently executed transactional sections unless they actually conflict. TM can significantly improve the performance and scalability of concurrent programs, as well as makes them easier to write, understand and maintain.
  • Transactional memory generally refers to a synchronization model that allows multiple threads to concurrently access a shared resource (such as a data structure stored in memory) without acquiring a lock as long as the accesses are non-conflicting, for example, as long as the accesses are directed to different portions of the shared resource.

More details


Transactional programming models

  • Transactional programming models can be supported in software using software-based transactional memory (STM), in hardware using hardware- based transactional memory (HTM), or in a combination of the two (Hybrid TM, or HyTM).
    • Software based Transactional memory (STM) can allow sequences of concurrent operations to be combined into atomic transactions, thereby reducing the complexity of both programming and verification. STM is a scheme for concurrent programming with multiple threads that uses transactions similar to those used in databases.
    • Hardware based Transactional memory (HTM) system requires no read or write barriers within the transaction code. The hardware manages data versions and tracks conflicts transparently.
    • Hybrid Transactional memory (HyTM) implements Transactional memory in software so that it can use best-effort Hardware Transactional memory (HTM) to boost performance but does not depend on HTM.


Software based Transactional memory

  • Software transactional memory (STM) is implemented in software. All speculative STM transactional data is stored in the system memory and indicated to be in a non-committed state. When the STM transaction commits, any data the transaction writes is indicated as committed and subsequently available to other threads and transactions. In certain STM systems, a flag may be set to indicate the data as committed and accessible and available in memory to other transactions.

DracoSTM

  • DracoSTM is a high performance lock-based C++ Software Transactional memory research library. DracoSTM uses only native object-oriented language semantics, increasing its intuitiveness for developers while maintaining high programmability via automatic handling of composition, locks and transaction termination.
  • DracoSTM is a lock-based STM system. At its core, DracoSTM uses one lock per thread to implement transactional reads and writes. This allows multiple transactions to simultaneously read and write without blocking other transactions’ progress.


Dynamic STM (DSTM)

  • Dynamic Software Transactional Memory (DSTM) is a low-level application programming interface (API) for syn-chronizing shared data without using locks.
  • DSTM supports dynamic-sized data structures. DSTM has non-blocking implementation. The non-blocking property is obstruction-freedom. Dynamic means that the set of locations accessed by the transaction is not known in advance and is determined during its execution.
  • DSTM techniques allow transactions and transactional objects to be created dynamically.Transactions may determine the sequence of objects to access based on the values observed in objects accessed earlier in the same transaction. DSTM is well suited to the implementation of dynamic-sized data structures such as lists and trees.

Dynamic Software Transactional Memory 2.0 (DSTM2)

  • DSTM2 is a Java-based software library that provides a flexible framework for implementing STM. DSTM2 significantly improves the programming interface of its predecessor DSTM. The code is provided in Java libraries and any Java programmer can use it easily. DSTM2 allows researchers to plug in their STM implementations and directly compare them with others.
  • The DSTM2 library assumes that multiple concurrent threads share data objects. The DSTM2 library provides a new kind of thread that can execute transactions, which access shared atomic objects. DSTM2 threads provide methods for creating new atomic classes and executing transactions.

Nonblocking Software Transactional Memory

  • Nonblocking STMs are obstruction free. Nonblocking Software Transactional Memory guarantees that, if a transaction is repeatedly retried and eventually encounters no interference from other transactions, then eventually the transaction commits successfully.
  • Nonblocking STM “steals” ownership of a memory location from another transaction, rather than waiting for the other transaction to explicitly release it. Accessing stolen locations is more complicated and expensive than accessing unstolen ones, but stealing is worthwhile in order to avoid waiting for another transaction that is delayed for a long time.

Non-blocking conditions

Lock-free transactional memory
  • Lock-free transactional memory: A transactional memory implementation is lock-free if all its operations are lock-free and if some thread repeatedly attempts to commit transactions, then eventually some thread performs a successful commit.
  • Lock-freedom: An implementation of an operation is lock-free if after a finite number of steps of any execution of that operation, some operation execution completes (irrespective of the timing behavior of any concurrent operation executions).
Wait-free transactional memory
  • Wait-free transactional memory: A transactional memory implementation is wait-free if all its operations are wait-free and any thread that repeatedly attempts to commit transactions eventually performs a successful commit.
  • Wait-freedom: An implementation of an operation is wait-free if after a finite number of steps of any execution of that operation, that operation execution completes (irrespective of the timing behavior of any concurrent operation executions).
Obstruction-free transactional memory
  • Obstruction-free transactional memory: A transactional memory implementation is obstruction-free if all its operations are obstruction-free and if some thread repeatedly attempts to commit transactions, and runs in isolation after some point, then it eventually performs a successful commit.
  • Obstruction-freedom: An implementation of an operation is obstruction-free if every operation execution that executes in isolation after some point completes after a finite number of steps.

Hardware based Transactional memory

  • HTM comprises hardware transactions implemented entirely in processor hardware. For hardware transactions, data may be stored in hardware registers and cache, such that all cache actions are done atomically in hardware and data in the HTM is only written to the main memory upon committing the transaction. The HTM holds all the speculative writes without propagating to the main system memory, such as a Random Access Memory (RAM) device, until the transaction commits. If the hardware transaction aborts, then the cache lines holding the tentative writes in the HTM are discarded. HTM hardware transactions may utilize cache coherency protocols to detect and manage conflicts between HTM hardware transactions. The cache coherency protocols keep track of accesses within a hardware transaction. If two hardware transactions are accessing a same memory location, then the HTM aborts one transaction if there is a conflict, else the transaction's changes may be committed to the system memory.
  • HTM transactions usually require less overhead then STM transactions because HTM transactions occur entirely in hardware. HTM transactions may be limited to smaller transactions due to hardware limitations, whereas STM transactions can handle large and longer transactions. Source
  • The multi-core processor Rock supports Hardware Transactional Memory (HTM).
  • Rock’s HTM feature is an important but modest first step in integrating HTM support into a mainstream commercial multi-core processor.
  • Rock supports HTM with two new instructions, chkpt and commit, and a new checkpoint status (cps) register. A transaction is started by a chkpt instruction, and is terminated by either a commit instruction or the failure of the transaction. If a transaction fails, some indication of the cause of failure is stored in the cps register, and control is transferred to the PC-relative offset (fail pc) specified by the chkpt instruction.

Adaptive Transactional Memory Test Platform

  • The Adaptive Transactional Memory Test Platform (ATMTP) provides a first-order approximation of the success and failure characteristics of transactions on Rock. ATMTP will allow developers to test and tune their code for Rock.
  • ATMTP correctly models Rock’s HTM-related instructions, and fairly accurately reflects most of the circumstances that cause Rock transactions to fail. ATMTP provides a good platform for experimenting with HTM-based code that will behave similarly on Rock.

Unbounded Hardware Transactional Memory (UHTM)

  • UHTM is commited in-cache. When not possible, hardware “spills” transaction information into memory, allowing (essentially) unbounded transactions. UTM is more appealing for programmer, but is significantly more complicated. Unbounded means that there is no limit on the number of locations accessed by the transaction.

Best-effort Hardware Transactional Memory

  • Best-effort Hardware Transactional Memory transactions are committed in-cache and aborted if they don’t fit. Best-effort Hardware Transactional Memory has simple design.Best-effort Hardware Transactional Memory violates Principle of Least Astonishment. Programmer should not have to think about cache mapping, cache size, cache organization, etc.
  • Best-effort HTM does not guarantee to support transactions of any size and duration, and thus is free to simply abort transactions that exceed on-chip resources for HTM or encounter difficult events or situations.

Split Hardware Transaction (SpHT)

  • The Split Hardware Transaction (SpHT)uses minimal software support to combine multiple segments of an atomic block, each executed using a separate hardware transaction, into one atomic operation. The idea of segmenting transactions can be used for many purposes, including nesting, local retry, or Else, and user-level thread scheduling. SpHT overcomes the limited expressive power of best-effort HTM while imposing overheads dramatically lower than STM and preserving useful guarantees such as strong atomicity provided by the underlying HTM.

Virtualized Transactional Memory (VTM)

  • Virtualized TM (VTM) maintains atomicity and isolation even if a transaction is interrupted by a cache overflow or a system event. VTM maps the key bookkeeping data structures for transactional execution (read set, write set, write buffer or undo-log) to virtual memory, which is effectively unbounded and is unaffected by system interruptions. The hardware caches hold the working set of these data structures. VTM also suggested the use of hardware signatures to avoid redundant searches through structures in virtual memory.

Conflict detection

  • HTM systems rely on a computer’s cache hierarchy and the cache coherence protocol to implement conflict detection. Caches observe all reads and writes issued by a processor, can buffer a significant amount of data, and can be searched efficiently because of their associative organization. All HTMs modify the first-level caches, but the approach extends to higher-level caches, both private and shared.
  • Conflict detection occurs as other processors receive the coherence messages from the committing transaction. Hardware looks up the received block address in the local caches. If the block is in a cache and has its R or W bit set, there is a read-write or a write-write conflict between the committing and the local transaction. The hardware signals a software handler, which aborts the local transaction and potentially retries it after a backoff period.
  • Direct memory updates: For direct updates, the hardware transparently logs the original value in a memory block before its first modification by a transaction. If the transaction aborts, the log is used to undo any memory updates.
  • Early conflict detection : For early conflict detection, the hardware acquires exclusive access to the cache block on the first write and maintains it until the transaction commits.

Hybrid Transactional memory (HyTM)

  • The HyTM approach is to provide an STM implementation that does not depend on hardware support beyond what is widely available today, and also to provide the ability to execute transactions using whatever HTM support is available in such a way that the two types of transactions can coexist correctly.
  • The key idea to achieving correct interaction between software transactions and hardware transactions is to augment hardware transactions with additional code that ensures that the transaction does not commit if it conflicts with an ongoing software transaction.

Phased Transactional Memory (PhTM)

  • Phased Transactional Memory (PhTM)supports switching between different “phases”, each implemented by a different form of transactional memory support. PhTM allows to adapt between a variety of different transactional memory implementations.

Nonblocking Zero-Indirection Transactional Memory (NZTM)

Hardware-Accelerated STM (HASTM)

  • Hardware-Accelerated STM (HASTM) system proposes hardware support to reduce the overhead of STM instrumentation. The supplementary hardware allows software to build fast filters that could accelerate the common case of read set maintenance.
  • HASTM provides the STM with two capabilities through per-thread mark bits at the granularity of cache blocks.
  • Conflict detection: Software can check if a mark bit was previously set for a given block of memory and that no other thread wrote to the block since it was marked.
  • Validation: Software can query if potentially there were writes by other threads to any of the memory blocks that the thread marked.

Signature-Accelerated STM (SigTM)

  • Signature-Accelerated STM (SigTM)uses hardware signatures to encode the read set and write set for software transactions. A hardware Bloom filter outside of the caches computes the signatures.b Software instrumentation provides the filters with the addresses of the objects read or written within a transaction. To detect conflicts, hardware in the computer monitors coherence traffic for requests for exclusive accesses to a cache block, which indicates a memory update.
  • The hardware tests if the address in a request is potentially in a transaction’s read or write set by examining the transaction’s signatures. If so, the memory reference is a potential conflict and the STM can either abort a transaction or turn to software validation.


Search strategy

Search concepts

Transactional memory Atomic memory transactions Concurrency control Shared memory access
transactional memory atomic memory transactions concurrency control shared memory synchronization
transactional execution AND memory atomically memory accesses concurrent computing shared memory access
hybrid transactional memory
software transactional memory
hardware transactional memory


Search strings

Concepts Scope Search string No of hits
Transactional memory Search scope: US Granted US Applications EP-A EP-B WO JP DE-C,B DE-A DE-T DE-U GB-A FR-A;
Claims, Title or Abstract
Years: 1836-2008
(transactional ADJ memory) OR ((transactional ADJ execution) SAME memory) 167
Other Keywords (atomic*4 NEAR2 memory NEAR2 (transaction*1 OR access*2)) OR (((concurrency ADJ control) OR (concurrent ADJ computing)) WITH ((shared ADJ memory) AND (synchronization OR access*2))) 24
Final 1 OR 2 82 unique (189 patents including families)


IP Trend

  • 75 patents published in the last 10 years.
  • Patent filing is more in the last 4 years(75 %)
Year wise graph

Key companies

  • Intel(26 patents) and Sun Microsystems (19 patents) are major players.
  • Microsoft(11 patents) and IBM(7 patents) are next to them.
Top Assignees

Top IPC and US Classes

  • Top IPC class: G06F
  • Top US class: 711, 707, 712, 717, 718
IPC class
US class



Sample analysis

S.No. Patent/Publication No. Title Transactional memory Summary
1 US20040015642A1 Software transactional memory for dynamically sizable shared data structures Dynamic STM (DSTM) A software transactional memory that allows concurrent non-blocking access to a dynamically sizable data structure defined in shared storage managed by the software transactional memory is described. The implementation is called dynamic software transactional memory (DSTM). DSTM techniques allow transactions and transactional objects to be created dynamically. The non-blocking property considered here is obstruction-freedom.
2 US20060085591A1 Hybrid hardware and software implementation of transactional memory access Phased Transactional Memory (PhTM) The invention relates to a hybrid hardware and software implementation of transactional memory accesses in a computer system. A processor including a transactional cache and a regular cache is utilized in a computer system that includes a policy manager to select one of a first mode (a hardware mode) or a second mode (a software mode) to implement transactional memory accesses. In the hardware mode the transactional cache is utilized to perform read and write memory operations and in the software mode the regular cache is utilized to perform read and write memory operations.
3 US20070028056A1 Direct-update software transactional memory Dynamic STM (DSTM) A transactional memory programming interface allows a thread to directly and safely access one or more shared memory locations within a transaction while maintaining control structures to manage memory accesses to those same locations by one or more other concurrent threads. Each memory location accessed by the thread is associated with an enlistment record, and each thread maintains a transaction log of its memory accesses.
4 US20070156780A1 Protecting shared variables in a software transactional memory system Dynamic STM (DSTM) For a variable accessed at least once in a software-based transactional memory system (STM) defined (STM-defined) critical region of a program, modifying an access to the variable that occurs outside any STM-defined critical region system by starting a hardware based transactional memory based transaction, within the hardware based transactional memory based transaction, checking if the variable is currently owned by a STM transaction, If the variable is not currently owned by a STM transaction, performing the access and then committing the hardware based transactional memory transaction and if the variable is currently owned by a STM transaction, performing a responsive action.
5 US20070156994A1 Unbounded transactional memory systems Unbounded Hardware Transactional Memory (UHTM) Methods and apparatus to provide unbounded transactional memory systems are described. Transactional memory is implemented through a table lookup mechanism. To access a shared resource, a thread may first check a table stored in memory to determine whether another thread is accessing the same portion of the shared resource. Accessing a table that is stored in memory may generate overhead that decreases performance.
6 US20070239942A1 Transactional memory virtualization Virtualized Transactional Memory (VTM) Methods and apparatus to provide transactional memory execution in a virtualized mode are described. Data corresponding to a transactional memory access request is stored in a portion of a memory after an operation corresponding to the transactional memory access request causes an overflow and a stored value may be updated for an occurrence of the overflow.
7 US20070300238A1 Adapting software programs to operate in software transactional memory environments Dynamic Software Transactional Memory 2.0 (DSTM2) Software transactional memory is used in non-managed language environments and with legacy codes without requiring a software programmer to change the programming paradigm they are currently used to. STM adapter system automatically transforms all the binary code executed within that block to execute atomically. STM adapter system automatically transforms lock-based critical sections in existing binary code to atomic blocks,
8 US20080005504A1 Global overflow method for virtualized transactional memory Virtualized Transactional Memory (VTM) A method and apparatus for virtualizing and/or extending transactional memory is described. Transactions are executed using local shared transactional memory, such as a cache memory. Upon overflowing the shared transactional memory, the transactional memory is virtualized and/or extended into a higher-level memory, such as a system memory.
9 US20080098374A1 Method and apparatus for performing dynamic optimization for software transactional memory Dynamic STM (DSTM) The present invention relates to a method and apparatus for performing dynamic optimization for STM. An optimistically immutable field is determined in the transaction to write. The transaction optimization unit keeps track of the status of object and class fields in a transaction. The transaction optimization unit invalidates methods corresponding to an optimistically immutable field in response to determining that the field has been written to and is therefore not immutable.
10 WO2008088931A2 FACILITATING EFFICIENT TRANSACTIONAL MEMORY AND ATOMIC OPERATIONS VIA CACHE LINE MARKING Hardware-Accelerated STM (HASTM)-Conflict detection The system starts by executing a transaction for a thread, wherein executing the transaction involves placing load-marks on cache lines which are loaded during the transaction and placing store-marks on cache lines which are stored to during the transaction. Upon completing the transaction, the system releases the load-marks and the store-marks from the cache lines which were load-marked and store-marked during the transaction. Note that during the transaction, the load-marks and store-marks prevent interfering accesses from other threads to the cache lines.



Patent dashboard

Patent Categorization in Dashboard

Contact Dolcera

Samir Raiyani
Email: info@dolcera.com
Phone: +1-650-269-7952