Sun证实,其第一代Rock处理器(将于明年下半年发布)将包括对事务型内存(transactional memory)的支持功能。
Sun的研发小组花费了多年时间研发某种可将软件和硬件支持相结合的事务型内存。现在,公司考虑成为第一家将事务型内存连接到其芯片上的主流芯片制造商。作为市场的领导者,Sun希望鼓励早期ISV和开发商支持其技术,这样可以使得多线程代码可利用各种处理器(如Rock??拥有16核并可支持32路软件)中的全部可用性能。
Sun芯片业务CTO Marc Tremblay在一次访问中说:“我们有两个主要目标。一个是给用户提供性能更好的软件和系统。另一个是实现软件并行。这样你就给刚从学校毕业的程序员灌输了并行的概念,并且提供给了他们更好的应用软件。”
事务型内存技术借用了十几年前数据库领域的技术。在其最基础的水平上,事务型内存的设计思路循着当今锁相控制的设计模式??开发者采用不同的技术以阻止软件的多线程同时访问共享数据。事务型内存是以这样一个理念为前提的:很多情况下,一个单线程软件将找到唯一的数据堆栈。
Tremblay将这一情景比作了一群厨师来做一碗汤。在当今世界,只有一个厨师可以在任何时间拿到碗柜上的调料来做汤、每次打开碗柜、锁上碗柜。事务型内存所面临的情景是这样的,厨师们一次可以得到一种调料来做汤。如果正好两个厨师在同时往锅里加盐,事务型内存模式则提供了将汤恢复到未加盐状态的装置。
用开发者的术语来说,当一个事务有着几十条或者几百条命令时,你可以用图形记录代码。事务型内存技术在事务起始点创建了一个检查站来维持所有相关命令,直到有错误发生。在这一个点,你可以看到“全有或全无”的情景??或者所有工作量或存储内容通过,或者全部未通过。
锁相控制编程模式对开发者来说非常繁琐,并且通常会导致系统问题,例如,死锁??软件锁的相互依赖所导致的代码迟延。Sun支持被称为混合事务型内存模式,这一模式同时覆盖了基于硬件和基于软件的事务型内存工具。
“在可能达到更高的事务处理(事务型内存限制内)的性能的情况下,混合事务型内存开发了事务型内存支持,并执行软件内的事务。”Sun在网上解释:“因此混合事务型内存可以采用最佳事务型内存来促进当前系统的事务型程序并在其可用时享受事务型内存的支持。”
Sun的Solaris操作系统和Java虚拟机已经准备采用事务型内存,但是为了使事务型内存切实盈利,Sun需要软件协会的支持。据Tremblay说,公司已经开始请求Oracle、BEA和IBM公司的帮助。
英特尔、AMD、微软和IBM也都在讨论事务型内存技术,这一技术现在成为了硬件/软件领域最热门的话题。当明年有着有限的事务型内存支持的Rock芯片上市时,Sun将成为此技术市场的主导。
Tremblay说:“这一技术发展前景很广阔。如果我们都全力发展这一技术,那些有天分的程序员和普通程序员都可编写出更好的软件。”