text:
March 23, 2011
Smith sees future as broadcaster
Keith Niebuhr
Recruiting Analyst
He listens closely to what they say and how they say it.
He makes mental notes of their analysis.
And he scrutinizes their ability to take complex plays and explain them to the masses.
"Sometimes, I can predict what they're going to say," Smith said.
Someday down the road, he just might be up in the booth.
Sports broadcasting "is definitely something I could see myself doing," Smith said. "I have a good grasp of the game, and I feel like I could be a pretty good announcer."
As a player, Smith is better than pretty good. Much better.
A 6-foot, 170-pound junior cornerback from Atlanta's St. Pius X School, he currently has 26 scholarship offers. Next January, he will play in the 2012 U.S. Army All-American Bowl in San Antonio.
"He is a taller, lean corner with excellent change of direction and ball skills," Rivals.com national analyst Barry Every said. "But where he is at his best is coming out of his backpedal. One of the quickest I have ever seen."
Alabama, Auburn, Clemson, Florida, Florida State, Georgia, Georgia Tech, Illinois, Louisville, LSU, Ole Miss, Mississippi State, North Carolina, N.C. State, Notre Dame, Ohio State, Oklahoma, Purdue, South Carolina, Stanford, Tennessee, UCLA, USC, Vanderbilt, Virginia and Virginia Tech have offered, making Smith easily among the country's most sought-after players in the class of 2012.
Not bad for an athlete that was "one of the small kids" when he started playing the game at age 4.
"I have always been thin," Smith said.
Despite that, Smith claimed he has never shied away from contact. Not during his youth football days. And not even as a 155-pound sophomore starter for St. Pius.
"It doesn't bother me at all," Smith said. "Growing up, I was taught that contact is important. You can't be afraid of it. My weight wasn't a problem. I didn't think about it much. I just did what I've been taught about tackling."
Smith's lack of bulk clearly hasn't been an issue. He recorded 11 interceptions over the past two seasons, those statistics no doubt aided by his speed (runs 100-meter dash in 10.8 seconds) and athleticism (33-inch vertical leap).
Smith also is getting it done in the classroom, which is expected considering his mom is a teacher. He carries a 3.2 GPA.
"He's always had a good foundation," said Gina Matias, Smith's mom. "There has always been stability, always been time to do homework. I've always asked to see what was required of him and I was involved."
Smith isn't only a solid student, he's a student of college football. Even in elementary school, he looked forward to National Signing Day, according to his mother.
"I remember once, he had me stop so he could get the paper," Matias recalled. "He wanted to see who signed with all the different schools. He spent the whole day with that paper. I have memories of him sitting in front of the TV with some popsicles on draft day just waiting for the draft to begin. "
For years, Smith dreamed of becoming a veterinarian, according to his mother. But as his play on the football field reached an advanced level, another possible career track entered his mind. It is one that, for Smith, seems like a natural fit.
"He always said he wanted to be a vet, but now that football has started to take off, I think being a vet may be kind of far-fetched because of all the requirements he'll have from football," Matias said. "Within the last six months, he's really talked about broadcasting. I think it'll take some work, but he seems to have a passion for it."
Right now, Smith said he is "75-percent sure" he will study broadcasting in college. Should he choose that path, Smith thinks it is something at which he can succeed.
"I'm just knowledgeable," Smith said. "I do research. I'm always on the computer, looking up statistics, watching older games and looking up information. I can name all the players. I'm on the computer every day. I was just on Rivals yesterday looking at who had write-ups from the five-stars."
And, there is this:
"I'm pretty confident with how I talk," Smith said. "Sometimes I feel like (announcers) don't explain things as well as they should. I would bring a great personality, and give lots of details so everyone would understand - even people just learning about football. I would be the person to explain it, to make it fun, make it entertaining."
Smith has a clear favorite when it comes to college football announcers.
"Verne Lundquist," Smith said. "His voice is what gets me about him. He has that voice inflection. It captures you. It's a different form than a lot of other broadcasters."
Might Lundquist, who currently works SEC football games and March Madness for CBS, be calling Smith's name soon?
That remains to be seen.
As of Monday night, Smith claimed to have no leaders. Thus far in 2011, he has visited Alabama and Tennessee. He will stop by Georgia this weekend.
"Around the first of May, I'll probably have a top 12," Smith said.
Football Recruiting News
Jones sure of one official visit
BC grabs Texas receiver
Crawford back from Oregon
IMG Day 1: Top performers defense
Rivals.com is your source for: College Football | Football Recruiting | College Basketball | Basketball Recruiting | College Baseball | High School | College Merchandise
Site-specific editorial/photos �2012 Yahoo! Inc. All rights reserved. This website is an officially and independently operated source of news and information not affiliated with any school or team.
About | Advertise with Us | Contact | Privacy Policy | About our Ads | Terms of Service | Copyright/IP policy | Yahoo! Sports - NBC Sports Network
Statistical information �2007 STATS LLC All Rights Reserved.


text:
Hyp 0.2 Prerelease gameplay!2 years ago News 8 comments Report
Hyp is nearing release, we've been busy smashing and gibbing bugs. Here is some gameplay footage for you all.
A hidden skirmish takes place. You work for the power elite who are obsessed with the occult. As a part of a secret special forces battalion you wreck havoc beyond all known dimensions. Your agency recovers crashed UFOs and reverse engineers alien technology in hopes of ruling the world. It makes Stargate SG1 and X-Com look like child's play. This game takes top down shooting to the next level by bringing it to the likes and standards of source. Particle effects that will leave you dazed and begging for more after an onslaught of ultra violence. Occult Scrim reveals the grim brutality of war as you mercilessly execute the fallen. Gameplay is designed to encourage relentlessness aggressive behavior and not punish you for chasing like CS or QUAKE type games. Covert warfare that spans: rival cabals, aliens, zombies, and secret mutant experiments. Covering subjects such as heavy drug use in the military, anarchy in the military industrial complex and the new world order. You are a psychic commando with the ability to astral projection and remote view. A swift operator ninja who also displays great abundance of ease with firepower. There are no good guys in this realm, just shades of darkness.
SPK ( Special Paranormal Korpus )
Monstrous spetznas unit given life to by the shadow kremlin. Offshoot of the KGB with at least a dozen hangers full of stashed away saucers. Russia's hidden force for technological supremacy should not be underestimated.
Chimera ( Land Air and Sea )
This beast of a unit carefully vetted a battalion of former DEVGRU operators. Accepted into the secret society they protect the very truth from being heard. Some sheep are fleeced and some are slaughtered as even witnesses are not allowed. The developing new world order is nearing a singularity which might result in a Illuminati society and scientific global dictatorship. As the dark soldiers become illuminated they rebel against their masters and one third of the battalion defects.
Known as the black knights or mainly The Merciful Angels. One hundred and eleven super soldiers that were cloned in a genetic laboratory. China is gearing for the fight in light of a cold war sequel. They are entirely bald and inherently possess enhanced psionic abilities. Remember to smoke copious amounts of marijuana to regenerate your psi-energy aka mana.
Rogue Faction
These are the elite mujahideens. Arabs and Albanians with unstoppable determination to grow their Caliphate and take over the world. They believe God doesn't want the Aliens to interfere with our humanly business. They seek to destroy all traces of alien technology. Their world mafia is the other side of the coin opposing the official government and military. They possess power over the mexican cartels and key illegal trafficking points in south of Europe, they are the shadow world government.
Thank you everyone that helped us get Steam green lighted! I'm very pleased about that, despite somehow having more no votes than yes lol. No worries, with new illustrations being worked on, we will have a much better time promoting the game in the near future.
I have uploaded a new video! In the video, an updated version of skygrounds can be seen and the latest iteration of our flashy particle effects.
The SPK ( Russian faction ) will spawn with TWO item_vodkas instead of a single medkit ( which heals 50hp ).
Drinking each vodka will heal 25hp and we plan to make the character throw/smash the bottle into the ground when he is done drinking. As always, you can not have enough destruction! Also, we have way more gibbable models in the game now, so expect a good ol' smashing!
With that out of the way.. I would like to announce that I have begun pimping our HYP facebook page!
So please hop on over there and give us a like! Exclusive development pics and other goodies can be found there.
Hypovolemia Facebook Page!
I would like to see the community unified in someway before our upcoming/second release.
There's nothing more I would love to see than at least 1,000 likes on our Facebook before we unleash 0.2.
Hyp is nearing release, we've been busy smashing and gibbing bugs. Here is some gameplay footage for you all.
New updates, original soundtrack, maps, models and general progress.
We've been making some big changes to Hypovolemia!
Hypovolemia Version 0.1 Alpha download now available.
No articles were found matching the criteria specified. We suggest you try the article list with no filter applied, to browse all available. Post article and help us achieve our mission of showcasing the best content from all developers.
Just a nicer skin for Spetsnaz team. Made for Hypovelemia v0.1 Alpha.
Hypovolemia 0.1 Alpha has been released! Come and get it! EDIT: 12/8/2013 this verison no longer works, don't download it
No downloads were found matching the criteria specified. We suggest you try the download list with no filter applied, to browse all available. Upload a file and help us achieve our mission of showcasing the best content from all developers.
Oh damn, have you guys always been working on this steadily all this time, or did it just recently jump back into gear?
I remember playing this mod on Desura way back when 0.1 was released and there was a (relatively) active server or two. It was rough around the edges but definitely very fun. Glad to see some signs of continued progress.
Plz 666 watchers 2 release hidden media update.
NAME CHANGE!!! Attention the game is now called Occult Scrim and will have a rebranding of the appeal. Due to the high amount of people unable to speak the name of the game or spell it, we've decided to go with something more obvious and that describes the game more accurately anyway.
The word Occult means hidden, plus it sounds cooler than calling the game Covert Warfare or some ****. Al thought I did enjoy playing C&C covert operations when I was a kid. Occult word can also encompass aliens, drugs, spiritual subjects - besides covert warfare. Get ready for some brutal carnage.
The shadow government and military industrial complex has a bad case of anarchy.
The devs are busy. Last update was a week ago, just be patient...
0.1 Alpha is decent and hell of fun,if you got peeps to play with.
Two years since 0.1 release. Seems like you put a lot of work since then. Do you guys want to work on this more and do 1.0 after 0.1? Can we expect new version any soon or it stays with TBA status?
Were kinda nuts like that ahaha.. were still working hard, were spending a lot of time working on stuff that will speed up development.
Expect lots of attention to detail ( game looks at least twice as good now ), insane particle fx and overall fine tuned and improved game play
ETA for version 0.2 if ever?

subset: commoncrawl


text:
|Publication number
|Publication type
|Application number
|Publication date
|Mar 7, 2006
|Filing date
|Oct 27, 2004
|Priority date
|Oct 27, 2004
|Fee status
|Also published as
|Publication number
|Greg J. Sapletal, Shawn Shi, Kirk E. McClure
|Original Assignee
|Delphi Technologies, Inc.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (2), Referenced by (10), Classifications (12), Legal Events (3)
|External Links: USPTO, USPTO Assignment, Espacenet
The present invention is directed to radar object detection, and more particularly to a horizontally polarized radar for achieving a wide-angle field of view through a plastic fascia.
Short-range obstacle detection for vehicle back-up and parking aid functions can be achieved with a wide-angle radar system, but cost and packaging considerations force design constraints that tend to limit the system performance. For example, overall vehicle cost considerations may effectively rule out the use of multiple transceivers for meeting wide zone-of-coverage requirements, and radar system packaging and cost considerations may effectively require the use of planar transmit and receive antennas, which in general are not well-suited to wide zone-of-coverage applications. Additionally, vehicle styling and design considerations frequently require the radar system to be concealed behind a plastic fascia panel, such as a bumper fascia, that variably attenuates radar energy transmission, especially at large angles with respect to the longitudinal axis of the vehicle.
A common approach for achieving the required zone-of-coverage in vehicle applications is to narrow the antenna radiation pattern and to radiate the specified zone-of-coverage by scanning. Another approach is to utilize custom-fabricated horns or non-planar antenna elements to broaden the radar field-of-view. However, such approaches are usually ruled out by cost and packaging considerations. Accordingly, what is needed is a low cost radar capable of placement behind a plastic fascia without sacrificing wide-angle field of view.
The present invention is directed to an improved radar including fixed beam transmitter and receiver antennae that utilize horizontal polarization for improved wide-angle field-of-view through a plastic fascia. In a preferred embodiment, the transmitter antenna transmits radar energy with slant polarization, a first receiver antenna designed for short-range wide-angle object detection includes a horizontal polarization feature, and a second receiver antenna designed for long-range narrow-angle object detection includes a vertical polarization feature.
The present invention will now be described, by way of example, with reference to the accompanying drawings, in which:—
The radar system of the present invention applies in general to the use of a fixed beam radar in applications requiring a wide-angle zone-of-coverage, where the sensor will be concealed behind a plastic/dielectric panel or fascia. The invention is illustrated herein in the context of a vehicle back-up and parking aid mounted on a vehicle bumper structure, but is applicable to other vehicle systems such as frontal or side object detection systems, and also to non-vehicle systems.
Referring to
In general, we have found that horizontally polarized radar frequency energy is subject to significantly less transmission attenuation when directed through a plastic/dielectric material than vertically polarized or un-polarized radar energy, particularly at small angles of incidence (i.e., at the extremities of the overall field of view). Vertical polarization is conventionally utilized for long-range narrow-angle fields of view in order to reduce background clutter and enhance detection of vertically oriented objects such as poles, but short-range wide-angle fields of view are not similarly constrained. Thus, using horizontal polarization for short-range wide-angle fields of view and retaining the use of vertical polarization for long-range narrow-angle fields of view significantly improves the overall performance of the radar system, so long as both vertically polarized and horizontally polarized reflected energy is returned to the radar sensor. In a preferred implementation, the first receive antenna 18 is horizontally polarized for enhanced short-range wide-angle object detection through a plastic fascia, the second receive antenna 20 is vertically polarized for reduced scatter and enhanced detection of vertically oriented objects, and the transmit antenna 16 is slant-polarized to create both vertical and horizontal reflected energy for the first and second receive antennae 18 and 20.
Summarizing, the present invention provides a simple and very cost effective way of utilizing horizontal polarization to achieve a high gain wide-angle radar field of view through a plastic fascia such as an automotive bumper covering. In applications where a long-range narrow-angle field of view is used in connection with the wide-angle field, the use of vertical polarization for reduced background clutter and enhanced vertical object detection can be retained by slant polarizing a single transmit antenna that produces both horizontally polarized and vertically polarized return energy for the wide-angle and narrow-angle receive antennae. In applications where a narrow-angle field of view is not required, the receive antenna 20 may be omitted, and the transmitter antenna 16 may be either horizontally polarized or slant polarized as shown.
While the invention has been described in reference to the illustrated embodiment, an automotive back-up and parking aid, it should be understood that the invention may be used in other applications as well. For example, the invention may be used other types of automotive applications such as forward-looking radars, collision avoidance systems and safety sensing, and also in non-automotive applications such as security systems. Also, it is expected that various modifications in addition to those mentioned above will occur to those skilled in the art. For example, the invention can be implemented with non-planar antennae, and so on. Accordingly, it is intended that the invention not be limited to the disclosed embodiment, but that it have the full scope permitted by the language of the following claims.
|Cited Patent
|Filing date
|Publication date
|Feb 27, 2002
|Dec 16, 2003
|Emag Technologies, Inc.
|Multifunction antenna for wireless and telematic applications
|Aug 12, 2003
|Mar 31, 2005
|Automotive Systems Laboratory, Inc.
|Multi-beam antenna
|Citing Patent
|Filing date
|Publication date
|Apr 4, 2008
|Jun 8, 2010
|Toyota Motor Engineering & Manufacturing North America, Inc.
|Three dimensional integrated automotive radars and methods of manufacturing the same
|Dec 19, 2008
|Nov 9, 2010
|Toyota Motor Engineering & Manufacturing North America, Inc.
|Dual-band antenna array and RF front-end for automotive radars
|Jan 16, 2009
|Aug 2, 2011
|Toyota Motor Engineering & Manufacturing North America, Inc.
|System and method for improving performance of coplanar waveguide bends at mm-wave frequencies
|Apr 24, 2009
|Sep 20, 2011
|Toyota Motor Engineering & Manufacturing North America, Inc.
|Dual-band antenna array and RF front-end for mm-wave imager and radar
|Sep 4, 2008
|Sep 11, 2012
|Aisin Seiki Kabushiki Kaisha
|Parking assist apparatus
|Sep 20, 2011
|Nov 6, 2012
|Toyota Motor Engineering & Manufacturing North America, Inc.
|Dual-band antenna array and RF front-end for MM-wave imager and radar
|Mar 7, 2011
|Nov 6, 2012
|Toyota Motor Engineering & Manufacturing North America, Inc.
|Dual-band antenna array and RF front-end for mm-wave imager and radar
|Jul 28, 2010
|Jul 22, 2014
|Toyota Motor Engineering & Manufacturing North America, Inc.
|Three-dimensional array antenna on a substrate with enhanced backlobe suppression for mm-wave automotive applications
|Sep 4, 2008
|Oct 31, 2012
|Parking assist apparatus
|Sep 4, 2008
|Mar 12, 2009
|Toyota Motor Co Ltd
|Parking assist apparatus
|U.S. Classification
|International Classification
|Cooperative Classification
|European Classification
|Oct 27, 2004
Owner name: DELPHI TECHNOLOGIES, INC., MICHIGAN
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SAPLETAL, GREG J.;SHI, SHAWN;MCCLURE, KIRK E.;REEL/FRAME:015934/0083;SIGNING DATES FROM 20040603 TO 20040708
|Aug 5, 2009
|Fee payment
Year of fee payment: 4
|Mar 14, 2013
|Fee payment
Year of fee payment: 8


text:
What is your mission statement?
Our guiding mission is to deliver superior quality products and services for our guests and communities through leadership, innovation and partnerships. Our vision is to be the quality leader in everything we do.
What formats of single serve beverages are available from Tim Hortons?
Tim Hortons single serve beverages are available for Keurig®* K-Cup® single serve brewing systems.
Where can I buy Tim Hortons Single Serve products?
Our Single serve products are available for purchase in participating Tim Hortons Restaurants as well as online through timhortons.com
Our single serve products are also sold online through amazon.com
What types of Single Serve beverages are available?
To find a listing of all of our take home beverages, including single serve, visit our merchandise section of the website.
Where can I find more information about the Tim Card?
Please read our Tim Card FAQs.
Does Tim Hortons provide corporate donations?
Tim Hortons is a proud member of the many communities in which we operate. Our Restaurant Owners and Corporate Offices are involved in countless local fundraisers and events including: Smile Cookie which raises funds for a local charity of choice; Timbits minor sports - sponsoring thousands of children through local sports leagues; free swims and skates for the entire family; food drives and more. We remain focused on our Tim Horton Children's Foundation and the involvement of our local Restaurants directly in their communities. We feel that this focus will provide the greatest impact, and therefore we do not accept unsolicited product or in-kind donation requests.
Learn more about our initiatives:
I would like some information about a Tim Hortons Franchise in Canada.
Please visit our Canadian Franchising section for a comprehensive list of frequently asked questions as well as additional information pertaining to Tim Hortons franchises in Canada.
I would like some information about a Tim Hortons Franchise in the USA.
Please visit our US Franchising section for a comprehensive list of frequently asked questions as well as additional information pertaining to Tim Horton franchises in the USA.
How can I get a copy of my Record of Employment (ROE) and/or T4/W2 Form?
Since Tim Hortons Restaurants are independently owned and operated, you will need to contact the location at which you previously worked in order to obtain copies of your ROE and/or T4/W2 Forms.
If I have employment related concerns or complaint, who do I contact?
Due to the fact that Tim Hortons is primarily a franchised organization, each Restaurant Owner is an independent business owner and employer who sets and administers his or her own employment policies and practices and is responsible for managing the operation of the Restaurant, including in respect of employment issues. All concerns or questions regarding employment need to be addressed with the Restaurant Owner.
If I have questions related to my separation/termination, who do I speak to?
Due to the fact that Tim Hortons is primarily a franchised organization, each Restaurant Owner is an independent business owner and employer who sets and administers his or her own employment policies and practices and is responsible for managing the operation of the Restaurant, including in respect of employment issues. All concerns or questions regarding separation/termination need to be addressed with the Restaurant Owner.
If I have employment standards related questions, who do I contact?
Please speak directly with your Restaurant Owner or review the Employment Standards Poster in your Restaurant.
What is the minimum age to be hired at a Tim Hortons Restaurant Location?
Please contact the Restaurant directly to confirm or refer to the applicable provincial/state employment standards legislation and occupational health and safety requirements in your province or state.
What if I don't know how to contact my Restaurant Owner?
Please contact the Restaurant Manager or refer to the contact information in your Restaurant.
Can I be employed by more than one Tim Hortons Restaurant?
You need to discuss this option with the Restaurant Owner of the location you work at. Each Tim Hortons Restaurant is independently owned and operated and each Restaurant Owner is responsible to manage his or her own recruiting and hiring. To apply at another Tim Hortons, you may visit www.workattims.com; and apply on-line directly to the location(s) of interest.
Alternatively, you can visit the location and speak with the Owner/Manager or complete an application on site.
How can I obtain more information about the Scholarship Program offered through the Restaurant I work at?
The Team Tim Hortons Scholarship Program is offered to Restaurant employees, their children or grandchildren. Please speak to the Restaurant Owner or Manager about the eligibility criteria to apply for a Scholarship.
Further information, including eligibility requirements for the program, can be found on our website at http://scholarship.timhortons.com
How do I apply for career at the Corporate Head Office?
If you are interested in a position at our Corporate Head Office, please submit your candidate profile on-line at www.timhortons.com/careers to the position of interest, or apply to our Future Opportunities to be considered for upcoming positions. You can also create your own Career Alert where you will be notified by email of upcoming positions that match your skills and experience.
We would like to thank all applicants for their interest, however, only candidates selected for interviews will be contacted.
How do I apply at a Restaurant?
Due to the fact that Tim Hortons is primarily a franchised organization, each individual Restaurant Owner is an employer who sets and administers their own employment policies and practices. Therefore, the Restaurant Owner is responsible for all the hiring, etc. for their location(s).
If you would like to work in a Tim Hortons Restaurant, please visit www.WorkAtTims.com and apply on-line directly to the location(s) of interest.
Alternatively, you can visit the location and speak with the Owner/Manager or complete an application on site.
How do I apply to multiple locations on your website?
For 15 days after you submit your first application online, you can apply to additional Restaurants with the same user profile / application. To do so, return to the "Apply Now" page. You will need to enter the same unique identifying information (Name, Birth Month / Day and 4 Digit Pin) to log-in. You can then select the next Restaurant you wish to apply to. The system will auto populate with the information you provided from your original application. After the 15 days has passed, you will need to create a new profile for any additional Restaurant applications.
I attempted to apply online, but there was an error with my application.
Your application information should be saved up until the point where you received the error. Return to the "Apply Now" page and enter your unique identifying information on the log-in page (Name, Birth Month / Day and 4 Digit Pin). This will retrieve your application up to the last completed step. You should then be able to continue your application from that point.
I am trying to apply to a location online and I keep getting an error message requesting a User ID and PIN:
This error may have happened if you used the BACK button on your internet browser while completing your application. Please ensure you use the "SELECT" or "CHANGE" links within the job application.
We recommend that you return to the "Apply Now" page and re-start your application by entering your unique identifying information. Any application information you have entered should have been saved for you.
What is Tim Hortons approach to Fair Trade coffee?
Learn more about Tim Hortons Coffee Partnership and its unique approach to making a true difference in coffee growing communities.
What is Tim Hortons doing to deal with litter?
At Tim Hortons, we are aware of the environmental impacts of our packaging and waste materials. We are attempting to deal with the litter issue in a variety of ways:
Can the Tim Hortons cup be recycled?
Yes the cup can be recycled but it is not accepted for recycling everywhere at this time. We currently have programs in a number of our restaurants across Canada where we capture our paper cup (and other packaging) for recycling or composting. The number of locations where we offer instore recycling continues to grow as we work with local waste management companies to expand our program. Please check your local Tim Hortons for a cup (and other packaging) recycling program. Also check your local residential recycling/composting program to see if paper coffee cups are an acceptable item.
Where do I find information about Tim Hortons Integrated Accessibility Policies and Multi-year Accessibility Plan?
This plan has been drafted in accordance with the Regulation and addresses how Tim Hortons achieves accessibility through meeting the Regulation's requirements. It provides the overall strategic direction that will be followed to provide accessibility supports to Ontarians with disabilities.
Click here for access to our Integrated Accessibility Standard Policies and Multi-Year Accessibility Plan.
Where does Tim Hortons get its coffee beans from?
Tim Hortons uses a premium blend of 100% Arabica beans from several of the world's renowned coffee-producing regions. Tim Hortons coffee is served within 20 minutes of brewing or it's not served at all. It's that quality and focus on "Always Fresh" that we think makes Tim Hortons coffee our guests' favorite.
Where can I get general information about coffee, the roasting process, etc.?
Is there nicotine or MSG in Tim Hortons coffee?
This urban myth is just that...a myth!
Tim Hortons guests expect and deserve high quality coffee that is always fresh and consistent, along with fast, efficient service and all at a good value. Tim Hortons would like to clearly state that there is absolutely NO nicotine or MSG in our coffee. Tim Hortons coffee has NO ADDITIVES whatsoever. It is made only from a blend of the highest quality premium Arabica beans from several different coffee growing countries.
Tim Hortons decaffeinated coffee also contains no additives. It is decaffeinated through what is called the Swiss Water method, which is the purest manner of removing caffeine from the coffee. Tim Hortons believes that our focus on quality, service and value, is what keeps our guests coming back for more!
I had a good/bad experience at one of your restaurants. What should I do?
Either way, we recommend that you speak with the restaurant owner or manager right away or complete our Online Survey. Our Restaurant Owners would love to hear from you.
You are also welcome to provide feedback and obtain further information directly from our Guest Services Department at our Oakville Head Office. A representative will respond to your request as soon as possible. We appreciate your feedback!


text:
Photos from Sri Lanka
Dive boat Hikkaduwa Kandy
Emerged Sinharaja Natural Heritage Area
Liz on Mirissa beach Mirissa
Skipper Butterfly Feeding Sinharaja Natural Heritage Area
Galvihara cave temple Polonnaruwa
The White House Boosa
The White House Boosa
Toyota 141 car Colombo
Idyllic Uppuveli Beach Uppuveli
Some of my smaller kids Boosa
The kids Boosa
Tree House Tangalle
The sari and Ella Boosa
Land facing Pigen Island Trincomalee
06 Ibis Guest House Tangalle
01 Mirisa Beach, Sri Lanka Colombo
Sri Lankan alphabet Tangalle
Nuwara Eliya - Hill Club Nuwara Eliya
View from the Dambulla Caves Dambulla
Mask Museum Ambalangoda Negombo
13 Devon Waterfall Kandy
Stilt Fishermen (1) Unawatuna
Samadhi Buddha, Anuradhapura Anuradhapura
St.Mary's Church, Negombo Colombo
Me with Somaliya Kegalle
NIlaveli Beach Nilaveli
Jae's Romantic Massage Colombo
Tissa Temple Yala National Park
Spot the pigeon Tangalle
Tangalle harbour from Blue Horizon Tangalle
Hoo-Maniya Blowhole Negombo
Unawatuna Beach The Beaches
Sri Lanka Endemic Species: Mountain Horned Agama Hills of Sri Lanka
Waterfall from train Nuwara Ella
tea estate Nuwara Ella
World's End Grasslands Hills of Sri Lanka
Secret Swimming Hole Sinharaja Natural Heritage Area
Potpourri of Ambalangoda Masks Colombo to Gale
changing rooms! Polonnaruwa
[29] Dambulla Cave Temple Colombo
[44] Sigiriya Colombo
Polonnaruwa Polonnaruwa
Kandy Lake Kandy
Paintings in Sigiriya Rock Fortress Sigiriya
stumpy Kandy
Samadhi Buddha Statue Anuradhapura
[23] Orchid Colombo
The Rock Sigiriya
Sunset ovet the cricket Ground Hambantota
0449 The Palm tree on Hikkaduwa Beach Hikkaduwa
0522 A cheeky Deer Kandy
Dambulla Temple Kandy
[49] Going up? Colombo


text:
|Publication number
|Publication type
|Application number
|Publication date
|Apr 5, 2007
|Filing date
|Sep 29, 2006
|Priority date
|Sep 30, 2005
|Also published as
|Publication number
|Josh Collier, Joseph Schibinger, Craig Church
|Original Assignee
|Collier Josh D, Schibinger Joseph S, Church Craig R
|Export Citation
|BiBTeX, EndNote, RefMan
|Referenced by (8), Classifications (12), Legal Events (4)
|External Links: USPTO, USPTO Assignment, Espacenet
This application claims benefit under 35 U.S.C. �119(e) of provisional U.S. Pat. Ser. Nos. 60/722,092, 60/722,317, 60/722,623, and 60/722,633 all filed on Sep. 30, 2005, the disclosures of which are incorporated herein by reference in their entirely.
The following commonly assigned co-pending applications have some subject matter in common with the current application:
U.S. application Ser. No. 11/______ filed Sep. 29, 2006, entitled "Tracking Cache Coherency In An Extended Multiple Processor Environment", attorney docket number TN428, which is incorporated herein by reference in its entirety;
U.S. application Ser. No. 11/______ filed Sep. 29, 2006, entitled "Preemptive Eviction Of Cache Lines From A Directory", attorney docket number TN426, which is incorporated herein by reference in its entirety; and
U.S. application Ser. No. 11/______ filed Sep. 29, 2006, entitled "Dynamic Presence Vector Scaling in a Coherency Directory", attorney docket number TN422, which is incorporated herein by reference in its entirety.
The current invention relates generally to data processing systems, and more particularly to systems and methods for providing cache coherency between cells having multiple processors.
A multiprocessor environment can include a shared memory including shared lines of cache. In such a system, a single line of cache may be used or modified by one processor in the multiprocessor system. In the event a second processor desires to use that same line of cache, the possibility exists for contention. Ownership and control of the specific line of cache is preferably managed so that different sets of data for the same line of cache do not appear in different processors at the same time. It is therefore desirable to have a coherent management system for cache in a shared cache multiprocessor environment. The present invention addresses the aforementioned needs and solves them with additional advantages as expressed herein.
An embodiment of the invention includes a method of maintaining cache coherency between at least two multiprocessor assemblies in at least two cells. The embodiment includes a cache coherency director in each cell. Each cache coherent director contains an intermediate home agent (IHA), an intermediate cache agent (ICA), and access to a remote directory. If a processor in one cell requests a line of cache that is not present in the local cache stores of each of the processors in the multiprocessor component assembly, then the IHA of the requesting cell reads the remote directory and determines if the line of cache is owned by a remote entity. If a remote entity does have control of the line of cache, then a request is sent from the requesting cell IHA to the target cell ICA. The target cell ICA finds the line of cache using the target IHA and requests release of the line of cache so that the requesting cell may have access. After the target cell processor releases the line of cache, the request cell processor may have access to the desired line of cache.
In one embodiment, the invention includes a communication protocol between cells which allows one cell to request a line of cache from a target cell. To avoid system dead locks as well as the expense of extremely large pre-allocated buffer storage, a retry mechanism is included. In addition, the protocol also includes a fairness mechanism which guarantees the eventual execution of requests.
The foregoing summary, as well as the following detailed description of preferred embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there is shown in the drawings exemplary constructions of the invention; however, the invention is not limited to the specific methods and instrumentalities disclosed. In the drawings:
Related Applications
This application has some content in common with co-filed and co-owned U.S. patent applications which disclose distinct but compatible aspects of the current invention. Thus, U.S. application Ser. No. 11/______ filed Sep. 30, 2006, entitled "Tracking Cache Coherency In An Extended Multiple Processor Environment" and U.S. application Ser. No. 11/______ filed Sep. 30, 2006, entitled "Preemptive Eviction Of Cache Lines From A Directory" and U.S. application Ser. No. 11/______ filed Sep. 30, 2006, entitled "Dynamic Presence Vector Scaling in a Coherency Directory" are all incorporated herein by reference in their entirety.
Multiprocessor Component Assembly
The sockets A-D 101, 105, 110, and 115 may communicate with one another via communication links 130-135. The communication links are arranged such that any socket may communicate with any other socket over one of the inter-socket links 130-135. Each socket contains at least one cache agent and one home agent. For example, socket A 101 contains cache agent 102 and home agent 103. Sockets B-D 105, 110, and 115 are similarly configured.
In multiprocessor component assembly 100, caching of information useful to one or more of the processor assemblies (socket) A-D is accommodated in a coherent fashion such that the integrity of the information stored in memory 120 is maintained. Coherency in component 100 may be defined as the management of a cache in an environment having multiple processing entities. Cache may be defined as local temporary storage available to a processor. Each processor, while performing its programming tasks, may request and access a line of cache. A cache line is a fixed size of data, useable as a cache, that is accessible and manageable as a unit. For example, a cache line may be some arbitrarily fixed size of bytes of memory. A cache line is the unit size upon which a cache is managed. For example, if the memory 120 is 64 MB in total size and each cache lines is sized to be 64 Bytes, then 64 MB of memory/64 bytes cache line size=1 Meg of different cache lines.
Cache may have multiple states. One convention indicative of multiple cache states is called the MESI system. Here, a line of cache can be one of: modified (M), exclusive (E), shared (S), or invalid (I). Each socket entity in the shared multiprocessor component 100 may have one or more cache lines in each of these different states. Multiple processors (or caching agents) can simultaneous have read-only copies (Shared coherency state) but only one caching agent can have a writable copy (Exclusive or Modified coherency state) at a time.
An exclusive state is indicative of a condition where only one entity, such as a socket, has a particular cache line in a read and write state. No other sockets have concurrent access to this cache line. A modified state is indicative of an exclusive state where the contents of the cache line varies from what is in shared memory 120. Thus, an entity, such as a processor assembly or socket, is the only entity that has the line of cache, but the line of cache is different from the cache that is stored in memory. One reason for the difference is that the entity has modified the content of the cache after it was granted access in exclusive or modified state. The implication here is that if any other entity were to access the same line of cache from memory, the line of cache from memory may not be the freshest data available for that particular cache line. When a node has exclusive access, all other nodes in the system are in the invalid state for that cache line. A node with exclusive access may modify all or part of the cache line or may silently invalidate the cache line. A node with exclusive state will be snooped (searched and queried) when another node attempts to gain any state other than the invalid state.
Another state of cache is known as the modified state. Modified indicates that the cache line is present at a node in a modified state, and that the node guarantees to provide the full cache line of data when snooped. When a node has modified access, all other nodes in the system are in the invalid state with respect to the requested line of cache. A node with modified access may modify all or part of the cache line, but always either writes the whole cache line back to memory to evict it from its cache or provides the whole cache line in a snoop response.
Another mode or state of cache is known as shared. As the name implies, a shared line of cache is cache information that is a read-only copy of the data. In this cache state type, multiple entities may have read this cache line out of shared memory. Additionally, if one node has the cache line shared, it is guaranteed that no other node has the cache line in a state other than shared or invalid. A node with shared state only needs to be snooped when another node is attempting to gain either exclusive or modified access.
An invalid cache line state indicates that the entity does not have the cache line. In this state, another entity could have the cache line. Invalid indicates that the cache line is not present at an entity node. Accordingly, the cache line does not need to be snooped. In a multiprocessor environment, each processor is performing separate functions and has different caching scenarios. A cache line can be invalid, exclusive in one cache, shared by multiple read only processes, and modified and different from what is in memory. In coherent data access, an exclusive or modified cache line can only be owned by one agent. A shared cache line can be owned by more than one agent. Using write consistency, writes from an agent must be observed by all agents in the same order as the order they are written. For example, if agent 1 writes cache line (a) followed by cache line (b), then if another agent 2 observes a new value for (b) then agent 2 must also observe the new value of (a). In a system that has write consistency and coherent data access, it is desirable to have a scalable architecture that allows building very large configurations via distributed coherency controllers each with a directory of ownership.
In component 100 of
If a processor within a socket 101 seeks a line of cache that is not currently resident in the local processor cache, the socket 101 may seek to acquire that line of cache. Initially, the processor request for a line of cache may be received by a home agent 103. The home agent arbitrates cache requests. If for example, there were multiple local cache stores, the home agent would search the local stores of cache to determine if the sought line of cache is present within the socket. If the line of cache is present, the local cache store may be used. However, if the home agent 103 fails to find the line of cache in cache local to the socket 101, then the home agent may request the line of cache from other sources.
The most logical source of a line of cache is the memory 120. However, in a shared multiprocessor environment, one or more of the processor assembly sockets B-D may have the desired line of cache. In this instance, it is important to determine the state of the line of cache so that when the requesting socket (A 101) accesses the memory, it acquires known good cache information. For example, if socket B had the line of cache that socket A were interested in and socket B had updated the cache information, but had not written that new information into memory, socket A would access stale information if it simply accessed the line of cache directly from memory without first checking on its status. Therefore, the status information on the desired line of cache is preferably retrieved first.
In the instance of the
The home agent 103 would process the responses. If the response from each socket indicates an invalid state, then the home agent 103 could access the desired cache line directly from memory 120 because no other socket entity is currently using the line of cache. If the returned results indicate a mixture of shared and invalid states or just all shared states, then the home agent 103 could access the desired cache line directly from memory 120 because the cache line is read only and is readily accessible without interference from other socket entities.
If the home agent 103 receives an indication that the desired lines of cache is exclusive or modified, then the home agent cannot simply access the line of cache from memory 120 if another socket entity has exclusive use of the line of cache or another entity has modified the cache information. If the current cache line is exclusive then depending on the request the owner must downgrade the state to shared or invalid and memory data can then be used. If the current state is modified then the owner also has to downgrade his cache line holding (except for a "read current value" request) and then 1) the data can be forwarded in the modified state to the requester, or 2) the data must be forwarded to the requester and then memory is updated or 3) memory updated and then sent to the requester. In the instance where the requested cache line is exclusively held, the socket entity that indicated the line of cache is exclusive does not need to return the cache line to memory since the memory copy is up to date. The holding agent can then later provide a status to home agent 103 that the line of cache is invalid or shared. The host agent 103 can then access the cache from memory 120 safely. The same basic procedure is also taken with respect to a modified state status return. The modifying socket may write the modified cache line information to memory 120 and return an invalid state to home agent 103. The home agent 103 may then allow access to the line of cache in memory because no other entity has the line of cache in exclusive or modified use and the cache line of information is safe to read from memory 120. Given a request for a line of cache, the cache holding agent can provide the modified cache line directly to the requestor and then downgrade to shared state or the invalid state as required by the snoop request and/or desired by the snooped agent. The requester then either maintains the modified state or updates memory and retains exclusive, shared, or modified ownership.
One aspect of the multiprocessor component assembly 100 shown in
Scaling Up the Shared Cache Multiprocessor Component Environment
The architecture of
The coherency directors 260 a-d and 270 a-d function to expand component assembly 100 in Cell A 205 to be able to communicate with component assembly 100′ in Cell B 206. A coherency director (CD) allows the inter-system exchange of resources, such as cache memory, without the disadvantage of slower access times and single points of failure as mentioned before. A CD is responsible for the management of a lines of cache that extend beyond a cell. In a cell, the system controller, coherency director, remote directory, coherency director are preferably implemented in a combination of hardware, firmware, and software. In one embodiment, the above elements of a cell are each one or more application specific integrated circuits.
In one embodiment of a CD within a cell, when a request is made for a line of cache not within the component assembly 100, then the cache coherency director may contact all other cells and ascertain the status of the line of cache. As mentioned above, although this method is viable, it can slow down the overall system. An improvement can be to include a remote directory into a call, dedicated to the coherency director to act as a lookup for lines a cache.
If a line of cache is checked out to another cell, the requesting cell can inquire about its status via the interconnection between cells 230. In one embodiment, this interconnection is a high speed serial link with a specific protocol termed Unisys� Scalability Protocol (USP). This protocol allows one cell to interrogate another cell as to the status of a cache line.
The IHA 340 of Cell X 310 communicates to the ICA 394 of Cell Y 360 using path 356 via the global cross bar paths in 344 and 394. Likewise, the IHA 390 of Cell Y 360 communicates to the ICA 344 of Cell X 360 using path 355 via the global cross bar paths in 344 and 394. In cell X 310, IHA 340 acts as the intermediate home agent to multiprocessor assembly 330 when the home of the request is not in assembly 330 (i.e. the home is in a remote cell). From a global view point, the ICA of the cell that contains the home of the request is the global home and the IHA is viewed as the global requester. Therefore the IHA issues a request to the home ICA to obtain the desired cache line. The ICA has an RDIR that contains the status of the desired cache line. Depending on the status of the cache line and the type of request the ICA issues global requests to global owners (IHAs) and may issue the request to the local home. Here the ICA acts as a local caching agent that is making a request. The local home will respond to the ICA with data; the global caching agents (IHAs) issue snoop requests to their local domains. The snoop responses are collected and consolidated to a single snoop response which is then sent to the requesting IHA. The requesting agent collects all the (snoop and original) responses, consolidates them (including its local responses) and generates a response to its local requesting agent. Another function of the IHA is to receive global snoop requests, issue local snoop requests, collect local snoop responses, consolidate them, and issue a global snoop response to global requester.
The intermediate home and cache agents of the coherency director allow the scalability of the basic multiprocessor assembly 100 of
An IHA functions to receive all requests to a given cell. A fairness methodology is used to allows multiple request to be dispatched in a predictable manner that gives nearly equal access opportunity between requests. IHAs are used to determine which remote ICA have a cache line by querying the ICAs under its control. IHAs are used to issue USP requests to ICAs. An IHA may use a local directory to keep track of each cache line for each agent it controls.
An ICA functions to receive and execute requests from IHAs. Here too, a fairness methodology allows a fair servicing of all received requests. Another duty of an ICA is the send out snoop messages to remote IHA that respond back to the ICA and eventually the requesting home agent. The ICA receives global requests from a global requesting agent (IHA), performs a lookup in an RDIR and may issue global snoops and local request to the local home. The snoop response goes directly to the global requesting agent (IHA). The ICA gets the local response and sends it to the global requesting agent. The global requesting agent receives all the responses and determines the final response to the local requester. The other function of the ICA is to receive a local snoop request when the home of a request is local. The ICA does a RDIR lookup and may issue global snoop requests to global agents (IHA). The global agents issue local snoop requests as needed, collect the snoop responses, consolidate them into a single response and send it back to the ICA. The ICA collects the snoop responses, consolidates them and issues a snoop response back to the local home. In one embodiment, the ICA can issue a snoop request back to the local requesting agent. In one aspect of the invention, if an IHA requests a status or line of cache information from an ICA, and the ICA has determined that it cannot respond immediately, the ICA can return a retry indication to the requesting IHA. The requesting IHA then knows to resubmit the request after a determined amount of time. In one aspect of the invention, a deli-ticket style of retry response is provided. Here, a retry response may include a number, such as a time indication, wherein the retry may be performed by the IHA when the number is reached.
If the requested cache line is held in local memory (the home is local) then the requesting agent or home agent sends a snoop request directly to the local ICA. If the requested cache line's home is in a remote cell then the original request is sent to the IHA who then sends the request to the remote ICA of the home cell. The ICA contains the access to the RDIR. The Target ICA (the home ICA) determines if the cache line is owned by a caching agent and the status of the ownership via the RDIR. If the owning agent(s) is in a remote cell (or is a global caching agent) then the RDIR contains an entry for that cache line and its coherency state. The local caching agents are the caching agents that are connected directly to the chip's IHAs. If an RDIR miss occurs or if the cache line status is shared then it is inferred that the local caching agents may have ownership. Upon the occurrence of an RDIR miss, then the local caching agents may have shared, exclusive, or modified ownership status as well as a memory copy. In the event of a shared hit, then a local caching agent might have a shared copy; if exclusive or modified hit then no local agent can have a copy. For some combinations of request type and RDIR status, the original request is sent to the local home and snoop request(s) to global caching agents such as a remote IHA(s).
In one aspect of the invention, an ICA may have a remote directory associated with it. This remote directory can store information relating to which IHA has ownership of the cache that it tracks. This is useful because regular home agents do not store information about which remote home agents has a particular line of cache. As a result having access to a remote directory, ICAs become useful to keep track of the status of remote cache lines.
The information in a remote directory includes 2 bits for a state indication; one of invalid, shared, exclusive, or modified. A remote directory also includes 8 bits of IHA identification and 6 bits of caching agent identification information. Thus each remote directory information may be 16 bits along with a starting address of the requested cache line. Shared memory system may also include an 8 bit presence vector information.
In one embodiment, the RDIR may be sized as follows:
Within each cell, a set of sockets (socket 0 through socket 3) are present along with system memory and I/O interface modules organized with a system controller. For example, cell 0 410 a includes socket 0, socket 1, socket 2, and socket 3 430 a-433 a, I/O interface module 434 a, and memory module 440 a hosted within a system controller. Each cell also contains coherency directors, such as CD 450 a-450 d that contains intermediate home and caching agents to extend cache sharing between cells. A socket, as in
Memory modules 440 a-440 d provide data caching memory structures using cache lines along with directory structures and control modules. A cache line used within socket 2 432 a of cell 0 410 a may correspond to a copy of a block of data that is stored elsewhere within the address space of the processing system. The cache line may be copied into a processor's cache memory by the memory module 440 a when it is needed by a processor of socket 2 432 a. The same cache line may be discarded when the processor no longer needs the data. Data caching structures may be implemented for systems that use a distributed memory organization in which the address space for the system is divided into memory blocks that are part of the memory modules 440 a-440 d. Data caching structures may also be implemented for systems that use a centralized memory organization in which the memory's address space corresponds to a large block of centralized memory of a system memory block 420.
The SC 450 a and memory module 440 a control access to and modification of data within cache lines of its sockets 430 a-433 a as well as the propagation of any modifications to the contents of a cache line to all other copies of that cache line within the shared multiprocessor system 400. Memory-SC module 440 a uses a directory structure (not shown) to maintain information regarding the cache lines currently in used by a particular processor of its sockets. Other SCs and memory modules 440 b-440 d perform similar functions for their respective sockets 430 b-430 d.
One of ordinary skill in the art will recognize that additional components, peripheral devices, communications interconnections and similar additional functionality may also be included within shared multiprocessor system 400 without departing from the spirit and scope of the present invention as recited within the attached claims. The embodiments of the invention described herein are implemented as logical operations in a programmable computing system having connections to a distributed network such as the Internet. System 400 can thus serve as either a stand-alone computing environment or as a server-type of networked environment. The logical operations are implemented (1) as a sequence of computer implemented steps running on a computer system and (2) as interconnected machine modules running within the computing system. This implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein are referred to as operations, steps, or modules. It will be recognized by one of ordinary skill in the art that these operations, steps, and modules may be implemented in software, in firmware, in special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims attached hereto.
In cell 410 a′, CD0 450 a contains IHA 470 a, ICA 480 a, remote directory 435 a. CD0 450 a also connects to an assembly containing cache agent CA 460 a, and socket S0 430 a which is interconnected to memory 490 a. CD1 451 a contains IHA 471 a, ICA 481 a, remote directory 435 a. CD1 451 a also connects to an assembly containing cache agent CA 461 a, and socket S1 431 a which is interconnected to memory 491 a. CD2 452 a contains IHA 472 a, ICA 482 a, remote directory 436 a. CD1 452 a also connects to an assembly containing cache agent CA 462 a, and socket S2 432 a which is interconnected to memory 492 a. CD2 452 a contains IHA 472 a, ICA 482 a, remote directory 437 a. CD2 452 a also connects to an assembly containing cache agent CA 462 a, and socket S2 432 a which is interconnected to memory 492 a. CD3 453 a contains IHA 473 a, ICA 483 a, remote directory 438 a. CD3 453 a also connects to an assembly containing cache agent CA 463 a, and socket S3 433 a which is interconnected to memory 493 a.
In cell 410 b′, CD0 450 b contains IHA 470 b, ICA 480 b, remote directory 435 b. CD0 450 b also connects to an assembly containing cache agent CA 460 b, and socket S0 430 b which is interconnected to memory 490 b. CD1 451 b contains IHA 471 b, ICA 481 b, remote directory 435 b. CD1 451 b also connects to an assembly containing cache agent CA 461 b, and socket S1 431 b which is interconnected to memory 491 b. CD2 452 b contains IHA 472 b, ICA 482 b, remote directory 436 b. CD1 452 b also connects to an assembly containing cache agent CA 462 b, and socket S2 432 b which is interconnected to memory 492 b. CD2 452 b contains IHA 472 b, ICA 482 b, remote directory 437 b. CD2 452 b also connects to an assembly containing cache agent CA 462 b, and socket S2 432 b which is interconnected to memory 492 b. CD3 453 b contains IHA 473 b, ICA 483 b, remote directory 438 b. CD3 453 b also connects to an assembly containing cache agent CA 463 b, and socket S3 433 b which is interconnected to memory 493 b.
In cell 410 c′, CD0 450 c contains IHA 470 c, ICA 480 c, remote directory 435 c. CD0 450 c also connects to an assembly containing cache agent CA 460 c, and socket S0 430 c which is interconnected to memory 490 c. CD1 451 c contains IHA 471 c, ICA 481 c, remote directory 436 c. CD1 451 c also connects to an assembly containing cache agent CA 461 c, and socket S1 431 c which is interconnected to memory 491 c. CD2 452 c contains IHA 472 c, ICA 482 c, remote directory 437 c. CD1 452 c also connects to an assembly containing cache agent CA 462 c, and socket S2 432 c which is interconnected to memory 492 c. CD2 452 c contains IHA 472 c, ICA 482 c, remote directory 437 c. CD2 452 c also connects to an assembly containing cache agent CA 462 c, and socket S2 432 c which is interconnected to memory 492 c. CD3 453 c contains IHA 473 c, ICA 483 c, remote directory 438 c. CD3 453 c also connects to an assembly containing cache agent CA 463 c, and socket S3 433 c which is interconnected to memory 493 c.
In cell 410 d′, CD0 450 d contains IHA 470 d, ICA 480 d, remote directory 435 d. CD0 450 d also connects to an assembly containing cache agent CA 460 d, and socket S0 430 d which is interconnected to memory 490 d. CD1 451 d contains IHA 471 d, ICA 481 d, remote directory 436 d. CD1 451 d also connects to an assembly containing cache agent CA 461 d, and socket S1 431 d which is interconnected to memory 491 d. CD2 452 d contains IHA 472 d, ICA 482 d, remote directory 437 d. CD1 452 d also connects to an assembly containing cache agent CA 462 d, and socket S2 432 d which is interconnected to memory 492 d. CD2 452 d contains IHA 472 d, ICA 482 d, remote directory 437 d. CD2 452 d also connects to an assembly containing cache agent CA 462 d, and socket S2 432 d which is interconnected to memory 492 d. CD3 453 d contains IHA 473 d, ICA 483 d, remote directory 438 d. CD3 453 d also connects to an assembly containing cache agent CA 463 d, and socket S3 433 d which is interconnected to memory 493 d.
In one embodiment of
Referring now to
The transactions 1-7 shown in
Beginning with
Referring now to
Referring now to
At this point in the transactions, the requesting agent CA 460 c in cell 410 c′ has received all of the cache line responses from 410 a′ , 410 b′ and cell 410 d′. The status of the requested line of cache that was in the other cells is invalidated in those cells because they have given up their copy of the cache line. At this point, it is the responsibility of the requesting agent to sift through the responses from the other cells and select the most current cache line value to use. After all responses are gathered, a completion response is sent via transaction 16 which informs the home cell that there are no more transactions to be expected with regard to the specific line of cache just requested. Then, a next set of new transactions can then be initiated based on a next cache line request from any suitable requesting agent in the
The global request generator 510 is responsible for issuing global requests on behalf of the Coherency Controller (CC) 530. The global request generator 510 issues Unisys Scalability Protocol (USP) requests such as original cache line requests to other cells. The global request generator 510 provides a watch-dog timer that will insure that if it has any messages to send on the request interface, that it eventually transmits them to make forward progress. The global response input handler 515 receives responses from cells. For example, if an original request was sent for a line of cache from another cell in a system, them the global response input handler 515 is the functionality that receives the response from the responding cell. The global response input handler (RSIH) 515 is responsible for collecting all responses associated with a particular outstanding global request that was issued by the CC 530. The RSIH attempts to coalesce the responses and only sends notifications to the CC when a response contains data, or when all the responses have been received for a particular transaction, or when the home or early home response is received and indicates that a potential local snoop may be required. The RSIH also provides a watch-dog timer insures that if it has started receiving a packet from a remote cell, that it will eventually receive all portions of the packet, and hence make forward progress. The global response generator (RSG) 520 is responsible for generating responses back to an agent the requests cache line information. One example of this is the response provide by a RSG in the transmission of responses to snoop requests for lines of cache and for collections of data to be sent to a remote requesting cell. The RSG will provide a watch-dog timer that will insure that if it has any responses to send on the USP response interface, that it eventually sends them to make forward progress. The Global Request Input Handler 525 (RQIH) is responsible for receiving Global USP Snoop Requests from the Global Crossbar Request Interface and passing them to the CC 530. The RQIH also examines and validates the request for basic errors, extracts USP information that needs to be tracked, and converts the request into the format that the CC can use.
The local data response generator 535 (LDRG) is responsible for interfacing the Coherency Controller 530 to the local crossbar switch for the purpose of sending the home data responses to the multiprocessor component assembly (reference
The coherency controller 530 (CC) functions to drive and receive information to and from the global and local interfaces described above. The CC is comprised of a control pipeline and a data pipeline along with state machines that co-ordinates the functionality of an IHA in a shared multiprocessor system (SMS). The CC handles global and local requests for lines of cache as well as global and local responses. Read and write requests are queued and handled to that all transactions into and out of the IHA are addressed even in times of heavy transaction traffic.
Other functional blocks depicted in
The global request controller 640 (GRC) functions to interface to the global original requests from the global cross bar switch 605 to the coherency controller 630 (CC). The GRC implements global retry functions such as the deli counter mechanism. The GRC generates retry responses based on input buffer capability a retry function, and conflicts detected by the CC 630. Original remote cache line requests are received via the global cross bar interface and original responses are also provided back via the GRC 640. The function of the global snoop controller 610 (GSC) is to receive and process snoop requests from the CC 630. These snoop requests are generated for both local and global interfaces The GSC 610 connects to the global cross bar switch interface 605 and the message generator 650 to accommodate snoop requests and responses. The GSC also contains a snoop tracker to identify and resolve conflicts between the multiple global snoop requests and responses transacted by the GSC 610.
The function of the local snoop buffer 645 (LSB) is to interface local snoop requests generated by a multiprocessor component assembly socket via the local cross bar switch. The LSB 645 buffers snoop requests that conflict or need to be ordered with the current requests in the coherency controller 630. The remote directory 620 (RDIR) functions to receive lookup and update requests from the CC 630. Such requests are used to determine the coherency status of local cache lines that are owned remotely. The RDIR generates responses to the cache line status requests back to the CC 630. The coherency controller 630 (CC) functions to process local snoop requests from LSB 645 and generate responses back to the LSB 645. The CC 630 also processes requests from the GRC 640 and generates responses back to the GRC 640. The CC 630 performs lookups to the RDIR 620 to determine the state of coherency in a cache line and compares that against the current entries of a coherency track 635 (CT) to determine if conflicts exist. The CT 635 is useful to identify and prevent deadlocks between transactions on the local and global interfaces. The CC 630 issues requests to the GSC to issue global snoop requests and also issues requests to the message generator (MG) to issue local requests and responses. The message generator 650 (MG) is the primary interface to the local cross bar interface 655 along with the Local Snoop Buffer 645. The function of the MG 650 is to receive and process requests from the CC 630 for both local and global transactions. Local transactions interface directly to the MG 650 via the local cross bar interface 655 and global transactions interface to the global cross bar interface 605 via the GRC 640 or the GSC 610.
The Unisys� Scalability Protocol (USP) is a protocol that allows one processor assembly or socket, such as 430 a-433 a in
In an alternate timing scheme, a home agent based broadcast may be used.
In one aspect of the invention, an intermediate caching agent (ICA) receiving a request for a line of cache, checks the remote directory (RDIR) to determine if the requested line of cache is owned by another remote agent. If it is not, then the ICA can respond with an invalid status indicating that the line of cache is available for the requesting intermediate home agent (IHA). If the line of cache is available, the ICA can grant permission to access the line of cache. Once the grant is provided, the ICA updates the remote directory so that future requests by either local agents or remote agents will encounter correct line of cache status. If the line of cache is in use by a remote entity, then a record of that use is stored in the remote directory and is accessible to the ICA.
If no clear ownership response is found via a local search for the cache line among the local processors in the processor assembly 330, the SC 390 of the cell 310 steers the request to the address interleaved CD 340 where the remote directory 320 is accessed (step 915). The lookup in the RDIR 310 reveals any remote owners of the requested cache line. If the cache line is checked out by a remote entity, then the cache line request is routed to the intermediate home agent 350 which sends the request (step 920) to the remote cell indicated by the RDIR 320 information. The intermediate home agent 350 sends the cache line request to the intermediate caching agent 362 of the remote cell 380 via high speed, inter-cell link 355.
Once the remote request for a cache line is received by the ICA 362 of cell 380, then the ICA requests the IHA 352 to find the requested line of cache. The IHA 352 snoops the local processors Q, R, S, and T of processor assembly 332 to determine the ownership status of the requested line of cache (step 925). Each processor responds to the request back to the IHA 352.
The SC 392, which directs the coherency activities of the elements in the cell 380, acts to collect the responses and form a single combined response (step 930) from the IHA 352 to the ICA 362 to send back to the IHA 350 of the requesting cell 310. At this time, if a remote processor has control over a line of cache, such as for example, an exclusive type of control, it may release the line of cache and change the availability status (step 935). The IHA 352 of the cell Y then passes the information back to the IHA 360 and eventually to the requesting processor M (step 940) in assembly 330 of cell X. Since the requested line of cache had an exclusive status and now has an invalid status, the RDIR 320 may be updated. The line of cache may then be safely and reliably read by processor M. (step 945).
The access or remote calls from a requesting cell is accomplished using the Unisys� Scalability Protocol (USP). This protocol enables the extension of a cache managements system from one processor assembly to multiple processor assemblies. Thus, the USP enables the construction of very large systems having a collectively coherent cache management system. The USP will now be discussed.
The Unisys Scalability Protocol (USP) defines how the cells having multiprocessor assemblies communicate with each other to maintain memory coherency in a large shared multiprocessor system (SMP). The USP may also support non-coherent ordered communication. The USP features include unordered coherent transactions, multiple outstanding transactions in system agents, the retry of transactions that cannot be fully executed due to resource constraints or conflicts, the treatment of memory as writeback cacheable, and the lack of bus locks.
In one embodiment, the Unisys Scalability Protocol defines a unique request packet as one with a unique combination of the following three fields:
Agents may be identified by a combination of an 8 bit SC ID and a 6 bit Function ID. Additionally, each agent may be limited to having 256 outstanding requests due to the 8 bit Transaction ID. In another embodiment, this limit may be exceeded if an agent is able to utilize multiple Function IDs or SC IDs.
In one embodiment, the USP employs a number of transaction timers to enable detection of errors for the purpose of isolation. The requesting agent provides a transaction timer for each outstanding request. If the transaction is complete prior to the timer expiring, then the timer is cleared. If a timer expires, the expiration indicates a failed transaction. This is potentially a fatal error, as the transaction ID cannot be reused, and the transaction was not successful. Likewise, the home or target agent generally provides a transaction timer for each processed request. If the transaction is complete prior to the timer expiring, then the timer is cleared. If a timer expires, this indicates a failed transaction. This is may be a fatal error, as the transaction ID cannot be reused, and the transaction was not successful. A snooping agent preferentially provides a transaction timer for each processed snoop request. If the snoop completes prior to the timer expiring, then the timer is cleared. If a timer expires, this indicates a failed transaction. This is potentially a fatal error, as the transaction ID cannot be reused, and the transaction was not successful. In one embodiment, the timers may be scaled such that the requesting agent's timer is the longest, the home or target agent's timer is the second longest, and the snooping agent's timer is the least longest.
In one embodiment, the coherent protocol may begin in one of two ways. The first is a request being issued by a GRA (Global Requesting Agent) such as an IHA. The second is a snoop being issued by a GCHA (Global Coherent Home Agent) such as the ICA. The USP assumes all coherent memory to be treated as writeback. Writeback memory allows for a cache line to be kept in a cache at the requesting agent in a modified state. No other coherent attributes are allowed, and it is up to the coherency director to convert any other accesses to be writeback compatible. The coherent requests supported by the USP are provided by the IHA and include the following:
In one embodiment, the expected responses to the above requests include the following:
DataM CMP—Cache data status is modified. Transaction complete. This response also includes a response invalid (RspI).
A requester may receive snoop responses for a request it issued prior to receiving a home response. Preferentially, the requester is able to receive up to 255 response and invalidate responses for a single issued request. This is based on a maximum size system with 256 SC in as many cells where the requester will not receive a snoop from the home, but possibly all other SCs in cells. Each snoop response and the home response may contain a field that specifies the number of expected snoop responses and if a final completion is necessary. If a final completion is necessary, then the number of expected snoop responses must be 1 indicating that another node had the cache line in an exclusive or modified state. A requester can tell by the home response the types of snoop responses that it should expect. Snoop responses also contain this same information, and the requester normally validates that all responses, both home and snoop, contain the same information.
In one embodiment, the following pseudo code provides the necessary decode to determine the snoop responses to expect.
When a GRA, such as an IHA, receives a snoop request, it preferentially prioritizes servicing of the snoop request and responds to the snoop request in accordance with the snoop request received and the current state of the GRA. A GRA transitions into the state indicated in the snoop response prior to sending the snoop response. For example, if the snoop code is requested and the node is in the exclusive state, the data is written back into memory, rendering it invalid, then an invalid response is sent and the state of the node is set to invalid. In this instance, the node gave up its exclusive ownership of the cache line and made the cache line available for the requesting agent.
In one aspect of the invention, conflicts may arise because two requestors may generate nearly simultaneous requests. In one embodiment, no lock conditions are placed on transactions. Identifiers are placed on transactions such that home agents may resolve conflicts arising from responding agents. By examining the transaction identifiers, the home agent is able to keep track of which response is associated with which request.
Since it is possible to for certain system agents to retry transactions due to conflicts or lack of resources, it is necessary to provide a mechanism to guarantee forward progress for each request and requesting agent in a system. It is the responsibility of the responding agent to guarantee forward progress for each request and requesting agent. If a request is not making forward progress, the responding agent must eventually prevent future requests from being processed until the starved request has made forward progress. Each responding agent that is capable of issuing a retry to a request must guarantee forward progress for all requests.
In one aspect of the invention, the ICA preferably retries a coherent original read request when it either conflicts with another tracker entry or the tracker is full. In one embodiment, the ICA will not retry a coherent original write request. Instead, the ICA will send a convert response to the requester when it conflicts with another tracker entry.
A cache coherent SMP system prevents live locks by guaranteeing the fairness of transactions between multiple requestors. A live lock is the situation in which a transaction under certain circumstances continually gets retried and ceases to make forward progress thus permanently preventing the system or a portion of the system from making forward progress. This present scheme provides a means of preventing live locks by guaranteeing fair access for all transactions. This is achieved by use of a deli counter retry scheme in which a batch processing mechanism is employed to achieve fairness between transactions. It is difficult to provide fair access to requests when retry responses are used to resolve conflicts. Ideally, from a fairness viewpoint, the order of service would normally be determined by the arrival order of the requests. This could be the case if the conflicting requests were queued in the responding agent. However, it is not practical for each responding agent to provide queuing for all possible simultaneous requests within a systems capability. Instead, it is sometimes necessary to compromise, seeking to maximize performance, sometimes at the expense of arrival order fairness, but only to a limited degree.
In a cache coherent SMP system, multiple requests are typically contending for the same resources. These resource contentions are typically due to either the lack of a necessary resource that is required to process a new request or a conflict exists between a current request being processed and the new request. In either case, the system employs the use of a retry response in which a request is instructed to retry the request at a later time. Due to the use of retries for handling conflicts, there exist two types of requests; new requests and retried requests.
A new request is one in which the request was never previously issued. A retry request is the reissuing of a previously issued request that received a retry response indicating the need for the request to be retried at a later time due to a conflict. When a new or retry request encounters a conflict, a retry response is sent back to the requesting agent. The requesting agent preferably then re-issue the request at a later time.
The retry scheme provides two benefits. The first is that the responding agent does not require very large queue structures to hold conflicting requests. The second is that retries allow requesting agents to deal with conflicts that occur when a snoop request is received that conflicts with an outstanding request. The retry response to the outstanding request is an indication to the requesting agent that the snoop request has higher priority than the outstanding request. This provides the necessary ordering between multiple requests for the same address. Otherwise, with out the retry, the requesting agent would be unable to determine whether the received snoop request precedes or follows the pending request.
In one embodiment of the system, it is expected that the Remote ICA (Intermediate Coherency Agent) in the Coherency Director (CD) will be the only agents capable of issuing a retry to a coherent memory request. A special case is one in which a coherent write request conflicts with a current coherent read request. The request order preferably ensures that the snoop request is ordered ahead of the write request. In this case, a special response is sent instead of a retry response. The special response allows the requesting agent to provide the write data as the snoop result; the write request, however, is not resent. The memory update function can either be the responsibility of the recipient of the snoop response or alternately memory may have been updated prior to issuing the special response.
The batch processing mechanism provides fairness in the retry scheme. A batch is a group of requests for which fairness will be provided. Each responding agent will assign all new requests to a batch in request arrival order. Each responding agent will only service requests in a particular batch insuring that all requests in that batch have been processed before servicing the next sequential batch. Alternately, to improve performance the responding agent can allow the processing of requests from two or more consecutive batches. The maximum number of consecutive batches must be less than the maximum number of batches in order to guarantee fairness. Allowing more than one batch to be processed can improve processing performance by eliminating the situations where processing is temporarily stalled waiting for the last request in a batch to be retried by the requester. In the meantime, the responding agent has many resources available but continues to retry all other requests. The processing of multiple batches is preferably limited to consecutive batches and fairness is only guaranteed in the window of sequential requests which is the sum of all requests in all simultaneous consecutive batches. Thus ultimately it is possible for the responding agent to enter a situation where it must retry all requests while waiting for the last request in the first batch of the multiple consecutive batches to be retried by the requester. Until that last request is complete the processing of subsequent batches is prevented, however having multiple consecutive batches reduces the probability of this situation compared to having a single batch. When processing consecutive batches, once the oldest batch has been completely processed, processing may begin on the next sequential batch, thus the consecutive batch mechanism provides a sliding window effect.
In one embodiment, the responding agent assigns each new request a batch number. The responding agent maintains two counters for assigning a batch number. The first counter keeps track of the number of new requests that have been assigned the same batch number. The first counter is incremented for each new request, when this counter reaches a threshold (the number of requests in a batch), the counter is reset and the second counter is incremented. The second counter is simply the batch number, which is assigned to the new request. All new requests cause the first counter to increment even if they do not encounter a conflict. This is required to prevent new requests from continually causing retried requests from making forward progress.
Additionally, the batch processing mechanism may require a new transaction to be retried even though no conflict is currently present in order to enforce fairness. This can occur when the responding agent is currently not processing the new request's assigned batch number. If a new request requires a retry response due to either a conflict or enforcement of batch fairness, the retry response preferably contains the batch number that the request should send with each subsequent attempted retry request until the request has completed successfully. The batch mechanism preferably dictates that the number of batches multiplied by the batch size be greater than all possible simultaneous requests that can be present in the system by at least the number of batches currently being serviced multiplied by the batch size. Additionally, the minimum batch size is preferably a factor in a few system parameters to insure adequate performance. These factors include the number of resources available for handling new requests at the responding agent and the round-trip delay of issuing a retry response and receiving the subsequent retry request. The USP Protocol allows the maximum number of simultaneous requests in the system to be 256 SC IDs�64 Function IDs�256 Transaction IDs=4,194,304 requests. Thus, the request and response packet formats provide for a 12 bit retry batch number, the minimum batch size is calculated as follows:
N requests/batch>4,194,304 requests/4096 batches N>1024 requests
Therefore, the minimum batch size for the present SMP system is 2048 requests. Batch size could vary from batch to batch, however it is typically easier to fix the size of batches for implementation purposes. It is also possible to dynamically change the batch size during operation allowing system performance to be tuned to changes in latency, number of requestors, and other system variables. The responding agent preferably tracks which batches are currently being processed, and it preferably keeps track of the number of requests from each batch that have been processed. Once the oldest batch has been completed (all requests for that batch have been processed), the responding agent may then begin processing the next sequential batch, and disable processing of the completed batch thus freeing up the completed batch number for reallocation to new requests in the future. In alternate implementations where multiple consecutive batches are used to improve system performance, processing may only begin on a new batch when the oldest batch has been finished. If a batch other than the oldest batch has finished processing, the responding agent preferably waits for the oldest batch to complete before starting processing of one or more new batches.
When a responding agent receives a retry request, the batch number contained in the retry request is checked against the current batch numbers being processed by the responding agent. If the retry request's batch number is not currently being processed, the responding agent will retry the request again. The requesting agent must retry the request at a later time with the batch number from the first retry response it had originally received for that request. The responding agent may additionally retry the retry request due to a new or still unresolved conflict. Initially and at other relatively idle times, the responding agent is processing the same batch number that is also currently being allocated to new requests. Thus, these new requests can be immediately processed assuming no conflicts exist.
In one embodiment, the USP utilizes a deli counter mechanism to maintain fairness of original requests. The USP specification allows original requests, both coherent and non-coherent, to be retried at the destination back to the source. The destination guarantees that it will eventually accept the request. This is accomplished with the deli counter technique. The deli counter is includes two parts. The first part is the batch assignment circuit, and the second part is the batch acceptance circuit. The batch assignment circuit is a counter. The USP performance allows for a maximum number of outstanding transactions based on the following three fields: source SC ID[7:0], source function ID[5:0], and source transaction ID[7:0]. This results in a maximum of 222 or approximately 4M outstanding transactions.
The batch assignment counter is preferably capable of assigning a unique number to each possible outstanding transaction in the system with additional room to prevent reuse of a batch number before that batch has completed. Hence it is 23 bits in size. When a new original request is received, the request is assigned the current number in the counter, and the counter is incremented. Certain original requests are never retried, and hence do not get assigned a number, such as coherent writes. The deli counter enforces only batch fairness. Batch fairness infers that a group of transactions are treated with equal fairness. The USP employs the batch number to be the most significant 12 bits of the batch assignment counter. If a new request is retried, the retry contains the 12 bit batch number. A requester is obligated to issue retry requests with the batch number received in the initial retry response. Retried original requests can be distinguished between new original requests via the batch mode bit in the request packet. The batch acceptance circuit is designed to determine if a new request or retry request should be retried due to fairness.
The batch acceptance circuit considers requests that fall into one of two consecutive batches that are currently being serviced to pass through. If a request's batch number falls outside of the two consecutive batches currently being serviced, the request should immediately be retried for fairness reasons. Each time a packet that falls within the two consecutive batches that are currently being serviced, if the packet is fully accepted and not retried for another reason such as conflict or resource, then a counter is incremented indicating that a packet has been serviced. The batch acceptance circuit maintains two 11 bit counters, one for each batch currently being serviced. Once a request is considered complete to the point where it will not be retried again, the corresponding counter is incremented. Once that counter has rolled over, the batch is considered complete, and the next batch may begin to be serviced. Batches must be serviced in consecutive order, so unless the oldest batch has completed, a new batch may not begin to be serviced until the oldest batch has completed servicing all requests in that batch.
Thus, the two consecutive batches are considered to leap frog each other. In the even the newer batch being serviced completes all requests before the oldest batch being serviced, then the batch acceptance circuit must wait until the oldest batch has serviced all requests before allowing a new batch to be serviced. The ICA applies deli counter fairness to the following requests: RdCur, RdCode, RdData, RdInvOwn, RdInvItoE, MaintRW, MaintRO.
As mentioned above, while exemplary embodiments of the invention have been described in connection with various computing devices, the underlying concepts may be applied to any computing device or system in which it is desirable to implement a multiprocessor cache coherency system. Thus, the methods and systems of the present invention may be applied to a variety of applications and devices. While exemplary names and examples are chosen herein as representative of various choices, these names and examples are not intended to be limiting. One of ordinary skill in the art will appreciate that there are numerous ways of providing hardware and software implementations that achieves the same, similar or equivalent systems and methods achieved by the invention.
As is apparent from the above, all or portions of the various systems, methods, and aspects of the present invention may be embodied in hardware, software, or a combination of both. For example, the elements of a cell may be rendered in an application specific integrated circuit (ASIC) which may include a standard or custom controller running microcode as part of the included firmware.
While the present invention has been described in connection with the preferred embodiments of the various figures, it is to be understood that other similar embodiments may be used or modifications and additions may be made to the described embodiment for performing the same function of the present invention without deviating therefrom. Therefore, the invention should not be limited to any single embodiment, but rather should be construed in breadth and scope in accordance with the appended claims.
|Citing Patent
|Filing date
|Publication date
|Dec 29, 2006
|Nov 16, 2010
|Intel Corporation
|System and method for a 3-hop cache coherency protocol
|Dec 21, 2006
|Aug 23, 2011
|Microsoft Corporation
|Network accessible trusted code
|Nov 23, 2010
|Jul 16, 2013
|Intel Corporation
|Providing a directory cache for peripheral devices
|Oct 7, 2011
|Aug 26, 2014
|International Business Machines Corporation
|Dynamically reconfiguring a primary processor identity within a multi-processor socket server
|Dec 18, 2008
|Jun 24, 2010
|Verizon Data Services India Private Ltd.
|System and method for analyzing tickets
|May 24, 2012
|Sun Andrew Y
|Providing A Directory Cache For Peripheral Devices
|Dec 21, 2012
|Jun 26, 2014
|Herbert H. Hum
|Directory cache supporting non-atomic input/output operations
|Mar 15, 2013
|Sep 18, 2014
|Henk G. Neefs
|Mechanism to improve input/output write bandwidth in scalable systems utilizing directory based coherecy
|U.S. Classification
|711/141, 711/146
|International Classification
|Cooperative Classification
|European Classification
|Nov 15, 2006
Owner name: UNISYS CORPORATION, PENNSYLVANIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COLLIER, JOSH D.;SCHIBINGER, JOSEPH S.;CHURCH, CRAIG R.;REEL/FRAME:018588/0419
Effective date: 20061106
|Apr 13, 2007
Owner name: CITIBANK, N.A.,NEW YORK
Free format text: SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:UNISYS CORPORATION;REEL/FRAME:019188/0840
Effective date: 20070302
|Jul 31, 2009
Owner name: UNISYS CORPORATION,PENNSYLVANIA
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023312/0044
Effective date: 20090601
Owner name: UNISYS HOLDING CORPORATION,DELAWARE
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023312/0044
Effective date: 20090601
|Sep 14, 2009
Owner name: UNISYS CORPORATION,PENNSYLVANIA
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023263/0631
Effective date: 20090601
Owner name: UNISYS HOLDING CORPORATION,DELAWARE
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023263/0631
Effective date: 20090601